PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvODg1OS0xIj8+DQo8eHM6c2NoZW1hDQogICAgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vamF2YS5zdW4uY29tL3htbC9ucy9wb3J0bGV0L3BvcnRsZXQtYXBwXzFfMC54c2QiDQogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIg0KICAgIHhtbG5zOnBvcnRsZXQ9Imh0dHA6Ly9qYXZhLnN1bi5jb20veG1sL25zL3BvcnRsZXQvcG9ydGxldC1hcHBfMV8wLnhzZCINCiAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiDQogICAgeG1sbnM6eG1sPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiDQogICAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiDQogICAgYXR0cmlidXRlRm9ybURlZmF1bHQ9InVucXVhbGlmaWVkIiB2ZXJzaW9uPSIxLjAiDQogICAgeG1sOmxhbmc9ImVuIj4NCiAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBYTUwgU2NoZW1hIGZvciB0aGUgUG9ydGxldCAxLjAgZGVwbG95bWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci4NCiAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGNvbnZlbnRpb25zIGFwcGx5IHRvIGFsbCBKMkVFDQogICAgICAgICAgICAgICAgICAgICAgICBkZXBsb3ltZW50IGRlc2NyaXB0b3IgZWxlbWVudHMgdW5sZXNzIGluZGljYXRlZA0KICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlLg0KICAgICAgICAgICAgICAgICAgICAgICAgLSBJbiBlbGVtZW50cyB0aGF0IHNwZWNpZnkgYSBwYXRobmFtZSB0byBhIGZpbGUgd2l0aGluDQogICAgICAgICAgICAgICAgICAgICAgICB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHNhbWUgSkFSIGZpbGUsIHJlbGF0aXZlIGZpbGVuYW1lcyAoaS5lLiwgdGhvc2Ugbm90DQogICAgICAgICAgICAgICAgICAgICAgICBzdGFydGluZyB3aXRoICIvIikgYXJlIGNvbnNpZGVyZWQgcmVsYXRpdmUgdG8gdGhlIHJvb3QNCiAgICAgICAgICAgICAgICAgICAgICAgIG9mDQogICAgICAgICAgICAgICAgICAgICAgICB0aGUgSkFSIGZpbGUncyBuYW1lc3BhY2UuIEFic29sdXRlIGZpbGVuYW1lcyAoaS5lLiwNCiAgICAgICAgICAgICAgICAgICAgICAgIHRob3NlDQogICAgICAgICAgICAgICAgICAgICAgICBzdGFydGluZyB3aXRoICIvIikgYWxzbyBzcGVjaWZ5IG5hbWVzIGluIHRoZSByb290IG9mIHRoZQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBKQVIgZmlsZSdzIG5hbWVzcGFjZS4gSW4gZ2VuZXJhbCwgcmVsYXRpdmUgbmFtZXMgYXJlDQogICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXJyZWQuIFRoZSBleGNlcHRpb24gaXMgLndhciBmaWxlcyB3aGVyZSBhYnNvbHV0ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXMgYXJlIHByZWZlcnJlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgU2VydmxldA0KICAgICAgICAgICAgICAgICAgICAgICAgQVBJLg0KICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgPC94czphbm5vdGF0aW9uPg0KICAgIDwhLS0NCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgIC0tPg0KICAgIDx4czppbXBvcnQNCiAgICAgICAgbmFtZXNwYWNlPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiDQogICAgICAgIHNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzAzL3htbC54c2QiLz4NCiAgICA8eHM6ZWxlbWVudCBuYW1lPSJwb3J0bGV0LWFwcCINCiAgICAgICAgdHlwZT0icG9ydGxldDpwb3J0bGV0LWFwcFR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHBvcnRsZXQtYXBwIGVsZW1lbnQgaXMgdGhlIHJvb3Qgb2YgdGhlIGRlcGxveW1lbnQNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3INCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhIHBvcnRsZXQgYXBwbGljYXRpb24uIFRoaXMgZWxlbWVudCBoYXMgYSByZXF1aXJlZA0KICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIHZlcnNpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIHRvIHNwZWNpZnkgdG8gd2hpY2ggdmVyc2lvbiBvZiB0aGUgc2NoZW1hIHRoZSBkZXBsb3ltZW50DQogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yDQogICAgICAgICAgICAgICAgICAgICAgICBjb25mb3Jtcy4NCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6dW5pcXVlIG5hbWU9InBvcnRsZXQtbmFtZS11bmlxdWVuZXNzIj4NCiAgICAgICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHBvcnRsZXQgZWxlbWVudCBjb250YWlucyB0aGUgbmFtZSBvZiBhIHBvcnRsZXQuDQogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBwb3J0bGV0IGFwcGxpY2F0aW9uLg0KDQogICAgICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJwb3J0bGV0OnBvcnRsZXQiLz4NCiAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0icG9ydGxldDpwb3J0bGV0LW5hbWUiLz4NCiAgICAgICAgPC94czp1bmlxdWU+DQogICAgICAgIDx4czp1bmlxdWUgbmFtZT0iY3VzdG9tLXBvcnRsZXQtbW9kZS11bmlxdWVuZXNzIj4NCiAgICAgICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGN1c3RvbS1wb3J0bGV0LW1vZGUgZWxlbWVudCBjb250YWlucyB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRsZXQtbW9kZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcG9ydGxldCBtb2RlIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcG9ydGxldA0KICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24uDQogICAgICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJwb3J0bGV0OmN1c3RvbS1wb3J0bGV0LW1vZGUiLz4NCiAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0icG9ydGxldDpwb3J0bGV0LW1vZGUiLz4NCiAgICAgICAgPC94czp1bmlxdWU+DQogICAgICAgIDx4czp1bmlxdWUgbmFtZT0iY3VzdG9tLXdpbmRvdy1zdGF0ZS11bmlxdWVuZXNzIj4NCiAgICAgICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGN1c3RvbS13aW5kb3ctc3RhdGUgZWxlbWVudCBjb250YWlucyB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy1zdGF0ZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgd2luZG93IHN0YXRlIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcG9ydGxldA0KICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24uDQogICAgICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJwb3J0bGV0OmN1c3RvbS13aW5kb3ctc3RhdGUiLz4NCiAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0icG9ydGxldDp3aW5kb3ctc3RhdGUiLz4NCiAgICAgICAgPC94czp1bmlxdWU+DQogICAgICAgIDx4czp1bmlxdWUgbmFtZT0idXNlci1hdHRyaWJ1dGUtbmFtZS11bmlxdWVuZXNzIj4NCiAgICAgICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHVzZXItYXR0cmlidXRlIGVsZW1lbnQgY29udGFpbnMgdGhlIG5hbWUgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuDQogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBwb3J0bGV0IGFwcGxpY2F0aW9uLg0KDQogICAgICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJwb3J0bGV0OnVzZXItYXR0cmlidXRlIi8+DQogICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9InBvcnRsZXQ6bmFtZSIvPg0KICAgICAgICA8L3hzOnVuaXF1ZT4NCiAgICA8L3hzOmVsZW1lbnQ+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBvcnRsZXQtYXBwVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InBvcnRsZXQiIHR5cGU9InBvcnRsZXQ6cG9ydGxldFR5cGUiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KICAgICAgICAgICAgICAgIDx4czp1bmlxdWUgbmFtZT0iaW5pdC1wYXJhbS1uYW1lLXVuaXF1ZW5lc3MiPg0KICAgICAgICAgICAgICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGluaXQtcGFyYW0gZWxlbWVudCBjb250YWlucyB0aGUgbmFtZSB0aGUgYXR0cmlidXRlLg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcG9ydGxldC4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9InBvcnRsZXQ6aW5pdC1wYXJhbSIvPg0KICAgICAgICAgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9InBvcnRsZXQ6bmFtZSIvPg0KICAgICAgICAgICAgICAgIDwveHM6dW5pcXVlPg0KICAgICAgICAgICAgICAgIDx4czp1bmlxdWUgbmFtZT0ic3VwcG9ydHMtbWltZS10eXBlLXVuaXF1ZW5lc3MiPg0KICAgICAgICAgICAgICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHN1cHBvcnRzIGVsZW1lbnQgY29udGFpbnMgdGhlIHN1cHBvcnRlZCBtaW1lLXR5cGUuDQogICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1pbWUgdHlwZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHBvcnRsZXQuDQogICAgICAgICAgICAgICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJwb3J0bGV0OnN1cHBvcnRzIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0icG9ydGxldDptaW1lLXR5cGUiLz4NCiAgICAgICAgICAgICAgICA8L3hzOnVuaXF1ZT4NCiAgICAgICAgICAgICAgICA8eHM6dW5pcXVlIG5hbWU9InByZWZlcmVuY2UtbmFtZS11bmlxdWVuZXNzIj4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBwcmVmZXJlbmNlIGVsZW1lbnQgY29udGFpbnMgdGhlIG5hbWUgdGhlIHByZWZlcmVuY2UuDQoNCiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHBvcnRsZXQuDQogICAgICAgICAgICAgICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPHhzOnNlbGVjdG9yDQogICAgICAgICAgICAgICAgICAgICAgICB4cGF0aD0icG9ydGxldDpwb3J0bGV0LXByZWZlcmVuY2VzL3BvcnRsZXQ6cHJlZmVyZW5jZSIvPg0KDQogICAgICAgICAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0icG9ydGxldDpuYW1lIi8+DQogICAgICAgICAgICAgICAgPC94czp1bmlxdWU+DQogICAgICAgICAgICAgICAgPHhzOnVuaXF1ZSBuYW1lPSJzZWN1cml0eS1yb2xlLXJlZi1uYW1lLXVuaXF1ZW5lc3MiPg0KICAgICAgICAgICAgICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHNlY3VyaXR5LXJvbGUtcmVmIGVsZW1lbnQgY29udGFpbnMgdGhlIHJvbGUtbmFtZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcm9sZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcG9ydGxldC4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9InBvcnRsZXQ6c2VjdXJpdHktcm9sZS1yZWYiLz4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJwb3J0bGV0OnJvbGUtbmFtZSIvPg0KICAgICAgICAgICAgICAgIDwveHM6dW5pcXVlPg0KICAgICAgICAgICAgPC94czplbGVtZW50Pg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iY3VzdG9tLXBvcnRsZXQtbW9kZSINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OmN1c3RvbS1wb3J0bGV0LW1vZGVUeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImN1c3RvbS13aW5kb3ctc3RhdGUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpjdXN0b20td2luZG93LXN0YXRlVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ1c2VyLWF0dHJpYnV0ZSINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OnVzZXItYXR0cmlidXRlVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzZWN1cml0eS1jb25zdHJhaW50Ig0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6c2VjdXJpdHktY29uc3RyYWludFR5cGUiIG1pbk9jY3Vycz0iMCINCiAgICAgICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9InZlcnNpb24iIHR5cGU9InN0cmluZyINCiAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ic3RyaW5nIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iY3VzdG9tLXBvcnRsZXQtbW9kZVR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgQSBjdXN0b20gcG9ydGxldCBtb2RlIHRoYXQgb25lIG9yIG1vcmUgcG9ydGxldHMgaW4NCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgcG9ydGxldCBhcHBsaWNhdGlvbiBzdXBwb3J0cy4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQtYXBwDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iZGVzY3JpcHRpb24iDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpkZXNjcmlwdGlvblR5cGUiIG1pbk9jY3Vycz0iMCINCiAgICAgICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icG9ydGxldC1tb2RlIg0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6cG9ydGxldC1tb2RlVHlwZSIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJjdXN0b20td2luZG93LXN0YXRlVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBBIGN1c3RvbSB3aW5kb3cgc3RhdGUgdGhhdCBvbmUgb3IgbW9yZSBwb3J0bGV0cyBpbiB0aGlzDQogICAgICAgICAgICAgICAgICAgICAgICBwb3J0bGV0IGFwcGxpY2F0aW9uIHN1cHBvcnRzLg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogcG9ydGxldC1hcHANCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkZXNjcmlwdGlvbiINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OmRlc2NyaXB0aW9uVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ3aW5kb3ctc3RhdGUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDp3aW5kb3ctc3RhdGVUeXBlIi8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InN0cmluZyIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImV4cGlyYXRpb24tY2FjaGVUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIEV4cHJpYXRpb24tY2FjaGUgZGVmaW5lcyBleHBpcmF0aW9uLWJhc2VkIGNhY2hpbmcgZm9yDQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzDQogICAgICAgICAgICAgICAgICAgICAgICBwb3J0bGV0LiBUaGUgcGFyYW1ldGVyIGluZGljYXRlcw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHRpbWUgaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcG9ydGxldCBvdXRwdXQNCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXMuDQogICAgICAgICAgICAgICAgICAgICAgICAtMSBpbmRpY2F0ZXMgdGhhdCB0aGUgb3V0cHV0IG5ldmVyIGV4cGlyZXMuDQogICAgICAgICAgICAgICAgICAgICAgICBVc2VkIGluOiBwb3J0bGV0DQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+DQogICAgICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9ImludCIvPg0KICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iaW5pdC1wYXJhbVR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGluaXQtcGFyYW0gZWxlbWVudCBjb250YWlucyBhIG5hbWUvdmFsdWUgcGFpciBhcyBhbg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gcGFyYW0gb2YgdGhlIHBvcnRsZXQNCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46cG9ydGxldA0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImRlc2NyaXB0aW9uIg0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6ZGVzY3JpcHRpb25UeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InBvcnRsZXQ6bmFtZVR5cGUiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJwb3J0bGV0OnZhbHVlVHlwZSIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJrZXl3b3Jkc1R5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIHNwZWNpZmljIGtleXdvcmRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBvcnRsZXQuDQogICAgICAgICAgICAgICAgICAgICAgICBUaGUga2V3b3JkcyBhcmUgc2VwYXJhdGVkIGJ5IGNvbW1hcy4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQtaW5mbw0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciLz4NCiAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Im1pbWUtdHlwZVR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgTUlNRSB0eXBlIG5hbWUsIGUuZy4gInRleHQvaHRtbCIuDQogICAgICAgICAgICAgICAgICAgICAgICBUaGUgTUlNRSB0eXBlIG1heSBhbHNvIGNvbnRhaW4gdGhlIHdpbGRjYXJkDQogICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgJyonLCBsaWtlICJ0ZXh0LyoiIG9yICIqLyoiLg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogc3VwcG9ydHMNCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6c2ltcGxlQ29udGVudD4NCiAgICAgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0ic3RyaW5nIi8+DQogICAgICAgIDwveHM6c2ltcGxlQ29udGVudD4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJuYW1lVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBUaGUgbmFtZSBlbGVtZW50IGNvbnRhaW5zIHRoZSBuYW1lIG9mIGEgcGFyYW1ldGVyLg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogaW5pdC1wYXJhbSwgLi4uDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+DQogICAgICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InN0cmluZyIvPg0KICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0icG9ydGxldFR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHBvcnRsZXQgZWxlbWVudCBjb250YWlucyB0aGUgZGVjbGFyYXRpdmUgZGF0YSBvZiBhDQogICAgICAgICAgICAgICAgICAgICAgICBwb3J0bGV0Lg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogcG9ydGxldC1hcHANCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkZXNjcmlwdGlvbiINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OmRlc2NyaXB0aW9uVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwb3J0bGV0LW5hbWUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpwb3J0bGV0LW5hbWVUeXBlIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkaXNwbGF5LW5hbWUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpkaXNwbGF5LW5hbWVUeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InBvcnRsZXQtY2xhc3MiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpwb3J0bGV0LWNsYXNzVHlwZSIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iaW5pdC1wYXJhbSINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OmluaXQtcGFyYW1UeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImV4cGlyYXRpb24tY2FjaGUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpleHBpcmF0aW9uLWNhY2hlVHlwZSIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJzdXBwb3J0cyIgdHlwZT0icG9ydGxldDpzdXBwb3J0c1R5cGUiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InN1cHBvcnRlZC1sb2NhbGUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpzdXBwb3J0ZWQtbG9jYWxlVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6Y2hvaWNlPg0KICAgICAgICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icmVzb3VyY2UtYnVuZGxlIg0KICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpyZXNvdXJjZS1idW5kbGVUeXBlIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InBvcnRsZXQtaW5mbyINCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6cG9ydGxldC1pbmZvVHlwZSIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwb3J0bGV0LWluZm8iDQogICAgICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6cG9ydGxldC1pbmZvVHlwZSIvPg0KICAgICAgICAgICAgPC94czpjaG9pY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwb3J0bGV0LXByZWZlcmVuY2VzIg0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6cG9ydGxldC1wcmVmZXJlbmNlc1R5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ic2VjdXJpdHktcm9sZS1yZWYiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpzZWN1cml0eS1yb2xlLXJlZlR5cGUiIG1pbk9jY3Vycz0iMCINCiAgICAgICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpzaW1wbGVUeXBlIG5hbWU9InBvcnRsZXQtY2xhc3NUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBwb3J0bGV0LWNsYXNzIGVsZW1lbnQgY29udGFpbnMgdGhlIGZ1bGx5DQogICAgICAgICAgICAgICAgICAgICAgICBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiB0aGUgcG9ydGxldC4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQNCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6cmVzdHJpY3Rpb24NCiAgICAgICAgICAgIGJhc2U9InBvcnRsZXQ6ZnVsbHktcXVhbGlmaWVkLWNsYXNzVHlwZSIvPg0KICAgIDwveHM6c2ltcGxlVHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0icG9ydGxldC1jb2xsZWN0aW9uVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBUaGUgcG9ydGxldC1jb2xsZWN0aW9uVHlwZSBpcyB1c2VkIHRvIGlkZW50aWZ5IGEgc3Vic2V0DQogICAgICAgICAgICAgICAgICAgICAgICBvZiBwb3J0bGV0cyB3aXRoaW4gYSBwb3J0bGV0IGFwcGxpY2F0aW9uIHRvIHdoaWNoIGENCiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5IGNvbnN0cmFpbnQgYXBwbGllcy4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHNlY3VyaXR5LWNvbnN0cmFpbnQNCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwb3J0bGV0LW5hbWUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpwb3J0bGV0LW5hbWVUeXBlIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBvcnRsZXQtaW5mb1R5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ0aXRsZSIgdHlwZT0icG9ydGxldDp0aXRsZVR5cGUiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InNob3J0LXRpdGxlIg0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6c2hvcnQtdGl0bGVUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImtleXdvcmRzIiB0eXBlPSJwb3J0bGV0OmtleXdvcmRzVHlwZSINCiAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ic3RyaW5nIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0icG9ydGxldC1tb2RlVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBQb3J0bGV0IG1vZGVzLiBUaGUgc3BlY2lmaWNhdGlvbiBwcmUtZGVmaW5lcyB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyB2YWx1ZXMNCiAgICAgICAgICAgICAgICAgICAgICAgIGFzIHZhbGlkIHBvcnRsZXQgbW9kZSBjb25zdGFudHM6DQogICAgICAgICAgICAgICAgICAgICAgICAiZWRpdCIsICJoZWxwIiwgInZpZXciLg0KICAgICAgICAgICAgICAgICAgICAgICAgUG9ydGxldCBtb2RlIG5hbWVzIGFyZSBub3QgY2FzZSBzZW5zaXRpdmUuDQogICAgICAgICAgICAgICAgICAgICAgICBVc2VkIGluOiBjdXN0b20tcG9ydGxldC1tb2RlLCBzdXBwb3J0cw0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciLz4NCiAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBvcnRsZXQtbmFtZVR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHBvcnRsZXQtbmFtZSBlbGVtZW50IGNvbnRhaW5zIHRoZSBjYW5vbmljYWwgbmFtZSBvZg0KICAgICAgICAgICAgICAgICAgICAgICAgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICBwb3J0bGV0LiBFYWNoIHBvcnRsZXQgbmFtZSBpcyB1bmlxdWUgd2l0aGluIHRoZSBwb3J0bGV0DQogICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQsIHBvcnRsZXQtbWFwcGluZw0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciLz4NCiAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InBvcnRsZXQtcHJlZmVyZW5jZXNUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRsZXQgcGVyc2lzdGVudCBwcmVmZXJlbmNlIHN0b3JlLg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogcG9ydGxldA0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InByZWZlcmVuY2UiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpwcmVmZXJlbmNlVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwcmVmZXJlbmNlcy12YWxpZGF0b3IiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpwcmVmZXJlbmNlcy12YWxpZGF0b3JUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJwcmVmZXJlbmNlVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBQZXJzaXN0ZW50IHByZWZlcmVuY2UgdmFsdWVzIHRoYXQgbWF5IGJlIHVzZWQgZm9yDQogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21pemF0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICBhbmQgcGVyc29uYWxpemF0aW9uIGJ5IHRoZSBwb3J0bGV0Lg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogcG9ydGxldC1wcmVmZXJlbmNlcw0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Im5hbWUiIHR5cGU9InBvcnRsZXQ6bmFtZVR5cGUiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJwb3J0bGV0OnZhbHVlVHlwZSINCiAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJyZWFkLW9ubHkiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpyZWFkLW9ubHlUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ic3RyaW5nIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJwcmVmZXJlbmNlcy12YWxpZGF0b3JUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjbGFzcyBzcGVjaWZpZWQgdW5kZXIgcHJlZmVyZW5jZXMtdmFsaWRhdG9yDQogICAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRzDQogICAgICAgICAgICAgICAgICAgICAgICB0aGUgUHJlZmVyZW5jZXNWYWxpZGF0b3IgaW50ZXJmYWNlIHRvIHZhbGlkYXRlIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmVyZW5jZXMgc2V0dGluZ3MuDQogICAgICAgICAgICAgICAgICAgICAgICBVc2VkIGluOiBwb3J0bGV0LXByZWZlcmVuY2VzDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnJlc3RyaWN0aW9uDQogICAgICAgICAgICBiYXNlPSJwb3J0bGV0OmZ1bGx5LXF1YWxpZmllZC1jbGFzc1R5cGUiLz4NCiAgICA8L3hzOnNpbXBsZVR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0icmVhZC1vbmx5VHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICByZWFkLW9ubHkgaW5kaWNhdGVzIHRoYXQgYSBzZXR0aW5nIGNhbm5vdA0KICAgICAgICAgICAgICAgICAgICAgICAgYmUgY2hhbmdlZCBpbiBhbnkgb2YgdGhlIHN0YW5kYXJkIHBvcnRsZXQgbW9kZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICgidmlldyIsImVkaXQiIG9yICJoZWxwIikuDQogICAgICAgICAgICAgICAgICAgICAgICBQZXIgZGVmYXVsdCBhbGwgcHJlZmVyZW5jZXMgYXJlIG1vZGlmaWFibGUuDQogICAgICAgICAgICAgICAgICAgICAgICBWYWxpZCB2YWx1ZXMgYXJlOg0KICAgICAgICAgICAgICAgICAgICAgICAgLSB0cnVlIGZvciByZWFkLW9ubHkNCiAgICAgICAgICAgICAgICAgICAgICAgIC0gZmFsc2UgZm9yIG1vZGlmaWFibGUNCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHByZWZlcmVuY2VzDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InBvcnRsZXQ6c3RyaW5nIj4NCiAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0idHJ1ZSIvPg0KICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJmYWxzZSIvPg0KICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICAgIDwveHM6c2ltcGxlVHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0icmVzb3VyY2UtYnVuZGxlVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBGaWxlbmFtZSBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlIGNvbnRhaW5pbmcgdGhlIGxhbmd1YWdlDQogICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpYw0KICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGxldCBpbmZvcm1hdGlvbnMgaW4gZGlmZmVyZW50IGxhbmd1YWdlcy4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQtaW5mbw0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciLz4NCiAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InJvbGUtbGlua1R5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHJvbGUtbGluayBlbGVtZW50IGlzIGEgcmVmZXJlbmNlIHRvIGEgZGVmaW5lZA0KICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcm9sZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSByb2xlLWxpbmsgZWxlbWVudCBtdXN0IGNvbnRhaW4gdGhlIG5hbWUgb2Ygb25lIG9mDQogICAgICAgICAgICAgICAgICAgICAgICB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJvbGVzIGRlZmluZWQgaW4gdGhlIHNlY3VyaXR5LXJvbGUgZWxlbWVudHMuDQogICAgICAgICAgICAgICAgICAgICAgICBVc2VkIGluOiBzZWN1cml0eS1yb2xlLXJlZg0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciLz4NCiAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InNlY3VyaXR5LWNvbnN0cmFpbnRUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBzZWN1cml0eS1jb25zdHJhaW50VHlwZSBpcyB1c2VkIHRvIGFzc29jaWF0ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgaW50ZW5kZWQgc2VjdXJpdHkgY29uc3RyYWludHMgd2l0aCBvbmUgb3IgbW9yZSBwb3J0bGV0cy4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogcG9ydGxldC1hcHANCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkaXNwbGF5LW5hbWUiDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpkaXNwbGF5LW5hbWVUeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InBvcnRsZXQtY29sbGVjdGlvbiINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OnBvcnRsZXQtY29sbGVjdGlvblR5cGUiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InVzZXItZGF0YS1jb25zdHJhaW50Ig0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6dXNlci1kYXRhLWNvbnN0cmFpbnRUeXBlIi8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iaWQiIHR5cGU9InN0cmluZyIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InNlY3VyaXR5LXJvbGUtcmVmVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBUaGUgc2VjdXJpdHktcm9sZS1yZWYgZWxlbWVudCBjb250YWlucyB0aGUgZGVjbGFyYXRpb24NCiAgICAgICAgICAgICAgICAgICAgICAgIG9mIGENCiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJvbGUgcmVmZXJlbmNlIGluIHRoZSBjb2RlIG9mIHRoZSB3ZWINCiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uLiBUaGUNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uIGNvbnNpc3RzIG9mIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uLCB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3VyaXR5DQogICAgICAgICAgICAgICAgICAgICAgICByb2xlIG5hbWUgdXNlZCBpbiB0aGUgY29kZSwgYW5kIGFuIG9wdGlvbmFsIGxpbmsgdG8gYQ0KICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHkNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUuIElmIHRoZSBzZWN1cml0eSByb2xlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgRGVwbG95ZXIgbXVzdA0KICAgICAgICAgICAgICAgICAgICAgICAgY2hvb3NlIGFuIGFwcHJvcHJpYXRlIHNlY3VyaXR5IHJvbGUuDQogICAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIHJvbGUgbmFtZSBlbGVtZW50IG11c3QgYmUgdGhlIFN0cmluZw0KICAgICAgICAgICAgICAgICAgICAgICAgdXNlZA0KICAgICAgICAgICAgICAgICAgICAgICAgYXMgdGhlIHBhcmFtZXRlciB0byB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIEVKQkNvbnRleHQuaXNDYWxsZXJJblJvbGUoU3RyaW5nIHJvbGVOYW1lKSBtZXRob2QNCiAgICAgICAgICAgICAgICAgICAgICAgIG9yIHRoZSBIdHRwU2VydmxldFJlcXVlc3QuaXNVc2VySW5Sb2xlKFN0cmluZyByb2xlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogcG9ydGxldA0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImRlc2NyaXB0aW9uIg0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6ZGVzY3JpcHRpb25UeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InJvbGUtbmFtZSINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OnJvbGUtbmFtZVR5cGUiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InJvbGUtbGluayINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OnJvbGUtbGlua1R5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJzaG9ydC10aXRsZVR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIHNwZWNpZmljIHNob3J0IHZlcnNpb24gb2YgdGhlIHN0YXRpYyB0aXRsZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQtaW5mbw0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciLz4NCiAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9InN1cHBvcnRzVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBTdXBwb3J0cyBpbmRpY2F0ZXMgdGhlIHBvcnRsZXQgbW9kZXMgYQ0KICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGxldCBzdXBwb3J0cyBmb3IgYSBzcGVjaWZpYyBjb250ZW50IHR5cGUuIEFsbA0KICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGxldHMgbXVzdA0KICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydCB0aGUgdmlldyBtb2RlLg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogcG9ydGxldA0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Im1pbWUtdHlwZSINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0Om1pbWUtdHlwZVR5cGUiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InBvcnRsZXQtbW9kZSINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OnBvcnRsZXQtbW9kZVR5cGUiIG1pbk9jY3Vycz0iMCINCiAgICAgICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJzdXBwb3J0ZWQtbG9jYWxlVHlwZSI+DQogICAgICAgIDx4czphbm5vdGF0aW9uPg0KICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICBJbmRpY2F0ZWQgdGhlIGxvY2FsZXMgdGhlIHBvcnRsZXQgc3VwcG9ydHMuDQogICAgICAgICAgICAgICAgICAgICAgICBVc2VkIGluOiBwb3J0bGV0DQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+DQogICAgICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InN0cmluZyIvPg0KICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0idGl0bGVUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBzcGVjaWZpYyBzdGF0aWMgdGl0bGUgZm9yIHRoaXMgcG9ydGxldC4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQtaW5mbw0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciLz4NCiAgICAgICAgPC94czpzaW1wbGVDb250ZW50Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0idHJhbnNwb3J0LWd1YXJhbnRlZVR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHRyYW5zcG9ydC1ndWFyYW50ZWVUeXBlIHNwZWNpZmllcyB0aGF0DQogICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIGNsaWVudCBhbmQgcG9ydGxldCBzaG91bGQNCiAgICAgICAgICAgICAgICAgICAgICAgIGJlIE5PTkUsIElOVEVHUkFMLCBvciBDT05GSURFTlRJQUwuDQogICAgICAgICAgICAgICAgICAgICAgICBOT05FIG1lYW5zIHRoYXQgdGhlIHBvcnRsZXQgZG9lcyBub3QNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmUgYW55IHRyYW5zcG9ydCBndWFyYW50ZWVzLiBBIHZhbHVlIG9mDQogICAgICAgICAgICAgICAgICAgICAgICBJTlRFR1JBTCBtZWFucyB0aGF0IHRoZSBwb3J0bGV0IHJlcXVpcmVzIHRoYXQgdGhlDQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhIHNlbnQgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBwb3J0bGV0IGJlIHNlbnQgaW4NCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4ndCBiZSBjaGFuZ2VkIGluIHRyYW5zaXQuDQogICAgICAgICAgICAgICAgICAgICAgICBDT05GSURFTlRJQUwgbWVhbnMgdGhhdCB0aGUgcG9ydGxldCByZXF1aXJlcw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB0aGUgZGF0YSBiZSB0cmFuc21pdHRlZCBpbiBhIGZhc2hpb24gdGhhdA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJldmVudHMgb3RoZXIgZW50aXRpZXMgZnJvbSBvYnNlcnZpbmcgdGhlIGNvbnRlbnRzDQogICAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgdHJhbnNtaXNzaW9uLg0KICAgICAgICAgICAgICAgICAgICAgICAgSW4gbW9zdCBjYXNlcywgdGhlIHByZXNlbmNlIG9mIHRoZSBJTlRFR1JBTCBvcg0KICAgICAgICAgICAgICAgICAgICAgICAgQ09ORklERU5USUFMIGZsYWcgd2lsbCBpbmRpY2F0ZSB0aGF0IHRoZSB1c2UNCiAgICAgICAgICAgICAgICAgICAgICAgIG9mIFNTTCBpcyByZXF1aXJlZC4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogdXNlci1kYXRhLWNvbnN0cmFpbnQNCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0icG9ydGxldDpzdHJpbmciPg0KICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJOT05FIi8+DQogICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IklOVEVHUkFMIi8+DQogICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkNPTkZJREVOVElBTCIvPg0KICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICAgIDwveHM6c2ltcGxlVHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0idXNlci1hdHRyaWJ1dGVUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgYXR0cmlidXRlIGRlZmluZXMgYSB1c2VyIHNwZWNpZmljIGF0dHJpYnV0ZSB0aGF0DQogICAgICAgICAgICAgICAgICAgICAgICB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRsZXQgYXBwbGljYXRpb24gbmVlZHMuIFRoZSBwb3J0bGV0IHdpdGhpbiB0aGlzDQogICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgY2FuIGFjY2VzcyB0aGlzIGF0dHJpYnV0ZSB2aWEgdGhlIHJlcXVlc3QgcGFyYW1ldGVyDQogICAgICAgICAgICAgICAgICAgICAgICBVU0VSX0lORk8NCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHBvcnRsZXQtYXBwDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iZGVzY3JpcHRpb24iDQogICAgICAgICAgICAgICAgdHlwZT0icG9ydGxldDpkZXNjcmlwdGlvblR5cGUiIG1pbk9jY3Vycz0iMCINCiAgICAgICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibmFtZSIgdHlwZT0icG9ydGxldDpuYW1lVHlwZSIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImlkIiB0eXBlPSJzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJ1c2VyLWRhdGEtY29uc3RyYWludFR5cGUiPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHVzZXItZGF0YS1jb25zdHJhaW50VHlwZSBpcyB1c2VkIHRvIGluZGljYXRlIGhvdw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSBjb21tdW5pY2F0ZWQgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBwb3J0bGV0IHNob3VsZA0KICAgICAgICAgICAgICAgICAgICAgICAgYmUNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZC4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IHNlY3VyaXR5LWNvbnN0cmFpbnQNCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkZXNjcmlwdGlvbiINCiAgICAgICAgICAgICAgICB0eXBlPSJwb3J0bGV0OmRlc2NyaXB0aW9uVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ0cmFuc3BvcnQtZ3VhcmFudGVlIg0KICAgICAgICAgICAgICAgIHR5cGU9InBvcnRsZXQ6dHJhbnNwb3J0LWd1YXJhbnRlZVR5cGUiLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJpZCIgdHlwZT0ic3RyaW5nIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0idmFsdWVUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBlbGVtZW50IGNvbnRhaW5zIHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlci4NCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW46IGluaXQtcGFyYW0NCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6c2ltcGxlQ29udGVudD4NCiAgICAgICAgICAgIDx4czpleHRlbnNpb24gYmFzZT0ic3RyaW5nIi8+DQogICAgICAgIDwveHM6c2ltcGxlQ29udGVudD4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJ3aW5kb3ctc3RhdGVUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRsZXQgd2luZG93IHN0YXRlLiBXaW5kb3cgc3RhdGUgbmFtZXMgYXJlIG5vdCBjYXNlDQogICAgICAgICAgICAgICAgICAgICAgICBzZW5zaXRpdmUuDQogICAgICAgICAgICAgICAgICAgICAgICBVc2VkIGluOiBjdXN0b20td2luZG93LXN0YXRlDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+DQogICAgICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InN0cmluZyIvPg0KICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8IS0tLSBldmVyeXRoaW5nIGJlbG93IGlzIGNvcGllZCBmcm9tIGoyZWVfMV80LnhzZCAtLT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iZGVzY3JpcHRpb25UeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBkZXNjcmlwdGlvbiBlbGVtZW50IGlzIHVzZWQgdG8gcHJvdmlkZSB0ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmliaW5nIHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50IGVsZW1lbnQuIFRoZSBkZXNjcmlwdGlvbiBlbGVtZW50IHNob3VsZCBpbmNsdWRlDQogICAgICAgICAgICAgICAgICAgICAgICBhbnkNCiAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIHRoYXQgdGhlIHBvcnRsZXQgYXBwbGljYXRpb24gd2FyIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y2VyIHdhbnRzDQogICAgICAgICAgICAgICAgICAgICAgICB0byBwcm92aWRlIHRvIHRoZSBjb25zdW1lciBvZiB0aGUgcG9ydGxldCBhcHBsaWNhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgd2FyIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgICAgIChpLmUuLCB0byB0aGUgRGVwbG95ZXIpLiBUeXBpY2FsbHksIHRoZSB0b29scyB1c2VkIGJ5DQogICAgICAgICAgICAgICAgICAgICAgICB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRsZXQgYXBwbGljYXRpb24gd2FyIGZpbGUgY29uc3VtZXIgd2lsbCBkaXNwbGF5IHRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gd2hlbiBwcm9jZXNzaW5nIHRoZSBwYXJlbnQgZWxlbWVudCB0aGF0DQogICAgICAgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLiBJdCBoYXMgYW4gb3B0aW9uYWwgYXR0cmlidXRlIHhtbDpsYW5nIHRvDQogICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggbGFuZ3VhZ2UgaXMgdXNlZCBpbiB0aGUgZGVzY3JpcHRpb24gYWNjb3JkaW5nIHRvDQogICAgICAgICAgICAgICAgICAgICAgICBSRkMgMTc2NiAoaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMTc2Ni50eHQpLiBUaGUNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGlzIEVuZ2xpc2go4oCcZW7igD8pLg0KICAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbjogaW5pdC1wYXJhbSwgcG9ydGxldCwgcG9ydGxldC1hcHAsIHNlY3VyaXR5LXJvbGUNCg0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpzaW1wbGVDb250ZW50Pg0KICAgICAgICAgICAgPHhzOmV4dGVuc2lvbiBiYXNlPSJzdHJpbmciPg0KICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgcmVmPSJ4bWw6bGFuZyIvPg0KICAgICAgICAgICAgPC94czpleHRlbnNpb24+DQogICAgICAgIDwveHM6c2ltcGxlQ29udGVudD4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJkaXNwbGF5LW5hbWVUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBkaXNwbGF5LW5hbWUgdHlwZSBjb250YWlucyBhIHNob3J0IG5hbWUgdGhhdCBpcw0KICAgICAgICAgICAgICAgICAgICAgICAgaW50ZW5kZWQNCiAgICAgICAgICAgICAgICAgICAgICAgIHRvIGJlIGRpc3BsYXllZCBieSB0b29scy4gSXQgaXMgdXNlZCBieSBkaXNwbGF5LW5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLiBUaGUgZGlzcGxheSBuYW1lIG5lZWQgbm90IGJlIHVuaXF1ZS4NCiAgICAgICAgICAgICAgICAgICAgICAgIEV4YW1wbGU6DQogICAgICAgICAgICAgICAgICAgICAgICAuLi4NCiAgICAgICAgICAgICAgICA8ZGlzcGxheS1uYW1lIHhtbDpsYW5nPSJlbiI+RW1wbG95ZWUgU2VsZg0KICAgICAgICAgICAgICAgICAgICAgICAgU2VydmljZTwvZGlzcGxheS1uYW1lPg0KDQogICAgICAgICAgICAgICAgICAgICAgICBJdCBoYXMgYW4gb3B0aW9uYWwgYXR0cmlidXRlIHhtbDpsYW5nIHRvIGluZGljYXRlDQogICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBsYW5ndWFnZSBpcyB1c2VkIGluIHRoZSBkZXNjcmlwdGlvbiBhY2NvcmRpbmcgdG8NCiAgICAgICAgICAgICAgICAgICAgICAgIFJGQyAxNzY2IChodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMxNzY2LnR4dCkuIFRoZQ0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdA0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgaXMgRW5nbGlzaCjigJxlbuKAPykuDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnNpbXBsZUNvbnRlbnQ+DQogICAgICAgICAgICA8eHM6ZXh0ZW5zaW9uIGJhc2U9InBvcnRsZXQ6c3RyaW5nIj4NCiAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIHJlZj0ieG1sOmxhbmciLz4NCiAgICAgICAgICAgIDwveHM6ZXh0ZW5zaW9uPg0KICAgICAgICA8L3hzOnNpbXBsZUNvbnRlbnQ+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJmdWxseS1xdWFsaWZpZWQtY2xhc3NUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBlbGVtZW50cyB0aGF0IHVzZSB0aGlzIHR5cGUgZGVzaWduYXRlIHRoZSBuYW1lIG9mIGENCiAgICAgICAgICAgICAgICAgICAgICAgIEphdmEgY2xhc3Mgb3IgaW50ZXJmYWNlLg0KICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPg0KICAgICAgICA8L3hzOmFubm90YXRpb24+DQogICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJwb3J0bGV0OnN0cmluZyIvPg0KICAgIDwveHM6c2ltcGxlVHlwZT4NCiAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJyb2xlLW5hbWVUeXBlIj4NCiAgICAgICAgPHhzOmFubm90YXRpb24+DQogICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIFRoZSByb2xlLW5hbWVUeXBlIGRlc2lnbmF0ZXMgdGhlIG5hbWUgb2YgYSBzZWN1cml0eQ0KICAgICAgICAgICAgICAgICAgICAgICAgcm9sZS4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG5hbWUgbXVzdCBjb25mb3JtIHRvIHRoZSBsZXhpY2FsIHJ1bGVzIGZvciBhbg0KICAgICAgICAgICAgICAgICAgICAgICAgTk1UT0tFTi4NCiAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4NCiAgICAgICAgPC94czphbm5vdGF0aW9uPg0KICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0iTk1UT0tFTiIvPg0KICAgIDwveHM6c2ltcGxlVHlwZT4NCiAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJzdHJpbmciPg0KICAgICAgICA8eHM6YW5ub3RhdGlvbj4NCiAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIHNwZWNpYWwgc3RyaW5nIGRhdGF0eXBlIHRoYXQgaXMgZGVmaW5lZCBieQ0KICAgICAgICAgICAgICAgICAgICAgICAgSjJFRQ0KICAgICAgICAgICAgICAgICAgICAgICAgYXMgYSBiYXNlIHR5cGUgZm9yIGRlZmluaW5nIGNvbGxhcHNlZCBzdHJpbmdzLiBXaGVuDQogICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFzIHJlcXVpcmUgdHJhaWxpbmcvbGVhZGluZyBzcGFjZSBlbGltaW5hdGlvbiBhcw0KICAgICAgICAgICAgICAgICAgICAgICAgd2VsbCBhcyBjb2xsYXBzaW5nIHRoZSBleGlzdGluZyB3aGl0ZXNwYWNlLCB0aGlzIGJhc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgbWF5IGJlIHVzZWQuDQogICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+DQogICAgICAgIDwveHM6YW5ub3RhdGlvbj4NCiAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InN0cmluZyI+DQogICAgICAgICAgICA8eHM6d2hpdGVTcGFjZSB2YWx1ZT0iY29sbGFwc2UiLz4NCiAgICAgICAgPC94czpyZXN0cmljdGlvbj4NCiAgICA8L3hzOnNpbXBsZVR5cGU+DQo8L3hzOnNjaGVtYT4NCg==