@luftborn/custom-elements 2.5.0 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/demo/index.js CHANGED
@@ -3095,7 +3095,7 @@ var CustomFormatDateFieldElement = /** @class */ (function (_super) {
3095
3095
  CustomFormatDateFieldElement = __decorate([
3096
3096
  (0, custom_element_decorator_1.default)({
3097
3097
  selector: 'custom-format-date-element',
3098
- template: "\n\t\t<div class=\"wrapper\">\n\t\t\t<input type=\"text\" id=\"display-field\" readonly />\n\t\t\t<img src=\"assets/icons/datepicker-icon.png\" alt=\"datepicker-icon\" id=\"picker-trigger\"/>\n\t\t\t<input type=\"date\" id=\"date-field\" />\n\t\t</div>",
3098
+ template: "\n\t\t<div class=\"wrapper\">\n\t\t\t<input type=\"text\" id=\"display-field\" readonly />\n\t\t\t<svg id=\"picker-trigger\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect x=\"2\" y=\"4\" width=\"20\" height=\"18\" rx=\"1\" fill=\"#000\"/><rect x=\"4\" y=\"8\" width=\"16\" height=\"12\" fill=\"white\"/><path d=\"M4 10H20\" stroke=\"#000\" stroke-width=\"1\"/><circle cx=\"16\" cy=\"14\" r=\"2\" fill=\"#F44336\"/><rect x=\"6\" y=\"2\" width=\"3\" height=\"4\" rx=\".5\" fill=\"#000\"/><rect x=\"15\" y=\"2\" width=\"3\" height=\"4\" rx=\".5\" fill=\"#000\"/></svg>\n\t\t\t<input type=\"date\" id=\"date-field\" />\n\t\t</div>",
3099
3099
  style: "\n\t\t:host{\n\t\t\twidth:100%;\n\t\t}\n\t\t.wrapper{\n\t\t\tdisplay:flex;\n\t\t\tposition: relative;\n\t\t}\n\t\tinput{\n\t\t\tbox-sizing: border-box;\n\t\t\twidth: 100% !important;\n\t\t\tborder: none;\n\t\t\tbackground-color: #f1f4ff;\n\t\t\tmargin: 2px;\n\t\t\tresize: none;\n\t\t}\n\t\t#date-field {\n\t\t\topacity: 0;\n\t\t\tposition: absolute;\n\t\t\tz-index: -1;\n\t\t\tpointer-events: none;\n\t\t}\n\t\t#display-field::after {\n\t\t\tcontent: url('path/to/datepicker-icon.png'); /* Path to your datepicker icon */\n\t\t\tcursor: pointer;\n\t\t\tright: 10px;\n\t\t}\n\t\t#picker-trigger {\n\t\t\tcursor: pointer;\n\t\t\twidth: 15px;\n\t\t\theight: 15px;\n\t\t\tposition:absolute;\n\t\t\tright: 2px;\n\t\t\ttop: 15%;\n\t\t}\n\t\t#datepicker-icon {\n\t\t}\n\t\t\t",
3100
3100
  useShadow: true,
3101
3101
  })
@@ -6500,4 +6500,4 @@ var elements = require("./elements/Elements");
6500
6500
  exports.elements = elements;
6501
6501
 
6502
6502
  },{"./custom-form":9,"./elements/Elements":19,"./framework/CustomInputElement":34,"@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js":2,"@webcomponents/webcomponentsjs/webcomponents-bundle":3,"@webcomponents/webcomponentsjs/webcomponents-loader.js":4}]},{},[1])
6503
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJkZW1vL2luZGV4LnRzIiwibm9kZV9tb2R1bGVzL0B3ZWJjb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9jdXN0b20tZWxlbWVudHMtZXM1LWFkYXB0ZXIuanMiLCJub2RlX21vZHVsZXMvQHdlYmNvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMtYnVuZGxlLmpzIiwibm9kZV9tb2R1bGVzL0B3ZWJjb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLWxvYWRlci5qcyIsIm5vZGVfbW9kdWxlcy9pbnRsLXRlbC1pbnB1dC9idWlsZC9qcy9pbnRsVGVsSW5wdXQuanMiLCJub2RlX21vZHVsZXMvaW50bC10ZWwtaW5wdXQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3RpbWVycy1icm93c2VyaWZ5L21haW4uanMiLCJzcmMvY3VzdG9tLWZvcm0udHMiLCJzcmMvZWxlbWVudHMvQWRkcmVzcy9BZGRyZXNzRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9CYW5rRmllbGQvQmFua0ZpZWxkRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9DUFJFbGVtZW50L0NQUkVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvQ1ZSRWxlbWVudC9DVlJFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0NoZWNrQm94RWxlbWVudC9DaGVja0JveEVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvQ3VzdG9tRGF0YUZpbGVkRWxlbWVudC9DdXN0b21Gb3JtYXREYXRlRmllbGRFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9EYXRlRmllbGQvRGF0ZUZpZWxkRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9Ecm9wRG93bkxpc3QvRHJvcERvd25MaXN0RWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9FbGVtZW50cy50cyIsInNyYy9lbGVtZW50cy9FbWFpbEZpZWxkL0VtYWlsRmllbGRFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0ZpbGVGaWVsZC9GaWxlRmllbGRFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0lkZW50aWZpY2F0aW9uRWxlbWVudC9JZGVudGlmaWNhdGlvbkVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvSW50ZXJuYXRpb25hUGhvbmVOdW1iZXIvRmxhZ3MudHMiLCJzcmMvZWxlbWVudHMvSW50ZXJuYXRpb25hUGhvbmVOdW1iZXIvRmxhZ3MyeC50cyIsInNyYy9lbGVtZW50cy9JbnRlcm5hdGlvbmFQaG9uZU51bWJlci9JbnRlcm5hdGlvbmFQaG9uZU51bWJlckVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvTnVtZXJpY0ZpZWxkL051bWVyaWNGaWVsZEVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvUmFkaW9CdXR0b25Hcm91cC9SYWRpb0J1dHRvbkdyb3VwRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9TRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50L1NFQ29tcGFueVJlZ2lzdHJhdGlvbkVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvU0VQZXJzb25hbE51bWJlckVsZW1lbnQvU0VQZXJzb25hbE51bWJlckVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvVGV4dEFyZWFFbGVtZW50L1RleHRBcmVhRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9UeXBlQWhlYWQvVHlwZUFoZWFkRWxlbWVudC50cyIsInNyYy9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzLnRzIiwic3JjL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9CYXNlL0Jhc2VEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvQ3plY2hEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvRGFuaXNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0R1dGNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0VuZ2xpc2hEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvRXN0b25pYW5EaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvRmlubmlzaERpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9GcmVuY2hEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvR2VybWFuRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0dyZWVrRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0h1bmdhcmlhbkRpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9JY2VsYW5kaWNEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvSXRhbGlhbkRpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9MYXR2aWFuRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0xpdHVhbmlhbkRpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9Ob3J3ZWdpYW5EaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvUG9saXNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL1BvcnR1Z3Vlc2VEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvU3BhbmlzaERpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9Td2VkaXNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvVHJhbnNsYXRvci50cyIsInNyYy9mcmFtZXdvcmsvUG9seWZpbGxzL2dldEF0dHJpYnV0ZU5hbWVzUG9seWZpbGwudHMiLCJzcmMvZnJhbWV3b3JrL1V0aWxpdGllcy9BcnJheVV0aWwudHMiLCJzcmMvZnJhbWV3b3JrL1V0aWxpdGllcy9Eb21VdGlsLnRzIiwic3JjL2ZyYW1ld29yay9VdGlsaXRpZXMvRG9tVXRpbGl0eS50cyIsInNyYy9mcmFtZXdvcmsvVXRpbGl0aWVzL01ha2VSZXF1ZXN0LnRzIiwic3JjL2ZyYW1ld29yay9VdGlsaXRpZXMvU3RyaW5nVXRpbC50cyIsInNyYy9mcmFtZXdvcmsvVXRpbGl0aWVzL1ZpZXdwb3J0VXRpbC50cyIsInNyYy9mcmFtZXdvcmsvVXRpbGl0aWVzL2RlYm91bmNlci50cyIsInNyYy9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0JhbmtBY2NvdW50LnRzIiwic3JjL2ZyYW1ld29yay9WYWxpZGF0aW9uL1ZhbGlkYXRvcnMvQmFua0FjY291bnRSZWdpc3RyYXRpb25OdW1iZXIudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rSWROb3J3YXkudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rSWRTd2VkZW4udHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DUFIudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DVlIudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9TRUNvbXBhbnlSZWdpc3RyYXRpb24udHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9TRVBlcnNvbmFsTnVtYmVyLnRzIiwic3JjL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3IudHMiLCJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztBQ0FBLHdDQUFzRDtBQUd0RCxRQUFRLENBQUMsa0JBQWtCLEdBQUc7SUFDMUIsSUFBSSxRQUFRLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtRQUNwQyxJQUFJLElBQUksR0FBRyxJQUFJLGtCQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBQSxPQUFPO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBQSxRQUFRLElBQU0sQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO0tBQ0w7QUFDTCxDQUFDLENBQUM7OztBQ1ZGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDbFhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEI7WUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUI7WUFDRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ3pCO1FBQ0YsQ0FBQyxDQUFDO1FBRUYsR0FBRyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRztZQUNwQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDNUI7WUFDRCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzNCO1FBQ0YsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixrQkFBZSxhQUFhLENBQUM7Ozs7OztBQ3hEN0IsK0RBQTZEO0FBQzdELHlFQUF1RTtBQUN2RSxrRUFBZ0U7QUFFaEUsT0FBTztBQUNQLDZDQUEyQztBQU1sQywyRkFOQSx3QkFBVSxPQU1BO0FBTG5CLHFFQUFvRTtBQUtyQyxtR0FMdEIsdUNBQWtCLE9BS3NCO0FBSGpELFdBQVc7QUFDWCw4Q0FBZ0Q7QUFFM0IsNEJBQVEiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJpbXBvcnQgeyBDdXN0b21Gb3JtLCBlbGVtZW50cyB9IGZyb20gJy4vLi4vc3JjL2luZGV4JztcblxuXG5kb2N1bWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgbGV0IGZvcm0gPSBuZXcgQ3VzdG9tRm9ybShkb2N1bWVudC5mb3Jtc1swXSk7XG4gICAgICAgIGZvcm0ub25zdWJtaXQgPSBwcm9taXNlID0+IHtcbiAgICAgICAgICAgIHByb21pc2UudGhlbihyZXNwb25zZSA9PiB7IH0pO1xuICAgICAgICB9O1xuICAgIH1cbn07XG4iLCIvKipcbkBsaWNlbnNlIEBub2NvbXBpbGVcbkNvcHlyaWdodCAoYykgMjAxOCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5UaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG5Db2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzb1xuc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiovXG4oZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIChmdW5jdGlvbigpe2lmKHZvaWQgMD09PXdpbmRvdy5SZWZsZWN0fHx2b2lkIDA9PT13aW5kb3cuY3VzdG9tRWxlbWVudHN8fHdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKXJldHVybjtjb25zdCBhPUhUTUxFbGVtZW50O3dpbmRvdy5IVE1MRWxlbWVudD17SFRNTEVsZW1lbnQ6ZnVuY3Rpb24gSFRNTEVsZW1lbnQoKXtyZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3QoYSxbXSx0aGlzLmNvbnN0cnVjdG9yKX19LkhUTUxFbGVtZW50LEhUTUxFbGVtZW50LnByb3RvdHlwZT1hLnByb3RvdHlwZSxIVE1MRWxlbWVudC5wcm90b3R5cGUuY29uc3RydWN0b3I9SFRNTEVsZW1lbnQsT2JqZWN0LnNldFByb3RvdHlwZU9mKEhUTUxFbGVtZW50LGEpO30pKCk7XG5cbn0oKSk7XG4iLCIvKipcbkBsaWNlbnNlIEBub2NvbXBpbGVcbkNvcHlyaWdodCAoYykgMjAxOCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5UaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG5Db2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzb1xuc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiovXG4oZnVuY3Rpb24oKXsvKlxuXG4gQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXRcbiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZFxuIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXlcbiBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5XG4gR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUFxuIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiovXG4ndXNlIHN0cmljdCc7dmFyIHY7ZnVuY3Rpb24gYmEoYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19dmFyIGNhPVwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07XG5mdW5jdGlvbiBkYShhKXthPVtcIm9iamVjdFwiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyxcIm9iamVjdFwiPT10eXBlb2Ygc2VsZiYmc2VsZixcIm9iamVjdFwiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcihcIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3RcIik7fXZhciBlYT1kYSh0aGlzKTtmdW5jdGlvbiBpYShhLGIpe2lmKGIpYTp7dmFyIGM9ZWE7YT1hLnNwbGl0KFwiLlwiKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlicmVhayBhO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiZjYShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9fVxuaWEoXCJTeW1ib2xcIixmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGUpe2lmKHRoaXMgaW5zdGFuY2VvZiBiKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3JcIik7cmV0dXJuIG5ldyBjKFwianNjb21wX3N5bWJvbF9cIisoZXx8XCJcIikrXCJfXCIrZCsrLGUpfWZ1bmN0aW9uIGMoZSxmKXt0aGlzLmc9ZTtjYSh0aGlzLFwiZGVzY3JpcHRpb25cIix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9KX1pZihhKXJldHVybiBhO2MucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ307dmFyIGQ9MDtyZXR1cm4gYn0pO1xuaWEoXCJTeW1ib2wuaXRlcmF0b3JcIixmdW5jdGlvbihhKXtpZihhKXJldHVybiBhO2E9U3ltYm9sKFwiU3ltYm9sLml0ZXJhdG9yXCIpO2Zvcih2YXIgYj1cIkFycmF5IEludDhBcnJheSBVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEludDE2QXJyYXkgVWludDE2QXJyYXkgSW50MzJBcnJheSBVaW50MzJBcnJheSBGbG9hdDMyQXJyYXkgRmxvYXQ2NEFycmF5XCIuc3BsaXQoXCIgXCIpLGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9ZWFbYltjXV07XCJmdW5jdGlvblwiPT09dHlwZW9mIGQmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGQucHJvdG90eXBlW2FdJiZjYShkLnByb3RvdHlwZSxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gamEoYmEodGhpcykpfX0pfXJldHVybiBhfSk7ZnVuY3Rpb24gamEoYSl7YT17bmV4dDphfTthW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307cmV0dXJuIGF9XG5mdW5jdGlvbiBrYShhKXt2YXIgYj1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6e25leHQ6YmEoYSl9fWZ1bmN0aW9uIHgoYSl7aWYoIShhIGluc3RhbmNlb2YgQXJyYXkpKXthPWthKGEpO2Zvcih2YXIgYixjPVtdOyEoYj1hLm5leHQoKSkuZG9uZTspYy5wdXNoKGIudmFsdWUpO2E9Y31yZXR1cm4gYX12YXIgbWE7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mKW1hPU9iamVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBuYTthOnt2YXIgb2E9e2E6ITB9LHBhPXt9O3RyeXtwYS5fX3Byb3RvX189b2E7bmE9cGEuYTticmVhayBhfWNhdGNoKGEpe31uYT0hMX1tYT1uYT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYStcIiBpcyBub3QgZXh0ZW5zaWJsZVwiKTtyZXR1cm4gYX06bnVsbH1cbnZhciBxYT1tYTtmdW5jdGlvbiByYSgpe3RoaXMudT0hMTt0aGlzLmg9bnVsbDt0aGlzLkthPXZvaWQgMDt0aGlzLmc9MTt0aGlzLmRhPTA7dGhpcy5pPW51bGx9ZnVuY3Rpb24gdWEoYSl7aWYoYS51KXRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nXCIpO2EudT0hMH1yYS5wcm90b3R5cGUuTz1mdW5jdGlvbihhKXt0aGlzLkthPWF9O2Z1bmN0aW9uIHhhKGEsYil7YS5pPXtXYTpiLCRhOiEwfTthLmc9YS5kYX1yYS5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuaT17cmV0dXJuOmF9O3RoaXMuZz10aGlzLmRhfTtmdW5jdGlvbiB5YShhLGIpe2EuZz0zO3JldHVybnt2YWx1ZTpifX1mdW5jdGlvbiB6YShhKXt0aGlzLmc9bmV3IHJhO3RoaXMuaD1hfVxuZnVuY3Rpb24gQWEoYSxiKXt1YShhLmcpO3ZhciBjPWEuZy5oO2lmKGMpcmV0dXJuIEJhKGEsXCJyZXR1cm5cImluIGM/Y1tcInJldHVyblwiXTpmdW5jdGlvbihkKXtyZXR1cm57dmFsdWU6ZCxkb25lOiEwfX0sYixhLmcucmV0dXJuKTthLmcucmV0dXJuKGIpO3JldHVybiBDYShhKX1mdW5jdGlvbiBCYShhLGIsYyxkKXt0cnl7dmFyIGU9Yi5jYWxsKGEuZy5oLGMpO2lmKCEoZSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkl0ZXJhdG9yIHJlc3VsdCBcIitlK1wiIGlzIG5vdCBhbiBvYmplY3RcIik7aWYoIWUuZG9uZSlyZXR1cm4gYS5nLnU9ITEsZTt2YXIgZj1lLnZhbHVlfWNhdGNoKGcpe3JldHVybiBhLmcuaD1udWxsLHhhKGEuZyxnKSxDYShhKX1hLmcuaD1udWxsO2QuY2FsbChhLmcsZik7cmV0dXJuIENhKGEpfVxuZnVuY3Rpb24gQ2EoYSl7Zm9yKDthLmcuZzspdHJ5e3ZhciBiPWEuaChhLmcpO2lmKGIpcmV0dXJuIGEuZy51PSExLHt2YWx1ZTpiLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGMpe2EuZy5LYT12b2lkIDAseGEoYS5nLGMpfWEuZy51PSExO2lmKGEuZy5pKXtiPWEuZy5pO2EuZy5pPW51bGw7aWYoYi4kYSl0aHJvdyBiLldhO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fVxuZnVuY3Rpb24gRGEoYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3VhKGEuZyk7YS5nLmg/Yj1CYShhLGEuZy5oLm5leHQsYixhLmcuTyk6KGEuZy5PKGIpLGI9Q2EoYSkpO3JldHVybiBifTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3VhKGEuZyk7YS5nLmg/Yj1CYShhLGEuZy5oW1widGhyb3dcIl0sYixhLmcuTyk6KHhhKGEuZyxiKSxiPUNhKGEpKTtyZXR1cm4gYn07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIEFhKGEsYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX1mdW5jdGlvbiBFYShhLGIpe2I9bmV3IERhKG5ldyB6YShiKSk7cWEmJmEucHJvdG90eXBlJiZxYShiLGEucHJvdG90eXBlKTtyZXR1cm4gYn1BcnJheS5mcm9tfHwoQXJyYXkuZnJvbT1mdW5jdGlvbihhKXtyZXR1cm5bXS5zbGljZS5jYWxsKGEpfSk7XG5PYmplY3QuYXNzaWdufHwoT2JqZWN0LmFzc2lnbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSksYz0wLGQ7YzxiLmxlbmd0aDtjKyspaWYoZD1iW2NdKWZvcih2YXIgZT1hLGY9T2JqZWN0LmtleXMoZCksZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgaD1mW2ddO2VbaF09ZFtoXX1yZXR1cm4gYX0pO3ZhciBGYT1zZXRUaW1lb3V0O2Z1bmN0aW9uIEdhKCl7fWZ1bmN0aW9uIEhhKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7YS5hcHBseShiLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIEEoYSl7aWYoISh0aGlzIGluc3RhbmNlb2YgQSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlByb21pc2VzIG11c3QgYmUgY29uc3RydWN0ZWQgdmlhIG5ld1wiKTtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKFwibm90IGEgZnVuY3Rpb25cIik7dGhpcy5OPTA7dGhpcy5FYT0hMTt0aGlzLkk9dm9pZCAwO3RoaXMuYmE9W107SWEoYSx0aGlzKX1cbmZ1bmN0aW9uIEphKGEsYil7Zm9yKDszPT09YS5OOylhPWEuSTswPT09YS5OP2EuYmEucHVzaChiKTooYS5FYT0hMCxLYShmdW5jdGlvbigpe3ZhciBjPTE9PT1hLk4/Yi5iYjpiLmNiO2lmKG51bGw9PT1jKSgxPT09YS5OP0xhOk1hKShiLnByb21pc2UsYS5JKTtlbHNle3RyeXt2YXIgZD1jKGEuSSl9Y2F0Y2goZSl7TWEoYi5wcm9taXNlLGUpO3JldHVybn1MYShiLnByb21pc2UsZCl9fSkpfVxuZnVuY3Rpb24gTGEoYSxiKXt0cnl7aWYoYj09PWEpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkEgcHJvbWlzZSBjYW5ub3QgYmUgcmVzb2x2ZWQgd2l0aCBpdHNlbGYuXCIpO2lmKGImJihcIm9iamVjdFwiPT09dHlwZW9mIGJ8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBiKSl7dmFyIGM9Yi50aGVuO2lmKGIgaW5zdGFuY2VvZiBBKXthLk49MzthLkk9YjtOYShhKTtyZXR1cm59aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGMpe0lhKEhhKGMsYiksYSk7cmV0dXJufX1hLk49MTthLkk9YjtOYShhKX1jYXRjaChkKXtNYShhLGQpfX1mdW5jdGlvbiBNYShhLGIpe2EuTj0yO2EuST1iO05hKGEpfVxuZnVuY3Rpb24gTmEoYSl7Mj09PWEuTiYmMD09PWEuYmEubGVuZ3RoJiZLYShmdW5jdGlvbigpe2EuRWF8fFwidW5kZWZpbmVkXCIhPT10eXBlb2YgY29uc29sZSYmY29uc29sZSYmY29uc29sZS53YXJuKFwiUG9zc2libGUgVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOlwiLGEuSSl9KTtmb3IodmFyIGI9MCxjPWEuYmEubGVuZ3RoO2I8YztiKyspSmEoYSxhLmJhW2JdKTthLmJhPW51bGx9ZnVuY3Rpb24gT2EoYSxiLGMpe3RoaXMuYmI9XCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsO3RoaXMuY2I9XCJmdW5jdGlvblwiPT09dHlwZW9mIGI/YjpudWxsO3RoaXMucHJvbWlzZT1jfWZ1bmN0aW9uIElhKGEsYil7dmFyIGM9ITE7dHJ5e2EoZnVuY3Rpb24oZCl7Y3x8KGM9ITAsTGEoYixkKSl9LGZ1bmN0aW9uKGQpe2N8fChjPSEwLE1hKGIsZCkpfSl9Y2F0Y2goZCl7Y3x8KGM9ITAsTWEoYixkKSl9fVxuQS5wcm90b3R5cGVbXCJjYXRjaFwiXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsYSl9O0EucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihHYSk7SmEodGhpcyxuZXcgT2EoYSxiLGMpKTtyZXR1cm4gY307QS5wcm90b3R5cGVbXCJmaW5hbGx5XCJdPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gYi5yZXNvbHZlKGEoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBjfSl9LGZ1bmN0aW9uKGMpe3JldHVybiBiLnJlc29sdmUoYSgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGIucmVqZWN0KGMpfSl9KX07XG5mdW5jdGlvbiBQYShhKXtyZXR1cm4gbmV3IEEoZnVuY3Rpb24oYixjKXtmdW5jdGlvbiBkKGgsayl7dHJ5e2lmKGsmJihcIm9iamVjdFwiPT09dHlwZW9mIGt8fFwiZnVuY3Rpb25cIj09PXR5cGVvZiBrKSl7dmFyIGw9ay50aGVuO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBsKXtsLmNhbGwoayxmdW5jdGlvbihtKXtkKGgsbSl9LGMpO3JldHVybn19ZVtoXT1rOzA9PT0tLWYmJmIoZSl9Y2F0Y2gobSl7YyhtKX19aWYoIWF8fFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYS5sZW5ndGgpcmV0dXJuIGMobmV3IFR5cGVFcnJvcihcIlByb21pc2UuYWxsIGFjY2VwdHMgYW4gYXJyYXlcIikpO3ZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gYihbXSk7Zm9yKHZhciBmPWUubGVuZ3RoLGc9MDtnPGUubGVuZ3RoO2crKylkKGcsZVtnXSl9KX1cbmZ1bmN0aW9uIFFhKGEpe3JldHVybiBhJiZcIm9iamVjdFwiPT09dHlwZW9mIGEmJmEuY29uc3RydWN0b3I9PT1BP2E6bmV3IEEoZnVuY3Rpb24oYil7YihhKX0pfWZ1bmN0aW9uIFJhKGEpe3JldHVybiBuZXcgQShmdW5jdGlvbihiLGMpe2MoYSl9KX1mdW5jdGlvbiBTYShhKXtyZXR1cm4gbmV3IEEoZnVuY3Rpb24oYixjKXtpZighYXx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBhLmxlbmd0aClyZXR1cm4gYyhuZXcgVHlwZUVycm9yKFwiUHJvbWlzZS5yYWNlIGFjY2VwdHMgYW4gYXJyYXlcIikpO2Zvcih2YXIgZD0wLGU9YS5sZW5ndGg7ZDxlO2QrKylRYShhW2RdKS50aGVuKGIsYyl9KX12YXIgS2E9XCJmdW5jdGlvblwiPT09dHlwZW9mIHNldEltbWVkaWF0ZSYmZnVuY3Rpb24oYSl7c2V0SW1tZWRpYXRlKGEpfXx8ZnVuY3Rpb24oYSl7RmEoYSwwKX07LypcblxuQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cblRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdFxuaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXRcbmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmVcbmZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0IENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzXG5wYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50XG5mb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiovXG5pZighd2luZG93LlByb21pc2Upe3dpbmRvdy5Qcm9taXNlPUE7QS5wcm90b3R5cGUudGhlbj1BLnByb3RvdHlwZS50aGVuO0EuYWxsPVBhO0EucmFjZT1TYTtBLnJlc29sdmU9UWE7QS5yZWplY3Q9UmE7dmFyIFRhPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiXCIpLFZhPVtdOyhuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2Zvcih2YXIgYT1WYS5sZW5ndGgsYj0wO2I8YTtiKyspVmFbYl0oKTtWYS5zcGxpY2UoMCxhKX0pKS5vYnNlcnZlKFRhLHtjaGFyYWN0ZXJEYXRhOiEwfSk7S2E9ZnVuY3Rpb24oYSl7VmEucHVzaChhKTtUYS50ZXh0Q29udGVudD0wPFRhLnRleHRDb250ZW50Lmxlbmd0aD9cIlwiOlwiYVwifX07LypcbiBDb3B5cmlnaHQgKEMpIDIwMTUgYnkgV2ViUmVmbGVjdGlvblxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG5vZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5pbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG50byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG5jb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG5hbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5PVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG5USEUgU09GVFdBUkUuXG5cbiovXG4oZnVuY3Rpb24oYSxiKXtpZighKGIgaW4gYSkpe3ZhciBjPXR5cGVvZiBnbG9iYWw9PT10eXBlb2YgYz93aW5kb3c6Z2xvYmFsLGQ9MCxlPVN0cmluZyhNYXRoLnJhbmRvbSgpKSxmPVwiX19cXHUwMDAxc3ltYm9sQEBcIitlLGc9YS5nZXRPd25Qcm9wZXJ0eU5hbWVzLGg9YS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isaz1hLmNyZWF0ZSxsPWEua2V5cyxtPWEuZnJlZXplfHxhLHE9YS5kZWZpbmVQcm9wZXJ0eSxIPWEuZGVmaW5lUHJvcGVydGllcyxDPWgoYSxcImdldE93blByb3BlcnR5TmFtZXNcIiksdD1hLnByb3RvdHlwZSxGPXQuaGFzT3duUHJvcGVydHksRT10LnByb3BlcnR5SXNFbnVtZXJhYmxlLE09dC50b1N0cmluZyx5PWZ1bmN0aW9uKEksdSxHKXtGLmNhbGwoSSxmKXx8cShJLGYse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOnt9fSk7SVtmXVtcIkBAXCIrdV09R30sVz1mdW5jdGlvbihJLHUpe3ZhciBHPWsoSSk7Zyh1KS5mb3JFYWNoKGZ1bmN0aW9uKHApe3NhLmNhbGwodSxcbnApJiZVYShHLHAsdVtwXSl9KTtyZXR1cm4gR30sdz1mdW5jdGlvbigpe30sdGE9ZnVuY3Rpb24oSSl7cmV0dXJuIEkhPWYmJiFGLmNhbGwoZmEsSSl9LGhhPWZ1bmN0aW9uKEkpe3JldHVybiBJIT1mJiZGLmNhbGwoZmEsSSl9LHNhPWZ1bmN0aW9uKEkpe3ZhciB1PVN0cmluZyhJKTtyZXR1cm4gaGEodSk/Ri5jYWxsKHRoaXMsdSkmJiEhdGhpc1tmXSYmdGhpc1tmXVtcIkBAXCIrdV06RS5jYWxsKHRoaXMsSSl9LG49ZnVuY3Rpb24oSSl7cSh0LEkse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLGdldDp3LHNldDpmdW5jdGlvbih1KXt3YSh0aGlzLEkse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnV9KTt5KHRoaXMsSSwhMCl9fSk7ZmFbSV09cShhKEkpLFwiY29uc3RydWN0b3JcIixnYyk7cmV0dXJuIG0oZmFbSV0pfSxKPWZ1bmN0aW9uIEcodSl7aWYodGhpcyBpbnN0YW5jZW9mIEcpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvclwiKTtcbnJldHVybiBuKFwiX19cXHUwMDAxc3ltYm9sOlwiLmNvbmNhdCh1fHxcIlwiLGUsKytkKSl9LGZhPWsobnVsbCksZ2M9e3ZhbHVlOkp9LGZiPWZ1bmN0aW9uKHUpe3JldHVybiBmYVt1XX0sVWE9ZnVuY3Rpb24odSxHLHApe3ZhciByPVN0cmluZyhHKTtpZihoYShyKSl7Rz13YTtpZihwLmVudW1lcmFibGUpe3ZhciBCPWsocCk7Qi5lbnVtZXJhYmxlPSExfWVsc2UgQj1wO0codSxyLEIpO3kodSxyLCEhcC5lbnVtZXJhYmxlKX1lbHNlIHEodSxHLHApO3JldHVybiB1fSxnYj1mdW5jdGlvbih1KXtyZXR1cm4gZyh1KS5maWx0ZXIoaGEpLm1hcChmYil9O0MudmFsdWU9VWE7cShhLFwiZGVmaW5lUHJvcGVydHlcIixDKTtDLnZhbHVlPWdiO3EoYSxiLEMpO0MudmFsdWU9ZnVuY3Rpb24odSl7cmV0dXJuIGcodSkuZmlsdGVyKHRhKX07cShhLFwiZ2V0T3duUHJvcGVydHlOYW1lc1wiLEMpO0MudmFsdWU9ZnVuY3Rpb24odSxHKXt2YXIgcD1nYihHKTtwLmxlbmd0aD9sKEcpLmNvbmNhdChwKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3NhLmNhbGwoRyxcbnIpJiZVYSh1LHIsR1tyXSl9KTpIKHUsRyk7cmV0dXJuIHV9O3EoYSxcImRlZmluZVByb3BlcnRpZXNcIixDKTtDLnZhbHVlPXNhO3EodCxcInByb3BlcnR5SXNFbnVtZXJhYmxlXCIsQyk7Qy52YWx1ZT1KO3EoYyxcIlN5bWJvbFwiLEMpO0MudmFsdWU9ZnVuY3Rpb24odSl7dT1cIl9fXFx1MDAwMXN5bWJvbDpcIi5jb25jYXQoXCJfX1xcdTAwMDFzeW1ib2w6XCIsdSxlKTtyZXR1cm4gdSBpbiB0P2ZhW3VdOm4odSl9O3EoSixcImZvclwiLEMpO0MudmFsdWU9ZnVuY3Rpb24odSl7aWYodGEodSkpdGhyb3cgbmV3IFR5cGVFcnJvcih1K1wiIGlzIG5vdCBhIHN5bWJvbFwiKTtpZihGLmNhbGwoZmEsdSkmJih1PXUuc2xpY2UoMTApLFwiX19cXHUwMDAxc3ltYm9sOlwiPT09dS5zbGljZSgwLDEwKSYmKHU9dS5zbGljZSgxMCksdSE9PWUpKSlyZXR1cm4gdT11LnNsaWNlKDAsdS5sZW5ndGgtZS5sZW5ndGgpLDA8dS5sZW5ndGg/dTp2b2lkIDB9O3EoSixcImtleUZvclwiLEMpO0MudmFsdWU9ZnVuY3Rpb24odSxHKXt2YXIgcD1cbmgodSxHKTtwJiZoYShHKSYmKHAuZW51bWVyYWJsZT1zYS5jYWxsKHUsRykpO3JldHVybiBwfTtxKGEsXCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JcIixDKTtDLnZhbHVlPWZ1bmN0aW9uKHUsRyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RofHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIEc/ayh1KTpXKHUsRyl9O3EoYSxcImNyZWF0ZVwiLEMpO0MudmFsdWU9ZnVuY3Rpb24oKXt2YXIgdT1NLmNhbGwodGhpcyk7cmV0dXJuXCJbb2JqZWN0IFN0cmluZ11cIj09PXUmJmhhKHRoaXMpP1wiW29iamVjdCBTeW1ib2xdXCI6dX07cSh0LFwidG9TdHJpbmdcIixDKTt0cnl7aWYoITA9PT1rKHEoe30sXCJfX1xcdTAwMDFzeW1ib2w6XCIse2dldDpmdW5jdGlvbigpe3JldHVybiBxKHRoaXMsXCJfX1xcdTAwMDFzeW1ib2w6XCIse3ZhbHVlOiEwfSlbXCJfX1xcdTAwMDFzeW1ib2w6XCJdfX0pKVtcIl9fXFx1MDAwMXN5bWJvbDpcIl0pdmFyIHdhPXE7ZWxzZSB0aHJvd1wiSUUxMVwiO31jYXRjaCh1KXt3YT1mdW5jdGlvbihHLHAscil7dmFyIEI9XG5oKHQscCk7ZGVsZXRlIHRbcF07cShHLHAscik7cSh0LHAsQil9fX19KShPYmplY3QsXCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHNcIik7XG4oZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmRlZmluZVByb3BlcnR5LGQ9YS5wcm90b3R5cGUsZT1kLnRvU3RyaW5nLGY7XCJpdGVyYXRvciBtYXRjaCByZXBsYWNlIHNlYXJjaCBzcGxpdCBoYXNJbnN0YW5jZSBpc0NvbmNhdFNwcmVhZGFibGUgdW5zY29wYWJsZXMgc3BlY2llcyB0b1ByaW1pdGl2ZSB0b1N0cmluZ1RhZ1wiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2cgaW4gYnx8KGMoYixnLHt2YWx1ZTpiKGcpfSksXCJ0b1N0cmluZ1RhZ1wiPT09ZyYmKGY9YS5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCxcInRvU3RyaW5nXCIpLGYudmFsdWU9ZnVuY3Rpb24oKXt2YXIgaD1lLmNhbGwodGhpcyksaz1udWxsPT10aGlzP3RoaXM6dGhpc1tiLnRvU3RyaW5nVGFnXTtyZXR1cm4gbnVsbD09az9oOlwiW29iamVjdCBcIitrK1wiXVwifSxjKGQsXCJ0b1N0cmluZ1wiLGYpKSl9KX0pKE9iamVjdCxTeW1ib2wpO1xuKGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKCl7cmV0dXJuIHRoaXN9YlthXXx8KGJbYV09ZnVuY3Rpb24oKXt2YXIgZT0wLGY9dGhpcyxnPXtuZXh0OmZ1bmN0aW9uKCl7dmFyIGg9Zi5sZW5ndGg8PWU7cmV0dXJuIGg/e2RvbmU6aH06e2RvbmU6aCx2YWx1ZTpmW2UrK119fX07Z1thXT1kO3JldHVybiBnfSk7Y1thXXx8KGNbYV09ZnVuY3Rpb24oKXt2YXIgZT1TdHJpbmcuZnJvbUNvZGVQb2ludCxmPXRoaXMsZz0wLGg9Zi5sZW5ndGgsaz17bmV4dDpmdW5jdGlvbigpe3ZhciBsPWg8PWcsbT1sP1wiXCI6ZShmLmNvZGVQb2ludEF0KGcpKTtnKz1tLmxlbmd0aDtyZXR1cm4gbD97ZG9uZTpsfTp7ZG9uZTpsLHZhbHVlOm19fX07a1thXT1kO3JldHVybiBrfSl9KShTeW1ib2wuaXRlcmF0b3IsQXJyYXkucHJvdG90eXBlLFN0cmluZy5wcm90b3R5cGUpOy8qXG5cbkNvcHlyaWdodCAoYykgMjAxOCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5UaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXRcbmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0XG5odHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlXG5mb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhc1xucGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudFxuZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xudmFyIFdhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzP1wiW29iamVjdCBVbmRlZmluZWRdXCI6bnVsbD09PXRoaXM/XCJbb2JqZWN0IE51bGxdXCI6V2EuY2FsbCh0aGlzKX07T2JqZWN0LmtleXM9ZnVuY3Rpb24oYSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGEpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4oYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsYikpJiZiLmVudW1lcmFibGV9KX07XG5TdHJpbmcucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0mJlN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXR8fChTdHJpbmcucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24gWGEoKXt2YXIgYixjPXRoaXM7cmV0dXJuIEVhKFhhLGZ1bmN0aW9uKGQpezE9PWQuZyYmKGI9MCk7aWYoMyE9ZC5nKXJldHVybiBiPGMubGVuZ3RoP2Q9eWEoZCxjW2JdKTooZC5nPTAsZD12b2lkIDApLGQ7YisrO2QuZz0yfSl9KTtTZXQucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl18fChTZXQucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24gWWEoKXt2YXIgYixjPXRoaXMsZDtyZXR1cm4gRWEoWWEsZnVuY3Rpb24oZSl7MT09ZS5nJiYoYj1bXSxjLmZvckVhY2goZnVuY3Rpb24oZil7Yi5wdXNoKGYpfSksZD0wKTtpZigzIT1lLmcpcmV0dXJuIGQ8Yi5sZW5ndGg/ZT15YShlLGJbZF0pOihlLmc9MCxlPXZvaWQgMCksZTtkKys7ZS5nPTJ9KX0pO1xuTWFwLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdfHwoTWFwLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uIFphKCl7dmFyIGIsYz10aGlzLGQ7cmV0dXJuIEVhKFphLGZ1bmN0aW9uKGUpezE9PWUuZyYmKGI9W10sYy5mb3JFYWNoKGZ1bmN0aW9uKGYsZyl7Yi5wdXNoKFtnLGZdKX0pLGQ9MCk7aWYoMyE9ZS5nKXJldHVybiBkPGIubGVuZ3RoP2U9eWEoZSxiW2RdKTooZS5nPTAsZT12b2lkIDApLGU7ZCsrO2UuZz0yfSl9KTsvKlxuXG5Db3B5cmlnaHQgKGMpIDIwMjAgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dFxuQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbnN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xudmFyICRhPWRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiRXZlbnRcIik7JGEuaW5pdEV2ZW50KFwiZm9vXCIsITAsITApOyRhLnByZXZlbnREZWZhdWx0KCk7aWYoISRhLmRlZmF1bHRQcmV2ZW50ZWQpe3ZhciBhYj1FdmVudC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ7RXZlbnQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxhYmxlJiYoYWIuY2FsbCh0aGlzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImRlZmF1bHRQcmV2ZW50ZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGNvbmZpZ3VyYWJsZTohMH0pKX19dmFyIGJiPS9UcmlkZW50Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuaWYoIXdpbmRvdy5FdmVudHx8YmImJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiB3aW5kb3cuRXZlbnQpe3ZhciBjYj13aW5kb3cuRXZlbnQ7d2luZG93LkV2ZW50PWZ1bmN0aW9uKGEsYil7Yj1ifHx7fTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO2MuaW5pdEV2ZW50KGEsISFiLmJ1YmJsZXMsISFiLmNhbmNlbGFibGUpO3JldHVybiBjfTtpZihjYil7Zm9yKHZhciBkYiBpbiBjYil3aW5kb3cuRXZlbnRbZGJdPWNiW2RiXTt3aW5kb3cuRXZlbnQucHJvdG90eXBlPWNiLnByb3RvdHlwZX19XG5pZighd2luZG93LkN1c3RvbUV2ZW50fHxiYiYmXCJmdW5jdGlvblwiIT09dHlwZW9mIHdpbmRvdy5DdXN0b21FdmVudCl3aW5kb3cuQ3VzdG9tRXZlbnQ9ZnVuY3Rpb24oYSxiKXtiPWJ8fHt9O3ZhciBjPWRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiQ3VzdG9tRXZlbnRcIik7Yy5pbml0Q3VzdG9tRXZlbnQoYSwhIWIuYnViYmxlcywhIWIuY2FuY2VsYWJsZSxiLmRldGFpbCk7cmV0dXJuIGN9LHdpbmRvdy5DdXN0b21FdmVudC5wcm90b3R5cGU9d2luZG93LkV2ZW50LnByb3RvdHlwZTtcbmlmKCF3aW5kb3cuTW91c2VFdmVudHx8YmImJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiB3aW5kb3cuTW91c2VFdmVudCl7dmFyIGViPXdpbmRvdy5Nb3VzZUV2ZW50O3dpbmRvdy5Nb3VzZUV2ZW50PWZ1bmN0aW9uKGEsYil7Yj1ifHx7fTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFdmVudChcIk1vdXNlRXZlbnRcIik7Yy5pbml0TW91c2VFdmVudChhLCEhYi5idWJibGVzLCEhYi5jYW5jZWxhYmxlLGIudmlld3x8d2luZG93LGIuZGV0YWlsLGIuc2NyZWVuWCxiLnNjcmVlblksYi5jbGllbnRYLGIuY2xpZW50WSxiLmN0cmxLZXksYi5hbHRLZXksYi5zaGlmdEtleSxiLm1ldGFLZXksYi5idXR0b24sYi5yZWxhdGVkVGFyZ2V0KTtyZXR1cm4gY307aWYoZWIpZm9yKHZhciBoYiBpbiBlYil3aW5kb3cuTW91c2VFdmVudFtoYl09ZWJbaGJdO3dpbmRvdy5Nb3VzZUV2ZW50LnByb3RvdHlwZT1lYi5wcm90b3R5cGV9O09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsXCJiYXNlVVJJXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoTm9kZS5wcm90b3R5cGUsXCJiYXNlVVJJXCIse2dldDpmdW5jdGlvbigpe3ZhciBhPSh0aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMpLnF1ZXJ5U2VsZWN0b3IoXCJiYXNlW2hyZWZdXCIpO3JldHVybiBhJiZhLmhyZWZ8fHdpbmRvdy5sb2NhdGlvbi5ocmVmfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pOy8qXG5cbkNvcHlyaWdodCAoYykgMjAyMCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5UaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXRcbmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0XG5odHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlXG5mb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhc1xucGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudFxuZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xudmFyIGliLGpiLGtiPUVsZW1lbnQucHJvdG90eXBlLG5iPW51bGwhPT0oaWI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrYixcImF0dHJpYnV0ZXNcIikpJiZ2b2lkIDAhPT1pYj9pYjpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwiYXR0cmlidXRlc1wiKSxvYj1udWxsIT09KGpiPW51bGw9PT1uYnx8dm9pZCAwPT09bmI/dm9pZCAwOm5iLmdldCkmJnZvaWQgMCE9PWpiP2piOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc30scGI9QXJyYXkucHJvdG90eXBlLm1hcDtrYi5oYXNPd25Qcm9wZXJ0eShcImdldEF0dHJpYnV0ZU5hbWVzXCIpfHwoa2IuZ2V0QXR0cmlidXRlTmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4gcGIuY2FsbChvYi5jYWxsKHRoaXMpLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5hbWV9KX0pO3ZhciBxYixyYj1FbGVtZW50LnByb3RvdHlwZTtyYi5oYXNPd25Qcm9wZXJ0eShcIm1hdGNoZXNcIil8fChyYi5tYXRjaGVzPW51bGwhPT0ocWI9cmIud2Via2l0TWF0Y2hlc1NlbGVjdG9yKSYmdm9pZCAwIT09cWI/cWI6cmIubXNNYXRjaGVzU2VsZWN0b3IpO3ZhciBzYj1Ob2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZDtmdW5jdGlvbiB0YihhKXthPWEucHJvdG90eXBlO2EuaGFzT3duUHJvcGVydHkoXCJhcHBlbmRcIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwiYXBwZW5kXCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhcmd1bWVudHMubGVuZ3RoOysrZCljW2RdPWFyZ3VtZW50c1tkXTtjPWthKGMpO2ZvcihkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlkPWQudmFsdWUsc2IuY2FsbCh0aGlzLFwic3RyaW5nXCI9PT10eXBlb2YgZD9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkKTpkKX19KX10YihEb2N1bWVudCk7dGIoRG9jdW1lbnRGcmFnbWVudCk7dGIoRWxlbWVudCk7dmFyIHViLHZiLHdiPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSx4Yj1udWxsIT09KHZiPW51bGw9PT0odWI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcImZpcnN0Q2hpbGRcIikpfHx2b2lkIDA9PT11Yj92b2lkIDA6dWIuZ2V0KSYmdm9pZCAwIT09dmI/dmI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maXJzdENoaWxkfTtcbmZ1bmN0aW9uIHliKGEpe2E9YS5wcm90b3R5cGU7YS5oYXNPd25Qcm9wZXJ0eShcInByZXBlbmRcIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwicHJlcGVuZFwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihiKXtmb3IodmFyIGM9W10sZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDsrK2QpY1tkXT1hcmd1bWVudHNbZF07ZD14Yi5jYWxsKHRoaXMpO2M9a2EoYyk7Zm9yKHZhciBlPWMubmV4dCgpOyFlLmRvbmU7ZT1jLm5leHQoKSllPWUudmFsdWUsd2IuY2FsbCh0aGlzLFwic3RyaW5nXCI9PT10eXBlb2YgZT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKTplLGQpfX0pfXliKERvY3VtZW50KTt5YihEb2N1bWVudEZyYWdtZW50KTt5YihFbGVtZW50KTt2YXIgemIsQWIsQmI9Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsQ2I9Tm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsRGI9bnVsbCE9PShBYj1udWxsPT09KHpiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsXCJmaXJzdENoaWxkXCIpKXx8dm9pZCAwPT09emI/dm9pZCAwOnpiLmdldCkmJnZvaWQgMCE9PUFiP0FiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07XG5mdW5jdGlvbiBFYihhKXthPWEucHJvdG90eXBlO2EuaGFzT3duUHJvcGVydHkoXCJyZXBsYWNlQ2hpbGRyZW5cIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwicmVwbGFjZUNoaWxkcmVuXCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhcmd1bWVudHMubGVuZ3RoOysrZCljW2RdPWFyZ3VtZW50c1tkXTtmb3IoO251bGwhPT0oZD1EYi5jYWxsKHRoaXMpKTspQ2IuY2FsbCh0aGlzLGQpO2M9a2EoYyk7Zm9yKGQ9Yy5uZXh0KCk7IWQuZG9uZTtkPWMubmV4dCgpKWQ9ZC52YWx1ZSxCYi5jYWxsKHRoaXMsXCJzdHJpbmdcIj09PXR5cGVvZiBkP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpOmQpfX0pfUViKERvY3VtZW50KTtFYihEb2N1bWVudEZyYWdtZW50KTtFYihFbGVtZW50KTt2YXIgRmIsR2IsSGIsSWIsSmI9Tm9kZS5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlLEtiPW51bGwhPT0oR2I9bnVsbD09PShGYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwicGFyZW50Tm9kZVwiKSl8fHZvaWQgMD09PUZiP3ZvaWQgMDpGYi5nZXQpJiZ2b2lkIDAhPT1HYj9HYjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9LExiPW51bGwhPT0oSWI9bnVsbD09PShIYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwibmV4dFNpYmxpbmdcIikpfHx2b2lkIDA9PT1IYj92b2lkIDA6SGIuZ2V0KSYmdm9pZCAwIT09SWI/SWI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZXh0U2libGluZ307XG5mdW5jdGlvbiBNYihhKXthPWEucHJvdG90eXBlO2EuaGFzT3duUHJvcGVydHkoXCJhZnRlclwiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsXCJhZnRlclwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihiKXtmb3IodmFyIGM9W10sZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDsrK2QpY1tkXT1hcmd1bWVudHNbZF07ZD1LYi5jYWxsKHRoaXMpO2lmKG51bGwhPT1kKXt2YXIgZT1MYi5jYWxsKHRoaXMpO2M9a2EoYyk7Zm9yKHZhciBmPWMubmV4dCgpOyFmLmRvbmU7Zj1jLm5leHQoKSlmPWYudmFsdWUsSmIuY2FsbChkLFwic3RyaW5nXCI9PT10eXBlb2YgZj9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShmKTpmLGUpfX19KX1NYihDaGFyYWN0ZXJEYXRhKTtNYihFbGVtZW50KTt2YXIgTmIsT2IsUGI9Tm9kZS5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlLFFiPW51bGwhPT0oT2I9bnVsbD09PShOYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwicGFyZW50Tm9kZVwiKSl8fHZvaWQgMD09PU5iP3ZvaWQgMDpOYi5nZXQpJiZ2b2lkIDAhPT1PYj9PYjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9O1xuZnVuY3Rpb24gUmIoYSl7YT1hLnByb3RvdHlwZTthLmhhc093blByb3BlcnR5KFwiYmVmb3JlXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxcImJlZm9yZVwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihiKXtmb3IodmFyIGM9W10sZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDsrK2QpY1tkXT1hcmd1bWVudHNbZF07ZD1RYi5jYWxsKHRoaXMpO2lmKG51bGwhPT1kKXtjPWthKGMpO2Zvcih2YXIgZT1jLm5leHQoKTshZS5kb25lO2U9Yy5uZXh0KCkpZT1lLnZhbHVlLFBiLmNhbGwoZCxcInN0cmluZ1wiPT09dHlwZW9mIGU/ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSk6ZSx0aGlzKX19fSl9UmIoQ2hhcmFjdGVyRGF0YSk7UmIoRWxlbWVudCk7dmFyIFNiLFRiLFViPU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLFZiPW51bGwhPT0oVGI9bnVsbD09PShTYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwicGFyZW50Tm9kZVwiKSl8fHZvaWQgMD09PVNiP3ZvaWQgMDpTYi5nZXQpJiZ2b2lkIDAhPT1UYj9UYjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9O2Z1bmN0aW9uIFdiKGEpe2E9YS5wcm90b3R5cGU7YS5oYXNPd25Qcm9wZXJ0eShcInJlbW92ZVwiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsXCJyZW1vdmVcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgYj1WYi5jYWxsKHRoaXMpO2ImJlViLmNhbGwoYix0aGlzKX19KX1XYihDaGFyYWN0ZXJEYXRhKTtXYihFbGVtZW50KTt2YXIgWGIsWWIsWmI9Tm9kZS5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlLCRiPU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLGFjPW51bGwhPT0oWWI9bnVsbD09PShYYj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwicGFyZW50Tm9kZVwiKSl8fHZvaWQgMD09PVhiP3ZvaWQgMDpYYi5nZXQpJiZ2b2lkIDAhPT1ZYj9ZYjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVudE5vZGV9O1xuZnVuY3Rpb24gYmMoYSl7YT1hLnByb3RvdHlwZTthLmhhc093blByb3BlcnR5KFwicmVwbGFjZVdpdGhcIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwicmVwbGFjZVdpdGhcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7KytkKWNbZF09YXJndW1lbnRzW2RdO2Q9YWMuY2FsbCh0aGlzKTtpZihudWxsIT09ZCl7Yz1rYShjKTtmb3IodmFyIGU9Yy5uZXh0KCk7IWUuZG9uZTtlPWMubmV4dCgpKWU9ZS52YWx1ZSxaYi5jYWxsKGQsXCJzdHJpbmdcIj09PXR5cGVvZiBlP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpOmUsdGhpcyk7JGIuY2FsbChkLHRoaXMpfX19KX1iYyhDaGFyYWN0ZXJEYXRhKTtiYyhFbGVtZW50KTt2YXIgY2M9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLGRjPXdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUsZWM9d2luZG93LlNWR0VsZW1lbnQucHJvdG90eXBlOyFkYy5oYXNPd25Qcm9wZXJ0eShcImNsYXNzTGlzdFwiKXx8Y2MuaGFzT3duUHJvcGVydHkoXCJjbGFzc0xpc3RcIil8fGVjLmhhc093blByb3BlcnR5KFwiY2xhc3NMaXN0XCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoY2MsXCJjbGFzc0xpc3RcIixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRjLFwiY2xhc3NMaXN0XCIpKTsvKlxuXG4gQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXRcbiBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZFxuIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXlcbiBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5XG4gR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUFxuIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiovXG52YXIgZmM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO2ZjLnRleHRDb250ZW50PVwiYm9keSB7dHJhbnNpdGlvbjogb3BhY2l0eSBlYXNlLWluIDAuMnM7IH0gXFxuYm9keVt1bnJlc29sdmVkXSB7b3BhY2l0eTogMDsgZGlzcGxheTogYmxvY2s7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsgfSBcXG5cIjt2YXIgaGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImhlYWRcIik7aGMuaW5zZXJ0QmVmb3JlKGZjLGhjLmZpcnN0Q2hpbGQpO3ZhciBpYz13aW5kb3c7aWMuV2ViQ29tcG9uZW50cz1pYy5XZWJDb21wb25lbnRzfHx7ZmxhZ3M6e319O3ZhciBqYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj1cIndlYmNvbXBvbmVudHMtYnVuZGxlXCJdJyksa2M9L3djLSguKykvLGxjPXt9O2lmKCFsYy5ub09wdHMpe2xvY2F0aW9uLnNlYXJjaC5zbGljZSgxKS5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbihhKXthPWEuc3BsaXQoXCI9XCIpO3ZhciBiO2FbMF0mJihiPWFbMF0ubWF0Y2goa2MpKSYmKGxjW2JbMV1dPWFbMV18fCEwKX0pO2lmKGpjKWZvcih2YXIgbWM9MCxuYz12b2lkIDA7bmM9amMuYXR0cmlidXRlc1ttY107bWMrKylcInNyY1wiIT09bmMubmFtZSYmKGxjW25jLm5hbWVdPW5jLnZhbHVlfHwhMCk7dmFyIG9jPXt9O2xjLmxvZyYmbGMubG9nLnNwbGl0JiZsYy5sb2cuc3BsaXQoXCIsXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7b2NbYV09ITB9KTtsYy5sb2c9b2N9XG5pYy5XZWJDb21wb25lbnRzLmZsYWdzPWxjO3ZhciBwYz1sYy5zaGFkeWRvbTtpZihwYyl7aWMuU2hhZHlET009aWMuU2hhZHlET018fHt9O2ljLlNoYWR5RE9NLmZvcmNlPXBjO3ZhciBxYz1sYy5ub1BhdGNoO2ljLlNoYWR5RE9NLm5vUGF0Y2g9XCJ0cnVlXCI9PT1xYz8hMDpxY312YXIgcmM9bGMucmVnaXN0ZXJ8fGxjLmNlO3JjJiZ3aW5kb3cuY3VzdG9tRWxlbWVudHMmJihpYy5jdXN0b21FbGVtZW50cy5mb3JjZVBvbHlmaWxsPXJjKTsvKlxuXG4gQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0XG4gVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHRcbiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHRcbiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzb1xuIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xuKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe31mdW5jdGlvbiBiKHAscil7aWYoIXAuY2hpbGROb2Rlcy5sZW5ndGgpcmV0dXJuW107c3dpdGNoKHAubm9kZVR5cGUpe2Nhc2UgTm9kZS5ET0NVTUVOVF9OT0RFOnJldHVybiBGLmNhbGwocCxyKTtjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERTpyZXR1cm4gRS5jYWxsKHAscik7ZGVmYXVsdDpyZXR1cm4gdC5jYWxsKHAscil9fXZhciBjPVwidW5kZWZpbmVkXCI9PT10eXBlb2YgSFRNTFRlbXBsYXRlRWxlbWVudCxkPSEoZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLmNsb25lTm9kZSgpaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KSxlPSExOy9UcmlkZW50Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZmdW5jdGlvbigpe2Z1bmN0aW9uIHAoeixSKXtpZih6IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IodmFyIGxiO2xiPXouZmlyc3RDaGlsZDspQi5jYWxsKHRoaXMsbGIsUik7ZWxzZSBCLmNhbGwodGhpcyxcbnosUik7cmV0dXJuIHp9ZT0hMDt2YXIgcj1Ob2RlLnByb3RvdHlwZS5jbG9uZU5vZGU7Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKHope3o9ci5jYWxsKHRoaXMseik7dGhpcyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQmJih6Ll9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSk7cmV0dXJuIHp9O0RvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGw9SFRNTEVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGw7RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3Rvcj1IVE1MRWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvcjtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSx7bm9kZVR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREV9LGNvbmZpZ3VyYWJsZTohMH0sbG9jYWxOYW1lOntnZXQ6ZnVuY3Rpb24oKXt9LFxuY29uZmlndXJhYmxlOiEwfSxub2RlTmFtZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCIjZG9jdW1lbnQtZnJhZ21lbnRcIn0sY29uZmlndXJhYmxlOiEwfX0pO3ZhciBCPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZTtOb2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmU9cDt2YXIgSz1Ob2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZDtOb2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZD1mdW5jdGlvbih6KXt6IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudD9wLmNhbGwodGhpcyx6LG51bGwpOksuY2FsbCh0aGlzLHopO3JldHVybiB6fTt2YXIgYWE9Tm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsbGE9Tm9kZS5wcm90b3R5cGUucmVwbGFjZUNoaWxkO05vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbih6LFIpe3ogaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50PyhwLmNhbGwodGhpcyx6LFIpLGFhLmNhbGwodGhpcyxSKSk6bGEuY2FsbCh0aGlzLHosUik7cmV0dXJuIFJ9O0RvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVEb2N1bWVudEZyYWdtZW50PVxuZnVuY3Rpb24oKXt2YXIgej10aGlzLmNyZWF0ZUVsZW1lbnQoXCJkZlwiKTt6Ll9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZTtyZXR1cm4gen07dmFyIHZhPURvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlO0RvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlPWZ1bmN0aW9uKHosUil7Uj12YS5jYWxsKHRoaXMseixSfHwhMSk7eiBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQmJihSLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSk7cmV0dXJuIFJ9fSgpO3ZhciBmPU5vZGUucHJvdG90eXBlLmNsb25lTm9kZSxnPURvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50LGg9RG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGUsaz1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxsPU5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkLG09Tm9kZS5wcm90b3R5cGUucmVwbGFjZUNoaWxkLHE9RE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmcsXG5IPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LkhUTUxFbGVtZW50LnByb3RvdHlwZSxcImlubmVySFRNTFwiKXx8e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlubmVySFRNTH0sc2V0OmZ1bmN0aW9uKHApe3RoaXMuaW5uZXJIVE1MPXB9fSxDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93Lk5vZGUucHJvdG90eXBlLFwiY2hpbGROb2Rlc1wiKXx8e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkTm9kZXN9fSx0PUVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwsRj1Eb2N1bWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvckFsbCxFPURvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwsTT1mdW5jdGlvbigpe2lmKCFjKXt2YXIgcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGVtcGxhdGVcIikscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGVtcGxhdGVcIik7ci5jb250ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpO1xucC5jb250ZW50LmFwcGVuZENoaWxkKHIpO3A9cC5jbG9uZU5vZGUoITApO3JldHVybiAwPT09cC5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RofHwwPT09cC5jb250ZW50LmZpcnN0Q2hpbGQuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aHx8ZH19KCk7aWYoYyl7dmFyIHk9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KFwidGVtcGxhdGVcIiksVz0hMCx3PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTt3LnRleHRDb250ZW50PVwidGVtcGxhdGV7ZGlzcGxheTpub25lO31cIjt2YXIgdGE9ZG9jdW1lbnQuaGVhZDt0YS5pbnNlcnRCZWZvcmUodyx0YS5maXJzdEVsZW1lbnRDaGlsZCk7YS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShIVE1MRWxlbWVudC5wcm90b3R5cGUpO3ZhciBoYT0hZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5oYXNPd25Qcm9wZXJ0eShcImlubmVySFRNTFwiKTthLlo9ZnVuY3Rpb24ocCl7aWYoIXAuY29udGVudCYmcC5uYW1lc3BhY2VVUkk9PT1cbmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkkpe3AuY29udGVudD15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IodmFyIHI7cj1wLmZpcnN0Q2hpbGQ7KWwuY2FsbChwLmNvbnRlbnQscik7aWYoaGEpcC5fX3Byb3RvX189YS5wcm90b3R5cGU7ZWxzZSBpZihwLmNsb25lTm9kZT1mdW5jdGlvbihCKXtyZXR1cm4gYS5zYSh0aGlzLEIpfSxXKXRyeXtuKHApLEoocCl9Y2F0Y2goQil7Vz0hMX1hLmJvb3RzdHJhcChwLmNvbnRlbnQpfX07dmFyIHNhPXtvcHRpb246W1wic2VsZWN0XCJdLHRoZWFkOltcInRhYmxlXCJdLGNvbDpbXCJjb2xncm91cFwiLFwidGFibGVcIl0sdHI6W1widGJvZHlcIixcInRhYmxlXCJdLHRoOltcInRyXCIsXCJ0Ym9keVwiLFwidGFibGVcIl0sdGQ6W1widHJcIixcInRib2R5XCIsXCJ0YWJsZVwiXX0sbj1mdW5jdGlvbihwKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocCxcImlubmVySFRNTFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gd2EodGhpcyl9LHNldDpmdW5jdGlvbihyKXt2YXIgQj1cbnNhWygvPChbYS16XVteL1xcMD5cXHgyMFxcdFxcclxcblxcZl0rKS9pLmV4ZWMocil8fFtcIlwiLFwiXCJdKVsxXS50b0xvd2VyQ2FzZSgpXTtpZihCKWZvcih2YXIgSz0wO0s8Qi5sZW5ndGg7SysrKXI9XCI8XCIrQltLXStcIj5cIityK1wiPC9cIitCW0tdK1wiPlwiO3kuYm9keS5pbm5lckhUTUw9cjtmb3IoYS5ib290c3RyYXAoeSk7dGhpcy5jb250ZW50LmZpcnN0Q2hpbGQ7KWsuY2FsbCh0aGlzLmNvbnRlbnQsdGhpcy5jb250ZW50LmZpcnN0Q2hpbGQpO3I9eS5ib2R5O2lmKEIpZm9yKEs9MDtLPEIubGVuZ3RoO0srKylyPXIubGFzdENoaWxkO2Zvcig7ci5maXJzdENoaWxkOylsLmNhbGwodGhpcy5jb250ZW50LHIuZmlyc3RDaGlsZCl9LGNvbmZpZ3VyYWJsZTohMH0pfSxKPWZ1bmN0aW9uKHApe09iamVjdC5kZWZpbmVQcm9wZXJ0eShwLFwib3V0ZXJIVE1MXCIse2dldDpmdW5jdGlvbigpe3JldHVyblwiPHRlbXBsYXRlPlwiK3RoaXMuaW5uZXJIVE1MK1wiPC90ZW1wbGF0ZT5cIn0sc2V0OmZ1bmN0aW9uKHIpe2lmKHRoaXMucGFyZW50Tm9kZSl7eS5ib2R5LmlubmVySFRNTD1cbnI7Zm9yKHI9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt5LmJvZHkuZmlyc3RDaGlsZDspbC5jYWxsKHIseS5ib2R5LmZpcnN0Q2hpbGQpO20uY2FsbCh0aGlzLnBhcmVudE5vZGUscix0aGlzKX1lbHNlIHRocm93IEVycm9yKFwiRmFpbGVkIHRvIHNldCB0aGUgJ291dGVySFRNTCcgcHJvcGVydHkgb24gJ0VsZW1lbnQnOiBUaGlzIGVsZW1lbnQgaGFzIG5vIHBhcmVudCBub2RlLlwiKTt9LGNvbmZpZ3VyYWJsZTohMH0pfTtuKGEucHJvdG90eXBlKTtKKGEucHJvdG90eXBlKTthLmJvb3RzdHJhcD1mdW5jdGlvbihwKXtwPWIocCxcInRlbXBsYXRlXCIpO2Zvcih2YXIgcj0wLEI9cC5sZW5ndGgsSztyPEImJihLPXBbcl0pO3IrKylhLlooSyl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsZnVuY3Rpb24oKXthLmJvb3RzdHJhcChkb2N1bWVudCl9KTtEb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudD1mdW5jdGlvbigpe3ZhciBwPVxuZy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7XCJ0ZW1wbGF0ZVwiPT09cC5sb2NhbE5hbWUmJmEuWihwKTtyZXR1cm4gcH07RE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgcD1xLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthLmJvb3RzdHJhcChwKTtyZXR1cm4gcH07T2JqZWN0LmRlZmluZVByb3BlcnR5KEhUTUxFbGVtZW50LnByb3RvdHlwZSxcImlubmVySFRNTFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gd2EodGhpcyl9LHNldDpmdW5jdGlvbihwKXtILnNldC5jYWxsKHRoaXMscCk7YS5ib290c3RyYXAodGhpcyl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSk7dmFyIGZhPS9bJlxcdTAwQTBcIl0vZyxnYz0vWyZcXHUwMEEwPD5dL2csZmI9ZnVuY3Rpb24ocCl7c3dpdGNoKHApe2Nhc2UgXCImXCI6cmV0dXJuXCImYW1wO1wiO2Nhc2UgXCI8XCI6cmV0dXJuXCImbHQ7XCI7Y2FzZSBcIj5cIjpyZXR1cm5cIiZndDtcIjtjYXNlICdcIic6cmV0dXJuXCImcXVvdDtcIjtjYXNlIFwiXFx1MDBhMFwiOnJldHVyblwiJm5ic3A7XCJ9fTtcbnc9ZnVuY3Rpb24ocCl7Zm9yKHZhciByPXt9LEI9MDtCPHAubGVuZ3RoO0IrKylyW3BbQl1dPSEwO3JldHVybiByfTt2YXIgVWE9dyhcImFyZWEgYmFzZSBiciBjb2wgY29tbWFuZCBlbWJlZCBociBpbWcgaW5wdXQga2V5Z2VuIGxpbmsgbWV0YSBwYXJhbSBzb3VyY2UgdHJhY2sgd2JyXCIuc3BsaXQoXCIgXCIpKSxnYj13KFwic3R5bGUgc2NyaXB0IHhtcCBpZnJhbWUgbm9lbWJlZCBub2ZyYW1lcyBwbGFpbnRleHQgbm9zY3JpcHRcIi5zcGxpdChcIiBcIikpLHdhPWZ1bmN0aW9uKHAscil7XCJ0ZW1wbGF0ZVwiPT09cC5sb2NhbE5hbWUmJihwPXAuY29udGVudCk7Zm9yKHZhciBCPVwiXCIsSz1yP3IocCk6Qy5nZXQuY2FsbChwKSxhYT0wLGxhPUsubGVuZ3RoLHZhO2FhPGxhJiYodmE9S1thYV0pO2FhKyspe2E6e3ZhciB6PXZhO3ZhciBSPXA7dmFyIGxiPXI7c3dpdGNoKHoubm9kZVR5cGUpe2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Zm9yKHZhciBGYz16LmxvY2FsTmFtZSxtYj1cIjxcIitGYyxCaD16LmF0dHJpYnV0ZXMsXG5vZT0wO1I9Qmhbb2VdO29lKyspbWIrPVwiIFwiK1IubmFtZSsnPVwiJytSLnZhbHVlLnJlcGxhY2UoZmEsZmIpKydcIic7bWIrPVwiPlwiO3o9VWFbRmNdP21iOm1iK3dhKHosbGIpK1wiPC9cIitGYytcIj5cIjticmVhayBhO2Nhc2UgTm9kZS5URVhUX05PREU6ej16LmRhdGE7ej1SJiZnYltSLmxvY2FsTmFtZV0/ejp6LnJlcGxhY2UoZ2MsZmIpO2JyZWFrIGE7Y2FzZSBOb2RlLkNPTU1FTlRfTk9ERTp6PVwiXFx4M2MhLS1cIit6LmRhdGErXCItLVxceDNlXCI7YnJlYWsgYTtkZWZhdWx0OnRocm93IHdpbmRvdy5jb25zb2xlLmVycm9yKHopLEVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO319Qis9en1yZXR1cm4gQn19aWYoY3x8TSl7YS5zYT1mdW5jdGlvbihwLHIpe3ZhciBCPWYuY2FsbChwLCExKTt0aGlzLlomJnRoaXMuWihCKTtyJiYobC5jYWxsKEIuY29udGVudCxmLmNhbGwocC5jb250ZW50LCEwKSksSShCLmNvbnRlbnQscC5jb250ZW50KSk7cmV0dXJuIEJ9O3ZhciBJPWZ1bmN0aW9uKHAscil7aWYoci5xdWVyeVNlbGVjdG9yQWxsJiZcbihyPWIocixcInRlbXBsYXRlXCIpLDAhPT1yLmxlbmd0aCkpe3A9YihwLFwidGVtcGxhdGVcIik7Zm9yKHZhciBCPTAsSz1wLmxlbmd0aCxhYSxsYTtCPEs7QisrKWxhPXJbQl0sYWE9cFtCXSxhJiZhLlomJmEuWihsYSksbS5jYWxsKGFhLnBhcmVudE5vZGUsdS5jYWxsKGxhLCEwKSxhYSl9fSx1PU5vZGUucHJvdG90eXBlLmNsb25lTm9kZT1mdW5jdGlvbihwKXtpZighZSYmZCYmdGhpcyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpaWYocCl2YXIgcj1HLmNhbGwodGhpcy5vd25lckRvY3VtZW50LHRoaXMsITApO2Vsc2UgcmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7ZWxzZSB0aGlzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJlwidGVtcGxhdGVcIj09PXRoaXMubG9jYWxOYW1lJiZ0aGlzLm5hbWVzcGFjZVVSST09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST9yPWEuc2EodGhpcyxwKTpyPWYuY2FsbCh0aGlzLFxucCk7cCYmSShyLHRoaXMpO3JldHVybiByfSxHPURvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlPWZ1bmN0aW9uKHAscil7cj1yfHwhMTtpZihcInRlbXBsYXRlXCI9PT1wLmxvY2FsTmFtZSlyZXR1cm4gYS5zYShwLHIpO3ZhciBCPWguY2FsbCh0aGlzLHAscik7aWYocil7SShCLHApO3A9YihCLCdzY3JpcHQ6bm90KFt0eXBlXSksc2NyaXB0W3R5cGU9XCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCJdLHNjcmlwdFt0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCJdJyk7Zm9yKHZhciBLLGFhPTA7YWE8cC5sZW5ndGg7YWErKyl7Sz1wW2FhXTtyPWcuY2FsbChkb2N1bWVudCxcInNjcmlwdFwiKTtyLnRleHRDb250ZW50PUsudGV4dENvbnRlbnQ7Zm9yKHZhciBsYT1LLmF0dHJpYnV0ZXMsdmE9MCx6O3ZhPGxhLmxlbmd0aDt2YSsrKXo9bGFbdmFdLHIuc2V0QXR0cmlidXRlKHoubmFtZSx6LnZhbHVlKTttLmNhbGwoSy5wYXJlbnROb2RlLHIsSyl9fXJldHVybiBCfX1jJiYod2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQ9XG5hKX0pKCk7LypcblxuQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cblRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHRcbkNvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvXG5zdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuKi9cbmZ1bmN0aW9uIHNjKCl7fXNjLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57fX07ZnVuY3Rpb24gRChhKXthLl9fc2hhZHl8fChhLl9fc2hhZHk9bmV3IHNjKTtyZXR1cm4gYS5fX3NoYWR5fWZ1bmN0aW9uIEwoYSl7cmV0dXJuIGEmJmEuX19zaGFkeX07dmFyIE49d2luZG93LlNoYWR5RE9NfHx7fTtOLllhPSEoIUVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvd3x8IU5vZGUucHJvdG90eXBlLmdldFJvb3ROb2RlKTt2YXIgdGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcImZpcnN0Q2hpbGRcIik7Ti5IPSEhKHRjJiZ0Yy5jb25maWd1cmFibGUmJnRjLmdldCk7Ti55YT1OLmZvcmNlfHwhTi5ZYTtOLko9Ti5ub1BhdGNofHwhMTtOLmZhPU4ucHJlZmVyUGVyZm9ybWFuY2U7Ti5BYT1cIm9uLWRlbWFuZFwiPT09Ti5KO04uTmE9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaChcIlRyaWRlbnRcIik7ZnVuY3Rpb24gdWMoKXtyZXR1cm4gRG9jdW1lbnQucHJvdG90eXBlLm1zRWxlbWVudHNGcm9tUG9pbnQ/XCJtc0VsZW1lbnRzRnJvbVBvaW50XCI6XCJlbGVtZW50c0Zyb21Qb2ludFwifWZ1bmN0aW9uIHZjKGEpe3JldHVybihhPUwoYSkpJiZ2b2lkIDAhPT1hLmZpcnN0Q2hpbGR9XG5mdW5jdGlvbiBPKGEpe3JldHVybiBhIGluc3RhbmNlb2YgU2hhZG93Um9vdH1mdW5jdGlvbiB3YyhhKXtyZXR1cm4oYT0oYT1MKGEpKSYmYS5yb290KSYmeGMoYSl9dmFyIHljPUVsZW1lbnQucHJvdG90eXBlLHpjPXljLm1hdGNoZXN8fHljLm1hdGNoZXNTZWxlY3Rvcnx8eWMubW96TWF0Y2hlc1NlbGVjdG9yfHx5Yy5tc01hdGNoZXNTZWxlY3Rvcnx8eWMub01hdGNoZXNTZWxlY3Rvcnx8eWMud2Via2l0TWF0Y2hlc1NlbGVjdG9yLEFjPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiXCIpLEJjPTAsQ2M9W107KG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Zm9yKDtDYy5sZW5ndGg7KXRyeXtDYy5zaGlmdCgpKCl9Y2F0Y2goYSl7dGhyb3cgQWMudGV4dENvbnRlbnQ9QmMrKyxhO319KSkub2JzZXJ2ZShBYyx7Y2hhcmFjdGVyRGF0YTohMH0pO2Z1bmN0aW9uIERjKGEpe0NjLnB1c2goYSk7QWMudGV4dENvbnRlbnQ9QmMrK31cbnZhciBFYz1kb2N1bWVudC5jb250YWlucz9mdW5jdGlvbihhLGIpe3JldHVybiBhLl9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKGIpfTpmdW5jdGlvbihhLGIpe3JldHVybiBhPT09Ynx8YS5kb2N1bWVudEVsZW1lbnQmJmEuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKGIpfTtmdW5jdGlvbiBHYyhhLGIpe2Zvcig7Yjspe2lmKGI9PWEpcmV0dXJuITA7Yj1iLl9fc2hhZHlfcGFyZW50Tm9kZX1yZXR1cm4hMX1cbmZ1bmN0aW9uIEhjKGEpe2Zvcih2YXIgYj1hLmxlbmd0aC0xOzA8PWI7Yi0tKXt2YXIgYz1hW2JdLGQ9Yy5nZXRBdHRyaWJ1dGUoXCJpZFwiKXx8Yy5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpO2QmJlwibGVuZ3RoXCIhPT1kJiZpc05hTihkKSYmKGFbZF09Yyl9YS5pdGVtPWZ1bmN0aW9uKGUpe3JldHVybiBhW2VdfTthLm5hbWVkSXRlbT1mdW5jdGlvbihlKXtpZihcImxlbmd0aFwiIT09ZSYmaXNOYU4oZSkmJmFbZV0pcmV0dXJuIGFbZV07Zm9yKHZhciBmPWthKGEpLGc9Zi5uZXh0KCk7IWcuZG9uZTtnPWYubmV4dCgpKWlmKGc9Zy52YWx1ZSwoZy5nZXRBdHRyaWJ1dGUoXCJpZFwiKXx8Zy5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpKT09ZSlyZXR1cm4gZztyZXR1cm4gbnVsbH07cmV0dXJuIGF9ZnVuY3Rpb24gSWMoYSl7dmFyIGI9W107Zm9yKGE9YS5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO2E7YT1hLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKWIucHVzaChhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIEpjKGEpe3ZhciBiPVtdO2ZvcihhPWEuX19zaGFkeV9maXJzdENoaWxkO2E7YT1hLl9fc2hhZHlfbmV4dFNpYmxpbmcpYi5wdXNoKGEpO3JldHVybiBifWZ1bmN0aW9uIEtjKGEsYixjKXtjLmNvbmZpZ3VyYWJsZT0hMDtpZihjLnZhbHVlKWFbYl09Yy52YWx1ZTtlbHNlIHRyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLGMpfWNhdGNoKGQpe319ZnVuY3Rpb24gUChhLGIsYyxkKXtjPXZvaWQgMD09PWM/XCJcIjpjO2Zvcih2YXIgZSBpbiBiKWQmJjA8PWQuaW5kZXhPZihlKXx8S2MoYSxjK2UsYltlXSl9ZnVuY3Rpb24gTGMoYSxiKXtmb3IodmFyIGMgaW4gYiljIGluIGEmJktjKGEsYyxiW2NdKX1mdW5jdGlvbiBRKGEpe3ZhciBiPXt9O09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGEpLmZvckVhY2goZnVuY3Rpb24oYyl7YltjXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsYyl9KTtyZXR1cm4gYn1cbmZ1bmN0aW9uIE1jKGEsYil7Zm9yKHZhciBjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGIpLGQ9MCxlO2Q8Yy5sZW5ndGg7ZCsrKWU9Y1tkXSxhW2VdPWJbZV19ZnVuY3Rpb24gTmMoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBOb2RlP2E6ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoXCJcIithKX1mdW5jdGlvbiBPYyhhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107aWYoMT09PWIubGVuZ3RoKXJldHVybiBOYyhiWzBdKTtjPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtiPWthKGIpO2Zvcih2YXIgZD1iLm5leHQoKTshZC5kb25lO2Q9Yi5uZXh0KCkpYy5hcHBlbmRDaGlsZChOYyhkLnZhbHVlKSk7cmV0dXJuIGN9O3ZhciBQYz1bXSxRYztmdW5jdGlvbiBSYyhhKXtRY3x8KFFjPSEwLERjKFNjKSk7UGMucHVzaChhKX1mdW5jdGlvbiBTYygpe1FjPSExO2Zvcih2YXIgYT0hIVBjLmxlbmd0aDtQYy5sZW5ndGg7KVBjLnNoaWZ0KCkoKTtyZXR1cm4gYX1TYy5saXN0PVBjO2Z1bmN0aW9uIFRjKCl7dGhpcy5nPSExO3RoaXMuYWRkZWROb2Rlcz1bXTt0aGlzLnJlbW92ZWROb2Rlcz1bXTt0aGlzLm9hPW5ldyBTZXR9ZnVuY3Rpb24gVWMoYSl7YS5nfHwoYS5nPSEwLERjKGZ1bmN0aW9uKCl7YS5mbHVzaCgpfSkpfVRjLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2lmKHRoaXMuZyl7dGhpcy5nPSExO3ZhciBhPXRoaXMudGFrZVJlY29yZHMoKTthLmxlbmd0aCYmdGhpcy5vYS5mb3JFYWNoKGZ1bmN0aW9uKGIpe2IoYSl9KX19O1RjLnByb3RvdHlwZS50YWtlUmVjb3Jkcz1mdW5jdGlvbigpe2lmKHRoaXMuYWRkZWROb2Rlcy5sZW5ndGh8fHRoaXMucmVtb3ZlZE5vZGVzLmxlbmd0aCl7dmFyIGE9W3thZGRlZE5vZGVzOnRoaXMuYWRkZWROb2RlcyxyZW1vdmVkTm9kZXM6dGhpcy5yZW1vdmVkTm9kZXN9XTt0aGlzLmFkZGVkTm9kZXM9W107dGhpcy5yZW1vdmVkTm9kZXM9W107cmV0dXJuIGF9cmV0dXJuW119O1xuZnVuY3Rpb24gVmMoYSxiKXt2YXIgYz1EKGEpO2MuZWF8fChjLmVhPW5ldyBUYyk7Yy5lYS5vYS5hZGQoYik7dmFyIGQ9Yy5lYTtyZXR1cm57UmE6YixYOmQsU2E6YSx0YWtlUmVjb3JkczpmdW5jdGlvbigpe3JldHVybiBkLnRha2VSZWNvcmRzKCl9fX1mdW5jdGlvbiBXYyhhKXt2YXIgYj1hJiZhLlg7YiYmKGIub2EuZGVsZXRlKGEuUmEpLGIub2Euc2l6ZXx8KEQoYS5TYSkuZWE9bnVsbCkpfVxuZnVuY3Rpb24gWGMoYSxiKXt2YXIgYz1iLmdldFJvb3ROb2RlKCk7cmV0dXJuIGEubWFwKGZ1bmN0aW9uKGQpe3ZhciBlPWM9PT1kLnRhcmdldC5nZXRSb290Tm9kZSgpO2lmKGUmJmQuYWRkZWROb2Rlcyl7aWYoZT1bXS5zbGljZS5jYWxsKGQuYWRkZWROb2RlcykuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBjPT09Zi5nZXRSb290Tm9kZSgpfSksZS5sZW5ndGgpcmV0dXJuIGQ9T2JqZWN0LmNyZWF0ZShkKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxcImFkZGVkTm9kZXNcIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KSxkfWVsc2UgaWYoZSlyZXR1cm4gZH0pLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gZH0pfTt2YXIgWWM9L1smXFx1MDBBMFwiXS9nLFpjPS9bJlxcdTAwQTA8Pl0vZztmdW5jdGlvbiAkYyhhKXtzd2l0Y2goYSl7Y2FzZSBcIiZcIjpyZXR1cm5cIiZhbXA7XCI7Y2FzZSBcIjxcIjpyZXR1cm5cIiZsdDtcIjtjYXNlIFwiPlwiOnJldHVyblwiJmd0O1wiO2Nhc2UgJ1wiJzpyZXR1cm5cIiZxdW90O1wiO2Nhc2UgXCJcXHUwMGEwXCI6cmV0dXJuXCImbmJzcDtcIn19ZnVuY3Rpb24gYWQoYSl7Zm9yKHZhciBiPXt9LGM9MDtjPGEubGVuZ3RoO2MrKyliW2FbY11dPSEwO3JldHVybiBifXZhciBiZD1hZChcImFyZWEgYmFzZSBiciBjb2wgY29tbWFuZCBlbWJlZCBociBpbWcgaW5wdXQga2V5Z2VuIGxpbmsgbWV0YSBwYXJhbSBzb3VyY2UgdHJhY2sgd2JyXCIuc3BsaXQoXCIgXCIpKSxjZD1hZChcInN0eWxlIHNjcmlwdCB4bXAgaWZyYW1lIG5vZW1iZWQgbm9mcmFtZXMgcGxhaW50ZXh0IG5vc2NyaXB0XCIuc3BsaXQoXCIgXCIpKTtcbmZ1bmN0aW9uIGRkKGEsYil7XCJ0ZW1wbGF0ZVwiPT09YS5sb2NhbE5hbWUmJihhPWEuY29udGVudCk7Zm9yKHZhciBjPVwiXCIsZD1iP2IoYSk6YS5jaGlsZE5vZGVzLGU9MCxmPWQubGVuZ3RoLGc9dm9pZCAwO2U8ZiYmKGc9ZFtlXSk7ZSsrKXthOnt2YXIgaD1nO3ZhciBrPWEsbD1iO3N3aXRjaChoLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOms9aC5sb2NhbE5hbWU7Zm9yKHZhciBtPVwiPFwiK2sscT1oLmF0dHJpYnV0ZXMsSD0wLEM7Qz1xW0hdO0grKyltKz1cIiBcIitDLm5hbWUrJz1cIicrQy52YWx1ZS5yZXBsYWNlKFljLCRjKSsnXCInO20rPVwiPlwiO2g9YmRba10/bTptK2RkKGgsbCkrXCI8L1wiK2srXCI+XCI7YnJlYWsgYTtjYXNlIE5vZGUuVEVYVF9OT0RFOmg9aC5kYXRhO2g9ayYmY2Rbay5sb2NhbE5hbWVdP2g6aC5yZXBsYWNlKFpjLCRjKTticmVhayBhO2Nhc2UgTm9kZS5DT01NRU5UX05PREU6aD1cIlxceDNjIS0tXCIraC5kYXRhK1wiLS1cXHgzZVwiO2JyZWFrIGE7ZGVmYXVsdDp0aHJvdyB3aW5kb3cuY29uc29sZS5lcnJvcihoKSxcbkVycm9yKFwibm90IGltcGxlbWVudGVkXCIpO319Yys9aH1yZXR1cm4gY307dmFyIGVkPU4uSCxmZD17cXVlcnlTZWxlY3RvcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9xdWVyeVNlbGVjdG9yKGEpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3F1ZXJ5U2VsZWN0b3JBbGwoYSl9fSxnZD17fTtmdW5jdGlvbiBoZChhKXtnZFthXT1mdW5jdGlvbihiKXtyZXR1cm4gYltcIl9fc2hhZHlfbmF0aXZlX1wiK2FdfX1mdW5jdGlvbiBpZChhLGIpe1AoYSxiLFwiX19zaGFkeV9uYXRpdmVfXCIpO2Zvcih2YXIgYyBpbiBiKWhkKGMpfWZ1bmN0aW9uIFMoYSxiKXtiPXZvaWQgMD09PWI/W106Yjtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXSxlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSxkKTtlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsXCJfX3NoYWR5X25hdGl2ZV9cIitkLGUpLGUudmFsdWU/ZmRbZF18fChmZFtkXT1lLnZhbHVlKTpoZChkKSl9fVxudmFyIGpkPWRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsTm9kZUZpbHRlci5TSE9XX0FMTCxudWxsLCExKSxrZD1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5ULG51bGwsITEpLGxkPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudChcImluZXJ0XCIpO2Z1bmN0aW9uIG1kKGEpe2Zvcih2YXIgYjtiPWEuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDspYS5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChiKX12YXIgbmQ9W1wiZmlyc3RFbGVtZW50Q2hpbGRcIixcImxhc3RFbGVtZW50Q2hpbGRcIixcImNoaWxkcmVuXCIsXCJjaGlsZEVsZW1lbnRDb3VudFwiXSxvZD1bXCJxdWVyeVNlbGVjdG9yXCIsXCJxdWVyeVNlbGVjdG9yQWxsXCIsXCJhcHBlbmRcIixcInByZXBlbmRcIixcInJlcGxhY2VDaGlsZHJlblwiXTtcbmZ1bmN0aW9uIHBkKCl7dmFyIGE9W1wiZGlzcGF0Y2hFdmVudFwiLFwiYWRkRXZlbnRMaXN0ZW5lclwiLFwicmVtb3ZlRXZlbnRMaXN0ZW5lclwiXTt3aW5kb3cuRXZlbnRUYXJnZXQ/KFMod2luZG93LkV2ZW50VGFyZ2V0LnByb3RvdHlwZSxhKSx2b2lkIDA9PT13aW5kb3cuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lciYmUyhXaW5kb3cucHJvdG90eXBlLGEpKTooUyhOb2RlLnByb3RvdHlwZSxhKSxTKFdpbmRvdy5wcm90b3R5cGUsYSkpO2VkP1MoTm9kZS5wcm90b3R5cGUsXCJwYXJlbnROb2RlIGZpcnN0Q2hpbGQgbGFzdENoaWxkIHByZXZpb3VzU2libGluZyBuZXh0U2libGluZyBjaGlsZE5vZGVzIHBhcmVudEVsZW1lbnQgdGV4dENvbnRlbnRcIi5zcGxpdChcIiBcIikpOmlkKE5vZGUucHJvdG90eXBlLHtwYXJlbnROb2RlOntnZXQ6ZnVuY3Rpb24oKXtqZC5jdXJyZW50Tm9kZT10aGlzO3JldHVybiBqZC5wYXJlbnROb2RlKCl9fSxmaXJzdENoaWxkOntnZXQ6ZnVuY3Rpb24oKXtqZC5jdXJyZW50Tm9kZT1cbnRoaXM7cmV0dXJuIGpkLmZpcnN0Q2hpbGQoKX19LGxhc3RDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7amQuY3VycmVudE5vZGU9dGhpcztyZXR1cm4gamQubGFzdENoaWxkKCl9fSxwcmV2aW91c1NpYmxpbmc6e2dldDpmdW5jdGlvbigpe2pkLmN1cnJlbnROb2RlPXRoaXM7cmV0dXJuIGpkLnByZXZpb3VzU2libGluZygpfX0sbmV4dFNpYmxpbmc6e2dldDpmdW5jdGlvbigpe2pkLmN1cnJlbnROb2RlPXRoaXM7cmV0dXJuIGpkLm5leHRTaWJsaW5nKCl9fSxjaGlsZE5vZGVzOntnZXQ6ZnVuY3Rpb24oKXt2YXIgYj1bXTtqZC5jdXJyZW50Tm9kZT10aGlzO2Zvcih2YXIgYz1qZC5maXJzdENoaWxkKCk7YzspYi5wdXNoKGMpLGM9amQubmV4dFNpYmxpbmcoKTtyZXR1cm4gYn19LHBhcmVudEVsZW1lbnQ6e2dldDpmdW5jdGlvbigpe2tkLmN1cnJlbnROb2RlPXRoaXM7cmV0dXJuIGtkLnBhcmVudE5vZGUoKX19LHRleHRDb250ZW50OntnZXQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERTpmb3IodmFyIGI9XG5kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKHRoaXMsTm9kZUZpbHRlci5TSE9XX1RFWFQsbnVsbCwhMSksYz1cIlwiLGQ7ZD1iLm5leHROb2RlKCk7KWMrPWQubm9kZVZhbHVlO3JldHVybiBjO2RlZmF1bHQ6cmV0dXJuIHRoaXMubm9kZVZhbHVlfX0sc2V0OmZ1bmN0aW9uKGIpe2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYnx8bnVsbD09PWIpYj1cIlwiO3N3aXRjaCh0aGlzLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmNhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOm1kKHRoaXMpOygwPGIubGVuZ3RofHx0aGlzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpJiZ0aGlzLl9fc2hhZHlfbmF0aXZlX2luc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiKSx2b2lkIDApO2JyZWFrO2RlZmF1bHQ6dGhpcy5ub2RlVmFsdWU9Yn19fX0pO1MoTm9kZS5wcm90b3R5cGUsXCJhcHBlbmRDaGlsZCBpbnNlcnRCZWZvcmUgcmVtb3ZlQ2hpbGQgcmVwbGFjZUNoaWxkIGNsb25lTm9kZSBjb250YWluc1wiLnNwbGl0KFwiIFwiKSk7XG5TKEhUTUxFbGVtZW50LnByb3RvdHlwZSxbXCJwYXJlbnRFbGVtZW50XCIsXCJjb250YWluc1wiXSk7YT17Zmlyc3RFbGVtZW50Q2hpbGQ6e2dldDpmdW5jdGlvbigpe2tkLmN1cnJlbnROb2RlPXRoaXM7cmV0dXJuIGtkLmZpcnN0Q2hpbGQoKX19LGxhc3RFbGVtZW50Q2hpbGQ6e2dldDpmdW5jdGlvbigpe2tkLmN1cnJlbnROb2RlPXRoaXM7cmV0dXJuIGtkLmxhc3RDaGlsZCgpfX0sY2hpbGRyZW46e2dldDpmdW5jdGlvbigpe3ZhciBiPVtdO2tkLmN1cnJlbnROb2RlPXRoaXM7Zm9yKHZhciBjPWtkLmZpcnN0Q2hpbGQoKTtjOyliLnB1c2goYyksYz1rZC5uZXh0U2libGluZygpO3JldHVybiBIYyhiKX19LGNoaWxkRWxlbWVudENvdW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZHJlbj90aGlzLmNoaWxkcmVuLmxlbmd0aDowfX19O2VkPyhTKEVsZW1lbnQucHJvdG90eXBlLG5kKSxTKEVsZW1lbnQucHJvdG90eXBlLFtcInByZXZpb3VzRWxlbWVudFNpYmxpbmdcIixcIm5leHRFbGVtZW50U2libGluZ1wiLFxuXCJpbm5lckhUTUxcIixcImNsYXNzTmFtZVwiXSksUyhIVE1MRWxlbWVudC5wcm90b3R5cGUsW1wiY2hpbGRyZW5cIixcImlubmVySFRNTFwiLFwiY2xhc3NOYW1lXCJdKSk6KGlkKEVsZW1lbnQucHJvdG90eXBlLGEpLGlkKEVsZW1lbnQucHJvdG90eXBlLHtwcmV2aW91c0VsZW1lbnRTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtrZC5jdXJyZW50Tm9kZT10aGlzO3JldHVybiBrZC5wcmV2aW91c1NpYmxpbmcoKX19LG5leHRFbGVtZW50U2libGluZzp7Z2V0OmZ1bmN0aW9uKCl7a2QuY3VycmVudE5vZGU9dGhpcztyZXR1cm4ga2QubmV4dFNpYmxpbmcoKX19LGlubmVySFRNTDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGRkKHRoaXMsSWMpfSxzZXQ6ZnVuY3Rpb24oYil7dmFyIGM9XCJ0ZW1wbGF0ZVwiPT09dGhpcy5sb2NhbE5hbWU/dGhpcy5jb250ZW50OnRoaXM7bWQoYyk7dmFyIGQ9dGhpcy5sb2NhbE5hbWV8fFwiZGl2XCI7ZD10aGlzLm5hbWVzcGFjZVVSSSYmdGhpcy5uYW1lc3BhY2VVUkkhPT1sZC5uYW1lc3BhY2VVUkk/XG5sZC5jcmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkksZCk6bGQuY3JlYXRlRWxlbWVudChkKTtkLmlubmVySFRNTD1iO2ZvcihiPVwidGVtcGxhdGVcIj09PXRoaXMubG9jYWxOYW1lP2QuY29udGVudDpkO2Q9Yi5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkOyljLl9fc2hhZHlfbmF0aXZlX2luc2VydEJlZm9yZShkLHZvaWQgMCl9fSxjbGFzc05hbWU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwifSxzZXQ6ZnVuY3Rpb24oYil7dGhpcy5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLGIpfX19KSk7UyhFbGVtZW50LnByb3RvdHlwZSxcInNldEF0dHJpYnV0ZSBnZXRBdHRyaWJ1dGUgaGFzQXR0cmlidXRlIHJlbW92ZUF0dHJpYnV0ZSBmb2N1cyBibHVyXCIuc3BsaXQoXCIgXCIpKTtTKEVsZW1lbnQucHJvdG90eXBlLG9kKTtTKEhUTUxFbGVtZW50LnByb3RvdHlwZSxbXCJmb2N1c1wiLFwiYmx1clwiXSk7d2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQmJlxuUyh3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudC5wcm90b3R5cGUsW1wiaW5uZXJIVE1MXCJdKTtlZD9TKERvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLG5kKTppZChEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxhKTtTKERvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLG9kKTtlZD8oUyhEb2N1bWVudC5wcm90b3R5cGUsbmQpLFMoRG9jdW1lbnQucHJvdG90eXBlLFtcImFjdGl2ZUVsZW1lbnRcIl0pKTppZChEb2N1bWVudC5wcm90b3R5cGUsYSk7UyhEb2N1bWVudC5wcm90b3R5cGUsW1wiaW1wb3J0Tm9kZVwiLFwiZ2V0RWxlbWVudEJ5SWRcIixcImVsZW1lbnRGcm9tUG9pbnRcIix1YygpXSk7UyhEb2N1bWVudC5wcm90b3R5cGUsb2QpfTt2YXIgcWQ9USh7Z2V0IGNoaWxkTm9kZXMoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2NoaWxkTm9kZXN9LGdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9maXJzdENoaWxkfSxnZXQgbGFzdENoaWxkKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9sYXN0Q2hpbGR9LGdldCBjaGlsZEVsZW1lbnRDb3VudCgpe3JldHVybiB0aGlzLl9fc2hhZHlfY2hpbGRFbGVtZW50Q291bnR9LGdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLl9fc2hhZHlfY2hpbGRyZW59LGdldCBmaXJzdEVsZW1lbnRDaGlsZCgpe3JldHVybiB0aGlzLl9fc2hhZHlfZmlyc3RFbGVtZW50Q2hpbGR9LGdldCBsYXN0RWxlbWVudENoaWxkKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9sYXN0RWxlbWVudENoaWxkfSxnZXQgc2hhZG93Um9vdCgpe3JldHVybiB0aGlzLl9fc2hhZHlfc2hhZG93Um9vdH19KSxyZD1RKHtnZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQoYSl7dGhpcy5fX3NoYWR5X3RleHRDb250ZW50PVxuYX0sZ2V0IGlubmVySFRNTCgpe3JldHVybiB0aGlzLl9fc2hhZHlfaW5uZXJIVE1MfSxzZXQgaW5uZXJIVE1MKGEpe3RoaXMuX19zaGFkeV9pbm5lckhUTUw9YX19KSxzZD1RKHtnZXQgcGFyZW50RWxlbWVudCgpe3JldHVybiB0aGlzLl9fc2hhZHlfcGFyZW50RWxlbWVudH0sZ2V0IHBhcmVudE5vZGUoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3BhcmVudE5vZGV9LGdldCBuZXh0U2libGluZygpe3JldHVybiB0aGlzLl9fc2hhZHlfbmV4dFNpYmxpbmd9LGdldCBwcmV2aW91c1NpYmxpbmcoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3ByZXZpb3VzU2libGluZ30sZ2V0IG5leHRFbGVtZW50U2libGluZygpe3JldHVybiB0aGlzLl9fc2hhZHlfbmV4dEVsZW1lbnRTaWJsaW5nfSxnZXQgcHJldmlvdXNFbGVtZW50U2libGluZygpe3JldHVybiB0aGlzLl9fc2hhZHlfcHJldmlvdXNFbGVtZW50U2libGluZ30sZ2V0IGNsYXNzTmFtZSgpe3JldHVybiB0aGlzLl9fc2hhZHlfY2xhc3NOYW1lfSxzZXQgY2xhc3NOYW1lKGEpe3RoaXMuX19zaGFkeV9jbGFzc05hbWU9XG5hfX0pO2Z1bmN0aW9uIHRkKGEpe2Zvcih2YXIgYiBpbiBhKXt2YXIgYz1hW2JdO2MmJihjLmVudW1lcmFibGU9ITEpfX10ZChxZCk7dGQocmQpO3RkKHNkKTt2YXIgdWQ9Ti5IfHwhMD09PU4uSix2ZD11ZD9mdW5jdGlvbigpe306ZnVuY3Rpb24oYSl7dmFyIGI9RChhKTtiLlBhfHwoYi5QYT0hMCxMYyhhLHNkKSl9LHdkPXVkP2Z1bmN0aW9uKCl7fTpmdW5jdGlvbihhKXt2YXIgYj1EKGEpO2IuT2F8fChiLk9hPSEwLExjKGEscWQpLHdpbmRvdy5jdXN0b21FbGVtZW50cyYmd2luZG93LmN1c3RvbUVsZW1lbnRzLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2smJiFOLkp8fExjKGEscmQpKX07dmFyIHhkPVwiX19ldmVudFdyYXBwZXJzXCIrRGF0ZS5ub3coKSx5ZD1mdW5jdGlvbigpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXZlbnQucHJvdG90eXBlLFwiY29tcG9zZWRcIik7cmV0dXJuIGE/ZnVuY3Rpb24oYil7cmV0dXJuIGEuZ2V0LmNhbGwoYil9Om51bGx9KCksemQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7fXZhciBiPSExLGM9e2dldCBjYXB0dXJlKCl7Yj0hMDtyZXR1cm4hMX19O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLGEsYyk7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsYSxjKTtyZXR1cm4gYn0oKTtmdW5jdGlvbiBBZChhKXtpZihhJiZcIm9iamVjdFwiPT09dHlwZW9mIGEpe3ZhciBiPSEhYS5jYXB0dXJlO3ZhciBjPSEhYS5vbmNlO3ZhciBkPSEhYS5wYXNzaXZlO3ZhciBlPWEuVX1lbHNlIGI9ISFhLGQ9Yz0hMTtyZXR1cm57TGE6ZSxjYXB0dXJlOmIsb25jZTpjLHBhc3NpdmU6ZCxKYTp6ZD9hOmJ9fVxudmFyIEJkPXtibHVyOiEwLGZvY3VzOiEwLGZvY3VzaW46ITAsZm9jdXNvdXQ6ITAsY2xpY2s6ITAsZGJsY2xpY2s6ITAsbW91c2Vkb3duOiEwLG1vdXNlZW50ZXI6ITAsbW91c2VsZWF2ZTohMCxtb3VzZW1vdmU6ITAsbW91c2VvdXQ6ITAsbW91c2VvdmVyOiEwLG1vdXNldXA6ITAsd2hlZWw6ITAsYmVmb3JlaW5wdXQ6ITAsaW5wdXQ6ITAsa2V5ZG93bjohMCxrZXl1cDohMCxjb21wb3NpdGlvbnN0YXJ0OiEwLGNvbXBvc2l0aW9udXBkYXRlOiEwLGNvbXBvc2l0aW9uZW5kOiEwLHRvdWNoc3RhcnQ6ITAsdG91Y2hlbmQ6ITAsdG91Y2htb3ZlOiEwLHRvdWNoY2FuY2VsOiEwLHBvaW50ZXJvdmVyOiEwLHBvaW50ZXJlbnRlcjohMCxwb2ludGVyZG93bjohMCxwb2ludGVybW92ZTohMCxwb2ludGVydXA6ITAscG9pbnRlcmNhbmNlbDohMCxwb2ludGVyb3V0OiEwLHBvaW50ZXJsZWF2ZTohMCxnb3Rwb2ludGVyY2FwdHVyZTohMCxsb3N0cG9pbnRlcmNhcHR1cmU6ITAsZHJhZ3N0YXJ0OiEwLFxuZHJhZzohMCxkcmFnZW50ZXI6ITAsZHJhZ2xlYXZlOiEwLGRyYWdvdmVyOiEwLGRyb3A6ITAsZHJhZ2VuZDohMCxET01BY3RpdmF0ZTohMCxET01Gb2N1c0luOiEwLERPTUZvY3VzT3V0OiEwLGtleXByZXNzOiEwfSxDZD17RE9NQXR0ck1vZGlmaWVkOiEwLERPTUF0dHJpYnV0ZU5hbWVDaGFuZ2VkOiEwLERPTUNoYXJhY3RlckRhdGFNb2RpZmllZDohMCxET01FbGVtZW50TmFtZUNoYW5nZWQ6ITAsRE9NTm9kZUluc2VydGVkOiEwLERPTU5vZGVJbnNlcnRlZEludG9Eb2N1bWVudDohMCxET01Ob2RlUmVtb3ZlZDohMCxET01Ob2RlUmVtb3ZlZEZyb21Eb2N1bWVudDohMCxET01TdWJ0cmVlTW9kaWZpZWQ6ITB9O2Z1bmN0aW9uIERkKGEpe3JldHVybiBhIGluc3RhbmNlb2YgTm9kZT9hLl9fc2hhZHlfZ2V0Um9vdE5vZGUoKTphfVxuZnVuY3Rpb24gRWQoYSxiKXt2YXIgYz1bXSxkPWE7Zm9yKGE9RGQoYSk7ZDspYy5wdXNoKGQpLGQ9ZC5fX3NoYWR5X2Fzc2lnbmVkU2xvdD9kLl9fc2hhZHlfYXNzaWduZWRTbG90OmQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUmJmQuaG9zdCYmKGJ8fGQhPT1hKT9kLmhvc3Q6ZC5fX3NoYWR5X3BhcmVudE5vZGU7Y1tjLmxlbmd0aC0xXT09PWRvY3VtZW50JiZjLnB1c2god2luZG93KTtyZXR1cm4gY31mdW5jdGlvbiBGZChhKXthLl9fY29tcG9zZWRQYXRofHwoYS5fX2NvbXBvc2VkUGF0aD1FZChhLnRhcmdldCwhMCkpO3JldHVybiBhLl9fY29tcG9zZWRQYXRofWZ1bmN0aW9uIEdkKGEsYil7aWYoIU8pcmV0dXJuIGE7YT1FZChhLCEwKTtmb3IodmFyIGM9MCxkLGU9dm9pZCAwLGYsZz12b2lkIDA7YzxiLmxlbmd0aDtjKyspaWYoZD1iW2NdLGY9RGQoZCksZiE9PWUmJihnPWEuaW5kZXhPZihmKSxlPWYpLCFPKGYpfHwtMTxnKXJldHVybiBkfVxuZnVuY3Rpb24gSGQoYSl7ZnVuY3Rpb24gYihjLGQpe2M9bmV3IGEoYyxkKTtjLl9fY29tcG9zZWQ9ZCYmISFkLmNvbXBvc2VkO3JldHVybiBjfWIuX19wcm90b19fPWE7Yi5wcm90b3R5cGU9YS5wcm90b3R5cGU7cmV0dXJuIGJ9dmFyIElkPXtmb2N1czohMCxibHVyOiEwfTtmdW5jdGlvbiBKZChhKXtyZXR1cm4gYS5fX3RhcmdldCE9PWEudGFyZ2V0fHxhLl9fcmVsYXRlZFRhcmdldCE9PWEucmVsYXRlZFRhcmdldH1mdW5jdGlvbiBLZChhLGIsYyl7aWYoYz1iLl9faGFuZGxlcnMmJmIuX19oYW5kbGVyc1thLnR5cGVdJiZiLl9faGFuZGxlcnNbYS50eXBlXVtjXSlmb3IodmFyIGQ9MCxlOyhlPWNbZF0pJiYoIUpkKGEpfHxhLnRhcmdldCE9PWEucmVsYXRlZFRhcmdldCkmJihlLmNhbGwoYixhKSwhYS5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCk7ZCsrKTt9XG5mdW5jdGlvbiBMZChhKXt2YXIgYj1hLmNvbXBvc2VkUGF0aCgpLGM9Yi5tYXAoZnVuY3Rpb24oayl7cmV0dXJuIEdkKGssYil9KSxkPWEuYnViYmxlcztPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxcImN1cnJlbnRUYXJnZXRcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGd9fSk7dmFyIGU9RXZlbnQuQ0FQVFVSSU5HX1BIQVNFO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwiZXZlbnRQaGFzZVwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19KTtmb3IodmFyIGY9Yi5sZW5ndGgtMTswPD1mO2YtLSl7dmFyIGc9YltmXTtlPWc9PT1jW2ZdP0V2ZW50LkFUX1RBUkdFVDpFdmVudC5DQVBUVVJJTkdfUEhBU0U7S2QoYSxnLFwiY2FwdHVyZVwiKTtpZihhLnJhKXJldHVybn1mb3IoZj0wO2Y8Yi5sZW5ndGg7ZisrKXtnPWJbZl07dmFyIGg9Zz09PWNbZl07aWYoaHx8ZClpZihlPWg/RXZlbnQuQVRfVEFSR0VUOlxuRXZlbnQuQlVCQkxJTkdfUEhBU0UsS2QoYSxnLFwiYnViYmxlXCIpLGEucmEpcmV0dXJufWU9MDtnPW51bGx9ZnVuY3Rpb24gTWQoYSxiLGMsZCxlLGYpe2Zvcih2YXIgZz0wO2c8YS5sZW5ndGg7ZysrKXt2YXIgaD1hW2ddLGs9aC50eXBlLGw9aC5jYXB0dXJlLG09aC5vbmNlLHE9aC5wYXNzaXZlO2lmKGI9PT1oLm5vZGUmJmM9PT1rJiZkPT09bCYmZT09PW0mJmY9PT1xKXJldHVybiBnfXJldHVybi0xfWZ1bmN0aW9uIE5kKGEpe1NjKCk7cmV0dXJuIU4uZmEmJnRoaXMgaW5zdGFuY2VvZiBOb2RlJiYhRWMoZG9jdW1lbnQsdGhpcyk/KGEuX190YXJnZXR8fE9kKGEsdGhpcyksTGQoYSkpOnRoaXMuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudChhKX1cbmZ1bmN0aW9uIFBkKGEsYixjKXt2YXIgZD1BZChjKSxlPWQuY2FwdHVyZSxmPWQub25jZSxnPWQucGFzc2l2ZSxoPWQuTGE7ZD1kLkphO2lmKGIpe3ZhciBrPXR5cGVvZiBiO2lmKFwiZnVuY3Rpb25cIj09PWt8fFwib2JqZWN0XCI9PT1rKWlmKFwib2JqZWN0XCIhPT1rfHxiLmhhbmRsZUV2ZW50JiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5oYW5kbGVFdmVudCl7aWYoQ2RbYV0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcihhLGIsZCk7dmFyIGw9aHx8dGhpcztpZihoPWJbeGRdKXtpZigtMTxNZChoLGwsYSxlLGYsZykpcmV0dXJufWVsc2UgYlt4ZF09W107aD1mdW5jdGlvbihtKXtmJiZ0aGlzLl9fc2hhZHlfcmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGIsYyk7bS5fX3RhcmdldHx8T2QobSk7aWYobCE9PXRoaXMpe3ZhciBxPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSxcImN1cnJlbnRUYXJnZXRcIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KG0sXCJjdXJyZW50VGFyZ2V0XCIsXG57Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGNvbmZpZ3VyYWJsZTohMH0pO3ZhciBIPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSxcImV2ZW50UGhhc2VcIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KG0sXCJldmVudFBoYXNlXCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlP0V2ZW50LkNBUFRVUklOR19QSEFTRTpFdmVudC5CVUJCTElOR19QSEFTRX19KX1tLl9fcHJldmlvdXNDdXJyZW50VGFyZ2V0PW0uY3VycmVudFRhcmdldDtpZighTyhsKSYmXCJzbG90XCIhPT1sLmxvY2FsTmFtZXx8LTEhPW0uY29tcG9zZWRQYXRoKCkuaW5kZXhPZihsKSlpZihtLmNvbXBvc2VkfHwtMTxtLmNvbXBvc2VkUGF0aCgpLmluZGV4T2YobCkpaWYoSmQobSkmJm0udGFyZ2V0PT09bS5yZWxhdGVkVGFyZ2V0KW0uZXZlbnRQaGFzZT09PUV2ZW50LkJVQkJMSU5HX1BIQVNFJiZtLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO2Vsc2UgaWYobS5ldmVudFBoYXNlPT09XG5FdmVudC5DQVBUVVJJTkdfUEhBU0V8fG0uYnViYmxlc3x8bS50YXJnZXQ9PT1sfHxsIGluc3RhbmNlb2YgV2luZG93KXt2YXIgQz1cImZ1bmN0aW9uXCI9PT1rP2IuY2FsbChsLG0pOmIuaGFuZGxlRXZlbnQmJmIuaGFuZGxlRXZlbnQobSk7bCE9PXRoaXMmJihxPyhPYmplY3QuZGVmaW5lUHJvcGVydHkobSxcImN1cnJlbnRUYXJnZXRcIixxKSxxPW51bGwpOmRlbGV0ZSBtLmN1cnJlbnRUYXJnZXQsSD8oT2JqZWN0LmRlZmluZVByb3BlcnR5KG0sXCJldmVudFBoYXNlXCIsSCksSD1udWxsKTpkZWxldGUgbS5ldmVudFBoYXNlKTtyZXR1cm4gQ319O2JbeGRdLnB1c2goe25vZGU6bCx0eXBlOmEsY2FwdHVyZTplLG9uY2U6ZixwYXNzaXZlOmcscGI6aH0pO3RoaXMuX19oYW5kbGVycz10aGlzLl9faGFuZGxlcnN8fHt9O3RoaXMuX19oYW5kbGVyc1thXT10aGlzLl9faGFuZGxlcnNbYV18fHtjYXB0dXJlOltdLGJ1YmJsZTpbXX07dGhpcy5fX2hhbmRsZXJzW2FdW2U/XCJjYXB0dXJlXCI6XCJidWJibGVcIl0ucHVzaChoKTtcbklkW2FdfHx0aGlzLl9fc2hhZHlfbmF0aXZlX2FkZEV2ZW50TGlzdGVuZXIoYSxoLGQpfX19XG5mdW5jdGlvbiBRZChhLGIsYyl7aWYoYil7dmFyIGQ9QWQoYyk7Yz1kLmNhcHR1cmU7dmFyIGU9ZC5vbmNlLGY9ZC5wYXNzaXZlLGc9ZC5MYTtkPWQuSmE7aWYoQ2RbYV0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGIsZCk7dmFyIGg9Z3x8dGhpcztnPXZvaWQgMDt2YXIgaz1udWxsO3RyeXtrPWJbeGRdfWNhdGNoKGwpe31rJiYoZT1NZChrLGgsYSxjLGUsZiksLTE8ZSYmKGc9ay5zcGxpY2UoZSwxKVswXS5wYixrLmxlbmd0aHx8KGJbeGRdPXZvaWQgMCkpKTt0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUV2ZW50TGlzdGVuZXIoYSxnfHxiLGQpO2cmJnRoaXMuX19oYW5kbGVycyYmdGhpcy5fX2hhbmRsZXJzW2FdJiYoYT10aGlzLl9faGFuZGxlcnNbYV1bYz9cImNhcHR1cmVcIjpcImJ1YmJsZVwiXSxiPWEuaW5kZXhPZihnKSwtMTxiJiZhLnNwbGljZShiLDEpKX19XG5mdW5jdGlvbiBSZCgpe2Zvcih2YXIgYSBpbiBJZCl3aW5kb3cuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcihhLGZ1bmN0aW9uKGIpe2IuX190YXJnZXR8fChPZChiKSxMZChiKSl9LCEwKX1cbnZhciBTZD1RKHtnZXQgY29tcG9zZWQoKXt2b2lkIDA9PT10aGlzLl9fY29tcG9zZWQmJih5ZD90aGlzLl9fY29tcG9zZWQ9XCJmb2N1c2luXCI9PT10aGlzLnR5cGV8fFwiZm9jdXNvdXRcIj09PXRoaXMudHlwZXx8eWQodGhpcyk6ITEhPT10aGlzLmlzVHJ1c3RlZCYmKHRoaXMuX19jb21wb3NlZD1CZFt0aGlzLnR5cGVdKSk7cmV0dXJuIHRoaXMuX19jb21wb3NlZHx8ITF9LGNvbXBvc2VkUGF0aDpmdW5jdGlvbigpe3RoaXMuX19jb21wb3NlZFBhdGh8fCh0aGlzLl9fY29tcG9zZWRQYXRoPUVkKHRoaXMuX190YXJnZXQsdGhpcy5jb21wb3NlZCkpO3JldHVybiB0aGlzLl9fY29tcG9zZWRQYXRofSxnZXQgdGFyZ2V0KCl7cmV0dXJuIEdkKHRoaXMuY3VycmVudFRhcmdldHx8dGhpcy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldCx0aGlzLmNvbXBvc2VkUGF0aCgpKX0sZ2V0IHJlbGF0ZWRUYXJnZXQoKXtpZighdGhpcy5fX3JlbGF0ZWRUYXJnZXQpcmV0dXJuIG51bGw7dGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGh8fFxuKHRoaXMuX19yZWxhdGVkVGFyZ2V0Q29tcG9zZWRQYXRoPUVkKHRoaXMuX19yZWxhdGVkVGFyZ2V0LCEwKSk7cmV0dXJuIEdkKHRoaXMuY3VycmVudFRhcmdldHx8dGhpcy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldCx0aGlzLl9fcmVsYXRlZFRhcmdldENvbXBvc2VkUGF0aCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe0V2ZW50LnByb3RvdHlwZS5zdG9wUHJvcGFnYXRpb24uY2FsbCh0aGlzKTt0aGlzLnJhPSEwfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtFdmVudC5wcm90b3R5cGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uLmNhbGwodGhpcyk7dGhpcy5yYT10aGlzLl9faW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPSEwfX0pO1xuZnVuY3Rpb24gT2QoYSxiKXtiPXZvaWQgMD09PWI/YS50YXJnZXQ6YjthLl9fdGFyZ2V0PWI7YS5fX3JlbGF0ZWRUYXJnZXQ9YS5yZWxhdGVkVGFyZ2V0O2lmKE4uSCl7Yj1PYmplY3QuZ2V0UHJvdG90eXBlT2YoYSk7aWYoIWIuaGFzT3duUHJvcGVydHkoXCJfX3NoYWR5X3BhdGNoZWRQcm90b1wiKSl7dmFyIGM9T2JqZWN0LmNyZWF0ZShiKTtjLl9fc2hhZHlfc291cmNlUHJvdG89YjtQKGMsU2QpO2IuX19zaGFkeV9wYXRjaGVkUHJvdG89Y31hLl9fcHJvdG9fXz1iLl9fc2hhZHlfcGF0Y2hlZFByb3RvfWVsc2UgUChhLFNkKX12YXIgVGQ9SGQoRXZlbnQpLFVkPUhkKEN1c3RvbUV2ZW50KSxWZD1IZChNb3VzZUV2ZW50KTtcbmZ1bmN0aW9uIFdkKCl7aWYoIXlkJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV2ZW50LnByb3RvdHlwZSxcImlzVHJ1c3RlZFwiKSl7dmFyIGE9ZnVuY3Rpb24oKXt2YXIgYj1uZXcgTW91c2VFdmVudChcImNsaWNrXCIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjb21wb3NlZDohMH0pO3RoaXMuX19zaGFkeV9kaXNwYXRjaEV2ZW50KGIpfTtFbGVtZW50LnByb3RvdHlwZS5jbGljaz9FbGVtZW50LnByb3RvdHlwZS5jbGljaz1hOkhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGljayYmKEhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGljaz1hKX19XG52YXIgWGQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoRWxlbWVudC5wcm90b3R5cGUpLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm5cIm9uXCI9PT1hLnN1YnN0cmluZygwLDIpfSksWWQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoSFRNTEVsZW1lbnQucHJvdG90eXBlKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuXCJvblwiPT09YS5zdWJzdHJpbmcoMCwyKX0pO2Z1bmN0aW9uIFpkKGEpe3JldHVybntzZXQ6ZnVuY3Rpb24oYil7dmFyIGM9RCh0aGlzKSxkPWEuc3Vic3RyaW5nKDIpO2MuVHx8KGMuVD17fSk7Yy5UW2FdJiZ0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCxjLlRbYV0pO3RoaXMuX19zaGFkeV9hZGRFdmVudExpc3RlbmVyKGQsYik7Yy5UW2FdPWJ9LGdldDpmdW5jdGlvbigpe3ZhciBiPUwodGhpcyk7cmV0dXJuIGImJmIuVCYmYi5UW2FdfSxjb25maWd1cmFibGU6ITB9fTtmdW5jdGlvbiAkZChhLGIpe3JldHVybntpbmRleDphLGdhOltdLG5hOmJ9fVxuZnVuY3Rpb24gYWUoYSxiLGMsZCl7dmFyIGU9MCxmPTAsZz0wLGg9MCxrPU1hdGgubWluKGItZSxkLWYpO2lmKDA9PWUmJjA9PWYpYTp7Zm9yKGc9MDtnPGs7ZysrKWlmKGFbZ10hPT1jW2ddKWJyZWFrIGE7Zz1rfWlmKGI9PWEubGVuZ3RoJiZkPT1jLmxlbmd0aCl7aD1hLmxlbmd0aDtmb3IodmFyIGw9Yy5sZW5ndGgsbT0wO208ay1nJiZiZShhWy0taF0sY1stLWxdKTspbSsrO2g9bX1lKz1nO2YrPWc7Yi09aDtkLT1oO2lmKDA9PWItZSYmMD09ZC1mKXJldHVybltdO2lmKGU9PWIpe2ZvcihiPSRkKGUsMCk7ZjxkOyliLmdhLnB1c2goY1tmKytdKTtyZXR1cm5bYl19aWYoZj09ZClyZXR1cm5bJGQoZSxiLWUpXTtrPWU7Zz1mO2Q9ZC1nKzE7aD1iLWsrMTtiPUFycmF5KGQpO2ZvcihsPTA7bDxkO2wrKyliW2xdPUFycmF5KGgpLGJbbF1bMF09bDtmb3IobD0wO2w8aDtsKyspYlswXVtsXT1sO2ZvcihsPTE7bDxkO2wrKylmb3IobT0xO208aDttKyspaWYoYVtrK20tMV09PT1jW2crbC0xXSliW2xdW21dPVxuYltsLTFdW20tMV07ZWxzZXt2YXIgcT1iW2wtMV1bbV0rMSxIPWJbbF1bbS0xXSsxO2JbbF1bbV09cTxIP3E6SH1rPWIubGVuZ3RoLTE7Zz1iWzBdLmxlbmd0aC0xO2Q9YltrXVtnXTtmb3IoYT1bXTswPGt8fDA8ZzspMD09az8oYS5wdXNoKDIpLGctLSk6MD09Zz8oYS5wdXNoKDMpLGstLSk6KGg9YltrLTFdW2ctMV0sbD1iW2stMV1bZ10sbT1iW2tdW2ctMV0scT1sPG0/bDxoP2w6aDptPGg/bTpoLHE9PWg/KGg9PWQ/YS5wdXNoKDApOihhLnB1c2goMSksZD1oKSxrLS0sZy0tKTpxPT1sPyhhLnB1c2goMyksay0tLGQ9bCk6KGEucHVzaCgyKSxnLS0sZD1tKSk7YS5yZXZlcnNlKCk7Yj12b2lkIDA7az1bXTtmb3IoZz0wO2c8YS5sZW5ndGg7ZysrKXN3aXRjaChhW2ddKXtjYXNlIDA6YiYmKGsucHVzaChiKSxiPXZvaWQgMCk7ZSsrO2YrKzticmVhaztjYXNlIDE6Ynx8KGI9JGQoZSwwKSk7Yi5uYSsrO2UrKztiLmdhLnB1c2goY1tmXSk7ZisrO2JyZWFrO2Nhc2UgMjpifHwoYj0kZChlLFxuMCkpO2IubmErKztlKys7YnJlYWs7Y2FzZSAzOmJ8fChiPSRkKGUsMCkpLGIuZ2EucHVzaChjW2ZdKSxmKyt9YiYmay5wdXNoKGIpO3JldHVybiBrfWZ1bmN0aW9uIGJlKGEsYil7cmV0dXJuIGE9PT1ifTt2YXIgY2U9USh7ZGlzcGF0Y2hFdmVudDpOZCxhZGRFdmVudExpc3RlbmVyOlBkLHJlbW92ZUV2ZW50TGlzdGVuZXI6UWR9KTt2YXIgZGU9bnVsbDtmdW5jdGlvbiBlZSgpe2RlfHwoZGU9d2luZG93LlNoYWR5Q1NTJiZ3aW5kb3cuU2hhZHlDU1MuU2NvcGluZ1NoaW0pO3JldHVybiBkZXx8bnVsbH1mdW5jdGlvbiBmZShhLGIsYyl7dmFyIGQ9ZWUoKTtyZXR1cm4gZCYmXCJjbGFzc1wiPT09Yj8oZC5zZXRFbGVtZW50Q2xhc3MoYSxjKSwhMCk6ITF9ZnVuY3Rpb24gZ2UoYSxiKXt2YXIgYz1lZSgpO2MmJmMudW5zY29wZU5vZGUoYSxiKX1mdW5jdGlvbiBoZShhLGIpe3ZhciBjPWVlKCk7aWYoIWMpcmV0dXJuITA7aWYoYS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSl7Yz0hMDtmb3IoYT1hLl9fc2hhZHlfZmlyc3RDaGlsZDthO2E9YS5fX3NoYWR5X25leHRTaWJsaW5nKWM9YyYmaGUoYSxiKTtyZXR1cm4gY31yZXR1cm4gYS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFPyEwOmMuY3VycmVudFNjb3BlRm9yTm9kZShhKT09PWJ9XG5mdW5jdGlvbiBpZShhKXtpZihhLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuXCJcIjt2YXIgYj1lZSgpO3JldHVybiBiP2IuY3VycmVudFNjb3BlRm9yTm9kZShhKTpcIlwifWZ1bmN0aW9uIGplKGEsYil7aWYoYSlmb3IoYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZiKGEpLGE9YS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YTthPWEuX19zaGFkeV9uZXh0U2libGluZylhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmplKGEsYil9O3ZhciBrZT13aW5kb3cuZG9jdW1lbnQsbGU9Ti5mYSxtZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwiaXNDb25uZWN0ZWRcIiksbmU9bWUmJm1lLmdldDtmdW5jdGlvbiBwZShhKXtmb3IodmFyIGI7Yj1hLl9fc2hhZHlfZmlyc3RDaGlsZDspYS5fX3NoYWR5X3JlbW92ZUNoaWxkKGIpfWZ1bmN0aW9uIHFlKGEpe3ZhciBiPUwoYSk7aWYoYiYmdm9pZCAwIT09Yi5xYSlmb3IoYj1hLl9fc2hhZHlfZmlyc3RDaGlsZDtiO2I9Yi5fX3NoYWR5X25leHRTaWJsaW5nKXFlKGIpO2lmKGE9TChhKSlhLnFhPXZvaWQgMH1mdW5jdGlvbiByZShhKXt2YXIgYj1hO2lmKGEmJlwic2xvdFwiPT09YS5sb2NhbE5hbWUpe3ZhciBjPUwoYSk7KGM9YyYmYy5hYSkmJihiPWMubGVuZ3RoP2NbMF06cmUoYS5fX3NoYWR5X25leHRTaWJsaW5nKSl9cmV0dXJuIGJ9XG5mdW5jdGlvbiBzZShhLGIsYyl7aWYoYT0oYT1MKGEpKSYmYS5lYSl7aWYoYilpZihiLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKWZvcih2YXIgZD0wLGU9Yi5jaGlsZE5vZGVzLmxlbmd0aDtkPGU7ZCsrKWEuYWRkZWROb2Rlcy5wdXNoKGIuY2hpbGROb2Rlc1tkXSk7ZWxzZSBhLmFkZGVkTm9kZXMucHVzaChiKTtjJiZhLnJlbW92ZWROb2Rlcy5wdXNoKGMpO1VjKGEpfX1cbnZhciB6ZT1RKHtnZXQgcGFyZW50Tm9kZSgpe3ZhciBhPUwodGhpcyk7YT1hJiZhLnBhcmVudE5vZGU7cmV0dXJuIHZvaWQgMCE9PWE/YTp0aGlzLl9fc2hhZHlfbmF0aXZlX3BhcmVudE5vZGV9LGdldCBmaXJzdENoaWxkKCl7dmFyIGE9TCh0aGlzKTthPWEmJmEuZmlyc3RDaGlsZDtyZXR1cm4gdm9pZCAwIT09YT9hOnRoaXMuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZH0sZ2V0IGxhc3RDaGlsZCgpe3ZhciBhPUwodGhpcyk7YT1hJiZhLmxhc3RDaGlsZDtyZXR1cm4gdm9pZCAwIT09YT9hOnRoaXMuX19zaGFkeV9uYXRpdmVfbGFzdENoaWxkfSxnZXQgbmV4dFNpYmxpbmcoKXt2YXIgYT1MKHRoaXMpO2E9YSYmYS5uZXh0U2libGluZztyZXR1cm4gdm9pZCAwIT09YT9hOnRoaXMuX19zaGFkeV9uYXRpdmVfbmV4dFNpYmxpbmd9LGdldCBwcmV2aW91c1NpYmxpbmcoKXt2YXIgYT1MKHRoaXMpO2E9YSYmYS5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIHZvaWQgMCE9PWE/YTp0aGlzLl9fc2hhZHlfbmF0aXZlX3ByZXZpb3VzU2libGluZ30sXG5nZXQgY2hpbGROb2Rlcygpe2lmKHZjKHRoaXMpKXt2YXIgYT1MKHRoaXMpO2lmKCFhLmNoaWxkTm9kZXMpe2EuY2hpbGROb2Rlcz1bXTtmb3IodmFyIGI9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YjtiPWIuX19zaGFkeV9uZXh0U2libGluZylhLmNoaWxkTm9kZXMucHVzaChiKX12YXIgYz1hLmNoaWxkTm9kZXN9ZWxzZSBjPXRoaXMuX19zaGFkeV9uYXRpdmVfY2hpbGROb2RlcztjLml0ZW09ZnVuY3Rpb24oZCl7cmV0dXJuIGNbZF19O3JldHVybiBjfSxnZXQgcGFyZW50RWxlbWVudCgpe3ZhciBhPUwodGhpcyk7KGE9YSYmYS5wYXJlbnROb2RlKSYmYS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFJiYoYT1udWxsKTtyZXR1cm4gdm9pZCAwIT09YT9hOnRoaXMuX19zaGFkeV9uYXRpdmVfcGFyZW50RWxlbWVudH0sZ2V0IGlzQ29ubmVjdGVkKCl7aWYobmUmJm5lLmNhbGwodGhpcykpcmV0dXJuITA7aWYodGhpcy5ub2RlVHlwZT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKXJldHVybiExO1xudmFyIGE9dGhpcy5vd25lckRvY3VtZW50O2lmKG51bGw9PT1hfHxFYyhhLHRoaXMpKXJldHVybiEwO2ZvcihhPXRoaXM7YSYmIShhIGluc3RhbmNlb2YgRG9jdW1lbnQpOylhPWEuX19zaGFkeV9wYXJlbnROb2RlfHwoTyhhKT9hLmhvc3Q6dm9pZCAwKTtyZXR1cm4hIShhJiZhIGluc3RhbmNlb2YgRG9jdW1lbnQpfSxnZXQgdGV4dENvbnRlbnQoKXtpZih2Yyh0aGlzKSl7Zm9yKHZhciBhPVtdLGI9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YjtiPWIuX19zaGFkeV9uZXh0U2libGluZyliLm5vZGVUeXBlIT09Tm9kZS5DT01NRU5UX05PREUmJmEucHVzaChiLl9fc2hhZHlfdGV4dENvbnRlbnQpO3JldHVybiBhLmpvaW4oXCJcIil9cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfdGV4dENvbnRlbnR9LHNldCB0ZXh0Q29udGVudChhKXtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGF8fG51bGw9PT1hKWE9XCJcIjtzd2l0Y2godGhpcy5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERTppZighdmModGhpcykmJlxuTi5IKXt2YXIgYj10aGlzLl9fc2hhZHlfZmlyc3RDaGlsZDsoYiE9dGhpcy5fX3NoYWR5X2xhc3RDaGlsZHx8YiYmYi5ub2RlVHlwZSE9Tm9kZS5URVhUX05PREUpJiZwZSh0aGlzKTt0aGlzLl9fc2hhZHlfbmF0aXZlX3RleHRDb250ZW50PWF9ZWxzZSBwZSh0aGlzKSwoMDxhLmxlbmd0aHx8dGhpcy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKSYmdGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShhKSk7YnJlYWs7ZGVmYXVsdDp0aGlzLm5vZGVWYWx1ZT1hfX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKGEsYil7aWYodGhpcy5vd25lckRvY3VtZW50IT09a2UmJmEub3duZXJEb2N1bWVudCE9PWtlKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX2luc2VydEJlZm9yZShhLGIpLGE7aWYoYT09PXRoaXMpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gZXhlY3V0ZSAnYXBwZW5kQ2hpbGQnIG9uICdOb2RlJzogVGhlIG5ldyBjaGlsZCBlbGVtZW50IGNvbnRhaW5zIHRoZSBwYXJlbnQuXCIpO1xuaWYoYil7dmFyIGM9TChiKTtjPWMmJmMucGFyZW50Tm9kZTtpZih2b2lkIDAhPT1jJiZjIT09dGhpc3x8dm9pZCAwPT09YyYmYi5fX3NoYWR5X25hdGl2ZV9wYXJlbnROb2RlIT09dGhpcyl0aHJvdyBFcnJvcihcIkZhaWxlZCB0byBleGVjdXRlICdpbnNlcnRCZWZvcmUnIG9uICdOb2RlJzogVGhlIG5vZGUgYmVmb3JlIHdoaWNoIHRoZSBuZXcgbm9kZSBpcyB0byBiZSBpbnNlcnRlZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGUuXCIpO31pZihiPT09YSlyZXR1cm4gYTtzZSh0aGlzLGEpO3ZhciBkPVtdLGU9KGM9dGUodGhpcykpP2MuaG9zdC5sb2NhbE5hbWU6aWUodGhpcyksZj1hLl9fc2hhZHlfcGFyZW50Tm9kZTtpZihmKXt2YXIgZz1pZShhKTt2YXIgaD0hIWN8fCF0ZShhKXx8bGUmJnZvaWQgMCE9PXRoaXMuX19ub0luc2VydGlvblBvaW50O2YuX19zaGFkeV9yZW1vdmVDaGlsZChhLGgpfWY9ITA7dmFyIGs9KCFsZXx8dm9pZCAwPT09YS5fX25vSW5zZXJ0aW9uUG9pbnQmJnZvaWQgMD09PVxudGhpcy5fX25vSW5zZXJ0aW9uUG9pbnQpJiYhaGUoYSxlKSxsPWMmJiFhLl9fbm9JbnNlcnRpb25Qb2ludCYmKCFsZXx8YS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSk7aWYobHx8aylrJiYoZz1nfHxpZShhKSksamUoYSxmdW5jdGlvbihtKXtsJiZcInNsb3RcIj09PW0ubG9jYWxOYW1lJiZkLnB1c2gobSk7aWYoayl7dmFyIHE9ZztlZSgpJiYocSYmZ2UobSxxKSwocT1lZSgpKSYmcS5zY29wZU5vZGUobSxlKSl9fSk7ZC5sZW5ndGgmJih1ZShjKSxjLmkucHVzaC5hcHBseShjLmkseChkKSksdmUoYykpO3ZjKHRoaXMpJiYod2UoYSx0aGlzLGIpLGg9TCh0aGlzKSxoLnJvb3Q/KGY9ITEsd2ModGhpcykmJnZlKGgucm9vdCkpOmMmJlwic2xvdFwiPT09dGhpcy5sb2NhbE5hbWUmJihmPSExLHZlKGMpKSk7Zj8oYz1PKHRoaXMpP3RoaXMuaG9zdDp0aGlzLGI/KGI9cmUoYiksYy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUoYSxiKSk6Yy5fX3NoYWR5X25hdGl2ZV9hcHBlbmRDaGlsZChhKSk6XG5hLm93bmVyRG9jdW1lbnQhPT10aGlzLm93bmVyRG9jdW1lbnQmJnRoaXMub3duZXJEb2N1bWVudC5hZG9wdE5vZGUoYSk7cmV0dXJuIGF9LGFwcGVuZENoaWxkOmZ1bmN0aW9uKGEpe2lmKHRoaXMhPWF8fCFPKGEpKXJldHVybiB0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKGEpfSxyZW1vdmVDaGlsZDpmdW5jdGlvbihhLGIpe2I9dm9pZCAwPT09Yj8hMTpiO2lmKHRoaXMub3duZXJEb2N1bWVudCE9PWtlKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGEpO2lmKGEuX19zaGFkeV9wYXJlbnROb2RlIT09dGhpcyl0aHJvdyBFcnJvcihcIlRoZSBub2RlIHRvIGJlIHJlbW92ZWQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2RlOiBcIithKTtzZSh0aGlzLG51bGwsYSk7dmFyIGM9dGUoYSksZD1jJiZ4ZShjLGEpLGU9TCh0aGlzKTtpZih2Yyh0aGlzKSYmKHllKGEsdGhpcyksd2ModGhpcykpKXt2ZShlLnJvb3QpO3ZhciBmPSEwfWlmKGVlKCkmJiFiJiZjJiZhLm5vZGVUeXBlIT09XG5Ob2RlLlRFWFRfTk9ERSl7dmFyIGc9aWUoYSk7amUoYSxmdW5jdGlvbihoKXtnZShoLGcpfSl9cWUoYSk7YyYmKChiPVwic2xvdFwiPT09dGhpcy5sb2NhbE5hbWUpJiYoZj0hMCksKGR8fGIpJiZ2ZShjKSk7Znx8KGY9Tyh0aGlzKT90aGlzLmhvc3Q6dGhpcywoIWUucm9vdCYmXCJzbG90XCIhPT1hLmxvY2FsTmFtZXx8Zj09PWEuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSkmJmYuX19zaGFkeV9uYXRpdmVfcmVtb3ZlQ2hpbGQoYSkpO3JldHVybiBhfSxyZXBsYWNlQ2hpbGQ6ZnVuY3Rpb24oYSxiKXt0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKGEsYik7dGhpcy5fX3NoYWR5X3JlbW92ZUNoaWxkKGIpO3JldHVybiBhfSxjbG9uZU5vZGU6ZnVuY3Rpb24oYSl7aWYoXCJ0ZW1wbGF0ZVwiPT10aGlzLmxvY2FsTmFtZSlyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUoYSk7dmFyIGI9dGhpcy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUoITEpO2lmKGEmJmIubm9kZVR5cGUhPT1cbk5vZGUuQVRUUklCVVRFX05PREUpe2E9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7Zm9yKHZhciBjO2E7YT1hLl9fc2hhZHlfbmV4dFNpYmxpbmcpYz1hLl9fc2hhZHlfY2xvbmVOb2RlKCEwKSxiLl9fc2hhZHlfYXBwZW5kQ2hpbGQoYyl9cmV0dXJuIGJ9LGdldFJvb3ROb2RlOmZ1bmN0aW9uKGEpe2lmKHRoaXMmJnRoaXMubm9kZVR5cGUpe3ZhciBiPUQodGhpcyksYz1iLnFhO3ZvaWQgMD09PWMmJihPKHRoaXMpPyhjPXRoaXMsYi5xYT1jKTooYz0oYz10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZSk/Yy5fX3NoYWR5X2dldFJvb3ROb2RlKGEpOnRoaXMsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKHRoaXMpJiYoYi5xYT1jKSkpO3JldHVybiBjfX0sY29udGFpbnM6ZnVuY3Rpb24oYSl7cmV0dXJuIEdjKHRoaXMsYSl9fSk7dmFyIEJlPVEoe2dldCBhc3NpZ25lZFNsb3QoKXt2YXIgYT10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZTsoYT1hJiZhLl9fc2hhZHlfc2hhZG93Um9vdCkmJkFlKGEpO3JldHVybihhPUwodGhpcykpJiZhLmFzc2lnbmVkU2xvdHx8bnVsbH19KTtmdW5jdGlvbiBDZShhLGIsYyl7dmFyIGQ9W107RGUoYSxiLGMsZCk7cmV0dXJuIGR9ZnVuY3Rpb24gRGUoYSxiLGMsZCl7Zm9yKGE9YS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YTthPWEuX19zaGFkeV9uZXh0U2libGluZyl7dmFyIGU7aWYoZT1hLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe2U9YTt2YXIgZj1iLGc9YyxoPWQsaz1mKGUpO2smJmgucHVzaChlKTtnJiZnKGspP2U9azooRGUoZSxmLGcsaCksZT12b2lkIDApfWlmKGUpYnJlYWt9fVxudmFyIEVlPXtnZXQgZmlyc3RFbGVtZW50Q2hpbGQoKXt2YXIgYT1MKHRoaXMpO2lmKGEmJnZvaWQgMCE9PWEuZmlyc3RDaGlsZCl7Zm9yKGE9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YSYmYS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFOylhPWEuX19zaGFkeV9uZXh0U2libGluZztyZXR1cm4gYX1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9maXJzdEVsZW1lbnRDaGlsZH0sZ2V0IGxhc3RFbGVtZW50Q2hpbGQoKXt2YXIgYT1MKHRoaXMpO2lmKGEmJnZvaWQgMCE9PWEubGFzdENoaWxkKXtmb3IoYT10aGlzLl9fc2hhZHlfbGFzdENoaWxkO2EmJmEubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERTspYT1hLl9fc2hhZHlfcHJldmlvdXNTaWJsaW5nO3JldHVybiBhfXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX2xhc3RFbGVtZW50Q2hpbGR9LGdldCBjaGlsZHJlbigpe3JldHVybiB2Yyh0aGlzKT9IYyhBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoSmModGhpcyksXG5mdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFfSkpOnRoaXMuX19zaGFkeV9uYXRpdmVfY2hpbGRyZW59LGdldCBjaGlsZEVsZW1lbnRDb3VudCgpe3ZhciBhPXRoaXMuX19zaGFkeV9jaGlsZHJlbjtyZXR1cm4gYT9hLmxlbmd0aDowfX0sRmU9USgoRWUuYXBwZW5kPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPWFyZ3VtZW50c1tjXTt0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKE9jLmFwcGx5KG51bGwseChiKSksbnVsbCl9LEVlLnByZXBlbmQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGFyZ3VtZW50cy5sZW5ndGg7KytjKWJbY109YXJndW1lbnRzW2NdO3RoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoT2MuYXBwbHkobnVsbCx4KGIpKSx0aGlzLl9fc2hhZHlfZmlyc3RDaGlsZCl9LEVlLnJlcGxhY2VDaGlsZHJlbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1cbmFyZ3VtZW50c1tjXTtmb3IoO251bGwhPT0oYz10aGlzLl9fc2hhZHlfZmlyc3RDaGlsZCk7KXRoaXMuX19zaGFkeV9yZW1vdmVDaGlsZChjKTt0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKE9jLmFwcGx5KG51bGwseChiKSksbnVsbCl9LEVlKSksR2U9USh7cXVlcnlTZWxlY3RvcjpmdW5jdGlvbihhKXtyZXR1cm4gQ2UodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gemMuY2FsbChiLGEpfSxmdW5jdGlvbihiKXtyZXR1cm4hIWJ9KVswXXx8bnVsbH0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbihhLGIpe2lmKGIpe2I9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fX3NoYWR5X25hdGl2ZV9xdWVyeVNlbGVjdG9yQWxsKGEpKTt2YXIgYz10aGlzLl9fc2hhZHlfZ2V0Um9vdE5vZGUoKTtyZXR1cm4gSGMoYi5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGQuX19zaGFkeV9nZXRSb290Tm9kZSgpPT1jfSkpfXJldHVybiBIYyhDZSh0aGlzLGZ1bmN0aW9uKGQpe3JldHVybiB6Yy5jYWxsKGQsXG5hKX0pKX19KSxIZT1OLmZhJiYhTi5KP01jKHt9LEZlKTpGZTtNYyhGZSxHZSk7dmFyIEllPVEoe2FmdGVyOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPWFyZ3VtZW50c1tjXTtjPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKG51bGwhPT1jKXt2YXIgZD10aGlzLl9fc2hhZHlfbmV4dFNpYmxpbmc7Yy5fX3NoYWR5X2luc2VydEJlZm9yZShPYy5hcHBseShudWxsLHgoYikpLGQpfX0sYmVmb3JlOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPWFyZ3VtZW50c1tjXTtjPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO251bGwhPT1jJiZjLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKE9jLmFwcGx5KG51bGwseChiKSksdGhpcyl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO251bGwhPT1hJiZhLl9fc2hhZHlfcmVtb3ZlQ2hpbGQodGhpcyl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPVxuYXJndW1lbnRzW2NdO2M9dGhpcy5fX3NoYWR5X3BhcmVudE5vZGU7aWYobnVsbCE9PWMpe3ZhciBkPXRoaXMuX19zaGFkeV9uZXh0U2libGluZztjLl9fc2hhZHlfcmVtb3ZlQ2hpbGQodGhpcyk7Yy5fX3NoYWR5X2luc2VydEJlZm9yZShPYy5hcHBseShudWxsLHgoYikpLGQpfX19KTt2YXIgSmU9d2luZG93LmRvY3VtZW50O2Z1bmN0aW9uIEtlKGEsYil7aWYoXCJzbG90XCI9PT1iKWE9YS5fX3NoYWR5X3BhcmVudE5vZGUsd2MoYSkmJnZlKEwoYSkucm9vdCk7ZWxzZSBpZihcInNsb3RcIj09PWEubG9jYWxOYW1lJiZcIm5hbWVcIj09PWImJihiPXRlKGEpKSl7aWYoYi5nKXtMZShiKTt2YXIgYz1hLlFhLGQ9TWUoYSk7aWYoZCE9PWMpe2M9Yi5oW2NdO3ZhciBlPWMuaW5kZXhPZihhKTswPD1lJiZjLnNwbGljZShlLDEpO2M9Yi5oW2RdfHwoYi5oW2RdPVtdKTtjLnB1c2goYSk7MTxjLmxlbmd0aCYmKGIuaFtkXT1OZShjKSl9fXZlKGIpfX1cbnZhciBPZT1RKHtnZXQgcHJldmlvdXNFbGVtZW50U2libGluZygpe3ZhciBhPUwodGhpcyk7aWYoYSYmdm9pZCAwIT09YS5wcmV2aW91c1NpYmxpbmcpe2ZvcihhPXRoaXMuX19zaGFkeV9wcmV2aW91c1NpYmxpbmc7YSYmYS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFOylhPWEuX19zaGFkeV9wcmV2aW91c1NpYmxpbmc7cmV0dXJuIGF9cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcHJldmlvdXNFbGVtZW50U2libGluZ30sZ2V0IG5leHRFbGVtZW50U2libGluZygpe3ZhciBhPUwodGhpcyk7aWYoYSYmdm9pZCAwIT09YS5uZXh0U2libGluZyl7Zm9yKGE9dGhpcy5fX3NoYWR5X25leHRTaWJsaW5nO2EmJmEubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERTspYT1hLl9fc2hhZHlfbmV4dFNpYmxpbmc7cmV0dXJuIGF9cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfbmV4dEVsZW1lbnRTaWJsaW5nfSxnZXQgc2xvdCgpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZShcInNsb3RcIil9LFxuc2V0IHNsb3QoYSl7dGhpcy5fX3NoYWR5X3NldEF0dHJpYnV0ZShcInNsb3RcIixhKX0sZ2V0IGNsYXNzTmFtZSgpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwifSxzZXQgY2xhc3NOYW1lKGEpe3RoaXMuX19zaGFkeV9zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLGEpfSxzZXRBdHRyaWJ1dGU6ZnVuY3Rpb24oYSxiKXt0aGlzLm93bmVyRG9jdW1lbnQhPT1KZT90aGlzLl9fc2hhZHlfbmF0aXZlX3NldEF0dHJpYnV0ZShhLGIpOmZlKHRoaXMsYSxiKXx8KHRoaXMuX19zaGFkeV9uYXRpdmVfc2V0QXR0cmlidXRlKGEsYiksS2UodGhpcyxhKSl9LHJlbW92ZUF0dHJpYnV0ZTpmdW5jdGlvbihhKXt0aGlzLm93bmVyRG9jdW1lbnQhPT1KZT90aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZShhKTpmZSh0aGlzLGEsXCJcIik/XCJcIj09PXRoaXMuZ2V0QXR0cmlidXRlKGEpJiZ0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZShhKToodGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVBdHRyaWJ1dGUoYSksXG5LZSh0aGlzLGEpKX19KTtOLmZhfHxYZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe09lW2FdPVpkKGEpfSk7XG52YXIgVGU9USh7YXR0YWNoU2hhZG93OmZ1bmN0aW9uKGEpe2lmKCF0aGlzKXRocm93IEVycm9yKFwiTXVzdCBwcm92aWRlIGEgaG9zdC5cIik7aWYoIWEpdGhyb3cgRXJyb3IoXCJOb3QgZW5vdWdoIGFyZ3VtZW50cy5cIik7aWYoYS5zaGFkeVVwZ3JhZGVGcmFnbWVudCYmIU4uTmEpe3ZhciBiPWEuc2hhZHlVcGdyYWRlRnJhZ21lbnQ7Yi5fX3Byb3RvX189U2hhZG93Um9vdC5wcm90b3R5cGU7UGUoYix0aGlzLGEpO1FlKGIsYik7YT1iLl9fbm9JbnNlcnRpb25Qb2ludD9udWxsOmIucXVlcnlTZWxlY3RvckFsbChcInNsb3RcIik7Yi5fX25vSW5zZXJ0aW9uUG9pbnQ9dm9pZCAwO2lmKGEmJmEubGVuZ3RoKXt2YXIgYz1iO3VlKGMpO2MuaS5wdXNoLmFwcGx5KGMuaSx4KGEpKTt2ZShiKX1iLmhvc3QuX19zaGFkeV9uYXRpdmVfYXBwZW5kQ2hpbGQoYil9ZWxzZSBiPW5ldyBSZShTZSx0aGlzLGEpO3JldHVybiB0aGlzLl9fQ0Vfc2hhZG93Um9vdD1ifSxnZXQgc2hhZG93Um9vdCgpe3ZhciBhPUwodGhpcyk7XG5yZXR1cm4gYSYmYS5nYnx8bnVsbH19KTtNYyhPZSxUZSk7dmFyIFVlPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudChcImluZXJ0XCIpLFZlPVEoe2dldCBpbm5lckhUTUwoKXtyZXR1cm4gdmModGhpcyk/ZGQoXCJ0ZW1wbGF0ZVwiPT09dGhpcy5sb2NhbE5hbWU/dGhpcy5jb250ZW50OnRoaXMsSmMpOnRoaXMuX19zaGFkeV9uYXRpdmVfaW5uZXJIVE1MfSxzZXQgaW5uZXJIVE1MKGEpe2lmKFwidGVtcGxhdGVcIj09PXRoaXMubG9jYWxOYW1lKXRoaXMuX19zaGFkeV9uYXRpdmVfaW5uZXJIVE1MPWE7ZWxzZXtwZSh0aGlzKTt2YXIgYj10aGlzLmxvY2FsTmFtZXx8XCJkaXZcIjtiPXRoaXMubmFtZXNwYWNlVVJJJiZ0aGlzLm5hbWVzcGFjZVVSSSE9PVVlLm5hbWVzcGFjZVVSST9VZS5jcmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkksYik6VWUuY3JlYXRlRWxlbWVudChiKTtmb3IoTi5IP2IuX19zaGFkeV9uYXRpdmVfaW5uZXJIVE1MPWE6Yi5pbm5lckhUTUw9YTthPWIuX19zaGFkeV9maXJzdENoaWxkOyl0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKGEpfX19KTt2YXIgV2U9USh7Ymx1cjpmdW5jdGlvbigpe3ZhciBhPUwodGhpcyk7KGE9KGE9YSYmYS5yb290KSYmYS5hY3RpdmVFbGVtZW50KT9hLl9fc2hhZHlfYmx1cigpOnRoaXMuX19zaGFkeV9uYXRpdmVfYmx1cigpfX0pO04uZmF8fFlkLmZvckVhY2goZnVuY3Rpb24oYSl7V2VbYV09WmQoYSl9KTt2YXIgWGU9USh7YXNzaWduZWROb2RlczpmdW5jdGlvbihhKXtpZihcInNsb3RcIj09PXRoaXMubG9jYWxOYW1lKXt2YXIgYj10aGlzLl9fc2hhZHlfZ2V0Um9vdE5vZGUoKTtiJiZPKGIpJiZBZShiKTtyZXR1cm4oYj1MKHRoaXMpKT8oYSYmYS5mbGF0dGVuP2IuYWE6Yi5hc3NpZ25lZE5vZGVzKXx8W106W119fSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYixjKXtpZihcInNsb3RcIiE9PXRoaXMubG9jYWxOYW1lfHxcInNsb3RjaGFuZ2VcIj09PWEpUGQuY2FsbCh0aGlzLGEsYixjKTtlbHNle1wib2JqZWN0XCIhPT10eXBlb2YgYyYmKGM9e2NhcHR1cmU6ISFjfSk7dmFyIGQ9dGhpcy5fX3NoYWR5X3BhcmVudE5vZGU7aWYoIWQpdGhyb3cgRXJyb3IoXCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYFwiKTtjLlU9dGhpcztkLl9fc2hhZHlfYWRkRXZlbnRMaXN0ZW5lcihhLGIsYyl9fSxyZW1vdmVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsXG5iLGMpe2lmKFwic2xvdFwiIT09dGhpcy5sb2NhbE5hbWV8fFwic2xvdGNoYW5nZVwiPT09YSlRZC5jYWxsKHRoaXMsYSxiLGMpO2Vsc2V7XCJvYmplY3RcIiE9PXR5cGVvZiBjJiYoYz17Y2FwdHVyZTohIWN9KTt2YXIgZD10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZTtpZighZCl0aHJvdyBFcnJvcihcIlNoYWR5RE9NIGNhbm5vdCBhdHRhY2ggZXZlbnQgdG8gc2xvdCB1bmxlc3MgaXQgaGFzIGEgYHBhcmVudE5vZGVgXCIpO2MuVT10aGlzO2QuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKGEsYixjKX19fSk7dmFyIFllPVEoe2dldEVsZW1lbnRCeUlkOmZ1bmN0aW9uKGEpe3JldHVyblwiXCI9PT1hP251bGw6Q2UodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYi5pZD09YX0sZnVuY3Rpb24oYil7cmV0dXJuISFifSlbMF18fG51bGx9fSk7ZnVuY3Rpb24gWmUoYSxiKXtmb3IodmFyIGM7YiYmIWEuaGFzKGM9Yi5fX3NoYWR5X2dldFJvb3ROb2RlKCkpOyliPWMuaG9zdDtyZXR1cm4gYn1mdW5jdGlvbiAkZShhKXt2YXIgYj1uZXcgU2V0O2ZvcihiLmFkZChhKTtPKGEpJiZhLmhvc3Q7KWE9YS5ob3N0Ll9fc2hhZHlfZ2V0Um9vdE5vZGUoKSxiLmFkZChhKTtyZXR1cm4gYn1cbnZhciBhZj1cIl9fc2hhZHlfbmF0aXZlX1wiK3VjKCksYmY9USh7Z2V0IGFjdGl2ZUVsZW1lbnQoKXt2YXIgYT1OLkg/ZG9jdW1lbnQuX19zaGFkeV9uYXRpdmVfYWN0aXZlRWxlbWVudDpkb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKCFhfHwhYS5ub2RlVHlwZSlyZXR1cm4gbnVsbDt2YXIgYj0hIU8odGhpcyk7aWYoISh0aGlzPT09ZG9jdW1lbnR8fGImJnRoaXMuaG9zdCE9PWEmJnRoaXMuaG9zdC5fX3NoYWR5X25hdGl2ZV9jb250YWlucyhhKSkpcmV0dXJuIG51bGw7Zm9yKGI9dGUoYSk7YiYmYiE9PXRoaXM7KWE9Yi5ob3N0LGI9dGUoYSk7cmV0dXJuIHRoaXM9PT1kb2N1bWVudD9iP251bGw6YTpiPT09dGhpcz9hOm51bGx9LGVsZW1lbnRzRnJvbVBvaW50OmZ1bmN0aW9uKGEsYil7YT1bXS5zbGljZS5jYWxsKGRvY3VtZW50W2FmXShhLGIpKTtiPSRlKHRoaXMpO2Zvcih2YXIgYz1uZXcgU2V0LGQ9MDtkPGEubGVuZ3RoO2QrKyljLmFkZChaZShiLGFbZF0pKTt2YXIgZT1bXTtjLmZvckVhY2goZnVuY3Rpb24oZil7cmV0dXJuIGUucHVzaChmKX0pO1xucmV0dXJuIGV9LGVsZW1lbnRGcm9tUG9pbnQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2VsZW1lbnRzRnJvbVBvaW50KGEsYilbMF18fG51bGx9fSk7dmFyIGNmPXdpbmRvdy5kb2N1bWVudCxkZj1RKHtpbXBvcnROb2RlOmZ1bmN0aW9uKGEsYil7aWYoYS5vd25lckRvY3VtZW50IT09Y2Z8fFwidGVtcGxhdGVcIj09PWEubG9jYWxOYW1lKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX2ltcG9ydE5vZGUoYSxiKTt2YXIgYz10aGlzLl9fc2hhZHlfbmF0aXZlX2ltcG9ydE5vZGUoYSwhMSk7aWYoYilmb3IoYT1hLl9fc2hhZHlfZmlyc3RDaGlsZDthO2E9YS5fX3NoYWR5X25leHRTaWJsaW5nKWI9dGhpcy5fX3NoYWR5X2ltcG9ydE5vZGUoYSwhMCksYy5fX3NoYWR5X2FwcGVuZENoaWxkKGIpO3JldHVybiBjfX0pO3ZhciBlZj1RKHtkaXNwYXRjaEV2ZW50Ok5kLGFkZEV2ZW50TGlzdGVuZXI6UGQuYmluZCh3aW5kb3cpLHJlbW92ZUV2ZW50TGlzdGVuZXI6UWQuYmluZCh3aW5kb3cpfSk7dmFyIGZmPXt9O09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLFwicGFyZW50RWxlbWVudFwiKSYmKGZmLnBhcmVudEVsZW1lbnQ9emUucGFyZW50RWxlbWVudCk7T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MRWxlbWVudC5wcm90b3R5cGUsXCJjb250YWluc1wiKSYmKGZmLmNvbnRhaW5zPXplLmNvbnRhaW5zKTtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSxcImNoaWxkcmVuXCIpJiYoZmYuY2hpbGRyZW49RmUuY2hpbGRyZW4pO09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLFwiaW5uZXJIVE1MXCIpJiYoZmYuaW5uZXJIVE1MPVZlLmlubmVySFRNTCk7T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MRWxlbWVudC5wcm90b3R5cGUsXCJjbGFzc05hbWVcIikmJihmZi5jbGFzc05hbWU9T2UuY2xhc3NOYW1lKTtcbnZhciBnZj17RXZlbnRUYXJnZXQ6W2NlXSxOb2RlOlt6ZSx3aW5kb3cuRXZlbnRUYXJnZXQ/bnVsbDpjZV0sVGV4dDpbQmVdLENvbW1lbnQ6W0JlXSxDREFUQVNlY3Rpb246W0JlXSxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246W0JlXSxFbGVtZW50OltPZSxGZSxJZSxCZSwhTi5IfHxcImlubmVySFRNTFwiaW4gRWxlbWVudC5wcm90b3R5cGU/VmU6bnVsbCx3aW5kb3cuSFRNTFNsb3RFbGVtZW50P251bGw6WGVdLEhUTUxFbGVtZW50OltXZSxmZl0sSFRNTFNsb3RFbGVtZW50OltYZV0sRG9jdW1lbnRGcmFnbWVudDpbSGUsWWVdLERvY3VtZW50OltkZixIZSxZZSxiZl0sV2luZG93OltlZl0sQ2hhcmFjdGVyRGF0YTpbSWVdfSxoZj1OLkg/bnVsbDpbXCJpbm5lckhUTUxcIixcInRleHRDb250ZW50XCJdO2Z1bmN0aW9uIGpmKGEsYixjLGQpe2IuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gYSYmZSYmUChhLGUsYyxkKX0pfVxuZnVuY3Rpb24ga2YoYSl7dmFyIGI9YT9udWxsOmhmLGM7Zm9yKGMgaW4gZ2YpamYod2luZG93W2NdJiZ3aW5kb3dbY10ucHJvdG90eXBlLGdmW2NdLGEsYil9W1wiVGV4dFwiLFwiQ29tbWVudFwiLFwiQ0RBVEFTZWN0aW9uXCIsXCJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25cIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj13aW5kb3dbYV0sYz1PYmplY3QuY3JlYXRlKGIucHJvdG90eXBlKTtjLl9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQ9ITA7amYoYyxnZi5FdmVudFRhcmdldCk7amYoYyxnZi5Ob2RlKTtnZlthXSYmamYoYyxnZlthXSk7Yi5wcm90b3R5cGUuX19zaGFkeV9wYXRjaGVkUHJvdG89Y30pO2Z1bmN0aW9uIGxmKGEpe2EuX19zaGFkeV9wcm90b0lzUGF0Y2hlZD0hMDtqZihhLGdmLkV2ZW50VGFyZ2V0KTtqZihhLGdmLk5vZGUpO2pmKGEsZ2YuRWxlbWVudCk7amYoYSxnZi5IVE1MRWxlbWVudCk7amYoYSxnZi5IVE1MU2xvdEVsZW1lbnQpO3JldHVybiBhfTt2YXIgbWY9Ti5BYSxuZj1OLkg7ZnVuY3Rpb24gb2YoYSxiKXtpZihtZiYmIWEuX19zaGFkeV9wcm90b0lzUGF0Y2hlZCYmIU8oYSkpe3ZhciBjPU9iamVjdC5nZXRQcm90b3R5cGVPZihhKSxkPWMuaGFzT3duUHJvcGVydHkoXCJfX3NoYWR5X3BhdGNoZWRQcm90b1wiKSYmYy5fX3NoYWR5X3BhdGNoZWRQcm90bztkfHwoZD1PYmplY3QuY3JlYXRlKGMpLGxmKGQpLGMuX19zaGFkeV9wYXRjaGVkUHJvdG89ZCk7T2JqZWN0LnNldFByb3RvdHlwZU9mKGEsZCl9bmZ8fCgxPT09Yj92ZChhKToyPT09YiYmd2QoYSkpfVxuZnVuY3Rpb24gcGYoYSxiLGMsZCl7b2YoYSwxKTtkPWR8fG51bGw7dmFyIGU9RChhKSxmPWQ/RChkKTpudWxsO2UucHJldmlvdXNTaWJsaW5nPWQ/Zi5wcmV2aW91c1NpYmxpbmc6Yi5fX3NoYWR5X2xhc3RDaGlsZDtpZihmPUwoZS5wcmV2aW91c1NpYmxpbmcpKWYubmV4dFNpYmxpbmc9YTtpZihmPUwoZS5uZXh0U2libGluZz1kKSlmLnByZXZpb3VzU2libGluZz1hO2UucGFyZW50Tm9kZT1iO2Q/ZD09PWMuZmlyc3RDaGlsZCYmKGMuZmlyc3RDaGlsZD1hKTooYy5sYXN0Q2hpbGQ9YSxjLmZpcnN0Q2hpbGR8fChjLmZpcnN0Q2hpbGQ9YSkpO2MuY2hpbGROb2Rlcz1udWxsfVxuZnVuY3Rpb24gd2UoYSxiLGMpe29mKGIsMik7dmFyIGQ9RChiKTt2b2lkIDAhPT1kLmZpcnN0Q2hpbGQmJihkLmNoaWxkTm9kZXM9bnVsbCk7aWYoYS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSlmb3IoYT1hLl9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7YTthPWEuX19zaGFkeV9uYXRpdmVfbmV4dFNpYmxpbmcpcGYoYSxiLGQsYyk7ZWxzZSBwZihhLGIsZCxjKX1cbmZ1bmN0aW9uIHllKGEsYil7dmFyIGM9RChhKTtiPUQoYik7YT09PWIuZmlyc3RDaGlsZCYmKGIuZmlyc3RDaGlsZD1jLm5leHRTaWJsaW5nKTthPT09Yi5sYXN0Q2hpbGQmJihiLmxhc3RDaGlsZD1jLnByZXZpb3VzU2libGluZyk7YT1jLnByZXZpb3VzU2libGluZzt2YXIgZD1jLm5leHRTaWJsaW5nO2EmJihEKGEpLm5leHRTaWJsaW5nPWQpO2QmJihEKGQpLnByZXZpb3VzU2libGluZz1hKTtjLnBhcmVudE5vZGU9Yy5wcmV2aW91c1NpYmxpbmc9Yy5uZXh0U2libGluZz12b2lkIDA7dm9pZCAwIT09Yi5jaGlsZE5vZGVzJiYoYi5jaGlsZE5vZGVzPW51bGwpfVxuZnVuY3Rpb24gUWUoYSxiKXt2YXIgYz1EKGEpO2lmKGJ8fHZvaWQgMD09PWMuZmlyc3RDaGlsZCl7Yy5jaGlsZE5vZGVzPW51bGw7dmFyIGQ9Yy5maXJzdENoaWxkPWEuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDtjLmxhc3RDaGlsZD1hLl9fc2hhZHlfbmF0aXZlX2xhc3RDaGlsZDtvZihhLDIpO2M9ZDtmb3IoZD12b2lkIDA7YztjPWMuX19zaGFkeV9uYXRpdmVfbmV4dFNpYmxpbmcpe3ZhciBlPUQoYyk7ZS5wYXJlbnROb2RlPWJ8fGE7ZS5uZXh0U2libGluZz1jLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nO2UucHJldmlvdXNTaWJsaW5nPWR8fG51bGw7ZD1jO29mKGMsMSl9fX07dmFyIHFmPVEoe2FkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiLGMpe1wib2JqZWN0XCIhPT10eXBlb2YgYyYmKGM9e2NhcHR1cmU6ISFjfSk7Yy5VPWMuVXx8dGhpczt0aGlzLmhvc3QuX19zaGFkeV9hZGRFdmVudExpc3RlbmVyKGEsYixjKX0scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihhLGIsYyl7XCJvYmplY3RcIiE9PXR5cGVvZiBjJiYoYz17Y2FwdHVyZTohIWN9KTtjLlU9Yy5VfHx0aGlzO3RoaXMuaG9zdC5fX3NoYWR5X3JlbW92ZUV2ZW50TGlzdGVuZXIoYSxiLGMpfX0pO2Z1bmN0aW9uIHJmKGEsYil7UChhLHFmLGIpO1AoYSxiZixiKTtQKGEsVmUsYik7UChhLEZlLGIpO04uSiYmIWI/KFAoYSx6ZSxiKSxQKGEsWWUsYikpOk4uSHx8KFAoYSxzZCksUChhLHFkKSxQKGEscmQpKX07dmFyIFNlPXt9LHNmPU4uZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzJiZcImxvYWRpbmdcIj09PWRvY3VtZW50LnJlYWR5U3RhdGUsdGY7ZnVuY3Rpb24gdWYoYSl7dmFyIGI9W107ZG8gYi51bnNoaWZ0KGEpO3doaWxlKGE9YS5fX3NoYWR5X3BhcmVudE5vZGUpO3JldHVybiBifWZ1bmN0aW9uIFJlKGEsYixjKXtpZihhIT09U2UpdGhyb3cgbmV3IFR5cGVFcnJvcihcIklsbGVnYWwgY29uc3RydWN0b3JcIik7dGhpcy5nPW51bGw7UGUodGhpcyxiLGMpfVxuZnVuY3Rpb24gUGUoYSxiLGMpe2EuaG9zdD1iO2EubW9kZT1jJiZjLm1vZGU7UWUoYS5ob3N0KTtiPUQoYS5ob3N0KTtiLnJvb3Q9YTtiLmdiPVwiY2xvc2VkXCIhPT1hLm1vZGU/YTpudWxsO2I9RChhKTtiLmZpcnN0Q2hpbGQ9Yi5sYXN0Q2hpbGQ9Yi5wYXJlbnROb2RlPWIubmV4dFNpYmxpbmc9Yi5wcmV2aW91c1NpYmxpbmc9bnVsbDtpZihOLnByZWZlclBlcmZvcm1hbmNlKWZvcig7Yj1hLmhvc3QuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDspYS5ob3N0Ll9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGIpO2Vsc2UgdmUoYSl9ZnVuY3Rpb24gdmUoYSl7YS5ZfHwoYS5ZPSEwLFJjKGZ1bmN0aW9uKCl7cmV0dXJuIEFlKGEpfSkpfVxuZnVuY3Rpb24gQWUoYSl7dmFyIGI7aWYoYj1hLlkpe2Zvcih2YXIgYzthOylhOnthLlkmJihjPWEpLGI9YTthPWIuaG9zdC5fX3NoYWR5X2dldFJvb3ROb2RlKCk7aWYoTyhhKSYmKGI9TChiLmhvc3QpKSYmMDxiLmlhKWJyZWFrIGE7YT12b2lkIDB9Yj1jfShjPWIpJiZjLl9yZW5kZXJTZWxmKCl9XG5SZS5wcm90b3R5cGUuX3JlbmRlclNlbGY9ZnVuY3Rpb24oKXt2YXIgYT1zZjtzZj0hMDt0aGlzLlk9ITE7aWYodGhpcy5nKXtMZSh0aGlzKTtmb3IodmFyIGI9MCxjO2I8dGhpcy5nLmxlbmd0aDtiKyspe2M9dGhpcy5nW2JdO3ZhciBkPUwoYyksZT1kLmFzc2lnbmVkTm9kZXM7ZC5hc3NpZ25lZE5vZGVzPVtdO2QuYWE9W107aWYoZC5HYT1lKWZvcihkPTA7ZDxlLmxlbmd0aDtkKyspe3ZhciBmPUwoZVtkXSk7Zi51YT1mLmFzc2lnbmVkU2xvdDtmLmFzc2lnbmVkU2xvdD09PWMmJihmLmFzc2lnbmVkU2xvdD1udWxsKX19Zm9yKGI9dGhpcy5ob3N0Ll9fc2hhZHlfZmlyc3RDaGlsZDtiO2I9Yi5fX3NoYWR5X25leHRTaWJsaW5nKXZmKHRoaXMsYik7Zm9yKGI9MDtiPHRoaXMuZy5sZW5ndGg7YisrKXtjPXRoaXMuZ1tiXTtlPUwoYyk7aWYoIWUuYXNzaWduZWROb2Rlcy5sZW5ndGgpZm9yKGQ9Yy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7ZDtkPWQuX19zaGFkeV9uZXh0U2libGluZyl2Zih0aGlzLFxuZCxjKTsoZD0oZD1MKGMuX19zaGFkeV9wYXJlbnROb2RlKSkmJmQucm9vdCkmJih4YyhkKXx8ZC5ZKSYmZC5fcmVuZGVyU2VsZigpO3dmKHRoaXMsZS5hYSxlLmFzc2lnbmVkTm9kZXMpO2lmKGQ9ZS5HYSl7Zm9yKGY9MDtmPGQubGVuZ3RoO2YrKylMKGRbZl0pLnVhPW51bGw7ZS5HYT1udWxsO2QubGVuZ3RoPmUuYXNzaWduZWROb2Rlcy5sZW5ndGgmJihlLnhhPSEwKX1lLnhhJiYoZS54YT0hMSx4Zih0aGlzLGMpKX1jPXRoaXMuZztiPVtdO2ZvcihlPTA7ZTxjLmxlbmd0aDtlKyspZD1jW2VdLl9fc2hhZHlfcGFyZW50Tm9kZSwoZj1MKGQpKSYmZi5yb290fHwhKDA+Yi5pbmRleE9mKGQpKXx8Yi5wdXNoKGQpO2ZvcihjPTA7YzxiLmxlbmd0aDtjKyspe2Y9YltjXTtlPWY9PT10aGlzP3RoaXMuaG9zdDpmO2Q9W107Zm9yKGY9Zi5fX3NoYWR5X2ZpcnN0Q2hpbGQ7ZjtmPWYuX19zaGFkeV9uZXh0U2libGluZylpZihcInNsb3RcIj09Zi5sb2NhbE5hbWUpZm9yKHZhciBnPUwoZikuYWEsaD1cbjA7aDxnLmxlbmd0aDtoKyspZC5wdXNoKGdbaF0pO2Vsc2UgZC5wdXNoKGYpO2Y9SWMoZSk7Zz1hZShkLGQubGVuZ3RoLGYsZi5sZW5ndGgpO2Zvcih2YXIgaz1oPTAsbD12b2lkIDA7aDxnLmxlbmd0aCYmKGw9Z1toXSk7aCsrKXtmb3IodmFyIG09MCxxPXZvaWQgMDttPGwuZ2EubGVuZ3RoJiYocT1sLmdhW21dKTttKyspcS5fX3NoYWR5X25hdGl2ZV9wYXJlbnROb2RlPT09ZSYmZS5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChxKSxmLnNwbGljZShsLmluZGV4K2ssMSk7ay09bC5uYX1rPTA7Zm9yKGw9dm9pZCAwO2s8Zy5sZW5ndGgmJihsPWdba10pO2srKylmb3IoaD1mW2wuaW5kZXhdLG09bC5pbmRleDttPGwuaW5kZXgrbC5uYTttKyspcT1kW21dLGUuX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKHEsaCksZi5zcGxpY2UobSwwLHEpfX1pZighTi5wcmVmZXJQZXJmb3JtYW5jZSYmIXRoaXMuRmEpZm9yKGI9dGhpcy5ob3N0Ll9fc2hhZHlfZmlyc3RDaGlsZDtiO2I9Yi5fX3NoYWR5X25leHRTaWJsaW5nKWM9XG5MKGIpLGIuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSE9PXRoaXMuaG9zdHx8XCJzbG90XCIhPT1iLmxvY2FsTmFtZSYmYy5hc3NpZ25lZFNsb3R8fHRoaXMuaG9zdC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChiKTt0aGlzLkZhPSEwO3NmPWE7dGYmJnRmKCl9O2Z1bmN0aW9uIHZmKGEsYixjKXt2YXIgZD1EKGIpLGU9ZC51YTtkLnVhPW51bGw7Y3x8KGM9KGE9YS5oW2IuX19zaGFkeV9zbG90fHxcIl9fY2F0Y2hhbGxcIl0pJiZhWzBdKTtjPyhEKGMpLmFzc2lnbmVkTm9kZXMucHVzaChiKSxkLmFzc2lnbmVkU2xvdD1jKTpkLmFzc2lnbmVkU2xvdD12b2lkIDA7ZSE9PWQuYXNzaWduZWRTbG90JiZkLmFzc2lnbmVkU2xvdCYmKEQoZC5hc3NpZ25lZFNsb3QpLnhhPSEwKX1cbmZ1bmN0aW9uIHdmKGEsYixjKXtmb3IodmFyIGQ9MCxlPXZvaWQgMDtkPGMubGVuZ3RoJiYoZT1jW2RdKTtkKyspaWYoXCJzbG90XCI9PWUubG9jYWxOYW1lKXt2YXIgZj1MKGUpLmFzc2lnbmVkTm9kZXM7ZiYmZi5sZW5ndGgmJndmKGEsYixmKX1lbHNlIGIucHVzaChjW2RdKX1mdW5jdGlvbiB4ZihhLGIpe2IuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJzbG90Y2hhbmdlXCIpKTtiPUwoYik7Yi5hc3NpZ25lZFNsb3QmJnhmKGEsYi5hc3NpZ25lZFNsb3QpfWZ1bmN0aW9uIHVlKGEpe2EuaT1hLml8fFtdO2EuZz1hLmd8fFtdO2EuaD1hLmh8fHt9fVxuZnVuY3Rpb24gTGUoYSl7aWYoYS5pJiZhLmkubGVuZ3RoKXtmb3IodmFyIGI9YS5pLGMsZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO1FlKGUpO3ZhciBmPWUuX19zaGFkeV9wYXJlbnROb2RlO1FlKGYpO2Y9TChmKTtmLmlhPShmLmlhfHwwKSsxO2Y9TWUoZSk7YS5oW2ZdPyhjPWN8fHt9LGNbZl09ITAsYS5oW2ZdLnB1c2goZSkpOmEuaFtmXT1bZV07YS5nLnB1c2goZSl9aWYoYylmb3IodmFyIGcgaW4gYylhLmhbZ109TmUoYS5oW2ddKTthLmk9W119fWZ1bmN0aW9uIE1lKGEpe3ZhciBiPWEubmFtZXx8YS5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpfHxcIl9fY2F0Y2hhbGxcIjtyZXR1cm4gYS5RYT1ifVxuZnVuY3Rpb24gTmUoYSl7cmV0dXJuIGEuc29ydChmdW5jdGlvbihiLGMpe2I9dWYoYik7Zm9yKHZhciBkPXVmKGMpLGU9MDtlPGIubGVuZ3RoO2UrKyl7Yz1iW2VdO3ZhciBmPWRbZV07aWYoYyE9PWYpcmV0dXJuIGI9SmMoYy5fX3NoYWR5X3BhcmVudE5vZGUpLGIuaW5kZXhPZihjKS1iLmluZGV4T2YoZil9fSl9XG5mdW5jdGlvbiB4ZShhLGIpe2lmKGEuZyl7TGUoYSk7dmFyIGM9YS5oLGQ7Zm9yKGQgaW4gYylmb3IodmFyIGU9Y1tkXSxmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBnPWVbZl07aWYoR2MoYixnKSl7ZS5zcGxpY2UoZiwxKTt2YXIgaD1hLmcuaW5kZXhPZihnKTswPD1oJiYoYS5nLnNwbGljZShoLDEpLChoPUwoZy5fX3NoYWR5X3BhcmVudE5vZGUpKSYmaC5pYSYmaC5pYS0tKTtmLS07Zz1MKGcpO2lmKGg9Zy5hYSlmb3IodmFyIGs9MDtrPGgubGVuZ3RoO2srKyl7dmFyIGw9aFtrXSxtPWwuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZTttJiZtLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGwpfWcuYWE9W107Zy5hc3NpZ25lZE5vZGVzPVtdO2g9ITB9fXJldHVybiBofX1mdW5jdGlvbiB4YyhhKXtMZShhKTtyZXR1cm4hKCFhLmd8fCFhLmcubGVuZ3RoKX1cbihmdW5jdGlvbihhKXthLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZTtyZihhLFwiX19zaGFkeV9cIik7cmYoYSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYSx7bm9kZVR5cGU6e3ZhbHVlOk5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSxjb25maWd1cmFibGU6ITB9LG5vZGVOYW1lOnt2YWx1ZTpcIiNkb2N1bWVudC1mcmFnbWVudFwiLGNvbmZpZ3VyYWJsZTohMH0sbm9kZVZhbHVlOnt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMH19KTtbXCJsb2NhbE5hbWVcIixcIm5hbWVzcGFjZVVSSVwiLFwicHJlZml4XCJdLmZvckVhY2goZnVuY3Rpb24oYil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7dmFsdWU6dm9pZCAwLGNvbmZpZ3VyYWJsZTohMH0pfSk7W1wib3duZXJEb2N1bWVudFwiLFwiYmFzZVVSSVwiLFwiaXNDb25uZWN0ZWRcIl0uZm9yRWFjaChmdW5jdGlvbihiKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3N0W2JdfSxcbmNvbmZpZ3VyYWJsZTohMH0pfSl9KShSZS5wcm90b3R5cGUpO1xuaWYod2luZG93LmN1c3RvbUVsZW1lbnRzJiZ3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lJiZOLnlhJiYhTi5wcmVmZXJQZXJmb3JtYW5jZSl7dmFyIHlmPW5ldyBNYXA7dGY9ZnVuY3Rpb24oKXt2YXIgYT1bXTt5Zi5mb3JFYWNoKGZ1bmN0aW9uKGQsZSl7YS5wdXNoKFtlLGRdKX0pO3lmLmNsZWFyKCk7Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBjPWFbYl1bMF07YVtiXVsxXT9jLl9fc2hhZHlkb21fY29ubmVjdGVkQ2FsbGJhY2soKTpjLl9fc2hhZHlkb21fZGlzY29ubmVjdGVkQ2FsbGJhY2soKX19O3NmJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicmVhZHlzdGF0ZWNoYW5nZVwiLGZ1bmN0aW9uKCl7c2Y9ITE7dGYoKX0se29uY2U6ITB9KTt2YXIgemY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPTAsZT1cIl9faXNDb25uZWN0ZWRcIitkKys7aWYoYnx8YylhLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1hLnByb3RvdHlwZS5fX3NoYWR5ZG9tX2Nvbm5lY3RlZENhbGxiYWNrPVxuZnVuY3Rpb24oKXtzZj95Zi5zZXQodGhpcywhMCk6dGhpc1tlXXx8KHRoaXNbZV09ITAsYiYmYi5jYWxsKHRoaXMpKX0sYS5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9YS5wcm90b3R5cGUuX19zaGFkeWRvbV9kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3NmP3RoaXMuaXNDb25uZWN0ZWR8fHlmLnNldCh0aGlzLCExKTp0aGlzW2VdJiYodGhpc1tlXT0hMSxjJiZjLmNhbGwodGhpcykpfTtyZXR1cm4gYX0sQWY9d2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSxCZj1mdW5jdGlvbihhLGIpe3ZhciBjPWIucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrLGQ9Yi5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s7QWYuY2FsbCh3aW5kb3cuY3VzdG9tRWxlbWVudHMsYSx6ZihiLGMsZCkpO2IucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrPWM7Yi5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZH07d2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZT1cbkJmO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LnByb3RvdHlwZSxcImRlZmluZVwiLHt2YWx1ZTpCZixjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiB0ZShhKXthPWEuX19zaGFkeV9nZXRSb290Tm9kZSgpO2lmKE8oYSkpcmV0dXJuIGF9O2Z1bmN0aW9uIENmKGEpe3RoaXMubm9kZT1hfXY9Q2YucHJvdG90eXBlO3YuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FkZEV2ZW50TGlzdGVuZXIoYSxiLGMpfTt2LnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKGEsYixjKX07di5hcHBlbmRDaGlsZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXBwZW5kQ2hpbGQoYSl9O3YuaW5zZXJ0QmVmb3JlPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2luc2VydEJlZm9yZShhLGIpfTt2LnJlbW92ZUNoaWxkPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVDaGlsZChhKX07di5yZXBsYWNlQ2hpbGQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcmVwbGFjZUNoaWxkKGEsYil9O1xudi5jbG9uZU5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2Nsb25lTm9kZShhKX07di5nZXRSb290Tm9kZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZ2V0Um9vdE5vZGUoYSl9O3YuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2NvbnRhaW5zKGEpfTt2LmRpc3BhdGNoRXZlbnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2Rpc3BhdGNoRXZlbnQoYSl9O3Yuc2V0QXR0cmlidXRlPWZ1bmN0aW9uKGEsYil7dGhpcy5ub2RlLl9fc2hhZHlfc2V0QXR0cmlidXRlKGEsYil9O3YuZ2V0QXR0cmlidXRlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uYXRpdmVfZ2V0QXR0cmlidXRlKGEpfTt2Lmhhc0F0dHJpYnV0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbmF0aXZlX2hhc0F0dHJpYnV0ZShhKX07di5yZW1vdmVBdHRyaWJ1dGU9ZnVuY3Rpb24oYSl7dGhpcy5ub2RlLl9fc2hhZHlfcmVtb3ZlQXR0cmlidXRlKGEpfTtcbnYuYXR0YWNoU2hhZG93PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hdHRhY2hTaGFkb3coYSl9O3YuZm9jdXM9ZnVuY3Rpb24oKXt0aGlzLm5vZGUuX19zaGFkeV9uYXRpdmVfZm9jdXMoKX07di5ibHVyPWZ1bmN0aW9uKCl7dGhpcy5ub2RlLl9fc2hhZHlfYmx1cigpfTt2LmltcG9ydE5vZGU9ZnVuY3Rpb24oYSxiKXtpZih0aGlzLm5vZGUubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX05PREUpcmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2ltcG9ydE5vZGUoYSxiKX07di5nZXRFbGVtZW50QnlJZD1mdW5jdGlvbihhKXtpZih0aGlzLm5vZGUubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX05PREUpcmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2dldEVsZW1lbnRCeUlkKGEpfTt2LmVsZW1lbnRzRnJvbVBvaW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2VsZW1lbnRzRnJvbVBvaW50KGEsYil9O1xudi5lbGVtZW50RnJvbVBvaW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2VsZW1lbnRGcm9tUG9pbnQoYSxiKX07di5xdWVyeVNlbGVjdG9yPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9xdWVyeVNlbGVjdG9yKGEpfTt2LnF1ZXJ5U2VsZWN0b3JBbGw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcXVlcnlTZWxlY3RvckFsbChhLGIpfTt2LmFzc2lnbmVkTm9kZXM9ZnVuY3Rpb24oYSl7aWYoXCJzbG90XCI9PT10aGlzLm5vZGUubG9jYWxOYW1lKXJldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hc3NpZ25lZE5vZGVzKGEpfTt2LmFwcGVuZD1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FwcGVuZC5hcHBseSh0aGlzLm5vZGUseChiKSl9O1xudi5wcmVwZW5kPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPWFyZ3VtZW50c1tjXTtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcHJlcGVuZC5hcHBseSh0aGlzLm5vZGUseChiKSl9O3YuYWZ0ZXI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGFyZ3VtZW50cy5sZW5ndGg7KytjKWJbY109YXJndW1lbnRzW2NdO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hZnRlci5hcHBseSh0aGlzLm5vZGUseChiKSl9O3YuYmVmb3JlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPWFyZ3VtZW50c1tjXTtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYmVmb3JlLmFwcGx5KHRoaXMubm9kZSx4KGIpKX07di5yZW1vdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcmVtb3ZlKCl9O1xudi5yZXBsYWNlV2l0aD1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3JlcGxhY2VXaXRoLmFwcGx5KHRoaXMubm9kZSx4KGIpKX07XG5lYS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhDZi5wcm90b3R5cGUse2FjdGl2ZUVsZW1lbnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKE8odGhpcy5ub2RlKXx8dGhpcy5ub2RlLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9OT0RFKXJldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hY3RpdmVFbGVtZW50fX0sX2FjdGl2ZUVsZW1lbnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZUVsZW1lbnR9fSxob3N0Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihPKHRoaXMubm9kZSkpcmV0dXJuIHRoaXMubm9kZS5ob3N0fX0scGFyZW50Tm9kZTp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3BhcmVudE5vZGV9fSxmaXJzdENoaWxkOntjb25maWd1cmFibGU6ITAsXG5lbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9maXJzdENoaWxkfX0sbGFzdENoaWxkOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbGFzdENoaWxkfX0sbmV4dFNpYmxpbmc6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0U2libGluZ319LHByZXZpb3VzU2libGluZzp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3ByZXZpb3VzU2libGluZ319LGNoaWxkTm9kZXM6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jaGlsZE5vZGVzfX0scGFyZW50RWxlbWVudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsXG5nZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcGFyZW50RWxlbWVudH19LGZpcnN0RWxlbWVudENoaWxkOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZmlyc3RFbGVtZW50Q2hpbGR9fSxsYXN0RWxlbWVudENoaWxkOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbGFzdEVsZW1lbnRDaGlsZH19LG5leHRFbGVtZW50U2libGluZzp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X25leHRFbGVtZW50U2libGluZ319LHByZXZpb3VzRWxlbWVudFNpYmxpbmc6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9wcmV2aW91c0VsZW1lbnRTaWJsaW5nfX0sXG5jaGlsZHJlbjp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2NoaWxkcmVufX0sY2hpbGRFbGVtZW50Q291bnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jaGlsZEVsZW1lbnRDb3VudH19LHNoYWRvd1Jvb3Q6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9zaGFkb3dSb290fX0sYXNzaWduZWRTbG90Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXNzaWduZWRTbG90fX0saXNDb25uZWN0ZWQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9pc0Nvbm5lY3RlZH19LGlubmVySFRNTDp7Y29uZmlndXJhYmxlOiEwLFxuZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MfSxzZXQ6ZnVuY3Rpb24oYSl7dGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MPWF9fSx0ZXh0Q29udGVudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQ6ZnVuY3Rpb24oYSl7dGhpcy5ub2RlLl9fc2hhZHlfdGV4dENvbnRlbnQ9YX19LHNsb3Q6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9zbG90fSxzZXQ6ZnVuY3Rpb24oYSl7dGhpcy5ub2RlLl9fc2hhZHlfc2xvdD1hfX0sY2xhc3NOYW1lOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2xhc3NOYW1lfSxzZXQ6ZnVuY3Rpb24oYSl7dGhpcy5ub2RlLl9fc2hhZHlfY2xhc3NOYW1lPVxuYX19fSk7ZnVuY3Rpb24gRGYoYSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KENmLnByb3RvdHlwZSxhLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlW1wiX19zaGFkeV9cIithXX0sc2V0OmZ1bmN0aW9uKGIpe3RoaXMubm9kZVtcIl9fc2hhZHlfXCIrYV09Yn0sY29uZmlndXJhYmxlOiEwfSl9WGQuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gRGYoYSl9KTtZZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBEZihhKX0pO3ZhciBFZj1uZXcgV2Vha01hcDtmdW5jdGlvbiBGZihhKXtpZihPKGEpfHxhIGluc3RhbmNlb2YgQ2YpcmV0dXJuIGE7dmFyIGI9RWYuZ2V0KGEpO2J8fChiPW5ldyBDZihhKSxFZi5zZXQoYSxiKSk7cmV0dXJuIGJ9O2lmKE4ueWEpe3ZhciBHZj1OLkg/ZnVuY3Rpb24oYSl7cmV0dXJuIGF9OmZ1bmN0aW9uKGEpe3dkKGEpO3ZkKGEpO3JldHVybiBhfSxTaGFkeURPTT17aW5Vc2U6Ti55YSxwYXRjaDpHZixpc1NoYWR5Um9vdDpPLGVucXVldWU6UmMsZmx1c2g6U2MsZmx1c2hJbml0aWFsOmZ1bmN0aW9uKGEpeyFhLkZhJiZhLlkmJkFlKGEpfSxzZXR0aW5nczpOLGZpbHRlck11dGF0aW9uczpYYyxvYnNlcnZlQ2hpbGRyZW46VmMsdW5vYnNlcnZlQ2hpbGRyZW46V2MsZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzOk4uZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzLHByZWZlclBlcmZvcm1hbmNlOk4ucHJlZmVyUGVyZm9ybWFuY2UsaGFuZGxlc0R5bmFtaWNTY29waW5nOiEwLHdyYXA6Ti5KP0ZmOkdmLHdyYXBJZk5lZWRlZDohMD09PU4uSj9GZjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sV3JhcHBlcjpDZixjb21wb3NlZFBhdGg6RmQsbm9QYXRjaDpOLkoscGF0Y2hPbkRlbWFuZDpOLkFhLG5hdGl2ZU1ldGhvZHM6ZmQsXG5uYXRpdmVUcmVlOmdkLHBhdGNoRWxlbWVudFByb3RvOmxmfTt3aW5kb3cuU2hhZHlET009U2hhZHlET007cGQoKTtrZihcIl9fc2hhZHlfXCIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkb2N1bWVudCxcIl9hY3RpdmVFbGVtZW50XCIsYmYuYWN0aXZlRWxlbWVudCk7UChXaW5kb3cucHJvdG90eXBlLGVmLFwiX19zaGFkeV9cIik7Ti5KP04uQWEmJlAoRWxlbWVudC5wcm90b3R5cGUsVGUpOihrZigpLFdkKCkpO1JkKCk7d2luZG93LkV2ZW50PVRkO3dpbmRvdy5DdXN0b21FdmVudD1VZDt3aW5kb3cuTW91c2VFdmVudD1WZDt3aW5kb3cuU2hhZG93Um9vdD1SZX07dmFyIEhmPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudCxJZj13aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnROUyxKZj13aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGUsS2Y9d2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5wcmVwZW5kLExmPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuYXBwZW5kLE1mPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5wcmVwZW5kLE5mPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5hcHBlbmQsT2Y9d2luZG93Lk5vZGUucHJvdG90eXBlLmNsb25lTm9kZSxQZj13aW5kb3cuTm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsUWY9d2luZG93Lk5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxSZj13aW5kb3cuTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsU2Y9d2luZG93Lk5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZCxUZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5Ob2RlLnByb3RvdHlwZSxcblwidGV4dENvbnRlbnRcIiksVWY9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdyxWZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5FbGVtZW50LnByb3RvdHlwZSxcImlubmVySFRNTFwiKSxXZj13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlLFhmPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGUsWWY9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZSxaZj13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTlMsJGY9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TLGFnPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGVOUyxiZz13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50LGNnPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5pbnNlcnRBZGphY2VudEhUTUwsZGc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnByZXBlbmQsXG5lZz13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuYXBwZW5kLGZnPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5iZWZvcmUsZ2c9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFmdGVyLGhnPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5yZXBsYWNlV2l0aCxpZz13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlLGpnPXdpbmRvdy5IVE1MRWxlbWVudCxrZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUsXCJpbm5lckhUTUxcIiksbGc9d2luZG93LkhUTUxFbGVtZW50LnByb3RvdHlwZS5pbnNlcnRBZGphY2VudEVsZW1lbnQsbWc9d2luZG93LkhUTUxFbGVtZW50LnByb3RvdHlwZS5pbnNlcnRBZGphY2VudEhUTUw7dmFyIG5nPW5ldyBTZXQ7XCJhbm5vdGF0aW9uLXhtbCBjb2xvci1wcm9maWxlIGZvbnQtZmFjZSBmb250LWZhY2Utc3JjIGZvbnQtZmFjZS11cmkgZm9udC1mYWNlLWZvcm1hdCBmb250LWZhY2UtbmFtZSBtaXNzaW5nLWdseXBoXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIG5nLmFkZChhKX0pO2Z1bmN0aW9uIG9nKGEpe3ZhciBiPW5nLmhhcyhhKTthPS9eW2Etel1bLjAtOV9hLXpdKi1bLS4wLTlfYS16XSokLy50ZXN0KGEpO3JldHVybiFiJiZhfXZhciBwZz1kb2N1bWVudC5jb250YWlucz9kb2N1bWVudC5jb250YWlucy5iaW5kKGRvY3VtZW50KTpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnMuYmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO1xuZnVuY3Rpb24gVChhKXt2YXIgYj1hLmlzQ29ubmVjdGVkO2lmKHZvaWQgMCE9PWIpcmV0dXJuIGI7aWYocGcoYSkpcmV0dXJuITA7Zm9yKDthJiYhKGEuX19DRV9pc0ltcG9ydERvY3VtZW50fHxhIGluc3RhbmNlb2YgRG9jdW1lbnQpOylhPWEucGFyZW50Tm9kZXx8KHdpbmRvdy5TaGFkb3dSb290JiZhIGluc3RhbmNlb2YgU2hhZG93Um9vdD9hLmhvc3Q6dm9pZCAwKTtyZXR1cm4hKCFhfHwhKGEuX19DRV9pc0ltcG9ydERvY3VtZW50fHxhIGluc3RhbmNlb2YgRG9jdW1lbnQpKX1mdW5jdGlvbiBxZyhhKXt2YXIgYj1hLmNoaWxkcmVuO2lmKGIpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGIpO2I9W107Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYi5wdXNoKGEpO3JldHVybiBifVxuZnVuY3Rpb24gcmcoYSxiKXtmb3IoO2ImJmIhPT1hJiYhYi5uZXh0U2libGluZzspYj1iLnBhcmVudE5vZGU7cmV0dXJuIGImJmIhPT1hP2IubmV4dFNpYmxpbmc6bnVsbH1cbmZ1bmN0aW9uIHNnKGEsYixjKXtmb3IodmFyIGQ9YTtkOyl7aWYoZC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXt2YXIgZT1kO2IoZSk7dmFyIGY9ZS5sb2NhbE5hbWU7aWYoXCJsaW5rXCI9PT1mJiZcImltcG9ydFwiPT09ZS5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpe2Q9ZS5pbXBvcnQ7dm9pZCAwPT09YyYmKGM9bmV3IFNldCk7aWYoZCBpbnN0YW5jZW9mIE5vZGUmJiFjLmhhcyhkKSlmb3IoYy5hZGQoZCksZD1kLmZpcnN0Q2hpbGQ7ZDtkPWQubmV4dFNpYmxpbmcpc2coZCxiLGMpO2Q9cmcoYSxlKTtjb250aW51ZX1lbHNlIGlmKFwidGVtcGxhdGVcIj09PWYpe2Q9cmcoYSxlKTtjb250aW51ZX1pZihlPWUuX19DRV9zaGFkb3dSb290KWZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylzZyhlLGIsYyl9ZD1kLmZpcnN0Q2hpbGQ/ZC5maXJzdENoaWxkOnJnKGEsZCl9fTtmdW5jdGlvbiB0Zygpe3ZhciBhPSEobnVsbD09PXVnfHx2b2lkIDA9PT11Z3x8IXVnLm5vRG9jdW1lbnRDb25zdHJ1Y3Rpb25PYnNlcnZlciksYj0hKG51bGw9PT11Z3x8dm9pZCAwPT09dWd8fCF1Zy5zaGFkeURvbUZhc3RXYWxrKTt0aGlzLmNhPVtdO3RoaXMuZz1bXTt0aGlzLlc9ITE7dGhpcy5zaGFkeURvbUZhc3RXYWxrPWI7dGhpcy5uYj0hYX1mdW5jdGlvbiB2ZyhhLGIsYyxkKXt2YXIgZT13aW5kb3cuU2hhZHlET007aWYoYS5zaGFkeURvbUZhc3RXYWxrJiZlJiZlLmluVXNlKXtpZihiLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmMoYiksYi5xdWVyeVNlbGVjdG9yQWxsKWZvcihhPWUubmF0aXZlTWV0aG9kcy5xdWVyeVNlbGVjdG9yQWxsLmNhbGwoYixcIipcIiksYj0wO2I8YS5sZW5ndGg7YisrKWMoYVtiXSl9ZWxzZSBzZyhiLGMsZCl9ZnVuY3Rpb24gd2coYSxiKXthLlc9ITA7YS5jYS5wdXNoKGIpfVxuZnVuY3Rpb24geGcoYSxiKXthLlc9ITA7YS5nLnB1c2goYil9ZnVuY3Rpb24geWcoYSxiKXthLlcmJnZnKGEsYixmdW5jdGlvbihjKXtyZXR1cm4gemcoYSxjKX0pfWZ1bmN0aW9uIHpnKGEsYil7aWYoYS5XJiYhYi5fX0NFX3BhdGNoZWQpe2IuX19DRV9wYXRjaGVkPSEwO2Zvcih2YXIgYz0wO2M8YS5jYS5sZW5ndGg7YysrKWEuY2FbY10oYik7Zm9yKGM9MDtjPGEuZy5sZW5ndGg7YysrKWEuZ1tjXShiKX19ZnVuY3Rpb24gQWcoYSxiKXt2YXIgYz1bXTt2ZyhhLGIsZnVuY3Rpb24oZSl7cmV0dXJuIGMucHVzaChlKX0pO2ZvcihiPTA7YjxjLmxlbmd0aDtiKyspe3ZhciBkPWNbYl07MT09PWQuX19DRV9zdGF0ZT9hLmNvbm5lY3RlZENhbGxiYWNrKGQpOkJnKGEsZCl9fVxuZnVuY3Rpb24gQ2coYSxiKXt2YXIgYz1bXTt2ZyhhLGIsZnVuY3Rpb24oZSl7cmV0dXJuIGMucHVzaChlKX0pO2ZvcihiPTA7YjxjLmxlbmd0aDtiKyspe3ZhciBkPWNbYl07MT09PWQuX19DRV9zdGF0ZSYmYS5kaXNjb25uZWN0ZWRDYWxsYmFjayhkKX19XG5mdW5jdGlvbiBEZyhhLGIsYyl7Yz12b2lkIDA9PT1jP3t9OmM7dmFyIGQ9Yy5vYixlPWMudXBncmFkZXx8ZnVuY3Rpb24oZyl7cmV0dXJuIEJnKGEsZyl9LGY9W107dmcoYSxiLGZ1bmN0aW9uKGcpe2EuVyYmemcoYSxnKTtpZihcImxpbmtcIj09PWcubG9jYWxOYW1lJiZcImltcG9ydFwiPT09Zy5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpe3ZhciBoPWcuaW1wb3J0O2ggaW5zdGFuY2VvZiBOb2RlJiYoaC5fX0NFX2lzSW1wb3J0RG9jdW1lbnQ9ITAsaC5fX0NFX3JlZ2lzdHJ5PWRvY3VtZW50Ll9fQ0VfcmVnaXN0cnkpO2gmJlwiY29tcGxldGVcIj09PWgucmVhZHlTdGF0ZT9oLl9fQ0VfZG9jdW1lbnRMb2FkSGFuZGxlZD0hMDpnLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsZnVuY3Rpb24oKXt2YXIgaz1nLmltcG9ydDtpZighay5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQpe2suX19DRV9kb2N1bWVudExvYWRIYW5kbGVkPSEwO3ZhciBsPW5ldyBTZXQ7ZCYmKGQuZm9yRWFjaChmdW5jdGlvbihtKXtyZXR1cm4gbC5hZGQobSl9KSxcbmwuZGVsZXRlKGspKTtEZyhhLGsse29iOmwsdXBncmFkZTplfSl9fSl9ZWxzZSBmLnB1c2goZyl9LGQpO2ZvcihiPTA7YjxmLmxlbmd0aDtiKyspZShmW2JdKX1cbmZ1bmN0aW9uIEJnKGEsYil7dHJ5e3ZhciBjPWIub3duZXJEb2N1bWVudCxkPWMuX19DRV9yZWdpc3RyeTt2YXIgZT1kJiYoYy5kZWZhdWx0Vmlld3x8Yy5fX0NFX2lzSW1wb3J0RG9jdW1lbnQpP0VnKGQsYi5sb2NhbE5hbWUpOnZvaWQgMDtpZihlJiZ2b2lkIDA9PT1iLl9fQ0Vfc3RhdGUpe2UuY29uc3RydWN0aW9uU3RhY2sucHVzaChiKTt0cnl7dHJ5e2lmKG5ldyBlLmNvbnN0cnVjdG9yRnVuY3Rpb24hPT1iKXRocm93IEVycm9yKFwiVGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIGRpZCBub3QgcHJvZHVjZSB0aGUgZWxlbWVudCBiZWluZyB1cGdyYWRlZC5cIik7fWZpbmFsbHl7ZS5jb25zdHJ1Y3Rpb25TdGFjay5wb3AoKX19Y2F0Y2goayl7dGhyb3cgYi5fX0NFX3N0YXRlPTIsazt9Yi5fX0NFX3N0YXRlPTE7Yi5fX0NFX2RlZmluaXRpb249ZTtpZihlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayYmYi5oYXNBdHRyaWJ1dGVzKCkpe3ZhciBmPWUub2JzZXJ2ZWRBdHRyaWJ1dGVzO1xuZm9yKGU9MDtlPGYubGVuZ3RoO2UrKyl7dmFyIGc9ZltlXSxoPWIuZ2V0QXR0cmlidXRlKGcpO251bGwhPT1oJiZhLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhiLGcsbnVsbCxoLG51bGwpfX1UKGIpJiZhLmNvbm5lY3RlZENhbGxiYWNrKGIpfX1jYXRjaChrKXtGZyhrKX19dGcucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKGEpe3ZhciBiPWEuX19DRV9kZWZpbml0aW9uO2lmKGIuY29ubmVjdGVkQ2FsbGJhY2spdHJ5e2IuY29ubmVjdGVkQ2FsbGJhY2suY2FsbChhKX1jYXRjaChjKXtGZyhjKX19O3RnLnByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1hLl9fQ0VfZGVmaW5pdGlvbjtpZihiLmRpc2Nvbm5lY3RlZENhbGxiYWNrKXRyeXtiLmRpc2Nvbm5lY3RlZENhbGxiYWNrLmNhbGwoYSl9Y2F0Y2goYyl7RmcoYyl9fTtcbnRnLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1hLl9fQ0VfZGVmaW5pdGlvbjtpZihmLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayYmLTE8Zi5vYnNlcnZlZEF0dHJpYnV0ZXMuaW5kZXhPZihiKSl0cnl7Zi5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2suY2FsbChhLGIsYyxkLGUpfWNhdGNoKGcpe0ZnKGcpfX07XG5mdW5jdGlvbiBHZyhhLGIsYyxkKXt2YXIgZT1iLl9fQ0VfcmVnaXN0cnk7aWYoZSYmKG51bGw9PT1kfHxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWQpJiYoZT1FZyhlLGMpKSl0cnl7dmFyIGY9bmV3IGUuY29uc3RydWN0b3JGdW5jdGlvbjtpZih2b2lkIDA9PT1mLl9fQ0Vfc3RhdGV8fHZvaWQgMD09PWYuX19DRV9kZWZpbml0aW9uKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnXCIrYytcIic6IFRoZSByZXR1cm5lZCB2YWx1ZSB3YXMgbm90IGNvbnN0cnVjdGVkIHdpdGggdGhlIEhUTUxFbGVtZW50IGNvbnN0cnVjdG9yLlwiKTtpZihcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiE9PWYubmFtZXNwYWNlVVJJKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnXCIrYytcIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50J3MgbmFtZXNwYWNlIG11c3QgYmUgdGhlIEhUTUwgbmFtZXNwYWNlLlwiKTtpZihmLmhhc0F0dHJpYnV0ZXMoKSl0aHJvdyBFcnJvcihcIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ1wiK1xuYytcIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW55IGF0dHJpYnV0ZXMuXCIpO2lmKG51bGwhPT1mLmZpcnN0Q2hpbGQpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0ICdcIitjK1wiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhbnkgY2hpbGRyZW4uXCIpO2lmKG51bGwhPT1mLnBhcmVudE5vZGUpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0ICdcIitjK1wiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhIHBhcmVudCBub2RlLlwiKTtpZihmLm93bmVyRG9jdW1lbnQhPT1iKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnXCIrYytcIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50J3Mgb3duZXIgZG9jdW1lbnQgaXMgaW5jb3JyZWN0LlwiKTtpZihmLmxvY2FsTmFtZSE9PWMpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0ICdcIitjK1wiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQncyBsb2NhbCBuYW1lIGlzIGluY29ycmVjdC5cIik7XG5yZXR1cm4gZn1jYXRjaChnKXtyZXR1cm4gRmcoZyksYj1udWxsPT09ZD9IZi5jYWxsKGIsYyk6SWYuY2FsbChiLGQsYyksT2JqZWN0LnNldFByb3RvdHlwZU9mKGIsSFRNTFVua25vd25FbGVtZW50LnByb3RvdHlwZSksYi5fX0NFX3N0YXRlPTIsYi5fX0NFX2RlZmluaXRpb249dm9pZCAwLHpnKGEsYiksYn1iPW51bGw9PT1kP0hmLmNhbGwoYixjKTpJZi5jYWxsKGIsZCxjKTt6ZyhhLGIpO3JldHVybiBifVxuZnVuY3Rpb24gRmcoYSl7dmFyIGI9YS5tZXNzYWdlLGM9YS5zb3VyY2VVUkx8fGEuZmlsZU5hbWV8fFwiXCIsZD1hLmxpbmV8fGEubGluZU51bWJlcnx8MCxlPWEuY29sdW1ufHxhLmNvbHVtbk51bWJlcnx8MCxmPXZvaWQgMDt2b2lkIDA9PT1FcnJvckV2ZW50LnByb3RvdHlwZS5pbml0RXJyb3JFdmVudD9mPW5ldyBFcnJvckV2ZW50KFwiZXJyb3JcIix7Y2FuY2VsYWJsZTohMCxtZXNzYWdlOmIsZmlsZW5hbWU6YyxsaW5lbm86ZCxjb2xubzplLGVycm9yOmF9KTooZj1kb2N1bWVudC5jcmVhdGVFdmVudChcIkVycm9yRXZlbnRcIiksZi5pbml0RXJyb3JFdmVudChcImVycm9yXCIsITEsITAsYixjLGQpLGYucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImRlZmF1bHRQcmV2ZW50ZWRcIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0pfSk7dm9pZCAwPT09Zi5lcnJvciYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGYsXCJlcnJvclwiLFxue2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO3dpbmRvdy5kaXNwYXRjaEV2ZW50KGYpO2YuZGVmYXVsdFByZXZlbnRlZHx8Y29uc29sZS5lcnJvcihhKX07ZnVuY3Rpb24gSGcoKXt2YXIgYT10aGlzO3RoaXMuST12b2lkIDA7dGhpcy5IYT1uZXcgUHJvbWlzZShmdW5jdGlvbihiKXthLmc9Yn0pfUhnLnByb3RvdHlwZS5yZXNvbHZlPWZ1bmN0aW9uKGEpe2lmKHRoaXMuSSl0aHJvdyBFcnJvcihcIkFscmVhZHkgcmVzb2x2ZWQuXCIpO3RoaXMuST1hO3RoaXMuZyhhKX07ZnVuY3Rpb24gSWcoYSl7dmFyIGI9ZG9jdW1lbnQ7dGhpcy5YPXZvaWQgMDt0aGlzLlM9YTt0aGlzLmc9YjtEZyh0aGlzLlMsdGhpcy5nKTtcImxvYWRpbmdcIj09PXRoaXMuZy5yZWFkeVN0YXRlJiYodGhpcy5YPW5ldyBNdXRhdGlvbk9ic2VydmVyKHRoaXMuaC5iaW5kKHRoaXMpKSx0aGlzLlgub2JzZXJ2ZSh0aGlzLmcse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSkpfWZ1bmN0aW9uIEpnKGEpe2EuWCYmYS5YLmRpc2Nvbm5lY3QoKX1JZy5wcm90b3R5cGUuaD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmcucmVhZHlTdGF0ZTtcImludGVyYWN0aXZlXCIhPT1iJiZcImNvbXBsZXRlXCIhPT1ifHxKZyh0aGlzKTtmb3IoYj0wO2I8YS5sZW5ndGg7YisrKWZvcih2YXIgYz1hW2JdLmFkZGVkTm9kZXMsZD0wO2Q8Yy5sZW5ndGg7ZCsrKURnKHRoaXMuUyxjW2RdKX07ZnVuY3Rpb24gVShhKXt0aGlzLmthPW5ldyBNYXA7dGhpcy5sYT1uZXcgTWFwO3RoaXMuQ2E9bmV3IE1hcDt0aGlzLnRhPSExO3RoaXMud2E9bmV3IE1hcDt0aGlzLmphPWZ1bmN0aW9uKGIpe3JldHVybiBiKCl9O3RoaXMuVj0hMTt0aGlzLm1hPVtdO3RoaXMuUz1hO3RoaXMuRGE9YS5uYj9uZXcgSWcoYSk6dm9pZCAwfXY9VS5wcm90b3R5cGU7di5lYj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7aWYoIShiIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBnZXR0ZXJzIG11c3QgYmUgZnVuY3Rpb25zLlwiKTtLZyh0aGlzLGEpO3RoaXMua2Euc2V0KGEsYik7dGhpcy5tYS5wdXNoKGEpO3RoaXMuVnx8KHRoaXMuVj0hMCx0aGlzLmphKGZ1bmN0aW9uKCl7cmV0dXJuIExnKGMpfSkpfTtcbnYuZGVmaW5lPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcztpZighKGIgaW5zdGFuY2VvZiBGdW5jdGlvbikpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9ycyBtdXN0IGJlIGZ1bmN0aW9ucy5cIik7S2codGhpcyxhKTtNZyh0aGlzLGEsYik7dGhpcy5tYS5wdXNoKGEpO3RoaXMuVnx8KHRoaXMuVj0hMCx0aGlzLmphKGZ1bmN0aW9uKCl7cmV0dXJuIExnKGMpfSkpfTtmdW5jdGlvbiBLZyhhLGIpe2lmKCFvZyhiKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoXCJUaGUgZWxlbWVudCBuYW1lICdcIitiK1wiJyBpcyBub3QgdmFsaWQuXCIpO2lmKEVnKGEsYikpdGhyb3cgRXJyb3IoXCJBIGN1c3RvbSBlbGVtZW50IHdpdGggbmFtZSAnXCIrKGIrXCInIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZC5cIikpO2lmKGEudGEpdGhyb3cgRXJyb3IoXCJBIGN1c3RvbSBlbGVtZW50IGlzIGFscmVhZHkgYmVpbmcgZGVmaW5lZC5cIik7fVxuZnVuY3Rpb24gTWcoYSxiLGMpe2EudGE9ITA7dmFyIGQ7dHJ5e3ZhciBlPWMucHJvdG90eXBlO2lmKCEoZSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlRoZSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvcidzIHByb3RvdHlwZSBpcyBub3QgYW4gb2JqZWN0LlwiKTt2YXIgZj1mdW5jdGlvbihtKXt2YXIgcT1lW21dO2lmKHZvaWQgMCE9PXEmJiEocSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSl0aHJvdyBFcnJvcihcIlRoZSAnXCIrbStcIicgY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uLlwiKTtyZXR1cm4gcX07dmFyIGc9ZihcImNvbm5lY3RlZENhbGxiYWNrXCIpO3ZhciBoPWYoXCJkaXNjb25uZWN0ZWRDYWxsYmFja1wiKTt2YXIgaz1mKFwiYWRvcHRlZENhbGxiYWNrXCIpO3ZhciBsPShkPWYoXCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tcIikpJiZjLm9ic2VydmVkQXR0cmlidXRlc3x8W119Y2F0Y2gobSl7dGhyb3cgbTt9ZmluYWxseXthLnRhPSExfWM9e2xvY2FsTmFtZTpiLFxuY29uc3RydWN0b3JGdW5jdGlvbjpjLGNvbm5lY3RlZENhbGxiYWNrOmcsZGlzY29ubmVjdGVkQ2FsbGJhY2s6aCxhZG9wdGVkQ2FsbGJhY2s6ayxhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s6ZCxvYnNlcnZlZEF0dHJpYnV0ZXM6bCxjb25zdHJ1Y3Rpb25TdGFjazpbXX07YS5sYS5zZXQoYixjKTthLkNhLnNldChjLmNvbnN0cnVjdG9yRnVuY3Rpb24sYyk7cmV0dXJuIGN9di51cGdyYWRlPWZ1bmN0aW9uKGEpe0RnKHRoaXMuUyxhKX07XG5mdW5jdGlvbiBMZyhhKXtpZighMSE9PWEuVil7YS5WPSExO2Zvcih2YXIgYj1bXSxjPWEubWEsZD1uZXcgTWFwLGU9MDtlPGMubGVuZ3RoO2UrKylkLnNldChjW2VdLFtdKTtEZyhhLlMsZG9jdW1lbnQse3VwZ3JhZGU6ZnVuY3Rpb24oayl7aWYodm9pZCAwPT09ay5fX0NFX3N0YXRlKXt2YXIgbD1rLmxvY2FsTmFtZSxtPWQuZ2V0KGwpO20/bS5wdXNoKGspOmEubGEuaGFzKGwpJiZiLnB1c2goayl9fX0pO2ZvcihlPTA7ZTxiLmxlbmd0aDtlKyspQmcoYS5TLGJbZV0pO2ZvcihlPTA7ZTxjLmxlbmd0aDtlKyspe2Zvcih2YXIgZj1jW2VdLGc9ZC5nZXQoZiksaD0wO2g8Zy5sZW5ndGg7aCsrKUJnKGEuUyxnW2hdKTsoZj1hLndhLmdldChmKSkmJmYucmVzb2x2ZSh2b2lkIDApfWMubGVuZ3RoPTB9fXYuZ2V0PWZ1bmN0aW9uKGEpe2lmKGE9RWcodGhpcyxhKSlyZXR1cm4gYS5jb25zdHJ1Y3RvckZ1bmN0aW9ufTtcbnYud2hlbkRlZmluZWQ9ZnVuY3Rpb24oYSl7aWYoIW9nKGEpKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgU3ludGF4RXJyb3IoXCInXCIrYStcIicgaXMgbm90IGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZS5cIikpO3ZhciBiPXRoaXMud2EuZ2V0KGEpO2lmKGIpcmV0dXJuIGIuSGE7Yj1uZXcgSGc7dGhpcy53YS5zZXQoYSxiKTt2YXIgYz10aGlzLmxhLmhhcyhhKXx8dGhpcy5rYS5oYXMoYSk7YT0tMT09PXRoaXMubWEuaW5kZXhPZihhKTtjJiZhJiZiLnJlc29sdmUodm9pZCAwKTtyZXR1cm4gYi5IYX07di5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrPWZ1bmN0aW9uKGEpe3RoaXMuRGEmJkpnKHRoaXMuRGEpO3ZhciBiPXRoaXMuamE7dGhpcy5qYT1mdW5jdGlvbihjKXtyZXR1cm4gYShmdW5jdGlvbigpe3JldHVybiBiKGMpfSl9fTtcbmZ1bmN0aW9uIEVnKGEsYil7dmFyIGM9YS5sYS5nZXQoYik7aWYoYylyZXR1cm4gYztpZihjPWEua2EuZ2V0KGIpKXthLmthLmRlbGV0ZShiKTt0cnl7cmV0dXJuIE1nKGEsYixjKCkpfWNhdGNoKGQpe0ZnKGQpfX19d2luZG93LkN1c3RvbUVsZW1lbnRSZWdpc3RyeT1VO1UucHJvdG90eXBlLmRlZmluZT1VLnByb3RvdHlwZS5kZWZpbmU7VS5wcm90b3R5cGUudXBncmFkZT1VLnByb3RvdHlwZS51cGdyYWRlO1UucHJvdG90eXBlLmdldD1VLnByb3RvdHlwZS5nZXQ7VS5wcm90b3R5cGUud2hlbkRlZmluZWQ9VS5wcm90b3R5cGUud2hlbkRlZmluZWQ7VS5wcm90b3R5cGUucG9seWZpbGxEZWZpbmVMYXp5PVUucHJvdG90eXBlLmViO1UucHJvdG90eXBlLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2s9VS5wcm90b3R5cGUucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjaztmdW5jdGlvbiBOZyhhLGIsYyl7ZnVuY3Rpb24gZChlKXtyZXR1cm4gZnVuY3Rpb24oZil7Zm9yKHZhciBnPVtdLGg9MDtoPGFyZ3VtZW50cy5sZW5ndGg7KytoKWdbaF09YXJndW1lbnRzW2hdO2g9W107Zm9yKHZhciBrPVtdLGw9MDtsPGcubGVuZ3RoO2wrKyl7dmFyIG09Z1tsXTttIGluc3RhbmNlb2YgRWxlbWVudCYmVChtKSYmay5wdXNoKG0pO2lmKG0gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KWZvcihtPW0uZmlyc3RDaGlsZDttO209bS5uZXh0U2libGluZyloLnB1c2gobSk7ZWxzZSBoLnB1c2gobSl9ZS5hcHBseSh0aGlzLGcpO2ZvcihnPTA7ZzxrLmxlbmd0aDtnKyspQ2coYSxrW2ddKTtpZihUKHRoaXMpKWZvcihnPTA7ZzxoLmxlbmd0aDtnKyspaz1oW2ddLGsgaW5zdGFuY2VvZiBFbGVtZW50JiZBZyhhLGspfX12b2lkIDAhPT1jLnByZXBlbmQmJihiLnByZXBlbmQ9ZChjLnByZXBlbmQpKTt2b2lkIDAhPT1jLmFwcGVuZCYmKGIuYXBwZW5kPWQoYy5hcHBlbmQpKX1cbjtmdW5jdGlvbiBPZyhhKXtEb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihiKXtyZXR1cm4gR2coYSx0aGlzLGIsbnVsbCl9O0RvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlPWZ1bmN0aW9uKGIsYyl7Yj1KZi5jYWxsKHRoaXMsYiwhIWMpO3RoaXMuX19DRV9yZWdpc3RyeT9EZyhhLGIpOnlnKGEsYik7cmV0dXJuIGJ9O0RvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50TlM9ZnVuY3Rpb24oYixjKXtyZXR1cm4gR2coYSx0aGlzLGMsYil9O05nKGEsRG9jdW1lbnQucHJvdG90eXBlLHtwcmVwZW5kOktmLGFwcGVuZDpMZn0pfTtmdW5jdGlvbiBQZyhhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIGY9W10sZz0wO2c8YXJndW1lbnRzLmxlbmd0aDsrK2cpZltnXT1hcmd1bWVudHNbZ107Zz1bXTtmb3IodmFyIGg9W10saz0wO2s8Zi5sZW5ndGg7aysrKXt2YXIgbD1mW2tdO2wgaW5zdGFuY2VvZiBFbGVtZW50JiZUKGwpJiZoLnB1c2gobCk7aWYobCBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpZm9yKGw9bC5maXJzdENoaWxkO2w7bD1sLm5leHRTaWJsaW5nKWcucHVzaChsKTtlbHNlIGcucHVzaChsKX1kLmFwcGx5KHRoaXMsZik7Zm9yKGY9MDtmPGgubGVuZ3RoO2YrKylDZyhhLGhbZl0pO2lmKFQodGhpcykpZm9yKGY9MDtmPGcubGVuZ3RoO2YrKyloPWdbZl0saCBpbnN0YW5jZW9mIEVsZW1lbnQmJkFnKGEsaCl9fXZhciBjPUVsZW1lbnQucHJvdG90eXBlO3ZvaWQgMCE9PWZnJiYoYy5iZWZvcmU9YihmZykpO3ZvaWQgMCE9PWdnJiYoYy5hZnRlcj1iKGdnKSk7dm9pZCAwIT09XG5oZyYmKGMucmVwbGFjZVdpdGg9ZnVuY3Rpb24oZCl7Zm9yKHZhciBlPVtdLGY9MDtmPGFyZ3VtZW50cy5sZW5ndGg7KytmKWVbZl09YXJndW1lbnRzW2ZdO2Y9W107Zm9yKHZhciBnPVtdLGg9MDtoPGUubGVuZ3RoO2grKyl7dmFyIGs9ZVtoXTtrIGluc3RhbmNlb2YgRWxlbWVudCYmVChrKSYmZy5wdXNoKGspO2lmKGsgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KWZvcihrPWsuZmlyc3RDaGlsZDtrO2s9ay5uZXh0U2libGluZylmLnB1c2goayk7ZWxzZSBmLnB1c2goayl9aD1UKHRoaXMpO2hnLmFwcGx5KHRoaXMsZSk7Zm9yKGU9MDtlPGcubGVuZ3RoO2UrKylDZyhhLGdbZV0pO2lmKGgpZm9yKENnKGEsdGhpcyksZT0wO2U8Zi5sZW5ndGg7ZSsrKWc9ZltlXSxnIGluc3RhbmNlb2YgRWxlbWVudCYmQWcoYSxnKX0pO3ZvaWQgMCE9PWlnJiYoYy5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgZD1UKHRoaXMpO2lnLmNhbGwodGhpcyk7ZCYmQ2coYSx0aGlzKX0pfTtmdW5jdGlvbiBRZyhhKXtmdW5jdGlvbiBiKGUsZil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpbm5lckhUTUxcIix7ZW51bWVyYWJsZTpmLmVudW1lcmFibGUsY29uZmlndXJhYmxlOiEwLGdldDpmLmdldCxzZXQ6ZnVuY3Rpb24oZyl7dmFyIGg9dGhpcyxrPXZvaWQgMDtUKHRoaXMpJiYoaz1bXSx2ZyhhLHRoaXMsZnVuY3Rpb24ocSl7cSE9PWgmJmsucHVzaChxKX0pKTtmLnNldC5jYWxsKHRoaXMsZyk7aWYoaylmb3IodmFyIGw9MDtsPGsubGVuZ3RoO2wrKyl7dmFyIG09a1tsXTsxPT09bS5fX0NFX3N0YXRlJiZhLmRpc2Nvbm5lY3RlZENhbGxiYWNrKG0pfXRoaXMub3duZXJEb2N1bWVudC5fX0NFX3JlZ2lzdHJ5P0RnKGEsdGhpcyk6eWcoYSx0aGlzKTtyZXR1cm4gZ319KX1mdW5jdGlvbiBjKGUsZil7ZS5pbnNlcnRBZGphY2VudEVsZW1lbnQ9ZnVuY3Rpb24oZyxoKXt2YXIgaz1UKGgpO2c9Zi5jYWxsKHRoaXMsZyxoKTtrJiZDZyhhLGgpO1QoZykmJkFnKGEsaCk7cmV0dXJuIGd9fVxuZnVuY3Rpb24gZChlLGYpe2Z1bmN0aW9uIGcoaCxrKXtmb3IodmFyIGw9W107aCE9PWs7aD1oLm5leHRTaWJsaW5nKWwucHVzaChoKTtmb3Ioaz0wO2s8bC5sZW5ndGg7aysrKURnKGEsbFtrXSl9ZS5pbnNlcnRBZGphY2VudEhUTUw9ZnVuY3Rpb24oaCxrKXtoPWgudG9Mb3dlckNhc2UoKTtpZihcImJlZm9yZWJlZ2luXCI9PT1oKXt2YXIgbD10aGlzLnByZXZpb3VzU2libGluZztmLmNhbGwodGhpcyxoLGspO2cobHx8dGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsdGhpcyl9ZWxzZSBpZihcImFmdGVyYmVnaW5cIj09PWgpbD10aGlzLmZpcnN0Q2hpbGQsZi5jYWxsKHRoaXMsaCxrKSxnKHRoaXMuZmlyc3RDaGlsZCxsKTtlbHNlIGlmKFwiYmVmb3JlZW5kXCI9PT1oKWw9dGhpcy5sYXN0Q2hpbGQsZi5jYWxsKHRoaXMsaCxrKSxnKGx8fHRoaXMuZmlyc3RDaGlsZCxudWxsKTtlbHNlIGlmKFwiYWZ0ZXJlbmRcIj09PWgpbD10aGlzLm5leHRTaWJsaW5nLGYuY2FsbCh0aGlzLGgsayksZyh0aGlzLm5leHRTaWJsaW5nLFxubCk7ZWxzZSB0aHJvdyBuZXcgU3ludGF4RXJyb3IoXCJUaGUgdmFsdWUgcHJvdmlkZWQgKFwiK1N0cmluZyhoKStcIikgaXMgbm90IG9uZSBvZiAnYmVmb3JlYmVnaW4nLCAnYWZ0ZXJiZWdpbicsICdiZWZvcmVlbmQnLCBvciAnYWZ0ZXJlbmQnLlwiKTt9fVVmJiYoRWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93PWZ1bmN0aW9uKGUpe2U9VWYuY2FsbCh0aGlzLGUpO2lmKGEuVyYmIWUuX19DRV9wYXRjaGVkKXtlLl9fQ0VfcGF0Y2hlZD0hMDtmb3IodmFyIGY9MDtmPGEuY2EubGVuZ3RoO2YrKylhLmNhW2ZdKGUpfXJldHVybiB0aGlzLl9fQ0Vfc2hhZG93Um9vdD1lfSk7VmYmJlZmLmdldD9iKEVsZW1lbnQucHJvdG90eXBlLFZmKTprZyYma2cuZ2V0P2IoSFRNTEVsZW1lbnQucHJvdG90eXBlLGtnKTp4ZyhhLGZ1bmN0aW9uKGUpe2IoZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9mLmNhbGwodGhpcywhMCkuaW5uZXJIVE1MfSxzZXQ6ZnVuY3Rpb24oZil7dmFyIGc9XG5cInRlbXBsYXRlXCI9PT10aGlzLmxvY2FsTmFtZSxoPWc/dGhpcy5jb250ZW50OnRoaXMsaz1JZi5jYWxsKGRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJLHRoaXMubG9jYWxOYW1lKTtmb3Ioay5pbm5lckhUTUw9ZjswPGguY2hpbGROb2Rlcy5sZW5ndGg7KVJmLmNhbGwoaCxoLmNoaWxkTm9kZXNbMF0pO2ZvcihmPWc/ay5jb250ZW50Oms7MDxmLmNoaWxkTm9kZXMubGVuZ3RoOylQZi5jYWxsKGgsZi5jaGlsZE5vZGVzWzBdKX19KX0pO0VsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZT1mdW5jdGlvbihlLGYpe2lmKDEhPT10aGlzLl9fQ0Vfc3RhdGUpcmV0dXJuIFhmLmNhbGwodGhpcyxlLGYpO3ZhciBnPVdmLmNhbGwodGhpcyxlKTtYZi5jYWxsKHRoaXMsZSxmKTtmPVdmLmNhbGwodGhpcyxlKTthLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0aGlzLGUsZyxmLG51bGwpfTtFbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOUz1mdW5jdGlvbihlLGYsZyl7aWYoMSE9PXRoaXMuX19DRV9zdGF0ZSlyZXR1cm4gJGYuY2FsbCh0aGlzLFxuZSxmLGcpO3ZhciBoPVpmLmNhbGwodGhpcyxlLGYpOyRmLmNhbGwodGhpcyxlLGYsZyk7Zz1aZi5jYWxsKHRoaXMsZSxmKTthLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0aGlzLGYsaCxnLGUpfTtFbGVtZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGU9ZnVuY3Rpb24oZSl7aWYoMSE9PXRoaXMuX19DRV9zdGF0ZSlyZXR1cm4gWWYuY2FsbCh0aGlzLGUpO3ZhciBmPVdmLmNhbGwodGhpcyxlKTtZZi5jYWxsKHRoaXMsZSk7bnVsbCE9PWYmJmEuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHRoaXMsZSxmLG51bGwsbnVsbCl9O0VsZW1lbnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZU5TPWZ1bmN0aW9uKGUsZil7aWYoMSE9PXRoaXMuX19DRV9zdGF0ZSlyZXR1cm4gYWcuY2FsbCh0aGlzLGUsZik7dmFyIGc9WmYuY2FsbCh0aGlzLGUsZik7YWcuY2FsbCh0aGlzLGUsZik7dmFyIGg9WmYuY2FsbCh0aGlzLGUsZik7ZyE9PWgmJmEuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHRoaXMsXG5mLGcsaCxlKX07bGc/YyhIVE1MRWxlbWVudC5wcm90b3R5cGUsbGcpOmJnJiZjKEVsZW1lbnQucHJvdG90eXBlLGJnKTttZz9kKEhUTUxFbGVtZW50LnByb3RvdHlwZSxtZyk6Y2cmJmQoRWxlbWVudC5wcm90b3R5cGUsY2cpO05nKGEsRWxlbWVudC5wcm90b3R5cGUse3ByZXBlbmQ6ZGcsYXBwZW5kOmVnfSk7UGcoYSl9O3ZhciBSZz17fTtmdW5jdGlvbiBTZyhhKXtmdW5jdGlvbiBiKCl7dmFyIGM9dGhpcy5jb25zdHJ1Y3Rvcjt2YXIgZD1kb2N1bWVudC5fX0NFX3JlZ2lzdHJ5LkNhLmdldChjKTtpZighZCl0aHJvdyBFcnJvcihcIkZhaWxlZCB0byBjb25zdHJ1Y3QgYSBjdXN0b20gZWxlbWVudDogVGhlIGNvbnN0cnVjdG9yIHdhcyBub3QgcmVnaXN0ZXJlZCB3aXRoIGBjdXN0b21FbGVtZW50c2AuXCIpO3ZhciBlPWQuY29uc3RydWN0aW9uU3RhY2s7aWYoMD09PWUubGVuZ3RoKXJldHVybiBlPUhmLmNhbGwoZG9jdW1lbnQsZC5sb2NhbE5hbWUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihlLGMucHJvdG90eXBlKSxlLl9fQ0Vfc3RhdGU9MSxlLl9fQ0VfZGVmaW5pdGlvbj1kLHpnKGEsZSksZTt2YXIgZj1lLmxlbmd0aC0xLGc9ZVtmXTtpZihnPT09UmcpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0ICdcIitkLmxvY2FsTmFtZStcIic6IFRoaXMgZWxlbWVudCB3YXMgYWxyZWFkeSBjb25zdHJ1Y3RlZC5cIik7ZVtmXT1cblJnO09iamVjdC5zZXRQcm90b3R5cGVPZihnLGMucHJvdG90eXBlKTt6ZyhhLGcpO3JldHVybiBnfWIucHJvdG90eXBlPWpnLnByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSFRNTEVsZW1lbnQucHJvdG90eXBlLFwiY29uc3RydWN0b3JcIix7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6Yn0pO3dpbmRvdy5IVE1MRWxlbWVudD1ifTtmdW5jdGlvbiBUZyhhKXtmdW5jdGlvbiBiKGMsZCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsXCJ0ZXh0Q29udGVudFwiLHtlbnVtZXJhYmxlOmQuZW51bWVyYWJsZSxjb25maWd1cmFibGU6ITAsZ2V0OmQuZ2V0LHNldDpmdW5jdGlvbihlKXtpZih0aGlzLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREUpZC5zZXQuY2FsbCh0aGlzLGUpO2Vsc2V7dmFyIGY9dm9pZCAwO2lmKHRoaXMuZmlyc3RDaGlsZCl7dmFyIGc9dGhpcy5jaGlsZE5vZGVzLGg9Zy5sZW5ndGg7aWYoMDxoJiZUKHRoaXMpKXtmPUFycmF5KGgpO2Zvcih2YXIgaz0wO2s8aDtrKyspZltrXT1nW2tdfX1kLnNldC5jYWxsKHRoaXMsZSk7aWYoZilmb3IoZT0wO2U8Zi5sZW5ndGg7ZSsrKUNnKGEsZltlXSl9fX0pfU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZT1mdW5jdGlvbihjLGQpe2lmKGMgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZT1xZyhjKTtjPVFmLmNhbGwodGhpcyxjLGQpO2lmKFQodGhpcykpZm9yKGQ9XG4wO2Q8ZS5sZW5ndGg7ZCsrKUFnKGEsZVtkXSk7cmV0dXJuIGN9ZT1jIGluc3RhbmNlb2YgRWxlbWVudCYmVChjKTtkPVFmLmNhbGwodGhpcyxjLGQpO2UmJkNnKGEsYyk7VCh0aGlzKSYmQWcoYSxjKTtyZXR1cm4gZH07Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYyl7aWYoYyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpe3ZhciBkPXFnKGMpO2M9UGYuY2FsbCh0aGlzLGMpO2lmKFQodGhpcykpZm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspQWcoYSxkW2VdKTtyZXR1cm4gY31kPWMgaW5zdGFuY2VvZiBFbGVtZW50JiZUKGMpO2U9UGYuY2FsbCh0aGlzLGMpO2QmJkNnKGEsYyk7VCh0aGlzKSYmQWcoYSxjKTtyZXR1cm4gZX07Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKGMpe2M9T2YuY2FsbCh0aGlzLCEhYyk7dGhpcy5vd25lckRvY3VtZW50Ll9fQ0VfcmVnaXN0cnk/RGcoYSxjKTp5ZyhhLGMpO3JldHVybiBjfTtOb2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZD1cbmZ1bmN0aW9uKGMpe3ZhciBkPWMgaW5zdGFuY2VvZiBFbGVtZW50JiZUKGMpLGU9UmYuY2FsbCh0aGlzLGMpO2QmJkNnKGEsYyk7cmV0dXJuIGV9O05vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbihjLGQpe2lmKGMgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZT1xZyhjKTtjPVNmLmNhbGwodGhpcyxjLGQpO2lmKFQodGhpcykpZm9yKENnKGEsZCksZD0wO2Q8ZS5sZW5ndGg7ZCsrKUFnKGEsZVtkXSk7cmV0dXJuIGN9ZT1jIGluc3RhbmNlb2YgRWxlbWVudCYmVChjKTt2YXIgZj1TZi5jYWxsKHRoaXMsYyxkKSxnPVQodGhpcyk7ZyYmQ2coYSxkKTtlJiZDZyhhLGMpO2cmJkFnKGEsYyk7cmV0dXJuIGZ9O1RmJiZUZi5nZXQ/YihOb2RlLnByb3RvdHlwZSxUZik6d2coYSxmdW5jdGlvbihjKXtiKGMse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2Zvcih2YXIgZD1bXSxlPXRoaXMuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyllLm5vZGVUeXBlIT09XG5Ob2RlLkNPTU1FTlRfTk9ERSYmZC5wdXNoKGUudGV4dENvbnRlbnQpO3JldHVybiBkLmpvaW4oXCJcIil9LHNldDpmdW5jdGlvbihkKXtmb3IoO3RoaXMuZmlyc3RDaGlsZDspUmYuY2FsbCh0aGlzLHRoaXMuZmlyc3RDaGlsZCk7bnVsbCE9ZCYmXCJcIiE9PWQmJlBmLmNhbGwodGhpcyxkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkKSl9fSl9KX07dmFyIHVnPXdpbmRvdy5jdXN0b21FbGVtZW50cztmdW5jdGlvbiBVZygpe3ZhciBhPW5ldyB0ZztTZyhhKTtPZyhhKTtOZyhhLERvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLHtwcmVwZW5kOk1mLGFwcGVuZDpOZn0pO1RnKGEpO1FnKGEpO2E9bmV3IFUoYSk7ZG9jdW1lbnQuX19DRV9yZWdpc3RyeT1hO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csXCJjdXN0b21FbGVtZW50c1wiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTphfSl9dWcmJiF1Zy5mb3JjZVBvbHlmaWxsJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB1Zy5kZWZpbmUmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHVnLmdldHx8VWcoKTt3aW5kb3cuX19DRV9pbnN0YWxsUG9seWZpbGw9VWc7LypcblxuQ29weXJpZ2h0IChjKSAyMDE3IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cblRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHRcbkNvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvXG5zdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuKi9cbmZ1bmN0aW9uIFZnKCl7dGhpcy5lbmQ9dGhpcy5zdGFydD0wO3RoaXMucnVsZXM9dGhpcy5wYXJlbnQ9dGhpcy5wcmV2aW91cz1udWxsO3RoaXMuY3NzVGV4dD10aGlzLnBhcnNlZENzc1RleHQ9XCJcIjt0aGlzLmF0UnVsZT0hMTt0aGlzLnR5cGU9MDt0aGlzLnBhcnNlZFNlbGVjdG9yPXRoaXMuc2VsZWN0b3I9dGhpcy5rZXlmcmFtZXNOYW1lPVwiXCJ9XG5mdW5jdGlvbiBXZyhhKXt2YXIgYj1hPWEucmVwbGFjZShYZyxcIlwiKS5yZXBsYWNlKFlnLFwiXCIpLGM9bmV3IFZnO2Muc3RhcnQ9MDtjLmVuZD1iLmxlbmd0aDtmb3IodmFyIGQ9YyxlPTAsZj1iLmxlbmd0aDtlPGY7ZSsrKWlmKFwie1wiPT09YltlXSl7ZC5ydWxlc3x8KGQucnVsZXM9W10pO3ZhciBnPWQsaD1nLnJ1bGVzW2cucnVsZXMubGVuZ3RoLTFdfHxudWxsO2Q9bmV3IFZnO2Quc3RhcnQ9ZSsxO2QucGFyZW50PWc7ZC5wcmV2aW91cz1oO2cucnVsZXMucHVzaChkKX1lbHNlXCJ9XCI9PT1iW2VdJiYoZC5lbmQ9ZSsxLGQ9ZC5wYXJlbnR8fGMpO3JldHVybiBaZyhjLGEpfVxuZnVuY3Rpb24gWmcoYSxiKXt2YXIgYz1iLnN1YnN0cmluZyhhLnN0YXJ0LGEuZW5kLTEpO2EucGFyc2VkQ3NzVGV4dD1hLmNzc1RleHQ9Yy50cmltKCk7YS5wYXJlbnQmJihjPWIuc3Vic3RyaW5nKGEucHJldmlvdXM/YS5wcmV2aW91cy5lbmQ6YS5wYXJlbnQuc3RhcnQsYS5zdGFydC0xKSxjPSRnKGMpLGM9Yy5yZXBsYWNlKGFoLFwiIFwiKSxjPWMuc3Vic3RyaW5nKGMubGFzdEluZGV4T2YoXCI7XCIpKzEpLGM9YS5wYXJzZWRTZWxlY3Rvcj1hLnNlbGVjdG9yPWMudHJpbSgpLGEuYXRSdWxlPTA9PT1jLmluZGV4T2YoXCJAXCIpLGEuYXRSdWxlPzA9PT1jLmluZGV4T2YoXCJAbWVkaWFcIik/YS50eXBlPWJoOmMubWF0Y2goY2gpJiYoYS50eXBlPWRoLGEua2V5ZnJhbWVzTmFtZT1hLnNlbGVjdG9yLnNwbGl0KGFoKS5wb3AoKSk6YS50eXBlPTA9PT1jLmluZGV4T2YoXCItLVwiKT9laDpmaCk7aWYoYz1hLnJ1bGVzKWZvcih2YXIgZD0wLGU9Yy5sZW5ndGgsZj12b2lkIDA7ZDxlJiYoZj1jW2RdKTtkKyspWmcoZixcbmIpO3JldHVybiBhfWZ1bmN0aW9uICRnKGEpe3JldHVybiBhLnJlcGxhY2UoL1xcXFwoWzAtOWEtZl17MSw2fSlcXHMvZ2ksZnVuY3Rpb24oYixjKXtiPWM7Zm9yKGM9Ni1iLmxlbmd0aDtjLS07KWI9XCIwXCIrYjtyZXR1cm5cIlxcXFxcIitifSl9XG5mdW5jdGlvbiBnaChhLGIsYyl7Yz12b2lkIDA9PT1jP1wiXCI6Yzt2YXIgZD1cIlwiO2lmKGEuY3NzVGV4dHx8YS5ydWxlcyl7dmFyIGU9YS5ydWxlcyxmO2lmKGY9ZSlmPWVbMF0sZj0hKGYmJmYuc2VsZWN0b3ImJjA9PT1mLnNlbGVjdG9yLmluZGV4T2YoXCItLVwiKSk7aWYoZil7Zj0wO2Zvcih2YXIgZz1lLmxlbmd0aCxoPXZvaWQgMDtmPGcmJihoPWVbZl0pO2YrKylkPWdoKGgsYixkKX1lbHNlIGI/Yj1hLmNzc1RleHQ6KGI9YS5jc3NUZXh0LGI9Yi5yZXBsYWNlKGhoLFwiXCIpLnJlcGxhY2UoaWgsXCJcIiksYj1iLnJlcGxhY2UoamgsXCJcIikucmVwbGFjZShraCxcIlwiKSksKGQ9Yi50cmltKCkpJiYoZD1cIiAgXCIrZCtcIlxcblwiKX1kJiYoYS5zZWxlY3RvciYmKGMrPWEuc2VsZWN0b3IrXCIge1xcblwiKSxjKz1kLGEuc2VsZWN0b3ImJihjKz1cIn1cXG5cXG5cIikpO3JldHVybiBjfVxudmFyIGZoPTEsZGg9NyxiaD00LGVoPTFFMyxYZz0vXFwvXFwqW14qXSpcXCorKFteLypdW14qXSpcXCorKSpcXC8vZ2ltLFlnPS9AaW1wb3J0W147XSo7L2dpbSxoaD0vKD86XlteO1xcLVxcc31dKyk/LS1bXjt7fV0qPzpbXnt9O10qPyg/Ols7XFxuXXwkKS9naW0saWg9Lyg/Ol5bXjtcXC1cXHN9XSspPy0tW147e31dKj86W157fTtdKj97W159XSo/fSg/Ols7XFxuXXwkKT8vZ2ltLGpoPS9AYXBwbHlcXHMqXFwoP1teKTtdKlxcKT9cXHMqKD86WztcXG5dfCQpPy9naW0sa2g9L1teOzpdKj86W147XSo/dmFyXFwoW147XSpcXCkoPzpbO1xcbl18JCk/L2dpbSxjaD0vXkBbXlxcc10qa2V5ZnJhbWVzLyxhaD0vXFxzKy9nO3ZhciBWPSEod2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uaW5Vc2UpLGxoO2Z1bmN0aW9uIG1oKGEpe2xoPWEmJmEuc2hpbWNzc3Byb3BlcnRpZXM/ITE6Vnx8IShuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFxcLzYwMXxFZGdlXFwvMTUvKXx8IXdpbmRvdy5DU1N8fCFDU1Muc3VwcG9ydHN8fCFDU1Muc3VwcG9ydHMoXCJib3gtc2hhZG93XCIsXCIwIDAgMCB2YXIoLS1mb28pXCIpKX12YXIgbmg7d2luZG93LlNoYWR5Q1NTJiZ2b2lkIDAhPT13aW5kb3cuU2hhZHlDU1MuY3NzQnVpbGQmJihuaD13aW5kb3cuU2hhZHlDU1MuY3NzQnVpbGQpO3ZhciBvaD0hKCF3aW5kb3cuU2hhZHlDU1N8fCF3aW5kb3cuU2hhZHlDU1MuZGlzYWJsZVJ1bnRpbWUpO1xud2luZG93LlNoYWR5Q1NTJiZ2b2lkIDAhPT13aW5kb3cuU2hhZHlDU1MubmF0aXZlQ3NzP2xoPXdpbmRvdy5TaGFkeUNTUy5uYXRpdmVDc3M6d2luZG93LlNoYWR5Q1NTPyhtaCh3aW5kb3cuU2hhZHlDU1MpLHdpbmRvdy5TaGFkeUNTUz12b2lkIDApOm1oKHdpbmRvdy5XZWJDb21wb25lbnRzJiZ3aW5kb3cuV2ViQ29tcG9uZW50cy5mbGFncyk7dmFyIFg9bGg7dmFyIHBoPS8oPzpefFs7XFxze11cXHMqKSgtLVtcXHctXSo/KVxccyo6XFxzKig/OigoPzonKD86XFxcXCd8LikqPyd8XCIoPzpcXFxcXCJ8LikqP1wifFxcKFteKV0qP1xcKXxbXn07e10pKyl8XFx7KFtefV0qKVxcfSg/Oig/PVs7XFxzfV0pfCQpKS9naSxxaD0vKD86XnxcXFcrKUBhcHBseVxccypcXCg/KFteKTtcXG5dKilcXCk/L2dpLHJoPS8oLS1bXFx3LV0rKVxccyooWzosOyldfCQpL2dpLHNoPS8oYW5pbWF0aW9uXFxzKjopfChhbmltYXRpb24tbmFtZVxccyo6KS8sdGg9L0BtZWRpYVxccyguKikvLHVoPS9cXHtbXn1dKlxcfS9nO3ZhciB2aD1uZXcgU2V0O2Z1bmN0aW9uIHdoKGEsYil7aWYoIWEpcmV0dXJuXCJcIjtcInN0cmluZ1wiPT09dHlwZW9mIGEmJihhPVdnKGEpKTtiJiZ4aChhLGIpO3JldHVybiBnaChhLFgpfWZ1bmN0aW9uIHloKGEpeyFhLl9fY3NzUnVsZXMmJmEudGV4dENvbnRlbnQmJihhLl9fY3NzUnVsZXM9V2coYS50ZXh0Q29udGVudCkpO3JldHVybiBhLl9fY3NzUnVsZXN8fG51bGx9ZnVuY3Rpb24gemgoYSl7cmV0dXJuISFhLnBhcmVudCYmYS5wYXJlbnQudHlwZT09PWRofWZ1bmN0aW9uIHhoKGEsYixjLGQpe2lmKGEpe3ZhciBlPSExLGY9YS50eXBlO2lmKGQmJmY9PT1iaCl7dmFyIGc9YS5zZWxlY3Rvci5tYXRjaCh0aCk7ZyYmKHdpbmRvdy5tYXRjaE1lZGlhKGdbMV0pLm1hdGNoZXN8fChlPSEwKSl9Zj09PWZoP2IoYSk6YyYmZj09PWRoP2MoYSk6Zj09PWVoJiYoZT0hMCk7aWYoKGE9YS5ydWxlcykmJiFlKWZvcihlPTAsZj1hLmxlbmd0aCxnPXZvaWQgMDtlPGYmJihnPWFbZV0pO2UrKyl4aChnLGIsYyxkKX19XG5mdW5jdGlvbiBBaChhLGIsYyxkKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7YiYmZS5zZXRBdHRyaWJ1dGUoXCJzY29wZVwiLGIpO2UudGV4dENvbnRlbnQ9YTtDaChlLGMsZCk7cmV0dXJuIGV9dmFyIERoPW51bGw7ZnVuY3Rpb24gRWgoYSl7YT1kb2N1bWVudC5jcmVhdGVDb21tZW50KFwiIFNoYWR5IERPTSBzdHlsZXMgZm9yIFwiK2ErXCIgXCIpO3ZhciBiPWRvY3VtZW50LmhlYWQ7Yi5pbnNlcnRCZWZvcmUoYSwoRGg/RGgubmV4dFNpYmxpbmc6bnVsbCl8fGIuZmlyc3RDaGlsZCk7cmV0dXJuIERoPWF9ZnVuY3Rpb24gQ2goYSxiLGMpe2I9Ynx8ZG9jdW1lbnQuaGVhZDtiLmluc2VydEJlZm9yZShhLGMmJmMubmV4dFNpYmxpbmd8fGIuZmlyc3RDaGlsZCk7RGg/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihEaCk9PT1Ob2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyYmKERoPWEpOkRoPWF9XG5mdW5jdGlvbiBGaChhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7YjxkO2IrKylpZihcIihcIj09PWFbYl0pYysrO2Vsc2UgaWYoXCIpXCI9PT1hW2JdJiYwPT09LS1jKXJldHVybiBiO3JldHVybi0xfWZ1bmN0aW9uIEdoKGEsYil7dmFyIGM9YS5pbmRleE9mKFwidmFyKFwiKTtpZigtMT09PWMpcmV0dXJuIGIoYSxcIlwiLFwiXCIsXCJcIik7dmFyIGQ9RmgoYSxjKzMpLGU9YS5zdWJzdHJpbmcoYys0LGQpO2M9YS5zdWJzdHJpbmcoMCxjKTthPUdoKGEuc3Vic3RyaW5nKGQrMSksYik7ZD1lLmluZGV4T2YoXCIsXCIpO3JldHVybi0xPT09ZD9iKGMsZS50cmltKCksXCJcIixhKTpiKGMsZS5zdWJzdHJpbmcoMCxkKS50cmltKCksZS5zdWJzdHJpbmcoZCsxKS50cmltKCksYSl9ZnVuY3Rpb24gSGgoYSxiKXtWP2Euc2V0QXR0cmlidXRlKFwiY2xhc3NcIixiKTp3aW5kb3cuU2hhZHlET00ubmF0aXZlTWV0aG9kcy5zZXRBdHRyaWJ1dGUuY2FsbChhLFwiY2xhc3NcIixiKX1cbnZhciBJaD13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS53cmFwfHxmdW5jdGlvbihhKXtyZXR1cm4gYX07ZnVuY3Rpb24gSmgoYSl7dmFyIGI9YS5sb2NhbE5hbWUsYz1cIlwiO2I/LTE8Yi5pbmRleE9mKFwiLVwiKXx8KGM9YixiPWEuZ2V0QXR0cmlidXRlJiZhLmdldEF0dHJpYnV0ZShcImlzXCIpfHxcIlwiKTooYj1hLmlzLGM9YS5leHRlbmRzKTtyZXR1cm57aXM6YixoYTpjfX1mdW5jdGlvbiBLaChhKXtmb3IodmFyIGI9W10sYz1cIlwiLGQ9MDswPD1kJiZkPGEubGVuZ3RoO2QrKylpZihcIihcIj09PWFbZF0pe3ZhciBlPUZoKGEsZCk7Yys9YS5zbGljZShkLGUrMSk7ZD1lfWVsc2VcIixcIj09PWFbZF0/KGIucHVzaChjKSxjPVwiXCIpOmMrPWFbZF07YyYmYi5wdXNoKGMpO3JldHVybiBifVxuZnVuY3Rpb24gTGgoYSl7aWYodm9pZCAwIT09bmgpcmV0dXJuIG5oO2lmKHZvaWQgMD09PWEuX19jc3NCdWlsZCl7dmFyIGI9YS5nZXRBdHRyaWJ1dGUoXCJjc3MtYnVpbGRcIik7aWYoYilhLl9fY3NzQnVpbGQ9YjtlbHNle2E6e2I9XCJ0ZW1wbGF0ZVwiPT09YS5sb2NhbE5hbWU/YS5jb250ZW50LmZpcnN0Q2hpbGQ6YS5maXJzdENoaWxkO2lmKGIgaW5zdGFuY2VvZiBDb21tZW50JiYoYj1iLnRleHRDb250ZW50LnRyaW0oKS5zcGxpdChcIjpcIiksXCJjc3MtYnVpbGRcIj09PWJbMF0pKXtiPWJbMV07YnJlYWsgYX1iPVwiXCJ9aWYoXCJcIiE9PWIpe3ZhciBjPVwidGVtcGxhdGVcIj09PWEubG9jYWxOYW1lP2EuY29udGVudC5maXJzdENoaWxkOmEuZmlyc3RDaGlsZDtjLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyl9YS5fX2Nzc0J1aWxkPWJ9fXJldHVybiBhLl9fY3NzQnVpbGR8fFwiXCJ9XG5mdW5jdGlvbiBNaChhKXthPXZvaWQgMD09PWE/XCJcIjphO3JldHVyblwiXCIhPT1hJiZYP1Y/XCJzaGFkb3dcIj09PWE6XCJzaGFkeVwiPT09YTohMX07ZnVuY3Rpb24gTmgoKXt9ZnVuY3Rpb24gT2goYSxiKXtQaChRaCxhLGZ1bmN0aW9uKGMpe1JoKGMsYnx8XCJcIil9KX1mdW5jdGlvbiBQaChhLGIsYyl7Yi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZjKGIpO3ZhciBkO1widGVtcGxhdGVcIj09PWIubG9jYWxOYW1lP2Q9KGIuY29udGVudHx8Yi5fY29udGVudHx8YikuY2hpbGROb2RlczpkPWIuY2hpbGRyZW58fGIuY2hpbGROb2RlcztpZihkKWZvcihiPTA7YjxkLmxlbmd0aDtiKyspUGgoYSxkW2JdLGMpfVxuZnVuY3Rpb24gUmgoYSxiLGMpe2lmKGIpaWYoYS5jbGFzc0xpc3QpYz8oYS5jbGFzc0xpc3QucmVtb3ZlKFwic3R5bGUtc2NvcGVcIiksYS5jbGFzc0xpc3QucmVtb3ZlKGIpKTooYS5jbGFzc0xpc3QuYWRkKFwic3R5bGUtc2NvcGVcIiksYS5jbGFzc0xpc3QuYWRkKGIpKTtlbHNlIGlmKGEuZ2V0QXR0cmlidXRlKXt2YXIgZD1hLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpO2M/ZCYmKGI9ZC5yZXBsYWNlKFwic3R5bGUtc2NvcGVcIixcIlwiKS5yZXBsYWNlKGIsXCJcIiksSGgoYSxiKSk6SGgoYSwoZD9kK1wiIFwiOlwiXCIpK1wic3R5bGUtc2NvcGUgXCIrYil9fWZ1bmN0aW9uIFNoKGEsYixjKXtQaChRaCxhLGZ1bmN0aW9uKGQpe1JoKGQsYiwhMCk7UmgoZCxjKX0pfWZ1bmN0aW9uIFRoKGEsYil7UGgoUWgsYSxmdW5jdGlvbihjKXtSaChjLGJ8fFwiXCIsITApfSl9XG5mdW5jdGlvbiBVaChhLGIsYyxkLGUpe3ZhciBmPVFoO2U9dm9pZCAwPT09ZT9cIlwiOmU7XCJcIj09PWUmJihWfHxcInNoYWR5XCI9PT0odm9pZCAwPT09ZD9cIlwiOmQpP2U9d2goYixjKTooYT1KaChhKSxlPVZoKGYsYixhLmlzLGEuaGEsYykrXCJcXG5cXG5cIikpO3JldHVybiBlLnRyaW0oKX1mdW5jdGlvbiBWaChhLGIsYyxkLGUpe3ZhciBmPVdoKGMsZCk7Yz1jP1wiLlwiK2M6XCJcIjtyZXR1cm4gd2goYixmdW5jdGlvbihnKXtnLml8fChnLnNlbGVjdG9yPWcuRj1YaChhLGcsYS5oLGMsZiksZy5pPSEwKTtlJiZlKGcsYyxmKX0pfWZ1bmN0aW9uIFdoKGEsYil7cmV0dXJuIGI/XCJbaXM9XCIrYStcIl1cIjphfVxuZnVuY3Rpb24gWGgoYSxiLGMsZCxlKXt2YXIgZj1LaChiLnNlbGVjdG9yKTtpZighemgoYikpe2I9MDtmb3IodmFyIGc9Zi5sZW5ndGgsaD12b2lkIDA7YjxnJiYoaD1mW2JdKTtiKyspZltiXT1jLmNhbGwoYSxoLGQsZSl9cmV0dXJuIGYuZmlsdGVyKGZ1bmN0aW9uKGspe3JldHVybiEha30pLmpvaW4oXCIsXCIpfWZ1bmN0aW9uIFloKGEpe3JldHVybiBhLnJlcGxhY2UoWmgsZnVuY3Rpb24oYixjLGQpey0xPGQuaW5kZXhPZihcIitcIik/ZD1kLnJlcGxhY2UoL1xcKy9nLFwiX19fXCIpOi0xPGQuaW5kZXhPZihcIl9fX1wiKSYmKGQ9ZC5yZXBsYWNlKC9fX18vZyxcIitcIikpO3JldHVyblwiOlwiK2MrXCIoXCIrZCtcIilcIn0pfVxuZnVuY3Rpb24gJGgoYSl7Zm9yKHZhciBiPVtdLGM7Yz1hLm1hdGNoKGFpKTspe3ZhciBkPWMuaW5kZXgsZT1GaChhLGQpO2lmKC0xPT09ZSl0aHJvdyBFcnJvcihjLmlucHV0K1wiIHNlbGVjdG9yIG1pc3NpbmcgJyknXCIpO2M9YS5zbGljZShkLGUrMSk7YT1hLnJlcGxhY2UoYyxcIlxcdWUwMDBcIik7Yi5wdXNoKGMpfXJldHVybntCYTphLG1hdGNoZXM6Yn19ZnVuY3Rpb24gYmkoYSxiKXt2YXIgYz1hLnNwbGl0KFwiXFx1ZTAwMFwiKTtyZXR1cm4gYi5yZWR1Y2UoZnVuY3Rpb24oZCxlLGYpe3JldHVybiBkK2UrY1tmKzFdfSxjWzBdKX1cbk5oLnByb3RvdHlwZS5oPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0hMTthPWEudHJpbSgpO3ZhciBlPVpoLnRlc3QoYSk7ZSYmKGE9YS5yZXBsYWNlKFpoLGZ1bmN0aW9uKGgsayxsKXtyZXR1cm5cIjpcIitrK1wiKFwiK2wucmVwbGFjZSgvXFxzL2csXCJcIikrXCIpXCJ9KSxhPVloKGEpKTt2YXIgZj1haS50ZXN0KGEpO2lmKGYpe3ZhciBnPSRoKGEpO2E9Zy5CYTtnPWcubWF0Y2hlc31hPWEucmVwbGFjZShjaSxcIjpob3N0ICQxXCIpO2E9YS5yZXBsYWNlKGRpLGZ1bmN0aW9uKGgsayxsKXtkfHwoaD1laShsLGssYixjKSxkPWR8fGguc3RvcCxrPWguVWEsbD1oLnZhbHVlKTtyZXR1cm4gaytsfSk7ZiYmKGE9YmkoYSxnKSk7ZSYmKGE9WWgoYSkpO3JldHVybiBhPWEucmVwbGFjZShmaSxmdW5jdGlvbihoLGssbCxtKXtyZXR1cm4nW2Rpcj1cIicrbCsnXCJdICcrayttK1wiLCBcIitrKydbZGlyPVwiJytsKydcIl0nK219KX07XG5mdW5jdGlvbiBlaShhLGIsYyxkKXt2YXIgZT1hLmluZGV4T2YoXCI6OnNsb3R0ZWRcIik7MDw9YS5pbmRleE9mKFwiOmhvc3RcIik/YT1naShhLGQpOjAhPT1lJiYoYT1jP2hpKGEsYyk6YSk7Yz0hMTswPD1lJiYoYj1cIlwiLGM9ITApO2lmKGMpe3ZhciBmPSEwO2MmJihhPWEucmVwbGFjZShpaSxmdW5jdGlvbihnLGgpe3JldHVyblwiID4gXCIraH0pKX1yZXR1cm57dmFsdWU6YSxVYTpiLHN0b3A6Zn19ZnVuY3Rpb24gaGkoYSxiKXthPWEuc3BsaXQoLyhcXFsuKz9cXF0pLyk7Zm9yKHZhciBjPVtdLGQ9MDtkPGEubGVuZ3RoO2QrKylpZigxPT09ZCUyKWMucHVzaChhW2RdKTtlbHNle3ZhciBlPWFbZF07aWYoXCJcIiE9PWV8fGQhPT1hLmxlbmd0aC0xKWU9ZS5zcGxpdChcIjpcIiksZVswXSs9YixjLnB1c2goZS5qb2luKFwiOlwiKSl9cmV0dXJuIGMuam9pbihcIlwiKX1cbmZ1bmN0aW9uIGdpKGEsYil7dmFyIGM9YS5tYXRjaChqaSk7cmV0dXJuKGM9YyYmY1syXS50cmltKCl8fFwiXCIpP2NbMF0ubWF0Y2goa2kpP2EucmVwbGFjZShqaSxmdW5jdGlvbihkLGUsZil7cmV0dXJuIGIrZn0pOmMuc3BsaXQoa2kpWzBdPT09Yj9jOlwic2hvdWxkX25vdF9tYXRjaFwiOmEucmVwbGFjZShcIjpob3N0XCIsYil9ZnVuY3Rpb24gbGkoYSl7XCI6cm9vdFwiPT09YS5zZWxlY3RvciYmKGEuc2VsZWN0b3I9XCJodG1sXCIpfU5oLnByb3RvdHlwZS5pPWZ1bmN0aW9uKGEpe3JldHVybiBhLm1hdGNoKFwiOmhvc3RcIik/XCJcIjphLm1hdGNoKFwiOjpzbG90dGVkXCIpP3RoaXMuaChhLFwiOm5vdCguc3R5bGUtc2NvcGUpXCIpOmhpKGEudHJpbSgpLFwiOm5vdCguc3R5bGUtc2NvcGUpXCIpfTtlYS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhOaC5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVyblwic3R5bGUtc2NvcGVcIn19fSk7XG52YXIgWmg9LzoobnRoWy1cXHddKylcXCgoW14pXSspXFwpLyxkaT0vKF58W1xccz4rfl0rKSgoPzpcXFsuKz9cXF18W15cXHM+K349W10pKykvZyxraT0vW1suOiMqXS8sY2k9L14oOjpzbG90dGVkKS8samk9Lyg6aG9zdCkoPzpcXCgoKD86XFwoW14pKF0qXFwpfFteKShdKikrPylcXCkpLyxpaT0vKD86OjpzbG90dGVkKSg/OlxcKCgoPzpcXChbXikoXSpcXCl8W14pKF0qKSs/KVxcKSkvLGZpPS8oLiopOmRpclxcKCg/OihsdHJ8cnRsKSlcXCkoLiopLyxhaT0vOig/Om1hdGNoZXN8YW55fC0oPzp3ZWJraXR8bW96KS1hbnkpLyxRaD1uZXcgTmg7ZnVuY3Rpb24gbWkoYSxiLGMsZCxlKXt0aGlzLk09YXx8bnVsbDt0aGlzLmg9Ynx8bnVsbDt0aGlzLnphPWN8fFtdO3RoaXMuSz1udWxsO3RoaXMuY3NzQnVpbGQ9ZXx8XCJcIjt0aGlzLmhhPWR8fFwiXCI7dGhpcy5nPXRoaXMuTD10aGlzLlI9bnVsbH1mdW5jdGlvbiBuaShhKXtyZXR1cm4gYT9hLl9fc3R5bGVJbmZvOm51bGx9ZnVuY3Rpb24gb2koYSxiKXtyZXR1cm4gYS5fX3N0eWxlSW5mbz1ifW1pLnByb3RvdHlwZS5pPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuTX07bWkucHJvdG90eXBlLl9nZXRTdHlsZVJ1bGVzPW1pLnByb3RvdHlwZS5pO2Z1bmN0aW9uIHBpKGEpe3ZhciBiPXRoaXMubWF0Y2hlc3x8dGhpcy5tYXRjaGVzU2VsZWN0b3J8fHRoaXMubW96TWF0Y2hlc1NlbGVjdG9yfHx0aGlzLm1zTWF0Y2hlc1NlbGVjdG9yfHx0aGlzLm9NYXRjaGVzU2VsZWN0b3J8fHRoaXMud2Via2l0TWF0Y2hlc1NlbGVjdG9yO3JldHVybiBiJiZiLmNhbGwodGhpcyxhKX12YXIgcWk9Lzpob3N0XFxzKj5cXHMqLyxyaT1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKFwiVHJpZGVudFwiKTtmdW5jdGlvbiBzaSgpe31mdW5jdGlvbiB0aShhKXt2YXIgYj17fSxjPVtdLGQ9MDt4aChhLGZ1bmN0aW9uKGYpe3VpKGYpO2YuaW5kZXg9ZCsrO2Y9Zi5ELmNzc1RleHQ7Zm9yKHZhciBnO2c9cmguZXhlYyhmKTspe3ZhciBoPWdbMV07XCI6XCIhPT1nWzJdJiYoYltoXT0hMCl9fSxmdW5jdGlvbihmKXtjLnB1c2goZil9KTthLmg9YzthPVtdO2Zvcih2YXIgZSBpbiBiKWEucHVzaChlKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIHVpKGEpe2lmKCFhLkQpe3ZhciBiPXt9LGM9e307dmkoYSxjKSYmKGIuUD1jLGEucnVsZXM9bnVsbCk7Yi5jc3NUZXh0PWEucGFyc2VkQ3NzVGV4dC5yZXBsYWNlKHVoLFwiXCIpLnJlcGxhY2UocGgsXCJcIik7YS5EPWJ9fWZ1bmN0aW9uIHZpKGEsYil7dmFyIGM9YS5EO2lmKGMpe2lmKGMuUClyZXR1cm4gT2JqZWN0LmFzc2lnbihiLGMuUCksITB9ZWxzZXtjPWEucGFyc2VkQ3NzVGV4dDtmb3IodmFyIGQ7YT1waC5leGVjKGMpOyl7ZD0oYVsyXXx8YVszXSkudHJpbSgpO2lmKFwiaW5oZXJpdFwiIT09ZHx8XCJ1bnNldFwiIT09ZCliW2FbMV0udHJpbSgpXT1kO2Q9ITB9cmV0dXJuIGR9fVxuZnVuY3Rpb24gd2koYSxiLGMpe2ImJihiPTA8PWIuaW5kZXhPZihcIjtcIik/eGkoYSxiLGMpOkdoKGIsZnVuY3Rpb24oZCxlLGYsZyl7aWYoIWUpcmV0dXJuIGQrZzsoZT13aShhLGNbZV0sYykpJiZcImluaXRpYWxcIiE9PWU/XCJhcHBseS1zaGltLWluaGVyaXRcIj09PWUmJihlPVwiaW5oZXJpdFwiKTplPXdpKGEsY1tmXXx8ZixjKXx8ZjtyZXR1cm4gZCsoZXx8XCJcIikrZ30pKTtyZXR1cm4gYiYmYi50cmltKCl8fFwiXCJ9XG5mdW5jdGlvbiB4aShhLGIsYyl7Yj1iLnNwbGl0KFwiO1wiKTtmb3IodmFyIGQ9MCxlLGY7ZDxiLmxlbmd0aDtkKyspaWYoZT1iW2RdKXtxaC5sYXN0SW5kZXg9MDtpZihmPXFoLmV4ZWMoZSkpZT13aShhLGNbZlsxXV0sYyk7ZWxzZSBpZihmPWUuaW5kZXhPZihcIjpcIiksLTEhPT1mKXt2YXIgZz1lLnN1YnN0cmluZyhmKTtnPWcudHJpbSgpO2c9d2koYSxnLGMpfHxnO2U9ZS5zdWJzdHJpbmcoMCxmKStnfWJbZF09ZSYmZS5sYXN0SW5kZXhPZihcIjtcIik9PT1lLmxlbmd0aC0xP2Uuc2xpY2UoMCwtMSk6ZXx8XCJcIn1yZXR1cm4gYi5qb2luKFwiO1wiKX1cbmZ1bmN0aW9uIHlpKGEsYil7dmFyIGM9e30sZD1bXTt4aChhLGZ1bmN0aW9uKGUpe2UuRHx8dWkoZSk7dmFyIGY9ZS5GfHxlLnBhcnNlZFNlbGVjdG9yO2ImJmUuRC5QJiZmJiZwaS5jYWxsKGIsZikmJih2aShlLGMpLGU9ZS5pbmRleCxmPXBhcnNlSW50KGUvMzIsMTApLGRbZl09KGRbZl18fDApfDE8PGUlMzIpfSxudWxsLCEwKTtyZXR1cm57UDpjLGtleTpkfX1cbmZ1bmN0aW9uIHppKGEsYixjLGQpe2IuRHx8dWkoYik7aWYoYi5ELlApe3ZhciBlPUpoKGEpO2E9ZS5pcztlPWUuaGE7ZT1hP1doKGEsZSk6XCJodG1sXCI7dmFyIGY9Yi5wYXJzZWRTZWxlY3Rvcjt2YXIgZz0hIWYubWF0Y2gocWkpfHxcImh0bWxcIj09PWUmJi0xPGYuaW5kZXhPZihcImh0bWxcIik7dmFyIGg9MD09PWYuaW5kZXhPZihcIjpob3N0XCIpJiYhZztcInNoYWR5XCI9PT1jJiYoZz1mPT09ZStcIiA+ICouXCIrZXx8LTEhPT1mLmluZGV4T2YoXCJodG1sXCIpLGg9IWcmJjA9PT1mLmluZGV4T2YoZSkpO2lmKGd8fGgpYz1lLGgmJihiLkZ8fChiLkY9WGgoUWgsYixRaC5oLGE/XCIuXCIrYTpcIlwiLGUpKSxjPWIuRnx8ZSksZyYmXCJodG1sXCI9PT1lJiYoYz1iLkZ8fGIuTyksZCh7QmE6YyxhYjpoLHFiOmd9KX19XG5mdW5jdGlvbiBBaShhLGIsYyl7dmFyIGQ9e30sZT17fTt4aChiLGZ1bmN0aW9uKGYpe3ppKGEsZixjLGZ1bmN0aW9uKGcpe3BpLmNhbGwoYS5fZWxlbWVudHx8YSxnLkJhKSYmKGcuYWI/dmkoZixkKTp2aShmLGUpKX0pfSxudWxsLCEwKTtyZXR1cm57aGI6ZSxaYTpkfX1cbmZ1bmN0aW9uIEJpKGEsYixjLGQpe3ZhciBlPUpoKGIpLGY9V2goZS5pcyxlLmhhKSxnPW5ldyBSZWdFeHAoXCIoPzpefFteLiNbOl0pXCIrKGIuZXh0ZW5kcz9cIlxcXFxcIitmLnNsaWNlKDAsLTEpK1wiXFxcXF1cIjpmKStcIigkfFsuOltcXFxccz4rfl0pXCIpLGg9bmkoYik7ZT1oLk07aD1oLmNzc0J1aWxkO3ZhciBrPUNpKGUsZCk7cmV0dXJuIFVoKGIsZSxmdW5jdGlvbihsKXt2YXIgbT1cIlwiO2wuRHx8dWkobCk7bC5ELmNzc1RleHQmJihtPXhpKGEsbC5ELmNzc1RleHQsYykpO2wuY3NzVGV4dD1tO2lmKCFWJiYhemgobCkmJmwuY3NzVGV4dCl7dmFyIHE9bT1sLmNzc1RleHQ7bnVsbD09bC5JYSYmKGwuSWE9c2gudGVzdChtKSk7aWYobC5JYSlpZihudWxsPT1sLnBhKXtsLnBhPVtdO2Zvcih2YXIgSCBpbiBrKXE9a1tIXSxxPXEobSksbSE9PXEmJihtPXEsbC5wYS5wdXNoKEgpKX1lbHNle2ZvcihIPTA7SDxsLnBhLmxlbmd0aDsrK0gpcT1rW2wucGFbSF1dLG09cShtKTtxPW19bC5jc3NUZXh0PXE7bC5GPVxubC5GfHxsLnNlbGVjdG9yO209XCIuXCIrZDtIPUtoKGwuRik7cT0wO2Zvcih2YXIgQz1ILmxlbmd0aCx0PXZvaWQgMDtxPEMmJih0PUhbcV0pO3ErKylIW3FdPXQubWF0Y2goZyk/dC5yZXBsYWNlKGYsbSk6bStcIiBcIit0O2wuc2VsZWN0b3I9SC5qb2luKFwiLFwiKX19LGgpfWZ1bmN0aW9uIENpKGEsYil7YT1hLmg7dmFyIGM9e307aWYoIVYmJmEpZm9yKHZhciBkPTAsZT1hW2RdO2Q8YS5sZW5ndGg7ZT1hWysrZF0pe3ZhciBmPWUsZz1iO2YudT1uZXcgUmVnRXhwKFwiXFxcXGJcIitmLmtleWZyYW1lc05hbWUrXCIoPyFcXFxcQnwtKVwiLFwiZ1wiKTtmLmc9Zi5rZXlmcmFtZXNOYW1lK1wiLVwiK2c7Zi5GPWYuRnx8Zi5zZWxlY3RvcjtmLnNlbGVjdG9yPWYuRi5yZXBsYWNlKGYua2V5ZnJhbWVzTmFtZSxmLmcpO2NbZS5rZXlmcmFtZXNOYW1lXT1EaShlKX1yZXR1cm4gY31mdW5jdGlvbiBEaShhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIGIucmVwbGFjZShhLnUsYS5nKX19XG5mdW5jdGlvbiBFaShhLGIpe3ZhciBjPUZpLGQ9eWgoYSk7YS50ZXh0Q29udGVudD13aChkLGZ1bmN0aW9uKGUpe3ZhciBmPWUuY3NzVGV4dD1lLnBhcnNlZENzc1RleHQ7ZS5EJiZlLkQuY3NzVGV4dCYmKGY9Zi5yZXBsYWNlKGhoLFwiXCIpLnJlcGxhY2UoaWgsXCJcIiksZS5jc3NUZXh0PXhpKGMsZixiKSl9KX1lYS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhzaS5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVyblwieC1zY29wZVwifX19KTt2YXIgRmk9bmV3IHNpO3ZhciBHaT17fSxIaT13aW5kb3cuY3VzdG9tRWxlbWVudHM7aWYoSGkmJiFWJiYhb2gpe3ZhciBJaT1IaS5kZWZpbmU7SGkuZGVmaW5lPWZ1bmN0aW9uKGEsYixjKXtHaVthXXx8KEdpW2FdPUVoKGEpKTtJaS5jYWxsKEhpLGEsYixjKX19O2Z1bmN0aW9uIEppKCl7dGhpcy5jYWNoZT17fX1KaS5wcm90b3R5cGUuc3RvcmU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5jYWNoZVthXXx8W107ZS5wdXNoKHtQOmIsc3R5bGVFbGVtZW50OmMsTDpkfSk7MTAwPGUubGVuZ3RoJiZlLnNoaWZ0KCk7dGhpcy5jYWNoZVthXT1lfTtmdW5jdGlvbiBLaSgpe312YXIgTGk9bmV3IFJlZ0V4cChRaC5nK1wiXFxcXHMqKFteXFxcXHNdKilcIik7ZnVuY3Rpb24gTWkoYSl7cmV0dXJuKGE9KGEuY2xhc3NMaXN0JiZhLmNsYXNzTGlzdC52YWx1ZT9hLmNsYXNzTGlzdC52YWx1ZTphLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwiKS5tYXRjaChMaSkpP2FbMV06XCJcIn1mdW5jdGlvbiBOaShhKXt2YXIgYj1JaChhKS5nZXRSb290Tm9kZSgpO3JldHVybiBiPT09YXx8Yj09PWEub3duZXJEb2N1bWVudD9cIlwiOihhPWIuaG9zdCk/SmgoYSkuaXM6XCJcIn1cbmZ1bmN0aW9uIE9pKGEpe2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz1hW2JdO2lmKGMudGFyZ2V0IT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZjLnRhcmdldCE9PWRvY3VtZW50LmhlYWQpZm9yKHZhciBkPTA7ZDxjLmFkZGVkTm9kZXMubGVuZ3RoO2QrKyl7dmFyIGU9Yy5hZGRlZE5vZGVzW2RdO2lmKGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7dmFyIGY9ZS5nZXRSb290Tm9kZSgpLGc9TWkoZSk7aWYoZyYmZj09PWUub3duZXJEb2N1bWVudCYmKFwic3R5bGVcIiE9PWUubG9jYWxOYW1lJiZcInRlbXBsYXRlXCIhPT1lLmxvY2FsTmFtZXx8XCJcIj09PUxoKGUpKSlUaChlLGcpO2Vsc2UgaWYoZiBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpZm9yKGY9TmkoZSksZiE9PWcmJlNoKGUsZyxmKSxlPXdpbmRvdy5TaGFkeURPTS5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwuY2FsbChlLFwiOm5vdCguXCIrUWguZytcIilcIiksZz0wO2c8ZS5sZW5ndGg7ZysrKXtmPWVbZ107XG52YXIgaD1OaShmKTtoJiZSaChmLGgpfX19fX1cbmlmKCEoVnx8d2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uaGFuZGxlc0R5bmFtaWNTY29waW5nKSl7dmFyIFBpPW5ldyBNdXRhdGlvbk9ic2VydmVyKE9pKSxRaT1mdW5jdGlvbihhKXtQaS5vYnNlcnZlKGEse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSl9O2lmKHdpbmRvdy5jdXN0b21FbGVtZW50cyYmIXdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKVFpKGRvY3VtZW50KTtlbHNle3ZhciBSaT1mdW5jdGlvbigpe1FpKGRvY3VtZW50LmJvZHkpfTt3aW5kb3cuSFRNTEltcG9ydHM/d2luZG93LkhUTUxJbXBvcnRzLndoZW5SZWFkeShSaSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoXCJsb2FkaW5nXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlKXt2YXIgYT1mdW5jdGlvbigpe1JpKCk7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlYWR5c3RhdGVjaGFuZ2VcIixhKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInJlYWR5c3RhdGVjaGFuZ2VcIixcbmEpfWVsc2UgUmkoKX0pfUtpPWZ1bmN0aW9uKCl7T2koUGkudGFrZVJlY29yZHMoKSl9fTt2YXIgU2k9e307dmFyIFRpPVByb21pc2UucmVzb2x2ZSgpO2Z1bmN0aW9uIFVpKGEpe2lmKGE9U2lbYV0pYS5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249YS5fYXBwbHlTaGltQ3VycmVudFZlcnNpb258fDAsYS5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNpb249YS5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNpb258fDAsYS5fYXBwbHlTaGltTmV4dFZlcnNpb249KGEuX2FwcGx5U2hpbU5leHRWZXJzaW9ufHwwKSsxfWZ1bmN0aW9uIFZpKGEpe3JldHVybiBhLl9hcHBseVNoaW1DdXJyZW50VmVyc2lvbj09PWEuX2FwcGx5U2hpbU5leHRWZXJzaW9ufWZ1bmN0aW9uIFdpKGEpe2EuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uPWEuX2FwcGx5U2hpbU5leHRWZXJzaW9uO2EuX3ZhbGlkYXRpbmd8fChhLl92YWxpZGF0aW5nPSEwLFRpLnRoZW4oZnVuY3Rpb24oKXthLl9hcHBseVNoaW1DdXJyZW50VmVyc2lvbj1hLl9hcHBseVNoaW1OZXh0VmVyc2lvbjthLl92YWxpZGF0aW5nPSExfSkpfTt2YXIgWGk9e30sWWk9bmV3IEppO2Z1bmN0aW9uIFkoKXt0aGlzLmRhPXt9O3RoaXMuaT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dmFyIGE9bmV3IFZnO2EucnVsZXM9W107dGhpcy51PW9pKHRoaXMuaSxuZXcgbWkoYSkpO3RoaXMuTz0hMTt0aGlzLmc9dGhpcy5oPW51bGx9dj1ZLnByb3RvdHlwZTt2LmZsdXNoPWZ1bmN0aW9uKCl7S2koKX07di5YYT1mdW5jdGlvbihhKXtyZXR1cm4geWgoYSl9O3YubGI9ZnVuY3Rpb24oYSl7cmV0dXJuIHdoKGEpfTt2LnByZXBhcmVUZW1wbGF0ZT1mdW5jdGlvbihhLGIsYyl7dGhpcy5wcmVwYXJlVGVtcGxhdGVEb20oYSxiKTt0aGlzLnByZXBhcmVUZW1wbGF0ZVN0eWxlcyhhLGIsYyl9O1xudi5wcmVwYXJlVGVtcGxhdGVTdHlsZXM9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhLl9wcmVwYXJlZCYmIW9oKXtWfHxHaVtiXXx8KEdpW2JdPUVoKGIpKTthLl9wcmVwYXJlZD0hMDthLm5hbWU9YjthLmV4dGVuZHM9YztTaVtiXT1hO3ZhciBkPUxoKGEpLGU9TWgoZCk7Yz17aXM6YixleHRlbmRzOmN9O2Zvcih2YXIgZj1bXSxnPWEuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKFwic3R5bGVcIiksaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgaz1nW2hdO2lmKGsuaGFzQXR0cmlidXRlKFwic2hhZHktdW5zY29wZWRcIikpe2lmKCFWKXt2YXIgbD1rLnRleHRDb250ZW50O2lmKCF2aC5oYXMobCkpe3ZoLmFkZChsKTt2YXIgbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7bS5zZXRBdHRyaWJ1dGUoXCJzaGFkeS11bnNjb3BlZFwiLFwiXCIpO20udGV4dENvbnRlbnQ9bDtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG0pfWsucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChrKX19ZWxzZSBmLnB1c2goay50ZXh0Q29udGVudCksXG5rLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoayl9Zj1mLmpvaW4oXCJcIikudHJpbSgpKyhYaVtiXXx8XCJcIik7WmkodGhpcyk7aWYoIWUpe2lmKGc9IWQpZz1xaC50ZXN0KGYpfHxwaC50ZXN0KGYpLHFoLmxhc3RJbmRleD0wLHBoLmxhc3RJbmRleD0wO2g9V2coZik7ZyYmWCYmdGhpcy5oJiZ0aGlzLmgudHJhbnNmb3JtUnVsZXMoaCxiKTthLl9zdHlsZUFzdD1ofWc9W107WHx8KGc9dGkoYS5fc3R5bGVBc3QpKTtpZighZy5sZW5ndGh8fFgpaD1WP2EuY29udGVudDpudWxsLGI9R2lbYl18fG51bGwsZD1VaChjLGEuX3N0eWxlQXN0LG51bGwsZCxlP2Y6XCJcIiksZD1kLmxlbmd0aD9BaChkLGMuaXMsaCxiKTpudWxsLGEuX3N0eWxlPWQ7YS5nPWd9fTt2LmZiPWZ1bmN0aW9uKGEsYil7WGlbYl09YS5qb2luKFwiIFwiKX07XG52LnByZXBhcmVUZW1wbGF0ZURvbT1mdW5jdGlvbihhLGIpe2lmKCFvaCl7dmFyIGM9TGgoYSk7Vnx8XCJzaGFkeVwiPT09Y3x8YS5fZG9tUHJlcGFyZWR8fChhLl9kb21QcmVwYXJlZD0hMCxPaChhLmNvbnRlbnQsYikpfX07ZnVuY3Rpb24gJGkoYSl7dmFyIGI9SmgoYSksYz1iLmlzO2I9Yi5oYTt2YXIgZD1HaVtjXXx8bnVsbCxlPVNpW2NdO2lmKGUpe2M9ZS5fc3R5bGVBc3Q7dmFyIGY9ZS5nO2U9TGgoZSk7Yj1uZXcgbWkoYyxkLGYsYixlKTtvaShhLGIpO3JldHVybiBifX1cbmZ1bmN0aW9uIGFqKGEpeyFhLmcmJndpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLkN1c3RvbVN0eWxlSW50ZXJmYWNlJiYoYS5nPXdpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSxhLmcudHJhbnNmb3JtQ2FsbGJhY2s9ZnVuY3Rpb24oYil7YS5NYShiKX0sYS5nLnZhbGlkYXRlQ2FsbGJhY2s9ZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXsoYS5nLmVucXVldWVkfHxhLk8pJiZhLmZsdXNoQ3VzdG9tU3R5bGVzKCl9KX0pfWZ1bmN0aW9uIFppKGEpe2lmKCFhLmgmJndpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbSl7YS5oPXdpbmRvdy5TaGFkeUNTUy5BcHBseVNoaW07YS5oLmludmFsaWRDYWxsYmFjaz1VaTt2YXIgYj0hMH1lbHNlIGI9ITE7YWooYSk7cmV0dXJuIGJ9XG52LmZsdXNoQ3VzdG9tU3R5bGVzPWZ1bmN0aW9uKCl7aWYoIW9oKXt2YXIgYT1aaSh0aGlzKTtpZih0aGlzLmcpe3ZhciBiPXRoaXMuZy5wcm9jZXNzU3R5bGVzKCk7aWYoKGF8fHRoaXMuZy5lbnF1ZXVlZCkmJiFNaCh0aGlzLnUuY3NzQnVpbGQpKXtpZihYKXtpZighdGhpcy51LmNzc0J1aWxkKWZvcihhPTA7YTxiLmxlbmd0aDthKyspe3ZhciBjPXRoaXMuZy5nZXRTdHlsZUZvckN1c3RvbVN0eWxlKGJbYV0pO2lmKGMmJlgmJnRoaXMuaCl7dmFyIGQ9eWgoYyk7WmkodGhpcyk7dGhpcy5oLnRyYW5zZm9ybVJ1bGVzKGQpO2MudGV4dENvbnRlbnQ9d2goZCl9fX1lbHNle2JqKHRoaXMsYik7Y2oodGhpcyx0aGlzLmksdGhpcy51KTtmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKShjPXRoaXMuZy5nZXRTdHlsZUZvckN1c3RvbVN0eWxlKGJbYV0pKSYmRWkoYyx0aGlzLnUuUik7dGhpcy5PJiZ0aGlzLnN0eWxlRG9jdW1lbnQoKX10aGlzLmcuZW5xdWV1ZWQ9ITF9fX19O1xuZnVuY3Rpb24gYmooYSxiKXtiPWIubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBhLmcuZ2V0U3R5bGVGb3JDdXN0b21TdHlsZShjKX0pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4hIWN9KTtiLnNvcnQoZnVuY3Rpb24oYyxkKXtjPWQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYyk7cmV0dXJuIGMmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc/MTpjJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HPy0xOjB9KTthLnUuTS5ydWxlcz1iLm1hcChmdW5jdGlvbihjKXtyZXR1cm4geWgoYyl9KX1cbnYuc3R5bGVFbGVtZW50PWZ1bmN0aW9uKGEsYil7aWYob2gpe2lmKGIpe25pKGEpfHxvaShhLG5ldyBtaShudWxsKSk7dmFyIGM9bmkoYSk7Yy5LPWMuS3x8e307T2JqZWN0LmFzc2lnbihjLkssYik7ZGoodGhpcyxhLGMpfX1lbHNlIGlmKGM9bmkoYSl8fCRpKGEpKWlmKGEhPT10aGlzLmkmJih0aGlzLk89ITApLGImJihjLks9Yy5LfHx7fSxPYmplY3QuYXNzaWduKGMuSyxiKSksWClkaih0aGlzLGEsYyk7ZWxzZSBpZih0aGlzLmZsdXNoKCksY2oodGhpcyxhLGMpLGMuemEmJmMuemEubGVuZ3RoKXtiPUpoKGEpLmlzO3ZhciBkO2E6e2lmKGQ9WWkuY2FjaGVbYl0pZm9yKHZhciBlPWQubGVuZ3RoLTE7MDw9ZTtlLS0pe3ZhciBmPWRbZV07Yjp7dmFyIGc9Yy56YTtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIGs9Z1toXTtpZihmLlBba10hPT1jLlJba10pe2c9ITE7YnJlYWsgYn19Zz0hMH1pZihnKXtkPWY7YnJlYWsgYX19ZD12b2lkIDB9Zz1kP2Quc3R5bGVFbGVtZW50OlxubnVsbDtlPWMuTDsoZj1kJiZkLkwpfHwoZj10aGlzLmRhW2JdPSh0aGlzLmRhW2JdfHwwKSsxLGY9YitcIi1cIitmKTtjLkw9ZjtmPWMuTDtoPUZpO2g9Zz9nLnRleHRDb250ZW50fHxcIlwiOkJpKGgsYSxjLlIsZik7az1uaShhKTt2YXIgbD1rLmc7bCYmIVYmJmwhPT1nJiYobC5fdXNlQ291bnQtLSwwPj1sLl91c2VDb3VudCYmbC5wYXJlbnROb2RlJiZsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobCkpO1Y/ay5nPyhrLmcudGV4dENvbnRlbnQ9aCxnPWsuZyk6aCYmKGc9QWgoaCxmLGEuc2hhZG93Um9vdCxrLmgpKTpnP2cucGFyZW50Tm9kZXx8KHJpJiYtMTxoLmluZGV4T2YoXCJAbWVkaWFcIikmJihnLnRleHRDb250ZW50PWgpLENoKGcsbnVsbCxrLmgpKTpoJiYoZz1BaChoLGYsbnVsbCxrLmgpKTtnJiYoZy5fdXNlQ291bnQ9Zy5fdXNlQ291bnR8fDAsay5nIT1nJiZnLl91c2VDb3VudCsrLGsuZz1nKTtmPWc7Vnx8KGc9Yy5MLGs9aD1hLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwiLGUmJlxuKGs9aC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxccyp4LXNjb3BlXFxcXHMqXCIrZStcIlxcXFxzKlwiLFwiZ1wiKSxcIiBcIikpLGsrPShrP1wiIFwiOlwiXCIpK1wieC1zY29wZSBcIitnLGghPT1rJiZIaChhLGspKTtkfHxZaS5zdG9yZShiLGMuUixmLGMuTCl9fTtcbmZ1bmN0aW9uIGRqKGEsYixjKXt2YXIgZD1KaChiKS5pcztpZihjLkspe3ZhciBlPWMuSyxmO2ZvcihmIGluIGUpbnVsbD09PWY/Yi5zdHlsZS5yZW1vdmVQcm9wZXJ0eShmKTpiLnN0eWxlLnNldFByb3BlcnR5KGYsZVtmXSl9ZT1TaVtkXTtpZighKCFlJiZiIT09YS5pfHxlJiZcIlwiIT09TGgoZSkpJiZlJiZlLl9zdHlsZSYmIVZpKGUpKXtpZihWaShlKXx8ZS5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNpb24hPT1lLl9hcHBseVNoaW1OZXh0VmVyc2lvbilaaShhKSxhLmgmJmEuaC50cmFuc2Zvcm1SdWxlcyhlLl9zdHlsZUFzdCxkKSxlLl9zdHlsZS50ZXh0Q29udGVudD1VaChiLGMuTSksV2koZSk7ViYmKGE9Yi5zaGFkb3dSb290KSYmKGE9YS5xdWVyeVNlbGVjdG9yKFwic3R5bGVcIikpJiYoYS50ZXh0Q29udGVudD1VaChiLGMuTSkpO2MuTT1lLl9zdHlsZUFzdH19XG5mdW5jdGlvbiBlaihhLGIpe3JldHVybihiPUloKGIpLmdldFJvb3ROb2RlKCkuaG9zdCk/bmkoYil8fCRpKGIpP2I6ZWooYSxiKTphLml9ZnVuY3Rpb24gY2ooYSxiLGMpe3ZhciBkPWVqKGEsYiksZT1uaShkKSxmPWUuUjtkPT09YS5pfHxmfHwoY2ooYSxkLGUpLGY9ZS5SKTthPU9iamVjdC5jcmVhdGUoZnx8bnVsbCk7ZD1BaShiLGMuTSxjLmNzc0J1aWxkKTtiPXlpKGUuTSxiKS5QO09iamVjdC5hc3NpZ24oYSxkLlphLGIsZC5oYik7Yj1jLks7Zm9yKHZhciBnIGluIGIpaWYoKGU9YltnXSl8fDA9PT1lKWFbZ109ZTtnPUZpO2I9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYSk7Zm9yKGU9MDtlPGIubGVuZ3RoO2UrKylkPWJbZV0sYVtkXT13aShnLGFbZF0sYSk7Yy5SPWF9di5zdHlsZURvY3VtZW50PWZ1bmN0aW9uKGEpe3RoaXMuc3R5bGVTdWJ0cmVlKHRoaXMuaSxhKX07XG52LnN0eWxlU3VidHJlZT1mdW5jdGlvbihhLGIpe3ZhciBjPUloKGEpLGQ9Yy5zaGFkb3dSb290LGU9YT09PXRoaXMuaTsoZHx8ZSkmJnRoaXMuc3R5bGVFbGVtZW50KGEsYik7aWYoYT1lP2M6ZClmb3IoYT1BcnJheS5mcm9tKGEucXVlcnlTZWxlY3RvckFsbChcIipcIikpLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gSWgoZikuc2hhZG93Um9vdH0pLGI9MDtiPGEubGVuZ3RoO2IrKyl0aGlzLnN0eWxlU3VidHJlZShhW2JdKX07XG52Lk1hPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1MaChhKTtjIT09dGhpcy51LmNzc0J1aWxkJiYodGhpcy51LmNzc0J1aWxkPWMpO2lmKCFNaChjKSl7dmFyIGQ9eWgoYSk7eGgoZCxmdW5jdGlvbihlKXtpZihWKWxpKGUpO2Vsc2V7dmFyIGY9UWg7ZS5zZWxlY3Rvcj1lLnBhcnNlZFNlbGVjdG9yO2xpKGUpO2Uuc2VsZWN0b3I9ZS5GPVhoKGYsZSxmLmksdm9pZCAwLHZvaWQgMCl9WCYmXCJcIj09PWMmJihaaShiKSxiLmgmJmIuaC50cmFuc2Zvcm1SdWxlKGUpKX0pO1g/YS50ZXh0Q29udGVudD13aChkKTp0aGlzLnUuTS5ydWxlcy5wdXNoKGQpfX07di5nZXRDb21wdXRlZFN0eWxlVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYztYfHwoYz0obmkoYSl8fG5pKGVqKHRoaXMsYSkpKS5SW2JdKTtyZXR1cm4oYz1jfHx3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhKS5nZXRQcm9wZXJ0eVZhbHVlKGIpKT9jLnRyaW0oKTpcIlwifTtcbnYua2I9ZnVuY3Rpb24oYSxiKXt2YXIgYz1JaChhKS5nZXRSb290Tm9kZSgpO2I9Yj8oXCJzdHJpbmdcIj09PXR5cGVvZiBiP2I6U3RyaW5nKGIpKS5zcGxpdCgvXFxzLyk6W107Yz1jLmhvc3QmJmMuaG9zdC5sb2NhbE5hbWU7aWYoIWMpe3ZhciBkPWEuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIik7aWYoZCl7ZD1kLnNwbGl0KC9cXHMvKTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKylpZihkW2VdPT09UWguZyl7Yz1kW2UrMV07YnJlYWt9fX1jJiZiLnB1c2goUWguZyxjKTtYfHwoYz1uaShhKSkmJmMuTCYmYi5wdXNoKEZpLmcsYy5MKTtIaChhLGIuam9pbihcIiBcIikpfTt2LlRhPWZ1bmN0aW9uKGEpe3JldHVybiBuaShhKX07di5qYj1mdW5jdGlvbihhLGIpe1JoKGEsYil9O3YubWI9ZnVuY3Rpb24oYSxiKXtSaChhLGIsITApfTt2LmliPWZ1bmN0aW9uKGEpe3JldHVybiBOaShhKX07di5WYT1mdW5jdGlvbihhKXtyZXR1cm4gTWkoYSl9O1kucHJvdG90eXBlLmZsdXNoPVkucHJvdG90eXBlLmZsdXNoO1xuWS5wcm90b3R5cGUucHJlcGFyZVRlbXBsYXRlPVkucHJvdG90eXBlLnByZXBhcmVUZW1wbGF0ZTtZLnByb3RvdHlwZS5zdHlsZUVsZW1lbnQ9WS5wcm90b3R5cGUuc3R5bGVFbGVtZW50O1kucHJvdG90eXBlLnN0eWxlRG9jdW1lbnQ9WS5wcm90b3R5cGUuc3R5bGVEb2N1bWVudDtZLnByb3RvdHlwZS5zdHlsZVN1YnRyZWU9WS5wcm90b3R5cGUuc3R5bGVTdWJ0cmVlO1kucHJvdG90eXBlLmdldENvbXB1dGVkU3R5bGVWYWx1ZT1ZLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlVmFsdWU7WS5wcm90b3R5cGUuc2V0RWxlbWVudENsYXNzPVkucHJvdG90eXBlLmtiO1kucHJvdG90eXBlLl9zdHlsZUluZm9Gb3JOb2RlPVkucHJvdG90eXBlLlRhO1kucHJvdG90eXBlLnRyYW5zZm9ybUN1c3RvbVN0eWxlRm9yRG9jdW1lbnQ9WS5wcm90b3R5cGUuTWE7WS5wcm90b3R5cGUuZ2V0U3R5bGVBc3Q9WS5wcm90b3R5cGUuWGE7WS5wcm90b3R5cGUuc3R5bGVBc3RUb1N0cmluZz1ZLnByb3RvdHlwZS5sYjtcblkucHJvdG90eXBlLmZsdXNoQ3VzdG9tU3R5bGVzPVkucHJvdG90eXBlLmZsdXNoQ3VzdG9tU3R5bGVzO1kucHJvdG90eXBlLnNjb3BlTm9kZT1ZLnByb3RvdHlwZS5qYjtZLnByb3RvdHlwZS51bnNjb3BlTm9kZT1ZLnByb3RvdHlwZS5tYjtZLnByb3RvdHlwZS5zY29wZUZvck5vZGU9WS5wcm90b3R5cGUuaWI7WS5wcm90b3R5cGUuY3VycmVudFNjb3BlRm9yTm9kZT1ZLnByb3RvdHlwZS5WYTtZLnByb3RvdHlwZS5wcmVwYXJlQWRvcHRlZENzc1RleHQ9WS5wcm90b3R5cGUuZmI7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWS5wcm90b3R5cGUse25hdGl2ZVNoYWRvdzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFZ9fSxuYXRpdmVDc3M6e2dldDpmdW5jdGlvbigpe3JldHVybiBYfX19KTt2YXIgWj1uZXcgWSxmaixnajt3aW5kb3cuU2hhZHlDU1MmJihmaj13aW5kb3cuU2hhZHlDU1MuQXBwbHlTaGltLGdqPXdpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSk7XG53aW5kb3cuU2hhZHlDU1M9e1Njb3BpbmdTaGltOloscHJlcGFyZVRlbXBsYXRlOmZ1bmN0aW9uKGEsYixjKXtaLmZsdXNoQ3VzdG9tU3R5bGVzKCk7Wi5wcmVwYXJlVGVtcGxhdGUoYSxiLGMpfSxwcmVwYXJlVGVtcGxhdGVEb206ZnVuY3Rpb24oYSxiKXtaLnByZXBhcmVUZW1wbGF0ZURvbShhLGIpfSxwcmVwYXJlVGVtcGxhdGVTdHlsZXM6ZnVuY3Rpb24oYSxiLGMpe1ouZmx1c2hDdXN0b21TdHlsZXMoKTtaLnByZXBhcmVUZW1wbGF0ZVN0eWxlcyhhLGIsYyl9LHN0eWxlU3VidHJlZTpmdW5jdGlvbihhLGIpe1ouZmx1c2hDdXN0b21TdHlsZXMoKTtaLnN0eWxlU3VidHJlZShhLGIpfSxzdHlsZUVsZW1lbnQ6ZnVuY3Rpb24oYSl7Wi5mbHVzaEN1c3RvbVN0eWxlcygpO1ouc3R5bGVFbGVtZW50KGEpfSxzdHlsZURvY3VtZW50OmZ1bmN0aW9uKGEpe1ouZmx1c2hDdXN0b21TdHlsZXMoKTtaLnN0eWxlRG9jdW1lbnQoYSl9LGZsdXNoQ3VzdG9tU3R5bGVzOmZ1bmN0aW9uKCl7Wi5mbHVzaEN1c3RvbVN0eWxlcygpfSxcbmdldENvbXB1dGVkU3R5bGVWYWx1ZTpmdW5jdGlvbihhLGIpe3JldHVybiBaLmdldENvbXB1dGVkU3R5bGVWYWx1ZShhLGIpfSxuYXRpdmVDc3M6WCxuYXRpdmVTaGFkb3c6Vixjc3NCdWlsZDpuaCxkaXNhYmxlUnVudGltZTpvaH07ZmomJih3aW5kb3cuU2hhZHlDU1MuQXBwbHlTaGltPWZqKTtnaiYmKHdpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZT1naik7KGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIodCl7XCJcIj09dCYmKGYuY2FsbCh0aGlzKSx0aGlzLm09ITApO3JldHVybiB0LnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gYyh0KXt2YXIgRj10LmNoYXJDb2RlQXQoMCk7cmV0dXJuIDMyPEYmJjEyNz5GJiYtMT09WzM0LDM1LDYwLDYyLDYzLDk2XS5pbmRleE9mKEYpP3Q6ZW5jb2RlVVJJQ29tcG9uZW50KHQpfWZ1bmN0aW9uIGQodCl7dmFyIEY9dC5jaGFyQ29kZUF0KDApO3JldHVybiAzMjxGJiYxMjc+RiYmLTE9PVszNCwzNSw2MCw2Miw5Nl0uaW5kZXhPZihGKT90OmVuY29kZVVSSUNvbXBvbmVudCh0KX1mdW5jdGlvbiBlKHQsRixFKXtmdW5jdGlvbiBNKGZhKXtzYS5wdXNoKGZhKX12YXIgeT1GfHxcInNjaGVtZSBzdGFydFwiLFc9MCx3PVwiXCIsdGE9ITEsaGE9ITEsc2E9W107YTpmb3IoOyh2b2lkIDAhPXRbVy0xXXx8MD09VykmJiF0aGlzLm07KXt2YXIgbj10W1ddO3N3aXRjaCh5KXtjYXNlIFwic2NoZW1lIHN0YXJ0XCI6aWYobiYmcS50ZXN0KG4pKXcrPVxubi50b0xvd2VyQ2FzZSgpLHk9XCJzY2hlbWVcIjtlbHNlIGlmKEYpe00oXCJJbnZhbGlkIHNjaGVtZS5cIik7YnJlYWsgYX1lbHNle3c9XCJcIjt5PVwibm8gc2NoZW1lXCI7Y29udGludWV9YnJlYWs7Y2FzZSBcInNjaGVtZVwiOmlmKG4mJkgudGVzdChuKSl3Kz1uLnRvTG93ZXJDYXNlKCk7ZWxzZSBpZihcIjpcIj09bil7dGhpcy5sPXc7dz1cIlwiO2lmKEYpYnJlYWsgYTt2b2lkIDAhPT1sW3RoaXMubF0mJih0aGlzLkc9ITApO3k9XCJmaWxlXCI9PXRoaXMubD9cInJlbGF0aXZlXCI6dGhpcy5HJiZFJiZFLmw9PXRoaXMubD9cInJlbGF0aXZlIG9yIGF1dGhvcml0eVwiOnRoaXMuRz9cImF1dGhvcml0eSBmaXJzdCBzbGFzaFwiOlwic2NoZW1lIGRhdGFcIn1lbHNlIGlmKEYpe3ZvaWQgMCE9biYmTShcIkNvZGUgcG9pbnQgbm90IGFsbG93ZWQgaW4gc2NoZW1lOiBcIituKTticmVhayBhfWVsc2V7dz1cIlwiO1c9MDt5PVwibm8gc2NoZW1lXCI7Y29udGludWV9YnJlYWs7Y2FzZSBcInNjaGVtZSBkYXRhXCI6XCI/XCI9PW4/KHRoaXMuQT1cIj9cIixcbnk9XCJxdWVyeVwiKTpcIiNcIj09bj8odGhpcy5DPVwiI1wiLHk9XCJmcmFnbWVudFwiKTp2b2lkIDAhPW4mJlwiXFx0XCIhPW4mJlwiXFxuXCIhPW4mJlwiXFxyXCIhPW4mJih0aGlzLnZhKz1jKG4pKTticmVhaztjYXNlIFwibm8gc2NoZW1lXCI6aWYoRSYmdm9pZCAwIT09bFtFLmxdKXt5PVwicmVsYXRpdmVcIjtjb250aW51ZX1lbHNlIE0oXCJNaXNzaW5nIHNjaGVtZS5cIiksZi5jYWxsKHRoaXMpLHRoaXMubT0hMDticmVhaztjYXNlIFwicmVsYXRpdmUgb3IgYXV0aG9yaXR5XCI6aWYoXCIvXCI9PW4mJlwiL1wiPT10W1crMV0peT1cImF1dGhvcml0eSBpZ25vcmUgc2xhc2hlc1wiO2Vsc2V7TShcIkV4cGVjdGVkIC8sIGdvdDogXCIrbik7eT1cInJlbGF0aXZlXCI7Y29udGludWV9YnJlYWs7Y2FzZSBcInJlbGF0aXZlXCI6dGhpcy5HPSEwO1wiZmlsZVwiIT10aGlzLmwmJih0aGlzLmw9RS5sKTtpZih2b2lkIDA9PW4pe3RoaXMubz1FLm87dGhpcy52PUUudjt0aGlzLnM9RS5zLnNsaWNlKCk7dGhpcy5BPUUuQTt0aGlzLkI9RS5CO3RoaXMuaj1FLmo7XG5icmVhayBhfWVsc2UgaWYoXCIvXCI9PW58fFwiXFxcXFwiPT1uKVwiXFxcXFwiPT1uJiZNKFwiXFxcXCBpcyBhbiBpbnZhbGlkIGNvZGUgcG9pbnQuXCIpLHk9XCJyZWxhdGl2ZSBzbGFzaFwiO2Vsc2UgaWYoXCI/XCI9PW4pdGhpcy5vPUUubyx0aGlzLnY9RS52LHRoaXMucz1FLnMuc2xpY2UoKSx0aGlzLkE9XCI/XCIsdGhpcy5CPUUuQix0aGlzLmo9RS5qLHk9XCJxdWVyeVwiO2Vsc2UgaWYoXCIjXCI9PW4pdGhpcy5vPUUubyx0aGlzLnY9RS52LHRoaXMucz1FLnMuc2xpY2UoKSx0aGlzLkE9RS5BLHRoaXMuQz1cIiNcIix0aGlzLkI9RS5CLHRoaXMuaj1FLmoseT1cImZyYWdtZW50XCI7ZWxzZXt5PXRbVysxXTt2YXIgSj10W1crMl07aWYoXCJmaWxlXCIhPXRoaXMubHx8IXEudGVzdChuKXx8XCI6XCIhPXkmJlwifFwiIT15fHx2b2lkIDAhPUomJlwiL1wiIT1KJiZcIlxcXFxcIiE9SiYmXCI/XCIhPUomJlwiI1wiIT1KKXRoaXMubz1FLm8sdGhpcy52PUUudix0aGlzLkI9RS5CLHRoaXMuaj1FLmosdGhpcy5zPUUucy5zbGljZSgpLHRoaXMucy5wb3AoKTt5PVxuXCJyZWxhdGl2ZSBwYXRoXCI7Y29udGludWV9YnJlYWs7Y2FzZSBcInJlbGF0aXZlIHNsYXNoXCI6aWYoXCIvXCI9PW58fFwiXFxcXFwiPT1uKVwiXFxcXFwiPT1uJiZNKFwiXFxcXCBpcyBhbiBpbnZhbGlkIGNvZGUgcG9pbnQuXCIpLHk9XCJmaWxlXCI9PXRoaXMubD9cImZpbGUgaG9zdFwiOlwiYXV0aG9yaXR5IGlnbm9yZSBzbGFzaGVzXCI7ZWxzZXtcImZpbGVcIiE9dGhpcy5sJiYodGhpcy5vPUUubyx0aGlzLnY9RS52LHRoaXMuQj1FLkIsdGhpcy5qPUUuaik7eT1cInJlbGF0aXZlIHBhdGhcIjtjb250aW51ZX1icmVhaztjYXNlIFwiYXV0aG9yaXR5IGZpcnN0IHNsYXNoXCI6aWYoXCIvXCI9PW4peT1cImF1dGhvcml0eSBzZWNvbmQgc2xhc2hcIjtlbHNle00oXCJFeHBlY3RlZCAnLycsIGdvdDogXCIrbik7eT1cImF1dGhvcml0eSBpZ25vcmUgc2xhc2hlc1wiO2NvbnRpbnVlfWJyZWFrO2Nhc2UgXCJhdXRob3JpdHkgc2Vjb25kIHNsYXNoXCI6eT1cImF1dGhvcml0eSBpZ25vcmUgc2xhc2hlc1wiO2lmKFwiL1wiIT1uKXtNKFwiRXhwZWN0ZWQgJy8nLCBnb3Q6IFwiK1xubik7Y29udGludWV9YnJlYWs7Y2FzZSBcImF1dGhvcml0eSBpZ25vcmUgc2xhc2hlc1wiOmlmKFwiL1wiIT1uJiZcIlxcXFxcIiE9bil7eT1cImF1dGhvcml0eVwiO2NvbnRpbnVlfWVsc2UgTShcIkV4cGVjdGVkIGF1dGhvcml0eSwgZ290OiBcIituKTticmVhaztjYXNlIFwiYXV0aG9yaXR5XCI6aWYoXCJAXCI9PW4pe3RhJiYoTShcIkAgYWxyZWFkeSBzZWVuLlwiKSx3Kz1cIiU0MFwiKTt0YT0hMDtmb3Iobj0wO248dy5sZW5ndGg7bisrKUo9d1tuXSxcIlxcdFwiPT1KfHxcIlxcblwiPT1KfHxcIlxcclwiPT1KP00oXCJJbnZhbGlkIHdoaXRlc3BhY2UgaW4gYXV0aG9yaXR5LlwiKTpcIjpcIj09SiYmbnVsbD09PXRoaXMuaj90aGlzLmo9XCJcIjooSj1jKEopLG51bGwhPT10aGlzLmo/dGhpcy5qKz1KOnRoaXMuQis9Sik7dz1cIlwifWVsc2UgaWYodm9pZCAwPT1ufHxcIi9cIj09bnx8XCJcXFxcXCI9PW58fFwiP1wiPT1ufHxcIiNcIj09bil7Vy09dy5sZW5ndGg7dz1cIlwiO3k9XCJob3N0XCI7Y29udGludWV9ZWxzZSB3Kz1uO2JyZWFrO2Nhc2UgXCJmaWxlIGhvc3RcIjppZih2b2lkIDA9PVxubnx8XCIvXCI9PW58fFwiXFxcXFwiPT1ufHxcIj9cIj09bnx8XCIjXCI9PW4pezIhPXcubGVuZ3RofHwhcS50ZXN0KHdbMF0pfHxcIjpcIiE9d1sxXSYmXCJ8XCIhPXdbMV0/KDAhPXcubGVuZ3RoJiYodGhpcy5vPWIuY2FsbCh0aGlzLHcpLHc9XCJcIikseT1cInJlbGF0aXZlIHBhdGggc3RhcnRcIik6eT1cInJlbGF0aXZlIHBhdGhcIjtjb250aW51ZX1lbHNlXCJcXHRcIj09bnx8XCJcXG5cIj09bnx8XCJcXHJcIj09bj9NKFwiSW52YWxpZCB3aGl0ZXNwYWNlIGluIGZpbGUgaG9zdC5cIik6dys9bjticmVhaztjYXNlIFwiaG9zdFwiOmNhc2UgXCJob3N0bmFtZVwiOmlmKFwiOlwiIT1ufHxoYSlpZih2b2lkIDA9PW58fFwiL1wiPT1ufHxcIlxcXFxcIj09bnx8XCI/XCI9PW58fFwiI1wiPT1uKXt0aGlzLm89Yi5jYWxsKHRoaXMsdyk7dz1cIlwiO3k9XCJyZWxhdGl2ZSBwYXRoIHN0YXJ0XCI7aWYoRilicmVhayBhO2NvbnRpbnVlfWVsc2VcIlxcdFwiIT1uJiZcIlxcblwiIT1uJiZcIlxcclwiIT1uPyhcIltcIj09bj9oYT0hMDpcIl1cIj09biYmKGhhPSExKSx3Kz1uKTpNKFwiSW52YWxpZCBjb2RlIHBvaW50IGluIGhvc3QvaG9zdG5hbWU6IFwiK1xubik7ZWxzZSBpZih0aGlzLm89Yi5jYWxsKHRoaXMsdyksdz1cIlwiLHk9XCJwb3J0XCIsXCJob3N0bmFtZVwiPT1GKWJyZWFrIGE7YnJlYWs7Y2FzZSBcInBvcnRcIjppZigvWzAtOV0vLnRlc3Qobikpdys9bjtlbHNlIGlmKHZvaWQgMD09bnx8XCIvXCI9PW58fFwiXFxcXFwiPT1ufHxcIj9cIj09bnx8XCIjXCI9PW58fEYpe1wiXCIhPXcmJih3PXBhcnNlSW50KHcsMTApLHchPWxbdGhpcy5sXSYmKHRoaXMudj13K1wiXCIpLHc9XCJcIik7aWYoRilicmVhayBhO3k9XCJyZWxhdGl2ZSBwYXRoIHN0YXJ0XCI7Y29udGludWV9ZWxzZVwiXFx0XCI9PW58fFwiXFxuXCI9PW58fFwiXFxyXCI9PW4/TShcIkludmFsaWQgY29kZSBwb2ludCBpbiBwb3J0OiBcIituKTooZi5jYWxsKHRoaXMpLHRoaXMubT0hMCk7YnJlYWs7Y2FzZSBcInJlbGF0aXZlIHBhdGggc3RhcnRcIjpcIlxcXFxcIj09biYmTShcIidcXFxcJyBub3QgYWxsb3dlZCBpbiBwYXRoLlwiKTt5PVwicmVsYXRpdmUgcGF0aFwiO2lmKFwiL1wiIT1uJiZcIlxcXFxcIiE9biljb250aW51ZTticmVhaztjYXNlIFwicmVsYXRpdmUgcGF0aFwiOmlmKHZvaWQgMCE9XG5uJiZcIi9cIiE9biYmXCJcXFxcXCIhPW4mJihGfHxcIj9cIiE9biYmXCIjXCIhPW4pKVwiXFx0XCIhPW4mJlwiXFxuXCIhPW4mJlwiXFxyXCIhPW4mJih3Kz1jKG4pKTtlbHNle1wiXFxcXFwiPT1uJiZNKFwiXFxcXCBub3QgYWxsb3dlZCBpbiByZWxhdGl2ZSBwYXRoLlwiKTtpZihKPW1bdy50b0xvd2VyQ2FzZSgpXSl3PUo7XCIuLlwiPT13Pyh0aGlzLnMucG9wKCksXCIvXCIhPW4mJlwiXFxcXFwiIT1uJiZ0aGlzLnMucHVzaChcIlwiKSk6XCIuXCI9PXcmJlwiL1wiIT1uJiZcIlxcXFxcIiE9bj90aGlzLnMucHVzaChcIlwiKTpcIi5cIiE9dyYmKFwiZmlsZVwiPT10aGlzLmwmJjA9PXRoaXMucy5sZW5ndGgmJjI9PXcubGVuZ3RoJiZxLnRlc3Qod1swXSkmJlwifFwiPT13WzFdJiYodz13WzBdK1wiOlwiKSx0aGlzLnMucHVzaCh3KSk7dz1cIlwiO1wiP1wiPT1uPyh0aGlzLkE9XCI/XCIseT1cInF1ZXJ5XCIpOlwiI1wiPT1uJiYodGhpcy5DPVwiI1wiLHk9XCJmcmFnbWVudFwiKX1icmVhaztjYXNlIFwicXVlcnlcIjpGfHxcIiNcIiE9bj92b2lkIDAhPW4mJlwiXFx0XCIhPW4mJlwiXFxuXCIhPW4mJlwiXFxyXCIhPW4mJih0aGlzLkErPVxuZChuKSk6KHRoaXMuQz1cIiNcIix5PVwiZnJhZ21lbnRcIik7YnJlYWs7Y2FzZSBcImZyYWdtZW50XCI6dm9pZCAwIT1uJiZcIlxcdFwiIT1uJiZcIlxcblwiIT1uJiZcIlxcclwiIT1uJiYodGhpcy5DKz1uKX1XKyt9fWZ1bmN0aW9uIGYoKXt0aGlzLkI9dGhpcy52YT10aGlzLmw9XCJcIjt0aGlzLmo9bnVsbDt0aGlzLnY9dGhpcy5vPVwiXCI7dGhpcy5zPVtdO3RoaXMuQz10aGlzLkE9XCJcIjt0aGlzLkc9dGhpcy5tPSExfWZ1bmN0aW9uIGcodCxGKXt2b2lkIDA9PT1GfHxGIGluc3RhbmNlb2YgZ3x8KEY9bmV3IGcoU3RyaW5nKEYpKSk7dGhpcy5nPXQ7Zi5jYWxsKHRoaXMpO2UuY2FsbCh0aGlzLHRoaXMuZy5yZXBsYWNlKC9eWyBcXHRcXHJcXG5cXGZdK3xbIFxcdFxcclxcblxcZl0rJC9nLFwiXCIpLG51bGwsRil9dmFyIGg9ITE7dHJ5e3ZhciBrPW5ldyBVUkwoXCJiXCIsXCJodHRwOi8vYVwiKTtrLnBhdGhuYW1lPVwiYyUyMGRcIjtoPVwiaHR0cDovL2EvYyUyMGRcIj09PWsuaHJlZn1jYXRjaCh0KXt9aWYoIWgpe3ZhciBsPU9iamVjdC5jcmVhdGUobnVsbCk7XG5sLmZ0cD0yMTtsLmZpbGU9MDtsLmdvcGhlcj03MDtsLmh0dHA9ODA7bC5odHRwcz00NDM7bC53cz04MDtsLndzcz00NDM7dmFyIG09T2JqZWN0LmNyZWF0ZShudWxsKTttW1wiJTJlXCJdPVwiLlwiO21bXCIuJTJlXCJdPVwiLi5cIjttW1wiJTJlLlwiXT1cIi4uXCI7bVtcIiUyZSUyZVwiXT1cIi4uXCI7dmFyIHE9L1thLXpBLVpdLyxIPS9bYS16QS1aMC05K1xcLS5dLztnLnByb3RvdHlwZT17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ocmVmfSxnZXQgaHJlZigpe2lmKHRoaXMubSlyZXR1cm4gdGhpcy5nO3ZhciB0PVwiXCI7aWYoXCJcIiE9dGhpcy5CfHxudWxsIT10aGlzLmopdD10aGlzLkIrKG51bGwhPXRoaXMuaj9cIjpcIit0aGlzLmo6XCJcIikrXCJAXCI7cmV0dXJuIHRoaXMucHJvdG9jb2wrKHRoaXMuRz9cIi8vXCIrdCt0aGlzLmhvc3Q6XCJcIikrdGhpcy5wYXRobmFtZSt0aGlzLkErdGhpcy5DfSxzZXQgaHJlZih0KXtmLmNhbGwodGhpcyk7ZS5jYWxsKHRoaXMsdCl9LGdldCBwcm90b2NvbCgpe3JldHVybiB0aGlzLmwrXG5cIjpcIn0sc2V0IHByb3RvY29sKHQpe3RoaXMubXx8ZS5jYWxsKHRoaXMsdCtcIjpcIixcInNjaGVtZSBzdGFydFwiKX0sZ2V0IGhvc3QoKXtyZXR1cm4gdGhpcy5tP1wiXCI6dGhpcy52P3RoaXMubytcIjpcIit0aGlzLnY6dGhpcy5vfSxzZXQgaG9zdCh0KXshdGhpcy5tJiZ0aGlzLkcmJmUuY2FsbCh0aGlzLHQsXCJob3N0XCIpfSxnZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5vfSxzZXQgaG9zdG5hbWUodCl7IXRoaXMubSYmdGhpcy5HJiZlLmNhbGwodGhpcyx0LFwiaG9zdG5hbWVcIil9LGdldCBwb3J0KCl7cmV0dXJuIHRoaXMudn0sc2V0IHBvcnQodCl7IXRoaXMubSYmdGhpcy5HJiZlLmNhbGwodGhpcyx0LFwicG9ydFwiKX0sZ2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubT9cIlwiOnRoaXMuRz9cIi9cIit0aGlzLnMuam9pbihcIi9cIik6dGhpcy52YX0sc2V0IHBhdGhuYW1lKHQpeyF0aGlzLm0mJnRoaXMuRyYmKHRoaXMucz1bXSxlLmNhbGwodGhpcyx0LFwicmVsYXRpdmUgcGF0aCBzdGFydFwiKSl9LGdldCBzZWFyY2goKXtyZXR1cm4gdGhpcy5tfHxcbiF0aGlzLkF8fFwiP1wiPT10aGlzLkE/XCJcIjp0aGlzLkF9LHNldCBzZWFyY2godCl7IXRoaXMubSYmdGhpcy5HJiYodGhpcy5BPVwiP1wiLFwiP1wiPT10WzBdJiYodD10LnNsaWNlKDEpKSxlLmNhbGwodGhpcyx0LFwicXVlcnlcIikpfSxnZXQgaGFzaCgpe3JldHVybiB0aGlzLm18fCF0aGlzLkN8fFwiI1wiPT10aGlzLkM/XCJcIjp0aGlzLkN9LHNldCBoYXNoKHQpe3RoaXMubXx8KHQ/KHRoaXMuQz1cIiNcIixcIiNcIj09dFswXSYmKHQ9dC5zbGljZSgxKSksZS5jYWxsKHRoaXMsdCxcImZyYWdtZW50XCIpKTp0aGlzLkM9XCJcIil9LGdldCBvcmlnaW4oKXt2YXIgdDtpZih0aGlzLm18fCF0aGlzLmwpcmV0dXJuXCJcIjtzd2l0Y2godGhpcy5sKXtjYXNlIFwiZGF0YVwiOmNhc2UgXCJmaWxlXCI6Y2FzZSBcImphdmFzY3JpcHRcIjpjYXNlIFwibWFpbHRvXCI6cmV0dXJuXCJudWxsXCJ9cmV0dXJuKHQ9dGhpcy5ob3N0KT90aGlzLmwrXCI6Ly9cIit0OlwiXCJ9fTt2YXIgQz1hLlVSTDtDJiYoZy5jcmVhdGVPYmplY3RVUkw9ZnVuY3Rpb24odCl7cmV0dXJuIEMuY3JlYXRlT2JqZWN0VVJMLmFwcGx5KEMsXG5hcmd1bWVudHMpfSxnLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbih0KXtDLnJldm9rZU9iamVjdFVSTCh0KX0pO2EuVVJMPWd9fSkod2luZG93KTsvKlxuXG5Db3B5cmlnaHQgKGMpIDIwMTggVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dFxuQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbnN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xudmFyIGhqPXdpbmRvdy5jdXN0b21FbGVtZW50cyxpaj0hMSxqaj1udWxsO2hqLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2smJmhqLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2soZnVuY3Rpb24oYSl7amo9YTtpaiYmYSgpfSk7ZnVuY3Rpb24ga2ooKXt3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudC5ib290c3RyYXAmJndpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50LmJvb3RzdHJhcCh3aW5kb3cuZG9jdW1lbnQpO2pqJiZqaigpO2lqPSEwO3dpbmRvdy5XZWJDb21wb25lbnRzLnJlYWR5PSEwO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KFwiV2ViQ29tcG9uZW50c1JlYWR5XCIse2J1YmJsZXM6ITB9KSl9XG5cImNvbXBsZXRlXCIhPT1kb2N1bWVudC5yZWFkeVN0YXRlPyh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixraiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImxvYWRcIixraik7a2ooKX0pKTpraigpO30pLmNhbGwodGhpcyk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXdlYmNvbXBvbmVudHMtYnVuZGxlLmpzLm1hcFxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHRcbiAqIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG4gKiBUaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHRcbiAqIENvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvXG4gKiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuICovXG5cbihmdW5jdGlvbiAoKSB7XG4gICd1c2Ugc3RyaWN0JztcblxuICAvKipcbiAgICogQmFzaWMgZmxvdyBvZiB0aGUgbG9hZGVyIHByb2Nlc3NcbiAgICpcbiAgICogVGhlcmUgYXJlIDQgZmxvd3MgdGhlIGxvYWRlciBjYW4gdGFrZSB3aGVuIGJvb3RpbmcgdXBcbiAgICpcbiAgICogLSBTeW5jaHJvbm91cyBzY3JpcHQsIG5vIHBvbHlmaWxscyBuZWVkZWRcbiAgICogICAtIHdhaXQgZm9yIGBET01Db250ZW50TG9hZGVkYFxuICAgKiAgIC0gZmlyZSBXQ1IgZXZlbnQsIGFzIHRoZXJlIGNvdWxkIG5vdCBiZSBhbnkgY2FsbGJhY2tzIHBhc3NlZCB0byBgd2FpdEZvcmBcbiAgICpcbiAgICogLSBTeW5jaHJvbm91cyBzY3JpcHQsIHBvbHlmaWxscyBuZWVkZWRcbiAgICogICAtIGRvY3VtZW50LndyaXRlIHRoZSBwb2x5ZmlsbCBidW5kbGVcbiAgICogICAtIHdhaXQgb24gdGhlIGBsb2FkYCBldmVudCBvZiB0aGUgYnVuZGxlIHRvIGJhdGNoIEN1c3RvbSBFbGVtZW50IHVwZ3JhZGVzXG4gICAqICAgLSB3YWl0IGZvciBgRE9NQ29udGVudExvYWRlZGBcbiAgICogICAtIHJ1biBjYWxsYmFja3MgcGFzc2VkIHRvIGB3YWl0Rm9yYFxuICAgKiAgIC0gZmlyZSBXQ1IgZXZlbnRcbiAgICpcbiAgICogLSBBc3luY2hyb25vdXMgc2NyaXB0LCBubyBwb2x5ZmlsbHMgbmVlZGVkXG4gICAqICAgLSB3YWl0IGZvciBgRE9NQ29udGVudExvYWRlZGBcbiAgICogICAtIHJ1biBjYWxsYmFja3MgcGFzc2VkIHRvIGB3YWl0Rm9yYFxuICAgKiAgIC0gZmlyZSBXQ1IgZXZlbnRcbiAgICpcbiAgICogLSBBc3luY2hyb25vdXMgc2NyaXB0LCBwb2x5ZmlsbHMgbmVlZGVkXG4gICAqICAgLSBBcHBlbmQgdGhlIHBvbHlmaWxsIGJ1bmRsZSBzY3JpcHRcbiAgICogICAtIHdhaXQgZm9yIGBsb2FkYCBldmVudCBvZiB0aGUgYnVuZGxlXG4gICAqICAgLSBiYXRjaCBDdXN0b20gRWxlbWVudCBVcGdyYWRlc1xuICAgKiAgIC0gcnVuIGNhbGxiYWNrcyBwYXNzIHRvIGB3YWl0Rm9yYFxuICAgKiAgIC0gZmlyZSBXQ1IgZXZlbnRcbiAgICovXG5cbiAgdmFyIHBvbHlmaWxsc0xvYWRlZCA9IGZhbHNlO1xuICB2YXIgd2hlbkxvYWRlZEZucyA9IFtdO1xuICB2YXIgYWxsb3dVcGdyYWRlcyA9IGZhbHNlO1xuICB2YXIgZmx1c2hGbjtcblxuICBmdW5jdGlvbiBmaXJlRXZlbnQoKSB7XG4gICAgd2luZG93LldlYkNvbXBvbmVudHMucmVhZHkgPSB0cnVlO1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQoJ1dlYkNvbXBvbmVudHNSZWFkeScsIHtidWJibGVzOiB0cnVlfSlcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gYmF0Y2hDdXN0b21FbGVtZW50cygpIHtcbiAgICBpZiAod2luZG93LmN1c3RvbUVsZW1lbnRzICYmIGN1c3RvbUVsZW1lbnRzLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2spIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2soZnVuY3Rpb24gKGZsdXNoQ2FsbGJhY2spIHtcbiAgICAgICAgZmx1c2hGbiA9IGZsdXNoQ2FsbGJhY2s7XG4gICAgICAgIGlmIChhbGxvd1VwZ3JhZGVzKSB7XG4gICAgICAgICAgZmx1c2hGbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBhc3luY1JlYWR5KCkge1xuICAgIGJhdGNoQ3VzdG9tRWxlbWVudHMoKTtcbiAgICByZWFkeSgpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVhZHkoKSB7XG4gICAgLy8gYm9vdHN0cmFwIDx0ZW1wbGF0ZT4gZWxlbWVudHMgYmVmb3JlIGN1c3RvbSBlbGVtZW50c1xuICAgIGlmICh3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudCAmJiBIVE1MVGVtcGxhdGVFbGVtZW50LmJvb3RzdHJhcCkge1xuICAgICAgSFRNTFRlbXBsYXRlRWxlbWVudC5ib290c3RyYXAod2luZG93LmRvY3VtZW50KTtcbiAgICB9XG4gICAgcG9seWZpbGxzTG9hZGVkID0gdHJ1ZTtcbiAgICBydW5XaGVuTG9hZGVkRm5zKCkudGhlbihmaXJlRXZlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gcnVuV2hlbkxvYWRlZEZucygpIHtcbiAgICBhbGxvd1VwZ3JhZGVzID0gZmFsc2U7XG4gICAgdmFyIGZuc01hcCA9IHdoZW5Mb2FkZWRGbnMubWFwKGZ1bmN0aW9uIChmbikge1xuICAgICAgcmV0dXJuIGZuIGluc3RhbmNlb2YgRnVuY3Rpb24gPyBmbigpIDogZm47XG4gICAgfSk7XG4gICAgd2hlbkxvYWRlZEZucyA9IFtdO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChmbnNNYXApXG4gICAgICAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGFsbG93VXBncmFkZXMgPSB0cnVlO1xuICAgICAgICBmbHVzaEZuICYmIGZsdXNoRm4oKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHdpbmRvdy5XZWJDb21wb25lbnRzID0gd2luZG93LldlYkNvbXBvbmVudHMgfHwge307XG4gIHdpbmRvdy5XZWJDb21wb25lbnRzLnJlYWR5ID0gd2luZG93LldlYkNvbXBvbmVudHMucmVhZHkgfHwgZmFsc2U7XG4gIHdpbmRvdy5XZWJDb21wb25lbnRzLndhaXRGb3IgPVxuICAgIHdpbmRvdy5XZWJDb21wb25lbnRzLndhaXRGb3IgfHxcbiAgICBmdW5jdGlvbiAod2FpdEZuKSB7XG4gICAgICBpZiAoIXdhaXRGbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB3aGVuTG9hZGVkRm5zLnB1c2god2FpdEZuKTtcbiAgICAgIGlmIChwb2x5ZmlsbHNMb2FkZWQpIHtcbiAgICAgICAgcnVuV2hlbkxvYWRlZEZucygpO1xuICAgICAgfVxuICAgIH07XG4gIHdpbmRvdy5XZWJDb21wb25lbnRzLl9iYXRjaEN1c3RvbUVsZW1lbnRzID0gYmF0Y2hDdXN0b21FbGVtZW50cztcblxuICB2YXIgbmFtZSA9ICd3ZWJjb21wb25lbnRzLWxvYWRlci5qcyc7XG4gIC8vIEZlYXR1cmUgZGV0ZWN0IHdoaWNoIHBvbHlmaWxsIG5lZWRzIHRvIGJlIGltcG9ydGVkLlxuICB2YXIgcG9seWZpbGxzID0gW107XG4gIGlmIChcbiAgICAhKFxuICAgICAgJ2F0dGFjaFNoYWRvdycgaW4gRWxlbWVudC5wcm90b3R5cGUgJiYgJ2dldFJvb3ROb2RlJyBpbiBFbGVtZW50LnByb3RvdHlwZVxuICAgICkgfHxcbiAgICAod2luZG93LlNoYWR5RE9NICYmIHdpbmRvdy5TaGFkeURPTS5mb3JjZSlcbiAgKSB7XG4gICAgcG9seWZpbGxzLnB1c2goJ3NkJyk7XG4gIH1cbiAgaWYgKCF3aW5kb3cuY3VzdG9tRWxlbWVudHMgfHwgd2luZG93LmN1c3RvbUVsZW1lbnRzLmZvcmNlUG9seWZpbGwpIHtcbiAgICBwb2x5ZmlsbHMucHVzaCgnY2UnKTtcbiAgfVxuXG4gIHZhciBuZWVkc1RlbXBsYXRlID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBubyByZWFsIDx0ZW1wbGF0ZT4gYmVjYXVzZSBubyBgY29udGVudGAgcHJvcGVydHkgKElFIGFuZCBvbGRlciBicm93c2VycylcbiAgICB2YXIgdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgaWYgKCEoJ2NvbnRlbnQnIGluIHQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gYnJva2VuIGRvYyBmcmFnbWVudCAob2xkZXIgRWRnZSlcbiAgICBpZiAoISh0LmNvbnRlbnQuY2xvbmVOb2RlKCkgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGJyb2tlbiA8dGVtcGxhdGU+IGNsb25pbmcgKEVkZ2UgdXAgdG8gYXQgbGVhc3QgdmVyc2lvbiAxNylcbiAgICB2YXIgdDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICAgIHQyLmNvbnRlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpO1xuICAgIHQuY29udGVudC5hcHBlbmRDaGlsZCh0Mik7XG4gICAgdmFyIGNsb25lID0gdC5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgcmV0dXJuIChcbiAgICAgIGNsb25lLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIGNsb25lLmNvbnRlbnQuZmlyc3RDaGlsZC5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSAwXG4gICAgKTtcbiAgfSkoKTtcblxuICAvLyBOT1RFOiBhbnkgYnJvd3NlciB0aGF0IGRvZXMgbm90IGhhdmUgdGVtcGxhdGUgb3IgRVM2IGZlYXR1cmVzXG4gIC8vIG11c3QgbG9hZCB0aGUgZnVsbCBzdWl0ZSBvZiBwb2x5ZmlsbHMuXG4gIGlmIChcbiAgICAhd2luZG93LlByb21pc2UgfHxcbiAgICAhQXJyYXkuZnJvbSB8fFxuICAgICF3aW5kb3cuVVJMIHx8XG4gICAgIXdpbmRvdy5TeW1ib2wgfHxcbiAgICBuZWVkc1RlbXBsYXRlXG4gICkge1xuICAgIHBvbHlmaWxscyA9IFsnc2QtY2UtcGYnXTtcbiAgfVxuXG4gIGlmIChwb2x5ZmlsbHMubGVuZ3RoKSB7XG4gICAgdmFyIHVybDtcbiAgICB2YXIgcG9seWZpbGxGaWxlID0gJ2J1bmRsZXMvd2ViY29tcG9uZW50cy0nICsgcG9seWZpbGxzLmpvaW4oJy0nKSArICcuanMnO1xuXG4gICAgLy8gTG9hZCBpdCBmcm9tIHRoZSByaWdodCBwbGFjZS5cbiAgICBpZiAod2luZG93LldlYkNvbXBvbmVudHMucm9vdCkge1xuICAgICAgdXJsID0gd2luZG93LldlYkNvbXBvbmVudHMucm9vdCArIHBvbHlmaWxsRmlsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMqPVwiJyArIG5hbWUgKyAnXCJdJyk7XG4gICAgICAvLyBMb2FkIGl0IGZyb20gdGhlIHJpZ2h0IHBsYWNlLlxuICAgICAgdXJsID0gc2NyaXB0LnNyYy5yZXBsYWNlKG5hbWUsIHBvbHlmaWxsRmlsZSk7XG4gICAgfVxuXG4gICAgdmFyIG5ld1NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIG5ld1NjcmlwdC5zcmMgPSB1cmw7XG4gICAgLy8gaWYgcmVhZHlTdGF0ZSBpcyAnbG9hZGluZycsIHRoaXMgc2NyaXB0IGlzIHN5bmNocm9ub3VzXG4gICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykge1xuICAgICAgLy8gbWFrZSBzdXJlIGN1c3RvbSBlbGVtZW50cyBhcmUgYmF0Y2hlZCB3aGVuZXZlciBwYXJzZXIgZ2V0cyB0byB0aGUgaW5qZWN0ZWQgc2NyaXB0XG4gICAgICBuZXdTY3JpcHQuc2V0QXR0cmlidXRlKFxuICAgICAgICAnb25sb2FkJyxcbiAgICAgICAgJ3dpbmRvdy5XZWJDb21wb25lbnRzLl9iYXRjaEN1c3RvbUVsZW1lbnRzKCknXG4gICAgICApO1xuICAgICAgZG9jdW1lbnQud3JpdGUobmV3U2NyaXB0Lm91dGVySFRNTCk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgcmVhZHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXN5bmNSZWFkeSgpO1xuICAgICAgfSk7XG4gICAgICBuZXdTY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGxvYWQgcG9seWZpbGwgYnVuZGxlJyArIHVybCk7XG4gICAgICB9KTtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobmV3U2NyaXB0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgcmVhZHlTdGF0ZSBpcyAnY29tcGxldGUnLCBzY3JpcHQgaXMgbG9hZGVkIGltcGVyYXRpdmVseSBvbiBhIHNwZWMtY29tcGxpYW50IGJyb3dzZXIsIHNvIGp1c3QgZmlyZSBXQ1JcbiAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgcG9seWZpbGxzTG9hZGVkID0gdHJ1ZTtcbiAgICAgIGZpcmVFdmVudCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0aGlzIHNjcmlwdCBtYXkgY29tZSBiZXR3ZWVuIERDTCBhbmQgbG9hZCwgc28gbGlzdGVuIGZvciBib3RoLCBhbmQgY2FuY2VsIGxvYWQgbGlzdGVuZXIgaWYgRENMIGZpcmVzXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJlYWR5KTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJlYWR5KTtcbiAgICAgICAgcmVhZHkoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufSkoKTtcbiIsIi8qXG4gKiBJbnRlcm5hdGlvbmFsIFRlbGVwaG9uZSBJbnB1dCB2MTYuMS4wXG4gKiBodHRwczovL2dpdGh1Yi5jb20vamFja29jbnIvaW50bC10ZWwtaW5wdXQuZ2l0XG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqL1xuXG4vLyB3cmFwIGluIFVNRFxuKGZ1bmN0aW9uKGZhY3RvcnkpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiAmJiBtb2R1bGUuZXhwb3J0cykgbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7IGVsc2Ugd2luZG93LmludGxUZWxJbnB1dCA9IGZhY3RvcnkoKTtcbn0pKGZ1bmN0aW9uKHVuZGVmaW5lZCkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgLy8gQXJyYXkgb2YgY291bnRyeSBvYmplY3RzIGZvciB0aGUgZmxhZyBkcm9wZG93bi5cbiAgICAgICAgLy8gSGVyZSBpcyB0aGUgY3JpdGVyaWEgZm9yIHRoZSBwbHVnaW4gdG8gc3VwcG9ydCBhIGdpdmVuIGNvdW50cnkvdGVycml0b3J5XG4gICAgICAgIC8vIC0gSXQgaGFzIGFuIGlzbzIgY29kZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzMxNjYtMV9hbHBoYS0yXG4gICAgICAgIC8vIC0gSXQgaGFzIGl0J3Mgb3duIGNvdW50cnkgY2FsbGluZyBjb2RlIChpdCBpcyBub3QgYSBzdWItcmVnaW9uIG9mIGFub3RoZXIgY291bnRyeSk6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xpc3Rfb2ZfY291bnRyeV9jYWxsaW5nX2NvZGVzXG4gICAgICAgIC8vIC0gSXQgaGFzIGEgZmxhZyBpbiB0aGUgcmVnaW9uLWZsYWdzIHByb2plY3Q6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZWhkYWQvcmVnaW9uLWZsYWdzL3RyZWUvZ2gtcGFnZXMvcG5nXG4gICAgICAgIC8vIC0gSXQgaXMgc3VwcG9ydGVkIGJ5IGxpYnBob25lbnVtYmVyIChpdCBtdXN0IGJlIGxpc3RlZCBvbiB0aGlzIHBhZ2UpOiBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlaTE4bi9saWJwaG9uZW51bWJlci9ibG9iL21hc3Rlci9yZXNvdXJjZXMvU2hvcnROdW1iZXJNZXRhZGF0YS54bWxcbiAgICAgICAgLy8gRWFjaCBjb3VudHJ5IGFycmF5IGhhcyB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOlxuICAgICAgICAvLyBbXG4gICAgICAgIC8vICAgIENvdW50cnkgbmFtZSxcbiAgICAgICAgLy8gICAgaXNvMiBjb2RlLFxuICAgICAgICAvLyAgICBJbnRlcm5hdGlvbmFsIGRpYWwgY29kZSxcbiAgICAgICAgLy8gICAgT3JkZXIgKGlmID4xIGNvdW50cnkgd2l0aCBzYW1lIGRpYWwgY29kZSksXG4gICAgICAgIC8vICAgIEFyZWEgY29kZXNcbiAgICAgICAgLy8gXVxuICAgICAgICB2YXIgYWxsQ291bnRyaWVzID0gWyBbIFwiQWZnaGFuaXN0YW4gKOKAq9in2YHYutin2YbYs9iq2KfZhuKArOKAjilcIiwgXCJhZlwiLCBcIjkzXCIgXSwgWyBcIkFsYmFuaWEgKFNocWlww6tyaSlcIiwgXCJhbFwiLCBcIjM1NVwiIF0sIFsgXCJBbGdlcmlhICjigKvYp9mE2KzYstin2KbYseKArOKAjilcIiwgXCJkelwiLCBcIjIxM1wiIF0sIFsgXCJBbWVyaWNhbiBTYW1vYVwiLCBcImFzXCIsIFwiMVwiLCA1LCBbIFwiNjg0XCIgXSBdLCBbIFwiQW5kb3JyYVwiLCBcImFkXCIsIFwiMzc2XCIgXSwgWyBcIkFuZ29sYVwiLCBcImFvXCIsIFwiMjQ0XCIgXSwgWyBcIkFuZ3VpbGxhXCIsIFwiYWlcIiwgXCIxXCIsIDYsIFsgXCIyNjRcIiBdIF0sIFsgXCJBbnRpZ3VhIGFuZCBCYXJidWRhXCIsIFwiYWdcIiwgXCIxXCIsIDcsIFsgXCIyNjhcIiBdIF0sIFsgXCJBcmdlbnRpbmFcIiwgXCJhclwiLCBcIjU0XCIgXSwgWyBcIkFybWVuaWEgKNWA1aHVtdWh1b3Vv9Wh1bYpXCIsIFwiYW1cIiwgXCIzNzRcIiBdLCBbIFwiQXJ1YmFcIiwgXCJhd1wiLCBcIjI5N1wiIF0sIFsgXCJBdXN0cmFsaWFcIiwgXCJhdVwiLCBcIjYxXCIsIDAgXSwgWyBcIkF1c3RyaWEgKMOWc3RlcnJlaWNoKVwiLCBcImF0XCIsIFwiNDNcIiBdLCBbIFwiQXplcmJhaWphbiAoQXrJmXJiYXljYW4pXCIsIFwiYXpcIiwgXCI5OTRcIiBdLCBbIFwiQmFoYW1hc1wiLCBcImJzXCIsIFwiMVwiLCA4LCBbIFwiMjQyXCIgXSBdLCBbIFwiQmFocmFpbiAo4oCr2KfZhNio2K3YsdmK2YbigKzigI4pXCIsIFwiYmhcIiwgXCI5NzNcIiBdLCBbIFwiQmFuZ2xhZGVzaCAo4Kas4Ka+4KaC4Kay4Ka+4Kam4KeH4Ka2KVwiLCBcImJkXCIsIFwiODgwXCIgXSwgWyBcIkJhcmJhZG9zXCIsIFwiYmJcIiwgXCIxXCIsIDksIFsgXCIyNDZcIiBdIF0sIFsgXCJCZWxhcnVzICjQkdC10LvQsNGA0YPRgdGMKVwiLCBcImJ5XCIsIFwiMzc1XCIgXSwgWyBcIkJlbGdpdW0gKEJlbGdpw6spXCIsIFwiYmVcIiwgXCIzMlwiIF0sIFsgXCJCZWxpemVcIiwgXCJielwiLCBcIjUwMVwiIF0sIFsgXCJCZW5pbiAoQsOpbmluKVwiLCBcImJqXCIsIFwiMjI5XCIgXSwgWyBcIkJlcm11ZGFcIiwgXCJibVwiLCBcIjFcIiwgMTAsIFsgXCI0NDFcIiBdIF0sIFsgXCJCaHV0YW4gKOC9oOC9luC+suC9tOC9gilcIiwgXCJidFwiLCBcIjk3NVwiIF0sIFsgXCJCb2xpdmlhXCIsIFwiYm9cIiwgXCI1OTFcIiBdLCBbIFwiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSAo0JHQvtGB0L3QsCDQuCDQpdC10YDRhtC10LPQvtCy0LjQvdCwKVwiLCBcImJhXCIsIFwiMzg3XCIgXSwgWyBcIkJvdHN3YW5hXCIsIFwiYndcIiwgXCIyNjdcIiBdLCBbIFwiQnJhemlsIChCcmFzaWwpXCIsIFwiYnJcIiwgXCI1NVwiIF0sIFsgXCJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnlcIiwgXCJpb1wiLCBcIjI0NlwiIF0sIFsgXCJCcml0aXNoIFZpcmdpbiBJc2xhbmRzXCIsIFwidmdcIiwgXCIxXCIsIDExLCBbIFwiMjg0XCIgXSBdLCBbIFwiQnJ1bmVpXCIsIFwiYm5cIiwgXCI2NzNcIiBdLCBbIFwiQnVsZ2FyaWEgKNCR0YrQu9Cz0LDRgNC40Y8pXCIsIFwiYmdcIiwgXCIzNTlcIiBdLCBbIFwiQnVya2luYSBGYXNvXCIsIFwiYmZcIiwgXCIyMjZcIiBdLCBbIFwiQnVydW5kaSAoVWJ1cnVuZGkpXCIsIFwiYmlcIiwgXCIyNTdcIiBdLCBbIFwiQ2FtYm9kaWEgKOGegOGemOGfkuGeluGeu+Geh+GetilcIiwgXCJraFwiLCBcIjg1NVwiIF0sIFsgXCJDYW1lcm9vbiAoQ2FtZXJvdW4pXCIsIFwiY21cIiwgXCIyMzdcIiBdLCBbIFwiQ2FuYWRhXCIsIFwiY2FcIiwgXCIxXCIsIDEsIFsgXCIyMDRcIiwgXCIyMjZcIiwgXCIyMzZcIiwgXCIyNDlcIiwgXCIyNTBcIiwgXCIyODlcIiwgXCIzMDZcIiwgXCIzNDNcIiwgXCIzNjVcIiwgXCIzODdcIiwgXCI0MDNcIiwgXCI0MTZcIiwgXCI0MThcIiwgXCI0MzFcIiwgXCI0MzdcIiwgXCI0MzhcIiwgXCI0NTBcIiwgXCI1MDZcIiwgXCI1MTRcIiwgXCI1MTlcIiwgXCI1NDhcIiwgXCI1NzlcIiwgXCI1ODFcIiwgXCI1ODdcIiwgXCI2MDRcIiwgXCI2MTNcIiwgXCI2MzlcIiwgXCI2NDdcIiwgXCI2NzJcIiwgXCI3MDVcIiwgXCI3MDlcIiwgXCI3NDJcIiwgXCI3NzhcIiwgXCI3ODBcIiwgXCI3ODJcIiwgXCI4MDdcIiwgXCI4MTlcIiwgXCI4MjVcIiwgXCI4NjdcIiwgXCI4NzNcIiwgXCI5MDJcIiwgXCI5MDVcIiBdIF0sIFsgXCJDYXBlIFZlcmRlIChLYWJ1IFZlcmRpKVwiLCBcImN2XCIsIFwiMjM4XCIgXSwgWyBcIkNhcmliYmVhbiBOZXRoZXJsYW5kc1wiLCBcImJxXCIsIFwiNTk5XCIsIDEsIFsgXCIzXCIsIFwiNFwiLCBcIjdcIiBdIF0sIFsgXCJDYXltYW4gSXNsYW5kc1wiLCBcImt5XCIsIFwiMVwiLCAxMiwgWyBcIjM0NVwiIF0gXSwgWyBcIkNlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyAoUsOpcHVibGlxdWUgY2VudHJhZnJpY2FpbmUpXCIsIFwiY2ZcIiwgXCIyMzZcIiBdLCBbIFwiQ2hhZCAoVGNoYWQpXCIsIFwidGRcIiwgXCIyMzVcIiBdLCBbIFwiQ2hpbGVcIiwgXCJjbFwiLCBcIjU2XCIgXSwgWyBcIkNoaW5hICjkuK3lm70pXCIsIFwiY25cIiwgXCI4NlwiIF0sIFsgXCJDaHJpc3RtYXMgSXNsYW5kXCIsIFwiY3hcIiwgXCI2MVwiLCAyIF0sIFsgXCJDb2NvcyAoS2VlbGluZykgSXNsYW5kc1wiLCBcImNjXCIsIFwiNjFcIiwgMSBdLCBbIFwiQ29sb21iaWFcIiwgXCJjb1wiLCBcIjU3XCIgXSwgWyBcIkNvbW9yb3MgKOKAq9is2LLYsSDYp9mE2YLZhdix4oCs4oCOKVwiLCBcImttXCIsIFwiMjY5XCIgXSwgWyBcIkNvbmdvIChEUkMpIChKYW1odXJpIHlhIEtpZGVtb2tyYXNpYSB5YSBLb25nbylcIiwgXCJjZFwiLCBcIjI0M1wiIF0sIFsgXCJDb25nbyAoUmVwdWJsaWMpIChDb25nby1CcmF6emF2aWxsZSlcIiwgXCJjZ1wiLCBcIjI0MlwiIF0sIFsgXCJDb29rIElzbGFuZHNcIiwgXCJja1wiLCBcIjY4MlwiIF0sIFsgXCJDb3N0YSBSaWNhXCIsIFwiY3JcIiwgXCI1MDZcIiBdLCBbIFwiQ8O0dGUgZOKAmUl2b2lyZVwiLCBcImNpXCIsIFwiMjI1XCIgXSwgWyBcIkNyb2F0aWEgKEhydmF0c2thKVwiLCBcImhyXCIsIFwiMzg1XCIgXSwgWyBcIkN1YmFcIiwgXCJjdVwiLCBcIjUzXCIgXSwgWyBcIkN1cmHDp2FvXCIsIFwiY3dcIiwgXCI1OTlcIiwgMCBdLCBbIFwiQ3lwcnVzICjOms+Nz4DPgc6/z4IpXCIsIFwiY3lcIiwgXCIzNTdcIiBdLCBbIFwiQ3plY2ggUmVwdWJsaWMgKMSMZXNrw6EgcmVwdWJsaWthKVwiLCBcImN6XCIsIFwiNDIwXCIgXSwgWyBcIkRlbm1hcmsgKERhbm1hcmspXCIsIFwiZGtcIiwgXCI0NVwiIF0sIFsgXCJEamlib3V0aVwiLCBcImRqXCIsIFwiMjUzXCIgXSwgWyBcIkRvbWluaWNhXCIsIFwiZG1cIiwgXCIxXCIsIDEzLCBbIFwiNzY3XCIgXSBdLCBbIFwiRG9taW5pY2FuIFJlcHVibGljIChSZXDDumJsaWNhIERvbWluaWNhbmEpXCIsIFwiZG9cIiwgXCIxXCIsIDIsIFsgXCI4MDlcIiwgXCI4MjlcIiwgXCI4NDlcIiBdIF0sIFsgXCJFY3VhZG9yXCIsIFwiZWNcIiwgXCI1OTNcIiBdLCBbIFwiRWd5cHQgKOKAq9mF2LXYseKArOKAjilcIiwgXCJlZ1wiLCBcIjIwXCIgXSwgWyBcIkVsIFNhbHZhZG9yXCIsIFwic3ZcIiwgXCI1MDNcIiBdLCBbIFwiRXF1YXRvcmlhbCBHdWluZWEgKEd1aW5lYSBFY3VhdG9yaWFsKVwiLCBcImdxXCIsIFwiMjQwXCIgXSwgWyBcIkVyaXRyZWFcIiwgXCJlclwiLCBcIjI5MVwiIF0sIFsgXCJFc3RvbmlhIChFZXN0aSlcIiwgXCJlZVwiLCBcIjM3MlwiIF0sIFsgXCJFdGhpb3BpYVwiLCBcImV0XCIsIFwiMjUxXCIgXSwgWyBcIkZhbGtsYW5kIElzbGFuZHMgKElzbGFzIE1hbHZpbmFzKVwiLCBcImZrXCIsIFwiNTAwXCIgXSwgWyBcIkZhcm9lIElzbGFuZHMgKEbDuHJveWFyKVwiLCBcImZvXCIsIFwiMjk4XCIgXSwgWyBcIkZpamlcIiwgXCJmalwiLCBcIjY3OVwiIF0sIFsgXCJGaW5sYW5kIChTdW9taSlcIiwgXCJmaVwiLCBcIjM1OFwiLCAwIF0sIFsgXCJGcmFuY2VcIiwgXCJmclwiLCBcIjMzXCIgXSwgWyBcIkZyZW5jaCBHdWlhbmEgKEd1eWFuZSBmcmFuw6dhaXNlKVwiLCBcImdmXCIsIFwiNTk0XCIgXSwgWyBcIkZyZW5jaCBQb2x5bmVzaWEgKFBvbHluw6lzaWUgZnJhbsOnYWlzZSlcIiwgXCJwZlwiLCBcIjY4OVwiIF0sIFsgXCJHYWJvblwiLCBcImdhXCIsIFwiMjQxXCIgXSwgWyBcIkdhbWJpYVwiLCBcImdtXCIsIFwiMjIwXCIgXSwgWyBcIkdlb3JnaWEgKOGDoeGDkOGDpeGDkOGDoOGDl+GDleGDlOGDmuGDnSlcIiwgXCJnZVwiLCBcIjk5NVwiIF0sIFsgXCJHZXJtYW55IChEZXV0c2NobGFuZClcIiwgXCJkZVwiLCBcIjQ5XCIgXSwgWyBcIkdoYW5hIChHYWFuYSlcIiwgXCJnaFwiLCBcIjIzM1wiIF0sIFsgXCJHaWJyYWx0YXJcIiwgXCJnaVwiLCBcIjM1MFwiIF0sIFsgXCJHcmVlY2UgKM6VzrvOu86szrTOsSlcIiwgXCJnclwiLCBcIjMwXCIgXSwgWyBcIkdyZWVubGFuZCAoS2FsYWFsbGl0IE51bmFhdClcIiwgXCJnbFwiLCBcIjI5OVwiIF0sIFsgXCJHcmVuYWRhXCIsIFwiZ2RcIiwgXCIxXCIsIDE0LCBbIFwiNDczXCIgXSBdLCBbIFwiR3VhZGVsb3VwZVwiLCBcImdwXCIsIFwiNTkwXCIsIDAgXSwgWyBcIkd1YW1cIiwgXCJndVwiLCBcIjFcIiwgMTUsIFsgXCI2NzFcIiBdIF0sIFsgXCJHdWF0ZW1hbGFcIiwgXCJndFwiLCBcIjUwMlwiIF0sIFsgXCJHdWVybnNleVwiLCBcImdnXCIsIFwiNDRcIiwgMSwgWyBcIjE0ODFcIiwgXCI3NzgxXCIsIFwiNzgzOVwiLCBcIjc5MTFcIiBdIF0sIFsgXCJHdWluZWEgKEd1aW7DqWUpXCIsIFwiZ25cIiwgXCIyMjRcIiBdLCBbIFwiR3VpbmVhLUJpc3NhdSAoR3VpbsOpIEJpc3NhdSlcIiwgXCJnd1wiLCBcIjI0NVwiIF0sIFsgXCJHdXlhbmFcIiwgXCJneVwiLCBcIjU5MlwiIF0sIFsgXCJIYWl0aVwiLCBcImh0XCIsIFwiNTA5XCIgXSwgWyBcIkhvbmR1cmFzXCIsIFwiaG5cIiwgXCI1MDRcIiBdLCBbIFwiSG9uZyBLb25nICjpppnmuK8pXCIsIFwiaGtcIiwgXCI4NTJcIiBdLCBbIFwiSHVuZ2FyeSAoTWFneWFyb3JzesOhZylcIiwgXCJodVwiLCBcIjM2XCIgXSwgWyBcIkljZWxhbmQgKMONc2xhbmQpXCIsIFwiaXNcIiwgXCIzNTRcIiBdLCBbIFwiSW5kaWEgKOCkreCkvuCksOCkpClcIiwgXCJpblwiLCBcIjkxXCIgXSwgWyBcIkluZG9uZXNpYVwiLCBcImlkXCIsIFwiNjJcIiBdLCBbIFwiSXJhbiAo4oCr2KfbjNix2KfZhuKArOKAjilcIiwgXCJpclwiLCBcIjk4XCIgXSwgWyBcIklyYXEgKOKAq9in2YTYudix2KfZguKArOKAjilcIiwgXCJpcVwiLCBcIjk2NFwiIF0sIFsgXCJJcmVsYW5kXCIsIFwiaWVcIiwgXCIzNTNcIiBdLCBbIFwiSXNsZSBvZiBNYW5cIiwgXCJpbVwiLCBcIjQ0XCIsIDIsIFsgXCIxNjI0XCIsIFwiNzQ1NzZcIiwgXCI3NTI0XCIsIFwiNzkyNFwiLCBcIjc2MjRcIiBdIF0sIFsgXCJJc3JhZWwgKOKAq9eZ16nXqNeQ15zigKzigI4pXCIsIFwiaWxcIiwgXCI5NzJcIiBdLCBbIFwiSXRhbHkgKEl0YWxpYSlcIiwgXCJpdFwiLCBcIjM5XCIsIDAgXSwgWyBcIkphbWFpY2FcIiwgXCJqbVwiLCBcIjFcIiwgNCwgWyBcIjg3NlwiLCBcIjY1OFwiIF0gXSwgWyBcIkphcGFuICjml6XmnKwpXCIsIFwianBcIiwgXCI4MVwiIF0sIFsgXCJKZXJzZXlcIiwgXCJqZVwiLCBcIjQ0XCIsIDMsIFsgXCIxNTM0XCIsIFwiNzUwOVwiLCBcIjc3MDBcIiwgXCI3Nzk3XCIsIFwiNzgyOVwiLCBcIjc5MzdcIiBdIF0sIFsgXCJKb3JkYW4gKOKAq9in2YTYo9ix2K/ZhuKArOKAjilcIiwgXCJqb1wiLCBcIjk2MlwiIF0sIFsgXCJLYXpha2hzdGFuICjQmtCw0LfQsNGF0YHRgtCw0L0pXCIsIFwia3pcIiwgXCI3XCIsIDEsIFsgXCIzM1wiLCBcIjdcIiBdIF0sIFsgXCJLZW55YVwiLCBcImtlXCIsIFwiMjU0XCIgXSwgWyBcIktpcmliYXRpXCIsIFwia2lcIiwgXCI2ODZcIiBdLCBbIFwiS29zb3ZvXCIsIFwieGtcIiwgXCIzODNcIiBdLCBbIFwiS3V3YWl0ICjigKvYp9mE2YPZiNmK2KrigKzigI4pXCIsIFwia3dcIiwgXCI5NjVcIiBdLCBbIFwiS3lyZ3l6c3RhbiAo0JrRi9GA0LPRi9C30YHRgtCw0L0pXCIsIFwia2dcIiwgXCI5OTZcIiBdLCBbIFwiTGFvcyAo4Lql4Lqy4LqnKVwiLCBcImxhXCIsIFwiODU2XCIgXSwgWyBcIkxhdHZpYSAoTGF0dmlqYSlcIiwgXCJsdlwiLCBcIjM3MVwiIF0sIFsgXCJMZWJhbm9uICjigKvZhNio2YbYp9mG4oCs4oCOKVwiLCBcImxiXCIsIFwiOTYxXCIgXSwgWyBcIkxlc290aG9cIiwgXCJsc1wiLCBcIjI2NlwiIF0sIFsgXCJMaWJlcmlhXCIsIFwibHJcIiwgXCIyMzFcIiBdLCBbIFwiTGlieWEgKOKAq9mE2YrYqNmK2KfigKzigI4pXCIsIFwibHlcIiwgXCIyMThcIiBdLCBbIFwiTGllY2h0ZW5zdGVpblwiLCBcImxpXCIsIFwiNDIzXCIgXSwgWyBcIkxpdGh1YW5pYSAoTGlldHV2YSlcIiwgXCJsdFwiLCBcIjM3MFwiIF0sIFsgXCJMdXhlbWJvdXJnXCIsIFwibHVcIiwgXCIzNTJcIiBdLCBbIFwiTWFjYXUgKOa+s+mWgClcIiwgXCJtb1wiLCBcIjg1M1wiIF0sIFsgXCJNYWNlZG9uaWEgKEZZUk9NKSAo0JzQsNC60LXQtNC+0L3QuNGY0LApXCIsIFwibWtcIiwgXCIzODlcIiBdLCBbIFwiTWFkYWdhc2NhciAoTWFkYWdhc2lrYXJhKVwiLCBcIm1nXCIsIFwiMjYxXCIgXSwgWyBcIk1hbGF3aVwiLCBcIm13XCIsIFwiMjY1XCIgXSwgWyBcIk1hbGF5c2lhXCIsIFwibXlcIiwgXCI2MFwiIF0sIFsgXCJNYWxkaXZlc1wiLCBcIm12XCIsIFwiOTYwXCIgXSwgWyBcIk1hbGlcIiwgXCJtbFwiLCBcIjIyM1wiIF0sIFsgXCJNYWx0YVwiLCBcIm10XCIsIFwiMzU2XCIgXSwgWyBcIk1hcnNoYWxsIElzbGFuZHNcIiwgXCJtaFwiLCBcIjY5MlwiIF0sIFsgXCJNYXJ0aW5pcXVlXCIsIFwibXFcIiwgXCI1OTZcIiBdLCBbIFwiTWF1cml0YW5pYSAo4oCr2YXZiNix2YrYqtin2YbZitin4oCs4oCOKVwiLCBcIm1yXCIsIFwiMjIyXCIgXSwgWyBcIk1hdXJpdGl1cyAoTW9yaXMpXCIsIFwibXVcIiwgXCIyMzBcIiBdLCBbIFwiTWF5b3R0ZVwiLCBcInl0XCIsIFwiMjYyXCIsIDEsIFsgXCIyNjlcIiwgXCI2MzlcIiBdIF0sIFsgXCJNZXhpY28gKE3DqXhpY28pXCIsIFwibXhcIiwgXCI1MlwiIF0sIFsgXCJNaWNyb25lc2lhXCIsIFwiZm1cIiwgXCI2OTFcIiBdLCBbIFwiTW9sZG92YSAoUmVwdWJsaWNhIE1vbGRvdmEpXCIsIFwibWRcIiwgXCIzNzNcIiBdLCBbIFwiTW9uYWNvXCIsIFwibWNcIiwgXCIzNzdcIiBdLCBbIFwiTW9uZ29saWEgKNCc0L7QvdCz0L7QuylcIiwgXCJtblwiLCBcIjk3NlwiIF0sIFsgXCJNb250ZW5lZ3JvIChDcm5hIEdvcmEpXCIsIFwibWVcIiwgXCIzODJcIiBdLCBbIFwiTW9udHNlcnJhdFwiLCBcIm1zXCIsIFwiMVwiLCAxNiwgWyBcIjY2NFwiIF0gXSwgWyBcIk1vcm9jY28gKOKAq9in2YTZhdi62LHYqOKArOKAjilcIiwgXCJtYVwiLCBcIjIxMlwiLCAwIF0sIFsgXCJNb3phbWJpcXVlIChNb8OnYW1iaXF1ZSlcIiwgXCJtelwiLCBcIjI1OFwiIF0sIFsgXCJNeWFubWFyIChCdXJtYSkgKOGAmeGAvOGAlOGAuuGAmeGArClcIiwgXCJtbVwiLCBcIjk1XCIgXSwgWyBcIk5hbWliaWEgKE5hbWliacOrKVwiLCBcIm5hXCIsIFwiMjY0XCIgXSwgWyBcIk5hdXJ1XCIsIFwibnJcIiwgXCI2NzRcIiBdLCBbIFwiTmVwYWwgKOCkqOClh+CkquCkvuCksilcIiwgXCJucFwiLCBcIjk3N1wiIF0sIFsgXCJOZXRoZXJsYW5kcyAoTmVkZXJsYW5kKVwiLCBcIm5sXCIsIFwiMzFcIiBdLCBbIFwiTmV3IENhbGVkb25pYSAoTm91dmVsbGUtQ2Fsw6lkb25pZSlcIiwgXCJuY1wiLCBcIjY4N1wiIF0sIFsgXCJOZXcgWmVhbGFuZFwiLCBcIm56XCIsIFwiNjRcIiBdLCBbIFwiTmljYXJhZ3VhXCIsIFwibmlcIiwgXCI1MDVcIiBdLCBbIFwiTmlnZXIgKE5pamFyKVwiLCBcIm5lXCIsIFwiMjI3XCIgXSwgWyBcIk5pZ2VyaWFcIiwgXCJuZ1wiLCBcIjIzNFwiIF0sIFsgXCJOaXVlXCIsIFwibnVcIiwgXCI2ODNcIiBdLCBbIFwiTm9yZm9sayBJc2xhbmRcIiwgXCJuZlwiLCBcIjY3MlwiIF0sIFsgXCJOb3J0aCBLb3JlYSAo7KGw7ISgIOuvvOyjvOyjvOydmCDsnbjrr7wg6rO17ZmU6rWtKVwiLCBcImtwXCIsIFwiODUwXCIgXSwgWyBcIk5vcnRoZXJuIE1hcmlhbmEgSXNsYW5kc1wiLCBcIm1wXCIsIFwiMVwiLCAxNywgWyBcIjY3MFwiIF0gXSwgWyBcIk5vcndheSAoTm9yZ2UpXCIsIFwibm9cIiwgXCI0N1wiLCAwIF0sIFsgXCJPbWFuICjigKvYudmP2YXYp9mG4oCs4oCOKVwiLCBcIm9tXCIsIFwiOTY4XCIgXSwgWyBcIlBha2lzdGFuICjigKvZvtin2qnYs9iq2KfZhuKArOKAjilcIiwgXCJwa1wiLCBcIjkyXCIgXSwgWyBcIlBhbGF1XCIsIFwicHdcIiwgXCI2ODBcIiBdLCBbIFwiUGFsZXN0aW5lICjigKvZgdmE2LPYt9mK2YbigKzigI4pXCIsIFwicHNcIiwgXCI5NzBcIiBdLCBbIFwiUGFuYW1hIChQYW5hbcOhKVwiLCBcInBhXCIsIFwiNTA3XCIgXSwgWyBcIlBhcHVhIE5ldyBHdWluZWFcIiwgXCJwZ1wiLCBcIjY3NVwiIF0sIFsgXCJQYXJhZ3VheVwiLCBcInB5XCIsIFwiNTk1XCIgXSwgWyBcIlBlcnUgKFBlcsO6KVwiLCBcInBlXCIsIFwiNTFcIiBdLCBbIFwiUGhpbGlwcGluZXNcIiwgXCJwaFwiLCBcIjYzXCIgXSwgWyBcIlBvbGFuZCAoUG9sc2thKVwiLCBcInBsXCIsIFwiNDhcIiBdLCBbIFwiUG9ydHVnYWxcIiwgXCJwdFwiLCBcIjM1MVwiIF0sIFsgXCJQdWVydG8gUmljb1wiLCBcInByXCIsIFwiMVwiLCAzLCBbIFwiNzg3XCIsIFwiOTM5XCIgXSBdLCBbIFwiUWF0YXIgKOKAq9mC2LfYseKArOKAjilcIiwgXCJxYVwiLCBcIjk3NFwiIF0sIFsgXCJSw6l1bmlvbiAoTGEgUsOpdW5pb24pXCIsIFwicmVcIiwgXCIyNjJcIiwgMCBdLCBbIFwiUm9tYW5pYSAoUm9tw6JuaWEpXCIsIFwicm9cIiwgXCI0MFwiIF0sIFsgXCJSdXNzaWEgKNCg0L7RgdGB0LjRjylcIiwgXCJydVwiLCBcIjdcIiwgMCBdLCBbIFwiUndhbmRhXCIsIFwicndcIiwgXCIyNTBcIiBdLCBbIFwiU2FpbnQgQmFydGjDqWxlbXlcIiwgXCJibFwiLCBcIjU5MFwiLCAxIF0sIFsgXCJTYWludCBIZWxlbmFcIiwgXCJzaFwiLCBcIjI5MFwiIF0sIFsgXCJTYWludCBLaXR0cyBhbmQgTmV2aXNcIiwgXCJrblwiLCBcIjFcIiwgMTgsIFsgXCI4NjlcIiBdIF0sIFsgXCJTYWludCBMdWNpYVwiLCBcImxjXCIsIFwiMVwiLCAxOSwgWyBcIjc1OFwiIF0gXSwgWyBcIlNhaW50IE1hcnRpbiAoU2FpbnQtTWFydGluIChwYXJ0aWUgZnJhbsOnYWlzZSkpXCIsIFwibWZcIiwgXCI1OTBcIiwgMiBdLCBbIFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbiAoU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uKVwiLCBcInBtXCIsIFwiNTA4XCIgXSwgWyBcIlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzXCIsIFwidmNcIiwgXCIxXCIsIDIwLCBbIFwiNzg0XCIgXSBdLCBbIFwiU2Ftb2FcIiwgXCJ3c1wiLCBcIjY4NVwiIF0sIFsgXCJTYW4gTWFyaW5vXCIsIFwic21cIiwgXCIzNzhcIiBdLCBbIFwiU8OjbyBUb23DqSBhbmQgUHLDrW5jaXBlIChTw6NvIFRvbcOpIGUgUHLDrW5jaXBlKVwiLCBcInN0XCIsIFwiMjM5XCIgXSwgWyBcIlNhdWRpIEFyYWJpYSAo4oCr2KfZhNmF2YXZhNmD2Kkg2KfZhNi52LHYqNmK2Kkg2KfZhNiz2LnZiNiv2YrYqeKArOKAjilcIiwgXCJzYVwiLCBcIjk2NlwiIF0sIFsgXCJTZW5lZ2FsIChTw6luw6lnYWwpXCIsIFwic25cIiwgXCIyMjFcIiBdLCBbIFwiU2VyYmlhICjQodGA0LHQuNGY0LApXCIsIFwicnNcIiwgXCIzODFcIiBdLCBbIFwiU2V5Y2hlbGxlc1wiLCBcInNjXCIsIFwiMjQ4XCIgXSwgWyBcIlNpZXJyYSBMZW9uZVwiLCBcInNsXCIsIFwiMjMyXCIgXSwgWyBcIlNpbmdhcG9yZVwiLCBcInNnXCIsIFwiNjVcIiBdLCBbIFwiU2ludCBNYWFydGVuXCIsIFwic3hcIiwgXCIxXCIsIDIxLCBbIFwiNzIxXCIgXSBdLCBbIFwiU2xvdmFraWEgKFNsb3ZlbnNrbylcIiwgXCJza1wiLCBcIjQyMVwiIF0sIFsgXCJTbG92ZW5pYSAoU2xvdmVuaWphKVwiLCBcInNpXCIsIFwiMzg2XCIgXSwgWyBcIlNvbG9tb24gSXNsYW5kc1wiLCBcInNiXCIsIFwiNjc3XCIgXSwgWyBcIlNvbWFsaWEgKFNvb21hYWxpeWEpXCIsIFwic29cIiwgXCIyNTJcIiBdLCBbIFwiU291dGggQWZyaWNhXCIsIFwiemFcIiwgXCIyN1wiIF0sIFsgXCJTb3V0aCBLb3JlYSAo64yA7ZWc66+86rWtKVwiLCBcImtyXCIsIFwiODJcIiBdLCBbIFwiU291dGggU3VkYW4gKOKAq9is2YbZiNioINin2YTYs9mI2K/Yp9mG4oCs4oCOKVwiLCBcInNzXCIsIFwiMjExXCIgXSwgWyBcIlNwYWluIChFc3Bhw7FhKVwiLCBcImVzXCIsIFwiMzRcIiBdLCBbIFwiU3JpIExhbmthICjgt4Hgt4rigI3gtrvgt5Mg4La94LaC4Laa4LeP4LeAKVwiLCBcImxrXCIsIFwiOTRcIiBdLCBbIFwiU3VkYW4gKOKAq9in2YTYs9mI2K/Yp9mG4oCs4oCOKVwiLCBcInNkXCIsIFwiMjQ5XCIgXSwgWyBcIlN1cmluYW1lXCIsIFwic3JcIiwgXCI1OTdcIiBdLCBbIFwiU3ZhbGJhcmQgYW5kIEphbiBNYXllblwiLCBcInNqXCIsIFwiNDdcIiwgMSwgWyBcIjc5XCIgXSBdLCBbIFwiU3dhemlsYW5kXCIsIFwic3pcIiwgXCIyNjhcIiBdLCBbIFwiU3dlZGVuIChTdmVyaWdlKVwiLCBcInNlXCIsIFwiNDZcIiBdLCBbIFwiU3dpdHplcmxhbmQgKFNjaHdlaXopXCIsIFwiY2hcIiwgXCI0MVwiIF0sIFsgXCJTeXJpYSAo4oCr2LPZiNix2YrYp+KArOKAjilcIiwgXCJzeVwiLCBcIjk2M1wiIF0sIFsgXCJUYWl3YW4gKOWPsOeBoylcIiwgXCJ0d1wiLCBcIjg4NlwiIF0sIFsgXCJUYWppa2lzdGFuXCIsIFwidGpcIiwgXCI5OTJcIiBdLCBbIFwiVGFuemFuaWFcIiwgXCJ0elwiLCBcIjI1NVwiIF0sIFsgXCJUaGFpbGFuZCAo4LmE4LiX4LiiKVwiLCBcInRoXCIsIFwiNjZcIiBdLCBbIFwiVGltb3ItTGVzdGVcIiwgXCJ0bFwiLCBcIjY3MFwiIF0sIFsgXCJUb2dvXCIsIFwidGdcIiwgXCIyMjhcIiBdLCBbIFwiVG9rZWxhdVwiLCBcInRrXCIsIFwiNjkwXCIgXSwgWyBcIlRvbmdhXCIsIFwidG9cIiwgXCI2NzZcIiBdLCBbIFwiVHJpbmlkYWQgYW5kIFRvYmFnb1wiLCBcInR0XCIsIFwiMVwiLCAyMiwgWyBcIjg2OFwiIF0gXSwgWyBcIlR1bmlzaWEgKOKAq9iq2YjZhtiz4oCs4oCOKVwiLCBcInRuXCIsIFwiMjE2XCIgXSwgWyBcIlR1cmtleSAoVMO8cmtpeWUpXCIsIFwidHJcIiwgXCI5MFwiIF0sIFsgXCJUdXJrbWVuaXN0YW5cIiwgXCJ0bVwiLCBcIjk5M1wiIF0sIFsgXCJUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHNcIiwgXCJ0Y1wiLCBcIjFcIiwgMjMsIFsgXCI2NDlcIiBdIF0sIFsgXCJUdXZhbHVcIiwgXCJ0dlwiLCBcIjY4OFwiIF0sIFsgXCJVLlMuIFZpcmdpbiBJc2xhbmRzXCIsIFwidmlcIiwgXCIxXCIsIDI0LCBbIFwiMzQwXCIgXSBdLCBbIFwiVWdhbmRhXCIsIFwidWdcIiwgXCIyNTZcIiBdLCBbIFwiVWtyYWluZSAo0KPQutGA0LDRl9C90LApXCIsIFwidWFcIiwgXCIzODBcIiBdLCBbIFwiVW5pdGVkIEFyYWIgRW1pcmF0ZXMgKOKAq9in2YTYpdmF2KfYsdin2Kog2KfZhNi52LHYqNmK2Kkg2KfZhNmF2KrYrdiv2KnigKzigI4pXCIsIFwiYWVcIiwgXCI5NzFcIiBdLCBbIFwiVW5pdGVkIEtpbmdkb21cIiwgXCJnYlwiLCBcIjQ0XCIsIDAgXSwgWyBcIlVuaXRlZCBTdGF0ZXNcIiwgXCJ1c1wiLCBcIjFcIiwgMCBdLCBbIFwiVXJ1Z3VheVwiLCBcInV5XCIsIFwiNTk4XCIgXSwgWyBcIlV6YmVraXN0YW4gKE/Ku3piZWtpc3RvbilcIiwgXCJ1elwiLCBcIjk5OFwiIF0sIFsgXCJWYW51YXR1XCIsIFwidnVcIiwgXCI2NzhcIiBdLCBbIFwiVmF0aWNhbiBDaXR5IChDaXR0w6AgZGVsIFZhdGljYW5vKVwiLCBcInZhXCIsIFwiMzlcIiwgMSwgWyBcIjA2Njk4XCIgXSBdLCBbIFwiVmVuZXp1ZWxhXCIsIFwidmVcIiwgXCI1OFwiIF0sIFsgXCJWaWV0bmFtIChWaeG7h3QgTmFtKVwiLCBcInZuXCIsIFwiODRcIiBdLCBbIFwiV2FsbGlzIGFuZCBGdXR1bmEgKFdhbGxpcy1ldC1GdXR1bmEpXCIsIFwid2ZcIiwgXCI2ODFcIiBdLCBbIFwiV2VzdGVybiBTYWhhcmEgKOKAq9in2YTYtdit2LHYp9ihINin2YTYutix2KjZitip4oCs4oCOKVwiLCBcImVoXCIsIFwiMjEyXCIsIDEsIFsgXCI1Mjg4XCIsIFwiNTI4OVwiIF0gXSwgWyBcIlllbWVuICjigKvYp9mE2YrZhdmG4oCs4oCOKVwiLCBcInllXCIsIFwiOTY3XCIgXSwgWyBcIlphbWJpYVwiLCBcInptXCIsIFwiMjYwXCIgXSwgWyBcIlppbWJhYndlXCIsIFwiendcIiwgXCIyNjNcIiBdLCBbIFwiw4VsYW5kIElzbGFuZHNcIiwgXCJheFwiLCBcIjM1OFwiLCAxLCBbIFwiMThcIiBdIF0gXTtcbiAgICAgICAgLy8gbG9vcCBvdmVyIGFsbCBvZiB0aGUgY291bnRyaWVzIGFib3ZlLCByZXN0cnVjdHVyaW5nIHRoZSBkYXRhIHRvIGJlIG9iamVjdHMgd2l0aCBuYW1lZCBrZXlzXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsQ291bnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgYyA9IGFsbENvdW50cmllc1tpXTtcbiAgICAgICAgICAgIGFsbENvdW50cmllc1tpXSA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBjWzBdLFxuICAgICAgICAgICAgICAgIGlzbzI6IGNbMV0sXG4gICAgICAgICAgICAgICAgZGlhbENvZGU6IGNbMl0sXG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IGNbM10gfHwgMCxcbiAgICAgICAgICAgICAgICBhcmVhQ29kZXM6IGNbNF0gfHwgbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBcInVzZSBzdHJpY3RcIjtcbiAgICAgICAgZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICAgICAgICAgICAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgICAgICAgICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGludGxUZWxJbnB1dEdsb2JhbHMgPSB7XG4gICAgICAgICAgICBnZXRJbnN0YW5jZTogZnVuY3Rpb24gZ2V0SW5zdGFuY2UoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWQgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLWludGwtdGVsLWlucHV0LWlkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5pbnN0YW5jZXNbaWRdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluc3RhbmNlczoge31cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwib2JqZWN0XCIpIHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzID0gaW50bFRlbElucHV0R2xvYmFscztcbiAgICAgICAgLy8gdGhlc2UgdmFycyBwZXJzaXN0IHRocm91Z2ggYWxsIGluc3RhbmNlcyBvZiB0aGUgcGx1Z2luXG4gICAgICAgIHZhciBpZCA9IDA7XG4gICAgICAgIHZhciBkZWZhdWx0cyA9IHtcbiAgICAgICAgICAgIC8vIHdoZXRoZXIgb3Igbm90IHRvIGFsbG93IHRoZSBkcm9wZG93blxuICAgICAgICAgICAgYWxsb3dEcm9wZG93bjogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGp1c3QgYSBkaWFsIGNvZGUgaW4gdGhlIGlucHV0OiByZW1vdmUgaXQgb24gYmx1clxuICAgICAgICAgICAgYXV0b0hpZGVEaWFsQ29kZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGFkZCBhIHBsYWNlaG9sZGVyIGluIHRoZSBpbnB1dCB3aXRoIGFuIGV4YW1wbGUgbnVtYmVyIGZvciB0aGUgc2VsZWN0ZWQgY291bnRyeVxuICAgICAgICAgICAgYXV0b1BsYWNlaG9sZGVyOiBcInBvbGl0ZVwiLFxuICAgICAgICAgICAgLy8gbW9kaWZ5IHRoZSBwYXJlbnRDbGFzc1xuICAgICAgICAgICAgY3VzdG9tQ29udGFpbmVyOiBcIlwiLFxuICAgICAgICAgICAgLy8gbW9kaWZ5IHRoZSBhdXRvIHBsYWNlaG9sZGVyXG4gICAgICAgICAgICBjdXN0b21QbGFjZWhvbGRlcjogbnVsbCxcbiAgICAgICAgICAgIC8vIGFwcGVuZCBtZW51IHRvIHNwZWNpZmllZCBlbGVtZW50XG4gICAgICAgICAgICBkcm9wZG93bkNvbnRhaW5lcjogbnVsbCxcbiAgICAgICAgICAgIC8vIGRvbid0IGRpc3BsYXkgdGhlc2UgY291bnRyaWVzXG4gICAgICAgICAgICBleGNsdWRlQ291bnRyaWVzOiBbXSxcbiAgICAgICAgICAgIC8vIGZvcm1hdCB0aGUgaW5wdXQgdmFsdWUgZHVyaW5nIGluaXRpYWxpc2F0aW9uIGFuZCBvbiBzZXROdW1iZXJcbiAgICAgICAgICAgIGZvcm1hdE9uRGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGdlb0lwIGxvb2t1cCBmdW5jdGlvblxuICAgICAgICAgICAgZ2VvSXBMb29rdXA6IG51bGwsXG4gICAgICAgICAgICAvLyBpbmplY3QgYSBoaWRkZW4gaW5wdXQgd2l0aCB0aGlzIG5hbWUsIGFuZCBvbiBzdWJtaXQsIHBvcHVsYXRlIGl0IHdpdGggdGhlIHJlc3VsdCBvZiBnZXROdW1iZXJcbiAgICAgICAgICAgIGhpZGRlbklucHV0OiBcIlwiLFxuICAgICAgICAgICAgLy8gaW5pdGlhbCBjb3VudHJ5XG4gICAgICAgICAgICBpbml0aWFsQ291bnRyeTogXCJcIixcbiAgICAgICAgICAgIC8vIGxvY2FsaXplZCBjb3VudHJ5IG5hbWVzIGUuZy4geyAnZGUnOiAnRGV1dHNjaGxhbmQnIH1cbiAgICAgICAgICAgIGxvY2FsaXplZENvdW50cmllczogbnVsbCxcbiAgICAgICAgICAgIC8vIGRvbid0IGluc2VydCBpbnRlcm5hdGlvbmFsIGRpYWwgY29kZXNcbiAgICAgICAgICAgIG5hdGlvbmFsTW9kZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vIGRpc3BsYXkgb25seSB0aGVzZSBjb3VudHJpZXNcbiAgICAgICAgICAgIG9ubHlDb3VudHJpZXM6IFtdLFxuICAgICAgICAgICAgLy8gbnVtYmVyIHR5cGUgdG8gdXNlIGZvciBwbGFjZWhvbGRlcnNcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyTnVtYmVyVHlwZTogXCJNT0JJTEVcIixcbiAgICAgICAgICAgIC8vIHRoZSBjb3VudHJpZXMgYXQgdGhlIHRvcCBvZiB0aGUgbGlzdC4gZGVmYXVsdHMgdG8gdW5pdGVkIHN0YXRlcyBhbmQgdW5pdGVkIGtpbmdkb21cbiAgICAgICAgICAgIHByZWZlcnJlZENvdW50cmllczogWyBcInVzXCIsIFwiZ2JcIiBdLFxuICAgICAgICAgICAgLy8gZGlzcGxheSB0aGUgY291bnRyeSBkaWFsIGNvZGUgbmV4dCB0byB0aGUgc2VsZWN0ZWQgZmxhZyBzbyBpdCdzIG5vdCBwYXJ0IG9mIHRoZSB0eXBlZCBudW1iZXJcbiAgICAgICAgICAgIHNlcGFyYXRlRGlhbENvZGU6IGZhbHNlLFxuICAgICAgICAgICAgLy8gc3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgbGlicGhvbmVudW1iZXIgc2NyaXB0IHRvIGVuYWJsZSB2YWxpZGF0aW9uL2Zvcm1hdHRpbmdcbiAgICAgICAgICAgIHV0aWxzU2NyaXB0OiBcIlwiXG4gICAgICAgIH07XG4gICAgICAgIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xpc3Rfb2ZfTm9ydGhfQW1lcmljYW5fTnVtYmVyaW5nX1BsYW5fYXJlYV9jb2RlcyNOb24tZ2VvZ3JhcGhpY19hcmVhX2NvZGVzXG4gICAgICAgIHZhciByZWdpb25sZXNzTmFucE51bWJlcnMgPSBbIFwiODAwXCIsIFwiODIyXCIsIFwiODMzXCIsIFwiODQ0XCIsIFwiODU1XCIsIFwiODY2XCIsIFwiODc3XCIsIFwiODgwXCIsIFwiODgxXCIsIFwiODgyXCIsIFwiODgzXCIsIFwiODg0XCIsIFwiODg1XCIsIFwiODg2XCIsIFwiODg3XCIsIFwiODg4XCIsIFwiODg5XCIgXTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgaWYgdGhlIHdpbmRvdy5sb2FkIGV2ZW50IGhhcyBmaXJlZCBhcyBpbXBvc3NpYmxlIHRvIGNoZWNrIGFmdGVyIHRoZSBmYWN0XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgLy8gVVBEQVRFOiB1c2UgYSBwdWJsaWMgc3RhdGljIGZpZWxkIHNvIHdlIGNhbiBmdWRnZSBpdCBpbiB0aGUgdGVzdHNcbiAgICAgICAgICAgICAgICB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy53aW5kb3dMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdXRpbGl0eSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gb2JqZWN0LiBjYW4ndCB1c2UgT2JqZWN0LmVudHJpZXMgb3IgbmF0aXZlIGZvckVhY2ggYmVjYXVzZVxuICAgICAgICAvLyBvZiBJRTExXG4gICAgICAgIHZhciBmb3JFYWNoUHJvcCA9IGZ1bmN0aW9uIGZvckVhY2hQcm9wKG9iaiwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKGtleXNbaV0sIG9ialtrZXlzW2ldXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIHJ1biBhIG1ldGhvZCBvbiBlYWNoIGluc3RhbmNlIG9mIHRoZSBwbHVnaW5cbiAgICAgICAgdmFyIGZvckVhY2hJbnN0YW5jZSA9IGZ1bmN0aW9uIGZvckVhY2hJbnN0YW5jZShtZXRob2QpIHtcbiAgICAgICAgICAgIGZvckVhY2hQcm9wKHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLmluc3RhbmNlcywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuaW5zdGFuY2VzW2tleV1bbWV0aG9kXSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIHRoaXMgaXMgb3VyIHBsdWdpbiBjbGFzcyB0aGF0IHdlIHdpbGwgY3JlYXRlIGFuIGluc3RhbmNlIG9mXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgICB2YXIgSXRpID0gLyojX19QVVJFX18qL1xuICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGZ1bmN0aW9uIEl0aShpbnB1dCwgb3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEl0aSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pZCA9IGlkKys7XG4gICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dCA9IGlucHV0O1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgICAgIC8vIHByb2Nlc3Mgc3BlY2lmaWVkIG9wdGlvbnMgLyBkZWZhdWx0c1xuICAgICAgICAgICAgICAgIC8vIGFsdGVybmF0aXZlIHRvIE9iamVjdC5hc3NpZ24sIHdoaWNoIGlzbid0IHN1cHBvcnRlZCBieSBJRTExXG4gICAgICAgICAgICAgICAgdmFyIGN1c3RvbU9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHt9O1xuICAgICAgICAgICAgICAgIGZvckVhY2hQcm9wKGRlZmF1bHRzLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLm9wdGlvbnNba2V5XSA9IGN1c3RvbU9wdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSA/IGN1c3RvbU9wdGlvbnNba2V5XSA6IHZhbHVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFkSW5pdGlhbFBsYWNlaG9sZGVyID0gQm9vbGVhbihpbnB1dC5nZXRBdHRyaWJ1dGUoXCJwbGFjZWhvbGRlclwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfY3JlYXRlQ2xhc3MoSXRpLCBbIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2luaXRcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2luaXQoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiBpbiBuYXRpb25hbE1vZGUsIGRpc2FibGUgb3B0aW9ucyByZWxhdGluZyB0byBkaWFsIGNvZGVzXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubmF0aW9uYWxNb2RlKSB0aGlzLm9wdGlvbnMuYXV0b0hpZGVEaWFsQ29kZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiBzZXBhcmF0ZURpYWxDb2RlIHRoZW4gZG9lc24ndCBtYWtlIHNlbnNlIHRvIEEpIGluc2VydCBkaWFsIGNvZGUgaW50byBpbnB1dFxuICAgICAgICAgICAgICAgICAgICAvLyAoYXV0b0hpZGVEaWFsQ29kZSksIGFuZCBCKSBkaXNwbGF5IG5hdGlvbmFsIG51bWJlcnMgKGJlY2F1c2Ugd2UncmUgZGlzcGxheWluZyB0aGUgY291bnRyeVxuICAgICAgICAgICAgICAgICAgICAvLyBkaWFsIGNvZGUgbmV4dCB0byB0aGVtKVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNlcGFyYXRlRGlhbENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5hdXRvSGlkZURpYWxDb2RlID0gdGhpcy5vcHRpb25zLm5hdGlvbmFsTW9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGNhbm5vdCBqdXN0IHRlc3Qgc2NyZWVuIHNpemUgYXMgc29tZSBzbWFydHBob25lcy93ZWJzaXRlIG1ldGEgdGFncyB3aWxsIHJlcG9ydCBkZXNrdG9wXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdXRpb25zXG4gICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IGZvciBzb21lIHJlYXNvbiBqYXNtaW5lIGJyZWFrcyBpZiB5b3UgcHV0IHRoaXMgaW4gdGhlIG1haW4gUGx1Z2luIGZ1bmN0aW9uIHdpdGggdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlc3Qgb2YgdGhlc2UgZGVjbGFyYXRpb25zXG4gICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRvIHRhcmdldCBBbmRyb2lkIE1vYmlsZXMgKGFuZCBub3QgVGFibGV0cyksIHdlIG11c3QgZmluZCAnQW5kcm9pZCcgYW5kICdNb2JpbGUnXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGUgPSAvQW5kcm9pZC4rTW9iaWxlfHdlYk9TfGlQaG9uZXxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmlnZ2VyIHRoZSBtb2JpbGUgZHJvcGRvd24gY3NzXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJpdGktbW9iaWxlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gbW9iaWxlLCB3ZSB3YW50IGEgZnVsbCBzY3JlZW4gZHJvcGRvd24sIHNvIHdlIG11c3QgYXBwZW5kIGl0IHRvIHRoZSBib2R5XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5kcm9wZG93bkNvbnRhaW5lcikgdGhpcy5vcHRpb25zLmRyb3Bkb3duQ29udGFpbmVyID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBwcm9taXNlcyBnZXQgcmVzb2x2ZWQgd2hlbiB0aGVpciBpbmRpdmlkdWFsIHJlcXVlc3RzIGNvbXBsZXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgd2F5IHRoZSBkZXYgY2FuIGRvIHNvbWV0aGluZyBsaWtlIGl0aS5wcm9taXNlLnRoZW4oLi4uKSB0byBrbm93IHdoZW4gYWxsIHJlcXVlc3RzIGFyZVxuICAgICAgICAgICAgICAgICAgICAvLyBjb21wbGV0ZVxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIFByb21pc2UgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdXRvQ291bnRyeVByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIucmVzb2x2ZUF1dG9Db3VudHJ5UHJvbWlzZSA9IHJlc29sdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnJlamVjdEF1dG9Db3VudHJ5UHJvbWlzZSA9IHJlamVjdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHV0aWxzU2NyaXB0UHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5yZXNvbHZlVXRpbHNTY3JpcHRQcm9taXNlID0gcmVzb2x2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIucmVqZWN0VXRpbHNTY3JpcHRQcm9taXNlID0gcmVqZWN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb21pc2UgPSBQcm9taXNlLmFsbChbIGF1dG9Db3VudHJ5UHJvbWlzZSwgdXRpbHNTY3JpcHRQcm9taXNlIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJldmVudCBlcnJvcnMgd2hlbiBQcm9taXNlIGRvZXNuJ3QgZXhpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZUF1dG9Db3VudHJ5UHJvbWlzZSA9IHRoaXMucmVqZWN0QXV0b0NvdW50cnlQcm9taXNlID0gZnVuY3Rpb24oKSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVV0aWxzU2NyaXB0UHJvbWlzZSA9IHRoaXMucmVqZWN0VXRpbHNTY3JpcHRQcm9taXNlID0gZnVuY3Rpb24oKSB7fTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBpbiB2YXJpb3VzIHNpdHVhdGlvbnMgdGhlcmUgY291bGQgYmUgbm8gY291bnRyeSBzZWxlY3RlZCBpbml0aWFsbHksIGJ1dCB3ZSBuZWVkIHRvIGJlIGFibGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gYXNzdW1lIHRoaXMgdmFyaWFibGUgZXhpc3RzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIGFsbCB0aGUgZGF0YTogb25seUNvdW50cmllcywgZXhjbHVkZUNvdW50cmllcywgcHJlZmVycmVkQ291bnRyaWVzIGV0Y1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcm9jZXNzQ291bnRyeURhdGEoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZ2VuZXJhdGUgdGhlIG1hcmt1cFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZU1hcmt1cCgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGlucHV0IHZhbHVlIGFuZCB0aGUgc2VsZWN0ZWQgZmxhZ1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRJbml0aWFsU3RhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgYWxsIG9mIHRoZSBldmVudCBsaXN0ZW5lcnM6IGF1dG9IaWRlRGlhbENvZGUsIGlucHV0IGtleWRvd24sIHNlbGVjdGVkRmxhZyBjbGlja1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0TGlzdGVuZXJzKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHV0aWxzIHNjcmlwdCwgYW5kIGF1dG8gY291bnRyeVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0UmVxdWVzdHMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9wcm9jZXNzQ291bnRyeURhdGFcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3Byb2Nlc3NDb3VudHJ5RGF0YSgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2VzcyBvbmx5Q291bnRyaWVzIG9yIGV4Y2x1ZGVDb3VudHJpZXMgYXJyYXkgaWYgcHJlc2VudFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcm9jZXNzQWxsQ291bnRyaWVzKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3MgdGhlIGNvdW50cnlDb2RlcyBtYXBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc0NvdW50cnlDb2RlcygpO1xuICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHRoZSBwcmVmZXJyZWRDb3VudHJpZXNcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1ByZWZlcnJlZENvdW50cmllcygpO1xuICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2xhdGUgY291bnRyaWVzIGFjY29yZGluZyB0byBsb2NhbGl6ZWRDb3VudHJpZXMgb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYWxpemVkQ291bnRyaWVzKSB0aGlzLl90cmFuc2xhdGVDb3VudHJpZXNCeUxvY2FsZSgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBzb3J0IGNvdW50cmllcyBieSBuYW1lXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMub25seUNvdW50cmllcy5sZW5ndGggfHwgdGhpcy5vcHRpb25zLmxvY2FsaXplZENvdW50cmllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJpZXMuc29ydCh0aGlzLl9jb3VudHJ5TmFtZVNvcnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfYWRkQ291bnRyeUNvZGVcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2FkZENvdW50cnlDb2RlKGlzbzIsIGRpYWxDb2RlLCBwcmlvcml0eSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGlhbENvZGUubGVuZ3RoID4gdGhpcy5kaWFsQ29kZU1heExlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsQ29kZU1heExlbiA9IGRpYWxDb2RlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY291bnRyeUNvZGVzLmhhc093blByb3BlcnR5KGRpYWxDb2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJ5Q29kZXNbZGlhbENvZGVdID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gYmFpbCBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhpcyBjb3VudHJ5IGZvciB0aGlzIGRpYWxDb2RlXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jb3VudHJ5Q29kZXNbZGlhbENvZGVdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb3VudHJ5Q29kZXNbZGlhbENvZGVdW2ldID09PSBpc28yKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIHVuZGVmaW5lZCBhcyAwIGlzIGZhbHN5XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHByaW9yaXR5ICE9PSB1bmRlZmluZWQgPyBwcmlvcml0eSA6IHRoaXMuY291bnRyeUNvZGVzW2RpYWxDb2RlXS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGVzW2RpYWxDb2RlXVtpbmRleF0gPSBpc28yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3Byb2Nlc3NBbGxDb3VudHJpZXNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3Byb2Nlc3NBbGxDb3VudHJpZXMoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMub25seUNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsb3dlckNhc2VPbmx5Q291bnRyaWVzID0gdGhpcy5vcHRpb25zLm9ubHlDb3VudHJpZXMubWFwKGZ1bmN0aW9uKGNvdW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY291bnRyeS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cmllcyA9IGFsbENvdW50cmllcy5maWx0ZXIoZnVuY3Rpb24oY291bnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsb3dlckNhc2VPbmx5Q291bnRyaWVzLmluZGV4T2YoY291bnRyeS5pc28yKSA+IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmV4Y2x1ZGVDb3VudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbG93ZXJDYXNlRXhjbHVkZUNvdW50cmllcyA9IHRoaXMub3B0aW9ucy5leGNsdWRlQ291bnRyaWVzLm1hcChmdW5jdGlvbihjb3VudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50cnkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJpZXMgPSBhbGxDb3VudHJpZXMuZmlsdGVyKGZ1bmN0aW9uKGNvdW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlRXhjbHVkZUNvdW50cmllcy5pbmRleE9mKGNvdW50cnkuaXNvMikgPT09IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cmllcyA9IGFsbENvdW50cmllcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3RyYW5zbGF0ZUNvdW50cmllc0J5TG9jYWxlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF90cmFuc2xhdGVDb3VudHJpZXNCeUxvY2FsZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvdW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzbyA9IHRoaXMuY291bnRyaWVzW2ldLmlzbzIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubG9jYWxpemVkQ291bnRyaWVzLmhhc093blByb3BlcnR5KGlzbykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cmllc1tpXS5uYW1lID0gdGhpcy5vcHRpb25zLmxvY2FsaXplZENvdW50cmllc1tpc29dO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfY291bnRyeU5hbWVTb3J0XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9jb3VudHJ5TmFtZVNvcnQoYSwgYikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9wcm9jZXNzQ291bnRyeUNvZGVzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9wcm9jZXNzQ291bnRyeUNvZGVzKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxDb2RlTWF4TGVuID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJ5Q29kZXMgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3Q6IGFkZCBkaWFsIGNvZGVzXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jb3VudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gdGhpcy5jb3VudHJpZXNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRDb3VudHJ5Q29kZShjLmlzbzIsIGMuZGlhbENvZGUsIGMucHJpb3JpdHkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIG5leHQ6IGFkZCBhcmVhIGNvZGVzXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBzZWNvbmQgbG9vcCBvdmVyIGNvdW50cmllcywgdG8gbWFrZSBzdXJlIHdlIGhhdmUgYWxsIG9mIHRoZSBcInJvb3RcIiBjb3VudHJpZXNcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBpbiB0aGUgbWFwLCBzbyB0aGF0IHdlIGNhbiBhY2Nlc3MgdGhlbSwgYXMgZWFjaCB0aW1lIHdlIGFkZCBhbiBhcmVhIGNvZGUgc3Vic3RyaW5nXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBtYXAsIHdlIGFsc28gbmVlZCB0byBpbmNsdWRlIHRoZSBcInJvb3RcIiBjb3VudHJ5J3MgY29kZSwgYXMgdGhhdCBhbHNvIG1hdGNoZXNcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHRoaXMuY291bnRyaWVzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9jID0gdGhpcy5jb3VudHJpZXNbX2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJlYSBjb2Rlc1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9jLmFyZWFDb2Rlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByb290Q291bnRyeUNvZGUgPSB0aGlzLmNvdW50cnlDb2Rlc1tfYy5kaWFsQ29kZV1bMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggYXJlYSBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBfYy5hcmVhQ29kZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFyZWFDb2RlID0gX2MuYXJlYUNvZGVzW2pdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgZWFjaCBkaWdpdCBpbiB0aGUgYXJlYSBjb2RlIHRvIGFkZCBhbGwgcGFydGlhbCBtYXRjaGVzIGFzIHdlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDE7IGsgPCBhcmVhQ29kZS5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnRpYWxEaWFsQ29kZSA9IF9jLmRpYWxDb2RlICsgYXJlYUNvZGUuc3Vic3RyKDAsIGspO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgd2l0aCB0aGUgcm9vdCBjb3VudHJ5LCBhcyB0aGF0IGFsc28gbWF0Y2hlcyB0aGlzIGRpYWwgY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ291bnRyeUNvZGUocm9vdENvdW50cnlDb2RlLCBwYXJ0aWFsRGlhbENvZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ291bnRyeUNvZGUoX2MuaXNvMiwgcGFydGlhbERpYWxDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIGZ1bGwgYXJlYSBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZENvdW50cnlDb2RlKF9jLmlzbzIsIF9jLmRpYWxDb2RlICsgYXJlYUNvZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3Byb2Nlc3NQcmVmZXJyZWRDb3VudHJpZXNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3Byb2Nlc3NQcmVmZXJyZWRDb3VudHJpZXMoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlZmVycmVkQ291bnRyaWVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vcHRpb25zLnByZWZlcnJlZENvdW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50cnlDb2RlID0gdGhpcy5vcHRpb25zLnByZWZlcnJlZENvdW50cmllc1tpXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50cnlEYXRhID0gdGhpcy5fZ2V0Q291bnRyeURhdGEoY291bnRyeUNvZGUsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudHJ5RGF0YSkgdGhpcy5wcmVmZXJyZWRDb3VudHJpZXMucHVzaChjb3VudHJ5RGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9jcmVhdGVFbFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfY3JlYXRlRWwobmFtZSwgYXR0cnMsIGNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cnMpIGZvckVhY2hQcm9wKGF0dHJzLCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWwuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lcikgY29udGFpbmVyLmFwcGVuZENoaWxkKGVsKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2dlbmVyYXRlTWFya3VwXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9nZW5lcmF0ZU1hcmt1cCgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgYXV0b2NvbXBsZXRlIGRvZXMgbm90IGV4aXN0IG9uIHRoZSBlbGVtZW50IGFuZCBpdHMgZm9ybSwgdGhlblxuICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGF1dG9jb21wbGV0ZSBhcyB0aGVyZSdzIG5vIHNhZmUsIGNyb3NzLWJyb3dzZXIgZXZlbnQgd2UgY2FuIHJlYWN0IHRvLCBzbyBpdCBjYW5cbiAgICAgICAgICAgICAgICAgICAgLy8gZWFzaWx5IHB1dCB0aGUgcGx1Z2luIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSBlLmcuIHRoZSB3cm9uZyBmbGFnIHNlbGVjdGVkIGZvciB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gYXV0b2NvbXBsZXRlZCBudW1iZXIsIHdoaWNoIG9uIHN1Ym1pdCBjb3VsZCBtZWFuIHdyb25nIG51bWJlciBpcyBzYXZlZCAoZXNwIGluIG5hdGlvbmFsTW9kZSlcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRlbElucHV0Lmhhc0F0dHJpYnV0ZShcImF1dG9jb21wbGV0ZVwiKSAmJiAhKHRoaXMudGVsSW5wdXQuZm9ybSAmJiB0aGlzLnRlbElucHV0LmZvcm0uaGFzQXR0cmlidXRlKFwiYXV0b2NvbXBsZXRlXCIpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5zZXRBdHRyaWJ1dGUoXCJhdXRvY29tcGxldGVcIiwgXCJvZmZcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gY29udGFpbmVycyAobW9zdGx5IGZvciBwb3NpdGlvbmluZylcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudENsYXNzID0gXCJpdGlcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hbGxvd0Ryb3Bkb3duKSBwYXJlbnRDbGFzcyArPSBcIiBpdGktLWFsbG93LWRyb3Bkb3duXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VwYXJhdGVEaWFsQ29kZSkgcGFyZW50Q2xhc3MgKz0gXCIgaXRpLS1zZXBhcmF0ZS1kaWFsLWNvZGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5jdXN0b21Db250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENsYXNzICs9IFwiIFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Q2xhc3MgKz0gdGhpcy5vcHRpb25zLmN1c3RvbUNvbnRhaW5lcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IHRoaXMuX2NyZWF0ZUVsKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogcGFyZW50Q2xhc3NcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod3JhcHBlciwgdGhpcy50ZWxJbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmxhZ3NDb250YWluZXIgPSB0aGlzLl9jcmVhdGVFbChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzXCI6IFwiaXRpX19mbGFnLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgIH0sIHdyYXBwZXIpO1xuICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMudGVsSW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3RlZCBmbGFnIChkaXNwbGF5ZWQgdG8gbGVmdCBvZiBpbnB1dClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWcgPSB0aGlzLl9jcmVhdGVFbChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzXCI6IFwiaXRpX19zZWxlY3RlZC1mbGFnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBcImNvbWJvYm94XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtb3duc1wiOiBcImNvdW50cnktbGlzdGJveFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IFwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmZsYWdzQ29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWdJbm5lciA9IHRoaXMuX2NyZWF0ZUVsKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGlfX2ZsYWdcIlxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLnNlbGVjdGVkRmxhZyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VwYXJhdGVEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERpYWxDb2RlID0gdGhpcy5fY3JlYXRlRWwoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGlfX3NlbGVjdGVkLWRpYWwtY29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLnNlbGVjdGVkRmxhZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hbGxvd0Ryb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIGVsZW1lbnQgZm9jdXNhYmxlIGFuZCB0YWIgbmF2aWdhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxhZy5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLCBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duQXJyb3cgPSB0aGlzLl9jcmVhdGVFbChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0aV9fYXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5zZWxlY3RlZEZsYWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnRyeSBkcm9wZG93bjogcHJlZmVycmVkIGNvdW50cmllcywgdGhlbiBkaXZpZGVyLCB0aGVuIGFsbCBjb3VudHJpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUxpc3QgPSB0aGlzLl9jcmVhdGVFbChcInVsXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzXCI6IFwiaXRpX19jb3VudHJ5LWxpc3QgaXRpX19oaWRlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiY291bnRyeS1saXN0Ym94XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogXCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZExpc3RJdGVtcyh0aGlzLnByZWZlcnJlZENvdW50cmllcywgXCJpdGlfX3ByZWZlcnJlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVFbChcImxpXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0aV9fZGl2aWRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBcInNlcGFyYXRvclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtZGlzYWJsZWRcIjogXCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmNvdW50cnlMaXN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZExpc3RJdGVtcyh0aGlzLmNvdW50cmllcywgXCJpdGlfX3N0YW5kYXJkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGRyb3Bkb3duQ29udGFpbmVyIG1hcmt1cFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kcm9wZG93bkNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd24gPSB0aGlzLl9jcmVhdGVFbChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGkgaXRpLS1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd24uYXBwZW5kQ2hpbGQodGhpcy5jb3VudHJ5TGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmxhZ3NDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5jb3VudHJ5TGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5oaWRkZW5JbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhpZGRlbklucHV0TmFtZSA9IHRoaXMub3B0aW9ucy5oaWRkZW5JbnB1dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuYW1lID0gdGhpcy50ZWxJbnB1dC5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IG5hbWUubGFzdEluZGV4T2YoXCJbXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGlucHV0IG5hbWUgY29udGFpbnMgc3F1YXJlIGJyYWNrZXRzLCB0aGVuIGdpdmUgdGhlIGhpZGRlbiBpbnB1dCB0aGUgc2FtZSBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2luZyB0aGUgY29udGVudHMgb2YgdGhlIGxhc3Qgc2V0IG9mIGJyYWNrZXRzIHdpdGggdGhlIGdpdmVuIGhpZGRlbklucHV0IG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPT0gLTEpIGhpZGRlbklucHV0TmFtZSA9IFwiXCIuY29uY2F0KG5hbWUuc3Vic3RyKDAsIGkpLCBcIltcIikuY29uY2F0KGhpZGRlbklucHV0TmFtZSwgXCJdXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRkZW5JbnB1dCA9IHRoaXMuX2NyZWF0ZUVsKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogaGlkZGVuSW5wdXROYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGhpcy5oaWRkZW5JbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9hcHBlbmRMaXN0SXRlbXNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2FwcGVuZExpc3RJdGVtcyhjb3VudHJpZXMsIGNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjcmVhdGUgc28gbWFueSBET00gZWxlbWVudHMsIGl0IGlzIGZhc3RlciB0byBidWlsZCBhIHRlbXAgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVuIGFkZCBldmVyeXRoaW5nIHRvIHRoZSBET00gaW4gb25lIGdvIGF0IHRoZSBlbmRcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRtcCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZvciBlYWNoIGNvdW50cnlcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjID0gY291bnRyaWVzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3BlbiB0aGUgbGlzdCBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgKz0gXCI8bGkgY2xhc3M9J2l0aV9fY291bnRyeSBcIi5jb25jYXQoY2xhc3NOYW1lLCBcIicgdGFiSW5kZXg9Jy0xJyBpZD0naXRpLWl0ZW0tXCIpLmNvbmNhdChjLmlzbzIsIFwiJyByb2xlPSdvcHRpb24nIGRhdGEtZGlhbC1jb2RlPSdcIikuY29uY2F0KGMuZGlhbENvZGUsIFwiJyBkYXRhLWNvdW50cnktY29kZT0nXCIpLmNvbmNhdChjLmlzbzIsIFwiJz5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIGZsYWdcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSBcIjxkaXYgY2xhc3M9J2l0aV9fZmxhZy1ib3gnPjxkaXYgY2xhc3M9J2l0aV9fZmxhZyBpdGlfX1wiLmNvbmNhdChjLmlzbzIsIFwiJz48L2Rpdj48L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIGNvdW50cnkgbmFtZSBhbmQgZGlhbCBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgKz0gXCI8c3BhbiBjbGFzcz0naXRpX19jb3VudHJ5LW5hbWUnPlwiLmNvbmNhdChjLm5hbWUsIFwiPC9zcGFuPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSBcIjxzcGFuIGNsYXNzPSdpdGlfX2RpYWwtY29kZSc+K1wiLmNvbmNhdChjLmRpYWxDb2RlLCBcIjwvc3Bhbj5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbG9zZSB0aGUgbGlzdCBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgKz0gXCI8L2xpPlwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUxpc3QuaW5zZXJ0QWRqYWNlbnRIVE1MKFwiYmVmb3JlZW5kXCIsIHRtcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfc2V0SW5pdGlhbFN0YXRlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9zZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWwgPSB0aGlzLnRlbElucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGlhbENvZGUgPSB0aGlzLl9nZXREaWFsQ29kZSh2YWwpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgaXNSZWdpb25sZXNzTmFucCA9IHRoaXMuX2lzUmVnaW9ubGVzc05hbnAodmFsKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF90aGlzJG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsIGluaXRpYWxDb3VudHJ5ID0gX3RoaXMkb3B0aW9ucy5pbml0aWFsQ291bnRyeSwgbmF0aW9uYWxNb2RlID0gX3RoaXMkb3B0aW9ucy5uYXRpb25hbE1vZGUsIGF1dG9IaWRlRGlhbENvZGUgPSBfdGhpcyRvcHRpb25zLmF1dG9IaWRlRGlhbENvZGUsIHNlcGFyYXRlRGlhbENvZGUgPSBfdGhpcyRvcHRpb25zLnNlcGFyYXRlRGlhbENvZGU7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFscmVhZHkgaGF2ZSBhIGRpYWwgY29kZSwgYW5kIGl0J3Mgbm90IGEgcmVnaW9ubGVzc05hbnAsIHdlIGNhbiBnbyBhaGVhZCBhbmQgc2V0IHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBmbGFnLCBlbHNlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBjb3VudHJ5XG4gICAgICAgICAgICAgICAgICAgIGlmIChkaWFsQ29kZSAmJiAhaXNSZWdpb25sZXNzTmFucCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlRmxhZ0Zyb21OdW1iZXIodmFsKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbml0aWFsQ291bnRyeSAhPT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlZSBpZiB3ZSBzaG91bGQgc2VsZWN0IGEgZmxhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluaXRpYWxDb3VudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RmxhZyhpbml0aWFsQ291bnRyeS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpYWxDb2RlICYmIGlzUmVnaW9ubGVzc05hbnApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFzIGludGwgZGlhbCBjb2RlLCBpcyByZWdpb25sZXNzIG5hbnAsIGFuZCBubyBpbml0aWFsQ291bnRyeSwgc28gZGVmYXVsdCB0byBVU1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRGbGFnKFwidXNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gZGlhbCBjb2RlIGFuZCBubyBpbml0aWFsQ291bnRyeSwgc28gZGVmYXVsdCB0byBmaXJzdCBpbiBsaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSB0aGlzLnByZWZlcnJlZENvdW50cmllcy5sZW5ndGggPyB0aGlzLnByZWZlcnJlZENvdW50cmllc1swXS5pc28yIDogdGhpcy5jb3VudHJpZXNbMF0uaXNvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEZsYWcodGhpcy5kZWZhdWx0Q291bnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBlbXB0eSBhbmQgbm8gbmF0aW9uYWxNb2RlIGFuZCBubyBhdXRvSGlkZURpYWxDb2RlIHRoZW4gaW5zZXJ0IHRoZSBkZWZhdWx0IGRpYWwgY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWwgJiYgIW5hdGlvbmFsTW9kZSAmJiAhYXV0b0hpZGVEaWFsQ29kZSAmJiAhc2VwYXJhdGVEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQudmFsdWUgPSBcIitcIi5jb25jYXQodGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmRpYWxDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBpZiBpbml0aWFsQ291bnRyeSBpcyBzZXQgdG8gYXV0bywgdGhhdCB3aWxsIGJlIGhhbmRsZWQgc2VwYXJhdGVseVxuICAgICAgICAgICAgICAgICAgICAvLyBmb3JtYXQgLSBub3RlIHRoaXMgd29udCBiZSBydW4gYWZ0ZXIgX3VwZGF0ZURpYWxDb2RlIGFzIHRoYXQncyBvbmx5IGNhbGxlZCBpZiBubyB2YWxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCkgdGhpcy5fdXBkYXRlVmFsRnJvbU51bWJlcih2YWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2luaXRMaXN0ZW5lcnNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2luaXRMaXN0ZW5lcnMoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXRLZXlMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hdXRvSGlkZURpYWxDb2RlKSB0aGlzLl9pbml0Qmx1ckxpc3RlbmVycygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFsbG93RHJvcGRvd24pIHRoaXMuX2luaXREcm9wZG93bkxpc3RlbmVycygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oaWRkZW5JbnB1dCkgdGhpcy5faW5pdEhpZGRlbklucHV0TGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9pbml0SGlkZGVuSW5wdXRMaXN0ZW5lclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfaW5pdEhpZGRlbklucHV0TGlzdGVuZXIoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVIaWRkZW5JbnB1dFN1Ym1pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMzLmhpZGRlbklucHV0LnZhbHVlID0gX3RoaXMzLmdldE51bWJlcigpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50ZWxJbnB1dC5mb3JtKSB0aGlzLnRlbElucHV0LmZvcm0uYWRkRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCB0aGlzLl9oYW5kbGVIaWRkZW5JbnB1dFN1Ym1pdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfZ2V0Q2xvc2VzdExhYmVsXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXRDbG9zZXN0TGFiZWwoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbCA9IHRoaXMudGVsSW5wdXQ7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChlbCAmJiBlbC50YWdOYW1lICE9PSBcIkxBQkVMXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsID0gZWwucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfaW5pdERyb3Bkb3duTGlzdGVuZXJzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbml0RHJvcGRvd25MaXN0ZW5lcnMoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBoYWNrIGZvciBpbnB1dCBuZXN0ZWQgaW5zaWRlIGxhYmVsICh3aGljaCBpcyB2YWxpZCBtYXJrdXApOiBjbGlja2luZyB0aGUgc2VsZWN0ZWQtZmxhZyB0b1xuICAgICAgICAgICAgICAgICAgICAvLyBvcGVuIHRoZSBkcm9wZG93biB3b3VsZCB0aGVuIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciBhIDJuZCBjbGljayBvbiB0aGUgaW5wdXQgd2hpY2ggd291bGRcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xvc2UgaXQgYWdhaW5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlTGFiZWxDbGljayA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkcm9wZG93biBpcyBjbG9zZWQsIHRoZW4gZm9jdXMgdGhlIGlucHV0LCBlbHNlIGlnbm9yZSB0aGUgY2xpY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfdGhpczQuY291bnRyeUxpc3QuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXRpX19oaWRlXCIpKSBfdGhpczQudGVsSW5wdXQuZm9jdXMoKTsgZWxzZSBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHZhciBsYWJlbCA9IHRoaXMuX2dldENsb3Nlc3RMYWJlbCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWwpIGxhYmVsLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVMYWJlbENsaWNrKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdG9nZ2xlIGNvdW50cnkgZHJvcGRvd24gb24gY2xpY2tcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tTZWxlY3RlZEZsYWcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgaW50ZXJjZXB0IHRoaXMgZXZlbnQgaWYgd2UncmUgb3BlbmluZyB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsc2UgbGV0IGl0IGJ1YmJsZSB1cCB0byB0aGUgdG9wIChcImNsaWNrLW9mZi10by1jbG9zZVwiIGxpc3RlbmVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgY2Fubm90IGp1c3Qgc3RvcFByb3BhZ2F0aW9uIGFzIGl0IG1heSBiZSBuZWVkZWQgdG8gY2xvc2UgYW5vdGhlciBpbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzNC5jb3VudHJ5TGlzdC5jbGFzc0xpc3QuY29udGFpbnMoXCJpdGlfX2hpZGVcIikgJiYgIV90aGlzNC50ZWxJbnB1dC5kaXNhYmxlZCAmJiAhX3RoaXM0LnRlbElucHV0LnJlYWRPbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM0Ll9zaG93RHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWcuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuX2hhbmRsZUNsaWNrU2VsZWN0ZWRGbGFnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gb3BlbiBkcm9wZG93biBsaXN0IGlmIGN1cnJlbnRseSBmb2N1c2VkXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUZsYWdzQ29udGFpbmVyS2V5ZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc0Ryb3Bkb3duSGlkZGVuID0gX3RoaXM0LmNvdW50cnlMaXN0LmNsYXNzTGlzdC5jb250YWlucyhcIml0aV9faGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0Ryb3Bkb3duSGlkZGVuICYmIFsgXCJBcnJvd1VwXCIsIFwiVXBcIiwgXCJBcnJvd0Rvd25cIiwgXCJEb3duXCIsIFwiIFwiLCBcIkVudGVyXCIgXS5pbmRleE9mKGUua2V5KSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGZvcm0gZnJvbSBiZWluZyBzdWJtaXR0ZWQgaWYgXCJFTlRFUlwiIHdhcyBwcmVzc2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgZXZlbnQgZnJvbSBiZWluZyBoYW5kbGVkIGFnYWluIGJ5IGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczQuX3Nob3dEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsb3cgbmF2aWdhdGlvbiBmcm9tIGRyb3Bkb3duIHRvIGlucHV0IG9uIFRBQlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIlRhYlwiKSBfdGhpczQuX2Nsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbGFnc0NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9oYW5kbGVGbGFnc0NvbnRhaW5lcktleWRvd24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2luaXRSZXF1ZXN0c1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfaW5pdFJlcXVlc3RzKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXM1ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHVzZXIgaGFzIHNwZWNpZmllZCB0aGUgcGF0aCB0byB0aGUgdXRpbHMgc2NyaXB0LCBmZXRjaCBpdCBvbiB3aW5kb3cubG9hZCwgZWxzZSByZXNvbHZlXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXRpbHNTY3JpcHQgJiYgIXdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHBsdWdpbiBpcyBiZWluZyBpbml0aWFsaXNlZCBhZnRlciB0aGUgd2luZG93LmxvYWQgZXZlbnQgaGFzIGFscmVhZHkgYmVlbiBmaXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLndpbmRvd0xvYWRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLmxvYWRVdGlscyh0aGlzLm9wdGlvbnMudXRpbHNTY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YWl0IHVudGlsIHRoZSBsb2FkIGV2ZW50IHNvIHdlIGRvbid0IGJsb2NrIGFueSBvdGhlciByZXF1ZXN0cyBlLmcuIHRoZSBmbGFncyBpbWFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMubG9hZFV0aWxzKF90aGlzNS5vcHRpb25zLnV0aWxzU2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHRoaXMucmVzb2x2ZVV0aWxzU2NyaXB0UHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmluaXRpYWxDb3VudHJ5ID09PSBcImF1dG9cIikgdGhpcy5fbG9hZEF1dG9Db3VudHJ5KCk7IGVsc2UgdGhpcy5yZXNvbHZlQXV0b0NvdW50cnlQcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfbG9hZEF1dG9Db3VudHJ5XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9sb2FkQXV0b0NvdW50cnkoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIDMgb3B0aW9uczpcbiAgICAgICAgICAgICAgICAgICAgLy8gMSkgYWxyZWFkeSBsb2FkZWQgKHdlJ3JlIGRvbmUpXG4gICAgICAgICAgICAgICAgICAgIC8vIDIpIG5vdCBhbHJlYWR5IHN0YXJ0ZWQgbG9hZGluZyAoc3RhcnQpXG4gICAgICAgICAgICAgICAgICAgIC8vIDMpIGFscmVhZHkgc3RhcnRlZCBsb2FkaW5nIChkbyBub3RoaW5nIC0ganVzdCB3YWl0IGZvciBsb2FkaW5nIGNhbGxiYWNrIHRvIGZpcmUpXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5hdXRvQ291bnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBdXRvQ291bnRyeSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5zdGFydGVkTG9hZGluZ0F1dG9Db3VudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCBkbyB0aGlzIHR3aWNlIVxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuc3RhcnRlZExvYWRpbmdBdXRvQ291bnRyeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5nZW9JcExvb2t1cCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmdlb0lwTG9va3VwKGZ1bmN0aW9uKGNvdW50cnlDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLmF1dG9Db3VudHJ5ID0gY291bnRyeUNvZGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGVsbCBhbGwgaW5zdGFuY2VzIHRoZSBhdXRvIGNvdW50cnkgaXMgcmVhZHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQganVzdCBiZSB0aGUgY3VycmVudCBpbnN0YW5jZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVVBEQVRFOiB1c2Ugc2V0VGltZW91dCBpbiBjYXNlIHRoZWlyIGdlb0lwTG9va3VwIGZ1bmN0aW9uIGNhbGxzIHRoaXMgY2FsbGJhY2sgc3RyYWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXdheSAoZS5nLiBpZiB0aGV5IGhhdmUgYWxyZWFkeSBkb25lIHRoZSBnZW8gaXAgbG9va3VwIHNvbWV3aGVyZSBlbHNlKS4gVXNpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0VGltZW91dCBtZWFucyB0aGF0IHRoZSBjdXJyZW50IHRocmVhZCBvZiBleGVjdXRpb24gd2lsbCBmaW5pc2ggYmVmb3JlIGV4ZWN1dGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLCB3aGljaCBhbGxvd3MgdGhlIHBsdWdpbiB0byBmaW5pc2ggaW5pdGlhbGlzaW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvckVhY2hJbnN0YW5jZShcImhhbmRsZUF1dG9Db3VudHJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvckVhY2hJbnN0YW5jZShcInJlamVjdEF1dG9Db3VudHJ5UHJvbWlzZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2luaXRLZXlMaXN0ZW5lcnNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2luaXRLZXlMaXN0ZW5lcnMoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhpczYgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgZmxhZyBvbiBrZXl1cFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVLZXl1cEV2ZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXM2Ll91cGRhdGVGbGFnRnJvbU51bWJlcihfdGhpczYudGVsSW5wdXQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2Ll90cmlnZ2VyQ291bnRyeUNoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLCB0aGlzLl9oYW5kbGVLZXl1cEV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGZsYWcgb24gY3V0L3Bhc3RlIGV2ZW50cyAobm93IHN1cHBvcnRlZCBpbiBhbGwgbWFqb3IgYnJvd3NlcnMpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaXBib2FyZEV2ZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoYWNrIGJlY2F1c2UgXCJwYXN0ZVwiIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSBpbnB1dCBpcyB1cGRhdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KF90aGlzNi5faGFuZGxlS2V5dXBFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImN1dFwiLCB0aGlzLl9oYW5kbGVDbGlwYm9hcmRFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcInBhc3RlXCIsIHRoaXMuX2hhbmRsZUNsaXBib2FyZEV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9jYXBcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2NhcChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1heCA9IHRoaXMudGVsSW5wdXQuZ2V0QXR0cmlidXRlKFwibWF4bGVuZ3RoXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF4ICYmIG51bWJlci5sZW5ndGggPiBtYXggPyBudW1iZXIuc3Vic3RyKDAsIG1heCkgOiBudW1iZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfaW5pdEJsdXJMaXN0ZW5lcnNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2luaXRCbHVyTGlzdGVuZXJzKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXM3ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gb24gYmx1ciBvciBmb3JtIHN1Ym1pdDogaWYganVzdCBhIGRpYWwgY29kZSB0aGVuIHJlbW92ZSBpdFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVTdWJtaXRPckJsdXJFdmVudCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM3Ll9yZW1vdmVFbXB0eURpYWxDb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlbElucHV0LmZvcm0pIHRoaXMudGVsSW5wdXQuZm9ybS5hZGRFdmVudExpc3RlbmVyKFwic3VibWl0XCIsIHRoaXMuX2hhbmRsZVN1Ym1pdE9yQmx1ckV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLCB0aGlzLl9oYW5kbGVTdWJtaXRPckJsdXJFdmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfcmVtb3ZlRW1wdHlEaWFsQ29kZVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVtb3ZlRW1wdHlEaWFsQ29kZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGVsSW5wdXQudmFsdWUuY2hhckF0KDApID09PSBcIitcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG51bWVyaWMgPSB0aGlzLl9nZXROdW1lcmljKHRoaXMudGVsSW5wdXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYganVzdCBhIHBsdXMsIG9yIGlmIGp1c3QgYSBkaWFsIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbnVtZXJpYyB8fCB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuZGlhbENvZGUgPT09IG51bWVyaWMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2dldE51bWVyaWNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2dldE51bWVyaWMocykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC9cXEQvZywgXCJcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfdHJpZ2dlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfdHJpZ2dlcihuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgdG8gdXNlIG9sZCBzY2hvb2wgZG9jdW1lbnQuY3JlYXRlRXZlbnQgYXMgSUUxMSBkb2Vzbid0IHN1cHBvcnQgYG5ldyBFdmVudCgpYCBzeW50YXhcbiAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO1xuICAgICAgICAgICAgICAgICAgICBlLmluaXRFdmVudChuYW1lLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2FuIGJ1YmJsZSwgYW5kIGlzIGNhbmNlbGxhYmxlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQuZGlzcGF0Y2hFdmVudChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9zaG93RHJvcGRvd25cIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3Nob3dEcm9wZG93bigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJ5TGlzdC5jbGFzc0xpc3QucmVtb3ZlKFwiaXRpX19oaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxhZy5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RHJvcGRvd25Qb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgaGlnaGxpZ2h0aW5nIGFuZCBzY3JvbGwgdG8gYWN0aXZlIGxpc3QgaXRlbVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRMaXN0SXRlbSh0aGlzLmFjdGl2ZUl0ZW0sIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvKHRoaXMuYWN0aXZlSXRlbSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gYmluZCBhbGwgdGhlIGRyb3Bkb3duLXJlbGF0ZWQgbGlzdGVuZXJzOiBtb3VzZW92ZXIsIGNsaWNrLCBjbGljay1vZmYsIGtleWRvd25cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYmluZERyb3Bkb3duTGlzdGVuZXJzKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgYXJyb3dcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFycm93LmNsYXNzTGlzdC5hZGQoXCJpdGlfX2Fycm93LS11cFwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcihcIm9wZW46Y291bnRyeWRyb3Bkb3duXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3RvZ2dsZUNsYXNzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF90b2dnbGVDbGFzcyhlbCwgY2xhc3NOYW1lLCBzaG91bGRIYXZlQ2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEhhdmVDbGFzcyAmJiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIGVsLmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTsgZWxzZSBpZiAoIXNob3VsZEhhdmVDbGFzcyAmJiBlbC5jbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKSkgZWwuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3NldERyb3Bkb3duUG9zaXRpb25cIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3NldERyb3Bkb3duUG9zaXRpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhpczggPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRyb3Bkb3duQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuZHJvcGRvd25Db250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5kcm9wZG93bik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG9zID0gdGhpcy50ZWxJbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbmRvd1RvcCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNDM4NDA5MS8yMTc4NjZcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB3aW5kb3dUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dFRvcCA9IHBvcy50b3AgKyB3aW5kb3dUb3A7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZHJvcGRvd25IZWlnaHQgPSB0aGlzLmNvdW50cnlMaXN0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRyb3Bkb3duRml0c0JlbG93ID0gKGRyb3Bkb3duQm90dG9tIDwgd2luZG93Qm90dG9tKVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRyb3Bkb3duRml0c0JlbG93ID0gaW5wdXRUb3AgKyB0aGlzLnRlbElucHV0Lm9mZnNldEhlaWdodCArIGRyb3Bkb3duSGVpZ2h0IDwgd2luZG93VG9wICsgd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRyb3Bkb3duRml0c0Fib3ZlID0gaW5wdXRUb3AgLSBkcm9wZG93bkhlaWdodCA+IHdpbmRvd1RvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5IGRlZmF1bHQsIHRoZSBkcm9wZG93biB3aWxsIGJlIGJlbG93IHRoZSBpbnB1dC4gSWYgd2Ugd2FudCB0byBwb3NpdGlvbiBpdCBhYm92ZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlucHV0LCB3ZSBhZGQgdGhlIGRyb3B1cCBjbGFzcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RvZ2dsZUNsYXNzKHRoaXMuY291bnRyeUxpc3QsIFwiaXRpX19jb3VudHJ5LWxpc3QtLWRyb3B1cFwiLCAhZHJvcGRvd25GaXRzQmVsb3cgJiYgZHJvcGRvd25GaXRzQWJvdmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgZHJvcGRvd25Db250YWluZXIgaXMgZW5hYmxlZCwgY2FsY3VsYXRlIHBvc3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZHJvcGRvd25Db250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieSBkZWZhdWx0IHRoZSBkcm9wZG93biB3aWxsIGJlIGRpcmVjdGx5IG92ZXIgdGhlIGlucHV0IGJlY2F1c2UgaXQncyBub3QgaW4gdGhlIGZsb3cuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2FudCB0byBwb3NpdGlvbiBpdCBiZWxvdywgd2UgbmVlZCB0byBhZGQgc29tZSBleHRyYSB0b3AgdmFsdWUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV4dHJhVG9wID0gIWRyb3Bkb3duRml0c0JlbG93ICYmIGRyb3Bkb3duRml0c0Fib3ZlID8gMCA6IHRoaXMudGVsSW5wdXQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBwbGFjZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duLnN0eWxlLnRvcCA9IFwiXCIuY29uY2F0KGlucHV0VG9wICsgZXh0cmFUb3AsIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5zdHlsZS5sZWZ0ID0gXCJcIi5jb25jYXQocG9zLmxlZnQgKyBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQsIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvc2UgbWVudSBvbiB3aW5kb3cgc2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlV2luZG93U2Nyb2xsID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczguX2Nsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMuX2hhbmRsZVdpbmRvd1Njcm9sbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9nZXRDbG9zZXN0TGlzdEl0ZW1cIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2dldENsb3Nlc3RMaXN0SXRlbSh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVsID0gdGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZWwgJiYgZWwgIT09IHRoaXMuY291bnRyeUxpc3QgJiYgIWVsLmNsYXNzTGlzdC5jb250YWlucyhcIml0aV9fY291bnRyeVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWwgPSBlbC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHJlYWNoZWQgdGhlIGNvdW50cnlMaXN0IGVsZW1lbnQsIHRoZW4gcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsID09PSB0aGlzLmNvdW50cnlMaXN0ID8gbnVsbCA6IGVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2JpbmREcm9wZG93bkxpc3RlbmVyc1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfYmluZERyb3Bkb3duTGlzdGVuZXJzKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXM5ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBtb3VzZSBvdmVyIGEgbGlzdCBpdGVtLCBqdXN0IGhpZ2hsaWdodCB0aGF0IG9uZVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhZGQgdGhlIGNsYXNzIFwiaGlnaGxpZ2h0XCIsIHNvIGlmIHRoZXkgaGl0IFwiZW50ZXJcIiB3ZSBrbm93IHdoaWNoIG9uZSB0byBzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlTW91c2VvdmVyQ291bnRyeUxpc3QgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgZXZlbnQgZGVsZWdhdGlvbiwgYXMgd2UncmUgbGlzdGVuaW5nIGZvciB0aGlzIGV2ZW50IG9uIHRoZSBjb3VudHJ5TGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RJdGVtID0gX3RoaXM5Ll9nZXRDbG9zZXN0TGlzdEl0ZW0oZS50YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3RJdGVtKSBfdGhpczkuX2hpZ2hsaWdodExpc3RJdGVtKGxpc3RJdGVtLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUxpc3QuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCB0aGlzLl9oYW5kbGVNb3VzZW92ZXJDb3VudHJ5TGlzdCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxpc3RlbiBmb3IgY291bnRyeSBzZWxlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tDb3VudHJ5TGlzdCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0SXRlbSA9IF90aGlzOS5fZ2V0Q2xvc2VzdExpc3RJdGVtKGUudGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0SXRlbSkgX3RoaXM5Ll9zZWxlY3RMaXN0SXRlbShsaXN0SXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUxpc3QuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuX2hhbmRsZUNsaWNrQ291bnRyeUxpc3QpO1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGljayBvZmYgdG8gY2xvc2VcbiAgICAgICAgICAgICAgICAgICAgLy8gKGV4Y2VwdCB3aGVuIHRoaXMgaW5pdGlhbCBvcGVuaW5nIGNsaWNrIGlzIGJ1YmJsaW5nIHVwKVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW5ub3QganVzdCBzdG9wUHJvcGFnYXRpb24gYXMgaXQgbWF5IGJlIG5lZWRlZCB0byBjbG9zZSBhbm90aGVyIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgICAgIHZhciBpc09wZW5pbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlja09mZlRvQ2xvc2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNPcGVuaW5nKSBfdGhpczkuX2Nsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzT3BlbmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuX2hhbmRsZUNsaWNrT2ZmVG9DbG9zZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxpc3RlbiBmb3IgdXAvZG93biBzY3JvbGxpbmcsIGVudGVyIHRvIHNlbGVjdCwgb3IgbGV0dGVycyB0byBqdW1wIHRvIGNvdW50cnkgbmFtZS5cbiAgICAgICAgICAgICAgICAgICAgLy8gdXNlIGtleWRvd24gYXMga2V5cHJlc3MgZG9lc24ndCBmaXJlIGZvciBub24tY2hhciBrZXlzIGFuZCB3ZSB3YW50IHRvIGNhdGNoIGlmIHRoZXlcbiAgICAgICAgICAgICAgICAgICAgLy8ganVzdCBoaXQgZG93biBhbmQgaG9sZCBpdCB0byBzY3JvbGwgZG93biAobm8ga2V5dXAgZXZlbnQpLlxuICAgICAgICAgICAgICAgICAgICAvLyBsaXN0ZW4gb24gdGhlIGRvY3VtZW50IGJlY2F1c2UgdGhhdCdzIHdoZXJlIGtleSBldmVudHMgYXJlIHRyaWdnZXJlZCBpZiBubyBpbnB1dCBoYXMgZm9jdXNcbiAgICAgICAgICAgICAgICAgICAgdmFyIHF1ZXJ5ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHF1ZXJ5VGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVLZXlkb3duT25Ecm9wZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgZG93biBrZXkgZnJvbSBzY3JvbGxpbmcgdGhlIHdob2xlIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZW50ZXIga2V5IGZyb20gc3VibWl0dGluZyBhIGZvcm0gZXRjXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1cCBhbmQgZG93biB0byBuYXZpZ2F0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSBcIkFycm93VXBcIiB8fCBlLmtleSA9PT0gXCJVcFwiIHx8IGUua2V5ID09PSBcIkFycm93RG93blwiIHx8IGUua2V5ID09PSBcIkRvd25cIikgX3RoaXM5Ll9oYW5kbGVVcERvd25LZXkoZS5rZXkpOyBlbHNlIGlmIChlLmtleSA9PT0gXCJFbnRlclwiKSBfdGhpczkuX2hhbmRsZUVudGVyS2V5KCk7IGVsc2UgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSBfdGhpczkuX2Nsb3NlRHJvcGRvd24oKTsgZWxzZSBpZiAoL15bYS16QS1aw4Atw7/QsC3Rj9CQLdCvIF0kLy50ZXN0KGUua2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGp1bXAgdG8gY291bnRyaWVzIHRoYXQgc3RhcnQgd2l0aCB0aGUgcXVlcnkgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5VGltZXIpIGNsZWFyVGltZW91dChxdWVyeVRpbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSArPSBlLmtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzOS5fc2VhcmNoRm9yQ291bnRyeShxdWVyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHRpbWVyIGhpdHMgMSBzZWNvbmQsIHJlc2V0IHRoZSBxdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMWUzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5faGFuZGxlS2V5ZG93bk9uRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2hhbmRsZVVwRG93bktleVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfaGFuZGxlVXBEb3duS2V5KGtleSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGtleSA9PT0gXCJBcnJvd1VwXCIgfHwga2V5ID09PSBcIlVwXCIgPyB0aGlzLmhpZ2hsaWdodGVkSXRlbS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIDogdGhpcy5oaWdobGlnaHRlZEl0ZW0ubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgZGl2aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXRpX19kaXZpZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGtleSA9PT0gXCJBcnJvd1VwXCIgfHwga2V5ID09PSBcIlVwXCIgPyBuZXh0LnByZXZpb3VzRWxlbWVudFNpYmxpbmcgOiBuZXh0Lm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodExpc3RJdGVtKG5leHQsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfaGFuZGxlRW50ZXJLZXlcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2hhbmRsZUVudGVyS2V5KCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oaWdobGlnaHRlZEl0ZW0pIHRoaXMuX3NlbGVjdExpc3RJdGVtKHRoaXMuaGlnaGxpZ2h0ZWRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9zZWFyY2hGb3JDb3VudHJ5XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9zZWFyY2hGb3JDb3VudHJ5KHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jb3VudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zdGFydHNXaXRoKHRoaXMuY291bnRyaWVzW2ldLm5hbWUsIHF1ZXJ5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0SXRlbSA9IHRoaXMuY291bnRyeUxpc3QucXVlcnlTZWxlY3RvcihcIiNpdGktaXRlbS1cIi5jb25jYXQodGhpcy5jb3VudHJpZXNbaV0uaXNvMikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBoaWdobGlnaHRpbmcgYW5kIHNjcm9sbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodExpc3RJdGVtKGxpc3RJdGVtLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG8obGlzdEl0ZW0sIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfc3RhcnRzV2l0aFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfc3RhcnRzV2l0aChhLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnN1YnN0cigwLCBiLmxlbmd0aCkudG9Mb3dlckNhc2UoKSA9PT0gYjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl91cGRhdGVWYWxGcm9tTnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF91cGRhdGVWYWxGcm9tTnVtYmVyKG9yaWdpbmFsTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1iZXIgPSBvcmlnaW5hbE51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mb3JtYXRPbkRpc3BsYXkgJiYgd2luZG93LmludGxUZWxJbnB1dFV0aWxzICYmIHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHVzZU5hdGlvbmFsID0gIXRoaXMub3B0aW9ucy5zZXBhcmF0ZURpYWxDb2RlICYmICh0aGlzLm9wdGlvbnMubmF0aW9uYWxNb2RlIHx8IG51bWJlci5jaGFyQXQoMCkgIT09IFwiK1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfaW50bFRlbElucHV0VXRpbHMkbnUgPSBpbnRsVGVsSW5wdXRVdGlscy5udW1iZXJGb3JtYXQsIE5BVElPTkFMID0gX2ludGxUZWxJbnB1dFV0aWxzJG51Lk5BVElPTkFMLCBJTlRFUk5BVElPTkFMID0gX2ludGxUZWxJbnB1dFV0aWxzJG51LklOVEVSTkFUSU9OQUw7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybWF0ID0gdXNlTmF0aW9uYWwgPyBOQVRJT05BTCA6IElOVEVSTkFUSU9OQUw7XG4gICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBpbnRsVGVsSW5wdXRVdGlscy5mb3JtYXROdW1iZXIobnVtYmVyLCB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMiwgZm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSB0aGlzLl9iZWZvcmVTZXROdW1iZXIobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC52YWx1ZSA9IG51bWJlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl91cGRhdGVGbGFnRnJvbU51bWJlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfdXBkYXRlRmxhZ0Zyb21OdW1iZXIob3JpZ2luYWxOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UncmUgaW4gbmF0aW9uYWxNb2RlIGFuZCB3ZSBhbHJlYWR5IGhhdmUgVVMvQ2FuYWRhIHNlbGVjdGVkLCBtYWtlIHN1cmUgdGhlIG51bWJlciBzdGFydHNcbiAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBhICsxIHNvIF9nZXREaWFsQ29kZSB3aWxsIGJlIGFibGUgdG8gZXh0cmFjdCB0aGUgYXJlYSBjb2RlXG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZTogaWYgd2UgZG9udCB5ZXQgaGF2ZSBzZWxlY3RlZENvdW50cnlEYXRhLCBidXQgd2UncmUgaGVyZSAodHJ5aW5nIHRvIHVwZGF0ZSB0aGUgZmxhZ1xuICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIHRoZSBudW1iZXIpLCB0aGF0IG1lYW5zIHdlJ3JlIGluaXRpYWxpc2luZyB0aGUgcGx1Z2luIHdpdGggYSBudW1iZXIgdGhhdCBhbHJlYWR5IGhhcyBhXG4gICAgICAgICAgICAgICAgICAgIC8vIGRpYWwgY29kZSwgc28gZmluZSB0byBpZ25vcmUgdGhpcyBiaXRcbiAgICAgICAgICAgICAgICAgICAgdmFyIG51bWJlciA9IG9yaWdpbmFsTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWREaWFsQ29kZSA9IHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlzTmFucCA9IHNlbGVjdGVkRGlhbENvZGUgPT09IFwiMVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyICYmIHRoaXMub3B0aW9ucy5uYXRpb25hbE1vZGUgJiYgaXNOYW5wICYmIG51bWJlci5jaGFyQXQoMCkgIT09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyLmNoYXJBdCgwKSAhPT0gXCIxXCIpIG51bWJlciA9IFwiMVwiLmNvbmNhdChudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gXCIrXCIuY29uY2F0KG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGZsYWcgaWYgdXNlciB0eXBlcyBhcmVhIGNvZGUgZm9yIGFub3RoZXIgY291bnRyeVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNlcGFyYXRlRGlhbENvZGUgJiYgc2VsZWN0ZWREaWFsQ29kZSAmJiBudW1iZXIuY2hhckF0KDApICE9PSBcIitcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gXCIrXCIuY29uY2F0KHNlbGVjdGVkRGlhbENvZGUpLmNvbmNhdChudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHRyeSBhbmQgZXh0cmFjdCB2YWxpZCBkaWFsIGNvZGUgZnJvbSBpbnB1dFxuICAgICAgICAgICAgICAgICAgICB2YXIgZGlhbENvZGUgPSB0aGlzLl9nZXREaWFsQ29kZShudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbnVtZXJpYyA9IHRoaXMuX2dldE51bWVyaWMobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50cnlDb2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRpYWxDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY291bnRyeUNvZGVzID0gdGhpcy5jb3VudHJ5Q29kZXNbdGhpcy5fZ2V0TnVtZXJpYyhkaWFsQ29kZSldO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHJpZ2h0IGNvdW50cnkgaXMgYWxyZWFkeSBzZWxlY3RlZC4gdGhpcyBzaG91bGQgYmUgZmFsc2UgaWYgdGhlIG51bWJlciBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9uZ2VyIHRoYW4gdGhlIG1hdGNoZWQgZGlhbCBjb2RlIGJlY2F1c2UgaW4gdGhpcyBjYXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIGFyZSBtdWx0aXBsZSBjb3VudHJ5IG1hdGNoZXMsIHRoYXQgdGhlIGZpcnN0IG9uZSBpcyBzZWxlY3RlZCAobm90ZTogd2UgY291bGRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgY2hlY2sgdGhhdCBoZXJlLCBidXQgaXQgcmVxdWlyZXMgdGhlIHNhbWUgbG9vcCB0aGF0IHdlIGFscmVhZHkgaGF2ZSBsYXRlcilcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhbHJlYWR5U2VsZWN0ZWQgPSBjb3VudHJ5Q29kZXMuaW5kZXhPZih0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMikgIT09IC0xICYmIG51bWVyaWMubGVuZ3RoIDw9IGRpYWxDb2RlLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNSZWdpb25sZXNzTmFucE51bWJlciA9IHNlbGVjdGVkRGlhbENvZGUgPT09IFwiMVwiICYmIHRoaXMuX2lzUmVnaW9ubGVzc05hbnAobnVtZXJpYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHVwZGF0ZSB0aGUgZmxhZyBpZjpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEpIE5PVCAod2UgY3VycmVudGx5IGhhdmUgYSBOQU5QIGZsYWcgc2VsZWN0ZWQsIGFuZCB0aGUgbnVtYmVyIGlzIGEgcmVnaW9ubGVzc05hbnApXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBTkRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEIpIHRoZSByaWdodCBjb3VudHJ5IGlzIG5vdCBhbHJlYWR5IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUmVnaW9ubGVzc05hbnBOdW1iZXIgJiYgIWFscmVhZHlTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHVzaW5nIG9ubHlDb3VudHJpZXMgb3B0aW9uLCBjb3VudHJ5Q29kZXNbMF0gbWF5IGJlIGVtcHR5LCBzbyB3ZSBtdXN0IGZpbmQgdGhlIGZpcnN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm9uLWVtcHR5IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudHJ5Q29kZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50cnlDb2Rlc1tqXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGUgPSBjb3VudHJ5Q29kZXNbal07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIuY2hhckF0KDApID09PSBcIitcIiAmJiBudW1lcmljLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW52YWxpZCBkaWFsIGNvZGUsIHNvIGVtcHR5XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB1c2UgZ2V0TnVtZXJpYyBoZXJlIGJlY2F1c2UgdGhlIG51bWJlciBoYXMgbm90IGJlZW4gZm9ybWF0dGVkIHlldCwgc28gY291bGQgY29udGFpblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFkIGNoYXJzXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIW51bWJlciB8fCBudW1iZXIgPT09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbXB0eSwgb3IganVzdCBhIHBsdXMsIHNvIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlID0gdGhpcy5kZWZhdWx0Q291bnRyeTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY291bnRyeUNvZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zZXRGbGFnKGNvdW50cnlDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfaXNSZWdpb25sZXNzTmFucFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfaXNSZWdpb25sZXNzTmFucChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG51bWVyaWMgPSB0aGlzLl9nZXROdW1lcmljKG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1lcmljLmNoYXJBdCgwKSA9PT0gXCIxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcmVhQ29kZSA9IG51bWVyaWMuc3Vic3RyKDEsIDMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbmxlc3NOYW5wTnVtYmVycy5pbmRleE9mKGFyZWFDb2RlKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2hpZ2hsaWdodExpc3RJdGVtXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9oaWdobGlnaHRMaXN0SXRlbShsaXN0SXRlbSwgc2hvdWxkRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXZJdGVtID0gdGhpcy5oaWdobGlnaHRlZEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2SXRlbSkgcHJldkl0ZW0uY2xhc3NMaXN0LnJlbW92ZShcIml0aV9faGlnaGxpZ2h0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodGVkSXRlbSA9IGxpc3RJdGVtO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZ2hsaWdodGVkSXRlbS5jbGFzc0xpc3QuYWRkKFwiaXRpX19oaWdobGlnaHRcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRGb2N1cykgdGhpcy5oaWdobGlnaHRlZEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9nZXRDb3VudHJ5RGF0YVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfZ2V0Q291bnRyeURhdGEoY291bnRyeUNvZGUsIGlnbm9yZU9ubHlDb3VudHJpZXNPcHRpb24sIGFsbG93RmFpbCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY291bnRyeUxpc3QgPSBpZ25vcmVPbmx5Q291bnRyaWVzT3B0aW9uID8gYWxsQ291bnRyaWVzIDogdGhpcy5jb3VudHJpZXM7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnRyeUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudHJ5TGlzdFtpXS5pc28yID09PSBjb3VudHJ5Q29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3VudHJ5TGlzdFtpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoYWxsb3dGYWlsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb3VudHJ5IGRhdGEgZm9yICdcIi5jb25jYXQoY291bnRyeUNvZGUsIFwiJ1wiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfc2V0RmxhZ1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfc2V0RmxhZyhjb3VudHJ5Q29kZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcHJldkNvdW50cnkgPSB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMiA/IHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YSA6IHt9O1xuICAgICAgICAgICAgICAgICAgICAvLyBkbyB0aGlzIGZpcnN0IGFzIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IgYW5kIHN0b3AgaWYgY291bnRyeUNvZGUgaXMgaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEgPSBjb3VudHJ5Q29kZSA/IHRoaXMuX2dldENvdW50cnlEYXRhKGNvdW50cnlDb2RlLCBmYWxzZSwgZmFsc2UpIDoge307XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgZGVmYXVsdENvdW50cnkgLSB3ZSBvbmx5IG5lZWQgdGhlIGlzbzIgZnJvbSBub3cgb24sIHNvIGp1c3Qgc3RvcmUgdGhhdFxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxhZ0lubmVyLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIFwiaXRpX19mbGFnIGl0aV9fXCIuY29uY2F0KGNvdW50cnlDb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgY291bnRyeSdzIHRpdGxlIGF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBjb3VudHJ5Q29kZSA/IFwiXCIuY29uY2F0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5uYW1lLCBcIjogK1wiKS5jb25jYXQodGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmRpYWxDb2RlKSA6IFwiVW5rbm93blwiO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxhZy5zZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiLCB0aXRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VwYXJhdGVEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpYWxDb2RlID0gdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmRpYWxDb2RlID8gXCIrXCIuY29uY2F0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZSkgOiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERpYWxDb2RlLmlubmVySFRNTCA9IGRpYWxDb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0V2lkdGggaXMgemVybyBpZiBpbnB1dCBpcyBpbiBhIGhpZGRlbiBjb250YWluZXIgZHVyaW5nIGluaXRpYWxpc2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRGbGFnV2lkdGggPSB0aGlzLnNlbGVjdGVkRmxhZy5vZmZzZXRXaWR0aCB8fCB0aGlzLl9nZXRIaWRkZW5TZWxlY3RlZEZsYWdXaWR0aCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIDZweCBvZiBwYWRkaW5nIGFmdGVyIHRoZSBncmV5IHNlbGVjdGVkLWRpYWwtY29kZSBib3gsIGFzIHRoaXMgaXMgd2hhdCB3ZSB1c2UgaW4gdGhlIGNzc1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5zdHlsZS5wYWRkaW5nTGVmdCA9IFwiXCIuY29uY2F0KHNlbGVjdGVkRmxhZ1dpZHRoICsgNiwgXCJweFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIGlucHV0J3MgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBhY3RpdmUgbGlzdCBpdGVtXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYWxsb3dEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByZXZJdGVtID0gdGhpcy5hY3RpdmVJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkl0ZW0uY2xhc3NMaXN0LnJlbW92ZShcIml0aV9fYWN0aXZlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZJdGVtLnNldEF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIiwgXCJmYWxzZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudHJ5Q29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXh0SXRlbSA9IHRoaXMuY291bnRyeUxpc3QucXVlcnlTZWxlY3RvcihcIiNpdGktaXRlbS1cIi5jb25jYXQoY291bnRyeUNvZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0SXRlbS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0SXRlbS5jbGFzc0xpc3QuYWRkKFwiaXRpX19hY3RpdmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtID0gbmV4dEl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWcuc2V0QXR0cmlidXRlKFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCIsIG5leHRJdGVtLmdldEF0dHJpYnV0ZShcImlkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gaWYgdGhlIGZsYWcgaGFzIGNoYW5nZWQgb3Igbm90XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2Q291bnRyeS5pc28yICE9PSBjb3VudHJ5Q29kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9nZXRIaWRkZW5TZWxlY3RlZEZsYWdXaWR0aFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfZ2V0SGlkZGVuU2VsZWN0ZWRGbGFnV2lkdGgoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGdldCB0aGUgcmlnaHQgc3R5bGluZyB0byBhcHBseSwgYWxsIHdlIG5lZWQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBjb250YWluZXIsXG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVuIHRvIGluamVjdCBhIGRlZXAgY2xvbmUgb2YgdGhlIHNlbGVjdGVkRmxhZyBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250YWluZXJDbG9uZSA9IHRoaXMudGVsSW5wdXQucGFyZW50Tm9kZS5jbG9uZU5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyQ2xvbmUuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyQ2xvbmUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRGbGFnQ2xvbmUgPSB0aGlzLnNlbGVjdGVkRmxhZy5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsb25lLmFwcGVuZENoaWxkKHNlbGVjdGVkRmxhZ0Nsb25lKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdpZHRoID0gc2VsZWN0ZWRGbGFnQ2xvbmUub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsb25lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGFpbmVyQ2xvbmUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfdXBkYXRlUGxhY2Vob2xkZXJcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3VwZGF0ZVBsYWNlaG9sZGVyKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2hvdWxkU2V0UGxhY2Vob2xkZXIgPSB0aGlzLm9wdGlvbnMuYXV0b1BsYWNlaG9sZGVyID09PSBcImFnZ3Jlc3NpdmVcIiB8fCAhdGhpcy5oYWRJbml0aWFsUGxhY2Vob2xkZXIgJiYgdGhpcy5vcHRpb25zLmF1dG9QbGFjZWhvbGRlciA9PT0gXCJwb2xpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscyAmJiBzaG91bGRTZXRQbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG51bWJlclR5cGUgPSBpbnRsVGVsSW5wdXRVdGlscy5udW1iZXJUeXBlW3RoaXMub3B0aW9ucy5wbGFjZWhvbGRlck51bWJlclR5cGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYWNlaG9sZGVyID0gdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzIgPyBpbnRsVGVsSW5wdXRVdGlscy5nZXRFeGFtcGxlTnVtYmVyKHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5pc28yLCB0aGlzLm9wdGlvbnMubmF0aW9uYWxNb2RlLCBudW1iZXJUeXBlKSA6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlciA9IHRoaXMuX2JlZm9yZVNldE51bWJlcihwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5jdXN0b21QbGFjZWhvbGRlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLm9wdGlvbnMuY3VzdG9tUGxhY2Vob2xkZXIocGxhY2Vob2xkZXIsIHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnNldEF0dHJpYnV0ZShcInBsYWNlaG9sZGVyXCIsIHBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3NlbGVjdExpc3RJdGVtXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9zZWxlY3RMaXN0SXRlbShsaXN0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgc2VsZWN0ZWQgZmxhZyBhbmQgYWN0aXZlIGxpc3QgaXRlbVxuICAgICAgICAgICAgICAgICAgICB2YXIgZmxhZ0NoYW5nZWQgPSB0aGlzLl9zZXRGbGFnKGxpc3RJdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtY291bnRyeS1jb2RlXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVEaWFsQ29kZShsaXN0SXRlbS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWRpYWwtY29kZVwiKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZvY3VzIHRoZSBpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHB1dCBjdXJzb3IgYXQgZW5kIC0gdGhpcyBmaXggaXMgcmVxdWlyZWQgZm9yIEZGIGFuZCBJRTExICh3aXRoIG5hdGlvbmFsTW9kZT1mYWxzZSBpLmUuIGF1dG9cbiAgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0aW5nIGRpYWwgY29kZSksIHdobyB0cnkgdG8gcHV0IHRoZSBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZyB0aGUgZmlyc3QgdGltZVxuICAgICAgICAgICAgICAgICAgICB2YXIgbGVuID0gdGhpcy50ZWxJbnB1dC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UobGVuLCBsZW4pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJDb3VudHJ5Q2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9jbG9zZURyb3Bkb3duXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9jbG9zZURyb3Bkb3duKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cnlMaXN0LmNsYXNzTGlzdC5hZGQoXCJpdGlfX2hpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwgXCJmYWxzZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBhcnJvd1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duQXJyb3cuY2xhc3NMaXN0LnJlbW92ZShcIml0aV9fYXJyb3ctLXVwXCIpO1xuICAgICAgICAgICAgICAgICAgICAvLyB1bmJpbmQga2V5IGV2ZW50c1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9oYW5kbGVLZXlkb3duT25Ecm9wZG93bik7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5faGFuZGxlQ2xpY2tPZmZUb0Nsb3NlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJ5TGlzdC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VvdmVyXCIsIHRoaXMuX2hhbmRsZU1vdXNlb3ZlckNvdW50cnlMaXN0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJ5TGlzdC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5faGFuZGxlQ2xpY2tDb3VudHJ5TGlzdCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBtZW51IGZyb20gY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZHJvcGRvd25Db250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5faGFuZGxlV2luZG93U2Nyb2xsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRyb3Bkb3duLnBhcmVudE5vZGUpIHRoaXMuZHJvcGRvd24ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyKFwiY2xvc2U6Y291bnRyeWRyb3Bkb3duXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3Njcm9sbFRvXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9zY3JvbGxUbyhlbGVtZW50LCBtaWRkbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9IHRoaXMuY291bnRyeUxpc3Q7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdpbmRvd1RvcCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNDM4NDA5MS8yMTc4NjZcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdpbmRvd1RvcCA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVySGVpZ2h0ID0gY29udGFpbmVyLm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lclRvcCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3dUb3A7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250YWluZXJCb3R0b20gPSBjb250YWluZXJUb3AgKyBjb250YWluZXJIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbGVtZW50SGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbGVtZW50VG9wID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3dUb3A7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbGVtZW50Qm90dG9tID0gZWxlbWVudFRvcCArIGVsZW1lbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdTY3JvbGxUb3AgPSBlbGVtZW50VG9wIC0gY29udGFpbmVyVG9wICsgY29udGFpbmVyLnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1pZGRsZU9mZnNldCA9IGNvbnRhaW5lckhlaWdodCAvIDIgLSBlbGVtZW50SGVpZ2h0IC8gMjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRUb3AgPCBjb250YWluZXJUb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNjcm9sbCB1cFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1pZGRsZSkgbmV3U2Nyb2xsVG9wIC09IG1pZGRsZU9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBuZXdTY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudEJvdHRvbSA+IGNvbnRhaW5lckJvdHRvbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2Nyb2xsIGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaWRkbGUpIG5ld1Njcm9sbFRvcCArPSBtaWRkbGVPZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0RGlmZmVyZW5jZSA9IGNvbnRhaW5lckhlaWdodCAtIGVsZW1lbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gbmV3U2Nyb2xsVG9wIC0gaGVpZ2h0RGlmZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3VwZGF0ZURpYWxDb2RlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF91cGRhdGVEaWFsQ29kZShuZXdEaWFsQ29kZUJhcmUsIGhhc1NlbGVjdGVkTGlzdEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0VmFsID0gdGhpcy50ZWxJbnB1dC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSBoYXZpbmcgdG8gcGFzcyB0aGlzIGV2ZXJ5IHRpbWVcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0RpYWxDb2RlID0gXCIrXCIuY29uY2F0KG5ld0RpYWxDb2RlQmFyZSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dFZhbC5jaGFyQXQoMCkgPT09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZSdzIGEgcGx1cyBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYSByZXBsYWNlbWVudCAoZG9lc24ndCBtYXR0ZXIgaWYgbmF0aW9uYWxNb2RlIG9yIG5vdClcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmV2RGlhbENvZGUgPSB0aGlzLl9nZXREaWFsQ29kZShpbnB1dFZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldkRpYWxDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3VycmVudCBudW1iZXIgY29udGFpbnMgYSB2YWxpZCBkaWFsIGNvZGUsIHNvIHJlcGxhY2UgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdOdW1iZXIgPSBpbnB1dFZhbC5yZXBsYWNlKHByZXZEaWFsQ29kZSwgbmV3RGlhbENvZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjdXJyZW50IG51bWJlciBjb250YWlucyBhbiBpbnZhbGlkIGRpYWwgY29kZSwgc28gZGl0Y2ggaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAobm8gd2F5IHRvIGRldGVybWluZSB3aGVyZSB0aGUgaW52YWxpZCBkaWFsIGNvZGUgZW5kcyBhbmQgdGhlIHJlc3Qgb2YgdGhlIG51bWJlciBiZWdpbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3RGlhbENvZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLm5hdGlvbmFsTW9kZSB8fCB0aGlzLm9wdGlvbnMuc2VwYXJhdGVEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgZG8gYW55dGhpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5hdGlvbmFsTW9kZSBpcyBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0VmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgYW4gZXhpc3RpbmcgdmFsdWUgd2l0aCBubyBkaWFsIGNvZGU6IHByZWZpeCB0aGUgbmV3IGRpYWwgY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld051bWJlciA9IG5ld0RpYWxDb2RlICsgaW5wdXRWYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc1NlbGVjdGVkTGlzdEl0ZW0gfHwgIXRoaXMub3B0aW9ucy5hdXRvSGlkZURpYWxDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gZXhpc3RpbmcgdmFsdWUgYW5kIGVpdGhlciB0aGV5J3ZlIGp1c3Qgc2VsZWN0ZWQgYSBsaXN0IGl0ZW0sIG9yIGF1dG9IaWRlRGlhbENvZGUgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXNhYmxlZDogaW5zZXJ0IG5ldyBkaWFsIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdEaWFsQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQudmFsdWUgPSBuZXdOdW1iZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfZ2V0RGlhbENvZGVcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2dldERpYWxDb2RlKG51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGlhbENvZGUgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IGludGVyZXN0ZWQgaW4gaW50ZXJuYXRpb25hbCBudW1iZXJzIChzdGFydGluZyB3aXRoIGEgcGx1cylcbiAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlci5jaGFyQXQoMCkgPT09IFwiK1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbnVtZXJpY0NoYXJzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGUgb3ZlciBjaGFyc1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1iZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IG51bWJlci5jaGFyQXQoaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgY2hhciBpcyBudW1iZXIgKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS84OTM1NjQ5LzIxNzg2NilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKHBhcnNlSW50KGMsIDEwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtZXJpY0NoYXJzICs9IGM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGN1cnJlbnQgbnVtZXJpY0NoYXJzIG1ha2UgYSB2YWxpZCBkaWFsIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY291bnRyeUNvZGVzW251bWVyaWNDaGFyc10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0b3JlIHRoZSBhY3R1YWwgcmF3IHN0cmluZyAodXNlZnVsIGZvciBtYXRjaGluZyBsYXRlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxDb2RlID0gbnVtYmVyLnN1YnN0cigwLCBpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bWVyaWNDaGFycy5sZW5ndGggPT09IHRoaXMuZGlhbENvZGVNYXhMZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkaWFsQ29kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9nZXRGdWxsTnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXRGdWxsTnVtYmVyKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsID0gdGhpcy50ZWxJbnB1dC52YWx1ZS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkaWFsQ29kZSA9IHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZWZpeDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG51bWVyaWNWYWwgPSB0aGlzLl9nZXROdW1lcmljKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VwYXJhdGVEaWFsQ29kZSAmJiB2YWwuY2hhckF0KDApICE9PSBcIitcIiAmJiBkaWFsQ29kZSAmJiBudW1lcmljVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHVzaW5nIHNlcGFyYXRlRGlhbENvZGUsIGl0IGlzIHZpc2libGUgc28gaXMgZWZmZWN0aXZlbHkgcGFydCBvZiB0aGUgdHlwZWQgbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSBcIitcIi5jb25jYXQoZGlhbENvZGUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJlZml4ICsgdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2JlZm9yZVNldE51bWJlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfYmVmb3JlU2V0TnVtYmVyKG9yaWdpbmFsTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1iZXIgPSBvcmlnaW5hbE51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zZXBhcmF0ZURpYWxDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGlhbENvZGUgPSB0aGlzLl9nZXREaWFsQ29kZShudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB2YWxpZCBkaWFsIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGNhc2UgX2dldERpYWxDb2RlIHJldHVybmVkIGFuIGFyZWEgY29kZSBhcyB3ZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbENvZGUgPSBcIitcIi5jb25jYXQodGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmRpYWxDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIGxvdCBvZiBudW1iZXJzIHdpbGwgaGF2ZSBhIHNwYWNlIHNlcGFyYXRpbmcgdGhlIGRpYWwgY29kZSBhbmQgdGhlIG1haW4gbnVtYmVyLCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb21lIE5BTlAgbnVtYmVycyB3aWxsIGhhdmUgYSBoeXBoZW4gZS5nLiArMSA2ODQtNzMzLTEyMzQgLSBpbiBib3RoIGNhc2VzIHdlIHdhbnQgdG8gZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmlkIG9mIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogZG9uJ3QganVzdCB0cmltIGFsbCBub24tbnVtZXJpY3MgYXMgbWF5IHdhbnQgdG8gcHJlc2VydmUgYW4gb3BlbiBwYXJlbnRoZXNpcyBldGNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RhcnQgPSBudW1iZXJbZGlhbENvZGUubGVuZ3RoXSA9PT0gXCIgXCIgfHwgbnVtYmVyW2RpYWxDb2RlLmxlbmd0aF0gPT09IFwiLVwiID8gZGlhbENvZGUubGVuZ3RoICsgMSA6IGRpYWxDb2RlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIuc3Vic3RyKHN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2FwKG51bWJlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfdHJpZ2dlckNvdW50cnlDaGFuZ2VcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3RyaWdnZXJDb3VudHJ5Q2hhbmdlKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyKFwiY291bnRyeWNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcImhhbmRsZUF1dG9Db3VudHJ5XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGhhbmRsZUF1dG9Db3VudHJ5KCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmluaXRpYWxDb3VudHJ5ID09PSBcImF1dG9cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCBzZXQgdGhpcyBldmVuIGlmIHRoZXJlIGlzIGFuIGluaXRpYWwgdmFsIGluIHRoZSBpbnB1dDogaW4gY2FzZSB0aGUgaW5pdGlhbCB2YWwgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludmFsaWQgYW5kIHRoZXkgZGVsZXRlIGl0IC0gdGhleSBzaG91bGQgc2VlIHRoZWlyIGF1dG8gY291bnRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q291bnRyeSA9IHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLmF1dG9Db3VudHJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBpbml0aWFsIHZhbHVlIGluIHRoZSBpbnB1dCwgdGhlbiB1cGRhdGUgdGhlIGZsYWdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy50ZWxJbnB1dC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q291bnRyeSh0aGlzLmRlZmF1bHRDb3VudHJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZUF1dG9Db3VudHJ5UHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJoYW5kbGVVdGlsc1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBoYW5kbGVVdGlscygpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIHJlcXVlc3Qgd2FzIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUncyBhbiBpbml0aWFsIHZhbHVlIGluIHRoZSBpbnB1dCwgdGhlbiBmb3JtYXQgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlbElucHV0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsRnJvbU51bWJlcih0aGlzLnRlbElucHV0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBsYWNlaG9sZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlVXRpbHNTY3JpcHRQcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJkZXN0cm95XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmb3JtID0gdGhpcy50ZWxJbnB1dC5mb3JtO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFsbG93RHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgZHJvcGRvd24gaXMgY2xvc2VkIChhbmQgdW5iaW5kIGxpc3RlbmVycylcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVDbGlja1NlbGVjdGVkRmxhZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYWdzQ29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuX2hhbmRsZUZsYWdzQ29udGFpbmVyS2V5ZG93bik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsYWJlbCBjbGljayBoYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGFiZWwgPSB0aGlzLl9nZXRDbG9zZXN0TGFiZWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYWJlbCkgbGFiZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuX2hhbmRsZUxhYmVsQ2xpY2spO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHVuYmluZCBoaWRkZW5JbnB1dCBsaXN0ZW5lcnNcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuSW5wdXQgJiYgZm9ybSkgZm9ybS5yZW1vdmVFdmVudExpc3RlbmVyKFwic3VibWl0XCIsIHRoaXMuX2hhbmRsZUhpZGRlbklucHV0U3VibWl0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdW5iaW5kIGF1dG9IaWRlRGlhbENvZGUgbGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b0hpZGVEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm0pIGZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCB0aGlzLl9oYW5kbGVTdWJtaXRPckJsdXJFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsIHRoaXMuX2hhbmRsZVN1Ym1pdE9yQmx1ckV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB1bmJpbmQga2V5IGV2ZW50cywgYW5kIGN1dC9wYXN0ZSBldmVudHNcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIiwgdGhpcy5faGFuZGxlS2V5dXBFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImN1dFwiLCB0aGlzLl9oYW5kbGVDbGlwYm9hcmRFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBhc3RlXCIsIHRoaXMuX2hhbmRsZUNsaXBib2FyZEV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGF0dHJpYnV0ZSBvZiBpZCBpbnN0YW5jZTogZGF0YS1pbnRsLXRlbC1pbnB1dC1pZFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtaW50bC10ZWwtaW5wdXQtaWRcIik7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBtYXJrdXAgKGJ1dCBsZWF2ZSB0aGUgb3JpZ2luYWwgaW5wdXQpXG4gICAgICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gdGhpcy50ZWxJbnB1dC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMudGVsSW5wdXQsIHdyYXBwZXIpO1xuICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQod3JhcHBlcik7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5pbnN0YW5jZXNbdGhpcy5pZF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJnZXRFeHRlbnNpb25cIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGxUZWxJbnB1dFV0aWxzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50bFRlbElucHV0VXRpbHMuZ2V0RXh0ZW5zaW9uKHRoaXMuX2dldEZ1bGxOdW1iZXIoKSwgdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiZ2V0TnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldE51bWJlcihmb3JtYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzbzIgPSB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRsVGVsSW5wdXRVdGlscy5mb3JtYXROdW1iZXIodGhpcy5fZ2V0RnVsbE51bWJlcigpLCBpc28yLCBmb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiZ2V0TnVtYmVyVHlwZVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXROdW1iZXJUeXBlKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGxUZWxJbnB1dFV0aWxzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50bFRlbElucHV0VXRpbHMuZ2V0TnVtYmVyVHlwZSh0aGlzLl9nZXRGdWxsTnVtYmVyKCksIHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5pc28yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTk5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiZ2V0U2VsZWN0ZWRDb3VudHJ5RGF0YVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTZWxlY3RlZENvdW50cnlEYXRhKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiZ2V0VmFsaWRhdGlvbkVycm9yXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFZhbGlkYXRpb25FcnJvcigpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzbzIgPSB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRsVGVsSW5wdXRVdGlscy5nZXRWYWxpZGF0aW9uRXJyb3IodGhpcy5fZ2V0RnVsbE51bWJlcigpLCBpc28yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTk5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiaXNWYWxpZE51bWJlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBpc1ZhbGlkTnVtYmVyKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsID0gdGhpcy5fZ2V0RnVsbE51bWJlcigpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50cnlDb2RlID0gdGhpcy5vcHRpb25zLm5hdGlvbmFsTW9kZSA/IHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5pc28yIDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscyA/IGludGxUZWxJbnB1dFV0aWxzLmlzVmFsaWROdW1iZXIodmFsLCBjb3VudHJ5Q29kZSkgOiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwic2V0Q291bnRyeVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRDb3VudHJ5KG9yaWdpbmFsQ291bnRyeUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50cnlDb2RlID0gb3JpZ2luYWxDb3VudHJ5Q29kZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiBhbHJlYWR5IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEZsYWdJbm5lci5jbGFzc0xpc3QuY29udGFpbnMoXCJpdGlfX1wiLmNvbmNhdChjb3VudHJ5Q29kZSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRGbGFnKGNvdW50cnlDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZURpYWxDb2RlKHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlckNvdW50cnlDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwic2V0TnVtYmVyXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHNldE51bWJlcihudW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCB1cGRhdGUgdGhlIGZsYWcgZmlyc3QsIHdoaWNoIHVwZGF0ZXMgdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLCB3aGljaCBpcyB1c2VkIGZvclxuICAgICAgICAgICAgICAgICAgICAvLyBmb3JtYXR0aW5nIHRoZSBudW1iZXIgYmVmb3JlIGRpc3BsYXlpbmcgaXRcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWdDaGFuZ2VkID0gdGhpcy5fdXBkYXRlRmxhZ0Zyb21OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsRnJvbU51bWJlcihudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJDb3VudHJ5Q2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcInNldFBsYWNlaG9sZGVyTnVtYmVyVHlwZVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRQbGFjZWhvbGRlck51bWJlclR5cGUodHlwZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXJOdW1iZXJUeXBlID0gdHlwZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IF0pO1xuICAgICAgICAgICAgcmV0dXJuIEl0aTtcbiAgICAgICAgfSgpO1xuICAgICAgICAvKioqKioqKioqKioqKioqKioqKipcbiAqICBTVEFUSUMgTUVUSE9EU1xuICoqKioqKioqKioqKioqKioqKioqL1xuICAgICAgICAvLyBnZXQgdGhlIGNvdW50cnkgZGF0YSBvYmplY3RcbiAgICAgICAgaW50bFRlbElucHV0R2xvYmFscy5nZXRDb3VudHJ5RGF0YSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsbENvdW50cmllcztcbiAgICAgICAgfTtcbiAgICAgICAgLy8gaW5qZWN0IGEgPHNjcmlwdD4gZWxlbWVudCB0byBsb2FkIHV0aWxzLmpzXG4gICAgICAgIHZhciBpbmplY3RTY3JpcHQgPSBmdW5jdGlvbiBpbmplY3RTY3JpcHQocGF0aCwgaGFuZGxlU3VjY2VzcywgaGFuZGxlRmFpbHVyZSkge1xuICAgICAgICAgICAgLy8gaW5qZWN0IGEgbmV3IHNjcmlwdCBlbGVtZW50IGludG8gdGhlIHBhZ2VcbiAgICAgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGZvckVhY2hJbnN0YW5jZShcImhhbmRsZVV0aWxzXCIpO1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGVTdWNjZXNzKSBoYW5kbGVTdWNjZXNzKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBmb3JFYWNoSW5zdGFuY2UoXCJyZWplY3RVdGlsc1NjcmlwdFByb21pc2VcIik7XG4gICAgICAgICAgICAgICAgaWYgKGhhbmRsZUZhaWx1cmUpIGhhbmRsZUZhaWx1cmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzY3JpcHQuY2xhc3NOYW1lID0gXCJpdGktbG9hZC11dGlsc1wiO1xuICAgICAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBwYXRoO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICB9O1xuICAgICAgICAvLyBsb2FkIHRoZSB1dGlscyBzY3JpcHRcbiAgICAgICAgaW50bFRlbElucHV0R2xvYmFscy5sb2FkVXRpbHMgPSBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgICAgICAvLyAyIG9wdGlvbnM6XG4gICAgICAgICAgICAvLyAxKSBub3QgYWxyZWFkeSBzdGFydGVkIGxvYWRpbmcgKHN0YXJ0KVxuICAgICAgICAgICAgLy8gMikgYWxyZWFkeSBzdGFydGVkIGxvYWRpbmcgKGRvIG5vdGhpbmcgLSBqdXN0IHdhaXQgZm9yIHRoZSBvbmxvYWQgY2FsbGJhY2sgdG8gZmlyZSwgd2hpY2ggd2lsbFxuICAgICAgICAgICAgLy8gdHJpZ2dlciBoYW5kbGVVdGlscyBvbiBhbGwgaW5zdGFuY2VzLCBpbnZva2luZyB0aGVpciByZXNvbHZlVXRpbHNTY3JpcHRQcm9taXNlIGZ1bmN0aW9ucylcbiAgICAgICAgICAgIGlmICghd2luZG93LmludGxUZWxJbnB1dFV0aWxzICYmICF3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5zdGFydGVkTG9hZGluZ1V0aWxzU2NyaXB0KSB7XG4gICAgICAgICAgICAgICAgLy8gb25seSBkbyB0aGlzIG9uY2VcbiAgICAgICAgICAgICAgICB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5zdGFydGVkTG9hZGluZ1V0aWxzU2NyaXB0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIHByb21pc2VzLCB0aGVuIHJldHVybiBhIHByb21pc2VcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIFByb21pc2UgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluamVjdFNjcmlwdChwYXRoLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaW5qZWN0U2NyaXB0KHBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG4gICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICBpbnRsVGVsSW5wdXRHbG9iYWxzLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgICAgIC8vIHZlcnNpb25cbiAgICAgICAgaW50bFRlbElucHV0R2xvYmFscy52ZXJzaW9uID0gXCIxNi4xLjBcIjtcbiAgICAgICAgLy8gY29udmVuaWVuY2Ugd3JhcHBlclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oaW5wdXQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHZhciBpdGkgPSBuZXcgSXRpKGlucHV0LCBvcHRpb25zKTtcbiAgICAgICAgICAgIGl0aS5faW5pdCgpO1xuICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKFwiZGF0YS1pbnRsLXRlbC1pbnB1dC1pZFwiLCBpdGkuaWQpO1xuICAgICAgICAgICAgd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuaW5zdGFuY2VzW2l0aS5pZF0gPSBpdGk7XG4gICAgICAgICAgICByZXR1cm4gaXRpO1xuICAgICAgICB9O1xuICAgIH0oKTtcbn0pOyIsIi8qKlxuICogRXhwb3NpbmcgaW50bC10ZWwtaW5wdXQgYXMgYSBjb21wb25lbnRcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi9idWlsZC9qcy9pbnRsVGVsSW5wdXRcIik7XG4iLCIvLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuIiwidmFyIG5leHRUaWNrID0gcmVxdWlyZSgncHJvY2Vzcy9icm93c2VyLmpzJykubmV4dFRpY2s7XG52YXIgYXBwbHkgPSBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHk7XG52YXIgc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG52YXIgaW1tZWRpYXRlSWRzID0ge307XG52YXIgbmV4dEltbWVkaWF0ZUlkID0gMDtcblxuLy8gRE9NIEFQSXMsIGZvciBjb21wbGV0ZW5lc3NcblxuZXhwb3J0cy5zZXRUaW1lb3V0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgVGltZW91dChhcHBseS5jYWxsKHNldFRpbWVvdXQsIHdpbmRvdywgYXJndW1lbnRzKSwgY2xlYXJUaW1lb3V0KTtcbn07XG5leHBvcnRzLnNldEludGVydmFsID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBuZXcgVGltZW91dChhcHBseS5jYWxsKHNldEludGVydmFsLCB3aW5kb3csIGFyZ3VtZW50cyksIGNsZWFySW50ZXJ2YWwpO1xufTtcbmV4cG9ydHMuY2xlYXJUaW1lb3V0ID1cbmV4cG9ydHMuY2xlYXJJbnRlcnZhbCA9IGZ1bmN0aW9uKHRpbWVvdXQpIHsgdGltZW91dC5jbG9zZSgpOyB9O1xuXG5mdW5jdGlvbiBUaW1lb3V0KGlkLCBjbGVhckZuKSB7XG4gIHRoaXMuX2lkID0gaWQ7XG4gIHRoaXMuX2NsZWFyRm4gPSBjbGVhckZuO1xufVxuVGltZW91dC5wcm90b3R5cGUudW5yZWYgPSBUaW1lb3V0LnByb3RvdHlwZS5yZWYgPSBmdW5jdGlvbigpIHt9O1xuVGltZW91dC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbigpIHtcbiAgdGhpcy5fY2xlYXJGbi5jYWxsKHdpbmRvdywgdGhpcy5faWQpO1xufTtcblxuLy8gRG9lcyBub3Qgc3RhcnQgdGhlIHRpbWUsIGp1c3Qgc2V0cyB1cCB0aGUgbWVtYmVycyBuZWVkZWQuXG5leHBvcnRzLmVucm9sbCA9IGZ1bmN0aW9uKGl0ZW0sIG1zZWNzKSB7XG4gIGNsZWFyVGltZW91dChpdGVtLl9pZGxlVGltZW91dElkKTtcbiAgaXRlbS5faWRsZVRpbWVvdXQgPSBtc2Vjcztcbn07XG5cbmV4cG9ydHMudW5lbnJvbGwgPSBmdW5jdGlvbihpdGVtKSB7XG4gIGNsZWFyVGltZW91dChpdGVtLl9pZGxlVGltZW91dElkKTtcbiAgaXRlbS5faWRsZVRpbWVvdXQgPSAtMTtcbn07XG5cbmV4cG9ydHMuX3VucmVmQWN0aXZlID0gZXhwb3J0cy5hY3RpdmUgPSBmdW5jdGlvbihpdGVtKSB7XG4gIGNsZWFyVGltZW91dChpdGVtLl9pZGxlVGltZW91dElkKTtcblxuICB2YXIgbXNlY3MgPSBpdGVtLl9pZGxlVGltZW91dDtcbiAgaWYgKG1zZWNzID49IDApIHtcbiAgICBpdGVtLl9pZGxlVGltZW91dElkID0gc2V0VGltZW91dChmdW5jdGlvbiBvblRpbWVvdXQoKSB7XG4gICAgICBpZiAoaXRlbS5fb25UaW1lb3V0KVxuICAgICAgICBpdGVtLl9vblRpbWVvdXQoKTtcbiAgICB9LCBtc2Vjcyk7XG4gIH1cbn07XG5cbi8vIFRoYXQncyBub3QgaG93IG5vZGUuanMgaW1wbGVtZW50cyBpdCBidXQgdGhlIGV4cG9zZWQgYXBpIGlzIHRoZSBzYW1lLlxuZXhwb3J0cy5zZXRJbW1lZGlhdGUgPSB0eXBlb2Ygc2V0SW1tZWRpYXRlID09PSBcImZ1bmN0aW9uXCIgPyBzZXRJbW1lZGlhdGUgOiBmdW5jdGlvbihmbikge1xuICB2YXIgaWQgPSBuZXh0SW1tZWRpYXRlSWQrKztcbiAgdmFyIGFyZ3MgPSBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGZhbHNlIDogc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuXG4gIGltbWVkaWF0ZUlkc1tpZF0gPSB0cnVlO1xuXG4gIG5leHRUaWNrKGZ1bmN0aW9uIG9uTmV4dFRpY2soKSB7XG4gICAgaWYgKGltbWVkaWF0ZUlkc1tpZF0pIHtcbiAgICAgIC8vIGZuLmNhbGwoKSBpcyBmYXN0ZXIgc28gd2Ugb3B0aW1pemUgZm9yIHRoZSBjb21tb24gdXNlLWNhc2VcbiAgICAgIC8vIEBzZWUgaHR0cDovL2pzcGVyZi5jb20vY2FsbC1hcHBseS1zZWd1XG4gICAgICBpZiAoYXJncykge1xuICAgICAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZuLmNhbGwobnVsbCk7XG4gICAgICB9XG4gICAgICAvLyBQcmV2ZW50IGlkcyBmcm9tIGxlYWtpbmdcbiAgICAgIGV4cG9ydHMuY2xlYXJJbW1lZGlhdGUoaWQpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGlkO1xufTtcblxuZXhwb3J0cy5jbGVhckltbWVkaWF0ZSA9IHR5cGVvZiBjbGVhckltbWVkaWF0ZSA9PT0gXCJmdW5jdGlvblwiID8gY2xlYXJJbW1lZGlhdGUgOiBmdW5jdGlvbihpZCkge1xuICBkZWxldGUgaW1tZWRpYXRlSWRzW2lkXTtcbn07IiwiaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEZpbGVGaWVsZEVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnRzL0ZpbGVGaWVsZC9GaWxlRmllbGRFbGVtZW50JztcbmltcG9ydCBBcnJheVV0aWwgZnJvbSAnLi9mcmFtZXdvcmsvVXRpbGl0aWVzL0FycmF5VXRpbCc7XG5pbXBvcnQgTWFrZVJlcXVlc3QgZnJvbSAnLi9mcmFtZXdvcmsvVXRpbGl0aWVzL01ha2VSZXF1ZXN0JztcblxuZXhwb3J0IGNsYXNzIEN1c3RvbUZvcm0ge1xuXHRhY3Rpb246IHN0cmluZztcblx0bWV0aG9kOiBzdHJpbmc7XG5cdF9uYXRpdmVJbnB1dHM6IEhUTUxJbnB1dEVsZW1lbnRbXTtcblxuXHRwdWJsaWMgb25zdWJtaXQ6ICgodGhpczogQ3VzdG9tRm9ybSwgcHJvbWlzZTogUHJvbWlzZTxhbnk+KSA9PiBhbnkpIHwgbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm06IEhUTUxGb3JtRWxlbWVudCkge1xuXHRcdHRoaXMuYWN0aW9uID0gZm9ybS5hY3Rpb24gfHwgJyc7XG5cdFx0dGhpcy5tZXRob2QgPSBmb3JtLm1ldGhvZCB8fCAnZ2V0Jztcblx0XHR0aGlzLmF0dGFjaEZvcm0oKTtcblx0XHR0aGlzLmJpbkdyb3Vwc1RvRGVwZW5kZW5jeSgpO1xuXHR9XG5cblx0Z2V0IGlucHV0cygpOiBDdXN0b21JbnB1dEVsZW1lbnRbXSB7XG5cdFx0cmV0dXJuIEFycmF5VXRpbC5Gcm9tTm9kZUxpc3QodGhpcy5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJy5ncm91cC1jb250YWluZXI6bm90KFtoaWRkZW5dKSBbY3VzdG9tLWlucHV0XTpub3QoW2hpZGRlbl0pJykpO1xuXHR9XG5cdGdldCBuYXRpdmVJbnB1dHMoKTogSFRNTElucHV0RWxlbWVudFtdIHtcblx0XHR0aGlzLl9uYXRpdmVJbnB1dHMgPVxuXHRcdFx0dGhpcy5fbmF0aXZlSW5wdXRzIHx8XG5cdFx0XHRBcnJheVV0aWwuRnJvbU5vZGVMaXN0KHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpKTtcblx0XHRyZXR1cm4gdGhpcy5fbmF0aXZlSW5wdXRzO1xuXHR9XG5cblx0Z2V0IGhhc0ZpbGVzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmlucHV0cy5zb21lKGlucHV0ID0+IGlucHV0IGluc3RhbmNlb2YgRmlsZUZpZWxkRWxlbWVudCk7XG5cdH1cblxuXHRhdHRhY2hGb3JtKCkge1xuXHRcdHRoaXMuZm9ybS5vbnN1Ym1pdCA9IGV2ZW50ID0+IHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRsZXQgdmFsaWQgPSB0aGlzLnZhbGlkYXRlKCk7XG5cdFx0XHRpZiAodmFsaWQpIHtcblx0XHRcdFx0aWYgKHRoaXMub25zdWJtaXQpIHtcblx0XHRcdFx0XHR0aGlzLm9uc3VibWl0KHRoaXMuc3VibWl0KCkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuXHRcdHRoaXMuaW5wdXRzLmZvckVhY2goaW5wdXQgPT4gKDxDdXN0b21JbnB1dEVsZW1lbnQ+aW5wdXQpLnZhbGlkYXRlKCkpO1xuXHRcdHJldHVybiB0aGlzLmlucHV0cy5ldmVyeShpbnB1dCA9PiAoPEN1c3RvbUlucHV0RWxlbWVudD5pbnB1dCkudmFsaWQpO1xuXHR9XG5cblx0c3VibWl0KCk6IFByb21pc2U8YW55PiB7XG5cdFx0bGV0IGZvcm1EYXRhID0ge307XG5cdFx0Y29uc3QgaGVhZGVyczogYW55ID0ge307XG5cdFx0dGhpcy5pbnB1dHMubWFwKGkgPT4gKGZvcm1EYXRhW2kubmFtZV0gPSBpLnZhbHVlKSk7XG5cdFx0Zm9ybURhdGEgPSB0aGlzLmV4dHJhY3REYXRhKCk7XG5cdFx0cmV0dXJuIG5ldyBNYWtlUmVxdWVzdCh0aGlzLmFjdGlvbiwgdGhpcy5tZXRob2QsIGhlYWRlcnMpLnNlbmQoXG5cdFx0XHRmb3JtRGF0YSxcblx0XHQpO1xuXHR9XG5cdHByaXZhdGUgZXh0cmFjdERhdGEoKTogRm9ybURhdGEge1xuXHRcdGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXHRcdGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy5pbnB1dHMpIHtcblx0XHRcdGlmIChpbnB1dCBpbnN0YW5jZW9mIEZpbGVGaWVsZEVsZW1lbnQpIHtcblx0XHRcdFx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGlucHV0LnZhbHVlLmxlbmd0aDsgaW5kZXgrKykge1xuXHRcdFx0XHRcdGNvbnN0IGZpbGUgPSBpbnB1dC52YWx1ZVtpbmRleF07XG5cdFx0XHRcdFx0Zm9ybURhdGEuYXBwZW5kKGlucHV0Lm5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvcm1EYXRhLmFwcGVuZChgVmFsdWVzWyR7aW5wdXQubmFtZX1dYCwgaW5wdXQudmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRmb3IgKGNvbnN0IGlucHV0IG9mIHRoaXMubmF0aXZlSW5wdXRzKSB7XG5cdFx0XHRpZiAoaW5wdXQubmFtZSkge1xuXHRcdFx0XHRmb3JtRGF0YS5hcHBlbmQoaW5wdXQubmFtZSwgaW5wdXQudmFsdWUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZm9ybURhdGE7XG5cdH1cblxuXHRwcml2YXRlIGJpbkdyb3Vwc1RvRGVwZW5kZW5jeSgpIHtcblx0XHRsZXQgZ3JvdXBDb250YWluZXJzID0gdGhpcy5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rpdi5ncm91cC1jb250YWluZXI6bm90KFtkYXRhLWRlcGVuZHMtb249XCJcIl0pJyxcblx0XHQpO1xuXHRcdGdyb3VwQ29udGFpbmVycy5mb3JFYWNoKChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuXHRcdFx0bGV0IGRlcGVuZGVudEZpZWxkID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGVwZW5kcy1vbicpO1xuXHRcdFx0bGV0IGRlcGVuZGVudFZhbHVlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGVwZW5kZW50LXZhbHVlJyk7XG5cdFx0XHRsZXQgY3VzdG9tRWxlbWVudDogQ3VzdG9tSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZm9ybXNbMF0ucXVlcnlTZWxlY3RvcihgW25hbWU9XCIke2RlcGVuZGVudEZpZWxkfVwiXWApIGFzIEN1c3RvbUlucHV0RWxlbWVudDtcblx0XHRcdGVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaGlkZGVuXCIsIFwiXCIpO1xuXHRcdFx0Y3VzdG9tRWxlbWVudC5vbkNoYW5nZS5vbihldmVudCA9PiB7XG5cdFx0XHRcdGlmIChldmVudC52YWx1ZSA9PT0gZGVwZW5kZW50VmFsdWUgfHwgZXZlbnQudmFsdWUuaW5kZXhPZihkZXBlbmRlbnRWYWx1ZSkgPj0gMCkge1xuXHRcdFx0XHRcdHRoaXMuc2hvd0dyb3VwQW5kSXRzRGVwZW5kZW5jaWVzKGVsZW1lbnQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuaGlkZUdyb3VwQW5kSXRzRGVwZW5kZW5jaWVzKGVsZW1lbnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgaGlkZUdyb3VwQW5kSXRzRGVwZW5kZW5jaWVzKGdyb3VwOiBFbGVtZW50KSB7XG5cdFx0Y29uc3QgaW5wdXRFbGVtZW50c0luc2lkZUdyb3VwID0gdGhpcy5pbnB1dHMuZmlsdGVyKGlucHV0ID0+IHRoaXMuaXNEZXNjZW5kYW50KGdyb3VwLCBpbnB1dCkpO1xuXHRcdGdyb3VwLnNldEF0dHJpYnV0ZShcImhpZGRlblwiLCBcIlwiKTtcblx0XHRsZXQgZ3JvdXBDb250YWluZXJzID0gdGhpcy5mb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rpdi5ncm91cC1jb250YWluZXI6bm90KFtkYXRhLWRlcGVuZHMtb249XCJcIl0pJyk7XG5cdFx0Z3JvdXBDb250YWluZXJzLmZvckVhY2gob3RoZXJHcm91cCA9PiB7XG5cdFx0XHRpZiAob3RoZXJHcm91cCAhPT0gZ3JvdXApIHtcblx0XHRcdFx0bGV0IGdyb3VwRGVwZW5kc09uRmllbGQgPSBvdGhlckdyb3VwLmdldEF0dHJpYnV0ZSgnZGF0YS1kZXBlbmRzLW9uJyk7XG5cdFx0XHRcdGlucHV0RWxlbWVudHNJbnNpZGVHcm91cC5mb3JFYWNoKGlucHV0ID0+IHtcblx0XHRcdFx0XHRpZiAoaW5wdXQubmFtZSA9PT0gZ3JvdXBEZXBlbmRzT25GaWVsZCkge1xuXHRcdFx0XHRcdFx0dGhpcy5oaWRlR3JvdXBBbmRJdHNEZXBlbmRlbmNpZXMob3RoZXJHcm91cCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRwcml2YXRlIHNob3dHcm91cEFuZEl0c0RlcGVuZGVuY2llcyhncm91cDogRWxlbWVudCkge1xuXHRcdGdyb3VwLnJlbW92ZUF0dHJpYnV0ZShcImhpZGRlblwiKTtcblx0XHRjb25zdCBpbnB1dEVsZW1lbnRzSW5zaWRlR3JvdXAgPSB0aGlzLmlucHV0cy5maWx0ZXIoaW5wdXQgPT4gdGhpcy5pc0Rlc2NlbmRhbnQoZ3JvdXAsIGlucHV0KSk7XG5cdFx0bGV0IGdyb3VwQ29udGFpbmVycyA9IHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdkaXYuZ3JvdXAtY29udGFpbmVyOm5vdChbZGF0YS1kZXBlbmRzLW9uPVwiXCJdKScpO1xuXHRcdGdyb3VwQ29udGFpbmVycy5mb3JFYWNoKG90aGVyR3JvdXAgPT4ge1xuXHRcdFx0aWYgKG90aGVyR3JvdXAgIT09IGdyb3VwKSB7XG5cdFx0XHRcdGxldCBncm91cERlcGVuZHNPbkZpZWxkID0gb3RoZXJHcm91cC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGVwZW5kcy1vbicpO1xuXHRcdFx0XHRsZXQgZGVwZW5kZW50VmFsdWUgPSBvdGhlckdyb3VwLmdldEF0dHJpYnV0ZSgnZGF0YS1kZXBlbmRlbnQtdmFsdWUnKTtcblx0XHRcdFx0aW5wdXRFbGVtZW50c0luc2lkZUdyb3VwLmZvckVhY2goaW5wdXQgPT4ge1xuXHRcdFx0XHRcdGlmIChpbnB1dC5uYW1lID09PSBncm91cERlcGVuZHNPbkZpZWxkXG5cdFx0XHRcdFx0XHQmJiBpbnB1dC52YWx1ZVxuXHRcdFx0XHRcdFx0JiYgKGlucHV0LnZhbHVlID09PSBkZXBlbmRlbnRWYWx1ZVxuXHRcdFx0XHRcdFx0XHR8fCBpbnB1dC52YWx1ZS5pbmRleE9mKGRlcGVuZGVudFZhbHVlKSA+PSAwKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zaG93R3JvdXBBbmRJdHNEZXBlbmRlbmNpZXMob3RoZXJHcm91cCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRwcml2YXRlIGlzRGVzY2VuZGFudChwYXJlbnQ6IEVsZW1lbnQsIGNoaWxkOiBFbGVtZW50KSB7XG5cdFx0dmFyIG5vZGUgPSBjaGlsZC5wYXJlbnROb2RlO1xuXHRcdHdoaWxlIChub2RlICE9IG51bGwpIHtcblx0XHRcdGlmIChub2RlID09PSBwYXJlbnQpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0XHRub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50O1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBUcmFuc2xhdG9yIGZyb20gJy4uLy4uL2ZyYW1ld29yay9MYW5ndWFnZS9UcmFuc2xhdG9yJztcbmltcG9ydCBnZXRBdHRyaWJ1dGVOYW1lc1BvbHlmaWxsIGZyb20gJy4uLy4uL2ZyYW1ld29yay9Qb2x5ZmlsbHMvZ2V0QXR0cmlidXRlTmFtZXNQb2x5ZmlsbCc7XG5pbXBvcnQgZGVib3VuY2VyIGZyb20gXCIuLi8uLi9mcmFtZXdvcmsvVXRpbGl0aWVzL2RlYm91bmNlclwiO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnYWRkcmVzcy1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcblx0XHRcdDxkaXYgY2xhc3M9XCJhZGRyZXNzLXdyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IGNsYXNzPSdhZGRyZXNzLXBhcnQnIGlkPSdhZGRyZXNzJyB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPSdBZGRyZXNzJy8+XG5cdFx0XHRcdDxpbnB1dCBjbGFzcz0nYWRkcmVzcy1wYXJ0JyBpZD0nemlwJyB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPSdaaXAnLz5cblx0XHRcdFx0PGlucHV0IGNsYXNzPSdhZGRyZXNzLXBhcnQnIGlkPSdjaXR5JyB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPSdDaXR5Jy8+XG5cdFx0XHRcdDxpbnB1dCBjbGFzcz0nYWRkcmVzcy1wYXJ0JyBpZD0nY291bnRyeScgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj0nQ291bnRyeScvPlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGAuYWRkcmVzcy13cmFwcGVye1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdH1cblx0XHRcdGlucHV0LmFkZHJlc3MtcGFydHtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuXHRcdFx0XHRtYXJnaW46IDJweDtcblx0XHRcdFx0cmVzaXplOiBub25lO1xuXHRcdFx0XHR3aWR0aDozMyUgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHRgLFxuXHR0ZW1wbGF0ZVBhdGg6ICcuL2h0bWwuaHRtbCcsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQWRkcmVzc0VsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHRwcml2YXRlIGF1dG9Db21wbGV0ZUVuYWJsZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBhZGRyZXNzQXV0b0NvbXBsZXRlOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlO1xuXHRwcml2YXRlIGdvb2dsZVBsYWNlc0xpYnJhcnlFbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudDtcblx0cHJpdmF0ZSBnb29nbGVQbGFjZXNBcGlLZXk6IHN0cmluZztcblxuXHRhZGRyZXNzOiBIVE1MSW5wdXRFbGVtZW50O1xuXHRjaXR5OiBIVE1MSW5wdXRFbGVtZW50O1xuXHRjb3VudHJ5OiBIVE1MSW5wdXRFbGVtZW50O1xuXHR6aXA6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0XHRnZXRBdHRyaWJ1dGVOYW1lc1BvbHlmaWxsKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRsZXQgYWRkcmVzcyA9IHRoaXMuYWRkcmVzcy52YWx1ZSB8fCAnJztcblx0XHRsZXQgY2l0eSA9IHRoaXMuY2l0eS52YWx1ZSA/IGAsJHt0aGlzLmNpdHkudmFsdWV9YCA6ICcnO1xuXHRcdGxldCB6aXAgPSB0aGlzLnppcC52YWx1ZSA/IGAsJHt0aGlzLnppcC52YWx1ZX1gIDogJyc7XG5cdFx0bGV0IGNvdW50cnkgPSB0aGlzLmNvdW50cnkudmFsdWUgPyBgLCR7dGhpcy5jb3VudHJ5LnZhbHVlfWAgOiAnJztcblx0XHRyZXR1cm4gYCR7YWRkcmVzc30ke2NpdHl9JHt6aXB9JHtjb3VudHJ5fWA7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdGNvbnN0IHZhbHVlcyA9IHZhbHVlLnNwbGl0KCcsJyk7XG5cdFx0dGhpcy5hZGRyZXNzLnZhbHVlID0gdmFsdWVzWzBdO1xuXHRcdHRoaXMuY2l0eS52YWx1ZSA9IHZhbHVlc1sxXTtcblx0XHR0aGlzLmNvdW50cnkudmFsdWUgPSB2YWx1ZXNbMl07XG5cdFx0dGhpcy56aXAudmFsdWUgPSB2YWx1ZXNbM107XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHRoaXMuYWRkcmVzcy52YWxpZGl0eS52YWxpZCAmJlxuXHRcdFx0dGhpcy5jaXR5LnZhbGlkaXR5LnZhbGlkICYmXG5cdFx0XHR0aGlzLmNvdW50cnkudmFsaWRpdHkudmFsaWQgJiZcblx0XHRcdHRoaXMuemlwLnZhbGlkaXR5LnZhbGlkXG5cdFx0KTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRjb21wb25lbnREaWRNb3VudCgpIHtcblx0XHR0aGlzLmluaXRDaGlsZElucHV0cygpO1xuXHRcdHRoaXMuZ2V0QXR0cmlidXRlTmFtZXMoKS5mb3JFYWNoKGF0dHJpYnV0ZU5hbWUgPT4ge1xuXHRcdFx0bGV0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG5cdFx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSwgbnVsbCwgYXR0cmlidXRlVmFsdWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuYWRkcmVzcyA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNhZGRyZXNzJyk7XG5cdFx0dGhpcy5jaXR5ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2NpdHknKTtcblx0XHR0aGlzLmNvdW50cnkgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjY291bnRyeScpO1xuXHRcdHRoaXMuemlwID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI3ppcCcpO1xuXHRcdGNvbnN0IGFkZHJlc3NDaGFuZURlYm91bmNlID0gZGVib3VuY2VyKHRoaXMuY2hhbmdlLmJpbmQodGhpcyksIDQwMCwgZmFsc2UpO1xuXHRcdHRoaXMuYWRkcmVzcy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB7XG5cdFx0XHRhZGRyZXNzQ2hhbmVEZWJvdW5jZSgpO1xuXHRcdH0pO1xuXHRcdHRoaXMuY2l0eS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLmNvdW50cnkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy56aXAuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy5hZGRyZXNzLnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0XHR0aGlzLmNpdHkuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHRcdHRoaXMuY291bnRyeS5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdFx0dGhpcy56aXAuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdH1cblxuXHQvLyBldmVudHNcblx0cHVibGljIGNoYW5nZSgkZXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQgPSB0cnVlO1xuXHRcdHRoaXMub25DaGFuZ2UuZW1pdChuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAnY2hhbmdlJykpO1xuXHR9XG5cblx0cHVibGljIHZhbGlkYXRlKCk6IHZvaWQge1xuXHRcdHRoaXMudmFsaWQ7XG5cdFx0dGhpcy5vblZhbGlkYXRlLmVtaXQoXG5cdFx0XHRuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAndmFsaWRhdGUnKSxcblx0XHQpO1xuXHR9XG5cblx0Y2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuXHRcdGlmICghdGhpcy5hZGRyZXNzIHx8ICF0aGlzLmNpdHkgfHwgIXRoaXMuY291bnRyeSB8fCAhdGhpcy56aXApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5hZGRyZXNzLnBsYWNlaG9sZGVyID0gVHJhbnNsYXRvci5UcmFuc2xhdGUoJ0FkZHJlc3NFbGVtZW50LkFkZHJlc3MnLCBsYW5ndWFnZSk7XG5cdFx0dGhpcy5jaXR5LnBsYWNlaG9sZGVyID0gVHJhbnNsYXRvci5UcmFuc2xhdGUoJ0FkZHJlc3NFbGVtZW50LkNpdHknLCBsYW5ndWFnZSk7XG5cdFx0dGhpcy5jb3VudHJ5LnBsYWNlaG9sZGVyID0gVHJhbnNsYXRvci5UcmFuc2xhdGUoJ0FkZHJlc3NFbGVtZW50LkNvdW50cnknLCBsYW5ndWFnZSk7XG5cdFx0dGhpcy56aXAucGxhY2Vob2xkZXIgPSBUcmFuc2xhdG9yLlRyYW5zbGF0ZSgnQWRkcmVzc0VsZW1lbnQuWmlwJywgbGFuZ3VhZ2UpO1xuXHR9XG5cblx0ZW5hYmxlQXV0b0NvbXBsZXRlKCkge1xuXHRcdGlmICghdGhpcy5nb29nbGVQbGFjZXNBcGlLZXkgfHwgdGhpcy5nb29nbGVQbGFjZXNBcGlLZXkudHJpbSgpID09PSAnJyB8fCAhdGhpcy5hdXRvQ29tcGxldGVFbmFibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdFxuXHRcdHRoaXMuZ29vZ2xlUGxhY2VzTGlicmFyeUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxTY3JpcHRFbGVtZW50PihgW3NyYz1cImh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcz9rZXk9JHt0aGlzLmdvb2dsZVBsYWNlc0FwaUtleX0mbGlicmFyaWVzPXBsYWNlc1wiXWApO1xuXHRcdGlmICh0aGlzLmdvb2dsZVBsYWNlc0xpYnJhcnlFbGVtZW50KSB7XG5cdFx0XHR0aGlzLmdvb2dsZVBsYWNlc0xpYnJhcnlFbGVtZW50QmluZExvYWQoKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5nb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXHRcdHRoaXMuZ29vZ2xlUGxhY2VzTGlicmFyeUVsZW1lbnQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXHRcdHRoaXMuZ29vZ2xlUGxhY2VzTGlicmFyeUVsZW1lbnQuc3JjID0gYGh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcz9rZXk9JHt0aGlzLmdvb2dsZVBsYWNlc0FwaUtleX0mbGlicmFyaWVzPXBsYWNlc2A7XG5cdFx0d2luZG93LmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGhpcy5nb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudCk7XG5cdFx0dGhpcy5nb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudEJpbmRMb2FkKCk7XG5cdH1cblxuXHRwcml2YXRlIGdvb2dsZVBsYWNlc0xpYnJhcnlFbGVtZW50QmluZExvYWQoKSB7XG5cdFx0dGhpcy5nb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuXHRcdFx0dGhpcy5iaW5kQXV0b0NvbXBsZXRlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRiaW5kQXV0b0NvbXBsZXRlKCk6IHZvaWQge1xuXHRcdHRoaXMuYWRkcmVzc0F1dG9Db21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKHRoaXMuYWRkcmVzcyk7XG5cdFx0dGhpcy5hZGRyZXNzQXV0b0NvbXBsZXRlLmFkZExpc3RlbmVyKFwicGxhY2VfY2hhbmdlZFwiLCB0aGlzLm9uQWRkcmVzc0NoYW5nZWRIYW5kbGVyLmJpbmQodGhpcykpO1xuXHR9XG5cblx0b25BZGRyZXNzQ2hhbmdlZEhhbmRsZXIoKSB7XG5cdFx0dGhpcy5jaXR5LnZhbHVlID0gJyc7XG5cdFx0dGhpcy5jb3VudHJ5LnZhbHVlID0gJyc7XG5cdFx0dGhpcy56aXAudmFsdWUgPSAnJztcblxuXHRcdGNvbnN0IHBsYWNlID0gdGhpcy5hZGRyZXNzQXV0b0NvbXBsZXRlLmdldFBsYWNlKCk7XG5cdFx0Y29uc29sZS5sb2cocGxhY2UpO1xuXHRcdGlmICghcGxhY2UuYWRkcmVzc19jb21wb25lbnRzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdFxuXHRcdHRoaXMuYWRkcmVzcy52YWx1ZSA9IHBsYWNlLm5hbWU7XG5cblx0XHRjb25zdCBjaXR5Q29tcG9uZW50cyA9IHBsYWNlLmFkZHJlc3NfY29tcG9uZW50cy5maWx0ZXIoY29tcG9uZW50ID0+IHtcblx0XHRcdGNvbnN0IGNpdHlTeW5vbnltcyA9IFsnYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xJywgJ2xvY2FsaXR5J107XG5cdFx0XHRjb25zdCBpc0NpdHlDb21wb25lbnQgPSBjaXR5U3lub255bXMuc29tZShjaXR5U3lub255bSA9PiBjb21wb25lbnQudHlwZXMuaW5kZXhPZihjaXR5U3lub255bSkgIT0gLTEpO1xuXHRcdFx0cmV0dXJuIGlzQ2l0eUNvbXBvbmVudDtcblx0XHR9KTtcblx0XHRpZiAoY2l0eUNvbXBvbmVudHMgJiYgY2l0eUNvbXBvbmVudHNbMF0pIHtcblx0XHRcdHRoaXMuY2l0eS52YWx1ZSA9IGNpdHlDb21wb25lbnRzW2NpdHlDb21wb25lbnRzLmxlbmd0aCAtIDFdLmxvbmdfbmFtZTtcblx0XHR9XG5cblx0XHRjb25zdCBjb3VudHJ5Q29tcG9uZW50cyA9IHBsYWNlLmFkZHJlc3NfY29tcG9uZW50cy5maWx0ZXIoY29tcG9uZW50ID0+IGNvbXBvbmVudC50eXBlcy5pbmRleE9mKCdjb3VudHJ5JykgIT0gLTEpO1xuXHRcdGlmIChjb3VudHJ5Q29tcG9uZW50cyAmJiBjb3VudHJ5Q29tcG9uZW50c1swXSkge1xuXHRcdFx0dGhpcy5jb3VudHJ5LnZhbHVlID0gY291bnRyeUNvbXBvbmVudHNbY291bnRyeUNvbXBvbmVudHMubGVuZ3RoIC0gMV0ubG9uZ19uYW1lO1xuXHRcdH1cblxuXHRcdGNvbnN0IHppcENvbXBvbmVudHMgPSBwbGFjZS5hZGRyZXNzX2NvbXBvbmVudHMuZmlsdGVyKGNvbXBvbmVudCA9PiBjb21wb25lbnQudHlwZXMuaW5kZXhPZigncG9zdGFsX2NvZGUnKSAhPSAtMSk7XG5cdFx0aWYgKHppcENvbXBvbmVudHMgJiYgemlwQ29tcG9uZW50c1swXSkge1xuXHRcdFx0dGhpcy56aXAudmFsdWUgPSB6aXBDb21wb25lbnRzWzBdLmxvbmdfbmFtZTtcblx0XHR9XG5cdFx0dGhpcy5jaGFuZ2UobnVsbCk7XG5cdH1cblxuXHRzdGF0aWMgZ2V0IG9ic2VydmVkQXR0cmlidXRlcygpIHtcblx0XHRyZXR1cm4gWydsYW5ndWFnZScsICdnb29nbGUtcGxhY2VzLWtleScsICdlbmFibGUtYXV0by1jb21wbGV0ZSddO1xuXHR9XG5cdGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lOiBzdHJpbmcsIG9sZFZhbDogc3RyaW5nLCBuZXdWYWw6IHN0cmluZykge1xuXHRcdHRoaXMuYXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWwsIG5ld1ZhbCk7XG5cdH1cblx0cHJpdmF0ZSBhdHRyaWJ1dGVDaGFuZ2VkKG5hbWU6IHN0cmluZywgb2xkVmFsOiBzdHJpbmcsIG5ld1ZhbDogc3RyaW5nKSB7XG5cdFx0c3dpdGNoIChuYW1lKSB7XG5cdFx0XHRjYXNlICdsYW5ndWFnZSc6XG5cdFx0XHRcdHRoaXMuY2hhbmdlTGFuZ3VhZ2UobmV3VmFsKVxuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2dvb2dsZS1wbGFjZXMta2V5Jzpcblx0XHRcdFx0dGhpcy5nb29nbGVQbGFjZXNBcGlLZXkgPSBuZXdWYWw7XG5cdFx0XHRcdHRoaXMuZW5hYmxlQXV0b0NvbXBsZXRlKClcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdlbmFibGUtYXV0by1jb21wbGV0ZSc6XG5cdFx0XHRcdGlmIChuZXdWYWwgJiYgbmV3VmFsICE9ICdmYWxzZScpIHtcblx0XHRcdFx0XHR0aGlzLmF1dG9Db21wbGV0ZUVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuZW5hYmxlQXV0b0NvbXBsZXRlKClcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblxuXHRcdH1cblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBCYW5rQWNjb3VudFZhbGlkYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0JhbmtBY2NvdW50JztcbmltcG9ydCBCYW5rQWNjb3VudFJlZ2lzdHJhdGlvbk51bWJlclZhbGlkYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0JhbmtBY2NvdW50UmVnaXN0cmF0aW9uTnVtYmVyJztcbmltcG9ydCBUcmFuc2xhdG9yIGZyb20gJy4uLy4uL2ZyYW1ld29yay9MYW5ndWFnZS9UcmFuc2xhdG9yJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ2JhbmstZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0ncmVnLW51bWJlci1maWVsZCcgcGxhY2Vob2xkZXI9J0JhbmsgQWNjb3VudCBSZWdpc3RyYXRpb24gTnVtYmVyJy8+XG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPSdhY2NvdW50LWZpZWxkJyBwbGFjZWhvbGRlcj0nQmFuayBBY2NvdW50Jy8+XG5cdFx0XHQ8L2Rpdj5gLFxuXHRzdHlsZTogYFxuICAgIDpob3N0e1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgLndyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgfVxuICAgIGlucHV0e1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICAgICAgICAgICBgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJhbmtGaWVsZEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHRhY2NvdW50OiBIVE1MSW5wdXRFbGVtZW50O1xuXHRyZWdOdW1iZXI6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cdGJhbmtBY2NvdW50VmFsaWRhdG9yOiBCYW5rQWNjb3VudFZhbGlkYXRvciA9IG5ldyBCYW5rQWNjb3VudFZhbGlkYXRvcigpO1xuXHRyZWdOdW1iZXJWYWxpZGF0b3I6IEJhbmtBY2NvdW50UmVnaXN0cmF0aW9uTnVtYmVyVmFsaWRhdG9yID0gbmV3IEJhbmtBY2NvdW50UmVnaXN0cmF0aW9uTnVtYmVyVmFsaWRhdG9yKCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdGxldCBhY2NvdW50ID0gdGhpcy5hY2NvdW50LnZhbHVlIHx8ICcnO1xuXHRcdGxldCByZWdOdW1iZXIgPSB0aGlzLnJlZ051bWJlci52YWx1ZSA/IGAsJHt0aGlzLnJlZ051bWJlci52YWx1ZX1gIDogJyc7XG5cdFx0cmV0dXJuIGAke2FjY291bnR9JHtyZWdOdW1iZXJ9YDtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0Y29uc3QgdmFsdWVzID0gdmFsdWUuc3BsaXQoJywnKTtcblx0XHR0aGlzLmFjY291bnQudmFsdWUgPSB2YWx1ZXNbMF07XG5cdFx0dGhpcy5yZWdOdW1iZXIudmFsdWUgPSB2YWx1ZXNbMV07XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHRoaXMuYmFua0FjY291bnRWYWxpZGF0b3IuaXNTYXRpc2ZpZWRCeShcblx0XHRcdFx0dGhpcy5hY2NvdW50LnZhbHVlLFxuXHRcdFx0XHQhdGhpcy5yZXF1aXJlZCxcblx0XHRcdCkgJiZcblx0XHRcdHRoaXMucmVnTnVtYmVyVmFsaWRhdG9yLmlzU2F0aXNmaWVkQnkoXG5cdFx0XHRcdHRoaXMucmVnTnVtYmVyLnZhbHVlLFxuXHRcdFx0XHQhdGhpcy5yZXF1aXJlZCxcblx0XHRcdCkgJiZcblx0XHRcdHRoaXMuYWNjb3VudC52YWxpZGl0eS52YWxpZCAmJlxuXHRcdFx0dGhpcy5yZWdOdW1iZXIudmFsaWRpdHkudmFsaWRcblx0XHQpO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGNvbXBvbmVudERpZE1vdW50KCkge1xuXHRcdHRoaXMuaW5pdENoaWxkSW5wdXRzKCk7XG5cdFx0dGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZvckVhY2goYXR0cmlidXRlTmFtZSA9PiB7XG5cdFx0XHRsZXQgYXR0cmlidXRlVmFsdWUgPSB0aGlzLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcblx0XHRcdHRoaXMuYXR0cmlidXRlQ2hhbmdlZChhdHRyaWJ1dGVOYW1lLCBudWxsLCBhdHRyaWJ1dGVWYWx1ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHRjaGFuZ2VMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XG5cdFx0aWYgKCF0aGlzLmFjY291bnQgfHwgIXRoaXMucmVnTnVtYmVyKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuYWNjb3VudC5wbGFjZWhvbGRlciA9IFRyYW5zbGF0b3IuVHJhbnNsYXRlKCdCYW5rRWxlbWVudC5BY2NvdW50JywgbGFuZ3VhZ2UpO1xuXHRcdHRoaXMucmVnTnVtYmVyLnBsYWNlaG9sZGVyID0gVHJhbnNsYXRvci5UcmFuc2xhdGUoJ0JhbmtFbGVtZW50LlJlZ2lzdHJhdGlvbk51bWJlcicsIGxhbmd1YWdlKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLmFjY291bnQgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjYWNjb3VudC1maWVsZCcpO1xuXHRcdHRoaXMucmVnTnVtYmVyID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI3JlZy1udW1iZXItZmllbGQnKTtcblx0XHR0aGlzLmFjY291bnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy5yZWdOdW1iZXIuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMuYWNjb3VudC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdFx0dGhpcy5yZWdOdW1iZXIuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdH1cblxuXHQvLyBldmVudHNcblx0cHVibGljIGNoYW5nZSgkZXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQgPSB0cnVlO1xuXHRcdHRoaXMub25DaGFuZ2UuZW1pdChuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAnY2hhbmdlJykpO1xuXHR9XG5cblx0cHVibGljIHZhbGlkYXRlKCk6IHZvaWQge1xuXHRcdHRoaXMudmFsaWQ7XG5cdFx0dGhpcy5vblZhbGlkYXRlLmVtaXQoXG5cdFx0XHRuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAndmFsaWRhdGUnKSxcblx0XHQpO1xuXHR9XG5cblx0c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKSB7XG5cdFx0cmV0dXJuIFsnbGFuZ3VhZ2UnXTtcblx0fVxuXHRhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZTogc3RyaW5nLCBvbGRWYWw6IHN0cmluZywgbmV3VmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsLCBuZXdWYWwpO1xuXHR9XG5cdHByaXZhdGUgYXR0cmlidXRlQ2hhbmdlZChuYW1lOiBzdHJpbmcsIG9sZFZhbDogc3RyaW5nLCBuZXdWYWw6IHN0cmluZykge1xuXHRcdHN3aXRjaCAobmFtZSkge1xuXHRcdFx0Y2FzZSAnbGFuZ3VhZ2UnOlxuXHRcdFx0XHR0aGlzLmNoYW5nZUxhbmd1YWdlKG5ld1ZhbClcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG59XG4iLCJpbXBvcnQgQ3VzdG9tRWxlbWVudCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvY3VzdG9tLWVsZW1lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEN1c3RvbUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21FdmVudHMnO1xuaW1wb3J0IENwclZhbGlkYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0NQUic7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdjcHItZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0nY3ByLWZpZWxkJyBwbGFjZWhvbGRlcj0nRERNTVlZLVNTU1MnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ1BSRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHRleHQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cdHZhbGlkYXRvcjogQ3ByVmFsaWRhdG9yID0gbmV3IENwclZhbGlkYXRvcigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7dGhpcy50ZXh0LnZhbHVlfWA7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMudGV4dC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRvci5pc1NhdGlzZmllZEJ5KHRoaXMudmFsdWUsICF0aGlzLnJlcXVpcmVkKTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2Nwci1maWVsZCcpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBDcHJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DUFInO1xuaW1wb3J0IEN2clZhbGlkYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0NWUic7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdjdnItZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0nY3ZyLWZpZWxkJyBwbGFjZWhvbGRlcj0nU1NTU1NTU1MnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ1ZSRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHRleHQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cdHZhbGlkYXRvcjogQ3ZyVmFsaWRhdG9yID0gbmV3IEN2clZhbGlkYXRvcigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7dGhpcy50ZXh0LnZhbHVlfWA7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMudGV4dC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRvci5pc1NhdGlzZmllZEJ5KHRoaXMudmFsdWUsICF0aGlzLnJlcXVpcmVkKTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2N2ci1maWVsZCcpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCB7IFN0cmluZ1V0aWwgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvVXRpbGl0aWVzL1N0cmluZ1V0aWwnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnY2hlY2tib3gtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcblx0XHRcdDpob3N0e1xuXHRcdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0fVxuXHRcdFx0LmNoZWNrYm94IHtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdG1hcmdpbjogYXV0byAzcHg7XG5cdFx0XHRcdGNvbG9yOiByZ2JhKDcyLCA3MiwgNzIsIDAuNzUpO1xuXHRcdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHR9XG5cdFx0XHRpbnB1dFt0eXBlPSdjaGVja2JveCdde1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG5cdFx0XHRcdG1hcmdpbjogMnB4O1xuXHRcdFx0XHRyZXNpemU6IG5vbmU7XG5cdFx0XHR9XG5cdFx0YCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja0JveEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHRjaGVja2JveDogSFRNTElucHV0RWxlbWVudFtdO1xuXHRjaGVja2JveFRlbXBsYXRlID0gYFxuXHQ8ZGl2IGNsYXNzPSdjaGVja2JveCc+XG5cdFx0PGlucHV0IHR5cGU9J2NoZWNrYm94JyBuYW1lPSd7MH0nIHZhbHVlPVwiezF9XCIgaWQ9XCJ7Mn1cIi8+XG5cdFx0PGxhYmVsIGZvcj1cInsyfVwiPnsxfTwvbGFiZWw+XG5cdDwvZGl2PmA7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIHRoaXMuY2hlY2tib3guZmlsdGVyKGMgPT4gYy5jaGVja2VkKS5tYXAoYyA9PiBjLnZhbHVlKTtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZXM6IHN0cmluZ1tdKSB7XG5cdFx0Ly8gdGhpcy5jaGVja2JveC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGggPiAwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuYWRkQ2hlY2tCb3hlcygpO1xuXHRcdHRoaXMuY2hlY2tib3ggPSBzdXBlci5nZXRDaGlsZElucHV0cyhgW25hbWU9JyR7dGhpcy5uYW1lfSddYCk7XG5cdFx0dGhpcy5jaGVja2JveC5mb3JFYWNoKGMgPT5cblx0XHRcdGMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSksXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgYWRkQ2hlY2tCb3hlcygpIHtcblx0XHRjb25zdCB3cmFwcGVyID0gc3VwZXIuZ2V0Q2hpbGRFbGVtZW50KCcud3JhcHBlcicpO1xuXHRcdHdyYXBwZXIuaW5uZXJIVE1MID0gXCJcIjtcblx0XHR0aGlzLm9wdGlvbnMuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcblx0XHRcdHdyYXBwZXIuaW5zZXJ0QWRqYWNlbnRIVE1MKFxuXHRcdFx0XHQnYmVmb3JlZW5kJyxcblx0XHRcdFx0U3RyaW5nVXRpbC5TdHJpbmdGb3JtYXQoXG5cdFx0XHRcdFx0dGhpcy5jaGVja2JveFRlbXBsYXRlLFxuXHRcdFx0XHRcdHRoaXMubmFtZSxcblx0XHRcdFx0XHRlbGVtZW50LFxuXHRcdFx0XHRcdGAke3RoaXMubmFtZX0tJHtpbmRleH1gLFxuXHRcdFx0XHQpLFxuXHRcdFx0KTtcblx0XHR9KTtcblx0fVxuXHQvLyBldmVudHNcblx0cHVibGljIGNoYW5nZSgkZXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQgPSB0cnVlO1xuXHRcdHRoaXMub25DaGFuZ2UuZW1pdChuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAnY2hhbmdlJykpO1xuXHR9XG5cblx0cHVibGljIHZhbGlkYXRlKCk6IHZvaWQge1xuXHRcdHRoaXMudmFsaWQ7XG5cdFx0dGhpcy5vblZhbGlkYXRlLmVtaXQoXG5cdFx0XHRuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAndmFsaWRhdGUnKSxcblx0XHQpO1xuXHR9XG59XG4iLCJpbXBvcnQgQ3VzdG9tRWxlbWVudCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvY3VzdG9tLWVsZW1lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEN1c3RvbUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21FdmVudHMnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnY3VzdG9tLWZvcm1hdC1kYXRlLWVsZW1lbnQnLFxuICAgIHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwiZGlzcGxheS1maWVsZFwiIHJlYWRvbmx5IC8+XG5cdFx0XHQ8aW1nIHNyYz1cImFzc2V0cy9pY29ucy9kYXRlcGlja2VyLWljb24ucG5nXCIgYWx0PVwiZGF0ZXBpY2tlci1pY29uXCIgaWQ9XCJwaWNrZXItdHJpZ2dlclwiLz5cblx0XHRcdDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZS1maWVsZFwiIC8+XG5cdFx0PC9kaXY+YCxcbiAgICBzdHlsZTogYFxuXHRcdDpob3N0e1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cdFx0LndyYXBwZXJ7XG5cdFx0XHRkaXNwbGF5OmZsZXg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXHRcdGlucHV0e1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuXHRcdFx0bWFyZ2luOiAycHg7XG5cdFx0XHRyZXNpemU6IG5vbmU7XG5cdFx0fVxuXHRcdCNkYXRlLWZpZWxkIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiAtMTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdH1cblx0XHQjZGlzcGxheS1maWVsZDo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogdXJsKCdwYXRoL3RvL2RhdGVwaWNrZXItaWNvbi5wbmcnKTsgLyogUGF0aCB0byB5b3VyIGRhdGVwaWNrZXIgaWNvbiAqL1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0fVxuXHRcdCNwaWNrZXItdHJpZ2dlciB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0cmlnaHQ6IDJweDtcblx0XHRcdHRvcDogMTUlO1xuXHRcdH1cblx0XHQjZGF0ZXBpY2tlci1pY29uIHtcblx0XHR9XG5cdFx0XHRgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUZvcm1hdERhdGVGaWVsZEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHRkYXRlOiBhbnk7XG5cdGRpc3BsYXk6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cdGRhdGVwaWNrZXI6IGFueTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0ZS52YWx1ZTtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5kYXRlLnZhbHVlID0gdmFsdWU7XG5cdFx0dGhpcy5kaXNwbGF5LnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0ZS52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy5kYXRlID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2RhdGUtZmllbGQnKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2Rpc3BsYXktZmllbGQnKTtcblx0XHR0aGlzLmRhdGVwaWNrZXIgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjcGlja2VyLXRyaWdnZXInKTtcblxuICAgICAgICB0aGlzLmRhdGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5LnZhbHVlID0gdGhpcy5mb3JtYXREYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZShudWxsKTtcbiAgICAgICAgfSk7XG5cblx0XHR0aGlzLmRhdGVwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG5cdFx0XHR0aGlzLmRhdGUuc2hvd1BpY2tlcigpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5kaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0dGhpcy5kYXRlLnNob3dQaWNrZXIoKTtcblx0XHR9KTtcblxuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdtYXgnLCB0aGlzLm1heCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLm1pbikge1xuXHRcdFx0dGhpcy5kYXRlLnNldEF0dHJpYnV0ZSgnbWluJywgdGhpcy5taW4pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5kYXRlRm9ybWF0KXtcblx0XHRcdHRoaXMuZGlzcGxheS5wbGFjZWhvbGRlciA9IHRoaXMuZGF0ZUZvcm1hdDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0Y29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZSgpID8/IHRoaXMuZGF0ZS52YWx1ZUFzRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcblx0XHR0aGlzLmRpc3BsYXkudmFsdWUgPSBmb3JtYXR0ZWREYXRlO1xuXHRcdHRoaXMuZGF0ZS5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgZm9ybWF0dGVkRGF0ZSk7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGZvcm1hdERhdGUoKTogc3RyaW5nIHtcblx0XHRjb25zdCBkYXRlID0gdGhpcy5kYXRlLnZhbHVlQXNEYXRlO1xuXG5cdFx0Y29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcblx0XHRjb25zdCBtb250aCA9IChkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG5cdFx0Y29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuXHRcdGNvbnN0IG1vbnRoTmFtZSA9IGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2RlZmF1bHQnLCB7IG1vbnRoOiAnbG9uZycgfSk7XG5cdFx0XG5cdFx0Y29uc3QgZGF0ZUZvcm1hdHMgPSB7XG5cdFx0XHQnZGRtbXl5eXknOiBgJHtkYXl9JHttb250aH0ke3llYXJ9YCxcblx0XHRcdCdtbWRkeXl5eSc6IGAke21vbnRofSR7ZGF5fSR7eWVhcn1gLFxuXHRcdFx0J2RkL21tL3l5eXknOiBgJHtkYXl9LyR7bW9udGh9LyR7eWVhcn1gLFxuXHRcdFx0J21tL2RkL3l5eXknOiBgJHttb250aH0vJHtkYXl9LyR7eWVhcn1gLFxuXHRcdFx0J2RkLW1tLXl5eXknOiBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gLFxuXHRcdFx0J21tLWRkLXl5eXknOiBgJHttb250aH0tJHtkYXl9LSR7eWVhcn1gLFxuXHRcdFx0J3l5eXktbW0tZGQnOiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gLFxuXHRcdFx0J3l5eXktZGQtbW0nOiBgJHt5ZWFyfS0ke2RheX0tJHttb250aH1gLFxuXHRcdFx0J01vbnRoIGRkLCB5eXl5JzogYCR7bW9udGhOYW1lfSAke2RheX0sICR7eWVhcn1gLFxuXHRcdFx0J21tL2RkL3l5JzogYCR7bW9udGh9LyR7ZGF5fS8ke3llYXIudG9TdHJpbmcoKS5zbGljZSgtMil9YCxcblx0XHRcdCdkZC9tbS95eSc6IGAke2RheX0vJHttb250aH0vJHt5ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpfWAsXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRhdGVGb3JtYXRzW3RoaXMuZGF0ZUZvcm1hdF0gPz8gbnVsbDtcblx0fVxuXG5cdGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKG5hbWUgPT09ICdkYXRlLWZvcm1hdCcpIHtcblx0XHRcdHRoaXMuZGlzcGxheS5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgbmV3VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJpbXBvcnQgQ3VzdG9tRWxlbWVudCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvY3VzdG9tLWVsZW1lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEN1c3RvbUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21FdmVudHMnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAncmVnZXgtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0ncmVnZXgtZmllbGQnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmVndWxhckV4cHJlc3Npb25FbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy50ZXh0LnZhbGlkaXR5LnZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLnRleHQgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjcmVnZXgtZmllbGQnKTtcblx0XHR0aGlzLnRleHQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5jdXN0b21WYWx1ZSkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncGF0dGVybicsIHRoaXMuY3VzdG9tVmFsdWUpO1xuXHRcdH1cbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdkYXRlLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IHR5cGU9XCJkYXRlXCIgaWQ9J2RhdGUtZmllbGQnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdGRhdGU6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmRhdGUudmFsdWU7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMuZGF0ZS52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmRhdGUudmFsaWRpdHkudmFsaWQ7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuZGF0ZSA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNkYXRlLWZpZWxkJyk7XG5cdFx0dGhpcy5kYXRlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdtYXgnLCB0aGlzLm1heCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLm1pbikge1xuXHRcdFx0dGhpcy5kYXRlLnNldEF0dHJpYnV0ZSgnbWluJywgdGhpcy5taW4pO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgeyBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9TdHJpbmdVdGlsJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ2Ryb3AtZG93bi1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcblx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgICAgICAgICAgICA8c2VsZWN0IGlkPSdzZWxlY3QtbGlzdCc+XG5cdFx0XHQgICA8b3B0aW9uIHNlbGVjdGVkIGRpc2FibGVkPi08L29wdGlvbj5cbiAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICAgICAgICAgIDpob3N0e1xuICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAud3JhcHBlcntcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucmFkaW8tYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG8gM3B4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwLjE7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxlY3R7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgYCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wRG93bkxpc3RFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0c2VsZWN0OiBIVE1MSW5wdXRFbGVtZW50O1xuXHRvcHRpb25UZW1wbGF0ZSA9IGBcbiAgICA8b3B0aW9uIHZhbHVlPSd7MH0nPlxuICAgICAgIHsxfVxuICAgIDwvb3B0aW9uPmA7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgJHt0aGlzLnNlbGVjdC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnNlbGVjdC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnNlbGVjdC52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy5zZWxlY3QgPSBzdXBlci5nZXRDaGlsZElucHV0KGAjc2VsZWN0LWxpc3RgKTtcblx0XHR0aGlzLmFkZE9wdGlvbnMoKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy5zZWxlY3Quc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubXVsdGkpIHtcblx0XHRcdHRoaXMuc2VsZWN0LnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCAnJyk7XG5cdFx0fVxuXHRcdHRoaXMuc2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHR9XG5cblx0cHJpdmF0ZSBhZGRPcHRpb25zKCkge1xuXHRcdHRoaXMuc2VsZWN0LmlubmVySFRNTCA9IFwiXCI7XG5cdFx0dGhpcy5vcHRpb25zLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG5cdFx0XHR0aGlzLnNlbGVjdC5pbnNlcnRBZGphY2VudEhUTUwoXG5cdFx0XHRcdCdiZWZvcmVlbmQnLFxuXHRcdFx0XHRTdHJpbmdVdGlsLlN0cmluZ0Zvcm1hdCh0aGlzLm9wdGlvblRlbXBsYXRlLCBlbGVtZW50LCBlbGVtZW50KSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IHsgQWRkcmVzc0VsZW1lbnQgfSBmcm9tICcuL0FkZHJlc3MvQWRkcmVzc0VsZW1lbnQnO1xuaW1wb3J0IHsgVGV4dEZpZWxkRWxlbWVudCB9IGZyb20gJy4vVGV4dEZpZWxkL1RleHRGaWVsZEVsZW1lbnQnO1xuaW1wb3J0IHsgRW1haWxGaWVsZEVsZW1lbnQgfSBmcm9tICcuL0VtYWlsRmllbGQvRW1haWxGaWVsZEVsZW1lbnQnO1xuaW1wb3J0IHsgQ2hlY2tCb3hFbGVtZW50IH0gZnJvbSAnLi9DaGVja0JveEVsZW1lbnQvQ2hlY2tCb3hFbGVtZW50JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IH0gZnJvbSAnLi9SYWRpb0J1dHRvbkdyb3VwL1JhZGlvQnV0dG9uR3JvdXBFbGVtZW50JztcbmltcG9ydCB7IFRleHRBcmVhRWxlbWVudCB9IGZyb20gJy4vVGV4dEFyZWFFbGVtZW50L1RleHRBcmVhRWxlbWVudCc7XG5pbXBvcnQgeyBEcm9wRG93bkxpc3RFbGVtZW50IH0gZnJvbSAnLi9Ecm9wRG93bkxpc3QvRHJvcERvd25MaXN0RWxlbWVudCc7XG5pbXBvcnQgeyBGaWxlRmllbGRFbGVtZW50IH0gZnJvbSAnLi9GaWxlRmllbGQvRmlsZUZpZWxkRWxlbWVudCc7XG5pbXBvcnQgeyBOdW1lcmljRmllbGRFbGVtZW50IH0gZnJvbSAnLi9OdW1lcmljRmllbGQvTnVtZXJpY0ZpZWxkRWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21SZWd1bGFyRXhwcmVzc2lvbkVsZW1lbnQgfSBmcm9tICcuL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uRWxlbWVudCc7XG5pbXBvcnQgeyBEYXRlRmllbGRFbGVtZW50IH0gZnJvbSAnLi9EYXRlRmllbGQvRGF0ZUZpZWxkRWxlbWVudCc7XG5pbXBvcnQgeyBJbnRQaG9uZUZpZWxkRWxlbWVudCB9IGZyb20gJy4vSW50ZXJuYXRpb25hUGhvbmVOdW1iZXIvSW50ZXJuYXRpb25hUGhvbmVOdW1iZXJFbGVtZW50JztcbmltcG9ydCB7IENQUkVsZW1lbnQgfSBmcm9tICcuL0NQUkVsZW1lbnQvQ1BSRWxlbWVudCc7XG5pbXBvcnQgeyBDVlJFbGVtZW50IH0gZnJvbSAnLi9DVlJFbGVtZW50L0NWUkVsZW1lbnQnO1xuaW1wb3J0IHsgSWRlbnRpZmljYXRpb25FbGVtZW50IH0gZnJvbSAnLi9JZGVudGlmaWNhdGlvbkVsZW1lbnQvSWRlbnRpZmljYXRpb25FbGVtZW50JztcbmltcG9ydCB7IEJhbmtGaWVsZEVsZW1lbnQgfSBmcm9tICcuL0JhbmtGaWVsZC9CYW5rRmllbGRFbGVtZW50JztcbmltcG9ydCB7IFR5cGVBaGVhZEVsZW1lbnQgfSBmcm9tICcuL1R5cGVBaGVhZC9UeXBlQWhlYWRFbGVtZW50JztcbmltcG9ydCB7IFNFUGVyc29uYWxOdW1iZXJFbGVtZW50IH0gZnJvbSAnLi9TRVBlcnNvbmFsTnVtYmVyRWxlbWVudC9TRVBlcnNvbmFsTnVtYmVyRWxlbWVudCc7XG5pbXBvcnQgeyBTRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50IH0gZnJvbSAnLi9TRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50L1NFQ29tcGFueVJlZ2lzdHJhdGlvbkVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybWF0RGF0ZUZpZWxkRWxlbWVudCB9IGZyb20gJy4vQ3VzdG9tRGF0YUZpbGVkRWxlbWVudC9DdXN0b21Gb3JtYXREYXRlRmllbGRFbGVtZW50JztcblxuZXhwb3J0IHtcblx0QWRkcmVzc0VsZW1lbnQsXG5cdFRleHRGaWVsZEVsZW1lbnQsXG5cdEVtYWlsRmllbGRFbGVtZW50LFxuXHRDaGVja0JveEVsZW1lbnQsXG5cdFJhZGlvQnV0dG9uR3JvdXBFbGVtZW50LFxuXHRUZXh0QXJlYUVsZW1lbnQsXG5cdERyb3BEb3duTGlzdEVsZW1lbnQsXG5cdEZpbGVGaWVsZEVsZW1lbnQsXG5cdE51bWVyaWNGaWVsZEVsZW1lbnQsXG5cdEN1c3RvbVJlZ3VsYXJFeHByZXNzaW9uRWxlbWVudCxcblx0RGF0ZUZpZWxkRWxlbWVudCxcblx0Q3VzdG9tRm9ybWF0RGF0ZUZpZWxkRWxlbWVudCxcblx0SW50UGhvbmVGaWVsZEVsZW1lbnQsXG5cdENQUkVsZW1lbnQsXG5cdENWUkVsZW1lbnQsXG5cdElkZW50aWZpY2F0aW9uRWxlbWVudCxcblx0QmFua0ZpZWxkRWxlbWVudCxcblx0VHlwZUFoZWFkRWxlbWVudCxcbiAgICBTRVBlcnNvbmFsTnVtYmVyRWxlbWVudCxcbiAgICBTRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50LFxufTtcbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdlbWFpbC1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcblx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPSdlbWFpbC1maWVsZCcvPlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICA6aG9zdHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuICAgIC53cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgIH1cbiAgICBpbnB1dHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cbiAgICAgICAgICAgYCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbEZpZWxkRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdG1haWxSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChcblx0XHQvXihbYS16QS1aMC05w4bDmMOFw6bDuMOlXy4rLV0pK1xcQCgoW2EtekEtWjAtOcOGw5jDhcOmw7jDpS1dKStcXC4pKyhbYS16QS1aMC05w4bDmMOFw6bDuMOlXXsyLDR9KSskLyxcblx0KTtcblxuXHRlbWFpbDogSFRNTElucHV0RWxlbWVudDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMuZW1haWwudmFsdWV9YDtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5lbWFpbC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IHBhdHRlcm5WYWxpZCA9ICF0aGlzLnZhbHVlIHx8IHRoaXMubWFpbFJlZ2V4LnRlc3QodGhpcy52YWx1ZSk7XG5cdFx0cmV0dXJuIHRoaXMuZW1haWwudmFsaWRpdHkudmFsaWQgJiYgcGF0dGVyblZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0dGhpcy5pbml0Q2hpbGRJbnB1dHMoKTtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuZW1haWwgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjZW1haWwtZmllbGQnKTtcblx0XHR0aGlzLmVtYWlsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmVtYWlsLnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy5lbWFpbC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgZ2V0QXR0cmlidXRlTmFtZXNQb2x5ZmlsbCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvUG9seWZpbGxzL2dldEF0dHJpYnV0ZU5hbWVzUG9seWZpbGwnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnZmlsZS1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcblx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwiZmlsZVwiIGlkPSdmaWxlLWZpZWxkJyBhY2NlcHQ9XCJpbWFnZS8qLGFwcGxpY2F0aW9uL3BkZlwiLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUZpZWxkRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdGZpbGU6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0XHRnZXRBdHRyaWJ1dGVOYW1lc1BvbHlmaWxsKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogRmlsZUxpc3Qge1xuXHRcdHJldHVybiB0aGlzLmZpbGUuZmlsZXM7XG5cdH1cblxuXHRzZXQgdmFsdWUoZmlsZXM6IEZpbGVMaXN0KSB7XG5cdFx0dGhpcy5maWxlLmZpbGVzID0gZmlsZXM7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZmlsZS52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHRoaXMuaW5pdENoaWxkSW5wdXRzKCk7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGNvbXBvbmVudERpZE1vdW50KCkge1xuXHRcdHRoaXMuZ2V0QXR0cmlidXRlTmFtZXMoKS5mb3JFYWNoKGF0dHJpYnV0ZU5hbWUgPT4ge1xuXHRcdFx0bGV0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG5cdFx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSwgbnVsbCwgYXR0cmlidXRlVmFsdWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuZmlsZSA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNmaWxlLWZpZWxkJyk7XG5cdFx0dGhpcy5maWxlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmZpbGUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubXVsdGkpIHtcblx0XHRcdHRoaXMuZmlsZS5zZXRBdHRyaWJ1dGUoJ211bHRpcGxlJywgJycpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbiAgICBcbiAgICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZTogc3RyaW5nLCBvbGRWYWw6IHN0cmluZywgbmV3VmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsLCBuZXdWYWwpO1xuXHR9XG5cdHByaXZhdGUgYXR0cmlidXRlQ2hhbmdlZChuYW1lOiBzdHJpbmcsIG9sZFZhbDogc3RyaW5nLCBuZXdWYWw6IHN0cmluZykge1xuXHRcdHN3aXRjaCAobmFtZSkge1xuXHRcdFx0Y2FzZSAnYWNjZXB0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGUuYWNjZXB0ID0gbmV3VmFsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXHRcdH1cblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBDcHJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DUFInO1xuaW1wb3J0IElWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vSVZhbGlkYXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IEN2clZhbGlkYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0NWUic7XG5pbXBvcnQgQmFua0lkU3dlZGVuVmFsaWRhdG9yIGZyb20gJy4uLy4uL2ZyYW1ld29yay9WYWxpZGF0aW9uL1ZhbGlkYXRvcnMvQmFua0lkU3dlZGVuJztcbmltcG9ydCBCYW5rSWROb3J3YXlWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rSWROb3J3YXknO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnaWQtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9J2lkLXR5cGUnPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSdjdnInPkRhbmlzaCBDVlI8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0nY3ByJz5EYW5pc2ggQ1BSPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9J3N3ZSc+U3dlZGVuIEJhbmsgSWQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0nbm9yJz5Ob3J3YXkgQmFuayBJZDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0naWQtZmllbGQnIHBsYWNlaG9sZGVyPScnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXQsIHNlbGVjdHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICAgIGlucHV0e1xuICAgICAgICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBzZWxlY3R7XG4gICAgICAgICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICAgICAgICBgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElkZW50aWZpY2F0aW9uRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHR5cGVTZWxlY3RvcjogSFRNTElucHV0RWxlbWVudDtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblxuXHR0eXBlOiBzdHJpbmc7XG5cdHZhbGlkYXRvcnM6IHsgW2luZGV4OiBzdHJpbmddOiBJVmFsaWRhdG9yIH0gPSB7XG5cdFx0Y3ByOiBuZXcgQ3ByVmFsaWRhdG9yKCksXG5cdFx0Y3ZyOiBuZXcgQ3ZyVmFsaWRhdG9yKCksXG5cdFx0c3dlOiBuZXcgQmFua0lkU3dlZGVuVmFsaWRhdG9yKCksXG5cdFx0bm9yOiBuZXcgQmFua0lkTm9yd2F5VmFsaWRhdG9yKCksXG5cdH07XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgJHt0aGlzLnRleHQudmFsdWV9YDtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy50ZXh0LnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMudmFsaWRhdG9yc1t0aGlzLnR5cGVdLmlzU2F0aXNmaWVkQnkoXG5cdFx0XHR0aGlzLnZhbHVlLFxuXHRcdFx0IXRoaXMucmVxdWlyZWQsXG5cdFx0KTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2lkLWZpZWxkJyk7XG5cdFx0dGhpcy50eXBlU2VsZWN0b3IgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjaWQtdHlwZScpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLnR5cGVTZWxlY3Rvci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuXHRcdHRoaXMudHlwZSA9IHRoaXMudHlwZVNlbGVjdG9yLnZhbHVlO1xuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLnR5cGUgPSB0aGlzLnR5cGVTZWxlY3Rvci52YWx1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2V0RmxhZ3NVcmwoKSB7XG5cdHJldHVybiAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUZoUUFBQUFQQ0FZQUFBQ2kyK0hkQUFFVWtFbEVRVlI0MnV5ZGRaeGQxZlgydjN1ZmMvMk9lMGJpN2lGT2dydExzZUswdUpSQ2tkTGlwYlJGV3JTMDBFS2h1QVozQ0E0aHhKT0pUV3d5R2ZlclIvYjd4N2t6bVVsR2t4bWs3Mi8zUTJjeTk5NTk5OW15NUZsclBWdThlTWxkcW5EbVdPNzRwSW9YRjlYdy9wRE5JQVg3cmM3bnlLUUdyanU0Z0MyQmJFNzk1MUtNU0JTaFNaUUNJUUJBS2RxM2RiYzZyK1ErMCs0VlRiT3c2bEo0NkxaN09QK005ekRxTkhUTmN2cXdCREpkVWZQdlhEWmROUUk5M1VCWm9sMjNrK3EvRUFBSzJ2VzdMdFhEb2NjUFpsMmFaNGRYZXRqdVd0THlSZTArTFFFYk9Dcm80ZTdzSUNITFFpUWVWa2xCd0lRcjlzN2oxV0VweUxpTkxYYm85NC9mQ0lERDNFbnF6WGhUYTMvdHZrT0FyWHJ3dDhSbkQzTW44V2E4U1FEMGROMU8rK2RTNG9sMWs3TDlJQzFMN2JSdXBVV0RkbVVXTzIwRm16Y0tnTldrOTJtL0k2a1ZBTi82SnZhc1gwR1A5c2ZVaUxNZlpsLy9YYWZ2RmdMaXBpSnUyZ2doOExvRWVtSnU3VTQrOWNXdFV3VEFiMTdZMEtmemNPZlBCaWNXOVR6VjllTXJwQUNFeEpJYUtBbVdBbUpBSXdOb1lBK2ZoMzNIcHpGOVhBWnovbjIzQUtnWlBhdFB4NXV4NmtzQjhQYnBONm1zT1JPNS9XMlRGNzZKc1dUODJ5QWtFeGZ1ei9FcEc3bisrQUFsU1lNNTZiYXRHT0VJUXNpRXJMSGJuSXEyN1NvQnNPOWZTeFNBcmdsUVlOcTdOL3lQZmozRW1kL2puMnpma1JLays1dDUrZGkvTXZTSktQRktEL0dybXpqaWpTdFpWNU1Mb3B2dmZmRlVwOTkzU3Z0MGZqbTR3T2wzNkFNS0JjR0FpNmtUc3NsTzl4T3dQdWZxZ3g5a1ZFRVZ5dTc0aUVSTUYyYzljQWJQZlRZVnREWnZXbit4MCsrSUczY2VyeTA0YTg0R0hqajNLL3l5L2N0aFczRHh3ek41N0xQQklEdDQxRFUzTy8xZWRGU0g4eUFWS09IOEI4NjBDc1hPOG5iSDl1Q3JIY3AxZ0RFakFqejc0SGpHakFoZ3Rld1BDZlltbThpdEJ2WW1lNmZ0MWJKdjY4YU83OVAxU2x1eHpORnJTdlZwdjBLSWp2dFZpa2p4T3VwZWVKMzYxOTRodG41akIwcTg4emFsYnMzMmZrM1lmTXVmcUxyN0h4Q0xvNldsb213YmJCdWtRRWpOK1VyYmNnU2psQWdwc2VycXdlTW02NHJ6S0xyK3QrRGFQbDV1UDdiandTZ1lFWXp3eXRSVmpBcEc2T214MWlkV2JqOFBPKzFieFJuSGorS2hXL2ZHNTlYYnZ4YU5FYnI1TDhSZWZnT2s3RlNPT1hwNERIZDhVcjJUSGo0cXFZR3JEaTZrMlo5QzhsMTNFQXcxWW1zNlFpWG1CQkJTUTdYWm9wT3JWd2lBYU5raFNwa2xZRldpN0RBSWdjQU4wb016WVRLeGJuWm4yN3hkOHcycUVBQXJ4aGIxNlQ0YnUyS3pBSGlwWUZTZjludGNhYkd6YmcvUDdySmZYU2hNMjFrZlhkcVlxaHZCY0s1alJ6SmtsR0xxSEJnNEREUVhIUXJFM3JRL08vcEhyZWlwL1NRNnNQQVMxcTFQUUkwTnIwUVFmNnpzVU80SUtSRVhYY3l2dC9wNDZiM0ZQSGZkMGV6NTlOK0pMMW5hNFg3dFRPNWM5ZHphUGwyM08wNGNMZ0EyMy8rd1FpbHEzdm1RV09uVzdRN0RMcmFaaXo0UkFPOW5kV1R2S2FTVUdLWkZPR0pnSVZCS29Ra0krRjI0TkEzYnRuZVljNmNkVUxXa1E3K0NZY1BncmJlY255M05OQk9icm8yc1dMY09EajNVK2RsK2RRV0F2QmxseDJGd0t1eVZEUitVUVdrSXBHdTdyZGloTDZVNjJDWUFOeVgrY3FOU0FnVUNsQzBRSXZGN0YvdGZvTkNFalJuVFFJY2pSci9IcmVJR1V2NnptU0Z2bHprZm5IU0xFa0NxUDBwZWFoTWxsZWxFVFVlT2U1WEY5VFZMT2JwNU13RHpna1hjbWpHQnFOQTZYN2pGTnpqOVByQi9qL2FaSnNBeVlQOGN5WE5UWEtTNkhETlZxTVJjYUlLRy8xYVIrYnR2T2w2MzN1akl4T3hHYnV5Z0R3WGE1RE53SGZFUTZMNTJMMFhNT0JkOCtUaVByLzJzNDMxOXptUGQ2b1lqa3hxNDdxQUN0Z1JiZk9zWVVwZllEVkZFd08wTUlSUkhwSGhSTFJ1bHhiZWU5VlRIdXV6d0lUeDA5VFI4SG0yWGJBV3VPME4xNU93Y1VWeko3K2R2d0dQWjJ5ZEtnZkJBd1pWaDBnNk43K3pjdHRHOUphTlRWYnQ5TFJ5UnB5VXI3SkJBR2IxYnR5R3I2Z1dBdVNTN1QyVlhmOXNLakw2aGIyMzlWYmNJZ0VjR0hLRHVDczVpbFRzZnpBakU0NkJwdXk1ejExenBmSERtZlgwNzNxOHVkZm9kZTZOeVJKZEM3YVplQUdDRjQwTzRaL3hkcFV6L0d1L1FkVWdCVnRUak9BN1M3bElMR3dyU1hERGFiL054blNTb09kdTU5T29QZDlNMlQwaW5IWjZ4NWJ5ZGZldXo2cGJ6RHFZZ093VmJLWVR6Mm03Yi9PeUdUT3pLV09sU25pVTM4dHNEQmxDV21rdGRiaUhKSHNGakx5M0c1L053L3VsVHFhczFlT1NwcnlrcVRPS1kvY2RRWFIvbW5CT21Db0RsRlZIMTBzb21TbXJqK0hTSkptRjMzUFlIajhvVEFGOEVKM1VnMXhXRjExOU13VFhuVXZuZlZ5bTU5QmFVWVhWa0d1elVaamN2ZHQ1MThkNmRqODRXSERlMGlZbmxheUhqT3Bha05mRFM0aytkODloWmUyQyswKy80Y3pydjE3STU2OGpaUEhEVG1YaVZ6WlpmL1o3YVoxL3BzdDhXWDQxejl1aDZOcFhOc094QzNycmlmb1psRi9aNG4zMFI2RnRmWW5iSThTWFUrcjdkdjJKb1luV3YrSzV2ejhYZERxYjNYZHFJUHUyM1pkMnVDNlNwSjZKTmJMSE1QajNIS3pPbnErOUdXbncrd1dMeFNJdVNQSnY2WklVbHdXMEkzSEhRcmUyUWFWdjhwYU5XZS95S2Z0MFBuajlQNnJ4ZkpVR2FvTWNTTnJvSGJCMUU1ekkvZGszaUhPL3hqMDc3bFFuOHpqWWRYUzkxTTJFR2RERVJDOC92VkYvYzlkOHZ1T3JlOTFDV3piUnhCYnordDUrVG5SYm9sVngvOFpMYlZPSE1DZHp4MlNaZVhMcU45d29hUUFyMkx3bHdaRERHdGZzTXBXcEFJVzhNbm9LbWFXQXJKRlliWFNTdzVYWjU4ZEMrK2IyS0piVEVnSkFTVEt2VmdGWUswTFdkWWdsWHZicStiMzNMbzRaMk9MK1dyYmpwcFRWa1BuQS9SMVN2NFByWlovT3I2NDVoeHNDazN1bk4vckw3L24xVzM4cWRoSDlSY2Y2Vkt1UG9neWlkTUowL1BiV0lSeC83bEZobEk2VDRBTWwvYjlpZjJYZmU0TVFmZm5NTHA5MzhQdGdtS0EzL2dIUitOc2pGQmQ2dGpFeVdwUDNpNThnSjR3VEF3dlFSeW1VcHpKQWdKaVRDZ0xTOTR3RFV6M2Q4azlSTy9sMDMzNDF5Z1VmWjZBR0ZvUW4ycUYyejg3b3A1ZUNFYmZYWDQ0L0QrZWM3di8vakgzREdHVzJEVmM0Y3Q3R1BXdGJ0cVk5ejdIdldwTEc0enR2cUp1NU9hNUVQWGRsOUtoS2w2WW8vRUhueUZRZGZPL1VZa3U3K1BjTG43WGFmOVplKzZNNU90WUZ3ZVNVQS90eHNaQS9QUllmOTJzcFpRK25FV1pSU0NDbDY1SFAwOXp4MDJLOE5hWWZHS2JneWpQQnN0NUFGRUxFbEY2NGR6eE1WQlIzSGJTNXh6aHZEL3FTa1ZOZzFTWngwL0pjc1d6T0FsYXNLa0NsaGhGQlkxY2tjdlA5U0xFdncvc2ZqMFRJYlVVcGcxL3VaTUg0em93Wlg4TnhMTTVHWmpkaTJoSFhYQ29EUmR4Mm1jbFBleExRbEFudTM1K0dUODV3amtIcldLeXBxV0F6SkRyTGc5djM1ODd4aWJubGhGZWxCTjAxUkE4T3dlM2RZbmo4eG9TL3VUT2lMam5DTlJuNTdVRDZsd1N4TysrY3k0cEVvU0EyZmJwSGlqMUhaSEVBcFJic3RsZEFYaC81OThVNlRieW5ZZjBRcWwrMWRpRmR2djJPanBzMjk4N2Z3d1pwNnRBNmU0NjBMSndtQXU0Y2VvUmJJZEZ6WW5ScVdUdmhXWUhkeWhBUmdJSmxtMTNMRit0YzczV2ZLZ3ZSRDR4UmNIVWJvdTRZL3pKazdUUTI1NUNqTVFUb2ZiRnBQUmUxV0lBU2FodERjYUVKMzBHS2wyc1VPT3RjWGIrMk13M1I5UUhzVUUyckJZZm9ybHN1VmkvcFdiOTQxdVd2TXNLdm43dUsxRmh5UlFZLzI3WGczbnUzbzR6Rjc5V20vZTZ6OHBFdDk4ZCt2Tm5MSms5OFNNVzNhQWdvK3plRCtPUTl6Mm9qNUhjNmdtTXB1WTdKZHpXLzJ3K2QwSUI5c1RocStKMytkZXhadWJZY0RaeG53MWw5ZzJWc2dkL2FUeGJYT1BFUmlWcCtPMStkeHBOR2l6TEY5Mm05TGJGRDlZNCsrbmQvekYvWXJ2dE5mZW43b28vdjBhYi9yei83WWlka2M5NGphMGRTNTVLQVJYTGZwYzlUWDM3TDQwaXM1WTE0SnRZM1JIa0dzOWt1L2RONTE3MEdxSSt6bGpORUg4ZEMrbCtIVFBlMC9GNDJ4NWRZL1Uvdnk2eDM2RjFOV2ZDMEFObVJOVmtMWHlQcjNIZmdQMmNmcDFqUVJDUXhZMlZGTXVkSFJNV29RUW5oQktaUmxJUkt4clBEYjg2azY1eXFVYVRLNGFwR1QrL01wS2lWRjhIRmpNbi9iTm9DUEdsTUlXVnIzdVMxS0VOQXM5azF1NFBLOGJleVQzRUJqZ3lKOXJuT08vNVZVcUY2TU5mQ1owVXlqc3Z0SVJQUmZEa1ZYZUtvUXdvRjRXM0lEaFVqNHhLcmI4WmFuZFpOTEluYUdrN3RxdVhWT1RGZWI4SjgrblFkcjZabGRuMk1iQ05ob0JSWWlMTkV5Ykd5cGlLL1dFU0ZKWjQ1R3l6bisxYi9HcTE4TmJtWncwQUJUWWluUWRnY0huNzBwNFhjZjJxTjVrQzA0bDZFeElpM0svWVdiV1AzS05xNjVOMFE0b2hBSnQ4WnVVWWRIUGRHM2V2N1YwM2ZhdjBxcDFsaEEyOTkzaHJNN2YxL3IvaDJkcFpoVkFMbkJIdWRCZHRuKytPa3U0VVpDU2lkR0hiVWRvZXJiUVNjbi9JRENlVytxWEZuREFuTU1ZSGJvMFl2RVF6aVBJN3ArcEdPbjk2c2VxaWtZMXJjNWtxWHJCTUI1MzNZdlJGcnlHM1VwdWwzV2YwNFYyK052YlhxUjJOaXRwMkFYV2lMKzF2anVHRlZjNzhaUWdqd3R4aUE5Z3FrRTB1OGlGTk1JMVVxVTVjaEhvVzMvTHR0MExEd2hGY29XZUpJc2tsSVVub05YT2VNZGRZRUMwS1RFc216MmRCbmM2bThtV2FoZEd2RzByNS9yVjN2ZGVpZWpUL3ZWRHE3cDExemNmMC9xMjM3UFdlejB1NDIrblljOG5IbVlQN0p2Y3pEM1hyMnN6K1ZEYSt6dG9KYzZ3S0kwenBqNk1mODQ1WDY4d3RnQlZwTnN1cm1RbXRmVDJwMlJsdGFTbjc3b3h2SEtYTndBYnJuenNkM1JhdW5NaWhGQTNFYWZsTUxrbTVmMUt3YmVtVzJtM240ZCs4N2JJQmJyVmI2Qy91bDNPK1VvYUZJNHNISVB6RUFuSDE1aFdXNnczUXhOMnNvNWhSL3h1OGMvRWdEcjlrQmxYUXJKeDBMb2ZkaDhIc1JxbkRDSHNrRG9NUHhUcDYrMWMwR1pJRFFuTE9MSmdNSi9RdkFBYUh3WnF1NkRZUXVkVmNoOFkrZDhSaHM0MmQvRUhXbVZlTnZLTkFFcUJxVjMrYWw3eTkyaEhkV3l6K3dGUFJHRlBVOFBrTk9jTjY4Wk5HVzdvazBrWG12SzVxVUJrL25kdUtPSjc1RDc1VllXdHkyZngzRmxpN0RFemdNZXNUR3hidGVlb2ZwdXRNQ2ZIbmZlL3V2M1ZVZjJuYTBVUW5PeHQzY0RFN3lLRUJZVnRvczNtd1pqeDR4MitYanQybDhQRUFDRDk3czdCbWlhRktvZ040V1JRekxaVnRYRXlyV1ZHSlpOZm5heStPY2ZqcFlBNS8xK25yMjFzbEc1TkVsaFhnb2pCbWV5dGFLUlZldXJzSjBBb3RydzRSVXVnTVVGQS90VWxrMHEzYlJydHBtbU9URmVwUklUdjBNaFVzSTJVMHFwV0gwanpSV1ZwQTBaaUhTNWRvNmZiTmpNK2hQT0k3WmhzMlB6OVFEVHFCelZ0em9vdTlpUk8wdFRwL1pwdnhQcXYrMTJXM29RRkdwdThxUWpLN2ZaSmx1c09ERzY5d201NE9BTzVLL0ZXVE1PNElIVGZvWGYzVDYrWkVjaWJQN1Y5ZFIxa2d2U0loOEU1eVdrb3NZaHMwcXBhWEN6WUdWMjRuU1lnQ0xOby9qb1pNandDUXlyYTNFOCtKLy9GQUEzVHo5RS9XbldRQ0l1RGMyd3NPUnVSdC8rK3BEVHdiU2JWS3Q5bjhqdkZySmovRjRJNGVSNzFZWElIMVBFL2VmTVlQcnp6MUg1d2p0b2ZpOG9tRkQ3VGFMZkYzZW9TN1N4REMvRVhhRFpTRThZWlRzK1JZL2FndU1Gd01iajNIMnl6d2E5RkhlKytMZFRkNnJieUV2TzVJMHo3Mkh5Z0pHdDJLZFNDajJCYlM0cVc4M2gvL2tWMnhxcmQxNjgyNy90dkw3Q3RqbDl3cjQ4Zk9oRmVMVDI1emxtR1p6NzFvTThzZlNqanZQS2YvdXkwKy81WC9TdExmMlAyZjFhVjlCZitmU0Q5cmo5TlExMS8vclVFUjlQcmxrZVcrekw1dUM2VmJ5Yk5nYjd5d3U3N21Uc2pYMDdod20vN01YTGJsZUZNOFp6eCtjYmVYN0JOcjZaVlFkQ012M1RJRWVseDdocTcxR0VCd1NaUHVsNlVsME5tRXJ2MHFOdWlWTzljTWxkcXFpTmpuazNvV01PWEozUDRUdlVvQnFSS0dqU3FYMUpwS1FJYmNkaVhrZkhyTTNPVnpJNUdTMHRGYXUyRHBtU1RNSExMNkFYRmU3U05IUVV4MVk3U0hBbmwxNWdWdGF5ZHMrVE1jcXJFQzVYbDNHd0ZsMndPblZvaDJjcStlZkhrM1AzclR2bEJLaElsSW9ycnFmeHFSYzczRnNqNjlmM0sxNXhoRHRaM1JESUlWbG9OQ29MdlR0Wkp4ejdGaHk3ZDhldDBkTHZCMSt2VlZmZHM0cnZ2cXVISkIzZG8yT2F1NEh2Zm5WeXUzVnJ3YmNxNnFxWjlJc0RLSytwUU9vdWVndjdxbzlLK3hVdm5uN1ZkSFZvR1Z4dzlHVXMvK1lEN293c1pVWGVzV3ByOGdHaWpURU55a0ppNDFKeGJBV0c1a1VvRzZGc2JObEdEbDgyYzlmeXREUzVQWUVQQjE4QnRiMUdKSEhlOXQvekZYWHI4aHVZMmJDVVJpQXVkSFJoNzNMK2VMcmxGTy9mRk1oVmowWnIyV1RGKzJ5S0FUaHZaK0VrRkNnTmNzS3c1SG5JaVRpUExYcm1GVG45L3FOdjl3UG5pMzZ0dWV0by85cUd5YXFYM3VYek94NmhhVnRWci9MSnI5ejZhZi9td1kzdHVIYjQ5SDJLK2ZzdjV1TnpXYnZrKzM0eGZVN0h0Y08yRFFwc0tWcnpsSHJTWm4veldmL0drLzVUb25iL0dMVHA0c3hFamZvbDAvcDIvOTYvUUFENFRueGZ6UnFaeW9LMURUUkZMWks4R3ROSHBQQkZjVDJSZU1jNVJKcTBIU3dtSEFScGM5eWtCVngvd05NMGg3Y3g5NGl0emlmMnZyMDk1NFlBT3k1NTV1TDFuRFM3bG5oRVEySWpkWW53Q0dwZnFLVHEwVzBvUTNYNG5XT0tIZHZ1bUNQSHExOHNjVEc0UVhaZko5NGJuKytpcDlXTzY1RHNDdk9mdmYvT01ZTVc4TXJHYVp3NS8wSWFEWC9QVUlzSFQybVA2Mm9hV3NFQVVBcHI2elluNTNFM2NOMDNMcnRURFpvemdUdS9xT1dwYjZwNGQ4Z1c0cWJONGV2ek9UR2ptV3YyejJOOUlJY1RIbHlNRWQ0ZW54RUpvYW1VYUcvK3RNRUErdU5jOUpkTjNsL2pMWHBqZHAvMnUvbndML3BYN3R5MmQ0ZDFqbWVORk55L244UzM0NVNhVVBmN2FzTHptaEVkSk5nVmJuWHMxSDMvM0xkNTNoOWQ0K1I1ejdoaDd6N3Q5K3RibkRxYndMUS9xT2pxUjdFYTE3YzZJcnVUZDZrU0J0VVZaMHhTOTU4U0o3bFpPT1g1dXpuZTZrUmRSY3JCTC9mcFBEUzhjNndBYUhqaUtWVjkzZlhZRFkzSXBDREszTDA2azJFVlcvclZiOW4zckRmN2RwODlkbGdQNm5RYnVlNmdmTFlFdDNNcFNWM0R0aFNZTWRCMDU3OEVSdE5XVHU0S3Q5YU81cHB0N3l4L0dmSExEdTJvTS9aWnc5L1ArUnkveTJ4blI5a3h5WWE3QzZoOEs1ME9JUG50ZFczOVpQZTF3MkRia0lkWkF1NmNrc0tUSXdPOVc3Z0V0OHVUdVpQNmREK2NXdTdNdzdkOW5MODR0Y1ZhR1hhOUVnS1VwY2hNRHhDT3hBbEh6ZTFVSGp2aUxKcU5HWE5CVENjanU0SGFrTGREdk9Ua1lVbnE0c0lVaXVwMGpFYlY2bDd1OGpsZTU4UVE1Qi9tS2xzSXJxbU9NeU5zRWRGRzRmVkdPUzlwQ3pVZUQ5SXluVmliRUhTNHNYWnN2LyswWCtQQ2JmVm0wNElGeExac0llT29veEM2amgyTHNlYmNjNmw0NG9rZVQ4M2VpVm5jNHMvcDAvRVdoaDB1bG9hYi9xWmVISkhGT1Q4L3RmVzFrODQ0bmNmT3ZvankwMzlOSk5TTUt5a0paWmc5V3M4UlpRdTZsenZKalZ4N3dBQXFNd2Z3bkdxcEQ5dWhQaG1GSml4OFdwZ21NNWtuTHp3NjhZYnQ4a0VJMEJJMmdXV3B4UDRWaktTQ1YzaUlVVlIwZTRoazRvdDdha2NsYUFOb3RBUXB1czFOdVhVTVdsSEJoVGMzc1dLZDJTcUNXdk8wVG4ydmIvMmhKdy9zMS9ycVk0KzVRYlZ3OUxYTjZWSUkwb1RCc2I1bXNsdzl6M21aK2VpOTdUalIra3h2SmpqUittdTh6am5lc1pMTHdhMTJCWkpxdFgvLzhZYks4M3RJOTdoWVZSOUNBRWt1SFNIQVVvcW11Tm03aFQzL2NHZThHenY0bU5BZHZwajBHeUgxSnNlWVJ1OThiRmUwaVo4b3djaVVyYnk4L3g4WWxiSzEwNXBUaWFJNEd1VFk5Vk5aSFEyMjM1YUpHa0gxYlIvbjRrOWxsMjBibGJDeFc5RUxKZnZidDFSQ09JcHB6ZkRDUHAySEVXc2RXM2VmakNSMVdFMGV4NmFrNFhKQm5Xa201TlN1S2VCV3JHSG9BNnJWOXZyRFB2Z3dDZDMwRjJJdnZZRk1TM0hzdXZxbUh1djVEakU0MDJic2lHd25WTFN1TW1IRENRWllJUjZ1Zm85OEs0VGR6UmUwMk9iRERudXlUK2QzM1p1bi9xQzFrdHQza0ExQ29pd1QwZGJPNzRUVGc5OGVyY0FnUHptTEI0NjdoS1ByTExiZWRoT2hqZXR4SlNVN24rM0ZGaC95bFpPTG4vZVgzcDFqa1pBNFljMDViSnB5bEtjSitHMm91aXFSaS8vY3Y5VHQ3OTNPZW5NZFV1dlYwRHBzK2xPVlBvNWN2cGtuOWt2bnZGTU9JZVd4UndEQnE2Y000SkNSbzNpMU1jQ1RyNjl5U0dwa1N5R1lRbGxhd2hkWDdEcmZpdWdicVVFL05xV2M0Z3lYQzgzdEFTR3dUQU1WRGJYWldKMlhNVi90ejZiWWlsRml4ZHVSQ3JjUUIrZGxTUUplNTdPaHFHSmJsZDJPVkxqbE0wTTBOMWY3czNrejNnUkFUOWROdGF5YkRWYklCQ3RCWEtkSjhPazlGa2lpQXlpNzdlK3FoNS8vUVpweW5HcnB0WGRwdzdTdEpXd2hFeDZhNDJOOFlZQ3FKb05sbTV1cEM1bG9VdURTZnRBbmJlY1VPQVRDQWt0b0tEU0hRRnJGd0c0Z254RGpYVGJUaHZxWk0zczRVdzZjZ1N2YlRaMW1NV2p2dytIZmQvZnIrQjR0TGVSbkMwdDUvaGczNzUyM0wxa1B2UVhTNXQwTDRNQ0p3M201TXA4blh0cUlpRVVCaWFaSlREUENTU2ROQU9EWlo1ZWlhVDRzYTJjZzBFUXd4aFVtcmlURk1TOTYvMHFJSDI4VDBCdzIrSHBST1NjZk1aeWErbWs4OE5HcC9QckFKeGlTVzBQZjFITDFYNU1LN0VTT1hGcmNXY002dDVQcUlpMzZKRmowLzJOelpXZmluenlPOEtKbHhFbzI3WklWY2ZKWGwzRE5tSXVaZk11MTVCeDlCQ1cvdTRYbTl6NUY4L21RQVQ5Mk9JelpIQUpBQ3dhUS9zVGZ3aEdDQjg1bHlHM1g0OWxqUElzYlYvSG5oUS8rWk9meXFVby9SeTdmMHFFZVBuVGtLRjVxRERMdjFTVmNISXNqcEVRcGhXR2FhSDQvUWtxTTVtWjBmZWVVSGsvZUc1aEdKWFpzSlppcndWaUdNbGFnek0wb3V4Yk1NRUs2QVk5akpXZ0o4anduZ3dTdy82ZjNjQXZoa3hsMWsrZVBBckF0N0VWNjR3a2N2QnZoVUZJTVZkdGd6R1NZTUIzU3MzcE1wTkEzelFSbEoweklHQWdQeXRiQUxSSExEWGc1Q3VYV1QzWjlOTC9QS1ZodVNXcnFJMWw5eW9pamQ3THRwQ1lJUmVKa0JZUE1uVHlBNFVWSmFFSm4xYVphUGwyMGphcW1Kb0oranhNRTJuRWNWVXQ2OXNXeEdMeit1dlA3RVVlQXg5T2pqOWx4bUZzQTk4K0ZWYlZ3M0hENC9UZXdyTm9oRlFhSDQ4bVpOTkNGRTZjNmFZVHpwMmZYT2tlN0F6TUhaVHRKTWtjV3ZjM0hGWE5vaWdZN3dxeWNyb1dGWldtWXBzYVFnczFjbTNjWGgzNzVFazNQS3FxcmZPM21VOWN0anBwY3pPRVRWdk9YdCtidzdjYjhUczNtdmp3dG1nRExoS2taa29jbjZLUzdJVzV2djRkQWVDVU5UMVpSLzJqRlQwUTMrRGh5K1JZZWI2Y2I2TkMzRnBwRXhVeU9PMzR5eVVGbmJ6V0ZZcno0K2pLa1crK3dTRW9LZ2NjdGlVUi9BbkpDZ1hDQlRMR3hxaVZDZ251Z1JYeUxobFVuK1AvQlJCODJNTDFQKzF1M3l2azVKN2FGeWZGeW52U040K21zR1pnRDg3RWJHbEdXdlQycHRCZXR0di9kRW9ZVnBsR1FrOFNYeTdZU2pmZk4vbzJYRGFCcTNqRjRCbTdFTys0YmtvZHZRVWlGSGZPZ0FFMXNsLzh0SVFzYkNHaXdPU0s0SU44aXk2MTRya0lqV2QvTnpXN2JEb21ONkJpQUJIajJneVdzMmxqSkxlY2V4SUV6SElGdjJRcE5pcCtlUEJzMW1sZHFmYncwdjRUQ1FRSk4xem50dUFuWWx1VGxMejZndExxYS9RNGNSNnE3a1BtZnIwVzFJZmdabSsxaFVLcUw5OWFIK0tna1RIUGN4dWNTcmV2MFUydEtDQ2RXMGtPQ3ZaOHN2S0Q5TU45cjJ3a2lsd1FXM1lQY3dwOWtPOFR0SjA5cS9EdlN4R0l6MW1jcU1xZEdjUFRuT2tkK3JsT3Z3YVlpbTJXRGJiNGJZYkY4dE1YR1hKdUdvRU13N0RJRmJxTU53YkJvVjZQd3Zld0hyWk9xQUtVa3RoNkZlQkFxeHpoaU5xTUUzTTFJeTRNUXUrWURDK0hvRElRaUw2UEc4UzFyTWtBSmhDZlc1YVVkL2RtZXJORTRhdmtHSHQ4cmovTk8zb3VVZi8wTElRU3ZuakNhUTBabU1hOWU4dHducTBrZE1BNFI4S01rUkZ5cEtGdHo1c2FsOE1hYmRzaFM2M2tzb1NVR0pJVWdtSlZDMkhTSWxBSXVRV045cUVlRi9PM25HWXJTbkdLcnpYWFJuNlNzL3lIYnRVMkRPT241ejVqeitUZjgvY0M5T08rUVgzRC9LOHQ1NnBtdmlKWTNPZGg0WXF0YXBnMFJpMEJoQmtjTjFEbmRXOG5jSWgvQmd3NWpjY1pRZnYveXN0WitkVk5SbGVJaVk1ODRJenhoYXByY3VJYllhRUloQWc2KzRoMmF1QkNyemI4dFc1RHVqNU9SRktjMDVxWDZPemNaRFVaSEJ4Zldyb1hseStHZ2d5QVk3UHBCbTV2aDNYZGgzRGdZUG53bm5YcGNmcE1ZSElpcmU5ZWtxN2UyQlVUSWxQUy9DU1hBbzlDbkpKN1AwNGNnUjEvYUlyYU5rSkxLVHorbmZONnJsSCszQ0lEY0taUEpQZm9vc3VmdTJmcWVYaW5nUlBKQnkxU0l0b2IxLzZqTjR5U0RTcWJ0c1o2VEQxakdwS0lxSG1qMlVscnJFSFVOSFYzS2FRY3V4akExTnBhbnNhNDhEUlRrRjFaejFrR0xLU3lzb1dSVEZ0OXR5SEg2U3ZTN3Z1SnFncDVpQXA0U0xOVTNwTUlBcHFVd0xkVjZhYUt0blA4THgwME9tWmpMMUdIcHhBeXJ4MFZudHoyZjBFTlZmbzVhdG9VbjlrM252Rk1PSnVXeGYzV2dMNHBiWTg4b1JTUmlzbC82Vnl4b0hrTmxMQnZwNlFGRzIwZnRheTJkWi9XaGlhcFkwYkZEMmxGUWV5Y0FRMjh0ck8zUGR0VTNaWHh3K2VOa25qV1J5MDRiVDdsL01zOXZiT2FUcWkxc2FTN0ZqRGM0bFpLYUMwMjZhQ0ZDVnJ0cklTWnlHWlJodEJKTjlxVDFaeXkzWDFwSHNrNElzQ3lhVXRNbzgyUlRtWjFKcFR0QVFYa2w0ME1iOE5jM09vUWRIUmtwZGorUCsvL3NvbjV0MTl4VC9BTXE2TGEzcy8rd0prUi80VHY5ZG94RmJ5b25WQnZoL3I5bG4rUi84UkoxMTkvRnRrTlBJM2pDMFdUY2ZUMTZRVzRDaHdRanVvRzZseTlES0VnNzVsNWNnZEdPemFicm1GdkxxYm5pVnBxZm0wZlN5Y2VTZHV1Vk1Id3dBR2YrSGs0NFNISG9uQWIrUFRUTTIvV3BQRjZWelJmTlNZUTdJaFpXQXI5bU1Tdll4SmxaVlJ5U1dnZE5Cays5QnMrOXUvMXRVM1Fmd3pRUCs1dEJYbzgxc3NBTTAvd2pUa2JweUQ1U3lybkUxRTdJL2paTXNFNStTdUsxemo3YkUvY0NHNVNaU05qWEZUM2wvQlRmdDhLUVFFUUNGcW1uaFRGcUJVM3pmSWhJNTJUQ2Jkdm50UjZXTjNrNHJTREN6L09hY0x2QWpzY2RiRS8wTDdpbkNZVmxPYjdNcVlYVm5HVnU1cW5icW5qMGRTTWhZM1pXOFdjVWRpVEdFeVM1Z29RdjFYTVo4L2hPNW9TTmxKS3Z2dnFLZUR6T1hudnQ1WkNwS05VdUQxRUpnUkNDVHovOUZDRUVjK2JNYWYxc3UxWmNCVFZobUo0UG96TEJvL2NKc041YjNLaUZtR2JDMEdTU0E0TFBWemQzYUxOTzFEY3cxNzJZQlUwVEVjTHNKTzZzZzBwY3hpM01IOVpJMHJyWGRhcVZBTGx2ZEk4VTBHd29abVk3L1gxVnFRaTZSSzh1WXRTbFJaSXJRcnF2bnFwd09pSERpNlYyL2J5dHFuTnp5SE9GMUZsdXprOWJ5LzNaRzZpSlFYQlNBZXUzcHJQZ0dROE5XMXhvZm90NG5Rc2xIZG8yWDRxTmJRanN1RVRwTmhPT2FXYkNQbFk3UFQrNElJTnhJL0w1L0x2MStMS0RGSjA4blJTZmU5ZHl6NDk5N3YrTTN1OURiLzdmRkhRL1FRSU1VNkJKa0ZLMVhrelFMYmF6dUlISXZGSUVlcWV5cjRVVXNYTjdRS0F3OGYwdjRIS0dUVXE2ajBqTUloSTJFTHJvVU1XMUVnbmJMaXpUVFVHd2lsTUhmTUlKR1IrU0syUDhMdkcrMEVJSW53MUpqMFBXcjJEWU8xRCtCNmg5SldHYW1SQlA4RkZZaVhwZjI0S01ZeUQzOXhEZkNodVBoYWFQZmtReGJLVjI3V0FxMEpKTTNBT2pSRmNHNEh0SU41SkNPWmV1QVZMYXU0d1ZTZ0cyWlRQY2xjVE42Vzh4YzJRNUMrT1RXRkpXeFhWRkZWd2FLdWFTalFleHRzWkNkcTAvTlVDVFV1SnlhWXdha2tsV21wL2lrbW93RXpVMTI2dGhOTWNza0xqZE9tT0dacEdlN0dQMWhtcHN1ejJWb1diM3orYm9kVjJYWlNOanpnVXpTaW1VWmFLOE8xOUtialEyVVZWYVNubkZOcVRQUzBwT0ZyS0h1WkQvUDdSa29iR255MCtlZEJGTkxQTnd6Y00yemMzblJwaEc5Y1BrNmttcHNHdzNOMXowRGNvVTNQdmtXTVlQcTZJb0o4VDg3d2JRSE5FUXVvWm4yR0M4UVJlYVpmY29MdkR6bFJVTWJJeHgzZDVES0V2eG9zWE0zU2NWM2dGVHlFNXVCcUN5S2JBVDVxQnBFaXNheHpKc2pqcGhKamVPOUpKNSs1K3BYTGdLUFRrSk14cEZpeGx0WE5YdGpweVFBcXNwUUZiYUJrWU8yVWg1ZlJycnRvMEZyMEtUOFI3RitYOUkxR0o5VFNsUk04NkUzR0gvZC9CK0pPMm9wbzJIRFRSQ296K08xVDAxM3ovZ0NiWFhoZXVXZlhDSHNxV09kL3JmaU9wKytPSzg3eGZYcllJamwyL2c4YjBHY1A2eGN5bDc5eW1FRUx4KzRoZ09HcGZGeTdVdVh2L3NLNmFOam9OSGdxbDZaQ004VmVuanFPV2JXL0hpNU1jZVFTS1lkOG9BRGg0NWl0Y2FBenpWUnNlMDVIZlBLSFQweGRkYm9raTlBNTJyYVhpblRNSzd4eFFpbjMyT3VhMXY4NzFiRVdEUjNqVDZzZmtyb3A5d2hkZmpqYXl4WXZ3bGtNZDQzVWV0TXBHZDlTQUFDL1FVNVhCazFJbE9jY2o5SnBmeDJTT1R1Zi9GS0g5K2RBazE1YzJRNGtXVHdxazk3V2VNdHVXaVd2RUQ1eDljd3lqMXhiN3BZdVBvSWxZR3A3RHZFbzJjYUpxRDh5bEZrbEZCdnRwQ3BaR0t5d3d4Z1c5WmF3Nmp3WjNIV0xtVXJmRWNOcVRNMms1VXRpczJuWkRvdHNCRUVremRRb2JsWTFOZGxqTlhMcXNkN3ZaQjdpRXNTcHZDcFd2djU0TDFmeWZUYktLK1RmMzVycllqM0VrTWtEci9pTlR5blJudWY0UXV3UnRMZjBERzZxY0JiaWlsc0F3VFpmOS9IRFJXQ29ra25PWW43bGFrMWxqWVpwei9oVVJodHpCd1lSQlRia3owSHNuRmRqd05uYVJuZFlXakp2dDBManV5aUV2L3NZcW1zaENwdzFPNC9NaUJMTnZVUkNScUluVFpDaTIwRUFsYlljZFdQMnJTQW40MWR4NWVyWmg3NXlmejd1b0J3TmFkdmtPWENqT2tjOUxjYWs2YVVZY1psVWhsby9rMXpDYVRxdnZMcUgrenhpRTJiYXQvRXJjOXRwWDVydzB6S1FzcUxsamtZbzl5RGFsK0Fpa1Vtc1I5d0Y1b0k0Y1RmK2REdElHRjJPVVZxRkI0bC9QcC9sT2J6TStXYitHZnMxTDQ1U21IRVhqNFlaUVN2SDFhUHZzTVRlTE5XQ3IvZVhrRlJOdkVaeXlCTWhJMVEyNjF2Zml1azFaWEUrT0xMNTBjNmRrek0wakw5UHdrNUlOVFJKQ2d0TE1UNVBrL0VmbWdkb2lWQy9HL1dRQmg5Vk5lbFN0ckNucmFhSXpOcnhOWi93TEthT29UK1hESk0wNUI3OTlPamVOdDBGQnQ2czNhcFo5QSsxU1VqdjcyZldCVnA1MkNhK2hnS2kvK0ZmSFZhOURTVXAyYXdSOXBJbjU5VTByUGZMc1dUcVllUGtiSEhBNTBuTStxYWRpR0NhYmk2bXYyWnNHaVdqNTZiVGt5NkhJdUx0Z2RERFpCeitNUW15UmtyL3QvSklxV1dBczlOd3VydmhFVmlZSFc1bHJnWGRoeTB1dnB6NkgybDZNS2hzbmdvalRLeWhzSjE5V2dmSzUyT2w2VE5yYVNtQTBCTXJQcXVlNkNUM2ozMjZHOC9kVklwRCtPdlFQeHpRc2JtdG5tTXJsNlZocVRtejNFaWhWVzgrNFRDNE1EMkVTOTZlaUJRdXFhdDVIaU5iRk1EVHlLZ1NsNU5NVkRHTFpOUTZ5NVo2VEMvZDFzbTBoSkNSV1BQVWJ6a2lXNHNyTkptanIxUjZuYnQvNzVRWTQ3L3pUU1hudVZVMDg3alhCREk4OCsvZ1RWalEwOC91OC80YnJ5ZHVvM2JNS1RrZWFRQ3ZjVTcrdEs3b3dheGJ3NlA4OStzQTdYNURTRXo5WHFLN2JFaThOV2dGeHZHVWNQZUo3L2J2cGxoejVGWHA2Zk1XUFNBRmk1c281dDI4TDlxalphZVBEcVRNR2VLVEd1OEZXejR0bHFqdnRIbU9wNkcwMjJjR1NJL2o3QitQczRZQjZPYko5WHI5ZmR6Z1JRQ1hOVjExMmtUUjVDVm9xMzUzbitqL2JvaE8veWJQWG5lSlVTTkZWdHBMbDJNN283UUhyUlJIUmQ1LzF2S3ZobVpRMWVqOWJyZWtNVWpFZ0pVaE9MbzFBRVhUb3RoTWowbTQ4b090QXNQMzJkM212YnhnWXNMd0tKa3NMeHViVFlUbE9oRklScVYySEhhL0VtRDBQM3BpRTFkK3ZyUnF5WittMEw4U2RsRVVnZjNVNXYybFljTTFwSHRHRWQwcE5PSUdOMHY4L0Q2VmRhTEY2NW1TdGZxK0xnNmh3T1NVMUI2SW9HMDBJZytMRjZaaDVkWStqQURHcnF3cUFVZTR3WndLcVNhc0x4dm8xUHQ4MVg3Y25mZnhBc1FBaU1pakpDMzM2R25wcmgyREZTWUlkRFNMY0hLNXpnZWpWTmhFc25hWjlERWU2T2JjOEIzaGhsSVM5Ykc2bzQ5Y25iK2RXK0ozTFZuWGVUL09pamxMLzlHcHJMalhTNVVYYi81UUVJSUNaZ2JoMk1pa09aRDJ3SmxjQzBNSHp0Z2ZjVDd6M3oyRE1aVWpTTXB6KzRub0tNVDBrTzdwNFUxQjhOZlVqcDV5YXJQNFVwS1M0cTF6bGczNXlxamF4OHhXQ0NWTndiOVBLWk5vd2FROE9sMjRpWUQvZWd6V2kyb21GakxwcFhZZldXM1ZFNVpNVGdnRmk3S3MyRkFMZW00OUwwN3JDdkRsdXNDMldKVXRpNmpqdHZBTEZJQk9uekk2U0dDamZqVGtyRGR1bGdXVjBHOC9La2krdjlPZnlpcVJRN1liSzFYTDA4Y1lUTytPRTY0MGM0d1BEU05TYkwxNW9zVzJzNjg1TXdvaVNDNi8wNTVMVzV0YkpYNnhiWDhQdHNaazFOSmozZGoyVzdhR3BzNG90bFRZVENkQnVBc1lCSUF0d3BOVTF5RXNXR0ZhWkpRZUozbjVSMEZmNDArcHB0UXZYOGZkSm40eHNXSmJ6RzV5VDhhNzJ6SHVLbXdxMExwQkRFVEpzaDJWNytjdW9RQ2pNOFdMWmlkVm1FajFmVzgvN3lPaXJxNHorSVhIVGlhSTV3dEtTT1FtNG5FS2FSQXBvWjc3S1pNVHpJek9tREdEZDdEUG5UeHNMRUNZU2FHbG4weWR0OCtMYy9NV1NmNHgxQzRYNXV6eGgvbytrTGlIOG1PREQ5UVNqZTdKeVhxbVhFWG9CRE5JdGpBeDd5dE9Nb3R6eVlwZ0c0K09TVExZbW4xYkVzQTNiWWRib21HSzZGT1hMZFI4UTFGL2JBdmRob2Vsc1MrWDUwemQzZExZU3ROd0MxYU9HdTVXeEh1eThTczNoeTNocCtkdGd3bWwxSDhvZFhMYTQvK2lrRzUveDRTWVZieUlUSE50bGN2eUhHbENaSHppNU1rdHc2Mk1PS0pQbC9wTUs3SWpZdGk2YjVYMUQ1OThlSUxDdmU1V0xvZHlzLzQ1UHFiL2pGd0JPNWFvOWZNZnJ0NTZoKzhnVzIzbklYOFRWcjhZNGNTYzdCK3dGUSs4NkhSRmV2eGoxOEdFVTNYRW5tYVNmUWlNbHR5KzdrWDV1ZUkyTEhmN0x6K1Zqb0Ewby9OMW56S2V5eGd4NWU5YkxCQkUxd1NBQTJ1OENvajhIWUVZeCs0Ukdxbm5zZW83NlIvSXN2WU4wNXY4TCsrQ3RFOG5aaUZkTlU2SzVjY09VQys3VXFNeXUrRlR1eUhCbmNRblRWcDlpTnhYakhObUJXYmdiZEJuU0VjSU53QS9yM1RKTDcvVFJkS0V4TEExTnk5dkJTL2pseFBRZzRmL0ZRL3IwdUgzUWJYYk13dTBzSWJXcUFyK2REeVdxWU9BTTVlZ0x1cEdCclVXaGYySkdkR1NVV3lkVGJzMUdlc1FURllqUmpJWFpnQ09MOVN0d3ZMM2ZZTjcwL1hlRVdyNngyNXRFdytoUS9xWEx0Y0p1aEZCQ09NMjdpRUs0NHRZQmgrUUxERHVGMSs5bkhUdWVJOHRIODhmSDFMRm0yQWZ6ZVhTZC9lT3N0dU9hYUJPS3Z3VEhIOU5qK3ZHb0NmRnNCdi9nSXpoc0xsNDZCOHo0RTZYYklnd2VuZ2tlRDRrWXdMZWZZZmxLK0hVbnR3TXhCQ3BzQmdYSTBhWEh0Mkw5aUtjbkNta2swVzBGQ2hyOTF6cVZ3YnVtMm9ocWVGSU9MUnp6TUJhWDM0Nys5blBJbGFaaTJqczhmaFFTb0thWEF0alVhSTE0cUdwTUl4VHdJbkp2QnRBNFdVaE9PWGR4WjBWSlAzZWFXWk5NSnFZSm5KK3NNRGdqaTV2YUNYdUdUTkwxUVRkMUQyN3EvaU1idGhrbVRJRGtaR2h0aDhXSUgyUHFlVzR1UHRtWW5IMjFUcTQ5Mlg5RExKMklvZFpiT2xlZlBaZFhhU3I1WXVBa1FUQm1ieXhYbnorV3YvLzZDSGJOdVBTN0psSkhwVEJxZXh0dGZsckZoVzRnZmM5cU1scXp3VGpUeGpESUpmZW9pdmtFbnVrckhsVzhoZ3dKajgvOG9LMlJiRWZMd21YM2EzL0RDeXdFSUNSZTZoSXVidnVFVWJTTXBaMTFJNXRtL1FQamM2T0dvQTQ3MVFnaW5CQy9xQW05eGJncEVDUkJxKzc5N2hlRXB4Z3pMWXVha1FoWVhseE9MbTA0ZnU2c25YQVlvaUc4WVJvRXhudkxsS3dsT1hZQm40QVlFaW5EVVRjd1c2QUxjVXVFV1lDandTc1V0dzB5a2dCbXBGZzl2MVVuUmV4dXNhRk5RSmlSSURTdFVUYXhxRmQ3OFBaQXUvMDRmOGJsZExGbTNqVk51ZUlvTGo1L0YxYWZ0UTVMZmcyMnJSSjdjajB2L1B4YitpTkl2VE5aK0JsTlRYRlFrNU5uYzZzMFV6ek9ZS0d6MlRndnc4S2lmMHlBMVB2dHFNNm5qMWhBWVZJYnlGYk9vcXBtQ3VFWWdKVUM4VFpHUFVoQndTNDRabmNUVWZCK3ZyV3JpdTIxUmhBQ1BKbHJKbjM4MHJSdW4wMTBoR0ZhU0RCWHJXVFV3a2F6V3g0NXEzMTQ3Q2Jib1BmbXgyU2c3R1Z0M2hjeTdBd3lBREFDR2NnaHNKUkR1NllUOHRPeHBDZXloZThnTDZEd1piZUo5MnlDdTdYQ2RkUy84dTFqTThWSk1IWXpFUjlObkcrUjVGSE1CNHlPZHFuOTQyRFRZWnVrUWkrOUcyU3daWnJFeHo2WStxTEE3SUJpMjIreVovdG9QNFhnSDJMR1M0SXJpclJtR1ovbEpwT0ZCQ0VYZG1qaXhjYzhTU1NtQnVCZDZTeW9zRk1wd2NmVDBCWHhkTW9TSkJhV0pVbUhCak1FbHpGdTRSMExQZlA5NzZiSDZCWlJ1anJObXZtSktpb2VLZFZzUXdKNlZXMWo1Y3B4eHltS3YzQXorTEEralNkUFFhK3FZK3U0dGFFbTF1S1ZHdk03TDRvT3VnY3hVYUpPZzBydFlna1M1SkwrNDdBQUtzdjE4V3hhbmVHdUk0cWZmSXhJeEhFTytGNWgxaHMrNTdtMUwzZi94NXZYYXYvaTRuTWR5MHppNlR1UDBrcmVZVytqajRTTVA1TmNubk1kdGp5MGdrT1J2RlEyQjFBREg3WlhQUlNsVlRNblFDQnh3TUFzemgzSGZ5OHQ1K3NsL1FsVlRhNzlCMCtLdG5Fd2VQS3lJVzRjVWMrcXdyV2kyaFJWM29kd09DWk1kY2RaWitoU1dFb2c0YUc0RFMybzh1UzZmNjB0R2NkSFd6WnhRMDBFeFlFME5QUHd3ZlBHRkk3dU9QYmJ6aEMvYmhuZmVnYnZ2aHRtekhSODhNN085MlNjVk05S2o0dTdKbFV4SlMxWVBsNlN5c2RrbEVQMHY4ZDBIT0pkWnFlb2Y5MTRKUjhLc1g3U0k2aVRIRGcwdFdrVHlRUWZzZ3VHaFFFcU1MZHVvZSs1dG9xdEtrQUVmU2Z2TkpPWElmUjJIL1grV1ZOaENtVHA3N3JFT0t5WVlYRkRKbUlFVmxGWWtBVEJ6ekViODNpaTJFc3dZdTVGMW01MExaTVlNcXFBZ3J4cGxDUGFjdW81djErUWkzTnZsYjl6SVkyMzU5VXdvK2dWU0tHU0hKREc5U1VaeVVKZWdWMFBYQkFHUDFvb1pCUHc2TGsxeTNJeDh6dHBuRUpaU2FEMGxGRDQ1b1llYVA2VDBDNVBWbnptWWQwVTMraUxvRSt3MWV4SlYzeFF6TnFPT1VVUDI0cE12VjhIM2RIR0tTOW1nTEhTc25RZ0FCR0JaTU13RkdvclZoa05Tc0dPQmxRUk1KWnkrT3RGbGZhVy9oaVVsTTZRNXpudTN2OHZmWDNpRlkzK1Z4MytQbllJeFpoenYxNHprZ3dhTGo2dTNzYlJ1TTBhMENwUUJtbzZVYm9TUUtGVHZrKzBTaExvb2haYVZnMTFmMjhhdjdicjFWeXkzTS9qYnVTZFg3UFNNc3FXb3VKTnhSdHZxbEIzVlRHS05WMlVYY2RVaE56QjUrWWVzSHB4TnNqdUhQN3g1SjhQckc1d0w4bjRBcVNOY092L1grcS9kKyt5bTcvWDdsSlRPSG5UcldFayt0TnBtbEV0aHVkeG9VUk5wL1RCQitmN0NkL3FyUmMwNENwdTJsVmc3WlVpMDRIS2RGanY4OUFtR1hjTUdrZjMwZlNTZGN5SlZGLytlellQM0pQM1dLMG01Nm55RXBoRmZxNmg2dVJnOXJrZ2FaK0dhQk1xeWFiampuOVJlZnlmNm9BSUd2UHMwdmdQbnR1djM5Zm53NGRjd2V4S2NlWlRCWVh0V2NkaUlldDZ1VCtXeHlqYkV3b0JmczVnZGJPTE03RW9PVGEySFJvTzMzNGJIWG9VdkZrTTQybjdHazRWa2YxZVE2YnFmQldhWTEyS05MTFNqeE55dXhHMXZQZGRmTGJoR2QzWnJyTFNTY01rV1o3eERDdkVVWlBmSVR1MnMyTnEyYlE3WWQxKysrdTQ3OUlZR0J3TkpTV0htbENtOC85RkhYWDYyVzhmWUVPQzEwUWM2Y1N1cnpBVlJDYTd1d1ZCVHVydkh3SGJLNk8wSlU3SFkrWE10VEN5V3dGanVwc0dqc0Mwd3QrcElEV2pKdFJPZGZTOGt1U0JrbU55eTB1U044alF1R3RqQXZvVUZZSU1WRHlHRjdDVVdYdGFqS1JhQUZkZklDaHJjbWwvS29EWDFYUG1uS3BhV1NGd3VGNVpsdEpvS2s4ZnJMRnJtMk94Ly9meWhuZmFXek14d2lzQnI2N0EzYlU2c2U4L0cvUGdPZTAxS1NWTlRFdzg4OEFBTkRRMXMzYnFWVTA0NXhTbWMzK0Vabm43NmFSNTc3REhHamgzTHJGbXowRFJ0WjFJVkJWU0c0TjMxc0xrQk1hTUFWMDdTTHNjWFlydUNHNWtheXJUd3B3YzUrcmhpMHQwNlM3YU5vS20yRHVIUzJoMzNCdVZqbTVWT1IzUmRFb1dOUnA2c1luLzNkMVRhcWN5UFR5YVdpRTZyM2NUTWR5WFJYZFhWZHgwdVFPR1ZPamFLdUcwaCswRGYySmFOUHloeEZUdHl4bCswTDNiWTdubmhuQkpNTDl6QUlXTlcwdGdjSnlubzRjWHZKck8wdkhCbm92aGV5SzFZNHBlV3ExdVVEYnBYc2V6MUFGVnJCUU1teHZIbHhkR3RPRVdUWTFSV0ttS1dqVnRJTm4vcEoxYmxadEZMQVlhT0Q3WHJkK2FrSWZ6aVozdFNXZHRNYlAxR3F1WjlTS3dUMHRDK0RhTDB2Z2lvMzl6YWZpcXdWLzNVNzUwdFNTV2R6cXp6UDlFdWcvNy9qNFJPQVppV1lFT0ZoL3A2UDRHZ3d1MktrSi9UUTd2WkxSSG9DSysyUGNsR0FMWnkvaGEzVVB0bU81Y2JmRlFKYmcwVnRSTDRYT0w5V3NJcGR2KzBjeStVYVROc1VCcG5IekdhMHNvUS8zMjdtS2FtV0R1aW0zWkV3cGFIUEg4MXArWit6RWtaNzFMb3RUQXloNktOT1E3dXVXUDdMbFRROENFMGZnZ3BoMExXK1JEY0N5cnVobkFwTkgyd0hXM3pGMERPRmVBWkFtWFhROE5iempUTDcybEhkNHRNS0lWMDVUcGl4Q2p2Z1lKVDdYN1ZzK1A0cHpZU0svRkJzK2pYYzZHVXdMWTBNdjJPN1ZzZGRvTzBuVnlUWGtKYXRtRlRrSlhFUXpuenFVWnc2S3BUT1VDdHdGSTU3TDk4UDI0Yi9DbDNEVjdIYWVIeE5NWWFuZnFlTHZxTUd5WlZ0YzNZdHNMdmM1T1hHV1RqMXZvTytjWmljWk9xR3VlaXpZRGZUVTVHa05MeXhuWlQvK25vdnIxa25MTE52YlROaGxNVGhlUU1MNEhaQmNTcnEwQzZjS2VsMHZqcFprS05jZEMzRDdpK3RJelNzbExLYTZ2eDZtNDhIZy8rbkt6ZFA4UGZsNnpZaGYzWTArWkdNTWNWSUV2cUdDaEdhVTdSNFZvclJyWjBNY2NWNFAxNEUvRWZJTkpwMlRwRnVmWHNQYW1NL2M4N2pvQTN4S00zZjh3ZXM2djU1ZVY3ODY5NVk1RENSaGtHS3E1UVZzOFlOcHRkT25PMzFQUEVheXY1M1Q1RCtLb3dGUkV6ZC9zSld5NXZuRDVrQ3lkUGR5NDdmZWFiOFh4ZFVnalNRZ2lKbEdEVmgwZ3V5T0xHMDZaejZvWkZORnorQkRXaEdIcHFNdkdhV3RMeTh0RXYvem44eGlGR3NKWGYyUVVTYU5ZNVk5OG51T2MzVC9MeGZKZ3pIVjcrY2lMbjNYc3RscDZha093L1RudWtPUjdtbFpVZll5dWJrWmxGZUhUM0Q2eUVWVzhrL1Arc1haZHJSdVNoelp1SGpvblZYanN1V252Z3gyL2Y4UENYZ1lKWC83SGxuZW9yOHVhQ080bkFySHNJQ1Q5OGNlNzNNcVpIYXhaVFpZWFpXbTR6cmppWlIvWnNCQVcvbkxlSnpXc2EyYU5SNHpERGhWOVhXTDBnMXYxWFFzY1Vmd3FUMnVERnM2bzJzdndWZzdGUzhiYzJ0Y09XWVRzdXZSQ09pMmtuWEJxeDQ5a1h5S1JrckpwYXJFWW5MMEZabGxOTHNKdStTZ3NxRTRvWlBQZjVPZ0JPbkQyTWdOZjFvOXRMWm0xOXQ1cE1hSnBEaG1GYlBkWllHb0kxVm93VEdqZngrMEFPcDNyVGFGWTJockxiNWZpTFJLcVoyU0FaZW44alZjOTdxSG5WZ3p2TDd2QmlWVXViaTg4bHVPbzBPUDJRWEc3OVZ3a1B2ckFjSzJhakpidFF0bkI4VGRIenRlcVpyaERZaG9HUUVyZmJUZHd3SENMTlJEencrMjU3eno1U0pCVUZTU2tZeExna0g3bHlBRlZiZ3hCeUFKSGM1aFdNalg2Q04xWkVtUnhJZVUwMVFWVk5LR3NHRVJySk0wdHBGT25VcEkxdHQ1NDlzZW51QzNxWkw0WVQ4OEF4KzM3TDgvT0hzOWNvR3hVWEJDcXFjZVd1WjhsM0V4QzRXK2RYbW1GcVhXbmNQT0hQdkRUZ1dLN2YvRmVPR1ZhSmtqcmhpSTNzYldyb2h4OG1zRHJCZE4xUGZzREZZOUU2M3JiRE8rY3Y5Z1ozN0FMbmR5NlZnVmlVMWxxV1JJcjZicmNrVnhOVHM3NWxlTXBhbXVKSmZGczFsWFdOdzFyekdydjNUODBlN09GZXF0SC9heDM3dmtvaDNDNWlZd2RnWUdBTG0zQ1JEMWRKTmFLNkNhWExuNno1NFJVeEpyc1hNOEsxbGtYeFNhdzBSbUVxdlp1OVp6aTZvZVdDVnlHMjQzMUNPQUF0QXZUTzlWOVZVNXhqL3JDSW5CUTNmN2hrTFBlOXZwa2piLzBPb1F2UUhJeWxsVWc0RkFScGM4eWtCVncrOXhXODJpcis5VlVTODVZVllTbEk4VmtkNHFWbVhKS1hHK1h1azBxZHVrRmJvQ2ZyUkpZM1UzN1BGaUlyUXNpZ3R2MWd5NFI4TjAzc2FCVGFuREZMd0RjRExMWW0yWnk5MU1WUkd6d0ViQTM3eDdyd3RvMHNISURueUlPSnpYc0xvakhRSkRJN0V4VUtZMWZWN0ZLM0Q5ZS96OVpQYkZiT2h4SEI1NmxlVjRvUWdvTHlqU3h0c2hnaEZYZjdQWHlzRDZIT2NMRDBaTC9KOEp3NExsMnhjcXVIeG9qbWJKTTIvVWFqenY3Uk5NR1N6N2Z4KzkrdVJ3RjMvM0VJY3c4YjFPK1hCL1RlOTFYdDVJT215ZmFYUUNaK3R5ejdSNSszcUpTTkVKTHFjaWRuSlROM1lPdmYvdGZhbmlObjlXbC8zL0pwUWlaR0VGS2lEVDJkcEFIN0VWcjlKQm14YjBoS0RWSXZ2UTZYU2krSU1TclhPbjVFWTFCeDJWTXVOS0g0NEt3bXZJM1NLZnZaSVZUZTZvZUlqdi9XMHI1cUZRK3EzK1NPYjlaTThsOS9oYXBmWDBYenE2OGlVOU9jR0tMOTR5TUdPZjJRRnpwL0ZFQUtpYVpzTE5OeWN1YUU3Sks0YTlHTExYYjFCNjEyZGZ0ODF2WjF1cDlydzZtTzIrUm1wcUlGQmFKMlBzTzBlajR2S0VUcE9xSW1oQ1Y2WjY5djU5YVNTQVFqaG1yNFBYRjA0YVk1S2xpNTJld2JJL1lIYnNMblFjOUtKKzJFUXdoOXM1VG8wdFdvVUlpOWMydElIMXZaSzV2cy9zVFBTWCs0dG04SGVkcXhBQVJtZFNkMzJqZ1dxZ2Q0MXBkZmJyZDFMQnZicTdOZzRXWlFpa0ZEczZodGlORFlIRU5vQWszYW1DRVBhRFlYSGY4NWZ6ejdmU0tHaTJzZk9RQThab2UxdHFhbG1MOHF3c2I2T0w4NUxwMFRweWZCUWdndHQ3QkQ3RHF4c0ZMZzBzbW9xcUp3WlJpdkhVWkxEK09la2txT0w1MkF4MDlOcEo2NVJaUDRxblFGTlpHR2J1TW5QUlJNMi9QMVZFdG1iZzgvYVJpVVBmQUFsYzg4Z3gySnNPbjY2eG54cjMvaEtTenNjOW5aamhGZTlwN2Z6SldWUWVrRGozRmd4WkY4K3Z6TEhIM3grWlN1WGNjSHI3eksvbHUzOHRKZGQ1QjN4Nk5zbmY4RnZyd2NCLy9xQ2Q0WC9pZ2hkNVFqejlZbjVFNzFKbGJOTXhpUHpWNVpRYTdYanFGUmdZN0NSdUtSTVV5bE1TZnpRM1JoOFo5TjU2R0xuWDNYUUVCbi8vM3pPZjMwa1FBODhjUnFYbjU1QTgzTlpyL0lEZzBJMlFLWFVQeG1RQ1A3bDFWd3p5MTFQUE9oTXg4dTNibVVWd2pGK1VjcEhwclh2N0xzZ1QvMkxaZmQyYisyZGdhOTJoZ0ZJckhmekZBSVE1aDk2c1ZZbmRna1BjNWg2WWZ4S3FVSTFaV3g0djA3cUY3N0t0NjBvUXlkY3hWRHBoek9zKzl0NHBGSFYwQ0t4eGw4TDFyQWlGTlRXMC9BcFpPbmJLUmh0QTdiVkFwbG1MM0NYNXA3SzB2RmpyZEwvSFJicjJ5Ym1DUVFrQXdhczVabU00SXJGa2RMQ2xDNmNoaWhadFd1N0VNSU1DTDExS3g4QU0zbFFRK09JRGxyTEs3VU1maVNCeEdMMU5PNDRSbEl5OE9YZWpWQzZFUWJOeEt2WDBsajFRck01alZZUm95TXNaZjFlb2FGSzhGSGF2VDhrNys2SmNJWlIzazQ2cmRSRmk3WndEdXZCVGk4UG9lRFVwT3hOVVZqb21aRS9NaldXd2p3ZUhScTZpT2tKbnVwYlloZ21IMXY4MmVtZVhIcGtzeFVMMXFDeThHMkZWVjFVVXpMcHFZKyt1UHdxMk5Sb2t1K1JhYW1JNzArdE53Q1ZDeUtNaTMwMUhUY2VRT0lieW5CMkxxNXl6cWcxNFl0NVc5MWczbGlTeGFoV0p3L3Z2NHduNHlkeFowWC9vS3BlMHhuNjBQM0VxdXFSQThHNmE5WXFNSkpFMThkZ0lJNEhGQVA0eTBvanNDeUxDaHZRNGl2NlJyN1RKdkxDTmRmMkZ6K0dQbWhKOGkxUTg0ZEg3dXdaZlZ6MHcvaGhGT0djMXhhbUxlS0d5bklXWUN5WWRFNTU3SlgrWEplV0ZiSE04VlJtcWdHTTBaT2ZvQ2lrUjZpUkJtb3BmTE5nQnBxMXZ0UU5VRnNhZlZRK3ppSHR5bWNnYkloNkt2ZDFVdEt5QTZtODhmRExxT3BLSCtYbk9Bei9uSmtCNGROT0lXV2dRQlREandRdFcwOVptME5XcTRiWmR1WTFWV28vSUhzTVdGdjNnNnZ3RFNhRUVMdmtJbS9VVm5zNlFwd3ZqZWR2MGRya01JQkdRcnpKRE1uZWpuakdDOWpoem1nOElwMUp2OTVKVXA5YzVUTjIyeWtBa3Zabk85TlowOVhnSVkydDF2M2ROMmFxUUxieHVWU1BIWGZjV1EzellQVTRWVEo4UXpmN3lGUVlpZkFjQWZYaWJoU2ZCS05VbTFiTEkvSEdaUWdFZDVvbW94enU4bVVHdnY2ZlBoRjU1UVIxdzA2cVc5UHpZYjdleUExSGJKcU95cElQNnlPcEtuTlZEeWRCWGJQOUxsUzROWUZSWmxlMXBWSDBEVUl4eXhtalVocEpSUFdwR0JNZ1o4eEJYNU9uWlBOL2U5czVlVnZxdkc1WlllMzNYZkx0eUJFZSt1c2h4YU9RbUtoTzFFMXE0b0JORE5CVTh3WWtlUVFDTzg1bG9KcDQyRDBDUEFrdFg2dXJxNlc4L2Vmek1aMXBXUm1lY25kRTladjJMaUQ0OVQzN1pUVXF6bng1NFVjTzZDTUR4Y2JqTXQrRjVSaStRVTNzMS9GUjd6NmRZekhsL3Fvb1FFcGJRb0tVdG02dFpsdDI1b0JneWxUQ3BnenA1Qjc3LzBhS2QydHc1UUNVcVZCV3JpZXVPNG1XVE1SZlVFR3IzWndhcFhBVWpzbnROdEtPblR3UFdRM3YrZVpCN3NVbDlyQUFtUk9OdWE2RWxSZFE3Y0s2TUpPL2g0M2JWNTlmd096SnVjeWZ1UkozUFNTNHNiam5tWklINUlLQ3lGQUtocENUb2NwQVluWUJhM1Vsa3o0N1VWaENxSTJjYzFSdnNOQ0ZudldXeHd5MmY4L1JTcThydUg3WWFRUXVrN0tvZnZqR3BCTDVmMy9wdUdkRDF1dTl1bFZTM1VsWXl1TGUwdit3K3ZiUHVEYVVSZHgwcWsvSS9QZ2c2bDQ1amt5VC8wWmRTSG5tY2JjOUJ1cW4zeWVuSk5QaE14a250MzhHbjh1ZnBEMWtTMmt1Vkx3YUY3cWZxTHJkbGI2b1p4NHluQ09TNC93MXFvRzhuTytCYVg0OXV4ejJhdGlPYzh1YmVETlZRMWNSaWtCeTBSTENpQUtCMUM5OGx0aTVWdkl6NzBlVDBZNllkTkN0Z0dqWjgyYXdhU0o0NWc4ZVRManhvOWp6T2l4WkdibG9ya0wwTndGVUJhbDVyWTF4Q0tDQWJlZWlXK2N3cXhiZ0RJV2c3RUdaWldoN0RxY3BFaFhlK1M5UHd6eTd5RUFvUW1GclFSbTNNWGdZSVIvVGx2RG9IbzM5ejA1RTJYRE5iUFdjZExlVlp5L2NBUWJRMzZFeTNTS0NMcVVRUXFxdHNGSHIrTXVXY3BoaHc3a29CbEJnajdaSzFLR00zb3UzYkNWb2xrL0dDdnRBblIvRVUxQ3c2NWZpSC9yZWx4ZlArQUVKelFCM1FhU2R0OFo2YTlRaFIyTFk4ZWlmWDVybldoakEwc2hzQ0ltSXdabDhjZnpjM0c3YTFoU3VwNnFwaTFFRzZzWVBuQW1RektHY05kRmc3bjRMMkZXYnl4SDg3amFyV3VYejI5WjhNMDNzR3dabEpVNS80SHo3NW9hR0Q4ZVVycS9OYk1wQnVkTUFIOEZ6QjBOajVjNUdMa1poMTlOaEVQeTRZK0xZYk1HR1g3WUZuSCt3NEFwdVRCbkFOeTdHS1JyKy9HMWJjbmVPWjl6NC9nL1VlQXY0OUdabC9ENGhwTzVjZWx2RTNOakkxQlljUTEwT0hqc1IveFcreE9qbjE1QStidEJxaVBadUlSQi90UnF3aWZtd2hWT3Z6ZWV0eGNJaGQ4ekMxUGFuSEc4VHN6UVFZQm1Ha3g4cVJ5MTBDbGFtRGdpaDk4ZU53ZExkM1ZxVHQ5NFFVL090VU1tUENKWjhNeGtGME9DZ3BpWnNKVnRrQUZKMDZ1MTFOeFg3bmk1M2VHNXFhbHd4eDB3ZFNwOCt5MmNjQUpVVm43dnVxRW5QdHF6cTJQVXhjczQrdUNSRksrcjRzMDNsb0hmS1VSNGMwTVZIREdCby9jZnhTdHZMbTl2RjBySklUUHpPSDZmUWpac2EyWkRXZk9QVjBrcVFGZjRweHY0cGh1WTJ5VHhFaDBWQjZ2K2Y1OUl1S1VOTkp2NnBWOHB3SXpHcVE4azQ2cXZKWHpGZGRTKytqcjVOMTVKM1l3WmFERUx2ekN4ZXdscjdsaHdMb1RDanJ0QnMvQzdEY0p4RjhyVWtHNmpSNlRDcW8yUCs4bTNtL2h1eFRiOEhoZVRSdzlnY1hFNWRjM1IzZEpITGJUbTNrQ013dzRhd0NQL0hVTEYwZ0Y0eHBiaW5icVFjY08yY08vb0dIVnh3Vy9XdU5rV0I1K0VPa1B3eUZhTk8wYkUyU3ZONXYxcWk0L3FaUGRQbzFvU2ZNQmhOM1htd0k0MjBsVDhHckh5WlNSUE9EbEJKcnh6RU1GV0NyL1hoV1VwN3ZqdmZMNWVzWmsvbkg4STA4Y1VKbVM4Mm42RFltLzJXUi92cnhhNm5kTUQrM1BTOFNNNE9pWEUyOFdORktaK2kxS3cvcXhmc25mRkNwNWZYTU1iWllMSlNVRnkzQzZDQWNFWEs4clo0bjZmREg4V0U5SkhrcXRsRW9uSE1UMTZPOGlqNVdiTGdtU2RDNmVuOHMzV0tLK3ZicWEwd2NEcmt2VElIUHFlMm5GRE96N0hTZ2c4RllMOTNyZElqUlVockZYc3Z5eU1PRUFTeTFHSVR1ekpsM1pwci9kTjB4V01xNVhzVjlZRVQ3MUxkTzVNUEdPSEl6emRGMWdNdkxCK0o3eE1Tb2RrSE1ST055bDMyLzdldGV3UUFrSmh5WWZ2NWpOOFdJQ0d4aGkxdFdIMm5sMkYzMk4zYjh4YS9STzg2RW5DZVB1d2JTL3NhR0NBMUxqSW04eCtBN0x4bkhvaXZrRURIZUswV0l4NGVRWHUzQnlFeDlNdFZuakdHV2RzaHhqakF0L3hVWlFMb241RnVGbWdIUlFubUtFejlnczNrMHMwVG44ZjZyMktqWGsyUzRkWmZEZlNadWt3bXcwREZIVkpvSVRDMCtaR3kvN2FEMC9OTGQyaFg0R3VXZFNHQXZ6aEg4ZmpranI3VGZnQ0tSVHZMWjZGVVh3OGQ1OS9BK21CY2t4TFMzei85dmJ6THJFbmdTMFVvWWdYcjJieTlyTHhBQXpLckNZVTlZSlF6bnU2Nk1NdzJ3T09Vc3IyU2Ewb1ROUEd0T3hlRmJ6OEluTUdKNTR5Z1dOVExONWFYVVZCNW5jb3BWaDA3aStaVzdhYTV4YVg4VXE1UVliUzBBQmhXNHdwYW1CQVV6RUdNVGE1YzFtR2dibURIZER6R0ZBVllPTFNYSHl3cG82SEp2cVpQc0RMNVp1ck1XelI2MEloVzhHS2lqQXE4ZnYvenYyOS9TV3QyN2VuLzNRUThiaEZzeTBSaFJsWXJpYXFsNjlqM0VFNVBIM0x3VFN0Mjh5bWNBd1FIRFFxalNQT0hZZGRVNHUrenh3aWJoOWw3eXhsZHFyRm9iL2RGNWRMNDVUVDcyNlZPVjdiWnZQbUpNNHMzb083czRaeXpiaDFuRHlvREdIYVdJYU9sdXlzbGxVdjBGMG1Ta21lWGx2SW41Y1BZMGxsS2dRa1h0dnUrSndFQWpCNU1qUTN3NGdSWFNkeEMrRzhaOElFbURMRitXd0grMGtCMlY2VFM0YlhpWW1wTVhYUG1qUTF2OG92WXBib0g0SVhBWmhpZTJHZDJRdjJZcnZmMUVXbk52eW1lYSt4YWVWcXNqMk9iN2twRmlOOTNtc01PdWpBbmhOTDJRNWhVZk5uMzdIbGdwdUlybHpmT3NqcWZ6eEgrdG5IVUhEM3RVaWZ0MmVrd3JiOWt6ckZTZ2FRUHNYZi9uTTQxdW56V2JwbUFQTy9HWTVNaWlDRTRzblg5OE5TeVFpaGVQcjFhV2dwelNnbGVPK3JLY1NzWkNhTjJNcTkvOTBibVJ6QlZ0dHZPQlphSS9YTnM5bFNjd0g1NlEvU0VEUFJaRnZEWjN2ZXFvQWU1eU45ZWR0K1RuS0JsUGpjR2hjZk5KUlQ5aXdrNE5HNSsvVTFETHI0VFlKZVY2OFQxczlOUDVnVFRoN0JjZWtKZlpHOUFLVWNmVEczZkRrdkxxM2ptZFV4bXFnRVlSTzE0bXdxVmd3dDNJdkdSaTlibG13bUVJZ1NDZ2Q3VFBnditrQ3EydER1WWgyUitIZUdGZU9RczNOd3U5M1VQMVJLaGVxSW5FeDFlaHdqeXFaR1dReVFydGJjM2RZaXpGMDR2eEhMU1lnL01xdVE2VnRObnIrc2lua3Z6dU9pUzk3azBHbTVIT29iU2lSM0hLdnNxWHpZNE9HOTZob1cxR3lpTHJRTnJHYVFFcUY1a0VKenlJVjdCQ0pJbEdtU2RldTlLTU9nNnVyemtFbkpvT3ZkbnRQK2l1WCs0OFNpanVmSHNHbUsyV1FIOVhhRm1KWE5Ka2tlaWMvVnNlOSs1cDJKWDU1OHNnTlUzdEUxVTJKeEh2bmdYWXF5UXREWVFMVXNZY0FOdndXZnIxUC9qVk5QN2RuQ1dxcTE4RWNwdThlWEx3eTg5ZXErRldSSGY4ai90ZTN0MkgxenVwVTdMVHF5eFY3djZsaS92TEFySmFLSUI5ekVKby9BUDJRb2NuZ084bDl2RW5WRmlCWVc0djlrYWZlRXdqMjUzWDRYN0lmK3duZjZTODhmTmVRQWt0d0JiR1czdWJKR3RSSUpDSVNUYlE1Z0dFNkJPYUtWY0xQbHAwQVFNaUxjeHhmZm8vWGVoODIyUVNsOEI4NmxxUGhqNnU5NGlOcnI3Nkx4WDgrUS9mQmY4RTJiako2U2loWlZlSVlOSnpML0s2cCtlUTNtcHEyazMzb2xxVmRmNkNnc3k5ckpaZ3RINGYydkhGTGdGbUxoUS9lczR1RGg5YnhWbjhwL3F4MHlxZE15cXpnMHRSN1JaUEQyV3gwVENlOWtzeXRGRU1GK3JpQlROUjhyUFlMNGZyTkpuanNUTFNXNXh6SGxGbHlqMCttSkcxUzk4aUdsRHo1TGVPMEdBUHpEQjFOdzBVbGtIYk1mMHQwMTFxVjE0SE5JS1RHYW12QmxaM1BjSVljd1ovMTZFSUxQaGd4cHpXVndKU1ZoZC9BTVZpalU5YmsxQkZwQkhPOUpkZWhERXBkQWxYaUlQcHVHVmVydWxsVDQyZldQZHRxM3NKMXFBU1BocnVnSjUxdkp6cE1BV3pMM0xNTkU4empFUlZiTUlYdlRQRzVRWUtvWTZkYzFrWG00ODBYVnI0ZW92U01KWFhwMmZuK2Jmd09FalJqcC9uUXUzK2R5RnBhdDRzYjFuL0ZtZEJpWDdYTTFoWmtqd0FwaFdRYWEwSG9vMERLNlhrK2hzR3lCc2lTSERXamlDdTltM3Z6N0p2Nzh6VUIrZDhPamJGeTNuTnYvOUNmSDNkRUV2LzZGbDEvTlNxYm83TVRsT0ZWVjdjNmVMQ3JFZitXbHFQcDZaRkVoc1g4L1R2eXQ5M3BPN3RwQnUvLysrMmxvYUVBcGhjL25aQUNIVnEybTZmT3ZBVWphY3dhQjBTTkpTa3FpcUtpSW1wb2E3cm5uSHE2NDRvck9PNDFic0xTQ2JNdlBWWGRlUm01ZVhvZjdzOXZ6ZHV0SHZjT05WQlZPSG9xa3dCVm13ZkltWWhHVFRKRkprM0R0dEtZdVllSVJ4azUvRnloc25QZGY3bitlMy9pZlpxdWR6UzhicitIZDJONGdtcnFVMXY4TUR1NUtMU01FQkh6T2ZnMUZZdDI3c0hWckhGbHlmZWVGamJheThXcHUxb1MyNGRNOEZIclRpVmxHMXo3M1ZiL3VWclZITE1XNERIajM1Z2NBbUhIdnZpeHZVdmhrejNseXMxSk1ab3lLRW92YjZMcml3elhXYnRlNnlCWTVzK09aMDBBWmtrQ3FBcGZOb0gzQ2pKeWdDTTJYYlBuUWl4a1hKQTJLWWxTN2tiWkV0TW1mdEEyTHJ4ZVgwTkFZWnUyR2NzWm5wWk54eEF4U2ZhNWRJMkI1MGlFTlRVbHlkUnRQYkplSzI4M01OaVIrcm0zMjlJdWFsd1A3dUNoeXRTTkxrb3Y2dU4rbFRyOTNFdTQ2OXVUU0tjZ3ZvTDZoZ2ZyNit2Ky8ySFFTc2F3MzUrV1FIN0d3RVpRbkozUDZhV1U5TzM0cThYOFcyd09qVWpnRk1QdG1Bd0xkNjlqRnhzSFpqZ244MmphbjBONXVpN1NybnpTL241U0NsS0NQODQ4ZHgyOStQcG02cGhoMVRWRmUrYmlFbUdtMUp4SzJ2V1I3cXprcDZ6Vk96bnlmSVNrR0ROd2I5NVF6eVpsOE5IalNBVWMyeUNEWVlRZWVzb0hxdDZEMkxVamRDekpPQS9rUzJBbmlxdUFJU0QwTzZsK0IraytjOTJ0dFpLRU0wTXZxdzk0M3ZTUFNnVmJuVllLcElOMng1R1RGUFE3MjBKTDRyYnJmckhwMkhQZWdLREpvb1pwYy9YVWtVTFlneldQZzBTMUdCUjBpbldLWlFjelVxSXU1RUxMbnBNSVNzR3dYeDZWdHBUcTBuTFBLenlOU1hjdHR4dzZoTEdUejBMdjFYQkNkeVY5ejN1UG92R0U4c1Y1RGFsM1hxZXFhWkdoaE9tbkpYckxTQTZ6WlVNM0dyZldkdkZkamFGRTZxVWxlaGhhbFUxeFNSV2w1WTd2My9PNjBVWDA3aVI4czdwMXRKcXJCaXVGT2R0T3czMUR5UGk4bVRUV3dkdGJQOFh4YlJxZytoa0Myem5uYTRDSUdhUktQN3FKb3hBaTg2V2w5TXV5SHpBSDllajRzQ2ZNSFM0cXpkczZCc3BWcXZhUnNSeEU3cWtxeDl3WWJyUWRtY3E1MGtTRTFZc3JtWjU1VThxU0RQWXpSdkx3UXF5ZERhdVJLRjV2dCtLN0hJR3lMK3ZLTlZKZHRJWC9rWkh4NlQyME5pMGhFeHlNc01wS2FxVzF5c1c1VENnVlpJU3FxZklDTlpEdlJtQkk5bzh2VGxLTGVvNUhYRU9mQk4xWnoxNTVGUERrdUQ3Y1M2UFNla2pmYXhoNTM2eVp6aDIvaW5MMFdBYkMxTHBsRm0vTXcwYkZORTZzeHpwNEhUdUwyMmRtTWVPSS9iSHZyTTBSYUN0THZ3YTZxcGVEQWZTbSs0bUJ1a0YrMzl2K1k3MW1RQ2hIVmFSaFR6dmszdm9VYmVQc2p5WWhoY083WlMwaXArQU8xejgwa2tCTER0cnIyNGM3YXZqRGZxOTRycnRyRWQyWEZDQVRMSzlhelIvN29IMVFQRDhydzlrQyt0OGp1N25mRXh0WnAvVDdudFcveTZYV2xHQkd0ZCtYSG0yZU9pOWFPR1JldFBlU3V6TW4vQ0FYeVBwOVJzelQ2alQrUHllRXRMSnIxSUh4NVVac1A5dy9TZUZiMlRFNDZaRHpIcHRtOHU2U1NjVlVyc1pWaStTMm5NcWR1SFU4dkt1ZmRzZ29lVUF0SVEyRWllM1Q1OXdVSkhYTnNRc2ZrSjNUTTBuUE9aVTc1Y2w1Y1ZzZXp4WWs0SURaRE1qMVVoa3krM2h3QkF3NFltNFJoS2VhdmJVYTZ0K2ZVS0tXSWZQa1ZkbE1UTWltSWlzV292dWtXcE4rLyt6NUN3cWx2akJqODZmbHZBRGhrY3RHUGtsQTQvOVpydXRobEVxRzVNRUlOSUFVdVh6TEtNdWl5dVBWM2x5YzBnVUlEREJRM2hzcFpZa1Q0clQrYm9OUm9VaFk2d3FsUGFCQjRoMWlrN20vZ0htQ1RkMzRFVEtoN3o0MmVvbEE3aENFMEtWQm1OV2J6TW5MOUZnOWNNNEV6anl6aWR3OHM1ZjJQdG9KWGdjL2RwMzZlRUFJckZpVS9NNWY5cCs3TnN4Ky8yanBIZGpRS0xuZUNkUG43YzNMdWZ2dCt0U1V2UlZ5Mnp5OVlzdVlMSGwyemdHcnRBRVQrZmlnaHlmQkYyY096SG05RGxLUllBNk5UaTlHRVRaT25nZEdCTFpTWWcxanI4ZUEybWpDbHAvVmM5TGptVzlXZ3kwWVdOTlNTUHFDRVlhbFFxVlp3d3ZnVXNqTWJ1V1NSYUtldWJDRVJ5a1FhdFN4TG04eUpHZi9oMUJseGZuK2N6cWdoT3NRVmxxbVE3YUxuWGJRMmVMa041RXNYdi9KbXNQK0E0V2luSG9kM1VPRXV5ZlZPY1g0QnRnRjUyWUxKb3pXaWNUQVhXK2diMUc1ek5tVDdLcmw2NGw4NGVlZ3paSGhyTUd3WFMyc21jTnVpMy9GTzZjRk92VzgzTGVXbzQ3cjBlVUJnV3M0VlhMcm1ZTnhkRHZtTys3djFvLzUvYXNuS2FMVmJCVGFHQWJWR0dWcG1FNXBTTk1iOFpFZDFrb1NGcmF5ZktONGg4SXNRYzcyZmM3ai9iZjdUYkxQZUdJeEoxM3ByeHBDSkRFelBvN2hpSThuZUFObEo2V1FFa3RsWVcwNWpwSm5CR1FNb2I2cmwwL1dMc1d5enc5MlRTTi9GVWs2T3UyVTc1MG9xWUFjaTRhTW5mY1BsZTcyQ1Z5dm1YMThsOGVyeXdaaTJJTTFuT25kV2QzYnNiY0VkSjJ4bFFGYVVlTXlGeXkrb20xZEYxY05sbUkwbVdyS09VbTFJaEVOUmxHbWlKU2NUbUQ2ZHdOeTVjTmxsN1ZUazFpVEZYZFBpYkp5WXd4VVRqbWRJWnVHdUVjeWZmSGduOXBsd1NNVlZXNHg0MTVoWVpHWUdlTDFZbTdlQ3JtRnRMa1ZtWjdVbnZ1MWx1ekRuTUU3L3hTZ084ZGJ6OFpwR3NnZDhoMmtyU2k2OGdHa2wzL0hLaW5xZVdCMG5wTXFSbW9YZDZPSXZsNjNsMENtMVJLSW04MWRtY3Y3dFk1RXBCcGExL1puT1A3KzRWZmVhZFhYODZyS2hDQUgvL25jWmo3OGM3V01TLzkzdlM1UHRyK0cwUC9tTTZEdnZvdzBhQ0pyRVdyY0J6NzV6MFE3Y3YxZjkydCt6ejZlVWN6SHkxZzFMV0xQc1ExQXdZc0srNUErZXRQTWxvait5NW5VNVk0c2FQVi9QMysxemNaK080Ujcra29CREJYRkRKOE5kU3BNN2srQ0VpOG5Kdm9UZmphcG4vNm9GUkRRUFVjM2RlYjdYRG0zNG4yOXp6ckNDaG1URnVmLzFjRVZhTlRtWGJjV3FUK1FOb1hEcDBNTFpwVXN3REhDNWR2aWJ1VDNtMkNMWmgrWUh1ek9DMlo1VTNEMlIwdUx0NERrb2hUNGdqN3huLzB2MWJYZFFmOWRkQ0NuQjQzSHlRWGFsOVpQUGZ2eTZ2M1pvNk5pQUg0Z2JVSzlETUppTVhkOEljWEFsYmVmTWIwMFVUN1FyZW1CWHowMzRzYzhVeDJnU1ZSQ0w0U29xSkdWOE12R3laNmxKTDJDdm54L0lvczlXVTdOdERjSzNIU3Z0YlYyRmxGNGVPV01aZXc2c29LeHFLVXNyWm5EVUEzdGhtS0UrcjZQL25nVVhlbG95R2VlZVFOckpoeFBZYXhwVmR6OUs2TXR2T1diZ05zNmVWYm5UMm5UVldxemZRU2NjMGJmalBDMXhubDk5dGZOenBteXdha0VsZ2ovQ0IxcjY5dHQzT21wWlRvNlVSd29PbUQyVTk3NG93WERyS05QQ3NoejdDV21qMEREckEweWJzSkcvWGZBV3N5YzZsNTh2VzVTRGFXcmdzanF0czgzS3lrSzVBdHd4cjVuaVdYVmNjVXdxdVhOY05INWlFVmxwWTRkNzd4aTBQTTIyQm8zaXZCQzJWMUxiRUlTd3dneFlWSWZxQ1VXYW1KWTNpZ1ZscTlwR2NYWloxd3UzRzlmMEtiaW1Ubks0MXI1ZFF2emJSUkNQOStnQnBNZEQvaVdYb0F5RDVpVkxHUFNIUCtBcEtOanBNdTdkYWxMZ21qZ0J6K3daWUZyRUZ5L0JXTG9DRmVzZHJxOU1FOCtBWERhOC9DYUZtN2Z5OFFNUDg3UGJibUR4L0U4cFhyQ1FmYzQ1blpmKy9SaVRCdWF6NGJGbjhReklBYk43bWZ5TGxJTTQ4Y1RoSEpjVzRhM2lCdkl6RjZDQTc4NCtsN2tWeTNsK1VTMHZiN0h3NEhMcXhGREViUThqa2xZeExtVXhYOWZzaVZzWVJFdy9RWDNuV2xlL1gyZjQ4RlJtem5RdUtQM3l5d3I4ZnIzUENZVmxZaWZWbVlMeFFZTnJrbXRvZkwrS1UrNXBabU81VFF1c1k1aUNJYm1LUC80NmlHdk80VHcwNzlsK0ZXZG5ITitEbmRRbUp0OWRPL3ZYN1hYYWpwZkdLK0hZZnJaaFlNZjc3cElzVzBIQTdlaXJvRWVpU2FnTFcyaENFSXJiUGF1YjZvZnhDaUdvMnZBZGRTVXZNWEZLbUUzclBxZWllQktESmh6SW5aZFA0YWJ6eHlORnp5OFR6ODl5QlBzejQvS2RuRWNwc0ZYS1RyS3V0K004b2pkU1ZMaG9iaXdsMUxpTm5JSnBDYXVsNXpxOXJWVHRsWVRWZWlIb2V5RWdlMmZiV0FpWFJrYld1d3djTUo1WlNZVzh1bTRlWXQxdzV3S29IWjRuT1hjeThlWmpxRi8zT00xVnk3Q3IzMGJ6RjZKeXp5UkdKbzBOelRRMHJxUEp2dzYzWFFZVmoyT0Z0OURZRk1MbHp5VnQyQmtrNTB6dXRiTHpqSE53cE9oMzdoN1BSWE5VOGVCelVmSS9sQnl6bjV1amZoL2hxd1VsdlBWV2tLUER1ZXliRnNUV0ZLYnFLMXhPZFI3WGFDVkJsRjBrTHJiNFlUYUxpc3ZKejAwaHllOW16ZWJhUkIyWTZIR01ycXNSRnVVR3lVcno0ZmRxZUQwNlZYVlJFRTR0cGhTS2NjUFNpQmsyb1loQmRYMlV6ZHVhTy83Ry9vNy9KZWJKWFRpSTFJdXZ3K1Z5SVhTNVBTYzgzZ2p1RkpSbDR4azVqbWhqUGRMVGVjejl0MytwNFBlbk5iUFgrSUZjczdhSTJtZ3luNjM4aWtOTDEzTDlZV2R6d2QvdUovcmcvVlI5OW5HUC9jdGRRd3Vod2dzUEY4RExjZGl2R3I3TWg4MWVDTFRGL2h1YmlKUVZJOTc1RjhQMk9vZmxtNGF5NnFIN3lkbTBxYWZsU2UyYWZzeVVEUHhyaXpueW96TGVhRXBtM2pCbmN4NTc1WnNjUFRHZHkyWm1jMURGR3Q0dzRxQzVNZXFqNVBrVStSbDdzcnp1Vytaa0RlT0RGUTFVWTNkSlRPdnNOSW1teDdEcWMxajg5VFFpMFdTa0YzenVPZ1pPV0lwTEQvZUltS1p0Uy9JRU9HYjhBVEJrOEs0WkIxMjh0c2UwYVJTbXBoRDZaRFhlOFpOUURmVW95OFEzZWl5aFJkOVJKQTVoNnNEeGZMWHNVOUQwRGg5ZUltaFdOdWY1TWxoa1JmbktDSUdDb0c1ejROUVlzNmVxVml4ZzlsVFlWaHJuODY5TnNKMWtqSm11QU9mNU1taFdOckxOa2V2cHVyMXVHQ0ExWW9hSCt0SkVRZkdXUmRRMGJDQVM5NEdJZENzOEJGQm5XN3dSRHVFU2dyV0dZemdIcEdSVDJPQW9mNkJiOFRNdlkzcmZucGdOM2NPTnlnYk5hNU54V0MzVnI2ZVJmbWdkS1hzM1VQdGVLcHJQNmhiNEZjSVJ2SHVOVHVIUVNlazgrVmtGcVg2TlBVY21iL2N2RTdKY0tVV0tYMmZ1cUJSZVcxalRxYkZ6L0pUTXJpZmF0akhEOWM3aDlDZHVpK3JpSWYrYytEbEVEN0VIRlV3ZjZtSEc0ZE1aTVdzOE9STkd3S0NCNFBhM3pwVU5DTXRHMlJhYXk0V3U2UngweGtWOCtmN2JsRzNkd21Hbm5FTkIwWFpLSXM5eGZleTAzKzRrOTV3ODAwZnltb1VjZDFjVEx6Y080c3ZKSGxBMis1LzFGY2RNUytXSy9RVEhscS9tcGJqRUZ3aHd5U1dUdWZubUx3bUZiSFRkUzJscEUyKyt1UjdRMnhtQ2NWUHh0Wm1LTnZaUVlrcXlNQktrTCs3TXVYVFdXenRwellBN1JuNXFIVXI0VVVDcVA4UlprK2RUR1VyZWljUmt4M1pmZ2tYb2xLOC83dFJBRUg0ZjN0RkhFMy96UlFlVUdUK2ErSHZ6VWVGSXB3YkRoVjBaUDZFNDM2Mm93akJ0eGd3N2diKzhxWEhWSVU4d05LOTJ0L09oYkZ1eGFGV1VRUU0wM3ZuYUtaZzZlRWFBaldYeFhoZXN0eHpMNnpmRUtJamExTG9GN3NUNG10MkNncWpON3pmRU9HV0NyNzl5Y0hiUDNuTW5uamZlYzVLSlExLy8rL2N6UE5PaWFmNFhWUC83YVVJTEZ1OFNtVENBbGNnbXlYU25VeEd2NGZ4RnYrUFp6YTl4OCtTckdYL0pMd0FvZmNVcDNNNDgreUp5THZrbHkwTHJ1T216My9CQnpWZjROUytaN2d4TVpiYjI5Vk5zNTB4T0ltWDFVbjcrMFZiZWFrN210V0V4bExMNTJSVXZjOVRFZEM2Ym1VSHl0aTBvdzNDU3pUeEIxbnp3TEI4T0Q3TnB3Z21ZODk5am9LN1RqRUpyYzB5Ky9YWWgzMzY3RVBnUEFHbXBhWXlhTkk2akJ3OWp6dFNweUp3Y2NzZm5raGtjaWQ4M0J1UGJadlRnT09Ub0hHd3poQlZmanpKWGdiRUNaU3dGbkd1YmtnOE85ZTBFSkhERWdTY2QxN2Y5L3ZWUDdRMVZvUnhRVmNDbGc3Wnl4L2oxL1B1WnNSejRsOE1oSWtHVFhKbTZINDlmOXhicmovcVd5eGNONWI0dGVWZ0tkTjNDN0U1UVdDYlJraExtUDc2QjFJM0pYSHRHRnNNSGVYcnN1ZmVNVUZnQ0ZsS0Z3VE1NMnowUW8ySSt2azFsUkNJQ2M5TUtmRTJiMjhlSE9uT3NSTXVQSFM0ZnNPMWVRUTc5bFVqbnljMUNHU2FoRmNWOWVpRlQyelJuWjBaMHpqdDJJTUZnbE93cUR5V2JTZ2hIdzlSVkZ4UDZiREZqVDc2ZjV0eHlMdnZaY0M2K3N4cDdoejY2TlFEbnpZTTc3NFRNek8yM0lELzBFRlJYdzI5K0EyZWUyUzJnYzlOM01ERUxEc3FDbFZHNGQ2bXpGZktUNE1vSk1Ic2VsTlpCTUFpWGpvYWJsemhCUnQwRHBTRjRjNVBUVDF1YlVrcWJKOWVjd1BTTWhWdzI4YytzS1IvR2J4ZmZnR25wNkxxSmFlcGd3cENDelZ3MzRBNE8vL3hGbXA2MUtTbDNnaHVadWZVa255eVlOK3MwN3F5NEhCZ0N3Ty9QbTlzeHhpVEFqc1RZdHZ3VDZyOTFYcDB3SXB1RHo5NFQ2ZXY4bkhSSEtOeENKandvS0hoMnNvdlJ5ZTNKaEVWQTB2UjJQVFYvTFhOMGxkYURtMmVFY0NiVDczZCsva0NCOWg3NWFKVnJlY1UwU1UzeDhjR242OERuUnJxMUJPRHJadW1xY3ZiYmMraE9xRzAwYnZMUndncktxaUtzM2R6MC9TUko3ZW81Rm1BM1NhTExkS3c2UVh5amhrckVYcVRmT2NWV25jYi9lbHQ3L0RuOVp0TzVNdElvZXVCMlloczJzZldXdjFMM3hYYzBIM0U2eTdOSDhvZkFiRGJwcWJpeGUzV2ZnRExNZG91dlRJMFJCYVhVTi91Wk5Xd3pYNjRySWpVWVprMXBOdWhtcnpaSFhWT1VodVlZcHh3eWprdlBtTW5OOTMvRU81K3YzeTE3WHBrS0RKdUkwTGp2a1hVZ0ZJY2ZONEF2dndsUSsvUVF6cjM1Y1VwaXBjeXY4SEhxZ0RqM2JISVRNU1dhdEttSkN6NnIwd2haZ3FZZTVSdzZ0cjBRR2pXZjNrTjR3K2U0czBaZ05XMGpXcjZJNEloRHlOanJLalIvUnBjSHh5RU5ocURmemFlTE4vQ3ozejdPYjA3ZG00dU9uNDJ1U1d6YmJpVTc2dWtaZjZ5UDk5ZStpWjlYSGpzU1gyVVpWMzlZdyt1TlNieFFsSVpsV2x6K3o0VWNQajZWOCthTUpHMUpDUyt1cjBSNlhCUmxwekZuN0V5K1hld2pOejJHTjltaXRLU2E4cHI0VHNFYjBmS0l0a0pJd2ZRQ0gyT3lQYnk3THNUSEpTRkNoc0xuY29KVGFuZmtWN3RmMUM0SnRvbmxhenVETnhteUlabEJ0UmxzeWl0aW00Z3hmVnNKM2cwMWxORFlLWGRhSzZGd1Y3NllaVHNrVkMwMXdNcHlic3JiRGJtdkFVZHVnZE5YdytaaE9pSS9DeXNVeHFpb3hsMlkyNjNlTER5dmZpZnoxb2hwMURlNzhIc3NBZ0dqZDNycDd5M1FoK2hZOVFpRllYZ0p1T3Q1NGRra2hDYVlNVFZDTE9iRjd3bGoyNktUSVNjRzhmN3QvU0ovTTA0OXZoczVJYkROTUFpSjFCSmtpMTFOekVOM3RKY1JnRjlLcGxiWGs3SmdDWU9QT2hyditMRkVGaStsOGFzRmVBc0drbkxnZnQwU21MUW01RnNnUEFvdDN5YnlqSmZBT1JGaWExeVlKUnJ1V1FhTlg3Z0pleFhDQnJjaEdMdEJaOUlHRjZlOXAyanltR3pOaXJOcVVJeHZ4c0pYWTMxODI4Lzc0WlNpaGgyRXBvUmdoUGUrR0lXSyt6aGg3dnRVTjZWaUFpZk1mcCtuUHoyQW9aRWlEcHo4S1RUN1FMWS9WeDBSQ2t1aHNHTWVabzhxWmxoT0JZKzlkeUFFUXFBNTJNVEcyblEyYmlua3JBUGZZMTFGRHA4VmowSjZZdGdkN05VTC8vVEdEdWFvWU9tNmlwWXZZdU8yQnE2Njd6MThicjFYKyt5VXVTTkkzcmFGbnoyem5qZkRYdVlWT1NUU3g5dzZqNk1uNUhIWmxLRWNJemZ5c1draGxVTHp1MWc1L2VmbzMxYlFFSXRRZlBCd2ZQRWtHa3duYWFEM3NRVFRDYnpxR3BNSEJ2ajN2RWN3aURNeC96aUtYVHBtTklhUVhaZWlDUUdaZmhjeDA2WXBaaEZyY3l0cXNrZkRvMHRxd2tidjZuL0V6bGV3LzVpU2E0ZDYraFp6YWFGeG5YSEhEUWpoNUt3WWhrV3RkSUZMWjlzZEQ0S3QwRFNKMmVnd0dXdzY2blR3ZWtIWFViLzlNOEsybVJ6ME1rM1hzRzE3NTR2eEVPQ3h3RkFzcVUvaDU1OU80NTdWTlZ3M2JpMkhGMVZTUGM4SnFxWWRFdVBWelhuOGNmbHd2cTdNQUduajhzY3gzSzdPeTQ5OFBqajZhSmc3Ri9MenQrc1pJZHIvM3ZKejdGaTQ3anBJVDNjK1M2ZVFPVzZwMkQ4bkpJWW14ZmxYU2FwNlltT3lLSS9xK0V6bkFhTXUwV09kcVpxYU8vR0JCQ29TUXhsR2ExL0tNRkNOSVNjaldIV2RQWkIyV0x6TEVCQUNJbEduWTU5WGRNLzU4WFNMaldCMTZCc0lqNXZCdGlDemZET1ZPTEdnQ1lSSlRoQzhxN2lCMEx2d3YyemxKS3hyRXJPOG10SkxieU82cWdRdExkbkpTa3JFcmFvZmVoWjM0UUJ5cnpzUFpkdXQ1Sm1kdFpTVCt4Z3ovTWRmK3ZjZ04zeURFZ3BNeVp0djFsTVhpb0pSam1wUVRnbFlUT1BEanh1Y3JSdjlCTnRPRVBTWmd1VXJ3bXpkR0FYalUxU0QzUzcycUpSRTZHRTJWSnpGSG9VbU04WTAwQnpUa0sxRS9BYWFIVU1Ua3Jod0lhV3JqYzI2ODg1WW1OZ1FTelkxWU51S2dFY25MODFMV1gyVVZhV04rTndhZm8vT3JCRVp1SFRaNDBTcVZhMzZJZ3YvMm1LTytHZ3JiNFpTZUhXWVFObjJEcmpHR2w2UEc0Q09XMnBrcHkzRUNDd25iMUFPd1UwdXRpeXNnZUIwc0hzaUd3VzJiVkhYV0lOU0pxWnQ0M0g1Y0xtVGRnOVlsQUpDVVE3YmZ3UnlWakthTjRYRFZpZno2TnZMSU9qdk5wbEY0SkFKdnhadjVBc2p4T25lZEtZSUg0MjJ4cnFvQi9SZEhGWkNtTldiQmtrK3VOU1h3NUpQMDdqM3UzcnlUNjdtOHJOcXlNbjhoaWtSUDFPQ1Jmd21mUndiR2NsbnpWTjVweWJNcDlWYjJGUy9BU3RXNjRDSTNUMkZybUdWVmVNLzhDQ0NSNTVBNk4zWDBYSUxFTHJFckNoRCtyc3VhT2l2V080WjA5STdQb1pSaThwbWsrR1pIclkxT2tsZ2Vja3UxbGJIeUE3cXBIZzdsbVV0U0szMTg1OTN1YWJEbFFuYnRnR1FQeUFmNjZ5enU1N0NWa0xoenZlaXo2dHgxcytHVWgvYkRBclN2RVU4K3NKNkl0SHVZMS9wUngzTS83WCthLysrY1VLWHBxVUFGcTF4RXFzbmowaHF6Zm5vckwxOFo5ZTJxanNVUTFWdVJhMHV4VDMwUkRodUxxSzBqcVMxbTVHUldQZEZoQ09QNnZKbEcyZ0tPZWNpS2VEcVFkcnE0bjdGZDdyMmo5dGdXNEpXd2dmblY5VXhNdk9nay9YeWw3blg0Skt1Qkhud3pwcFFhQkp6U3lrQ2dTelk0Y0o1MFI3MnNXMmIrN2l4RlpQYjBlYXoyOWgwQ29WbEs1UnRvMzRNZmthTDMyOVpvR21rWG5NaHdWT1BvZWJ5V3lqZDl3aFN6anliekVsbmdvTHFTMzVQNDM4ZUplbjRuekhnbzJmUUMvTGFmYmF6MWtJcy9QbGltRGtlTGo3WjRPUjlxamdpMWFIUERTcVQxejZDKzUrRnI1WkNwTHU3bTVUQ08yWUVXbEtRMERlTFNKSWFzMHlCOXZVcWt2UWtzczQvQTkrY251V01kVWNvWFB2K1Y2eTc5cTlFTm15L21DaFdWa1YwY3hsYTBFL21ZWE83L1B6YjkzZGN3RzliRm5wcUtxN1hYeWRydEVQb00wclRNSTQ0Z2tzT1BCRFp5WHdlZVBiWm5Tc2Y1ellYZktmVUlsSXNqQldPdjZNTmlPTTdwWmJtKzdMQkVOdXJMVHBvK3pXdDdyQnppVVhVNHlFWWEyVDkzck5Bd2RCUHZxVFprNHczRnNPbWE4TGVqT3hVR2t2THdWYWtEbklJd0JvM2w2RmlndHdqTWlrOFJVRlRCYUJJK1hrdTdnVkoxTHhhamZBb1Vvc1M3OTlZQmxLUVdwQUxpVm9WWGVyY2ZmeUR6Ri83SVd1MkxXUndXaTV2ci9tQ2hXWG44dk5wWjNIbXRITnd1WGMvUGlRU09JOWxhUGc4RnRjUExXUFMrczNjY2s4RG55eFZISDdFZU00NTQwUSsrYlNBTys5Nm1FRkZOZHh4ZVFyN05DUlQvZ2NQVU5IZU4wMzg3dHBuRHRiNkVtSlBQb2RyOW5UMFBXZGhmUFlWS2hUdXRYa3FoTUEwVGZJU1pMK1RKMDNpbUdPT29mYU5kOWwwdzIyWURRM1lDRnlwS1JUZWRCMUhISEVFNjlldTVhMTMzaUV0TFEzVE5OSDFyZzNQcEtqR2NTUG1NSGpJa0YyYXh6TjZpUnU5WmhoSVRjTVdPc2NsVlhDaU40eFhNL2x2V2gxL3JNOURLZ09yN1VVZlNpQkYrNElMaDR4S0oxZFdVNmhWa0MzcmtUTE1BS29ZSUt1WjdGckNNbk1JWFpVMFBSd1kzSWtvVXZnOExvNCtZQkw3N1Q4UmdGYytXTUs4OXhjVGlSbmRZa20rMzF6ZTVldFI0T29GZDdJcFVzdWpNMzdHSHA3Y3JpTU8zUklLSzZkQW82YVMrZTkrQU1CaE5aVUlWM1lMcFg3M0owRUt2bGhmU0ZOOU0xWXNoUENrc0tneWJ6c0w1dTZHV0RyRFoxSk1hcmE2S1Yya3lCc1lKVDJvTVhHS0pDWFBvbnlMcFBJVGdkVGFBeDdqUnhVZ0VHemFXa3R1VmlyNXVrbjkyNTlpU3JWYlllL25IOXkzYXp2S3RsajQzVUlFTUdYS0hralp0UXc2YUMvbjU2RmZEdTFqQmU5Y1pKMzg4Ri83dHR1Qkx3Qnc4RVAzOUcyL0JTLzA2RzBqUjR3a3Y2Q0E1Y3VXY2ZCQkIvSFJ4eDlUV1ZIUkozSStsaEFkUGJsbjhvZHFkUkZCS0pwSmRWTUUwM0xoU1pVWVJ0bnVtNFBEQTdnS3ZTd3BUaVZ1NlV6ZnM0cjR4aWovczAzUUdzL1FwRUFLQVVLaENSdFR1YkFzTCtudUduNlcvam8vei9tWTBRVmUzR05PSnpqOUhQU2lQUUZZVTlyTVY0dFh0SFk1NGpPd204Q3FkK3JIelZvd3RrR3NCSnEvaE9RRElQZG01NzNsTjBMb1M5Q3pJZjlxY09XQm51N1VtV3VwSUpPQVNmMDdCVytIMDNlWUVvRmhHeGkyZ1pRNnR0WEVQa01kSE9IamRmY2d0UUMyYmVLU0xzZUgydW1VMUc3WGIrT2IwVk5OWW10OStDYzBFOGZmNnpxZG51b09yMmFUNmJHd2xVMmpQZ09BZ0Z4RGtnY2lwa2EwRjkrckZLQkRkb05PVGRaQnVKVEpJMmVONEpDcFF6QXNHMy9XZWk1N3M0cVFMNWVKV2pWUHlCd1VIUmV1VzdhalZiUFRBeHcwWnhoREIyWlFVZDFNWG5ZU1VoUFl0bXJGQkN6YjhRL3pzdndjc3Rjd0JoZW1VVmtUY3Q0ckJXYWJvdkM2UU5lMm1vWmlwTWNoSVY0ZFMyNW5KN1YzWk51M0hzZjA0Z1lJaVczWmhPMGs3SUxodU13bE5GdGVrbXg3SjM0UzNlY2pZMEFlWG8rSFlGWW1VdStidksxLzlpT2hzQUFzQVI4T2tidzZSaUxiMysxS1lVbzJTWjRBNjJwTGladkdka3hBd0ZFcmJlWnN0TkYzbU9ValBTazdiYllNcVpNaUpINHBxYlpOcW15ejlmc0hhMjdDeW1ZL2Q1QWEyOXdwdCtLMVdFTlBuQVBDVGR0WTh0Ni8rZlN0OTVseHhKbnNkOHlaUFV0dmRIbXBha2poajgvUDRJb0xWdkxBOCtNNC9VOEhFL1FiMUZVRlFDZ2FoY0NPeGxEU2NHSStQWnpjWkZQRHlqTklNeVRYZmJDZXZXMHZ5NCtZVHRndzhVdUoxWG96Ui9jOVB0RHV6RWthSWw1SzY1SlJRRVBFaXhBNmRsTVlWMG9TVjV5ek41ZEVOeEc3NWlaS3kycHdaMmRnMURjUTlBVkp1ZjRTL250WUdqZXQrUTlObGVYYnNXcjNZb1Ntc0NJNjFYUFdJYjBRcVpOVVZ0blUxUUVSd2Q1N3JVUi9TNUdpdTdDMHJzZDhWc3YwNW8vc2ZJS0VRRm1KdmFEcDNlUi9yT2pSbmw1UXVvS2FjQU5iR2lwNGZ2a0hUTXdiL29PcTRJK3VITnUxTExhamhJMG9LSVhmNVVOb1hSTVFEMDZrNnZSYlhVRS81ZE9qU1lUSGpYdlVRSHpwS2N4ZVZKdzhySG5kQ2VOanRUTStqTlUrKzBsZ3dHTnExTm5GVmN2dXN4RWFLVFArUnNQWGp2OTQ2Zjd0MTk1T0tCUzVpeGpqZlN1ZG4rZnVrMGxxMlhMT2VHWXRiOVI3bUQrM0daUmkzejg4eGpGNzVISHBsRUt5dGMwbzAralZMWmhIVDhuQWw5QXhielVsODFKQ3h4eWYwREdYdHRVeG1vdGpCN3Q0ZFNPc2pWamdGU3l2aURsMng0NThyNWFGVlZVRlFtQkZuVUwwNXRmZjNIMzdvZzJlbkJid2NOMEowd0JCV3RESnlWS0pTK1ljMEY4NnVTdy9vUE9RZDkydnVuNUQ5VE9VL0tPRTFFbFpwRTl4UTk2RlhiLy9kOXR4Q3FzVkR4TzhaRGF5SW16d0oxODJFelFmdGNLRWtDVDFnRGo1bDBmUWtoWFNvOUF6RllQdmFpWjJZZ3JSRWczaFZUdlVxU2lJclVlcnZBa3p2ZzJWOTBlbWova1o3ejB3bkJlLzhIUERYMnZadEg0emJuZlBMckZ0Nk9HYUNpbjV5MFUzOHN6N0x4TnJiZ1MzbDFHRFJ2RHJuLzJTZTU1L21CVWJpcEZ1VHg4VEhYYmVtbWJORU1kdk1SaHNCWERITWpHR1R1UGZSaVpLQ2Z5cWlWOE8rb0NKdmxyV3JabkE3VU0vSk45WHoxTnJKbkpBMFdMOHVzSHYxeDdNZWFrdnNhWTJnMWVONDRqMXdxWTd1R0lOcjlzeG9xRUFXZEVDemo2aWtycXl3V1M3YzNsK1pRbUZhZ2hTdWJGMlNFWlZDQ3hiSTZoSGlObnc1THZ3emlLVHE0N1h1Zmh3RHdIL3J2dlJOaENRR3JPcW0wbGFVRXorVVVmakh0OTdBdnlPY0g0aFFNWGhvT0U2aDZoa29xdWJrSFdLNGtOU3lTcHRKdWMxWTVjNXJuUmhjc2J3eDdsd3pOL3g2ODdsU0Y0dHlwNjVuM1BEbEZzb2FSekM2dnFSM2NKbCtYKzRxOHZYRzV1YVdMTnBQYlpsTTNMd01GSlNrcnNlYnplRXd2Ky90ZGYxM0ZZVkhoZUNnWmJCc0ZnVUl5Y1RiUENWV1ZUR1hMenZTVVByUlMzeVkyK1cvSWllVWhGVEh0WWFRL2tzT291TlJsR0NURmgxNk84b3BYRHJMbzZkdUE4VDgwZnd3dUlQeUU1S0o4VWJ4Ty8yTUR5cmlNMzFGVXdZTUl3dHRSVjh2WEU1a2NSRmR6djJtSjNpNXFHTHhuRFp3OFZjZis5eUJvMU01WWtyeG5MT2ZTdllWcXFEbXc2SWhBZnRUQ1Rjd2RUclVtR0dkRTdlcTVwVFoxWmpLVGNpWnJMdC9qTHEzNmhCZUNSYTBJV0ttOWpSQklsd1NncithZE1JN3IwM3diMzJ3ak4yakdOWHR5VVVUcWlqaUF1ZThwWlJxbjNKSFhQbU1uWEFMbHk4Y1hJaS91VnQya2xtSnJzaXVEWEh0bmRySmhtZVpselM2dEdGRERWdFZzeXVxa0ZGWThpc1RPeUtTbVJlTGpJNUNXdmRobDNlTVNmc2tZRm42UkpPbkwrTmVVMHB2RFFjNGpHTFV5NTVsVk5tNW5EUjVGd09MVnZKcTRhSjBqVndHU3dyR1VYRWhyZ1ZZdW1tSEhEVjdVU2EvdmpqMnpGYWp6VElUQzFEQ0hqaDlSQXhPN2JyVzd5ZmJQTG5QbkhtVUZrV1dsb3FzNTk0Z2NDelR5R3UvUTI0M2NULy9nOGFOMjNsODh3Sm1IV05DTDFuUkY4bkZ2WXROOGJkZk5YbCtXOXhBK3FyTjFDeDdHRVFrSk0vaVB6Qmt4SXhxdDBydEJVQ3dva0FtbC92Rzl6Y1RuQ2pqTTEzNHRqZmxJUVJDV0twN3RxR2kyL3ZGakRVazV4Um1rMDk1MXF3TEkyY3BBWWV1K0FlMWxUa2NNVi96MlY5bWVEc2pXNzJxay9oMmsxUE16aFNUbHpxdlp0TjVaQ3ZoMU50UXZjVm9LS1N2RXUzb0NLSk85ME11RFJCMkhMdjFlRFN3SWpEWlltMDFmdXVBVmRMRGtDYkwzNzZwcG5kSEpzbzhYZ3RRdWk0WENsSTJYWE8zK2pIMmd3NGJoTmQ4UkoxR3o4ZzgvUmY0QjB4ak1xcnI4R3VxVU1rQmJFdHU5YzdxdU44bis1dU9PL2k5VVMrejlkL1R1bm9WT0RIWmptQ2Vmb0FSaDAwZy92dnZZUEt4WXNvdWVkZXFqNTlHNTBrSUphWVZ0ZE9Ic2JSVXpMd3IwblkxYzJkMjlYeklpYUQ4a3p5NHd0cEtwbUV0Y2RwbEsycFljM3l4VXkwMXJFdVI3Q2x4cjhMR0t3SkVteExRL2RVRWx0YlFiU3FEbTlXTGNxVzdGYVIxNDhpUGlNd3lxdUpyZDJFSFFwajFkWVRYYkVPWmRsRWJZMm11TjdMZUlLVFAvL3FLKy8zeTNEMXpDNDRtdXdReW93QTIrc1FoTzVQM0JyWnphaHR4VWNMTm1IWXlybmNYdGZZc3JVZTZWWVE5NEcwdVBuY2QvajlLZk9STG9nM2FMZzlGa055YWtrS1Jta0lleENhMmdtVGtGS3l6ejc3Y1BIRkYvUFFRLy9nd1dlZlp2bjZLSGRlbHNVZUYzb0pyN1JwZU1jaEZ1Nk5VRy9SS0g2M0lxTkdFSXZaemxiVWRXcWFxc2tPWkhEaHRKK3h0SEk5bFUxVkNKZDM5M3hzWGNkNzByRzREOWdidTdRTWJWQVIzbU9QSVBMb1UwU2VlcUZiTXQzSXVuVUpqRlVqZGIvOThJOGFoU3N6azlpV0xkanhPR1pUVTUvc0Q5L2hCNU44N1JYRUZ5MGg4dVo3Q0k4SG1aMkZ0V1hyZGlDcmg1aWRNZ3k4T1psVUxWdEowaVUzODk2RGYrUVhSUS94NmhOUFVsbTZsWDJPT3BMSG4vd3ZSK2Rrc3ZHT3Y2Tm5aemhyME1VOG56d25sK1RTOVJ6M3hGYmViRTdtMVdFdXNHMk91ZjQ5aDVObWVqNUhtU1c4YVJpNFBCNU1VMGZEb3FSNU9KdERnNmd6TXZES0NFT0NhNm1JNXUzVWZ6aHNzblp0QTE5OTVlRHFhOWZXRXc3M0xabXdCa1J0c0JDY25kUE1TWTJWUFBtbld1NTcwYkV2M1M2SUc4NGNuM3FBNHNKTGh2SmM4cVhjVzNJazBMK0V3bzNQMlYzYUFOTGpReFVPUU9vdTdBMmJVTEZJajJ3VDI3YXhPcWdCVm9CeUNkenBhWGhUZmJ1TlNRcmg4S1NOeXZVd01OMUZjWGtjVUtRSGRNYmtPcmJENWpxRDR2SVlicjF6RExRL3grdjJKNEgwMGxoWGgybTVjTHM4S010a1ExbWMxWnNhOGJna3ZhUVY0NGg5cHYwUXlpOHhLUlpsbS85THFIRWhLZW1QNFBHbjlQaVNNeHVvTWQya2FrNU9kNzNsSWtPUDk0aU8rUEdQSm5hTm5RcVFtdE9UblNDMzd6cmZiVW52YkJ2REFKeGFwcHF3aHdPekpwTG1TU01lY1NWRVpIcy9UaW1GTGR5a0R6MEs0Y21rdXZoeEdwdFdFclJMK095OWwvbnZCOG1FR2lRZ1NFcDltbFAzcTJQUHdTVTBoMDFjS1JQSUhuMG1TWGt6VWJJWHZFWVdvRU5nYitlU2dPaGlONWowakl3Wk9QVXdEM09uNkh5NXpPUTN0OGE1NENRUE0yOEs4K21YNjVuM2VwRERqV3pTTlIzVFZqMm1vcEZTWXVOZzI4NkhwSlBubmZoUHRjWVFuUTVsWGc3NktDY0dhQmF2eFM2djdMRGZBVmFvM2ZtZGxwbUdVaWIxc1Vha2RNakZjNnd3R3ZadThTeDRQUnBKQVJlTGlxdXhiVVUwYWxDUTJrZzQ3cUlxNUNmZzA1RlNNSGxVSnFHSTJhbnIybTN0UUcvYmczL3U4QndzWDc2U3B1Wm14bzBiellaMXRUejkxREpjTGpkS1NveFlsSitmTXA3QlE5Sll2bTREU2NGS3hvMGQyK0U1ZVhlSnhkZHJtN2o5dExXOHNXOEROMjRid3JzVmFkU0ZtcmppMmJ2NFpOcEIzSDdOYnhnK2V5N3hEU1hPQmU5ZFRmUjF2OStWNlVkWGtOY2trVUM5VXJ6bVZTVFpNTVowTGdhclM3elhyS3lrOXVHL0VVbC9IczlyVlV3Lyt5K1VUTnlUUnk2L25PVUx2cUczMTVqb1YvL3pHMHFqRW1WTGhMdUJNNVo1QVlHeWFubjV0VEplK3lhTi9LQkFDUW0yNHVyaEgrTE5QSVd0Z3dhdzkrQWp5Tis2Z1QwR3p1ZnFaZnQxZndDRndsWnV0bXdhaUd0RkJ2bURhN0dLdjZReE1JU3lncEhrbTh1N0plTHMwaGZ0SytoV0tid3VGMEpxckYrMmxQMEhEY0UxZFNaV1RSVkMwMUZTb2xkVnNhNTBEVEo3S0Y2WGw2anErQzdtRm56QWgrQzNnVnpPR0RHSGhtQXE0UXliMTB5ZEpWK0pWcDR5WFlmTnBpSXkzVVFObGFRMDEvUGJOWi9oUmhCQnRWdmNucTRiQ0lRdWlkYUhXVjNwWXNTSVZNaVpTdkdXYXVKMUc1RkJIM1lQV01EZFFoQlhpdTlpc2RZWW9nVEd1ZDI0ZXlJbCs0a3owdDNaNG92RTdSVVJRY2EwRUtyQ1MvMExXV1NmWEVYb3d6UmtENDZLRUE0Zzl2NnlPdTQ3ZXpoelJxVWdCQXpPY3BJaFdnTDlRbXlQcXdhOU9sSUliT1hVcSs2NG02Y042cm80TTFTeGxxcmlSd0hJbW5JMmdaeStUeFJSS0RUTlJhaCtHNlhMWCtIWUUvWm5SSUhKb2dXTHlNbkxhZmRlL3cyLzZkc3Z2LzE2QUs3ODB3bzJObnV3U0FaUnpYN3Z0aVQ3bC9QS3F6RmUremlkd21BeWtnamhrTUcxMTg1SEtRbllEQnVXaG1GWXJGdFhpUkE3TzdFU215V2tvNkJQeUlRQmJuYS8zdUVlRTh1Z3BqSVZxMUhIdlVqakV0OTg2TUdsOGZlMXJvWHNWRllpTkJTYTh4NUI2KzlLN0dJU254RFUxRVpZdExLS3RCUVBtanlFK3o3VXVXUy9SeG1XVnd1N1FTb3NOY0hpa2hqTDF0azBoSjJPWHZ1a0dVdEtaQytvN2x0dU9FbUxLYVkwMmNRMWgweTRwUWUzRFhGTnNFZVRUVnBNVWVkMkNDSytMOGhOcW00R3J5dmtHQWZ3c3BlN25VekdIZ3h1WFVQVjkrUGVhQkx2OENFazd6Y0hzNmFPOEpJVnUzVUxoS2xNUEpxYm9CN2d6YXI1NUJSbjhmYzlia01Cazg2K3FOWEFFY0NEeFkveVJ0VjhpbndETUpTQnFjemVibDlINlVqRmo0VkpldFJkdDdJNUlqamQxcmpVRFVrVnptSy9aZ25xbDBlSXZKL0c1SUNnQVJOVENNeTRRVzVWRmVQVGM4bXVLbWQ0YllDRzVqQlNrKzIyeVRzdlpMSjh1Y21pRlNaTGxzZFl2YmFPTHovK2xDOC8vcFNMSG4yU3IxTzl1Sk96bURoK0hHUFhmOE9VMVJVRWYzOGx3K1BKK053QnBENEJtTENUa1pSMWFXM2ZUc0RmbkIrVGJydXhiL3ROSlA2MXVKdG16TTNFdEVidUdiMkJ2WFBxcVdrY3ltdVZWM0hFV1FaSkFrbzIxN0J3Y1NObi9PNEFKby9heXIzVDFuTjhialcvS2g3Q2tycGtjQm1kYy9KSjJmODNvU0JBaGJGSUJ5WFF3NStnQjQvRmxobW94UytpalpxRk92cGM3T0xQWU1NU2NQdmFBUTd1azA5cTM1dVVXS05HdzlaTkNaVFRoK3VnQTJIMDZKNkJtVGZlNERoc2pVdjdYVjRLcFJCMjM1NVhJUVFxWmpDOEtKdFJJeVNlU2h2WHdyK3o1OUJNUlBOd1FzbGVtcjc3am0vdStETVRiNzZVZ1lQaWpDaktZczJXY29UYjFYUGd1NmpJSWFZdGExUG9VMVlHcWFuT2E5MDl2dzVyRzJES2l6QW9GZGJVYmplZVd3QXhsZGdlSVF1dS9UWWgyaFFNQzRKaHc3b2FFSjcyK0pPdEpDNlBpUURPK3VncFptWit5NmprdFN5dkhZMFowZkdrR0Z3ODRoRXVLTDBmM3gvTEtWMlNpcUZjQkh4aGNnOXFadFZ4MDdqVXVwWjNGdThMUnR1aklMb0FPYlIyZHJORW9rdHRPK3RDYjBGajRkU3hEL0REMDVOMUpxWHVUQ1ljL3FpQm1qdTNZc2RzaEV0MGJxTzQzYzZhQ0FFNU9ZNHoxZUpVNWVTME9IWlFYNSs0N2JELzJ6WC8vSVl0M2Zob0F3SUN0OGVGMytzaUhETkFrOXZYV1pPRVl3Witud3ZkNDJwVExPdUFxWjh1cmVHVEpUVXRBc0h4MFdVLzNtU3FnV2VBc3dDeHJiMzdIbVZENkhNWHluUWhOS2N2TGMzcFM4VjJUVFpJK2RNS3RNYldiK3dmelNMQWprUnBNWVR0Y0FTaHlkMDJpak56VXRwb0wwWGMwQmt5cUlFdDFjbDh0bmsydWJtTkZHWmFWTVRUY0x1TWJndVpxM2NZdEcwcmlqZFU4ZXlieTloUVdwY2c3ZGgxUFRHa0tNRE1QVEo0NnZtTnVJSXVkS1d3NGdycGRaTFNmY3FGRm9pUUZGU005M21Sd21aS1ZoUXI2c0VqQlIvVmF2eHRrd3VmcGdoMjRXSXB5MEJaY1JvV1AwZXNmQ21odFI4UTJyUU16UU4ySEtRTENrNTVHczJmZ2JJdFJEZUZ5QzBYRWdWOWJocWFvL3oyd2JmNFl1a21iajMzUUlZUHpPNDF6aldvbi9idks5OXU1WnN0SVNaUEhjT2Z4K1R3d0hzZTZwdkNuSHZ3SUx4dW5Tcy9MR1Z3SUlVOVJ1ZWl1WFJXckM0aktaTEdsZnZPSmFZTVh2amNUWExBWlBiRUFwb2pjZjdib1pXa2lLOWRqMnY0TUlKdXlYRmprcGljNStXMTRrYVdsRWR4U3hjdVRldVovdDV4TDRrV3YwRzBjZUJGZXlMRG5yU002em9SU0FJcVMxQjhoVGRlUjBsYW1Da0NDQndPR1VQb1BBSjJMUUNYbkxKLzUwRWxaVE5sOUVEV2I5eENBSXZnWHJQUWtwSzdIdmZkTjNkcGpoWTF3Wm1yQlFzemJWNlo3T0dRS1NOeEdXNjBsSjZSOEt1bU5nZzJFTE9oK0RzdjMzM3VKcjhvd3F5RERZTCtCQTdXaTF3M29YZWNKSXNHc1hnS0RSaytyRDJtazVrZW84bjdDYVpoZ3l2Y3ZUNVk4V3Evbkl1aWUvN1E1ZXZ4Y0NWbXJCYUVRSGVuNGZabmQ5M2hEb1RDclhOc3ErMy9KZjZtREJNVmpUbC82NmxLVmlBMGhVeXowWElzcDZESEZJaUFRbmdTQ1p3dC9yV3dzSVhqcXlza1VnWHh4d2FTVlQrVWdkdEdVWnM4aUc4VGxPT2Q3WWVGaWYwd2V4ZjNnK2x2LzBiTGtuaDgwSlFFMWRFQUplVjVaS2Myb0lBTjVYbFVSUU0wSlNud1FjeVNhRnIzc2tJcEFickpkNXNHc3FrMkhZTE5DS0ZhRTUyRXRGSEJaajVZTlpxYXBpVFF6VTZUb1A3MThzS09aVU5DemxUVmhYbnFqU1c5M21lTEJvMWxjNjVDRzdVdnA3a0Viemx4Vlg1dVFuMWptSC9scEZNMFlnYWVwaWltQWpzV1ovOVBWK05adTVYQnJqaWp3K1g4ZGVZZ1pLcDMrK1VvdllvbEpHelNjSXhjVFBZZW5rNDBGdVB6cUl0NHpJQWVGR0M1cEdSY1hvQ3Fab01WNWUzSkpJdlN2R1FGWFh5eG9aRjRGK1RxZi85a2F6dTVZQ2xZdktXSkF4TC9Ec1VzWHZpdWlrVWJHM2NuTE5wbjdjM2gzL1JwZnp1VnJncUprQXE3T1lTU0VpMHA2S3h2Tk5wT2dscWhpSE83ZWtvU0dDYktOanJFMFhTaHFEVmMzRFJ4SmNsTk5sY3NINHV1eC9pNktwV2p2NXpGQmMrVzhNZmsxUWpna2p2SDgxRGhFSWlhYU80NENyQXMwZkhodnUrKzlycFppUGEzNm43OTlmWjkrZDU3ME5qWS9uV2x1azNDYUhsMWNNRGd0Nk5yeEtTVXFMcDNXVHJlWlk2VHVxRElSVndYOUFTT2FMendkenRNRE9CU0VCY295OFpjdFJyMzBVNUh4cmVMYUx6aVJzZnVkaXVIOUtzVGVEUC8xK0V1YlVGTHdjZmZPRTc1UHROZGFOMlpKeTJFd2gwUW1JbkUzOWE2Tlo0QW10M09pVWlLdytsdWpTSkFlTnpkT0ZxaU5hbS83c1YzQ1MxZWl1NUx3bTRPdDhQUUJJS2FSMTRnODl3VDBMUFN1cDNmUnpMMzcrT1QxcytFd3VWUE9WaTJoUFh4QkViUnRGME9EU3VDVVFsSXFEZ0c2emR0encydnJYSW9Pam91Z3hBT0VaVFMyTER0dHp4MndpQUNiWmNrV2s5eHhYTENacHdwQXlhRHIrdTV2VEd4SVU2NTUydGloc1hRbkNDTC9uSUFUMysrbWR1ZVg0blFKSTljc0FjM25UQ21WNC8vMzBzVHVNYkRYN01sTEZGSWhLdUJNNVo2SFhqVGJLOHZoQlJnS0FxeWJESTkxV1NQMTlGOEdpc1dSTEZpSVVqcW1RRWcrSC9zdlhXY1hQWDEvLzk4WHhuZG1YWExTdHdkQ3hBZ3VCV1g0b1YrS0xSNFN3VktqUTlRbzlDV1VxeUNsZ0p0Y0E4T1FVTGNQVmwzSFpkNzcvdjN4NTNkWkxNMm0reUc5dlA3dm5tRTNaRzljK2N0UjE3bm5OZUJZQ1JBVGYwbXlySVN0QVdEZENZeUdWTXlZNTlDLzFJSVZOT2dkTm9ZRHZCUEpSYU5zMjZzZ1NvdHpEUXVMQUduVUZBUk5nOGdBbDNBK3dFZkQyM0x4aGh5aStmcVBlRVdEQXZhTVptU3BYR3JrY2ZuZjQveTdUZmFPZTlHalV0UFVZbUZkcUNKTFl4Uk5NYm9PVnhhTW81QStUVFd5ek40cDlQSmk1VmZzSXIzK2dOUXNNSWhzcjc5ZmZUU01aaHRMUmoxdFdBYWpIcjZEUkNDenIvZFIvQ0ZmeURjL1JNc2oyUXN0MjlmQ0pLbTdDSHZ3WDR1blNURGdiM3hKTlRWa2pSdC9FU3ZyVVlsQ1F5ZW9GWmlCZnE5MzN5bm13dU95YWEyZVRrQ1FVbitiQmEvR3FNNUhPMjN1S2FXL3pmMng4akswUHJWeGR0cUlsUTJSSG4yWFR0NU9ta1VNYnJJellSU3oxNURWY0tTdU5ZMUlZNDRBSzJvQUZRVjNlWEErUEJ6RkpHR0UzZlVUd2M0RzVKdDJ6dll2cTBEZ1BHanNwZ3dQbXNRVW9vN1JoVGZLYjNuOW43bE9rQXdFVVVSQ3BhMDhPZ3VPbUloTEdtUjYvYjNuZHlhU2dyMGFHNzZ6RVMwTEZBVTRrdSt4TmkwRVNRNHBrN0ZPZStRN3RkNnk4SmR2eDQvdDZ5WG5KOVNsb09vc2ZONmN2MXVqcGxWUWlBY1Q2dHh5YnN2N2FlTnJLYVlPVXdMcmJTWXdvVVBrYlhrMnpSZCtVUDRJR2JQbE05SjJSZnY0cHczSitWY202QXFnNU5Zai9Ub0twS3c1SzZmd3pDTVlKaUdwMTRsdXJNR3NRZEFFdDFaUThOVHI1SjE1QUZvdnY0TGd2eTMzOTduN1NwQVRGVjVkOGNPempycEpKQ1NkeGN0NHZpUFA4Wm5tbnZXQmFZM0RVbUJOaTZPa211QUZGZ1Z0aUdvbFNVUXVRWnFXUUpqc3d2aDdIOStBcmg3SFRRaEpVbVh5dWFiTG1Mc24vOUo4OUh6d1pJNGxtMWh4dzBYTS9tK1o5QmpwazJRM2MrbFYvem1EMHh1cUVCSXlkTGljUWhnV3IxZGRQOUY2VmlXVkVvT0s5MEN3T2VWazVEZkZFdzczaTdtM2YzOUVzR0s0akZ3dnMzQWVlaVkrUlJrRlBMNEYzK2xKS3VVbUpFazArWEZNR0k4K041dmVXUHJxMXkvNEdhTzlSK1F5aGtSUTU1WEplVnFtb2JLdlB3SVA4MnFZc3VMOVZ6NDF5aUJpRVRURkpaOC9nbmYrdFlOYk42Nm1VdlBNL2pCc2Zsa0xmS3o0MVcxLzRXVUVwR1ppVkpZWU1jVmRRZEtTWEVLWk51N1BhdHBHbGRjY1FVVHhrOWd6UGh4SkRwQzdQanRmVmpoQ0ZwbUpqNXBFQTkwMHZyYjM1Ri94RHpPUFBkY0RqcjRZT1lmY1VTYWRpK1l3MENFbmpadTFOWDFxRFBKeHZFeldYM29nUWhMc002S3c1cGF5RlpzcDNmUUc5Y29VRG81M3JHTWY4Uk9RQ2ZKTnJPVWVpdWJyN3MrWUdWd01vaGt2NmR1b0F5UFl3K2Z5bTkvZUE1bFJiWnZkZGdCNHdsRzRyejJ3WnJCRWFRKzdHS2I1RjVnWXZISGpTK3h2bllMRVRQTzIxcys0Y0NaNXlOTlk5Q0dPLzNHRVpNbVpTVWF5Ly82SEJlZWJPdjU1Yzg5UjlsVk4xQmJhNkxyQTVNVWRoVVZ5RTdCK3ZacDNUclVxeGhraUtFWGhxVkRnU29sYUtxZ3VkVmk3UEVoamo3Q2dlYlNLU21Xb01RZ0U4U3JPcVloVVBmQS8vOSs1WUllY3RkdG1lUWJjWlM5cmF4NjBzWUpUamh5WUJMRGFEVE10clcyVDNiVUlTZmlkbnZTdXZ6MmtITkVWS1JTWHZwL3p2WVdlNFRuOXRtTUVCQVhzTTV2bjYwWkFRdUgvTStyeVJhQVc3ZG8wR0swbHVjUk4zeE04MWFqYS92eTVWTXlaM1VueWxnUDFlVzV1TFVrcHE2UmZLY2xwVFhsZjl3OEtIdjJkeDNDc0N4SmUwZVVSMTVhaDJGYTFEYUhlUE96SGNSaUVvUWZ2OUxNbWJtdmNYbjVNZzZhVm9UdjROdFJabDJJNlMxalUzV1VqeGV1NWEzUGRyQjBmU1AxVFpILzJuUDB3L1lKUFI2YjBxVEFsVStodTRqT1JBYytoNThqdkRZeHhUKzFieEJNQk1oMFpORVliYUFwMW96YUs2Zjh5KzQxY2MwTTRpaU5ZelRyZUEvcndHclVvR240OTRHMEZBb3lJaVNOVGpxc3lieDF5ZlVBSFBTblg1T3RiS2JBblVsVnlHUEg0dEp5S1NRSWhUVkdDeWNWamlld3d1RFBYN1J6OFpFNlNjUGk5NSsxRW9rS3BIODB5MWVHZWhNYjdqWW1qY2tWQUE1TlplbmFXdG82bzJpcVFpQVVaM3haRHZuWkhseXBCcUhqU3JQSjhEaHdPalNXcktxaHVTMkNxZ3BDa1FUank3T1JFcW8rNm52UE80VkpyaGFuUHVteGNYbzF5ZFU1ZGdQajJ4dG4wV0hhRlMvRmVwVE9oSTVNQ0NKT2RkOXNNeUhScGNtY2hxVVVWcjdERW1VSGs3VlpOS1dFcHRpRGJscjNaWkNWNGQyblhKMWVmcG9sOW8rdzJkME9sSkl4MmNWY092dGszdGp5R1FuTDZCMFg2dWUyYnVzbmhpLzc2ZjQ0QzFlcUIzbmZGeHlVVUZoQVBCb2swbFpQS0J6RTByeTB0VFlUQ0xhbTVXVWVsVnlHUU5LMHlNR1hIeGdjb2krbk9lTEZDZ2djV0poWVpBU2Q2T0lvVUZXN2FVVWFTK0pRQksrMmR6RDI2N1Y0RzF6VVZ4Wnh5aGRieUYyeGdmODE2cWl3NG5oUTJadldENmFsOFBiYVNjU1NkdkhwQit2SEVHK05NdTN3aWZ6bTVQRWMrdm9yMUQvM0ZwYmJqWjdsdzJocW9lamdBMm01NVR4K21MMmVWNVk4QzJpb1h2K3U4ck9ZQzFRSk1RMFNMaUNJRUJKVlRhV01DZ21HQTZJZWtHcmFPRVQrajEvb1Z5Y25kcXdrOHFXZGUrSTU1QXdjNCtiMmYzYitQRG1OZVRFSkoySUVZbUVjcWs1anNKV09XT2dyYmFJN0puY2dtOWNpbVFpenNxNE9oR0J5L2hnMGgwNDZDU3NqVlZjd1V2bjB3dVhFYzlnOGNtNjRDTDJzbU1Dakw2RCs2eTFPcnFrdW54cnYrTjdzV051eEh5Ni82MitmZVlwZlBMTjlmZVBMV1pQN2dmSVV4aFRaK1pmVkRaMTlFamVrTzA2ZWRRdU5NY21kOHdUM094VzhGaUFFMjg2VXRIZEd5Q3JJNGNCRE5LeXdnV21LdE1YNkxYdm9tQ3NHMGpIUzR0NlZVZHRHVmUzUGFPaTA4N0NGMmdmOTNtNE5oUVdnS3ZvK2wva0tzVXY2dW5TVnk0K2Qxa3ZVNjdxQ1RDU1I4VGlXdFBoS0dZWDdKT3V3RUtwR2N1TnpkSHp4T1BIRkNkcldnbFZ2a0RYZmd6YjFJaHRiU09Oc0thcUthWnJjOGZOZkVGTVZ6djc1TC9obFppa1g2RDRDcW9VMnlpSzhTc016eThCemdFbm9FOTIyQnllWVJEYXBhTzZCNk1Fa3FyUlN5SUxPMlIzTG1GenhHazNiZDZJNUhXbkYrWTRlOUFzb1dORXdwODQva2JtVFp2S3QzMzBmM0I1SUppbndaM0hJMUxuNE12eGdXVjBSOWozbWQyU0trbTg4OGlwY1VoRFRkZkxHamVmcmxzWEc5WjF5ODg2RWNFU2JhYXdMODBKaUF0Tnk2NWsvcHBtNnNCOTNob05wbzRKOFdET09UYUZTY2tVTExUS1h4RzZOQzlLdTFVZEIwV0RHbUFvZTIzNHhSMHlWVkxhWGtwWDNLVDV6QlU3bldDTFJubzZtcmtJeUpqbi9PQ2VicTB3KzIyTFFFcks0NWVFUUwzemg0V2R6dC9DMTVyZXhWQ2NKeFpFV1lXWXZ3TnlpWi83aVBwOW5rQ1prKytEbnh3aG0vVGFUamluZlJNNlg1Q3g3bWRZRG8yUjluc1Rad3RCSmhTWGt1bHM1YmZScjNXVENQZlJTM2lybUYzMXFFd29QZHArT2dmTnJXb05CR2lNMUdQRWtlY0ZDc2dZaU5FdHpxdi8vTkg3aG5HcnJDQUd4V0pJTFp4ZHk3RlNUZ0Nad2pScUhpSDdPdXRPbTh2TlhOK0wwdXJySnpQdWZwNWNBdU83dVpTTjB4M3VIKzRabEJ1OUZqMlZKZkI2ZFZpWng2ZXAvL1lVZ1lTWlpYYnVWOHB4aXlyT0w2SWdHbVZvMGhuQThTbXU0RTh1eWFBbDE0SEk0MEZXTnFLVFBoZ0x0RVlNL3ZseEphekNKa3EvVEdvN3owNmVicVc5emNNWUJYL0s5QlVNbkV1Nkt5UmdKaGVMQ0dMODdyd2E4T3RIVkVaci9YRXRrZlJqRkxiQ2lFV1RRUVBIN2NSOTBFTjRGUitFOTZpamMwMmVnYWxxYXN5MVFFZDFOcC9aMlBIMzAvWHZNczBCVFRHWm0yMDJpRDh6YnpsK1BmQVREVXRPU2p5ZDM5WWVURmxaTkhZbVgza0NiTTRQazUwdXh0bXpIREFTUjhYaWZka0E2NDRiN0Z0T1ExREFzRmJSMkxsbWhBVHJ4WkRPUFAxM0RzeC9sVXVCTWtSdGk1MEFIRzVOb1JabHNiSEd6WTRlU2loM3V1WVM3NWoxdWFUejBqRTFJbHJCYyt6Uy9JMldUWC9pckQyMGVGdFBFbVp2RGg5RVFCeHgrQ01hMDZRaE54WDNFWVZSMXhMamluc1dFR2x0UmREVXRzKyt1NmQ4ZlZxbndlMzZhd3U1Nis1Q0tJb2pIbzJ5cDJrbW9jUlAxclJvZ0tLdmZ3dUtWbnpGNzBnd3l2SDVidHUzRlByZXd5WVRmcmJVLy9QZ1N3YjVHTVZSRlVPelQ4TGtVanAxaTg1NEVveGJCbUVWVDBNQWN4QTVvZXZ1VC9uV3Fhc2RYYytiYjhhcTJUMjFpSm1tbSs5MVRjcTRydDlaSUpkNmFGcGdTYVhiWktmdXVUVVZLS0d2T1hVaU43Z1RpOXMrdTU3VFVjM3M2T2xORyt3YlU5anVxcW1odjNJcEVvM1RjR01hVVRpZTk0TE9nOG90UFdQakdDM2lzTW5KV3ZjMFpWMTFOMmVzdlUzZjFkU1JXck1DWjZSdXl2Ylpudm8rVWt2YVluU2liN2ZMMXdpa0dlNzByMzhlVmFkcExaa2pRSmNZbzhIbmhuWHFMVi8xVEtadDJHZldKdFd3TTcyVHNxWWN6ZHU1NG5ILzZKYzJ2UFlvNmFnb1p4WE1Jdi9VbVdLa2k0ODdkL05pb2dwUUQyOVVLRmo1M2tqdm5WL0wzaGt6VzVaNk04d0NUVThTRC9FLzVkcjczeW1pcWhia1hHQ3dvS2xnaFFXVkxKdStWTDhZb3lHQmE5U2lNb0VUMUM4eVJwaWZZRHlPK1pTZTEzLzBWd3VsQW1nYVdoQ2UzbFBISis2T0hHSi83SElDN2YvM0kvdjhTVmhSaHhwQ0p1cFJ0WHd4S05DMUNZUWxFb2tsNzd5Vk1wQ3B3ZUJRUzdSN0dqMm5rSHo5OG5rTVBxRUYyMm5hUnJwbVlTY0dvNGhBTHBsZnh5c2ZUVWYxUkRMT24vZWh3T05BMERTa2xtcTZoYS9xd09nRVpUZ3ZxRGRxa1NzRW9FNms3QVkxb0lzcnpHeitnUHR3SzJyNDI3TEhRSmsvR2NkeFJ4RjU0RmNmUlI2Q1dsYUNPRzQzbnBtK1RYTG9TWStPbUFXM25kYWVjMGdNYkFLaTk3NzVkT0d4VDA3NWhTRktpbGhUanUva0dqRzA3NlB6NVhaak5yWGFOaGFxaTVPV2crREl3bTFxUTRXamF1a01tREJ4WmZrS3RiU1F2K1M3L2Z1QXVmakNxaFB0L2V6ZEdMTWJGNTU3SGIvNTBIOSs5KzZkVS9QUzN5QXdQcXE0ait4RUtpNjBvbFE0L3NST3pPVnVIZjZ0bElPQ01nd1VkblRIK0ZGVW9uenNSUjhEZVN6NnRFNGVhb0RXZWh5VVVNdlYyc2gxdEhGZndGczlVWGRITGJ3bUZUZDU1cjViYWVwdUFjOE9HTmtKaEU1dDVTK3l6cmhSQXB5a29jNW44S0xlTnpDVk5YUHVISUN1Mm1naGhweXNta29JOHYrVE9hM1RLVHp1Sjc3YmR4TExLNmFCR2Q1dllrZUZDYUwxdEFHSHNjT0svOXR1czg1WXpldXg0TXVzK3B1UFBmNExFNEkwMkprNHU2OVo5ZTlMcis0U0oyZHBLdUVQdTg5SHV5c1daVytabVIzTUNUWVZ4ZVU1OFRnVk5GVFFHRE9hVXV0blduQmpRRGg2cCs3VWsrQXFtTUdydU5WU3VmUWxQempoSzU1eVA2dlR3eDZmWDhNU2o2eUhMbVY3TzJGYzlWSlZnSUVqRnpoZlI2cHB4dGpqWjVuMmUvSnpSRkpZZGw4WjVrTFFrWGZ5aGFTeVg1TmdWQVUrM2xmQzlncDBVT3dadkVuMzFJMS9yZDQ0THN0eGtaN254KysxODBVQm5sUGJPS0UwZDBRRWFmcXdlb20xak81Q1JoRTVITkk0LzIwR21NNXR3SWs0b3BpTkV2TWYrQ01XU2ZMYTlrVUsvbTVxT1lvVG5hUEtrSHkyK0RDMWFoZHBhanR1d01WSFIwbzRhclNJV0J6WC9KRExHZloyczB1blVka1NvYUdubDhBbEZnd29ieHhnRDU1UUV3aXZ4THJEbk0xbWpJY09DK0NhZFJNWEF1clE0WCtHQXFTcVB2UlRuOHJPYzdLd3grYzJqVVFxeUZNNDV5Y0dadjR1d2R0a080bUhieGh2ME1EeHYvN2k1cUI0cDRZQk9FK3ZWQ0hFc1pIc0hTbUcrelhYVDBaa0NRQ1ZLUVQ3YTlDazRUajJlTGdGcG1CWldVM012WC9DdkxlLzBuSUFQVXZ1aysvUUtWQ3h5emRpZ2ZCNEQ0YkxicXdQc3FBNWlXRFpKdGRlUjVOUkptL0U0a3J5K2FTSWJHdk5Cd09JVkRjZ0JZczM5MVE3czlkaU5VTmdtMUJaczJiS0Zob1o2VkZXanZhMkptcW93OS85cEUrVmxkbjFCVlhXTUl3NHZJenZiSkJhSkVBNEdjT2c2a3lkUDdyN0dMcDhYT2lPU2EvOFM0L3kxdGZ6bWloQUxwb3poZjdlVmtyQWN2UFRGbTZ5cTJzSjNqamlEN09sSFlGcld3Tzc2YlVORUZpWEVkQmpiclBMSGx6TndTYml4UGN4SEFZT3Z6WVc3VDRGd0RDWjFxYXR4NHhCelpsUFQ5QkZqeDg3QU1XNDhOTzk5Y285V25kQkJrNmlBS1NXZHllNjJVS2paSG94d21NcWdCTVhKNUl3V3lrWjUrTTIyYlJTUHI4WktLSFJ1VGZEOUlpamIxRWExekIvVWdaZVdRakJhaUZJQWlZUVhLOGVQY0NnRWcwV1kxb1plSGJFSEc4RmdrUGRlZUlGZ1VkR3drc0pKb0RBL0g1a0lrL1BOcTBtWUJzSHRXeENxaG5QYURES3Z2Z0dyZWpHRjN1eGRqTEtpZi9nNEltQ3FZZklqaDUrZkhINE5OV2FNSjFvVnFOOURHenRBbjJEQlpCYy8rdkFCcHBvbW5ickducHdJYWExYkFOQVZGQ1JTS1B6NFR5dUkvUDU3aU1Zb2R6NzBrTTE4azhac2QvRTR1b1JDVXNydU9ta3Q5WnlTQm54eDRjekZ3eW9YbmwxcC8yeWtiM0l3YVlIbWdLSkpDVDY0cFJpSEluQmtHemdNZzJabkRHa09qcnRKQ1U1TlVORWM0eS92MVhIN2VXTjJFN3Q3Q2xIN21TbWozSHp0Z0Z4ZVh0YUNReHZpWnBhU2NQTjI0ald2QUpKdzJWRjRDeWFrQlJEdU1MenNZQkwvM3B5RXpXc1l4V2ZNVWlYekp2azQ5SkF4ekpnL25kS0RaNkJPblFST0c2QnlaUldUa0JvN1Y3K0QzeFhna3F1dkJUTUoraTVnV0xoY2pNVFlIdktCTUZFeGtBSk9PbnNtQUsrOHRBVWgzSmlCSUJVQnNNcy9KWllsVW1UamdrMmJXbEZWZGNBQzFFaFM5akIwOTNVMDNGdmU3eDZ4b2lwSXFMKy9ISkUyeVpuTkxQaitqSUZrVmhpMStXT1Vvd3N3dCs1QTduZ1RPWDZRNjI4ZVRPTUlPZ01KM3Zpd2tvdFBuOFNPam1QNXd6c1czei94U2NZVnRlNlRJemgvdHB2WFB3N2l5N1lUSEZ2YlRiNTJsSmRsZGZ5ZkdkdHl0UDRWaGdhT2cyS01YV0FYYkZSOXBKSlk1cktKSlFiYmlDTkpCTGlmaHBRU1JkTXdPZ0o4ZXQrZHpMdkZOZ2FYL1BaMjV0LzBVNVFVNkxXM0cwd21CR2FOaXVuVWh5c25ZWjlIZTh3aVQ1RVVxa2xNQzR4VVFDTkhTUEt6Vk14UU95MmRFc1dwNDlDY05IZFU4bm95bDRsRkV5a3FGOXhiL1RwSE5UY3lTWE1UbDd0a3dZa0xORTQ4WGdjTElnRXZkUTJTZGR0TU5xKzFrQ3NkbEcrVHVEbzdpSDN3UGxzL2lQTjRSR0hEZTRzb0tDM2l3TG16bUQxbkZyTm16V0xtekZtVWw0L2ROWTNPa1prNDFUMHlla0lDTGlINXpZeXQzREM2emk0K1VPRmZINWF6OUl0MnNyd0JjalA4bEkzTFk5NFJKYnoxZG9BWFB4bkxqT2xOTE1qcVpNWGhLL2x6NVNodTJUcWFXSDhrMUlvS3FvYXJySlFGcDR6bWtIa1pmS2tvZkZFNWxMbGFQOGptalJQUmp5ZVU5V09FUzhkUnN4RFIyWWpxS3ljKy94eGNXNWVpZi9nY1dyaTlUOC96d2NJRGUxM1YyQnhpN2VaYTR2RUVDeGR2WVUzcEtHUlIwWkRtOTFjL3VHcEUxaTNSMEV3eUdXZGJxVXF6ejdQdnlhNnJlenV0MHJRWVgrUkhFM0ZLcDg3RVczdzd0VHMyYzBKK0FTNmliRG4vYklySG40UnJkQTZiNnpjd3JpaURMVHV0WHVTOEE0RkJmUE9idGwveDA1OUNPRVdBNWZYQ1hYZlpyMVZYRHdxT0tSb2tKR3hwc1hWRUYvOXVmUUR1WFFOL093Sit2UXErYklQWWJuV29tenB0QjdYUCs1V2dxMG51V3ZjRG1vSjV2RkI5ZW5lbS9NblRQK0JXOVRkTWZXWXBEWXN5YUlubW95dEp5dVkwRTcya2lOK1cvcGdIdG55TGVLZU80clRBdVN2SmZtdmIxdjRWZkN5SmtkaEZtaEZJQklpMGJ3WFgwQU1ZWFdUQ2VVNzQ1MXlkUTNPVVhtVEMwVThEdFB5MkZpdHNJaHhpNElyUU9YUGdkNytEakF3N00zeENxc0Jtd2dSNDZpbWJxQ29VZ2gvK0VMNzhjci9vaHFvMGZMU3FzSUJvZ29ycU5oYk1HOHVMenk1RFpxY3lOVHVpTERocEdoWFZiUmpCWFVENVJNc210OWk5U1lzbEliOVRKN0hWaitKUVJpU3J6Rmxxa24rSkRZdzNQZTBpMFRBRW04VUNLeXgyK1U4NjZLTXNrbFVxWnNmZUVWS3ZxODBmNW0rNGY1bzZEUHNRQWlrbDJ5NjdDZDB5MFpNSnZQTVBwdVQySDFBd2J4NG54RTA4d3NCS3N4RGZuMkVYY3EyNy84UmRpeWRjeU02WGlXcm40bkFWb0NsUkRNdE5JdGFFMi9nTWtYa215TmlBQWIraTEzdjdJbXUyTnJGbVM1UE5hNmZzbTQ1b2JvdXpaRVVycUFKZEZjeWFuTWxiYjlXQlR3V25nOXVmT282SHJyS1lHeE44OTZuanFaSXhtUDg1anRHVmhCSVNLKzZreUFHV0dDQ0hRbG9JVmFmNXZUdHBmT3RPdTFiZUFYcUdnaG16Y0JhUElXUDhjVVJybCtQSW56eWtvbkhUa21pYWlxNnB2UExSV3BidGFPUi9MeitHaTZZWFlGaDJ3eXFSM2xFYmtWRTJaeElISCtWa1IzVXJLMVpVY3ZEQjQ4bndPdG0ybzVsZ01zelhqeGhMd29MS21qWlVKQWZOR1k4SU4yRXMvQjZKcE9TUVkvNUFRTW1udXJLNUo2RkJpa2phaWtUb2VPcWZCQmErUU02MTM4WjMrdGRBMHhpYnJYTGpZYm1zckpVOHM3NktwbWdJVFZFRzFlRmpmbjF6bndhbDcxQzdhMlBHZ2RNWmZkZjNiUDJlenNSZWY1bHRpbVIzOW5zT041V2JISk9qVXhLcjRkQjJ3YllzTngrV215U3lPZ2MxT3U2OTlhSUIvZXVhamdiZWVmMU5kQ3ZDOGFlZFJkbUY1d3dzNWdjaUZBWW1CeUFuRHUrUGdwQmlFWGptZGVwWDdDRHZoMWZpblRkN1VOeXBhMnQzNWFIV05SZlJ1SzJEcERFUi82eWpxQXEreUFSbkJTNm5PYVNFa1owZCtmMU1yMEk4bnVDTFZVZFJkdURYcVV1WXJGK1JZT1p4SHhGcUs3UkJ2NjlBcmcrV01CNm8rb3hJKzJaQTRzbWVUUDZFQzRZY0pBanJnazN6eHVHODhrU1dVNDljVllkTXhFbVVLZWlGSnNyYUlYVHJWc0dLS0NSWGF6aFBTcEtzMFZCblcyaWpUUkxQYURpSm84ZVRXQ2lFbkJsVUZaYXhyWFFDbTBkUFltdlplT3J5aWdsNk01QkN3Wmt3QnQwUGhqR1J6SDNZRCtHWG5MM09jRkxMWUY1d0MwVmFCelh4ZkRKallSUWhxWTRWVUtSMU1HL3RGa0lWUGt4REFiRW5aaFByQTdzUU9QUWtKMHhmejlzYnBvSHNtUklzcFUyeTNCeks0S1RwNjNsei9YUVNoclpmbVFycW5ENjhMdkFMaVNraG52cG90d0JmVmdaRzBxQW1sRUJYVlZUTEpPYndzT0diWCtmRXhTdjVzUEVUMWgwekU5R1pBMmFpeDlsT081YmdVTUd5OERwVk1qcXJhREJ5eVZRTjhsdldvcGt4a2tMdnEyeW54MGhhRnV2cXc4U04zbWUxcWoxR1l6QkJjcEE0enJaN0h1djEzQ1RMWkhxa0VaYzBPYVo2RlJXUDFyRGxQOFE4bStnTWo4aDFsL3pvTHBKSms4NUFoS0tpTEU0OGFSYnVSQlRqdzhVb3VUa2tpa2RSZWNZM0FFbjVLMC9nbjFBT05YVTBMVnFNTlhFQ255ZDkxRmUza3FGWU9Cd3FmR05CRHppeW84UEorSVlBT0NUU0VOMkJEMm5zYXVJbXUvaDcwamtHM3g4a0FkdXlkaFY1L2ZPZjhPeXplejAzbGdTUFpuRjJVVkNNWFNacFd1SWliQ2k0RWg0K25PVEFTb1BzTS9icWJqSlZDcFFTRStlRkVadnczaEtvMHdUYUhGditDVzBMbUp0QnNlY3EvcXdIcTFidFV6NG9ydjUxZkh0QTh2SUhjWjUrelpaUjlaMHV6anpHUWJaZkdYU0tROCsvMkFzN3M1ZEdrRjFYejZWaloxRHRiY01DUm9kenlLNnJKL2o4UzkxbnRyOFpTVlRXMllXZ0xpZnhiVlc0eXN0UmZCNDc2VHIxbDNadWcwU29LcEhsNi9ITW1ZSVZpdzlvUTl6L3hOci9PajhMQ2RJQjRpQUpMb0hjQm1vTVRwcWc4dU5yTkdaUHRmWEdtbzJTdXg4eWVPdGprMlN5YXhya0hpVDBzc2QrVlIyQzVUdWJ1T281azM5ZU5oYlRBaUVraWl1TEQ1cnJhSXNGbVQxbUFRcXBUdUtEM0c3U3NMQU1pMlJLMXBxbWhLU0ZvaXZjL2ZKbW52bTBHc01jQXJOL2w1eU82NkR2MGhjZFNmclVGOEpoNjE2WnFFY0V0bEc1ZVN5RkI1N0VTVWUzVVI5WlEzTW9qdERTSzAyTUpTSVlob0V1bkNobUk0R3dTU0laMzdmbGxCSlRkN0oreVhvY2s3M1UxbTJtNDh2dG1Mb0xJZE5QaER2T2tjRUMzWXRIMkxoTHdGVFpGbmRocXY4Ris5a3drSWs0L2t1dkpyNW1HZTBQM28zaXpVQXJLVVB4WnlGOG1RaUhjOERjaXBHSzVUNjV0Ty9taDNIRElwcVVMS3VLZElzWEthRWphdUxXQlU1dFlKOTc0Y0srTFFNRlNReWR1YU1PWkdySENnQTJaaC9FeW9YVnVFZ09taXo3YU9qRi9nSmo2QTQvVGVzRDFHeDlFMVZLOUVrSi9oajZrR1FvMEsrTVBDbjE4NTJsSC94M3lja1pNNGIzZXV2V2ZXWEhZK1dXQUkrK1Zzc2gwK3dreG52K1djSC9uRmJDeERMUFBsMWJLZ3J4SENlSjFWdFJubmdKa1REUjRvbjBNREMxZjNMcmFEakp6b293bTdjR2JOSlRUYWVrTkJ1dmQzQkM3SkhDZDVRK1lvTVNTSmhKNmdJdGJHcXB3cVU1eUhDNEtjc3E1TTJLWmZoZFhrNmZjamdPWmJDaTBkN3pKVlBFRWNLWFFiTFdUc0oxSG5Kd2o5Y0dHZytYQkhzOTUyN1pqTG1qa21RZ3hMajFxN2czMTQrVmxSNXA2SVQvQURsdnhrSWdRZlc3OStvU0hoY2NQZ2N1UHdOT21RL1NwL05zUnhiL2FMR3hta3Z6bWpubG1BNFdISlRrclUvaDhWZmdzMVVRaWZWL1Q3RU5XMUs1WllLQVE3QmhySi9FNlF2d0gza29hbVlBdWZMdGZmN3F5WllPd2h1Mjk0OHRiTmhPc3JWalFFTGg5c3JLUHZldkF6dDk3MjNnYTNIYkZua2JtTFJqQjhWQWduM0lQMUloOWtJbUdiZllzWjdRM1VXNHp1NUk4MCt0UGU1Vm9KRWtVSlNIZnZLUlZFNHF4MUZTQkZKU09lWlc5SEdqaVQ3M0ZwNktlZ3owZm91aHYreUFEOTNqN2VaODdiYmo5N0ZuQWhLQnA5bUFlc0g3YTZZamdRemRRR2p3c1djQ3NPZjd3ZHN4TUptSE5DeHc2bWlGQlVRM2IyZkhuNzVGWVdzdVNXWG9hYzZxa0RZT3BFaHVIdGZNYWUxVjNQK3pGbDVjYlB0dW1ncVdhZEhTMnNHaVJZOXgyN2MwenZQNTZmaURqOHJOQXQyN3gwTHVZYWNrWG5zTDE2VVg0UDM5cjdIcTZvbi84OS9JWUdpZmNucWtsQnh4cEUwUS9PYjdtekJhd3N4eVFUZ1o0eSsrQS9rb2R6eVhOWDlPK2VkZk1PYVVreGhUWHQ0cnVibS9rUitPRTMvMUhUcUtpdXdtam5zNTBzV05oRU5GeHVIdzZSWmZHMVhMNXkzRkFKeFdVay9MZEl2UGRpcUkzVUxJVWtpc1ZNT0ozZmN3SXNZYVl4eFJxYU1LZ3dlalp4T1NMdndpd2g4aVgwOFJ0ZzA5OU9uUU5VNmNQN1diVEJpZ3JDaWJFK2RQWmRIaURTU01RWWhuK2x4bjI3NnRERFh4ZnZONldvd3dtWnFieHlzK1lFSHhUT2JuVGNHU2NoQ2kvNzVzVkpDYWhxY1RRdlhQOHF0YmJMdmt0Z2VmeGRONUExTFRVQWFKQWZVc0t0ajM4YlVCdFRIZDZ5S0VKQmxXaUxmcHJQbEVwV1Nxd2V0L3lpQy8zT1NveXlQVWJWSjcva0ZxK0o1L3ZkZk10dTBIN2pRcEJUdDJWR0JKYTJpOFV2OWxxWHh2ZitlbXIrUnpOMi9lVERnY0pocUo4cTkvL1dzZkMxTHRZUWhZbXEyd05NdGVoS2dLODlvdDlMUVlTUGNmbGk4QnZ4dU9uVkpCWFVNQ2w3dVdDYVByMGJWOUxSZ1VtQnZEQ0hjVGh4NXBvUm9td2M4U1JIVVBtWFJnb2ZLZlJEblVyZ25xdkFKTDMvdERJelNGelR2YnVQZnA1UVRpRU8zVWNhdWRuSkgxTnQrZXZwVWpENXVLZHVBamhQS1BaV1d6eGdjdmIrZmRUNWV5YkVNanJXMnB2QnFIaHVMUnUrWG1saVBBaXRnaFJRczcxVVlCc282Q2pNT2gvUVV3VXZCRVpBVmtuUVBoejZCbG9mMStOZlYrSWRLcU5kL240ZG1OeUVBZ1NHTGdVd1hYVHJ5TStZVkhrSlFHYnRYMldaK2MveEM2MFBpMGNUSDNyTCtIb0REUXhRQ1JHd2xhVmhMRlphRjR6QkU3RHlnbXJYRWZoNDg1a0N5M0M0L0Q5aHRQbkRTZWptZ0puMVZzQVNVeHRFSTNvYkEwS1BtQnY1RTVZOGVoV0VGZVcvZ3ZURVZISlpjNVpRNk9HYTN3NzUwNTBHZ2c5TDZiWWo1MCsybEsxMzEydmQ1bGF3Z0J1cXBTWEdDVHB2enE1aE5JcHVJWWZiMVhnSmo0ZVAvbjkxQlBDNVdKREpaSGN3aGJPbThIYmVMN3NHWDc4QWU0MnloM2hQa3dYSVMvTTBsbFlXOW12L1JqZWdxb0VPNncrT0hyOTlBVzMweGlTaWJuTDNxWTc0WE9TaGtjL1lBand6aW1qRzRiMXVzMVZ2VzN5WG8rY1dqcERCUUVheHEzMndTU2UrNnRmbzZFcTk4OUtJYXY2R1NQRVlsMnNMVXRSRVBlTkJ6VE5YS25UTU13SW1ucHJWZHVYMkQ3LzZva25yRHRMRjJ6RUVKaXlSVFZ2SVJ3UEVreWxFeTdEaTlVRktUcHlHWjJKck1wbmx6RU4rYzMwZnE0WUdxTm0vdlVJbjRVMnNGU3EzUHZ2ckJpVWRYdTU3bWxjMGhFWXFBNitaOHJEK2JIV1NFY2QvMlc2ZzA3MFBOeWtKRXdXdGlnK05yTGVlT1NTZHhXL1NKMUs3YWd1UDEyOHhScmw4eDZkcHpkSEVZa05EcnI4cms2Mkl6TEsxRlVZUk1LT3lRZmJjaW1iYlFicjljWXZLVHdVL3VIUG1wUzMvWkljeVhoRDU0aXVzWnU2aWZEblRpbkhJNldYNzYzNnAyR1VDczcybXBwaXdZUVFHczBRRlZINDVCOWlmMDNGS0x4T0pIUUtreExJNXhUVEtZalBYMC9VblVGSTVWUEw2TXh6TFpPek5wbWtyRWtuWjFSZ3AweExLRlJZTWEwazBQVkI1WW5RMU9MamVqWDNzc29leGpFSjBBQTRQNzNwdHNYc1NRVHh1Wng3NWwyQk9DaHU5OW0yODZXdmNpUC9MZU5nYm1URkhxaE1LV1F1cmEwRzhqTDBpSFpUaUlzVVZWdFNLYmhVR3BRN2NteEl5alNURFhrMHV4R25BT0pMd0ZFZE1tbnBUR2krbDZXdUtkS1QzYzJCbnBjdU12ZkVLbkNmRFFOMmlJb3hYazROQVdoYTNzby9EMCtmZlBxa1QwMnF0SkxYd2swa0FaNjR6c0Vtd3RSVDU5TFBCZ2kzTHFldk9hM1ljclhFYW9HREI3WE5WTTJ5cXR2dklHZWFpajNrODRhbGpzenVjMWJTT1JaTjdVUlNjNEJCaVUzUjBrMks5VDl5WTE3a29Ib3MvbUNRRGpISXd0K2p1cFV3SDBBa2VYcnFMMzlIdHBlL3dEZEpjbDN1eUNaR0M1Z0c0d2tCMDgvQ0pmdXdMSlMrbHQzOE5uNjVSejN2ZlBwaklSUW5LNlVidC9EOTdqbjhaRlpOcUVpbkE2aXNSaCt2NTlnUnlkK2p4YzEya2c0YlBGUll5bkZvcFlEeWtKZ1FTaGtrbW0xMGRKcXNiWTZnMm1SeFVSakNWYjV6MEk2dEtIamJVNEZHZE9vYXNxbHNLaU9jdWNtSEJtNWZCcnlVK1J3RW91NlFFMzB0TzhWK01IRkxtNDYzVWxqdThVdm5vbnowcElrbWw5bHljWTRwNjBwNHR4NlAzZXUrd2tsVml2SkljQWNpb1NRRHV2bWxhTmV1UUFYTmNpVjFjT3gra2dUcHVjTDZodVNaQmJtVVhucXpWakNaUHFXeFRoYkt3ak5GRGcvU0pGbUR0SHQ5ZWxCOGwxOTU0NDZsQVRGbnZxMGJMMVl3aG9vTklQZm44M1lncWxZbGtWV1pnN3hwUFdWOHBqL3R3MVBxaEJHRllLNG1jU1JrNG5yMklOcFd2d0Z5VkNNdkhrbjRPalVVYTAxdU5FWnJCMU5sNWFJeEVmRzE1M2gzTG4zUG5KcTUyZlRqRWgxOVZuWEQ1YmwxQng0SEM1cU81cG9DWGZnMHB4c2JhcW1zcTBld3pUSjh2alkzbEtMcHFxN1lXK3l6LzM3d2NvbWNLb1E4eEdNbW1RVnZzbjdWNytLV3hzNmtYQlBvd3Z1dmFpTzBuRW16Zi9xb1BXUlNoSk5JZEF0cFBUaFB2QkEvRWNmUStZeHgrQ1lQcjNYaElUakVXcURMVlIwTlBRdElPSW1KUkUvQzBvbXNlRzk1YXlUUy9kNjNVNHFYOVAzb3FSNm9CYTZBeFI2MWczWi8xTW5qZ01KWm1VMUpKTUl0eHVsS045dTlwcVROZlFiM2JJRWdCckRCWXFGcXRxTnRydjBoUkFDTmRkRHJDTkFsUlNnS1FncHdTRjRjNjNCV1JkT0kxdng4TUo3SDBBZnpSN09abEhQS2VpNjdsN2lpaStPc0UyZTRkSVFRbUFaQXFkYlE0OUtoTitQS3hKRXFBcEp2dys5MDhUblVyRmNHcG8rY0oxNlYzYUFXeDBaMzBRVmZXTXRIMzd4QWNzV0w2UXNVeENiZHpkQ3dLYWRDOW42NVRLQ1IxL01LY2VkM2R0a1ROZU1zdUNOblpMZnI3SjFWV2lPd3Jtajl3M0xrQkxLYzNYT09UQ1Q2U1YyRG4rZVQrT0Y1WjAwQmdadlhDbjYreklTSEFVV2VVY255VmxnSngrNlJrSExoenFKUm1YUWUxWlZrOGFnbjhzZStSNkJZQTZZQmhNbU83bHRXcHpqbXlKRTFmT0pLUTVVYWRzTmc0NWYzTEhMcHhEZzZWRHczVkJENFkyMUdCMENGRHYyWmNiaC9wL1liMDBrN1BKaU03SGJjM0hiNUpkRFhMejJZQ3RmYmwrQmdZTVRDbkpJZjlGTUlrTFNQUFU4WnBRVlUxRVJ4Z2hVNHA1K01LUGZlSkdHbTIraDRxVkZLTTZ1QXVUMDdtelBmSisyYUpDSFZyOEp3SFdIbmtPTzJ6ZWsxN3VYM1FDaFNaSkZLb2xDbFlLeUNLOXZTL0pJeE1OeEI0OUdOMWV3Zk8yWC9PUUgxWHozcHU4U2pzWTQ5cTU3MlZRUUo5TFNTS3k2am5naHVGb2xWbnlQK2dkOU1BNHNRRlZwajJpc3FMWndlVEk1ZFpLZFM3Tm1qWS9WVlJadEVXMnYvV1BGQWx4aGJuMzhJQzc5UVJoVHdJOGVQeEJjNFZRcy9MOTRwTnl5eUpmcmtZWmhFN0FDbGxSWTMrWmpVVlhHWG9XazR2SDRpTnh1UzZpbEgyOERCQll5dkEwWnNYUFhoV2Ntd3B1TnBIVmd3TGhicGdta0lTa3I5ZFBTWVJKdEVKeDUvRnIrZHZOTDVHVkhpYmVxYUx2aHNwWVVxS2JrKytkK3lpdUxwMkZZQ29waTU5QjIyMmV4R0MrLy9ESXJWNjZtdGJtU3E4N0s0T2F6c2lqcVVHbDhLRWwwZzRVVlljaXl2T3ViVkxRSk1rbzhHRDRuRlUwQlJBendRREFaSTVpSUl2YVpUTmdlMnJUSm1OVTFDRlZCUDJBMmtTZWV3WG5DMFRoT1BnNXQrdVFVb1hEL0k3cHQyOGp1WTJtaFRScUhXanFLME1OL1M1RUphNmt3azRycjFCUHhuSHNXd2ZzZUlQN2V4K25IU0FSSXcwVDN1RWttayt5ODRudmNmZGN0bFB6cFBtNjkwWTdOMzNyalRkVGU4aVB1ZWZ3UDFGejNVK0tSS0xyWGcweWF2ZGExVm5YajlVdjgySnlyMGRUU3VIUW96ZkJqSk9OVWQ0QkxseVNTT21NenQxSG1xZUxmMVpmZ1ZPSjhZOHhmZUszdVhKNm91QnFIc2dzbm1OSFZPbG9DOWREYVpBZUg4a3hKbmdRTHdWaGFjV0xzMWZRcVFGSkN6QktjbGhQbGFxdUpEeDV1NWE0bm9zUVRvR3VRTkFTR0NTY2RKTG5sdThWOFhuNFZOMWRkVERUaFJkWERXTHZWN2MzSXF4elc1ZS95czNZbStqOHYzdkp5c2k2NGxNM0xsNUtwK2lrODUrczBMbnlKOExhdGd4Ni9TMmNYZHQvN25nUzlxcFM0akN6VVlUaG5sZ1NQdzY3WlVSU1lQODVMWG9iS3hBSUg3MjBPMHhBd0tNOXg0TllGa1lUc0YzWWVxZnRWQlBoemk1aHowclZNTy9SY0hHNC91T3dtUzcrNmZqYmZPWDhpdXFxa2paRWNuT29iOTk0WC85cXZhayttZktLazVhTzEzY2VvZ2xQeEZqVFRIdjhDMVlvQng2VjFuUy9DV1R6UlVrcW1hdHU2VDdTVWNwaTNuYk1kRFlQcnlMNktVS1NrTURlRGtxSk1BcUVZbTdkM0FKQ2Y3YUdrS0ErRFRocGJRd1BLcjZGZ2tTUVVEaHZieXZTSjJieXlyWTNEaXZNNFp2d1l4b1RiZUhlSkQwVXp1Mk1TVGwybElaUmtiVU9RUEZlWXlwcDY1aFFmUkdGZU1STmlEVnc1S3hNaFU3bnNJa2xacVE2Rmg3SXNkaFN4blJyblpjY0l4QTBxTytJY25zWUNTUlBjaDhUSk9DbUttbVBqUFhrM2R4SjYyMDFzdldOUXU2UzV6V0x0VnBPcDQxUW1saWwwaHV3L01GT3VVM2JFOWlGaURvRTZCRHJJV3dPcGpzTmZRT0pMWWJOY2RqVTRrU0FObzNzdGxaSmlIR2VlUXVMVnQyeHM4c3hUc1ZvN3NCcWJlcTFoaVJsT2E5L0tmUXhpVzlhdXEraXF4Y3lpSm1ZV05WR1FFU2JEa2VEdnkrWlMyWjZGWVE1TXFLdU1VUHh2VHpzeUt5c0xSZEV3REJOVUJWUDNNUGV3QWh3T1FjVy9Ha0JWTVpJR21abFpXSmJScisxcDErelphLy92ejAwKzJ0RE9mVmRGZWZlUWRyNjFhVHhiaEorSzVocHVYWGgvcW1CZWpvamMwU3dvQ0F0Y1VxQjNBREZ3aFdFVTBMbmJSMHJUSVBmQVV6Z2s1MndpVmExOCt0ajl4Qi80QTkrc3JFVGRDK2hKRTBJaTVTNXVvdTRDTGNBMExZU2lJRklKMXpXV2c4L2RwNUVWWGtmYm91azROUWNUQzZ0NXRmNXcycldrYlEwTWVIb1ZWQ1ZPZGtFYm9SVmI4SGhxTUV0ZFdDRTNXZjZkNkhvQ2FZa2hKUVUzTlRWeDIyMjNzVTJJWWMvanJLK3RaVloyRGlLWklMSjJGVlk0akY0MGlrUjFGUjUvTnM2Y1BPbzdHdE82VjFWS0FwcURzMWUreU5Mc0VsNmFjQnhFZ25ZMisrNGpaSkwwK0RocjIxdWN2ZkpGQWc1UG4wcDVzSFVqdFc1UzJvZGI4V2lzWDluSkwyNjZHNFRLNXRWQkZKK3p1MXZmWUU2RkxnVFRkRnVRcjBwMVc1ampjREpOMTlHRkdOU1ZldURrUjRkMWJaNTkwdjc1elZnL3hTSkNFb2pCNzA4eDZaeXRjc3ZmNFlKeGtsbFJnMStGUTJTcTlIREtCckwycFlTU2JCc1FNeXlKMW9lRkpiQUpnVHhPbFNPbitIbGxXY3RlQUhzQ2IvNTRJcVZuQU9ETkg1KzJVeUt3VUxBTHVFMGxuem9LcVRNbGIyMk13OFpxU3AvWXlFejlYOHlibU1HaGg0eGgrbUZUS0QzeVVDWVZsckloWEVWSU9JZzQ4c2x6K2JCTVk4U0Z1QkFtQW9FcEpWbVpEaDUrOEhnYk5IMi9nbzZPQklwaUJ6bDJCZjFCU291aUlqdHByNkVoTkNCWjAzQ24xaFI5djZyUER4RW10QzRzd096VXlMK3NIdHd5UGVHVnl1Ris0S1JCTXBaa0pZZ3FPQ1RORzMwK1BRYzJuakI1K3VYTm5IZnFCQ0w2YWR6MWlzSFB6L29ueGRsN2wvd2xKWXpLMTVIQWh1MjJ4MVdhbzlyUERVRm5TdnZvMHU0VXJQQXBUQXliaEJ3Q1IycWFFZ3BrSkNUTGZRcnRUb0d3OW05NjlHWG41UFd2M29DeW5EaDNGdG9kYlg4Mkk1L3FVVTU3TC9hM0lWUEpMdVVkZ1dHOXo2cis1dGUwaUczZFFlRDl4Y1IzVk80ekNiOG1OS0ptbEhZendOZnlGM0ROcE1zUmJqOTVzdy9zcGovTG0zMFFJaXVUYTUyWDB4Q280NzIySlhoVUYyN1ZqU0hUbERVQ3JGYUY4RXMrQWdFblZ0b0hmR1RackZVQlNXeWkvZDMxY0JKQjBnUVVEVlcxblFIRHBaTzF2UVh2WFMvd3p5TXRrcnJncUU5VnltcmRKTjA2WWpkZEhBN0lWSUdZYlNLTUsxZVlNRUdGc3lYSktxaTd4NE16b1JCUENPSnVTVXR0QTFXcncxUldWRkJaVWNFTEw3NWlyNC91WnVLRU1idXJ4Zi91a1NJVWJtbUwwTEt0ZzNaL2tHM0pJRXVXZ3NjSEMwNDZrSG1IbGtKa1NTb0JUdzYrc2JKellmYWhKS2JPNGcxZkJtOXMzSnVpamxjRzFFUVdYa0srbXhBMTFUZ3J0cE9jZUFaR1RobU9MMTRtNjAvWG9Fb0xqQVM0dlhiQitCNUM4eGNQdmRXbjBFMFlKcVlsZWZLRnoxRVVaY1NTbVljTUNqa2RrT0hnaTdFZTFqbXoyR2R1algvME43dUsvWi91SUhmU1lhaDVCMURaMUU2c1l5V0hIbnMwN3FKRHFHcmZpVk56SWtUNlhlTzZsWnJEQVJkY1lCUFZCbE9oWko4UFRqdk5maTBONVdhbDZzNkZidjh1VTdwQ09PQysxZkJLWlNwWHc2UTdzYnNveFZmUUVPMi9TQzlpdUltWWJoVGRJaGpPb0x5MGxqK1czTXFwbjc1QThEbUxIUTEyc1hkZVVRZStDeFZlUC94aWZsWDNRM1lzS3djTlZKZUpLZFVlVS9MZGQ3N2I3emJXRW5CT1hZQURVM2JYbDNWZjhzSjdtekFjUTV0V0pVVW1uT21BcCtib0xNamJuVXhZSWp3cTBhVWhXbjVkaTlsaElKeGljSlpNdng4T09nZzhleEE5ZUR3d2E1YjlleVJpdjI4L2piUjhheUd3UEE0K1hsckp4V2ZNNHB5TER1YmpMM2VDaEtOT21VRnVscHQvZnJJTnZMdEk5WDRmNmZzd1pINnEwN1RKdmErOHJQM0tYVE1zdXJNSXpmQmVZQ0c3YzRnYUVOK29JYzI5TjlZdmZ1VDhZZjZTL3p1aSs4RTVmc3p3WG5DRkhVQ3pGQVhOTlBBYk1WcjkrV1Q5NGhaeS91Y2lZbTRIdmtnTUZORk5oak9VSll0Yy9UKzdyWjBDVmp1YStqUko2U1NSS2w3WFJKeW9HUVhsK1FFSVBmZEUzWGI1YlVseitMeTJZTmdnMkpGRXVCUWlnU1JmTEc5RnlYWmdtUktoSjlsWWs4ZlJQN25FM3NPS0hlV3VlcTRNeDVnS3NnNWVpbnZNVGl6QWlnL2VtenRqd3JGMCtCNGdFVzVER3FDNHMzR1hsVk53NHYvaW0zNTZENTkrYU9mTXZpL0Y1eU5aVlVQRGpkK2owaFhDVkpTMEMxNzFzbUhldUtuYzMyMmI2dGdPQ0UwbE04dk54czMxbUtiRTVYYmdkdXVzV0ZlTFlVbjhHUzZrSmxpenRvcFlNa0Y5MlZtNEhDcTFGVEVpaVRvSzhqd2tvOG1lYzJSWktCNFBabE1UNFk4L0p2c2JseUEwRGRNMFVGVU5pV1N6K1FKdkdYK255ZWhFVTFRR3M5S0tyN3Qwd05jOVU4ZmptVG8rL1hsSUVRcS9zT3FUQVRFY2Viemc5QjBCZE8rcHZEbmE1TG1tamRDMGFmQjFHMkI5aFFCSElrRkJ1SjBPSzBreW1TQXBGT1IvUUhHd3dIWWpvMVZqYUtuWlNRMzVUQWlXSWxvbWsvVFU0WEpIMDJ1cWt4ckgvKzRYZmRnTUZ1R1ltMk9tcnVIWTJFWmVYUHNsVGozQ2FZRWd2MWgwTVI5c21JSFhGZXNuK2ViNnIzQjJMQ3hqbDkxcEdYRnNZeVk5dEZxUlVPZlhlSHB1RnU5T3NVaXNlQmFXV3owM3hoQ0R0aEtCMUFYUlYxdzRKeVh3SEJoQjNXa1JmOUZCcE5sTlEwa1IyMHJIczJuMFpMYVZqcWMrcjVpUU82TmJ6K2hHRWw4a1ltTWVRb3o0Zm1pNFBxTzNDa0hCUjVSN2loL21OcTdrbjQ1akFFbHBvb1hmYlh3RTYzMkxLcko2a2V2WW83UGZmZHg5UzMxV0lJamU3K3RqWEhuMmdYdWNYY0dhYlkwc1hWK0xsSkw4YkM4bkhEb2V0ME5MNi92LzNlYTJ3MkhaVFFGTUtSRjBrZktCSlFWeHcwUUlnVU1ScVJvb2llWnc4RWFOb0NLcGs4ZzRpaTJSdzNBbzhWNjA5T25HRW9TUVdBbkp4UEZ1cHJvYkVPNENqRVNjM1BiUG1WaFV6SnBxMjZlUmc3aFV6ZUZrOXp3Nk5ac29OV0ZZQk9JbXhNMUJ0OFgzdDczZHAzelVzVkNrNUtLRzVZTVdxdTArZmovaUVtQmtuUEtMYm5nUjhuMWNkTW5oM0hETWFGd3JsaE42OXlOV3RGbzgySm5QeFY5M005ZGprNTIvczZHZGhVOXU1Q2RYSE15MEdSTm9mZlVkWkhXVWQ2SUZ2RnhsSVJ2YXU2OXJTRUdXbXVTT25kTnNwOVJTTUtYR3ZJSldicHV4bGRNdWFxTHROZHRHZXZDNnRaeTZzNUZmclp2SWtxWmNVQ3gwTlRsbzBjWitnWXFrdlI5blRvdlM0aE5VUlhTTVVaS2tKdElpWkIweGZTbjdWNlIrcnlEYko5aTB3OFpGczMwQ3YxZWtoZDNWbm5kZXZ4SS95NWxCb2RUeGpiYUx4VXRyWXNUcktxbGIrTnlnZ25qN0tWZmJEUitpTVlwK2ZEVkZ0MTJORllyMEpsSktOWG1xL2Y3ZFJGZHRSSEc3a0piRi81blJKVkFTSU5lQm1DZmhNSmpvRWZ6OFhKVjVVeFdzbVAyZUk0NVFjT2dxV3lzc05tMjNkdnR6T2FpZkxhU3RZWlFVVUJTSUJEazdld2E2cWhPT1JQQjVQR2tWajU4NnA0aUVLU25PY3FFSXdlUlJQbzQ5c0JpZlN5ZWFORWtZRmtLSUlSZXZwYXN2a0JKMFNVMTlCbWNWdExBOUZDSytzNU5KYm9HV0dOTS9XVVVma0c5V1JnN2JON1pRSVhOcEQ2cVlzU2orakd5Z2RSOEVzd1NYZy9lWFZqTm5VaVB6M0ozOFpLMFRITDYwNHlJQ3lCWnE5eEhxd3V3VmV2UjcycXRoWXZOOWVGRlozWkhnSlc4SEpWZEdlT1FLUVdHZUNWRVZWOFk0Y015Z2dza3NEbVh6ZG0yRVQxcXFxZXg0QlJKdG9BM2d5NW9tU29hUDRIT1BvV2JsNEQ3c2FMdTQyckNOcytaYnYwTnMyZWNvMlRrRHpzZEl4WEsvL2ErcUFlYTlOd0dPR0xTZGdUMis4WTAzK3ZrZWdtVENwSFJNRmpmTXRPL3QvclVOMUZSc1FuZW9neVpObDFqOXgvQ1NnVEFWcjc1TWhtN3ZpdURtbDVnUWlLTEx3UU9ZOXo1Ny8zK1huSHptbWVHOTNzeVpYOWxYbVRMYWk5K3JjY2xKTmduaXBzb3dVMGJ2TzBPVVVBU090NWRqSHFVUW5UY1c3L3ZyR0s0TUpyR1hhTnFJNFR0OWpJU1o1SzB0UzFoV3U1bU9XQkJkMFRpMGJEbzcydXI0b25vOUI0eWFSTnhJNEJqQVI3TENZWVNtN1dic2llNmYwckp3VEp1R0oySVQ3amltVFVOR282QW92Yyt4RU1qa3J2dDEzUDlJNy9NckpXWWtpalJNSW45NUNrMzdEMlNMTjAyN1NrMVRNV3JxYWYzdUhRU2ZmNTZNczgraStPMm5BR2k1L3VkVUgzb2l2blBQSWZlUHYwQXJMZTc1dDN0aVpIc1FDZVBYZWFzamk4ZTNGdkJaeUVja2xiQzhPT2puOEl3Z2x4YzBjY29wSFp3OGYyQmlZWkdTMTBHbllHbUpnMWNudTFsZTZpU2VYQW52clJnK2NqL3gzeVU2aFM0eHF4eFliU3I2bkFpSnBiWWUwbWRIc0ZwVnpDb0hZaEIyUkxPSEhKR2dxSmhtRlB4K2t2RUVHWk1tb3FaSU12WEpma0toRVBqOW1GUmpLYTVVVXhmUkJ6NXBrcFBLRFROVFFTYTNzZHRqQnhRNDdNZEdpcEdxeCt2MGZnendSY1duTklVYXVlS3dxM2g5N1N0a090MUVYU2JaU1lPdnZSYmlsTVVHbm9nZ3FEWU9TVUoybVpkbVFtVkNWb3k3UnRVVGVxZVM4MzhmcGpXa0lvUmR3Tm5GRjN2SzhVN3V2Q2lEc2N2OFZON253RXhJSEw0VUpMLzdsT2ZuOTVKRHNlZGZSbDIxRnF1bEJXdEhKUlFXcEwvNWFnZHVmZFNpZXZoYjFsRjh5MXJQQi9wb0hzczRFRFFubFprYVo2cGV4cVk1SHg2aGNJS2V3YVVSbGNSZDkxR3hqMmNqbmZnbUtkeElHakMyRUVwbk9ZZ0dIU2dDU3NxY2pOMFE1Yk90c2dkdWxKUWFjYW4zTVg4Q01ObHFscUdSNEJCOU0yVktDK3VNc1RTWmVRZ1IzK2RFK09IekZlM2IvYmhwQTVzRHRiZ1VuYzVFaUtUbVlrMTdCZlB6cHV5bEMycWlPbFFtaGovaGZ5NWFoZHRsRjkvZWV0RXFQZ2wvekhiM1VjaUVpZTJBOVdPbm11RVIrOXBXNnJ2TFBlYkNNQUduaWRuc1l2WGpYbXFueEdodGxWUjg3a0hSd3F4Y0xBaUZMRlNIeEVRaWQwdnd5am56dU9HOXlTZnZUbU9lSlN0V3JPQzExMS9ETkUzT1BQTk1GaXhZa0JaaGQwbGtlSWxJYXJ2c3MyQnlSTllzVUZVOUl0Zk5PWFA4b0Vla1EwcUV5Q0dMbkVIVmRkdkwyd2Y5VEljRnhUR0ptUUxMaW1NU1I1bzVvc1czM2pCOFgvN1dHd2VGa3R3dWk1T1BDN04yU3oyNktwa3lJWUpDK2tXb2R2WFdick1tN0lDUnNDVEd4akE1bzkyZ0NpS3YxK0pUQlphcXBkNlRlcjhLSk1WWGFpTjluQ1c0WTdxRGVGSU9yZW44Mjd0UGhVUnFPbzB0QW9mVnhBWEZxN2p4MERZT1ArcGd3bVUvNW92d1JONzVxSkVQUDN1WDVSdnJDSGZHYmV6U3FhRmtPTHZDenoxcUlhelFyajJxQU5tblFQNjNJYjRER244UGtSckltRysvSjdRRnJIOUE0YzMyditaSG9QUE5YYm5NWGRjYWNYM1QvYXRFUjZjbVZNT1BsLzJZNjZmZHlBWGpMdXpHWWgyS2srZDJQTXVmTi95SnFCbkZxUXhTRUM3QTZOQ3h3aXE2TmpKNHJpSUVWakxKeE1JeW5yN29HcHlhaHBiQzFmNTIzbFhFRFlNVC8vb2JWdFh1Uk5FZGFUVkNzRzJCR0R2TlNieFZIZUh2UjNYeTBKSUFxemRzSldZcHpNazVnSjhkQWM5djlmTnBzMFJvQmxZYURDSkM3Tkp4ZzIzWlBkODcyTlhqVXFFMjZlRTd1VnY0SUZURUorRUNQZ2tYQUZDa1JUbkMyOFN4R1EzOHJXMEM3UTRIN1lWNm44SnRLUFZCUW9WUTJPQ25yUmR5Y2VFU0RtajI4OHVXR2NRakNZU203QmR5czBkKzh1Ync0alluNzcvenRyL3NTYTgzaDhMY0VLM3QyV1Q1NWxBeWZpdytYeDdSZEhSOGRIZVUxTjRWa2VSdWtleVV2YXFJb2VrRFI1MlQvTUlTaklQUFplenN5V3g5OGlGeTZ6dFFuUmFxS1ZFVmFmZWozNHNwRTBLZ2FCYUpqaWlqcHBYeDYzTm5jTXJTajJtK2N5RkJLZER6YzBpMnRwRTNmaUtKSDEvTXJaT2FlSFRWQXhBM1VMMVpOcEh3SGg5NnhaRXA3RTZSRUM1bC9ZZHhMblJ2Wi9ONnlZb1ZzRjdrY0hsNEtweXNEOUJWZnJmeDFNQXZHMDJWSkNyWFFzcHZUbFN1eFdpcTJIdENZUWxiVzZwcERMV1M3ZmFqS1NwVDg4Y1FOeEk0TloydmFsUzBEa3p1WWhvdUNyTk9Ra3BCUzhSSmV5TE9WemxHTEovZWtzU1dyS1Y1L1ZaYW5Ca3NGQVdoUnVlRUx6TDBaTE9OK2tvQUVST3F0QkRISXEwa3BCamF1Z0s4aXNUdFZDaklzUW1MM0U3VjNxOTdhYWNwcHNBd3V5bnR1eTlqQUJnU2hHWVRrUTFSMEE5Rng1QXlPeTFEY054b2U1KytWNWxFMGVTQXFkMUNRcnZMNGpkSGRGTG5NL2V1ZmlWVlkzWDhiUXY3RmQ4S2tEUXRjdnh1WG4vOGR4UjVIQ1JOYVpQazdkNjFjbmVGUDZaa2Y2T0QzYjl0NVNDYUtsY1RITzlBVlhQd1ZtV1FsQWZzMXJ4dThNM2k5L3VKeCtNc1hXcVRMR1puWlZGY1dNZ0xtemV6eG9qeE8xOHhzMzB1bWplcmJMN0NoMzllRW1lcGliUFVRbkhMM2puNWxnVmFIa3JXY1NRYjZxbi95ZjIwL1BWUnJGZ2NaNjRmS2UyRzRnaGxXT2ZFTUF6R2pock54Skt4ck51NkZvY3ZFOU0wYVFzSGthbDgycjU4aTdaN254Z1pXMVpWU1JvR1hxK1hZQ0JBWm1ZbXJTMWJ5QWhYazJ2V01yRmNjbXBPRlJ0YmlybS9aUktKbUVuQWN2RFgyc2xzaWVSd1Z2N0h2Sjg0aHBCZTBHT25EaW51TGl3YXE2Y3hKWHNEalIyTGlVU3lvT053WGxoN0FOQlRMeW9xUklPU0x6YWEzSEdKb0w0TkZxOUo3bExhKzJEcktCSnEvU3FQei9YdzFwUVlpUlZQdy9KaE5KNGthRUx5Y1lWZzNNNElpRGlHWWVHS1JnaVBFYkJ4N3o4cm1QVFJITXZ2ODdXRTVhQStVcHdPYnpmZnZtdkpvSGFPYWRoRXJJb2EzQ2R5TGlFRXFxNGhsUCt5d01lK0FkRzdmcW9xVml3S1dYNWNvNHBSVFF0MWRDbkc1OXZ0alM0VUVOYlFyanZNNCtueDEreTdHdGh0aTh6dTU5NE5hZkxxbW85NGpZOHhwSW1VRUlpRlVSUUZyOE9GYVZra0xSTzM1aUFZRDl1eDBiNHVwVWdrbVJDWG5EbjdTNzUzMUV0NDlFMzg5VE1mTCs4dGtUQmdCVlV1T0tXZGkrYlVVM0ZMQmNGWG1uRGw1MUJ3M0ZGa0gzMGN6bU9PaFZUdGFoVFkybHJMenBacXRyYldzS20xbXEwdE5leHNyNmMyMkVJNEd1bzlSNTFKV05wSzdaWUtmdlgwNm4zT2xYKzdhbFl2ZkVGVFRHWm1WMUhvRHRBWTliTzJ2UnpEVXRNazE3VUppalArOE10ZDlrV1hqYkV2ZSsvMVoxTmJJTlZJWHZiV0Y0WmhJVkl4N082UFZTWE5JWjJyNzF5RFFOTFNiaUVjdmYzL083bDdXTS9EaXlOdGs2ZHlqNFNVeE9NR1FWODI2b3NMV1JWM1l1cE81cjd4RW9FekxpT2FNRkdRKzF3VHY4L3pzVFhZdzBxVlV1Snd1UGhpYXlXZHdRQmp4eHlHR1ZFQVFVYlJMQUxWNy9EYTJxMVlFeExFNDlIZGJKMDBKMHJhOWFkVGNrR2s0aTVUY2dWT0ZjTDdjR1FzS1ZsZUdXVjByb1BaWlRZeDFQS0tLTXNyby92VXlCUUJ5WFlGSXlod2w5dEZzMGJRUWJJOXZiMGhBWWRtME41ZWhKTFJUSHpzdTdSTzJzb3YvQm5jbE8xQ1FiSTNsVFdXZ0t5QTRJRkw0N3gzcGhQWDJnazJUNEhvYmNITDNUQVgwUytrWk5mM2Jhb01EandkYWdtWk9RZlp1WnlpZU5EM2Q5OXY1RzBpdGRzWWEwNmpSQXZURVk3VFVQRXV2dWxadEtrVHVUbmpSTjdQeXNIbDFOTTdFdlYzOUkwUnFWcWZ2NmY3K3U0NlRURVRMSnAyUGtrY1hMYjZNV1NkRHBhOVdpNVBrcnc4SDZOR2xkajJsQ0tRQ1lsU3FXTys4aTRmemo2SGluazNjZkViOTZMSzlQM1lyamkybEZEWDZlS1ZqVVdjdlNERVBHODdobUZnWkVSNCtZdGk2Z0t1SGsxL2hzVFJKRUhSQlR0YkV2enRWOGNnZ0xwQURNVXAwb0toL3BOSHhyeEFULzlaMnNpOHFRam1qRS9TVmhZZWtsLy85Z2pmN3hsL09tTVFBWkxjN2JRdXRBdjdoeUs4akFSalI1ZFQ0Sy9paXN1ZTRmcXZyNFk0RUFPbnU2ZHZwaUloQVVjZFhNVnZybDdFclgvK0dwWTNodENOSHZJaUVva1FDMnpoRnhkbWMvNVlIN3dHamV1U1dHRUdMMWdheE13Y215Mlp1eUpDblJXanNOamlmaGMycGlzVU8zZnUvM1UvR1I1WDFyUlFWQTJaNVdmSGorN2loaDllUS9uenovT05TeTdCaU1XNC83ZDNVM2xaTFg5LytvOUVyLzBad1lZbUhObVp5R1JQRGgySHRMQk0yKzRUdTByMnNTVEV6VlNkbUFxaFpBYXFNTmtSbXNpMjBHUW0rVFl5eGIrZXA2dXVSRXFCcGhnOThtbWU0ZTg5bEdnWGRjL3Urc3VKd1NnNmg2UTd1N1pueUJSazZSWS9MbXhuK3BZbTd2aERKNHVXMlIvU1JTYnMwaVUvK2FiQy9JdU80TzdvZDNscis2R2dKbEQwR09ZZXRaL1BuSGZIc0s3UHpEL1pQNi9yVDU4Q3BjQ2ZkWjNzN0J4Vy9QdmZ5TGx6K1ltaVVNUGdGWitPNm9FSmtKT3BmOE9CSWhxbWJlYU95WFdRNzFQWjBwUmczbGczYldFRGw2NGdCQ244Yy8vZjcwY3JtM2JwZTVHVnFoMW9RVXFKeTZHaWExMDV2RU1UYXRmWC8ybi9vN1dtU1U0V0hIMzBHV3g0NzFkc1dGZlBVVGY5RWFkMERQbGFyWVpqS0ZaOXY4T3BhNVFVK0dob0NWSGQyTmw5eHRzQ1Vjb0tNeWtwOE5FUmlCRTN6TDNHL3J0ei82UkVDb1VzYjVEaml3dkpEQ3doMGZRUkorWVc4aTkzQUpSTXBOejFPUTVOcFRUYncwYzdXdmpCZ2pHRTI3SlowMURQZ2NlY1QwNThFUjFaV3pGRGRqeGN5MmdqcDJ3eXl0Z3pXZmJ1RmxDYU9IWks4WkRtSjFtcDBmcWdIelhYSXVOa203Y3R1c3hKNjROK3pDWjEwTWsyVEhqOGxUaTMvSStMWnhjbDJGaGhjZXVWYnVhT2xyeTlFczU2TlFjT0xBV2Z0a3NnRHpqc0RxV2lLejYyWnk3ZFBtSlMxbjVPOWhtZjI4YVJZNnFZTTZxQlBHOEVTd3FtRnJSdzFyVE52TFp4RXRXZGZnenJxMm1ZSVlUQXNpeE0weVFRQ09CME9ORGREbktOT242Wit3VGlZNEZBTURQTElEZFdUaWd4a1VnNFJDS1pJQ2NuQjh1eWJEeGlyK000STJzM0pWV2JkOVpLdVZTV21wTEp1L3VqdW81NzJrd2E2NnZaMmZZMDQ3SWZwZWkyU0hkem5LRU9UZmJoYk8vNVdFcEFzUWpIdlB4eFlRc09Tb25IZG9DaTRIVzdDSnNPVUZ3MnUrYUE4eWd4cFU1SDIyanFIRm5FTXVwQUdMU0VTL0MweFNtVTI3dUw1TlBIaWlTSlJJTGhUclUwVFpQYzNCd0t5a3BvWC9nTWN1eDRIT1ZqY0U2WVJHVHRLdHIrK1FTRjExMUVyaXVNYVJscEhYUWhCSWJ1NHFiUC84bTBrK2VqVEp5R2pPNVdtR3RaQ0xjSGErdFdUbmpxbnhpNmExZjMxRFRXcVE4Y2JaY2dzU1NLejhubURUYlpaenBrd3JzUEhjRnNweE9Cb0F0Mm5xbzdtT1Ywb0tjaHBCekt5SkRVMXNwK0VoTVVtRFFXZnY0WHVPNENrenR1dEgzOXAxK0hBQWtDYVFMZkVvbXVDcXBiNDBRVEptNkhhcytiRU4wNW5XSzM5ZTBTR0tyU2Q2SHUwb3JRd0hMR0tzUW8vdzRBelpFc3FBeWxYWFJyZHJVVk53MEVxYzRTUXNFVTJkU1FSMDFTOHVhR09HeW9vdlR4alV6WC9zMzg2Y1VjTW04czQyY1ZVcGdUZ3B3QWluY1g2WnFNeFViR2VaS2tJRHRCSUpEZ21tdmVBU0FRU0FDaTE5NVVGSUZwSmxtd3dHWkxldTY1TlNpS0M5UHMrVDVkU1l6SS9mNGljVnF2Q2ZjNjRsdzU4eU5jSHlkSVNFak1OZm5MMW1Ob0N2dlRrR00ySTdhcHBLdDhobjhrREl0WDN0M0pvWE9MbURucEFtNS9RZkxEcnowL1pCbmNOZHc2VENqV1diTE96bDQ3ZXJvZjkxN2tPSW1VRVhYbldDZnpPMHhLWXhhSlZOdStqSVNreHFWdzExam5ydmZ1Unh0cFE3WTI0RnJGSFJhL3FyRVRUYlk1ZEhiazZHa0ptcisrOFA2dzN1ZEovZDJocHVKYmNEaHFWaVpOZjM2VXpyZmZUMFVCaHpaVW9XSkprNVpFRytQY3BkdzY1Vm91S0Q4ZFdnSTBQZjQ0MDYrNEdGeTJBelQ5NUxOcGV1aHhwcDkzRHM4ZitWZWVxM3FWMzI1NmtPM1JhckwxVEJTUlhuR21UQXJNR2hXelZSc0NvZkQrY0J6bEFLZDJONDlBU2hSTjQ2VG1ISTU1M3U1YzRwUVEwV1F2VUc3MzJrNExpTVVrTWlxUkhhQzZvZWl1TUVaRWtLbUE3cFg4QXg4ZGJSbHNyN1pZdjhsa3pUcUQxUnNUckY0WFplUEdqYnVBUjNPNGpYZDc3OFRpeVJHYVc0aEp3WGZYVGVTeDJrTCtPR1VIUi9zNk9lZklDbjcrSk9pNkI2L1hRTkVFSFozdzVxdGIrTU41bjRNTFBxcnhjOU9tY2F4dTk0T2V0TEhzM1MvdXk0UnBjMkhXSVpDVGp5VUVNVk1Pbzh4TlFiSm1LMG5Ia1JpTUlxUHFBOXdmdlV6R1U3K2crZG9ITWR1YU1BODVoYVFFMTRwRm9EbjZER2orN3pXOU02UU5CQysrdDRhMVcydTU3SXg1VENyTlRadkE1WWZmc1VrS2Jydm5yOE82WGpkZWFvUHhqdnc4TE5WQ2FucEt4dzN2Z1pVU1VCVzJOd2JBeXFPdXJZcFF1SVpWOVd2NGZJT0NLbkk0MUZyT29US1hqa1FZRERjN0dtcEFWWWVlSUorVEE1ZGRCaFVWdHAwL2V2VFE3NWZlWnJ3RUZBZnNESFJIRDJ5eTNRUXNTRldKUHJjRkZPZXVwSUJ1ZXlpVkxHREZGZlJNayt0blA4eTNhLzZNKzFlTjFLek9JaWwxdk80SVJTZUcySGpPd2Z6YXZKVzNWeDREQnFoT0Uwc3FOcG53SG1OcjI5YitiWGhERUVpNEVkaEtQWkFJc3IyOWlZU1cvb1FxcWVJZGp3NlB6OVk1dWJBM21YQnNUWmlXWDFaak5DY1JyalRJaEczREVaWXRzNG1mTlEwbVRMREpoQ01SMkxiTkpra0poZXozN2E4QVFWcSt0VVJSRmNLZFVaNS9jejF6cHhWejVnbDJTN1hLNmpZKy9Idzc0YzRvaWx2dm5vYUpWdCtkeWF4T1NIYklrY0VwQkpnaFFkT1R0dDFsaGZhOUVFM3VvMHU0cnJhQS82WXg4Zm5oYmFyRFdMc293V3NsQ0NzT0h2QWR3ak41OHpEZTFMR2UrVHZTdFBhbTVYSDM4UHpsMFYwN1ZUaVJ3VmVJcW9maGNCYWdLVkVNeTAwaTNvVGIvQnpoT3dOa2ZHQTVQODYyaTArZnYzMVlwK0hWRkZlclVBVlNGV2dTcnYzV1JCNTl2cEpnSUdrL0x3V0tJNGwwcHVUdWJ2blFpWXF4TkZXT3dUVzZBdCtCeTNDTnJ1eWZ2UzJWREsyTlBvcXNTMTdBRTY0azByS05qTW1uNGlxYWdlS3dDU0E2QSswNG5TNWNUbmY2c2hGSlVpaVlRdUhvMXUzY1ZQOGxrOEpOUkl5aExXRFJBOE84Y1ZQeDlmRVRDdWdJeFNuTnl5QVVUZUQzdTRuR2t4Um1lWWpFRFRKOExycy9nOGRKM0xRSWVxUG8zaXpLTEFVcGREcWkrWXp6bUVpaGtFaWFlNEpqdGtsMjFobDRqcHlQVWxLY3NvTTFscld0NXBjYjd1Zk51Zy9RRlFWZFVZbW5FVkNxZitBZmZRcGwzNkd6eVRob0pwR04yK244WUltdGtJWWl5OVFCL0JWTGtDaVViS01UY3NlUnpPcTB5WVRWd1gyY21sdnZHdERnY2MyZXlqRW5uVVZTS0x6NmFSWExObjJHc2cvSitadjkwT2FFWSt2Z3Bja0svb3UrUnZGNUR0U2kzTFR3ekc2aURTSEFsRmlaQ3ZsVFRlcVhyU0gwNlJmNDVrL0ZVblF3b3paQlFKcTR3czcyck41blE3RXdveDVxZzltVWxRZVp0blliaG1HUk42dU51dG9zNnR0eVVEMFJyQUdDRTVkZmZ2bXdIb3NubnJBTEVnYnVsQzNSL1ZOSUduYkJ0TU0vaFhnOGtaWTliQWxZV2VMbTBZT3lXRFhLYmVObHhyN2pXNnBwb2x0SkxCU0NtelBZR2g3UHRzSUpiRDU4RWpzbWpLTStwNmdYZ2JBbnZodUJzQkJZb25meTNranRCeVdyOS90VVRDSTRPU3l3Z1g4dnY0T1ZmcnVVWm03bk52TE5Ua0paTGh5WWZhdSs1cjZ3ZVVrOHFiTm8vWFR5ZlVHcTI3TlRRVlBSL2JxVWtueHZpRVhycHhOUDZnaWxiOXJVaDI3OTJoNTdWK0hlZjN6RzB2VzFZRW5HRkdmeXV4dE9vQ0RIbTFZeXp0OS8xcldUUkMrY21XNE11bmZEQUNGQXR5UnJKeDJFVUJTY3lWaWZCTkRweGhLa0JKd0txM1lFdWZvUkRaZldpUkdQWWFobEJHSVNOQ3V0NURleG15OHd2ZENEQkZiWGhkSk9uTHQzUWgvb2xtVnlTdk42cG9VYitWZmhYQ3E4ZWVrM3NkbTRlRVR0UGtXTVRJTHlOZDgvZ2F2UG5zbWMxaDJFL3ZVbzcxVkZlQ3Bhd0N0Vkp1SHFXczQ4Y1ZxM0dBOEhJeno3MTQ5NTZkV1ZYSHpob1Z4MzJaV2MwN3Fkazk3NW1NWFpjWjZiV3NSalQvZTBSVWdxRUlQWkJSM2NNbU1iRjQ2cFF5Z1dSbGdqN3l4YjVobWRnalBLNmptOXBKRm5LMGJ4MjNVVFdOMlVCVUtoVjNuQ3ZmZjIzSnhkVEE3MklZRWxTK0JaT3htZUN5K0VlZk42dnQ2OUNidkFoaHZUbXlpL3hIOVZqQ2t5eG0wNWNaa2R5dVN0T3E4SUdjcUF6VmRjcHgvZjh3a05aSTFFSmdUU3REQTJia1lhTmhsVTR1VkphRk1uSTFRRkhCTEhQRUd2UnUxUGJ4Z1VnMU1FNU9ScG5IZXFCNUg2UFlsS1BBMWZTVlY4L2ZxaFJ0ekVKSTVxZ1NzSWthUk52cVFxQXpUWXNXemk5ZmoyYWxBVXpGaVErUFpxdFB3Y3lNL3A4MCtNcGxhaUt6ZVFxS3hERE5KdzZab3Jad3pyZWZqZHlQYUQ2UWw1TmdKTGdRbHc2QWtLQjQ1V01DS3lPMUhjQ2tubXpsQTRkSzVpRXdvUGtrTmc0ejZTNlpNTCtQTWxZN3BBZGdSMnJtbTdwWUJsa1lmQXI2WW4yVjYrWlg2UHgxY2NQWVlyamg2ejl4REE3VVBURjEza0JWR3k4VGxkdERiTjRjc3RHVXljOUFadDV0UlVZVmQ2aHJmVDRXYjZ0RU9KSmlOa1pPYmhkMmZoZG5pUWFSTUt5MVJDM3g1eFJXa1Njbmg1NFpVT0JCcE5pZzgxWlRlSUhyNFpXUDNRbGNrUjJGNUNDTEpVamNhd3dhT3hSZ0lMMnJqeGVwMkREaTRDY3p4UlpyRFJPNWIzTzUyODA5TEswdGJ0dElmcndZeWtFdFdkS0s1TUpBTVhiS09xeUdpTXpzY2Z3akY1QmxuWC9JQmt4WFljMDJmak92UW9ZcXVXRHVvTGpGUXNOeWFIZ3E2bHZ4TFoyZjEzUFJkQ0VPeU1jZXY3dHQvdTEyTVVGQTVzcDBXalhldlcvenlwU2NuQlM4STlpdFBsYm8yZUJockdmbWp3TzZ4anhneityNHhObFdFQ1lZT24zNjYzOTNUWVlGTmxtRmtUZlBzT3FSb0cxcGNyVVh4dWhKaytucG93Ky9jM05hZWtkSXlIZU1wUExCdmpRWE9hSk5LSThZNFV2aE9KUlBhdy93VUp5NkRVazB2eCtIbW9pb0ttYUdRNGJCOTNjbFlKWHQyTkZUZUlHdEYrUzdzYXI3Z0NKVHM3UllCS0QwTGhMcnREdUZ3Z0JKMFBQYlRMNXR5RGZCZ2hrTUZkUlZpSkc3N2Q2N1BjcWtCNyt6MlNXM2JndWZ3Q3dqNC9scGtteWNlMzNoMWhlOFN5djR1cWdpWHArTjNEdFAzc1hyUXhwWlM4OHdMdTQ0L1loUTIrOEFqUmR5K2orZHFmVWpYdVNITHV1Sm1zSDExai82MXA5cEQxcHkyQTgwK0VVNDRBZkRwdmRHVHg1SmJkaUlTRjdQYmhJNWJDdTUxWmZCYnljVmhHa012em16bjU1SFpPbkova3JjWHdyMFh3MmtlNy9MK0FVMkhaS0ozWHByaFpPc3BCeUprS3ppYUhOMzlIejgzQ08yMDh3VFdiKzN6ZE8yMDhlbTdXd1BwaTFPZytOWTJDUk5jMFRxM2FpZTYwNHlLbklpZ3ZINHZMc0p2LzlMazk2aXI3VjJrS0VGZUlQcG1IK3hzdGlLN1lXcVlrK2xTZTNWRmJHempHNCs5Qk1TVVFwaVNwcTVRKzhqUDBYRDlqY3ZOcGJtdERDRUZlZGpZVnJjMFVQZkl6RWtkZGdwNE1wNnljM2gvZzl6anhlZTBHMlIxQk95OHN5MmZyMHFFOGxoS0M0VjB5ekxRTXZ2ZjhkVng2MEpYTUtaM0dGN1ZmTW4yN2o2Ky9rNlM4MWtISTdhUXpSNkJhYWNySWNHWHFXTmh2dm14ME8xY2tLM24ydDQxVW02ZHd3cG01TFBuMFBYWldWR09ZZ2d3di9QZ2FEMWROekNUOHFJZHRTMVUwajBSejk5MGo4WHZ6djlPSERXVFo1N0JRSUlvVmhnUW9yL3EwVHp2a2swOFdNMzc4R0U2Wlc4eDNTMmJ3amRieDRIV2dXMG1Tb1U2Y0JYbGt6enVJcXFwS3FxcHFPT0tJK2YzaUxSTlVKNWU2c2psZXo4QXJGQ3pEMk9kQ3NIVGltM1M1N0c1NCtuT05wNWVZSERLMUdrWEFGeHNFV0JxNFpZK1VoMHdScFZodG83OFNISUdCZ2NibnlSbXB4aDNLUHBFSko1SUdpejdkeUZuSHo2R3NLQnVBNm9aMkZuMjZrVVF5amR6ZVBYSXU3S1lpQ2gzeElEc0M5UnlTTlo3M0cxWXp5cG5KdlB5cHRFVTdhWXNHeUhINWtLa0NyN1RzQlNSSlZBcUpjR3J1cjNCN0hNUVNkajVhUWI2RFU5Mi9aa1hrSUJyeG9DUDduWThSS3lxUTRBUWlTTFF1S0ZnQkl5YVlkWHFZZU5oQlo0VUx0OHNpMmFteC9rVUhXWGttZ1JxTnRmL0t4SXphaFV5enp3cmp6ZDFsUHpTL09NTDZzNC9SMXRyR1UwODhpWm13YmU5bm52NG5NNlpOSjY4Z2Y5Qy92V2RsKzdEZXkwV3BuNmU4MnpnaTMxVW9JMVBRa1gzV2hPRmRrNWZUaXh2N0RGalFJcnQvVDNjVTNiTC9DSVc3em91bXdOeXB1OWhyclhTVFdSTVdFZ05pdlNXdmJJZ0FrdkREWVR0MGIzVVZob3FlWFk2U3dyNUc0cXNqME9qUUJldTlnbmhTMmJ0OEVxbGd4Y0dsdEhQTytBcXVPOXBpNnF5ajJNQmgvSENkeG9lUFZiQm0weklTd1podDQ3cDBsRXlYVGZRcjZiY0dvaXVNbFhrTTVOOEVqaEpvdUF2YVhySnZVd1Y4S1o3ejVzY2dVUU5WTjBQT1dURHFUc2o3RGpUZkI4RVAyQytFckZGSDcyK2dDaGR0VnBUZmJma2pSK1RQcDl4dlkzKzFnUXArdCtXUFJMVTRib2VMeUVDTm9BWEUxbWFRMk83QmlndFVuNG5SNklCaEZoa1NRRkdwN216anhmWExPR25pVE5ZMDJFVG5zNHJLZUd2cldxbzcyMEJSaDFpc0xKQWsrUGxTbmZaNGhOTnk2OWtSMC9FaU9TQzNpdnVXbC9QQUdrZXFFcXIvRFhqTjdhOVpnS0lvZ3VKOEg1UEc1TkxjSG1ianRtWU13NklnMThzZE45a2I0dWYzdlVkVFd4aE5WU2dwOURPK1BJZUdsaENiZDdSMEVha00rQldXUjNNWkh3cnhuZHd0WEptempacWtCNEJTUFlJdUxCNXVuY1R5YUM2OXF3M1R0ODEyWWJRZ3BVQW9KanViRkg3WnRpREZyaDFEYVB0bjd3Sk1IdDA2OGg4aWVqL3hSYzA2SnVTV01xdHdQS3NhdHZZbXV1bG5TeVFjKzE5V09oeGVKb3lhUklFM0IybEovTm41YUdhYXRtTWZmdlZ3WU5uVjdaTHNnZ0FYRmk0bDF2NGVHeHNieUE0VThFVk9rcCtiSFZUcVhqd09IK2xxbUZpa0lRVkxLNWl4QktZaE9lUGNlZHc1MlVuZXd3OVM4K2xxMUp3c2hKRkV0blZTZHQ0WmZISGQ0ZHphc1lnTlh5eEhPSDBJcDI2VENmY1ZaMG5JWFY5VU0zbWtiVHlQMUJUQ3dTR3VybmFBSXdzOG9NYk10UHlKd2I2WEkzODB6dktaeERyc0lubG4rUXdjK2FQM2FSL01LNXZCK054U1Z0WnRKbUVtT1czS2tlaXF4dXI2clYrWkhqL20zdlZwUmpaZ0tNcGpwT29LUmlxZmZuZlptbTNHbUd1MDZQL3dqSzE4UEhmbWIzQVgxbUhHN0dSRU13cEdxRzgyRmlIWVhOSEtEYjk4QXdsc3Jtalp0MEp5a1VhTnlnajQvN3ZybU4wQmdWMG1WL3E1eWlhU3BOZzNaYlNqWlpEYVM4TWtaRW5Va21LVURBY092dUorWkh0Zzl0MzU0cHJHVXZWY1ZnWGppTTBDWFJvRW9uTTRVcnVBQ1VMRlNqVVhIK2plVlZYbHNjY2U0eTkvK1F0dnYyMVROQjE2MkdIY2ZQUE5uSDdxcVd4THhybWdzNHFmdUF1NHhKTkZ5R1VSV0tQaG4yWVNyMVozZFV6ZC9VT3NKVmpSVXByLzlpNk45OTVQdkxvR0xTY0h6ZVZDcGpCNnNRLzdyYzhkcU90OHR0WW1iTDNqZjM3SStUKzdra1JuRzJnNkpKTzQvZGxZUWhCUEpucmpMQ05rM0loNEFsVUlMTlBDS2NFSWgzQTRYSVN6eGpFdVZNRWtWeFZ6eTlycDNLcnpidjFVR3FKK0NyVm15bHpOWERsckRhYWF4U2YxWjVGVU0zcG9tS0hFM2RGTjFsYjdTREthakNhZGFOaERwdUZIdzR1aG1qMkxKbE80Y3pndU9lUDJNRzQzT053Q2doWkd4R0xlSEE4L20xdkoxNW9EV09yUFNTZ09uQU90NGJYWDJ0dEJ3TElTQjQ4YzVHWEZLSWNkaVRhR3o5ZVVFdEJnUXhNY01VK2hla29OQzU2OWgzQVNna2ZYNFo0dDhmNDZ0U1p5NkRLek5aYkxhNVduY1hEK1VqeGF6eGpXcXBZNWZOb3dQNjFMUGZsV3hSQ00wL1J2VkFqeC95UFc0QUhnL3BodDI2cUtRTWFTeER1Q2FJWWdHWTFoSnBNb2xvSVZpR0JHWWtRMEZUTk5uZTRhWmxhSnJrcjY2YzVOKzBsOVdEUUYyK3k0WHBjOXJOaXhpVVEwWkFjM1ZJMm9vdHBreS8yZHM2U0QwMmJhUk1KT2RST1BmZUhqMWZWak1DMUIxbDRRQ1hlTnNlT2kvR2JDQmpwdmIwVlB6R1RVWGZNeDVoMUEyNmg4Vmh0aHRqYXRaK09yTDdLMXNZS0tqZ2JxUXUyRVl5RTdCMXFtaU9sVmJkZS8zZVZaZFFTK2FJYWFDSWJzbllxM04rT1NEMi9ZUS80Sy9IcVVCdzUvbEZQTFY3SzhaVHpYZmZZL0JKTHVOQW1GcjdMMzdjUnhJd1hIRC94WTluNHNISUtXTnJ2aFlGOWt3cmFrR2htT2haR3l5Y09xQTVBb3FvNFJObmhzd2p6K2Rtd3VINGE4V0VMaGlLTnZ3Vjg2bm81dFNUU0hLNlZ4QjIrQkUwbU9ERzc2ajQwZGV5eU1oZEM5SkVKdWttMUpKdFF1SStaTG9palEycm1SeWc2Sk1tWWlqMjhJWXNWRHUvaGtocmhYTW5YQlR3KzFIMmZxdzJPbFdaYWROLy9ocGxCcWo4bTBlV2ZrQURrcmxnR3hPa25yQjdiY2l0Vkp6S2lWbnB0a09KRnFIRGx4RWZHeEg0R3JrL3FRQTZ1akZXVWZ2clUvSlBqVEpVbitlSEVTVjdNWEtmYklENUY5cUh3NU9DaHowZTFmREdJSGdNQ2Qrb2p0U0xrdHJmdU5tTVZrWmI3RHdlMXhvbHNMT1l5ZDVCUmJmTDQ2d2JVL2ZaUlZxNnNnTXp1Vlc1TCtQT3laNzRPMCtPYXMxTmxPbWtTTUliN2U3YlNBTUFSbEd6WWpoVUtvV3VGa2x3T0hackZ3MVFvNkplaFNjdGR2ZjhNaDgrZlRWbGZIeGx1K1Q5UGZIOGZ0ZEZPOHNRS2xKbzZha0tDTDlPVms2bjkyaWJMQ3g1VkZITnpoUTN5eUJFdEs2b05aZkxUVEJDSHRPcEc5OUk4dGFkTm8xYWZtVDNFcFh6VzMrYkNNOHA5dTc5Zm12VTRWZkVzZG1obWJsL3JwVE9YY0RQZjRmT2ZuSXpnYkZtaHU2blord1AzWHZNMmNjYTFzMkpTTEl1em1hN3Q2Q1VoMkwvTVJUZkNONDFkaW1QRG9lN1BaVWI4ci8xNVRCZk1udWZqUllkbk1iWFlTK2NUQ0RLVTI3TDdHYVNSMFNrSEZPQWNCVlNjcVlxaEpDUTZSZ20rR3o0YzJObXpHK2JVVFNTNWJSWExGYWp5WFg0UTZialRtOWdxTTladS8rbzBzRkl3dE96QnI2bkNmZWhLeGQ5N0hiRzVGcUNyU01vbTlzWWpFSjU5aE5yV2s2b1QzWW02a1JFalFpL0xaOGRzSE9PT0tDL2p3bFZjNTU4cHYwbFJkd3l0UFBjMEpWWlVzZk9CTzhtOS9nTWJscTNFVjVpT1R5VjV5cGk5ZEtGSllZRkxxSEZPd2lQV0IyWlM3S3lqM1ZQQlI4M0cweFBPSkdCNGNTcUtYRFR1RHVyMnlPd2M5RVJKQ2xtQytQODczWEMxc1dkak1lUTlGYUExSU5CVk1TNUEwNE1DSmt2LzlYamExc3kvbDZ6VlgwaExKUjlFaVNBU1c3TDNSWitSVmpNZzJxSEQwLzcwYkdxcDQ0cW0vYzl4eHg1RzU0SENlZmU5OWx0VlhFdGNIZ0hCVDVyUVlSSjRObDdPdktMYnRXdE9lWUZhSm0wVWJRcGlXNUxXMVFSSW1IRHJXelliNkdOR2t4S21KZm1HeWticmZvNyt4YURkOGVIY1NWdEZWYkxCM09JRnoveEtmUzBDb0xvSWRPMmlwK3h0S1dDSExNNDkxU3hlVG5WdkN1SEVUMDdyT29Sa2RYSnBiUzZkcCs3aVg1dFp5YUVaSFduK3I3eG1oa3BEbmQ2TXBrc2FtRGpUUjg4UTJOblZRbE9jbXorK2dxVFhjYXhHVFE3U1pKQUxoU1BMcUoyVzh1NnFZb3lmYXpiTWYyRnhFT09CQWVPTGROYlpkWTNKQkJpZE55cWM4TjR1eHhXTlkrdG1MZkxudVBTYVp5OUZHUlludHROL3ZITlZJSWhJaTJuWVFmazF5M093eGxPZjZhT3lNTURvcmZkdEF4Z1Nva3ZpV0ZGbWRLdTNuaGpEKy9GeUN5MDUxOE5SdFR0NWRiWEhwaGh5U2g1VERHZGxvMGtLbW1TdHU3bmw2QnZzYkliQnE2MG04L0FhT1UwOEVBWW1YMzhDcXJSK3hobGhEd1dkZG1zRmg1VFhkWk1JQWlwRE1IMU5OaGpQT0kwc09valhzNlpkenNKY3ZNYXozSjFFVWhaS1NFdUx4T0VZaVFXdG5BSDlIQTBkTjJZVGhFa2doY0FZVHlJNTZXanVMMExId2VyMlVsSlNnS0VvcTEzUFhQS3VLallWSjRQekRWSDU4UlNadk9zWncrZXBTRXBZQzhTQVRTc1p5L2Z5djRYZDRNZVhBMlpqZit0M2V0OC9vU3Mvdm10b3VkM1QzcVRZTmswK1dmOG96Ny82VTByekYrRFAyVFVacVE3cEJJWkZDRUJjbVNvYXRWY05XQXFIYWdqNmRXeEZJWmt4OUE5MDVpK3JhZzVCUml6SFRsakpxNG5iaUcvVzkwaFhEZld5RUVCaVd4Ylp0MnhDakNsRHpDekFzazJSekUwWnJDOExyUVI4OUJoSUp0b2FyTVN3VG9lbURKbWdMS1VscU9sbkJOcTcvNEc4VVgvdFlIM2N2cWYvTExUUUcyMGo2ZkFqVEhENVh4cElvYnJYNzk2RW9ScCtpWUNJWm8ydXNUTEduajlFMU1oV0ZkUHF4alpRcUYvMEFMSllKWng5cGN4aTFkTURVc2JDekZpSXBWTDgvYzc4djBGVlhCYSt2Yk9XSUtabWNPQ3NicFo4cTlLNW5QOW5VUVN4cDRYVXF2VWdTbmwvUk1xaUMySFdsOXIwT2VrcUVUVUluYlRVbE1GSUV3eXFta2tPTnpLUEdnTGRYaDJIMWFzcUpNY3Z4RXZNbmVUaHkzcTd1MlpFNzdobHh4V05aZ2hkZjNOaHRBdldwYUUyNy84bHp6M1c5ejltckFCWGdpckgzRGV1OWRabTI5MzkreWg0VExNajBCRG01ZEEwVFpNd3Vzb2w0ZVh6bEFuYTBGTm1NVlFPT0ovOGp3SjVRS01IcWpjMG9Bc2FXbmNzakh5cTBCUGF1RzdZaTROempNZ2ltRXBUUFBTNkR4RjZJTDB1QVlzSjZuOExKY3ozOGJHZWNBNEoyeEdxRlQrUE9zVTdXK3hRVWsvMVBMRHRJa1hObDNNSE91S05ieHFRcitVWjM3QitpUTJrWWRMNzVIazBQUFU1MDdhYTlJaE1HNkVnR2NDa09iaHgzT1QrY2VSTitkRnFlWGtqdEhmY1MzN0tWeGo4OGd2OFl1NUF4OE1GaW9sdTNVditIaHluNStmZTU0Tkx6T2FYOEZPNVorMGYrWHZrdm9sWTRmVm12cFA3OWw0YlNwWlFFTmJQNzloTU1MaXBTdlBBOTlxQ01DanVHS2lFWkZDU0VKTU1MQjgxU09laGdEWVFUSStLaHBkbGljNFhGMFdmWWV1ZUdqOHFIRzE0QjRHZjN2enVpeDAxekpsZ2Q4SExNMHBsYzMxRFBIK2R1NTdFYlh1S2I5NTVHTE9ZRVJlRE9Wdm5MalM4eHZyeU9HNWVONS81cXU0TzA1a3hneUQxc2xIRlQ0S0FqWVBRRVVIVTdRRDJzQ1VZQ3JDUkprWS9obVUwbmwyQzF0R0tNUFlxa3F4RHRUOWVSOS9jZkVDMmRTdlM3RDZFYUNlU3E5eEJXRjhsR3ozdTV0bkg1SHRpbWdubkVVV3lyS1dGTFZUUG5IVEdKbzZ2WGtxeXJTY3VSL0dIcVo2dC8xb2lzbXhtTjJwMVIzTmJ3TnFUZjdSd0pwOGFXeWlhMlZVNWg3SmdLNmpzczZ1cGE4R2FzeEtYbXNIcXJIeUUvcHlncmwzWGIvV3l1YkVRNHRiMHZwUFQ1aHQxSnR5UUliWmV0YVVyQUFjL3RUTDNCMFp0TUdHd2lZWFE0YWZvSC9GajlEVk9mV1VyRG9neGFvdm5vU3BLeU9jMUVMeW5pdDZVLzVvRXQzeUxlcWFNNHJkVDErbzhPYXYyUnV3dWI5SGYzTkVXQlFCVUtXcHJZZVJlWnNFT0Z2ODNVT2F0NER6Smh0MHA4VTRTV082c3g2cE1JbDBMYUxHT3JWc0g1NTl2clUxZ0lUejBGczJiWlpNS1hYUWFOamZZRWQzVDh4K2tFMnkvVGFXc1A4OTdIV3lEVk9SckRCRld4eVlSM213ZXp2eWpSWG5haVRQdk14UVh4S3JYN3M0VGpxNTAzUlJuZWFPdEl4MjRyTmQrSVhIZXhzNXg3TXc1am82TUVJbEhZWWhPbjc2dXNtbkhEb2g2NFRTS3BjOWlrNTZsdXlhYWgzVTlSZG9DeXZIWSszeklhaC81cTJnWGRULzVpZUh2TVp2OTlsL3pzQW1WZmVMdVdhTXdFWlpmZXQrU3VqZ0k5MXRvVkF5bUlWWXdsVmpFVzEvanQrQThaT0luRFRFUlkyUkJrMnBTVEtKdjdqWjRXVWZWV05tMVp6WUxEVDBuYnJoVlNFbFYxc28wbzMyeFl5WVZOYTNHYkJtSFZpWkl1U3BkeUlmVHlrZG0vVzNZMFUxamdaK0hiNittTUpqaGdTaEZabVc2ZWUyTXRDZFBpa0ZtbEtNQWJIMjVCVlFTSEgxaE9lMU1ESDIzY1FJYmJ4WlNEczFpMXFZbk5GVzE5MUhiWkdLSmo1b3h1NmRZYWIrZStMWC9qa1cxUDA1SHN4Sy83N0tMYmJuS3dRU3pUSC8rK3R6VXBvZXluMTVKeDBFeEN5OWRUK2RNLzJCMWVoMUd2Q3lsdHJqUkxEc21tYlBuclAvcVh2WlpKemtWbmszZkIyY1NFd2tlUHZNc1RMMzltSTloN2FWaFhaY0FUa3lXWGJSYmtyb3lqcmRoTXNyQVlQRTVVZjhhZ2N5Sjh1Nk5OWUpwTmpQWEh5SnFZUzU0STBUNnFEalV2Q1E1N1R0SytOVmR2RE1oRWdtN3hXZjFFL2x4Z01qLzNJK0pvL0NWNUFwL1dUNFJNQzFNTVhBTHk0SU1QRHV0NTZDSVV2dnJxcXdkR3ZLMEVScnc5NWNka0l4UkhXZ2JUVzVOOVBIVkFGdFZaK3JBQ3FHMytiRGFQbnN5YWlUUFpPbm9pdGJtakNIb3pzQlFWUFpuc1FTQ01FRWhCbndUQysycy9ZUGJ0RnlwSVFxb2J2eG5obE5ZdmJieFNjUkZVM2FpbU5iVENZeUdSaHNZQkU3WXhvYkNSeDk4NUFlbUpRTXJHa0tZS0VRL0hIZjRaMnhvTFdieHBDc0xaT3hnS29HdTliV2kxQjJZczBEUUZUUjM1enB3U2NCc0pRTnByT0J5K0hZSzJnSkV5QXQxMlp3aGw2QTBtSk5BYU5ZYUFrdGxqd2crKzJVTjNtaExlV3RGQStTc3RqSXUwOEVIWkhDYWZ0WUR4T1U3UzJnV3YvbXhFMTZBbU1HcVlyMmhqT1ErY1dVYjczeDdrODA2TGgyT2pXRmpoSlZMWEJzSUF0NGFxN1dvbW9hb0taSHVKeFEwZS9kTTdQUDNzRXI1NXhaSGNlczMxSEwvbVMrYSt2SWpIdXV4cUlLWW9sSmNIdVhQY0ppNlpVSXRxbVpoeEhlbFVVRDBTTTJJdnRwb3RNYVNHaU1ORjA2djUrc3c2bnQ1V3dzOTJUQ0dtS0QzMTlBMjdKZVNIdzlEV0JpVWx1eEtnL1g1WXVORCsvWVFUYkwvTmRwQ2d0dFp1N09QMTdyckdqV21TZGhSYWFNWDJPVDdDU29vSnlSaHpzekxsMzNaa2lZcXd2Z3RiM0dQNEgvcGwzNXRXQ0dRMFR2Qm52d1hUVG5UVEQ1cUw3ODViRUc1bktnbW1qd3MrYlhmSXZ1NlR3Z0Z0d2JhQVJKOWlQNzUzSitTMERoWmZhK2kyRWZxWGI0QVVkSlJZNUc4UktBZ3NNZkRmZFArdHk0RVFDZ2cvN1F2Zkp2ZktjM0ZPSEwyYjNTUkJLQWhWb2VWdkMwbldOS0ptK3BDVzdQdGtweEtvZkZNLzRMOTZOQUlka0gyd1FGWHNXamtsNVlOTENib0MyUm1ETzVjQ2lZV0NLZzErdWVwK3ZEOEswMndvcUtuSXY0b2dLNTVJMlE4TzJycjIxeUNpN2JJL2Y3a2JYa2FQNXFmN0QrOEdkSU9mTHpuRDNpdXF3aStXWFE2NkhjK1JhV3NLS01ndjYvRnMzRWl2aWlrcEZCQWFodXpucEt1U2RZbmMxTzhtcHRUNndBWnNvQzRwUmw1bnUxVVZLNTdnMWJaNlZrK01jUFpOeFp4NTlwRWt0Um04MlZyRWU1MG1IN2JVczZaOUdjbFlNOGdrcUJxSzRrQ29HVGFKc0pTWU1rMUVRNXBrWHZZZHZDZWVUdmpObHdpKytFK2NzdzlHOFdUc0l1dE1HOHNhdmxqdVNJMkJQMHVpcVlKOGovMGVVd3FNWVNxQ2xidmJnUCt2RnZRL2ZrZ0pjeWY1K2NIRk9zKythK3ZZSDF3OGh0RkY3cDU1cm5zTkZBZ2M0VGlPY0h4SUYvdnVXOWNPS2k3RFlUdjEwN3RWaC9UcWkwWU0zN24rK3V2NzBYdGl0MlE4MlEyVkNMRTdTWG4vSTlobEt3NnFPWWFtOTc1VDYrdDFqVE1QS09IOGNkdWdvWWtkMCtkdzk4b09BdUU0L3hFMTNTbjdPZnJPSnpSZjkxT01uVFhrM1BsOW15aFlFU21pWUtVTFNNSjkvQkdVYi9xQWpyc2ZwdTFuOXhENCszUGtQM2dYN2hPTzdJbHYzQVdabVlJUEEzNyt1SDBVSHdReUNlOUJKTHdIOEVYRVVuaXZNNHN2UWo2TzhYZnkzZUo2TGo2OWs5T09rdVNrTHIraVdPZjU2UjRXajNZUWNDb00yUUVjd3RCOFhvb3VPNTNPSld1STdxenBxV2ZIbGxKMDJlbG9QdS9Bc09wZmIrOFhrMU15TXpuMGlZVzRVemtmaDE3NWRSS1huMGVzc3hQUlg1SDIxNzQ1OEliVkpXYWRUdWozaFdoamJMdlBxSEJBWEFGOThJVDY5MzJUZXpvVXBvWGw4NkxjK1JyUlVJaTFiamRHcWdCRjAzVmkwU2p1akF5czNGa293WER2Sm9UQktnQnV1ZjlkeWtxeUVRS3FxdHNBS0MvTmdhRThMc3RCU3FpdTNVVzY2ZERjQktKdDNQUEJMWGpGTkl6QXBlakp5VHg4akVIVXFhQlljbWlFRUgreUd3NFZ1dzF1SzZtblpIVTFOLzYrZy9XMWZ0NTk2eWFPTys0NGpqcHFBVHNycXBsM29NYXZyOHBnYm9XZnFsODRpWGVBN3JQbnVEL3o2Y25xUGc4aHc4V3laeGdHLy9qSFAxaTRjQ0Z6NXN6bHJydnU1S0h2SE1DMy92QVp3WTRRU1NISThEdTU5enZ6eU1wMDhkaGpML0wyVzI5eHdRVVhjTmxsbDZGcFBlM1g0eDArcm5CbE0wMTE5WFJGOXFmc2tpQWNFaWt0dmx5ZCtseTNoZWlqWUdXMU1aWkd5dzhpMlUrT3BrajVEaEtiOWlzOThpOWxnQ1AzL21jYnVlVjNMM0RXY2JNQmVPbTkxYnovMmNZQlE2cldIdktYUFhTTnorWGpxamxuMDI1R2FWanlBTG5PREI0OThMdTBra3lSK2dxRXFnNWxDbEVFUkl3a2QzZmVnWWxuVjJOaFEwRk5SSWlJSklvWXVYemJnY2JVN0FSdlgxQk5VZ3FLVlFOVkcwdXVGQ2dlbmZFNUJrV2pMS1FWcy9Oemt3S2hnbEFrMHJUM2dFamxkVGw5SnI3TVhkK2c0THdUaC9kR24vNGRBTzlVTCsvSExCT0V3Mkd5RGh2UGdjVXFpaUxJR1RPR1Q5czM0VWxVRHhyVEtZMllJeksvMndKSi9xdUczUCs3VUFKNUNVbEIzUDVzNnlzNkMwTys2YUhhTlhNeWJRb0JoOUkzS1lGZ0Y0dUsycy9uQ0NCaG9jM0poSmUvbXE4dVpGZitvK3hKY3BYbXlGS2pIRCs5azNNUEVuanlEK2Y1aGpMZWZDakt4cTFMSVJRQVhRT1hBeVhMa3lJUmxuWWprRUdHOTBESXZ3SDhaMFA0WGRoMkVzUmI3ZFFjYVlLaWdXTjhhbnExVkFoRWhkYVhJUFFKbFAwRnhyd0lnUmVoK1g1Zytjak80OCtmN0sxSGhLSmlSZ1RaQjh5bDdKUXhKTCt3YjZMczBBTzVlL2xjMmxjc1FmVm9mV0xBNSsvMmUzUjlSb3JOenQ0ektoWmlsQnhtVVdFNzFGRWp5VnRiMXJLdHRZbXRMYmJQUFRHdmlHMnRqVVNOcEkyOXk2SFZyZ2doa0xya0Qrc3krYWRTekpFZVFjVFMrS0IrRkZIcEJ0MUlFUThQNEJ0WHRFb0FYVk5JSmsxbVRTN0U1M0d5bzZhZGFNd2dGRTBRUzVIUDc2aHBwNjR4aU5PaFlscVNXVk9LOExoMHRsZTNrVXoyYk5yU2wzRmhvUEJjWURRN2tobWNsVm5ORkdjbkFsZ2F5K1dsempLV1JuUHRIREFoaDFFRUNSUk5JbVhRdmo5TjJhL2kyeHIyUkg3WjcxUEtidlp2VlhzRFQ2MThBNy9UaTBQUlNCako3ald4QnBETi96alhQYnkzKzFCNjMwbDNlTWpOMzVYZ1kwV2phYWtQNStUSkk3SnVaWDRuTTZzOWROeXlIY1dsTURsYnhYMlZ4dVJMRCtEaGhJVlhVUmxLSlA3bzQyd1NLTE1qaks4MGo5c3ZPcGhMcXRmUWVmTlROQVNqNkFXNUpOcmJ5Y290eFBtTDY3aDN2dVQzYXg0bUdReWl1ck13cFdrM2QrbHZuKzNSaTFjUkJuS0NGMldxejlZTGNSTXNNSWZvRzIwTlZmUUQ1a3NTWjExSmRKVGRpTUo5eUJsMHVDM283LzNweEFkMEoyV1poVGhVbldneWprdHpEQm5qR3U1UjBScExSOXNQMmRnWnFicUNrY3FuUndnYzA4ZVQvWTNUVWZPeU9QcVZENTJlRHpkYzRtOU5XQXV6WW5kTWo3WFdiSExtb21JU0ZRcG1QNnVXU0pvc1cxZjdmeXBXWUFGQ2hRK3FiRXhMcUNPZmM5dGpqZlgrZlcxRjJHZmVxYW1RVEFKMk0xd3JHcU16MWRBbTgrempVZHlwTGxQN1kwMVVwVSt6SHVDQ0kvT0pjaUVmcjJyRU1DMk9QN0NZOCtmYkpFT0tOamltWUZrVzk5NTdMenQzMm9VR3VxN3o2YWVmc21MRkN1S0dnUUlrcE1VdklnMnNOcVBjNWkzRXB5b0VLeTEwb1NJTmUvMTJQODdCVDRMVS92UnFncCt0UVBWbG9CZmtJNU5HTjVud0NCZ05xRzR2SDZ6Nm5HZmVmWkdMamorYk4rNTVsai8rK3k5VXR6UXlhK3hrM0E0blQ3M3ovSDQ5UTUxMzNvYm1VekVOQTZkSEo5eVNSQ3M5R2dwbXNUN2plSjVwa3hSdnFXZGFkak16OHR1b2JuUGhkNXNvbG9WTUdHd0tsNk1ta3pqTkVLYXE3VFVacGlsZy9jNGkyRnBpTzFtS0NaclZ5OCt5Sk9BUUxOdGhZcVZ5cHJFVWNuTVVmblN1aCt1KzVzRHJuSVZrRmdyZ0dsUzQydkdwMXlhN2Vld0FMNVZaNm9nNDRUSWxRNXFDc0tyV1JCd1NvV3JSWC9uNkRnRmpKWjQvbWJnQ2U2VjJiRHRjYWp5NTlSc1VlUnE0Y1B5ejVMcGFTVm82YTFwbjhjdVZQMkZyWUdKNlNuZEllWDcvTHk0ODFQSGNMNjlJelp6RVZEVnkyK3JaK2RMREpQVWlORzhPbFMvL2hibGo1dkh2KzY5SDZXNnUxUDg0NzlnLzJMWkg5TVZodmMrZmROdWcrOEhYMldYWVVKeFhTSkV2RjhNeWRoRjZDc2gwZTZucmJLR3lyV0hBcXkvNjFoMlVaSzdsVHgvN2VHR05UU1NjN2RsN0l1RnVtMmxLTFRVVitieXk0RkNxeG1Xd0pkck10aVYvb2JxcGhsQ3czU1lPRnRqQWlxcUJvaUZVSFVWM3BQeDEyUjBuN29FSmJPaUFMMXVoZlhpSmIxdGp2bDVuTldtcEpGSkVUd2xUb3pXZVFURGg0YjhBZGV3WHNoV2E4cFhBdHlObGsvOTkyNys2emVpa2FaSGQ2R0Q3a2FleXNERVh5NVRNS08xazV1S1htTmNSeFpFRzd0RVZ2YjN1K1owak1nK1pqajMxaFFMQ1FFNDRncnJHamF4b3JHVml4bXAwUmVHekxSSE0vRmtVVGpnWVpCeGMybDZMa05FWk1OWm5Kd2xhRm4zbTNRL2RoQldzcjR1emFJTk5LRnlTcGFNcUlpME10dUNrSXdmVWtzNUNpM2lWdlE4eVowaGMrWVBRQWI5aU43Mng4cmFRblBRbVZ2Wk9STklOQ1M4T1JZSno3K2F1eS9QOTgwVkovbnhoZ3B5QVFLaDlvQjVpYU9xK3F5M3c5dHJRaU95empJeTVLRWVHS1o3NUdvbFFHNW5GMlR6NTNqUysvNXYzYVcxdFI4OXlZdzZobVgyWEwzZmRkZGYxOFRXN1dvbklmdFp6NE5jQjRwMEtDVnhNMjdFS0NVUndFVTdBZkNDanM1bm5TTEFkeVlmUHZNVzBvTWFPZSs2aFpmSGJhQ0tMVUZ3eXBtb1RZOWxBZk9CMkdJTmd5Ukt3dVBlNWVuejVIYmJmMHh4RmVCUklrMForRUpjR2tiSVgveStRQ1FPWUdmMS9FUWV3dHp5UFAvcnh0NGYxUGkrNDRLVTlBT0lSUVNFQWNPbE8vckR3V05wRFRseTZnVkFraXBBb2lyUkxhUlNyKzdIWWphaTZORGRBdmkvS2pwcGROM25lMkF5dUs4cWtmSVZHSkdBTkQ1RXd1OXpFc0NtbzltdUVWVWxtUktLWWUrOVQ5VDhVak0zYlNMejdNYTV6VHNlcXFjT3Nya1dhSnRISC9vbXhkZnRJTDB3YVN5Y3c2eG9JL3Y1Ky9MZmVUT1lkUHlYNnhqdklRQUNqc2hxenVoYXJ1WFY0TUR2RHhGVlN4STRuLzgzVXlsbysvUHVUblBPVEg3SnA2WEpXZmJTWW8rdXU0dVVISG1IeVk2OVFzZkJWbk1XRlE3VHpCRTRsVG9ZYVpIWEhnV3dPVGlObXV2bXlkVDV1TmRLbmp5Ukg4RWpjV0JqZzVJWkc3cit6blgrK1orYzVPSFJJSk8zN3VQRTh5ZGUvTlp0SDFKdDRhdXNKSUV4VVBZSXBsYjF5aS9abFBQSXJwWDkwV3laeHV2NUtsdkVCd3F0d3dQU3QzUC96QkVMMGI1dDg4d2UyZk5UOTN2MW00K3VxWUdsbGxBS2Z4bUhqUEd4c2lMT3RPY0hNVVM2YVF3WmZWa1RSVlRHZ0xUeFM5L3Y4L1VjUDYvWE9QZWFyUVZac3JsNEwxZUZIa3lYZ200SExuU0NoZUhDNW5HbmRrVVJRb01XNU9MZVc3MVRPUkFLUGpGNUxnUlpQeXovN2VXUkZiMGxiSzFEcUJhZjN3LzJsclZTd0xObTd1U3J3czczYWJ3TFZHeWVhaERkWGxObmYyeGxIOWNZd3JkNW5xU1RMeTdselBXaXF3c3d4TTltMi9ST3M5dVVveFZQeDVuNEEwazdBOU9abUlyd0gwYnp6WFE0dE9ZQWpwcFNocXdvbE9Sa1VaM2xSMDJtc0lrRXJORWxXYUxRLzdMZnQ0cE1qYUlVbWljN0JhNTQ5YnNFM1RuZHkzQXo0Wkwza2lqZXppQjQ0R2s3TFJwVVNNNVN3OGR1UndwK0Z3R3B1c1FuM1UrdHBiTnFLMWR6eTFjZU5CR3h2eldGNWJUSEhUOWhwMnpFQVFxSklTVzJubjJEYzJTK1pjSCsreFBCTm5UMC8rZm41QkFJQjhuSnpxR3Z2b0czTFJveWdEeXRtNTZRa1loNVVDNG9LQ2lqT3lxU2xyWTM4L1B3ZTEraTJkUzNJOUFoK2ZhbVR1Y2NVY0d2OU9CYnR5QVlTWU1hNDhMQVQrUDVCRjdCNFVaalB0cmJoMEpXdklrMnVlenp4NGhQOCtwMWZzOTNZaGxLeDc1aVB4clk3MDk1MXNnL25jV2g2VzJKWkt2aWlUQjYzaExLQ2RmYWh6QWlESDZKVzBlQ0UzUHRCTDBocGIveHRXN2F3S1Q4Yjc3RkhFSTdGa2RFb1NJbGVOZ2F2b3JHcGZqdGJxTEtOaFRSWFFwZ20wdWVqNnZsRldIZmRSOGxQdjR0cDJNaU5xcW5VM25VZk5jOHZ3cEdiTlRDWjhCRFdqWDdXTGQzaEZJS0RuVTVVWUp1YVpISE1obEFPY2pxWm9PbVlnR01RNGVXL2NHVFdiYUN1UDc5OUVpYU5CcThMMW02SGJCOWNmaHA4dUF5V2JVekZ6ZEpqd2NhaEN2NzJmajJkWVlQeWZDZVJ1TVdvYkFkRldRNHlQUnFHYVJjaWJxNkw4UEhHVGh4YTMrRENvRGlhbEh0cENmOUZERFpQM1FURGZXeUNLcUFxQWErdEE5YnRCdUs4OE5vSW5iSWZqc2grYUUza2o1RDJzWHB0Q2xYSVhqcGJFWlpOUXBKbXN0OUgzMW82TXZKcyszVnBYN2Q1Snl4YU9qd2Zxd0ZIVEhkMS83NjNJWjNkU1lVdm5PVW1POVZadnQyUjZuTHdWWkFKcHdPZTlmUDc0TjkzLzN3Wm9hcjRGaHlPY0Rob2VmUVpnaDkvdmxmSTVZa0ZSM0RMdE91WTY1OUtmUGs2TnY3a0RrTHZmSUxxZHVNb0tDSlozMGh6aWlCTDhkclBtZlZON0x6OFJwci84Vy9HL2ZKbjNISGdEemhuOU5mNDdZWUhlWmJWLzVWZzZkeVc5U095Y080eGpTTnkzYWMyNWczekZTc0ErUGZiNjBaMG5nMHBVRFVUU3dyK1hGSENhODNaUEhMMEZqYlBmb1JYUHh1UGxIRGE0ZHVveWs0dzhkMkRxQWg3RUxxQklpUkdYNFVLT3pZSmRveFFwMkFwUUppWW5ueENmSXRJN0VneTMzNmNST3d0Wkc0Sjd2ZWZRT2dPMUdpUWpKV0xTTjU3SmJKMFlvL2k2ajFINHRubjlqakhDaUl2SDBpQk90RW95VVh2a0ZpMU90VnRPRDM5RTQ2TlRKRlMyZlZYamNqKzNkMnFVaENZbVB6cFh4dDU1TGJaZUxSVzVoWk53NjJjanE1cE5FYzdjUGxiTWMxQ0hsaTRHcHVLVmVtUjRDejc4eXUyYllPSkUvZjlobThmM083ZEcydHZZdmxPZmxENFI4Nzg3RjhFbnBQc2FMRHRucnlpRG53WEtyeCsrTVg4cXU2SDdGaFdEaHFvTHRNbUVoN2t3NjRwN2IvaGhaSVVUUExrSXFYTmtqUFpFK1Bxa2xZc3ZmK0wzdGh0RjlscVJsWGdvZWthRjVVcUpGSThaRmdTNFZKSWJJL1Jja2NOeWFvNHdxMm1UeVlNa0VoQVU5TnVBc1BZOWJPeDBmNjN2OGNRZkRScm1IMjJrVVZKK1kvSWw3bXE1Y3RodmQ0akkzeS9wMXoxeEloYzkxdDE3d29ZL3NUN2xzYk9ubExLME5qaGlOTVJDakIvL0hvKzMxNUdJaFNuczZrVE5JTjBvWmsvUG5mQU1OL3BtL2FQbmVlS3J2TlN2USs1UHJGYWlIMDhNRDdrZG1jd2M4SU0xcTFiVEpYWHg4Ungwd0RCMWgwYmlFVER6SnArQ0c2M3QxY0hzMTR5RlltSklLN3FIQmlxNDZhYUx6ZzRXRXRNMFlncEdvcTA5cUxsNThqczM0ZnVPTFBIRjltVGNubnhQM3MrL3ZDcFBkN3crRUE2VUdJaFViRkJtWC9Wdk1adk5qN0EybzZOWkdnWlpPcCtUR2tPVFdmdWljbDFGYTd1M2tOYXlxR2pxQTk4Tk9CR2Z5SDFEMjRkb3ZPc0RvQWIwbzB6U3FSTjhLY3FlMDhvblBKUFh5MkRuVjQ0Tm00Z2E1dFJ4NDFITDhoTEt4aFIvWmVzSG5PZFRRdWFwdUZTV2hBQzhwZTMwU2FkdEE5QzlMdHJkQUR3NCtwMytsVTlVa0o0aXd1ZmtvOGJsWEZXaUIrb0g5a2tSUDFjOWRlcG54NlBaMFRPeFpOUGpreHpxRjk5dmtrd0FzMnlKM1VzRW5Rc1lyaGQ3cEhhRDVQYTZrWWNITEdrQUVlQ3ozYU1ZL0hXaVJ4MzRISzJOK2RUMFd6YjFhUHptNW1ZMzh6amk0OUFVVTF3SkxvN2J1NnY4ZkF4SlNQemdYc1pTOWhuTjFsQ1pWdHN5SDkzelZFbFBlV1loSWJtY0xlSTl6cFZ6anNnbjBQS005SzYzclVqL0QxdmZ2L253M3pGODJ6YllkYU1BZGZ0MHN2djNQWGc4Z1U5WG91M3dNTS9zdi90T1VLYXlzR05uYnp5eG5MS25ERzJoL3c0eGxxb1FoTGJhZXNvMTFnVEJNUjI3SHBzU2crSm5RcW5aYlF5Sjc2YzFrWUhvYjUwV2pRS0w3OE1uM3hpRngvTm1MRWJpNXpzcWJ1bGhQWHI0Y0VINGFpajRLeXp3RDNFWXU3ZFZLU2xRSkhMNUlhSjdXSjJWbHpldHlXYmo1czlJbUdLWGlwUCtBYllQN3FHMFBWZGpZUjFIZUgzSWx5RGQwWitjbk5XZWo1VzE2aFBVNjRURW9PQ0RCL3ZCZkJnMmRSTlF0ZElWdFpSYzhOZGxEMThPNDR4UGM5aDJ6OWVwZmtQVHlJY090SWN2RUhYR3l0ZTVMOTZTQ0FLMjFkTFFsSEk4S1JxVVFYb0tnU1RzTjB2b1F5STJPOGwybnZlRldsaDZsNXUzdmcwUjM5NVA3V1dBeTBWUDVMZCtJbGRUaHBNRmN1bkk3Q1hiKy9ZdzNqNjc5VVhNczNuK2hyenpEWlVLWEVNa0s3ZUpTTDY0OWNXUUFMQlFWWTd6NmFlTzZCOVM5L3o4RTdxMzk1T2J6REFlemtlOHE0L2tXc3VuVW1ESjQ5THQ0VDR1TG1hNnRCNlNIYmE4VVZWUjlVZGdOTW15aG1JQmEvZnMyMGhIRTdDNzcxR2ZPTktZaXUreEtpdHNjLzZ6bTBJcHl1TitOREl4SEs1ZCs2SVhMZXg4ZHIvcXFyTjkrNTc5ZjlWbVFKTlZ6M2E1enc4eU9NOHlGVjdmZDJPVVA5Rk13VTVEZ3B6SE9pcElydTVrM3hJb0RNOGVLSE5TTVVHbjE0ek9JN1laY3NNQmRvWUtYem5zY2NlRzVIOUlOSklHQjNTQXFUazNMc3JxM3NwbXNuNTdoU1dCNjJCS0Irc3FhVWpFUDJQSVB0SWJxdWcvV2YzRW56MlJUTE9QNU5SN3orSFZscVVjbzVNdTdsYzkxQzduOHU2OVJveUxqdWIxcHZ2cE83RWkvQmRlRGJaZDM2Lys1MjVSNUpDVlRwVC85SWZZZUMxMUw4OXg1VWIxZ3MyN0wvNXlUbitVQ2I4NW52VVBQZ2NrYTAyTU95Wk9KYlNheThnNS9oREIvMzdrOSs2dnMvelpSZ0dKZm1qOFdVbnVXVmJNUUw0VFZFOXdmZFdVdHRjaWFacGU1ZWdLUUZOZ2lGSWJuU2wvQXVaRnBrd3dBWGp2OW56V2wyVjM1c2pDRVZGV2wyZEwyemJYaWlLVFNxWFB3T0tsTjROVVZhbGpKa2xQeGQ3Y3VsV2ZibHZqKzFiaktBcFh2ekpxekFDeDZOSkx5MlpNVUFNM3BkOWdQRlUzaVkrZktLSjd6MFJ4N0FnTDFkbDBhSTMyYnExa21Dd2srOSt5OE1QNXZ2aDMxNjJ2cWVoT0NXNk53MFQ2cFhMUnV6UVN5blJOSTNxNm1wS1NrcW9xYWxtNGNMbitmcDU1ekt4UEl0Rnkrb0FPT0dnVVJ3d01ZK1hYbnFKaG9ZRzVzNmRTM056YzJyUDlZdzV2Sk1JaW5jU3dhOGNOMHJYaHE4KzgxUlJ2WS9YN1d0Y0ZlNC9LQ1RESVA2OWxTV3Z2UUtBUHhybjBrR2FCblRGQzZQMy9MRmYzVk1nRklLUlpsNXcrdGdScWFQNjdUc3BkMlZqU0l1SVpRNFlHL3JMUWY5ZFRGTCtFemVNeVAxVy91YXZJM0svNTcvMXZ3UGFUNHFpWUpYYndrQ3g2bmo0azhWcHlmTVJ5MHNjb2V2K3o2clBSK1RLMi85bjBWZXlmM2ZYR2NwWG5hZXc2SncrNStESmQrSEozL1M1ZTRESzFMOEJmSXYvWFR0OGMvc3kvN1hqaWlNVjRyS2NYeS94c21aSEZJS3JiVHZKN1VETnpyRGpwVlo2Sk1LN2p3bkxFVndCWExISEMxMzRrQUVjMXM5cnJjQzUrM2NlVHYyOEQ1eGRVWkNkNEQxK0FmSFhGaEg0a1Mzdi9IZi9naE55RmhEK2VBa2lVeGt3WDJCU3hZcSs5MW5sS3ZpOHQxK1h3Q1p5K2VIZWlEZWhFRWtrZUgvYmVqUWhPSHkwblgrM3RIbzc3MjliVHlTUnNHM1ZnVFQrSDQ0WEE5a0hqY0RDdmJBaHVocUNtcVpGYTBjVWFVbDhYZ2RsUlpsc3IycERWWGJGRDFSRm9Lb0NvK3U5VXBMcGMxRlM2S2VxcnJPSFRaRTlBSTZ3S1pqTjc1c3pjU3YyZTZLV1JrSXErSVZKZjlubDdYdHBtM1ZKbnE5cTNOVXdaWml2dUxISDJxb1NqdDFoTVNyWXUxVGVrblVJNElnOXpDMEpUR21XcUgyNFhaOGU0aGplMjMxb1pPZTM0TnRYajR3dVZpVnRhekxBVUJHR1JjNTFWZVJmdlprU3VXUzNmSnVoajZOT25NTWQ4L0tZOXV3L3FIdnRFOGowby9yY21FMnRsQjYzZ0MwLy9CcTM4U21MUC8wSU5BK3F5OXNqUDZqZmNkMTdvcTg5djYvY1NSY3N1WDVnTUc1TTZweTNQZ1l0anc1K3dWOHY2N1ZlOWNBQnQrM2pPZm54aTMzdWc2ZDRtYWY0N2o3WXB1bHVyNkZ0dzVHcUt4aXBmSHJoZEpCeCtoSDRMamtONGRCUjgzT1l2WGFyUzYzYWVya3VwUHRmL3ZFL1B6bTRjK2VMZWJOUkUwSDRZcmQ5cy81L1IrU01hck9iL21QeVJtUWFPbmRpVTIzUDZ6WUQ5dzRQdHRLLzdyUHpENnp1empiMm5yYkNVWnJ1L2l0SWllL0UrU2dldDcySDk0TnJYdityKy9xZFJVVlJPRXZBek1Zd0FoaVg4Tkx3cVV3MThSVnB6Y1ZubjMzVy9Yank1TWs0SEE1V3JGaGgrNzJwR21nRndRdnhUdFlZTVg2WFVjek11SnMyeTdUVER2ZVlUdit4SiszNjRHQVRCTmxQUTNEdHZiY1FqSVM0N09TdmMvUUJSOURVM3N3N1MvKy85czQ4UHM2cTNPUGY4eTZ6Sm1tV0ptM1QwSjIxZ0JWRmFSV3dJb2lDUUZIeGdnc0lGN2l5eVNLSzBJcFF1YkxJSWhkUXVGemdzaWpMQlVzRkJXVlRrQlphNkU1TG11NUprMmFmTExPKzczdnVIKzhrM2JMTXBEUHBURGkvenllZnpFd3k3N3h6em5PZTdUem45L3lEWHp4OEszRXJnV2FZYVRXaTJCZkUzbndPNXdTM25OUHBCbnVOd0F3Vk1MRjhFcllqYVRHTzV1a093UlJhR2V0dkk0eVhjQ1JBekFrUWltb0lYYWZBMGFtaUUxdHF5Uk5XWkhYZlhTQVIwb0hDSUVKSXpqNDZ4cnd6RFE2WkFzUmoyR0dKbHFhSCtNdEZLN0pTdjdpN0hBTWVlR2t0ck5pUjRQQlA2NXdhaGluMzI1aTE3SFBkUTJPa2dwcyt1SkdYdDU3Q2dhUFcweGt2WkduVFo2bnBtSlpTRXpPRjdPT2JzNC9jL1FYcllONzc2VzhvL054RWdvZCtpcTMzL0phanZuVUJNdytjbnRaMXowd3N6ZWg5OWhBSzMvdnVoQXlQd0paK1BTMlpsTktnMTQvdDJNa1NPNGt0YlE0c244RG9ZREZiV3JidnRIbDk0S1RUMzB3S2VqUGc1dEJiTTNEWGw4eC9hRWordzZDKytxdjEyVm1ZZlp6cEYreXlWeVo2bmt0eTRvRFVFTzNGWUhjK1BVdVo2R3o1NU45di9tQzNPTVhaa2NCb1c4T00yV2VSMEUyKzl1ZW5zWnVhMFR5ZWxBb21lblpYSDN1L01TdlRadmZacTlmQ01ncVordG16T2NiWHdiYVBQOENPNjV6dzFlbDg0SlRUTGcwTWFlMlRUVExFenBCZHo5QU1KMnpKUjl1anZjTWFTcVBaNHVUN2Z6Nm9uUFlzU1prS01kREMzN3V1NmROWFpVVis3L3JmNVlML2RiVmtKcUZwMlNJakExL0JGOUVLdjRCcGg3bnVycVhjL3ZBU0lJWlI0TU95SFlheTFCOTc3TEdzM083bmZ4YnFuV3QzVFVSNmN6aWZFL0R2QWhwdGlNVHZKUHFQTzVseUZCeDhMRWluZlkvM0pjOGMzSmErbnR5dHovTDJRWFJtbHZSdnZ1R2FSWWRuK0lxckFEanRqSzlrNTRZZkltdjVrcDY1WGIxcE41cWxmY0xUTlozaTZack1COXNpMmVQekFJL05OOVpIYVFsV29ac3QzT3VUeVUzdURFdXFaUkY5OWsvWW03ZGdmbllHOW81R3JLVXJpQzlkbGp6UFAvQzBIRDlNbktHUmwxL0YybHFMZDlibk1jWlhFbTlxd21sczZ2VXZNaGJiSml6ODR5cW9YN1NFNHF0MzhQcGRkL0tEQis3aTlRVUxxVjFmdzdIZm5zTlRUenpKN0RGbGJIL3d5ZDczUGZXajAxTzZpV2R6UkQ4OFZORkEreHZObkhOM0o1c2FwSnRiRWk2WjhPU3hrdi84Y1FEOXVEbWMyM0FaRzBJVEVXWVlBUU9UQ1djUjU1MDEyT2ZHY0J4WFIzM3U4TUViemZjUUNqZTk4LzZ3ZlFjTnNCeDRlWFVuMDhxOWRNVWNoSUNPU0pqMVRURnN4L1VCQjFyaDJicmZZdzRmblpYcmJqM2wzZUZQMkRoeEFvSFJCS1pmU29leGtxNHQxVXo2ekluSklzUFVia2NBbFdhVUl0M2RRNm8wb3lrcnV0UGpXd2J5bnRQKzI3d2graloyaXErNUtsUmdKQU9RQThySGMvYnNjMW0xZVNsRlZaL0NzTFpUNUhrSEVJaFJCN0xPT0o2M2RxemptcU9tWWliUHdtdENvS1Vhd0doZ04rbTAvWGNSZHF2Ny9zUTJ3eDJDRk5UTGYxL241NE9QSGM3L1N4R2RNeWJBU1dVWVFtSjFKN0FGTyt0c3N5MW05VHVJMTlYM0JBejkycUYrenl4bEo3d2dZaG04dk80Z1BMck5zWk8zWWpzYU1WdW51cm1VdHpkTkpHNXBBNXJNYk1VU3V5SVVDcEZJSkNnb0xJS0dIVlROK2lMKzZRdUl4ZUxvbW9iWDd5TWNMS0FyRnFXZzZBRHFkK3dnRkFwUlhGeThkNjdzVXpwenZ4Zms0M0VUT1dYZEJGcWpIckM3S0MwcTVUOVArVDVIaXM5dzNmVkxlZjJOOWJzbzEvM244Vjl3MWdWaXNQV1lWZzVoZUc4LzJRZmNobmpVSkJCMEQ0SGJVUjA5YU9kVWVsNFRBanVSb0syMUZXZEhBN2J1RHBYd2VMQzdPckM3b3JTVWQ0QWVSZE4wN0hTRXduSHdGQmZTZU9jREZCMTNESVhIdVljYU92KzVtTVk3SDhCVFhKaFQ3V2tFNEV1dSttbUd5V21CWU85alV3ak1IQTZDcTNleHAwMXQ4TUJ6VUZHUzNqS1dFblJkc0xrcHltMEx0K0l6Tld3SlhsUHdpMjlPNU12VFMzb040Q052TmREY2tTRGcxZExpUTh0WmFGcGUzVzZaWndjSyt4RVNEcG5neVlpZDdDRVZsZ0xhVEhkOWlTUlhzNlAyY29lTVJHTXo0V1dyaWRkdUgzSkxncWVQdVE4czJQcUxXMm02NjBHSXhUSExTcEdPZzB3a0VGNFBScEw0UXpwMjhqVXZwdDlQK1BWL3NmcWQweWkvK2lKbXpQczVmenptdjNpYSs5VEVESmN4ejRxWnlQNkN0Sk03QW9ZbndlYW9qNisrTllNZlRxdmpvUis4QndJdVhqNlZSMWFPQjhQQjhDU3dwT2g5ei9BbEVBQXZ5TGhEYk8wUkJKY3NvdkRqT3pCMmJDWjI4Z1ZFdm5rNWlVVUw4SFMyZ2NjTFJhTXgxNzBIcTkrR1FGSHFkamhaQUNCM284UVY3djlwSXExa1JWNlpGNkh2bnBEdysxaTN1WkgvdU9zamJqei9VQ1pXZGhHeElrUWtGQlo1YUdnY3cwMy9VODI2VFkwUThHTTd6b2hvQXY1UzVGUUN0emV3N2NOaUV0SWs2QTh6OXFRdTFwNTVOTCsycitQVlpiUEJBdDFyNDBqTkpSTk9BWmVPYng0Z042WlJIeWlnSGJkVDh5R0JHTE1yVzlBOC9jY3FWK3dNZVFENDdXRUc1MC9VaVZ1dXVBb0hoRjhuc1MxRzgveHR4R3NpaUtDZVF1ZU5RUnoycmk0SWg5M2ZjcVJ0MFNrQVhOVHlYa2F2bDIxQzRab3RyWGsxdnNMY1BUMGtQSkxxK2lvd2JGNnJEaENPbXpSMWxxSUZFa2hwcGhJYUFQQ3JSeitmNFR2OTYvQ09peEJJS2Ftc25FUjVlU1ZiYW11b3JkOEtVakttWWp3VHE2WmhtcDZVeUlRam1vSFB0amkvWVJubk4zeElhU0pDdCtaQklOSDRaT2d0Unpwb1FrTVhndFh0Ni9qVlIvZnlZdDJyNkVLajFGT01MWjNVRGd1bDR1eklYYjBla1ZkZVVEYWt3Ukt3dk15aG82S1FINTF6RXI3eXFwVGZ1K1YzeFFQZVkvcWoyZzdBemJXdkREQ0ZiaWZudU9ObUhUMmFoU1BGZ0lWMHYxYW1jbGlRTFhrWTd2QU5LU2p3UjRsWkppY2ZzUXFRcktpZFFOQWZCU2x3MUZTbmhEdE9tem84aXJXUEpud3loM3orMm83S3ZKbzN5eENVZHlTd1h0YW9GZ1ZvQ1NnK1BnNEMydDl5YzdzRFBXODFQWGlsdytoZ2dvVFJod2gwZDhPeVpiQnlKVlJYdy9UcC9SZGlTZW4rejhxVlVGQUFKNTZZUHFId1h2NEdlRFRKaVdPN3hiVEN1SHg0UTdGOGNrdVJhSWdhcEZWWmFraEUwa1dXaGt6ZFFLZTdLbkxGUFhFY1JNQkh4K3VMcWZuNnhaUjgrMlI4aDB6QkNZZnBmT045UW45K0UybFpDTU5JS2ViV2hEWWk5TnppRlE0TFhyWDQvbGtHSG5PbmZMendzczJpcFE1TUFBcUFSbURaM3UrM3pVSm0xUy9oeWpXUDAxazBHbFBUZThkUDdCVXpwSURtTUFBZjNYMVNadU9lZS9KemZxN2U4RkxHVnRBZmhzTnVmcTZTS1plZFJ2TWtnL3ZYYkdCSDYyS2dHM1Fkb1h2UVBRRWNlZzZHWmVEd2txWVIvMmdGc1pWTEVQNGcrdWd5dXYrMkVEUWQ0Zk9wL0puQ2lNYjVONjBjMVBUMjVIRjYvTXI5dVNJTUxZMnlyWlEwbjUyZkU1ZWxHcWs5OXpLbFRCTDZ5NTRoRlM2QmxLYWxkSDRnMi9GaTNhd3pFWWJPdUw4K1NlRGtMN24zYkZrSVhkK0RURGdKM2ZVdnBHMWpqQi9MbUdmdXAvQ0haOUYwL3JXRVo1MDU0dGEzNWpFWjgrMlRLSjQ1Zy9CR2w2bzBNT1VBdkZVVktSMEFzY1BkL2Y2dG83R1dPaG5obXVLdEFMUjJPUlIyK3lFZXc0ckY5aUdtZFowOTRaVjlKMU1HMGc5T2ZPOXJDYUJ3b0dZbkJqaUpuY0s2eTJkWldaNGZHVDBDdStNc2lFOEdyUnNwT2pGdGJaK1Y3TndyNjFpODF0VnRoaUZvYm1uajl0dC95OUdmS2VhcWI3VXpSeC9QdHBzOGRHMFhtSVZ1L0NaekpMbHo1WlZYY3ZubGw5UGUxa1k4N3NyUnB3OGN6YWNQM1Ayd1JTUVNZY1h5NVJ4NTVKRmNjODAxeXBnUGdJdTZCdTh5S1R0NzdQM2cxK3ZaTHd6UHYzV0FaZXhRSlF3YzRIQk5KMjVidExqMFJRaEZTSklTam43djJhd01WQ2plclFaWFFTR1BjYzl0VjRzUkZ0VU1DUjE5OVVxVk5sUVdFWDMzbjloM0wrKzFhYUdyNXFGL2ZnYUp5aUwzb0hhTzhOWkxKRUlUaEtKaG5sdjVIbjlmN3g2NWI0OTBneENEa3drUEEzUmQ0NkJKWlpTVkJDZ3ZEVks5dVlVTjIxcjdKRW8wRFoxREpwZFJPc3BQNlFRL2F6YzBzblg3N28xWmJubHkzYUFCdk53dGxCLzQrMStTcC9KN2N4WUpoUUYwQjc2OHdXSDJodlN1MHQvS0VDb2xtZ3l1SmNSMFBCTWpWTjIraWNJdmRXQzNneU9qTG9ITEVNZnB5YW93MXR4YjJMYTVBYk84Rkt1ams2QW53S2k1bC9MVU44cTVhZDJqZERUV293ZUtjSkRZK3psd3ErN2NPSWdnRGFIRGwwTDJ6aFZrcVo0ZTZlQ0VJOGhZSEdFYU9OMFJTRmdjSEd2M25CT3ErVGRET3I3blJrMmRlL0dPeFI4L1dQRlp6R1B1SmJINENqWFJPUXE5dUlneDExM2trdElYRjZXZUhNZ0E2dWJkTnJDM0pNSHZjZk83RytOMjhyWkVHa3RBUTBwSk1CaWt0cmFXcnE0dWhCQTR5Ynk2Uzk0b01SRFUyREcrRTlyQ0RjRXhmTmRYUXFkall5SFI5M01PUTBxSlpoaTBoN3U0K05hcnVPTVA5ekdoZkJ6MXJVMnMzYlFPZEFQTjR4M1dlaUFucGlHYklSNEhXNU00TVoxdWI2Rm85SmN6M3E5VGFPb3M3ajZBcFpxZzBnRE5GSFE3T2dGRG85M24wQnExQ0pRTFlvNmtMWm9ZQmhQdTRHZ210bG5BNGMyTG1iZjFidWFFR3BGdkdMUkhIRFNSTXlGQ2Ywc0J6WVJ0SFJCZWJCTjhBVXpIYlI2dVpjQXQ2RXdVOG1iZGJONnNtejI0WTlnWEZ2K2JTdlJsRWJidDdLWVBETVBnVXo5OWxQWk5teUdlWU1iUG5xTGd3RU94YkR1dG5LdVRKZDAyWElUQ011blhiRzl0WUh0ejNWNS9YN3BoQmVoRzNwM3hWeGl4em41V2ZQSTJZNDk2MFlBZk9xSWN2L0FSaEJDME9Sb3lNTW90REUxbnlRK2pWcGNJaEpOQUZveG1pU3lpZWVJWVFORGdNN0V4RUxhRjNFY2puVTBQYVNpM2RzdGI5NnMxa1UyNzZVaDBUVkRYMk0yUDVyM0NuLyt5R2pIS2l5YU0zV3hxcnVENWFWY05ZS3ZkNVdnS3Q2NDRJZDF1c0hMQUdxRzdsUkFNQSs1Yk15WERWM1RKT2pjLzk1SWEzR3hDQUk1REtPN0RkOXBNeHBWV3N2NkRwVGlkZFZCTUZqYllCREtlSVA3T0l1TC9TcDd0bGc1dTFYc09oVkNPSkxGc0pZbGxLK2c5VktycFdma29HYmZ3bHBiUVViY2Qvd1hYOGRMamQzTmUwU2llZWZ3SndxRU81cHgyR28vODRVbk9MTDRFZm5sbFhvclpnbC9WOGREQ0dGS0NhVUFpV1hCMjlnbVN5eTZid3ZNbGwzSFhoam5nNk9pZUxteXA3OWRkd1BiblpZcUxKejJ2NnBoSDd4MDJJWmU0aE1HT2hGWGJvMjZPQjVkMncydUlRY21FczNtLzQ3L3kvQWhUb3E2SDRpOGJoemRRc3RPZlQyT3VSaHR4emkxemExZEhHM0ZTYXhzSC9iTnFpdHdJYkZKQStaaURtQkdzd0dkNktmYjlpUGFOcFFnaDBNYWR3Vi9manRBbUQ2Q2daT2c1RmJzOUdYY21mOWx0V3NyRDhPTS9lV2llTVJrdXFNQXdKVlpud3EyWDFZWjVESVhvdTlZN0I2Ui9XNmlJdjlkTXBhcTRnL2UzamFlaHM0RGFVQkhiUXFOeUlxODhhdFFvUXFFUXExYXRRaE1DeDE5TVEwRVJVVDJLN2RnRXZRR0N1a0VpSEdIMTZ0V1VsSlF3YXRTb1BxLzE2NStPNFo2MnlUeXhxaHl3d09ya2hNT1A1bGRmUG84Vi81Qjg3YzZYQ08zb1FpL3lwU1JmZG1OK2FUdGpmMG1aMEJ5a25TU0oxSEtSNU1zMXA1SHRkWFMrL1NhUmdpS0lSbHd5R1o4ZjJkSktaRllGVkptdUZVN24vcVVFWFVOMlI5aDZ4ZlVjL09hZkFOaDZ4Zlh1Um5UUUR6a1cwUGM0RjRZUW5KZzgwRzBJa2ZPVU43dldjV2dDd2xIWVhKOE1BMlI2VStZeDNDUm1NbGVCYlVORGU0SjFkV0dhT2hPOHRhYWRmNjRONGZPTUVETGhQTVNqRzYvTzhCVWZWSU02VkdXUkRoNVkyS2NHZGZxNDlFaGNXb2RWdDJiRkFnb2hodSs2VGR0VHY0QUZ6TC9lL1ZGUVNBT1dGR2k2RGJyTm8rdXJlS1hPUFdSWEgvYWgrZUs5LzdOZjRCUFFZTU1DQy8rYVB5TmtHRHgrOEFVeGFxc0pQRFVmczNFem1KNmRCNko5QVNBSVRyb1oyazllblVwNW9uc3ZnNkFaZ3RwVjFWdzN0NDRUanA3RTFLb0FFdGhjMjhyZmwyeWl1YXViTVFFUFRqUysxNUExNWVrNFJIL1pSVnQ0TklabU1XRkdJK0h2amVXMnF1dTR2L3BDWWlFVHpldUFoNVNKaEh1Z0RSU3pzZnZHc0JDZzk3d21CL2ZEYnovRTROTEpPZ2s3U1NZc1FYZ0VpZG9ZVFRkdkk3WTJqQWpzSTVrd1FIczdYSHN0RkJWQlI0ZjdYR0hFSWUrMDM5cWI4K3FXNWFMTFJIOXVmWGdBSDMwdzJDUGdORTRQcWJCcGVwZzIrYkErOGdVRGt3a0RSSVhCd2VFV0xxOTdqeSsxYjhJU09tSGRSTnZING1keFZINHREVTFvdE1iYnVhLzZVWDVmOHdRdDhUYUt6TUtrSC9kSk9oYTZuL1NkeEpXNU5PWE9LTXB3anJMRC9kVm1CQVlmQzcySDJNbW5CQ05Ia0MxNUdQWjFaaVo0OGYyalFjamU0N3oxTGFXODJGeUc4TWFRZzhTV2crVmNsbndJWXg2L1NBbk1Kd1NheUM4SzZzKzA5dEhGOWg5cFBPODVBeFhxNXdQS3l1RENDMkhtVERqcHBJRVBOR2dhZlBXcmJzQjQrT0h1ZXpOajhwQVNKZ2NUNG9iRFdqaXFKQ3J2WFYvS3NqYXZpS2R4bmZocnJ2MHhaM3hDaE5tUmFBRS84UTNiYUxqNUFmQ1k3bDZsWTZNRi9DbVRDWThFOUh6TnBoYkovUCt5MkZZdk9mWno3aEhMZjc1djg4Z3pOazFiSlJTQm5BalU3dUxJN1RKRTVlRkdidjN3SGp4T2dyQm1vRm1ab1hDYis4d2FwWHp6RU8rOHZVUzg4L2FTZnZWV05naitSQ0NBRUVFM0oyM2JDSy9mL1RSRmdKQXlqbXhmcWc2TzVpSCs5S1pxUXB5UE9HaVlVc0M1cmdFbk55MXp4K0ZyczVWUTlCK1U0ejFnRE40RHhxVC9WbDMwS1JNQzZMVENDS0RWNitZcGhRMmRoQkc2Nkxmb3UrZUE3TmkyVlNJNzhpcjY5ZDBIK2FiN3g5LzUrUjhGL0RIajExMjgxdTZ0NjdZc054Ly92VE4wNXA0S3BhOVA0dU1GR2tJSFQySHVFQW4zRUxvVUZoWnk4Y1VYazBna09PNjQ0NUJTOXNhc1NYRkdBR2VmZlRaVlZXNFRPRjNYY1J3SFRSRUVERm02aDFJdEpVcUtCL3pNUkZJVFdFZzBCSVB1eUhkazF4ODVxcTFhK2FsRG5ld1VjUHpIMmRIcm5EdEZ6WnVDZ3NKZTBKMStyRS9DeG41M0tjTG43YldBQW9uOTdsSjBiL0sxSEFwd0pDQ0VEaHEwUjhKSi85dHdVMUU1Y0tQbHBVRk8vTUpVcGs0b3BiNnBpM0VWaFhnTXZjOHhIRk1XNUt2SFRtTmlaVEU3V3Jxb0hGT0lZV2k3a1hVY3U3WlZDUy9EUi82ZDh3YjA5Ni8yZVl1UFBmUWFqMTF3WGM3ZHJ0T3BVM0JzaUtyYk51S1pGTWRxRlFoRHNxOFJTUHZjdTdCTkUwOVpNVlo3QjJWSFRxZjUrdTl3YmNsSExGejhORWdUUFRnSzI4bU4rcUNVbTJPS0VlckNQVGhyQkh5eGZmOEtNcDZnYThFYjZJNkRWbFpNK0xYRldQVk5vR2xNaTNjWTU0UnE1bmlrNDMydWFPcjFOOWIrYy9WTmxWOVF5aitYSlVJVEZKOTlhdEpJRGErdU1VcUxCeFpWQ1ltazMyRUs5dHBYM2d2TjlYdW9JamZYZE1NTk4yQVlCdGRlZXkyNnJtUHY4VDFkNG1DSUk3bXh1NEVWVm9RYkFtTW9GRG9kT1ZDZjJVTXFqR2xTVTdlWm1pM3JYU0poZjdEMzc4TnFDd0lTTVVaZzZCSlRseVJhSlRZYWhtN1E0UWg4bWtGSlVNZWpDNklTT21JMkZVRVQyNUdVQlhSOHBrNG9adE1XalJOeHNxOVdIU05BYWF5Unl6K2F6MzlzK0IyanJVN2FrNDBYTkxMZkVERXpNZ0FZWVBwQStvSHVERGQ5VUptWDNJMTlkVzB2WWZDTkhjZllpckZJMjBLWUppQXhjb1J3WmRpNVpuUVRZWmg5eHRwUzFYY29qSENmWE45emMwOENwa0duTkpMNmc1MW5iM040T2VoQzBHV0RGSDY4QmU0WmlSYkhRWk15SlFLNGZNTy9QbDZreEI4SXZUb25LeFpEMXdSdkw5bktlZGY5bVkwMXpaZ2xBV3pId2NsUjhwb25Ydm5XNEg3Z3JtbVdRYitHSWhRZUhoV2VIWGxhUHZkV05iWlpEYXBjWjdVZ0VzZDZ2NDFPczRiQ3h1MklJd3F6WEJlOGF6UHhISzFseVVDTnpVSGJsNlNuMTl1QTJUUDNldm44Yzc3SCtYa3NaZysrR092MXd4SVdqQzRXM0hpeGp5bW5mb1VyV24vTUJ4c1BBek9DcGx0cDgxbGtBMDNYMnlObWVRUDR6SjFpYUNaektmdlRBN2pqcDUvSjZQV3UvVzR1RExhTk9icThOeitSTGkyWEFNNG8zcEdoaUNqL1VGcFE3RDd3SG9pMzhFb0VBbUVFdU9LTExjUnRod0t2bWJrUU00MEJibDdlTGxpK0RCN0x6cm1ja1JMQnQ0Yjl2THZsQUY2dm1VSlh6TXlwYlZBaEJCTW1UR0RzMkxHRVFpSGlzUmdsZmo5YUlPRG14NFRieUtpb3NwTGlVYU13VGJQZjlmdU5taVBaM3UwRExVN1E0K2VuSjUvTjE4Zk01dlpiMS9EY2k2dkJZNkFYZWJIdGtabDNNL2J2VE1yMFYvQnc2Zi9rclZuaGJxd1F4RnRhMEpKQzVDQXhiWUVWQ1lJb1FmYjJ4MGtEdG9OV0VDU3lZZzBOdDkwTFFHVEZHb3p5MFVncnQxV1RtVWRGRWJ2R1BiME55TVRRNHFGZDMrUG1LeVFQL0swT2o2NFJUVGpFTEFlZk9YQ2c4WnR2VFZaYlUxbUVKYzNzWFBqNTcrNDFiNjNBOFUvdThzSVpBRmVyU1ZCUVVGRElJcHdrcVpQaGkxTnZHYjJQOXh1UmNBOCtUTUNDQ0tMRmdZREFaUk54d0tPamIxaUcvdkVTOEFmM2NFd2NOYUVwNG8vVkwvYmxtYUZwR3BabDA3VWtucFFOd2FFNGZEdm93VWdldE96TFIvOUtubzVETEdGU1ZObE40WGNFZjVuNWZXNnR2NGFOU3llQUFiclBkaE92R1k1WlpUK3ZwYkxpYmo3STRDZFRkQ3g3bDlCUEI3dkRvdVUzZFVTWGQ2TVZab0JNR0NBZWgvZmZWNHRGUVVFaGEraEpLdTVLSHR6ek9KVU5nNisxcmVmeXV2ZVlGRzJuUy9NZ1lKL0poUE1Scis5NGgza3I3K0M5MW1VVUdRVVVtMFdLU0RnUGtLMHAwdE5pOTVEcHJGZVZlOHREZVJqMjd5RUZtdGN0Y3RqZTVuYVUxVHp4M2VKT0JRV0ZJVHRPY09DQk1IVnFhbDExQ3dyZzlOUGRJcTRNcTNCSGdsOTNtRlBWS2FZVUpPUnZxMHZrNDZuYW5aakErdERkYnpBUFRhbUNkV1RBY1JBK0Q1cmZpM1RjRFhjaGNCOS9BdjFYS1dIOUpzbjhleTBxeWx3anVLTlpFb3U3NGlvN2dGWDl1eXczTGIrUDZlMGI2RFFEYWZvK0ErT1c1ei9LcTNIODY0OW05TG00L3diOFRHbk5ySy9wM1lWYTVhUVZQaG00NGpzVE0zcTllejlRWTZxZ01HTDh1Mzc4ZWdtOWZHdzlwWXc5NllHZTkrd1BiOWhlZWE1S1V1Q0dpejE5MGdJK3dTMVhCYm53b0ZIVTN4MWt3MXFYU0RnWFhSMU4wNUJTTW5QbXpHUjhrZHhUU01yYjdyR0g1TmhqaisxOXJNaUU5OGVDR3pqeEtmYjRyYUNnb0tDZ01Cd1Fmbjh5dnlQN2VDMUgvVzBKUXRONy9ab2NnQVhJMXZZd2YzaHBKWWRPS2Nmak1kaXd0UVhMZHBMYkVrSjM3Ynl3QVpyYXdqeStZQVdIVEI2TllXcFViMnBKMWlIdW5BaGJVMTZCUXY2aTlMdU5qSnU3RlMzb1lJZGNNdUdNb0NDSUxzRHFEbFB4N1ZONC81b3ZjMW5ORTlSOVVJM3VMOFlSTW1mSWhCVVVkc2JqZ3NUV2V0cCsveXpvT2pJV1QrNkpDaVNTaVlrdS9heU9EYWNZT0w3L0tUdjA1NVFlK1NHZm1JM2p2SnRNdHo2aGgyQnJtQWtwWlFvRXhxTFhaMG9mU1YrRVJ4NTVwRGR2NVBUakU5ckp6OUlRdkJBTHNjS0tjbnR3SEVjWXZoeVpLamZScDN0OUNLOGZpZXozdS9SZ1d2TTcyV25vMWdweUhjUmpBc3NHdTBQQVJBaWFHdU9ESmgxeG14M2hCTFlqS1ErWUJEMGFsaTNwT1RyY21iQ3A3WTRSSHliU2dSTWFYbUgrNmw5d1RHZ2xIVUNiTURDRU0vUmFHM3MvMmVXZThwT2hoalVYcS9yUWtSSHdKZy80YXdLaG1VakhRWHlDOCtJU3FmcENad0lQbkwyWGZ1Z0E1dnkyNTltUzVJOUNQdmgyT3Z2Z1BPMGY4NFltUU9BZ2s3NkJLUVJTak13QVFsZDdtVm5Gdy8rM2dxdC85VGM2TzZPWXhYNHNLN2RyL29vTFEyclM4dEp1THN5S1grMUVZMnBzaDhHWDFtTTJwVnVXWUFnVEVUUlFsY0VLbVVTUG1iZHRtRDVONTNjM0ZyTnk2bm5NMlhnUjhVUVEzZE9GSXpXY0hDR1hscEVSNXdybkZINXl6aUVadlY1T0VBcUxYVWdIaDVobUNtcDJQb1VyV1lQcEtlaDlmRmpWYUtWQWM5NkZrTFJGZkx4Uk01bHd3c2pKbnFwQ0NMeGVMeFVWRmZ0MG5lMVJMK2h4S29zcWVPak1TL0ExVlBITkMxOWphMDB6V3BFUEpDT1dUQmhVamF2Q0hxaWRNQ21qMGw2MWRiT1NNUVVGaGYwV0wrMzV3bUVIQlhubWdTTTQ3S0FnZGsreGlBYk9Gb2ZJL0FUT0ZtZXZ4a2hsYXhjcFBhYWdvTEJmMERiOWlOMzBtTkEweENXWGNsV2RueGYrdnB4bnJ6K2RML3p4ZDhSWHJFeXBlMXJKbWxWS24rVXhOcDVjS1VQblRtQ2V2Sm1YMXA0SUZoaGVHMXRxeUtHRWRUZmxaekhWdmpSVEV5citWVkJRVUJpUmVMZGd4dDYyUVVvT21IY3BWVCs3a01ZbkY3THg4cHVSQ1RzbFN6Q3JhN215RndvS0NncjcwK2ZmNDRTNTdVaCsrVUkxbysrL2oxT2IxekJ2MWcvNThmVm44UG1KaGFuRkFWa21HcDkxN1RzWjNWTjU5NDR2S2p1a29LQ2dvS0Nnb0xBUGlNUXlXK0hsOStyS1A4dGphR2MrdkpzOE9CSXVPK2tncnQveUwrUjdTMWwrK1RYODRNV050SFpFVXlxT2RGNzRkeVVQQ2dvS0Nnb0tDZ281Q0psQjVsTFZ2RkpCUVVGQlFXSGtvM0RCOUl6NERwMW5yRkYrd3pBZ1cvWDAzenpzR25sMHRCR3hxeXU1eDR3S0NiVm1nVnhZT09HVnpaN2luN0Rva28vVWpDZ01aNml6UzV6UzI3QmgxOGNEd1VCZ0lmRUxqYm1CQ203b2JsQTZTMEZCUVVGQlFTR25mUEo4d3cvK1VwdlJlcFRIdjE2bC9ETUZCUVVGQlFVRkJRV0ZERUZ1N29PRFJCaGdXVkI2SXhUL0VyY2ZyYkgzdjZrNkVZVVJnR2xmZjJyUW1OVnRxNWthYXY3eVhiVXU4aEQvRHl6QmsxWEpoNWIzQUFBQUFFbEZUa1N1UW1DQyc7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2V0RmxhZ3MyWFVybCgpIHtcblx0cmV0dXJuICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBTENnQUFBQWVDQVlBQUFEU1cwSE5BQUtvNkVsRVFWUjQydXlkZDV4VTFkbkh2K2ZjZTZkdUx5ekwwbnRIUVJFcjJIdkJGcnRSWTlkWW90SEVWMk0wUlJNVFk0eTl4aElUWTR1OWR4RkJFRVNLOUE3YjY5Ujc3em52SDNkMllTbXlDd3ZNNHZ3K0g5amRtVHN6Wjg0OTV6bFAvVDJpNnNKcmRONEpSN0I2ci8zNS9STlRlT2lCOTZFMmdsR2NqWnR3ZWU2T285bnJkNzhFNEt2Lyt4T24zL0E2MGdDVkJMTm5GMDd2WjNHUldzeklRaE54N3BuMHZ2d3RhdGJXSTN3bVdtdTJHUXR2RjYzKzd2cnZOcjJwSVJWdUpNUmVlM3pINUgvK0h5b3BFS0tONDlFZ2ZMRGc5SkUwZlpXTHpISkFpVGE5ZExlNlNXS0R0OXJpaHk3TDhUSCtKLzFZbHV0cnc5VWRqTC9NRkJ0Lys3YkJBQ3doK0cxUmlJbFpmbUphSTdmd0dpVUVRVnZ4Y3Y4Y2ZyTnZWMndGcm1qSGVQOHdwZFhWUi9teTlmdkpKbHpBM1lySkV3STJ0MHgvNkxrZm5oZUJBUnppeStMTlpHT3I4WGEyL2JheVorOGR2U0xiaGU3TGw3WWE3L2NVcFBWNEIxSFRhcnhmQjBlbDlYajNpTFdXRC92Y1BEMnR4enZwOXRHdHhudmRDMHZTZXJ4M25keG5BK2wzMFE0ZHIwVFRQQUFYQWNKTS9STUlGYWU3cm1Fb2F4aERCYU1DRGorSkwyNDEzdW9oZTZmMS9CYk8vYkwxZVh6NlJNMVBmc0t5Y1JPNS9lNVpQSGJuaDBBRVEyYmhLbmorb2YwNTVkYWpBZmp2YjkvZzFJcyt3VURoWWtLWEVpNFlFZVgvL0ovUnU2dUxlOUUxRkI4N25kcktlb1F3Tm50V1NPa05RYW0yVE5YMXJjWjc0TjJMTjNwUnM1d1hRdXowK2Yzb21yNnRCM0hTczIxZUQxSm8vajN4WGs0WitSVTFMeGV6NmkrOTBFcVFkMUFOUFc5WnhMS0dJc1kvZlRQTDZvcEJkTkF5ZS9ITTF1TjlaMlZhcjE4Tzc5NTZ2UDN1MHh0cWEvbDVmbTY1Y2svUW10L2UrelVGdVFFaURTdDQ0dEtuT1hMMEhMVGF0aUVJQSs1L2UzOHVmL1QwTGQrSFJaZTNIdS9BMzdSZG54UWF2eU41K1BKSm5EcCtJU0poWVc3aDh4d3QwSDZiNXovcHowWDM3VVBDVkxpNkhmdGkvbTliWDN6WmNlbTlIdTUvZGF2MTlYR2pjL25MTFFQWWUwd3VqcXUzcU55N2N4U0pCMjNjN3hTWVd5ZHZhNGVOU092NXpKODlTMndnVzlONnZHSURvZCttOFNwTjlMdTUxUHo3RmVyZitwRGtzaFZveDBVWTBqTnl0aU5HMTg3ZmFMeXVjakNrU1d6V1hKWmY5WDgwZlBRWlJuWU9NdUJITzg3Mm5UL1RSTVVUdUkwTjVFellqeDczL0k3UXlLRTBqMm5EK2VXUEU3ZHFQVWhnUUZhTWwwYlBaVkJXYkx0OUgzTlV4UStmRDF0QUtHanl3RzBIY1BxeEE3Rk0yYllYT1E3Sk45NGpjdHVmMGJINE51bGpWUmRlcmZOT09JSlZZdy9nRDA5dW5UMThzVnJFa0NJZkJXZWZ6S3l6cjhGWlU0N3crYmJPZU44QXUxZk5ialhlNkdKTGc0RVFmaEIrd0Z6UFVhRFk4UTZjMWdqMkxtODEzdG5EZXFhMVBCczJlM21yOGI3VWZYQmFqL2ZFbGZOYTc3ZEg5a2x2ZmVIQzF2NUkrZ3pTN0RVQmV2VURJVHRrajNRbzdteHQvK2paYWVSL2FoNkpYOEJxRjk2SkkvNVFzVlg2ampsOEdQNjcvOHFyczlaeTNrMVAwOWdVSStpMytQdi8vWVJ6RGhwSzhwZS94Sm44MVhiWGQ2NS9ma0Zhcjk4L256cWcxWGlYLy8waGpSQ0VCdmFqZnRJVTdPcGFhaitiaEpBeUxjWTc3cHRQVzQxM1ZsNy9qcGxmUVl1ZlJyZEw2LzloaktoYjJPNTRCYjE2d1NlZmVEODdBc3VXd2ZqeDNzKzJUNE9IVzllTlZ3cFFHa2ltNWtkN2Rvemg4eDd2cUlXZWN1ZlFKbmZPclJ1TTl6ZHBJbkExNVB2cnVHakFQL241d0FjSnpxMm42bW1MZ1crMlBvL1o3VGE5c1EyaXlRL0hhWXo1c0Yxajh6SU96VkdSbGZ4ZjFiY0V0TnZxdWJndytGM1JTTjRNZDhkaEcyeVFHYmUwZnZGOUIyL1grVFdBNGRtQ2U0YVo3Sk12Mnp4eTFlRFMrRm9OUlRkUGJmOSsyeDUyMEFiN0tQYWJkbzdERjhJNitnR01FYWVEdE5yMEVsdTVQTGQ0TXBkKytUUlJKOUcrQVovLzVDYmlhSWV6ZXE4RCtIMnozVkRUOFhHMExmbFlOMnQrYnhpMzN2dGY3YlBMQWdZUFhMOG5weC9hcSsxMldRZjZGZmoxT2UwYWI4QlIvUHJUSlJ6emZXVzdGbUgrWVVuS3Jva2hBKzFiZmh2YXZZdUg1S1cxSHROM2JsMnI4VG96dTZUMWVEdTdYNEZodjBsdnUyeDJhNy96STkwTzBYZGxqZU43WHhtb0pDWU9Eako5eGp2bm10YnpPKzdlOUo3ZnlWZis0SHFRUXFEU3lmYmRZRDM0OXJwZjUrdzVsV0MvaFFpaFVRbC9TbVp1M3pFcklDUTk1YURhaGh3VG5FMTg1TXBmZnRpcC9lWVgvUDU1ZmRFSjR4ZzFvQlMvWmFiOWVOblpqc1UybmVZZHE1OWRyQmN6SkZkUWNQVkZNR0JBcXc5NytZTjVQUFBhVE1ZTTY4WkZwNHloS0MvVTZ2ay9QZjQ1VTJhdDV0Z0pnempudUpFYjZYRWJ6dStjaW9SK2EzNGpjeXVUbUZKZ3lqYmFkenNJOXg5WDJtcThrN0oyYS92b2xDTFFyeWZEM240TVg3Y3UzbUp5RlF2Ty9TVlZMNzZETUR0Ky9lL1ROS1AxaEY4K2ZxdG4wNVFhSjJweXk3NXIrZTJFS3Zyc1g0RUlEV2Z4L0ZuYyt1YVQvUGEvZjhmTXpzZFI3dFlQK0w1UFdvOTN4UGxiUFY1REN2eEpsNGYvZkRHbkhyNG5RZ2dNTkNoTjNTdHZzdVJuMXlJdEM2MjJQakMvWVZ5Tjg4Zm9EcEE1NERxVUZYWGp5MTg5VGxsK2x6YlpRRnNqenlhRjB6c3VzVStrdFI5RUwwcHYrU3Y2YmVDS3VEYTk4L1Q0YStzOHZlbjVBOU42dkJ2dXQ1dkMrZnF4V0FOcnQwWG03TUR6K0x2aXNmcTdmaTVUaHJyTUhLQllXcXFvemRZNGhxZFNTcjNkVmNzZlJNMUpzenUxZlBEZnVWdGFqemR4d3dibjhaaUgwbHMrVEx0NHEreUwyb1lZQjEzMkZEUG1yVm5ucUFkd0ZZZnMzWi9YL25vNkFWL0g2enNibm0rVkYveGM1MDA4aWpYajl1WDNUMzNNUXcrK0RyV05HRVc1dUVtSDUzNS9CbU52L1JVQVUyNzlJNmYvK2xta0lWQzJ4dXhSd3VsOXNybklXYzJ3SEpQd3p5L20xL1g1TkVROTNiUWpidHlEQjVaMTZycUU2MTlkbE41eHkrUDZ0WHY5S3EyWnZxeUpreDc4bGxFTHBuUHYvSmZJZGhQRXBjV04vWTdoblg1NzhhK0xoak5oWUQ2R0ZOdDEvWFk2ZjkvalAwMXZlYlpCL0dMK0VXZm9vZ3ZQSlBlSUE1R2hJSFdOQ1o1NFlUb1BQamVGK1l1cW1wMVVtNWszeFprbmorYXhuNDlqMFhFL0pibDhwZWN6NnRtZGZxOCt5UVYvbjh5ekwweUh6ZDBIcFVFSUJnMG80Y0pqaDNCU2RpUEpmLzZMK01JbDVCNDJucUlMVGlkcjNKajI2MmNDdEFQQnZwNU9GRnRzSU16MVBCZmIrbnc3OUxOdDlrZEZvM0RwcGZEY2MyRGIzbU9XQmFlZkRnODhBS0ZRaCs2My8zelN4YjF2UWI2WVZoTVV0Z2FSWnN0M1EvMWhtK2JYZG9pLytCWU52N2g5bzMwdmdnRnkvbkl6Z1pPT2hHM3d5MjA0djUzTnZ0aVcrZFd1NitWMVNibFJYb3hXQ3BUeTZuc01vOFBtdDdQNWZ6dmJlbWp2ZUdWQVUzWk5qUHpEa20wV0pnckJzK1hkdUh6aGNLS3FuV3ZqaXRibkcvM3YyR1RlaUE4NGZOeDh2cHpkZzZxNkxKQnFzK0pkQ28yd1RjYU9YSXJ0R0h3enV3ZmE1NkEyVTk4aEJPQkl1blpwWU15QTFiejc1VUFjb1ZHYm1vQ0ZON1o2Y1BCZFIrbXV1ZS9qS2hjaDBzK20vL1NpMWw4aSs1eVhONXEyM1hybDhlelB4MUphRUdUR2tqck91dmNyVnRmR2Q4cDRHNSthMkRGNTNqYVkzYnR3V2orTGkvUmlSaFVhaUhQUDJueStCcUNWWEZldmI2aTJPVFkyc0MrT2ZHQ0dib2Rzd1ZHS0d3L3B4Zjc5OGhBQ2pDMzRURjJ0MFJvK1cxVEhIZTh2dzVTeVhYYlNXNWZ1MXVvRFB1MnpyNjRTdnZTS0dRTW1paUtkNUlBbFgyeWIvQlhRODZZbytZY24wVHRnZTI2WS96RG9nREY2bjU4ZVJWT2ZJRk9yNXJPOHFRTGxPcDdRRVdrdzUrZS8xYW56WVRwYlhTNi8rQ2E5N2MyLzdMN2Q4Z3gxU3JhSkRsVDVOc3JyN2YxRWVzL3Ywdk5halhmYTBBUFNlcnhqNW55NlRmcDZOT255OCtlKzV0bkp5OXE4a0FTYU13ZDh4dC8zZlpTUTJiNThUN0VIYVpFbnU3WHJ0OHNqN1lzZkN3VDNIZmd6VHVvM3JuMGZQT2Q5ZVAxMzdhN2pFVGUyWGcrMm85SjZmaTJ6dFRQc202SmhhVDNlRGVzRzlVTmowbnY5WGp5dFUrZnZkRFo3dnQ4VEU5SjZ2SXZPKzdqVmVPV0pqN1pwdklYWkFaNjllano3TnE2azRzcWJjV3ZyOGZYclJaZUgvOHlqQzJOYy8rUmtFcmJxOFBHcWwzN1dlb0g4L2JEMnhTL01BQTlNdUlMVEJ4MklKZHZtZDlTT1ErMmI3N0xpOWoraDJobS9HRDM3cTliNmVuQ2dGdUVRd3BEa1h2TXo4bTY0TlBVWkxrSUthRWQ5bTVOWTQ5a3cvdEoyVEtCQ0s0MHdQYjlQM1owUFVILzNvMmhYb1NOUitzWTI4RTkrdTg1Y1RXckI2M1VGM0wyMmxDOGJzMUZhYnY5a0FpMlFRck4zVmlOWGQxM05zZmsxK0lSdThRT0prYTNQNDhlemUrai9KT3I0MUk0UTB5b3RSZkMyNkdjN2ZMQ2RQRDkxYlg1Njg1SjByVzFkcDJ1TS9HZGFqOWY5OXR5T09ZOVQ3NkpqQXR5VVloM1U2SmhBdVNBc2tDR0ZEbWhFZE92OUxodWV4OWM4TmtKZjFidUpYamsyMkJKWGc1RkdRVGl4endaMW1ZOGZxWGZVcHZFTHpkNVpUZHpjYlExanJFWSttSlRnZHc5SG1EblB3VlZ0MjIveStLZlNldjJxLzUzVC9ueU5WUDZ1N0tEYTgvYTgzMGJ5ZDNDUlpyK2UwRFVydlJMWG0vR0h6enAxdmhFdlQ5RWVxNDlpM2M4MHdzU3huZG9lcXU3ZVA3MTVKRmUyNWttNDZPdjAxczhlM2tPMHF4N1N5eW9VTzArSjI2RCtUWDA0UkF1cHdhZEFpOWJxcGJMWUtLaXROTnBSaUtDWDIrUWxOSGVRVnRyOFBzclRTWFFDNU1Gek41Qy9sL3pnSjFsb1RtaFl3NFYxSzdCMmd2MXg0QVk4dnAzTnYrNitVNWpXNHpVT3IrN1V2TGlQNzViZTR6MS9SdXZ4cmlHOTEwTXByZGZESjRQUzI5NGMvLzJzVHFFL2JGVDNkdGhMYmVlWGxRbzNtc1YvTHJ5TlU4ZE53b2xJVFBuRHNsaTdBcEducVgwbGp3WFg5TVhNY3REdGFGaXdJWC82ckJmMzFUcnFwbkp3MDJSU05TQUZJbVF3NHFRdk9uVWVlTHY5WnZFNDZxOS9STC96eGc3aHdqTS9tOTUySGdYTkRsc2pBbzBVR3FWTVRHV1JGNmppdUM1VGVlekZsMXVOWU5GWWRNRlBJZWN3a0RsNFBob05qZS9CbXRzaHZuRExRelp5b005L0lEamErenMySFpiOEJOeUdMUy9UUUgvb2VqUGtISkl5d3d4UURkRHdIdFE4QWYybXRQNzRvamZheDg4WUZKbzc4eXM1T2RoQW0wc3NOTlMrNjJQVjNVRlVYR3lUUEZOVDA5dVBLdmRzUGIvemU0L1c3Uk0xZ3V0R25NaHIzWGFqemNUa1FuTHM2aG5jTmV1bGRsc29BNWR1c045dVBDZTk5ZDQ3bm1vOTNtdmUzNnJ4bWdJY0pjSFc0RGNKQlgzME52dzBhb2VFZEtpb3N5SGhRTUJGU21QcnVWRHVQcVRWZVBzYzlOZEd3TnIwK1N2dyswMjBCdHQyY1RialBDek1DNGw3YnpuYTNITkVtUVNZT211VnV2SzJONXpxdXFqZTlQdEsvRDZKMWdMYjJmejdBbXJKaDllMkNqVFA2TjRycmRmRGJpdVhkV3EvMmZybnNZb25jT3JxTVFJQmpOenN0bk9QcDk3Q1hsUEIvQ1BQSUxsaXRjZFpzUjM0blNzR3A3Y2QxR1ZlYTMzbjI3dzkwbnE4SSt1Kzd0QTRvUUFrQWhNd1UrdkgwUm9IVU9pT09EeGJqL2VTdzl2UnYwTGdkeDBldnVCWG5Ecm1BSVFRbU5MWWduM2hiaE12eUliNmc5aWdmNUFBcEtGeFhGOUtMSHN6QlM1eXZSajkrbHRKb0ZFWTVCTGx2enhGZnVwVkhhR0tqdHZnYlc3Yjh3aDk5eDVsMUlkOUNFZmhpalNyZkx2N3dkWUQydlBXSGJiZnBCQklRRVFUOU9yWGhYL2NlaElUOGdTcnIvc1RUZTkvNGVXRWJDQUROOXB2ZTc2WTN2ck8xSk5halhmcGliNjBHbS92bDVLdDUvTlhlN1M1aVdUWUYrS2Q4KzVsMzE2anR1cXp2MWcyazhPZnVKSklNdHIyM2ZmSHI3ZXBmNFVRZ21lT3VZb3poaDNRcnJIK2EvYW5uUFg2UGUzWElYN1YycjdrNGtucHZWNGYycWRUOXl2b2JQejBZdHk5cjVyd3NJWlBIR2xHdklJdUJaTXUyYjRUMThuNFE2c3V2RFpsRit6dDhZMDg5RHJVYk1BMzhwdGJBSmp5MjlzMnlUZHlzYnVXd2JraENxODhFVmVjRGJHMUlIMTBSQkJ0dzNxcWlndXYwZmtuSE1HYXpkZ3gvN3JqYVBaTTJURmZiOGFPK1ZuS2pwSG5ua21mTnRneHphcEZtMFRVQm5iTWdpNWxMYS9TaVNReU84dXphUm9iRVlFQTJyWXhpb3JvL2RYbnlMdzg3ME4yb0M2elhlcXhtKzJ1MVJVc091eUNEclc3TnRSVHZzL3IxNzV6S2hpazVDKzNrWDN5c1lnMjhnUm8yNkh4aGRjby84VXQ2Rmo3ZWpJTnFsdlVxZk1yanZSbDYxdkRYY2tUQnZYYXhVd3pob2tOeC92aHRISjk3VDNmTXVPcjFaQmpZZmxOYkNlTmNtNG1uOWJtL2RiODFLcXF0ZXh6eGZHc0xGK0pNRHJJMzlMV3JmelJ5azZkWCt6NyswRzZmMDJTR3o2dDF1TldKeWc4NXp5UmYvbVZWUC81VG1wZStMZit1RmVRUCs5WEtGYms5Tkl1WitHS3ZLMWM0RnVaTlBMemNUdlpUNmZYRzMwYnZ2b0c1OXVCKzd5a3IvLyt6eHhRTndQSGpXTUxpYUhUaHdlaFlBTUQ2TGZocnZxaFdEV3JsWjIyUzdqVlh4ZTFmMUdKMUg5bFRmRGwvN3lmc0gxQ2dodlYzejZVM3ZLQmkwV243blBYSHZtcmxhSnV5VW9XZnppWk9mOTltOG81QzdmN2VIK3g2ck1mVmYrSGtOL2h2dk0vNWN6OXZ0OHBjZDlKWS9mYitucUpIYkR5OTVueWVlZXVUL3JuNHZTV1orZHUwRWY5aWozVGU3ei9hTjNIU3B6NHJ0WkpoYkFrVWdyY3VJdnd5ZldwL2RCSmhSRXdVRXFqYmVVOTMwSGYwcEFLclVIRnMwQzRIREo0S3I4LzVIbkc5bHNJdG9rWXRrRS9tL0YvYkFkL3ZtQjRqeWl2WHJHWTNvWEpMWmRYcEQ0cE9xT0ppa2RXa1Z5UmFQZWhQWFJlYTcvZDhjZU8wSmQrNDZOSG84QVY2YmNjTm9vN1hQWmNtK2ZYTDExdUhQVUt2eHIxUDN6UzArZVN5dUtQTTQvbmpwa25rRkJHeHcvNC90UGJrYStiU3NUYWdmbFlXenJmcW45NnVRNmVjRFNKSTQ3Zzc4OS93NS8rL0FhUjVUVlFsQVdPNW9XN1QyRDBMYjlBU01Hbk4veVJjMjk0emN1SlZ3WkZRM3R3eVJBZkoxZk9wSHVPZ1huaCtmUzgrSFVhcWhvUWx0RXhlL0lIOGdBNnczblIyZnprblcxK2U3NlIzbjJUbHg4OXFYUHJPNzhmMzQ2OEJmQXJlUGhReWFsREJkaHRxSDFWSUlLQzZFdE4xUHlpRXVFVDdTcUo2N0dxdFQvMXdEdlRtOC83b3h0YTgzbnZkY3Y0dEI3dlY3ZTE3bWNUM3ZOMkhaLzNPRzdqa3RTQ01VQ25GYzlscS9GZWU4NXUrcjdUa21SRnZZZDFtdWs4Ry9hcnlEMzg1YlJlRC9YdnRPYmpyUC8zODdybTlqL2dyRnFORElXOFBLUTBRdi95RlowNjNuTEFPZStrOVhnL2ZlcndqdUZuM1VwL3RSQWVUNnVRdW0xeGtBMzB5VTVYUHo3d1orMzJSOTEvL2hlY3NlOGlUTkhHZzFVTEt0L05aOG5mdXFQaTdlTWsyS2hmV3lmejkyMXRIdXpVRWovWDc1ZFByVjl1WHpmYS9hKzJHdSt6cGJ1bnRYdzRjODAzcmNiN2RacnorK3l4b1dYZS8rYk5qemZwZXIweE9yaUhpbVVvYk5zQVZ5Sjg3Zy9iMFJ2SWg1LzB6OWJYOU02anRNTEFia3hSVGFTUnp0Ti9ZZXM2Qkg2M3Y0YlVNSVZnVE16aDNyVXgxcGFEazJzUkMzYkJGQVhrVkMvRzZ0TEkyU1habEZ1aWhjaFRpdTFNVS9KL24zWHFldUhOMnB0YW94MEhyUlRDTURiYnU3UGlYLzlpM2xsbmJiZWF4dkVick00Vm9aSzBudDhlMGZMVzYrSEdPM1RYUDk3QU04ODl4OWxubk9INWNrd1R4M0VBajROSEtjVUIrKy9QQjU5K2lqbHZFZk1PUHd2WkVFSG1acUZ0Wjd1T2QrRHFxUjJ2NytqRkRNOHpDRjU2TGorZnZvcUdoZ2ltMGY1elQ2Qnh0SW14WHArRVp5ODlmZ05wZFYrSHJBY0pES1NjbDNpSVFWUjBHRU9KM0dEOTdtaC9WSUYwT1NuY3lBVlp0Y2hHbTZmK0YrZnVwNk9zclZLYjI3S3Q1L2ZNOTlJN1B2VHNvWjJhSC9DSXcyL1FCUVZackZwVlRYNStEZ0MxdFExMDYxWkVkYlZYcUZ4WW1NUHExVlViUGEvTDEzTEVxcGtVT0xIdE50ampGcmVPdHh4NGQzckhOeis2cG0rbm50OU5uY2RhNnhaZTR1YW5OOVVyZVVkNGpxWGM0SU1mZWtPdnYvUEtzZ0lZUXJDaUtkWnFJMlpiSnJaU1dGS1NVSXFnSVlrNkx2YjI1cEM3K09qVzg3dTB2ZkpCZUJOcjVFUFpJcEQ1YkUyQWJpTy8rYlUvWEg4aWdZRzVxM2pod0Q4d09IZFZoMHpGdkhnV0p5OGF6Zng0MXBaZDZCdjBFZFJmcHprdi9nWTgvcDI1ZmprTm9ZUVFyWUxqOHdmMFNPdjFNSEJCYTcvdVlNTDZsN2xsSEdUazQyaG8xRTVMalc4NllLTzhoZzM4WXB2MGUyM0dyMlYwN3dhQXUzTDFkaHR2dS9QZ2xLYW9NT3p0emVvSXdoQ2VocjloVHkwa09Tck9xeFd2VWFEaTJCMTBoemIwbS9jLzZ0bTBYcjhMM3p4ejErOHJxWFZMLzBpVWl5ZUFWY3BwcjF2OTFNcHQ2VEdwVld2T1JTSFdyYU8yOXByYzZEeis5Ykd0OTV2bDUvU1I0N251Z0luMHl5bkdtVGFWdXNjZkpUSDNPN1RqN05DYUs0QytrMXY3U1V2L3RPUE9ZN0dldXFQWGUyejlXS2xvM3IrcHg5ZjhzdlcyZmZicFovVjU5NTVIY21BU0s4L0NqdHBJSTMzV3IzbGRmQURudlBnWiszNDJpUWVQTzR3clQ3cUd1NTZkeHROUGZRNVZUUzJreVFES1ZSQnhNUHQzWldKdmkvT3RsWXp2N3NkLy9Fa3M2ajZFM3o4eWlacktSckFNMGp5Zkk0TWR0b3ZhVXhYYWZsd1dLR0tKc3ZuZWliZWJObHBzNERiWmFLaGJ3WEVyQVkybW54bmdza0FSYnlZYld6MmYyVzhaWkpEQlRoUEg2SllXdGk0Q0pTd3ZXVTBJaEVyUVRWY3hTRmN3Z2lxR1dYRUc5Q21nYlBSUTh2WTdrK0NlZThCZWUzYnE3Mzl4MVJGYzg4K1BHUHpSMnp4NjhxbGNmZDVGL09tKzJmenJ2a2xBU3Y2bXpnSGx1TjZKVXR5VnM0YkV1U0g3RTRiM2MrSFVNMW5ZYlQ5Kzk2ZHAxRlkyQUQrYzFLMVVNdldidGMzajExb1Q4aHNvQlhGYklVUm1UZi9JTnpTeHVNTnQ5MDRsSExRNGZQOGVuSGhZWDU1NXRaQ2JubmNJK3Y3SmhPRUxTYytlWEJsa2tNRjJoeFNFUmc0bE9IUVFSZWVkVHVNSG4xTDMxZ2ZFWnM3QmJXamM0Y014cEltckhJSWpoakRvd3hlcHVQOUoxdnp4SHV4VmF6QUs4ajMvbDl1eEFrc1lYakdrVTFXTlZWWks5enR1b3N1bFB3VWhjSlNEMmNhbWxCbDBMSzZMRCtTY0Z6NVAyY09IdDlrZVBxRzN4UVhtU3NhWCtmR2ZjQkxmZHgvT2JROS95TVRLQmdvdEUzczc4ZjliK1g5QUpiOUYyM1BSemtwUWRXZ2NCQllJbi9jUEkrVmRVQ252UWNZMno2QU5jakZGR090dXoycWNKZDlEeFNvWXRnZnNQZzd5aTVvTmk4d04rRUhESzdXdEFXYlk4RjRjMW1TVTZoME5wN0VSTXl1TDJNSWxtTGs1Tk0yZXQ4bWtvSFRCTW4vTzF1c3NRaUNGUUNtRnJUU3Vxd0NCWVFoTUtUQ2tSR21kdnI3ZlZMSXY1dmJYcmFRQTVRQVNqdWtIb3d1OEdvVDNWOE9uS3ozWFMwZHh1YlJ3WW5YZzF4Sm9MT21RVk5iMm5TanRrWG1NNy9vNTF3NjluMzJZUlBRWnhjci8rWEVxdHJ5UEpBS2Y2WERzcU8vNWVGNXZWbFhucDNyVTdQcm5od1I2aHdUWDlUVVprOVAyQkEwVlZUUzlWVXZqNjdVWkFkNWhkc01Bem5ueGMvYjk3RXN2am5aaXltNTR1dGx1MEp1M0c2eDFkc01QeGRHRUVKNGRxdlRHK3BFUVhsTXZRMlppYjUwTkFtUllZMlJwbkdxSnRqTlRrc0hPeGY2SkZleWVYTXV6b2VFOEhCNU54TWhDcUFRU2pSSXRhVVk3MWZ6WkpiYStFTjY1N2JySVZIRldPb3J2NU9veXFsN3RScURYVXJKSFR5UFFheWxJalU3NFUxOWsrd3hhNFBVMHUyZGdrbnRYbUV4dE1NaTNOTzR1ZHNTOTllVThWbFhXODdQajl1THd2UVlTRHZyUzJvNzgwZXBuUFlaeTdVT2ZVMVU1aGRPUEhrRkpVUmJQdkRhVGZ6NzJCUVF0WG5wdUNqZmYreUUvUDNNdlRqcGtCTlgxRVc1LzZFT21mYm9VUWlZdlB2MGwvemVxQjVlY3VnZWpoNVlTaWRuYzg4emtqY1k3b05DaWRFdytueStMOHRuU0tEVXhGNThoV25KeE04Z2dnd3d5eUFEZ1NGK0lNbW55UUt5ZVdVNHk3Y2RiVWlQb1dtTXlZWnBKUTFpenNrUXp0N2ZMelA2S3ViMWRWcFJvR3NJYXgvQlVTNm0zbTRxWndXYU5yR1k3YndQTEs4MXZoRWlOVCt1TS90eU02NTF1blAzaWgrejM2UmM4ZVB5UlhEbnhOdTc2MStjOC9jejdVTjJZeW1zUUtmM1hoVWdTczM4WkovVE00Z0paeFFFbGtzREUwMWxRMW85ZlB6K0orT0JoaEhLelBGMTV1K25yMjc4dVFRaXgrY1FNVGNhWG1zR1BBbVpXaUxXMy9JbmEvNzVHMFU5L1F1NzR2Ym5tdkwwNWFzSkFubmxsQnMrKytpMUxsdGQ0RjNjVWtacnlpa3I3OWkzbXRJUDZjMEpobk1LUFh5UXk0enVDbzRiUzY3cEx5QjIvTndRRFAvdzJRaUNFM21oWVdvR1JyZW41bXlnQUM2L0lRc1VFelNYMDIvcjgrbDlEYTRIY1dsblJYSUFyUk1jWHRHN2xleDlWR3BIZGc0NStjRkdlZW10TmxteTBaV2FUWkxCMSt0aDZ4ZUFONWVWb3cwdFVFSzVEVGttSlYzaWVRUVk3RUZKb2NBMEc5RjNMM1ZlL3hoMVBIY2cvWHhtTE5oVzJrcHV3S2J4L2dVQ1NXOC8rbUdqUzVNeGJUeU1oMWhYY2IzU21Db1ZRQmo4Wi94MVhuaktKSTFlZXk4TGxSVWhEb2JaZ215eXR1b3lRZndrNWdlOXh0VVN3NitiMjdZeGNuVi9FQjNET0M1K3gzL3A1M3Mrc0h3LzQ0VHp2QTdyN0NaeHdFZ3U3RCtFUG04dlh3Q085THNocUpCeHd5QTlFV1ZHVFEyMDBHeUhWTHAyaFZDMHNick9HVWlIOHBJdDBWMEFYbmVBMzl1eE9QNzhsaytieDJlSUtKcDUzTnBlY2ZoR3IvUkhlWHoyYnlSVnpXZHEwaG9RVDkxYWcySlFQSjRNdG9iUFg1ZTdLMEVLZ3BJSGhldm04SWpXcHpSSmJHd1pTcVpiSE04Z2dnMDVtTTJhT3JBeldRMmZMMzhrZ2c4NE0zMjVEU1V6K0JoRU9VWHZyM1VUZitJQ0MzMTFQNElDOVBCM0xjUkNHdVZuVFFtdEZNcm9JTXpDQWFNMXJBR1IxdVFnN3ZnQmZxQjlDeU0wNUE5Q3VnekJOaElUNHAxT28rYjgvazVnNkUwd1RIWW5pMzJ0M21EeS8xY3RxNnFFZ3ozdTlEODFKK2RYc205WEF5N1dGUEY3WmhlbVJMTS9uMHRHeGF5MlFRck43VmlQbkYxY3dNYithVXN2MnFLbFRwbGR0M2NZdkcyMEdHV1Q0bWVKRWVTbFJ6MVFuU2p5anIyYVFRWHBCZ1I2U3dOZmRSY1lscWw2U21PRWpzRitDOE5pa3gzdFZLWWhQdDJDcHI4TmNMWi9WK1BtMjBlTHNzaWhuZDR0aW1CcmxlRzh1ZjZTNnNRUnlUWWVKZWZWY1hGeEJsMmlFUjErSjhkaExjUll1ZDJoUEtvb2gwbjdadGU5NnBWcnFCVnpYeFRDMmpkWFhkVjFrS2k2bmxHcjV2YzJZVndXVlVkaW5Cd3d0QXROSTY4VDFIYzJENnRYU0EwS2p0V2hsdjdSTjcvQnh0UDlUeGxsemVDMjVEMU9TSTVFaWdjcjRlalBZQmFDVmtRcGZ1T2cwV05OQ2FsWTJXSHk2T29qZldCZXgxQWdtQkNzb2tFa2NuV296cGpReWFHRjFDYkhxVzRQR2lFWWtEYVJlMTg1TXBQYjlWc05RdUlhaXVGaFExSGZMelp4TncwQXBoV3FSUndLck1KK3NibjdNblJHSi9IcG1acEZua0VFR0dlek1jemJxMHZSLzg5QzFOcGhpMndyclJjdWh1RzN2NFdoRXZrWFc3d1puYmxDYVFBQUJ2MG5DY2R0dnE3VHJjelJTYUpReVFWbmsrT280cXVnYlR1bjZKVU96eW5sc2crc2pVeUQySGRUdkJ3Vm5RWGhma05tUWZSaFkzYUhpYm1oNEMvUVBxRWh1SThUblEzQ005M2Q4dnZmWUQ0N1RnTndqb011MUVCZ0tHS0FhSWZJRjFEd0RUWitEaW1iV1RWb3Q0SXg3ZllkREFrb0xITnVoSUN2R0h0MDB4d1Rta085SUlndWFXRnRxc2x2WFl1cDdOUENWSE1UamN3dUpSeHNSZm45SDFWNzUyWUFaenpJbHdZREYrTEY5MkgxSUtZWUJheXFhZU9lTGhTeGRXYnNKTjVWZS8zUkxmUzI5VVpLV1pVcENJUjhIamV2RGlBRWxDQ0ZZdWJhQmR6NWZ3TXExRFpzOGZqdjcvZTJNL1lOMGFreE55MWF5WlBFaUNyS3pLUnMzRmlGRnFoNHc0MFBMWU12SGlZbWdSSnIwTVh4MGt4YmhWRXc3b2hXcmxjMFNOMG01Y25CK0ZHeVViWml6RkhlTjQvclpaK1FLZm5Mb0ltb2IvWHoyVFZlK21ObVZlTktrdWFtelFLL2p1dkVJK0pHaE1IMStkejlGT1NhMm96dG1tMTU4Y2FzL0o4NnZva3MweVovMjZzbnlnaUNHbzFCQ2RLcjdKNkFscnVETnU5Y05jbHUrZ3lFRnluYXhYTVhSeCt6T0xSZU5wL2ZjT1N5Ly9FSGkzODMzYXJnNlZHWnJwRkNwdC9YV2c5SUNwVE8xWXRzTGpuSnhsRXZBOUdVbUk0TU1Ob0U4bFRpODJJa1BxalNELzQ2aG43T0ZYdUpLSThtNHYycU1iUGppd3N3a0FkZlpKWnp6NG9mcjhuV2IrVWFlZlI5cUcwZzJhb3JPaUFHUWJOUVFTMkwyTGVPRVhsbGNJR3NaWDJyaFArRW56T3MyaUQvKzkzVnVHRmRQY1o3Sjl1cjUvTXY0QU03NkFUdEcvMEE5NFBtV1Z3OFliR2Y4WDd0dXlwZTBGZmFPRUdqYnh1eFdpcEdiaS9EN1UvbVJFVlJEQS9heTVaMHVFMERyZFhwaUJyczIza28yTXQ5Tjh1ZHdLYVBNSURYYVFTSzJ6NXFWYkhQYm93TkhkMkhxWS92eHQvOHM0ZlluNXRLd0pvTEk5U0dsd0hVejF0MlBEY2ZOYTlRZjl3bUx1L2N1RUpkT3ErZFlRNkFSeEUzQk8vM0Q0dUV4ZVRUNkRRNWNFdFZmZFZQVUI3YVVlYjdPUVMxUzlpOWFJOXdZeXJEUW9qblhYbmh2cEYyUG5xMk4xZFU3M0UrbnZQRnFMVUM2N2Q1OFg1UWN5cnljSWZ4MDZUODVmOGxqZEUvV0VrT2doRUNtWWZQUVkzMDVkSmNXOThhcW1PSEVNaHNrZzEwV3luR3BYYktTaWxuZkU2dXV5MHhJQmlrZkxlQTJIMGtablNpRG5XdExCc01XRS9jcUpqdG84c3duYTRnbFZZdStJZ1NFc2kzT0dsOUtROHpoZjFNcWlTYmNiZjVjUXlxMEZyaXhNRWpGQVlPKzVsZjd2OG9SSTZZRG1zL241dkxZMUd5Z1lxcy93KzlUWEhOb0JiMExrMnd4RlVlQXRqVU5IOVJTL1h3NVRwWGRJVFZLL3h2Z3NDSkhjOVhYRnFQWGVybmFtUjIvdldVc2lOd2NqTjQ5RWJrNTZMVVZPRXVXUTNMbjgzM2ZHZHFOMDk3NG5DRWZmOG90SngvREJSOWZ4NzNQeitDQmh6NmtZWDZGMXl0U2VINHYyM1loNHRCbGp6NmMxZC9pOVBoQ2hrcEo2T2VuVVQxc05MYy85RGtOTlkxZ0dqdWxaRWdyamF2VythRzBCa09Da0JuSFZBWVpaSkRCdHNJcTNnTXpmeWlKWmErUldQUTgya2tseXdycEVTK25HUzcvajVmdWQ4K1pTZklidkhNZzAxNmc0NUIxN05GWXBhVlUzWElyaVJuZklrTWhUMWZQY0dMOEtIRmRmQ0RudlBCNXlsOTllSnY5MWMzOHJHM3BwOXNNS1VDNTREZWpKQndMRExQZDY2NHo1c0Ztc0xPY0UyUW9XVFB3MUIwQlBYb1hVRjRWSVpHd095VDV3WkFldjdoZEZ5WlEwRWhwZmhOTDF1WjdUYlRhaVA4c2FtU2w2WERMK0FKRzFmcUl6bGE0TVU4OVMvdTlKY0ZOd0NvQllyVEo5eUtYa3RVR1BRdnlhUngrSEN2bmZJaXc2OEd5b0psZHdMRVIwa0JJQTZWVktoTkJaREszdHdDbnNaR2xOOTVJYk5FaWlpWk9wUFNTU3pLVHNoV292L2RKM1BKS3pucjhMZ3FLaXpqdTBNTnhIQWZUTkhFY3A0V0Q1OVBQUG1PUGthTjQ3OHN2R1B6VjY4dy8vQXpjSlNzeENuTFJ0ck1EOWJNTzBIZE9PSWtGcFVQNHk3TmZVZU52SXBqbGEzZHRxVUNUVUFHNkJWZFNtOHpIVmo2a2FKLzkyQ3h5ZlQ1UHVDV1QzdXQzZGRWTEE0YlE5RE50enN4cTRIQmZFeFZMa3p6NjN5Z3Z2Sitnc2xwbHpLODBnV0ZJZ3FFQUJRVTVoTU9CbG5VYnpncmdPTjYrRDJkdDR2bXdIenN2aDY1RHgxTVNOTGZmQU8vNk9qTy9PMmwrdGRZdDNHOWFlekZPS2FTWDhxalZ4bHlyTzdNV1dtdkdsdVF6b2JTQXB4ZXNhajBNclNrSytHaTBIWEo5SnRVSm15NEJIMnVpQ1d6bFpJUkFCdW1weCt3MHYwMDZPQkoyTFdmR3lyd0k1OWZOWjErUng5VzVwZXdoYzNDMHBrbTdDQVNaNnNQdEF5a0ZVZ2ljU0l3N3Jqa2VnSi85NGdWMDJBZXU2d1hnTS9qeG9hVW9hRDNsUmV0MWYyL0UxN0Jldnl1aFBUK09vRVhoRVIxY1hCUnpranovM1dkVVJPcTRjdTlqMkgvVUtBcCtmZzBOTC95SDZCZWZvaUtSWGY0V0NjQVZZSXRtWGdRd2xSY2ZUVXF3dE9kNjFNSzd6Z1cwQk44bWpzZ3p6anFEa2NOR2N2S05KL045M2ZlSTNpYXF3ZlY0KzlQZ21ER2ZmR01wVDVZVmNVUmZpd3ZtdjhnQlpUNmVPUDE0YmpyclNxNi81MVA4UVgvTHVlalBDbkxrK083OHFyQ0tVVG1LNEZGSE1hM2JFUDcwekRSZWZ2d09hSWhCYVc0YlpqZzFVNW1JOHk0dDVGbzFqMXhmc0hYZ2JlOXQrTGdxVU1RdklxdUphTlZtVzdDWjN5RTdKSWdsTmE0TGZjczhrdkhGcTF3TUE0SStRV1BVYThTdFZOc0Vod0xDUW5KVm9JamV4c2JFQXp0bHYyV1FRVG81cDZRZ04yZ1N0MTBTamtacmpjbzRacmVQSWJJZTNiaUxRQXNMTjFWOEtWU0NNbDNGSUYzT0tLb1k0YmNaMENlZjB0MEhrYi9QeWVRZmNpZ01IcmhMemNmRDc5WHljR0FzeHc2TGNlT00vN0JQMzMveDFQbG5jOHNWNS9PTDMwekZGd3FrRGhDTkx5Zk1jWHZsOFpkZVUrbGZHSUVUVG1aU3lmN2M4WS9adlBib2ZVQWN5TnFpUStHeXkvWkVhM2pnZ1crMjZmQ1RRRXdKRHV3cXFVL0M1RldLZ0pFcFZQaXhJNTV3aWNjZDZocVM5T3lXeGRFSDl1THI3eXA0L2FNdVhQem9XVHowczJlWU1IeGhPdWFoWnBCQkJqdktzV0VhQkFiMElUQ2dEMW43am1YdFh4Nmc3dlYzMlpISzE5R2ZuOGV2aDF6T3ZvVjdBT0JvbHk2WC9aU0NVNDlqMVMxM1V2WEV2MEVyakp3Y2oxQm9Xd01QUWlBTUE3ZWhFUVFVWDN3T1piZmRnRmxjaUtOZFRBeE1hVEtwZWhxL24zZGZacEhzWUxUYkhqNmdqRjhWVmJleWgvLzh6RFJlZXZ3T3FLOWpZbGkyNkcvcnI0SDFHMzVwcFR3eWt2V2FpbW10VzVGaWJRNW0zblV0MnJSMmxxR1NjOUhKR2FqRVRMVDlQZHBkalZiMWdFTGdBK0VIWVFITm42Vm94ZDZUU1o3TjJHaDRwS2F1N1NWY0dKYmpOVkhiWGg4WWFZSXBIOFBDMlRCbVh4ZzZHa0xodGptNWRoSG9Gbkl1eFRyU29mWFBtcFEzcjVrcjNTK2dUc0dIQ1pocVExeXYyOUlaN0RENGlvcEFDa0w5K2xELzFUUUNaYVZFRnl6cThFQllSK0ZuL1k1cXY4cUM1NTlPSmh5RXJaQUJrL3ljSU1VNU9kaktwcjRwUmsxakFoVkxvQzBUbjk5RXFhMU03UzZmdnYyKy9Bc3ZlRDlQTzIzN3lrOEJ5b0dTTEhqakVCalQwenR1cXl2aHdvSHc3bW80OXhNdlNMZk51V0lhTGh2dXZjY0RjenZ1N0M0SlZyQnYwVmU4dU9LNDdTbjA2Sit6bUNzR1A4cFBTbDdFbXR4QStiTitZblBOZFF2dkJ4Q3dIRWFVVmRDL3BKcWY3dmNOcGJtTmZMVzRPN05XbGxEZEZFeUx4b2JiODR6dUdSVGMxTi9rdUJKSndHamJSbFl4UmRQYnRUUzhVbzFiazBuNjYxaTdvWkFqK3ZnMll6ZjQybTQzYkNLT1pwb1NKMjVUVUpTRlFCQlBPRng1emw0QTNQdjBWd1I4SmhwTlRWVVRac0RDY1RMT3RiVDBlZmcxT2lrMk5BY0pESGNJN1dWVC8ySUFlNVhNT05GM05YU3lnR0pFV0pnb2Z0NDBsZVBpQzdndnZBY3ZCSWQ2c2JwRWlreENacElHdDBrV0lDRHBJb1dtZCs4aWxpNnN3TFVNaENuVHJ6RElzZ0dJTCs1SGZFbGYvTDJYa2pQbWF3SzlseUNFUmlWU2ZqR2hPM0IrSUNCaFRWSXdPeUo1ZjB5Q2ZhWUdtQjhWaEkwMDNsSXRDWlJ0MXo5akNZZXBjMWV4c3VKZFppNVl6YmxIN1VIdmJ2a1ltVDJXUHZyWnM5TjQ2ZEUvUWl3SkpXSGUrTmNVYnhFV1ovSElmV2R3eHRFaitQYjdDbjV6L3dmODdmRXYrVGIyWHo1OFBVeFphQWpQLytza0Rod3pnRW5US3ZqbFg5L2wvMzcxa3ZkYVYwRzN2RTNZa0lMY2dPQ1FmbUZHbFBqNVlIR0VhYXZqSkIyTnp4UXR5eXlEZEpEakdaZDVCaGxrc0hPeHUrbmo5bkFCVDhZYmVTTVJ4VTVqSTFLblRHQ3BJYjlSVU5nZzJHMis1SlFQb0NHc1dWR2ltZHZiWmVZQXhaemVMaXRMTlBWaGpXTjRLcWJVSGFwcVpyRGhpYVlCTTRtV0RrSTNFL0pwaERMQjhiVXErdG5aa01Kclh0aXlzTnlVTTFTcWxrWFM2cG9mby83NzlseWU3RmJNRWIwTkxyanJXUTdvRnVhSk15WnkweG0vNGZwL3ZKWEthOUFwL1RmTWtmdjM1OGE4S0x0bFJ3a2VmVHpUdWcva3o4OTl6a3VQUEFnYWZ2cm84SlFPcWx2SHVscGl0bm85N1dpOTM5dG96K3lvdWdRZFg0L2NXVzlDc2ZOYk8veGU1YVdJRHVwaUdmOThCanNHejQ0N21TTU9qUkw0NUgxV1huMExnVkZES1Rydk5BWk4ySnZicnptWWMwN2NuYWRmbnNFenI4NWt5YkthWnNHN2RSK21OQWhCMzc3Rm5INXdmeVlXSmlqNCtBMWkwMmZCcUtIMHVQdTM1RXpZRy94KzVpK3Q1b1czcDJ4ZWp3Q3liSWRrVXRMa0doZ3BXZDhNcDA1UThad25LNUpySkdLRE9ObTJQSzhRdUJxeURCZWZ6eVZpR3UyM0E3V0dpZ3FZTnc5NjlvUmV2VHJPcjZvVUxGc0d5NWZENE1IUXBVdWJDZkNDaG1MUGdyam9IcXhrOTd5NGVteHhubGpVNUJOcVY3WjFKUnYzKzhxNDM3WnRDYm91UzkvN0FHSnhuSUNmNy81eUQ3NXBNN3o5TkdZM2h2L2lLc3g0QW9JQmVoOTZNTkxJSkRGbHNKMnRHNkhScm9FdjRxZDdjUVA1M1NJTUxLdkdqUHRJU0EyRzJ1QjZRQWxJV3BoNUVRYjFxQ0tXc0RCTlJhSXBBSmFETVBSRy9saGxtd1FTRm9ONlZKSGZyWW11K1Uwc25kc2RPeHhIR0txbGdmeW1rRWoyWmtubFZRenI5Z3VrakxCeldhVzJId0tXcEREYmo5ek96VC9tYlBEM1A5OWN4ais3YlNZZThQZE41M25mV0ZUTmJwdTBMK0pRbXJOWlU5cldmbzdwL2hsTG8xMzVkblYva0JHUDZIVVg1bCsza2F5U1Fhb0lwTlc0SENGeGRvRkQvWTZzYm54UzNjRFRmL2dybjd6NUt0ZGRmaWozSDNVQWphUEdNNjB1eHNmbDgvbXMvRHZtMWkyalB0RklTMTV4cHZ0em05Q1o2M0ozWldnaEVGcGp1QTdhTUJGQ2tEUkRTQTJtVzU5cWt1aTJ1amFERERMb1hQanc2NXJNSkdUUWdzNld2NU5CQnAwWlpaTmVwdUdCcDZtOS9lKzRsVFVrdnA3Rm1zUFBKdXVNRXlqNDNYVVlwVjI4QzEwWE52TFp1UWhoNEVUZUlCbFpqbEIxQ0ExTjlmT1FiaS84NGF2d2FBbzNlRjNxdllScDRxNnBvT2JtdTJoNjloVVFBdTI0R1BtNTVOLzVLM0l1TzNzak8rYVlLK0NzWStDa1E2Q2syRE4zdWxvMmw1YXM1YVQ4YWw2cUxlQ3h5aEttUjdLOE9QQzJKZzlvZ1JTYTBWbU5uRjljd1luNTFaVDQ3SmI2YVNHaG9oSmVmQitlZVdQamx5c2dKQ1FIV2Ruc1pZYVo2a1I1TVZISEZDZEtQS096N2xSSUtWc1JVMi90TlJuc0FoQWc1dnB4cWx6OFIwZm9jbElTVVMreGlqUTFiL3RvZXMrUE85dUhjQVdZSGJkdnc2WW03Z3Irc2ppYk55c0MvTHgzRS9zV0pVQ0Q0d29NOGVQeUVKakE0RUNjUzd0VWNIUjJIU3NYeExqNTMxSGUvanhKYllQQ2JlZFd0SjFkSjdEWExJZFdyMTVOTXBta1o4K2VLS1VRUXJTN0RsMXIzY0tUdW5UcFVudytINldscFMwTmt0cUY2aWk4dVFDVzFzRStQYUFvbExZTzd4M0pneW9FYU52QlRXaXZDTnh3SWRqZVBDT0RZZVpTanZCUDRWdW5MMU1ZalNETzFrb0Z1VjVzU1NNeTVZYy9ScjFIUUpNRCt4UjRkMzlTalNETDNIRjFWa0pvdEphZ0RQcm1MNlRKRGxQUjFBMmtneEEvSEMvZDd2QXBQbDBkNU13WGUwRFFaUjBaanVTOUhuUFpPOUJJb3dKRGdFcENzSGNXVnBmZUxGK21HSFdndzc5dkRyQnlTZ2hmV0tFVktFY2cxOU1YMXU4aHBIVnp6QmxJbFFKcmxhb3pNU0RXS0JsOVNpTVR6azJ3Y0twRlVmOGZGT2lZUWpCMlpDK1dycXBoN2RwYWxBQmhTQXFQT29BaFp4MkF6OW9KT1JlRFg4aHN1QXd5eUNDRHplcjFJdFYvWlRzZXdFcWphMjFVZzkzQ1FMYTFkdks2WmpKaW0xS1ZOTnJMME1pUXNLZUxDd1NoTkNXRklkWldSNGdubkE3UEl4Rm9wTkM0eWtTN0Z0bitlbzR1bXM3SlhTY3pJcXNDbjR6amJtWjlxaWpVdnd0Tm4wRjRQeWc4eS9zWkdBWGQ3NEhhdmFEeWZraXUyYlIxcERYRVprTCtxZDdmc1ptdGV5QzFYcHZnSzRYaXl5RC9ESkM1b09vaDhqbFVQK1A5ZEdPWjdJM05yNlRtV2R5UmhnMEVSelNTWEJMRXJUY3pOMmNIMnBOS0NVd3J5dUZkZTNGRjNzdGtMLzBQaFlVNWROLzlNQ0lqazl3K1pUN0xWamR5YkhBRi9lSTVYSGJRd2R5ejlnQWVtV3hqWmxzNDdqYXZsVmFNdGtJSThuTUNaR2NGc0cyWEpTdHJDUVpNZGh0U1NpemhzSHhWSFc3YmZGU2k5WGNWRk9TRnlBbjdTU1lWUzFmVkV3cVk3RFdxT3cxTmNWNThkODZtbW05MytnTnVSL25OUEQrbTN2enAwUTYvb2hBQ3JSUnVNa2t5TzB4U2U0bTRYaU5mc1o0Qm5rRUdtOTc0QmNKZ3JCVmloQmtrUjBoY3dFbXRUeFBCQ0FJMGFNVXNKOFlVTzBxTmRqTStWVUJqOG85ZmZzVGxaOHptMTM4YnkzOC82RXRqeE1JeUZWSTQ1SVNUTkVZdEVyYUI0OHBVTFovbkRCTStIN25ISEUxZVVSamJWaDJ6UlMrK3VMVXVLV0gvbGZWMGIxeklYV043TUtsM1BzcFZTSzFSblVBbUNLSEI5Ym9zTmR1TldzbVU3N0Q5UGxRaFVrMTVJd21LdStad3k1VkhjTkxvYm9qN24yYlpQMTlDTmNhUTVpWWFNZ3V4MWZmSGtDNEtQeW9lUU5uZzhWNUxDQ29NWHhTbGxPY256cUJEc2JSMk5Xc2JxOW12OTI2WnljZ2dnMDJnZDdMUmQybnQzUDdmK2d1dWZ6OWNkdkJxWDliak1hdzNiUm1zQk8yeXo0TXc2VkorN0FTdVQ3NDFPOFUzRXVCbmYvMFhCM1RMNG9uVGp1ZW1NMzdEZGZlOVNXNkJIL21tRjl6S0d4bmlpUDBHOE92OE9LT3lFd1NQT1k1cDNmcHoxNzgrNWNWSEhnRlJ5dzNQeSsxcU1xMXZ4NXkvQ1R2R3R3azc1b2FVSFJNNjZpaW1iNEcvZVNQN0kyNFRMTW56L0UzbGRZaUExUzRiQnEwUmxvVzljQkdoODMrS3NMejhBWjFJVVAva1U4aHd1Rk90UU0wNmt5dlRnbWJYaDRGZ2tadmdwSWFsM0JMdXl0bitmSnEwaTQzRzZNQzdMeVM0VVlHd05NTGNldkhoSmxaaXJEaVg2ODU4a1BPT081R2I3cC9DUXk4c3drMjRtRGsrbEdaVC9wME1kbEZjKzFtVkhsQVpGMC90bHN1Zjlpc2czQ2ZFUkZQdzFvQXMvbUlWSUpYaThpK3I2RlVuOWN3dVd0UnYwb3NnRUdpRWt5UVFXME04MUJVajBVUlJZZ25kZ3JYa1VVTmpSUU96Q280bUVTakFTallRbEFuQ3FnRi8zVkxLczBjUXplN1JwaVc5dmYxMGh2VDZ2U2dsUUF1Q09aVUlZWlBuK0tpTzU1QlFKa0o2ZmNhOHN0a2YzdU9PZGxnYkxPTWZnMi9nN2E1SGNQbkMrNWk0NWpWQ2JvS29NQUNOVExNR29udVlRZTRNbC9KSXZKci9KUnJTbW44eGd3eTJGdEkweU8vWGs5TFJ3Nmhac0p5bThxck1wUHhZSWJ4NGliQWR0RStoY2pWR2xVUWJNbFVYcGpPOVROTHZwckZwZnM1ZENJNWlVTzlzSHIxOEdFR2ZaUDZhS0I5OVU0WGg4M0pkM2FUTDJHRUZQSGpKRUtJSmwza3JwL0xOZ25xa0piY3E3Y2lRQ3EzQmpZVkJLaVlNK3BxYnhyL0NJU09uQVpyUFp4ZHkzNlJjUGxya3gxWGJZTjhvd2FsNzFuRGFuclZiTHFXUUFxY3FTZlYvS21qNHNBYWQxQjFxV0UvdjZuTDlnWXFMWi9nNFlZR0ozL0Zvc2pMWUhnYXp4Tnh0QlA2ZlRFUVc1bU4vOUFYMnlsVWdCU0lVUXNkaU83VzI1ay8vWHNDZkJwUnkza0FmWi96dHZ3ekxmWUU3TGppVjZ6KzRpcHNmbkVSMlRnaXR2VnFsZ3FKc0xwcllqNnVDcStndUUvak9PSW9sUThkd3o3K244OUJwdDBGRkkzVEwzVGwrS0ExQ0NreTVtZWN5Nnp1RFhRdzZaVWNMa1ltcFpyQ0QxcHdUQldFUUdIZzJ2cktEaUM5NGx1U0tkMUtGVHVsSGp0Z1UwbHoxTHkvRzh2Y3prdVExTnZkRXlOekxEckZJL0g0Q2UrOUY2VDhmcCtyMlA5RDA0aXNJbitYWmtCbWVoUTZ3K0RxWGpkZHVmL1VtK0o3YXdzOHFCYWtjb3poMzNqS0dGOStMOGRsYmN6SHlBcmp0TUFSM1pQMTRCcDE1SXdxazM0ZEtKamJ0ZHNuNHluNHN5d0R0S01JNUFmNXp6NmxjL2J1MytHcnlFbVRZdDlWeFpDbTlqdmR1VXhBc2wvT08vNUpqOWxqQUZZOGNDVnEwcjRaZXd4ZnpZcHhmVzg1TnB4ZHcycjdaMkpNVVRiTVVLdDY2WGozdGRFc0JVVnZqOUJwSldVNFdjNllzSktaTTNqY1djSHl2R0l0ei9UaU84T2lRWFM4R082aWtQOHNiS29oR2F6R3NFRXE1YUx5YUFKM1psSnVINjFMMzBVYzB6cHRIY09EQXpIeHNKWXpDUEJyLy9ScUxsNjNpcUErZVk5YlNSVXdZc3ljVjFkVllsb1Z0MnlpbE1FMlRtYk8rWlVqM0huejA5UlJHekh5SHhZZWRSZkx6cVpqRmhXaG54L1NNNmdoOTU4L1BUdU9sUi80SXRzUEpOKytiOGtXMDNjY21oWXVqTEFabHorSGFnYjlqV3UxZVBMM3NRaHh0dGtObUNrcEtRc1JpTm4zN2Vqclg0c1gxQklNbTVlV3hYVGFuUndOaHFSZ2ZpSEp1VmoxOW5SaWZmSnpnL24vSG1EYkhKaExUdTNSLzRYUnZNNU9pTUc5Qk5KcWtzcUtlc3JKQ0tpdTliS0tTcnZtc1dWMU5YcDdITFY5WlVVZHB0MEtxMW50KzllcHE4ckxEOUwzZ1JIcDBLOXgraVpWMzNkcXAxME5ubmQvbW5HSFhqaE50cUNhVVcwemxzdGxrRjVTUmlEYVFYOW9uVmRMbzlXbTBIVTFEeElhZHBOV1lVbkpXLzI0OHYzZ05hNXJpTFQza3NpMFRWMnVxNDBsc3BiR1ZJdTRxS3VOSjRtN0cvNU5CK3VveGJhdGYzc0o1M003TnFKUkRJbHFQNlE5am1yNVVmYlJveCtzVnlYZ0RodW5Ic2dMdERHeDZISkdPazhSSlJQQ0hjcEhTM0NYV1ErTW5oZno5MlJoWDNWdkhGM1YxakpkNVhKMWJ4dTR5aTZUU1JIQVJpRXhid0E2R2FrcWdwQUMveGQxUFRmWWU5Qm1FZ3hhV2FWRFhFTXNFMzM5c2FOWnRHdXF3MTY3RTE2c2ZpVVhmRXhnNGpNVFNoVmhkU25GcXFyQkt1dUZVbHlNQ0lXSXpweExvUHdRTjJDdVhnT1gzM2tlNW1BWEZxRmdVSVFTQndjTVJnVkQ3Zld5c1IvMlkwcjhhRXpIZW16K2RoZFdyT1cvTUladzE4Z0NLTHI4SzMrQWhOTDd5SXZhS1pidXNYMWNBcm9EOEtJeU13ZW9nbEp0UTVmTm9NZ2ZGWUZFUW1rd0lLQWc2VUp5QWNCSVdaVy84Zm83ak1IejM0Y3g3ZFM0L3ZlWUMvdm5kRTR3N0dLSlJFOXQya0R2WmJqT2ZmMkFpZHNLbXpoSEkza2VEdjRueUdiUG9YMWJHeTNlZlNIVEpDaFkxSlVEQWtidVZNREYvTkluS0dxekREeVpoK2xqK3Y2a2MxRlZ5MnQ5T0lCcDN1T0t1ajRoRWtnaERiRm9KRUJyaGVJZXJOcDFNeEhtWDJUYnJ2RjNDOGlHRFFXUldObWp0QlllU0NkeW1KaS80M1lHZW1BU2FjVmFJY3dMNVBCYXZ3ZEZ0TXdXVkFrTkM3ektEbnFXU0Q3K3lHVHZDUzRoWVhhazRjQytMRldzVXN4YzZiU1pqRndnc0FlY0U4aGxuaFVoc1lodzdhcjhaVXFZS2xNQjFQY0lNbVdvRXE1VElOSHZZUmJkaEMwbUtGdWwzU0dzb3pmY3hmbWdldzN1RWNWMU5UY1NoTnVMdzhldzZWdFFrMEVxM0twN09vTDBLblc0eG0xMEVTbGdnUEpKQW9SSjAwMVVNMXVXTXBJb1JmcHNCZlFvb0d6Mll2SDFQdzcvSEdBTERoeU5EUVFDV0xaN0xoOWVmVGJjUmUzUDRPWmZoMm5hbm41K1hIcDJBbmJDcFNaaXM2WDhNVFRtckNVMlpUUCtUK3ZDLzV3N0ZXYkFVR2ozNWUremV1VXdzN1FYbFFkUXhKeEUxZzZ4NTltdU83QlhqM0VjUElocHp1UFNHS1VTaXRrZUNvRnM3U0xUV21LYkJ0ZGZ1Z1JEd3lDUGY0amp1UnRlMjZiNEtFSzZMc1B6c1ZUR2JjaEZpa3V5Tm9XMlVsQmx1MlIrOTdQZElBRCthdkpxNUM5K2pwajdPdnFPTDBib3JWendodWUvOHB4ay9iQUU2Yyt4dlB4VllRNDZqeVVvRnU1b01hRERGTGx1VGxrSG5ndHZRU09UckdkUzk5aTZOSDAzQ1hyVm1oNU9TVDZtZHljUkpGM05tenhQNDllRExLZllYb0IwSFdWUkFyL3Z2cFBDc2sxbjVxOS9UK09tWEdEblpTTDkvb3lRUWtZcDI2NVFOSTFLTm5QUUdVV1pobXFoRUFxZW1sdXo5eDlIOWp6ZVJ0ZTlZRktBZEI5TTBxVXJXOG9lNTkvSHM4bGRRWklUamprYXpQVnpmWm50NHpDYnQ0WlArZGp5QldJU3NXNmJoTnNZUXB0bmlqMURKSklsWTNGUEtsTUlJQkJDbWlWUGZBRko2VFdWOFBzeGdZTXVrVmJxWkxONUFtSDB4ekw0UU9qcjFYQXh0TDBIWnMxR0pHZWprdDJoN0lkb3RSK3RvNnBqMmdmQURGaWlOc0RUYVRSV0laQTZKSHgwc29iR1ZCTnZreExKeUJQRGlxaEl3WFN5cHNMZW5mN1NtRXQ3L0gzdy9DL1k4QVBvTUF0TmkxMVlTUldvZjJxQUVTdnVRTXVidFIyR2t0cUFHWEZ3VnhwVVdQcXNlNWpqd2ZnS1d1dDVieU14MjNTa3VKTmRGbWo0U3E5ZGlGZVFUbVRlLzNVMGhkeVRXV2xudFc1M1NzK09NaEtKSDN5SU9IOWVUZzhmMFkwaXZBaXFpYStpYVZVTFNNWml6YkMxVHZpM25wYy9tc1dwNUZTcmdTNzEySnkvS1poMnNyZzcrOGhmdjkwTVBoYnc4Ny9jT3psUVVwRlJZQ2E4Y0JHTjZ3dU16SU5jSGYvd1dqdTRPdnowRVZrWGcxNVBCOElPak4vMCtZcjB3aHQ2VWVhZkJOT0RhWWQ1amo4d0h4OTNtL2tDZ1lWVGViTTdyOXl6dnJqMklSanVyZ3pjTjVQb2FPTDNQaTF3KzRGRjZybHBFMVowK0dqNE5vdU1wV2RZR0tDMG95bW5pd3ZGZk03YmZTcnJuMTVOd0RMNWQyWlZkbWVKU0FHVUJ3WTM5RFNaMmxZU010cjFJeHhXUjkrcG9mS2thdDlvaGcrMW9Od1MyWURjVWpDRlJzYjdkOERVSGRwWDhaRE54TktjaERrcHo0OFVIY01FcG94bDA2RDBjc204L0FCNzk3elMrZi9jcUhuOWhPdGYvMzZzNFNSZEN2blovQnlrRUpRVUJhaG9TSk95TTdkbmgrOWFDNEJpSHhEd0R0MGF1THc1eHF5U0o3MDFVazFobmVtVmlUcnNNZW5YUFMrdnhMWnU3Z1N6d3l2T29raUdLVkpRL05YekFTYkc1L0RWckx4YjBHbzZwWE56R2lLZUFOQ3NjTzNDOTFuWjJXWkR5L1pTVVpETjZhQ2tURHgzS3M2L041THVGbFZUWFJqemRPWjNzdVdhNzM1OEFJTEdrRDVWTGV4UHNzNVNjTVYvajY3a0VJVFVxa1VybzNzYW1tZ0pQTDY1T0NFd0JENjQwdWFUTTRjVVJDZmI1T2tCU2c1RnVKcTlXS1lLcjljbjAyNzRwWEtWWVZkbkFQOStZeHB3bDVmenN1TEZNR05PZmdHL1hTUDd1N1ByWlFWME5KdDUxTEFWNUlRNDhhQmlmVGwvTzhqWDFuSGJrQ0xMRFBqNmV1cFRSd3d0NTU2RnppRGJBaVU4ZHh0Mi9PWmNSL2JwejEwZS93cWZ2NDhqOUJuTGNnUU9adTdpU0tiTldFZkNiSEw1dmYvSnpmcmVCTHViOTlCbUNIcmtXSncvTFlXVFhBTzh2aXJDb09va3B3RFJFSnM2K002RzhjODlaYjVlTFRERlZCaGxrc0JQZ0FsMmt3VldoWEFZWUZrL0VHNmxTYnRxUFd3dXZ5S0VadVkyQ3ZIckJ5UG1Ta3orQWhyQm1SWWxtYmgrWG1RTVVjM3E3ckN6UjFJYzFqdUdwbWxKdnM4cVpRZlBOa0M2WU5ySzJGN0pxRUVTTHZPZENWYWlpK2FqOHBlQmFvSXkwbUhUbG1DQVZDSTFodU96V2F4a0FNMVoyeDFVU3RFQzVCaGp1ai9hMlBuL3ZlZGhKbXpwYkkzdVhnaS9CMmhuZjByOTdHUy9mOVZPaWk1ZXpNQklIQkVlTzdNN0VLdzRpVVZtRmRjU2hKRXlMNWE5K3dZRmQvSnp5bDNQUlBvdEpBUisycTF2SHVvUkU1NFE5ejBGcVEydVowbzJVcHlTSmVLeE5oSU03b2k1QkNPZ3pwSXlva3BnU3N2MlM5WjlNSmh3V0w2bllZWGE0bE5BOTE4K29ibDY4WmVicUpsYldKekw4akJsc2Q5ejh3QmM4MGFlSTB3OCttb2tURGlINDhmdXN2UG9XQXFPR1VuVGVhUXlZc0RlM1hYMFFaMC9jamFkZm5zRXpyODVreWJLYWRncHFMLytwYjk5aVRqKzRQeE1MRXhSOC9BYXg2YlBRbzRiUy9XKzNrVE5oYi9EN1diQ3NocWRmL29Kbi9qZVRKU3RxTm50VStSS2F0L2NwWk05RDZoa1hxcVhPTVltNUJvYnc2ZzZFMUxneHowN3J0WGNFdlFHRHZqQTBiclI5ejJ2QTFZS2c0WkpuT253VnpXWHErNFVjTkttV3BGKzA3MGgwWFZpd0FLNi9IcTY2Q3JwMzl3UkJSOEJ4WU5Ja3VPY2UrT3Rmb2JBUXpMYjdrZ3loS1FzNTR2eSs5V0pZYmxJL3VDaFBmVmdla2pGSDdwTDFNQ0tzOFIwU1EvYnc5QVMxd3NEKzBwOFJEbHVyU3JvS2FSZ3NmZUZseWg5N2tPejlEMmJ3cVNmenhRZHZBYkR2Q2Jjdy80OS9wdkd6RHlpNTRCTDZIbkVZMmxVSVl5ZlNQN1RrVzRsTS9HMFhoQlFnYkpPeEk1WngzbUV6K0hwaEtickdUMlBNeDAxWHZNbnFtaXdlK2Q5WUhLbFFwSnFzSzBGK1RwVGZuUFVKYzFZVXNhWW1tNmE0eFNrSHoyUlVuM0orOC9RRTZocERDT21SdWtrMHBwSmNPUEVydXVVM0VZbjdzS3NEOUN5cDUrei9lNTdIMzkyZEtiTjZvUzEzOC81YmthQWhNbzRWTmVmUXUvZ3hsSEphYWlrN3BTell6T05EdStkeTAwbUR5UTM2dHFzdHVkZGZON0F2N2w4dkh0Q3JPUjd3TGYyUDd2WURlZDdWV0ljZjBtYjdRbXZBVGRKWUYrYnoyVVhzRlpyTy9xRVlYOGIyeEltbkRDTnIxNlM2RVlEVXpRMlI5RmF2R1FIb2xENGtsTnJHTUxOQWF0M3B5Tm8zaGFBUUhCWElZNHd2elBPelZuTHRaWC9qK1FrUDg4c0wrM1BVbm1NNXF0OCsxQTA4bVhreGk4OHJsL1B4MmxsOFU3MkF0YkZxbEp1cUdlak1EVW1hZGVUdFpCeDMxcnJjWGRzMUtSQmFVMVZjeHF5UmUrRXNhcURLQ1RQejNEMklTeC9KSnlycDU2dGxYUDlWRFAzbUcvSXJ5MXRlazBFR0dYUWVuSDNqTnovT0x5NDg3U1Fqc3piUTF6dFovazRHR1hSMjVGeDZOdUVURHFmbTVyL1E5SzlYUUVvYW4zNko2TnNmazNmalplUmUrVk92ZnNweFBjZEtzMDZ1UGQrWjhCMUJ6Ui8ydzVvU0loRlUrSHJFNmZMN3oxcGQwNkxEcTFReEUxRC9qeWVwdStOKzNJb2FoT1hWVFdlZmV4SUZ0MStIVWRwbGsyUDljaVo4TlF1ZWVCbk9QeEZPUEJoS2lnRUZYU3liUzByS09URy9ocGRxQzNpc3NvVHBrU3lVRnUzM09XaUJGSnJSV1kyY1gxekJpZm5WbFBqc2RTYXVBUldWOE5JSDhOakxNSDN1NWswVXI2cFRFeFNDQ1ZZV2U1b2hwanBSWGt6VU1jV0pFcytjQVR2NDZCVm83WkV2U3lsYk9PbGtLdGloVXZkRFN0bFNsOS84bXJSeHV1ZzJQSlpCdStkVlZ4akUvcHRGVTIyUzRJRnhHajR5aWMwemNWWWJYcTZEVDlPUmRCMUtneUdneUtkWUdqUDUrWnc4RGl0S2NHV3ZKcnBsMmVCSVhBM0dMazVNSjdRZ2JEb2NuVnZQcGNXVjlIRWp2UDFtbEVkZmpERm5rVXNrdG5XTCs5OC82ZEVPWDlQNlo1dE9jWVp1Mys5OTJ1dnR1ejRXaTNIRkZWY3dmUGh3VGozMVZJWU9IZG9pdzJRYjQ4bk4xeXFsbURObkRzOC8venl6WjgvbTZhZWZKaGdNYnQwWGNSWE1Lb2RWRGJCdkR4aFNESlpCdWptMmRoUVBxaEFDN1Rqa0ZlVXdibGdXM1lzRlUrYkJ0L1BXdHRjYlJnS0xlcFdGZzdrTm9rMmprU2p0WTEzYzAwSGdyc2ZjbU1HUEJVcHBEaS96N3Z2blZUdXlxRStnSFFQTGJNSjJzK2lSVjhmYUprRkZnNE1VY1pRYkJtTW4xcXhyZ2QvUUVIVHhCOXdXRG1ZSGplV1RDQXVrRnFtNkhlMmRGejVOMDJxTGI5NlY1UFJLRXBnYndKK2xjRzJCS0d0Q3J3bGhTb0ZXa0l4NWNrSktNQXhCMGxYSW9NS0pTd3doOEdmclZFV21RRWdYZjFHU3FhOEd5TWtXWUNZMmZXeEpTZGVpYkxvVzVuRHVDWHN6ZGRZeVBwdTJnTlVWOVNSakNiVHRvT0lKWENmVGJpT0RETFlGbVIyVVFZY2NNN3I1SE5ESXNGZGNxSlBlNDlzbC8wY0Fwa0Fnd0dvbmNaQVh2UForMmk0cTdBTUJzaW01VHNkdnZxWWQ0eEcyTjZhTStwa0c3aVFOMHBBRUFwTFNvaEFKMjZXcUxvWnRxdzY1UHdLTkZCcFhtU2pIUjdhL2ppT0xabkJpeVZlTXpDa25hRVRRR0xpdWkwcis4RmhWREJyZWc4am5FTjRQQ3MrQzhQNVFlQW1FeGtENW42SHg0MDM3dytLelFVWFcvYjY1RDhtWkFDWFhRM0JQMEkzUStBWlVQK045cGh0TDhYWmxsczVtYmRhZDhaRldjWks4NHlwcC9MQ0Fwcy95ZDlsQ1FiSHpabm5UKzFGTFFtNGp2eXZxUTk5bHI1SmQvd0pqVHoyRmhhSTNqNWNQWjNWdGpOVkdKVG45dzZneE1MVGlNMmE5OVQ5dUdGMUYvOE1PNTRhM05XYXVEOGZ0dUcra3RhYTZQazVOUTRLSzZnZ0g3ZDJYa1lOS2lNV1N6RjFVMmVMamI3ZmRyRFhWdFZGcTZtSlUxRVE0Yk45K2pCelVoZnJHT0F1V1Z1K3lqYTUzaU45TWFiU3Ixc1V5V3ZKSzErT3lOMFdibXJUb1JKTFk2clU0aVFRTEY4K24xbWNTVFRvRVo4d2tyNkFRWDBFZVpsNXUrenFsWi9DajBvbTZTWXREZmRuME0zdzBhY1VjTjhFcU4wbEVlMFd1V1VMU3piRG9LUzMyc2NLVVNJdjNrbzJzVnZhUE5oUm5HZ3JiRGZMejA2WngrVld6T2ZpRVkvaHc2a0FnanNDaGY0OTZqdGhuSmIxTEcxbTZKcHQzSjNkbjZlcHNFcmFCUkFFbWJsMHRNd2IySXAvV25Dc2RlbjgxT0VMUXV6N0c3Wjh0NGZINk9NOE9MOEdXRWtNcDNEU1dDUUlRcmtGeGJpTngyMlJVRHkrbU1ITkZWL3lXUTFWOU5ralY1alZvU0lGcnU4aUV6Y0VIRCtQV0t3NWg4T3BsVkY1d0k5R3BNeEZhSUV4am8vaTNNQ1FxYWVNa0VsdXhUalJPTEFlU3F4bmRmekpEeWhZaGRSeHQ1ZkhoekJHc3J0Z1Rza05JSTRwU0dhOUxSOEYySFNhditJNnFTQjFqeW9ZUXRESjFqeGxrc0pGOFF0UFhicEI3Unl1QzQyS1Y0MTdPN2pWa2NxakxvZFZtNkhGWHFDbTJNQnZZOXhHTmRtSFNKZnhZazIrZXYvZDg3S1JOdmFPaHRCdXVrVXpaQmQxNDVjL25zV2pHVWk2ZjUrVmczTkszSzI5ZGRSRFJ0ZFg0amppWVdOTEhzamUrNE1DU0FDZis1YWVFL1Uxa0JXZWdWQXdoek8weXArdmJNVWJ2b3hIK0p0YXVaOGRFbHF4Z3dYcDJ6QWtwTzhhM25oMHo0UWY0bTF2T1JnSGFkc2p0WHNnZEErSUEzR2dWVXIrbUJtRVo3VXVMY0YxeWYzWSt3alFKSDNVRVFocEVQdmlRdkVzdW92NkpmelozbGtqN3RhS1V4eU5USC9QMGhaeWdINlUxVW1ic3IxMFZMaG9qbFdYeTI4aGF2ckdqM0JMdVNwWXdhTlF1Wmtlc1d3bE92U0JuZnh0cFFmMm5saGRUMllvOFBjTXFSQlZmaDVNb3BEQWJIcnhoTEJkUEhNQXYvajZEano1WkJUNkpGYkp3WEpXcDJmc1JvTytoeDRyemZaSit4Vmw4MlRPRTJXc0VXQmFCVWJ0eFdBRWNzRFRDZm9PakxDSlBHSUhnUm92WmpOVlJrRnhPbWIrSzNub2hxNnBjcHBXZGpZelgwMy9ONit6ZHJ4N3RPc3hOWnVFSUV5TmF3NGdWVDNONHZ4WGtCQk44WDIzeUgyY1F1cVhaaDk2cGZqcTMwZThsckFaU1FSb3ppaXhhU0krcXJoUVlpdThpUldoWGdPMEhVNEh4dzcxN0ZRS2hYYUxBdC9taitmWHU5L0JtNlZGY3NlQmU5cTcvRmtjcjR0TEUyRm0rZk5mZGhFeURFbWx5ZmFnTGc0d0FEOGVycVZTWlBodHBBYjJCb3lTRHJkZlhiSWVLV2ZOWit0RlgxSzljazVtUUh6RkUwa1pMQTExWVFHVTJyQXpaRFBjSE1CdWl5SVltdENrN2pzOHNnMjI5V3hnNEJHVU1TOWhvTFVob1AzRWQyUFZ5dmFWZzF2SW1IdnRnRlNHZlpOcWlCcEFDdHptV0xBWFRGamZ3K0FlcmlTUmN2bDNXQkZ2QnAyOUloZFlDTnhZR3FSZy82R3R1T3VCL0hEcHlHcUQ1L0x0Qzd2c3loNDhYK1hHMUlNZXZFRUpUdFZXQ1Z6Q3dOTTZ2amx4THlLZHdsZGpjYlFZZ05ydUpxcWZXRXBzVDJUN25ub2FLc09hT3ZSTE1LM0M1ZUlhUDBvaG94ZVdjUVVkc1c0RTVjaGloYXk5RDVHUVJ1LzhKN004blF5eU9PWHdJNXBoUkpQLzNGcXFxZXFjTjhZVkhUaVllUzFLdkRPVHdFOGl5SzFqejlVeTZkdS9CL2I4K0RLZThrcm1SQkVqQnNYdDBZMkxXVUpxcXl2QWZmUmd5NEdQSm16TVlGclQ1OTUrUEl4Snp1T0xPOTRuRjdJMzhaNm10MjVJTDJaeGVxUFcyOThKb0R2bXZYTkxFdjE4c1o4VXliNWQyNzFuRWFTZVcwS05mVmlZdElJTmR6QzdTQ0NGYmI0QU1NdGp1WjVyWHNGb25haEcrZkVLanJzUFgvVERpM3orSlV6TXJkWTJCUU8ya2JiSHhZVktiby9uNWN4WUFmejhqU1Y2andCQ2doYzdVMkcvemNwQ2VudE96QjBXL3V4WGZ3QUhVL2YwK1ZEU0tEQWJScnB1WnBHMkFxNDFPTmQ2TitKNjI2SzhlMCs2OFVrTktYSzNKeWhMODdiZkhNR3BzSVVNSG12eGt4a0pxR3pYU2tsN2ViaHNDT2p1cWZseEtyOFpVdDJKQzllcENsV2FYelRQZVZXRGtaUlBlZTNlYVBweU1paWMyWlZKN2RvemVzWHFZN21STlJvU1I1dkpzQytlVjFvQ1VSS00ycDEzMVg4cXJtOEJ2b3JYR2tBS2xkWnZqeUVLQUtSVjJ6QSt1NVBCOTVuRDc2Uit6NTdqVm5Iemp5YXhaV29KWjBJamp0dDhQdTZyYzRacjdLL24yMkFRM25WNUkyVUVXdGUrN1JHY3JWRHc5S1lTRmhpeERZUzZ0bzNMWVlNYjJOSmtiV1VMWG9pakxsbnhEN2tvWHMyOG90ZEc4ZlJheUF1UUhzaG1RWDhhY3lxWHNWamFJMlpWTGlTUWpDQ0V6NnQwR2lDOWJSblRPSE56NmV0eFlEQWtrbGkrbjV1MjNrWlpGOWw1N1lXUmxaU2FxcmZMWGNURzdGR0pQL1piNUl3NWx5UHYvWnU2YVZSeTAreGhtenA2TlpWbll0bzNqT0ppbVNYVmRIYVA2RCtTMWQ5L2g2SGVmWWNYNTE5SDByLzloZFNueVpQbDJUa0xwQ0gzbndLNEdwL3p0QkpTRTkycXJTQ3I5Zys2SDlYbmJOWUtrQ3BCVUZuVjJQblYyQVhWMkFSRW5pNUFaYWROM2tGSWdKZlRzbWNXWU1jVmVUU3N3Ymx3SjA2WlZVbGtaQThRdXAxTnBvS2RwYzFxNGdXTkNUY1RYSlBqYnl6SCs4MWFjVlJXS3BMM3JTN3ZPMWxNdE96dEFXVmtoSzFkV1VWQ1k3WjNOSzZ2bzNyMkl5c282QUxwMTI5VHp4Y1FycTFqOCtITkVna1ltOTJHWG1sOE5hS0oxRlFqcFkrbjBsK2cyWURRMXk3Nmxlb21tWk1BWUV2RlNVRW44NFR5VTBueTN1SjVMN3B4SzB0SHNES2VWS1FWWmxrbE53bDdQZk5YaytFeHNwZkFia29qdGt1dnpyaW53VzloS1lXZDZJR2FRcG5yTUZ2MDJXcU9UNi90cjFxdlViNmxmQnRxWTc2NjFKdFpVU2VXY1IvRDdBMWg1dXhISUhZZy9YSUxwQzdUdXlib0p3elBhVk1YYVJaL2cxSDVCTUxjblJRUFBJaGd1Mm1Mc1IydU5uWXlUaUpTVHFQOGV1M1ltaVdTYzRtRVhFOHJxOHNPZjIwbHd5ZTFOM0g1NWlKK2ZHZVFQRDhlNDZaRTZQcW10NDNDemdDdXp1ekZDWkJGWGlpZ3UwbVBOeVdCYmJIVUJPdWx5K1FYN1VkY1E1OW1YcHpON3pocVBVTXQydWV5MHNZd2RVY1lwbHoyTENQclNoMnM1Z3gyZzNuaGMzSWxGMzFQMTVOL0pQL0ZzYXA5L2t0S2Iva3oxRS9lU2ZlaXhvRnhxLy9zRVp0ZnU2RVFjcTJzMzZ0OThBZitRa1RTODl4cloreCtDVzF0RFlzbDhRcnZ2UmVNbjd4RGFZeDk4L1FaaCtOZHJCTjFHbkZCWXpZZjF1ZFRibGhmM2EvYUhLSWY1VmF1NDg5T1grR2JORWk3ZjZ5ajJQT1k0L1AzNlUvL0M4OFNtZkltT3gzZTkrSHJxV0FzN2NIZ05ETFpnS2ZCdEVFcDhNRHdKejhWQkdOQW5DajBjR0tqaFN3Vi9EVzlDUHpSTlhNZkY4QnM4ZWYvakhQVFkvcXo1N2dKdU9NK0JzSVhiWUxNejI0T2FlOXgyUFFLQkljRk8yRlJLQ3hFTXNPYU9mNkJkRjlNeWNhTXhBQmFObjRnT0JoR1dpYjc2VmdEMnpBbGhtQkxodWxSckgyWnlIRWlybGNOR2lCUlJNQW9kdDlBOVYzb0pUOHQ2SW9OSmxBSkJwamxZNXp2dFd0d1BvRFhTSDhETXpVUDYvYWhZMUF0eUM0RXdURVIyQUptZGk5MVFEdzJONnlYbjZBN1pzMmY0ODVuakpQakNqaUJTaFhpYlE4QW42TjVWc25pbFMwV040cFpMdzN6MXJjM0EzbDRRSmh5RTgwNEljc1h2RzlGQXZ4NEdxOG9WOGVUbTM5TklLVTk3bTJITzhPZHY5dE4zMUg1em0yS1FUTjJnWUF5dFFNWDlYb1REN3lKQ3dlMnkzMlNMR2UvOXZqNkpsMXJ2bWcwZmJ5YWF5OWpGVzc4WHRTTlFLZkpqWVdtRWtWNkpQQ1Y1UGs3ZnJ3c0hEczBuSEpDZ3dWVWEyOVdNNnAzRnJPVk5WRGZhZkRxM25wcUk3VFZkelNUd2JXRy9yU3QxY0JFb1lZRXdQUzR4bGFDYnJtS3dMbWNrVll6dzJ3em9VMERaNk1IazdYc2FvWEZqc1lZTVJRWURyZDV6emRKRmZQdml3M3o5d2tOVWlSRDcvL1FYM3ByYUJRcGZKdDU4ZEtxYkw1Q3dRZmdoR0VMZGNvc1h0UEtaRVBFQ0x1YW9FYmloTElSbElpKzRsQ3pncEx3UW1CSmNoNlFLY1hYOEVpS0VRTHZySDRpcDQwM2dPQTdISHZzeUFJN2p0a2c2dy9DU1c5b2lnNVhXUkIyQjZ3L1RxMnNXQTcrWVFtRk9NVGxEUjFOYlhvOU1KZ2lhSXBQcm12RSs4UFdzQ25BVVk4ZVU4bytiOXdQZzBsc2N6bi9nREI2LzlGbkdEMXVJemh5eUhXdEVhZGk3enVXRVNwdlJqWXFpVk1DeDJoSk15NWE4VW16eFphNkJrOW1mR2V3TW40YmpVUGZxTzFRKy9EVFJHZCtob2pIdkxOOEo1M20yR1VZRGp5OTlucmZYZnNMMWd5N2kvTjZuSWdESFRwSzF6NTRNL3VRVktoOTZpdFcvdXh0NzFScU1ndnoxRGtPRlUxUG5GWG9FUEZJM0hVK0FFQmk1MmEyK2sxTlZqVlZXU284N2I2YjRrbk85eCt3a3B1VUQwK1R4cGYvbHJ2a1BzU3BXVG9FdkR3RmJWOGlZd1Zaamo5dXVCd1RtTnRqRHBpbHhYWTFTaXNaNEZHMmt5UHFsaE1ZSXptSDdVWHIxaGREUWhCRU9VZmY5OTloVjFaVHN1dzl1SklxUm0wM0YvOTdCZWZBWnpKd3NqNXgzczc0R0E5ZHhBY2NyM0pQTjNMMFNSQkRoRzRyaEc0b1JQc1c3WHRXajdVWG81Q3hVY2dZNitSM0tYZ3l5SExjMlFHeW1qK3hER3RISm9HZkh0elFZMEJscmVGZTIyNFJudDlsSmk0SlFuTDhObjgvWjNTc0JlTHE0aHF2bjk2RW1Hc0R3MmFrazZ1MmtQR2dOeXhmQm1oVXdjRGpzc1Q5MDdkNytSaGVkeG1GcG81VW02cGFTVUYxSnlNR0V4R3F5bVl4UURWN3hvQXg1WkFKR0gveU5pMkJ5REw1UzBLZ3lDVWM3R1VaV0dDRUZ2cEppb291V1lPYm1vTFZPMjJDOWFLTURUcU14aE1TMWJYdytIK2VlTklRTGp0K2RzZ0tUMTJZK1R5QXhucVZMUG1aMUlNUnhBNDdpYS9VQmw1eDhHQmNlTjRKSFgvbUcrMTc1R2p1cE1Td0RWNnMyaC9JN2ZJZlgxTURkZDBObEpYenpqZmZZalRkQ2NURmNjNDMzczBQbEtMaEpPTEkzak9zRm55eUNlK2JBdDlWUUdJYm5sc0RncVhEZGNMaHJOdFRFdktONi9lOXRDSEExYURzMUljYkcxMmpQdk1aeDRkajNVL3JsT25jT0JsNytmWnZuYzRNTDkrL3lKV01McHpNd2V5SFRxbmJiT0xkbXEyUTdHTkpsUXRjdnVIYm9mZXdydmlEeXZHYlp5MEhzQ3VFVk83VERCTEJkZzZtTGVyQ3NPbzhSM2N0cFN2ajRhRjRmNmlPQlhiYWdRQUJkL1lMcit4cWMwdFVneTJqYmkzUlNFZm13bm9ZWHFuQXE3WXpnM2c1Mmc4QWpkVyt4R3dKYkcwZXpNSk43ZzdUUVN1SHptUngyOUFpYW9raysrV29KQWIrSkVJS1RyL2kzMTRESE12alhxOS95OFZkTE9QQ1F3WVNDRnU5OXZvaGswbWxiUW9RR3RNSVhzRGpsb0o2OCtlVXFGaTFyUkVzeWhBVWRvdE9DVm1Ea2E3TEdKOUV4SDdHcWxLQ1RubG1WWEdwZ3I1Ym9wTURYMXl0dVN5NDN2RTRNR1hSNmZQTGsrV2s5dnQ1bDEyN3ljUk9GalVHTk1CbnRsUE5FMVN2RVJ6YlIvZFpmRUJ6UkQ3Y3BpVTdhWHNGb3g2UlB0QWtGZVpmdUd1ZTVGSng5d200Y09xNHZDZHRoNWowZmVvK25jbEhTenVSdHR2djlDWVNBMkx5ZXhMN3ZRV0RRQ3JKSGYwMmc5eEtFMEtoRXFzSEZCZ1N5aG1pZGE3R3AzbU5TUU1TRmcvSVZ4eFM1dkZsbDhGcVZ3Um5mK1hoN2JKemRzeFVmMVVweXpVMi9mc2ZQaVVacmhaQWVvWXBkdHh6cHo4WUk1S1crZjl2TzBPYXJHcUlKUHAyNWxPWGw5Wnl5YUMxbkhMWTczWXB6ZG9rRThNNnNuNW1XQWJaRG5lSG43ZHZ1NFBDanh4Q3lKTzk4c1pDakxuMEd0U2JCYm1jc1ovZ1ltM3VPZTRydVdRTW9aeHF2dlAwWTFkUEdjK0hML3lUYTZPUE1vL2JneHAvdHk3bkg3d2JBM1U5OStZUDJwTmFRN1pPTUt2SFRLOWRpeXFvWW55Nk5VaFZ4Q1pnZVlVV0dsMkxIMm1Cb3NNTWFBcG9DRFNMbEdyZXpRNkJVeGkzWGtUNDJEWG83SndtSUh5R0hydFlpMWVOUnIvc2J0azhqN0F4MkNCVGdRM0NDUDB4ZncrS0JXRDNmT3NsT1l5Y0R5RDR1c2pEVlNLUkNVdHpUcGVCYms1RUxMRTcrRUJyQ21oVWxtcm05WFdZT1VNenA3Ykt5UkZNZjFqaUdwM0pKM2JGOWlEdWJmR2h2NHdhdkdibkVOV3lFSFVSKyt4T010YU13bElscE9oNEpzMnZnTGp3VXQrdTNxS0V2bzYwWWhySVFRdTBVZjZzQXBGVDBMS3htVlgwdVNjY2tZRHJjZlBUcklPRE14eTRna3ZEanMyektjdXRaWHB1UFVqOU9zcGt4dDl5WXl2UDM5TjhLYVhoNURYLzh1NWRuYXBtNEVVLy9YYmovc2VoUUVHR2E2Si9mQW1qMnlBbGpXaVk2a1NTU25jT1UyKzhqbVoyTGRCeXZTWXFVcUZnRTY0c3ZrTXJFRGpzWUVrVGN3RlZBd1BYeVR3ZVBRb2JDVzJTSTJPNTFDVXFUSFRJcE8zaFA5aDFSeklxcUdNL1Bic1J2U3U4UzAyQk1sa3ZsVTIvUkVIWGFYRHk4aldZa2FPaFQ0T1UvejF6VmxLbEJ5bUNIQ2RQRml5djUvWklxbnV0VHhPa0hIODNFQ1ljUS9QaDlWbDU5QzRGUlF5azY3elFHVE5pYjI2NCtpTE1uN3NiVEw4L2dtVmRuc21SeDFRK1MrRFNUUFBidDI0WFREKzdQeE1JRUJSKy9RV3o2TFBTb29YVC8yMjNrVE5nYi9INFdMS3ZoNlplLzhONTNXYzA2STNoVDd5c0VJZTN3U21FSlZ3Y0djM1BaUXE0ZXNwU3k3QWF3VFJ4WFlnaTk3dXh1THV6UjZ4OTZySXM1YnVGNXJjRFZBdE5RWURuVU5JYjQ3ZHgrM0xhaVB4TUthemxHVnhFWEZrWmJOcTNXVUY4UGI3OE5jK2ZDOHVVd2FSSTREaHg4TUpTVmJYM3NSV3RZdFFvKytBQ21UUEhlKzczM1lPVktPT0lJeU0xdFd6UDMxTTlzVXpHK09DcDZobTMrc3p4SFBiMGtSNnlJK1lUWXhVNVNIUmZnZ3U5bzcxeUozNWZsUFpiQlZrNm9BaVNEampxQ0hvODlpRGxpQkZhM1VtcFRUK2QwSzJYWWlCRTRuMzFBNktnaldyMW1SOXNkVGxVTmlZWExTUzVmZzJxS0lZTityQjRsK1B2M3d1cGFsSW1EN2lySG5OQVlybVJrdjdXY2NOd01TaWZYczJKTkxzTjdWekJoekNLbXpPckZrNitPOVpxczZKUnZSRWtLYzZLY2V1Z01WcFhuRVl2NzBFcHd5WEZUNmQ2MWxudGYzWXY2K25DcStidFg5MlFKT0hMc0FzWU9YOFpYMy9Wa3hacGNUdHgvRHZ2dHQ1Q3ZGNVV5YlVZZlhKK3pXU0phTDl0V3M2YjJETEtEY3lqSytnSlhDWVJJVDZKdXRkR1pKemJJUDlJZWdmTDZkY0ZBZHRCa2RPOThjc1BXRHZXWmVubmVIbUZXYS92aXZpM1lGNy9kaEgyeExsK2pSV0hYWUJoUVVod21xUzNtbGZkbmtHOHUzZVJDcEQyWVB2MzY0aVJpcktxTWJiOWMydlJ6N2JSVEpkVm9hVUFpN3VWUUJBSUk1VzVWTXkzUmFpeGlsNWhQRjAyeE5MazgzSVVKVGc1UHZGZkRLZE5tY2RaSjg3ams1SmZvM3IwTDQzeERHZGRsYjY3b3VSOUw3ZVA0cXJhS2o5Yk81cXVLT1N4cFdrUENpWHV6SXdTZElwbFlTbEF1S3RMbzhUajQvTnZsWXpwYlhhNlo1czI4TjBwak1zMTJ2NGNyRGN4a2d2OGNkaWJYbkhFZTU5MytUd1pNbnNHTTBnQnJqVnlHai8rT2QycEdjdi9QTHVjWHIvNmJ5Lzc1SjF6TGg2bTI0c3gwTW9sWEdXU3dzMUFSM2ZVYjBnaElOUmpYSUlXWFB4UlBlTHF6WmJUb2trSUpNQVVvNVJIMC9RaHQwYzZhdjlONTFtSnpMa0NMNXIzdThWYnRjRFo4em50V3JGdlJQM0R0MWoyWElhWGNHUWFHUnJzdVJta1hpaCs5ayt5elQ2VDYxM2VTK0dvR3FxR1I2bXR1byttNS8xSDR4eHNJakIvbnZjUnhFSWJaUXFVV245SEk2c293eGZ2NTBZWkxkQzdrekt2RktrN3B2WUIySFlScGdvVDRKMSsxZklZSStrRXBmS09HYk9Jek5sMzBvaFI4UFFlbXo0UEhYNEx6VDRRVEQ0YVNZa0JCRjh2bWtwSnlUc3l2NGFYYUFoNnJMR0Y2Sk11enY3Y1VMOWNDS1RTanN4bzV2N2lDRS9PcktmSFo2d3hiQXlvcTRhVVA0TEdYWWZyY3RwUGdOOXR5UVNHWVlHV3hweGxpcWhQbHhVUWRVNXdvOGN6NjN3RitRWUdVa2lGRGh1QzZMdlBuejBkS2lWYXF4V2NsOERpbmhCQU1HalFJd3pDWU8zY3VxdmxjM3BtS2hBSmM0U1crTkc4UGQ3M0hKQjJhbTIrbU9XbFBoMnVQSm9nYWc1cW5nNmluZ2dnSjBoWElrSWFRM2c0ZjZOMHVSME5RZW8xYjNxc09NYVUreU5sbFRaemRyUW5EMHFpa1Z5UXFkOEVFUmdIMEM4UzVvTGlLay9OcXFWOFc0WS8vamZENkp6WnJxNVJYNzlvR0JIeGlJNjdNVS83dzg3YTkyREFnSGtkSG82bGFYSW5JeWdMVFNEVWgyejY2K0dsdGRsTTRLS1Y0NnFtbldMcDBLUU1HRE9DNjY2N2pwcHR1b2srZlBwU1ZsYld1UjArUlBqZkx2R1pib3ZteGxTdFhzbmp4WXY3d2h6OHdjdVJJRmkxYXhDT1BQTUtsbDE2S1lSaVlXK0czQWJ4QzV6Y1h3dEo2MktjSEZJWFNpczloUi9DZ2V2UHNnZzd3MUsrSGNrRDNWN0hqZFRTZGRTcDdYeHBqN2VwcWhNOXE4MW15MkMxbG1TcGh1ZHNscFVHMGQzOXBOQ1lXQ1laWWl3aUxHRWx0c2NEdFRvUEtSWWprTHVFcjN5cDBaQVBFWm1VM2plZFNBREZiTWJ5clpQWDBTUUFNTDl1SDc4c1ZBWFA3NWt5S0ZGZnM0WU1tYzlpd3hYeS9Lb0RmZE9pZmtCdzdkRHFGMlRiLytubzBzOVlNUnBoMlM1NzZEamFJdkRsUTRDalJxdTZzaFI2cE9kNlpxdmZGMU1US2ZYejZUejlaWlFsOFFVMmkwYUJ3ZUpUZSt5WDQ2cEVncmcxbVNGRTZObzRaVUNRYUpaWGxNUEpBbXk0OVhSeGJzT0NqSUd1bWg4Q1ZtQUdOR1ZETWVDVk0wNW9BUjE4YVdhZnZiV0plZTNZcjVQSXp4blBrL3NQWVovZCtGT1NGZVBMbHlTU2ljV3JlbThTOFQ5N0Z5cWovR1dTd1RWaWU0VWJMb0FOT1llRlRDQXVXem9mWmN3b1lNY3ltWi9kR2hPWFZ3K2pFZGpuYTF2M1ViUjRxMktxRnJFZ1crM0gzNndLQS9Ld2NWZU40MXpqS2kxM29yUnhUQmpzVkFiOUJhV0dZc2k1aEJ2ZktweUFud05MVkRheXNiS0toS2JuVnQwbWdrVUxqS2d2WHNjankxM05FMThrYzMyVUtvM0xXa20wMmVqVkhTWVYyRkRJclNLanZPT0NqTGJ2Q1l0RHdIa1EraC9CK1VIZ1daSTJIbmc5RDFXTlEvUWpZMWEwcHJSSkx3U24zL2s0czNUQmZDS3dDS0x3SWlpNEFZVUhqbTFEOWpQY1pibXhkdjRnTWZ1am1wSGo5ZFh5SGZxeEtDbFNUZ1lvWXUvVDBhdFhNS2JUemRSRWhKVHJTd01ObmphSDcyNi9oTDNtYzRlZjhqaXMvSDh5VFh5N25jUE05QXNJaE4rQmoybW9majg4WXhIRWpqdWZhVTBjVCsraEJUdGp0WUZidTA1dDdKeS9IeUFyaWRpREJnWnZpMHczbUJEaHEvQUNhbXBLODkrVWlWcXl0WjF0SWJCelhxNE1zQ1lVNWVzSkFWbGMwOGVIa3hheXViR3J6dTNhMjB1dnQ3amZUbWxESUlpL2J0eTRPNC9ON2VhQzJqUllDSVFUVmRZazI4WjNaZGZVc1hqQ2ZSRGhNcldtd2RQNGNDcnVXRVl4SFdiT2tubDZOWFNqTXlmYjZSR1Z5L2pQWVFMY29rQWFIK3JMcEovMnNVQW0rc2VORVVKUkppeDZHRDRCeTVURERpYkdRQkx0WkFmb2JmdkRCYThsNmFwU2JWcXJ0anVDcUZZRHRTaURCTFJkTzQ3MVh1dlBoMUw0RXJIcHNSMUtjSCtmMHd4ZHgxZW16S0NoS1VGUGxKejg3d1VNdkRhR2lKdGpzSU1USXptSEk4eDlTbEJmQWRsVEhwRUh0dDkrbXp3Z2h5RXZZWEQ1dEpiM3FZOXd6cGp0MVdUNE0yOFZOVjI1Zm9kRkNreDFJOEl0REo3R3lMZ2VBWTBiTTUrSFB4bEJabitWZHN3WC9xUmNMQjlVVUp6c3Z6QTNYSHNVWisvY2w2OSt2c09yUkYzREtxN3grRFJ0eWNxZGtwdFBRaE5HbGtENFhYZ1MzdHVacE0zN0FUeUlOZ2QwUVpMZmV6M1BQWmM5eXdKNEpDTUE5ZjRPVGo0V1NMbS93OEV2ZHVlN0pLNGk1bzdCOERTalZzWEZQOTBjcTJ4YlZyR1R5OGxtc2JhcG05MjZER045bmRFYmdaNURCWm5UMGdIWVlGeXMzQmlicjhqK09sWjc4ZW5hdnNYUDkrZit0TndML2NvUTdYMGtyd1Q0UGFDWmZDY3I1MFRtMDlyajFacThGU1ZMaUd4ekY3UVYxSCtXeCtrLy9JQlMzdWFkWEx3Nzg5UW9FOEpjTHIrTGF1bXFpQVIvNml0OVNjR1NjOGZYWkpPY0VjSVZDWmp1WWY0dERqdlFTWXJiRDhidjdCbmJNMnBRZHMyb1Rkc3o4VGRneG85c2Mvd2Vrb0w0cGlabnF0RnpmbFBUeXYxUEtVcHZDLzFLaUV3bHdYUUo3alVWSVNXelNselMrOEJKbVNSZnZlYndjVHFDbDkyMDZRa3FCN1NyZStXWTVBQlBIOWNNeVpFYlF0RWNtR1ozUHQ5VmN5U2tSdkpwc1lKWWI1NjV3TjNZemc5Um9COW5tcmhFYkd4eENnaHNSWkk5MUdQaFlJK1dQQjZqL3hFSVliRjIvUVJsRTVoN3AwWFZyaFZLdys4QjhQdnpIZ2J6dzRRcCtlZDlNbHN5dGdXd2ZwaVZ4M0YxTDNrc2hjWlhyOWRXV1JrdCsvbzhWUmIrNldSUUJwWmJnV0VzU3RBSUVURDhuREJ6UEVYM0drVFZPWWRtSzZycUVNRDVkQyt2Vk13bXR5Sy81bG1QYzV4alpKMEdpS2M0cmFpOW9yRVZwd1hmRng3T3l0b0xTaGErUmNKb3c1R0xzN0JKVzVPekJxN0hoR011WElScXJjZHhhd3JGdlNCVDJ4ZkhuN0JRL25VQ2pYY0hFdytlUVhiQ1dwOThZaTQ2SDZPNHZabVJoTmtaaFBxdHFFOGdGbWtBb1NVblpQTXFyODRuV2RkbXlid0tCUWlPMG90b0k4V2JaaVh5VHZ5ZW5ybmlPQ3hZL1F1OUVKVTFvSERhYkFyUEQwY3kvZUxJL2wzNkdqNy9IcXBqaHhIWXRXVUNLdG1KOUl1OTBSR3BjaG5USjlqWGlOeElrWEQrTmRqYXVNdFk1cHpKbzMvMjNUTHJ1Tm9Sa1k0Um9kUjFyYXhzeWsvTGoxRHF4ZTVUZ0RDMURWOVZqK0d5NjlNb2xNYU1TWjBnL1pNVEdtcjBjR1kxbjlsa2F3TVNtd0tpbHhDaW5RTmJpWUZMaEZGT2h1dENnc25lNVhPK0FKYm55NFhuZ0t2SnlmUkIxR0RJNEQ0QzU4K3FRMlJZWDNQTWRHSUp3d0NEaXR0MHdNS1R5OGxOaUh1L1QrRUZmYzlNQi8rUFFrZE1BemVlekM3bnZ5eHcrWHVUSDFZSWN2MElJN1hHaGJ1VjU2ZmNwZm5Ya1dvYVV4bkdWMkt6dG81T2FoZzlycVA1UEJVNVZjdnR5bDJxd0RmanZFSWVGK1pxcnY3WVl2ZGJyQlpOSjRlb2dLWnVUaGYrVTR6SDY5eUgrNUhQWW4wNEMyMFlyaFU0bUlSb0YxMEZZbnI5Sjd3VHVrdEczWG8vMGFJQkp4R3lXV3o1a0lFREZYeDVFMlk1blh6UjVmRGx6OXprV0hRcGptQWJ1TDI0RHJSbVVIV1NFejBTNkxtdTFEeU01RnFTNVNXZVlTa3F3WmJNVHdXc1FZR213MnI1L0hVZHY4ckZBUVBMaW56L24rZ2MwV2NFNkJOQVlxMFV1bU04dkhqNlNSRUpobXBuRHJHT01KYlhCL1JVYksrL05OV3FaWEl5T0Y5MWFJWVJrNWNMcGFEUTkrbzlwZVN5RHpuWXZPK2xwS3d6UU5qcVp3TXdmU3RhNFA1RmM5U0h4K1UraFl1VnBvME0wNStYVlpXdCsvcHdGYVA1MmhvTlJiNlI4SVJsdFo5c21XTFRrazVoZHVwQjc0Zm40K3ZlbituZC94RjY0RUptVjVhM3hEQmZHVnNFbms1MXF2QjQvcThEY1RubWxRZ2pjZUFMaU5ySmJObFBXTnZEcFUwdUoxRlJRT0tJbnRaK3RSaVZqSUEydjFuOExOdFNPcUI4WEFsVFVRZG1wUDlDdFZDVXNFRUVqczBYUzczQnV1VWYrUGozSU8rVUk0dDh0SUxGczFicjJrQ245MW04b1NvSUpBb0h0cTRPdDNlRHZ2bWVma3Q1emVOZk0xcmFhMnprejlXUktqaWpsNWJFb3JWbTJ0QW9zQTJFSXROSzRUWEVJK1JETnZXaCtBS2FoY0J3RHV5SE1vTUVydWV2Yzl6aG1ud1hnZysrL0xlVEZMNGRBYmdUSDNmcjFsRWhxSG55eG5sa0xrOXg1UlJIN1hoa2tPbHRSLzZGTGJMWkN4ZE9vUDFaS0xNcVFRZmY2NWRSL1dFdkN5cWZNYlNBd3Y1R3dxY2pxQVpqZXhVcTdHQnA4aG9VaERTekRBanRPdGkvRXhNSDc4NTl2WHNleEF0dTkvMkJuUTgwYmI3RG9xcXRBQ0krVERhaDUvWFZxM253VHE3aVlrZSsvVDJqbzBNNm5memJuTktzZGY3KzE3V0RrNTZKV1Z6QjN6SkVNZXZsUlpuejNIY2NjZVNSdnZQMDJwbW5pdWk2TzQyQVlCcTdyY3N4aGgvT1ArKy9uOHNmdm9xSlhkNnJ2dUIrek1EL0ZrNzM5dmtPSDZEdVdBVW1icG1DSWo4NjVrRVF3aFB3QmZuZFhHeWwxUjJCSm0xN0JSV2drMVlraWJwcDFOejRqUWRDSW9yUnMwKzNPeWZGeHdBR2xCQUltQXdmbTBiTm5GZ0RMbHpkUlZSV25wQ1RJcDUrdW9iNCtzVXZvVkJyd285azdFT09jN0hwR0VPWHJ5UWtlK2srTUwyYlkxRGFvTFg1UG53VzdEN2I0YXBiZHFlZmlralBTMjhmMXdMT3Q5MjVUVTR4VnE2b3BLeXVpcXFvZWdMS3lJbGF2cmlZdnoxdTNxMWR2L1B5cVZWVUVvbzAweFdvSlNIYzludFlNT3Z2OGVyVmJFbWxsc2VUci94Q3ZYOHJYTDcrSTFockRBTU4wcUY2NW1ENmpKNkpjRjRSQlk5Um16dHdhSXJiYUtRRzZ1T1B5K2RwYUpuUXJaSDU5aEtCaElBVTAyZzVLZzYwMENWZEIwaUhwYXVxVER2WXUxTng4UjlUYlpiQ0Q5Wmd0MUM4SC9DYWxmZnhFYkUxQWFqUXVTU0h4Q1VnNG1wQWxxS3h3aVRUWmJZclZDeUd3ZkZra2t4cTc4aTE4Vlo4U0Q1UWdnMzF3L0gwSjUvVWxrTk1MZjdnSTAyek43dVc2RGhYTHAxR3g5Q05FMHpjRW5mbEVhMFlUQ08ySEVCdG5VVHEyVFNKYVJieGhHZEc2eFJpSlJhallVdHg0T2NsNEJKMTNJSllWM2pGcmV2MitqTnNKRDcyUTRLRVhFbHg1ZW9BL1hCbmtWK2NGdWZuQktMOS9vb1ozYW1zNDNpcmlzcXhTaG9nd1VlVVNSV0ZzYlo1NkJoNi91NlBvV1pwTEtHQ0I3V0xtQmxGS28ySTIvMzVyRm05L3ZnRFc2NGVRN3E0K0tiM3Y1U3FOSVFWZENvT1lwbVIxUlFRMGRDME9vWlZtYlhVTXBYVEtKNlJSS2hQbTN1U2N1aTdhY2FoLzcxV012SHdhUDM4UHQ2NmFwcy9lby9objExRDN2K2ZJMnU4UUdqOTVtN3hqZjBMTm91OHg4NHZ3ZFMwanZNZCsyR3RXb0pKeHJOTHVYcHl4c0F2Q3RMWnFzdS91dDVUWHF2TjVjRTFYNWtSRHJhcVpYYTJwampidzZ1d3ZXVkMxbWd2Mk9JUlRoK3hOd1pWWEUzbG5FSTJ2L3c5bjdacGQ2aWJyRkwzNDJteDR3SUJqNm1CTURJNnVoc0lBRk9SQWRoTTBSc0N2UUdmQjNBQzhHUVo3TThTVGhtbWd0VVlwaDNNdU9JOHZwdTdIZGY4NGpzdVBtMGVmTVNiRVhYWldkcG5wblVNYWhFU1lKbTVEQkpvaUdQbDVhTnVCV0t5Vmw4RnRiRUlZQnI3aVFuUXNqblpzTUt3TlRyVDFaMVNpYllWMkUyRDRNUEF4WVB3S0lsR0hGWXQ3b21JZ1JBQXQ0aUJCeUIzVGhuZEQwZ0N4VXdQZUdrZTVLUUx1em1VY2FEUWluRVZ3eEREYzZrcEkyamhWbFdqWHh1cldBMkdZMkd0V29SMGJtWldObVo5UHFIZC9CR3ZSVHRKakg5dW1BOWNyVXNrUkJwY0ZDMW5nSmxpcmJLK3diUlBYUytuTjhMaVJGaWNjNU9mUkYyUDRMUGpWaFdGNmRQVVV4bDlkR01ablFUeWh1ZWFjRU9WVml2KyttOWlzRDFLbTVxRkVXbHdXTENSSEdEZy9rSDY4dmZhYkVLQmRRU2ljNEErLzdzTHFjaitPRytlSWcwZWpkSkJYMzV0RjBMUVoxdC9pNmo4c29iN2VoekIxaCtraENsampPQlFhQmdLb1ZvbzV5U1F4clJoaytlaGplZU5lYU50OGJ5Y0pDc2xRbjQ5QzZSRXlWN3N1SmFhNVRlMlN6UjhyY2FrTHZ1SWt2bTQyUnRBbE1qdUVFekVSVXU4UWtiS2xQbDZHRkJ3NExJK0RoK2VURjlxWWRIOU03eXlHZEFzU3R4WGRDL3dzcVlnemQzV1VGZFVKTDdpWVFVcldySk1yTGdJbExCQ21WeVNzRW5UVFZRelc1WXlraWhGK213RjlDaWdiUFppOGZVOGpORzRzMXBBaHlHQndJeHRVT1M2ZnZQNGk3LzNuTVFxcTVwS01Oakc3U1RGNDMvMG82ZEVQclRYUzJJVUlCNFVBMDRLNkptaHNnb0pDc0IySU5yVytwcjdlUzVqcDBzV1R6VTRjRE45bWpYYXhYZ01LYjA5STVzNnRhTjRGcVhpY2crdTZnSWtRV3dxS2EwSSt5VjRGZ2hGVnN4bjA5WGZrZmp1TjdFQ1FXeFI4WHphVW1jVjltRnV0c0IyZE1iamFpNDVZMHkwcythazFzN1B2Z1NGWnVLeWViMlpYQVpvbHkyc0pCZnZ6czRmTzVKR0xubVhDOElWMHh2aS9YaStIUGsyOFBYUkphRzVZbHVUMGNwc0NXN2Zpbk80UGpLdDNPYjNjNGJrU2t6dDcrYW53WnlxSk10akJ5MVFhQkljUEp2ZW9RMEJLWWpQbmVIWUZ5ak9JZHFTYW1oSThSYjU4R3AwbXJwNTVPOCt2ZklOYmgxN051SUxkUVlPakhZb3ZQb2Y4RTQ5bTFTMS9vdXJKNTJodTZpNHNrOEt6VGlibnlJTUk5T29PUUh6WlNocmUvcERhbDk5RXh4UGVEbFNhNG92UG9leTN2OFRzVW9TakhFeE1UTXZIVnpVenVIWE8zNWhVUFkxc00weVJMeDlIdTVtRnNoTzlDTzIyaDRzSzBmSDE3R0d4cVhVdmNKSkpnbjE2MG5QQ09tTE1WYis3bWVqY3VReTU5bkw4V2RrQUpGZXRwU3J4T0tiWW5PZGduWDYzWWRNd3BSVEtWWUNpbVVmU0k3OHlFRElYNFI4Ti90RVluT3RkSDErRERGUlM4ZXB2U1N5ZVIvNHBJMG11blFWdUhRZ0hnUUhDRDhMbnVlaGFpQ20zb2RvMmc3U0JKVFMyYTRBV25ObGpMWC90djVRdVdjbVdaWGQyajBvT0w2am5Gd3Q2OGN5cXJpQTBsdUZpYjg5R1VYWVNaaytIWlF0aDVGZ1l0UmZrRnJEcnVGTUU0S0prTVVsUlNrd01JY293Zk9IZUpJUUw4bGg4ZWpsdWRENisrTHRJWHhHdVBJamtOd3JmWi9VWUNUc1R6VW9EMUgwK0dXR2FaTzgrZ3VxM1A4RElDcWQxQWtwYnBiVVVBbVU3NUdUNytldVZoekZoVEM0dlRuMmNzVVdqU1VSanhBeVhRRjQrZVZtNUxJMnNvS0tobk1qYVZjeXAvWWlMVHorTWNjUDZjdkZmWDZHaE1ZRTBKVHZOWlphZERWOStDUjkvdk82eFJ4K0ZDUlBnbGxzNjNoOG13RlV3cmdzUWcvZlh3TG45NFowd3pGb095eVM4dkFKTzd3dkQ4dUN6SnE4R3FwblB6aERnSmdFTGhoZERqZ1h6NjZFcTNxSnl0dGllemViOTNKb1dkMDZxNlhjcWRHTjRoUU5ibW5wVE9IUU5WV0FJRjZVbFlUUEMrQzZmazIvVmNVVHBCNnlObFdBSUZ5a1VqVTRXMVltQ3JWcDQvWE1XYzhYZ1IvbEp5WXRZa3h0WTg2eWYyRnhQMzk4b04wWnRKaFN6SG9tSTFwQjBGZDhzSytiTm1YM3BVVkNIN1doY1cyK3lZRlJyamV0dW1scFBnL2Vjazc1WkFrSkRsNERnMmo0R3AzVXp5R2xMcjFnQjJKcm94dzAwL0xjYVo2M2RjU3FiYWNJUlIwQnBhV3RueUpvMThQYmJzQk9JTW5hNmJCVmkyK3lHOWUrYjl2VDdaTkxoZ2R1T1pmR0tHZzQ4NnduZWVQTTc4TGUrK1ZmKzZtVkV5TWRIejV4UHY1NEY5Tmp2ejk1WXRpRHpCVkNRNTJkSXJ4eTZGUWM1N1pDZWhJSUdVNzZyWXZHYUNNdlhSbHNhZzJTd0ZYdldCNEhCRG1hWndpeFNCSVk1YUJlc1VvWGJJSW5QTW5IckJkb0diUXRrbGlhOHR3MENuTFdHeDIyZFFhZEhyMjY1bmRoUzBSaG9tb1FQNFFQcnJUZXArdXBMU243K000cXV2UWl5d3V0SndJeE4wcWF6UW1zTUthbXZhR0RPd2tyeXN3UE1XMVJGdENhQ0ViQndiQWNRQ0VPbUpmbUlRS0J0VGIvaGZxUVFMSmpUbS9qUzN2aDdMU0ZuekRRQ3ZaY2doRVlsL0MzS2l3VHFIWEJTZmdNSjVKcDZJN3RFYXdoSytLcEJjbFNSeTcvSHhKbFZZL0QwR2dNMGxQZzBHb0ZFYjhlR0lsdFl5Nm11MUZvcmhEUVJ3c0JwV0VYOXpIOWpabmNsYStBUlc3MFZoQURiZGxtNHNwcUhYdm1LT1Vzck9PL29QZGxuUkM5TU0wTWV0TFAwTTIwSWowemZVWng0d1Q4aDUyVmtsZysxcW83eHg0M2l2T1AzWUVWNVBTL08raXY3emQrZnZHQStsVXNYa09YMm9iSExHL3owOU4zUjg0L25yanMrNU9IN1BrU1U1S0RqRGxRMmJuRTlBSmhTVUJ3Mm1OQW54SkFpUHg4dmlUQjlkWnlZclFsWVl0Mnl6R0RMcG92VVd5bjNVZ3NwcUNuOTNDTDJUQUUzKzd1Q2tzUlB2NUt1dlEzSUNnRUtTMjQ5amZ1UFhlMXJ2ajFLUXN3VWlGRElLNFpQa2RxSkRvNFR1dEVmajF6Vnl2TUxDVk9EQzBwNzhSeHBlSk91WEcrbFM1a1JKcDMybkFOMk0zM2NGaTdneVhnamJ5U2kyT2tjcTlOZzlGQVlYVjFDNThWeFYwdWNoUWJtb1Fxamg0dTltMG44ZjM1RWxTUzNTWkRmS0JpMVFITHloOUFRMXF3bzBjenQ3VEp6Z0dKT2I1ZVZKWnI2c01ZeFBMK1oxTnZHSWRmWjVFTTAyYzQ4TWkxQXVsZ2loRy9xaFJRa2loSFpkU3l2S3VhWUVkTUorWkk4UC9rQWVoYlZRczFRcXFkMElUbjJZUkk2Q2NyYzRRUjlVbWlFYTdEdmdBWDg2ZVFYdWVPdEkzaDkrbWlTanNsL3Z0NFREU1J0QzFOSmpocitIVGNlK1RhL2ZPRWt2dmgrRU5wd1BabjNvM1JJQ1lScHBQVGZLRVorcmtkb0hOMUEvMjFvUXBnR3Z1S0NWSjYvaXphTlRkczBXaUVzUCs3aUNrNTg1VmJ5U3lxSURLaERmWlpQc0RTSkxMV1JXbFA5WWpkZSt1dFRHQVB6MFBIWUZsbU50bXNka0FCSFFWQXFEaXlLTVhoSWlMM3lJaVMwaVlYRDMyY21XRjdqWUVpeFErVjJVOUpseHFxbWx0OHpKM0FHT3dTT2FsbUZpK2VYOC9zRjVUelZwNWpURHo2U2lmc2RpUFh4K3l5LzZtYUNvNFpSZE80cERCZy9qdHV1UG9pelR4akY0eTlNVC9tcE51MG02ZDA5ait0L3VpZW5samdVZnZZNnNXKytRNDhhU3RuZmJpUDdnSEVRRERCM1VSVlB2Zndwejc3NkxTdVcxM2lib1hudmJTNTRyRUVoeUxZZHFMSzRmZkVRN3BuZW0yc0dMZVdxUVV2SkQ4ZFFTWXVFRXBqYmVENDVXdUNUR3ROblV4Y0pjcy84QWR6OWZSL3FHNEtRQTltMmcyb3ZLMzlkSFR6NUpNeWY3K1gxdi9vcVRKMEtnd2Q3TWJXdHpRVlhDbGF0Z3Z2dTgySng5Zlh3OU5Nd2NDRHN2VGZrNXJaYkxsbFNNeUFyS1M3dFh5dUc1U2IwSTR2eTFCZVZRWmxVQXJtckhLVU91S3ZNbG1QSlhXVm1EUEZ0VXpZOFhjMHd1Qmk0RXNXeGxvOTNVczllYS9sNERjVzl3TE10YTMzSExpYW5zb2FHTno2aDRaMHZpQzlZaHFwdlJEc3V3alNRMldGOGZicVRmY2plNUIxM0lGYTNra3g0bzVOREtZRTJYZDZmM2cvbmIwZGlLTTFaQjMvTGdsV0Z2RFo1RUpWMVlSS3VSRXVWT25vRXdsQ3Nyc2pqcGtjT0l4THpjZkwrczFGYTh0amJvd2tIazZ5dXlFVWJxcVdHV3dNSlYvS1AvNDJsNkpOaERPMVpTWFl3eVZ0ZkRlQ05yd2Z3OGZTK09LYUxWdUlIOTQ1R2tYUnpXRko1R1dIZkFnTFdXaFRTeTVOUE01VGtCRnFkRjBKQVFiYUZrV3E4YXhtU29td2ZqdEt0ZWsrRUF3YTFrYVNYWXlCMmduUks1ZkM3OWV2WkY1dXloelpwWC9nMktiTzh1bWROZHJiRjNiK2VRQ2pzNTdRTG44UXBIRTVsZzZaM1dRNzMzN1lmRHo4M2crZmZXZXJWUys2Q21yN2VwbnVqMGRMQWpFVTR1NnZHSndWUHJZNFNENFlRUDBCaTJkRmpFbWwrWjVySE50d004UHZzVWo2TU5QSE1JN1c4L1drOTE1eWI1SVFEeXdsSFBzRkhGb1A5ZlJrYzNvdXpodTlGT1Fjd296SEd4K1h6K2F6OE8rYldMYU0rMFlpWFlDM1RNd2RPU0hROGhqQXRBbVAyUVNjUzJBdm5iRjkyNUU1U2wrdEV0bEpSM1ZLaC9OWmV1MFhGcS8zamxTbGxmTnduYitJLzhWY3NIRGFDL3BPbjAvMDdUYTZLd1ZRL3ZmWjBPT2lqdDVuNDluKzhtVXdtZnBSNmpuWXk5V01aZEdMTDBVaHZRNnNqZEFKWGc1bDAwVUVUM1JURmprUkk5dStEUzVLYzZpamE5SkwzRTFrdXNqcU9DSVFRcG9sMG5COWw3VTluemQvcEZIYXhWaDduRjU0K0lvWEhlK1lSNnFieS9XaldWZGJwTGdMaDZTcXNJOThWckd1WUpscTlUM00rdW03SmJkY3Rla1hyejFqLzh3MXBaQVRpRGhmQTNqNURLVkNhd1BpOUtQdmlKZXIvOFNSMWQ5eVBtN0JKenB6TG1pUFBKZXVNNHltNC9UcU0waTdlYTVNTytIM0loa2F5bHp2STJoQlJ2OFQ4M2w2bk56c08rSHplWGw1VFFjM05mNkhwWDY5NGNrMUtaRTQyZVgrNGdkd3JmNXE2M2dXWkd0TVdmVHp3OVJ5WVBnOGVmd25PUHhGT1BCaEtpajN6cG90bGMwbEpPU2ZtMS9CU2JRR1BWWll3UFpMbHhZUTNqQk5vZ1JTYTBWbU5uRjljd1luNTFaVDQxcXVoTWFDaUVsNzZBQjU3R2FiUDNmcStFQnB3MFFTRllJS1Z4WjVtaUtsT2xCY1RkVXh4b3NRN2NYS2ZpaWVJemx0S1pQWWlFdVZWQVBoTENna1A2MDlvY0c5a3dOL0J5MWUwKzNxdE5ZN2pjTU1OTi9DTFgveUMydHBhcEJEc2srVVIxRTlxYWtKcFRWNXVMci84NVMrNTg4NDd0NXB3dkVOenVoMEJmb1hSTllrc2NoQkJid0hxbUVSVm1iaHJMVWdLTURyT21aRXd3eDNzaUV0dlI0dE9BcVVPZ2QwVEJQb3FzRFRSYjAzY2hSWjZpWVhJMHR1dk5sMFl1TnBGT25WVXhCMyt2RENiZDZ1S3VMeG5QZnQyS3dFdGNKSVJER25zUUJmcTZ1MDQyUUtmVkJ5UzA4Q2xKWldNRkkxTStqakdlOU5LK0dwV05xc3FsbU5aUHZyMjZzN0tsU3RKSnBPYmRkMk1IR0J5MnRFQmZuVjNVNnZucXVxaWJmTTMxZGRqOU91RGRjUlJpSnhzMVBLVkpELzhCS0pSUkRpTWR0MmRwb3NycFpCU3NtelpNdjd4ajM5d3dna244UGJiYjNQb29ZZHkvZlhYYyt1dHQxSmFXb3FVMHN1WkJaQ3l0YnhTcW9ValNpbkZkOTk5eDI5Kzh4c09PdWdnM25ubkhVNDY2U1RxNnVxSXgrUGs1T1MwZk9iV0dUd0tacFhEcWdiWXR3Y01LVjZYNkpzVzlzVjJ6RGRLclVlZE5CaTV0K2IxeGE5eTd3dVRDZmtkK3BmMUlaa29TdVU3dEhFK2hFMithRUpyUWFHc3A3MjFWNTZtYlZJZzZ6akc5eVc1b29rU1dVdU56bVozdllDUGtydXp5T21GRU1tdDlyV3ZENk96OFFnM2RvUk5KMUlOdjBYYVY4WkpBWEZIY1ZCM3lkOS8rUmNBZnY2dmZaaTVTaEd5WkFzL1FZY2ZiV2kwTnZHWkRSd3hiQUdqQnBxVUZUWXhaMUdjMG13WU5pQ0w3S0REcXRwNXpGbzFrRTRUZ0c5dWxPalRaR1ZyQXJZUExUWEpCUFRlSTRGYmIxRzZaNVI5amsrU1RFS1BvUTVTZUdISGFkODRWTTROTUcrMnBQOG9sLzVITkJLeEV2aGNrN3A1UVVUY0pHaFo2TEQ2UVQ1ZDVTb1dMbDdMcXZJNkxNc2c0RGY1K3J0bDFOZEhQSlBiTkpEQklESU5tbXVudXpzcms0ZVp3UTloSXZXWlNjaGdtd1NNNlhmNS9Nc2NITnRpd243VnZQMTJQd1FKZWc3K2xwZitXOExnL2cwTUhSVGIrY0pJQUk1Q0RzaEMxOW5veWlncU40Ui85ekNnY1diNW9DcUdLQTRoOGl6VWdpWXdaVWFJZGlJSXdEQWszWXF6R0R1MEN3ZnQwWjBodmZLcHJJdno2WXhWZkQ1akRmT1cxUktKMnlsL1Z0djFQU2swcmpKeEhSOWhmd09IbFh6Rk1WMitablRPR3ZLc09uQVZiaFMwQVZaeGI4SURqeUE0NUFoOHhRUGhzcUZ0SHIrS1FjTjdFUGtjd3Z0QjRkbFFkQkdFOTRMeU95RXllVDNUdEJvU0M5Zjl2ajZ5eGtISkRSQWNCWkV2b1BvcDd6M2RXS3EzZkdhNWJOR1BnaXNoL3lEdjc5cDN3VkRzRU5KdkRhRlJUUVNHUlZCeGc5aWNNRHE1NjlYNlNxQlhkZ1NBWlpIZ1RzMFFOU1U0VVlkamh1VnhSczVyM0ZkK0gzdjk5RmIyZjZZck0xWldFZ2dJOWlsMkdEU2dMMjRpenFkemx2TnVSUExJRjVXOHNiQUhqeDkwRW91ZS93TlhuL1l5SDYycDRMdlZDdWtUSGM0aDJCQko4TzduQ3hrenJCc0g3dFdIZzhiMTRhdVpxM2o5bys5SkpKMnRscHUxRFhIZSsySVJJd2FXY09pKy9UaDAzMzU4Tm5VcDczeStDSHNMZVRtUEg5d2p2UmZhVTh0Mm1OOU1TSUdPT1BRYTA1WEVTWU5wYkxLUmxvazc1eHZpV2JuNGV3K0FaSktpZ0NUdzVDeVd6SzFHQkUzMER5d1VJU1UrTGREeE9GSXBRam01S01mQmlDWHdhekFNZzFaRWl6c1p4aTZpTkRYWFlPOElLT0dWTTNjMExBUjdtaUg2R3o2V3FTU1RrMUZLcE1WcC9qd0dHSDdDcVU1UkVSUUwzQVJ2SnhyNU1obEYrd1Q5RFI5N21pRStURGI5UDN0bkhTZFhlZlh4NzNObGZOMlRiTEp4ZHlHUWtHQXA3aFIzQ29VQ0ZieXV0RURwVzRVYXBUaEZTdEFFU1lLRUdJUzQyMjZTemJxTnoxeDczai91eENGRWRpTTA1L09CN015OWMrV1I0K2QzTUE2RE9kMldqeUZjSDZXN1BUdEdMZ29oUVdwMEtveFNVSnBtem9zbGdNU1JBbHNxNU9la0dEZXNqdnlTTk9tSVNuNUptbkhENm5oNWVuZnFXd0t1ZitvZ0R0bjJjS1RBNjBqT1g5dEVwNWpCSDBaM1lWVnhDR0hhcmlaN0dDbCtBbEJ0bFpNR3IyVjB4UlpTbHNicGc5WWlnRStxT25QcG1HVjhXdG1aR2N0Nkl4WG5DNGRUVlJSc3kwWkcweHgzWEc5K2ZQdlhHSmxzSVhyMy9kUi9PQThuYWJqWUs5c3c0RFAzVnhXa2FXT2s0dVFlZnd3bFA3cWQ5ZjJ5NEdjN1g5K1dnYzlYMGxTd294NU9HL3BucGp6OEJpSUlxQ3EvZmdBK21DVzU4VHFCME9GYk4xWXpmc2g5VEx6blo3U1o0MEZOZ2p5S2lYVWdGRTdGZUducGRLcGFhekZzay9sYlZqQ2grL0NqYlpjNTZwYytTbnZpdUpKOE95M09pMjNVaHFXYnUwOE5kZjN1dEdEbmlWVjY5cE5wNUpzR29vWmpINUZJUnpMN2x2KzkyUktBbzZBWEtOaFpZY3dHQjZVMEI0OHZUV1BZaTBkelFFSmoxQXV4S0piaHdaT2ZqNjkzQzZ3MGtaWVhQQWQ1TjJYc0dDY1NSKzZISFNPK1lGZUt6UCtrQkJRRk5aM2l0c1Z1RHBXV2ptTWhjS3lNbnFQdUJlT1JFcUhyUkY5K0JiMUhkMkp2VHNGSkpBaE9PcG5JTTgrRHFpQ0VncHFYNjk1ZjB3N0xKV0xhRHArc3JjZXdISjZkdVJhQW9wd0FIazFoVEs4UzlLTjRsM3RGZGlUYWJudGdxLzBzbEk3M2JtN05lZFVRVk5vR0YwV3ErR213bEN1OWVjU2tqWWxrbjdMYUhIQk1nVkFsUXBXVWZUTUpXUklVc05JQ2taQW8zdjExUFRxQVFCR0syN1BCTmhFeXhVVW5sWFBleEhJZWZIb2x2L3IzY2xKTlNaUWNMMEtBL1JYb0Zhc3FLbFlpaHVvUDRQZjZpQ2NUTy9HbnJYWFU4bjhJZkRRNitSVXBoUlJMaTczTTcrSm5hR2xmeHBVTVlIYjlDbGJWcldmczVnVDlHbFBFbllCMHpCNWlaMEVtU0daM1k1WnhIbk0yUmdqVkxTRVowQmpjOUFZeUdhR3FZQ0oxVFNsOFRRbXlmQTQ5d3JOb2laZlJXRGFPMW1nTDViS0ZIc0VhVHRYZnBqbm1ZWEhvRXVMZTdDL1ZManJDVCtmWWdsQXd6VGRPWDgyakN4SUlMWUZVZkFSOURmVG8za1RRazhmSGI1YmdOR1p6eHZuck9lbWt1VHo0dm8rV3BTY1FiZW9NbXJsSFo0MWthKzZVeEVCUUdlektQL3A4aHc4S3h2Tk4vV011R2V1UTVWZElKOTFuT21oWU5MLys5WmZxNUNNMVB3OEd5L2hucXBuWDBwSERHMy94UzBqSjlKQ3pIVWlhb0dUYUdxSzQweWNPTjBnS0NUbmVNT05MUDJaQzJVZjB6RjVQUUV1UXNBS3NqL1RrbzlvSmZGdzNubkE2cDBORW5HakgzdFJ5RjcvVW9TYkhzbWxZdG9iSzkrY1IyVng3VlBuNlgzU0syRGF5SUEremV4YU9Ga2FQTkpGdG1XVDEwaEhyYWpDN0I3QThOc3FBVGlpZmJzam9DMGU5RllmT0ZKZUVsRGhkMUMyTThuNUdENzJTdFBTeXpCakVJbU1JYWVrbEpkdWhCbXViRHZoRlhFdnVjSjdZWVYzczBOaE03UEM3L1hYQUtZSjR5a0lvQWxWVmFXc3pPSDUwRVkvYzFCK0FXLys1a3BtTFcxQzlLbzZVeEZON1YxT3RLaTdPazUwTWd1SXdzZTk4ZmpqaE5TWU4rUXlRZkx5OGdFZm1aUFBCZWkrMkZHUjdIWVNRYnR1eUExbitqdURpMFMxY1BMb1Y1NHR3b3hTQjFXVFEvRUlEa1JrdFNFTWV1RUlrcFl1NXZoZENhbUdwemQwbk9ueHprWWR6MTJoNERRZm5xOU93ODlEWlgrVmQwRWNOUTdhMlljNmNnL0Q3OFZ4NE51YW5pM0FxTjVMZVVndW1pWDdLUkpBT3hveVpZSmlIU0RRb0dYemhHSGJVdFMrRVpVTWl2aE0zc3NNUjBEWDBvZ0tjVkFwcEdraGQzYXQxMXExVGpQN2xDWEtESnRsQlNVMnpseVdWZmpZMUJ2WmFTZEkwOFlYZjllenBBNUxrRnBRakJFUTNSK25aeThVMzgvbU8rcVBhejZoUTlva1BIZTEzMjQ3bTBRNTF5NjNoQ0VJSXl0bGVCeTJPanZVUlJkY2NmOFZoL1h5ZjhORWV0Vk9FQ25ZY0tSVTg1WlBRUzhhU1hQY1N2dWIzS01oV2FVdVQ2ZmwxY1BTSmxvYkczWjh5bzcrMVpVbHVlODVEUUpFc3Y2RUZiMFIxWFZoN1dVZTFZNnZVOWpnUDRJVmRkUWIxQ04yL21aZFZzck1KbnY0MXRLN2x0TnovQVBIcE0xQUNBVmRtT0VkMXluMmwzMTdYUHIydVhSK3kySWJQczYwUjlRSFN5Q2UvUU5uYlYzLzE1L2JUM1NXdlZBaWtaWExNc1FOSkJ2MnNXcmtRLzZkL0lsOHh5RkxTZFBZVTgrL3NmcGlEQm1Ba2tnVFdOeEpMbWwrcVczWmsvYmdRSUUzSjhHRkY5T2lpWUZnbU9McXJRZ21KUjFOWXQ5bGk0YklXaEM2TzlvRTdiSFJjZ1pxZDVkWkFLQkE0YmppQk1VUHdqeHFJSFkyNWNUUFR3b2tsUUVyNjVVYjV5M0dWMkZrZGk5OTQydTkyL3R6dk85ODR2TWZ4NFIvdDlESC9qRFBhUWRab3VJM21NN0U1YWVBR05Ob0I5SC9LbE0vZHcwNHM3YW83QWMrMlBhcDRkUmYzekpIb3VzYTN2enVlcDE5ZFJFTjlGS0YvUHU2ckl0dzZLaXNTd0pNVDUyZTN2TVY5NTg5Q0JDRWRWdkVxTnF1MkZFRFNpeHBNWWpzSGJyZk9XcHprNHUvWDhwTWJDcmp1N0d6S0J1a2tsanFFMzdkSkxuZHdVaDBMeGJ0UGNrcEFRRHA0TjdZUnR5T0lISUZva3VUbVEyMDNBUXFvdHNtZzByNEFOTWJiYUV0RmFRelhZUXJCcGtnOWx3dzhtZit1ZUIvVE5nL1RUYkVOdVdYcnF1Qm9SZHIrK1NDa1lZQmxablFPRGVIMUhCSmRVMW9XSWhoQVN4dXMrdHJsZFB2N2c3dzVkU3EzZmV0V0h2bnJvd2hGUVJFQzI3WlJGTGMzOUczZitoYVY2OWJ4OE85K2g3OTdWemJmL21OMHZ4ODhPdGdkMlNINVFQV2R2V2NXamxRSWFWR2NUSTJGNmVqYzJmZFhJQVgzTEhrRUlTU200OGxrQyt5ZERaWkltQ1NUTnVQSGwzSHl5VjNvMnRYRmVkdTBLWVpoMkx6M1hqV0poUG1WMEtVY29FeTF1Q0FZNWZ4Z0RFOXppbisvbWVEWnQ5S3MyMnlUU24vNVM1WVZxVng1cG9kTFR2VXc2cklqRysvZ0p6ODR2UDI0ZjMxMlo3N2o5M3NwTHNtbG9hR1ZVTkFQUUVOREs4WEZlWVRETHJaWmNYSGU3c2RMY2hGbWlMNlhmNTNPSmJrZEp4bmVmS2JESk55T29jU09ldjRqYlh5bGxDQWxUZFdyY0ZKMW1QRk4xSzk4bFhTaWdld2NRV3V6d0RiQ2xQUTduM1h6bnFOOHlOa0VjZ3JRRklFMzVBSHpRQU9TZTZiWXJsL1kyL3ZMUGJONk04ZVg1ZE1qNktNMWJXN3pOZHRTNGhGdWQ1dWdJakNRQkZWQjNKQVpPWFlrNnpWdWpIdHJ2WjBRUitOSWg4L01kRkQ5c2dCcFNBcTYrQ2dkTUkwQ3RZcEZNb3RzdzBPL1JDdUxoWWQrZVdrMnE0VVVMVGlUZUp1SjhPNGRsb2JtQ1pCVGZncU5yUXV3SWpXSVdCTkNXVXZLOHVCazUyR0VTbEdDUFZCQ0EvSGxEeVNRVllhcUtnaEZwYkI4QkU1aUk1NldaUVM5Y1JKdGEzQTZINGVLRzMrMWJZZEV0SVpVeXdxYzZES2N4QWJTc1RyQ2tUWjhXaHJwbUVqSHh0WTZVVlIrQ3BySGYzQlU5VkNtUDNtODQvaUFwcnBRMDM5K1BzVWpMNlM0NjJvZnYveFdnSjk4dzg5OWYwbncrMmVhZUsyMWlZczlSZHdjTEtPWENCQjNiSkk0cUVjcjV2WmRMNVVTRWZCdzcyK211bjdsa0EvTGN2QjZWTDV4MHdUKzhkSjhObTlvUWdTOWgzVisrZGJ3dE5lajBMTThoOXdzRDB2V3RKQ2JwWFAxT1gwSitIUWVuN3dTUjBxdU82OGZwdW53NU91cmFRMGJET3lkUnl4aHNtNVRCTU8wajRhNjJWSGZFNmc1dVlTT1BSRTdFVU12TE1HT1JjbTk4R3JNbXMxSTJ5SHJoTlB4OVIyRUhRM1QrdHB6YUFYRmVDdDZrZDZ3R3VIeG9tYmw0T2xTZ1pxVGoxcGNodFZZanhPUG9majgyeG4xWGxMejVoaVhsNXNNQ0NUNWEyMEpVMXJ6aVc5dE1wK2h1SmxtWWMxNjduKy9sY1YxVmR3MDZsUUdYM2d4bnA2OWlMenlFc21GQzhBMDlpMy80UWl3THpjSDROOWVlRHNONVVub1k4TFlGQVFrTk5pd0lBcytLNElhTDhSVVVQZTBtUndIVmRWSkxGM0Z1RUNhQVg5WnlVTS91b1pSczU3aXduS0lxeHFXWlIzMDNyUGFaejk5R05OeWFHNkpVVndZNHN4elIrTzFEY3kzcCtNdHlpZlZyWUwxSjV3UEVuck9lSmxBOTNMWXZKbjZOOTlIR1RxWW1la1FkWlYxRlBnRVNWTmkvZTREaUJ1Z0NvUlVrRXFVQWNNS3VXamlCUDQ3WnpacjEyMm10d2NHUlJUZTdacWdwanhKcTI4Nk9WdE9JTjZRVFN3ZTY3Q0ZKTGNWMWtzVVhlNlVwK21ZV3gyTmNxK2RMdTFGUVUrQUM0ZWNRbU5STHVJZ0M0WG5XSDRBVG1tRlBnTUdVREc0RDlncHJOWldTQ1dSdG8zUU5ZVFB0eTA0S2ROcGJOT0VWQXBaMG9udWZjYlN0elRGc3JyMTdjRlhzWkQwVjMzYzVDdmcva1E5WmdibVdlNnF3RXBJRzVLWm41bjgrUWRaRE9xdGtVekJsUmY2Y1ZJWnhjd0hNMllhL09HK0xQS3pGVzcvZFpTMGtXa2Nzek5PaEZzVGpBdW1jcE92Z1A2cWI5dTlQNDg2Y3I5dGRacmJkcG9yenptTi9QeUJrUG9NRnY0Rit0M0ExMGFPQTMwZzRlZ21idjNGSDBGNDI5Vm90cVJrV2lxSlh3aU84L2xZYlppOGxZaXoxRERvNy9Id2c5dzhBUDRjQ2JQU01CanM4U0NBdmg2ZDJha1VTU201SkJqQ2N3RGF3dVQ4VVllM1pHbVoxaUdLaFhRRWVwRkpwK3ZxOEF3dzJYSi9HYzB6OGxCMTI0MmpkQ0JiRVlEUG81QTJwV3Q4Zmg2UDh5b003UllpeS9mNVlsTFhCRG1hUmc1d3pzZ0NrcVpEZFV1YVQ5ZEZlWE5CTTYzNzJSRHlTRy9tcnV6QVMyd0VqdERkUUs4QTRhVHBKSnZvSitzWlFoT0R2U2E5dStmVGVVUS9jc2RkU21Ec0dQVCsvVkg4T3h1MDByYTNhZmhDVlVrbEUvenVsc3VaUHUxTjBwcE9qN3dzNHNLSGJhZUlWcTVoOXF5WmVQMEJ1blh0ZXNRcmRwTi9OUlhUY21ocGlGRlVHdUxVSzBZUnNGTW9iN3dNSmNWWUZmM1JoZzBHQ2Rabmk5QjZWOERHOVRqL2ZaUEV5TEc4RSsxRXc5cGFpdjAyQ1FQU1AvZ1U0aVpidTRaSmFXVjJoTEpOOTFNVWJadVRVMHFiM3IwTE9mZmNYanozM0VwcWFpSUlvWDZoTWVqK1hwRHZnd3FpZEd1clJrMGswQ3lESHVFdEpNc3IyT1FUUi93NlAxUjAwU2NmdElmVmo4akxjUnVvdElXUmlVUzdQZC9MKzhtUUUwbVRleDZjVFNpZ00ybDhPUmVlMXBPblh5M2l1MC9yL09HcUp6aGgwTHFEZ2xlNnYvSmtXeTdBam5WVTZsYit0WU9ObXpudlVDei80clRrejJ0U25OMW9JWVhidCtyektNZVMzRkp0MGlVdHViMlBqd2JQMGMxNmxBNm1FaUh3OWVtSnIwOVBDcSs3bE1SblN3aFBtVWI0dlE4eE5sWWZra2V5cEkwbU5JbzhlWHpXdW94elpuMkRLN3FleHcvNjNVcVJOeDlwV1NoRkJYVDc2NE1VWEhNeG03LzdZNlJsMGYzeFArQWZzak5vZHZEWVVSUmNlaDZsZDl4TTVmWGZSV2dxNWIvL0phRmpSK0hnSnFGb21rYVQwY3F2Vi82Rlp6YTlpa1JTNk1uRGxnNldQTnBjK2xEUnJ2YndHZWVPeHZkRjl2RDBsd24wMkc0UGk2R0QrVGdkb3I2eWpoeWZpczlJMHUyblAwQ0xScENhNXNvTVJlRHMwRkF0c240RGlROCtSdUxROE5hN2xGOXlvYXRiSjVJWmdLQTlHMHJqeG8xaitQRGhqQmt6aHFGRGg5SzdkMjhDZ2NCdVRjUnMyMFpLMiszL21SRlFRZ2dRR29xdkRMTW1DM1B6UkRDSFk5VmNpYjlYQVU1NlBrNXlBVTU2TWRKWWdYUnF3R2xGWWlQUVhIdGRlTWdnYXJFOVdlNW9kdlNSUUtwd1FXSk5RNmNpTzg2ZmUxZHlWcmNXOElBVGdVak1MVmpQRHFVcExqWjRPbmN0bHhRMzgrMjFGVlJHUWdqZGNwc05kQ1JTYXl3Q3M2ZkIydVhrakIzRDhlTkt5YzlXc1IxNVVCTEhudXRnelRJcHU1TldoeUlDZ3duNitxUG8rUWloSWxTTlNDSk9tOWxHcDl6VEFZbVo2STFqMVNFTEkzanIxcUk2UitYRW9TWnAyeWcrSHkzdmZZQy9Sd1h4NVN1UCtPaWlFQUxwT0lTQ0FmNSt4NW40U3BjemUya2QrYjQ4N0h5TklrOFJIOWU4eDVxVzVRUWJRd1N5aXBnMC9FeUNhb2lxamRQb1ZiMldBZjNMK05OM1R1UG1oNmVRTW13WGJQNWdiRmpUQkUxekRiUlBQNFVSSTJEUUlQaGdGN3Q2MENCUVZaZzNEMGFQZHVmTXNrRFhEMnc5YkdWYkpxREJMMGNBT3F5T3dRVkY0RlRBbU02QUI2Sm14bGU2alIrRGJjQTVQZUN2eDBLUkQxN2JCRFByNGRWTnNDbTJBN0Nlc3YxK0dYZU9XeXZtUU85Y09MY3JQTGNCYW1KdTBZRGM0M3hMVGl1YnhyZjYvSXNzTFlZUWtoSmZJN1pVK1U3ZnYzRjFqLytnQ3B0bGJmMzUrZEo3YVU3bjc5T0E1SGdpWE5iOXY5emErekc2YmxsUDA0TWVJaC81a2FudDc3SHJBUG9IT2hSY2FNQmRPeDhlUGJqTFRpZDdkWnVOeVJLYVRUL3hTSnJPblZXQ3ViN1BqWGdvU0hwdFNhQ0VCZXpDT2hWRjBLczhqMUdkdStBY2dQWCs2ZEtPWWpSUTRCRjh1MExscXM0SytmcGVhRmx1SUlyNHpBamhGNXN4dHhqdHE1cDVQSERQUFhEODhUdC9QM01tekpqaDdxZi9VYnRoWCtOb0g2ZEQxRmJXVStCamV4d3RZU0JOaDdMT3Vaenp6V2ZSTlFVblphSmwrWFlEdmxROUdsYlM0SjRIMzhHMEhNcUtzNm5kMG9ydzZsL0tkd1V3dW44K1Y1eGF3WUR1T1pRVitpbko4L0hYeWV1T0N2Z0RKUnVjTlBnR1d2aUhtcWk1a3NCb0M2MUFFcDNpY1d2aTJNR3ZtQllrRjdtMm9qU1BEdDlST215VVFvUnBnS3JpNU9SaUo5TlUzdmNiNnA3K0wyVS8vaDRGRjUrOWd3OUFIRUd2NVdvS3ppSG9OdUpJaWFXcC9HZktVbDc0N3dJY240YXBLaWhKZzc2OWl3bkhEQnBxd2toZE9ld0N4d0tCVEZzOC9mQVlBbjZWWVpQZVFYaFUwbFU5YU56WUhXKzNTckpIZm9hdm9oSWhKSTdoSVdyREdRVU9weGJZMkJJK2FsT1kycXlpaVoxVEFyYXVJRXZDcmFzOHZGaXY4dWUrQmcvMWQ1bGw3NEFrYklKZkFVMTAzQnNpNWJibVBic2RWVnlmbHhBS2RqcE0wNHhmWXpRc0o5ajNEQUxkVDBEeDVXUmVST3p2ZGdNa3plRTRiODlkVFZWdEs1ZWNNb1FMVHhoQ1VWN3dLRDg2QlBwWlhWVTlXWXBEYmw2UXljRUFMN3k5bkUyMVliNTUvM2xjZmM0d0RKcjU1ZHYvb29mMHNqbXNFTE5yeWZZV01McWlOOWNlY3dPRFNrWVFPa3ZqN21zbjhzZW41ekozY1RVZWo4bzE1dzdqc2pQK3RKZHJBZ0s2UXZjOGhWeGZGb09LdmJ4ZmxXQmRzNEVpd0tPSzlzSU0rVXFUbGRqUGhnMFM4RXZ1V3hFbnRGRXdOeG9rbm1jaUZZTTUwOTRoR0ZLNXIzc3VEd3dRa05TTzFvcnZCeWtTSE0xbHdWa0pRVVdMaGJOeUE3S2lCMHArem5ablJ6djYyVUw5MHZ2dTV6bVloUVRMMis5U3dnZFlIbUxKQWdKK1VFUWRxR0NsaXhBaWhScE11QURFeHYvdzh2MEtWSWpZUUxHaThoMS9EdjE5QWRhT0hJSzNjeWNYY1BiemZBSkNJQlFGdWRWdjA0NWo4Tnh6ejMzSm1wVDR6a2dqUXBMa3ExNWtST0E1M2lRMTFZUHdnbWVpZ2YveUZPa1pIc3dGR3ZZT2ZzT2NtQ0F2S2hpNlZ1R2lHUkFKU2phWFNGWlcyQ3p1N2JDaXdxYTZSQklPU3JiV2tpaHlyL0hramtqK2NGbjNmUVFRa0FMRmsrTDl0MjhrM0ZLQm5WZlBtSXIxMUxYbE02cGlBNXBpTTFtekdGbXhnWG1WUFJGdDNTaGFkeVlubnZaUEhNTzNiNE1KUEgrQU5wdk0yR3V0aVFETHRuU21LWmFGZE54dUNXOHNHSkd4cndRNENrMnhMSlp0NlV4ckl1Q21aMG14MHpYK0ovVGZYejZJWmRrMHQwUXBMc3ptekhQRzRiVk56S25UdHVtLzZ5YWNBMGg2ZmZBcWdSNWRZZE5tNnQ2Y2hqSnNDQjhiWHVxcWFzblRBSjhQeSs5SDJBNVNpSjBBQkp4SngrQkp2VXJlSUFOWkZrWGttSGhNazlRbnVSampXL2Q2ekR1MExpR1RveGZRQmN1YmJQNDBwNWtYTHZaeisxbER3VXFEcmxDWldzOUxuNFU1cURpUEVxSnBtOCtxWTBqYzVsMUhGZm1qZEREb2lvdEc3TFlXSFNuWjNKWm1TbDR4WC8veGo2aW9xNlR0emZlSVRKdUpOQzF5VGp1UjNoVUYvT2F1U2NSU05rcHo0ODRLb3dCRlZianZ1ckU0TTJlVCtHZ09kbkVoWGY3NFM3SW1IdXVDUUFITDF6Znh3cHRMMlZnYllmem9DcFF4M1hkVFBKOTkrSXMzalMwRWFBN2VvRW5FMXZuNTR2NDh1cUVyZC9ldjVOWmVHd2tFMGppR2ppa0YyajdLS1VzS2RDSHhlUXdTS1MrUEx1L05iMWYyb0NFYUJOM0NHMHlUMW5UM0dmWjFzK2Jsd1UwM3diSmw4TWdqY041NU1HNGNkTzE2WURXSGl1SmU0NDQ3WU5Zc2VQRkZ1UFphR0R6WXZlZCttcjBBaFY2Yk04cGlvbnZBNVBsTjJjNkxtN0pGWFVvVGl2aUtNQ3JUemVmZSt2ZFJPZ0Q3dzdGWi8rWTdoRjk5Z3hWQWRjMFdXbWZQMjNhOGRmWThxbXUyc0FMWS9Pb2JSRlNGbmw4N0JRMjE0eDlPU2xJcjE5UDR5UFBFcHMvRmJHaHhRZXFrM0I3QkVBS2pzcHJrNHRVazVpMmg2TGJMQ0l3WXhOSGlsaU9SNVBiL3F6WlZ0Ym04K01ZSXVwUTNjZXFvOWF5b0t1TDE2VU13VlFkYnN6TjY2dmJmSkF5VkY5OFpocWJiak82N0JRWEpPM1A2WXBrcUNWdEI3c0QvSENtUW1zMEhuL1ZBdHhXY2s1YlN0MHNUczVaMVpmT21RaElDcEdydmhiUVFDR0dSU1BXbnF2a20rcGJlajhBOFRHQlFkbjc2UjI4Y3ZzdVRRN1pmcHlEa1FSR0M3c1ZCZm5QNVlOS212VzEvU1FRMUxVbCsvdklLVXNiQkxmN1owYjRvS2doeDVubTc1SGwzcldEOWlYdk84NjZycktQQUswaGFPOXNYVW9MUUJHMWhnNnZ1bWNhSXNsTXB6eDVHU1k4OFJCT3NYanlJYjkwWlpVMWxMUVIwaE1jNXFDQ0ljbHQyVk1ldW93TzV1aFFLcW1GeWVXY3ZBMjg0RHA4L2g4di8ranBQVmFld3ZGNkVJdytLYVJTWERqNmhjTGhEaVRpQVZ3ak85R1l6U3ZmejRyb3c5LzAwek9RWkJuZGZFMkQwd0RneXRRUW5zUWlVSnluVE85RXBPSnd6ZWh4SFc1K3ZzeXFwOFhIakpqNm9XOHJDNXJYVUpadHg3RXpUcnNNQlRFMElwSmxHTCs5TzdxMzM0dWszaEpZSHZvOWgyUWlQU250dm9DT3RMdmZpc1FYN3pMMTFSUkR3S01RTUI5dlpuakc1YTJzNUNhaUtJT1JSU0JnT3BpUDNlVysvK09pdUQzenh2cHMxQUk3RFNFM2wrZG4vb0VmdFFycWRHU0w0MFpPdUhWamVreVZoazlvdWd5bWJPQm9weCt4L281MFhYMnp2NVF0OG5vM29mdGZlL0wvZ3ZGTVBiNGIxMEt5akt1bFIrbUo1Rm0vSDNPSERyTU92VkFSYUlrM2ptUDZZV29MU2FTdVI0MGFnWFhBZTVqRTZvaTVCK3NhLzRuTXNUR0dTT0NlQTJmZFdXdGJPcGVqak9nclhiOGJ4NkFjbzg0NHNHL2Fya0w5ek9GT1JQNS9TWURHT3RMR2tqU29VVktGaVN4dGJPdWdaakJmVHNWR0VRQlVxam5Td00zWFRRZ2dzeDkyejJ0WmpTRlNob0FnRjI3R1FnS1pvU0NteHBKVTVwdTV3VEVVQ3RtT2haSDRucGFRKzJVTFZVWlo0YUVoeEcrdGcyNkNxNU54MkxhRUx6NkRseDc4ajl0eXJJQVRScDE0aE1mVURjdS83RmptM1g3dk5yNjhWRm1JVWUvQjN0dkNvRG9RRldxakk1VDRlOTV6d1g1Nmc3WUZIc1J0YUVMcGJ0NVYxOVFYay8vSXUxTExpakNQUmRwRmo5MVdHT0RCL0JTeFlCWSsvQXRkZkFCZWNEQ1ZGcnNGVXJKdmNYRkxQQlhrdHZOS2F6NzhhUzFnUUQyM0xCVmFFWkVRb3l2VkZEVnlRMTB5Sng5eWhXQXNhR3VHVjZmQ3Z5YkJnWmZ2MXNwQ0FqY1F2QkNmb0lVWnJBVDR4NDh6Szk2T09Hb3FhRlhMemN6clFhZkJsK1JyNzRtZU5MRmhKL1hOVGFQdDRJZW42UnB5VUMyeW4rSHg0UzRySUhUK2Nrc3ZQSUh0RS8zWkxtTmlmc1JGQ1VGdGJpNnFxM1BtOTczSC9yMzdGTVk3RFQwNDhFWUJmVEozS1BFWGh6dTk5RDFWVnFhMnQzY0ZlT3dUeER3RllBcVhRUWh1VVJPdVdScTB3VUFvdE4zN1hyR0Z2OUdCVmViR1crWEdhTkZEYjV6bnZxSG5uZ05lNHdHMGtwTmdaNEdsRnRGc0Z3Zisxbys0b05KQ2RUUXB1alpNenpFWjRKTklXaUFzTVdtZHF0UDNIajF6cG9TUENGb3BRaWFXaitIVS80M3VkVE8vaVBzelo4Q0VMYWxieDNWZzJweVFIYy9zSmQ5S3BZQ0RZRVd6YlJGVzBnN0Q0Y2p0SU9SWjA5aGhjVmRqTVpma3RpSVk0ZjNzdHdYL2ZNeW5zbk1jM3YzVWw3NzM3THYzNjlhT3RyWTJubm5ycWN5OFREQWpPbnVqbGhvdDhET3VoOC8zZjc5d3lRZE9VUFM5T1ZVV0d3L2h1dnA3Z0F6OUgyamJHNURmdzN2OFQ3RlZyaU4zeVhhd2x5eEVaWG53bzFHa2hCSVpoOEl0Zi9JSisvZnBSV1ZsSlJVVUYxZFhWRkJZV01uVG8wRzA4V0tqdTRyVGF3bGpOTGU0WUZPU2o1ZWE0ZXk3VHlHaklrQ0VVRkJSUVdWbEpqeDQ5cUt5c3BGZXZYdHgxMTEzODVTOS93Wk9SMndkRUxVbVlzcFpnZzhta2IxNU1NQlE2NlB6ek9XYTNxMzN4cGZsRzI4aG1VMldJK2g0TjFHc2hhQkZVbEczQTloZEJZNGJYN09VN2xLc05sS2xOZEZLYUFTV0RFN3d2QzlIbWE1NVBxVkRydU1uL0JwMlZSdUxTenorVFo0RUhHcDBjSWpJTGdZMDh3QVcrVk05cE4zMWlKM08rZ3hJc3RlSEQya1dQMHhWbEczNmNLVzBjSk8wU1RaaGUwNjd2YXpxUzRpeU52S1lXM25yYmxlMC9iV3FoT0N1ZnBDRlJPaktSVllMWEEzNi9oOW9tbTRZVzZGenFKNUZ5cUcyV0pBS1FuK3NCanJER3hCbGx4ckhCVWJiaVAwdUNlWksyellMYUZUcXRwOGZvWGFHam1DcE5iVGFhQnVsR0Q2TlBOZmwwdWtybGJEOGJneFk1WFN5VU5FaExjWE5Ya1RpMitOTDFGMHNaYk5qY3lDOGVlWXZzb0k5d05JbHBXV2hDSWUra3NmUytmRHhlWFQzNFl6UGsyWjJmMVduSHhiVFZFRk9VRHZOekhYRXBJRWRZVTI5NWhEMXZOVWVicGgrbEE1TVZsZ0hQdjE1QVd5UklqNTV0U0QxT0xKVmd5VUlQLzNxaE0rTkdDd1lNU0I3Nm5IQUg4S2pvRjVWaHZsWVBYWVBva3dvd3BqY0Q0TG1vRFBOZER5SmxvWjlUUXZyL05yakYzRWZUNW80Yy9tczc2RjZOYnFWWm5IcE1WODQ0cm9LY29JZTBhVk9VNjZjdG1xYW1LVTRzbGlrUy9CS0JLSEFiYXR1T2htMTdDT29SVGluK2pOT0xQMk5remhZS3RCWVUwOEZLQUFFZFg5OWpDZlk3SFYrUDhXaDVYVkd6T3lHRnVqL2JDaWNKa2ZjZy9qRUV4MFBCTmREbGo5RDZIRFQvRyt3SU9CWTBaMXdKanVYK1RzMkdnbXNoN3dwSXI0WE4zNFRZeDJBbi8zZmFRTXYyWW03b0tMbm51dVBiK2o1Z0hKd1gwQ1QrSVZFOHZWeWZzL3B5TVZhRDU2c3plVktBa1BoVW01OFBXUWNDYnA0M2dJU3RianQyOE1XREFDZkZwV1A2TWZ2ZEoxbXFGUEtuYWQxWVcyOFF5TlZKMkI1bTFUcWNmOEV3bXBzYW1QWkJJeFJtRVF3YTFEUTBjZDhub3ppbjlDMVdmL0ozcnU5eU5YZlVyZ0hwcHowRm41UVNWVldvYjRwUjJ4aWxvbE11ZmJvWFlsbVNkejllUjlxdzl2dTZpaXFvcm85UW1CZWtXK2NjK25ZdkpKWXdtREczRXRQYU0yYm4weWQyT2J6WDJ5N3Uxbzd2SCtTV1lXeFdkVXpiZ0hkZW9MeGxNeU1zazZVbFBhazU1Mm9NMHVUdHBmOVF5OHVoMjVpUjJKYU52bVFKV3RjQS9sU2FuajE3NHMzUHcrUHpJUlRsc09FUFMyVG9LOEdtV3YyQzJpeHdPamlWVkhHZ0xBcTVxZmJsZXdJb1ZUV0dhbjRpanNNaU0wbVpxbk9OTjQ5ZXFoZVAySjZWbjQ5S2lkQW9GUnBQcGx0WlpDYkowMVdHYW42VzJ5bXFiZk9RcS9EYm1rS2JhVlRkdTgzbUZyUy9lYkhWOHhWTDZKQ0NvdHdrYm0yRDI5c3ViYXBVTndUQkJtL1FCaHVxNjRPa0RSV0JSRG9TMExDakVWYWVmaEo1Z0hXUTlDOG5nMDExYkUyWW9nOU4vamFpRSsvMUxNQ3hKWnFVeUlQY1pOTGU0N05LNG1tZG9NZmd4SDVWRE9qZWdBQnlneW5lWDFWQjNOQnh2a0FmRUVLZ0ttQkZVM2hDWHI3OTdWTzVadElBeXFiTm9Qa2ZMNUphdjhtZFNYVnIweE81OVljSVJjR094aUFVb01lZHQrQzk4Z3orWVMvanlZL2UyTzArNSttTFB1Zm1EdEx5RXk5YXhuTy9mQVBoVTRpMVNVSjVOcU9IZ2E1QklCL1NiWkNzVnhseWpNMVRkejdNL2IrRXJya2VETnRwdDVxWVYvOEhiYjNGdFd2NHJHWWxIazNEc0UzcW95MjBKYVBrK2JPUDJzR1diRGN1dUhORy9WRm55RmVGRkNucFlVVEZEYTJydktPVERXUGVDSFhyT3lkUWNrcU5GbnhDSWo4MmhSN2h4TWNkREFObTNjei9BcWpEWnovL0ZhYnQwTklTb1RBN2g5UFBHTWVnSHhnWWIwOG5VRnpJWDB1TCtkNzU5NEtFUnlmL2lxSyt2V0ZUTmZWVFp1RDBIc3pIb3p3MG5MS0ZiRVVuRkVoUzdMc2QxUW03QWZJT0dMK0ZQMzBZYTJzOVlHR0lzekoyakpHeFk5TGRLbGlUc1dONnozaVpZTWFPcWRzeHZ6aGp4eVErSi80dkhRbU9kUDFraXNCMkpIWnJKTE9BQkdncUUvcmtZVmdPYzllMzdWVnV0N1J0UW1lZVFYenFPeVJuelFaRkpYRGlSRUxubjBOczhtdEl3eUR5d2tzbzJWbGcyWWNkeTVIUzFReGJvaWtlZVBVemxsWTJBZEFVVFhEdmVTTXpFSnh5LzJ0NC9vY29PR3BvTzhnbkJSUVZ6ZWRCT2c2Mllidk9VT2tjZUo3RjdEMzM5YktRcUpsTWs1L0Y2MWhnSnZoSnNKU1FVSWxLRzIwdkY2K2FMZkdWMkRncFFXS1podENCaUVBTlNycmNuaUN4VENNeVcwY055ZjJJT1dkMGZTY09TaEFsT1JjWmZSK3I1Q2RvcXNFUHIrM1B0V2QyNTc1SEYvSE1heHZBbG1oWk9vN2pZcWtja2JKTlVYRGlVWVlQR01HSWZrUDU3MGRUdDlrTFcvZW1ZN3ZXbUs3cDJOTEJrZklycjkwMC91dXY4c051UWZIWXFCeWF0bmk0ci90cGpEMmhGMnNYeitHUG02ZnpTcXZCamZOYnlZNFhTZWVFYjBGd2U1TkZLUVJKWHlGR3EwR1B4Qks2QmRkVDVGL0NlcU1yczRNbjRjUWlsSm1WZEM5SzB5WFFBaUdEV2VaNHVvWmZvOEpmVDNtb2toS2xtUTFhWCthSHJpRVpMSFVsb2xBeWNtUDN0ZFl4ZnJvMENBMExpMHNmR2tOT3hYS0dUSmhPVzJNK0F3c3JVSHdSV3RNcktlM2NsM3N1U3pCNjRCWStXOUdkamUrUHdSZXlRVGl1ajNxdmZRanUrV0hGeXlkRjQ2ajFqR1JHTHR4MmhtQjBxVVJJMXo3dXVLeVBIZWpYdjk0clc3MUUwYmpMWDh4QVg0Z1ZJL3ZqNlZ6MnhmaUxIVWdIa3MrdkNIQk1BUTRVNUVBdkR5UjZnMVVMZXNzMkpmaXdTYzhTU1BybnJlU2JBLzdPcEM3dlVlcXZ3NjhsVVlXTkxWV1NscCt6dTczQnRPcFQrTnVLbTFuWjFwLzI1bGhXVytzQnZvTndlNWRuZWdhNi9ybE0zNzZ0eHc3VitLb0tlVDNLS1JzeGdQREdMU1NhMjQ0cVlGODF2OGVlRlhlWEtTUlRwQ0t0cE5JV1NtNFNYMUluVWIyQlFQY3NZb2thOUlnZkphR2lJNUFkNFZnK1N2dWd1VG9FUklKeXJacFIzZ1dNOGl3Z0xrTUlZSXRkUnFOZFNGcDZEb2dQQ2dINXdWeDBSU1BrOVdNNk5xMkpDTHFxRWZUNE1HMmJvcXhjZkpxSExHK1E1bmlZcG5nYkVvbGwyeGlXU1ZsT0lWSktXaElSYk1lbU9SSFo3OW9BVlZXd0hZa2xKZWdLU3piR0NQbGMvL1dTcWhqb3lyWStTbHZQL2NKcktRNVNDdXhrRUJTSGlYM244OE1KcnpGcHlHZUE1T1BsQlR3eUo1c1AxbnV4cFNEYjZ5Q0V4RzZQZHFpT29FOVppdStmWGtmQTQyQTdZbGRoQVVCeWVZeW1wK3BJcm9qdjlQMStHT1p1TEVnSWxPeHN2TjI3dzlxMWU4VTBHb0tTQjQ1SnM3cEVjSWQzTk9XNVpkaUhvcC94UHhkOVJYYXVRQ2t0UnVUbVlLOVpqMVBmdElQdTZDQ1RLVWdrd2FOdlgyaUh3TlpjOFBPSFNhVXRXbHJpOU9sWnhLUlRoMkNuREl3cDd4TE16OGJzMTQ5VjQ4NEZKUDNudklGV1hJaXpxWnI2TjJjUUhEbVllV29SYTVadnBzQURDZFBHZm1nR0pNMXQvak5Wa2RnSmpXT0dOUFBlcjlmaTk5aE1YMVJPMThKbXVwZkZzR3lkVTM3UW0zbExDbEFEMXU1N1pCZDY4Y1hHM1pldjR4REs4ekZuYm95VGp5L20wWDhOUlFpNDlSdExtRHV2RHM4N1lTS3RxZDE2S3grbHoxY1J2cEJKQ0FGcEE2ZHFJMnpGbUVJZ1V5bTNWczNuMjRGM0NaUnU1ZUQzWnk1NjFCZllIcE1qaENDVlRoT1B0RksxNUw5dWZrTjVYMExaZWZpODNuYnZyM0dVT3BZdU8rN2l3L3I1YnVXYlg3SWtCYWJqeGU5SjQ1aGhwT0xGMSs4NmN2V0x1UHZLM2x3MUtvUmlwb2xxQVJRa29vTmxYRkhQSHA4dmpUTnA3TkZzeVRYUCtPaVVaeEc0clJyQzdGMVNzQU5zTGMrMjRBdExBZmYydkF5OXNNdm50bWg3Z1JjZmdyajExajRrSGgzZmlHRVVQdkFyOUg4OFJ1U3BaNUdtaWVMemJhdFhQa3A3UjMwU0N3OW9CVWhjVmN5VFdadkpwRVJvQXNVRHFJcmJKMCsybjQyL3E3LzZqSE4zd1dmZDBWKzlKM3pXWGZKS2hhYmdHQmFGdlRzellWZy9WbWZwTEhFYThTaEx5TzJjUzBzOHhkcHFpek9PRzhPbWZ0MllzN0dTTGxKbDFaSXFoSzU5b1MzYTBmWGpxbkN3MGdIdSszb3RGdzkvRGxwS0lYOExKQ1FObTMwVWQ0M3h3b29idVBTekxGUlBFa3NlMVZFUEMrdE5WZkdQR0VqdStaTlE4M1B3OXU2R1ZwUlAwYmV2SXZlQ1V6RzMxTlA2NGhTU0MxZUNsT1I3VFlhVU5pTnlySU9xNm5vTDg0K29jZTMxMWx2dGNCVWJVTUZaNURJdVpmajI3OXBCaHUzOFVTQlRKcWVmUGhBa1RIMXZKY0xuOXViZU1UWXNwYVM1TllGbE9WODQvN3JxWUtaMW5MVE8yU2NzNFU4M3ZFMUZqekJFd1l3b0tFS0NDbTF4SHpnSG5obnA5WHBKcDkzK1Z6Vk5GcmYvcnA2RmExTDg1UG9DT28zUjhROVVTQzUzQ0w5dmsxenU0S1FPSVdSd0pvMUJwQ1dicXpYaXZSUWFpcnhVeUJRYjhORzFKa2w2azBBVWdOUVVHaEt0T0JJR0ZuVW5aaWFJcEdJZ0pacWkwalc3R0tHb1NQdHdiQVJoSXpRdlNta1JJck4zWlZNTFRsMGowa3BEQi9kUXlEL3pUSHpkdTJPSHcyeTQ3ejVTR3pkU2NOWlpsTjF5QzRxdTQrM2E5ZkJuSXFxQ1RDU1Jqb1ZhVkl4YVhJalFkT3kyTUhaMU5kSk9vL2l6ZG9pckg2eXB0Y0dqbzJzcUc2KzlnK0xLVGZ6bDBVZm8zcXNuZDkxNVp3YWVTTVcyYlRkdlcxUDUzZi85SDFVYk52RHk1TW4wNlY3TzJvdHZSazBrVVlKK3BOWCt1bks3NkR0VjllVHJFa2RYc2RwYUVJN3p1ZkVIUlRnazdRRGpjai9nbXozL3lPL1gvSURGYlNPWjNUUVJSNnJvaW9scDZ5ZzRleDIvVUZWQm56NTVEQjFhUUZsWmdKNDlzL0g3WFlPclo4OXN5c29DREIxYVFHMXRncFVyVzdEdEl6TjQ1UUE2TU5xYjRzcFFtR1AwQkd1V3BQam5TMG1tenpOb2FIWnc1SmR1RThZTzFmbm1SVDVPR091bk9kZ0RtSHRFNjJXRnZpUHJlUTNESWhLT2s1MGRKSmxNZzREc25DQ1JTQnlQeDEyM2tjam5IL2RLaDhUbUd1THh0c00rQnJ2VnhldVdsQXU4bWtCWFhYM0t0Q1ZwMDlXWDJydS81cEUydmk1Mm9vTEhGMlRUcWtYVXJYcUhWTFNXbm4xMWlzcFVObTh3cWQ2MEh0MC9tOEduL1loQVZqYUtBZ082NS9EaWI4WnQxems3NkhrbmpkbjU4LzB0TytkL09nMGIwUlNCSTNlRzU1YTcvU3NQU3IrYkgzYTRVaXB3SEl2RytsV1VsQTFDU2djaHZubzIrdUhmVTFVZVBMOU5abEU3anFRKzJzYVFvbHBtTnNYSnpSN01wSXFSekpqM0NxZVh4VmtkOW1Uc3ZiMGZPMFZSeWVzMERNZjhKczFybmtSTnIzY2IxNWx4SWkxdDVGcTFCTTFWSkpvK0lscGRUbGFuU1JUMk9BMUYwVkdFZ3RlcEpEL2JkZGhGWW1zeGtoSDhvUUtrWTlKU09aWG9sdmZ3Mk5YNHRSanhlSUpJeExYL1pDYnYxL2Iyb3FEUE5lU1hEVU5SMUlQQzhQd2ozR2VJZit6ck1MNWwyZTQwcUlxcmhqLzBSSXEvL0NmTmZkZjcrTjBkQVg1NWM0QzcvaGpuYnk4MThxTFJ5RlhlRW00TWxsSWgvY1NrVFFvSDlURHAwSFhrOEF5SjhHa3VqN1FkTUN6U3BzM01CUnNSUWlBQ25rT0RyN3kzL2hGZHBTamZUMDFqbkp5UWg0dFA3VW1Ya2hELzk5Umk2cHVUN2pzSVNLWnRIRWVpS0FxcUNxbTBUZWVTQU5lZjM1K0c1Z1IvK2M4eW1scFNsQlVIYUdwTGtUYit4Mk1jUWdFaDhYVHRnVjVVaW5Sc2hLWWpUUU1sbUlWTUpSR0JJTm1UemtFSlpwRTE3bVQ4QTRhaEJJS28yYmxrblhnR1NqQ0U0dk9oRmhTaGVIMFVYWHM3UXROUXNuUDNTM204L2E4SkxwNWc4ZlVKTnIvdW5tWllNTUhqOWNXc1QvcTNZNjBJZ1MwZHFzTk5QTC93QTFZM1ZuUERxSzl4enFoUkZIUXBKenJsRFdMdlRzVnVhanF3UHErSEdTbEFTb05LRlNvRHNEUU4vbHEzZkdocVY2Z05Ra0xicnV1SlBmaE9oYXBpNHREMDdBT0lMUTdsVHovRmJ4NTZrci8rN1d0ODc1WnJ1QTZMQURvUlRCUU9ubG1qZmYyYTV5RFh6L25YbjhEZEovVkNuejJiK0pUM1dCeFJlTEM1Z091dTlqTWk0QVVobUxLd25tZisrQW0vL2M1RWVnL3JROFB6TCtGc1NmT0dWYzdibFNiVU5rT09Ea3FtYVNBdTJvQVFCZ2tyUmFyYnAvVHlqU09vbHRLWVk1UGJ1NFN4SXowOE12dFRjcjBwSUt0akoxVGJudEZmVTkwTHJ6ZU80d2dzMDBkWmx3M3VzRXVRMXNGZGFJWEJYUDV3N3QzUXJlTGdGMUpjOFp0OTUyTkNJSVNnZDY5ZUhEZGhBdG5DSURsckJqSWVRNmdxaXMrUFRDYVJodWs2SmROcGhNK1B0RXhrSWs1eTlTcXloL2RuWEs4dW1KYkY2c1lOU0VVNzRDSUFDOGtabml5VzJTa21wOE1adDdMY3VnZFJCQXpzclRHc3I4YnFLcHVuMzB6eGgzdERxQjVCbmw4Zy9OdFY2aFBHZXJBTnlYY2ZpRkZTcURCeHRNNmkxUmJMMTFvNGJKK21EQnd5NTNwek9NT1RoZlVsNzlDaCswMEFRbUxiQ2sydEJ2bjVZSHp3RUdxaUV2SXJzWnZxOGZRZVNFTlRHNllsMmowZ3B3cm9wR3JNUzZmWWJGblUyalpaaXNJd3I1ZFAwaW1tSlJNQUxEYlNqUEg2Q0FqQjFHU0NSWVpLVWtxTzhmcDJ4RW5hTDdxNyt4V0h0MVJwbWRZaE5xRFFKS21OUHJiOHM1UzhTV0ZLTG1zZ05DeEd3OHVGR0xVZEN4Q25Lb0l4dmJKcGlocXNxRTVzcXd2ZmtmS0NPdVdGM3IwQzNzNE9hR1FEaFZrNkJTR2RlZXNpdE81bkE3VkVPelhpM2JGd3V5T0x1TjBXbWpMRHV3UU9HaWk2NjBSMDBuU1NUZlNUOVF5aGljRmVrOTdkOCtrOG9oKzU0eTRsTUhZTWV2LytLSDcvenM5dTIxczdjcnE4T3dONjQyUUFrclpVcnVYRDk2ZFFsRjlFRklXcVpCcVZORUZWa1BRR1NVZmIwUDBCc3JJL0IwRGxDQU0ydnVDR053RS9aOTh3Z1h2UDZrdm9vNm53NnN1c2JRNXcxNlloWEhOYkp5NEl1UUJTcjg5cDQ0a2Z2OGZ2Zmo2SzNxTUhFdnIzbzVSdVVIa3lOcG8zVnZnaDJVaEd3Y25JQTBtWExya0FWRmRIdHFtRXpyYWlESUZ0MjV4NmFnVy8vZTFFMXE5dlkvTGtGaFJGNVl2eXY0UVFKQTJIRDdmQUFqR0l2c2YwNFZ1eFI0bGw1L1BvOEN2Wm5CQkV0OWdZdGp6QzhsdjNyb0pLYmxPdE8wWXYrdHN6Zno0dzc3NnE0ajMzZFBSaG83R1dMc0plc3g1cnhXcGtPSkpwTm54Z2svTHlmdjR1bGJaSnBTd2lNWk91blVLY01iRXJueTZwNTgzM2kvam1ZMWZ5OTI4OHd3bUQxclVqVUgwN2t5NFFCdGkyUkZFRWppN1lVT1dDclBhbzhLQ1lFc2VSQ0VVZzlZTy84RFVKOTI0ME9MdlI0a3RxTTl3OFFnRm5OMXBVZXczdTdlWEZPdXBSMnorV1FjZGF4eHVqclYvcElWU3pRZ1NQR1FGSTBsV2JNVFp0T1NRRlZ1NDBTaXhwazZVRmtNQy9xMTdrN2JvUHVidnZUVnhmY2JIYkQ4NDBDSTBkU2IrUFhBQWdKUlFFMnlIbUpGbncvRDlCd29qTGJ5U2srUEVQR1VDL0R5WWpQRHJDNDhFeURUVGRBNXJHNDFVdjhmQ2F2N01sV1UrK0o5ZTl0anlhZEgybzZldlhQQXU1QVM2NGZpSjNuOVFMNyt6WkpLYTh4K0tJNElHbVFxNi9acXM5REZNWDFmUE1uejdob1c5UG9QZXdQalErL3lKeWk4R2JWaGVtVk5wUVU4TUhJazJCcW1ES2pENGtYZEFYRzFnMWRRYSsrblVvZlRRU2JRYXhqZk5aL1ZhUWlqTlBROXRETXZTT05IdjJiR2JQbnMwamp6d0NRRmxaR1FNR0RHRGt5SkdNSGoyYUlVT0cwTDE3ZDNSZDMxMVZCb3d0dFRUODRlODBQLzZzcTRzckNzMVBQVVhCTlZkUmVzLzMwRHVkdUgxL0dPdHhySlhJOUNJY1l3blNYSTIwYTVCT09LTVo2U0M4dUtoQTZoY0xueU9JanJSR0tYc3J0alFoTVMwTmhNTWR2VGJ4cSs2YjhSZlliRnlmeFY5ZUhjbTdDeXFvYVhiOW41M3lZMHdhV2NsdDUzM0dXYjFiT0RrL3pJOHJ5L2xkWldkc3FhSnJGcFlVSFR1MWpiVWtwcjZHMFpERjVaY1ZjTktvRUxvdU11QzFIZWlQN0VCYkkrVVU0Z2dWSnpBQ3h6c1VSZEd4SEIwaEpab1E2S3BLVnJRRm1YMDhkcmdCLzlPL1FsKy9BR0dtVU9UUmhqaUhBM1crL2tyQ255NUFwdE1VblgwYVNFbTY5aU9FcWh6Ui9FR3hKWmVlM28yK0F4UFViekNvc3NLY1ArSXlQcTU4bnc4M3YwYWh0NVQ4U0E1MXNRMXNqcnpQWnpVek9iLy90Vnc4OWlvK1dmVVJqVFdmY08zRU83bjFnaEg4OGRtNTJJcDJjRmovQngvQWM4OUJlVG04L0RMY2VTZjA3Ny83ZWYzN3cxTlB3ZTkrQnhkZEJKczN3K1dYdzZSSkIzUjdSN3FpNzUwdDhKRGp1cU5TQ1hob09LeDdCMFlPY1YwMGxTMndwQlhRTW1hN0FOdUFjM3JBYTJkQmZRc01lQlhXTmJybmJCWGZYYkpjR1ZvZDMyNS9iR1dCcW5DVEtrN3RETDg5RWRaSFlYSVlGQlgybEY5ck9qcFBWbDVPekFyeXM4RVAwaU5ZaFMxVkpJSnNQVXBJanpPMVpoSS9YdklEVm9UNzdyVVBXRlZzVGlpZHhSMERIbUdjbUVYOFJjbkd5WDdNQnVFV01DZzdueThkMEVza0JlY1pCTTVXV0tTTkFuWUd1Zjdiajg3WWJiRkt1VDB4U2xYa0hvdmpsYWwrMU5XejNjTDRIY2lycTF4N3psQ3VQdjFFRHNRNVBiSWpCSWFFZkkvZ1c5MVVydW1zVU9qWkMxa3JBQnNTY3lKRVhtekMzSlErWkhiVi80YmRzTGR4TkxiRjBSNzY5a1Q2Wk9KbzlpNXhOSkhyQWROaDBvbDllT0xCQzdqKys1TjU1NTBWS0NFdmxyMjc3TGRzaWVMVCtXUnVKYWVlT29BMy8zRWwxOTMzQ3UvT1dJM2kxYjhRTzA0QzRaakpPL1BxT1B2NEx2aTlLbDVkWWZyOGVyYlV4WTlZWU0zRHhuNnd3YXhTaWMzUThmVzNRSmNJVzVLWXI1TllxT0drZHVZMTBvTDBLbTBiUHp4S1h3MHlOdGNjdVEvdk9OaUpKTG1ubjBSeTFUcU1qZFVvZmgrZTBrTE1UZFZVWFhFckxVKytTS2VmMzBYYndLR29oa0VBRzN0cnBjRmh4RUtFWUJ1OG81UUNhZWp1NCtsV3BtR0s2OGs0R0d4UEFxYUVEWnRhY0N3SFRWY0pocndrdzBtdU9Hc29xeXFiZVA3MXhRUURIaEpKazhNcDkxdmlncjdkL1p1bHFLcHdFKzJrUUhqZEpPSjBWUThhcTdyanJhZ2lkOVNubUtYVlBOemI0dnB1cHR2MVJaVmNuUlk4dUZIblQ1czFQR0wzc1ZHQVlvOWtibGpoMkU5OVBEL0k0T1FpbXhzNldVek1zNW5TcFBLSFRSb2hyUVBlejBvak5DL2lDNW9pT3Vrb1ZxeWVSTlZNSWt0ZlJ0RUQ1SXk2Z1VEWFkxRkRSWm5pQTlFTzYxV1FTcHNzV1ZkRFEydU1sWlVOWEhYR1NFYjI3WHhJZ2RzN0grWXNhOHV1K3RtMXoyMzM2NTdjQzgrY09TU212TWVTaU9DQjVrS3V2enJBOEtBdjQ5ZHQ0SmsvZmNwdnZ6MkJYc1A3MHZqOFN6aGJETjYweTVteUxnMlJHRFdmM3MxNUoyKzNLeSsrNDJXbWY3WU1WUS94MDIrZHhjTDh4MWl5YVMzQzF2RjRMWjU5ZlRtdnZQSUpQYnNIZWVqT1Nkei9uWk8zL1haRDlYN0VlQVRrQlZTR2UzMTB5dFpaV0p0aTFxWUVqVEVMajZhZ0tlQWNWZDIra0g0eXJtNC81S0RBRGtpeTUrcmNNRi93V2plQjZZbFRXbm9Nd1VhRlJPNm55SUNQdStZbnlSdWNKSEtLaVpvUUxuanpQdEl2L25WUW1mbmhJNThsT0JyMGFvTXpOOEhRWnBXS1pDdXhPVCtocWtzcHZpRjl5RDF2RW9GamhtWjBpL2FwVXV6MTQrWjlHeXZoRnM3SkhTc3FPNUl1YllkcGxxNXVzM0o1aUhlbkY3RjhiUTVEQnVaeDhibWQyRmhyOGVvYlhwTHhHSDE2eDVrMHNZbWUzUlBndEZNZXo4RW9ZbXBYK2QrZVNkZmlrRzAwQi9BSXdkbUtsNkFlb3RzdHQ1Rjk3Smp0QzJLWEJSS2VQUmVydVlYY0V5ZWlabWUxbTg5b2p3RDVOdWhETFR6SG1xU21lRW0vNzhFejJrU0dCWUVyVXNRZUNaQjh4VXZXOXhNb2VXbnM5U3BPZVB1ZWt3THNIZFpvVGt5UUZ4VU1YYXR3MFF5SUJDV2JTeVFySzJ3VzkzWllVV0ZUWFNJSkJ5V1c2dkljUmU2NWwrK1J4aCtlTzc1Nkh4YTdBRytLRGV2N01ycDZPSW92Umsxek1Zc1ZoM05IekdWemN5RUFGNHlhd3lmcmUxUFRWRUxBbnlDMVpSaS82QnlrUjgvVmtQYnRVelBrNS9kN1l3cWtyWUxpSUIyRmRRM0YvUEsvRjlCa2VIQlVHNlFnYm1uYmhZbHFzM0JqVnpiWGx0SmdlSEFjdCtpSnpEVTZ1b0d6dGkwT3REdTRueENnSDZRNDBjVTNQQUs1SWM2LzdsVHVQbmswK3F3NXhLZTh5K0tvdzROdEFhNi84aFNHQlYzVWhpbExOdlBzb3pONDZMYlQ2VDJzUC9YUHZZUlRHK05OaXBtNklRelJCTmYrNFU0Q09SNXN5M0xGc09PZytIM2tsWFhIVzNBUHNYZ092dmMveEN5SzAzRHE4ZGlkTEZxUGFVVVBlWkcyODZXMlVVZldKV3pqalJLeVBJSlBHeldXYms3UnNtWVZkWkUwL1FyOXpObHM0ZFVVMGgyc2R1MDZDcVl0TVRLQU1wOG5kNDlDOUI2bGpxQi9mWHZzSHR4LzdxYlJDdnBRMHE4WE9BN1NjVERyR3pPRkZRS3ZJakJxNmpKNms5aW1RNWsxZGZnN1NlVGdmZ1NHRG5Cei9sVUZzN0Y1bTdEc29VbStmMTRmRk9XTFYvYXpEMys1am1WSnQrbXg2ak5vVFBxNDU1TkIvR2xOTis3dHY0R2JlbTdHNnpXd0RSMUxDclFNMzVjMmJIWHg3UGozMW5POFhnTXo3ZUd2SzNyeXdNb2VWTGRsZ1dhaitReHNSMkE1WXY5MnBCQ1FsUVdubmdvNU9mRDY2ekJpQkp4NUpnUUNCMmJUQ0FIRnhlNjFra21ZT3hmR2pZT3hZMTJnN3dPNHRwVGdVeVJEYzFPaXhHY3hNRHZONDVXNWNuNnJUOWpPN25VMlJ5UWRqSGY0aXZlOWxZNkQ1dkhRUFA4ekdwLzRCLzlRUWxpdlRtRXhiM0luQVFBV1AvQUFuVkg0aHhLaTlvbC9ZSFhyUXQrenpuQ2JZM1JrNGJhVXBOWnVwTzZCeDRpK094c25HczlVVEx2MUVUc09vVFF0ek5vR3dsTSt4STVFS2YzUkxRU0c5V3Yvd25MbmFMQ3ZZL2Uwc2hNUGM0Q1lyV0pKamF5QWlVUWhhV3ZZd25GakcyS1h3SlVReEd3VnZ5cndlaVFLa3BTamtiYTFqSDlQN3NSQXBKU2tIUTNMVVpCQ0lUdGdZVG9hTVZzSExWTUZMUFp5ZXd1TDVzZ1oxUHFYMHluM0ZVemJSdGtYRmlOMzVtc2R3U0pPSGx5eTI4MWRvQmYzYnRsK25mSDlDbmZxTWVFNGtsbXJtNW4xM3lhYW93Y1hCSFNiZlhIZENkeDFVaTg4TzlnWER6UVY3SkRuTFppeUxjOTdlNzZHVTUzbURic0xiMWRhbjJ0ZlNBa29DcVg1YVZZdHE2ZDdyKzRrSTIrUm4rTW5PL2RTTnM1L20yTlBmb3M2OHpncXEzSVF1dDF4NEU0eUEvUzFRMU5SOXhtM2YzZTRpVi9GZ2VOOFVmcGVPSnlaSlNzUWlzTDR5OGR3MHQvbk1DM21RU29kNTAzYnF0SFp3QnRHaEJQMUVHV0tqbk5JMndMdTNYNjNrUlFwR3JjR0N6akJDdkx2YWExY3NpRENsUmY2dVBraVAxMUtOUnpId2pHcUlMMEJXbDhqV3l0Z3JIOEFZNHVQNDdhdXgxTmxuc084MWliZXIxdk92SVlWVk1acVNWdXBqQjlMY0hDVURMSGR2NStSajBwMkx2bjMvWnJBQ2FkbWl0aGMzN1JRTlJjZ3Z4MGJmeDVwZGJrdlhGV3h6KzlvMkpJM1YwUzRZSERPWHAzL3l0SXdadzNJeHJNZm9BZ3ZYcjNyQTc5d1FPdjhyQ0VESUJhRERadVFZNDhCQk9xMDF4bGUwWVhoR3o5QkxsbHhZS3YweFJmYmQyOWFUcWFCNnc2SlhWdHpCQlJjUkxSMnBJb0hmblI0NjJNUC9lU29UbnFVdnBEKzc1NEI3V1RxU2J5NnU3ZlNwdE51T1ROM0hBQ3NpM0FrMHVjbGUvRks2dTY0ak1RbDN5UjdhRGVjU0pxMktjOHg1aWUvWWZQNWE3R2VtNHdtQktKdU9NRmhXV1E5T1JlZjdzWHg2QWN1NTV6MmkyL0s3YmhzSGFldkgybjVPMGVZUGYrMWJzZlRMNzhuam5SUWhFTGFOdkFvR29wUU1Xd0RSYmhZTGFwUVNkbHBkRVZERlFwbVpoMHBRa0VWQ2trcmhkY1RRQWlCYlJnNE9LaUtpcWFvSkMzM2Qxc2JiRnVPamFhb3FJcEthb2RqUWdqU3RvR3VhT2lLenZxMmpYekNLMGVaNHFFa1ZYVlZGOXRDTFN1bTZMRUh5YnJxQXBwLzhDRHBlWXR3SWxHYXYvY0xZcysvUnY2djc4Vi93bGhDWTRjUS9FMTN6SVoxU0FOOHlWNzR4ZzBISVBuaFhGcCs4QkRwZVlzUWZpODREcDZoL1NuNHpiMzRKbzdONkV3V1F0WGNleCtnYTIzK0NsaXdDaDUvQmE2L0FDNDRHVXFLQUFlS2RaT2JTK3E1SUsrRlYxb0xlTHl4R0FsY1g5VEFCWG5ObEhqTTdjYW1DZzJOOE1wMCtOZGtXTEN5SGJmNkxveDBxejNuRjRJVFBTRk9zSDBFUFlVVVhuWUpXUk9PUlEzNE0wRHQ3VytWN2pGZlkyOWZ4M1pvZnZ0ak52M2YwMFFYTHNkcWk3bDIyZzRPcWZTbU9oSnJLNGt1V2szWE82Nmk0TFR4aDZSMlVrcUpsSkp3T015amYvNHo5L3p3aHd3cEt1THk1bVo2amhvRndPWHZ2VWV5b0lEK1E0YncwUDMzRXc2SEQ2MlR4QWFsME1KemJBeHRZQkxQNkFST1RNR3U5cmhMdFVjYWZVZ1M0OU1BU3BhTk1TZUUwNlM1WURFSHVHUitVdi9PQVQ2OCt3QUtEakdQRHdFRWpSVE9Ocy9tZ1JVTy9OOXV0eFJmdkUrMktpNmZjMXdJc0ZSSnlYZmo1STZ3TVpPZ3B4VVFZS1lraGFlWUNBMmFIdFJRNDhyblAvRWVycjhueFVrUkN0RjBoT043bnNBUFR2MFpSYUZpZnZQdXorbFcwSXZpckRKbVYzN011K3MvWlc3MVRWeDl6QTFjUGZaNlZKVnR0VjVIV2dXeUtpVGpzNkxjVk56TWNaNHdTejlOOE85WGtueTgwS1N4VldLSUJrYU9HTUVwSjd1NjEvZS8vMzJzejhuVDY5Tk40K3J6dkZ4d3NvOU9LWjNFWk84ZW5PT2ZMK3RrYXh2ZXF5OGorUEQ5QUZnelo1UDQyYS94WG5vUmFyOCs1RXg3azlhUjQ1RjE5ZUR4SFBUYVNzZHhzQ3lMcDU1NmlvVUxGM0xPT2Vjd2RlcFVUai85ZEY1KytXV2VldW9wU2t0TFFicUEyS2wxRzJoKzQyM2l5MVppdGJyNnFwYVhTM0RRQUFyT1BnMWZ6KzdnT0pTV2x2S1RuL3lFbDE5K21lSERoL1BnZ3c5U1hsN092SG56ZU9xcHA3am1tbXZRTk8zQW0zVGJrc0lhbTkrZmRETVYzU29PdWcvNnVVdDI5ajkwZEw2UkFLUXRDV1ZwbkpxZlppTGpDQmUyRWVnY1lHTmpEUnQ5emJ5Ykd5UWFOMXdNc2IxNGh3MTJHVjJWZWpZNUpiQVB6WmtFRWlrOVZHaWJ5UllKTHZQTm9MTzZFVVBtRUZTaTNPUi9rNS9FcjZPUFZzMThZekNJQThjbHVqK3I3d0dKQ3luQnNoMFVSZURMTkl4SkdSYU9JOUZVWmJkdzNUNVR3L3lkUG9iKzlQQUJ2N05iM3lYNS9ZYXBIRi9VbjNFNVBVSEs5b2tpREp6U2JudEJFUkJOMjV6U1UyUFdpLzhoSEkwRE1PdTEvekR1NG0veDJrcWJISi9XSWZVa0VvRlFiS0twRUlhU3o2bkh4ZkFGUWpRMnB3a0ZWVlJWd1V4RW1QNWNNVGc2aWpDdzVaR1haQ0syeGowRjZGNkprUkJrZFROSUNZdU5teFY2OWxSSUdBNjZnSTJmK3RuNHRvK1NuaGJaT1E3eFJoK096MFFQT1poUkZXL1dsK2RQYm1PemptVGFuTlcwaGVNRUExNE0wM0w1aEFCc0c1bE80OWlIUVc1K2V5MHVBZjZRaXd1YmpNYzZUQzVYeFQxSDFQcFR1blE2dkI5dzljNGZzem9mNXMrN3BHTXUyN3QzYjBhTUdNR21UWnRZdG13WjBXajBxTy9wZjRRMEJYUy9RNisweHFvN2UrRDNSRWhaZ29iWHV0T2p3SEVoOVE2MTZGTUEwMEhwR2tMcEVjQnpiZ21KZjFUakZ4STkyK1cxanBDa05pWUozTlFGMFNPQTB0V1BzeTRHdWdKSDA5d09lL0xxS29XRlFVb0tBdlRybHN2d3ZzVVU1ZnFSU0x3ZWxjRTlDeGpTcTVETjlURUNYcFhHdGhTUmhQRzVvbFlnVVFUWXRvWXRkWUtlQ0NmbUxlUnJSWXNZbmJ1SkVyVVIxWkpZQnNpOExvUjZua2lnNzRsNFNnZWpGL1FFZjU1Ymc2aTRVWVBkOWt3Uk9DbVFxVXlmbE05eGJXM05XSEdTRUhrUDRqTWhOQUh5TG9leTdsRC9XOGc2R1hMT2RNL1hPME4wT3BUY0RXb3UxUDRZWWpQQlR1N2NXT2Z6N2dNdS9LWHdndUlIR28vc3RYREFQaVMzT0FoMFA0VEd1ZGZVL1dDbk9oNGJ4QkdvV1JaV2kwN3lreXpNT2c5cWpvVlo1MFVvOG9ndHBGR0VCRWVoVjNhTTg3dlc4OWMxM1VqYkdyTWFzekt1RlkxczNlS1dQaHVadkttRWRaRVFLQTdPUWJDYlJNWTNsUmZJWW1Uakd6UkY1aElhZGc5cmw1cG9Yb2RFV3hwc2hiREhTNjhlM2NqTkR0SWlsMEE0VGx5WWFFRVBpNnBiR2RmL1FxcHFaakJpb0JkVmRYdFB0TWRpa2RKOXZ0S2lFTmRmT0pLaC9VdXhiUWZUdEZtNXZwRVo4emFRU3BuN2VWMUpsOUpzYnZqNkNBYjBMTUxPMUhJdFdWM1BSNTlVa1RhLzNJL1NFdExiMDdqZW1URjFBSFY0LzZETTQzc2RCMU5SNlg3bGpSeno0VXRFemVYa0RSeEtqUTBlZGUvWGhkQTB2SG01NERnVUZSYlIwdFJBZmlDYnJNNmRVSHpldzQ0bC9NcnM5cFhRS1phVUNSNGJwV0pvKzdaOFphWVp0Wkx4V1h6Wi9IZ3MrTVo4bXdtVjdTdFlGQVM5RkM5WlFtV2huU0NKdy9YZWZQcHBQdFN0ejdxakRpVUUvVFFmNTVQRG84a20xanRwUm1nQmVpdGVhbXhyV3grd2cwMWJ4ek1WYWFOMjFXeldmVFlMUGJlY3NXZGZpaitVMnlGNDExS0NwdGhFRWtIZStMQWIzemgvRmQ5NjhIalNwaGROTWFsckNqQjVSbmRDZm9zQlBWcFp2ajZQeWU5M3A2WXBpRVM0TldYU1FzM05ZOWduR3lrcURHR2FkdnZrR3hVWGY3azhzOTBHbzMxYUU5dzdkeFBsa1RSUERpckZsQmJFVW9mZXR5aGNYU2M3bU9ENDNodXhIWVhCbmVyeFlnT1N3WjNxbWJhaUJ4UDZWTEdpcG9qV2VBQ3hBMDZxcWlqWXRvMFZTVEZzZUFYM2ZHc1NFd01tOXNPUFVELzFROHptQ0lxcXVCZ2VPeWo1UWxHUXRvMFJpNUExWWlobDk5eE0xYWhTSGw0M21Xa2JQbVpMTXJMYnM3N2szejN2VjFPaHBRV3FMbGxPWGhra215UStyeVFWaFRmZWdUOC9CaFZkNGV2bmdCQTJScFBDMXliRktKNzZKOGFzcWNBS21JaDIwbTEwL3Zkb2FmMDZETXRFQ0lFaUZOWTJiK2JSZVMvenJXTXVJcytmL1Q5dEMrZGw2ZTIwUjlWdGNSOGhGR1E3NVYvdW1ua29qOVlSSGpMeVNac3h5VWFsdHhISi9UalZjTjVib2E2akZ2c0tKNGRWK1l5UnRwWWhOSVBqL2lxWmV6czQ1bGQ2TEw1K3cxOGdOOFFGMTU3SzNTZVB4TDk0Tm9rM3A3RWthdk9iVmg4M1hqR0pQK1p0QVFRZnJtamtxWC9PNUxlM25VR3ZvWDFwZk9FbDJCTGpUU2VmS2V2akVOOUN3eE1wL0xrS2x0VXhmZVV1M3NXTzBXYlBKanJsUFpaazdKanJyL1l6TkdQSFROM0ZqcWw3L2lXc3o3RmpoTG85L3ArWDYyZFl6d0krWGxhSFpkbXVmYU81OVIvU3NsR3lBL3l3UjVxd28zRHhGai9FWTN1dU1aWVM0ZkVRZjI4YU1wbEV5YzhIS1VuTy9CZ1JDQ0FDQVp4WWpMb2JianBzY2I5RkptZy9wbmNKcHczcnhyd0ZHd0U0N2Z3UkhOTzdKRk9TZlJUdFpHK28yOThmYm9jSlVRR0RjT1VXTENuSjc5NEpJWHd1TU1hQjB1QzN2dlFVTzVQQm9pQjQzWWl3ekVuemNMQVRRMVVmTGRKQ1FYeXgvYWVBTk1Gc1VzaVphRkp5YllyRy8zaFJnaEluTGNnNzNVQXRjRWl2VTFsL2V4YXA5UXJDeHo3R0k5d2d2bFAzRUNJd0RMdzlRSGpRWkJoNzQ1MDRoWGZSdWFnZlQvOTBMTGRjMElzNy83U1F1Yk5yd085QjkydFlsdE5oRHMrT3VLcXFLTWhrZ3RQR244cDNMcm1aWHovekorTFJOb1NxYnN2WGt0SWhKNVNEYmR2RVdocEE5NkI0ZlRoU2ZxVnhpaDRyTjhWcmZXeWk2VFl1V1JobmJMb0p6emlIOGNzYldMbTBpbGY2Qlhtb24yVE1GbHVreGM0ZEdRV1FZOVR5amRKWEdWdFloVTh4bUY5ZnlsdE40eW1QVnpJd3NJWXVXVnNvRFVUSkNkaTgwVHFjRWM1NlRpeFlqbDlORWRBTUdzMDhua21kU2EydlAxTHFZQXU4eVJwc1BZRGx6VDRvZmpxaENxU3Bvb2VhNlhmOE82U2lCU3hmUEJndFZZSlEybWhzTEtkaVdCZzF2NWxucGczRGRsUW1EdC9NSy9kUDQ3b0hKcEdTZTA3TDNYMk5iODJqZFVBb2JEWjgvUGRUV0ZZTjV4NnJjZU1rRDUwTFhabHAyKzFlVXJsZjVHUjhRZWNySVM3VEMrajByVzhUR2p0cXUyUGtJTkgrNXZNckFxUUIzUW9sazNxQlY0Rk9XU0E3UTMwMXFCYmt2Z2YrS3BjSEgrcjRyb0pEMzl6Vi9HVGtMNWpVNVQzeXZTMjcyUGNtUGpWRm5yZVZFbjg5eGY0R2Z2N1pUMW5kMW5lSDNQTjJrTWYvZU9hQU9ib1FBa1ZSTUUwVEtVSDM2RWpIMlk0cGVTQjAybGtIc0tnbHllWTJvbHZxTVdLSm84clhWNURVdmRFb0VpbTBxaFRLYUpOQVhoclY4T0REd0pObkVWQU5qRllEdlZLZ1pDQTNqOEtSSDJyZWFPTVhTWEpFaENLMUNhOWprQzBpZURGd081SWVHR21LU25sZUNaUDZIa051SUlSSDFmbHczUUpNMnlJL2tFMnVQNHVVWlZDY2xVZEJNSWZ5M0JLbXJweER0amVBVi9QeS90cjVYRGYyYkFDcTIrcXBEVGZ6d29KM1NWdjc3aXRSaE1DT20zaXpQWGcwaFdoREVqMUxaOUxQRndBU1hSVVFOY2txOW1OWUR1bUlnUkxZUGNkWlZSeWtGTmpKSUNnT0Uvdk81NGNUWG1QU2tNOEF5Y2ZMQzNoa1RqWWZyUGRpUzBHMjEwRUlpZDJPcXI3WDQvRDkwK3ZvWDViQzNyVzV0d0JwU0NJeldtaCtvUUdyeWRnL0VENHBYZHcxSVZDeXMvSDI2VVBvdU9NSUhuY2NubDY5NEtXWDl0b1FNVlY0c1ZlS0xkMWlQSERtMll6dk1USXpGZ2VSQS96elYxK05UU3QyL1Z2aVJLSVlVNlloNC9IdCtQZW1oVG43MDB6QjJzSHZJMzNSWlU5QzV6eHUrODZwZkcxb1Q0eHBINUorYlFwVnBzNGZrNTM1K3BVRjlQSHJDRVhodGJtYitYREZRbjV4OHpqS2h2Vm15OStmeEE1TDV2cDY4OHhhRXlycklWc0hkWmMrUEk2Z0tOc2dLemNPS1ExaGJ1UzllVjVPR0dZd1pLUkZRWmJoOXBiWkM3cmtrc1ZmWUVWN0tLV2U2WitPb2FoWVIwcjQ4KzhyT0duRUVoNThaUkZnY0JTQmQyOThlM3RZME5MQjJieVorUGZ1Z1VUU1BkbHg4SngzTmdTREdQOTVFUnlKRkc3Y05malEvYWpEaDNhb1FlZjhqelJiazlKQkNJVzY2dFY4OVBwREZIUTluc1pXQXlRc25qZVY1azBmTStHY3V5bnQwbS9idVlmZE8zd09henljcVRqTFRYcHBpRm9kZG85Y05YQkVqcThpSkFuRHc0Uyt5MUVWaDdjL0hZY2VqSkhsUzJCYkpzMkd5bmYrdm9sWG5tbmh1NXRmWVZ4NE9VbkZRMUwxb2tuN2tDMUFBY1N6SFZiK3NZSk9qa0xaYlRYWVczdFNmRjVQQWVtR2M0UVAxcTV6dityZEMyUTZneDhoOXZHOEw2SHhRd3JiWlIxSVZCU3NqQzlMUldHclludGdxK09qbVh2V1JSSEN4ZjRBUEgzN2tIZkhkOUI3OWFUMS8vNkVYZCtBa2hWeVk5MkhLcloxaE1YWlA3M0h0NS8rUzRtT2doZUhwSlEwQUVsVm82S2lKMDQwZ3RsUUMzWUtUZEZRZEYrbXQ4UCswTTUrcEYzOTFWK016OHAyZk5idjdJRFArb1Y1cFJLRVFxeTJqYjh0WFVLc1N3Rjl1cFVRcWU1UHhPbEVjMmtucHZicHptWFpCWXh1YUNQSDhmSDI4azBaREpvdlhtc0hvMThGUWlFV0Q4TXFtL0M2TS9FUGVvN2F5Rm8rZWIyRTRjYzBFZFdqb09RYzliTWNUcnFLWlpOZXRZSFU4clhrWFhNK251N2xDRTNGTjZBMzByQ0p2UGsrWnRXV2JmV3ZBaGNIUTkyYTAzeVFKbE1jWWF0RzJnY2kreVZDMWJDYnBpQ0VqZ2lOY0wrTnZZMlVKbXJoMlVqYmFsY05TQkZnbXphRCs1UWdnYWxUbGlIOCtpNzdXMkRaRGs4OE9RZUNYb1NtN0hSY0VSSWhKR1k0U0dHblp2NXk0MVF1T1dVRm1HQzBLV2lxZzZZNldJNExqaHp5R1NBT0hHM2c5Tk5QcDdHeGtWbXpadEcxYTFkTTArTHZrMnRZdHQ3Z3dWc0xHVGZNVDJDVWduK2dRbks1US9oOW0rUnlCeWUxRSt6NlFmV1phREZZSkR5b1BSVktXeXljR0lUeUxCYjA4dU5mWnFHbEhhUlhwVDdXQ2toV0NvV1dlQ3RPT29IbVdOd3c5RXpxWXkzSWRBeFYxYkVQbXh3YVYwSFVSNHpFZC82WmFLT0hveGE2dXA3ZDFJVDE2VUpTazkvQ1hMQjQzeFRHZlNSZnQyNzR1blhEYW0xRi9mblAzVGhuMTY3a24zYmFrY0ZBRkFXWmpLTldWQkM4NG1LODQ0OURMUzRFVFVNbWtwakxWcEI4NHkxUzc3enYrdE0wOWVEcW1vNERRdUFwektQeHAvOUh1cXFhTy85NlA5MTc5ZUxDYzgvRnRtMDBUY095TEd6TFJ0ZDEvdnZxcTR3Wk1aTHBDK2JUZjk2YnJQN2E1ZGkxamFoNTJVaXpmVzFQVjk4SmNINEdqMU9mUFp2RTFHa3NqZ2dlYUNyaytxdjlEQTk2QVJjLy85ay9mY3BEMzU2d2s3N3pwbDNPMVBVR3RJVzU2STRSK0lNZWJIdjMvRDVIS3ZqVUpCSkJYYW9UcXJCSk8xNWVxcjdTOWMxTEZhK2F4cEY3ejJ5a2hFZ2tUVlZWbE42OWM5RzA3Yi9WTklWRXdxYXFLa29ra2o1YzArZStsR3lnVUxFNU14RGo2NkVvK2RFVXI3NlI1S2szVWl4ZGF4RlBmdm1MRmVRSUx2cWFsMnZPOGRDNVp4RnZHU2Z6WXUzSndDVmZVZi9rUGw1RUtFaHB1MzZ5akIrekl4YU1vaWpvdW9acFdxZ1pQNmhwV09pNmhwMnh1Yjd3ZUdNVEcvOHptYmhpd21HTW5TT0JITDlLd0NPSXBCeTh1a0FWZ3FCWEVQUW90TVJ0MHBva2JVbXlmUW9KUXhKTzJlMGk0WTY0OFJVQ2FWdkVXbW94VWduTVZKeUNZa0duYmg0c1U5S3R0NWZXbGppV21TTGNVSVhxS3lhL1V5OXlzM1JPSEZGODBGdlMvdUM3VngvVy9PQ0hQN3FsdysreGNmMkhOTlhOd2V2TkpUZS95MkhyWHorZ1pha2VXY0x5WU5RdlM4Q2pxbGo0U0ZrV1p3dzdoVXRPdTU1WE4zeEdvN0VDb2VqN0pZODgzaUNGM1NZZ2hDQ3k2WFdzOENJOHVrVXM1WkJNRytpcURYWVVrV3drVWEreVBGbEJLTHVBZVAwYzdOcGxyRzdTUUVCZTNscFNvY1g0Y2djUURUZVFIWjZCaUMxQUtqYUdKVWltYlF3TGdqNkJnNGFXTzV5OHJ1ZFEwUFY0ZEcvZzRLd3JqeVF3M3EyMVRIemlSYVk3anM5S3ViVlhlc1l6bVpMODVORWt2MzBpeFE5djlQUFhId1g1OWJlQ2ZQZjNNWjU2dlo2bjB3M2M2Q3ZsdWtBSlhhU1BxTFJKNDdnMXkxOEpKOWJuQ1lyOTYybjlSVDhSVzN0VUtZSXpUeDBBRXQ1OFp6bjRkSlJkTm9lTEhuOTQ1SmY3ZlJvbkg5T1o4U1BLbUR5dGtsV1ZyVlJ1aVJLT0dvUmpCckdFeVl2dnJFY0lRVnNralVUd3pCdHJBRWtrYnFKckNxczJ0QktPR2FRTmh4RURDcm5nbEI3TVhWTFB0TG5WSkpMN2FMZDk1ZXIvQklyUGo2WHB4R0l4QW9FZ0hsM0h0bTFzVmVEeGFFaGRSU2cyQkgxNFF1V0FSRW9MTFM4SHc3QlFkUStxMTRkaG1pUUNXWVJDSVpUOXhKU2Z1OHBpVTZQRDhpcWJiNXhtY1dOM2t3SEJCUCtvTFdWNld3N0cxdjdpbWNVZVRpZjR1R281V3lMTkxLM2Z5TFhEVDZMMzVWZmg3ZG1MOEt1dmtGNnhER3o3Q0o4aHQxOGJnSWFyQWx0QVhJRVBzeUNxUWxYSUxTL1MyVFBzajdSdDdKWm10THhpVXNsVkpIeFBZcjNWblU2eE9NS25jY3ZObHpGbi9DQWV2Znh5emxtNmd0RWVEY08yM1Y1MkIrRmR0Vy85K0N5K2Q5Vm9ldFd0eG43NkwzeFluZWFmWmhjbVY1bWsxMnpoNm90UzZNSU5uZHFHeVd1UHplVE5LWXU1K3BvSjNIUFhQVnhVdDRvTFhudWJ1Y1VXanliTGVmYlRSbmNCQ0lIRVF0aFpMUC9FSWFqT0k2cVZNaXlyaUtMRUpsNjBYNmUrcHBpYzdDczQzcnlZbVFzYklaQndpL0E3aU92WDF2YWh0bUVBdlhwTW96SFNsMDBiaHlJZDZGcitHVDUvRStzMlRLUkxwMldVRmxjZVZHUENYWFNpSFMzNWppZXZ4OE9nUVFQUlBGNnN5dlhZelUyZ0tHaUZSZWlkeTBtdlc0UFZVT2NhbzhFUW5wNjlzZXBxTVpzYXNGdWJzVFp2eERPcUIwTktlMUxWVmtQS05oQUhFTGJadWdtOVF1RjZYejVyN1RUTHJCU3FVTEdSU09IV2N0UTFnaGlnOE1PYkEraWFRTlZVQ25NVkxITm5YUHZDWEdocWNiaitvaUNtS2ZudnREUjFqUllPeWphYldNMGtmdzNTZkZ6dnk4Y3JGS3d2RWVRZHV0OHllUXltcFpKT3BhRnBKbHBPT2NveFB3VWs0dTF6b0tDTWhKbUhtYlozVDBoc0I4VXFMU1ZKS1dteGJUNU9wOGhWRkc3UHppRWhIWjdNZ0g4TzhuaVk2UFB4NTBpWU5zZGh2TmVIWDFGSWI5VlN4WUU4d3Y5b01xT0EwT0E0NFRuWkpLdDlGSi9kUk1tVlRUUy9uWTl0cW1nK0MrbUlEdUtzRVBBb1hET2hsSTlYaC9sb1paald1T1dDeldRRVdjOFNQNFZaKzJZWXFvcWdLRXVuSk5mRDJ0cmtmdkdHay92bHRNUFlDb1JRdHlWVktoa25hWHRzbnIvc05wWUtObHRScFV5NjBFb2ZwNW9oTkRKWXQrblRvNERPSS91VE8rNVNBbVBIb1BmdmorTDM3NlowSU4zQW1oQUM4UVhLNGRhcDhBYURISGZodFN6OThHMmlEWnZ4aEhMUkhVbHgxNEg4N1BGWEtTd3MrdUtoeVRteUFGVnUvdDRrN3J4OUtMMGFaOEdUMzJQVk9vWGZSTWZ5N0VvZmRrTWRWMTJmQk9IT3M1TTJlT09GT1V4NWFTbFgzRGFPKzM3NEtPTWFaL0g2Q3k5UTFkM0RMMXBHOE84UEV3amI1ZnFxcXZET094Y0JNR1RJRTlpMmsybEl2RjJ1Z000TEw2eWlzakxNekpuVmdMNnRVZW9YMmtBUzRnYkVoSWRHbWNjNWcwYlQ0TTFsbnBtUGFzVVJqblNUN0E2RDhRM3E2YjEzVWdzSFRYSDJjRndTMU5QNDlaUUxFdGtPRk4vTlVEK0E2OW8yK2duajhGOXhFZkZmUEl5MWFLbTc1N0pDcVAzN0lCdWJjWnBiRHFGTUVFakg0ZjI1TmF4Yzl4NHQ0UlRqUmhRaFpTbTMvVnZoa2V1Zlp1TEF0UngrdWVLU2RKdE55SytCUjhHS1N4eXY0T20zWFFDdUgzMm5DR2xJdEpBQ0JpVGI3SU90ckhOc204MWw5ZVkreFVla2dNdnFUVjR0MHBpWnB4NnRJTnpuL2JhVk1YVGNMU2ErOXNldjVOQkoweVJkdFpuSXRKbUUzM3FQeEtKbE9MSEUvaFhYdGZlMFpoaFFnU2VQcUJYanU0dC95WXZWYi9HekFkOWxiUDV3MTNEejZDZ2VIY2N5VVRTZGhsZ0QwZS8rQm9DRzg4NGxsTlBkUFJZS3V0dktBVTMzTUs5bEVUOWI4UWRtTjM5R2xoYWswSk9ISmUyamUra3dvWnQrZkE1M1hEV0d2bldyU0QvOUtPOVhwM2pNN01JclZTYjIyaG91LzNyYTFhRndHeVM5K3RqSHZEcDFLVmRkZlR6MzNuVWZGOWF2NHB4WDMyWm1zY01MaVc0d1F3UFQySmFwdDdXaHBBUW1WeTRocDNVK2EzLzBXK3hBTHQ2YU1ITEpZbjUrNW1sN3JRZDRQQ3FLSW5BY01FMkwydHBhYW10cm1UNTlla2JrQ2lvcUtoZzBhQkNqUm81azFISEhNaWljb3VEWTBRUTdsK0VyS0tEektTZmk4L21KcjYvQ3RpejA3dVg0aHcxRU9tMUFDS3V4a2NUaVZXU2ZjanlxcHljRU11QUdNb2swSzNITTVUanBSVWhqQ2RKY2g3VHJrZkx6Z1F1VTBKSGxRUGZrNUJ6ZUQxaXpqdzVXSWJHa3dEUjBodWVIK1Z2LzlZekppNEVmbm41MUlEZjkvalJTelNFWDZWZDErVkpUUXpaTEZuZmxMNitONUIvZm04clY1NnpnNFg1VlhGTFN4RGRYOW1SaFN3N28xclpyZHhTWkZydzdMOHJjWlhFdU9TV0hiMTljd0tDZXZvUHVHMjBmRHdYb0lvcktCbEpLQ05XVGcyVWtzTkpWK0xMeXNiUUNrQXI2a3Vra2F6YWhlcnpZNFNhVVVDNmVtblZmV2VDMkkwMEZiWnM5RHhEa25YZzhiYlBta2Q1U3k1RThOWW9RQ01Oa2VQOXliai92R0dZc2VZcXlZQ2ZPSG5FK3lhcTFySG50RmRUdUdsdnNOWXdWNDFDQ1hXaFk5UW1CelRXOC8wNk1mdC9vd2VEK3g3Rnl4U2U4TnZmZmZQMjBTWHowV1RVTFZsYURSKzJRSm5jN1VVRUJUSjRNVzVzSC8rQUhNSGl3Vy9XM05YaXJLUERLSzdCMEtUUTB3QzkvQ1RrNWNQdnRCM3g3UjRLcXc1SUcrTDhsY01kSUNHaFFPUk5xcW1Ca05oQ0Q3ODREeHdEVjQvN0dsbTVqazRkSHU3cmllVE5nWFFONEFtQkpNRE9BVys5TWN1OHo1RFd3blF6QTE0NTdSNE1YS3FGeU1zeXNkei92elppYmpzWi9xaTZrS3Q2TnA0LzlKbDJEMVRoU1FSRU8vOWw0QWQrWi93QmhJM3Z2bkRvU2VtVnY0TForajNGSnlYL1I1MGFvZmRaTGNxV3JBNGxkM1grT1c1Q1pNOEdpOEFxRFRaMTc4b3UxTi9KUzFYbEEzazZuanVoZmRnQ1Q0OUMyT0pjdGl0Z05SMHRSQk9XZGNzbnRXN3BuWU5CRHdCQnpkTUZOWFZWdUtGY285ZTVGVEVxNFk1cWNGeVg4UWhOR1pab2pOc3Y2Q0tGYmZuUW1kMXc5WnFjNDJsYTdZZWM0R3J2RTBZN2ZMWTcyMTJRNXozM1doRXlaMURiR1dMeTZqbWg4TDRGbkZFRTBickI0VlIwMURkRzlpbDladGtNa1liSzVMczRmWGxoTmVYR0F0R0dUTW83YXBlMUJUa29na3dJbkpVaCtvcUVWT2lEQmlTbTdLendLcUpualZ0UFJobTVmRlZwNzFoVkg1b01MZ1ZaY2lLeHJvUFRlMjJoNi9IbGFHNXRSczdPdzI4SUludzh0NENjeS9XT1NzejloVnBlUi9ENHdpclZhUHJreWhTSmRvSm5ENGxVQWFTbElVM1B0VzF2aGUyZTZTQW0vbjNJOFVuR1FoZzY2aVZDZGcyS0xTQ214a1NnZUZjZHlHRDZnakN2UEdNS2tjVDFwaTZRWTNyK1V4LzY3a0xVYkd0MWltRU5vSVltTW51Ukl0N21KOENqTStyakJWVkw4Ym94WXBxV3JjT29waENZd05sWlF2N29YRjV6M0laZWRPSjNHbUplaWtFMWpUR0hDWno2KzI5WGtraEtieDJzMENuU0pJM2NHU0pGQVNJVmFRK0JYSmFpU3BDT29UQXFtdGFoNGxQWlNiU1JTYmkwdUVxUnFGaEJiUFFVMVZJTGlDYUpsbGFIb0FleDRJMGJyQnBKVmN6RGE2ckJpTlFSN2pLZGcvSGZ4bGc1RktOb09UOTllVzlEMTcyMXBEUFBLQjh2WVVOUENwWk9HY2VhNC91U0dmSWRrTFR4L21MT3RDYnQ4L3NhOXAvT2RLMFl4cUc0MThYLytnZWsxQnYreXkzbWwwc1JadTRsTHpvbGhwUTBBWXBFRXIvNzFmVjU5ZlFGWFhuMDg5MzduTGk2c1djRnByMDdsa3l5SFA4Vkw2RFRoWWNhT0tLZHpTVGF2VEZ1SlRKdU1IOU9IcGtnTFAzdnZ1K2lSZ2ZRclBoMmo3R1BlZWMxTHZQaCtpbzdwejRvNTR6ajIrTi9TZVdSWFJnM3NUQ1NlNXYxcEsvZDVIMjcxSWV1cW9FdU9ScTQvUU84Q0Q3TTJKVmhZbXlKcE9uaDF4Y1VNUHFyNjcwWS9QNkZwLzV4VFhrbjFDL2s4M0NYSXRXME9JVHo4dEVRbFdUU0lYODVaUzBVcXpHL0x2ZHkyTVVhWGUxb2d2WCtKL0wvWXpUN2RmNXRVVVFTb3puYS9sTndod1Y4SWhDSXl1VG1IMWdFbnBPc2JPSEVMM0xoU01MQk5vTmdPeTdwNjZYYlJLZVIzSzhjeUxlS2ZMc1V4RElMalJ5SGFDYlF1V0dIcy9lWVRZRXRCM0ZESjlscTdPR0FPYTFVT0tjSG5zUms4b0FWZGhGbTJLTW5MakdEaGlnYkNqV3NaZjJ5Q1RzWDJObE96M1ZTM3o1NDVvdmlENHZXMmovTm1oODIvdmFqbTRPckRXeHM5UnViTVk4MDNicUg4cnU5UmNzWEZDSTlucC9QQ00yZlI4UFR6ZFAzK1hTVFhyQ05yeE5DRDVndFRpaDJjSm9YVU94NlVvQ1J3V1FwcENHUlVnQTMyWmhWem5vNTNVaG84ZTNacVNBSDJEb2R6WW9LOHFHRG9Xb1dMWmtBa0tObGNJbGxaWWJPNHQ4T0tDcHZxRWtrNEtMSFZ6OC9CT3RMNGcySHNmUUdPWlNzRVBQRGMvTkcweElMY2VQSVVobmF0NUpNTmZUaHB3R0sydEJZUTlLYnhhUVkrM2VEV1U5NWlkVzBYL2puOURKNmJQNW9mOVZoTklxV2hxUjNyck5nSzNuVHk0S1dNNzcyV2YzdzBnZXFXZkRhbHZVZ2h0eFVHaWN5L01pTlU0b2FIUk5vTFFsSmUyTWhORXovaTQ3VzltYjVpQVB1YnFmWDZSNnYzU20rUEp0S0VZNm5kMTZzUU5MVEVlZlhEMVhoMHBjUGRzemZmKzNYdXVISWl2V3ZXWVQ3MkNCOXNpZkdZTEdUeXhqam0ydFZjZWQ2eHFKbENLVE9SNHRWL1RPRzFOK2R3OVZXVHVQZXVPN2lvWmgzbnZUcVYyVUY0d3RzYnFXbHVrNnlNMGlCdEIwL1F5OVNlNVVUdEZGbERPM1BPekZLeWxSQS9ML2F4dE50OHZqdjRZdlEySDJuSCtWSlhaa2ZXSld4ZEhJNlVtRktqb1hrbGwvOXJEcVlTb0RhZUlwc29wcjhIaFhtbnVFMjlaZnYzVW5mell3V0dMVkYzWHhxZlM3WUVqK3FXWng2VU9zU2pkc01CY3Fzamg5YWZjKzBCdjY2MExLeUc1bTF4Q3F1aG1hb2I3a0JvV29ldUpiSERXbFdGeEhJRVFuRlFmVGJWc1FDM3p4bktIMVpYOElNQjY3bXV4eGE4SGdNcnJTTVI2TGtPZHN4OVhpMVhZa1lVQkJLdjEwQ2FHdjllWGNIOUszcXl2aVVITkJ2TloyQkxnZFVldFN1S0FzR2dHNTkrNEFIbzJSTkNvZlpSdWxYVnZkWUpKMEI1dVh1UFlMRGQySUlpb0hQQUVoZVdSK21SWmNwbk4yYkwxN2VFYUU1clF0MDFOMTRjNXZ4RUhQenRyR2JKOXBrSWRxNFRiTGRuYld1Zjl4eDAvYlZVL3VLMzVEdVN6VUpCb05Bamt5TldMd1FCb055QkZwRkY5K3V2N2ZpNWxtQzNSV24rNTh0RTM1bjE1VG5IUXJqNW5va1VzWS9tMC9UWC8xRDJ5MitqbHhTMGEyMnNrbnVZNXhtR2ozQnh2R3RSaVpRb21rVjlYWWdYUCtqSEo2dktjQlFUTitBcWRnZWFFcUFvRWpPbDhNYXNudWlhZzVVVUtCNXo5Nll4T3l3MlJ4SE1YVmxLeU51UCt2b1FRazBqWmNaSWxIdkhuQ1FTVzNyWjBuUWRlZjVLY29NTFNac3FxcktuYUpCYkl5aUV0aDBsVkVxa05OMWF3UU5teGpzM0RVcWtyVjJIRjAwUkJMeXFHNytRa2tUYXpnQkV1K2M0RHBpV1E5Q3JZVmdkRzltSzdQTDVsaCtkeVIxWGphRlh2V3RmZkxBNXpXT1dtNjlock4zQ05WL2YzYjU0WThwaXJybDZsM3lOb294OU1YOVgrMEtpYWhwbkg1TmdWdUJOZW5jZGdCSFB3YklGSldXdkVQQTNvcmVzcERsZUFWb1JVaVk3ME84bmRtSlZTU09KMytQZmxrTXE5cVZMNUVFUXhVSlJ5RXZIT1BtVVBqU043VUZremNkb1dwRFdZMDdscExWUkZrMWVTcU9XaFhBNkprWWJsdzdOMGliaTJFeE9oL0VpR0tVSENBaUYvQjJTMXdRU1JjakRyc1o3NjVnTTBuemNuMVhLakhpTVovN1p5dHNmdGZHOWF3S2NkNktYWUVEQnRqTTFDVllUZHVRRGlIeUFSODJpbjdjbi9VSmp1SExRV09xWndLSm9rZy9xMXpDemZoa3IyellTVGtjemZGTHBJSHdJQVk2TmxBNkt4d2VLd0VuRUNSNS9DcjVqamlmeDBYdjRqejBCMzlpSkpENzZDSXd3U0J2aDlTRTgzbllCNlRuUzZuTHRmUWp5T2RLTkc2NXFTUEc3RHhzNHBtdUF6ams2WmdZY1Z0dHF2emx1bkY5WEJWdkNKci83c0lGZWhSNkdsUGt4YlhsZ3BWcjdBOHF6dFhFRllIL25Mc1NHRFNnLy9qSGkxQXdvOG85L2pIUEZ0Y2dlUGJiNXNuWkNpanVFR3pJM3o0ZW1DYnlhRjcvbVJ5SkpXU25TVmhyTGtyU0ZqZmExTVk0MmRqOUtSekJkZjI2WGRqSG5IUWx0VVZkWHpjM1NkK0paQjZJNzNIR0E3MmVyNEcrRi9IbXpTUTlZUlBTK3pXaXQ5ZVFPR0lUM2x6a1VYM3NKbFk4OWlWOExrSDNkcFdqekZtS0dZNGl5WVB1QWpXdWVkakdwaEFyQ204bDVTbHRJdTJPYUVoeHArVHZxRVdiUFh6L3c2MlI1UXJpSVJRcTJ0RkVRS0VMWlZnOHRjTEZtck13eFYyZlpicmVwaW9ybFdDaW0yK3JiOFdnNDBrRWdVQlVGeTNGL3QwMkdmK0V4Z1MzdGJjZGlaU1A0SWJjZVpZcUhnWEVtTk0zVnJ4MkpiK0l4ZEo3MUN1Ry9QRUhiQTQ5aXAwMk14U3VwTytNYWdwZWVUZkh2ZjBIeDd4Nm0rUnRuSVMwb2VQd2hDQ2RwK042UGlmL25EVmRIVVJTVTdDeHlmMzB2T2Jkbi9IK1dEWXB3NzlXTzVEZ3dmd1VzV0FXUHZ3TFhYd0FYbkF3bGhhNHdLTlpOYmk2cDQ4TDhaZ0NLZEhPN2tGQ2dvUWxlbVE3L21nd0xWclkvRnFpU0ZVTHhlYkZhMm5hNnVDUUROWkZJRXBrNm5mak11V1JOT0phQ2F5OGhhOEt4S0g3ZlliZFVwT01RbnJXUXFsLy9rOGlueTNCTUUzZG5LN3ZwOUdacmhMYVo4M0ZTS2JTc0lEbmpoeU1PTU8va2laZGYzbStkV1JXQy9zT0hjM3RGQlNWdGJZalNVZ0M2cXlxM1YxVFFmL2h3YnYzKzk3bDVaNE50bitqYWl5NDZ3TVVNZUNUYW9DVGF3Q1NlNDJPa1hzOUZKaFY4WjdjQmtIb2pGK0Z6OEozcmZuYWlLc2FjSUpqaWdHMk5KckYvc1NRaEhRUU9qcUtERU9oMmxGa1hmZzFoMjR4NzhXM1NhZ2doSllwaklsR1ErNnRNN0RJbDBySVF1dHNnV1diMmxsQUUwcEZJMDlVUGR6dXVDcHdrK0U5dkk2dXZnWm5VQ2ZrMWREM2pBYlVnMW1hUk15Wk5kSXlLOFU0T1NnaWtKZmZ1K3BtL3R4N2ZTWDlRVkNLcENKUDZuY1lENS80ZWdLdWZ1cGlQMXM3ZzloUHVvaUJZaUxGMkJybitIQXdyeVI5bS9KcDNWcnpHN1JQdllGelBpUm43M1VRVjZ1RmZLeTRGUlI2RHIrZTFjVlZoTTNsdGNWNThOY0YvcHFaWXVjRW1aVUNuVG1WY2ROR0Y5TzdkbTZLaUl0THBORU9IRG1YMjdOazBOVFVocGNUckVad3kxc04xRi9vWTE4K0RaNVdYcGlrZTRpdjNFWXpZc2hDNU9YaE9QWVgwaTVOUkN2SkkvK2RsbkMyMXBQNzJMNVRTRWtRb2hQZnI1NU44NkE4SW4rK1FnQXhMS1dscGFXSGN1SEZNbXphTkUwNDRnUmt6Wm5EWlpaY3hiTmd3cE9PZ0NJVzI5MmRTOTQ4blNLN2JnSk5LYjQrRkNFRjg4VEtpOCtaVGV0TzE1RXdjaitNNGpCZ3hnaTNWMVR6KzczOXowa2tuOGZiYmIzUGNjY2ZSMHRMaSt1L2JUZUNKYlRpemgzcU5kblMra2V0aUYzVDJLZHdSZllPMWE2SUVneHA1aHFTem1lYUtWQTVMUFdjVGpRbjJ5aDB2ZFpMU2kwZFl4S1NmN1JsS1h6YU9Bb0dERkE0NkZnR1Jva3hwUnNvUUdnNkdEQkFRQ2ZLVkNEb1dDQWNOR3hQOWdDem1sWHIyZ1N4MGhLb3d0RjhYSm83dVRVWG5BZ0NxdGpUejRhZHJXYnlxMm0yTTJvNXJTQjNRLzhEcys4eS9MMVI5d0tQR3A3d2NhK0JFZnhPWGRoM1B5THdlVzlORUR3LzJLMEZUVllaNTRSdVBQNzd0KzhjZmY1ekhydm9XYjZscWg0YUhCQkpwNnZ6N283NUVHOTlqN2NacUhOdENTa0hBcjlLcGN4R1RGL1lCelRtaWExa0VJRzJ3RE5mWDM3WTB5QkpEb2QvcE1RcExIYVFEQWE5QUR6b29DV2hyVVBCbkNZTFprczc5TEdyV2FDaDcyd0FtNHlNeVRZc042MnZCY1doeEZRdjNld21OMCtleTdwT1AwQStEc1huc3QrUGJaWUFWUldIcDBxVUFEQjQwd2NYSWJZYzE4NDFMZC80OGNWYnZ3M3kxMWU3MEtmdXBSdy92eCswOGVhZVBwLy9yTUgvZVRwUGIvWko5K3ZUaDdydnY1b2tubm1ERmloV2swMmtHRHg1TVkyTWowV2lVZUR4KzJQSzFBL1duL3krVGxBSlUyTndvS013dlliQVdKTDlsSlFrWlFQRlpGTW93SXpvZGh5aE1ZTVhxMFBJTzVXQm5aanRQeDdFa251UHpDYTZKMHZSYUcvRnZEa0FURHY2L3JTVHZoQnowNC9OSWIweEJ2cjZqQkR3NjRZYzVPVWpTcG8xcE9Uak8xdlRJN2ZPbVpCcXdXYllrWlRwWU94YnQ3NkRUQ1FHT3JXRkxuYUFlWlVMZUVrNHVXc3d4MlpWMFV1dlFIYkIxRGRGdEpEbTlUc0RmNHpqMDRuNm8rVDBRaXJaZFAxWUV0aTNaVUJ2WjdWbDd2QUoyQk94V3NKckJiZ0pyNjMvTjd2ZDJHT3dZT0FtUWFYQlNFSDRYb2grQWZ5RGtuZ2NsOTRESXdOWUh4MEo5RnJROENja1Y0S1F6c1E4ZGhCZVVBS2doVUhOQXpRT3RBTlJDMExiK1YrQityMllEeHgvWmE4RThJRHhIMThxUmprU0VCcUY3M0ppdTZSK0VqSHpzK25pbFBFQ2U4UG0vRmFwRUxUU1Jsc0NzOW1GMVRtUFdlN0RER25wcEdpZXE0YVNPdk9hUUFuQnNCUnlGbEszU2tQSmdPcEowS3NWTG03c0RrRTZsVVB6dXNaU3R1dWRMRUVySG80Y0lBZEowNkZmcXAycWhsNTRscFRUNUIwQ3luc3Y2YTl4ODhtQWE0eFlWZ1o0b3ZoREZuZno4NTl1bkVoVUJRb3JGZzFPWDhmWmFEekxRbVdKMUdkMkxYbUZrNXpGOHNqR080bEVPMlA3TERubm9YSkxOK0pIZHVQRFVBVVJpYVJhdHFpTVNUU0VsakIvWmxaYTJKQXRYMU82VHJ5czMyMGVub2l4T1BxNDc1NTNTbjZiV0JFdlgxQk9OcDBIQ3hERVZOTFVsV0w2dWNjL09uZll5Y0NVVTYyNUR4d2JUMTJIT2hnNnYwOHNzZWljakIrb2RoYmVhMHh5VFYwOXBwd0tXTjFpZzcrUExaV0xXL3B3Y2lscGF5TW5LUXRIMXczSy9yM0FDSE9ra2dWWWZyQ3dXcExWOStKWGpvT3MrL0xxWGhKbkNzcjg4NzhWcnVmZmEyN1pOV1dMdllnTnF4cWUzekVxeTFrNmpJRmhuRzlUWTVoNS9sMEFpRUt5MTArZ0liQ0JMS094dHRDRGE3dGp3a3JhbTlUUXRuc3FxVCtheWR2bEtOalhaMUc2cDVxSmJmNERINTNlQlJUdGdEWUROVGZkUFlQMXJ6elAzaWNtY2NzdFp4SklCckpURisvTTdzV0ZMRmpraGczRE1RMVZ0Rm1sRHpWUS9aRFJLdzZEdGpUZlFzalJNUzNaNGlxT0RCRWVnK215a0k3QXNRWEU4elUyTGEra1NNMWg3NFVSQ2ZYc1FrQ0xUWDFCMnVJM3poMzgrODduK1cwVklra2tmaXplWGNzcUFEYXhyeW1kd2R4ZWJhOTJXZkFKZWt6a2J5a2ttZlFqaDRteTU2UmNDTzVaQ2VEUnV1SFlpMTU4MWhMNUxGdEg2cnhlSkwxaUJ0R3dVWGR0K280eVFGNHFDSFlzanZUcGRiN3lTNERYbjhtSk9IWTh0ZUpUNU5hc3dIQXVoYXJ1TlJLdjA3emJHZmx0bHRUOUd3V2dIa3FDb2J2K2daQXcyMTBELzNyQm1QYUM1K2pzNGVIVklIV05RdVVRbk42RHRvUWJuS08ySm1oTnRMSyt2cENpVWgxL3o4djZHK1lSVGNab1RZYzd1ZHp4NS91ei82ZkZaLzZ2aDdhQ3hDeXlqelRWQ0VVakZpKzR0YUJldldmN3ZkLzc4VmV0WGNIaHJOUmxlNk5IY2VtdlRRbG8yK1haYW5CbmJyQTVKdFhaOU45VDU1bmVEWFk1ZjQ4MTkxbExrNUxSUU5qUDJVVGVCYnZZMzkvcHVJYTk1V0k5R2JKZlBOOTU3R1hkY2VRTDlhamFRL3RmanpLaU84cGlUenlzYll6anIxM1B4eVJQUnozTDF1VWlqeGF1UHZjZXJiM3pHbFZkTjR0N3Yzc1dGdFJzNCs3V3B6QXo1K0s5dkFHaXpRQnE0elpiYVg3N3VhTWVZR1R2bVh6dllNZGZzd1k2NTk2NTd1SGdITytadkdUdEdPcmFyRFNnNjF3OE9jWSt6aUNzR0RXWGFKOVU3MkxJU1ZBVW5FdU91VmZsWXRvUjRlTy82RG1ma3NRZ0V0dVdmaUdEUXpSM00xTDBvdWJtSFprSFVSdmVPT3lxQzNKQ1hwR0Z4M2VsREVFS1FOR3h5UTE0WGwrNG83Ulg1Qi9VN01HNW10Q0cyVENXeWRESFZ6MGZvZXQrMStCUC9ndHpSaVBLVHdWOTYwTGlxamNTcnFteXcwbHdRcnVTWFdaMjRWTThtTGgxTXBOdm5lQmNSSzlPZzVrZzYzWkxBcUZOb2Z0VkQrVThUMkcwQ21XR2RabzJLdDdORHQxL0VXWE5OMW41Z2E3djNWWXEvalZQL1cyVGRBMkNIY1JLZm9oVGVnaHJzaHlQQmNSeU9HMXpJbkg5TzRxbDNHcm52ejdPcFhkc0tlUUZRVkk2RUdJaXFLSkJPTWJ6L2NINTgvZDNNWDdXSWhZdm03SVFISnhBNFJob1JGSHp6bkN1WnRXZ091VG41VEY4d3k4WFMvUXJIZWlZZjExVjRIY0Z0UzhKTTJpVG9ORUpIbFZCdWVyaG1vNkRJby9EaW9GeW1GeFNMbUtMdU5CS0t0Qm1oTGVEU3dldm9sSnVpdGtYbi9lb1RzZng1M0Y3eEhNUExtZ25vSnBvS0M3Y1VVRm5YaGRzR2ZNaXAzVnRkbjRLaDhkQ3FjVlRwQXpsUGU1a2liNWd0aVFJMjFTWllXM29hbGpmN29QanBwRzJEWmhKcjZzSzZUeWRTMnFtYVV6cnJqQjQxRjQ5VmhkRjhDWm94aXF0R3ZzYkRVd3U0OC9jaitPL3Y2cG14c0N2aHNCL2hjZlk1cjhqMWZ3dFFKQUtibEFXTE5rQjFuYzNISzJ5dVBjWERKZU0wZEUzZ3dqbExsRU84RHJmaUw4Ym56R2ZqRGQrajlPNWJLYmo4Z3Qzd0Z3ODNVZ1Jnd0RGZEJlZjJ6R0psczg2Y1ZzR0VycEJWRGVvY1NQZTFxYm5hb3VDOUdMbHpwYXVlSGFLZUJRSkpqamZNelFQK3hobGRwNUNsNzFrSHlmZTJjRWJYS2RRblMvalpaeitqTFozYmJyWDgyYWVlMlM3WDJkemN3dVpObTlBMGpVNmR1OUFsUDVlamRKUTZtc3d2YVdvckFkMnI0WXVraVJrNkh0WEE5S1V4UEFGQ2lRakNrNDFvbG5nZERWTVRibjV1QjFKYnpEZzZhWHVjTDRHQmgyWTdueXE3SzlsR2xMZ01zTmt1Sit4a1pmSzc5NS8zQ1NEYkYrS1liZ01aV3pHSWdNZEhOSjJnS0pSSDNFaVM1UXZTcjdRN2FUTk55QnNnWWFZd2JZc2VCWjBCaWQvam95eW5FRVZSS0FoazB4aHRvVENZaTZxbzdJbzF0RGZrT0E1ZHkwUGNjbG9YUW42TlA3NjVpWFZiNGpTMXByY0p0MTU5Y3ZqT1dWMkpKaTMrOWs0MW14cVNiczJPQkZWeGtGSmdKNE9nT0V6c081OGZUbmlOU1VNK0F5UWZMeS9na1RuWmZMRGVpeTBGMlY0SElhUWJPbWxQZGNNUlhEeTZoWXRIdCtMczZ1TldCRmFUUWZNTERVUm10Q0FOdVcvOWs2VkVPaTcyaUpLZGpiZFBIMExISFVmdzJHUHg5dW1ERWdvZGtOSXphOE44TG5ubVRuNHk2UmF1SFgwK1h1MFE2anQ3bmNleWMwM3o3bnFjQXJKamZGQmZORWRPYlQweUhFRXBLa1FVRjBGREV6S1ZRaHM5SEh0OUZVNWpFOXFBZnVBNFdNdFhIUklzcDEvODVYSnV1MndVZVNzWGtIN3dseXhwY1hqRzI1Tm4xbHUwTEs3aXpITkc0VkZjOHpFYVNmRG5uNy9Cc3kvUDUvWmJUK0gyUC8rVzA1Wit5c2t2dk02OTJSci9HTmFEUDM5WUM3YTFMUTlBSWtDMXFRM25Nbm51c2FSTWhicmFXbkp6RGFxaTNkajRrWi82aUE2cXZWYzZuS3JxbjZzL09xcEttMUhJSTNkL3dMay9QUXNoNFBWZmZFZ3JoU2dlRGNVK09IaFA5aEhlZXMyd25DOWN6MEpYb1RXTXZXSWxwQTF3SEp5bUJqem5uSUVJK0RBL25vbkl5UWRkUjlnMlZtTVRqaXFRWmdlQlN3QTUrdUVkNTZwdVQyTlVRRHFkd295dXBzU2JRNmg0T1NBSmVvUFVSMWRqR09uTVZNbkREa1pJd2phOGJGc2UvaWpMaWlJWTNzMk5lYiszSXJaSERLOERvV1gzUE5oK2RuU214a2phNHFETVp6cWNoK1dvL1AyNlI3alhsK1RFQVV0NGVNb0YxSWR6OFdnV0htbnlmanlYbVhuWGNMNDFpOXVyWDZWM1lnT3RXdWpROVpiTHVEbzh1U2IxZis2S0FwUjh1K2FMY1hNVmFJdEFiZ2s4OFpyNzFmMTNRemdDdWRuc2hET3hWK2Q5Q2YzdXRxSHRNamZRaWtJRUtZSkk2VUdRemQ1blYzMHhqWDVrVHd2UXhjVlBoZWRqdGMzR2Rqb1JLRG1CckNzdlIrL1prNVpmUDBocS9nS1VVSERudnM0SGtZNDBmSi93dXIzSWN4Tzc2cm9RQUZvY20vbFNZUUVLZFk3SkZkLzhCaWRmZkRHT1pSS3ZxcUp4OWt5YTNweUNiR2hBOHdmWW9mdkdEbE9hOGNMdTVWenQxazkzYzVwL2JzVm5YYk1qUHV1WDk5TjlOT0hpc3dySFJqb0txaWJSaFFFSjZOR1E1dnh4STZsTE5EQjBRQVVibDYzRS85NTZwaDgzaG9hWlM5SFRPcXBQQmNQR2RoU0UrSHpiNEtEa3dTSlJGUTBLb3FoYndMR3lLTzBNQlowRjVUM0IyN0M5VjhWUk9sd1VGb2xaMDBEYnkyK2pkK3VNdDFmWHJRNEtJcTlQSi9MV0I5aVIyRTd6dk5PVUg2VEpqRVJpUjlTd0NsVTlnRGt4c092L2pWcDBLU2grWkhxekszb0xUZ01uNlI0cnZnSkUrL2tyYkVjaXNydzg5TWdIN3ZObmViOVFGMVJ6L05nWjdOV3RwS2tPbHFGRFd1T0tNejdoTHpkT0piYzRqWlhwVjZIdjBIdEpRWUlGM1V2YXdHdmlPQWRtTS9sOFBoNTU1QkhlZSs4OWV2ZnV6WjEzM2duQXJDVkpMdjVoTFQrNXZvQnJ6OHJHNnhNRVJpcjRCeW9rbHp1RTM3ZEpMbmVRS1Zldk9aaGtlNkd6WVpGcVVXbk4wc24yV0xUNmREclhHd2poWUdjd0RXU21GMkpiT2taSlZpRUZoZDI1b005NFJwYjE1WjRaZnlQTjRSVEZscUI3OEoxN0dvSGJia1R0MFExbjh4YXNWV3VRdG8xYTNnbmZwUmVnSHp1YXhLUC9JdlhhMjJBYUhjcEVoS2FSZTlKSmVMdDJKVGg0OEI1MXVzUElLRU1hU2J6SGpTWDdaei9FTTNnZ1NtRUJ4cWNMU0wwOUhhZStIaHlKMXFjdlBoVFM3ODlFcHRQYmN4L2t3ZlA5U1Z1aWx4UVJmZUlsS3F0cnVPQ05mL1BwMGlXY012WTR3dkVZdXE1am1pYW1hYUxyT3A4dVhNQ0FzazU4c09BeitpNmJ6cm9UdjQ2MVlEbGFVWDc3NElabTZPWWZuc2tkVjQybWQ5MXF6Q2YreklmVmFSNHpYZjNNWExPWkt5OUlvbVYwUFROcDhPcmZQK1MxTnhaeDlUWEhjKzhkZDNOUjNTck9lKzF0NXVSWlBFNDVNWFZyUDdFdjlNcnlVZU1wTEE4UHBja294cThtY0tTcmp5bkN3WEE4S0Rnb1l1LzBTOGVSdExZYWhFSTZ5YVRGb2tWTkRCbmk1dVF1V2RKTUltRVJDdW0wdGhvZFpyTjNGR1dRMlJtcXA3a2tLOElKbmdUMWE1STg5R3FTdDJZYWJLcXo5MG9OSDk1ZjQvcnp2Snd4d1VkTGJuOGVEcC9GbStIeGJESkxqbnk5ekR4QVBpd1VwTzNneEV4VWo0STBMYmRXT2t0RHFDS0RzZFdlUGNCQlZSVU13MExOWUxqWXRvUFhxMk5acnJOWVZSWFNhWE9uNHg2dmhzakpvdFBZZ1pUbStEcE9FcnozMGdGZm9rdWV6cEJPUHJhMG1YaFVHOE4yOTUxWFZWQ0ZJTWV2MGlWWFoxT0xpZDhqNkp5cnNhUW16WlpXODM5eWZJVVE1SlYxeDA3MVp0Tm5CbHNsdldXQnBrTXFJZkQ3RXFRVGNieUJIQkFLanBSWTFpRXdFb05IZmgzai92QUoxNGV1RUkvVjBienhkd2g3QzdVYkRITHpmK0g2UktTREVCMm5ISDhSTmt0SFliYVlsdHB1enkxMzJKdnRwM0xaQjkxdkl3SGRjVkFVZ3g3Qkxveks3MEl5RnFhVHJoUEo5Q3ZjMzVuUXZTRUt1azNBR3lxamFjMkxwSnZub1NsdFJPTTJYbDFGU29HaU9DUlNndWZmbWM3NmFndkZxc05PQkdob2MzMll4YmsybnV6M3NjUWllblpSdVhLQ3dDY2tsaTJ3SFlqR2JUUUZiSkdEcDNBc1JiMHZKbFRRQzkwVFBHZzdTU3V3OFEwM3R2MXQxbWdkZGk5RmNVdGdSL1RYdVBzYUg3bFpncWZlVFBQOFZJUDcvcGpnd1g4bitkbk5mcDc4ZFJZUDNlWncrKy9pL1BPZFd2NlpxdWMyZnlsWCswc29rVjdTaHlvUnNqMDN0UkF1WnB5ekkwNkhjUE5NdHRhWjdOT2pmVDZ2azJLNzAvbEh0NTRNd0pzZnJRTUV1MjRQbWRHL3JNUEFwclJzaDZ5Z2g5S0NBTG91aUNjdDN2cG9JNm9pYUlzYW1KYk51azBSSENuUUZEZEhhTzNHdG0zRDJOeVc1dm1wYTdFZGlDY01kRTJoVTFHUW5KQUgyOXIzOWFOK1Jmb0l5a3h2NlZnc3hwSWxTOUF6V1BBOWV2WWtMeStQV0N6S2hnMWIyTFFwUWxGaGdMUmhiY01sY2h3SHIxZWp1VGxGZVhrMnZYcDFJUmdNRVkxRTJMQitmVVpPV1F3Wk1vUlFLTFR0WG52bng0UE5qUTcvK2NoZ1RZM0RkYWZZbkhhTVRZOGVhWjZ0TCtTNWhpS3FNNzNHdCs0ZjA3WlowN2lGZjMzeURxc2FxN2wrMUNsTW1uZ0NoZVZkaWJ6MUJvazVzNURKNUJIcHVCZUFxVUI2RjFlcFY0QUdyQXlDazJFWEtSTk1lODlta1ZCVndzODhTK05QZjRhZGswM29qMzYwYjFTeXBrY2ZsR1Njd0hWWGNleWYva3oveGN0NDZQcnJtZnpFRStRRFdxWVhSWWZMb1FlK1ZrcmpyeDdnN1RhTEowUUYvNjIwc0xiVW91aEFTQ09hc21pVzdtaEVreVlVaGdEQnYvOXZDdjkrL0VPdXZYNGkzN3ZoMnd4WVBJODdKay9qZFh4RWhaWUJ6Qkk0S1llVGg2UVkzU01MSi85cnBKTXhwTCtjaVZWRFdOMmpIbE8wY2Y1eER1bHdtay9XQmhGZXAxMzlVVEl6cTZhcHNXN1RKT0xoVXBKYkJGSUtQR29ZMWFPU2ptYXhjdWtwdEthSEVJa1ZVWkJYaGNkM0ZOanQ4K1duMnlpbFI4K2VsSlNVNHRnVzZlWW1GOVRHU0NNOFh2U3l6cGgxTldBWWJ0Mm1wdUlwNzRiZDBvUmpwQUdGZEdzVHRtTlJrbFZBcjhLdUxLOWJtd0dkT01ETnkvK3pkOTV4Y3BYVi8zOC90MHpmMmQ1MzAzdENlaUFrSWZRcW9CUVJGUVJCOUd2QkJ2Yis4MnRYOUl1aUFvSlNWUlRwbllSQUFnbnB2VzJ5S1p2dGZmck12ZmQ1Zm4vY3lTWUxBWkxzYmdybStGck16Tnc3ODl4N24rYzg1M3pPT1oranFOWk1idklWOE4xNEl4R1ZMVnJOY3JxMWRraWVXMkRqVnhtKzh4bVRnaUlOSGRCOWI1ODRCVVZ3VXJYa0ozZFpQTGZBcHJXemw4bUFBc0pDNHlaZkFkV2FTZm9kellGOU1wRHJUV1dOUFJtemFFK0ZJYjBlbFRzR2tpM2d6VWRWbmc5TGI2VTU4R1BJYUdoQjFhKzVCbnVMSGZNMDF6R1BTa21yNDdBMG5hYmJrZFJrR3dPVTZqcEwwMmxxTEF1ZkVIaUZJRS9UY0ZBbjZCUVBBeDMxbEdjb09MdUwvTk83Q1l4TTBqNHZuNVpuaWdtT1MxTDh3WGJzcUU2bXlZUFExSUJFZnh5bDJGZ2ZaL3J3SEs0NHVaaXhsVUZlM2RURjJsMHhRajZkb2NWK3pwK2NUOEJ6Nk1DQWFRaEdsZmxadkRYaUZwTWZvcHcxSnE4ZmpBS0JFMi9GVHJnRmkwWWdIejFZUENDenRWcUxNY05zWTRyWnlYQzZxQ3dPVUgzZUhBcE9uNDEvNm1TTUlVUFJ2TDJ0RStVNFdkWWN6ZFhQQnh0TXpocUpua0Fobi9ubVQ1Zy9ZVEpkelhXc1g3U0FiVnZYczJuTFdocDM3NkNvcUJqYnR0RVA4TDJCYjMzNTJGNGZsNzNVNitVZlB1SkZmZmR6ckczVitIWG1WQjdZNklmV1ZuUzZBSTFvd2lHVEpTbUx4aDNBTFJxNC8vWVh1Zi8yUlZ6enhkTzQ5YlAveDZUVnovS0x2ei9KWTB5Z0N4OENpZU1vSG41NFV4Wk1kWlBLOW5FTUNhUjA5VjlyYTRKbm50a00yU0tWOTdKM0JHQm9icUZ0b2p2RzZ1RXphTE4wVkZNTXIrNDI1VDVXOU9ZTEgvdjV3VzhXQWtZWE5yNmpUaW9KUnJqLzBqK1JzazJFNko4cm5QT1Ava1ZXUEdlZGhyMW1QZmFxdFQzSmUrYnNrd25jOG5reTh4ZVN2TzJQcUdUNjZEbERRckI4WFF2WWtwT25sZk9INzduRTlKLzl2czBOZi9vWTkzNzJJVTRmdisxdC9lU1BJc2FNeHhRc1haM2tpVGNpWEhkSkRoTkdldG13SWNXRHo3bUV1WmVkazhQNFlSNVdyazl4MzFOUlBqakx4R09LSTVmWm9PQkRyUllGbHNJV2gzUWFCWmJpUTYwMkMvTjBUc2doR1BZT2lBSjNrcW9PeldVd0hJRG52U3ZTOGI2N2ZjcXlhSC80TVZyK2NBK3BMZHZjeEFURGdHT01rTVpXRG9Zd0tQYmtzNkp6UFplKy9paytQdWhEZkd2TTV5anhGcnJCcFN4d1ZoYXVvUEd1SC9mOEc5emtuYjBCcUZhcmc1OXR2b01IZHorT1FsSGt5Y2RSRWxzNUo5YlRNU1Izbmx0QTI0OS94QnM5L3JDZmp2cGQ1Sm1LZUVCZ0poUElySk5xSm1LWWhSNUNNczBEdjNtY3grOTVrVS9lY0RwZnZlRXp6Rm16bFBIL2VaWkdaV0VqMkdjUktkQmRpcDB6Q3B1STU3ZVE2TmhEbzVoS3pyUnFCdFU4UW82SzA2WjdEZ3I4ejJSNnp4OWQxekFNZ1JBYTBsRmtMSnNkTzNhd1k4Y09ubnJxS1FDdXg4ZTVvMC9peFdtak9DKy9oTXBycjJMU2o3K0IvOFVGQklTR2Z1NWNBTG9lZVJMalF5WFVmZTNIR0VPcUNaOXpHdEpLb3htNld5Z20vQWpQT0hUUE9QVGdoOTJyazkwb3F4YVZXWVBNckFGKzEydDh4Wi90UExZbndOTGVMeWYrdjI4ZjIrUDk4R1VIWnhyaWtwamFsb0Z1MnZ6djJPMThjMmk5KzZFUDduOWlETmQ5NXpMd1o5RENVUkE2V2s5Q25vVVdTcE5PbVZ6My9TdlJ4Yi81K0FjMk1pTTN4c3FaYS9qRmprcStzMzBRdG1WZ21EWlNpUUVOelVYaWtydWY2T1M1eFRFK2Qza0JYL2h3SVRsQjdUamhROHEySmhNQ1hTVko2ZE5RbmxHZ0xCUUNhWFVpYXhjUlhMc2JSNFdJano0WlorZEdVQTV5eEdTY3JjdXcvV0hNWkNSYnJQa2VGMjIvMS83aUV0bXBkNjJJVlc1a1pxOWZQNERPZzM2Y2tkSUpYY2NzTEVCNFRJU3U0eTB2SmJHbDVyamVBdzJoY2NrWmcxRm1FK1ZHQ1dOR1RpWTNtY1AyMWM5eFdvR0dOdTVHNXRYOGs5YUdIZFExN2FTelBJOVJxZ0JuWllROXkxN2hndE8rVFR3Wlk4bktGeGxWSE9ZajU0MXptd2dlaVFZMXhjVlFWUVhkMlVob1N3dk1tL2NXakZLKy9iMnFLdmZjL29CQWxRdWwzTElFMmxMdzljbFFVZzJuWFFuYkcrRExpK0hwSGFCNzNDSmJUWUN5WUV3aGpNeUgyalpZMWdiQ0J4bTVUMjA0Q2g2dTNZdHh1dS90ai8vTGJQNXhheEtlMllFYklUeEVON1FyRThiVWJEZGVocHY4SzVWRzFBNjk5N0pYa091SjhOR2hqL0w1a1g5aFVQMTIybjdoSWZLYS84QkZDdG1CK2NkSmlxOUpZNTBTNXEvTjEvQ0gxejdGdHNpd2ZsY3p5cEh2M0E5RlpXTXlqdXh6Yyt6KzlPdHpETUVOMVJxZnJ0YW85QjBFcmlZQUNja1ZNYm9mYVNOVGsrSzQ3dXA0bk1ndnppOC9pRGlhUzRyUk80NzJISCs5OXpXdXUrRjB2cHFObzMzbHNaZDVTdm5wRmhwZGtTVFhmZTAvSkpJWjhCaW9kM21XU2lyd0dLeloxTVIxWC84UEh2UGdNUjFIS3U1N2JnYzF1eUtVbHdSSVpaeit6Z3o4NzRXTGROQkNpdGlMSHBMckRjeEtCejFQSWJ3S2xleXQ1RFN2SW5pYW00Z1hmY2FMVEo0b04zMC9TR2JYbnVOdzRncFVPa1A0bk5Nbys5cm5NQ3ZLcUo0d212d1BYMExkclQvQzd1aEVLSVd5SlVaZUdDa2xaK3haeGxSdEhmY0hUdUpQd2Ftb0htQlVEUFJRMzN0YmxCckZlVEgrNTh6bFBQREdKSGJXbGFKcldmMW1HUXlwYnViYVdXdjQ4eXZUYVkyRTBEVFpiOWFxZW8vUkthWFFkSTJkVzVycFBpUE5vUEpjS2t0eXVPTWZTMmx0N0hLSjA0NmlneXV5KzRzVHQ4R25Jd3czVHFnRmpaN1BuYWpGcFIrczVvZGZIc3ZGTjc1Qnc1NEVua0NLVENySUJ5c1RySXpCMWN2OHpNcTNXUjhYMUtVRll3T0tBa055ZHozWXl2M1RldkJYeUNnb01PQVhJeXlVZ28rdDlQRm1SS01wTFFqcUNsOWYzZjVzZ2FvUUdrTG83RTNPa2VrWTdRdnZSUmdhYUI0MGJ3aWhHYWhNQWlmZGhVeTJvUGx6S1RuL3g0UkduSU9uYU5SK1BlTEZnTXh2Z1NDYVRMTjQzUzRhMnlKczN0WEMxZWRNWnZ5d0kxOHdWbjJjcWJLN3J4MEZmNytYclowMjl4bmorV3Qzak1iYUp2SThFSzNJSVM4L1NObUlTdGNWck1qRE43b01udzRQM3J1QXgvK3psQy9kZkQ3Zi92bFBPSFBsWWs1OS9sVnVyQnpKSTR0MnNXVHhkczQ5ZHh4UC9QNXEvRjZUTk0yOHNIb292L21keExObEJlVWxEaGRkK0FHK2ZmVWYyUlpaeG9qd05PNTRlQVcvK3RzaW5uaGhQV2dhbDM1d0VrLys0ZERtTEVLNEdsVXBsQkNFUEJwamlqMFVCSFJHRjNsNGZYZVM3ZTJ1SGVFeFhDZndoQ1czVDRhZTFuTEkrczhCY29EZmkxSk9EU2hTU0J3UlpMaHpOci9WNytiVG5oUkZhWjFUYlVuTkNwTUxUbWtsU3YrRUJtVWlmZmpuYWdMZHNuR3lXS0JoNk81OHNHMmtiU090Qk5nMlFzcWpOa20wckowOHVRMitzbFl3cWhzaVhyaDluR1RUeEJDUGZlWUtjdk5Ma0lra2Rrc0hUanlCMDk2SlVWeHdjQWJBZTRuMTNrc09JQ04xWXBhWGFFU2pOZVpsVUdFU3IxOFNNakxvUWg1emhHNjlyMEdnNllxU1lvRnBlSmcybzVXbHIwZjQ5eU13Zm5RM3AzMmlsV0hESkYzdHhSUVhwOUNFUXFuOVkxZDlrR1gzSDFmNllmQWZmOTRQMytJYUJJbU9UUmkrQWp6QkN1aXZlTytITHowTVAxUW5VOTlJN1RlL1IzemRlZ1ovNzVzWStYazluN2MvOVJ5K1lVUHBlTzRsV3YvOUdHV2Z2SmJpS3k5REMvZ0g5bWFiWUF5V3FJU0FwRHZiMHZNOG1LZFkyRnQxWk1UZHY1d0dEWlVVNk9VUzJhSWR0RXVoQk96UHRaY2JFK1JIQlpOcU5LNmNENUdncEw1WXNtbUl3OHJSc0hxVTk2MWh3T05PUCtpSGtwK1d6Y1BkMlZvR3VzTVRLMDhoTjVEQTFHMlc3eGpKTTJ1bTQwaU5EMDU5RTBOemFJL2w4UHk2cWFCSmRyV1ZnUUpEVTRmMm00ZGxBeXMwUjJkWWNTdG5qOW5NQTB0bUlwUUF3MGJ0UjhMenRsRUloZEFkc0EzODNneG5qOWxNUTFjZXIwZ05xVHVvdzJqQ2ZjVTNIamtFYkUyK1BiZEZFNnpkMXNMVjMvbjNFWmtQLzNmWlJGcCtlenZ6dTlMY1o1YnphTHVYZUgwTGZsTmdsZWRqbXlhSkhKZWsxVFpOR0ZxTzM2TnozejNQOC9kSEYvSEo2eS9ncTdkK25XbkxsbEQrMGlMdXdDR0pRTi9QS3hWQ1k4NmdNU1RxYWlrb0dVVkJlRGsrdytUYmN5NW50MTdPeVpObnMzNSszVUV0MjRHc1N3Q1hZenFXa2Z6NXdrb3VuamFSMy8xNkVkTkg1cU03S1ZZMnBmbnNaNy9Dc3l0aVhQUFl2QUVoVndwNWRJWVcrT2xJV0xURkxaTFd1MGZNL2FaR1VkQ2tJR0N5b3lOSkpEWHdlVU5DQ040MUZDSUVXcmIrNW9UMGxrR2V4REU5dnQxdnhTZDM5d2MrS1hycE9lVTRXUFhORExSVElRRjBpVlFDbFRZUlhoY3JzcVZBMHlXYTdyQzlPOFNOaTZieW15MUQrZTY0N1h4MFNEMTRGSTMzQkltOTRXSllvVk50eXErTFEwYndqMjNWL08vR0VXeG96UWZkd2ZCbWtKQWxFK2huS1NtQmM4NTVqdzFkNTRDTFVkUGN6OTRKTkJvNjFQM3JiMThpYS9Qa21KSlpoUWxSNGJmVTJIQ2FCM2ZtcXZWZFhxSFlOeFdLbzY1dWF3ME5ZRnpWdGc5N3ppb3AzelgvUlRtTzI4akJkdnB0TGxmY25PeTNTMjlzZGU5dlJYRS8zdCt2OTgvWFpDSVJEQ1ZKSVFnaThDdDRFaHNCWEtnTWtnSlNnS0VrbVVoazRIMWd4eUgrK2txNm41eVBqQ2NPUHVkWUNGUXFRL1RGMXduTm5VNytSeS9xeWYzdER4bjJteDhjMnh2YWxaZHlYRXZ6STIvVFh4SkZUR284K2tpSzdzUTI1QUVzMHg3ZWpDenJteU0xbHJ5V3diWkJ0OWVTdGlTYW51VmRGZ2ZRa2NET1ZzVy9hekxFWXJVb0lRK2p3WVVBWVpQTVZOSWF1WlZiNXlZcENucXg1WUcrS1Z2bkJTaVp3VXAzWU50eEZBckRDR0o2QzlBMEwySy9ZdzlIWHVIanZkWEZnK3ZlYmdNVitmbWZjNGVURnpEWjNaYmd6cGRyNllyM0pzek1DNXJjZXVsb1RGME1hSWp3NDNmMmZ2MnJDeXRvK2VrdmVLN0Q0ajV0Q0kvdXNQYjVGMEhYditnVTNsNytoUkNDdi83Mk9mNzYxOTc1R2dmMEw1VEFvMXZFWTFGSzhrcXA3MXBDZWVXTHREbEpobGRjeDJVWC81UWYzYnFheU9ZVjZHT240R1RVd01TTmNDZnZqb2F0eEZOeFJnK2V4TTY2amV4czI4NjUweStqb1dVM2pySVpWRFlTY1F3d1pBaEFTTVdva0tMeTNMbFFXTTYwL0xNeGZmbjRndFVVblE0algxcEhXL29kZlAxKytQME1pa2ZUWGJ5UWlkSWliWDZiYkdXSzVlY3ovaUlLOVgzTlJsdHRrKzYwZUN2bjFURWpFdkFLd1FlOFlhYWJmaDdaMXMwM2Y5RE5ZL1BUZk8yNkFETW1tRzVjWEFrWGZBZVVqT01rVmtOaUZXajNVVzVXVWhHY3drWERadEUxNnNOc1Rwb3NhdDNGZ3FaMXJHcXZvU25aanR6YlNLaWZpTmFVa21qK0FFTFhjUnFic3dFVUE5L0pwNkY1ZlFoZFIrZzZNdHFOWGx5SVo5Um9WRHFGdmFzV3U3TWR6ZDkzTXJ6anJTNzNVUEttOTNvTEU4djl2UDZGa2IyK1F4UHdwemZhQVBqc3JLS2UxTUhLWExQWHNhYmVSMTNSRjRMeFdBejl4aHVncGdaR2pZSU5HMXhuWk1JRXRLMWJZZVJJaU1XZ0x3M1dEcVJIRHd0REFabHgrTWZ2NTNMKzNDcm1yMXZEZzgvZmkzUWsxMTk4RTJkTW1NZ0xyKzNoZ28rK2dPYlZEenZkN2tSczk0UzhueVFjUER6ZlNpbVFXWEtkdld2cDIzL2FDc0QvZldWc3o1cDBvU3B4MU9LMXdsR29IQi8rWlRzSXJMSXduVERDOU5PY3I3RjE1VCtRSk9BTE45RHh6TXZrbHhWZzFUV0J4L091K2IrSEpHZjhxRysyaFFUTjZ6bys5ZlZ1YzR2S3loQkMwNUJwaDc2bjBGL1k2OVh4bHI5VDlmUHZEcmlkM0tlWjhOSGVkWU5Ed2xYOUFQWmtjTG83c0RadmNXMkVNYVBSOHd2QTI3ZEdIL25ld3lOZFZQdjlIWEMvUEpIYmZuaWlhVzVNekhGQTE4bjl3dldFcnJpSWp1LzlodGpEajRNUXhCNThuT1J6Q3lqODZiY28rOVE5N2oxZnZJdmQzLzRmblBZdWhPazJKTWo1eE9VVS9QaFc5UElTc2dZeEdBUExSU0VsTE44SUt6ZkIzZitHLzdrS3Jya1lBajUzU2hRYlZzOWVJZ1FrVXZEUU0vQ25mOEthTFFOVFRpTk1rN0piUGt0ZzRqanFidjBoNmUwNzM0NzNaN21VWkNKSjE3TXZFMzMxRFVKelRxSGtjNThrNS9SVGo1MG1JRXFSYWVtZy9zLy9Jcko4UGNxeUVlOFlSQlZ1ZGJ4bEUxbStudm8vL3d2L3FNRjRTd3Y3ZEQwWEhNN2FWdnNxRktQUFBVZlZqaDA0Z0piMVZUU2dhc2NPak9lZTQ5ekN3aU5SemZqT3l0OFI2R1VaakNGcFBETVNwSi9MeFY3dnh4aWRJdmtQTnlkT3kzV3dOL2hKZXhUZU02UElSaE5uaHdkbmx4ZU12aVdFR29kQjBDT1FXS0VncWNKY1FydnFFY0lnamhmejlHbmdPQ1FlbVk5Zk9xQnNZb01yOGJaM1k4YmlCOEZpZUJDUE5oREFhdXRBMkJhNjE4WDFuSFFhcFJzWUpVVUFXQzF0Q01mdStWeW0wemdZZU1JQm5JQ0dGbS9ERUJMSGNqODNSQnFoTkJ4UmhEN1NTK2FKYnZTNGpYYVEzKytrMHlqRHhDZ3FnTGVFUGpKMmhwSlFDZDg4Ny9zQS9IcmVUMWxadDR5UkphTjVaT1ZEZ0NMb0NXRTVOcHJRS1F3V3NhTzlsaS8rKzM4NGI4eUYzSHpHVjZuSWRmZDBSenJvUWpzbXR4SUJUQS9GK0dSeE8rY0V1cW5iRU9QT0oxSzg5R2FHK21aM2pobUd3ZURCZ3lrc0xHVFRwazNrNU9SUVUxUEQ0Q0ZEbURaOU9pKy9OSStLWW9lckwvVHk0UXQ4alBSNlNEN3ZwWG1CUWJwT1J4NUsvd3BOb0JKcDlGRWpNRTZkUWVKSFB5ZDE1NzFvZWJtSTRpTGlYL3N1K0h6azNQbC9tR2ZPSlhuYkg0NktIU0dFUU5kMXJyamlDbXByYTdFc2kvcjZlandlRDlkZmY3MmJUd3ZFVjYybC9yWTdTTlh1Y1BuNE5BMDBvd2NnbEtrMHNiWHJxYi90RG94d0RvSEpKNkVKd1NrelozTDc3MzlQVTFNVGt5Wk40dkxMTDJmWXNHSG91djYrelBjWWFCN1V2WWFIN3ZXUXlTa2lQQ1NBMldIakQwaE02U1dUQ2FDMWVrQmxPTmlFbzJGNkk4UDBScXEwRnBhaXZ5ZEdwYUdReXNNa2N5dFgrMTdoanVRSGlhb0FHKzNCbk9wZENqS0VSM1RSNkF5aVRlYlJLdlA0VXVDZjdIR0tlVFIxTHBwSUhUQkdOdEFJbGM5cmNQbDVVN2poaWxtTUhscEdPT1NTNDBaaUtTNDVZd0wzUHJxWS83eTRrbFNtL3hwdzlXVk5PMG9pRUd5TE5mSzNiUzlqNEtFNTJzb0QzZk5wVFhSeTI5UlBVdWpKT1FKVmNRZW5mNU9XdzRSeW5aYVZpMWkwZEVYUHFCWXRYVUhMeWtWTXFKN0Roa1lIdjZuM203M1RxKzJxRW1pK0RLdDJWckZxOVFmQjdnYVp5Y1lVdk9BdGhMd1FtbTVuODlHUGdBazdBRGRhMmdLendDSlVaaEhzQWllV1EvVXd4ZmlKZ2xRYThzTTZYbDF3M1RjemhJSzJhLzd1aGNFOGl2dHU5UnowdEp4N3l1amVGN0ovUnhyaGFwaFJzVmEwU0JOQ0hmMnV0dGRlUHJ6dmZwM2pzSDdEV2pZc1dZU3U2MHdjTm9qeDQwL3FzZC83SXA5NnkrdmRjUS9IazJnVlpjZlZlRVBseDlkNCswTXV2UEJDTm0zYXhPdXZ2KzVpaUZWVmZPTWIzNkMwdEpRdmYvbkxiTml3NFpnY2Q3dkhWUjRGbVJONDJtR2JHaDdZV0creWNHT01xb25GUEpCN0paLzk4RXZVZHhUdytHdlRtUkdJRUd0VE5IWkFkZkV4RU8vTGdtQXk3dUFkN0dGTndVbWs0dm1zNnloaC9NeGNyc3hiU3lhZXhRaFM4c1JEUG83RXRpVWQzU2tzUjFKZUdHUjFUUnNWUlVFS3dqN1NHWWYxMjl2WnRMT0RuWTBSbXRyaU9HcC9NOE50TWlzZEE2VU1nbWFNV1hrYk9MTm9MYWZtYkdPdzBZaXBnd3lYb1ZmUElqUmlGcjdLcVpobEV6Q0N2Zm0zRWltYkxidTdXTHU5amJVMTdXeXJiWC9iV0wwajZhSFUyemMzM1Q5bGdVcURUSUtNZ3hNQnB3dnNkckRid0c2QjJFSUl6UVhoQjdMdWcvQzc3OFVXUXRHTllKU0NVUVJHQWVqNW9JZEJDNExtZDgxVFlXWmROdTB0QnVUN1FCMyt2KzRoaDJEaWlteXp4WDJlalVBajQ2UzRwUGhTVGhadUhlRnk3NlU4MWJVVGorNUQ5VEJGN3MyRGtZZkljN0hqZ01hN25tOVQvdjFhVWxzQ3hCYmtnd0s3eFlOL2ZKekNUemJRZG1jbHNZWDUrNUpoamdNUjJXdkw5MllvOVZuc2pQdDVhbWNaSGlQRThJbzhMajFwSmdCUHJsdENYYlNMcDNhV0VWTTZZL0tqTktkTXVqS21TK2swMEk2VG9kUGNHc1hPSHdjanZrRHp4aTRJQlBsN3JVMUZTUXMvdjJxYWl3Wkx0OUhjNlZQR2dKM211dnRXOEh5VEgzd0dEZEVFSThyUG9IWDl1TVBDbXQ5eDI1TGdNWFRTR1p1R2xnaWhnQmUvMTBBNkhncnpBbFNVNXJCMFRmMGhCMWpkcG1nNnlaUk5jMnNNMDlUd2VRMmtWQlFYQkNrdERMSnd4UzQyYm1zZGNMWGdFdzVCM2VHOFVDTUF6MFVyaVV1ZGxPci95VDdRZFhvOS9vdVVvQ1NKdE1XWnc0Y3p3dHpEQTQwdDRLMUNPSWZJalpEbHp2Q1dGbE1kQ3FDYkp1SVk1UjE5dnlDdGdtelB2b09aL0VyaE5Uek1IVGFac2NWRFdkdTBqZVVObTRnZFJJMlBPRVFvNDlaQThVR1AzeS9jM2x3bkdUNE1CQUdoSFF3bEpoLzM1bUdqOEFzTkJ6amJFenBvSGZDRGVGUC9ZUUJDNEZneDBwa0VHUnk2MnR2WTB4ekZ5V1JZL3V6RGpKc3lnNGxuWHV6eWtmYlRiK3A3OTNjSlhpMURVM3VRRVpkY3paM2ZlWTFYLy93a1Q3MDJtTVhyU25selhRa2JkeFRnMDIxU2pvNUhTTFFzV2FkUWJtTlRrWWhSZDh2TnhGRFlSMkJ0QkRVZFBhMmpuZE5LY3FjWHRUbUU2ZFhKcEROY3RMa1piY0ZXTnFVMWx0bFIvR2hvUXJpNVowZkRoeFFLeXpaSTJ6b2RjUjhMYXdiUm5uVHpremZXRmRFUjg1TzBkREsyZ1RKc2RLSGhPQW9ubW1UVTZISnUvdFNaWEZUcEkvRHdQMmw5N0FWU3U1b1JobzVtR3IwU0hvU21vYVFrRStrbU9HWWs1VGZmUU90Wm8vbFp5MnM4dFdRK05aRW1oS1lqZE9PQURTUDF0ekNEQzZIUWJRMDduQ1MzUUtGc2dSQ0tUQWJ5UytIc3ViQm1QWHpvd3JkZ21RNkVLMUtrTlFzUEJ1aytSQ2JlVGN6SzBjZVlKbDNYcjkrMnVuRXJyKzFjU2RxMnFNNHR4ZFRkbmhXMUhYdVl0MzBaNDB1R29Xdi92YjFoOGdOOXIvR3pFenN3Y290b3llUUFVR0tDbmRxTkVlai91dHpqcmwvQmNjWlBqM0w3dW1pYUJ6SVd4ckFxZ3VmTndxZ3NJYjJ1aHNTcnkzRmFPdEJOblNGMlFueWlhNnR2V3JKMXlqT2hRY01XQnN2UHFqZERmNVBJK1phdWQzUG1ReElyQVl0dWVzK2ZuWGZMODhmMFl6MmxkemtnZDEweGlNN2JmOHliWFduK3BwZndhTHVpclg0VEJhWkd2QXhDQlZHNkhuYjlndEFYb3ZpRytBaDUwano0MTRkNStyRW4rZVQxNS9QVld6N0pHU3RXTXZYbFp3aGlJMFUvY1ZFZFFINTJYaGt0Ly90em51Mnl1YjhQZnN6NE5XL3k1YjErREliYjdENlZabUdUamFkc05KdjJSSEJiclBkMk1JVUc2emEzdXFXZW5rT3NBOW0vYWVwYkc2ZzZ4M1ovSVUyNE9NQnA0eW9ZVlo0SEFtb2F1cEZTb1JrbmVFVU9YaS8xWVYzWUNjU3FuNEhWUUhLWFJmcTFiU1RQSEkyczJJYmVXUXNkcTJIS2Q4R1RjMFE4VWszVFNEc09lZUV3U3RQNFhsY0RLM3dKdnVzdklTUjBvc3JCMkg4Y0N0QmgySy9pNUp5UkFVc2dZd0s3UlNEMjI3NDFRMkYzQzRJVGJZby9scWJwTGg5R3Zqb2tTamJWOWFqTDRaYmFETW5Wb0lkUnNkY1F1UjlBdGYwRkxmY2lOTE1DUjRHSXZNd25aaTdtcW5PK3g0Ly9zWU0vL3ZGMVpNYWlYeDJzclBRbmM0SVFJS1ZES0pqRGR6OTVLK01HamVCTHQzK1BtRzBoZkg2WEN5UGJFRDRVQ25QRzVGbDg5dEpQOE1FNUYvQzdmOTBONlNTNng0ZnpQczZ2UDZ0Z0pwZU9uY3E0d1ZFMnY3R1VJYWZPUW5rOE5Jd1lDZW95YnBwNkVoUHpCWDlhc3BaRzFUdWZ5NUJwNXVTdXBicllRdGMwbGpaWHNiSmpNRmNOWGNLRkUxckpEem9JQVJsSFo4T08wUlQ1RTV3MnRKWGlBamUwMFZEbloyRmlCa09OTGR3eTZCRUc1OGZaMlpYREQ3c3VZdk03MUVvTUdFNG5KRXBwZEc2YXpQbmp1L25LbGEvUktFYnd3aHN6cWZZSDJaRVpRMEhNUituUWhWUlYxUE9EdjAxaC9lS1RvQ2g2U0d0QVpPZWxjR0RNWUoyZGJaSkVTZ1BEL2F3OUJmUFdPT3l1VC9QYUJvZnJ6dkl3ZTR5T3dPMUZKWTRCTEUzb09sWjlFM3UrOGI4azEyNmk0bnRmUmMvUFBTYm50NFo3cjBjWHd4Y24rL0RVRmxId1pvU0xWaVJKbmF4b2FZZFI2NkFsNktWbGNpbnBUMHBrWjRMOHJZQ21FRWNoNUtzTGg1a2xTN2hzeUdQa21OR0RPaWZIakhMWmtNZDR2dTRDWHRwekxyYnFIMDRYMVJlN0s5c1BzN2FtaGxWclYxRlFYa1ZYTXNtVzFjdVpQWE1PdzBhT1FObjIwYXYzMEFUK3dqeHlLa3Z4aEFLY2tQZWYvTkl6NGwyVnNkQjFydGJiR1ZNUlJGbFJQTDdoK0x0OWVIYzFFQmgzS3JSdkpWeGNpQzRqUEo3T1lYWGF4QlFjRUJNOFBGblk2OVdYZjdmeXhFTjdOeGNSalpnTXNkdXA1dlhVcWV5MkJwSEJ3elpyT0MxT0tTbnA2N05KYWpzT1NTdURMVzJTVnBxMldCZCswMHQzTW9xcEc2VHREQTNkYmZoTUQ5WDVwU3pmdlpGaFJaVnNhNjJuTUFqNS9oeTJ0ZXhtNkpoVGlHZFNwTzBNWnJaWHFqcjBDMGJUQkYrK2VEQStqOGE5OCtwQktuU1BpMlU2R1ljY244NFhMcXdtbVpIYy9WSTlTREFNaVNNRlRqSUltdVQwMGN2NXp0d25PSGZpQ2tDeGFFTWhkeXdPczJDN0YwY0p3bDZKRUFwSDB2K0JkU2tZVlo3aVd4YzJFZkM0NCtveGhvRGtoaGh0OXplUjNCanY5ZjU3N1MxNzdYY3RITVk3YWhTaFdiTUlubm9xM2xHajBQcVJNd05OcDZHcmlTOCs5bE5XMVcvbXB4ZDltWUxBMGJGM2Nqd0h6N2RuQ29sWHQ5N3lRQlZlM1NKa0pyRlUvOWRTdlp1MTR0VFZZNzI1QXM4RlorTTU4elJTMjJyQjc4T1lOQUhWSFVXMWRhQ1BIQXBTWVcrdU9TcVl6MWVuaDZuNy9EZFlHM2Q0Tkg4ODk5ZFpkRytyQTAxQzBDQ1dkdnVmQ2FXUlREdFFra05IVjRJZjNmSjNmdnQvTC9EbEwxM0FEZC8rUHFYelh1YmF4K2R4THpuRWhiNnZma2E1ZG1VMDRtSGIxaUhzVEJRZ3pBWlVWeHpxZGRxTldkUjFMUWE5RmFYTTkxeU1MdS9PQWJZMnh5SkZJZjljc0lkeDR4ZWdhZkNQK1JaSnloQ1pUSmE1OENqNHRjY1pUdjQvdDc5eDRQdXJGTXJyNFRQaE5pWjRQYVF0Rzk4blBvWStZaWo2U1NjaGdrR0N0LzhXMmRwTzZwNzdNSlREdHAzdDNIN25TcXhJd3EySkhvQmgvM0Q4bDQvcC9mdkR2TmozN1VUSm5wN09nNGRQb25IYXg1bi94RmN3ZkVXQXdrbXZZT2FIZnNlZ1laT3lPSnlPbFB2T09XclE1djRyVG9QNm1QdXFMQ1RZbXhwMnJDTEZQbE13YmJDYjk3aXdKazRpUFRDNlk4OURUL1lUU0FIQjRhNE9pVy9YQjB6VjdlV2Q4eG9XMTUzL0pOZk5tY2ZRa2lZZStkci80d3QzZnBHZGJTWGtCZUk0V1Y3L1hOMUJDY0dqMWVmeVV2a3NybW1heDJmcW44WlU5bUh3YWZianhFUmc1RnMwL21FUUtxMVJkdk1lbDlCVzdML3VRRE9ob1JXdXVCV1daRVA0UzliQzc3OEJlUVZ1dVJzYzNIRUhrNm8yZlV4K1A5aWZMVWhISjU0S1loaCt2SWFHWm1yQXdObHd5c29nMm1PbzVqZElyUHdEM1MwcE5DWFF4NzZFZCt6bkNjdzhHZjFuUDZiclQzY1JlK29aMEEwMHI2ZHZlTXRoU05YUHYzTUljMzB2MjZvNnpMVnlHT2QvOVBMZXByaXAzbjB4V3E2L3NYZGVLNkVJZUFWYmxPUlpQTFNOT2g5cCtHbHRXc2RKSDd5QWl0TlBSYUpRbVZPb09QczAyaTY1aU8xLytqUFJWK2JqMGYzWmNKVGJWMC9USUoyS0lnUVlmai9xUUxoVnF2Zkx2ZjEwbit1MHMveXM3OVJQVjd4blA5MnZQdll5VCtFam9neThwc05sWXh2NDBDa21kOC9yWmxPTjRxbDBocE5HbGJNdGJwSnAxS215VGFJdkxxTTgyc3lnSW9zdmZpek5rOHNkSHR0WVFjWStNRS90Z05lUHV3MHNpU1k4a0IvRGYrb3ZXZlZMSDhySXBlTHNLTjRBUkpPbUcvODlFVFk5dGtTQkUwdWlCZjNZclIxa2F1dndqaDZHOEhtUWlXUXZITmRXZ3FobG9HVUczS0hvOWVxM3Y3NzN2K2RoQ0E5YWFBcDdrL3hsOXdJQTlKSnJBT0YrSmp6MGQ5OWFwVUI0emV5LzMxa2ZPL3ZuV3dLR0xyRWlBZkpLdXJqN2MwOXo1ZG1iSUFWV3Q0YWh2ejNRSW9RQ0M4Wld0VkZWMHNXZTVudzAwM1o1Zmc4RnZ0RTBCZzhlek15Wk01azBhUktUSmszaXR0dHVZL3YyN1QzSE5MVFpmUEcyRmxiVnBQanAveFJSa0tzalBCQ1lwdUVmcjVIY0xPbDYxaUc1OFFqMUZoUXU5aWNEZ3JHbEZ0Wm1tNWpwa09kMzhNZFNGQXFMOXVFQ2FYcmU5bmdINTFVd3NXUTRhU0g0ZjYvZHkvS0dqU2pONkVmTXVvK2lhM2hPbjBYd0cxOUNDNFZJL1BsdlpGNVpoREFNakpQR29WcUhvcUp4ekNrbkVmejZ6Y2l1Q0psWFhnT243K05QNzlyMWppWnc1VmUvQ2xJaWRQM0F4eGtHVm12cnNYRVBOUUdaRE9hb1VlVCs5RWQ0Wjg4RUtZbmRjVGZ4QngvQTNyNGJsY3dnVEIydEpCY3Ryd1NSbjRkcWFuWjdqQWpoY2hjTDRTN29JekEzbEcxamxCYVJXYkNFbXVrWE0vMlZSOWpZVU1jWms2ZFJzNk1XMHpTeExBdkxzakJOa3oxTlRVd1lOSVRuWDF2QTZRc2ZaZGRIUGsveXlaY3dTZ3BSanV5WE1mL3VROVcwM3ZZYjVuZmEvRTBid3FON0xCTDFiZmhNaFZYaXg5WUVzU3dQdHkyQVFmbjRQQnIzL2ZrbEh2N0g2M3p5aGpQNDZzMjNNR1hWWXI3MS9LdjhnaUtTd29ldVpLOWFVdGZxZFgxQXI1YWsyOHJEcnllUVN1dkpCWlRvakErdnBUbFZUcWRWY05BNWdsSXFhbXE2aWNVc2NuSk1hbXZkTEpwNDNPTDExeHRwYUlpN05XckhrVGhBcmlZNXh4L253NkVvUTFKSlhuMGh5ZjFQcFhoenZVVjM5TDJ2Snljb3VIaXVsK3N2TlJrem9ZQTNtTU45TFJleEpIWVNYVEtIOTBOaGEvUFhEdDlmRkVLZ01qYm9Ddi9NdWNnU0M3T3dIR2RiaE9UQ2wwRUtoT25Xc3ZhYnRXWTdKRk1aUWtFL2lZUUxNQVFDWHVMeEpCNlBhMU1razJtQ0IvamNiM3JJbXppT3dySzhZOVkxeVBYcm5EellUNDVYWTJkN0J0TVFlQXlOZU1iQmtZcUVwUWg2TkNaVitmQ2JnaDN0RnNVNUJpY1AxbmdsSmVsS092OVY5MWRseVVtdGRJcElXeU1GMVpObzNyS0g5U3NTK0VPU1JFekRVWDdLUjU5R0lKeUhiVm11dnRzVDVlZjNiOEYyVG5BeUhBRmp3K1dQalRYUjJib0tyemNmVFdrb0owbG4yeGI4Z1NKOGdVS1VrdG02K2Y2WFJzdkxIc3ZIMUVBRXJXZS9GS3hNaEtreVU1U1o2WDc5dmV2dnVMUVBldFcxeHgxYmtremJlRDF1TGxZNmJlUHpHUmlHMW92WC9mRGtzU09HMit5MVlrd3BhUXFhMUhiN0dTSUZiYnBrWjl0dTVqZHQ0NXdSSGhTU3cyK2RxekE5UWZMTEptSjRjbWpmT1pqWW5tZElkKzJtTzJiaE5YWDhQaDJmM00zdTdlMHNXTzVEYUtCa0huWVdXemYyS0RUUmdwUXRlR2NrOGMxeDh3blNHVW5hY3JCdEIyOXVOY0hxaXlrYWVnN0IzS0ZvK2x2Skx2cEo4eDJvUmxpQVo0U05PY2dsOHZTTXNMSHFqUU1lUnorMEpYRWMrTkNaSHY3MXF4Qy91aStGWlNzZS9rME9wMDFKOGJtZnh1bU1LTDcweXdRLytVdUsvLzI4bjBkK2w4UHU3WkxQL1RyR0h4WTA4TWRrTTdjRUtqamRtOXVUQXoxZys4SmJ0ajNIQVNtMDNybUJQUXZMeWVZR2lKNDk1RjNyM3BWQytIeVk1NTJCTVh3bys0SnRHdmIySFZndkxrQWxrNGVVaHhpV3FYZTN5WlhpSzkvOE93QWhKNFVtRHR5VHpSYUNQSm5PSWpoSHo2cXhiY25TZGMzczJCTmhSMzBVVzByYU9sT3UxeUwyY3FCSWhoVjBNN21paVlidUhKYlVWYUVVNkpvaVl6czB0aVd5M0NsUXV5ZktuWTlzb0swN2pXVWZ1bEk0bExqRVVaRzN4Q1hlRlhOSXA5bTBhUk5kWFYyVWw1ZVRTQ1NvcWFsaDJyVHBDS0Y0K2VVZFBQeHdQWVdGSHBKSmhTY0w2VmdaOFBrRUhSMFpycnFxakp0dnJzQnhKRFUxTlRpT1F5QVFvTFd0alUyYk5qRng0a1E4bmtQbjhvc2tGQXZYV3pTMFN6YnNjdmpFMlRaZnFzd3dMcGprM3NZU1hvL211TEZMc2ErdlcxdWltK2UyTEdkWFp3c2JKcDdHUnlmTW9mcjZHOG1aZlJxa2t2MmpKVjVlZUVRZnB4U1FseEpVZEx1TXd5ckxMZGxzUzVvY2lTYjJjVDhNTDRCY3J4c1AzWHVsOHc3d25ZVmYrUXBHVVJuMTM3d0pyMG9TdjlRZ296ZFE2UDhPVmQvL1h4eWx5Qk9Dbi83MXIvejFvb3U0NGJycllLOGVHbUE4eGlpNTZDNU1yNGRrUlJWMmZSTVlFaU5ndW9wZWd5Ly85bFdNakV2RVkvLzJWVEEwSkFxakpJeHRTLzUyMjdQODdXK3ZVanlrbkhSbk1URTdDcm9MZGtqSHk3VDhyZnhvN0hhV0JzNmdYdHJNbmowRnZ4S1V6RHlEcEJBODkvbzZ6STZGL0tKNkFaL2RNNVhOemlBME12MWIvcTdBNjdVcHExcE8welA1VktJVE9LMkN6aDN6OFEyU0dCdTZNRXliK3VGSnZJV05lSHpxUkFlcTl3RFM4L1B6MmJSeEk4TkhqMGJaRnNJdzhaUlhZcGFWbzRkQ21LWGxhSDQveW5aUTZSUkdmZ0Y2Ymg2ZXltcEVheXZTdHJFY2krMHRPeW53NTdwa0h2MHc0ZDNZcjJLMkdlU2p3VEx1ekN2cklUL3krUVNEeXpXcXkzU2Njc0hyblJyRlh0MDFPc1RiNTR6U29hMVQ0bFJMSnAwanFXdHkyTlVvU2FaVXozZCt0S3VKMldZUTZ5QzM3WUZhYjN0dm15WkFaZ1NidHUzaWpLa253d3VUSWFjU3Bud2J3aU5nN285WS85ZVhJUzNRUXRDZmJyTVFFTXlTeUdnQ0RDR3dwT1NKUkJ4TEtlenNvbHFaU2JQT3ltQXBSVWpUZXBScVVHaUlFOEhlUTdUd3dZNFplS3N5QkdZa1NOVDZrUWtOcDF1bjdha0NodnlnanZqNkFHM1BGaUowTlREN2lZTDZqZ3l2Yk9oaSt0QWN6cHVZei9CU0g1dnFFeFRtR0ZUbWU2a3U4aDFTVThkOThRMUJRY2pNR3ArSFB2aXdyNDlrSDBxUmFOOU5zbTRGOGVadEFBUkxSeENxbWthZ2FCREg2NFJWU3JtTkQ1d28yOTc0T1dObmZaNlAzL0E1QU41NDlqL2Nlc01WZlBJN3YrT2txU2ZqT0RiR096UUg5MzdnM09QcXVndG0vZ3VkSVhRVmowQzF0Z0tkR0xvSFI3b08rTTNmV2NiWDB2OERRT283eTdKT0hCaEdEcll0ZWZEMkYzam85b1hramFqQ2JwOUR6SW15ZnlyVFQzNnlhSzlwdFo4VExuQ2NOTmRkTndXQSsrNWJoV242c0N4NUtFc01LUVM2a2l4TTVwSzJGYWF3Y1k0eENIejJrSzJIRHBCb2dMYmYyaGJ1WHVnMUxLWlgxNTdROGYyeVQyaHMyOVhOcWcxdGdHTEg3azRDL2hGODZzNlBjL2VuSCtLTUNkdFF4d0tHTHR6YWdKSWhIcDcrWlJmTjdSYjMvTEFjbFpJOVRYcFZTbUpaOE11L2RiQnNVNGFiUGxwQ3kwNk9XS0pZMkZaTWk4ckRjaEVVTURYcUVMWVZrUk9FSUFjSG51cEFSbUJNZHNGOTYva0ErQlVEVWduL1BqUkFoV21TZDhtNWVNcEw2SHJtWmFJTFhpZFQxNEJ5SkVMWGpyRkhyckNWUTQ0UlFLQngrN2EvY1VyQlpLNnV2Z1FIaFM1QklnbG9YbVpmK2VsOXdJMTBFQWdjb1RDQWVTMnY4My9iL3NhUVFCVUtpYTJjRSt2cEdKU2xjNjdBOUhxZ29vcUw2eGZ3Y1VOaGVrd2NTeUdsSXZTalY0bW1FZ0FNLzlGM2VDbVJRVXNKZEorR0ZYUG8vT0ZqN0xvOVNHSklPZW5PYnJBczBMVjl1c09SaUhBTzlYKzZHM1hiTDlCL2NSYmhoa1hVM3ZjUU0yLzRGS09lZjR5dFMzZWduMzNSUVdFUGYvNWxtSlhyYkZhdHM2aXB0ZW1LeUd4OTRyNzVaUmdhdXU0U2FLWnRoNzhyaTB0M054RGJzcHgvb1BIVUhiL0ZET2R3WTA0SkUwZVBKVjI3a1ZQR1Q2UnljeTNXSCs1RmJ0NUc5ZDl1ZC8wZjA0dVVFdW00TFBCYU5oWWlBSVNPMEhJUjNpbmduWkxsL3Y1ZHIvR0d6a2djVi9PaDZvTWZPTzdudENFVXR0U1Fsc0hacGUzOGFjeDJSdWFtY0RJQzNWVHNxZzN5NVRzL1JFNjFnYzhVeEJNZUVyRTBNcFowbWRPOEduaDFQRDVKaGd3MzNuWWhaMHpjVFdWcERNY1NmR05rUFZlVXR2UFpUY041dWJrUURBZERrOWpxaEQzUkd3a1VidGNFMGxsL3pBRmxvYVZYNFRBZHc5QVIvaXFjblRYSWRTc0liTitJZFlVWFcwbzhFMmVqRWxHTWxTK2haUkpadStDOTlZUDJubzErM09DeUtDeHlvN01IL0JJZFVWQ0FWbFpHZnlkdHMyVmpyNWNYVGl3K3BwL2lMOTduTXhRcEtTb09NM2RxS1N1MnZFUW9VSWkrdklhTnEzNUZhZFVlUms4dVpvV3hrMmkramRvV1JTWjBmQ2ROb2FLbG12YU9mN0hsOFVlSWRYWXovT3paREMwZHh0UExIK2VVU2VkUVhKUkxRMmZVVGU0YnlJdFlzQUIyN3o3MDgzYnZkcys5OXRwK2NSTUVMbDcvc3hYdyswMHd2Z2d5Q2xZMUFUYm9ucmZualIvTWZmbkp5cmZCT2VnQ25BeGNOOVo5ZmQ4bU1MMWdIWWIvZkZyeEVzcDh6VHpYZUE2TFdtYnlQeVAveXV6aU42a0tOTEE3Vm5YZ3BhOUExeHpPS0h1ZHI0NjdnOW5pZGVLUEtIWTk1c2RxRVlnRE5HOVJFc3hTUmVHSE1nUXZGYnl1NW5MYjhzK3pvSGxPTnJCN3d0Y01HZkNKS28zUER0SVo1RC9JZGFNZ3RTWk81Sjl0cERjbDNVbDJZaHNlY0NtNTZHNU1yMG1xb2dyckhlTm9wd0lIanFQZGQ5dXozTmNyamhZREFWLys1Q3krZk4xTUJzMzlEZkZJNmgySjMxMm93Q1dvQ09kNHFYdnRGbTYvLzAyKytzT24zOU9OVUVCN1Y1cUZuYTFZR1ljOWJVbDhIdjJva2UwUHRKZ2xybUswV280TTFxQVVaSGJxcERjYk9OMENhN2VPWGlUQjZVMnlxcFRMZldvM3V1TTZBUkc4ajBUVGpyOHhLNFhtOTlIOGgzdndEaHRNNlZjK0RjSkwzWmUvVDNySGJyUlE4TzJFMkVkcnFMWjhEeDBud2RMUlJabzVJN2J4enpkSGdjanc2OGZuWkpWbkJvK2VZczZJYmR5OTRDUkkrNUdtdzhFMkMrOFBIYUVFTkxaRWFlMkk4L2o4emVRRVBUUzJSdW51U2tMQWMxUUxKWlZVQklJR3MwNHJaZG5hVHJxN01naEQ5QlJ3NmRta2lVeEdFb25hUGROQ1pjbThJcHFGWDROdkRyRllIb05PUytOYmd5M21WdGo4ZFJmb2VDZzFCUTZTdEJSb1FwRnJ3REMvWW14QVVwc1UvSGlIRjZVRVFVTlI0bEc5R2lNZXZxRXVYQUlJSlltc2Z4UW4yVTVnMEN3U094ZGlKOW9RdXYzMk9hNXBDS0V3d3lYa3o3Z1JZZml5eWJ0aXdQRjZUUWdjS2RtMnA1MEhuMS9KOXZwMnJqNW5FbWRQSDBuUWYrU2FKaDl2NVMwUlBOd21SN0pJQ3FaVTVmSG16Uk9wcmlyb3lUdG9iSTN5emRldm9yMHJ5WlZTbytXTlc4a0plbnZPZitTWnRWenh1UWNZT1drb243anFrencwcHBTSEFOdVJHTHJHRTY5czRlNS9MK2ZVaVVQNDNJY3Y1dEsvNlRTdmtaaWVHUlNNL1FBL3Uyc2hHMnNpbkRWckxaLy8yQXcrLzdFWk9JNUV6OFk3eEI4K2RsQktZaSs1b05QV2h2QUgwSUlCa0JLbHVYbE9KVUdkQXIrZmloeVROVTBwbHU1SjBoSzM4V2dDUXhmSUUzbUU3djBPVERoMGJJUnNrN1dVbXhlb2hJNXdvb3lNWmFDNG5QbjVhL2xrdlJlNUYxUHpUM0JWd21HTmNIMnZWMVdWaFlkL3JjSU5ZZ2VEZmpSTm83RzFEWFNkOHR4Y2pHQUFUMVVWUWpmZHhKTERuUjliZHgvKytMS3FPR0RCZFZzRW83c2hhY0JkWXhTUERWZUV3Z0pSa0FzZUQ3clh6VUkzcThyMklTYjlvWFBmNHl1RUJuZ0ZEVnU5MUx6bXg3RVZTVFE2bEE5dm9XTHFlUTdoc0VSbGpsVjNXNEFtaUNSTDZJcUUyTldjSkNWeVNlVVdrWmt3RG0yQ1EySDFDalowZGhMc0JvKy9EUFE0T2I1VzlqRkU5a0ZpemNlVmZzaS84dUkrenVaOXM4RFRPUlJOOStFUGp6Z1FTbmdzUVU0WWVYa294OEZxYTBmemVkRUMvaU15TmZFcDlFRU9JdGNsTWxFcHQ0bUh5RmRvSVlVVEZZZzhpVEJCQkZTZnIxU2hzc3BjeDNCeUNLUktLT3dlUW5YTENDS2hhcFp5L24rWmZ0Z250dFI1NkkzVHVmNjBlWnc4YkN0L1h6SVhSMnFjUFc0TnkzYU01SjRGNTVHeVRSQ0tJK21TS01BUml2bWJ4N0M5cFlTbVNCZ2xGRXErdDQ4bXBXdXpOMFhDL1BESlM5blZVWUFqMUdHdnZ2NG84RlpLWVR0SDVnWitlWFVNODdTUGtLeXNKRnJmeW9kMWhlbjE0RWlGVklxbGZnOHJmM3lIZTIwK1A5Zi85SXRvUXFEckdwYnQwTlFaNWVmTFdpZ2VlaHJwRDA4a25jcWdLZWxXR1NpRlp1Z2tJOTJVZmVWT2l0R3hQYThTMzdxRGxITEkzMVJIY2RLbTJmTVVtUnMraTZld0RKVzIzM1VoREhSZEFnaE1ZR3RqTjdQLzJNbHRvOHRKdG0vRjhSaU1xQnpHOURzalhGc1p4UURzZm02TDVqVTBSaFQ1bVQwMGwxMGRLZVp2NjNyUGMzUk5NS1V5eE9BQ0g0WUdHNW9TcE96RG40TU5YZW1EbUovUUhNbTRaTTdxN2F2UmtZcldxRVZEZDVyakVOMGFVRmt3ZXNreFBiNWg3eGRZVlVESzBhZ0lKbmg4OWtwK3RuazRqKzBzQjhOZEcxSzVoQXlhNGFBWkRoczdjdm5ZSzlQNTlmQ2gvTFp1TXprL1YrUmQ2NjZGcHAvNnFWRUJ2bEkxbXBYYmk4Q1VHTjRNRXZxZXk3SmpSOS9Bd1ZRS290SGVPV0ZLdWU5dDN3NCszMUhKRlpYS2pUK1BDRm5pdWlFUlJvUXM5ZEN1c0hxcEtVaTNyUWxUd2ZUZEx0dmk4K044TGdmcUFJUWtZeis3NCtBTUNKbUZkRVh2OSsxTjI4QTZRQU4weXliOTlEeWM3YnZlZHM0QnYrc2dKZS9zUGpCUTdrOStMT0g1NTkzNU8vb3NiKzh3d3pIZ1duaDFuWFlodUlJRVg4VERhZWg4SmN0R080a2dDM0c0WFdSNGxBQ0Q5SUZ2aEN3VFNicWZlUldyc2UzUTE0c1EyQjNkZEQrOWdQQUZjekNLOHZ0dHpTMEtqdWFFREtCRVY3OWRIUWhYaDNiYW1xdklyTjUrZTQ4bkw4QnJLUEx5M0g4WDUybDBSOEVJU21JeDZJeTRhYjRjMEU1MG05RjJSa1MybWQvaHpSZWxCTHJtME5JeGpnME5wZnpnL0JKY2FvNERGQW9EMGtuVDJiUUUyenVJa0NjSFV6TkkyZ2xzbFNHL2JDYWE0VHM0eC9ZZHBYZEg0a2NXMTcxRlJRa21EczdsMnJtRENRZE0ybU1abmw3UlNFTm5zdGN4YzhjVmNjdkZvOGdMbWdQNitOL1NQNW5TaSs1Rzk1Z2t5aXNQNkY5ODViZXZZbWI5QzJ1dmY2RU9rSzh4dElKMFIyLy9RdFBjbXFEaG8wTEVJMXZvcWwzS2tMT3ZZZkRRNTZpVUdXTGRaL0RZby85bTIrWWxvQmNnbllGdE51Y29oM1UxU3luS3I4Sk8xaEtVVzVDSldyYnQyWXhscGRoZXQ1SFNnaW84bnFQZmJFNEkwR3lIUVVWQjlLb3FLcnRBNlNNeDlEQmFGNmlLYWlxTFFtaTdiV1NXc0txL01ZWjhvZk1wWHlIYm5Bek4wc1pBY0pPdmtQRzZ0eWZ1cFlDZk5KWXpmMHNBL1lqa2FldzVmTXdFUmJGbThQbGdJV2ZZUWY3NmNpY2ZXUm5oMml0OGZPWktQMVdsR3Z2Z0RBRWl1dzhyRzVuWkFlbnQwUGs0WWFPUW1mN3h6Q3laeFJjR25jWk82NE84MmRuS0swM3JlYk5sSXp0aVRhVHRkTjhuZ0dWaGxGZVI4K0hyU0wzNU9pTGdKN25FSmVKRlNYeFRaNUo4WXdGQzF5bjZ5ZTJZVllOQlNhemRPNGorODY4azMzZ0Y0ZlAzaWJ2aGVLM0xQVFNjVDlFVXRha0ltNzJhWHFoM3NQTWJJaFpsT1FhR2RoUVJUS1VnRklJTExvQzJOdmYxbVdmdSsyemFOQ2dwZ2VlZXl6S0NpMzdTQzRlSGNPeTFNY0k1N241N1VrbUF1TkdGWnVwTUtIR3g5WENPRDVUbUVvdWRpTStla0JOeVdPdEFaZkdndmNSd1NzR2l0WjJzcm5IYi95M1owTVdjaWZtOVZJSThpdW5SU2tqTVRBQ1YwVkIyZ21oVkVUTWYvemYxWFl1UjBtYjY3MjlneTVlWDBkSzFIRzFYUFNHakg4bnlSMXpRSjh3SHBhaHZTYkhvdGQwOU9XQmFnMkRPM0VHVVYvdVFRdENmMjhUeGxyK1RmMFhmNndhRjBIcElydmYvTjRCRW9hUDFrTEtwUG00Y2gzMStkaTRnSllsNTgwRFhzZXRjWDlESnBNRnhDSng3THIwTFJmc0J4em1ZUkNZRjhoM3lVd1Z1N05LUjZyZ2pvVDltUkhjYjJDbkhSaTh2b2ZndnZ5RG5FNWZUL3MyZmsxNjhFaG1OMDN6REZ3bCs2RUlBNG84L2h4WU1nMlhobVhZU2hULy9KcjdUVDhtNkdqWkNOOTY1QnZIOXZ0ZHArM0hOQ1hGYzh6NG9SOUs5YUJVZEx5OTJpZndQYXRHN3BQOGRMeSttKy9WVkZIL3dMSVJ4K0hOaCt3OStjSGlxRFBBSndVdkpKRVVORFl6eCszR1NTVkFLUTBvMk56VHcraTkveWJsK1B5bWwrcDN1NCtEbmkwSXJzdEdIWkpBZE9pcW1rWGZ2VGlLM1ZHR3RkbkVjYzNLQ3ZIdDNFdnRaR2JKRFJ4K2FRVnR2NDlSNWpyaWZJWFdOZ0JObnkvaXg3TDV3Sm1mODhFNENTaWVlRnlKUVdRWktFUThIeVlta1NHS3grSlBuTStpNUpVeDhjeVVKUFFldGova1cwM1l1aHJXYmFIejBPVG9YdTBXVSthZE9wZnl5QzJES2VQZWcxUnRvK3M4TGRDeGVBUUlLVHBsSzJWWG53N1J4V1NCdExiUTlqZE8xMUxWMzhrNG1mOElId0poRTRRemdxbzAwUGZJaUhVdFdnSHFQN3dmeVowNmwvSW9MWWRKWThQVnVEQjdQeExqNHBBK1I1OCtuTzluRmdxM3p5QThVMEpIbzRIT25mUW1BTzE3N0hXRmZHS2trdHJUeG0zNUE4TUttWjFpeTQzVStNZk5HcnA5eEkvcXhxRk9WSU0rd3VUaXZtK3VLMnhtU2pETHY2UVFQUFp0aXhTYWJSRkx0dDlkTGFtdHJlZkRCQjFtK2ZEbmYvdmEzdWVPT085aXdjUk5kWGEyY1BsM25ZNWQ0T1dlS2w5dzlYanBmOEJCWlllQjB1dmJHSVhQL0M1Zk1XOHZQSjNUN3J6QW1uMFQ4YTkrRmFCU3R1cEx3ay85RUh6RWM2L1dqRitNWFFxRHJPc09IRDZla3BJVEt5a3J1dWVjZXJybm1HcXFycTkyWVpqSkYvZjMvSUZXekRlSDM3OE5JVkpiVVc0QnVhQ2gwNGpYYmFiNy83d3daTXhMTjc2ZTh2SnhiYjcyVlYxNTVoUnR2dkpIcTZtcHljbko2ZnZ2OUprY2kzd2lsU0hwTWpPLy9uS0daYnVqV1hkNTR2MFBLbTB2eWV5OWtuYXREeXdzVkIzMmNtKzg0VkcvaU90L3p2SlNaeGhhN21xY3pwNktoR0d2c290bXA1SkhVR2V4d3lnaUtGRDhPM3NzdkVoL2xRSG10UjhURTFBUm56UnpEMTI0OGw0bWpxM29SMW9lRFBpcEtjaW5NQzlFVlNmRENvZzI5bXZ2MUdZYytMSGhTb1drNmpja09idHY4SkhFblRWR29sSmlWb2kwVFFkTzBMQm05UU83bHZEeUtvZ2xJTzRxNXBmQ1BuOTBEd0syZmROZjVyLzhhNGRFSDcrSHEzODFoNVI1RjBOTXZ2ZTdlanFmdU5YMDlDbEZlaWhMbCs4MHpCZElHeDBHcTQ5czNVSUFoTkhZMzJwQnZZMVFsT08rVGFZSmhFNVZ5OXlucFpQRXJLM3RPU2lFZGdaNHZxUmhqcytjTjhCN0VsUG5KMTY1NHoyT0tuQXpsVHZybzRGK25QTkRycGNmb1l3YWhnS1NkWnZ1Mm1xeHZMOW0yYlN2ang0L0ROTTArTklEcG85STlJU2ZrZlNpaUI0ZUUxYm51cXpOYjkybjFFNGphb2V6QkN0SXdlN1ROYnozTnJFMk9ZV2ZSTUY2dkNWSGJVY1ZUMm1XTWtYK25wRGhPZFFWZ0gwMzFvL2I5TjJaamh3d0NNOEswclN0bHRHeGphSEVYYmJsK0dKYVBZeXRVVXhxNU9lYml2eWR3MXVQRFRzbHlrY1FTRnR2cnUzbHBhUjNTa1l5b3pxTWprdUwxTlkyczNkWk9XM2ZTcllNUkFpRmNMRXhLQStVWUJEMXhUZzV2WVc3Qkd1YmsxRERjVzQvUHIrRVVUTVlZZkRMK1liUHdWMDNCTEJtSDBQYmxRSFJFVW16WjNjWEdIUjJzMjliTzFtMXRiS25yWWxkckhDZGxuM2c0UjFpZVRSWWV0RjVJMmlrc21VRVR2ZTEwdjFISTVlRXpRYmpQMlF5ZnliT3BoMGphQ1dEZnNWSkpUTTJQMy9BZGdvSDFEbm4xbXNJb3l1Q0o2dmpHeHBFSkhiTThnL0JJekpJMHdpZVB1ejNLYmZTa01Ub2M1N3lLTm42OWFTVHRLWmhXVnM1blRqbVRENHlaQ01EUS9BTHVmUE1WVnV5cXhlL1R1R3BJQXk4MkZMR3N0UUFsQnZpNkJXQXBpb3MxdHJHZWlaV1hFdDYrRVpTTjBneCs4V0lycjlTOHdLSmJUc2YwdVpoVVMzc25VMzY1aUlZdUQyYll4RXFtQ0FTcjBHWmV3NU8vWFVZOGR5eVk0ckNNaW96Vk96blBkbEpzcW0yanJxbWJ6YlZ0VEJoVlFpamdBUVE3OW5UUnRqRE84dlVOcEROMnorOVp0a1R0dDNjcHFiQnMyZXU3dXlJcE5tNXZaWGRqTjV1MnR6SjJSQWxCdjV2VHVxdStpK2EyR0dzMk41TzI3RDRiUjRhUTVPa1diYmJuYmV0RUFFVkdtZy9uN3VLcVBMZFpmTEdSNGwvZGc2bTNBZ2Y4NlNJalRaZGpZcXREOThFR0VqZnJRUUNFUnN5WEE0N0dHS2VXazFxZjVmYVdsK0RVRXNnN2g2aW1jY2hWeWtLZyszM29mdDhKSlg4RS9ZV0RFWi9oNWVxSjUzRHA2RGs4WC9NbU83c2FTTnVaQWZtdEN6MDVoMlQ1N28rQUhxdzV1emNQWnUrNWh6SytIOFNiK3UwWk9JNUVPVWxTOFU2TVVBbmRjUXNMZ3lsejVyQm5ldzBiVnkzbHBOTS8wSyt4WjFzTDd2czNBZ3hKWTJjSmw5NzZVYlJ3aEtLOEZDMGRma2g1UUZla3N2MFZNdnZmNkd3OEpscFV4SlNkRnZuQmZzUUJEM1N0QWp3SU5zc0V0YVM1L3JKVzhwYmxzMzZEbjkwcWhsL1RHU2E5K045WVQ5bmFUYlE1VFN3VWFmUzlqVitQaXMwdXdIQ29xU3ZIZG5RdVBHa3JiMnlwZHZjTHpXRmh6V0IyTkpRZ0RBZE4wM0VTYWRBRVYxMDJneHMrT0lVWkxidUkvZVJSV2hjc1F5YVRhRjV2NzBrdUJFTFRjT0lKbEM2b3VPb1N3cCs4bkJjSE8veWw1aUZlM2JHTXVKVkNHQ1lnK29jN1VvT0FEMUpwQ0FYWjExL2pDTjdnNG0vODYvQ2ZTU2FKM1ZhSDArcm1RK25GMVJoRjFRaFBIemcxZmorbVg2L1BaM2dwRFJYaTBRM2ltWlJiNDZJYkZBUnlpV2VTZEtmakZQakQvOVcrOE9IaUpFSUlNc2xtMElKQWdQa2Ixd0p3OVpUSlNNMG1rMnpHNHkvTjVuVDJqODQ5M3ZvVkhHLzg5RXFBQ1BueGpoeUMwOUJLN3FldUlIVFoyV2k1T1RqTjdRaS9sL1NxelNqYndkN1RoTGN6d3RSVXV6Yk1pdWFkbkdxOThPblFvTW5ML0NWUHhZVDN2bFNxYXpWQ3p6RHJ6NG8zL3FkUDFwVlNDajNiajhweDlzWVZqNTZIRzl0eEJvRVBlQmhkV2NrdDlhMzhQeDFNcjluRE54SUt2SWIrVTdjTytLTGd6ZXorWTZZWDMwaG54NlA0YW5MUUoxWVFHdFNOU0dkY25wY0JBajVMTDdvTHcrc2gvYTc4ellmdXh6aFNJVHc2UzJ1N1dib1ZOQk13OWJmbGNTc0ZtdGZJYnJuL1BUaXBBRHlHenBrVHF2Q1o3dnF1TEFoaDZ0cUpFRnRmN2RpRDJ0OXMySFFIblZ1MklBeUZuajhXajl4Qys4TXZVZnoxSVNSMmJjTHJXMG5JZHdkTS9Gb1dxeFVEZUJrQ0tTV0RCdy9tYzUvN0hGNlBoei84L3ZjOFhsdkxHaXZKcjRQbFREYjhkQ2diRFlHbWdSMFZGSDg0VFdpcWhkMmdJUk1DZE5CRHF0ZDJvT2NvN0c2QmNpRHZyQXd0RDNrSGpHTmJ4ODJwZC9RZ1BtbnpuYVluK1VEdGZXUXNaMEJ5UHM3b3p6MVphSkJKTW5mbTJad3hlU2JiRzNheGRmYzJsTWVMMmorZlhrbnljd3VZT0h3Y1JYbUZESzBZeE9PTG5rZVlKczc3UEFKNHc0UUxHVDl5Tkl5VU5GY014aHd6aHBUakVKZ3lGZTlKSjFGY1BZanpISWVHOWx5MVlxY0hTKzFMUVRDaVRWUUVkbFBYNENDbHptdHQ0L0E3M1h5b1lobDVJZG5UMmllWjBWZ1hIOGJVOGpwS3crNWU2VWlOTit2TDJKVXNvZExmenJ5T2FWUkVtMGwzUjlnZW1vbnRDUjFCbkU2NWZNUUpqWi9jK2pTWFRtM2pCMCtleW4raVh3ZGQ0eS9uZkpFSE5uK0NUVnUvd1VuaENwbzJMcUxWcUdmYWhRMXNXRFdMbEhXUXFrUm1MUmtOUEJwOCtud1BmNTJYWVcyTmd6VGR6NFVCUWtKTmkyVFh5eGsyYkxPNWVJNlhqMDFMTTVoNjBIeFltaGRkU1U1RXA5OTdUMWE0OS9vclp3dE9IMlJRTXovR2hBNmIwWUV4MUpTQlZRRkdrOEx3YmNPek8wMXF2RW45dFJENmYyQ21PU3JVbGg0OXcvbFZMMUFXT0RUTXJDelF4UGxWTC9CcTQrbll0dEUvOTdDUE9kZU9kR2hyYVdOcm9vTVBsUHZKMGYzY3RhR1owYTJ0REI0MkZOMHdqdHI4VUk2a3M3YU94cFViaWJlMG4xZ3c3ME9aWjVTOE02NEJDRTF3WVltWDhnK2ZSL0xSdTFFWlNjbTBTOGhzM2dWakM0bmUveXFGbytZUW1KSFB1ditzNFdVekQ2K1NBOFliLy9jWGRwMTRhTzhoS2VXbndha2dxZnhzRjhOeDBPaVN1WFRKZkN6NnhyK2pnS1NWb3FHN2xlM3Q5WlNFQ3FqS0x5WFBIMkxsbmkzRTBrbWtkSkJJcXZKTEtjMHA0TTJkNi9Ib0ppVTVlU1F5YVd6SFJpcEZkekpHY1NpUGh1NDJETzB3OVp5QXBzNDBYN3AzQzRZbTJObVNvamN1TGRqVm11THpkMjNHZGlRdFhVblFGRllpQ0pyazlOSEwrYzdjSnpoMzRncEFzV2hESVhjc0RyTmd1eGRIQ2NKZWlSREs1VTBab0gzTzY1Rjg2OElteHBhbmNLVG91UzZWVVVUbWQ5RCt6eGJzdGd6dldXaTlYOThBTFJ6R08yb1VvVm16Q0o1Nkt0NVJvOUJDb2ZmOTNQL3A5TDhmOU1RUlNLWVgxYUtMZmRwS0Y1S3p5OWVUYXlheXVldjkrOUJ2ZnJmSEY0MlIvdmRUYUJWbGVDNDhHOW5TaXJWd01kYUMxNUdOVFNqYnhsNjV6c1dVN0tPVEkxVjAvcDJZcG80elpCaUpwWFdnYkF5L0IwZnBLS240d3M5ZlJrKzd0YjcyLzcwS3BvN1FCSHBwbUVoM2l2OTN5OFA4OHRlNTVGU1drT3FvSVA2MitobEEwMGlsNGt3THJxWTBNSmdsclNsOHBpQ1NpRE5ZMVlDVmNKMkVQandibDFITm9wMXF2bkJIUi9iZFFRZ3kyWjN2QkU1K01EajVQMTZwZlNla0d1SDFjZWtwa29rb1pNWUMyd0dob3hMSmJPMno1dlkwU1dmUVBEb2RIVEgrdFdrM3FjN0lnUFhSK21ENU9lOXIvYWRRYUVKREtjWE91cDBNSFRRVVQ2Q01qa1E1NWQ0d1FnaWFZeDUwWHlrQXk5YSt5ZWhoWXdtSHdqMGNHMGZUSDlXRVczc2tkWGgybDd1K3I1c28wS1RMUDN1c2VQU082czFOVVJUVUdWbnE3Zm4zOW9Tem56b1Q2UDEwVzUxRXNuL3V0UUdoY1M2SFczU2pGM1VpNWJZZjhGUndVakJ1TW56LzAzREdUZTc3My8rMCs1N1R1VTlsSCt4eDc3bmVWVjgwQmFBU3REWHZZTmttd2JoaUQwTEUyTmlTWWVZRXlDc2NBMW80dTN2MDB3UldDaVVFTXBsaTAwUDMweHBiVGFwTlJ5WXFRSWVjdGdqR2ltY1pOK2RrOHM0NWs0SzhQTXdoZytuKzJ3UElTQVF0R0VBNVI2NHJXZjdsQjk4ZnhzNEdHUXh4ZUpoUVg4L3ZNUThPcEZnbEtGdEFya1Q0WEU0Y29ZRVhXTmdtK1U4eVRXMXVCYk5LSnBQbjg1Rk9KSGo2aWFlWWUrb3N0eDdjNHlWM3lGRENRNFlTcmg3RWxqL2NRZk16RCtJSmVCQUluRXlDZUZLamVPNDV5SXhOYk9WS2RNdDZ6M2pWM242Njc0NVhIMG8vM1Nnb25hSGhOdGJYbTN3MDRPTXJjN2V3Y25jTy82aXFwbWI0eWV4T2RaQ1lNeEV1S0tKMDdmTmMzbndQTTRiR3NYSkdzckVoeGJEY1RqYTNscUFaMXR0d2pJR3ZIOWRBWlZpeG94RE84cEoya3Z4cVJqRXhvZkdmQ1RzaDVHSFpVMFdnTW5DaUc4T3hKUUxNc2lLRUVMVCszLzJrVm04aU9IY0dlbUVlZWw0WXU3MnI1OURhU0lDN1ZvMGlHUnhvYjJOZHIxY3ZQTC93ditCQnVJVDlNcklRb2VlQTV1Withem1uN0h0UTJmZGs1RFcwOEZ6MmtmejMxelozOEJ1enBybjYyT29LY3Q1cDYzbndTNDlUWEpIQTZ0YlFOSVdodndPM21RREwwdkRuMjV3L2VUdjNQREVMeldzaG5VT2JVUVVGQlZ4enpUWE1taldMVENhRHgrUGh6RFBQWk1hTUdTeGJ0dXdZTjdyQWw2c1FHZEM2Yk9vRGtCK3o4SlFvZkdGQmJ4cDJRZHBPVTlPeW5jNnVKaUpXa3QzeERvU21IMU02UkNzcEpuRFR0V2dsUmNULzl6WlNqeitGUG1JNHZtcy9qRGwyTkNJL0Q2RnJZQmdZazA4aWNOTzEyT3MzSVp0Yit1d2dyVDc5OUhmMXo5N0x6SERpY1RnVzhwb1VvT3VFUG5zVDNsTlBCdHNoOGM5SGlmejIxemg3V3JNSmZob3FrMEh1aUNMTWRvVFA2L2E0S2lwQXhSTElWTXJ0RldJWUNOTTRJdGVsTEJ1OUlCKzVmUmViSjU3TG1HZnVZMFB0ZHM0N2JTNExGaTNFTUUwYzI4YXlMQXpESUdWYm5ERnJObjk3NEFHdSsrY2ROSDN0SjNUKzRUN01vZ0ozN3ZleEZ2ZW1SeGRqbG84aE9hMkt0dm8yTGh5djhIaXJlL2dVNTBmYWVlMFRyZ05qUjlxNThqTVRFWnJBeU9iM2JldW80M3VQZExqMnpyVFRTY2NUYUdvZkM2VkFZU2tUcVRSTXpYSTVIZERRaFlQTUxsNkpobFFhbzNJMjg3MXgzMkpKKzJuY3NlMldnOGJwMG1tYk5XdGFzZTFDWG4yMUFiL2ZqVFVrRWhaMWRURTJiR2dublhZNEhtUnZhdnhvTThQbHdTam4rK01rZHlYNTh6Tkovak0vdzlhZE5nZmpIbzBaYXZEeGl6eGNkbzRYVlQ2Y3YwUXY0Tkd1TTlpU0h1eHluNHZqcmZQemdTWDZwRHBjTmV4eWloaytDci8xZGRScFozTHYzVC9pOUhObU11RzBPZGpkcDlENXE5dkFUbVY1V2Z0cE85TUVYbzlCVzFzM2ZyOEhVTFMxZFpHYkZ5SWFjYkdmbkxELzdaL25ockE2TzZsOTRCSGkzbU0wbzFMQWtFSVAxZmttMjFzemRDZmRIRG0vQ1Y0ankxT21DWVNBeG00TG4wZVF0Q1R0TVlmaHhSNkdGSHBZWFovczB4NTN2TjFmSVZ6UTAvUUZ5SythVGlyV1NSa09yZHRmSjJsNVNDWnN5c2VjamhFYVJzbndtUmkrWEFCYU96TDg2N2tkSkN6cHp1VVRxVkFEc0ZtN09yS2w3Z21rOHRIZHVZZU9MZ3V2R1Vmb2NleDBqRzFibDFKUmtpTEZxZVFYVkZKUWtOOS8zTjQ5V0xUZ2hVZ3hyOFVLK0VuRkZzcE1GOWR0c1R6OHFYVXdjME1kWEZOUWo5NlA1RWdQTHp6cGNDWnpka08yUUNwQ1JTRXVQV2NNcnl6WkNjQlpNNGZ5eE11YmliVkZYVERWYS9ZQjVIenNpT0UyKytxWHdVZ3Axc2VDZkdEUU5pYVVGR0VHaXNBSUlHVUtROENod096cGRJYUZXeHZRTkpnOXNwSzJTSXpGTzlvNVpYQVJyYjZ4aUNLRlQxOUJPcklWMjRtakd3S1RKa3lLRUpnb3grVVhOalRaWXhNN1VxR2hNRVFFckRZc1N4SlBPVGdpUkxCMExFVkRMeVN2OGxUOG9XTFgzbENLK3JZdWx1OXE1OVJoeFpUbWgvc2xSaVI4Q3VGUnNMK3ZhaXI4TTlKb0lmZDUrMmVrU2E3eGdMWGZNYnBDWlFRcTNiY3g3RTF2L3RIbi9Gei8vUmhyYXh3Q1BzSHpiM1R6eHQ5enVmcy9LVlp0ZHZCNm9LVkQ4dWtmeC9sL2R5YjUyWmNDUEgxM21PMGJIRzc2Ull4ZkxhN2pWNG02QVZjMVV3ZDdleTBqcjhlZ1VLUVIzUkdVdHJjUGdzdjVvRlZWUURyVDR3WnB4WVhJOXM1MzNoTUxDOEF3SUJiSG1Ea2RmWENWcTFkMjc4RmVzeDRSRGlFQ2ZtUkg1MEdQOThtV3A5NXpYMHZ1Y2Nudi9EN3pYWFdpQUVJeWczT0FMbWhIVE5VcjJGa2ZwWFpQdEdjL2RXbnU5NDFJRXpDMnBJMExSbTFuVjJjdUdhblRGQTNSRkExbFA5OTNiR3RIa3BhT0pKbzR2QnJhUTRsTEhOUCtqSlNzV2JPR1NDU0N6K2ZETkUxU3FSUXltOGRrR0RycHRFTnRiWXI2ZWdlbDRpU1RMaCtHMTV0RTEwT2swdzZwbElOaDZBZ2hpRWFqYUpwR2JtNHVQcCtQN3U1dTFxeFp3N1JwMHc2TEk5bVJzTFhlNFo0WEpWdnFIYTQveCtFRGsyMUdERXZ4UUZNUi8ya3ZwRFhqb1NmelgyaGtiSXZWRGR0cGlYYXl1YldPajAwK2s1RVR4aURrOGVkWGFVQmFnOUd0T2w5YTVHZHZLcHhmd04yUk5QL082aG9KZUhYNHhKa3dZd2dvZXgraWVzb0J6U2ViM0dzL3l2YnQvMkpqNDJPazYyMktxa1pTK2ZuL2RUKzNiVERObzNMTlJpcXZpSlJTME55R0VUQndsSWJkVXlRUDhYZ21XK1VIeE4za1BEY3Z5elc0OWVJd3RpTnAzVklIdWdaWkFFa0tEV1NLejR6Y2l0K0kwbEcvQ2F0OFBOM0pTbjYvL1RiQTRNWVJuOEVnZ3FWaWxKWEV1Q2E4Z3UrMlZhQ00vc3VBMk92Z0xsOXhFZld4VVJTbXQxRCswUVRlT2J0by9ud0p3ZXJ0ZUltaEt3dERUN085N2h5UzhWS21uL3pDQ1ZMTWR4R2Z6MGN5SG1mbHFsWE1qa2ZRYzNMd2pKOUlZTFJMTG05R28ramhYTGQ0cXQxdFR1dXBxRVl2cjhSWnVvUllLc2FLK3MzNDBRaDZnL1RYemQ1YnA2RWh1TnFUdzZaUlovSGFrSk1SVmhySG94SEpGVFRsYUVSTldGMGpFTnZlZTBQVVNpQ1JyK2l1bGpqZENpMGp3ZlF5ZCtkU3JsNzlGRUs1RFd3TzVnb0dhcjN0dzRNVkdINmVlWGt0bi8zSVhPeExsMFBSQ0lqc3dBNUYwQ25tK2ZtYndQU2pCaUI5Zlc4Z0lxM0FWdTR2dERtOVFjZnUvVFlIV3luU3F2ZTUvMDNTSi9veUFUZ0NHZEdKclBlVHVxdVU5RzRQbVlnT21rT3N4ayttMVNEWjdEcUFhZ0NCZlVjcWFsdVNMTmtlNGN4eGVZeXZDaks4MUkvWEZMME13c09KYjJSc3Q4aGVLZzY1Q1pjNjNCL05ubWtsWTNUWHJhSnR3M01RV1E1QXJHMDZqdEl3Z2dXWS90QytoOUVQODdkT2hxaEw1L0dmTklCRlZheWJVWGV1WXVLZEwzS1M2VEJxV0NHVjA4YVNOL3NVQWpOUHhodzdGczNmbTRCRk9VNVA1MTd4RHMxM2xGSnNXUHB2V2xmOEhETnZFbXZtL1lxU1FqK3QzUnFkTytmeDhhdW1jT2w1bzJpcjMwUlI1ZGgzYmo1NWxBeVh3NVdJVnVrQ1dxMk5HTHFCSTAzcy9WamdFMG1IdUhMdnAwZzZQWHVBYmJ1RnJMcnVOa1R0M0xZRE1Od013LzNXbFpiVjNmc25UYXBzdGVmR2plMDlwcVp6R016ekNqQTB3WjR1Szl0QSs5aTd2MDEvcmp4ME5hWkJjbXZBWFVKQ2thb04wSFJYRmYzUGNnNVEzNC9LVzVHWnY1REF6VGRoVEptSXZYbzlhQnJXNjB1Sjd0aU5hbTFIcGRMSGhoMHBJSkcwK1BvdjNpQVVNRGwzVGpWWFhEQ2NCeDR2NXNzUG1QenUycjl4eG9SdHFLUHN0eW5Bc2hWRFIzaTU4cXdRRHp6YlRXZW5RL1VvSDhPcTNMVlZQY3BIWjRmRGE2dVNYSHRSTGtOSGVGbTFUUjB4N0Qva1FLRjFlTCtuZ0NKTEVYSWdZdkMrRitkd2RaUVNvS21zVis0U1l4aFRYTUEvODJJQWFRdndLdGNiVjJLQWRNWDdSNHlDZk1Mbm5VSDQzTk5KNzlwRGRQNGkyaC8rRDRsVjY0Nk5SSmEzemhzbDBRU1UrWW9ZRlJycVhvUFFlNXRaZS8wSVRVUExKamZ0WFZJalEwTXA4eFVoa1VnbFQweUFZMVE4dVRtZ0ZLR21QZVQ3RFRlcFl6OS8wWW1tVUZrdzA0aEdLTlExZDgxbkgybHBrUmZMVHBQY1ZJTXc5R3dDVTNiTEU2NXE4TmdhS1pFbThLT2ZNT3lzNjZsWjkyTnlTOU1NblhRSkJUUG1rbjU1RWY3RXdUa1huN2twNkJhdEpoU05MUTVidHp1c1htK3hmSzNOMm8wVzIzYzZKSklTMjk0MzU5TEFOcStpMEZQTUdMOUpiV3NuR3lKUlVnbDR2YjZlaCtZL3pUQU52bmZ5Y05idEVKdzNaZ3d2L2Z1ZnpCNCttdUdqUnhFSUJORGVVaWptT0E1S09UMjlOZDhLMHZkcysrYnhwUmUxNDh5ZmVDdUFMSVRDenBpRS9XbHVHMS9EamRWdXNtSW1JOURRUURra0N6N05EMzd6UWZKODNhUWM4T3RlOHJWY21sdmlQUGZHSmphczdtVDNqaWpKdGhqZVlvTjBSdzcvOS9oMGZ2bmxCVGhwZ1pPQkVjRVVMODNZd0wxMUpYeDE2MUM2azE1MGorc1g5TGUyQ3djMVBuSk9MbCs4cXBBSnczMTljS3lQcEZpZ1VsaFU0ZWpWYU00ZUZGNTh6bkswWklxWTc3ZG9vaEROWDBSbTVQbkVMeCtNcytwbFpEQU13eWVoajUyQmxZaGhqWitGWjk0RDRQWHYyMi9lelRiODdyY096aHpQelVQbDVtTG9qZnRXclFCZDE5QURmanlmK0JqeW9ndjYvMFl2bU4vcjVmSm4vblpjclRIbE9HUmEydkI1dlNqSElkM1lmTnpxQ3lFRUltTXphbkFoSXlzSzJWV25VVGxvTUlGRUZJY1duSGdYbmR1YWtkNGdIemo1U21Ta2tZemNpbFZrMExtNG1hYVdSZ0xTd3RtNGlUa2Z1cHhFSUVwemJSUERTZ3NaTWJpQXh0WXU4SmdEaXZ0eCtlWFEwZ0kvK1FsMEhtVGdQRDhmdnZNZDk5eCs5QnNCREMvRUxIaHpiNjZDQ2ZwYkd2MHA1UnFLVzdxaHBoTkdGc09NSWxoU0I1NEEyR3BmUHZGZUtINy8vT0s5NUYwYnUvWXAvc05wSkdqcUZxY1VMZWVQTlRmeTB3MjMwSllxWUZIcnFmeG80cytZVWJDSzNiR3FBMTdvaUhBdFh4anpGejVTK2lqbWtnaU5EM2xKYm5MdGc3ZlYxRWtRUHNpZGExUDA4UXk3SzRmejQ1cFA4ZmNkVjlDZENYTjBPajRmYTBvRkFnWmNYYUh4K2NFNnd3TGlvTFZ1YW4yQ3lEL2JTSzlQdUpPZ1ArNmxZWURIOC9iM0E0RURFd1pvbXZ2WmdTU1RPV29rR2dNcHFiekNmb3lqNlFoVEIyem12YkdkaHVZSVhaRVVHQnJ2aHZLNHNUYU43a2lLci8veVJUYlh0aDMwODg5WVdWdENkOGVWVE52OTJxamcyTmlyM1djUm11ek92NDduM1VidFFoLzQ5V3kzYWoyMWJpb0Rkc04rWk1zQ3pES0pVU1pKMStna1Y1cHVFMm5yUk1EL2hCemxOU01sUms0WXM3U1lQVi8vTWNFWmsvRlBHRU42Kzg0ZVhTODBnZDBad2ZSN1dGQTFnOThHcGxOakZKQ25VbTdSMFFEb2tiZGFkdmw1NzlSb0tOdjlXUE1naEplMERITEZuejZIcVN2eWk5alhXRThKV2hQVjdtZUdSa0dwSDZYU0lEUFFEMlR2QjJPSlNxWFFBeWFyTmpYeXdyek5CSEs4T0VLQXh6ajZrR2pTWWZMMElsNTZZQTZYM3JTWXA1Nm9ROHMxZStLR2ppWEJyL1A4dkVhZWY3NGV2RHJDbzdseFIxM3kxSXFSZk9HS0pVejFXMkRBNVV0MVJnUWthSkpuTmd4R04xc29DRm9NMVR5RWRBVkNrWkN3SXltWTEyRVFkd1Q1aGtJSU4rNXU5L1YrS0FWS2ttN2RndTdQSjdGakVjM1AvUy9LNnNKVE5BcXJzd2JOc0VFWGlQMGFkeWtCT0FwcEtUSnRMWFFzK1JNRnAzNGVvWnRIekhBVndpM1c2WXdrZWVuTnJkUTFkYkYxZHh1WG5UR0I0WldGSjVUV0FXVDRqZitpYlVzVCtIWG1SZFBjOWZmRmZQckthY3ljWEUxYlI1eXYvdklGRW8wUkNIajQ1Ny9XTUdiV2NLNy8wR1RHRFM5bXlkbzkvUFQzODhGUlBQL2thbjcvSXpqdG9nbDg3TUtUcUNvTGMrZS9sdlAwUTB1aEtNZ3pEeTNsbDM5OWtlOS81UnhtVmtjeDBocDMvZXh4N3YzYkc1QVNQSGgzaXMvL3BJVFBYVDJEMlpPcmlTWXkvUEtlUlFjM1g0VkE2RHJLdG9rOCtReStreWJnbnpFTnNaOE52amNtUDZ6QXBDU2tNelRmWk5tZUpPdWEweVFzaGFtckFUSHJsSE1JaFp4U0hwQk1SdTE5WHd4OFVXanQxbldIZlc3OXRUZnorMlV2TUlaY2RPV1E2cmlMN2lFbXRtWVFRTEJZaS9HbE04OW4zZjIvNzlNYTMxLys4UDNyK3ZCZGJqN1UxTkdEZVhQRlJ0bzYyOGpGb3JXa25GRlRUbUxRYlQ5eGZiYStiRElmT0h5Q041ZndGc2Exd3F3V3NBV3N5NGNuaDBKY0Z4U21KZWxOdFloSms4alVOUkY1YWo2Rk4zMFljUVN3ZVpXOWY2a2t0RFVxZ242THRORFozYVhoVVVuYUVFd290NUFaaDhZOVVGcmtYc3RBaXlPMXc3clJ0bVBRM0JoaVF6TEJsbVVUeVEvT0lUZzl4RmJkNXVsMTFTeHFmSk1MaHRReXBURkVJSlIySVdaMU9LRE04UjdqRkgyWk1UaFdndTdHMXdnV1RIRHp6NjBFNmRnZTRoM3J5UzJmaTI0RzZIZVN5SVBRMGQ3S0NxcS85aFZLUDM0VjRpMllUdEVsRjlKMC85OHArZWlWalB2M2cyaW01OGpjYVVPaE90MUF1aFpXaUJ4RjRNWWsxbklUMmFxQno4MjdNSVpJbE9TUWk5Q0VVdTRmQ2tmVGlRVkNOT2VYc0xOaUNEWFZJOWhaUG9UbWdoTGkvaUNPcHFNZGdoNThOLzFnSGtYOXdDRnNvU3BMZmp5MHNCbERPSnc2WWpNTlhRV3Myek9ZdG1pWWIxMzhiNExlRkk4dW0wVlhNa2g1ZmdjVmVSMjhzR1lxUXd1YnMzTnI0RmtpbGRSd3BNYVdQVlZzMlZPRk1DM1VJZVRaS0tHSUp2Mjh1SFppMW5lVmV5ZkkrOTcrbFlPcVNTbUZrVWhRWFpxTG13NmdlbWpKTFVlUnlYR0wySVVqQ1lUMzdhMG1FTTRQWTlrT0hmVXRDRjEzR3lTbzNrMmJUWStYeENsamlIcjhtTGs1eUs1T1RETkl4Y2VtMHJaeEtZcXhtRDV2cjJiUDc0eW5EbXhkZ3FZTGtrbWJwYSt2NXllWFZGS3pvNWhnc0pxd1gyUDl0aVorUG40ajk3K3BrWXFtMEVLK1h2bXo3d2Y1d3I5ckQwcTNkY1p0T2xJSyt5MUt5MEVqbG9IL2U2MkpmNncrMGFUaXJUTEVreml1eHVzWlZOVm5jMG5aTm5aTGU0OHZLSFFkbzd3UVlSaDkzeHM2TnIyamxXWXJRYWsvdzR5aWR2NXpiaXZmV3pHQi8xMCtHdDFyNGV3bE04cm1vZWlHalRCaDVhNENkcjBRNElxZk5xS2Y3ZTREcGVQU1BQclBjbGFlVjRnUnlMajZwTCtLZ0c2NXBZLzd1UU9yVi9mTytaQVNsaTJEYjMzcjRKbHJCOGhIVWdyeVBRN25sOFhFSUwrbFJ2c3kvTHMrck5xNmRERjdoMXVvdW1pWWw0VEgzWFlkWFNENzBmUk4zdjMzOTU2Z2ZvVUlTV1NUeHR0KzNMWlJhYWVYSGFNY2dVbzZaRjVlUW1iQjh0N0hhd3F0VEtKaUdpUVBIUjhXZlhCZGhZQzlmUUxqTWNXOEZXNGU4bVVYZUFnRzNQRkx1My9UYU5VaHhteVZsQWlQQjJIWjdGWXgyb0NkV0p5czRYYnZjeUNGdzA1cDBZWmtOekdtV3ZhKzN4b0lJbnFwc0JwYmlhL1lRRjhLQzFKcnQ1TFpVWTlSa0VkL01Zei92OSsrZVdMVEhIQXQ5UmJ4Z2NvSDRaTW9IZWdHV2xSMjczTGp4YUdncTJZbmp0RW95b2NSUXpTS0NseDEzTjRwYUdxRnRac2wwVGpVTnlsMHZWZTZjTTl2QzFSMlBmYWhlWWFBdExUNDYrc3RUS24wY09uNFBDVHFMZldNcmk0U3drQ1lKZmdEUVo1dVdFdlVTakNuY0F4bFhrKzJ5V2hmTUk2M1M4YVdiOU8zbGkxN2RKQlNpb3d0eWRpcTV4NEkzTHlEakMyeGJIbEU4dzNpNFFKWFFiNkRmeEdMWjdKSzlqMzhpODI3MytaZlNDa1FQc21rNmc2RUZTSzNNSitxOENDa21rTmxxSVZsT3d0WTl1WmlxaXJLcUkrVjBtM2JDRzBBM0dmbDVvVEVFbEZhdWhxWk12WjBETk1tUHhEajVDRmx0RGpkZUx4NXRIWTJFRTFFS1RUOXgwanBoVUJLdDZsU1lVQ1EwaTNTa1owSWo0bDBNaWpIWnFCSnVETW9ET0I2WHdHYm5SUVJ0WmNHWjk4TmFyVU42dFBlUHBOOUhrbnROOEh3OFpOd0dRdmlNZjU4Vnp0UExVanp2YzhFK2VDWjNuZFlmbG9QWUtYc05weklLeEI1QlkrZXd4anZVTVlFWjNEdFNXZlFZbHpCMnE1VzVqV3U0b1g2bGF6aGhUNk5Wdmo5aEQ1NE5ZSFR6a0g0L2FTV0w4YmVzeE9FUm1yVlVwSUxYeWJuNmsvaUdUMEJ1M0VQMW81dEJDKzhITE42S0IyLytRSEpKYSs1OFlIRG5OREhXMTJ1Y3doelVDb3dkY0dhaGlRZmYyZ1hMM3g2T0lQelBUaktiYmoydVZsRlBaaVFFQzZCVWwxWGh2UHYyczVESHgvTXRLb0FscU1PdWZhOXR6dWpEbGVoZ1NGZzJIQTBmd0N4ZWpXVWw3c2ZyMTZOR2pRSVdaNnQrWFZVRnR2cis3NFNWb2ZYQUVhVGtKQTJYaE0ydkRhZlB6NjhpUjlmZXpKU21Iei8reTl4OHpWNzhPYWRoRWNtQ0VqanNGVko1SVNCZDBMZVIzS29wcUJTQ3BSZ1IyT1NlY3Zic1d4WGR6MHl2NGxvd2dZRVAvakxOcTQ2cXd5bHdEUUVaMDh2WkhDWkg4VFJhOENsTkxmUlpUSUR4VC8vUHVRRmlkMjdsY1NDMTlnNnV3YXRzQWk3cFI3dnRzMElueDkxbEd0SDkyNWhrZTQweno1ZFEwR0JuM0RZalJOR0lobWVmYnFHRDE4eGluQ2U3eDBwT2c1SGpyZjhuYjdtSnRoS3NxbGxKNFB5U3ZFWkhyYTA3V0owMFNDOHVvRWxIVm9UWGRqU29TM2VUVVZPSWFXaGdqN3Rjb2ROOFpnOVRTYVRwRjUvSGUrRUNXaGVselJUZFhTUVhyOGUvNXc1YmhQVWZseGpYL3pneElNNkx1Z3pHVnlXaTRnMzl0akFDamVQYXZMd1ltNitaQ0xXQURTMnV2M3gveFpGall2dlN3bEs0WnQ3Q3BWdlBFYjB2bi9UK2IzZklIeGVrcys5Qm9CZVdJd1c4SlAvaHgrVGMvMlYrM0J0SWR6dk9FS2lhVEIxRE54d09WeCt0aHVUSnd0TENBR3RscnQyaTAzTHJjWHh3VTFYd2dmUGdQL01nM3NlZzVXYkRxcjg4cUR2b1VxbGFmN3RuUWl2Qjd1OTg4QnJKZHRvV0E4RnlabDdLb1hYZjRTY3VhZWkrWDNIMUpTUTZReWQ4OTdFNnVvK1JOdGJZSFYxMHpudlRRb3ZtSU51K0E5N0RKR05Hdy9iVDA0Qnp3SXpoR0NzYlJQZHVCR1VRdGcybTRCbHRiWE1BQ3lPWXFtYURzSXYwWW90N0IxZTlKRnBVby9tZ2Fud1hkemxMcTFtazlTamVlZ2owKzR4bFJtRVg3cjQreEUwSXhSZ09KSVdFU0J6NlJsVXpKcEt0T3hKdkUzYjJIWDZMQXFMQ2xGS3NmdTBpWlErOHd6UnNwRlVuRDZMak9tblplbG04aHlKMDhkNy9kWDdWbkRtS1NNNTcrZmZJK3N0a2dLZVdkZkVTL2U2elpiT25UMmFzMy8rWGNyZSt2a2RLMUFLenBrK2hyT20vcFJnYVJZV3RHRCtpbVplWHJZQ0ZKeDMranVjL3c3Zm53YWVXdHZJSy9ldE9LQ2ROYnhvSkFBTjNmVjBKam93ZEJPdjRXWCsxaGRSZ00vMDlhcWwzY3Nya3V2UHczWnNmdi95TDNtNjVsbStlTVl0bkI2ZWlpMnRvOXBvZG44Wkgwanc4YUpPTHNucEpGNGI0NDVua3p6MWFvYnRkVzlQWEpKUzB0emNUSE56TXkwdExZd2NPWW9ubm53R1lUZHoyVGsrUG42Sm40bUZIdXpGWHBwZU5rbHUwOTJ5amNPQkNLVkNlRDNJdWowNG03YWdqeCtMM0xVSGJCdHp6aXlzVnhlaE9ydGRHMjNwQ3Npa1FRc2RsWFJISVFSU1NzTGhNT1BHamVNem4va01RNFlNN2ZsOHg2YmROQzllUWRqbmM0ZVhuU3NLZ1VjNUdFaFNHQmc0K0wwNjBUZmVKTEZoTTZIcFV4RUN6ai92UEVhTkdzV29VYU42Zmt2VDNwL05Ed2M2MzhndElaSzBwVDA4c1hranI2ejRHVE1uL3hpbEJFdlhmWmN6cG42VDlyUUhsRHpvY3FOYXA1eGFwNXc2V1FJNDczbUtSSUN3V0d5TjQ2N2tKZGpvSkpXWE42engxRGtsNUlrb0VSV2tUZVd5eHluR0w5SThtcDdMSzVuSlIyV25FMEJoWHBEckxwdkpTYU1xRDhqYnFRbkJTYU1xdU81RE0xbStmaWV0SGJHalJnV2lsRUtpMkJxcDV6OTFTOWlWYUNQcFpHaE5SUWg3L0l6UHJXWjd0SWtYbWxaemVkVk12THFKY3IyUm96YnZMVWRSRmpZbzdtcmg5M2Y5aXhrVE5INzFUYmQyKzlWbE1YNS8xNys0K1llL29DeGNRanlsMExUK0dXdFlwZzQwUWQzR1RqMVd3MzRPNWhHK1IvMk9weW9RdWtMRkRiYXQwUmwzVHBJcnZobkh5UWpJWkYwaEc5QWxCQVYyWENFY0RWM1A5Z1J6Rk0yMU9vWXVzZzNqMy8zbnBxVGYrd3FVeU9xRVkwQlUzeGNmQ2tnbTA5aU93a3FsU0NSVDdLMy9WQ2ZJMDQ4cmlUVTIvZGRkODNQUFBjZlh2dlkxWnMrZXpmcjE2MmxwYWVFWHYvZ0ZyYTJ0UktQUlkyYWNTcmk5Z1RRRkNWMndJY2RkV3pNNkJRRkhJUVVZNmdRRjVpRVpPaEpDZmtsMVVTRlJ1WktQVmRmUkprb0lCUXkrTXVZdkZKcDFnT2R0dU92UlVkUUNkaWV4NTdjalRza25WV1ZTNW10aVdTWkFzUlpuaU5GT0pnNnlLWVo4WURka0hERDE0eUpQNG9Uc20xK09WRFMweFZtOHJwRTlMVkhHRHkya29TM0d0ajNkMURYSFNhU2NySSt0VU5KQUtaMmdtV1JxVGcyejg5Wnllbmd6WTRMMStNTkZ5Skp6MFFmUElEeDBKcjdxR2VnNVpUMC8xZEFXWjJ0ZEY5dnF1bG16cFpWTjI5cll0S3VUaG80RXBCMDN4OUxVMGZ6bTI5enNkQTA0RVhBNndXNEhwdzNzdlgvdDd2dE9Oemd4a0FsUWFWQld0aWVIQi96aklmWWFCR2VDeU1LTkt1bStKM1JvdXdka2xqSmJtQ0M4b0FWQUQ0R2VDM28rR0lXZ0Y0R3g5Ni9RZlY4UC96ZE1GSGROKzNRZnA1V2VSdGdNazNTU2lPei9IQ1RGM2lKR2hVZWdad0daVWVFUmZIVG8xYlNtMjlCeE9ZMFVDci91SjJKRldOYTJqSlNUNmhkRkp4TTZUcmVCWjFBS3E5bUQ1bmM0WGduR1hOV3JxRS81ZWJXNWdGUW1nMlpibE9lRW1UbG9PS1VodDM1cjVxRGhQTEZ4QlpxZEpKVXhlYlc1Z1BxVUh5V09IQ2Q1UkRONW9mRkJwcmFWY3NtNFVmeHI5WFpNTFlEak4vRjRORXlmbjR4bDR6RU5TdkxEbUtZSmZ0UE42cE1PNXczUDQvR1hmODNPaUlaVE5RWGFrejI4dTRjaXAwNnAxdDU2MFZLNnZVZWtsT3lxN3lJbjZNWFFOZElaaDY1b2lxclNNTlZsK3hadmJvNlBjTWpiTTJ2Q0lTL1RKMVRTSFUwZDhIc3psc091K2s1Q0FTKzZycEZPMjNSR2tneXB6R05vWmQ1K3oxT0pSeGNlK3IzVmdNbStEamFtODJpMC9HOTdwbkhIeEVKanROZjFBUzAwNG81NVFMT2ozRXd5enR2RmEvSFNZdzQzRXlpVTBBaW00NXl4NFhuQ2Rnc0ZYZHZaVUo5aTlPZzhtbHMyTXJIbG53VDlnaTB5a0NWWVZvZStxRTY0aHNlTTZNRFVpdEg4ei9RUHNhSnhDODlzV1VSOXRHMWY0N1IrRms5ZnZ2TTRtVGRDQ0pTU05EZHRKUWNma2U0T3dxbGQ1QVo5Mkk0Z3FmeU1tbjBSZ2Z3U21wbzJVMW82R3RGUENlbTN5S2Q3THpZcDBIQ2I0YVlpT25aRXcwU2lJN05OYWQrK0lBWGdJQW0wZVdqOVFndnhnQWZIa1FNU3k1S0FtZFpaTGFMOElWbFBpVjl4Vmw2YzdrS2JleklwUm1WeW1FVVFGZENJWTFIVWx1UWpHSGhrbkVmU3JTU09JdStGUkxHN0s0ZWtnRXpLUXpnY0J3WGQwU0RiT25OcGorU0Nua0ZGa2xRUEt1VEdhK1p3eGZnaXl1YTlRc2MvbmlLK3ZoWmg2bWhlWDYva0JxRnBLQ214b2hGOGc2c292ZkZqSkM2Wnp1L1M2M2xrMmZPc2FhMEZUVWN6dmRrWTVEdFBIRWU4ZGN3Q3gxUVlVUy9kblZBYVZtQzc1WXd5RGt0WGdzZUVoVXRnOEFqWE5oZFpSUkZwOUpDckRES2FZcUQ2ZTVvVkl3OUxNVGdkRGNTWFBVMzg5WDlodCs0Q3dDZ2VUSEQyaHdtZWRqVjZRUVZIbTdSY0tVVm5Nc0xrOHBFc3JkdEFYWGN6MVhsbGxJWUtTTnNXc1hTQ3BKVUdQLysxMGxjVjQ5aFIvRGtqV04xUVJ6cVpRUk9LTlkxMVRDb2ZSQ3BlMXkrLzBjczJQTTc2RlJ4di9QUkNnVXFrOEl3Y2pPZUNPUVRPbUk2V200TXdkSXp5WWtJWG40RjM3RERpenkzRTJycWo1K0htT1JseGJxeGVINS9xckp3ZnF2amtzNkhxMlJ1OStROUxZZjRySmJUZHpMclRBUlJ2Zk9hQXd6ajdOeGU4eXpxR0VZTUtLQ2tNZ29LV2pqamJkbmNjWWZyZWxiMWVCUWFIUUVtOHlUM2tsV1hyY0pUZHM3ZExtWUk4Rnc4d1pBUi9idSs4Z3VJQ1A5aHA3S2F0YUxydWNsQVBvTHBNNVJXOWF6MWdYL3dZbFgxSXV1RTJ0WDdIL1hzQWl1K2NZOFJHZmJmNkpBR1l1b2FkdlRtbXJyazIzMXZQVVc1UEhLa1U2QnBDMXhHNmRrejJpenIyd2FUc1JHeGJoMnAramZZOXVSaDZncHlLQkU2a0M3bkpScWJMYU4yZFMwNSttbURiRzRqMmRWQTB5WDFpQTBSaTVmb3Fpdno4Zkw3KzlhOEQ4UERmL3c2MXRleVFhYTZNN09RSHdUS3U4ZVlUVXc2V1ZPZ0JpQzQzMlB6Uk1FYStJclZMSS84OGk2cHZ4N0ZiTklRQk1pbG91dHNIR3BnRmluU0RkbGlYSVBLdUFMc2RsVmdKVmlNNDNRai9lRENyRWVGejNSSTEyMFlZQmlMM1hMb2ZnZm9mbkVsODh4YUN1V0Z5TkhFYzlLb0JVOU81NU5SejhSZ2U2bG9heUtRU2FFTDA2Q2czQjBHak85ckZpL01mWi9xb0NhemV2b25haGwxNC9FR3NSUHg5eHgrL3Y0d2ZQWmJkZFhzSWhvS01temlSWkNMQnpybzZoZzBiaG00WTFPN2FSVEFZWk9LRUNjcmZ0RnQwSjExdUM1R01vT0pkTEsvTForM3VLWVF5YmJ6SklFYmtkekc2c0JPUnJYRlVRTkxTNmJhQ2pLdG9RZGZkWGc2V283RW1PcHlrcGJNek9JWS90RlV5TXZvNlFqcnNLUjcxamxOcm9IQTZxUUNQdytLMlRoNjhPNWVVMFEwNWtsT0hyc0h2OTNQZGlNVjhzMzQyUTBwZzlqbk50Q1VLbVR4MkI1OWVlekprVE1SQllOS21LWEFjaFV3cWlpbzBQakRkWU9OdWg5WHJYWDVtaittR0dCRnVUQ2Zqd0J0YkhHcWEwaXhkRnVleWp0ZTR1UEY1OGpXSEpPS29lZWpLY2ZCVWxsUDI5YzlUK0xITDM4YS9lTXo0UEZrZ1pGUXhqQzhHTFNTWXNEaU8zemNPNjM5L3hNNTBHaVZoNUdsZXFuLzViUW9YMUpIWkxVaE1oTVE0eUYyVHBTdFdSM0xNaXJBbndxVENOV2ppMEo2d0ppU1RDdGNROWtSSTJ2NWpKRmRJNERnT3VhRXdqWkVPb281SktCQjBzWmlqUERMTjBDbVpNSXBVWjRSWVV5dUo5cTRUOXRUN0RmZDRsMCtFQUdYWitNZU5KVy9PTEx6elhpU3hhQjA1RjFSampwbEl5K3ZQd0ZhTDBCVVR5UjA5QXYybFd1aVEyWjZRQXlNWnl6bXU3cTh1anZ4NEZaQlVQaXluaUhaUkFBaHNwV05qdkcwOGh6TTZSMGthdWx2cFRzYUpwWktFZlVFYUkrMjB4anJKOVlWSVdtbkdsUTFqZUZFbEFZK1A0Y1hWN09scUllUU40TWdrbXFhaGF6b04zVzNrQjhJNFNxRnJHaHhPK3cwaGNLVGlycWQzZ1FRemFQVDBOc28rQUtJcG16OCtXWnR0VmhvRzZYRDY2T1Y4Wis0VG5EdHhCYUJZdEtHUU94YUhXYkRkaTZNRVlhOWJyKzNJQVladnBlQ3FHUjFjTmFNVHVaZXJUaFBZYlJuYS85bENaSDRIS3ZNdVBXS3p0WUpDQ0xSd0dPK29VWVJtelNKNDZxbDRSNDF5NjNFSFdxUkRSWDQ1M3ovM3Mxdy80eks4eHRHemR6NDErcFZET3Q0UUR2cCtkb1F1Sk5PS2RqQ3BjUGVBak8vbWQxMjRDbnY5SmxKMzNvZm4vTE13WjB4R2VBeXNaYXRSa1NnNERzNzJIVWRWbjZYeUNra0I3R25HOEprNHluTUFQcTIzK2hjSzIxWUlVMGN2Q1pOSzJhUU93S2ZsWW1PQXJ0amQ1V0Y3bDBaWlNRb3IwazFyT2tRTzNYU3pqYlp1M0I1cEI3RXU5WGZWY0FKQkN2U2NMTUZvS21zVEhqblB3VG5PY2ZJRGJmUUNFRW9nTklHdUZGZzJXbkVSc3FNRDUrbm44RngyS1NJdkYrdlo1eEZGUldobHBkRGNoS0VrZXRaNEVFSXdFRmxNcG5iODluayttSDFmSUdqcmFPUE5kVy9RMnRsTng2WW5XUERQcjFCZFZJcFZNQXVKUmpVdk1mL3V5eEd4MzdJcUhtYng2bGU0L3BLYkNPYm11L2YvS0lsVVlFbndHQzZsMHpNNzNmZHZPTW1ORTJjc054ZGRQOHB1bTZFSlJoUjVLQXJwUGYxWHgxVjRLUW03ZVd0bmpnMVJtcHZlYTM3UUZuUFkyWmJacHlmN1lxLzNwUzVUWlhzakFrWklrVHZGMVhPdHp3dXNEdmVtQ3AxK05kN2R2Z21LakdOdzN3dVhzcnU5bUNGRkxYempuOWR6NXJpMURDbHFvYms3RDQ5cHV6a01qb0doSEs1b2ZJbWI2eDVuWkxLZVRpT0VjelI5ZFZlaFlYZWFsTis4bTlJdk5rRFhPOXluN1BheFpSZjg5QXZ1NnkyNzRIVDVsdU1QOXJqM05uLzdKTFlUWS83S0xXemFJcGswdTUyVUt1SzFGUWFXYmZHQnM2clFSTGgvNzN3MmQwL3BCbnM2T3ZsWGJoeDcySVdNN0xTSkJFb0lGSlJTc21NakkxTVpsSlI0Um84aTcvT2Z4UmcwaUs0LzNrbG0yemJ3QjFDYXlQYXJHZUJIN3puNC9XSkxhejBBRTRxSEhOWnY5Zlg4ZHpZck5aUUo1RWhFdFlQSVZXZ1NEQ1ZZME96d2FKY1h6OWd4ak02cG9NQ1h3VTVCU1ZrcGp6LzJiNG9LOHJuNjZxdXpqeTRiMC9WNkdmeTFXeEdERmMwdlBvanUwUkNoVXN5YzRRU21uVVZtVndQMnVnM28xbnR6U2ZkdlAxM043YWZyS0hCc1d1MGNBcDQwdXRjZ3h3OEZWanM1UHNYb1lCcU5OQnRzUHhFblNtNUE0UFhvbUI1SmF5cUhQQ01DNzRCWEQzVDl1Q01CdjhXaml3dTQrMlBUV0JGN2czbURmYlRqWVVrTVptdlRlWFJ4Q1B6Tk9OTGdoQnhqTmxqR292T1I1MGl1M29qc2lwTGV0aHZmaEpHb3R5U3VOU1o4UEZDVFI3ZFBHMkFjdW5mL084dXkvbXRRVFdHV2c0eWpVdHRSeVcybytCcjMvZUFraEgrRWF5MmJGZStKaFBhWGFKcEF5ZDU2eGRBbGR0b0VSK1BIbjNtVzczNThFZGlRNmRZdzlmZjJRNFZ3OHlodk9uY1Y5encvWXgrR2RBalMzdDdPejM3Mk0rNjk5MTZlZlBKSlhuMzFWVmF0V2tWMWRUVnIxcXdoazhsUVVXVHcvUnNLdWY3aU1GNnYreHNxRGNrTmt1NVhISkliSkNyRlFOTTF2MzI5MmREY3JOSHMwNmpORjNRSERFcWlrbUcyamRFQ0lnODMyYnhIdjBxYTRsMDBSZHRkV3lTTFZSMHpvWHBkWUU2WmhEbjdGTkpQdjBqeThTZlJjbk1KZnVPTGVNOCtIWHZWT3JTaUFrUkJIaW9TUmVnNm50Tm5ZMDZkUlByRmwvdmNNRGU5YTlmN1lQa0xzQzJNTWFQeGYvQWk5N2szTmhIOS9aMDRlNW9Sbm1BMlQyM3Z2dTBCeDBFbFV5aVp4aGd6Q21QNFVPSi8rU3ZHa0tISVpCclYyUVdhT0VKejJrWUxoeER4Qkp2bVhzblErMy9IS3d0ZjQvcFBmSUw3SG5nQVRkY1JTbUhiTnJxdTR6Z08xMTk3TFR1MmJlT0h2L29odnFIVk5IejlaNWpoRUJqNnV5ZWp2WmQvVUZHR3JSUmF0SlBLSWgrT2NwTVc5bG9lR2FsSSsxMGVFU0VsL3VBK2U5bndhQXpPS2NCeUpPMTFqUWhkNjlWUFRLQndsRUc1cng2dmxxWTlVMHpjRHFFSkI0WEFVVHFHc0FtYjNUUW1LMmxObC9CS3kzbHNqWTBsNWZqeEd3ZlhlOG0yRmZHNHhlN2RVWGJ0aWxKZTdvNjNzVEdPRUlKNDNFS3BZeitIeFFHQ1FqSEhsK0RLbkNnbjJRbFdMVXB5LzlNcEZpeTFhT3Q2NytjYzhBbk9QTm5rK2tzOG5Ed2psM1dlazNtZzlVTG1SNmZUNnVTN21sQkkzaTl5MkZlaWFhRHA1RjkzRGVIUGZvNVdKOE1tSzQ5THBweURiOXhKZUlZTVE3YTIwZkhYZTBFNi9VWVNlZHJjU2VTRUE3UzBkSkdiR3dTZ3V6dEdTVWsrWFoweEFQTHlRMi83dkxRa0g3dWpnMER6Tm5EU3grU3owSVdnT0VkSDF3UXRVUnZIYmZkSlhrQm5mTG1Yem9SRHlLdFJrbVBTSExGcDdMYklPSXFXcU0yb1VpOUZPVHE2RUs0TytpKzZ2d3J3aHdxUUpjTXh2VDY2RzhyUVBBVm91b2RnWGdGSzVGSTRhQ2FtTHg5dk1Jd2pGVUlUQ0VORGx3TnIzVGo4OThyZUNqWnZhQ29yMzN5UXFvb1Nxa2FkUnZMUFR5QmVXNEIrNnlVWVV5YlNXUHNLSWMvdDVJMjRDM0FRb245N3VEWGJYdjdkV2M2cWVDNFhobHU0SXMvbDFGa1V5K2VGcmhKYUxDL25odHVvTUZQOWFHTWRjcUFlVUJpTzVKeXpSaU1keWJKTlRVeWZVTUhLRFEwSVlOcUVjcDVkc0lYenpoeUZwbXU4L0ZvTnRwN05DK2pqSEI1bzNBYkExaFRWS3NZcEl6cTVaM2NsSDlGem1ESjRKR05LQjVOMm1wRXU4ZGxCdTVwS0NEYTF4TmphRm1mNjBESzJ0c1o0YkgwakpiNEVhL2RzUnBPS0tjWG5raHNvSnRQeU1wYmxZRHNhSjQ4cHcyZ3hFWWFCNWpGd1VtbFFvUHU5eUl5TnNteW1qaTRqbVc1Qk9RNjZwdUVybVUzcHlDc2dPSVM2THBzUmdTd0huSUxXV0pwL3JXdGtmRVVlSmYzaEtRdlE4eVdoY3hONGhqbzluUDdDVVBoUFNTTU05NzRHejBtaTVVaVVMYkxjL1pEWllSQjdLWURkclBkcFNpZ0ZYbzhna1ZROHU4amlzeC8yNGZQQzkvK1laTXRXbTltVFRWWnRkbkFjMSt6WE5OalRJcm4yT3pHK2RsdUNuMzdSei94N2NsbTEybVpIbzROaGlINHRUL2pRbDN2elFQMC83K3JlZTZrbUdQbmlkdElyZXhmdHFiWU9ONUNXNVZBUWdJckVVTjN2ekJPbmp4aUtNV1VpbVpkZUlmM29rL2h2L0xqckMvNzdLWnlkdS9GZTlnSHNWZXVRU3pzUGV2d0ZNdldleXJQUWs4V1Q3WGRmRXdweGRPTS9QYkdTdC9COHZuVXZFQXFQN3BEclRURzJORU4rSUVsdGV3R1ByaDlEYXp6WWU5L002aDZKT3F3WXpxSEVKWTVwbjhaeFdMOStQV1BIanNXMmJTS1JDTHF1NC9QNWFHaG9vTEF3akdVNWVMMDZtaWFZZTFvT08zWXFNbWtZTzg1azRXc1NwWFFzU3lLbG9xR2hnVUFnZ0dWWlJDSVJUTlBFTUF6V3IxL1A1TW1UMGZ2UVA3VTlxbmhtbWNYT0ZzVkg2aHl1bW12eGplbzBZNE5KSG13dVlVVXM2UHFSWWw5RGpJWklPLzlhdTVCTkxYVlU1aFlkTTd6TWgycm9TQUU1YVkzeHpRWXlTNzhSRUZEWVlTSGpZR2ZYZ0tIRGtBUk1rMjUrL2p2Q2dWSWlOQU43VXkzV2ZZOVJkMU1PSXNlTCtua04xdkRYMEMrWWkyR2FkRXJKcjI2OGtkYS8vWTJ2QTBhMmJtaWd4UkF5YTlxYStnRUQ5MExmajRSRTc2MzhGV0E3V2NwTm53ZHdDV00wRk5JeEdKM2J3bURSVExKZ09NOHNxYUFvNlVFLzVUOHNqUDhWbEk5VHRWRXNYbXJoTmNvNWQyWVZKeFhVVWRUZFRadk1SMkQzVDhBZ0N4eDNSUWVqS1MrK2NXV2tvamtrNTVWZ0RLbER5bDA0eW9PMGRaVFVNVHhCdXFMRHlGakNCWjJQMU56YjExbnkyRjRqMmZINS9YNHF5OHRadDNrTDNlMmRoSy8rTU5yVVV5Q1ZSR1V5cUhTSzlQWm1OSDhBczZJU1pUc29KUW1mZHhHT3gwL25obmxJQVNNTEJ0R1JpdllVeXZWWFdNUkdVYWdVTnpYVnNHdk1lZXd1TGNPeExSb1JORWF6SHAwNmhDL1UzVCt0UUNFTWswSGRUZHpVVkVPaGtxUVFCeDBQR0lqMTFudWpVUkF5ZVdaZUM3Lzl6enlHenJpVTdsVUt4RkJ5ODJIbnZ4N21wZGNURUF6aDlIZWpHQVcyVXFTVXUzSjFJZDQxMTFsa0ZaMEFVa3BoWjBIWFBuSFlIT01zblc4ZFhVNWZuR1JIWUljdHJKUkFMczRuT1U5SEJCM0NlcGJzSnE2aHhYU0toMmRncFRiZ20zSkh6T2JSTjFzeGRjRTVFL0x4ZS9vZUpkTUZqS253Yzg1SitTemRGcVVqWmgyeUxqZ3NCWko5VUhhcW0xUkhIVTduS29xQ1d3Rm82OVJJZFU3RVRuWGo4WWY2OEVNSCttbUpSam9MT2duMmtNOGVyWVQ1QW9TZHBtSkxKMk8yN0dEaXc4czR5V3N4Y21nQmxWUEhrRGY3RkFJelQ4WWNPeGJOL3habnlYR3l4ZWJaT1NBRW1xWXhjdExGQkl1bVVWaVFROE9PVlhnOEd1bWR2OFhyRFhENmg2NGcycnlhWEg5bGR0NGVYV0wzZnNOelpIYitDQVA3TGFpZWFXcFlWcFJ4WTZzQjJMaXBEdFBNd2JKa3o5YTh0eUVxZUErb2YrVUJkTHFVQ2sweldiYXNMb3U1ZXc1NDNFR0QvZGx6ajBVYnUrV0Jpc1BYMnhxZ1FYcVhqNVlkNVFNMHd2cTNnRTk5VVU0YW1ZV0xFUVY1ZUsrNUVuM1NPSnl0MjdFM2JzWGV1Q1ZiaUNPT0dXSzFWTm9obGJLSnhDd0dWWVM0NlBSQkxGdmJ6Tk92RlBPWnYxekRuWjk2a0RNbWJPTW85MlIwOHhVY3hmVWZDUFAzRnlPczNwcGk3Z1ZoOUd3MDFwdW44K2FTT0lZaHVQNERZUXhIdlo5cjg0OXJ5VTBkN21RU29DdVlra1lOdDVHYVFCL2w2dTdBUjZOb1VpRzJHN0RLdXgvUjNnbDVQOHJlVkxJTURwczN2STdwOFRKNjVDbG9XY1lUQ1d5cGVSTXJrMmJNK05sNDBJK2QrV0FBNWdsVzFuY3hadHovTXoya0R1UVA3NWRJb3d3RDZ5MzJsdVVvaEthaitmVzM0U2RTS1R5R2wyMk42eGp4czkrU1hQRWM5VXVlNEtOZitEODAwNlI3KzlPODN2d0tzYXRta1AvSUlvYnJ2dmZFSUdJZDBnMHk2VkJhcEZGUnFYUEcyVjVRQ2l1bXFHK1ViS3F4V2JuT1l1VmFtdzJiYmJic3NrbDJLYmFRb2pZWTQ4OHppcmxrU1QyVlJoREQxQ2h4MnJsL1dnVS9yVy9BYk5aWTNkSEJOMTkxaVViTHk4c1pOMjRjMDZaTlk4YU1HVXljT0pHaFE0ZTZCTk1IQUpuZjArRThJUU1pR2lDbEJvN0dSNnFhdUgzMERrcUNGazVHb0FCVEtNQkJPZkRqUDNwWnYzczE5UTJOSUFUQmdJZXkwaUNUeDFZd1kyb0ZILzNJT0xvNjB2emwzclc4K1VvZE9FbGVYajBNNGd0NmttVnR4L1hHYmhqY3dpWEZuZHk4ZVNqLzNGTUd1a1RUNU9FbEJBMGREVHUyN1BPSEREaHpXZzVmL1dnaFowMFBZWnB1WXUreHYxK0FGTGxZMm1nU25zdkFOd21WMm8zUVRIeldVNmpkMjlHNk42Tkd6RUhUQkliUGkxMVlTdktxV3hCN2F2RFViMFA1QTVqcEJIcDNHMmo2UWVPeUd3ZU5PMmdqVis1c1kwZDlldzhPSjZXaXJyR0Q5YlV0Nk1FeUNKUU8rTDM2M1c5K2VWeXRzN3hacDlDOWJDV2RyeXlrOU9yTHNkbzdpRytwT1M2M1Z5RkFsNUpSVlFXMHhldG9qYlZ6U3JpSWlsTW1ZRldIcU4yd2tFaThuWXJnVUx3dFFmUUoweUhhaUJScGRvd3Z4cmpwTStSVlZESnE2aHpLeGsyaXNYVWRhVHREYTJ3bm82dUxlT1BON1FOdkdnZURjTXN0TUh3NGZPMXJzRzNidXg4L1lnVDg4cGR3MldVRE1odzdHNVBVUE5rZTJBb2M5WGI5b0F0d01uRHJNbmppWW5qOExKanpIR3hyZFcwMjAzU0xkQStrN3FRQ3pZQmwyWjVlbW5sNHZZQUNlcEtIZDE3Sm90YVpaQndQQ0ZqY09vTlB2WGs3VmY2RzNuTmFRYTRud2tlSFBzcm5SLzZGUWZYYmFmdUZoOGhyL2dNWEpHVEg0eDhuS2I0bWpYVkttTDgyWDhNZlh2c1UyeUxEc3NXZUF6eS9OUU5EMDkreGdOVFFkSVIybEl1N0ZQaDF1TEpNNDR0RERFWUZ4VUV2bC9TbUpKRi90cEZhSFVmWi81Kzk4NDZUb3pqei9yZXF1eWZQNXJ3S3F4eVJFQUloRURublpEQU9PSUVEUHR2bmVLL1QyWWZ2ZkdkOFBpZWNFOWpHUkpOelJpQUJRamxuYVZjcnJUYUh5YUc3cTk0L2VoU1JVTnBWQUQyZnowb3owejA5MWRWUFBmWEUzNlA3Yno0dnVRUUtZSkc3S2hrU0prNTg1K2NUSjhKamorMDVPZmQvL3hlZWV1bzlwMjhOU0J6Tmtqejc4aHJpeVJ6WFhEaU9lNTlZaW1EdkFBM2VNYmptd25ITVdieUZOK2MyRmdBNzlGNE13VjM1ZjQrdnQ4a3hESlJoSWN4anMwR3hER2xDWTF6TU1rWHhlWjdmUnJ2ZzlFalNhd3hVK2pCczJITFA4eXNFV0lOZGdpZmJPQjBCN0paQ3ZPd3dUclZodnA5VGlvL1RYc2wxTVlxaXRONytLekxMVm1PV2wyTFYxeUtDUVlSaG9GSXAzSFNXb292T3B1NEgzNkI4d21TdXplY0o0WHJKZ3dPazc1V1ZmSDZYOXhzZnUzbXZ2am9oTEZSdUhhcjNZWXlLenlMTVVyUitaMnFqbDB4b29KMWUzSzQvSWtzL2dQU1BRbXY3a0dPTnBlSFA3WmVkNkNDWVBXOFRtVlFPcENBVThxR01nUUhsT1NBS0dpeGUyY2NGSDV2TnZDVzlFREpReW90ejZLekx6Mzg0aGFkZWJ1WGxsMW94b3hhdTBnVmRWeUJET1Y2WU40ci91KzlNdm5IRGJCRHdMNk5zVGk5eCtQWERNM2o0VHhjVEhMbVJ1U2N1WVBIUUpneXBVRGsvdGhaSW9RZ2JVR1pwVDIvdXQybndtdUxsdXpjUVcvUWd1ZmFsNURxV0lhVEc3bXNHV1FCbFVUdjlwUEFTczJXZ0dGOUZQVTZpaytUYVp3a1BQNGRBN2VRZDV4eXVQVTBLSEZleGRFTWI3YjFKMW0vcDRvTVhuTWlwSnpRUTlobkhaZGRPTkxnc3lFc3ZmNVhKWTJ0NGZmNG12dlBMbC9pL256d1BPUWRjeFVVZm5zYmRQN3FXb3JDZmY3NjRrbS8vL0NXKzlXOFBlVVdjUHBOdmZ1Y3kvdk9MNXhKTFpQbk5mWFA1NFI5ZVo5YmpTOEIyWVhBcEQ5ei9HVDU0OFFRV3IrdmxwUmVlcHUxakg2TG44aG93Qk9IbkU2eWFmeitqeDB4aDV0c2IrUFl2WHVHbi8vczhQODA1b0JUbThNcDlzS3JIZ1c1M0QzWnJHMElLNGc4OWdyMmxCYU9zRkozUDR4c3hIT0gzSTdSbmNHb2c0cE9jV0J1Z0ptb3l2TXpIMjF2U3RNVWxFcXZmNVhKMDJxVDlYM2xLNHg5VXZXc3l0WURneUtGRXAwMUNtQVBBdTYvdENzaHcyek4vUFhBZDMxVTQwUkJGUXczKzdWSEpVOE0xQVJ2R1c4M2NrWkowNTh0NHBVTHliNDJTdjM3QUlEN3pmc3hFR20wY3VpSjM5YmtuSHZJMWVsTjlQREJyTVU1UGtwUFRuY3l0TDJmd05SK2w5UElManF6dFZBQVhtOW9sQ0JlYXg4NnVnZTRBa05Nb3l5QzlZRG1kejd4TmR2TlduUFp1eWo1NUhlSndOT1BSb0NVa01nWnIyZ09jV0pyRHlMbzQzWnJJc0ZQd2o2cWdlRlFmYWIyQTFTMDJsZVVaRGdlRXRCRlNCM3dmQUNXK0RxckRPV0t4S3ByYlpqRHh2Q3NZWHdscllnNWR2YkJocGNXV3VqaVhsclZRV2hSSGJnUERPQjR1M1A5SlJxT2NORjBiSHFWdjg4dUV5MDlBYTBXNlp3Vk9QazYwY2lxR0ZkeFo2eHpZOVZWWVkrSFRUMlhvZjN5SG91blRDdHVLM3VXa29qTm5vS1dCMDl1THI3NGVJeEkrTEVuL09pdkl6N2Z3blc0VHVpVkQ2cmNoVXI4UDRqL0hKbkI1RG51WlNmRGFITDVUYkxJditYRFdHTzg2WlVKcjd3K05LdzJTb1FqdHBWVTAxVFd3YnZCSW1tb2JhQytySWhVTTQwb0RnZDcrSFVPNS9TWWZ3a2RRUHNqaS9mOE5VeXZ3QzY0NGF6NC9ldWtHNXF3ZFEzZXlsSXV1ZWdETGNOamNVNEZBTTd5cW5VUW15SlB6VHFjNTJvcy9hblBGV2ZNZ0tEQ2xRZzV3cnJNUW1xcmlHQUhUWVV1c0dQY2drdVUwWVBqeURDcU9rWFZNT3BLUjkwVklXdVR6ZU5oOWdsemUyZDJWN3dGWk94NXduQllDdDFDQXU5MjM3TGdJSWJBc2N3K3lReUNWU3laVVJPOUhybVRVaUVFa2ZWR01GZXVvTGh2TWJSZGJESit3akZNcnZrTnFoU0txWE5RKzdLU0Jya3VRUXFBeU5rVzVMRy9Ib296dTdDWVpxcWE5TDhncGZjdFoyVlJGSUZZRWpsZUkycDhwaURsSHNiNHJnNnVnSjIyL2EvT3U3VzRZcFZuVWttUlRiNDdHbmd4WjU5Qkd0R3Jta3YwK2R6Z3dOTmU3WFc0Sk5JUHlNVWJGV3VoWnVKV2U0eHYvTzBnZFl3clRpQ2YyYmc5dHkrODJ0aU1BQzRRaDBhN3lZanhLSVN5VC9OWjJtbTc1R25aTHU3ZXYxSmJUOEplZjRhdXZLZVJwYUZBRjRId3B2ZngvUStMa25lMytqTDNTa1BwM0Vlb0NZV2pJQ0ZyK3E0UnpQOTdORDMwdWFtLzdnd1lzVGI1VjB2V0luL29QZW9CRzdRLzd5VytWWG41Y2YyOEtqejQ2QUV5bW9MblorenNhZUY2REtXQlNLQ2VLK3dSMUM2VGUxR2x4OG1ZdjN2THBPV21TZnNHcWFwUDVneTJ5VnYrdEVSVkw3Rk1MbG1FWDY4SU1xc2xBNS9ZUWhKRUNZNGlMQ0JTMm5sTnp5Rm9IVlBvZCtUYkNyNUVOTHZuSGc2allRZVIzSGlSL2FRMnRYWXBsNnh6eUR2VDBLZDVhNU0zdmc4L21LQ3VSK0V3NFlaUkpUWVhzTjNla01BOHNMcjd0WjVjODlBZ2xnMGJ5UUNSTW9tVXJTaW4rMzNDTGhGU285UUZPbDVLTDYrc0lKVk1zZWVnUlpreWFpQnlveGwxU1lMZTBZMjl1UStmc2d6YTc3UFl1Y28wdGhLYWQwRzlEVzdTazlmaW1lVmdWWXJ3YTJpR2dLL0NBeFFjREswQmtBUXNpcnNEdndpbW5TS1pObHB4Nm9tVFlZRUVnQ0thRVdBS2FXelR6bHlsZWZWTVJEQ2dhbS9VMnJPMytXTzd2a0s5SXdlWjRqdHRmYW1ORVJZQ3hWVjdkbHhEYklsUUZIVTJhaEl0R3NhQm5EYjliL2pTMjY5QTdCcjQ0L2hxRXRBcnhwUDZyb1pON0VEUlM3TGk2UUhpQUxtSlhaMUpUVjVxZlA3MldnTTg0clBWOEEyVmZDRHpnNzZDWkpadnFJaXl5REFxbTZOdjRPb1oxQVdSajlIWjFJd0sxWFAvaHozSEgzZlB4QXYzOUhIL1hoUWlYMXNSVHZlVHRISldsVlNpM0I5dXhDUW9iSjdzRmFSVmpHaGJaWEdvN1R4eEpnMWdEeWpEWTNKMWsvZUtOakQxekpEMk9abFhUSm5KMm1GSE5xOWpTblVRWnBlZ0JiQmpqYXMydHdRckdHMzVhbFVPZmRsRzdUY3h4bCtnQXJVM0R4TzFzUitleW1FT0drWGxySnFFTHI2VHZOejhtK2ZSRDVKWXZRdWZ6NURldUJhVXdLcXVSNFlobmt5Z1gzN2hKWkJlOGRZank0ZGlxeXpVT0FDUjNXM1J0NnFBUXozMW1CRU5MUFgzTDJ1MGExazRkWDRhVytuanVNeU5vS1BPOTQ5akJrSEZRMzkvcE83LzlEYXhkZ3p0bUxNYTZkYUExN3VqUkdHdldZSXdlWFhCczlsOEMxVFB4dXcvV2FZbWR6bktTZlM0L21kZkI3RG16dVQ0L0R6UHZNSGZ4S1R3OXRvSnZuTlBKODdHL1l0bUJnOFpiT2VNZGRzTHhRcHZqOVA1UzZJWHc1T0R2SHRsTVphbVBiRTdSdURYTjVUTXFBY0hUYjNSdy80dHRCUHlTenQ0OEYwMnJLTWpvSTdlVGF5RXdVamt5azRmUmQzS09EYmQvbGFMdlBrYUpUOUQzN0d4UW1tSmZDQ1BrUXgzeDV2WmVUcGRTbW9XTDJrRnI2dXRDTEYzYUNjQ2tTWlgwZEtkWnVLaWRzODRhakpTaTMrYjNtTTdmT1VCeWxNdjhsdFYwcCtNTUxhNG1uYzh5ZjhzcWhwWlU0ek5NQkxBMTFzWFN0ZzMwcEdPY08vd2tLc01sR09JSTVtWUxnVkZXaHR2VDR4V3JBTmcyUmxuWmdPVEUvYit6QnUrM1hWb3NiZHkrK0k2aUdOZEY5Y2FZWEJkaStJejZBVmxTZHh3WHlEc3JweHdOaHBPVWNOSll1UGs2dU81OHFLN0VDK3dWbXI5MTJCYVA5Slp6WjJjVkdyaTVzb1ByU3J1cDl0bWdvS29jYnYyUTk5MUhYb2EvUEFvTFYvVVRCcjBRdVBIRTl0ZTdUNWRVR2gwT0VqNXpPaFdmdkpIb1dhZGhoSUtGbXJLalNOZlRHaWVSSXJsaXd6dWFMKzNYMTVVaXVYd0RUaUtGRVFvY3RPeXdEcUpoNDdaTW5DeXdDYWpHYTF5VDJiREJFeHRLMFN3RW00UWdCd1E0aE95ZGZtcGNnQktJc0NMM2RESG0yQ3dvUWZEajNRQWtmMXlMc3o2QXN6cUEvL0tZaHlaNmhOYS80YVpvdi9JQzlQblRDV2NkTm4vN1U3UjI5WkVhV2tVNGtVQURpYXZPWXRsSkU3QXJTaWdXa3ZqNXA5TCs5akxLbjNnSjF3Z2ZVa09WUHoweWo1Ly83a1VJK1preXJnNFFMRnJkQXNrY1JiVWxBUHp5OXk5QmVLZmpxMW9nbGFPb3pqdCt4NTB2UWNUUGxERWVwdFNpdFZzaGthT29wbkQ4TDd0OWZ6K3ZIeWw4ZjM4NFZMQU5sMUxzMVYrcUhSZGhTS3pxU2pLcjFyTHVGNStpc3JzTTJ6Z0kvUGorVlhhSkdDN25GY1g1ZUdVUGsxV00rYStsK01kVGVXWXR5aE5QN250d3ZiMTlQUHpRZzR5cWozUERwUkd1UE4xUFRjeFAzejk5eE40MHNUdTlkWDlJcXBCaG9PTUpNci8rSTVIZi9SeG4rVXFpRC80ZDM4VVhrUHIyYmRpdnpjWThhVExaUC84VkVZa2NFbDhlK3A2Mm83NXZ6Smd4QmZWRzRicWEyVXZicUV2bEtmWUxsQ3IwUGhVQ3YzYnBrd0ZlRFRTdzBTd2xxRzJtTzYxTTd0dEljc0VTSWxNbWdXSGc4L3NaTTJZTVdoZHdkR1gvNnBkcTUyWlFSM2dQRzhoOEl5bkF0UlZFSW56QzMwalZGai9TdXB6aElRL1lmWjV4QmRXYlkzemMzOGh2SXhXNDJTelNGTzlld3kxc2dpSkhYcHRFUkdhL2RpS05RSktuMWEzbitmd3BWTW8rTnVzcXdqcExvMXREanNFVWl4Ulo3U09QU2FYbzQrbmNkTjdNbjRRUWFkUmg3akluQll3Y1dzVnBKdzdmWTN4cFp4My90Q25ER1RtMGl1N2U1RHZxNncrZmRReUdrRVROSUoyNUdDMlpidHF6TWJKdUhqdm5ZaUJ4dE9JUDYxOGdiUHE1cFBZa2ZOTGdTS0V4U1FIeHZNdGxZMDJlL3VPOW9GTzg4S2RhenlZR1h2aFROZVdudGZMMFBmZHk5bWUvd29OTFhVcUNKdjBCdWZKRXg1Tkh0Y2x5emtEeGlGUVVCdzAydlJWa3hpY2hyMXhpR1NnT21kaktaZDF5V1AxeWdKNWV6UTMvbGlGZ1NrSVZrcDdOc0hXcEgxL0E4OEhzU3kxZTg2MmZIbHZldTBOY0FFcHBMTk9rdExTRTFhdFhrY3RtdWVpaUN6Rk5vN0IzSFkvV0hVdjA3QzMvOHI2NzU3VnIxL0svLy91L1RKMDZGYVVVeTVjdlo5bXlaVWZkT0cwQlM0c0VHOElTSldCendOTUxucW9CcVdGRVNqRXBydkVkRDBFZGdBQ0VmRjVRVTJTejhZMGtWOTI2aVJkYXpxYXN2b2RUekVVOE5MdVVrZ21SblV1TWpweVNJMENuWFZTdmpYdmJLdlJWZFp4NWd5RGNybkdVWkVLdHdMNi9qWTZWbXZSSnc2bmR0QXFoampQRGZ1dGxHczlYZlJSTVdTYm4wTnlXb0xNblRTNnZhRzZMMDlXWEplZDRHTzVhbTZBTklsYVdpYUVObkZhOG5QTkxWekN4ZEF1aDB0RzR0ZGRqRFQrRGNNUHArT3VuZ0RTeFhVM3oxamdiV21LczM5ekgwalZkTEZ2YnlZcm1QbnA3TStDNFh1emVaeUFqdnUzbW9kcURqYmp4T2xCWjBGbXZLZldlMHBkMnIzVXhBaEE1QzBvL0FtNGZ0UDhFM0FRVVgrNmRFM3NhRWk5RDliK0JVUUs5OTBKeUZyZ1pFRGFvSkRnZGUvOGRZWUh3Z3d3ZSs3eG83QWNUYWdEdEVqR0QzTkJ3UFdYK1VwVDJuT29hVGNBSUVMV2kyOCtQV2xFK05lcVRaTjBzMnpweVNDSHB5Zlh5UU9OOW9GM2s5dm5VaHlTclpOaWwrUEl1VkU0U0tlM0Q3VEdQT0o3NG9ZaGVCR3p1RWJTa2F6aWh0b3JXM2k3NnNwbGRmSUVDUVY4bVEzbFJHYldsRmN6cTZFQmxrd2ovd0lzVXBRRlRzelptTWNnM25tZGZmSkJ2L3R1ZktYNXNOVEZYUUQ3SGw4NGVqNXVPOGFlNzdpVVFESEhMelIvbTA5TUg4YjJuTnBPVEFVcExETTRaS3ZuTExKdkxQMzRyZjMrdUhTenJvT0ljMy96TUdjYnVYeE03emFlcjlBNE1VZUg1RW5hM0ZTelRZRWhkOGZaK0pVUHFpdm5pVGFkaTc1WVl0dXQxMVE0K0UxNXR5eDU4R09MaFh4MEVIMmhCUkRwY1g3eUp2L2FNSU83NnRqdDJOUkJYRm10eVJUellOOVN6QlhORnhKVzE2N1BYZ3FpUjV3UEZ6V3pPaDdZMzRsNzg5Vm1jK05Nemp3cS8yVFlNckV5dnkzL1AvaVc1OW01MGpjVnJUVFl2anhqRTlKN1YzUGJtTE5wSGorRUx5YzhVTnM0RDE3dU9ac3JiN3k4Y0Y4dXd1SGprcWRSR0tuaGs1UjlwVFhZTktLYU9lcC9NcTlhS1ZMeUZ1SzVoWWJkaWxBNFRQdWxTYXRNdnNiVjlFL1ZqcHpEaWhCUG83bTZrc21wa3Yvbmp2enhXNzJrWDgvWXJvUkM0YUwwTjQzTHZ4bzBRQXFYeTlEM3pKSmtCakJXWVVSY3h2by9mdnRsSmNFcWFqODJvNG8rUHhuRXpOaWQ5Rktibmt0U0hIZEliL2FTWFJSQm1nUEdFcU5GUmFzMEE5K2JhMmV6bVlZQVF1OTV0RDlSYWdNK2hMKzNucmQ3QkZFZTh1c1pZS29RdjZLQlZHaHpOeGVkTjRGUFhuc1Q1SWtIK2QzK2w3WWxYY0dKeGpFQ2dVT3lzZHBMZkVqZVRRMmxGNVVWblUvS3A2M2o3eEZMK3V1VlpubG85azc1TURLeUE5M3oyUTdFcXpiOXovS2JoTXFZdlJOTWJBUmlieFVrS1FtSE5scTJ3WmdPMGQ4SHlWVURPeStGQUMzSjVUZUMxWW9ZTGlaMjFFUU1WMno2SVFLSkt4MGk4K0JjU3ovOEJGZXZZZm8xOHZBdW5hek1xbTZMb3FpOGpROFZIMXJaemNyUW11bWhMZE5PZGlSUDJoZWpMSktncnFxQTcxVWR2TnNHYXprM1VGMVZ5bkE1Y3NkQmFFNHlPb0tldmd6ZVhmcG02K2pqSnZNbk14ZVVNQ2Q1QmFjbGd0TmJIWm5QYWZxSmpEWjhlQVRwdmszNTFIdjdKWTVDbDNocldqdGZBMHhwV1QvcTFlZVJXYlBCcVRIZUttVXMwZzV5VStGQnNZK0NrVE5mRXA2TkR2djFLcVA3OE5pdDhweVBjRi9LSW1KNythNWM1WDN6SHp5WnplOGU2R2pXMG5Ndk9IYysxNTQ4RDRKR1hWdkh3aXl0WnQ2bWJJeFZjMVBsQ1h3amhnL3kyUWV4a293clRBMGNIcjhiRzJXMWZjRFFJWXdjVzNBRG5Cd3cwM2dpOEUvZDkyN0lmcUZzVFFIRk9IaFVtenY3Vko0bjlPaTc5RmpxWnhFM0VQVDQ2M2xUbTRMeEoyb1d1SllER1RSb1lQaC9Cd1lNSVhYWUIrYzRPWkxRYzhnbzdFL09jbnQzTG9QeUVRMHl1MmovOWR1M2F0ZnpnQnovQTUvT3habzNYQThZc2RPRytMZFhHUWp2Tjk4TTFSSVJCQWhmZEl0RktiSmQzblE5S0lpZmJGSi9wQVFvS0N4SnpMWklMVEdvK25jVUlhZHkwd0l6cUEvQUhlaGRYSFhjZ3dxY2l5ajZNamoyTHJQdzhhc3ZYUWRZakl1TVJwa2xxN2lKYS92MS9pTC8wR2pJVUpsQlppZXU0WHBYdlViemRDMEFwaFQ5Y3pJa2pKMko0Q2pkN1NqclFRRHlkWXY2R2xmejJzYjh6ZDlVaTdId09XeDE0TFhQMnJTWEgxT29KQklOczJ0UkViVzB0OVhWMTlIUjNzMzc5ZXNhT0hZdHBtbXhxYXFLbXRvWlEzUmd0RFVNZ0ZOZ1paTHdUMnlyaXJiWWhETExhS1hhenVMcWJvZFVwd242OVU3MDhPRnBpcEh1b01yc1JhSklwU0dRRUhicWF1dnhhUm1VN01hUW1sRzNtN2FKcmNjM2dZZC9mdFBBVzExTlBuc1BWbDczSTNGWGpJQnJpeklxN0NCVjlIVi84ejV3NTVoV2VmUGdVZktOZjRvT1hOZkg4SzZlUTdnbGlGT1Z4WGZIdTBsNURXUlJ1UE1OUFRWUlFWaXlvTDVmY2RLN0Y0RktCTWdSUEwzQ1l2OFpCQ2MvL0xBenZmam9UaXNlV1dLeElUV0ZPYXdzM2JuMmNFMUpMRHZ2eTI0YS9HRGo5Rk9yKzR4dEVway9kcHkxL1JHV0FBS2xnY2kyczJnckNFVlQ2SVY5ZlNjVkY1NU5aME91NUNLYVdFdjk3T2FuY1pvcHlBbjhmcENaQzBYSVE3dUdlWTAzRVNsSVI2RUljb0Q0ZzBGUUV1b2hZU2RycEh4dkNPWVFrUkswMWxpbUpscGR6U2lpQWlCYlQxZFhGQlpOSEVZMldZQm9HanFPT1dNTmxaVHUwTFY3RmhoZG0wN2VwNWJncTlSNmtkOE1vRlFXYlJWUlhrWlpRZXNWVlpPL04wTnZaUzNSa0dmR3RhWXBPdXh4cjRuZ3kyc1VzS1VaMDlTSE5BYXhmUGNieSsxem55UGorRk9BTTBCNVhGQWhURlMxalVJbFhiNTJ4czJ6c2JtRndTVFhGd1RBWk80OGxEV0taSkFzM3I2RXowVU4zS3NhZ2tpb3N3NlNockphZ0wwQlBPc2FtbmxhcW8yVzRTaDBjendpd0hZME1lUFd5OW03OXNBeERlYmdlb2hpRTR1eVI4L2p1Mlk5ejRRa0xBTTNzRmVYODVxMGlabTd3NDJwQmtWOGhoUFpLUFFZOGlDNFlYWnZsMjVlMkVmS3A3VGkzbVJWSnV2N2VSbVpsYXMvbXNpNWdLd3FCTENyQ1AzbzBrZE5QSjN6YWFmaEhqMFpHSW9kVmlUaDkrTW5jZnZuWE9IUDQxSUlKY2VUMG5ZQmhIN2g1dk50SHBsQ1k4akJGRFBPN2pUZWZ4NTc5TnU2R0pvd1JEV0JJZENxTnp1ZkJkblp5SWgwWk9iamR2dkNaQjI1ZmFJM2phdThjWSsvK00wTnEzS3pKUS9Oei9PU0w5WHg0MnVYRXU3dW9yQWp5SDc5YWdFcTNZWVN0L2NQVHBXZy9oUFRSczE4Y2EzN3l2Zm43aE5ZSUtUSFFhTnZHR0RzRS8wMGZRalUxSThlUFJRUUMrSzY0RERseU9DcWJRMjlwUmdvUEwwaUtBcDZFT0o3THJ3OUlqbmt4cHJ2KytVczYyenNZT213VXJXdnVRMC80TXVtS3dYVDdwaUNBc3RvcE9PMU5MSHIxTHhUUCtCcHZ6bnVMRFUxcitQbjM3dHBocng2QnVYYzFQTGRKTTc5REl3WE1hZmZ1L2ovZVZDZ05wMVFLTGgwaU9Cb3laVUord1psandveXM4dkpXaTRJR0FjdnpsMTV5UXBUVFI0WUEyTkNSNTdubGlTTStYbUZDYUxoTFlKQkNhTEFxRktHUm51Q3J2RGlQM1NYUkFySmJKT21OaHBkajI4OTZvNys0RjFPNi9NdmZQczl6ODJidzJNTHBSQU5wVE5NaG40T2NOamszMHNOWE5qL0NqUGdLTXFVK0V1VmpDZWdCRk5DSnpuME9YQWx3K2l6cXZ0Uk05UmUzNHZhS0hVNnJkeHBVcUNSY2N4NVVlZVhqZEd6MVBrUHV0TlhzNzNrREtWczBLQ1ZvYk4xS1BOZkg4cDQrRWlwRmUwclQzRkdNMG40djNiQy9SWUVRQ010UGFmVVFZa1gxTkpRUDU0U2dudzdIWXEwcUp0UGJUcWlxd292NUtCZWpxcEtpajM4VW83cUszdC85RWJGZ0hwYmVwcmdkV2QrYTFwcjJaQzhiZTF0NGFyV0hSWGpGMk5NWVhscEhkYVJzbnpIL1EvMyt2bTBNamFXeUVGYW93UUkzYUtDVUI5WHlWa3p4UUt0RElsVE9SODgvRHhBNEtrdFhTeC9ESzBNMHJ2ZHg1NTEzVWxKU2d0L3YzNTdEa00vbHVQYkdEekwybG44am4rdWw5ZFZuS1JvK2ljR25Ya2JuSzI5Z0xGOU9PTk9IcXlSS0d1KzZsZlMzdjlweldHajY4Z0hTcmtraTNrTWdyMW5iYmpKbVRKUTFqbVRTMEdKNnNwcDVyVDVHbFpxc2FaU01xZFZrNHlsU2RoaFUwSFBrNm9FZjcrNzZyOVpnK2swU1c3cjUvTjNYOExsYnVpaHI2MFlLZzBERkdQN2xMOWVRMk5LTldmeE92TXJqZE9USjZlekJidTBFMXdYRHdPbm9JVFY3d1R1RXFOS0NuSkprM2NPcnpSeHI5Ykd1T2xnbWR4SEJrYWpFQWxUblg5RjJKOEkvMkZ0elhZOGlyQXBrK2JYSThFaVV5c05BYTVWYW96S09WKzlrZUxrYXBxR3dFMEVpWlFuKytZMkh1T1RzRGJneHozZHFHZnZuZnpDa3hra0xUcDNVd2hXbnJlU3AxeVpoRnFWeFhIa0FROU00amtOblp5ZFBQUEVFZDk1NUo1czNiOTUrZk1ha0lELytRZ1V6VGd4NmVWRVp5S3hReEY1MXlheFFxR3doVmVCd3drWnM2NXVkaHRWOUJ1MTFncXE4bitHMVpiUzFkTExjVWhSM2dCd213TGVUbWlBRXdyUVErQXFZV3Vxb3lpb1Job0YxOG9rSTB5VDM3SXZvUkFML2RWZmhQKzhzVUpyc1V5OTR2WnFIRGNHYU1RMVpVb0lvTGNZNmVUTDVsMTlGT3c3dmU1SUNyVzE4SjAxR2xwZURVdVFYTGNGZXZneGhoVHpadlB1bXV5MS9UNEZSWDBmMGk1L0RxSzlGQmtJay8zQW5iby8ybVB3dytUYTE0MExBaittNGJQemc1Nm45OGJmNTY5Ly96ckFSSTdqdHR0c0t2bTBEMTNVOXZCNGgrTUVQZmtEVGhvMzg5ZTYvRXh3MmhJMGYrd3FtNHlDQ2dVTGU0a0g0ZDdiMUNwUEdkdHpyM1ZSNVpFRkdhd1JxdDNobzNuVkJnT1V6OStBYjF0amE1S3E2aHppMzVnVytzK1NYeE94aUFqS1AwZ1orbWVXRGcrOW1ZdkVTZnJQK0cyek5ET0szNjcrT3o4Z1JOTk1vdlNlQlkrN1YxbWx0eTRQV2RQVjU0M1d5VHFIWDh6dHpMaFZnWTZDUGdpU2ViZTJ3aDVvMlY0UlNYQkZPNEcvTGNQOUxXZTUvUHN1U05RNzdzK3diNmcydXY4REhCeS8yVVR4OEtBOWx6dVArMWd0WW5CbU5yU3dRKzdIbnVOWXhKUW9PT1BxMkU0NnRMaStsK0hPZlFaZVhzT0NacDRsVzFWTTNZaXpTTkpHMTFaUjg3ak00VHp5RzZPd3MrTXNPdlpiN3d4K1lzUjJEeTZ1RDltcG1sVkxiNndyVlhvNmJBcUx1R1Y2Zng0Rmkyei85L0tDL2Fra0kreVRKbkNMbmFFS1dKQnFRaktqd01hMGh4TXJXTENHZjVMVGhJUlkyWjFuVG5zTnZDbktPSnBsVGhIMFN5emcwR0xaamJYNTFvUmhZYTQwVkNGRlJNb1Y4T3NHd2FTZVFTWFJSTzJJeW5adlhVOVV3R2VYbXZkNENRdEJRRythSFg1anN4VWdHY012NnhrZDMreUNWZlI4cEdoNFRORzFPc3JXckNpRjZHQnJjUlBES3o1QS8vU2JNaGhIRTJ4ZEI2aTZjekhJeXNTOFFMcDZNN3NmQ2RGY0xaaWJLbVpjcXBzL3g4WEJ2TFdkRnZFNk5EL2ZXMHVYNG1KY3FabWFpbkJ0THQyTDBGekNrMUFjOFU5clZLQlFORGFVQXpKcmZ5UDBQejZldHJRK0EreCtlVHphWllmaUljbThkdnE1QWE2L2Z4eUV5OFVENmJRU2dsVXNpVll4VXRjU3lxNUdpQkVOREpPem4zQkZUZVhQMXE0U3RLbnJzYW5DMkluekdQbFZKMHpRWlZWUENzK3Y3YUkybFdkYWVvaWdVd0ZFcE5yWnRKSnZLRWcxTTUrd2hGNUZ4MnNuSFY2UHplU1lPQ1ZOZWIyR0dnaGpoQUhaZkFoQllKUkhjZEE0bmxhWjJTQjQ3YnlNTUg4SHlzU1NLejJadHNvSWxqVjNVaFFVajZ5cDIrQ3lrUVUvTzZ6WFZYd3FOU2d2Y0hnUHJ2Q3pCazNMYnpXOWg3Y2pmOEEyM3NRWTcyOHg1TWd2OVpCYjRVZWxEenk4eURNamxOU3MzdXZ6a3F5RysrbjlwYWlza04xL2pwNnhZa2tqcC9XTHFiV2IyUU9PdG50WHh6cnhwdDBXVDI3MWZvZkQ2YmU2OFAybWwyYnVDS0JERlJmaXZ2UXdzZy96VEw1SXAyRWZPd3FYNExyOFEveFVYNDI3Y3RJM1Q5MnU4OXI2Y0FXSlhtM3ovSk8wUmx2Wjdhek9xQlVKb1RxanBZSEp0TzBKQXlMUVpXZDVEVlRqRjFuaUVwOWVNd2xFN2FuU09oN2EzK1NNbGZyK2ZRQ0JBSUJBZ0hvL2o5L3Z4K1h4a01obGNOK3pGUUxSQXVRSWgvZHh5Y3kxU0dydzl0d1hIU1c4eitYRmRsMHdtUXlBUVFFcUpsSkxTMGxLeTJTeCt2NzlmY0cwZEY1WnNkR2p2VmF6ZTR2THg4MXh1SEoxbmhEL0xQWjJWdk5oYlFyZGo3bnlEWk93ODg1clhNRStzNFZqdEppWUFWMmd5cGtiSkhXVWlqa1VCVDZXQXNTQWhMeUVQcE1XN3VBUUxjaXU5YWpHanZ2bGJUcjMxNDRDZ2IvQVRKRFl1cDV5emVHdlZDdjUyd3cxY3RXSVZwL2hNOHE1YmlFRU4vUDJhZXVmZGYrL2pmL2R6ZGp2UnN4RWwxYjRzMGNHRCtkUEdjVFFYOWJJMjh6Z0xOeS9rcDlPZXdPOHorUGFpbTNHell3aFpKbjlwSE1JTndTM1VxMTY2cUNpVVJ2WERIcXdrQkdEWTROZFl1dllLcUUreWRlTm1WSDREYm8wZ1hqa1VTWXB3Y1JvbldJTGRsMlhVeUZmeGhUVktIUjVQYjFkWEYvLzExYS9TR1E0ampvRkdWMElJUXNFZ1ZWVlZuQmdJNE85dG8raWlLM0NxcXNuTWZRdW50eHV0Rkc0OFRtYlpZcUxuWElCditDaWN6bmFDRXlZamZFSDhtK1l6cFhZMGxiNHdXV1VqaEVGL1ptTklJSWRnMHBZbDNEVC9BWDU2MnNmSlNtT0gzOFBjZnhHMVBmNWVHSjQvbitTbStROHdhY3NTY29idmdPSUJBN0hlM3ZsOEZGcEgrY0YvdnN6M2IzT3BHSE10R21oYStnai8rVDl6UUpjamhVdS9ZeGdLUVZBSWlxUkVBaUVoNk4zSFY0SkNVQ29sRVNrSkNuSElHc09mTHYvalViMTJQajEvMS9melZQS2dOaWtoUE9WejZ0bHhJbHJ5K3NNUnBOU1lTZEJtRmhUNC9acUtVSjYxdGIxc0lJaFFla0Q5K3RtOFlsTm5qczY0M1crOEphVmcvS0F3a2FCSlBPUHcxbHI3aUdIcjd3SHZiRUNjNE81TzE1VTRDT1VVYkVOQmk2aWdSZFR3c2dDUnoxRzN1cGV4cXh1WmRPODhUdkRiakJwV1J2MUpZeW1aY1NxaDZkT3d4bzFEQm5jdHBOU3VpMVl1L2tDUXdUVW1qL3pzVEU0NCszTTBuUG9SaWdPZkpsUjVJc0hpWWJzSUpYRWttM0gxOC96dUxsdTlCdGVLaW9vdzExMDNtVFBQSEFSb1huOTlDNDgrdW83VzFnUkN5TjE2TytnRDRtRXY5dVlsVWFwRFhCeml1RlhWYi9UTFN3ODF1OGlGek9PSWhUTVI0VEI2VUF4ZGxuNzNEZnhBYUdYL0N6R3RGSy9PMmNxcTlTL1NFOHN5NDZSS3RLN2hpM2RKZm5QejNadzlZZDBSQXhVVkJmNld0cWFod2MrRVlUNW1MYzV3MmdYUjdZbGd0cU9adFRqRGhHRStHaHI4U0R1L1U4UDRnYWVrQWQyV1lPUkIzbCtYSlVpK1QzQVFadzBKSExpTTNwYVhMelM2VEJLZWxtTGlvQlNHNGEwbjU1bzB5MXZDcEhxRGlIclBNai9vWFA1MTc0L240UFQwa3A2L2hMNm5YeUl4OHczeW03ZWlYWVV3anM1OTNSQVNnYVF0MjhXYXhFYW1scDdBeHM2MWJEbnZ3Nml5S05GRnJ6RW80QlgrYk0yMnMrR3FUeUo3NHZpV3Y4VFl5bkdzU1d5a0xkdEZRMmdRUW9CN0JBU2F6Z3FjbFJhMjVUdG1IV0tIYjdMMmtvS3lhMlhkdnMvWnhmZWo4SVhDZE0rWnc5ZitmQjRmdVQ5RHFITTlhMy9lU2RCZnp0b2ZmQk94MmMrUHYzQWZYM3pLWkpLL2xMaFc3NW9pYWU1ME1HK0R5aGNBbDRWM2JFaTlRY053ZzBzdkQ0Q3J5Y1ExVFZ0Y2pHVlExMlN3NERGSlFFcm1YRDJZVFlzMWhoQjhZRXdkbVRqa1drMVcrblAwR1FKTG1EaTJRMnRySzYydHJiejg4c3ZiZGIrR2hnWW1UcHpJeVNlZnpNa25uOHlFQ1JNWU9uUW9obUVjNTZNanBMTW9MV2dJWmJoenduck9yWXlCQzNaZVlHNERzdFlnVGVpTCszbHFab3g0ZkJPUUJ5SHBGbW1hMTNReTk2VU5JQXlxUjVSejl2bDFmT2FMRTdqcFkyTzUvWWRMV0xHdWwxalNUM0UwaDNMWUh1QzI4NEpLbjgzOVU5Wnk2NkEyUHJWeUZFM3BBRUljUkNpNWNjMk8xNVcxaEtaUHd6ZWpobnQ5Qm5jdjFvZko3bDUrNko0L2JaT1Q0MGhIYnNVMXg2SE1ja1JvR2xMWlpPelI2T0JpdEE2RGNoRFNoOWk2a2RCemQ1SS85ME1FWHJrWDMrbzVVRHNjdzg0aUc1ZUJZZTUzUXVRM2Yvcm9BUm1qclYxeGNvWGlhTWRSUFBUOEl1WXNhVHBzZ2JNdFc0NHR3Sk9XTy8rQkVRNWo5L2JSOWNSenpOR2JXSDVWR1VlTkZyUHdBRzBkQkdYRlFRSkdtSUFWd0RCTnJHZ3hjdFNabEllSDRibzJUaXBCeTZJNURLa3lNWU9LVkpkTHc5akJqTDN3ZW55V1NWVlZQUnJONE5JaExESjlXSWFnb2lTRU9KeHBuZGRjQXhVVmNQMzEwTjYrNTNPcXErR3V1K0NNTXdiY3g3TXZ2Q0pYZTdYNVQyeUVxNStDMzU0R0s2K0J4NXRoVmpzODFnek55WUp2YUhjSlUvaE1GbkpFRDlhZEU3ZUxlS1h0ckYyeFJBVTBKd2ZSbkJxMC9XWU02WEpPelJ0OGJmeHZtQ0hlSVBXZ1p0T2pRZXdPOGM2Q0JBMWFnVld0S2I4bVQvZ3F3UnY2TEg0Mi93dk1iRDhEVjhrRFVrWG50ODQvQk5lSXd1emRnTEVIM1Z0cHhZYmVEVGl0YzkvWlVQMHdPZ1A5RXE2cWtYeGxtTW40eVA1UFRINWRodmcvdThndVNLSjNBMk01WktxdGhUUDN2MmtGeGNVd1k4YWVqOTE5OTN2VFhPRGRYV3dIRTBlVGhrVGw4dHoycitjeWZrUVZUNzZ5aGtSWEFvSStEQ20yTjJ5U1F1QXFqVXJuaVpTSCtkOXZYc1NxRFoxY2VPTUdwTS9jbzMvM1pIZjlBZDFiSUc5UXRONGtVOXF5bjJDelI5OERNa3MxSlJmWVJDWTUyei9yZTlGM3hQRnR0UWFud3lDN0VsUks3STdsZkZqbzlkVU5SL2tEN0Q1dTJCMEpraEtWemVJMko3RnFxdENPUTI3TFZxOGd2YTJENElReDFIN3ZxNVIvOEVvQXdtZ0krZzc3TUV2MDNoTGdsWWRZNnJSakoxL0NLdjh3NkREby9CNFdtUVo4b0JQZXVkRVo0Qi9oVlY0ZUpvMWVhVTBtNXlDREZrcEJPdXVBY1JUSVd5bElweDFlZm1FckJBMkUzQ2xaMjVUOC9aRm10clpud0dkNFRiLzB6dmNrd0cvemIzZGV5RXZMR3JqeXBQVkVETGhoL2tpZW1Uc0tBbmt5amNQSU5BMGoyTkJJOUtRRmhCb2FQVUM0bkIrdHdSMEFJUzJFeENvZVJHTFY0NmhjQWlOZ2VzcXFLQlRNNlYxam0xb3AzS3lnWk1vMVJNZGZoWnZwd1FpV0lYMFJDaWNmZmwrUEVCZ0MybnNTUFB6YUNqYTI5ZkdaMDRaeFVYMElTNHJqYnQ1dFp2QkR0OUs0cFpkSFhsckZ1YWMwTVB2dVcyanRUUExXa3MzVVZVYVpQbmtRQzFac3BhTW54Y2V1bk16SHJwek1pdlVkTEYvWHdXa25EbVpJYlRIUHpWNVBjVFRBYlY4NGw5dStjQzZ6RnpiVDJwbmcyZ3ZHSVlCSFhsekpsQW1EK2NZWGJxQng2ZWZwODhYQU5QanFCL01rbkFCUHZiYVJjNmJXOC9aOW4yRnpXNXo1SzFvSStpM09PYVdCWU9BLzlxMG5aTE1rbm5pSzdPTEY1RmF1d21sdngyNXFJbkxCZVZqREdyeGN2UUlQN3B6blhSV1dWQTBQTTZURXg4eE5uY3hzV1lsVy9kdENhZndUdnovZ2ZjVUk3OGdERVZJeTZOdWZvLzRidHd3TUF4VGZzOHZiSC96empvTVUwQW9pSVhxbWxUSnFVNWFhWklqbE9vS3ZVM0ZhVDRLbVNKNmZUU3ZqOXQ2MzRhNlp1elFvNlJmNzRpQ1VTNjAxR3MzcTNrWjY5R1pHeElQRWxaOEZ1ZFdjMkwyT0tYVW5JaWcwVUR4Q3VSeFNRMTNhNDF0YlFtTlU3K0tFQ0k0WlFmelB2eVM1ZENXK1FiVjAvdnl2RkY5OVBvSHhJL3B0anZmcUZOTUM0U3RCRmsyaWErVmNtaHFEa01sUlczdzZ2c2c0VWs0dmZxY2JFU2tHM21SZ0lHQjNwVm5yeGh6VXJkaU9wRDdZVGpSVlJsVXZKSk5yOGVraUFzb21KeHltOVBrb2lsZVNiT2hpOWZxUldNYkJBaldzZVIvdU1qdWtydFkyVHE2UGRNOEsvTkhCS0RkUHJPMHQvT0U2OUM1NXhXTEExMVhPRkx3d3ZvUjFsOWJqYjNrSi9lRHplNzhEUTNwZ0ZrL1BHOUJHSkx0UG03M1NKUE5RZ05Bbk13U3Z5NUgraHgralNwRjd6Y0tvZHdsK0pJdXp6aUJ6WHdDZDJyWENRV2p0L2FGeHBVRXlGS0c5dElxbXVnYldEUjVKVTIwRDdXVlZwSUpoWEdsNGZ1akNkd3psRHBoOHFEdUM4cUgxU3djR1JxeUlNRXh2NXZMMDJ6em9PNThSRlp1cEtlN2xuM1BQb0NOZWpOS1NJZVdkWERQMUxZYVV0ZEhzMVBEQjlDc011MzBMVzBRbDhvQmJmUjU0d2JKUEttNCtZellORlYxODgrRVAwSmNPSFhnRm9CWkVneG0rYy9uVE5IV1g4N01YTGlLbjVQdEFOSW1kNnY3RU8xallteHF4aTEyeHgzUDJOcTFLWVFaRFBMMjZqK3BNSTRORzFpR0ZTYVpyQ3kxencxak9GMWkvTllVL1dvNVc3ajdsM2tEV0pRZ0JUdDdCWDFmT1IwNFZORzJaeTl2QnlWeWZlQXFsWWNId2F4a3hmaEkxM1hmemNIa0lPK2NnZGl0T1BsUks1bDJXdDZYSXUzcS96UHVNcldqcXpiRTFudThYdmYyMmpjOGRrSXlydHBQNEMzbmZsbmE1cW1zNVUrT2JCd3dMOGtQSFRkYkRTcmZjTWVjZGkyZGJmR0hFa0RJK2RQbEVKZ3oxR3BYcVhKN0VhMjhSZStabERNc2tkTlowNUprekNOUUpoTG1qWVp3d1RheTZHckpsbFVRRHh2YnZ4cDU3bGNScmI0RlNGRjl4SVp0cWh2SFAxemF5dnJFVE5BVTdaSC85WlJDMUhHYTExUENubWdiYXFnUDg2WlZCaUNLOWk0dFBDbzBFSE1jRVczTFM2QzZHWFp0R0xSVTBmU3ZzbldQQnNPdFNUQjNjdzRLMUZXQXBUTk5CYmZOaEhhZjlzbE9WZ0pwaWh5dFZTblN2OXVHUGU4ZXVYSjdseldFK0Z0ZGJ1UDI5NWU1SHJwa0lLWHpuMlloSWZzOUl2eHJ3YTBUWTQxLy9qV25JN1lVWERkQkpnZjFpNkxESGkxMEZTOWM2UERNclQwZTNvckhGMDczKzk4NDBWV1dTUzgvME1XNUUvK2JlZFh6dVh3L0c5Y0Nnbmg2R25ERURsQ1llQ3VOUEsrTGwzU2hETVRwWHlkQ1FwR2prU0pBQ3RYSXQ3Wi85MTM1eFFhVGVYTFJISFNXM2NRdWhxUlBRZWZ2Z1RDOE5tQVoyV3lmSjErZnZhS0I2aUdSWlIzZXVaTzY5YXE2N2dCOG94NnVrSHcwa1FRVEI1OEJKUWNubDUwck9tbUV3YnFqQU5IZVl4WU9CNFVNRW94b0V4UkY0NWxYSTI0b3RyWnE5cUo2SFRFcUR0Q1J6bTFMODlzMU9mblpsUFQ1ejV5YTBPek8xaTlhS3k4dkdVMnBGcVMyckwvZ2UvUFIzZFlyYS9XWUwrb1BlL2xhamRLSFdiS2VmM3R5VjVzNVhtempjZ1lxQnNpODBJS1JMT2g5aHcrb0ZWRVV5bEJDakxQc1k4MzBYb1d2cWVPUW41N0pwN2xJYVY4NmpLQUo5OGJ5M2YvVW53Mnd2TEJkWXBwZnYzNXZvSWVqbXlEblY1Snc4N1YyOWxGb0pYT1ZnbWp2VkJCeEJWVWNYM0w3cjBwSzZwMllTQ201aFVhcVk1ajRmayszWDZaamZ6ZnEwRCswYnVQeGZEVlJLazJwTUZGQWpUV293aitrMnlOc2U2WElueTEzcFh0YVhwZm5ZeHdOODd2b2dnNnJsdTREN3FVSk0xRVNZRmNqZ0JBaWZUall3aFNhN2pMZDdPM2wxNDNMZTduaU14bVFiT1NkMzZBeGdtamdkYlNTZitpZkZIN3NWNFErZ3N4a0NVNmVUZk9ZUjNMWVdFSUxzbXpPeE42ekZQK2trek9wNkVvL2VSK0srdjZMU01TOUgyckg3VlQ0Y3pYVzVOOTdkZE1EM0p3VUVUVW5hVnUvYXgzN2JzWkFseVRoZVU1aERGUkdmL2V3TEI4M0h0cFpVNkFRL0hyNGE0K1ZuMExmZjdxbmtMejJEZnZnUnZybGhMRjBpZ2lYNkQyUzZUR2NPa284RVF0cTBiVzJtWk1ReVBuSFo2M1MwRkdFZytQaVZzd2tQSDAvbmxqRFZNby9XcXQ4QXpXNy94OCtPRzZNRFNXZWRkWFNQNy9YWDMxZVBRd2d2TkY5VDd1UENhZVhNWE5pRDdXcSs4cUVHTGoydEFvQlJnMFBjOC94V3NubkJoZFBLcVNuMzdZSkJma1RHclRRcTZDZXlwcG4wOTUrbDRYKytSOHdhUWZiYlB5RllWSVh5S2JUeS9vNEdMVUpyalZLYURSdjZHRHUyakxWcmUzbjRrYlZlN3JyZlpNeVlNdGFzNmVHTU13WVZZZ2o5bzB5K0YvSjMzdDJuNDJKSWcxZzJ5ZXJPWnQ3ZXZJb3B0U09aMzdLR1JENU5MSnRDSUZCYXNiRm5LNHRiMTdHbXN4blRNRkQ5VVV0OEtNcTAxc2hRaU9ENTU1TmZ0WXAwb1RZMGRQNzUrTWFOUTRaQy9XNE1oLzd5dC8wK042MDBkbXM3T3V2RkhOMmVQbUovdmhlanBNakRlRHBPaDJRc2FkY3ArUDBoKy9yYmRIL3Jkbkp2TFVTRVE2aFVrdEI1WG4xVitwWFo2R3lFems5K25manY3Nkg4OW04Uk9QdFU3ektPZ3pETUFiRTlwWVNUeHNMTjE4RjE1ME4xWmNIWFV3aERkdGdXai9TVzhaZk9haGFtSXR0OS9RdFRFZTdzck9MbXlnNnVLKzJtMm1lREMxWGxjT3VIdkdzOThqTDg1VkZZdU1yYmZ3NTVFOXROMTVVS1VqN0IzSG9mYjV4YWgzRmFPVVo2RGp6OUJrY3JOSitiekdEM3hnNHVMcWpCN28zaEpqTndDSDFVRDJhLzNLbTNEUWtnWmhpNHBrbEpvZllwOXRwcnhHeWJoT3VTQm9JRk5qb3lrd3c2STFHZEp1YTRMS24xZm93aGVjeVJXWXhCbnQxcmpzeml0dmh3MXZzSkQ4L2hyQXFnTTNJNzN4OU9HYUdRRkxWMGtjL2tRRXZNaWFPd1FrRUc1MnhDQlR5d3dCZy96aVFMTWxsUUNwbkpVZFRTaFVJZWNvdzU4ZHpYNlUxa3VlZWxGVHo1cGxmNzlLdXZYOHBIemg5UFdaSDMrejJKTFBlOXRJSW50aDMveGo2T2YyVWZ4L2R4L1R1K2ZpazNYVGlCMG1nQUliN3hEbEd3b2NzRGc2a3JycWMwVkVZczIwZld5WEQrbUlzQitNM3JQNmNvVUx3ZEZGMTRQZmhJaFFUaHRPYnFwNU5jK29ZbWxEWkpHdDFITmhWY0MwWUVzbnlnckkvclMzcnd0U2E0NThVTUQ3MllaOFVHWjc5bFdWSFk0YVJSVy9qb2xRRk9id2dnbDFtMFBlOGp0Y0pBWlFSaWY4TW83ellacm9zb0tTYjMwR09nRlpGZi9RUlpWd3RBK0VlM1liL3lHckVMcmtTMWR5SWlZYSt4MFJHYzNHMjVPcXJRbkI0aGNMWG03VzRZWVZVeFdqV1IxQlphUUVBNXBLU1BQMGVuOEh4d0RKMHlnSVZpbnR2SHB6TjVydHphNGdVWkRLOEdZbHZUanY0bUN6Z3RZWlA0N28vWkZJa2MwZWIxZS9QMzdWVTlQb0I0Z0JSZXM5ZWhJYzFuUHhMbGF0OWNadlZxdnYzSkgvSGNDN2NBbXU5ODhrNWFIdmcyWDdxaWtacE1BMys1UDh1bXJFQksvYTYxM01PTlZnWVpuUXlSN1lCRXNPK3VzUXFKRUJuZXNFOWtzcm1HSGgzRlVRYkRqVmJDWkdsVFpiU3BVaXhjUWthT2gzTG5nckNQU0VNbUNReXFLYVcwS1BTdUdJTkNDRXFMUWd5cUtXWHVFZFo5K3ZJcFpuZXV4Rll1M2JrRUtUZEhoUytLSVNScjRsdW84a1ZZNjJSWjNOdklqSXF4bFB1alI0N25OUVI4SnVNbC9NL2RkL0hDbi95VTFBaHlCWkRja2hyQkMzL3k4NjFmMzhVL2J2MEtBWi9aYnpwbm1Yby9OYXdCTFRSQ0NXeXRHRHpPWmMzckFmNzBOVC9SYWdkSEt6Nzl3end2L2QzSHZIc2poQzJUWEY2ejlpMlh1bkUyVGJNMWs2ZUJFVkRvL1p3Mm5YOS9OU1JVU2lHbHhMWnRsaTlmdnIwcGdSQmkrN0hqZE94UW9tWHIrL0srMTYxYng3cDFSemNJcE5UZ1U5QVNFR3dLQ1VZbFBTdDRUcWxrYUZvekxuSEFmYXIyWjRHLzU1Kzk3VW8rZDIwam1kUGgyV1VWZERjTFduUVlNYVdJRDN5d0QzOUZMeW9ua0dGOVpPdDZUUWtwRzZUQWQwMGR1aTZBL1VnWHA1MWZEdG9sK1hBUHh1QUFUSzFDQjRPSTV5U2tYYStPWFhPYzNzMzBGTEErSkdndmxVZk5YT1VkaFoxemFlMU8wUjNQa01zNWFHRUJCbUV6eTloQUk5T0xWM0pSK1JKT3JFd1FxUnFMSG53NTVyQnppSXc0RTZPb25uUk9zYllsenFiV0JLdWJlbGk2dW9PRmE3cFl0Ym1QVEN6ckthTStBL3dHTW1nVzlGTzl6eHdJcDNQL1RIc05HRUVJbndIbG53RC9LT2k5RjdydkFqY08zWDhIdXdBOUYzL1p1MGJyOTZIOGsxRDdYNUJiQnoxL2crUnNjRFB2RHRHaWJlL3ZJRm9wSEgxNjYzNmVsMU41WnJYUFJpQzVlc2pWbkZ4eHlydTRYZ1JWZ2FwZFBwdmZOWi9IbXg5alZ2dHNjaXFQUVBRUCt3dU4wK2tEVStOdnlKRHBqUnl6ejBJQUVzMnd5bXFtTm96bTlLR2phRS9HYUV2RVNObTU3Zk9WdEhPTXJxemhyT0ZqcUlrVTgrYW1kY3h2V2t0anZCZkZ3SXNWUTBqY1RKTHdxT3M1dFh3ZFBac1c4N2NQVCtDYVA2MGtXQklpMTdhQk8xNTdtS3p0RU92dDVZNWYvSjdRb0VuZStzOG11UDl6azJsZU1ZZWJyNzZGYjgzSmdRMm1ENXlER1BqSkUrdjdmYWVNaHYyY09LN215TzBSQ05ibW8zeTB0QkZiUys3dmJhRFg5Vyt2aGRSQVV5N0N6N3JHRmVUb2JtdEpDMHFOSEI4cTNjU1o0UTV1UzU2d3ZjZkhpVDg5OCtEa3d3RFU2U2tOd29LMVd6V3ZuZkZSWnVSK1RhYmJaZFFKRVV3elFLWGxKejg0eFZQUkcrbFpra2Fhc3Y5N0NCMWhPbVB5bHFONmZJLzFNMXlyei9ReG9Xb1lQZGs0RzN0YWpvcEc4TWY4SHE0VUlBaUVTdW5OeEZIUldsN3ZLME5FK3ZDZmZCSTY3WktMbEJJSzVIQmxHU2FpMzVvbEQxNjFvVi92WlVpL2I2cTd4ZHdkZ1J0MkdYVjZrcXV1SDgzV3pjVnNXRnZQaUJHRE9PK3FRWXdvZVpqMGltNVNqZlZlYXJSUXBMUkxCTWxIclNycThIRjdwcGxXbFRzZy9hay9GVFpiR1FpZlRTempSMGlCc0d6eWZUWlYxVVhjZU4wMFBucmFFTVlzWFVUZjNZL1I5OVl5cENFeFF5RzBxM2FBeDBvQlN1TWtrMWpWVlZUZWVCWDZ4blA1UjdpRmZ5eTVpemVhbDRHVVNGOElwZFYreDI5dU9ETzB4MEZyTEZLTkkzaWdlUVZsVlpCS2VYa2FYNzBWdnZQZjN2K3BGR0FJd3FXYUoxK3krTyt5WVF5NXhDTHYrdnBQU3N6dUIzdHAzVHl5QzU5RDliWjVlZWpibVV1aWV0dklMbnFPd0xnWkJDYWZmMlI5VFYzTk5QYTIwaHhycHl2VlI4UWZJcDNQMGh4clkxaHBQYTVTck90dTV2U2hKeEF3L2U5UDJYa29hWEdGS3F0RWZET2p5aitGWlVlSWFJdnk0Z3l4MkdaS1M4cTgvZTE5N0JNNTF2RHB0L3NkTnJmUys1TTd5UzFhVFdENkpHUnhCSHRySjZsWDU1R1pzd1RWR3dlNTUyUUVReXZHNWZya0lEdGRQRFhUZGU3ajBhRW52QldxZmlZdmZYY0NDNWorcXp4enZyUmZHN0FoQmNQcVMvakUxWk1aMCtEbE9SZEYvQ3hhMWNyR3pUMjRSMG9oM2w1S3RqZGY1YzZmNzYyNThPRWIrK0hvZzdvelNTRlFoUVppMGpUZVdUOTVpUGRpYWtqNE5OODhyNXVrVDJPb3d5eG0vckhyMjFtcnR2YkxqV2tCdm1TS3Npa1RpUTZyUnlQN1orOS9aZFg3VFBJSzBBb1Iyd0IyRDBHcm5ONThEYVk1Q24zdENGVHJWdHBWbEp4V2xJbzJSTFlEa1dncTFBSU9USzI2bEJKVmlQTm9yYm50dHRzQUNJVThuZEhaNWdNVGdpZnljWmE1V2Y0dlhNZUpacEFlbjRNc3FLMElVRmxvK25hRTBIaUg0Q2lYd2Q5SlUvdjVET3MrRjZYN2NSOTEvNXJCcWxDNHlRUElHU3R3bXF6NWZ5REQ2T1FzMEhrMHhjaWh2d01zN05ZT3R2N2dKM1Q5L1ovZ09KZ1ZGV2lsdmZ6bVk0SXRCTnAxQ1lYRFZKU1VJYVZCZFdrbHBqOUFKdi9PNUFOcEdHQkdlSFhSRytUc1hDRjNUQjV3ZjlhZS8vbmpNYlY2MHVrMDFkWFZsSlNVa01sa0NBYUQxTmZYNHpnT2p1TlFVMU5EYVhFSkc1TUpYTmZCelBTZzQ5MjQvakJhYStKbUZaTWpzeW4zWjNBNmZQamRZcStmb1BUYWpxZXlrRTQ1K05LZG1Ob2hrNGJGYXdYdDZRQnVNc1pKcXBIejlYeWtxMW5KWUJMKzZuZVY3d09XMzRaWHB6cXFRdktEUzF4K0g4elFWUFE4Ym5vTks1YjlDK3Y2c3B6Wm9GazIyT0x0dmw1bTNsMUw5K0xoaUxDRDY0cjlXbkc1SEdUem1pdW4reGhWS3pFa25EYkdaT3dnZ3dkbTJ5UVQ2aDMzb3ZGOGgxZ1c2ME1UMlZneGpxVkR6dUpqNi83TTlWc2VSaDVxYi9mOTNlYzFaRTE0ZG55VWxaZVc0MnQ1SHYzZ00wYzlmMHVnUHVMMXBYbHVzZWFVMFZCZGJ6UHp4VVlTdHFkLy8vT0ZIb2FQc25HaTRQZEI4a1F3MW5rUDdmM3V0VE1QQ2JQZCsrN0VDZVBvN1d6QnplY1pPWFFRR0pLU2lucnYrdWFSeTJlU2xrblZDYVBKOVBTUjZ1Z2gyeHMvN21SOXIvazk5c1dmQXJTVTJFNGVPVzQwdVNIMWRLOWNqUmFDbm80T3lxZE5SUlZGVVoyZGFNTW9ZRkRMZnNVY1A1YnBqT2hiUis3QmluMS9kakJ1VUo5aEViSUN0Q2Q2cUFpWHNMaGxIZTJKSGdLbUQ5TXdXTkc2a2JlYlZqQ290SkpGbTllU2MvSU1LcW1pdWJjZHBSWEZ3UWliZTl2eG16NUNQdTg2Nlh6MjREbEc3SVNoSWJiNVN4UmFDOXhNR0tUaTdGSHorTzVaajNQaHBBV0FadmFLY243elZoRXpOL2h4dGFESXI3dytGSWNqY0Y0Z3YwL3g3VXZiR0ZlYnhkVUNuZGZFWCttaCs0RU9uSzU4d2NqWm9ZZm9RdDJITENyQ1AzbzBrZE5QSjN6YWFmaEhqMFpHRGl6ZkllL2F4TElwT3BLOU5NZmFXZC9kd3NhZXJRYzA1emdhYTAwUzM1b08vanozbC96aEFPSUR4Nm1nUDB5ZnV1ZTE2N3BlSGJOcEltdXJrTldWSEpGQzBBM3orOSsrMkFkZWpxdEErT0dGNVQ3R3p2UHp1WnRMcWFvcDR5LzNMdUxsV1IySWtMbmYvczZmOGYrTzZ1Zi90ZDNlSDJ0KzhyMnlwQzdrOWVGaHpidTlNZkp2ejBlM3R4T3NxVVJHbzJTV0wwZDJkZU4yZENJTnc3UG5kc0tTTzY1Q0hJaDlwUkJDc21qbGZObzZlN0JFR2FGOE4wVkZZYkxWSHlMamFDSUI3NG94OHpUMGlOTVp0R1VSYTVzWGtOTmhCZ1hLeVdZU2hFTFJkNjNCR2tneUJCVDdZWGszdkx4Rmt5bGd0LzU4c2ViOFFZTHpCNE1wZHRqOVI0b2NwV25zdEpuZm1LRWlhako1VUFDZnVXUE9xb3RNU2tNR1M3ZGttZGVZb2JIVHhqa0tFcGFrQmNVbk9rUW5PaGdSalZYcStWTnFiOGpoSmdXSkZTYjU5b0hwNmFhMElHRFp2TDFoREk0eUtLL29RR21ONi9wUXRrVjVSWlp2ZldvRUg1czZDWmsvallRVnh0U0s0b0YrMHJWRDMzWHhhUUhodUtUdXkwMkV2dGdHTVR6LzNUNldTRlVsa05ycHRYdG81eDJpZTJxUEtvYldBa09HT0hGa0tVLzBiT2FONXFIWVNtRDR0M0RDeUJGSUVRWXRVUDJhbmFWd2Mxc1EyVzZFWXpITUdjVU1NaGlwSHVxMElrK2FwQTFrKzNDZGVSaldpZDVETUMwaVYxNk9WVlhCcXYvN1BZMnpGeU10WXdCMG92WURuc2RVUHN1TDYrZHovMUlQRDhkdldOeDA0a1g3VWFWNzZOOS8xMnNiR3Q5a2gzWmRSZFlJVWxYVFJaRklJb1ZreFdhNGQ3MURjd3lLM0RSTGx5NURLeGRYdWFTU1dRS3RmckxaSExGWUhLVVVKNTU0SXJadEk2WEVkVjNDcGtWWjlSZ21mUExmU1c1dUlpQ2IwUjB2NDh1OFJtdllUMlpDQTRPS1dtQzFRbmZMdmJaVjdHOS85YmF1YUk2U2FEZFBMcFBoNFFWaEhscFp5KzgrSE9IMkN3VC8rV3FlRXIvZzBjdmgzb2ZEZlAyUHRTUnpXN25zcEF6YXplTUl1ZGVaUHh6eFk4Y0ZvMGp4NThmU1pMbVZWejcrS0JMTnQvNXlIWGMvRnNjb1VqanU4VHJIbzlHQnBuTUZMRkpScU91UkVtMjc3T0lzMTRMalp2Sis2b1R5WUdQUTN2ZGtkQ3FJYnNpc0FWOGhsejlmRE1IUkVDblkzbkxnKzlnYXBzR2tDWFdzMzlSREtwMUdhUU83TDhLTVU5WncvOWNmWnREZ0JQbGVpV1dvQXhiNkFrOXYrT2tuWCtUcEJhTndIQU5SOEg4ZENObTJ6VzkrOHh1NnU3MGV6SDVMOE1uTGkvaitMZVhVMVZyb2xDYXpRaEY3MVNXelFxR3lIcHVMSXlXS3R2WDh3T3NONWdwSlhpdGNORUtMdmVZa2JldVRlRlNTTkpHRDZ0Q0pKS3F4R1dHWW1KTW1vaE5KY3MrL1F2NmxtVGliTnVJNzdYUjhGNTFUS0ZBVHlFRjFJRTBPUjgreFk4SnFsbUFNSGxSSWYxRTRhOWVqM1R6Q3N2YWlsaXBrYVFtQlN6NUE2Q1BYWTQwZlIzVG9FQkkvK1NWdVZ5dFl4dUUzT2wwRmhzUlhXa3piTjM1SXRta3ovL0dULzJEWXlKRjg0cWFiY0YwWDB6UnhIQWNoQktabDhiZC8zTTJtcGlhZW4vVTY0Mlk5ek9yTFA0N3NqU09Mb2w2L3YwUFozc1RlemhIN1BrZnZ5Ukl3Q0JvWjFpVEdZMG1ickJ2QWtqYU9zbEJJMG00WUFmaGtqclFiSnE5OGhNd1VyalpRZXM5QzU4eDM2MGU1YlF4WnZaT0J0M2ZSTW9oZXd1U1BhSXpiQllKQ005V1g1YnBva3VrazJiZ293ejFQNTNobVZvNnRuZnRPSC9WWmd0TW1tWHpzY2gvbm5SbGxjM1F5Zis2OW1LZjdadERpVkhrVEkvYXZEdVNzb1l1UDZwVy9PeHJ5bklOaGVPSGgvWlZYMXpCajFHaTBocWFXclN4YnM1S0ZiOCttSVp1bi90VHBHQ05Hc0xhNm11N09Ucys4NlFmNVlMeXhJeUszTTRmdjZmWHVuMmtnZGpUam5BcndGZklsaElBaFpSYmphdnprSE0yeXJWbDZVaTZqcTB3Y1Y5T1JzRW5sRmE1aXUrL01iNGozM2Z4dS96a2g4QVdqZ0thMGJnSytVSlJzc29kUWFRMDEvbElNeThMWWFXOGJWQlhreXg4Y3ZXdUQ4QUdnYjN4MDEvZS8rdk9YM2s5YUJnQWpSOVRUMVRXQ2t2THB0R3laVGJoNktxTW1oZG02K1BQa3hXMVUxUXhIV1I4bFhEeTU4Q2o3ajRjU3l1VHB2aXI2SEFzWGVDTlp5b3FzaHpYMlJySVVGK2h6TEo3dXErS3k0ZzVLREx0L2Z2Z0FiQXNod0pLQ0QxeCtBbHZiNHJ6MnlscVVKY2s3aXJtTFc4RHYyV3B6RjdkZytFMWVuYlVlNlNqT25ENmN1cG9pSG41Mk9iWTYxQnFkZ2ZIYkNBbzlrUUlSL3ZzREx6T3NycFNIMWwxTW5xWDg1cmxmOGZ5OFIzaHEzVXdtbGw3RVR5WU5Kejd5V1Q3MTI5T3hjeG1FZkhjL2dDRmdZbTB4ZmxQeTFzWk9GcmZFT1h0RUdVTXFKQkV6UkYrNmwvVmIxak5seURocXh0NU1zbk1oZHFxTlZFc1FTOGNKK1N4TW40OWNRUzc0ZlQ0Y1I1Rkp1aGkrTW9LMUYrSUwxU0pMSnZIWTJnaGRmWTBzNjdINTZKUjYxclowTUtxdUVpRWtRZ2dNMmM5OXBHS1M1RXRCM0Y2Sit3Rko2T3dzUnBGNnh3SVRQbzBibDZSZkN4Qi9KRXhtdmgrZFBmVEV3MjB3US8vNjR6VC8vY1VndC85cmlEV2JYTTQ5eGFTeVhQRENXOTQ2a2RMenh5a1hCbFZKZnZUbEVEZDkwTSthMVlxTFA5SEhDM1Bkd3lKcjdLeTluM3p1N21NajJiTTlMQ3JLOGQ5d05icXJsOXlUWHM5WS81VVg0Ny9oYWtRNGZNQjVIZStIdkZCSGVUVXBBZE9oTEpUaDlLR2JHVi9WdVNQM1NBdkNQcHN6aHpVVHovdVp2NldXUk01L3ZOSjlKNzdyN2UxbDhPREJ4R0l4aW9xS3FLaW9vTE96azU2ZUh1cnJCMk1ZQnE0d3lTaU5hY0xzdVJsQ3hYSDhBWU5YM2tpVEZ3TEhkWEdFaVpRR3hjVWxORGR2SWhxTlVsSGgxY20xdDdjemVQQmcrdnI2S0M4djc1Zjl0NjFYY2QvTVBHdGJGTis0RHE2YzNzMndZSVpxSzgrZDdkVWtYR1BYdGZjZTZEOGd0dW5FdXRDZmNPZTlVdTk2bnNETGlkL3J0bEhvNHhxOTZxcnRQUVVjQjBxdThUcEMvL2FYZDdMdUs1L2hYMUNFc05pY3Q3ZnI0SWVEeklHNHFBSVFtbzJ1eGR6cUM1Z3hkaXdUV01mZjFqeEU3ZXF2VURhNG5HelNaZnlxbTVsODVRcE9pazRodGlYSFN5SkhyTW1FdUFmWTNDK3pJRFRZTUdMNFNscTZUc0RLZGxQdHZvYUxTZFpYaDIrNFEzSmhqbkt6bTNqNVlJckQ2eGcxWmpVNDlCZGswejRwbFVyeDhHT1AwWElNTFpMV3RqWlNxUlNtUDBDa3NneFpQNWpNL0Rub2ZJN2MybFc0ZlgzSWNCai84RkhZN1cxWWRZTnhrd2t5U3hkU05INHlSV1dWOUtWaWRQVjFFcytsQjBad0NJRmorTGh5dzVzc3J4ckpZMlBQUnlqN2dEMzUyM3RQb3REUzR1SjFMM1BsaGpkeEROKzJMbnBIMllZRDBxZUk5Wlh4L2UrK3dsZStta0FhSnIvNDJWc2s0aFhJZ0R0QStKT2VpelFrQkhraG1HRDVLSlVHY2VYUzVycmtDdlBrRjRJYXc2QklHdFFaQmo0aENJbHRMVndQTFIzZ0l4UGVPcXJYemFkM2UvL3pmT3VCbTNqQ1kyRWxCSit0eWZHaGEyQk5keC9Qdk9ZQjBlTjZmczZ4dFpyaFdadi9mTkdsM1dueFpsVVBuT29xQkVTREJxTnJnLzNhUTl3MEJQV2xQcUlCNHlBNDhsQ3NhREFEeFFUS0JwTXNtMEpQM0RNNmpMS1RDSlFOeGd3VTdXcHdENEFJVTd0ZFZHb2JvVDBqeVVYUUlpcG9FVFc4TEVEa2M5U3Q3bVhzNmtZbTNUdVBFL3cybzRhVlVYL1NXRXBtbkVwbytqU3NjZU9Rd1NDaW9KaWtjM2tDbG1UQmM3L2dsUWQveXRDR1VySTVsN0lSNTNQeTVUK21LQnA2VHloMSs1U1gwcUMxdFpkenpobk05ZGVQTHVodWt0LytkaTVTK2crb2VlazdqWENuOERzRzczV3ErdGlCQXlNSUNabTFJUkp6aTBHQnZ5RkwwWXcrK3ExNzZNNzAyMTNmdmpxaG4zNUQ5d0Y5VUhvTXVBV0VZUDZ5RG5BVTA2Ylc4dXZ2ZVEzTlB2OTloNXQvOXhIdS9QdzluRDFoUGZwSVlsUnJnZlFKVHA4Y1pPR2FMRVpRYms4K05vS1N0WnZ6ekpnY1JQcUVoeko4R0NsdUNoWkVKZE5qQis0VUU4RENxRUhjZkgrNFI3NTdRY25CN2IrRjZkR3VvS1Fuenc5ck4zR1M1U0VRcjg1SHVLMTdFSDIxUGtTOTNoSDhPWmdwZlhuL0hZakg3UDVtMi9ROStTSWR2LzRMMlRYclFXdUVhU0tNb3krNVVpQXdoQ1R1cEJEQXY0NzhKT2RYelFDZ0pGU0d2UDRDckdpRXNMVURlQzlzaGZCZmZSNXVJa2xKcUF5QUM2cG04T1dSbitRZnpZK2gwUlNaRVZ5dERtdENsTzZUWkY0TmtVNmFIS2ZEVDFKRHh0S2MzT3JuYzc5UDhmeU1NaHFIbjBCK3hSMVlHdXlyQmpHaXBad3ZQZG5ERGN0TlVnR0ZjUUI3bmhCZThHcm5DSG91cjFIWlFyQkJnR25DMk9FbTRtU1hJUytGdWZDZkVYb1NObGd3WnBRZ2tWVnNXT0pTVzJidzgwZ2ROL1kyOHhySm5meUhFdE1VQ0NGUnJpWnZPelEyTnRMWTJNaVRUejRKZ00vblk4U0lFVXlhTk9uNFF6OEd5TzgzdlNiREFSTXBKVVhoQUQxOUtRSmxJVnlsYVcrUDhlQ2ZlL2puL2V2NDFLZkg4OHMvbnNVTEQ0WEo1eFFVYmRNaUJraU9SWXBnMGpTWWZDcXg0aktlNmdGNmpxbmREb0dMYloySTR6c05MVkpJZXkxbVRPTUd5bEJGNDlFbmpBYzdoWER5dUlhSjNMcUI0UHhuc1RxYkNheVpnM0JkYUcvMEx1Y0w3Qlg0Y0UvMHpNdExEdHhwVXRpSFhhVll0bm96eTFZMkgxOGtlNXN1dzBBN0RtVVhua1BQVXkvUWRWVXRpeU1PeGpGY2FDQ0ZBVUpnYXdmYnRUMFFCQ2RQdUtnWXBUVzltU3lESjA2alU0RWxxNmp5UDBzc0ZTQmNWSWxVZWZMNVBJWmxFTThsQ0JoK3dyNHdZbHUxM2VHa3dZTmgyeDQwYkppSGRLVTFCQUxRV0ZoUFE0WWNOZlB1YWpCODhNUkdlS0laSnBaQmtRVnJZOUNWWmE5NXN3VjNEb2ZxenRGN2N4V0lIU2VNTE5ySUY4ZittUnVySDhhYUU2ZjFIaitaVmJLd0Z0N2hMRVFFb1Bnc2g0cVA1bW11SDhGL3JmczA5elYrZ0ZpKzZOMjd2T3lGZmpIM0Y0ZmtXSnU0TWM1RnltYjNkSFJiMmJ5dzhUbVd6My96eU5oY0dud1NMcXVTZkcyWXdhVG9qdWpEdmlqZm1DWCtVRGVadHhOb2V3Q2FWL1ZuUE9sNEJkWitrM0lWUnRqUHJkOTdrc3F5RUJOR1ZSS1lXTWZNdHh0eDAvbnR4Ukd1NDBMQTRweHpScFBOMlZ6L3hRZm83RWxoaFAzZXNUM3c4NWV6engzWW5wQVhESHIyZGJybUJJN0pSQnFWRWFTV0drUk9FY2lneDROT24vZVp5aHpoTzlLUWI1YllXeVRhUFRKRCtQZEh6ei9LbitDQ1kzd3hIOE1ORm9WQStIeTRqb3VRRWpPZHdpZ3RZZkEzdjBQRjF6NExwcldUQm5GazF0S1NhV2U5cXhmUEc1WUpYRnRJb3RidmNxN0dpMXgvWmNEMksvRXVzU1JoZVExaWhOajIrdkR2bVhyUGhnRkcxRUtwSFY1TEtRWFNFQ3lhM3cyV0xJeDNMM3RJSU0vemI0L20rVGZIRmxEVUZUS1VRMmtCdmp3QW1ZM0R5VFFPdzkvUVNOSFVCUVFhR3BGQ28zS0ZCaG45RllNcjVNbjR5a2RTZE1JMTlMejFENFJ3UUFxMEtnRG1hMUMyM240L1JzQlBlUGhwbEV6N0RLR2hweDlkYTlRdzBQazg2VGx6Nlo3M0RKM0ZDdXM0VnNGMnV1VjdqM1BubjJkQk1nZkZJYTcvNEZTKzlla3p1ZXJjTVNSU09hNzUwbjA4L3JlM0NoV0lwWHo3TTJmeDJSdW1jdU9sRTFtMnJwMWhGOTlGMCt6MTRET3BtVHlJLy9yU2VWeDcvbGpPT0drSUR6Ni9naHUvOGdCczdvRlFnRFBPRzg0ZEg3NkY3bUExWUJMdldzODVsL3dlZW9IeUlCLzk4RFQrN1ZNenVPcWNNZVR5TGovK3krejk0bFZaVm9wLy9GZ1NUenlKMDlXTzA5bEpZTXFKK01lT1FlNnh3TFlBemlFa1NydTBxNFVzY1o5bm5ydTRVS1RlZjNMRktEcjB4bzh5R0lEZzRlRUhNMXA2Y0dLallOamVQbDV3eC9nTXB6U2w2RnBwQVlMVExyaVlGUTBHdDhmZXhqSkNVQnc2NkJsMjltS0NINXdzTDR3aW5VTzFOakl5UG9qbC9pQ2JXNXF3azZudDV4eHZCcmZuSjY2MUlOTVdSdllOb1dmOUFycDFpSHhSbUMyWlBBMU9CTWNKa0dncHdjZ05KdDA3aDJqVmZ0ZjFIcnkrL3MrUEhKVE9vYklCUG56MmN3UnltbEdwSnBha1drZzExeE1wYnNVWHpqQ2gyNlFvYi9EUzVrbmM5OXJGeUVEMmdBRXRQUHFQOXpYWGFPV2kzUnlCNGhINFFqVm83UklzSG9HYmk2SFY0VEh5REEzdEVZTy9UaTNsNmJGUjdMWWwwTHI0Nkp3d0I3TFArWENiSmI0emJFSTNaekZIdTdoYkpLcFRrdjVUa1B4Q0U5VW5FRUlqbEVhZ2NhVkJNaFNodmJTS3Byb0cxZzBlU1ZOdEErMWxWYVNDWVZ4cElOQUk3ZjBaL1Q3M1I2ZDhTRHg2WUEzbE5JS3NOdmh1MFQyc21UQ0kxZUVoL09TcEQ3QzF1NXhUUjY0R1lPYXlTV3hvcTZIRFY4TGsyRnErdStJZU91SlJIR0VNZUcyQ0VGNTNJdEZ2K3IvZTVab0hLdVBNQThoVmNaWGFvMDAwRUFXZWU5TWZEb2U5YUdwRnJxeWVPNXJhT0RtM2xXbnhHTmxFblBOSy9wWEY4VERwY0JTcm4yRU5EMHJQRkFJM0I1Ky9xSlRobzJ0eFgzZ0VXWFVoSTI3NUpkck9zL2JWWlloWGZvTmE4eFkzbjM0MWYzalJRQnJ1OWliTy9lVU8wbWlNUFFJbDdWRDdkNUhud2dObDZJOVJYTnE3K29DZnIxdW9VNUZhTXpIWnhnbTBjcHplRzNUUFF3dDNZazR2aGpSNFNCa2Z2V29TSDc1aUltTkhWS0l5V1pLdno2SHJydnZKTGxsSmNNcEUyczg4bDM4dVNHT3NuOFAzUHpCdVY1TlNlekdNSC8xdUp0cFYzSHo5U1l4cUtLZmtnak1SbGtuMzMvNUo4eGUrUStERUNWeDJ6Z1U4VmhMZ3ZwZlgwOXpZV1FEeEUvdkZsOXZxb1Q0N2F4S2lScUZURW13UDBFMEtrR2djeDBDNUJ1TXJlL24zOFJ2NGNFTUxuS3RwLzJlSXJudjlvS0hpb3puT3U2R0QrZmxPN3ErdjQ0Y3JSN0tpc3hRTUY5TjBVWGlBdXNkcEgxdXJENnhKRGlVQzFIcEpwdHRFYStpTENCNmI3R2RCcllVeWpqY3hPbGkzWlUyNTRJTHBQbG82WE81K3dpRnZlNHV1clV0eDRXa1dGNXptbzZaYzltc1l1K2VQdnpvb1g4bTI0bUVOQlBIUlZ3bjVZZDY2VExadXBpZ0c2WVZ2Yms4RnlQYVRWNnIxQjc5NWg2QVFBdnpqUjFMOWpac1J2b1BQZ2RXMlEveUZOMm43N3o5NG0vVnhSajQyU1FGTmVFRGdvd0EvTU53cm5RbUVvS0VNemhrbE9HK1NaT3hJZ1hZS2VwdTdnOEVEQVJneFZIRHR4UWJkdlpyZXVLQ25GMUtaSTV2bjREZzJ1WHlPS1pXakdkVmc0RGY4RkRlTUpKNkk0VGdPcHRtL09lQkJ5OWh0VHhiNExXTzdEQkpDRUxBa1FmK3VnSTZhSTk5WW9OOXRJUTBZa3Zic01NWlVMV1Z6WWpCTE54ZVJjUnRKaUFWOC9qOTlsTGdOVEN6YWhMOTRFc1JkQm1JR1BQd0xRV20wbktGVnczbmx1ZnVaUHZVc0lpV25ZTHN1OFkwdjBENS9OcVdWVlpSRVN4RkNITEVtRkR2ekF5aDZ6QkJ0R3piQjRnNHFwMDNseERxWE14YlA1UmNiNitnMnEwQzdBMjVIcWwzR2RJenFDNEJFMEs1c0hzekVlRTdHT1BVQ2d3YytVY1FwRXkwRUh0N3BMazlBRjdweHlRRFNxa2VFcDBENGRQck1jYXpPV016dTJNVE10bGtzNmw1SFc2WWI1VG9GWnVzblZHS3ZJdzN4ZS8rTVdWTlArUHpMMGZrOHZqRVRNQmZQdzE2OURDMEV3ZFBPd1JvMkVxZHhQWW43N2lTM1loRk9jek9ZQWhFSURNaTZQbHJyY2grYzAzM3dDMDRNd0xuN29MdnZYbm53L2hzcHlPWVZHeWVGdVAzVEZ6TnkvZTBnQk9zblhjeTN2cm1PUjVjMEV2REpRM29XdTVPTlBLalZwN1hHc29KODg1RnYwenFzaElyd2RPYlU5bm4xN29FSVBjdG1NWFBqRTN6SENtSnJGOUZQdFJRdnpIM2x1SDQza1BUREh4N2Q0enZyclBlbGJXd1lnczlmTjVpbjMreWtvdGpIVFpmVVVoTDFjaU51dXFTV0oyZDEwQm5MOC9uckJtTVk0cWdvcjlWby9OSkUzdjBjNmJZRTBSOTltNDdQck1ScGZCTC9uQktrZVhScklBT01kUXNjNC9rNyt5QlhLUmExcm1kVFh4dk5mZTJzNldxbU05VkhjNnlkRGQwdEZBWENsQWVMYWVwdHBUZ1E0VmR6SG1GOTl4WUNwbytoSlRXczZteG1ZczF3Z3FiLzBCYlBJWDdYUDNreVpuMDk5cnAxQUlRdXVBQ2pBQWJZMzlUemowY09ta2xWUEVIeTZaZVA3MkdIU3E0TGhvRXdUZHpXRG5xKzkxT1M5ejVXUUI2MmtNVlJ5bjcwVFlxLzlFa0FZci82SzMyMy94WTNiNU5mdW9yV1N6OU81Q05YVS9aZjM4Q29yZHJsbXYxQlVzSkpZK0htNitDNjg2RzZzbURVRmZvQ2RkZ1dqL1NXOFpmT2FoYW1JcDV2WCtqdE9hWUttSitNc2pBVjRjN09LbTZ1N09DNjBtNnFmVGE0VUZVT3QzN0l1L1lqTDhOZkhvV0ZxdzQ5MVZzQVVrSEtKNWhYNytQaENVSG0xdnZJV2lsWS9kcHh2bnUva3dCY2dlb3ljVGY1c0U1TUU3eWhsOVR2S29sK3Z4V0tDNmRGRlprSFN3bC92aFBoVjdpYmZLZ3VFNVFBODNBNjNUUUdCdmwxVFNUNllrUkt5NGkxZEJBSmg3SDhmdncrSDFwcnN1a01UbCtNZENaTnFMYVdSRjhQUmVzM1lXRGdIT0pnTC8xL0QzTHBxY081NmFLSmZQRmFyd0ZWVHlMTHZTK3Q0TWszMXdOdzVXa2orY2dGNC9uQ1lUcmVtOGh5OXd2TGVmYnRqZThZYjlnWDRmVjFyL0Q1TS8rVmttQXA1NHcrbjcvTytUTTFSYlg4OFkzZkFKcW92d2hWQUVVeUZHUjk0QnFDVTViYVhQdENqcUZiWGRJQlFUSUlVbHRIU0xrVkJBeVgwOElwYnFyc1lZYm9ZY09DTlA5NE9zZnpiOXIweFBaUFdBb0I0MGVZZk9BaVA5ZWY1MmVZOXBONDJrZlBxeGE1RmkvV0pRNWcyM0FjdFMrbERIdytVdmM5VEhiZUlxeFRUMFpVbE9PdTM0anoxbHgwWHd3UkRxRnorYU1TbzBjRGFXSHhjR1FTRFhhZVlma2VUSzFvTnlJOEVSekRQME1ua0pVK3RIYkpDWk1GL2pwODRVbWNLM3piL2ZjRFJVTU5IN2NFeXJoSWg3R2ZmSkh1OTNySGFRMWxQc1VueTFhUXZlWUVwalNHZWVEcFYyakxYSTNTOE1yVHIvQ2hLNnN3aDRhNStmRlZQT29yWjFObTMvNm16VzRWcmJLQ3Jhb2NEaUN2U2lNUTJDeXh4MkdJTEhIQ1hPcDdtNDF1SFE0RzN3N2RTNk9xNVplcEQ0RndFRWRCenRiUi80ZzlIdTdNeFhpN2V4MmIwMTJVKzZLMFozcEpDSU1pSzBqQThGSHFqK0F6QTNSbTQvVGxVNVQ1b29XY3hzUGM0QVpJMnk0bkRUSlk5Y29yZk9MU0ZaeC9TVFhaRGdlckVCck05amljZjBrNW45aXdnbFd2dk1Ma0tlZXhjSXRMeURJT2VjVWVuRC8xMkZ2M0NBK3VSU3FKUXVNM0pTdWVDK0YwVzloYmc2VFhDOUxhb2F1MUJ5MFZBVk1TTEhiUjNTYUxudzB3NWxTYkYvOFlZdlRFRkRWamJEYlA4dU8zUUdqeHJqQXdvMzd4N2FON2JxYmQxMitYVWtvaGhLQzd1NXY3NzcrZjF0WldoQkRjYzg4OW5ISEdHZFRVMUtDVVFrclp2d3ZvT0EyY2ZKTEhsbnd3eXdOSDlmaWM3bXkvWGN2U01DR2hNYlRMZllOMjdBVlJSM054aDh2WXBPNTM4OUkzZE5EUk9iRkwxL2ZiWGhId2F3WU5Bb1pCbjlIRGN6MWJDZnV6VEJtZllPUUVEVm5RK2FOaFh5dHNiREViTHF2QytmZlZtQmRWa2lzcjJKaHBoOXp2V3lrL29ZK3lMUmxVMnZVUy9vNUR2K3hiTHhMd1VKWGtwUkVXN2xHQ2xiUE50dTdzVFpPM0pWcjRDUnM1UnZpYW1GYXloc3VyRjNKeW5hQzRiaXpPa05NSmpMNklZTU4wK2xLYU5aMEpXbFp2WnRtNkRoYXQ3R0QrbWk3V3RzUlFxWUxkN0RNUVlSOVNlRmFHVnJwZjQvWWFNSUlRUGdQS1ArYjluMWtDVzc0TXFaMjZsRW9UeWovdXZVNitCdG9CTnc0ZGQwQnFMbFIvRXdiL0FWSnZRUGZmSVRVYjNNeHhOV0NIT2lTSTVXTTgxdndZRzVNYitjaXdqM0IrM2ZuNHBCZVRrcnZsQlczelcrVlZucGUzdnNTOWpmZXh0R2NKaGpDd3BOVmZnMEtsRE9JdmxCTTZPVTV1UXhDVk5DaTY4QmlkWXlHUWpzUDBFZVA0NmhtWFVCV09Jb1NnSmRaTHNUKzQzV2RUN0EveXVWUFBwYjZvRkswMU14cEc4M1BEWU5QOFdXalRISEE4RVZlRDlFc2VXNW5qd3F0UHBXTEQyNXgrMGxsODcrSkIvTmR6bS9qUkV4djV3aGdIMStmSGtJSnNPc1cvUDdVQi9PWGNlL01VeHNqTjlBVWxyL2FXOHNEY1ZSaEZFWnhqR1Qrbm4wa0JUYmtvU3pLbGZMWjhIU1ZHbmtkalExaWJpNkswZ1VLelBoL2RYdE80bzc1UklJWEw2RUNjYTR1YitXQkpNdy8zRGFZcEYrV29uVjFwUUQ3QnJ4WU5RcDcwWlU3dGZaeTZ6czM4T2RkTjlmQXplYURxUnU2Wkh3U1JRQXZqUGFkamZPdFRSM2Yvb01lZU9iNGVqNFc5V1FoSlVjbGdWRzRaVTZwS2VGNVlsS3g2bFQ0bHFaaHlIbFZSazZ5VG9ycDJZc0gyN2gvTlpzMFpaeDVUYytXa0pOYWI1WHoxUk0yenEzMDhzMm9RbzRmVU1HSENGT2IwaExGYjFsQjZ6d2JTU3lOZXpmdlJLRzhLOHQ0d3djM2I0Q3BtbkRLTWoxNXpFdGZXV01oSEhxUGxIMDlpdDNkaEJJTWU1dFZPU2VEQ2tLaHNIcVZjU2s0OWlaS1BYOFBhYzBkeVQ4OWM3cC85TkIzSlR2QUZFVUpzMStQMlcxNE04KzM1Z0tFaFBZaVBQcHpncVJ1YkNkZEJQaUdZdHhSS1NtSGxlamozSWlDdldUb1hQcjdnQlBxbVJIbGJPVWVkTTg1dTI0RFQyN3JIZEdrTk9EMnQyRzNyQ1V3K2NwaUxtM3BiK2YzY1I1aTVjUUZwTzB2ZXRTa0plQmhPYVR0TDFzbVJkMjJhKzlyWUd1OWllRm45KzFOMkhrcGFYT0gvb1ZWbERCMHlHb2dXUGtsRHZydGdGNzIvOTZaakZaOWVhM0JhdTBqYyt6VEpSMTRFdzJDRmlMQkFGaEduM2pWSzZ4eXhyK1l1d3V1WlYrN21pc3VkN0hVeG4yOHFjQS93S0xCZmprWFRsQlJGL0lRQ08yem1jTUNpS09MSE5BM2N2TU54T3NwTUdpRlFtVHlWdzd5Y3g4N0dEbVRRaCtvdnUxeUFVSUs4b1hoMFRCb1ZZbnZPNDVHaWY3OXJkcit0dTJqWTRyZGYvUlFWeGc0cGU4aTNkdnJmMzVlV0FiNElqcitXWkJhU1poMHRLM3NvaTRiSlZ4U3h0czJrV0VlSlp5VTE0Y0VvSXpJZ1VYc2hCRkpLWE5mRk1BeVVVbVF5bWUzeDJuUTZ2ZjNoQ3lseGxjSUFHdDA4MThlYitJOXdEVGY1UzBscUYxdHJEQVRDNThWS0VuTXNZcTlaWk5ZYUZNMndrWmJHN3BINDZoVFI2UTQ5VC9vd2kvUis5aFpVM3B6SnNQYzJlQ29pTUJsaGdIWU0ybi81ZTlwLytsdnN0ZzZNc2hLRWtHakhQWGE1UXdpa0ZBeXRHY3lRMmlHc1hMOENZZmwzMGZtMTFyamF4VkVLYVpoZ2NGRCt4ZlRyeHhhK2QzTnpNeU5IamdSZ3c0WU4xTmZYTTNIaVJMcTZ1c2psY293ZU5RcFhLVjZadjFyWStUeWhlRE9odmcwa2F5YVJUanFreWtjenRGeHdhbldNck5IRCtudzltN3FEeEJLS1RNckIwRFlDaDZCUDAyMUhXYm94enBQTEtwakhEUEpaaDdNQ3F4aFVrcVlyNldlOU5abXNWWHBFNWtGcGdiUWMxalZXY1Bjcm8ranJ0Q2pXai9OYWg4bU40d1E5YlVXa3R5NmlJVG1LcG13TlByc0M0ZHMvVE90dC9VaGlLYzFmWDhpVHljUHZiZzNpdDd6MHpHZm0yL3pmdlZtYVl3cHRpS1BPRkRjMHRFVWtmNW9hNGZHeEFleTJ4ZEM2NkJqU1U4QnhvVGtGbDY3UjFPWmd4VFRoT2ZnQjJ4RFVieERrT3pYMkdKQTJIS20wTG8wZ2FVZm95bFljY0s2aVJ0Q1ZyU0JwUi9wdFBBKyt2TGxmYkU4cERkSnBGNDFET0JSR3FTMW9yWTZvTXFjY2w5NE56YlF1WEVHcW81dmo5UDRrYmRzWVF1QTZMbVpSRVNITEpPSUxFQWdHSUJoQU80N24zM0FLK0JESEUwQzIwdytIL1BkaGw1RGIvOXVUVTFMczZyVTY1eUN1SHM4bVdkS3lobzFkbXduN2dyUW5ldEJvM2hiTHFRZ1gwOWpUU2lxWG9USlNUQ3FmUldsTk1wZkdjVjJ5VGc2ZjRXTnpYenRWMFRJR2wxYlRGdXNpYStmNlp5K1dDcTBGYmlZTVVuSDJtUGw4OTZ6SHVYRFNBa0F6ZTBVNXYzbXJpSmtiL0xoYVVPUlhDS0U5YkpURHliWks4TUZUZXZqZ0tiMG9JWEM2YkxvZjZDRCtTZzg2cnd0NVZCcGR5SG1WUlVYNFI0OG1jdnJwaEU4N0RmL28wY2pJdnZleHZHc1R5NmJvU1BiU0hHdG5mWGNMNjdxM3NLRzdoZVpZTyszSlhtTFpGSGtuejM0M1hoY0NFamJNNmNKZTBjZE1kL05Sczk2eTdvSGxsSmpDeGRnTnBOblJFa2NaQXpSQ2U1ZDNvYS9jdXU4RmR5Ujl4L2Y4NGNqc09WcUQzK1NPUHl6bDlmbnRPSzdMOG9YdEVBMGNVS3VlNjVsNVZPOFBYOXZ0L1h1bGo2c1E0RG9PY2VsSGhJSVltemJCTCs1QXhmcklScU5RV1luKzQ1L1FrU0pNdng4WkRCSTNBK1R5TGxLSTR4cEVnVksyMnUvMTRyTWdISzBpRWk1bVkxTW50UUdCVXhKRlpWT0VkWko4SWtjd0hNWklwZkJWTlNCOFFZS21TYkNpaFBtTlMzaG16a3l1UCs5S0VqbW5mMnNvRHNBT1BXK1FJQlNBalMvQWluYVBDNFpWQzc0OVhUQzl3c05tRk9MSVI0SmpHWmVaYTVLMHhoeHVPcTJFVTRjSHQyTzh1MG96dnluRFBXLzFzYm90aTZ1T2ZQeFBPNURhSUpHekxNd2lSZW5wenZZNldxdEVrMXhsMFAyNlJXcURSRHNES1JjMFBpdVBveVRDRG9LVnhobjFLdWt4aTdpajFlUS9Id0lsQklZK3NwbHFXbmgvUlhIQm5UZGxXWEdkaVgvMVVLK2wzSDcwSnRCNlIweDU1OWNIZTk1T0hzbDN5Tm1EZWc3YmV1WEpJR2RPT1pXMG5hZXRxd3lCeTR4eFJadzY4VVJNMDdlTHJkQS8rN3BOUHY0RVptK08xbHd0dm9qRzU4WndoUStsSElxTURKdExLdWx0MlVweDkzUDRpNk5Zb2RIYmRmTzN6WHIrR0pyQjZuQXgwaHlJUE1DRkJ5aXpCSldSWW9vRFlaTDVEQURGZ1RDVmtSTGtmanljUS8zK3V6NWg3YksrYkJUTFNtYVF5VWNabjNxTGFmRTVhTXRFZDRKT1NyeUFZUUUyUjBnc3k2UzBQSUJwbXVUek5vWmhZTHdMVG90T2Fud3hVTTNyNkYyK2dtUkZGVzlNdnA0K3Q1THg4bTFPV1BNYUpvZlBKNkM5b0NoeE8wUStsK2Y1ZFJWTUg5bE9aOWNhZE04bUZzWk9ZM3dvZ2NKZ1NieUdUUHNtenFuZHlDa2ovTHk0dm9KazFpRHY5NEU0c3JYUXJwSVlFWnQvUE56TFd5dHZRQU1iVjNWaUZDdGNkYnpoMzlGQ3dxZmYzUSt6eC9jYXc2ZndHNHFBd1lEeVdlNFluOS9MZjMzNUlRb0VCZG9Hc3dRaHpNSWU1SUR6QkloZjlBK083YnZxT3dLZGQ2aXBMdUs1T3ovR3JkOTdsRWZ2V3dlVkJqLzgzTk44OTBOZXZrUStMckdNZzlONXBOVFlHY25vVVQzODlyUFA4dm1mWEk5Um1zUlZIRkMvSTYwMVhWMWRBTlJWbUh6L2xuSStkV1VSUGkxSXozV0p2ZXFTV2FGUTJmNkRBRDZFN1EwVWlCQ01LWFVwM2lwb0NtUnBjL0tVSnh3bXVncWpIcFI1cEIwb3grazRIUUlwalJaZ1ZaVVQrL1hmeURlMzhQRUhmc3ZRRWNPNTVNeXp5VG8ybG1WaDJ6YU83YjJlT1hzV0U0Y1BaK2FpaFl4ZDhpTHJ6dnNnN3VvTkdPV2xhUHZJNXdtS1FnOVNnY1pSSmkrMlg4YnJuUmVRVnhZK21hZlUxMFBRU0pOMnd6eTQ1V004dU9WakNEU21kSEQzZ1puOVE1N290M0dHc0tra3laR0laMjNycFZKck9Kd2ZUSE50T0VGVlg0b1hYcy94ajJleXpGbmlrTFAzUGE2NlNzbWxaL2k0NlhJZlF5ZldNVE4vQm5lM1hzU2JxVW5rVkFERWdlVXQvZkM4dnh6VnkrV3NIKy82L2tjSHUreUFvVUp3c2hDRURJUFRUcDNPMjIrOXhSLys4RWMrMU5KSzhJWWJDSDNpRTl5aEZNMzBYenBFNDROUHZKZEZHWTdTV0ZJUXRDUjFKU1pUaHdSWjFaYmoxYlVwUmxUNnFDMDJTZVlVVzJNT3Fad2k3MnFLQWlhV0ZOaEtjNmdsNDhmYS9MNGoxaUVFb1pJS05CQXBxL1g4dnFHaXZjZEVEclBvK3QvaHk5NUh4cDhYcHdpSGl6anYzTFBJNTdJb2F3SUxIM3FBMTM3elpVNzV4bTlwR0hJTzJqa0Z2eis4MHdNWlFIMVVnTFB0K2tlSjJxdGRqWnQxcUs4cHduWVVzMTViaDdJaytFeGt5TGNkVTAyRURGdzBhelowSW0zRmhNbURxSzhwd2szYmFNdndnSDZQc3NpUWxPQ21EYzZhbHVLcUtRdXhrODJjWFhrRmVmTW1ubXg2bmN5cVZWdzE3Q3pPTFk4ektQOW5xc2RXY3VVcDQzamt4UWd5NHVDK2kzMG1oS0E4RW1Cc1paaEhsN2RpYThsSjlhWFVsNGNZVXorYXpwNXVXbnZhV05XeWtSSFRMeU5jUG9GMGZDdXg3c2Nna01DbEJLRXB5RXlOcXpVSzBQNEV2a0FaWmFNK1JxaW9sdTZzWk42V2hiaXBQaUtteGF6R2JzcURKaU5xSy9mWXQ3Uy8rRlJuQmVrM0FqanRCazZuUWZFTktXUjBWeHRZSlNUeGg4TEUveGttdjk0cTlJdnNIN2txaE5lLzZ5cy9TVE4raE1HenY0NHlaSVRCcmQ5SjB0cFZ3SzJ3b2FwTThzTXZCUG5NUndKc2JGSmNjMHVjeDErM0FSUDVnVkhJRXlwQTlTOWZPdjg1NXgyeTV2QnBuc2RwWDJRWkxnMmxmUmhTTTc2cWs2RWxmVXlvN3NTVTZoMHpPTGdreHFXajE3TTFGbVZkem8rakpGS3E5N1ZYUW11TlVvcU9qZzc4ZmorNVhJNm1waWJxNnVxSVJxT2tVaW02dXpzSlJnYlRZSFZ5VmVCVkxNdkV6aXBTaitWSkFhZEpDMy9Rd0xZZGh1aHpjTFNndTdzVEtTWFJhSlI4UHMvV3JWdXhMSXRBSUVCN2V6dWxwYVZJS1k5NC83UGpWQkJycG9sMlhSemxZbGsrdXJwdGZ2Wi9uMk9xdUl0LytRMmtwSW5qMmxRZjVzZGxEZ2pUSXdDSEZrcDRjSEdHczRmMHNiblR4TjgwbVJmV3IrUEZXV2wwSmt2VXlITkd6UmswdHhsc1hMT1J4YjErTmxFQnVQM1htRmdMTUdIVjBoUG9qUTJoS3JJVlhBT1VDYTVFMjk0cG9MQ3NISDJKRTFpemFoeGpUbHgxV0FOajVqSEcwUEY0bkV3NmpUSk1oTThpdTJRaHlaa3Y0Ujg2SEpYTm9USnBaTFNJME1tbjRyUzM0aVlUMkswdEpHYStoT1ZxaEdHeU9kR0ZzRzFzN1hwRkFQdVhHYkQvaTA1clhDRUlPSGx1V2ZJa0c4dUhzcVJzT09UeUIrN1YxeDZBK3VUTzlkeXk1RWtDVHA2OFlTTDEwYWxJS0FYUzc1SktWL0RmUHl3WXE2SUNHWEFaU093cFYwT0g2MklBSi9oOGpBT2FIWWRYTTJtY3dseUZoR0NxUDhBUTA4UUViSzNwY0YyR200Y09sT1ljWTdoYWkxVHlvRDEzUXNCZHI4UFlzK0dhTDlxMEZjT2pMME1pN1IzN3dDWGdEOEdjOVM0eE56WHdteHhRWCtwamFFVUEyYytaWUVxRHo1UklJUTRJU0ZJYzdJMFV2dWtMUmlnZVBBVURSYko5RkFDUjZwRkVCay9CRjR3YzltWUp1NnZUVXRzSTdTVmJ1d2hhUkFVdG9vYVhCWWg4anJyVnZZeGQzY2lrZStkeGd0OW0xTEF5Nms4YVM4bU1Vd21lZWdwRko1ekVWZDlhU1c5aUpVdm16RVduT3JIaVd5Z3BhOERPNVNBYVFtdjlubFlrcFJRbzVYRFJSYU1wM3duNHVMdzh3TVVYaitiNTV6Y2dwWG1RUUo2YWNlTXEwUnBXcis0K1lJNDgxbEtFYTI1dE9YQTczSUNleHlwSXZGMk0xb0xBOERRMW45M2lPVUQ2bSsxK3UrdGJRL1duOUR2Ry9BcUdaUDJtR0l0V2RBR2F4dVplUXNHUmZQb1BIK1ZQbjcySGN5YXU1MGptcHhwYU0zRzRqL3RmalBQbzAzRzJ0SHRCM1VlZmpyTzJPYy9ITHkzQzBQcndUN21BeHlvdFB0enVVT3pzLys4TG9NY1NQRlpwd3Z1a2Z2Q3R3WWNDSks5QkM2cVVnZWxvbG1XRG5xM2thQmFLSUIxRHpVS1NjdjhKaWJwWThxaWV6NjBIdzY2V1JmbEhyaVZ5K3NuRVg1cEY3T2tYU1M5ZWprcW1qeXJFTGxNWTVGU2VIanZGNmVVbmNkdjRyekM5YkFwb3J4MVFUYmlhR2IvNUV5WStndXhvVWxOcVJEbmo5dC9na0NlS0Q0V215bGZCenlaL2p4c0hYOGx0SzMvQm05MExpSnBoL05LSG93OFBpSW5PQ1p3VkZuWTNISGM0SHlISG00YXNINjVZRitia0xYRVdOU2lXaml3amE4SEVScGNUTjNZd3ZOZFBKdGcvNEpkZTArWmQ3WlpNVGlOYUJYYTFnLys3Q1NxV21lQUh1MFBnVHdpbVhhZ1Jyb3M3Tk1kUFVpRWVmMXV3WktYTjJnME9mWEdGNjNyYS9mWjFZa29NUXlJUXVFcVJ6K2RadFdvVnExYXRPdjdBandCcFFBcE5VenJJZVhNbWMrT2dOdTRZMDBoVjJNYk5leHE4SVRUYWhaS2lIRFVsQ2RMNVdnSytMTjI5R1hyNlVnZ3BDUVlzRENtSkFhN1BBNDY2ODZmem1mbDZOM2ZkWGs5bGlZdHJlNy9sYWc4ZTNmSnBPdE1XWDFvOWpBZTIxSUNoa0ZJZE9BQzI1WVBSRStIa002Rm1rTWZJV2gxek9hVmFneTFINFFST1Erc01zbTgrMFNYM0k5ZGtzRXNiMEEzalVGV0RjY0pscU5JYWRIY3J3YmVmeE1yRXNWYk1RZ2ZDNERNOUI4dTJDK3IzcnV3ZU5Pam9Ca0xkc21WWGU3TGtqT2tJS2ZCVlYxRit5Zm40U2x1UjJXYmtNUmhtMUFVZHBqZVdJZStrQ1VvL3V1Q2NGVUlpbGVkM0NRU2oySlZEYVcySmdUT0YwcktsbE1nYXBBYVUycTRINWV3TXNWeWN2T3ZTRlV0dlQ2NDhmTVovRGR4M0gwUWk0UGZEdkhuZTU2ZWNBcmtjSkpQZXNhT0lYQTJHei90L2VlY09mNFNRZTVrN0RlUEt2R09yK3hnWSthaWgyQmZudzhNZTVndWovc3lRbGcxMC9kaEgvUFVnT3NzN0UwTUtBdzJPVjFUZWxNTSt0WWk3Mm0vaTE2OS9tdlh4NGQ0WUQzS2NiN1VjUEdDLzBJSkFqNDhMZE9nZEExQmFzYjVuQTNOYThtaWhEL3ZDc3lSY1dDbjUrbkNEcVVWeXYxMDM5cVljOFllNlNiK1I4QUJNanNmWDMwUEdnc0IxRlJ2V2RiREJsQ3g3L2w5eFhjV01HLy9NbUFsMWJHcnBCUVJENjB0WXM3R1RYL3o3cFppR1pPTEZkM2lCSjcrNTEzakFkUGZBR3F0cEY5eDFtclE2ZG5VUEp5NXd1aVN4MlY1Y3orbVVPUEdqSlZ2VEF3czRVdXQzMXVxRzQrdHRBT21vYmJDNGpkNmwwYUpHb0xRZ1NoNDdyOGhlY2luVnQzMGQzd2tqNkUzbTBma1V3akNPVWgveXRrR1pTSitCeWlsMm9IWHJQWityRGFUZlFPWEJBNDdxL3h2VGp2R3VldmllWGg4Vit1bE84bDhJVUNrSDVTcGtrUSt0OWJ1YXBrb0xqSEN1MEpEYks1SjExYlk0VmVGL3YxYzZuV3NjVG1mVE1Qd05qUlJOWFVDZ29SRWhOQ3JuMytGSU8wUyswR2lrTDB6NTZmOUtycjJGWE1kOFZEWU9zdUJxTUNTK2lwRUlNNGdacVNRMGZCcVJVUmNTckorNlBUZElheGNoakNQMlBIUWhJbHR1WjVpZTJNSWwzZXVZR04rS2JlZDJnenpyWHpKcmozS0IyN3JyMnp2dm5zUC8rN2VMT2YzRXdUejEybHIrL0krM2VlaXVONkF5Q29rc2xFZjR4VzgvUW1WWm1Mc2VYY1NQL3VjWmZ2US96MEJaR0RyaWpEaDFHUGM5ZEN0ZGZXbnUrTWZiZk9ibXYvR1phQUJDRm5RbXVlS2owL2pNQjZZeWQxa0xQLy9iRzV6NzA1Rjg3dVEwcVp6aXlhWlQrT1pYQjNQcTVLRTg5dklxL243dlhPNzV3K3RRR1lHczQvMytmcEFNQm9sZWNqSHhCeDlDT1RsMExFVm8ralFDSjA3ZXNTQUxOcnlYcisrOVg1dll5TXR0czNtZytVbVd4cGJoNlB6NzNrNXcxTUhIWEN5cElXUFNlcUZONkRzOS9OY3BuUkNjeUFmdSt4VnRNKytIdTJaQ1NRamJQUXJBNllWQUZ1VFR1S0lHTnRvbEJLTXVRMlNLUzV5aGpDa2JnU0dOSXo1TUpXQnJxTEJUS3hpV0VMdEl1Y3lhRFZSZmVTNitFOGZndEhkVCtkVlBJa09Cd3lGZ3dZQmtoeWJabXFLMDFLV3lJMCtUWGNVckxkMWNXL3dtbFJMc1JKeDRSNXBzaFNaYTQ5bExBNW1pOVBxNjhRZnEvQUNoTVRJaHpweTBnRUcrTHNLdEdUTHBFcGJuaGhQb0N6RFJiaVRTMVVmV0oyanByZUROZFJOd2cra2RxRnpINmQxWlJXdTJaWnU3VGhxbE5hVTEwOGttdHdCUVZITTZQWnVleFhYU0hzanM5aVhhdjNNckNueTd1RGJBNzA0clkybHRZQWZhLzFIK0dPM2xKdll5RTNPaWd6OXRZeTh4c1dlYkNLVTl2ZEdBWkNoQ2Uya1ZUWFVOckJzOGtxYmFCdHJMcWtnRnc3alNRS0FSMnZzemxQdStsQSt5UkI4Z3oyaGNKTVZPbXJ0WC81amJNaC9qbVlwVG9VeXpNam5FTzZsTTA1RXI0Zkt0YjNQYnByOVRwTk5rU3kxTTFJSGJLWjBIT3M4Q0c3aHI5aG40REpkNE51QTEzajNnN1ZBVHp3YjRuNmV1SU84YTJBY3AxeDcrOFFmMzQ3Y0VpWFNPZi8vZEt6UnU2ZDAxdDBWcEpvMnA1bnUzbkkzUGt2MGUwcnY2N084ZkNSY1dwbll3SzJ1WWw5VXN1dXlEQ0dtUWMyc0lSVFNXVmtlRlBhdTFCbE13ZjIwZkY3NzlHcTFGNDZGdk5mUC91WnErem5hNk4yMm0xZFpNbVhBNksrYjZnZVNBMU43czZZcVdJZkFaRWczWXJzSjI5VDYvYzV5TzA2RWI5SEo3TWZXd1llVjg5S3BKZlB6YUtZd2FXZ2E1SFBIblo5SjExLzFrbDZ3a09HVWltYTk5aFh1N0E5ejN5SG8ycm12bnd4ODRhWS83bVJEUXRLV1AreDVleUFQUExOOXgzY3ZPcC9qOE00alBmSXV1dSs2bjZJNDcrTnlVaWR6d2tRdDR0SHMwOTcyOG5vMk5YWjZmWlI4NWdicWczMXFtaTUwVVNLblF3c3R4Y1J3RDVSaU1LSXZ4bmZFYitOVHdGb1JsNCtRc2RFWlEvYUVzbGRkNVBpZnAwOWhKRTRIbVF5TTNjK1BRVnY2NmNSRC92WElFRzNxS3dYUXhUUmRYaS9keUNrWS9iUVJnMUNpMEQ2emhuZzdtbDVMaEkvSzZTUmlpUFdNZysxTWQzYWV0TGRCcFRmNFZDOVZrb0hQaW5Zd3FCY1lRbDhESHZZWjR1UWRDdU0yR3R5NTJlK0RDcjVFTkxqcXRPZHhkTEN4VE1IV0NDUVI1OXZVODIxS0VLMG9FbjdnNnlOUUpKc3J0M3hHWlpzbEI3N1hid3YwT2l1Sk9HTFJWWWVhZ0tDWnhESkFFdDU5dkhLeFM3UFR0OGpZNWM5NGVtRklnQW41Q0owOUFSa0lINzZ2STVlbjUrK09GMytpZlpsRzI3UjZYRzRkYlJtVUtmdzRRQklhRDhJTW9oMksvWU53Z3liU0prckVqSlc2dWdJUERybmFiNjNpZjE5WUlMam5IWVBrNnphWXRtbFJtZ093NkFkaUthUTBSL3VYMFNpeGpXOHhxUjR4S0E1bDBobGhmalByNk9wbzdtM0dFU1dSSUEzMjlmYUFoV2xTMFUwK2lRK2ZmV3k4Y3NldCtqS2F1TEVnMFlDRUZWQmNIK05oWlE0bW43VjNYeTJGU2FIOTQxMkhtTDZscGpRL210STZYdWZHR051WnVxcUV1bENLVEVjUlRmNk80TWtQRHVrNXl5MjZFbXJFSUo0TWVnTzUrQWdqNGdrd2VObzIvdmZJZldPRU1aNTd4YVhyVHJiUzFMaVhabk9MRFozeVhrRC9NMFpMYW9UVm9vWGpMTHFWbVZwS3ZqSHVOU2pmSkgyYVc4WFJ2R2E1ZklkUnhTMmlmTEFoa3RlYVZmSUovNUhvSmpuRzQvUk1ocmpuWFR6Z2tjTjJkSkVhaHNFNFlVYVIvQkVTbTRRYW4wOG9RRmljeXpOeTRsbG50LzJSVjN5Wml1VVJoMzVNRnZjbm9kd1lRcG9XenVZbWVuLzJBM05MNStFYU5SNFFqNE5nRXo3d0FsZkdLeXNNWFhZMjl1Wkgwckpld216Y2lpMHM5c0lFQkFCVTRtdXR5emZEUmpkaXhPL3h0V2RtaHhXNkVFRHpYcUpnMTh1ZU1IZlpoUUxCNnhDOUltVUZxcS8wSDFTUjVaOXE2ZGQrK212MTVwZ0p3aGN2TlR3b01meGJIMllSbCtrR0FiWGNqRFF1VkZ6akNaZit6UHZkTjc5WTg0amoxQTUxNTV2RTVPRTc5UmtwcnpPb3k5Q3R2RXIvMlpyanpoMlIrdkpTZzJ3bW1qNk1oRTh6RDNkQklLUmd4b29UVnEzdVllRUlGMTEwM0dvRFJZMHBadnF5TEVTTktrRko0OFJuZFAvSE45MEwrenQ2ZnZXSmxSeU12YjFoSTNyVzNOeURhME4zaWdaRUdpd2lhUGpiSE9nRG9TdlhoTnkxS2cxSHFpeXBvUzNTVGMyd0NwditnelNsNy9YcGtTUW00cnRmOGROditzYTBacW1udTBLdGtRZS9iL1ZnaEo2N29VNS95anRrMmJtZm45bU1hdk9zcXRldHZLT1h4VnVFNjI0OFZycWRpc2VNQzRxZ1NWc3J6aVpyZTg0djkrcS8wM2Y1YjNJNGVoR1dDMWtRL2ZoMWwvL1VOak5xcTdWOHIvdEluaVZ4L0dUM2YreW5KZXg4RElVajgvUkhTejg2azVGdi9RdkdYUHVrVkt6dXU1K2c0eUdhSVVzSkpZK0htNitDNjg2RzZzbUN1Rk5KK08yeUxSM3JMK0V0bk5RdFRFUS9icjVBZjgwNUYwd1B2blorTXNqQVY0YzdPS202dTdPQzYwbTZxZlRhNFVGVU90MzdJKzYxSFhvYS9QQW9MVngyNENTSUFxU0RsRTh5cjkvSHdoQ0J6NjMxa2ZjSWJ2NmIvYmEwQklDTVN4Q290UGppbFdZQlZXb3dSQ1I2YWZYQ1F2S09CRUJBRmlyWEdjQno2WnMzeTdzdHhLTmFhcUpTRTJBRXBMZzUyRFIySzcxSnEzRFlMWjVPZi9Od3dnU3RpNkx3Zy9hY0s4ck85bWtaN1ZZRFFMVjBFcm9pUm14bkIyZVRIYmJOQTZzT3FUa2psUmRBRFAvb2FaV1ZsZEhkMk1Xck1hSHcrSDQ3anNIWHJWb1FRMU5iV0Zocmc1V2x1YXFLc3FvTEFqNzVLOGwvK0U3ODZ0Q0Z2N1U3eTVWKzh3SmYvNndtaXRTVWdJTEcxRHlJQnBvenprcG0vOUxQbitkSi9QbjU0ajBjRFRCcGQ4NDd4K2t3Zkhja09ibi9oUDduOTZwL3pqZk8vdzlLV3hieSsvbFcrZFBiWGtFSnl6N3kvRWJVaU9GSVRpd2lHYm5XNTl2a3NKeSszY1NYRUl4S3BRS2dqcEQxcUdPVExjMWxwakErWDlWRFRGMmZXUE1rZkhreXpZS1dEMXVEMys4bm44KzlxcnhlRkJUT20rdmpvRlg0dVBDRkFZS09QanVjc0V2Tk4zSlRnWU5MdkswcjJNLzVURm9aWUYvcnhSejE5eERBUTRURFVWNEJ5Qjg2QjNYcGdlcm0zN3hVOENFcGhTQmhaSGVRaDN5RCtMeFJrU21ZelFXMnp5U3psMVVBRFdXRWlsWTBTQXFFMVd1ZFo1cXVtZDNBTnVuQWRLWVRYU0sxdy9VUFY0MzBJTHZKRnVTVlF4akRENTlXRG0rL3RuQmFsUVVqRm9yaVByNjBZU2RGYXpTa241cmg4Mmh6NnNxV0UvQVkrMGNXU3RSWnZQMUJFeWkxbVVUeUZrUHZBSE5ZV3ZUcUNFSnB1VmN5T0dpV3huMHRUSUVVT0R4bFZjMi8yQXFaYkt4bHV0SEpuOWpLV09jTVF3b1pDMDZnak1uZkFsclplZXVOcHdrSGZYdmxQYTAxdlBNMld0dDRqWnlVWGZyZ3JsMEJweGVaMEY1MjVPTFdCVXZMYW9UM1RpOWFhaUM5SzBQQ1Jkbk5zU25VeU5GeUplUVRxaDZRQUY4WEVrRUdOL3o2dXVOSEU3UUZySnpleVpZTGJBN2ZlYUxLNjQxNGlvZk9ZaDBJS0EvY1FKL285SDcwcExFV1ZGeVFUQW9weVdIa0wwNExNaWlJTVN5TjltdkNFQkRNdXpSQlBhRGE4RnNYdkY5Z1pnVGsweWRqTDBtelpvcGw0YVpwRTFxVjFsWVhQNTJHUDVhUk5LaFZBcXowbjBjaUEvMzFoaW03Ym16S1pESC84NHg5NTdMSEhjQXU1UUU4OTlSVGp4NC9ubTkvOEpzWEZ4ZjJLRzF1ZE9icnpOZHAzZTc4cDVYQ2NCbzdxdnpYdHFCN2Zwbjk3dlY5Rm02bWhNdSs5Ymd1STdaOVg1cjFqL2IwUGozcnFucU56WW9mMEgxNlYxbDdQWkoySFU2WXJSZ3haUThBUG9WSnc0d2Z0RGh1WXZjMlE2QlVKN1AvZDRGVlNwMXgwVjk0N25ISzlKcVBMNGdnRUE5Zk42ajFvTHdoWUdaYThWaW9QT1liZEh5UUt1V1VhZzJRYVFpTEhFSDg3MDBwWGNjMmdGWncyeEVmUjBKUFJ3eS9GR24wWk9WSEZ4dTRrTGZOYVdiUmlLMjh2YTJQKzJtNDJ0eVlnWjRNaHdXOWlSQU9lZnFRMFd1c0R3dERmYnhZTlF2Z01LTDhKSW1kN2E2dnJqOUQ5SjdDN2QxV2JqSEx3ajl6eDJ0bHBBMDNPZ2R3dFVQNVpxTGdGSW1kQzhqWG8vZ2VrWm9PYmVlL3Fzd2NDcytDWG5rMi90SHNKWFprdVd0T3RYRFgwYWlyOEZkdGJEOE1Pbk55dVhCZFBORC9PUHh2L3lkWjBDMEV6NUZteC9jZ0xNcVFJVGtsZ2x0dklvSXVLSE50NUVScEk1M05VaGFNTUtpN3pkSStpVXZLdWcxUFFlNGVYVmVJemRzMEhTdWR6aDlVMjFrcEQyTThYbm1uanJrc25vdDk0bkUrTU81MUx2bnNCTHp6MkFJbGtHNzZRSHpUa3NobHVPYW1jajF4Mk5vUGpDK2hzV3NmcXlPbmMvSStWRUkyaURzRlhQbjk1eTdZVTlIZktXcVczNTJwNU9MbDczbUF0MDJERWtGSWlJYyttU3FaemJHanV4WGIyYkFQc2NsMHBNQVlBMHpxakRSNk1EZVhVVUJkZnJsak5CSCtNNXhKMUxNMlcwbUtIU0NnVHUzRGJsdEJFRFlkNks4MEpnVjR1alc3bC9HZ2I4OU5sUEJnYlNrWWZ2V3RDYTQyd1RMSzlmZno0OVVvbWp2d1NaOVJ0UmJtU0Z4WlcwTlNjQlJJSXd6d3E5c3YrcGxNbnQvQitvcnlUWjBWSEk2ZlVqV040V1QyYityWWVNZi9qZTJjVDkvQmJTNHFyc1hOcE1sM3JPVDFxRWE2SWtza0xzZ0diWVdHQkw5eEFXV2tkS09XVkJMd1BwMTFJU0NaZ3dadCtYbTN6Y2Y0Tms2aHZxS1c2dkpqdTdoNmUrMXVRODk4c3dSK2lrUDRzQ1FsSnI3SjVMTi9GdmJsMldyVzl2YWFpdjZkd2YyVGN0cGlObTg1VFVoemk4b3RPNEZNWGp1SFUxazMwM2Y0d25TKzhoUlFDTXhKR3UycEhFMTBwUUdtY2RCcXp1SWlLeTgvSDkvSExlSDV3bnIrdXVwZm4xcjhGQ0F4L0dLWFZRY2xiSTYvM3F0aEkwK0c1MEZoT3ZqZkFMMC9kd0g5LzMrV0Z1ZDdoODY2R3UzOEt1aUhNcHhlT0p6K29EQ3RyRi9wUDlaL2NmNzlVWVZWSHk1bGFONWJPWkM4YVRYYzZSbE52SzVaaGN1SElhWnd6ZkNybG9XSUFvdjdRKzFaMDlxWVAxVzhxMEhvSXVjN05DQmxIS3cva014QWVYR2dPZUx5UStKaTJ4MXdYbmNvZ3RhYllVbXdzcmVPbDhLQ21tQkY0eHRScTNYN0pIQUc1SFozVjBrQXRzRjhBdmJtOFMzTnJqRmZlYnVUS2M4WUE4TkxiRzJscTZTT1hQKzd6UCtyMEN5RlFlWWVHY2ZYOGQxa0xBdmhPb0o2bXRhMElYei9aTU5yN1IyZ295VXA2aE1KVWdzUFptV3ozZmZUMTVWdjZSNUZWaXRMcVlvd3BseEVPKzQ4ejFFR3ppRUNMLzgvZWVjZm5VVjE1LzN2dmxLZXJkOHU5ZCtPQ0FkTkM3NzJGRUZKSU5tMDNnYlJOMldTekpPL3VKaHRJUWlvcFFDQzAwQWtRZXJlTmNlOU50bVRMc25wNyt2Tk11ZThmODdoaWcyMUp0Z1E2ZklTZk5qTjM3cHg3MmozbmQzUzIrODlrU2RkSTNNdzZodFZ1eEdyWVJNM2tVeURlUlVuVEpsUnJrbmZIbmNENjdqRk1xNXJBY0tFamRrZnllbWM5S0tWd0hJZmpqanVPNWN1WDcxa25lOFY5ZEYzSHRtMis5S1V2Y2M4OTk1Qk1KdEdVd2dGK2xHaGltWlhraDZFS3drSWpwaHgwSlVDQ0RDbTBDTVRlTVVodDBnaU1jeWk2S0V2MExRT2p5RVg2MVdGZ2VlVGlRNjZEY2hWQ053R1RycWVlcCtGSC8wZHl4V3IwL0h6MGttS1ViYU1Hb2pXcEZFSktVc2tFSGRGT2hwY05vU2hTd0JXbm5NK0dqYXZBOUo3Ky9uSkthdHFlejRSQUtmZXd1RVNZeG9DYXBxMWJ0ekp1M0RpeTJTeWJOMittdExTVXdzSkNXbHBhaUVhampCNDltblE2VGUzV3JTS1RLUld1cndBdEZHRmExejhKNkE0N0F0TUlsUlF3YVZ3VFNhT2J1alZ4L3JCMEtvbTR4YzVrQVVXK0JCTjl0UVIwbS9tTncvRzMyN3libWNGYWZTcG41Ny9CaVpYdFZKVUlscVRIc3p4OEhyWWVQS2F5Qk0zbDkwOVA1NnpwTzNqanpYSStlOTFhYXRvamxCV21XTHU1aklaR2w5bmpRN3o4eGppRTN6NWt1MWNCdWc1T1VsSFg3UG1jaXphN2pDcVh4Rk93czlWRmhNUSs2ZFFpbHhMaldvQmpNVGF4a2JNYW4rSGFuVTh4TmJHeXo4TWF1L0FYbDFZYTNIRmloQldWeG9EQlg5eExETkNjaEs0TTFLVWRpdHA4NU1kMmN0V2RoYnkwenV0UGM5NGtoZjJkRnB3U2c5aVVKT1lXOExXclkrTFNLQVRSYkI0cjI2Y3pyMkkrbWpoMDJlc3F5Y3IyNlVTemViMFdhN3oyNWpkNjcwSHMycGR3M0tQZTMvdUFXbERYS0J4WlRkblU4YlJ0cUNYZTNEWm9VSDBJL1pTRGYrY3RjVGVkUmltRllab1VqQjFEVVhFeHdZb3lTcWRQZzlJU2RFMGptOG1nYkJzaFBMdEJESWJ5QVRndC9PNkg3cDVTVm9hR3p1WTlXR2w3UGV6NjlvWmNBcE5nWjFjTHV6WVlZdWw0N3ZlNTMwcEpTN1NkbG02dkIzaFA2OTAwNlhwOUpsSWhrQzZualYvQzkwOTlpck9uTFFVVWI2OHQ1cmNMODNoOWl3OUhDZko4TGtLb293M3BsbE5FZ25HVmFiNTdmak5CbnlLK0prSGJ2VTJrMWlXQVhLMnRFTWk4UEh6anhoRSs2U1JDSjU2SWI5dzQ1RUg2MkdVZGkrNTBncFo0Sjl1N202bHBiMkJ6K3c2MnREZXd2YnVaNW5nbjNla0VXVHU3R3dObTkrYVAyUFYzQ005QUFBMUplS3ZGKzdlZjBaODNmdXlRclRlQnkreVNyY3dxcVVVVDNwdzRTckswYlNSTDJrYmxjSnA2bXpsZTNPZWRQbnZHb0pCOHYzVWRNVm14d3F1SGwvbUJ3OGJjNmFLLzV3RU43SjBvY1pEMUlZVEFUVnRzVUlXSXNsSmlIVW1jY0JIU0RQTndZNUIwdCtTNjBoSDROSEF0aS9LaVBEWVpSV1NUM1JqU3c4a1lKUGpXRzgySDZEKzRvQWRJYjNrWDFieUZSaUZZazZsaUdnNkdGU2NiYjhPU0prcEJwcXVaY0hFNW1pNTVhMnVLMnBabWdnRS96N1VVOHZyckhiaFd5dHNnUCtxK25iZEZQVEpQb0tPWVdwU1RBWGlmN1ZyNi9jRzB6RzJoczdrNVEyT1hoZG9MMjFRQmpWMFdtNW96dUI4TWEzejB6STZVb0h1Ump0UVVrZWtPWnBFM29WWkMwUHE4U2ZjaXZVYzlXdy9wQ1F1RnN2eUF3cTVhaGozNkpWUmVJMTFaZzdiR0hPVElVZDNCT01Bb2MyMVFDbUtDT3o2UjVaZlhPV2c3aXp6b1RkRy81TktTRFoyOXNPcUdNTFQ4Uk9KV0VoQlVsdWF6ZGtjNTBOM3J6S0NVUzdSN0krSEVhR2p0UUM4TmtRMllEQmsvbWU2Mk5qb2FtOUhiTzNCY204N09idksxZXN6UVdES1d5ejllcStHM2R5L2k5ZFdkRUJqV2I3YlVRNGFmQ2FYRCtaYzVGd013b1d3NEljTi8xSTQvR0E5cnRxS21aaGoxb3lkZ0dRRXFhbGFUcnRQSTZnWWpjYm5lbE55YlRoTVBCcGsyYlpxM0Q1UGJqL0g1Zkd6ZnRwMDVjK1lRQ0FSWXRteVo1OXNMUVRhVFllVFlzV2pyTjdMbXh6OGg5ZW9taEJaQWR3M3E4c3ZZWkU1QytmSkpONmVaMlBFVytsRlhKWXFzcTRFUjVKNjNnMndjSmJuc2dnS1d2N3ljV1dOR2NNS3BjN0VkbDQwdnYwek40azJjZmY1MEhucWxpd1YxaFdCQTFqM3FIY3dQYkJtNkVyMEF0bXoxUUFMMEFoM2JrUXhTLzZHaUMxdVA2TGdKZVRxZkdoa2pZWWcrdFdkK004RG45N2wzbit0ZEEvTW9HNUFxRjlkdjY0aHp6cWYveHNxTktXYlByZWZ1ZjN1T0taTmFjS05ldjFSRGMvY1o0cDRYNG9DMzhCNTdWQ3F5WFJwZnZIUXBHeHFLK2RXOVowRkIzTU1BT2t5YU56M0FULysxaEhuakF5Ulh1N1MvYXBOYTYrS21QYmRBOUNjUlpFQkptYUp3aDZLOE8wdFhRRkFhaDZKU2w3WXlpZXFMRUU2Zkd1azI3bzZkaUVnWU9YSVlhdE5HN0pWckVKKzhCditWbDJCdnFNRjBUa0ViT1F5VlNIcjNwaFR1anAzZ0R1YUI3VjRsTGpqMU96eVhRNVBvNDhZZ05KT0RKb0ZJaWRzZEpYSHZmU2piUWlzckpmbkUwOGhJQksya0VxZWhjVGNPM3RHL0hZV3lIZlR5RXRMUHZFck5LVmR5Mm11UHNHWjdIYWZQbk0yT3BrWU13OEN5TEN6THdqQU1OdGZXTW5GSU5hKzhzNERaaTUraDl1TFBrSGw1UG5wWkNjbytkbndpY0hHVWppWnNGQkloRkVNQzlVaWhTRGtCV3RJVm5GWDRUejQ3OW5mOGVzTzNlSzNsWElKYUlsZFYrTUVMK2RSRFM2YzhJclZ4TkNPQ3BsQk1OakpjR281emhoYW5mVk9LMzcyUTRkR1hNOVExZkhETVVOZGcrbmlkNjg0MXVmanNNUEdTQ2Z5KzYwd2U2enlEclpucUhBN2k0Y2NlVHhtK2VrQkpnaVdIejZDN2FYTlRFNXRxTmpOaitnenlJaEV1UFA4Q25uN2hlYlRDQW1qY3llYnQyM2k1dVpuNDNzZjJrRm5HZnZGVC9YdENYM3FrQi80TXRNVnNxZ3NNeWlJNnJUR0hEYzBaWEtWSVd5NWhuOFN2Qy9LREdzVmhEYjhoa0ZKUVhXaWdTV2lMMjk1KzNVZG9mbi94ME1iMzhxZmEzNUE5TUI3WXNRaWh5NDhZSHYydVdSZEM0UE1IU1hYL0VYLzdGOWp5K2pUMFM4bzRyVEtMM3graWh5aWlCNldJdExtd29JVlhZc1YwMlNielFsMDRPVHk1ZWFFdW5zaFdVS0JiWEZqUVFrVGFSMzFlVUlwUXdHRHNtRkllZjM0dDhWZ0dFVEtSVXFCY3RjOCt6eTRFT3VFM0VLYml6WVZiV1JieE1XMWlCWnNidWtpazdkMG43aThtdmVNQ1BwZDNOMmpNK3Y2L2NlVkpqWHg2OW4zTUtWN0lUY09LS1l5a0tkYnVweTJSNWRkdjM4US9sbzBubGVvQ3Y0TnpDTDF0REYxajdyQUM3bC9WekduRDh4aGFITUl3RElhV0RzVWZYTUhPOXAyc2ExalAxS1pKakIwNmlsanpUZ0p5QlNVVEJGMWJpekVJN1BOVUhDZEI2Y1JPL0tJREp6VVhYOWxZU01VcEVCbTBvRTdBWjdBMWxtVm9XWkZYSjY4OEg5YnBpNlpCdWR2UGJEWkl2QllnY2xFU0dkNVhyTGtwUWVLMUFKbk5odWQzOXVMeTJaVnk1N2dRalN0ZVgyTHh4Ky9HbWIvQ1d5Y0ZFY0YvZlNuQVZ6OFZvS0hSNWJxdlJubjRKUXZRa0JlUFFwdzVES2ZBajJ2MUlUN28wVmlyUXFEYTJzazg4d0xXb3FXWTU1MEJDS3hGU3hFbFJmZ3VPcmZYZTVjUGRBcVpGcWVQcXFNcUw4Nm9vZzd5L1ptRG1uKzZkQm1TSCtXTTBiVlVST0xVZCtmUkdBdVR0b3lQOUJ3S0lmRDcvZFRWMVZGZFhjM09uVHVwcTZzakx5K1Bpb29LT3RyYWtENC9NL0xibUpUM0V0SXdVTUpCY3pWUE5tZ3VRa2xVTmd2QnNleHNhcUdqclkyS2lncTZ1cnFJUnFNQWxKU1VzR1BIRG9xTGkzdU5qeXNLSmVmTTFMbnhESlBKNC95OEdDM2cvdFpTWHVvc0lPWm83eFUwU3VWRXhPQTYyaWZjNWJvb29UQU1rN2NYcnVmSmU2N2tLeGV0WitSc0hkSU9JWTVOcktKdnVtemxBTjFWWjRBRjh4VUwzcTcxR0VJZmlmQTdxTTRXa0lLWWtOejJsL1ZlOE5iUXdSME9tZ0t0TjV1ZGVZeG9VNFpqYTNRbVM0bjRTM0Z0eUdnUmRDT0pPVndSRDFUUzBWYUU2eHBZVHNrZ3g3NnZRYUdvcUtoZ2FQVVFPbUlKZ3BwTjkrTVBrVzdZZ1ZsVmpWNWNnbDVjQWxLaU1oa0MwMmZpSnBQZ3VLVFhycWFyc1pIZ3BPR01LS3FpVVBQUkVHdGpWZVBHUGlrR2tFcVIxUXhHZGpYeTJXVlA4UGZML2cwN3Y4QnJzSHlvMThzQnBldmRYVnp6OGhPTTdHb2taZmlReXUzblFnZUU0UUNobkZ2bTlFVWZ3YjFXbWlBZ0pYNGhtT0h6WVNuWWJHVkp1aTRuK2Yyc3pYcUFpcE5OazZUckVoU0NzWWFKSVdCRkprTkFTc1JIVEhISUk3aGZrZXNsWXptd2VKWGlKLzhMWC9pNDREdWZnT0hGY00rek1HRTRuRHNkWG50WDVScVQ1NG9WRHRPL2NRL3pBQ2tFMjl2U0ZJVjF6RjdNaU5DbG9LTEFSSmZpc0p5MGFMcm5pYWNpUEJSem1KKzhra25lV0lLRk9LRlNvcGxqdi83ZC9maEhLZ3VoTE05cFI5QWdTbWdRRmJ3aVFHUXpWRzNvWk1LR1dxWTlzSmlwUG91eEl3dW9tam1Gc2pQTzRQU1RUNFh4b3c0b1NKUlMvUWl4dGJmbHBFTFRkRjU4Y1RNZEhXbHV1KzEwQUw3OTdUZFpzcVFlVFROeERoTWgzdXNucHRCMWpYLzg0d3FFZ1BIajc4SzJuVnlSK0NHT1RRMnNPWjlmTis3UWJVUUI0NHNiS1luRVBLVFkzZDk1RGFJeXRzSHFscUdrYlFQUmF3bUptd1lOdUwxTTQyVEs0dHMvWFVBNGFIRDJ5VU81OHJ6UjNQZGtLVGZmWi9ETFQ5N0Q2Vk5xanRIWUZOS0JvYVVHeVpUaXZuczcyTmJveWJYNzd1MGdtVklNTFRXUURqanlLSWRKRlN6TTEzaXczT0JMTzdJb2NjaTN4QVBsQmd2enRZOE1UcEtXUG5JZEtZVkN1WkpwQlhHYUhZTS83eXdINEtieVpxWUY0N3plbFkrUTd2czNsdmtBMnQ4NnVQZlJGL3YxZko1MXBNdkpNUENQSFlWLzdDaEtQbjB0aVVWTGFmbmRQVVJmZWV2WTdLRHR6U05Db29EMmJDZVYvbkp1bmZ4MVBqdmlHczl2dDdMb2hvbkkydGlaREpGSUdDd2JWK3hwRU9XNkRnRUZHQ1oyTEk3bTg0RnBZRnRaNWhiTjRKOG4zOE5kZFkvdzgwMTMwcEJxcHNnczhCcFo5N1gvSnZDNkJ4aURSVDdIVk0wcGlQbGRDbXlUQzliQnVXc1VTb0NPSUdOQ1BLaVFidCt4d0s1RVF0OFFoWCtVQlpkYjRJSWJ6NEg2Qk5WdUxJMExwY0dGTjVxb3BLS3h4V0hURm9jVmF5eVdyTEpadGM1aVM1MURNdVZpMis0K1Z6RU1nU1lsNll5OW53d2RmUDVIeHc4REtWMkU1dkR3amdyKzJWN0k3ZU5xdVdsb0N5aklPZ0xoQ295d3krV25OSERyWDhlamdtbEtpeU8wdGtaUlFtSGJMaG5IeHNvNkhqTllEa01tRkZKWGEvUE1BNy9uMUcrNk9KMFNSeXBNemVPWnU3YVY4ZlZOSStsTytkQk1DNlVFaDhYS1FzRFFVVERuVkJnNUhuVERLN0liTUlXSllwOW9pc0ltSzRaaHl6RzR5aVd3NkRuMHpUV3dvWjVJOUI4NGhSWFlSWlhFNWwxRjVxd2JNZXBYNHE5WmhwSVNaOGdrck9JcWZCc1dIWEZzNzRJenB4K1dIZG5ZRm1YMXhoM1lqb3NtSlpQR0RhRzZvckRQZ0NXZTI4K2N2L2tiMys3WFQvZWJ0M3h0WDNzdG5rRDZUTExOclNBRWRqU0s4REVnN1dtbHdKR1N0ZHRicUM0NGtjTGdjbHE2bWhoZk9nR2xJT1dtMFpSaVM3cVZqZHNFb3FVZUpVdHBMLzB5eHhYdlpKVHJnR0Y2VFdhZExHUWRKcGFPcHpRMGxQWGJsK0ZJZVhTWHNjL24vZTJpZUh4UHpHai83L29ST2JrOVMySHNlUzdxQUZKR0tkQWwvT01zNy8zNHh6M00yMTBBTXIzaFYyclM0ZlNLK1h4OTBtK1pKK2FUK0x0aTJ4TUJyQmJoMlJGeTM5OHJGNHh5UmZGbFdVS1hDT2FyVTdsOXlWZDR2ZmxrSEZmMmVCL1dsR2FQN0M1ZGFoeDRFQUpkYXBqU1FCMWxHMFdYY0hxeDVKdWpOT1lXeU4zaHFBOVNNOWFPRE5FbjJrbStFVVZsM0w3YjQrNU40VCtZMEhMNGNZZUFnZXU0Zk8zSHo1Rk1XY3lhWE1rYkQ5ekV0Vi83T3dBUC8rb2FUdi9FWFh6cGgvOGc0Tk5CQ3UrWTk5bVh5QjdKVnZzQWJ5WXNUVWh2azNTOTdnbFcvMGdIYVlLVDdZZW00OUVtM1JsY2FIMUkvYmJCNGk0NlNLTkZHNGtmbTVDeVdHUlVjWHZCWERaM1QwSC8ycHM0c1g5NkZTKzdESTVqeUwvVDMzM3o0RWFNREVCaUFYYnIvNkJYL1JiTXFoeDZxVGpBYnczSTdzVGUrUlgwMHU5Q2FCNjR5WjdmWERpeXo5dUEyYitMQmxPSG9NWlYydVhNTXl1b0tnOXczMlBiRGltNDR5VmZ2MS9qOWR4M3Znd0FtZHBSdE5hTnhEZWlscnhaUy9HUHFFVUloWnZ4N1RIcWp0Z1U4V3d0bytvNHFpNzdDZkdhVjBsdVg0S1JWMFo2NXdvVVVIemlWNUQrZkl5Q2F2eVZ4KzFWaGF0eURZKzEzSDA1YVBMb0ZtRzRRcUM3THFQU25aelJWY3RablZzWWx1bjJnRlJNczArdlhmWG5maTV3TDl6M2JmdktIMUtVQXpLNzlJd0ovT2I3Ri9DN2h4YnordUk2S2tyQy9PcTc1K00zUFp2bytndW1zdlUvTy9uakkwdFp1YkdKMDJhUDREdWZPM24zdWY3MTQ4Znp4cEk2N245bU5UdWFvM3pobWxsYytyRUpLS1c0NUdQaitjbFh6K0NYajZ5bjlZVmY0Y2Zrd2R1K3hFa1Q4bkNWNHZJekovRGIvN2lRM3oyMG1JVXI2akZOalU5ZE1vTUxUL3ZWSVRub1Rsc2JXa2tKNWRmK0VHdm5UcHkyTnR4TUZ1SDNlUVdyS0dRT0RMUTkwOG5DOXFYOGZmcy9lTEh4VGJxc2JvSmFFTE1QQWhST05INll4cGhFQ3dYMjhRZmNWQnBsOWY5aTZsMVkwMFpDUUZyUUlmYUlCU09XOVBJTWV6bk8wZjNjS3ozenVWeVg0TlNKbkh2YWxXUU1tekdBb1lMRUhEOXZ2TG9jS2NVeGkxa3A0Y1U4bHBZb0VvWWdhTUhKVGZERWFHZ3hCTkp5Q002YVF1bjA2V1RybTRqKzQxV0VjWFJsYmJCQVVHVG1VeEMwS1c2TDRtWWtWbm90cXI2WlRFdVc2cFB5U09zRm1QNmpNNDltTUhIWXgyakNSUWtYVGRtVUQrMWlUV28wVTk1MHFLMk9vaE5pVEozSnBtZ3hKdzdkUnRQMlFveGdITk9md2ptQ25KLzlYYXJxNnVwK3ZhWjM3T2g1QTVYZGVWUUNOTTJrY01nOFFrVVQ2S3gvQlNFRStXV3pVSFlNVFROMzI4eTlYZUFqRldSMHdYUGpJOXc5dTRDMnNENndZdEVTaEZLNGF5WHAxU2FPcHBFSWhXZ3VMS091YWdTYmg0NmhybklFelVWbEpBSWhIS2toVUFqbC9XbnVzZkZqKzV0OE9GeDhVNFczVzVXV0JpRTd6YTgzLzViUE5ML0ltd1ZUcVRNckFCaVJiZUxVcnRYTWpHNG1MVTNTMGtBNlJ3YzBjTmMxR2pzTHdkSEE4SEt2aER6MGpHQUJLTmZMN2RqV1hBNmFnOUR0SXhyL0phZU9QNlRmeFJJWi91KytCYnpIUVZhS3NxSVFsNTAyL3FDTmtRY2lLUVE0TmlFaFVLTzhPVEt6SHRoQWYyazA2eXJBZ0xmWEpQaE9LcC90TGQwVVJIeFU1YnZZVmluTjhVb1NqbzhoN1M2cmFxSmc3Z0ZCN2V2NFg4U25NYVhDcTQ5WTI1U2dJMlgzaWJ6NForR0V3eHBYdVJWblVxSUpYYm00UXJBK1ZFNkRtYityRjFvZjBLTEJvT0ZSWGJpS2tjT0srTVNsMDdqeDh1TVlPN3dJTWhtaUw3eE8yOTBQa1Y2NWpzQnhVMGg5L1dZZWFQZno0TjlyMkZyYmxpdXc5QUJERHU3cWVVRDN0ZHM2K01tdlgrZitwMWZ4aVV0eTF6bjNkUEpPUDVIbzZ3dHB1L3NoQXJmL2twdU9tOExsMTV6RkUrMWplUENWM0hVT2dVbmRYRDhES1JTMnJXSGJHdFVGTWY1OTRsYitaWFE5cGkrTGt6V3dNeWE2VUFnVWRrenM5dDNzakVEbWNuY3p1ZDk4Wm53ZE40ell5UiszRE9WLzE0OWlSMWNFZEFkZFB6UWdnZDEwK2VVOTFPY09yRmdCTzNhd3UyaEtTcWl1aGhrem9LY0FJRTg4MGN0Q0Z1d2RFbjJJUzk3VkZncVl1TkRoVzNsSkpwUUYxUk1ORWRaMSs0VGw5azVPbU15UGZMQVFjeFhXU3hIY0pybHZmaitBYmFNeVdkeXBGcjVydkFZTDFpSWZ6bW9ENFRPOUxsbjdHZHB5c3d1dVJPWWZRaUZUZEwvRFJVL1pRZEhZNmlBRm5EZlBpL1Z0cVhkb2JITndIQzBYQStwRjhkQWI0R1hTQXhYUFMrd0srM2lBY1NqblBYWmVqMVhwUVJyZVdRMHRXUFZOK01hUE9MTDZJYVd3V3p2STFEVWd6QjZVSysvbklNK2NYdEd2MWNQQy9wMkdmc1F5Q2dsWVFKUDNyeW9CV1E1NU9sVHJncGtsRW1VZG5GV2tGMXBEMDJGRXRXREdSTW42VFlxT0xxL0pUVy9HQWFVQTZTZ3E4bng4NTZ3S0pwWDdQZDkzZHd3aDF6aFNDSVNVdEhkMm9nUmtoQUhDWkdkVEk1MWRYUlFVRmVXYVNLcGVpejk4OTRvSjczSFlwQVMvcm9HQTZpSS8vM3JlbUgxNkVSMU4rc2xSdnA1UUNpVUZxNGNNNDlyU0JieFpNNHF2UG5JNVNKZzhvb0huVDdpVHAyUFZ0RmRXUVRhTDZzTzhHQVdVbFZaenhrV2ZvTDV0QTY2YnhyRlRsSlpXTTMzTUJLckxSL2FKQ2E5Nk9IK3VwdkZVVzRqaGQ3V2dDL2gxUXlWT1VFTzRici94SmZzajdacVpOWGFhdTVPZDFCUWx1ZUZHUDErOEtreDFoY1Ixd1hGY0wxbFA2QWk5QkJtWUJLR1RTUHRuVW1jVnNxaXpqZGUyckdWUnkzUFV4aHZKMkduMmFWclYxdzErbEl2dytiRzNieVg2d0ovSi8reFg4YytjaXpsdUVyN3BjMGd2WDRRYmkrTEd1cEY1K1JSOCtkdWtseTFFWlRKOXB5NzZjVjJ1N1E2c2hPUERuYWNEU1pkOFB6Z3F4SW9kWHVPQVFDaElmcTV1b2I5UldWYUh0SlY3cGhrdjNpb2tTamtJcVdPSndacXNRUnFrSG9hd2NCekY3eCt2SitUWGlDWnQvdlo4SStlZjZPRW4vWE5oRzlHa1RjaXY4ZnZINjduMTgyTVFXdjlwbXVyYU5ub29UTGJJUit2Zi9zU0VWMXR3aTN6UVQyVDdMbDlCMXdReloxYXdkV3VVcHAxSlJvL3lPb1kxN1V3aWhHVG16QXAwVFhyQW9yMDB1UitLL0oyRHhrY2xvNHVyQ1JnKzh2MWhBcnFaeTAzem5udWVQNFJTaXJBWnBEaVl4eTBuWDBQV3R2SHBPZ1grQ1BGTUNyOXU5c2dpN3Z6bEwvRk5uWXF5ckJ4UWswQm9Ha29wVkRhTDlQdFJydXQ5NTdvSXcvQytzeXlrYVhwK3AyZFlJc0poRDZNbGtZQmRlV2k3ZnJ2clBKYmx4ZFNrOUw3Yit4cE9MaDZrYVFncHlhNWYvNTd4RnQxd3hhSGJHcTdDYW13bXRXQUpLcE5GNWtVSW5uSThXa0VlV2w4dC92OWUvQ0VVc0tBY0c2SHJJQ0g5eGlMYXYvZFRNb3RXSUFJK2NGM002Uk1wL3A5L3gzL2FDYnZqaGlJWE8xVzJqVlpaUnVtZmYwcmtrMWZzUHRhTnhtaS81VmJpRHo3MTNtTzFReTg2a0JKbVRvRFBYZ0ZYbkFubHBia1lUdzRudHNVeWVMeXppTCswbHJNc0VmWndHb1E2dEJ4U29YQ0JKZkVJeXhKaDdtb3Q0N09sTFZ4UjJFNjVhWUVEWmNYd3hldThhei8rQ3Z6bENWaTJuZy9FT0JPQWRDRmhDaFlQTVhsc2NvQjNoNWlrVFE5M0JuY0E4WWdRNkpFUTRTbWo2WDVuT2Vvd2tlT0ZsSVNuakVhUGhIcFVLMlFkSWJDY0FuekFjR0NZOEdyWUE2TkhBNUI2N1RXR09RN05TdUhMaFhDUG1la2dnWXpFWGhOQVJoeFE0TCtnRzkvSFl0anIvYUFnK05rMmhOOGw4M29ZZTEwQWUwMEFzc0p6M1krV1NhRnJLTHVUNUxWWE1leHoxK0Zidlo3MnJNM1F5a3BjVjZIck9wbEVFaUVFdzZxcXNDeXZtWDJzczR1U1lJU3ltNjZqOFkybG1BOC9Dbm9oMkVlVzM3UHlMNThGNEkyVjIzbG13UllBTGpweE5LZk5HTGJQNzk1WVdjOHpDMnFPeXZjWG5qaWEwM1BmaTd0dTJrOW5PVVI4RVY3YThEeHBLODMzenYwUmYvM2t3L3pQaS85RlY2cVRSQ2FKTG5UU2ZvZEEwdVhhNTdLYysxYUdVRktSQ0hvNVJxWjFyUFNFd0pRdTAwTXByaXZ1NEh4L0oyMGI0L3o2Qlp1ZDhSbkk4Q2p5OHRZemF0UklBRmF0V29YakhQaTVqaHFxY2RGcEpwKzRJTURrc0VuaURaTWRMeGhrYXJWY2s2RWpHK0lqMzd2ak1OYWEyTE1Cc012TzZldjE4OG5URGpFbTVTS2xSQ25GeG8wYkdURmlKTHFobzJ1U1U2WlU4SXZnR3Bhb0twYm9GUWpsb0lRT3VBamw0T3lTcndKd0ZiNXdrTHhaMHhHYUY3UFBaTExVMWRVeWJ0dzRyN0YwN2xwSFFzTTFrNXY4Ulp4alJ2QWpCcFJLNjduWkpFRFlQUHhZRkJ5NDYxa2ZwOHdLTW5GRUhKOHVXVmtUNU0ybE5rNTN6SlBySVE0cHZqMUthMlM0YkdhWTFzSlNTenRzWGVUdUJaMGVWV0Zlekp5U1V5d09pQXpIdXFqTFZWQ3pyWVdGeTdkeTVibkhIZFJXZDVWaTRmS3QxR3hyT1NhdThxNUx0bVdpTEdyZlRHYzJRY0xPWUxrMmhmNENVazZHdEowaHBQbG9UWGVqQ2NuSWNCbjF5VFpzNVdMMEVlejErOW1ibG10VEdEUTRqcmNwcm40S3l5N0tOUUtSKzkyYkFsbkVsT3FucWVSdG5neWVUQ1pyb3dtZGoxYkVNcGRQSVVHWENwRVRZUFl1SEZ1eDIveEY3YW9Ic1FXQjhpem5mVE5GNDNiQjF1ZE5mQ0VYSStUa2ZDbEJ0dFZrelpNNmk2TVNGVGVRaHZLMlpiSTZhNStLa0VtQkw2QjQ3aDJCWm10SVU1Rk9DV1pjbjBCM01taEJjY0JjMzQxZnVYV2d1WlpIRlBCVFNwRklKdm5iZmZmeDEzdi9TaUFZeExZc2xGSVlwc0hERHo5TWRYVTFOOXh3QTNsNWVYc2VVZy9wMTBzNysvVjhYclBmKzlPZWJ4d01FUGVsbTFNUytFamRyd3MwK2dXRldaamQ1UW5EcFFXU1JyK2dOTlA3dS9QbTBLcVBocGJKYmE4N1VTZ3E5UHc0TjY1MnAzZjJpYzRWKy8xN3lFd3ZFREVMREExbmZodnVScThHVkxXbEVZYWVPNTA2dkVFZjZWZytUTEpFZ2U2Q2RRd05MRUV1ajB4cHVBcjhaQmxpdG5OQ3lVYXVHTGFSZVdOTWlrYWZoVFArYXJvTFQ2Q3RPOE8yalVrV0wxL0svSlU3V0xhNWcvYTJwQmV2TVhUd2FXaStBQ3BYTisvMFVlTUhCV2dCQ0owTXhUZEE2QlNRRVVndGh1Yi9nOWpyM28vRS9qRy9FYUI3Y0w3NFJvRFZ2QzhyMmgzUS9GTklMb0x5YjBIa0FnaWZBdkczb1AxdmtIZ2JuTlNIajIxZGNaaXpMeUJnaG1qTU5QR25tajh6by9nNGluM0YrOHk1eXYyM1BiNmRQMjMrTXlrblJjQU00U3EzOTF4T1YyQzNtV1FiZkNRVzVwTjNYaHVwTldHVUpiRmF1bEZwMlJ0OVk0K3VqYXdVcnBBc2E5akdrK3VXY2ZhWXlWUkU4dkhySmdrcnc3Wk9yMDVpZUdFSklRUFNkcGFtV0RjdjFheGxXY00yWE9IRmlZNldQUytVUXVrbW4za3h4ZmRtemVYS3JmTXBMYXloVEV2UWdZYXBGRUpDMmhWY01UUkJWZDNEdE1iU3ZNSkpmUGVKUmdpRmtiZzlpaFg5OUU5dk82aDlIZXhkTEJZT211UkgvRWdwaUtleWRFZlRCOFRNeW8vNHVlWFRKekp4ZENrQTIzZDI4NXUvTGFJN2x0N2ZIVUVJeUF2N3lBdDcrQ1R4WkpidVdQcUFlVnlxQjluQkN0aWN5ZVAydGtuOHFId1YxeFpzNCtSd0M4dVNSYXpMNU5OZ0JZbTVYZzU4UkZvTU1aSk04blV6TTlqQkVEM0ZnbVFKdDdkTlluTW1yOSt2QWFVVXd0REJUYkJtZFp3MVJwNDNBMDRuMGhRb29SMDF2ajdxWlBHUklzdXhlS0ZtRWVlT09aNHJKcDNHaHBaYUdtSnRmZGJFNzZPUWRxZHkvM2NWbEplUHBpQlNRS1I1TXgxanpxVGNjY0dmb25MSWRQeUJmRnpiN3RVNUdmLzJXLzNmNGRyYnowU3dTby94YUtxTnoxeFd4dHhMTmlOcUpVSmZodS9FRmg2NGR5UGJUTWtrSTRobE9XQmwyRWlheDV3b2oyUmJTU2ozbU5vVlVncXZNYTdqTW4xOEpWZGZOSU1icDVZU2V2MHQ2di93ZDlMYjZ0R0RJWVNVKys3TlM0bXlMSlR0RUo0NGxvS1BYMFRUWlhONUxMT1d1OTU0bE8yZDllQUxJWVhvVVo4Q1J4emM3M01jMEFJT0svd2pPVzErT1F4cFJUOGxpc280T0VHVFQ2NHVCS2NVaG1wSXg4THFwMWlpUnNVWTlLSktuTmJ0QjNSdjlhSktqSW94eDNTTWZ0M2tzc21uYzhLd3FZVE5JQVdCTVBjdWU1Yk43Zlg4OHNLdkgzVXNzLzVLby85amVlK0lHV25zcVhNVUV1VTJNZGlVZHVEaDB4L2MzUlJVMjBrKzE3a0JuK3RVdmhnZUd0eG01citKRU92NVFIbVpBODdlNjNTSE04YWxhM2Z5cDBlWE1YOTVQUURydHJTeWJOM093Y1hiUDUwWmtJTEc5Z1MrY2svR05yWW52QnlUUHZCaG5CeEd1NE02cG42ZUZ2TDNpckh1T29xOGdJRktaRkFCWTA5Lzd3UEszRndFMmgyc3JYbXZ4UEZxK0RwOWszaWl4bUJvMktRNnZaVkV1OFdpWVVXRWJEL3phdWFUeUN0Z3ZqNkhaRTBsWTJhTkJiUmVDOUdKWEExeVNVa0oxMXh6RFRmZWVDTjMzSEVIenp6ekRORm9kSGZ0Z0ZJSzB6VDUyYzkreGkyMzNNSXBwNXpDMTc3Mk5acWJtejJjQXdWUFo2T3NkdEw4UEZURkREMUFoN0tSeXZ0T3VTQURDaTJpQ0l4emFIdmNoeE1UbEZ5WlFXVUZ3anlFUFFvM2hZcTlCcjdqRWY0U2hJVFVxblUwL09CLzZYcm1aWVRQeENndFJUbE83MkFsSEVOZlVaT1NkRHpLaXBxMVRCczFDU0hnK2pNdjU4V0ZMN05vN1ZLRXo3ODc1Mnp2dUl1VTBtc3NiMldSdW5tTUpVN2ZVbkZwS1piamdKU1VWMVRnOC92SlpMTVVGQlZoK254a0xRdWtvS2lrV01tRUllSUZJN0VDK1l4b1dzOWtZejJ6dEJvcWZXMW91c3VNb1ZIT2JsL1BReHNuWTRzSUM5MlRzVnZqTFBlUFpZalJSR3RiQVdPY05xckxMV2FIWCtHcVVTdVlXS25ZMGxIQVcvcjV0Sm9UVWVMWVlZZ3BCYnJQSnRtU3owblRGb0NvNW9WWFp2TzFqeTlreTQ0Q2xyLzFNZTcreGxzOCtzWjRzRFJrTU9QMUFqbEVjaFVZaHVETWFUclBMYkg1ODdNWlRweW1jK0lFblpKS1NXUG5ubjVsUW9EcmdMSVZwZmthODRaYlhONnhuSXZ5VjFNNGFUZ3BSdlJPN3VGVFR4M1kvODdoTHo0OTNzOGZaNGRwRGNzQjF3dkk2d01FSzV2aG9yR3dOWmxoOFFsNWpHbXRaZHlUdjZWRS94aktWVmliWG1QRGlIcXF6aXdpY25vSFhVc2crRXNROXJISkhNdzZKaS9zT0pjclJqN08wSEQ5SVIvWGxLemdoUjNua25WNkR6TmJ5emQ3VnlqM2N2alRlYTh1SG5SR0Iya1BmeHlzYmtkNG1aQkNLZHhZSEVQVHlEaFpVaTB0cEtURVgxeEVvcVVWSXhqQU1BM3NUQlkzbGZKa2l1djJZWDd1d0dMZnRLMzM4eEhhUi9ZTURpVnV1RS9SaG5qdm85dU5NZElEK1N0ZGxCSTRxUkJJbDlQR0wrSDdwejdGMmRPV0FvcTMxeGJ6MjRWNXZMN0ZoNk1FZVQ0WElUek1wbU9pcnhYNFRKZnZYdGpNaEpJa0hjOTEwdjVRTTFaTEJxRUpaRjRlL25IakNKMTBFdUdUVHNJL2Zqd0VnM3ZwUG92dWRJS1dlQ2ZidTV1cGFXOWdjL3NPdHJRM3NMMjdtZVo0SjkzcEJGazd1eWZXdEN0eGVkZDhIMGt4alFCc0JXdTc0SjAyaVBkUDMrZDdTejUreUw4MWhNczNwajNOak9KdGFMbEViMGRKWG1tY3dtMnJMc0ZTZldGcmZ4Z0IxdnBRUDdrS0dmVHlHOXdqVUNvYUE2dmYxVUNMa3pzSHVKRHdzZ3B4bE12cnJZS1B6enlaQnpzcWFjMHZwY0JLOHZ2R1FqSkNwM1hJYVFncEVQRTRYNWhWeEt0Ukg3YmxJSDFlN0VreEdNK0xaZy9SaTFVdXduWElCcXZveWdUUUxKTzZ4bTZpa1FSK3U1Wk9wd3hEVTJpYUlPT0cwTG8yRWs4blNlamxPTzBiVVdObmt3MVhrMDJtY3dsT1I3OXlUeWxRRWxZM0tjcjk4TmtUdk55OXY2eFFyRzVTZkd5NDhNeVZmc0lXQWlnTWFZd3Q5MkhaaWcwdEhpYlo2REtUc2VVK0NrTWFiYkYrcENjRlhsMVR2a0lJUlh5RFp3ZjR5bDMwUE5XMzllTENCZGRBV0NaTzBWYnNNUy9obHE0SFY0ZHNDRTBvZFBQb1QwbDZmeDdNMVhVVnhBUjNYRzl4eDhjdGltSUNxVHNvb1k0NTc3WHU5LzRidjFuWjQwV25FT2lhUVRDWHQ1M014SENjVHE5NnQ5Y1ZpY1JTNCtsUUxVd3FMVVJ1MjQ0WkwyQjcweHAwSzBObE5rTjFWd09CaVFXMHBUV0svZFhzYkVudzZJc2IrZlhkaTZtcGJVZjZOWVJyOVlrM2VDU3JWVXJKMk9KcTVneVpDRUJYT25aWTlkTTlQZjZBeTAwcGxOQVkxYkdCanVKaHBQMzVqT3lxQWFraGM3VWFKMGxKeGpCNFBCYmpwVmRlMldkZlVrcEpOQnBsN3R5NW5IcnFxU2lsZG8vSmRWMk1hSlQxdDkxRzF6K2Z4elFNbEhKUlNsR2M2V0Jjd3p1MEY0MWtXTXRLL0s1emFMNWluNGc3aGRKZ1lWMFJQeGcraFN0UGk1Q01iZUdMWDF1QkxoWGZ2Q0NQYjMvMUhGWnU2R1RCbG5VSTA5MG5ETmN2dkhNSHBFL2YvWHFRK2hkVmZIN0hFWEZtcVlBcG11aHpYdnZOZnUvZEFiWkhyb1g2ZDM2YWN3aitwZFFna3hLc1hMR04vNzdwZGI1NzVUc2dJZEZtWU9pT1Z3Zm83a2w5OXZhM1ZDNTBvL2ExMzk3bnRXWTRZTUV2di9vaVZZVnhmdmpRYVdTeUJsSzZIZ2JXQjVEUEZIem00ankrLy9GaVN0c2xUYisyU0s1MWNkTmVuYnZvaCsyTGxBTnVGelRuQ1ZvakdtRlRzaTNzSUF5RjJ3V3FjR0RKRStVNFdFdFdvR3diMy9sbmsxM3dEcGxYMzhCODVVMThaNTJHLzZKejBNYU5SaFFWb0tJeEVLQTZ1N0dXckVRNWd3ckNFM0lLSVF5eXkxYml0cmVqVlZaZ0hqY2RZOHBVc2l1V0lzeFF6dG5NclMyUlMwb1d3c3VoYXRoSjdEZDNrdmp6M2VnalJ1S21NcnNBbkk4dGIxZzJXbWtSenVxTmJKeHlKdU5mdUovMWpRMmNNV3MyaTVjdHd6QU1MTXZDc2l4MFhTZWFTREJuNm5RZWZlcEpydnpIM1RSOCtmdEU3L283UmxteGx5dDFETzRuNHdZbzlUWFRtaW5IcjZWSTJrRXVxWHFNczhxZjR6dXJmazFudG9pMlRCbkxXbytuSzF0RVVFdHdPRnB5SUVlTVZPNnZSRHJNQzZTNE1oUmpiQ0xCb3NWcDd2bEhtdGZldFVpbVAvZ09Td29rcDgvUnVmRmlIOU5ubDdORXplYWVwdk40SlRhSHBCTUMwUU01TWNCRWpIWWtEeUdIWjV0dTcrQVB2NytUSC8zb3Y0akY0K1RsRi9EeGo5L0E5UHdJVnNiaWozLzhNNW11Ym5RNDRycTAvYWN6UEhyRWgxWXNPNjZpcnNOaTZoQS9sWGs2S3h2U3ZMZytqazhUSkxNdWRlMVpJajdKdUhJZm5Va1hYUk9VUlRTR0ZobzRTckd0dzhMcG9mMDYwT2IzMjc5YS9yNnNPcGpNY1N3RnRoY3ZhS3AvR3lkMkh4bDdGRmxuRFdiZXR4bDNVcEk4MWNucUZiL0Q5SjJHSXNyWU1TTUlSWWIzYWcyckpoU25SOXFaRStwbWVTS1BzL05hZWE2ckRJQ3o4MXA1SzFiSWNhRW9wMGZhMFhxMUNGSjhvQmdWQW5BVXBlVjVYSC90SEg3Mng3ZG9iWWtoL0VadTZzU0JkYURyNVF5M3RNUlF1c2FYUG5raXY3dC9FWW5hZHRBbC9hNEVXRUE2QStsa0ozOTVzcERuVjN5WFU4ZHZaSFJoTGFidXNLbDFDRzl0bnNLMk9ndEVtOWZEN3hCOUtTa0VFMHBEakM0TU1Lc3lUTkJuSUlXZ0xLK0VjQ0NFSld3YU9odDVkL05TaXNOQnVyZjlBemRiUzNENFNKcnJHekcwdk4yTjdCMXBrVFlhQ1E1M2NiTjFkRzk3bXZ6S21XUWRoZVprS1lrRUtDM000OHlLWXNhVjV5T0Z3RlVLWElkQ0U1VGJOM3NaUWxlWUkyeGt5SE9DM1pUSEZ6S2drQ0VYYzRSTmFyRjV1Q0FWaDZpVHZKS01uYTB1bi9xQjEyczlMeVQ0M2swQi92MXpmbG83NFRQZmlYSFBQN0tBUkp3N0F1MmNZZGpGUVVqWkVNMGU4clBzcjFhbjZvNlNlZUpac2krOWpqNW5Kb0dicmdjRXFiL2NUL2E1bDhHeVVWM2RBOXk2N2wyeUhJbmxha3l2YkVMUHhWY09OanRLQ1h5YXcybWp0akdsb29YTjdjWDhmZVVrR2kzakl6MkhRZ2dxS2lxb3I2K25vNk9EUUNCQVoyY242WFFheDNIdyszMDB0N1FRc1YzQzBpVldMVWlHRGNxMmUzcy9MY01NUWpGRi9qYVhtT1BTMHRKQzBPZW52YjJkOXZaMkFBb0xDK25vNkNBVUNsRlJVZEhqUGhXNkJwT0g2MXg3aXNFMXA1cklvaEFQZHhUeHQrWXlsc1pEcUYxWTgzc0NyZ1JNSDFNcVJsQ2RYNHpzcGYyMHgzaG00UHNEdG9PbWE0RGszcnZ1b1duTlRmejhLeTZFREp3bWkyUFpMcjF2c3paMWhUUUF6SnlBc0ZGS0lQUWMyS3BTYUJIVE00YVV3aXZyRTcwdmZ3Vm9tb1BmSDZiTkhrMWIwVEQ4UVEyVURhdUJQRVV5QmlKcTRnK0h2R0Qwb01keFVHR21sQ0lXaTVHWFg0QS9HQ0svSUlSYXZRUzdvd01aREdHM3R5RkRZWVFVT05GdWtCb3FrMEVHZzZTM2JvYWlVdkpHam1GSU1Jd3BOTmEzYmtPNUxrTDJEZkNOVkM0WncrU1V1bVdNamk0a2ROT1hVVms3RiszL2dPc3A0U1VkbVRxSlgveU9xcnBsWkF3VHFRWUc1TGMzblVkbnc5ZFZDa2NwQ3FTa1ZHb2tsS0xSdHJHQkN3TkI2bk9GaE9jRmdqeVZUTkpvMjh6MitRa0pRWUdVT0VyaEt0VnJ5bU1na0h1WVQwVkl6K0djT3dVSzhtRDFabmhqT1N6ZnBMamxldmo0ZVZCYURNTXI0UGwzNFAvZEJSbkxlL3A5dlNlcWdNMU5LUjVjMEVvNG9ER2hLdGhyenpKdHVYVEc3Y08raDFjM2RQV0cwRU1JUDBwNWlJcWlVNkpVRi9SRGtDNTNQOFVsbFlWUW5pSHBJR2dRSlRTSUNsNFJJTElaaG16b1pQeUdHcVk5c0lBcFJwYXhJNHNZT25zU0JmUG1FampoQk14Smt4RCs5eWwydHo0Y2lGNXVMbEFUaTJXNTlOSW5BQ2d2RHdHQ0k4SDJWTGxnaEcwNzNIYmJFZ0JzMit2Y2REaHM0ekt3Z0d2T2ZlQTdoNjZYaGN0Zkw3bVR5NmNjdUxsWVN5S1BHNS8rRW5WZEpjaGVDK3A5ZHRDSTIxdXVaaHpTYVp0bzNHSllWWmdMVGh2RzRsWE5QUE5hS1YvNDh3M2MrYm0vY2ZyMG1tTmpEcnVLWVJVNlg3MnVFRitlUnZ3UkQ2VCtxa3Z5eVVRZGhsWG9YalgxTVhDZ2JBRS9IVzVTblhHNXVOWDJ6TVNEdXg4SUJmOG8xZm5aY0JQN0krUmJPRDE0TmtwNDdUc1Nyc1ovN3FqbW5YZ1lnTzJXNGNrRENZNFV2V3JYVkhmSFA5elBJeFludVhRVjNjKzlRbnJ6MW1OcXd3Z0VtcEJFN1FRQytNeUlhL2plaEs5UTZpdEMyVFpLMTlFTmsvZzdTNmkvK1ljb3kyYkVYYjhnT0gzeVBrdCtWOEp1Y3VWYTZtNjZCYUZyRFAzRmp3bWZPQnNYRUxiTlowZGN6U1ZWWi9IZjYzL0QzN1kvaVVLUnA0ZHhsRHRZZ1BNUklPbUNMUlRkZ1gyQnU2WHJmWGRVZlBFc3FJellEYXhNcmlldUd4Tzcrd3BrYzREeW1nYmxKWktxSVJxbm4ra0RCVmJjcGFIUlpmMW1tMldyTFphdXRGbTl3YUp1dTRObEthd0RRSUZrblA2dWJQWmRlOVlBenY1MmMvRWkzYlNJV2pxZld6bUJCNXRLK2YyRUxZek5UK05rZ1RSOC90eUYvUGNEVTBnbWZmak5MTVhGRWRwYm83bmlBNEd1UzRRUStJSWFsdTJqckxDYmY3MThFU1JCa3dyTlZOUkUvWHhwL1doZWJpNEczVUUzTFd4MW1NKzZxQlJtellOSk15RVl5alVDSEdpdDdKd2NEMm1nc2w0eGhLekV4VUFLQjVmaFpNNjVCSGZxQnVTcjk2SFhya0ZFMnpGR3pzRGF0QlRIZFloKzdCUDRXcmNqanorUGRDQVAwZEdNdjdFbVY5QnhlTHJocDkrNC9KQmpDcTdqOHVxaWpmekhMNXV4VXhsMFhYTFZ1Y2R4NlJuVHZRMkRQdEROejkzNXIvdThuMzNocC92MzQ3M2xhL3RPbTZhaFhCZGZWUVhSZDVhaVQ4eEhwUVptaXBCU0NuU05UZHZhcUczdUpxNGx5Tzdjd3ZhS1VkVHRXRUZiWWp1Nmx1WFZtaVdzYnhqTmtIUVNwWWRvYlM5bFEzQURzN3RxVUc2SUUwZWZUYVNvaERmWHZzTE1JVlBaMlo1bVUxMHJTai9HUVBMeE9CZ0RZL05YOGY3TExSZk93WGJodHJVNUg5RDFQbE85TklBeGVWdjUxd2wvNXRyeXh6RGVpZEo0djQvVWVwbmorL2NxRytHSC9GTnRTajZSWmZ1UTBmeDQ4K2Q0c1BaS3VyTjVPYWR6ME83Ym4zUmdYcUhrVzZNMFRpNDh4S1lwQXV6R0xMRW5PMGk4Mm8zS3VIMDd0NDJOOE5ZQmdPYWxoQ2xUSUQ5LzM4Kzd1MkhObWdOM1ptOGNiSlIzMkhhYzZ4V0J2dnJhUm5CY0tvWVg4LzNiWDJiTnBoYUVnTy9mL2pJYmE5dG9xbXNIVFNJRDVvQXJPRHNxODVpRzZOc0dic0piTE5rR2liSUg1MldRK3A0R1dvTkZGNEdHUzRtYnBFNHY0TDlDczNrME1BbUVEdHRhOXNqL2ZrSmR3bjhRTTBZaGhJNnJWK0g0VHNIUWlsRDRjN2tkY25laHAxSUNJVndVQmtJcnd2S2RncVpYSVlXR0V2NWQ3WWw3amI1eTlmSisvZngvdnVvRDRsZEM0R1FkYnJwMkJDZlBMdUcrSjdaN1RlaGtMN21KdTJJSFBnL2NKVk03aXRhNmtmaEcxSkkzYXduK0VYVUlvWEF6dmg3N1BNbGtuRWFua0tvVHZrNyt6SGIwY0RtSnJhL2hwRHJKbjNiTlBvYXJVamx3amx6TUxKYUkwdEJReTVDcTRZUkQrUndObkUrdllFMlFaNmVaRVcvbS9JN05uQkN0Sit4WUJ3U0c2aE83ZGNqQWtyOHJOemJ4bWY5NGttMDFyVXlaWHMxL2YrMHNicm54Ukc2NThVUUEvdjc4V203ODNoTmtrbGt1UEdNOFAvMzZPZnp2TFdmdFB2N2J0NzNFLy8zaERYd1JQMSs0ZWhhMy91dkhPRzMyQ0FEU0dadXpQMzh2TDcrOG5zb1JKWHozcGhPNStZYVRhSzA4aFZCZUhqdUxnZ3c5NC8vWXNhMkxtVE9IOFQrM25NVzNQenR2OTdsWGIyNDU5QnZSTklxKzhrVjg0OGQ1MTE2eEVxSEozWUF4VWtpeXJzV0t6alU4dS9NVi9sNy9ERnZqMi9CcmZ2S01DSTV5VUgxUVRianVraThlT3YrNkNsOTFPYVB1K0FGR1NXSHVNNWNkLzNNblhhKytnOUFIU0k2QjlQSXk5YjBraE9xajdObjZXMzU0WkFjS1FBcVVZekgwOXA5UWNzSFp1d2ZyS0hqNTFhWGM4bC8zb3Zvb3ZuZkk4c3lGZFVXd29Bek8yd0ZUTytHU1duaHd0Q0xqay9nbWprSUI1dEFLQ3ErN0VKVzFVVmtMR1F4QVg4czhCUlNBVmF6UWtoSW5BTVdCS0pWUkM4M09vRElwUkg0RUs2U1FnUnlTVlI5M3Zqc2NnUGM5S3RVTHdteHNHY2FuVG5xTGplZWN3TGpsSzlIUzZ4REFrTGhpeVJuam1EbHNHdzh0UGhVSEFhNTJTQ0FXSDBUZit0YTMrdlZTL3RyWHZ0WXI1OW1Wait3TFYxRTgvRHd5aVVZaUpkTkE2aWduVGRHd2MvR0ZxM0o3YnIzTHQ1cUM1ckRHUGJNS2VYWkNCRXNYQTZKMlNDamwvYUZ3cEVZOEdLYTVzSXk2cWhGc0hqcUd1c29STkJlVmtRaUVjS1NHUU8wK1JuUDd3ZjVjUDVRUFI2N1NGTGJRaU9sQlpzUzJjSHozQnR4ZHRvVlNaS1ZCVEE4aWxFSWVaWDJoQU0yd0dGWFp5S2pTVmhadEdVMDBaLzkvMEVoMmhaL3ovU25tanRuQzF0WlN0cmFWNEtpKzFSMzJicUQzQXhUZEtyQWNGMDBiMEpXTUI1eHRGeUNUM2tmdjlLOGhlcEgyMWV1N1FZZnV6aFRiWEpGTGFFK0RpTkhlQVBpMG96aHJFRFkxWmd6eDhzcTJkYVRwVE5sOUlzSi9OT3E4UTljcndDbGROWHh2Mjh2b1RoWkxhRHhkTW9YbmlpZGg5OVZ6WGZqWHdhRGhVYVQvOTQyenVlcjh5WXdiVVF5WkRORVhYcWZ0N29kSXIxeEg0TGdwcEw1K013KzArM253N3pWc3JXM2IzV2pQNndoMGlCeWFheGhYdTYyRG4vejZkZTUvZWhXZnVHUWFOMTUrSEdQUFBaMjgwMDhrK3ZwQzJ1NStpTUR0ditTbTQ2WncyZFZuOFh4OFBELzR4Z2RyQjEwcU1xN0V0UXhLSXdtK05iR1dyNHpaUmpDUXdjMGFaREltdWxEb2UrbmV2Y0hWOW42OTZ6ZVpqSWtoRkYrWnRJWFBqTnJCN3pZUDQvL1dqNklsRmdMRFJwY3V6cUdzME50dTYwbVFDdEpwK09FUFllZk9QZnRxVXNLY09YRHJyZUQzOTh3UGV1S0ozcGRuRVVYKzlXbDhFejBielRmU29VUWlSb3pNcUFsNUdlN2ZscS9tdHdaRVIxYnoraVAwNEZxQnp4OUNBd0tGbHhRbDkxTkhDdXoxTldSZm5ZL1FzcnUvRTVwQ0JEVE1NMDVBbnpqbVBjY2M4RndIb3g4dTJ1ZHRUL1BnTWpaczJhazQreFFmbjdnb0FNQUR6NmJZMHFDSVp3VSt2Yi9wV3crTE9ocUcyQmpJcXptWVZkUzNsTjNaUW1McFdzeXh3NDhJV0ZHNWl2U3FUV1JyZC9UcXVQN2pXM1A3dFg2NDhNUGFQOE1GNG9BRnBFRkVRY3RBL2tqQm1ES0IzLy9CSENxRkI0aFpYQ2dvS2ZMU0lZVGMwNCs2dDJ4REFOM1ErY3dwcFZ3OE9kL3pnOFcrM3MrdTk4RlFrSEFrUWxkM2xHRFpLSlJTZEhWSHlTOHNKQlFLSVhaM2R1MGQ2OUxRRGp4UDJiMGFYZW5hUnljQlNDaUZNa3pXZFE3aHlUdExXQndaNWpHRmxtRkhQSSsvUFRDYUpSM0RTR3VtQndiZlJ6Rk1oUmRxTUFNQlRweHpJVE95WitNM0RFb0xxeGc5ZERxUlFNaGJCcTdxQzVpREhveGJJSldMN2RPNXZYbXM5MkVRcE91K3A2YjBhSTJwLzN2ZElCRTB1eFovVDNYenZPeG03bGthRDM4cWp6bVRkYThCbDIyRDlDUE5La1RvT0FpZFJKYytpUTBwbmJkYnR2TjYwMXNzYjk5TVU2b2QxN0Z6amF2a2tUV3Y2aFVHMXZFZmZ6TDVuL29LVG5zTCtweVRFYWFKKytaTCtHY2NqOVBWZ2QzYWpHL01CTFNpVXV3ZDIwRFgrMnd2bzcvVzVYNFV5Vk10aWxDdWdZbUg5OUEveDJvSkJidHRjdkVlSmhoTWpSMmtRZXBaaUVRSWFHclA4dEs3N1pRV21xUXpMcjk4cUk3TjlSN0E0TFB6V3hsWkZjVHZrN3owYmp0ZnZtSVlROHY5ZStyZmpybitGaWdjOUNSVXoyK0dTRjgydHo2eUUrL3lML0x5VEM2OWVDeXZ2N0dkdHJaVUxod2x1UFRpc2VUbG1TQjJ5YlRldVlHQmxyK1R6V1lQNjBsTUtoN0duSXB4NkFkbzJyUExNbGZLZXoyN2ZOeGVmTy81Y2E3ckh0WTE5NmY0d3crVFhyalFpeWxLaVVxbEVENmY5OTZ5UE1QSE1FRFRVTWtrd2pROVFGWEhBZHZlODEwcWhkQTA3enRBWmJON2ZwdE9lK2ZUUFpnM2xVNTcxOUEweU9UQS9uVWRoUERPWTVvSXc4QnVhSGpQZUpNM2ZlcVE3a3NLUVg3SXhGMjhuUFN5TmFoTUZxMm9nUHpQWFk5VlZVa3NhZlhORXZ2djczN0lqQzBITkEyaDZ6aU5MWFQ4NERiaUR6eVphOTRna1hrUkN2NzczOG4vdDA5N3Y3Y2RrQjYyM203Wm9lc2VIN2tLLzJsekdUTC9jYnAvY3c5ZC8vczduSXhGZHVWNkdzLy9GT0hyTDZYb3g5OUVxeXpiNTlydlJ5ZE9oeHN1Z2l2UGd2TFNYRnpITTZOcHNRd2U3eXppTDYzbExFdUV2WHdXb1k1c0QxNG9YR0JKUE1LeVJKaTdXc3Y0YkdrTFZ4UzJVMjVhNEVCWk1YenhPcmppVEhqc1pmamJzN0JneFVIOE5SY1NwbUR4RUpQSEpnZDRkNGhKMmhUZStOMkJ5U3JTWjFKNDVseGFIbjJKYkd2SFlYamRDcU1nbjhJejV5SjlQZXRLbURkaDBoRnBSQVg0aE9DQ2RJcVN1bHFVcmhPWjVKMnJYZGVaYUZtVWpoeEZ2ajlBSm1lM0g1SHBzR0ZkejlXM3BuRGJkTElMdzdneERiZkpRQnVlUlZaNEdGajJCai9PTmhON213OTdUUUMzVFFlOWQ1b3Ayb2NTUEJjQ2FkdkVTNGNUdnYxNytNd0EyWkpDMHJoUVVlN2w4R2c2Mlk0MmhCUlFYbzV3YkEvWXU2bUJiRWtSUGpOQStQYnZFWDExTWVIV0RseDVpTDc5ZmorWjlmbTdtVGUxbWh2T25zeFB2M2c2QUlzM05ITHpyMS9talpYMUFKdzZmU2pYbnpucHFIMi9aRU1UWDczakplYXZQdkJlZ3F0Y0lyNDgzdDd5QmxmKzZRTG1ESi9MMkxJSnJLMVp5OGFXWlFTQ2VZemE1T2VLRjlNTWJ6QkpCbnpFQWtjSlA2TDc0RitWR1JhbjU4WDRaSEU3RTlMZHpIOHR4VDFQcDFtd1VuSE9PY1Y4NjVzMzhPNjc3eko1OG1RZWZ2aGhWcTllL1o1ekJBT0NtUk4xUG42Um4wdFA4SlBmYk5MNmxFbDBnWTdkTGJ4d1ZBOXM5dXNlcnY4UStEeGV3NVJvTkVwOWZUMS8rY3RmT09PTU03amdnZ3RRU2pGN2ZBbW56YXJpbWJmcXdHOGloRVFvYTNmOXdDNzd5TFBGYkU0OWRSakRKZ3pmallYNzBrc3Y4dXFycjNMVFRUY3hkT2hRSXBISTdtc2VLcGtJempFajNPUXZZcVJtN3Q0Mi9laVJRSXQ0NXBKdFozajlqUXl2djViejd6UVhBcUFYZURFL3h6MjA4L213eUpkeGRPeGVHSjJMRkltYzZCUTlpckgzcG9mYTNwWGdyMCsrdzdnUlpVd2JYNDJVWWo4WnFWaTlzWUcvUHZrTzdWMkpZNVB1cWhSS1FNckowcEdKTVNHdm1wSGhjbHlsK1B2MnQ5a2VhOFFRa3MrT09ZZWh3UksyeHBzWUVpZ2k3VmhzaVRjeEthOGFJVVN2MTVpOTM3Tk9LNTNUL0pzb2Jya0tzcDBZMHY4K0sxTkNOazF4eTFXYzRIK1RGekxqQ0FzWGhmd0lMVi9sNVd5a05ETHNQVlVTSyt1aXBMZUhKZ1M0V1R3L0p5c0lWMWxNLzVqTnhoOUVTTWZrZXlCdFZOUkhmTHNIN1NLMHZiZzM2aVBwZU81eXl0M1RDRkxvaWxSTWtta3pPZkZUU1dvV0d4d0l3TTlOcGdlWWREd3krU0NGcEt1amt3Zitkai9GaFVWRWdoRXZZcUlVbXFZUkNBUjQ2b2tuT2UvYzg4alA0UlQweGlxclRBMHNYS2h0OGNGQzl6NFBRSC9FS0d3ckxtbDJHQnYzN3IwcW85QUc5eXg3aFRRSnl2WW1zMC9MN0JWZ0s2OU8va2loc3kwWElUUm95K1RjZmcwc3R3ZERVZ2hiRGZZOU9vWjZXQ0JScnNMRW90THM1dmlTVFZ3MXFvYVBUYzRqT09sR3Vxc3Zwc1l1WStQT0RBdWVYY0ZieTdheGFtczd5YTZzSnd0OU9qSmdJS1NKVWdyWFZUaXUyNmRzckFVZ2RESVUzK0Q5Sy9QQjdZYjJQMERyN3lEYmVIRGQ3NThNTXJUbmRYelJnUzhTZlEzU0c2RDB5MUI0UFVRdTlLNlZlQnZhLytiOTY2UStSSGxHUjNBanJuSXhOSk1DSTU5Q3M0RGRuazB1YmlDVWg0OVhhQlpRWU9SajQrRHVNb3BGNzR6WjZkUnB2SFVVS2l0d29qcVptZ0J1UmtNWUxxbTFJZHlvN2hWTURyQW5wUVJZcnNQQzdUVllqczNFc2lGRWZINmE0OTBzM2xFTHdKenFrWlNIODRsbDBxeHJibURwempvczEwRWQ1VnRWT2QzbE9wTC9YdWJRZnR4Wm5HV3ZwYU54Rzc3Q29idDdleGVHZ2l4Y3RKQWR4NTNDUTYzRGViR21DNlNIcWQxVEdLdUZ5K3ZkL1huRGIrb0UvQVl6SjFWU1dSb0dBZUdrU2YzT2J0WnVidkdhTCs1RkpZVkJvdkhNYm5VVWpXZFlzcWFCdHM3a250TUs4UHNNUWdHRHVkT3FxU3lMNExxS1lDTEQ1cnAydG16dk9KQTZVejJkM3pjVFpkemFQSlV2RjIvaWxIQXpseGZVYzdtcUorb2FwRnh2enl3Z0hmS2tCUUphYlIvL2lGYnoyL1p4dkprb0d6QXExdHZubHNnQUNNOERSK202OTZ3RzdZUVBEVG5Bc3AwYitjT1NKN2xrL01sY09QNWtYdHl5aUlab0sxWWYxSHJiK2tkcmZwVlMrSUxGREJ0WnpEQ2xVSzd5OEdQWXM1L1FtNzdzeXJMeUFhZGZmYmJrNnJJOHJwbTdpc1RLWmV6OGJTWCtvVWtLL3EyRHkwNElzMjVCSmE2bEVBU29MOUQ0cTlQTUd3UUlpK0dFKzNoOHpVMjFCelo1Y3JwZHBTM0NBWlBUVGhySFRSZFA0MXkzaStpdi9zVDJSMTlHdUM1R0pBL2x1cWhkdG5qdVFEZVRSZ1lDRkp3MWwvQk5sN0Y0Umo1M2JYeUN2Njk1R1hEUi9IbTR5bjJQYnV4dFc5TnhRV0xCVUIrTUdlRmgyaXFGMEx3NlU1bXhjUjI3WCt4UEhJek1zYlB4SDNjZWRzczJuTzZXUFlXbHlrVXJyTUIvM0htWVkyY2Y4M0dXQkFzb0NSYnNpZWVZUWFMcEJKclVHQ1NQT21POTFVOHNtL00xMUpFN1ZvY1NpaGxnL1FvR0dqNzlQdGEzSmhGU0lrSUJaRjRZdDZPTDZuU0dUOGRxZ2o3bFhQOWNaSmk1MVN5OG5TdSt0SUxIZncvU2hIZS8vc0ZXdlh0NFBPZTRpbmRXMXJOOHZZZXRuTW5hT0lQNHYvM1R2Z0N2WURTVjVsKzJGbmtmcG1JZVJ0dUgyYTd2aGRpZkVJQ3JjRnlGa042R3FCQUh5ZDFYQ3FjN0JvQ1dIK2tmQ2Y3OUxhd25GT09xZEU0WW9YaDlkWVRYanJ1RTFzNE03U0pDdHkvQ2dpa1hvMEpCbWh5TkM4Y0lSbGZvdlRxTnUveU50clkyNXM2ZHk5eTVjeGszYmh6UmFCUXBKVzZPWjNSZEo1bE1zbml4MTVkeDNicDFORGMzbytzNmRxNkhyNDZnMXNseVZiU08vd3hWY0lPdmtMaHlzRkJvQ0MrRllhZWtvOEhFckhJcHVUSkQ5NXVHQjI1ektPbUUyVFpVNiszSU1YL0Y3c3JRZU90UGFQM1RBN2pwTkhwUkFVb3BsUDNoMldPMVhKdW41ci9JVmFkZFJNRG5aL1NRNFh6MzAxL254Ny8vQ1V1MmJVS2dRT3E3TjZlVTQ2QWNENnRvUk1WUVdoTlJrcW5raDNiZFRaODRrY1p0MndnRWc4eWVQcDFrS3NYMkxWc1lPblFvc3F5TW5kdTJFUWdHT0c3cVZCVnEzYUZpS1Z0WWVvVEZ4ZGZRbWwzTHBjNmpCRkt0ZEhZb1FpRTRlV1FyWk42bFd4VXd4TkpwYTgzUzRSdEdvV3RUSGRqQzFIQWpoWUh0bkRndVFYV3BvcmxiNDZuYVNTeVZKK01lUVYrZ1hwZnZqb1J3bWpzZW4wa2k3YU83YlNMLzJaVlBlMnM1Vm1jcFAvbmJISm82d3hETTRoNG1kcVZTZ0FtcnRqbmM4MUtHdXUwdUw2MXp1T0lFRjhNUUNGY2hEQTl2d2JYQU5HSDJhSTJMVHZaeC9Td1l6cWtnejhHU1B2eks3WjI1ZXVxcDkzeWtLV2dLUy80MEs4eFRFL3dEQm4veFFEYUswbUJ0TTN4aUt2emJiSWZYWklwQXU1OHh0Lytjay9QZnhoSFFHSCtIelBraFVqTVNPRU50akdVUTNPaWQ0RmlzZWtkcHZOTnlBay9VWGM1bnh0OU54SWg5NERFeEs4TGpkVmZ3VHNzSk9FcnJ4ZlV3YUg4UDBnQzJEOFVIMlk0QzFkbUZSQ1BWMGtZaUhrZXRXNDloK21qZnVwWEM0aUtzZUFxWnllSW1VMGdaMkF1dnB2ZkpvSC9IUGZiMzZEWGhmUGlaNkxEaU1ibTllTkU3c1RFbkdRYnBjdnI0cFh6L3RDYzVhOXBTUVBIMjJtSit1eUNQMTdmNGNKUWd6K2Q2dUNpOVpCWWMrVndKcmptK2t5dEdOTlAwaDUxMHY5S0pERVNJbkRDRHlMeDVoRTQ2Q1gzTWFLeGdnR2dtd1pab0M5dDNORkhUM3NEbTloMXNhVzlnZTNjenpmRk91dE1Kc25aMlQ2THhMdnpWWGM1eWIyRzVDQUV4Qzk1cGc3VmQwSTkxWGl3Yk9HVFAySlFPR2NmWWp3OEZHY2NnYmdYSXVzZmUzaDRrUGxJOXpnWmVuRndjMks4QWRFTmplVzBYVDV4NktzL01tOEh5K2lRUnpjWVNHZ0s0dS94NFlyWmt4SVFnVmRQem1MK2dFNm5MdlhLQmV0K0l5QTR3ZS8yUTRUMkZCR3lNWURtUmlqR2t0MjJtdTdPVlpmWWt4c1FmWUd2ZU9SaFdKNmFBVENpZmtzNTNXWnFxSkJxdG9YeFVFY25JVUF4ZkJHVW5PU0xBekY0S1Zpb0ZRUjErTkU5dzRoRHY1b2VHd0hYb04vZ3RlOU9JWW9Pd1gvTFc1Z1QvWE9YNW9lZFBpekNtek1lSVlvTzJXTy9HQ2xVUDQrdGFRQkVZYnRHOVZOTDZvb2VwWDNwT2hzQndDMmxxT0tsZW5tQ2hRRWxFTm93YmJNT2E4Q3BPOVdMUUxMQ0N1U0NDZS9obVpCOVNZVlR3cTA5WTNQSHhMQVV4Z1JKNGxaZXEvOFU0MzE3VjFrdVJJUGJGbSs0aitTdUVUbUhwYWV5SS9wemkwMTFPM3VxUVNEdTB0alFTREpua0Y2V1IxUWxTb3hzb0xLaG1hM01SOXo2eG1OODl0SXhrTklNZU1uSDZBTVB5b1ByaUVMRjJoa2YyNUZqbUd3R3M3T0h0N2ZiMCtBTzdHcEl4c1IzWWRXOWg2VDZxWWsyNys2cTRBckpLOFRIRHdHZFpQTDUrUGV0ZGQ1L0swS0xDUXJvN3V4ZzllalIrdjM4M3A3UXRYY3JHMy95RzVnZnV4elI5SHFhcFVyaFNVcHp1WXU3V1Y5bldPWXB4cmV1UVF1Qnk3UHBOQ1FGb0xqZi85RTBDdzZxNTRWTnpPZTEwQzFkSW51dVMvTzBYQzhnMk5vTS9IOXorYWUwUGJ2SDNYNUxCSTlQSEVqZ1dIZW9Od3hoUTgrdTRBenQrSm9SWEZ4RUtwYm4xK2plWk0zb25qeTZjZ0ZJQ1RmYnV3dDQ3NjJ6VzZKMzg5eWRlWTIxOUtTK3VHTVdPbGdLRWZ2QU9Ga1BLZGI3LzhTS3VHeG5CZXNTbFliV0ZtOTVUajk3dlNIbUxTQ1JoZlVyeXhoUWZwbTZRYjJtMG13N0xraGxtN2JDUlZtNmhEUlFaNmlpc1pTdXg1aS9DZC82WjJFdFhrbjd5SHlSK2RnZHVheHZHeFBHNGJSMkl6aTVFWVFIS2NjaStNUjlyMmNwK0haYzd1cnloUURld045V1FldW81d2wvOExGcGxCWkYvK3dKZC8va0RuQjJ0dWQ1c3U1b1kyd2dqZ1BEN0lPRmliOWlFdFdRRkdIN3N1bnJRZFlTaDl3c0hSVmsyV240RXQ2MlQ5U2Rjek5pLy80RjNseTdscXN1djRMRW5uMERUTkZ6WHhiWnRORTNEY1J5dXV2UXlmbjdiYlh6amQvOFAzL0JxV3Y3cmx4aUYrYm1pcmFPSDB1TXF5YnlTMTdoMjZMMDh1dU1UTEdnN25aQ2VvRDQ1bktXZGMzR1VoaTVzRm5lZXdQcllGR0pXQkwrVzVxT0FtdXppOVpjZGJXUTVQNWpnSWw4VWUwZUt2NzZjNGY1L1p0aXc5WVBqQ0pxRWNTTTByampENU5vTFEralZvN2cvZWhwL2F6K1BkWm1ST1NYaGZLUkV3UkhmcmVzaWxPTGVlKytuckx5Q3l5KzdtRVFxUmNBZm9OSFFlZktGbDdqcmozL0J0aTJ2WnEyWGFOVi8vTytIK25tMHhHdzJOR2VZTnNUUGhBb2ZHeG96MUxabmNSWFV0bVZwamRtczJKR21vY3VpTEtJenJ0eEh3QkNzYWtqVEhMVS9jdlByMnVwUUlqZURkRXlNZTg4d3RtT1A0Wm9YbytscjBGdm00UytkUStVSlM2a3FLbVZ6MUNXL05KOTROelMzd2FoSTd3K2pYTTl3ZFdFalpYcUdpR2J6ZkxRVUJad1M2ZURjL0ZaT2kzUlFybWY2d0FEL29GOEloSUJreW1KamJSc0lnVEQxbkJuMUFYeXR2TjhpQkJ0cjIwaW12THBtMVYrNVhvQXdOS1NacHFFK3hZTzExYUNOeXZXUHMwSHJSdm9BdE1PSzV3aWdJaS9Bdng1ZnlaaVNFSm9RQ0NHb0txNmt1ckNLRFUyYmFJNjFzbXpMY3NhRU5IenROU2lWajYyVm8xVnNJWlVXU0xNUUZGaG1QVnBlRXhsdEZJN1ZnZDJ4aFdqYlZtcmFRbXhzNnFLcUtJOHpKZzlqMnJDeVBVNmZnTkt3ajZ1blZwTG5OL3JFRXBOQlJXQk9HdWxYV0EwYXliZThQZnpnS1NtTUNvZkFuRFN4WndPNDhkNjl1aEFlM0xSdGV5d1ZDZ2krL1drLy8vSDVBTEUwZk9uV0JIOTROTGR1emhpR2Z0NXc3TElRZHRxR2FOYXI3L2dROUxweWFtcHg2cmFqVDVtSTc2cUxFVG44Tk45VkY2UGEyc2s4OGF5SDh6MUl1eW1lTlZteW80cmpxeHVveklzZDByb3dOSmZLdkRqdHlTQ1cwN1Bjbko3MEFPZ2ZjVEdCVW9wUUtNVHMyYlBadEdrVFNpbUtpb3J3Ky8xczNMZ1JKeFRFRjhsSENVRkthalFNODlGZDVzZHM3Y0tWVURjcG44S0dKR1o5QmlVMVROTWszdDFGUEpsazh1VEpwTk5wTE10Q0NNRzRjZU1JaFVLSGpXdTdOeFZIQkNkUDF2bjBXVDVPbnVGbm94dmh2dm9TSG04dnBqVnI3b3Mxbi9NSnF2S0tPWHZjY2R3dzR6Ukc1RmYyV2dqaE1iNDNvSisvYmR2b3VnNFp4YWR2dVltL3JyK2JFODZFK3gvU3NTeUxZMTJhM0xkd0VXclhwczYrUmNKN081TDdGbmIyaFpKeHdZYlJJeGJndWhDTGw1UE42bVNzUXNCQUlMQ2phZkxNVHZ3RmlxRC9YVWFQV0pUenFBZmRqZ01icllyYTJscXFoMVJSV1ZXTmNtejA4Z3A4bzhmZ3BsSzRzVzZjN2k1a3J1Rks4dDBGS010Q0x5M0ZoMEt2ckFMSFFVcEpmVmN6VzlycmN3MGorM2krcFdEUzg0OVJjZlhKQk9hZGRGaUhwdVl2b09uNXgraVNnNFdYN3hlRWlyb3VNVmV4MXNwaUtVV1ZybE9tNjlUWk50dHlCWVYxdHMwc253OGQyR3hsTVlRZzVpcWlyb3ZUNTBKcGdQdmllTGI0aEJIdy9admdzVmRoeXc1bzZZQzZSb2lsWU40MHlGcXdvMlZQanJRU1IwZWN4ZElPeTJwakxOd1VaRnhGc0ZjVW5Pc3FOdXhNc25ockRNczV2RUQrS3h1NmUwM203VEtvZW1KY0hmWEEybjQ2VlNnTHFhemNlaFhzRUNYc0VPVzhJZ1RDemxDMXFaUHhtN1l4OVlGbFRQSGR3ZGlSUlZUTkdFL0J5WE1KekhrdnlFdm0yWmMrTkRwTkNJT05HOXQyMnlGZFhTbUVNSG9ZK0JiOC92ZUxkN2xHaDMzMGhWVVA5ZXQ1ZTNPLzl3bkxkOGp6SW9XTC9UN0ZzNjRTSkN3ZktjdS9PM2x5a1ByRVMwVzVMcSs5czVOMU5TL1MyWjNoNUZtbEtGWEJWKzZXM1BtNXZ5TEVVYmFGaGJkblcxYWtjY3VuQ3JHQ0dpKy80U1VlZi80VGhSaEpCOUxLQTlRNlJxSzR4U2Y0dDNGKzZuMVpybSsyS0xMVTdxS0FYYnBhQUIyRzRNRnlnNThPTjJueGlVRzM0bEIxbHdJbEZBc1RJWEFsVXZPQ2M0dmlYakdjRUtyWGN4WGNEeVBBZzZ0STEyeWwrL25YNkg3K1ZWSXIxK0hFNGw2VE1ubHNzcDUwb1pGeHMzUllDVTRxbnNtUEp0M01DVVhIZ1FMYjlZSW1UbXM3OVQvOEdXMzNQTWl1Z3I4TnAxNUs0V1huazMvQm1maEdEUE5za0xydGRELzNDcDFQL2hObGVWSHVqUis3Z3BMUFhNZVEvL28yZWxrSnRtdFRvaGR5Ky9RZmNPM1FpL25SdWwreW9IMHBFVDJFVDVyWWFqRHcrNUh3bmR4alBBQnhBSFVsOXhyZlhoOW5MWEN6SHFncEFuUU5oZzNSR0RGSzQvd0wvZUFvVWxGRmZZUERtbzAyeTlmWS9PUVg4WDFPL2REbW9uNytWTnIzZWZmMGF4c0dQSi9aU2lDRlFwb1dyN1FVTWJFemo1K00zczUzUmphQUE5WEQ0dnoxV3kvd2llOWZTUWNXb1dBV2FVcml5UXk0TGdVRlFZSitDUVRZdVNQTHZkOS9sR0Vqa3BBRVRTcCt1bmtJMzk4eURNZlMwVTBMVnduc3d5bmFDWVZoOG13NDdnUW9MTm5sWkE5TTFVYlFhODd0cGxIQ1I5b2RTeXo0Y1pUcitiUFd2RXZ4bFpXalRqeVRURHFPdG4wREloQWh0T3dGL0pzV2s1cHhCcW55MFRqSFgwaGt5aHlNUkl6c3FWZmplL2gvamdnOGVOTDJRMnVFS3ZJTFVGT25VcnVqRFMwSFdDeWxZR2hsRVZOR2xhR3RYNHZiMXRIblFadC9ybW9kVU04NzI5YUdIZzZUV0w4SmFScGtHcllpaXVXQUJTYVNtcVNqTGM3ejc5VHk1WXV2NC9sM251YmR1b1ZFTzlaaFdaMTAyRjNZNloyNGtYWElxaVNPNjhlT1I5alJscVhEV1lrUkMxTGtLNmNzTzRJaUxROG43T09aQlp2cGFJc2pUTDF2QVk0L2lJcUt2RWJxSHpJajR2ZHJkaG14dmNNRStXYVVqNDk4aksrTS9UUERHcmJROWxPVDZKc0JWSHFQYmJBUDB3Q0JTUzZsTjJTdzV1WnhkL01OL09iTnoxRVRIY1dSZDNEdU94NC9rdS82Z2pRQmN3b0UzeDZsY1hxeDVKQkM0Z0xzWm92WTB4M0VYK3hDcGR5K245L25uNGRYWDMzdjU4RWdQUGtrekp1MzcrZHIxc0JsbDBFeWVRQ0JtV1dRanNSbFZzaWcxN1M5cVRuS2YvL2lsZDFWK1d0WE40Q2hJU1Arbk9rMEdOQTU0UHEyQmNyYTQ5UzRLUUdEMjZlRE5FanZkY21VUlZ3WTNCR2V3eDlETTBsb1lZU2JRYW9Ncms4SGp0SUc3aUhxNmxHWDNmWCtQeFlhUWh1RGJUMkd3RVVwZ2I1ZjhNVjJwQmZEUmFJYm8xSE9tNkJlN1JNWjhiTXZ6ZS9Yei8vblAvaGdmVVJRNThzL1dFSEFyM25CY1NsNnYxWnZWeHpCNXlVRVoycEgwYnB0Skw3aGRVU09XMHBnUk4yZTVML0RQWFZ1c0xadE1YLytzOHlZZGhMRGhveW1TRE1JanowSDE4bDZ3QzlpNzhDWTJNMzdiUjB0MURkc1pjV2FSVnhXZHNQdWMvYmxYcndTQXVtNkRNbEdPYVY3R3hkMGJHSk1xaE5RT0VkenIyQ0FoV2ZPdVBpM2pKc3puS3N2UDQ0M2wyemprcXYvUU1HWU11Wk1xYUt4TGM2YVJiV2M4TEh4bEJZR2VmYk56VHo3K0hKR1RLOW0wcWhTRnE5cG9MV2hpNHZPbjBKM1BNTWRkNzdKSFg5OGt4bXpobE5lSE9hRnR6WVRDQmhjZmNWTTFteHU0YXZmZUlTdi9td0JYNSt4a2F3eStNMGJ5eGs3T1krckxwM09hKy9XY2U2bHY2VjRmQVhIVGF3Z2xzaXk2TzJhUS9EenZHZXJWMWFnVjFhZ1hCY2hKYjRaMDNjak5BbGdTM3diYjdlK3k3MjFqL0pPK3pJQThvMDhYRnljUHR4VGlMMjc2akI0eDhWdUg0N2FHMnhGUWFwbUc3RjNWeUgwZ2RVZzUyaG93ZXoySFVjY0gxQlNnc3JpeHVJbzIvSnFZeEFvSVVnbU1yUTJ0SkUyOUdPR2VKTERGQ0Jsd0YvSEswYkdCT082NFY4MkNOSktzRDZvVUIzZFVPakRTYWF3V3p0d0Vrbk02Z3BrTU5BN0NHVWZjT3NKbjh2NmJkdW9LRFlwcjBqVDRRd2xXemFNd3BaTlZGUTZ0R1pzdG5SdlkxWjVUaGYyOFZTS0k3aEJwUUFqeTd2Ynh2UEcrcWtVak81Z3A1Wm1kUE1PRE5OaC9lenhUSnpReXB2cnAvRHV0Z2tvUFpzREcrOTVJOWV2ZnZXci9Yb05mKzFyWDl2bi9RTVBQTkF6WmhJNmRycU5US0xSQTRvVkFwU0xMendFM2I4T2xOM3JnYkhsVlg1K2YwSVJxeXY5N0pQNDBROUo1R3d2VjByaXdURE5oV1hVVlkyZ3BubzBkVlVqYUM0c0l4RUk3UWJPRXNyNzA0NFZNTTBBa3c4OWt5M2VYQ2VrajdqbWY4OXprK3JZR0g4UzBGekoyWlBXY2YzY1JYeit2azhTYlJpQzBCeFFCMi93Sk1ETEYzTTBLb3M2K01GRnovREFvcm44K2ZYVFVVSXhtTW5YVjR6VS80TnIwaS8zNU1mdGF2S3B2RTBPWVJ4ZGsyZ1hqbmh0UjNvMzQvWnl2OWpkTlBIMDZZY2s4am9UTnUvV2RERXMxYjQ3ZDFzaDJHSG1zemwvQ0xOR0YxQ2UxL3Q3YWh2dUg5aXNMOFhBaXNGLzcwdW5RaXBOOXd1djBYN1BJNlJXcmlFd1l5cUpXMjdtL25ZL0QvMjlocTIxYlI0elN0R3p0WjJyV2FyZDFzRlBmdjA2OXorMWl1c3ZtY1luTDV2QitITlBKM0xhaWNUZVhFamIzWDhuZE1jZGZHTGlXSDd3UHRwS1V3cHNTU2JoSXkrUzRwWkptL25hK0RvS1F5bmNyRUU2YWFJTGhjYmhBNWhxZVBvaG16VHhTNWR2VHQ3TTUwYnM0RmViaHZPTGpTUHBqZ1pBd3h2RCs5bHpJMGYyN0FGbE1oRFpyOUdlRU41bm8wZUR6OWUvR0VxQWI2empsUmprVERaenNnTVdoQ1hpc3VvNFl5T1crbHRkbm5wbVo1amFoQ2xzZHpkckhEYUZ2L3VWSTdkMlhJZjBJOCtSZld2UmU3ODJkSHdYblluLzZnc1FQV2tFOXNPYjkzbjdZRTFleitJQldWZ25nNHc2UmFQRzUrbXI2bE5jMXUxd2VHaVRnV24yOUFFMjk0bjkxakRCSlQ0YjhyZDQ5cG9TUnh5K1BiS3daVHhKOTdOdkVEbGpMa1pWMldFZjczUkY2WDdtZFp5TzdsNGRsNzk4MDZDOWVDd3BBNWlnNHFEdEJQOXc4TGtDUStPUW9oOEtMM1U5THl5dzdkN2ZNaEtBVWhvbnBXdjRVdHQ2MHMvNmNCMTFVRHREQ0VHMWtGalpMTjNkM1NpbEtNL1B4Ky96a1YyNWJMOTlqWjdUSSsvc0dPU2h2ZVVNQWlHeUxLeWZ6a0l4Q2RwY2hDOERDcm83QTN5My9aT2VneUV6SVBzNldDaDI3MHNGY29yQk5FeE13d1NWczRuNnl0SFlpMzhQUCtRaWtNcEYrYnlqaGFzOGNLdGVpRzk4MkVnQ2FhVjROUnZqYjVsT0F1TnQvdmRUQVM3N21FRW9JSEVKSVh5ajBFSnpjWUp6YVdRNEsySXBYdCs2aWJlYUgyRjkxemE2TXpHOGpUM3A4Y014UmdNUlFpRHlTZ2lmZndVeUhDYTE2QTFrS0l5eXNpUmYrQWRhVVFtQjQwOUJ5OHRIT2M1UmlUZjAxN3JjajdTc0hRRExXY0JnbmVVZ0RWTGZTV2FVRWppdTRrdFhETVd5dldhb2o3emF4RnNyT3dFWVBUVElOV2RVb0JRWXV2ZGJiK3U0NS91YnZhUmNjQTJkY0VzSEFuQjFvODlzc2tmWFBkelRvZUwzNmVqVFhYYnU5R3I4cXFyQ3ZCTmJSYnJON25WVlBORHlkeDU2NlBCd01tVE9SajlXS3NKcGE4TnVhK3VYSy90QXJQU3pOK3NQNmRpUTMrQlRwNDloV0VIZW51Q2lwaUVMODFuWnJYankzWWJEeHZENWFCbFhybWRnNVhLeXVuOXpEMTMvK3p1Y2xvN2R6UmtpTjE1QjBZKy9pVmFaaTZjNXp1N2Z2NWZScGVlc09BNW9Hdm4vK21uQ1YxNUF4dzl1SS83QWt5QUVzWHNmSi9uUDF5bjR6cGZKLzdkUDU5QmlIZS81SFFRZjRKbmZRRkdCWjJNcHgrT1pKc3ZnaWM1aTdtb3RZMWtpakxzcjJOZ2JBY2ZjdnZHU2VJUmxpVEIvYVMzanM2VXRYRjdZVHFWaG9Sd29LNFl2WFFmWG5RZEZwK3czRFFvU3B1RGRJU2FQVHdxd2VJaEoyaFNlK3pYQTJWRm9rdng1eDFGMDlvazBQL29DS25zb3VTNEtZZW9VblgwaStmT09RMmc5dzRFWS9lUC9PbUk3UWdqSmRlMGQxTjk2SzNaM0YxckFBMGEycFdSODFSRE8rczUzQ0JVWG9WUVB3RjZ1dnJwM0psdFh1TzBhMllVaG5Gb1RXV0lqQXJuR2ppbUoyNmJqTkJtUWthRDFYdDVKaVVvY3dsUUtCRmxDdmtMMFgvMEptYkVwalVVSkpCS1lGWldBUWtwSlpVc0xRZ2lNMGxLMFhOMzNzS1pHd3FFd01wSkhvVThuNGxQNGlhRmM4NGdjcVdXcmQ3QnNhUjIvdm04QnZzSVFBa2gzSnNCeHdmUUtKMWNzcStPT2UrY2ZzKzhQN05zNmhIMFJYT1h3eHVZM2VIbmo4NFQ5R21GOVBGYnJwYlJteC9ESDAyMVNQb0YyTkhPKzdqajNQYzlhbHk1ai9SbXVLdXJrcW5BNzlvNEVmMzRoellQL1RMTzkwU1VRQ0tEcmd0Tk9PNDN6enorZmxwWVdmdmU3MytIdVYrcy9wRXh5MW9rbW43ckV6NXdxUCttbEJqdWVOVWx0MU1EcG5mN3FodDYvaGV3SHRhRlVTdUU0RG5WMWRXemR1cFZISG5tRTd1NXVmdmF6bnpGMTZsUXFLNnNJK2pTK2VlVmtkdFJIV1Y3ZjdZVjRjM0oxVnp4Q09RNUt3WEVqQ3ZqYWxWUHgrWFFjMTZHbHVabWYvdlNuVkZWVjhjdGYvcEtycjc2YVVhTkdNV0xFQ0RSTk82UWFoNUdheVdmOFJaeGpSdkFqUHZKNVZydk1UQ0VFTXN4ZW9OVUN4ejFjckhlSHRmWUlJcG5qMmVaV0FIYVBHallwd0VIMnd6bFR2UExPQmdydUN2RFpLMDVpL0tnSzhzSmVUbUkwbm1iajFpYnVlbndCcjd5ellUL3M1cDc3NG9jYjJ4c2FMT2JTNnJsc1Q3UnlYT0ZJL0pyT0c4MnIyYWJxd2MweUphK2F6NDA1SnlmWEZTODFyYVE5SGNPTktJNW1wRjBoOEVuWUVvYzcrQ3VPQ0gwdzh3a05MWm1nRS9CSlBoTE53ZmFock9UVXFoVDNYMW1QVDl2anB5c0Uwd1BGK0dVRVhVbVBHVnlGREJpQXk3RGhrdTJyRGVaZFppRXZqYjVYUFlzOU02bjJ4c3pKZmI0M2R0OCszMnN1T3pjWURCOGxEdWd2VFBqemovdjNmQjczMkw3VDZ4NVpreW5sdXBoK0gxZGZldzMxOWZWRW8xR0VrTHN4YkNLUkNFT0hEU09jRnlIaldFalpPOWdzN2tCai84RTY5MEhxWlhZYW1WUVlMamc1M3BvWVUxaHlrTlY2Ylk2UHhrUktnU2cwUE10UDd5RVc3SjRFK2g0eGxyQVZvdEE0OG1UUVFlcEpXTk96RDNFcE02TE1MdHZDRFJOMmN1ck1JV1RIZlpQbXdJbXMyS0h6OW9PMXZMVjBNZXRxMjNHVGxoZVg5V25Jc0luQTI4dHdsVG9xelpGbEVNSW5ROUVORUpvSE1nSTRrRjRKTGIrQTZELzN4SVFQeHJhQjZlekdoUWxNejdHeU9yRGNzeHFoOFVlUWVBZkt2ZzcrU1JBNUgwSW5RMkkrZFB3TjRtK0RteHo0L0hER2NubEVjc0N5MGt5WU9aMWh3YUVJdk9aNWJxT1hVeXdyeTBFcGhnV0hja1ZxT2h1V3ZZaGgrSTlJYml3OW1GM29DT3hXWS9kRGM1T2FWd3VkbHRocGM4RGFSQUtGWDljUkNMWjJ0TklRN1VJcFJXYzZ3ZnJtblFBMHg3c3A5SWNRUXBDeExRUWlkNHc2Nm42YnE3eDRuVktTT3hkMmNuZitXRTdKeERnMzIwMVMrdkJKUld2UzRvSGtTZXhZWEEycGJ2RHBDTkU3ZVQybW9lM0htb0w4aUovOHNJKzhzQS9UMUNrckRqS3F1Z2lmcWJGbGV3ZjJmdnVCaGk0OWJPcGQ1NUFDUTVmN25Gc0tRV0dlbjd5d2owall4Ty9US1NzTU1XcFlJYW0weFk2bWFKOWdIenBLOEVxOGdrWXJ3Slg1MnprOTNNd0lYNXdDTFV0RTgzeXF0SkpzdGNMVVpjSzhIaS9uc2U1aHJNdmtEMGg1NVBHRTJDdHFOVWdEZ1E3blNhWHREQSt1ZW9tR2FDdVRTa2N3b3FDS3RtUTNWamJWNjlkYWRKelp2eWV1bDl2WjdHb0F1ZXUxMEhibGh1ZSs2K1hoRjF4K2VmK2Uzei9ldVc4Y0NwY3BoSWxVYVhRc1NOTHhZQVgyZGgveDVjV29qanlLam84eHdlY240emprbnprUzdhU0pUSEZpekJZUzdTaGtsbi83bS8vOVh2dFhDcFR0b2h5SHNWV0ZYSHp1Vkw1OCttaEtWeXluL3ZhL2tsaS9HU01VUmtqcDVVbnZPUkJsMnlqSHdWOWRTZjRWNTVLODhSd2VOQnE0NC9WZnNLbDVNL2hEYU1Mc1UreWc5OGg0QkdRVlpMTHZXZE9PUExxQXNrZWtzNE41aE0rK0Nla1BrWmovS0U3ck5nQzAwbUdFNWwxTjhKVHJJSmgzYkxHUUQwQmppb2ZTblk3anVDNmFsQXdTQ0wyM2VFM1FGMDdIL2h3MDBQb1ZERFI4K3IyZnBsWmNRUERNdVdoRkJlaVZwZGc3bThsdXJHUElzblhjMExrcFlPSmUvWSt3OG05Ky9QYy9wMnp1dTdTOEE4ZmZCdk0vMy90K2dLdElwcTNCQlRzZ2hJb2drM1hJTk9SNmplamFnTUJLR1JpT3hwNzFIMy9EcTZmS3YrU01QWjkvV09mNU1HMkozRFkxQVovQjVSOGJTM3ZVWnRGMkExK0pSS1JUdUVLd0tqd2NLMnR6enRSaUxqNTlES2FobzVUeXd2S3F0NWFDNTM4OC9QRERMRjY4bUhYcjF1MytmTGNObHNzUFc3cDBLWVdGaFF3ZE9oVHdtcG52SWh1RmhzQkI4YU5FRTh1c0pEOE1WUkFXR2pIbG9DdUIwRUdHRkVhNVMvdlRQcktORXVrL3RKeEk0UjhLdzUrbTVUY1AwUFIvdnllN3ZjR1QrMzdmdmpiMWg0QmM1WUpoOHNheXQzbHQrUUl1blhjT3JsSmNlTUpaU0NINTdlTi9ZZTJtMVRUSG8yUnp6MENUa29yOElxWk9ta2xwWVNsUHYvV2NaK25zNVc5K21DaisyT00wMWRRUUNvVXdxNGZRM3Q1QlUrTk9JdVBHWW1nNnpUVmJDSWFDcEt2R29qSkR2U0NvcHBPSlZMUFJyZUMram56U1cvN00rY25WREMvM0FBUEdsQ1NwS2sxeWVtb25uWldTTFUwNkk2c0VoWUVNQVI5c2EvRFdYYzBPMk5vQWpSMlNVQ1JCWWhlMm96aDI4czJEMkZic2JDNEU2U0pEV1pvMlR3SGRRWWJTck50VUJicUwwTjNERHZNckJiWUxqOCszd0ZIbytRTGJnc2ZmdHRBREFxVUJsamVHc1dXUzAyZnJmT29NazNrVE5NREVaUUtDdnErcVhWSmw4T3NUSXF5b05QbzkvdUlIUFVzSlpCMjRlNm5pNnlkRDVZZ3V0b2hpRW9WQnhqYSt6WVFPZ1ZtWXgvQVVKRHZhaWY4VHFtOERjMWVxdjNzc3hpM296dVR6aDNWZnBEelF6Tm5WTDFIazZ6am83enN5UmJ5MDQyenVYUGNGdWpQNUg3MmN0a0VhcElQUUo4NmIvWUgyWTVYYlJIVHpKcnEycmlWdlNDV1pyZHRJNEJJSVI1QUJRZHVTdHdqTElDZlBHa2RwcEFMRHRYdHRqZjN4algzZlgyQ3Q2TmZ6K2RRSHhHMCtiS1JKaVNIMVhFMnIydWZHMVFGbXdkQjBIT1dTdGEzYzczdkdKK2ROZVlldm4vUXNaMDlaQXNBYnE0djQvY0k4M3RqcXcxR0NQSitMUUhucEtmM2dZVXdibXVEbVlWdEozTk5KSmpPSzhML014cDQ1blk2cUVsYTdLYlowYm1IVGE2K3hwYjJCN2QzTnRNUTc2VTRueU5wWkQxOTZ0MitidzJZVW9uY0taZDZQZGlUZ3JSYlltZXIvREhuSU5aOEtJZHdEY3A5blhydURzWnBCT3VvMDBPTGtWN1N2UHFqaElJQ001V0MvVzhxL3pKek1MOUorNnRvU0dIaTVTbGtsR0Y3ZzR5dVRURmk1aWxPM05PQTM5VjZOSSt3UEwvemc4cllCeFErSE5ST09qUkV1SkYwd0E3MTdLMlhCQXQ3ZTJFSEJzQ0RGNllWbzQyZGlXeTVWMFExczM5bkMvSzRSbUoyMVdNTkhVVExyU3BTVE9hYStrUVNrQ3lkV0NLUU90dGNLaWhNckJhNmRhNi9RajU2TkZJS0lYL0w2aGdTdnJJdlIwR1dqZ09hb3pWbVRJa1Q4RWlsRXIrNy9hc0ZBRDNRakdCRkZ0bFduNDAyTjVGYXZIdG51dGdsUGRERHljN25ZUFJsdWVyLzN0Zy8wTk5ib2w3Rkh2SWtLZENHc0FGZ0JFUDJ2VWpTY0ZQenFFeGEvdWo1TFlWU2d4SjdXWlAyUkNpTDlHME91NHdDclBKdy9tWXJxVDlBZGZZSGlrZldVYTJrQ3pmbjRJd21rZnpzdGNRT3B4bERUZVRhLytlczcvUDJmcTBEWDBFSUdqbk4wamZnSEgzeHdZQmtRWWwvdDRlbytKbmJVSUpTTG8vdDJoK3QyL1N5TDRtVFRvTXpRZWRxeVdHL2JOQ3VGcFJTRzMwODBrNkttcm83eG8wYVNiR2lnYmNVS3R2emhEOFJlZXcxZndPL2w4Q2kxVjlxRHBDTFZSbG1xRllHR28ybDlpamQ2U1ByVFZXeEtGY0hLTGxaKy9WbUdqQ2pBY2FGcFd5ZElBM3lGSUp6QkxOTkI2bU1EN2RqVHVlZWQwcS9IdDJMMTB4OUNIaEg0VFp2R2ppQ1B0a3hFMTF3MDZTS0ZRa29QMi92QXI5bm52UkJxdi9mZTkzdC83b1dFRkoxeFA4Tkt1aGxhMHMwTHkwY2YzSWdSTUc5OGdCK2VWc1QwblNaZEw5azRLUkRTKyt2dnVrNnpvQzRpYVNnM21KazBzRnhCWVVpeVBOOWhXS3VOZE1TeGJtRjgyUExFYlcwbCthZjdpSXdhUWVqclgwYVVGcE45N1czUzl6MkNQWFVTK3BpUmFHTkhZUnczRlh2RmFwSi91ZyszdFhXd1RHSi9POGh4aVAvK1R4alRwK0NiZHdMQmoxK0YyOVZONG0vM1lXL1pqa3BsRVlhR0xNdEhGcFRodExTaGtpa3ZiaUlFUXRmQnlHRno5cVBjQm1VN2lHQUFQV3V4NmNKUE0vUTN0L0xvRTQvenpXOThrOXR1djgzRG5aRVN4M0dRMHV0NzljMXZmSVBhbWhwKzg3dmZFUmcxak8zLzh1L29wZzk4cG9mUjErZStza3ZLQ1dBcmd6d2ppcTBNc3E2SkZBN1BOMTNNbTIxbkVyTWlCTFFVbW5ESXVpWkJQWW1yUHR6NXlidTJKZktreXl4Zm1xdENNV1phY2RZdFNYUFAweG1lZVRORExQSEJ2SmNmRVJ3L1JlZlRsL2c0K2VSaU51bFR1YWY1Zko2Sm5rSzNuUWZDK1VpS2dZOWZjdVRPdXhBQ3kwcXhaZVdQV1Z5d2dQejhFTDV3aENYcmRySjF5V3RjZHJiQU1IcldDLzNCcC9jOU9HL1MyUDQ5b2MvMDdQQ01yVmpWa0tFNHBER3N5R1RxRUIrR0RwMUpGMDE2WXJZdGJsT1Zyek94d2tkZVFHTjdSNVpWRFJreWRzOWw4RUNiMytzdkd0bXZoM3YvMGtIbnoxWkRrTTRTV3Bac0pHVE1vWGhtTVcwYmsrU05uMHp5N2pkcEV5R00vQUIrdzk4blRxTW1GT2ZrdFRMVVRQRlVWem4xV1M5R1BEOWV5QTNGRFV6MHg5RjZ1Zm5XK2RuNlEvNnRXNi9ZZE9kS1p2cDA1R0ZpZmJnN3ZHTm43RHIyRU9Hai9ua3N1RUdCb3lUQ0JPbkxvRlI2dHg1UlNoNVJuYnNRZ29KSWlDdm5qR0h2RGxVQmY0QUpROGF4ZXNjYTJ0dldrWmVPRW0xTVVhUU5RUVlMTUp3dWlrcmI2V3B2UnFzWTZoMXAxcE5mYkdESWFsUmtGbmEyaSs0ZHJ4RnI5VEhFdERocDNBbE1HVnErejc2M0ZJS2hwUVVNTFMwRStnWS9YNjl5TU1kYVpEYWFSSjhJRW5zbTZNVW10K2prWFpiRUhHdWhWemxrTi9XZUxham5vS1p0MjRNMCtlYU5mbTc5Y2hCWENMNTVlNEpmL0MyM2tYRktOZm9GSTdBcnc5aHBCNkpaYjQ5RSsvRGtCcmp0SFloQUFNSWg3SVZMc0JlOG0yTStDZUVRS2hwSHBWS0QrUkQ3dVplTjBUQ0x0Zy9ob2ttYk1MVVB6bmRXQ2hKWmd3VjFRK2xNQlhwMC9RRzNMM0VRMmFhVUlod09NMjdjT0xxNnVqQk5rOUxTVWpSTnNuSERCaUlsWlFnaDBDMlh3b1lrdm5nR2Z6U0Rrb0xTTFYyRU9oeGsxZ1VwOGZuOWREU2xtRFJ4SXFOR2o2YTF0WlZzTmt0QlFRSGhjSGgzYjdURDFxOFNSbGRxWEhhQ3dZMW4raWdjRXVEWnJrTHVhaXhqZml5QzQ4cDk4NDZVaTZtYlRDNGJ4clhUVCtiYXlhZWlFZ0ZXTGVzZ2tScXMzUVBRZFowMXk5ZHcxWGV1WXFPNUVURkY1NTNORGdpN1gyenk2eDk2QVpZTGlwcG1saW1UWDhlMXZUNXdxMWFmVHUzMkU5QU1uZXJ5UmN5WU1kLzd6c001QlhkWEk1MUIybGU0ZTNQUzJOakltalZyTUlNaE9yWTFZMmZpbU1OSFluZTBldURMbmUyNC9nQkNhcmp4S0ZwaEVYcDVKVEsvQUt1MmpvNlFUZnVRcWF4dXFtRm5kNHNIM3FENmRPQ2c2N1J1YXliMS9aOHo4cyszWVl3WTVyVmZsT0s5aTFFQnJwZnNhOVZ0cC9iN1B5ZStyUmtqRlBDYWlBelNBUncwUWJtdTRRb1lydWwwdXk3NVVySW9rK2JGZElwRTdnRXZ5cVE1SnhCa3JzKy8remRoYVZPdWFXaUR4dGNIc3JIbHdEL2VodE5uUTJFRXZub3RaQ3lvM2VteDdYZCtBM01td2Nrem9Ma0RGcTJHcG82akU5dVhBbXhIc2E0K1NVdlVvcUxBN0RIdVpkWlJMS3VOVWQrZVB1eGpnK1lnOE1lK1lrMndkNGhjS2d1aFBHUE5RZEFnU21nUUZid3FCQ0ticG5wREI1TTIxRERyb1FWTTk3ODNLcEg4bjE5K3FIU2IySy9Jb0RlU2RLWDBRTG5jSTRpTWZIYjA3ZjE2enY2OWgwSEZEM1pBQjNEbDZRQXpsSmVzYmdIYjVaUVRxN250dXljQmNQUC9neS8vNVJwT0dsZUhFTWVnb1o4Q08rNlNUU3ZTV2UvcTJRNGJZU3YwWXgyY1V0QmlDcjR6eHNkVHBUcVh0ZHJNakRtVVdONDQyd3pCc29qa3lWS0RoZmthdGhoazVTT1ZFbEp6dklaM2U3MGVuTXBEbkVQWEliVm1BOTNQdlV4eXhScmNaQW9oNVVHYkQvYXRqK0FsYXJSbE82bnlsM1ByNUsvejJSSFhBR0JiV1hURFJCYzZyWGZleTg2Zi9BS3JvUkd0cUhEUENWeVg5cjg5UnZ0OWp5TDhQdS8rMGhrUUFpMC9nakQySklxMzNua3ZYYys4Uk5YM2I2YjBpNS9hZlkyNVJUUDQ1OG4zY0ZmZEkveDgwNTAwcEpvcE1nc0d5K1VIcWQvRnJqUUJlL2V4U21jVktzMXVrRk5kaDNHamRjWk4wcm5pS3NGUGZoSGY1eHpmZUd0WVA3L0w5bjNlM2ZyN1Z6OFV6ODRGWENYUURSdGJDYjY3ZmpSL2J5N2hEeE8zY0x5TWMvMUY2M0FVZlA3MjgwZzBoOEZ2ZytscHZLNVdseTVMbzdDeWkzdSsveFNmdkhRRHBHQnhkNWd2ckIvTjhvNThNT3pkNXo0c0dqa2U1cDRPdzBkN0cxOERHTXhJS1VXV01seFJqdEFOTW5JMFVYRUN4SDBFYWw4aE9XSWErdloxc0xvYk9YSWlXclRkaS9kWmFmUjBETDJ6RVYvOVdpSkkwaC8vSHZiSWllaVJmT3p4czhBdzRRaWFPTVYvOGorSFlORUk1UGp4K0c3OUViYmo3ckZqRkRpT2k1Tk1rYjczQVp4bHkraXJ6ZWhkMUt0TjVvNEM2WkVJQ0VGZ3pFaWk4OS9GTjdJTWxXbmFWMGdPS1B0V1lhTjQ5S1dOWEhieUdGcG9vN3l0bEpPblhrZFE1Yk42WFNzamk3WnhhbUVUUWY4Mnd2NGk0dDNENkd3V0NEUE11QlB6S0NvbzR1SFg3K1BxR1ZjU0NJN2o2eTg4Z2kxQUhXc0wrY1FUUDVSNldlWk16QjR0SFFXYWREaTlZajVmbi9SYjVvbjVKUDZ1MlBaRUFLdEZlRVVKY3QvZkt4ZU1ja1h4WlZsQ2x3am1xMU81ZmNsWGVMMzU1TnptYk4vNVgwZHluTWhGY040dnV1UDJ1WVRiNVhmQWNYbUNiNC9TT2F0RUlnL2wzZ1E0YlJieFp6dUpQOWVKU2g2bHltemI5djRPYUZpNEIvNHNtZlQrQnFuM2JMaGRDMXlUeVAwYXI3aXVPcUo0N2tmUGlUbkk2OEdKR1p5Q1BxUnRPN3NIMUhqZjhnM2w1K0VUMkdnT0FUZUw3cWF3a1Rqc0Fxcm9YN0ttcyt1RDltSVZXQW1HVkhUeDU4ODh4ZGNmT28vMVc0ZnMwK3Rvd3NnR2Z2SHg1L25jM1pmUzBGUUFSdDlaQW1xQTV4VW81VFZ2Nk9ySTB1VXFoSyt2ODJWeTgrWHowR2t5dFNQSjFJM0VQM296ZVhNV0gyRTh5enRuWHFTUU1hT25VcnR0SXkydERSdy82MlA0ZlFFQy91QjdyRUdsRk9sMGtuUW14ZEtWODBra1lvd1pPWW04U01FUkpUa2VudDByQ0RwWkppVGJPTDlqTTZkMzFaRnZaM0RFMFczYU1oRHA5dis3aWx0dVBHRjNqT0dlSjVienM3dm04OUxMNjVFUlAzLzkvUTNjZU9sMEFOcTdrdHgyejBMdWZHUUp6ejJ6aXVFVEsxbjZ6TDh4YzFJbEFPdTJ0SExySDk3Z3NSZlhzZUtkclp4MzBUUWUvTCtyS0loNGhTWXZ6cS9odTc5K2szL1VsWkhJdU56eTFYbmMvczB6QWJCc2h6ODl1b3lmMzcyQWwxL2VBTHJrNGt1bTg0L2ZIdDdpRTFLaWxBc0toSlMwWnpwWjA3MkJlK3NlNVI4Tkw5RnR4WWtZSVFUaXFEUVhFcHAyT0FzUG9iMDNQaUtrUkdqeThNNzFFU0VaQ2g2NVdTY2tLcXQ3aGRXSVhMTkZEMEJHMHlVeTZNTXc5QjdGM25xYWdlamkxY291TDRGZlRGTjhmcjFnY2hmOCsyckptdTQ0MlRzZm8zdllVR3piUXFXeUJLYVBSeXN1N0wzaUNPTmcwK2VCN0FSOVdjYVd0MUZlN2pDazNLSXBEVEdWcERqalVGR1Vvc0ZLTTlac1IyZ2dqTDQzait3akJCL1ZwR0o3dklCL2YvNUdpb3dvWjg4VXhMZFdvT3MyYTBORFdmTGlETnF6WVRwU1BvVG00cWlQcGw3NTlLYy8zVU5mS3BlN0pjWHVHSW1RR3NwMVVjcWh0OUV4L2prK3dsL21GTktVcng4VGNQakRwWTc4SXJZTUdjVzZrUk9wR1RxR25TV1Z4SUlSSE9tMStSUEsrOVBjZmxKQVA4RGtRNi9vSFBvWEFBZEM0VG9hVzFwTGVYUFRPTHFTUVM4SHg5RzhRcUNEMUVjb0pWQ3VCQ1hvU2dWNWM5TTRhbHBMY1YwSnV0Mi9rUVlIcVU5cGI1Tm5mMVkvMnB6dnVyQzlNME0wN2NtOHJwVGRaOWY2elZXakRzbkhYOVVRNS9NN3V0SFZ2a3BGd3lWc3d0ZE9yZUNrTWZtOXZ0djV4T2NITmw4MXhzdjYrUWhiOTNtWFdMU010cjg4U1BlTGIrQWZNNExRZDcvQlk3RUlmM3B5UFJzM05Ydk1JRVh2RmlQbkNqRnF0M2Z3LzM3ek9vODh0NFl2WGorSHoxdzFrNEp6VGlkODhseTZuMytOdGovZGYxQXpTNktJR1RxVVdQemd1QnB1bmxoSFVTUUpsbzd0R09nQmhYKy9CZ243OURjL1VKM1ZBYjdYZDRGT3VBWUZ3U3ovV2JXZWY1dTFqVit0SDhHdDlXT0lHYnFuTDQvRXJHdHBnVldyWVBSb0dESGl3SFBzT0FmZmF6c1lrSlJTVUZjSFc3YkF0R2xRZHBSNVVzSSt4UjJPOTVtYm05dXArV254N3hOdE5Ta3Z3LzNiOHRYU1RyK0lXZElEMHp2Y2ErbEhYam9xYlBXK01RZWhhVjUrcXQ1N2NZbGJGcFQzT0NBb3BFQnVCbWVqeXZsMkFsZkJ3NHRWTDRRRE4vZStmZ01xdHdsYVhsZlluYmtoSG0wbHF4U0p0NWZSL2ZTckZIM2lZbVFrZE9qalQyV0l2YlNBMkVzTGNrMEplMDhXL3ZTeEh3OGFZOGVhNGtBTXJDVEVhaFhaNXB3S09JUnRJSUVIYkpLMUlPanp3QXQ2eThNWFNvR21NeXJleURlWC9oYmpueHRvVng4Z0o1VkNDWUVVRWoybnR4T3VTOHgxY3ZmVHV6N1B0KzViUGNnLzd4SFJBbW1tZG5uU2UzcmtTb1hRYkFRV3psRUFXbFFvWkE1NFFLa2NBRWl1VTVRUUl0ZXNWdlh5TmNIdGhYMHBoZGdkeitwNWt3eUJLOFNIcWhIaHJqdFpZNmU1TzlsQlRWR1NHMjQwK09KVitWUlhsNEU1Q1VJbmt2WFBwTTRxWWxGbkc2OXRYY3VpbG45U0cyOGtZNmZacDZrVi9XVHZSUWlVY2duT25ZMS96anlVWlJHWWR3WjJ3M1ppZi84cnFVVnZvK3dNV2trWmdibW5rbHIwRms1N0syaDlEeUhTSCt0eUIybVFCbW1RUGpTMjAyR0xRTThZSGxrVjRIT1hWTzgreCtSUllmNzl0NXNBK0svUGplSGthWVg3bUw2ZXFCWDlaNXRES1pTZWl6YjE0YUMrOHV6bmV1N1B1d3BORS9oOG5zN05MTFZ4SEhYWVlLT0hRZ010ZitmbW0yOGVZSWFrNk5QOHRSNExnLzNXd2gxUHJUb2tKNlFvejhmcEUwb1o2anA3ZWlXaFVJN0RpaTJ0L1BvZnE4aGFnL2haQjVSRGp1UGxERWxJdjdHSTl1LzlsTXlpRllpQUQxd1hjL3BFaXYvbjMvR2Y1cTFMWmRzSVRZZER5ZC9TTksrR3lMSFJLc3NvL2ZOUGlYenlpdDNYY0tNeDJtKzVsZmlEVHgzZ0d1ODlmMUgrbmo2OVdTVjRwcXVJWHpSVnNqQVc4Wm9adk0vK2NBK0RNN2pBMG5pRTVZa3dEN1NWY25QRlRpNHU3TURNK2RpRitlODliRm1Wd2NOVGdydzUzRWZLSjNaai9IMDRuRktCV1ZiRWtDOWNUYXB1SjlIRnEzRXRyL25vZ1RaY0ZBcHBHT1RObnNxUUwxeU5XVmJVNC9qVTh4T1A5SGlCNnlpR3paeEN3N1BWVkwvYWhldll1Mk1hZGJPcXNjNmV3dlpZQTFMckJ6V2VLdWV5V3dKbm13K24zdHpqd2p1QUswQXEwRld2eHRwdkxULzMwSVluQkNKcDRkNitHbklOVXFTVTJQYUd2VVNCTjJESGFkM05IN3F1NDdweFhIY25LSVhNbTRTcW1PN0ZRZytGbXYreXI3Z0ptb2lRRDZVVW1WVFcreXppM3cyR0N4elQ3OTh2eThsVkxpQ0pCQ1hDTGNlSm5ZMFZPeHZjRU8zNUdVQWcxYkZOS1NyUmJXYUZFM3k2cEoyNWJpY3IzMDN6NXlmU3ZQeE9sa3hXWVJnR2t5Wk40dHh6ejBYWGRZTEJJTHF1TTIvZVBPcnI2MmxzYk1KbndzUlJHdGVlNytPNk13S1VKVTNhSHpIcGVzM0E2amhBRFdvUHlCbmdJUmFsRkk3ajhOaGpqMUZiVzh2cTFhdVpOMjhlTzNmdTVKNTc3dUY3My9zZUFwZzN0WUlmZkc0V3R6MjRpclYxWFhSbG5EMjJsQlFVK0hRbUR5L2dHOWRQNCtRcDViaXVDMHJ4emp2dmtKK2ZUMVZWRmZQbnowZlRORWFPSE1uTk45K01sUElEYmNXenpBaWY5eGN4UWZOOXFGUmJiNGxzcDZjVElySThtejJKWjdNbmVJdENaTDJtb1AzWEtEamlJek1abXdlZlc4cTZyYzJjTm1jc0k0WVVBMURYME00Yml6ZXpjc01PbE9QMjdwN1dZWjdMczJ3RXM0cEdNYXRvRk8wcXpVdU5LNmd1cUdSWVhnV0xtMWV5TEY1UGd4MmpTbzhnaGVEY3lobkhpUDhFT29vNk5ZNGF4aDJhV1p6VEx6cmdRMzJvOWxBT2FjNWNRWFdleGZVbG1WeSs2RjZUNW9hQThMNDdKNjVDWlYyR1RMTTlYcEpPTDI0SXMydUREUnhRbVFPNFZ3SC9nSnJmK3phK2RNUjYwREFNaWkrZVJxd3VqMWg5UFYzZFhXaFNrcCtmVDE1MU5RWERoL05pYkRYWjltei9qWEVNMGlBTk1KSUtuTDJXazVOek5RZHBBSVZxZ2hyaG4wendOa0w2aTJoVW5tOGlnb04xb0VlYi9BcnlqU2duVnU3Z2t6UGp6RDV1TlBHaUczaXlaU2l2UE5YR3d1V3ZVYis5RFRmdG9Bd05aZXBva1FDZ2NOVXVESnFqSndSQ3gwUFJweUh2SEpCNXVaaVhEYkdYb1BISGtLNzVZTGJXSXVBZnQyZlkvbkhlWjA3MGZWalVnYTVuSWIwUktuNEFlV2VCREVMa1BBaWRCTkdYb09OdTROMkJ6UTlmZi9odzE2RHdlcWRrWEFyR3pzSElXY1gydWsya0huNENnTUMxbDZOUEhJdUJ4bzJ4T1hROTlEckNaK1R5MncrUGQvN3ZVRjFPMFdNM3RIK0lSaUhaR2UyaXRxTUZ2YVNDckdQaktFVWlrNkVza2dkQUlwTkJDb2ttQkJuYnByYWpoWjNSTHRReDZpeXZjcXBGQytsa014bGVjU2V4cHFXTkxEcCtMRnFKWU90aGhKdEMrbldjUGl3N1ZFb1JpMmVJSlRMc2JJbHg2aHdIMHloblEyMGJHMnZic0k4d01PTXFSVmNzVFdjMFRWTnJuRE5QR28yaGFhelozRXJ0amk0YzFiY2U4N3AwQVRYWkNFOUhoM0pjc0lQUlpveEN6WXN6ZHprbU5ka0l5NU5Gck0va2tYVzF2dGtMRzZSQmVoK1RUaDFxT3JBUVpOd3NMOVc4dyt2YlZoQXdmS1JkNjVDT1ZlTHdOTWpEbC9mek9NbEx2WC9LL1dNZ2ZSa1RHWDduSC9yMy9QN3h6bjNuUWdteTBxV3pSWVBmVitQRU5XVFkwd254Ti9OSmJRZ2c4eXlLUHRaTjZjMGREQi9UeXJtOVhSZjVQdlR0Yjc1bnFVRFd4bWRvekpvK2tzOWZPWXRyU2lXSnUvN0cxcnVmUW1Tem1IbjVIdTdFcnZyQjNGaGRLNHZRZGNJenAxTDQrYXZaZE5abzdxcDVnYjhzZlFyWHphSUY4bkdWaTZPT3dlNk5vRjgwdnEySjF4M1pnVDVRcDF5QU0zRXFkdHQyQVBTU29VUkxoaUY4V1lqVjlidWxjT3JJNHpobHhJekJHT2wrdHV0QW9vSFdyMkNnNGRQdkVrNzY2R0VFcG8wbDc0WkxNTVlPUlpnbU9BNko1OTRpNFRPcFhMS1c2OXEzK0gydWMra1RlU045RzFyZStSbmg2Z1hFNmhYei9nanovMlZ3Y1gyVVNZQXd0UUVwWS9vMU9TN3BtbTNZVGExMFBmSThBRnBlR0wyeUZQK1k0YjFhdzkrLytPbndaWjdNcFoxV2w0WDQwdFZUV2I2K2hTZmYzazY0cEpDczVWSnEyMXc4YnhUSFQ2bWdNR3pnWmFIMUxybXVpNVNTNTU1N3pudFdtb1lRQWllSGFTR0U4SEtTZ0UyYnZEcU9ycTZ1QXovNlhGYUNSUEIwTnNwcUo4M1BRMVhNMEFOMEtCc3BCRzVjRUY5aUlBeUZES2hEVGt5S3Y3MklIZC8vS2JFMzMwS0w1S0dYRnFOc080Y0Q4T0d6ZVRTcGtZeEgrZDk3ZjhuUXNrcG1qWnVHNDdwY2RPSlpUQjh6bWFmbnY4alNUYXRvNm1nRkZHVUZwUnczYmdyamhvemt0Z2QvUXlJZVJSaStYTzdpaDQ5MmZQUHJHSVhlbnVlT0FHQkJKS1ZvTC9WcWlmeHRDamNGemFWamhYUE45eUZTaE4vSjRncEIxZ2pRbURlRHA1cXV3RitmNEF4dEsrVjVObElheEZNMlliL3lhbDgxUWI1cEUvSkRJaTNvemhiUXNTV0RjSlBrUlJTWER0dENhK09MUE90ZWgybG4wVFJKUWd2Z2FPWXg0eHRoZUhocXJpc1FQcSsyMkhVRjBtK2hqclRPU3VUeTVTUklYV0E3ZURoNjBzWE9lQ1pmU1ZBd2Ziek9wODh5dVhhZWpxRUxsS3RRU3VXcTcvdVcvakUrd0oxelF1ek0xejRVeVk0dUlEVlkyd0ozTFlNelI4TTZvNTIxcHdjNXZUS1BiNjRDWTJrY3ZTVkpZQVVVdmdZRmEvYzYrSmlOVzdLaGF3TC90ZlEvYVU2VmMzYjFTMVFFbWdqb0tUVGg0Q2lObEIyZ0tWWEJ5enZPNGcvcnZzaUdyZ2tmdVh5MlFScWs5NlBmZmZ2cTl4WDBRcE0wdmZ3eXRjLzhpYXpkaUsram5PREh6a2VOR29IL3pYZUl2L0l3eWgvSEtqMkJyM3poOHdTcWgrVGlqNzJ6enY3NDNXdjNlZi9kOU5QOWVqNmYydSs5L2lGT2JSRkEwQXd3c1dJRVlUT0Fxenc5clBEKzlkNTdBUnlWNjZkZUdpNUVBWjNKR0RXdDlUUkgyM3VrdGYvNW1aK0Fick5pYXlHM3ZWbkFTNXQ5T0s0ZzMrOGloT3A1L24wdjAyZEh0TkxWV3NpeU9kUFlXaDVtczlYTjFyVVBzM04rQzUycEtCa3I2eVdkZUo3Ykhyd1dJVHhqNkdqVDJtNVkyQXBSYTFCWUR0SWc5VEVOdERqNUwrdWVPdmhJaFJmWHNiWm1pV1JPUWovK1N2NVFFMkZEYXhMWFZZd3JEdkRwOFRvM3JYbUc5UE12OFNuVDhHeU9YblRqOWtlVXZmbUp1Zyt4UXBhNFZwTFEwT2trZFpQWWt2c0pDWjEzMHVjeU9yNkl6THIxRkJZRWFLakpzdG05RUsxOUpiSjBOT0hKMTRPVFJtbEJqblhpM0s3dFlOdmFEUnVNYlhrNGkvME9TMThvTmpkbmVXZHJpa1RHM1QzZW5WMDJqeTN0cGppVXk3L3F4WEZYZitLU0hoMHZkUVVhbVBtQ29ubTVEeDJRUVVYbDVlRGFQWHordjE2eXI1OWVzZ2xyN0F1NFJWc1FWZ0NSRFlGd3ZiOStTTCs5enVLMzEyWXBpQWt2eDZpZmh3dWNBVmJnTElTWHVGVlFmZzZSd3VQSnREK0FsVjVQdHhiSHlscEVaREdSNEFXOHVYNFVQL25ObXl4YlZvc00rVUI0ZUExSG13WWF2bzlyaWZkWUN6WSs3NDJsRGdpREhnZkdLTUcvQ0pQRmFDeDFiUnFVUzdxeGhVZC8vaXZrNWxwdU9QTnNXaGU4VGZ1eno2RmFXOUVEUWV3c0I3UXZNcGdlOWc0QzRSeU5mZnBEa0h2U1FZUjBYSFFhNmhOZStubzQ2STFUT1F4Q01RN1NrWkRWNzN2SzdNdll0M3p6cy8xNnRELzl2Mjk5cVBqRDY1L3EwdDRWNHVmM25yVmY0YVI2ci9HNzkzZnZxV3RSKzc0V2UrelEzZi91L2QwdTBhczVvRHVvQS9EcXRhTWozRkpkUU9WQ2pYak05VUpPY2dCTXJBQmNzQU13cjg3QlhKT2kxYkFvVnhvTkhSWlhwQnlxTEJmSFZBT3Y3NVBqa24xakFZbi8vUlhCZi9zOHdTOStHditGWitOczI0RnlITFNoVldoRHE3RTNiU0g1dTcrUWZXTkJidU4wY0c5cmp5R2t3RFN4Tm0yaSszdi9TZDZQdm84NWRUTGhyM3dlOC9oWnBGOTlFN2U1MmZ1ZDM0KzlhVFAyeGhydjJGMDlScFRxdjBsYnp2OXY3NzdqNDZyT3hQOS96aTNUMUNWTDd0MFkyNWhlUTkwa1FFSUxPQkEyb2NPU0JrbCt1OW4wVFNmWkZBajdaUU1zSVFVU0FpR2hoaEo2TTJBY2d3czI3dDJXTGNucW1qNXo3em0vUCs2NGdjR3ltalh5OCtZbExNMk1acTdPUGZmY1U1L2pnK3ZnbHBkUy8vbHZVN04rRXpmOTZpWW1UWm5NOWRkZGh6RUcyN2J4ZlIrbEZJN2pjTnYvL1I4YjFxL25pYWVlNHVBSjQxZzU2OSt3a3ltczBoS001L1h6NmJBSVcxbFdkaDNDbHhiY2phTThRbFlXaFNGazVjanBFREVuRmNUd0F5ejBqdStITWhzWTVlUTVQWnJpd2tnbkphMXBIcDJkNVErUFpsaTRmTy9ueExKZzNBaWJjMDV4dVdKV0NiVlRSdk5rL0NSKzMzUWU4OU1IRXhUby9nRmJETngxWTgvSFRJTDlGR3g4WDlNVmY0RklPQ2htODFQZ3FrL1lPTGFGTmhyVmk5bHlmM2xzOTNNODdUKy9PTGdUOUpjLzZQVmJ0Q1E4WGx1VDRyaUpNSzdLNVpCUkVUclRtaTBkd1JqVDZFcVhpcWlGYXluV05PZVl0ejVGUzZKdnlxZGlTOTgvZlBlNFFYMjQ5LzVJcWhxMUV6NkxUcjlJN05TUFllWEcwYnhnRHUxTDE5RzVmajFIZitKMGttNDE0YkJMVFhYcHpqNndQamJTelpMUURyTVQxVHYyY3A2ZHFPWkxkUnNaNldiN3ZPdjhodFQ4ZmF1dUt6Q1pIbGIxZS9DN1QrM25OcCsvNnlMWVBrdjhuZm5Hc1IyT21Id1k4V1FIMjVZM01pYXlpVkUxRll5Y2NpRnQyOVlSWC8xcnlpSSticTFCbTJCZG1xVWdHdmJRNlpXVVQvMEsxYlVUMkxEc0lVSXRDL2pVNUtNNGNlckk5NG5wM285QkZSUzRZejF5NjF3U1Q4Ukl6bzVnc3NIbmRONVhpcmZab2ZTOEZPNFlqOXhxdDgvUzBpdFVpYjc4bVFqLy9lVW9rWWpGRDI1UDhjdmZwZkVBVGhpSmMrNUUvREhsZUZrZnVuSkJBdHBEc0kybEZDYWJKZmZrYytSMmkrdWlkdTVyTG1zRjM2TXpFMmJPcHJFY1BhYUJzUlZkV0piZVl4OUxrTVFHWDF1c2JCN0dvb2JoTzhyb25pcTZmUWMrUUM2WFk5V3FWZmkrajIzYlZGZFhNMkhDUk5hdFhZdnZlZGlXQlNVMVZIV0dLRzlONDBZcVVVWXpjazBPSzFLT0xrc0ZhMGs4ajVEck1tSGlSSHpmcDc2K0h0LzMyYlp0R3pObnpzUjEzWDArdHZLWTRxZ3BEbGVmSHVMangwZG9kRXE0WmNzdzd0dFdTMzAydkh1OCtVSmZ3YkJZQlNkUG5NRTF4NXpCaVNObnNtSmxGM2M5L0JaUHY3S0paRnJtVVFIYzkrZjd1UHJYVjVPYm1zT3RkTW1uOGxqaHdYTjhEbXR1T0NCS1BHMFV5bE1vRlJUOFU2Zk1ZVmoxV2xDSzZzcUdvUEN5VkdGaWdNRlNmZE9ocW9ad2IyVmpZeFB2TEZuQ0tTVTJzZU9QSlY5WkRmazhwbTRrWHRVMmNwczJvRDJQOEVIVGNJYVBSTmtXaEVLNHNUSTZPdGV5cEhFTmpZbldRZ3IxVlRUWkQ4b0VtbEJwalBTOCtiVGNmaGVqdnZkVnJMS3lvS0dpOXJ5Umc0N0hhYm45THRMejVoTXFMZW45QXJraGZMMDV3RFEzeEF3WFlrcmhBNTFhc3p4dk1kSjJxTE9Dem8yUnRrTzVaVEhHY1RqRXNyQ0JLU1pZa05uYjdRN0xQejIwUndlMjk5TTN0Y0pWUHdMUGcxbi9BcGtjdlBZMnpKZ0k4NWJDOC9QZ3ZGUGhyQk5oNmpoNDVDVll1M25nTmdwWTFaamlrWGt0bkRpMW5ERTFZYUloQzJNZzUydHNwWWlFTE1LT2hUWUcrd00yMkRJR05yWmtXZE9VZVcrZzZtNlYrOFYyaHU4YzBQejdudWxwdTdTTERMQzU4UFVNd0I0NkoweG5WNUdsNzlkVmQ2NnZQcjd0OU5odHE3NDd5TlB6UzBWZG5yNXk3WnZGZGI5WWUzMi9IKytyRytHNCszZC9iTWxMQUgvWkwzK3laU2xzUzNIMHdVSEx5YllVMWlBYU0vVVV2RnBsODJxbFRibG5LQzFVRVJNMmREbHFRS3EyQjBMN2JVL2ZpMjYwUVIySHFrK2VRL25wcDVKOGF4RWRqejlML0tVNTVMYzBESGpBajdpWFJLRzRac0xGZkdmYTlkU0dxNFBBSTQ2RDQ0Wkl6SG1UK20vL2xQanNON0RMeTNDRzFieG4wb1pUWFJuY3F3czNWbFVTQzM3Mi9kMXV0czZ3R3Z5dU9CdSsrQTFhNzN1WU1ULzdMMHBQT2c0TktNL2ptZ21mNGhPalR1ZS9sOS9HdlpzZVJjdTJUZ1B1eUphbFJYVXhSeWMwRmRYeGRtYUxhMlYyWnlJenBQSzNaNEp0UXAxUW5vVWQ1UncvOTNDK09uRUxQNW00bWNzdldNYXBoMjdtMXI4ZnpYUHpKN0NsdFJTRlltUjFuRE9PM3NEMTU4OW40a0Z4MGkwMjMxcy9sbCt0SHczR3dnM2w4WXpDNjhsOWNQMUt4ZnFWUTZRdnhPQmJwV1RDcDVCMVA0eEhIU2FicHVyNVgrTXNuMHZpMGgrajF5MG04dlNkK05VamNkc2JDcHY1S25CQzRBYkJrdTFjbXREckQ1T3VHWTJaY0REMnNqZFF2bC9vRTl6SC9vYUd4cjBkZGJBNTliQ2FZSExqSHQvRXg3UzFvUnNiQ3czUy9pdHlpcTBtTmU0cm54OVNsVDl0d0hJZGxxeHU0SGRQTE9aN1YzK2VWYXNXOE5MYnozTHF3ZWNRalZWUkU3VklkSTRqb2o5RVhVa2RtMU5iaVpYbmNDdkdrdlRYRVd2dVltelZPTG9pOEtmSEYvTE9xa1pNeUVYM29ET2pXK01WR3pmQ2hBbURJd0YvT1BCWnVOZTFSQU5UeXRmeHBXbS80MStIUDRRN3Q0dUdlOE9rbHdlTjJ2ZkV2OUNnSWxCeHFzZXdTM05zR2oyWkcxWmZ5MS9XWDBobnJoeFUvMTNJaDVUMC9INnNESXdPZzBYb1BRZG9ZUmdkempPekpOT3JZYmJ1M01sc0JUUExGRitmNUhCV3JZWGR6YUQ2ZnB0SC9LbDI0byszb1pOYTFoME1KZ004amlZdFE5R1hwbWUyRGVyalcxN2s2WHZhVlg4b3F1UDk3TmJuRlR5L3M5MDR5STlYT2RaZTJ4VmEyV1M4S0hQWFRTS1pLd0VWNGo4dmVBbUFYejM2WVZMNUV1YXVtMFRHaTBMSXhiTDlQdXNtZi9mN0xGNVhNOGhUdE8xZDdmUUwxUWY5VGZ0ck9DRlRENWxYZXZjZXRtMXozSkduOHN5TEQ1SEpabG53OXV0VVY5VXljZnpCT0xaRFNhd01nR1FxanVkN3JOKzRrcmIyWmpLWkZJN3RjTnlScDJMYlRyLzlqUWFGaFdaWVBza0pYZlY4b25VRk01TE4yQmg4bVNEY0xWKzk4a1BxcTFlK2YxM3F5Z3QreUpYdjE3eXNoNk1QK1kvM2ZlK25md05WdjduOGZaLy9uM2svNTM4K1lIMzk0MnYyTVQrb25mMDJXWjFsZGNjR0h0LzZMSDlhL3hEckVoc3BjV0pVdUdYNHhpOEVnQlR2Y2RzclBiNXd0dDhMZi94NytQR09SOS9aYllGUlg5OHZUUzhtYlNnTGpON3pvbXBqQU4rZ2JWM1lYSGIvTVFydzRjWFJzS25FY000bU9MeFZNYjQ5UytiQjUya2JNNExJWVZPcHZPQU1Zc2NmSGl5U01LWlBGa2trTjRUZS84NXRvTTV1WjdqZGpta0VMSnVSYWgyanpGcU1vOGcxMjlUUnluQ25GZE1FU1IwcVRFN3Z5N0k1dDl0UE05TTlyNjhyREhaVzRXVmMzdWc2bEhNM3YwMGlGT2FkdW9Od095ekdSTnNaNmRPcm9OM3ZGSG54a00vM3hZS0JnVnQwOE5PNUt4UnppeWQ5RDI1N1d0RUdMQ21PNHkyMjhtRnEyOVloVnpIVVJxRnRuMmVXemVDWnhZZGh1M21pYnA3YXNqaXRpVkpTdmgzVWRyWjM0S3FnQklzNUhqV2xDWnJqWld6ckt1YzdEMTRFamhjRTZEbEE1dTdjOGVIUnhmV0hIaURyZ1Bha0k5My92UzJqS3ZlKzZzc1lhSXJuc08wOWpjSUZjeUJyeTF4R1ZZU3hwQm02bXk4OSs1TkJmb1N6ZHZ1cDlJU2pkNTdCalcvQ0N3L3MwN3ZkZTFQd3RYc1gwbklZTjdyYjc3RnFIWHoxZWZocU4yUGxXY2FRVWpZWHREYngwOHdxVHRqU1FjZEdoeTErT2JZeVFRQURqNTJESlJZb2g5M1dXZmZrK2UyQkJxSzJ6dytjdFh3ODA4S2JyWldrbEkyMUwyUGNXa002RFV1V3dMZStCZGRmRHhkZEJMRllZVjVJTC9nK3BGTHc4c3R3MjIzd2kxL0FDU2RBTk1wZ21henNHMFZWeUZlWGp1OWllbm5PL0dGOXBYbTJzWVNHaktPMEdjRGhUZE5IcjlrSHhUWVBiaW9KMVNkcDNGejQ2cWQwN1ZhK2ErK2k5YmNQNGc0ZlJ1bEhUOEF1TDkzN3BacE1rNXl6a0piYjd5ZmYyRUpmNTg2dWRLZmNOUGUzN2ZFODgyREhGWTB0aG1RS3lzdkE3QzBXaDRHMEI5dVVvZGsyNUtMQi9RSi9sNjhlOXRWWVNsSG1aZm5zeXI5eTdOYjVKSzB3ZGpkNmRzMzJqOTUrVCtySHNZSkUyaXV1Y3oxQTdRdjlQdWRsLy9TMHFoMVpRUFZ6SkFBWHpXaWRKcVIwb1U2azl2dkZyWldpMW1SeDkzQldqbXBmdGU4SGVPdXEvZmJYYk4rSXQwbm4rVnU2amFldFRrNDRJOFlEbnoyVVk0ODlEa3BQcE1PZXpvcTB5MnZiTnZGeTQyc3NiRjFOWTdvVjdYdUZqYTJzL2JPNVZYY0xZMjN3dHRiVGRmOWRPTU5Ib0pNSjBxKzlRR2IrRzZod2hNeGJjMmorOWhjWmZzczlKUDUrUHpyZWlRcEhnOEs2MTRwclhTNi9PcktvV3VCTlRkZEpqMEUvZXVHV3h5Vjl4UTdiUHZ1SGZjNFBGL0g3L1hmQXFtZS9vZzNCT29QQ2NQY0poMVJ5eEVIQi9KMFREcW5FODROK29TREdudXF6S25HeHJSdk0rdGsrZVo5OEhsSzVZRTYrcFFwMXluNVl3bHRzODNmYTI5dUxyTzA3aUlQdTc0SFZqUUVIQTFqdjA5ZHBDbTJoSUhaRDMxKzZSVDgvWHltVTQrQTNiS1B0ZTc4aWNkK2pRWnZCc3JES3k2ajg3MjlTOGVXcmd0ZDZQbGpCNi9lMXdGYU9FMVI4dFNGeTJ2R01mdjFoT20rOW00NmYzNDZmelpON2V6a05aMTFKNlNYblUzM0QxN0JIMXUzNXJRN2I5WTVoZ05iQzE4RFJ3T3VGcjcyNVp0bFN4YktoVzk5UWxrWEZTVWN5NFR2WHN1bm1lNGd2WElyWGtjQVl6YTRETEVwWnVKVmxsQjE1Q09PK2Vqa1ZKeDJKNm9QeGlhdHV1cWpIemM2eVdCa25UaitGK3FybGZMWEVZOHFXWUEzdGhoS1BtNnVXTSthSm56Qm4rYXZFVS9IQnNRWnJlL2VLVTlqMFV1OVNJZHIrV0I4WDdUZVArdGcrbFNVN2RtUTNadmNLbnRybE1iWHJRcmgzOVZsNi9yN2RuNXAycjd2NkwzM3JQV2RxYjlXVS9mMTh3QWFWQVh6ODVESG9ybG1RSHc5V0Nxd2tyajg0cXAyZkc5N00rYVZ0bExjbHVQK0ZESGMvbW1YVnhwMTl3bzdqTUhMa1NKcWJtNWs3ZHk3SEhuc3NjK2ZPWmRTbzBZd2ZQd0dUYitINHd5eis3Wk5SVHBzYXhsL3FVdjlZaU5SaUIrUDEvZVpZK3U5WEZIMzdXQ2xGZFhVMTk5NTdMK2VlZXk3cjFxM2pzc3N1NDFlLytoVm5uMzAyeHh4ekRGb2JacDAwbmltank3am4rWFc4dWJLRnJzNmd2bDVlR2VIWXFjTzQvS09UT0hSaU5iNnZzUzNGbS9NWDh2cnJyL08xcjMyTlgvLzYxNXg1NXBrODl0aGpISDMwMGQzZVJPSDVYRnc5bjRzWFQySVcyM3lqV2NjVjFmRk96L2NpTG1OaEhrWmlRVHRQTFhxSFNDaW9aMlp5SGxvYkRyYXRub1RHMk0yNzF4ZjZ5M3ErNGpDbGZkYWtHakRKUnY3ZjhGT3BWR0h1UzVTaDJoUnIzcHBOVGRsNFhHV2pnYjRxMXU0OFJoWUM5V3Q3OHlQTGl5cDlsMTcyamFKSzMydGZ1TEhIWmNQMmpUTGNTSVJ3S0lTcVVrRjNoamJrMXJ4Ty9wMU1VSGUwTElsN1dDU3VXZlJHVVYxdmE2OTVWc3BmQWM5K3N0djVZSHY3NzE5bnc3L3U2RUhxVG1NZm9BTllFT3dpM3d1SFh2aTY1RnV4d3puVEdqaHJobUhjK0prc1MwL205eTg3ekZ2V1NNZVd4Zmg1SHgxeXdIV3h5Z3ViZ2htRHIvZGZiL2ZrZVNqbTlmSk51b0N6ZXRwdWhQY2RlQm9DM1B3K0ZnOEswRDVXZVRXaG80N0FaTExrbHl3amRmdGQ1RjU5SXlqMzFtMGtkdDNWdUlmT0lIVFVFVVRLcXRGZFhZWDF2TDByanFadVdMRHZiN0JoL2o3L3l1T0ZyNEVVZFBNcTBya3NiMnhhZzY5OVBqVCtJT3BLS3lnTmhYRUthd1k4M3llUnk3SXQwY21pclJ0NXMzNDlSbXVVWmZjK0hzRC9uSzU2ZXV5N3poQnRlcC9YREVUMFo4OFB4aUNxeXFPYzkrR3B4S0lobm5sMU5RM05DVXBqSVpMcFhJK0dRajFQWTREaE5hVmNjUG8wVXFrOHo3eStobzU0aHBLSVN5clRqZlhBdlJpTHpCbWJ0elBWdkoydEFYeGNLeWlYODlvQzdNSmFlUlBzZnQxWEF4Y0g4RHE5Z2JBZ1hUbklqN0NqVzdlRXFneE0zMmJJT2Z0U1psZ1lrOFdReFNyTVY5NWJaZ3Q1d1dkMU4xTW1vNUo5KzVOU3hkY3ZxV3pRTFM1WVlNZjhZSE5SQTFiVXg0NFlxaTlwb3VhcUpxem9lcnd0VCszWExpV1Q5eGxWRWVQMEQwL25hN01PWjhLR05kUi81VTdpODVmZ3hrcFFKYkhkOTFSUXdjYXkydmR4cXlzb08rczA3T3MreFROVmNYNzU4czBzcWw4TTRSSnNKNFp2K3VGdWZQMExSWlVmTG5ueks3MnJyNWxkMnV6MUNyT2xqNmNNL095dGJyOWRFamo1UjBmczN3VDk5aU5xWDlQdzBtODl6S1ZTbEhaTHNlMVhVR3p4NlhmVVRFb2lsRjE1UHVIRHA2TENPMlBEbEY3d0VVdzJSMjc1ZW9ZMU5ITlIxL3BReU9pekhpeWZGRm9LdnlSVStncjVwT2JFMzhDY3ozZi9JNWYrcUtqS1RlZndiUkp2cEJ0bFcwOGR0RzFMOTQ3M1o3My9yR0ppakNHelpDVnRmM2lZMUlLbFFYOVRhenZWVjE5SWVQSzRJUnN5UGYzT2lsN2x3M0xnMUZLSUhtVFQycG5FOXpVamg4VTRxaVNKMnJDV1ZEK1dxbHBybEZMWXRvMjN5OTVhbG1XaHRlYVNTeTZodHJhV1cyNjVCZHUyTWNhZzM2ZlBPZWhETWpnbzF2czVMdXJhd0E5S1JuQlp1SXFFOGNsYkJxZWtjSnZZaDI3cnNsTk8yUG5ueDFzZ1ByU3ZJMTlyN0hDRXQ1Yk41enUvK1NrLy9MZHZNSFBDd1pSRVN4aGJPNUxyTHdnNnZUdVRYU2hsRVhKY2xxeGZ3VS92dnBtWDU3MEMwUkswR2JwUjZyMnVEdFJVUldpc0lWY05ZUStzclJDZUZuUmhwOThBZjRQQ2RMUlJuV2pFc1QwcVRJYXNoamEzRExDd291T1prenFQNFYzUFlzVTYyWmc1bUdINUpxYmJHMmxOTzZ4emptVmJTNG9aZWdPcHJNMXIrVFBRcVZZT0xWdU1jVnhlajMrVWFDNU5iV1lUdFVwajNEQnRoTWc0VVZyMjAvM3QvV0pDOXpvbkZJNCtpQXRqMkI2TUp4cUZnMGZBK1I5eStPd1pJVVlQQzJaVStUN1lGb1g1aXYzL3AvOWc3dHRGRlgreFcrV3lBY3VGVjlmRGxqaWNNVW54THlOVGpLeElrUjBOamc5MlhsSDlnQ0cydHBETWcrQ1NOeWlXdDAvbisyLzltR2ZyeitUVWtiT1pYTDZXbUpNaTVjVlkyeldaMlEybjhscmp5WFJtSzJRZkZTSGV4ZjdBY1NpRjBacnlDUlB3T2pjVHNqWmplWnJLYWRNSjE5WFJObUUwM3B3SHlNUTA3cGdUaUE2dkRXS0E5R1Bjc1FxVExxcjBYZEVjRytSSG1PelZiMXRLTWJKOEdPT3FodSs0bHhpak1aakNVbE1UZkJWR3BNZFdEV2RrZVEzYWFCNWMrQUl0WGEyOWlxR3VablFVTW5BQzJMemo4WlpCbXRyLy90OTNGTmRkNkptdGN0Y1VBOTYrNkN1SEZGbXRyOWo2eVVNZk5IWllhQmlHUWhiZWk2OXdSU2JKbEZObmNXZE5GUmtmcnFsTGNzYThSOGk4K0FxUlVBaWw4NFhmNmIvajdTaTIrSFU5YUpncko0eFRPb0xReklzWlBtSU1uNXVvV2ZMMldGS3R5eWpSSmFTbkRHZlcwVWZ6dXhWbjB0RGFobE16TFZneW9UMEd3K1Zpek83VG83WnYvekhvcmxVTm05cnlRWXkyZHgxdktxdEpabldmeDh1ZStjdHY5cjdmWmc5YnFXd3ZKbnA5dUwvKy9tNC94dS8vajZJcWYyLys0eUxGSHlHTDZEZEtZWXpHRGxVU0cza2RCcGhVZUdwVFk1cUhuMXZIVDI1L2xMYW1UdXl5S0ZwcnpINHFBRG82T29vcWFTdW05R3d1ajhaUWkrS1R3Rms0dEJoREY1QXphU0p2MzhlbXhROWltUnlWdFE3V3FBakc3K0Y5OUozOVU1L1UzWHhzcU5WL1JmOTZjY3V3UVg2RXpidjlWTjZOR09pRHlwMFUvZnlTd1R3bjQ2OXI0dXF2YTRwNGtEc0MxYldHank3TjA2cnpaRXR0anV3MDFNWHliRHZNTHF5QktMb0tFdVJ6WkI1K0FuL2pKaUt6enNVNTlraWNhVk1COEZ0YXlOei9NSmxIbmlTLzRPMUNRT0crdVV4T0cwcWpaRnFqUWxHeWMrYlM5dGt2VTNMcHhZUlBQaEc3YmhqUmN6K0dTYVhKdjdPTTlPTlBrbm5tSmZCMUVMK3FXT0lqYm8rSFVGdEQ2ODl1Sjd0aEM5ZmRkUk1UcGt6bXZETS9odS83T0k2RDUzbDRub2ZydWp6NTlOTWNmc2hNWGxvMG4rbnpuMkxWNlovRzM3Z1Z1N29DazM5dm5lN2VMNTR2OVoxK2RFSWt6Ym14QktjU3AzNUZodHNlei9MUWN4bGFPL2FlQjB1aWlrTVBzcm5pdkFobm4xRkJZK3hnYnR6MmNSN29QSjJXZkRVb255RVFvYkpYUW00dnkyRU1ybXNSalRuQjNyeEtvVlF3THRvZmZhc3Jicno5Z0Rndld6czlacTlPTXJrMlJFWFV4aGhZM2hETWFYY3N4Ylk0ZEtaOTFqYm5hRXY2ZlJhL3VkalMxN1d0b2pyZVRlZk1PWUR1RjhHZldsSlNBU1d6S050ZUphMzdNT215YmRRZGNSZ0FWZTlwRGZSOUVnVXo1UXhsbHIvajdjc3NINnVmZG9ZUDdlc0tidFBMUDY0ZjJtVkZuZk9Vb3FLc2dvOGZleVpyUTNIK3VmWWxFdFpVSmcwN21BcmZKN2w1TkNxemh2SlNDN3RRZVByRzRIbGdSVVpUVVQyV2RtY1NEMjA1RE5PYTR2S1poeEIyM2Yzd2Q0QnV0Mmkvdlp6c3FzTG5GNG84azFNa1hvaVMzK3hnbGVvZ2JHd2ZaZWJQWHhUbWh1dGoxQTZ6K01sdjB2ejNyU25TQUVjTnh6bC9Fdjc0Q3J5Y0QvRmNjSkQyRUMvV2pBbGk3Nzc3WXRNOUd4VHEwVDVMUlhjTlFsT2loQmZXVE9USVVZMGNYTmRDMVBGMmVkNFV3aDRyUE4raU1WSEtQemVQcGpYVit6bGh4VFl1OFVFU2lRVEpaSklQZmVoRE5EVUZFVU44M3llWHp4TUxoM0dQT29HRTBUaVZOUkR2d2lvcHdUS2FjQ2FIVlRNTXI2V0ptcGxIa28yRTJaYlA0L3MrbG1VeGZQaHdoZzhmemh0dnZFRXltYVN5c3JMYngyUmJNS3JHNHF5alhhNzllSmdKRXlPOEhxL2d6azBqZUtHamdweTJ0aS82M1hIOXVMYk54T29SZlBLUUQzSGxrUitseksvaXNXYzNjZWY5UzVuM2RoUGFNeklIdWVEU3l5OE5VbUllNUFuaXBReW1scXB6b0p3SUJTZ1ZKTDNSRUlubUdEVzJNSkZTZy9ZTEJabmFKY0M4Wk9JUGxNdm5zU3lMNnBtSFk5WFdZWEo1OFBLWWJBYTd2QUozeENoUUNydXlDcE5KUXlnRWpvczFySTZxRVJGczFVSFd6OVByYU1mN2N2L1hHaXNhcGVWUGY2UGttQ09vK3RRbk1OcWdyRjBxQUlWZ3F4aEQ1MU12MHZLbnYyRkZvMEZuaVBoQXNlMlZjTFkzeml5bWgwSjBhTTJXd21MSVEwSWhwb2RDbEJVbTBQdEFwUEI3RXMrMis3ekN2cGVQdkx6enNYKytVOWdMRTNqOEZWaTBFcjUyT1Z4MUx2emtENURPRGt5L2YydkM0Njl2Yk9PZmE3bzRja0lwSTZ0Q2FBTnRpVHdSMTJKc1RaaVJWV0VzQmROR3hYRGVwK0dSeXZrOHM2aU5lV3U2Z28zUXhPQmlXWklHL2FnaFBVNFNRUnpZUll5Q3NHLzQ5cFhWUVBEOW9BdkRWcmcxZFRtS0xtZlB6d214UDlubFpaUi81QlRLUDNJSzZTWExhZnpWLzlIeHhMUEJhc1lCY2x6VjRYeG4rdldjVkhOTVVJYzF3ZVFOdjZXTnpkLy9CUzEzM1E5RzQ5WU93L2creG52dlpBM3pyZ1ZCNW4wV0NCblBRemtPYnUwd2t2TVdzdkwwaXhoMjFhY1ovZU52NHRUVzRCbWZZYUVxYmo3OHUxdzA1aXgrdXVJMi9zRkN5U2hpNkNpeVBpeHJDTzc3WklDOFVkaU9oemFLbTllTTQrRnROZno2b1BXY083Nk5HNy82TXJvTHVoSmhBTXBMczFqbFFCNmVXRlhOVjFaUFlIMVhLY3Ixc0pSSDNrakhwTVlsNTB6Q2ozMFNrNTJCMmJpSjB1aFdTcGE4VFBpWjM1R3ZHVTFzOFl2a2pqK1hYSHdiN3RMWFVYNGViS2V3T1RTd2ZWR25HOGF0WDRYMTI2OWpLbXF3TzF1Q0RtRzdCN05xbmU3OWp2ckE5MWJCeUl4dFMvbDFBRENBWjl2Yy9zaENQalJ0Q3BYakZhRjZpNWFtbGJTR09xZ3VQNXhtejJWWWpjRUx4Y21YeDRoV0pIR2RGU3hZTVpjU0lseDgydlg4NDQzTi9MOEhYOFp6SEVuVVFhbzYxTUduSmp6S2x3NzZMZU8ycktYbEZ5RzZaa2N4R2Q2N2UyS2hXaDZkb2FtOUxFdisrSEx1YXJxTVcyZGZ5NXF1U1lWQnJmNDkzaDlPYk94RnhsYXd2aEpVN0QwSDZpckRyR0dkekpyWXNmc0E4ejU2dUJ0OUJ3ZVhLTDQrMGVFVGRSYU82bDV6M08vMFNEN1RRZUxSZG5UY2w3RkFJVVNmK2ErbUZ3ZjE4VjFXNU9tN3NiNURNbGwvMWxuTjN1dTBXRDZ0OFJnLytzdkhJSllCNWU4TWNLQjhOcldXQjg5RnMyRDUvZG9OZWVXUFBqYklVM1QxQVpWL1FxRXdKeDczVWRLWkZLLy84emxTcVFSdDdjM1lsczJ4UjUwS3dGc0xYOFhYUHFsVWdtUXF6a25IbjBFMEVpTVVDdmRqVzB3Uk5oNFRNKzE4dkcwTlo3YXRvU2FmUml1RmxrcmdBZFl1TnloVThLOVIxS2NibU5QeUZyOWRjeTl6V3Q3Q3Rtd3FReFZvby90bmN5RlJ2SXFrcURBS0xBL1dWTUl0VlZDVzhwa1dyZUhCTC95WU1STW1ZVlZYN0g3RDc2UCsrVFUzMUh6Zzg5b0VtNmNxSzVpSGFiWW5xQW5tNlJwMlBxLzZaWUM5WWJlZjdsai9RSyt5Z1RFR1d4blNHMEtNOER2SVkzTmU0d1lpZGg3ZktGUXY1eitlWE95WHl5QWY5ekV5OTNCQUZWdjVNTFFyUWdybGVCaHRNV1ZNUFYvK3lFdjg4WTBUbUx0bUNocUl1Y0hDbHBUbllBRkhURnpQbFIrYXk2MHYvUXZ2YkI0Yi9LNVJ2ZXJuRldMbzk2a1lQbkNKaVRIb1FxQjVsTFJGZHl1TkUzV1NDUDFkUnpPUUN5aytQcmVWM0d5TGYvcFYySUJWS05kTllZT2Rxck56QUxUL0k0VE83OHlxdlgxZW8vQU5sTm8rSHd1MWtnelozYitsR0FQeE9MendBcnp6RG16ZURBc1dRRFFLcDUwR0kwYjAvSm95QnBxYVlQYnM0RDAzYjRiWFg0ZXVMdmpvUjZHc2JOQmNyN3BRZEJ4WGsxYmpTL0xta0lxc3VXOWpPY3U3d2lydHFmMXptQU5STFpEaWNyLzJoV1JXYmFEeFo3K2xOcDZrOUNQSDQ5Wlc3N2JSN0k2c2tNdmp0WGFRbkxPUTVsdnZJN1ZvZWI4Y2txVmszZExnYVBjSDZ4aTNOQmsyYnpWczJLdzU5QkJyUjdHNnAvTElGSDZ2dmtPejFHZ1NVMEE1WURxQmRPRXJReERkUExWdjVZc0ZLR1Z6NXVibnVHVDkwNlRkYUNHdm1MMFdJUU5aeEp4NStQQkJmVjRmbEt3OW9HcE1uaC9rbCtHaEJzMnR6Z0FPaG1xVEwvcjBUUnZESzlsTzdzbDFVbnJFRkc2Ky9tck9PZnRVNHJFSi9LTWp6Y3RyVi9GcTA0TXM3OWhJWnpaT0VPYkRDZ29xcXdqbThSWUsxY3c3Qzhnc25JZHluU0Q0dldWanhZSmcyaW9hdzI5cG91MldHOGpPZndQbGhvSmdHa0lJSVlwV1Y3TG5HNGFwZC9VdmZPT3lpUUFrTS81dUcwTWR5TDMvampYWTEyUjRjaEdJM3JYbGVmOGxLV3A3WTErOGZ4bjhmL2ZRZnNQLzRqZTNvVndIdEticzhrOVMvWk92WVk4c2pHLzRmcmZYR0w1L0o0Y1ZkSFQ0d1JySGlpOWRSZW1GWjlQMnZadEkzUHNvS0VYOGp3K1Irc2RMVkgzM0s1UmZkN21jbkdLNC9teUxZV2VmUW1qRU1KcnUrd2NkcnkwazI5U016Z1FCNTYxSWhQRHdXaXBQUHBMaGw1eE4rVkhUKys2YTdFRk1aYVVVdG05eitJVERhV2pkeEtwUW5IdG0yRXhjTVIrQVA4L3dXUldLWTdkdTR2QUpoek4zMVZ4ODJ4ODhjM0ZNTngvckEyRnZIemN3SCtBdWwrTGZTTklDZkxBNklUOGUzZlZKVFBxWXdtTmRCRHNzV1lPbURudDl5UlpXTE0veVB3OW5lZnlWTE1uVTdrZVd5V1I0OHNrbmVmTEpKem43N0xPNTVwcHIrT1kzdjBsYjZ6WW1qcmE1ZWxhWUs4K09NTTV5YVgvQ3BlM3BFTGttQzJYeDNuV29Bc3V5Y0YyWEs2NjRndGRmZjUzbHk1ZHowVVVYc1d6Wk1vNDg4a2grOUtNZmNlZWRkMUpYVjRldkZZZE9xT2FYMTFiVDJwbWhzVDBOd0lpcUtEVVZrZUEycmczR2FKcWF0dkhqSC8rWVNDVEM4ODgvenlXWFhNS3laY3M0NFlRVHVPS0tLM0JkZDlEUGpSU0R6My9GVi9iUlBXN254aHA5V1lkLzkvckN4RmUrMXFNYnNFS1IweDVqdGNmUjRRcnk1a0Z5eHVkeU80UlJGdlhKWmhKdWxKQ3lDMXVFeUxVaytsNXlhWkd0Myt2TmRWd1l6OHBuTXVUVGFYWXJJSlFDWmUyOHpPUnlFMElJSWQ3ajZNTW04VVJESlMrL21pUFZzQXJQeStLSEhLeXdnNHE0S0VCcmd5L1RMQTRJL3I1MjdTc0xrODhRT213cVZKU1JmZko1a3JmOURuOURQYXE4QklEYzdEZndOMjZtNVBwcmNVOCtEZzZiaXZmS0d5ZzNJdk4zOXRyQ05DZ3JhRHZPMjdTR2xtU2NJMGFONTdDUjQ2a3RDYmJDYkU4bldkeXdpVVZiTjdLdXRRbGoyVHQrUit6SXFLUXlIcTh2Mk15eE0wZnhvU1BIOGFFanh6SDM3YzA4L3VKS01sbXZweWVJemtTRzErWnZZc2FVV2o1OC9FUk9PMlk4TDg1YnovT3ZyeVh2ZlhEK3JrN2srekN2YlA5TE5YMDFudDRtR1dkQWZXSHprWVA4Q0YvcTFxc09hekI4KzJVUDNjOTkrWmFHa2ZGOUtBV2tTQlI3S0RpVnUzME5vZHF4UTJKNFNwcTY2eHNvUDdzZFBJUE9XS2lRR3VBOHRIdGNueU9tanVES1dVZnp1VU5yeVAzMVVkYmVlaDhrVW9US0t6QmE3OXdqYm5zOEQ5OEhwWWhPblVqTnRSZlQ4S25qK2VPbWwvajE0L2VUelNkeG91WDR4dUJMUFF5QVZmSDFrZ2lpYUJUZGZnWEZGcC9lZ0ZWV1F2aklhVGpEYTFEdmltMnV3aUhjeVdNSlRSMVB1cUdacWxTYUMrSWIzSkR4VC84cms4T0xJWVFkZVE0dnFUbnhOekRuODVKcGhlaVRhOU9nSEp1S0M4NGdzMndkeVRsdllZRFlDVWRRTWVzTWxHTy8veUxlSXJmeDgxL3IxZS83R214TE1Ubm1NcGxnUHp0allHTXlqOFpncWY1ZHgybU13WHZYM2xyYjV4a2xFZ2tpa2NpTzErbHU3SHZzWWJCUitCaCttR3hrUVQ3RjkwdEdVS3BzNHRySGtZSGdidVFKalJXTzh2d2JMN0M1dVpIcloxM0Z5WWNkVDFWWkpaRlFDQXhrOGprNjRoMjh2bVFldHp6NE8xYXRYWVlWSzBNUDhmYURNdUMwS3lKbktMTGxGbUZIUTQwaVBNckg3NEJjclVLM0s2eDhXSTBzQ2FuaFpRN0prdkdFY2xrcTJoc0pHWi9JOEpHa3ZOTjVyR1VVODNTZWRSWEhFV3ZmeXFueEYxQWFubll2d2RlYWd4cVdVSzdTdkZaNk90bHduaFg1NVpURk03d1JQZzZuSnNIWTFEYnk1YlcwV0tYVVpWdUo1Wk84TmhUVGZIc0VYR1ZoVUl3SlpUajFLUGpTMllwalIyUlFCcnptWUxwb0VDRkI5SlkyWUlWZ2JRdXNiVGJVVk1BMFgvR3BWNkN1d2VDMkZGTFpZa2MveVNESkxIUm1LM2h5NHprOHZmbmpsTGx4d25hV3JCOG1uaS9EMS9hTzF3a2gzbHNmMjV1U0NST1kvT0V2c3VIbFgrSWNOWjF3WFIwcTd4RTliQVlkRzZvcDE1T1lmTzQxS052cDl6VXl4UllMLzk4ZlAzaVFIK0dDM25TUjBKbU84L2ZGTDJNcHU5RGNVaC80R3pVbGxZeXZHa0ZwT01LbTlpYWs5MWtJSVFxS3JKL2M2MjQ4dzVJWThkZm5jZExHalJ4MjV0bjQ0VENWZjMySytPcU5VRnF5dlRMUy8zMTJRNzBkb0JUS2FEemw4cTlUcXpudDRDcisvdXdMZEhhMHMxVlBJS0pMcU11MU1uL1JRbjU0OWxtOHVtSXpEMjFycHF5bXRodVJCc1c3V2VwOVQwTy9wR2FIbjVKRUYwT2dtQXA2N296UkdLTXdTckZpWFN1My9Xa2VkOXkvQUkzQ0xZM2d5UVQwZlhMc0x6Tzlhczhad0ZaQldBMjdVSTVwWlpQMVBiQWRqTkZnVWozdmREMWJ6cEVZT3E1NjVhaEJmb1RQdk9zYWx6cWVHRUwxQ0FNNXk1Q29kbkNIdVVSR1R5WGZaTkhadGhxZmREQm50eWdIQ0lPSkdmbTNGdUF0V29vMW9oWTFyRHE0aGx2YTBJM05HQys3L1M0dEdlSDlhSTJLbHVCdjJFVG5EVC9IcnEzRnJxdEZPUzUrUnlkK2ZUM0d6MkpGeTRLK2wyTGJiODhZak8vakRxOGwrZGZIV2JlbGdiT2Z2WmRGYTFiejRXT09wYldqQThkeDhEeVBmRDZQNjdvc1hyYVU2U05HOC9MOE41bSs1RG5Xblg0SnVUbnpjV3FySmI4TXNPK1ZOMVBlbGVXbHVWbCs4MkNhdVcvbjk3cm0xbEpRVjJQeDBlTmRQbnRSak1rejYzZ2xmUnkvcWIrQU9hbkQ4STBEU3ZZRkJ2Qk4zMXhqYUgrWFZsTC8yZnp3RXdkSSt4L2FVajV0RzlJb0JZNmx5QmRPMXV6VlNYeHQwSVd3U1gzWkpWeHM2ZnZDVzAxeUVRLzZlN0FHRE1iWEtNY2xPLzlOdU8xT3pNZXZSMmtmVXhnajJmdjRlTytNRGFVNXY3S0p0MVBsQUp4ZjJjVFlVTHBmUHN1VE91ZWc0SVRDVER6OFFqcktKL1BpeXRjNUx0SEppTkdIazA1OGhxNDFmOEExRFVRSzI1MWxjZ3J0aktSczhxZEpSYWR3eXl2citPTVNpL01uZllUUjB6K000NGIzeTZXVFhoUUNUNzAzL21jaGkyVlh1dUNZUHAxM2VNZjNTN25sejJtK2QyT0t1QUVPcmNXNVlCTCtwRXE4dklGNEx2aDg2d0RLNS8xY1BnMUY2YnpMMDZ1bThFNVRIWjg1L0IyT0h0MkFaV2t3aW5UZUpaNE5VeEhKc0w2dGt0YzJqS08rc3lMWVExenNtQ3VvbE1LMmJkTHBOS05HamNMM2ZacWFtZ0RGdURHamlaUWNUT3FvNDdHc29ESVk3K3JDc213cUs4c3h2c0VvaUZxS1JHY0hHOWF1cGFtcGlaRWpSekpxMUNnU2lRUzJiZS80TEdOTXQrTGFuakRONGVKVFEzenExQWpKYUpUZk5nN2pEMDExckUxSGcwNm5YUmVERzZnSXh6aHF6QlN1UGVaTXpweDBORnZxczl6NThDTHVlMndWVGMycG9CeXg1YndYelgzMVFLN0xHbDhWTGt3amUyZjBvRUNMeCtNc1hmb09yV1V1bWE1bXpKUnBvSDJ5YTFjRmc2aTVMTXAxMGVra3h2TUlUNTRLdmtkbTZSTGFLandXajB5UVNTZUREVE1HN3VCUmxvWE81V2o0MmY4U1BXd0cwVU1PM24xU2xqRW9TNUZldm9hR24vMHZKcGZIQ29WMkJwOFE3NSs4Ny9yWkFxWTRMaVlNTDJXQ1J0b0o0UWhUSEhlM2VyQXNidXBaNTVJeE95OGZZNEw3cjY4TG00UGFzTGtSdnZHLzhPa3pndWNHcXQ5ZkVRVGhYOVdRWWsxak9waWphY0RUd1hObFVadnFVcGRKd3lOODQ3eXhWTVRlZXl2eXRlR2R6VWtXYklqaitaSkR4SUhubDBkZU1haVA3emR5aXNRQTNVOWkwY0pFZnkzM0FpSDJ1Vzd1K1dUWGJ5TCt3bXc2bm5xQjlOdkxCdnhhZXZMa3V3cDFPdy9iY25DVXpiYmI3NmJoWjdlUTM5S0FYVjBWMUd1OVB0b3cxUmlNNTJHWGxXQU1OUC9tVDNRODhSd2p2LzBWNnI1NEZRQ2U5aml4NW1pZVBPa1BLTzZTakNLRTZITitZVURFRGVYWmtJeHkzc0pEdUhSYkV6ZFAyVUJkYVk3S3N1eU9UcE50MjBMODUrcngvSG5MQ0ZBR041UW5iOVNPOXpnd2IyQkJwNGRSUGxsdk9Mbnc1YmlORlVTZi95MjVOVzloSzV0dzAzcXdMSnkyclpUWUVKMTZLTm5LL3lRWEthWDh4VCtqOXRRQllneTRJV3lkaCtiTjRMakJvbElqOVV3eEFObmFHQ3dMc3BrODE5NzBDRGQ4N2tRK2VmSTFyTi8yRnF1V3ZNNFJoODlnUS9aRnFzeVIxTGMxVUdPWHNyNmhnV1JYSnhjZGN6RnR5dWVCVjFidzlkdGVJcHZKb3h3TExYbDNVSHJvWDY3Z0NHOGhxYjlwTmo0U0piOU52WGRUV0JPTVQ3bkREVFVYNUNqNWhPSjFjeW8zdjNVOUx6ZWRqSyt0QVp1L2NHaHBwaGNaVzlFWnlWR3YzanVueFZJd0pwS2pvalRUYjFIckxRVlRZb3F2VFhLWU5jTEN0Ym8zenFEalBzbm5PK2w2dUJXLzA1TzVJa0tJdmkxWDA0MlNDUDNKa2tKN1VGQUd1elNGcnkxVUpNZk5UNXdLUnFFaU9ZeFJPNTdyYjR1WGo1QnpNY2dNcXhtQk1ZWVBuM0l1Mld5R3hVdm5rVWgyc1hiRENnQWF0OVZUV2xMTzRUT1BKeHlPVURkc0ZFcXBmZ20rdUgzcjhrb3Z6ZEdKQm1hMUxPZUlSQU91MFdpWkhIYmd0Y2t4T3liUmR1YmlySTZ2NDg2MTkvRm8vZE1rdkNSbGJpa0F2cEVGaUtLNGFRV1dGeFNBOFpCaFk3V0ROWDBTS2xxQjFrRW9XdFhIY3pRVEs4SkZsVVpISit0N1Z3MHEzR01zSUtkc0ZERE5hMFh2OHR3QlhkNUtmNlVvNHZKaHFMZmhsRElvMzZZaW1tYm11QzNVTGttZ1BJZFFKTU81Unl3Q1pYaDA0Wkg0bVFqRFNoUE1ITGVGOGtnR3BTMXdQSm5mTGZyVWpaK1lQUFFhWmRMTTdERkxkajRlc0N5YWNCMVV5QkJWK3QyTlpyQmcrT1VaVU5EMXFvdnQ3NUt2ZS90ODRTNlNONHFjY2JEMnRjN1kzZzUzM2dtclZrRlhGeno2S1B6em56QnhJdFRWOVR5UXVOYXdlVFBjZkRNME5BVHZmZmZkTUhVcUhIVVVsSlVOdXZQb0cwVmR4RmVmbTl5dVpsWms5Vy9YVnZMS3RwaHF6ZGs3K3NJR2hBdkszdm05R0xyU1M5ZlE4TVBiS0g5ekNlVWZPNW5JUWVPeHlrcFF0bzNSR3AxSWtWdGZUL3o1TitoNDdDWHk5WTNJd3R5aDN1NFBUbkU2QTI4dDFoeHpxR0xzU0VWMWxYclAxSFN6eTAyb0xXRjRicDZtYVExMHRSaDhRRldEMlQ2WHhnSzJBVXQ1OXg3ekg5RE1NV2pMWVhySEd2NXoyVDI0eGlObk9WaURjUFBIMno5NzVLQStydy8rcCtUdGdYVHErdGVsb094SDMwcHNaZXVJYW1aZC9WVSsvcGx6MlJwT2N0M3FwY3pkOWpRYkVnMWt2UXc3b3ZncFJSQ3d0Z2piVVNXbGhXajRRUXdFRER1RFFocEFXYVJmZlI1bE96SkhXZ2doaG9BLy9MMitUOTdIR0VQSURjYUtjM25kclNCa0IwWTdSKzZUUW9nOTIzTGlMTEp6RjZKS1lpakhKbnpNb1ZULzVPdEVUajArS0Q4OGIyZWR1Ni9ZZHJEV3lQZXdSOVpSKzd0ZlVuYkZSYlI5OTBheWI3Nk5qaWRwK2RMM2lOL3pzSnlnWXFFVTVVZlBvUFNReWFSV2JDQzVkQzNaYlMxZ0lEeDhHQ1dIVENZMmJRSldKTnpISDl1RCs3d0M0eGphaysyczNMWVNYMmxlUGNqd2cvYVhBSmh6a0lmR3NLeHBCUWZYSFl4eENvRlVlekE2WVlwOEJrSzNONkFWUGN6QWFkQWw2TTZMTVlrelFKZUFsUXd5NlNEc3k3bm5vUlIvZVNyRDRsVWVlMTdTSGp4b1dSWkxsaXpodnZ2dUk5NnhsU09uK1h6Mmt6SE9PaWFHdmM1bDZ5TWg0dk5kVEJZa2krMjlEdSs2THQvNzN2YzQvL3p6V2JKa0NmLzR4ejg0NTV4emVQSEZGM243N2JjNTQ0d3pVQmgwWVdKblRVV0Vtb3JJanZmUXhvQUJWU2lSRmk5ZVRFdExDeC81eUVmNCs5Ly9qdU00S0tXNDhjWWJDWVZDM1E3a0xNU3VEczEzRnRmOWJlR2lubGRqVVpRb1JZZjJDeUZDRkdtak1TaXFMUmZQK09SbEJxTG9SeDlPdjExVWhYU2YzRk5VLzlXTDVHb1ZRZ2d4bEgzcmE5ZnU4VVlzcTRvUFREMWJ4cUJ3eG84amZmOGpwTys4SnhncktDOEZQOGhGcXF3VWYwc2o4ZS8vbk9qbkxzY1pQNDQ4YzR0NDAvQ0J0YVB2MkhaWTI5ekEydVlHbmx5eG1QSkkwSy9UbGNtUXlhYUN0SFpEUWN4aFNkaWQ2V2ZBVW9xU3FNdWFUVzJFWEp2SjQ2bzVkT3B3SE1maStkZlhrc2w2UFhwZjIxSkVJeTdMVm04RFk1ZzB0cHJEcG8wZ2xjM3p5cndONUwwUG5ydDcrVXYxZ3pydGJwSHNNNkRlVEZZTmliK2pLbTJvU1EzTVoya0ZzdGVqNk9WTmR1ZS9GcFFjSDJmNFZ6Y1RPektGVGhiMjZiUDBmcSt2M1AyRFR6Q2xaU3VOWC9rSkhhL093NDFFVVdVbEdIK1hHbnRoWXk2ak5WWTBSTW1weDFQMnRhdDRhNXpEVDE3OWY4elpNQThkaW1LSFN2Q003Q2tuaEJEdmUydkk1ZkEyYk1YdlN1Sm9qYkozbWFpZ0RYNVRLMTVUS3pxZkI2V28wRG5PVFd4MlFrYWZjbCtGQ1MySzFvYU5IZmtIK1lUSGlYZkFuQzlJb2dyUlcwcGhQQisweGk2TlVYN1d2NEFDdTZ3RXRNYjRDdVhZUS9KUFQ3NzFkcDlVZWJ2ZXRjalpzdFIrQ1FOajJ6WitvUTc3MkdPUEZZN0ZRdS9EbnNjK0JnVllLQjdMZGJIRXozQlR5U2lPY0tLMEdROExKU0Z1OXRhV05obzdWc0x5dGN2NDBzM2ZZdnFrYVJ3MVpTYWpoZzBIQTF0YUdsaTRaaW5MMTYwRW8zRkt5dkFQZ0gycGxZRk1pNDIxMGxBKzFpT3oxcUtyeWFWNnVzYmZZUEFqTmxhcEp0Zmhzanc4aWs1M0dDb1BWZEV5WXJGcUttellZaHdTbnNZTDE3RWNTSGlhVUhRR2lmQjBocmsrYXhJV1NkK3d1ZVNqVENoMU1KNG1qczlyem5Gb2JZam44cmgySlluYUdueHRhTXQ0MUR2RGlZV0gzc1JKaFVGaFlaU2lRbWVZMmpxZno3dXY4YThkbXRBakZ1bDBZWDZwWE5EOVVBYUFGUXErYjAzQnFrNURiQ1U0dVVKOEMwRHBRWmxwZ3Z1QXNlbklWdTcrZUgvbms3bWZscHdvaXJncXJmWitjVGtXbzg4L0grTm5TTGJIMGMxTndjTlpUWFhOT1l3OTZ4TkV4NDh1aEtHUXlmeTdlcnV4Yktqbm9CMzF4Kzcwa1cvcmFtVmJaMHZRQ2xHV3hOa1NRb2dpYnE5MXQzR2hTa3ZwYkd6RHZlc3VYS1hveE1ZdUt3M2ltTzRnODVkNjNZN1RQcEdTTXVaNUxrdVdaZGhjY3pKZXBCTWZnMEd4MlJpY3NpbzJMK2tpYmFxSlZrVFF2c3o4TEFaL21mTTNTUVF4SkJpajBOb2ltL2Q0ZStVMnZuZnp5N3c4ZXgwbTVtSmJDcytYZThHK1doWHJtL2lzd1JSdHM2T1BRUFhaclhtK25DUXhaRFNtSWtWMXZObVdOamxwWWdoVUhnaGlyYWVncmRYRi9jZ3dhaXVIWVp5RE1NZFUwN3hwREoydnZZU3FCbHhWeFBHQ2JZeVh4Ni9mQXZXYkM0OVpETmI0UUlPU3IxSFJLQXJRSFYzb2x0WWdBeWtIRlE2anJHalFCMUhFc1RLTjUrSFUxWkNmdTRoVmgzK01RNSs1bHhWYk5uUEdoMDVpMGVMRk8rYlU1UE41SE1kaFcxc3JoMDZjeEdQUFBzdlp6OS9IbG11K1R1SnZUMGhlR1dEcE5VbnVmamJMbjUvSTB0Qzg5ejZZU0ZneFphek5wZWVFdWZpY01sSlZFN2kxN1dQOHVmMXN0dVRxQ2dQME1yZC9oMHh4SGU0bjFyMTF3QXlJcVIzL2c3dzJPNFlDOHpxWXo5Y2ZRNFBGbHI2enZ2R3FYTU9EUGlNSHMwKzNUMHF6cThkUys2bHZGL0szTldCeDlGeGxPS3RpR3crMGpRRGdySXB0dVAyMFA2R00yZzhlb1ZDWW95WWZoYkpzYk12R3NoMUdIdlJSakpjazEvZ292bTRPWGhnZFR0bkk4NmtlZHhwM3ZibUZQeTN0SksxdHJIQUpqaHZhZjMrQVZrR1Q1djFZaGRmMG9kb1B0ZEtTQkdZTXc3bGdJdjZVNnFDL09aRVBNcmRNTUJYZHpiNUdzYkdqZ25tYlJ6Rnp4RGFVdG1oSnhsaldWTWZxMW1xT0gxUFBuRTFqbWIxKy9NRHVjVG5vYjVzS1l3d1ZGUldVbFpXeGR1MWFhbXRyeVdhenJGNjlta21USmhFS2hVaDB0aGVDYnRqb3ZFYyszb1V4RUU4bkNVY2k1TE5aVWtwUldsYkdwRW1UV0xwMEtmbDhubkE0VEhOek0yVmxaVlJXVnU3NHpPNzQ5UmRqVEJnYlpsRzZqUDliUDV4L3RGZVQ5T3pkQStVWWcyM1pqQ3l2NXJ6cHgvSzVZejdHcU1oSVpzOXA0UFkvdjhQc043ZVN6L2xTbGhRaDU4QytNR1hndGJlVlkrVjVsSXdhZzkvZVJIYnhRc0tqUitQVTFxRkNFWEpiTmdVVnQ5SGo4T05kNkhnWDJkVXJDQ1ZTeEtiTndQTGZDUXJIQVQ1dW96VldPRVIyN1FhMjNuQXo0LzczcHpqRHFsR0YxUi9HYUx6bU5yYmVjRFBadFJ1d1NxSVlYenFiZWlxaUZBZTVMbWRGWXdBYzVMcEU5c041SDJxMjkrUHZPcTl3MTdra25nK1dCWmtzM0wyZityenRRcVZnK3pGdXJ5UEUwejZKak0vRTJqMXZsT0pydzdiT1BBL09iV0Z0WTBaT3RqZ2czYlgyUHdiNUVmNUFUcElZbVB1ZHYzMmlucVNGRU4ybURhbDNsdE4yLzZOMFB2VWl1WTJiTVo0ZkJIcmFEeGVUcnoxc3l5RzlaRG1iL3IvdjB2WFNxOWhsNVRqRGFqQ2UxeS90Z3UzdE4yZFlEWDVubkkzWGY1UDJCeDVuN0MwL0lYYllqQjNISklRUS9TbHZGSmJ0bzRCN040L2dxZFpLL3QvVTlWdytKaGpBdkdkekxmKythaUp0cVFoMktOaGFLeThSZ0FzZGpnYlQ1YUJYUjRuV1A0ZTliQzcyMXZXNDRYRFFJUklLQVFydGhOSEhub1ViRHBIYnRKelFtMCtEN1VBK3QrZVJLV1BBc2lIa0JOL0xodUtpajdKczk2cG9CdHR4Nkl5bitjOWZ6MmJkeGdTWG5ET055MDgvaUlnQmI3M0hHS2VXTjdmTlpjeklZemp2c0Ztc1RXd2xucS9pcjArdTVPYUg1cERMK2RpdWpXOTB0MFBCU1M0ZldJZTg4UmFORDRWSUwzT0QvUEh1dWUwYVZBUXFUdlVZZG1tT1RhTW5jOFBxYS9uTCtndnB6SlVQVExDblBzb2d4bnp3RkYxZGVFMS8vRGtXTUQ2aStPcEVtNHRIV29TdDd2MHBPdW1UZkttVHJnZGI4TnM5bWNVZ2hPajdQaEFKSUNZT2xMeXV0OCtyVUtoUWZzZjN1ejdYMyt4WWJuQ24wWUhXTGxJS1U5aWNaWGp0YUF5R0VjUEhrTTZrV0xWNkNRYkRXYWRmVERRU3d3MkZVQVN2TjhiMGVmQkZBN2hHTXlvYjUyUHRhemluYlJYRHMwbU1BaTBWd0FPS3dRVGRQeGp5T2s5RHVvbS9iWDZDUDZ5N253M0p6WlE0TWNyYzBpQVFwQkJEaEZiQlVLRHlJZW9aVENvRmtmSWdLRTQvakJIYXNVRisvY1RmOWFNZDdxczdINVlKUWc2bExCZnBnUk9pK011SElWOHZNZ3BqYVJac0dzZkZ0MzJlemt3RTM5SkViSi9QSFBzbUtNT1RpdzhqWjJsZVdqR04rUnNtMEphS29TMHR1NWNLSWNRUVlRVU41RDNYWERWcytuRXNlRDdmRDgremZRaTBCL1hteWtxNDZpcFl2aHgrOHh2NHhDZmd1T05nOU9oZ29VeVBFOFFLM3VQNjYySGVQSGpvSWJqOGNwZytIU29xQm0rYno0Q2o0TFRhcERXNU5HLyt2S0ZjMzcrcFhLMVB1aXFuQjJBek9RZnMwUjdidTFMczBSNytXcm0raGlwbEtieW1WdHJ1ZnBTdUoxOGhQR1U4b2JFanNVcWo2SFNHZkgwVDJkVWJ5VGUxZ3UvMzdwb1VSZFMyZ0VUU2tNMHJIbnJhcDNhWTRzU2pMQ3FyMUc1eENLeENtZFdSTWp6MXZHYkpHNXI1OHpRSkIwd0ZFQXJLRkd5Q0FaV1c0SDZDMm5zM2k4SmdLVVZOUHNHM2x0N05wTVFXVWs0VWE1RDI4MWFYaENUakNERkFtazZjeGlsWG5jMkdpVkgrYmVtZGJFcHNRL3Rlb2RQYzJzTkV2aUsxMjJMeVBUK3Z3aEdaSXkyRUVFUEVWMys1ckE4cjlEc3ExVUlJSWZZaXQyZ1pWazBWeXJhbytJOXJxZnptRjRPaTFQTlJsa0k1L2JRMlhSRzh0OVlZYllpY2VoeWpaajlBeHkvK2o4Ny8rUjBtRWliMzlqSTVRVVhHaW9RcFBlSmdTbzg0ZUVBK3ovUmtQTWFBUnJOMHk5SWRlN3hvNE5XYVlIS0Ywc0VvajZjOWxtNVppckpWeno1SGlMMWx4Y3hoNks0TElUY0ZyQVJZU1Q0NFd2Zis5Y1BiazJSeWU3OFd0TlkwTlc1bHlZSm4rZFRITEQ0M3E0U0RLMEowUGgraTlZa1EyWG9ycUtiTFVNdmV5MVRMd3ZNOHhvNGR5L1hYWDgrZGQ5N0pXV2VkeFlJRkM3anh4aHVaT0hFaWxtWHRObWRXRzdOYmU4aFNDZ3I3ZEZtV3hjeVpNN254eGh2NTZVOS95dGxubjgwamp6ekMxVmRmVFNRU3dmZDlIRWRpMG9oOTV4ZFo0MXVWbGZXcTd1R2J3clgxTG5rVGJMalQ2OWtNc3Ara0dFcjFIVWtDSVlRUVFvZ2lyY2hwVkRoRTdzVlg4ZXNiVUk2TmlvU0MrYk03R29OKzhKam5rN3I5THV3eEkxSGhFTWdhOW4xTGFtT3dDaHNJWnZKWk1ybDBvZkZxN1hoY3k1eW9kelhzRmJZRnc2cGlYSEgrRVp4OHpEZ3dpblEyejZhR1RwNmZzNVpzenUvQjJ3YnZPM3BFT2RkODhpaU9PbVFVdnE5SlpmS3NXTmZNUzNQWDQzVmp6NTVyWHRnOHFKUHZGc2xCQTV4Zmg4YjFheFQ0TXY5R0ZNVTFWL2hYSzFSWVUzbGVLM1gvM3hhYzRYbjh1RUxaZytlYUhQL3dZNnk3L2EvNHpTMkV5c293eHV5K041d0tCbmVNMWpoMXc2ajl0NHRJWEhzMnYybWF3eS8rZmplSmRBZFdwQXhsREw3VXY0UVE0Z1B2RFNhWFIyZXkrRnViMEJOR1lWZVVGdGJjZ05mWWpOL1dpVTZtSWUrQlphR0JNcDNqNDhsNko0Ui93cDh4MzUwZnJRMXBKL1ozWW1Qem5IZ0h6UG1DcEswUXZiMDhIUnZqKzdnVFJ6UDJzeGVEZ3E3blh0L3gzRkJsbDVjTjdnTnMyWWUveGJieGZaOHhZOGJnT0E0Yk5tekFkVjN5K2Z5K3R6c0JINE9EWXIyZjQ2S3VEZnlnWkFTWGhhdElHSjg4QmxzV2hud2dYMnZzYUF5ak5jdlhMR1A1aXJkM2Y0SGpZb1VqS012QzF3ZEdHOElBT0lic1lvTmVCYnBOWStWenBGTmdrdUIxK2FpTWdtSGcrejVaejZNczVEQXNiRk1YalJCeExNcnpQcHZqT2RhblBNS1d4Y3lhS05VUmg3QmpFYkV0am8xNU5HZnlqQ3h4aWRvV0dWOHpvY3pRbGRPczdFZ1R0UlVqU3h6R2xvWHhOYnpkbWlTZTlVa01vYjNCRlFaVitNOEZSaVkzY2ZIbXYvQnY2MzdMaEd3emlaY01TWFpNMXhiOVJCZjJSVkVXUkYzUVlTQWZYQWhGMFVVcFJid1FmWHM5R1lOeUhNWis2aEl5V3hwSWJOaUE5dks0RlJXTXUvNnJxRWdZWTNTZng4Y2ZDc3BDZzN1SGhXMERucCtVYktRdGhCQUhYT05DWTRkRCtDcU12NzB0cDJVc3NqOVlscUxGeE5CR0VZNkJXMW9STkkyTXdTZ0YybWVqYjdBQVI4bmNzV0x4eDFmdmxVUVFSYzBRekduRlFFYzh3N092citjN043L0VwdlZ0MktVaGpERm9MV1ZTVDN6OXJoOFA4aU04UjA2U0dEcUtyTzYwNHBiZnlUa1RRNlNSQXlSOVBIc1lveWFlZ050bzBiazJTODJFRlhqbENiYWxUREIyRlMzNlFxYndKZjNydmVsN0FGQ3VDNkhRanZuU2FEMWsraUJNM3NPdXJrQnZibURGOGVjeDdlay84K2JiYjNQNnFhZnh5cXV6c1N3THJUV2U1K0U0RHA3bmNjNlpaL0tuKys3bDhqL2NTT09JWWZDemIwbGVHVURYLzNlQ2hTdnk1UFl5NVVrcHFDcTNPUEVJaHkvOGE0eWpqcTdtTGU4SWJ0L3lTVjVNSEVQT2hFQkpYOXE3dGZ5M3BFbXgzT0gyOVAyQkxoblBTeUlVU3g2MkxEQ0c4c05tVW43WXpLQitNY0JqM1pQREtUNVYzYmpqZTNGZ2NCMlg0dzQ2WnNmUG9WQ00wZE12b0xWOERKbHRzd0ZGZWQycDFJdzVtbmpHcHoyUm9zb2tLSE56ekJ3N0ROYzVzR1pXdGxTVjQzeHVNdjVoZFhpK2dXU2huTFhrN2lONlZuL1owbFZPVnpaTWF5cktZOHNPWmxsVExXblBZVk43T1IyWnFOUnQ5dGl1Q1dMV1RwOCtuZVhMbDdOOCtYSnl1UnhqeG95aHZMeWNUWnMyc1g3OWVvd3haRElaZk4vSDh6d0FNcGtNZFhWMVFkdlhHQ1pPbkVobFpTV2pSNDlteFlvVmhNTmg2dXJxbUQ1OU90WSs3dWxZTTdhVSsxcXJ1S05oQk10U01UUzhwNiszeEEwemZmaDQvdTJZMDVrMTdTVGliWWJiSDN5SHV4NWN6dVl0aVdEN2NTbFBpcEpFUHhhOWE4eHFROWVLcGVpU01GNVhKeFlHYkJ0bFdlVHJOd1d2czUxZ0lOejM4WnFiY0ExMHJWcUdtV1M2czNkb3Z6Qyt4b3BGNlh6eWVWcVBPWnk2NjY2R2NEaDRMcHVsOVU5L28vUEo1N0ZpMGQwRFVJaDlUMnNnckJUL1dsSWFWT0tWa2dDNUEwVHJuWFBSQjFQL3YxSlFIclU1L3FBS2xGSms4eHFsRkhsZjQydERVMGVlWnhlM3NXUnpVb0sraVFQV3ZSdXZHK1JIK0FNNVNXTEE3aG45N3ZiSHBDVjdBSnV4cWswVjF6V2hoc2J4eHBzaFBzQUg4L0lqY1Bnamt1bUZFQVBiTGpkQk1laUc4clRsWEs1WU5KMUhtNnRSd0VOYmhvUGo0NGJ5NUkxVVIzYmVQSUFOUGp5WEpicnFiYXpjeXhDS1FGbEZJZGkrQ3Y2MUZIYXlrOGliVCtMWGpjUmRzNUJJeXlaVU9QYkJJMVBHSUZzM2liNWt1ajBVcXZCTk1IRTM3MnYrOTc0M2VIak9HaTQ4WlJxbkhEbU80eVpkaGk0djU4ekRQMDl6UE00YnF6eGVYWmpoTHk4OXdOWk5yZWhvR0JWeThMV0JvQmRlREVKYmZoYkI1SG52SFBmQ0NZdk8wTlJlbGlWL2ZEbDNOVjNHcmJPdlpVM1hwSjF6NDhWZVdjQ1lpT0kvSnRsY01zb21Zbld2Vk5kcFRYSjJGNTMzdCtDM2VJTXZ2WE01K09VdjRaNTdDdmVxUXFkSVEwUHduQkJDQ0ZqNkk3bGI5cWU1WCs1Uit1NnZlcW12SlRzTXV1WjhJWkNpTmhvTWhOd3dJVGZNc1VlZHNrdURIN1RXR0dXdytpbndZb21mNTlEa05pNXNYc2F4aVhvaTJndUNCdzJtdERwS2F2LzkzMVkzUVY0RVdyUHR2Tlk4ajF0WDM4M2Mxdm00eXFYQ0xVY2JmOGRyaEJpS2ZFVy9CN2t0dGt2STdyTTVhR2JublUzbXRRa3hKTXFIb1Y4M0FxVU1xV3lZVkNvR2xrYlpQdWxzbUovKzQyd01rTTZHd2ZicFNzWG9TcFNDN2FPVTZaTTJYMS9NYzNsK0FVUnZ1MEpPcGhCQzdJT2oybGQxdi94dDcrZm5lM1lEZ2NwS3VPZ2ltRHNYbm5vS1Rqd1JMcjRZWExmMzd6MW1ESHptTStBNDhPYWJjTVlaY01JSndjK0QvdDZ1R0JQTHEzOC91RjBkVnBuVmQ2eXQ1Sjh0VVJYM2dua0UvZFh4cENJR2JNZzlXWWhjWnhjZUUwTlhZYUc0MTlSR3ZyR1ZIWTNoWFlhenNhemdTeHhRN1lzVmF6V3hpTVZ2LytMVDJXVTRiTHJGaERHS1VFaWhEZVF5ME55bWVXYTJadkVLelpNdmFIUVdUQnBVR1pnUlFCVVFJdGp4cDRsdUR6alpCa0tXeFNXckgrWE1yVytRc3FOWWc3Z1JPbjk5dTJRYUlRYkl5dG56MWNyWjh5VWhRRGF6RWYzdXNJNjNaTHhiaUlGcWxwVU03bjRLdWVPSW9XU3FyT1lRdTVpVVhxVklGMzc0MW5YQmx4QkRuTUdnSEJYRUJ5ejhiUG1GZWIrN0JDTGQ5VFY5WVVUN0VpbC94UTZ2ZmZzK0JmY1Z6ZkZtY3QyN0ZrcWlpdW1UNExNWHdxeFR5b2cwT2pUK05relhHeTQ2Slh2VTd5dkhjZEJhYzhVVlYvRHNzODhTQ29XNDZhYWJtREZqQnBabFlZeGgxNmxLbGxKN3JPa3BGWlJuWThhTVllVElrZHgwMDAzODdXOS9ZL0xreVh6MnM1L0ZkZDE5RHVZc1JOSHkvWDU1V3luZUF2czBmMGVJUWVhMGxVVldYNzl5a2x4dlFnZ2hoT2cveHVCdmJVU0ZROEhQZWc5OVE3cXdMNHR0QjY5MVpPdWZudGkrRjRXeUxGRDJqdlNYUFNyMkxCcDJxSzJPY2VLUlk3bmt2RU5KcFBJc1dkVkVQSm5ER01PSlI0MmxxVFhCZ3FWYnU3MGNXZ0VsVVpkaFZURStmc3BCWFBqeEdUUzJKRmkrcG9WVU9nY0tUanQrQW8wdENWYXNiL25BT2NBU1hsVUk4Yjd1ZUtiYkpZUVBwSURMN255ZXl5VGw5cTBLNHl1Y0tvOWgxelpRYzBVVHlqSG9wRUxaZyt1K3V2NUh0Mk5IUWpqbHBlL2RGMDRGZFFHRElYYjg0ZFIrK3d1c21GbkRELzk1S3krc25rM2VEV09IUy9BbHVJRVFlL2FiRTZWR0p0NVQ0OCt0V0UvN1RYZFQrZTgrN3FReFdLVXhURFpQOHZHWFNUeitDdDZtaHQzV2pHb1VNWjNubzRtdGRsanJveHlqdi90bXRDN3NwVFk5QUZhT0UrK0FPVitRcEJXaXQxZW42MUE1NjR3ZGs0a3FaNTB4NUdPYm1YNmFyekRnNTA0cGZOL24rT09QNTcvKzY3OXdYWmNiYnJpQk9YUG03SmlqMUJNZUJodUZqK0dIeVVZVzVGTjh2MlFFcGNvbWJud2NtWm54Z1hSaGphVWRqYUhZWlE2WktjUXAxUnB6QUszRE5EYUVwaHVpNHpUWktrVTBad2h0MVVSbWdGYVErYWZCWDdzOW5SU1dVcVR5UGt0YVVwU0ZiSWJIWE1LMkl1c2J5bHlMTWFVaEtzTTJ6ZWs4OVlrY2FVOHp0VExDMk5JUWFWK3pPWjZoTVprSEJlTkt3eHhkVzBKcjFpUHJHVFowWmVuSSttUTlNNlQyV1ZHWVlGc1NaVkhqSlRpNThSbSt0UHJYZktoek1aN3g2YlJzYkdYWUx5TUhRNlM4N1ZGWkFDalpta3FJQTd5aXJZTDd2ekZFUm84aU1ucmticzhacllOeFNmSGUyNGNNOUFraGhCQmdERXJtTEEwSXQ5QjRNenBveDVwMzFlbkNoYXFKbkkxaXFvcExmVkxzMVBuTXJLTEtFTVlFYzFrdEJRMHRTWDc3dDRYOC9MZHZrRTNsY1VwRGVMNlVScjJSMHlGSkJDSEVIcTI3NXdGSkJERkUycEtBYTFIWkZXZnptNjFVSHp5QjhQUldHdXFYa2w0VHA5TExZYXd5YWVHSTNTdWcrN0gvWWVyV053ZW12dDRPekppeTIwTjZsM2tibnVmdCtQNktTeTdsaWtzdWxieXhIL3h6U1g2dnJ3bTVpdEYxRnA4K0s4d1ZzMHB4NjBaeFY4Y1ovTDd0UERia3hxQ1JRZnIzMDNHZnJIa1F4ZXZ3UTZvSDlmRXRrcTBwZHFkVXNCWkxhNVJ0RC9qSGg1VG1NOVZiZG53dkRseHVLTUx3Q1NlUnFadU9RaEdPVmFHVW9zb3hmUDZrS1V3dU5YVGxERWRQck1HMkRyQnhoZm91NWYzUFFza2tvcyswcG1LMEpHSnM2S2hnNGRZUmVOcENBYXRiYTFES3lNcUREK0E0RG9jZWVpZ3paODRFb0sydGpWV3JWbEZWVmNYNDhlUHhmUjlqRE80dWU2WnViODhhWTNBY0I5LzMyYlJwRTlPbVRXUG16Sm05R2l2OWo3VVRlTEd6Z3M2OGkxRzd0NjBzcGFpT2xuSG1RVWR5M2ZGbk03MXlBdk9YdEhMcm54YnozR3YxcERONUNYQmM3UGxSa2tEMHFnM2dlM1N1V1UydUlrclcxK1RXcnNZS2g0TUNLeDkwK25pdExVRVFwMndHNHpqWW5xSFRsR0VtakFrV1grMG54aGlVNjlCMHkyOHBPZVlJU2s4OUFZRGt2SVUwM2ZKYmxPdjA2YVlJQjdwUTRXWWhLVHJRK1h4d3JoZk8rekIvWFp4NDJxTzIzQ1Vhc2xuYmxDYWU5bGl5T2NucWhqUjVtU2dqRG1EbGJvY2tnaEJDQ0NHRUVFTkUzaWdzWlZDaFBBOXZyUVBBRHVVeFJwR1hSZlZCWjVFTlpBeThtWWNYczFpZEdrS0FXd2xHZy9aM2VURkJNSDdYeFhuaFB0U0c1ZGpyM2thNVlhVG5TUXkwRWZuRVB2K09BcXlRSXIxK0UvZXRYTXY5MFJBMWxhV1VSaDBzWlpOSTUyaHU2MEpuOHVpUXk4aXdnODduZTVTN0crVVVEV3h4NWdQVzd1V2IwZUFPTjlSY2tLUGtFNHJYemFuYy9OYjF2TngwTXI2MlpKZkZmV0FwR0JGU2ZHV2l6UldqYmFKMjkwcDlrOVdrWCt1aTY3NW0vSmI4NEV4eno0TW5ucENUTElRUVFvZ2hVR2NMNnJqdm5Xc1QvR3oxVTlCRkMwTnRMc1ZITzlaeGZ1dHl4bVM2Z2oxbXBNSjl3TkZHbzVRaTVhVlptOWpJYmF2djVwSDZwMG43R1VxY0VzRGdHMThTU2dnaGhCQUhGQVBCQWk4M0dHc3dSbUdBdDlaT0JrQTVIc1lvbE8yamJIL0g4MElJSWNSK1o5dHcwRUZ3NDQwd2ZuendjMTl4SERqeFJCZ3pKdmlNL1JBWW84ZjNkZ01SUy9QeGtRbHJhbG5PL0dGZHBYNnd2a3cxcEczVlg1dDdtS1FpKzNoMHQ4ZFVWUHJlRGdpVzJxOXJQOFhnb2pYWUZpeDRSM1BRUklzNzd2VTU3bkREeURyRnFPRUszNGZPaEdIUlVrMWJCN3oyVnRDKzZFeVpZT3lnQzRnRDFVQWRzSm5Dem01MGJ3S0lFK0xvaGplNWJ0VURlSmJOWUcrNVhIMzdXNUpwaEJCQ0NDRkV6OXZpRW1kRENDR0VFQU5aOTNqWHZGK3R6RjVmSTRSNGY3WUZsZVVXSHo4NXhIVVhSemxpVklqa0d5SHFIdzJSWFc4SG0rWEs4RXVQUmFOUmJyMzFWbks1SE9QR2pVTXBoVEZtbjlZcVdKWVZ4Q0JWaWhrelpuRE5OZGNRQ29XSVJxT1N3RUlJSVlRUVFnZ2hoSGdQNWJwNzMrU2g4SHkzWGlzK09DbDNTVS94L214TE1iSzJqTExTTUJ1MmRPRFlGczF0U2RvNjA5UlZsM0RrakpFc1c5UE13bVVOM2U3ak40RGpXSXdkVVVFb1pMTnBheWZwak1lMjFqanhaSTdSSThvNTd0QXgvUFB0ZWxhdWI1RTFpRUlJTVNnckxtQThSWGhpbWhGZnI2ZnNqRTVNMW1CeUNtVVB2cExiTFlzRisybjV1Mjg2clpSQ2V6NVdhWlM2S3k3RS9QdW4rWFBpYlg3ODJNOXBUV3lEY0FrS2cyOWtzMm9oaE9oK1k4dWdPeE40UU1ldDkyRlZsT0dNSGs1K3cxYjhsbmI4cmMyWWREWUkvcnhiTzBFUk5UNm5wQnJ0a05HSE9rWi9aMjVzZURodk9YOEJLODJKZDhDY0wwajZDdEVibGhYc3ViRzlwVzBLajRtaXNYWHJWczQ4ODB4Q29SRFhYMzk5bjd5blg0aWthcUY0TE5mRkVqL0RUU1dqT01LSjBtWThMSWtBc0ZkYVMzc0J3TktnTm1yY0V4VHBhb3RRMkljeWk4aHdINTBBcjF6aGh3RXZlSDFWeEtVbVlyTTFtY1B6TldIYm9qSnNVeGRUbExzbHBIMU5VeXBIaVdNenVzUmxXWHVHeGR0U2JFN2ttRlFSSVd4YnpLeUpVaHQxU2VSOU5zYXpSQjJiVXRkaVV6eExWODRmVXYyS0ZnYWpiR0xHWjByN0FxNWZjeHV6R2g0bjZtZEpLZ3VVd3RhZVpFUWhoTmhmRkNnVjFMZk5MbmNnQlNpcGN3c2hoQkJDREFxNzlSTW85Y0hQQ3lGRVA5TmE0MnZEeHFZNDMvblZTeno2eEZKeXJvTVZjZkFrRmxTdjJVcjJDaE5DN0puMDFZbWgxTUxSU2pFczNFWDRpUmZvbURPQ1JIa2UxUkJudElLMjhSYStOa0hiUjZvV1FvaGl1bGNyS0lrcWpwN2g4c1ZQUnpudHhISldxQm5jMW5BUlQ4ZFBKS21qdTQzRmlUMjBod1o3ZFVlYWErSURQUGUvL3pLb2o2LzJUM0tPOWxSd3EvMjRCOXRJTnl2blFCU3lvaUphVXZPZXgwYldWSERwaDQvR2FJMHhCbHY2QllUb0ZVc1pXdEl4R3VKbHdieTRYUjRYZTdjOUppMUFhV2twa3lkUHBycTZHdHUyMFZxL2I0emI3Yzk1bmtkYld4dXhXR3pIKyt6Nm52dmkwZFlhTk1DN3psM0VjcGhZTTRLcmp6NmRTdzQ3RFpPT2NQZURxL2pOL1V0WnU3NFQzNWc5anJXTDR1SklFb2llbDJSQkk4QU9oY0MyVVphTkZaUkdZRXdRQ0F2QTkwRXBySEFrS0d5TXh0NytYUEFtKzZza1J0azJmbWNYVzc3L0N5Yi83YmNBYlBuK0wvQTd1N0RDWVl3c0VPdlQ3Q0xFZHVtY3o0dExPM2g1ZVFjaFcrSFlGdW1jajYvN2JrT1NteTZhS0xVVVViUzBzWXZyZ0IrNnROdlhtd1l1Zm5EN1Q4MkZMK0R2aFM5YWdQOVBNb0VRUWdnaGhCaGFkWHdBbzdEZElBQ01iNlRKdW9NRmJOWHdYQWJlS1FUSUNSVW11cHIzbTFWa1FObFl5VTZzK1UrREd3SGJsb0R5WXNEOWJ1MC9ldnk3Q29WbEtiUTI1TFdQOWcwR2hXMkJhOXZCYzhiMHFxL3NYRGxGKzdYZ1Z4R29PTlZqMktVNU5vMmV6QTJycitVdjZ5K2tNMWZPYnFQcm9sdEdoQlZmSG05ejlSaWJrbTUyblptY0pqVW5Uc2U5elhoTmVVbEVJWVFRUW9nQm9nWndRbUZZZXh5Y2J1SEM1dVdjMUxXSm1DLzF2Z09aWnp4YXMrM2N2ZTRCN2xyM1YrclREVVNkQ0RFbmlwWk5oWVFReFhVdmxaNGpJVVNmTW9EWlpYeFNBNVliMUoyMTJiNFlTY2xjYnlHRUVJT3RZZ3gxZFZCYkczemZsOVZreTRJSkUyRDgrTDUvN3dHNnR5dGdjbWxPZlh0R2l6cXlLcVB2V0Z2Sm92YXc2cGRRRzdydzllN0hoQkFIbkx3WEZKbXIxbWtpRVdodU5aU1hCV1ZvUlptaXNWbmplZERZWWtpbFFldWdsV0Ywb2VEU1FHdmhheDhiSUNPNzZ2bk9PNytuUEo4Z2E3dFlnM3l1NEthV3BHU1lmdlRVRjQvWTU1djNzNUpzUWdnaGhDZ2lkYkhCSFdlZ1NVNlJFRUlJSVE0dy91SXJaVDZYNkphUUMxUEdPVnd6SzhLbno0aFMwZW5RZkhlWXp0a3VmcnlRalNRMzlaaGxXV2l0R1RWcUZNQUhCbTNlRzZVVVNpbDgzMmZDaEFsQUVQdlFra0QxUWdnaGhCQkNDQ0dFZUxkOW1hOG9jUkJGUCtmRzdkOGtVam5tTGE1bjRiSUdYbnRyRTZjY1BaNXhveW9ZUGJ5Y1ZEclBQWDkvbXhmZldMZGpMdTh1MVB1OUowQkhWNGJYRm16a3pYZTI4T3BiR3pucHlIR01HbDVHYVdtRWVDTEw3eDZZejl5RjlaTFZoUkJpc040b05KU2Uwc21JYjJ3aU9pMkxueTRzbTdQTUlEM2VQUitYOFgwaWgwMWw1TGMrejRZVEp2TGpoYi9qeWVYUGs3RnNyRkFNWDJJSUNTRkVqL2xkU2Z6RnExQ3VnM0pkVERhSDhmMmdaV0NwOTIySVJJelBDZWtteXpYK05BZjlyVG14RWFHc2N2NEVLc1dIYm9jM3JwUEVGYUkzZHIzK1pHNVIwWW5INDF4MjJXVzRya3M4SHUrNytqTGdZM0JRclBkelhOUzFnUitVak9DeWNCVUo0NVBIWUV1R0dYQlRXbDRydXVBa3ViaE5lajJVcHoxU0t5emlyUzdWVXpUZVdzaVZPMWhsR2pxQ2w1YzRGbE1xbzB5dmp0S1Y4eWwxYmVyak9SWTFwNG5ZRmgwNUgxc3BEcW1KVWhOMU9VUXBrcDVtWEdrSWJXQkRQSXN4Tm5VeGw2NmNUMmZPcHo2Ukk1SFgrTm9NdWZobWpuS29TZGR6MVlZL2NzMzYzek1tMTA3YStLU1V3bnJmZlpiRWtQVjVpUjhxeEdDdWJ5dXBOd2toQnFQYlA5UHR3aWtML0tqd3RWTWVlTER3SllRUVFnZ2hlaXVUODNsajBSYis4K2N2c1B5ZEJrelVSV0gyTkE5VDlJQ1J0cmtRQTlqZWZFd3VPQ0gyQ3dVKzVOSTJWVE50WXN1YjBkc1VkcmxGYklxaHNVa0ZjM3FsYWlHRUtDSzJCYlUxRmhlZUh1YXpueXFoZW13dEQ4US93aDJ0RjdBNk00RTh0aFJzM1drUHlSUVNVY1JxeXNPU0NFS0lQbWNwQmJZdENTRkVIMmhQUjdodjRhRWtjaTZlbGppcSswcnRNdlUzSEE1VFcxdUxVZ3BqRExadG83WGU0Ky9ZdG8weEJ0ZDFxYXVyMisxOVZBK25FK3M5ZkU1cEtNSy9URHlVTDU5d0xzZU9PcGhsS3p1NTdjOExlZUxGRFNRU3VlQjNwRGQ0U0hBa0NVU3ZPeCtNQ2Zwb2RvMEdwTlRPbjdjWFRzWVVIb2VkUzN6MmIwbGl0TWFLaEVrdVhNUzJXMzhQUUhMaEl1eG9DY2FYb0JKQzlIZlo0ZnVROWswUXJVWXFGa0lJSVlRUVFnZ2hoampmU09QM1BaWjQ4RXdHdHZvUTN0NlAySjFmTk1HZ3IxTVc5Q3RJcEhLeEg0elBkdlhORzZtZFhXUEdCenhKMjZKVktJcWlNelMxbDJYSkgxL09YVTJYY2V2c2ExblROU2s0MFhJcjZKSFBqYlc1ZXF4TnVkUDlrNUZibmFIcnJ5MTREVGxKUUNHRUVFS0lJZXFVemsxYzNQd08wMU10T0ViTEVyTUQzT3ZOYjNIamlqdVl2VzBPanVWUzZwVGdHeCtOekFFVFFnZ2hoSGczTGVPV1FnZ2hpb0ZTTzlla0ZkTjdENkF5UjNQQm1DNXJmRW5lM0w2NlN0OGp1VVlJMGMrTUFkOUFPZ1ByTmh1aUVVTXVCOUVJSkZOQjBlcnJYWllTYisrNDM3VUR2d2VkK2Q5WTlpZU9hRnRKMWdwaEZjRm04ckk1bFJCQ0NDR0U2STE3Zm43a29ENitNNCtYY3lTRUVFSUlJY1M3V1JiTW5PTHczYytYY01ZSklmUktsNFkvUlVndWRqQ3lacmdQMDluYUVhalo3b1BnOHJzR2ZyWXNDYW90aEJCQ0NDR0VFRUlJSVFhdERMRGJkc1RHUUM3dnMyeHRNNnMydEJKeWJTeEw0ZnVHWE41RDY5MG43S3BnTzdNUVlBVS9veFVxeDd0bTlob0RtYXpId21VTkxGblpSTWkxVVpiQzh6UzV2Qi9zUzdRN0NmTWhoQkNEUk5Xc0ZvYi94eGFjdWp4K1dxR3NJaXVpbFFLdEtUM3pKRWI5OHB1OFV0ckc5VS85Rnh2YjFtTkNNUlRnRzRraEpJUVFQU3hrZDFiNEFaUHpNTG51VDJZd1FOaG9qc20wV0tGMlBka3g1cHV6WXlQQ09lWDh3VUNDRTM1dG1QdGxTV1loeEFGbGV4OUpWMWNYRHo3NElMQnpQcFBwd3oxVFBBdzJDaC9ERDVPTkxNaW4rRUhKQ01xVVRkejRjaUxFWG0vaWRvZFA5bW5JQXlhbGNjaVJYR0l3UGhqTFE2TmdiUER5emZFc2pha2NVeXNqbElkdFZyUmw2TWo2Wkh4Tk1oL0UrN1VzV05lUllSV0d5UlVSUnBXNHJPM01VdXJhVEt1TTBweko4M3BEbk9GUmwrbFZVWmEwcE9qTStVT3lFL0drcHVmNCtzb2JPYlZqRVo2ZklhRXNiQXlXN0pza2hCQkNDQ0dFRUVJSUlVVFJlZkRwRlh6cjVwZG9idXpDaW9Yd3RjeFJFVUlJSWNRK01JQUYyWG9JT1FaM3NvMlhCS2ZDa04wSytRNVFFdEpFQ0ZGRWxJSzZHb3Qvdnp6R2xlZEg4RXByK1orV3ovREgxbk5vOHlzTE93UEwvQWdoaEJCQ0NDSDJKMDlidENaam9LUnUzcmZ0b1dBZDNnZkZwMVg5dlBkcDFBbHg4Y3hUK1BxcHN4aFhYc2ZMYnpSd3c2MXZzV0R4Tm5LZVJyWWlIMko1VHBKQUNQRis2c2ROR05SMytUR2JOa2daSm9RUVFvZ0RUYmZyWnljY1ZjR3Z2bjhRSHpxNkFzL2Z5Ni9aNEMvVFpPL0k0Nytqd2VuZVo5UXNmMFBxWTBJSUlZUTRvTFFmY21pMzZtUE96RU1JLzgvTlBMYWtrYXYvNng3aWlUVFJzTXYvZnZkZnVlSWpNOGg5NHh0NGMvL1o1OGRYdFhTSjFNK0UyRThXVkV3MFRwMmgrdnc4c2ZNczVuQWlOeSs3amxlYVRzYlgxdjRma2Z1Umt2SmhZQnZ2KzJWOFJjbllyeEJDQ0NHRUVFVmpUdWtSM1c4M2FFMWs4amdPZWZyM2hFYlZCZTBPWDdQNnltL1E4dEF6S01mcDgrTTdNYkZJMmhkQ0NDR0VFT0tBWmJxeDI1TTJoZ1ViRTF4NHgySU9YNzJBWDY5Nm1ESS9TOFp5K2Ria2MzbG04dkhjOTdtWi9NdlVLbXlyYjZ2WFNoWDN1TStKWDM5dFVLOVRtWFBqeWRJZUVrSUlJWVFRUWdnaGhCRDdqZWZyUWQxLzV2UjFoNmNRb3R1c1QvNnVXK1ZEVFZtRWUvLzlORTZLMTdQdHk5L0RiKzhrTkhrOGRYZmV5Ty9XcFBuNjNYUEo1dnQrTXl6OThMVlNQZ2doaEJCQ0NDR0VFRUlJMFUzZG1hKzhQeFQ3UEdVaGhCQkNDQ0dFRUVKQTJhT0hES3AraC9nRlM2Vy9RUXdaeFJhZi9yQWpmbVMrMDdLSTBWNFNSZStDSlN2QVE3RXNYS1gvVURsMTY0Sm83YTBhN2dRNm1QdGwyYzFhQ0RGVTdiVjhzMjBiQU4vMysrMGdGR0NoOERGTXNFUDhzbVFrUnpoUnByYXRrSHFXRUVJSUlZUVFRZ2doQnBUczR5cDJkY1UvNmdmMStNQ2Z6aDRqK1VFSUlZUVFRZ2doaEJCQ0NDSEVvR00yN092VWZnWEdnRjBGbzllQ1ZVVXd4WFhmdXNFbG5vZ1FRZ3dPVTg2K2QxQ1BzNjc1eDZWeXZ4QmlnRGlTQkVJSUlZUVFRZ2doaEJCQ0NDR0VFRUwwWE9sSlBzTXV6NU9lWHNFdlZuMkJPMWRmU1h1Mk1waFhKVVBmUWdnaGhCQkNDQ0dFRUVJSUlZUVFRZ2doaEJCQ0NDR0VFRUlJSWZiQ0dFa0RJWVFRUWdnaGhCQkNDQ0dFRUVJSUlZUVFRZ2doaEJCQ0NDRkU3Mnh3eS9qNXNNT0pHQi9vL1NSbFpjQlRsdFhveEVZYitETFFCZHdGWkNTMWhSQUhLdC8zKy8wekRPQmpjRkJzOEhOYzJyV0pINVlNbDhRWFFnZ2hoQkJDQ0NHRUVFSUlJWVFRUWdnaGhCQkNDQ0dFRUVJSUlZUVFvZ2o5LzFWNTJkN244ZkhhQUFBQUFFbEZUa1N1UW1DQyc7XG59IiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCAqIGFzIGludGxUZWxJbnB1dCBmcm9tICdpbnRsLXRlbC1pbnB1dCc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdpbnRsLXRlbC1pbnB1dCc7XG5pbXBvcnQgTWFrZVJlcXVlc3QgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9NYWtlUmVxdWVzdCc7XG5pbXBvcnQgR2V0RmxhZ3NVcmwgZnJvbSAnLi9GbGFncyc7XG5pbXBvcnQgR2V0RmxhZ3MyWFVybCBmcm9tICcuL0ZsYWdzMngnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnaW50LXBob25lLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICAgICAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9pbnRsLXRlbC1pbnB1dC8xNi4wLjAvY3NzL2ludGxUZWxJbnB1dC5jc3NcIiA+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRlbFwiIGlkPVwicGhvbmUtZmllbGRcIiAgLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgLml0aSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGlucHV0e1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuXG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcblx0Lml0aV9fZmxhZyB7XG5cdCAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9pbnRsLXRlbC1pbnB1dC8xNi4wLjAvaW1nL2ZsYWdzQDJ4LnBuZycpLCB1cmwoJHtHZXRGbGFnczJYVXJsKCl9KTtcblx0fVxuICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW50UGhvbmVGaWVsZEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHRwaG9uZTogSFRNTElucHV0RWxlbWVudDtcblx0ZnVsbFBob25lOiBIVE1MSW5wdXRFbGVtZW50O1xuXHRpbnRsVGVsSW5wdXQ6IFBsdWdpbjtcblx0cmVhZG9ubHkgVVRJTFNfVVJMOiBzdHJpbmcgPSAnaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaW50bC10ZWwtaW5wdXQvMTUuMC4xL2pzL3V0aWxzLmpzJztcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuaW50bFRlbElucHV0LmdldE51bWJlcigpO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnBob25lLnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgcGF0dGVyblZhbGlkID1cblx0XHRcdCF0aGlzLmludGxUZWxJbnB1dC5nZXROdW1iZXIoKSB8fCB0aGlzLmludGxUZWxJbnB1dC5pc1ZhbGlkTnVtYmVyKCk7XG5cdFx0cmV0dXJuIHBhdHRlcm5WYWxpZCAmJiB0aGlzLnBob25lLnZhbGlkaXR5LnZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRJbnRsVGVsSW5wdXQoKTtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMucGhvbmUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMucGhvbmUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdH1cblx0c2V0SW50bFRlbElucHV0KCkge1xuXHRcdHRoaXMucGhvbmUgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjcGhvbmUtZmllbGQnKTtcblx0XHRjb25zdCBnZW9JcExvb2t1cCA9IChzdWNjZXNzLCBmYWlsdXJlKSA9PiB7XG5cdFx0XHRyZXR1cm4gbmV3IE1ha2VSZXF1ZXN0KFxuXHRcdFx0XHQnaHR0cHM6Ly9pcGluZm8uaW8vanNvbj90b2tlbj04MjI2MTM4MjE3YTY4YScsXG5cdFx0XHRcdCdnZXQnLFxuXHRcdFx0XHR7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcblx0XHRcdClcblx0XHRcdFx0LnNlbmQoKVxuXHRcdFx0XHQudGhlbigocmVxdWVzdDogYW55KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgcmVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KTtcblx0XHRcdFx0XHRyZXR1cm4gc3VjY2VzcyhyZXMuY291bnRyeSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaChlcnIgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBzdWNjZXNzKCdESycpO1xuXHRcdFx0XHR9KTtcblx0XHR9O1xuXHRcdGNvbnN0IGlzSXBsb29rVXBEaXNhYmxlZCA9IHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWRpc2FibGUtaXBsb29rdXAnKT8udG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCI7XG5cdFx0Y29uc3QgZGVmYXVsdENvdW50cnkgPSBpc0lwbG9va1VwRGlzYWJsZWQgPyAnZGsnIDogJ2F1dG8nO1xuXHRcdGNvbnN0IHV0aWxzVXJsID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdXRpbHMtdXJsJyk7XG5cdFx0Y29uc3QgY291bnRyeSA9IHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWNvdW50cnknKT8udG9Mb3dlckNhc2UoKTtcblx0XHR0aGlzLmludGxUZWxJbnB1dCA9IGludGxUZWxJbnB1dCh0aGlzLnBob25lLCB7XG5cdFx0XHRnZW9JcExvb2t1cDogaXNJcGxvb2tVcERpc2FibGVkID8gbnVsbCA6IGdlb0lwTG9va3VwLFxuXHRcdFx0aGlkZGVuSW5wdXQ6ICdmdWxscGhvbmUnLFxuXHRcdFx0aW5pdGlhbENvdW50cnk6IGNvdW50cnkgPz8gZGVmYXVsdENvdW50cnksXG5cdFx0XHRwcmVmZXJyZWRDb3VudHJpZXM6IFtcImRrXCIsIFwic2VcIiwgXCJnYlwiXSxcblx0XHRcdG5hdGlvbmFsTW9kZTogdHJ1ZSxcblx0XHRcdHV0aWxzU2NyaXB0OiB1dGlsc1VybCA/PyB0aGlzLlVUSUxTX1VSTCxcblx0XHR9IGFzIGFueSk7XG5cdFx0dGhpcy5pbnRsVGVsSW5wdXQucHJvbWlzZS50aGVuKGUgPT4ge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZnVsbFBob25lID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnW25hbWU9XCJmdWxscGhvbmVcIl0nKTtcblx0XHRcdH0sIDEwMDApO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgaXNMb2NhbEZsYWdFbmFibGVkID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbG9jYWwtZmxhZycpPy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIjtcblx0XHRpZiAoaXNMb2NhbEZsYWdFbmFibGVkKSB7XG5cdFx0XHRjb25zdCBmbGFnV3JhcHBlcnM6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuaXRpX19mbGFnXCIpO1xuXHRcdFx0aWYgKGZsYWdXcmFwcGVycy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGZsYWdXcmFwcGVycy5mb3JFYWNoKGYgPT4gZi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKCR7R2V0RmxhZ3NVcmwoKX0pYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdudW1lcmljLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IHR5cGU9XCJudW1iZXJcIiBpZD0nbnVtZXJpYy1maWVsZCcvPlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICA6aG9zdHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuICAgIC53cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgIH1cbiAgICBpbnB1dHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cbiAgICAgICAgICAgYCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljRmllbGRFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0bnVtYmVyOiBIVE1MSW5wdXRFbGVtZW50O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogYW55IHtcblx0XHRpZiAoaXNOYU4odGhpcy5udW1iZXIudmFsdWVBc051bWJlcikpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMubnVtYmVyLnZhbHVlQXNOdW1iZXI7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuXHRcdHRoaXMubnVtYmVyLnZhbHVlQXNOdW1iZXIgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5udW1iZXIudmFsaWRpdHkudmFsaWQ7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMubnVtYmVyID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI251bWVyaWMtZmllbGQnKTtcblx0XHR0aGlzLm51bWJlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy5udW1iZXIuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLm51bWJlci5zZXRBdHRyaWJ1dGUoJ21heCcsIHRoaXMubWF4KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWluKSB7XG5cdFx0XHR0aGlzLm51bWJlci5zZXRBdHRyaWJ1dGUoJ21pbicsIHRoaXMubWluKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuc3RlcCkge1xuXHRcdFx0dGhpcy5udW1iZXIuc2V0QXR0cmlidXRlKCdzdGVwJywgdGhpcy5zdGVwKTtcblx0XHR9XG4gICAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLm51bWJlci5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgeyBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9TdHJpbmdVdGlsJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3JhZGlvLWdyb3VwLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG5cdFx0XHQ6aG9zdHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdH1cblx0XHRcdC5yYWRpby1idXR0b24ge1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0bWFyZ2luOiBhdXRvIDNweDtcblx0XHRcdFx0Y29sb3I6IHJnYmEoNzIsIDcyLCA3MiwgMC43NSk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdH1cblx0XHRcdGlucHV0e1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG5cdFx0XHRcdG1hcmdpbjogMnB4O1xuXHRcdFx0XHRyZXNpemU6IG5vbmU7XG5cdFx0XHR9XG5cdFx0YCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHJhZGlvQnV0dG9uOiBIVE1MSW5wdXRFbGVtZW50W107XG5cdHJhZGlvQnV0dG9uVGVtcGxhdGUgPSBgXG5cdDxkaXYgY2xhc3M9J3JhZGlvLWJ1dHRvbic+XG5cdFx0PGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSd7MH0nIHZhbHVlPVwiezF9XCIgaWQ9XCJ7Mn1cIiB7M30vPlxuXHRcdDxsYWJlbCBmb3I9XCJ7Mn1cIj57MX08L2xhYmVsPlxuXHQ8L2Rpdj5gO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5yYWRpb0J1dHRvbi5maWx0ZXIoYyA9PiBjLmNoZWNrZWQpLm1hcChjID0+IGMudmFsdWUpWzBdO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRsZXQgbWF0Y2hlZFJhZGlvID0gdGhpcy5yYWRpb0J1dHRvbi5maWx0ZXIoYyA9PiBjLnZhbHVlID09PSB2YWx1ZSlbMF07XG5cdFx0aWYgKG1hdGNoZWRSYWRpbykge1xuXHRcdFx0bWF0Y2hlZFJhZGlvLnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsICcnKTtcblx0XHR9XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHJldHVybiB0aGlzLnJhZGlvQnV0dG9uLmZpbHRlcihjID0+IGMuY2hlY2tlZCkubGVuZ3RoID4gMDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLmFkZFJhZGlvQnV0dG9ucygpO1xuXHRcdHRoaXMucmFkaW9CdXR0b24gPSBzdXBlci5nZXRDaGlsZElucHV0cyhgW25hbWU9JyR7dGhpcy5uYW1lfSddYCk7XG5cdFx0dGhpcy5yYWRpb0J1dHRvbi5mb3JFYWNoKHJhZGlvID0+XG5cdFx0XHRyYWRpby5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKSxcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBhZGRSYWRpb0J1dHRvbnMoKSB7XG5cdFx0Y29uc3Qgd3JhcHBlciA9IHN1cGVyLmdldENoaWxkRWxlbWVudCgnLndyYXBwZXInKTtcblx0XHR3cmFwcGVyLmlubmVySFRNTCA9IFwiXCI7XG5cdFx0dGhpcy5vcHRpb25zLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG5cdFx0XHR3cmFwcGVyLmluc2VydEFkamFjZW50SFRNTChcblx0XHRcdFx0J2JlZm9yZWVuZCcsXG5cdFx0XHRcdFN0cmluZ1V0aWwuU3RyaW5nRm9ybWF0KFxuXHRcdFx0XHRcdHRoaXMucmFkaW9CdXR0b25UZW1wbGF0ZSxcblx0XHRcdFx0XHR0aGlzLm5hbWUsXG5cdFx0XHRcdFx0ZWxlbWVudCxcblx0XHRcdFx0XHRgJHt0aGlzLm5hbWV9LSR7aW5kZXh9YCxcblx0XHRcdFx0XHRgJHt0aGlzLnJlcXVpcmVkID8gJ3JlcXVpcmVkJyA6ICcnfWAsXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgU0VDb21wYW55UmVnaXN0cmF0aW9uVmFsaWRhdG9yIGZyb20gJy4uLy4uL2ZyYW1ld29yay9WYWxpZGF0aW9uL1ZhbGlkYXRvcnMvU0VDb21wYW55UmVnaXN0cmF0aW9uJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3NlLWNvbXBhbnktcmVnaXN0cmF0aW9uLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9J3NlLWNvbXBhbnktcmVnaXN0cmF0aW9uLWZpZWxkJyBwbGFjZWhvbGRlcj0nU1NTU1NTU1NTUycvPlxuICAgICAgICA8L2Rpdj5gLFxuXHRzdHlsZTogYFxuICAgICAgICA6aG9zdHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLndyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgfWAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU0VDb21wYW55UmVnaXN0cmF0aW9uRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHRleHQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cdHZhbGlkYXRvcjogU0VDb21wYW55UmVnaXN0cmF0aW9uVmFsaWRhdG9yID0gbmV3IFNFQ29tcGFueVJlZ2lzdHJhdGlvblZhbGlkYXRvcigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7dGhpcy50ZXh0LnZhbHVlfWA7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMudGV4dC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRvci5pc1NhdGlzZmllZEJ5KHRoaXMudmFsdWUsICF0aGlzLnJlcXVpcmVkKTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI3NlLWNvbXBhbnktcmVnaXN0cmF0aW9uLWZpZWxkJyk7XG5cdFx0dGhpcy50ZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLnRleHQuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdH1cblxuXHQvLyBldmVudHNcblx0cHVibGljIGNoYW5nZSgkZXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQgPSB0cnVlO1xuXHRcdHRoaXMub25DaGFuZ2UuZW1pdChuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAnY2hhbmdlJykpO1xuXHR9XG5cblx0cHVibGljIHZhbGlkYXRlKCk6IHZvaWQge1xuXHRcdHRoaXMudmFsaWQ7XG5cdFx0dGhpcy5vblZhbGlkYXRlLmVtaXQoXG5cdFx0XHRuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAndmFsaWRhdGUnKSxcblx0XHQpO1xuXHR9XG59XG4iLCJpbXBvcnQgQ3VzdG9tRWxlbWVudCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvY3VzdG9tLWVsZW1lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEN1c3RvbUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21FdmVudHMnO1xuaW1wb3J0IFNFUGVyc29uYWxOdW1iZXJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9TRVBlcnNvbmFsTnVtYmVyJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3NlLXBlcnNvbmFsLW51bWJlci1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPSdzZS1wZXJzb25hbC1udW1iZXItZmllbGQnIHBsYWNlaG9sZGVyPScoWVkpWVlNTURELVNTU1MnLz5cbiAgICAgICAgPC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICAgICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC53cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICB9XG4gICAgICAgIGlucHV0e1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIH1gLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNFUGVyc29uYWxOdW1iZXJFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblx0dmFsaWRhdG9yOiBTRVBlcnNvbmFsTnVtYmVyVmFsaWRhdG9yID0gbmV3IFNFUGVyc29uYWxOdW1iZXJWYWxpZGF0b3IoKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0b3IuaXNTYXRpc2ZpZWRCeSh0aGlzLnZhbHVlLCAhdGhpcy5yZXF1aXJlZCk7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMudGV4dCA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNzZS1wZXJzb25hbC1udW1iZXItZmllbGQnKTtcblx0XHR0aGlzLnRleHQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICd0ZXh0LWFyZWEtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8dGV4dGFyZWEgcm93cz01IGlkPSd0ZXh0LWFyZWEtZmllbGQnPjwvdGV4dGFyZWE+XG5cdFx0XHQ8L2Rpdj5gLFxuXHRzdHlsZTogYFxuICAgIDpob3N0e1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgLndyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgfVxuICAgIHRleHRhcmVhe1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICAgICAgICAgICBgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHRleHQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgJHt0aGlzLnRleHQudmFsdWV9YDtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy50ZXh0LnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMudGV4dC52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI3RleHQtYXJlYS1maWVsZCcpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICAgICAgfVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3RleHQtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0ndGV4dC1maWVsZCcgLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG5cdDpob3N0e1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0fVxuXHQud3JhcHBlcntcblx0XHRcdGRpc3BsYXk6ZmxleDtcblx0fVxuXHRpbnB1dHtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcblx0XHRcdG1hcmdpbjogMnB4O1xuXHRcdFx0cmVzaXplOiBub25lO1xuXHR9XG5cdFx0YCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0RmllbGRFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy50ZXh0LnZhbGlkaXR5LnZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLnRleHQgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjdGV4dC1maWVsZCcpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICAgICAgfVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBPcHRpb25XaXRoRGVzY3JpcHRpb24gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL01vZGVscy9PcHRpb25XaXRoRGVzY3JpcHRpb24nO1xuaW1wb3J0IERvbVV0aWxpdHkgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9Eb21VdGlsaXR5JztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3R5cGUtYWhlYWQtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwidGV4dC1pbnB1dFwiPlxuXHRcdFx0PGRpdiBpZD1cImRlc2NyaXB0aW9uXCI+PC9kaXY+XG5cdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcblx0XHQ6aG9zdCB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblx0XHQud3JhcHBlciB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OmZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblx0XHQjdGV4dC1pbnB1dCB7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG5cdFx0XHRtYXJnaW46IDJweDtcblx0XHRcdHJlc2l6ZTogbm9uZTtcblx0XHR9XG5cdFx0LndyYXBwZXIgI2Rlc2NyaXB0aW9uIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMCAycHg7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdH1cblx0XHQub3B0aW9ucy1saXN0IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNFOEU4RTg7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHRcdHotaW5kZXg6IDM7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRtYXgtaGVpZ2h0OiAyMDBweDtcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0fVxuXHRcdC5vcHRpb25zLWxpc3QtaXRlbSB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRThFOEU4O1xuXHRcdH1cblx0XHQub3B0aW9ucy1saXN0LWl0ZW06aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0U4RThFODtcblx0XHR9XG5cdFx0Lm9wdGlvbnMtbGlzdC1pdGVtLmFjdGl2ZSB7XG5cdFx0XHQvKndoZW4gbmF2aWdhdGluZyB0aHJvdWdoIHRoZSBpdGVtcyB1c2luZyB0aGUgYXJyb3cga2V5czoqL1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwM0U2NCAhaW1wb3J0YW50O1xuXHRcdFx0Y29sb3I6ICNGRkZGRkY7XG5cdFx0fVxuXHRcdC5vcHRpb25zLWxpc3QtaXRlbS10aXRsZSB7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0fVxuXHRcdC5vcHRpb25zLWxpc3QtaXRlbS1kZXNjcmlwdGlvbiB7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0fVxuXHRgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVBaGVhZEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXG5cdHByaXZhdGUgdGV4dElucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcblx0cHJpdmF0ZSBkZXNjcmlwdGlvbkVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIGNvbXBvbmVudFdyYXBwZXI6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIGN1cnJlbnRGb3Vjc2VkSW5kZXggPSAtMTtcblxuXHRzZWxlY3RlZE9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uO1xuXHRzZWFyY2hSZXN1bHRPcHRpb25zOiBPcHRpb25XaXRoRGVzY3JpcHRpb25bXSA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIGdldCBzZWFyY2hIYXNSZXN1bHRzKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IGF1dG9jb21wbGV0ZUxpc3QgPSBzdXBlci5nZXRDaGlsZEVsZW1lbnQoJy5vcHRpb25zLWxpc3QnKTtcblx0XHRyZXR1cm4gYXV0b2NvbXBsZXRlTGlzdCAmJiB0aGlzLm9wdGlvbnNXaXRoRGVzY3JpcHRpb25zICYmIHRoaXMub3B0aW9uc1dpdGhEZXNjcmlwdGlvbnMubGVuZ3RoID4gMDtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdGlmICghdGhpcy5zZWxlY3RlZE9wdGlvbikge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9uLnZhbHVlO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRpZiAoIXRoaXMub3B0aW9uc1dpdGhEZXNjcmlwdGlvbnMgfHwgdGhpcy5vcHRpb25zV2l0aERlc2NyaXB0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zV2l0aERlc2NyaXB0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKTtcblx0XHRpZiAoIW9wdGlvbikge1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQuaW5uZXJIVE1MID0gbnVsbDtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcblx0XHR0aGlzLnRleHRJbnB1dEVsZW1lbnQudmFsdWUgPSBvcHRpb24udGl0bGU7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQuaW5uZXJIVE1MID0gb3B0aW9uLmRlc2NyaXB0aW9uO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHRyZXR1cm4gISF0aGlzLnNlbGVjdGVkT3B0aW9uO1xuXHRcdH1cblx0XHRyZXR1cm4gISF0aGlzLnNlbGVjdGVkT3B0aW9uIHx8IHRoaXMudGV4dElucHV0RWxlbWVudC52YWx1ZSA9PT0gJyc7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMudGV4dElucHV0RWxlbWVudCA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyN0ZXh0LWlucHV0Jyk7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjZGVzY3JpcHRpb24nKTtcblx0XHR0aGlzLmNvbXBvbmVudFdyYXBwZXIgPSBzdXBlci5nZXRDaGlsZEVsZW1lbnQoJy53cmFwcGVyJyk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dElucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dElucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0XHR0aGlzLnRleHRJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy50ZXh0SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xuXHRcdFx0dGhpcy5pbnB1dEV2ZW50SGFuZGxlcigpO1xuXHRcdH0pO1xuXHRcdHRoaXMuYmluZE5hdmlnYXRpb24oKTtcblx0fVxuXG5cdHByaXZhdGUgaW5wdXRFdmVudEhhbmRsZXIoKSB7XG5cdFx0dGhpcy5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQuaW5uZXJIVE1MID0gbnVsbDtcblx0XHR0aGlzLmNsb3NlT3B0aW9uc0xpc3QoKTtcblx0XHR0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnMgPSBbXTtcblx0XHRjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMudGV4dElucHV0RWxlbWVudC52YWx1ZTtcblx0XHRpZiAoIXNlYXJjaFZhbHVlIHx8IHNlYXJjaFZhbHVlLnRyaW0oKSA9PT0gJycpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgb3B0aW9uc2xpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRvcHRpb25zbGlzdC5jbGFzc0xpc3QuYWRkKCdvcHRpb25zLWxpc3QnKTtcblxuXHRcdGlmICghdGhpcy5vcHRpb25zV2l0aERlc2NyaXB0aW9ucykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLm9wdGlvbnNXaXRoRGVzY3JpcHRpb25zLmZvckVhY2goKG9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uLCBpbmRleCkgPT4ge1xuXHRcdFx0dmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChzZWFyY2hWYWx1ZSwgJ2dpJyk7XG5cdFx0XHRjb25zdCBpc01hdGNoaW5nVGl0bGUgPSByZWdleC50ZXN0KG9wdGlvbi50aXRsZSk7XG5cdFx0XHRjb25zdCBpc01hdGNoaW5nVmFsdWUgPSByZWdleC50ZXN0KG9wdGlvbi52YWx1ZSk7XG5cdFx0XHRjb25zdCBpc01hdGNoaW5nRGVzY3JpcHRpb24gPSByZWdleC50ZXN0KG9wdGlvbi5kZXNjcmlwdGlvbik7XG5cdFx0XHRpZiAoIWlzTWF0Y2hpbmdUaXRsZSAmJiAhaXNNYXRjaGluZ1ZhbHVlICYmICFpc01hdGNoaW5nRGVzY3JpcHRpb24pIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5zZWFyY2hSZXN1bHRPcHRpb25zLnB1c2gob3B0aW9uKTtcblx0XHRcdGNvbnN0IG9wdGlvbnNMaXN0SXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgnb3B0aW9ucy1saXN0LWl0ZW0nKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbS5kYXRhc2V0Wyd2YWx1ZSddID0gb3B0aW9uLnZhbHVlO1xuXHRcdFx0b3B0aW9uc2xpc3QuYXBwZW5kQ2hpbGQob3B0aW9uc0xpc3RJdGVtKTtcblx0XHRcdGNvbnN0IG9wdGlvbnNMaXN0SXRlbVRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbVRpdGxlLmNsYXNzTGlzdC5hZGQoJ29wdGlvbnMtbGlzdC1pdGVtLXRpdGxlJyk7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW1UaXRsZS5pbm5lckhUTUwgPSBEb21VdGlsaXR5LmJvbGRlblRleHQob3B0aW9uLnRpdGxlLCBzZWFyY2hWYWx1ZSk7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW0uYXBwZW5kQ2hpbGQob3B0aW9uc0xpc3RJdGVtVGl0bGUpO1xuXHRcdFx0Y29uc3Qgb3B0aW9uc0xpc3RJdGVtRGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuXHRcdFx0b3B0aW9uc0xpc3RJdGVtRGVzY3JpcHRpb24uY2xhc3NMaXN0LmFkZCgnb3B0aW9ucy1saXN0LWl0ZW0tZGVzY3JpcHRpb24nKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbURlc2NyaXB0aW9uLmlubmVySFRNTCA9IERvbVV0aWxpdHkuYm9sZGVuVGV4dChvcHRpb24uZGVzY3JpcHRpb24sIHNlYXJjaFZhbHVlKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbS5hcHBlbmRDaGlsZChvcHRpb25zTGlzdEl0ZW1EZXNjcmlwdGlvbik7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm9wdGlvblNlbGVjdGVkSGFuZGxlcihvcHRpb24pO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmNvbXBvbmVudFdyYXBwZXIuYXBwZW5kQ2hpbGQob3B0aW9uc2xpc3QpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjbG9zZU9wdGlvbnNMaXN0KCkge1xuXHRcdHRoaXMuY3VycmVudEZvdWNzZWRJbmRleCA9IC0xO1xuXHRcdGNvbnN0IG9wdGlvbnNMaXN0ID0gc3VwZXIuZ2V0Q2hpbGRFbGVtZW50KCcub3B0aW9ucy1saXN0Jyk7XG5cdFx0aWYgKCFvcHRpb25zTGlzdCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRvcHRpb25zTGlzdC5yZW1vdmUoKTtcblx0fVxuXG5cdHByaXZhdGUgb3B0aW9uU2VsZWN0ZWRIYW5kbGVyKG9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uKSB7XG5cdFx0dGhpcy52YWx1ZSA9IG9wdGlvbi52YWx1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0XHR0aGlzLmNsb3NlT3B0aW9uc0xpc3QoKTtcblx0fVxuXG5cdHByaXZhdGUgYmluZE5hdmlnYXRpb24oKSB7XG5cdFx0dGhpcy50ZXh0SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcblx0XHRcdGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG5cdFx0XHRcdHRoaXMuY2xvc2VPcHRpb25zTGlzdCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnNlYXJjaEhhc1Jlc3VsdHMpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4ID0gdGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4ID09PSB0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnMubGVuZ3RoIC0gMSA/IDAgOiB0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXggKyAxO1xuXHRcdFx0XHR0aGlzLmhpZ2hsaWdodEZvY3VzZWRTZWFyY2hSZXN1bHQoKTtcblx0XHRcdH1cblx0XHRcdGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuXHRcdFx0XHRpZiAoIXRoaXMuc2VhcmNoSGFzUmVzdWx0cykge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXggPSB0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXggPT09IDAgPyB0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnMubGVuZ3RoIC0gMSA6IHRoaXMuY3VycmVudEZvdWNzZWRJbmRleCAtIDE7XG5cdFx0XHRcdHRoaXMuaGlnaGxpZ2h0Rm9jdXNlZFNlYXJjaFJlc3VsdCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuXHRcdFx0XHRpZiAodGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4ICE9PSAtMSAmJiB0aGlzLnNlYXJjaEhhc1Jlc3VsdHMpIHtcblx0XHRcdFx0XHR0aGlzLm9wdGlvblNlbGVjdGVkSGFuZGxlcih0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnNbdGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4XSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRoaWdobGlnaHRGb2N1c2VkU2VhcmNoUmVzdWx0KCkge1xuXHRcdGNvbnN0IG9wdGlvbkxpc3RJdGVtcyA9IHN1cGVyLmdldENoaWxkRWxlbWVudHMoJy5vcHRpb25zLWxpc3QtaXRlbScpO1xuXHRcdGlmICghb3B0aW9uTGlzdEl0ZW1zKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdG9wdGlvbkxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSwgaW5kZXgpID0+IHtcblx0XHRcdGxpc3RJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xuXHRcdFx0aWYgKGluZGV4ID09PSB0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXgpIHtcblx0XHRcdFx0bGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXI8VD4ge1xuICAgIChldmVudDogVCk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNwb3NhYmxlIHtcbiAgICBkaXNwb3NlKCk7XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IGFueSwgcHVibGljIGV2ZW50TmFtZTogc3RyaW5nKSB7fVxufVxuLyoqIHBhc3NlcyB0aHJvdWdoIGV2ZW50cyBhcyB0aGV5IGhhcHBlbi4gWW91IHdpbGwgbm90IGdldCBldmVudHMgZnJvbSBiZWZvcmUgeW91IHN0YXJ0IGxpc3RlbmluZyAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbUVsZW1lbnRFdmVudDxUPiB7XG4gICAgcHJpdmF0ZSBsaXN0ZW5lcnM6IExpc3RlbmVyPFQ+W10gPSBbXTtcbiAgICBwcml2YXRlIGxpc3RlbmVyc09uY2VyOiBMaXN0ZW5lcjxUPltdID0gW107XG5cbiAgICBvbiA9IChsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBEaXNwb3NhYmxlID0+IHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkaXNwb3NlOiAoKSA9PiB0aGlzLm9mZihsaXN0ZW5lciksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIG9uY2UgPSAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzT25jZXIucHVzaChsaXN0ZW5lcik7XG4gICAgfTtcblxuICAgIG9mZiA9IChsaXN0ZW5lcjogTGlzdGVuZXI8VD4pID0+IHtcbiAgICAgICAgdmFyIGNhbGxiYWNrSW5kZXggPSB0aGlzLmxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrSW5kZXggPiAtMSkgdGhpcy5saXN0ZW5lcnMuc3BsaWNlKGNhbGxiYWNrSW5kZXgsIDEpO1xuICAgIH07XG5cbiAgICBlbWl0ID0gKGV2ZW50OiBUKSA9PiB7XG4gICAgICAgIC8qKiBVcGRhdGUgYW55IGdlbmVyYWwgbGlzdGVuZXJzICovXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4gbGlzdGVuZXIoZXZlbnQpKTtcblxuICAgICAgICAvKiogQ2xlYXIgdGhlIGBvbmNlYCBxdWV1ZSAqL1xuICAgICAgICBpZiAodGhpcy5saXN0ZW5lcnNPbmNlci5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVyc09uY2VyLmZvckVhY2gobGlzdGVuZXIgPT4gbGlzdGVuZXIoZXZlbnQpKTtcbiAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzT25jZXIgPSBbXTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwaXBlID0gKHRlOiBDdXN0b21FbGVtZW50RXZlbnQ8VD4pOiBEaXNwb3NhYmxlID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub24oZSA9PiB0ZS5lbWl0KGUpKTtcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50LCBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSBcIi4vQ3VzdG9tRXZlbnRzXCI7XG5pbXBvcnQgT3B0aW9uV2l0aERlc2NyaXB0aW9uIGZyb20gXCIuL01vZGVscy9PcHRpb25XaXRoRGVzY3JpcHRpb25cIjtcbmltcG9ydCBBcnJheVV0aWwgZnJvbSBcIi4vVXRpbGl0aWVzL0FycmF5VXRpbFwiO1xuaW1wb3J0IERvbVV0aWwgZnJvbSBcIi4vVXRpbGl0aWVzL0RvbVV0aWxcIjtcblxuY2xhc3MgSURpY3Rpb25hcnk8VFZhbHVlPiB7XG5cdFtpbmRleDogc3RyaW5nXTogVFZhbHVlO1xufVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbUlucHV0RWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHtcblx0cHJpdmF0ZSBkZXBlbmRlbnRPbkxpc3QgPSBuZXcgSURpY3Rpb25hcnk8Ym9vbGVhbj4oKTtcblx0cHJpdmF0ZSB2aXNpYmlsaXR5U3RhdGUgPSB0cnVlO1xuXG5cdHByb3RlY3RlZCB0b3VjaGVkID0gZmFsc2U7XG5cdHByb3RlY3RlZCBkb21VdGlsOiBEb21VdGlsO1xuXG5cdHByb3RlY3RlZCBoYXNWYWx1ZURlcGVuZGVuY3k6IGFueTtcblx0cHJvdGVjdGVkIG5vVmFsdWVEZXBlbmRlbmN5OiBhbnk7XG5cdHByb3RlY3RlZCBkZXBlbmRlbmNpZXM6IGFueVtdO1xuXG5cdHB1YmxpYyBvbkNoYW5nZSA9IG5ldyBDdXN0b21FbGVtZW50RXZlbnQ8Q3VzdG9tRWxlbWVudEV2ZW50QXJncz4oKTtcblx0cHVibGljIG9uVmFsaWRhdGUgPSBuZXcgQ3VzdG9tRWxlbWVudEV2ZW50PEN1c3RvbUVsZW1lbnRFdmVudEFyZ3M+KCk7XG5cdHB1YmxpYyBvblZpc2liaWxpdHlDaGFuZ2VkID0gbmV3IEN1c3RvbUVsZW1lbnRFdmVudDxDdXN0b21FbGVtZW50RXZlbnRBcmdzPigpO1xuXG5cdHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cdHB1YmxpYyBvcHRpb25zOiBhbnlbXTtcblx0cHVibGljIG9wdGlvbnNXaXRoRGVzY3JpcHRpb25zOiBPcHRpb25XaXRoRGVzY3JpcHRpb25bXTtcblx0cHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuXHRwdWJsaWMgY3VzdG9tVmFsdWU6IHN0cmluZztcblx0cHVibGljIGFsbERlcGVuZGVuY2llc011c3RCZU1ldDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgbXVsdGk6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIG1heDogYW55O1xuXHRwdWJsaWMgbWluOiBhbnk7XG5cdHB1YmxpYyBzdGVwOiBhbnk7XG5cdHB1YmxpYyBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG5cdGFic3RyYWN0IHNldCB2YWx1ZSh2YWx1ZSk7XG5cdGFic3RyYWN0IGdldCB2YWxpZCgpOiBib29sZWFuO1xuXG5cdGFic3RyYWN0IGluaXRDaGlsZElucHV0cygpOiB2b2lkO1xuXHRhYnN0cmFjdCB2YWxpZGF0ZSgpOiB2b2lkO1xuXHRhYnN0cmFjdCBjaGFuZ2UoJGV2ZW50KTogdm9pZDtcblxuXHRjb21wYXJlVmxhdWVzID0gW107XG5cblx0aXNWYWx1ZUNvbmRpdGlvbk1hdGNoZWQodmFsOiBhbnkpIHtcblx0XHRpZiAodmFsICYmIEFycmF5LmlzQXJyYXkodmFsKSAmJiB2YWwubGVuZ3RoKSB7XG5cdFx0XHRsZXQgcmVzdWx0ID0gZmFsc2U7XG5cdFx0XHR2YWwuZm9yRWFjaChlbGVtZW50ID0+IHtcblx0XHRcdFx0Y29uc3QgZWxlbWVudE1hdGNoZWQgPSB0aGlzLmNvbXBhcmVWbGF1ZXMuZmluZEluZGV4KHggPT4geCA9PSBlbGVtZW50KSAhPT0gLTE7XG5cdFx0XHRcdGlmIChlbGVtZW50TWF0Y2hlZCkge1xuXHRcdFx0XHRcdHJlc3VsdCA9IHRydWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmNvbXBhcmVWbGF1ZXMuZmluZEluZGV4KHggPT4geCA9PSB2YWwpICE9PSAtMTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHRoaXMuaW5pdCgpO1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlcygpO1xuXHR9XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG5cdFx0dGhpcy5kb21VdGlsID0gbmV3IERvbVV0aWwodGhpcyk7XG5cdFx0dGhpcy5wYXJzZURhdGEoKTtcblx0XHR0aGlzLmluaXRDaGlsZElucHV0cygpO1xuXHRcdHRoaXMuYmluZEV2ZW50cygpO1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlcygpO1xuXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsICgpID0+IHtcblx0XHRcdHRoaXMuYmluZERlcGVuZGVuY2llcygpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBwYXJzZURhdGEoKTogdm9pZCB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghKHRoaXMuY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBIVE1MU2NyaXB0RWxlbWVudCkpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0bGV0IGRhdGEgPSBKU09OLnBhcnNlKHRoaXMuY2hpbGRyZW5bMF0uaW5uZXJIVE1MKTtcblx0XHRcdHRoaXMub3B0aW9ucyA9IGRhdGEub3B0aW9ucztcblx0XHRcdHRoaXMub3B0aW9uc1dpdGhEZXNjcmlwdGlvbnMgPSBkYXRhLm9wdGlvbnNXaXRoRGVzY3JpcHRpb25zO1xuXHRcdFx0dGhpcy5oYXNWYWx1ZURlcGVuZGVuY3kgPSBkYXRhLmhhc1ZhbHVlRGVwZW5kZW5jeTtcblx0XHRcdHRoaXMubm9WYWx1ZURlcGVuZGVuY3kgPSBkYXRhLm5vVmFsdWVEZXBlbmRlbmN5O1xuXHRcdFx0dGhpcy5kZXBlbmRlbmNpZXMgPSBkYXRhLmRlcGVuZGVuY2llcztcblx0XHRcdHRoaXMucmVxdWlyZWQgPSBkYXRhLnJlcXVpcmVkO1xuXHRcdFx0dGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGRhdGEucGxhY2Vob2xkZXI7XG5cdFx0XHR0aGlzLmFsbERlcGVuZGVuY2llc011c3RCZU1ldCA9IGRhdGEuYWxsRGVwZW5kZW5jaWVzTXVzdEJlTWV0O1xuXHRcdFx0dGhpcy5tdWx0aSA9IGRhdGEubXVsdGk7XG5cdFx0XHR0aGlzLm1heCA9IGRhdGEubWF4O1xuXHRcdFx0dGhpcy5taW4gPSBkYXRhLm1pbjtcblx0XHRcdHRoaXMuc3RlcCA9IGRhdGEuc3RlcDtcblx0XHRcdHRoaXMuY3VzdG9tVmFsdWUgPSBkYXRhLnZhbHVlO1xuXHRcdFx0dGhpcy5kYXRlRm9ybWF0ID0gZGF0YS5kYXRlRm9ybWF0O1xuXHRcdH0gY2F0Y2ggKGV4KSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGV4KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGJpbmRFdmVudHMoKTogdm9pZCB7XG5cdFx0dGhpcy5vblZhbGlkYXRlLm9uKGUgPT4ge1xuXHRcdFx0aWYgKHRoaXMudmFsaWQpIHtcblx0XHRcdFx0aWYgKHRoaXMuY2xvc2VzdCgnLmN1c3RvbS12YWxpZGF0aW9uLXRhcmdldCcpKSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykuY2xhc3NMaXN0LnJlbW92ZShcImludmFsaWRcIik7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykuY2xhc3NMaXN0LmFkZChcInZhbGlkXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykpIHtcblx0XHRcdFx0XHR0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKS5jbGFzc0xpc3QuYWRkKFwiaW52YWxpZFwiKTtcblx0XHRcdFx0XHR0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKS5jbGFzc0xpc3QucmVtb3ZlKFwidmFsaWRcIik7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kb21VdGlsLmZvY3VzKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy5vbkNoYW5nZS5vbihlID0+IHtcblx0XHRcdGlmICh0aGlzLnRvdWNoZWQpIHtcblx0XHRcdFx0dGhpcy52YWxpZGF0ZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlKFwiY3VzdG9tLWlucHV0XCIsIFwiXCIpO1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlKFwibmFtZVwiLCB0aGlzLm5hbWUpO1xuXHR9XG5cblx0cHJpdmF0ZSBiaW5kRGVwZW5kZW5jaWVzKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmhhc1ZhbHVlRGVwZW5kZW5jeSAmJiB0aGlzLmhhc1ZhbHVlRGVwZW5kZW5jeS5pdGVtcy5sZW5ndGgpIHtcblx0XHRcdGZvciAoY29uc3QgZmllbGROYW1lIG9mIHRoaXMuaGFzVmFsdWVEZXBlbmRlbmN5Lml0ZW1zKSB7XG5cdFx0XHRcdHRoaXMuYmluZERlcGVuZGVuY3koZmllbGROYW1lLCBcImhhc1wiKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5ub1ZhbHVlRGVwZW5kZW5jeSAmJiB0aGlzLm5vVmFsdWVEZXBlbmRlbmN5Lml0ZW1zLmxlbmd0aCkge1xuXHRcdFx0Zm9yIChjb25zdCBmaWVsZE5hbWUgb2YgdGhpcy5ub1ZhbHVlRGVwZW5kZW5jeS5pdGVtcykge1xuXHRcdFx0XHR0aGlzLmJpbmREZXBlbmRlbmN5KGZpZWxkTmFtZSwgXCJub1wiKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5kZXBlbmRlbmNpZXMgJiYgdGhpcy5kZXBlbmRlbmNpZXMubGVuZ3RoKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGluZGV4IGluIHRoaXMuZGVwZW5kZW5jaWVzKSB7XG5cdFx0XHRcdGlmICh0aGlzLmRlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShpbmRleCkpIHtcblx0XHRcdFx0XHRjb25zdCBkZXBlbmRlbmN5ID0gdGhpcy5kZXBlbmRlbmNpZXNbaW5kZXhdO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZmllbGROYW1lIG9mIGRlcGVuZGVuY3kuaXRlbXMpIHtcblx0XHRcdFx0XHRcdHRoaXMuYmluZERlcGVuZGVuY3koXG5cdFx0XHRcdFx0XHRcdGZpZWxkTmFtZSxcblx0XHRcdFx0XHRcdFx0XCJjdXN0b21cIixcblx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeS52YWx1ZSxcblx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeS5jcml0ZXJpYSxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBiaW5kRGVwZW5kZW5jeShlbGVtZW50TmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nLCBjcml0ZXJpYT86IHN0cmluZywpOiB2b2lkIHtcblx0XHRsZXQgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtuYW1lPVwiJHtlbGVtZW50TmFtZX1cIl1gKSBhcyBDdXN0b21JbnB1dEVsZW1lbnQ7XG5cdFx0aWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBDdXN0b21JbnB1dEVsZW1lbnQpIHtcblx0XHRcdGVsZW1lbnQuY29tcGFyZVZsYXVlcy5wdXNoKHZhbHVlKTtcblx0XHRcdGlmICh0aGlzLmRlcGVuZGVudE9uTGlzdC5oYXNPd25Qcm9wZXJ0eShlbGVtZW50Lm5hbWUpKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGxldCBpc1Zpc2libGVCeURlZmF1bHQgPSB0eXBlID09PSBcIm5vXCI7XG5cdFx0XHRlbGVtZW50LlJlZ2lzdGVyRGVwZW5kZW50T24odGhpcy5uYW1lLCBpc1Zpc2libGVCeURlZmF1bHQpO1xuXHRcdFx0dGhpcy5vbkNoYW5nZS5vbihlID0+IHtcblx0XHRcdFx0bGV0IElzQ29uZGl0aW9uTWF0Y2hlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZiAodHlwZSA9PT0gXCJoYXNcIikge1xuXHRcdFx0XHRcdElzQ29uZGl0aW9uTWF0Y2hlZCA9ICEhZS52YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodHlwZSA9PT0gXCJub1wiKSB7XG5cdFx0XHRcdFx0SXNDb25kaXRpb25NYXRjaGVkID0gIWUudmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHR5cGUgPT09IFwiY3VzdG9tXCIpIHtcblx0XHRcdFx0XHRpZiAoY3JpdGVyaWEgPT09IFwiRXhhY3RcIikge1xuXHRcdFx0XHRcdFx0SXNDb25kaXRpb25NYXRjaGVkID0gZWxlbWVudC5pc1ZhbHVlQ29uZGl0aW9uTWF0Y2hlZChlLnZhbHVlKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRlcmlhID09PSBcIkxlc3NUaGFuXCIpIHtcblx0XHRcdFx0XHRcdElzQ29uZGl0aW9uTWF0Y2hlZCA9IGUudmFsdWUgPCB2YWx1ZTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRlcmlhID09PSBcIk1vcmVUaGFuXCIpIHtcblx0XHRcdFx0XHRcdElzQ29uZGl0aW9uTWF0Y2hlZCA9IGUudmFsdWUgPiB2YWx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxlbWVudC5EZXBlbmRlbnRPblN0YXRlQ2hhbmdlZCh0aGlzLm5hbWUsIElzQ29uZGl0aW9uTWF0Y2hlZCk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlZC5vbihlID0+IHtcblx0XHRcdFx0aWYgKHRoaXMudmlzaWJpbGl0eVN0YXRlKSB7XG5cdFx0XHRcdFx0dGhpcy5vbkNoYW5nZS5lbWl0KFxuXHRcdFx0XHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgXCJjaGFuZ2VcIiksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRlbGVtZW50LkRlcGVuZGVudE9uU3RhdGVDaGFuZ2VkKHRoaXMubmFtZSwgZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHNldFZpc2liaWxpdHkoKSB7XG5cdFx0aWYgKHRoaXMuYWxsRGVwZW5kZW5jaWVzTXVzdEJlTWV0KSB7XG5cdFx0XHR0aGlzLnZpc2liaWxpdHlTdGF0ZSA9IE9iamVjdC52YWx1ZXModGhpcy5kZXBlbmRlbnRPbkxpc3QpLmV2ZXJ5KHN0YXRlID0+IHN0YXRlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy52aXNpYmlsaXR5U3RhdGUgPSBPYmplY3QudmFsdWVzKHRoaXMuZGVwZW5kZW50T25MaXN0KS5zb21lKHN0YXRlID0+IHN0YXRlKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy52aXNpYmlsaXR5U3RhdGUpIHtcblx0XHRcdHRoaXMuc2hvdygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmhpZGUoKTtcblx0XHR9XG5cdFx0dGhpcy5vblZpc2liaWxpdHlDaGFuZ2VkLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgXCJWaXNpYmlsaXR5Q2hhbmdlZFwiKSk7XG5cdH1cblxuXHRwcml2YXRlIGhpZGUoKSB7XG5cdFx0dGhpcy5zZXRBdHRyaWJ1dGUoXCJoaWRkZW5cIiwgXCJcIik7XG5cdFx0aWYgKHRoaXMuY2xvc2VzdCgnLmN1c3RvbS12YWxpZGF0aW9uLXRhcmdldCcpKSB7XG5cdFx0XHR0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKS5zZXRBdHRyaWJ1dGUoXCJoaWRkZW5cIiwgXCJcIik7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzaG93KCkge1xuXHRcdHRoaXMucmVtb3ZlQXR0cmlidXRlKFwiaGlkZGVuXCIpO1xuXHRcdGlmICh0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKSkge1xuXHRcdFx0dGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykucmVtb3ZlQXR0cmlidXRlKFwiaGlkZGVuXCIpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBnZXRDaGlsZElucHV0KHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50IHtcblx0XHRsZXQgZWxlbWVudDogYW55ID0gdGhpcztcblx0XHRpZiAodGhpcy5zaGFkb3dSb290KSB7XG5cdFx0XHRlbGVtZW50ID0gdGhpcy5zaGFkb3dSb290O1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXHR9XG5cblx0cHJvdGVjdGVkIGdldENoaWxkSW5wdXRzKHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50W10ge1xuXHRcdGxldCBlbGVtZW50OiBhbnkgPSB0aGlzO1xuXHRcdGlmICh0aGlzLnNoYWRvd1Jvb3QpIHtcblx0XHRcdGVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q7XG5cdFx0fVxuXHRcdHJldHVybiBBcnJheVV0aWwuRnJvbU5vZGVMaXN0KFxuXHRcdFx0ZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSxcblx0XHQpIGFzIEhUTUxJbnB1dEVsZW1lbnRbXTtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRDaGlsZEVsZW1lbnQoc2VsZWN0b3I6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcblx0XHRsZXQgZWxlbWVudDogYW55ID0gdGhpcztcblx0XHRpZiAodGhpcy5zaGFkb3dSb290KSB7XG5cdFx0XHRlbGVtZW50ID0gdGhpcy5zaGFkb3dSb290O1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSBhcyBIVE1MRWxlbWVudDtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRDaGlsZEVsZW1lbnRzKHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MRWxlbWVudFtdIHtcblx0XHRsZXQgZWxlbWVudDogYW55ID0gdGhpcztcblx0XHRpZiAodGhpcy5zaGFkb3dSb290KSB7XG5cdFx0XHRlbGVtZW50ID0gdGhpcy5zaGFkb3dSb290O1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSBhcyBIVE1MRWxlbWVudFtdO1xuXHR9XG5cblx0cHVibGljIFJlZ2lzdGVyRGVwZW5kZW50T24obmFtZTogc3RyaW5nLCBpbml0aWFsVmFsdWU6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdHRoaXMuZGVwZW5kZW50T25MaXN0W25hbWVdID0gaW5pdGlhbFZhbHVlO1xuXHRcdHRoaXMuc2V0VmlzaWJpbGl0eSgpO1xuXHR9XG5cblx0cHVibGljIERlcGVuZGVudE9uU3RhdGVDaGFuZ2VkKG5hbWU6IHN0cmluZywgc3RhdGU6IGJvb2xlYW4pIHtcblx0XHRpZiAodGhpcy5kZXBlbmRlbnRPbkxpc3QuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcblx0XHRcdHRoaXMuZGVwZW5kZW50T25MaXN0W25hbWVdID0gc3RhdGU7XG5cdFx0fVxuXHRcdHRoaXMuc2V0VmlzaWJpbGl0eSgpO1xuXHR9XG59XG4iLCJleHBvcnQgZGVmYXVsdCBhYnN0cmFjdCBjbGFzcyBCYXNlRGljdGlvbmFyeSB7XG5cdGFic3RyYWN0IGRpY3Rpb25hcnk6IGFueTtcblxuXHRnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGtleVBhcnRzID0ga2V5LnNwbGl0KCcuJyk7XG5cdFx0dmFyIHJlc3VsdDogc3RyaW5nIHwgYW55ID0gdGhpcy5kaWN0aW9uYXJ5O1xuXHRcdGtleVBhcnRzLmZvckVhY2goa2V5UGFydCA9PiB7XG5cdFx0XHRyZXN1bHQgPSByZXN1bHRba2V5UGFydF07XG5cdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRyZXN1bHQgPSBrZXk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3plY2hEaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc2FcIixcbiAgICAgICAgICAgIENpdHk6IFwibcSbc3RvXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcInplbcSbXCIsXG4gICAgICAgICAgICBaaXA6IFwicG/FoXRvdm7DrSBzbcSbcm92YWPDrSDEjcOtc2xvXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiw5rEjWV0XCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiUmVnaXN0cmHEjW7DrSDEjcOtc2xvXCJcbiAgICAgICAgfVxuICAgIH07XG5cbn1cbiIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhbmlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cblx0ZGljdGlvbmFyeTogYW55ID0ge1xuXHRcdEFkZHJlc3NFbGVtZW50OiB7XG5cdFx0XHRBZGRyZXNzOiBcImFkcmVzc2VcIixcblx0XHRcdENpdHk6IFwiYnlcIixcblx0XHRcdENvdW50cnk6IFwibGFuZFwiLFxuXHRcdFx0WmlwOiBcInBvc3RudW1tZXJcIlxuXHRcdH0sXG5cdFx0QmFua0VsZW1lbnQ6IHtcblx0XHRcdEFjY291bnQ6IFwiS29udG9udW1tZXJcIixcblx0XHRcdFJlZ2lzdHJhdGlvbk51bWJlcjogXCJSZWdpc3RyZXJpbmdzbnVtbWVyXCJcblx0XHR9XG5cdH07XG5cbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEdXRjaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cbiAgICBkaWN0aW9uYXJ5OiBhbnkgPSB7XG4gICAgICAgIEFkZHJlc3NFbGVtZW50OiB7XG4gICAgICAgICAgICBBZGRyZXNzOiBcImFkcmVzXCIsXG4gICAgICAgICAgICBDaXR5OiBcInN0YWRcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwibGFuZFwiLFxuICAgICAgICAgICAgWmlwOiBcInBvc3Rjb2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua3Jla2VuaW5nXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiQmFua3Jla2VuaW5nIFJlZ2lzdHJhdGllbnVtbWVyXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW5nbGlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cblx0ZGljdGlvbmFyeTogYW55ID0ge1xuXHRcdEFkZHJlc3NFbGVtZW50OiB7XG5cdFx0XHRBZGRyZXNzOiBcImFkZHJlc3NcIixcblx0XHRcdENpdHk6IFwiY2l0eVwiLFxuXHRcdFx0Q291bnRyeTogXCJjb3VudHJ5XCIsXG5cdFx0XHRaaXA6IFwiemlwXCJcblx0XHR9LFxuXHRcdEJhbmtFbGVtZW50OiB7XG5cdFx0XHRBY2NvdW50OiBcIkJhbmsgQWNjb3VudFwiLFxuXHRcdFx0UmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmsgQWNjb3VudCBSZWdpc3RyYXRpb24gTnVtYmVyXCJcblx0XHR9XG5cdH07XG5cbn1cbiIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVzdG9uaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiYWFkcmVzc1wiLFxuICAgICAgICAgICAgQ2l0eTogXCJsaW5uXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcInJpaWtcIixcbiAgICAgICAgICAgIFppcDogXCJwb3N0aWluZGVrc1wiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIlBhbmdha29udG9cIixcbiAgICAgICAgICAgIFJlZ2lzdHJhdGlvbk51bWJlcjogXCJQYW5nYWtvbnRvIHJlZ2lzdHJlZXJpbWlzbnVtYmVyXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlubmlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG4gICAgXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJvc29pdGVcIixcbiAgICAgICAgICAgIENpdHk6IFwia2F1cHVua2lcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwibWFhXCIsXG4gICAgICAgICAgICBaaXA6IFwicG9zdGludW1lcm9cIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJQYW5ra2l0aWxpXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiUGFua2tpdGlsaW4gcmVraXN0ZXLDtmludGludW1lcm9cIlxuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmVuY2hEaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc3NlXCIsXG4gICAgICAgICAgICBDaXR5OiBcInZpbGxlXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcInBheXNcIixcbiAgICAgICAgICAgIFppcDogXCJjb2RlIHBvc3RhbFwiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkNvbXB0ZSBiYW5jYWlyZVwiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIk51bcOpcm8gZCdlbnJlZ2lzdHJlbWVudCBkdSBjb21wdGUgYmFuY2FpcmVcIlxuICAgICAgICB9XG4gICAgfTtcblxufSIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdlcm1hbkRpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cbiAgICBkaWN0aW9uYXJ5OiBhbnkgPSB7XG4gICAgICAgIEFkZHJlc3NFbGVtZW50OiB7XG4gICAgICAgICAgICBBZGRyZXNzOiBcIkFkcmVzc2VcIixcbiAgICAgICAgICAgIENpdHk6IFwiU3RhZHRcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwiTGFuZFwiLFxuICAgICAgICAgICAgWmlwOiBcIlBvc3RsZWl0emFobFwiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkJhbmtrb250b1wiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmtrb250b3JlZ2lzdHJpZXJ1bmdzbnVtbWVyXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR3JlZWtEaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCLOtM65zrXPjc64z4XOvc+DzrdcIixcbiAgICAgICAgICAgIENpdHk6IFwiz4DPjM67zrdcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwiz4fPjs+BzrFcIixcbiAgICAgICAgICAgIFppcDogXCLPhM6xz4fPhc60z4HOv868zrnOus+Mz4IgzrrPjs60zrnOus6xz4JcIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCLOpM+BzrHPgM61zrbOuc66z4zPgiDOu86/zrPOsc+BzrnOsc+DzrzPjM+CXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwizpHPgc65zrjOvM+Mz4IgzrXOs86zz4HOsc+Gzq7PgiDPhM+BzrHPgM61zrbOuc66zr/PjSDOu86/zrPOsc+BzrnOsc+DzrzOv8+NXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHVuZ2FyaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiY8OtbVwiLFxuICAgICAgICAgICAgQ2l0eTogXCJ2w6Fyb3NcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwib3JzesOhZ1wiLFxuICAgICAgICAgICAgWmlwOiBcImlyw6FuecOtdMOzc3rDoW1cIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJCYW5raSBzesOhbWxhXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiQmFua2kgc3rDoW1sYSByZWdpc3p0csOhY2nDs3Mgc3rDoW1hXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNlbGFuZGljRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiaGVpbWlsaXNmYW5nXCIsXG4gICAgICAgICAgICBDaXR5OiBcImJvcmdcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwibGFuZFwiLFxuICAgICAgICAgICAgWmlwOiBcInDDs3N0bsO6bWVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua2FyZWlrbmluZ3VyXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiTsO6bWVyIHNrcsOhbmluZ2FyIMOhIGJhbmthcmVpa25pbmdpXCJcbiAgICAgICAgfVxuICAgIH07XG5cbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGFsaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiaW5kaXJpenpvXCIsXG4gICAgICAgICAgICBDaXR5OiBcImNpdHTDoFwiLFxuICAgICAgICAgICAgQ291bnRyeTogXCJuYXppb25lXCIsXG4gICAgICAgICAgICBaaXA6IFwiY29kaWNlIHBvc3RhbGVcIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJjb250byBiYW5jYXJpb1wiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIk51bWVybyBkaSByZWdpc3RyYXppb25lIGRlbCBjb250byBiYW5jYXJpb1wiXG4gICAgICAgIH1cbiAgICB9O1xuICAgIFxufSIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExhdHZpYW5EaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc2VcIixcbiAgICAgICAgICAgIENpdHk6IFwicGlsc8STdGFcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwidmFsc3RzXCIsXG4gICAgICAgICAgICBaaXA6IFwicGFzdGEgaW5kZWtzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkJhbmthcyBrb250c1wiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmthcyBrb250YSByZcSjaXN0csSBY2lqYXMgbnVtdXJzXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl0dWFuaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiYWRyZXNhc1wiLFxuICAgICAgICAgICAgQ2l0eTogXCJtaWVzdGFzXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcIsWhYWxpc1wiLFxuICAgICAgICAgICAgWmlwOiBcInBhxaF0byBrb2Rhc1wiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkJhbmtvIHPEhXNrYWl0YVwiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmtvIHPEhXNrYWl0b3MgcmVnaXN0cmFjaWpvcyBudW1lcmlzXCJcbiAgICAgICAgfVxuICAgIH07XG5cbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb3J3ZWdpYW5EaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc3NlXCIsXG4gICAgICAgICAgICBDaXR5OiBcImJ5XCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcImxhbmRcIixcbiAgICAgICAgICAgIFppcDogXCJwb3N0bnVtbWVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua2tvbnRvXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiUmVnaXN0cmVyaW5nc251bW1lciBmb3IgYmFua2tvbnRvXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9saXNoRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiYWRyZXNcIixcbiAgICAgICAgICAgIENpdHk6IFwibWlhc3RvXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcImtyYWpcIixcbiAgICAgICAgICAgIFppcDogXCJrb2QgcG9jenRvd3lcIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJLb250byBiYW5rb3dlXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiTnVtZXIgcmVqZXN0cmFjeWpueSBrb250YSBiYW5rb3dlZ29cIlxuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3J0dWd1ZXNlRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiZW5kZXJlw6dvXCIsXG4gICAgICAgICAgICBDaXR5OiBcImNpZGFkZVwiLFxuICAgICAgICAgICAgQ291bnRyeTogXCJwYcOtc1wiLFxuICAgICAgICAgICAgWmlwOiBcImPDs2RpZ28gcG9zdGFsXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQ29udGEgYmFuY8OhcmlhXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiTsO6bWVybyBkZSByZWdpc3RybyBkYSBjb250YSBiYW5jw6FyaWFcIlxuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTcGFuaXNoRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiZGlyZWNjacOzblwiLFxuICAgICAgICAgICAgQ2l0eTogXCJjaXVkYWRcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwicGHDrXNcIixcbiAgICAgICAgICAgIFppcDogXCJjw7NkaWdvIHBvc3RhbFwiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkN1ZW50YSBiYW5jYXJpYVwiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIk7Dum1lcm8gZGUgcmVnaXN0cm8gZGUgY3VlbnRhIGJhbmNhcmlhXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3dlZGlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cbiAgICBkaWN0aW9uYXJ5OiBhbnkgPSB7XG4gICAgICAgIEFkZHJlc3NFbGVtZW50OiB7XG4gICAgICAgICAgICBBZGRyZXNzOiBcImFkcmVzc1wiLFxuICAgICAgICAgICAgQ2l0eTogXCJzdGFkXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcImxhbmRcIixcbiAgICAgICAgICAgIFppcDogXCJwb3N0bnVtbWVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua2tvbnRvXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiQmFua2tvbnRvcmVnaXN0cmVyaW5nc251bW1lclwiXG4gICAgICAgIH1cbiAgICB9O1xuICAgIFxufSIsImltcG9ydCBEYW5pc2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9EYW5pc2hEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgRW5nbGlzaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0VuZ2xpc2hEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgQ3plY2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9DemVjaERpY3Rpb25hcnlcIjtcbmltcG9ydCBHZXJtYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9HZXJtYW5EaWN0aW9uYXJ5XCI7XG5pbXBvcnQgR3JlZWtEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9HcmVla0RpY3Rpb25hcnlcIjtcbmltcG9ydCBTcGFuaXNoRGljdGlvbmFyeSBmcm9tIFwiLi9MYW5ndWFnZXMvU3BhbmlzaERpY3Rpb25hcnlcIjtcbmltcG9ydCBFc3RvbmlhbkRpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0VzdG9uaWFuRGljdGlvbmFyeVwiO1xuaW1wb3J0IEZpbm5pc2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9GaW5uaXNoRGljdGlvbmFyeVwiO1xuaW1wb3J0IEZyZW5jaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0ZyZW5jaERpY3Rpb25hcnlcIjtcbmltcG9ydCBIdW5nYXJpYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9IdW5nYXJpYW5EaWN0aW9uYXJ5XCI7XG5pbXBvcnQgSWNlbGFuZGljRGljdGlvbmFyeSBmcm9tIFwiLi9MYW5ndWFnZXMvSWNlbGFuZGljRGljdGlvbmFyeVwiO1xuaW1wb3J0IEl0YWxpYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9JdGFsaWFuRGljdGlvbmFyeVwiO1xuaW1wb3J0IExhdHZpYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9MYXR2aWFuRGljdGlvbmFyeVwiO1xuaW1wb3J0IExpdHVhbmlhbkRpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0xpdHVhbmlhbkRpY3Rpb25hcnlcIjtcbmltcG9ydCBEdXRjaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0R1dGNoRGljdGlvbmFyeVwiO1xuaW1wb3J0IE5vcndlZ2lhbkRpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL05vcndlZ2lhbkRpY3Rpb25hcnlcIjtcbmltcG9ydCBQb2xpc2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9Qb2xpc2hEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgUG9ydHVndWVzZURpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL1BvcnR1Z3Vlc2VEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgU3dlZGlzaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL1N3ZWRpc2hEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zbGF0b3Ige1xuXHRwcml2YXRlIHN0YXRpYyBsYW5nYXVnZXMgPSBbXG5cdFx0J2VuJyxcblx0XHQnZGEnLFxuICAgICAgICAnY3MnLFxuICAgICAgICAnZGUnLFxuICAgICAgICAnZWwnLFxuICAgICAgICAnZXMnLFxuICAgICAgICAnZXQnLFxuICAgICAgICAnZmknLFxuICAgICAgICAnZnInLFxuICAgICAgICAnaHUnLFxuICAgICAgICAnaXMnLFxuICAgICAgICAnaXQnLFxuICAgICAgICAnbHQnLFxuICAgICAgICAnbHYnLFxuICAgICAgICAnbmwnLFxuICAgICAgICAnbm8nLFxuICAgICAgICAncGwnLFxuICAgICAgICAncHQnLFxuICAgICAgICAnc3YnLFxuXHRdO1xuXG5cdHByaXZhdGUgc3RhdGljIGRhbmlzaERpY3Rpb25hcnkgPSBuZXcgRGFuaXNoRGljdGlvbmFyeSgpO1xuXHRwcml2YXRlIHN0YXRpYyBlbmdsaXNoRGljdGlvbmFyeSA9IG5ldyBFbmdsaXNoRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIGN6ZWNoRGljdGlvbmFyeSA9IG5ldyBDemVjaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBnZXJtYW5EaWN0aW9uYXJ5ID0gbmV3IEdlcm1hbkRpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBncmVla0RpY3Rpb25hcnkgPSBuZXcgR3JlZWtEaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgc3BhbmlzaERpY3Rpb25hcnkgPSBuZXcgU3BhbmlzaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBlc3RvbmlhbkRpY3Rpb25hcnkgPSBuZXcgRXN0b25pYW5EaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgZmlubmlzaERpY3Rpb25hcnkgPSBuZXcgRmlubmlzaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBmcmVuY2hEaWN0aW9uYXJ5ID0gbmV3IEZyZW5jaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBodW5nYXJpYW5EaWN0aW9uYXJ5ID0gbmV3IEh1bmdhcmlhbkRpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBpY2VsYW5kaWNEaWN0aW9uYXJ5ID0gbmV3IEljZWxhbmRpY0RpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBpdGFsaWFuRGljdGlvbmFyeSA9IG5ldyBJdGFsaWFuRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIGxhdHZpYW5EaWN0aW9uYXJ5ID0gbmV3IExhdHZpYW5EaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbGl0dWFuaWFuRGljdGlvbmFyeSA9IG5ldyBMaXR1YW5pYW5EaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgZHV0Y2hEaWN0aW9uYXJ5ID0gbmV3IER1dGNoRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIG5vcndlZ2lhbkRpY3Rpb25hcnkgPSBuZXcgTm9yd2VnaWFuRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIHBvbGlzaERpY3Rpb25hcnkgPSBuZXcgUG9saXNoRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIHBvcnR1Z3Vlc2VEaWN0aW9uYXJ5ID0gbmV3IFBvcnR1Z3Vlc2VEaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgc3dlZGlzaERpY3Rpb25hcnkgPSBuZXcgU3dlZGlzaERpY3Rpb25hcnkoKTtcblxuXHRzdGF0aWMgVHJhbnNsYXRlKGtleTogc3RyaW5nLCBsYW5ndWFnZSA9ICdkYScpOiBzdHJpbmcge1xuXHRcdGxhbmd1YWdlID0gbGFuZ3VhZ2UudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBpc1N1cHBvcnRlZExhbmd1YWdlID0gVHJhbnNsYXRvci5sYW5nYXVnZXMuaW5kZXhPZihsYW5ndWFnZSkgIT0gLTE7XG5cdFx0aWYgKCFpc1N1cHBvcnRlZExhbmd1YWdlKSB7XG5cdFx0XHRsYW5ndWFnZSA9ICdkYSdcblx0XHR9XG5cdFx0c3dpdGNoIChsYW5ndWFnZSkge1xuXHRcdFx0Y2FzZSAnZGEnOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5kYW5pc2hEaWN0aW9uYXJ5LmdldChrZXkpO1xuXHRcdFx0Y2FzZSAnZW4nOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5lbmdsaXNoRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ2NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jemVjaERpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdkZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2VybWFuRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ2VsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ncmVla0RpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdlcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbmlzaERpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdldCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXN0b25pYW5EaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnZmknOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbm5pc2hEaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnZnInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZyZW5jaERpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdodSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHVuZ2FyaWFuRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ2lzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pY2VsYW5kaWNEaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnaXQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLml0YWxpYW5EaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnbHQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxhdHZpYW5EaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnbHYnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxpdHVhbmlhbkRpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdubCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZHV0Y2hEaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnbm8nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5vcndlZ2lhbkRpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdwbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9saXNoRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ3B0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3J0dWd1ZXNlRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ3N2JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zd2VkaXNoRGljdGlvbmFyeS5nZXQoa2V5KTtcblx0XHR9XG5cdH1cbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVOYW1lc1BvbHlmaWxsKCkge1xuXHRpZiAoRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTmFtZXMgPT0gdW5kZWZpbmVkKSB7XG5cdFx0RWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTmFtZXMgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHR2YXIgYXR0cmlidXRlcyA9IHRoaXMuYXR0cmlidXRlcztcblx0XHRcdHZhciBsZW5ndGggPSBhdHRyaWJ1dGVzLmxlbmd0aDtcblx0XHRcdHZhciByZXN1bHQgPSBuZXcgQXJyYXkobGVuZ3RoKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0cmVzdWx0W2ldID0gYXR0cmlidXRlc1tpXS5uYW1lO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9O1xuXHR9XG59O1xuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXJyYXlVdGlsIHtcblx0cHVibGljIHN0YXRpYyBGcm9tTm9kZUxpc3Q8VCBleHRlbmRzIE5vZGU+KGxpc3Q6IE5vZGVMaXN0T2Y8VD4pOiBUW10ge1xuXHRcdHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBsaXN0IGFzIGFueSk7XG5cdH1cblxuXHRwcml2YXRlIHN0YXRpYyBhZGRUb0N1cnJlbnQ8VD4oY2h1bmtzOiBUW11bXSwgaXRlbTogVCkge1xuXHRcdGlmICghY2h1bmtzLmxlbmd0aCkge1xuXHRcdFx0Y2h1bmtzWzBdID0gW107XG5cdFx0fVxuXHRcdGNodW5rc1tjaHVua3MubGVuZ3RoIC0gMV0ucHVzaChpdGVtKTtcblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIGFkZFRvTmV3PFQ+KGNodW5rczogVFtdW10sIGl0ZW06IFQpIHtcblx0XHRjaHVua3NbY2h1bmtzLmxlbmd0aF0gPSBbXTtcblx0XHRjaHVua3NbY2h1bmtzLmxlbmd0aCAtIDFdLnB1c2goaXRlbSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGRpdmlkZUFjY29yZGluZ1Byb3BlcnR5PFQ+KGFycmF5OiBUW10sIHNlbGVjdG9yOiAoaXRlbTogVCkgPT4gYW55KTogVFtdW10ge1xuXHRcdGNvbnN0IGNodW5rcyA9IFtdO1xuXHRcdGNodW5rc1swXSA9IFthcnJheVswXV07XG5cdFx0YXJyYXkucmVkdWNlKChhLCBiKSA9PiB7XG5cdFx0XHRpZiAoc2VsZWN0b3IoYSkgPT09IHNlbGVjdG9yKGIpKSB7XG5cdFx0XHRcdHRoaXMuYWRkVG9DdXJyZW50KGNodW5rcywgYik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmFkZFRvTmV3KGNodW5rcywgYik7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYjtcblx0XHR9KTtcblx0XHRyZXR1cm4gY2h1bmtzO1xuXHR9XG59XG4iLCJpbXBvcnQgeyBWaWV3cG9ydFV0aWwgfSBmcm9tICcuL1ZpZXdwb3J0VXRpbCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERvbVV0aWwge1xuICAgIHByaXZhdGUgdmlld1BvcnRVdGlsOiBWaWV3cG9ydFV0aWw7XG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnQ7XG4gICAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudCkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLnZpZXdQb3J0VXRpbCA9IG5ldyBWaWV3cG9ydFV0aWwodGhpcy5lbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0YUF0dHIoYXR0cjogc3RyaW5nLCBkZWZhdWx0dmFsdWU/OiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKGBkYXRhLSR7YXR0cn1gKTtcblxuICAgICAgICByZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogZGVmYXVsdHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREYXRhQXR0cihhdHRyOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoYGRhdGEtJHthdHRyfWAsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0cihhdHRyOiBzdHJpbmcsIGRlZmF1bHR2YWx1ZT86IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cik7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBkZWZhdWx0dmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF0dHIoYXR0cjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlQXR0cihhdHRyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZURhdGFBdHRyKGF0dHI6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShgZGF0YS0ke2F0dHJ9YCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0F0dHIoYXR0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lmhhc0F0dHJpYnV0ZShhdHRyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hha2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwZW5kQ2xhc3MoJ3NoYWtlJyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDbGFzcygnc2hha2UnKTtcbiAgICAgICAgICAgICh0aGlzLmVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkucmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfSwgNjAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwZW5kQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDbGFzcygnZXJyb3InKTtcbiAgICAgICAgICAgICh0aGlzLmVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkucmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmlld1BvcnRVdGlsLklzVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVDbGFzcyhjbGFzc25hbWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NuYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwZW5kQ2xhc3MoY2xhc3NuYW1lKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzbmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENoaWxkRWxlbWVudEJ5QXR0ck5hbWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpcnN0TGV0dGVyID0gbmFtZS5yZXBsYWNlKC9eXFx3LywgYyA9PiBjLnRvVXBwZXJDYXNlKCkpO1xuICAgICAgICBjb25zdCBTdWJFbGVtZW50ID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICBgW25hbWU9XCIke2ZpcnN0TGV0dGVyfVwiXWAsXG4gICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKFN1YkVsZW1lbnQpIHtcbiAgICAgICAgICAgIFN1YkVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYXNDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdHlsZShydWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudClbcnVsZU5hbWVdO1xuICAgIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIERvbVV0aWxpdHkge1xuXG5cdC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEyMzA0NDUvamF2YXNjcmlwdC1yZWdleC1ob3ctdG8tYm9sZC1zcGVjaWZpYy13b3Jkcy13aXRoLXJlZ2V4XG5cdHN0YXRpYyBib2xkZW5UZXh0KGlucHV0VGV4dDogc3RyaW5nLCBtYXRjaGluZFRleHRUb0JvbGRlbjogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIGlucHV0VGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefCkoJyArIG1hdGNoaW5kVGV4dFRvQm9sZGVuICsgJykofCQpJywgJ2lnJyksICckMTxiPiQyPC9iPiQzJyk7XG5cdH1cbn0iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBNYWtlUmVxdWVzdCB7XG4gICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgaGVhZGVyczogYW55O1xuXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nID0gJ2dldCcsIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgICAgIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEhlYWRlcnMoaHR0cFJlcXVlc3Q6IFhNTEh0dHBSZXF1ZXN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyIGluIHRoaXMuaGVhZGVycykge1xuICAgICAgICAgICAgaHR0cFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihoZWFkZXIsIHRoaXMuaGVhZGVyc1toZWFkZXJdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbmQoZGF0YTogYW55ID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeG1sSHR0cFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0Lm9wZW4odGhpcy5tZXRob2QsIHRoaXMudXJsKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SGVhZGVycyh4bWxIdHRwUmVxdWVzdCk7XG4gICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5zdGF0dXMgPj0gMjAwICYmXG4gICAgICAgICAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LnN0YXR1cyA8IDMwMFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHhtbEh0dHBSZXF1ZXN0LnJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB4bWxIdHRwUmVxdWVzdC5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiB4bWxIdHRwUmVxdWVzdC5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogeG1sSHR0cFJlcXVlc3QucmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogeG1sSHR0cFJlcXVlc3Quc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiB4bWxIdHRwUmVxdWVzdC5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB4bWxIdHRwUmVxdWVzdC5yZXNwb25zZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5zZW5kKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJleHBvcnQgY2xhc3MgU3RyaW5nVXRpbCB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0Zvcm1hdChzdHI6IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC97KFxcZCspfS9nLCAobWF0Y2gsIGluZGV4KSA9PiBhcmdzW2luZGV4XSB8fCAnJyk7XG4gICAgfVxufSIsImV4cG9ydCBjbGFzcyBWaWV3cG9ydFV0aWwge1xuICAgIHByaXZhdGUgZWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gbnVsbCkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBJc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICgoYm91bmRzLnRvcCA+IDAgJiYgYm91bmRzLnRvcCA8IGlubmVySGVpZ2h0KSB8fFxuICAgICAgICAgICAgICAgIChib3VuZHMuYm90dG9tID4gMCAmJiBib3VuZHMuYm90dG9tIDwgaW5uZXJIZWlnaHQpKSAmJlxuICAgICAgICAgICAgKChib3VuZHMubGVmdCA+IDAgJiYgYm91bmRzLmxlZnQgPCBpbm5lcldpZHRoKSB8fFxuICAgICAgICAgICAgICAgIChib3VuZHMucmlnaHQgPiAwICYmIGJvdW5kcy5yaWdodCA8IGlubmVyV2lkdGgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBJc1BhcnRpYWxseVZpc2libGUoKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGJvdW5kcy50b3AgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmxlZnQgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmJvdHRvbSA8PSBpbm5lckhlaWdodCB8fFxuICAgICAgICAgICAgYm91bmRzLnJpZ2h0IDw9IGlubmVyV2lkdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSXNPZmZzZXRWaXNpYmxlKG9mZnNldDogbnVtYmVyID0gMzAwKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGJvdW5kcy50b3AgKyBvZmZzZXQgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmxlZnQgKyBvZmZzZXQgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmJvdHRvbSAtIG9mZnNldCA8PSBpbm5lckhlaWdodCB8fFxuICAgICAgICAgICAgYm91bmRzLnJpZ2h0IC0gb2Zmc2V0IDw9IGlubmVyV2lkdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgV2luZG93VG9wKG9mZnNldDogbnVtYmVyID0gMCkge1xuICAgICAgICBjb25zdCBZT2Zmc2V0ID1cbiAgICAgICAgICAgIHdpbmRvdy5wYWdlWU9mZnNldCB8fFxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHxcbiAgICAgICAgICAgIDA7XG4gICAgICAgIHJldHVybiBvZmZzZXQgPD0gWU9mZnNldDtcbiAgICB9XG59XG4iLCJ0eXBlIFByb2NlZHVyZSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xuXG5pbnRlcmZhY2UgRGVib3VuY2Uge1xuXHQoLi4uYXJnczogYW55W10pOiBhbnk7XG5cdGNsZWFyOiAoKSA9PiB2b2lkO1xuXHRmbHVzaDogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgZGVib3VuY2VyID0gKGZ1bmM6IFByb2NlZHVyZSwgd2FpdDogbnVtYmVyLCBpbW1lZGlhdGU6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuXHRsZXQgdGltZW91dDogbnVtYmVyIHwgbnVsbDtcblx0bGV0IGFyZ3M6IGFueTtcblx0bGV0IGNvbnRleHQ6IGFueTtcblx0bGV0IHJlc3VsdDogYW55O1xuXG5cdGNvbnN0IGxhdGVyID0gKCkgPT4ge1xuXHRcdHRpbWVvdXQgPSBudWxsO1xuXHRcdGlmICghaW1tZWRpYXRlKSB7XG5cdFx0XHRyZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuXHRcdFx0Y29udGV4dCA9IGFyZ3MgPSBudWxsO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBkZWJvdW5jZWRGdW5jOiBQcm9jZWR1cmUgPSBmdW5jdGlvbiAodGhpczogYW55KSB7XG5cdFx0Y29udGV4dCA9IHRoaXM7XG5cdFx0YXJncyA9IGFyZ3VtZW50cztcblx0XHRjb25zdCBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0O1xuXG5cdFx0aWYgKCF0aW1lb3V0KSB7XG5cdFx0XHR0aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuXHRcdH1cblxuXHRcdGlmIChjYWxsTm93KSB7XG5cdFx0XHRyZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuXHRcdFx0Y29udGV4dCA9IGFyZ3MgPSBudWxsO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH07XG5cblx0Y29uc3QgY2xlYXIgPSAoKSA9PiB7XG5cdFx0aWYgKHRpbWVvdXQpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblx0XHRcdHRpbWVvdXQgPSBudWxsO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBmbHVzaCA9ICgpID0+IHtcblx0XHRpZiAodGltZW91dCkge1xuXHRcdFx0cmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcblx0XHRcdGNvbnRleHQgPSBhcmdzID0gbnVsbDtcblxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuXHRcdFx0dGltZW91dCA9IG51bGw7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGRlYm91bmNlZDogRGVib3VuY2UgPSAoKCkgPT4ge1xuXHRcdGNvbnN0IGY6IGFueSA9IGRlYm91bmNlZEZ1bmM7XG5cdFx0Zi5jbGVhciA9IGNsZWFyO1xuXHRcdGYuZmx1c2ggPSBmbHVzaDtcblx0XHRyZXR1cm4gZjtcblx0fSkoKTtcblxuXHRyZXR1cm4gZGVib3VuY2VkO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZGVib3VuY2VyOyIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhbmtBY2NvdW50VmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuICAgIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIiwiaW1wb3J0IElWYWxpZGF0aW9uIGZyb20gJy4uL0lWYWxpZGF0b3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFua0FjY291bnRSZWdpc3RyYXRpb25OdW1iZXJWYWxpZGF0b3JcbiAgICBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhbmtJZE5vcndheVZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrTm9QZXJzb25udW1tZXIoaW5wdXQsIGFsbG93RW1wdHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tOb1BlcnNvbm51bW1lcihcbiAgICAgICAgaW5wdXQ6IHN0cmluZyxcbiAgICAgICAgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUsXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBhbGxvd0VtcHR5O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBlcnNvbm51bW1lcjogc3RyaW5nID0gaW5wdXQucmVwbGFjZSgnICcsICcnKS5yZXBsYWNlKCctJywgJycpO1xuICAgICAgICBjb25zdCByZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgIC9eKDBbMS05XXwxWzAtOV18MlswLTldfDNbMC0xXSkoMFsxLTldfDFbMC0yXSkoXFxkezJ9KShcXGR7NX0pJC8sXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZWdleC50ZXN0KHBlcnNvbm51bW1lcik7XG4gICAgfVxufVxuIiwiaW1wb3J0IElWYWxpZGF0aW9uIGZyb20gJy4uL0lWYWxpZGF0b3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFua0lkU3dlZGVuVmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuICAgIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTZVBlcnNvbm51bW1lcihpbnB1dCwgYWxsb3dFbXB0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1NlUGVyc29ubnVtbWVyKFxuICAgICAgICBpbnB1dDogc3RyaW5nLFxuICAgICAgICBhbGxvd0VtcHR5OiBib29sZWFuID0gdHJ1ZSxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsbG93RW1wdHk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVyc29ubnVtbWVyOiBzdHJpbmcgPSBpbnB1dC5yZXBsYWNlKCcgJywgJycpLnJlcGxhY2UoJy0nLCAnJyk7XG4gICAgICAgIGNvbnN0IHJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgL14oMTlcXGR7Mn18MjBcXGR7Mn0pKDBbMS05XXwxWzAtMl0pKDBbMS05XXwxWzAtOV18MlswLTldfDNbMC0xXSkoXFxkezR9KSQvLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVnZXgudGVzdChwZXJzb25udW1tZXIpO1xuICAgIH1cbn1cbiIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENwclZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrQ3ByKGlucHV0LCBhbGxvd0VtcHR5KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBtb2R1bHVzMTFNdWx0aXBseSh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29udHJvbDogbnVtYmVyW10gPSBbNCwgMywgMiwgNywgNiwgNSwgNCwgMywgMiwgMV07XG4gICAgICAgIHJldHVybiBjb250cm9sW2luZGV4XSAqIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW9kdWx1czExRXhjZXB0aW9ucyhpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbkRhdGVzOiBEYXRlW10gPSBbXG4gICAgICAgICAgICAxOTYwLFxuICAgICAgICAgICAgMTk2NCxcbiAgICAgICAgICAgIDE5NjUsXG4gICAgICAgICAgICAxOTY2LFxuICAgICAgICAgICAgMTk2OSxcbiAgICAgICAgICAgIDE5NzAsXG4gICAgICAgICAgICAxOTgwLFxuICAgICAgICAgICAgMTk4MixcbiAgICAgICAgICAgIDE5ODQsXG4gICAgICAgICAgICAxOTg1LFxuICAgICAgICAgICAgMTk4NixcbiAgICAgICAgICAgIDE5ODcsXG4gICAgICAgICAgICAxOTg4LFxuICAgICAgICAgICAgMTk4OSxcbiAgICAgICAgICAgIDE5OTAsXG4gICAgICAgIF0ubWFwKHggPT4gbmV3IERhdGUoeCwgMCwgMSkpOyAvLyBtb250aHMgYXJlIDAtaW5kZXhlZFxuXG4gICAgICAgIGNvbnN0IGNwckRhdGU6IERhdGUgPSB0aGlzLmdldENwckRhdGUoaW5wdXQpO1xuXG4gICAgICAgIHJldHVybiBleGNlcHRpb25EYXRlcy5zb21lKHggPT4geC5nZXREYXRlKCkgPT09IGNwckRhdGUuZ2V0RGF0ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrQ3ByRGF0ZShpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCB5ZWFyOiBudW1iZXIgPSAraW5wdXQuc3Vic3RyKDQsIDIpICsgMjAwMDtcbiAgICAgICAgeWVhciAtPSB5ZWFyID4gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpID8gMTAwIDogMDsgLy8gaXMgMjB4eCBvciAxOXh4XG4gICAgICAgIGNvbnN0IG1vbnRoOiBudW1iZXIgPSAraW5wdXQuc3Vic3RyKDIsIDIpIC0gMTtcbiAgICAgICAgY29uc3QgZGF5OiBudW1iZXIgPSAraW5wdXQuc3Vic3RyKDAsIDIpO1xuICAgICAgICBjb25zdCBkYXRlOiBEYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcbiAgICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggJiZcbiAgICAgICAgICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENwckRhdGUoaW5wdXQ6IHN0cmluZyk6IERhdGUge1xuICAgICAgICBsZXQgeWVhcjogbnVtYmVyID0gK2lucHV0LnN1YnN0cig0LCAyKSArIDIwMDA7XG4gICAgICAgIHllYXIgLT0geWVhciA+IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSA/IDEwMCA6IDA7IC8vIGlzIDIweHggb3IgMTl4eFxuICAgICAgICBjb25zdCBtb250aDogbnVtYmVyID0gK2lucHV0LnN1YnN0cigyLCAyKSAtIDE7XG4gICAgICAgIGNvbnN0IGRheTogbnVtYmVyID0gK2lucHV0LnN1YnN0cigwLCAyKTtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDcHIoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsbG93RW1wdHk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3BybnI6IHN0cmluZyA9IGlucHV0LnJlcGxhY2UoJyAnLCAnJykucmVwbGFjZSgnLScsICcnKTtcbiAgICAgICAgaWYgKCFjcHJuci5tYXRjaCgvXlxcZHsxMH0kLykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tDcHJEYXRlKGNwcm5yKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1vZHVsdXMxMUV4Y2VwdGlvbnMoY3BybnIpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvdXRwdXQ6IG51bWJlciA9IDA7XG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gdGhpcy5tb2R1bHVzMTFNdWx0aXBseShcbiAgICAgICAgICAgICAgICBwYXJzZUludChjcHJuci5zdWJzdHIoaSwgMSksIDEwKSxcbiAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdXRwdXQgJSAxMSA9PT0gMDsgLy8gaHZpcyBvdXRwdXQgZ8OlciBvcCBpIDExLCBlciBkZXQgZXQgZ3lsZGlndCBjcHIuXG4gICAgfVxufVxuIiwiaW1wb3J0IElWYWxpZGF0aW9uIGZyb20gJy4uL0lWYWxpZGF0b3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3ZyVmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuICAgIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tDdnIoaW5wdXQsIGFsbG93RW1wdHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDdnIoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFhbGxvd0VtcHR5ICYmICFpbnB1dCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBjdnJucjogc3RyaW5nID0gaW5wdXQucmVwbGFjZSgnICcsICcnKS5yZXBsYWNlKCctJywgJycpO1xuICAgICAgICBpZiAoIWN2cm5yKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxsb3dFbXB0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIS9eXFxkezh9JC8udGVzdChjdnJucikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGN2ciBudW1yZSBrYW4gw6ViZW5iYXJ0IG9nc8OlIG1vZHVsdXMxMSB0ZXN0ZXMuXG4gICAgICAgIGxldCB0b3RhbDogbnVtYmVyID0gMDtcblxuICAgICAgICBbMiwgNywgNiwgNSwgNCwgMywgMiwgMV0uZm9yRWFjaCgoZWxtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdG90YWwgKz0gcGFyc2VJbnQoY3ZybnJbaW5kZXhdLCAxMCkgKiBlbG07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0b3RhbCAlIDExID09PSAwO1xuICAgIH1cbn1cbiIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNFQ29tcGFueVJlZ2lzdHJhdGlvblZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBwcml2YXRlIE9SR19OUl9TRV9MVUhOX1dFSUdIVFMgPSBbMiwgMSwgMiwgMSwgMiwgMSwgMiwgMSwgMiwgMV07XG4gICAgcHJpdmF0ZSB3ZWlnaHRlZChjb2VmZmljaWVudHM6IEFycmF5PG51bWJlcj4pIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSAqIGNvZWZmaWNpZW50c1tpbmRleF07XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgc3VtID0gKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBhICsgYjtcbiAgICBcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGFsbG93RW1wdHkgJiYgIWlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMub3JnTnJTZShpbnB1dCk7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgb3JnTnJTZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrTHVobk1vZHVsdXMxMCh2YWx1ZSwgdGhpcy5PUkdfTlJfU0VfTFVITl9XRUlHSFRTKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBjaGVja0x1aG5Nb2R1bHVzMTAgKHRlc3RWYWx1ZTogc3RyaW5nLCBsdWhuV2VpZ2h0czogbnVtYmVyW10pIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gbHVobldlaWdodHMubGVuZ3RoO1xuICAgICAgICBjb25zdCB0ZXN0VmFsdWUkID0gdGVzdFZhbHVlLnJlcGxhY2UoXCItXCIsIFwiXCIpO1xuICAgICAgICBpZiAodGVzdFZhbHVlJC5sZW5ndGggIT09IGxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4ocGFyc2VJbnQodGVzdFZhbHVlJCwgMTApKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIGNvbnN0IGRpZ2l0cyA9IHRlc3RWYWx1ZSQuc3BsaXQoXCJcIikubWFwKE51bWJlcik7XG4gICAgICAgIGNvbnN0IGx1aG5GID0gKG46IG51bWJlcikgPT4gKG4gPCBsZW5ndGggPyBuIDogbiAtIChsZW5ndGggLSAxKSk7XG4gICAgICAgIGNvbnN0IGx1aG5TdW0gPSBsdWhuV2VpZ2h0cy5tYXAodGhpcy53ZWlnaHRlZChkaWdpdHMpKS5tYXAobHVobkYpLnJlZHVjZSh0aGlzLnN1bSk7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xTdW0gPSBsZW5ndGggLSAoK2x1aG5TdW0gJSBsZW5ndGgpO1xuICAgICAgICByZXR1cm4gY29udHJvbFN1bSAlIDEwID09PSAwO1xuICAgIH0gICBcbn0iLCJpbXBvcnQgSVZhbGlkYXRpb24gZnJvbSAnLi4vSVZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTRVBlcnNvbmFsTnVtYmVyVmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuXG4gICAgcHVibGljIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgLy8gRm9ybWF0OiAxMCBvciAxMiBkaWdpdHMgW1lZXVlZTU1ERFstLytdTk5OTiBhbmQgcGFzcyBjaGVja3N1bSB2YWxpZGF0aW9uXG4gICAgICAgIGNvbnN0IG1hdGNoID0gaW5wdXRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bICstXS9nLCAnJylcbiAgICAgICAgICAgIC5tYXRjaCgvXihcXGR7Mn18XFxkezR9KShcXGR7Mn0pKFxcZHsyfSkoXFxkezR9KSQvaSlcblxuICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm4gZmFsc2UgLy8gbm90IG1hdGNoaW5nIHJlZ2V4XG5cbiAgICAgICAgbGV0IFssIG1vbnRoLCBkYXldID0gbWF0Y2guc2xpY2UoMSkubWFwKE51bWJlcilcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghYWxsb3dFbXB0eSA/ICEhaW5wdXQgOiB0cnVlKSAmJlxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZURheUFuZE1vbnRoKG1vbnRoLCBkYXkpICYmXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQ2hlY2tzdW0oaW5wdXQpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRGF5QW5kTW9udGgobW9udGg6IG51bWJlciwgZGF5OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWF4RGF5c0luTW9udGggPSBbMCwgMzEsIDI5LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEobW9udGggPCAxIHx8IG1vbnRoID4gMTIpICYmICEoZGF5IDwgMSB8fCBkYXkgPiBtYXhEYXlzSW5Nb250aFttb250aF0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQ2hlY2tzdW0ocGVyc05vOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGlnaXRzID0gcGVyc05vXG4gICAgICAgICAgICAucmVwbGFjZSgvWyArLV0vZywgJycpXG4gICAgICAgICAgICAuc2xpY2UoLTEwKVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcChOdW1iZXIpXG4gICAgICAgIGNvbnN0IGx1aG5XZWlnaHRzID0gWzIsIDEsIDIsIDEsIDIsIDEsIDIsIDEsIDIsIDFdXG4gICAgICAgIGNvbnN0IGx1aG5GID0gKG46IG51bWJlcikgPT4gKG4gPCAxMCA/IG4gOiBuIC0gOSlcbiAgICAgICAgY29uc3QgbHVoblN1bSA9IGx1aG5XZWlnaHRzXG4gICAgICAgICAgICAubWFwKCh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSAqIGRpZ2l0c1tpbmRleF0pXG4gICAgICAgICAgICAubWFwKGx1aG5GKVxuICAgICAgICAgICAgLnJlZHVjZSgoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IGEgKyBiKVxuICAgICAgICBjb25zdCBjb250cm9sU3VtID0gMTAgLSAoK2x1aG5TdW0gJSAxMClcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xTdW0gJSAxMCA9PSAwXG4gICAgfVxufVxuIiwiY2xhc3MgZWxlbWVudENvbmZpZyB7XG5cdHNlbGVjdG9yOiBzdHJpbmc7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdHN0eWxlOiBzdHJpbmc7XG5cdHVzZVNoYWRvdzogYm9vbGVhbjtcblx0dGVtcGxhdGVQYXRoPzogc3RyaW5nO1xufVxuXG5jb25zdCB2YWxpZGF0ZVNlbGVjdG9yID0gKHNlbGVjdG9yOiBzdHJpbmcpID0+IHtcblx0aWYgKHNlbGVjdG9yLmluZGV4T2YoJy0nKSA8PSAwKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCBhdCBsZWFzdCAxIGRhc2ggaW4gdGhlIGN1c3RvbSBlbGVtZW50IG5hbWUhJyk7XG5cdH1cbn07XG5cbmNvbnN0IEN1c3RvbUVsZW1lbnQgPSAoY29uZmlnOiBlbGVtZW50Q29uZmlnKSA9PiB7XG5cdHJldHVybiAoY2xzOiBhbnkpID0+IHtcblx0XHR2YWxpZGF0ZVNlbGVjdG9yKGNvbmZpZy5zZWxlY3Rvcik7XG5cdFx0bGV0IHRlbXBsYXRlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG5cdFx0aWYgKCFjb25maWcudGVtcGxhdGUpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gcGFzcyBhIHRlbXBsYXRlIGZvciB0aGUgZWxlbWVudCcpO1xuXHRcdH1cblx0XHR0ZW1wbGF0ZUVsZW1lbnQuaW5uZXJIVE1MID0gYDxzdHlsZT4ke2NvbmZpZy5zdHlsZX08L3N0eWxlPiAke1xuXHRcdFx0Y29uZmlnLnRlbXBsYXRlXG5cdFx0XHR9YDtcblx0XHRsZXQgY29ubmVjdGVkQ2FsbGJhY2sgPSBjbHMucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHsgfTtcblx0XHRjb25zdCBkaXNjb25uZWN0ZWRDYWxsYmFjayA9IGNscy5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkgeyB9O1xuXG5cdFx0Y2xzLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdGxldCBjbG9uZSA9IGRvY3VtZW50LmltcG9ydE5vZGUodGVtcGxhdGVFbGVtZW50LmNvbnRlbnQsIHRydWUpO1xuXHRcdFx0aWYgKGNvbmZpZy51c2VTaGFkb3cgJiYgIXRoaXMuc2hhZG93Um9vdCkge1xuXHRcdFx0XHR0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KS5hcHBlbmRDaGlsZChjbG9uZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmFwcGVuZENoaWxkKGNsb25lKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmNvbXBvbmVudFdpbGxNb3VudCkge1xuXHRcdFx0XHR0aGlzLmNvbXBvbmVudFdpbGxNb3VudCgpO1xuXHRcdFx0fVxuXHRcdFx0Y29ubmVjdGVkQ2FsbGJhY2suY2FsbCh0aGlzKTtcblx0XHRcdGlmICh0aGlzLmNvbXBvbmVudERpZE1vdW50KSB7XG5cdFx0XHRcdHRoaXMuY29tcG9uZW50RGlkTW91bnQoKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0Y2xzLnByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdGlmICh0aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50KSB7XG5cdFx0XHRcdHRoaXMuY29tcG9uZW50V2lsbFVubW91bnQoKTtcblx0XHRcdH1cblx0XHRcdGRpc2Nvbm5lY3RlZENhbGxiYWNrLmNhbGwodGhpcyk7XG5cdFx0XHRpZiAodGhpcy5jb21wb25lbnREaWRVbm1vdW50KSB7XG5cdFx0XHRcdHRoaXMuY29tcG9uZW50RGlkVW5tb3VudCgpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0d2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZShjb25maWcuc2VsZWN0b3IsIGNscyk7XG5cdH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDdXN0b21FbGVtZW50O1xuIiwiaW1wb3J0ICdAd2ViY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy1idW5kbGUnO1xuaW1wb3J0ICdAd2ViY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvY3VzdG9tLWVsZW1lbnRzLWVzNS1hZGFwdGVyLmpzJztcbmltcG9ydCAnQHdlYmNvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMtbG9hZGVyLmpzJztcblxuLy8gZm9ybVxuaW1wb3J0IHsgQ3VzdG9tRm9ybSB9IGZyb20gJy4vY3VzdG9tLWZvcm0nO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcblxuLy8gZWxlbWVudHNcbmltcG9ydCAqIGFzIGVsZW1lbnRzIGZyb20gJy4vZWxlbWVudHMvRWxlbWVudHMnO1xuXG5leHBvcnQgeyBDdXN0b21Gb3JtLCBlbGVtZW50cywgQ3VzdG9tSW5wdXRFbGVtZW50IH07XG4iXX0=
6503
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJkZW1vL2luZGV4LnRzIiwibm9kZV9tb2R1bGVzL0B3ZWJjb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy9jdXN0b20tZWxlbWVudHMtZXM1LWFkYXB0ZXIuanMiLCJub2RlX21vZHVsZXMvQHdlYmNvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMtYnVuZGxlLmpzIiwibm9kZV9tb2R1bGVzL0B3ZWJjb21wb25lbnRzL3dlYmNvbXBvbmVudHNqcy93ZWJjb21wb25lbnRzLWxvYWRlci5qcyIsIm5vZGVfbW9kdWxlcy9pbnRsLXRlbC1pbnB1dC9idWlsZC9qcy9pbnRsVGVsSW5wdXQuanMiLCJub2RlX21vZHVsZXMvaW50bC10ZWwtaW5wdXQvaW5kZXguanMiLCJub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzIiwibm9kZV9tb2R1bGVzL3RpbWVycy1icm93c2VyaWZ5L21haW4uanMiLCJzcmMvY3VzdG9tLWZvcm0udHMiLCJzcmMvZWxlbWVudHMvQWRkcmVzcy9BZGRyZXNzRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9CYW5rRmllbGQvQmFua0ZpZWxkRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9DUFJFbGVtZW50L0NQUkVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvQ1ZSRWxlbWVudC9DVlJFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0NoZWNrQm94RWxlbWVudC9DaGVja0JveEVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvQ3VzdG9tRGF0YUZpbGVkRWxlbWVudC9DdXN0b21Gb3JtYXREYXRlRmllbGRFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9EYXRlRmllbGQvRGF0ZUZpZWxkRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9Ecm9wRG93bkxpc3QvRHJvcERvd25MaXN0RWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9FbGVtZW50cy50cyIsInNyYy9lbGVtZW50cy9FbWFpbEZpZWxkL0VtYWlsRmllbGRFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0ZpbGVGaWVsZC9GaWxlRmllbGRFbGVtZW50LnRzIiwic3JjL2VsZW1lbnRzL0lkZW50aWZpY2F0aW9uRWxlbWVudC9JZGVudGlmaWNhdGlvbkVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvSW50ZXJuYXRpb25hUGhvbmVOdW1iZXIvRmxhZ3MudHMiLCJzcmMvZWxlbWVudHMvSW50ZXJuYXRpb25hUGhvbmVOdW1iZXIvRmxhZ3MyeC50cyIsInNyYy9lbGVtZW50cy9JbnRlcm5hdGlvbmFQaG9uZU51bWJlci9JbnRlcm5hdGlvbmFQaG9uZU51bWJlckVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvTnVtZXJpY0ZpZWxkL051bWVyaWNGaWVsZEVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvUmFkaW9CdXR0b25Hcm91cC9SYWRpb0J1dHRvbkdyb3VwRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9TRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50L1NFQ29tcGFueVJlZ2lzdHJhdGlvbkVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvU0VQZXJzb25hbE51bWJlckVsZW1lbnQvU0VQZXJzb25hbE51bWJlckVsZW1lbnQudHMiLCJzcmMvZWxlbWVudHMvVGV4dEFyZWFFbGVtZW50L1RleHRBcmVhRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9UZXh0RmllbGQvVGV4dEZpZWxkRWxlbWVudC50cyIsInNyYy9lbGVtZW50cy9UeXBlQWhlYWQvVHlwZUFoZWFkRWxlbWVudC50cyIsInNyYy9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzLnRzIiwic3JjL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9CYXNlL0Jhc2VEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvQ3plY2hEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvRGFuaXNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0R1dGNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0VuZ2xpc2hEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvRXN0b25pYW5EaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvRmlubmlzaERpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9GcmVuY2hEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvR2VybWFuRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0dyZWVrRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0h1bmdhcmlhbkRpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9JY2VsYW5kaWNEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvSXRhbGlhbkRpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9MYXR2aWFuRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL0xpdHVhbmlhbkRpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9Ob3J3ZWdpYW5EaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvUG9saXNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvTGFuZ3VhZ2VzL1BvcnR1Z3Vlc2VEaWN0aW9uYXJ5LnRzIiwic3JjL2ZyYW1ld29yay9MYW5ndWFnZS9MYW5ndWFnZXMvU3BhbmlzaERpY3Rpb25hcnkudHMiLCJzcmMvZnJhbWV3b3JrL0xhbmd1YWdlL0xhbmd1YWdlcy9Td2VkaXNoRGljdGlvbmFyeS50cyIsInNyYy9mcmFtZXdvcmsvTGFuZ3VhZ2UvVHJhbnNsYXRvci50cyIsInNyYy9mcmFtZXdvcmsvUG9seWZpbGxzL2dldEF0dHJpYnV0ZU5hbWVzUG9seWZpbGwudHMiLCJzcmMvZnJhbWV3b3JrL1V0aWxpdGllcy9BcnJheVV0aWwudHMiLCJzcmMvZnJhbWV3b3JrL1V0aWxpdGllcy9Eb21VdGlsLnRzIiwic3JjL2ZyYW1ld29yay9VdGlsaXRpZXMvRG9tVXRpbGl0eS50cyIsInNyYy9mcmFtZXdvcmsvVXRpbGl0aWVzL01ha2VSZXF1ZXN0LnRzIiwic3JjL2ZyYW1ld29yay9VdGlsaXRpZXMvU3RyaW5nVXRpbC50cyIsInNyYy9mcmFtZXdvcmsvVXRpbGl0aWVzL1ZpZXdwb3J0VXRpbC50cyIsInNyYy9mcmFtZXdvcmsvVXRpbGl0aWVzL2RlYm91bmNlci50cyIsInNyYy9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0JhbmtBY2NvdW50LnRzIiwic3JjL2ZyYW1ld29yay9WYWxpZGF0aW9uL1ZhbGlkYXRvcnMvQmFua0FjY291bnRSZWdpc3RyYXRpb25OdW1iZXIudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rSWROb3J3YXkudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rSWRTd2VkZW4udHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DUFIudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DVlIudHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9TRUNvbXBhbnlSZWdpc3RyYXRpb24udHMiLCJzcmMvZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9TRVBlcnNvbmFsTnVtYmVyLnRzIiwic3JjL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3IudHMiLCJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztBQ0FBLHdDQUFzRDtBQUd0RCxRQUFRLENBQUMsa0JBQWtCLEdBQUc7SUFDMUIsSUFBSSxRQUFRLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtRQUNwQyxJQUFJLElBQUksR0FBRyxJQUFJLGtCQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBQSxPQUFPO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBQSxRQUFRLElBQU0sQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDO0tBQ0w7QUFDTCxDQUFDLENBQUM7OztBQ1ZGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FDbFhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FDeExBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDMUVBLDBFQUF5RTtBQUN6RSw2REFBd0Q7QUFDeEQsaUVBQTREO0FBRTVEO0lBT0Msb0JBQW9CLElBQXFCO1FBQXJCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELHNCQUFJLDhCQUFNO2FBQVY7WUFDQyxPQUFPLG1CQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsNkRBQTZELENBQUMsQ0FBQyxDQUFDO1FBQzFILENBQUM7OztPQUFBO0lBQ0Qsc0JBQUksb0NBQVk7YUFBaEI7WUFDQyxJQUFJLENBQUMsYUFBYTtnQkFDakIsSUFBSSxDQUFDLGFBQWE7b0JBQ2xCLG1CQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM3RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxnQ0FBUTthQUFaO1lBQ0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssWUFBWSxtQ0FBZ0IsRUFBakMsQ0FBaUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7OztPQUFBO0lBRUQsK0JBQVUsR0FBVjtRQUFBLGlCQVVDO1FBVEEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBQSxLQUFLO1lBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLEtBQUssR0FBRyxLQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1YsSUFBSSxLQUFJLENBQUMsUUFBUSxFQUFFO29CQUNsQixLQUFJLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2lCQUM3QjthQUNEO1FBQ0YsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVELDZCQUFRLEdBQVI7UUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFxQixLQUFNLENBQUMsUUFBUSxFQUFFLEVBQXRDLENBQXNDLENBQUMsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQUEsS0FBSyxJQUFJLE9BQXFCLEtBQU0sQ0FBQyxLQUFLLEVBQWpDLENBQWlDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsMkJBQU0sR0FBTjtRQUNDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUE1QixDQUE0QixDQUFDLENBQUM7UUFDbkQsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixPQUFPLElBQUkscUJBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM3RCxRQUFRLENBQ1IsQ0FBQztJQUNILENBQUM7SUFDTyxnQ0FBVyxHQUFuQjtRQUNDLElBQU0sUUFBUSxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFDMUMsS0FBb0IsVUFBVyxFQUFYLEtBQUEsSUFBSSxDQUFDLE1BQU0sRUFBWCxjQUFXLEVBQVgsSUFBVyxFQUFFO1lBQTVCLElBQU0sS0FBSyxTQUFBO1lBQ2YsSUFBSSxLQUFLLFlBQVksbUNBQWdCLEVBQUU7Z0JBQ3RDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDeEQsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdDO2FBQ0Q7aUJBQU07Z0JBQ04sUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFVLEtBQUssQ0FBQyxJQUFJLE1BQUcsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEQ7U0FDRDtRQUNELEtBQW9CLFVBQWlCLEVBQWpCLEtBQUEsSUFBSSxDQUFDLFlBQVksRUFBakIsY0FBaUIsRUFBakIsSUFBaUIsRUFBRTtZQUFsQyxJQUFNLEtBQUssU0FBQTtZQUNmLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDZixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Q7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRU8sMENBQXFCLEdBQTdCO1FBQUEsaUJBZ0JDO1FBZkEsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywrQ0FBK0MsQ0FDL0YsQ0FBQztRQUNGLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFvQjtZQUM1QyxJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDN0QsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ2xFLElBQUksYUFBYSxHQUF1QixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxhQUFVLGNBQWMsUUFBSSxDQUF1QixDQUFDO1lBQzVILE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQUEsS0FBSztnQkFDOUIsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLGNBQWMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQy9FLEtBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDMUM7cUJBQU07b0JBQ04sS0FBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMxQztZQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sZ0RBQTJCLEdBQW5DLFVBQW9DLEtBQWM7UUFBbEQsaUJBY0M7UUFiQSxJQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQS9CLENBQStCLENBQUMsQ0FBQztRQUM5RixLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDbEcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFBLFVBQVU7WUFDakMsSUFBSSxVQUFVLEtBQUssS0FBSyxFQUFFO2dCQUN6QixJQUFJLHFCQUFtQixHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDckUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFVBQUEsS0FBSztvQkFDckMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLHFCQUFtQixFQUFFO3dCQUN2QyxLQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQzdDO2dCQUNGLENBQUMsQ0FBQyxDQUFDO2FBQ0g7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDTyxnREFBMkIsR0FBbkMsVUFBb0MsS0FBYztRQUFsRCxpQkFrQkM7UUFqQkEsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQS9CLENBQStCLENBQUMsQ0FBQztRQUM5RixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDbEcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFBLFVBQVU7WUFDakMsSUFBSSxVQUFVLEtBQUssS0FBSyxFQUFFO2dCQUN6QixJQUFJLHFCQUFtQixHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDckUsSUFBSSxnQkFBYyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsQ0FBQztnQkFDckUsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFVBQUEsS0FBSztvQkFDckMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLHFCQUFtQjsyQkFDbEMsS0FBSyxDQUFDLEtBQUs7MkJBQ1gsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLGdCQUFjOytCQUM5QixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7d0JBQy9DLEtBQUksQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDN0M7Z0JBQ0YsQ0FBQyxDQUFDLENBQUM7YUFDSDtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNPLGlDQUFZLEdBQXBCLFVBQXFCLE1BQWUsRUFBRSxLQUFjO1FBQ25ELElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDNUIsT0FBTyxJQUFJLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDcEIsT0FBTyxJQUFJLENBQUM7YUFDWjtZQUNELElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRUYsaUJBQUM7QUFBRCxDQXpJQSxBQXlJQyxJQUFBO0FBeklZLGdDQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNMdkIscUZBQXFFO0FBQ3JFLHlFQUF3RTtBQUN4RSw2REFBc0U7QUFDdEUsa0VBQTZEO0FBQzdELGlHQUE0RjtBQUM1RixpRUFBNEQ7QUEyQjVEO0lBQW9DLGtDQUFrQjtJQVdyRDtRQUFBLFlBQ0MsaUJBQU8sU0FFUDtRQWJPLHlCQUFtQixHQUFHLEtBQUssQ0FBQztRQVluQyxJQUFBLG1DQUF5QixHQUFFLENBQUM7O0lBQzdCLENBQUM7SUFFRCxzQkFBSSxpQ0FBSzthQUFUO1lBQ0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3ZDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sS0FBRyxPQUFPLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFTLENBQUM7UUFDNUMsQ0FBQzthQUVELFVBQVUsS0FBYTtZQUN0QixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDOzs7T0FSQTtJQVVELHNCQUFJLGlDQUFLO2FBQVQ7WUFDQyxPQUFPLENBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztnQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSztnQkFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUN2QixDQUFDO1FBQ0gsQ0FBQzs7O09BQUE7SUFFRCwwQ0FBaUIsR0FBakI7UUFDQyxpQkFBTSxpQkFBaUIsV0FBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCwwQ0FBaUIsR0FBakI7UUFBQSxpQkFNQztRQUxBLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBQSxhQUFhO1lBQzdDLElBQUksY0FBYyxHQUFHLEtBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEQsS0FBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsd0NBQWUsR0FBZjtRQUNDLElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQU0sYUFBYSxZQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQU0sYUFBYSxZQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQU0sYUFBYSxZQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQU0sYUFBYSxZQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQU0sb0JBQW9CLEdBQUcsSUFBQSxtQkFBUyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtZQUN2QyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFNUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN0QztJQUNGLENBQUM7SUFFRCxTQUFTO0lBQ0YsK0JBQU0sR0FBYixVQUFjLE1BQU07UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLGlDQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUFFRCx1Q0FBYyxHQUFkLFVBQWUsUUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDOUQsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsb0JBQVUsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsb0JBQVUsQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsb0JBQVUsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsb0JBQVUsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELDJDQUFrQixHQUFsQjtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNuRyxPQUFPO1NBQ1A7UUFFRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBb0Isd0RBQXFELElBQUksQ0FBQyxrQkFBa0IseUJBQXFCLENBQUMsQ0FBQztRQUMvSyxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUNwQyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1NBQ1A7UUFDRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQ3pELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEdBQUcsaURBQStDLElBQUksQ0FBQyxrQkFBa0Isc0JBQW1CLENBQUM7UUFDaEksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFTywyREFBa0MsR0FBMUM7UUFBQSxpQkFJQztRQUhBLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDeEQsS0FBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQseUNBQWdCLEdBQWhCO1FBQ0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELGdEQUF1QixHQUF2QjtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFDOUIsT0FBTztTQUNQO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUVoQyxJQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQUEsU0FBUztZQUMvRCxJQUFNLFlBQVksR0FBRyxDQUFDLDZCQUE2QixFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLElBQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBQSxXQUFXLElBQUksT0FBQSxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBMUMsQ0FBMEMsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sZUFBZSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxjQUFjLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUN0RTtRQUVELElBQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFBLFNBQVMsSUFBSSxPQUFBLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUF4QyxDQUF3QyxDQUFDLENBQUM7UUFDakgsSUFBSSxpQkFBaUIsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQy9FO1FBRUQsSUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxVQUFBLFNBQVMsSUFBSSxPQUFBLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUE1QyxDQUE0QyxDQUFDLENBQUM7UUFDakgsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDNUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxzQkFBVyxvQ0FBa0I7YUFBN0I7WUFDQyxPQUFPLENBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDbEUsQ0FBQzs7O09BQUE7SUFDRCxpREFBd0IsR0FBeEIsVUFBeUIsSUFBWSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDTyx5Q0FBZ0IsR0FBeEIsVUFBeUIsSUFBWSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3BFLFFBQVEsSUFBSSxFQUFFO1lBQ2IsS0FBSyxVQUFVO2dCQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQzNCLE1BQU07WUFDUCxLQUFLLG1CQUFtQjtnQkFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztnQkFDakMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7Z0JBQ3pCLE1BQU07WUFDUCxLQUFLLHNCQUFzQjtnQkFDMUIsSUFBSSxNQUFNLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRTtvQkFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztvQkFDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7aUJBQ3pCO2dCQUNELE1BQU07U0FFUDtJQUNGLENBQUM7SUF0TFcsY0FBYztRQXpCMUIsSUFBQSxrQ0FBYSxFQUFDO1lBQ2QsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixRQUFRLEVBQUUseVlBTUQ7WUFDVCxLQUFLLEVBQUUsa1NBWUw7WUFDRixZQUFZLEVBQUUsYUFBYTtZQUMzQixTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxjQUFjLENBdUwxQjtJQUFELHFCQUFDO0NBdkxELEFBdUxDLENBdkxtQyx1Q0FBa0IsR0F1THJEO0FBdkxZLHdDQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoQzNCLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBQ3RFLGlGQUFxRjtBQUNyRixxSEFBeUg7QUFDekgsa0VBQTZEO0FBMkI3RDtJQUFzQyxvQ0FBa0I7SUFNdkQ7UUFBQSxZQUNDLGlCQUFPLFNBQ1A7UUFMRCwwQkFBb0IsR0FBeUIsSUFBSSxxQkFBb0IsRUFBRSxDQUFDO1FBQ3hFLHdCQUFrQixHQUEyQyxJQUFJLHVDQUFzQyxFQUFFLENBQUM7O0lBSTFHLENBQUM7SUFFRCxzQkFBSSxtQ0FBSzthQUFUO1lBQ0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3ZDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTyxLQUFHLE9BQU8sR0FBRyxTQUFXLENBQUM7UUFDakMsQ0FBQzthQUVELFVBQVUsS0FBYTtZQUN0QixJQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQzs7O09BTkE7SUFRRCxzQkFBSSxtQ0FBSzthQUFUO1lBQ0MsT0FBTyxDQUNOLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUNsQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQ2Q7Z0JBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQ3BCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FDZDtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQzdCLENBQUM7UUFDSCxDQUFDOzs7T0FBQTtJQUVELDRDQUFpQixHQUFqQjtRQUNDLGlCQUFNLGlCQUFpQixXQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELDRDQUFpQixHQUFqQjtRQUFBLGlCQU1DO1FBTEEsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFBLGFBQWE7WUFDN0MsSUFBSSxjQUFjLEdBQUcsS0FBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0RCxLQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCx5Q0FBYyxHQUFkLFVBQWUsUUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3JDLE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLG9CQUFVLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLG9CQUFVLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRCwwQ0FBZSxHQUFmO1FBQ0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBTSxhQUFhLFlBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFNLGFBQWEsWUFBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUM1QztJQUNGLENBQUM7SUFFRCxTQUFTO0lBQ0YsaUNBQU0sR0FBYixVQUFjLE1BQU07UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLG1DQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBVyxzQ0FBa0I7YUFBN0I7WUFDQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckIsQ0FBQzs7O09BQUE7SUFDRCxtREFBd0IsR0FBeEIsVUFBeUIsSUFBWSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDTywyQ0FBZ0IsR0FBeEIsVUFBeUIsSUFBWSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3BFLFFBQVEsSUFBSSxFQUFFO1lBQ2IsS0FBSyxVQUFVO2dCQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQzNCLE1BQU07U0FDUDtJQUNGLENBQUM7SUE3RlcsZ0JBQWdCO1FBekI1QixJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsY0FBYztZQUN4QixRQUFRLEVBQUUsa09BSUQ7WUFDVCxLQUFLLEVBQUUsaVVBZUk7WUFDWCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxnQkFBZ0IsQ0E4RjVCO0lBQUQsdUJBQUM7Q0E5RkQsQUE4RkMsQ0E5RnFDLHVDQUFrQixHQThGdkQ7QUE5RlksNENBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoQzdCLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBQ3RFLGlFQUFxRTtBQTBCckU7SUFBZ0MsOEJBQWtCO0lBSWpEO1FBQUEsWUFDQyxpQkFBTyxTQUNQO1FBSkQsZUFBUyxHQUFpQixJQUFJLGFBQVksRUFBRSxDQUFDOztJQUk3QyxDQUFDO0lBRUQsc0JBQUksNkJBQUs7YUFBVDtZQUNDLE9BQU8sS0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU8sQ0FBQztRQUM3QixDQUFDO2FBRUQsVUFBVSxLQUFhO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDOzs7T0FKQTtJQU1ELHNCQUFJLDZCQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQzs7O09BQUE7SUFFRCxzQ0FBaUIsR0FBakI7UUFDQyxpQkFBTSxpQkFBaUIsV0FBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxvQ0FBZSxHQUFmO1FBQ0MsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBTSxhQUFhLFlBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0YsQ0FBQztJQUVELFNBQVM7SUFDRiwyQkFBTSxHQUFiLFVBQWMsTUFBTTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sNkJBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQTNDVyxVQUFVO1FBeEJ0QixJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsYUFBYTtZQUN2QixRQUFRLEVBQUUsd0hBR0Q7WUFDVCxLQUFLLEVBQUUsaVVBZUk7WUFDWCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxVQUFVLENBNEN0QjtJQUFELGlCQUFDO0NBNUNELEFBNENDLENBNUMrQix1Q0FBa0IsR0E0Q2pEO0FBNUNZLGdDQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3QnZCLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBRXRFLGlFQUFxRTtBQTBCckU7SUFBZ0MsOEJBQWtCO0lBSWpEO1FBQUEsWUFDQyxpQkFBTyxTQUNQO1FBSkQsZUFBUyxHQUFpQixJQUFJLGFBQVksRUFBRSxDQUFDOztJQUk3QyxDQUFDO0lBRUQsc0JBQUksNkJBQUs7YUFBVDtZQUNDLE9BQU8sS0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU8sQ0FBQztRQUM3QixDQUFDO2FBRUQsVUFBVSxLQUFhO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDOzs7T0FKQTtJQU1ELHNCQUFJLDZCQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsQ0FBQzs7O09BQUE7SUFFRCxzQ0FBaUIsR0FBakI7UUFDQyxpQkFBTSxpQkFBaUIsV0FBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxvQ0FBZSxHQUFmO1FBQ0MsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBTSxhQUFhLFlBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0YsQ0FBQztJQUVELFNBQVM7SUFDRiwyQkFBTSxHQUFiLFVBQWMsTUFBTTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sNkJBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQTNDVyxVQUFVO1FBeEJ0QixJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsYUFBYTtZQUN2QixRQUFRLEVBQUUscUhBR0Q7WUFDVCxLQUFLLEVBQUUsaVVBZUk7WUFDWCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxVQUFVLENBNEN0QjtJQUFELGlCQUFDO0NBNUNELEFBNENDLENBNUMrQix1Q0FBa0IsR0E0Q2pEO0FBNUNZLGdDQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM5QnZCLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBQ3RFLG1FQUFrRTtBQTRCbEU7SUFBcUMsbUNBQWtCO0lBUXREO1FBQUEsWUFDQyxpQkFBTyxTQUNQO1FBUkQsc0JBQWdCLEdBQUcsNElBSVosQ0FBQzs7SUFJUixDQUFDO0lBRUQsc0JBQUksa0NBQUs7YUFBVDtZQUNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsT0FBTyxFQUFULENBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDLENBQUM7UUFDL0QsQ0FBQzthQUVELFVBQVUsTUFBZ0I7WUFDekIsK0JBQStCO1FBQ2hDLENBQUM7OztPQUpBO0lBTUQsc0JBQUksa0NBQUs7YUFBVDtZQUNDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDN0I7aUJBQU07Z0JBQ04sT0FBTyxJQUFJLENBQUM7YUFDWjtRQUNGLENBQUM7OztPQUFBO0lBRUQsMkNBQWlCLEdBQWpCO1FBQ0MsaUJBQU0saUJBQWlCLFdBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQseUNBQWUsR0FBZjtRQUFBLGlCQU1DO1FBTEEsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsaUJBQU0sY0FBYyxZQUFDLFlBQVUsSUFBSSxDQUFDLElBQUksT0FBSSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBQSxDQUFDO1lBQ3RCLE9BQUEsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsQ0FBQztRQUFwRCxDQUFvRCxDQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVPLHVDQUFhLEdBQXJCO1FBQUEsaUJBY0M7UUFiQSxJQUFNLE9BQU8sR0FBRyxpQkFBTSxlQUFlLFlBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsS0FBSztZQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQ3pCLFdBQVcsRUFDWCx1QkFBVSxDQUFDLFlBQVksQ0FDdEIsS0FBSSxDQUFDLGdCQUFnQixFQUNyQixLQUFJLENBQUMsSUFBSSxFQUNULE9BQU8sRUFDSixLQUFJLENBQUMsSUFBSSxTQUFJLEtBQU8sQ0FDdkIsQ0FDRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUztJQUNGLGdDQUFNLEdBQWIsVUFBYyxNQUFNO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxrQ0FBUSxHQUFmO1FBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNuQixJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQ2xELENBQUM7SUFDSCxDQUFDO0lBbEVXLGVBQWU7UUExQjNCLElBQUEsa0NBQWEsRUFBQztZQUNkLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsUUFBUSxFQUFFLCtDQUVEO1lBQ1QsS0FBSyxFQUFFLHFaQWtCTDtZQUNGLFNBQVMsRUFBRSxJQUFJO1NBQ2YsQ0FBQztPQUNXLGVBQWUsQ0FtRTNCO0lBQUQsc0JBQUM7Q0FuRUQsQUFtRUMsQ0FuRW9DLHVDQUFrQixHQW1FdEQ7QUFuRVksMENBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQy9CNUIscUZBQXFFO0FBQ3JFLHlFQUF3RTtBQUN4RSw2REFBc0U7QUFrRHRFO0lBQWtELGdEQUFrQjtJQUtuRTtlQUNDLGlCQUFPO0lBQ1IsQ0FBQztJQUVELHNCQUFJLCtDQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLENBQUM7YUFFRCxVQUFVLEtBQWE7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDOzs7T0FMQTtJQU9ELHNCQUFJLCtDQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNqQyxDQUFDOzs7T0FBQTtJQUVELHdEQUFpQixHQUFqQjtRQUNDLGlCQUFNLGlCQUFpQixXQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHNEQUFlLEdBQWY7UUFBQSxpQkE4QkM7UUE3QkEsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBTSxhQUFhLFlBQUMsYUFBYSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBTSxhQUFhLFlBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFNLGFBQWEsWUFBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO1lBQ2pDLEtBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBRVQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFDekMsS0FBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1lBQ3RDLEtBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDeEM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUMzQztJQUNGLENBQUM7SUFFTSw2Q0FBTSxHQUFiLFVBQWMsTUFBTTs7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBTSxhQUFhLEdBQUcsTUFBQSxJQUFJLENBQUMsVUFBVSxFQUFFLG1DQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sK0NBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGlEQUFVLEdBQWxCOztRQUNDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRW5DLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hFLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFcEUsSUFBTSxXQUFXLEdBQUc7WUFDbkIsVUFBVSxFQUFFLEtBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxJQUFNO1lBQ25DLFVBQVUsRUFBRSxLQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBTTtZQUNuQyxZQUFZLEVBQUssR0FBRyxTQUFJLEtBQUssU0FBSSxJQUFNO1lBQ3ZDLFlBQVksRUFBSyxLQUFLLFNBQUksR0FBRyxTQUFJLElBQU07WUFDdkMsWUFBWSxFQUFLLEdBQUcsU0FBSSxLQUFLLFNBQUksSUFBTTtZQUN2QyxZQUFZLEVBQUssS0FBSyxTQUFJLEdBQUcsU0FBSSxJQUFNO1lBQ3ZDLFlBQVksRUFBSyxJQUFJLFNBQUksS0FBSyxTQUFJLEdBQUs7WUFDdkMsWUFBWSxFQUFLLElBQUksU0FBSSxHQUFHLFNBQUksS0FBTztZQUN2QyxnQkFBZ0IsRUFBSyxTQUFTLFNBQUksR0FBRyxVQUFLLElBQU07WUFDaEQsVUFBVSxFQUFLLEtBQUssU0FBSSxHQUFHLFNBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRztZQUMxRCxVQUFVLEVBQUssR0FBRyxTQUFJLEtBQUssU0FBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFHO1NBQzFELENBQUE7UUFFRCxPQUFPLE1BQUEsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUNBQUksSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFRCwrREFBd0IsR0FBeEIsVUFBeUIsSUFBWSxFQUFFLFFBQWdCLEVBQUUsUUFBZ0I7UUFDbEUsSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUF2R1EsNEJBQTRCO1FBaER4QyxJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsNEJBQTRCO1lBQ25DLFFBQVEsRUFBRSxxcEJBS0w7WUFDTCxLQUFLLEVBQUUsbXdCQXFDUDtZQUNILFNBQVMsRUFBRSxJQUFJO1NBQ2YsQ0FBQztPQUNXLDRCQUE0QixDQXdHeEM7SUFBRCxtQ0FBQztDQXhHRCxBQXdHQyxDQXhHaUQsdUNBQWtCLEdBd0duRTtBQXhHWSxvRUFBNEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3BEekMscUZBQXFFO0FBQ3JFLHlFQUF3RTtBQUN4RSw2REFBc0U7QUEwQnRFO0lBQW9ELGtEQUFrQjtJQUdyRTtlQUNDLGlCQUFPO0lBQ1IsQ0FBQztJQUVELHNCQUFJLGlEQUFLO2FBQVQ7WUFDQyxPQUFPLEtBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFPLENBQUM7UUFDN0IsQ0FBQzthQUVELFVBQVUsS0FBYTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQzs7O09BSkE7SUFNRCxzQkFBSSxpREFBSzthQUFUO1lBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakMsQ0FBQzs7O09BQUE7SUFFRCwwREFBaUIsR0FBakI7UUFDQyxpQkFBTSxpQkFBaUIsV0FBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCx3REFBZSxHQUFmO1FBQ0MsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBTSxhQUFhLFlBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7UUFDSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzRDtJQUNSLENBQUM7SUFFRCxTQUFTO0lBQ0YsK0NBQU0sR0FBYixVQUFjLE1BQU07UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLGlEQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUFoRFcsOEJBQThCO1FBeEIxQyxJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsZUFBZTtZQUN6QixRQUFRLEVBQUUsZ0dBR0Q7WUFDVCxLQUFLLEVBQUUsaVVBZUk7WUFDWCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyw4QkFBOEIsQ0FpRDFDO0lBQUQscUNBQUM7Q0FqREQsQUFpREMsQ0FqRG1ELHVDQUFrQixHQWlEckU7QUFqRFksd0VBQThCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1QjNDLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBMEJ0RTtJQUFzQyxvQ0FBa0I7SUFHdkQ7ZUFDQyxpQkFBTztJQUNSLENBQUM7SUFFRCxzQkFBSSxtQ0FBSzthQUFUO1lBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixDQUFDO2FBRUQsVUFBVSxLQUFhO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDOzs7T0FKQTtJQU1ELHNCQUFJLG1DQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNqQyxDQUFDOzs7T0FBQTtJQUVELDRDQUFpQixHQUFqQjtRQUNDLGlCQUFNLGlCQUFpQixXQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELDBDQUFlLEdBQWY7UUFDQyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFNLGFBQWEsWUFBQyxhQUFhLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QztJQUNGLENBQUM7SUFFRCxTQUFTO0lBQ0YsaUNBQU0sR0FBYixVQUFjLE1BQU07UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLG1DQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUFoRFcsZ0JBQWdCO1FBeEI1QixJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsY0FBYztZQUN4QixRQUFRLEVBQUUsK0ZBR0Q7WUFDVCxLQUFLLEVBQUUsaVVBZUk7WUFDWCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxnQkFBZ0IsQ0FpRDVCO0lBQUQsdUJBQUM7Q0FqREQsQUFpREMsQ0FqRHFDLHVDQUFrQixHQWlEdkQ7QUFqRFksNENBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1QjdCLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBQ3RFLG1FQUFrRTtBQW9DbEU7SUFBeUMsdUNBQWtCO0lBTzFEO1FBQUEsWUFDQyxpQkFBTyxTQUNQO1FBUEQsb0JBQWMsR0FBRyx1REFHSixDQUFDOztJQUlkLENBQUM7SUFFRCxzQkFBSSxzQ0FBSzthQUFUO1lBQ0MsT0FBTyxLQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBTyxDQUFDO1FBQy9CLENBQUM7YUFFRCxVQUFVLEtBQWE7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUM7OztPQUpBO0lBTUQsc0JBQUksc0NBQUs7YUFBVDtZQUNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25DLENBQUM7OztPQUFBO0lBRUQsK0NBQWlCLEdBQWpCO1FBQ0MsaUJBQU0saUJBQWlCLFdBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsNkNBQWUsR0FBZjtRQUNDLElBQUksQ0FBQyxNQUFNLEdBQUcsaUJBQU0sYUFBYSxZQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sd0NBQVUsR0FBbEI7UUFBQSxpQkFRQztRQVBBLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxLQUFLO1lBQ25DLEtBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQzdCLFdBQVcsRUFDWCx1QkFBVSxDQUFDLFlBQVksQ0FBQyxLQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FDOUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELFNBQVM7SUFDRixvQ0FBTSxHQUFiLFVBQWMsTUFBTTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sc0NBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQTNEVyxtQkFBbUI7UUFsQy9CLElBQUEsa0NBQWEsRUFBQztZQUNkLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsUUFBUSxFQUFFLGtLQUtEO1lBQ1QsS0FBSyxFQUFFLDBwQkF1Qkk7WUFDWCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxtQkFBbUIsQ0E0RC9CO0lBQUQsMEJBQUM7Q0E1REQsQUE0REMsQ0E1RHdDLHVDQUFrQixHQTREMUQ7QUE1RFksa0RBQW1COzs7Ozs7QUN2Q2hDLDJEQUEwRDtBQXNCekQsK0ZBdEJRLCtCQUFjLE9Bc0JSO0FBckJmLGlFQUFnRTtBQXNCL0QsaUdBdEJRLG1DQUFnQixPQXNCUjtBQXJCakIsb0VBQW1FO0FBc0JsRSxrR0F0QlEscUNBQWlCLE9Bc0JSO0FBckJsQixxRUFBb0U7QUFzQm5FLGdHQXRCUSxpQ0FBZSxPQXNCUjtBQXJCaEIsc0ZBQXFGO0FBc0JwRix3R0F0QlEsaURBQXVCLE9Bc0JSO0FBckJ4QixxRUFBb0U7QUFzQm5FLGdHQXRCUSxpQ0FBZSxPQXNCUjtBQXJCaEIsMEVBQXlFO0FBc0J4RSxvR0F0QlEseUNBQW1CLE9Bc0JSO0FBckJwQixpRUFBZ0U7QUFzQi9ELGlHQXRCUSxtQ0FBZ0IsT0FzQlI7QUFyQmpCLDBFQUF5RTtBQXNCeEUsb0dBdEJRLHlDQUFtQixPQXNCUjtBQXJCcEIsMkdBQTBHO0FBc0J6RywrR0F0QlEsK0RBQThCLE9Bc0JSO0FBckIvQixpRUFBZ0U7QUFzQi9ELGlHQXRCUSxtQ0FBZ0IsT0FzQlI7QUFyQmpCLDJHQUFnRztBQXVCL0YscUdBdkJRLHFEQUFvQixPQXVCUjtBQXRCckIsc0RBQXFEO0FBdUJwRCwyRkF2QlEsdUJBQVUsT0F1QlI7QUF0Qlgsc0RBQXFEO0FBdUJwRCwyRkF2QlEsdUJBQVUsT0F1QlI7QUF0QlgsdUZBQXNGO0FBdUJyRixzR0F2QlEsNkNBQXFCLE9BdUJSO0FBdEJ0QixpRUFBZ0U7QUF1Qi9ELGlHQXZCUSxtQ0FBZ0IsT0F1QlI7QUF0QmpCLGlFQUFnRTtBQXVCL0QsaUdBdkJRLG1DQUFnQixPQXVCUjtBQXRCakIsNkZBQTRGO0FBdUJ4Rix3R0F2QkssaURBQXVCLE9BdUJMO0FBdEIzQiw0R0FBMkc7QUF1QnZHLDZHQXZCSywyREFBNEIsT0F1Qkw7QUF0QmhDLHNHQUFxRztBQWNwRyw2R0FkUSwyREFBNEIsT0FjUjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakM3QixxRkFBcUU7QUFDckUseUVBQXdFO0FBQ3hFLDZEQUFzRTtBQTBCdEU7SUFBdUMscUNBQWtCO0lBT3hEO1FBQUEsWUFDQyxpQkFBTyxTQUNQO1FBUkQsZUFBUyxHQUFXLElBQUksTUFBTSxDQUM3QixpRkFBaUYsQ0FDakYsQ0FBQzs7SUFNRixDQUFDO0lBRUQsc0JBQUksb0NBQUs7YUFBVDtZQUNDLE9BQU8sS0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQU8sQ0FBQztRQUM5QixDQUFDO2FBRUQsVUFBVSxLQUFhO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDOzs7T0FKQTtJQU1ELHNCQUFJLG9DQUFLO2FBQVQ7WUFDQyxJQUFNLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQztRQUNsRCxDQUFDOzs7T0FBQTtJQUVELDZDQUFpQixHQUFqQjtRQUNDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixpQkFBTSxpQkFBaUIsV0FBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCwyQ0FBZSxHQUFmO1FBQ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBTSxhQUFhLFlBQUMsY0FBYyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0ssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDNUQ7SUFDUixDQUFDO0lBRUQsU0FBUztJQUNGLGtDQUFNLEdBQWIsVUFBYyxNQUFNO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxvQ0FBUSxHQUFmO1FBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNuQixJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQ2xELENBQUM7SUFDSCxDQUFDO0lBbkRXLGlCQUFpQjtRQXhCN0IsSUFBQSxrQ0FBYSxFQUFDO1lBQ2QsUUFBUSxFQUFFLGVBQWU7WUFDekIsUUFBUSxFQUFFLGdHQUdEO1lBQ1QsS0FBSyxFQUFFLGlVQWVJO1lBQ1gsU0FBUyxFQUFFLElBQUk7U0FDZixDQUFDO09BQ1csaUJBQWlCLENBb0Q3QjtJQUFELHdCQUFDO0NBcERELEFBb0RDLENBcERzQyx1Q0FBa0IsR0FvRHhEO0FBcERZLDhDQUFpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDNUI5QixxRkFBcUU7QUFDckUseUVBQXdFO0FBQ3hFLDZEQUFzRTtBQUN0RSxpR0FBNEY7QUEwQjVGO0lBQXNDLG9DQUFrQjtJQUd2RDtRQUFBLFlBQ0MsaUJBQU8sU0FFUDtRQURBLElBQUEsbUNBQXlCLEdBQUUsQ0FBQzs7SUFDN0IsQ0FBQztJQUVELHNCQUFJLG1DQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLENBQUM7YUFFRCxVQUFVLEtBQWU7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7OztPQUpBO0lBTUQsc0JBQUksbUNBQUs7YUFBVDtZQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ2pDLENBQUM7OztPQUFBO0lBRUQsNENBQWlCLEdBQWpCO1FBQ0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLGlCQUFNLGlCQUFpQixXQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELDRDQUFpQixHQUFqQjtRQUFBLGlCQUtDO1FBSkEsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxDQUFDLFVBQUEsYUFBYTtZQUM3QyxJQUFJLGNBQWMsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3RELEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELDBDQUFlLEdBQWY7UUFDQyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFNLGFBQWEsWUFBQyxhQUFhLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDdkM7SUFDRixDQUFDO0lBRUQsU0FBUztJQUNGLGlDQUFNLEdBQWIsVUFBYyxNQUFNO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxtQ0FBUSxHQUFmO1FBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNuQixJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUUsbURBQXdCLEdBQXhCLFVBQXlCLElBQVksRUFBRSxNQUFjLEVBQUUsTUFBYztRQUN2RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ08sMkNBQWdCLEdBQXhCLFVBQXlCLElBQVksRUFBRSxNQUFjLEVBQUUsTUFBYztRQUNwRSxRQUFRLElBQUksRUFBRTtZQUNiLEtBQUssUUFBUTtnQkFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQzFCLE1BQU07U0FDbkI7SUFDRixDQUFDO0lBakVXLGdCQUFnQjtRQXhCNUIsSUFBQSxrQ0FBYSxFQUFDO1lBQ2QsUUFBUSxFQUFFLGNBQWM7WUFDeEIsUUFBUSxFQUFFLGtJQUdEO1lBQ1QsS0FBSyxFQUFFLGlVQWVJO1lBQ1gsU0FBUyxFQUFFLElBQUk7U0FDZixDQUFDO09BQ1csZ0JBQWdCLENBa0U1QjtJQUFELHVCQUFDO0NBbEVELEFBa0VDLENBbEVxQyx1Q0FBa0IsR0FrRXZEO0FBbEVZLDRDQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDN0I3QixxRkFBcUU7QUFDckUseUVBQXdFO0FBQ3hFLDZEQUFzRTtBQUN0RSxpRUFBcUU7QUFFckUsaUVBQXFFO0FBQ3JFLG1GQUF1RjtBQUN2RixtRkFBdUY7QUFxQ3ZGO0lBQTJDLHlDQUFrQjtJQVk1RDtRQUFBLFlBQ0MsaUJBQU8sU0FDUDtRQVRELGdCQUFVLEdBQW9DO1lBQzdDLEdBQUcsRUFBRSxJQUFJLGFBQVksRUFBRTtZQUN2QixHQUFHLEVBQUUsSUFBSSxhQUFZLEVBQUU7WUFDdkIsR0FBRyxFQUFFLElBQUksc0JBQXFCLEVBQUU7WUFDaEMsR0FBRyxFQUFFLElBQUksc0JBQXFCLEVBQUU7U0FDaEMsQ0FBQzs7SUFJRixDQUFDO0lBRUQsc0JBQUksd0NBQUs7YUFBVDtZQUNDLE9BQU8sS0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU8sQ0FBQztRQUM3QixDQUFDO2FBRUQsVUFBVSxLQUFhO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDOzs7T0FKQTtJQU1ELHNCQUFJLHdDQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FDOUMsSUFBSSxDQUFDLEtBQUssRUFDVixDQUFDLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztRQUNILENBQUM7OztPQUFBO0lBRUQsaURBQWlCLEdBQWpCO1FBQ0MsaUJBQU0saUJBQWlCLFdBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsK0NBQWUsR0FBZjtRQUNDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQU0sYUFBYSxZQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsaUJBQU0sYUFBYSxZQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUztJQUNGLHNDQUFNLEdBQWIsVUFBYyxNQUFNO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLHdDQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUExRFcscUJBQXFCO1FBbkNqQyxJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsMGFBU0Q7WUFDVCxLQUFLLEVBQUUsbVpBb0JJO1lBQ1gsU0FBUyxFQUFFLElBQUk7U0FDZixDQUFDO09BQ1cscUJBQXFCLENBMkRqQztJQUFELDRCQUFDO0NBM0RELEFBMkRDLENBM0QwQyx1Q0FBa0IsR0EyRDVEO0FBM0RZLHNEQUFxQjs7Ozs7QUM1Q2xDLFNBQXdCLFdBQVc7SUFDbEMsT0FBTyxveTRGQUFveTRGLENBQUM7QUFDN3k0RixDQUFDO0FBRkQsOEJBRUM7Ozs7O0FDRkQsU0FBd0IsYUFBYTtJQUNwQyxPQUFPLG9rbU9BQW9rbU8sQ0FBQztBQUM3a21PLENBQUM7QUFGRCxnQ0FFQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRkQscUZBQXFFO0FBQ3JFLHlFQUF3RTtBQUN4RSw2REFBc0U7QUFDdEUsNkNBQStDO0FBRS9DLHFFQUFnRTtBQUNoRSxpQ0FBa0M7QUFDbEMscUNBQXNDO0FBb0N0QztJQUEwQyx3Q0FBa0I7SUFNM0Q7UUFBQSxZQUNDLGlCQUFPLFNBQ1A7UUFKUSxlQUFTLEdBQVcsMEVBQTBFLENBQUM7O0lBSXhHLENBQUM7SUFFRCxzQkFBSSx1Q0FBSzthQUFUO1lBQ0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLENBQUM7YUFFRCxVQUFVLEtBQWE7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7OztPQUpBO0lBTUQsc0JBQUksdUNBQUs7YUFBVDtZQUNDLElBQU0sWUFBWSxHQUNqQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyRSxPQUFPLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDbEQsQ0FBQzs7O09BQUE7SUFFRCxnREFBaUIsR0FBakI7UUFDQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsaUJBQU0saUJBQWlCLFdBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsOENBQWUsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN4QztJQUNGLENBQUM7SUFDRCw4Q0FBZSxHQUFmO1FBQUEsaUJBMENDOztRQXpDQSxJQUFJLENBQUMsS0FBSyxHQUFHLGlCQUFNLGFBQWEsWUFBQyxjQUFjLENBQUMsQ0FBQztRQUNqRCxJQUFNLFdBQVcsR0FBRyxVQUFDLE9BQU8sRUFBRSxPQUFPO1lBQ3BDLE9BQU8sSUFBSSxxQkFBVyxDQUNyQiw2Q0FBNkMsRUFDN0MsS0FBSyxFQUNMLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQ3RDO2lCQUNDLElBQUksRUFBRTtpQkFDTixJQUFJLENBQUMsVUFBQyxPQUFZO2dCQUNsQixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxVQUFBLEdBQUc7Z0JBQ1QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixJQUFNLGtCQUFrQixHQUFHLENBQUEsTUFBQSxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLDBDQUFFLFdBQVcsRUFBRSxNQUFLLE1BQU0sQ0FBQztRQUNoRyxJQUFNLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDMUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELElBQU0sT0FBTyxHQUFHLE1BQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsMENBQUUsV0FBVyxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM1QyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVztZQUNwRCxXQUFXLEVBQUUsV0FBVztZQUN4QixjQUFjLEVBQUUsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksY0FBYztZQUN6QyxrQkFBa0IsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RDLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFdBQVcsRUFBRSxRQUFRLGFBQVIsUUFBUSxjQUFSLFFBQVEsR0FBSSxJQUFJLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDO1lBQy9CLFVBQVUsQ0FBQztnQkFDVixLQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFNLGFBQWEsYUFBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzVELENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBTSxrQkFBa0IsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQywwQ0FBRSxXQUFXLEVBQUUsTUFBSyxNQUFNLENBQUM7UUFDMUYsSUFBSSxrQkFBa0IsRUFBRTtZQUN2QixJQUFNLFlBQVksR0FBNEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RixJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsU0FBTyxJQUFBLGVBQVcsR0FBRSxNQUFHLEVBQWpELENBQWlELENBQUMsQ0FBQzthQUM3RTtTQUNEO0lBQ0YsQ0FBQztJQUNELFNBQVM7SUFDRixxQ0FBTSxHQUFiLFVBQWMsTUFBTTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sdUNBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQXpGVyxvQkFBb0I7UUFsQ2hDLElBQUEsa0NBQWEsRUFBQztZQUNkLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsUUFBUSxFQUFFLHdQQUlEO1lBQ1QsS0FBSyxFQUFFLHlqQkFxQnlHLElBQUEsaUJBQWEsR0FBRSw4QkFHcEg7WUFDWCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxvQkFBb0IsQ0EwRmhDO0lBQUQsMkJBQUM7Q0ExRkQsQUEwRkMsQ0ExRnlDLHVDQUFrQixHQTBGM0Q7QUExRlksb0RBQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzQ2pDLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBMEJ0RTtJQUF5Qyx1Q0FBa0I7SUFHMUQ7ZUFDQyxpQkFBTztJQUNSLENBQUM7SUFFRCxzQkFBSSxzQ0FBSzthQUFUO1lBQ0MsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDckMsT0FBTyxFQUFFLENBQUM7YUFDVjtZQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDbEMsQ0FBQzthQUVELFVBQVUsS0FBVTtZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzs7O09BSkE7SUFNRCxzQkFBSSxzQ0FBSzthQUFUO1lBQ0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDbkMsQ0FBQzs7O09BQUE7SUFFRCwrQ0FBaUIsR0FBakI7UUFDQyxpQkFBTSxpQkFBaUIsV0FBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCw2Q0FBZSxHQUFmO1FBQ0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBTSxhQUFhLFlBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUM7UUFDSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3RDtJQUNSLENBQUM7SUFFRCxTQUFTO0lBQ0Ysb0NBQU0sR0FBYixVQUFjLE1BQU07UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLHNDQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUF6RFcsbUJBQW1CO1FBeEIvQixJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFFBQVEsRUFBRSxvR0FHRDtZQUNULEtBQUssRUFBRSxpVUFlSTtZQUNYLFNBQVMsRUFBRSxJQUFJO1NBQ2YsQ0FBQztPQUNXLG1CQUFtQixDQTBEL0I7SUFBRCwwQkFBQztDQTFERCxBQTBEQyxDQTFEd0MsdUNBQWtCLEdBMEQxRDtBQTFEWSxrREFBbUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVCaEMscUZBQXFFO0FBQ3JFLHlFQUF3RTtBQUN4RSw2REFBc0U7QUFDdEUsbUVBQWtFO0FBNEJsRTtJQUE2QywyQ0FBa0I7SUFROUQ7UUFBQSxZQUNDLGlCQUFPLFNBQ1A7UUFSRCx5QkFBbUIsR0FBRyxpSkFJZixDQUFDOztJQUlSLENBQUM7SUFFRCxzQkFBSSwwQ0FBSzthQUFUO1lBQ0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxPQUFPLEVBQVQsQ0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUssRUFBUCxDQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO2FBRUQsVUFBVSxLQUFhO1lBQ3RCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQWpCLENBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RSxJQUFJLFlBQVksRUFBRTtnQkFDakIsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDekM7UUFDRixDQUFDOzs7T0FQQTtJQVNELHNCQUFJLDBDQUFLO2FBQVQ7WUFDQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsT0FBTyxFQUFULENBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ04sT0FBTyxJQUFJLENBQUM7YUFDWjtRQUNGLENBQUM7OztPQUFBO0lBRUQsbURBQWlCLEdBQWpCO1FBQ0MsaUJBQU0saUJBQWlCLFdBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsaURBQWUsR0FBZjtRQUFBLGlCQU1DO1FBTEEsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsaUJBQU0sY0FBYyxZQUFDLFlBQVUsSUFBSSxDQUFDLElBQUksT0FBSSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBQSxLQUFLO1lBQzdCLE9BQUEsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsQ0FBQztRQUF4RCxDQUF3RCxDQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGlEQUFlLEdBQXZCO1FBQUEsaUJBZUM7UUFkQSxJQUFNLE9BQU8sR0FBRyxpQkFBTSxlQUFlLFlBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsS0FBSztZQUNuQyxPQUFPLENBQUMsa0JBQWtCLENBQ3pCLFdBQVcsRUFDWCx1QkFBVSxDQUFDLFlBQVksQ0FDdEIsS0FBSSxDQUFDLG1CQUFtQixFQUN4QixLQUFJLENBQUMsSUFBSSxFQUNULE9BQU8sRUFDSixLQUFJLENBQUMsSUFBSSxTQUFJLEtBQU8sRUFDdkIsTUFBRyxLQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUNwQyxDQUNELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxTQUFTO0lBQ0Ysd0NBQU0sR0FBYixVQUFjLE1BQU07UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLDBDQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUF0RVcsdUJBQXVCO1FBMUJuQyxJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFFBQVEsRUFBRSwrQ0FFRDtZQUNULEtBQUssRUFBRSx3WUFrQkw7WUFDRixTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyx1QkFBdUIsQ0F1RW5DO0lBQUQsOEJBQUM7Q0F2RUQsQUF1RUMsQ0F2RTRDLHVDQUFrQixHQXVFOUQ7QUF2RVksMERBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMvQnBDLHFGQUFxRTtBQUNyRSx5RUFBd0U7QUFDeEUsNkRBQXNFO0FBQ3RFLHFHQUF5RztBQXlCekc7SUFBa0QsZ0RBQWtCO0lBSW5FO1FBQUEsWUFDQyxpQkFBTyxTQUNQO1FBSkQsZUFBUyxHQUFtQyxJQUFJLCtCQUE4QixFQUFFLENBQUM7O0lBSWpGLENBQUM7SUFFRCxzQkFBSSwrQ0FBSzthQUFUO1lBQ0MsT0FBTyxLQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBTyxDQUFDO1FBQzdCLENBQUM7YUFFRCxVQUFVLEtBQWE7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7OztPQUpBO0lBTUQsc0JBQUksK0NBQUs7YUFBVDtZQUNDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRSxDQUFDOzs7T0FBQTtJQUVELHdEQUFpQixHQUFqQjtRQUNDLGlCQUFNLGlCQUFpQixXQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHNEQUFlLEdBQWY7UUFDQyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFNLGFBQWEsWUFBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN2QztJQUNGLENBQUM7SUFFRCxTQUFTO0lBQ0YsNkNBQU0sR0FBYixVQUFjLE1BQU07UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLCtDQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25CLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FDbEQsQ0FBQztJQUNILENBQUM7SUEzQ1csNEJBQTRCO1FBdkJ4QyxJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsaUNBQWlDO1lBQzNDLFFBQVEsRUFBRSxtSkFHSTtZQUNkLEtBQUssRUFBRSw0VUFjRTtZQUNULFNBQVMsRUFBRSxJQUFJO1NBQ2YsQ0FBQztPQUNXLDRCQUE0QixDQTRDeEM7SUFBRCxtQ0FBQztDQTVDRCxBQTRDQyxDQTVDaUQsdUNBQWtCLEdBNENuRTtBQTVDWSxvRUFBNEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVCekMscUZBQXFFO0FBQ3JFLHlFQUF3RTtBQUN4RSw2REFBc0U7QUFDdEUsMkZBQStGO0FBeUIvRjtJQUE2QywyQ0FBa0I7SUFJOUQ7UUFBQSxZQUNDLGlCQUFPLFNBQ1A7UUFKRCxlQUFTLEdBQThCLElBQUksMEJBQXlCLEVBQUUsQ0FBQzs7SUFJdkUsQ0FBQztJQUVELHNCQUFJLDBDQUFLO2FBQVQ7WUFDQyxPQUFPLEtBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFPLENBQUM7UUFDN0IsQ0FBQzthQUVELFVBQVUsS0FBYTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQzs7O09BSkE7SUFNRCxzQkFBSSwwQ0FBSzthQUFUO1lBQ0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7OztPQUFBO0lBRUQsbURBQWlCLEdBQWpCO1FBQ0MsaUJBQU0saUJBQWlCLFdBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsaURBQWUsR0FBZjtRQUNDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQU0sYUFBYSxZQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0YsQ0FBQztJQUVELFNBQVM7SUFDRix3Q0FBTSxHQUFiLFVBQWMsTUFBTTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sMENBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQTNDVyx1QkFBdUI7UUF2Qm5DLElBQUEsa0NBQWEsRUFBQztZQUNkLFFBQVEsRUFBRSw0QkFBNEI7WUFDdEMsUUFBUSxFQUFFLG1KQUdJO1lBQ2QsS0FBSyxFQUFFLDRVQWNFO1lBQ1QsU0FBUyxFQUFFLElBQUk7U0FDZixDQUFDO09BQ1csdUJBQXVCLENBNENuQztJQUFELDhCQUFDO0NBNUNELEFBNENDLENBNUM0Qyx1Q0FBa0IsR0E0QzlEO0FBNUNZLDBEQUF1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDNUJwQyxxRkFBcUU7QUFDckUseUVBQXdFO0FBQ3hFLDZEQUFzRTtBQTBCdEU7SUFBcUMsbUNBQWtCO0lBR3REO2VBQ0MsaUJBQU87SUFDUixDQUFDO0lBRUQsc0JBQUksa0NBQUs7YUFBVDtZQUNDLE9BQU8sS0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQU8sQ0FBQztRQUM3QixDQUFDO2FBRUQsVUFBVSxLQUFhO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDOzs7T0FKQTtJQU1ELHNCQUFJLGtDQUFLO2FBQVQ7WUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNqQyxDQUFDOzs7T0FBQTtJQUVELDJDQUFpQixHQUFqQjtRQUNDLGlCQUFNLGlCQUFpQixXQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHlDQUFlLEdBQWY7UUFDQyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFNLGFBQWEsWUFBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN2QztRQUNLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNEO0lBQ1IsQ0FBQztJQUVELFNBQVM7SUFDRixnQ0FBTSxHQUFiLFVBQWMsTUFBTTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sa0NBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQTdDVyxlQUFlO1FBeEIzQixJQUFBLGtDQUFhLEVBQUM7WUFDZCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFFBQVEsRUFBRSwwR0FHRDtZQUNULEtBQUssRUFBRSxvVUFlSTtZQUNYLFNBQVMsRUFBRSxJQUFJO1NBQ2YsQ0FBQztPQUNXLGVBQWUsQ0E4QzNCO0lBQUQsc0JBQUM7Q0E5Q0QsQUE4Q0MsQ0E5Q29DLHVDQUFrQixHQThDdEQ7QUE5Q1ksMENBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVCNUIscUZBQXFFO0FBQ3JFLHlFQUF3RTtBQUN4RSw2REFBc0U7QUEwQnRFO0lBQXNDLG9DQUFrQjtJQUd2RDtlQUNDLGlCQUFPO0lBQ1IsQ0FBQztJQUVELHNCQUFJLG1DQUFLO2FBQVQ7WUFDQyxPQUFPLEtBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFPLENBQUM7UUFDN0IsQ0FBQzthQUVELFVBQVUsS0FBYTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQzs7O09BSkE7SUFNRCxzQkFBSSxtQ0FBSzthQUFUO1lBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakMsQ0FBQzs7O09BQUE7SUFFRCw0Q0FBaUIsR0FBakI7UUFDQyxpQkFBTSxpQkFBaUIsV0FBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCwwQ0FBZSxHQUFmO1FBQ0MsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBTSxhQUFhLFlBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0ssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0Q7SUFDUixDQUFDO0lBRUQsU0FBUztJQUNGLGlDQUFNLEdBQWIsVUFBYyxNQUFNO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUkscUNBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxtQ0FBUSxHQUFmO1FBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNuQixJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQ2xELENBQUM7SUFDSCxDQUFDO0lBN0NXLGdCQUFnQjtRQXhCNUIsSUFBQSxrQ0FBYSxFQUFDO1lBQ2QsUUFBUSxFQUFFLGNBQWM7WUFDeEIsUUFBUSxFQUFFLGdHQUdEO1lBQ1QsS0FBSyxFQUFFLDhQQWVMO1lBQ0YsU0FBUyxFQUFFLElBQUk7U0FDZixDQUFDO09BQ1csZ0JBQWdCLENBOEM1QjtJQUFELHVCQUFDO0NBOUNELEFBOENDLENBOUNxQyx1Q0FBa0IsR0E4Q3ZEO0FBOUNZLDRDQUFnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDNUI3QixxRkFBcUU7QUFDckUseUVBQXdFO0FBQ3hFLDZEQUFzRTtBQUV0RSxtRUFBOEQ7QUFvRTlEO0lBQXNDLG9DQUFrQjtJQVV2RDtRQUFBLFlBQ0MsaUJBQU8sU0FDUDtRQVBPLHlCQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBR2pDLHlCQUFtQixHQUE0QixFQUFFLENBQUM7O0lBSWxELENBQUM7SUFFRCxzQkFBWSw4Q0FBZ0I7YUFBNUI7WUFDQyxJQUFNLGdCQUFnQixHQUFHLGlCQUFNLGVBQWUsWUFBQyxlQUFlLENBQUMsQ0FBQztZQUNoRSxPQUFPLGdCQUFnQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNwRyxDQUFDOzs7T0FBQTtJQUVELHNCQUFJLG1DQUFLO2FBQVQ7WUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDekIsT0FBTyxJQUFJLENBQUM7YUFDWjtZQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDbEMsQ0FBQzthQUVELFVBQVUsS0FBYTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvRSxPQUFPO2FBQ1A7WUFDRCxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsTUFBTSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQXRCLENBQXNCLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN6QyxPQUFPO2FBQ1A7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3hELENBQUM7OztPQWRBO0lBZ0JELHNCQUFJLG1DQUFLO2FBQVQ7WUFDQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDN0I7WUFDRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3BFLENBQUM7OztPQUFBO0lBRUQsNENBQWlCLEdBQWpCO1FBQ0MsaUJBQU0saUJBQWlCLFdBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsMENBQWUsR0FBZjtRQUFBLGlCQWVDO1FBZEEsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGlCQUFNLGFBQWEsWUFBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQU0sYUFBYSxZQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxpQkFBTSxlQUFlLFlBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO1FBQ0ssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN2RTtRQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO1lBQy9DLEtBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyw0Q0FBaUIsR0FBekI7UUFBQSxpQkF5Q0M7UUF4Q0EsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM5QyxPQUFPO1NBQ1A7UUFDRCxJQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDbEMsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxVQUFDLE1BQTZCLEVBQUUsS0FBSztZQUN6RSxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUMsSUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMscUJBQXFCLEVBQUU7Z0JBQ25FLE9BQU87YUFDUDtZQUNELEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEMsSUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ25ELGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNoRCxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pDLElBQU0sb0JBQW9CLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDOUQsb0JBQW9CLENBQUMsU0FBUyxHQUFHLG9CQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbEYsZUFBZSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQU0sMEJBQTBCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRSwwQkFBMEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDMUUsMEJBQTBCLENBQUMsU0FBUyxHQUFHLG9CQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDOUYsZUFBZSxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ3hELGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUU7Z0JBQzdDLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUNILEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sMkNBQWdCLEdBQXhCO1FBQ0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQU0sV0FBVyxHQUFHLGlCQUFNLGVBQWUsWUFBQyxlQUFlLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2pCLE9BQU87U0FDUDtRQUNELFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sZ0RBQXFCLEdBQTdCLFVBQThCLE1BQTZCO1FBQzFELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8seUNBQWMsR0FBdEI7UUFBQSxpQkEwQkM7UUF6QkEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxVQUFDLEtBQUs7WUFDdkQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsS0FBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDeEI7WUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO2dCQUM5QixJQUFJLENBQUMsS0FBSSxDQUFDLGdCQUFnQixFQUFFO29CQUMzQixPQUFPO2lCQUNQO2dCQUNELEtBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFJLENBQUMsbUJBQW1CLEtBQUssS0FBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDL0gsS0FBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7YUFDcEM7WUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO2dCQUM1QixJQUFJLENBQUMsS0FBSSxDQUFDLGdCQUFnQixFQUFFO29CQUMzQixPQUFPO2lCQUNQO2dCQUNELEtBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFJLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztnQkFDL0gsS0FBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7YUFDcEM7WUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO2dCQUMxQixJQUFJLEtBQUksQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQzdELEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztvQkFDL0UsT0FBTztpQkFDUDthQUNEO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsdURBQTRCLEdBQTVCO1FBQUEsaUJBV0M7UUFWQSxJQUFNLGVBQWUsR0FBRyxpQkFBTSxnQkFBZ0IsWUFBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDckIsT0FBTztTQUNQO1FBQ0QsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFDLFFBQVEsRUFBRSxLQUFLO1lBQ3ZDLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLElBQUksS0FBSyxLQUFLLEtBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxpQ0FBTSxHQUFiLFVBQWMsTUFBTTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sbUNBQVEsR0FBZjtRQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbkIsSUFBSSxxQ0FBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQWpMVyxnQkFBZ0I7UUFsRTVCLElBQUEsa0NBQWEsRUFBQztZQUNkLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsUUFBUSxFQUFFLGdJQUlGO1lBQ1IsS0FBSyxFQUFFLGt4Q0F3RE47WUFDRCxTQUFTLEVBQUUsSUFBSTtTQUNmLENBQUM7T0FDVyxnQkFBZ0IsQ0FrTDVCO0lBQUQsdUJBQUM7Q0FsTEQsQUFrTEMsQ0FsTHFDLHVDQUFrQixHQWtMdkQ7QUFsTFksNENBQWdCOzs7Ozs7QUNoRTdCO0lBQ0ksZ0NBQW1CLEtBQVUsRUFBUyxTQUFpQjtRQUFwQyxVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQVMsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUFHLENBQUM7SUFDL0QsNkJBQUM7QUFBRCxDQUZBLEFBRUMsSUFBQTtBQUZZLHdEQUFzQjtBQUduQyxvR0FBb0c7QUFDcEc7SUFBQTtRQUFBLGlCQWtDQztRQWpDVyxjQUFTLEdBQWtCLEVBQUUsQ0FBQztRQUM5QixtQkFBYyxHQUFrQixFQUFFLENBQUM7UUFFM0MsT0FBRSxHQUFHLFVBQUMsUUFBcUI7WUFDdkIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsT0FBTztnQkFDSCxPQUFPLEVBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQWxCLENBQWtCO2FBQ3BDLENBQUM7UUFDTixDQUFDLENBQUM7UUFFRixTQUFJLEdBQUcsVUFBQyxRQUFxQjtZQUN6QixLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUM7UUFFRixRQUFHLEdBQUcsVUFBQyxRQUFxQjtZQUN4QixJQUFJLGFBQWEsR0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRCxJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7Z0JBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQztRQUVGLFNBQUksR0FBRyxVQUFDLEtBQVE7WUFDWixtQ0FBbUM7WUFDbkMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUM7WUFFcEQsNkJBQTZCO1lBQzdCLElBQUksS0FBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQyxLQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFBLFFBQVEsSUFBSSxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZixDQUFlLENBQUMsQ0FBQztnQkFDekQsS0FBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7YUFDNUI7UUFDTCxDQUFDLENBQUM7UUFFRixTQUFJLEdBQUcsVUFBQyxFQUF5QjtZQUM3QixPQUFPLEtBQUksQ0FBQyxFQUFFLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFWLENBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFBRCx5QkFBQztBQUFELENBbENBLEFBa0NDLElBQUE7QUFsQ1ksZ0RBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaL0IsK0NBQTRFO0FBRTVFLG1EQUE4QztBQUM5QywrQ0FBMEM7QUFFMUM7SUFBQTtJQUVBLENBQUM7SUFBRCxrQkFBQztBQUFELENBRkEsQUFFQyxJQUFBO0FBQ0Q7SUFBaUQsc0NBQVc7SUE0QjNEO1FBQUEsWUFDQyxpQkFBTyxTQUNQO1FBN0JPLHFCQUFlLEdBQUcsSUFBSSxXQUFXLEVBQVcsQ0FBQztRQUM3QyxxQkFBZSxHQUFHLElBQUksQ0FBQztRQUVyQixhQUFPLEdBQUcsS0FBSyxDQUFDO1FBT25CLGNBQVEsR0FBRyxJQUFJLGlDQUFrQixFQUEwQixDQUFDO1FBQzVELGdCQUFVLEdBQUcsSUFBSSxpQ0FBa0IsRUFBMEIsQ0FBQztRQUM5RCx5QkFBbUIsR0FBRyxJQUFJLGlDQUFrQixFQUEwQixDQUFDO1FBUXZFLDhCQUF3QixHQUFZLEtBQUssQ0FBQztRQUMxQyxXQUFLLEdBQVksS0FBSyxDQUFDO1FBa0I5QixtQkFBYSxHQUFHLEVBQUUsQ0FBQzs7SUFWbkIsQ0FBQztJQVlELG9EQUF1QixHQUF2QixVQUF3QixHQUFRO1FBQWhDLGlCQWFDO1FBWkEsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQzVDLElBQUksUUFBTSxHQUFHLEtBQUssQ0FBQztZQUNuQixHQUFHLENBQUMsT0FBTyxDQUFDLFVBQUEsT0FBTztnQkFDbEIsSUFBTSxjQUFjLEdBQUcsS0FBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLElBQUksT0FBTyxFQUFaLENBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM5RSxJQUFJLGNBQWMsRUFBRTtvQkFDbkIsUUFBTSxHQUFHLElBQUksQ0FBQztvQkFDZCxPQUFPO2lCQUNQO1lBQ0YsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLFFBQU0sQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsSUFBSSxHQUFHLEVBQVIsQ0FBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELDhDQUFpQixHQUFqQjtRQUNDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsaUNBQUksR0FBSjtRQUFBLGlCQVdDO1FBVkEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQy9CLEtBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHNDQUFTLEdBQWpCO1FBQ0MsSUFBSTtZQUNILElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksaUJBQWlCLENBQUMsRUFBRTtnQkFDckQsT0FBTzthQUNQO1lBQ0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM1QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1lBQzVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM3QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1lBQzlELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ2xDO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xCO0lBQ0YsQ0FBQztJQUVPLHVDQUFVLEdBQWxCO1FBQUEsaUJBb0JDO1FBbkJBLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQUEsQ0FBQztZQUNuQixJQUFJLEtBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2YsSUFBSSxLQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLEVBQUU7b0JBQzlDLEtBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN0RSxLQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDakU7YUFDRDtpQkFBTTtnQkFDTixJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsRUFBRTtvQkFDOUMsS0FBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ25FLEtBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNwRTtnQkFDRCxLQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFBLENBQUM7WUFDakIsSUFBSSxLQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQixLQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDaEI7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTywwQ0FBYSxHQUFyQjtRQUNDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sNkNBQWdCLEdBQXhCO1FBQ0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDcEUsS0FBd0IsVUFBNkIsRUFBN0IsS0FBQSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUE3QixjQUE2QixFQUE3QixJQUE2QixFQUFFO2dCQUFsRCxJQUFNLFNBQVMsU0FBQTtnQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDdEM7U0FDRDtRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2xFLEtBQXdCLFVBQTRCLEVBQTVCLEtBQUEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBNUIsY0FBNEIsRUFBNUIsSUFBNEIsRUFBRTtnQkFBakQsSUFBTSxTQUFTLFNBQUE7Z0JBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDbEQsS0FBSyxJQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUM1QyxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM1QyxLQUF3QixVQUFnQixFQUFoQixLQUFBLFVBQVUsQ0FBQyxLQUFLLEVBQWhCLGNBQWdCLEVBQWhCLElBQWdCLEVBQUU7d0JBQXJDLElBQU0sU0FBUyxTQUFBO3dCQUNuQixJQUFJLENBQUMsY0FBYyxDQUNsQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsQ0FBQyxLQUFLLEVBQ2hCLFVBQVUsQ0FBQyxRQUFRLENBQ25CLENBQUM7cUJBQ0Y7aUJBQ0Q7YUFDRDtTQUNEO0lBQ0YsQ0FBQztJQUVPLDJDQUFjLEdBQXRCLFVBQXVCLFdBQW1CLEVBQUUsSUFBWSxFQUFFLEtBQWMsRUFBRSxRQUFpQjtRQUEzRixpQkFzQ0M7UUFyQ0EsSUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFVLFdBQVcsUUFBSSxDQUF1QixDQUFDO1FBQ3RGLElBQUksT0FBTyxZQUFZLGtCQUFrQixFQUFFO1lBQzFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0RCxPQUFPO2FBQ1A7WUFDRCxJQUFJLGtCQUFrQixHQUFHLElBQUksS0FBSyxJQUFJLENBQUM7WUFDdkMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFBLENBQUM7Z0JBQ2pCLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixJQUFJLElBQUksS0FBSyxLQUFLLEVBQUU7b0JBQ25CLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2lCQUMvQjtnQkFDRCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7b0JBQ2xCLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztpQkFDOUI7Z0JBQ0QsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO29CQUN0QixJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUU7d0JBQ3pCLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzlEO3lCQUFNLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRTt3QkFDbkMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7cUJBQ3JDO3lCQUFNLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRTt3QkFDbkMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7cUJBQ3JDO2lCQUNEO2dCQUNELE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLFVBQUEsQ0FBQztnQkFDNUIsSUFBSSxLQUFJLENBQUMsZUFBZSxFQUFFO29CQUN6QixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDakIsSUFBSSxxQ0FBc0IsQ0FBQyxLQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUNoRCxDQUFDO2lCQUNGO3FCQUFNO29CQUNOLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUNsRDtZQUNGLENBQUMsQ0FBQyxDQUFDO1NBQ0g7SUFDRixDQUFDO0lBRU8sMENBQWEsR0FBckI7UUFDQyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssRUFBTCxDQUFLLENBQUMsQ0FBQztTQUNqRjthQUFNO1lBQ04sSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFLLEVBQUwsQ0FBSyxDQUFDLENBQUM7U0FDaEY7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ1o7YUFBTTtZQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNaO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTyxpQ0FBSSxHQUFaO1FBQ0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDckU7SUFDRixDQUFDO0lBRU8saUNBQUksR0FBWjtRQUNDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwRTtJQUNGLENBQUM7SUFFUywwQ0FBYSxHQUF2QixVQUF3QixRQUFnQjtRQUN2QyxJQUFJLE9BQU8sR0FBUSxJQUFJLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBcUIsQ0FBQztJQUM1RCxDQUFDO0lBRVMsMkNBQWMsR0FBeEIsVUFBeUIsUUFBZ0I7UUFDeEMsSUFBSSxPQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUMxQjtRQUNELE9BQU8sbUJBQVMsQ0FBQyxZQUFZLENBQzVCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FDWixDQUFDO0lBQ3pCLENBQUM7SUFFUyw0Q0FBZSxHQUF6QixVQUEwQixRQUFnQjtRQUN6QyxJQUFJLE9BQU8sR0FBUSxJQUFJLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBZ0IsQ0FBQztJQUN2RCxDQUFDO0lBRVMsNkNBQWdCLEdBQTFCLFVBQTJCLFFBQWdCO1FBQzFDLElBQUksT0FBTyxHQUFRLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDMUI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQWtCLENBQUM7SUFDNUQsQ0FBQztJQUVNLGdEQUFtQixHQUExQixVQUEyQixJQUFZLEVBQUUsWUFBNkI7UUFBN0IsNkJBQUEsRUFBQSxvQkFBNkI7UUFDckUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxvREFBdUIsR0FBOUIsVUFBK0IsSUFBWSxFQUFFLEtBQWM7UUFDMUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0YseUJBQUM7QUFBRCxDQWhSQSxBQWdSQyxDQWhSZ0QsV0FBVyxHQWdSM0Q7QUFoUnFCLGdEQUFrQjs7Ozs7QUNSeEM7SUFBQTtJQWVBLENBQUM7SUFaQSw0QkFBRyxHQUFILFVBQUksR0FBVztRQUNkLElBQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxNQUFNLEdBQWlCLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDM0MsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFBLE9BQU87WUFDdkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNaLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQ2IsT0FBTzthQUNQO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRixxQkFBQztBQUFELENBZkEsQUFlQyxJQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNmRCx3REFBbUQ7QUFFbkQ7SUFBNkMsbUNBQWM7SUFBM0Q7UUFBQSxxRUFlQztRQWJHLGdCQUFVLEdBQVE7WUFDZCxjQUFjLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxNQUFNO2dCQUNmLEdBQUcsRUFBRSwwQkFBMEI7YUFDbEM7WUFDRCxXQUFXLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLE1BQU07Z0JBQ2Ysa0JBQWtCLEVBQUUsbUJBQW1CO2FBQzFDO1NBQ0osQ0FBQzs7SUFFTixDQUFDO0lBQUQsc0JBQUM7QUFBRCxDQWZBLEFBZUMsQ0FmNEMsd0JBQWMsR0FlMUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2pCRCx3REFBbUQ7QUFFbkQ7SUFBOEMsb0NBQWM7SUFBNUQ7UUFBQSxxRUFlQztRQWJBLGdCQUFVLEdBQVE7WUFDakIsY0FBYyxFQUFFO2dCQUNmLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsTUFBTTtnQkFDZixHQUFHLEVBQUUsWUFBWTthQUNqQjtZQUNELFdBQVcsRUFBRTtnQkFDWixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsa0JBQWtCLEVBQUUscUJBQXFCO2FBQ3pDO1NBQ0QsQ0FBQzs7SUFFSCxDQUFDO0lBQUQsdUJBQUM7QUFBRCxDQWZBLEFBZUMsQ0FmNkMsd0JBQWMsR0FlM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2pCRCx3REFBbUQ7QUFFbkQ7SUFBNkMsbUNBQWM7SUFBM0Q7UUFBQSxxRUFlQztRQWJHLGdCQUFVLEdBQVE7WUFDZCxjQUFjLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLElBQUksRUFBRSxNQUFNO2dCQUNaLE9BQU8sRUFBRSxNQUFNO2dCQUNmLEdBQUcsRUFBRSxVQUFVO2FBQ2xCO1lBQ0QsV0FBVyxFQUFFO2dCQUNULE9BQU8sRUFBRSxjQUFjO2dCQUN2QixrQkFBa0IsRUFBRSxnQ0FBZ0M7YUFDdkQ7U0FDSixDQUFDOztJQUVOLENBQUM7SUFBRCxzQkFBQztBQUFELENBZkEsQUFlQyxDQWY0Qyx3QkFBYyxHQWUxRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakJELHdEQUFtRDtBQUVuRDtJQUErQyxxQ0FBYztJQUE3RDtRQUFBLHFFQWVDO1FBYkEsZ0JBQVUsR0FBUTtZQUNqQixjQUFjLEVBQUU7Z0JBQ2YsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLElBQUksRUFBRSxNQUFNO2dCQUNaLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixHQUFHLEVBQUUsS0FBSzthQUNWO1lBQ0QsV0FBVyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixrQkFBa0IsRUFBRSxrQ0FBa0M7YUFDdEQ7U0FDRCxDQUFDOztJQUVILENBQUM7SUFBRCx3QkFBQztBQUFELENBZkEsQUFlQyxDQWY4Qyx3QkFBYyxHQWU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakJELHdEQUFtRDtBQUVuRDtJQUFnRCxzQ0FBYztJQUE5RDtRQUFBLHFFQWVDO1FBYkcsZ0JBQVUsR0FBUTtZQUNkLGNBQWMsRUFBRTtnQkFDWixPQUFPLEVBQUUsU0FBUztnQkFDbEIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osT0FBTyxFQUFFLE1BQU07Z0JBQ2YsR0FBRyxFQUFFLGFBQWE7YUFDckI7WUFDRCxXQUFXLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLFlBQVk7Z0JBQ3JCLGtCQUFrQixFQUFFLGlDQUFpQzthQUN4RDtTQUNKLENBQUM7O0lBRU4sQ0FBQztJQUFELHlCQUFDO0FBQUQsQ0FmQSxBQWVDLENBZitDLHdCQUFjLEdBZTdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkQsd0RBQW1EO0FBRW5EO0lBQStDLHFDQUFjO0lBQTdEO1FBQUEscUVBZUM7UUFiRyxnQkFBVSxHQUFRO1lBQ2QsY0FBYyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsR0FBRyxFQUFFLGFBQWE7YUFDckI7WUFDRCxXQUFXLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLFlBQVk7Z0JBQ3JCLGtCQUFrQixFQUFFLGlDQUFpQzthQUN4RDtTQUNKLENBQUM7O0lBRU4sQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FmQSxBQWVDLENBZjhDLHdCQUFjLEdBZTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkQsd0RBQW1EO0FBRW5EO0lBQThDLG9DQUFjO0lBQTVEO1FBQUEscUVBZUM7UUFiRyxnQkFBVSxHQUFRO1lBQ2QsY0FBYyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixJQUFJLEVBQUUsT0FBTztnQkFDYixPQUFPLEVBQUUsTUFBTTtnQkFDZixHQUFHLEVBQUUsYUFBYTthQUNyQjtZQUNELFdBQVcsRUFBRTtnQkFDVCxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixrQkFBa0IsRUFBRSw0Q0FBNEM7YUFDbkU7U0FDSixDQUFDOztJQUVOLENBQUM7SUFBRCx1QkFBQztBQUFELENBZkEsQUFlQyxDQWY2Qyx3QkFBYyxHQWUzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakJELHdEQUFtRDtBQUVuRDtJQUE4QyxvQ0FBYztJQUE1RDtRQUFBLHFFQWVDO1FBYkcsZ0JBQVUsR0FBUTtZQUNkLGNBQWMsRUFBRTtnQkFDWixPQUFPLEVBQUUsU0FBUztnQkFDbEIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsR0FBRyxFQUFFLGNBQWM7YUFDdEI7WUFDRCxXQUFXLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLGtCQUFrQixFQUFFLCtCQUErQjthQUN0RDtTQUNKLENBQUM7O0lBRU4sQ0FBQztJQUFELHVCQUFDO0FBQUQsQ0FmQSxBQWVDLENBZjZDLHdCQUFjLEdBZTNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkQsd0RBQW1EO0FBRW5EO0lBQTZDLG1DQUFjO0lBQTNEO1FBQUEscUVBZUM7UUFiRyxnQkFBVSxHQUFRO1lBQ2QsY0FBYyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixJQUFJLEVBQUUsTUFBTTtnQkFDWixPQUFPLEVBQUUsTUFBTTtnQkFDZixHQUFHLEVBQUUsc0JBQXNCO2FBQzlCO1lBQ0QsV0FBVyxFQUFFO2dCQUNULE9BQU8sRUFBRSx3QkFBd0I7Z0JBQ2pDLGtCQUFrQixFQUFFLHlDQUF5QzthQUNoRTtTQUNKLENBQUM7O0lBRU4sQ0FBQztJQUFELHNCQUFDO0FBQUQsQ0FmQSxBQWVDLENBZjRDLHdCQUFjLEdBZTFEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkQsd0RBQW1EO0FBRW5EO0lBQWlELHVDQUFjO0lBQS9EO1FBQUEscUVBZUM7UUFiRyxnQkFBVSxHQUFRO1lBQ2QsY0FBYyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxLQUFLO2dCQUNkLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixHQUFHLEVBQUUsY0FBYzthQUN0QjtZQUNELFdBQVcsRUFBRTtnQkFDVCxPQUFPLEVBQUUsY0FBYztnQkFDdkIsa0JBQWtCLEVBQUUsa0NBQWtDO2FBQ3pEO1NBQ0osQ0FBQzs7SUFFTixDQUFDO0lBQUQsMEJBQUM7QUFBRCxDQWZBLEFBZUMsQ0FmZ0Qsd0JBQWMsR0FlOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2pCRCx3REFBbUQ7QUFFbkQ7SUFBaUQsdUNBQWM7SUFBL0Q7UUFBQSxxRUFlQztRQWJHLGdCQUFVLEdBQVE7WUFDZCxjQUFjLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLElBQUksRUFBRSxNQUFNO2dCQUNaLE9BQU8sRUFBRSxNQUFNO2dCQUNmLEdBQUcsRUFBRSxXQUFXO2FBQ25CO1lBQ0QsV0FBVyxFQUFFO2dCQUNULE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLGtCQUFrQixFQUFFLG1DQUFtQzthQUMxRDtTQUNKLENBQUM7O0lBRU4sQ0FBQztJQUFELDBCQUFDO0FBQUQsQ0FmQSxBQWVDLENBZmdELHdCQUFjLEdBZTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkQsd0RBQW1EO0FBRW5EO0lBQStDLHFDQUFjO0lBQTdEO1FBQUEscUVBZUM7UUFiRyxnQkFBVSxHQUFRO1lBQ2QsY0FBYyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixJQUFJLEVBQUUsT0FBTztnQkFDYixPQUFPLEVBQUUsU0FBUztnQkFDbEIsR0FBRyxFQUFFLGdCQUFnQjthQUN4QjtZQUNELFdBQVcsRUFBRTtnQkFDVCxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixrQkFBa0IsRUFBRSw0Q0FBNEM7YUFDbkU7U0FDSixDQUFDOztJQUVOLENBQUM7SUFBRCx3QkFBQztBQUFELENBZkEsQUFlQyxDQWY4Qyx3QkFBYyxHQWU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakJELHdEQUFtRDtBQUVuRDtJQUErQyxxQ0FBYztJQUE3RDtRQUFBLHFFQWVDO1FBYkcsZ0JBQVUsR0FBUTtZQUNkLGNBQWMsRUFBRTtnQkFDWixPQUFPLEVBQUUsUUFBUTtnQkFDakIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLEdBQUcsRUFBRSxlQUFlO2FBQ3ZCO1lBQ0QsV0FBVyxFQUFFO2dCQUNULE9BQU8sRUFBRSxjQUFjO2dCQUN2QixrQkFBa0IsRUFBRSxtQ0FBbUM7YUFDMUQ7U0FDSixDQUFDOztJQUVOLENBQUM7SUFBRCx3QkFBQztBQUFELENBZkEsQUFlQyxDQWY4Qyx3QkFBYyxHQWU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakJELHdEQUFtRDtBQUVuRDtJQUFpRCx1Q0FBYztJQUEvRDtRQUFBLHFFQWVDO1FBYkcsZ0JBQVUsR0FBUTtZQUNkLGNBQWMsRUFBRTtnQkFDWixPQUFPLEVBQUUsU0FBUztnQkFDbEIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLEdBQUcsRUFBRSxhQUFhO2FBQ3JCO1lBQ0QsV0FBVyxFQUFFO2dCQUNULE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLGtCQUFrQixFQUFFLHVDQUF1QzthQUM5RDtTQUNKLENBQUM7O0lBRU4sQ0FBQztJQUFELDBCQUFDO0FBQUQsQ0FmQSxBQWVDLENBZmdELHdCQUFjLEdBZTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkQsd0RBQW1EO0FBRW5EO0lBQWlELHVDQUFjO0lBQS9EO1FBQUEscUVBZUM7UUFiRyxnQkFBVSxHQUFRO1lBQ2QsY0FBYyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsTUFBTTtnQkFDZixHQUFHLEVBQUUsWUFBWTthQUNwQjtZQUNELFdBQVcsRUFBRTtnQkFDVCxPQUFPLEVBQUUsV0FBVztnQkFDcEIsa0JBQWtCLEVBQUUsbUNBQW1DO2FBQzFEO1NBQ0osQ0FBQzs7SUFFTixDQUFDO0lBQUQsMEJBQUM7QUFBRCxDQWZBLEFBZUMsQ0FmZ0Qsd0JBQWMsR0FlOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2pCRCx3REFBbUQ7QUFFbkQ7SUFBOEMsb0NBQWM7SUFBNUQ7UUFBQSxxRUFlQztRQWJHLGdCQUFVLEdBQVE7WUFDZCxjQUFjLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLElBQUksRUFBRSxRQUFRO2dCQUNkLE9BQU8sRUFBRSxNQUFNO2dCQUNmLEdBQUcsRUFBRSxjQUFjO2FBQ3RCO1lBQ0QsV0FBVyxFQUFFO2dCQUNULE9BQU8sRUFBRSxlQUFlO2dCQUN4QixrQkFBa0IsRUFBRSxxQ0FBcUM7YUFDNUQ7U0FDSixDQUFDOztJQUVOLENBQUM7SUFBRCx1QkFBQztBQUFELENBZkEsQUFlQyxDQWY2Qyx3QkFBYyxHQWUzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDakJELHdEQUFtRDtBQUVuRDtJQUFrRCx3Q0FBYztJQUFoRTtRQUFBLHFFQWVDO1FBYkcsZ0JBQVUsR0FBUTtZQUNkLGNBQWMsRUFBRTtnQkFDWixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsR0FBRyxFQUFFLGVBQWU7YUFDdkI7WUFDRCxXQUFXLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsa0JBQWtCLEVBQUUsc0NBQXNDO2FBQzdEO1NBQ0osQ0FBQzs7SUFFTixDQUFDO0lBQUQsMkJBQUM7QUFBRCxDQWZBLEFBZUMsQ0FmaUQsd0JBQWMsR0FlL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2pCRCx3REFBbUQ7QUFFbkQ7SUFBK0MscUNBQWM7SUFBN0Q7UUFBQSxxRUFlQztRQWJHLGdCQUFVLEdBQVE7WUFDZCxjQUFjLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLElBQUksRUFBRSxRQUFRO2dCQUNkLE9BQU8sRUFBRSxNQUFNO2dCQUNmLEdBQUcsRUFBRSxlQUFlO2FBQ3ZCO1lBQ0QsV0FBVyxFQUFFO2dCQUNULE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLGtCQUFrQixFQUFFLHVDQUF1QzthQUM5RDtTQUNKLENBQUM7O0lBRU4sQ0FBQztJQUFELHdCQUFDO0FBQUQsQ0FmQSxBQWVDLENBZjhDLHdCQUFjLEdBZTVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqQkQsd0RBQW1EO0FBRW5EO0lBQStDLHFDQUFjO0lBQTdEO1FBQUEscUVBZUM7UUFiRyxnQkFBVSxHQUFRO1lBQ2QsY0FBYyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixJQUFJLEVBQUUsTUFBTTtnQkFDWixPQUFPLEVBQUUsTUFBTTtnQkFDZixHQUFHLEVBQUUsWUFBWTthQUNwQjtZQUNELFdBQVcsRUFBRTtnQkFDVCxPQUFPLEVBQUUsV0FBVztnQkFDcEIsa0JBQWtCLEVBQUUsOEJBQThCO2FBQ3JEO1NBQ0osQ0FBQzs7SUFFTixDQUFDO0lBQUQsd0JBQUM7QUFBRCxDQWZBLEFBZUMsQ0FmOEMsd0JBQWMsR0FlNUQ7Ozs7OztBQ2pCRCxpRUFBNEQ7QUFDNUQsbUVBQThEO0FBQzlELCtEQUEwRDtBQUMxRCxpRUFBNEQ7QUFDNUQsK0RBQTBEO0FBQzFELG1FQUE4RDtBQUM5RCxxRUFBZ0U7QUFDaEUsbUVBQThEO0FBQzlELGlFQUE0RDtBQUM1RCx1RUFBa0U7QUFDbEUsdUVBQWtFO0FBQ2xFLG1FQUE4RDtBQUM5RCxtRUFBOEQ7QUFDOUQsdUVBQWtFO0FBQ2xFLCtEQUEwRDtBQUMxRCx1RUFBa0U7QUFDbEUsaUVBQTREO0FBQzVELHlFQUFvRTtBQUNwRSxtRUFBOEQ7QUFFOUQ7SUFBQTtJQTBGQSxDQUFDO0lBL0NPLG9CQUFTLEdBQWhCLFVBQWlCLEdBQVcsRUFBRSxRQUFlO1FBQWYseUJBQUEsRUFBQSxlQUFlO1FBQzVDLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBTSxtQkFBbUIsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDekIsUUFBUSxHQUFHLElBQUksQ0FBQTtTQUNmO1FBQ0QsUUFBUSxRQUFRLEVBQUU7WUFDakIsS0FBSyxJQUFJO2dCQUNSLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxLQUFLLElBQUk7Z0JBQ1IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLEtBQUssSUFBSTtnQkFDTCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLEtBQUssSUFBSTtnQkFDTCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUMsS0FBSyxJQUFJO2dCQUNMLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsS0FBSyxJQUFJO2dCQUNMLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxLQUFLLElBQUk7Z0JBQ0wsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLEtBQUssSUFBSTtnQkFDTCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsS0FBSyxJQUFJO2dCQUNMLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQyxLQUFLLElBQUk7Z0JBQ0wsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdDLEtBQUssSUFBSTtnQkFDTCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsS0FBSyxJQUFJO2dCQUNMLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxLQUFLLElBQUk7Z0JBQ0wsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLEtBQUssSUFBSTtnQkFDTCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0MsS0FBSyxJQUFJO2dCQUNMLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsS0FBSyxJQUFJO2dCQUNMLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxLQUFLLElBQUk7Z0JBQ0wsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLEtBQUssSUFBSTtnQkFDTCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsS0FBSyxJQUFJO2dCQUNMLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwRDtJQUNGLENBQUM7SUF4RmMsb0JBQVMsR0FBRztRQUMxQixJQUFJO1FBQ0osSUFBSTtRQUNFLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO1FBQ0osSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJO0tBQ1YsQ0FBQztJQUVhLDJCQUFnQixHQUFHLElBQUksMEJBQWdCLEVBQUUsQ0FBQztJQUMxQyw0QkFBaUIsR0FBRyxJQUFJLDJCQUFpQixFQUFFLENBQUM7SUFDekMsMEJBQWUsR0FBRyxJQUFJLHlCQUFlLEVBQUUsQ0FBQztJQUN4QywyQkFBZ0IsR0FBRyxJQUFJLDBCQUFnQixFQUFFLENBQUM7SUFDMUMsMEJBQWUsR0FBRyxJQUFJLHlCQUFlLEVBQUUsQ0FBQztJQUN4Qyw0QkFBaUIsR0FBRyxJQUFJLDJCQUFpQixFQUFFLENBQUM7SUFDNUMsNkJBQWtCLEdBQUcsSUFBSSw0QkFBa0IsRUFBRSxDQUFDO0lBQzlDLDRCQUFpQixHQUFHLElBQUksMkJBQWlCLEVBQUUsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxJQUFJLDBCQUFnQixFQUFFLENBQUM7SUFDMUMsOEJBQW1CLEdBQUcsSUFBSSw2QkFBbUIsRUFBRSxDQUFDO0lBQ2hELDhCQUFtQixHQUFHLElBQUksNkJBQW1CLEVBQUUsQ0FBQztJQUNoRCw0QkFBaUIsR0FBRyxJQUFJLDJCQUFpQixFQUFFLENBQUM7SUFDNUMsNEJBQWlCLEdBQUcsSUFBSSwyQkFBaUIsRUFBRSxDQUFDO0lBQzVDLDhCQUFtQixHQUFHLElBQUksNkJBQW1CLEVBQUUsQ0FBQztJQUNoRCwwQkFBZSxHQUFHLElBQUkseUJBQWUsRUFBRSxDQUFDO0lBQ3hDLDhCQUFtQixHQUFHLElBQUksNkJBQW1CLEVBQUUsQ0FBQztJQUNoRCwyQkFBZ0IsR0FBRyxJQUFJLDBCQUFnQixFQUFFLENBQUM7SUFDMUMsK0JBQW9CLEdBQUcsSUFBSSw4QkFBb0IsRUFBRSxDQUFDO0lBQ2xELDRCQUFpQixHQUFHLElBQUksMkJBQWlCLEVBQUUsQ0FBQztJQWlEL0QsaUJBQUM7Q0ExRkQsQUEwRkMsSUFBQTtrQkExRm9CLFVBQVU7Ozs7O0FDcEIvQixTQUF3Qix5QkFBeUI7SUFDaEQsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixJQUFJLFNBQVMsRUFBRTtRQUNyRCxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHO1lBQ3JDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDakMsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMvQixJQUFJLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNoQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUMvQjtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDO0tBQ0Y7QUFDRixDQUFDO0FBWkQsNENBWUM7QUFBQSxDQUFDOzs7OztBQ1pGO0lBQUE7SUE4QkEsQ0FBQztJQTdCYyxzQkFBWSxHQUExQixVQUEyQyxJQUFtQjtRQUM3RCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVjLHNCQUFZLEdBQTNCLFVBQStCLE1BQWEsRUFBRSxJQUFPO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDZjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRWMsa0JBQVEsR0FBdkIsVUFBMkIsTUFBYSxFQUFFLElBQU87UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFYSxpQ0FBdUIsR0FBckMsVUFBeUMsS0FBVSxFQUFFLFFBQTBCO1FBQS9FLGlCQVlDO1FBWEEsSUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQixJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hDLEtBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzdCO2lCQUFNO2dCQUNOLEtBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3pCO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUNGLGdCQUFDO0FBQUQsQ0E5QkEsQUE4QkMsSUFBQTs7Ozs7O0FDOUJELCtDQUE4QztBQUU5QztJQUdJLGlCQUFZLE9BQWdCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSwyQkFBWSxDQUFDLElBQUksQ0FBQyxPQUFzQixDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLDZCQUFXLEdBQWxCLFVBQW1CLElBQVksRUFBRSxZQUFxQjtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFRLElBQU0sQ0FBQyxDQUFDO1FBRXhELE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDdEQsQ0FBQztJQUVNLDZCQUFXLEdBQWxCLFVBQW1CLElBQVksRUFBRSxLQUFhO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBUSxJQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLHlCQUFPLEdBQWQsVUFBZSxJQUFZLEVBQUUsWUFBcUI7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUN0RCxDQUFDO0lBRU0seUJBQU8sR0FBZCxVQUFlLElBQVksRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sNEJBQVUsR0FBakIsVUFBa0IsSUFBWTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sZ0NBQWMsR0FBckIsVUFBc0IsSUFBWTtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFRLElBQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSx5QkFBTyxHQUFkLFVBQWUsSUFBWTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSx1QkFBSyxHQUFaO1FBQUEsaUJBTUM7UUFMRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLFVBQVUsQ0FBQztZQUNQLEtBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekIsS0FBSSxDQUFDLE9BQTRCLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN4RCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sdUJBQUssR0FBWjtRQUFBLGlCQU1DO1FBTEcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixVQUFVLENBQUM7WUFDUCxLQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pCLEtBQUksQ0FBQyxPQUE0QixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVNLHVCQUFLLEdBQVo7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVNLDZCQUFXLEdBQWxCLFVBQW1CLFNBQVM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSw2QkFBVyxHQUFsQixVQUFtQixTQUFTO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sK0JBQWEsR0FBcEI7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSwyQ0FBeUIsR0FBaEMsVUFBaUMsSUFBWSxFQUFFLEtBQWE7UUFDeEQsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQWYsQ0FBZSxDQUFDLENBQUM7UUFDOUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQ3pDLGFBQVUsV0FBVyxRQUFJLENBQ1IsQ0FBQztRQUN0QixJQUFJLFVBQVUsRUFBRTtZQUNaLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVNLDBCQUFRLEdBQWYsVUFBZ0IsU0FBaUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLDBCQUFRLEdBQWYsVUFBZ0IsUUFBZ0I7UUFDNUIsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQWxIQSxBQWtIQyxJQUFBOzs7Ozs7QUNwSEQ7SUFBQTtJQU1BLENBQUM7SUFKQSxxR0FBcUc7SUFDOUYscUJBQVUsR0FBakIsVUFBa0IsU0FBaUIsRUFBRSxvQkFBNEI7UUFDaEUsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUNGLGlCQUFDO0FBQUQsQ0FOQSxBQU1DLElBQUE7Ozs7OztBQ05EO0lBS0kscUJBQVksR0FBVyxFQUFFLE1BQXNCLEVBQUUsT0FBaUI7UUFBekMsdUJBQUEsRUFBQSxjQUFzQjtRQUFFLHdCQUFBLEVBQUEsWUFBaUI7UUFDOUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRU8sZ0NBQVUsR0FBbEIsVUFBbUIsV0FBMkI7UUFDMUMsS0FBSyxJQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQy9CLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQzlEO0lBQ0wsQ0FBQztJQUVELDBCQUFJLEdBQUosVUFBSyxJQUFnQjtRQUFyQixpQkE0QkM7UUE1QkkscUJBQUEsRUFBQSxXQUFnQjtRQUNqQixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07WUFDL0IsSUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUM1QyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLEtBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEMsY0FBYyxDQUFDLE1BQU0sR0FBRztnQkFDcEIsSUFDSSxjQUFjLENBQUMsTUFBTSxJQUFJLEdBQUc7b0JBQzVCLGNBQWMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUM3QjtvQkFDRSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNwQztxQkFBTTtvQkFDSCxNQUFNLENBQUM7d0JBQ0gsTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNO3dCQUM3QixVQUFVLEVBQUUsY0FBYyxDQUFDLFVBQVU7d0JBQ3JDLElBQUksRUFBRSxjQUFjLENBQUMsUUFBUTtxQkFDaEMsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQyxDQUFDO1lBQ0YsY0FBYyxDQUFDLE9BQU8sR0FBRztnQkFDckIsTUFBTSxDQUFDO29CQUNILE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTTtvQkFDN0IsVUFBVSxFQUFFLGNBQWMsQ0FBQyxVQUFVO29CQUNyQyxJQUFJLEVBQUUsY0FBYyxDQUFDLFFBQVE7aUJBQ2hDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztZQUNGLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0wsa0JBQUM7QUFBRCxDQTlDQSxBQThDQyxJQUFBOzs7Ozs7O0FDOUNEO0lBRUk7SUFDQSxDQUFDO0lBRWEsdUJBQVksR0FBMUIsVUFBMkIsR0FBVztRQUFFLGNBQWlCO2FBQWpCLFVBQWlCLEVBQWpCLHFCQUFpQixFQUFqQixJQUFpQjtZQUFqQiw2QkFBaUI7O1FBQ3JELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBQyxLQUFLLEVBQUUsS0FBSyxJQUFLLE9BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDTCxpQkFBQztBQUFELENBUkEsQUFRQyxJQUFBO0FBUlksZ0NBQVU7Ozs7OztBQ0F2QjtJQUVJLHNCQUFZLE9BQTJCO1FBQTNCLHdCQUFBLEVBQUEsY0FBMkI7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVNLGdDQUFTLEdBQWhCO1FBQ0ksSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE9BQU8sQ0FDSCxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7WUFDekMsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztnQkFDMUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQ3ZELENBQUM7SUFDTixDQUFDO0lBRU0seUNBQWtCLEdBQXpCO1FBQ0ksSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE9BQU8sQ0FDSCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDZixNQUFNLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDaEIsTUFBTSxDQUFDLE1BQU0sSUFBSSxXQUFXO1lBQzVCLE1BQU0sQ0FBQyxLQUFLLElBQUksVUFBVSxDQUM3QixDQUFDO0lBQ04sQ0FBQztJQUVNLHNDQUFlLEdBQXRCLFVBQXVCLE1BQW9CO1FBQXBCLHVCQUFBLEVBQUEsWUFBb0I7UUFDdkMsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELDRDQUE0QztRQUM1QyxPQUFPLENBQ0gsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQztZQUN4QixNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLFdBQVc7WUFDckMsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLElBQUksVUFBVSxDQUN0QyxDQUFDO0lBQ04sQ0FBQztJQUVNLGdDQUFTLEdBQWhCLFVBQWlCLE1BQWtCO1FBQWxCLHVCQUFBLEVBQUEsVUFBa0I7UUFDL0IsSUFBTSxPQUFPLEdBQ1QsTUFBTSxDQUFDLFdBQVc7WUFDbEIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTO1lBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUN2QixDQUFDLENBQUM7UUFDTixPQUFPLE1BQU0sSUFBSSxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0E3Q0EsQUE2Q0MsSUFBQTtBQTdDWSxvQ0FBWTs7Ozs7QUNRekIsSUFBTSxTQUFTLEdBQUcsVUFBQyxJQUFlLEVBQUUsSUFBWSxFQUFFLFNBQTBCO0lBQTFCLDBCQUFBLEVBQUEsaUJBQTBCO0lBQzNFLElBQUksT0FBc0IsQ0FBQztJQUMzQixJQUFJLElBQVMsQ0FBQztJQUNkLElBQUksT0FBWSxDQUFDO0lBQ2pCLElBQUksTUFBVyxDQUFDO0lBRWhCLElBQU0sS0FBSyxHQUFHO1FBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkMsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7U0FDdEI7SUFDRixDQUFDLENBQUM7SUFFRixJQUFNLGFBQWEsR0FBYztRQUNoQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNqQixJQUFNLE9BQU8sR0FBRyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFdEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNiLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksT0FBTyxFQUFFO1lBQ1osTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRixJQUFNLEtBQUssR0FBRztRQUNiLElBQUksT0FBTyxFQUFFO1lBQ1osWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDZjtJQUNGLENBQUMsQ0FBQztJQUVGLElBQU0sS0FBSyxHQUFHO1FBQ2IsSUFBSSxPQUFPLEVBQUU7WUFDWixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkMsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7WUFFdEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDZjtJQUNGLENBQUMsQ0FBQztJQUVGLElBQU0sU0FBUyxHQUFhLENBQUM7UUFDNUIsSUFBTSxDQUFDLEdBQVEsYUFBYSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVMLE9BQU8sU0FBUyxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLGtCQUFlLFNBQVMsQ0FBQzs7Ozs7QUNoRXpCO0lBQUE7SUFJQSxDQUFDO0lBSEcsNENBQWEsR0FBYixVQUFjLEtBQWEsRUFBRSxVQUEwQjtRQUExQiwyQkFBQSxFQUFBLGlCQUEwQjtRQUNuRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0wsMkJBQUM7QUFBRCxDQUpBLEFBSUMsSUFBQTs7Ozs7O0FDSkQ7SUFBQTtJQUtBLENBQUM7SUFIRyw4REFBYSxHQUFiLFVBQWMsS0FBYSxFQUFFLFVBQTBCO1FBQTFCLDJCQUFBLEVBQUEsaUJBQTBCO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDTCw2Q0FBQztBQUFELENBTEEsQUFLQyxJQUFBOzs7Ozs7QUNMRDtJQUFBO0lBa0JBLENBQUM7SUFqQkcsNkNBQWEsR0FBYixVQUFjLEtBQWEsRUFBRSxVQUEwQjtRQUExQiwyQkFBQSxFQUFBLGlCQUEwQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLG1EQUFtQixHQUEzQixVQUNJLEtBQWEsRUFDYixVQUEwQjtRQUExQiwyQkFBQSxFQUFBLGlCQUEwQjtRQUUxQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxVQUFVLENBQUM7U0FDckI7UUFDRCxJQUFNLFlBQVksR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQU0sS0FBSyxHQUFXLElBQUksTUFBTSxDQUM1Qiw4REFBOEQsQ0FDakUsQ0FBQztRQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0wsNEJBQUM7QUFBRCxDQWxCQSxBQWtCQyxJQUFBOzs7Ozs7QUNsQkQ7SUFBQTtJQWtCQSxDQUFDO0lBakJHLDZDQUFhLEdBQWIsVUFBYyxLQUFhLEVBQUUsVUFBMEI7UUFBMUIsMkJBQUEsRUFBQSxpQkFBMEI7UUFDbkQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxtREFBbUIsR0FBM0IsVUFDSSxLQUFhLEVBQ2IsVUFBMEI7UUFBMUIsMkJBQUEsRUFBQSxpQkFBMEI7UUFFMUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sVUFBVSxDQUFDO1NBQ3JCO1FBQ0QsSUFBTSxZQUFZLEdBQVcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFNLEtBQUssR0FBVyxJQUFJLE1BQU0sQ0FDNUIsd0VBQXdFLENBQzNFLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNMLDRCQUFDO0FBQUQsQ0FsQkEsQUFrQkMsSUFBQTs7Ozs7O0FDbEJEO0lBQUE7SUErRUEsQ0FBQztJQTlFRyxvQ0FBYSxHQUFiLFVBQWMsS0FBYSxFQUFFLFVBQTBCO1FBQTFCLDJCQUFBLEVBQUEsaUJBQTBCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNPLHdDQUFpQixHQUF6QixVQUEwQixLQUFhLEVBQUUsS0FBYTtRQUNsRCxJQUFNLE9BQU8sR0FBYSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRU8sMENBQW1CLEdBQTNCLFVBQTRCLEtBQWE7UUFDckMsSUFBTSxjQUFjLEdBQVc7WUFDM0IsSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1NBQ1AsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFqQixDQUFpQixDQUFDLENBQUMsQ0FBQyx1QkFBdUI7UUFFdEQsSUFBTSxPQUFPLEdBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFqQyxDQUFpQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLG1DQUFZLEdBQXBCLFVBQXFCLEtBQWE7UUFDOUIsSUFBSSxJQUFJLEdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUMsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtRQUNyRSxJQUFNLEtBQUssR0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFNLEdBQUcsR0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxHQUFHLENBQ3pCLENBQUM7SUFDTixDQUFDO0lBRU8saUNBQVUsR0FBbEIsVUFBbUIsS0FBYTtRQUM1QixJQUFJLElBQUksR0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUM5QyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCO1FBQ3JFLElBQU0sS0FBSyxHQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQU0sR0FBRyxHQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTywrQkFBUSxHQUFoQixVQUFpQixLQUFhLEVBQUUsVUFBMEI7UUFBMUIsMkJBQUEsRUFBQSxpQkFBMEI7UUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sVUFBVSxDQUFDO1NBQ3JCO1FBQ0QsSUFBTSxLQUFLLEdBQVcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQUksTUFBTSxHQUFXLENBQUMsQ0FBQztRQUN2QixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQzVCLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDaEMsQ0FBQyxDQUNKLENBQUM7U0FDTDtRQUVELE9BQU8sTUFBTSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxrREFBa0Q7SUFDaEYsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0EvRUEsQUErRUMsSUFBQTs7Ozs7O0FDL0VEO0lBQUE7SUF3QkEsQ0FBQztJQXZCRyxvQ0FBYSxHQUFiLFVBQWMsS0FBYSxFQUFFLFVBQTBCO1FBQTFCLDJCQUFBLEVBQUEsaUJBQTBCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLCtCQUFRLEdBQWhCLFVBQWlCLEtBQWEsRUFBRSxVQUEwQjtRQUExQiwyQkFBQSxFQUFBLGlCQUEwQjtRQUN0RCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3hDLElBQU0sS0FBSyxHQUFXLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sVUFBVSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxnREFBZ0Q7UUFDaEQsSUFBSSxLQUFLLEdBQVcsQ0FBQyxDQUFDO1FBRXRCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUcsRUFBRSxLQUFLO1lBQ3hDLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0F4QkEsQUF3QkMsSUFBQTs7Ozs7O0FDeEJEO0lBQUE7UUFDWSwyQkFBc0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBS3hELFFBQUcsR0FBRyxVQUFDLENBQVMsRUFBRSxDQUFTLElBQUssT0FBQSxDQUFDLEdBQUcsQ0FBQyxFQUFMLENBQUssQ0FBQztJQStCbEQsQ0FBQztJQW5DVyxpREFBUSxHQUFoQixVQUFpQixZQUEyQjtRQUN4QyxPQUFPLFVBQUMsS0FBYSxFQUFFLEtBQWEsSUFBSyxPQUFBLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQTNCLENBQTJCLENBQUM7SUFDekUsQ0FBQztJQUlELHNEQUFhLEdBQWIsVUFBYyxLQUFhLEVBQUUsVUFBbUI7UUFDNUMsSUFBSSxVQUFVLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sZ0RBQU8sR0FBZixVQUFnQixLQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sMkRBQWtCLEdBQTFCLFVBQTRCLFNBQWlCLEVBQUUsV0FBcUI7UUFDaEUsSUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUN4QyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQU0sS0FBSyxHQUFHLFVBQUMsQ0FBUyxJQUFLLE9BQUEsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFuQyxDQUFtQyxDQUFDO1FBQ2pFLElBQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25GLElBQU0sVUFBVSxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sVUFBVSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNMLHFDQUFDO0FBQUQsQ0FyQ0EsQUFxQ0MsSUFBQTs7Ozs7O0FDckNEO0lBQUE7SUF3Q0EsQ0FBQztJQXRDVSxpREFBYSxHQUFwQixVQUFxQixLQUFhLEVBQUUsVUFBMEI7UUFBMUIsMkJBQUEsRUFBQSxpQkFBMEI7UUFDMUQsMkVBQTJFO1FBQzNFLElBQU0sS0FBSyxHQUFHLEtBQUs7YUFDZCxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzthQUNyQixLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQTtRQUVuRCxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFBLENBQUMscUJBQXFCO1FBRTFDLElBQUEsS0FBaUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQXhDLEtBQUssUUFBQSxFQUFFLEdBQUcsUUFBOEIsQ0FBQTtRQUMvQyxPQUFPLENBQ0gsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FDL0IsQ0FBQTtJQUNMLENBQUM7SUFFTyx1REFBbUIsR0FBM0IsVUFBNEIsS0FBYSxFQUFFLEdBQVc7UUFDbEQsSUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUMxRSxPQUFPLENBQ0gsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDMUUsQ0FBQTtJQUNMLENBQUM7SUFFTyxvREFBZ0IsR0FBeEIsVUFBeUIsTUFBYztRQUNuQyxJQUFNLE1BQU0sR0FBRyxNQUFNO2FBQ2hCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2FBQ3JCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNWLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDaEIsSUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNsRCxJQUFNLEtBQUssR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQXBCLENBQW9CLENBQUE7UUFDakQsSUFBTSxPQUFPLEdBQUcsV0FBVzthQUN0QixHQUFHLENBQUMsVUFBQyxLQUFhLEVBQUUsS0FBYSxJQUFLLE9BQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBckIsQ0FBcUIsQ0FBQzthQUM1RCxHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ1YsTUFBTSxDQUFDLFVBQUMsQ0FBUyxFQUFFLENBQVMsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLEVBQUwsQ0FBSyxDQUFDLENBQUE7UUFDNUMsSUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDdkMsT0FBTyxVQUFVLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBQ0wsZ0NBQUM7QUFBRCxDQXhDQSxBQXdDQyxJQUFBOzs7Ozs7QUMxQ0Q7SUFBQTtJQU1BLENBQUM7SUFBRCxvQkFBQztBQUFELENBTkEsQUFNQyxJQUFBO0FBRUQsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLFFBQWdCO0lBQ3pDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0tBQ3hFO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsSUFBTSxhQUFhLEdBQUcsVUFBQyxNQUFxQjtJQUMzQyxPQUFPLFVBQUMsR0FBUTtRQUNmLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztTQUMvRDtRQUNELGVBQWUsQ0FBQyxTQUFTLEdBQUcsWUFBVSxNQUFNLENBQUMsS0FBSyxpQkFDakQsTUFBTSxDQUFDLFFBQ0wsQ0FBQztRQUNKLElBQUksaUJBQWlCLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsSUFBSSxjQUFjLENBQUMsQ0FBQztRQUMzRSxJQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLElBQUksY0FBYyxDQUFDLENBQUM7UUFFbkYsR0FBRyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztZQUNqQyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0QsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2RDtpQkFBTTtnQkFDTixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hCO1lBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUN6QjtRQUNGLENBQUMsQ0FBQztRQUVGLEdBQUcsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUc7WUFDcEMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQzVCO1lBQ0Qsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM3QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUMzQjtRQUNGLENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsa0JBQWUsYUFBYSxDQUFDOzs7Ozs7QUN4RDdCLCtEQUE2RDtBQUM3RCx5RUFBdUU7QUFDdkUsa0VBQWdFO0FBRWhFLE9BQU87QUFDUCw2Q0FBMkM7QUFNbEMsMkZBTkEsd0JBQVUsT0FNQTtBQUxuQixxRUFBb0U7QUFLckMsbUdBTHRCLHVDQUFrQixPQUtzQjtBQUhqRCxXQUFXO0FBQ1gsOENBQWdEO0FBRTNCLDRCQUFRIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiaW1wb3J0IHsgQ3VzdG9tRm9ybSwgZWxlbWVudHMgfSBmcm9tICcuLy4uL3NyYy9pbmRleCc7XG5cblxuZG9jdW1lbnQub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgIGxldCBmb3JtID0gbmV3IEN1c3RvbUZvcm0oZG9jdW1lbnQuZm9ybXNbMF0pO1xuICAgICAgICBmb3JtLm9uc3VibWl0ID0gcHJvbWlzZSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlLnRoZW4ocmVzcG9uc2UgPT4geyB9KTtcbiAgICAgICAgfTtcbiAgICB9XG59O1xuIiwiLyoqXG5AbGljZW5zZSBAbm9jb21waWxlXG5Db3B5cmlnaHQgKGMpIDIwMTggVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dFxuQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbnN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xuKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAoZnVuY3Rpb24oKXtpZih2b2lkIDA9PT13aW5kb3cuUmVmbGVjdHx8dm9pZCAwPT09d2luZG93LmN1c3RvbUVsZW1lbnRzfHx3aW5kb3cuY3VzdG9tRWxlbWVudHMucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjaylyZXR1cm47Y29uc3QgYT1IVE1MRWxlbWVudDt3aW5kb3cuSFRNTEVsZW1lbnQ9e0hUTUxFbGVtZW50OmZ1bmN0aW9uIEhUTUxFbGVtZW50KCl7cmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KGEsW10sdGhpcy5jb25zdHJ1Y3Rvcil9fS5IVE1MRWxlbWVudCxIVE1MRWxlbWVudC5wcm90b3R5cGU9YS5wcm90b3R5cGUsSFRNTEVsZW1lbnQucHJvdG90eXBlLmNvbnN0cnVjdG9yPUhUTUxFbGVtZW50LE9iamVjdC5zZXRQcm90b3R5cGVPZihIVE1MRWxlbWVudCxhKTt9KSgpO1xuXG59KCkpO1xuIiwiLyoqXG5AbGljZW5zZSBAbm9jb21waWxlXG5Db3B5cmlnaHQgKGMpIDIwMTggVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dFxuQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbnN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xuKGZ1bmN0aW9uKCl7LypcblxuIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0XG4gaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmRcbiBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5XG4gYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieVxuIEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVBcbiByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xuJ3VzZSBzdHJpY3QnO3ZhciB2O2Z1bmN0aW9uIGJhKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fXZhciBjYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9O1xuZnVuY3Rpb24gZGEoYSl7YT1bXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSxcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csXCJvYmplY3RcIj09dHlwZW9mIHNlbGYmJnNlbGYsXCJvYmplY3RcIj09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoXCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0XCIpO312YXIgZWE9ZGEodGhpcyk7ZnVuY3Rpb24gaWEoYSxiKXtpZihiKWE6e3ZhciBjPWVhO2E9YS5zcGxpdChcIi5cIik7Zm9yKHZhciBkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpYnJlYWsgYTtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmY2EoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfX1cbmlhKFwiU3ltYm9sXCIsZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihlKXtpZih0aGlzIGluc3RhbmNlb2YgYil0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpO3JldHVybiBuZXcgYyhcImpzY29tcF9zeW1ib2xfXCIrKGV8fFwiXCIpK1wiX1wiK2QrKyxlKX1mdW5jdGlvbiBjKGUsZil7dGhpcy5nPWU7Y2EodGhpcyxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmfSl9aWYoYSlyZXR1cm4gYTtjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmd9O3ZhciBkPTA7cmV0dXJuIGJ9KTtcbmlhKFwiU3ltYm9sLml0ZXJhdG9yXCIsZnVuY3Rpb24oYSl7aWYoYSlyZXR1cm4gYTthPVN5bWJvbChcIlN5bWJvbC5pdGVyYXRvclwiKTtmb3IodmFyIGI9XCJBcnJheSBJbnQ4QXJyYXkgVWludDhBcnJheSBVaW50OENsYW1wZWRBcnJheSBJbnQxNkFycmF5IFVpbnQxNkFycmF5IEludDMyQXJyYXkgVWludDMyQXJyYXkgRmxvYXQzMkFycmF5IEZsb2F0NjRBcnJheVwiLnNwbGl0KFwiIFwiKSxjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWVhW2JbY11dO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBkJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBkLnByb3RvdHlwZVthXSYmY2EoZC5wcm90b3R5cGUsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGphKGJhKHRoaXMpKX19KX1yZXR1cm4gYX0pO2Z1bmN0aW9uIGphKGEpe2E9e25leHQ6YX07YVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O3JldHVybiBhfVxuZnVuY3Rpb24ga2EoYSl7dmFyIGI9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI/Yi5jYWxsKGEpOntuZXh0OmJhKGEpfX1mdW5jdGlvbiB4KGEpe2lmKCEoYSBpbnN0YW5jZW9mIEFycmF5KSl7YT1rYShhKTtmb3IodmFyIGIsYz1bXTshKGI9YS5uZXh0KCkpLmRvbmU7KWMucHVzaChiLnZhbHVlKTthPWN9cmV0dXJuIGF9dmFyIG1hO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZiltYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y7ZWxzZXt2YXIgbmE7YTp7dmFyIG9hPXthOiEwfSxwYT17fTt0cnl7cGEuX19wcm90b19fPW9hO25hPXBhLmE7YnJlYWsgYX1jYXRjaChhKXt9bmE9ITF9bWE9bmE/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErXCIgaXMgbm90IGV4dGVuc2libGVcIik7cmV0dXJuIGF9Om51bGx9XG52YXIgcWE9bWE7ZnVuY3Rpb24gcmEoKXt0aGlzLnU9ITE7dGhpcy5oPW51bGw7dGhpcy5LYT12b2lkIDA7dGhpcy5nPTE7dGhpcy5kYT0wO3RoaXMuaT1udWxsfWZ1bmN0aW9uIHVhKGEpe2lmKGEudSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZ1wiKTthLnU9ITB9cmEucHJvdG90eXBlLk89ZnVuY3Rpb24oYSl7dGhpcy5LYT1hfTtmdW5jdGlvbiB4YShhLGIpe2EuaT17V2E6YiwkYTohMH07YS5nPWEuZGF9cmEucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmk9e3JldHVybjphfTt0aGlzLmc9dGhpcy5kYX07ZnVuY3Rpb24geWEoYSxiKXthLmc9MztyZXR1cm57dmFsdWU6Yn19ZnVuY3Rpb24gemEoYSl7dGhpcy5nPW5ldyByYTt0aGlzLmg9YX1cbmZ1bmN0aW9uIEFhKGEsYil7dWEoYS5nKTt2YXIgYz1hLmcuaDtpZihjKXJldHVybiBCYShhLFwicmV0dXJuXCJpbiBjP2NbXCJyZXR1cm5cIl06ZnVuY3Rpb24oZCl7cmV0dXJue3ZhbHVlOmQsZG9uZTohMH19LGIsYS5nLnJldHVybik7YS5nLnJldHVybihiKTtyZXR1cm4gQ2EoYSl9ZnVuY3Rpb24gQmEoYSxiLGMsZCl7dHJ5e3ZhciBlPWIuY2FsbChhLmcuaCxjKTtpZighKGUgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJJdGVyYXRvciByZXN1bHQgXCIrZStcIiBpcyBub3QgYW4gb2JqZWN0XCIpO2lmKCFlLmRvbmUpcmV0dXJuIGEuZy51PSExLGU7dmFyIGY9ZS52YWx1ZX1jYXRjaChnKXtyZXR1cm4gYS5nLmg9bnVsbCx4YShhLmcsZyksQ2EoYSl9YS5nLmg9bnVsbDtkLmNhbGwoYS5nLGYpO3JldHVybiBDYShhKX1cbmZ1bmN0aW9uIENhKGEpe2Zvcig7YS5nLmc7KXRyeXt2YXIgYj1hLmgoYS5nKTtpZihiKXJldHVybiBhLmcudT0hMSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChjKXthLmcuS2E9dm9pZCAwLHhhKGEuZyxjKX1hLmcudT0hMTtpZihhLmcuaSl7Yj1hLmcuaTthLmcuaT1udWxsO2lmKGIuJGEpdGhyb3cgYi5XYTtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1cbmZ1bmN0aW9uIERhKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXt1YShhLmcpO2EuZy5oP2I9QmEoYSxhLmcuaC5uZXh0LGIsYS5nLk8pOihhLmcuTyhiKSxiPUNhKGEpKTtyZXR1cm4gYn07dGhpcy50aHJvdz1mdW5jdGlvbihiKXt1YShhLmcpO2EuZy5oP2I9QmEoYSxhLmcuaFtcInRocm93XCJdLGIsYS5nLk8pOih4YShhLmcsYiksYj1DYShhKSk7cmV0dXJuIGJ9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBBYShhLGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319ZnVuY3Rpb24gRWEoYSxiKXtiPW5ldyBEYShuZXcgemEoYikpO3FhJiZhLnByb3RvdHlwZSYmcWEoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9QXJyYXkuZnJvbXx8KEFycmF5LmZyb209ZnVuY3Rpb24oYSl7cmV0dXJuW10uc2xpY2UuY2FsbChhKX0pO1xuT2JqZWN0LmFzc2lnbnx8KE9iamVjdC5hc3NpZ249ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLGM9MCxkO2M8Yi5sZW5ndGg7YysrKWlmKGQ9YltjXSlmb3IodmFyIGU9YSxmPU9iamVjdC5rZXlzKGQpLGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGg9ZltnXTtlW2hdPWRbaF19cmV0dXJuIGF9KTt2YXIgRmE9c2V0VGltZW91dDtmdW5jdGlvbiBHYSgpe31mdW5jdGlvbiBIYShhLGIpe3JldHVybiBmdW5jdGlvbigpe2EuYXBwbHkoYixhcmd1bWVudHMpfX1mdW5jdGlvbiBBKGEpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEEpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJQcm9taXNlcyBtdXN0IGJlIGNvbnN0cnVjdGVkIHZpYSBuZXdcIik7aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihcIm5vdCBhIGZ1bmN0aW9uXCIpO3RoaXMuTj0wO3RoaXMuRWE9ITE7dGhpcy5JPXZvaWQgMDt0aGlzLmJhPVtdO0lhKGEsdGhpcyl9XG5mdW5jdGlvbiBKYShhLGIpe2Zvcig7Mz09PWEuTjspYT1hLkk7MD09PWEuTj9hLmJhLnB1c2goYik6KGEuRWE9ITAsS2EoZnVuY3Rpb24oKXt2YXIgYz0xPT09YS5OP2IuYmI6Yi5jYjtpZihudWxsPT09YykoMT09PWEuTj9MYTpNYSkoYi5wcm9taXNlLGEuSSk7ZWxzZXt0cnl7dmFyIGQ9YyhhLkkpfWNhdGNoKGUpe01hKGIucHJvbWlzZSxlKTtyZXR1cm59TGEoYi5wcm9taXNlLGQpfX0pKX1cbmZ1bmN0aW9uIExhKGEsYil7dHJ5e2lmKGI9PT1hKXRocm93IG5ldyBUeXBlRXJyb3IoXCJBIHByb21pc2UgY2Fubm90IGJlIHJlc29sdmVkIHdpdGggaXRzZWxmLlwiKTtpZihiJiYoXCJvYmplY3RcIj09PXR5cGVvZiBifHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgYikpe3ZhciBjPWIudGhlbjtpZihiIGluc3RhbmNlb2YgQSl7YS5OPTM7YS5JPWI7TmEoYSk7cmV0dXJufWlmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBjKXtJYShIYShjLGIpLGEpO3JldHVybn19YS5OPTE7YS5JPWI7TmEoYSl9Y2F0Y2goZCl7TWEoYSxkKX19ZnVuY3Rpb24gTWEoYSxiKXthLk49MjthLkk9YjtOYShhKX1cbmZ1bmN0aW9uIE5hKGEpezI9PT1hLk4mJjA9PT1hLmJhLmxlbmd0aCYmS2EoZnVuY3Rpb24oKXthLkVhfHxcInVuZGVmaW5lZFwiIT09dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUmJmNvbnNvbGUud2FybihcIlBvc3NpYmxlIFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjpcIixhLkkpfSk7Zm9yKHZhciBiPTAsYz1hLmJhLmxlbmd0aDtiPGM7YisrKUphKGEsYS5iYVtiXSk7YS5iYT1udWxsfWZ1bmN0aW9uIE9hKGEsYixjKXt0aGlzLmJiPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2E6bnVsbDt0aGlzLmNiPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBiP2I6bnVsbDt0aGlzLnByb21pc2U9Y31mdW5jdGlvbiBJYShhLGIpe3ZhciBjPSExO3RyeXthKGZ1bmN0aW9uKGQpe2N8fChjPSEwLExhKGIsZCkpfSxmdW5jdGlvbihkKXtjfHwoYz0hMCxNYShiLGQpKX0pfWNhdGNoKGQpe2N8fChjPSEwLE1hKGIsZCkpfX1cbkEucHJvdG90eXBlW1wiY2F0Y2hcIl09ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMudGhlbihudWxsLGEpfTtBLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IHRoaXMuY29uc3RydWN0b3IoR2EpO0phKHRoaXMsbmV3IE9hKGEsYixjKSk7cmV0dXJuIGN9O0EucHJvdG90eXBlW1wiZmluYWxseVwiXT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnN0cnVjdG9yO3JldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIGIucmVzb2x2ZShhKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gY30pfSxmdW5jdGlvbihjKXtyZXR1cm4gYi5yZXNvbHZlKGEoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBiLnJlamVjdChjKX0pfSl9O1xuZnVuY3Rpb24gUGEoYSl7cmV0dXJuIG5ldyBBKGZ1bmN0aW9uKGIsYyl7ZnVuY3Rpb24gZChoLGspe3RyeXtpZihrJiYoXCJvYmplY3RcIj09PXR5cGVvZiBrfHxcImZ1bmN0aW9uXCI9PT10eXBlb2Ygaykpe3ZhciBsPWsudGhlbjtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgbCl7bC5jYWxsKGssZnVuY3Rpb24obSl7ZChoLG0pfSxjKTtyZXR1cm59fWVbaF09azswPT09LS1mJiZiKGUpfWNhdGNoKG0pe2MobSl9fWlmKCFhfHxcInVuZGVmaW5lZFwiPT09dHlwZW9mIGEubGVuZ3RoKXJldHVybiBjKG5ldyBUeXBlRXJyb3IoXCJQcm9taXNlLmFsbCBhY2NlcHRzIGFuIGFycmF5XCIpKTt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIGIoW10pO2Zvcih2YXIgZj1lLmxlbmd0aCxnPTA7ZzxlLmxlbmd0aDtnKyspZChnLGVbZ10pfSl9XG5mdW5jdGlvbiBRYShhKXtyZXR1cm4gYSYmXCJvYmplY3RcIj09PXR5cGVvZiBhJiZhLmNvbnN0cnVjdG9yPT09QT9hOm5ldyBBKGZ1bmN0aW9uKGIpe2IoYSl9KX1mdW5jdGlvbiBSYShhKXtyZXR1cm4gbmV3IEEoZnVuY3Rpb24oYixjKXtjKGEpfSl9ZnVuY3Rpb24gU2EoYSl7cmV0dXJuIG5ldyBBKGZ1bmN0aW9uKGIsYyl7aWYoIWF8fFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYS5sZW5ndGgpcmV0dXJuIGMobmV3IFR5cGVFcnJvcihcIlByb21pc2UucmFjZSBhY2NlcHRzIGFuIGFycmF5XCIpKTtmb3IodmFyIGQ9MCxlPWEubGVuZ3RoO2Q8ZTtkKyspUWEoYVtkXSkudGhlbihiLGMpfSl9dmFyIEthPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKGEpe3NldEltbWVkaWF0ZShhKX18fGZ1bmN0aW9uKGEpe0ZhKGEsMCl9Oy8qXG5cbkNvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5UaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXRcbmh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dCBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0XG5odHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlXG5mb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQ09OVFJJQlVUT1JTLnR4dCBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhc1xucGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc28gc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudFxuZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xuaWYoIXdpbmRvdy5Qcm9taXNlKXt3aW5kb3cuUHJvbWlzZT1BO0EucHJvdG90eXBlLnRoZW49QS5wcm90b3R5cGUudGhlbjtBLmFsbD1QYTtBLnJhY2U9U2E7QS5yZXNvbHZlPVFhO0EucmVqZWN0PVJhO3ZhciBUYT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlwiKSxWYT1bXTsobmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGE9VmEubGVuZ3RoLGI9MDtiPGE7YisrKVZhW2JdKCk7VmEuc3BsaWNlKDAsYSl9KSkub2JzZXJ2ZShUYSx7Y2hhcmFjdGVyRGF0YTohMH0pO0thPWZ1bmN0aW9uKGEpe1ZhLnB1c2goYSk7VGEudGV4dENvbnRlbnQ9MDxUYS50ZXh0Q29udGVudC5sZW5ndGg/XCJcIjpcImFcIn19Oy8qXG4gQ29weXJpZ2h0IChDKSAyMDE1IGJ5IFdlYlJlZmxlY3Rpb25cblxuUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxub2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xudG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG5mdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbklNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG5BVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG5MSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuVEhFIFNPRlRXQVJFLlxuXG4qL1xuKGZ1bmN0aW9uKGEsYil7aWYoIShiIGluIGEpKXt2YXIgYz10eXBlb2YgZ2xvYmFsPT09dHlwZW9mIGM/d2luZG93Omdsb2JhbCxkPTAsZT1TdHJpbmcoTWF0aC5yYW5kb20oKSksZj1cIl9fXFx1MDAwMXN5bWJvbEBAXCIrZSxnPWEuZ2V0T3duUHJvcGVydHlOYW1lcyxoPWEuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGs9YS5jcmVhdGUsbD1hLmtleXMsbT1hLmZyZWV6ZXx8YSxxPWEuZGVmaW5lUHJvcGVydHksSD1hLmRlZmluZVByb3BlcnRpZXMsQz1oKGEsXCJnZXRPd25Qcm9wZXJ0eU5hbWVzXCIpLHQ9YS5wcm90b3R5cGUsRj10Lmhhc093blByb3BlcnR5LEU9dC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxNPXQudG9TdHJpbmcseT1mdW5jdGlvbihJLHUsRyl7Ri5jYWxsKEksZil8fHEoSSxmLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTp7fX0pO0lbZl1bXCJAQFwiK3VdPUd9LFc9ZnVuY3Rpb24oSSx1KXt2YXIgRz1rKEkpO2codSkuZm9yRWFjaChmdW5jdGlvbihwKXtzYS5jYWxsKHUsXG5wKSYmVWEoRyxwLHVbcF0pfSk7cmV0dXJuIEd9LHc9ZnVuY3Rpb24oKXt9LHRhPWZ1bmN0aW9uKEkpe3JldHVybiBJIT1mJiYhRi5jYWxsKGZhLEkpfSxoYT1mdW5jdGlvbihJKXtyZXR1cm4gSSE9ZiYmRi5jYWxsKGZhLEkpfSxzYT1mdW5jdGlvbihJKXt2YXIgdT1TdHJpbmcoSSk7cmV0dXJuIGhhKHUpP0YuY2FsbCh0aGlzLHUpJiYhIXRoaXNbZl0mJnRoaXNbZl1bXCJAQFwiK3VdOkUuY2FsbCh0aGlzLEkpfSxuPWZ1bmN0aW9uKEkpe3EodCxJLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMCxnZXQ6dyxzZXQ6ZnVuY3Rpb24odSl7d2EodGhpcyxJLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp1fSk7eSh0aGlzLEksITApfX0pO2ZhW0ldPXEoYShJKSxcImNvbnN0cnVjdG9yXCIsZ2MpO3JldHVybiBtKGZhW0ldKX0sSj1mdW5jdGlvbiBHKHUpe2lmKHRoaXMgaW5zdGFuY2VvZiBHKXRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3JcIik7XG5yZXR1cm4gbihcIl9fXFx1MDAwMXN5bWJvbDpcIi5jb25jYXQodXx8XCJcIixlLCsrZCkpfSxmYT1rKG51bGwpLGdjPXt2YWx1ZTpKfSxmYj1mdW5jdGlvbih1KXtyZXR1cm4gZmFbdV19LFVhPWZ1bmN0aW9uKHUsRyxwKXt2YXIgcj1TdHJpbmcoRyk7aWYoaGEocikpe0c9d2E7aWYocC5lbnVtZXJhYmxlKXt2YXIgQj1rKHApO0IuZW51bWVyYWJsZT0hMX1lbHNlIEI9cDtHKHUscixCKTt5KHUsciwhIXAuZW51bWVyYWJsZSl9ZWxzZSBxKHUsRyxwKTtyZXR1cm4gdX0sZ2I9ZnVuY3Rpb24odSl7cmV0dXJuIGcodSkuZmlsdGVyKGhhKS5tYXAoZmIpfTtDLnZhbHVlPVVhO3EoYSxcImRlZmluZVByb3BlcnR5XCIsQyk7Qy52YWx1ZT1nYjtxKGEsYixDKTtDLnZhbHVlPWZ1bmN0aW9uKHUpe3JldHVybiBnKHUpLmZpbHRlcih0YSl9O3EoYSxcImdldE93blByb3BlcnR5TmFtZXNcIixDKTtDLnZhbHVlPWZ1bmN0aW9uKHUsRyl7dmFyIHA9Z2IoRyk7cC5sZW5ndGg/bChHKS5jb25jYXQocCkuZm9yRWFjaChmdW5jdGlvbihyKXtzYS5jYWxsKEcsXG5yKSYmVWEodSxyLEdbcl0pfSk6SCh1LEcpO3JldHVybiB1fTtxKGEsXCJkZWZpbmVQcm9wZXJ0aWVzXCIsQyk7Qy52YWx1ZT1zYTtxKHQsXCJwcm9wZXJ0eUlzRW51bWVyYWJsZVwiLEMpO0MudmFsdWU9SjtxKGMsXCJTeW1ib2xcIixDKTtDLnZhbHVlPWZ1bmN0aW9uKHUpe3U9XCJfX1xcdTAwMDFzeW1ib2w6XCIuY29uY2F0KFwiX19cXHUwMDAxc3ltYm9sOlwiLHUsZSk7cmV0dXJuIHUgaW4gdD9mYVt1XTpuKHUpfTtxKEosXCJmb3JcIixDKTtDLnZhbHVlPWZ1bmN0aW9uKHUpe2lmKHRhKHUpKXRocm93IG5ldyBUeXBlRXJyb3IodStcIiBpcyBub3QgYSBzeW1ib2xcIik7aWYoRi5jYWxsKGZhLHUpJiYodT11LnNsaWNlKDEwKSxcIl9fXFx1MDAwMXN5bWJvbDpcIj09PXUuc2xpY2UoMCwxMCkmJih1PXUuc2xpY2UoMTApLHUhPT1lKSkpcmV0dXJuIHU9dS5zbGljZSgwLHUubGVuZ3RoLWUubGVuZ3RoKSwwPHUubGVuZ3RoP3U6dm9pZCAwfTtxKEosXCJrZXlGb3JcIixDKTtDLnZhbHVlPWZ1bmN0aW9uKHUsRyl7dmFyIHA9XG5oKHUsRyk7cCYmaGEoRykmJihwLmVudW1lcmFibGU9c2EuY2FsbCh1LEcpKTtyZXR1cm4gcH07cShhLFwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yXCIsQyk7Qy52YWx1ZT1mdW5jdGlvbih1LEcpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aHx8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiBHP2sodSk6Vyh1LEcpfTtxKGEsXCJjcmVhdGVcIixDKTtDLnZhbHVlPWZ1bmN0aW9uKCl7dmFyIHU9TS5jYWxsKHRoaXMpO3JldHVyblwiW29iamVjdCBTdHJpbmddXCI9PT11JiZoYSh0aGlzKT9cIltvYmplY3QgU3ltYm9sXVwiOnV9O3EodCxcInRvU3RyaW5nXCIsQyk7dHJ5e2lmKCEwPT09ayhxKHt9LFwiX19cXHUwMDAxc3ltYm9sOlwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcSh0aGlzLFwiX19cXHUwMDAxc3ltYm9sOlwiLHt2YWx1ZTohMH0pW1wiX19cXHUwMDAxc3ltYm9sOlwiXX19KSlbXCJfX1xcdTAwMDFzeW1ib2w6XCJdKXZhciB3YT1xO2Vsc2UgdGhyb3dcIklFMTFcIjt9Y2F0Y2godSl7d2E9ZnVuY3Rpb24oRyxwLHIpe3ZhciBCPVxuaCh0LHApO2RlbGV0ZSB0W3BdO3EoRyxwLHIpO3EodCxwLEIpfX19fSkoT2JqZWN0LFwiZ2V0T3duUHJvcGVydHlTeW1ib2xzXCIpO1xuKGZ1bmN0aW9uKGEsYil7dmFyIGM9YS5kZWZpbmVQcm9wZXJ0eSxkPWEucHJvdG90eXBlLGU9ZC50b1N0cmluZyxmO1wiaXRlcmF0b3IgbWF0Y2ggcmVwbGFjZSBzZWFyY2ggc3BsaXQgaGFzSW5zdGFuY2UgaXNDb25jYXRTcHJlYWRhYmxlIHVuc2NvcGFibGVzIHNwZWNpZXMgdG9QcmltaXRpdmUgdG9TdHJpbmdUYWdcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihnKXtnIGluIGJ8fChjKGIsZyx7dmFsdWU6YihnKX0pLFwidG9TdHJpbmdUYWdcIj09PWcmJihmPWEuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsXCJ0b1N0cmluZ1wiKSxmLnZhbHVlPWZ1bmN0aW9uKCl7dmFyIGg9ZS5jYWxsKHRoaXMpLGs9bnVsbD09dGhpcz90aGlzOnRoaXNbYi50b1N0cmluZ1RhZ107cmV0dXJuIG51bGw9PWs/aDpcIltvYmplY3QgXCIraytcIl1cIn0sYyhkLFwidG9TdHJpbmdcIixmKSkpfSl9KShPYmplY3QsU3ltYm9sKTtcbihmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZCgpe3JldHVybiB0aGlzfWJbYV18fChiW2FdPWZ1bmN0aW9uKCl7dmFyIGU9MCxmPXRoaXMsZz17bmV4dDpmdW5jdGlvbigpe3ZhciBoPWYubGVuZ3RoPD1lO3JldHVybiBoP3tkb25lOmh9Ontkb25lOmgsdmFsdWU6ZltlKytdfX19O2dbYV09ZDtyZXR1cm4gZ30pO2NbYV18fChjW2FdPWZ1bmN0aW9uKCl7dmFyIGU9U3RyaW5nLmZyb21Db2RlUG9pbnQsZj10aGlzLGc9MCxoPWYubGVuZ3RoLGs9e25leHQ6ZnVuY3Rpb24oKXt2YXIgbD1oPD1nLG09bD9cIlwiOmUoZi5jb2RlUG9pbnRBdChnKSk7Zys9bS5sZW5ndGg7cmV0dXJuIGw/e2RvbmU6bH06e2RvbmU6bCx2YWx1ZTptfX19O2tbYV09ZDtyZXR1cm4ga30pfSkoU3ltYm9sLml0ZXJhdG9yLEFycmF5LnByb3RvdHlwZSxTdHJpbmcucHJvdG90eXBlKTsvKlxuXG5Db3B5cmlnaHQgKGMpIDIwMTggVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0XG5odHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdFxuaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZVxuZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXNcbnBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnRcbmZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuKi9cbnZhciBXYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcz9cIltvYmplY3QgVW5kZWZpbmVkXVwiOm51bGw9PT10aGlzP1wiW29iamVjdCBOdWxsXVwiOldhLmNhbGwodGhpcyl9O09iamVjdC5rZXlzPWZ1bmN0aW9uKGEpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhKS5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuKGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLGIpKSYmYi5lbnVtZXJhYmxlfSl9O1xuU3RyaW5nLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdJiZTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0fHwoU3RyaW5nLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uIFhhKCl7dmFyIGIsYz10aGlzO3JldHVybiBFYShYYSxmdW5jdGlvbihkKXsxPT1kLmcmJihiPTApO2lmKDMhPWQuZylyZXR1cm4gYjxjLmxlbmd0aD9kPXlhKGQsY1tiXSk6KGQuZz0wLGQ9dm9pZCAwKSxkO2IrKztkLmc9Mn0pfSk7U2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdfHwoU2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uIFlhKCl7dmFyIGIsYz10aGlzLGQ7cmV0dXJuIEVhKFlhLGZ1bmN0aW9uKGUpezE9PWUuZyYmKGI9W10sYy5mb3JFYWNoKGZ1bmN0aW9uKGYpe2IucHVzaChmKX0pLGQ9MCk7aWYoMyE9ZS5nKXJldHVybiBkPGIubGVuZ3RoP2U9eWEoZSxiW2RdKTooZS5nPTAsZT12b2lkIDApLGU7ZCsrO2UuZz0yfSl9KTtcbk1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXXx8KE1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbiBaYSgpe3ZhciBiLGM9dGhpcyxkO3JldHVybiBFYShaYSxmdW5jdGlvbihlKXsxPT1lLmcmJihiPVtdLGMuZm9yRWFjaChmdW5jdGlvbihmLGcpe2IucHVzaChbZyxmXSl9KSxkPTApO2lmKDMhPWUuZylyZXR1cm4gZDxiLmxlbmd0aD9lPXlhKGUsYltkXSk6KGUuZz0wLGU9dm9pZCAwKSxlO2QrKztlLmc9Mn0pfSk7LypcblxuQ29weXJpZ2h0IChjKSAyMDIwIFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cblRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHRcbkNvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvXG5zdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuKi9cbnZhciAkYT1kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpOyRhLmluaXRFdmVudChcImZvb1wiLCEwLCEwKTskYS5wcmV2ZW50RGVmYXVsdCgpO2lmKCEkYS5kZWZhdWx0UHJldmVudGVkKXt2YXIgYWI9RXZlbnQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0O0V2ZW50LnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuY2FuY2VsYWJsZSYmKGFiLmNhbGwodGhpcyksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJkZWZhdWx0UHJldmVudGVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiEwfSxjb25maWd1cmFibGU6ITB9KSl9fXZhciBiYj0vVHJpZGVudC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcbmlmKCF3aW5kb3cuRXZlbnR8fGJiJiZcImZ1bmN0aW9uXCIhPT10eXBlb2Ygd2luZG93LkV2ZW50KXt2YXIgY2I9d2luZG93LkV2ZW50O3dpbmRvdy5FdmVudD1mdW5jdGlvbihhLGIpe2I9Ynx8e307dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKTtjLmluaXRFdmVudChhLCEhYi5idWJibGVzLCEhYi5jYW5jZWxhYmxlKTtyZXR1cm4gY307aWYoY2Ipe2Zvcih2YXIgZGIgaW4gY2Ipd2luZG93LkV2ZW50W2RiXT1jYltkYl07d2luZG93LkV2ZW50LnByb3RvdHlwZT1jYi5wcm90b3R5cGV9fVxuaWYoIXdpbmRvdy5DdXN0b21FdmVudHx8YmImJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQpd2luZG93LkN1c3RvbUV2ZW50PWZ1bmN0aW9uKGEsYil7Yj1ifHx7fTt2YXIgYz1kb2N1bWVudC5jcmVhdGVFdmVudChcIkN1c3RvbUV2ZW50XCIpO2MuaW5pdEN1c3RvbUV2ZW50KGEsISFiLmJ1YmJsZXMsISFiLmNhbmNlbGFibGUsYi5kZXRhaWwpO3JldHVybiBjfSx3aW5kb3cuQ3VzdG9tRXZlbnQucHJvdG90eXBlPXdpbmRvdy5FdmVudC5wcm90b3R5cGU7XG5pZighd2luZG93Lk1vdXNlRXZlbnR8fGJiJiZcImZ1bmN0aW9uXCIhPT10eXBlb2Ygd2luZG93Lk1vdXNlRXZlbnQpe3ZhciBlYj13aW5kb3cuTW91c2VFdmVudDt3aW5kb3cuTW91c2VFdmVudD1mdW5jdGlvbihhLGIpe2I9Ynx8e307dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJNb3VzZUV2ZW50XCIpO2MuaW5pdE1vdXNlRXZlbnQoYSwhIWIuYnViYmxlcywhIWIuY2FuY2VsYWJsZSxiLnZpZXd8fHdpbmRvdyxiLmRldGFpbCxiLnNjcmVlblgsYi5zY3JlZW5ZLGIuY2xpZW50WCxiLmNsaWVudFksYi5jdHJsS2V5LGIuYWx0S2V5LGIuc2hpZnRLZXksYi5tZXRhS2V5LGIuYnV0dG9uLGIucmVsYXRlZFRhcmdldCk7cmV0dXJuIGN9O2lmKGViKWZvcih2YXIgaGIgaW4gZWIpd2luZG93Lk1vdXNlRXZlbnRbaGJdPWViW2hiXTt3aW5kb3cuTW91c2VFdmVudC5wcm90b3R5cGU9ZWIucHJvdG90eXBlfTtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwiYmFzZVVSSVwiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KE5vZGUucHJvdG90eXBlLFwiYmFzZVVSSVwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgYT0odGhpcy5vd25lckRvY3VtZW50fHx0aGlzKS5xdWVyeVNlbGVjdG9yKFwiYmFzZVtocmVmXVwiKTtyZXR1cm4gYSYmYS5ocmVmfHx3aW5kb3cubG9jYXRpb24uaHJlZn0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KTsvKlxuXG5Db3B5cmlnaHQgKGMpIDIwMjAgVGhlIFBvbHltZXIgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0XG5odHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBhdXRob3JzIG1heSBiZSBmb3VuZCBhdFxuaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgY29udHJpYnV0b3JzIG1heSBiZVxuZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXNcbnBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvIHN1YmplY3QgdG8gYW4gYWRkaXRpb25hbCBJUCByaWdodHMgZ3JhbnRcbmZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuKi9cbnZhciBpYixqYixrYj1FbGVtZW50LnByb3RvdHlwZSxuYj1udWxsIT09KGliPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioa2IsXCJhdHRyaWJ1dGVzXCIpKSYmdm9pZCAwIT09aWI/aWI6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcImF0dHJpYnV0ZXNcIiksb2I9bnVsbCE9PShqYj1udWxsPT09bmJ8fHZvaWQgMD09PW5iP3ZvaWQgMDpuYi5nZXQpJiZ2b2lkIDAhPT1qYj9qYjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0dHJpYnV0ZXN9LHBiPUFycmF5LnByb3RvdHlwZS5tYXA7a2IuaGFzT3duUHJvcGVydHkoXCJnZXRBdHRyaWJ1dGVOYW1lc1wiKXx8KGtiLmdldEF0dHJpYnV0ZU5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHBiLmNhbGwob2IuY2FsbCh0aGlzKSxmdW5jdGlvbihhKXtyZXR1cm4gYS5uYW1lfSl9KTt2YXIgcWIscmI9RWxlbWVudC5wcm90b3R5cGU7cmIuaGFzT3duUHJvcGVydHkoXCJtYXRjaGVzXCIpfHwocmIubWF0Y2hlcz1udWxsIT09KHFiPXJiLndlYmtpdE1hdGNoZXNTZWxlY3RvcikmJnZvaWQgMCE9PXFiP3FiOnJiLm1zTWF0Y2hlc1NlbGVjdG9yKTt2YXIgc2I9Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7ZnVuY3Rpb24gdGIoYSl7YT1hLnByb3RvdHlwZTthLmhhc093blByb3BlcnR5KFwiYXBwZW5kXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxcImFwcGVuZFwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihiKXtmb3IodmFyIGM9W10sZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDsrK2QpY1tkXT1hcmd1bWVudHNbZF07Yz1rYShjKTtmb3IoZD1jLm5leHQoKTshZC5kb25lO2Q9Yy5uZXh0KCkpZD1kLnZhbHVlLHNiLmNhbGwodGhpcyxcInN0cmluZ1wiPT09dHlwZW9mIGQ/ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZCk6ZCl9fSl9dGIoRG9jdW1lbnQpO3RiKERvY3VtZW50RnJhZ21lbnQpO3RiKEVsZW1lbnQpO3ZhciB1Yix2Yix3Yj1Ob2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmUseGI9bnVsbCE9PSh2Yj1udWxsPT09KHViPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsXCJmaXJzdENoaWxkXCIpKXx8dm9pZCAwPT09dWI/dm9pZCAwOnViLmdldCkmJnZvaWQgMCE9PXZiP3ZiOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07XG5mdW5jdGlvbiB5YihhKXthPWEucHJvdG90eXBlO2EuaGFzT3duUHJvcGVydHkoXCJwcmVwZW5kXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxcInByZXBlbmRcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7KytkKWNbZF09YXJndW1lbnRzW2RdO2Q9eGIuY2FsbCh0aGlzKTtjPWthKGMpO2Zvcih2YXIgZT1jLm5leHQoKTshZS5kb25lO2U9Yy5uZXh0KCkpZT1lLnZhbHVlLHdiLmNhbGwodGhpcyxcInN0cmluZ1wiPT09dHlwZW9mIGU/ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSk6ZSxkKX19KX15YihEb2N1bWVudCk7eWIoRG9jdW1lbnRGcmFnbWVudCk7eWIoRWxlbWVudCk7dmFyIHpiLEFiLEJiPU5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkLENiPU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLERiPW51bGwhPT0oQWI9bnVsbD09PSh6Yj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLFwiZmlyc3RDaGlsZFwiKSl8fHZvaWQgMD09PXpiP3ZvaWQgMDp6Yi5nZXQpJiZ2b2lkIDAhPT1BYj9BYjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpcnN0Q2hpbGR9O1xuZnVuY3Rpb24gRWIoYSl7YT1hLnByb3RvdHlwZTthLmhhc093blByb3BlcnR5KFwicmVwbGFjZUNoaWxkcmVuXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxcInJlcGxhY2VDaGlsZHJlblwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihiKXtmb3IodmFyIGM9W10sZD0wO2Q8YXJndW1lbnRzLmxlbmd0aDsrK2QpY1tkXT1hcmd1bWVudHNbZF07Zm9yKDtudWxsIT09KGQ9RGIuY2FsbCh0aGlzKSk7KUNiLmNhbGwodGhpcyxkKTtjPWthKGMpO2ZvcihkPWMubmV4dCgpOyFkLmRvbmU7ZD1jLm5leHQoKSlkPWQudmFsdWUsQmIuY2FsbCh0aGlzLFwic3RyaW5nXCI9PT10eXBlb2YgZD9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkKTpkKX19KX1FYihEb2N1bWVudCk7RWIoRG9jdW1lbnRGcmFnbWVudCk7RWIoRWxlbWVudCk7dmFyIEZiLEdiLEhiLEliLEpiPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxLYj1udWxsIT09KEdiPW51bGw9PT0oRmI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcInBhcmVudE5vZGVcIikpfHx2b2lkIDA9PT1GYj92b2lkIDA6RmIuZ2V0KSYmdm9pZCAwIT09R2I/R2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfSxMYj1udWxsIT09KEliPW51bGw9PT0oSGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcIm5leHRTaWJsaW5nXCIpKXx8dm9pZCAwPT09SGI/dm9pZCAwOkhiLmdldCkmJnZvaWQgMCE9PUliP0liOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmV4dFNpYmxpbmd9O1xuZnVuY3Rpb24gTWIoYSl7YT1hLnByb3RvdHlwZTthLmhhc093blByb3BlcnR5KFwiYWZ0ZXJcIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwiYWZ0ZXJcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7KytkKWNbZF09YXJndW1lbnRzW2RdO2Q9S2IuY2FsbCh0aGlzKTtpZihudWxsIT09ZCl7dmFyIGU9TGIuY2FsbCh0aGlzKTtjPWthKGMpO2Zvcih2YXIgZj1jLm5leHQoKTshZi5kb25lO2Y9Yy5uZXh0KCkpZj1mLnZhbHVlLEpiLmNhbGwoZCxcInN0cmluZ1wiPT09dHlwZW9mIGY/ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZik6ZixlKX19fSl9TWIoQ2hhcmFjdGVyRGF0YSk7TWIoRWxlbWVudCk7dmFyIE5iLE9iLFBiPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxRYj1udWxsIT09KE9iPW51bGw9PT0oTmI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcInBhcmVudE5vZGVcIikpfHx2b2lkIDA9PT1OYj92b2lkIDA6TmIuZ2V0KSYmdm9pZCAwIT09T2I/T2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfTtcbmZ1bmN0aW9uIFJiKGEpe2E9YS5wcm90b3R5cGU7YS5oYXNPd25Qcm9wZXJ0eShcImJlZm9yZVwiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsXCJiZWZvcmVcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oYil7Zm9yKHZhciBjPVtdLGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7KytkKWNbZF09YXJndW1lbnRzW2RdO2Q9UWIuY2FsbCh0aGlzKTtpZihudWxsIT09ZCl7Yz1rYShjKTtmb3IodmFyIGU9Yy5uZXh0KCk7IWUuZG9uZTtlPWMubmV4dCgpKWU9ZS52YWx1ZSxQYi5jYWxsKGQsXCJzdHJpbmdcIj09PXR5cGVvZiBlP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpOmUsdGhpcyl9fX0pfVJiKENoYXJhY3RlckRhdGEpO1JiKEVsZW1lbnQpO3ZhciBTYixUYixVYj1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxWYj1udWxsIT09KFRiPW51bGw9PT0oU2I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcInBhcmVudE5vZGVcIikpfHx2b2lkIDA9PT1TYj92b2lkIDA6U2IuZ2V0KSYmdm9pZCAwIT09VGI/VGI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfTtmdW5jdGlvbiBXYihhKXthPWEucHJvdG90eXBlO2EuaGFzT3duUHJvcGVydHkoXCJyZW1vdmVcIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwicmVtb3ZlXCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGI9VmIuY2FsbCh0aGlzKTtiJiZVYi5jYWxsKGIsdGhpcyl9fSl9V2IoQ2hhcmFjdGVyRGF0YSk7V2IoRWxlbWVudCk7dmFyIFhiLFliLFpiPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSwkYj1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxhYz1udWxsIT09KFliPW51bGw9PT0oWGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcInBhcmVudE5vZGVcIikpfHx2b2lkIDA9PT1YYj92b2lkIDA6WGIuZ2V0KSYmdm9pZCAwIT09WWI/WWI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfTtcbmZ1bmN0aW9uIGJjKGEpe2E9YS5wcm90b3R5cGU7YS5oYXNPd25Qcm9wZXJ0eShcInJlcGxhY2VXaXRoXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxcInJlcGxhY2VXaXRoXCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGIpe2Zvcih2YXIgYz1bXSxkPTA7ZDxhcmd1bWVudHMubGVuZ3RoOysrZCljW2RdPWFyZ3VtZW50c1tkXTtkPWFjLmNhbGwodGhpcyk7aWYobnVsbCE9PWQpe2M9a2EoYyk7Zm9yKHZhciBlPWMubmV4dCgpOyFlLmRvbmU7ZT1jLm5leHQoKSllPWUudmFsdWUsWmIuY2FsbChkLFwic3RyaW5nXCI9PT10eXBlb2YgZT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKTplLHRoaXMpOyRiLmNhbGwoZCx0aGlzKX19fSl9YmMoQ2hhcmFjdGVyRGF0YSk7YmMoRWxlbWVudCk7dmFyIGNjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZSxkYz13aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLGVjPXdpbmRvdy5TVkdFbGVtZW50LnByb3RvdHlwZTshZGMuaGFzT3duUHJvcGVydHkoXCJjbGFzc0xpc3RcIil8fGNjLmhhc093blByb3BlcnR5KFwiY2xhc3NMaXN0XCIpfHxlYy5oYXNPd25Qcm9wZXJ0eShcImNsYXNzTGlzdFwiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGNjLFwiY2xhc3NMaXN0XCIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkYyxcImNsYXNzTGlzdFwiKSk7LypcblxuIENvcHlyaWdodCAoYykgMjAxNCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0XG4gaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0IFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmRcbiBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vQVVUSE9SUy50eHQgVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5XG4gYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHQgQ29kZSBkaXN0cmlidXRlZCBieVxuIEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzbyBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVBcbiByaWdodHMgZ3JhbnQgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL1BBVEVOVFMudHh0XG4qL1xudmFyIGZjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtmYy50ZXh0Q29udGVudD1cImJvZHkge3RyYW5zaXRpb246IG9wYWNpdHkgZWFzZS1pbiAwLjJzOyB9IFxcbmJvZHlbdW5yZXNvbHZlZF0ge29wYWNpdHk6IDA7IGRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0gXFxuXCI7dmFyIGhjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJoZWFkXCIpO2hjLmluc2VydEJlZm9yZShmYyxoYy5maXJzdENoaWxkKTt2YXIgaWM9d2luZG93O2ljLldlYkNvbXBvbmVudHM9aWMuV2ViQ29tcG9uZW50c3x8e2ZsYWdzOnt9fTt2YXIgamM9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9XCJ3ZWJjb21wb25lbnRzLWJ1bmRsZVwiXScpLGtjPS93Yy0oLispLyxsYz17fTtpZighbGMubm9PcHRzKXtsb2NhdGlvbi5zZWFyY2guc2xpY2UoMSkuc3BsaXQoXCImXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7YT1hLnNwbGl0KFwiPVwiKTt2YXIgYjthWzBdJiYoYj1hWzBdLm1hdGNoKGtjKSkmJihsY1tiWzFdXT1hWzFdfHwhMCl9KTtpZihqYylmb3IodmFyIG1jPTAsbmM9dm9pZCAwO25jPWpjLmF0dHJpYnV0ZXNbbWNdO21jKyspXCJzcmNcIiE9PW5jLm5hbWUmJihsY1tuYy5uYW1lXT1uYy52YWx1ZXx8ITApO3ZhciBvYz17fTtsYy5sb2cmJmxjLmxvZy5zcGxpdCYmbGMubG9nLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe29jW2FdPSEwfSk7bGMubG9nPW9jfVxuaWMuV2ViQ29tcG9uZW50cy5mbGFncz1sYzt2YXIgcGM9bGMuc2hhZHlkb207aWYocGMpe2ljLlNoYWR5RE9NPWljLlNoYWR5RE9NfHx7fTtpYy5TaGFkeURPTS5mb3JjZT1wYzt2YXIgcWM9bGMubm9QYXRjaDtpYy5TaGFkeURPTS5ub1BhdGNoPVwidHJ1ZVwiPT09cWM/ITA6cWN9dmFyIHJjPWxjLnJlZ2lzdGVyfHxsYy5jZTtyYyYmd2luZG93LmN1c3RvbUVsZW1lbnRzJiYoaWMuY3VzdG9tRWxlbWVudHMuZm9yY2VQb2x5ZmlsbD1yYyk7LypcblxuIENvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gVGhpcyBjb2RlIG1heSBvbmx5IGJlIHVzZWQgdW5kZXIgdGhlIEJTRCBzdHlsZSBsaWNlbnNlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9MSUNFTlNFLnR4dFxuIFRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG4gVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG4gQ29kZSBkaXN0cmlidXRlZCBieSBHb29nbGUgYXMgcGFydCBvZiB0aGUgcG9seW1lciBwcm9qZWN0IGlzIGFsc29cbiBzdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuKi9cbihmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt9ZnVuY3Rpb24gYihwLHIpe2lmKCFwLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybltdO3N3aXRjaChwLm5vZGVUeXBlKXtjYXNlIE5vZGUuRE9DVU1FTlRfTk9ERTpyZXR1cm4gRi5jYWxsKHAscik7Y2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6cmV0dXJuIEUuY2FsbChwLHIpO2RlZmF1bHQ6cmV0dXJuIHQuY2FsbChwLHIpfX12YXIgYz1cInVuZGVmaW5lZFwiPT09dHlwZW9mIEhUTUxUZW1wbGF0ZUVsZW1lbnQsZD0hKGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5jbG9uZU5vZGUoKWluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCksZT0hMTsvVHJpZGVudC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmZnVuY3Rpb24oKXtmdW5jdGlvbiBwKHosUil7aWYoeiBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpZm9yKHZhciBsYjtsYj16LmZpcnN0Q2hpbGQ7KUIuY2FsbCh0aGlzLGxiLFIpO2Vsc2UgQi5jYWxsKHRoaXMsXG56LFIpO3JldHVybiB6fWU9ITA7dmFyIHI9Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlO05vZGUucHJvdG90eXBlLmNsb25lTm9kZT1mdW5jdGlvbih6KXt6PXIuY2FsbCh0aGlzLHopO3RoaXMgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50JiYoei5fX3Byb3RvX189RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUpO3JldHVybiB6fTtEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsPUhUTUxFbGVtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsO0RvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3I9SFRNTEVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3I7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUse25vZGVUeXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFfSxjb25maWd1cmFibGU6ITB9LGxvY2FsTmFtZTp7Z2V0OmZ1bmN0aW9uKCl7fSxcbmNvbmZpZ3VyYWJsZTohMH0sbm9kZU5hbWU6e2dldDpmdW5jdGlvbigpe3JldHVyblwiI2RvY3VtZW50LWZyYWdtZW50XCJ9LGNvbmZpZ3VyYWJsZTohMH19KTt2YXIgQj1Ob2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmU7Tm9kZS5wcm90b3R5cGUuaW5zZXJ0QmVmb3JlPXA7dmFyIEs9Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oeil7eiBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQ/cC5jYWxsKHRoaXMseixudWxsKTpLLmNhbGwodGhpcyx6KTtyZXR1cm4gen07dmFyIGFhPU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLGxhPU5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZDtOb2RlLnByb3RvdHlwZS5yZXBsYWNlQ2hpbGQ9ZnVuY3Rpb24oeixSKXt6IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudD8ocC5jYWxsKHRoaXMseixSKSxhYS5jYWxsKHRoaXMsUikpOmxhLmNhbGwodGhpcyx6LFIpO3JldHVybiBSfTtEb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1cbmZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5jcmVhdGVFbGVtZW50KFwiZGZcIik7ei5fX3Byb3RvX189RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGU7cmV0dXJuIHp9O3ZhciB2YT1Eb2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZTtEb2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZT1mdW5jdGlvbih6LFIpe1I9dmEuY2FsbCh0aGlzLHosUnx8ITEpO3ogaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50JiYoUi5fX3Byb3RvX189RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUpO3JldHVybiBSfX0oKTt2YXIgZj1Ob2RlLnByb3RvdHlwZS5jbG9uZU5vZGUsZz1Eb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudCxoPURvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlLGs9Tm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsbD1Ob2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZCxtPU5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZCxxPURPTVBhcnNlci5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nLFxuSD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUsXCJpbm5lckhUTUxcIil8fHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbm5lckhUTUx9LHNldDpmdW5jdGlvbihwKXt0aGlzLmlubmVySFRNTD1wfX0sQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5Ob2RlLnByb3RvdHlwZSxcImNoaWxkTm9kZXNcIil8fHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfX0sdD1FbGVtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsLEY9RG9jdW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwsRT1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsLE09ZnVuY3Rpb24oKXtpZighYyl7dmFyIHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIpO3IuY29udGVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKTtcbnAuY29udGVudC5hcHBlbmRDaGlsZChyKTtwPXAuY2xvbmVOb2RlKCEwKTtyZXR1cm4gMD09PXAuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aHx8MD09PXAuY29udGVudC5maXJzdENoaWxkLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGh8fGR9fSgpO2lmKGMpe3ZhciB5PWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudChcInRlbXBsYXRlXCIpLFc9ITAsdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7dy50ZXh0Q29udGVudD1cInRlbXBsYXRle2Rpc3BsYXk6bm9uZTt9XCI7dmFyIHRhPWRvY3VtZW50LmhlYWQ7dGEuaW5zZXJ0QmVmb3JlKHcsdGEuZmlyc3RFbGVtZW50Q2hpbGQpO2EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlKTt2YXIgaGE9IWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuaGFzT3duUHJvcGVydHkoXCJpbm5lckhUTUxcIik7YS5aPWZ1bmN0aW9uKHApe2lmKCFwLmNvbnRlbnQmJnAubmFtZXNwYWNlVVJJPT09XG5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJKXtwLmNvbnRlbnQ9eS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKHZhciByO3I9cC5maXJzdENoaWxkOylsLmNhbGwocC5jb250ZW50LHIpO2lmKGhhKXAuX19wcm90b19fPWEucHJvdG90eXBlO2Vsc2UgaWYocC5jbG9uZU5vZGU9ZnVuY3Rpb24oQil7cmV0dXJuIGEuc2EodGhpcyxCKX0sVyl0cnl7bihwKSxKKHApfWNhdGNoKEIpe1c9ITF9YS5ib290c3RyYXAocC5jb250ZW50KX19O3ZhciBzYT17b3B0aW9uOltcInNlbGVjdFwiXSx0aGVhZDpbXCJ0YWJsZVwiXSxjb2w6W1wiY29sZ3JvdXBcIixcInRhYmxlXCJdLHRyOltcInRib2R5XCIsXCJ0YWJsZVwiXSx0aDpbXCJ0clwiLFwidGJvZHlcIixcInRhYmxlXCJdLHRkOltcInRyXCIsXCJ0Ym9keVwiLFwidGFibGVcIl19LG49ZnVuY3Rpb24ocCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHAsXCJpbm5lckhUTUxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHdhKHRoaXMpfSxzZXQ6ZnVuY3Rpb24ocil7dmFyIEI9XG5zYVsoLzwoW2Etel1bXi9cXDA+XFx4MjBcXHRcXHJcXG5cXGZdKykvaS5leGVjKHIpfHxbXCJcIixcIlwiXSlbMV0udG9Mb3dlckNhc2UoKV07aWYoQilmb3IodmFyIEs9MDtLPEIubGVuZ3RoO0srKylyPVwiPFwiK0JbS10rXCI+XCIrcitcIjwvXCIrQltLXStcIj5cIjt5LmJvZHkuaW5uZXJIVE1MPXI7Zm9yKGEuYm9vdHN0cmFwKHkpO3RoaXMuY29udGVudC5maXJzdENoaWxkOylrLmNhbGwodGhpcy5jb250ZW50LHRoaXMuY29udGVudC5maXJzdENoaWxkKTtyPXkuYm9keTtpZihCKWZvcihLPTA7SzxCLmxlbmd0aDtLKyspcj1yLmxhc3RDaGlsZDtmb3IoO3IuZmlyc3RDaGlsZDspbC5jYWxsKHRoaXMuY29udGVudCxyLmZpcnN0Q2hpbGQpfSxjb25maWd1cmFibGU6ITB9KX0sSj1mdW5jdGlvbihwKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocCxcIm91dGVySFRNTFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjx0ZW1wbGF0ZT5cIit0aGlzLmlubmVySFRNTCtcIjwvdGVtcGxhdGU+XCJ9LHNldDpmdW5jdGlvbihyKXtpZih0aGlzLnBhcmVudE5vZGUpe3kuYm9keS5pbm5lckhUTUw9XG5yO2ZvcihyPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7eS5ib2R5LmZpcnN0Q2hpbGQ7KWwuY2FsbChyLHkuYm9keS5maXJzdENoaWxkKTttLmNhbGwodGhpcy5wYXJlbnROb2RlLHIsdGhpcyl9ZWxzZSB0aHJvdyBFcnJvcihcIkZhaWxlZCB0byBzZXQgdGhlICdvdXRlckhUTUwnIHByb3BlcnR5IG9uICdFbGVtZW50JzogVGhpcyBlbGVtZW50IGhhcyBubyBwYXJlbnQgbm9kZS5cIik7fSxjb25maWd1cmFibGU6ITB9KX07bihhLnByb3RvdHlwZSk7SihhLnByb3RvdHlwZSk7YS5ib290c3RyYXA9ZnVuY3Rpb24ocCl7cD1iKHAsXCJ0ZW1wbGF0ZVwiKTtmb3IodmFyIHI9MCxCPXAubGVuZ3RoLEs7cjxCJiYoSz1wW3JdKTtyKyspYS5aKEspfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLGZ1bmN0aW9uKCl7YS5ib290c3RyYXAoZG9jdW1lbnQpfSk7RG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oKXt2YXIgcD1cbmcuYXBwbHkodGhpcyxhcmd1bWVudHMpO1widGVtcGxhdGVcIj09PXAubG9jYWxOYW1lJiZhLloocCk7cmV0dXJuIHB9O0RPTVBhcnNlci5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHA9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7YS5ib290c3RyYXAocCk7cmV0dXJuIHB9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShIVE1MRWxlbWVudC5wcm90b3R5cGUsXCJpbm5lckhUTUxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHdhKHRoaXMpfSxzZXQ6ZnVuY3Rpb24ocCl7SC5zZXQuY2FsbCh0aGlzLHApO2EuYm9vdHN0cmFwKHRoaXMpfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pO3ZhciBmYT0vWyZcXHUwMEEwXCJdL2csZ2M9L1smXFx1MDBBMDw+XS9nLGZiPWZ1bmN0aW9uKHApe3N3aXRjaChwKXtjYXNlIFwiJlwiOnJldHVyblwiJmFtcDtcIjtjYXNlIFwiPFwiOnJldHVyblwiJmx0O1wiO2Nhc2UgXCI+XCI6cmV0dXJuXCImZ3Q7XCI7Y2FzZSAnXCInOnJldHVyblwiJnF1b3Q7XCI7Y2FzZSBcIlxcdTAwYTBcIjpyZXR1cm5cIiZuYnNwO1wifX07XG53PWZ1bmN0aW9uKHApe2Zvcih2YXIgcj17fSxCPTA7QjxwLmxlbmd0aDtCKyspcltwW0JdXT0hMDtyZXR1cm4gcn07dmFyIFVhPXcoXCJhcmVhIGJhc2UgYnIgY29sIGNvbW1hbmQgZW1iZWQgaHIgaW1nIGlucHV0IGtleWdlbiBsaW5rIG1ldGEgcGFyYW0gc291cmNlIHRyYWNrIHdiclwiLnNwbGl0KFwiIFwiKSksZ2I9dyhcInN0eWxlIHNjcmlwdCB4bXAgaWZyYW1lIG5vZW1iZWQgbm9mcmFtZXMgcGxhaW50ZXh0IG5vc2NyaXB0XCIuc3BsaXQoXCIgXCIpKSx3YT1mdW5jdGlvbihwLHIpe1widGVtcGxhdGVcIj09PXAubG9jYWxOYW1lJiYocD1wLmNvbnRlbnQpO2Zvcih2YXIgQj1cIlwiLEs9cj9yKHApOkMuZ2V0LmNhbGwocCksYWE9MCxsYT1LLmxlbmd0aCx2YTthYTxsYSYmKHZhPUtbYWFdKTthYSsrKXthOnt2YXIgej12YTt2YXIgUj1wO3ZhciBsYj1yO3N3aXRjaCh6Lm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmZvcih2YXIgRmM9ei5sb2NhbE5hbWUsbWI9XCI8XCIrRmMsQmg9ei5hdHRyaWJ1dGVzLFxub2U9MDtSPUJoW29lXTtvZSsrKW1iKz1cIiBcIitSLm5hbWUrJz1cIicrUi52YWx1ZS5yZXBsYWNlKGZhLGZiKSsnXCInO21iKz1cIj5cIjt6PVVhW0ZjXT9tYjptYit3YSh6LGxiKStcIjwvXCIrRmMrXCI+XCI7YnJlYWsgYTtjYXNlIE5vZGUuVEVYVF9OT0RFOno9ei5kYXRhO3o9UiYmZ2JbUi5sb2NhbE5hbWVdP3o6ei5yZXBsYWNlKGdjLGZiKTticmVhayBhO2Nhc2UgTm9kZS5DT01NRU5UX05PREU6ej1cIlxceDNjIS0tXCIrei5kYXRhK1wiLS1cXHgzZVwiO2JyZWFrIGE7ZGVmYXVsdDp0aHJvdyB3aW5kb3cuY29uc29sZS5lcnJvcih6KSxFcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTt9fUIrPXp9cmV0dXJuIEJ9fWlmKGN8fE0pe2Euc2E9ZnVuY3Rpb24ocCxyKXt2YXIgQj1mLmNhbGwocCwhMSk7dGhpcy5aJiZ0aGlzLlooQik7ciYmKGwuY2FsbChCLmNvbnRlbnQsZi5jYWxsKHAuY29udGVudCwhMCkpLEkoQi5jb250ZW50LHAuY29udGVudCkpO3JldHVybiBCfTt2YXIgST1mdW5jdGlvbihwLHIpe2lmKHIucXVlcnlTZWxlY3RvckFsbCYmXG4ocj1iKHIsXCJ0ZW1wbGF0ZVwiKSwwIT09ci5sZW5ndGgpKXtwPWIocCxcInRlbXBsYXRlXCIpO2Zvcih2YXIgQj0wLEs9cC5sZW5ndGgsYWEsbGE7QjxLO0IrKylsYT1yW0JdLGFhPXBbQl0sYSYmYS5aJiZhLloobGEpLG0uY2FsbChhYS5wYXJlbnROb2RlLHUuY2FsbChsYSwhMCksYWEpfX0sdT1Ob2RlLnByb3RvdHlwZS5jbG9uZU5vZGU9ZnVuY3Rpb24ocCl7aWYoIWUmJmQmJnRoaXMgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KWlmKHApdmFyIHI9Ry5jYWxsKHRoaXMub3duZXJEb2N1bWVudCx0aGlzLCEwKTtlbHNlIHJldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2Vsc2UgdGhpcy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZcInRlbXBsYXRlXCI9PT10aGlzLmxvY2FsTmFtZSYmdGhpcy5uYW1lc3BhY2VVUkk9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk/cj1hLnNhKHRoaXMscCk6cj1mLmNhbGwodGhpcyxcbnApO3AmJkkocix0aGlzKTtyZXR1cm4gcn0sRz1Eb2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZT1mdW5jdGlvbihwLHIpe3I9cnx8ITE7aWYoXCJ0ZW1wbGF0ZVwiPT09cC5sb2NhbE5hbWUpcmV0dXJuIGEuc2EocCxyKTt2YXIgQj1oLmNhbGwodGhpcyxwLHIpO2lmKHIpe0koQixwKTtwPWIoQiwnc2NyaXB0Om5vdChbdHlwZV0pLHNjcmlwdFt0eXBlPVwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiXSxzY3JpcHRbdHlwZT1cInRleHQvamF2YXNjcmlwdFwiXScpO2Zvcih2YXIgSyxhYT0wO2FhPHAubGVuZ3RoO2FhKyspe0s9cFthYV07cj1nLmNhbGwoZG9jdW1lbnQsXCJzY3JpcHRcIik7ci50ZXh0Q29udGVudD1LLnRleHRDb250ZW50O2Zvcih2YXIgbGE9Sy5hdHRyaWJ1dGVzLHZhPTAsejt2YTxsYS5sZW5ndGg7dmErKyl6PWxhW3ZhXSxyLnNldEF0dHJpYnV0ZSh6Lm5hbWUsei52YWx1ZSk7bS5jYWxsKEsucGFyZW50Tm9kZSxyLEspfX1yZXR1cm4gQn19YyYmKHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50PVxuYSl9KSgpOy8qXG5cbkNvcHlyaWdodCAoYykgMjAxNiBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5UaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG5Db2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzb1xuc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiovXG5mdW5jdGlvbiBzYygpe31zYy5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue319O2Z1bmN0aW9uIEQoYSl7YS5fX3NoYWR5fHwoYS5fX3NoYWR5PW5ldyBzYyk7cmV0dXJuIGEuX19zaGFkeX1mdW5jdGlvbiBMKGEpe3JldHVybiBhJiZhLl9fc2hhZHl9O3ZhciBOPXdpbmRvdy5TaGFkeURPTXx8e307Ti5ZYT0hKCFFbGVtZW50LnByb3RvdHlwZS5hdHRhY2hTaGFkb3d8fCFOb2RlLnByb3RvdHlwZS5nZXRSb290Tm9kZSk7dmFyIHRjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsXCJmaXJzdENoaWxkXCIpO04uSD0hISh0YyYmdGMuY29uZmlndXJhYmxlJiZ0Yy5nZXQpO04ueWE9Ti5mb3JjZXx8IU4uWWE7Ti5KPU4ubm9QYXRjaHx8ITE7Ti5mYT1OLnByZWZlclBlcmZvcm1hbmNlO04uQWE9XCJvbi1kZW1hbmRcIj09PU4uSjtOLk5hPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goXCJUcmlkZW50XCIpO2Z1bmN0aW9uIHVjKCl7cmV0dXJuIERvY3VtZW50LnByb3RvdHlwZS5tc0VsZW1lbnRzRnJvbVBvaW50P1wibXNFbGVtZW50c0Zyb21Qb2ludFwiOlwiZWxlbWVudHNGcm9tUG9pbnRcIn1mdW5jdGlvbiB2YyhhKXtyZXR1cm4oYT1MKGEpKSYmdm9pZCAwIT09YS5maXJzdENoaWxkfVxuZnVuY3Rpb24gTyhhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3R9ZnVuY3Rpb24gd2MoYSl7cmV0dXJuKGE9KGE9TChhKSkmJmEucm9vdCkmJnhjKGEpfXZhciB5Yz1FbGVtZW50LnByb3RvdHlwZSx6Yz15Yy5tYXRjaGVzfHx5Yy5tYXRjaGVzU2VsZWN0b3J8fHljLm1vek1hdGNoZXNTZWxlY3Rvcnx8eWMubXNNYXRjaGVzU2VsZWN0b3J8fHljLm9NYXRjaGVzU2VsZWN0b3J8fHljLndlYmtpdE1hdGNoZXNTZWxlY3RvcixBYz1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlwiKSxCYz0wLENjPVtdOyhuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2Zvcig7Q2MubGVuZ3RoOyl0cnl7Q2Muc2hpZnQoKSgpfWNhdGNoKGEpe3Rocm93IEFjLnRleHRDb250ZW50PUJjKyssYTt9fSkpLm9ic2VydmUoQWMse2NoYXJhY3RlckRhdGE6ITB9KTtmdW5jdGlvbiBEYyhhKXtDYy5wdXNoKGEpO0FjLnRleHRDb250ZW50PUJjKyt9XG52YXIgRWM9ZG9jdW1lbnQuY29udGFpbnM/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5fX3NoYWR5X25hdGl2ZV9jb250YWlucyhiKX06ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWJ8fGEuZG9jdW1lbnRFbGVtZW50JiZhLmRvY3VtZW50RWxlbWVudC5fX3NoYWR5X25hdGl2ZV9jb250YWlucyhiKX07ZnVuY3Rpb24gR2MoYSxiKXtmb3IoO2I7KXtpZihiPT1hKXJldHVybiEwO2I9Yi5fX3NoYWR5X3BhcmVudE5vZGV9cmV0dXJuITF9XG5mdW5jdGlvbiBIYyhhKXtmb3IodmFyIGI9YS5sZW5ndGgtMTswPD1iO2ItLSl7dmFyIGM9YVtiXSxkPWMuZ2V0QXR0cmlidXRlKFwiaWRcIil8fGMuZ2V0QXR0cmlidXRlKFwibmFtZVwiKTtkJiZcImxlbmd0aFwiIT09ZCYmaXNOYU4oZCkmJihhW2RdPWMpfWEuaXRlbT1mdW5jdGlvbihlKXtyZXR1cm4gYVtlXX07YS5uYW1lZEl0ZW09ZnVuY3Rpb24oZSl7aWYoXCJsZW5ndGhcIiE9PWUmJmlzTmFOKGUpJiZhW2VdKXJldHVybiBhW2VdO2Zvcih2YXIgZj1rYShhKSxnPWYubmV4dCgpOyFnLmRvbmU7Zz1mLm5leHQoKSlpZihnPWcudmFsdWUsKGcuZ2V0QXR0cmlidXRlKFwiaWRcIil8fGcuZ2V0QXR0cmlidXRlKFwibmFtZVwiKSk9PWUpcmV0dXJuIGc7cmV0dXJuIG51bGx9O3JldHVybiBhfWZ1bmN0aW9uIEljKGEpe3ZhciBiPVtdO2ZvcihhPWEuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDthO2E9YS5fX3NoYWR5X25hdGl2ZV9uZXh0U2libGluZyliLnB1c2goYSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBKYyhhKXt2YXIgYj1bXTtmb3IoYT1hLl9fc2hhZHlfZmlyc3RDaGlsZDthO2E9YS5fX3NoYWR5X25leHRTaWJsaW5nKWIucHVzaChhKTtyZXR1cm4gYn1mdW5jdGlvbiBLYyhhLGIsYyl7Yy5jb25maWd1cmFibGU9ITA7aWYoYy52YWx1ZSlhW2JdPWMudmFsdWU7ZWxzZSB0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYixjKX1jYXRjaChkKXt9fWZ1bmN0aW9uIFAoYSxiLGMsZCl7Yz12b2lkIDA9PT1jP1wiXCI6Yztmb3IodmFyIGUgaW4gYilkJiYwPD1kLmluZGV4T2YoZSl8fEtjKGEsYytlLGJbZV0pfWZ1bmN0aW9uIExjKGEsYil7Zm9yKHZhciBjIGluIGIpYyBpbiBhJiZLYyhhLGMsYltjXSl9ZnVuY3Rpb24gUShhKXt2YXIgYj17fTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2JbY109T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhLGMpfSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBNYyhhLGIpe2Zvcih2YXIgYz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiKSxkPTAsZTtkPGMubGVuZ3RoO2QrKyllPWNbZF0sYVtlXT1iW2VdfWZ1bmN0aW9uIE5jKGEpe3JldHVybiBhIGluc3RhbmNlb2YgTm9kZT9hOmRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFwiXCIrYSl9ZnVuY3Rpb24gT2MoYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGFyZ3VtZW50cy5sZW5ndGg7KytjKWJbY109YXJndW1lbnRzW2NdO2lmKDE9PT1iLmxlbmd0aClyZXR1cm4gTmMoYlswXSk7Yz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yj1rYShiKTtmb3IodmFyIGQ9Yi5uZXh0KCk7IWQuZG9uZTtkPWIubmV4dCgpKWMuYXBwZW5kQ2hpbGQoTmMoZC52YWx1ZSkpO3JldHVybiBjfTt2YXIgUGM9W10sUWM7ZnVuY3Rpb24gUmMoYSl7UWN8fChRYz0hMCxEYyhTYykpO1BjLnB1c2goYSl9ZnVuY3Rpb24gU2MoKXtRYz0hMTtmb3IodmFyIGE9ISFQYy5sZW5ndGg7UGMubGVuZ3RoOylQYy5zaGlmdCgpKCk7cmV0dXJuIGF9U2MubGlzdD1QYztmdW5jdGlvbiBUYygpe3RoaXMuZz0hMTt0aGlzLmFkZGVkTm9kZXM9W107dGhpcy5yZW1vdmVkTm9kZXM9W107dGhpcy5vYT1uZXcgU2V0fWZ1bmN0aW9uIFVjKGEpe2EuZ3x8KGEuZz0hMCxEYyhmdW5jdGlvbigpe2EuZmx1c2goKX0pKX1UYy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmcpe3RoaXMuZz0hMTt2YXIgYT10aGlzLnRha2VSZWNvcmRzKCk7YS5sZW5ndGgmJnRoaXMub2EuZm9yRWFjaChmdW5jdGlvbihiKXtiKGEpfSl9fTtUYy5wcm90b3R5cGUudGFrZVJlY29yZHM9ZnVuY3Rpb24oKXtpZih0aGlzLmFkZGVkTm9kZXMubGVuZ3RofHx0aGlzLnJlbW92ZWROb2Rlcy5sZW5ndGgpe3ZhciBhPVt7YWRkZWROb2Rlczp0aGlzLmFkZGVkTm9kZXMscmVtb3ZlZE5vZGVzOnRoaXMucmVtb3ZlZE5vZGVzfV07dGhpcy5hZGRlZE5vZGVzPVtdO3RoaXMucmVtb3ZlZE5vZGVzPVtdO3JldHVybiBhfXJldHVybltdfTtcbmZ1bmN0aW9uIFZjKGEsYil7dmFyIGM9RChhKTtjLmVhfHwoYy5lYT1uZXcgVGMpO2MuZWEub2EuYWRkKGIpO3ZhciBkPWMuZWE7cmV0dXJue1JhOmIsWDpkLFNhOmEsdGFrZVJlY29yZHM6ZnVuY3Rpb24oKXtyZXR1cm4gZC50YWtlUmVjb3JkcygpfX19ZnVuY3Rpb24gV2MoYSl7dmFyIGI9YSYmYS5YO2ImJihiLm9hLmRlbGV0ZShhLlJhKSxiLm9hLnNpemV8fChEKGEuU2EpLmVhPW51bGwpKX1cbmZ1bmN0aW9uIFhjKGEsYil7dmFyIGM9Yi5nZXRSb290Tm9kZSgpO3JldHVybiBhLm1hcChmdW5jdGlvbihkKXt2YXIgZT1jPT09ZC50YXJnZXQuZ2V0Um9vdE5vZGUoKTtpZihlJiZkLmFkZGVkTm9kZXMpe2lmKGU9W10uc2xpY2UuY2FsbChkLmFkZGVkTm9kZXMpLmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gYz09PWYuZ2V0Um9vdE5vZGUoKX0pLGUubGVuZ3RoKXJldHVybiBkPU9iamVjdC5jcmVhdGUoZCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsXCJhZGRlZE5vZGVzXCIse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwfSksZH1lbHNlIGlmKGUpcmV0dXJuIGR9KS5maWx0ZXIoZnVuY3Rpb24oZCl7cmV0dXJuIGR9KX07dmFyIFljPS9bJlxcdTAwQTBcIl0vZyxaYz0vWyZcXHUwMEEwPD5dL2c7ZnVuY3Rpb24gJGMoYSl7c3dpdGNoKGEpe2Nhc2UgXCImXCI6cmV0dXJuXCImYW1wO1wiO2Nhc2UgXCI8XCI6cmV0dXJuXCImbHQ7XCI7Y2FzZSBcIj5cIjpyZXR1cm5cIiZndDtcIjtjYXNlICdcIic6cmV0dXJuXCImcXVvdDtcIjtjYXNlIFwiXFx1MDBhMFwiOnJldHVyblwiJm5ic3A7XCJ9fWZ1bmN0aW9uIGFkKGEpe2Zvcih2YXIgYj17fSxjPTA7YzxhLmxlbmd0aDtjKyspYlthW2NdXT0hMDtyZXR1cm4gYn12YXIgYmQ9YWQoXCJhcmVhIGJhc2UgYnIgY29sIGNvbW1hbmQgZW1iZWQgaHIgaW1nIGlucHV0IGtleWdlbiBsaW5rIG1ldGEgcGFyYW0gc291cmNlIHRyYWNrIHdiclwiLnNwbGl0KFwiIFwiKSksY2Q9YWQoXCJzdHlsZSBzY3JpcHQgeG1wIGlmcmFtZSBub2VtYmVkIG5vZnJhbWVzIHBsYWludGV4dCBub3NjcmlwdFwiLnNwbGl0KFwiIFwiKSk7XG5mdW5jdGlvbiBkZChhLGIpe1widGVtcGxhdGVcIj09PWEubG9jYWxOYW1lJiYoYT1hLmNvbnRlbnQpO2Zvcih2YXIgYz1cIlwiLGQ9Yj9iKGEpOmEuY2hpbGROb2RlcyxlPTAsZj1kLmxlbmd0aCxnPXZvaWQgMDtlPGYmJihnPWRbZV0pO2UrKyl7YTp7dmFyIGg9Zzt2YXIgaz1hLGw9Yjtzd2l0Y2goaC5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTprPWgubG9jYWxOYW1lO2Zvcih2YXIgbT1cIjxcIitrLHE9aC5hdHRyaWJ1dGVzLEg9MCxDO0M9cVtIXTtIKyspbSs9XCIgXCIrQy5uYW1lKyc9XCInK0MudmFsdWUucmVwbGFjZShZYywkYykrJ1wiJzttKz1cIj5cIjtoPWJkW2tdP206bStkZChoLGwpK1wiPC9cIitrK1wiPlwiO2JyZWFrIGE7Y2FzZSBOb2RlLlRFWFRfTk9ERTpoPWguZGF0YTtoPWsmJmNkW2subG9jYWxOYW1lXT9oOmgucmVwbGFjZShaYywkYyk7YnJlYWsgYTtjYXNlIE5vZGUuQ09NTUVOVF9OT0RFOmg9XCJcXHgzYyEtLVwiK2guZGF0YStcIi0tXFx4M2VcIjticmVhayBhO2RlZmF1bHQ6dGhyb3cgd2luZG93LmNvbnNvbGUuZXJyb3IoaCksXG5FcnJvcihcIm5vdCBpbXBsZW1lbnRlZFwiKTt9fWMrPWh9cmV0dXJuIGN9O3ZhciBlZD1OLkgsZmQ9e3F1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcXVlcnlTZWxlY3RvcihhKX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9xdWVyeVNlbGVjdG9yQWxsKGEpfX0sZ2Q9e307ZnVuY3Rpb24gaGQoYSl7Z2RbYV09ZnVuY3Rpb24oYil7cmV0dXJuIGJbXCJfX3NoYWR5X25hdGl2ZV9cIithXX19ZnVuY3Rpb24gaWQoYSxiKXtQKGEsYixcIl9fc2hhZHlfbmF0aXZlX1wiKTtmb3IodmFyIGMgaW4gYiloZChjKX1mdW5jdGlvbiBTKGEsYil7Yj12b2lkIDA9PT1iP1tdOmI7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY10sZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsZCk7ZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFwiX19zaGFkeV9uYXRpdmVfXCIrZCxlKSxlLnZhbHVlP2ZkW2RdfHwoZmRbZF09ZS52YWx1ZSk6aGQoZCkpfX1cbnZhciBqZD1kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKGRvY3VtZW50LE5vZGVGaWx0ZXIuU0hPV19BTEwsbnVsbCwhMSksa2Q9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxudWxsLCExKSxsZD1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoXCJpbmVydFwiKTtmdW5jdGlvbiBtZChhKXtmb3IodmFyIGI7Yj1hLl9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KWEuX19zaGFkeV9uYXRpdmVfcmVtb3ZlQ2hpbGQoYil9dmFyIG5kPVtcImZpcnN0RWxlbWVudENoaWxkXCIsXCJsYXN0RWxlbWVudENoaWxkXCIsXCJjaGlsZHJlblwiLFwiY2hpbGRFbGVtZW50Q291bnRcIl0sb2Q9W1wicXVlcnlTZWxlY3RvclwiLFwicXVlcnlTZWxlY3RvckFsbFwiLFwiYXBwZW5kXCIsXCJwcmVwZW5kXCIsXCJyZXBsYWNlQ2hpbGRyZW5cIl07XG5mdW5jdGlvbiBwZCgpe3ZhciBhPVtcImRpc3BhdGNoRXZlbnRcIixcImFkZEV2ZW50TGlzdGVuZXJcIixcInJlbW92ZUV2ZW50TGlzdGVuZXJcIl07d2luZG93LkV2ZW50VGFyZ2V0PyhTKHdpbmRvdy5FdmVudFRhcmdldC5wcm90b3R5cGUsYSksdm9pZCAwPT09d2luZG93Ll9fc2hhZHlfbmF0aXZlX2FkZEV2ZW50TGlzdGVuZXImJlMoV2luZG93LnByb3RvdHlwZSxhKSk6KFMoTm9kZS5wcm90b3R5cGUsYSksUyhXaW5kb3cucHJvdG90eXBlLGEpKTtlZD9TKE5vZGUucHJvdG90eXBlLFwicGFyZW50Tm9kZSBmaXJzdENoaWxkIGxhc3RDaGlsZCBwcmV2aW91c1NpYmxpbmcgbmV4dFNpYmxpbmcgY2hpbGROb2RlcyBwYXJlbnRFbGVtZW50IHRleHRDb250ZW50XCIuc3BsaXQoXCIgXCIpKTppZChOb2RlLnByb3RvdHlwZSx7cGFyZW50Tm9kZTp7Z2V0OmZ1bmN0aW9uKCl7amQuY3VycmVudE5vZGU9dGhpcztyZXR1cm4gamQucGFyZW50Tm9kZSgpfX0sZmlyc3RDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7amQuY3VycmVudE5vZGU9XG50aGlzO3JldHVybiBqZC5maXJzdENoaWxkKCl9fSxsYXN0Q2hpbGQ6e2dldDpmdW5jdGlvbigpe2pkLmN1cnJlbnROb2RlPXRoaXM7cmV0dXJuIGpkLmxhc3RDaGlsZCgpfX0scHJldmlvdXNTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtqZC5jdXJyZW50Tm9kZT10aGlzO3JldHVybiBqZC5wcmV2aW91c1NpYmxpbmcoKX19LG5leHRTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtqZC5jdXJyZW50Tm9kZT10aGlzO3JldHVybiBqZC5uZXh0U2libGluZygpfX0sY2hpbGROb2Rlczp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGI9W107amQuY3VycmVudE5vZGU9dGhpcztmb3IodmFyIGM9amQuZmlyc3RDaGlsZCgpO2M7KWIucHVzaChjKSxjPWpkLm5leHRTaWJsaW5nKCk7cmV0dXJuIGJ9fSxwYXJlbnRFbGVtZW50OntnZXQ6ZnVuY3Rpb24oKXtrZC5jdXJyZW50Tm9kZT10aGlzO3JldHVybiBrZC5wYXJlbnROb2RlKCl9fSx0ZXh0Q29udGVudDp7Z2V0OmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMubm9kZVR5cGUpe2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Y2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6Zm9yKHZhciBiPVxuZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0aGlzLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwsITEpLGM9XCJcIixkO2Q9Yi5uZXh0Tm9kZSgpOyljKz1kLm5vZGVWYWx1ZTtyZXR1cm4gYztkZWZhdWx0OnJldHVybiB0aGlzLm5vZGVWYWx1ZX19LHNldDpmdW5jdGlvbihiKXtpZihcInVuZGVmaW5lZFwiPT09dHlwZW9mIGJ8fG51bGw9PT1iKWI9XCJcIjtzd2l0Y2godGhpcy5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERTptZCh0aGlzKTsoMDxiLmxlbmd0aHx8dGhpcy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKSYmdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYiksdm9pZCAwKTticmVhaztkZWZhdWx0OnRoaXMubm9kZVZhbHVlPWJ9fX19KTtTKE5vZGUucHJvdG90eXBlLFwiYXBwZW5kQ2hpbGQgaW5zZXJ0QmVmb3JlIHJlbW92ZUNoaWxkIHJlcGxhY2VDaGlsZCBjbG9uZU5vZGUgY29udGFpbnNcIi5zcGxpdChcIiBcIikpO1xuUyhIVE1MRWxlbWVudC5wcm90b3R5cGUsW1wicGFyZW50RWxlbWVudFwiLFwiY29udGFpbnNcIl0pO2E9e2ZpcnN0RWxlbWVudENoaWxkOntnZXQ6ZnVuY3Rpb24oKXtrZC5jdXJyZW50Tm9kZT10aGlzO3JldHVybiBrZC5maXJzdENoaWxkKCl9fSxsYXN0RWxlbWVudENoaWxkOntnZXQ6ZnVuY3Rpb24oKXtrZC5jdXJyZW50Tm9kZT10aGlzO3JldHVybiBrZC5sYXN0Q2hpbGQoKX19LGNoaWxkcmVuOntnZXQ6ZnVuY3Rpb24oKXt2YXIgYj1bXTtrZC5jdXJyZW50Tm9kZT10aGlzO2Zvcih2YXIgYz1rZC5maXJzdENoaWxkKCk7YzspYi5wdXNoKGMpLGM9a2QubmV4dFNpYmxpbmcoKTtyZXR1cm4gSGMoYil9fSxjaGlsZEVsZW1lbnRDb3VudDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4/dGhpcy5jaGlsZHJlbi5sZW5ndGg6MH19fTtlZD8oUyhFbGVtZW50LnByb3RvdHlwZSxuZCksUyhFbGVtZW50LnByb3RvdHlwZSxbXCJwcmV2aW91c0VsZW1lbnRTaWJsaW5nXCIsXCJuZXh0RWxlbWVudFNpYmxpbmdcIixcblwiaW5uZXJIVE1MXCIsXCJjbGFzc05hbWVcIl0pLFMoSFRNTEVsZW1lbnQucHJvdG90eXBlLFtcImNoaWxkcmVuXCIsXCJpbm5lckhUTUxcIixcImNsYXNzTmFtZVwiXSkpOihpZChFbGVtZW50LnByb3RvdHlwZSxhKSxpZChFbGVtZW50LnByb3RvdHlwZSx7cHJldmlvdXNFbGVtZW50U2libGluZzp7Z2V0OmZ1bmN0aW9uKCl7a2QuY3VycmVudE5vZGU9dGhpcztyZXR1cm4ga2QucHJldmlvdXNTaWJsaW5nKCl9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2dldDpmdW5jdGlvbigpe2tkLmN1cnJlbnROb2RlPXRoaXM7cmV0dXJuIGtkLm5leHRTaWJsaW5nKCl9fSxpbm5lckhUTUw6e2dldDpmdW5jdGlvbigpe3JldHVybiBkZCh0aGlzLEljKX0sc2V0OmZ1bmN0aW9uKGIpe3ZhciBjPVwidGVtcGxhdGVcIj09PXRoaXMubG9jYWxOYW1lP3RoaXMuY29udGVudDp0aGlzO21kKGMpO3ZhciBkPXRoaXMubG9jYWxOYW1lfHxcImRpdlwiO2Q9dGhpcy5uYW1lc3BhY2VVUkkmJnRoaXMubmFtZXNwYWNlVVJJIT09bGQubmFtZXNwYWNlVVJJP1xubGQuY3JlYXRlRWxlbWVudE5TKHRoaXMubmFtZXNwYWNlVVJJLGQpOmxkLmNyZWF0ZUVsZW1lbnQoZCk7ZC5pbm5lckhUTUw9Yjtmb3IoYj1cInRlbXBsYXRlXCI9PT10aGlzLmxvY2FsTmFtZT9kLmNvbnRlbnQ6ZDtkPWIuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDspYy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUoZCx2b2lkIDApfX0sY2xhc3NOYW1lOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIn0sc2V0OmZ1bmN0aW9uKGIpe3RoaXMuc2V0QXR0cmlidXRlKFwiY2xhc3NcIixiKX19fSkpO1MoRWxlbWVudC5wcm90b3R5cGUsXCJzZXRBdHRyaWJ1dGUgZ2V0QXR0cmlidXRlIGhhc0F0dHJpYnV0ZSByZW1vdmVBdHRyaWJ1dGUgZm9jdXMgYmx1clwiLnNwbGl0KFwiIFwiKSk7UyhFbGVtZW50LnByb3RvdHlwZSxvZCk7UyhIVE1MRWxlbWVudC5wcm90b3R5cGUsW1wiZm9jdXNcIixcImJsdXJcIl0pO3dpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50JiZcblMod2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQucHJvdG90eXBlLFtcImlubmVySFRNTFwiXSk7ZWQ/UyhEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxuZCk6aWQoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsYSk7UyhEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxvZCk7ZWQ/KFMoRG9jdW1lbnQucHJvdG90eXBlLG5kKSxTKERvY3VtZW50LnByb3RvdHlwZSxbXCJhY3RpdmVFbGVtZW50XCJdKSk6aWQoRG9jdW1lbnQucHJvdG90eXBlLGEpO1MoRG9jdW1lbnQucHJvdG90eXBlLFtcImltcG9ydE5vZGVcIixcImdldEVsZW1lbnRCeUlkXCIsXCJlbGVtZW50RnJvbVBvaW50XCIsdWMoKV0pO1MoRG9jdW1lbnQucHJvdG90eXBlLG9kKX07dmFyIHFkPVEoe2dldCBjaGlsZE5vZGVzKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9jaGlsZE5vZGVzfSxnZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLl9fc2hhZHlfZmlyc3RDaGlsZH0sZ2V0IGxhc3RDaGlsZCgpe3JldHVybiB0aGlzLl9fc2hhZHlfbGFzdENoaWxkfSxnZXQgY2hpbGRFbGVtZW50Q291bnQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2NoaWxkRWxlbWVudENvdW50fSxnZXQgY2hpbGRyZW4oKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2NoaWxkcmVufSxnZXQgZmlyc3RFbGVtZW50Q2hpbGQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2ZpcnN0RWxlbWVudENoaWxkfSxnZXQgbGFzdEVsZW1lbnRDaGlsZCgpe3JldHVybiB0aGlzLl9fc2hhZHlfbGFzdEVsZW1lbnRDaGlsZH0sZ2V0IHNoYWRvd1Jvb3QoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3NoYWRvd1Jvb3R9fSkscmQ9USh7Z2V0IHRleHRDb250ZW50KCl7cmV0dXJuIHRoaXMuX19zaGFkeV90ZXh0Q29udGVudH0sc2V0IHRleHRDb250ZW50KGEpe3RoaXMuX19zaGFkeV90ZXh0Q29udGVudD1cbmF9LGdldCBpbm5lckhUTUwoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2lubmVySFRNTH0sc2V0IGlubmVySFRNTChhKXt0aGlzLl9fc2hhZHlfaW5uZXJIVE1MPWF9fSksc2Q9USh7Z2V0IHBhcmVudEVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3BhcmVudEVsZW1lbnR9LGdldCBwYXJlbnROb2RlKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wYXJlbnROb2RlfSxnZXQgbmV4dFNpYmxpbmcoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X25leHRTaWJsaW5nfSxnZXQgcHJldmlvdXNTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wcmV2aW91c1NpYmxpbmd9LGdldCBuZXh0RWxlbWVudFNpYmxpbmcoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X25leHRFbGVtZW50U2libGluZ30sZ2V0IHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3ByZXZpb3VzRWxlbWVudFNpYmxpbmd9LGdldCBjbGFzc05hbWUoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2NsYXNzTmFtZX0sc2V0IGNsYXNzTmFtZShhKXt0aGlzLl9fc2hhZHlfY2xhc3NOYW1lPVxuYX19KTtmdW5jdGlvbiB0ZChhKXtmb3IodmFyIGIgaW4gYSl7dmFyIGM9YVtiXTtjJiYoYy5lbnVtZXJhYmxlPSExKX19dGQocWQpO3RkKHJkKTt0ZChzZCk7dmFyIHVkPU4uSHx8ITA9PT1OLkosdmQ9dWQ/ZnVuY3Rpb24oKXt9OmZ1bmN0aW9uKGEpe3ZhciBiPUQoYSk7Yi5QYXx8KGIuUGE9ITAsTGMoYSxzZCkpfSx3ZD11ZD9mdW5jdGlvbigpe306ZnVuY3Rpb24oYSl7dmFyIGI9RChhKTtiLk9hfHwoYi5PYT0hMCxMYyhhLHFkKSx3aW5kb3cuY3VzdG9tRWxlbWVudHMmJndpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrJiYhTi5KfHxMYyhhLHJkKSl9O3ZhciB4ZD1cIl9fZXZlbnRXcmFwcGVyc1wiK0RhdGUubm93KCkseWQ9ZnVuY3Rpb24oKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV2ZW50LnByb3RvdHlwZSxcImNvbXBvc2VkXCIpO3JldHVybiBhP2Z1bmN0aW9uKGIpe3JldHVybiBhLmdldC5jYWxsKGIpfTpudWxsfSgpLHpkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe312YXIgYj0hMSxjPXtnZXQgY2FwdHVyZSgpe2I9ITA7cmV0dXJuITF9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIixhLGMpO3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidGVzdFwiLGEsYyk7cmV0dXJuIGJ9KCk7ZnVuY3Rpb24gQWQoYSl7aWYoYSYmXCJvYmplY3RcIj09PXR5cGVvZiBhKXt2YXIgYj0hIWEuY2FwdHVyZTt2YXIgYz0hIWEub25jZTt2YXIgZD0hIWEucGFzc2l2ZTt2YXIgZT1hLlV9ZWxzZSBiPSEhYSxkPWM9ITE7cmV0dXJue0xhOmUsY2FwdHVyZTpiLG9uY2U6YyxwYXNzaXZlOmQsSmE6emQ/YTpifX1cbnZhciBCZD17Ymx1cjohMCxmb2N1czohMCxmb2N1c2luOiEwLGZvY3Vzb3V0OiEwLGNsaWNrOiEwLGRibGNsaWNrOiEwLG1vdXNlZG93bjohMCxtb3VzZWVudGVyOiEwLG1vdXNlbGVhdmU6ITAsbW91c2Vtb3ZlOiEwLG1vdXNlb3V0OiEwLG1vdXNlb3ZlcjohMCxtb3VzZXVwOiEwLHdoZWVsOiEwLGJlZm9yZWlucHV0OiEwLGlucHV0OiEwLGtleWRvd246ITAsa2V5dXA6ITAsY29tcG9zaXRpb25zdGFydDohMCxjb21wb3NpdGlvbnVwZGF0ZTohMCxjb21wb3NpdGlvbmVuZDohMCx0b3VjaHN0YXJ0OiEwLHRvdWNoZW5kOiEwLHRvdWNobW92ZTohMCx0b3VjaGNhbmNlbDohMCxwb2ludGVyb3ZlcjohMCxwb2ludGVyZW50ZXI6ITAscG9pbnRlcmRvd246ITAscG9pbnRlcm1vdmU6ITAscG9pbnRlcnVwOiEwLHBvaW50ZXJjYW5jZWw6ITAscG9pbnRlcm91dDohMCxwb2ludGVybGVhdmU6ITAsZ290cG9pbnRlcmNhcHR1cmU6ITAsbG9zdHBvaW50ZXJjYXB0dXJlOiEwLGRyYWdzdGFydDohMCxcbmRyYWc6ITAsZHJhZ2VudGVyOiEwLGRyYWdsZWF2ZTohMCxkcmFnb3ZlcjohMCxkcm9wOiEwLGRyYWdlbmQ6ITAsRE9NQWN0aXZhdGU6ITAsRE9NRm9jdXNJbjohMCxET01Gb2N1c091dDohMCxrZXlwcmVzczohMH0sQ2Q9e0RPTUF0dHJNb2RpZmllZDohMCxET01BdHRyaWJ1dGVOYW1lQ2hhbmdlZDohMCxET01DaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6ITAsRE9NRWxlbWVudE5hbWVDaGFuZ2VkOiEwLERPTU5vZGVJbnNlcnRlZDohMCxET01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQ6ITAsRE9NTm9kZVJlbW92ZWQ6ITAsRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQ6ITAsRE9NU3VidHJlZU1vZGlmaWVkOiEwfTtmdW5jdGlvbiBEZChhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIE5vZGU/YS5fX3NoYWR5X2dldFJvb3ROb2RlKCk6YX1cbmZ1bmN0aW9uIEVkKGEsYil7dmFyIGM9W10sZD1hO2ZvcihhPURkKGEpO2Q7KWMucHVzaChkKSxkPWQuX19zaGFkeV9hc3NpZ25lZFNsb3Q/ZC5fX3NoYWR5X2Fzc2lnbmVkU2xvdDpkLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZkLmhvc3QmJihifHxkIT09YSk/ZC5ob3N0OmQuX19zaGFkeV9wYXJlbnROb2RlO2NbYy5sZW5ndGgtMV09PT1kb2N1bWVudCYmYy5wdXNoKHdpbmRvdyk7cmV0dXJuIGN9ZnVuY3Rpb24gRmQoYSl7YS5fX2NvbXBvc2VkUGF0aHx8KGEuX19jb21wb3NlZFBhdGg9RWQoYS50YXJnZXQsITApKTtyZXR1cm4gYS5fX2NvbXBvc2VkUGF0aH1mdW5jdGlvbiBHZChhLGIpe2lmKCFPKXJldHVybiBhO2E9RWQoYSwhMCk7Zm9yKHZhciBjPTAsZCxlPXZvaWQgMCxmLGc9dm9pZCAwO2M8Yi5sZW5ndGg7YysrKWlmKGQ9YltjXSxmPURkKGQpLGYhPT1lJiYoZz1hLmluZGV4T2YoZiksZT1mKSwhTyhmKXx8LTE8ZylyZXR1cm4gZH1cbmZ1bmN0aW9uIEhkKGEpe2Z1bmN0aW9uIGIoYyxkKXtjPW5ldyBhKGMsZCk7Yy5fX2NvbXBvc2VkPWQmJiEhZC5jb21wb3NlZDtyZXR1cm4gY31iLl9fcHJvdG9fXz1hO2IucHJvdG90eXBlPWEucHJvdG90eXBlO3JldHVybiBifXZhciBJZD17Zm9jdXM6ITAsYmx1cjohMH07ZnVuY3Rpb24gSmQoYSl7cmV0dXJuIGEuX190YXJnZXQhPT1hLnRhcmdldHx8YS5fX3JlbGF0ZWRUYXJnZXQhPT1hLnJlbGF0ZWRUYXJnZXR9ZnVuY3Rpb24gS2QoYSxiLGMpe2lmKGM9Yi5fX2hhbmRsZXJzJiZiLl9faGFuZGxlcnNbYS50eXBlXSYmYi5fX2hhbmRsZXJzW2EudHlwZV1bY10pZm9yKHZhciBkPTAsZTsoZT1jW2RdKSYmKCFKZChhKXx8YS50YXJnZXQhPT1hLnJlbGF0ZWRUYXJnZXQpJiYoZS5jYWxsKGIsYSksIWEuX19pbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQpO2QrKyk7fVxuZnVuY3Rpb24gTGQoYSl7dmFyIGI9YS5jb21wb3NlZFBhdGgoKSxjPWIubWFwKGZ1bmN0aW9uKGspe3JldHVybiBHZChrLGIpfSksZD1hLmJ1YmJsZXM7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsXCJjdXJyZW50VGFyZ2V0XCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBnfX0pO3ZhciBlPUV2ZW50LkNBUFRVUklOR19QSEFTRTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxcImV2ZW50UGhhc2VcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9fSk7Zm9yKHZhciBmPWIubGVuZ3RoLTE7MDw9ZjtmLS0pe3ZhciBnPWJbZl07ZT1nPT09Y1tmXT9FdmVudC5BVF9UQVJHRVQ6RXZlbnQuQ0FQVFVSSU5HX1BIQVNFO0tkKGEsZyxcImNhcHR1cmVcIik7aWYoYS5yYSlyZXR1cm59Zm9yKGY9MDtmPGIubGVuZ3RoO2YrKyl7Zz1iW2ZdO3ZhciBoPWc9PT1jW2ZdO2lmKGh8fGQpaWYoZT1oP0V2ZW50LkFUX1RBUkdFVDpcbkV2ZW50LkJVQkJMSU5HX1BIQVNFLEtkKGEsZyxcImJ1YmJsZVwiKSxhLnJhKXJldHVybn1lPTA7Zz1udWxsfWZ1bmN0aW9uIE1kKGEsYixjLGQsZSxmKXtmb3IodmFyIGc9MDtnPGEubGVuZ3RoO2crKyl7dmFyIGg9YVtnXSxrPWgudHlwZSxsPWguY2FwdHVyZSxtPWgub25jZSxxPWgucGFzc2l2ZTtpZihiPT09aC5ub2RlJiZjPT09ayYmZD09PWwmJmU9PT1tJiZmPT09cSlyZXR1cm4gZ31yZXR1cm4tMX1mdW5jdGlvbiBOZChhKXtTYygpO3JldHVybiFOLmZhJiZ0aGlzIGluc3RhbmNlb2YgTm9kZSYmIUVjKGRvY3VtZW50LHRoaXMpPyhhLl9fdGFyZ2V0fHxPZChhLHRoaXMpLExkKGEpKTp0aGlzLl9fc2hhZHlfbmF0aXZlX2Rpc3BhdGNoRXZlbnQoYSl9XG5mdW5jdGlvbiBQZChhLGIsYyl7dmFyIGQ9QWQoYyksZT1kLmNhcHR1cmUsZj1kLm9uY2UsZz1kLnBhc3NpdmUsaD1kLkxhO2Q9ZC5KYTtpZihiKXt2YXIgaz10eXBlb2YgYjtpZihcImZ1bmN0aW9uXCI9PT1rfHxcIm9iamVjdFwiPT09aylpZihcIm9iamVjdFwiIT09a3x8Yi5oYW5kbGVFdmVudCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGIuaGFuZGxlRXZlbnQpe2lmKENkW2FdKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX2FkZEV2ZW50TGlzdGVuZXIoYSxiLGQpO3ZhciBsPWh8fHRoaXM7aWYoaD1iW3hkXSl7aWYoLTE8TWQoaCxsLGEsZSxmLGcpKXJldHVybn1lbHNlIGJbeGRdPVtdO2g9ZnVuY3Rpb24obSl7ZiYmdGhpcy5fX3NoYWR5X3JlbW92ZUV2ZW50TGlzdGVuZXIoYSxiLGMpO20uX190YXJnZXR8fE9kKG0pO2lmKGwhPT10aGlzKXt2YXIgcT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sXCJjdXJyZW50VGFyZ2V0XCIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShtLFwiY3VycmVudFRhcmdldFwiLFxue2dldDpmdW5jdGlvbigpe3JldHVybiBsfSxjb25maWd1cmFibGU6ITB9KTt2YXIgSD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sXCJldmVudFBoYXNlXCIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShtLFwiZXZlbnRQaGFzZVwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZT9FdmVudC5DQVBUVVJJTkdfUEhBU0U6RXZlbnQuQlVCQkxJTkdfUEhBU0V9fSl9bS5fX3ByZXZpb3VzQ3VycmVudFRhcmdldD1tLmN1cnJlbnRUYXJnZXQ7aWYoIU8obCkmJlwic2xvdFwiIT09bC5sb2NhbE5hbWV8fC0xIT1tLmNvbXBvc2VkUGF0aCgpLmluZGV4T2YobCkpaWYobS5jb21wb3NlZHx8LTE8bS5jb21wb3NlZFBhdGgoKS5pbmRleE9mKGwpKWlmKEpkKG0pJiZtLnRhcmdldD09PW0ucmVsYXRlZFRhcmdldCltLmV2ZW50UGhhc2U9PT1FdmVudC5CVUJCTElOR19QSEFTRSYmbS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtlbHNlIGlmKG0uZXZlbnRQaGFzZT09PVxuRXZlbnQuQ0FQVFVSSU5HX1BIQVNFfHxtLmJ1YmJsZXN8fG0udGFyZ2V0PT09bHx8bCBpbnN0YW5jZW9mIFdpbmRvdyl7dmFyIEM9XCJmdW5jdGlvblwiPT09az9iLmNhbGwobCxtKTpiLmhhbmRsZUV2ZW50JiZiLmhhbmRsZUV2ZW50KG0pO2whPT10aGlzJiYocT8oT2JqZWN0LmRlZmluZVByb3BlcnR5KG0sXCJjdXJyZW50VGFyZ2V0XCIscSkscT1udWxsKTpkZWxldGUgbS5jdXJyZW50VGFyZ2V0LEg/KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLFwiZXZlbnRQaGFzZVwiLEgpLEg9bnVsbCk6ZGVsZXRlIG0uZXZlbnRQaGFzZSk7cmV0dXJuIEN9fTtiW3hkXS5wdXNoKHtub2RlOmwsdHlwZTphLGNhcHR1cmU6ZSxvbmNlOmYscGFzc2l2ZTpnLHBiOmh9KTt0aGlzLl9faGFuZGxlcnM9dGhpcy5fX2hhbmRsZXJzfHx7fTt0aGlzLl9faGFuZGxlcnNbYV09dGhpcy5fX2hhbmRsZXJzW2FdfHx7Y2FwdHVyZTpbXSxidWJibGU6W119O3RoaXMuX19oYW5kbGVyc1thXVtlP1wiY2FwdHVyZVwiOlwiYnViYmxlXCJdLnB1c2goaCk7XG5JZFthXXx8dGhpcy5fX3NoYWR5X25hdGl2ZV9hZGRFdmVudExpc3RlbmVyKGEsaCxkKX19fVxuZnVuY3Rpb24gUWQoYSxiLGMpe2lmKGIpe3ZhciBkPUFkKGMpO2M9ZC5jYXB0dXJlO3ZhciBlPWQub25jZSxmPWQucGFzc2l2ZSxnPWQuTGE7ZD1kLkphO2lmKENkW2FdKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUV2ZW50TGlzdGVuZXIoYSxiLGQpO3ZhciBoPWd8fHRoaXM7Zz12b2lkIDA7dmFyIGs9bnVsbDt0cnl7az1iW3hkXX1jYXRjaChsKXt9ayYmKGU9TWQoayxoLGEsYyxlLGYpLC0xPGUmJihnPWsuc3BsaWNlKGUsMSlbMF0ucGIsay5sZW5ndGh8fChiW3hkXT12b2lkIDApKSk7dGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVFdmVudExpc3RlbmVyKGEsZ3x8YixkKTtnJiZ0aGlzLl9faGFuZGxlcnMmJnRoaXMuX19oYW5kbGVyc1thXSYmKGE9dGhpcy5fX2hhbmRsZXJzW2FdW2M/XCJjYXB0dXJlXCI6XCJidWJibGVcIl0sYj1hLmluZGV4T2YoZyksLTE8YiYmYS5zcGxpY2UoYiwxKSl9fVxuZnVuY3Rpb24gUmQoKXtmb3IodmFyIGEgaW4gSWQpd2luZG93Ll9fc2hhZHlfbmF0aXZlX2FkZEV2ZW50TGlzdGVuZXIoYSxmdW5jdGlvbihiKXtiLl9fdGFyZ2V0fHwoT2QoYiksTGQoYikpfSwhMCl9XG52YXIgU2Q9USh7Z2V0IGNvbXBvc2VkKCl7dm9pZCAwPT09dGhpcy5fX2NvbXBvc2VkJiYoeWQ/dGhpcy5fX2NvbXBvc2VkPVwiZm9jdXNpblwiPT09dGhpcy50eXBlfHxcImZvY3Vzb3V0XCI9PT10aGlzLnR5cGV8fHlkKHRoaXMpOiExIT09dGhpcy5pc1RydXN0ZWQmJih0aGlzLl9fY29tcG9zZWQ9QmRbdGhpcy50eXBlXSkpO3JldHVybiB0aGlzLl9fY29tcG9zZWR8fCExfSxjb21wb3NlZFBhdGg6ZnVuY3Rpb24oKXt0aGlzLl9fY29tcG9zZWRQYXRofHwodGhpcy5fX2NvbXBvc2VkUGF0aD1FZCh0aGlzLl9fdGFyZ2V0LHRoaXMuY29tcG9zZWQpKTtyZXR1cm4gdGhpcy5fX2NvbXBvc2VkUGF0aH0sZ2V0IHRhcmdldCgpe3JldHVybiBHZCh0aGlzLmN1cnJlbnRUYXJnZXR8fHRoaXMuX19wcmV2aW91c0N1cnJlbnRUYXJnZXQsdGhpcy5jb21wb3NlZFBhdGgoKSl9LGdldCByZWxhdGVkVGFyZ2V0KCl7aWYoIXRoaXMuX19yZWxhdGVkVGFyZ2V0KXJldHVybiBudWxsO3RoaXMuX19yZWxhdGVkVGFyZ2V0Q29tcG9zZWRQYXRofHxcbih0aGlzLl9fcmVsYXRlZFRhcmdldENvbXBvc2VkUGF0aD1FZCh0aGlzLl9fcmVsYXRlZFRhcmdldCwhMCkpO3JldHVybiBHZCh0aGlzLmN1cnJlbnRUYXJnZXR8fHRoaXMuX19wcmV2aW91c0N1cnJlbnRUYXJnZXQsdGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtFdmVudC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyk7dGhpcy5yYT0hMH0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7RXZlbnQucHJvdG90eXBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbi5jYWxsKHRoaXMpO3RoaXMucmE9dGhpcy5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD0hMH19KTtcbmZ1bmN0aW9uIE9kKGEsYil7Yj12b2lkIDA9PT1iP2EudGFyZ2V0OmI7YS5fX3RhcmdldD1iO2EuX19yZWxhdGVkVGFyZ2V0PWEucmVsYXRlZFRhcmdldDtpZihOLkgpe2I9T2JqZWN0LmdldFByb3RvdHlwZU9mKGEpO2lmKCFiLmhhc093blByb3BlcnR5KFwiX19zaGFkeV9wYXRjaGVkUHJvdG9cIikpe3ZhciBjPU9iamVjdC5jcmVhdGUoYik7Yy5fX3NoYWR5X3NvdXJjZVByb3RvPWI7UChjLFNkKTtiLl9fc2hhZHlfcGF0Y2hlZFByb3RvPWN9YS5fX3Byb3RvX189Yi5fX3NoYWR5X3BhdGNoZWRQcm90b31lbHNlIFAoYSxTZCl9dmFyIFRkPUhkKEV2ZW50KSxVZD1IZChDdXN0b21FdmVudCksVmQ9SGQoTW91c2VFdmVudCk7XG5mdW5jdGlvbiBXZCgpe2lmKCF5ZCYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsXCJpc1RydXN0ZWRcIikpe3ZhciBhPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IE1vdXNlRXZlbnQoXCJjbGlja1wiLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsY29tcG9zZWQ6ITB9KTt0aGlzLl9fc2hhZHlfZGlzcGF0Y2hFdmVudChiKX07RWxlbWVudC5wcm90b3R5cGUuY2xpY2s/RWxlbWVudC5wcm90b3R5cGUuY2xpY2s9YTpIVE1MRWxlbWVudC5wcm90b3R5cGUuY2xpY2smJihIVE1MRWxlbWVudC5wcm90b3R5cGUuY2xpY2s9YSl9fVxudmFyIFhkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEVsZW1lbnQucHJvdG90eXBlKS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuXCJvblwiPT09YS5zdWJzdHJpbmcoMCwyKX0pLFlkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEhUTUxFbGVtZW50LnByb3RvdHlwZSkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVyblwib25cIj09PWEuc3Vic3RyaW5nKDAsMil9KTtmdW5jdGlvbiBaZChhKXtyZXR1cm57c2V0OmZ1bmN0aW9uKGIpe3ZhciBjPUQodGhpcyksZD1hLnN1YnN0cmluZygyKTtjLlR8fChjLlQ9e30pO2MuVFthXSYmdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGQsYy5UW2FdKTt0aGlzLl9fc2hhZHlfYWRkRXZlbnRMaXN0ZW5lcihkLGIpO2MuVFthXT1ifSxnZXQ6ZnVuY3Rpb24oKXt2YXIgYj1MKHRoaXMpO3JldHVybiBiJiZiLlQmJmIuVFthXX0sY29uZmlndXJhYmxlOiEwfX07ZnVuY3Rpb24gJGQoYSxiKXtyZXR1cm57aW5kZXg6YSxnYTpbXSxuYTpifX1cbmZ1bmN0aW9uIGFlKGEsYixjLGQpe3ZhciBlPTAsZj0wLGc9MCxoPTAsaz1NYXRoLm1pbihiLWUsZC1mKTtpZigwPT1lJiYwPT1mKWE6e2ZvcihnPTA7ZzxrO2crKylpZihhW2ddIT09Y1tnXSlicmVhayBhO2c9a31pZihiPT1hLmxlbmd0aCYmZD09Yy5sZW5ndGgpe2g9YS5sZW5ndGg7Zm9yKHZhciBsPWMubGVuZ3RoLG09MDttPGstZyYmYmUoYVstLWhdLGNbLS1sXSk7KW0rKztoPW19ZSs9ZztmKz1nO2ItPWg7ZC09aDtpZigwPT1iLWUmJjA9PWQtZilyZXR1cm5bXTtpZihlPT1iKXtmb3IoYj0kZChlLDApO2Y8ZDspYi5nYS5wdXNoKGNbZisrXSk7cmV0dXJuW2JdfWlmKGY9PWQpcmV0dXJuWyRkKGUsYi1lKV07az1lO2c9ZjtkPWQtZysxO2g9Yi1rKzE7Yj1BcnJheShkKTtmb3IobD0wO2w8ZDtsKyspYltsXT1BcnJheShoKSxiW2xdWzBdPWw7Zm9yKGw9MDtsPGg7bCsrKWJbMF1bbF09bDtmb3IobD0xO2w8ZDtsKyspZm9yKG09MTttPGg7bSsrKWlmKGFbayttLTFdPT09Y1tnK2wtMV0pYltsXVttXT1cbmJbbC0xXVttLTFdO2Vsc2V7dmFyIHE9YltsLTFdW21dKzEsSD1iW2xdW20tMV0rMTtiW2xdW21dPXE8SD9xOkh9az1iLmxlbmd0aC0xO2c9YlswXS5sZW5ndGgtMTtkPWJba11bZ107Zm9yKGE9W107MDxrfHwwPGc7KTA9PWs/KGEucHVzaCgyKSxnLS0pOjA9PWc/KGEucHVzaCgzKSxrLS0pOihoPWJbay0xXVtnLTFdLGw9YltrLTFdW2ddLG09YltrXVtnLTFdLHE9bDxtP2w8aD9sOmg6bTxoP206aCxxPT1oPyhoPT1kP2EucHVzaCgwKTooYS5wdXNoKDEpLGQ9aCksay0tLGctLSk6cT09bD8oYS5wdXNoKDMpLGstLSxkPWwpOihhLnB1c2goMiksZy0tLGQ9bSkpO2EucmV2ZXJzZSgpO2I9dm9pZCAwO2s9W107Zm9yKGc9MDtnPGEubGVuZ3RoO2crKylzd2l0Y2goYVtnXSl7Y2FzZSAwOmImJihrLnB1c2goYiksYj12b2lkIDApO2UrKztmKys7YnJlYWs7Y2FzZSAxOmJ8fChiPSRkKGUsMCkpO2IubmErKztlKys7Yi5nYS5wdXNoKGNbZl0pO2YrKzticmVhaztjYXNlIDI6Ynx8KGI9JGQoZSxcbjApKTtiLm5hKys7ZSsrO2JyZWFrO2Nhc2UgMzpifHwoYj0kZChlLDApKSxiLmdhLnB1c2goY1tmXSksZisrfWImJmsucHVzaChiKTtyZXR1cm4ga31mdW5jdGlvbiBiZShhLGIpe3JldHVybiBhPT09Yn07dmFyIGNlPVEoe2Rpc3BhdGNoRXZlbnQ6TmQsYWRkRXZlbnRMaXN0ZW5lcjpQZCxyZW1vdmVFdmVudExpc3RlbmVyOlFkfSk7dmFyIGRlPW51bGw7ZnVuY3Rpb24gZWUoKXtkZXx8KGRlPXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltKTtyZXR1cm4gZGV8fG51bGx9ZnVuY3Rpb24gZmUoYSxiLGMpe3ZhciBkPWVlKCk7cmV0dXJuIGQmJlwiY2xhc3NcIj09PWI/KGQuc2V0RWxlbWVudENsYXNzKGEsYyksITApOiExfWZ1bmN0aW9uIGdlKGEsYil7dmFyIGM9ZWUoKTtjJiZjLnVuc2NvcGVOb2RlKGEsYil9ZnVuY3Rpb24gaGUoYSxiKXt2YXIgYz1lZSgpO2lmKCFjKXJldHVybiEwO2lmKGEubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpe2M9ITA7Zm9yKGE9YS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YTthPWEuX19zaGFkeV9uZXh0U2libGluZyljPWMmJmhlKGEsYik7cmV0dXJuIGN9cmV0dXJuIGEubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERT8hMDpjLmN1cnJlbnRTY29wZUZvck5vZGUoYSk9PT1ifVxuZnVuY3Rpb24gaWUoYSl7aWYoYS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFKXJldHVyblwiXCI7dmFyIGI9ZWUoKTtyZXR1cm4gYj9iLmN1cnJlbnRTY29wZUZvck5vZGUoYSk6XCJcIn1mdW5jdGlvbiBqZShhLGIpe2lmKGEpZm9yKGEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYihhKSxhPWEuX19zaGFkeV9maXJzdENoaWxkO2E7YT1hLl9fc2hhZHlfbmV4dFNpYmxpbmcpYS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZqZShhLGIpfTt2YXIga2U9d2luZG93LmRvY3VtZW50LGxlPU4uZmEsbWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSxcImlzQ29ubmVjdGVkXCIpLG5lPW1lJiZtZS5nZXQ7ZnVuY3Rpb24gcGUoYSl7Zm9yKHZhciBiO2I9YS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7KWEuX19zaGFkeV9yZW1vdmVDaGlsZChiKX1mdW5jdGlvbiBxZShhKXt2YXIgYj1MKGEpO2lmKGImJnZvaWQgMCE9PWIucWEpZm9yKGI9YS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YjtiPWIuX19zaGFkeV9uZXh0U2libGluZylxZShiKTtpZihhPUwoYSkpYS5xYT12b2lkIDB9ZnVuY3Rpb24gcmUoYSl7dmFyIGI9YTtpZihhJiZcInNsb3RcIj09PWEubG9jYWxOYW1lKXt2YXIgYz1MKGEpOyhjPWMmJmMuYWEpJiYoYj1jLmxlbmd0aD9jWzBdOnJlKGEuX19zaGFkeV9uZXh0U2libGluZykpfXJldHVybiBifVxuZnVuY3Rpb24gc2UoYSxiLGMpe2lmKGE9KGE9TChhKSkmJmEuZWEpe2lmKGIpaWYoYi5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSlmb3IodmFyIGQ9MCxlPWIuY2hpbGROb2Rlcy5sZW5ndGg7ZDxlO2QrKylhLmFkZGVkTm9kZXMucHVzaChiLmNoaWxkTm9kZXNbZF0pO2Vsc2UgYS5hZGRlZE5vZGVzLnB1c2goYik7YyYmYS5yZW1vdmVkTm9kZXMucHVzaChjKTtVYyhhKX19XG52YXIgemU9USh7Z2V0IHBhcmVudE5vZGUoKXt2YXIgYT1MKHRoaXMpO2E9YSYmYS5wYXJlbnROb2RlO3JldHVybiB2b2lkIDAhPT1hP2E6dGhpcy5fX3NoYWR5X25hdGl2ZV9wYXJlbnROb2RlfSxnZXQgZmlyc3RDaGlsZCgpe3ZhciBhPUwodGhpcyk7YT1hJiZhLmZpcnN0Q2hpbGQ7cmV0dXJuIHZvaWQgMCE9PWE/YTp0aGlzLl9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGR9LGdldCBsYXN0Q2hpbGQoKXt2YXIgYT1MKHRoaXMpO2E9YSYmYS5sYXN0Q2hpbGQ7cmV0dXJuIHZvaWQgMCE9PWE/YTp0aGlzLl9fc2hhZHlfbmF0aXZlX2xhc3RDaGlsZH0sZ2V0IG5leHRTaWJsaW5nKCl7dmFyIGE9TCh0aGlzKTthPWEmJmEubmV4dFNpYmxpbmc7cmV0dXJuIHZvaWQgMCE9PWE/YTp0aGlzLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nfSxnZXQgcHJldmlvdXNTaWJsaW5nKCl7dmFyIGE9TCh0aGlzKTthPWEmJmEucHJldmlvdXNTaWJsaW5nO3JldHVybiB2b2lkIDAhPT1hP2E6dGhpcy5fX3NoYWR5X25hdGl2ZV9wcmV2aW91c1NpYmxpbmd9LFxuZ2V0IGNoaWxkTm9kZXMoKXtpZih2Yyh0aGlzKSl7dmFyIGE9TCh0aGlzKTtpZighYS5jaGlsZE5vZGVzKXthLmNoaWxkTm9kZXM9W107Zm9yKHZhciBiPXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2I7Yj1iLl9fc2hhZHlfbmV4dFNpYmxpbmcpYS5jaGlsZE5vZGVzLnB1c2goYil9dmFyIGM9YS5jaGlsZE5vZGVzfWVsc2UgYz10aGlzLl9fc2hhZHlfbmF0aXZlX2NoaWxkTm9kZXM7Yy5pdGVtPWZ1bmN0aW9uKGQpe3JldHVybiBjW2RdfTtyZXR1cm4gY30sZ2V0IHBhcmVudEVsZW1lbnQoKXt2YXIgYT1MKHRoaXMpOyhhPWEmJmEucGFyZW50Tm9kZSkmJmEubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSYmKGE9bnVsbCk7cmV0dXJuIHZvaWQgMCE9PWE/YTp0aGlzLl9fc2hhZHlfbmF0aXZlX3BhcmVudEVsZW1lbnR9LGdldCBpc0Nvbm5lY3RlZCgpe2lmKG5lJiZuZS5jYWxsKHRoaXMpKXJldHVybiEwO2lmKHRoaXMubm9kZVR5cGU9PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSlyZXR1cm4hMTtcbnZhciBhPXRoaXMub3duZXJEb2N1bWVudDtpZihudWxsPT09YXx8RWMoYSx0aGlzKSlyZXR1cm4hMDtmb3IoYT10aGlzO2EmJiEoYSBpbnN0YW5jZW9mIERvY3VtZW50KTspYT1hLl9fc2hhZHlfcGFyZW50Tm9kZXx8KE8oYSk/YS5ob3N0OnZvaWQgMCk7cmV0dXJuISEoYSYmYSBpbnN0YW5jZW9mIERvY3VtZW50KX0sZ2V0IHRleHRDb250ZW50KCl7aWYodmModGhpcykpe2Zvcih2YXIgYT1bXSxiPXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2I7Yj1iLl9fc2hhZHlfbmV4dFNpYmxpbmcpYi5ub2RlVHlwZSE9PU5vZGUuQ09NTUVOVF9OT0RFJiZhLnB1c2goYi5fX3NoYWR5X3RleHRDb250ZW50KTtyZXR1cm4gYS5qb2luKFwiXCIpfXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQoYSl7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBhfHxudWxsPT09YSlhPVwiXCI7c3dpdGNoKHRoaXMubm9kZVR5cGUpe2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Y2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6aWYoIXZjKHRoaXMpJiZcbk4uSCl7dmFyIGI9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7KGIhPXRoaXMuX19zaGFkeV9sYXN0Q2hpbGR8fGImJmIubm9kZVR5cGUhPU5vZGUuVEVYVF9OT0RFKSYmcGUodGhpcyk7dGhpcy5fX3NoYWR5X25hdGl2ZV90ZXh0Q29udGVudD1hfWVsc2UgcGUodGhpcyksKDA8YS5sZW5ndGh8fHRoaXMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSkmJnRoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYSkpO2JyZWFrO2RlZmF1bHQ6dGhpcy5ub2RlVmFsdWU9YX19LGluc2VydEJlZm9yZTpmdW5jdGlvbihhLGIpe2lmKHRoaXMub3duZXJEb2N1bWVudCE9PWtlJiZhLm93bmVyRG9jdW1lbnQhPT1rZSlyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUoYSxiKSxhO2lmKGE9PT10aGlzKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGV4ZWN1dGUgJ2FwcGVuZENoaWxkJyBvbiAnTm9kZSc6IFRoZSBuZXcgY2hpbGQgZWxlbWVudCBjb250YWlucyB0aGUgcGFyZW50LlwiKTtcbmlmKGIpe3ZhciBjPUwoYik7Yz1jJiZjLnBhcmVudE5vZGU7aWYodm9pZCAwIT09YyYmYyE9PXRoaXN8fHZvaWQgMD09PWMmJmIuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSE9PXRoaXMpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gZXhlY3V0ZSAnaW5zZXJ0QmVmb3JlJyBvbiAnTm9kZSc6IFRoZSBub2RlIGJlZm9yZSB3aGljaCB0aGUgbmV3IG5vZGUgaXMgdG8gYmUgaW5zZXJ0ZWQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBub2RlLlwiKTt9aWYoYj09PWEpcmV0dXJuIGE7c2UodGhpcyxhKTt2YXIgZD1bXSxlPShjPXRlKHRoaXMpKT9jLmhvc3QubG9jYWxOYW1lOmllKHRoaXMpLGY9YS5fX3NoYWR5X3BhcmVudE5vZGU7aWYoZil7dmFyIGc9aWUoYSk7dmFyIGg9ISFjfHwhdGUoYSl8fGxlJiZ2b2lkIDAhPT10aGlzLl9fbm9JbnNlcnRpb25Qb2ludDtmLl9fc2hhZHlfcmVtb3ZlQ2hpbGQoYSxoKX1mPSEwO3ZhciBrPSghbGV8fHZvaWQgMD09PWEuX19ub0luc2VydGlvblBvaW50JiZ2b2lkIDA9PT1cbnRoaXMuX19ub0luc2VydGlvblBvaW50KSYmIWhlKGEsZSksbD1jJiYhYS5fX25vSW5zZXJ0aW9uUG9pbnQmJighbGV8fGEubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpO2lmKGx8fGspayYmKGc9Z3x8aWUoYSkpLGplKGEsZnVuY3Rpb24obSl7bCYmXCJzbG90XCI9PT1tLmxvY2FsTmFtZSYmZC5wdXNoKG0pO2lmKGspe3ZhciBxPWc7ZWUoKSYmKHEmJmdlKG0scSksKHE9ZWUoKSkmJnEuc2NvcGVOb2RlKG0sZSkpfX0pO2QubGVuZ3RoJiYodWUoYyksYy5pLnB1c2guYXBwbHkoYy5pLHgoZCkpLHZlKGMpKTt2Yyh0aGlzKSYmKHdlKGEsdGhpcyxiKSxoPUwodGhpcyksaC5yb290PyhmPSExLHdjKHRoaXMpJiZ2ZShoLnJvb3QpKTpjJiZcInNsb3RcIj09PXRoaXMubG9jYWxOYW1lJiYoZj0hMSx2ZShjKSkpO2Y/KGM9Tyh0aGlzKT90aGlzLmhvc3Q6dGhpcyxiPyhiPXJlKGIpLGMuX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKGEsYikpOmMuX19zaGFkeV9uYXRpdmVfYXBwZW5kQ2hpbGQoYSkpOlxuYS5vd25lckRvY3VtZW50IT09dGhpcy5vd25lckRvY3VtZW50JiZ0aGlzLm93bmVyRG9jdW1lbnQuYWRvcHROb2RlKGEpO3JldHVybiBhfSxhcHBlbmRDaGlsZDpmdW5jdGlvbihhKXtpZih0aGlzIT1hfHwhTyhhKSlyZXR1cm4gdGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShhKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oYSxiKXtiPXZvaWQgMD09PWI/ITE6YjtpZih0aGlzLm93bmVyRG9jdW1lbnQhPT1rZSlyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChhKTtpZihhLl9fc2hhZHlfcGFyZW50Tm9kZSE9PXRoaXMpdGhyb3cgRXJyb3IoXCJUaGUgbm9kZSB0byBiZSByZW1vdmVkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgbm9kZTogXCIrYSk7c2UodGhpcyxudWxsLGEpO3ZhciBjPXRlKGEpLGQ9YyYmeGUoYyxhKSxlPUwodGhpcyk7aWYodmModGhpcykmJih5ZShhLHRoaXMpLHdjKHRoaXMpKSl7dmUoZS5yb290KTt2YXIgZj0hMH1pZihlZSgpJiYhYiYmYyYmYS5ub2RlVHlwZSE9PVxuTm9kZS5URVhUX05PREUpe3ZhciBnPWllKGEpO2plKGEsZnVuY3Rpb24oaCl7Z2UoaCxnKX0pfXFlKGEpO2MmJigoYj1cInNsb3RcIj09PXRoaXMubG9jYWxOYW1lKSYmKGY9ITApLChkfHxiKSYmdmUoYykpO2Z8fChmPU8odGhpcyk/dGhpcy5ob3N0OnRoaXMsKCFlLnJvb3QmJlwic2xvdFwiIT09YS5sb2NhbE5hbWV8fGY9PT1hLl9fc2hhZHlfbmF0aXZlX3BhcmVudE5vZGUpJiZmLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGEpKTtyZXR1cm4gYX0scmVwbGFjZUNoaWxkOmZ1bmN0aW9uKGEsYil7dGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShhLGIpO3RoaXMuX19zaGFkeV9yZW1vdmVDaGlsZChiKTtyZXR1cm4gYX0sY2xvbmVOb2RlOmZ1bmN0aW9uKGEpe2lmKFwidGVtcGxhdGVcIj09dGhpcy5sb2NhbE5hbWUpcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfY2xvbmVOb2RlKGEpO3ZhciBiPXRoaXMuX19zaGFkeV9uYXRpdmVfY2xvbmVOb2RlKCExKTtpZihhJiZiLm5vZGVUeXBlIT09XG5Ob2RlLkFUVFJJQlVURV9OT0RFKXthPXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2Zvcih2YXIgYzthO2E9YS5fX3NoYWR5X25leHRTaWJsaW5nKWM9YS5fX3NoYWR5X2Nsb25lTm9kZSghMCksYi5fX3NoYWR5X2FwcGVuZENoaWxkKGMpfXJldHVybiBifSxnZXRSb290Tm9kZTpmdW5jdGlvbihhKXtpZih0aGlzJiZ0aGlzLm5vZGVUeXBlKXt2YXIgYj1EKHRoaXMpLGM9Yi5xYTt2b2lkIDA9PT1jJiYoTyh0aGlzKT8oYz10aGlzLGIucWE9Yyk6KGM9KGM9dGhpcy5fX3NoYWR5X3BhcmVudE5vZGUpP2MuX19zaGFkeV9nZXRSb290Tm9kZShhKTp0aGlzLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5fX3NoYWR5X25hdGl2ZV9jb250YWlucyh0aGlzKSYmKGIucWE9YykpKTtyZXR1cm4gY319LGNvbnRhaW5zOmZ1bmN0aW9uKGEpe3JldHVybiBHYyh0aGlzLGEpfX0pO3ZhciBCZT1RKHtnZXQgYXNzaWduZWRTbG90KCl7dmFyIGE9dGhpcy5fX3NoYWR5X3BhcmVudE5vZGU7KGE9YSYmYS5fX3NoYWR5X3NoYWRvd1Jvb3QpJiZBZShhKTtyZXR1cm4oYT1MKHRoaXMpKSYmYS5hc3NpZ25lZFNsb3R8fG51bGx9fSk7ZnVuY3Rpb24gQ2UoYSxiLGMpe3ZhciBkPVtdO0RlKGEsYixjLGQpO3JldHVybiBkfWZ1bmN0aW9uIERlKGEsYixjLGQpe2ZvcihhPWEuX19zaGFkeV9maXJzdENoaWxkO2E7YT1hLl9fc2hhZHlfbmV4dFNpYmxpbmcpe3ZhciBlO2lmKGU9YS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXtlPWE7dmFyIGY9YixnPWMsaD1kLGs9ZihlKTtrJiZoLnB1c2goZSk7ZyYmZyhrKT9lPWs6KERlKGUsZixnLGgpLGU9dm9pZCAwKX1pZihlKWJyZWFrfX1cbnZhciBFZT17Z2V0IGZpcnN0RWxlbWVudENoaWxkKCl7dmFyIGE9TCh0aGlzKTtpZihhJiZ2b2lkIDAhPT1hLmZpcnN0Q2hpbGQpe2ZvcihhPXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2EmJmEubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERTspYT1hLl9fc2hhZHlfbmV4dFNpYmxpbmc7cmV0dXJuIGF9cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfZmlyc3RFbGVtZW50Q2hpbGR9LGdldCBsYXN0RWxlbWVudENoaWxkKCl7dmFyIGE9TCh0aGlzKTtpZihhJiZ2b2lkIDAhPT1hLmxhc3RDaGlsZCl7Zm9yKGE9dGhpcy5fX3NoYWR5X2xhc3RDaGlsZDthJiZhLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREU7KWE9YS5fX3NoYWR5X3ByZXZpb3VzU2libGluZztyZXR1cm4gYX1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9sYXN0RWxlbWVudENoaWxkfSxnZXQgY2hpbGRyZW4oKXtyZXR1cm4gdmModGhpcyk/SGMoQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKEpjKHRoaXMpLFxuZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX0pKTp0aGlzLl9fc2hhZHlfbmF0aXZlX2NoaWxkcmVufSxnZXQgY2hpbGRFbGVtZW50Q291bnQoKXt2YXIgYT10aGlzLl9fc2hhZHlfY2hpbGRyZW47cmV0dXJuIGE/YS5sZW5ndGg6MH19LEZlPVEoKEVlLmFwcGVuZD1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107dGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShPYy5hcHBseShudWxsLHgoYikpLG51bGwpfSxFZS5wcmVwZW5kPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPWFyZ3VtZW50c1tjXTt0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKE9jLmFwcGx5KG51bGwseChiKSksdGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQpfSxFZS5yZXBsYWNlQ2hpbGRyZW49ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGFyZ3VtZW50cy5sZW5ndGg7KytjKWJbY109XG5hcmd1bWVudHNbY107Zm9yKDtudWxsIT09KGM9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQpOyl0aGlzLl9fc2hhZHlfcmVtb3ZlQ2hpbGQoYyk7dGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShPYy5hcHBseShudWxsLHgoYikpLG51bGwpfSxFZSkpLEdlPVEoe3F1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24oYSl7cmV0dXJuIENlKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIHpjLmNhbGwoYixhKX0sZnVuY3Rpb24oYil7cmV0dXJuISFifSlbMF18fG51bGx9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oYSxiKXtpZihiKXtiPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX19zaGFkeV9uYXRpdmVfcXVlcnlTZWxlY3RvckFsbChhKSk7dmFyIGM9dGhpcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk7cmV0dXJuIEhjKGIuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkLl9fc2hhZHlfZ2V0Um9vdE5vZGUoKT09Y30pKX1yZXR1cm4gSGMoQ2UodGhpcyxmdW5jdGlvbihkKXtyZXR1cm4gemMuY2FsbChkLFxuYSl9KSl9fSksSGU9Ti5mYSYmIU4uSj9NYyh7fSxGZSk6RmU7TWMoRmUsR2UpO3ZhciBJZT1RKHthZnRlcjpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107Yz10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZTtpZihudWxsIT09Yyl7dmFyIGQ9dGhpcy5fX3NoYWR5X25leHRTaWJsaW5nO2MuX19zaGFkeV9pbnNlcnRCZWZvcmUoT2MuYXBwbHkobnVsbCx4KGIpKSxkKX19LGJlZm9yZTpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107Yz10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZTtudWxsIT09YyYmYy5fX3NoYWR5X2luc2VydEJlZm9yZShPYy5hcHBseShudWxsLHgoYikpLHRoaXMpfSxyZW1vdmU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZTtudWxsIT09YSYmYS5fX3NoYWR5X3JlbW92ZUNoaWxkKHRoaXMpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1cbmFyZ3VtZW50c1tjXTtjPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKG51bGwhPT1jKXt2YXIgZD10aGlzLl9fc2hhZHlfbmV4dFNpYmxpbmc7Yy5fX3NoYWR5X3JlbW92ZUNoaWxkKHRoaXMpO2MuX19zaGFkeV9pbnNlcnRCZWZvcmUoT2MuYXBwbHkobnVsbCx4KGIpKSxkKX19fSk7dmFyIEplPXdpbmRvdy5kb2N1bWVudDtmdW5jdGlvbiBLZShhLGIpe2lmKFwic2xvdFwiPT09YilhPWEuX19zaGFkeV9wYXJlbnROb2RlLHdjKGEpJiZ2ZShMKGEpLnJvb3QpO2Vsc2UgaWYoXCJzbG90XCI9PT1hLmxvY2FsTmFtZSYmXCJuYW1lXCI9PT1iJiYoYj10ZShhKSkpe2lmKGIuZyl7TGUoYik7dmFyIGM9YS5RYSxkPU1lKGEpO2lmKGQhPT1jKXtjPWIuaFtjXTt2YXIgZT1jLmluZGV4T2YoYSk7MDw9ZSYmYy5zcGxpY2UoZSwxKTtjPWIuaFtkXXx8KGIuaFtkXT1bXSk7Yy5wdXNoKGEpOzE8Yy5sZW5ndGgmJihiLmhbZF09TmUoYykpfX12ZShiKX19XG52YXIgT2U9USh7Z2V0IHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKXt2YXIgYT1MKHRoaXMpO2lmKGEmJnZvaWQgMCE9PWEucHJldmlvdXNTaWJsaW5nKXtmb3IoYT10aGlzLl9fc2hhZHlfcHJldmlvdXNTaWJsaW5nO2EmJmEubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERTspYT1hLl9fc2hhZHlfcHJldmlvdXNTaWJsaW5nO3JldHVybiBhfXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3ByZXZpb3VzRWxlbWVudFNpYmxpbmd9LGdldCBuZXh0RWxlbWVudFNpYmxpbmcoKXt2YXIgYT1MKHRoaXMpO2lmKGEmJnZvaWQgMCE9PWEubmV4dFNpYmxpbmcpe2ZvcihhPXRoaXMuX19zaGFkeV9uZXh0U2libGluZzthJiZhLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREU7KWE9YS5fX3NoYWR5X25leHRTaWJsaW5nO3JldHVybiBhfXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX25leHRFbGVtZW50U2libGluZ30sZ2V0IHNsb3QoKXtyZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoXCJzbG90XCIpfSxcbnNldCBzbG90KGEpe3RoaXMuX19zaGFkeV9zZXRBdHRyaWJ1dGUoXCJzbG90XCIsYSl9LGdldCBjbGFzc05hbWUoKXtyZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIn0sc2V0IGNsYXNzTmFtZShhKXt0aGlzLl9fc2hhZHlfc2V0QXR0cmlidXRlKFwiY2xhc3NcIixhKX0sc2V0QXR0cmlidXRlOmZ1bmN0aW9uKGEsYil7dGhpcy5vd25lckRvY3VtZW50IT09SmU/dGhpcy5fX3NoYWR5X25hdGl2ZV9zZXRBdHRyaWJ1dGUoYSxiKTpmZSh0aGlzLGEsYil8fCh0aGlzLl9fc2hhZHlfbmF0aXZlX3NldEF0dHJpYnV0ZShhLGIpLEtlKHRoaXMsYSkpfSxyZW1vdmVBdHRyaWJ1dGU6ZnVuY3Rpb24oYSl7dGhpcy5vd25lckRvY3VtZW50IT09SmU/dGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVBdHRyaWJ1dGUoYSk6ZmUodGhpcyxhLFwiXCIpP1wiXCI9PT10aGlzLmdldEF0dHJpYnV0ZShhKSYmdGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVBdHRyaWJ1dGUoYSk6KHRoaXMuX19zaGFkeV9uYXRpdmVfcmVtb3ZlQXR0cmlidXRlKGEpLFxuS2UodGhpcyxhKSl9fSk7Ti5mYXx8WGQuZm9yRWFjaChmdW5jdGlvbihhKXtPZVthXT1aZChhKX0pO1xudmFyIFRlPVEoe2F0dGFjaFNoYWRvdzpmdW5jdGlvbihhKXtpZighdGhpcyl0aHJvdyBFcnJvcihcIk11c3QgcHJvdmlkZSBhIGhvc3QuXCIpO2lmKCFhKXRocm93IEVycm9yKFwiTm90IGVub3VnaCBhcmd1bWVudHMuXCIpO2lmKGEuc2hhZHlVcGdyYWRlRnJhZ21lbnQmJiFOLk5hKXt2YXIgYj1hLnNoYWR5VXBncmFkZUZyYWdtZW50O2IuX19wcm90b19fPVNoYWRvd1Jvb3QucHJvdG90eXBlO1BlKGIsdGhpcyxhKTtRZShiLGIpO2E9Yi5fX25vSW5zZXJ0aW9uUG9pbnQ/bnVsbDpiLnF1ZXJ5U2VsZWN0b3JBbGwoXCJzbG90XCIpO2IuX19ub0luc2VydGlvblBvaW50PXZvaWQgMDtpZihhJiZhLmxlbmd0aCl7dmFyIGM9Yjt1ZShjKTtjLmkucHVzaC5hcHBseShjLmkseChhKSk7dmUoYil9Yi5ob3N0Ll9fc2hhZHlfbmF0aXZlX2FwcGVuZENoaWxkKGIpfWVsc2UgYj1uZXcgUmUoU2UsdGhpcyxhKTtyZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9Yn0sZ2V0IHNoYWRvd1Jvb3QoKXt2YXIgYT1MKHRoaXMpO1xucmV0dXJuIGEmJmEuZ2J8fG51bGx9fSk7TWMoT2UsVGUpO3ZhciBVZT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoXCJpbmVydFwiKSxWZT1RKHtnZXQgaW5uZXJIVE1MKCl7cmV0dXJuIHZjKHRoaXMpP2RkKFwidGVtcGxhdGVcIj09PXRoaXMubG9jYWxOYW1lP3RoaXMuY29udGVudDp0aGlzLEpjKTp0aGlzLl9fc2hhZHlfbmF0aXZlX2lubmVySFRNTH0sc2V0IGlubmVySFRNTChhKXtpZihcInRlbXBsYXRlXCI9PT10aGlzLmxvY2FsTmFtZSl0aGlzLl9fc2hhZHlfbmF0aXZlX2lubmVySFRNTD1hO2Vsc2V7cGUodGhpcyk7dmFyIGI9dGhpcy5sb2NhbE5hbWV8fFwiZGl2XCI7Yj10aGlzLm5hbWVzcGFjZVVSSSYmdGhpcy5uYW1lc3BhY2VVUkkhPT1VZS5uYW1lc3BhY2VVUkk/VWUuY3JlYXRlRWxlbWVudE5TKHRoaXMubmFtZXNwYWNlVVJJLGIpOlVlLmNyZWF0ZUVsZW1lbnQoYik7Zm9yKE4uSD9iLl9fc2hhZHlfbmF0aXZlX2lubmVySFRNTD1hOmIuaW5uZXJIVE1MPWE7YT1iLl9fc2hhZHlfZmlyc3RDaGlsZDspdGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShhKX19fSk7dmFyIFdlPVEoe2JsdXI6ZnVuY3Rpb24oKXt2YXIgYT1MKHRoaXMpOyhhPShhPWEmJmEucm9vdCkmJmEuYWN0aXZlRWxlbWVudCk/YS5fX3NoYWR5X2JsdXIoKTp0aGlzLl9fc2hhZHlfbmF0aXZlX2JsdXIoKX19KTtOLmZhfHxZZC5mb3JFYWNoKGZ1bmN0aW9uKGEpe1dlW2FdPVpkKGEpfSk7dmFyIFhlPVEoe2Fzc2lnbmVkTm9kZXM6ZnVuY3Rpb24oYSl7aWYoXCJzbG90XCI9PT10aGlzLmxvY2FsTmFtZSl7dmFyIGI9dGhpcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk7YiYmTyhiKSYmQWUoYik7cmV0dXJuKGI9TCh0aGlzKSk/KGEmJmEuZmxhdHRlbj9iLmFhOmIuYXNzaWduZWROb2Rlcyl8fFtdOltdfX0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihhLGIsYyl7aWYoXCJzbG90XCIhPT10aGlzLmxvY2FsTmFtZXx8XCJzbG90Y2hhbmdlXCI9PT1hKVBkLmNhbGwodGhpcyxhLGIsYyk7ZWxzZXtcIm9iamVjdFwiIT09dHlwZW9mIGMmJihjPXtjYXB0dXJlOiEhY30pO3ZhciBkPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKCFkKXRocm93IEVycm9yKFwiU2hhZHlET00gY2Fubm90IGF0dGFjaCBldmVudCB0byBzbG90IHVubGVzcyBpdCBoYXMgYSBgcGFyZW50Tm9kZWBcIik7Yy5VPXRoaXM7ZC5fX3NoYWR5X2FkZEV2ZW50TGlzdGVuZXIoYSxiLGMpfX0scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihhLFxuYixjKXtpZihcInNsb3RcIiE9PXRoaXMubG9jYWxOYW1lfHxcInNsb3RjaGFuZ2VcIj09PWEpUWQuY2FsbCh0aGlzLGEsYixjKTtlbHNle1wib2JqZWN0XCIhPT10eXBlb2YgYyYmKGM9e2NhcHR1cmU6ISFjfSk7dmFyIGQ9dGhpcy5fX3NoYWR5X3BhcmVudE5vZGU7aWYoIWQpdGhyb3cgRXJyb3IoXCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYFwiKTtjLlU9dGhpcztkLl9fc2hhZHlfcmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGIsYyl9fX0pO3ZhciBZZT1RKHtnZXRFbGVtZW50QnlJZDpmdW5jdGlvbihhKXtyZXR1cm5cIlwiPT09YT9udWxsOkNlKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIGIuaWQ9PWF9LGZ1bmN0aW9uKGIpe3JldHVybiEhYn0pWzBdfHxudWxsfX0pO2Z1bmN0aW9uIFplKGEsYil7Zm9yKHZhciBjO2ImJiFhLmhhcyhjPWIuX19zaGFkeV9nZXRSb290Tm9kZSgpKTspYj1jLmhvc3Q7cmV0dXJuIGJ9ZnVuY3Rpb24gJGUoYSl7dmFyIGI9bmV3IFNldDtmb3IoYi5hZGQoYSk7TyhhKSYmYS5ob3N0OylhPWEuaG9zdC5fX3NoYWR5X2dldFJvb3ROb2RlKCksYi5hZGQoYSk7cmV0dXJuIGJ9XG52YXIgYWY9XCJfX3NoYWR5X25hdGl2ZV9cIit1YygpLGJmPVEoe2dldCBhY3RpdmVFbGVtZW50KCl7dmFyIGE9Ti5IP2RvY3VtZW50Ll9fc2hhZHlfbmF0aXZlX2FjdGl2ZUVsZW1lbnQ6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZighYXx8IWEubm9kZVR5cGUpcmV0dXJuIG51bGw7dmFyIGI9ISFPKHRoaXMpO2lmKCEodGhpcz09PWRvY3VtZW50fHxiJiZ0aGlzLmhvc3QhPT1hJiZ0aGlzLmhvc3QuX19zaGFkeV9uYXRpdmVfY29udGFpbnMoYSkpKXJldHVybiBudWxsO2ZvcihiPXRlKGEpO2ImJmIhPT10aGlzOylhPWIuaG9zdCxiPXRlKGEpO3JldHVybiB0aGlzPT09ZG9jdW1lbnQ/Yj9udWxsOmE6Yj09PXRoaXM/YTpudWxsfSxlbGVtZW50c0Zyb21Qb2ludDpmdW5jdGlvbihhLGIpe2E9W10uc2xpY2UuY2FsbChkb2N1bWVudFthZl0oYSxiKSk7Yj0kZSh0aGlzKTtmb3IodmFyIGM9bmV3IFNldCxkPTA7ZDxhLmxlbmd0aDtkKyspYy5hZGQoWmUoYixhW2RdKSk7dmFyIGU9W107Yy5mb3JFYWNoKGZ1bmN0aW9uKGYpe3JldHVybiBlLnB1c2goZil9KTtcbnJldHVybiBlfSxlbGVtZW50RnJvbVBvaW50OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuX19zaGFkeV9lbGVtZW50c0Zyb21Qb2ludChhLGIpWzBdfHxudWxsfX0pO3ZhciBjZj13aW5kb3cuZG9jdW1lbnQsZGY9USh7aW1wb3J0Tm9kZTpmdW5jdGlvbihhLGIpe2lmKGEub3duZXJEb2N1bWVudCE9PWNmfHxcInRlbXBsYXRlXCI9PT1hLmxvY2FsTmFtZSlyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9pbXBvcnROb2RlKGEsYik7dmFyIGM9dGhpcy5fX3NoYWR5X25hdGl2ZV9pbXBvcnROb2RlKGEsITEpO2lmKGIpZm9yKGE9YS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YTthPWEuX19zaGFkeV9uZXh0U2libGluZyliPXRoaXMuX19zaGFkeV9pbXBvcnROb2RlKGEsITApLGMuX19zaGFkeV9hcHBlbmRDaGlsZChiKTtyZXR1cm4gY319KTt2YXIgZWY9USh7ZGlzcGF0Y2hFdmVudDpOZCxhZGRFdmVudExpc3RlbmVyOlBkLmJpbmQod2luZG93KSxyZW1vdmVFdmVudExpc3RlbmVyOlFkLmJpbmQod2luZG93KX0pO3ZhciBmZj17fTtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSxcInBhcmVudEVsZW1lbnRcIikmJihmZi5wYXJlbnRFbGVtZW50PXplLnBhcmVudEVsZW1lbnQpO09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLFwiY29udGFpbnNcIikmJihmZi5jb250YWlucz16ZS5jb250YWlucyk7T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihIVE1MRWxlbWVudC5wcm90b3R5cGUsXCJjaGlsZHJlblwiKSYmKGZmLmNoaWxkcmVuPUZlLmNoaWxkcmVuKTtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSxcImlubmVySFRNTFwiKSYmKGZmLmlubmVySFRNTD1WZS5pbm5lckhUTUwpO09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLFwiY2xhc3NOYW1lXCIpJiYoZmYuY2xhc3NOYW1lPU9lLmNsYXNzTmFtZSk7XG52YXIgZ2Y9e0V2ZW50VGFyZ2V0OltjZV0sTm9kZTpbemUsd2luZG93LkV2ZW50VGFyZ2V0P251bGw6Y2VdLFRleHQ6W0JlXSxDb21tZW50OltCZV0sQ0RBVEFTZWN0aW9uOltCZV0sUHJvY2Vzc2luZ0luc3RydWN0aW9uOltCZV0sRWxlbWVudDpbT2UsRmUsSWUsQmUsIU4uSHx8XCJpbm5lckhUTUxcImluIEVsZW1lbnQucHJvdG90eXBlP1ZlOm51bGwsd2luZG93LkhUTUxTbG90RWxlbWVudD9udWxsOlhlXSxIVE1MRWxlbWVudDpbV2UsZmZdLEhUTUxTbG90RWxlbWVudDpbWGVdLERvY3VtZW50RnJhZ21lbnQ6W0hlLFllXSxEb2N1bWVudDpbZGYsSGUsWWUsYmZdLFdpbmRvdzpbZWZdLENoYXJhY3RlckRhdGE6W0llXX0saGY9Ti5IP251bGw6W1wiaW5uZXJIVE1MXCIsXCJ0ZXh0Q29udGVudFwiXTtmdW5jdGlvbiBqZihhLGIsYyxkKXtiLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGEmJmUmJlAoYSxlLGMsZCl9KX1cbmZ1bmN0aW9uIGtmKGEpe3ZhciBiPWE/bnVsbDpoZixjO2ZvcihjIGluIGdmKWpmKHdpbmRvd1tjXSYmd2luZG93W2NdLnByb3RvdHlwZSxnZltjXSxhLGIpfVtcIlRleHRcIixcIkNvbW1lbnRcIixcIkNEQVRBU2VjdGlvblwiLFwiUHJvY2Vzc2luZ0luc3RydWN0aW9uXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9d2luZG93W2FdLGM9T2JqZWN0LmNyZWF0ZShiLnByb3RvdHlwZSk7Yy5fX3NoYWR5X3Byb3RvSXNQYXRjaGVkPSEwO2pmKGMsZ2YuRXZlbnRUYXJnZXQpO2pmKGMsZ2YuTm9kZSk7Z2ZbYV0mJmpmKGMsZ2ZbYV0pO2IucHJvdG90eXBlLl9fc2hhZHlfcGF0Y2hlZFByb3RvPWN9KTtmdW5jdGlvbiBsZihhKXthLl9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQ9ITA7amYoYSxnZi5FdmVudFRhcmdldCk7amYoYSxnZi5Ob2RlKTtqZihhLGdmLkVsZW1lbnQpO2pmKGEsZ2YuSFRNTEVsZW1lbnQpO2pmKGEsZ2YuSFRNTFNsb3RFbGVtZW50KTtyZXR1cm4gYX07dmFyIG1mPU4uQWEsbmY9Ti5IO2Z1bmN0aW9uIG9mKGEsYil7aWYobWYmJiFhLl9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQmJiFPKGEpKXt2YXIgYz1PYmplY3QuZ2V0UHJvdG90eXBlT2YoYSksZD1jLmhhc093blByb3BlcnR5KFwiX19zaGFkeV9wYXRjaGVkUHJvdG9cIikmJmMuX19zaGFkeV9wYXRjaGVkUHJvdG87ZHx8KGQ9T2JqZWN0LmNyZWF0ZShjKSxsZihkKSxjLl9fc2hhZHlfcGF0Y2hlZFByb3RvPWQpO09iamVjdC5zZXRQcm90b3R5cGVPZihhLGQpfW5mfHwoMT09PWI/dmQoYSk6Mj09PWImJndkKGEpKX1cbmZ1bmN0aW9uIHBmKGEsYixjLGQpe29mKGEsMSk7ZD1kfHxudWxsO3ZhciBlPUQoYSksZj1kP0QoZCk6bnVsbDtlLnByZXZpb3VzU2libGluZz1kP2YucHJldmlvdXNTaWJsaW5nOmIuX19zaGFkeV9sYXN0Q2hpbGQ7aWYoZj1MKGUucHJldmlvdXNTaWJsaW5nKSlmLm5leHRTaWJsaW5nPWE7aWYoZj1MKGUubmV4dFNpYmxpbmc9ZCkpZi5wcmV2aW91c1NpYmxpbmc9YTtlLnBhcmVudE5vZGU9YjtkP2Q9PT1jLmZpcnN0Q2hpbGQmJihjLmZpcnN0Q2hpbGQ9YSk6KGMubGFzdENoaWxkPWEsYy5maXJzdENoaWxkfHwoYy5maXJzdENoaWxkPWEpKTtjLmNoaWxkTm9kZXM9bnVsbH1cbmZ1bmN0aW9uIHdlKGEsYixjKXtvZihiLDIpO3ZhciBkPUQoYik7dm9pZCAwIT09ZC5maXJzdENoaWxkJiYoZC5jaGlsZE5vZGVzPW51bGwpO2lmKGEubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpZm9yKGE9YS5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO2E7YT1hLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKXBmKGEsYixkLGMpO2Vsc2UgcGYoYSxiLGQsYyl9XG5mdW5jdGlvbiB5ZShhLGIpe3ZhciBjPUQoYSk7Yj1EKGIpO2E9PT1iLmZpcnN0Q2hpbGQmJihiLmZpcnN0Q2hpbGQ9Yy5uZXh0U2libGluZyk7YT09PWIubGFzdENoaWxkJiYoYi5sYXN0Q2hpbGQ9Yy5wcmV2aW91c1NpYmxpbmcpO2E9Yy5wcmV2aW91c1NpYmxpbmc7dmFyIGQ9Yy5uZXh0U2libGluZzthJiYoRChhKS5uZXh0U2libGluZz1kKTtkJiYoRChkKS5wcmV2aW91c1NpYmxpbmc9YSk7Yy5wYXJlbnROb2RlPWMucHJldmlvdXNTaWJsaW5nPWMubmV4dFNpYmxpbmc9dm9pZCAwO3ZvaWQgMCE9PWIuY2hpbGROb2RlcyYmKGIuY2hpbGROb2Rlcz1udWxsKX1cbmZ1bmN0aW9uIFFlKGEsYil7dmFyIGM9RChhKTtpZihifHx2b2lkIDA9PT1jLmZpcnN0Q2hpbGQpe2MuY2hpbGROb2Rlcz1udWxsO3ZhciBkPWMuZmlyc3RDaGlsZD1hLl9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7Yy5sYXN0Q2hpbGQ9YS5fX3NoYWR5X25hdGl2ZV9sYXN0Q2hpbGQ7b2YoYSwyKTtjPWQ7Zm9yKGQ9dm9pZCAwO2M7Yz1jLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKXt2YXIgZT1EKGMpO2UucGFyZW50Tm9kZT1ifHxhO2UubmV4dFNpYmxpbmc9Yy5fX3NoYWR5X25hdGl2ZV9uZXh0U2libGluZztlLnByZXZpb3VzU2libGluZz1kfHxudWxsO2Q9YztvZihjLDEpfX19O3ZhciBxZj1RKHthZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYixjKXtcIm9iamVjdFwiIT09dHlwZW9mIGMmJihjPXtjYXB0dXJlOiEhY30pO2MuVT1jLlV8fHRoaXM7dGhpcy5ob3N0Ll9fc2hhZHlfYWRkRXZlbnRMaXN0ZW5lcihhLGIsYyl9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiLGMpe1wib2JqZWN0XCIhPT10eXBlb2YgYyYmKGM9e2NhcHR1cmU6ISFjfSk7Yy5VPWMuVXx8dGhpczt0aGlzLmhvc3QuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKGEsYixjKX19KTtmdW5jdGlvbiByZihhLGIpe1AoYSxxZixiKTtQKGEsYmYsYik7UChhLFZlLGIpO1AoYSxGZSxiKTtOLkomJiFiPyhQKGEsemUsYiksUChhLFllLGIpKTpOLkh8fChQKGEsc2QpLFAoYSxxZCksUChhLHJkKSl9O3ZhciBTZT17fSxzZj1OLmRlZmVyQ29ubmVjdGlvbkNhbGxiYWNrcyYmXCJsb2FkaW5nXCI9PT1kb2N1bWVudC5yZWFkeVN0YXRlLHRmO2Z1bmN0aW9uIHVmKGEpe3ZhciBiPVtdO2RvIGIudW5zaGlmdChhKTt3aGlsZShhPWEuX19zaGFkeV9wYXJlbnROb2RlKTtyZXR1cm4gYn1mdW5jdGlvbiBSZShhLGIsYyl7aWYoYSE9PVNlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJJbGxlZ2FsIGNvbnN0cnVjdG9yXCIpO3RoaXMuZz1udWxsO1BlKHRoaXMsYixjKX1cbmZ1bmN0aW9uIFBlKGEsYixjKXthLmhvc3Q9YjthLm1vZGU9YyYmYy5tb2RlO1FlKGEuaG9zdCk7Yj1EKGEuaG9zdCk7Yi5yb290PWE7Yi5nYj1cImNsb3NlZFwiIT09YS5tb2RlP2E6bnVsbDtiPUQoYSk7Yi5maXJzdENoaWxkPWIubGFzdENoaWxkPWIucGFyZW50Tm9kZT1iLm5leHRTaWJsaW5nPWIucHJldmlvdXNTaWJsaW5nPW51bGw7aWYoTi5wcmVmZXJQZXJmb3JtYW5jZSlmb3IoO2I9YS5ob3N0Ll9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KWEuaG9zdC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChiKTtlbHNlIHZlKGEpfWZ1bmN0aW9uIHZlKGEpe2EuWXx8KGEuWT0hMCxSYyhmdW5jdGlvbigpe3JldHVybiBBZShhKX0pKX1cbmZ1bmN0aW9uIEFlKGEpe3ZhciBiO2lmKGI9YS5ZKXtmb3IodmFyIGM7YTspYTp7YS5ZJiYoYz1hKSxiPWE7YT1iLmhvc3QuX19zaGFkeV9nZXRSb290Tm9kZSgpO2lmKE8oYSkmJihiPUwoYi5ob3N0KSkmJjA8Yi5pYSlicmVhayBhO2E9dm9pZCAwfWI9Y30oYz1iKSYmYy5fcmVuZGVyU2VsZigpfVxuUmUucHJvdG90eXBlLl9yZW5kZXJTZWxmPWZ1bmN0aW9uKCl7dmFyIGE9c2Y7c2Y9ITA7dGhpcy5ZPSExO2lmKHRoaXMuZyl7TGUodGhpcyk7Zm9yKHZhciBiPTAsYztiPHRoaXMuZy5sZW5ndGg7YisrKXtjPXRoaXMuZ1tiXTt2YXIgZD1MKGMpLGU9ZC5hc3NpZ25lZE5vZGVzO2QuYXNzaWduZWROb2Rlcz1bXTtkLmFhPVtdO2lmKGQuR2E9ZSlmb3IoZD0wO2Q8ZS5sZW5ndGg7ZCsrKXt2YXIgZj1MKGVbZF0pO2YudWE9Zi5hc3NpZ25lZFNsb3Q7Zi5hc3NpZ25lZFNsb3Q9PT1jJiYoZi5hc3NpZ25lZFNsb3Q9bnVsbCl9fWZvcihiPXRoaXMuaG9zdC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YjtiPWIuX19zaGFkeV9uZXh0U2libGluZyl2Zih0aGlzLGIpO2ZvcihiPTA7Yjx0aGlzLmcubGVuZ3RoO2IrKyl7Yz10aGlzLmdbYl07ZT1MKGMpO2lmKCFlLmFzc2lnbmVkTm9kZXMubGVuZ3RoKWZvcihkPWMuX19zaGFkeV9maXJzdENoaWxkO2Q7ZD1kLl9fc2hhZHlfbmV4dFNpYmxpbmcpdmYodGhpcyxcbmQsYyk7KGQ9KGQ9TChjLl9fc2hhZHlfcGFyZW50Tm9kZSkpJiZkLnJvb3QpJiYoeGMoZCl8fGQuWSkmJmQuX3JlbmRlclNlbGYoKTt3Zih0aGlzLGUuYWEsZS5hc3NpZ25lZE5vZGVzKTtpZihkPWUuR2Epe2ZvcihmPTA7ZjxkLmxlbmd0aDtmKyspTChkW2ZdKS51YT1udWxsO2UuR2E9bnVsbDtkLmxlbmd0aD5lLmFzc2lnbmVkTm9kZXMubGVuZ3RoJiYoZS54YT0hMCl9ZS54YSYmKGUueGE9ITEseGYodGhpcyxjKSl9Yz10aGlzLmc7Yj1bXTtmb3IoZT0wO2U8Yy5sZW5ndGg7ZSsrKWQ9Y1tlXS5fX3NoYWR5X3BhcmVudE5vZGUsKGY9TChkKSkmJmYucm9vdHx8ISgwPmIuaW5kZXhPZihkKSl8fGIucHVzaChkKTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKXtmPWJbY107ZT1mPT09dGhpcz90aGlzLmhvc3Q6ZjtkPVtdO2ZvcihmPWYuX19zaGFkeV9maXJzdENoaWxkO2Y7Zj1mLl9fc2hhZHlfbmV4dFNpYmxpbmcpaWYoXCJzbG90XCI9PWYubG9jYWxOYW1lKWZvcih2YXIgZz1MKGYpLmFhLGg9XG4wO2g8Zy5sZW5ndGg7aCsrKWQucHVzaChnW2hdKTtlbHNlIGQucHVzaChmKTtmPUljKGUpO2c9YWUoZCxkLmxlbmd0aCxmLGYubGVuZ3RoKTtmb3IodmFyIGs9aD0wLGw9dm9pZCAwO2g8Zy5sZW5ndGgmJihsPWdbaF0pO2grKyl7Zm9yKHZhciBtPTAscT12b2lkIDA7bTxsLmdhLmxlbmd0aCYmKHE9bC5nYVttXSk7bSsrKXEuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZT09PWUmJmUuX19zaGFkeV9uYXRpdmVfcmVtb3ZlQ2hpbGQocSksZi5zcGxpY2UobC5pbmRleCtrLDEpO2stPWwubmF9az0wO2ZvcihsPXZvaWQgMDtrPGcubGVuZ3RoJiYobD1nW2tdKTtrKyspZm9yKGg9ZltsLmluZGV4XSxtPWwuaW5kZXg7bTxsLmluZGV4K2wubmE7bSsrKXE9ZFttXSxlLl9fc2hhZHlfbmF0aXZlX2luc2VydEJlZm9yZShxLGgpLGYuc3BsaWNlKG0sMCxxKX19aWYoIU4ucHJlZmVyUGVyZm9ybWFuY2UmJiF0aGlzLkZhKWZvcihiPXRoaXMuaG9zdC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7YjtiPWIuX19zaGFkeV9uZXh0U2libGluZyljPVxuTChiKSxiLl9fc2hhZHlfbmF0aXZlX3BhcmVudE5vZGUhPT10aGlzLmhvc3R8fFwic2xvdFwiIT09Yi5sb2NhbE5hbWUmJmMuYXNzaWduZWRTbG90fHx0aGlzLmhvc3QuX19zaGFkeV9uYXRpdmVfcmVtb3ZlQ2hpbGQoYik7dGhpcy5GYT0hMDtzZj1hO3RmJiZ0ZigpfTtmdW5jdGlvbiB2ZihhLGIsYyl7dmFyIGQ9RChiKSxlPWQudWE7ZC51YT1udWxsO2N8fChjPShhPWEuaFtiLl9fc2hhZHlfc2xvdHx8XCJfX2NhdGNoYWxsXCJdKSYmYVswXSk7Yz8oRChjKS5hc3NpZ25lZE5vZGVzLnB1c2goYiksZC5hc3NpZ25lZFNsb3Q9Yyk6ZC5hc3NpZ25lZFNsb3Q9dm9pZCAwO2UhPT1kLmFzc2lnbmVkU2xvdCYmZC5hc3NpZ25lZFNsb3QmJihEKGQuYXNzaWduZWRTbG90KS54YT0hMCl9XG5mdW5jdGlvbiB3ZihhLGIsYyl7Zm9yKHZhciBkPTAsZT12b2lkIDA7ZDxjLmxlbmd0aCYmKGU9Y1tkXSk7ZCsrKWlmKFwic2xvdFwiPT1lLmxvY2FsTmFtZSl7dmFyIGY9TChlKS5hc3NpZ25lZE5vZGVzO2YmJmYubGVuZ3RoJiZ3ZihhLGIsZil9ZWxzZSBiLnB1c2goY1tkXSl9ZnVuY3Rpb24geGYoYSxiKXtiLl9fc2hhZHlfbmF0aXZlX2Rpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwic2xvdGNoYW5nZVwiKSk7Yj1MKGIpO2IuYXNzaWduZWRTbG90JiZ4ZihhLGIuYXNzaWduZWRTbG90KX1mdW5jdGlvbiB1ZShhKXthLmk9YS5pfHxbXTthLmc9YS5nfHxbXTthLmg9YS5ofHx7fX1cbmZ1bmN0aW9uIExlKGEpe2lmKGEuaSYmYS5pLmxlbmd0aCl7Zm9yKHZhciBiPWEuaSxjLGQ9MDtkPGIubGVuZ3RoO2QrKyl7dmFyIGU9YltkXTtRZShlKTt2YXIgZj1lLl9fc2hhZHlfcGFyZW50Tm9kZTtRZShmKTtmPUwoZik7Zi5pYT0oZi5pYXx8MCkrMTtmPU1lKGUpO2EuaFtmXT8oYz1jfHx7fSxjW2ZdPSEwLGEuaFtmXS5wdXNoKGUpKTphLmhbZl09W2VdO2EuZy5wdXNoKGUpfWlmKGMpZm9yKHZhciBnIGluIGMpYS5oW2ddPU5lKGEuaFtnXSk7YS5pPVtdfX1mdW5jdGlvbiBNZShhKXt2YXIgYj1hLm5hbWV8fGEuZ2V0QXR0cmlidXRlKFwibmFtZVwiKXx8XCJfX2NhdGNoYWxsXCI7cmV0dXJuIGEuUWE9Yn1cbmZ1bmN0aW9uIE5lKGEpe3JldHVybiBhLnNvcnQoZnVuY3Rpb24oYixjKXtiPXVmKGIpO2Zvcih2YXIgZD11ZihjKSxlPTA7ZTxiLmxlbmd0aDtlKyspe2M9YltlXTt2YXIgZj1kW2VdO2lmKGMhPT1mKXJldHVybiBiPUpjKGMuX19zaGFkeV9wYXJlbnROb2RlKSxiLmluZGV4T2YoYyktYi5pbmRleE9mKGYpfX0pfVxuZnVuY3Rpb24geGUoYSxiKXtpZihhLmcpe0xlKGEpO3ZhciBjPWEuaCxkO2ZvcihkIGluIGMpZm9yKHZhciBlPWNbZF0sZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZz1lW2ZdO2lmKEdjKGIsZykpe2Uuc3BsaWNlKGYsMSk7dmFyIGg9YS5nLmluZGV4T2YoZyk7MDw9aCYmKGEuZy5zcGxpY2UoaCwxKSwoaD1MKGcuX19zaGFkeV9wYXJlbnROb2RlKSkmJmguaWEmJmguaWEtLSk7Zi0tO2c9TChnKTtpZihoPWcuYWEpZm9yKHZhciBrPTA7azxoLmxlbmd0aDtrKyspe3ZhciBsPWhba10sbT1sLl9fc2hhZHlfbmF0aXZlX3BhcmVudE5vZGU7bSYmbS5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChsKX1nLmFhPVtdO2cuYXNzaWduZWROb2Rlcz1bXTtoPSEwfX1yZXR1cm4gaH19ZnVuY3Rpb24geGMoYSl7TGUoYSk7cmV0dXJuISghYS5nfHwhYS5nLmxlbmd0aCl9XG4oZnVuY3Rpb24oYSl7YS5fX3Byb3RvX189RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGU7cmYoYSxcIl9fc2hhZHlfXCIpO3JmKGEpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGEse25vZGVUeXBlOnt2YWx1ZTpOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUsY29uZmlndXJhYmxlOiEwfSxub2RlTmFtZTp7dmFsdWU6XCIjZG9jdW1lbnQtZnJhZ21lbnRcIixjb25maWd1cmFibGU6ITB9LG5vZGVWYWx1ZTp7dmFsdWU6bnVsbCxjb25maWd1cmFibGU6ITB9fSk7W1wibG9jYWxOYW1lXCIsXCJuYW1lc3BhY2VVUklcIixcInByZWZpeFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGIse3ZhbHVlOnZvaWQgMCxjb25maWd1cmFibGU6ITB9KX0pO1tcIm93bmVyRG9jdW1lbnRcIixcImJhc2VVUklcIixcImlzQ29ubmVjdGVkXCJdLmZvckVhY2goZnVuY3Rpb24oYil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG9zdFtiXX0sXG5jb25maWd1cmFibGU6ITB9KX0pfSkoUmUucHJvdG90eXBlKTtcbmlmKHdpbmRvdy5jdXN0b21FbGVtZW50cyYmd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSYmTi55YSYmIU4ucHJlZmVyUGVyZm9ybWFuY2Upe3ZhciB5Zj1uZXcgTWFwO3RmPWZ1bmN0aW9uKCl7dmFyIGE9W107eWYuZm9yRWFjaChmdW5jdGlvbihkLGUpe2EucHVzaChbZSxkXSl9KTt5Zi5jbGVhcigpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKXt2YXIgYz1hW2JdWzBdO2FbYl1bMV0/Yy5fX3NoYWR5ZG9tX2Nvbm5lY3RlZENhbGxiYWNrKCk6Yy5fX3NoYWR5ZG9tX2Rpc2Nvbm5lY3RlZENhbGxiYWNrKCl9fTtzZiYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInJlYWR5c3RhdGVjaGFuZ2VcIixmdW5jdGlvbigpe3NmPSExO3RmKCl9LHtvbmNlOiEwfSk7dmFyIHpmPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0wLGU9XCJfX2lzQ29ubmVjdGVkXCIrZCsrO2lmKGJ8fGMpYS5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9YS5wcm90b3R5cGUuX19zaGFkeWRvbV9jb25uZWN0ZWRDYWxsYmFjaz1cbmZ1bmN0aW9uKCl7c2Y/eWYuc2V0KHRoaXMsITApOnRoaXNbZV18fCh0aGlzW2VdPSEwLGImJmIuY2FsbCh0aGlzKSl9LGEucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWEucHJvdG90eXBlLl9fc2hhZHlkb21fZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXtzZj90aGlzLmlzQ29ubmVjdGVkfHx5Zi5zZXQodGhpcywhMSk6dGhpc1tlXSYmKHRoaXNbZV09ITEsYyYmYy5jYWxsKHRoaXMpKX07cmV0dXJuIGF9LEFmPXdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUsQmY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjayxkPWIucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrO0FmLmNhbGwod2luZG93LmN1c3RvbUVsZW1lbnRzLGEsemYoYixjLGQpKTtiLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1jO2IucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWR9O3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmU9XG5CZjtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LkN1c3RvbUVsZW1lbnRSZWdpc3RyeS5wcm90b3R5cGUsXCJkZWZpbmVcIix7dmFsdWU6QmYsY29uZmlndXJhYmxlOiEwfSl9ZnVuY3Rpb24gdGUoYSl7YT1hLl9fc2hhZHlfZ2V0Um9vdE5vZGUoKTtpZihPKGEpKXJldHVybiBhfTtmdW5jdGlvbiBDZihhKXt0aGlzLm5vZGU9YX12PUNmLnByb3RvdHlwZTt2LmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hZGRFdmVudExpc3RlbmVyKGEsYixjKX07di5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGIsYyl9O3YuYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FwcGVuZENoaWxkKGEpfTt2Lmluc2VydEJlZm9yZT1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9pbnNlcnRCZWZvcmUoYSxiKX07di5yZW1vdmVDaGlsZD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcmVtb3ZlQ2hpbGQoYSl9O3YucmVwbGFjZUNoaWxkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3JlcGxhY2VDaGlsZChhLGIpfTtcbnYuY2xvbmVOb2RlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jbG9uZU5vZGUoYSl9O3YuZ2V0Um9vdE5vZGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2dldFJvb3ROb2RlKGEpfTt2LmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jb250YWlucyhhKX07di5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9kaXNwYXRjaEV2ZW50KGEpfTt2LnNldEF0dHJpYnV0ZT1mdW5jdGlvbihhLGIpe3RoaXMubm9kZS5fX3NoYWR5X3NldEF0dHJpYnV0ZShhLGIpfTt2LmdldEF0dHJpYnV0ZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbmF0aXZlX2dldEF0dHJpYnV0ZShhKX07di5oYXNBdHRyaWJ1dGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X25hdGl2ZV9oYXNBdHRyaWJ1dGUoYSl9O3YucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKGEpe3RoaXMubm9kZS5fX3NoYWR5X3JlbW92ZUF0dHJpYnV0ZShhKX07XG52LmF0dGFjaFNoYWRvdz1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXR0YWNoU2hhZG93KGEpfTt2LmZvY3VzPWZ1bmN0aW9uKCl7dGhpcy5ub2RlLl9fc2hhZHlfbmF0aXZlX2ZvY3VzKCl9O3YuYmx1cj1mdW5jdGlvbigpe3RoaXMubm9kZS5fX3NoYWR5X2JsdXIoKX07di5pbXBvcnROb2RlPWZ1bmN0aW9uKGEsYil7aWYodGhpcy5ub2RlLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9OT0RFKXJldHVybiB0aGlzLm5vZGUuX19zaGFkeV9pbXBvcnROb2RlKGEsYil9O3YuZ2V0RWxlbWVudEJ5SWQ9ZnVuY3Rpb24oYSl7aWYodGhpcy5ub2RlLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9OT0RFKXJldHVybiB0aGlzLm5vZGUuX19zaGFkeV9nZXRFbGVtZW50QnlJZChhKX07di5lbGVtZW50c0Zyb21Qb2ludD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9lbGVtZW50c0Zyb21Qb2ludChhLGIpfTtcbnYuZWxlbWVudEZyb21Qb2ludD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9lbGVtZW50RnJvbVBvaW50KGEsYil9O3YucXVlcnlTZWxlY3Rvcj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcXVlcnlTZWxlY3RvcihhKX07di5xdWVyeVNlbGVjdG9yQWxsPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3F1ZXJ5U2VsZWN0b3JBbGwoYSxiKX07di5hc3NpZ25lZE5vZGVzPWZ1bmN0aW9uKGEpe2lmKFwic2xvdFwiPT09dGhpcy5ub2RlLmxvY2FsTmFtZSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXNzaWduZWROb2RlcyhhKX07di5hcHBlbmQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGFyZ3VtZW50cy5sZW5ndGg7KytjKWJbY109YXJndW1lbnRzW2NdO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hcHBlbmQuYXBwbHkodGhpcy5ub2RlLHgoYikpfTtcbnYucHJlcGVuZD1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3ByZXBlbmQuYXBwbHkodGhpcy5ub2RlLHgoYikpfTt2LmFmdGVyPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTA7Yzxhcmd1bWVudHMubGVuZ3RoOysrYyliW2NdPWFyZ3VtZW50c1tjXTtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYWZ0ZXIuYXBwbHkodGhpcy5ub2RlLHgoYikpfTt2LmJlZm9yZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wO2M8YXJndW1lbnRzLmxlbmd0aDsrK2MpYltjXT1hcmd1bWVudHNbY107cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2JlZm9yZS5hcHBseSh0aGlzLm5vZGUseChiKSl9O3YucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3JlbW92ZSgpfTtcbnYucmVwbGFjZVdpdGg9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPGFyZ3VtZW50cy5sZW5ndGg7KytjKWJbY109YXJndW1lbnRzW2NdO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZXBsYWNlV2l0aC5hcHBseSh0aGlzLm5vZGUseChiKSl9O1xuZWEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ2YucHJvdG90eXBlLHthY3RpdmVFbGVtZW50Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihPKHRoaXMubm9kZSl8fHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYWN0aXZlRWxlbWVudH19LF9hY3RpdmVFbGVtZW50Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50fX0saG9zdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoTyh0aGlzLm5vZGUpKXJldHVybiB0aGlzLm5vZGUuaG9zdH19LHBhcmVudE5vZGU6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9wYXJlbnROb2RlfX0sZmlyc3RDaGlsZDp7Y29uZmlndXJhYmxlOiEwLFxuZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZmlyc3RDaGlsZH19LGxhc3RDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2xhc3RDaGlsZH19LG5leHRTaWJsaW5nOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbmV4dFNpYmxpbmd9fSxwcmV2aW91c1NpYmxpbmc6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9wcmV2aW91c1NpYmxpbmd9fSxjaGlsZE5vZGVzOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2hpbGROb2Rlc319LHBhcmVudEVsZW1lbnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLFxuZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3BhcmVudEVsZW1lbnR9fSxmaXJzdEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2ZpcnN0RWxlbWVudENoaWxkfX0sbGFzdEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2xhc3RFbGVtZW50Q2hpbGR9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0RWxlbWVudFNpYmxpbmd9fSxwcmV2aW91c0VsZW1lbnRTaWJsaW5nOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcHJldmlvdXNFbGVtZW50U2libGluZ319LFxuY2hpbGRyZW46e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jaGlsZHJlbn19LGNoaWxkRWxlbWVudENvdW50Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2hpbGRFbGVtZW50Q291bnR9fSxzaGFkb3dSb290Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfc2hhZG93Um9vdH19LGFzc2lnbmVkU2xvdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2Fzc2lnbmVkU2xvdH19LGlzQ29ubmVjdGVkOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfaXNDb25uZWN0ZWR9fSxpbm5lckhUTUw6e2NvbmZpZ3VyYWJsZTohMCxcbmVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2lubmVySFRNTH0sc2V0OmZ1bmN0aW9uKGEpe3RoaXMubm9kZS5fX3NoYWR5X2lubmVySFRNTD1hfX0sdGV4dENvbnRlbnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV90ZXh0Q29udGVudH0sc2V0OmZ1bmN0aW9uKGEpe3RoaXMubm9kZS5fX3NoYWR5X3RleHRDb250ZW50PWF9fSxzbG90Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfc2xvdH0sc2V0OmZ1bmN0aW9uKGEpe3RoaXMubm9kZS5fX3NoYWR5X3Nsb3Q9YX19LGNsYXNzTmFtZTp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2NsYXNzTmFtZX0sc2V0OmZ1bmN0aW9uKGEpe3RoaXMubm9kZS5fX3NoYWR5X2NsYXNzTmFtZT1cbmF9fX0pO2Z1bmN0aW9uIERmKGEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShDZi5wcm90b3R5cGUsYSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZVtcIl9fc2hhZHlfXCIrYV19LHNldDpmdW5jdGlvbihiKXt0aGlzLm5vZGVbXCJfX3NoYWR5X1wiK2FdPWJ9LGNvbmZpZ3VyYWJsZTohMH0pfVhkLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIERmKGEpfSk7WWQuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gRGYoYSl9KTt2YXIgRWY9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gRmYoYSl7aWYoTyhhKXx8YSBpbnN0YW5jZW9mIENmKXJldHVybiBhO3ZhciBiPUVmLmdldChhKTtifHwoYj1uZXcgQ2YoYSksRWYuc2V0KGEsYikpO3JldHVybiBifTtpZihOLnlhKXt2YXIgR2Y9Ti5IP2Z1bmN0aW9uKGEpe3JldHVybiBhfTpmdW5jdGlvbihhKXt3ZChhKTt2ZChhKTtyZXR1cm4gYX0sU2hhZHlET009e2luVXNlOk4ueWEscGF0Y2g6R2YsaXNTaGFkeVJvb3Q6TyxlbnF1ZXVlOlJjLGZsdXNoOlNjLGZsdXNoSW5pdGlhbDpmdW5jdGlvbihhKXshYS5GYSYmYS5ZJiZBZShhKX0sc2V0dGluZ3M6TixmaWx0ZXJNdXRhdGlvbnM6WGMsb2JzZXJ2ZUNoaWxkcmVuOlZjLHVub2JzZXJ2ZUNoaWxkcmVuOldjLGRlZmVyQ29ubmVjdGlvbkNhbGxiYWNrczpOLmRlZmVyQ29ubmVjdGlvbkNhbGxiYWNrcyxwcmVmZXJQZXJmb3JtYW5jZTpOLnByZWZlclBlcmZvcm1hbmNlLGhhbmRsZXNEeW5hbWljU2NvcGluZzohMCx3cmFwOk4uSj9GZjpHZix3cmFwSWZOZWVkZWQ6ITA9PT1OLko/RmY6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LFdyYXBwZXI6Q2YsY29tcG9zZWRQYXRoOkZkLG5vUGF0Y2g6Ti5KLHBhdGNoT25EZW1hbmQ6Ti5BYSxuYXRpdmVNZXRob2RzOmZkLFxubmF0aXZlVHJlZTpnZCxwYXRjaEVsZW1lbnRQcm90bzpsZn07d2luZG93LlNoYWR5RE9NPVNoYWR5RE9NO3BkKCk7a2YoXCJfX3NoYWR5X1wiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZG9jdW1lbnQsXCJfYWN0aXZlRWxlbWVudFwiLGJmLmFjdGl2ZUVsZW1lbnQpO1AoV2luZG93LnByb3RvdHlwZSxlZixcIl9fc2hhZHlfXCIpO04uSj9OLkFhJiZQKEVsZW1lbnQucHJvdG90eXBlLFRlKTooa2YoKSxXZCgpKTtSZCgpO3dpbmRvdy5FdmVudD1UZDt3aW5kb3cuQ3VzdG9tRXZlbnQ9VWQ7d2luZG93Lk1vdXNlRXZlbnQ9VmQ7d2luZG93LlNoYWRvd1Jvb3Q9UmV9O3ZhciBIZj13aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQsSWY9d2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50TlMsSmY9d2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlLEtmPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUucHJlcGVuZCxMZj13aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmFwcGVuZCxNZj13aW5kb3cuRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUucHJlcGVuZCxOZj13aW5kb3cuRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUuYXBwZW5kLE9mPXdpbmRvdy5Ob2RlLnByb3RvdHlwZS5jbG9uZU5vZGUsUGY9d2luZG93Lk5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkLFFmPXdpbmRvdy5Ob2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmUsUmY9d2luZG93Lk5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLFNmPXdpbmRvdy5Ob2RlLnByb3RvdHlwZS5yZXBsYWNlQ2hpbGQsVGY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuTm9kZS5wcm90b3R5cGUsXG5cInRleHRDb250ZW50XCIpLFVmPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hdHRhY2hTaGFkb3csVmY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuRWxlbWVudC5wcm90b3R5cGUsXCJpbm5lckhUTUxcIiksV2Y9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmdldEF0dHJpYnV0ZSxYZj13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlLFlmPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGUsWmY9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmdldEF0dHJpYnV0ZU5TLCRmPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGVOUyxhZz13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQXR0cmlidXRlTlMsYmc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50RWxlbWVudCxjZz13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0QWRqYWNlbnRIVE1MLGRnPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5wcmVwZW5kLFxuZWc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZCxmZz13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuYmVmb3JlLGdnPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hZnRlcixoZz13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUucmVwbGFjZVdpdGgsaWc9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSxqZz13aW5kb3cuSFRNTEVsZW1lbnQsa2c9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLFwiaW5uZXJIVE1MXCIpLGxnPXdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50LG1nPXdpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0QWRqYWNlbnRIVE1MO3ZhciBuZz1uZXcgU2V0O1wiYW5ub3RhdGlvbi14bWwgY29sb3ItcHJvZmlsZSBmb250LWZhY2UgZm9udC1mYWNlLXNyYyBmb250LWZhY2UtdXJpIGZvbnQtZmFjZS1mb3JtYXQgZm9udC1mYWNlLW5hbWUgbWlzc2luZy1nbHlwaFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBuZy5hZGQoYSl9KTtmdW5jdGlvbiBvZyhhKXt2YXIgYj1uZy5oYXMoYSk7YT0vXlthLXpdWy4wLTlfYS16XSotWy0uMC05X2Etel0qJC8udGVzdChhKTtyZXR1cm4hYiYmYX12YXIgcGc9ZG9jdW1lbnQuY29udGFpbnM/ZG9jdW1lbnQuY29udGFpbnMuYmluZChkb2N1bWVudCk6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zLmJpbmQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbmZ1bmN0aW9uIFQoYSl7dmFyIGI9YS5pc0Nvbm5lY3RlZDtpZih2b2lkIDAhPT1iKXJldHVybiBiO2lmKHBnKGEpKXJldHVybiEwO2Zvcig7YSYmIShhLl9fQ0VfaXNJbXBvcnREb2N1bWVudHx8YSBpbnN0YW5jZW9mIERvY3VtZW50KTspYT1hLnBhcmVudE5vZGV8fCh3aW5kb3cuU2hhZG93Um9vdCYmYSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Q/YS5ob3N0OnZvaWQgMCk7cmV0dXJuISghYXx8IShhLl9fQ0VfaXNJbXBvcnREb2N1bWVudHx8YSBpbnN0YW5jZW9mIERvY3VtZW50KSl9ZnVuY3Rpb24gcWcoYSl7dmFyIGI9YS5jaGlsZHJlbjtpZihiKXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChiKTtiPVtdO2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylhLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmIucHVzaChhKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIHJnKGEsYil7Zm9yKDtiJiZiIT09YSYmIWIubmV4dFNpYmxpbmc7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBiJiZiIT09YT9iLm5leHRTaWJsaW5nOm51bGx9XG5mdW5jdGlvbiBzZyhhLGIsYyl7Zm9yKHZhciBkPWE7ZDspe2lmKGQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7dmFyIGU9ZDtiKGUpO3ZhciBmPWUubG9jYWxOYW1lO2lmKFwibGlua1wiPT09ZiYmXCJpbXBvcnRcIj09PWUuZ2V0QXR0cmlidXRlKFwicmVsXCIpKXtkPWUuaW1wb3J0O3ZvaWQgMD09PWMmJihjPW5ldyBTZXQpO2lmKGQgaW5zdGFuY2VvZiBOb2RlJiYhYy5oYXMoZCkpZm9yKGMuYWRkKGQpLGQ9ZC5maXJzdENoaWxkO2Q7ZD1kLm5leHRTaWJsaW5nKXNnKGQsYixjKTtkPXJnKGEsZSk7Y29udGludWV9ZWxzZSBpZihcInRlbXBsYXRlXCI9PT1mKXtkPXJnKGEsZSk7Y29udGludWV9aWYoZT1lLl9fQ0Vfc2hhZG93Um9vdClmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpc2coZSxiLGMpfWQ9ZC5maXJzdENoaWxkP2QuZmlyc3RDaGlsZDpyZyhhLGQpfX07ZnVuY3Rpb24gdGcoKXt2YXIgYT0hKG51bGw9PT11Z3x8dm9pZCAwPT09dWd8fCF1Zy5ub0RvY3VtZW50Q29uc3RydWN0aW9uT2JzZXJ2ZXIpLGI9IShudWxsPT09dWd8fHZvaWQgMD09PXVnfHwhdWcuc2hhZHlEb21GYXN0V2Fsayk7dGhpcy5jYT1bXTt0aGlzLmc9W107dGhpcy5XPSExO3RoaXMuc2hhZHlEb21GYXN0V2Fsaz1iO3RoaXMubmI9IWF9ZnVuY3Rpb24gdmcoYSxiLGMsZCl7dmFyIGU9d2luZG93LlNoYWR5RE9NO2lmKGEuc2hhZHlEb21GYXN0V2FsayYmZSYmZS5pblVzZSl7aWYoYi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZjKGIpLGIucXVlcnlTZWxlY3RvckFsbClmb3IoYT1lLm5hdGl2ZU1ldGhvZHMucXVlcnlTZWxlY3RvckFsbC5jYWxsKGIsXCIqXCIpLGI9MDtiPGEubGVuZ3RoO2IrKyljKGFbYl0pfWVsc2Ugc2coYixjLGQpfWZ1bmN0aW9uIHdnKGEsYil7YS5XPSEwO2EuY2EucHVzaChiKX1cbmZ1bmN0aW9uIHhnKGEsYil7YS5XPSEwO2EuZy5wdXNoKGIpfWZ1bmN0aW9uIHlnKGEsYil7YS5XJiZ2ZyhhLGIsZnVuY3Rpb24oYyl7cmV0dXJuIHpnKGEsYyl9KX1mdW5jdGlvbiB6ZyhhLGIpe2lmKGEuVyYmIWIuX19DRV9wYXRjaGVkKXtiLl9fQ0VfcGF0Y2hlZD0hMDtmb3IodmFyIGM9MDtjPGEuY2EubGVuZ3RoO2MrKylhLmNhW2NdKGIpO2ZvcihjPTA7YzxhLmcubGVuZ3RoO2MrKylhLmdbY10oYil9fWZ1bmN0aW9uIEFnKGEsYil7dmFyIGM9W107dmcoYSxiLGZ1bmN0aW9uKGUpe3JldHVybiBjLnB1c2goZSl9KTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKXt2YXIgZD1jW2JdOzE9PT1kLl9fQ0Vfc3RhdGU/YS5jb25uZWN0ZWRDYWxsYmFjayhkKTpCZyhhLGQpfX1cbmZ1bmN0aW9uIENnKGEsYil7dmFyIGM9W107dmcoYSxiLGZ1bmN0aW9uKGUpe3JldHVybiBjLnB1c2goZSl9KTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKXt2YXIgZD1jW2JdOzE9PT1kLl9fQ0Vfc3RhdGUmJmEuZGlzY29ubmVjdGVkQ2FsbGJhY2soZCl9fVxuZnVuY3Rpb24gRGcoYSxiLGMpe2M9dm9pZCAwPT09Yz97fTpjO3ZhciBkPWMub2IsZT1jLnVwZ3JhZGV8fGZ1bmN0aW9uKGcpe3JldHVybiBCZyhhLGcpfSxmPVtdO3ZnKGEsYixmdW5jdGlvbihnKXthLlcmJnpnKGEsZyk7aWYoXCJsaW5rXCI9PT1nLmxvY2FsTmFtZSYmXCJpbXBvcnRcIj09PWcuZ2V0QXR0cmlidXRlKFwicmVsXCIpKXt2YXIgaD1nLmltcG9ydDtoIGluc3RhbmNlb2YgTm9kZSYmKGguX19DRV9pc0ltcG9ydERvY3VtZW50PSEwLGguX19DRV9yZWdpc3RyeT1kb2N1bWVudC5fX0NFX3JlZ2lzdHJ5KTtoJiZcImNvbXBsZXRlXCI9PT1oLnJlYWR5U3RhdGU/aC5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQ9ITA6Zy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLGZ1bmN0aW9uKCl7dmFyIGs9Zy5pbXBvcnQ7aWYoIWsuX19DRV9kb2N1bWVudExvYWRIYW5kbGVkKXtrLl9fQ0VfZG9jdW1lbnRMb2FkSGFuZGxlZD0hMDt2YXIgbD1uZXcgU2V0O2QmJihkLmZvckVhY2goZnVuY3Rpb24obSl7cmV0dXJuIGwuYWRkKG0pfSksXG5sLmRlbGV0ZShrKSk7RGcoYSxrLHtvYjpsLHVwZ3JhZGU6ZX0pfX0pfWVsc2UgZi5wdXNoKGcpfSxkKTtmb3IoYj0wO2I8Zi5sZW5ndGg7YisrKWUoZltiXSl9XG5mdW5jdGlvbiBCZyhhLGIpe3RyeXt2YXIgYz1iLm93bmVyRG9jdW1lbnQsZD1jLl9fQ0VfcmVnaXN0cnk7dmFyIGU9ZCYmKGMuZGVmYXVsdFZpZXd8fGMuX19DRV9pc0ltcG9ydERvY3VtZW50KT9FZyhkLGIubG9jYWxOYW1lKTp2b2lkIDA7aWYoZSYmdm9pZCAwPT09Yi5fX0NFX3N0YXRlKXtlLmNvbnN0cnVjdGlvblN0YWNrLnB1c2goYik7dHJ5e3RyeXtpZihuZXcgZS5jb25zdHJ1Y3RvckZ1bmN0aW9uIT09Yil0aHJvdyBFcnJvcihcIlRoZSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBkaWQgbm90IHByb2R1Y2UgdGhlIGVsZW1lbnQgYmVpbmcgdXBncmFkZWQuXCIpO31maW5hbGx5e2UuY29uc3RydWN0aW9uU3RhY2sucG9wKCl9fWNhdGNoKGspe3Rocm93IGIuX19DRV9zdGF0ZT0yLGs7fWIuX19DRV9zdGF0ZT0xO2IuX19DRV9kZWZpbml0aW9uPWU7aWYoZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2smJmIuaGFzQXR0cmlidXRlcygpKXt2YXIgZj1lLm9ic2VydmVkQXR0cmlidXRlcztcbmZvcihlPTA7ZTxmLmxlbmd0aDtlKyspe3ZhciBnPWZbZV0saD1iLmdldEF0dHJpYnV0ZShnKTtudWxsIT09aCYmYS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soYixnLG51bGwsaCxudWxsKX19VChiKSYmYS5jb25uZWN0ZWRDYWxsYmFjayhiKX19Y2F0Y2goayl7Rmcoayl9fXRnLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbihhKXt2YXIgYj1hLl9fQ0VfZGVmaW5pdGlvbjtpZihiLmNvbm5lY3RlZENhbGxiYWNrKXRyeXtiLmNvbm5lY3RlZENhbGxiYWNrLmNhbGwoYSl9Y2F0Y2goYyl7RmcoYyl9fTt0Zy5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oYSl7dmFyIGI9YS5fX0NFX2RlZmluaXRpb247aWYoYi5kaXNjb25uZWN0ZWRDYWxsYmFjayl0cnl7Yi5kaXNjb25uZWN0ZWRDYWxsYmFjay5jYWxsKGEpfWNhdGNoKGMpe0ZnKGMpfX07XG50Zy5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS5fX0NFX2RlZmluaXRpb247aWYoZi5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2smJi0xPGYub2JzZXJ2ZWRBdHRyaWJ1dGVzLmluZGV4T2YoYikpdHJ5e2YuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrLmNhbGwoYSxiLGMsZCxlKX1jYXRjaChnKXtGZyhnKX19O1xuZnVuY3Rpb24gR2coYSxiLGMsZCl7dmFyIGU9Yi5fX0NFX3JlZ2lzdHJ5O2lmKGUmJihudWxsPT09ZHx8XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCI9PT1kKSYmKGU9RWcoZSxjKSkpdHJ5e3ZhciBmPW5ldyBlLmNvbnN0cnVjdG9yRnVuY3Rpb247aWYodm9pZCAwPT09Zi5fX0NFX3N0YXRlfHx2b2lkIDA9PT1mLl9fQ0VfZGVmaW5pdGlvbil0aHJvdyBFcnJvcihcIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ1wiK2MrXCInOiBUaGUgcmV0dXJuZWQgdmFsdWUgd2FzIG5vdCBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBIVE1MRWxlbWVudCBjb25zdHJ1Y3Rvci5cIik7aWYoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIhPT1mLm5hbWVzcGFjZVVSSSl0aHJvdyBFcnJvcihcIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ1wiK2MrXCInOiBUaGUgY29uc3RydWN0ZWQgZWxlbWVudCdzIG5hbWVzcGFjZSBtdXN0IGJlIHRoZSBIVE1MIG5hbWVzcGFjZS5cIik7aWYoZi5oYXNBdHRyaWJ1dGVzKCkpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0ICdcIitcbmMrXCInOiBUaGUgY29uc3RydWN0ZWQgZWxlbWVudCBtdXN0IG5vdCBoYXZlIGFueSBhdHRyaWJ1dGVzLlwiKTtpZihudWxsIT09Zi5maXJzdENoaWxkKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnXCIrYytcIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW55IGNoaWxkcmVuLlwiKTtpZihudWxsIT09Zi5wYXJlbnROb2RlKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnXCIrYytcIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50IG11c3Qgbm90IGhhdmUgYSBwYXJlbnQgbm9kZS5cIik7aWYoZi5vd25lckRvY3VtZW50IT09Yil0aHJvdyBFcnJvcihcIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ1wiK2MrXCInOiBUaGUgY29uc3RydWN0ZWQgZWxlbWVudCdzIG93bmVyIGRvY3VtZW50IGlzIGluY29ycmVjdC5cIik7aWYoZi5sb2NhbE5hbWUhPT1jKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnXCIrYytcIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50J3MgbG9jYWwgbmFtZSBpcyBpbmNvcnJlY3QuXCIpO1xucmV0dXJuIGZ9Y2F0Y2goZyl7cmV0dXJuIEZnKGcpLGI9bnVsbD09PWQ/SGYuY2FsbChiLGMpOklmLmNhbGwoYixkLGMpLE9iamVjdC5zZXRQcm90b3R5cGVPZihiLEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUpLGIuX19DRV9zdGF0ZT0yLGIuX19DRV9kZWZpbml0aW9uPXZvaWQgMCx6ZyhhLGIpLGJ9Yj1udWxsPT09ZD9IZi5jYWxsKGIsYyk6SWYuY2FsbChiLGQsYyk7emcoYSxiKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIEZnKGEpe3ZhciBiPWEubWVzc2FnZSxjPWEuc291cmNlVVJMfHxhLmZpbGVOYW1lfHxcIlwiLGQ9YS5saW5lfHxhLmxpbmVOdW1iZXJ8fDAsZT1hLmNvbHVtbnx8YS5jb2x1bW5OdW1iZXJ8fDAsZj12b2lkIDA7dm9pZCAwPT09RXJyb3JFdmVudC5wcm90b3R5cGUuaW5pdEVycm9yRXZlbnQ/Zj1uZXcgRXJyb3JFdmVudChcImVycm9yXCIse2NhbmNlbGFibGU6ITAsbWVzc2FnZTpiLGZpbGVuYW1lOmMsbGluZW5vOmQsY29sbm86ZSxlcnJvcjphfSk6KGY9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFcnJvckV2ZW50XCIpLGYuaW5pdEVycm9yRXZlbnQoXCJlcnJvclwiLCExLCEwLGIsYyxkKSxmLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJkZWZhdWx0UHJldmVudGVkXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KX0pO3ZvaWQgMD09PWYuZXJyb3ImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLFwiZXJyb3JcIixcbntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTt3aW5kb3cuZGlzcGF0Y2hFdmVudChmKTtmLmRlZmF1bHRQcmV2ZW50ZWR8fGNvbnNvbGUuZXJyb3IoYSl9O2Z1bmN0aW9uIEhnKCl7dmFyIGE9dGhpczt0aGlzLkk9dm9pZCAwO3RoaXMuSGE9bmV3IFByb21pc2UoZnVuY3Rpb24oYil7YS5nPWJ9KX1IZy5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbihhKXtpZih0aGlzLkkpdGhyb3cgRXJyb3IoXCJBbHJlYWR5IHJlc29sdmVkLlwiKTt0aGlzLkk9YTt0aGlzLmcoYSl9O2Z1bmN0aW9uIElnKGEpe3ZhciBiPWRvY3VtZW50O3RoaXMuWD12b2lkIDA7dGhpcy5TPWE7dGhpcy5nPWI7RGcodGhpcy5TLHRoaXMuZyk7XCJsb2FkaW5nXCI9PT10aGlzLmcucmVhZHlTdGF0ZSYmKHRoaXMuWD1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLmguYmluZCh0aGlzKSksdGhpcy5YLm9ic2VydmUodGhpcy5nLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pKX1mdW5jdGlvbiBKZyhhKXthLlgmJmEuWC5kaXNjb25uZWN0KCl9SWcucHJvdG90eXBlLmg9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5nLnJlYWR5U3RhdGU7XCJpbnRlcmFjdGl2ZVwiIT09YiYmXCJjb21wbGV0ZVwiIT09Ynx8SmcodGhpcyk7Zm9yKGI9MDtiPGEubGVuZ3RoO2IrKylmb3IodmFyIGM9YVtiXS5hZGRlZE5vZGVzLGQ9MDtkPGMubGVuZ3RoO2QrKylEZyh0aGlzLlMsY1tkXSl9O2Z1bmN0aW9uIFUoYSl7dGhpcy5rYT1uZXcgTWFwO3RoaXMubGE9bmV3IE1hcDt0aGlzLkNhPW5ldyBNYXA7dGhpcy50YT0hMTt0aGlzLndhPW5ldyBNYXA7dGhpcy5qYT1mdW5jdGlvbihiKXtyZXR1cm4gYigpfTt0aGlzLlY9ITE7dGhpcy5tYT1bXTt0aGlzLlM9YTt0aGlzLkRhPWEubmI/bmV3IElnKGEpOnZvaWQgMH12PVUucHJvdG90eXBlO3YuZWI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO2lmKCEoYiBpbnN0YW5jZW9mIEZ1bmN0aW9uKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgZ2V0dGVycyBtdXN0IGJlIGZ1bmN0aW9ucy5cIik7S2codGhpcyxhKTt0aGlzLmthLnNldChhLGIpO3RoaXMubWEucHVzaChhKTt0aGlzLlZ8fCh0aGlzLlY9ITAsdGhpcy5qYShmdW5jdGlvbigpe3JldHVybiBMZyhjKX0pKX07XG52LmRlZmluZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7aWYoIShiIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvcnMgbXVzdCBiZSBmdW5jdGlvbnMuXCIpO0tnKHRoaXMsYSk7TWcodGhpcyxhLGIpO3RoaXMubWEucHVzaChhKTt0aGlzLlZ8fCh0aGlzLlY9ITAsdGhpcy5qYShmdW5jdGlvbigpe3JldHVybiBMZyhjKX0pKX07ZnVuY3Rpb24gS2coYSxiKXtpZighb2coYikpdGhyb3cgbmV3IFN5bnRheEVycm9yKFwiVGhlIGVsZW1lbnQgbmFtZSAnXCIrYitcIicgaXMgbm90IHZhbGlkLlwiKTtpZihFZyhhLGIpKXRocm93IEVycm9yKFwiQSBjdXN0b20gZWxlbWVudCB3aXRoIG5hbWUgJ1wiKyhiK1wiJyBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQuXCIpKTtpZihhLnRhKXRocm93IEVycm9yKFwiQSBjdXN0b20gZWxlbWVudCBpcyBhbHJlYWR5IGJlaW5nIGRlZmluZWQuXCIpO31cbmZ1bmN0aW9uIE1nKGEsYixjKXthLnRhPSEwO3ZhciBkO3RyeXt2YXIgZT1jLnByb3RvdHlwZTtpZighKGUgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJUaGUgY3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IncyBwcm90b3R5cGUgaXMgbm90IGFuIG9iamVjdC5cIik7dmFyIGY9ZnVuY3Rpb24obSl7dmFyIHE9ZVttXTtpZih2b2lkIDAhPT1xJiYhKHEgaW5zdGFuY2VvZiBGdW5jdGlvbikpdGhyb3cgRXJyb3IoXCJUaGUgJ1wiK20rXCInIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi5cIik7cmV0dXJuIHF9O3ZhciBnPWYoXCJjb25uZWN0ZWRDYWxsYmFja1wiKTt2YXIgaD1mKFwiZGlzY29ubmVjdGVkQ2FsbGJhY2tcIik7dmFyIGs9ZihcImFkb3B0ZWRDYWxsYmFja1wiKTt2YXIgbD0oZD1mKFwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrXCIpKSYmYy5vYnNlcnZlZEF0dHJpYnV0ZXN8fFtdfWNhdGNoKG0pe3Rocm93IG07fWZpbmFsbHl7YS50YT0hMX1jPXtsb2NhbE5hbWU6YixcbmNvbnN0cnVjdG9yRnVuY3Rpb246Yyxjb25uZWN0ZWRDYWxsYmFjazpnLGRpc2Nvbm5lY3RlZENhbGxiYWNrOmgsYWRvcHRlZENhbGxiYWNrOmssYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOmQsb2JzZXJ2ZWRBdHRyaWJ1dGVzOmwsY29uc3RydWN0aW9uU3RhY2s6W119O2EubGEuc2V0KGIsYyk7YS5DYS5zZXQoYy5jb25zdHJ1Y3RvckZ1bmN0aW9uLGMpO3JldHVybiBjfXYudXBncmFkZT1mdW5jdGlvbihhKXtEZyh0aGlzLlMsYSl9O1xuZnVuY3Rpb24gTGcoYSl7aWYoITEhPT1hLlYpe2EuVj0hMTtmb3IodmFyIGI9W10sYz1hLm1hLGQ9bmV3IE1hcCxlPTA7ZTxjLmxlbmd0aDtlKyspZC5zZXQoY1tlXSxbXSk7RGcoYS5TLGRvY3VtZW50LHt1cGdyYWRlOmZ1bmN0aW9uKGspe2lmKHZvaWQgMD09PWsuX19DRV9zdGF0ZSl7dmFyIGw9ay5sb2NhbE5hbWUsbT1kLmdldChsKTttP20ucHVzaChrKTphLmxhLmhhcyhsKSYmYi5wdXNoKGspfX19KTtmb3IoZT0wO2U8Yi5sZW5ndGg7ZSsrKUJnKGEuUyxiW2VdKTtmb3IoZT0wO2U8Yy5sZW5ndGg7ZSsrKXtmb3IodmFyIGY9Y1tlXSxnPWQuZ2V0KGYpLGg9MDtoPGcubGVuZ3RoO2grKylCZyhhLlMsZ1toXSk7KGY9YS53YS5nZXQoZikpJiZmLnJlc29sdmUodm9pZCAwKX1jLmxlbmd0aD0wfX12LmdldD1mdW5jdGlvbihhKXtpZihhPUVnKHRoaXMsYSkpcmV0dXJuIGEuY29uc3RydWN0b3JGdW5jdGlvbn07XG52LndoZW5EZWZpbmVkPWZ1bmN0aW9uKGEpe2lmKCFvZyhhKSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFN5bnRheEVycm9yKFwiJ1wiK2ErXCInIGlzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUuXCIpKTt2YXIgYj10aGlzLndhLmdldChhKTtpZihiKXJldHVybiBiLkhhO2I9bmV3IEhnO3RoaXMud2Euc2V0KGEsYik7dmFyIGM9dGhpcy5sYS5oYXMoYSl8fHRoaXMua2EuaGFzKGEpO2E9LTE9PT10aGlzLm1hLmluZGV4T2YoYSk7YyYmYSYmYi5yZXNvbHZlKHZvaWQgMCk7cmV0dXJuIGIuSGF9O3YucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjaz1mdW5jdGlvbihhKXt0aGlzLkRhJiZKZyh0aGlzLkRhKTt2YXIgYj10aGlzLmphO3RoaXMuamE9ZnVuY3Rpb24oYyl7cmV0dXJuIGEoZnVuY3Rpb24oKXtyZXR1cm4gYihjKX0pfX07XG5mdW5jdGlvbiBFZyhhLGIpe3ZhciBjPWEubGEuZ2V0KGIpO2lmKGMpcmV0dXJuIGM7aWYoYz1hLmthLmdldChiKSl7YS5rYS5kZWxldGUoYik7dHJ5e3JldHVybiBNZyhhLGIsYygpKX1jYXRjaChkKXtGZyhkKX19fXdpbmRvdy5DdXN0b21FbGVtZW50UmVnaXN0cnk9VTtVLnByb3RvdHlwZS5kZWZpbmU9VS5wcm90b3R5cGUuZGVmaW5lO1UucHJvdG90eXBlLnVwZ3JhZGU9VS5wcm90b3R5cGUudXBncmFkZTtVLnByb3RvdHlwZS5nZXQ9VS5wcm90b3R5cGUuZ2V0O1UucHJvdG90eXBlLndoZW5EZWZpbmVkPVUucHJvdG90eXBlLndoZW5EZWZpbmVkO1UucHJvdG90eXBlLnBvbHlmaWxsRGVmaW5lTGF6eT1VLnByb3RvdHlwZS5lYjtVLnByb3RvdHlwZS5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrPVUucHJvdG90eXBlLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2s7ZnVuY3Rpb24gTmcoYSxiLGMpe2Z1bmN0aW9uIGQoZSl7cmV0dXJuIGZ1bmN0aW9uKGYpe2Zvcih2YXIgZz1bXSxoPTA7aDxhcmd1bWVudHMubGVuZ3RoOysraClnW2hdPWFyZ3VtZW50c1toXTtoPVtdO2Zvcih2YXIgaz1bXSxsPTA7bDxnLmxlbmd0aDtsKyspe3ZhciBtPWdbbF07bSBpbnN0YW5jZW9mIEVsZW1lbnQmJlQobSkmJmsucHVzaChtKTtpZihtIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IobT1tLmZpcnN0Q2hpbGQ7bTttPW0ubmV4dFNpYmxpbmcpaC5wdXNoKG0pO2Vsc2UgaC5wdXNoKG0pfWUuYXBwbHkodGhpcyxnKTtmb3IoZz0wO2c8ay5sZW5ndGg7ZysrKUNnKGEsa1tnXSk7aWYoVCh0aGlzKSlmb3IoZz0wO2c8aC5sZW5ndGg7ZysrKWs9aFtnXSxrIGluc3RhbmNlb2YgRWxlbWVudCYmQWcoYSxrKX19dm9pZCAwIT09Yy5wcmVwZW5kJiYoYi5wcmVwZW5kPWQoYy5wcmVwZW5kKSk7dm9pZCAwIT09Yy5hcHBlbmQmJihiLmFwcGVuZD1kKGMuYXBwZW5kKSl9XG47ZnVuY3Rpb24gT2coYSl7RG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oYil7cmV0dXJuIEdnKGEsdGhpcyxiLG51bGwpfTtEb2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZT1mdW5jdGlvbihiLGMpe2I9SmYuY2FsbCh0aGlzLGIsISFjKTt0aGlzLl9fQ0VfcmVnaXN0cnk/RGcoYSxiKTp5ZyhhLGIpO3JldHVybiBifTtEb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudE5TPWZ1bmN0aW9uKGIsYyl7cmV0dXJuIEdnKGEsdGhpcyxjLGIpfTtOZyhhLERvY3VtZW50LnByb3RvdHlwZSx7cHJlcGVuZDpLZixhcHBlbmQ6TGZ9KX07ZnVuY3Rpb24gUGcoYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBmPVtdLGc9MDtnPGFyZ3VtZW50cy5sZW5ndGg7KytnKWZbZ109YXJndW1lbnRzW2ddO2c9W107Zm9yKHZhciBoPVtdLGs9MDtrPGYubGVuZ3RoO2srKyl7dmFyIGw9ZltrXTtsIGluc3RhbmNlb2YgRWxlbWVudCYmVChsKSYmaC5wdXNoKGwpO2lmKGwgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KWZvcihsPWwuZmlyc3RDaGlsZDtsO2w9bC5uZXh0U2libGluZylnLnB1c2gobCk7ZWxzZSBnLnB1c2gobCl9ZC5hcHBseSh0aGlzLGYpO2ZvcihmPTA7ZjxoLmxlbmd0aDtmKyspQ2coYSxoW2ZdKTtpZihUKHRoaXMpKWZvcihmPTA7ZjxnLmxlbmd0aDtmKyspaD1nW2ZdLGggaW5zdGFuY2VvZiBFbGVtZW50JiZBZyhhLGgpfX12YXIgYz1FbGVtZW50LnByb3RvdHlwZTt2b2lkIDAhPT1mZyYmKGMuYmVmb3JlPWIoZmcpKTt2b2lkIDAhPT1nZyYmKGMuYWZ0ZXI9YihnZykpO3ZvaWQgMCE9PVxuaGcmJihjLnJlcGxhY2VXaXRoPWZ1bmN0aW9uKGQpe2Zvcih2YXIgZT1bXSxmPTA7Zjxhcmd1bWVudHMubGVuZ3RoOysrZillW2ZdPWFyZ3VtZW50c1tmXTtmPVtdO2Zvcih2YXIgZz1bXSxoPTA7aDxlLmxlbmd0aDtoKyspe3ZhciBrPWVbaF07ayBpbnN0YW5jZW9mIEVsZW1lbnQmJlQoaykmJmcucHVzaChrKTtpZihrIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3Ioaz1rLmZpcnN0Q2hpbGQ7aztrPWsubmV4dFNpYmxpbmcpZi5wdXNoKGspO2Vsc2UgZi5wdXNoKGspfWg9VCh0aGlzKTtoZy5hcHBseSh0aGlzLGUpO2ZvcihlPTA7ZTxnLmxlbmd0aDtlKyspQ2coYSxnW2VdKTtpZihoKWZvcihDZyhhLHRoaXMpLGU9MDtlPGYubGVuZ3RoO2UrKylnPWZbZV0sZyBpbnN0YW5jZW9mIEVsZW1lbnQmJkFnKGEsZyl9KTt2b2lkIDAhPT1pZyYmKGMucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIGQ9VCh0aGlzKTtpZy5jYWxsKHRoaXMpO2QmJkNnKGEsdGhpcyl9KX07ZnVuY3Rpb24gUWcoYSl7ZnVuY3Rpb24gYihlLGYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaW5uZXJIVE1MXCIse2VudW1lcmFibGU6Zi5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZTohMCxnZXQ6Zi5nZXQsc2V0OmZ1bmN0aW9uKGcpe3ZhciBoPXRoaXMsaz12b2lkIDA7VCh0aGlzKSYmKGs9W10sdmcoYSx0aGlzLGZ1bmN0aW9uKHEpe3EhPT1oJiZrLnB1c2gocSl9KSk7Zi5zZXQuY2FsbCh0aGlzLGcpO2lmKGspZm9yKHZhciBsPTA7bDxrLmxlbmd0aDtsKyspe3ZhciBtPWtbbF07MT09PW0uX19DRV9zdGF0ZSYmYS5kaXNjb25uZWN0ZWRDYWxsYmFjayhtKX10aGlzLm93bmVyRG9jdW1lbnQuX19DRV9yZWdpc3RyeT9EZyhhLHRoaXMpOnlnKGEsdGhpcyk7cmV0dXJuIGd9fSl9ZnVuY3Rpb24gYyhlLGYpe2UuaW5zZXJ0QWRqYWNlbnRFbGVtZW50PWZ1bmN0aW9uKGcsaCl7dmFyIGs9VChoKTtnPWYuY2FsbCh0aGlzLGcsaCk7ayYmQ2coYSxoKTtUKGcpJiZBZyhhLGgpO3JldHVybiBnfX1cbmZ1bmN0aW9uIGQoZSxmKXtmdW5jdGlvbiBnKGgsayl7Zm9yKHZhciBsPVtdO2ghPT1rO2g9aC5uZXh0U2libGluZylsLnB1c2goaCk7Zm9yKGs9MDtrPGwubGVuZ3RoO2srKylEZyhhLGxba10pfWUuaW5zZXJ0QWRqYWNlbnRIVE1MPWZ1bmN0aW9uKGgsayl7aD1oLnRvTG93ZXJDYXNlKCk7aWYoXCJiZWZvcmViZWdpblwiPT09aCl7dmFyIGw9dGhpcy5wcmV2aW91c1NpYmxpbmc7Zi5jYWxsKHRoaXMsaCxrKTtnKGx8fHRoaXMucGFyZW50Tm9kZS5maXJzdENoaWxkLHRoaXMpfWVsc2UgaWYoXCJhZnRlcmJlZ2luXCI9PT1oKWw9dGhpcy5maXJzdENoaWxkLGYuY2FsbCh0aGlzLGgsayksZyh0aGlzLmZpcnN0Q2hpbGQsbCk7ZWxzZSBpZihcImJlZm9yZWVuZFwiPT09aClsPXRoaXMubGFzdENoaWxkLGYuY2FsbCh0aGlzLGgsayksZyhsfHx0aGlzLmZpcnN0Q2hpbGQsbnVsbCk7ZWxzZSBpZihcImFmdGVyZW5kXCI9PT1oKWw9dGhpcy5uZXh0U2libGluZyxmLmNhbGwodGhpcyxoLGspLGcodGhpcy5uZXh0U2libGluZyxcbmwpO2Vsc2UgdGhyb3cgbmV3IFN5bnRheEVycm9yKFwiVGhlIHZhbHVlIHByb3ZpZGVkIChcIitTdHJpbmcoaCkrXCIpIGlzIG5vdCBvbmUgb2YgJ2JlZm9yZWJlZ2luJywgJ2FmdGVyYmVnaW4nLCAnYmVmb3JlZW5kJywgb3IgJ2FmdGVyZW5kJy5cIik7fX1VZiYmKEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdz1mdW5jdGlvbihlKXtlPVVmLmNhbGwodGhpcyxlKTtpZihhLlcmJiFlLl9fQ0VfcGF0Y2hlZCl7ZS5fX0NFX3BhdGNoZWQ9ITA7Zm9yKHZhciBmPTA7ZjxhLmNhLmxlbmd0aDtmKyspYS5jYVtmXShlKX1yZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9ZX0pO1ZmJiZWZi5nZXQ/YihFbGVtZW50LnByb3RvdHlwZSxWZik6a2cmJmtnLmdldD9iKEhUTUxFbGVtZW50LnByb3RvdHlwZSxrZyk6eGcoYSxmdW5jdGlvbihlKXtiKGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBPZi5jYWxsKHRoaXMsITApLmlubmVySFRNTH0sc2V0OmZ1bmN0aW9uKGYpe3ZhciBnPVxuXCJ0ZW1wbGF0ZVwiPT09dGhpcy5sb2NhbE5hbWUsaD1nP3RoaXMuY29udGVudDp0aGlzLGs9SWYuY2FsbChkb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSSSx0aGlzLmxvY2FsTmFtZSk7Zm9yKGsuaW5uZXJIVE1MPWY7MDxoLmNoaWxkTm9kZXMubGVuZ3RoOylSZi5jYWxsKGgsaC5jaGlsZE5vZGVzWzBdKTtmb3IoZj1nP2suY29udGVudDprOzA8Zi5jaGlsZE5vZGVzLmxlbmd0aDspUGYuY2FsbChoLGYuY2hpbGROb2Rlc1swXSl9fSl9KTtFbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oZSxmKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBYZi5jYWxsKHRoaXMsZSxmKTt2YXIgZz1XZi5jYWxsKHRoaXMsZSk7WGYuY2FsbCh0aGlzLGUsZik7Zj1XZi5jYWxsKHRoaXMsZSk7YS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxlLGcsZixudWxsKX07RWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlTlM9ZnVuY3Rpb24oZSxmLGcpe2lmKDEhPT10aGlzLl9fQ0Vfc3RhdGUpcmV0dXJuICRmLmNhbGwodGhpcyxcbmUsZixnKTt2YXIgaD1aZi5jYWxsKHRoaXMsZSxmKTskZi5jYWxsKHRoaXMsZSxmLGcpO2c9WmYuY2FsbCh0aGlzLGUsZik7YS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxmLGgsZyxlKX07RWxlbWVudC5wcm90b3R5cGUucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKGUpe2lmKDEhPT10aGlzLl9fQ0Vfc3RhdGUpcmV0dXJuIFlmLmNhbGwodGhpcyxlKTt2YXIgZj1XZi5jYWxsKHRoaXMsZSk7WWYuY2FsbCh0aGlzLGUpO251bGwhPT1mJiZhLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0aGlzLGUsZixudWxsLG51bGwpfTtFbGVtZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGVOUz1mdW5jdGlvbihlLGYpe2lmKDEhPT10aGlzLl9fQ0Vfc3RhdGUpcmV0dXJuIGFnLmNhbGwodGhpcyxlLGYpO3ZhciBnPVpmLmNhbGwodGhpcyxlLGYpO2FnLmNhbGwodGhpcyxlLGYpO3ZhciBoPVpmLmNhbGwodGhpcyxlLGYpO2chPT1oJiZhLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayh0aGlzLFxuZixnLGgsZSl9O2xnP2MoSFRNTEVsZW1lbnQucHJvdG90eXBlLGxnKTpiZyYmYyhFbGVtZW50LnByb3RvdHlwZSxiZyk7bWc/ZChIVE1MRWxlbWVudC5wcm90b3R5cGUsbWcpOmNnJiZkKEVsZW1lbnQucHJvdG90eXBlLGNnKTtOZyhhLEVsZW1lbnQucHJvdG90eXBlLHtwcmVwZW5kOmRnLGFwcGVuZDplZ30pO1BnKGEpfTt2YXIgUmc9e307ZnVuY3Rpb24gU2coYSl7ZnVuY3Rpb24gYigpe3ZhciBjPXRoaXMuY29uc3RydWN0b3I7dmFyIGQ9ZG9jdW1lbnQuX19DRV9yZWdpc3RyeS5DYS5nZXQoYyk7aWYoIWQpdGhyb3cgRXJyb3IoXCJGYWlsZWQgdG8gY29uc3RydWN0IGEgY3VzdG9tIGVsZW1lbnQ6IFRoZSBjb25zdHJ1Y3RvciB3YXMgbm90IHJlZ2lzdGVyZWQgd2l0aCBgY3VzdG9tRWxlbWVudHNgLlwiKTt2YXIgZT1kLmNvbnN0cnVjdGlvblN0YWNrO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gZT1IZi5jYWxsKGRvY3VtZW50LGQubG9jYWxOYW1lKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoZSxjLnByb3RvdHlwZSksZS5fX0NFX3N0YXRlPTEsZS5fX0NFX2RlZmluaXRpb249ZCx6ZyhhLGUpLGU7dmFyIGY9ZS5sZW5ndGgtMSxnPWVbZl07aWYoZz09PVJnKXRocm93IEVycm9yKFwiRmFpbGVkIHRvIGNvbnN0cnVjdCAnXCIrZC5sb2NhbE5hbWUrXCInOiBUaGlzIGVsZW1lbnQgd2FzIGFscmVhZHkgY29uc3RydWN0ZWQuXCIpO2VbZl09XG5SZztPYmplY3Quc2V0UHJvdG90eXBlT2YoZyxjLnByb3RvdHlwZSk7emcoYSxnKTtyZXR1cm4gZ31iLnByb3RvdHlwZT1qZy5wcm90b3R5cGU7T2JqZWN0LmRlZmluZVByb3BlcnR5KEhUTUxFbGVtZW50LnByb3RvdHlwZSxcImNvbnN0cnVjdG9yXCIse3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOmJ9KTt3aW5kb3cuSFRNTEVsZW1lbnQ9Yn07ZnVuY3Rpb24gVGcoYSl7ZnVuY3Rpb24gYihjLGQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLFwidGV4dENvbnRlbnRcIix7ZW51bWVyYWJsZTpkLmVudW1lcmFibGUsY29uZmlndXJhYmxlOiEwLGdldDpkLmdldCxzZXQ6ZnVuY3Rpb24oZSl7aWYodGhpcy5ub2RlVHlwZT09PU5vZGUuVEVYVF9OT0RFKWQuc2V0LmNhbGwodGhpcyxlKTtlbHNle3ZhciBmPXZvaWQgMDtpZih0aGlzLmZpcnN0Q2hpbGQpe3ZhciBnPXRoaXMuY2hpbGROb2RlcyxoPWcubGVuZ3RoO2lmKDA8aCYmVCh0aGlzKSl7Zj1BcnJheShoKTtmb3IodmFyIGs9MDtrPGg7aysrKWZba109Z1trXX19ZC5zZXQuY2FsbCh0aGlzLGUpO2lmKGYpZm9yKGU9MDtlPGYubGVuZ3RoO2UrKylDZyhhLGZbZV0pfX19KX1Ob2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmU9ZnVuY3Rpb24oYyxkKXtpZihjIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCl7dmFyIGU9cWcoYyk7Yz1RZi5jYWxsKHRoaXMsYyxkKTtpZihUKHRoaXMpKWZvcihkPVxuMDtkPGUubGVuZ3RoO2QrKylBZyhhLGVbZF0pO3JldHVybiBjfWU9YyBpbnN0YW5jZW9mIEVsZW1lbnQmJlQoYyk7ZD1RZi5jYWxsKHRoaXMsYyxkKTtlJiZDZyhhLGMpO1QodGhpcykmJkFnKGEsYyk7cmV0dXJuIGR9O05vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkPWZ1bmN0aW9uKGMpe2lmKGMgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZD1xZyhjKTtjPVBmLmNhbGwodGhpcyxjKTtpZihUKHRoaXMpKWZvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKUFnKGEsZFtlXSk7cmV0dXJuIGN9ZD1jIGluc3RhbmNlb2YgRWxlbWVudCYmVChjKTtlPVBmLmNhbGwodGhpcyxjKTtkJiZDZyhhLGMpO1QodGhpcykmJkFnKGEsYyk7cmV0dXJuIGV9O05vZGUucHJvdG90eXBlLmNsb25lTm9kZT1mdW5jdGlvbihjKXtjPU9mLmNhbGwodGhpcywhIWMpO3RoaXMub3duZXJEb2N1bWVudC5fX0NFX3JlZ2lzdHJ5P0RnKGEsYyk6eWcoYSxjKTtyZXR1cm4gY307Tm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9XG5mdW5jdGlvbihjKXt2YXIgZD1jIGluc3RhbmNlb2YgRWxlbWVudCYmVChjKSxlPVJmLmNhbGwodGhpcyxjKTtkJiZDZyhhLGMpO3JldHVybiBlfTtOb2RlLnByb3RvdHlwZS5yZXBsYWNlQ2hpbGQ9ZnVuY3Rpb24oYyxkKXtpZihjIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCl7dmFyIGU9cWcoYyk7Yz1TZi5jYWxsKHRoaXMsYyxkKTtpZihUKHRoaXMpKWZvcihDZyhhLGQpLGQ9MDtkPGUubGVuZ3RoO2QrKylBZyhhLGVbZF0pO3JldHVybiBjfWU9YyBpbnN0YW5jZW9mIEVsZW1lbnQmJlQoYyk7dmFyIGY9U2YuY2FsbCh0aGlzLGMsZCksZz1UKHRoaXMpO2cmJkNnKGEsZCk7ZSYmQ2coYSxjKTtnJiZBZyhhLGMpO3JldHVybiBmfTtUZiYmVGYuZ2V0P2IoTm9kZS5wcm90b3R5cGUsVGYpOndnKGEsZnVuY3Rpb24oYyl7YihjLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGQ9W10sZT10aGlzLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpZS5ub2RlVHlwZSE9PVxuTm9kZS5DT01NRU5UX05PREUmJmQucHVzaChlLnRleHRDb250ZW50KTtyZXR1cm4gZC5qb2luKFwiXCIpfSxzZXQ6ZnVuY3Rpb24oZCl7Zm9yKDt0aGlzLmZpcnN0Q2hpbGQ7KVJmLmNhbGwodGhpcyx0aGlzLmZpcnN0Q2hpbGQpO251bGwhPWQmJlwiXCIhPT1kJiZQZi5jYWxsKHRoaXMsZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZCkpfX0pfSl9O3ZhciB1Zz13aW5kb3cuY3VzdG9tRWxlbWVudHM7ZnVuY3Rpb24gVWcoKXt2YXIgYT1uZXcgdGc7U2coYSk7T2coYSk7TmcoYSxEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSx7cHJlcGVuZDpNZixhcHBlbmQ6TmZ9KTtUZyhhKTtRZyhhKTthPW5ldyBVKGEpO2RvY3VtZW50Ll9fQ0VfcmVnaXN0cnk9YTtPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LFwiY3VzdG9tRWxlbWVudHNcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6YX0pfXVnJiYhdWcuZm9yY2VQb2x5ZmlsbCYmXCJmdW5jdGlvblwiPT10eXBlb2YgdWcuZGVmaW5lJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB1Zy5nZXR8fFVnKCk7d2luZG93Ll9fQ0VfaW5zdGFsbFBvbHlmaWxsPVVnOy8qXG5cbkNvcHlyaWdodCAoYykgMjAxNyBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5UaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dFxuVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG5Db2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzb1xuc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiovXG5mdW5jdGlvbiBWZygpe3RoaXMuZW5kPXRoaXMuc3RhcnQ9MDt0aGlzLnJ1bGVzPXRoaXMucGFyZW50PXRoaXMucHJldmlvdXM9bnVsbDt0aGlzLmNzc1RleHQ9dGhpcy5wYXJzZWRDc3NUZXh0PVwiXCI7dGhpcy5hdFJ1bGU9ITE7dGhpcy50eXBlPTA7dGhpcy5wYXJzZWRTZWxlY3Rvcj10aGlzLnNlbGVjdG9yPXRoaXMua2V5ZnJhbWVzTmFtZT1cIlwifVxuZnVuY3Rpb24gV2coYSl7dmFyIGI9YT1hLnJlcGxhY2UoWGcsXCJcIikucmVwbGFjZShZZyxcIlwiKSxjPW5ldyBWZztjLnN0YXJ0PTA7Yy5lbmQ9Yi5sZW5ndGg7Zm9yKHZhciBkPWMsZT0wLGY9Yi5sZW5ndGg7ZTxmO2UrKylpZihcIntcIj09PWJbZV0pe2QucnVsZXN8fChkLnJ1bGVzPVtdKTt2YXIgZz1kLGg9Zy5ydWxlc1tnLnJ1bGVzLmxlbmd0aC0xXXx8bnVsbDtkPW5ldyBWZztkLnN0YXJ0PWUrMTtkLnBhcmVudD1nO2QucHJldmlvdXM9aDtnLnJ1bGVzLnB1c2goZCl9ZWxzZVwifVwiPT09YltlXSYmKGQuZW5kPWUrMSxkPWQucGFyZW50fHxjKTtyZXR1cm4gWmcoYyxhKX1cbmZ1bmN0aW9uIFpnKGEsYil7dmFyIGM9Yi5zdWJzdHJpbmcoYS5zdGFydCxhLmVuZC0xKTthLnBhcnNlZENzc1RleHQ9YS5jc3NUZXh0PWMudHJpbSgpO2EucGFyZW50JiYoYz1iLnN1YnN0cmluZyhhLnByZXZpb3VzP2EucHJldmlvdXMuZW5kOmEucGFyZW50LnN0YXJ0LGEuc3RhcnQtMSksYz0kZyhjKSxjPWMucmVwbGFjZShhaCxcIiBcIiksYz1jLnN1YnN0cmluZyhjLmxhc3RJbmRleE9mKFwiO1wiKSsxKSxjPWEucGFyc2VkU2VsZWN0b3I9YS5zZWxlY3Rvcj1jLnRyaW0oKSxhLmF0UnVsZT0wPT09Yy5pbmRleE9mKFwiQFwiKSxhLmF0UnVsZT8wPT09Yy5pbmRleE9mKFwiQG1lZGlhXCIpP2EudHlwZT1iaDpjLm1hdGNoKGNoKSYmKGEudHlwZT1kaCxhLmtleWZyYW1lc05hbWU9YS5zZWxlY3Rvci5zcGxpdChhaCkucG9wKCkpOmEudHlwZT0wPT09Yy5pbmRleE9mKFwiLS1cIik/ZWg6ZmgpO2lmKGM9YS5ydWxlcylmb3IodmFyIGQ9MCxlPWMubGVuZ3RoLGY9dm9pZCAwO2Q8ZSYmKGY9Y1tkXSk7ZCsrKVpnKGYsXG5iKTtyZXR1cm4gYX1mdW5jdGlvbiAkZyhhKXtyZXR1cm4gYS5yZXBsYWNlKC9cXFxcKFswLTlhLWZdezEsNn0pXFxzL2dpLGZ1bmN0aW9uKGIsYyl7Yj1jO2ZvcihjPTYtYi5sZW5ndGg7Yy0tOyliPVwiMFwiK2I7cmV0dXJuXCJcXFxcXCIrYn0pfVxuZnVuY3Rpb24gZ2goYSxiLGMpe2M9dm9pZCAwPT09Yz9cIlwiOmM7dmFyIGQ9XCJcIjtpZihhLmNzc1RleHR8fGEucnVsZXMpe3ZhciBlPWEucnVsZXMsZjtpZihmPWUpZj1lWzBdLGY9IShmJiZmLnNlbGVjdG9yJiYwPT09Zi5zZWxlY3Rvci5pbmRleE9mKFwiLS1cIikpO2lmKGYpe2Y9MDtmb3IodmFyIGc9ZS5sZW5ndGgsaD12b2lkIDA7ZjxnJiYoaD1lW2ZdKTtmKyspZD1naChoLGIsZCl9ZWxzZSBiP2I9YS5jc3NUZXh0OihiPWEuY3NzVGV4dCxiPWIucmVwbGFjZShoaCxcIlwiKS5yZXBsYWNlKGloLFwiXCIpLGI9Yi5yZXBsYWNlKGpoLFwiXCIpLnJlcGxhY2Uoa2gsXCJcIikpLChkPWIudHJpbSgpKSYmKGQ9XCIgIFwiK2QrXCJcXG5cIil9ZCYmKGEuc2VsZWN0b3ImJihjKz1hLnNlbGVjdG9yK1wiIHtcXG5cIiksYys9ZCxhLnNlbGVjdG9yJiYoYys9XCJ9XFxuXFxuXCIpKTtyZXR1cm4gY31cbnZhciBmaD0xLGRoPTcsYmg9NCxlaD0xRTMsWGc9L1xcL1xcKlteKl0qXFwqKyhbXi8qXVteKl0qXFwqKykqXFwvL2dpbSxZZz0vQGltcG9ydFteO10qOy9naW0saGg9Lyg/Ol5bXjtcXC1cXHN9XSspPy0tW147e31dKj86W157fTtdKj8oPzpbO1xcbl18JCkvZ2ltLGloPS8oPzpeW147XFwtXFxzfV0rKT8tLVteO3t9XSo/Oltee307XSo/e1tefV0qP30oPzpbO1xcbl18JCk/L2dpbSxqaD0vQGFwcGx5XFxzKlxcKD9bXik7XSpcXCk/XFxzKig/Ols7XFxuXXwkKT8vZ2ltLGtoPS9bXjs6XSo/OlteO10qP3ZhclxcKFteO10qXFwpKD86WztcXG5dfCQpPy9naW0sY2g9L15AW15cXHNdKmtleWZyYW1lcy8sYWg9L1xccysvZzt2YXIgVj0hKHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmluVXNlKSxsaDtmdW5jdGlvbiBtaChhKXtsaD1hJiZhLnNoaW1jc3Nwcm9wZXJ0aWVzPyExOlZ8fCEobmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcXC82MDF8RWRnZVxcLzE1Lyl8fCF3aW5kb3cuQ1NTfHwhQ1NTLnN1cHBvcnRzfHwhQ1NTLnN1cHBvcnRzKFwiYm94LXNoYWRvd1wiLFwiMCAwIDAgdmFyKC0tZm9vKVwiKSl9dmFyIG5oO3dpbmRvdy5TaGFkeUNTUyYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkJiYobmg9d2luZG93LlNoYWR5Q1NTLmNzc0J1aWxkKTt2YXIgb2g9ISghd2luZG93LlNoYWR5Q1NTfHwhd2luZG93LlNoYWR5Q1NTLmRpc2FibGVSdW50aW1lKTtcbndpbmRvdy5TaGFkeUNTUyYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTLm5hdGl2ZUNzcz9saD13aW5kb3cuU2hhZHlDU1MubmF0aXZlQ3NzOndpbmRvdy5TaGFkeUNTUz8obWgod2luZG93LlNoYWR5Q1NTKSx3aW5kb3cuU2hhZHlDU1M9dm9pZCAwKTptaCh3aW5kb3cuV2ViQ29tcG9uZW50cyYmd2luZG93LldlYkNvbXBvbmVudHMuZmxhZ3MpO3ZhciBYPWxoO3ZhciBwaD0vKD86XnxbO1xcc3tdXFxzKikoLS1bXFx3LV0qPylcXHMqOlxccyooPzooKD86Jyg/OlxcXFwnfC4pKj8nfFwiKD86XFxcXFwifC4pKj9cInxcXChbXildKj9cXCl8W159O3tdKSspfFxceyhbXn1dKilcXH0oPzooPz1bO1xcc31dKXwkKSkvZ2kscWg9Lyg/Ol58XFxXKylAYXBwbHlcXHMqXFwoPyhbXik7XFxuXSopXFwpPy9naSxyaD0vKC0tW1xcdy1dKylcXHMqKFs6LDspXXwkKS9naSxzaD0vKGFuaW1hdGlvblxccyo6KXwoYW5pbWF0aW9uLW5hbWVcXHMqOikvLHRoPS9AbWVkaWFcXHMoLiopLyx1aD0vXFx7W159XSpcXH0vZzt2YXIgdmg9bmV3IFNldDtmdW5jdGlvbiB3aChhLGIpe2lmKCFhKXJldHVyblwiXCI7XCJzdHJpbmdcIj09PXR5cGVvZiBhJiYoYT1XZyhhKSk7YiYmeGgoYSxiKTtyZXR1cm4gZ2goYSxYKX1mdW5jdGlvbiB5aChhKXshYS5fX2Nzc1J1bGVzJiZhLnRleHRDb250ZW50JiYoYS5fX2Nzc1J1bGVzPVdnKGEudGV4dENvbnRlbnQpKTtyZXR1cm4gYS5fX2Nzc1J1bGVzfHxudWxsfWZ1bmN0aW9uIHpoKGEpe3JldHVybiEhYS5wYXJlbnQmJmEucGFyZW50LnR5cGU9PT1kaH1mdW5jdGlvbiB4aChhLGIsYyxkKXtpZihhKXt2YXIgZT0hMSxmPWEudHlwZTtpZihkJiZmPT09Ymgpe3ZhciBnPWEuc2VsZWN0b3IubWF0Y2godGgpO2cmJih3aW5kb3cubWF0Y2hNZWRpYShnWzFdKS5tYXRjaGVzfHwoZT0hMCkpfWY9PT1maD9iKGEpOmMmJmY9PT1kaD9jKGEpOmY9PT1laCYmKGU9ITApO2lmKChhPWEucnVsZXMpJiYhZSlmb3IoZT0wLGY9YS5sZW5ndGgsZz12b2lkIDA7ZTxmJiYoZz1hW2VdKTtlKyspeGgoZyxiLGMsZCl9fVxuZnVuY3Rpb24gQWgoYSxiLGMsZCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO2ImJmUuc2V0QXR0cmlidXRlKFwic2NvcGVcIixiKTtlLnRleHRDb250ZW50PWE7Q2goZSxjLGQpO3JldHVybiBlfXZhciBEaD1udWxsO2Z1bmN0aW9uIEVoKGEpe2E9ZG9jdW1lbnQuY3JlYXRlQ29tbWVudChcIiBTaGFkeSBET00gc3R5bGVzIGZvciBcIithK1wiIFwiKTt2YXIgYj1kb2N1bWVudC5oZWFkO2IuaW5zZXJ0QmVmb3JlKGEsKERoP0RoLm5leHRTaWJsaW5nOm51bGwpfHxiLmZpcnN0Q2hpbGQpO3JldHVybiBEaD1hfWZ1bmN0aW9uIENoKGEsYixjKXtiPWJ8fGRvY3VtZW50LmhlYWQ7Yi5pbnNlcnRCZWZvcmUoYSxjJiZjLm5leHRTaWJsaW5nfHxiLmZpcnN0Q2hpbGQpO0RoP2EuY29tcGFyZURvY3VtZW50UG9zaXRpb24oRGgpPT09Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcmJihEaD1hKTpEaD1hfVxuZnVuY3Rpb24gRmgoYSxiKXtmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2I8ZDtiKyspaWYoXCIoXCI9PT1hW2JdKWMrKztlbHNlIGlmKFwiKVwiPT09YVtiXSYmMD09PS0tYylyZXR1cm4gYjtyZXR1cm4tMX1mdW5jdGlvbiBHaChhLGIpe3ZhciBjPWEuaW5kZXhPZihcInZhcihcIik7aWYoLTE9PT1jKXJldHVybiBiKGEsXCJcIixcIlwiLFwiXCIpO3ZhciBkPUZoKGEsYyszKSxlPWEuc3Vic3RyaW5nKGMrNCxkKTtjPWEuc3Vic3RyaW5nKDAsYyk7YT1HaChhLnN1YnN0cmluZyhkKzEpLGIpO2Q9ZS5pbmRleE9mKFwiLFwiKTtyZXR1cm4tMT09PWQ/YihjLGUudHJpbSgpLFwiXCIsYSk6YihjLGUuc3Vic3RyaW5nKDAsZCkudHJpbSgpLGUuc3Vic3RyaW5nKGQrMSkudHJpbSgpLGEpfWZ1bmN0aW9uIEhoKGEsYil7Vj9hLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsYik6d2luZG93LlNoYWR5RE9NLm5hdGl2ZU1ldGhvZHMuc2V0QXR0cmlidXRlLmNhbGwoYSxcImNsYXNzXCIsYil9XG52YXIgSWg9d2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00ud3JhcHx8ZnVuY3Rpb24oYSl7cmV0dXJuIGF9O2Z1bmN0aW9uIEpoKGEpe3ZhciBiPWEubG9jYWxOYW1lLGM9XCJcIjtiPy0xPGIuaW5kZXhPZihcIi1cIil8fChjPWIsYj1hLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoXCJpc1wiKXx8XCJcIik6KGI9YS5pcyxjPWEuZXh0ZW5kcyk7cmV0dXJue2lzOmIsaGE6Y319ZnVuY3Rpb24gS2goYSl7Zm9yKHZhciBiPVtdLGM9XCJcIixkPTA7MDw9ZCYmZDxhLmxlbmd0aDtkKyspaWYoXCIoXCI9PT1hW2RdKXt2YXIgZT1GaChhLGQpO2MrPWEuc2xpY2UoZCxlKzEpO2Q9ZX1lbHNlXCIsXCI9PT1hW2RdPyhiLnB1c2goYyksYz1cIlwiKTpjKz1hW2RdO2MmJmIucHVzaChjKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIExoKGEpe2lmKHZvaWQgMCE9PW5oKXJldHVybiBuaDtpZih2b2lkIDA9PT1hLl9fY3NzQnVpbGQpe3ZhciBiPWEuZ2V0QXR0cmlidXRlKFwiY3NzLWJ1aWxkXCIpO2lmKGIpYS5fX2Nzc0J1aWxkPWI7ZWxzZXthOntiPVwidGVtcGxhdGVcIj09PWEubG9jYWxOYW1lP2EuY29udGVudC5maXJzdENoaWxkOmEuZmlyc3RDaGlsZDtpZihiIGluc3RhbmNlb2YgQ29tbWVudCYmKGI9Yi50ZXh0Q29udGVudC50cmltKCkuc3BsaXQoXCI6XCIpLFwiY3NzLWJ1aWxkXCI9PT1iWzBdKSl7Yj1iWzFdO2JyZWFrIGF9Yj1cIlwifWlmKFwiXCIhPT1iKXt2YXIgYz1cInRlbXBsYXRlXCI9PT1hLmxvY2FsTmFtZT9hLmNvbnRlbnQuZmlyc3RDaGlsZDphLmZpcnN0Q2hpbGQ7Yy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpfWEuX19jc3NCdWlsZD1ifX1yZXR1cm4gYS5fX2Nzc0J1aWxkfHxcIlwifVxuZnVuY3Rpb24gTWgoYSl7YT12b2lkIDA9PT1hP1wiXCI6YTtyZXR1cm5cIlwiIT09YSYmWD9WP1wic2hhZG93XCI9PT1hOlwic2hhZHlcIj09PWE6ITF9O2Z1bmN0aW9uIE5oKCl7fWZ1bmN0aW9uIE9oKGEsYil7UGgoUWgsYSxmdW5jdGlvbihjKXtSaChjLGJ8fFwiXCIpfSl9ZnVuY3Rpb24gUGgoYSxiLGMpe2Iubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmYyhiKTt2YXIgZDtcInRlbXBsYXRlXCI9PT1iLmxvY2FsTmFtZT9kPShiLmNvbnRlbnR8fGIuX2NvbnRlbnR8fGIpLmNoaWxkTm9kZXM6ZD1iLmNoaWxkcmVufHxiLmNoaWxkTm9kZXM7aWYoZClmb3IoYj0wO2I8ZC5sZW5ndGg7YisrKVBoKGEsZFtiXSxjKX1cbmZ1bmN0aW9uIFJoKGEsYixjKXtpZihiKWlmKGEuY2xhc3NMaXN0KWM/KGEuY2xhc3NMaXN0LnJlbW92ZShcInN0eWxlLXNjb3BlXCIpLGEuY2xhc3NMaXN0LnJlbW92ZShiKSk6KGEuY2xhc3NMaXN0LmFkZChcInN0eWxlLXNjb3BlXCIpLGEuY2xhc3NMaXN0LmFkZChiKSk7ZWxzZSBpZihhLmdldEF0dHJpYnV0ZSl7dmFyIGQ9YS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKTtjP2QmJihiPWQucmVwbGFjZShcInN0eWxlLXNjb3BlXCIsXCJcIikucmVwbGFjZShiLFwiXCIpLEhoKGEsYikpOkhoKGEsKGQ/ZCtcIiBcIjpcIlwiKStcInN0eWxlLXNjb3BlIFwiK2IpfX1mdW5jdGlvbiBTaChhLGIsYyl7UGgoUWgsYSxmdW5jdGlvbihkKXtSaChkLGIsITApO1JoKGQsYyl9KX1mdW5jdGlvbiBUaChhLGIpe1BoKFFoLGEsZnVuY3Rpb24oYyl7UmgoYyxifHxcIlwiLCEwKX0pfVxuZnVuY3Rpb24gVWgoYSxiLGMsZCxlKXt2YXIgZj1RaDtlPXZvaWQgMD09PWU/XCJcIjplO1wiXCI9PT1lJiYoVnx8XCJzaGFkeVwiPT09KHZvaWQgMD09PWQ/XCJcIjpkKT9lPXdoKGIsYyk6KGE9SmgoYSksZT1WaChmLGIsYS5pcyxhLmhhLGMpK1wiXFxuXFxuXCIpKTtyZXR1cm4gZS50cmltKCl9ZnVuY3Rpb24gVmgoYSxiLGMsZCxlKXt2YXIgZj1XaChjLGQpO2M9Yz9cIi5cIitjOlwiXCI7cmV0dXJuIHdoKGIsZnVuY3Rpb24oZyl7Zy5pfHwoZy5zZWxlY3Rvcj1nLkY9WGgoYSxnLGEuaCxjLGYpLGcuaT0hMCk7ZSYmZShnLGMsZil9KX1mdW5jdGlvbiBXaChhLGIpe3JldHVybiBiP1wiW2lzPVwiK2ErXCJdXCI6YX1cbmZ1bmN0aW9uIFhoKGEsYixjLGQsZSl7dmFyIGY9S2goYi5zZWxlY3Rvcik7aWYoIXpoKGIpKXtiPTA7Zm9yKHZhciBnPWYubGVuZ3RoLGg9dm9pZCAwO2I8ZyYmKGg9ZltiXSk7YisrKWZbYl09Yy5jYWxsKGEsaCxkLGUpfXJldHVybiBmLmZpbHRlcihmdW5jdGlvbihrKXtyZXR1cm4hIWt9KS5qb2luKFwiLFwiKX1mdW5jdGlvbiBZaChhKXtyZXR1cm4gYS5yZXBsYWNlKFpoLGZ1bmN0aW9uKGIsYyxkKXstMTxkLmluZGV4T2YoXCIrXCIpP2Q9ZC5yZXBsYWNlKC9cXCsvZyxcIl9fX1wiKTotMTxkLmluZGV4T2YoXCJfX19cIikmJihkPWQucmVwbGFjZSgvX19fL2csXCIrXCIpKTtyZXR1cm5cIjpcIitjK1wiKFwiK2QrXCIpXCJ9KX1cbmZ1bmN0aW9uICRoKGEpe2Zvcih2YXIgYj1bXSxjO2M9YS5tYXRjaChhaSk7KXt2YXIgZD1jLmluZGV4LGU9RmgoYSxkKTtpZigtMT09PWUpdGhyb3cgRXJyb3IoYy5pbnB1dCtcIiBzZWxlY3RvciBtaXNzaW5nICcpJ1wiKTtjPWEuc2xpY2UoZCxlKzEpO2E9YS5yZXBsYWNlKGMsXCJcXHVlMDAwXCIpO2IucHVzaChjKX1yZXR1cm57QmE6YSxtYXRjaGVzOmJ9fWZ1bmN0aW9uIGJpKGEsYil7dmFyIGM9YS5zcGxpdChcIlxcdWUwMDBcIik7cmV0dXJuIGIucmVkdWNlKGZ1bmN0aW9uKGQsZSxmKXtyZXR1cm4gZCtlK2NbZisxXX0sY1swXSl9XG5OaC5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ITE7YT1hLnRyaW0oKTt2YXIgZT1aaC50ZXN0KGEpO2UmJihhPWEucmVwbGFjZShaaCxmdW5jdGlvbihoLGssbCl7cmV0dXJuXCI6XCIraytcIihcIitsLnJlcGxhY2UoL1xccy9nLFwiXCIpK1wiKVwifSksYT1ZaChhKSk7dmFyIGY9YWkudGVzdChhKTtpZihmKXt2YXIgZz0kaChhKTthPWcuQmE7Zz1nLm1hdGNoZXN9YT1hLnJlcGxhY2UoY2ksXCI6aG9zdCAkMVwiKTthPWEucmVwbGFjZShkaSxmdW5jdGlvbihoLGssbCl7ZHx8KGg9ZWkobCxrLGIsYyksZD1kfHxoLnN0b3Asaz1oLlVhLGw9aC52YWx1ZSk7cmV0dXJuIGsrbH0pO2YmJihhPWJpKGEsZykpO2UmJihhPVloKGEpKTtyZXR1cm4gYT1hLnJlcGxhY2UoZmksZnVuY3Rpb24oaCxrLGwsbSl7cmV0dXJuJ1tkaXI9XCInK2wrJ1wiXSAnK2srbStcIiwgXCIraysnW2Rpcj1cIicrbCsnXCJdJyttfSl9O1xuZnVuY3Rpb24gZWkoYSxiLGMsZCl7dmFyIGU9YS5pbmRleE9mKFwiOjpzbG90dGVkXCIpOzA8PWEuaW5kZXhPZihcIjpob3N0XCIpP2E9Z2koYSxkKTowIT09ZSYmKGE9Yz9oaShhLGMpOmEpO2M9ITE7MDw9ZSYmKGI9XCJcIixjPSEwKTtpZihjKXt2YXIgZj0hMDtjJiYoYT1hLnJlcGxhY2UoaWksZnVuY3Rpb24oZyxoKXtyZXR1cm5cIiA+IFwiK2h9KSl9cmV0dXJue3ZhbHVlOmEsVWE6YixzdG9wOmZ9fWZ1bmN0aW9uIGhpKGEsYil7YT1hLnNwbGl0KC8oXFxbLis/XFxdKS8pO2Zvcih2YXIgYz1bXSxkPTA7ZDxhLmxlbmd0aDtkKyspaWYoMT09PWQlMiljLnB1c2goYVtkXSk7ZWxzZXt2YXIgZT1hW2RdO2lmKFwiXCIhPT1lfHxkIT09YS5sZW5ndGgtMSllPWUuc3BsaXQoXCI6XCIpLGVbMF0rPWIsYy5wdXNoKGUuam9pbihcIjpcIikpfXJldHVybiBjLmpvaW4oXCJcIil9XG5mdW5jdGlvbiBnaShhLGIpe3ZhciBjPWEubWF0Y2goamkpO3JldHVybihjPWMmJmNbMl0udHJpbSgpfHxcIlwiKT9jWzBdLm1hdGNoKGtpKT9hLnJlcGxhY2UoamksZnVuY3Rpb24oZCxlLGYpe3JldHVybiBiK2Z9KTpjLnNwbGl0KGtpKVswXT09PWI/YzpcInNob3VsZF9ub3RfbWF0Y2hcIjphLnJlcGxhY2UoXCI6aG9zdFwiLGIpfWZ1bmN0aW9uIGxpKGEpe1wiOnJvb3RcIj09PWEuc2VsZWN0b3ImJihhLnNlbGVjdG9yPVwiaHRtbFwiKX1OaC5wcm90b3R5cGUuaT1mdW5jdGlvbihhKXtyZXR1cm4gYS5tYXRjaChcIjpob3N0XCIpP1wiXCI6YS5tYXRjaChcIjo6c2xvdHRlZFwiKT90aGlzLmgoYSxcIjpub3QoLnN0eWxlLXNjb3BlKVwiKTpoaShhLnRyaW0oKSxcIjpub3QoLnN0eWxlLXNjb3BlKVwiKX07ZWEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoTmgucHJvdG90eXBlLHtnOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cInN0eWxlLXNjb3BlXCJ9fX0pO1xudmFyIFpoPS86KG50aFstXFx3XSspXFwoKFteKV0rKVxcKS8sZGk9LyhefFtcXHM+K35dKykoKD86XFxbLis/XFxdfFteXFxzPit+PVtdKSspL2csa2k9L1tbLjojKl0vLGNpPS9eKDo6c2xvdHRlZCkvLGppPS8oOmhvc3QpKD86XFwoKCg/OlxcKFteKShdKlxcKXxbXikoXSopKz8pXFwpKS8saWk9Lyg/Ojo6c2xvdHRlZCkoPzpcXCgoKD86XFwoW14pKF0qXFwpfFteKShdKikrPylcXCkpLyxmaT0vKC4qKTpkaXJcXCgoPzoobHRyfHJ0bCkpXFwpKC4qKS8sYWk9LzooPzptYXRjaGVzfGFueXwtKD86d2Via2l0fG1veiktYW55KS8sUWg9bmV3IE5oO2Z1bmN0aW9uIG1pKGEsYixjLGQsZSl7dGhpcy5NPWF8fG51bGw7dGhpcy5oPWJ8fG51bGw7dGhpcy56YT1jfHxbXTt0aGlzLks9bnVsbDt0aGlzLmNzc0J1aWxkPWV8fFwiXCI7dGhpcy5oYT1kfHxcIlwiO3RoaXMuZz10aGlzLkw9dGhpcy5SPW51bGx9ZnVuY3Rpb24gbmkoYSl7cmV0dXJuIGE/YS5fX3N0eWxlSW5mbzpudWxsfWZ1bmN0aW9uIG9pKGEsYil7cmV0dXJuIGEuX19zdHlsZUluZm89Yn1taS5wcm90b3R5cGUuaT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19O21pLnByb3RvdHlwZS5fZ2V0U3R5bGVSdWxlcz1taS5wcm90b3R5cGUuaTtmdW5jdGlvbiBwaShhKXt2YXIgYj10aGlzLm1hdGNoZXN8fHRoaXMubWF0Y2hlc1NlbGVjdG9yfHx0aGlzLm1vek1hdGNoZXNTZWxlY3Rvcnx8dGhpcy5tc01hdGNoZXNTZWxlY3Rvcnx8dGhpcy5vTWF0Y2hlc1NlbGVjdG9yfHx0aGlzLndlYmtpdE1hdGNoZXNTZWxlY3RvcjtyZXR1cm4gYiYmYi5jYWxsKHRoaXMsYSl9dmFyIHFpPS86aG9zdFxccyo+XFxzKi8scmk9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaChcIlRyaWRlbnRcIik7ZnVuY3Rpb24gc2koKXt9ZnVuY3Rpb24gdGkoYSl7dmFyIGI9e30sYz1bXSxkPTA7eGgoYSxmdW5jdGlvbihmKXt1aShmKTtmLmluZGV4PWQrKztmPWYuRC5jc3NUZXh0O2Zvcih2YXIgZztnPXJoLmV4ZWMoZik7KXt2YXIgaD1nWzFdO1wiOlwiIT09Z1syXSYmKGJbaF09ITApfX0sZnVuY3Rpb24oZil7Yy5wdXNoKGYpfSk7YS5oPWM7YT1bXTtmb3IodmFyIGUgaW4gYilhLnB1c2goZSk7cmV0dXJuIGF9XG5mdW5jdGlvbiB1aShhKXtpZighYS5EKXt2YXIgYj17fSxjPXt9O3ZpKGEsYykmJihiLlA9YyxhLnJ1bGVzPW51bGwpO2IuY3NzVGV4dD1hLnBhcnNlZENzc1RleHQucmVwbGFjZSh1aCxcIlwiKS5yZXBsYWNlKHBoLFwiXCIpO2EuRD1ifX1mdW5jdGlvbiB2aShhLGIpe3ZhciBjPWEuRDtpZihjKXtpZihjLlApcmV0dXJuIE9iamVjdC5hc3NpZ24oYixjLlApLCEwfWVsc2V7Yz1hLnBhcnNlZENzc1RleHQ7Zm9yKHZhciBkO2E9cGguZXhlYyhjKTspe2Q9KGFbMl18fGFbM10pLnRyaW0oKTtpZihcImluaGVyaXRcIiE9PWR8fFwidW5zZXRcIiE9PWQpYlthWzFdLnRyaW0oKV09ZDtkPSEwfXJldHVybiBkfX1cbmZ1bmN0aW9uIHdpKGEsYixjKXtiJiYoYj0wPD1iLmluZGV4T2YoXCI7XCIpP3hpKGEsYixjKTpHaChiLGZ1bmN0aW9uKGQsZSxmLGcpe2lmKCFlKXJldHVybiBkK2c7KGU9d2koYSxjW2VdLGMpKSYmXCJpbml0aWFsXCIhPT1lP1wiYXBwbHktc2hpbS1pbmhlcml0XCI9PT1lJiYoZT1cImluaGVyaXRcIik6ZT13aShhLGNbZl18fGYsYyl8fGY7cmV0dXJuIGQrKGV8fFwiXCIpK2d9KSk7cmV0dXJuIGImJmIudHJpbSgpfHxcIlwifVxuZnVuY3Rpb24geGkoYSxiLGMpe2I9Yi5zcGxpdChcIjtcIik7Zm9yKHZhciBkPTAsZSxmO2Q8Yi5sZW5ndGg7ZCsrKWlmKGU9YltkXSl7cWgubGFzdEluZGV4PTA7aWYoZj1xaC5leGVjKGUpKWU9d2koYSxjW2ZbMV1dLGMpO2Vsc2UgaWYoZj1lLmluZGV4T2YoXCI6XCIpLC0xIT09Zil7dmFyIGc9ZS5zdWJzdHJpbmcoZik7Zz1nLnRyaW0oKTtnPXdpKGEsZyxjKXx8ZztlPWUuc3Vic3RyaW5nKDAsZikrZ31iW2RdPWUmJmUubGFzdEluZGV4T2YoXCI7XCIpPT09ZS5sZW5ndGgtMT9lLnNsaWNlKDAsLTEpOmV8fFwiXCJ9cmV0dXJuIGIuam9pbihcIjtcIil9XG5mdW5jdGlvbiB5aShhLGIpe3ZhciBjPXt9LGQ9W107eGgoYSxmdW5jdGlvbihlKXtlLkR8fHVpKGUpO3ZhciBmPWUuRnx8ZS5wYXJzZWRTZWxlY3RvcjtiJiZlLkQuUCYmZiYmcGkuY2FsbChiLGYpJiYodmkoZSxjKSxlPWUuaW5kZXgsZj1wYXJzZUludChlLzMyLDEwKSxkW2ZdPShkW2ZdfHwwKXwxPDxlJTMyKX0sbnVsbCwhMCk7cmV0dXJue1A6YyxrZXk6ZH19XG5mdW5jdGlvbiB6aShhLGIsYyxkKXtiLkR8fHVpKGIpO2lmKGIuRC5QKXt2YXIgZT1KaChhKTthPWUuaXM7ZT1lLmhhO2U9YT9XaChhLGUpOlwiaHRtbFwiO3ZhciBmPWIucGFyc2VkU2VsZWN0b3I7dmFyIGc9ISFmLm1hdGNoKHFpKXx8XCJodG1sXCI9PT1lJiYtMTxmLmluZGV4T2YoXCJodG1sXCIpO3ZhciBoPTA9PT1mLmluZGV4T2YoXCI6aG9zdFwiKSYmIWc7XCJzaGFkeVwiPT09YyYmKGc9Zj09PWUrXCIgPiAqLlwiK2V8fC0xIT09Zi5pbmRleE9mKFwiaHRtbFwiKSxoPSFnJiYwPT09Zi5pbmRleE9mKGUpKTtpZihnfHxoKWM9ZSxoJiYoYi5GfHwoYi5GPVhoKFFoLGIsUWguaCxhP1wiLlwiK2E6XCJcIixlKSksYz1iLkZ8fGUpLGcmJlwiaHRtbFwiPT09ZSYmKGM9Yi5GfHxiLk8pLGQoe0JhOmMsYWI6aCxxYjpnfSl9fVxuZnVuY3Rpb24gQWkoYSxiLGMpe3ZhciBkPXt9LGU9e307eGgoYixmdW5jdGlvbihmKXt6aShhLGYsYyxmdW5jdGlvbihnKXtwaS5jYWxsKGEuX2VsZW1lbnR8fGEsZy5CYSkmJihnLmFiP3ZpKGYsZCk6dmkoZixlKSl9KX0sbnVsbCwhMCk7cmV0dXJue2hiOmUsWmE6ZH19XG5mdW5jdGlvbiBCaShhLGIsYyxkKXt2YXIgZT1KaChiKSxmPVdoKGUuaXMsZS5oYSksZz1uZXcgUmVnRXhwKFwiKD86XnxbXi4jWzpdKVwiKyhiLmV4dGVuZHM/XCJcXFxcXCIrZi5zbGljZSgwLC0xKStcIlxcXFxdXCI6ZikrXCIoJHxbLjpbXFxcXHM+K35dKVwiKSxoPW5pKGIpO2U9aC5NO2g9aC5jc3NCdWlsZDt2YXIgaz1DaShlLGQpO3JldHVybiBVaChiLGUsZnVuY3Rpb24obCl7dmFyIG09XCJcIjtsLkR8fHVpKGwpO2wuRC5jc3NUZXh0JiYobT14aShhLGwuRC5jc3NUZXh0LGMpKTtsLmNzc1RleHQ9bTtpZighViYmIXpoKGwpJiZsLmNzc1RleHQpe3ZhciBxPW09bC5jc3NUZXh0O251bGw9PWwuSWEmJihsLklhPXNoLnRlc3QobSkpO2lmKGwuSWEpaWYobnVsbD09bC5wYSl7bC5wYT1bXTtmb3IodmFyIEggaW4gaylxPWtbSF0scT1xKG0pLG0hPT1xJiYobT1xLGwucGEucHVzaChIKSl9ZWxzZXtmb3IoSD0wO0g8bC5wYS5sZW5ndGg7KytIKXE9a1tsLnBhW0hdXSxtPXEobSk7cT1tfWwuY3NzVGV4dD1xO2wuRj1cbmwuRnx8bC5zZWxlY3RvcjttPVwiLlwiK2Q7SD1LaChsLkYpO3E9MDtmb3IodmFyIEM9SC5sZW5ndGgsdD12b2lkIDA7cTxDJiYodD1IW3FdKTtxKyspSFtxXT10Lm1hdGNoKGcpP3QucmVwbGFjZShmLG0pOm0rXCIgXCIrdDtsLnNlbGVjdG9yPUguam9pbihcIixcIil9fSxoKX1mdW5jdGlvbiBDaShhLGIpe2E9YS5oO3ZhciBjPXt9O2lmKCFWJiZhKWZvcih2YXIgZD0wLGU9YVtkXTtkPGEubGVuZ3RoO2U9YVsrK2RdKXt2YXIgZj1lLGc9YjtmLnU9bmV3IFJlZ0V4cChcIlxcXFxiXCIrZi5rZXlmcmFtZXNOYW1lK1wiKD8hXFxcXEJ8LSlcIixcImdcIik7Zi5nPWYua2V5ZnJhbWVzTmFtZStcIi1cIitnO2YuRj1mLkZ8fGYuc2VsZWN0b3I7Zi5zZWxlY3Rvcj1mLkYucmVwbGFjZShmLmtleWZyYW1lc05hbWUsZi5nKTtjW2Uua2V5ZnJhbWVzTmFtZV09RGkoZSl9cmV0dXJuIGN9ZnVuY3Rpb24gRGkoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybiBiLnJlcGxhY2UoYS51LGEuZyl9fVxuZnVuY3Rpb24gRWkoYSxiKXt2YXIgYz1GaSxkPXloKGEpO2EudGV4dENvbnRlbnQ9d2goZCxmdW5jdGlvbihlKXt2YXIgZj1lLmNzc1RleHQ9ZS5wYXJzZWRDc3NUZXh0O2UuRCYmZS5ELmNzc1RleHQmJihmPWYucmVwbGFjZShoaCxcIlwiKS5yZXBsYWNlKGloLFwiXCIpLGUuY3NzVGV4dD14aShjLGYsYikpfSl9ZWEuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoc2kucHJvdG90eXBlLHtnOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIngtc2NvcGVcIn19fSk7dmFyIEZpPW5ldyBzaTt2YXIgR2k9e30sSGk9d2luZG93LmN1c3RvbUVsZW1lbnRzO2lmKEhpJiYhViYmIW9oKXt2YXIgSWk9SGkuZGVmaW5lO0hpLmRlZmluZT1mdW5jdGlvbihhLGIsYyl7R2lbYV18fChHaVthXT1FaChhKSk7SWkuY2FsbChIaSxhLGIsYyl9fTtmdW5jdGlvbiBKaSgpe3RoaXMuY2FjaGU9e319SmkucHJvdG90eXBlLnN0b3JlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuY2FjaGVbYV18fFtdO2UucHVzaCh7UDpiLHN0eWxlRWxlbWVudDpjLEw6ZH0pOzEwMDxlLmxlbmd0aCYmZS5zaGlmdCgpO3RoaXMuY2FjaGVbYV09ZX07ZnVuY3Rpb24gS2koKXt9dmFyIExpPW5ldyBSZWdFeHAoUWguZytcIlxcXFxzKihbXlxcXFxzXSopXCIpO2Z1bmN0aW9uIE1pKGEpe3JldHVybihhPShhLmNsYXNzTGlzdCYmYS5jbGFzc0xpc3QudmFsdWU/YS5jbGFzc0xpc3QudmFsdWU6YS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIikubWF0Y2goTGkpKT9hWzFdOlwiXCJ9ZnVuY3Rpb24gTmkoYSl7dmFyIGI9SWgoYSkuZ2V0Um9vdE5vZGUoKTtyZXR1cm4gYj09PWF8fGI9PT1hLm93bmVyRG9jdW1lbnQ/XCJcIjooYT1iLmhvc3QpP0poKGEpLmlzOlwiXCJ9XG5mdW5jdGlvbiBPaShhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGM9YVtiXTtpZihjLnRhcmdldCE9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmYy50YXJnZXQhPT1kb2N1bWVudC5oZWFkKWZvcih2YXIgZD0wO2Q8Yy5hZGRlZE5vZGVzLmxlbmd0aDtkKyspe3ZhciBlPWMuYWRkZWROb2Rlc1tkXTtpZihlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe3ZhciBmPWUuZ2V0Um9vdE5vZGUoKSxnPU1pKGUpO2lmKGcmJmY9PT1lLm93bmVyRG9jdW1lbnQmJihcInN0eWxlXCIhPT1lLmxvY2FsTmFtZSYmXCJ0ZW1wbGF0ZVwiIT09ZS5sb2NhbE5hbWV8fFwiXCI9PT1MaChlKSkpVGgoZSxnKTtlbHNlIGlmKGYgaW5zdGFuY2VvZiBTaGFkb3dSb290KWZvcihmPU5pKGUpLGYhPT1nJiZTaChlLGcsZiksZT13aW5kb3cuU2hhZHlET00ubmF0aXZlTWV0aG9kcy5xdWVyeVNlbGVjdG9yQWxsLmNhbGwoZSxcIjpub3QoLlwiK1FoLmcrXCIpXCIpLGc9MDtnPGUubGVuZ3RoO2crKyl7Zj1lW2ddO1xudmFyIGg9TmkoZik7aCYmUmgoZixoKX19fX19XG5pZighKFZ8fHdpbmRvdy5TaGFkeURPTSYmd2luZG93LlNoYWR5RE9NLmhhbmRsZXNEeW5hbWljU2NvcGluZykpe3ZhciBQaT1uZXcgTXV0YXRpb25PYnNlcnZlcihPaSksUWk9ZnVuY3Rpb24oYSl7UGkub2JzZXJ2ZShhLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pfTtpZih3aW5kb3cuY3VzdG9tRWxlbWVudHMmJiF3aW5kb3cuY3VzdG9tRWxlbWVudHMucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjaylRaShkb2N1bWVudCk7ZWxzZXt2YXIgUmk9ZnVuY3Rpb24oKXtRaShkb2N1bWVudC5ib2R5KX07d2luZG93LkhUTUxJbXBvcnRzP3dpbmRvdy5IVE1MSW1wb3J0cy53aGVuUmVhZHkoUmkpOnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2lmKFwibG9hZGluZ1wiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSl7dmFyIGE9ZnVuY3Rpb24oKXtSaSgpO2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZWFkeXN0YXRlY2hhbmdlXCIsYSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJyZWFkeXN0YXRlY2hhbmdlXCIsXG5hKX1lbHNlIFJpKCl9KX1LaT1mdW5jdGlvbigpe09pKFBpLnRha2VSZWNvcmRzKCkpfX07dmFyIFNpPXt9O3ZhciBUaT1Qcm9taXNlLnJlc29sdmUoKTtmdW5jdGlvbiBVaShhKXtpZihhPVNpW2FdKWEuX2FwcGx5U2hpbUN1cnJlbnRWZXJzaW9uPWEuX2FwcGx5U2hpbUN1cnJlbnRWZXJzaW9ufHwwLGEuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uPWEuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9ufHwwLGEuX2FwcGx5U2hpbU5leHRWZXJzaW9uPShhLl9hcHBseVNoaW1OZXh0VmVyc2lvbnx8MCkrMX1mdW5jdGlvbiBWaShhKXtyZXR1cm4gYS5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249PT1hLl9hcHBseVNoaW1OZXh0VmVyc2lvbn1mdW5jdGlvbiBXaShhKXthLl9hcHBseVNoaW1WYWxpZGF0aW5nVmVyc2lvbj1hLl9hcHBseVNoaW1OZXh0VmVyc2lvbjthLl92YWxpZGF0aW5nfHwoYS5fdmFsaWRhdGluZz0hMCxUaS50aGVuKGZ1bmN0aW9uKCl7YS5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249YS5fYXBwbHlTaGltTmV4dFZlcnNpb247YS5fdmFsaWRhdGluZz0hMX0pKX07dmFyIFhpPXt9LFlpPW5ldyBKaTtmdW5jdGlvbiBZKCl7dGhpcy5kYT17fTt0aGlzLmk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3ZhciBhPW5ldyBWZzthLnJ1bGVzPVtdO3RoaXMudT1vaSh0aGlzLmksbmV3IG1pKGEpKTt0aGlzLk89ITE7dGhpcy5nPXRoaXMuaD1udWxsfXY9WS5wcm90b3R5cGU7di5mbHVzaD1mdW5jdGlvbigpe0tpKCl9O3YuWGE9ZnVuY3Rpb24oYSl7cmV0dXJuIHloKGEpfTt2LmxiPWZ1bmN0aW9uKGEpe3JldHVybiB3aChhKX07di5wcmVwYXJlVGVtcGxhdGU9ZnVuY3Rpb24oYSxiLGMpe3RoaXMucHJlcGFyZVRlbXBsYXRlRG9tKGEsYik7dGhpcy5wcmVwYXJlVGVtcGxhdGVTdHlsZXMoYSxiLGMpfTtcbnYucHJlcGFyZVRlbXBsYXRlU3R5bGVzPWZ1bmN0aW9uKGEsYixjKXtpZighYS5fcHJlcGFyZWQmJiFvaCl7Vnx8R2lbYl18fChHaVtiXT1FaChiKSk7YS5fcHJlcGFyZWQ9ITA7YS5uYW1lPWI7YS5leHRlbmRzPWM7U2lbYl09YTt2YXIgZD1MaChhKSxlPU1oKGQpO2M9e2lzOmIsZXh0ZW5kczpjfTtmb3IodmFyIGY9W10sZz1hLmNvbnRlbnQucXVlcnlTZWxlY3RvckFsbChcInN0eWxlXCIpLGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIGs9Z1toXTtpZihrLmhhc0F0dHJpYnV0ZShcInNoYWR5LXVuc2NvcGVkXCIpKXtpZighVil7dmFyIGw9ay50ZXh0Q29udGVudDtpZighdmguaGFzKGwpKXt2aC5hZGQobCk7dmFyIG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO20uc2V0QXR0cmlidXRlKFwic2hhZHktdW5zY29wZWRcIixcIlwiKTttLnRleHRDb250ZW50PWw7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChtKX1rLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoayl9fWVsc2UgZi5wdXNoKGsudGV4dENvbnRlbnQpLFxuay5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGspfWY9Zi5qb2luKFwiXCIpLnRyaW0oKSsoWGlbYl18fFwiXCIpO1ppKHRoaXMpO2lmKCFlKXtpZihnPSFkKWc9cWgudGVzdChmKXx8cGgudGVzdChmKSxxaC5sYXN0SW5kZXg9MCxwaC5sYXN0SW5kZXg9MDtoPVdnKGYpO2cmJlgmJnRoaXMuaCYmdGhpcy5oLnRyYW5zZm9ybVJ1bGVzKGgsYik7YS5fc3R5bGVBc3Q9aH1nPVtdO1h8fChnPXRpKGEuX3N0eWxlQXN0KSk7aWYoIWcubGVuZ3RofHxYKWg9Vj9hLmNvbnRlbnQ6bnVsbCxiPUdpW2JdfHxudWxsLGQ9VWgoYyxhLl9zdHlsZUFzdCxudWxsLGQsZT9mOlwiXCIpLGQ9ZC5sZW5ndGg/QWgoZCxjLmlzLGgsYik6bnVsbCxhLl9zdHlsZT1kO2EuZz1nfX07di5mYj1mdW5jdGlvbihhLGIpe1hpW2JdPWEuam9pbihcIiBcIil9O1xudi5wcmVwYXJlVGVtcGxhdGVEb209ZnVuY3Rpb24oYSxiKXtpZighb2gpe3ZhciBjPUxoKGEpO1Z8fFwic2hhZHlcIj09PWN8fGEuX2RvbVByZXBhcmVkfHwoYS5fZG9tUHJlcGFyZWQ9ITAsT2goYS5jb250ZW50LGIpKX19O2Z1bmN0aW9uICRpKGEpe3ZhciBiPUpoKGEpLGM9Yi5pcztiPWIuaGE7dmFyIGQ9R2lbY118fG51bGwsZT1TaVtjXTtpZihlKXtjPWUuX3N0eWxlQXN0O3ZhciBmPWUuZztlPUxoKGUpO2I9bmV3IG1pKGMsZCxmLGIsZSk7b2koYSxiKTtyZXR1cm4gYn19XG5mdW5jdGlvbiBhaihhKXshYS5nJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSYmKGEuZz13aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2UsYS5nLnRyYW5zZm9ybUNhbGxiYWNrPWZ1bmN0aW9uKGIpe2EuTWEoYil9LGEuZy52YWxpZGF0ZUNhbGxiYWNrPWZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7KGEuZy5lbnF1ZXVlZHx8YS5PKSYmYS5mbHVzaEN1c3RvbVN0eWxlcygpfSl9KX1mdW5jdGlvbiBaaShhKXtpZighYS5oJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5BcHBseVNoaW0pe2EuaD13aW5kb3cuU2hhZHlDU1MuQXBwbHlTaGltO2EuaC5pbnZhbGlkQ2FsbGJhY2s9VWk7dmFyIGI9ITB9ZWxzZSBiPSExO2FqKGEpO3JldHVybiBifVxudi5mbHVzaEN1c3RvbVN0eWxlcz1mdW5jdGlvbigpe2lmKCFvaCl7dmFyIGE9WmkodGhpcyk7aWYodGhpcy5nKXt2YXIgYj10aGlzLmcucHJvY2Vzc1N0eWxlcygpO2lmKChhfHx0aGlzLmcuZW5xdWV1ZWQpJiYhTWgodGhpcy51LmNzc0J1aWxkKSl7aWYoWCl7aWYoIXRoaXMudS5jc3NCdWlsZClmb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKXt2YXIgYz10aGlzLmcuZ2V0U3R5bGVGb3JDdXN0b21TdHlsZShiW2FdKTtpZihjJiZYJiZ0aGlzLmgpe3ZhciBkPXloKGMpO1ppKHRoaXMpO3RoaXMuaC50cmFuc2Zvcm1SdWxlcyhkKTtjLnRleHRDb250ZW50PXdoKGQpfX19ZWxzZXtiaih0aGlzLGIpO2NqKHRoaXMsdGhpcy5pLHRoaXMudSk7Zm9yKGE9MDthPGIubGVuZ3RoO2ErKykoYz10aGlzLmcuZ2V0U3R5bGVGb3JDdXN0b21TdHlsZShiW2FdKSkmJkVpKGMsdGhpcy51LlIpO3RoaXMuTyYmdGhpcy5zdHlsZURvY3VtZW50KCl9dGhpcy5nLmVucXVldWVkPSExfX19fTtcbmZ1bmN0aW9uIGJqKGEsYil7Yj1iLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYS5nLmdldFN0eWxlRm9yQ3VzdG9tU3R5bGUoYyl9KS5maWx0ZXIoZnVuY3Rpb24oYyl7cmV0dXJuISFjfSk7Yi5zb3J0KGZ1bmN0aW9uKGMsZCl7Yz1kLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGMpO3JldHVybiBjJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HPzE6YyZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORz8tMTowfSk7YS51Lk0ucnVsZXM9Yi5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIHloKGMpfSl9XG52LnN0eWxlRWxlbWVudD1mdW5jdGlvbihhLGIpe2lmKG9oKXtpZihiKXtuaShhKXx8b2koYSxuZXcgbWkobnVsbCkpO3ZhciBjPW5pKGEpO2MuSz1jLkt8fHt9O09iamVjdC5hc3NpZ24oYy5LLGIpO2RqKHRoaXMsYSxjKX19ZWxzZSBpZihjPW5pKGEpfHwkaShhKSlpZihhIT09dGhpcy5pJiYodGhpcy5PPSEwKSxiJiYoYy5LPWMuS3x8e30sT2JqZWN0LmFzc2lnbihjLkssYikpLFgpZGoodGhpcyxhLGMpO2Vsc2UgaWYodGhpcy5mbHVzaCgpLGNqKHRoaXMsYSxjKSxjLnphJiZjLnphLmxlbmd0aCl7Yj1KaChhKS5pczt2YXIgZDthOntpZihkPVlpLmNhY2hlW2JdKWZvcih2YXIgZT1kLmxlbmd0aC0xOzA8PWU7ZS0tKXt2YXIgZj1kW2VdO2I6e3ZhciBnPWMuemE7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciBrPWdbaF07aWYoZi5QW2tdIT09Yy5SW2tdKXtnPSExO2JyZWFrIGJ9fWc9ITB9aWYoZyl7ZD1mO2JyZWFrIGF9fWQ9dm9pZCAwfWc9ZD9kLnN0eWxlRWxlbWVudDpcbm51bGw7ZT1jLkw7KGY9ZCYmZC5MKXx8KGY9dGhpcy5kYVtiXT0odGhpcy5kYVtiXXx8MCkrMSxmPWIrXCItXCIrZik7Yy5MPWY7Zj1jLkw7aD1GaTtoPWc/Zy50ZXh0Q29udGVudHx8XCJcIjpCaShoLGEsYy5SLGYpO2s9bmkoYSk7dmFyIGw9ay5nO2wmJiFWJiZsIT09ZyYmKGwuX3VzZUNvdW50LS0sMD49bC5fdXNlQ291bnQmJmwucGFyZW50Tm9kZSYmbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpKTtWP2suZz8oay5nLnRleHRDb250ZW50PWgsZz1rLmcpOmgmJihnPUFoKGgsZixhLnNoYWRvd1Jvb3Qsay5oKSk6Zz9nLnBhcmVudE5vZGV8fChyaSYmLTE8aC5pbmRleE9mKFwiQG1lZGlhXCIpJiYoZy50ZXh0Q29udGVudD1oKSxDaChnLG51bGwsay5oKSk6aCYmKGc9QWgoaCxmLG51bGwsay5oKSk7ZyYmKGcuX3VzZUNvdW50PWcuX3VzZUNvdW50fHwwLGsuZyE9ZyYmZy5fdXNlQ291bnQrKyxrLmc9Zyk7Zj1nO1Z8fChnPWMuTCxrPWg9YS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIixlJiZcbihrPWgucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXHMqeC1zY29wZVxcXFxzKlwiK2UrXCJcXFxccypcIixcImdcIiksXCIgXCIpKSxrKz0oaz9cIiBcIjpcIlwiKStcIngtc2NvcGUgXCIrZyxoIT09ayYmSGgoYSxrKSk7ZHx8WWkuc3RvcmUoYixjLlIsZixjLkwpfX07XG5mdW5jdGlvbiBkaihhLGIsYyl7dmFyIGQ9SmgoYikuaXM7aWYoYy5LKXt2YXIgZT1jLkssZjtmb3IoZiBpbiBlKW51bGw9PT1mP2Iuc3R5bGUucmVtb3ZlUHJvcGVydHkoZik6Yi5zdHlsZS5zZXRQcm9wZXJ0eShmLGVbZl0pfWU9U2lbZF07aWYoISghZSYmYiE9PWEuaXx8ZSYmXCJcIiE9PUxoKGUpKSYmZSYmZS5fc3R5bGUmJiFWaShlKSl7aWYoVmkoZSl8fGUuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uIT09ZS5fYXBwbHlTaGltTmV4dFZlcnNpb24pWmkoYSksYS5oJiZhLmgudHJhbnNmb3JtUnVsZXMoZS5fc3R5bGVBc3QsZCksZS5fc3R5bGUudGV4dENvbnRlbnQ9VWgoYixjLk0pLFdpKGUpO1YmJihhPWIuc2hhZG93Um9vdCkmJihhPWEucXVlcnlTZWxlY3RvcihcInN0eWxlXCIpKSYmKGEudGV4dENvbnRlbnQ9VWgoYixjLk0pKTtjLk09ZS5fc3R5bGVBc3R9fVxuZnVuY3Rpb24gZWooYSxiKXtyZXR1cm4oYj1JaChiKS5nZXRSb290Tm9kZSgpLmhvc3QpP25pKGIpfHwkaShiKT9iOmVqKGEsYik6YS5pfWZ1bmN0aW9uIGNqKGEsYixjKXt2YXIgZD1laihhLGIpLGU9bmkoZCksZj1lLlI7ZD09PWEuaXx8Znx8KGNqKGEsZCxlKSxmPWUuUik7YT1PYmplY3QuY3JlYXRlKGZ8fG51bGwpO2Q9QWkoYixjLk0sYy5jc3NCdWlsZCk7Yj15aShlLk0sYikuUDtPYmplY3QuYXNzaWduKGEsZC5aYSxiLGQuaGIpO2I9Yy5LO2Zvcih2YXIgZyBpbiBiKWlmKChlPWJbZ10pfHwwPT09ZSlhW2ddPWU7Zz1GaTtiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGEpO2ZvcihlPTA7ZTxiLmxlbmd0aDtlKyspZD1iW2VdLGFbZF09d2koZyxhW2RdLGEpO2MuUj1hfXYuc3R5bGVEb2N1bWVudD1mdW5jdGlvbihhKXt0aGlzLnN0eWxlU3VidHJlZSh0aGlzLmksYSl9O1xudi5zdHlsZVN1YnRyZWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz1JaChhKSxkPWMuc2hhZG93Um9vdCxlPWE9PT10aGlzLmk7KGR8fGUpJiZ0aGlzLnN0eWxlRWxlbWVudChhLGIpO2lmKGE9ZT9jOmQpZm9yKGE9QXJyYXkuZnJvbShhLnF1ZXJ5U2VsZWN0b3JBbGwoXCIqXCIpKS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIEloKGYpLnNoYWRvd1Jvb3R9KSxiPTA7YjxhLmxlbmd0aDtiKyspdGhpcy5zdHlsZVN1YnRyZWUoYVtiXSl9O1xudi5NYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9TGgoYSk7YyE9PXRoaXMudS5jc3NCdWlsZCYmKHRoaXMudS5jc3NCdWlsZD1jKTtpZighTWgoYykpe3ZhciBkPXloKGEpO3hoKGQsZnVuY3Rpb24oZSl7aWYoVilsaShlKTtlbHNle3ZhciBmPVFoO2Uuc2VsZWN0b3I9ZS5wYXJzZWRTZWxlY3RvcjtsaShlKTtlLnNlbGVjdG9yPWUuRj1YaChmLGUsZi5pLHZvaWQgMCx2b2lkIDApfVgmJlwiXCI9PT1jJiYoWmkoYiksYi5oJiZiLmgudHJhbnNmb3JtUnVsZShlKSl9KTtYP2EudGV4dENvbnRlbnQ9d2goZCk6dGhpcy51Lk0ucnVsZXMucHVzaChkKX19O3YuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM7WHx8KGM9KG5pKGEpfHxuaShlaih0aGlzLGEpKSkuUltiXSk7cmV0dXJuKGM9Y3x8d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSkuZ2V0UHJvcGVydHlWYWx1ZShiKSk/Yy50cmltKCk6XCJcIn07XG52LmtiPWZ1bmN0aW9uKGEsYil7dmFyIGM9SWgoYSkuZ2V0Um9vdE5vZGUoKTtiPWI/KFwic3RyaW5nXCI9PT10eXBlb2YgYj9iOlN0cmluZyhiKSkuc3BsaXQoL1xccy8pOltdO2M9Yy5ob3N0JiZjLmhvc3QubG9jYWxOYW1lO2lmKCFjKXt2YXIgZD1hLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpO2lmKGQpe2Q9ZC5zcGxpdCgvXFxzLyk7Zm9yKHZhciBlPTA7ZTxkLmxlbmd0aDtlKyspaWYoZFtlXT09PVFoLmcpe2M9ZFtlKzFdO2JyZWFrfX19YyYmYi5wdXNoKFFoLmcsYyk7WHx8KGM9bmkoYSkpJiZjLkwmJmIucHVzaChGaS5nLGMuTCk7SGgoYSxiLmpvaW4oXCIgXCIpKX07di5UYT1mdW5jdGlvbihhKXtyZXR1cm4gbmkoYSl9O3YuamI9ZnVuY3Rpb24oYSxiKXtSaChhLGIpfTt2Lm1iPWZ1bmN0aW9uKGEsYil7UmgoYSxiLCEwKX07di5pYj1mdW5jdGlvbihhKXtyZXR1cm4gTmkoYSl9O3YuVmE9ZnVuY3Rpb24oYSl7cmV0dXJuIE1pKGEpfTtZLnByb3RvdHlwZS5mbHVzaD1ZLnByb3RvdHlwZS5mbHVzaDtcblkucHJvdG90eXBlLnByZXBhcmVUZW1wbGF0ZT1ZLnByb3RvdHlwZS5wcmVwYXJlVGVtcGxhdGU7WS5wcm90b3R5cGUuc3R5bGVFbGVtZW50PVkucHJvdG90eXBlLnN0eWxlRWxlbWVudDtZLnByb3RvdHlwZS5zdHlsZURvY3VtZW50PVkucHJvdG90eXBlLnN0eWxlRG9jdW1lbnQ7WS5wcm90b3R5cGUuc3R5bGVTdWJ0cmVlPVkucHJvdG90eXBlLnN0eWxlU3VidHJlZTtZLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlVmFsdWU9WS5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlO1kucHJvdG90eXBlLnNldEVsZW1lbnRDbGFzcz1ZLnByb3RvdHlwZS5rYjtZLnByb3RvdHlwZS5fc3R5bGVJbmZvRm9yTm9kZT1ZLnByb3RvdHlwZS5UYTtZLnByb3RvdHlwZS50cmFuc2Zvcm1DdXN0b21TdHlsZUZvckRvY3VtZW50PVkucHJvdG90eXBlLk1hO1kucHJvdG90eXBlLmdldFN0eWxlQXN0PVkucHJvdG90eXBlLlhhO1kucHJvdG90eXBlLnN0eWxlQXN0VG9TdHJpbmc9WS5wcm90b3R5cGUubGI7XG5ZLnByb3RvdHlwZS5mbHVzaEN1c3RvbVN0eWxlcz1ZLnByb3RvdHlwZS5mbHVzaEN1c3RvbVN0eWxlcztZLnByb3RvdHlwZS5zY29wZU5vZGU9WS5wcm90b3R5cGUuamI7WS5wcm90b3R5cGUudW5zY29wZU5vZGU9WS5wcm90b3R5cGUubWI7WS5wcm90b3R5cGUuc2NvcGVGb3JOb2RlPVkucHJvdG90eXBlLmliO1kucHJvdG90eXBlLmN1cnJlbnRTY29wZUZvck5vZGU9WS5wcm90b3R5cGUuVmE7WS5wcm90b3R5cGUucHJlcGFyZUFkb3B0ZWRDc3NUZXh0PVkucHJvdG90eXBlLmZiO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFkucHJvdG90eXBlLHtuYXRpdmVTaGFkb3c6e2dldDpmdW5jdGlvbigpe3JldHVybiBWfX0sbmF0aXZlQ3NzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWH19fSk7dmFyIFo9bmV3IFksZmosZ2o7d2luZG93LlNoYWR5Q1NTJiYoZmo9d2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbSxnaj13aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2UpO1xud2luZG93LlNoYWR5Q1NTPXtTY29waW5nU2hpbTpaLHByZXBhcmVUZW1wbGF0ZTpmdW5jdGlvbihhLGIsYyl7Wi5mbHVzaEN1c3RvbVN0eWxlcygpO1oucHJlcGFyZVRlbXBsYXRlKGEsYixjKX0scHJlcGFyZVRlbXBsYXRlRG9tOmZ1bmN0aW9uKGEsYil7Wi5wcmVwYXJlVGVtcGxhdGVEb20oYSxiKX0scHJlcGFyZVRlbXBsYXRlU3R5bGVzOmZ1bmN0aW9uKGEsYixjKXtaLmZsdXNoQ3VzdG9tU3R5bGVzKCk7Wi5wcmVwYXJlVGVtcGxhdGVTdHlsZXMoYSxiLGMpfSxzdHlsZVN1YnRyZWU6ZnVuY3Rpb24oYSxiKXtaLmZsdXNoQ3VzdG9tU3R5bGVzKCk7Wi5zdHlsZVN1YnRyZWUoYSxiKX0sc3R5bGVFbGVtZW50OmZ1bmN0aW9uKGEpe1ouZmx1c2hDdXN0b21TdHlsZXMoKTtaLnN0eWxlRWxlbWVudChhKX0sc3R5bGVEb2N1bWVudDpmdW5jdGlvbihhKXtaLmZsdXNoQ3VzdG9tU3R5bGVzKCk7Wi5zdHlsZURvY3VtZW50KGEpfSxmbHVzaEN1c3RvbVN0eWxlczpmdW5jdGlvbigpe1ouZmx1c2hDdXN0b21TdHlsZXMoKX0sXG5nZXRDb21wdXRlZFN0eWxlVmFsdWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWi5nZXRDb21wdXRlZFN0eWxlVmFsdWUoYSxiKX0sbmF0aXZlQ3NzOlgsbmF0aXZlU2hhZG93OlYsY3NzQnVpbGQ6bmgsZGlzYWJsZVJ1bnRpbWU6b2h9O2ZqJiYod2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbT1maik7Z2omJih3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U9Z2opOyhmdW5jdGlvbihhKXtmdW5jdGlvbiBiKHQpe1wiXCI9PXQmJihmLmNhbGwodGhpcyksdGhpcy5tPSEwKTtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGModCl7dmFyIEY9dC5jaGFyQ29kZUF0KDApO3JldHVybiAzMjxGJiYxMjc+RiYmLTE9PVszNCwzNSw2MCw2Miw2Myw5Nl0uaW5kZXhPZihGKT90OmVuY29kZVVSSUNvbXBvbmVudCh0KX1mdW5jdGlvbiBkKHQpe3ZhciBGPXQuY2hhckNvZGVBdCgwKTtyZXR1cm4gMzI8RiYmMTI3PkYmJi0xPT1bMzQsMzUsNjAsNjIsOTZdLmluZGV4T2YoRik/dDplbmNvZGVVUklDb21wb25lbnQodCl9ZnVuY3Rpb24gZSh0LEYsRSl7ZnVuY3Rpb24gTShmYSl7c2EucHVzaChmYSl9dmFyIHk9Rnx8XCJzY2hlbWUgc3RhcnRcIixXPTAsdz1cIlwiLHRhPSExLGhhPSExLHNhPVtdO2E6Zm9yKDsodm9pZCAwIT10W1ctMV18fDA9PVcpJiYhdGhpcy5tOyl7dmFyIG49dFtXXTtzd2l0Y2goeSl7Y2FzZSBcInNjaGVtZSBzdGFydFwiOmlmKG4mJnEudGVzdChuKSl3Kz1cbm4udG9Mb3dlckNhc2UoKSx5PVwic2NoZW1lXCI7ZWxzZSBpZihGKXtNKFwiSW52YWxpZCBzY2hlbWUuXCIpO2JyZWFrIGF9ZWxzZXt3PVwiXCI7eT1cIm5vIHNjaGVtZVwiO2NvbnRpbnVlfWJyZWFrO2Nhc2UgXCJzY2hlbWVcIjppZihuJiZILnRlc3Qobikpdys9bi50b0xvd2VyQ2FzZSgpO2Vsc2UgaWYoXCI6XCI9PW4pe3RoaXMubD13O3c9XCJcIjtpZihGKWJyZWFrIGE7dm9pZCAwIT09bFt0aGlzLmxdJiYodGhpcy5HPSEwKTt5PVwiZmlsZVwiPT10aGlzLmw/XCJyZWxhdGl2ZVwiOnRoaXMuRyYmRSYmRS5sPT10aGlzLmw/XCJyZWxhdGl2ZSBvciBhdXRob3JpdHlcIjp0aGlzLkc/XCJhdXRob3JpdHkgZmlyc3Qgc2xhc2hcIjpcInNjaGVtZSBkYXRhXCJ9ZWxzZSBpZihGKXt2b2lkIDAhPW4mJk0oXCJDb2RlIHBvaW50IG5vdCBhbGxvd2VkIGluIHNjaGVtZTogXCIrbik7YnJlYWsgYX1lbHNle3c9XCJcIjtXPTA7eT1cIm5vIHNjaGVtZVwiO2NvbnRpbnVlfWJyZWFrO2Nhc2UgXCJzY2hlbWUgZGF0YVwiOlwiP1wiPT1uPyh0aGlzLkE9XCI/XCIsXG55PVwicXVlcnlcIik6XCIjXCI9PW4/KHRoaXMuQz1cIiNcIix5PVwiZnJhZ21lbnRcIik6dm9pZCAwIT1uJiZcIlxcdFwiIT1uJiZcIlxcblwiIT1uJiZcIlxcclwiIT1uJiYodGhpcy52YSs9YyhuKSk7YnJlYWs7Y2FzZSBcIm5vIHNjaGVtZVwiOmlmKEUmJnZvaWQgMCE9PWxbRS5sXSl7eT1cInJlbGF0aXZlXCI7Y29udGludWV9ZWxzZSBNKFwiTWlzc2luZyBzY2hlbWUuXCIpLGYuY2FsbCh0aGlzKSx0aGlzLm09ITA7YnJlYWs7Y2FzZSBcInJlbGF0aXZlIG9yIGF1dGhvcml0eVwiOmlmKFwiL1wiPT1uJiZcIi9cIj09dFtXKzFdKXk9XCJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXNcIjtlbHNle00oXCJFeHBlY3RlZCAvLCBnb3Q6IFwiK24pO3k9XCJyZWxhdGl2ZVwiO2NvbnRpbnVlfWJyZWFrO2Nhc2UgXCJyZWxhdGl2ZVwiOnRoaXMuRz0hMDtcImZpbGVcIiE9dGhpcy5sJiYodGhpcy5sPUUubCk7aWYodm9pZCAwPT1uKXt0aGlzLm89RS5vO3RoaXMudj1FLnY7dGhpcy5zPUUucy5zbGljZSgpO3RoaXMuQT1FLkE7dGhpcy5CPUUuQjt0aGlzLmo9RS5qO1xuYnJlYWsgYX1lbHNlIGlmKFwiL1wiPT1ufHxcIlxcXFxcIj09bilcIlxcXFxcIj09biYmTShcIlxcXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LlwiKSx5PVwicmVsYXRpdmUgc2xhc2hcIjtlbHNlIGlmKFwiP1wiPT1uKXRoaXMubz1FLm8sdGhpcy52PUUudix0aGlzLnM9RS5zLnNsaWNlKCksdGhpcy5BPVwiP1wiLHRoaXMuQj1FLkIsdGhpcy5qPUUuaix5PVwicXVlcnlcIjtlbHNlIGlmKFwiI1wiPT1uKXRoaXMubz1FLm8sdGhpcy52PUUudix0aGlzLnM9RS5zLnNsaWNlKCksdGhpcy5BPUUuQSx0aGlzLkM9XCIjXCIsdGhpcy5CPUUuQix0aGlzLmo9RS5qLHk9XCJmcmFnbWVudFwiO2Vsc2V7eT10W1crMV07dmFyIEo9dFtXKzJdO2lmKFwiZmlsZVwiIT10aGlzLmx8fCFxLnRlc3Qobil8fFwiOlwiIT15JiZcInxcIiE9eXx8dm9pZCAwIT1KJiZcIi9cIiE9SiYmXCJcXFxcXCIhPUomJlwiP1wiIT1KJiZcIiNcIiE9Sil0aGlzLm89RS5vLHRoaXMudj1FLnYsdGhpcy5CPUUuQix0aGlzLmo9RS5qLHRoaXMucz1FLnMuc2xpY2UoKSx0aGlzLnMucG9wKCk7eT1cblwicmVsYXRpdmUgcGF0aFwiO2NvbnRpbnVlfWJyZWFrO2Nhc2UgXCJyZWxhdGl2ZSBzbGFzaFwiOmlmKFwiL1wiPT1ufHxcIlxcXFxcIj09bilcIlxcXFxcIj09biYmTShcIlxcXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LlwiKSx5PVwiZmlsZVwiPT10aGlzLmw/XCJmaWxlIGhvc3RcIjpcImF1dGhvcml0eSBpZ25vcmUgc2xhc2hlc1wiO2Vsc2V7XCJmaWxlXCIhPXRoaXMubCYmKHRoaXMubz1FLm8sdGhpcy52PUUudix0aGlzLkI9RS5CLHRoaXMuaj1FLmopO3k9XCJyZWxhdGl2ZSBwYXRoXCI7Y29udGludWV9YnJlYWs7Y2FzZSBcImF1dGhvcml0eSBmaXJzdCBzbGFzaFwiOmlmKFwiL1wiPT1uKXk9XCJhdXRob3JpdHkgc2Vjb25kIHNsYXNoXCI7ZWxzZXtNKFwiRXhwZWN0ZWQgJy8nLCBnb3Q6IFwiK24pO3k9XCJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXNcIjtjb250aW51ZX1icmVhaztjYXNlIFwiYXV0aG9yaXR5IHNlY29uZCBzbGFzaFwiOnk9XCJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXNcIjtpZihcIi9cIiE9bil7TShcIkV4cGVjdGVkICcvJywgZ290OiBcIitcbm4pO2NvbnRpbnVlfWJyZWFrO2Nhc2UgXCJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXNcIjppZihcIi9cIiE9biYmXCJcXFxcXCIhPW4pe3k9XCJhdXRob3JpdHlcIjtjb250aW51ZX1lbHNlIE0oXCJFeHBlY3RlZCBhdXRob3JpdHksIGdvdDogXCIrbik7YnJlYWs7Y2FzZSBcImF1dGhvcml0eVwiOmlmKFwiQFwiPT1uKXt0YSYmKE0oXCJAIGFscmVhZHkgc2Vlbi5cIiksdys9XCIlNDBcIik7dGE9ITA7Zm9yKG49MDtuPHcubGVuZ3RoO24rKylKPXdbbl0sXCJcXHRcIj09Snx8XCJcXG5cIj09Snx8XCJcXHJcIj09Sj9NKFwiSW52YWxpZCB3aGl0ZXNwYWNlIGluIGF1dGhvcml0eS5cIik6XCI6XCI9PUomJm51bGw9PT10aGlzLmo/dGhpcy5qPVwiXCI6KEo9YyhKKSxudWxsIT09dGhpcy5qP3RoaXMuais9Sjp0aGlzLkIrPUopO3c9XCJcIn1lbHNlIGlmKHZvaWQgMD09bnx8XCIvXCI9PW58fFwiXFxcXFwiPT1ufHxcIj9cIj09bnx8XCIjXCI9PW4pe1ctPXcubGVuZ3RoO3c9XCJcIjt5PVwiaG9zdFwiO2NvbnRpbnVlfWVsc2Ugdys9bjticmVhaztjYXNlIFwiZmlsZSBob3N0XCI6aWYodm9pZCAwPT1cbm58fFwiL1wiPT1ufHxcIlxcXFxcIj09bnx8XCI/XCI9PW58fFwiI1wiPT1uKXsyIT13Lmxlbmd0aHx8IXEudGVzdCh3WzBdKXx8XCI6XCIhPXdbMV0mJlwifFwiIT13WzFdPygwIT13Lmxlbmd0aCYmKHRoaXMubz1iLmNhbGwodGhpcyx3KSx3PVwiXCIpLHk9XCJyZWxhdGl2ZSBwYXRoIHN0YXJ0XCIpOnk9XCJyZWxhdGl2ZSBwYXRoXCI7Y29udGludWV9ZWxzZVwiXFx0XCI9PW58fFwiXFxuXCI9PW58fFwiXFxyXCI9PW4/TShcIkludmFsaWQgd2hpdGVzcGFjZSBpbiBmaWxlIGhvc3QuXCIpOncrPW47YnJlYWs7Y2FzZSBcImhvc3RcIjpjYXNlIFwiaG9zdG5hbWVcIjppZihcIjpcIiE9bnx8aGEpaWYodm9pZCAwPT1ufHxcIi9cIj09bnx8XCJcXFxcXCI9PW58fFwiP1wiPT1ufHxcIiNcIj09bil7dGhpcy5vPWIuY2FsbCh0aGlzLHcpO3c9XCJcIjt5PVwicmVsYXRpdmUgcGF0aCBzdGFydFwiO2lmKEYpYnJlYWsgYTtjb250aW51ZX1lbHNlXCJcXHRcIiE9biYmXCJcXG5cIiE9biYmXCJcXHJcIiE9bj8oXCJbXCI9PW4/aGE9ITA6XCJdXCI9PW4mJihoYT0hMSksdys9bik6TShcIkludmFsaWQgY29kZSBwb2ludCBpbiBob3N0L2hvc3RuYW1lOiBcIitcbm4pO2Vsc2UgaWYodGhpcy5vPWIuY2FsbCh0aGlzLHcpLHc9XCJcIix5PVwicG9ydFwiLFwiaG9zdG5hbWVcIj09RilicmVhayBhO2JyZWFrO2Nhc2UgXCJwb3J0XCI6aWYoL1swLTldLy50ZXN0KG4pKXcrPW47ZWxzZSBpZih2b2lkIDA9PW58fFwiL1wiPT1ufHxcIlxcXFxcIj09bnx8XCI/XCI9PW58fFwiI1wiPT1ufHxGKXtcIlwiIT13JiYodz1wYXJzZUludCh3LDEwKSx3IT1sW3RoaXMubF0mJih0aGlzLnY9dytcIlwiKSx3PVwiXCIpO2lmKEYpYnJlYWsgYTt5PVwicmVsYXRpdmUgcGF0aCBzdGFydFwiO2NvbnRpbnVlfWVsc2VcIlxcdFwiPT1ufHxcIlxcblwiPT1ufHxcIlxcclwiPT1uP00oXCJJbnZhbGlkIGNvZGUgcG9pbnQgaW4gcG9ydDogXCIrbik6KGYuY2FsbCh0aGlzKSx0aGlzLm09ITApO2JyZWFrO2Nhc2UgXCJyZWxhdGl2ZSBwYXRoIHN0YXJ0XCI6XCJcXFxcXCI9PW4mJk0oXCInXFxcXCcgbm90IGFsbG93ZWQgaW4gcGF0aC5cIik7eT1cInJlbGF0aXZlIHBhdGhcIjtpZihcIi9cIiE9biYmXCJcXFxcXCIhPW4pY29udGludWU7YnJlYWs7Y2FzZSBcInJlbGF0aXZlIHBhdGhcIjppZih2b2lkIDAhPVxubiYmXCIvXCIhPW4mJlwiXFxcXFwiIT1uJiYoRnx8XCI/XCIhPW4mJlwiI1wiIT1uKSlcIlxcdFwiIT1uJiZcIlxcblwiIT1uJiZcIlxcclwiIT1uJiYodys9YyhuKSk7ZWxzZXtcIlxcXFxcIj09biYmTShcIlxcXFwgbm90IGFsbG93ZWQgaW4gcmVsYXRpdmUgcGF0aC5cIik7aWYoSj1tW3cudG9Mb3dlckNhc2UoKV0pdz1KO1wiLi5cIj09dz8odGhpcy5zLnBvcCgpLFwiL1wiIT1uJiZcIlxcXFxcIiE9biYmdGhpcy5zLnB1c2goXCJcIikpOlwiLlwiPT13JiZcIi9cIiE9biYmXCJcXFxcXCIhPW4/dGhpcy5zLnB1c2goXCJcIik6XCIuXCIhPXcmJihcImZpbGVcIj09dGhpcy5sJiYwPT10aGlzLnMubGVuZ3RoJiYyPT13Lmxlbmd0aCYmcS50ZXN0KHdbMF0pJiZcInxcIj09d1sxXSYmKHc9d1swXStcIjpcIiksdGhpcy5zLnB1c2godykpO3c9XCJcIjtcIj9cIj09bj8odGhpcy5BPVwiP1wiLHk9XCJxdWVyeVwiKTpcIiNcIj09biYmKHRoaXMuQz1cIiNcIix5PVwiZnJhZ21lbnRcIil9YnJlYWs7Y2FzZSBcInF1ZXJ5XCI6Rnx8XCIjXCIhPW4/dm9pZCAwIT1uJiZcIlxcdFwiIT1uJiZcIlxcblwiIT1uJiZcIlxcclwiIT1uJiYodGhpcy5BKz1cbmQobikpOih0aGlzLkM9XCIjXCIseT1cImZyYWdtZW50XCIpO2JyZWFrO2Nhc2UgXCJmcmFnbWVudFwiOnZvaWQgMCE9biYmXCJcXHRcIiE9biYmXCJcXG5cIiE9biYmXCJcXHJcIiE9biYmKHRoaXMuQys9bil9VysrfX1mdW5jdGlvbiBmKCl7dGhpcy5CPXRoaXMudmE9dGhpcy5sPVwiXCI7dGhpcy5qPW51bGw7dGhpcy52PXRoaXMubz1cIlwiO3RoaXMucz1bXTt0aGlzLkM9dGhpcy5BPVwiXCI7dGhpcy5HPXRoaXMubT0hMX1mdW5jdGlvbiBnKHQsRil7dm9pZCAwPT09Rnx8RiBpbnN0YW5jZW9mIGd8fChGPW5ldyBnKFN0cmluZyhGKSkpO3RoaXMuZz10O2YuY2FsbCh0aGlzKTtlLmNhbGwodGhpcyx0aGlzLmcucmVwbGFjZSgvXlsgXFx0XFxyXFxuXFxmXSt8WyBcXHRcXHJcXG5cXGZdKyQvZyxcIlwiKSxudWxsLEYpfXZhciBoPSExO3RyeXt2YXIgaz1uZXcgVVJMKFwiYlwiLFwiaHR0cDovL2FcIik7ay5wYXRobmFtZT1cImMlMjBkXCI7aD1cImh0dHA6Ly9hL2MlMjBkXCI9PT1rLmhyZWZ9Y2F0Y2godCl7fWlmKCFoKXt2YXIgbD1PYmplY3QuY3JlYXRlKG51bGwpO1xubC5mdHA9MjE7bC5maWxlPTA7bC5nb3BoZXI9NzA7bC5odHRwPTgwO2wuaHR0cHM9NDQzO2wud3M9ODA7bC53c3M9NDQzO3ZhciBtPU9iamVjdC5jcmVhdGUobnVsbCk7bVtcIiUyZVwiXT1cIi5cIjttW1wiLiUyZVwiXT1cIi4uXCI7bVtcIiUyZS5cIl09XCIuLlwiO21bXCIlMmUlMmVcIl09XCIuLlwiO3ZhciBxPS9bYS16QS1aXS8sSD0vW2EtekEtWjAtOStcXC0uXS87Zy5wcm90b3R5cGU9e3RvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaHJlZn0sZ2V0IGhyZWYoKXtpZih0aGlzLm0pcmV0dXJuIHRoaXMuZzt2YXIgdD1cIlwiO2lmKFwiXCIhPXRoaXMuQnx8bnVsbCE9dGhpcy5qKXQ9dGhpcy5CKyhudWxsIT10aGlzLmo/XCI6XCIrdGhpcy5qOlwiXCIpK1wiQFwiO3JldHVybiB0aGlzLnByb3RvY29sKyh0aGlzLkc/XCIvL1wiK3QrdGhpcy5ob3N0OlwiXCIpK3RoaXMucGF0aG5hbWUrdGhpcy5BK3RoaXMuQ30sc2V0IGhyZWYodCl7Zi5jYWxsKHRoaXMpO2UuY2FsbCh0aGlzLHQpfSxnZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sK1xuXCI6XCJ9LHNldCBwcm90b2NvbCh0KXt0aGlzLm18fGUuY2FsbCh0aGlzLHQrXCI6XCIsXCJzY2hlbWUgc3RhcnRcIil9LGdldCBob3N0KCl7cmV0dXJuIHRoaXMubT9cIlwiOnRoaXMudj90aGlzLm8rXCI6XCIrdGhpcy52OnRoaXMub30sc2V0IGhvc3QodCl7IXRoaXMubSYmdGhpcy5HJiZlLmNhbGwodGhpcyx0LFwiaG9zdFwiKX0sZ2V0IGhvc3RuYW1lKCl7cmV0dXJuIHRoaXMub30sc2V0IGhvc3RuYW1lKHQpeyF0aGlzLm0mJnRoaXMuRyYmZS5jYWxsKHRoaXMsdCxcImhvc3RuYW1lXCIpfSxnZXQgcG9ydCgpe3JldHVybiB0aGlzLnZ9LHNldCBwb3J0KHQpeyF0aGlzLm0mJnRoaXMuRyYmZS5jYWxsKHRoaXMsdCxcInBvcnRcIil9LGdldCBwYXRobmFtZSgpe3JldHVybiB0aGlzLm0/XCJcIjp0aGlzLkc/XCIvXCIrdGhpcy5zLmpvaW4oXCIvXCIpOnRoaXMudmF9LHNldCBwYXRobmFtZSh0KXshdGhpcy5tJiZ0aGlzLkcmJih0aGlzLnM9W10sZS5jYWxsKHRoaXMsdCxcInJlbGF0aXZlIHBhdGggc3RhcnRcIikpfSxnZXQgc2VhcmNoKCl7cmV0dXJuIHRoaXMubXx8XG4hdGhpcy5BfHxcIj9cIj09dGhpcy5BP1wiXCI6dGhpcy5BfSxzZXQgc2VhcmNoKHQpeyF0aGlzLm0mJnRoaXMuRyYmKHRoaXMuQT1cIj9cIixcIj9cIj09dFswXSYmKHQ9dC5zbGljZSgxKSksZS5jYWxsKHRoaXMsdCxcInF1ZXJ5XCIpKX0sZ2V0IGhhc2goKXtyZXR1cm4gdGhpcy5tfHwhdGhpcy5DfHxcIiNcIj09dGhpcy5DP1wiXCI6dGhpcy5DfSxzZXQgaGFzaCh0KXt0aGlzLm18fCh0Pyh0aGlzLkM9XCIjXCIsXCIjXCI9PXRbMF0mJih0PXQuc2xpY2UoMSkpLGUuY2FsbCh0aGlzLHQsXCJmcmFnbWVudFwiKSk6dGhpcy5DPVwiXCIpfSxnZXQgb3JpZ2luKCl7dmFyIHQ7aWYodGhpcy5tfHwhdGhpcy5sKXJldHVyblwiXCI7c3dpdGNoKHRoaXMubCl7Y2FzZSBcImRhdGFcIjpjYXNlIFwiZmlsZVwiOmNhc2UgXCJqYXZhc2NyaXB0XCI6Y2FzZSBcIm1haWx0b1wiOnJldHVyblwibnVsbFwifXJldHVybih0PXRoaXMuaG9zdCk/dGhpcy5sK1wiOi8vXCIrdDpcIlwifX07dmFyIEM9YS5VUkw7QyYmKGcuY3JlYXRlT2JqZWN0VVJMPWZ1bmN0aW9uKHQpe3JldHVybiBDLmNyZWF0ZU9iamVjdFVSTC5hcHBseShDLFxuYXJndW1lbnRzKX0sZy5yZXZva2VPYmplY3RVUkw9ZnVuY3Rpb24odCl7Qy5yZXZva2VPYmplY3RVUkwodCl9KTthLlVSTD1nfX0pKHdpbmRvdyk7LypcblxuQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBQb2x5bWVyIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cblRoaXMgY29kZSBtYXkgb25seSBiZSB1c2VkIHVuZGVyIHRoZSBCU0Qgc3R5bGUgbGljZW5zZSBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vTElDRU5TRS50eHRcblRoZSBjb21wbGV0ZSBzZXQgb2YgYXV0aG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0FVVEhPUlMudHh0XG5UaGUgY29tcGxldGUgc2V0IG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0NPTlRSSUJVVE9SUy50eHRcbkNvZGUgZGlzdHJpYnV0ZWQgYnkgR29vZ2xlIGFzIHBhcnQgb2YgdGhlIHBvbHltZXIgcHJvamVjdCBpcyBhbHNvXG5zdWJqZWN0IHRvIGFuIGFkZGl0aW9uYWwgSVAgcmlnaHRzIGdyYW50IGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9QQVRFTlRTLnR4dFxuKi9cbnZhciBoaj13aW5kb3cuY3VzdG9tRWxlbWVudHMsaWo9ITEsamo9bnVsbDtoai5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrJiZoai5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKGZ1bmN0aW9uKGEpe2pqPWE7aWomJmEoKX0pO2Z1bmN0aW9uIGtqKCl7d2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQuYm9vdHN0cmFwJiZ3aW5kb3cuSFRNTFRlbXBsYXRlRWxlbWVudC5ib290c3RyYXAod2luZG93LmRvY3VtZW50KTtqaiYmamooKTtpaj0hMDt3aW5kb3cuV2ViQ29tcG9uZW50cy5yZWFkeT0hMDtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudChcIldlYkNvbXBvbmVudHNSZWFkeVwiLHtidWJibGVzOiEwfSkpfVxuXCJjb21wbGV0ZVwiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT8od2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsa2opLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLGZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsa2opO2tqKCl9KSk6a2ooKTt9KS5jYWxsKHRoaXMpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWJjb21wb25lbnRzLWJ1bmRsZS5qcy5tYXBcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoYykgMjAxOCBUaGUgUG9seW1lciBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGNvZGUgbWF5IG9ubHkgYmUgdXNlZCB1bmRlciB0aGUgQlNEIHN0eWxlIGxpY2Vuc2UgZm91bmQgYXQgaHR0cDovL3BvbHltZXIuZ2l0aHViLmlvL0xJQ0VOU0UudHh0XG4gKiBUaGUgY29tcGxldGUgc2V0IG9mIGF1dGhvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9BVVRIT1JTLnR4dFxuICogVGhlIGNvbXBsZXRlIHNldCBvZiBjb250cmlidXRvcnMgbWF5IGJlIGZvdW5kIGF0IGh0dHA6Ly9wb2x5bWVyLmdpdGh1Yi5pby9DT05UUklCVVRPUlMudHh0XG4gKiBDb2RlIGRpc3RyaWJ1dGVkIGJ5IEdvb2dsZSBhcyBwYXJ0IG9mIHRoZSBwb2x5bWVyIHByb2plY3QgaXMgYWxzb1xuICogc3ViamVjdCB0byBhbiBhZGRpdGlvbmFsIElQIHJpZ2h0cyBncmFudCBmb3VuZCBhdCBodHRwOi8vcG9seW1lci5naXRodWIuaW8vUEFURU5UUy50eHRcbiAqL1xuXG4oZnVuY3Rpb24gKCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgLyoqXG4gICAqIEJhc2ljIGZsb3cgb2YgdGhlIGxvYWRlciBwcm9jZXNzXG4gICAqXG4gICAqIFRoZXJlIGFyZSA0IGZsb3dzIHRoZSBsb2FkZXIgY2FuIHRha2Ugd2hlbiBib290aW5nIHVwXG4gICAqXG4gICAqIC0gU3luY2hyb25vdXMgc2NyaXB0LCBubyBwb2x5ZmlsbHMgbmVlZGVkXG4gICAqICAgLSB3YWl0IGZvciBgRE9NQ29udGVudExvYWRlZGBcbiAgICogICAtIGZpcmUgV0NSIGV2ZW50LCBhcyB0aGVyZSBjb3VsZCBub3QgYmUgYW55IGNhbGxiYWNrcyBwYXNzZWQgdG8gYHdhaXRGb3JgXG4gICAqXG4gICAqIC0gU3luY2hyb25vdXMgc2NyaXB0LCBwb2x5ZmlsbHMgbmVlZGVkXG4gICAqICAgLSBkb2N1bWVudC53cml0ZSB0aGUgcG9seWZpbGwgYnVuZGxlXG4gICAqICAgLSB3YWl0IG9uIHRoZSBgbG9hZGAgZXZlbnQgb2YgdGhlIGJ1bmRsZSB0byBiYXRjaCBDdXN0b20gRWxlbWVudCB1cGdyYWRlc1xuICAgKiAgIC0gd2FpdCBmb3IgYERPTUNvbnRlbnRMb2FkZWRgXG4gICAqICAgLSBydW4gY2FsbGJhY2tzIHBhc3NlZCB0byBgd2FpdEZvcmBcbiAgICogICAtIGZpcmUgV0NSIGV2ZW50XG4gICAqXG4gICAqIC0gQXN5bmNocm9ub3VzIHNjcmlwdCwgbm8gcG9seWZpbGxzIG5lZWRlZFxuICAgKiAgIC0gd2FpdCBmb3IgYERPTUNvbnRlbnRMb2FkZWRgXG4gICAqICAgLSBydW4gY2FsbGJhY2tzIHBhc3NlZCB0byBgd2FpdEZvcmBcbiAgICogICAtIGZpcmUgV0NSIGV2ZW50XG4gICAqXG4gICAqIC0gQXN5bmNocm9ub3VzIHNjcmlwdCwgcG9seWZpbGxzIG5lZWRlZFxuICAgKiAgIC0gQXBwZW5kIHRoZSBwb2x5ZmlsbCBidW5kbGUgc2NyaXB0XG4gICAqICAgLSB3YWl0IGZvciBgbG9hZGAgZXZlbnQgb2YgdGhlIGJ1bmRsZVxuICAgKiAgIC0gYmF0Y2ggQ3VzdG9tIEVsZW1lbnQgVXBncmFkZXNcbiAgICogICAtIHJ1biBjYWxsYmFja3MgcGFzcyB0byBgd2FpdEZvcmBcbiAgICogICAtIGZpcmUgV0NSIGV2ZW50XG4gICAqL1xuXG4gIHZhciBwb2x5ZmlsbHNMb2FkZWQgPSBmYWxzZTtcbiAgdmFyIHdoZW5Mb2FkZWRGbnMgPSBbXTtcbiAgdmFyIGFsbG93VXBncmFkZXMgPSBmYWxzZTtcbiAgdmFyIGZsdXNoRm47XG5cbiAgZnVuY3Rpb24gZmlyZUV2ZW50KCkge1xuICAgIHdpbmRvdy5XZWJDb21wb25lbnRzLnJlYWR5ID0gdHJ1ZTtcbiAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdXZWJDb21wb25lbnRzUmVhZHknLCB7YnViYmxlczogdHJ1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJhdGNoQ3VzdG9tRWxlbWVudHMoKSB7XG4gICAgaWYgKHdpbmRvdy5jdXN0b21FbGVtZW50cyAmJiBjdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKGZ1bmN0aW9uIChmbHVzaENhbGxiYWNrKSB7XG4gICAgICAgIGZsdXNoRm4gPSBmbHVzaENhbGxiYWNrO1xuICAgICAgICBpZiAoYWxsb3dVcGdyYWRlcykge1xuICAgICAgICAgIGZsdXNoRm4oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYXN5bmNSZWFkeSgpIHtcbiAgICBiYXRjaEN1c3RvbUVsZW1lbnRzKCk7XG4gICAgcmVhZHkoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWR5KCkge1xuICAgIC8vIGJvb3RzdHJhcCA8dGVtcGxhdGU+IGVsZW1lbnRzIGJlZm9yZSBjdXN0b20gZWxlbWVudHNcbiAgICBpZiAod2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQgJiYgSFRNTFRlbXBsYXRlRWxlbWVudC5ib290c3RyYXApIHtcbiAgICAgIEhUTUxUZW1wbGF0ZUVsZW1lbnQuYm9vdHN0cmFwKHdpbmRvdy5kb2N1bWVudCk7XG4gICAgfVxuICAgIHBvbHlmaWxsc0xvYWRlZCA9IHRydWU7XG4gICAgcnVuV2hlbkxvYWRlZEZucygpLnRoZW4oZmlyZUV2ZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJ1bldoZW5Mb2FkZWRGbnMoKSB7XG4gICAgYWxsb3dVcGdyYWRlcyA9IGZhbHNlO1xuICAgIHZhciBmbnNNYXAgPSB3aGVuTG9hZGVkRm5zLm1hcChmdW5jdGlvbiAoZm4pIHtcbiAgICAgIHJldHVybiBmbiBpbnN0YW5jZW9mIEZ1bmN0aW9uID8gZm4oKSA6IGZuO1xuICAgIH0pO1xuICAgIHdoZW5Mb2FkZWRGbnMgPSBbXTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZm5zTWFwKVxuICAgICAgLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICBhbGxvd1VwZ3JhZGVzID0gdHJ1ZTtcbiAgICAgICAgZmx1c2hGbiAmJiBmbHVzaEZuKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuICB3aW5kb3cuV2ViQ29tcG9uZW50cyA9IHdpbmRvdy5XZWJDb21wb25lbnRzIHx8IHt9O1xuICB3aW5kb3cuV2ViQ29tcG9uZW50cy5yZWFkeSA9IHdpbmRvdy5XZWJDb21wb25lbnRzLnJlYWR5IHx8IGZhbHNlO1xuICB3aW5kb3cuV2ViQ29tcG9uZW50cy53YWl0Rm9yID1cbiAgICB3aW5kb3cuV2ViQ29tcG9uZW50cy53YWl0Rm9yIHx8XG4gICAgZnVuY3Rpb24gKHdhaXRGbikge1xuICAgICAgaWYgKCF3YWl0Rm4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgd2hlbkxvYWRlZEZucy5wdXNoKHdhaXRGbik7XG4gICAgICBpZiAocG9seWZpbGxzTG9hZGVkKSB7XG4gICAgICAgIHJ1bldoZW5Mb2FkZWRGbnMoKTtcbiAgICAgIH1cbiAgICB9O1xuICB3aW5kb3cuV2ViQ29tcG9uZW50cy5fYmF0Y2hDdXN0b21FbGVtZW50cyA9IGJhdGNoQ3VzdG9tRWxlbWVudHM7XG5cbiAgdmFyIG5hbWUgPSAnd2ViY29tcG9uZW50cy1sb2FkZXIuanMnO1xuICAvLyBGZWF0dXJlIGRldGVjdCB3aGljaCBwb2x5ZmlsbCBuZWVkcyB0byBiZSBpbXBvcnRlZC5cbiAgdmFyIHBvbHlmaWxscyA9IFtdO1xuICBpZiAoXG4gICAgIShcbiAgICAgICdhdHRhY2hTaGFkb3cnIGluIEVsZW1lbnQucHJvdG90eXBlICYmICdnZXRSb290Tm9kZScgaW4gRWxlbWVudC5wcm90b3R5cGVcbiAgICApIHx8XG4gICAgKHdpbmRvdy5TaGFkeURPTSAmJiB3aW5kb3cuU2hhZHlET00uZm9yY2UpXG4gICkge1xuICAgIHBvbHlmaWxscy5wdXNoKCdzZCcpO1xuICB9XG4gIGlmICghd2luZG93LmN1c3RvbUVsZW1lbnRzIHx8IHdpbmRvdy5jdXN0b21FbGVtZW50cy5mb3JjZVBvbHlmaWxsKSB7XG4gICAgcG9seWZpbGxzLnB1c2goJ2NlJyk7XG4gIH1cblxuICB2YXIgbmVlZHNUZW1wbGF0ZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLy8gbm8gcmVhbCA8dGVtcGxhdGU+IGJlY2F1c2Ugbm8gYGNvbnRlbnRgIHByb3BlcnR5IChJRSBhbmQgb2xkZXIgYnJvd3NlcnMpXG4gICAgdmFyIHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScpO1xuICAgIGlmICghKCdjb250ZW50JyBpbiB0KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGJyb2tlbiBkb2MgZnJhZ21lbnQgKG9sZGVyIEVkZ2UpXG4gICAgaWYgKCEodC5jb250ZW50LmNsb25lTm9kZSgpIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBicm9rZW4gPHRlbXBsYXRlPiBjbG9uaW5nIChFZGdlIHVwIHRvIGF0IGxlYXN0IHZlcnNpb24gMTcpXG4gICAgdmFyIHQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgICB0Mi5jb250ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTtcbiAgICB0LmNvbnRlbnQuYXBwZW5kQ2hpbGQodDIpO1xuICAgIHZhciBjbG9uZSA9IHQuY2xvbmVOb2RlKHRydWUpO1xuICAgIHJldHVybiAoXG4gICAgICBjbG9uZS5jb250ZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSAwIHx8XG4gICAgICBjbG9uZS5jb250ZW50LmZpcnN0Q2hpbGQuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMFxuICAgICk7XG4gIH0pKCk7XG5cbiAgLy8gTk9URTogYW55IGJyb3dzZXIgdGhhdCBkb2VzIG5vdCBoYXZlIHRlbXBsYXRlIG9yIEVTNiBmZWF0dXJlc1xuICAvLyBtdXN0IGxvYWQgdGhlIGZ1bGwgc3VpdGUgb2YgcG9seWZpbGxzLlxuICBpZiAoXG4gICAgIXdpbmRvdy5Qcm9taXNlIHx8XG4gICAgIUFycmF5LmZyb20gfHxcbiAgICAhd2luZG93LlVSTCB8fFxuICAgICF3aW5kb3cuU3ltYm9sIHx8XG4gICAgbmVlZHNUZW1wbGF0ZVxuICApIHtcbiAgICBwb2x5ZmlsbHMgPSBbJ3NkLWNlLXBmJ107XG4gIH1cblxuICBpZiAocG9seWZpbGxzLmxlbmd0aCkge1xuICAgIHZhciB1cmw7XG4gICAgdmFyIHBvbHlmaWxsRmlsZSA9ICdidW5kbGVzL3dlYmNvbXBvbmVudHMtJyArIHBvbHlmaWxscy5qb2luKCctJykgKyAnLmpzJztcblxuICAgIC8vIExvYWQgaXQgZnJvbSB0aGUgcmlnaHQgcGxhY2UuXG4gICAgaWYgKHdpbmRvdy5XZWJDb21wb25lbnRzLnJvb3QpIHtcbiAgICAgIHVybCA9IHdpbmRvdy5XZWJDb21wb25lbnRzLnJvb3QgKyBwb2x5ZmlsbEZpbGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj1cIicgKyBuYW1lICsgJ1wiXScpO1xuICAgICAgLy8gTG9hZCBpdCBmcm9tIHRoZSByaWdodCBwbGFjZS5cbiAgICAgIHVybCA9IHNjcmlwdC5zcmMucmVwbGFjZShuYW1lLCBwb2x5ZmlsbEZpbGUpO1xuICAgIH1cblxuICAgIHZhciBuZXdTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBuZXdTY3JpcHQuc3JjID0gdXJsO1xuICAgIC8vIGlmIHJlYWR5U3RhdGUgaXMgJ2xvYWRpbmcnLCB0aGlzIHNjcmlwdCBpcyBzeW5jaHJvbm91c1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycpIHtcbiAgICAgIC8vIG1ha2Ugc3VyZSBjdXN0b20gZWxlbWVudHMgYXJlIGJhdGNoZWQgd2hlbmV2ZXIgcGFyc2VyIGdldHMgdG8gdGhlIGluamVjdGVkIHNjcmlwdFxuICAgICAgbmV3U2NyaXB0LnNldEF0dHJpYnV0ZShcbiAgICAgICAgJ29ubG9hZCcsXG4gICAgICAgICd3aW5kb3cuV2ViQ29tcG9uZW50cy5fYmF0Y2hDdXN0b21FbGVtZW50cygpJ1xuICAgICAgKTtcbiAgICAgIGRvY3VtZW50LndyaXRlKG5ld1NjcmlwdC5vdXRlckhUTUwpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIHJlYWR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGFzeW5jUmVhZHkoKTtcbiAgICAgIH0pO1xuICAgICAgbmV3U2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBsb2FkIHBvbHlmaWxsIGJ1bmRsZScgKyB1cmwpO1xuICAgICAgfSk7XG4gICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5ld1NjcmlwdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGlmIHJlYWR5U3RhdGUgaXMgJ2NvbXBsZXRlJywgc2NyaXB0IGlzIGxvYWRlZCBpbXBlcmF0aXZlbHkgb24gYSBzcGVjLWNvbXBsaWFudCBicm93c2VyLCBzbyBqdXN0IGZpcmUgV0NSXG4gICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgIHBvbHlmaWxsc0xvYWRlZCA9IHRydWU7XG4gICAgICBmaXJlRXZlbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGhpcyBzY3JpcHQgbWF5IGNvbWUgYmV0d2VlbiBEQ0wgYW5kIGxvYWQsIHNvIGxpc3RlbiBmb3IgYm90aCwgYW5kIGNhbmNlbCBsb2FkIGxpc3RlbmVyIGlmIERDTCBmaXJlc1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCByZWFkeSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2xvYWQnLCByZWFkeSk7XG4gICAgICAgIHJlYWR5KCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn0pKCk7XG4iLCIvKlxuICogSW50ZXJuYXRpb25hbCBUZWxlcGhvbmUgSW5wdXQgdjE2LjEuMFxuICogaHR0cHM6Ly9naXRodWIuY29tL2phY2tvY25yL2ludGwtdGVsLWlucHV0LmdpdFxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKi9cblxuLy8gd3JhcCBpbiBVTURcbihmdW5jdGlvbihmYWN0b3J5KSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgPT09IFwib2JqZWN0XCIgJiYgbW9kdWxlLmV4cG9ydHMpIG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpOyBlbHNlIHdpbmRvdy5pbnRsVGVsSW5wdXQgPSBmYWN0b3J5KCk7XG59KShmdW5jdGlvbih1bmRlZmluZWQpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vIEFycmF5IG9mIGNvdW50cnkgb2JqZWN0cyBmb3IgdGhlIGZsYWcgZHJvcGRvd24uXG4gICAgICAgIC8vIEhlcmUgaXMgdGhlIGNyaXRlcmlhIGZvciB0aGUgcGx1Z2luIHRvIHN1cHBvcnQgYSBnaXZlbiBjb3VudHJ5L3RlcnJpdG9yeVxuICAgICAgICAvLyAtIEl0IGhhcyBhbiBpc28yIGNvZGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT18zMTY2LTFfYWxwaGEtMlxuICAgICAgICAvLyAtIEl0IGhhcyBpdCdzIG93biBjb3VudHJ5IGNhbGxpbmcgY29kZSAoaXQgaXMgbm90IGEgc3ViLXJlZ2lvbiBvZiBhbm90aGVyIGNvdW50cnkpOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX2NvdW50cnlfY2FsbGluZ19jb2Rlc1xuICAgICAgICAvLyAtIEl0IGhhcyBhIGZsYWcgaW4gdGhlIHJlZ2lvbi1mbGFncyBwcm9qZWN0OiBodHRwczovL2dpdGh1Yi5jb20vYmVoZGFkL3JlZ2lvbi1mbGFncy90cmVlL2doLXBhZ2VzL3BuZ1xuICAgICAgICAvLyAtIEl0IGlzIHN1cHBvcnRlZCBieSBsaWJwaG9uZW51bWJlciAoaXQgbXVzdCBiZSBsaXN0ZWQgb24gdGhpcyBwYWdlKTogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZWkxOG4vbGlicGhvbmVudW1iZXIvYmxvYi9tYXN0ZXIvcmVzb3VyY2VzL1Nob3J0TnVtYmVyTWV0YWRhdGEueG1sXG4gICAgICAgIC8vIEVhY2ggY291bnRyeSBhcnJheSBoYXMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcbiAgICAgICAgLy8gW1xuICAgICAgICAvLyAgICBDb3VudHJ5IG5hbWUsXG4gICAgICAgIC8vICAgIGlzbzIgY29kZSxcbiAgICAgICAgLy8gICAgSW50ZXJuYXRpb25hbCBkaWFsIGNvZGUsXG4gICAgICAgIC8vICAgIE9yZGVyIChpZiA+MSBjb3VudHJ5IHdpdGggc2FtZSBkaWFsIGNvZGUpLFxuICAgICAgICAvLyAgICBBcmVhIGNvZGVzXG4gICAgICAgIC8vIF1cbiAgICAgICAgdmFyIGFsbENvdW50cmllcyA9IFsgWyBcIkFmZ2hhbmlzdGFuICjigKvYp9mB2LrYp9mG2LPYqtin2YbigKzigI4pXCIsIFwiYWZcIiwgXCI5M1wiIF0sIFsgXCJBbGJhbmlhIChTaHFpcMOrcmkpXCIsIFwiYWxcIiwgXCIzNTVcIiBdLCBbIFwiQWxnZXJpYSAo4oCr2KfZhNis2LLYp9im2LHigKzigI4pXCIsIFwiZHpcIiwgXCIyMTNcIiBdLCBbIFwiQW1lcmljYW4gU2Ftb2FcIiwgXCJhc1wiLCBcIjFcIiwgNSwgWyBcIjY4NFwiIF0gXSwgWyBcIkFuZG9ycmFcIiwgXCJhZFwiLCBcIjM3NlwiIF0sIFsgXCJBbmdvbGFcIiwgXCJhb1wiLCBcIjI0NFwiIF0sIFsgXCJBbmd1aWxsYVwiLCBcImFpXCIsIFwiMVwiLCA2LCBbIFwiMjY0XCIgXSBdLCBbIFwiQW50aWd1YSBhbmQgQmFyYnVkYVwiLCBcImFnXCIsIFwiMVwiLCA3LCBbIFwiMjY4XCIgXSBdLCBbIFwiQXJnZW50aW5hXCIsIFwiYXJcIiwgXCI1NFwiIF0sIFsgXCJBcm1lbmlhICjVgNWh1bXVodW91b/VodW2KVwiLCBcImFtXCIsIFwiMzc0XCIgXSwgWyBcIkFydWJhXCIsIFwiYXdcIiwgXCIyOTdcIiBdLCBbIFwiQXVzdHJhbGlhXCIsIFwiYXVcIiwgXCI2MVwiLCAwIF0sIFsgXCJBdXN0cmlhICjDlnN0ZXJyZWljaClcIiwgXCJhdFwiLCBcIjQzXCIgXSwgWyBcIkF6ZXJiYWlqYW4gKEF6yZlyYmF5Y2FuKVwiLCBcImF6XCIsIFwiOTk0XCIgXSwgWyBcIkJhaGFtYXNcIiwgXCJic1wiLCBcIjFcIiwgOCwgWyBcIjI0MlwiIF0gXSwgWyBcIkJhaHJhaW4gKOKAq9in2YTYqNit2LHZitmG4oCs4oCOKVwiLCBcImJoXCIsIFwiOTczXCIgXSwgWyBcIkJhbmdsYWRlc2ggKOCmrOCmvuCmguCmsuCmvuCmpuCnh+CmtilcIiwgXCJiZFwiLCBcIjg4MFwiIF0sIFsgXCJCYXJiYWRvc1wiLCBcImJiXCIsIFwiMVwiLCA5LCBbIFwiMjQ2XCIgXSBdLCBbIFwiQmVsYXJ1cyAo0JHQtdC70LDRgNGD0YHRjClcIiwgXCJieVwiLCBcIjM3NVwiIF0sIFsgXCJCZWxnaXVtIChCZWxnacOrKVwiLCBcImJlXCIsIFwiMzJcIiBdLCBbIFwiQmVsaXplXCIsIFwiYnpcIiwgXCI1MDFcIiBdLCBbIFwiQmVuaW4gKELDqW5pbilcIiwgXCJialwiLCBcIjIyOVwiIF0sIFsgXCJCZXJtdWRhXCIsIFwiYm1cIiwgXCIxXCIsIDEwLCBbIFwiNDQxXCIgXSBdLCBbIFwiQmh1dGFuICjgvaDgvZbgvrLgvbTgvYIpXCIsIFwiYnRcIiwgXCI5NzVcIiBdLCBbIFwiQm9saXZpYVwiLCBcImJvXCIsIFwiNTkxXCIgXSwgWyBcIkJvc25pYSBhbmQgSGVyemVnb3ZpbmEgKNCR0L7RgdC90LAg0Lgg0KXQtdGA0YbQtdCz0L7QstC40L3QsClcIiwgXCJiYVwiLCBcIjM4N1wiIF0sIFsgXCJCb3Rzd2FuYVwiLCBcImJ3XCIsIFwiMjY3XCIgXSwgWyBcIkJyYXppbCAoQnJhc2lsKVwiLCBcImJyXCIsIFwiNTVcIiBdLCBbIFwiQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5XCIsIFwiaW9cIiwgXCIyNDZcIiBdLCBbIFwiQnJpdGlzaCBWaXJnaW4gSXNsYW5kc1wiLCBcInZnXCIsIFwiMVwiLCAxMSwgWyBcIjI4NFwiIF0gXSwgWyBcIkJydW5laVwiLCBcImJuXCIsIFwiNjczXCIgXSwgWyBcIkJ1bGdhcmlhICjQkdGK0LvQs9Cw0YDQuNGPKVwiLCBcImJnXCIsIFwiMzU5XCIgXSwgWyBcIkJ1cmtpbmEgRmFzb1wiLCBcImJmXCIsIFwiMjI2XCIgXSwgWyBcIkJ1cnVuZGkgKFVidXJ1bmRpKVwiLCBcImJpXCIsIFwiMjU3XCIgXSwgWyBcIkNhbWJvZGlhICjhnoDhnpjhn5LhnpbhnrvhnofhnrYpXCIsIFwia2hcIiwgXCI4NTVcIiBdLCBbIFwiQ2FtZXJvb24gKENhbWVyb3VuKVwiLCBcImNtXCIsIFwiMjM3XCIgXSwgWyBcIkNhbmFkYVwiLCBcImNhXCIsIFwiMVwiLCAxLCBbIFwiMjA0XCIsIFwiMjI2XCIsIFwiMjM2XCIsIFwiMjQ5XCIsIFwiMjUwXCIsIFwiMjg5XCIsIFwiMzA2XCIsIFwiMzQzXCIsIFwiMzY1XCIsIFwiMzg3XCIsIFwiNDAzXCIsIFwiNDE2XCIsIFwiNDE4XCIsIFwiNDMxXCIsIFwiNDM3XCIsIFwiNDM4XCIsIFwiNDUwXCIsIFwiNTA2XCIsIFwiNTE0XCIsIFwiNTE5XCIsIFwiNTQ4XCIsIFwiNTc5XCIsIFwiNTgxXCIsIFwiNTg3XCIsIFwiNjA0XCIsIFwiNjEzXCIsIFwiNjM5XCIsIFwiNjQ3XCIsIFwiNjcyXCIsIFwiNzA1XCIsIFwiNzA5XCIsIFwiNzQyXCIsIFwiNzc4XCIsIFwiNzgwXCIsIFwiNzgyXCIsIFwiODA3XCIsIFwiODE5XCIsIFwiODI1XCIsIFwiODY3XCIsIFwiODczXCIsIFwiOTAyXCIsIFwiOTA1XCIgXSBdLCBbIFwiQ2FwZSBWZXJkZSAoS2FidSBWZXJkaSlcIiwgXCJjdlwiLCBcIjIzOFwiIF0sIFsgXCJDYXJpYmJlYW4gTmV0aGVybGFuZHNcIiwgXCJicVwiLCBcIjU5OVwiLCAxLCBbIFwiM1wiLCBcIjRcIiwgXCI3XCIgXSBdLCBbIFwiQ2F5bWFuIElzbGFuZHNcIiwgXCJreVwiLCBcIjFcIiwgMTIsIFsgXCIzNDVcIiBdIF0sIFsgXCJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMgKFLDqXB1YmxpcXVlIGNlbnRyYWZyaWNhaW5lKVwiLCBcImNmXCIsIFwiMjM2XCIgXSwgWyBcIkNoYWQgKFRjaGFkKVwiLCBcInRkXCIsIFwiMjM1XCIgXSwgWyBcIkNoaWxlXCIsIFwiY2xcIiwgXCI1NlwiIF0sIFsgXCJDaGluYSAo5Lit5Zu9KVwiLCBcImNuXCIsIFwiODZcIiBdLCBbIFwiQ2hyaXN0bWFzIElzbGFuZFwiLCBcImN4XCIsIFwiNjFcIiwgMiBdLCBbIFwiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHNcIiwgXCJjY1wiLCBcIjYxXCIsIDEgXSwgWyBcIkNvbG9tYmlhXCIsIFwiY29cIiwgXCI1N1wiIF0sIFsgXCJDb21vcm9zICjigKvYrNiy2LEg2KfZhNmC2YXYseKArOKAjilcIiwgXCJrbVwiLCBcIjI2OVwiIF0sIFsgXCJDb25nbyAoRFJDKSAoSmFtaHVyaSB5YSBLaWRlbW9rcmFzaWEgeWEgS29uZ28pXCIsIFwiY2RcIiwgXCIyNDNcIiBdLCBbIFwiQ29uZ28gKFJlcHVibGljKSAoQ29uZ28tQnJhenphdmlsbGUpXCIsIFwiY2dcIiwgXCIyNDJcIiBdLCBbIFwiQ29vayBJc2xhbmRzXCIsIFwiY2tcIiwgXCI2ODJcIiBdLCBbIFwiQ29zdGEgUmljYVwiLCBcImNyXCIsIFwiNTA2XCIgXSwgWyBcIkPDtHRlIGTigJlJdm9pcmVcIiwgXCJjaVwiLCBcIjIyNVwiIF0sIFsgXCJDcm9hdGlhIChIcnZhdHNrYSlcIiwgXCJoclwiLCBcIjM4NVwiIF0sIFsgXCJDdWJhXCIsIFwiY3VcIiwgXCI1M1wiIF0sIFsgXCJDdXJhw6dhb1wiLCBcImN3XCIsIFwiNTk5XCIsIDAgXSwgWyBcIkN5cHJ1cyAozprPjc+Az4HOv8+CKVwiLCBcImN5XCIsIFwiMzU3XCIgXSwgWyBcIkN6ZWNoIFJlcHVibGljICjEjGVza8OhIHJlcHVibGlrYSlcIiwgXCJjelwiLCBcIjQyMFwiIF0sIFsgXCJEZW5tYXJrIChEYW5tYXJrKVwiLCBcImRrXCIsIFwiNDVcIiBdLCBbIFwiRGppYm91dGlcIiwgXCJkalwiLCBcIjI1M1wiIF0sIFsgXCJEb21pbmljYVwiLCBcImRtXCIsIFwiMVwiLCAxMywgWyBcIjc2N1wiIF0gXSwgWyBcIkRvbWluaWNhbiBSZXB1YmxpYyAoUmVww7pibGljYSBEb21pbmljYW5hKVwiLCBcImRvXCIsIFwiMVwiLCAyLCBbIFwiODA5XCIsIFwiODI5XCIsIFwiODQ5XCIgXSBdLCBbIFwiRWN1YWRvclwiLCBcImVjXCIsIFwiNTkzXCIgXSwgWyBcIkVneXB0ICjigKvZhdi12LHigKzigI4pXCIsIFwiZWdcIiwgXCIyMFwiIF0sIFsgXCJFbCBTYWx2YWRvclwiLCBcInN2XCIsIFwiNTAzXCIgXSwgWyBcIkVxdWF0b3JpYWwgR3VpbmVhIChHdWluZWEgRWN1YXRvcmlhbClcIiwgXCJncVwiLCBcIjI0MFwiIF0sIFsgXCJFcml0cmVhXCIsIFwiZXJcIiwgXCIyOTFcIiBdLCBbIFwiRXN0b25pYSAoRWVzdGkpXCIsIFwiZWVcIiwgXCIzNzJcIiBdLCBbIFwiRXRoaW9waWFcIiwgXCJldFwiLCBcIjI1MVwiIF0sIFsgXCJGYWxrbGFuZCBJc2xhbmRzIChJc2xhcyBNYWx2aW5hcylcIiwgXCJma1wiLCBcIjUwMFwiIF0sIFsgXCJGYXJvZSBJc2xhbmRzIChGw7hyb3lhcilcIiwgXCJmb1wiLCBcIjI5OFwiIF0sIFsgXCJGaWppXCIsIFwiZmpcIiwgXCI2NzlcIiBdLCBbIFwiRmlubGFuZCAoU3VvbWkpXCIsIFwiZmlcIiwgXCIzNThcIiwgMCBdLCBbIFwiRnJhbmNlXCIsIFwiZnJcIiwgXCIzM1wiIF0sIFsgXCJGcmVuY2ggR3VpYW5hIChHdXlhbmUgZnJhbsOnYWlzZSlcIiwgXCJnZlwiLCBcIjU5NFwiIF0sIFsgXCJGcmVuY2ggUG9seW5lc2lhIChQb2x5bsOpc2llIGZyYW7Dp2Fpc2UpXCIsIFwicGZcIiwgXCI2ODlcIiBdLCBbIFwiR2Fib25cIiwgXCJnYVwiLCBcIjI0MVwiIF0sIFsgXCJHYW1iaWFcIiwgXCJnbVwiLCBcIjIyMFwiIF0sIFsgXCJHZW9yZ2lhICjhg6Hhg5Dhg6Xhg5Dhg6Dhg5fhg5Xhg5Thg5rhg50pXCIsIFwiZ2VcIiwgXCI5OTVcIiBdLCBbIFwiR2VybWFueSAoRGV1dHNjaGxhbmQpXCIsIFwiZGVcIiwgXCI0OVwiIF0sIFsgXCJHaGFuYSAoR2FhbmEpXCIsIFwiZ2hcIiwgXCIyMzNcIiBdLCBbIFwiR2licmFsdGFyXCIsIFwiZ2lcIiwgXCIzNTBcIiBdLCBbIFwiR3JlZWNlICjOlc67zrvOrM60zrEpXCIsIFwiZ3JcIiwgXCIzMFwiIF0sIFsgXCJHcmVlbmxhbmQgKEthbGFhbGxpdCBOdW5hYXQpXCIsIFwiZ2xcIiwgXCIyOTlcIiBdLCBbIFwiR3JlbmFkYVwiLCBcImdkXCIsIFwiMVwiLCAxNCwgWyBcIjQ3M1wiIF0gXSwgWyBcIkd1YWRlbG91cGVcIiwgXCJncFwiLCBcIjU5MFwiLCAwIF0sIFsgXCJHdWFtXCIsIFwiZ3VcIiwgXCIxXCIsIDE1LCBbIFwiNjcxXCIgXSBdLCBbIFwiR3VhdGVtYWxhXCIsIFwiZ3RcIiwgXCI1MDJcIiBdLCBbIFwiR3Vlcm5zZXlcIiwgXCJnZ1wiLCBcIjQ0XCIsIDEsIFsgXCIxNDgxXCIsIFwiNzc4MVwiLCBcIjc4MzlcIiwgXCI3OTExXCIgXSBdLCBbIFwiR3VpbmVhIChHdWluw6llKVwiLCBcImduXCIsIFwiMjI0XCIgXSwgWyBcIkd1aW5lYS1CaXNzYXUgKEd1aW7DqSBCaXNzYXUpXCIsIFwiZ3dcIiwgXCIyNDVcIiBdLCBbIFwiR3V5YW5hXCIsIFwiZ3lcIiwgXCI1OTJcIiBdLCBbIFwiSGFpdGlcIiwgXCJodFwiLCBcIjUwOVwiIF0sIFsgXCJIb25kdXJhc1wiLCBcImhuXCIsIFwiNTA0XCIgXSwgWyBcIkhvbmcgS29uZyAo6aaZ5rivKVwiLCBcImhrXCIsIFwiODUyXCIgXSwgWyBcIkh1bmdhcnkgKE1hZ3lhcm9yc3rDoWcpXCIsIFwiaHVcIiwgXCIzNlwiIF0sIFsgXCJJY2VsYW5kICjDjXNsYW5kKVwiLCBcImlzXCIsIFwiMzU0XCIgXSwgWyBcIkluZGlhICjgpK3gpL7gpLDgpKQpXCIsIFwiaW5cIiwgXCI5MVwiIF0sIFsgXCJJbmRvbmVzaWFcIiwgXCJpZFwiLCBcIjYyXCIgXSwgWyBcIklyYW4gKOKAq9in24zYsdin2YbigKzigI4pXCIsIFwiaXJcIiwgXCI5OFwiIF0sIFsgXCJJcmFxICjigKvYp9mE2LnYsdin2YLigKzigI4pXCIsIFwiaXFcIiwgXCI5NjRcIiBdLCBbIFwiSXJlbGFuZFwiLCBcImllXCIsIFwiMzUzXCIgXSwgWyBcIklzbGUgb2YgTWFuXCIsIFwiaW1cIiwgXCI0NFwiLCAyLCBbIFwiMTYyNFwiLCBcIjc0NTc2XCIsIFwiNzUyNFwiLCBcIjc5MjRcIiwgXCI3NjI0XCIgXSBdLCBbIFwiSXNyYWVsICjigKvXmdep16jXkNec4oCs4oCOKVwiLCBcImlsXCIsIFwiOTcyXCIgXSwgWyBcIkl0YWx5IChJdGFsaWEpXCIsIFwiaXRcIiwgXCIzOVwiLCAwIF0sIFsgXCJKYW1haWNhXCIsIFwiam1cIiwgXCIxXCIsIDQsIFsgXCI4NzZcIiwgXCI2NThcIiBdIF0sIFsgXCJKYXBhbiAo5pel5pysKVwiLCBcImpwXCIsIFwiODFcIiBdLCBbIFwiSmVyc2V5XCIsIFwiamVcIiwgXCI0NFwiLCAzLCBbIFwiMTUzNFwiLCBcIjc1MDlcIiwgXCI3NzAwXCIsIFwiNzc5N1wiLCBcIjc4MjlcIiwgXCI3OTM3XCIgXSBdLCBbIFwiSm9yZGFuICjigKvYp9mE2KPYsdiv2YbigKzigI4pXCIsIFwiam9cIiwgXCI5NjJcIiBdLCBbIFwiS2F6YWtoc3RhbiAo0JrQsNC30LDRhdGB0YLQsNC9KVwiLCBcImt6XCIsIFwiN1wiLCAxLCBbIFwiMzNcIiwgXCI3XCIgXSBdLCBbIFwiS2VueWFcIiwgXCJrZVwiLCBcIjI1NFwiIF0sIFsgXCJLaXJpYmF0aVwiLCBcImtpXCIsIFwiNjg2XCIgXSwgWyBcIktvc292b1wiLCBcInhrXCIsIFwiMzgzXCIgXSwgWyBcIkt1d2FpdCAo4oCr2KfZhNmD2YjZitiq4oCs4oCOKVwiLCBcImt3XCIsIFwiOTY1XCIgXSwgWyBcIkt5cmd5enN0YW4gKNCa0YvRgNCz0YvQt9GB0YLQsNC9KVwiLCBcImtnXCIsIFwiOTk2XCIgXSwgWyBcIkxhb3MgKOC6peC6suC6pylcIiwgXCJsYVwiLCBcIjg1NlwiIF0sIFsgXCJMYXR2aWEgKExhdHZpamEpXCIsIFwibHZcIiwgXCIzNzFcIiBdLCBbIFwiTGViYW5vbiAo4oCr2YTYqNmG2KfZhuKArOKAjilcIiwgXCJsYlwiLCBcIjk2MVwiIF0sIFsgXCJMZXNvdGhvXCIsIFwibHNcIiwgXCIyNjZcIiBdLCBbIFwiTGliZXJpYVwiLCBcImxyXCIsIFwiMjMxXCIgXSwgWyBcIkxpYnlhICjigKvZhNmK2KjZitin4oCs4oCOKVwiLCBcImx5XCIsIFwiMjE4XCIgXSwgWyBcIkxpZWNodGVuc3RlaW5cIiwgXCJsaVwiLCBcIjQyM1wiIF0sIFsgXCJMaXRodWFuaWEgKExpZXR1dmEpXCIsIFwibHRcIiwgXCIzNzBcIiBdLCBbIFwiTHV4ZW1ib3VyZ1wiLCBcImx1XCIsIFwiMzUyXCIgXSwgWyBcIk1hY2F1ICjmvrPploApXCIsIFwibW9cIiwgXCI4NTNcIiBdLCBbIFwiTWFjZWRvbmlhIChGWVJPTSkgKNCc0LDQutC10LTQvtC90LjRmNCwKVwiLCBcIm1rXCIsIFwiMzg5XCIgXSwgWyBcIk1hZGFnYXNjYXIgKE1hZGFnYXNpa2FyYSlcIiwgXCJtZ1wiLCBcIjI2MVwiIF0sIFsgXCJNYWxhd2lcIiwgXCJtd1wiLCBcIjI2NVwiIF0sIFsgXCJNYWxheXNpYVwiLCBcIm15XCIsIFwiNjBcIiBdLCBbIFwiTWFsZGl2ZXNcIiwgXCJtdlwiLCBcIjk2MFwiIF0sIFsgXCJNYWxpXCIsIFwibWxcIiwgXCIyMjNcIiBdLCBbIFwiTWFsdGFcIiwgXCJtdFwiLCBcIjM1NlwiIF0sIFsgXCJNYXJzaGFsbCBJc2xhbmRzXCIsIFwibWhcIiwgXCI2OTJcIiBdLCBbIFwiTWFydGluaXF1ZVwiLCBcIm1xXCIsIFwiNTk2XCIgXSwgWyBcIk1hdXJpdGFuaWEgKOKAq9mF2YjYsdmK2KrYp9mG2YrYp+KArOKAjilcIiwgXCJtclwiLCBcIjIyMlwiIF0sIFsgXCJNYXVyaXRpdXMgKE1vcmlzKVwiLCBcIm11XCIsIFwiMjMwXCIgXSwgWyBcIk1heW90dGVcIiwgXCJ5dFwiLCBcIjI2MlwiLCAxLCBbIFwiMjY5XCIsIFwiNjM5XCIgXSBdLCBbIFwiTWV4aWNvIChNw6l4aWNvKVwiLCBcIm14XCIsIFwiNTJcIiBdLCBbIFwiTWljcm9uZXNpYVwiLCBcImZtXCIsIFwiNjkxXCIgXSwgWyBcIk1vbGRvdmEgKFJlcHVibGljYSBNb2xkb3ZhKVwiLCBcIm1kXCIsIFwiMzczXCIgXSwgWyBcIk1vbmFjb1wiLCBcIm1jXCIsIFwiMzc3XCIgXSwgWyBcIk1vbmdvbGlhICjQnNC+0L3Qs9C+0LspXCIsIFwibW5cIiwgXCI5NzZcIiBdLCBbIFwiTW9udGVuZWdybyAoQ3JuYSBHb3JhKVwiLCBcIm1lXCIsIFwiMzgyXCIgXSwgWyBcIk1vbnRzZXJyYXRcIiwgXCJtc1wiLCBcIjFcIiwgMTYsIFsgXCI2NjRcIiBdIF0sIFsgXCJNb3JvY2NvICjigKvYp9mE2YXYutix2KjigKzigI4pXCIsIFwibWFcIiwgXCIyMTJcIiwgMCBdLCBbIFwiTW96YW1iaXF1ZSAoTW/Dp2FtYmlxdWUpXCIsIFwibXpcIiwgXCIyNThcIiBdLCBbIFwiTXlhbm1hciAoQnVybWEpICjhgJnhgLzhgJThgLrhgJnhgKwpXCIsIFwibW1cIiwgXCI5NVwiIF0sIFsgXCJOYW1pYmlhIChOYW1pYmnDqylcIiwgXCJuYVwiLCBcIjI2NFwiIF0sIFsgXCJOYXVydVwiLCBcIm5yXCIsIFwiNjc0XCIgXSwgWyBcIk5lcGFsICjgpKjgpYfgpKrgpL7gpLIpXCIsIFwibnBcIiwgXCI5NzdcIiBdLCBbIFwiTmV0aGVybGFuZHMgKE5lZGVybGFuZClcIiwgXCJubFwiLCBcIjMxXCIgXSwgWyBcIk5ldyBDYWxlZG9uaWEgKE5vdXZlbGxlLUNhbMOpZG9uaWUpXCIsIFwibmNcIiwgXCI2ODdcIiBdLCBbIFwiTmV3IFplYWxhbmRcIiwgXCJuelwiLCBcIjY0XCIgXSwgWyBcIk5pY2FyYWd1YVwiLCBcIm5pXCIsIFwiNTA1XCIgXSwgWyBcIk5pZ2VyIChOaWphcilcIiwgXCJuZVwiLCBcIjIyN1wiIF0sIFsgXCJOaWdlcmlhXCIsIFwibmdcIiwgXCIyMzRcIiBdLCBbIFwiTml1ZVwiLCBcIm51XCIsIFwiNjgzXCIgXSwgWyBcIk5vcmZvbGsgSXNsYW5kXCIsIFwibmZcIiwgXCI2NzJcIiBdLCBbIFwiTm9ydGggS29yZWEgKOyhsOyEoCDrr7zso7zso7zsnZgg7J2466+8IOqzte2ZlOq1rSlcIiwgXCJrcFwiLCBcIjg1MFwiIF0sIFsgXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIiwgXCJtcFwiLCBcIjFcIiwgMTcsIFsgXCI2NzBcIiBdIF0sIFsgXCJOb3J3YXkgKE5vcmdlKVwiLCBcIm5vXCIsIFwiNDdcIiwgMCBdLCBbIFwiT21hbiAo4oCr2LnZj9mF2KfZhuKArOKAjilcIiwgXCJvbVwiLCBcIjk2OFwiIF0sIFsgXCJQYWtpc3RhbiAo4oCr2b7Yp9qp2LPYqtin2YbigKzigI4pXCIsIFwicGtcIiwgXCI5MlwiIF0sIFsgXCJQYWxhdVwiLCBcInB3XCIsIFwiNjgwXCIgXSwgWyBcIlBhbGVzdGluZSAo4oCr2YHZhNiz2LfZitmG4oCs4oCOKVwiLCBcInBzXCIsIFwiOTcwXCIgXSwgWyBcIlBhbmFtYSAoUGFuYW3DoSlcIiwgXCJwYVwiLCBcIjUwN1wiIF0sIFsgXCJQYXB1YSBOZXcgR3VpbmVhXCIsIFwicGdcIiwgXCI2NzVcIiBdLCBbIFwiUGFyYWd1YXlcIiwgXCJweVwiLCBcIjU5NVwiIF0sIFsgXCJQZXJ1IChQZXLDuilcIiwgXCJwZVwiLCBcIjUxXCIgXSwgWyBcIlBoaWxpcHBpbmVzXCIsIFwicGhcIiwgXCI2M1wiIF0sIFsgXCJQb2xhbmQgKFBvbHNrYSlcIiwgXCJwbFwiLCBcIjQ4XCIgXSwgWyBcIlBvcnR1Z2FsXCIsIFwicHRcIiwgXCIzNTFcIiBdLCBbIFwiUHVlcnRvIFJpY29cIiwgXCJwclwiLCBcIjFcIiwgMywgWyBcIjc4N1wiLCBcIjkzOVwiIF0gXSwgWyBcIlFhdGFyICjigKvZgti32LHigKzigI4pXCIsIFwicWFcIiwgXCI5NzRcIiBdLCBbIFwiUsOpdW5pb24gKExhIFLDqXVuaW9uKVwiLCBcInJlXCIsIFwiMjYyXCIsIDAgXSwgWyBcIlJvbWFuaWEgKFJvbcOibmlhKVwiLCBcInJvXCIsIFwiNDBcIiBdLCBbIFwiUnVzc2lhICjQoNC+0YHRgdC40Y8pXCIsIFwicnVcIiwgXCI3XCIsIDAgXSwgWyBcIlJ3YW5kYVwiLCBcInJ3XCIsIFwiMjUwXCIgXSwgWyBcIlNhaW50IEJhcnRow6lsZW15XCIsIFwiYmxcIiwgXCI1OTBcIiwgMSBdLCBbIFwiU2FpbnQgSGVsZW5hXCIsIFwic2hcIiwgXCIyOTBcIiBdLCBbIFwiU2FpbnQgS2l0dHMgYW5kIE5ldmlzXCIsIFwia25cIiwgXCIxXCIsIDE4LCBbIFwiODY5XCIgXSBdLCBbIFwiU2FpbnQgTHVjaWFcIiwgXCJsY1wiLCBcIjFcIiwgMTksIFsgXCI3NThcIiBdIF0sIFsgXCJTYWludCBNYXJ0aW4gKFNhaW50LU1hcnRpbiAocGFydGllIGZyYW7Dp2Fpc2UpKVwiLCBcIm1mXCIsIFwiNTkwXCIsIDIgXSwgWyBcIlNhaW50IFBpZXJyZSBhbmQgTWlxdWVsb24gKFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvbilcIiwgXCJwbVwiLCBcIjUwOFwiIF0sIFsgXCJTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lc1wiLCBcInZjXCIsIFwiMVwiLCAyMCwgWyBcIjc4NFwiIF0gXSwgWyBcIlNhbW9hXCIsIFwid3NcIiwgXCI2ODVcIiBdLCBbIFwiU2FuIE1hcmlub1wiLCBcInNtXCIsIFwiMzc4XCIgXSwgWyBcIlPDo28gVG9tw6kgYW5kIFByw61uY2lwZSAoU8OjbyBUb23DqSBlIFByw61uY2lwZSlcIiwgXCJzdFwiLCBcIjIzOVwiIF0sIFsgXCJTYXVkaSBBcmFiaWEgKOKAq9in2YTZhdmF2YTZg9ipINin2YTYudix2KjZitipINin2YTYs9i52YjYr9mK2KnigKzigI4pXCIsIFwic2FcIiwgXCI5NjZcIiBdLCBbIFwiU2VuZWdhbCAoU8OpbsOpZ2FsKVwiLCBcInNuXCIsIFwiMjIxXCIgXSwgWyBcIlNlcmJpYSAo0KHRgNCx0LjRmNCwKVwiLCBcInJzXCIsIFwiMzgxXCIgXSwgWyBcIlNleWNoZWxsZXNcIiwgXCJzY1wiLCBcIjI0OFwiIF0sIFsgXCJTaWVycmEgTGVvbmVcIiwgXCJzbFwiLCBcIjIzMlwiIF0sIFsgXCJTaW5nYXBvcmVcIiwgXCJzZ1wiLCBcIjY1XCIgXSwgWyBcIlNpbnQgTWFhcnRlblwiLCBcInN4XCIsIFwiMVwiLCAyMSwgWyBcIjcyMVwiIF0gXSwgWyBcIlNsb3Zha2lhIChTbG92ZW5za28pXCIsIFwic2tcIiwgXCI0MjFcIiBdLCBbIFwiU2xvdmVuaWEgKFNsb3ZlbmlqYSlcIiwgXCJzaVwiLCBcIjM4NlwiIF0sIFsgXCJTb2xvbW9uIElzbGFuZHNcIiwgXCJzYlwiLCBcIjY3N1wiIF0sIFsgXCJTb21hbGlhIChTb29tYWFsaXlhKVwiLCBcInNvXCIsIFwiMjUyXCIgXSwgWyBcIlNvdXRoIEFmcmljYVwiLCBcInphXCIsIFwiMjdcIiBdLCBbIFwiU291dGggS29yZWEgKOuMgO2VnOuvvOq1rSlcIiwgXCJrclwiLCBcIjgyXCIgXSwgWyBcIlNvdXRoIFN1ZGFuICjigKvYrNmG2YjYqCDYp9mE2LPZiNiv2KfZhuKArOKAjilcIiwgXCJzc1wiLCBcIjIxMVwiIF0sIFsgXCJTcGFpbiAoRXNwYcOxYSlcIiwgXCJlc1wiLCBcIjM0XCIgXSwgWyBcIlNyaSBMYW5rYSAo4LeB4LeK4oCN4La74LeTIOC2veC2guC2muC3j+C3gClcIiwgXCJsa1wiLCBcIjk0XCIgXSwgWyBcIlN1ZGFuICjigKvYp9mE2LPZiNiv2KfZhuKArOKAjilcIiwgXCJzZFwiLCBcIjI0OVwiIF0sIFsgXCJTdXJpbmFtZVwiLCBcInNyXCIsIFwiNTk3XCIgXSwgWyBcIlN2YWxiYXJkIGFuZCBKYW4gTWF5ZW5cIiwgXCJzalwiLCBcIjQ3XCIsIDEsIFsgXCI3OVwiIF0gXSwgWyBcIlN3YXppbGFuZFwiLCBcInN6XCIsIFwiMjY4XCIgXSwgWyBcIlN3ZWRlbiAoU3ZlcmlnZSlcIiwgXCJzZVwiLCBcIjQ2XCIgXSwgWyBcIlN3aXR6ZXJsYW5kIChTY2h3ZWl6KVwiLCBcImNoXCIsIFwiNDFcIiBdLCBbIFwiU3lyaWEgKOKAq9iz2YjYsdmK2KfigKzigI4pXCIsIFwic3lcIiwgXCI5NjNcIiBdLCBbIFwiVGFpd2FuICjlj7DngaMpXCIsIFwidHdcIiwgXCI4ODZcIiBdLCBbIFwiVGFqaWtpc3RhblwiLCBcInRqXCIsIFwiOTkyXCIgXSwgWyBcIlRhbnphbmlhXCIsIFwidHpcIiwgXCIyNTVcIiBdLCBbIFwiVGhhaWxhbmQgKOC5hOC4l+C4oilcIiwgXCJ0aFwiLCBcIjY2XCIgXSwgWyBcIlRpbW9yLUxlc3RlXCIsIFwidGxcIiwgXCI2NzBcIiBdLCBbIFwiVG9nb1wiLCBcInRnXCIsIFwiMjI4XCIgXSwgWyBcIlRva2VsYXVcIiwgXCJ0a1wiLCBcIjY5MFwiIF0sIFsgXCJUb25nYVwiLCBcInRvXCIsIFwiNjc2XCIgXSwgWyBcIlRyaW5pZGFkIGFuZCBUb2JhZ29cIiwgXCJ0dFwiLCBcIjFcIiwgMjIsIFsgXCI4NjhcIiBdIF0sIFsgXCJUdW5pc2lhICjigKvYqtmI2YbYs+KArOKAjilcIiwgXCJ0blwiLCBcIjIxNlwiIF0sIFsgXCJUdXJrZXkgKFTDvHJraXllKVwiLCBcInRyXCIsIFwiOTBcIiBdLCBbIFwiVHVya21lbmlzdGFuXCIsIFwidG1cIiwgXCI5OTNcIiBdLCBbIFwiVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzXCIsIFwidGNcIiwgXCIxXCIsIDIzLCBbIFwiNjQ5XCIgXSBdLCBbIFwiVHV2YWx1XCIsIFwidHZcIiwgXCI2ODhcIiBdLCBbIFwiVS5TLiBWaXJnaW4gSXNsYW5kc1wiLCBcInZpXCIsIFwiMVwiLCAyNCwgWyBcIjM0MFwiIF0gXSwgWyBcIlVnYW5kYVwiLCBcInVnXCIsIFwiMjU2XCIgXSwgWyBcIlVrcmFpbmUgKNCj0LrRgNCw0ZfQvdCwKVwiLCBcInVhXCIsIFwiMzgwXCIgXSwgWyBcIlVuaXRlZCBBcmFiIEVtaXJhdGVzICjigKvYp9mE2KXZhdin2LHYp9iqINin2YTYudix2KjZitipINin2YTZhdiq2K3Yr9ip4oCs4oCOKVwiLCBcImFlXCIsIFwiOTcxXCIgXSwgWyBcIlVuaXRlZCBLaW5nZG9tXCIsIFwiZ2JcIiwgXCI0NFwiLCAwIF0sIFsgXCJVbml0ZWQgU3RhdGVzXCIsIFwidXNcIiwgXCIxXCIsIDAgXSwgWyBcIlVydWd1YXlcIiwgXCJ1eVwiLCBcIjU5OFwiIF0sIFsgXCJVemJla2lzdGFuIChPyrt6YmVraXN0b24pXCIsIFwidXpcIiwgXCI5OThcIiBdLCBbIFwiVmFudWF0dVwiLCBcInZ1XCIsIFwiNjc4XCIgXSwgWyBcIlZhdGljYW4gQ2l0eSAoQ2l0dMOgIGRlbCBWYXRpY2FubylcIiwgXCJ2YVwiLCBcIjM5XCIsIDEsIFsgXCIwNjY5OFwiIF0gXSwgWyBcIlZlbmV6dWVsYVwiLCBcInZlXCIsIFwiNThcIiBdLCBbIFwiVmlldG5hbSAoVmnhu4d0IE5hbSlcIiwgXCJ2blwiLCBcIjg0XCIgXSwgWyBcIldhbGxpcyBhbmQgRnV0dW5hIChXYWxsaXMtZXQtRnV0dW5hKVwiLCBcIndmXCIsIFwiNjgxXCIgXSwgWyBcIldlc3Rlcm4gU2FoYXJhICjigKvYp9mE2LXYrdix2KfYoSDYp9mE2LrYsdio2YrYqeKArOKAjilcIiwgXCJlaFwiLCBcIjIxMlwiLCAxLCBbIFwiNTI4OFwiLCBcIjUyODlcIiBdIF0sIFsgXCJZZW1lbiAo4oCr2KfZhNmK2YXZhuKArOKAjilcIiwgXCJ5ZVwiLCBcIjk2N1wiIF0sIFsgXCJaYW1iaWFcIiwgXCJ6bVwiLCBcIjI2MFwiIF0sIFsgXCJaaW1iYWJ3ZVwiLCBcInp3XCIsIFwiMjYzXCIgXSwgWyBcIsOFbGFuZCBJc2xhbmRzXCIsIFwiYXhcIiwgXCIzNThcIiwgMSwgWyBcIjE4XCIgXSBdIF07XG4gICAgICAgIC8vIGxvb3Agb3ZlciBhbGwgb2YgdGhlIGNvdW50cmllcyBhYm92ZSwgcmVzdHJ1Y3R1cmluZyB0aGUgZGF0YSB0byBiZSBvYmplY3RzIHdpdGggbmFtZWQga2V5c1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbENvdW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGMgPSBhbGxDb3VudHJpZXNbaV07XG4gICAgICAgICAgICBhbGxDb3VudHJpZXNbaV0gPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogY1swXSxcbiAgICAgICAgICAgICAgICBpc28yOiBjWzFdLFxuICAgICAgICAgICAgICAgIGRpYWxDb2RlOiBjWzJdLFxuICAgICAgICAgICAgICAgIHByaW9yaXR5OiBjWzNdIHx8IDAsXG4gICAgICAgICAgICAgICAgYXJlYUNvZGVzOiBjWzRdIHx8IG51bGxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIGZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgICAgICAgICAgIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICAgICAgICAgICAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICAgICAgICAgICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICAgICAgICB9XG4gICAgICAgIHZhciBpbnRsVGVsSW5wdXRHbG9iYWxzID0ge1xuICAgICAgICAgICAgZ2V0SW5zdGFuY2U6IGZ1bmN0aW9uIGdldEluc3RhbmNlKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgdmFyIGlkID0gaW5wdXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1pbnRsLXRlbC1pbnB1dC1pZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuaW5zdGFuY2VzW2lkXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnN0YW5jZXM6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiKSB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscyA9IGludGxUZWxJbnB1dEdsb2JhbHM7XG4gICAgICAgIC8vIHRoZXNlIHZhcnMgcGVyc2lzdCB0aHJvdWdoIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHBsdWdpblxuICAgICAgICB2YXIgaWQgPSAwO1xuICAgICAgICB2YXIgZGVmYXVsdHMgPSB7XG4gICAgICAgICAgICAvLyB3aGV0aGVyIG9yIG5vdCB0byBhbGxvdyB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgIGFsbG93RHJvcGRvd246IHRydWUsXG4gICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBqdXN0IGEgZGlhbCBjb2RlIGluIHRoZSBpbnB1dDogcmVtb3ZlIGl0IG9uIGJsdXJcbiAgICAgICAgICAgIGF1dG9IaWRlRGlhbENvZGU6IHRydWUsXG4gICAgICAgICAgICAvLyBhZGQgYSBwbGFjZWhvbGRlciBpbiB0aGUgaW5wdXQgd2l0aCBhbiBleGFtcGxlIG51bWJlciBmb3IgdGhlIHNlbGVjdGVkIGNvdW50cnlcbiAgICAgICAgICAgIGF1dG9QbGFjZWhvbGRlcjogXCJwb2xpdGVcIixcbiAgICAgICAgICAgIC8vIG1vZGlmeSB0aGUgcGFyZW50Q2xhc3NcbiAgICAgICAgICAgIGN1c3RvbUNvbnRhaW5lcjogXCJcIixcbiAgICAgICAgICAgIC8vIG1vZGlmeSB0aGUgYXV0byBwbGFjZWhvbGRlclxuICAgICAgICAgICAgY3VzdG9tUGxhY2Vob2xkZXI6IG51bGwsXG4gICAgICAgICAgICAvLyBhcHBlbmQgbWVudSB0byBzcGVjaWZpZWQgZWxlbWVudFxuICAgICAgICAgICAgZHJvcGRvd25Db250YWluZXI6IG51bGwsXG4gICAgICAgICAgICAvLyBkb24ndCBkaXNwbGF5IHRoZXNlIGNvdW50cmllc1xuICAgICAgICAgICAgZXhjbHVkZUNvdW50cmllczogW10sXG4gICAgICAgICAgICAvLyBmb3JtYXQgdGhlIGlucHV0IHZhbHVlIGR1cmluZyBpbml0aWFsaXNhdGlvbiBhbmQgb24gc2V0TnVtYmVyXG4gICAgICAgICAgICBmb3JtYXRPbkRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICAvLyBnZW9JcCBsb29rdXAgZnVuY3Rpb25cbiAgICAgICAgICAgIGdlb0lwTG9va3VwOiBudWxsLFxuICAgICAgICAgICAgLy8gaW5qZWN0IGEgaGlkZGVuIGlucHV0IHdpdGggdGhpcyBuYW1lLCBhbmQgb24gc3VibWl0LCBwb3B1bGF0ZSBpdCB3aXRoIHRoZSByZXN1bHQgb2YgZ2V0TnVtYmVyXG4gICAgICAgICAgICBoaWRkZW5JbnB1dDogXCJcIixcbiAgICAgICAgICAgIC8vIGluaXRpYWwgY291bnRyeVxuICAgICAgICAgICAgaW5pdGlhbENvdW50cnk6IFwiXCIsXG4gICAgICAgICAgICAvLyBsb2NhbGl6ZWQgY291bnRyeSBuYW1lcyBlLmcuIHsgJ2RlJzogJ0RldXRzY2hsYW5kJyB9XG4gICAgICAgICAgICBsb2NhbGl6ZWRDb3VudHJpZXM6IG51bGwsXG4gICAgICAgICAgICAvLyBkb24ndCBpbnNlcnQgaW50ZXJuYXRpb25hbCBkaWFsIGNvZGVzXG4gICAgICAgICAgICBuYXRpb25hbE1vZGU6IHRydWUsXG4gICAgICAgICAgICAvLyBkaXNwbGF5IG9ubHkgdGhlc2UgY291bnRyaWVzXG4gICAgICAgICAgICBvbmx5Q291bnRyaWVzOiBbXSxcbiAgICAgICAgICAgIC8vIG51bWJlciB0eXBlIHRvIHVzZSBmb3IgcGxhY2Vob2xkZXJzXG4gICAgICAgICAgICBwbGFjZWhvbGRlck51bWJlclR5cGU6IFwiTU9CSUxFXCIsXG4gICAgICAgICAgICAvLyB0aGUgY291bnRyaWVzIGF0IHRoZSB0b3Agb2YgdGhlIGxpc3QuIGRlZmF1bHRzIHRvIHVuaXRlZCBzdGF0ZXMgYW5kIHVuaXRlZCBraW5nZG9tXG4gICAgICAgICAgICBwcmVmZXJyZWRDb3VudHJpZXM6IFsgXCJ1c1wiLCBcImdiXCIgXSxcbiAgICAgICAgICAgIC8vIGRpc3BsYXkgdGhlIGNvdW50cnkgZGlhbCBjb2RlIG5leHQgdG8gdGhlIHNlbGVjdGVkIGZsYWcgc28gaXQncyBub3QgcGFydCBvZiB0aGUgdHlwZWQgbnVtYmVyXG4gICAgICAgICAgICBzZXBhcmF0ZURpYWxDb2RlOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIHNwZWNpZnkgdGhlIHBhdGggdG8gdGhlIGxpYnBob25lbnVtYmVyIHNjcmlwdCB0byBlbmFibGUgdmFsaWRhdGlvbi9mb3JtYXR0aW5nXG4gICAgICAgICAgICB1dGlsc1NjcmlwdDogXCJcIlxuICAgICAgICB9O1xuICAgICAgICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaXN0X29mX05vcnRoX0FtZXJpY2FuX051bWJlcmluZ19QbGFuX2FyZWFfY29kZXMjTm9uLWdlb2dyYXBoaWNfYXJlYV9jb2Rlc1xuICAgICAgICB2YXIgcmVnaW9ubGVzc05hbnBOdW1iZXJzID0gWyBcIjgwMFwiLCBcIjgyMlwiLCBcIjgzM1wiLCBcIjg0NFwiLCBcIjg1NVwiLCBcIjg2NlwiLCBcIjg3N1wiLCBcIjg4MFwiLCBcIjg4MVwiLCBcIjg4MlwiLCBcIjg4M1wiLCBcIjg4NFwiLCBcIjg4NVwiLCBcIjg4NlwiLCBcIjg4N1wiLCBcIjg4OFwiLCBcIjg4OVwiIF07XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAvLyBrZWVwIHRyYWNrIG9mIGlmIHRoZSB3aW5kb3cubG9hZCBldmVudCBoYXMgZmlyZWQgYXMgaW1wb3NzaWJsZSB0byBjaGVjayBhZnRlciB0aGUgZmFjdFxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIC8vIFVQREFURTogdXNlIGEgcHVibGljIHN0YXRpYyBmaWVsZCBzbyB3ZSBjYW4gZnVkZ2UgaXQgaW4gdGhlIHRlc3RzXG4gICAgICAgICAgICAgICAgd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMud2luZG93TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIHV0aWxpdHkgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGFuIG9iamVjdC4gY2FuJ3QgdXNlIE9iamVjdC5lbnRyaWVzIG9yIG5hdGl2ZSBmb3JFYWNoIGJlY2F1c2VcbiAgICAgICAgLy8gb2YgSUUxMVxuICAgICAgICB2YXIgZm9yRWFjaFByb3AgPSBmdW5jdGlvbiBmb3JFYWNoUHJvcChvYmosIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhrZXlzW2ldLCBvYmpba2V5c1tpXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBydW4gYSBtZXRob2Qgb24gZWFjaCBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luXG4gICAgICAgIHZhciBmb3JFYWNoSW5zdGFuY2UgPSBmdW5jdGlvbiBmb3JFYWNoSW5zdGFuY2UobWV0aG9kKSB7XG4gICAgICAgICAgICBmb3JFYWNoUHJvcCh3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5pbnN0YW5jZXMsIGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLmluc3RhbmNlc1trZXldW21ldGhvZF0oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICAvLyB0aGlzIGlzIG91ciBwbHVnaW4gY2xhc3MgdGhhdCB3ZSB3aWxsIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgdmFyIEl0aSA9IC8qI19fUFVSRV9fKi9cbiAgICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBmdW5jdGlvbiBJdGkoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJdGkpO1xuICAgICAgICAgICAgICAgIHRoaXMuaWQgPSBpZCsrO1xuICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQgPSBpbnB1dDtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHNwZWNpZmllZCBvcHRpb25zIC8gZGVmYXVsdHNcbiAgICAgICAgICAgICAgICAvLyBhbHRlcm5hdGl2ZSB0byBPYmplY3QuYXNzaWduLCB3aGljaCBpc24ndCBzdXBwb3J0ZWQgYnkgSUUxMVxuICAgICAgICAgICAgICAgIHZhciBjdXN0b21PcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3JFYWNoUHJvcChkZWZhdWx0cywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5vcHRpb25zW2tleV0gPSBjdXN0b21PcHRpb25zLmhhc093blByb3BlcnR5KGtleSkgPyBjdXN0b21PcHRpb25zW2tleV0gOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhZEluaXRpYWxQbGFjZWhvbGRlciA9IEJvb2xlYW4oaW5wdXQuZ2V0QXR0cmlidXRlKFwicGxhY2Vob2xkZXJcIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX2NyZWF0ZUNsYXNzKEl0aSwgWyB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9pbml0XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbml0KCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgaW4gbmF0aW9uYWxNb2RlLCBkaXNhYmxlIG9wdGlvbnMgcmVsYXRpbmcgdG8gZGlhbCBjb2Rlc1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm5hdGlvbmFsTW9kZSkgdGhpcy5vcHRpb25zLmF1dG9IaWRlRGlhbENvZGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgc2VwYXJhdGVEaWFsQ29kZSB0aGVuIGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBBKSBpbnNlcnQgZGlhbCBjb2RlIGludG8gaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgLy8gKGF1dG9IaWRlRGlhbENvZGUpLCBhbmQgQikgZGlzcGxheSBuYXRpb25hbCBudW1iZXJzIChiZWNhdXNlIHdlJ3JlIGRpc3BsYXlpbmcgdGhlIGNvdW50cnlcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlhbCBjb2RlIG5leHQgdG8gdGhlbSlcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zZXBhcmF0ZURpYWxDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuYXV0b0hpZGVEaWFsQ29kZSA9IHRoaXMub3B0aW9ucy5uYXRpb25hbE1vZGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW5ub3QganVzdCB0ZXN0IHNjcmVlbiBzaXplIGFzIHNvbWUgc21hcnRwaG9uZXMvd2Vic2l0ZSBtZXRhIHRhZ3Mgd2lsbCByZXBvcnQgZGVza3RvcFxuICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHV0aW9uc1xuICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBmb3Igc29tZSByZWFzb24gamFzbWluZSBicmVha3MgaWYgeW91IHB1dCB0aGlzIGluIHRoZSBtYWluIFBsdWdpbiBmdW5jdGlvbiB3aXRoIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyByZXN0IG9mIHRoZXNlIGRlY2xhcmF0aW9uc1xuICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0byB0YXJnZXQgQW5kcm9pZCBNb2JpbGVzIChhbmQgbm90IFRhYmxldHMpLCB3ZSBtdXN0IGZpbmQgJ0FuZHJvaWQnIGFuZCAnTW9iaWxlJ1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gL0FuZHJvaWQuK01vYmlsZXx3ZWJPU3xpUGhvbmV8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJpZ2dlciB0aGUgbW9iaWxlIGRyb3Bkb3duIGNzc1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwiaXRpLW1vYmlsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uIG1vYmlsZSwgd2Ugd2FudCBhIGZ1bGwgc2NyZWVuIGRyb3Bkb3duLCBzbyB3ZSBtdXN0IGFwcGVuZCBpdCB0byB0aGUgYm9keVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZHJvcGRvd25Db250YWluZXIpIHRoaXMub3B0aW9ucy5kcm9wZG93bkNvbnRhaW5lciA9IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlc2UgcHJvbWlzZXMgZ2V0IHJlc29sdmVkIHdoZW4gdGhlaXIgaW5kaXZpZHVhbCByZXF1ZXN0cyBjb21wbGV0ZVxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdheSB0aGUgZGV2IGNhbiBkbyBzb21ldGhpbmcgbGlrZSBpdGkucHJvbWlzZS50aGVuKC4uLikgdG8ga25vdyB3aGVuIGFsbCByZXF1ZXN0cyBhcmVcbiAgICAgICAgICAgICAgICAgICAgLy8gY29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBQcm9taXNlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXV0b0NvdW50cnlQcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnJlc29sdmVBdXRvQ291bnRyeVByb21pc2UgPSByZXNvbHZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMi5yZWplY3RBdXRvQ291bnRyeVByb21pc2UgPSByZWplY3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1dGlsc1NjcmlwdFByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczIucmVzb2x2ZVV0aWxzU2NyaXB0UHJvbWlzZSA9IHJlc29sdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXMyLnJlamVjdFV0aWxzU2NyaXB0UHJvbWlzZSA9IHJlamVjdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9taXNlID0gUHJvbWlzZS5hbGwoWyBhdXRvQ291bnRyeVByb21pc2UsIHV0aWxzU2NyaXB0UHJvbWlzZSBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgZXJyb3JzIHdoZW4gUHJvbWlzZSBkb2Vzbid0IGV4aXN0XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVBdXRvQ291bnRyeVByb21pc2UgPSB0aGlzLnJlamVjdEF1dG9Db3VudHJ5UHJvbWlzZSA9IGZ1bmN0aW9uKCkge307XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVVdGlsc1NjcmlwdFByb21pc2UgPSB0aGlzLnJlamVjdFV0aWxzU2NyaXB0UHJvbWlzZSA9IGZ1bmN0aW9uKCkge307XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gaW4gdmFyaW91cyBzaXR1YXRpb25zIHRoZXJlIGNvdWxkIGJlIG5vIGNvdW50cnkgc2VsZWN0ZWQgaW5pdGlhbGx5LCBidXQgd2UgbmVlZCB0byBiZSBhYmxlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRvIGFzc3VtZSB0aGlzIHZhcmlhYmxlIGV4aXN0c1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2VzcyBhbGwgdGhlIGRhdGE6IG9ubHlDb3VudHJpZXMsIGV4Y2x1ZGVDb3VudHJpZXMsIHByZWZlcnJlZENvdW50cmllcyBldGNcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc0NvdW50cnlEYXRhKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGdlbmVyYXRlIHRoZSBtYXJrdXBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVNYXJrdXAoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBpbnB1dCB2YWx1ZSBhbmQgdGhlIHNlbGVjdGVkIGZsYWdcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0SW5pdGlhbFN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IGFsbCBvZiB0aGUgZXZlbnQgbGlzdGVuZXJzOiBhdXRvSGlkZURpYWxDb2RlLCBpbnB1dCBrZXlkb3duLCBzZWxlY3RlZEZsYWcgY2xpY2tcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdExpc3RlbmVycygpO1xuICAgICAgICAgICAgICAgICAgICAvLyB1dGlscyBzY3JpcHQsIGFuZCBhdXRvIGNvdW50cnlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5pdFJlcXVlc3RzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfcHJvY2Vzc0NvdW50cnlEYXRhXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9wcm9jZXNzQ291bnRyeURhdGEoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHByb2Nlc3Mgb25seUNvdW50cmllcyBvciBleGNsdWRlQ291bnRyaWVzIGFycmF5IGlmIHByZXNlbnRcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc0FsbENvdW50cmllcygpO1xuICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIHRoZSBjb3VudHJ5Q29kZXMgbWFwXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NDb3VudHJ5Q29kZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2VzcyB0aGUgcHJlZmVycmVkQ291bnRyaWVzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NQcmVmZXJyZWRDb3VudHJpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJhbnNsYXRlIGNvdW50cmllcyBhY2NvcmRpbmcgdG8gbG9jYWxpemVkQ291bnRyaWVzIG9wdGlvblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvY2FsaXplZENvdW50cmllcykgdGhpcy5fdHJhbnNsYXRlQ291bnRyaWVzQnlMb2NhbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gc29ydCBjb3VudHJpZXMgYnkgbmFtZVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9ubHlDb3VudHJpZXMubGVuZ3RoIHx8IHRoaXMub3B0aW9ucy5sb2NhbGl6ZWRDb3VudHJpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyaWVzLnNvcnQodGhpcy5fY291bnRyeU5hbWVTb3J0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2FkZENvdW50cnlDb2RlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9hZGRDb3VudHJ5Q29kZShpc28yLCBkaWFsQ29kZSwgcHJpb3JpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRpYWxDb2RlLmxlbmd0aCA+IHRoaXMuZGlhbENvZGVNYXhMZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbENvZGVNYXhMZW4gPSBkaWFsQ29kZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvdW50cnlDb2Rlcy5oYXNPd25Qcm9wZXJ0eShkaWFsQ29kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGVzW2RpYWxDb2RlXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGJhaWwgaWYgd2UgYWxyZWFkeSBoYXZlIHRoaXMgY291bnRyeSBmb3IgdGhpcyBkaWFsQ29kZVxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRyeUNvZGVzW2RpYWxDb2RlXS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY291bnRyeUNvZGVzW2RpYWxDb2RlXVtpXSA9PT0gaXNvMikgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGZvciB1bmRlZmluZWQgYXMgMCBpcyBmYWxzeVxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBwcmlvcml0eSAhPT0gdW5kZWZpbmVkID8gcHJpb3JpdHkgOiB0aGlzLmNvdW50cnlDb2Rlc1tkaWFsQ29kZV0ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cnlDb2Rlc1tkaWFsQ29kZV1baW5kZXhdID0gaXNvMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9wcm9jZXNzQWxsQ291bnRyaWVzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9wcm9jZXNzQWxsQ291bnRyaWVzKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9ubHlDb3VudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbG93ZXJDYXNlT25seUNvdW50cmllcyA9IHRoaXMub3B0aW9ucy5vbmx5Q291bnRyaWVzLm1hcChmdW5jdGlvbihjb3VudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50cnkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJpZXMgPSBhbGxDb3VudHJpZXMuZmlsdGVyKGZ1bmN0aW9uKGNvdW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlT25seUNvdW50cmllcy5pbmRleE9mKGNvdW50cnkuaXNvMikgPiAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5leGNsdWRlQ291bnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxvd2VyQ2FzZUV4Y2x1ZGVDb3VudHJpZXMgPSB0aGlzLm9wdGlvbnMuZXhjbHVkZUNvdW50cmllcy5tYXAoZnVuY3Rpb24oY291bnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3VudHJ5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyaWVzID0gYWxsQ291bnRyaWVzLmZpbHRlcihmdW5jdGlvbihjb3VudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvd2VyQ2FzZUV4Y2x1ZGVDb3VudHJpZXMuaW5kZXhPZihjb3VudHJ5LmlzbzIpID09PSAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJpZXMgPSBhbGxDb3VudHJpZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl90cmFuc2xhdGVDb3VudHJpZXNCeUxvY2FsZVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfdHJhbnNsYXRlQ291bnRyaWVzQnlMb2NhbGUoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jb3VudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc28gPSB0aGlzLmNvdW50cmllc1tpXS5pc28yLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxvY2FsaXplZENvdW50cmllcy5oYXNPd25Qcm9wZXJ0eShpc28pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJpZXNbaV0ubmFtZSA9IHRoaXMub3B0aW9ucy5sb2NhbGl6ZWRDb3VudHJpZXNbaXNvXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2NvdW50cnlOYW1lU29ydFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfY291bnRyeU5hbWVTb3J0KGEsIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfcHJvY2Vzc0NvdW50cnlDb2Rlc1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcHJvY2Vzc0NvdW50cnlDb2RlcygpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsQ29kZU1heExlbiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGVzID0ge307XG4gICAgICAgICAgICAgICAgICAgIC8vIGZpcnN0OiBhZGQgZGlhbCBjb2Rlc1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IHRoaXMuY291bnRyaWVzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkQ291bnRyeUNvZGUoYy5pc28yLCBjLmRpYWxDb2RlLCBjLnByaW9yaXR5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBuZXh0OiBhZGQgYXJlYSBjb2Rlc1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgc2Vjb25kIGxvb3Agb3ZlciBjb3VudHJpZXMsIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIGFsbCBvZiB0aGUgXCJyb290XCIgY291bnRyaWVzXG4gICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaW4gdGhlIG1hcCwgc28gdGhhdCB3ZSBjYW4gYWNjZXNzIHRoZW0sIGFzIGVhY2ggdGltZSB3ZSBhZGQgYW4gYXJlYSBjb2RlIHN1YnN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAvLyB0byB0aGUgbWFwLCB3ZSBhbHNvIG5lZWQgdG8gaW5jbHVkZSB0aGUgXCJyb290XCIgY291bnRyeSdzIGNvZGUsIGFzIHRoYXQgYWxzbyBtYXRjaGVzXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCB0aGlzLmNvdW50cmllcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYyA9IHRoaXMuY291bnRyaWVzW19pXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyZWEgY29kZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfYy5hcmVhQ29kZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcm9vdENvdW50cnlDb2RlID0gdGhpcy5jb3VudHJ5Q29kZXNbX2MuZGlhbENvZGVdWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBlYWNoIGFyZWEgY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgX2MuYXJlYUNvZGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcmVhQ29kZSA9IF9jLmFyZWFDb2Rlc1tqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggZGlnaXQgaW4gdGhlIGFyZWEgY29kZSB0byBhZGQgYWxsIHBhcnRpYWwgbWF0Y2hlcyBhcyB3ZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGsgPSAxOyBrIDwgYXJlYUNvZGUubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwYXJ0aWFsRGlhbENvZGUgPSBfYy5kaWFsQ29kZSArIGFyZWFDb2RlLnN1YnN0cigwLCBrKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXJ0IHdpdGggdGhlIHJvb3QgY291bnRyeSwgYXMgdGhhdCBhbHNvIG1hdGNoZXMgdGhpcyBkaWFsIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZENvdW50cnlDb2RlKHJvb3RDb3VudHJ5Q29kZSwgcGFydGlhbERpYWxDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZENvdW50cnlDb2RlKF9jLmlzbzIsIHBhcnRpYWxEaWFsQ29kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHRoZSBmdWxsIGFyZWEgY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRDb3VudHJ5Q29kZShfYy5pc28yLCBfYy5kaWFsQ29kZSArIGFyZWFDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9wcm9jZXNzUHJlZmVycmVkQ291bnRyaWVzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9wcm9jZXNzUHJlZmVycmVkQ291bnRyaWVzKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWZlcnJlZENvdW50cmllcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3B0aW9ucy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudHJ5Q29kZSA9IHRoaXMub3B0aW9ucy5wcmVmZXJyZWRDb3VudHJpZXNbaV0udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudHJ5RGF0YSA9IHRoaXMuX2dldENvdW50cnlEYXRhKGNvdW50cnlDb2RlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnRyeURhdGEpIHRoaXMucHJlZmVycmVkQ291bnRyaWVzLnB1c2goY291bnRyeURhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfY3JlYXRlRWxcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2NyZWF0ZUVsKG5hbWUsIGF0dHJzLCBjb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJzKSBmb3JFYWNoUHJvcChhdHRycywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIpIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9nZW5lcmF0ZU1hcmt1cFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfZ2VuZXJhdGVNYXJrdXAoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIGF1dG9jb21wbGV0ZSBkb2VzIG5vdCBleGlzdCBvbiB0aGUgZWxlbWVudCBhbmQgaXRzIGZvcm0sIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgLy8gcHJldmVudCBhdXRvY29tcGxldGUgYXMgdGhlcmUncyBubyBzYWZlLCBjcm9zcy1icm93c2VyIGV2ZW50IHdlIGNhbiByZWFjdCB0bywgc28gaXQgY2FuXG4gICAgICAgICAgICAgICAgICAgIC8vIGVhc2lseSBwdXQgdGhlIHBsdWdpbiBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgZS5nLiB0aGUgd3JvbmcgZmxhZyBzZWxlY3RlZCBmb3IgdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIGF1dG9jb21wbGV0ZWQgbnVtYmVyLCB3aGljaCBvbiBzdWJtaXQgY291bGQgbWVhbiB3cm9uZyBudW1iZXIgaXMgc2F2ZWQgKGVzcCBpbiBuYXRpb25hbE1vZGUpXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy50ZWxJbnB1dC5oYXNBdHRyaWJ1dGUoXCJhdXRvY29tcGxldGVcIikgJiYgISh0aGlzLnRlbElucHV0LmZvcm0gJiYgdGhpcy50ZWxJbnB1dC5mb3JtLmhhc0F0dHJpYnV0ZShcImF1dG9jb21wbGV0ZVwiKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQuc2V0QXR0cmlidXRlKFwiYXV0b2NvbXBsZXRlXCIsIFwib2ZmXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lcnMgKG1vc3RseSBmb3IgcG9zaXRpb25pbmcpXG4gICAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnRDbGFzcyA9IFwiaXRpXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYWxsb3dEcm9wZG93bikgcGFyZW50Q2xhc3MgKz0gXCIgaXRpLS1hbGxvdy1kcm9wZG93blwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNlcGFyYXRlRGlhbENvZGUpIHBhcmVudENsYXNzICs9IFwiIGl0aS0tc2VwYXJhdGUtZGlhbC1jb2RlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuY3VzdG9tQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRDbGFzcyArPSBcIiBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENsYXNzICs9IHRoaXMub3B0aW9ucy5jdXN0b21Db250YWluZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSB0aGlzLl9jcmVhdGVFbChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzXCI6IHBhcmVudENsYXNzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIHRoaXMudGVsSW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYWdzQ29udGFpbmVyID0gdGhpcy5fY3JlYXRlRWwoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0aV9fZmxhZy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICB9LCB3cmFwcGVyKTtcbiAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0aGlzLnRlbElucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0ZWQgZmxhZyAoZGlzcGxheWVkIHRvIGxlZnQgb2YgaW5wdXQpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnID0gdGhpcy5fY3JlYXRlRWwoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0aV9fc2VsZWN0ZWQtZmxhZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogXCJjb21ib2JveFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLW93bnNcIjogXCJjb3VudHJ5LWxpc3Rib3hcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBcImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5mbGFnc0NvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnSW5uZXIgPSB0aGlzLl9jcmVhdGVFbChcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzXCI6IFwiaXRpX19mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5zZWxlY3RlZEZsYWcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNlcGFyYXRlRGlhbENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREaWFsQ29kZSA9IHRoaXMuX2NyZWF0ZUVsKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzXCI6IFwiaXRpX19zZWxlY3RlZC1kaWFsLWNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5zZWxlY3RlZEZsYWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYWxsb3dEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBlbGVtZW50IGZvY3VzYWJsZSBhbmQgdGFiIG5hdmlnYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWcuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwgXCIwXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFycm93ID0gdGhpcy5fY3JlYXRlRWwoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGlfX2Fycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMuc2VsZWN0ZWRGbGFnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50cnkgZHJvcGRvd246IHByZWZlcnJlZCBjb3VudHJpZXMsIHRoZW4gZGl2aWRlciwgdGhlbiBhbGwgY291bnRyaWVzXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cnlMaXN0ID0gdGhpcy5fY3JlYXRlRWwoXCJ1bFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiOiBcIml0aV9fY291bnRyeS1saXN0IGl0aV9faGlkZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcImNvdW50cnktbGlzdGJveFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6IFwibGlzdGJveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByZWZlcnJlZENvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRMaXN0SXRlbXModGhpcy5wcmVmZXJyZWRDb3VudHJpZXMsIFwiaXRpX19wcmVmZXJyZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlRWwoXCJsaVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2xhc3NcIjogXCJpdGlfX2RpdmlkZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogXCJzZXBhcmF0b3JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWRpc2FibGVkXCI6IFwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5jb3VudHJ5TGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRMaXN0SXRlbXModGhpcy5jb3VudHJpZXMsIFwiaXRpX19zdGFuZGFyZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBkcm9wZG93bkNvbnRhaW5lciBtYXJrdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZHJvcGRvd25Db250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duID0gdGhpcy5fY3JlYXRlRWwoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzXCI6IFwiaXRpIGl0aS0tY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duLmFwcGVuZENoaWxkKHRoaXMuY291bnRyeUxpc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYWdzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuY291bnRyeUxpc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaGlkZGVuSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoaWRkZW5JbnB1dE5hbWUgPSB0aGlzLm9wdGlvbnMuaGlkZGVuSW5wdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHRoaXMudGVsSW5wdXQuZ2V0QXR0cmlidXRlKFwibmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSBuYW1lLmxhc3RJbmRleE9mKFwiW1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBpbnB1dCBuYW1lIGNvbnRhaW5zIHNxdWFyZSBicmFja2V0cywgdGhlbiBnaXZlIHRoZSBoaWRkZW4gaW5wdXQgdGhlIHNhbWUgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNpbmcgdGhlIGNvbnRlbnRzIG9mIHRoZSBsYXN0IHNldCBvZiBicmFja2V0cyB3aXRoIHRoZSBnaXZlbiBoaWRkZW5JbnB1dCBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT09IC0xKSBoaWRkZW5JbnB1dE5hbWUgPSBcIlwiLmNvbmNhdChuYW1lLnN1YnN0cigwLCBpKSwgXCJbXCIpLmNvbmNhdChoaWRkZW5JbnB1dE5hbWUsIFwiXVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZGVuSW5wdXQgPSB0aGlzLl9jcmVhdGVFbChcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGhpZGRlbklucHV0TmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuaGlkZGVuSW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfYXBwZW5kTGlzdEl0ZW1zXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9hcHBlbmRMaXN0SXRlbXMoY291bnRyaWVzLCBjbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgY3JlYXRlIHNvIG1hbnkgRE9NIGVsZW1lbnRzLCBpdCBpcyBmYXN0ZXIgdG8gYnVpbGQgYSB0ZW1wIHN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlbiBhZGQgZXZlcnl0aGluZyB0byB0aGUgRE9NIGluIG9uZSBnbyBhdCB0aGUgZW5kXG4gICAgICAgICAgICAgICAgICAgIHZhciB0bXAgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3IgZWFjaCBjb3VudHJ5XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IGNvdW50cmllc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9wZW4gdGhlIGxpc3QgaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wICs9IFwiPGxpIGNsYXNzPSdpdGlfX2NvdW50cnkgXCIuY29uY2F0KGNsYXNzTmFtZSwgXCInIHRhYkluZGV4PSctMScgaWQ9J2l0aS1pdGVtLVwiKS5jb25jYXQoYy5pc28yLCBcIicgcm9sZT0nb3B0aW9uJyBkYXRhLWRpYWwtY29kZT0nXCIpLmNvbmNhdChjLmRpYWxDb2RlLCBcIicgZGF0YS1jb3VudHJ5LWNvZGU9J1wiKS5jb25jYXQoYy5pc28yLCBcIic+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHRoZSBmbGFnXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgKz0gXCI8ZGl2IGNsYXNzPSdpdGlfX2ZsYWctYm94Jz48ZGl2IGNsYXNzPSdpdGlfX2ZsYWcgaXRpX19cIi5jb25jYXQoYy5pc28yLCBcIic+PC9kaXY+PC9kaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBjb3VudHJ5IG5hbWUgYW5kIGRpYWwgY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wICs9IFwiPHNwYW4gY2xhc3M9J2l0aV9fY291bnRyeS1uYW1lJz5cIi5jb25jYXQoYy5uYW1lLCBcIjwvc3Bhbj5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgKz0gXCI8c3BhbiBjbGFzcz0naXRpX19kaWFsLWNvZGUnPitcIi5jb25jYXQoYy5kaWFsQ29kZSwgXCI8L3NwYW4+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvc2UgdGhlIGxpc3QgaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wICs9IFwiPC9saT5cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cnlMaXN0Lmluc2VydEFkamFjZW50SFRNTChcImJlZm9yZWVuZFwiLCB0bXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3NldEluaXRpYWxTdGF0ZVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsID0gdGhpcy50ZWxJbnB1dC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpYWxDb2RlID0gdGhpcy5fZ2V0RGlhbENvZGUodmFsKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlzUmVnaW9ubGVzc05hbnAgPSB0aGlzLl9pc1JlZ2lvbmxlc3NOYW5wKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfdGhpcyRvcHRpb25zID0gdGhpcy5vcHRpb25zLCBpbml0aWFsQ291bnRyeSA9IF90aGlzJG9wdGlvbnMuaW5pdGlhbENvdW50cnksIG5hdGlvbmFsTW9kZSA9IF90aGlzJG9wdGlvbnMubmF0aW9uYWxNb2RlLCBhdXRvSGlkZURpYWxDb2RlID0gX3RoaXMkb3B0aW9ucy5hdXRvSGlkZURpYWxDb2RlLCBzZXBhcmF0ZURpYWxDb2RlID0gX3RoaXMkb3B0aW9ucy5zZXBhcmF0ZURpYWxDb2RlO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBkaWFsIGNvZGUsIGFuZCBpdCdzIG5vdCBhIHJlZ2lvbmxlc3NOYW5wLCB3ZSBjYW4gZ28gYWhlYWQgYW5kIHNldCB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gZmxhZywgZWxzZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgY291bnRyeVxuICAgICAgICAgICAgICAgICAgICBpZiAoZGlhbENvZGUgJiYgIWlzUmVnaW9ubGVzc05hbnApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUZsYWdGcm9tTnVtYmVyKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5pdGlhbENvdW50cnkgIT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzZWUgaWYgd2Ugc2hvdWxkIHNlbGVjdCBhIGZsYWdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbml0aWFsQ291bnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEZsYWcoaW5pdGlhbENvdW50cnkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWFsQ29kZSAmJiBpc1JlZ2lvbmxlc3NOYW5wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhcyBpbnRsIGRpYWwgY29kZSwgaXMgcmVnaW9ubGVzcyBuYW5wLCBhbmQgbm8gaW5pdGlhbENvdW50cnksIHNvIGRlZmF1bHQgdG8gVVNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RmxhZyhcInVzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGRpYWwgY29kZSBhbmQgbm8gaW5pdGlhbENvdW50cnksIHNvIGRlZmF1bHQgdG8gZmlyc3QgaW4gbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5ID0gdGhpcy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoID8gdGhpcy5wcmVmZXJyZWRDb3VudHJpZXNbMF0uaXNvMiA6IHRoaXMuY291bnRyaWVzWzBdLmlzbzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRGbGFnKHRoaXMuZGVmYXVsdENvdW50cnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgZW1wdHkgYW5kIG5vIG5hdGlvbmFsTW9kZSBhbmQgbm8gYXV0b0hpZGVEaWFsQ29kZSB0aGVuIGluc2VydCB0aGUgZGVmYXVsdCBkaWFsIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsICYmICFuYXRpb25hbE1vZGUgJiYgIWF1dG9IaWRlRGlhbENvZGUgJiYgIXNlcGFyYXRlRGlhbENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnZhbHVlID0gXCIrXCIuY29uY2F0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogaWYgaW5pdGlhbENvdW50cnkgaXMgc2V0IHRvIGF1dG8sIHRoYXQgd2lsbCBiZSBoYW5kbGVkIHNlcGFyYXRlbHlcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9ybWF0IC0gbm90ZSB0aGlzIHdvbnQgYmUgcnVuIGFmdGVyIF91cGRhdGVEaWFsQ29kZSBhcyB0aGF0J3Mgb25seSBjYWxsZWQgaWYgbm8gdmFsXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwpIHRoaXMuX3VwZGF0ZVZhbEZyb21OdW1iZXIodmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9pbml0TGlzdGVuZXJzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbml0TGlzdGVuZXJzKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0S2V5TGlzdGVuZXJzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYXV0b0hpZGVEaWFsQ29kZSkgdGhpcy5faW5pdEJsdXJMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hbGxvd0Ryb3Bkb3duKSB0aGlzLl9pbml0RHJvcGRvd25MaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuSW5wdXQpIHRoaXMuX2luaXRIaWRkZW5JbnB1dExpc3RlbmVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfaW5pdEhpZGRlbklucHV0TGlzdGVuZXJcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2luaXRIaWRkZW5JbnB1dExpc3RlbmVyKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlSGlkZGVuSW5wdXRTdWJtaXQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5oaWRkZW5JbnB1dC52YWx1ZSA9IF90aGlzMy5nZXROdW1iZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGVsSW5wdXQuZm9ybSkgdGhpcy50ZWxJbnB1dC5mb3JtLmFkZEV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIiwgdGhpcy5faGFuZGxlSGlkZGVuSW5wdXRTdWJtaXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2dldENsb3Nlc3RMYWJlbFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfZ2V0Q2xvc2VzdExhYmVsKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWwgPSB0aGlzLnRlbElucHV0O1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZWwgJiYgZWwudGFnTmFtZSAhPT0gXCJMQUJFTFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbCA9IGVsLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2luaXREcm9wZG93bkxpc3RlbmVyc1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfaW5pdERyb3Bkb3duTGlzdGVuZXJzKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXM0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gaGFjayBmb3IgaW5wdXQgbmVzdGVkIGluc2lkZSBsYWJlbCAod2hpY2ggaXMgdmFsaWQgbWFya3VwKTogY2xpY2tpbmcgdGhlIHNlbGVjdGVkLWZsYWcgdG9cbiAgICAgICAgICAgICAgICAgICAgLy8gb3BlbiB0aGUgZHJvcGRvd24gd291bGQgdGhlbiBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgYSAybmQgY2xpY2sgb24gdGhlIGlucHV0IHdoaWNoIHdvdWxkXG4gICAgICAgICAgICAgICAgICAgIC8vIGNsb3NlIGl0IGFnYWluXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUxhYmVsQ2xpY2sgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZHJvcGRvd24gaXMgY2xvc2VkLCB0aGVuIGZvY3VzIHRoZSBpbnB1dCwgZWxzZSBpZ25vcmUgdGhlIGNsaWNrXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXM0LmNvdW50cnlMaXN0LmNsYXNzTGlzdC5jb250YWlucyhcIml0aV9faGlkZVwiKSkgX3RoaXM0LnRlbElucHV0LmZvY3VzKCk7IGVsc2UgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGFiZWwgPSB0aGlzLl9nZXRDbG9zZXN0TGFiZWwoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhYmVsKSBsYWJlbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5faGFuZGxlTGFiZWxDbGljayk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRvZ2dsZSBjb3VudHJ5IGRyb3Bkb3duIG9uIGNsaWNrXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrU2VsZWN0ZWRGbGFnID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IGludGVyY2VwdCB0aGlzIGV2ZW50IGlmIHdlJ3JlIG9wZW5pbmcgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbHNlIGxldCBpdCBidWJibGUgdXAgdG8gdGhlIHRvcCAoXCJjbGljay1vZmYtdG8tY2xvc2VcIiBsaXN0ZW5lcilcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGNhbm5vdCBqdXN0IHN0b3BQcm9wYWdhdGlvbiBhcyBpdCBtYXkgYmUgbmVlZGVkIHRvIGNsb3NlIGFub3RoZXIgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfdGhpczQuY291bnRyeUxpc3QuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXRpX19oaWRlXCIpICYmICFfdGhpczQudGVsSW5wdXQuZGlzYWJsZWQgJiYgIV90aGlzNC50ZWxJbnB1dC5yZWFkT25seSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNC5fc2hvd0Ryb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVDbGlja1NlbGVjdGVkRmxhZyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIG9wZW4gZHJvcGRvd24gbGlzdCBpZiBjdXJyZW50bHkgZm9jdXNlZFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVGbGFnc0NvbnRhaW5lcktleWRvd24gPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNEcm9wZG93bkhpZGRlbiA9IF90aGlzNC5jb3VudHJ5TGlzdC5jbGFzc0xpc3QuY29udGFpbnMoXCJpdGlfX2hpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEcm9wZG93bkhpZGRlbiAmJiBbIFwiQXJyb3dVcFwiLCBcIlVwXCIsIFwiQXJyb3dEb3duXCIsIFwiRG93blwiLCBcIiBcIiwgXCJFbnRlclwiIF0uaW5kZXhPZihlLmtleSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJldmVudCBmb3JtIGZyb20gYmVpbmcgc3VibWl0dGVkIGlmIFwiRU5URVJcIiB3YXMgcHJlc3NlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGV2ZW50IGZyb20gYmVpbmcgaGFuZGxlZCBhZ2FpbiBieSBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM0Ll9zaG93RHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbG93IG5hdmlnYXRpb24gZnJvbSBkcm9wZG93biB0byBpbnB1dCBvbiBUQUJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJUYWJcIikgX3RoaXM0Ll9jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmxhZ3NDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5faGFuZGxlRmxhZ3NDb250YWluZXJLZXlkb3duKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9pbml0UmVxdWVzdHNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2luaXRSZXF1ZXN0cygpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF90aGlzNSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQgdGhlIHBhdGggdG8gdGhlIHV0aWxzIHNjcmlwdCwgZmV0Y2ggaXQgb24gd2luZG93LmxvYWQsIGVsc2UgcmVzb2x2ZVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnV0aWxzU2NyaXB0ICYmICF3aW5kb3cuaW50bFRlbElucHV0VXRpbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBwbHVnaW4gaXMgYmVpbmcgaW5pdGlhbGlzZWQgYWZ0ZXIgdGhlIHdpbmRvdy5sb2FkIGV2ZW50IGhhcyBhbHJlYWR5IGJlZW4gZmlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy53aW5kb3dMb2FkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5sb2FkVXRpbHModGhpcy5vcHRpb25zLnV0aWxzU2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FpdCB1bnRpbCB0aGUgbG9hZCBldmVudCBzbyB3ZSBkb24ndCBibG9jayBhbnkgb3RoZXIgcmVxdWVzdHMgZS5nLiB0aGUgZmxhZ3MgaW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLmxvYWRVdGlscyhfdGhpczUub3B0aW9ucy51dGlsc1NjcmlwdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB0aGlzLnJlc29sdmVVdGlsc1NjcmlwdFByb21pc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbml0aWFsQ291bnRyeSA9PT0gXCJhdXRvXCIpIHRoaXMuX2xvYWRBdXRvQ291bnRyeSgpOyBlbHNlIHRoaXMucmVzb2x2ZUF1dG9Db3VudHJ5UHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2xvYWRBdXRvQ291bnRyeVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfbG9hZEF1dG9Db3VudHJ5KCkge1xuICAgICAgICAgICAgICAgICAgICAvLyAzIG9wdGlvbnM6XG4gICAgICAgICAgICAgICAgICAgIC8vIDEpIGFscmVhZHkgbG9hZGVkICh3ZSdyZSBkb25lKVxuICAgICAgICAgICAgICAgICAgICAvLyAyKSBub3QgYWxyZWFkeSBzdGFydGVkIGxvYWRpbmcgKHN0YXJ0KVxuICAgICAgICAgICAgICAgICAgICAvLyAzKSBhbHJlYWR5IHN0YXJ0ZWQgbG9hZGluZyAoZG8gbm90aGluZyAtIGp1c3Qgd2FpdCBmb3IgbG9hZGluZyBjYWxsYmFjayB0byBmaXJlKVxuICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuYXV0b0NvdW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQXV0b0NvdW50cnkoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuc3RhcnRlZExvYWRpbmdBdXRvQ291bnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgZG8gdGhpcyB0d2ljZSFcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLnN0YXJ0ZWRMb2FkaW5nQXV0b0NvdW50cnkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuZ2VvSXBMb29rdXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5nZW9JcExvb2t1cChmdW5jdGlvbihjb3VudHJ5Q29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5hdXRvQ291bnRyeSA9IGNvdW50cnlDb2RlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRlbGwgYWxsIGluc3RhbmNlcyB0aGUgYXV0byBjb3VudHJ5IGlzIHJlYWR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGp1c3QgYmUgdGhlIGN1cnJlbnQgaW5zdGFuY2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVQREFURTogdXNlIHNldFRpbWVvdXQgaW4gY2FzZSB0aGVpciBnZW9JcExvb2t1cCBmdW5jdGlvbiBjYWxscyB0aGlzIGNhbGxiYWNrIHN0cmFpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGF3YXkgKGUuZy4gaWYgdGhleSBoYXZlIGFscmVhZHkgZG9uZSB0aGUgZ2VvIGlwIGxvb2t1cCBzb21ld2hlcmUgZWxzZSkuIFVzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldFRpbWVvdXQgbWVhbnMgdGhhdCB0aGUgY3VycmVudCB0aHJlYWQgb2YgZXhlY3V0aW9uIHdpbGwgZmluaXNoIGJlZm9yZSBleGVjdXRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcywgd2hpY2ggYWxsb3dzIHRoZSBwbHVnaW4gdG8gZmluaXNoIGluaXRpYWxpc2luZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JFYWNoSW5zdGFuY2UoXCJoYW5kbGVBdXRvQ291bnRyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3JFYWNoSW5zdGFuY2UoXCJyZWplY3RBdXRvQ291bnRyeVByb21pc2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9pbml0S2V5TGlzdGVuZXJzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbml0S2V5TGlzdGVuZXJzKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXM2ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGZsYWcgb24ga2V5dXBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlS2V5dXBFdmVudCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF90aGlzNi5fdXBkYXRlRmxhZ0Zyb21OdW1iZXIoX3RoaXM2LnRlbElucHV0LnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNi5fdHJpZ2dlckNvdW50cnlDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIiwgdGhpcy5faGFuZGxlS2V5dXBFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBmbGFnIG9uIGN1dC9wYXN0ZSBldmVudHMgKG5vdyBzdXBwb3J0ZWQgaW4gYWxsIG1ham9yIGJyb3dzZXJzKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVDbGlwYm9hcmRFdmVudCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFjayBiZWNhdXNlIFwicGFzdGVcIiBldmVudCBpcyBmaXJlZCBiZWZvcmUgaW5wdXQgaXMgdXBkYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChfdGhpczYuX2hhbmRsZUtleXVwRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJjdXRcIiwgdGhpcy5faGFuZGxlQ2xpcGJvYXJkRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LmFkZEV2ZW50TGlzdGVuZXIoXCJwYXN0ZVwiLCB0aGlzLl9oYW5kbGVDbGlwYm9hcmRFdmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfY2FwXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9jYXAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtYXggPSB0aGlzLnRlbElucHV0LmdldEF0dHJpYnV0ZShcIm1heGxlbmd0aFwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1heCAmJiBudW1iZXIubGVuZ3RoID4gbWF4ID8gbnVtYmVyLnN1YnN0cigwLCBtYXgpIDogbnVtYmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2luaXRCbHVyTGlzdGVuZXJzXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbml0Qmx1ckxpc3RlbmVycygpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF90aGlzNyA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIG9uIGJsdXIgb3IgZm9ybSBzdWJtaXQ6IGlmIGp1c3QgYSBkaWFsIGNvZGUgdGhlbiByZW1vdmUgaXRcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlU3VibWl0T3JCbHVyRXZlbnQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNy5fcmVtb3ZlRW1wdHlEaWFsQ29kZSgpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50ZWxJbnB1dC5mb3JtKSB0aGlzLnRlbElucHV0LmZvcm0uYWRkRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCB0aGlzLl9oYW5kbGVTdWJtaXRPckJsdXJFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgdGhpcy5faGFuZGxlU3VibWl0T3JCbHVyRXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3JlbW92ZUVtcHR5RGlhbENvZGVcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3JlbW92ZUVtcHR5RGlhbENvZGUoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlbElucHV0LnZhbHVlLmNoYXJBdCgwKSA9PT0gXCIrXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBudW1lcmljID0gdGhpcy5fZ2V0TnVtZXJpYyh0aGlzLnRlbElucHV0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGp1c3QgYSBwbHVzLCBvciBpZiBqdXN0IGEgZGlhbCBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW51bWVyaWMgfHwgdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmRpYWxDb2RlID09PSBudW1lcmljKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC52YWx1ZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9nZXROdW1lcmljXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXROdW1lcmljKHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3RyaWdnZXJcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3RyaWdnZXIobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIHRvIHVzZSBvbGQgc2Nob29sIGRvY3VtZW50LmNyZWF0ZUV2ZW50IGFzIElFMTEgZG9lc24ndCBzdXBwb3J0IGBuZXcgRXZlbnQoKWAgc3ludGF4XG4gICAgICAgICAgICAgICAgICAgIHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKTtcbiAgICAgICAgICAgICAgICAgICAgZS5pbml0RXZlbnQobmFtZSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNhbiBidWJibGUsIGFuZCBpcyBjYW5jZWxsYWJsZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LmRpc3BhdGNoRXZlbnQoZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfc2hvd0Ryb3Bkb3duXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9zaG93RHJvcGRvd24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUxpc3QuY2xhc3NMaXN0LnJlbW92ZShcIml0aV9faGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWcuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCBcInRydWVcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldERyb3Bkb3duUG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGhpZ2hsaWdodGluZyBhbmQgc2Nyb2xsIHRvIGFjdGl2ZSBsaXN0IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0TGlzdEl0ZW0odGhpcy5hY3RpdmVJdGVtLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY3JvbGxUbyh0aGlzLmFjdGl2ZUl0ZW0sIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGJpbmQgYWxsIHRoZSBkcm9wZG93bi1yZWxhdGVkIGxpc3RlbmVyczogbW91c2VvdmVyLCBjbGljaywgY2xpY2stb2ZmLCBrZXlkb3duXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2JpbmREcm9wZG93bkxpc3RlbmVycygpO1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGFycm93XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25BcnJvdy5jbGFzc0xpc3QuYWRkKFwiaXRpX19hcnJvdy0tdXBcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIoXCJvcGVuOmNvdW50cnlkcm9wZG93blwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl90b2dnbGVDbGFzc1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfdG9nZ2xlQ2xhc3MoZWwsIGNsYXNzTmFtZSwgc2hvdWxkSGF2ZUNsYXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRIYXZlQ2xhc3MgJiYgIWVsLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSBlbC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7IGVsc2UgaWYgKCFzaG91bGRIYXZlQ2xhc3MgJiYgZWwuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIGVsLmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9zZXREcm9wZG93blBvc2l0aW9uXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9zZXREcm9wZG93blBvc2l0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3RoaXM4ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kcm9wZG93bkNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmRyb3Bkb3duQ29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBvcyA9IHRoaXMudGVsSW5wdXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3aW5kb3dUb3AgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTQzODQwOTEvMjE3ODY2XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgd2luZG93VG9wID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXRUb3AgPSBwb3MudG9wICsgd2luZG93VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRyb3Bkb3duSGVpZ2h0ID0gdGhpcy5jb3VudHJ5TGlzdC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkcm9wZG93bkZpdHNCZWxvdyA9IChkcm9wZG93bkJvdHRvbSA8IHdpbmRvd0JvdHRvbSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkcm9wZG93bkZpdHNCZWxvdyA9IGlucHV0VG9wICsgdGhpcy50ZWxJbnB1dC5vZmZzZXRIZWlnaHQgKyBkcm9wZG93bkhlaWdodCA8IHdpbmRvd1RvcCArIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkcm9wZG93bkZpdHNBYm92ZSA9IGlucHV0VG9wIC0gZHJvcGRvd25IZWlnaHQgPiB3aW5kb3dUb3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBieSBkZWZhdWx0LCB0aGUgZHJvcGRvd24gd2lsbCBiZSBiZWxvdyB0aGUgaW5wdXQuIElmIHdlIHdhbnQgdG8gcG9zaXRpb24gaXQgYWJvdmUgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnB1dCwgd2UgYWRkIHRoZSBkcm9wdXAgY2xhc3MuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90b2dnbGVDbGFzcyh0aGlzLmNvdW50cnlMaXN0LCBcIml0aV9fY291bnRyeS1saXN0LS1kcm9wdXBcIiwgIWRyb3Bkb3duRml0c0JlbG93ICYmIGRyb3Bkb3duRml0c0Fib3ZlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGRyb3Bkb3duQ29udGFpbmVyIGlzIGVuYWJsZWQsIGNhbGN1bGF0ZSBwb3N0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRyb3Bkb3duQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnkgZGVmYXVsdCB0aGUgZHJvcGRvd24gd2lsbCBiZSBkaXJlY3RseSBvdmVyIHRoZSBpbnB1dCBiZWNhdXNlIGl0J3Mgbm90IGluIHRoZSBmbG93LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHdhbnQgdG8gcG9zaXRpb24gaXQgYmVsb3csIHdlIG5lZWQgdG8gYWRkIHNvbWUgZXh0cmEgdG9wIHZhbHVlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHRyYVRvcCA9ICFkcm9wZG93bkZpdHNCZWxvdyAmJiBkcm9wZG93bkZpdHNBYm92ZSA/IDAgOiB0aGlzLnRlbElucHV0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgcGxhY2VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bi5zdHlsZS50b3AgPSBcIlwiLmNvbmNhdChpbnB1dFRvcCArIGV4dHJhVG9wLCBcInB4XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd24uc3R5bGUubGVmdCA9IFwiXCIuY29uY2F0KHBvcy5sZWZ0ICsgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LCBcInB4XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsb3NlIG1lbnUgb24gd2luZG93IHNjcm9sbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVdpbmRvd1Njcm9sbCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXM4Ll9jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLl9oYW5kbGVXaW5kb3dTY3JvbGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfZ2V0Q2xvc2VzdExpc3RJdGVtXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXRDbG9zZXN0TGlzdEl0ZW0odGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbCA9IHRhcmdldDtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGVsICYmIGVsICE9PSB0aGlzLmNvdW50cnlMaXN0ICYmICFlbC5jbGFzc0xpc3QuY29udGFpbnMoXCJpdGlfX2NvdW50cnlcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsID0gZWwucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSByZWFjaGVkIHRoZSBjb3VudHJ5TGlzdCBlbGVtZW50LCB0aGVuIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbCA9PT0gdGhpcy5jb3VudHJ5TGlzdCA/IG51bGwgOiBlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9iaW5kRHJvcGRvd25MaXN0ZW5lcnNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2JpbmREcm9wZG93bkxpc3RlbmVycygpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF90aGlzOSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gbW91c2Ugb3ZlciBhIGxpc3QgaXRlbSwganVzdCBoaWdobGlnaHQgdGhhdCBvbmVcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgYWRkIHRoZSBjbGFzcyBcImhpZ2hsaWdodFwiLCBzbyBpZiB0aGV5IGhpdCBcImVudGVyXCIgd2Uga25vdyB3aGljaCBvbmUgdG8gc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZU1vdXNlb3ZlckNvdW50cnlMaXN0ID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGV2ZW50IGRlbGVnYXRpb24sIGFzIHdlJ3JlIGxpc3RlbmluZyBmb3IgdGhpcyBldmVudCBvbiB0aGUgY291bnRyeUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0SXRlbSA9IF90aGlzOS5fZ2V0Q2xvc2VzdExpc3RJdGVtKGUudGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0SXRlbSkgX3RoaXM5Ll9oaWdobGlnaHRMaXN0SXRlbShsaXN0SXRlbSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cnlMaXN0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW92ZXJcIiwgdGhpcy5faGFuZGxlTW91c2VvdmVyQ291bnRyeUxpc3QpO1xuICAgICAgICAgICAgICAgICAgICAvLyBsaXN0ZW4gZm9yIGNvdW50cnkgc2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUNsaWNrQ291bnRyeUxpc3QgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdEl0ZW0gPSBfdGhpczkuX2dldENsb3Nlc3RMaXN0SXRlbShlLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdEl0ZW0pIF90aGlzOS5fc2VsZWN0TGlzdEl0ZW0obGlzdEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50cnlMaXN0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVDbGlja0NvdW50cnlMaXN0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2sgb2ZmIHRvIGNsb3NlXG4gICAgICAgICAgICAgICAgICAgIC8vIChleGNlcHQgd2hlbiB0aGlzIGluaXRpYWwgb3BlbmluZyBjbGljayBpcyBidWJibGluZyB1cClcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgY2Fubm90IGp1c3Qgc3RvcFByb3BhZ2F0aW9uIGFzIGl0IG1heSBiZSBuZWVkZWQgdG8gY2xvc2UgYW5vdGhlciBpbnN0YW5jZVxuICAgICAgICAgICAgICAgICAgICB2YXIgaXNPcGVuaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlQ2xpY2tPZmZUb0Nsb3NlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzT3BlbmluZykgX3RoaXM5Ll9jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc09wZW5pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVDbGlja09mZlRvQ2xvc2UpO1xuICAgICAgICAgICAgICAgICAgICAvLyBsaXN0ZW4gZm9yIHVwL2Rvd24gc2Nyb2xsaW5nLCBlbnRlciB0byBzZWxlY3QsIG9yIGxldHRlcnMgdG8ganVtcCB0byBjb3VudHJ5IG5hbWUuXG4gICAgICAgICAgICAgICAgICAgIC8vIHVzZSBrZXlkb3duIGFzIGtleXByZXNzIGRvZXNuJ3QgZmlyZSBmb3Igbm9uLWNoYXIga2V5cyBhbmQgd2Ugd2FudCB0byBjYXRjaCBpZiB0aGV5XG4gICAgICAgICAgICAgICAgICAgIC8vIGp1c3QgaGl0IGRvd24gYW5kIGhvbGQgaXQgdG8gc2Nyb2xsIGRvd24gKG5vIGtleXVwIGV2ZW50KS5cbiAgICAgICAgICAgICAgICAgICAgLy8gbGlzdGVuIG9uIHRoZSBkb2N1bWVudCBiZWNhdXNlIHRoYXQncyB3aGVyZSBrZXkgZXZlbnRzIGFyZSB0cmlnZ2VyZWQgaWYgbm8gaW5wdXQgaGFzIGZvY3VzXG4gICAgICAgICAgICAgICAgICAgIHZhciBxdWVyeSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBxdWVyeVRpbWVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlS2V5ZG93bk9uRHJvcGRvd24gPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGRvd24ga2V5IGZyb20gc2Nyb2xsaW5nIHRoZSB3aG9sZSBwYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGVudGVyIGtleSBmcm9tIHN1Ym1pdHRpbmcgYSBmb3JtIGV0Y1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXAgYW5kIGRvd24gdG8gbmF2aWdhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gXCJBcnJvd1VwXCIgfHwgZS5rZXkgPT09IFwiVXBcIiB8fCBlLmtleSA9PT0gXCJBcnJvd0Rvd25cIiB8fCBlLmtleSA9PT0gXCJEb3duXCIpIF90aGlzOS5faGFuZGxlVXBEb3duS2V5KGUua2V5KTsgZWxzZSBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikgX3RoaXM5Ll9oYW5kbGVFbnRlcktleSgpOyBlbHNlIGlmIChlLmtleSA9PT0gXCJFc2NhcGVcIikgX3RoaXM5Ll9jbG9zZURyb3Bkb3duKCk7IGVsc2UgaWYgKC9eW2EtekEtWsOALcO/0LAt0Y/QkC3QryBdJC8udGVzdChlLmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBqdW1wIHRvIGNvdW50cmllcyB0aGF0IHN0YXJ0IHdpdGggdGhlIHF1ZXJ5IHN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeVRpbWVyKSBjbGVhclRpbWVvdXQocXVlcnlUaW1lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkgKz0gZS5rZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczkuX3NlYXJjaEZvckNvdW50cnkocXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB0aW1lciBoaXRzIDEgc2Vjb25kLCByZXNldCB0aGUgcXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDFlMyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMuX2hhbmRsZUtleWRvd25PbkRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9oYW5kbGVVcERvd25LZXlcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2hhbmRsZVVwRG93bktleShrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQgPSBrZXkgPT09IFwiQXJyb3dVcFwiIHx8IGtleSA9PT0gXCJVcFwiID8gdGhpcy5oaWdobGlnaHRlZEl0ZW0ucHJldmlvdXNFbGVtZW50U2libGluZyA6IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtLm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNraXAgdGhlIGRpdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0LmNsYXNzTGlzdC5jb250YWlucyhcIml0aV9fZGl2aWRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBrZXkgPT09IFwiQXJyb3dVcFwiIHx8IGtleSA9PT0gXCJVcFwiID8gbmV4dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIDogbmV4dC5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRMaXN0SXRlbShuZXh0LCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2hhbmRsZUVudGVyS2V5XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9oYW5kbGVFbnRlcktleSgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGlnaGxpZ2h0ZWRJdGVtKSB0aGlzLl9zZWxlY3RMaXN0SXRlbSh0aGlzLmhpZ2hsaWdodGVkSXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfc2VhcmNoRm9yQ291bnRyeVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfc2VhcmNoRm9yQ291bnRyeShxdWVyeSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc3RhcnRzV2l0aCh0aGlzLmNvdW50cmllc1tpXS5uYW1lLCBxdWVyeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdEl0ZW0gPSB0aGlzLmNvdW50cnlMaXN0LnF1ZXJ5U2VsZWN0b3IoXCIjaXRpLWl0ZW0tXCIuY29uY2F0KHRoaXMuY291bnRyaWVzW2ldLmlzbzIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgaGlnaGxpZ2h0aW5nIGFuZCBzY3JvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRMaXN0SXRlbShsaXN0SXRlbSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvKGxpc3RJdGVtLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3N0YXJ0c1dpdGhcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3N0YXJ0c1dpdGgoYSwgYikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5zdWJzdHIoMCwgYi5sZW5ndGgpLnRvTG93ZXJDYXNlKCkgPT09IGI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfdXBkYXRlVmFsRnJvbU51bWJlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfdXBkYXRlVmFsRnJvbU51bWJlcihvcmlnaW5hbE51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbnVtYmVyID0gb3JpZ2luYWxOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZm9ybWF0T25EaXNwbGF5ICYmIHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscyAmJiB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1c2VOYXRpb25hbCA9ICF0aGlzLm9wdGlvbnMuc2VwYXJhdGVEaWFsQ29kZSAmJiAodGhpcy5vcHRpb25zLm5hdGlvbmFsTW9kZSB8fCBudW1iZXIuY2hhckF0KDApICE9PSBcIitcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2ludGxUZWxJbnB1dFV0aWxzJG51ID0gaW50bFRlbElucHV0VXRpbHMubnVtYmVyRm9ybWF0LCBOQVRJT05BTCA9IF9pbnRsVGVsSW5wdXRVdGlscyRudS5OQVRJT05BTCwgSU5URVJOQVRJT05BTCA9IF9pbnRsVGVsSW5wdXRVdGlscyRudS5JTlRFUk5BVElPTkFMO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZvcm1hdCA9IHVzZU5hdGlvbmFsID8gTkFUSU9OQUwgOiBJTlRFUk5BVElPTkFMO1xuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gaW50bFRlbElucHV0VXRpbHMuZm9ybWF0TnVtYmVyKG51bWJlciwgdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzIsIGZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gdGhpcy5fYmVmb3JlU2V0TnVtYmVyKG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQudmFsdWUgPSBudW1iZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfdXBkYXRlRmxhZ0Zyb21OdW1iZXJcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3VwZGF0ZUZsYWdGcm9tTnVtYmVyKG9yaWdpbmFsTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGluIG5hdGlvbmFsTW9kZSBhbmQgd2UgYWxyZWFkeSBoYXZlIFVTL0NhbmFkYSBzZWxlY3RlZCwgbWFrZSBzdXJlIHRoZSBudW1iZXIgc3RhcnRzXG4gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggYSArMSBzbyBfZ2V0RGlhbENvZGUgd2lsbCBiZSBhYmxlIHRvIGV4dHJhY3QgdGhlIGFyZWEgY29kZVxuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGU6IGlmIHdlIGRvbnQgeWV0IGhhdmUgc2VsZWN0ZWRDb3VudHJ5RGF0YSwgYnV0IHdlJ3JlIGhlcmUgKHRyeWluZyB0byB1cGRhdGUgdGhlIGZsYWdcbiAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSB0aGUgbnVtYmVyKSwgdGhhdCBtZWFucyB3ZSdyZSBpbml0aWFsaXNpbmcgdGhlIHBsdWdpbiB3aXRoIGEgbnVtYmVyIHRoYXQgYWxyZWFkeSBoYXMgYVxuICAgICAgICAgICAgICAgICAgICAvLyBkaWFsIGNvZGUsIHNvIGZpbmUgdG8gaWdub3JlIHRoaXMgYml0XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1iZXIgPSBvcmlnaW5hbE51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkRGlhbENvZGUgPSB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuZGlhbENvZGU7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpc05hbnAgPSBzZWxlY3RlZERpYWxDb2RlID09PSBcIjFcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlciAmJiB0aGlzLm9wdGlvbnMubmF0aW9uYWxNb2RlICYmIGlzTmFucCAmJiBudW1iZXIuY2hhckF0KDApICE9PSBcIitcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlci5jaGFyQXQoMCkgIT09IFwiMVwiKSBudW1iZXIgPSBcIjFcIi5jb25jYXQobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IFwiK1wiLmNvbmNhdChudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBmbGFnIGlmIHVzZXIgdHlwZXMgYXJlYSBjb2RlIGZvciBhbm90aGVyIGNvdW50cnlcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zZXBhcmF0ZURpYWxDb2RlICYmIHNlbGVjdGVkRGlhbENvZGUgJiYgbnVtYmVyLmNoYXJBdCgwKSAhPT0gXCIrXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IFwiK1wiLmNvbmNhdChzZWxlY3RlZERpYWxDb2RlKS5jb25jYXQobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB0cnkgYW5kIGV4dHJhY3QgdmFsaWQgZGlhbCBjb2RlIGZyb20gaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpYWxDb2RlID0gdGhpcy5fZ2V0RGlhbENvZGUobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG51bWVyaWMgPSB0aGlzLl9nZXROdW1lcmljKG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb3VudHJ5Q29kZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50cnlDb2RlcyA9IHRoaXMuY291bnRyeUNvZGVzW3RoaXMuX2dldE51bWVyaWMoZGlhbENvZGUpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSByaWdodCBjb3VudHJ5IGlzIGFscmVhZHkgc2VsZWN0ZWQuIHRoaXMgc2hvdWxkIGJlIGZhbHNlIGlmIHRoZSBudW1iZXIgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvbmdlciB0aGFuIHRoZSBtYXRjaGVkIGRpYWwgY29kZSBiZWNhdXNlIGluIHRoaXMgY2FzZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZSBhcmUgbXVsdGlwbGUgY291bnRyeSBtYXRjaGVzLCB0aGF0IHRoZSBmaXJzdCBvbmUgaXMgc2VsZWN0ZWQgKG5vdGU6IHdlIGNvdWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IGNoZWNrIHRoYXQgaGVyZSwgYnV0IGl0IHJlcXVpcmVzIHRoZSBzYW1lIGxvb3AgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgbGF0ZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYWxyZWFkeVNlbGVjdGVkID0gY291bnRyeUNvZGVzLmluZGV4T2YodGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzIpICE9PSAtMSAmJiBudW1lcmljLmxlbmd0aCA8PSBkaWFsQ29kZS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzUmVnaW9ubGVzc05hbnBOdW1iZXIgPSBzZWxlY3RlZERpYWxDb2RlID09PSBcIjFcIiAmJiB0aGlzLl9pc1JlZ2lvbmxlc3NOYW5wKG51bWVyaWMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSB1cGRhdGUgdGhlIGZsYWcgaWY6XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBKSBOT1QgKHdlIGN1cnJlbnRseSBoYXZlIGEgTkFOUCBmbGFnIHNlbGVjdGVkLCBhbmQgdGhlIG51bWJlciBpcyBhIHJlZ2lvbmxlc3NOYW5wKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQU5EXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBCKSB0aGUgcmlnaHQgY291bnRyeSBpcyBub3QgYWxyZWFkeSBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1JlZ2lvbmxlc3NOYW5wTnVtYmVyICYmICFhbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB1c2luZyBvbmx5Q291bnRyaWVzIG9wdGlvbiwgY291bnRyeUNvZGVzWzBdIG1heSBiZSBlbXB0eSwgc28gd2UgbXVzdCBmaW5kIHRoZSBmaXJzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vbi1lbXB0eSBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY291bnRyeUNvZGVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudHJ5Q29kZXNbal0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlID0gY291bnRyeUNvZGVzW2pdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyLmNoYXJBdCgwKSA9PT0gXCIrXCIgJiYgbnVtZXJpYy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGludmFsaWQgZGlhbCBjb2RlLCBzbyBlbXB0eVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogdXNlIGdldE51bWVyaWMgaGVyZSBiZWNhdXNlIHRoZSBudW1iZXIgaGFzIG5vdCBiZWVuIGZvcm1hdHRlZCB5ZXQsIHNvIGNvdWxkIGNvbnRhaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJhZCBjaGFyc1xuICAgICAgICAgICAgICAgICAgICAgICAgY291bnRyeUNvZGUgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFudW1iZXIgfHwgbnVtYmVyID09PSBcIitcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZW1wdHksIG9yIGp1c3QgYSBwbHVzLCBzbyBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZSA9IHRoaXMuZGVmYXVsdENvdW50cnk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50cnlDb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc2V0RmxhZyhjb3VudHJ5Q29kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2lzUmVnaW9ubGVzc05hbnBcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2lzUmVnaW9ubGVzc05hbnAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1lcmljID0gdGhpcy5fZ2V0TnVtZXJpYyhudW1iZXIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobnVtZXJpYy5jaGFyQXQoMCkgPT09IFwiMVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXJlYUNvZGUgPSBudW1lcmljLnN1YnN0cigxLCAzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWdpb25sZXNzTmFucE51bWJlcnMuaW5kZXhPZihhcmVhQ29kZSkgIT09IC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9oaWdobGlnaHRMaXN0SXRlbVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfaGlnaGxpZ2h0TGlzdEl0ZW0obGlzdEl0ZW0sIHNob3VsZEZvY3VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwcmV2SXRlbSA9IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldkl0ZW0pIHByZXZJdGVtLmNsYXNzTGlzdC5yZW1vdmUoXCJpdGlfX2hpZ2hsaWdodFwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZEl0ZW0gPSBsaXN0SXRlbTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRlZEl0ZW0uY2xhc3NMaXN0LmFkZChcIml0aV9faGlnaGxpZ2h0XCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkRm9jdXMpIHRoaXMuaGlnaGxpZ2h0ZWRJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfZ2V0Q291bnRyeURhdGFcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2dldENvdW50cnlEYXRhKGNvdW50cnlDb2RlLCBpZ25vcmVPbmx5Q291bnRyaWVzT3B0aW9uLCBhbGxvd0ZhaWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50cnlMaXN0ID0gaWdub3JlT25seUNvdW50cmllc09wdGlvbiA/IGFsbENvdW50cmllcyA6IHRoaXMuY291bnRyaWVzO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50cnlMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnRyeUxpc3RbaV0uaXNvMiA9PT0gY291bnRyeUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY291bnRyeUxpc3RbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFsbG93RmFpbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gY291bnRyeSBkYXRhIGZvciAnXCIuY29uY2F0KGNvdW50cnlDb2RlLCBcIidcIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3NldEZsYWdcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX3NldEZsYWcoY291bnRyeUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXZDb3VudHJ5ID0gdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzIgPyB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEgOiB7fTtcbiAgICAgICAgICAgICAgICAgICAgLy8gZG8gdGhpcyBmaXJzdCBhcyBpdCB3aWxsIHRocm93IGFuIGVycm9yIGFuZCBzdG9wIGlmIGNvdW50cnlDb2RlIGlzIGludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhID0gY291bnRyeUNvZGUgPyB0aGlzLl9nZXRDb3VudHJ5RGF0YShjb3VudHJ5Q29kZSwgZmFsc2UsIGZhbHNlKSA6IHt9O1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGRlZmF1bHRDb3VudHJ5IC0gd2Ugb25seSBuZWVkIHRoZSBpc28yIGZyb20gbm93IG9uLCBzbyBqdXN0IHN0b3JlIHRoYXRcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5pc28yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5ID0gdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWdJbm5lci5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBcIml0aV9fZmxhZyBpdGlfX1wiLmNvbmNhdChjb3VudHJ5Q29kZSkpO1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIHNlbGVjdGVkIGNvdW50cnkncyB0aXRsZSBhdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gY291bnRyeUNvZGUgPyBcIlwiLmNvbmNhdCh0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEubmFtZSwgXCI6ICtcIikuY29uY2F0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZSkgOiBcIlVua25vd25cIjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWcuc2V0QXR0cmlidXRlKFwidGl0bGVcIiwgdGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNlcGFyYXRlRGlhbENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaWFsQ29kZSA9IHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZSA/IFwiK1wiLmNvbmNhdCh0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuZGlhbENvZGUpIDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREaWFsQ29kZS5pbm5lckhUTUwgPSBkaWFsQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldFdpZHRoIGlzIHplcm8gaWYgaW5wdXQgaXMgaW4gYSBoaWRkZW4gY29udGFpbmVyIGR1cmluZyBpbml0aWFsaXNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkRmxhZ1dpZHRoID0gdGhpcy5zZWxlY3RlZEZsYWcub2Zmc2V0V2lkdGggfHwgdGhpcy5fZ2V0SGlkZGVuU2VsZWN0ZWRGbGFnV2lkdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCA2cHggb2YgcGFkZGluZyBhZnRlciB0aGUgZ3JleSBzZWxlY3RlZC1kaWFsLWNvZGUgYm94LCBhcyB0aGlzIGlzIHdoYXQgd2UgdXNlIGluIHRoZSBjc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQuc3R5bGUucGFkZGluZ0xlZnQgPSBcIlwiLmNvbmNhdChzZWxlY3RlZEZsYWdXaWR0aCArIDYsIFwicHhcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBpbnB1dCdzIHBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBsYWNlaG9sZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgYWN0aXZlIGxpc3QgaXRlbVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFsbG93RHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmV2SXRlbSA9IHRoaXMuYWN0aXZlSXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZJdGVtLmNsYXNzTGlzdC5yZW1vdmUoXCJpdGlfX2FjdGl2ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2SXRlbS5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsIFwiZmFsc2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnRyeUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dEl0ZW0gPSB0aGlzLmNvdW50cnlMaXN0LnF1ZXJ5U2VsZWN0b3IoXCIjaXRpLWl0ZW0tXCIuY29uY2F0KGNvdW50cnlDb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEl0ZW0uc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCBcInRydWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEl0ZW0uY2xhc3NMaXN0LmFkZChcIml0aV9fYWN0aXZlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbSA9IG5leHRJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnLnNldEF0dHJpYnV0ZShcImFyaWEtYWN0aXZlZGVzY2VuZGFudFwiLCBuZXh0SXRlbS5nZXRBdHRyaWJ1dGUoXCJpZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGlmIHRoZSBmbGFnIGhhcyBjaGFuZ2VkIG9yIG5vdFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldkNvdW50cnkuaXNvMiAhPT0gY291bnRyeUNvZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfZ2V0SGlkZGVuU2VsZWN0ZWRGbGFnV2lkdGhcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2dldEhpZGRlblNlbGVjdGVkRmxhZ1dpZHRoKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0byBnZXQgdGhlIHJpZ2h0IHN0eWxpbmcgdG8gYXBwbHksIGFsbCB3ZSBuZWVkIGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgY29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlbiB0byBpbmplY3QgYSBkZWVwIGNsb25lIG9mIHRoZSBzZWxlY3RlZEZsYWcgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVyQ2xvbmUgPSB0aGlzLnRlbElucHV0LnBhcmVudE5vZGUuY2xvbmVOb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsb25lLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lckNsb25lKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkRmxhZ0Nsb25lID0gdGhpcy5zZWxlY3RlZEZsYWcuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJDbG9uZS5hcHBlbmRDaGlsZChzZWxlY3RlZEZsYWdDbG9uZSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB3aWR0aCA9IHNlbGVjdGVkRmxhZ0Nsb25lLm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJDbG9uZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvbnRhaW5lckNsb25lKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3VwZGF0ZVBsYWNlaG9sZGVyXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF91cGRhdGVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNob3VsZFNldFBsYWNlaG9sZGVyID0gdGhpcy5vcHRpb25zLmF1dG9QbGFjZWhvbGRlciA9PT0gXCJhZ2dyZXNzaXZlXCIgfHwgIXRoaXMuaGFkSW5pdGlhbFBsYWNlaG9sZGVyICYmIHRoaXMub3B0aW9ucy5hdXRvUGxhY2Vob2xkZXIgPT09IFwicG9saXRlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50bFRlbElucHV0VXRpbHMgJiYgc2hvdWxkU2V0UGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBudW1iZXJUeXBlID0gaW50bFRlbElucHV0VXRpbHMubnVtYmVyVHlwZVt0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXJOdW1iZXJUeXBlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9IHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5pc28yID8gaW50bFRlbElucHV0VXRpbHMuZ2V0RXhhbXBsZU51bWJlcih0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMiwgdGhpcy5vcHRpb25zLm5hdGlvbmFsTW9kZSwgbnVtYmVyVHlwZSkgOiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLl9iZWZvcmVTZXROdW1iZXIocGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuY3VzdG9tUGxhY2Vob2xkZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gdGhpcy5vcHRpb25zLmN1c3RvbVBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyLCB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5zZXRBdHRyaWJ1dGUoXCJwbGFjZWhvbGRlclwiLCBwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9zZWxlY3RMaXN0SXRlbVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfc2VsZWN0TGlzdEl0ZW0obGlzdEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIHNlbGVjdGVkIGZsYWcgYW5kIGFjdGl2ZSBsaXN0IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWdDaGFuZ2VkID0gdGhpcy5fc2V0RmxhZyhsaXN0SXRlbS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWNvdW50cnktY29kZVwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlRGlhbENvZGUobGlzdEl0ZW0uZ2V0QXR0cmlidXRlKFwiZGF0YS1kaWFsLWNvZGVcIiksIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAvLyBmb2N1cyB0aGUgaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAvLyBwdXQgY3Vyc29yIGF0IGVuZCAtIHRoaXMgZml4IGlzIHJlcXVpcmVkIGZvciBGRiBhbmQgSUUxMSAod2l0aCBuYXRpb25hbE1vZGU9ZmFsc2UgaS5lLiBhdXRvXG4gICAgICAgICAgICAgICAgICAgIC8vIGluc2VydGluZyBkaWFsIGNvZGUpLCB3aG8gdHJ5IHRvIHB1dCB0aGUgY3Vyc29yIGF0IHRoZSBiZWdpbm5pbmcgdGhlIGZpcnN0IHRpbWVcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxlbiA9IHRoaXMudGVsSW5wdXQudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnNldFNlbGVjdGlvblJhbmdlKGxlbiwgbGVuKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWdDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyQ291bnRyeUNoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfY2xvc2VEcm9wZG93blwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfY2xvc2VEcm9wZG93bigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudHJ5TGlzdC5jbGFzc0xpc3QuYWRkKFwiaXRpX19oaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxhZy5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsIFwiZmFsc2VcIik7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgYXJyb3dcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkFycm93LmNsYXNzTGlzdC5yZW1vdmUoXCJpdGlfX2Fycm93LS11cFwiKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdW5iaW5kIGtleSBldmVudHNcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5faGFuZGxlS2V5ZG93bk9uRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuX2hhbmRsZUNsaWNrT2ZmVG9DbG9zZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUxpc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCB0aGlzLl9oYW5kbGVNb3VzZW92ZXJDb3VudHJ5TGlzdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRyeUxpc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuX2hhbmRsZUNsaWNrQ291bnRyeUxpc3QpO1xuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgbWVudSBmcm9tIGNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRyb3Bkb3duQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMuX2hhbmRsZVdpbmRvd1Njcm9sbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kcm9wZG93bi5wYXJlbnROb2RlKSB0aGlzLmRyb3Bkb3duLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5kcm9wZG93bik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcihcImNsb3NlOmNvdW50cnlkcm9wZG93blwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9zY3JvbGxUb1wiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfc2Nyb2xsVG8oZWxlbWVudCwgbWlkZGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250YWluZXIgPSB0aGlzLmNvdW50cnlMaXN0O1xuICAgICAgICAgICAgICAgICAgICAvLyB3aW5kb3dUb3AgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTQzODQwOTEvMjE3ODY2XG4gICAgICAgICAgICAgICAgICAgIHZhciB3aW5kb3dUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lckhlaWdodCA9IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250YWluZXJUb3AgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93VG9wO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVyQm90dG9tID0gY29udGFpbmVyVG9wICsgY29udGFpbmVySGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxlbWVudEhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxlbWVudFRvcCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93VG9wO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxlbWVudEJvdHRvbSA9IGVsZW1lbnRUb3AgKyBlbGVtZW50SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3U2Nyb2xsVG9wID0gZWxlbWVudFRvcCAtIGNvbnRhaW5lclRvcCArIGNvbnRhaW5lci5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgICAgIHZhciBtaWRkbGVPZmZzZXQgPSBjb250YWluZXJIZWlnaHQgLyAyIC0gZWxlbWVudEhlaWdodCAvIDI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50VG9wIDwgY29udGFpbmVyVG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzY3JvbGwgdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtaWRkbGUpIG5ld1Njcm9sbFRvcCAtPSBtaWRkbGVPZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gbmV3U2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnRCb3R0b20gPiBjb250YWluZXJCb3R0b20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNjcm9sbCBkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlkZGxlKSBuZXdTY3JvbGxUb3AgKz0gbWlkZGxlT2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodERpZmZlcmVuY2UgPSBjb250YWluZXJIZWlnaHQgLSBlbGVtZW50SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IG5ld1Njcm9sbFRvcCAtIGhlaWdodERpZmZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl91cGRhdGVEaWFsQ29kZVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfdXBkYXRlRGlhbENvZGUobmV3RGlhbENvZGVCYXJlLCBoYXNTZWxlY3RlZExpc3RJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dFZhbCA9IHRoaXMudGVsSW5wdXQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgaGF2aW5nIHRvIHBhc3MgdGhpcyBldmVyeSB0aW1lXG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdEaWFsQ29kZSA9IFwiK1wiLmNvbmNhdChuZXdEaWFsQ29kZUJhcmUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3TnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXRWYWwuY2hhckF0KDApID09PSBcIitcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUncyBhIHBsdXMgc28gd2UncmUgZGVhbGluZyB3aXRoIGEgcmVwbGFjZW1lbnQgKGRvZXNuJ3QgbWF0dGVyIGlmIG5hdGlvbmFsTW9kZSBvciBub3QpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcHJldkRpYWxDb2RlID0gdGhpcy5fZ2V0RGlhbENvZGUoaW5wdXRWYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGN1cnJlbnQgbnVtYmVyIGNvbnRhaW5zIGEgdmFsaWQgZGlhbCBjb2RlLCBzbyByZXBsYWNlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3TnVtYmVyID0gaW5wdXRWYWwucmVwbGFjZShwcmV2RGlhbENvZGUsIG5ld0RpYWxDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3VycmVudCBudW1iZXIgY29udGFpbnMgYW4gaW52YWxpZCBkaWFsIGNvZGUsIHNvIGRpdGNoIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKG5vIHdheSB0byBkZXRlcm1pbmUgd2hlcmUgdGhlIGludmFsaWQgZGlhbCBjb2RlIGVuZHMgYW5kIHRoZSByZXN0IG9mIHRoZSBudW1iZXIgYmVnaW5zKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld051bWJlciA9IG5ld0RpYWxDb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5uYXRpb25hbE1vZGUgfHwgdGhpcy5vcHRpb25zLnNlcGFyYXRlRGlhbENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IGRvIGFueXRoaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBuYXRpb25hbE1vZGUgaXMgZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dFZhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGFuIGV4aXN0aW5nIHZhbHVlIHdpdGggbm8gZGlhbCBjb2RlOiBwcmVmaXggdGhlIG5ldyBkaWFsIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdEaWFsQ29kZSArIGlucHV0VmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNTZWxlY3RlZExpc3RJdGVtIHx8ICF0aGlzLm9wdGlvbnMuYXV0b0hpZGVEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGV4aXN0aW5nIHZhbHVlIGFuZCBlaXRoZXIgdGhleSd2ZSBqdXN0IHNlbGVjdGVkIGEgbGlzdCBpdGVtLCBvciBhdXRvSGlkZURpYWxDb2RlIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlzYWJsZWQ6IGluc2VydCBuZXcgZGlhbCBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3RGlhbENvZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnZhbHVlID0gbmV3TnVtYmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX2dldERpYWxDb2RlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXREaWFsQ29kZShudW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpYWxDb2RlID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSBpbnRlcmVzdGVkIGluIGludGVybmF0aW9uYWwgbnVtYmVycyAoc3RhcnRpbmcgd2l0aCBhIHBsdXMpXG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXIuY2hhckF0KDApID09PSBcIitcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG51bWVyaWNDaGFycyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpdGVyYXRlIG92ZXIgY2hhcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtYmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBudW1iZXIuY2hhckF0KGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGNoYXIgaXMgbnVtYmVyIChodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvODkzNTY0OS8yMTc4NjYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChjLCAxMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWVyaWNDaGFycyArPSBjO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBjdXJyZW50IG51bWVyaWNDaGFycyBtYWtlIGEgdmFsaWQgZGlhbCBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvdW50cnlDb2Rlc1tudW1lcmljQ2hhcnNdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdG9yZSB0aGUgYWN0dWFsIHJhdyBzdHJpbmcgKHVzZWZ1bCBmb3IgbWF0Y2hpbmcgbGF0ZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsQ29kZSA9IG51bWJlci5zdWJzdHIoMCwgaSArIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1lcmljQ2hhcnMubGVuZ3RoID09PSB0aGlzLmRpYWxDb2RlTWF4TGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGlhbENvZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJfZ2V0RnVsbE51bWJlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBfZ2V0RnVsbE51bWJlcigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbCA9IHRoaXMudGVsSW5wdXQudmFsdWUudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZGlhbENvZGUgPSB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuZGlhbENvZGU7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwcmVmaXg7XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1lcmljVmFsID0gdGhpcy5fZ2V0TnVtZXJpYyh2YWwpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnNlcGFyYXRlRGlhbENvZGUgJiYgdmFsLmNoYXJBdCgwKSAhPT0gXCIrXCIgJiYgZGlhbENvZGUgJiYgbnVtZXJpY1ZhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB1c2luZyBzZXBhcmF0ZURpYWxDb2RlLCBpdCBpcyB2aXNpYmxlIHNvIGlzIGVmZmVjdGl2ZWx5IHBhcnQgb2YgdGhlIHR5cGVkIG51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gXCIrXCIuY29uY2F0KGRpYWxDb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeCArIHZhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcIl9iZWZvcmVTZXROdW1iZXJcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2JlZm9yZVNldE51bWJlcihvcmlnaW5hbE51bWJlcikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbnVtYmVyID0gb3JpZ2luYWxOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2VwYXJhdGVEaWFsQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpYWxDb2RlID0gdGhpcy5fZ2V0RGlhbENvZGUobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgdmFsaWQgZGlhbCBjb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlhbENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIF9nZXREaWFsQ29kZSByZXR1cm5lZCBhbiBhcmVhIGNvZGUgYXMgd2VsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxDb2RlID0gXCIrXCIuY29uY2F0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5kaWFsQ29kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBsb3Qgb2YgbnVtYmVycyB3aWxsIGhhdmUgYSBzcGFjZSBzZXBhcmF0aW5nIHRoZSBkaWFsIGNvZGUgYW5kIHRoZSBtYWluIG51bWJlciwgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc29tZSBOQU5QIG51bWJlcnMgd2lsbCBoYXZlIGEgaHlwaGVuIGUuZy4gKzEgNjg0LTczMy0xMjM0IC0gaW4gYm90aCBjYXNlcyB3ZSB3YW50IHRvIGdldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJpZCBvZiBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IGRvbid0IGp1c3QgdHJpbSBhbGwgbm9uLW51bWVyaWNzIGFzIG1heSB3YW50IHRvIHByZXNlcnZlIGFuIG9wZW4gcGFyZW50aGVzaXMgZXRjXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gbnVtYmVyW2RpYWxDb2RlLmxlbmd0aF0gPT09IFwiIFwiIHx8IG51bWJlcltkaWFsQ29kZS5sZW5ndGhdID09PSBcIi1cIiA/IGRpYWxDb2RlLmxlbmd0aCArIDEgOiBkaWFsQ29kZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyLnN1YnN0cihzdGFydCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NhcChudW1iZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiX3RyaWdnZXJDb3VudHJ5Q2hhbmdlXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF90cmlnZ2VyQ291bnRyeUNoYW5nZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlcihcImNvdW50cnljaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJoYW5kbGVBdXRvQ291bnRyeVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBoYW5kbGVBdXRvQ291bnRyeSgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pbml0aWFsQ291bnRyeSA9PT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG11c3Qgc2V0IHRoaXMgZXZlbiBpZiB0aGVyZSBpcyBhbiBpbml0aWFsIHZhbCBpbiB0aGUgaW5wdXQ6IGluIGNhc2UgdGhlIGluaXRpYWwgdmFsIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnZhbGlkIGFuZCB0aGV5IGRlbGV0ZSBpdCAtIHRoZXkgc2hvdWxkIHNlZSB0aGVpciBhdXRvIGNvdW50cnlcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnkgPSB3aW5kb3cuaW50bFRlbElucHV0R2xvYmFscy5hdXRvQ291bnRyeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gaW5pdGlhbCB2YWx1ZSBpbiB0aGUgaW5wdXQsIHRoZW4gdXBkYXRlIHRoZSBmbGFnXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGVsSW5wdXQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldENvdW50cnkodGhpcy5kZWZhdWx0Q291bnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVBdXRvQ291bnRyeVByb21pc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiaGFuZGxlVXRpbHNcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlVXRpbHMoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSByZXF1ZXN0IHdhcyBzdWNjZXNzZnVsXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50bFRlbElucHV0VXRpbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlJ3MgYW4gaW5pdGlhbCB2YWx1ZSBpbiB0aGUgaW5wdXQsIHRoZW4gZm9ybWF0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50ZWxJbnB1dC52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbEZyb21OdW1iZXIodGhpcy50ZWxJbnB1dC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVV0aWxzU2NyaXB0UHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiZGVzdHJveVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybSA9IHRoaXMudGVsSW5wdXQuZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hbGxvd0Ryb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIGRyb3Bkb3duIGlzIGNsb3NlZCAoYW5kIHVuYmluZCBsaXN0ZW5lcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxhZy5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5faGFuZGxlQ2xpY2tTZWxlY3RlZEZsYWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mbGFnc0NvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLl9oYW5kbGVGbGFnc0NvbnRhaW5lcktleWRvd24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFiZWwgY2xpY2sgaGFja1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGxhYmVsID0gdGhpcy5fZ2V0Q2xvc2VzdExhYmVsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWwpIGxhYmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLl9oYW5kbGVMYWJlbENsaWNrKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB1bmJpbmQgaGlkZGVuSW5wdXQgbGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhpZGRlbklucHV0ICYmIGZvcm0pIGZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInN1Ym1pdFwiLCB0aGlzLl9oYW5kbGVIaWRkZW5JbnB1dFN1Ym1pdCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVuYmluZCBhdXRvSGlkZURpYWxDb2RlIGxpc3RlbmVyc1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9IaWRlRGlhbENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtKSBmb3JtLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzdWJtaXRcIiwgdGhpcy5faGFuZGxlU3VibWl0T3JCbHVyRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmx1clwiLCB0aGlzLl9oYW5kbGVTdWJtaXRPckJsdXJFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gdW5iaW5kIGtleSBldmVudHMsIGFuZCBjdXQvcGFzdGUgZXZlbnRzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVsSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsIHRoaXMuX2hhbmRsZUtleXVwRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjdXRcIiwgdGhpcy5faGFuZGxlQ2xpcGJvYXJkRXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlbElucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwYXN0ZVwiLCB0aGlzLl9oYW5kbGVDbGlwYm9hcmRFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBhdHRyaWJ1dGUgb2YgaWQgaW5zdGFuY2U6IGRhdGEtaW50bC10ZWwtaW5wdXQtaWRcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZWxJbnB1dC5yZW1vdmVBdHRyaWJ1dGUoXCJkYXRhLWludGwtdGVsLWlucHV0LWlkXCIpO1xuICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgbWFya3VwIChidXQgbGVhdmUgdGhlIG9yaWdpbmFsIGlucHV0KVxuICAgICAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IHRoaXMudGVsSW5wdXQucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLnRlbElucHV0LCB3cmFwcGVyKTtcbiAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHdyYXBwZXIpO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuaW5zdGFuY2VzW3RoaXMuaWRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiZ2V0RXh0ZW5zaW9uXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldEV4dGVuc2lvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGxUZWxJbnB1dFV0aWxzLmdldEV4dGVuc2lvbih0aGlzLl9nZXRGdWxsTnVtYmVyKCksIHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YS5pc28yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcImdldE51bWJlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXROdW1iZXIoZm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50bFRlbElucHV0VXRpbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc28yID0gdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50bFRlbElucHV0VXRpbHMuZm9ybWF0TnVtYmVyKHRoaXMuX2dldEZ1bGxOdW1iZXIoKSwgaXNvMiwgZm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcImdldE51bWJlclR5cGVcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TnVtYmVyVHlwZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGxUZWxJbnB1dFV0aWxzLmdldE51bWJlclR5cGUodGhpcy5fZ2V0RnVsbE51bWJlcigpLCB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC05OTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcImdldFNlbGVjdGVkQ291bnRyeURhdGFcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U2VsZWN0ZWRDb3VudHJ5RGF0YSgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcImdldFZhbGlkYXRpb25FcnJvclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uRXJyb3IoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50bFRlbElucHV0VXRpbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc28yID0gdGhpcy5zZWxlY3RlZENvdW50cnlEYXRhLmlzbzI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50bFRlbElucHV0VXRpbHMuZ2V0VmFsaWRhdGlvbkVycm9yKHRoaXMuX2dldEZ1bGxOdW1iZXIoKSwgaXNvMik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC05OTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcImlzVmFsaWROdW1iZXJcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gaXNWYWxpZE51bWJlcigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbCA9IHRoaXMuX2dldEZ1bGxOdW1iZXIoKS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb3VudHJ5Q29kZSA9IHRoaXMub3B0aW9ucy5uYXRpb25hbE1vZGUgPyB0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuaXNvMiA6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cuaW50bFRlbElucHV0VXRpbHMgPyBpbnRsVGVsSW5wdXRVdGlscy5pc1ZhbGlkTnVtYmVyKHZhbCwgY291bnRyeUNvZGUpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcInNldENvdW50cnlcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gc2V0Q291bnRyeShvcmlnaW5hbENvdW50cnlDb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb3VudHJ5Q29kZSA9IG9yaWdpbmFsQ291bnRyeUNvZGUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgYWxyZWFkeSBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGbGFnSW5uZXIuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaXRpX19cIi5jb25jYXQoY291bnRyeUNvZGUpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0RmxhZyhjb3VudHJ5Q29kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVEaWFsQ29kZSh0aGlzLnNlbGVjdGVkQ291bnRyeURhdGEuZGlhbENvZGUsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJDb3VudHJ5Q2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAga2V5OiBcInNldE51bWJlclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXROdW1iZXIobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIG11c3QgdXBkYXRlIHRoZSBmbGFnIGZpcnN0LCB3aGljaCB1cGRhdGVzIHRoaXMuc2VsZWN0ZWRDb3VudHJ5RGF0YSwgd2hpY2ggaXMgdXNlZCBmb3JcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9ybWF0dGluZyB0aGUgbnVtYmVyIGJlZm9yZSBkaXNwbGF5aW5nIGl0XG4gICAgICAgICAgICAgICAgICAgIHZhciBmbGFnQ2hhbmdlZCA9IHRoaXMuX3VwZGF0ZUZsYWdGcm9tTnVtYmVyKG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbEZyb21OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWdDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyQ291bnRyeUNoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGtleTogXCJzZXRQbGFjZWhvbGRlck51bWJlclR5cGVcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogZnVuY3Rpb24gc2V0UGxhY2Vob2xkZXJOdW1iZXJUeXBlKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyTnVtYmVyVHlwZSA9IHR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVBsYWNlaG9sZGVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBdKTtcbiAgICAgICAgICAgIHJldHVybiBJdGk7XG4gICAgICAgIH0oKTtcbiAgICAgICAgLyoqKioqKioqKioqKioqKioqKioqXG4gKiAgU1RBVElDIE1FVEhPRFNcbiAqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgLy8gZ2V0IHRoZSBjb3VudHJ5IGRhdGEgb2JqZWN0XG4gICAgICAgIGludGxUZWxJbnB1dEdsb2JhbHMuZ2V0Q291bnRyeURhdGEgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBhbGxDb3VudHJpZXM7XG4gICAgICAgIH07XG4gICAgICAgIC8vIGluamVjdCBhIDxzY3JpcHQ+IGVsZW1lbnQgdG8gbG9hZCB1dGlscy5qc1xuICAgICAgICB2YXIgaW5qZWN0U2NyaXB0ID0gZnVuY3Rpb24gaW5qZWN0U2NyaXB0KHBhdGgsIGhhbmRsZVN1Y2Nlc3MsIGhhbmRsZUZhaWx1cmUpIHtcbiAgICAgICAgICAgIC8vIGluamVjdCBhIG5ldyBzY3JpcHQgZWxlbWVudCBpbnRvIHRoZSBwYWdlXG4gICAgICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBmb3JFYWNoSW5zdGFuY2UoXCJoYW5kbGVVdGlsc1wiKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlU3VjY2VzcykgaGFuZGxlU3VjY2VzcygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHNjcmlwdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgZm9yRWFjaEluc3RhbmNlKFwicmVqZWN0VXRpbHNTY3JpcHRQcm9taXNlXCIpO1xuICAgICAgICAgICAgICAgIGlmIChoYW5kbGVGYWlsdXJlKSBoYW5kbGVGYWlsdXJlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgc2NyaXB0LmNsYXNzTmFtZSA9IFwiaXRpLWxvYWQtdXRpbHNcIjtcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gcGF0aDtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gbG9hZCB0aGUgdXRpbHMgc2NyaXB0XG4gICAgICAgIGludGxUZWxJbnB1dEdsb2JhbHMubG9hZFV0aWxzID0gZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICAgICAgLy8gMiBvcHRpb25zOlxuICAgICAgICAgICAgLy8gMSkgbm90IGFscmVhZHkgc3RhcnRlZCBsb2FkaW5nIChzdGFydClcbiAgICAgICAgICAgIC8vIDIpIGFscmVhZHkgc3RhcnRlZCBsb2FkaW5nIChkbyBub3RoaW5nIC0ganVzdCB3YWl0IGZvciB0aGUgb25sb2FkIGNhbGxiYWNrIHRvIGZpcmUsIHdoaWNoIHdpbGxcbiAgICAgICAgICAgIC8vIHRyaWdnZXIgaGFuZGxlVXRpbHMgb24gYWxsIGluc3RhbmNlcywgaW52b2tpbmcgdGhlaXIgcmVzb2x2ZVV0aWxzU2NyaXB0UHJvbWlzZSBmdW5jdGlvbnMpXG4gICAgICAgICAgICBpZiAoIXdpbmRvdy5pbnRsVGVsSW5wdXRVdGlscyAmJiAhd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuc3RhcnRlZExvYWRpbmdVdGlsc1NjcmlwdCkge1xuICAgICAgICAgICAgICAgIC8vIG9ubHkgZG8gdGhpcyBvbmNlXG4gICAgICAgICAgICAgICAgd2luZG93LmludGxUZWxJbnB1dEdsb2JhbHMuc3RhcnRlZExvYWRpbmdVdGlsc1NjcmlwdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBwcm9taXNlcywgdGhlbiByZXR1cm4gYSBwcm9taXNlXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBQcm9taXNlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmplY3RTY3JpcHQocGF0aCwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGluamVjdFNjcmlwdChwYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9O1xuICAgICAgICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgICAgICAgaW50bFRlbElucHV0R2xvYmFscy5kZWZhdWx0cyA9IGRlZmF1bHRzO1xuICAgICAgICAvLyB2ZXJzaW9uXG4gICAgICAgIGludGxUZWxJbnB1dEdsb2JhbHMudmVyc2lvbiA9IFwiMTYuMS4wXCI7XG4gICAgICAgIC8vIGNvbnZlbmllbmNlIHdyYXBwZXJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGlucHV0LCBvcHRpb25zKSB7XG4gICAgICAgICAgICB2YXIgaXRpID0gbmV3IEl0aShpbnB1dCwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpdGkuX2luaXQoKTtcbiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShcImRhdGEtaW50bC10ZWwtaW5wdXQtaWRcIiwgaXRpLmlkKTtcbiAgICAgICAgICAgIHdpbmRvdy5pbnRsVGVsSW5wdXRHbG9iYWxzLmluc3RhbmNlc1tpdGkuaWRdID0gaXRpO1xuICAgICAgICAgICAgcmV0dXJuIGl0aTtcbiAgICAgICAgfTtcbiAgICB9KCk7XG59KTsiLCIvKipcbiAqIEV4cG9zaW5nIGludGwtdGVsLWlucHV0IGFzIGEgY29tcG9uZW50XG4gKi9cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4vYnVpbGQvanMvaW50bFRlbElucHV0XCIpO1xuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsInZhciBuZXh0VGljayA9IHJlcXVpcmUoJ3Byb2Nlc3MvYnJvd3Nlci5qcycpLm5leHRUaWNrO1xudmFyIGFwcGx5ID0gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5O1xudmFyIHNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xudmFyIGltbWVkaWF0ZUlkcyA9IHt9O1xudmFyIG5leHRJbW1lZGlhdGVJZCA9IDA7XG5cbi8vIERPTSBBUElzLCBmb3IgY29tcGxldGVuZXNzXG5cbmV4cG9ydHMuc2V0VGltZW91dCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFRpbWVvdXQoYXBwbHkuY2FsbChzZXRUaW1lb3V0LCB3aW5kb3csIGFyZ3VtZW50cyksIGNsZWFyVGltZW91dCk7XG59O1xuZXhwb3J0cy5zZXRJbnRlcnZhbCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFRpbWVvdXQoYXBwbHkuY2FsbChzZXRJbnRlcnZhbCwgd2luZG93LCBhcmd1bWVudHMpLCBjbGVhckludGVydmFsKTtcbn07XG5leHBvcnRzLmNsZWFyVGltZW91dCA9XG5leHBvcnRzLmNsZWFySW50ZXJ2YWwgPSBmdW5jdGlvbih0aW1lb3V0KSB7IHRpbWVvdXQuY2xvc2UoKTsgfTtcblxuZnVuY3Rpb24gVGltZW91dChpZCwgY2xlYXJGbikge1xuICB0aGlzLl9pZCA9IGlkO1xuICB0aGlzLl9jbGVhckZuID0gY2xlYXJGbjtcbn1cblRpbWVvdXQucHJvdG90eXBlLnVucmVmID0gVGltZW91dC5wcm90b3R5cGUucmVmID0gZnVuY3Rpb24oKSB7fTtcblRpbWVvdXQucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMuX2NsZWFyRm4uY2FsbCh3aW5kb3csIHRoaXMuX2lkKTtcbn07XG5cbi8vIERvZXMgbm90IHN0YXJ0IHRoZSB0aW1lLCBqdXN0IHNldHMgdXAgdGhlIG1lbWJlcnMgbmVlZGVkLlxuZXhwb3J0cy5lbnJvbGwgPSBmdW5jdGlvbihpdGVtLCBtc2Vjcykge1xuICBjbGVhclRpbWVvdXQoaXRlbS5faWRsZVRpbWVvdXRJZCk7XG4gIGl0ZW0uX2lkbGVUaW1lb3V0ID0gbXNlY3M7XG59O1xuXG5leHBvcnRzLnVuZW5yb2xsID0gZnVuY3Rpb24oaXRlbSkge1xuICBjbGVhclRpbWVvdXQoaXRlbS5faWRsZVRpbWVvdXRJZCk7XG4gIGl0ZW0uX2lkbGVUaW1lb3V0ID0gLTE7XG59O1xuXG5leHBvcnRzLl91bnJlZkFjdGl2ZSA9IGV4cG9ydHMuYWN0aXZlID0gZnVuY3Rpb24oaXRlbSkge1xuICBjbGVhclRpbWVvdXQoaXRlbS5faWRsZVRpbWVvdXRJZCk7XG5cbiAgdmFyIG1zZWNzID0gaXRlbS5faWRsZVRpbWVvdXQ7XG4gIGlmIChtc2VjcyA+PSAwKSB7XG4gICAgaXRlbS5faWRsZVRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gb25UaW1lb3V0KCkge1xuICAgICAgaWYgKGl0ZW0uX29uVGltZW91dClcbiAgICAgICAgaXRlbS5fb25UaW1lb3V0KCk7XG4gICAgfSwgbXNlY3MpO1xuICB9XG59O1xuXG4vLyBUaGF0J3Mgbm90IGhvdyBub2RlLmpzIGltcGxlbWVudHMgaXQgYnV0IHRoZSBleHBvc2VkIGFwaSBpcyB0aGUgc2FtZS5cbmV4cG9ydHMuc2V0SW1tZWRpYXRlID0gdHlwZW9mIHNldEltbWVkaWF0ZSA9PT0gXCJmdW5jdGlvblwiID8gc2V0SW1tZWRpYXRlIDogZnVuY3Rpb24oZm4pIHtcbiAgdmFyIGlkID0gbmV4dEltbWVkaWF0ZUlkKys7XG4gIHZhciBhcmdzID0gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBmYWxzZSA6IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcblxuICBpbW1lZGlhdGVJZHNbaWRdID0gdHJ1ZTtcblxuICBuZXh0VGljayhmdW5jdGlvbiBvbk5leHRUaWNrKCkge1xuICAgIGlmIChpbW1lZGlhdGVJZHNbaWRdKSB7XG4gICAgICAvLyBmbi5jYWxsKCkgaXMgZmFzdGVyIHNvIHdlIG9wdGltaXplIGZvciB0aGUgY29tbW9uIHVzZS1jYXNlXG4gICAgICAvLyBAc2VlIGh0dHA6Ly9qc3BlcmYuY29tL2NhbGwtYXBwbHktc2VndVxuICAgICAgaWYgKGFyZ3MpIHtcbiAgICAgICAgZm4uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmbi5jYWxsKG51bGwpO1xuICAgICAgfVxuICAgICAgLy8gUHJldmVudCBpZHMgZnJvbSBsZWFraW5nXG4gICAgICBleHBvcnRzLmNsZWFySW1tZWRpYXRlKGlkKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBpZDtcbn07XG5cbmV4cG9ydHMuY2xlYXJJbW1lZGlhdGUgPSB0eXBlb2YgY2xlYXJJbW1lZGlhdGUgPT09IFwiZnVuY3Rpb25cIiA/IGNsZWFySW1tZWRpYXRlIDogZnVuY3Rpb24oaWQpIHtcbiAgZGVsZXRlIGltbWVkaWF0ZUlkc1tpZF07XG59OyIsImltcG9ydCB7IEN1c3RvbUlucHV0RWxlbWVudCB9IGZyb20gJy4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBGaWxlRmllbGRFbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50cy9GaWxlRmllbGQvRmlsZUZpZWxkRWxlbWVudCc7XG5pbXBvcnQgQXJyYXlVdGlsIGZyb20gJy4vZnJhbWV3b3JrL1V0aWxpdGllcy9BcnJheVV0aWwnO1xuaW1wb3J0IE1ha2VSZXF1ZXN0IGZyb20gJy4vZnJhbWV3b3JrL1V0aWxpdGllcy9NYWtlUmVxdWVzdCc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21Gb3JtIHtcblx0YWN0aW9uOiBzdHJpbmc7XG5cdG1ldGhvZDogc3RyaW5nO1xuXHRfbmF0aXZlSW5wdXRzOiBIVE1MSW5wdXRFbGVtZW50W107XG5cblx0cHVibGljIG9uc3VibWl0OiAoKHRoaXM6IEN1c3RvbUZvcm0sIHByb21pc2U6IFByb21pc2U8YW55PikgPT4gYW55KSB8IG51bGw7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBmb3JtOiBIVE1MRm9ybUVsZW1lbnQpIHtcblx0XHR0aGlzLmFjdGlvbiA9IGZvcm0uYWN0aW9uIHx8ICcnO1xuXHRcdHRoaXMubWV0aG9kID0gZm9ybS5tZXRob2QgfHwgJ2dldCc7XG5cdFx0dGhpcy5hdHRhY2hGb3JtKCk7XG5cdFx0dGhpcy5iaW5Hcm91cHNUb0RlcGVuZGVuY3koKTtcblx0fVxuXG5cdGdldCBpbnB1dHMoKTogQ3VzdG9tSW5wdXRFbGVtZW50W10ge1xuXHRcdHJldHVybiBBcnJheVV0aWwuRnJvbU5vZGVMaXN0KHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCcuZ3JvdXAtY29udGFpbmVyOm5vdChbaGlkZGVuXSkgW2N1c3RvbS1pbnB1dF06bm90KFtoaWRkZW5dKScpKTtcblx0fVxuXHRnZXQgbmF0aXZlSW5wdXRzKCk6IEhUTUxJbnB1dEVsZW1lbnRbXSB7XG5cdFx0dGhpcy5fbmF0aXZlSW5wdXRzID1cblx0XHRcdHRoaXMuX25hdGl2ZUlucHV0cyB8fFxuXHRcdFx0QXJyYXlVdGlsLkZyb21Ob2RlTGlzdCh0aGlzLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKSk7XG5cdFx0cmV0dXJuIHRoaXMuX25hdGl2ZUlucHV0cztcblx0fVxuXG5cdGdldCBoYXNGaWxlcygpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5pbnB1dHMuc29tZShpbnB1dCA9PiBpbnB1dCBpbnN0YW5jZW9mIEZpbGVGaWVsZEVsZW1lbnQpO1xuXHR9XG5cblx0YXR0YWNoRm9ybSgpIHtcblx0XHR0aGlzLmZvcm0ub25zdWJtaXQgPSBldmVudCA9PiB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0bGV0IHZhbGlkID0gdGhpcy52YWxpZGF0ZSgpO1xuXHRcdFx0aWYgKHZhbGlkKSB7XG5cdFx0XHRcdGlmICh0aGlzLm9uc3VibWl0KSB7XG5cdFx0XHRcdFx0dGhpcy5vbnN1Ym1pdCh0aGlzLnN1Ym1pdCgpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHR2YWxpZGF0ZSgpOiBib29sZWFuIHtcblx0XHR0aGlzLmlucHV0cy5mb3JFYWNoKGlucHV0ID0+ICg8Q3VzdG9tSW5wdXRFbGVtZW50PmlucHV0KS52YWxpZGF0ZSgpKTtcblx0XHRyZXR1cm4gdGhpcy5pbnB1dHMuZXZlcnkoaW5wdXQgPT4gKDxDdXN0b21JbnB1dEVsZW1lbnQ+aW5wdXQpLnZhbGlkKTtcblx0fVxuXG5cdHN1Ym1pdCgpOiBQcm9taXNlPGFueT4ge1xuXHRcdGxldCBmb3JtRGF0YSA9IHt9O1xuXHRcdGNvbnN0IGhlYWRlcnM6IGFueSA9IHt9O1xuXHRcdHRoaXMuaW5wdXRzLm1hcChpID0+IChmb3JtRGF0YVtpLm5hbWVdID0gaS52YWx1ZSkpO1xuXHRcdGZvcm1EYXRhID0gdGhpcy5leHRyYWN0RGF0YSgpO1xuXHRcdHJldHVybiBuZXcgTWFrZVJlcXVlc3QodGhpcy5hY3Rpb24sIHRoaXMubWV0aG9kLCBoZWFkZXJzKS5zZW5kKFxuXHRcdFx0Zm9ybURhdGEsXG5cdFx0KTtcblx0fVxuXHRwcml2YXRlIGV4dHJhY3REYXRhKCk6IEZvcm1EYXRhIHtcblx0XHRjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblx0XHRmb3IgKGNvbnN0IGlucHV0IG9mIHRoaXMuaW5wdXRzKSB7XG5cdFx0XHRpZiAoaW5wdXQgaW5zdGFuY2VvZiBGaWxlRmllbGRFbGVtZW50KSB7XG5cdFx0XHRcdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpbnB1dC52YWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcblx0XHRcdFx0XHRjb25zdCBmaWxlID0gaW5wdXQudmFsdWVbaW5kZXhdO1xuXHRcdFx0XHRcdGZvcm1EYXRhLmFwcGVuZChpbnB1dC5uYW1lLCBmaWxlLCBmaWxlLm5hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmb3JtRGF0YS5hcHBlbmQoYFZhbHVlc1ske2lucHV0Lm5hbWV9XWAsIGlucHV0LnZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Zm9yIChjb25zdCBpbnB1dCBvZiB0aGlzLm5hdGl2ZUlucHV0cykge1xuXHRcdFx0aWYgKGlucHV0Lm5hbWUpIHtcblx0XHRcdFx0Zm9ybURhdGEuYXBwZW5kKGlucHV0Lm5hbWUsIGlucHV0LnZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGZvcm1EYXRhO1xuXHR9XG5cblx0cHJpdmF0ZSBiaW5Hcm91cHNUb0RlcGVuZGVuY3koKSB7XG5cdFx0bGV0IGdyb3VwQ29udGFpbmVycyA9IHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdkaXYuZ3JvdXAtY29udGFpbmVyOm5vdChbZGF0YS1kZXBlbmRzLW9uPVwiXCJdKScsXG5cdFx0KTtcblx0XHRncm91cENvbnRhaW5lcnMuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcblx0XHRcdGxldCBkZXBlbmRlbnRGaWVsZCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWRlcGVuZHMtb24nKTtcblx0XHRcdGxldCBkZXBlbmRlbnRWYWx1ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWRlcGVuZGVudC12YWx1ZScpO1xuXHRcdFx0bGV0IGN1c3RvbUVsZW1lbnQ6IEN1c3RvbUlucHV0RWxlbWVudCA9IGRvY3VtZW50LmZvcm1zWzBdLnF1ZXJ5U2VsZWN0b3IoYFtuYW1lPVwiJHtkZXBlbmRlbnRGaWVsZH1cIl1gKSBhcyBDdXN0b21JbnB1dEVsZW1lbnQ7XG5cdFx0XHRlbGVtZW50LnNldEF0dHJpYnV0ZShcImhpZGRlblwiLCBcIlwiKTtcblx0XHRcdGN1c3RvbUVsZW1lbnQub25DaGFuZ2Uub24oZXZlbnQgPT4ge1xuXHRcdFx0XHRpZiAoZXZlbnQudmFsdWUgPT09IGRlcGVuZGVudFZhbHVlIHx8IGV2ZW50LnZhbHVlLmluZGV4T2YoZGVwZW5kZW50VmFsdWUpID49IDApIHtcblx0XHRcdFx0XHR0aGlzLnNob3dHcm91cEFuZEl0c0RlcGVuZGVuY2llcyhlbGVtZW50KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmhpZGVHcm91cEFuZEl0c0RlcGVuZGVuY2llcyhlbGVtZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGhpZGVHcm91cEFuZEl0c0RlcGVuZGVuY2llcyhncm91cDogRWxlbWVudCkge1xuXHRcdGNvbnN0IGlucHV0RWxlbWVudHNJbnNpZGVHcm91cCA9IHRoaXMuaW5wdXRzLmZpbHRlcihpbnB1dCA9PiB0aGlzLmlzRGVzY2VuZGFudChncm91cCwgaW5wdXQpKTtcblx0XHRncm91cC5zZXRBdHRyaWJ1dGUoXCJoaWRkZW5cIiwgXCJcIik7XG5cdFx0bGV0IGdyb3VwQ29udGFpbmVycyA9IHRoaXMuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCdkaXYuZ3JvdXAtY29udGFpbmVyOm5vdChbZGF0YS1kZXBlbmRzLW9uPVwiXCJdKScpO1xuXHRcdGdyb3VwQ29udGFpbmVycy5mb3JFYWNoKG90aGVyR3JvdXAgPT4ge1xuXHRcdFx0aWYgKG90aGVyR3JvdXAgIT09IGdyb3VwKSB7XG5cdFx0XHRcdGxldCBncm91cERlcGVuZHNPbkZpZWxkID0gb3RoZXJHcm91cC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGVwZW5kcy1vbicpO1xuXHRcdFx0XHRpbnB1dEVsZW1lbnRzSW5zaWRlR3JvdXAuZm9yRWFjaChpbnB1dCA9PiB7XG5cdFx0XHRcdFx0aWYgKGlucHV0Lm5hbWUgPT09IGdyb3VwRGVwZW5kc09uRmllbGQpIHtcblx0XHRcdFx0XHRcdHRoaXMuaGlkZUdyb3VwQW5kSXRzRGVwZW5kZW5jaWVzKG90aGVyR3JvdXApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cHJpdmF0ZSBzaG93R3JvdXBBbmRJdHNEZXBlbmRlbmNpZXMoZ3JvdXA6IEVsZW1lbnQpIHtcblx0XHRncm91cC5yZW1vdmVBdHRyaWJ1dGUoXCJoaWRkZW5cIik7XG5cdFx0Y29uc3QgaW5wdXRFbGVtZW50c0luc2lkZUdyb3VwID0gdGhpcy5pbnB1dHMuZmlsdGVyKGlucHV0ID0+IHRoaXMuaXNEZXNjZW5kYW50KGdyb3VwLCBpbnB1dCkpO1xuXHRcdGxldCBncm91cENvbnRhaW5lcnMgPSB0aGlzLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgnZGl2Lmdyb3VwLWNvbnRhaW5lcjpub3QoW2RhdGEtZGVwZW5kcy1vbj1cIlwiXSknKTtcblx0XHRncm91cENvbnRhaW5lcnMuZm9yRWFjaChvdGhlckdyb3VwID0+IHtcblx0XHRcdGlmIChvdGhlckdyb3VwICE9PSBncm91cCkge1xuXHRcdFx0XHRsZXQgZ3JvdXBEZXBlbmRzT25GaWVsZCA9IG90aGVyR3JvdXAuZ2V0QXR0cmlidXRlKCdkYXRhLWRlcGVuZHMtb24nKTtcblx0XHRcdFx0bGV0IGRlcGVuZGVudFZhbHVlID0gb3RoZXJHcm91cC5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGVwZW5kZW50LXZhbHVlJyk7XG5cdFx0XHRcdGlucHV0RWxlbWVudHNJbnNpZGVHcm91cC5mb3JFYWNoKGlucHV0ID0+IHtcblx0XHRcdFx0XHRpZiAoaW5wdXQubmFtZSA9PT0gZ3JvdXBEZXBlbmRzT25GaWVsZFxuXHRcdFx0XHRcdFx0JiYgaW5wdXQudmFsdWVcblx0XHRcdFx0XHRcdCYmIChpbnB1dC52YWx1ZSA9PT0gZGVwZW5kZW50VmFsdWVcblx0XHRcdFx0XHRcdFx0fHwgaW5wdXQudmFsdWUuaW5kZXhPZihkZXBlbmRlbnRWYWx1ZSkgPj0gMCkpIHtcblx0XHRcdFx0XHRcdHRoaXMuc2hvd0dyb3VwQW5kSXRzRGVwZW5kZW5jaWVzKG90aGVyR3JvdXApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cHJpdmF0ZSBpc0Rlc2NlbmRhbnQocGFyZW50OiBFbGVtZW50LCBjaGlsZDogRWxlbWVudCkge1xuXHRcdHZhciBub2RlID0gY2hpbGQucGFyZW50Tm9kZTtcblx0XHR3aGlsZSAobm9kZSAhPSBudWxsKSB7XG5cdFx0XHRpZiAobm9kZSA9PT0gcGFyZW50KSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0bm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgVHJhbnNsYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvTGFuZ3VhZ2UvVHJhbnNsYXRvcic7XG5pbXBvcnQgZ2V0QXR0cmlidXRlTmFtZXNQb2x5ZmlsbCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvUG9seWZpbGxzL2dldEF0dHJpYnV0ZU5hbWVzUG9seWZpbGwnO1xuaW1wb3J0IGRlYm91bmNlciBmcm9tIFwiLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9kZWJvdW5jZXJcIjtcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ2FkZHJlc3MtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYWRkcmVzcy13cmFwcGVyXCI+XG5cdFx0XHRcdDxpbnB1dCBjbGFzcz0nYWRkcmVzcy1wYXJ0JyBpZD0nYWRkcmVzcycgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj0nQWRkcmVzcycvPlxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9J2FkZHJlc3MtcGFydCcgaWQ9J3ppcCcgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj0nWmlwJy8+XG5cdFx0XHRcdDxpbnB1dCBjbGFzcz0nYWRkcmVzcy1wYXJ0JyBpZD0nY2l0eScgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj0nQ2l0eScvPlxuXHRcdFx0XHQ8aW5wdXQgY2xhc3M9J2FkZHJlc3MtcGFydCcgaWQ9J2NvdW50cnknIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9J0NvdW50cnknLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgLmFkZHJlc3Mtd3JhcHBlcntcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHR9XG5cdFx0XHRpbnB1dC5hZGRyZXNzLXBhcnR7XG5cdFx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcblx0XHRcdFx0bWFyZ2luOiAycHg7XG5cdFx0XHRcdHJlc2l6ZTogbm9uZTtcblx0XHRcdFx0d2lkdGg6MzMlICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0YCxcblx0dGVtcGxhdGVQYXRoOiAnLi9odG1sLmh0bWwnLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFkZHJlc3NFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0cHJpdmF0ZSBhdXRvQ29tcGxldGVFbmFibGVkID0gZmFsc2U7XG5cdHByaXZhdGUgYWRkcmVzc0F1dG9Db21wbGV0ZTogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZTtcblx0cHJpdmF0ZSBnb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudDogSFRNTFNjcmlwdEVsZW1lbnQ7XG5cdHByaXZhdGUgZ29vZ2xlUGxhY2VzQXBpS2V5OiBzdHJpbmc7XG5cblx0YWRkcmVzczogSFRNTElucHV0RWxlbWVudDtcblx0Y2l0eTogSFRNTElucHV0RWxlbWVudDtcblx0Y291bnRyeTogSFRNTElucHV0RWxlbWVudDtcblx0emlwOiBIVE1MSW5wdXRFbGVtZW50O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0Z2V0QXR0cmlidXRlTmFtZXNQb2x5ZmlsbCgpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0bGV0IGFkZHJlc3MgPSB0aGlzLmFkZHJlc3MudmFsdWUgfHwgJyc7XG5cdFx0bGV0IGNpdHkgPSB0aGlzLmNpdHkudmFsdWUgPyBgLCR7dGhpcy5jaXR5LnZhbHVlfWAgOiAnJztcblx0XHRsZXQgemlwID0gdGhpcy56aXAudmFsdWUgPyBgLCR7dGhpcy56aXAudmFsdWV9YCA6ICcnO1xuXHRcdGxldCBjb3VudHJ5ID0gdGhpcy5jb3VudHJ5LnZhbHVlID8gYCwke3RoaXMuY291bnRyeS52YWx1ZX1gIDogJyc7XG5cdFx0cmV0dXJuIGAke2FkZHJlc3N9JHtjaXR5fSR7emlwfSR7Y291bnRyeX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRjb25zdCB2YWx1ZXMgPSB2YWx1ZS5zcGxpdCgnLCcpO1xuXHRcdHRoaXMuYWRkcmVzcy52YWx1ZSA9IHZhbHVlc1swXTtcblx0XHR0aGlzLmNpdHkudmFsdWUgPSB2YWx1ZXNbMV07XG5cdFx0dGhpcy5jb3VudHJ5LnZhbHVlID0gdmFsdWVzWzJdO1xuXHRcdHRoaXMuemlwLnZhbHVlID0gdmFsdWVzWzNdO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLmFkZHJlc3MudmFsaWRpdHkudmFsaWQgJiZcblx0XHRcdHRoaXMuY2l0eS52YWxpZGl0eS52YWxpZCAmJlxuXHRcdFx0dGhpcy5jb3VudHJ5LnZhbGlkaXR5LnZhbGlkICYmXG5cdFx0XHR0aGlzLnppcC52YWxpZGl0eS52YWxpZFxuXHRcdCk7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0Y29tcG9uZW50RGlkTW91bnQoKSB7XG5cdFx0dGhpcy5pbml0Q2hpbGRJbnB1dHMoKTtcblx0XHR0aGlzLmdldEF0dHJpYnV0ZU5hbWVzKCkuZm9yRWFjaChhdHRyaWJ1dGVOYW1lID0+IHtcblx0XHRcdGxldCBhdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuXHRcdFx0dGhpcy5hdHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUsIG51bGwsIGF0dHJpYnV0ZVZhbHVlKTtcblx0XHR9KTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLmFkZHJlc3MgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjYWRkcmVzcycpO1xuXHRcdHRoaXMuY2l0eSA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNjaXR5Jyk7XG5cdFx0dGhpcy5jb3VudHJ5ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2NvdW50cnknKTtcblx0XHR0aGlzLnppcCA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyN6aXAnKTtcblx0XHRjb25zdCBhZGRyZXNzQ2hhbmVEZWJvdW5jZSA9IGRlYm91bmNlcih0aGlzLmNoYW5nZS5iaW5kKHRoaXMpLCA0MDAsIGZhbHNlKTtcblx0XHR0aGlzLmFkZHJlc3MuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuXHRcdFx0YWRkcmVzc0NoYW5lRGVib3VuY2UoKTtcblx0XHR9KTtcblx0XHR0aGlzLmNpdHkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy5jb3VudHJ5LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdHRoaXMuemlwLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMuYWRkcmVzcy5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdFx0dGhpcy5jaXR5LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0XHR0aGlzLmNvdW50cnkuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHRcdHRoaXMuemlwLnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxuXG5cdGNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcblx0XHRpZiAoIXRoaXMuYWRkcmVzcyB8fCAhdGhpcy5jaXR5IHx8ICF0aGlzLmNvdW50cnkgfHwgIXRoaXMuemlwKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuYWRkcmVzcy5wbGFjZWhvbGRlciA9IFRyYW5zbGF0b3IuVHJhbnNsYXRlKCdBZGRyZXNzRWxlbWVudC5BZGRyZXNzJywgbGFuZ3VhZ2UpO1xuXHRcdHRoaXMuY2l0eS5wbGFjZWhvbGRlciA9IFRyYW5zbGF0b3IuVHJhbnNsYXRlKCdBZGRyZXNzRWxlbWVudC5DaXR5JywgbGFuZ3VhZ2UpO1xuXHRcdHRoaXMuY291bnRyeS5wbGFjZWhvbGRlciA9IFRyYW5zbGF0b3IuVHJhbnNsYXRlKCdBZGRyZXNzRWxlbWVudC5Db3VudHJ5JywgbGFuZ3VhZ2UpO1xuXHRcdHRoaXMuemlwLnBsYWNlaG9sZGVyID0gVHJhbnNsYXRvci5UcmFuc2xhdGUoJ0FkZHJlc3NFbGVtZW50LlppcCcsIGxhbmd1YWdlKTtcblx0fVxuXG5cdGVuYWJsZUF1dG9Db21wbGV0ZSgpIHtcblx0XHRpZiAoIXRoaXMuZ29vZ2xlUGxhY2VzQXBpS2V5IHx8IHRoaXMuZ29vZ2xlUGxhY2VzQXBpS2V5LnRyaW0oKSA9PT0gJycgfHwgIXRoaXMuYXV0b0NvbXBsZXRlRW5hYmxlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRcblx0XHR0aGlzLmdvb2dsZVBsYWNlc0xpYnJhcnlFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MU2NyaXB0RWxlbWVudD4oYFtzcmM9XCJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanM/a2V5PSR7dGhpcy5nb29nbGVQbGFjZXNBcGlLZXl9JmxpYnJhcmllcz1wbGFjZXNcIl1gKTtcblx0XHRpZiAodGhpcy5nb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudCkge1xuXHRcdFx0dGhpcy5nb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudEJpbmRMb2FkKCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuZ29vZ2xlUGxhY2VzTGlicmFyeUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblx0XHR0aGlzLmdvb2dsZVBsYWNlc0xpYnJhcnlFbGVtZW50LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0Jztcblx0XHR0aGlzLmdvb2dsZVBsYWNlc0xpYnJhcnlFbGVtZW50LnNyYyA9IGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanM/a2V5PSR7dGhpcy5nb29nbGVQbGFjZXNBcGlLZXl9JmxpYnJhcmllcz1wbGFjZXNgO1xuXHRcdHdpbmRvdy5kb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRoaXMuZ29vZ2xlUGxhY2VzTGlicmFyeUVsZW1lbnQpO1xuXHRcdHRoaXMuZ29vZ2xlUGxhY2VzTGlicmFyeUVsZW1lbnRCaW5kTG9hZCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBnb29nbGVQbGFjZXNMaWJyYXJ5RWxlbWVudEJpbmRMb2FkKCkge1xuXHRcdHRoaXMuZ29vZ2xlUGxhY2VzTGlicmFyeUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcblx0XHRcdHRoaXMuYmluZEF1dG9Db21wbGV0ZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0YmluZEF1dG9Db21wbGV0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLmFkZHJlc3NBdXRvQ29tcGxldGUgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZSh0aGlzLmFkZHJlc3MpO1xuXHRcdHRoaXMuYWRkcmVzc0F1dG9Db21wbGV0ZS5hZGRMaXN0ZW5lcihcInBsYWNlX2NoYW5nZWRcIiwgdGhpcy5vbkFkZHJlc3NDaGFuZ2VkSGFuZGxlci5iaW5kKHRoaXMpKTtcblx0fVxuXG5cdG9uQWRkcmVzc0NoYW5nZWRIYW5kbGVyKCkge1xuXHRcdHRoaXMuY2l0eS52YWx1ZSA9ICcnO1xuXHRcdHRoaXMuY291bnRyeS52YWx1ZSA9ICcnO1xuXHRcdHRoaXMuemlwLnZhbHVlID0gJyc7XG5cblx0XHRjb25zdCBwbGFjZSA9IHRoaXMuYWRkcmVzc0F1dG9Db21wbGV0ZS5nZXRQbGFjZSgpO1xuXHRcdGNvbnNvbGUubG9nKHBsYWNlKTtcblx0XHRpZiAoIXBsYWNlLmFkZHJlc3NfY29tcG9uZW50cykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRcblx0XHR0aGlzLmFkZHJlc3MudmFsdWUgPSBwbGFjZS5uYW1lO1xuXG5cdFx0Y29uc3QgY2l0eUNvbXBvbmVudHMgPSBwbGFjZS5hZGRyZXNzX2NvbXBvbmVudHMuZmlsdGVyKGNvbXBvbmVudCA9PiB7XG5cdFx0XHRjb25zdCBjaXR5U3lub255bXMgPSBbJ2FkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMScsICdsb2NhbGl0eSddO1xuXHRcdFx0Y29uc3QgaXNDaXR5Q29tcG9uZW50ID0gY2l0eVN5bm9ueW1zLnNvbWUoY2l0eVN5bm9ueW0gPT4gY29tcG9uZW50LnR5cGVzLmluZGV4T2YoY2l0eVN5bm9ueW0pICE9IC0xKTtcblx0XHRcdHJldHVybiBpc0NpdHlDb21wb25lbnQ7XG5cdFx0fSk7XG5cdFx0aWYgKGNpdHlDb21wb25lbnRzICYmIGNpdHlDb21wb25lbnRzWzBdKSB7XG5cdFx0XHR0aGlzLmNpdHkudmFsdWUgPSBjaXR5Q29tcG9uZW50c1tjaXR5Q29tcG9uZW50cy5sZW5ndGggLSAxXS5sb25nX25hbWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QgY291bnRyeUNvbXBvbmVudHMgPSBwbGFjZS5hZGRyZXNzX2NvbXBvbmVudHMuZmlsdGVyKGNvbXBvbmVudCA9PiBjb21wb25lbnQudHlwZXMuaW5kZXhPZignY291bnRyeScpICE9IC0xKTtcblx0XHRpZiAoY291bnRyeUNvbXBvbmVudHMgJiYgY291bnRyeUNvbXBvbmVudHNbMF0pIHtcblx0XHRcdHRoaXMuY291bnRyeS52YWx1ZSA9IGNvdW50cnlDb21wb25lbnRzW2NvdW50cnlDb21wb25lbnRzLmxlbmd0aCAtIDFdLmxvbmdfbmFtZTtcblx0XHR9XG5cblx0XHRjb25zdCB6aXBDb21wb25lbnRzID0gcGxhY2UuYWRkcmVzc19jb21wb25lbnRzLmZpbHRlcihjb21wb25lbnQgPT4gY29tcG9uZW50LnR5cGVzLmluZGV4T2YoJ3Bvc3RhbF9jb2RlJykgIT0gLTEpO1xuXHRcdGlmICh6aXBDb21wb25lbnRzICYmIHppcENvbXBvbmVudHNbMF0pIHtcblx0XHRcdHRoaXMuemlwLnZhbHVlID0gemlwQ29tcG9uZW50c1swXS5sb25nX25hbWU7XG5cdFx0fVxuXHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHR9XG5cblx0c3RhdGljIGdldCBvYnNlcnZlZEF0dHJpYnV0ZXMoKSB7XG5cdFx0cmV0dXJuIFsnbGFuZ3VhZ2UnLCAnZ29vZ2xlLXBsYWNlcy1rZXknLCAnZW5hYmxlLWF1dG8tY29tcGxldGUnXTtcblx0fVxuXHRhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZTogc3RyaW5nLCBvbGRWYWw6IHN0cmluZywgbmV3VmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsLCBuZXdWYWwpO1xuXHR9XG5cdHByaXZhdGUgYXR0cmlidXRlQ2hhbmdlZChuYW1lOiBzdHJpbmcsIG9sZFZhbDogc3RyaW5nLCBuZXdWYWw6IHN0cmluZykge1xuXHRcdHN3aXRjaCAobmFtZSkge1xuXHRcdFx0Y2FzZSAnbGFuZ3VhZ2UnOlxuXHRcdFx0XHR0aGlzLmNoYW5nZUxhbmd1YWdlKG5ld1ZhbClcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdnb29nbGUtcGxhY2VzLWtleSc6XG5cdFx0XHRcdHRoaXMuZ29vZ2xlUGxhY2VzQXBpS2V5ID0gbmV3VmFsO1xuXHRcdFx0XHR0aGlzLmVuYWJsZUF1dG9Db21wbGV0ZSgpXG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnZW5hYmxlLWF1dG8tY29tcGxldGUnOlxuXHRcdFx0XHRpZiAobmV3VmFsICYmIG5ld1ZhbCAhPSAnZmFsc2UnKSB7XG5cdFx0XHRcdFx0dGhpcy5hdXRvQ29tcGxldGVFbmFibGVkID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLmVuYWJsZUF1dG9Db21wbGV0ZSgpXG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cblx0XHR9XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgQmFua0FjY291bnRWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rQWNjb3VudCc7XG5pbXBvcnQgQmFua0FjY291bnRSZWdpc3RyYXRpb25OdW1iZXJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rQWNjb3VudFJlZ2lzdHJhdGlvbk51bWJlcic7XG5pbXBvcnQgVHJhbnNsYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvTGFuZ3VhZ2UvVHJhbnNsYXRvcic7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdiYW5rLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9J3JlZy1udW1iZXItZmllbGQnIHBsYWNlaG9sZGVyPSdCYW5rIEFjY291bnQgUmVnaXN0cmF0aW9uIE51bWJlcicvPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0nYWNjb3VudC1maWVsZCcgcGxhY2Vob2xkZXI9J0JhbmsgQWNjb3VudCcvPlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICA6aG9zdHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuICAgIC53cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgIH1cbiAgICBpbnB1dHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cbiAgICAgICAgICAgYCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBCYW5rRmllbGRFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0YWNjb3VudDogSFRNTElucHV0RWxlbWVudDtcblx0cmVnTnVtYmVyOiBIVE1MSW5wdXRFbGVtZW50O1xuXHRiYW5rQWNjb3VudFZhbGlkYXRvcjogQmFua0FjY291bnRWYWxpZGF0b3IgPSBuZXcgQmFua0FjY291bnRWYWxpZGF0b3IoKTtcblx0cmVnTnVtYmVyVmFsaWRhdG9yOiBCYW5rQWNjb3VudFJlZ2lzdHJhdGlvbk51bWJlclZhbGlkYXRvciA9IG5ldyBCYW5rQWNjb3VudFJlZ2lzdHJhdGlvbk51bWJlclZhbGlkYXRvcigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRsZXQgYWNjb3VudCA9IHRoaXMuYWNjb3VudC52YWx1ZSB8fCAnJztcblx0XHRsZXQgcmVnTnVtYmVyID0gdGhpcy5yZWdOdW1iZXIudmFsdWUgPyBgLCR7dGhpcy5yZWdOdW1iZXIudmFsdWV9YCA6ICcnO1xuXHRcdHJldHVybiBgJHthY2NvdW50fSR7cmVnTnVtYmVyfWA7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdGNvbnN0IHZhbHVlcyA9IHZhbHVlLnNwbGl0KCcsJyk7XG5cdFx0dGhpcy5hY2NvdW50LnZhbHVlID0gdmFsdWVzWzBdO1xuXHRcdHRoaXMucmVnTnVtYmVyLnZhbHVlID0gdmFsdWVzWzFdO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLmJhbmtBY2NvdW50VmFsaWRhdG9yLmlzU2F0aXNmaWVkQnkoXG5cdFx0XHRcdHRoaXMuYWNjb3VudC52YWx1ZSxcblx0XHRcdFx0IXRoaXMucmVxdWlyZWQsXG5cdFx0XHQpICYmXG5cdFx0XHR0aGlzLnJlZ051bWJlclZhbGlkYXRvci5pc1NhdGlzZmllZEJ5KFxuXHRcdFx0XHR0aGlzLnJlZ051bWJlci52YWx1ZSxcblx0XHRcdFx0IXRoaXMucmVxdWlyZWQsXG5cdFx0XHQpICYmXG5cdFx0XHR0aGlzLmFjY291bnQudmFsaWRpdHkudmFsaWQgJiZcblx0XHRcdHRoaXMucmVnTnVtYmVyLnZhbGlkaXR5LnZhbGlkXG5cdFx0KTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRjb21wb25lbnREaWRNb3VudCgpIHtcblx0XHR0aGlzLmluaXRDaGlsZElucHV0cygpO1xuXHRcdHRoaXMuZ2V0QXR0cmlidXRlTmFtZXMoKS5mb3JFYWNoKGF0dHJpYnV0ZU5hbWUgPT4ge1xuXHRcdFx0bGV0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG5cdFx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSwgbnVsbCwgYXR0cmlidXRlVmFsdWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0Y2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuXHRcdGlmICghdGhpcy5hY2NvdW50IHx8ICF0aGlzLnJlZ051bWJlcikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmFjY291bnQucGxhY2Vob2xkZXIgPSBUcmFuc2xhdG9yLlRyYW5zbGF0ZSgnQmFua0VsZW1lbnQuQWNjb3VudCcsIGxhbmd1YWdlKTtcblx0XHR0aGlzLnJlZ051bWJlci5wbGFjZWhvbGRlciA9IFRyYW5zbGF0b3IuVHJhbnNsYXRlKCdCYW5rRWxlbWVudC5SZWdpc3RyYXRpb25OdW1iZXInLCBsYW5ndWFnZSk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy5hY2NvdW50ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2FjY291bnQtZmllbGQnKTtcblx0XHR0aGlzLnJlZ051bWJlciA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNyZWctbnVtYmVyLWZpZWxkJyk7XG5cdFx0dGhpcy5hY2NvdW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdHRoaXMucmVnTnVtYmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmFjY291bnQuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHRcdHRoaXMucmVnTnVtYmVyLnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxuXG5cdHN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCkge1xuXHRcdHJldHVybiBbJ2xhbmd1YWdlJ107XG5cdH1cblx0YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWU6IHN0cmluZywgb2xkVmFsOiBzdHJpbmcsIG5ld1ZhbDogc3RyaW5nKSB7XG5cdFx0dGhpcy5hdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbCwgbmV3VmFsKTtcblx0fVxuXHRwcml2YXRlIGF0dHJpYnV0ZUNoYW5nZWQobmFtZTogc3RyaW5nLCBvbGRWYWw6IHN0cmluZywgbmV3VmFsOiBzdHJpbmcpIHtcblx0XHRzd2l0Y2ggKG5hbWUpIHtcblx0XHRcdGNhc2UgJ2xhbmd1YWdlJzpcblx0XHRcdFx0dGhpcy5jaGFuZ2VMYW5ndWFnZShuZXdWYWwpXG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBDcHJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DUFInO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnY3ByLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9J2Nwci1maWVsZCcgcGxhY2Vob2xkZXI9J0RETU1ZWS1TU1NTJy8+XG5cdFx0XHQ8L2Rpdj5gLFxuXHRzdHlsZTogYFxuICAgIDpob3N0e1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgLndyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgfVxuICAgIGlucHV0e1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICAgICAgICAgICBgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENQUkVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHR0ZXh0OiBIVE1MSW5wdXRFbGVtZW50O1xuXHR2YWxpZGF0b3I6IENwclZhbGlkYXRvciA9IG5ldyBDcHJWYWxpZGF0b3IoKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0b3IuaXNTYXRpc2ZpZWRCeSh0aGlzLnZhbHVlLCAhdGhpcy5yZXF1aXJlZCk7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMudGV4dCA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNjcHItZmllbGQnKTtcblx0XHR0aGlzLnRleHQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgQ3ByVmFsaWRhdG9yIGZyb20gJy4uLy4uL2ZyYW1ld29yay9WYWxpZGF0aW9uL1ZhbGlkYXRvcnMvQ1BSJztcbmltcG9ydCBDdnJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DVlInO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnY3ZyLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9J2N2ci1maWVsZCcgcGxhY2Vob2xkZXI9J1NTU1NTU1NTJy8+XG5cdFx0XHQ8L2Rpdj5gLFxuXHRzdHlsZTogYFxuICAgIDpob3N0e1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgLndyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgfVxuICAgIGlucHV0e1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICAgICAgICAgICBgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENWUkVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHR0ZXh0OiBIVE1MSW5wdXRFbGVtZW50O1xuXHR2YWxpZGF0b3I6IEN2clZhbGlkYXRvciA9IG5ldyBDdnJWYWxpZGF0b3IoKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0b3IuaXNTYXRpc2ZpZWRCeSh0aGlzLnZhbHVlLCAhdGhpcy5yZXF1aXJlZCk7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMudGV4dCA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNjdnItZmllbGQnKTtcblx0XHR0aGlzLnRleHQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgeyBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9TdHJpbmdVdGlsJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ2NoZWNrYm94LWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG5cdFx0XHQ6aG9zdHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdH1cblx0XHRcdC5jaGVja2JveCB7XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gM3B4O1xuXHRcdFx0XHRjb2xvcjogcmdiYSg3MiwgNzIsIDcyLCAwLjc1KTtcblx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0fVxuXHRcdFx0aW5wdXRbdHlwZT0nY2hlY2tib3gnXXtcblx0XHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuXHRcdFx0XHRtYXJnaW46IDJweDtcblx0XHRcdFx0cmVzaXplOiBub25lO1xuXHRcdFx0fVxuXHRcdGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0Y2hlY2tib3g6IEhUTUxJbnB1dEVsZW1lbnRbXTtcblx0Y2hlY2tib3hUZW1wbGF0ZSA9IGBcblx0PGRpdiBjbGFzcz0nY2hlY2tib3gnPlxuXHRcdDxpbnB1dCB0eXBlPSdjaGVja2JveCcgbmFtZT0nezB9JyB2YWx1ZT1cInsxfVwiIGlkPVwiezJ9XCIvPlxuXHRcdDxsYWJlbCBmb3I9XCJ7Mn1cIj57MX08L2xhYmVsPlxuXHQ8L2Rpdj5gO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nW10ge1xuXHRcdHJldHVybiB0aGlzLmNoZWNrYm94LmZpbHRlcihjID0+IGMuY2hlY2tlZCkubWFwKGMgPT4gYy52YWx1ZSk7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWVzOiBzdHJpbmdbXSkge1xuXHRcdC8vIHRoaXMuY2hlY2tib3gudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0cmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoID4gMDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLmFkZENoZWNrQm94ZXMoKTtcblx0XHR0aGlzLmNoZWNrYm94ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dHMoYFtuYW1lPScke3RoaXMubmFtZX0nXWApO1xuXHRcdHRoaXMuY2hlY2tib3guZm9yRWFjaChjID0+XG5cdFx0XHRjLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpLFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGFkZENoZWNrQm94ZXMoKSB7XG5cdFx0Y29uc3Qgd3JhcHBlciA9IHN1cGVyLmdldENoaWxkRWxlbWVudCgnLndyYXBwZXInKTtcblx0XHR3cmFwcGVyLmlubmVySFRNTCA9IFwiXCI7XG5cdFx0dGhpcy5vcHRpb25zLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG5cdFx0XHR3cmFwcGVyLmluc2VydEFkamFjZW50SFRNTChcblx0XHRcdFx0J2JlZm9yZWVuZCcsXG5cdFx0XHRcdFN0cmluZ1V0aWwuU3RyaW5nRm9ybWF0KFxuXHRcdFx0XHRcdHRoaXMuY2hlY2tib3hUZW1wbGF0ZSxcblx0XHRcdFx0XHR0aGlzLm5hbWUsXG5cdFx0XHRcdFx0ZWxlbWVudCxcblx0XHRcdFx0XHRgJHt0aGlzLm5hbWV9LSR7aW5kZXh9YCxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ2N1c3RvbS1mb3JtYXQtZGF0ZS1lbGVtZW50JyxcbiAgICB0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG5cdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD1cImRpc3BsYXktZmllbGRcIiByZWFkb25seSAvPlxuXHRcdFx0PHN2ZyBpZD1cInBpY2tlci10cmlnZ2VyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHg9XCIyXCIgeT1cIjRcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMThcIiByeD1cIjFcIiBmaWxsPVwiIzAwMFwiLz48cmVjdCB4PVwiNFwiIHk9XCI4XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIvPjxwYXRoIGQ9XCJNNCAxMEgyMFwiIHN0cm9rZT1cIiMwMDBcIiBzdHJva2Utd2lkdGg9XCIxXCIvPjxjaXJjbGUgY3g9XCIxNlwiIGN5PVwiMTRcIiByPVwiMlwiIGZpbGw9XCIjRjQ0MzM2XCIvPjxyZWN0IHg9XCI2XCIgeT1cIjJcIiB3aWR0aD1cIjNcIiBoZWlnaHQ9XCI0XCIgcng9XCIuNVwiIGZpbGw9XCIjMDAwXCIvPjxyZWN0IHg9XCIxNVwiIHk9XCIyXCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiNFwiIHJ4PVwiLjVcIiBmaWxsPVwiIzAwMFwiLz48L3N2Zz5cblx0XHRcdDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZS1maWVsZFwiIC8+XG5cdFx0PC9kaXY+YCxcbiAgICBzdHlsZTogYFxuXHRcdDpob3N0e1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0XHR9XG5cdFx0LndyYXBwZXJ7XG5cdFx0XHRkaXNwbGF5OmZsZXg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0fVxuXHRcdGlucHV0e1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuXHRcdFx0bWFyZ2luOiAycHg7XG5cdFx0XHRyZXNpemU6IG5vbmU7XG5cdFx0fVxuXHRcdCNkYXRlLWZpZWxkIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiAtMTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdH1cblx0XHQjZGlzcGxheS1maWVsZDo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogdXJsKCdwYXRoL3RvL2RhdGVwaWNrZXItaWNvbi5wbmcnKTsgLyogUGF0aCB0byB5b3VyIGRhdGVwaWNrZXIgaWNvbiAqL1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0fVxuXHRcdCNwaWNrZXItdHJpZ2dlciB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0cmlnaHQ6IDJweDtcblx0XHRcdHRvcDogMTUlO1xuXHRcdH1cblx0XHQjZGF0ZXBpY2tlci1pY29uIHtcblx0XHR9XG5cdFx0XHRgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUZvcm1hdERhdGVGaWVsZEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHRkYXRlOiBhbnk7XG5cdGRpc3BsYXk6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cdGRhdGVwaWNrZXI6IGFueTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0ZS52YWx1ZTtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5kYXRlLnZhbHVlID0gdmFsdWU7XG5cdFx0dGhpcy5kaXNwbGF5LnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0ZS52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy5kYXRlID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2RhdGUtZmllbGQnKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2Rpc3BsYXktZmllbGQnKTtcblx0XHR0aGlzLmRhdGVwaWNrZXIgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjcGlja2VyLXRyaWdnZXInKTtcblxuICAgICAgICB0aGlzLmRhdGUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5LnZhbHVlID0gdGhpcy5mb3JtYXREYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZShudWxsKTtcbiAgICAgICAgfSk7XG5cblx0XHR0aGlzLmRhdGVwaWNrZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG5cdFx0XHR0aGlzLmRhdGUuc2hvd1BpY2tlcigpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5kaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuXHRcdFx0dGhpcy5kYXRlLnNob3dQaWNrZXIoKTtcblx0XHR9KTtcblxuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdtYXgnLCB0aGlzLm1heCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLm1pbikge1xuXHRcdFx0dGhpcy5kYXRlLnNldEF0dHJpYnV0ZSgnbWluJywgdGhpcy5taW4pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5kYXRlRm9ybWF0KXtcblx0XHRcdHRoaXMuZGlzcGxheS5wbGFjZWhvbGRlciA9IHRoaXMuZGF0ZUZvcm1hdDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0Y29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZSgpID8/IHRoaXMuZGF0ZS52YWx1ZUFzRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcblx0XHR0aGlzLmRpc3BsYXkudmFsdWUgPSBmb3JtYXR0ZWREYXRlO1xuXHRcdHRoaXMuZGF0ZS5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgZm9ybWF0dGVkRGF0ZSk7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIGZvcm1hdERhdGUoKTogc3RyaW5nIHtcblx0XHRjb25zdCBkYXRlID0gdGhpcy5kYXRlLnZhbHVlQXNEYXRlO1xuXG5cdFx0Y29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcblx0XHRjb25zdCBtb250aCA9IChkYXRlLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG5cdFx0Y29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xuXHRcdGNvbnN0IG1vbnRoTmFtZSA9IGRhdGUudG9Mb2NhbGVTdHJpbmcoJ2RlZmF1bHQnLCB7IG1vbnRoOiAnbG9uZycgfSk7XG5cdFx0XG5cdFx0Y29uc3QgZGF0ZUZvcm1hdHMgPSB7XG5cdFx0XHQnZGRtbXl5eXknOiBgJHtkYXl9JHttb250aH0ke3llYXJ9YCxcblx0XHRcdCdtbWRkeXl5eSc6IGAke21vbnRofSR7ZGF5fSR7eWVhcn1gLFxuXHRcdFx0J2RkL21tL3l5eXknOiBgJHtkYXl9LyR7bW9udGh9LyR7eWVhcn1gLFxuXHRcdFx0J21tL2RkL3l5eXknOiBgJHttb250aH0vJHtkYXl9LyR7eWVhcn1gLFxuXHRcdFx0J2RkLW1tLXl5eXknOiBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gLFxuXHRcdFx0J21tLWRkLXl5eXknOiBgJHttb250aH0tJHtkYXl9LSR7eWVhcn1gLFxuXHRcdFx0J3l5eXktbW0tZGQnOiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gLFxuXHRcdFx0J3l5eXktZGQtbW0nOiBgJHt5ZWFyfS0ke2RheX0tJHttb250aH1gLFxuXHRcdFx0J01vbnRoIGRkLCB5eXl5JzogYCR7bW9udGhOYW1lfSAke2RheX0sICR7eWVhcn1gLFxuXHRcdFx0J21tL2RkL3l5JzogYCR7bW9udGh9LyR7ZGF5fS8ke3llYXIudG9TdHJpbmcoKS5zbGljZSgtMil9YCxcblx0XHRcdCdkZC9tbS95eSc6IGAke2RheX0vJHttb250aH0vJHt5ZWFyLnRvU3RyaW5nKCkuc2xpY2UoLTIpfWAsXG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRhdGVGb3JtYXRzW3RoaXMuZGF0ZUZvcm1hdF0gPz8gbnVsbDtcblx0fVxuXG5cdGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKG5hbWUgPT09ICdkYXRlLWZvcm1hdCcpIHtcblx0XHRcdHRoaXMuZGlzcGxheS5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgbmV3VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJpbXBvcnQgQ3VzdG9tRWxlbWVudCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvY3VzdG9tLWVsZW1lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEN1c3RvbUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21FdmVudHMnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAncmVnZXgtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0ncmVnZXgtZmllbGQnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmVndWxhckV4cHJlc3Npb25FbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy50ZXh0LnZhbGlkaXR5LnZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLnRleHQgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjcmVnZXgtZmllbGQnKTtcblx0XHR0aGlzLnRleHQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5jdXN0b21WYWx1ZSkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncGF0dGVybicsIHRoaXMuY3VzdG9tVmFsdWUpO1xuXHRcdH1cbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdkYXRlLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IHR5cGU9XCJkYXRlXCIgaWQ9J2RhdGUtZmllbGQnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdGRhdGU6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmRhdGUudmFsdWU7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMuZGF0ZS52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmRhdGUudmFsaWRpdHkudmFsaWQ7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuZGF0ZSA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNkYXRlLWZpZWxkJyk7XG5cdFx0dGhpcy5kYXRlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLmRhdGUuc2V0QXR0cmlidXRlKCdtYXgnLCB0aGlzLm1heCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLm1pbikge1xuXHRcdFx0dGhpcy5kYXRlLnNldEF0dHJpYnV0ZSgnbWluJywgdGhpcy5taW4pO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgeyBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9TdHJpbmdVdGlsJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ2Ryb3AtZG93bi1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcblx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgICAgICAgICAgICA8c2VsZWN0IGlkPSdzZWxlY3QtbGlzdCc+XG5cdFx0XHQgICA8b3B0aW9uIHNlbGVjdGVkIGRpc2FibGVkPi08L29wdGlvbj5cbiAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICAgICAgICAgIDpob3N0e1xuICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAud3JhcHBlcntcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAucmFkaW8tYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG8gM3B4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwLjE7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxlY3R7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgYCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wRG93bkxpc3RFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0c2VsZWN0OiBIVE1MSW5wdXRFbGVtZW50O1xuXHRvcHRpb25UZW1wbGF0ZSA9IGBcbiAgICA8b3B0aW9uIHZhbHVlPSd7MH0nPlxuICAgICAgIHsxfVxuICAgIDwvb3B0aW9uPmA7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgJHt0aGlzLnNlbGVjdC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnNlbGVjdC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnNlbGVjdC52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy5zZWxlY3QgPSBzdXBlci5nZXRDaGlsZElucHV0KGAjc2VsZWN0LWxpc3RgKTtcblx0XHR0aGlzLmFkZE9wdGlvbnMoKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy5zZWxlY3Quc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubXVsdGkpIHtcblx0XHRcdHRoaXMuc2VsZWN0LnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCAnJyk7XG5cdFx0fVxuXHRcdHRoaXMuc2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHR9XG5cblx0cHJpdmF0ZSBhZGRPcHRpb25zKCkge1xuXHRcdHRoaXMuc2VsZWN0LmlubmVySFRNTCA9IFwiXCI7XG5cdFx0dGhpcy5vcHRpb25zLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG5cdFx0XHR0aGlzLnNlbGVjdC5pbnNlcnRBZGphY2VudEhUTUwoXG5cdFx0XHRcdCdiZWZvcmVlbmQnLFxuXHRcdFx0XHRTdHJpbmdVdGlsLlN0cmluZ0Zvcm1hdCh0aGlzLm9wdGlvblRlbXBsYXRlLCBlbGVtZW50LCBlbGVtZW50KSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cdH1cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IHsgQWRkcmVzc0VsZW1lbnQgfSBmcm9tICcuL0FkZHJlc3MvQWRkcmVzc0VsZW1lbnQnO1xuaW1wb3J0IHsgVGV4dEZpZWxkRWxlbWVudCB9IGZyb20gJy4vVGV4dEZpZWxkL1RleHRGaWVsZEVsZW1lbnQnO1xuaW1wb3J0IHsgRW1haWxGaWVsZEVsZW1lbnQgfSBmcm9tICcuL0VtYWlsRmllbGQvRW1haWxGaWVsZEVsZW1lbnQnO1xuaW1wb3J0IHsgQ2hlY2tCb3hFbGVtZW50IH0gZnJvbSAnLi9DaGVja0JveEVsZW1lbnQvQ2hlY2tCb3hFbGVtZW50JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IH0gZnJvbSAnLi9SYWRpb0J1dHRvbkdyb3VwL1JhZGlvQnV0dG9uR3JvdXBFbGVtZW50JztcbmltcG9ydCB7IFRleHRBcmVhRWxlbWVudCB9IGZyb20gJy4vVGV4dEFyZWFFbGVtZW50L1RleHRBcmVhRWxlbWVudCc7XG5pbXBvcnQgeyBEcm9wRG93bkxpc3RFbGVtZW50IH0gZnJvbSAnLi9Ecm9wRG93bkxpc3QvRHJvcERvd25MaXN0RWxlbWVudCc7XG5pbXBvcnQgeyBGaWxlRmllbGRFbGVtZW50IH0gZnJvbSAnLi9GaWxlRmllbGQvRmlsZUZpZWxkRWxlbWVudCc7XG5pbXBvcnQgeyBOdW1lcmljRmllbGRFbGVtZW50IH0gZnJvbSAnLi9OdW1lcmljRmllbGQvTnVtZXJpY0ZpZWxkRWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21SZWd1bGFyRXhwcmVzc2lvbkVsZW1lbnQgfSBmcm9tICcuL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uL0N1c3RvbVJlZ3VsYXJFeHByZXNzaW9uRWxlbWVudCc7XG5pbXBvcnQgeyBEYXRlRmllbGRFbGVtZW50IH0gZnJvbSAnLi9EYXRlRmllbGQvRGF0ZUZpZWxkRWxlbWVudCc7XG5pbXBvcnQgeyBJbnRQaG9uZUZpZWxkRWxlbWVudCB9IGZyb20gJy4vSW50ZXJuYXRpb25hUGhvbmVOdW1iZXIvSW50ZXJuYXRpb25hUGhvbmVOdW1iZXJFbGVtZW50JztcbmltcG9ydCB7IENQUkVsZW1lbnQgfSBmcm9tICcuL0NQUkVsZW1lbnQvQ1BSRWxlbWVudCc7XG5pbXBvcnQgeyBDVlJFbGVtZW50IH0gZnJvbSAnLi9DVlJFbGVtZW50L0NWUkVsZW1lbnQnO1xuaW1wb3J0IHsgSWRlbnRpZmljYXRpb25FbGVtZW50IH0gZnJvbSAnLi9JZGVudGlmaWNhdGlvbkVsZW1lbnQvSWRlbnRpZmljYXRpb25FbGVtZW50JztcbmltcG9ydCB7IEJhbmtGaWVsZEVsZW1lbnQgfSBmcm9tICcuL0JhbmtGaWVsZC9CYW5rRmllbGRFbGVtZW50JztcbmltcG9ydCB7IFR5cGVBaGVhZEVsZW1lbnQgfSBmcm9tICcuL1R5cGVBaGVhZC9UeXBlQWhlYWRFbGVtZW50JztcbmltcG9ydCB7IFNFUGVyc29uYWxOdW1iZXJFbGVtZW50IH0gZnJvbSAnLi9TRVBlcnNvbmFsTnVtYmVyRWxlbWVudC9TRVBlcnNvbmFsTnVtYmVyRWxlbWVudCc7XG5pbXBvcnQgeyBTRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50IH0gZnJvbSAnLi9TRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50L1NFQ29tcGFueVJlZ2lzdHJhdGlvbkVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybWF0RGF0ZUZpZWxkRWxlbWVudCB9IGZyb20gJy4vQ3VzdG9tRGF0YUZpbGVkRWxlbWVudC9DdXN0b21Gb3JtYXREYXRlRmllbGRFbGVtZW50JztcblxuZXhwb3J0IHtcblx0QWRkcmVzc0VsZW1lbnQsXG5cdFRleHRGaWVsZEVsZW1lbnQsXG5cdEVtYWlsRmllbGRFbGVtZW50LFxuXHRDaGVja0JveEVsZW1lbnQsXG5cdFJhZGlvQnV0dG9uR3JvdXBFbGVtZW50LFxuXHRUZXh0QXJlYUVsZW1lbnQsXG5cdERyb3BEb3duTGlzdEVsZW1lbnQsXG5cdEZpbGVGaWVsZEVsZW1lbnQsXG5cdE51bWVyaWNGaWVsZEVsZW1lbnQsXG5cdEN1c3RvbVJlZ3VsYXJFeHByZXNzaW9uRWxlbWVudCxcblx0RGF0ZUZpZWxkRWxlbWVudCxcblx0Q3VzdG9tRm9ybWF0RGF0ZUZpZWxkRWxlbWVudCxcblx0SW50UGhvbmVGaWVsZEVsZW1lbnQsXG5cdENQUkVsZW1lbnQsXG5cdENWUkVsZW1lbnQsXG5cdElkZW50aWZpY2F0aW9uRWxlbWVudCxcblx0QmFua0ZpZWxkRWxlbWVudCxcblx0VHlwZUFoZWFkRWxlbWVudCxcbiAgICBTRVBlcnNvbmFsTnVtYmVyRWxlbWVudCxcbiAgICBTRUNvbXBhbnlSZWdpc3RyYXRpb25FbGVtZW50LFxufTtcbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdlbWFpbC1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcblx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPSdlbWFpbC1maWVsZCcvPlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICA6aG9zdHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuICAgIC53cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgIH1cbiAgICBpbnB1dHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cbiAgICAgICAgICAgYCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbEZpZWxkRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdG1haWxSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChcblx0XHQvXihbYS16QS1aMC05w4bDmMOFw6bDuMOlXy4rLV0pK1xcQCgoW2EtekEtWjAtOcOGw5jDhcOmw7jDpS1dKStcXC4pKyhbYS16QS1aMC05w4bDmMOFw6bDuMOlXXsyLDR9KSskLyxcblx0KTtcblxuXHRlbWFpbDogSFRNTElucHV0RWxlbWVudDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMuZW1haWwudmFsdWV9YDtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5lbWFpbC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IHBhdHRlcm5WYWxpZCA9ICF0aGlzLnZhbHVlIHx8IHRoaXMubWFpbFJlZ2V4LnRlc3QodGhpcy52YWx1ZSk7XG5cdFx0cmV0dXJuIHRoaXMuZW1haWwudmFsaWRpdHkudmFsaWQgJiYgcGF0dGVyblZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0dGhpcy5pbml0Q2hpbGRJbnB1dHMoKTtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuZW1haWwgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjZW1haWwtZmllbGQnKTtcblx0XHR0aGlzLmVtYWlsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmVtYWlsLnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy5lbWFpbC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgZ2V0QXR0cmlidXRlTmFtZXNQb2x5ZmlsbCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvUG9seWZpbGxzL2dldEF0dHJpYnV0ZU5hbWVzUG9seWZpbGwnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnZmlsZS1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcblx0XHRcdDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwiZmlsZVwiIGlkPSdmaWxlLWZpZWxkJyBhY2NlcHQ9XCJpbWFnZS8qLGFwcGxpY2F0aW9uL3BkZlwiLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZUZpZWxkRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdGZpbGU6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0XHRnZXRBdHRyaWJ1dGVOYW1lc1BvbHlmaWxsKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogRmlsZUxpc3Qge1xuXHRcdHJldHVybiB0aGlzLmZpbGUuZmlsZXM7XG5cdH1cblxuXHRzZXQgdmFsdWUoZmlsZXM6IEZpbGVMaXN0KSB7XG5cdFx0dGhpcy5maWxlLmZpbGVzID0gZmlsZXM7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZmlsZS52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHRoaXMuaW5pdENoaWxkSW5wdXRzKCk7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGNvbXBvbmVudERpZE1vdW50KCkge1xuXHRcdHRoaXMuZ2V0QXR0cmlidXRlTmFtZXMoKS5mb3JFYWNoKGF0dHJpYnV0ZU5hbWUgPT4ge1xuXHRcdFx0bGV0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG5cdFx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSwgbnVsbCwgYXR0cmlidXRlVmFsdWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMuZmlsZSA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNmaWxlLWZpZWxkJyk7XG5cdFx0dGhpcy5maWxlLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLmZpbGUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubXVsdGkpIHtcblx0XHRcdHRoaXMuZmlsZS5zZXRBdHRyaWJ1dGUoJ211bHRpcGxlJywgJycpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbiAgICBcbiAgICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZTogc3RyaW5nLCBvbGRWYWw6IHN0cmluZywgbmV3VmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsLCBuZXdWYWwpO1xuXHR9XG5cdHByaXZhdGUgYXR0cmlidXRlQ2hhbmdlZChuYW1lOiBzdHJpbmcsIG9sZFZhbDogc3RyaW5nLCBuZXdWYWw6IHN0cmluZykge1xuXHRcdHN3aXRjaCAobmFtZSkge1xuXHRcdFx0Y2FzZSAnYWNjZXB0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGUuYWNjZXB0ID0gbmV3VmFsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXHRcdH1cblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBDcHJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9DUFInO1xuaW1wb3J0IElWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vSVZhbGlkYXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IEN2clZhbGlkYXRvciBmcm9tICcuLi8uLi9mcmFtZXdvcmsvVmFsaWRhdGlvbi9WYWxpZGF0b3JzL0NWUic7XG5pbXBvcnQgQmFua0lkU3dlZGVuVmFsaWRhdG9yIGZyb20gJy4uLy4uL2ZyYW1ld29yay9WYWxpZGF0aW9uL1ZhbGlkYXRvcnMvQmFua0lkU3dlZGVuJztcbmltcG9ydCBCYW5rSWROb3J3YXlWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9CYW5rSWROb3J3YXknO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnaWQtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9J2lkLXR5cGUnPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSdjdnInPkRhbmlzaCBDVlI8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0nY3ByJz5EYW5pc2ggQ1BSPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9J3N3ZSc+U3dlZGVuIEJhbmsgSWQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0nbm9yJz5Ob3J3YXkgQmFuayBJZDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0naWQtZmllbGQnIHBsYWNlaG9sZGVyPScnLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgaW5wdXQsIHNlbGVjdHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICAgIGlucHV0e1xuICAgICAgICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBzZWxlY3R7XG4gICAgICAgICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICAgICAgICBgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElkZW50aWZpY2F0aW9uRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHR5cGVTZWxlY3RvcjogSFRNTElucHV0RWxlbWVudDtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblxuXHR0eXBlOiBzdHJpbmc7XG5cdHZhbGlkYXRvcnM6IHsgW2luZGV4OiBzdHJpbmddOiBJVmFsaWRhdG9yIH0gPSB7XG5cdFx0Y3ByOiBuZXcgQ3ByVmFsaWRhdG9yKCksXG5cdFx0Y3ZyOiBuZXcgQ3ZyVmFsaWRhdG9yKCksXG5cdFx0c3dlOiBuZXcgQmFua0lkU3dlZGVuVmFsaWRhdG9yKCksXG5cdFx0bm9yOiBuZXcgQmFua0lkTm9yd2F5VmFsaWRhdG9yKCksXG5cdH07XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgJHt0aGlzLnRleHQudmFsdWV9YDtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy50ZXh0LnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMudmFsaWRhdG9yc1t0aGlzLnR5cGVdLmlzU2F0aXNmaWVkQnkoXG5cdFx0XHR0aGlzLnZhbHVlLFxuXHRcdFx0IXRoaXMucmVxdWlyZWQsXG5cdFx0KTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI2lkLWZpZWxkJyk7XG5cdFx0dGhpcy50eXBlU2VsZWN0b3IgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjaWQtdHlwZScpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLnR5cGVTZWxlY3Rvci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuXHRcdHRoaXMudHlwZSA9IHRoaXMudHlwZVNlbGVjdG9yLnZhbHVlO1xuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLnR5cGUgPSB0aGlzLnR5cGVTZWxlY3Rvci52YWx1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2V0RmxhZ3NVcmwoKSB7XG5cdHJldHVybiAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUZoUUFBQUFQQ0FZQUFBQ2kyK0hkQUFFVWtFbEVRVlI0MnV5ZGRaeGQxZlgydjN1ZmMvMk9lMGJpN2lGT2dydExzZUswdUpSQ2tkTGlwYlJGV3JTMDBFS2h1QVozQ0E0aHhKT0pUV3d5R2ZlclIvYjd4N2t6bVVsR2t4bWs3Mi8zUTJjeTk5NTk5OW15NUZsclBWdThlTWxkcW5EbVdPNzRwSW9YRjlYdy9wRE5JQVg3cmM3bnlLUUdyanU0Z0MyQmJFNzk1MUtNU0JTaFNaUUNJUUJBS2RxM2RiYzZyK1ErMCs0VlRiT3c2bEo0NkxaN09QK005ekRxTkhUTmN2cXdCREpkVWZQdlhEWmROUUk5M1VCWm9sMjNrK3EvRUFBSzJ2VzdMdFhEb2NjUFpsMmFaNGRYZXRqdVd0THlSZTArTFFFYk9Dcm80ZTdzSUNITFFpUWVWa2xCd0lRcjlzN2oxV0VweUxpTkxYYm85NC9mQ0lERDNFbnF6WGhUYTMvdHZrT0FyWHJ3dDhSbkQzTW44V2E4U1FEMGROMU8rK2RTNG9sMWs3TDlJQzFMN2JSdXBVV0RkbVVXTzIwRm16Y0tnTldrOTJtL0k2a1ZBTi82SnZhc1gwR1A5c2ZVaUxNZlpsLy9YYWZ2RmdMaXBpSnUyZ2doOExvRWVtSnU3VTQrOWNXdFV3VEFiMTdZMEtmemNPZlBCaWNXOVR6VjllTXJwQUNFeEpJYUtBbVdBbUpBSXdOb1lBK2ZoMzNIcHpGOVhBWnovbjIzQUtnWlBhdFB4NXV4NmtzQjhQYnBONm1zT1JPNS9XMlRGNzZKc1dUODJ5QWtFeGZ1ei9FcEc3bisrQUFsU1lNNTZiYXRHT0VJUXNpRXJMSGJuSXEyN1NvQnNPOWZTeFNBcmdsUVlOcTdOL3lQZmozRW1kL2puMnpma1JLays1dDUrZGkvTXZTSktQRktEL0dybXpqaWpTdFpWNU1Mb3B2dmZmRlVwOTkzU3Z0MGZqbTR3T2wzNkFNS0JjR0FpNmtUc3NsTzl4T3dQdWZxZ3g5a1ZFRVZ5dTc0aUVSTUYyYzljQWJQZlRZVnREWnZXbit4MCsrSUczY2VyeTA0YTg0R0hqajNLL3l5L2N0aFczRHh3ek41N0xQQklEdDQxRFUzTy8xZWRGU0g4eUFWS09IOEI4NjBDc1hPOG5iSDl1Q3JIY3AxZ0RFakFqejc0SGpHakFoZ3Rld1BDZlltbThpdEJ2WW1lNmZ0MWJKdjY4YU83OVAxU2x1eHpORnJTdlZwdjBLSWp2dFZpa2p4T3VwZWVKMzYxOTRodG41akIwcTg4emFsYnMzMmZrM1lmTXVmcUxyN0h4Q0xvNldsb213YmJCdWtRRWpOK1VyYmNnU2psQWdwc2VycXdlTW02NHJ6S0xyK3QrRGFQbDV1UDdiandTZ1lFWXp3eXRSVmpBcEc2T214MWlkV2JqOFBPKzFieFJuSGorS2hXL2ZHNTlYYnZ4YU5FYnI1TDhSZWZnT2s3RlNPT1hwNERIZDhVcjJUSGo0cXFZR3JEaTZrMlo5QzhsMTNFQXcxWW1zNlFpWG1CQkJTUTdYWm9wT3JWd2lBYU5raFNwa2xZRldpN0RBSWdjQU4wb016WVRLeGJuWm4yN3hkOHcycUVBQXJ4aGIxNlQ0YnUyS3pBSGlwWUZTZjludGNhYkd6YmcvUDdySmZYU2hNMjFrZlhkcVlxaHZCY0s1alJ6SmtsR0xxSEJnNEREUVhIUXJFM3JRL08vcEhyZWlwL1NRNnNQQVMxcTFQUUkwTnIwUVFmNnpzVU80SUtSRVhYY3l2dC9wNDZiM0ZQSGZkMGV6NTlOK0pMMW5hNFg3dFRPNWM5ZHphUGwyM08wNGNMZ0EyMy8rd1FpbHEzdm1RV09uVzdRN0RMcmFaaXo0UkFPOW5kV1R2S2FTVUdLWkZPR0pnSVZCS29Ra0krRjI0TkEzYnRuZVljNmNkVUxXa1E3K0NZY1BncmJlY255M05OQk9icm8yc1dMY09EajNVK2RsK2RRV0F2QmxseDJGd0t1eVZEUitVUVdrSXBHdTdyZGloTDZVNjJDWUFOeVgrY3FOU0FnVUNsQzBRSXZGN0YvdGZvTkNFalJuVFFJY2pSci9IcmVJR1V2NnptU0Z2bHprZm5IU0xFa0NxUDBwZWFoTWxsZWxFVFVlT2U1WEY5VFZMT2JwNU13RHpna1hjbWpHQnFOQTZYN2pGTnpqOVByQi9qL2FaSnNBeVlQOGN5WE5UWEtTNkhETlZxTVJjYUlLRy8xYVIrYnR2T2w2MzN1akl4T3hHYnV5Z0R3WGE1RE53SGZFUTZMNTJMMFhNT0JkOCtUaVByLzJzNDMxOXptUGQ2b1lqa3hxNDdxQUN0Z1JiZk9zWVVwZllEVkZFd08wTUlSUkhwSGhSTFJ1bHhiZWU5VlRIdXV6d0lUeDA5VFI4SG0yWGJBV3VPME4xNU93Y1VWeko3K2R2d0dQWjJ5ZEtnZkJBd1pWaDBnNk43K3pjdHRHOUphTlRWYnQ5TFJ5UnB5VXI3SkJBR2IxYnR5R3I2Z1dBdVNTN1QyVlhmOXNLakw2aGIyMzlWYmNJZ0VjR0hLRHVDczVpbFRzZnpBakU0NkJwdXk1ejExenBmSERtZlgwNzNxOHVkZm9kZTZOeVJKZEM3YVplQUdDRjQwTzRaL3hkcFV6L0d1L1FkVWdCVnRUak9BN1M3bElMR3dyU1hERGFiL054blNTb09kdTU5T29QZDlNMlQwaW5IWjZ4NWJ5ZGZldXo2cGJ6RHFZZ093VmJLWVR6Mm03Yi9PeUdUT3pLV09sU25pVTM4dHNEQmxDV21rdGRiaUhKSHNGakx5M0c1L053L3VsVHFhczFlT1NwcnlrcVRPS1kvY2RRWFIvbW5CT21Db0RsRlZIMTBzb21TbXJqK0hTSkptRjMzUFlIajhvVEFGOEVKM1VnMXhXRjExOU13VFhuVXZuZlZ5bTU5QmFVWVhWa0d1elVaamN2ZHQ1MThkNmRqODRXSERlMGlZbmxheUhqT3Bha05mRFM0aytkODloWmUyQyswKy80Y3pydjE3STU2OGpaUEhEVG1YaVZ6WlpmL1o3YVoxL3BzdDhXWDQxejl1aDZOcFhOc094QzNycmlmb1psRi9aNG4zMFI2RnRmWW5iSThTWFUrcjdkdjJKb1luV3YrSzV2ejhYZERxYjNYZHFJUHUyM1pkMnVDNlNwSjZKTmJMSE1QajNIS3pPbnErOUdXbncrd1dMeFNJdVNQSnY2WklVbHdXMEkzSEhRcmUyUWFWdjhwYU5XZS95S2Z0MFBuajlQNnJ4ZkpVR2FvTWNTTnJvSGJCMUU1ekkvZGszaUhPL3hqMDc3bFFuOHpqWWRYUzkxTTJFR2RERVJDOC92VkYvYzlkOHZ1T3JlOTFDV3piUnhCYnordDUrVG5SYm9sVngvOFpMYlZPSE1DZHp4MlNaZVhMcU45d29hUUFyMkx3bHdaRERHdGZzTXBXcEFJVzhNbm9LbWFXQXJKRlliWFNTdzVYWjU4ZEMrK2IyS0piVEVnSkFTVEt2VmdGWUswTFdkWWdsWHZicStiMzNMbzRaMk9MK1dyYmpwcFRWa1BuQS9SMVN2NFByWlovT3I2NDVoeHNDazN1bk4vckw3L24xVzM4cWRoSDlSY2Y2Vkt1UG9neWlkTUowL1BiV0lSeC83bEZobEk2VDRBTWwvYjlpZjJYZmU0TVFmZm5NTHA5MzhQdGdtS0EzL2dIUitOc2pGQmQ2dGpFeVdwUDNpNThnSjR3VEF3dlFSeW1VcHpKQWdKaVRDZ0xTOTR3RFV6M2Q4azlSTy9sMDMzNDF5Z1VmWjZBR0ZvUW4ycUYyejg3b3A1ZUNFYmZYWDQ0L0QrZWM3di8vakgzREdHVzJEVmM0Y3Q3R1BXdGJ0cVk5ejdIdldwTEc0enR2cUp1NU9hNUVQWGRsOUtoS2w2WW8vRUhueUZRZGZPL1VZa3U3K1BjTG43WGFmOVplKzZNNU90WUZ3ZVNVQS90eHNaQS9QUllmOTJzcFpRK25FV1pSU0NDbDY1SFAwOXp4MDJLOE5hWWZHS2JneWpQQnN0NUFGRUxFbEY2NGR6eE1WQlIzSGJTNXh6aHZEL3FTa1ZOZzFTWngwL0pjc1d6T0FsYXNLa0NsaGhGQlkxY2tjdlA5U0xFdncvc2ZqMFRJYlVVcGcxL3VaTUg0em93Wlg4TnhMTTVHWmpkaTJoSFhYQ29EUmR4Mm1jbFBleExRbEFudTM1K0dUODV3amtIcldLeXBxV0F6SkRyTGc5djM1ODd4aWJubGhGZWxCTjAxUkE4T3dlM2RZbmo4eG9TL3VUT2lMam5DTlJuNTdVRDZsd1N4TysrY3k0cEVvU0EyZmJwSGlqMUhaSEVBcFJic3RsZEFYaC81OThVNlRieW5ZZjBRcWwrMWRpRmR2djJPanBzMjk4N2Z3d1pwNnRBNmU0NjBMSndtQXU0Y2VvUmJJZEZ6WW5ScVdUdmhXWUhkeWhBUmdJSmxtMTNMRit0YzczV2ZLZ3ZSRDR4UmNIVWJvdTRZL3pKazdUUTI1NUNqTVFUb2ZiRnBQUmUxV0lBU2FodERjYUVKMzBHS2wyc1VPT3RjWGIrMk13M1I5UUhzVUUyckJZZm9ybHN1VmkvcFdiOTQxdVd2TXNLdm43dUsxRmh5UlFZLzI3WGczbnUzbzR6Rjc5V20vZTZ6OHBFdDk4ZCt2Tm5MSms5OFNNVzNhQWdvK3plRCtPUTl6Mm9qNUhjNmdtTXB1WTdKZHpXLzJ3K2QwSUI5c1RocStKMytkZXhadWJZY0RaeG53MWw5ZzJWc2dkL2FUeGJYT1BFUmlWcCtPMStkeHBOR2l6TEY5Mm05TGJGRDlZNCsrbmQvekYvWXJ2dE5mZW43b28vdjBhYi9yei83WWlka2M5NGphMGRTNTVLQVJYTGZwYzlUWDM3TDQwaXM1WTE0SnRZM1JIa0dzOWt1L2RONTE3MEdxSSt6bGpORUg4ZEMrbCtIVFBlMC9GNDJ4NWRZL1Uvdnk2eDM2RjFOV2ZDMEFObVJOVmtMWHlQcjNIZmdQMmNmcDFqUVJDUXhZMlZGTXVkSFJNV29RUW5oQktaUmxJUkt4clBEYjg2azY1eXFVYVRLNGFwR1QrL01wS2lWRjhIRmpNbi9iTm9DUEdsTUlXVnIzdVMxS0VOQXM5azF1NFBLOGJleVQzRUJqZ3lKOXJuT08vNVZVcUY2TU5mQ1owVXlqc3Z0SVJQUmZEa1ZYZUtvUXdvRjRXM0lEaFVqNHhLcmI4WmFuZFpOTEluYUdrN3RxdVhWT1RGZWI4SjgrblFkcjZabGRuMk1iQ05ob0JSWWlMTkV5Ykd5cGlLL1dFU0ZKWjQ1R3l6bisxYi9HcTE4TmJtWncwQUJUWWluUWRnY0huNzBwNFhjZjJxTjVrQzA0bDZFeElpM0svWVdiV1AzS05xNjVOMFE0b2hBSnQ4WnVVWWRIUGRHM2V2N1YwM2ZhdjBxcDFsaEEyOTkzaHJNN2YxL3IvaDJkcFpoVkFMbkJIdWRCZHRuKytPa3U0VVpDU2lkR0hiVWRvZXJiUVNjbi9JRENlVytxWEZuREFuTU1ZSGJvMFl2RVF6aVBJN3ArcEdPbjk2c2VxaWtZMXJjNWtxWHJCTUI1MzNZdlJGcnlHM1VwdWwzV2YwNFYyK052YlhxUjJOaXRwMkFYV2lMKzF2anVHRlZjNzhaUWdqd3R4aUE5Z3FrRTB1OGlGTk1JMVVxVTVjaEhvVzMvTHR0MExEd2hGY29XZUpJc2tsSVVub05YT2VNZGRZRUMwS1RFc216MmRCbmM2bThtV2FoZEd2RzByNS9yVjN2ZGVpZWpUL3ZWRHE3cDExemNmMC9xMjM3UFdlejB1NDIrblljOG5IbVlQN0p2Y3pEM1hyMnN6K1ZEYSt6dG9KYzZ3S0kwenBqNk1mODQ1WDY4d3RnQlZwTnN1cm1RbXRmVDJwMlJsdGFTbjc3b3h2SEtYTndBYnJuenNkM1JhdW5NaWhGQTNFYWZsTUxrbTVmMUt3YmVtVzJtM240ZCs4N2JJQmJyVmI2Qy91bDNPK1VvYUZJNHNISVB6RUFuSDE1aFdXNnczUXhOMnNvNWhSL3h1OGMvRWdEcjlrQmxYUXJKeDBMb2ZkaDhIc1JxbkRDSHNrRG9NUHhUcDYrMWMwR1pJRFFuTE9MSmdNSi9RdkFBYUh3WnF1NkRZUXVkVmNoOFkrZDhSaHM0MmQvRUhXbVZlTnZLTkFFcUJxVjMrYWw3eTkyaEhkV3l6K3dGUFJHRlBVOFBrTk9jTjY4Wk5HVzdvazBrWG12SzVxVUJrL25kdUtPSjc1RDc1VllXdHkyZngzRmxpN0RFemdNZXNUR3hidGVlb2ZwdXRNQ2ZIbmZlL3V2M1ZVZjJuYTBVUW5PeHQzY0RFN3lLRUJZVnRvczNtd1pqeDR4MitYanQybDhQRUFDRDk3czdCbWlhRktvZ040V1JRekxaVnRYRXlyV1ZHSlpOZm5heStPY2ZqcFlBNS8xK25yMjFzbEc1TkVsaFhnb2pCbWV5dGFLUlZldXJzSjBBb3RydzRSVXVnTVVGQS90VWxrMHEzYlJydHBtbU9URmVwUklUdjBNaFVzSTJVMHFwV0gwanpSV1ZwQTBaaUhTNWRvNmZiTmpNK2hQT0k3WmhzMlB6OVFEVHFCelZ0em9vdTlpUk8wdFRwL1pwdnhQcXYrMTJXM29RRkdwdThxUWpLN2ZaSmx1c09ERzY5d201NE9BTzVLL0ZXVE1PNElIVGZvWGYzVDYrWkVjaWJQN1Y5ZFIxa2d2U0loOEU1eVdrb3NZaHMwcXBhWEN6WUdWMjRuU1lnQ0xOby9qb1pNandDUXlyYTNFOCtKLy9GQUEzVHo5RS9XbldRQ0l1RGMyd3NPUnVSdC8rK3BEVHdiU2JWS3Q5bjhqdkZySmovRjRJNGVSNzFZWElIMVBFL2VmTVlQcnp6MUg1d2p0b2ZpOG9tRkQ3VGFMZkYzZW9TN1N4REMvRVhhRFpTRThZWlRzK1JZL2FndU1Gd01iajNIMnl6d2E5RkhlKytMZFRkNnJieUV2TzVJMHo3Mkh5Z0pHdDJLZFNDajJCYlM0cVc4M2gvL2tWMnhxcmQxNjgyNy90dkw3Q3RqbDl3cjQ4Zk9oRmVMVDI1emxtR1p6NzFvTThzZlNqanZQS2YvdXkwKy81WC9TdExmMlAyZjFhVjlCZitmU0Q5cmo5TlExMS8vclVFUjlQcmxrZVcrekw1dUM2VmJ5Yk5nYjd5d3U3N21Uc2pYMDdod20vN01YTGJsZUZNOFp6eCtjYmVYN0JOcjZaVlFkQ012M1RJRWVseDdocTcxR0VCd1NaUHVsNlVsME5tRXJ2MHFOdWlWTzljTWxkcXFpTmpuazNvV01PWEozUDRUdlVvQnFSS0dqU3FYMUpwS1FJYmNkaVhrZkhyTTNPVnpJNUdTMHRGYXUyRHBtU1RNSExMNkFYRmU3U05IUVV4MVk3U0hBbmwxNWdWdGF5ZHMrVE1jcXJFQzVYbDNHd0ZsMndPblZvaDJjcStlZkhrM1AzclR2bEJLaElsSW9ycnFmeHFSYzczRnNqNjlmM0sxNXhoRHRaM1JESUlWbG9OQ29MdlR0Wkp4ejdGaHk3ZDhldDBkTHZCMSt2VlZmZHM0cnZ2cXVISkIzZG8yT2F1NEh2Zm5WeXUzVnJ3YmNxNnFxWjlJc0RLSytwUU9vdWVndjdxbzlLK3hVdm5uN1ZkSFZvR1Z4dzlHVXMvK1lEN293c1pVWGVzV3ByOGdHaWpURU55a0ppNDFKeGJBV0c1a1VvRzZGc2JObEdEbDgyYzlmeXREUzVQWUVQQjE4QnRiMUdKSEhlOXQvekZYWHI4aHVZMmJDVVJpQXVkSFJoNzNMK2VMcmxGTy9mRk1oVmowWnIyV1RGKzJ5S0FUaHZaK0VrRkNnTmNzS3c1SG5JaVRpUExYcm1GVG45L3FOdjl3UG5pMzZ0dWV0by85cUd5YXFYM3VYek94NmhhVnRWci9MSnI5ejZhZi9td1kzdHVIYjQ5SDJLK2ZzdjV1TnpXYnZrKzM0eGZVN0h0Y08yRFFwc0tWcnpsSHJTWm4veldmL0drLzVUb25iL0dMVHA0c3hFamZvbDAvcDIvOTYvUUFENFRueGZ6UnFaeW9LMURUUkZMWks4R3ROSHBQQkZjVDJSZU1jNVJKcTBIU3dtSEFScGM5eWtCVngvd05NMGg3Y3g5NGl0emlmMnZyMDk1NFlBT3k1NTV1TDFuRFM3bG5oRVEySWpkWW53Q0dwZnFLVHEwVzBvUTNYNG5XT0tIZHZ1bUNQSHExOHNjVEc0UVhaZko5NGJuKytpcDlXTzY1RHNDdk9mdmYvT01ZTVc4TXJHYVp3NS8wSWFEWC9QVUlzSFQybVA2Mm9hV3NFQVVBcHI2elluNTNFM2NOMDNMcnRURFpvemdUdS9xT1dwYjZwNGQ4Z1c0cWJONGV2ek9UR2ptV3YyejJOOUlJY1RIbHlNRWQ0ZW54RUpvYW1VYUcvK3RNRUErdU5jOUpkTjNsL2pMWHBqZHAvMnUvbndML3BYN3R5MmQ0ZDFqbWVORk55L244UzM0NVNhVVBmN2FzTHptaEVkSk5nVmJuWHMxSDMvM0xkNTNoOWQ0K1I1ejdoaDd6N3Q5K3RibkRxYndMUS9xT2pxUjdFYTE3YzZJcnVUZDZrU0J0VVZaMHhTOTU4U0o3bFpPT1g1dXpuZTZrUmRSY3JCTC9mcFBEUzhjNndBYUhqaUtWVjkzZlhZRFkzSXBDREszTDA2azJFVlcvclZiOW4zckRmN2RwODlkbGdQNm5RYnVlNmdmTFlFdDNNcFNWM0R0aFNZTWRCMDU3OEVSdE5XVHU0S3Q5YU81cHB0N3l4L0dmSExEdTJvTS9aWnc5L1ArUnkveTJ4blI5a3h5WWE3QzZoOEs1ME9JUG50ZFczOVpQZTF3MkRia0lkWkF1NmNrc0tUSXdPOVc3Z0V0OHVUdVpQNmREK2NXdTdNdzdkOW5MODR0Y1ZhR1hhOUVnS1VwY2hNRHhDT3hBbEh6ZTFVSGp2aUxKcU5HWE5CVENjanU0SGFrTGREdk9Ua1lVbnE0c0lVaXVwMGpFYlY2bDd1OGpsZTU4UVE1Qi9tS2xzSXJxbU9NeU5zRWRGRzRmVkdPUzlwQ3pVZUQ5SXluVmliRUhTNHNYWnN2LyswWCtQQ2JmVm0wNElGeExac0llT29veEM2amgyTHNlYmNjNmw0NG9rZVQ4M2VpVm5jNHMvcDAvRVdoaDB1bG9hYi9xWmVISkhGT1Q4L3RmVzFrODQ0bmNmT3ZvankwMzlOSk5TTUt5a0paWmc5V3M4UlpRdTZsenZKalZ4N3dBQXFNd2Z3bkdxcEQ5dWhQaG1GSml4OFdwZ21NNWtuTHp3NjhZYnQ4a0VJMEJJMmdXV3B4UDRWaktTQ1YzaUlVVlIwZTRoazRvdDdha2NsYUFOb3RBUXB1czFOdVhVTVdsSEJoVGMzc1dLZDJTcUNXdk8wVG4ydmIvMmhKdy9zMS9ycVk0KzVRYlZ3OUxYTjZWSUkwb1RCc2I1bXNsdzl6M21aK2VpOTdUalIra3h2SmpqUittdTh6am5lc1pMTHdhMTJCWkpxdFgvLzhZYks4M3RJOTdoWVZSOUNBRWt1SFNIQVVvcW11Tm03aFQzL2NHZThHenY0bU5BZHZwajBHeUgxSnNlWVJ1OThiRmUwaVo4b3djaVVyYnk4L3g4WWxiSzEwNXBUaWFJNEd1VFk5Vk5aSFEyMjM1YUpHa0gxYlIvbjRrOWxsMjBibGJDeFc5RUxKZnZidDFSQ09JcHB6ZkRDUHAySEVXc2RXM2VmakNSMVdFMGV4NmFrNFhKQm5Xa201TlN1S2VCV3JHSG9BNnJWOXZyRFB2Z3dDZDMwRjJJdnZZRk1TM0hzdXZxbUh1djVEakU0MDJic2lHd25WTFN1TW1IRENRWllJUjZ1Zm85OEs0VGR6UmUwMk9iRERudXlUK2QzM1p1bi9xQzFrdHQza0ExQ29pd1QwZGJPNzRUVGc5OGVyY0FnUHptTEI0NjdoS1ByTExiZWRoT2hqZXR4SlNVN24rM0ZGaC95bFpPTG4vZVgzcDFqa1pBNFljMDViSnB5bEtjSitHMm91aXFSaS8vY3Y5VHQ3OTNPZW5NZFV1dlYwRHBzK2xPVlBvNWN2cGtuOWt2bnZGTU9JZVd4UndEQnE2Y000SkNSbzNpMU1jQ1RyNjl5U0dwa1N5R1lRbGxhd2hkWDdEcmZpdWdicVVFL05xV2M0Z3lYQzgzdEFTR3dUQU1WRGJYWldKMlhNVi90ejZiWWlsRml4ZHVSQ3JjUUIrZGxTUUplNTdPaHFHSmJsZDJPVkxqbE0wTTBOMWY3czNrejNnUkFUOWROdGF5YkRWYklCQ3RCWEtkSjhPazlGa2lpQXlpNzdlK3FoNS8vUVpweW5HcnB0WGRwdzdTdEpXd2hFeDZhNDJOOFlZQ3FKb05sbTV1cEM1bG9VdURTZnRBbmJlY1VPQVRDQWt0b0tEU0hRRnJGd0c0Z254RGpYVGJUaHZxWk0zczRVdzZjZ1N2YlRaMW1NV2p2dytIZmQvZnIrQjR0TGVSbkMwdDUvaGczNzUyM0wxa1B2UVhTNXQwTDRNQ0p3M201TXA4blh0cUlpRVVCaWFaSlREUENTU2ROQU9EWlo1ZWlhVDRzYTJjZzBFUXd4aFVtcmlURk1TOTYvMHFJSDI4VDBCdzIrSHBST1NjZk1aeWErbWs4OE5HcC9QckFKeGlTVzBQZjFITDFYNU1LN0VTT1hGcmNXY002dDVQcUlpMzZKRmowLzJOelpXZmluenlPOEtKbHhFbzI3WklWY2ZKWGwzRE5tSXVaZk11MTVCeDlCQ1cvdTRYbTl6NUY4L21RQVQ5Mk9JelpIQUpBQ3dhUS9zVGZ3aEdDQjg1bHlHM1g0OWxqUElzYlYvSG5oUS8rWk9meXFVby9SeTdmMHFFZVBuVGtLRjVxRERMdjFTVmNISXNqcEVRcGhXR2FhSDQvUWtxTTVtWjBmZWVVSGsvZUc1aEdKWFpzSlppcndWaUdNbGFnek0wb3V4Yk1NRUs2QVk5akpXZ0o4anduZ3dTdy82ZjNjQXZoa3hsMWsrZVBBckF0N0VWNjR3a2N2QnZoVUZJTVZkdGd6R1NZTUIzU3MzcE1wTkEzelFSbEoweklHQWdQeXRiQUxSSExEWGc1Q3VYV1QzWjlOTC9QS1ZodVNXcnFJMWw5eW9pamQ3THRwQ1lJUmVKa0JZUE1uVHlBNFVWSmFFSm4xYVphUGwyMGphcW1Kb0oranhNRTJuRWNWVXQ2OXNXeEdMeit1dlA3RVVlQXg5T2pqOWx4bUZzQTk4K0ZWYlZ3M0hENC9UZXdyTm9oRlFhSDQ4bVpOTkNGRTZjNmFZVHpwMmZYT2tlN0F6TUhaVHRKTWtjV3ZjM0hGWE5vaWdZN3dxeWNyb1dGWldtWXBzYVFnczFjbTNjWGgzNzVFazNQS3FxcmZPM21VOWN0anBwY3pPRVRWdk9YdCtidzdjYjhUczNtdmp3dG1nRExoS2taa29jbjZLUzdJVzV2djRkQWVDVU5UMVpSLzJqRlQwUTMrRGh5K1JZZWI2Y2I2TkMzRnBwRXhVeU9PMzR5eVVGbmJ6V0ZZcno0K2pLa1crK3dTRW9LZ2NjdGlVUi9BbkpDZ1hDQlRMR3hxaVZDZ251Z1JYeUxobFVuK1AvQlJCODJNTDFQKzF1M3l2azVKN2FGeWZGeW52U040K21zR1pnRDg3RWJHbEdXdlQycHRCZXR0di9kRW9ZVnBsR1FrOFNYeTdZU2pmZk4vbzJYRGFCcTNqRjRCbTdFTys0YmtvZHZRVWlGSGZPZ0FFMXNsLzh0SVFzYkNHaXdPU0s0SU44aXk2MTRya0lqV2QvTnpXN2JEb21ONkJpQUJIajJneVdzMmxqSkxlY2V4SUV6SElGdjJRcE5pcCtlUEJzMW1sZHFmYncwdjRUQ1FRSk4xem50dUFuWWx1VGxMejZndExxYS9RNGNSNnE3a1BtZnIwVzFJZmdabSsxaFVLcUw5OWFIK0tna1RIUGN4dWNTcmV2MFUydEtDQ2RXMGtPQ3ZaOHN2S0Q5TU45cjJ3a2lsd1FXM1lQY3dwOWtPOFR0SjA5cS9EdlN4R0l6MW1jcU1xZEdjUFRuT2tkK3JsT3Z3YVlpbTJXRGJiNGJZYkY4dE1YR1hKdUdvRU13N0RJRmJxTU53YkJvVjZQd3Zld0hyWk9xQUtVa3RoNkZlQkFxeHpoaU5xTUUzTTFJeTRNUXUrWURDK0hvRElRaUw2UEc4UzFyTWtBSmhDZlc1YVVkL2RtZXJORTRhdmtHSHQ4cmovTk8zb3VVZi8wTElRU3ZuakNhUTBabU1hOWU4dHducTBrZE1BNFI4S01rUkZ5cEtGdHo1c2FsOE1hYmRzaFM2M2tzb1NVR0pJVWdtSlZDMkhTSWxBSXVRV045cUVlRi9PM25HWXJTbkdLcnpYWFJuNlNzL3lIYnRVMkRPT241ejVqeitUZjgvY0M5T08rUVgzRC9LOHQ1NnBtdmlKWTNPZGg0WXF0YXBnMFJpMEJoQmtjTjFEbmRXOG5jSWgvQmd3NWpjY1pRZnYveXN0WitkVk5SbGVJaVk1ODRJenhoYXByY3VJYllhRUloQWc2KzRoMmF1QkNyemI4dFc1RHVqNU9SRktjMDVxWDZPemNaRFVaSEJ4Zldyb1hseStHZ2d5QVk3UHBCbTV2aDNYZGgzRGdZUG53bm5YcGNmcE1ZSElpcmU5ZWtxN2UyQlVUSWxQUy9DU1hBbzlDbkpKN1AwNGNnUjEvYUlyYU5rSkxLVHorbmZONnJsSCszQ0lEY0taUEpQZm9vc3VmdTJmcWVYaW5nUlBKQnkxU0l0b2IxLzZqTjR5U0RTcWJ0c1o2VEQxakdwS0lxSG1qMlVscnJFSFVOSFYzS2FRY3V4akExTnBhbnNhNDhEUlRrRjFaejFrR0xLU3lzb1dSVEZ0OXR5SEg2U3ZTN3Z1SnFncDVpQXA0U0xOVTNwTUlBcHFVd0xkVjZhYUt0blA4THgwME9tWmpMMUdIcHhBeXJ4MFZudHoyZjBFTlZmbzVhdG9VbjlrM252Rk1PSnVXeGYzV2dMNHBiWTg4b1JTUmlzbC82Vnl4b0hrTmxMQnZwNlFGRzIwZnRheTJkWi9XaGlhcFkwYkZEMmxGUWV5Y0FRMjh0ck8zUGR0VTNaWHh3K2VOa25qV1J5MDRiVDdsL01zOXZiT2FUcWkxc2FTN0ZqRGM0bFpLYUMwMjZhQ0ZDVnJ0cklTWnlHWlJodEJKTjlxVDFaeXkzWDFwSHNrNElzQ3lhVXRNbzgyUlRtWjFKcFR0QVFYa2w0ME1iOE5jM09vUWRIUmtwZGorUCsvL3NvbjV0MTl4VC9BTXE2TGEzcy8rd0prUi80VHY5ZG94RmJ5b25WQnZoL3I5bG4rUi84UkoxMTkvRnRrTlBJM2pDMFdUY2ZUMTZRVzRDaHdRanVvRzZseTlES0VnNzVsNWNnZEdPemFicm1GdkxxYm5pVnBxZm0wZlN5Y2VTZHV1Vk1Id3dBR2YrSGs0NFNISG9uQWIrUFRUTTIvV3BQRjZWelJmTlNZUTdJaFpXQXI5bU1Tdll4SmxaVlJ5U1dnZE5Cays5QnMrOXUvMXRVM1Fmd3pRUCs1dEJYbzgxc3NBTTAvd2pUa2JweUQ1U3lybkUxRTdJL2paTXNFNStTdUsxemo3YkUvY0NHNVNaU05qWEZUM2wvQlRmdDhLUVFFUUNGcW1uaFRGcUJVM3pmSWhJNTJUQ2Jkdm50UjZXTjNrNHJTREN6L09hY0x2QWpzY2RiRS8wTDdpbkNZVmxPYjdNcVlYVm5HVnU1cW5icW5qMGRTTWhZM1pXOFdjVWRpVEdFeVM1Z29RdjFYTVo4L2hPNW9TTmxKS3Z2dnFLZUR6T1hudnQ1WkNwS05VdUQxRUpnUkNDVHovOUZDRUVjK2JNYWYxc3UxWmNCVFZobUo0UG96TEJvL2NKc041YjNLaUZtR2JDMEdTU0E0TFBWemQzYUxOTzFEY3cxNzJZQlUwVEVjTHNKTzZzZzBwY3hpM01IOVpJMHJyWGRhcVZBTGx2ZEk4VTBHd29abVk3L1gxVnFRaTZSSzh1WXRTbFJaSXJRcnF2bnFwd09pSERpNlYyL2J5dHFuTnp5SE9GMUZsdXprOWJ5LzNaRzZpSlFYQlNBZXUzcHJQZ0dROE5XMXhvZm90NG5Rc2xIZG8yWDRxTmJRanN1RVRwTmhPT2FXYkNQbFk3UFQrNElJTnhJL0w1L0x2MStMS0RGSjA4blJTZmU5ZHl6NDk5N3YrTTN1OURiLzdmRkhRL1FRSU1VNkJKa0ZLMVhrelFMYmF6dUlISXZGSUVlcWV5cjRVVXNYTjdRS0F3OGYwdjRIS0dUVXE2ajBqTUloSTJFTHJvVU1XMUVnbmJMaXpUVFVHd2lsTUhmTUlKR1IrU0syUDhMdkcrMEVJSW53MUpqMFBXcjJEWU8xRCtCNmg5SldHYW1SQlA4RkZZaVhwZjI0S01ZeUQzOXhEZkNodVBoYWFQZmtReGJLVjI3V0FxMEpKTTNBT2pSRmNHNEh0SU41SkNPWmV1QVZMYXU0d1ZTZ0cyWlRQY2xjVE42Vzh4YzJRNUMrT1RXRkpXeFhWRkZWd2FLdWFTalFleHRzWkNkcTAvTlVDVFV1SnlhWXdha2tsV21wL2lrbW93RXpVMTI2dGhOTWNza0xqZE9tT0dacEdlN0dQMWhtcHN1ejJWb1diM3orYm9kVjJYWlNOanpnVXpTaW1VWmFLOE8xOUtialEyVVZWYVNubkZOcVRQUzBwT0ZyS0h1WkQvUDdSa29iR255MCtlZEJGTkxQTnd6Y00yemMzblJwaEc5Y1BrNmttcHNHdzNOMXowRGNvVTNQdmtXTVlQcTZJb0o4VDg3d2JRSE5FUXVvWm4yR0M4UVJlYVpmY29MdkR6bFJVTWJJeHgzZDVES0V2eG9zWE0zU2NWM2dGVHlFNXVCcUN5S2JBVDVxQnBFaXNheHpKc2pqcGhKamVPOUpKNSs1K3BYTGdLUFRrSk14cEZpeGx0WE5YdGpweVFBcXNwUUZiYUJrWU8yVWg1ZlJycnRvMEZyMEtUOFI3RitYOUkxR0o5VFNsUk04NkUzR0gvZC9CK0pPMm9wbzJIRFRSQ296K08xVDAxM3ovZ0NiWFhoZXVXZlhDSHNxV09kL3JmaU9wKytPSzg3eGZYcllJamwyL2c4YjBHY1A2eGN5bDc5eW1FRUx4KzRoZ09HcGZGeTdVdVh2L3NLNmFOam9OSGdxbDZaQ004VmVuanFPV2JXL0hpNU1jZVFTS1lkOG9BRGg0NWl0Y2FBenpWUnNlMDVIZlBLSFQweGRkYm9raTlBNTJyYVhpblRNSzd4eFFpbjMyT3VhMXY4NzFiRVdEUjNqVDZzZmtyb3A5d2hkZmpqYXl4WXZ3bGtNZDQzVWV0TXBHZDlTQUFDL1FVNVhCazFJbE9jY2o5SnBmeDJTT1R1Zi9GS0g5K2RBazE1YzJRNGtXVHdxazk3V2VNdHVXaVd2RUQ1eDljd3lqMXhiN3BZdVBvSWxZR3A3RHZFbzJjYUpxRDh5bEZrbEZCdnRwQ3BaR0t5d3d4Z1c5WmF3Nmp3WjNIV0xtVXJmRWNOcVRNMms1VXRpczJuWkRvdHNCRUVremRRb2JsWTFOZGxqTlhMcXNkN3ZaQjdpRXNTcHZDcFd2djU0TDFmeWZUYktLK1RmMzVycllqM0VrTWtEci9pTlR5blJudWY0UXV3UnRMZjBERzZxY0JiaWlsc0F3VFpmOS9IRFJXQ29ra25PWW43bGFrMWxqWVpwei9oVVJodHpCd1lSQlRia3owSHNuRmRqd05uYVJuZFlXakp2dDBManV5aUV2L3NZcW1zaENwdzFPNC9NaUJMTnZVUkNScUluVFpDaTIwRUFsYlljZFdQMnJTQW40MWR4NWVyWmg3NXlmejd1b0J3TmFkdmtPWENqT2tjOUxjYWs2YVVZY1psVWhsby9rMXpDYVRxdnZMcUgrenhpRTJiYXQvRXJjOXRwWDVydzB6S1FzcUxsamtZbzl5RGFsK0Fpa1Vtc1I5d0Y1b0k0Y1RmK2REdElHRjJPVVZxRkI0bC9QcC9sT2J6TStXYitHZnMxTDQ1U21IRVhqNFlaUVN2SDFhUHZzTVRlTE5XQ3IvZVhrRlJOdkVaeXlCTWhJMVEyNjF2Zml1azFaWEUrT0xMNTBjNmRrek0wakw5UHdrNUlOVFJKQ2d0TE1UNVBrL0VmbWdkb2lWQy9HL1dRQmg5Vk5lbFN0ckNucmFhSXpOcnhOWi93TEthT29UK1hESk0wNUI3OTlPamVOdDBGQnQ2czNhcFo5QSsxU1VqdjcyZldCVnA1MkNhK2hnS2kvK0ZmSFZhOURTVXAyYXdSOXBJbjU5VTByUGZMc1dUcVllUGtiSEhBNTBuTStxYWRpR0NhYmk2bXYyWnNHaVdqNTZiVGt5NkhJdUx0Z2RERFpCeitNUW15UmtyL3QvSklxV1dBczlOd3VydmhFVmlZSFc1bHJnWGRoeTB1dnB6NkgybDZNS2hzbmdvalRLeWhzSjE5V2dmSzUyT2w2VE5yYVNtQTBCTXJQcXVlNkNUM2ozMjZHOC9kVklwRCtPdlFQeHpRc2JtdG5tTXJsNlZocVRtejNFaWhWVzgrNFRDNE1EMkVTOTZlaUJRdXFhdDVIaU5iRk1EVHlLZ1NsNU5NVkRHTFpOUTZ5NVo2VEMvZDFzbTBoSkNSV1BQVWJ6a2lXNHNyTkptanIxUjZuYnQvNzVRWTQ3L3pUU1hudVZVMDg3alhCREk4OCsvZ1RWalEwOC91OC80YnJ5ZHVvM2JNS1RrZWFRQ3ZjVTcrdEs3b3dheGJ3NlA4OStzQTdYNURTRXo5WHFLN2JFaThOV2dGeHZHVWNQZUo3L2J2cGxoejVGWHA2Zk1XUFNBRmk1c281dDI4TDlxalphZVBEcVRNR2VLVEd1OEZXejR0bHFqdnRIbU9wNkcwMjJjR1NJL2o3QitQczRZQjZPYko5WHI5ZmR6Z1JRQ1hOVjExMmtUUjVDVm9xMzUzbitqL2JvaE8veWJQWG5lSlVTTkZWdHBMbDJNN283UUhyUlJIUmQ1LzF2S3ZobVpRMWVqOWJyZWtNVWpFZ0pVaE9MbzFBRVhUb3RoTWowbTQ4b090QXNQMzJkM212YnhnWXNMd0tKa3NMeHViVFlUbE9oRklScVYySEhhL0VtRDBQM3BpRTFkK3ZyUnF5WittMEw4U2RsRVVnZjNVNXYybFljTTFwSHRHRWQwcE5PSUdOMHY4L0Q2VmRhTEY2NW1TdGZxK0xnNmh3T1NVMUI2SW9HMDBJZytMRjZaaDVkWStqQURHcnF3cUFVZTR3WndLcVNhc0x4dm8xUHQ4MVg3Y25mZnhBc1FBaU1pakpDMzM2R25wcmgyREZTWUlkRFNMY0hLNXpnZWpWTmhFc25hWjlERWU2T2JjOEIzaGhsSVM5Ykc2bzQ5Y25iK2RXK0ozTFZuWGVUL09pamxMLzlHcHJMalhTNVVYYi81UUVJSUNaZ2JoMk1pa09aRDJ3SmxjQzBNSHp0Z2ZjVDd6M3oyRE1aVWpTTXB6KzRub0tNVDBrTzdwNFUxQjhOZlVqcDV5YXJQNFVwS1M0cTF6bGczNXlxamF4OHhXQ0NWTndiOVBLWk5vd2FROE9sMjRpWUQvZWd6V2kyb21GakxwcFhZZldXM1ZFNVpNVGdnRmk3S3MyRkFMZW00OUwwN3JDdkRsdXNDMldKVXRpNmpqdHZBTEZJQk9uekk2U0dDamZqVGtyRGR1bGdXVjBHOC9La2krdjlPZnlpcVJRN1liSzFYTDA4Y1lUTytPRTY0MGM0d1BEU05TYkwxNW9zVzJzNjg1TXdvaVNDNi8wNTVMVzV0YkpYNnhiWDhQdHNaazFOSmozZGoyVzdhR3BzNG90bFRZVENkQnVBc1lCSUF0d3BOVTF5RXNXR0ZhWkpRZUozbjVSMEZmNDArcHB0UXZYOGZkSm40eHNXSmJ6RzV5VDhhNzJ6SHVLbXdxMExwQkRFVEpzaDJWNytjdW9RQ2pNOFdMWmlkVm1FajFmVzgvN3lPaXJxNHorSVhIVGlhSTV3dEtTT1FtNG5FS2FSQXBvWjc3S1pNVHpJek9tREdEZDdEUG5UeHNMRUNZU2FHbG4weWR0OCtMYy9NV1NmNHgxQzRYNXV6eGgvbytrTGlIOG1PREQ5UVNqZTdKeVhxbVhFWG9CRE5JdGpBeDd5dE9Nb3R6eVlwZ0c0K09TVExZbW4xYkVzQTNiWWRib21HSzZGT1hMZFI4UTFGL2JBdmRob2Vsc1MrWDUwemQzZExZU3ROd0MxYU9HdTVXeEh1eThTczNoeTNocCtkdGd3bWwxSDhvZFhMYTQvK2lrRzUveDRTWVZieUlUSE50bGN2eUhHbENaSHppNU1rdHc2Mk1PS0pQbC9wTUs3SWpZdGk2YjVYMUQ1OThlSUxDdmU1V0xvZHlzLzQ1UHFiL2pGd0JPNWFvOWZNZnJ0NTZoKzhnVzIzbklYOFRWcjhZNGNTYzdCK3dGUSs4NkhSRmV2eGoxOEdFVTNYRW5tYVNmUWlNbHR5KzdrWDV1ZUkyTEhmN0x6K1Zqb0Ewby9OMW56S2V5eGd4NWU5YkxCQkUxd1NBQTJ1OENvajhIWUVZeCs0Ukdxbm5zZW83NlIvSXN2WU4wNXY4TCsrQ3RFOG5aaUZkTlU2SzVjY09VQys3VXFNeXUrRlR1eUhCbmNRblRWcDlpTnhYakhObUJXYmdiZEJuU0VjSU53QS9yM1RKTDcvVFJkS0V4TEExTnk5dkJTL2pseFBRZzRmL0ZRL3IwdUgzUWJYYk13dTBzSWJXcUFyK2REeVdxWU9BTTVlZ0x1cEdCclVXaGYySkdkR1NVV3lkVGJzMUdlc1FURllqUmpJWFpnQ09MOVN0d3ZMM2ZZTjcwL1hlRVdyNngyNXRFdytoUS9xWEx0Y0p1aEZCQ09NMjdpRUs0NHRZQmgrUUxERHVGMSs5bkhUdWVJOHRIODhmSDFMRm0yQWZ6ZVhTZC9lT3N0dU9hYUJPS3Z3VEhIOU5qK3ZHb0NmRnNCdi9nSXpoc0xsNDZCOHo0RTZYYklnd2VuZ2tlRDRrWXdMZWZZZmxLK0hVbnR3TXhCQ3BzQmdYSTBhWEh0Mkw5aUtjbkNta2swVzBGQ2hyOTF6cVZ3YnVtMm9ocWVGSU9MUnp6TUJhWDM0Nys5blBJbGFaaTJqczhmaFFTb0thWEF0alVhSTE0cUdwTUl4VHdJbkp2QnRBNFdVaE9PWGR4WjBWSlAzZWFXWk5NSnFZSm5KK3NNRGdqaTV2YUNYdUdUTkwxUVRkMUQyN3EvaU1idGhrbVRJRGtaR2h0aDhXSUgyUHFlVzR1UHRtWW5IMjFUcTQ5Mlg5RExKMklvZFpiT2xlZlBaZFhhU3I1WXVBa1FUQm1ieXhYbnorV3YvLzZDSGJOdVBTN0psSkhwVEJxZXh0dGZsckZoVzRnZmM5cU1scXp3VGpUeGpESUpmZW9pdmtFbnVrckhsVzhoZ3dKajgvOG9LMlJiRWZMd21YM2EzL0RDeXdFSUNSZTZoSXVidnVFVWJTTXBaMTFJNXRtL1FQamM2T0dvQTQ3MVFnaW5CQy9xQW05eGJncEVDUkJxKzc5N2hlRXB4Z3pMWXVha1FoWVhseE9MbTA0ZnU2c25YQVlvaUc4WVJvRXhudkxsS3dsT1hZQm40QVlFaW5EVVRjd1c2QUxjVXVFV1lDandTc1V0dzB5a2dCbXBGZzl2MVVuUmV4dXNhRk5RSmlSSURTdFVUYXhxRmQ3OFBaQXUvMDRmOGJsZExGbTNqVk51ZUlvTGo1L0YxYWZ0UTVMZmcyMnJSSjdjajB2L1B4YitpTkl2VE5aK0JsTlRYRlFrNU5uYzZzMFV6ek9ZS0d6MlRndnc4S2lmMHlBMVB2dHFNNm5qMWhBWVZJYnlGYk9vcXBtQ3VFWWdKVUM4VFpHUFVoQndTNDRabmNUVWZCK3ZyV3JpdTIxUmhBQ1BKbHJKbjM4MHJSdW4wMTBoR0ZhU0RCWHJXVFV3a2F6V3g0NXEzMTQ3Q2Jib1BmbXgyU2c3R1Z0M2hjeTdBd3lBREFDR2NnaHNKUkR1NllUOHRPeHBDZXloZThnTDZEd1piZUo5MnlDdTdYQ2RkUy84dTFqTThWSk1IWXpFUjlObkcrUjVGSE1CNHlPZHFuOTQyRFRZWnVrUWkrOUcyU3daWnJFeHo2WStxTEE3SUJpMjIreVovdG9QNFhnSDJMR1M0SXJpclJtR1ovbEpwT0ZCQ0VYZG1qaXhjYzhTU1NtQnVCZDZTeW9zRk1wd2NmVDBCWHhkTW9TSkJhV0pVbUhCak1FbHpGdTRSMExQZlA5NzZiSDZCWlJ1anJObXZtSktpb2VLZFZzUXdKNlZXMWo1Y3B4eHltS3YzQXorTEEralNkUFFhK3FZK3U0dGFFbTF1S1ZHdk03TDRvT3VnY3hVYUpPZzBydFlna1M1SkwrNDdBQUtzdjE4V3hhbmVHdUk0cWZmSXhJeEhFTytGNWgxaHMrNTdtMUwzZi94NXZYYXYvaTRuTWR5MHppNlR1UDBrcmVZVytqajRTTVA1TmNubk1kdGp5MGdrT1J2RlEyQjFBREg3WlhQUlNsVlRNblFDQnh3TUFzemgzSGZ5OHQ1K3NsL1FsVlRhNzlCMCtLdG5Fd2VQS3lJVzRjVWMrcXdyV2kyaFJWM29kd09DWk1kY2RaWitoU1dFb2c0YUc0RFMybzh1UzZmNjB0R2NkSFd6WnhRMDBFeFlFME5QUHd3ZlBHRkk3dU9QYmJ6aEMvYmhuZmVnYnZ2aHRtekhSODhNN085MlNjVk05S2o0dTdKbFV4SlMxWVBsNlN5c2RrbEVQMHY4ZDBIT0pkWnFlb2Y5MTRKUjhLc1g3U0k2aVRIRGcwdFdrVHlRUWZzZ3VHaFFFcU1MZHVvZSs1dG9xdEtrQUVmU2Z2TkpPWElmUjJIL1grV1ZOaENtVHA3N3JFT0t5WVlYRkRKbUlFVmxGWWtBVEJ6ekViODNpaTJFc3dZdTVGMW01MExaTVlNcXFBZ3J4cGxDUGFjdW81djErUWkzTnZsYjl6SVkyMzU5VXdvK2dWU0tHU0hKREc5U1VaeVVKZWdWMFBYQkFHUDFvb1pCUHc2TGsxeTNJeDh6dHBuRUpaU2FEMGxGRDQ1b1llYVA2VDBDNVBWbnptWWQwVTMraUxvRSt3MWV4SlYzeFF6TnFPT1VVUDI0cE12VjhIM2RIR0tTOW1nTEhTc25RZ0FCR0JaTU13RkdvclZoa05Tc0dPQmxRUk1KWnkrT3RGbGZhVy9oaVVsTTZRNXpudTN2OHZmWDNpRlkzK1Z4MytQbllJeFpoenYxNHprZ3dhTGo2dTNzYlJ1TTBhMENwUUJtbzZVYm9TUUtGVHZrKzBTaExvb2haYVZnMTFmMjhhdjdicjFWeXkzTS9qYnVTZFg3UFNNc3FXb3VKTnhSdHZxbEIzVlRHS05WMlVYY2RVaE56QjUrWWVzSHB4TnNqdUhQN3g1SjhQckc1d0w4bjRBcVNOY092L1grcS9kKyt5bTcvWDdsSlRPSG5UcldFayt0TnBtbEV0aHVkeG9VUk5wL1RCQitmN0NkL3FyUmMwNENwdTJsVmc3WlVpMDRIS2RGanY4OUFtR1hjTUdrZjMwZlNTZGN5SlZGLytlellQM0pQM1dLMG01Nm55RXBoRmZxNmg2dVJnOXJrZ2FaK0dhQk1xeWFiampuOVJlZnlmNm9BSUd2UHMwdmdQbnR1djM5Zm53NGRjd2V4S2NlWlRCWVh0V2NkaUlldDZ1VCtXeHlqYkV3b0JmczVnZGJPTE03RW9PVGEySFJvTzMzNGJIWG9VdkZrTTQybjdHazRWa2YxZVE2YnFmQldhWTEyS05MTFNqeE55dXhHMXZQZGRmTGJoR2QzWnJyTFNTY01rV1o3eERDdkVVWlBmSVR1MnMyTnEyYlE3WWQxKysrdTQ3OUlZR0J3TkpTV0htbENtOC85RkhYWDYyVzhmWUVPQzEwUWM2Y1N1cnpBVlJDYTd1d1ZCVHVydkh3SGJLNk8wSlU3SFkrWE10VEN5V3dGanVwc0dqc0Mwd3QrcElEV2pKdFJPZGZTOGt1U0JrbU55eTB1U044alF1R3RqQXZvVUZZSU1WRHlHRjdDVVdYdGFqS1JhQUZkZklDaHJjbWwvS29EWDFYUG1uS3BhV1NGd3VGNVpsdEpvS2s4ZnJMRnJtMk94Ly9meWhuZmFXek14d2lzQnI2N0EzYlU2c2U4L0cvUGdPZTAxS1NWTlRFdzg4OEFBTkRRMXMzYnFWVTA0NXhTbWMzK0Vabm43NmFSNTc3REhHamgzTHJGbXowRFJ0WjFJVkJWU0c0TjMxc0xrQk1hTUFWMDdTTHNjWFlydUNHNWtheXJUd3B3YzUrcmhpMHQwNlM3YU5vS20yRHVIUzJoMzNCdVZqbTVWT1IzUmRFb1dOUnA2c1luLzNkMVRhcWN5UFR5YVdpRTZyM2NUTWR5WFJYZFhWZHgwdVFPR1ZPamFLdUcwaCswRGYySmFOUHloeEZUdHl4bCswTDNiWTdubmhuQkpNTDl6QUlXTlcwdGdjSnlubzRjWHZKck8wdkhCbm92aGV5SzFZNHBlV3ExdVVEYnBYc2V6MUFGVnJCUU1teHZIbHhkR3RPRVdUWTFSV0ttS1dqVnRJTm4vcEoxYmxadEZMQVlhT0Q3WHJkK2FrSWZ6aVozdFNXZHRNYlAxR3F1WjlTS3dUMHRDK0RhTDB2Z2lvMzl6YWZpcXdWLzNVNzUwdFNTV2R6cXp6UDlFdWcvNy9qNFJPQVppV1lFT0ZoL3A2UDRHZ3d1MktrSi9UUTd2WkxSSG9DSysyUGNsR0FMWnkvaGEzVVB0bU81Y2JmRlFKYmcwVnRSTDRYT0w5V3NJcGR2KzBjeStVYVROc1VCcG5IekdhMHNvUS8zMjdtS2FtV0R1aW0zWkV3cGFIUEg4MXArWit6RWtaNzFMb3RUQXloNktOT1E3dXVXUDdMbFRROENFMGZnZ3BoMExXK1JEY0N5cnVobkFwTkgyd0hXM3pGMERPRmVBWkFtWFhROE5iempUTDcybEhkNHRNS0lWMDVUcGl4Q2p2Z1lKVDdYN1ZzK1A0cHpZU0svRkJzK2pYYzZHVXdMWTBNdjJPN1ZzZGRvTzBuVnlUWGtKYXRtRlRrSlhFUXpuenFVWnc2S3BUT1VDdHdGSTU3TDk4UDI0Yi9DbDNEVjdIYWVIeE5NWWFuZnFlTHZxTUd5WlZ0YzNZdHNMdmM1T1hHV1RqMXZvTytjWmljWk9xR3VlaXpZRGZUVTVHa05MeXhuWlQvK25vdnIxa25MTE52YlROaGxNVGhlUU1MNEhaQmNTcnEwQzZjS2VsMHZqcFprS05jZEMzRDdpK3RJelNzbExLYTZ2eDZtNDhIZy8rbkt6ZFA4UGZsNnpZaGYzWTArWkdNTWNWSUV2cUdDaEdhVTdSNFZvclJyWjBNY2NWNFAxNEUvRWZJTkpwMlRwRnVmWHNQYW1NL2M4N2pvQTN4S00zZjh3ZXM2djU1ZVY3ODY5NVk1RENSaGtHS3E1UVZzOFlOcHRkT25PMzFQUEVheXY1M1Q1RCtLb3dGUkV6ZC9zSld5NXZuRDVrQ3lkUGR5NDdmZWFiOFh4ZFVnalNRZ2lKbEdEVmgwZ3V5T0xHMDZaejZvWkZORnorQkRXaEdIcHFNdkdhV3RMeTh0RXYvem44eGlGR3NKWGYyUVVTYU5ZNVk5OG51T2MzVC9MeGZKZ3pIVjcrY2lMbjNYc3RscDZha093L1RudWtPUjdtbFpVZll5dWJrWmxGZUhUM0Q2eUVWVzhrL1Arc1haZHJSdVNoelp1SGpvblZYanN1V252Z3gyL2Y4UENYZ1lKWC83SGxuZW9yOHVhQ080bkFySHNJQ1Q5OGNlNzNNcVpIYXhaVFpZWFpXbTR6cmppWlIvWnNCQVcvbkxlSnpXc2EyYU5SNHpERGhWOVhXTDBnMXYxWFFzY1Vmd3FUMnVERnM2bzJzdndWZzdGUzhiYzJ0Y09XWVRzdXZSQ09pMmtuWEJxeDQ5a1h5S1JrckpwYXJFWW5MMEZabGxOTHNKdStTZ3NxRTRvWlBQZjVPZ0JPbkQyTWdOZjFvOXRMWm0xOXQ1cE1hSnBEaG1GYlBkWllHb0kxVm93VEdqZngrMEFPcDNyVGFGWTJockxiNWZpTFJLcVoyU0FaZW44alZjOTdxSG5WZ3p2TDd2QmlWVXViaTg4bHVPbzBPUDJRWEc3OVZ3a1B2ckFjSzJhakpidFF0bkI4VGRIenRlcVpyaERZaG9HUUVyZmJUZHd3SENMTlJEencrMjU3eno1U0pCVUZTU2tZeExna0g3bHlBRlZiZ3hCeUFKSGM1aFdNalg2Q04xWkVtUnhJZVUwMVFWVk5LR3NHRVJySk0wdHBGT25VcEkxdHQ1NDlzZW51QzNxWkw0WVQ4OEF4KzM3TDgvT0hzOWNvR3hVWEJDcXFjZVd1WjhsM0V4QzRXK2RYbW1GcVhXbmNQT0hQdkRUZ1dLN2YvRmVPR1ZhSmtqcmhpSTNzYldyb2h4OG1zRHJCZE4xUGZzREZZOUU2M3JiRE8rY3Y5Z1ozN0FMbmR5NlZnVmlVMWxxV1JJcjZicmNrVnhOVHM3NWxlTXBhbXVKSmZGczFsWFdOdzFyekdydjNUODBlN09GZXF0SC9heDM3dmtvaDNDNWlZd2RnWUdBTG0zQ1JEMWRKTmFLNkNhWExuNno1NFJVeEpyc1hNOEsxbGtYeFNhdzBSbUVxdlp1OVp6aTZvZVdDVnlHMjQzMUNPQUF0QXZUTzlWOVZVNXhqL3JDSW5CUTNmN2hrTFBlOXZwa2piLzBPb1F2UUhJeWxsVWc0RkFScGM4eWtCVncrOXhXODJpcis5VlVTODVZVllTbEk4VmtkNHFWbVhKS1hHK1h1azBxZHVrRmJvQ2ZyUkpZM1UzN1BGaUlyUXNpZ3R2MWd5NFI4TjAzc2FCVGFuREZMd0RjRExMWW0yWnk5MU1WUkd6d0ViQTM3eDdyd3RvMHNISURueUlPSnpYc0xvakhRSkRJN0V4VUtZMWZWN0ZLM0Q5ZS96OVpQYkZiT2h4SEI1NmxlVjRvUWdvTHlqU3h0c2hnaEZYZjdQWHlzRDZIT2NMRDBaTC9KOEp3NExsMnhjcXVIeG9qbWJKTTIvVWFqenY3Uk5NR1N6N2Z4KzkrdVJ3RjMvM0VJY3c4YjFPK1hCL1RlOTFYdDVJT215ZmFYUUNaK3R5ejdSNSszcUpTTkVKTHFjaWRuSlROM1lPdmYvdGZhbmlObjlXbC8zL0pwUWlaR0VGS2lEVDJkcEFIN0VWcjlKQm14YjBoS0RWSXZ2UTZYU2krSU1TclhPbjVFWTFCeDJWTXVOS0g0NEt3bXZJM1NLZnZaSVZUZTZvZUlqdi9XMHI1cUZRK3EzK1NPYjlaTThsOS9oYXBmWDBYenE2OGlVOU9jR0tMOTR5TUdPZjJRRnpwL0ZFQUtpYVpzTE5OeWN1YUU3Sks0YTlHTExYYjFCNjEyZGZ0ODF2WjF1cDlydzZtTzIrUm1wcUlGQmFKMlBzTzBlajR2S0VUcE9xSW1oQ1Y2WjY5djU5YVNTQVFqaG1yNFBYRjA0YVk1S2xpNTJld2JJL1lIYnNMblFjOUtKKzJFUXdoOXM1VG8wdFdvVUlpOWMydElIMXZaSzV2cy9zVFBTWCs0dG04SGVkcXhBQVJtZFNkMzJqZ1dxZ2Q0MXBkZmJyZDFMQnZicTdOZzRXWlFpa0ZEczZodGlORFlIRU5vQWszYW1DRVBhRFlYSGY4NWZ6ejdmU0tHaTJzZk9RQThab2UxdHFhbG1MOHF3c2I2T0w4NUxwMFRweWZCUWdndHQ3QkQ3RHF4c0ZMZzBzbW9xcUp3WlJpdkhVWkxEK09la2txT0w1MkF4MDlOcEo2NVJaUDRxblFGTlpHR2J1TW5QUlJNMi9QMVZFdG1iZzgvYVJpVVBmQUFsYzg4Z3gySnNPbjY2eG54cjMvaEtTenNjOW5aamhGZTlwN2Z6SldWUWVrRGozRmd4WkY4K3Z6TEhIM3grWlN1WGNjSHI3eksvbHUzOHRKZGQ1QjN4Nk5zbmY4RnZyd2NCLy9xQ2Q0WC9pZ2hkNVFqejlZbjVFNzFKbGJOTXhpUHpWNVpRYTdYanFGUmdZN0NSdUtSTVV5bE1TZnpRM1JoOFo5TjU2R0xuWDNYUUVCbi8vM3pPZjMwa1FBODhjUnFYbjU1QTgzTlpyL0lEZzBJMlFLWFVQeG1RQ1A3bDFWd3p5MTFQUE9oTXg4dTNibVVWd2pGK1VjcEhwclh2N0xzZ1QvMkxaZmQyYisyZGdhOTJoZ0ZJckhmekZBSVE1aDk2c1ZZbmRna1BjNWg2WWZ4S3FVSTFaV3g0djA3cUY3N0t0NjBvUXlkY3hWRHBoek9zKzl0NHBGSFYwQ0t4eGw4TDFyQWlGTlRXMC9BcFpPbmJLUmh0QTdiVkFwbG1MM0NYNXA3SzB2RmpyZEwvSFJicjJ5Ym1DUVFrQXdhczVabU00SXJGa2RMQ2xDNmNoaWhadFd1N0VNSU1DTDExS3g4QU0zbFFRK09JRGxyTEs3VU1maVNCeEdMMU5PNDRSbEl5OE9YZWpWQzZFUWJOeEt2WDBsajFRck01alZZUm95TXNaZjFlb2FGSzhGSGF2VDhrNys2SmNJWlIzazQ2cmRSRmk3WndEdXZCVGk4UG9lRFVwT3hOVVZqb21aRS9NaldXd2p3ZUhScTZpT2tKbnVwYlloZ21IMXY4MmVtZVhIcGtzeFVMMXFDeThHMkZWVjFVVXpMcHFZKyt1UHdxMk5Sb2t1K1JhYW1JNzArdE53Q1ZDeUtNaTMwMUhUY2VRT0lieW5CMkxxNXl6cWcxNFl0NVc5MWczbGlTeGFoV0p3L3Z2NHduNHlkeFowWC9vS3BlMHhuNjBQM0VxdXFSQThHNmE5WXFNSkpFMThkZ0lJNEhGQVA0eTBvanNDeUxDaHZRNGl2NlJyN1RKdkxDTmRmMkZ6K0dQbWhKOGkxUTg0ZEg3dXdaZlZ6MHcvaGhGT0djMXhhbUxlS0d5bklXWUN5WWRFNTU3SlgrWEplV0ZiSE04VlJtcWdHTTBaT2ZvQ2lrUjZpUkJtb3BmTE5nQnBxMXZ0UU5VRnNhZlZRK3ppSHR5bWNnYkloNkt2ZDFVdEt5QTZtODhmRExxT3BLSCtYbk9Bei9uSmtCNGROT0lXV2dRQlREandRdFcwOVptME5XcTRiWmR1WTFWV28vSUhzTVdGdjNnNnZ3RFNhRUVMdmtJbS9VVm5zNlFwd3ZqZWR2MGRya01JQkdRcnpKRE1uZWpuakdDOWpoem1nOElwMUp2OTVKVXA5YzVUTjIyeWtBa3Zabk85TlowOVhnSVkydDF2M2ROMmFxUUxieHVWU1BIWGZjV1EzellQVTRWVEo4UXpmN3lGUVlpZkFjQWZYaWJoU2ZCS05VbTFiTEkvSEdaUWdFZDVvbW94enU4bVVHdnY2ZlBoRjU1UVIxdzA2cVc5UHpZYjdleUExSGJKcU95cElQNnlPcEtuTlZEeWRCWGJQOUxsUzROWUZSWmxlMXBWSDBEVUl4eXhtalVocEpSUFdwR0JNZ1o4eEJYNU9uWlBOL2U5czVlVnZxdkc1WlllMzNYZkx0eUJFZSt1c2h4YU9RbUtoTzFFMXE0b0JORE5CVTh3WWtlUVFDTzg1bG9KcDQyRDBDUEFrdFg2dXJxNlc4L2Vmek1aMXBXUm1lY25kRTladjJMaUQ0OVQzN1pUVXF6bng1NFVjTzZDTUR4Y2JqTXQrRjVSaStRVTNzMS9GUjd6NmRZekhsL3Fvb1FFcGJRb0tVdG02dFpsdDI1b0JneWxUQ3BnenA1Qjc3LzBhS2QydHc1UUNVcVZCV3JpZXVPNG1XVE1SZlVFR3IzWndhcFhBVWpzbnROdEtPblR3UFdRM3YrZVpCN3NVbDlyQUFtUk9OdWE2RWxSZFE3Y0s2TUpPL2g0M2JWNTlmd096SnVjeWZ1UkozUFNTNHNiam5tWklINUlLQ3lGQUtocENUb2NwQVluWUJhM1Vsa3o0N1VWaENxSTJjYzFSdnNOQ0ZudldXeHd5MmY4L1JTcThydUg3WWFRUXVrN0tvZnZqR3BCTDVmMy9wdUdkRDF1dTl1bFZTM1VsWXl1TGUwdit3K3ZiUHVEYVVSZHgwcWsvSS9QZ2c2bDQ1amt5VC8wWmRTSG5tY2JjOUJ1cW4zeWVuSk5QaE14a250MzhHbjh1ZnBEMWtTMmt1Vkx3YUY3cWZxTHJkbGI2b1p4NHluQ09TNC93MXFvRzhuTytCYVg0OXV4ejJhdGlPYzh1YmVETlZRMWNSaWtCeTBSTENpQUtCMUM5OGx0aTVWdkl6NzBlVDBZNllkTkN0Z0dqWjgyYXdhU0o0NWc4ZVRManhvOWp6T2l4WkdibG9ya0wwTndGVUJhbDVyWTF4Q0tDQWJlZWlXK2N3cXhiZ0RJV2c3RUdaWldoN0RxY3BFaFhlK1M5UHd6eTd5RUFvUW1GclFSbTNNWGdZSVIvVGx2RG9IbzM5ejA1RTJYRE5iUFdjZExlVlp5L2NBUWJRMzZFeTNTS0NMcVVRUXFxdHNGSHIrTXVXY3BoaHc3a29CbEJnajdaSzFLR00zb3UzYkNWb2xrL0dDdnRBblIvRVUxQ3c2NWZpSC9yZWx4ZlArQUVKelFCM1FhU2R0OFo2YTlRaFIyTFk4ZWlmWDVybldoakEwc2hzQ0ltSXdabDhjZnpjM0c3YTFoU3VwNnFwaTFFRzZzWVBuQW1RektHY05kRmc3bjRMMkZXYnl4SDg3amFyV3VYejI5WjhNMDNzR3dabEpVNS80SHo3NW9hR0Q4ZVVycS9OYk1wQnVkTUFIOEZ6QjBOajVjNUdMa1poMTlOaEVQeTRZK0xZYk1HR1g3WUZuSCt3NEFwdVRCbkFOeTdHS1JyKy9HMWJjbmVPWjl6NC9nL1VlQXY0OUdabC9ENGhwTzVjZWx2RTNOakkxQlljUTEwT0hqc1IveFcreE9qbjE1QStidEJxaVBadUlSQi90UnF3aWZtd2hWT3Z6ZWV0eGNJaGQ4ekMxUGFuSEc4VHN6UVFZQm1Ha3g4cVJ5MTBDbGFtRGdpaDk4ZU53ZExkM1ZxVHQ5NFFVL090VU1tUENKWjhNeGtGME9DZ3BpWnNKVnRrQUZKMDZ1MTFOeFg3bmk1M2VHNXFhbHd4eDB3ZFNwOCt5MmNjQUpVVm43dnVxRW5QdHF6cTJQVXhjczQrdUNSRksrcjRzMDNsb0hmS1VSNGMwTVZIREdCby9jZnhTdHZMbTl2RjBySklUUHpPSDZmUWpac2EyWkRXZk9QVjBrcVFGZjRweHY0cGh1WTJ5VHhFaDBWQjZ2K2Y1OUl1S1VOTkp2NnBWOHB3SXpHcVE4azQ2cXZKWHpGZGRTKytqcjVOMTVKM1l3WmFERUx2ekN4ZXdscjdsaHdMb1RDanJ0QnMvQzdEY0p4RjhyVWtHNmpSNlRDcW8yUCs4bTNtL2h1eFRiOEhoZVRSdzlnY1hFNWRjM1IzZEpITGJUbTNrQ013dzRhd0NQL0hVTEYwZ0Y0eHBiaW5icVFjY08yY08vb0dIVnh3Vy9XdU5rV0I1K0VPa1B3eUZhTk8wYkUyU3ZONXYxcWk0L3FaUGRQbzFvU2ZNQmhOM1htd0k0MjBsVDhHckh5WlNSUE9EbEJKcnh6RU1GV0NyL1hoV1VwN3ZqdmZMNWVzWmsvbkg4STA4Y1VKbVM4Mm42RFltLzJXUi92cnhhNm5kTUQrM1BTOFNNNE9pWEUyOFdORktaK2kxS3cvcXhmc25mRkNwNWZYTU1iWllMSlNVRnkzQzZDQWNFWEs4clo0bjZmREg4V0U5SkhrcXRsRW9uSE1UMTZPOGlqNVdiTGdtU2RDNmVuOHMzV0tLK3ZicWEwd2NEcmt2VElIUHFlMm5GRE96N0hTZ2c4RllMOTNyZElqUlVockZYc3Z5eU1PRUFTeTFHSVR1ekpsM1pwci9kTjB4V01xNVhzVjlZRVQ3MUxkTzVNUEdPSEl6emRGMWdNdkxCK0o3eE1Tb2RrSE1ST055bDMyLzdldGV3UUFrSmh5WWZ2NWpOOFdJQ0d4aGkxdFdIMm5sMkYzMk4zYjh4YS9STzg2RW5DZVB1d2JTL3NhR0NBMUxqSW04eCtBN0x4bkhvaXZrRURIZUswV0l4NGVRWHUzQnlFeDlNdFZuakdHV2RzaHhqakF0L3hVWlFMb241RnVGbWdIUlFubUtFejlnczNrMHMwVG44ZjZyMktqWGsyUzRkWmZEZlNadWt3bXcwREZIVkpvSVRDMCtaR3kvN2FEMC9OTGQyaFg0R3VXZFNHQXZ6aEg4ZmpranI3VGZnQ0tSVHZMWjZGVVh3OGQ1OS9BK21CY2t4TFMzei85dmJ6THJFbmdTMFVvWWdYcjJieTlyTHhBQXpLckNZVTlZSlF6bnU2Nk1NdzJ3T09Vc3IyU2Ewb1ROUEd0T3hlRmJ6OEluTUdKNTR5Z1dOVExONWFYVVZCNW5jb3BWaDA3aStaVzdhYTV4YVg4VXE1UVliUzBBQmhXNHdwYW1CQVV6RUdNVGE1YzFtR2dibURIZER6R0ZBVllPTFNYSHl3cG82SEp2cVpQc0RMNVp1ck1XelI2MEloVzhHS2lqQXE4ZnYvenYyOS9TV3QyN2VuLzNRUThiaEZzeTBSaFJsWXJpYXFsNjlqM0VFNVBIM0x3VFN0Mjh5bWNBd1FIRFFxalNQT0hZZGRVNHUrenh3aWJoOWw3eXhsZHFyRm9iL2RGNWRMNDVUVDcyNlZPVjdiWnZQbUpNNHMzb083czRaeXpiaDFuRHlvREdIYVdJYU9sdXlzbGxVdjBGMG1Ta21lWGx2SW41Y1BZMGxsS2dRa1h0dnUrSndFQWpCNU1qUTN3NGdSWFNkeEMrRzhaOElFbURMRitXd0grMGtCMlY2VFM0YlhpWW1wTVhYUG1qUTF2OG92WXBib0g0SVhBWmhpZTJHZDJRdjJZcnZmMUVXbk52eW1lYSt4YWVWcXNqMk9iN2twRmlOOTNtc01PdWpBbmhOTDJRNWhVZk5uMzdIbGdwdUlybHpmT3NqcWZ6eEgrdG5IVUhEM3RVaWZ0MmVrd3JiOWt6ckZTZ2FRUHNYZi9uTTQxdW56V2JwbUFQTy9HWTVNaWlDRTRzblg5OE5TeVFpaGVQcjFhV2dwelNnbGVPK3JLY1NzWkNhTjJNcTkvOTBibVJ6QlZ0dHZPQlphSS9YTnM5bFNjd0g1NlEvU0VEUFJaRnZEWjN2ZXFvQWU1eU45ZWR0K1RuS0JsUGpjR2hjZk5KUlQ5aXdrNE5HNSsvVTFETHI0VFlKZVY2OFQxczlOUDVnVFRoN0JjZWtKZlpHOUFLVWNmVEczZkRrdkxxM2ptZFV4bXFnRVlSTzE0bXdxVmd3dDNJdkdSaTlibG13bUVJZ1NDZ2Q3VFBnditrQ3EydER1WWgyUitIZUdGZU9RczNOd3U5M1VQMVJLaGVxSW5FeDFlaHdqeXFaR1dReVFydGJjM2RZaXpGMDR2eEhMU1lnL01xdVE2VnRObnIrc2lua3Z6dU9pUzk3azBHbTVIT29iU2lSM0hLdnNxWHpZNE9HOTZob1cxR3lpTHJRTnJHYVFFcUY1a0VKenlJVjdCQ0pJbEdtU2RldTlLTU9nNnVyemtFbkpvT3ZkbnRQK2l1WCs0OFNpanVmSHNHbUsyV1FIOVhhRm1KWE5Ka2tlaWMvVnNlOSs1cDJKWDU1OHNnTlUzdEUxVTJKeEh2bmdYWXF5UXREWVFMVXNZY0FOdndXZnIxUC9qVk5QN2RuQ1dxcTE4RWNwdThlWEx3eTg5ZXErRldSSGY4ai90ZTN0MkgxenVwVTdMVHF5eFY3djZsaS92TEFySmFLSUI5ekVKby9BUDJRb2NuZ084bDl2RW5WRmlCWVc0djlrYWZlRXdqMjUzWDRYN0lmK3duZjZTODhmTmVRQWt0d0JiR1czdWJKR3RSSUpDSVNUYlE1Z0dFNkJPYUtWY0xQbHAwQVFNaUxjeHhmZm8vWGVoODIyUVNsOEI4NmxxUGhqNnU5NGlOcnI3Nkx4WDgrUS9mQmY4RTJiako2U2loWlZlSVlOSnpML0s2cCtlUTNtcHEyazMzb2xxVmRmNkNnc3k5ckpaZ3RINGYydkhGTGdGbUxoUS9lczR1RGg5YnhWbjhwL3F4MHlxZE15cXpnMHRSN1JaUEQyV3gwVENlOWtzeXRGRU1GK3JpQlROUjhyUFlMNGZyTkpuanNUTFNXNXh6SGxGbHlqMCttSkcxUzk4aUdsRHo1TGVPMEdBUHpEQjFOdzBVbGtIYk1mMHQwMTFxVjE0SE5JS1RHYW12QmxaM1BjSVljd1ovMTZFSUxQaGd4cHpXVndKU1ZoZC9BTVZpalU5YmsxQkZwQkhPOUpkZWhERXBkQWxYaUlQcHVHVmVydWxsVDQyZldQZHRxM3NKMXFBU1BocnVnSjUxdkp6cE1BV3pMM0xNTkU4empFUlZiTUlYdlRQRzVRWUtvWTZkYzFrWG00ODBYVnI0ZW92U01KWFhwMmZuK2Jmd09FalJqcC9uUXUzK2R5RnBhdDRzYjFuL0ZtZEJpWDdYTTFoWmtqd0FwaFdRYWEwSG9vMERLNlhrK2hzR3lCc2lTSERXamlDdTltM3Z6N0p2Nzh6VUIrZDhPamJGeTNuTnYvOUNmSDNkRUV2LzZGbDEvTlNxYm83TVRsT0ZWVjdjNmVMQ3JFZitXbHFQcDZaRkVoc1g4L1R2eXQ5M3BPN3RwQnUvLysrMmxvYUVBcGhjL25aQUNIVnEybTZmT3ZBVWphY3dhQjBTTkpTa3FpcUtpSW1wb2E3cm5uSHE2NDRvck9PNDFic0xTQ2JNdlBWWGRlUm01ZVhvZjdzOXZ6ZHV0SHZjT05WQlZPSG9xa3dCVm13ZkltWWhHVFRKRkprM0R0dEtZdVllSVJ4azUvRnloc25QZGY3bitlMy9pZlpxdWR6UzhicitIZDJONGdtcnFVMXY4TUR1NUtMU01FQkh6T2ZnMUZZdDI3c0hWckhGbHlmZWVGamJheThXcHUxb1MyNGRNOEZIclRpVmxHMXo3M1ZiL3VWclZITE1XNERIajM1Z2NBbUhIdnZpeHZVdmhrejNseXMxSk1ab3lLRW92YjZMcml3elhXYnRlNnlCWTVzK09aMDBBWmtrQ3FBcGZOb0gzQ2pKeWdDTTJYYlBuUWl4a1hKQTJLWWxTN2tiWkV0TW1mdEEyTHJ4ZVgwTkFZWnUyR2NzWm5wWk54eEF4U2ZhNWRJMkI1MGlFTlRVbHlkUnRQYkplSzI4M01OaVIrcm0zMjlJdWFsd1A3dUNoeXRTTkxrb3Y2dU4rbFRyOTNFdTQ2OXVUU0tjZ3ZvTDZoZ2ZyNit2Ky8ySFFTc2F3MzUrV1FIN0d3RVpRbkozUDZhV1U5TzM0cThYOFcyd09qVWpnRk1QdG1Bd0xkNjlqRnhzSFpqZ244MmphbjBONXVpN1NybnpTL241U0NsS0NQODQ4ZHgyOStQcG02cGhoMVRWRmUrYmlFbUdtMUp4SzJ2V1I3cXprcDZ6Vk96bnlmSVNrR0ROd2I5NVF6eVpsOE5IalNBVWMyeUNEWVlRZWVzb0hxdDZEMkxVamRDekpPQS9rUzJBbmlxdUFJU0QwTzZsK0IraytjOTJ0dFpLRU0wTXZxdzk0M3ZTUFNnVmJuVllLcElOMng1R1RGUFE3MjBKTDRyYnJmckhwMkhQZWdLREpvb1pwYy9YVWtVTFlneldQZzBTMUdCUjBpbldLWlFjelVxSXU1RUxMbnBNSVNzR3dYeDZWdHBUcTBuTFBLenlOU1hjdHR4dzZoTEdUejBMdjFYQkNkeVY5ejN1UG92R0U4c1Y1RGFsM1hxZXFhWkdoaE9tbkpYckxTQTZ6WlVNM0dyZldkdkZkamFGRTZxVWxlaGhhbFUxeFNSV2w1WTd2My9PNjBVWDA3aVI4czdwMXRKcXJCaXVGT2R0T3czMUR5UGk4bVRUV3dkdGJQOFh4YlJxZytoa0Myem5uYTRDSUdhUktQN3FKb3hBaTg2V2w5TXV5SHpBSDllajRzQ2ZNSFM0cXpkczZCc3BWcXZhUnNSeEU3cWtxeDl3WWJyUWRtY3E1MGtTRTFZc3JtWjU1VThxU0RQWXpSdkx3UXF5ZERhdVJLRjV2dCtLN0hJR3lMK3ZLTlZKZHRJWC9rWkh4NlQyME5pMGhFeHlNc01wS2FxVzF5c1c1VENnVlpJU3FxZklDTlpEdlJtQkk5bzh2VGxLTGVvNUhYRU9mQk4xWnoxNTVGUERrdUQ3Y1M2UFNla2pmYXhoNTM2eVp6aDIvaW5MMFdBYkMxTHBsRm0vTXcwYkZORTZzeHpwNEhUdUwyMmRtTWVPSS9iSHZyTTBSYUN0THZ3YTZxcGVEQWZTbSs0bUJ1a0YrMzl2K1k3MW1RQ2hIVmFSaFR6dmszdm9VYmVQc2p5WWhoY083WlMwaXArQU8xejgwa2tCTER0cnIyNGM3YXZqRGZxOTRycnRyRWQyWEZDQVRMSzlhelIvN29IMVFQRDhydzlrQyt0OGp1N25mRXh0WnAvVDdudFcveTZYV2xHQkd0ZCtYSG0yZU9pOWFPR1JldFBlU3V6TW4vQ0FYeVBwOVJzelQ2alQrUHllRXRMSnIxSUh4NVVac1A5dy9TZUZiMlRFNDZaRHpIcHRtOHU2U1NjVlVyc1pWaStTMm5NcWR1SFU4dkt1ZmRzZ29lVUF0SVEyRWllM1Q1OXdVSkhYTnNRc2ZrSjNUTTBuUE9aVTc1Y2w1Y1ZzZXp4WWs0SURaRE1qMVVoa3krM2h3QkF3NFltNFJoS2VhdmJVYTZ0K2ZVS0tXSWZQa1ZkbE1UTWltSWlzV292dWtXcE4rLyt6NUN3cWx2akJqODZmbHZBRGhrY3RHUGtsQTQvOVpydXRobEVxRzVNRUlOSUFVdVh6TEtNdWl5dVBWM2x5YzBnVUlEREJRM2hzcFpZa1Q0clQrYm9OUm9VaFk2d3FsUGFCQjRoMWlrN20vZ0htQ1RkMzRFVEtoN3o0MmVvbEE3aENFMEtWQm1OV2J6TW5MOUZnOWNNNEV6anl6aWR3OHM1ZjJQdG9KWGdjL2RwMzZlRUFJckZpVS9NNWY5cCs3TnN4Ky8yanBIZGpRS0xuZUNkUG43YzNMdWZ2dCt0U1V2UlZ5Mnp5OVlzdVlMSGwyemdHcnRBRVQrZmlnaHlmQkYyY096SG05RGxLUllBNk5UaTlHRVRaT25nZEdCTFpTWWcxanI4ZUEybWpDbHAvVmM5TGptVzlXZ3kwWVdOTlNTUHFDRVlhbFFxVlp3d3ZnVXNqTWJ1V1NSYUtldWJDRVJ5a1FhdFN4TG04eUpHZi9oMUJseGZuK2N6cWdoT3NRVmxxbVE3YUxuWGJRMmVMa041RXNYdi9KbXNQK0E0V2luSG9kM1VPRXV5ZlZPY1g0QnRnRjUyWUxKb3pXaWNUQVhXK2diMUc1ek5tVDdLcmw2NGw4NGVlZ3paSGhyTUd3WFMyc21jTnVpMy9GTzZjRk92VzgzTGVXbzQ3cjBlVUJnV3M0VlhMcm1ZTnhkRHZtTys3djFvLzUvYXNuS2FMVmJCVGFHQWJWR0dWcG1FNXBTTk1iOFpFZDFrb1NGcmF5ZktONGg4SXNRYzcyZmM3ai9iZjdUYkxQZUdJeEoxM3ByeHBDSkRFelBvN2hpSThuZUFObEo2V1FFa3RsWVcwNWpwSm5CR1FNb2I2cmwwL1dMc1d5enc5MlRTTi9GVWs2T3UyVTc1MG9xWUFjaTRhTW5mY1BsZTcyQ1Z5dm1YMThsOGVyeXdaaTJJTTFuT25kV2QzYnNiY0VkSjJ4bFFGYVVlTXlGeXkrb20xZEYxY05sbUkwbVdyS09VbTFJaEVOUmxHbWlKU2NUbUQ2ZHdOeTVjTmxsN1ZUazFpVEZYZFBpYkp5WXd4VVRqbWRJWnVHdUVjeWZmSGduOXBsd1NNVlZXNHg0MTVoWVpHWUdlTDFZbTdlQ3JtRnRMa1ZtWjdVbnZ1MWx1ekRuTUU3L3hTZ084ZGJ6OFpwR3NnZDhoMmtyU2k2OGdHa2wzL0hLaW5xZVdCMG5wTXFSbW9YZDZPSXZsNjNsMENtMVJLSW04MWRtY3Y3dFk1RXBCcGExL1puT1A3KzRWZmVhZFhYODZyS2hDQUgvL25jWmo3OGM3V01TLzkzdlM1UHRyK0cwUC9tTTZEdnZvdzBhQ0pyRVdyY0J6NzV6MFE3Y3YxZjkydCt6ejZlVWN6SHkxZzFMV0xQc1ExQXdZc0srNUErZXRQTWxvait5NW5VNVk0c2FQVi9QMysxemNaK080Ujcra29CREJYRkRKOE5kU3BNN2srQ0VpOG5Kdm9UZmphcG4vNm9GUkRRUFVjM2RlYjdYRG0zNG4yOXp6ckNDaG1URnVmLzFjRVZhTlRtWGJjV3FUK1FOb1hEcDBNTFpwVXN3REhDNWR2aWJ1VDNtMkNMWmgrWUh1ek9DMlo1VTNEMlIwdUx0NERrb2hUNGdqN3huLzB2MWJYZFFmOWRkQ0NuQjQzSHlRWGFsOVpQUGZ2eTZ2M1pvNk5pQUg0Z2JVSzlETUppTVhkOEljWEFsYmVmTWIwMFVUN1FyZW1CWHowMzRzYzhVeDJnU1ZSQ0w0U29xSkdWOE12R3laNmxKTDJDdm54L0lvczlXVTdOdERjSzNIU3Z0YlYyRmxGNGVPV01aZXc2c29LeHFLVXNyWm5EVUEzdGhtS0UrcjZQL25nVVhlbG95R2VlZVFOckpoeFBZYXhwVmR6OUs2TXR2T1diZ05zNmVWYm5UMm5UVldxemZRU2NjMGJmalBDMXhubDk5dGZOenBteXdha0VsZ2ovQ0IxcjY5dHQzT21wWlRvNlVSd29PbUQyVTk3NG93WERyS05QQ3NoejdDV21qMEREckEweWJzSkcvWGZBV3N5YzZsNTh2VzVTRGFXcmdzanF0czgzS3lrSzVBdHd4cjVuaVdYVmNjVXdxdVhOY05INWlFVmxwWTRkNzd4aTBQTTIyQm8zaXZCQzJWMUxiRUlTd3dneFlWSWZxQ1VXYW1KWTNpZ1ZscTlwR2NYWloxd3UzRzlmMEtiaW1Ubks0MXI1ZFF2emJSUkNQOStnQnBNZEQvaVdYb0F5RDVpVkxHUFNIUCtBcEtOanBNdTdkYWxMZ21qZ0J6K3daWUZyRUZ5L0JXTG9DRmVzZHJxOU1FOCtBWERhOC9DYUZtN2Z5OFFNUDg3UGJibUR4L0U4cFhyQ1FmYzQ1blpmKy9SaVRCdWF6NGJGbjhReklBYk43bWZ5TGxJTTQ4Y1RoSEpjVzRhM2lCdkl6RjZDQTc4NCtsN2tWeTNsK1VTMHZiN0h3NEhMcXhGREViUThqa2xZeExtVXhYOWZzaVZzWVJFdy9RWDNuV2xlL1gyZjQ4RlJtem5RdUtQM3l5d3I4ZnIzUENZVmxZaWZWbVlMeFFZTnJrbXRvZkwrS1UrNXBabU81VFF1c1k1aUNJYm1LUC80NmlHdk80VHcwNzlsK0ZXZG5ITitEbmRRbUp0OWRPL3ZYN1hYYWpwZkdLK0hZZnJaaFlNZjc3cElzVzBIQTdlaXJvRWVpU2FnTFcyaENFSXJiUGF1YjZvZnhDaUdvMnZBZGRTVXZNWEZLbUUzclBxZWllQktESmh6SW5aZFA0YWJ6eHlORnp5OFR6ODl5QlBzejQvS2RuRWNwc0ZYS1RyS3V0K004b2pkU1ZMaG9iaXdsMUxpTm5JSnBDYXVsNXpxOXJWVHRsWVRWZWlIb2V5RWdlMmZiV0FpWFJrYld1d3djTUo1WlNZVzh1bTRlWXQxdzV3S29IWjRuT1hjeThlWmpxRi8zT00xVnk3Q3IzMGJ6RjZKeXp5UkdKbzBOelRRMHJxUEp2dzYzWFFZVmoyT0Z0OURZRk1MbHp5VnQyQmtrNTB6dXRiTHpqSE53cE9oMzdoN1BSWE5VOGVCelVmSS9sQnl6bjV1amZoL2hxd1VsdlBWV2tLUER1ZXliRnNUV0ZLYnFLMXhPZFI3WGFDVkJsRjBrTHJiNFlUYUxpc3ZKejAwaHllOW16ZWJhUkIyWTZIR01ycXNSRnVVR3lVcno0ZmRxZUQwNlZYVlJFRTR0cGhTS2NjUFNpQmsyb1loQmRYMlV6ZHVhTy83Ry9vNy9KZWJKWFRpSTFJdXZ3K1Z5SVhTNVBTYzgzZ2p1RkpSbDR4azVqbWhqUGRMVGVjejl0MytwNFBlbk5iUFgrSUZjczdhSTJtZ3luNjM4aWtOTDEzTDlZV2R6d2QvdUovcmcvVlI5OW5HUC9jdGRRd3Vod2dzUEY4RExjZGl2R3I3TWg4MWVDTFRGL2h1YmlKUVZJOTc1RjhQMk9vZmxtNGF5NnFIN3lkbTBxYWZsU2UyYWZzeVVEUHhyaXpueW96TGVhRXBtM2pCbmN4NTc1WnNjUFRHZHkyWm1jMURGR3Q0dzRxQzVNZXFqNVBrVStSbDdzcnp1Vytaa0RlT0RGUTFVWTNkSlRPdnNOSW1teDdEcWMxajg5VFFpMFdTa0YzenVPZ1pPV0lwTEQvZUltS1p0Uy9JRU9HYjhBVEJrOEs0WkIxMjh0c2UwYVJTbXBoRDZaRFhlOFpOUURmVW95OFEzZWl5aFJkOVJKQTVoNnNEeGZMWHNVOUQwRGg5ZUltaFdOdWY1TWxoa1JmbktDSUdDb0c1ejROUVlzNmVxVml4ZzlsVFlWaHJuODY5TnNKMWtqSm11QU9mNU1taFdOckxOa2V2cHVyMXVHQ0ExWW9hSCt0SkVRZkdXUmRRMGJDQVM5NEdJZENzOEJGQm5XN3dSRHVFU2dyV0dZemdIcEdSVDJPQW9mNkJiOFRNdlkzcmZucGdOM2NPTnlnYk5hNU54V0MzVnI2ZVJmbWdkS1hzM1VQdGVLcHJQNmhiNEZjSVJ2SHVOVHVIUVNlazgrVmtGcVg2TlBVY21iL2N2RTdKY0tVV0tYMmZ1cUJSZVcxalRxYkZ6L0pUTXJpZmF0akhEOWM3aDlDZHVpK3JpSWYrYytEbEVEN0VIRlV3ZjZtSEc0ZE1aTVdzOE9STkd3S0NCNFBhM3pwVU5DTXRHMlJhYXk0V3U2UngweGtWOCtmN2JsRzNkd21Hbm5FTkIwWFpLSXM5eGZleTAzKzRrOTV3ODAwZnltb1VjZDFjVEx6Y080c3ZKSGxBMis1LzFGY2RNUytXSy9RVEhscS9tcGJqRUZ3aHd5U1dUdWZubUx3bUZiSFRkUzJscEUyKyt1UjdRMnhtQ2NWUHh0Wm1LTnZaUVlrcXlNQktrTCs3TXVYVFdXenRwellBN1JuNXFIVXI0VVVDcVA4UlprK2RUR1VyZWljUmt4M1pmZ2tYb2xLOC83dFJBRUg0ZjN0RkhFMy96UlFlVUdUK2ErSHZ6VWVGSXB3YkRoVjBaUDZFNDM2Mm93akJ0eGd3N2diKzhxWEhWSVU4d05LOTJ0L09oYkZ1eGFGV1VRUU0wM3ZuYUtaZzZlRWFBaldYeFhoZXN0eHpMNnpmRUtJamExTG9GN3NUNG10MkNncWpON3pmRU9HV0NyNzl5Y0hiUDNuTW5uamZlYzVLSlExLy8rL2N6UE5PaWFmNFhWUC83YVVJTEZ1OFNtVENBbGNnbXlYU25VeEd2NGZ4RnYrUFp6YTl4OCtTckdYL0pMd0FvZmNVcDNNNDgreUp5THZrbHkwTHJ1T216My9CQnpWZjROUytaN2d4TVpiYjI5Vk5zNTB4T0ltWDFVbjcrMFZiZWFrN210V0V4bExMNTJSVXZjOVRFZEM2Ym1VSHl0aTBvdzNDU3pUeEIxbnp3TEI4T0Q3TnB3Z21ZODk5am9LN1RqRUpyYzB5Ky9YWWgzMzY3RVBnUEFHbXBhWXlhTkk2akJ3OWp6dFNweUp3Y2NzZm5raGtjaWQ4M0J1UGJadlRnT09Ub0hHd3poQlZmanpKWGdiRUNaU3dGbkd1YmtnOE85ZTBFSkhERWdTY2QxN2Y5L3ZWUDdRMVZvUnhRVmNDbGc3Wnl4L2oxL1B1WnNSejRsOE1oSWtHVFhKbTZINDlmOXhicmovcVd5eGNONWI0dGVWZ0tkTjNDN0U1UVdDYlJraExtUDc2QjFJM0pYSHRHRnNNSGVYcnN1ZmVNVUZnQ0ZsS0Z3VE1NMnowUW8ySSt2azFsUkNJQ2M5TUtmRTJiMjhlSE9uT3NSTXVQSFM0ZnNPMWVRUTc5bFVqbnljMUNHU2FoRmNWOWVpRlQyelJuWjBaMHpqdDJJTUZnbE93cUR5V2JTZ2hIdzlSVkZ4UDZiREZqVDc2ZjV0eHlMdnZaY0M2K3N4cDdoejY2TlFEbnpZTTc3NFRNek8yM0lELzBFRlJYdzI5K0EyZWUyUzJnYzlOM01ERUxEc3FDbFZHNGQ2bXpGZktUNE1vSk1Ic2VsTlpCTUFpWGpvYWJsemhCUnQwRHBTRjRjNVBUVDF1YlVrcWJKOWVjd1BTTWhWdzI4YytzS1IvR2J4ZmZnR25wNkxxSmFlcGd3cENDelZ3MzRBNE8vL3hGbXA2MUtTbDNnaHVadWZVa255eVlOK3MwN3F5NEhCZ0N3Ty9QbTlzeHhpVEFqc1RZdHZ3VDZyOTFYcDB3SXB1RHo5NFQ2ZXY4bkhSSEtOeENKandvS0hoMnNvdlJ5ZTNKaEVWQTB2UjJQVFYvTFhOMGxkYURtMmVFY0NiVDczZCsva0NCOWg3NWFKVnJlY1UwU1UzeDhjR242OERuUnJxMUJPRHJadW1xY3ZiYmMraE9xRzAwYnZMUndncktxaUtzM2R6MC9TUko3ZW81Rm1BM1NhTExkS3c2UVh5amhrckVYcVRmT2NWV25jYi9lbHQ3L0RuOVp0TzVNdElvZXVCMlloczJzZldXdjFMM3hYYzBIM0U2eTdOSDhvZkFiRGJwcWJpeGUzV2ZnRExNZG91dlRJMFJCYVhVTi91Wk5Xd3pYNjRySWpVWVprMXBOdWhtcnpaSFhWT1VodVlZcHh3eWprdlBtTW5OOTMvRU81K3YzeTE3WHBrS0RKdUkwTGp2a1hVZ0ZJY2ZONEF2dndsUSsvUVF6cjM1Y1VwaXBjeXY4SEhxZ0RqM2JISVRNU1dhdEttSkN6NnIwd2haZ3FZZTVSdzZ0cjBRR2pXZjNrTjR3K2U0czBaZ05XMGpXcjZJNEloRHlOanJLalIvUnBjSHh5RU5ocURmemFlTE4vQ3ozejdPYjA3ZG00dU9uNDJ1U1d6YmJpVTc2dWtaZjZ5UDk5ZStpWjlYSGpzU1gyVVpWMzlZdyt1TlNieFFsSVpsV2x6K3o0VWNQajZWOCthTUpHMUpDUyt1cjBSNlhCUmxwekZuN0V5K1hld2pOejJHTjltaXRLU2E4cHI0VHNFYjBmS0l0a0pJd2ZRQ0gyT3lQYnk3THNUSEpTRkNoc0xuY29KVGFuZmtWN3RmMUM0SnRvbmxhenVETnhteUlabEJ0UmxzeWl0aW00Z3hmVnNKM2cwMWxORFlLWGRhSzZGd1Y3NllaVHNrVkMwMXdNcHlic3JiRGJtdkFVZHVnZE5YdytaaE9pSS9DeXNVeHFpb3hsMlkyNjNlTER5dmZpZnoxb2hwMURlNzhIc3NBZ0dqZDNycDd5M1FoK2hZOVFpRllYZ0p1T3Q1NGRra2hDYVlNVFZDTE9iRjd3bGoyNktUSVNjRzhmN3QvU0ovTTA0OXZoczVJYkROTUFpSjFCSmtpMTFOekVOM3RKY1JnRjlLcGxiWGs3SmdDWU9QT2hyditMRkVGaStsOGFzRmVBc0drbkxnZnQwU21MUW01RnNnUEFvdDN5YnlqSmZBT1JGaWExeVlKUnJ1V1FhTlg3Z0pleFhDQnJjaEdMdEJaOUlHRjZlOXAyanltR3pOaXJOcVVJeHZ4c0pYWTMxODI4Lzc0WlNpaGgyRXBvUmdoUGUrR0lXSyt6aGg3dnRVTjZWaUFpZk1mcCtuUHoyQW9aRWlEcHo4S1RUN1FMWS9WeDBSQ2t1aHNHTWVabzhxWmxoT0JZKzlkeUFFUXFBNTJNVEcyblEyYmlua3JBUGZZMTFGRHA4VmowSjZZdGdkN05VTC8vVEdEdWFvWU9tNmlwWXZZdU8yQnE2Njd6MThicjFYKyt5VXVTTkkzcmFGbnoyem5qZkRYdVlWT1NUU3g5dzZqNk1uNUhIWmxLRWNJemZ5c1draGxVTHp1MWc1L2VmbzMxYlFFSXRRZlBCd2ZQRWtHa3duYWFEM3NRVFRDYnpxR3BNSEJ2ajN2RWN3aURNeC96aUtYVHBtTklhUVhaZWlDUUdaZmhjeDA2WXBaaEZyY3l0cXNrZkRvMHRxd2tidjZuL0V6bGV3LzVpU2E0ZDYraFp6YWFGeG5YSEhEUWpoNUt3WWhrV3RkSUZMWjlzZEQ0S3QwRFNKMmVnd0dXdzY2blR3ZWtIWFViLzlNOEsybVJ6ME1rM1hzRzE3NTR2eEVPQ3h3RkFzcVUvaDU1OU80NTdWTlZ3M2JpMkhGMVZTUGM4SnFxWWRFdVBWelhuOGNmbHd2cTdNQUduajhzY3gzSzdPeTQ5OFBqajZhSmc3Ri9MenQrc1pJZHIvM3ZKejdGaTQ3anBJVDNjK1M2ZVFPVzZwMkQ4bkpJWW14ZmxYU2FwNlltT3lLSS9xK0V6bkFhTXUwV09kcVpxYU8vR0JCQ29TUXhsR2ExL0tNRkNOSVNjaldIV2RQWkIyV0x6TEVCQUNJbEduWTU5WGRNLzU4WFNMaldCMTZCc0lqNXZCdGlDemZET1ZPTEdnQ1lSSlRoQzhxN2lCMEx2d3YyemxKS3hyRXJPOG10SkxieU82cWdRdExkbkpTa3JFcmFvZmVoWjM0UUJ5cnpzUFpkdXQ1Sm1kdFpTVCt4Z3ovTWRmK3ZjZ04zeURFZ3BNeVp0djFsTVhpb0pSam1wUVRnbFlUT1BEanh1Y3JSdjlCTnRPRVBTWmd1VXJ3bXpkR0FYalUxU0QzUzcycUpSRTZHRTJWSnpGSG9VbU04WTAwQnpUa0sxRS9BYWFIVU1Ua3Jod0lhV3JqYzI2ODg1WW1OZ1FTelkxWU51S2dFY25MODFMV1gyVVZhV04rTndhZm8vT3JCRVp1SFRaNDBTcVZhMzZJZ3YvMm1LTytHZ3JiNFpTZUhXWVFObjJEcmpHR2w2UEc0Q09XMnBrcHkzRUNDd25iMUFPd1UwdXRpeXNnZUIwc0hzaUd3VzJiVkhYV0lOU0pxWnQ0M0g1Y0xtVGRnOVlsQUpDVVE3YmZ3UnlWakthTjRYRFZpZno2TnZMSU9qdk5wbEY0SkFKdnhadjVBc2p4T25lZEtZSUg0MjJ4cnFvQi9SZEhGWkNtTldiQmtrK3VOU1h3NUpQMDdqM3UzcnlUNjdtOHJOcXlNbjhoaWtSUDFPQ1Jmd21mUndiR2NsbnpWTjVweWJNcDlWYjJGUy9BU3RXNjRDSTNUMkZybUdWVmVNLzhDQ0NSNTVBNk4zWDBYSUxFTHJFckNoRCtyc3VhT2l2V080WjA5STdQb1pSaThwbWsrR1pIclkxT2tsZ2Vja3UxbGJIeUE3cXBIZzdsbVV0U0szMTg1OTN1YWJEbFFuYnRnR1FQeUFmNjZ5enU1N0NWa0xoenZlaXo2dHgxcytHVWgvYkRBclN2RVU4K3NKNkl0SHVZMS9wUngzTS83WCthLysrY1VLWHBxVUFGcTF4RXFzbmowaHF6Zm5vckwxOFo5ZTJxanNVUTFWdVJhMHV4VDMwUkRodUxxSzBqcVMxbTVHUldQZEZoQ09QNnZKbEcyZ0tPZWNpS2VEcVFkcnE0bjdGZDdyMmo5dGdXNEpXd2dmblY5VXhNdk9nay9YeWw3blg0Skt1Qkhud3pwcFFhQkp6U3lrQ2dTelk0Y0o1MFI3MnNXMmIrN2l4RlpQYjBlYXoyOWgwQ29WbEs1UnRvMzRNZmthTDMyOVpvR21rWG5NaHdWT1BvZWJ5V3lqZDl3aFN6anliekVsbmdvTHFTMzVQNDM4ZUplbjRuekhnbzJmUUMvTGFmYmF6MWtJcy9QbGltRGtlTGo3WjRPUjlxamdpMWFIUERTcVQxejZDKzUrRnI1WkNwTHU3bTVUQ08yWUVXbEtRMERlTFNKSWFzMHlCOXZVcWt2UWtzczQvQTkrY251V01kVWNvWFB2K1Y2eTc5cTlFTm15L21DaFdWa1YwY3hsYTBFL21ZWE83L1B6YjkzZGN3RzliRm5wcUtxN1hYeWRydEVQb00wclRNSTQ0Z2tzT1BCRFp5WHdlZVBiWm5Tc2Y1ellYZktmVUlsSXNqQldPdjZNTmlPTTdwWmJtKzdMQkVOdXJMVHBvK3pXdDdyQnppVVhVNHlFWWEyVDkzck5Bd2RCUHZxVFprNHczRnNPbWE4TGVqT3hVR2t2THdWYWtEbklJd0JvM2w2RmlndHdqTWlrOFJVRlRCYUJJK1hrdTdnVkoxTHhhamZBb1Vvc1M3OTlZQmxLUVdwQUxpVm9WWGVyY2ZmeUR6Ri83SVd1MkxXUndXaTV2ci9tQ2hXWG44dk5wWjNIbXRITnd1WGMvUGlRU09JOWxhUGc4RnRjUExXUFMrczNjY2s4RG55eFZISDdFZU00NTQwUSsrYlNBTys5Nm1FRkZOZHh4ZVFyN05DUlQvZ2NQVU5IZU4wMzg3dHBuRHRiNkVtSlBQb2RyOW5UMFBXZGhmUFlWS2hUdXRYa3FoTUEwVGZJU1pMK1RKMDNpbUdPT29mYU5kOWwwdzIyWURRM1lDRnlwS1JUZWRCMUhISEVFNjlldTVhMTMzaUV0TFEzVE5OSDFyZzNQcEtqR2NTUG1NSGpJa0YyYXh6TjZpUnU5WmhoSVRjTVdPc2NsVlhDaU40eFhNL2x2V2gxL3JNOURLZ09yN1VVZlNpQkYrNElMaDR4S0oxZFdVNmhWa0MzcmtUTE1BS29ZSUt1WjdGckNNbk1JWFpVMFBSd1kzSWtvVXZnOExvNCtZQkw3N1Q4UmdGYytXTUs4OXhjVGlSbmRZa20rMzF6ZTVldFI0T29GZDdJcFVzdWpNMzdHSHA3Y3JpTU8zUklLSzZkQW82YVMrZTkrQU1CaE5aVUlWM1lMcFg3M0owRUt2bGhmU0ZOOU0xWXNoUENrc0tneWJ6c0w1dTZHV0RyRFoxSk1hcmE2S1Yya3lCc1lKVDJvTVhHS0pDWFBvbnlMcFBJVGdkVGFBeDdqUnhVZ0VHemFXa3R1VmlyNXVrbjkyNTlpU3JWYlllL25IOXkzYXp2S3RsajQzVUlFTUdYS0hralp0UXc2YUMvbjU2RmZEdTFqQmU5Y1pKMzg4Ri83dHR1Qkx3Qnc4RVAzOUcyL0JTLzA2RzBqUjR3a3Y2Q0E1Y3VXY2ZCQkIvSFJ4eDlUV1ZIUkozSStsaEFkUGJsbjhvZHFkUkZCS0pwSmRWTUUwM0xoU1pVWVJ0bnVtNFBEQTdnS3ZTd3BUaVZ1NlV6ZnM0cjR4aWovczAzUUdzL1FwRUFLQVVLaENSdFR1YkFzTCtudUduNlcvam8vei9tWTBRVmUzR05PSnpqOUhQU2lQUUZZVTlyTVY0dFh0SFk1NGpPd204Q3FkK3JIelZvd3RrR3NCSnEvaE9RRElQZG01NzNsTjBMb1M5Q3pJZjlxY09XQm51N1VtV3VwSUpPQVNmMDdCVytIMDNlWUVvRmhHeGkyZ1pRNnR0WEVQa01kSE9IamRmY2d0UUMyYmVLU0xzZUgydW1VMUc3WGIrT2IwVk5OWW10OStDYzBFOGZmNnpxZG51b09yMmFUNmJHd2xVMmpQZ09BZ0Z4RGtnY2lwa2EwRjkrckZLQkRkb05PVGRaQnVKVEpJMmVONEpDcFF6QXNHMy9XZWk1N3M0cVFMNWVKV2pWUHlCd1VIUmV1VzdhalZiUFRBeHcwWnhoREIyWlFVZDFNWG5ZU1VoUFl0bXJGQkN6YjhRL3pzdndjc3Rjd0JoZW1VVmtUY3Q0ckJXYWJvdkM2UU5lMm1vWmlwTWNoSVY0ZFMyNW5KN1YzWk51M0hzZjA0Z1lJaVczWmhPMGs3SUxodU13bE5GdGVrbXg3SjM0UzNlY2pZMEFlWG8rSFlGWW1VdStidksxLzlpT2hzQUFzQVI4T2tidzZSaUxiMysxS1lVbzJTWjRBNjJwTGladkdka3hBd0ZFcmJlWnN0TkYzbU9ValBTazdiYllNcVpNaUpINHBxYlpOcW15ejlmc0hhMjdDeW1ZL2Q1QWEyOXdwdCtLMVdFTlBuQVBDVGR0WTh0Ni8rZlN0OTVseHhKbnNkOHlaUFV0dmRIbXBha2poajgvUDRJb0xWdkxBOCtNNC9VOEhFL1FiMUZVRlFDZ2FoY0NPeGxEU2NHSStQWnpjWkZQRHlqTklNeVRYZmJDZXZXMHZ5NCtZVHRndzhVdUoxWG96Ui9jOVB0RHV6RWthSWw1SzY1SlJRRVBFaXhBNmRsTVlWMG9TVjV5ek41ZEVOeEc3NWlaS3kycHdaMmRnMURjUTlBVkp1ZjRTL250WUdqZXQrUTlObGVYYnNXcjNZb1Ntc0NJNjFYUFdJYjBRcVpOVVZ0blUxUUVSd2Q1N3JVUi9TNUdpdTdDMHJzZDhWc3YwNW8vc2ZJS0VRRm1KdmFEcDNlUi9yT2pSbmw1UXVvS2FjQU5iR2lwNGZ2a0hUTXdiL29PcTRJK3VITnUxTExhamhJMG9LSVhmNVVOb1hSTVFEMDZrNnZSYlhVRS81ZE9qU1lUSGpYdlVRSHpwS2N4ZVZKdzhySG5kQ2VOanRUTStqTlUrKzBsZ3dHTnExTm5GVmN2dXN4RWFLVFArUnNQWGp2OTQ2Zjd0MTk1T0tCUzVpeGpqZlN1ZG4rZnVrMGxxMlhMT2VHWXRiOVI3bUQrM0daUmkzejg4eGpGNzVISHBsRUt5dGMwbzAralZMWmhIVDhuQWw5QXhielVsODFKQ3h4eWYwREdYdHRVeG1vdGpCN3Q0ZFNPc2pWamdGU3l2aURsMng0NThyNWFGVlZVRlFtQkZuVUwwNXRmZjNIMzdvZzJlbkJid2NOMEowd0JCV3RESnlWS0pTK1ljMEY4NnVTdy9vUE9RZDkydnVuNUQ5VE9VL0tPRTFFbFpwRTl4UTk2RlhiLy9kOXR4Q3FzVkR4TzhaRGF5SW16d0oxODJFelFmdGNLRWtDVDFnRGo1bDBmUWtoWFNvOUF6RllQdmFpWjJZZ3JSRWczaFZUdlVxU2lJclVlcnZBa3p2ZzJWOTBlbWova1o3ejB3bkJlLzhIUERYMnZadEg0emJuZlBMckZ0Nk9HYUNpbjV5MFUzOHN6N0x4TnJiZ1MzbDFHRFJ2RHJuLzJTZTU1L21CVWJpcEZ1VHg4VEhYYmVtbWJORU1kdk1SaHNCWERITWpHR1R1UGZSaVpLQ2Z5cWlWOE8rb0NKdmxyV3JabkE3VU0vSk45WHoxTnJKbkpBMFdMOHVzSHYxeDdNZWFrdnNhWTJnMWVONDRqMXdxWTd1R0lOcjlzeG9xRUFXZEVDemo2aWtycXl3V1M3YzNsK1pRbUZhZ2hTdWJGMlNFWlZDQ3hiSTZoSGlObnc1THZ3emlLVHE0N1h1Zmh3RHdIL3J2dlJOaENRR3JPcW0wbGFVRXorVVVmakh0OTdBdnlPY0g0aFFNWGhvT0U2aDZoa29xdWJrSFdLNGtOU3lTcHRKdWMxWTVjNXJuUmhjc2J3eDdsd3pOL3g2ODdsU0Y0dHlwNjVuM1BEbEZzb2FSekM2dnFSM2NKbCtYKzRxOHZYRzV1YVdMTnBQYlpsTTNMd01GSlNrcnNlYnplRXd2Ky90ZGYxM0ZZVkhoZUNnWmJCc0ZnVUl5Y1RiUENWV1ZUR1hMenZTVVByUlMzeVkyK1cvSWllVWhGVEh0WWFRL2tzT291TlJsR0NURmgxNk84b3BYRHJMbzZkdUE4VDgwZnd3dUlQeUU1S0o4VWJ4Ty8yTUR5cmlNMzFGVXdZTUl3dHRSVjh2WEU1a2NSRmR6djJtSjNpNXFHTHhuRFp3OFZjZis5eUJvMU01WWtyeG5MT2ZTdllWcXFEbXc2SWhBZnRUQ1Rjd2RUclVtR0dkRTdlcTVwVFoxWmpLVGNpWnJMdC9qTHEzNmhCZUNSYTBJV0ttOWpSQklsd1NncithZE1JN3IwM3diMzJ3ak4yakdOWHR5VVVUcWlqaUF1ZThwWlJxbjNKSFhQbU1uWEFMbHk4Y1hJaS91VnQya2xtSnJzaXVEWEh0bmRySmhtZVpselM2dEdGRERWdFZzeXVxa0ZGWThpc1RPeUtTbVJlTGpJNUNXdmRobDNlTVNmc2tZRm42UkpPbkwrTmVVMHB2RFFjNGpHTFV5NTVsVk5tNW5EUjVGd09MVnZKcTRhSjBqVndHU3dyR1VYRWhyZ1ZZdW1tSEhEVjdVU2EvdmpqMnpGYWp6VElUQzFEQ0hqaDlSQXhPN2JyVzd5ZmJQTG5QbkhtVUZrV1dsb3FzNTk0Z2NDelR5R3UvUTI0M2NULy9nOGFOMjNsODh3Sm1IV05DTDFuUkY4bkZ2WXROOGJkZk5YbCtXOXhBK3FyTjFDeDdHRVFrSk0vaVB6Qmt4SXhxdDBydEJVQ3dva0FtbC92Rzl6Y1RuQ2pqTTEzNHRqZmxJUVJDV0twN3RxR2kyL3ZGakRVazV4Um1rMDk1MXF3TEkyY3BBWWV1K0FlMWxUa2NNVi96MlY5bWVEc2pXNzJxay9oMmsxUE16aFNUbHpxdlp0TjVaQ3ZoMU50UXZjVm9LS1N2RXUzb0NLSk85ME11RFJCMkhMdjFlRFN3SWpEWlltMDFmdXVBVmRMRGtDYkwzNzZwcG5kSEpzbzhYZ3RRdWk0WENsSTJYWE8zK2pIMmd3NGJoTmQ4UkoxR3o4ZzgvUmY0QjB4ak1xcnI4R3VxVU1rQmJFdHU5YzdxdU44bis1dU9PL2k5VVMrejlkL1R1bm9WT0RIWmptQ2Vmb0FSaDAwZy92dnZZUEt4WXNvdWVkZXFqNTlHNTBrSUphWVZ0ZE9Ic2JSVXpMd3IwblkxYzJkMjlYeklpYUQ4a3p5NHd0cEtwbUV0Y2RwbEsycFljM3l4VXkwMXJFdVI3Q2x4cjhMR0t3SkVteExRL2RVRWx0YlFiU3FEbTlXTGNxVzdGYVIxNDhpUGlNd3lxdUpyZDJFSFFwajFkWVRYYkVPWmRsRWJZMm11TjdMZUlLVFAvL3FLKy8zeTNEMXpDNDRtdXdReW93QTIrc1FoTzVQM0JyWnphaHR4VWNMTm1IWXlybmNYdGZZc3JVZTZWWVE5NEcwdVBuY2QvajlLZk9STG9nM2FMZzlGa055YWtrS1Jta0lleENhMmdtVGtGS3l6ejc3Y1BIRkYvUFFRLy9nd1dlZlp2bjZLSGRlbHNVZUYzb0pyN1JwZU1jaEZ1Nk5VRy9SS0g2M0lxTkdFSXZaemxiVWRXcWFxc2tPWkhEaHRKK3h0SEk5bFUxVkNKZDM5M3hzWGNkNzByRzREOWdidTdRTWJWQVIzbU9QSVBMb1UwU2VlcUZiTXQzSXVuVUpqRlVqZGIvOThJOGFoU3N6azlpV0xkanhPR1pUVTUvc0Q5L2hCNU44N1JYRUZ5MGg4dVo3Q0k4SG1aMkZ0V1hyZGlDcmg1aWRNZ3k4T1psVUxWdEowaVUzODk2RGYrUVhSUS94NmhOUFVsbTZsWDJPT3BMSG4vd3ZSK2Rrc3ZHT3Y2Tm5aemhyME1VOG56d25sK1RTOVJ6M3hGYmViRTdtMVdFdXNHMk91ZjQ5aDVObWVqNUhtU1c4YVJpNFBCNU1VMGZEb3FSNU9KdERnNmd6TXZES0NFT0NhNm1JNXUzVWZ6aHNzblp0QTE5OTVlRHFhOWZXRXc3M0xabXdCa1J0c0JDY25kUE1TWTJWUFBtbld1NTcwYkV2M1M2SUc4NGNuM3FBNHNKTGh2SmM4cVhjVzNJazBMK0V3bzNQMlYzYUFOTGpReFVPUU9vdTdBMmJVTEZJajJ3VDI3YXhPcWdCVm9CeUNkenBhWGhUZmJ1TlNRcmg4S1NOeXZVd01OMUZjWGtjVUtRSGRNYmtPcmJENWpxRDR2SVlicjF6RExRL3grdjJKNEgwMGxoWGgybTVjTHM4S010a1ExbWMxWnNhOGJna3ZhUVY0NGg5cHYwUXlpOHhLUlpsbS85THFIRWhLZW1QNFBHbjlQaVNNeHVvTWQya2FrNU9kNzNsSWtPUDk0aU8rUEdQSm5hTm5RcVFtdE9UblNDMzd6cmZiVW52YkJ2REFKeGFwcHF3aHdPekpwTG1TU01lY1NWRVpIcy9UaW1GTGR5a0R6MEs0Y21rdXZoeEdwdFdFclJMK095OWwvbnZCOG1FR2lRZ1NFcDltbFAzcTJQUHdTVTBoMDFjS1JQSUhuMG1TWGt6VWJJWHZFWVdvRU5nYitlU2dPaGlONWowakl3Wk9QVXdEM09uNkh5NXpPUTN0OGE1NENRUE0yOEs4K21YNjVuM2VwRERqV3pTTlIzVFZqMm1vcEZTWXVOZzI4NkhwSlBubmZoUHRjWVFuUTVsWGc3NktDY0dhQmF2eFM2djdMRGZBVmFvM2ZtZGxwbUdVaWIxc1Vha2RNakZjNnd3R3ZadThTeDRQUnBKQVJlTGlxdXhiVVUwYWxDUTJrZzQ3cUlxNUNmZzA1RlNNSGxVSnFHSTJhbnIybTN0UUcvYmczL3U4QndzWDc2U3B1Wm14bzBiellaMXRUejkxREpjTGpkS1NveFlsSitmTXA3QlE5Sll2bTREU2NGS3hvMGQyK0U1ZVhlSnhkZHJtN2o5dExXOHNXOEROMjRid3JzVmFkU0ZtcmppMmJ2NFpOcEIzSDdOYnhnK2V5N3hEU1hPQmU5ZFRmUjF2OStWNlVkWGtOY2trVUM5VXJ6bVZTVFpNTVowTGdhclM3elhyS3lrOXVHL0VVbC9IczlyVlV3Lyt5K1VUTnlUUnk2L25PVUx2cUczMTVqb1YvL3pHMHFqRW1WTGhMdUJNNVo1QVlHeWFubjV0VEplK3lhTi9LQkFDUW0yNHVyaEgrTE5QSVd0Z3dhdzkrQWp5Tis2Z1QwR3p1ZnFaZnQxZndDRndsWnV0bXdhaUd0RkJ2bURhN0dLdjZReE1JU3lncEhrbTh1N0plTHMwaGZ0SytoV0tid3VGMEpxckYrMmxQMEhEY0UxZFNaV1RSVkMwMUZTb2xkVnNhNTBEVEo3S0Y2WGw2anErQzdtRm56QWgrQzNnVnpPR0RHSGhtQXE0UXliMTB5ZEpWK0pWcDR5WFlmTnBpSXkzVVFObGFRMDEvUGJOWi9oUmhCQnRWdmNucTRiQ0lRdWlkYUhXVjNwWXNTSVZNaVpTdkdXYXVKMUc1RkJIM1lQV01EZFFoQlhpdTlpc2RZWW9nVEd1ZDI0ZXlJbCs0a3owdDNaNG92RTdSVVJRY2EwRUtyQ1MvMExXV1NmWEVYb3d6UmtENDZLRUE0Zzl2NnlPdTQ3ZXpoelJxVWdCQXpPY3BJaFdnTDlRbXlQcXdhOU9sSUliT1hVcSs2NG02Y042cm80TTFTeGxxcmlSd0hJbW5JMmdaeStUeFJSS0RUTlJhaCtHNlhMWCtIWUUvWm5SSUhKb2dXTHlNbkxhZmRlL3cyLzZkc3Z2LzE2QUs3ODB3bzJObnV3U0FaUnpYN3Z0aVQ3bC9QS3F6RmUremlkd21BeWtnamhrTUcxMTg1SEtRbllEQnVXaG1GWXJGdFhpUkE3TzdFU215V2tvNkJQeUlRQmJuYS8zdUVlRTh1Z3BqSVZxMUhIdlVqakV0OTg2TUdsOGZlMXJvWHNWRllpTkJTYTh4NUI2KzlLN0dJU254RFUxRVpZdExLS3RCUVBtanlFK3o3VXVXUy9SeG1XVnd1N1FTb3NOY0hpa2hqTDF0azBoSjJPWHZ1a0dVdEtaQytvN2x0dU9FbUxLYVkwMmNRMWgweTRwUWUzRFhGTnNFZVRUVnBNVWVkMkNDSytMOGhOcW00R3J5dmtHQWZ3c3BlN25VekdIZ3h1WFVQVjkrUGVhQkx2OENFazd6Y0hzNmFPOEpJVnUzVUxoS2xNUEpxYm9CN2d6YXI1NUJSbjhmYzlia01Cazg2K3FOWEFFY0NEeFkveVJ0VjhpbndETUpTQnFjemVibDlINlVqRmo0VkpldFJkdDdJNUlqamQxcmpVRFVrVnptSy9aZ25xbDBlSXZKL0c1SUNnQVJOVENNeTRRVzVWRmVQVGM4bXVLbWQ0YllDRzVqQlNrKzIyeVRzdlpMSjh1Y21pRlNaTGxzZFl2YmFPTHovK2xDOC8vcFNMSG4yU3IxTzl1Sk96bURoK0hHUFhmOE9VMVJVRWYzOGx3K1BKK053QnBENEJtTENUa1pSMWFXM2ZUc0RmbkIrVGJydXhiL3ROSlA2MXVKdG16TTNFdEVidUdiMkJ2WFBxcVdrY3ltdVZWM0hFV1FaSkFrbzIxN0J3Y1NObi9PNEFKby9heXIzVDFuTjhialcvS2g3Q2tycGtjQm1kYy9KSjJmODNvU0JBaGJGSUJ5WFF3NStnQjQvRmxobW94UytpalpxRk92cGM3T0xQWU1NU2NQdmFBUTd1azA5cTM1dVVXS05HdzlaTkNaVFRoK3VnQTJIMDZKNkJtVGZlNERoc2pVdjdYVjRLcFJCMjM1NVhJUVFxWmpDOEtKdFJJeVNlU2h2WHdyK3o1OUJNUlBOd1FzbGVtcjc3am0vdStETVRiNzZVZ1lQaWpDaktZczJXY29UYjFYUGd1NmpJSWFZdGExUG9VMVlHcWFuT2E5MDl2dzVyRzJES2l6QW9GZGJVYmplZVd3QXhsZGdlSVF1dS9UWWgyaFFNQzRKaHc3b2FFSjcyK0pPdEpDNlBpUURPK3VncFptWit5NmprdFN5dkhZMFowZkdrR0Z3ODRoRXVLTDBmM3gvTEtWMlNpcUZjQkh4aGNnOXFadFZ4MDdqVXVwWjNGdThMUnR1aklMb0FPYlIyZHJORW9rdHRPK3RDYjBGajRkU3hEL0REMDVOMUpxWHVUQ1ljL3FpQm1qdTNZc2RzaEV0MGJxTzQzYzZhQ0FFNU9ZNHoxZUpVNWVTME9IWlFYNSs0N2JELzJ6WC8vSVl0M2Zob0F3SUN0OGVGMytzaUhETkFrOXZYV1pPRVl3Witud3ZkNDJwVExPdUFxWjh1cmVHVEpUVXRBc0h4MFdVLzNtU3FnV2VBc3dDeHJiMzdIbVZENkhNWHluUWhOS2N2TGMzcFM4VjJUVFpJK2RNS3RNYldiK3dmelNMQWprUnBNWVR0Y0FTaHlkMDJpak56VXRwb0wwWGMwQmt5cUlFdDFjbDh0bmsydWJtTkZHWmFWTVRUY0x1TWJndVpxM2NZdEcwcmlqZFU4ZXlieTloUVdwY2c3ZGgxUFRHa0tNRE1QVEo0NnZtTnVJSXVkS1d3NGdycGRaTFNmY3FGRm9pUUZGU005M21Sd21aS1ZoUXI2c0VqQlIvVmF2eHRrd3VmcGdoMjRXSXB5MEJaY1JvV1AwZXNmQ21odFI4UTJyUU16UU4ySEtRTENrNTVHczJmZ2JJdFJEZUZ5QzBYRWdWOWJocWFvL3oyd2JmNFl1a21iajMzUUlZUHpPNDF6aldvbi9idks5OXU1WnN0SVNaUEhjT2Z4K1R3d0hzZTZwdkNuSHZ3SUx4dW5Tcy9MR1Z3SUlVOVJ1ZWl1WFJXckM0aktaTEdsZnZPSmFZTVh2amNUWExBWlBiRUFwb2pjZjdib1pXa2lLOWRqMnY0TUlKdXlYRmprcGljNStXMTRrYVdsRWR4U3hjdVRldVovdDV4TDRrV3YwRzBjZUJGZXlMRG5yU002em9SU0FJcVMxQjhoVGRlUjBsYW1Da0NDQndPR1VQb1BBSjJMUUNYbkxKLzUwRWxaVE5sOUVEV2I5eENBSXZnWHJQUWtwSzdIdmZkTjNkcGpoWTF3Wm1yQlFzemJWNlo3T0dRS1NOeEdXNjBsSjZSOEt1bU5nZzJFTE9oK0RzdjMzM3VKcjhvd3F5RERZTCtCQTdXaTF3M29YZWNKSXNHc1hnS0RSaytyRDJtazVrZW84bjdDYVpoZ3l2Y3ZUNVk4V3Evbkl1aWUvN1E1ZXZ4Y0NWbXJCYUVRSGVuNGZabmQ5M2hEb1RDclhOc3ErMy9KZjZtREJNVmpUbC82NmxLVmlBMGhVeXowWElzcDZESEZJaUFRbmdTQ1p3dC9yV3dzSVhqcXlza1VnWHh4d2FTVlQrVWdkdEdVWnM4aUc4VGxPT2Q3WWVGaWYwd2V4ZjNnK2x2LzBiTGtuaDgwSlFFMWRFQUplVjVaS2Myb0lBTjVYbFVSUU0wSlNud1FjeVNhRnIzc2tJcEFickpkNXNHc3FrMkhZTE5DS0ZhRTUyRXRGSEJaajVZTlpxYXBpVFF6VTZUb1A3MThzS09aVU5DemxUVmhYbnFqU1c5M21lTEJvMWxjNjVDRzdVdnA3a0Viemx4Vlg1dVFuMWptSC9scEZNMFlnYWVwaWltQWpzV1ovOVBWK05adTVYQnJqaWp3K1g4ZGVZZ1pLcDMrK1VvdllvbEpHelNjSXhjVFBZZW5rNDBGdVB6cUl0NHpJQWVGR0M1cEdSY1hvQ3Fab01WNWUzSkpJdlN2R1FGWFh5eG9aRjRGK1RxZi85a2F6dTVZQ2xZdktXSkF4TC9Ec1VzWHZpdWlrVWJHM2NuTE5wbjdjM2gzL1JwZnp1VnJncUprQXE3T1lTU0VpMHA2S3h2Tk5wT2dscWhpSE83ZWtvU0dDYktOanJFMFhTaHFEVmMzRFJ4SmNsTk5sY3NINHV1eC9pNktwV2p2NXpGQmMrVzhNZmsxUWpna2p2SDgxRGhFSWlhYU80NENyQXMwZkhodnUrKzlycFppUGEzNm43OTlmWjkrZDU3ME5qWS9uV2x1azNDYUhsMWNNRGd0Nk5yeEtTVXFMcDNXVHJlWlk2VHVxRElSVndYOUFTT2FMendkenRNRE9CU0VCY295OFpjdFJyMzBVNUh4cmVMYUx6aVJzZnVkaXVIOUtzVGVEUC8xK0V1YlVGTHdjZmZPRTc1UHROZGFOMlpKeTJFd2gwUW1JbkUzOWE2Tlo0QW10M09pVWlLdytsdWpTSkFlTnpkT0ZxaU5hbS83c1YzQ1MxZWl1NUx3bTRPdDhQUUJJS2FSMTRnODl3VDBMUFN1cDNmUnpMMzcrT1QxcytFd3VWUE9WaTJoUFh4QkViUnRGME9EU3VDVVFsSXFEZ0c2emR0encydnJYSW9Pam91Z3hBT0VaVFMyTER0dHp4MndpQUNiWmNrV2s5eHhYTENacHdwQXlhRHIrdTV2VEd4SVU2NTUydGloc1hRbkNDTC9uSUFUMysrbWR1ZVg0blFKSTljc0FjM25UQ21WNC8vMzBzVHVNYkRYN01sTEZGSWhLdUJNNVo2SFhqVGJLOHZoQlJnS0FxeWJESTkxV1NQMTlGOEdpc1dSTEZpSVVqcW1RRWcrSC9zdlhXY1hQWDEvLzk4WHhuZG1YWExTdHdkQ3hBZ3VCV1g0b1YrS0xSNFN3VktqUTlRbzlDV1VxeUNsZ0p0Y0E4T1FVTGNQVmwzSFpkNzcvdjN4NTNkWkxNMm0reUc5dlA3dm5tRTNaRzljK2N0UjE3bm5OZUJZQ1JBVGYwbXlySVN0QVdEZENZeUdWTXlZNTlDLzFJSVZOT2dkTm9ZRHZCUEpSYU5zMjZzZ1NvdHpEUXVMQUduVUZBUk5nOGdBbDNBK3dFZkQyM0x4aGh5aStmcVBlRVdEQXZhTVptU3BYR3JrY2ZuZjQveTdUZmFPZTlHalV0UFVZbUZkcUNKTFl4Uk5NYm9PVnhhTW81QStUVFd5ek40cDlQSmk1VmZzSXIzK2dOUXNNSWhzcjc5ZmZUU01aaHRMUmoxdFdBYWpIcjZEUkNDenIvZFIvQ0ZmeURjL1JNc2oyUXN0MjlmQ0pLbTdDSHZ3WDR1blNURGdiM3hKTlRWa2pSdC9FU3ZyVVlsQ1F5ZW9GWmlCZnE5MzN5bm13dU95YWEyZVRrQ1FVbitiQmEvR3FNNUhPMjN1S2FXL3pmMng4akswUHJWeGR0cUlsUTJSSG4yWFR0NU9ta1VNYnJJellSU3oxNURWY0tTdU5ZMUlZNDRBSzJvQUZRVjNlWEErUEJ6RkpHR0UzZlVUd2M0RzVKdDJ6dll2cTBEZ1BHanNwZ3dQbXNRVW9vN1JoVGZLYjNuOW43bE9rQXdFVVVSQ3BhMDhPZ3VPbUloTEdtUjYvYjNuZHlhU2dyMGFHNzZ6RVMwTEZBVTRrdSt4TmkwRVNRNHBrN0ZPZStRN3RkNnk4SmR2eDQvdDZ5WG5KOVNsb09vc2ZONmN2MXVqcGxWUWlBY1Q2dHh5YnN2N2FlTnJLYVlPVXdMcmJTWXdvVVBrYlhrMnpSZCtVUDRJR2JQbE05SjJSZnY0cHczSitWY202QXFnNU5Zai9Ub0twS3c1SzZmd3pDTVlKaUdwMTRsdXJNR3NRZEFFdDFaUThOVHI1SjE1QUZvdnY0TGd2eTMzOTduN1NwQVRGVjVkOGNPempycEpKQ1NkeGN0NHZpUFA4Wm5tbnZXQmFZM0RVbUJOaTZPa211QUZGZ1Z0aUdvbFNVUXVRWnFXUUpqc3d2aDdIOStBcmg3SFRRaEpVbVh5dWFiTG1Mc24vOUo4OUh6d1pJNGxtMWh4dzBYTS9tK1o5QmpwazJRM2MrbFYvem1EMHh1cUVCSXlkTGljUWhnV3IxZGRQOUY2VmlXVkVvT0s5MEN3T2VWazVEZkZFdzczaTdtM2YzOUVzR0s0akZ3dnMzQWVlaVkrUlJrRlBMNEYzK2xKS3VVbUpFazArWEZNR0k4K041dmVXUHJxMXkvNEdhTzlSK1F5aGtSUTU1WEplVnFtb2JLdlB3SVA4MnFZc3VMOVZ6NDF5aUJpRVRURkpaOC9nbmYrdFlOYk42Nm1VdlBNL2pCc2Zsa0xmS3o0MVcxLzRXVUVwR1ppVkpZWU1jVmRRZEtTWEVLWk51N1BhdHBHbGRjY1FVVHhrOWd6UGh4SkRwQzdQanRmVmpoQ0ZwbUpqNXBFQTkwMHZyYjM1Ri94RHpPUFBkY0RqcjRZT1lmY1VTYWRpK1l3MENFbmpadTFOWDFxRFBKeHZFeldYM29nUWhMc002S3c1cGF5RlpzcDNmUUc5Y29VRG81M3JHTWY4Uk9RQ2ZKTnJPVWVpdWJyN3MrWUdWd01vaGt2NmR1b0F5UFl3K2Z5bTkvZUE1bFJiWnZkZGdCNHdsRzRyejJ3WnJCRWFRKzdHS2I1RjVnWXZISGpTK3h2bllMRVRQTzIxcys0Y0NaNXlOTlk5Q0dPLzNHRVpNbVpTVWF5Ly82SEJlZWJPdjU1Yzg5UjlsVk4xQmJhNkxyQTVNVWRoVVZ5RTdCK3ZacDNUclVxeGhraUtFWGhxVkRnU29sYUtxZ3VkVmk3UEVoamo3Q2dlYlNLU21Xb01RZ0U4U3JPcVloVVBmQS8vOSs1WUllY3RkdG1lUWJjWlM5cmF4NjBzWUpUamh5WUJMRGFEVE10clcyVDNiVUlTZmlkbnZTdXZ6MmtITkVWS1JTWHZwL3p2WVdlNFRuOXRtTUVCQVhzTTV2bjYwWkFRdUgvTStyeVJhQVc3ZG8wR0swbHVjUk4zeE04MWFqYS92eTVWTXlaM1VueWxnUDFlVzV1TFVrcHE2UmZLY2xwVFhsZjl3OEtIdjJkeDNDc0N4SmUwZVVSMTVhaDJGYTFEYUhlUE96SGNSaUVvUWZ2OUxNbWJtdmNYbjVNZzZhVm9UdjROdFJabDJJNlMxalUzV1VqeGV1NWEzUGRyQjBmU1AxVFpILzJuUDB3L1lKUFI2YjBxVEFsVStodTRqT1JBYytoNThqdkRZeHhUKzFieEJNQk1oMFpORVliYUFwMW96YUs2Zjh5KzQxY2MwTTRpaU5ZelRyZUEvcndHclVvR240OTRHMEZBb3lJaVNOVGpxc3lieDF5ZlVBSFBTblg1T3RiS2JBblVsVnlHUEg0dEp5S1NRSWhUVkdDeWNWamlld3d1RFBYN1J6OFpFNlNjUGk5NSsxRW9rS3BIODB5MWVHZWhNYjdqWW1qY2tWQUE1TlplbmFXdG82bzJpcVFpQVVaM3haRHZuWkhseXBCcUhqU3JQSjhEaHdPalNXcktxaHVTMkNxZ3BDa1FUank3T1JFcW8rNm52UE80VkpyaGFuUHVteGNYbzF5ZFU1ZGdQajJ4dG4wV0hhRlMvRmVwVE9oSTVNQ0NKT2RkOXNNeUhScGNtY2hxVVVWcjdERW1VSGs3VlpOS1dFcHRpRGJscjNaWkNWNGQyblhKMWVmcG9sOW8rdzJkME9sSkl4MmNWY092dGszdGp5R1FuTDZCMFg2dWUyYnVzbmhpLzc2ZjQ0QzFlcUIzbmZGeHlVVUZoQVBCb2swbFpQS0J6RTByeTB0VFlUQ0xhbTVXVWVsVnlHUU5LMHlNR1hIeGdjb2krbk9lTEZDZ2djV0poWVpBU2Q2T0lvVUZXN2FVVWFTK0pRQksrMmR6RDI2N1Y0RzF6VVZ4Wnh5aGRieUYyeGdmODE2cWl3NG5oUTJadldENmFsOFBiYVNjU1NkdkhwQit2SEVHK05NdTN3aWZ6bTVQRWMrdm9yMUQvM0ZwYmJqWjdsdzJocW9lamdBMm01NVR4K21MMmVWNVk4QzJpb1h2K3U4ck9ZQzFRSk1RMFNMaUNJRUJKVlRhV01DZ21HQTZJZWtHcmFPRVQrajEvb1Z5Y25kcXdrOHFXZGUrSTU1QXdjNCtiMmYzYitQRG1OZVRFSkoySUVZbUVjcWs1anNKV09XT2dyYmFJN0puY2dtOWNpbVFpenNxNE9oR0J5L2hnMGgwNDZDU3NqVlZjd1V2bjB3dVhFYzlnOGNtNjRDTDJzbU1Dakw2RCs2eTFPcnFrdW54cnYrTjdzV051eEh5Ni82MitmZVlwZlBMTjlmZVBMV1pQN2dmSVV4aFRaK1pmVkRaMTlFamVrTzA2ZWRRdU5NY21kOHdUM094VzhGaUFFMjg2VXRIZEd5Q3JJNGNCRE5LeXdnV21LdE1YNkxYdm9tQ3NHMGpIUzR0NlZVZHRHVmUzUGFPaTA4N0NGMmdmOTNtNE5oUVdnS3ZvK2wva0tzVXY2dW5TVnk0K2Qxa3ZVNjdxQ1RDU1I4VGlXdFBoS0dZWDdKT3V3RUtwR2N1TnpkSHp4T1BIRkNkcldnbFZ2a0RYZmd6YjFJaHRiU09Oc0thcUthWnJjOGZOZkVGTVZ6djc1TC9obFppa1g2RDRDcW9VMnlpSzhTc016eThCemdFbm9FOTIyQnllWVJEYXBhTzZCNk1Fa3FyUlN5SUxPMlIzTG1GenhHazNiZDZJNUhXbkYrWTRlOUFzb1dORXdwODQva2JtVFp2S3QzMzBmM0I1SUppbndaM0hJMUxuNE12eGdXVjBSOWozbWQyU0trbTg4OGlwY1VoRFRkZkxHamVmcmxzWEc5WjF5ODg2RWNFU2JhYXdMODBKaUF0Tnk2NWsvcHBtNnNCOTNob05wbzRKOFdET09UYUZTY2tVTExUS1h4RzZOQzlLdTFVZEIwV0RHbUFvZTIzNHhSMHlWVkxhWGtwWDNLVDV6QlU3bldDTFJubzZtcmtJeUpqbi9PQ2VicTB3KzIyTFFFcks0NWVFUUwzemg0V2R6dC9DMTVyZXhWQ2NKeFpFV1lXWXZ3TnlpWi83aVBwOW5rQ1prKytEbnh3aG0vVGFUamluZlJNNlg1Q3g3bWRZRG8yUjluc1Rad3RCSmhTWGt1bHM1YmZScjNXVENQZlJTM2lybUYzMXFFd29QZHArT2dmTnJXb05CR2lNMUdQRWtlY0ZDc2dZaU5FdHpxdi8vTkg3aG5HcnJDQUd4V0pJTFp4ZHk3RlNUZ0Nad2pScUhpSDdPdXRPbTh2TlhOK0wwdXJySnpQdWZwNWNBdU83dVpTTjB4M3VIKzRabEJ1OUZqMlZKZkI2ZFZpWng2ZXAvL1lVZ1lTWlpYYnVWOHB4aXlyT0w2SWdHbVZvMGhuQThTbXU0RTh1eWFBbDE0SEk0MEZXTnFLVFBoZ0x0RVlNL3ZseEphekNKa3EvVEdvN3owNmVicVc5emNNWUJYL0s5QlVNbkV1Nkt5UmdKaGVMQ0dMODdyd2E4T3RIVkVaci9YRXRrZlJqRkxiQ2lFV1RRUVBIN2NSOTBFTjRGUitFOTZpamMwMmVnYWxxYXN5MVFFZDFOcC9aMlBIMzAvWHZNczBCVFRHWm0yMDJpRDh6YnpsK1BmQVREVXRPU2p5ZDM5WWVURmxaTkhZbVgza0NiTTRQazUwdXh0bXpIREFTUjhYaWZka0E2NDRiN0Z0T1ExREFzRmJSMkxsbWhBVHJ4WkRPUFAxM0RzeC9sVXVCTWtSdGk1MEFIRzVOb1JabHNiSEd6WTRlU2loM3V1WVM3NWoxdWFUejBqRTFJbHJCYyt6Uy9JMldUWC9pckQyMGVGdFBFbVp2RGg5RVFCeHgrQ01hMDZRaE54WDNFWVZSMXhMamluc1dFR2x0UmREVXRzKyt1NmQ4ZlZxbndlMzZhd3U1Nis1Q0tJb2pIbzJ5cDJrbW9jUlAxclJvZ0tLdmZ3dUtWbnpGNzBnd3l2SDVidHUzRlByZXd5WVRmcmJVLy9QZ1N3YjVHTVZSRlVPelQ4TGtVanAxaTg1NEVveGJCbUVWVDBNQWN4QTVvZXZ1VC9uV3Fhc2RYYytiYjhhcTJUMjFpSm1tbSs5MVRjcTRydDlaSUpkNmFGcGdTYVhiWktmdXVUVVZLS0d2T1hVaU43Z1RpOXMrdTU3VFVjM3M2T2xORyt3YlU5anVxcW1odjNJcEVvM1RjR01hVVRpZTk0TE9nOG90UFdQakdDM2lzTW5KV3ZjMFpWMTFOMmVzdlUzZjFkU1JXck1DWjZSdXl2Ylpudm8rVWt2YVluU2liN2ZMMXdpa0dlNzByMzhlVmFkcExaa2pRSmNZbzhIbmhuWHFMVi8xVEtadDJHZldKdFd3TTcyVHNxWWN6ZHU1NG5ILzZKYzJ2UFlvNmFnb1p4WE1Jdi9VbVdLa2k0ODdkL05pb2dwUUQyOVVLRmo1M2tqdm5WL0wzaGt6VzVaNk04d0NUVThTRC9FLzVkcjczeW1pcWhia1hHQ3dvS2xnaFFXVkxKdStWTDhZb3lHQmE5U2lNb0VUMUM4eVJwaWZZRHlPK1pTZTEzLzBWd3VsQW1nYVdoQ2UzbFBISis2T0hHSi83SElDN2YvM0kvdjhTVmhSaHhwQ0p1cFJ0WHd4S05DMUNZUWxFb2tsNzd5Vk1wQ3B3ZUJRUzdSN0dqMm5rSHo5OG5rTVBxRUYyMm5hUnJwbVlTY0dvNGhBTHBsZnh5c2ZUVWYxUkRMT24vZWh3T05BMERTa2xtcTZoYS9xd09nRVpUZ3ZxRGRxa1NzRW9FNms3QVkxb0lzcnpHeitnUHR3SzJyNDI3TEhRSmsvR2NkeFJ4RjU0RmNmUlI2Q1dsYUNPRzQzbnBtK1RYTG9TWStPbUFXM25kYWVjMGdNYkFLaTk3NzVkT0d4VDA3NWhTRktpbGhUanUva0dqRzA3NlB6NVhaak5yWGFOaGFxaTVPV2crREl3bTFxUTRXamF1a01tREJ4WmZrS3RiU1F2K1M3L2Z1QXVmakNxaFB0L2V6ZEdMTWJGNTU3SGIvNTBIOSs5KzZkVS9QUzN5QXdQcXE0ait4RUtpNjBvbFE0L3NST3pPVnVIZjZ0bElPQ01nd1VkblRIK0ZGVW9uenNSUjhEZVN6NnRFNGVhb0RXZWh5VVVNdlYyc2gxdEhGZndGczlVWGRITGJ3bUZUZDU1cjViYWVwdUFjOE9HTmtKaEU1dDVTK3l6cmhSQXB5a29jNW44S0xlTnpDVk5YUHVISUN1Mm1naGhweXNta29JOHYrVE9hM1RLVHp1Sjc3YmR4TExLNmFCR2Q1dllrZUZDYUwxdEFHSHNjT0svOXR1czg1WXpldXg0TXVzK3B1UFBmNExFNEkwMkprNHU2OVo5ZTlMcis0U0oyZHBLdUVQdTg5SHV5c1daVytabVIzTUNUWVZ4ZVU1OFRnVk5GVFFHRE9hVXV0blduQmpRRGg2cCs3VWsrQXFtTUdydU5WU3VmUWxQempoSzU1eVA2dlR3eDZmWDhNU2o2eUhMbVY3TzJGYzlWSlZnSUVqRnpoZlI2cHB4dGpqWjVuMmUvSnpSRkpZZGw4WjVrTFFrWGZ5aGFTeVg1TmdWQVUrM2xmQzlncDBVT3dadkVuMzFJMS9yZDQ0THN0eGtaN254KysxODBVQm5sUGJPS0UwZDBRRWFmcXdlb20xak81Q1JoRTVITkk0LzIwR21NNXR3SWs0b3BpTkV2TWYrQ01XU2ZMYTlrVUsvbTVxT1lvVG5hUEtrSHkyK0RDMWFoZHBhanR1d01WSFIwbzRhclNJV0J6WC9KRExHZloyczB1blVka1NvYUdubDhBbEZnd29ieHhnRDU1UUV3aXZ4THJEbk0xbWpJY09DK0NhZFJNWEF1clE0WCtHQXFTcVB2UlRuOHJPYzdLd3grYzJqVVFxeUZNNDV5Y0dadjR1d2R0a080bUhieGh2ME1EeHYvN2k1cUI0cDRZQk9FK3ZWQ0hFc1pIc0hTbUcrelhYVDBaa0NRQ1ZLUVQ3YTlDazRUajJlTGdGcG1CWldVM012WC9DdkxlLzBuSUFQVXZ1aysvUUtWQ3h5emRpZ2ZCNEQ0YkxicXdQc3FBNWlXRFpKdGRlUjVOUkptL0U0a3J5K2FTSWJHdk5Cd09JVkRjZ0JZczM5MVE3czlkaU5VTmdtMUJaczJiS0Zob1o2VkZXanZhMkptcW93OS85cEUrVmxkbjFCVlhXTUl3NHZJenZiSkJhSkVBNEdjT2c2a3lkUDdyN0dMcDhYT2lPU2EvOFM0L3kxdGZ6bWloQUxwb3poZjdlVmtyQWN2UFRGbTZ5cTJzSjNqamlEN09sSFlGcld3Tzc2YlVORUZpWEVkQmpiclBMSGx6TndTYml4UGN4SEFZT3Z6WVc3VDRGd0RDWjFxYXR4NHhCelpsUFQ5QkZqeDg3QU1XNDhOTzk5Y285V25kQkJrNmlBS1NXZHllNjJVS2paSG94d21NcWdCTVhKNUl3V3lrWjUrTTIyYlJTUHI4WktLSFJ1VGZEOUlpamIxRWExekIvVWdaZVdRakJhaUZJQWlZUVhLOGVQY0NnRWcwV1kxb1plSGJFSEc4RmdrUGRlZUlGZ1VkR3drc0pKb0RBL0g1a0lrL1BOcTBtWUJzSHRXeENxaG5QYURES3Z2Z0dyZWpHRjN1eGRqTEtpZi9nNEltQ3FZZklqaDUrZkhINE5OV2FNSjFvVnFOOURHenRBbjJEQlpCYy8rdkFCcHBvbW5ickducHdJYWExYkFOQVZGQ1JTS1B6NFR5dUkvUDU3aU1Zb2R6NzBrTTE4azhac2QvRTR1b1JDVXNydU9ta3Q5WnlTQm54eDRjekZ3eW9YbmwxcC8yeWtiM0l3YVlIbWdLSkpDVDY0cFJpSEluQmtHemdNZzJabkRHa09qcnRKQ1U1TlVORWM0eS92MVhIN2VXTjJFN3Q3Q2xIN21TbWozSHp0Z0Z4ZVh0YUNReHZpWnBhU2NQTjI0ald2QUpKdzJWRjRDeWFrQlJEdU1MenNZQkwvM3B5RXpXc1l4V2ZNVWlYekp2azQ5SkF4ekpnL25kS0RaNkJPblFST0c2QnlaUldUa0JvN1Y3K0QzeFhna3F1dkJUTUoraTVnV0xoY2pNVFlIdktCTUZFeGtBSk9PbnNtQUsrOHRBVWgzSmlCSUJVQnNNcy9KWllsVW1UamdrMmJXbEZWZGNBQzFFaFM5akIwOTNVMDNGdmU3eDZ4b2lwSXFMKy9ISkUyeVpuTkxQaitqSUZrVmhpMStXT1Vvd3N3dCs1QTduZ1RPWDZRNjI4ZVRPTUlPZ01KM3Zpd2tvdFBuOFNPam1QNXd6c1czei94U2NZVnRlNlRJemgvdHB2WFB3N2l5N1lUSEZ2YlRiNTJsSmRsZGZ5ZkdkdHl0UDRWaGdhT2cyS01YV0FYYkZSOXBKSlk1cktKSlFiYmlDTkpCTGlmaHBRU1JkTXdPZ0o4ZXQrZHpMdkZOZ2FYL1BaMjV0LzBVNVFVNkxXM0cwd21CR2FOaXVuVWh5c25ZWjlIZTh3aVQ1RVVxa2xNQzR4VVFDTkhTUEt6Vk14UU95MmRFc1dwNDlDY05IZFU4bm95bDRsRkV5a3FGOXhiL1RwSE5UY3lTWE1UbDd0a3dZa0xORTQ4WGdjTElnRXZkUTJTZGR0TU5xKzFrQ3NkbEcrVHVEbzdpSDN3UGxzL2lQTjRSR0hEZTRzb0tDM2l3TG16bUQxbkZyTm16V0xtekZtVWw0L2ROWTNPa1prNDFUMHlla0lDTGlINXpZeXQzREM2emk0K1VPRmZINWF6OUl0MnNyd0JjalA4bEkzTFk5NFJKYnoxZG9BWFB4bkxqT2xOTE1qcVpNWGhLL2x6NVNodTJUcWFXSDhrMUlvS3FvYXJySlFGcDR6bWtIa1pmS2tvZkZFNWxMbGFQOGptalJQUmp5ZVU5V09FUzhkUnN4RFIyWWpxS3ljKy94eGNXNWVpZi9nY1dyaTlUOC96d2NJRGUxM1YyQnhpN2VaYTR2RUVDeGR2WVUzcEtHUlIwWkRtOTFjL3VHcEUxaTNSMEV3eUdXZGJxVXF6ejdQdnlhNnJlenV0MHJRWVgrUkhFM0ZLcDg3RVczdzd0VHMyYzBKK0FTNmliRG4vYklySG40UnJkQTZiNnpjd3JpaURMVHV0WHVTOEE0RkJmUE9idGwveDA1OUNPRVdBNWZYQ1hYZlpyMVZYRHdxT0tSb2tKR3hwc1hWRUYvOXVmUUR1WFFOL093Sit2UXErYklQWWJuV29tenB0QjdYUCs1V2dxMG51V3ZjRG1vSjV2RkI5ZW5lbS9NblRQK0JXOVRkTWZXWXBEWXN5YUlubW95dEp5dVkwRTcya2lOK1cvcGdIdG55TGVLZU80clRBdVN2SmZtdmIxdjRWZkN5SmtkaEZtaEZJQklpMGJ3WFgwQU1ZWFdUQ2VVNzQ1MXlkUTNPVVhtVEMwVThEdFB5MkZpdHNJaHhpNElyUU9YUGdkNytEakF3N00zeENxc0Jtd2dSNDZpbWJxQ29VZ2gvK0VMNzhjci9vaHFvMGZMU3FzSUJvZ29ycU5oYk1HOHVMenk1RFpxY3lOVHVpTERocEdoWFZiUmpCWFVENVJNc210OWk5U1lzbEliOVRKN0hWaitKUVJpU3J6Rmxxa24rSkRZdzNQZTBpMFRBRW04VUNLeXgyK1U4NjZLTXNrbFVxWnNmZUVWS3ZxODBmNW0rNGY1bzZEUHNRQWlrbDJ5NjdDZDB5MFpNSnZQTVBwdVQySDFBd2J4NG54RTA4d3NCS3N4RGZuMkVYY3EyNy84UmRpeWRjeU02WGlXcm40bkFWb0NsUkRNdE5JdGFFMi9nTWtYa215TmlBQWIraTEzdjdJbXUyTnJGbVM1UE5hNmZzbTQ1b2JvdXpaRVVycUFKZEZjeWFuTWxiYjlXQlR3V25nOXVmT282SHJyS1lHeE44OTZuanFaSXhtUDg1anRHVmhCSVNLKzZreUFHV0dDQ0hRbG9JVmFmNXZUdHBmT3RPdTFiZUFYcUdnaG16Y0JhUElXUDhjVVJybCtQSW56eWtvbkhUa21pYWlxNnB2UExSV3BidGFPUi9MeitHaTZZWFlGaDJ3eXFSM2xFYmtWRTJaeElISCtWa1IzVXJLMVpVY3ZEQjQ4bndPdG0ybzVsZ01zelhqeGhMd29MS21qWlVKQWZOR1k4SU4yRXMvQjZKcE9TUVkvNUFRTW1udXJLNUo2RkJpa2phaWtUb2VPcWZCQmErUU02MTM4WjMrdGRBMHhpYnJYTGpZYm1zckpVOHM3NktwbWdJVFZFRzFlRmpmbjF6bndhbDcxQzdhMlBHZ2RNWmZkZjNiUDJlenNSZWY1bHRpbVIzOW5zT041V2JISk9qVXhLcjRkQjJ3YllzTngrV215U3lPZ2MxT3U2OTlhSUIvZXVhamdiZWVmMU5kQ3ZDOGFlZFJkbUY1d3dzNWdjaUZBWW1CeUFuRHUrUGdwQmlFWGptZGVwWDdDRHZoMWZpblRkN1VOeXBhMnQzNWFIV05SZlJ1SzJEcERFUi82eWpxQXEreUFSbkJTNm5PYVNFa1owZCtmMU1yMEk4bnVDTFZVZFJkdURYcVV1WXJGK1JZT1p4SHhGcUs3UkJ2NjlBcmcrV01CNm8rb3hJKzJaQTRzbWVUUDZFQzRZY0pBanJnazN6eHVHODhrU1dVNDljVllkTXhFbVVLZWlGSnNyYUlYVHJWc0dLS0NSWGF6aFBTcEtzMFZCblcyaWpUUkxQYURpSm84ZVRXQ2lFbkJsVUZaYXhyWFFDbTBkUFltdlplT3J5aWdsNk01QkN3Wmt3QnQwUGhqR1J6SDNZRCtHWG5MM09jRkxMWUY1d0MwVmFCelh4ZkRKallSUWhxWTRWVUtSMU1HL3RGa0lWUGt4REFiRW5aaFByQTdzUU9QUWtKMHhmejlzYnBvSHNtUklzcFUyeTNCeks0S1RwNjNsei9YUVNoclpmbVFycW5ENjhMdkFMaVNraG52cG90d0JmVmdaRzBxQW1sRUJYVlZUTEpPYndzT0diWCtmRXhTdjVzUEVUMWgwekU5R1pBMmFpeDlsT081YmdVTUd5OERwVk1qcXJhREJ5eVZRTjhsdldvcGt4a2tMdnEyeW54MGhhRnV2cXc4U04zbWUxcWoxR1l6QkJjcEE0enJaN0h1djEzQ1RMWkhxa0VaYzBPYVo2RlJXUDFyRGxQOFE4bStnTWo4aDFsL3pvTHBKSms4NUFoS0tpTEU0OGFSYnVSQlRqdzhVb3VUa2tpa2RSZWNZM0FFbjVLMC9nbjFBT05YVTBMVnFNTlhFQ255ZDkxRmUza3FGWU9Cd3FmR05CRHppeW84UEorSVlBT0NUU0VOMkJEMm5zYXVJbXUvaDcwamtHM3g4a0FkdXlkaFY1L2ZPZjhPeXplejAzbGdTUFpuRjJVVkNNWFNacFd1SWliQ2k0RWg0K25PVEFTb1BzTS9icWJqSlZDcFFTRStlRkVadnczaEtvMHdUYUhGditDVzBMbUp0QnNlY3EvcXdIcTFidFV6NG9ydjUxZkh0QTh2SUhjWjUrelpaUjlaMHV6anpHUWJaZkdYU0tROCsvMkFzN3M1ZEdrRjFYejZWaloxRHRiY01DUm9kenlLNnJKL2o4UzkxbnRyOFpTVlRXMllXZ0xpZnhiVlc0eXN0UmZCNDc2VHIxbDNadWcwU29LcEhsNi9ITW1ZSVZpdzlvUTl6L3hOci9PajhMQ2RJQjRpQUpMb0hjQm1vTVRwcWc4dU5yTkdaUHRmWEdtbzJTdXg4eWVPdGprMlN5YXhya0hpVDBzc2QrVlIyQzVUdWJ1T281azM5ZU5oYlRBaUVraWl1TEQ1cnJhSXNGbVQxbUFRcXBUdUtEM0c3U3NMQU1pMlJLMXBxbWhLU0ZvaXZjL2ZKbW52bTBHc01jQXJOL2w1eU82NkR2MGhjZFNmclVGOEpoNjE2WnFFY0V0bEc1ZVN5RkI1N0VTVWUzVVI5WlEzTW9qdERTSzAyTUpTSVlob0V1bkNobUk0R3dTU0laMzdmbGxCSlRkN0oreVhvY2s3M1UxbTJtNDh2dG1Mb0xJZE5QaER2T2tjRUMzWXRIMkxoTHdGVFpGbmRocXY4Ris5a3drSWs0L2t1dkpyNW1HZTBQM28zaXpVQXJLVVB4WnlGOG1RaUhjOERjaXBHSzVUNjV0Ty9taDNIRElwcVVMS3VLZElzWEthRWphdUxXQlU1dFlKOTc0Y0srTFFNRlNReWR1YU1PWkdySENnQTJaaC9FeW9YVnVFZ09taXo3YU9qRi9nSmo2QTQvVGVzRDFHeDlFMVZLOUVrSi9oajZrR1FvMEsrTVBDbjE4NTJsSC94M3lja1pNNGIzZXV2V2ZXWEhZK1dXQUkrK1Zzc2gwK3dreG52K1djSC9uRmJDeERMUFBsMWJLZ3J4SENlSjFWdFJubmdKa1REUjRvbjBNREMxZjNMcmFEakp6b293bTdjR2JOSlRUYWVrTkJ1dmQzQkM3SkhDZDVRK1lvTVNTSmhKNmdJdGJHcXB3cVU1eUhDNEtjc3E1TTJLWmZoZFhrNmZjamdPWmJDaTBkN3pKVlBFRWNLWFFiTFdUc0oxSG5Kd2o5Y0dHZytYQkhzOTUyN1pqTG1qa21RZ3hMajFxN2czMTQrVmxSNXA2SVQvQURsdnhrSWdRZlc3OStvU0hoY2NQZ2N1UHdOT21RL1NwL05zUnhiL2FMR3hta3Z6bWpubG1BNFdISlRrclUvaDhWZmdzMVVRaWZWL1Q3RU5XMUs1WllLQVE3QmhySi9FNlF2d0gza29hbVlBdWZMdGZmN3F5WllPd2h1Mjk0OHRiTmhPc3JWalFFTGg5c3JLUHZldkF6dDk3MjNnYTNIYkZua2JtTFJqQjhWQWduM0lQMUloOWtJbUdiZllzWjdRM1VXNHp1NUk4MCt0UGU1Vm9KRWtVSlNIZnZLUlZFNHF4MUZTQkZKU09lWlc5SEdqaVQ3M0ZwNktlZ3owZm91aHYreUFEOTNqN2VaODdiYmo5N0ZuQWhLQnA5bUFlc0g3YTZZamdRemRRR2p3c1djQ3NPZjd3ZHN4TUptSE5DeHc2bWlGQlVRM2IyZkhuNzVGWVdzdVNXWG9hYzZxa0RZT3BFaHVIdGZNYWUxVjNQK3pGbDVjYlB0dW1ncVdhZEhTMnNHaVJZOXgyN2MwenZQNTZmaURqOHJOQXQyN3gwTHVZYWNrWG5zTDE2VVg0UDM5cjdIcTZvbi84OS9JWUdpZmNucWtsQnh4cEUwUS9PYjdtekJhd3N4eVFUZ1o0eSsrQS9rb2R6eVhOWDlPK2VkZk1PYVVreGhUWHQ0cnVibS9rUitPRTMvMUhUcUtpdXdtam5zNTBzV05oRU5GeHVIdzZSWmZHMVhMNXkzRkFKeFdVay9MZEl2UGRpcUkzVUxJVWtpc1ZNT0ozZmN3SXNZYVl4eFJxYU1LZ3dlalp4T1NMdndpd2g4aVgwOFJ0ZzA5OU9uUU5VNmNQN1diVEJpZ3JDaWJFK2RQWmRIaURTU01RWWhuK2x4bjI3NnRERFh4ZnZONldvd3dtWnFieHlzK1lFSHhUT2JuVGNHU2NoQ2kvNzVzVkpDYWhxY1RRdlhQOHF0YmJMdmt0Z2VmeGRONUExTFRVQWFKQWZVc0t0ajM4YlVCdFRIZDZ5S0VKQmxXaUxmcHJQbEVwV1Nxd2V0L3lpQy8zT1NveXlQVWJWSjcva0ZxK0o1L3ZkZk10dTBIN2pRcEJUdDJWR0JKYTJpOFV2OWxxWHh2ZitlbXIrUnpOMi9lVERnY0pocUo4cTkvL1dzZkMxTHRZUWhZbXEyd05NdGVoS2dLODlvdDlMUVlTUGNmbGk4QnZ4dU9uVkpCWFVNQ2w3dVdDYVByMGJWOUxSZ1VtQnZEQ0hjVGh4NXBvUm9td2M4U1JIVVBtWFJnb2ZLZlJEblVyZ25xdkFKTDMvdERJelNGelR2YnVQZnA1UVRpRU8zVWNhdWRuSkgxTnQrZXZwVWpENXVLZHVBamhQS1BaV1d6eGdjdmIrZmRUNWV5YkVNanJXMnB2QnFIaHVMUnUrWG1saVBBaXRnaFJRczcxVVlCc282Q2pNT2gvUVV3VXZCRVpBVmtuUVBoejZCbG9mMStOZlYrSWRLcU5kL240ZG1OeUVBZ1NHTGdVd1hYVHJ5TStZVkhrSlFHYnRYMldaK2MveEM2MFBpMGNUSDNyTCtIb0REUXhRQ1JHd2xhVmhMRlphRjR6QkU3RHlnbXJYRWZoNDg1a0N5M0M0L0Q5aHRQbkRTZWptZ0puMVZzQVNVeHRFSTNvYkEwS1BtQnY1RTVZOGVoV0VGZVcvZ3ZURVZISlpjNVpRNk9HYTN3NzUwNTBHZ2c5TDZiWWo1MCsybEsxMzEydmQ1bGF3Z0J1cXBTWEdDVHB2enE1aE5JcHVJWWZiMVhnSmo0ZVAvbjkxQlBDNVdKREpaSGN3aGJPbThIYmVMN3NHWDc4QWU0MnloM2hQa3dYSVMvTTBsbFlXOW12L1JqZWdxb0VPNncrT0hyOTlBVzMweGlTaWJuTDNxWTc0WE9TaGtjL1lBand6aW1qRzRiMXVzMVZ2VzN5WG8rY1dqcERCUUVheHEzMndTU2UrNnRmbzZFcTk4OUtJYXY2R1NQRVlsMnNMVXRSRVBlTkJ6VE5YS25UTU13SW1ucHJWZHVYMkQ3LzZva25yRHRMRjJ6RUVKaXlSVFZ2SVJ3UEVreWxFeTdEaTlVRktUcHlHWjJKck1wbmx6RU4rYzMwZnE0WUdxTm0vdlVJbjRVMnNGU3EzUHZ2ckJpVWRYdTU3bWxjMGhFWXFBNitaOHJEK2JIV1NFY2QvMlc2ZzA3MFBOeWtKRXdXdGlnK05yTGVlT1NTZHhXL1NKMUs3YWd1UDEyOHhScmw4eDZkcHpkSEVZa05EcnI4cms2Mkl6TEsxRlVZUk1LT3lRZmJjaW1iYlFicjljWXZLVHdVL3VIUG1wUzMvWkljeVhoRDU0aXVzWnU2aWZEblRpbkhJNldYNzYzNnAyR1VDczcybXBwaXdZUVFHczBRRlZINDVCOWlmMDNGS0x4T0pIUUtreExJNXhUVEtZalBYMC9VblVGSTVWUEw2TXh6TFpPek5wbWtyRWtuWjFSZ3AweExLRlJZTWEwazBQVkI1WW5RMU9MamVqWDNzc29leGpFSjBBQTRQNzNwdHNYc1NRVHh1Wng3NWwyQk9DaHU5OW0yODZXdmNpUC9MZU5nYm1URkhxaE1LV1F1cmEwRzhqTDBpSFpUaUlzVVZWdFNLYmhVR3BRN2NteEl5alNURFhrMHV4R25BT0pMd0ZFZE1tbnBUR2krbDZXdUtkS1QzYzJCbnBjdU12ZkVLbkNmRFFOMmlJb3hYazROQVdoYTNzby9EMCtmZlBxa1QwMnF0SkxYd2swa0FaNjR6c0Vtd3RSVDU5TFBCZ2kzTHFldk9hM1ljclhFYW9HREI3WE5WTTJ5cXR2dklHZWFpajNrODRhbGpzenVjMWJTT1JaTjdVUlNjNEJCaVUzUjBrMks5VDl5WTE3a29Ib3MvbUNRRGpISXd0K2p1cFV3SDBBa2VYcnFMMzlIdHBlL3dEZEpjbDN1eUNaR0M1Z0c0d2tCMDgvQ0pmdXdMSlMrbHQzOE5uNjVSejN2ZlBwaklSUW5LNlVidC9EOTdqbjhaRlpOcUVpbkE2aXNSaCt2NTlnUnlkK2p4YzEya2c0YlBGUll5bkZvcFlEeWtKZ1FTaGtrbW0xMGRKcXNiWTZnMm1SeFVSakNWYjV6MEk2dEtIamJVNEZHZE9vYXNxbHNLaU9jdWNtSEJtNWZCcnlVK1J3RW91NlFFMzB0TzhWK01IRkxtNDYzVWxqdThVdm5vbnowcElrbWw5bHljWTRwNjBwNHR4NlAzZXUrd2tsVml2SkljQWNpb1NRRHV2bWxhTmV1UUFYTmNpVjFjT3gra2dUcHVjTDZodVNaQmJtVVhucXpWakNaUHFXeFRoYkt3ak5GRGcvU0pGbUR0SHQ5ZWxCOGwxOTU0NDZsQVRGbnZxMGJMMVl3aG9vTklQZm44M1lncWxZbGtWV1pnN3hwUFdWOHBqL3R3MVBxaEJHRllLNG1jU1JrNG5yMklOcFd2d0Z5VkNNdkhrbjRPalVVYTAxdU5FWnJCMU5sNWFJeEVmRzE1M2gzTG4zUG5KcTUyZlRqRWgxOVZuWEQ1YmwxQng0SEM1cU81cG9DWGZnMHB4c2JhcW1zcTBld3pUSjh2alkzbEtMcHFxN1lXK3l6LzM3d2NvbWNLb1E4eEdNbW1RVnZzbjdWNytLV3hzNmtYQlBvd3Z1dmFpTzBuRW16Zi9xb1BXUlNoSk5JZEF0cFBUaFB2QkEvRWNmUStZeHgrQ1lQcjNYaElUakVXcURMVlIwTlBRdElPSW1KUkUvQzBvbXNlRzk1YXlUUy9kNjNVNHFYOVAzb3FSNm9CYTZBeFI2MWczWi8xTW5qZ01KWm1VMUpKTUl0eHVsS045dTlwcVROZlFiM2JJRWdCckRCWXFGcXRxTnRydjBoUkFDTmRkRHJDTkFsUlNnS1FncHdTRjRjNjNCV1JkT0kxdng4TUo3SDBBZnpSN09abEhQS2VpNjdsN2lpaStPc0UyZTRkSVFRbUFaQXFkYlE0OUtoTitQS3hKRXFBcEp2dys5MDhUblVyRmNHcG8rY0oxNlYzYUFXeDBaMzBRVmZXTXRIMzd4QWNzV0w2UXNVeENiZHpkQ3dLYWRDOW42NVRLQ1IxL01LY2VkM2R0a1ROZU1zdUNOblpMZnI3SjFWV2lPd3Jtajl3M0xrQkxLYzNYT09UQ1Q2U1YyRG4rZVQrT0Y1WjAwQmdadlhDbjYreklTSEFVV2VVY255VmxnSngrNlJrSExoenFKUm1YUWUxWlZrOGFnbjhzZStSNkJZQTZZQmhNbU83bHRXcHpqbXlKRTFmT0pLUTVVYWRzTmc0NWYzTEhMcHhEZzZWRHczVkJENFkyMUdCMENGRHYyWmNiaC9wL1liMDBrN1BKaU03SGJjM0hiNUpkRFhMejJZQ3RmYmwrQmdZTVRDbkpJZjlGTUlrTFNQUFU4WnBRVlUxRVJ4Z2hVNHA1K01LUGZlSkdHbTIraDRxVkZLTTZ1QXVUMDdtelBmSisyYUpDSFZyOEp3SFdIbmtPTzJ6ZWsxN3VYM1FDaFNaSkZLb2xDbFlLeUNLOXZTL0pJeE1OeEI0OUdOMWV3Zk8yWC9PUUgxWHozcHU4U2pzWTQ5cTU3MlZRUUo5TFNTS3k2am5naHVGb2xWbnlQK2dkOU1BNHNRRlZwajJpc3FMWndlVEk1ZFpLZFM3Tm1qWS9WVlJadEVXMnYvV1BGQWx4aGJuMzhJQzc5UVJoVHdJOGVQeEJjNFZRcy9MOTRwTnl5eUpmcmtZWmhFN0FDbGxSWTMrWmpVVlhHWG9XazR2SDRpTnh1UzZpbEgyOERCQll5dkEwWnNYUFhoV2Ntd3B1TnBIVmd3TGhicGdta0lTa3I5ZFBTWVJKdEVKeDUvRnIrZHZOTDVHVkhpYmVxYUx2aHNwWVVxS2JrKytkK3lpdUxwMkZZQ29waTU5QjIyMmV4R0MrLy9ESXJWNjZtdGJtU3E4N0s0T2F6c2lqcVVHbDhLRWwwZzRVVlljaXl2T3ViVkxRSk1rbzhHRDRuRlUwQlJBendRREFaSTVpSUl2YVpUTmdlMnJUSm1OVTFDRlZCUDJBMmtTZWV3WG5DMFRoT1BnNXQrdVFVb1hEL0k3cHQyOGp1WTJtaFRScUhXanFLME1OL1M1RUphNmt3azRycjFCUHhuSHNXd2ZzZUlQN2V4K25IU0FSSXcwVDN1RWttayt5ODRudmNmZGN0bFB6cFBtNjkwWTdOMzNyalRkVGU4aVB1ZWZ3UDFGejNVK0tSS0xyWGcweWF2ZGExVm5YajlVdjgySnlyMGRUU3VIUW96ZkJqSk9OVWQ0QkxseVNTT21NenQxSG1xZUxmMVpmZ1ZPSjhZOHhmZUszdVhKNm91QnFIc2dzbm1OSFZPbG9DOWREYVpBZUg4a3hKbmdRTHdWaGFjV0xzMWZRcVFGSkN6QktjbGhQbGFxdUpEeDV1NWE0bm9zUVRvR3VRTkFTR0NTY2RKTG5sdThWOFhuNFZOMWRkVERUaFJkWERXTHZWN2MzSXF4elc1ZS95czNZbStqOHYzdkp5c2k2NGxNM0xsNUtwK2lrODUrczBMbnlKOExhdGd4Ni9TMmNYZHQvN25nUzlxcFM0akN6VVlUaG5sZ1NQdzY3WlVSU1lQODVMWG9iS3hBSUg3MjBPMHhBd0tNOXg0TllGa1lUc0YzWWVxZnRWQlBoemk1aHowclZNTy9SY0hHNC91T3dtUzcrNmZqYmZPWDhpdXFxa2paRWNuT29iOTk0WC85cXZhayttZktLazVhTzEzY2VvZ2xQeEZqVFRIdjhDMVlvQng2VjFuUy9DV1R6UlVrcW1hdHU2VDdTVWNwaTNuYk1kRFlQcnlMNktVS1NrTURlRGtxSk1BcUVZbTdkM0FKQ2Y3YUdrS0ErRFRocGJRd1BLcjZGZ2tTUVVEaHZieXZTSjJieXlyWTNEaXZNNFp2d1l4b1RiZUhlSkQwVXp1Mk1TVGwybElaUmtiVU9RUEZlWXlwcDY1aFFmUkdGZU1STmlEVnc1S3hNaFU3bnNJa2xacVE2Rmg3SXNkaFN4blJyblpjY0l4QTBxTytJY25zWUNTUlBjaDhUSk9DbUttbVBqUFhrM2R4SjYyMDFzdldOUXU2UzV6V0x0VnBPcDQxUW1saWwwaHV3L01GT3VVM2JFOWlGaURvRTZCRHJJV3dPcGpzTmZRT0pMWWJOY2RqVTRrU0FObzNzdGxaSmlIR2VlUXVMVnQyeHM4c3hUc1ZvN3NCcWJlcTFoaVJsT2E5L0tmUXhpVzlhdXEraXF4Y3lpSm1ZV05WR1FFU2JEa2VEdnkrWlMyWjZGWVE1TXFLdU1VUHh2VHpzeUt5c0xSZEV3REJOVUJWUDNNUGV3QWh3T1FjVy9Ha0JWTVpJR21abFpXSmJScisxcDErelphLy92ejAwKzJ0RE9mVmRGZWZlUWRyNjFhVHhiaEorSzVocHVYWGgvcW1CZWpvamMwU3dvQ0F0Y1VxQjNBREZ3aFdFVTBMbmJSMHJUSVBmQVV6Z2s1MndpVmExOCt0ajl4Qi80QTkrc3JFVGRDK2hKRTBJaTVTNXVvdTRDTGNBMExZU2lJRklKMXpXV2c4L2RwNUVWWGtmYm91azROUWNUQzZ0NXRmNXcycldrYlEwTWVIb1ZWQ1ZPZGtFYm9SVmI4SGhxTUV0ZFdDRTNXZjZkNkhvQ2FZa2hKUVUzTlRWeDIyMjNzVTJJWWMvanJLK3RaVloyRGlLWklMSjJGVlk0akY0MGlrUjFGUjUvTnM2Y1BPbzdHdE82VjFWS0FwcURzMWUreU5Mc0VsNmFjQnhFZ25ZMisrNGpaSkwwK0RocjIxdWN2ZkpGQWc1UG4wcDVzSFVqdFc1UzJvZGI4V2lzWDluSkwyNjZHNFRLNXRWQkZKK3p1MXZmWUU2RkxnVFRkRnVRcjBwMVc1ampjREpOMTlHRkdOU1ZldURrUjRkMWJaNTkwdjc1elZnL3hTSkNFb2pCNzA4eDZaeXRjc3ZmNFlKeGtsbFJnMStGUTJTcTlIREtCckwycFlTU2JCc1FNeXlKMW9lRkpiQUpnVHhPbFNPbitIbGxXY3RlQUhzQ2IvNTRJcVZuQU9ETkg1KzJVeUt3VUxBTHVFMGxuem9LcVRNbGIyMk13OFpxU3AvWXlFejlYOHlibU1HaGg0eGgrbUZUS0QzeVVDWVZsckloWEVWSU9JZzQ4c2x6K2JCTVk4U0Z1QkFtQW9FcEpWbVpEaDUrOEhnYk5IMi9nbzZPQklwaUJ6bDJCZjFCU291aUlqdHByNkVoTkNCWjAzQ24xaFI5djZyUER4RW10QzRzd096VXlMK3NIdHd5UGVHVnl1Ris0S1JCTXBaa0pZZ3FPQ1RORzMwK1BRYzJuakI1K3VYTm5IZnFCQ0w2YWR6MWlzSFB6L29ueGRsN2wvd2xKWXpLMTVIQWh1MjJ4MVdhbzlyUERVRm5TdnZvMHU0VXJQQXBUQXliaEJ3Q1IycWFFZ3BrSkNUTGZRcnRUb0d3OW05NjlHWG41UFd2M29DeW5EaDNGdG9kYlg4Mkk1L3FVVTU3TC9hM0lWUEpMdVVkZ1dHOXo2cis1dGUwaUczZFFlRDl4Y1IzVk80ekNiOG1OS0ptbEhZendOZnlGM0ROcE1zUmJqOTVzdy9zcGovTG0zMFFJaXVUYTUyWDB4Q280NzIySlhoVUYyN1ZqU0hUbERVQ3JGYUY4RXMrQWdFblZ0b0hmR1RackZVQlNXeWkvZDMxY0JKQjBnUVVEVlcxblFIRHBaTzF2UVh2WFMvd3p5TXRrcnJncUU5VnltcmRKTjA2WWpkZEhBN0lWSUdZYlNLTUsxZVlNRUdGc3lYSktxaTd4NE16b1JCUENPSnVTVXR0QTFXcncxUldWRkJaVWNFTEw3NWlyNC91WnVLRU1idXJ4Zi91a1NJVWJtbUwwTEt0ZzNaL2tHM0pJRXVXZ3NjSEMwNDZrSG1IbGtKa1NTb0JUdzYrc2JKellmYWhKS2JPNGcxZkJtOXMzSnVpamxjRzFFUVdYa0srbXhBMTFUZ3J0cE9jZUFaR1RobU9MMTRtNjAvWG9Fb0xqQVM0dlhiQitCNUM4eGNQdmRXbjBFMFlKcVlsZWZLRnoxRVVaY1NTbVljTUNqa2RrT0hnaTdFZTFqbXoyR2R1algvME43dUsvWi91SUhmU1lhaDVCMURaMUU2c1l5V0hIbnMwN3FKRHFHcmZpVk56SWtUNlhlTzZsWnJEQVJkY1lCUFZCbE9oWko4UFRqdk5maTBONVdhbDZzNkZidjh1VTdwQ09PQysxZkJLWlNwWHc2UTdzYnNveFZmUUVPMi9TQzlpdUltWWJoVGRJaGpPb0x5MGxqK1czTXFwbjc1QThEbUxIUTEyc1hkZVVRZStDeFZlUC94aWZsWDNRM1lzS3djTlZKZUpLZFVlVS9MZGQ3N2I3emJXRW5CT1hZQURVM2JYbDNWZjhzSjdtekFjUTV0V0pVVW1uT21BcCtib0xNamJuVXhZSWp3cTBhVWhXbjVkaTlsaElKeGljSlpNdng4T09nZzhleEE5ZUR3d2E1YjlleVJpdjI4L2piUjhheUd3UEE0K1hsckp4V2ZNNHB5TER1YmpMM2VDaEtOT21VRnVscHQvZnJJTnZMdEk5WDRmNmZzd1pINnEwN1RKdmErOHJQM0tYVE1zdXJNSXpmQmVZQ0c3YzRnYUVOK29JYzI5TjlZdmZ1VDhZZjZTL3p1aSs4RTVmc3p3WG5DRkhVQ3pGQVhOTlBBYk1WcjkrV1Q5NGhaeS91Y2lZbTRIdmtnTUZORk5oak9VSll0Yy9UKzdyWjBDVmp1YStqUko2U1NSS2w3WFJKeW9HUVhsK1FFSVBmZEUzWGI1YlVseitMeTJZTmdnMkpGRXVCUWlnU1JmTEc5RnlYWmdtUktoSjlsWWs4ZlJQN25FM3NPS0hlV3VlcTRNeDVnS3NnNWVpbnZNVGl6QWlnL2VtenRqd3JGMCtCNGdFVzVER3FDNHMzR1hsVk53NHYvaW0zNTZENTkrYU9mTXZpL0Y1eU5aVlVQRGpkK2owaFhDVkpTMEMxNzFzbUhldUtuYzMyMmI2dGdPQ0UwbE04dk54czMxbUtiRTVYYmdkdXVzV0ZlTFlVbjhHUzZrSmxpenRvcFlNa0Y5MlZtNEhDcTFGVEVpaVRvSzhqd2tvOG1lYzJSWktCNFBabE1UNFk4L0p2c2JseUEwRGRNMFVGVU5pV1N6K1FKdkdYK255ZWhFVTFRR3M5S0tyN3Qwd05jOVU4ZmptVG8rL1hsSUVRcS9zT3FUQVRFY2Viemc5QjBCZE8rcHZEbmE1TG1tamRDMGFmQjFHMkI5aFFCSElrRkJ1SjBPSzBreW1TQXBGT1IvUUhHd3dIWWpvMVZqYUtuWlNRMzVUQWlXSWxvbWsvVFU0WEpIMDJ1cWt4ckgvKzRYZmRnTUZ1R1ltMk9tcnVIWTJFWmVYUHNsVGozQ2FZRWd2MWgwTVI5c21JSFhGZXNuK2ViNnIzQjJMQ3hqbDkxcEdYRnNZeVk5dEZxUlVPZlhlSHB1RnU5T3NVaXNlQmFXV3owM3hoQ0R0aEtCMUFYUlYxdzRKeVh3SEJoQjNXa1JmOUZCcE5sTlEwa1IyMHJIczJuMFpMYVZqcWMrcjVpUU82TmJ6K2hHRWw4a1ltTWVRb3o0Zm1pNFBxTzNDa0hCUjVSN2loL21OcTdrbjQ1akFFbHBvb1hmYlh3RTYzMkxLcko2a2V2WW83UGZmZHg5UzMxV0lJamU3K3RqWEhuMmdYdWNYY0dhYlkwc1hWK0xsSkw4YkM4bkhEb2V0ME5MNi92LzNlYTJ3MkhaVFFGTUtSRjBrZktCSlFWeHcwUUlnVU1ScVJvb2llWnc4RWFOb0NLcGs4ZzRpaTJSdzNBbzhWNjA5T25HRW9TUVdBbkp4UEZ1cHJvYkVPNENqRVNjM1BiUG1WaFV6SnBxMjZlUmc3aFV6ZUZrOXp3Nk5ac29OV0ZZQk9JbXhNMUJ0OFgzdDczZHAzelVzVkNrNUtLRzVZTVdxdTArZmovaUVtQmtuUEtMYm5nUjhuMWNkTW5oM0hETWFGd3JsaE42OXlOV3RGbzgySm5QeFY5M005ZGprNTIvczZHZGhVOXU1Q2RYSE15MEdSTm9mZlVkWkhXVWQ2SUZ2RnhsSVJ2YXU2OXJTRUdXbXVTT25kTnNwOVJTTUtYR3ZJSldicHV4bGRNdWFxTHROZHRHZXZDNnRaeTZzNUZmclp2SWtxWmNVQ3gwTlRsbzBjWitnWXFrdlI5blRvdlM0aE5VUlhTTVVaS2tKdElpWkIweGZTbjdWNlIrcnlEYko5aTB3OFpGczMwQ3YxZWtoZDNWbm5kZXZ4SS95NWxCb2RUeGpiYUx4VXRyWXNUcktxbGIrTnlnZ25qN0tWZmJEUitpTVlwK2ZEVkZ0MTJORllyMEpsSktOWG1xL2Y3ZFJGZHRSSEc3a0piRi81blJKVkFTSU5lQm1DZmhNSmpvRWZ6OFhKVjVVeFdzbVAyZUk0NVFjT2dxV3lzc05tMjNkdnR6T2FpZkxhU3RZWlFVVUJTSUJEazdld2E2cWhPT1JQQjVQR2tWajU4NnA0aUVLU25PY3FFSXdlUlJQbzQ5c0JpZlN5ZWFORWtZRmtLSUlSZXZwYXN2a0JKMFNVMTlCbWNWdExBOUZDSytzNU5KYm9HV0dOTS9XVVVma0c5V1JnN2JON1pRSVhOcEQ2cVlzU2orakd5Z2RSOEVzd1NYZy9lWFZqTm5VaVB6M0ozOFpLMFRITDYwNHlJQ3lCWnE5eEhxd3V3VmV2UjcycXRoWXZOOWVGRlozWkhnSlc4SEpWZEdlT1FLUVdHZUNWRVZWOFk0Y015Z2dza3NEbVh6ZG0yRVQxcXFxZXg0QlJKdG9BM2d5NW9tU29hUDRIT1BvV2JsNEQ3c2FMdTQyckNOcytaYnYwTnMyZWNvMlRrRHpzZEl4WEsvL2ErcUFlYTlOd0dPR0xTZGdUMis4WTAzK3ZrZWdtVENwSFJNRmpmTXRPL3QvclVOMUZSc1FuZW9neVpObDFqOXgvQ1NnVEFWcjc1TWhtN3ZpdURtbDVnUWlLTEx3UU9ZOXo1Ny8zK1huSHptbWVHOTNzeVpYOWxYbVRMYWk5K3JjY2xKTmduaXBzb3dVMGJ2TzBPVVVBU090NWRqSHFVUW5UY1c3L3ZyR0s0TUpyR1hhTnFJNFR0OWpJU1o1SzB0UzFoV3U1bU9XQkJkMFRpMGJEbzcydXI0b25vOUI0eWFSTnhJNEJqQVI3TENZWVNtN1dic2llNmYwckp3VEp1R0oySVQ3amltVFVOR282QW92Yyt4RU1qa3J2dDEzUDlJNy9NckpXWWtpalJNSW45NUNrMzdEMlNMTjAyN1NrMVRNV3JxYWYzdUhRU2ZmNTZNczgraStPMm5BR2k1L3VkVUgzb2l2blBQSWZlUHYwQXJMZTc1dDN0aVpIc1FDZVBYZWFzamk4ZTNGdkJaeUVja2xiQzhPT2puOEl3Z2x4YzBjY29wSFp3OGYyQmlZWkdTMTBHbllHbUpnMWNudTFsZTZpU2VYQW52clJnK2NqL3gzeVU2aFM0eHF4eFliU3I2bkFpSnBiWWUwbWRIc0ZwVnpDb0hZaEIyUkxPSEhKR2dxSmhtRlB4K2t2RUVHWk1tb3FaSU12WEpma0toRVBqOW1GUmpLYTVVVXhmUkJ6NXBrcFBLRFROVFFTYTNzZHRqQnhRNDdNZEdpcEdxeCt2MGZnendSY1duTklVYXVlS3dxM2g5N1N0a090MUVYU2JaU1lPdnZSYmlsTVVHbm9nZ3FEWU9TVUoybVpkbVFtVkNWb3k3UnRVVGVxZVM4MzhmcGpXa0lvUmR3Tm5GRjN2SzhVN3V2Q2lEc2N2OFZON253RXhJSEw0VUpMLzdsT2ZuOTVKRHNlZGZSbDIxRnF1bEJXdEhKUlFXcEwvNWFnZHVmZFNpZXZoYjFsRjh5MXJQQi9wb0hzczRFRFFubFprYVo2cGV4cVk1SHg2aGNJS2V3YVVSbGNSZDkxR3hqMmNqbmZnbUtkeElHakMyRUVwbk9ZZ0dIU2dDU3NxY2pOMFE1Yk90c2dkdWxKUWFjYW4zTVg4Q01ObHFscUdSNEJCOU0yVktDK3VNc1RTWmVRZ1IzK2RFK09IekZlM2IvYmhwQTVzRHRiZ1VuYzVFaUtUbVlrMTdCZlB6cHV5bEMycWlPbFFtaGovaGZ5NWFoZHRsRjkvZWV0RXFQZ2wvekhiM1VjaUVpZTJBOVdPbm11RVIrOXBXNnJ2TFBlYkNNQUduaWRuc1l2WGpYbXFueEdodGxWUjg3a0hSd3F4Y0xBaUZMRlNIeEVRaWQwdnd5am56dU9HOXlTZnZUbU9lSlN0V3JPQzExMS9ETkUzT1BQTk1GaXhZa0JaaGQwbGtlSWxJYXJ2c3MyQnlSTllzVUZVOUl0Zk5PWFA4b0Vla1EwcUV5Q0dMbkVIVmRkdkwyd2Y5VEljRnhUR0ptUUxMaW1NU1I1bzVvc1czM2pCOFgvN1dHd2VGa3R3dWk1T1BDN04yU3oyNktwa3lJWUpDK2tXb2R2WFdick1tN0lDUnNDVEd4akE1bzkyZ0NpS3YxK0pUQlphcXBkNlRlcjhLSk1WWGFpTjluQ1c0WTdxRGVGSU9yZW44Mjd0UGhVUnFPbzB0QW9mVnhBWEZxN2p4MERZT1ArcGd3bVUvNW92d1JONzVxSkVQUDN1WDVSdnJDSGZHYmV6U3FhRmtPTHZDenoxcUlhelFyajJxQU5tblFQNjNJYjRER244UGtSckltRysvSjdRRnJIOUE0YzMyditaSG9QUE5YYm5NWGRjYWNYM1QvYXRFUjZjbVZNT1BsLzJZNjZmZHlBWGpMdXpHWWgyS2srZDJQTXVmTi95SnFCbkZxUXhTRUM3QTZOQ3h3aXE2TmpKNHJpSUVWakxKeE1JeW5yN29HcHlhaHBiQzFmNTIzbFhFRFlNVC8vb2JWdFh1Uk5FZGFUVkNzRzJCR0R2TlNieFZIZUh2UjNYeTBKSUFxemRzSldZcHpNazVnSjhkQWM5djlmTnBzMFJvQmxZYURDSkM3Tkp4ZzIzWlBkODcyTlhqVXFFMjZlRTd1VnY0SUZURUorRUNQZ2tYQUZDa1JUbkMyOFN4R1EzOHJXMEM3UTRIN1lWNm44SnRLUFZCUW9WUTJPQ25yUmR5Y2VFU0RtajI4OHVXR2NRakNZU203QmR5czBkKzh1Ync0alluNzcvenRyL3NTYTgzaDhMY0VLM3QyV1Q1NWxBeWZpdytYeDdSZEhSOGRIZVUxTjRWa2VSdWtleVV2YXFJb2VrRFI1MlQvTUlTaklQUFplenN5V3g5OGlGeTZ6dFFuUmFxS1ZFVmFmZWozNHNwRTBLZ2FCYUpqaWlqcHBYeDYzTm5jTXJTajJtK2N5RkJLZER6YzBpMnRwRTNmaUtKSDEvTXJaT2FlSFRWQXhBM1VMMVpOcEh3SGg5NnhaRXA3RTZSRUM1bC9ZZHhMblJ2Wi9ONnlZb1ZzRjdrY0hsNEtweXNEOUJWZnJmeDFNQXZHMDJWSkNyWFFzcHZUbFN1eFdpcTJIdENZUWxiVzZwcERMV1M3ZmFqS1NwVDg4Y1FOeEk0TloydmFsUzBEa3p1WWhvdUNyTk9Ra3BCUzhSSmV5TE9WemxHTEovZWtzU1dyS1Y1L1ZaYW5Ca3NGQVdoUnVlRUx6TDBaTE9OK2tvQUVST3F0QkRISXEwa3BCamF1Z0s4aXNUdFZDaklzUW1MM0U3VjNxOTdhYWNwcHNBd3V5bnR1eTlqQUJnU2hHWVRrUTFSMEE5Rng1QXlPeTFEY054b2U1KytWNWxFMGVTQXFkMUNRcnZMNGpkSGRGTG5NL2V1ZmlWVlkzWDhiUXY3RmQ4S2tEUXRjdnh1WG4vOGR4UjVIQ1JOYVpQazdkNjFjbmVGUDZaa2Y2T0QzYjl0NVNDYUtsY1RITzlBVlhQd1ZtV1FsQWZzMXJ4dThNM2k5L3VKeCtNc1hXcVRMR1puWlZGY1dNZ0xtemV6eG9qeE8xOHhzMzB1bWplcmJMN0NoMzllRW1lcGliUFVRbkhMM2puNWxnVmFIa3JXY1NRYjZxbi95ZjIwL1BWUnJGZ2NaNjRmS2UyRzRnaGxXT2ZFTUF6R2pock54Skt4ck51NkZvY3ZFOU0wYVFzSGthbDgycjU4aTdaN254Z1pXMVpWU1JvR1hxK1hZQ0JBWm1ZbXJTMWJ5QWhYazJ2V01yRmNjbXBPRlJ0YmlybS9aUktKbUVuQWN2RFgyc2xzaWVSd1Z2N0h2Sjg0aHBCZTBHT25EaW51TGl3YXE2Y3hKWHNEalIyTGlVU3lvT053WGxoN0FOQlRMeW9xUklPU0x6YWEzSEdKb0w0TkZxOUo3bExhKzJEcktCSnEvU3FQei9YdzFwUVlpUlZQdy9KaE5KNGthRUx5Y1lWZzNNNElpRGlHWWVHS1JnaVBFYkJ4N3o4cm1QVFJITXZ2ODdXRTVhQStVcHdPYnpmZnZtdkpvSGFPYWRoRXJJb2EzQ2R5TGlFRXFxNGhsUCt5d01lK0FkRzdmcW9xVml3S1dYNWNvNHBSVFF0MWRDbkc1OXZ0alM0VUVOYlFyanZNNCtueDEreTdHdGh0aTh6dTU5NE5hZkxxbW85NGpZOHhwSW1VRUlpRlVSUUZyOE9GYVZra0xSTzM1aUFZRDl1eDBiNHVwVWdrbVJDWG5EbjdTNzUzMUV0NDlFMzg5VE1mTCs4dGtUQmdCVlV1T0tXZGkrYlVVM0ZMQmNGWG1uRGw1MUJ3M0ZGa0gzMGN6bU9PaFZUdGFoVFkybHJMenBacXRyYldzS20xbXEwdE5leHNyNmMyMkVJNEd1bzlSNTFKV05wSzdaWUtmdlgwNm4zT2xYKzdhbFl2ZkVGVFRHWm1WMUhvRHRBWTliTzJ2UnpEVXRNazE3VUppalArOE10ZDlrV1hqYkV2ZSsvMVoxTmJJTlZJWHZiV0Y0WmhJVkl4N082UFZTWE5JWjJyNzF5RFFOTFNiaUVjdmYzL083bDdXTS9EaXlOdGs2ZHlqNFNVeE9NR1FWODI2b3NMV1JWM1l1cE81cjd4RW9FekxpT2FNRkdRKzF3VHY4L3pzVFhZdzBxVlV1Snd1UGhpYXlXZHdRQmp4eHlHR1ZFQVFVYlJMQUxWNy9EYTJxMVlFeExFNDlIZGJKMDBKMHJhOWFkVGNrR2s0aTVUY2dWT0ZjTDdjR1FzS1ZsZUdXVjByb1BaWlRZeDFQS0tLTXNyby92VXlCUUJ5WFlGSXlod2w5dEZzMGJRUWJJOXZiMGhBWWRtME41ZWhKTFJUSHpzdTdSTzJzb3YvQm5jbE8xQ1FiSTNsVFdXZ0t5QTRJRkw0N3gzcGhQWDJnazJUNEhvYmNITDNUQVgwUytrWk5mM2Jhb01EandkYWdtWk9RZlp1WnlpZU5EM2Q5OXY1RzBpdGRzWWEwNmpSQXZURVk3VFVQRXV2dWxadEtrVHVUbmpSTjdQeXNIbDFOTTdFdlYzOUkwUnFWcWZ2NmY3K3U0NlRURVRMSnAyUGtrY1hMYjZNV1NkRHBhOVdpNVBrcnc4SDZOR2xkajJsQ0tRQ1lsU3FXTys4aTRmemo2SGluazNjZkViOTZMSzlQM1lyamkybEZEWDZlS1ZqVVdjdlNERVBHODdobUZnWkVSNCtZdGk2Z0t1SGsxL2hzVFJKRUhSQlR0YkV2enRWOGNnZ0xwQURNVXAwb0toL3BOSHhyeEFULzlaMnNpOHFRam1qRS9TVmhZZWtsLy85Z2pmN3hsL09tTVFBWkxjN2JRdXRBdjdoeUs4akFSalI1ZFQ0Sy9paXN1ZTRmcXZyNFk0RUFPbnU2ZHZwaUloQVVjZFhNVnZybDdFclgvK0dwWTNodENOSHZJaUVva1FDMnpoRnhkbWMvNVlIN3dHamV1U1dHRUdMMWdheE13Y215Mlp1eUpDblJXanNOamlmaGMycGlzVU8zZnUvM1UvR1I1WDFyUlFWQTJaNVdmSGorN2loaDllUS9uenovT05TeTdCaU1XNC83ZDNVM2xaTFg5LytvOUVyLzBad1lZbUhObVp5R1JQRGgySHRMQk0yKzRUdTByMnNTVEV6VlNkbUFxaFpBYXFNTmtSbXNpMjBHUW0rVFl5eGIrZXA2dXVSRXFCcGhnOThtbWU0ZTg5bEdnWGRjL3Urc3VKd1NnNmg2UTd1N1pueUJSazZSWS9MbXhuK3BZbTd2aERKNHVXMlIvU1JTYnMwaVUvK2FiQy9JdU80TzdvZDNscis2R2dKbEQwR09ZZXRaL1BuSGZIc0s3UHpEL1pQNi9yVDU4Q3BjQ2ZkWjNzN0J4Vy9QdmZ5TGx6K1ltaVVNUGdGWitPNm9FSmtKT3BmOE9CSWhxbWJlYU95WFdRNzFQWjBwUmczbGczYldFRGw2NGdCQ244Yy8vZjcwY3JtM2JwZTVHVnFoMW9RVXFKeTZHaWExMDV2RU1UYXRmWC8ybi9vN1dtU1U0V0hIMzBHV3g0NzFkc1dGZlBVVGY5RWFkMERQbGFyWVpqS0ZaOXY4T3BhNVFVK0dob0NWSGQyTmw5eHRzQ1Vjb0tNeWtwOE5FUmlCRTN6TDNHL3J0ei82UkVDb1VzYjVEaml3dkpEQ3doMGZRUkorWVc4aTkzQUpSTXBOejFPUTVOcFRUYncwYzdXdmpCZ2pHRTI3SlowMURQZ2NlY1QwNThFUjFaV3pGRGRqeGN5MmdqcDJ3eXl0Z3pXZmJ1RmxDYU9IWks4WkRtSjFtcDBmcWdIelhYSXVOa203Y3R1c3hKNjROK3pDWjEwTWsyVEhqOGxUaTMvSStMWnhjbDJGaGhjZXVWYnVhT2xyeTlFczU2TlFjT0xBV2Z0a3NnRHpqc0RxV2lLejYyWnk3ZFBtSlMxbjVPOWhtZjI4YVJZNnFZTTZxQlBHOEVTd3FtRnJSdzFyVE52TFp4RXRXZGZnenJxMm1ZSVlUQXNpeE0weVFRQ09CME9ORGREbktOT242Wit3VGlZNEZBTURQTElEZFdUaWd4a1VnNFJDS1pJQ2NuQjh1eWJEeGlyK000STJzM0pWV2JkOVpLdVZTV21wTEp1L3VqdW81NzJrd2E2NnZaMmZZMDQ3SWZwZWkyU0hkem5LRU9UZmJoYk8vNVdFcEFzUWpIdlB4eFlRc09Tb25IZG9DaTRIVzdDSnNPVUZ3MnUrYUE4eWd4cFU1SDIyanFIRm5FTXVwQUdMU0VTL0MweFNtVTI3dUw1TlBIaWlTSlJJTGhUclUwVFpQYzNCd0t5a3BvWC9nTWN1eDRIT1ZqY0U2WVJHVHRLdHIrK1FTRjExMUVyaXVNYVJscEhYUWhCSWJ1NHFiUC84bTBrK2VqVEp5R2pPNVdtR3RaQ0xjSGErdFdUbmpxbnhpNmExZjMxRFRXcVE4Y2JaY2dzU1NLejhubURUYlpaenBrd3JzUEhjRnNweE9Cb0F0Mm5xbzdtT1Ywb0tjaHBCekt5SkRVMXNwK0VoTVVtRFFXZnY0WHVPNENrenR1dEgzOXAxK0hBQWtDYVFMZkVvbXVDcXBiNDBRVEptNkhhcytiRU4wNW5XSzM5ZTBTR0tyU2Q2SHUwb3JRd0hMR0tzUW8vdzRBelpFc3FBeWxYWFJyZHJVVk53MEVxYzRTUXNFVTJkU1FSMDFTOHVhR09HeW9vdlR4alV6WC9zMzg2Y1VjTW04czQyY1ZVcGdUZ3B3QWluY1g2WnFNeFViR2VaS2tJRHRCSUpEZ21tdmVBU0FRU0FDaTE5NVVGSUZwSmxtd3dHWkxldTY1TlNpS0M5UHMrVDVkU1l6SS9mNGljVnF2Q2ZjNjRsdzU4eU5jSHlkSVNFak1OZm5MMW1Ob0N2dlRrR00ySTdhcHBLdDhobjhrREl0WDN0M0pvWE9MbURucEFtNS9RZkxEcnowL1pCbmNOZHc2VENqV1diTE96bDQ3ZXJvZjkxN2tPSW1VRVhYbldDZnpPMHhLWXhhSlZOdStqSVNreHFWdzExam5ydmZ1Unh0cFE3WTI0RnJGSFJhL3FyRVRUYlk1ZEhiazZHa0ptcisrOFA2dzN1ZEovZDJocHVKYmNEaHFWaVpOZjM2VXpyZmZUMFVCaHpaVW9XSkprNVpFRytQY3BkdzY1Vm91S0Q4ZFdnSTBQZjQ0MDYrNEdGeTJBelQ5NUxOcGV1aHhwcDkzRHM4ZitWZWVxM3FWMzI1NmtPM1JhckwxVEJTUlhuR21UQXJNR2hXelZSc0NvZkQrY0J6bEFLZDJONDlBU2hSTjQ2VG1ISTU1M3U1YzRwUVEwV1F2VUc3MzJrNExpTVVrTWlxUkhhQzZvZWl1TUVaRWtLbUE3cFg4QXg4ZGJSbHNyN1pZdjhsa3pUcUQxUnNUckY0WFplUEdqYnVBUjNPNGpYZDc3OFRpeVJHYVc0aEp3WGZYVGVTeDJrTCtPR1VIUi9zNk9lZklDbjcrSk9pNkI2L1hRTkVFSFozdzVxdGIrTU41bjRNTFBxcnhjOU9tY2F4dTk0T2V0TEhzM1MvdXk0UnBjMkhXSVpDVGp5VUVNVk1Pbzh4TlFiSm1LMG5Ia1JpTUlxUHFBOXdmdlV6R1U3K2crZG9ITWR1YU1BODVoYVFFMTRwRm9EbjZER2orN3pXOU02UU5CQysrdDRhMVcydTU3SXg1VENyTlRadkE1WWZmc1VrS2Jydm5yOE82WGpkZWFvUHhqdnc4TE5WQ2FucEt4dzN2Z1pVU1VCVzJOd2JBeXFPdXJZcFF1SVpWOVd2NGZJT0NLbkk0MUZyT29US1hqa1FZRERjN0dtcEFWWWVlSUorVEE1ZGRCaFVWdHAwL2V2VFE3NWZlWnJ3RUZBZnNESFJIRDJ5eTNRUXNTRldKUHJjRkZPZXVwSUJ1ZXlpVkxHREZGZlJNayt0blA4eTNhLzZNKzFlTjFLek9JaWwxdk80SVJTZUcySGpPd2Z6YXZKVzNWeDREQnFoT0Uwc3FOcG53SG1OcjI5YitiWGhERUVpNEVkaEtQWkFJc3IyOWlZU1cvb1FxcWVJZGp3NlB6OVk1dWJBM21YQnNUWmlXWDFaak5DY1JyalRJaEczREVaWXRzNG1mTlEwbVRMREpoQ01SMkxiTkpra0poZXozN2E4QVFWcSt0VVJSRmNLZFVaNS9jejF6cHhWejVnbDJTN1hLNmpZKy9Idzc0YzRvaWx2dm5vYUpWdCtkeWF4T1NIYklrY0VwQkpnaFFkT1R0dDFsaGZhOUVFM3VvMHU0cnJhQS82WXg4Zm5oYmFyRFdMc293V3NsQ0NzT0h2QWR3ak41OHpEZTFMR2UrVHZTdFBhbTVYSDM4UHpsMFYwN1ZUaVJ3VmVJcW9maGNCYWdLVkVNeTAwaTNvVGIvQnpoT3dOa2ZHQTVQODYyaTArZnYzMVlwK0hWRkZlclVBVlNGV2dTcnYzV1JCNTl2cEpnSUdrL0x3V0tJNGwwcHVUdWJ2blFpWXF4TkZXT3dUVzZBdCtCeTNDTnJ1eWZ2UzJWREsyTlBvcXNTMTdBRTY0azByS05qTW1uNGlxYWdlS3dDU0E2QSswNG5TNWNUbmY2c2hGSlVpaVlRdUhvMXUzY1ZQOGxrOEpOUkl5aExXRFJBOE84Y1ZQeDlmRVRDdWdJeFNuTnl5QVVUZUQzdTRuR2t4Um1lWWpFRFRKOExycy9nOGRKM0xRSWVxUG8zaXpLTEFVcGREcWkrWXp6bUVpaGtFaWFlNEpqdGtsMjFobDRqcHlQVWxLY3NvTTFscld0NXBjYjd1Zk51Zy9RRlFWZFVZbW5FVkNxZitBZmZRcGwzNkd6eVRob0pwR04yK244WUltdGtJWWl5OVFCL0JWTGtDaVViS01UY3NlUnpPcTB5WVRWd1gyY21sdnZHdERnY2MyZXlqRW5uVVZTS0x6NmFSWExObjJHc2cvSitadjkwT2FFWSt2Z3Bja0svb3UrUnZGNUR0U2kzTFR3ekc2aURTSEFsRmlaQ3ZsVFRlcVhyU0gwNlJmNDVrL0ZVblF3b3paQlFKcTR3czcyck41blE3RXdveDVxZzltVWxRZVp0blliaG1HUk42dU51dG9zNnR0eVVEMFJyQUdDRTVkZmZ2bXdIb3NubnJBTEVnYnVsQzNSL1ZOSUduYkJ0TU0vaFhnOGtaWTliQWxZV2VMbTBZT3lXRFhLYmVObHhyN2pXNnBwb2x0SkxCU0NtelBZR2g3UHRzSUpiRDU4RWpzbWpLTStwNmdYZ2JBbnZodUJzQkJZb25meTNranRCeVdyOS90VVRDSTRPU3l3Z1g4dnY0T1ZmcnVVWm03bk52TE5Ua0paTGh5WWZhdSs1cjZ3ZVVrOHFiTm8vWFR5ZlVHcTI3TlRRVlBSL2JxVWtueHZpRVhycHhOUDZnaWxiOXJVaDI3OTJoNTdWK0hlZjN6RzB2VzFZRW5HRkdmeXV4dE9vQ0RIbTFZeXp0OS8xcldUUkMrY21XNE11bmZEQUNGQXR5UnJKeDJFVUJTY3lWaWZCTkRweGhLa0JKd0txM1lFdWZvUkRaZldpUkdQWWFobEJHSVNOQ3V0NURleG15OHd2ZENEQkZiWGhkSk9uTHQzUWgvb2xtVnlTdk42cG9VYitWZmhYQ3E4ZWVrM3NkbTRlRVR0UGtXTVRJTHlOZDgvZ2F2UG5zbWMxaDJFL3ZVbzcxVkZlQ3Bhd0N0Vkp1SHFXczQ4Y1ZxM0dBOEhJeno3MTQ5NTZkV1ZYSHpob1Z4MzJaV2MwN3Fkazk3NW1NWFpjWjZiV3NSalQvZTBSVWdxRUlQWkJSM2NNbU1iRjQ2cFF5Z1dSbGdqN3l4YjVobWRnalBLNmptOXBKRm5LMGJ4MjNVVFdOMlVCVUtoVjNuQ3ZmZjIzSnhkVEE3MklZRWxTK0JaT3htZUN5K0VlZk42dnQ2OUNidkFoaHZUbXlpL3hIOVZqQ2t5eG0wNWNaa2R5dVN0T3E4SUdjcUF6VmRjcHgvZjh3a05aSTFFSmdUU3REQTJia1lhTmhsVTR1VkphRk1uSTFRRkhCTEhQRUd2UnUxUGJ4Z1VnMU1FNU9ScG5IZXFCNUg2UFlsS1BBMWZTVlY4L2ZxaFJ0ekVKSTVxZ1NzSWthUk52cVFxQXpUWXNXemk5ZmoyYWxBVXpGaVErUFpxdFB3Y3lNL3A4MCtNcGxhaUt6ZVFxS3hERE5KdzZab3Jad3pyZWZqZHlQYUQ2UWw1TmdKTGdRbHc2QWtLQjQ1V01DS3lPMUhjQ2tubXpsQTRkSzVpRXdvUGtrTmc0ejZTNlpNTCtQTWxZN3BBZGdSMnJtbTdwWUJsa1lmQXI2WW4yVjYrWlg2UHgxY2NQWVlyamg2ejl4REE3VVBURjEza0JWR3k4VGxkdERiTjRjc3RHVXljOUFadDV0UlVZVmQ2aHJmVDRXYjZ0RU9KSmlOa1pPYmhkMmZoZG5pUWFSTUt5MVJDM3g1eFJXa1Njbmg1NFpVT0JCcE5pZzgxWlRlSUhyNFpXUDNRbGNrUjJGNUNDTEpVamNhd3dhT3hSZ0lMMnJqeGVwMkREaTRDY3p4UlpyRFJPNWIzTzUyODA5TEswdGJ0dElmcndZeWtFdFdkS0s1TUpBTVhiS09xeUdpTXpzY2Z3akY1QmxuWC9JQmt4WFljMDJmak92UW9ZcXVXRHVvTGpGUXNOeWFIZ3E2bHZ4TFoyZjEzUFJkQ0VPeU1jZXY3dHQvdTEyTVVGQTVzcDBXalhldlcvenlwU2NuQlM4STlpdFBsYm8yZUJockdmbWp3TzZ4anhneityNHhObFdFQ1lZT24zNjYzOTNUWVlGTmxtRmtUZlBzT3FSb0cxcGNyVVh4dWhKaytucG93Ky9jM05hZWtkSXlIZU1wUExCdmpRWE9hSk5LSThZNFV2aE9KUlBhdy93VUp5NkRVazB2eCtIbW9pb0ttYUdRNGJCOTNjbFlKWHQyTkZUZUlHdEYrUzdzYXI3Z0NKVHM3UllCS0QwTGhMcnREdUZ3Z0JKMFBQYlRMNXR5RGZCZ2hrTUZkUlZpSkc3N2Q2N1BjcWtCNyt6MlNXM2JndWZ3Q3dqNC9scGtteWNlMzNoMWhlOFN5djR1cWdpWHArTjNEdFAzc1hyUXhwWlM4OHdMdTQ0L1loUTIrOEFqUmR5K2orZHFmVWpYdVNITHV1Sm1zSDExai82MXA5cEQxcHkyQTgwK0VVNDRBZkRwdmRHVHg1SmJkaUlTRjdQYmhJNWJDdTUxWmZCYnljVmhHa012em16bjU1SFpPbkova3JjWHdyMFh3MmtlNy9MK0FVMkhaS0ozWHByaFpPc3BCeUprS3ppYUhOMzlIejgzQ08yMDh3VFdiKzN6ZE8yMDhlbTdXd1BwaTFPZytOWTJDUk5jMFRxM2FpZTYwNHlLbklpZ3ZINHZMc0p2LzlMazk2aXI3VjJrS0VGZUlQcG1IK3hzdGlLN1lXcVlrK2xTZTNWRmJHempHNCs5Qk1TVVFwaVNwcTVRKzhqUDBYRDlqY3ZOcGJtdERDRUZlZGpZVnJjMFVQZkl6RWtkZGdwNE1wNnljM2gvZzl6anhlZTBHMlIxQk95OHN5MmZyMHFFOGxoS0M0VjB5ekxRTXZ2ZjhkVng2MEpYTUtaM0dGN1ZmTW4yN2o2Ky9rNlM4MWtISTdhUXpSNkJhYWNySWNHWHFXTmh2dm14ME8xY2tLM24ydDQxVW02ZHd3cG01TFBuMFBYWldWR09ZZ2d3di9QZ2FEMWROekNUOHFJZHRTMVUwajBSejk5MGo4WHZ6djlPSERXVFo1N0JRSUlvVmhnUW9yL3EwVHp2a2swOFdNMzc4R0U2Wlc4eDNTMmJ3amRieDRIV2dXMG1Tb1U2Y0JYbGt6enVJcXFwS3FxcHFPT0tJK2YzaUxSTlVKNWU2c2psZXo4QXJGQ3pEMk9kQ3NIVGltM1M1N0c1NCtuT05wNWVZSERLMUdrWEFGeHNFV0JxNFpZK1VoMHdScFZodG83OFNISUdCZ2NibnlSbXB4aDNLUHBFSko1SUdpejdkeUZuSHo2R3NLQnVBNm9aMkZuMjZrVVF5amR6ZVBYSXU3S1lpQ2gzeElEc0M5UnlTTlo3M0cxWXp5cG5KdlB5cHRFVTdhWXNHeUhINWtLa0NyN1RzQlNSSlZBcUpjR3J1cjNCN0hNUVNkajVhUWI2RFU5Mi9aa1hrSUJyeG9DUDduWThSS3lxUTRBUWlTTFF1S0ZnQkl5YVlkWHFZZU5oQlo0VUx0OHNpMmFteC9rVUhXWGttZ1JxTnRmL0t4SXphaFV5enp3cmp6ZDFsUHpTL09NTDZzNC9SMXRyR1UwODhpWm13YmU5bm52NG5NNlpOSjY4Z2Y5Qy92V2RsKzdEZXkwV3BuNmU4MnpnaTMxVW9JMVBRa1gzV2hPRmRrNWZUaXh2N0RGalFJcnQvVDNjVTNiTC9DSVc3em91bXdOeXB1OWhyclhTVFdSTVdFZ05pdlNXdmJJZ0FrdkREWVR0MGIzVVZob3FlWFk2U3dyNUc0cXNqME9qUUJldTlnbmhTMmJ0OEVxbGd4Y0dsdEhQTytBcXVPOXBpNnF5ajJNQmgvSENkeG9lUFZiQm0weklTd1podDQ3cDBsRXlYVGZRcjZiY0dvaXVNbFhrTTVOOEVqaEpvdUF2YVhySnZVd1Y4S1o3ejVzY2dVUU5WTjBQT1dURHFUc2o3RGpUZkI4RVAyQytFckZGSDcyK2dDaGR0VnBUZmJma2pSK1RQcDl4dlkzKzFnUXArdCtXUFJMVTRib2VMeUVDTm9BWEUxbWFRMk83QmlndFVuNG5SNklCaEZoa1NRRkdwN216anhmWExPR25pVE5ZMDJFVG5zNHJLZUd2cldxbzcyMEJSaDFpc0xKQWsrUGxTbmZaNGhOTnk2OWtSMC9FaU9TQzNpdnVXbC9QQUdrZXFFcXIvRFhqTjdhOVpnS0lvZ3VKOEg1UEc1TkxjSG1ianRtWU13NklnMThzZE45a2I0dWYzdlVkVFd4aE5WU2dwOURPK1BJZUdsaENiZDdSMEVha00rQldXUjNNWkh3cnhuZHd0WEptempacWtCNEJTUFlJdUxCNXVuY1R5YUM2OXF3M1R0ODEyWWJRZ3BVQW9KanViRkg3WnRpREZyaDFEYVB0bjd3Sk1IdDA2OGg4aWVqL3hSYzA2SnVTV01xdHdQS3NhdHZZbXV1bG5TeVFjKzE5V09oeGVKb3lhUklFM0IybEovTm41YUdhYXRtTWZmdlZ3WU5uVjdaTHNnZ0FYRmk0bDF2NGVHeHNieUE0VThFVk9rcCtiSFZUcVhqd09IK2xxbUZpa0lRVkxLNWl4QktZaE9lUGNlZHc1MlVuZXd3OVM4K2xxMUp3c2hKRkV0blZTZHQ0WmZISGQ0ZHphc1lnTlh5eEhPSDBJcDI2VENmY1ZaMG5JWFY5VU0zbWtiVHlQMUJUQ3dTR3VybmFBSXdzOG9NYk10UHlKd2I2WEkzODB6dktaeERyc0lubG4rUXdjK2FQM2FSL01LNXZCK054U1Z0WnRKbUVtT1czS2tlaXF4dXI2clYrWkhqL20zdlZwUmpaZ0tNcGpwT29LUmlxZmZuZlptbTNHbUd1MDZQL3dqSzE4UEhmbWIzQVgxbUhHN0dSRU13cEdxRzgyRmlIWVhOSEtEYjk4QXdsc3Jtalp0MEp5a1VhTnlnajQvN3ZybU4wQmdWMG1WL3E1eWlhU3BOZzNaYlNqWlpEYVM4TWtaRW5Va21LVURBY092dUorWkh0Zzl0MzU0cHJHVXZWY1ZnWGppTTBDWFJvRW9uTTRVcnVBQ1VMRlNqVVhIK2plVlZYbHNjY2U0eTkvK1F0dnYyMVROQjE2MkdIY2ZQUE5uSDdxcVd4THhybWdzNHFmdUF1NHhKTkZ5R1VSV0tQaG4yWVNyMVozZFV6ZC9VT3NKVmpSVXByLzlpNk45OTVQdkxvR0xTY0h6ZVZDcGpCNnNRLzdyYzhkcU90OHR0WW1iTDNqZjM3SStUKzdra1JuRzJnNkpKTzQvZGxZUWhCUEpucmpMQ05rM0loNEFsVUlMTlBDS2NFSWgzQTRYSVN6eGpFdVZNRWtWeFZ6eTlycDNLcnpidjFVR3FKK0NyVm15bHpOWERsckRhYWF4U2YxWjVGVU0zcG9tS0hFM2RGTjFsYjdTREthakNhZGFOaERwdUZIdzR1aG1qMkxKbE80Y3pndU9lUDJNRzQzT053Q2doWkd4R0xlSEE4L20xdkoxNW9EV09yUFNTZ09uQU90NGJYWDJ0dEJ3TElTQjQ4YzVHWEZLSWNkaVRhR3o5ZVVFdEJnUXhNY01VK2hla29OQzU2OWgzQVNna2ZYNFo0dDhmNDZ0U1p5NkRLek5aYkxhNVduY1hEK1VqeGF6eGpXcXBZNWZOb3dQNjFMUGZsV3hSQ00wL1J2VkFqeC95UFc0QUhnL3BodDI2cUtRTWFTeER1Q2FJWWdHWTFoSnBNb2xvSVZpR0JHWWtRMEZUTk5uZTRhWmxhSnJrcjY2YzVOKzBsOVdEUUYyK3k0WHBjOXJOaXhpVVEwWkFjM1ZJMm9vdHBreS8yZHM2U0QwMmJhUk1KT2RST1BmZUhqMWZWak1DMUIxbDRRQ1hlTnNlT2kvR2JDQmpwdmIwVlB6R1RVWGZNeDVoMUEyNmg4Vmh0aHRqYXRaK09yTDdLMXNZS0tqZ2JxUXUyRVl5RTdCMXFtaU9sVmJkZS8zZVZaZFFTK2FJYWFDSWJzbllxM04rT1NEMi9ZUS80Sy9IcVVCdzUvbEZQTFY3SzhaVHpYZmZZL0JKTHVOQW1GcjdMMzdjUnhJd1hIRC94WTluNHNISUtXTnJ2aFlGOWt3cmFrR2htT2haR3l5Y09xQTVBb3FvNFJObmhzd2p6K2Rtd3VINGE4V0VMaGlLTnZ3Vjg2bm81dFNUU0hLNlZ4QjIrQkUwbU9ERzc2ajQwZGV5eU1oZEM5SkVKdWttMUpKdFF1SStaTG9palEycm1SeWc2Sk1tWWlqMjhJWXNWRHUvaGtocmhYTW5YQlR3KzFIMmZxdzJPbFdaYWROLy9ocGxCcWo4bTBlV2ZrQURrcmxnR3hPa25yQjdiY2l0Vkp6S2lWbnB0a09KRnFIRGx4RWZHeEg0R3JrL3FRQTZ1akZXVWZ2clUvSlBqVEpVbitlSEVTVjdNWEtmYklENUY5cUh3NU9DaHowZTFmREdJSGdNQ2Qrb2p0U0xrdHJmdU5tTVZrWmI3RHdlMXhvbHNMT1l5ZDVCUmJmTDQ2d2JVL2ZaUlZxNnNnTXp1Vlc1TCtQT3laNzRPMCtPYXMxTmxPbWtTTUliN2U3YlNBTUFSbEd6WWpoVUtvV3VGa2x3T0hackZ3MVFvNkplaFNjdGR2ZjhNaDgrZlRWbGZIeGx1K1Q5UGZIOGZ0ZEZPOHNRS2xKbzZha0tDTDlPVms2bjkyaWJMQ3g1VkZITnpoUTN5eUJFdEs2b05aZkxUVEJDSHRPcEc5OUk4dGFkTm8xYWZtVDNFcFh6VzMrYkNNOHA5dTc5Zm12VTRWZkVzZG1obWJsL3JwVE9YY0RQZjRmT2ZuSXpnYkZtaHU2blord1AzWHZNMmNjYTFzMkpTTEl1em1hN3Q2Q1VoMkwvTVJUZkNONDFkaW1QRG9lN1BaVWI4ci8xNVRCZk1udWZqUllkbk1iWFlTK2NUQ0RLVTI3TDdHYVNSMFNrSEZPQWNCVlNjcVlxaEpDUTZSZ20rR3o0YzJObXpHK2JVVFNTNWJSWExGYWp5WFg0UTZialRtOWdxTTladS8rbzBzRkl3dE96QnI2bkNmZWhLeGQ5N0hiRzVGcUNyU01vbTlzWWpFSjU5aE5yV2s2b1QzWW02a1JFalFpL0xaOGRzSE9PT0tDL2p3bFZjNTU4cHYwbFJkd3l0UFBjMEpWWlVzZk9CTzhtOS9nTWJscTNFVjVpT1R5VjV5cGk5ZEtGSllZRkxxSEZPd2lQV0IyWlM3S3lqM1ZQQlI4M0cweFBPSkdCNGNTcUtYRFR1RHVyMnlPd2M5RVJKQ2xtQytQODczWEMxc1dkak1lUTlGYUExSU5CVk1TNUEwNE1DSmt2LzlYamExc3kvbDZ6VlgwaExKUjlFaVNBU1c3TDNSWitSVmpNZzJxSEQwLzcwYkdxcDQ0cW0vYzl4eHg1RzU0SENlZmU5OWx0VlhFdGNIZ0hCVDVyUVlSSjRObDdPdktMYnRXdE9lWUZhSm0wVWJRcGlXNUxXMVFSSW1IRHJXelliNkdOR2t4S21KZm1HeWticmZvNyt4YURkOGVIY1NWdEZWYkxCM09JRnoveEtmUzBDb0xvSWRPMmlwK3h0S1dDSExNNDkxU3hlVG5WdkN1SEVUMDdyT29Sa2RYSnBiUzZkcCs3aVg1dFp5YUVaSFduK3I3eG1oa3BEbmQ2TXBrc2FtRGpUUjg4UTJOblZRbE9jbXorK2dxVFhjYXhHVFE3U1pKQUxoU1BMcUoyVzh1NnFZb3lmYXpiTWYyRnhFT09CQWVPTGROYlpkWTNKQkJpZE55cWM4TjR1eHhXTlkrdG1MZkxudVBTYVp5OUZHUlludHROL3ZITlZJSWhJaTJuWVFmazF5M093eGxPZjZhT3lNTURvcmZkdEF4Z1Nva3ZpV0ZGbWRLdTNuaGpEKy9GeUN5MDUxOE5SdFR0NWRiWEhwaGh5U2g1VERHZGxvMGtLbW1TdHU3bmw2QnZzYkliQnE2MG04L0FhT1UwOEVBWW1YMzhDcXJSK3hobGhEd1dkZG1zRmg1VFhkWk1JQWlwRE1IMU5OaGpQT0kwc09valhzNlpkenNKY3ZNYXozSjFFVWhaS1NFdUx4T0VZaVFXdG5BSDlIQTBkTjJZVGhFa2doY0FZVHlJNTZXanVMMExId2VyMlVsSlNnS0VvcTEzUFhQS3VLallWSjRQekRWSDU4UlNadk9zWncrZXBTRXBZQzhTQVRTc1p5L2Z5djRYZDRNZVhBMlpqZit0M2V0OC9vU3Mvdm10b3VkM1QzcVRZTmswK1dmOG96Ny82VTByekYrRFAyVFVacVE3cEJJWkZDRUJjbVNvYXRWY05XQXFIYWdqNmRXeEZJWmt4OUE5MDVpK3JhZzVCUml6SFRsakpxNG5iaUcvVzkwaFhEZld5RUVCaVd4Ylp0MnhDakNsRHpDekFzazJSekUwWnJDOExyUVI4OUJoSUp0b2FyTVN3VG9lbURKbWdMS1VscU9sbkJOcTcvNEc4VVgvdFlIM2N2cWYvTExUUUcyMGo2ZkFqVEhENVh4cElvYnJYNzk2RW9ScCtpWUNJWm8ydXNUTEduajlFMU1oV0ZkUHF4alpRcUYvMEFMSllKWng5cGN4aTFkTURVc2JDekZpSXBWTDgvYzc4djBGVlhCYSt2Yk9XSUtabWNPQ3NicFo4cTlLNW5QOW5VUVN4cDRYVXF2VWdTbmwvUk1xaUMySFdsOXIwT2VrcUVUVUluYlRVbE1GSUV3eXFta2tPTnpLUEdnTGRYaDJIMWFzcUpNY3Z4RXZNbmVUaHkzcTd1MlpFNzdobHh4V05aZ2hkZjNOaHRBdldwYUUyNy84bHp6M1c5ejltckFCWGdpckgzRGV1OWRabTI5MzkreWg0VExNajBCRG01ZEEwVFpNd3Vzb2w0ZVh6bEFuYTBGTm1NVlFPT0ovOGp3SjVRS01IcWpjMG9Bc2FXbmNzakh5cTBCUGF1RzdZaTROempNZ2ltRXBUUFBTNkR4RjZJTDB1QVlzSjZuOExKY3ozOGJHZWNBNEoyeEdxRlQrUE9zVTdXK3hRVWsvMVBMRHRJa1hObDNNSE91S05ieHFRcitVWjM3QitpUTJrWWRMNzVIazBQUFU1MDdhYTlJaE1HNkVnR2NDa09iaHgzT1QrY2VSTitkRnFlWGtqdEhmY1MzN0tWeGo4OGd2OFl1NUF4OE1GaW9sdTNVditIaHluNStmZTU0Tkx6T2FYOEZPNVorMGYrWHZrdm9sWTRmVm12cFA3OWw0YlNwWlFFTmJQNzloTU1MaXBTdlBBOTlxQ01DanVHS2lFWkZDU0VKTU1MQjgxU09laGdEWVFUSStLaHBkbGljNFhGMFdmWWV1ZUdqOHFIRzE0QjRHZjN2enVpeDAxekpsZ2Q4SExNMHBsYzMxRFBIK2R1NTdFYlh1S2I5NTVHTE9ZRVJlRE9Wdm5MalM4eHZyeU9HNWVONS81cXU0TzA1a3hneUQxc2xIRlQ0S0FqWVBRRVVIVTdRRDJzQ1VZQ3JDUkprWS9obVUwbmwyQzF0R0tNUFlxa3F4RHRUOWVSOS9jZkVDMmRTdlM3RDZFYUNlU3E5eEJXRjhsR3ozdTV0bkg1SHRpbWdubkVVV3lyS1dGTFZUUG5IVEdKbzZ2WGtxeXJTY3VSL0dIcVo2dC8xb2lzbXhtTjJwMVIzTmJ3TnFUZjdSd0pwOGFXeWlhMlZVNWg3SmdLNmpzczZ1cGE4R2FzeEtYbXNIcXJIeUUvcHlncmwzWGIvV3l1YkVRNHRiMHZwUFQ1aHQxSnR5UUliWmV0YVVyQUFjL3RUTDNCMFp0TUdHd2lZWFE0YWZvSC9GajlEVk9mV1VyRG9neGFvdm5vU3BLeU9jMUVMeW5pdDZVLzVvRXQzeUxlcWFNNHJkVDErbzhPYXYyUnV3dWI5SGYzTkVXQlFCVUtXcHJZZVJlWnNFT0Z2ODNVT2F0NER6Smh0MHA4VTRTV082c3g2cE1JbDBMYUxHT3JWc0g1NTl2clUxZ0lUejBGczJiWlpNS1hYUWFOamZZRWQzVDh4K2tFMnkvVGFXc1A4OTdIV3lEVk9SckRCRld4eVlSM213ZXp2eWpSWG5haVRQdk14UVh4S3JYN3M0VGpxNTAzUlJuZWFPdEl4MjRyTmQrSVhIZXhzNXg3TXc1am82TUVJbEhZWWhPbjc2dXNtbkhEb2g2NFRTS3BjOWlrNTZsdXlhYWgzVTlSZG9DeXZIWSszeklhaC81cTJnWGRULzVpZUh2TVp2OTlsL3pzQW1WZmVMdVdhTXdFWlpmZXQrU3VqZ0k5MXRvVkF5bUlWWXdsVmpFVzEvanQrQThaT0luRFRFUlkyUkJrMnBTVEtKdjdqWjRXVWZWV05tMVp6WUxEVDBuYnJoVlNFbFYxc28wbzMyeFl5WVZOYTNHYkJtSFZpWkl1U3BkeUlmVHlrZG0vVzNZMFUxamdaK0hiNittTUpqaGdTaEZabVc2ZWUyTXRDZFBpa0ZtbEtNQWJIMjVCVlFTSEgxaE9lMU1ESDIzY1FJYmJ4WlNEczFpMXFZbk5GVzE5MUhiWkdLSmo1b3h1NmRZYWIrZStMWC9qa1cxUDA1SHN4Sy83N0tMYmJuS3dRU3pUSC8rK3R6VXBvZXluMTVKeDBFeEN5OWRUK2RNLzJCMWVoMUd2Q3lsdHJqUkxEc21tYlBuclAvcVh2WlpKemtWbmszZkIyY1NFd2tlUHZNc1RMMzltSTloN2FWaFhaY0FUa3lXWGJSYmtyb3lqcmRoTXNyQVlQRTVVZjhhZ2N5Sjh1Nk5OWUpwTmpQWEh5SnFZUzU0STBUNnFEalV2Q1E1N1R0SytOVmR2RE1oRWdtN3hXZjFFL2x4Z01qLzNJK0pvL0NWNUFwL1dUNFJNQzFNTVhBTHk0SU1QRHV0NTZDSVV2dnJxcXdkR3ZLMEVScnc5NWNka0l4UkhXZ2JUVzVOOVBIVkFGdFZaK3JBQ3FHMytiRGFQbnN5YWlUUFpPbm9pdGJtakNIb3pzQlFWUFpuc1FTQ01FRWhCbndUQysycy9ZUGJ0RnlwSVFxb2J2eG5obE5ZdmJieFNjUkZVM2FpbU5iVENZeUdSaHNZQkU3WXhvYkNSeDk4NUFlbUpRTXJHa0tZS0VRL0hIZjRaMnhvTFdieHBDc0xaT3hnS29HdTliV2kxQjJZczBEUUZUUjM1enB3U2NCc0pRTnByT0J5K0hZSzJnSkV5QXQxMlp3aGw2QTBtSk5BYU5ZYUFrdGxqd2crKzJVTjNtaExlV3RGQStTc3RqSXUwOEVIWkhDYWZ0WUR4T1U3UzJnV3YvbXhFMTZBbU1HcVlyMmhqT1ErY1dVYjczeDdrODA2TGgyT2pXRmpoSlZMWEJzSUF0NGFxN1dvbW9hb0taSHVKeFEwZS9kTTdQUDNzRXI1NXhaSGNlczMxSEwvbVMrYSt2SWpIdXV4cUlLWW9sSmNIdVhQY0ppNlpVSXRxbVpoeEhlbFVVRDBTTTJJdnRwb3RNYVNHaU1ORjA2djUrc3c2bnQ1V3dzOTJUQ0dtS0QzMTlBMjdKZVNIdzlEV0JpVWx1eEtnL1g1WXVORCsvWVFUYkwvTmRwQ2d0dFp1N09QMTdyckdqV21TZGhSYWFNWDJPVDdDU29vSnlSaHpzekxsMzNaa2lZcXd2Z3RiM0dQNEgvcGwzNXRXQ0dRMFR2Qm52d1hUVG5UVEQ1cUw3ODViRUc1bktnbW1qd3MrYlhmSXZ1NlR3Z0Z0d2JhQVJKOWlQNzUzSitTMERoWmZhK2kyRWZxWGI0QVVkSlJZNUc4UktBZ3NNZkRmZFArdHk0RVFDZ2cvN1F2Zkp2ZktjM0ZPSEwyYjNTUkJLQWhWb2VWdkMwbldOS0ptK3BDVzdQdGtweEtvZkZNLzRMOTZOQUlka0gyd1FGWHNXamtsNVlOTENib0MyUm1ETzVjQ2lZV0NLZzErdWVwK3ZEOEswMndvcUtuSXY0b2dLNTVJMlE4TzJycjIxeUNpN2JJL2Y3a2JYa2FQNXFmN0QrOEdkSU9mTHpuRDNpdXF3aStXWFE2NkhjK1JhV3NLS01ndjYvRnMzRWl2aWlrcEZCQWFodXpucEt1U2RZbmMxTzhtcHRUNndBWnNvQzRwUmw1bnUxVVZLNTdnMWJaNlZrK01jUFpOeFp4NTlwRWt0Um04MlZyRWU1MG1IN2JVczZaOUdjbFlNOGdrcUJxSzRrQ29HVGFKc0pTWU1rMUVRNXBrWHZZZHZDZWVUdmpObHdpKytFK2NzdzlHOFdUc0l1dE1HOHNhdmxqdVNJMkJQMHVpcVlKOGovMGVVd3FNWVNxQ2xidmJnUCt2RnZRL2ZrZ0pjeWY1K2NIRk9zKythK3ZZSDF3OGh0RkY3cDU1cm5zTkZBZ2M0VGlPY0h4SUYvdnVXOWNPS2k3RFlUdjEwN3RWaC9UcWkwWU0zN24rK3V2NzBYdGl0MlE4MlEyVkNMRTdTWG4vSTlobEt3NnFPWWFtOTc1VDYrdDFqVE1QS09IOGNkdWdvWWtkMCtkdzk4b09BdUU0L3hFMTNTbjdPZnJPSnpSZjkxT01uVFhrM1BsOW15aFlFU21pWUtVTFNNSjkvQkdVYi9xQWpyc2ZwdTFuOXhENCszUGtQM2dYN2hPTzdJbHYzQVdabVlJUEEzNyt1SDBVSHdReUNlOUJKTHdIOEVYRVVuaXZNNHN2UWo2TzhYZnkzZUo2TGo2OWs5T09rdVNrTHIraVdPZjU2UjRXajNZUWNDb00yUUVjd3RCOFhvb3VPNTNPSld1STdxenBxV2ZIbGxKMDJlbG9QdS9Bc09wZmIrOFhrMU15TXpuMGlZVzRVemtmaDE3NWRSS1huMGVzc3hQUlg1SDIxNzQ1OEliVkpXYWRUdWozaFdoamJMdlBxSEJBWEFGOThJVDY5MzJUZXpvVXBvWGw4NkxjK1JyUlVJaTFiamRHcWdCRjAzVmkwU2p1akF5czNGa293WER2Sm9UQktnQnV1ZjlkeWtxeUVRS3FxdHNBS0MvTmdhRThMc3RCU3FpdTNVVzY2ZERjQktKdDNQUEJMWGpGTkl6QXBlakp5VHg4akVIVXFhQlljbWlFRUgreUd3NFZ1dzF1SzZtblpIVTFOLzYrZy9XMWZ0NTk2eWFPTys0NGpqcHFBVHNycXBsM29NYXZyOHBnYm9XZnFsODRpWGVBN3JQbnVEL3o2Y25xUGc4aHc4V3laeGdHLy9qSFAxaTRjQ0Z6NXN6bHJydnU1S0h2SE1DMy92QVp3WTRRU1NISThEdTU5enZ6eU1wMDhkaGpML0wyVzI5eHdRVVhjTmxsbDZGcFBlM1g0eDArcm5CbE0wMTE5WFJGOXFmc2tpQWNFaWt0dmx5ZCtseTNoZWlqWUdXMU1aWkd5dzhpMlUrT3BrajVEaEtiOWlzOThpOWxnQ1AzL21jYnVlVjNMM0RXY2JNQmVPbTkxYnovMmNZQlE2cldIdktYUFhTTnorWGpxamxuMDI1R2FWanlBTG5PREI0OThMdTBra3lSK2dxRXFnNWxDbEVFUkl3a2QzZmVnWWxuVjJOaFEwRk5SSWlJSklvWXVYemJnY2JVN0FSdlgxQk5VZ3FLVlFOVkcwdXVGQ2dlbmZFNUJrV2pMS1FWcy9Oemt3S2hnbEFrMHJUM2dFamxkVGw5SnI3TVhkK2c0THdUaC9kR24vNGRBTzlVTCsvSExCT0V3Mkd5RGh2UGdjVXFpaUxJR1RPR1Q5czM0VWxVRHhyVEtZMllJeksvMndKSi9xdUczUCs3VUFKNUNVbEIzUDVzNnlzNkMwTys2YUhhTlhNeWJRb0JoOUkzS1lGZ0Y0dUsycy9uQ0NCaG9jM0poSmUvbXE4dVpGZitvK3hKY3BYbXlGS2pIRCs5azNNUEVuanlEK2Y1aGpMZWZDakt4cTFMSVJRQVhRT1hBeVhMa3lJUmxuWWprRUdHOTBESXZ3SDhaMFA0WGRoMkVzUmI3ZFFjYVlLaWdXTjhhbnExVkFoRWhkYVhJUFFKbFAwRnhyd0lnUmVoK1g1Zytjak80OCtmN0sxSGhLSmlSZ1RaQjh5bDdKUXhKTCt3YjZMczBBTzVlL2xjMmxjc1FmVm9mV0xBNSsvMmUzUjlSb3JOenQ0ektoWmlsQnhtVVdFNzFGRWp5VnRiMXJLdHRZbXRMYmJQUFRHdmlHMnRqVVNOcEkyOXk2SFZyZ2doa0xya0Qrc3krYWRTekpFZVFjVFMrS0IrRkZIcEJ0MUlFUThQNEJ0WHRFb0FYVk5JSmsxbVRTN0U1M0d5bzZhZGFNd2dGRTBRUzVIUDc2aHBwNjR4aU5PaFlscVNXVk9LOExoMHRsZTNrVXoyYk5yU2wzRmhvUEJjWURRN2tobWNsVm5ORkdjbkFsZ2F5K1dsempLV1JuUHRIREFoaDFFRUNSUk5JbVhRdmo5TjJhL2kyeHIyUkg3WjcxUEtidlp2VlhzRFQ2MThBNy9UaTBQUlNCako3ald4QnBETi96alhQYnkzKzFCNjMwbDNlTWpOMzVYZ1kwV2phYWtQNStUSkk3SnVaWDRuTTZzOWROeXlIY1dsTURsYnhYMlZ4dVJMRCtEaGhJVlhVUmxLSlA3bzQyd1NLTE1qaks4MGo5c3ZPcGhMcXRmUWVmTlROQVNqNkFXNUpOcmJ5Y290eFBtTDY3aDN2dVQzYXg0bUdReWl1ck13cFdrM2QrbHZuKzNSaTFjUkJuS0NGMldxejlZTGNSTXNNSWZvRzIwTlZmUUQ1a3NTWjExSmRKVGRpTUo5eUJsMHVDM283LzNweEFkMEoyV1poVGhVbldneWprdHpEQm5qR3U1UjBScExSOXNQMmRnWnFicUNrY3FuUndnYzA4ZVQvWTNUVWZPeU9QcVZENTJlRHpkYzRtOU5XQXV6WW5kTWo3WFdiSExtb21JU0ZRcG1QNnVXU0pvc1cxZjdmeXBXWUFGQ2hRK3FiRXhMcUNPZmM5dGpqZlgrZlcxRjJHZmVxYW1RVEFKMk0xd3JHcU16MWRBbTgrempVZHlwTGxQN1kwMVVwVSt6SHVDQ0kvT0pjaUVmcjJyRU1DMk9QN0NZOCtmYkpFT0tOamltWUZrVzk5NTdMenQzMm9VR3VxN3o2YWVmc21MRkN1S0dnUUlrcE1VdklnMnNOcVBjNWkzRXB5b0VLeTEwb1NJTmUvMTJQODdCVDRMVS92UnFncCt0UVBWbG9CZmtJNU5HTjVud0NCZ05xRzR2SDZ6Nm5HZmVmWkdMamorYk4rNTVsai8rK3k5VXR6UXlhK3hrM0E0blQ3M3ovSDQ5UTUxMzNvYm1VekVOQTZkSEo5eVNSQ3M5R2dwbXNUN2plSjVwa3hSdnFXZGFkak16OHR1b2JuUGhkNXNvbG9WTUdHd0tsNk1ta3pqTkVLYXE3VFVacGlsZy9jNGkyRnBpTzFtS0NaclZ5OCt5Sk9BUUxOdGhZcVZ5cHJFVWNuTVVmblN1aCt1KzVzRHJuSVZrRmdyZ0dsUzQydkdwMXlhN2Vld0FMNVZaNm9nNDRUSWxRNXFDc0tyV1JCd1NvV3JSWC9uNkRnRmpKWjQvbWJnQ2U2VjJiRHRjYWp5NTlSc1VlUnE0Y1B5ejVMcGFTVm82YTFwbjhjdVZQMkZyWUdKNlNuZEllWDcvTHk0ODFQSGNMNjlJelp6RVZEVnkyK3JaK2RMREpQVWlORzhPbFMvL2hibGo1dkh2KzY5SDZXNnUxUDg0NzlnLzJMWkg5TVZodmMrZmROdWcrOEhYMldYWVVKeFhTSkV2RjhNeWRoRjZDc2gwZTZucmJLR3lyV0hBcXkvNjFoMlVaSzdsVHgvN2VHR05UU1NjN2RsN0l1RnVtMmxLTFRVVitieXk0RkNxeG1Xd0pkck10aVYvb2JxcGhsQ3czU1lPRnRqQWlxcUJvaUZVSFVWM3BQeDEyUjBuN29FSmJPaUFMMXVoZlhpSmIxdGp2bDVuTldtcEpGSkVUd2xUb3pXZVFURGg0YjhBZGV3WHNoV2E4cFhBdHlObGsvOTkyNys2emVpa2FaSGQ2R0Q3a2FleXNERVh5NVRNS08xazV1S1htTmNSeFpFRzd0RVZ2YjN1K1owak1nK1pqajMxaFFMQ1FFNDRncnJHamF4b3JHVml4bXAwUmVHekxSSE0vRmtVVGpnWVpCeGMybDZMa05FWk1OWm5Kd2xhRm4zbTNRL2RoQldzcjR1emFJTk5LRnlTcGFNcUlpME10dUNrSXdmVWtzNUNpM2lWdlE4eVowaGMrWVBRQWI5aU43Mng4cmFRblBRbVZ2Wk9STklOQ1M4T1JZSno3K2F1eS9QOTgwVkovbnhoZ3B5QVFLaDlvQjVpYU9xK3F5M3c5dHJRaU95empJeTVLRWVHS1o3NUdvbFFHNW5GMlR6NTNqUysvNXYzYVcxdFI4OXlZdzZobVgyWEwzZmRkZGYxOFRXN1dvbklmdFp6NE5jQjRwMEtDVnhNMjdFS0NVUndFVTdBZkNDanM1bm5TTEFkeVlmUHZNVzBvTWFPZSs2aFpmSGJhQ0tMVUZ3eXBtb1RZOWxBZk9CMkdJTmd5Ukt3dVBlNWVuejVIYmJmMHh4RmVCUklrMForRUpjR2tiSVgveStRQ1FPWUdmMS9FUWV3dHp5UFAvcnh0NGYxUGkrNDRLVTlBT0lSUVNFQWNPbE8vckR3V05wRFRseTZnVkFraXBBb2lyUkxhUlNyKzdIWWphaTZORGRBdmkvS2pwcGROM25lMkF5dUs4cWtmSVZHSkdBTkQ1RXd1OXpFc0NtbzltdUVWVWxtUktLWWUrOVQ5VDhVak0zYlNMejdNYTV6VHNlcXFjT3Nya1dhSnRISC9vbXhkZnRJTDB3YVN5Y3c2eG9JL3Y1Ky9MZmVUT1lkUHlYNnhqdklRQUNqc2hxenVoYXJ1WFY0TUR2RHhGVlN4STRuLzgzVXlsbysvUHVUblBPVEg3SnA2WEpXZmJTWW8rdXU0dVVISG1IeVk2OVFzZkJWbk1XRlE3VHpCRTRsVG9ZYVpIWEhnV3dPVGlObXV2bXlkVDV1TmRLbmp5Ukg4RWpjV0JqZzVJWkc3cit6blgrK1orYzVPSFJJSk8zN3VQRTh5ZGUvTlp0SDFKdDRhdXNKSUV4VVBZSXBsYjF5aS9abFBQSXJwWDkwV3laeHV2NUtsdkVCd3F0d3dQU3QzUC96QkVMMGI1dDg4d2UyZk5UOTN2MW00K3VxWUdsbGxBS2Z4bUhqUEd4c2lMT3RPY0hNVVM2YVF3WmZWa1RSVlRHZ0xUeFM5L3Y4L1VjUDYvWE9QZWFyUVZac3JsNEwxZUZIa3lYZ200SExuU0NoZUhDNW5HbmRrVVJRb01XNU9MZVc3MVRPUkFLUGpGNUxnUlpQeXovN2VXUkZiMGxiSzFEcUJhZjN3LzJsclZTd0xObTd1U3J3czczYWJ3TFZHeWVhaERkWGxObmYyeGxIOWNZd3JkNW5xU1RMeTdselBXaXF3c3d4TTltMi9ST3M5dVVveFZQeDVuNEEwazdBOU9abUlyd0gwYnp6WFE0dE9ZQWpwcFNocXdvbE9Sa1VaM2xSMDJtc0lrRXJORWxXYUxRLzdMZnQ0cE1qYUlVbWljN0JhNTQ5YnNFM1RuZHkzQXo0Wkwza2lqZXppQjQ0R2s3TFJwVVNNNVN3OGR1UndwK0Z3R3B1c1FuM1UrdHBiTnFLMWR6eTFjZU5CR3h2eldGNWJUSEhUOWhwMnpFQVFxSklTVzJubjJEYzJTK1pjSCsreFBCTm5UMC8rZm41QkFJQjhuSnpxR3Z2b0czTFJveWdEeXRtNTZRa1loNVVDNG9LQ2lqT3lxU2xyWTM4L1B3ZTEraTJkUzNJOUFoK2ZhbVR1Y2NVY0d2OU9CYnR5QVlTWU1hNDhMQVQrUDVCRjdCNFVaalB0cmJoMEpXdklrMnVlenp4NGhQOCtwMWZzOTNZaGxLeDc1aVB4clk3MDk1MXNnL25jV2g2VzJKWkt2aWlUQjYzaExLQ2RmYWh6QWlESDZKVzBlQ0UzUHRCTDBocGIveHRXN2F3S1Q4Yjc3RkhFSTdGa2RFb1NJbGVOZ2F2b3JHcGZqdGJxTEtOaFRSWFFwZ20wdWVqNnZsRldIZmRSOGxQdjR0cDJNaU5xcW5VM25VZk5jOHZ3cEdiTlRDWjhCRFdqWDdXTGQzaEZJS0RuVTVVWUp1YVpISE1obEFPY2pxWm9PbVlnR01RNGVXL2NHVFdiYUN1UDc5OUVpYU5CcThMMW02SGJCOWNmaHA4dUF5V2JVekZ6ZEpqd2NhaEN2NzJmajJkWVlQeWZDZVJ1TVdvYkFkRldRNHlQUnFHYVJjaWJxNkw4UEhHVGh4YTMrRENvRGlhbEh0cENmOUZERFpQM1FURGZXeUNLcUFxQWErdEE5YnRCdUs4OE5vSW5iSWZqc2grYUUza2o1RDJzWHB0Q2xYSVhqcGJFWlpOUXBKbXN0OUgzMW82TXZKcyszVnBYN2Q1Snl4YU9qd2Zxd0ZIVEhkMS83NjNJWjNkU1lVdm5PVW1POVZadnQyUjZuTHdWWkFKcHdPZTlmUDc0TjkzLzN3Wm9hcjRGaHlPY0Rob2VmUVpnaDkvdmxmSTVZa0ZSM0RMdE91WTY1OUtmUGs2TnY3a0RrTHZmSUxxZHVNb0tDSlozMGh6aWlCTDhkclBtZlZON0x6OFJwci84Vy9HL2ZKbjNISGdEemhuOU5mNDdZWUhlWmJWLzVWZzZkeVc5U095Y080eGpTTnkzYWMyNWczekZTc0ErUGZiNjBaMG5nMHBVRFVUU3dyK1hGSENhODNaUEhMMEZqYlBmb1JYUHh1UGxIRGE0ZHVveWs0dzhkMkRxQWg3RUxxQklpUkdYNFVLT3pZSmRveFFwMkFwUUppWW5ueENmSXRJN0VneTMzNmNST3d0Wkc0Sjd2ZWZRT2dPMUdpUWpKV0xTTjU3SmJKMFlvL2k2ajFINHRubjlqakhDaUl2SDBpQk90RW95VVh2a0ZpMU90VnRPRDM5RTQ2TlRKRlMyZlZYamNqKzNkMnFVaENZbVB6cFh4dDU1TGJaZUxSVzVoWk53NjJjanE1cE5FYzdjUGxiTWMxQ0hsaTRHcHVLVmVtUjRDejc4eXUyYllPSkUvZjlobThmM083ZEcydHZZdmxPZmxENFI4Nzg3RjhFbnBQc2FMRHRucnlpRG53WEtyeCsrTVg4cXU2SDdGaFdEaHFvTHRNbUVoN2t3NjRwN2IvaGhaSVVUUExrSXFYTmtqUFpFK1Bxa2xZc3ZmK0wzdGh0RjlscVJsWGdvZWthRjVVcUpGSThaRmdTNFZKSWJJL1Jja2NOeWFvNHdxMm1UeVlNa0VoQVU5TnVBc1BZOWJPeDBmNjN2OGNRZkRScm1IMjJrVVZKK1kvSWw3bXE1Y3RodmQ0akkzeS9wMXoxeEloYzkxdDE3d29ZL3NUN2xzYk9ubExLME5qaGlOTVJDakIvL0hvKzMxNUdJaFNuczZrVE5JTjBvWmsvUG5mQU1OL3BtL2FQbmVlS3J2TlN2USs1UHJGYWlIMDhNRDdrZG1jd2M4SU0xcTFiVEpYWHg4Ungwd0RCMWgwYmlFVER6SnArQ0c2M3QxY0hzMTR5RlltSklLN3FIQmlxNDZhYUx6ZzRXRXRNMFlncEdvcTA5cUxsNThqczM0ZnVPTFBIRjltVGNubnhQM3MrL3ZDcFBkN3crRUE2VUdJaFViRkJtWC9Wdk1adk5qN0EybzZOWkdnWlpPcCtUR2tPVFdmdWljbDFGYTd1M2tOYXlxR2pxQTk4Tk9CR2Z5SDFEMjRkb3ZPc0RvQWIwbzB6U3FSTjhLY3FlMDhvblBKUFh5MkRuVjQ0Tm00Z2E1dFJ4NDFITDhoTEt4aFIvWmVzSG5PZFRRdWFwdUZTV2hBQzhwZTMwU2FkdEE5QzlMdHJkQUR3NCtwMytsVTlVa0o0aXd1ZmtvOGJsWEZXaUIrb0g5a2tSUDFjOWRlcG54NlBaMFRPeFpOUGpreHpxRjk5dmtrd0FzMnlKM1VzRW5Rc1lyaGQ3cEhhRDVQYTZrWWNITEdrQUVlQ3ozYU1ZL0hXaVJ4MzRISzJOK2RUMFd6YjFhUHptNW1ZMzh6amk0OUFVVTF3SkxvN2J1NnY4ZkF4SlNQemdYc1pTOWhuTjFsQ1pWdHN5SDkzelZFbFBlV1loSWJtY0xlSTl6cFZ6anNnbjBQS005SzYzclVqL0QxdmZ2L253M3pGODJ6YllkYU1BZGZ0MHN2djNQWGc4Z1U5WG91M3dNTS9zdi90T1VLYXlzR05uYnp5eG5MS25ERzJoL3c0eGxxb1FoTGJhZXNvMTFnVEJNUjI3SHBzU2crSm5RcW5aYlF5Sjc2YzFrWUhvYjUwV2pRS0w3OE1uM3hpRngvTm1MRWJpNXpzcWJ1bGhQWHI0Y0VINGFpajRLeXp3RDNFWXU3ZFZLU2xRSkhMNUlhSjdXSjJWbHpldHlXYmo1czlJbUdLWGlwUCtBYllQN3FHMFBWZGpZUjFIZUgzSWx5RGQwWitjbk5XZWo1VzE2aFBVNjRURW9PQ0RCL3ZCZkJnMmRSTlF0ZElWdFpSYzhOZGxEMThPNDR4UGM5aDJ6OWVwZmtQVHlJY090SWN2RUhYR3l0ZTVMOTZTQ0FLMjFkTFFsSEk4S1JxVVFYb0tnU1RzTjB2b1F5STJPOGwybnZlRldsaDZsNXUzdmcwUjM5NVA3V1dBeTBWUDVMZCtJbGRUaHBNRmN1bkk3Q1hiKy9ZdzNqNjc5VVhNczNuK2hyenpEWlVLWEVNa0s3ZUpTTDY0OWNXUUFMQlFWWTd6NmFlTzZCOVM5L3o4RTdxMzk1T2J6REFlemtlOHE0L2tXc3VuVW1ESjQ5THQ0VDR1TG1hNnRCNlNIYmE4VVZWUjlVZGdOTW15aG1JQmEvZnMyMGhIRTdDNzcxR2ZPTktZaXUreEtpdHNjLzZ6bTBJcHl1TitOREl4SEs1ZCs2SVhMZXg4ZHIvcXFyTjkrNTc5ZjlWbVFKTlZ6M2E1enc4eU9NOHlGVjdmZDJPVVA5Rk13VTVEZ3B6SE9pcElydTVrM3hJb0RNOGVLSE5TTVVHbjE0ek9JN1laY3NNQmRvWUtYem5zY2NlRzVIOUlOSklHQjNTQXFUazNMc3JxM3NwbXNuNTdoU1dCNjJCS0Irc3FhVWpFUDJQSVB0SWJxdWcvV2YzRW56MlJUTE9QNU5SN3orSFZscVVjbzVNdTdsYzkxQzduOHU2OVJveUxqdWIxcHZ2cE83RWkvQmRlRGJaZDM2Lys1MjVSNUpDVlRwVC85SWZZZUMxMUw4OXg1VWIxZ3MyN0wvNXlUbitVQ2I4NW52VVBQZ2NrYTAyTU95Wk9KYlNheThnNS9oREIvMzdrOSs2dnMvelpSZ0dKZm1qOFdVbnVXVmJNUUw0VFZFOXdmZFdVdHRjaWFacGU1ZWdLUUZOZ2lGSWJuU2wvQXVaRnBrd3dBWGp2OW56V2wyVjM1c2pDRVZGV2wyZEwyemJYaWlLVFNxWFB3T0tsTjROVVZhbGpKa2xQeGQ3Y3VsV2ZibHZqKzFiaktBcFh2ekpxekFDeDZOSkx5MlpNVUFNM3BkOWdQRlUzaVkrZktLSjd6MFJ4N0FnTDFkbDBhSTMyYnExa21Dd2srOSt5OE1QNXZ2aDMxNjJ2cWVoT0NXNk53MFQ2cFhMUnV6UVN5blJOSTNxNm1wS1NrcW9xYWxtNGNMbitmcDU1ekt4UEl0Rnkrb0FPT0dnVVJ3d01ZK1hYbnFKaG9ZRzVzNmRTM056YzJyUDlZdzV2Sk1JaW5jU3dhOGNOMHJYaHE4KzgxUlJ2WS9YN1d0Y0ZlNC9LQ1RESVA2OWxTV3Z2UUtBUHhybjBrR2FCblRGQzZQMy9MRmYzVk1nRklLUlpsNXcrdGdScWFQNjdUc3BkMlZqU0l1SVpRNFlHL3JMUWY5ZFRGTCtFemVNeVAxVy91YXZJM0svNTcvMXZ3UGFUNHFpWUpYYndrQ3g2bmo0azhWcHlmTVJ5MHNjb2V2K3o2clBSK1RLMi85bjBWZXlmM2ZYR2NwWG5hZXc2SncrNStESmQrSEozL1M1ZTRESzFMOEJmSXYvWFR0OGMvc3kvN1hqaWlNVjRyS2NYeS94c21aSEZJS3JiVHZKN1VETnpyRGpwVlo2Sk1LN2p3bkxFVndCWExISEMxMzRrQUVjMXM5cnJjQzUrM2NlVHYyOEQ1eGRVWkNkNEQxK0FmSFhGaEg0a1Mzdi9IZi9naE55RmhEK2VBa2lVeGt3WDJCU3hZcSs5MW5sS3ZpOHQxK1h3Q1p5K2VIZWlEZWhFRWtrZUgvYmVqUWhPSHkwblgrM3RIbzc3MjliVHlTUnNHM1ZnVFQrSDQ0WEE5a0hqY0RDdmJBaHVocUNtcVpGYTBjVWFVbDhYZ2RsUlpsc3IycERWWGJGRDFSRm9Lb0NvK3U5VXBMcGMxRlM2S2VxcnJPSFRaRTlBSTZ3S1pqTjc1c3pjU3YyZTZLV1JrSXErSVZKZjlubDdYdHBtM1ZKbnE5cTNOVXdaWml2dUxISDJxb1NqdDFoTVNyWXUxVGVrblVJNElnOXpDMEpUR21XcUgyNFhaOGU0aGplMjMxb1pPZTM0TnRYajR3dVZpVnRhekxBVUJHR1JjNTFWZVJmdlprU3VXUzNmSnVoajZOT25NTWQ4L0tZOXV3L3FIdnRFOGowby9yY21FMnRsQjYzZ0MwLy9CcTM4U21MUC8wSU5BK3F5OXNqUDZqZmNkMTdvcTg5djYvY1NSY3N1WDVnTUc1TTZweTNQZ1l0anc1K3dWOHY2N1ZlOWNBQnQrM2pPZm54aTMzdWc2ZDRtYWY0N2o3WXB1bHVyNkZ0dzVHcUt4aXBmSHJoZEpCeCtoSDRMamtONGRCUjgzT1l2WGFyUzYzYWVya3VwUHRmL3ZFL1B6bTRjK2VMZWJOUkUwSDRZcmQ5cy81L1IrU01hck9iL21QeVJtUWFPbmRpVTIzUDZ6WUQ5dzRQdHRLLzdyUHpENnp1empiMm5yYkNVWnJ1L2l0SWllL0UrU2dldDcySDk0TnJYdityKy9xZFJVVlJPRXZBek1Zd0FoaVg4Tkx3cVV3MThSVnB6Y1ZubjMzVy9Yank1TWs0SEE1V3JGaGgrNzJwR21nRndRdnhUdFlZTVg2WFVjek11SnMyeTdUVER2ZVlUdit4SiszNjRHQVRCTmxQUTNEdHZiY1FqSVM0N09TdmMvUUJSOURVM3N3N1MvKy85czQ4UHM2cTNPUGY4eTZ6Sm1tV0ptM1QwSjIxZ0JWRmFSV3dJb2lDUUZIeGdnc0lGN2l5eVNLSzBJcFF1YkxJSWhkUXVGemdzaWpMQlVzRkJXVlRrQlphNkU1TG11NUprMmFmTExPKzczdnVIKzhrM2JMTXBEUHBURGkvenllZnpFd3k3N3h6em5PZTdUem45L3lEWHp4OEszRXJnV2FZYVRXaTJCZkUzbndPNXdTM25OUHBCbnVOd0F3Vk1MRjhFcllqYVRHTzV1a093UlJhR2V0dkk0eVhjQ1JBekFrUWltb0lYYWZBMGFtaUUxdHF5Uk5XWkhYZlhTQVIwb0hDSUVKSXpqNDZ4cnd6RFE2WkFzUmoyR0dKbHFhSCtNdEZLN0pTdjdpN0hBTWVlR2t0ck5pUjRQQlA2NXdhaGluMzI1aTE3SFBkUTJPa2dwcyt1SkdYdDU3Q2dhUFcweGt2WkduVFo2bnBtSlpTRXpPRjdPT2JzNC9jL1FYcllONzc2VzhvL054RWdvZCtpcTMzL0phanZuVUJNdytjbnRaMXowd3N6ZWg5OWhBSzMvdnVoQXlQd0paK1BTMlpsTktnMTQvdDJNa1NPNGt0YlE0c244RG9ZREZiV3JidnRIbDk0S1RUMzB3S2VqUGc1dEJiTTNEWGw4eC9hRWordzZDKytxdjEyVm1ZZlp6cEYreXlWeVo2bmt0eTRvRFVFTzNGWUhjK1BVdVo2R3o1NU45di9tQzNPTVhaa2NCb1c4T00yV2VSMEUyKzl1ZW5zWnVhMFR5ZWxBb21lblpYSDN1L01TdlRadmZacTlmQ01ncVordG16T2NiWHdiYVBQOENPNjV6dzFlbDg0SlRUTGcwTWFlMlRUVExFenBCZHo5QU1KMnpKUjl1anZjTWFTcVBaNHVUN2Z6Nm9uUFlzU1prS01kREMzN3V1NmROWFpVVis3L3JmNVlML2RiVmtKcUZwMlNJakExL0JGOUVLdjRCcGg3bnVycVhjL3ZBU0lJWlI0TU95SFlheTFCOTc3TEdzM083bmZ4YnFuV3QzVFVSNmN6aWZFL0R2QWhwdGlNVHZKUHFQTzVseUZCeDhMRWluZlkvM0pjOGMzSmErbnR5dHovTDJRWFJtbHZSdnZ1R2FSWWRuK0lxckFEanRqSzlrNTRZZkltdjVrcDY1WGIxcE41cWxmY0xUTlozaTZack1COXNpMmVQekFJL05OOVpIYVFsV29ac3QzT3VUeVUzdURFdXFaUkY5OWsvWW03ZGdmbllHOW81R3JLVXJpQzlkbGp6UFAvQzBIRDlNbktHUmwxL0YybHFMZDlibk1jWlhFbTlxd21sczZ2VXZNaGJiSml6ODR5cW9YN1NFNHF0MzhQcGRkL0tEQis3aTlRVUxxVjFmdzdIZm5zTlRUenpKN0RGbGJIL3d5ZDczUGZXajAxTzZpV2R6UkQ4OFZORkEreHZObkhOM0o1c2FwSnRiRWk2WjhPU3hrdi84Y1FEOXVEbWMyM0FaRzBJVEVXWVlBUU9UQ1djUjU1MDEyT2ZHY0J4WFIzM3U4TUViemZjUUNqZTk4LzZ3ZlFjTnNCeDRlWFVuMDhxOWRNVWNoSUNPU0pqMVRURnN4L1VCQjFyaDJicmZZdzRmblpYcmJqM2wzZUZQMkRoeEFvSFJCS1pmU29leGtxNHQxVXo2ekluSklzUFVia2NBbFdhVUl0M2RRNm8wb3lrcnV0UGpXd2J5bnRQKzI3d2graloyaXErNUtsUmdKQU9RQThySGMvYnNjMW0xZVNsRlZaL0NzTFpUNUhrSEVJaFJCN0xPT0o2M2RxemptcU9tWWliUHdtdENvS1Vhd0doZ04rbTAvWGNSZHF2Ny9zUTJ3eDJDRk5UTGYxL241NE9QSGM3L1N4R2RNeWJBU1dVWVFtSjFKN0FGTyt0c3N5MW05VHVJMTlYM0JBejkycUYrenl4bEo3d2dZaG04dk80Z1BMck5zWk8zWWpzYU1WdW51cm1VdHpkTkpHNXBBNXJNYk1VU3V5SVVDcEZJSkNnb0xJS0dIVlROK2lMKzZRdUl4ZUxvbW9iWDd5TWNMS0FyRnFXZzZBRHFkK3dnRkFwUlhGeThkNjdzVXpwenZ4Zms0M0VUT1dYZEJGcWpIckM3S0MwcTVUOVArVDVIaXM5dzNmVkxlZjJOOWJzbzEvM244Vjl3MWdWaXNQV1lWZzVoZUc4LzJRZmNobmpVSkJCMEQ0SGJVUjA5YU9kVWVsNFRBanVSb0syMUZXZEhBN2J1RHBYd2VMQzdPckM3b3JTVWQ0QWVSZE4wN0hTRXduSHdGQmZTZU9jREZCMTNESVhIdVljYU92KzVtTVk3SDhCVFhKaFQ3V2tFNEV1dSttbUd5V21CWU85alV3ak1IQTZDcTNleHAwMXQ4TUJ6VUZHUzNqS1dFblJkc0xrcHltMEx0K0l6Tld3SlhsUHdpMjlPNU12VFMzb040Q052TmREY2tTRGcxZExpUTh0WmFGcGUzVzZaWndjSyt4RVNEcG5neVlpZDdDRVZsZ0xhVEhkOWlTUlhzNlAyY29lTVJHTXo0V1dyaWRkdUgzSkxncWVQdVE4czJQcUxXMm02NjBHSXhUSExTcEdPZzB3a0VGNFBScEw0UXpwMjhqVXZwdDlQK1BWL3NmcWQweWkvK2lKbXpQczVmenptdjNpYSs5VEVESmN4ejRxWnlQNkN0Sk03QW9ZbndlYW9qNisrTllNZlRxdmpvUis4QndJdVhqNlZSMWFPQjhQQjhDU3dwT2g5ei9BbEVBQXZ5TGhEYk8wUkJKY3NvdkRqT3pCMmJDWjI4Z1ZFdm5rNWlVVUw4SFMyZ2NjTFJhTXgxNzBIcTkrR1FGSHFkamhaQUNCM284UVY3djlwSXExa1JWNlpGNkh2bnBEdysxaTN1WkgvdU9zamJqei9VQ1pXZGhHeElrUWtGQlo1YUdnY3cwMy9VODI2VFkwUThHTTd6b2hvQXY1UzVGUUN0emV3N2NOaUV0SWs2QTh6OXFRdTFwNTVOTCsycitQVlpiUEJBdDFyNDBqTkpSTk9BWmVPYng0Z042WlJIeWlnSGJkVDh5R0JHTE1yVzlBOC9jY3FWK3dNZVFENDdXRUc1MC9VaVZ1dXVBb0hoRjhuc1MxRzgveHR4R3NpaUtDZVF1ZU5RUnoycmk0SWg5M2ZjcVJ0MFNrQVhOVHlYa2F2bDIxQzRab3RyWGsxdnNMY1BUMGtQSkxxK2lvd2JGNnJEaENPbXpSMWxxSUZFa2hwcGhJYUFQQ3JSeitmNFR2OTYvQ09peEJJS2Ftc25FUjVlU1ZiYW11b3JkOEtVakttWWp3VHE2WmhtcDZVeUlRam1vSFB0amkvWVJubk4zeElhU0pDdCtaQklOSDRaT2d0Unpwb1FrTVhndFh0Ni9qVlIvZnlZdDJyNkVLajFGT01MWjNVRGd1bDR1eklYYjBla1ZkZVVEYWt3Ukt3dk15aG82S1FINTF6RXI3eXFwVGZ1K1YzeFFQZVkvcWoyZzdBemJXdkREQ0ZiaWZudU9ObUhUMmFoU1BGZ0lWMHYxYW1jbGlRTFhrWTd2QU5LU2p3UjRsWkppY2ZzUXFRcktpZFFOQWZCU2x3MUZTbmhEdE9tem84aXJXUEpud3loM3orMm83S3ZKbzN5eENVZHlTd1h0YW9GZ1ZvQ1NnK1BnNEMydDl5YzdzRFBXODFQWGlsdytoZ2dvVFJod2gwZDhPeVpiQnlKVlJYdy9UcC9SZGlTZW4rejhxVlVGQUFKNTZZUHFId1h2NEdlRFRKaVdPN3hiVEN1SHg0UTdGOGNrdVJhSWdhcEZWWmFraEUwa1dXaGt6ZFFLZTdLbkxGUFhFY1JNQkh4K3VMcWZuNnhaUjgrMlI4aDB6QkNZZnBmT045UW45K0UybFpDTU5JS2ViV2hEWWk5TnppRlE0TFhyWDQvbGtHSG5PbmZMendzczJpcFE1TUFBcUFSbURaM3UrM3pVSm0xUy9oeWpXUDAxazBHbFBUZThkUDdCVXpwSURtTUFBZjNYMVNadU9lZS9KemZxN2U4RkxHVnRBZmhzTnVmcTZTS1plZFJ2TWtnL3ZYYkdCSDYyS2dHM1Fkb1h2UVBRRWNlZzZHWmVEd2txWVIvMmdGc1pWTEVQNGcrdWd5dXYrMkVEUWQ0Zk9wL0puQ2lNYjVONjBjMVBUMjVIRjYvTXI5dVNJTUxZMnlyWlEwbjUyZkU1ZWxHcWs5OXpLbFRCTDZ5NTRoRlM2QmxLYWxkSDRnMi9GaTNhd3pFWWJPdUw4K1NlRGtMN24zYkZrSVhkK0RURGdKM2ZVdnBHMWpqQi9MbUdmdXAvQ0haOUYwL3JXRVo1MDU0dGEzNWpFWjgrMlRLSjQ1Zy9CR2w2bzBNT1VBdkZVVktSMEFzY1BkL2Y2dG83R1dPaG5obXVLdEFMUjJPUlIyK3lFZXc0ckY5aUdtZFowOTRaVjlKMU1HMGc5T2ZPOXJDYUJ3b0dZbkJqaUpuY0s2eTJkWldaNGZHVDBDdStNc2lFOEdyUnNwT2pGdGJaK1Y3TndyNjFpODF0VnRoaUZvYm1uajl0dC95OUdmS2VhcWI3VXpSeC9QdHBzOGRHMFhtSVZ1L0NaekpMbHo1WlZYY3ZubGw5UGUxa1k4N3NyUnB3OGN6YWNQM1Ayd1JTUVNZY1h5NVJ4NTVKRmNjODAxeXBnUGdJdTZCdTh5S1R0NzdQM2cxK3ZaTHd6UHYzV0FaZXhRSlF3YzRIQk5KMjVidExqMFJRaEZTSklTam43djJhd01WQ2plclFaWFFTR1BjYzl0VjRzUkZ0VU1DUjE5OVVxVk5sUVdFWDMzbjloM0wrKzFhYUdyNXFGL2ZnYUp5aUwzb0hhTzhOWkxKRUlUaEtKaG5sdjVIbjlmN3g2NWI0OTBneENEa3drUEEzUmQ0NkJKWlpTVkJDZ3ZEVks5dVlVTjIxcjdKRW8wRFoxREpwZFJPc3BQNlFRL2F6YzBzblg3N28xWmJubHkzYUFCdk53dGxCLzQrMStTcC9KN2N4WUpoUUYwQjc2OHdXSDJodlN1MHQvS0VDb2xtZ3l1SmNSMFBCTWpWTjIraWNJdmRXQzNneU9qTG9ITEVNZnB5YW93MXR4YjJMYTVBYk84Rkt1ams2QW53S2k1bC9MVU44cTVhZDJqZERUV293ZUtjSkRZK3psd3ErN2NPSWdnRGFIRGwwTDJ6aFZrcVo0ZTZlQ0VJOGhZSEdFYU9OMFJTRmdjSEd2M25CT3ErVGRET3I3blJrMmRlL0dPeFI4L1dQRlp6R1B1SmJINENqWFJPUXE5dUlneDExM2trdElYRjZXZUhNZ0E2dWJkTnJDM0pNSHZjZk83RytOMjhyWkVHa3RBUTBwSk1CaWt0cmFXcnE0dWhCQTR5Ynk2Uzk0b01SRFUyREcrRTlyQ0RjRXhmTmRYUXFkall5SFI5M01PUTBxSlpoaTBoN3U0K05hcnVPTVA5ekdoZkJ6MXJVMnMzYlFPZEFQTjR4M1dlaUFucGlHYklSNEhXNU00TVoxdWI2Rm85SmN6M3E5VGFPb3M3ajZBcFpxZzBnRE5GSFE3T2dGRG85M24wQnExQ0pRTFlvNmtMWm9ZQmhQdTRHZ210bG5BNGMyTG1iZjFidWFFR3BGdkdMUkhIRFNSTXlGQ2Ywc0J6WVJ0SFJCZWJCTjhBVXpIYlI2dVpjQXQ2RXdVOG1iZGJONnNtejI0WTlnWEZ2K2JTdlJsRWJidDdLWVBETVBnVXo5OWxQWk5teUdlWU1iUG5xTGd3RU94YkR1dG5LdVRKZDAyWElUQ011blhiRzl0WUh0ejNWNS9YN3BoQmVoRzNwM3hWeGl4em41V2ZQSTJZNDk2MFlBZk9xSWN2L0FSaEJDME9Sb3lNTW90REUxbnlRK2pWcGNJaEpOQUZveG1pU3lpZWVJWVFORGdNN0V4RUxhRjNFY2puVTBQYVNpM2RzdGI5NnMxa1UyNzZVaDBUVkRYMk0yUDVyM0NuLyt5R2pIS2l5YU0zV3hxcnVENWFWY05ZS3ZkNVdnS3Q2NDRJZDF1c0hMQUdxRzdsUkFNQSs1Yk15WERWM1RKT2pjLzk1SWEzR3hDQUk1REtPN0RkOXBNeHBWV3N2NkRwVGlkZFZCTUZqYllCREtlSVA3T0l1TC9TcDd0bGc1dTFYc09oVkNPSkxGc0pZbGxLK2c5VktycFdma29HYmZ3bHBiUVViY2Qvd1hYOGRMamQzTmUwU2llZWZ3SndxRU81cHgyR28vODRVbk9MTDRFZm5sbFhvclpnbC9WOGREQ0dGS0NhVUFpV1hCMjlnbVN5eTZid3ZNbGwzSFhoam5nNk9pZUxteXA3OWRkd1BiblpZcUxKejJ2NnBoSDd4MDJJWmU0aE1HT2hGWGJvMjZPQjVkMncydUlRY21FczNtLzQ3L3kvQWhUb3E2SDRpOGJoemRRc3RPZlQyT3VSaHR4emkxemExZEhHM0ZTYXhzSC9iTnFpdHdJYkZKQStaaURtQkdzd0dkNktmYjlpUGFOcFFnaDBNYWR3Vi9manRBbUQ2Q2daT2c1RmJzOUdYY21mOWx0V3NyRDhPTS9lV2llTVJrdXFNQXdKVlpud3EyWDFZWjVESVhvdTlZN0I2Ui9XNmlJdjlkTXBhcTRnL2UzamFlaHM0RGFVQkhiUXFOeUlxODhhdFFvUXFFUXExYXRRaE1DeDE5TVEwRVJVVDJLN2RnRXZRR0N1a0VpSEdIMTZ0V1VsSlF3YXRTb1BxLzE2NStPNFo2MnlUeXhxaHl3d09ya2hNT1A1bGRmUG84Vi81Qjg3YzZYQ08zb1FpL3lwU1JmZG1OK2FUdGpmMG1aMEJ5a25TU0oxSEtSNU1zMXA1SHRkWFMrL1NhUmdpS0lSbHd5R1o4ZjJkSktaRllGVkptdUZVN24vcVVFWFVOMlI5aDZ4ZlVjL09hZkFOaDZ4Zlh1Um5UUUR6a1cwUGM0RjRZUW5KZzgwRzBJa2ZPVU43dldjV2dDd2xIWVhKOE1BMlI2VStZeDNDUm1NbGVCYlVORGU0SjFkV0dhT2hPOHRhYWRmNjRONGZPTUVETGhQTVNqRzYvTzhCVWZWSU02VkdXUkRoNVkyS2NHZGZxNDlFaGNXb2RWdDJiRkFnb2hodSs2VGR0VHY0QUZ6TC9lL1ZGUVNBT1dGR2k2RGJyTm8rdXJlS1hPUFdSWEgvYWgrZUs5LzdOZjRCUFFZTU1DQy8rYVB5TmtHRHgrOEFVeGFxc0pQRFVmczNFem1KNmRCNko5QVNBSVRyb1oyazllblVwNW9uc3ZnNkFaZ3RwVjFWdzN0NDRUanA3RTFLb0FFdGhjMjhyZmwyeWl1YXViTVFFUFRqUysxNUExNWVrNFJIL1pSVnQ0TklabU1XRkdJK0h2amVXMnF1dTR2L3BDWWlFVHpldUFoNVNKaEh1Z0RSU3pzZnZHc0JDZzk3d21CL2ZEYnovRTROTEpPZ2s3U1NZc1FYZ0VpZG9ZVFRkdkk3WTJqQWpzSTVrd1FIczdYSHN0RkJWQlI0ZjdYR0hFSWUrMDM5cWI4K3FXNWFMTFJIOXVmWGdBSDMwdzJDUGdORTRQcWJCcGVwZzIrYkErOGdVRGt3a0RSSVhCd2VFV0xxOTdqeSsxYjhJU09tSGRSTnZING1keFZINHREVTFvdE1iYnVhLzZVWDVmOHdRdDhUYUt6TUtrSC9kSk9oYTZuL1NkeEpXNU5PWE9LTXB3anJMRC9kVm1CQVlmQzcySDJNbW5CQ05Ia0MxNUdQWjFaaVo0OGYyalFjamU0N3oxTGFXODJGeUc4TWFRZzhTV2crVmNsbndJWXg2L1NBbk1Kd1NheUM4SzZzKzA5dEhGOWg5cFBPODVBeFhxNXdQS3l1RENDMkhtVERqcHBJRVBOR2dhZlBXcmJzQjQrT0h1ZXpOajhwQVNKZ2NUNG9iRFdqaXFKQ3J2WFYvS3NqYXZpS2R4bmZocnJ2MHhaM3hDaE5tUmFBRS84UTNiYUxqNUFmQ1k3bDZsWTZNRi9DbVRDWThFOUh6TnBoYkovUCt5MkZZdk9mWno3aEhMZjc1djg4Z3pOazFiSlJTQm5BalU3dUxJN1RKRTVlRkdidjN3SGp4T2dyQm1vRm1ab1hDYis4d2FwWHp6RU8rOHZVUzg4L2FTZnZWV05naitSQ0NBRUVFM0oyM2JDSy9mL1RSRmdKQXlqbXhmcWc2TzVpSCs5S1pxUXB5UE9HaVlVc0M1cmdFbk55MXp4K0ZyczVWUTlCK1U0ejFnRE40RHhxVC9WbDMwS1JNQzZMVENDS0RWNitZcGhRMmRoQkc2Nkxmb3UrZUE3TmkyVlNJNzhpcjY5ZDBIK2FiN3g5LzUrUjhGL0RIajExMjgxdTZ0NjdZc054Ly92VE4wNXA0S3BhOVA0dU1GR2tJSFQySHVFQW4zRUxvVUZoWnk4Y1VYazBna09PNjQ0NUJTOXNhc1NYRkdBR2VmZlRaVlZXNFRPRjNYY1J3SFRSRUVERm02aDFJdEpVcUtCL3pNUkZJVFdFZzBCSVB1eUhkazF4ODVxcTFhK2FsRG5ld1VjUHpIMmRIcm5EdEZ6WnVDZ3NKZTBKMStyRS9DeG41M0tjTG43YldBQW9uOTdsSjBiL0sxSEFwd0pDQ0VEaHEwUjhKSi85dHdVMUU1Y0tQbHBVRk8vTUpVcGs0b3BiNnBpM0VWaFhnTXZjOHhIRk1XNUt2SFRtTmlaVEU3V3Jxb0hGT0lZV2k3a1hVY3U3WlZDUy9EUi82ZDh3YjA5Ni8yZVl1UFBmUWFqMTF3WGM3ZHJ0T3BVM0JzaUtyYk51S1pGTWRxRlFoRHNxOFJTUHZjdTdCTkUwOVpNVlo3QjJWSFRxZjUrdTl3YmNsSExGejhORWdUUFRnSzI4bU4rcUNVbTJPS0VlckNQVGhyQkh5eGZmOEtNcDZnYThFYjZJNkRWbFpNK0xYRldQVk5vR2xNaTNjWTU0UnE1bmlrNDMydWFPcjFOOWIrYy9WTmxWOVF5aitYSlVJVEZKOTlhdEpJRGErdU1VcUxCeFpWQ1ltazMyRUs5dHBYM2d2TjlYdW9JamZYZE1NTk4yQVlCdGRlZXkyNnJtUHY4VDFkNG1DSUk3bXh1NEVWVm9RYkFtTW9GRG9kT1ZDZjJVTXFqR2xTVTdlWm1pM3JYU0poZjdEMzc4TnFDd0lTTVVaZzZCSlRseVJhSlRZYWhtN1E0UWg4bWtGSlVNZWpDNklTT21JMkZVRVQyNUdVQlhSOHBrNG9adE1XalJOeHNxOVdIU05BYWF5Unl6K2F6MzlzK0IyanJVN2FrNDBYTkxMZkVERXpNZ0FZWVBwQStvSHVERGQ5VUptWDNJMTlkVzB2WWZDTkhjZllpckZJMjBLWUppQXhjb1J3WmRpNVpuUVRZWmg5eHRwUzFYY29qSENmWE45emMwOENwa0duTkpMNmc1MW5iM040T2VoQzBHV0RGSDY4QmU0WmlSYkhRWk15SlFLNGZNTy9QbDZreEI4SXZUb25LeFpEMXdSdkw5bktlZGY5bVkwMXpaZ2xBV3pId2NsUjhwb25Ydm5XNEg3Z3JtbVdRYitHSWhRZUhoV2VIWGxhUHZkV05iWlpEYXBjWjdVZ0VzZDZ2NDFPczRiQ3h1MklJd3F6WEJlOGF6UHhISzFseVVDTnpVSGJsNlNuMTl1QTJUUDNldm44Yzc3SCtYa3NaZysrR092MXd4SVdqQzRXM0hpeGp5bW5mb1VyV24vTUJ4c1BBek9DcGx0cDgxbGtBMDNYMnlObWVRUDR6SjFpYUNaektmdlRBN2pqcDUvSjZQV3UvVzR1RExhTk9icThOeitSTGkyWEFNNG8zcEdoaUNqL1VGcFE3RDd3SG9pMzhFb0VBbUVFdU9LTExjUnRod0t2bWJrUU00MEJibDdlTGxpK0RCN0x6cm1ja1JMQnQ0Yjl2THZsQUY2dm1VSlh6TXlwYlZBaEJCTW1UR0RzMkxHRVFpSGlzUmdsZmo5YUlPRG14NFRieUtpb3NwTGlVYU13VGJQZjlmdU5taVBaM3UwRExVN1E0K2VuSjUvTjE4Zk01dlpiMS9EY2k2dkJZNkFYZWJIdGtabDNNL2J2VE1yMFYvQnc2Zi9rclZuaGJxd1F4RnRhMEpKQzVDQXhiWUVWQ1lJb1FmYjJ4MGtEdG9OV0VDU3lZZzBOdDkwTFFHVEZHb3p5MFVncnQxV1RtVWRGRWJ2R1BiME55TVRRNHFGZDMrUG1LeVFQL0swT2o2NFJUVGpFTEFlZk9YQ2c4WnR2VFZaYlUxbUVKYzNzWFBqNTcrNDFiNjNBOFUvdThzSVpBRmVyU1ZCUVVGRElJcHdrcVpQaGkxTnZHYjJQOXh1UmNBOCtUTUNDQ0tMRmdZREFaUk54d0tPamIxaUcvdkVTOEFmM2NFd2NOYUVwNG8vVkwvYmxtYUZwR3BabDA3VWtucFFOd2FFNGZEdm93VWdldE96TFIvOUtubzVETEdGU1ZObE40WGNFZjVuNWZXNnR2NGFOU3llQUFiclBkaE92R1k1WlpUK3ZwYkxpYmo3STRDZFRkQ3g3bDlCUEI3dkRvdVUzZFVTWGQ2TVZab0JNR0NBZWgvZmZWNHRGUVVFaGEraEpLdTVLSHR6ek9KVU5nNisxcmVmeXV2ZVlGRzJuUy9NZ1lKL0poUE1Scis5NGgza3I3K0M5MW1VVUdRVVVtMFdLU0RnUGtLMHAwdE5pOTVEcHJGZVZlOHREZVJqMjd5RUZtdGN0Y3RqZTVuYVUxVHp4M2VKT0JRV0ZJVHRPY09DQk1IVnFhbDExQ3dyZzlOUGRJcTRNcTNCSGdsOTNtRlBWS2FZVUpPUnZxMHZrNDZuYW5aakErdERkYnpBUFRhbUNkV1RBY1JBK0Q1cmZpM1RjRFhjaGNCOS9BdjFYS1dIOUpzbjhleTBxeWx3anVLTlpFb3U3NGlvN2dGWDl1eXczTGIrUDZlMGI2RFFEYWZvK0ErT1c1ei9LcTNIODY0OW05TG00L3diOFRHbk5ySy9wM1lWYTVhUVZQaG00NGpzVE0zcTllejlRWTZxZ01HTDh1Mzc4ZWdtOWZHdzlwWXc5NllHZTkrd1BiOWhlZWE1S1V1Q0dpejE5MGdJK3dTMVhCYm53b0ZIVTN4MWt3MXFYU0RnWFhSMU4wNUJTTW5QbXpHUjhrZHhUU01yYjdyR0g1TmhqaisxOXJNaUU5OGVDR3pqeEtmYjRyYUNnb0tDZ01Cd1Fmbjh5dnlQN2VDMUgvVzBKUXRONy9ab2NnQVhJMXZZd2YzaHBKWWRPS2Nmak1kaXd0UVhMZHBMYkVrSjM3Ynl3QVpyYXdqeStZQVdIVEI2TllXcFViMnBKMWlIdW5BaGJVMTZCUXY2aTlMdU5qSnU3RlMzb1lJZGNNdUdNb0NDSUxzRHFEbFB4N1ZONC81b3ZjMW5ORTlSOVVJM3VMOFlSTW1mSWhCVVVkc2JqZ3NUV2V0cCsveXpvT2pJV1QrNkpDaVNTaVlrdS9heU9EYWNZT0w3L0tUdjA1NVFlK1NHZm1JM2p2SnRNdHo2aGgyQnJtQWtwWlFvRXhxTFhaMG9mU1YrRVJ4NTVwRGR2NVBUakU5ckp6OUlRdkJBTHNjS0tjbnR3SEVjWXZoeVpLamZScDN0OUNLOGZpZXozdS9SZ1d2TTcyV25vMWdweUhjUmpBc3NHdTBQQVJBaWFHdU9ESmgxeG14M2hCTFlqS1ErWUJEMGFsaTNwT1RyY21iQ3A3WTRSSHliU2dSTWFYbUgrNmw5d1RHZ2xIVUNiTURDRU0vUmFHM3MvMmVXZThwT2hoalVYcS9yUWtSSHdKZy80YXdLaG1VakhRWHlDOCtJU3FmcENad0lQbkwyWGZ1Z0E1dnkyNTltUzVJOUNQdmgyT3Z2Z1BPMGY4NFltUU9BZ2s3NkJLUVJTak13QVFsZDdtVm5Gdy8rM2dxdC85VGM2TzZPWXhYNHNLN2RyL29vTFEyclM4dEp1THN5S1grMUVZMnBzaDhHWDFtTTJwVnVXWUFnVEVUUlFsY0VLbVVTUG1iZHRtRDVONTNjM0ZyTnk2bm5NMlhnUjhVUVEzZE9GSXpXY0hDR1hscEVSNXdybkZINXl6aUVadlY1T0VBcUxYVWdIaDVobUNtcDJQb1VyV1lQcEtlaDlmRmpWYUtWQWM5NkZrTFJGZkx4Uk01bHd3c2pKbnFwQ0NMeGVMeFVWRmZ0MG5lMVJMK2h4S29zcWVPak1TL0ExVlBITkMxOWphMDB6V3BFUEpDT1dUQmhVamF2Q0hxaWRNQ21qMGw2MWRiT1NNUVVGaGYwV0wrMzV3bUVIQlhubWdTTTQ3S0FnZGsreGlBYk9Gb2ZJL0FUT0ZtZXZ4a2hsYXhjcFBhYWdvTEJmMERiOWlOMzBtTkEweENXWGNsV2RueGYrdnB4bnJ6K2RML3p4ZDhSWHJFeXBlMXJKbWxWS24rVXhOcDVjS1VQblRtQ2V2Sm1YMXA0SUZoaGVHMXRxeUtHRWRUZmxaekhWdmpSVEV5citWVkJRVUJpUmVMZGd4dDYyUVVvT21IY3BWVCs3a01ZbkY3THg4cHVSQ1RzbFN6Q3JhN215RndvS0NncjcwK2ZmNDRTNTdVaCsrVUkxbysrL2oxT2IxekJ2MWcvNThmVm44UG1KaGFuRkFWa21HcDkxN1RzWjNWTjU5NDR2S2p1a29LQ2dvS0Nnb0xBUGlNUXlXK0hsOStyS1A4dGphR2MrdkpzOE9CSXVPK2tncnQveUwrUjdTMWwrK1RYODRNV050SFpFVXlxT2RGNzRkeVVQQ2dvS0Nnb0tDZ281Q0psQjVsTFZ2RkpCUVVGQlFXSGtvM0RCOUl6NERwMW5yRkYrd3pBZ1cvWDAzenpzR25sMHRCR3hxeXU1eDR3S0NiVm1nVnhZT09HVnpaN2luN0Rva28vVWpDZ01aNml6UzV6UzI3QmgxOGNEd1VCZ0lmRUxqYm1CQ203b2JsQTZTMEZCUVVGQlFTR25mUEo4d3cvK1VwdlJlcFRIdjE2bC9ETUZCUVVGQlFVRkJRV0ZERUZ1N29PRFJCaGdXVkI2SXhUL0VyY2ZyYkgzdjZrNkVZVVJnR2xmZjJyUW1OVnRxNWthYXY3eVhiVXU4aEQvRHl6QmsxWEpoNWIzQUFBQUFFbEZUa1N1UW1DQyc7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2V0RmxhZ3MyWFVybCgpIHtcblx0cmV0dXJuICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBTENnQUFBQWVDQVlBQUFEU1cwSE5BQUtvNkVsRVFWUjQydXlkZDV4VTFkbkh2K2ZjZTZkdUx5ekwwbnRIUVJFcjJIdkJGcnRSWTlkWW90SEVWMk0wUlJNVFk0eTl4aElUWTR1OWR4RkJFRVNLOUE3YjY5Ujc3em52SDNkMllTbXlDd3ZNNHZ3K0g5amRtVHN6Wjg0OTV6bFAvVDJpNnNKcmRONEpSN0I2ci8zNS9STlRlT2lCOTZFMmdsR2NqWnR3ZWU2T285bnJkNzhFNEt2Lyt4T24zL0E2MGdDVkJMTm5GMDd2WjNHUldzeklRaE54N3BuMHZ2d3RhdGJXSTN3bVdtdTJHUXR2RjYzKzd2cnZOcjJwSVJWdUpNUmVlM3pINUgvK0h5b3BFS0tONDlFZ2ZMRGc5SkUwZlpXTHpISkFpVGE5ZExlNlNXS0R0OXJpaHk3TDhUSCtKLzFZbHV0cnc5VWRqTC9NRkJ0Lys3YkJBQ3doK0cxUmlJbFpmbUphSTdmd0dpVUVRVnZ4Y3Y4Y2ZyTnZWMndGcm1qSGVQOHdwZFhWUi9teTlmdkpKbHpBM1lySkV3STJ0MHgvNkxrZm5oZUJBUnppeStMTlpHT3I4WGEyL2JheVorOGR2U0xiaGU3TGw3WWE3L2NVcFBWNEIxSFRhcnhmQjBlbDlYajNpTFdXRC92Y1BEMnR4enZwOXRHdHhudmRDMHZTZXJ4M25keG5BK2wzMFE0ZHIwVFRQQUFYQWNKTS9STUlGYWU3cm1Fb2F4aERCYU1DRGorSkwyNDEzdW9oZTZmMS9CYk8vYkwxZVh6NlJNMVBmc0t5Y1JPNS9lNVpQSGJuaDBBRVEyYmhLbmorb2YwNTVkYWpBZmp2YjkvZzFJcyt3VURoWWtLWEVpNFlFZVgvL0ovUnU2dUxlOUUxRkI4N25kcktlb1F3Tm50V1NPa05RYW0yVE5YMXJjWjc0TjJMTjNwUnM1d1hRdXowK2Yzb21yNnRCM0hTczIxZUQxSm8vajN4WGs0WitSVTFMeGV6NmkrOTBFcVFkMUFOUFc5WnhMS0dJc1kvZlRQTDZvcEJkTkF5ZS9ITTF1TjlaMlZhcjE4Tzc5NTZ2UDN1MHh0cWEvbDVmbTY1Y2svUW10L2UrelVGdVFFaURTdDQ0dEtuT1hMMEhMVGF0aUVJQSs1L2UzOHVmL1QwTGQrSFJaZTNIdS9BMzdSZG54UWF2eU41K1BKSm5EcCtJU0poWVc3aDh4d3QwSDZiNXovcHowWDM3VVBDVkxpNkhmdGkvbTliWDN6WmNlbTlIdTUvZGF2MTlYR2pjL25MTFFQWWUwd3VqcXUzcU55N2N4U0pCMjNjN3hTWVd5ZHZhNGVOU092NXpKODlTMndnVzlONnZHSURvZCttOFNwTjlMdTUxUHo3RmVyZitwRGtzaFZveDBVWTBqTnl0aU5HMTg3ZmFMeXVjakNrU1d6V1hKWmY5WDgwZlBRWlJuWU9NdUJITzg3Mm5UL1RSTVVUdUkwTjVFellqeDczL0k3UXlLRTBqMm5EK2VXUEU3ZHFQVWhnUUZhTWwwYlBaVkJXYkx0OUgzTlV4UStmRDF0QUtHanl3RzBIY1BxeEE3Rk0yYllYT1E3Sk45NGpjdHVmMGJINE51bGpWUmRlcmZOT09JSlZZdy9nRDA5dW5UMThzVnJFa0NJZkJXZWZ6S3l6cjhGWlU0N3crYmJPZU44QXUxZk5ialhlNkdKTGc0RVFmaEIrd0Z6UFVhRFk4UTZjMWdqMkxtODEzdG5EZXFhMVBCczJlM21yOGI3VWZYQmFqL2ZFbGZOYTc3ZEg5a2x2ZmVIQzF2NUkrZ3pTN0RVQmV2VURJVHRrajNRbzdteHQvK2paYWVSL2FoNkpYOEJxRjk2SkkvNVFzVlg2ampsOEdQNjcvOHFyczlaeTNrMVAwOWdVSStpMytQdi8vWVJ6RGhwSzhwZS94Sm44MVhiWGQ2NS9ma0Zhcjk4L256cWcxWGlYLy8waGpSQ0VCdmFqZnRJVTdPcGFhaitiaEpBeUxjWTc3cHRQVzQxM1ZsNy9qcGxmUVl1ZlJyZEw2LzloaktoYjJPNTRCYjE2d1NlZmVEODdBc3VXd2ZqeDNzKzJUNE9IVzllTlZ3cFFHa2ltNWtkN2Rvemg4eDd2cUlXZWN1ZlFKbmZPclJ1TTl6ZHBJbkExNVB2cnVHakFQL241d0FjSnpxMm42bW1MZ1crMlBvL1o3VGE5c1EyaXlRL0hhWXo1c0Yxajh6SU96VkdSbGZ4ZjFiY0V0TnZxdWJndytGM1JTTjRNZDhkaEcyeVFHYmUwZnZGOUIyL1grVFdBNGRtQ2U0YVo3Sk12Mnp4eTFlRFMrRm9OUlRkUGJmOSsyeDUyMEFiN0tQYWJkbzdERjhJNitnR01FYWVEdE5yMEVsdTVQTGQ0TXBkKytUUlJKOUcrQVovLzVDYmlhSWV6ZXE4RCtIMnozVkRUOFhHMExmbFlOMnQrYnhpMzN2dGY3YlBMQWdZUFhMOG5weC9hcSsxMldRZjZGZmoxT2UwYWI4QlIvUHJUSlJ6emZXVzdGbUgrWVVuS3Jva2hBKzFiZmh2YXZZdUg1S1cxSHROM2JsMnI4VG96dTZUMWVEdTdYNEZodjBsdnUyeDJhNy96STkwTzBYZGxqZU43WHhtb0pDWU9Eako5eGp2bm10YnpPKzdlOUo3ZnlWZis0SHFRUXFEU3lmYmRZRDM0OXJwZjUrdzVsV0MvaFFpaFVRbC9TbVp1M3pFcklDUTk1YURhaGh3VG5FMTg1TXBmZnRpcC9lWVgvUDU1ZmRFSjR4ZzFvQlMvWmFiOWVOblpqc1UybmVZZHE1OWRyQmN6SkZkUWNQVkZNR0JBcXc5NytZTjVQUFBhVE1ZTTY4WkZwNHloS0MvVTZ2ay9QZjQ1VTJhdDV0Z0pnempudUpFYjZYRWJ6dStjaW9SK2EzNGpjeXVUbUZKZ3lqYmFkenNJOXg5WDJtcThrN0oyYS92b2xDTFFyeWZEM240TVg3Y3UzbUp5RlF2Ty9TVlZMNzZETUR0Ky9lL1ROS1AxaEY4K2ZxdG4wNVFhSjJweXk3NXIrZTJFS3Zyc1g0RUlEV2Z4L0ZuYyt1YVQvUGEvZjhmTXpzZFI3dFlQK0w1UFdvOTN4UGxiUFY1REN2eEpsNGYvZkRHbkhyNG5RZ2dNTkNoTjNTdHZzdVJuMXlJdEM2MjJQakMvWVZ5Tjg4Zm9EcEE1NERxVUZYWGp5MTg5VGxsK2x6YlpRRnNqenlhRjB6c3VzVStrdFI5RUwwcHYrU3Y2YmVDS3VEYTk4L1Q0YStzOHZlbjVBOU42dkJ2dXQ1dkMrZnF4V0FOcnQwWG03TUR6K0x2aXNmcTdmaTVUaHJyTUhLQllXcXFvemRZNGhxZFNTcjNkVmNzZlJNMUpzenUxZlBEZnVWdGFqemR4d3dibjhaaUgwbHMrVEx0NHEreUwyb1lZQjEzMkZEUG1yVm5ucUFkd0ZZZnMzWi9YL25vNkFWL0g2enNibm0rVkYveGM1MDA4aWpYajl1WDNUMzNNUXcrK0RyV05HRVc1dUVtSDUzNS9CbU52L1JVQVUyNzlJNmYvK2xta0lWQzJ4dXhSd3VsOXNybklXYzJ3SEpQd3p5L20xL1g1TkVROTNiUWpidHlEQjVaMTZycUU2MTlkbE41eHkrUDZ0WHY5S3EyWnZxeUpreDc4bGxFTHBuUHYvSmZJZGhQRXBjV04vWTdoblg1NzhhK0xoak5oWUQ2R0ZOdDEvWFk2ZjkvalAwMXZlYlpCL0dMK0VXZm9vZ3ZQSlBlSUE1R2hJSFdOQ1o1NFlUb1BQamVGK1l1cW1wMVVtNWszeFprbmorYXhuNDlqMFhFL0pibDhwZWN6NnRtZGZxOCt5UVYvbjh5ekwweUh6ZDBIcFVFSUJnMG80Y0pqaDNCU2RpUEpmLzZMK01JbDVCNDJucUlMVGlkcjNKajI2MmNDdEFQQnZwNU9GRnRzSU16MVBCZmIrbnc3OUxOdDlrZEZvM0RwcGZEY2MyRGIzbU9XQmFlZkRnODhBS0ZRaCs2My8zelN4YjF2UWI2WVZoTVV0Z2FSWnN0M1EvMWhtK2JYZG9pLytCWU52N2g5bzMwdmdnRnkvbkl6Z1pPT2hHM3d5MjA0djUzTnZ0aVcrZFd1NitWMVNibFJYb3hXQ3BUeTZuc01vOFBtdDdQNWZ6dmJlbWp2ZUdWQVUzWk5qUHpEa20wV0pnckJzK1hkdUh6aGNLS3FuV3ZqaXRibkcvM3YyR1RlaUE4NGZOeDh2cHpkZzZxNkxKQnFzK0pkQ28yd1RjYU9YSXJ0R0h3enV3ZmE1NkEyVTk4aEJPQkl1blpwWU15QTFiejc1VUFjb1ZHYm1vQ0ZON1o2Y1BCZFIrbXV1ZS9qS2hjaDBzK20vL1NpMWw4aSs1eVhONXEyM1hybDhlelB4MUphRUdUR2tqck91dmNyVnRmR2Q4cDRHNSthMkRGNTNqYVkzYnR3V2orTGkvUmlSaFVhaUhQUDJueStCcUNWWEZldmI2aTJPVFkyc0MrT2ZHQ0dib2Rzd1ZHS0d3L3B4Zjc5OGhBQ2pDMzRURjJ0MFJvK1cxVEhIZTh2dzVTeVhYYlNXNWZ1MXVvRFB1MnpyNjRTdnZTS0dRTW1paUtkNUlBbFgyeWIvQlhRODZZbytZY24wVHRnZTI2WS96RG9nREY2bjU4ZVJWT2ZJRk9yNXJPOHFRTGxPcDdRRVdrdzUrZS8xYW56WVRwYlhTNi8rQ2E5N2MyLzdMN2Q4Z3gxU3JhSkRsVDVOc3JyN2YxRWVzL3Ywdk5halhmYTBBUFNlcnhqNW55NlRmcDZOT255OCtlKzV0bkp5OXE4a0FTYU13ZDh4dC8zZlpTUTJiNThUN0VIYVpFbnU3WHJ0OHNqN1lzZkN3VDNIZmd6VHVvM3JuMGZQT2Q5ZVAxMzdhN2pFVGUyWGcrMm85SjZmaTJ6dFRQc202SmhhVDNlRGVzRzlVTmowbnY5WGp5dFUrZnZkRFo3dnQ4VEU5SjZ2SXZPKzdqVmVPV0pqN1pwdklYWkFaNjllano3TnE2azRzcWJjV3ZyOGZYclJaZUgvOHlqQzJOYy8rUmtFcmJxOFBHcWwzN1dlb0g4L2JEMnhTL01BQTlNdUlMVEJ4MklKZHZtZDlTT1ErMmI3N0xpOWoraDJobS9HRDM3cTliNmVuQ2dGdUVRd3BEa1h2TXo4bTY0TlBVWkxrSUthRWQ5bTVOWTQ5a3cvdEoyVEtCQ0s0MHdQYjlQM1owUFVILzNvMmhYb1NOUitzWTI4RTkrdTg1Y1RXckI2M1VGM0wyMmxDOGJzMUZhYnY5a0FpMlFRck4zVmlOWGQxM05zZmsxK0lSdThRT0prYTNQNDhlemUrai9KT3I0MUk0UTB5b3RSZkMyNkdjN2ZMQ2RQRDkxYlg1Njg1SjByVzFkcDJ1TS9HZGFqOWY5OXR5T09ZOVQ3NkpqQXR5VVloM1U2SmhBdVNBc2tDR0ZEbWhFZE92OUxodWV4OWM4TmtKZjFidUpYamsyMkJKWGc1RkdRVGl4endaMW1ZOGZxWGZVcHZFTHpkNVpUZHpjYlExanJFWSttSlRnZHc5SG1EblB3VlZ0MjIveStLZlNldjJxLzUzVC9ueU5WUDZ1N0tEYTgvYTgzMGJ5ZDNDUlpyK2UwRFVydlJMWG0vR0h6enAxdmhFdlQ5RWVxNDlpM2M4MHdzU3huZG9lcXU3ZVA3MTVKRmUyNWttNDZPdjAxczhlM2tPMHF4N1N5eW9VTzArSjI2RCtUWDA0UkF1cHdhZEFpOWJxcGJMWUtLaXROTnBSaUtDWDIrUWxOSGVRVnRyOFBzclRTWFFDNU1Gek41Qy9sL3pnSjFsb1RtaFl3NFYxSzdCMmd2MXg0QVk4dnAzTnYrNitVNWpXNHpVT3IrN1V2TGlQNzViZTR6MS9SdXZ4cmlHOTEwTXByZGZESjRQUzI5NGMvLzJzVHFFL2JGVDNkdGhMYmVlWGxRbzNtc1YvTHJ5TlU4ZE53b2xJVFBuRHNsaTdBcEducVgwbGp3WFg5TVhNY3REdGFGaXdJWC82ckJmMzFUcnFwbkp3MDJSU05TQUZJbVF3NHFRdk9uVWVlTHY5WnZFNDZxOS9STC96eGc3aHdqTS9tOTUySGdYTkRsc2pBbzBVR3FWTVRHV1JGNmppdUM1VGVlekZsMXVOWU5GWWRNRlBJZWN3a0RsNFBob05qZS9CbXRzaHZuRExRelp5b005L0lEamErenMySFpiOEJOeUdMUy9UUUgvb2VqUGtISkl5d3d4UURkRHdIdFE4QWYybXRQNzRvamZheDg4WUZKbzc4eXM1T2RoQW0wc3NOTlMrNjJQVjNVRlVYR3lUUEZOVDA5dVBLdmRzUGIvemU0L1c3Uk0xZ3V0R25NaHIzWGFqemNUa1FuTHM2aG5jTmV1bGRsc29BNWR1c045dVBDZTk5ZDQ3bm1vOTNtdmUzNnJ4bWdJY0pjSFc0RGNKQlgzME52dzBhb2VFZEtpb3N5SGhRTUJGU21QcnVWRHVQcVRWZVBzYzlOZEd3TnIwK1N2dyswMjBCdHQyY1RialBDek1DNGw3YnpuYTNITkVtUVNZT211VnV2SzJONXpxdXFqZTlQdEsvRDZKMWdMYjJmejdBbXJKaDllMkNqVFA2TjRycmRmRGJpdVhkV3EvMmZybnNZb25jT3JxTVFJQmpOenN0bk9QcDk3Q1hsUEIvQ1BQSUxsaXRjZFpzUjM0blNzR3A3Y2QxR1ZlYTMzbjI3dzkwbnE4SSt1Kzd0QTRvUUFrQWhNd1UrdkgwUm9IVU9pT09EeGJqL2VTdzl2UnYwTGdkeDBldnVCWG5Ecm1BSVFRbU5MWWduM2hiaE12eUliNmc5aWdmNUFBcEtGeFhGOUtMSHN6QlM1eXZSajkrbHRKb0ZFWTVCTGx2enhGZnVwVkhhR0tqdHZnYlc3Yjh3aDk5eDVsMUlkOUNFZmhpalNyZkx2N3dkWUQydlBXSGJiZnBCQklRRVFUOU9yWGhYL2NlaElUOGdTcnIvc1RUZTkvNGVXRWJDQUROOXB2ZTc2WTN2ck8xSk5halhmcGliNjBHbS92bDVLdDUvTlhlN1M1aVdUWUYrS2Q4KzVsMzE2anR1cXp2MWcyazhPZnVKSklNdHIyM2ZmSHI3ZXBmNFVRZ21lT3VZb3poaDNRcnJIK2EvYW5uUFg2UGUzWElYN1YycjdrNGtucHZWNGYycWRUOXl2b2JQejBZdHk5cjVyd3NJWlBIR2xHdklJdUJaTXUyYjRUMThuNFE2c3V2RFpsRit6dDhZMDg5RHJVYk1BMzhwdGJBSmp5MjlzMnlUZHlzYnVXd2JraENxODhFVmVjRGJHMUlIMTBSQkJ0dzNxcWlndXYwZmtuSE1HYXpkZ3gvN3JqYVBaTTJURmZiOGFPK1ZuS2pwSG5ua21mTnRneHphcEZtMFRVQm5iTWdpNWxMYS9TaVNReU84dXphUm9iRVlFQTJyWXhpb3JvL2RYbnlMdzg3ME4yb0M2elhlcXhtKzJ1MVJVc091eUNEclc3TnRSVHZzL3IxNzV6S2hpazVDKzNrWDN5c1lnMjhnUm8yNkh4aGRjby84VXQ2Rmo3ZWpJTnFsdlVxZk1yanZSbDYxdkRYY2tUQnZYYXhVd3pob2tOeC92aHRISjk3VDNmTXVPcjFaQmpZZmxOYkNlTmNtNG1uOWJtL2RiODFLcXF0ZXh6eGZHc0xGK0pNRHJJMzlMV3JmelJ5azZkWCt6NyswRzZmMDJTR3o2dDF1TldKeWc4NXp5UmYvbVZWUC81VG1wZStMZit1RmVRUCs5WEtGYms5Tkl1WitHS3ZLMWM0RnVaTlBMemNUdlpUNmZYRzMwYnZ2b0c1OXVCKzd5a3IvLyt6eHhRTndQSGpXTUxpYUhUaHdlaFlBTUQ2TGZocnZxaFdEV3JsWjIyUzdqVlh4ZTFmMUdKMUg5bFRmRGwvN3lmc0gxQ2dodlYzejZVM3ZLQmkwV243blBYSHZtcmxhSnV5VW9XZnppWk9mOTltOG81QzdmN2VIK3g2ck1mVmYrSGtOL2h2dk0vNWN6OXZ0OHBjZDlKWS9mYitucUpIYkR5OTVueWVlZXVUL3JuNHZTV1orZHUwRWY5aWozVGU3ei9hTjNIU3B6NHJ0WkpoYkFrVWdyY3VJdnd5ZldwL2RCSmhSRXdVRXFqYmVVOTMwSGYwcEFLclVIRnMwQzRIREo0S3I4LzVIbkc5bHNJdG9rWXRrRS9tL0YvYkFkL3ZtQjRqeWl2WHJHWTNvWEpMWmRYcEQ0cE9xT0ppa2RXa1Z5UmFQZWhQWFJlYTcvZDhjZU8wSmQrNDZOSG84QVY2YmNjTm9vN1hQWmNtK2ZYTDExdUhQVUt2eHIxUDN6UzArZVN5dUtQTTQvbmpwa25rRkJHeHcvNC90UGJrYStiU3NUYWdmbFlXenJmcW45NnVRNmVjRFNKSTQ3Zzc4OS93NS8rL0FhUjVUVlFsQVdPNW9XN1QyRDBMYjlBU01Hbk4veVJjMjk0emN1SlZ3WkZRM3R3eVJBZkoxZk9wSHVPZ1huaCtmUzgrSFVhcWhvUWx0RXhlL0lIOGdBNnczblIyZnprblcxK2U3NlIzbjJUbHg4OXFYUHJPNzhmMzQ2OEJmQXJlUGhReWFsREJkaHRxSDFWSUlLQzZFdE4xUHlpRXVFVDdTcUo2N0dxdFQvMXdEdlRtOC83b3h0YTgzbnZkY3Y0dEI3dlY3ZTE3bWNUM3ZOMkhaLzNPRzdqa3RTQ01VQ25GYzlscS9GZWU4NXUrcjdUa21SRnZZZDFtdWs4Ry9hcnlEMzg1YlJlRC9YdnRPYmpyUC8zODdybTlqL2dyRnFORElXOFBLUTBRdi95RlowNjNuTEFPZStrOVhnL2ZlcndqdUZuM1VwL3RSQWVUNnVRdW0xeGtBMzB5VTVYUHo3d1orMzJSOTEvL2hlY3NlOGlUTkhHZzFVTEt0L05aOG5mdXFQaTdlTWsyS2hmV3lmejkyMXRIdXpVRWovWDc1ZFByVjl1WHpmYS9hKzJHdSt6cGJ1bnRYdzRjODAzcmNiN2RacnorK3l4b1dYZS8rYk5qemZwZXIweE9yaUhpbVVvYk5zQVZ5Sjg3Zy9iMFJ2SWg1LzB6OWJYOU02anRNTEFia3hSVGFTUnp0Ti9ZZXM2Qkg2M3Y0YlVNSVZnVE16aDNyVXgxcGFEazJzUkMzYkJGQVhrVkMvRzZ0TEkyU1habEZ1aWhjaFRpdTFNVS9KL24zWHFldUhOMnB0YW94MEhyUlRDTURiYnU3UGlYLzlpM2xsbmJiZWF4dkVick00Vm9aSzBudDhlMGZMVzYrSEdPM1RYUDk3QU04ODl4OWxubk9INWNrd1R4M0VBajROSEtjVUIrKy9QQjU5K2lqbHZFZk1PUHd2WkVFSG1acUZ0Wjd1T2QrRHFxUjJ2NytqRkRNOHpDRjU2TGorZnZvcUdoZ2ltMGY1elQ2Qnh0SW14WHArRVp5ODlmZ05wZFYrSHJBY0pES1NjbDNpSVFWUjBHRU9KM0dEOTdtaC9WSUYwT1NuY3lBVlp0Y2hHbTZmK0YrZnVwNk9zclZLYjI3S3Q1L2ZNOTlJN1B2VHNvWjJhSC9DSXcyL1FCUVZackZwVlRYNStEZ0MxdFExMDYxWkVkYlZYcUZ4WW1NUHExVlViUGEvTDEzTEVxcGtVT0xIdE50ampGcmVPdHh4NGQzckhOeis2cG0rbm50OU5uY2RhNnhaZTR1YW5OOVVyZVVkNGpxWGM0SU1mZWtPdnYvUEtzZ0lZUXJDaUtkWnFJMlpiSnJaU1dGS1NVSXFnSVlrNkx2YjI1cEM3K09qVzg3dTB2ZkpCZUJOcjVFUFpJcEQ1YkUyQWJpTy8rYlUvWEg4aWdZRzVxM2pod0Q4d09IZFZoMHpGdkhnV0p5OGF6Zng0MXBaZDZCdjBFZFJmcHprdi9nWTgvcDI1ZmprTm9ZUVFyWUxqOHdmMFNPdjFNSEJCYTcvdVlNTDZsN2xsSEdUazQyaG8xRTVMalc4NllLTzhoZzM4WXB2MGUyM0dyMlYwN3dhQXUzTDFkaHR2dS9QZ2xLYW9NT3p0emVvSXdoQ2VocjloVHkwa09Tck9xeFd2VWFEaTJCMTBoemIwbS9jLzZ0bTBYcjhMM3p4ejErOHJxWFZMLzBpVWl5ZUFWY3BwcjF2OTFNcHQ2VEdwVld2T1JTSFdyYU8yOXByYzZEeis5Ykd0OTV2bDUvU1I0N251Z0luMHl5bkdtVGFWdXNjZkpUSDNPN1RqN05DYUs0QytrMXY3U1V2L3RPUE9ZN0dldXFQWGUyejlXS2xvM3IrcHg5ZjhzdlcyZmZicFovVjU5NTVIY21BU0s4L0NqdHBJSTMzV3IzbGRmQURudlBnWiszNDJpUWVQTzR3clQ3cUd1NTZkeHROUGZRNVZUUzJreVFES1ZSQnhNUHQzWldKdmkvT3RsWXp2N3NkLy9Fa3M2ajZFM3o4eWlacktSckFNMGp5Zkk0TWR0b3ZhVXhYYWZsd1dLR0tKc3ZuZWliZWJObHBzNERiWmFLaGJ3WEVyQVkybW54bmdza0FSYnlZYld6MmYyVzhaWkpEQlRoUEg2SllXdGk0Q0pTd3ZXVTBJaEVyUVRWY3hTRmN3Z2lxR1dYRUc5Q21nYlBSUTh2WTdrK0NlZThCZWUzYnE3Mzl4MVJGYzg4K1BHUHpSMnp4NjhxbGNmZDVGL09tKzJmenJ2a2xBU3Y2bXpnSGx1TjZKVXR5VnM0YkV1U0g3RTRiM2MrSFVNMW5ZYlQ5Kzk2ZHAxRlkyQUQrYzFLMVVNdldidGMzajExb1Q4aHNvQlhGYklVUm1UZi9JTnpTeHVNTnQ5MDRsSExRNGZQOGVuSGhZWDU1NXRaQ2JubmNJK3Y3SmhPRUxTYytlWEJsa2tNRjJoeFNFUmc0bE9IUVFSZWVkVHVNSG4xTDMxZ2ZFWnM3QmJXamM0Y014cEltckhJSWpoakRvd3hlcHVQOUoxdnp4SHV4VmF6QUs4ajMvbDl1eEFrc1lYakdrVTFXTlZWWks5enR1b3N1bFB3VWhjSlNEMmNhbWxCbDBMSzZMRCtTY0Z6NVAyY09IdDlrZVBxRzN4UVhtU3NhWCtmR2ZjQkxmZHgvT2JROS95TVRLQmdvdEUzczc4ZjliK1g5QUpiOUYyM1BSemtwUWRXZ2NCQllJbi9jUEkrVmRVQ252UWNZMno2QU5jakZGR090dXoycWNKZDlEeFNvWXRnZnNQZzd5aTVvTmk4d04rRUhESzdXdEFXYlk4RjRjMW1TVTZoME5wN0VSTXl1TDJNSWxtTGs1Tk0yZXQ4bWtvSFRCTW4vTzF1c3NRaUNGUUNtRnJUU3Vxd0NCWVFoTUtUQ2tSR21kdnI3ZlZMSXY1dmJYcmFRQTVRQVNqdWtIb3d1OEdvVDNWOE9uS3ozWFMwZHh1YlJ3WW5YZzF4Sm9MT21RVk5iMm5TanRrWG1NNy9vNTF3NjluMzJZUlBRWnhjci8rWEVxdHJ5UEpBS2Y2WERzcU8vNWVGNXZWbFhucDNyVTdQcm5od1I2aHdUWDlUVVprOVAyQkEwVlZUUzlWVXZqNjdVWkFkNWhkc01Bem5ueGMvYjk3RXN2am5aaXltNTR1dGx1MEp1M0c2eDFkc01QeGRHRUVKNGRxdlRHK3BFUVhsTXZRMlppYjUwTkFtUllZMlJwbkdxSnRqTlRrc0hPeGY2SkZleWVYTXV6b2VFOEhCNU54TWhDcUFRU2pSSXRhVVk3MWZ6WkpiYStFTjY1N2JySVZIRldPb3J2NU9veXFsN3RScURYVXJKSFR5UFFheWxJalU3NFUxOWsrd3hhNFBVMHUyZGdrbnRYbUV4dE1NaTNOTzR1ZHNTOTllVThWbFhXODdQajl1THd2UVlTRHZyUzJvNzgwZXBuUFlaeTdVT2ZVMVU1aGRPUEhrRkpVUmJQdkRhVGZ6NzJCUVF0WG5wdUNqZmYreUUvUDNNdlRqcGtCTlgxRVc1LzZFT21mYm9VUWlZdlB2MGwvemVxQjVlY3VnZWpoNVlTaWRuYzg4emtqY1k3b05DaWRFdytueStMOHRuU0tEVXhGNThoV25KeE04Z2dnd3d5eUFEZ1NGK0lNbW55UUt5ZVdVNHk3Y2RiVWlQb1dtTXlZWnBKUTFpenNrUXp0N2ZMelA2S3ViMWRWcFJvR3NJYXgvQlVTNm0zbTRxWndXYU5yR1k3YndQTEs4MXZoRWlOVCt1TS90eU02NTF1blAzaWgrejM2UmM4ZVB5UlhEbnhOdTc2MStjOC9jejdVTjJZeW1zUUtmM1hoVWdTczM4WkovVE00Z0paeFFFbGtzREUwMWxRMW85ZlB6K0orT0JoaEhLelBGMTV1K25yMjc4dVFRaXgrY1FNVGNhWG1zR1BBbVpXaUxXMy9JbmEvNzVHMFU5L1F1NzR2Ym5tdkwwNWFzSkFubmxsQnMrKytpMUxsdGQ0RjNjVWtacnlpa3I3OWkzbXRJUDZjMEpobk1LUFh5UXk0enVDbzRiUzY3cEx5QjIvTndRRFAvdzJRaUNFM21oWVdvR1JyZW41bXlnQUM2L0lRc1VFelNYMDIvcjgrbDlEYTRIY1dsblJYSUFyUk1jWHRHN2xleDlWR3BIZGc0NStjRkdlZW10TmxteTBaV2FUWkxCMSt0aDZ4ZUFONWVWb3cwdFVFSzVEVGttSlYzaWVRUVk3RUZKb2NBMEc5RjNMM1ZlL3hoMVBIY2cvWHhtTE5oVzJrcHV3S2J4L2dVQ1NXOC8rbUdqUzVNeGJUeU1oMWhYY2IzU21Db1ZRQmo4Wi94MVhuaktKSTFlZXk4TGxSVWhEb2JaZ215eXR1b3lRZndrNWdlOXh0VVN3NitiMjdZeGNuVi9FQjNET0M1K3gzL3A1M3Mrc0h3LzQ0VHp2QTdyN0NaeHdFZ3U3RCtFUG04dlh3Q085THNocUpCeHd5QTlFV1ZHVFEyMDBHeUhWTHAyaFZDMHNick9HVWlIOHBJdDBWMEFYbmVBMzl1eE9QNzhsaytieDJlSUtKcDUzTnBlY2ZoR3IvUkhlWHoyYnlSVnpXZHEwaG9RVDkxYWcySlFQSjRNdG9iUFg1ZTdLMEVLZ3BJSGhldm04SWpXcHpSSmJHd1pTcVpiSE04Z2dnMDVtTTJhT3JBeldRMmZMMzhrZ2c4NE0zMjVEU1V6K0JoRU9VWHZyM1VUZitJQ0MzMTFQNElDOVBCM0xjUkNHdVZuVFFtdEZNcm9JTXpDQWFNMXJBR1IxdVFnN3ZnQmZxQjlDeU0wNUE5Q3VnekJOaElUNHAxT28rYjgvazVnNkUwd1RIWW5pMzJ0M21EeS8xY3RxNnFFZ3ozdTlEODFKK2RYc205WEF5N1dGUEY3WmhlbVJMTS9uMHRHeGF5MlFRck43VmlQbkYxY3dNYithVXN2MnFLbFRwbGR0M2NZdkcyMEdHV1Q0bWVKRWVTbFJ6MVFuU2p5anIyYVFRWHBCZ1I2U3dOZmRSY1lscWw2U21PRWpzRitDOE5pa3gzdFZLWWhQdDJDcHI4TmNMWi9WK1BtMjBlTHNzaWhuZDR0aW1CcmxlRzh1ZjZTNnNRUnlUWWVKZWZWY1hGeEJsMmlFUjErSjhkaExjUll1ZDJoUEtvb2gwbjdadGU5NnBWcnFCVnpYeFRDMmpkWFhkVjFrS2k2bmxHcjV2YzJZVndXVlVkaW5Cd3d0QXROSTY4VDFIYzJENnRYU0EwS2p0V2hsdjdSTjcvQnh0UDlUeGxsemVDMjVEMU9TSTVFaWdjcjRlalBZQmFDVmtRcGZ1T2cwV05OQ2FsWTJXSHk2T29qZldCZXgxQWdtQkNzb2tFa2NuV296cGpReWFHRjFDYkhxVzRQR2lFWWtEYVJlMTg1TXBQYjlWc05RdUlhaXVGaFExSGZMelp4TncwQXBoV3FSUndLck1KK3NibjdNblJHSi9IcG1acEZua0VFR0dlek1jemJxMHZSLzg5QzFOcGhpMndyclJjdWh1RzN2NFdoRXZrWFc3d1puYmxDYVFBQUJ2MG5DY2R0dnE3VHJjelJTYUpReVFWbmsrT280cXVnYlR1bjZKVU96eW5sc2crc2pVeUQySGRUdkJ3Vm5RWGhma05tUWZSaFkzYUhpYm1oNEMvUVBxRWh1SThUblEzQ005M2Q4dnZmWUQ0N1RnTndqb011MUVCZ0tHS0FhSWZJRjFEd0RUWitEaW1iV1RWb3Q0SXg3ZllkREFrb0xITnVoSUN2R0h0MDB4d1Rta085SUlndWFXRnRxc2x2WFl1cDdOUENWSE1UamN3dUpSeHNSZm45SDFWNzUyWUFaenpJbHdZREYrTEY5MkgxSUtZWUJheXFhZU9lTGhTeGRXYnNKTjVWZS8zUkxmUzI5VVpLV1pVcENJUjhIamV2RGlBRWxDQ0ZZdWJhQmR6NWZ3TXExRFpzOGZqdjcvZTJNL1lOMGFreE55MWF5WlBFaUNyS3pLUnMzRmlGRnFoNHc0MFBMWU12SGlZbWdSSnIwTVh4MGt4YmhWRXc3b2hXcmxjMFNOMG01Y25CK0ZHeVViWml6RkhlTjQvclpaK1FLZm5Mb0ltb2IvWHoyVFZlK21ObVZlTktrdWFtelFLL2p1dkVJK0pHaE1IMStkejlGT1NhMm96dG1tMTU4Y2FzL0o4NnZva3MweVovMjZzbnlnaUNHbzFCQ2RLcjdKNkFscnVETnU5Y05jbHUrZ3lFRnluYXhYTVhSeCt6T0xSZU5wL2ZjT1N5Ly9FSGkzODMzYXJnNlZHWnJwRkNwdC9YV2c5SUNwVE8xWXRzTGpuSnhsRXZBOUdVbUk0TU1Ob0U4bFRpODJJa1BxalNELzQ2aG43T0ZYdUpLSThtNHYycU1iUGppd3N3a0FkZlpKWnp6NG9mcjhuV2IrVWFlZlI5cUcwZzJhb3JPaUFHUWJOUVFTMkwyTGVPRVhsbGNJR3NaWDJyaFArRW56T3MyaUQvKzkzVnVHRmRQY1o3Sjl1cjUvTXY0QU03NkFUdEcvMEE5NFBtV1Z3OFliR2Y4WDd0dXlwZTBGZmFPRUdqYnh1eFdpcEdiaS9EN1UvbVJFVlJEQS9heTVaMHVFMERyZFhwaUJyczIza28yTXQ5Tjh1ZHdLYVBNSURYYVFTSzJ6NXFWYkhQYm93TkhkMkhxWS92eHQvOHM0ZlluNXRLd0pvTEk5U0dsd0hVejF0MlBEY2ZOYTlRZjl3bUx1L2N1RUpkT3ErZFlRNkFSeEUzQk8vM0Q0dUV4ZVRUNkRRNWNFdFZmZFZQVUI3YVVlYjdPUVMxUzlpOWFJOXdZeXJEUW9qblhYbmh2cEYyUG5xMk4xZFU3M0UrbnZQRnFMVUM2N2Q1OFg1UWN5cnljSWZ4MDZUODVmOGxqZEUvV0VrT2doRUNtWWZQUVkzMDVkSmNXOThhcW1PSEVNaHNrZzEwV3luR3BYYktTaWxuZkU2dXV5MHhJQmlrZkxlQTJIMGtablNpRG5XdExCc01XRS9jcUpqdG84c3duYTRnbFZZdStJZ1NFc2kzT0dsOUtROHpoZjFNcWlTYmNiZjVjUXlxMEZyaXhNRWpGQVlPKzVsZjd2OG9SSTZZRG1zL241dkxZMUd5Z1lxcy93KzlUWEhOb0JiMExrMnd4RlVlQXRqVU5IOVJTL1h3NVRwWGRJVFZLL3h2Z3NDSkhjOVhYRnFQWGVybmFtUjIvdldVc2lOd2NqTjQ5RWJrNTZMVVZPRXVXUTNMbjgzM2ZHZHFOMDk3NG5DRWZmOG90SngvREJSOWZ4NzNQeitDQmh6NmtZWDZGMXl0U2VINHYyM1loNHRCbGp6NmMxZC9pOVBoQ2hrcEo2T2VuVVQxc05MYy85RGtOTlkxZ0dqdWxaRWdyamF2VythRzBCa09Da0JuSFZBWVpaSkRCdHNJcTNnTXpmeWlKWmErUldQUTgya2tseXdycEVTK25HUzcvajVmdWQ4K1pTZklidkhNZzAxNmc0NUIxN05GWXBhVlUzWElyaVJuZklrTWhUMWZQY0dMOEtIRmRmQ0RudlBCNXlsOTllSnY5MWMzOHJHM3BwOXNNS1VDNTREZWpKQndMRExQZDY2NHo1c0Ztc0xPY0UyUW9XVFB3MUIwQlBYb1hVRjRWSVpHd095VDV3WkFldjdoZEZ5WlEwRWhwZmhOTDF1WjdUYlRhaVA4c2FtU2w2WERMK0FKRzFmcUl6bGE0TVU4OVMvdTlKY0ZOd0NvQllyVEo5eUtYa3RVR1BRdnlhUngrSEN2bmZJaXc2OEd5b0psZHdMRVIwa0JJQTZWVktoTkJaREszdHdDbnNaR2xOOTVJYk5FaWlpWk9wUFNTU3pLVHNoV292L2RKM1BKS3pucjhMZ3FLaXpqdTBNTnhIQWZUTkhFY3A0V0Q1OVBQUG1PUGthTjQ3OHN2R1B6VjY4dy8vQXpjSlNzeENuTFJ0ck1EOWJNTzBIZE9PSWtGcFVQNHk3TmZVZU52SXBqbGEzZHRxVUNUVUFHNkJWZFNtOHpIVmo2a2FKLzkyQ3h5ZlQ1UHVDV1QzdXQzZGRWTEE0YlE5RE50enN4cTRIQmZFeFZMa3p6NjN5Z3Z2Sitnc2xwbHpLODBnV0ZJZ3FFQUJRVTVoTU9CbG5VYnpncmdPTjYrRDJkdDR2bXdIenN2aDY1RHgxTVNOTGZmQU8vNk9qTy9PMmwrdGRZdDNHOWFlekZPS2FTWDhxalZ4bHlyTzdNV1dtdkdsdVF6b2JTQXB4ZXNhajBNclNrSytHaTBIWEo5SnRVSm15NEJIMnVpQ1d6bFpJUkFCdW1weCt3MHYwMDZPQkoyTFdmR3lyd0k1OWZOWjErUng5VzVwZXdoYzNDMHBrbTdDQVNaNnNQdEF5a0ZVZ2ljU0l3N3Jqa2VnSi85NGdWMDJBZXU2d1hnTS9qeG9hVW9hRDNsUmV0MWYyL0UxN0Jldnl1aFBUK09vRVhoRVIxY1hCUnpranovM1dkVVJPcTRjdTlqMkgvVUtBcCtmZzBOTC95SDZCZWZvaUtSWGY0V0NjQVZZSXRtWGdRd2xSY2ZUVXF3dE9kNjFNSzd6Z1cwQk44bWpzZ3p6anFEa2NOR2N2S05KL045M2ZlSTNpYXF3ZlY0KzlQZ21ER2ZmR01wVDVZVmNVUmZpd3ZtdjhnQlpUNmVPUDE0YmpyclNxNi81MVA4UVgvTHVlalBDbkxrK083OHFyQ0tVVG1LNEZGSE1hM2JFUDcwekRSZWZ2d09hSWhCYVc0YlpqZzFVNW1JOHk0dDVGbzFqMXhmc0hYZ2JlOXQrTGdxVU1RdklxdUphTlZtVzdDWjN5RTdKSWdsTmE0TGZjczhrdkhGcTF3TUE0SStRV1BVYThTdFZOc0Vod0xDUW5KVm9JamV4c2JFQXp0bHYyV1FRVG81cDZRZ04yZ1N0MTBTamtacmpjbzRacmVQSWJJZTNiaUxRQXNMTjFWOEtWU0NNbDNGSUYzT0tLb1k0YmNaMENlZjB0MEhrYi9QeWVRZmNpZ01IcmhMemNmRDc5WHljR0FzeHc2TGNlT00vN0JQMzMveDFQbG5jOHNWNS9PTDMwekZGd3FrRGhDTkx5Zk1jWHZsOFpkZVUrbGZHSUVUVG1aU3lmN2M4WS9adlBib2ZVQWN5TnFpUStHeXkvWkVhM2pnZ1crMjZmQ1RRRXdKRHV3cXFVL0M1RldLZ0pFcFZQaXhJNTV3aWNjZDZocVM5T3lXeGRFSDl1THI3eXA0L2FNdVhQem9XVHowczJlWU1IeGhPdWFoWnBCQkJqdktzV0VhQkFiMElUQ2dEMW43am1YdFh4Nmc3dlYzMlpISzE5R2ZuOGV2aDF6T3ZvVjdBT0JvbHk2WC9aU0NVNDlqMVMxM1V2WEV2MEVyakp3Y2oxQm9Xd01QUWlBTUE3ZWhFUVFVWDN3T1piZmRnRmxjaUtOZFRBeE1hVEtwZWhxL24zZGZacEhzWUxUYkhqNmdqRjhWVmJleWgvLzh6RFJlZXZ3T3FLOWpZbGkyNkcvcnI0SDFHMzVwcFR3eWt2V2FpbW10VzVGaWJRNW0zblV0MnJSMmxxR1NjOUhKR2FqRVRMVDlQZHBkalZiMWdFTGdBK0VIWVFITm42Vm94ZDZUU1o3TjJHaDRwS2F1N1NWY0dKYmpOVkhiWGg4WWFZSXBIOFBDMlRCbVh4ZzZHa0xodGptNWRoSG9Gbkl1eFRyU29mWFBtcFEzcjVrcjNTK2dUc0dIQ1pocVExeXYyOUlaN0RENGlvcEFDa0w5K2xELzFUUUNaYVZFRnl6cThFQllSK0ZuL1k1cXY4cUM1NTlPSmh5RXJaQUJrL3ljSU1VNU9kaktwcjRwUmsxakFoVkxvQzBUbjk5RXFhMU03UzZmdnYyKy9Bc3ZlRDlQTzIzN3lrOEJ5b0dTTEhqakVCalQwenR1cXl2aHdvSHc3bW80OXhNdlNMZk51V0lhTGh2dXZjY0RjenZ1N0M0SlZyQnYwVmU4dU9LNDdTbjA2Sit6bUNzR1A4cFBTbDdFbXR4QStiTitZblBOZFF2dkJ4Q3dIRWFVVmRDL3BKcWY3dmNOcGJtTmZMVzRPN05XbGxEZEZFeUx4b2JiODR6dUdSVGMxTi9rdUJKSndHamJSbFl4UmRQYnRUUzhVbzFiazBuNjYxaTdvWkFqK3ZnMll6ZjQybTQzYkNLT1pwb1NKMjVUVUpTRlFCQlBPRng1emw0QTNQdjBWd1I4SmhwTlRWVVRac0RDY1RMT3RiVDBlZmcxT2lrMk5BY0pESGNJN1dWVC8ySUFlNVhNT05GM05YU3lnR0pFV0pnb2Z0NDBsZVBpQzdndnZBY3ZCSWQ2c2JwRWlreENacElHdDBrV0lDRHBJb1dtZCs4aWxpNnN3TFVNaENuVHJ6RElzZ0dJTCs1SGZFbGYvTDJYa2pQbWF3SzlseUNFUmlWU2ZqR2hPM0IrSUNCaFRWSXdPeUo1ZjB5Q2ZhWUdtQjhWaEkwMDNsSXRDWlJ0MXo5akNZZXBjMWV4c3VKZFppNVl6YmxIN1VIdmJ2a1ltVDJXUHZyWnM5TjQ2ZEUvUWl3SkpXSGUrTmNVYnhFV1ovSElmV2R3eHRFaitQYjdDbjV6L3dmODdmRXYrVGIyWHo1OFBVeFphQWpQLytza0Rod3pnRW5US3ZqbFg5L2wvMzcxa3ZkYVYwRzN2RTNZa0lMY2dPQ1FmbUZHbFBqNVlIR0VhYXZqSkIyTnp4UXR5eXlEZEpEakdaZDVCaGxrc0hPeHUrbmo5bkFCVDhZYmVTTVJ4VTVqSTFLblRHQ3BJYjlSVU5nZzJHMis1SlFQb0NHc1dWR2ltZHZiWmVZQXhaemVMaXRMTlBWaGpXTjRLcWJVSGFwcVpyRGhpYVlCTTRtV0RrSTNFL0pwaERMQjhiVXErdG5aa01Kclh0aXlzTnlVTTFTcWxrWFM2cG9mby83NzlseWU3RmJNRWIwTkxyanJXUTdvRnVhSk15WnkweG0vNGZwL3ZKWEthOUFwL1RmTWtmdjM1OGE4S0x0bFJ3a2VmVHpUdWcva3o4OTl6a3VQUEFnYWZ2cm84SlFPcWx2SHVscGl0bm85N1dpOTM5dG96K3lvdWdRZFg0L2NXVzlDc2ZOYk8veGU1YVdJRHVwaUdmOThCanNHejQ0N21TTU9qUkw0NUgxV1huMExnVkZES1Rydk5BWk4ySnZicnptWWMwN2NuYWRmbnNFenI4NWt5YkthWnNHN2RSK21OQWhCMzc3Rm5INXdmeVlXSmlqNCtBMWkwMmZCcUtIMHVQdTM1RXpZRy94KzVpK3Q1b1czcDJ4ZWp3Q3liSWRrVXRMa0doZ3BXZDhNcDA1UThad25LNUpySkdLRE9ObTJQSzhRdUJxeURCZWZ6eVZpR3UyM0E3V0dpZ3FZTnc5NjlvUmV2VHJPcjZvVUxGc0d5NWZENE1IUXBVdWJDZkNDaG1MUGdyam9IcXhrOTd5NGVteHhubGpVNUJOcVY3WjFKUnYzKzhxNDM3WnRDYm91UzkvN0FHSnhuSUNmNy81eUQ3NXBNN3o5TkdZM2h2L2lLc3g0QW9JQmVoOTZNTkxJSkRGbHNKMnRHNkhScm9FdjRxZDdjUVA1M1NJTUxLdkdqUHRJU0EyRzJ1QjZRQWxJV3BoNUVRYjFxQ0tXc0RCTlJhSXBBSmFETVBSRy9saGxtd1FTRm9ONlZKSGZyWW11K1Uwc25kc2RPeHhIR0txbGdmeW1rRWoyWmtubFZRenI5Z3VrakxCeldhVzJId0tXcEREYmo5ek96VC9tYlBEM1A5OWN4ais3YlNZZThQZE41M25mV0ZUTmJwdTBMK0pRbXJOWlU5cldmbzdwL2hsTG8xMzVkblYva0JHUDZIVVg1bCsza2F5U1Fhb0lwTlc0SENGeGRvRkQvWTZzYm54UzNjRFRmL2dybjd6NUt0ZGRmaWozSDNVQWphUEdNNjB1eHNmbDgvbXMvRHZtMWkyalB0RklTMTV4cHZ0em05Q1o2M0ozWldnaEVGcGp1QTdhTUJGQ2tEUkRTQTJtVzU5cWt1aTJ1amFERERMb1hQanc2NXJNSkdUUWdzNld2NU5CQnAwWlpaTmVwdUdCcDZtOS9lKzRsVFVrdnA3Rm1zUFBKdXVNRXlqNDNYVVlwVjI4QzEwWE52TFp1UWhoNEVUZUlCbFpqbEIxQ0ExTjlmT1FiaS84NGF2d2FBbzNlRjNxdllScDRxNnBvT2JtdTJoNjloVVFBdTI0R1BtNTVOLzVLM0l1TzNzak8rYVlLK0NzWStDa1E2Q2syRE4zdWxvMmw1YXM1YVQ4YWw2cUxlQ3h5aEttUjdLOE9QQzJKZzlvZ1JTYTBWbU5uRjljd1luNTFaVDQ3SmI2YVNHaG9oSmVmQitlZVdQamx5c2dKQ1FIV2Ruc1pZYVo2a1I1TVZISEZDZEtQS096N2xSSUtWc1JVMi90TlJuc0FoQWc1dnB4cWx6OFIwZm9jbElTVVMreGlqUTFiL3RvZXMrUE85dUhjQVdZSGJkdnc2WW03Z3Irc2ppYk55c0MvTHgzRS9zV0pVQ0Q0d29NOGVQeUVKakE0RUNjUzd0VWNIUjJIU3NYeExqNTMxSGUvanhKYllQQ2JlZFd0SjFkSjdEWExJZFdyMTVOTXBta1o4K2VLS1VRUXJTN0RsMXIzY0tUdW5UcFVudytINldscFMwTmt0cUY2aWk4dVFDVzFzRStQYUFvbExZTzd4M0pneW9FYU52QlRXaXZDTnh3SWRqZVBDT0RZZVpTanZCUDRWdW5MMU1ZalNETzFrb0Z1VjVzU1NNeTVZYy9ScjFIUUpNRCt4UjRkMzlTalNETDNIRjFWa0pvdEphZ0RQcm1MNlRKRGxQUjFBMmtneEEvSEMvZDd2QXBQbDBkNU13WGUwRFFaUjBaanVTOUhuUFpPOUJJb3dKRGdFcENzSGNXVnBmZUxGK21HSFdndzc5dkRyQnlTZ2hmV0tFVktFY2cxOU1YMXU4aHBIVnp6QmxJbFFKcmxhb3pNU0RXS0JsOVNpTVR6azJ3Y0twRlVmOGZGT2lZUWpCMlpDK1dycXBoN2RwYWxBQmhTQXFQT29BaFp4MkF6OW9KT1JlRFg4aHN1QXd5eUNDRHplcjFJdFYvWlRzZXdFcWphMjFVZzkzQ1FMYTFkdks2WmpKaW0xS1ZOTnJMME1pUXNLZUxDd1NoTkNXRklkWldSNGdubkE3UEl4Rm9wTkM0eWtTN0Z0bitlbzR1bXM3SlhTY3pJcXNDbjR6amJtWjlxaWpVdnd0Tm4wRjRQeWc4eS9zWkdBWGQ3NEhhdmFEeWZraXUyYlIxcERYRVprTCtxZDdmc1ptdGV5QzFYcHZnSzRYaXl5RC9ESkM1b09vaDhqbFVQK1A5ZEdPWjdJM05yNlRtV2R5UmhnMEVSelNTWEJMRXJUY3pOMmNIMnBOS0NVd3J5dUZkZTNGRjNzdGtMLzBQaFlVNWROLzlNQ0lqazl3K1pUN0xWamR5YkhBRi9lSTVYSGJRd2R5ejlnQWVtV3hqWmxzNDdqYXZsVmFNdGtJSThuTUNaR2NGc0cyWEpTdHJDUVpNZGh0U1NpemhzSHhWSFc3YmZGU2k5WGNWRk9TRnlBbjdTU1lWUzFmVkV3cVk3RFdxT3cxTmNWNThkODZtbW05MytnTnVSL25OUEQrbTN2enAwUTYvb2hBQ3JSUnVNa2t5TzB4U2U0bTRYaU5mc1o0Qm5rRUdtOTc0QmNKZ3JCVmloQmtrUjBoY3dFbXRUeFBCQ0FJMGFNVXNKOFlVTzBxTmRqTStWVUJqOG85ZmZzVGxaOHptMTM4YnkzOC82RXRqeE1JeUZWSTQ1SVNUTkVZdEVyYUI0OHBVTFovbkRCTStIN25ISEUxZVVSamJWaDJ6UlMrK3VMVXVLV0gvbGZWMGIxeklYV043TUtsM1BzcFZTSzFSblVBbUNLSEI5Ym9zTmR1TldzbVU3N0Q5UGxRaFVrMTVJd21LdStad3k1VkhjTkxvYm9qN24yYlpQMTlDTmNhUTVpWWFNZ3V4MWZmSGtDNEtQeW9lUU5uZzhWNUxDQ29NWHhTbGxPY256cUJEc2JSMk5Xc2JxOW12OTI2WnljZ2dnMDJnZDdMUmQybnQzUDdmK2d1dWZ6OWNkdkJxWDliak1hdzNiUm1zQk8yeXo0TXc2VkorN0FTdVQ3NDFPOFUzRXVCbmYvMFhCM1RMNG9uVGp1ZW1NMzdEZGZlOVNXNkJIL21tRjl6S0d4bmlpUDBHOE92OE9LT3lFd1NQT1k1cDNmcHoxNzgrNWNWSEhnRlJ5dzNQeSsxcU1xMXZ4NXkvQ1R2R3R3azc1b2FVSFJNNjZpaW1iNEcvZVNQN0kyNFRMTW56L0UzbGRZaUExUzRiQnEwUmxvVzljQkdoODMrS3NMejhBWjFJVVAva1U4aHd1Rk90UU0wNmt5dlRnbWJYaDRGZ2tadmdwSWFsM0JMdXl0bitmSnEwaTQzRzZNQzdMeVM0VVlHd05NTGNldkhoSmxaaXJEaVg2ODU4a1BPT081R2I3cC9DUXk4c3drMjRtRGsrbEdaVC9wME1kbEZjKzFtVkhsQVpGMC90bHN1Zjlpc2czQ2ZFUkZQdzFvQXMvbUlWSUpYaThpK3I2RlVuOWN3dVd0UnYwb3NnRUdpRWt5UVFXME04MUJVajBVUlJZZ25kZ3JYa1VVTmpSUU96Q280bUVTakFTallRbEFuQ3FnRi8zVkxLczBjUXplN1JwaVc5dmYxMGh2VDZ2U2dsUUF1Q09aVUlZWlBuK0tpTzU1QlFKa0o2ZmNhOHN0a2YzdU9PZGxnYkxPTWZnMi9nN2E1SGNQbkMrNWk0NWpWQ2JvS29NQUNOVExNR29udVlRZTRNbC9KSXZKci9KUnJTbW44eGd3eTJGdEkweU8vWGs5TFJ3Nmhac0p5bThxck1wUHhZSWJ4NGliQWR0RStoY2pWR2xVUWJNbFVYcGpPOVROTHZwckZwZnM1ZENJNWlVTzlzSHIxOEdFR2ZaUDZhS0I5OVU0WGg4M0pkM2FUTDJHRUZQSGpKRUtJSmwza3JwL0xOZ25xa0piY3E3Y2lRQ3EzQmpZVkJLaVlNK3BxYnhyL0NJU09uQVpyUFp4ZHkzNlJjUGxya3gxWGJZTjhvd2FsNzFuRGFuclZiTHFXUUFxY3FTZlYvS21qNHNBYWQxQjFxV0UvdjZuTDlnWXFMWi9nNFlZR0ozL0Zvc2pMWUhnYXp4Tnh0QlA2ZlRFUVc1bU4vOUFYMnlsVWdCU0lVUXNkaU83VzI1ay8vWHNDZkJwUnkza0FmWi96dHZ3ekxmWUU3TGppVjZ6KzRpcHNmbkVSMlRnaXR2VnFsZ3FKc0xwcllqNnVDcStndUUvak9PSW9sUThkd3o3K244OUJwdDBGRkkzVEwzVGwrS0ExQ0NreTVtZWN5Nnp1RFhRdzZaVWNMa1ltcFpyQ0QxcHdUQldFUUdIZzJ2cktEaUM5NGx1U0tkMUtGVHVsSGp0Z1UwbHoxTHkvRzh2Y3prdVExTnZkRXlOekxEckZJL0g0Q2UrOUY2VDhmcCtyMlA5RDA0aXNJbitYWmtCbWVoUTZ3K0RxWGpkZHVmL1VtK0o3YXdzOHFCYWtjb3poMzNqS0dGOStMOGRsYmN6SHlBcmp0TUFSM1pQMTRCcDE1SXdxazM0ZEtKamJ0ZHNuNHluNHN5d0R0S01JNUFmNXp6NmxjL2J1MytHcnlFbVRZdDlWeFpDbTlqdmR1VXhBc2wvT08vNUpqOWxqQUZZOGNDVnEwcjRaZXd4ZnpZcHhmVzg1TnB4ZHcycjdaMkpNVVRiTVVLdDY2WGozdGRFc0JVVnZqOUJwSldVNFdjNllzSktaTTNqY1djSHl2R0l0ei9UaU84T2lRWFM4R082aWtQOHNiS29oR2F6R3NFRXE1YUx5YUFKM1psSnVINjFMMzBVYzB6cHRIY09EQXpIeHNKWXpDUEJyLy9ScUxsNjNpcUErZVk5YlNSVXdZc3ljVjFkVllsb1Z0MnlpbE1FMlRtYk8rWlVqM0huejA5UlJHekh5SHhZZWRSZkx6cVpqRmhXaG54L1NNNmdoOTU4L1BUdU9sUi80SXRzUEpOKytiOGtXMDNjY21oWXVqTEFabHorSGFnYjlqV3UxZVBMM3NRaHh0dGtObUNrcEtRc1JpTm4zN2Vqclg0c1gxQklNbTVlV3hYVGFuUndOaHFSZ2ZpSEp1VmoxOW5SaWZmSnpnL24vSG1EYkhKaExUdTNSLzRYUnZNNU9pTUc5Qk5KcWtzcUtlc3JKQ0tpdTliS0tTcnZtc1dWMU5YcDdITFY5WlVVZHB0MEtxMW50KzllcHE4ckxEOUwzZ1JIcDBLOXgraVpWMzNkcXAxME5ubmQvbW5HSFhqaE50cUNhVVcwemxzdGxrRjVTUmlEYVFYOW9uVmRMbzlXbTBIVTFEeElhZHBOV1lVbkpXLzI0OHYzZ05hNXJpTFQza3NpMFRWMnVxNDBsc3BiR1ZJdTRxS3VOSjRtN0cvNU5CK3VveGJhdGYzc0o1M003TnFKUkRJbHFQNlE5am1yNVVmYlJveCtzVnlYZ0RodW5Ic2dMdERHeDZISkdPazhSSlJQQ0hjcEhTM0NYV1ErTW5oZno5MlJoWDNWdkhGM1YxakpkNVhKMWJ4dTR5aTZUU1JIQVJpRXhid0E2R2FrcWdwQUMveGQxUFRmWWU5Qm1FZ3hhV2FWRFhFTXNFMzM5c2FOWnRHdXF3MTY3RTE2c2ZpVVhmRXhnNGpNVFNoVmhkU25GcXFyQkt1dUZVbHlNQ0lXSXpweExvUHdRTjJDdVhnT1gzM2tlNW1BWEZxRmdVSVFTQndjTVJnVkQ3Zld5c1IvMlkwcjhhRXpIZW16K2RoZFdyT1cvTUladzE4Z0NLTHI4SzMrQWhOTDd5SXZhS1pidXNYMWNBcm9EOEtJeU13ZW9nbEp0UTVmTm9NZ2ZGWUZFUW1rd0lLQWc2VUp5QWNCSVdaVy84Zm83ak1IejM0Y3g3ZFM0L3ZlWUMvdm5kRTR3N0dLSlJFOXQya0R2WmJqT2ZmMkFpZHNLbXpoSEkza2VEdjRueUdiUG9YMWJHeTNlZlNIVEpDaFkxSlVEQWtidVZNREYvTkluS0dxekREeVpoK2xqK3Y2a2MxRlZ5MnQ5T0lCcDN1T0t1ajRoRWtnaERiRm9KRUJyaGVJZXJOcDFNeEhtWDJUYnJ2RjNDOGlHRFFXUldObWp0QlllU0NkeW1KaS80M1lHZW1BU2FjVmFJY3dMNVBCYXZ3ZEZ0TXdXVkFrTkM3ektEbnFXU0Q3K3lHVHZDUzRoWVhhazRjQytMRldzVXN4YzZiU1pqRndnc0FlY0U4aGxuaFVoc1lodzdhcjhaVXFZS2xNQjFQY0lNbVdvRXE1VElOSHZZUmJkaEMwbUtGdWwzU0dzb3pmY3hmbWdldzN1RWNWMU5UY1NoTnVMdzhldzZWdFFrMEVxM0twN09vTDBLblc0eG0xMEVTbGdnUEpKQW9SSjAwMVVNMXVXTXBJb1JmcHNCZlFvb0d6Mll2SDFQdzcvSEdBTERoeU5EUVFDV0xaN0xoOWVmVGJjUmUzUDRPWmZoMm5hbm41K1hIcDJBbmJDcFNaaXM2WDhNVFRtckNVMlpUUCtUK3ZDLzV3N0ZXYkFVR2ozNWUremV1VXdzN1FYbFFkUXhKeEUxZzZ4NTltdU83QlhqM0VjUElocHp1UFNHS1VTaXRrZUNvRnM3U0xUV21LYkJ0ZGZ1Z1JEd3lDUGY0amp1UnRlMjZiNEtFSzZMc1B6c1ZUR2JjaEZpa3V5Tm9XMlVsQmx1MlIrOTdQZElBRCthdkpxNUM5K2pwajdPdnFPTDBib3JWendodWUvOHB4ay9iQUU2Yyt4dlB4VllRNDZqeVVvRnU1b01hRERGTGx1VGxrSG5ndHZRU09UckdkUzk5aTZOSDAzQ1hyVm1oNU9TVDZtZHljUkpGM05tenhQNDllRExLZllYb0IwSFdWUkFyL3Z2cFBDc2sxbjVxOS9UK09tWEdEblpTTDkvb3lRUWtZcDI2NVFOSTFLTm5QUUdVV1pobXFoRUFxZW1sdXo5eDlIOWp6ZVJ0ZTlZRktBZEI5TTBxVXJXOG9lNTkvSHM4bGRRWklUamprYXpQVnpmWm50NHpDYnQ0WlArZGp5QldJU3NXNmJoTnNZUXB0bmlqMURKSklsWTNGUEtsTUlJQkJDbWlWUGZBRko2VFdWOFBzeGdZTXVrVmJxWkxONUFtSDB4ekw0UU9qcjFYQXh0TDBIWnMxR0pHZWprdDJoN0lkb3RSK3RvNnBqMmdmQURGaWlOc0RUYVRSV0laQTZKSHgwc29iR1ZCTnZreExKeUJQRGlxaEl3WFN5cHNMZW5mN1NtRXQ3L0gzdy9DL1k4QVBvTUF0TmkxMVlTUldvZjJxQUVTdnVRTXVidFIyR2t0cUFHWEZ3VnhwVVdQcXNlNWpqd2ZnS1d1dDVieU14MjNTa3VKTmRGbWo0U3E5ZGlGZVFUbVRlLzNVMGhkeVRXV2xudFc1M1NzK09NaEtKSDN5SU9IOWVUZzhmMFkwaXZBaXFpYStpYVZVTFNNWml6YkMxVHZpM25wYy9tc1dwNUZTcmdTNzEySnkvS1poMnNyZzcrOGhmdjkwTVBoYnc4Ny9jT3psUVVwRlJZQ2E4Y0JHTjZ3dU16SU5jSGYvd1dqdTRPdnowRVZrWGcxNVBCOElPak4vMCtZcjB3aHQ2VWVhZkJOT0RhWWQ1amo4d0h4OTNtL2tDZ1lWVGViTTdyOXl6dnJqMklSanVyZ3pjTjVQb2FPTDNQaTF3KzRGRjZybHBFMVowK0dqNE5vdU1wV2RZR0tDMG95bW5pd3ZGZk03YmZTcnJuMTVOd0RMNWQyWlZkbWVKU0FHVUJ3WTM5RFNaMmxZU010cjFJeHhXUjkrcG9mS2thdDlvaGcrMW9Od1MyWURjVWpDRlJzYjdkOERVSGRwWDhaRE54TktjaERrcHo0OFVIY01FcG94bDA2RDBjc204L0FCNzk3elMrZi9jcUhuOWhPdGYvMzZzNFNSZEN2blovQnlrRUpRVUJhaG9TSk95TTdkbmgrOWFDNEJpSHhEd0R0MGF1THc1eHF5U0o3MDFVazFobmVtVmlUcnNNZW5YUFMrdnhMWnU3Z1N6d3l2T29raUdLVkpRL05YekFTYkc1L0RWckx4YjBHbzZwWE56R2lLZUFOQ3NjTzNDOTFuWjJXWkR5L1pTVVpETjZhQ2tURHgzS3M2L041THVGbFZUWFJqemRPWjNzdVdhNzM1OEFJTEdrRDVWTGV4UHNzNVNjTVYvajY3a0VJVFVxa1VybzNzYW1tZ0pQTDY1T0NFd0JENjQwdWFUTTRjVVJDZmI1T2tCU2c1RnVKcTlXS1lLcjljbjAyNzRwWEtWWVZkbkFQOStZeHB3bDVmenN1TEZNR05PZmdHL1hTUDd1N1ByWlFWME5KdDUxTEFWNUlRNDhhQmlmVGwvTzhqWDFuSGJrQ0xMRFBqNmV1cFRSd3d0NTU2RnppRGJBaVU4ZHh0Mi9PWmNSL2JwejEwZS93cWZ2NDhqOUJuTGNnUU9adTdpU0tiTldFZkNiSEw1dmYvSnpmcmVCTHViOTlCbUNIcmtXSncvTFlXVFhBTzh2aXJDb09va3B3RFJFSnM2K002RzhjODlaYjVlTFRERlZCaGxrc0JQZ0FsMmt3VldoWEFZWUZrL0VHNmxTYnRxUFd3dXZ5S0VadVkyQ3ZIckJ5UG1Ta3orQWhyQm1SWWxtYmgrWG1RTVVjM3E3ckN6UjFJYzFqdUdwbWxKdnM4cVpRZlBOa0M2WU5ySzJGN0pxRUVTTHZPZENWYWlpK2FqOHBlQmFvSXkwbUhUbG1DQVZDSTFodU96V2F4a0FNMVoyeDFVU3RFQzVCaGp1ai9hMlBuL3ZlZGhKbXpwYkkzdVhnaS9CMmhuZjByOTdHUy9mOVZPaWk1ZXpNQklIQkVlTzdNN0VLdzRpVVZtRmRjU2hKRXlMNWE5K3dZRmQvSnp5bDNQUlBvdEpBUisycTF2SHVvUkU1NFE5ejBGcVEydVowbzJVcHlTSmVLeE5oSU03b2k1QkNPZ3pwSXlva3BnU3N2MlM5WjlNSmh3V0w2bllZWGE0bE5BOTE4K29ibDY4WmVicUpsYldKekw4akJsc2Q5ejh3QmM4MGFlSTB3OCttb2tURGlINDhmdXN2UG9XQXFPR1VuVGVhUXlZc0RlM1hYMFFaMC9jamFkZm5zRXpyODVreWJLYWRncHFMLytwYjk5aVRqKzRQeE1MRXhSOC9BYXg2YlBRbzRiUy9XKzNrVE5oYi9EN1diQ3NocWRmL29Kbi9qZVRKU3RxTm50VStSS2F0L2NwWk05RDZoa1hxcVhPTVltNUJvYnc2ZzZFMUxneHowN3J0WGNFdlFHRHZqQTBiclI5ejJ2QTFZS2c0WkpuT253VnpXWHErNFVjTkttV3BGKzA3MGgwWFZpd0FLNi9IcTY2Q3JwMzl3UkJSOEJ4WU5Ja3VPY2UrT3Rmb2JBUXpMYjdrZ3loS1FzNTR2eSs5V0pZYmxJL3VDaFBmVmdla2pGSDdwTDFNQ0tzOFIwU1EvYnc5QVMxd3NEKzBwOFJEbHVyU3JvS2FSZ3NmZUZseWg5N2tPejlEMmJ3cVNmenhRZHZBYkR2Q2Jjdy80OS9wdkd6RHlpNTRCTDZIbkVZMmxVSVl5ZlNQN1RrVzRsTS9HMFhoQlFnYkpPeEk1WngzbUV6K0hwaEtickdUMlBNeDAxWHZNbnFtaXdlK2Q5WUhLbFFwSnFzSzBGK1RwVGZuUFVKYzFZVXNhWW1tNmE0eFNrSHoyUlVuM0orOC9RRTZocERDT21SdWtrMHBwSmNPUEVydXVVM0VZbjdzS3NEOUN5cDUrei9lNTdIMzkyZEtiTjZvUzEzOC81YmthQWhNbzRWTmVmUXUvZ3hsSEphYWlrN3BTell6T05EdStkeTAwbUR5UTM2dHFzdHVkZGZON0F2N2w4dkh0Q3JPUjd3TGYyUDd2WURlZDdWV0ljZjBtYjdRbXZBVGRKWUYrYnoyVVhzRlpyTy9xRVlYOGIyeEltbkRDTnIxNlM2RVlEVXpRMlI5RmF2R1FIb2xENGtsTnJHTUxOQWF0M3B5Tm8zaGFBUUhCWElZNHd2elBPelZuTHRaWC9qK1FrUDg4c0wrM1BVbm1NNXF0OCsxQTA4bVhreGk4OHJsL1B4MmxsOFU3MkF0YkZxbEp1cUdlak1EVW1hZGVUdFpCeDMxcnJjWGRzMUtSQmFVMVZjeHF5UmUrRXNhcURLQ1RQejNEMklTeC9KSnlycDU2dGxYUDlWRFAzbUcvSXJ5MXRlazBFR0dYUWVuSDNqTnovT0x5NDg3U1Fqc3piUTF6dFovazRHR1hSMjVGeDZOdUVURHFmbTVyL1E5SzlYUUVvYW4zNko2TnNmazNmalplUmUrVk92ZnNweFBjZEtzMDZ1UGQrWjhCMUJ6Ui8ydzVvU0loRlUrSHJFNmZMN3oxcGQwNkxEcTFReEUxRC9qeWVwdStOKzNJb2FoT1hWVFdlZmV4SUZ0MStIVWRwbGsyUDljaVo4TlF1ZWVCbk9QeEZPUEJoS2lnRUZYU3liUzByS09URy9ocGRxQzNpc3NvVHBrU3lVRnUzM09XaUJGSnJSV1kyY1gxekJpZm5WbFBqc2RTYXVBUldWOE5JSDhOakxNSDN1NWswVXI2cFRFeFNDQ1ZZV2U1b2hwanBSWGt6VU1jV0pFcytjQVR2NDZCVm83WkV2U3lsYk9PbGtLdGloVXZkRFN0bFNsOS84bXJSeHV1ZzJQSlpCdStkVlZ4akUvcHRGVTIyUzRJRnhHajR5aWMwemNWWWJYcTZEVDlPUmRCMUtneUdneUtkWUdqUDUrWnc4RGl0S2NHV3ZKcnBsMmVCSVhBM0dMazVNSjdRZ2JEb2NuVnZQcGNXVjlIRWp2UDFtbEVkZmpERm5rVXNrdG5XTCs5OC82ZEVPWDlQNlo1dE9jWVp1Mys5OTJ1dnR1ejRXaTNIRkZWY3dmUGh3VGozMVZJWU9IZG9pdzJRYjQ4bk4xeXFsbURObkRzOC8venl6WjgvbTZhZWZKaGdNYnQwWGNSWE1Lb2RWRGJCdkR4aFNESlpCdWptMmRoUVBxaEFDN1Rqa0ZlVXdibGdXM1lzRlUrYkJ0L1BXdHRjYlJnS0xlcFdGZzdrTm9rMmprU2p0WTEzYzAwSGdyc2ZjbU1HUEJVcHBEaS96N3Z2blZUdXlxRStnSFFQTGJNSjJzK2lSVjhmYUprRkZnNE1VY1pRYkJtTW4xcXhyZ2QvUUVIVHhCOXdXRG1ZSGplV1RDQXVrRnFtNkhlMmRGejVOMDJxTGI5NlY1UFJLRXBnYndKK2xjRzJCS0d0Q3J3bGhTb0ZXa0l4NWNrSktNQXhCMGxYSW9NS0pTd3doOEdmclZFV21RRWdYZjFHU3FhOEd5TWtXWUNZMmZXeEpTZGVpYkxvVzVuRHVDWHN6ZGRZeVBwdTJnTlVWOVNSakNiVHRvT0lKWENmVGJpT0RETFlGbVIyVVFZY2NNN3I1SE5ESXNGZGNxSlBlNDlzbC8wY0Fwa0Fnd0dvbmNaQVh2UForMmk0cTdBTUJzaW01VHNkdnZxWWQ0eEcyTjZhTStwa0c3aVFOMHBBRUFwTFNvaEFKMjZXcUxvWnRxdzY1UHdLTkZCcFhtU2pIUjdhL2ppT0xabkJpeVZlTXpDa25hRVRRR0xpdWkwcis4RmhWREJyZWc4am5FTjRQQ3MrQzhQNVFlQW1FeGtENW42SHg0MDM3dytLelFVWFcvYjY1RDhtWkFDWFhRM0JQMEkzUStBWlVQK045cGh0TDhYWmxsczVtYmRhZDhaRldjWks4NHlwcC9MQ0Fwcy95ZDlsQ1FiSHpabm5UKzFGTFFtNGp2eXZxUTk5bHI1SmQvd0pqVHoyRmhhSTNqNWNQWjNWdGpOVkdKVG45dzZneE1MVGlNMmE5OVQ5dUdGMUYvOE1PNTRhM05XYXVEOGZ0dUcra3RhYTZQazVOUTRLSzZnZ0g3ZDJYa1lOS2lNV1N6RjFVMmVMamI3ZmRyRFhWdFZGcTZtSlUxRVE0Yk45K2pCelVoZnJHT0F1V1Z1K3lqYTUzaU45TWFiU3Ixc1V5V3ZKSzErT3lOMFdibXJUb1JKTFk2clU0aVFRTEY4K24xbWNTVFRvRVo4d2tyNkFRWDBFZVpsNXUrenFsWi9DajBvbTZTWXREZmRuME0zdzBhY1VjTjhFcU4wbEVlMFd1V1VMU3piRG9LUzMyc2NLVVNJdjNrbzJzVnZhUE5oUm5HZ3JiRGZMejA2WngrVld6T2ZpRVkvaHc2a0FnanNDaGY0OTZqdGhuSmIxTEcxbTZKcHQzSjNkbjZlcHNFcmFCUkFFbWJsMHRNd2IySXAvV25Dc2RlbjgxT0VMUXV6N0c3Wjh0NGZINk9NOE9MOEdXRWtNcDNEU1dDUUlRcmtGeGJpTngyMlJVRHkrbU1ITkZWL3lXUTFWOU5ralY1alZvU0lGcnU4aUV6Y0VIRCtQV0t3NWg4T3BsVkY1d0k5R3BNeEZhSUV4am8vaTNNQ1FxYWVNa0VsdXhUalJPTEFlU3F4bmRmekpEeWhZaGRSeHQ1ZkhoekJHc3J0Z1Rza05JSTRwU0dhOUxSOEYySFNhditJNnFTQjFqeW9ZUXRESjFqeGxrc0pGOFF0UFhicEI3Unl1QzQyS1Y0MTdPN2pWa2NxakxvZFZtNkhGWHFDbTJNQnZZOXhHTmRtSFNKZnhZazIrZXYvZDg3S1JOdmFPaHRCdXVrVXpaQmQxNDVjL25zV2pHVWk2ZjUrVmczTkszSzI5ZGRSRFJ0ZFg0amppWVdOTEhzamUrNE1DU0FDZis1YWVFL1Uxa0JXZWdWQXdoek8weXArdmJNVWJ2b3hIK0p0YXVaOGRFbHF4Z3dYcDJ6QWtwTzhhM25oMHo0UWY0bTF2T1JnSGFkc2p0WHNnZEErSUEzR2dWVXIrbUJtRVo3VXVMY0YxeWYzWSt3alFKSDNVRVFocEVQdmlRdkVzdW92NkpmelozbGtqN3RhS1V4eU5USC9QMGhaeWdINlUxVW1ic3IxMFZMaG9qbFdYeTI4aGF2ckdqM0JMdVNwWXdhTlF1Wmtlc1d3bE92U0JuZnh0cFFmMm5saGRUMllvOFBjTXFSQlZmaDVNb3BEQWJIcnhoTEJkUEhNQXYvajZEano1WkJUNkpGYkp3WEpXcDJmc1JvTytoeDRyemZaSit4Vmw4MlRPRTJXc0VXQmFCVWJ0eFdBRWNzRFRDZm9PakxDSlBHSUhnUm92WmpOVlJrRnhPbWIrSzNub2hxNnBjcHBXZGpZelgwMy9ONit6ZHJ4N3RPc3hOWnVFSUV5TmF3NGdWVDNONHZ4WGtCQk44WDIzeUgyY1F1cVhaaDk2cGZqcTMwZThsckFaU1FSb3ppaXhhU0krcXJoUVlpdThpUldoWGdPMEhVNEh4dzcxN0ZRS2hYYUxBdC9taitmWHU5L0JtNlZGY3NlQmU5cTcvRmtjcjR0TEUyRm0rZk5mZGhFeURFbWx5ZmFnTGc0d0FEOGVycVZTWlBodHBBYjJCb3lTRHJkZlhiSWVLV2ZOWit0RlgxSzljazVtUUh6RkUwa1pMQTExWVFHVTJyQXpaRFBjSE1CdWl5SVltdENrN2pzOHNnMjI5V3hnNEJHVU1TOWhvTFVob1AzRWQyUFZ5dmFWZzF2SW1IdnRnRlNHZlpOcWlCcEFDdHptV0xBWFRGamZ3K0FlcmlTUmN2bDNXQkZ2QnAyOUloZFlDTnhZR3FSZy82R3R1T3VCL0hEcHlHcUQ1L0x0Qzd2c3loNDhYK1hHMUlNZXZFRUpUdFZXQ1Z6Q3dOTTZ2amx4THlLZHdsZGpjYlFZZ05ydUpxcWZXRXBzVDJUN25ub2FLc09hT3ZSTE1LM0M1ZUlhUDBvaG94ZVdjUVVkc1c0RTVjaGloYXk5RDVHUVJ1LzhKN004blF5eU9PWHdJNXBoUkpQLzNGcXFxZXFjTjhZVkhUaVllUzFLdkRPVHdFOGl5SzFqejlVeTZkdS9CL2I4K0RLZThrcm1SQkVqQnNYdDBZMkxXVUpxcXl2QWZmUmd5NEdQSm16TVlGclQ1OTUrUEl4Snp1T0xPOTRuRjdJMzhaNm10MjVJTDJaeGVxUFcyOThKb0R2bXZYTkxFdjE4c1o4VXliNWQyNzFuRWFTZVcwS05mVmlZdElJTmR6QzdTQ0NGYmI0QU1NdGp1WjVyWHNGb25haEcrZkVLanJzUFgvVERpM3orSlV6TXJkWTJCUU8ya2JiSHhZVktiby9uNWN4WUFmejhqU1Y2andCQ2doYzdVMkcvemNwQ2VudE96QjBXL3V4WGZ3QUhVL2YwK1ZEU0tEQWJScnB1WnBHMkFxNDFPTmQ2TitKNjI2SzhlMCs2OFVrTktYSzNKeWhMODdiZkhNR3BzSVVNSG12eGt4a0pxR3pYU2tsN2ViaHNDT2p1cWZseEtyOFpVdDJKQzllcENsV2FYelRQZVZXRGtaUlBlZTNlYVBweU1paWMyWlZKN2RvemVzWHFZN21STlJvU1I1dkpzQytlVjFvQ1VSS00ycDEzMVg4cXJtOEJ2b3JYR2tBS2xkWnZqeUVLQUtSVjJ6QSt1NVBCOTVuRDc2Uit6NTdqVm5Iemp5YXhaV29KWjBJamp0dDhQdTZyYzRacjdLL24yMkFRM25WNUkyVUVXdGUrN1JHY3JWRHc5S1lTRmhpeERZUzZ0bzNMWVlNYjJOSmtiV1VMWG9pakxsbnhEN2tvWHMyOG90ZEc4ZlJheUF1UUhzaG1RWDhhY3lxWHNWamFJMlpWTGlTUWpDQ0V6NnQwR2lDOWJSblRPSE56NmV0eFlEQWtrbGkrbjV1MjNrWlpGOWw1N1lXUmxaU2FxcmZMWGNURzdGR0pQL1piNUl3NWx5UHYvWnU2YVZSeTAreGhtenA2TlpWbll0bzNqT0ppbVNYVmRIYVA2RCtTMWQ5L2g2SGVmWWNYNTE5SDByLzloZFNueVpQbDJUa0xwQ0gzbndLNEdwL3p0QkpTRTkycXJTQ3I5Zys2SDlYbmJOWUtrQ3BCVUZuVjJQblYyQVhWMkFSRW5pNUFaYWROM2tGSWdKZlRzbWNXWU1jVmVUU3N3Ymx3SjA2WlZVbGtaQThRdXAxTnBvS2RwYzFxNGdXTkNUY1RYSlBqYnl6SCs4MWFjVlJXS3BMM3JTN3ZPMWxNdE96dEFXVmtoSzFkV1VWQ1k3WjNOSzZ2bzNyMkl5c282QUxwMTI5VHp4Y1FycTFqOCtITkVna1ltOTJHWG1sOE5hS0oxRlFqcFkrbjBsK2cyWURRMXk3Nmxlb21tWk1BWUV2RlNVRW44NFR5VTBueTN1SjVMN3B4SzB0SHNES2VWS1FWWmxrbE53bDdQZk5YaytFeHNwZkFia29qdGt1dnpyaW53VzloS1lXZDZJR2FRcG5yTUZ2MDJXcU9UNi90cjFxdlViNmxmQnRxWTc2NjFKdFpVU2VXY1IvRDdBMWg1dXhISUhZZy9YSUxwQzdUdXlib0p3elBhVk1YYVJaL2cxSDVCTUxjblJRUFBJaGd1Mm1Mc1IydU5uWXlUaUpTVHFQOGV1M1ltaVdTYzRtRVhFOHJxOHNPZjIwbHd5ZTFOM0g1NWlKK2ZHZVFQRDhlNDZaRTZQcW10NDNDemdDdXp1ekZDWkJGWGlpZ3UwbVBOeVdCYmJIVUJPdWx5K1FYN1VkY1E1OW1YcHpON3pocVBVTXQydWV5MHNZd2RVY1lwbHoyTENQclNoMnM1Z3gyZzNuaGMzSWxGMzFQMTVOL0pQL0ZzYXA5L2t0S2Iva3oxRS9lU2ZlaXhvRnhxLy9zRVp0ZnU2RVFjcTJzMzZ0OThBZitRa1RTODl4cloreCtDVzF0RFlzbDhRcnZ2UmVNbjd4RGFZeDk4L1FaaCtOZHJCTjFHbkZCWXpZZjF1ZFRibGhmM2EvYUhLSWY1VmF1NDg5T1grR2JORWk3ZjZ5ajJQT1k0L1AzNlUvL0M4OFNtZkltT3gzZTkrSHJxV0FzN2NIZ05ETFpnS2ZCdEVFcDhNRHdKejhWQkdOQW5DajBjR0tqaFN3Vi9EVzlDUHpSTlhNZkY4QnM4ZWYvakhQVFkvcXo1N2dKdU9NK0JzSVhiWUxNejI0T2FlOXgyUFFLQkljRk8yRlJLQ3hFTXNPYU9mNkJkRjlNeWNhTXhBQmFObjRnT0JoR1dpYjc2VmdEMnpBbGhtQkxodWxSckgyWnlIRWlybGNOR2lCUlJNQW9kdDlBOVYzb0pUOHQ2SW9OSmxBSkJwamxZNXp2dFd0d1BvRFhTSDhETXpVUDYvYWhZMUF0eUM0RXdURVIyQUptZGk5MVFEdzJONnlYbjZBN1pzMmY0ODVuakpQakNqaUJTaFhpYlE4QW42TjVWc25pbFMwV040cFpMdzN6MXJjM0EzbDRRSmh5RTgwNEljc1h2RzlGQXZ4NEdxOG9WOGVUbTM5TklLVTk3bTJITzhPZHY5dE4zMUg1em0yS1FUTjJnWUF5dFFNWDlYb1REN3lKQ3dlMnkzMlNMR2UvOXZqNkpsMXJ2bWcwZmJ5YWF5OWpGVzc4WHRTTlFLZkpqWVdtRWtWNkpQQ1Y1UGs3ZnJ3c0hEczBuSEpDZ3dWVWEyOVdNNnAzRnJPVk5WRGZhZkRxM25wcUk3VFZkelNUd2JXRy9yU3QxY0JFb1lZRXdQUzR4bGFDYnJtS3dMbWNrVll6dzJ3em9VMERaNk1IazdYc2FvWEZqc1lZTVJRWURyZDV6emRKRmZQdml3M3o5d2tOVWlSRDcvL1FYM3ByYUJRcGZKdDU4ZEtxYkw1Q3dRZmdoR0VMZGNvc1h0UEtaRVBFQ0x1YW9FYmloTElSbElpKzRsQ3pncEx3UW1CSmNoNlFLY1hYOEVpS0VRTHZySDRpcDQwM2dPQTdISHZzeUFJN2p0a2c2dy9DU1c5b2lnNVhXUkIyQjZ3L1RxMnNXQTcrWVFtRk9NVGxEUjFOYlhvOU1KZ2lhSXBQcm12RSs4UFdzQ25BVVk4ZVU4bytiOXdQZzBsc2N6bi9nREI2LzlGbkdEMXVJemh5eUhXdEVhZGk3enVXRVNwdlJqWXFpVk1DeDJoSk15NWE4VW16eFphNkJrOW1mR2V3TW40YmpVUGZxTzFRKy9EVFJHZCtob2pIdkxOOEo1M20yR1VZRGp5OTlucmZYZnNMMWd5N2kvTjZuSWdESFRwSzF6NTRNL3VRVktoOTZpdFcvdXh0NzFScU1ndnoxRGtPRlUxUG5GWG9FUEZJM0hVK0FFQmk1MmEyK2sxTlZqVlZXU284N2I2YjRrbk85eCt3a3B1VUQwK1R4cGYvbHJ2a1BzU3BXVG9FdkR3RmJWOGlZd1Zaamo5dXVCd1RtTnRqRHBpbHhYWTFTaXNaNEZHMmt5UHFsaE1ZSXptSDdVWHIxaGREUWhCRU9VZmY5OTloVjFaVHN1dzl1SklxUm0wM0YvOTdCZWZBWnpKd3NqNXgzczc0R0E5ZHhBY2NyM0pQTjNMMFNSQkRoRzRyaEc0b1JQc1c3WHRXajdVWG81Q3hVY2dZNitSM0tYZ3l5SExjMlFHeW1qK3hER3RISm9HZkh0elFZMEJscmVGZTIyNFJudDlsSmk0SlFuTDhObjgvWjNTc0JlTHE0aHF2bjk2RW1Hc0R3MmFrazZ1MmtQR2dOeXhmQm1oVXdjRGpzc1Q5MDdkNytSaGVkeG1GcG81VW02cGFTVUYxSnlNR0V4R3F5bVl4UURWN3hvQXg1WkFKR0gveU5pMkJ5REw1UzBLZ3lDVWM3R1VaV0dDRUZ2cEppb291V1lPYm1vTFZPMjJDOWFLTURUcU14aE1TMWJYdytIK2VlTklRTGp0K2RzZ0tUMTJZK1R5QXhucVZMUG1aMUlNUnhBNDdpYS9VQmw1eDhHQmNlTjRKSFgvbUcrMTc1R2p1cE1Td0RWNnMyaC9JN2ZJZlgxTURkZDBObEpYenpqZmZZalRkQ2NURmNjNDMzczBQbEtMaEpPTEkzak9zRm55eUNlK2JBdDlWUUdJYm5sc0RncVhEZGNMaHJOdFRFdktONi9lOXRDSEExYURzMUljYkcxMmpQdk1aeDRkajNVL3JsT25jT0JsNytmWnZuYzRNTDkrL3lKV01McHpNd2V5SFRxbmJiT0xkbXEyUTdHTkpsUXRjdnVIYm9mZXdydmlEeXZHYlp5MEhzQ3VFVk83VERCTEJkZzZtTGVyQ3NPbzhSM2N0cFN2ajRhRjRmNmlPQlhiYWdRQUJkL1lMcit4cWMwdFVneTJqYmkzUlNFZm13bm9ZWHFuQXE3WXpnM2c1Mmc4QWpkVyt4R3dKYkcwZXpNSk43ZzdUUVN1SHptUngyOUFpYW9raysrV29KQWIrSkVJS1RyL2kzMTRESE12alhxOS95OFZkTE9QQ1F3WVNDRnU5OXZvaGswbWxiUW9RR3RNSVhzRGpsb0o2OCtlVXFGaTFyUkVzeWhBVWRvdE9DVm1Ea2E3TEdKOUV4SDdHcWxLQ1RubG1WWEdwZ3I1Ym9wTURYMXl0dVN5NDN2RTRNR1hSNmZQTGsrV2s5dnQ1bDEyN3ljUk9GalVHTk1CbnRsUE5FMVN2RVJ6YlIvZFpmRUJ6UkQ3Y3BpVTdhWHNGb3g2UlB0QWtGZVpmdUd1ZTVGSng5d200Y09xNHZDZHRoNWowZmVvK25jbEhTenVSdHR2djlDWVNBMkx5ZXhMN3ZRV0RRQ3JKSGYwMmc5eEtFMEtoRXFzSEZCZ1N5aG1pZGE3R3AzbU5TUU1TRmcvSVZ4eFM1dkZsbDhGcVZ3Um5mK1hoN2JKemRzeFVmMVVweXpVMi9mc2ZQaVVacmhaQWVvWXBkdHh6cHo4WUk1S1crZjl2TzBPYXJHcUlKUHAyNWxPWGw5Wnl5YUMxbkhMWTczWXB6ZG9rRThNNnNuNW1XQWJaRG5lSG43ZHZ1NFBDanh4Q3lKTzk4c1pDakxuMEd0U2JCYm1jc1ovZ1ltM3VPZTRydVdRTW9aeHF2dlAwWTFkUEdjK0hML3lUYTZPUE1vL2JneHAvdHk3bkg3d2JBM1U5OStZUDJwTmFRN1pPTUt2SFRLOWRpeXFvWW55Nk5VaFZ4Q1pnZVlVV0dsMkxIMm1Cb3NNTWFBcG9DRFNMbEdyZXpRNkJVeGkzWGtUNDJEWG83SndtSUh5R0hydFlpMWVOUnIvc2J0azhqN0F4MkNCVGdRM0NDUDB4ZncrS0JXRDNmT3NsT1l5Y0R5RDR1c2pEVlNLUkNVdHpUcGVCYms1RUxMRTcrRUJyQ21oVWxtcm05WFdZT1VNenA3Ykt5UkZNZjFqaUdwM0pKM2JGOWlEdWJmR2h2NHdhdkdibkVOV3lFSFVSKyt4T010YU13bElscE9oNEpzMnZnTGp3VXQrdTNxS0V2bzYwWWhySVFRdTBVZjZzQXBGVDBMS3htVlgwdVNjY2tZRHJjZlBUcklPRE14eTRna3ZEanMyektjdXRaWHB1UFVqOU9zcGt4dDl5WXl2UDM5TjhLYVhoNURYLzh1NWRuYXBtNEVVLy9YYmovc2VoUUVHR2E2Si9mQW1qMnlBbGpXaVk2a1NTU25jT1UyKzhqbVoyTGRCeXZTWXFVcUZnRTY0c3ZrTXJFRGpzWUVrVGN3RlZBd1BYeVR3ZVBRb2JDVzJTSTJPNTFDVXFUSFRJcE8zaFA5aDFSeklxcUdNL1Bic1J2U3U4UzAyQk1sa3ZsVTIvUkVIWGFYRHk4aldZa2FPaFQ0T1UvejF6VmxLbEJ5bUNIQ2RQRml5djUvWklxbnV0VHhPa0hIODNFQ1ljUS9QaDlWbDU5QzRGUlF5azY3elFHVE5pYjI2NCtpTE1uN3NiVEw4L2dtVmRuc21SeDFRK1MrRFNUUFBidDI0WFREKzdQeE1JRUJSKy9RV3o2TFBTb29YVC8yMjNrVE5nYi9INFdMS3ZoNlplLzhONTNXYzA2STNoVDd5c0VJZTN3U21FSlZ3Y0djM1BaUXE0ZXNwU3k3QWF3VFJ4WFlnaTk3dXh1THV6UjZ4OTZySXM1YnVGNXJjRFZBdE5RWURuVU5JYjQ3ZHgrM0xhaVB4TUthemxHVnhFWEZrWmJOcTNXVUY4UGI3OE5jK2ZDOHVVd2FSSTREaHg4TUpTVmJYM3NSV3RZdFFvKytBQ21UUEhlKzczM1lPVktPT0lJeU0xdFd6UDMxTTlzVXpHK09DcDZobTMrc3p4SFBiMGtSNnlJK1lUWXhVNVNIUmZnZ3U5bzcxeUozNWZsUFpiQlZrNm9BaVNEampxQ0hvODlpRGxpQkZhM1VtcFRUK2QwSzJYWWlCRTRuMzFBNktnaldyMW1SOXNkVGxVTmlZWExTUzVmZzJxS0lZTityQjRsK1B2M3d1cGFsSW1EN2lySG5OQVlybVJrdjdXY2NOd01TaWZYczJKTkxzTjdWekJoekNLbXpPckZrNitPOVpxczZKUnZSRWtLYzZLY2V1Z01WcFhuRVl2NzBFcHd5WEZUNmQ2MWxudGYzWXY2K25DcStidFg5MlFKT0hMc0FzWU9YOFpYMy9Wa3hacGNUdHgvRHZ2dHQ1Q3ZGNVV5YlVZZlhKK3pXU0phTDl0V3M2YjJETEtEY3lqSytnSlhDWVJJVDZKdXRkR1pKemJJUDlJZWdmTDZkY0ZBZHRCa2RPOThjc1BXRHZXWmVubmVIbUZXYS92aXZpM1lGNy9kaEgyeExsK2pSV0hYWUJoUVVod21xUzNtbGZkbmtHOHUzZVJDcEQyWVB2MzY0aVJpcktxTWJiOWMydlJ6N2JSVEpkVm9hVUFpN3VWUUJBSUk1VzVWTXkzUmFpeGlsNWhQRjAyeE5MazgzSVVKVGc1UHZGZkRLZE5tY2RaSjg3ams1SmZvM3IwTDQzeERHZGRsYjY3b3VSOUw3ZVA0cXJhS2o5Yk81cXVLT1N4cFdrUENpWHV6SXdTZElwbFlTbEF1S3RMbzhUajQvTnZsWXpwYlhhNlo1czI4TjBwak1zMTJ2NGNyRGN4a2d2OGNkaWJYbkhFZTU5MytUd1pNbnNHTTBnQnJqVnlHai8rT2QycEdjdi9QTHVjWHIvNmJ5Lzc1SjF6TGg2bTI0c3gwTW9sWEdXU3dzMUFSM2ZVYjBnaElOUmpYSUlXWFB4UlBlTHF6WmJUb2trSUpNQVVvNVJIMC9RaHQwYzZhdjlONTFtSnpMa0NMNXIzdThWYnRjRFo4em50V3JGdlJQM0R0MWoyWElhWGNHUWFHUnJzdVJta1hpaCs5ayt5elQ2VDYxM2VTK0dvR3FxR1I2bXR1byttNS8xSDR4eHNJakIvbnZjUnhFSWJaUXFVV245SEk2c293eGZ2NTBZWkxkQzdrekt2RktrN3B2WUIySFlScGdvVDRKMSsxZklZSStrRXBmS09HYk9Jek5sMzBvaFI4UFFlbXo0UEhYNEx6VDRRVEQ0YVNZa0JCRjh2bWtwSnlUc3l2NGFYYUFoNnJMR0Y2Sk11enY3Y1VMOWNDS1RTanN4bzV2N2lDRS9PcktmSFo2d3hiQXlvcTRhVVA0TEdYWWZyY3RwUGdOOXR5UVNHWVlHV3hweGxpcWhQbHhVUWRVNXdvOGN6NjN3RitRWUdVa2lGRGh1QzZMdlBuejBkS2lWYXF4V2NsOERpbmhCQU1HalFJd3pDWU8zY3VxdmxjM3BtS2hBSmM0U1crTkc4UGQ3M0hKQjJhbTIrbU9XbFBoMnVQSm9nYWc1cW5nNmluZ2dnSjBoWElrSWFRM2c0ZjZOMHVSME5RZW8xYjNxc09NYVUreU5sbFRaemRyUW5EMHFpa1Z5UXFkOEVFUmdIMEM4UzVvTGlLay9OcXFWOFc0WS8vamZENkp6WnJxNVJYNzlvR0JIeGlJNjdNVS83dzg3YTkyREFnSGtkSG82bGFYSW5JeWdMVFNEVWgyejY2K0dsdGRsTTRLS1Y0NnFtbldMcDBLUU1HRE9DNjY2N2pwcHR1b2srZlBwU1ZsYld1UjArUlBqZkx2R1pib3ZteGxTdFhzbmp4WXY3d2h6OHdjdVJJRmkxYXhDT1BQTUtsbDE2S1lSaVlXK0czQWJ4QzV6Y1h3dEo2MktjSEZJWFNpczloUi9DZ2V2UHNnZzd3MUsrSGNrRDNWN0hqZFRTZGRTcDdYeHBqN2VwcWhNOXE4MW15MkMxbG1TcGh1ZHNscFVHMGQzOXBOQ1lXQ1laWWl3aUxHRWx0c2NEdFRvUEtSWWprTHVFcjN5cDBaQVBFWm1VM2plZFNBREZiTWJ5clpQWDBTUUFNTDl1SDc4c1ZBWFA3NWt5S0ZGZnM0WU1tYzlpd3hYeS9Lb0RmZE9pZmtCdzdkRHFGMlRiLytubzBzOVlNUnBoMlM1NzZEamFJdkRsUTRDalJxdTZzaFI2cE9kNlpxdmZGMU1US2ZYejZUejlaWlFsOFFVMmkwYUJ3ZUpUZSt5WDQ2cEVncmcxbVNGRTZObzRaVUNRYUpaWGxNUEpBbXk0OVhSeGJzT0NqSUd1bWg4Q1ZtQUdOR1ZETWVDVk0wNW9BUjE4YVdhZnZiV0plZTNZcjVQSXp4blBrL3NQWVovZCtGT1NGZVBMbHlTU2ljV3JlbThTOFQ5N0Z5cWovR1dTd1RWaWU0VWJMb0FOT1llRlRDQXVXem9mWmN3b1lNY3ltWi9kR2hPWFZ3K2pFZGpuYTF2M1ViUjRxMktxRnJFZ1crM0gzNndLQS9Ld2NWZU40MXpqS2kxM29yUnhUQmpzVkFiOUJhV0dZc2k1aEJ2ZktweUFud05MVkRheXNiS0toS2JuVnQwbWdrVUxqS2d2WHNjankxM05FMThrYzMyVUtvM0xXa20wMmVqVkhTWVYyRkRJclNLanZPT0NqTGJ2Q1l0RHdIa1EraC9CK1VIZ1daSTJIbmc5RDFXTlEvUWpZMWEwcHJSSkx3U24zL2s0czNUQmZDS3dDS0x3SWlpNEFZVUhqbTFEOWpQY1pibXhkdjRnTWZ1am1wSGo5ZFh5SGZxeEtDbFNUZ1lvWXUvVDBhdFhNS2JUemRSRWhKVHJTd01ObmphSDcyNi9oTDNtYzRlZjhqaXMvSDh5VFh5N25jUE05QXNJaE4rQmoybW9majg4WXhIRWpqdWZhVTBjVCsraEJUdGp0WUZidTA1dDdKeS9IeUFyaWRpREJnWnZpMHczbUJEaHEvQUNhbXBLODkrVWlWcXl0WjF0SWJCelhxNE1zQ1lVNWVzSkFWbGMwOGVIa3hheXViR3J6dTNhMjB1dnQ3amZUbWxESUlpL2J0eTRPNC9ON2VhQzJqUllDSVFUVmRZazI4WjNaZGZVc1hqQ2ZSRGhNcldtd2RQNGNDcnVXRVl4SFdiT2tubDZOWFNqTXlmYjZSR1Z5L2pQWVFMY29rQWFIK3JMcEovMnNVQW0rc2VORVVKUkppeDZHRDRCeTVURERpYkdRQkx0WkFmb2JmdkRCYThsNmFwU2JWcXJ0anVDcUZZRHRTaURCTFJkTzQ3MVh1dlBoMUw0RXJIcHNSMUtjSCtmMHd4ZHgxZW16S0NoS1VGUGxKejg3d1VNdkRhR2lKdGpzSU1USXptSEk4eDlTbEJmQWRsVEhwRUh0dDkrbXp3Z2h5RXZZWEQ1dEpiM3FZOXd6cGp0MVdUNE0yOFZOVjI1Zm9kRkNreDFJOEl0REo3R3lMZ2VBWTBiTTUrSFB4bEJabitWZHN3WC9xUmNMQjlVVUp6c3Z6QTNYSHNVWisvY2w2OSt2c09yUkYzREtxN3grRFJ0eWNxZGtwdFBRaE5HbGtENFhYZ1MzdHVacE0zN0FUeUlOZ2QwUVpMZmV6M1BQWmM5eXdKNEpDTUE5ZjRPVGo0V1NMbS93OEV2ZHVlN0pLNGk1bzdCOERTalZzWEZQOTBjcTJ4YlZyR1R5OGxtc2JhcG05MjZER045bmRFYmdaNURCWm5UMGdIWVlGeXMzQmlicjhqK09sWjc4ZW5hdnNYUDkrZit0TndML2NvUTdYMGtyd1Q0UGFDWmZDY3I1MFRtMDlyajFacThGU1ZMaUd4ekY3UVYxSCtXeCtrLy9JQlMzdWFkWEx3Nzg5UW9FOEpjTHIrTGF1bXFpQVIvNml0OVNjR1NjOGZYWkpPY0VjSVZDWmp1WWY0dERqdlFTWXJiRDhidjdCbmJNMnBRZHMyb1Rkc3o4VGRneG85c2Mvd2Vrb0w0cGlabnF0RnpmbFBUeXYxUEtVcHZDLzFLaUV3bHdYUUo3alVWSVNXelNselMrOEJKbVNSZnZlYndjVHFDbDkyMDZRa3FCN1NyZStXWTVBQlBIOWNNeVpFYlF0RWNtR1ozUHQ5VmN5U2tSdkpwc1lKWWI1NjV3TjNZemc5Um9COW5tcmhFYkd4eENnaHNSWkk5MUdQaFlJK1dQQjZqL3hFSVliRjIvUVJsRTVoN3AwWFZyaFZLdys4QjhQdnpIZ2J6dzRRcCtlZDlNbHN5dGdXd2ZwaVZ4M0YxTDNrc2hjWlhyOWRXV1JrdCsvbzhWUmIrNldSUUJwWmJnV0VzU3RBSUVURDhuREJ6UEVYM0drVFZPWWRtSzZycUVNRDVkQyt2Vk13bXR5Sy81bG1QYzV4alpKMEdpS2M0cmFpOW9yRVZwd1hmRng3T3l0b0xTaGErUmNKb3c1R0xzN0JKVzVPekJxN0hoR011WElScXJjZHhhd3JGdlNCVDJ4ZkhuN0JRL25VQ2pYY0hFdytlUVhiQ1dwOThZaTQ2SDZPNHZabVJoTmtaaFBxdHFFOGdGbWtBb1NVblpQTXFyODRuV2RkbXlid0tCUWlPMG90b0k4V2JaaVh5VHZ5ZW5ybmlPQ3hZL1F1OUVKVTFvSERhYkFyUEQwY3kvZUxJL2wzNkdqNy9IcXBqaHhIWXRXVUNLdG1KOUl1OTBSR3BjaG5USjlqWGlOeElrWEQrTmRqYXVNdFk1cHpKbzMvMjNUTHJ1Tm9Sa1k0Um9kUjFyYXhzeWsvTGoxRHF4ZTVUZ0RDMURWOVZqK0d5NjlNb2xNYU1TWjBnL1pNVEdtcjBjR1kxbjlsa2F3TVNtd0tpbHhDaW5RTmJpWUZMaEZGT2h1dENnc25lNVhPK0FKYm55NFhuZ0t2SnlmUkIxR0RJNEQ0QzU4K3FRMlJZWDNQTWRHSUp3d0NEaXR0MHdNS1R5OGxOaUh1L1QrRUZmYzlNQi8rUFFrZE1BemVlekM3bnZ5eHcrWHVUSDFZSWN2MElJN1hHaGJ1VjU2ZmNwZm5Ya1dvYVV4bkdWMkt6dG81T2FoZzlycVA1UEJVNVZjdnR5bDJxd0RmanZFSWVGK1pxcnY3WVl2ZGJyQlpOSjRlb2dLWnVUaGYrVTR6SDY5eUgrNUhQWW4wNEMyMFlyaFU0bUlSb0YxMEZZbnI5Sjd3VHVrdEczWG8vMGFJQkp4R3lXV3o1a0lFREZYeDVFMlk1blh6UjVmRGx6OXprV0hRcGptQWJ1TDI0RHJSbVVIV1NFejBTNkxtdTFEeU01RnFTNVNXZVlTa3F3WmJNVHdXc1FZR213MnI1L0hVZHY4ckZBUVBMaW56L24rZ2MwV2NFNkJOQVlxMFV1bU04dkhqNlNSRUpobXBuRHJHT01KYlhCL1JVYksrL05OV3FaWEl5T0Y5MWFJWVJrNWNMcGFEUTkrbzlwZVN5RHpuWXZPK2xwS3d6UU5qcVp3TXdmU3RhNFA1RmM5U0h4K1UraFl1VnBvME0wNStYVlpXdCsvcHdGYVA1MmhvTlJiNlI4SVJsdFo5c21XTFRrazVoZHVwQjc0Zm40K3ZlbituZC94RjY0RUptVjVhM3hEQmZHVnNFbms1MXF2QjQvcThEY1RubWxRZ2pjZUFMaU5ySmJObFBXTnZEcFUwdUoxRlJRT0tJbnRaK3RSaVZqSUEydjFuOExOdFNPcUI4WEFsVFVRZG1wUDlDdFZDVXNFRUVqczBYUzczQnV1VWYrUGozSU8rVUk0dDh0SUxGczFicjJrQ245MW04b1NvSUpBb0h0cTRPdDNlRHZ2bWVma3Q1emVOZk0xcmFhMnprejlXUktqaWpsNWJFb3JWbTJ0QW9zQTJFSXROSzRUWEVJK1JETnZXaCtBS2FoY0J3RHV5SE1vTUVydWV2Yzl6aG1ud1hnZysrL0xlVEZMNGRBYmdUSDNmcjFsRWhxSG55eG5sa0xrOXg1UlJIN1hoa2tPbHRSLzZGTGJMWkN4ZE9vUDFaS0xNcVFRZmY2NWRSL1dFdkN5cWZNYlNBd3Y1R3dxY2pxQVpqZXhVcTdHQnA4aG9VaERTekRBanRPdGkvRXhNSDc4NTl2WHNleEF0dTkvMkJuUTgwYmI3RG9xcXRBQ0krVERhaDUvWFZxM253VHE3aVlrZSsvVDJqbzBNNm5memJuTktzZGY3KzE3V0RrNTZKV1Z6QjN6SkVNZXZsUlpuejNIY2NjZVNSdnZQMDJwbW5pdWk2TzQyQVlCcTdyY3N4aGgvT1ArKy9uOHNmdm9xSlhkNnJ2dUIrek1EL0ZrNzM5dmtPSDZEdVdBVW1icG1DSWo4NjVrRVF3aFB3QmZuZFhHeWwxUjJCSm0xN0JSV2drMVlraWJwcDFOejRqUWRDSW9yUnMwKzNPeWZGeHdBR2xCQUltQXdmbTBiTm5GZ0RMbHpkUlZSV25wQ1RJcDUrdW9iNCtzVXZvVkJyd285azdFT09jN0hwR0VPWHJ5UWtlK2srTUwyYlkxRGFvTFg1UG53VzdEN2I0YXBiZHFlZmlralBTMjhmMXdMT3Q5MjVUVTR4VnE2b3BLeXVpcXFvZWdMS3lJbGF2cmlZdnoxdTNxMWR2L1B5cVZWVUVvbzAweFdvSlNIYzludFlNT3Z2OGVyVmJFbWxsc2VUci94Q3ZYOHJYTDcrSTFockRBTU4wcUY2NW1ENmpKNkpjRjRSQlk5Um16dHdhSXJiYUtRRzZ1T1B5K2RwYUpuUXJaSDU5aEtCaElBVTAyZzVLZzYwMENWZEIwaUhwYXVxVER2WXUxTng4UjlUYlpiQ0Q5Wmd0MUM4SC9DYWxmZnhFYkUxQWFqUXVTU0h4Q1VnNG1wQWxxS3h3aVRUWmJZclZDeUd3ZkZra2t4cTc4aTE4Vlo4U0Q1UWdnMzF3L0gwSjUvVWxrTk1MZjdnSTAyek43dVc2RGhYTHAxR3g5Q05FMHpjRW5mbEVhMFlUQ08ySEVCdG5VVHEyVFNKYVJieGhHZEc2eFJpSlJhallVdHg0T2NsNEJKMTNJSllWM2pGcmV2MitqTnNKRDcyUTRLRVhFbHg1ZW9BL1hCbmtWK2NGdWZuQktMOS9vb1ozYW1zNDNpcmlzcXhTaG9nd1VlVVNSV0ZzYlo1NkJoNi91NlBvV1pwTEtHQ0I3V0xtQmxGS28ySTIvMzVyRm05L3ZnRFc2NGVRN3E0K0tiM3Y1U3FOSVFWZENvT1lwbVIxUlFRMGRDME9vWlZtYlhVTXBYVEtKNlJSS2hQbTN1U2N1aTdhY2FoLzcxV012SHdhUDM4UHQ2NmFwcy9lby9objExRDN2K2ZJMnU4UUdqOTVtN3hqZjBMTm91OHg4NHZ3ZFMwanZNZCsyR3RXb0pKeHJOTHVYcHl4c0F2Q3RMWnFzdS91dDVUWHF2TjVjRTFYNWtSRHJhcVpYYTJwampidzZ1d3ZXVkMxbWd2Mk9JUlRoK3hOd1pWWEUzbG5FSTJ2L3c5bjdacGQ2aWJyRkwzNDJteDR3SUJqNm1CTURJNnVoc0lBRk9SQWRoTTBSc0N2UUdmQjNBQzhHUVo3TThTVGhtbWd0VVlwaDNNdU9JOHZwdTdIZGY4NGpzdVBtMGVmTVNiRVhYWldkcG5wblVNYWhFU1lKbTVEQkpvaUdQbDVhTnVCV0t5Vmw4RnRiRUlZQnI3aVFuUXNqblpzTUt3TlRyVDFaMVNpYllWMkUyRDRNUEF4WVB3S0lsR0hGWXQ3b21JZ1JBQXQ0aUJCeUIzVGhuZEQwZ0N4VXdQZUdrZTVLUUx1em1VY2FEUWluRVZ3eEREYzZrcEkyamhWbFdqWHh1cldBMkdZMkd0V29SMGJtWldObVo5UHFIZC9CR3ZSVHRKakg5dW1BOWNyVXNrUkJwY0ZDMW5nSmxpcmJLK3diUlBYUytuTjhMaVJGaWNjNU9mUkYyUDRMUGpWaFdGNmRQVVV4bDlkR01ablFUeWh1ZWFjRU9WVml2KyttOWlzRDFLbTVxRkVXbHdXTENSSEdEZy9rSDY4dmZhYkVLQmRRU2ljNEErLzdzTHFjaitPRytlSWcwZWpkSkJYMzV0RjBMUVoxdC9pNmo4c29iN2VoekIxaCtraENsampPQlFhQmdLb1ZvbzV5U1F4clJoaytlaGplZU5lYU50OGJ5Y0pDc2xRbjQ5QzZSRXlWN3N1SmFhNVRlMlN6UjhyY2FrTHZ1SWt2bTQyUnRBbE1qdUVFekVSVXU4UWtiS2xQbDZHRkJ3NExJK0RoK2VURjlxWWRIOU03eXlHZEFzU3R4WGRDL3dzcVlnemQzV1VGZFVKTDdpWVFVcldySk1yTGdJbExCQ21WeVNzRW5UVFZRelc1WXlraWhGK213RjlDaWdiUFppOGZVOGpORzRzMXBBaHlHQndJeHRVT1M2ZnZQNGk3LzNuTVFxcTVwS01Oakc3U1RGNDMvMG82ZEVQclRYUzJJVUlCNFVBMDRLNkptaHNnb0pDc0IySU5yVytwcjdlUzVqcDBzV1R6VTRjRE45bWpYYXhYZ01LYjA5STVzNnRhTjRGcVhpY2crdTZnSWtRV3dxS2EwSSt5VjRGZ2hGVnN4bjA5WGZrZmp1TjdFQ1FXeFI4WHphVW1jVjltRnV0c0IyZE1iamFpNDVZMHkwcythazFzN1B2Z1NGWnVLeWViMlpYQVpvbHkyc0pCZnZ6czRmTzVKR0xubVhDOElWMHh2aS9YaStIUGsyOFBYUkphRzVZbHVUMGNwc0NXN2Zpbk80UGpLdDNPYjNjNGJrU2t6dDcrYW53WnlxSk10akJ5MVFhQkljUEp2ZW9RMEJLWWpQbmVIWUZ5ak9JZHFTYW1oSThSYjU4R3AwbXJwNTVPOCt2ZklOYmgxN051SUxkUVlPakhZb3ZQb2Y4RTQ5bTFTMS9vdXJKNTJodTZpNHNrOEt6VGlibnlJTUk5T29PUUh6WlNocmUvcERhbDk5RXh4UGVEbFNhNG92UG9leTN2OFRzVW9TakhFeE1UTXZIVnpVenVIWE8zNWhVUFkxc00weVJMeDlIdTVtRnNoTzlDTzIyaDRzSzBmSDE3R0d4cVhVdmNKSkpnbjE2MG5QQ09tTE1WYis3bWVqY3VReTU5bkw4V2RrQUpGZXRwU3J4T0tiWW5PZGduWDYzWWRNd3BSVEtWWUNpbVVmU0k3OHlFRElYNFI4Ti90RVluT3RkSDErRERGUlM4ZXB2U1N5ZVIvNHBJMG11blFWdUhRZ0hnUUhDRDhMbnVlaGFpQ20zb2RvMmc3U0JKVFMyYTRBV25ObGpMWC90djVRdVdjbVdaWGQyajBvT0w2am5Gd3Q2OGN5cXJpQTBsdUZpYjg5R1VYWVNaaytIWlF0aDVGZ1l0UmZrRnJEcnVGTUU0S0prTVVsUlNrd01JY293Zk9IZUpJUUw4bGg4ZWpsdWRENisrTHRJWHhHdVBJamtOd3JmWi9VWUNUc1R6VW9EMUgwK0dXR2FaTzgrZ3VxM1A4RElDcWQxQWtwYnBiVVVBbVU3NUdUNytldVZoekZoVEM0dlRuMmNzVVdqU1VSanhBeVhRRjQrZVZtNUxJMnNvS0tobk1qYVZjeXAvWWlMVHorTWNjUDZjdkZmWDZHaE1ZRTBKVHZOWlphZERWOStDUjkvdk82eFJ4K0ZDUlBnbGxzNjNoOG13RlV3cmdzUWcvZlh3TG45NFowd3pGb095eVM4dkFKTzd3dkQ4dUN6SnE4R3FwblB6aERnSmdFTGhoZERqZ1h6NjZFcTNxSnl0dGllemViOTNKb1dkMDZxNlhjcWRHTjRoUU5ibW5wVE9IUU5WV0FJRjZVbFlUUEMrQzZmazIvVmNVVHBCNnlObFdBSUZ5a1VqVTRXMVltQ3JWcDQvWE1XYzhYZ1IvbEp5WXRZa3h0WTg2eWYyRnhQMzk4b04wWnRKaFN6SG9tSTFwQjBGZDhzSytiTm1YM3BVVkNIN1doY1cyK3lZRlJyamV0dW1scFBnL2Vjazc1WkFrSkRsNERnMmo0R3AzVXp5R2xMcjFnQjJKcm94dzAwL0xjYVo2M2RjU3FiYWNJUlIwQnBhV3RueUpvMThQYmJzQk9JTW5hNmJCVmkyK3lHOWUrYjl2VDdaTkxoZ2R1T1pmR0tHZzQ4NnduZWVQTTc4TGUrK1ZmKzZtVkV5TWRIejV4UHY1NEY5Tmp2ejk1WXRpRHpCVkNRNTJkSXJ4eTZGUWM1N1pDZWhJSUdVNzZyWXZHYUNNdlhSbHNhZzJTd0ZYdldCNEhCRG1hWndpeFNCSVk1YUJlc1VvWGJJSW5QTW5IckJkb0diUXRrbGlhOHR3MENuTFdHeDIyZFFhZEhyMjY1bmRoUzBSaG9tb1FQNFFQcnJUZXArdXBMU243K000cXV2UWl5d3V0SndJeE4wcWF6UW1zTUthbXZhR0RPd2tyeXN3UE1XMVJGdENhQ0ViQndiQWNRQ0VPbUpmbUlRS0J0VGIvaGZxUVFMSmpUbS9qUzN2aDdMU0ZuekRRQ3ZaY2doRVlsL0MzS2l3VHFIWEJTZmdNSjVKcDZJN3RFYXdoSytLcEJjbFNSeTcvSHhKbFZZL0QwR2dNMGxQZzBHb0ZFYjhlR0lsdFl5Nm11MUZvcmhEUVJ3c0JwV0VYOXpIOWpabmNsYStBUlc3MFZoQURiZGxtNHNwcUhYdm1LT1Vzck9PL29QZGxuUkM5TU0wTWV0TFAwTTIwSWowemZVWng0d1Q4aDUyVmtsZysxcW83eHg0M2l2T1AzWUVWNVBTL08raXY3emQrZnZHQStsVXNYa09YMm9iSExHL3owOU4zUjg0L25yanMrNU9IN1BrU1U1S0RqRGxRMmJuRTlBSmhTVUJ3Mm1OQW54SkFpUHg4dmlUQjlkWnlZclFsWVl0Mnl6R0RMcG92VVd5bjNVZ3NwcUNuOTNDTDJUQUUzKzd1Q2tzUlB2NUt1dlEzSUNnRUtTMjQ5amZ1UFhlMXJ2ajFLUXN3VWlGRElLNFpQa2RxSkRvNFR1dEVmajF6Vnl2TUxDVk9EQzBwNzhSeHBlSk91WEcrbFM1a1JKcDMybkFOMk0zM2NGaTdneVhnamJ5U2kyT2tjcTlOZzlGQVlYVjFDNThWeFYwdWNoUWJtb1Fxamg0dTltMG44ZjM1RWxTUzNTWkRmS0JpMVFITHloOUFRMXF3bzBjenQ3VEp6Z0dKT2I1ZVZKWnI2c01ZeFBMK1oxTnZHSWRmWjVFTTAyYzQ4TWkxQXVsZ2loRy9xaFJRa2loSFpkU3l2S3VhWUVkTUorWkk4UC9rQWVoYlZRczFRcXFkMElUbjJZUkk2Q2NyYzRRUjlVbWlFYTdEdmdBWDg2ZVFYdWVPdEkzaDkrbWlTanNsL3Z0NFREU1J0QzFOSmpocitIVGNlK1RhL2ZPRWt2dmgrRU5wd1BabjNvM1JJQ1lScHBQVGZLRVorcmtkb0hOMUEvMjFvUXBnR3Z1S0NWSjYvaXphTlRkczBXaUVzUCs3aUNrNTg1VmJ5U3lxSURLaERmWlpQc0RTSkxMV1JXbFA5WWpkZSt1dFRHQVB6MFBIWUZsbU50bXNka0FCSFFWQXFEaXlLTVhoSWlMM3lJaVMwaVlYRDMyY21XRjdqWUVpeFErVjJVOUpseHFxbWx0OHpKM0FHT3dTT2FsbUZpK2VYOC9zRjVUelZwNWpURHo2U2lmc2RpUFh4K3l5LzZtYUNvNFpSZE80cERCZy9qdHV1UG9pelR4akY0eTlNVC9tcE51MG02ZDA5ait0L3VpZW5samdVZnZZNnNXKytRNDhhU3RuZmJpUDdnSEVRRERCM1VSVlB2Zndwejc3NkxTdVcxM2lib1hudmJTNTRyRUVoeUxZZHFMSzRmZkVRN3BuZW0yc0dMZVdxUVV2SkQ4ZFFTWXVFRXBqYmVENDVXdUNUR3ROblV4Y0pjcy84QWR6OWZSL3FHNEtRQTltMmcyb3ZLMzlkSFR6NUpNeWY3K1gxdi9vcVRKMEtnd2Q3TWJXdHpRVlhDbGF0Z3Z2dTgySng5Zlh3OU5Nd2NDRHN2VGZrNXJaYkxsbFNNeUFyS1M3dFh5dUc1U2IwSTR2eTFCZVZRWmxVQXJtckhLVU91S3ZNbG1QSlhXVm1EUEZ0VXpZOFhjMHd1Qmk0RXNXeGxvOTNVczllYS9sNERjVzl3TE10YTMzSExpYW5zb2FHTno2aDRaMHZpQzlZaHFwdlJEc3V3alNRMldGOGZicVRmY2plNUIxM0lGYTNra3g0bzVOREtZRTJYZDZmM2cvbmIwZGlLTTFaQjMvTGdsV0Z2RFo1RUpWMVlSS3VSRXVWT25vRXdsQ3Nyc2pqcGtjT0l4THpjZkwrczFGYTh0amJvd2tIazZ5dXlFVWJxcVdHV3dNSlYvS1AvNDJsNkpOaERPMVpTWFl3eVZ0ZkRlQ05yd2Z3OGZTK09LYUxWdUlIOTQ1R2tYUnpXRko1R1dIZkFnTFdXaFRTeTVOUE01VGtCRnFkRjBKQVFiYUZrV3E4YXhtU29td2ZqdEt0ZWsrRUF3YTFrYVNYWXlCMmduUks1ZkM3OWV2WkY1dXloelpwWC9nMktiTzh1bWROZHJiRjNiK2VRQ2pzNTdRTG44UXBIRTVsZzZaM1dRNzMzN1lmRHo4M2crZmZXZXJWUys2Q21yN2VwbnVqMGRMQWpFVTR1NnZHSndWUHJZNFNENFlRUDBCaTJkRmpFbWwrWjVySE50d004UHZzVWo2TU5QSE1JN1c4L1drOTE1eWI1SVFEeXdsSFBzRkhGb1A5ZlJrYzNvdXpodTlGT1Fjd296SEd4K1h6K2F6OE8rYldMYU0rMFlpWFlDM1RNd2RPU0hROGhqQXRBbVAyUVNjUzJBdm5iRjkyNUU1U2wrdEV0bEpSM1ZLaC9OWmV1MFhGcS8zamxTbGxmTnduYitJLzhWY3NIRGFDL3BPbjAvMDdUYTZLd1ZRL3ZmWjBPT2lqdDVuNDluKzhtVXdtZnBSNmpuWXk5V01aZEdMTDBVaHZRNnNqZEFKWGc1bDAwVUVUM1JURmprUkk5dStEUzVLYzZpamE5SkwzRTFrdXNqcU9DSVFRcG9sMG5COWw3VTluemQvcEZIYXhWaDduRjU0K0lvWEhlK1lSNnFieS9XaldWZGJwTGdMaDZTcXNJOThWckd1WUpscTlUM00rdW03SmJkY3Rla1hyejFqLzh3MXBaQVRpRGhmQTNqNURLVkNhd1BpOUtQdmlKZXIvOFNSMWQ5eVBtN0JKenB6TG1pUFBKZXVNNHltNC9UcU0waTdlYTVNTytIM0loa2F5bHp2STJoQlJ2OFQ4M2w2bk56c08rSHplWGw1VFFjM05mNkhwWDY5NGNrMUtaRTQyZVgrNGdkd3JmNXE2M2dXWkd0TVdmVHp3OVJ5WVBnOGVmd25PUHhGT1BCaEtpajN6cG90bGMwbEpPU2ZtMS9CU2JRR1BWWll3UFpMbHhZUTNqQk5vZ1JTYTBWbU5uRjljd1luNTFaVDQxcXVoTWFDaUVsNzZBQjU3R2FiUDNmcStFQnB3MFFTRllJS1Z4WjVtaUtsT2xCY1RkVXh4b3NRN2NYS2ZpaWVJemx0S1pQWWlFdVZWQVBoTENna1A2MDlvY0c5a3dOL0J5MWUwKzNxdE5ZN2pjTU1OTi9DTFgveUMydHBhcEJEc2srVVIxRTlxYWtKcFRWNXVMci84NVMrNTg4NDd0NXB3dkVOenVoMEJmb1hSTllrc2NoQkJid0hxbUVSVm1iaHJMVWdLTURyT21aRXd3eDNzaUV0dlI0dE9BcVVPZ2QwVEJQb3FzRFRSYjAzY2hSWjZpWVhJMHR1dk5sMFl1TnBGT25WVXhCMyt2RENiZDZ1S3VMeG5QZnQyS3dFdGNKSVJER25zUUJmcTZ1MDQyUUtmVkJ5UzA4Q2xKWldNRkkxTStqakdlOU5LK0dwV05xc3FsbU5aUHZyMjZzN0tsU3RKSnBPYmRkMk1IR0J5MnRFQmZuVjNVNnZucXVxaWJmTTMxZGRqOU91RGRjUlJpSnhzMVBLVkpELzhCS0pSUkRpTWR0MmRwb3NycFpCU3NtelpNdjd4ajM5d3dna244UGJiYjNQb29ZZHkvZlhYYyt1dHQxSmFXb3FVMHN1WkJaQ3l0YnhTcW9ValNpbkZkOTk5eDI5Kzh4c09PdWdnM25ubkhVNDY2U1RxNnVxSXgrUGs1T1MwZk9iV0dUd0tacFhEcWdiWXR3Y01LVjZYNkpzVzlzVjJ6RGRLclVlZE5CaTV0K2IxeGE5eTd3dVRDZmtkK3BmMUlaa29TdVU3dEhFK2hFMithRUpyUWFHc3A3MjFWNTZtYlZJZzZ6akc5eVc1b29rU1dVdU56bVozdllDUGtydXp5T21GRU1tdDlyV3ZENk96OFFnM2RvUk5KMUlOdjBYYVY4WkpBWEZIY1ZCM3lkOS8rUmNBZnY2dmZaaTVTaEd5WkFzL1FZY2ZiV2kwTnZHWkRSd3hiQUdqQnBxVUZUWXhaMUdjMG13WU5pQ0w3S0REcXRwNXpGbzFrRTRUZ0c5dWxPalRaR1ZyQXJZUExUWEpCUFRlSTRGYmIxRzZaNVI5amsrU1RFS1BvUTVTZUdISGFkODRWTTROTUcrMnBQOG9sLzVITkJLeEV2aGNrN3A1UVVUY0pHaFo2TEQ2UVQ1ZDVTb1dMbDdMcXZJNkxNc2c0RGY1K3J0bDFOZEhQSlBiTkpEQklESU5tbXVudXpzcms0ZVp3UTloSXZXWlNjaGdtd1NNNlhmNS9Nc2NITnRpd243VnZQMTJQd1FKZWc3K2xwZitXOExnL2cwTUhSVGIrY0pJQUk1Q0RzaEMxOW5veWlncU40Ui85ekNnY1diNW9DcUdLQTRoOGl6VWdpWXdaVWFJZGlJSXdEQWszWXF6R0R1MEN3ZnQwWjBodmZLcHJJdno2WXhWZkQ1akRmT1cxUktKMnlsL1Z0djFQU2swcmpKeEhSOWhmd09IbFh6Rk1WMitablRPR3ZLc09uQVZiaFMwQVZaeGI4SURqeUE0NUFoOHhRUGhzcUZ0SHIrS1FjTjdFUGtjd3Z0QjRkbFFkQkdFOTRMeU95RXllVDNUdEJvU0M5Zjl2ajZ5eGtISkRSQWNCWkV2b1BvcDd6M2RXS3EzZkdhNWJOR1BnaXNoL3lEdjc5cDN3VkRzRU5KdkRhRlJUUVNHUlZCeGc5aWNNRHE1NjlYNlNxQlhkZ1NBWlpIZ1RzMFFOU1U0VVlkamh1VnhSczVyM0ZkK0gzdjk5RmIyZjZZck0xWldFZ2dJOWlsMkdEU2dMMjRpenFkemx2TnVSUExJRjVXOHNiQUhqeDkwRW91ZS93TlhuL1l5SDYycDRMdlZDdWtUSGM0aDJCQko4TzduQ3hrenJCc0g3dFdIZzhiMTRhdVpxM2o5bys5SkpKMnRscHUxRFhIZSsySVJJd2FXY09pKy9UaDAzMzU4Tm5VcDczeStDSHNMZVRtUEg5d2p2UmZhVTh0Mm1OOU1TSUdPT1BRYTA1WEVTWU5wYkxLUmxvazc1eHZpV2JuNGV3K0FaSktpZ0NUdzVDeVd6SzFHQkUzMER5d1VJU1UrTGREeE9GSXBRam01S01mQmlDWHdhekFNZzFaRWl6c1p4aTZpTkRYWFlPOElLT0dWTTNjMExBUjdtaUg2R3o2V3FTU1RrMUZLcE1WcC9qd0dHSDdDcVU1UkVSUUwzQVJ2SnhyNU1obEYrd1Q5RFI5N21pRStURGI5UDN0bkhTZFhlZlh4NzNObGZOMlRiTEp4ZHlHUWtHQXA3aFIzQ29VQ0ZieXV0RURwVzRVYXBUaEZTdEFFU1lLRUdJUzQyMjZTemJxTnoxeDczai91eENGRWRpTTA1L09CN015OWMrV1I0K2QzTUE2RE9kMldqeUZjSDZXN1BUdEdMZ29oUVdwMEtveFNVSnBtem9zbGdNU1JBbHNxNU9la0dEZXNqdnlTTk9tSVNuNUptbkhENm5oNWVuZnFXd0t1ZitvZ0R0bjJjS1RBNjBqT1g5dEVwNWpCSDBaM1lWVnhDR0hhcmlaN0dDbCtBbEJ0bFpNR3IyVjB4UlpTbHNicGc5WWlnRStxT25QcG1HVjhXdG1aR2N0Nkl4WG5DNGRUVlJSc3kwWkcweHgzWEc5K2ZQdlhHSmxzSVhyMy9kUi9PQThuYWJqWUs5c3c0RFAzVnhXa2FXT2s0dVFlZnd3bFA3cWQ5ZjJ5NEdjN1g5K1dnYzlYMGxTd294NU9HL3BucGp6OEJpSUlxQ3EvZmdBK21DVzU4VHFCME9GYk4xWXpmc2g5VEx6blo3U1o0MEZOZ2p5S2lYVWdGRTdGZUducGRLcGFhekZzay9sYlZqQ2grL0NqYlpjNTZwYytTbnZpdUpKOE95M09pMjNVaHFXYnUwOE5kZjN1dEdEbmlWVjY5cE5wNUpzR29vWmpINUZJUnpMN2x2KzkyUktBbzZBWEtOaFpZY3dHQjZVMEI0OHZUV1BZaTBkelFFSmoxQXV4S0piaHdaT2ZqNjkzQzZ3MGtaWVhQQWQ1TjJYc0dDY1NSKzZISFNPK1lGZUt6UCtrQkJRRk5aM2l0c1Z1RHBXV2ptTWhjS3lNbnFQdUJlT1JFcUhyUkY5K0JiMUhkMkp2VHNGSkpBaE9PcG5JTTgrRHFpQ0VncHFYNjk1ZjB3N0xKV0xhRHArc3JjZXdISjZkdVJhQW9wd0FIazFoVEs4UzlLTjRsM3RGZGlUYWJudGdxLzBzbEk3M2JtN05lZFVRVk5vR0YwV3ErR213bEN1OWVjU2tqWWxrbjdMYUhIQk1nVkFsUXBXVWZUTUpXUklVc05JQ2taQW8zdjExUFRxQVFCR0syN1BCTmhFeXhVVW5sWFBleEhJZWZIb2x2L3IzY2xKTlNaUWNMMEtBL1JYb0Zhc3FLbFlpaHVvUDRQZjZpQ2NUTy9HbnJYWFU4bjhJZkRRNitSVXBoUlJMaTczTTcrSm5hR2xmeHBVTVlIYjlDbGJWcldmczVnVDlHbFBFbllCMHpCNWlaMEVtU0daM1k1WnhIbk0yUmdqVkxTRVowQmpjOUFZeUdhR3FZQ0oxVFNsOFRRbXlmQTQ5d3JOb2laZlJXRGFPMW1nTDViS0ZIc0VhVHRYZnBqbm1ZWEhvRXVMZTdDL1ZManJDVCtmWWdsQXd6VGRPWDgyakN4SUlMWUZVZkFSOURmVG8za1RRazhmSGI1YmdOR1p6eHZuck9lbWt1VHo0dm8rV3BTY1FiZW9NbXJsSFo0MWthKzZVeEVCUUdlektQL3A4aHc4S3h2Tk4vV011R2V1UTVWZElKOTFuT21oWU5MLys5WmZxNUNNMVB3OEd5L2hucXBuWDBwSERHMy94UzBqSjlKQ3pIVWlhb0dUYUdxSzQweWNPTjBnS0NUbmVNT05MUDJaQzJVZjB6RjVQUUV1UXNBS3NqL1RrbzlvSmZGdzNubkE2cDBORW5HakgzdFJ5RjcvVW9TYkhzbWxZdG9iSzkrY1IyVng3VlBuNlgzU0syRGF5SUEremV4YU9Ga2FQTkpGdG1XVDEwaEhyYWpDN0I3QThOc3FBVGlpZmJzam9DMGU5RllmT0ZKZUVsRGhkMUMyTThuNUdENzJTdFBTeXpCakVJbU1JYWVrbEpkdWhCbXViRHZoRlhFdnVjSjdZWVYzczBOaE03UEM3L1hYQUtZSjR5a0lvQWxWVmFXc3pPSDUwRVkvYzFCK0FXLys1a3BtTFcxQzlLbzZVeEZON1YxT3RLaTdPazUwTWd1SXdzZTk4ZmpqaE5TWU4rUXlRZkx5OGdFZm1aUFBCZWkrMkZHUjdIWVNRYnR1eUExbitqdURpMFMxY1BMb1Y1NHR3b3hTQjFXVFEvRUlEa1JrdFNFTWV1RUlrcFl1NXZoZENhbUdwemQwbk9ueHprWWR6MTJoNERRZm5xOU93ODlEWlgrVmQwRWNOUTdhMlljNmNnL0Q3OFZ4NE51YW5pM0FxTjVMZVVndW1pWDdLUkpBT3hveVpZSmlIU0RRb0dYemhHSGJVdFMrRVpVTWl2aE0zc3NNUjBEWDBvZ0tjVkFwcEdraGQzYXQxMXExVGpQN2xDWEtESnRsQlNVMnpseVdWZmpZMUJ2WmFTZEkwOFlYZjllenBBNUxrRnBRakJFUTNSK25aeThVMzgvbU8rcVBhejZoUTlva1BIZTEzMjQ3bTBRNTF5NjNoQ0VJSXl0bGVCeTJPanZVUlJkY2NmOFZoL1h5ZjhORWV0Vk9FQ25ZY0tSVTg1WlBRUzhhU1hQY1N2dWIzS01oV2FVdVQ2ZmwxY1BTSmxvYkczWjh5bzcrMVpVbHVlODVEUUpFc3Y2RUZiMFIxWFZoN1dVZTFZNnZVOWpnUDRJVmRkUWIxQ04yL21aZFZzck1KbnY0MXRLN2x0TnovQVBIcE0xQUNBVmRtT0VkMXluMmwzMTdYUHIydVhSK3kySWJQczYwUjlRSFN5Q2UvUU5uYlYzLzE1L2JUM1NXdlZBaWtaWExNc1FOSkJ2MnNXcmtRLzZkL0lsOHh5RkxTZFBZVTgrL3NmcGlEQm1Ba2tnVFdOeEpMbWwrcVczWmsvYmdRSUUzSjhHRkY5T2lpWUZnbU9McXJRZ21KUjFOWXQ5bGk0YklXaEM2TzlvRTdiSFJjZ1pxZDVkWkFLQkE0YmppQk1VUHdqeHFJSFkyNWNUUFR3b2tsUUVyNjVVYjV5M0dWMkZrZGk5OTQydTkyL3R6dk85ODR2TWZ4NFIvdDlESC9qRFBhUWRab3VJM21NN0U1YWVBR05Ob0I5SC9LbE0vZHcwNHM3YW83QWMrMlBhcDRkUmYzekpIb3VzYTN2enVlcDE5ZFJFTjlGS0YvUHU2ckl0dzZLaXNTd0pNVDUyZTN2TVY5NTg5Q0JDRWRWdkVxTnF1MkZFRFNpeHBNWWpzSGJyZk9XcHprNHUvWDhwTWJDcmp1N0d6S0J1a2tsanFFMzdkSkxuZHdVaDBMeGJ0UGNrcEFRRHA0TjdZUnR5T0lISUZva3VUbVEyMDNBUXFvdHNtZzByNEFOTWJiYUV0RmFRelhZUXJCcGtnOWx3dzhtZit1ZUIvVE5nL1RUYkVOdVdYcnF1Qm9SZHIrK1NDa1lZQmxablFPRGVIMUhCSmRVMW9XSWhoQVN4dXMrdHJsZFB2N2c3dzVkU3EzZmV0V0h2bnJvd2hGUVJFQzI3WlJGTGMzOUczZitoYVY2OWJ4OE85K2g3OTdWemJmL21OMHZ4ODhPdGdkMlNINVFQV2R2V2NXamxRSWFWR2NUSTJGNmVqYzJmZFhJQVgzTEhrRUlTU200OGxrQyt5ZERaWkltQ1NUTnVQSGwzSHl5VjNvMnRYRmVkdTBLWVpoMkx6M1hqV0poUG1WMEtVY29FeTF1Q0FZNWZ4Z0RFOXppbisvbWVEWnQ5S3MyMnlUU24vNVM1WVZxVng1cG9kTFR2VXc2cklqRysvZ0p6ODR2UDI0ZjMxMlo3N2o5M3NwTHNtbG9hR1ZVTkFQUUVOREs4WEZlWVRETHJaWmNYSGU3c2RMY2hGbWlMNlhmNTNPSmJrZEp4bmVmS2JESk55T29jU09ldjRqYlh5bGxDQWxUZFdyY0ZKMW1QRk4xSzk4bFhTaWdld2NRV3V6d0RiQ2xQUTduM1h6bnFOOHlOa0VjZ3JRRklFMzVBSHpRQU9TZTZiWXJsL1kyL3ZMUGJONk04ZVg1ZE1qNktNMWJXN3pOZHRTNGhGdWQ1dWdJakNRQkZWQjNKQVpPWFlrNnpWdWpIdHJ2WjBRUitOSWg4L01kRkQ5c2dCcFNBcTYrQ2dkTUkwQ3RZcEZNb3RzdzBPL1JDdUxoWWQrZVdrMnE0VVVMVGlUZUp1SjhPNGRsb2JtQ1pCVGZncU5yUXV3SWpXSVdCTkNXVXZLOHVCazUyR0VTbEdDUFZCQ0EvSGxEeVNRVllhcUtnaEZwYkI4QkU1aUk1NldaUVM5Y1JKdGEzQTZINGVLRzMrMWJZZEV0SVpVeXdxYzZES2N4QWJTc1RyQ2tUWjhXaHJwbUVqSHh0WTZVVlIrQ3BySGYzQlU5VkNtUDNtODQvaUFwcnBRMDM5K1BzVWpMNlM0NjJvZnYveFdnSjk4dzg5OWYwbncrMmVhZUsyMWlZczlSZHdjTEtPWENCQjNiSkk0cUVjcjV2WmRMNVVTRWZCdzcyK211bjdsa0EvTGN2QjZWTDV4MHdUKzhkSjhObTlvUWdTOWgzVisrZGJ3dE5lajBMTThoOXdzRDB2V3RKQ2JwWFAxT1gwSitIUWVuN3dTUjBxdU82OGZwdW53NU91cmFRMGJET3lkUnl4aHNtNVRCTU8wajRhNjJWSGZFNmc1dVlTT1BSRTdFVU12TE1HT1JjbTk4R3JNbXMxSTJ5SHJoTlB4OVIyRUhRM1QrdHB6YUFYRmVDdDZrZDZ3R3VIeG9tYmw0T2xTZ1pxVGoxcGNodFZZanhPUG9majgyeG4xWGxMejVoaVhsNXNNQ0NUNWEyMEpVMXJ6aVc5dE1wK2h1SmxtWWMxNjduKy9sY1YxVmR3MDZsUUdYM2d4bnA2OWlMenlFc21GQzhBMDlpMy80UWl3THpjSDROOWVlRHNONVVub1k4TFlGQVFrTk5pd0lBcytLNElhTDhSVVVQZTBtUndIVmRWSkxGM0Z1RUNhQVg5WnlVTS91b1pSczU3aXduS0lxeHFXWlIzMDNyUGFaejk5R05OeWFHNkpVVndZNHN4elIrTzFEY3kzcCtNdHlpZlZyWUwxSjV3UEVuck9lSmxBOTNMWXZKbjZOOTlIR1RxWW1la1FkWlYxRlBnRVNWTmkvZTREaUJ1Z0NvUlVrRXFVQWNNS3VXamlCUDQ3WnpacjEyMm10d2NHUlJUZTdacWdwanhKcTI4Nk9WdE9JTjZRVFN3ZTY3Q0ZKTGNWMWtzVVhlNlVwK21ZV3gyTmNxK2RMdTFGUVUrQUM0ZWNRbU5STHVJZ0M0WG5XSDRBVG1tRlBnTUdVREc0RDlncHJOWldTQ1dSdG8zUU5ZVFB0eTA0S2ROcGJOT0VWQXBaMG9udWZjYlN0elRGc3JyMTdjRlhzWkQwVjMzYzVDdmcva1E5WmdibVdlNnF3RXBJRzVLWm41bjgrUWRaRE9xdGtVekJsUmY2Y1ZJWnhjd0hNMllhL09HK0xQS3pGVzcvZFpTMGtXa2Nzek5PaEZzVGpBdW1jcE92Z1A2cWI5dTlQNDg2Y3I5dGRacmJkcG9yenptTi9QeUJrUG9NRnY0Rit0M0ExMGFPQTMwZzRlZ21idjNGSDBGNDI5Vm90cVJrV2lxSlh3aU84L2xZYlppOGxZaXoxRERvNy9Id2c5dzhBUDRjQ2JQU01CanM4U0NBdmg2ZDJha1VTU201SkJqQ2N3RGF3dVQ4VVllM1pHbVoxaUdLaFhRRWVwRkpwK3ZxOEF3dzJYSi9HYzB6OGxCMTI0MmpkQ0JiRVlEUG81QTJwV3Q4Zmg2UDh5b003UllpeS9mNVlsTFhCRG1hUmc1d3pzZ0NrcVpEZFV1YVQ5ZEZlWE5CTTYzNzJSRHlTRy9tcnV6QVMyd0VqdERkUUs4QTRhVHBKSnZvSitzWlFoT0R2U2E5dStmVGVVUS9jc2RkU21Ec0dQVCsvVkg4T3h1MDByYTNhZmhDVlVrbEUvenVsc3VaUHUxTjBwcE9qN3dzNHNLSGJhZUlWcTVoOXF5WmVQMEJ1blh0ZXNRcmRwTi9OUlhUY21ocGlGRlVHdUxVSzBZUnNGTW9iN3dNSmNWWUZmM1JoZzBHQ2Rabmk5QjZWOERHOVRqL2ZaUEV5TEc4RSsxRXc5cGFpdjAyQ1FQU1AvZ1U0aVpidTRaSmFXVjJoTEpOOTFNVWJadVRVMHFiM3IwTE9mZmNYanozM0VwcWFpSUlvWDZoTWVqK1hwRHZnd3FpZEd1clJrMGswQ3lESHVFdEpNc3IyT1FUUi93NlAxUjAwU2NmdElmVmo4akxjUnVvdElXUmlVUzdQZC9MKzhtUUUwbVRleDZjVFNpZ00ybDhPUmVlMXBPblh5M2l1MC9yL09HcUp6aGgwTHFEZ2xlNnYvSmtXeTdBam5WVTZsYit0WU9ObXpudlVDei80clRrejJ0U25OMW9JWVhidCtyektNZVMzRkp0MGlVdHViMlBqd2JQMGMxNmxBNm1FaUh3OWVtSnIwOVBDcSs3bE1SblN3aFBtVWI0dlE4eE5sWWZra2V5cEkwbU5JbzhlWHpXdW94elpuMkRLN3FleHcvNjNVcVJOeDlwV1NoRkJYVDc2NE1VWEhNeG03LzdZNlJsMGYzeFArQWZzak5vZHZEWVVSUmNlaDZsZDl4TTVmWGZSV2dxNWIvL0phRmpSK0hnSnFGb21rYVQwY3F2Vi82Rlp6YTlpa1JTNk1uRGxnNldQTnBjK2xEUnJ2YndHZWVPeHZkRjl2RDBsd24wMkc0UGk2R0QrVGdkb3I2eWpoeWZpczlJMHUyblAwQ0xScENhNXNvTVJlRHMwRkF0c240RGlROCtSdUxROE5hN2xGOXlvYXRiSjVJWmdLQTlHMHJqeG8xaitQRGhqQmt6aHFGRGg5SzdkMjhDZ2NCdVRjUnMyMFpLMiszL21SRlFRZ2dRR29xdkRMTW1DM1B6UkRDSFk5VmNpYjlYQVU1NlBrNXlBVTU2TWRKWWdYUnF3R2xGWWlQUVhIdGRlTWdnYXJFOVdlNW9kdlNSUUtwd1FXSk5RNmNpTzg2ZmUxZHlWcmNXOElBVGdVak1MVmpQRHFVcExqWjRPbmN0bHhRMzgrMjFGVlJHUWdqZGNwc05kQ1JTYXl3Q3M2ZkIydVhrakIzRDhlTkt5YzlXc1IxNVVCTEhudXRnelRJcHU1TldoeUlDZ3duNitxUG8rUWloSWxTTlNDSk9tOWxHcDl6VEFZbVo2STFqMVNFTEkzanIxcUk2UitYRW9TWnAyeWcrSHkzdmZZQy9Sd1h4NVN1UCtPaWlFQUxwT0lTQ0FmNSt4NW40U3BjemUya2QrYjQ4N0h5TklrOFJIOWU4eDVxVzVRUWJRd1N5aXBnMC9FeUNhb2lxamRQb1ZiMldBZjNMK05OM1R1UG1oNmVRTW13WGJQNWdiRmpUQkUxekRiUlBQNFVSSTJEUUlQaGdGN3Q2MENCUVZaZzNEMGFQZHVmTXNrRFhEMnc5YkdWYkpxREJMMGNBT3F5T3dRVkY0RlRBbU02QUI2Sm14bGU2alIrRGJjQTVQZUN2eDBLUkQxN2JCRFByNGRWTnNDbTJBN0Nlc3YxK0dYZU9XeXZtUU85Y09MY3JQTGNCYW1KdTBZRGM0M3hMVGl1YnhyZjYvSXNzTFlZUWtoSmZJN1pVK1U3ZnYzRjFqLytnQ3B0bGJmMzUrZEo3YVU3bjc5T0E1SGdpWE5iOXY5emErekc2YmxsUDA0TWVJaC81a2FudDc3SHJBUG9IT2hSY2FNQmRPeDhlUGJqTFRpZDdkWnVOeVJLYVRUL3hTSnJPblZXQ3ViN1BqWGdvU0hwdFNhQ0VCZXpDT2hWRjBLczhqMUdkdStBY2dQWCs2ZEtPWWpSUTRCRjh1MExscXM0SytmcGVhRmx1SUlyNHpBamhGNXN4dHhqdHE1cDVQSERQUFhEODhUdC9QM01tekpqaDdxZi9VYnRoWCtOb0g2ZEQxRmJXVStCamV4d3RZU0JOaDdMT3Vaenp6V2ZSTlFVblphSmwrWFlEdmxROUdsYlM0SjRIMzhHMEhNcUtzNm5kMG9ydzZsL0tkd1V3dW44K1Y1eGF3WUR1T1pRVitpbko4L0hYeWV1T0N2Z0RKUnVjTlBnR1d2aUhtcWk1a3NCb0M2MUFFcDNpY1d2aTJNR3ZtQllrRjdtMm9qU1BEdDlST215VVFvUnBnS3JpNU9SaUo5TlUzdmNiNnA3K0wyVS8vaDRGRjUrOWd3OUFIRUd2NVdvS3ppSG9OdUpJaWFXcC9HZktVbDc0N3dJY240YXBLaWhKZzc2OWl3bkhEQnBxd2toZE9ld0N4d0tCVEZzOC9mQVlBbjZWWVpQZVFYaFUwbFU5YU56WUhXKzNTckpIZm9hdm9oSWhKSTdoSVdyREdRVU9weGJZMkJJK2FsT1kycXlpaVoxVEFyYXVJRXZDcmFzOHZGaXY4dWUrQmcvMWQ1bGw3NEFrYklKZkFVMTAzQnNpNWJibVBic2RWVnlmbHhBS2RqcE0wNHhmWXpRc0o5ajNEQUxkVDBEeDVXUmVST3p2ZGdNa3plRTRiODlkVFZWdEs1ZWNNb1FMVHhoQ1VWN3dLRDg2QlBwWlhWVTlXWXBEYmw2UXljRUFMN3k5bkUyMVliNTUvM2xjZmM0d0RKcjU1ZHYvb29mMHNqbXNFTE5yeWZZV01McWlOOWNlY3dPRFNrWVFPa3ZqN21zbjhzZW41ekozY1RVZWo4bzE1dzdqc2pQK3RKZHJBZ0s2UXZjOGhWeGZGb09LdmJ4ZmxXQmRzNEVpd0tPSzlzSU0rVXFUbGRqUGhnMFM4RXZ1V3hFbnRGRXdOeG9rbm1jaUZZTTUwOTRoR0ZLNXIzc3VEd3dRa05TTzFvcnZCeWtTSE0xbHdWa0pRVVdMaGJOeUE3S2lCMHArem5ablJ6djYyVUw5MHZ2dTV6bVloUVRMMis5U3dnZFlIbUxKQWdKK1VFUWRxR0NsaXhBaWhScE11QURFeHYvdzh2MEtWSWpZUUxHaThoMS9EdjE5QWRhT0hJSzNjeWNYY1BiemZBSkNJQlFGdWRWdjA0NWo4Tnh6ejMzSm1wVDR6a2dqUXBMa3ExNWtST0E1M2lRMTFZUHdnbWVpZ2YveUZPa1pIc3dGR3ZZT2ZzT2NtQ0F2S2hpNlZ1R2lHUkFKU2phWFNGWlcyQ3p1N2JDaXdxYTZSQklPU3JiV2tpaHlyL0hramtqK2NGbjNmUVFRa0FMRmsrTDl0MjhrM0ZLQm5WZlBtSXIxMUxYbE02cGlBNXBpTTFtekdGbXhnWG1WUFJGdDNTaGFkeVlubnZaUEhNTzNiNE1KUEgrQU5wdk0yR3V0aVFETHRuU21LWmFGZE54dUNXOHNHSkd4cndRNENrMnhMSlp0NlV4ckl1Q21aMG14MHpYK0ovVGZYejZJWmRrMHQwUXBMc3ptekhQRzRiVk56S25UdHVtLzZ5YWNBMGg2ZmZBcWdSNWRZZE5tNnQ2Y2hqSnNDQjhiWHVxcWFzblRBSjhQeSs5SDJBNVNpSjBBQkp4SngrQkp2VXJlSUFOWkZrWGttSGhNazlRbnVSampXL2Q2ekR1MExpR1RveGZRQmN1YmJQNDBwNWtYTHZaeisxbER3VXFEcmxDWldzOUxuNFU1cURpUEVxSnBtOCtxWTBqYzVsMUhGZm1qZEREb2lvdEc3TFlXSFNuWjNKWm1TbDR4WC8veGo2aW9xNlR0emZlSVRKdUpOQzF5VGp1UjNoVUYvT2F1U2NSU05rcHo0ODRLb3dCRlZianZ1ckU0TTJlVCtHZ09kbkVoWGY3NFM3SW1IdXVDUUFITDF6Znh3cHRMMlZnYllmem9DcFF4M1hkVFBKOTkrSXMzalMwRWFBN2VvRW5FMXZuNTR2NDh1cUVyZC9ldjVOWmVHd2tFMGppR2ppa0YyajdLS1VzS2RDSHhlUXdTS1MrUEx1L05iMWYyb0NFYUJOM0NHMHlUMW5UM0dmWjFzK2Jsd1UwM3diSmw4TWdqY041NU1HNGNkTzE2WURXSGl1SmU0NDQ3WU5Zc2VQRkZ1UFphR0R6WXZlZCttcjBBaFY2Yk04cGlvbnZBNVBsTjJjNkxtN0pGWFVvVGl2aUtNQ3JUemVmZSt2ZFJPZ0Q3dzdGWi8rWTdoRjk5Z3hWQWRjMFdXbWZQMjNhOGRmWThxbXUyc0FMWS9Pb2JSRlNGbmw4N0JRMjE0eDlPU2xJcjE5UDR5UFBFcHMvRmJHaHhRZXFrM0I3QkVBS2pzcHJrNHRVazVpMmg2TGJMQ0l3WXhOSGlsaU9SNVBiL3F6WlZ0Ym04K01ZSXVwUTNjZXFvOWF5b0t1TDE2VU13VlFkYnN6TjY2dmJmSkF5VkY5OFpocWJiak82N0JRWEpPM1A2WXBrcUNWdEI3c0QvSENtUW1zMEhuL1ZBdHhXY2s1YlN0MHNUczVaMVpmT21RaElDcEdydmhiUVFDR0dSU1BXbnF2a20rcGJlajhBOFRHQlFkbjc2UjI4Y3ZzdVRRN1pmcHlEa1FSR0M3c1ZCZm5QNVlOS212VzEvU1FRMUxVbCsvdklLVXNiQkxmN1owYjRvS2doeDVubTc1SGwzcldEOWlYdk84NjZycktQQUswaGFPOXNYVW9MUUJHMWhnNnZ1bWNhSXNsTXB6eDVHU1k4OFJCT3NYanlJYjkwWlpVMWxMUVIwaE1jNXFDQ0ljbHQyVk1ldW93TzV1aFFLcW1GeWVXY3ZBMjg0RHA4L2g4di8ranBQVmFld3ZGNkVJdytLYVJTWERqNmhjTGhEaVRpQVZ3ak85R1l6U3ZmejRyb3c5LzAwek9RWkJuZGZFMkQwd0RneXRRUW5zUWlVSnluVE85RXBPSnd6ZWh4SFc1K3ZzeXFwOFhIakpqNm9XOHJDNXJYVUpadHg3RXpUcnNNQlRFMElwSmxHTCs5TzdxMzM0dWszaEpZSHZvOWgyUWlQU250dm9DT3RMdmZpc1FYN3pMMTFSUkR3S01RTUI5dlpuakc1YTJzNUNhaUtJT1JSU0JnT3BpUDNlVysvK09pdUQzenh2cHMxQUk3RFNFM2wrZG4vb0VmdFFycWRHU0w0MFpPdUhWamVreVZoazlvdWd5bWJPQm9weCt4L281MFhYMnp2NVF0OG5vM29mdGZlL0wvZ3ZGTVBiNGIxMEt5akt1bFIrbUo1Rm0vSDNPSERyTU92VkFSYUlrM2ptUDZZV29MU2FTdVI0MGFnWFhBZTVqRTZvaTVCK3NhLzRuTXNUR0dTT0NlQTJmZFdXdGJPcGVqak9nclhiOGJ4NkFjbzg0NHNHL2Fya0w5ek9GT1JQNS9TWURHT3RMR2tqU29VVktGaVN4dGJPdWdaakJmVHNWR0VRQlVxam5Td00zWFRRZ2dzeDkyejJ0WmpTRlNob0FnRjI3R1FnS1pvU0NteHBKVTVwdTV3VEVVQ3RtT2haSDRucGFRKzJVTFZVWlo0YUVoeEcrdGcyNkNxNU54MkxhRUx6NkRseDc4ajl0eXJJQVRScDE0aE1mVURjdS83RmptM1g3dk5yNjhWRm1JVWUvQjN0dkNvRG9RRldxakk1VDRlOTV6d1g1Nmc3WUZIc1J0YUVMcGJ0NVYxOVFYay8vSXUxTExpakNQUmRwRmo5MVdHT0RCL0JTeFlCWSsvQXRkZkFCZWNEQ1ZGcnNGVXJKdmNYRkxQQlhrdHZOS2F6NzhhUzFnUUQyM0xCVmFFWkVRb3l2VkZEVnlRMTB5Sng5eWhXQXNhR3VHVjZmQ3Z5YkJnWmZ2MXNwQ0FqY1F2QkNmb0lVWnJBVDR4NDh6Szk2T09Hb3FhRlhMemN6clFhZkJsK1JyNzRtZU5MRmhKL1hOVGFQdDRJZW42UnB5VUMyeW4rSHg0UzRySUhUK2Nrc3ZQSUh0RS8zWkxtTmlmc1JGQ1VGdGJpNnFxM1BtOTczSC9yMzdGTVk3RFQwNDhFWUJmVEozS1BFWGh6dTk5RDFWVnFhMnQzY0ZlT3dUeER3RllBcVhRUWh1VVJPdVdScTB3VUFvdE4zN1hyR0Z2OUdCVmViR1crWEdhTkZEYjV6bnZxSG5uZ05lNHdHMGtwTmdaNEdsRnRGc0Z3Zisxbys0b05KQ2RUUXB1alpNenpFWjRKTklXaUFzTVdtZHF0UDNIajF6cG9TUENGb3BRaWFXaitIVS80M3VkVE8vaVBzelo4Q0VMYWxieDNWZzJweVFIYy9zSmQ5S3BZQ0RZRVd6YlJGVzBnN0Q0Y2p0SU9SWjA5aGhjVmRqTVpma3RpSVk0ZjNzdHdYL2ZNeW5zbk1jM3YzVWw3NzM3THYzNjlhT3RyWTJubm5ycWN5OFREQWpPbnVqbGhvdDhET3VoOC8zZjc5d3lRZE9VUFM5T1ZVV0d3L2h1dnA3Z0F6OUgyamJHNURmdzN2OFQ3RlZyaU4zeVhhd2x5eEVaWG53bzFHa2hCSVpoOEl0Zi9JSisvZnBSV1ZsSlJVVUYxZFhWRkJZV01uVG8wRzA4V0tqdTRyVGF3bGpOTGU0WUZPU2o1ZWE0ZXk3VHlHaklrQ0VVRkJSUVdWbEpqeDQ5cUt5c3BGZXZYdHgxMTEzODVTOS93Wk9SMndkRUxVbVlzcFpnZzhta2IxNU1NQlE2NlB6ek9XYTNxMzN4cGZsRzI4aG1VMldJK2g0TjFHc2hhQkZVbEczQTloZEJZNGJYN09VN2xLc05sS2xOZEZLYUFTV0RFN3d2QzlIbWE1NVBxVkRydU1uL0JwMlZSdUxTenorVFo0RUhHcDBjSWpJTGdZMDh3QVcrVk05cE4zMWlKM08rZ3hJc3RlSEQya1dQMHhWbEczNmNLVzBjSk8wU1RaaGUwNjd2YXpxUzRpeU52S1lXM25yYmxlMC9iV3FoT0N1ZnBDRlJPaktSVllMWEEzNi9oOW9tbTRZVzZGenFKNUZ5cUcyV0pBS1FuK3NCanJER3hCbGx4ckhCVWJiaVAwdUNlWksyellMYUZUcXRwOGZvWGFHam1DcE5iVGFhQnVsR0Q2TlBOZmwwdWtybGJEOGJneFk1WFN5VU5FaExjWE5Ya1RpMitOTDFGMHNaYk5qY3lDOGVlWXZzb0k5d05JbHBXV2hDSWUra3NmUytmRHhlWFQzNFl6UGsyWjJmMVduSHhiVFZFRk9VRHZOekhYRXBJRWRZVTI5NWhEMXZOVWVicGgrbEE1TVZsZ0hQdjE1QVd5UklqNTV0U0QxT0xKVmd5VUlQLzNxaE0rTkdDd1lNU0I3Nm5IQUg4S2pvRjVWaHZsWVBYWVBva3dvd3BqY0Q0TG1vRFBOZER5SmxvWjlUUXZyL05yakYzRWZUNW80Yy9tczc2RjZOYnFWWm5IcE1WODQ0cm9LY29JZTBhVk9VNjZjdG1xYW1LVTRzbGlrUy9CS0JLSEFiYXR1T2htMTdDT29SVGluK2pOT0xQMk5remhZS3RCWVUwOEZLQUFFZFg5OWpDZlk3SFYrUDhXaDVYVkd6T3lHRnVqL2JDaWNKa2ZjZy9qRUV4MFBCTmREbGo5RDZIRFQvRyt3SU9CWTBaMXdKanVYK1RzMkdnbXNoN3dwSXI0WE4zNFRZeDJBbi8zZmFRTXYyWW03b0tMbm51dVBiK2o1Z0hKd1gwQ1QrSVZFOHZWeWZzL3B5TVZhRDU2c3plVktBa1BoVW01OFBXUWNDYnA0M2dJU3RianQyOE1XREFDZkZwV1A2TWZ2ZEoxbXFGUEtuYWQxWVcyOFF5TlZKMkI1bTFUcWNmOEV3bXBzYW1QWkJJeFJtRVF3YTFEUTBjZDhub3ppbjlDMVdmL0ozcnU5eU5YZlVyZ0hwcHowRm41UVNWVldvYjRwUjJ4aWxvbE11ZmJvWFlsbVNkejllUjlxdzl2dTZpaXFvcm85UW1CZWtXK2NjK25ZdkpKWXdtREczRXRQYU0yYm4weWQyT2J6WDJ5N3Uxbzd2SCtTV1lXeFdkVXpiZ0hkZW9MeGxNeU1zazZVbFBhazU1Mm9NMHVUdHBmOVF5OHVoMjVpUjJKYU52bVFKV3RjQS9sU2FuajE3NHMzUHcrUHpJUlRsc09FUFMyVG9LOEdtV3YyQzJpeHdPamlWVkhHZ0xBcTVxZmJsZXdJb1ZUV0dhbjRpanNNaU0wbVpxbk9OTjQ5ZXFoZVAySjZWbjQ5S2lkQW9GUnBQcGx0WlpDYkowMVdHYW42VzJ5bXFiZk9RcS9EYm1rS2JhVlRkdTgzbUZyUy9lYkhWOHhWTDZKQ0NvdHdrYm0yRDI5c3ViYXBVTndUQkJtL1FCaHVxNjRPa0RSV0JSRG9TMExDakVWYWVmaEo1Z0hXUTlDOG5nMDExYkUyWW9nOU4vamFpRSsvMUxNQ3hKWnFVeUlQY1pOTGU0N05LNG1tZG9NZmd4SDVWRE9qZWdBQnlneW5lWDFWQjNOQnh2a0FmRUVLZ0ttQkZVM2hDWHI3OTdWTzVadElBeXFiTm9Qa2ZMNUphdjhtZFNYVnIweE81OVljSVJjR094aUFVb01lZHQrQzk4Z3orWVMvanlZL2UyTzArNSttTFB1Zm1EdEx5RXk5YXhuTy9mQVBoVTRpMVNVSjVOcU9IZ2E1QklCL1NiWkNzVnhseWpNMVRkejdNL2IrRXJya2VETnRwdDVxWVYvOEhiYjNGdFd2NHJHWWxIazNEc0UzcW95MjBKYVBrK2JPUDJzR1diRGN1dUhORy9WRm55RmVGRkNucFlVVEZEYTJydktPVERXUGVDSFhyT3lkUWNrcU5GbnhDSWo4MmhSN2h4TWNkREFObTNjei9BcWpEWnovL0ZhYnQwTklTb1RBN2g5UFBHTWVnSHhnWWIwOG5VRnpJWDB1TCtkNzU5NEtFUnlmL2lxSyt2V0ZUTmZWVFp1RDBIc3pIb3p3MG5MS0ZiRVVuRkVoUzdMc2QxUW03QWZJT0dMK0ZQMzBZYTJzOVlHR0lzekoyakpHeFk5TGRLbGlUc1dONnozaVpZTWFPcWRzeHZ6aGp4eVErSi80dkhRbU9kUDFraXNCMkpIWnJKTE9BQkdncUUvcmtZVmdPYzllMzdWVnV0N1J0UW1lZVFYenFPeVJuelFaRkpYRGlSRUxubjBOczhtdEl3eUR5d2tzbzJWbGcyWWNkeTVIUzFReGJvaWtlZVBVemxsWTJBZEFVVFhEdmVTTXpFSnh5LzJ0NC9vY29PR3BvTzhnbkJSUVZ6ZWRCT2c2Mllidk9VT2tjZUo3RjdEMzM5YktRcUpsTWs1L0Y2MWhnSnZoSnNKU1FVSWxLRzIwdkY2K2FMZkdWMkRncFFXS1podENCaUVBTlNycmNuaUN4VENNeVcwY055ZjJJT1dkMGZTY09TaEFsT1JjWmZSK3I1Q2RvcXNFUHIrM1B0V2QyNTc1SEYvSE1heHZBbG1oWk9vN2pZcWtja2JKTlVYRGlVWVlQR01HSWZrUDU3MGRUdDlrTFcvZW1ZN3ZXbUs3cDJOTEJrZklycjkwMC91dXY4c051UWZIWXFCeWF0bmk0ci90cGpEMmhGMnNYeitHUG02ZnpTcXZCamZOYnlZNFhTZWVFYjBGd2U1TkZLUVJKWHlGR3EwR1B4Qks2QmRkVDVGL0NlcU1yczRNbjRjUWlsSm1WZEM5SzB5WFFBaUdEV2VaNHVvWmZvOEpmVDNtb2toS2xtUTFhWCthSHJpRVpMSFVsb2xBeWNtUDN0ZFl4ZnJvMENBMExpMHNmR2tOT3hYS0dUSmhPVzJNK0F3c3JVSHdSV3RNcktlM2NsM3N1U3pCNjRCWStXOUdkamUrUHdSZXlRVGl1ajNxdmZRanUrV0hGeXlkRjQ2ajFqR1JHTHR4MmhtQjBxVVJJMXo3dXVLeVBIZWpYdjk0clc3MUUwYmpMWDh4QVg0Z1ZJL3ZqNlZ6MnhmaUxIVWdIa3MrdkNIQk1BUTRVNUVBdkR5UjZnMVVMZXNzMkpmaXdTYzhTU1BybnJlU2JBLzdPcEM3dlVlcXZ3NjhsVVlXTkxWV1NscCt6dTczQnRPcFQrTnVLbTFuWjFwLzI1bGhXVytzQnZvTndlNWRuZWdhNi9ybE0zNzZ0eHc3VitLb0tlVDNLS1JzeGdQREdMU1NhMjQ0cVlGODF2OGVlRlhlWEtTUlRwQ0t0cE5JV1NtNFNYMUluVWIyQlFQY3NZb2thOUlnZkphR2lJNUFkNFZnK1N2dWd1VG9FUklKeXJacFIzZ1dNOGl3Z0xrTUlZSXRkUnFOZFNGcDZEb2dQQ2dINXdWeDBSU1BrOVdNNk5xMkpDTHFxRWZUNE1HMmJvcXhjZkpxSExHK1E1bmlZcG5nYkVvbGwyeGlXU1ZsT0lWSktXaElSYk1lbU9SSFo3OW9BVlZXd0hZa2xKZWdLU3piR0NQbGMvL1dTcWhqb3lyWStTbHZQL2NKcktRNVNDdXhrRUJTSGlYM244OE1KcnpGcHlHZUE1T1BsQlR3eUo1c1AxbnV4cFNEYjZ5Q0V4RzZQZHFpT29FOVppdStmWGtmQTQyQTdZbGRoQVVCeWVZeW1wK3BJcm9qdjlQMStHT1p1TEVnSWxPeHN2TjI3dzlxMWU4VTBHb0tTQjQ1SnM3cEVjSWQzTk9XNVpkaUhvcC94UHhkOVJYYXVRQ2t0UnVUbVlLOVpqMVBmdElQdTZDQ1RLVWdrd2FOdlgyaUh3TlpjOFBPSFNhVXRXbHJpOU9sWnhLUlRoMkNuREl3cDd4TE16OGJzMTQ5VjQ4NEZKUDNudklGV1hJaXpxWnI2TjJjUUhEbVllV29SYTVadnBzQURDZFBHZm1nR0pNMXQvak5Wa2RnSmpXT0dOUFBlcjlmaTk5aE1YMVJPMThKbXVwZkZzR3lkVTM3UW0zbExDbEFEMXU1N1pCZDY4Y1hHM1pldjR4REs4ekZuYm95VGp5L20wWDhOUlFpNDlSdExtRHV2RHM4N1lTS3RxZDE2S3grbHoxY1J2cEJKQ0FGcEE2ZHFJMnpGbUVJZ1V5bTNWczNuMjRGM0NaUnU1ZUQzWnk1NjFCZllIcE1qaENDVlRoT1B0RksxNUw5dWZrTjVYMExaZWZpODNuYnZyM0dVT3BZdU8rN2l3L3I1YnVXYlg3SWtCYWJqeGU5SjQ1aGhwT0xGMSs4NmN2V0x1UHZLM2x3MUtvUmlwb2xxQVJRa29vTmxYRkhQSHA4dmpUTnA3TkZzeVRYUCtPaVVaeEc0clJyQzdGMVNzQU5zTGMrMjRBdExBZmYydkF5OXNNdm50bWg3Z1JjZmdyajExajRrSGgzZmlHRVVQdkFyOUg4OFJ1U3BaNUdtaWVMemJhdFhQa3A3UjMwU0N3OW9CVWhjVmN5VFdadkpwRVJvQXNVRHFJcmJKMCsybjQyL3E3LzZqSE4zd1dmZDBWKzlKM3pXWGZKS2hhYmdHQmFGdlRzellWZy9WbWZwTEhFYThTaEx5TzJjUzBzOHhkcHFpek9PRzhPbWZ0MllzN0dTTGxKbDFaSXFoSzU5b1MzYTBmWGpxbkN3MGdIdSszb3RGdzkvRGxwS0lYOExKQ1FObTMwVWQ0M3h3b29idVBTekxGUlBFa3NlMVZFUEMrdE5WZkdQR0VqdStaTlE4M1B3OXU2R1ZwUlAwYmV2SXZlQ1V6RzMxTlA2NGhTU0MxZUNsT1I3VFlhVU5pTnlySU9xNm5vTDg0K29jZTMxMWx2dGNCVWJVTUZaNURJdVpmajI3OXBCaHUzOFVTQlRKcWVmUGhBa1RIMXZKY0xuOXViZU1UWXNwYVM1TllGbE9WODQvN3JxWUtaMW5MVE8yU2NzNFU4M3ZFMUZqekJFd1l3b0tFS0NDbTF4SHpnSG5obnA5WHBKcDkzK1Z6Vk5GcmYvcnA2RmExTDg1UG9DT28zUjhROVVTQzUzQ0w5dmsxenU0S1FPSVdSd0pvMUJwQ1dicXpYaXZSUWFpcnhVeUJRYjhORzFKa2w2azBBVWdOUVVHaEt0T0JJR0ZuVW5aaWFJcEdJZ0pacWkwalc3R0tHb1NQdHdiQVJoSXpRdlNta1JJck4zWlZNTFRsMGowa3BEQi9kUXlEL3pUSHpkdTJPSHcyeTQ3ejVTR3pkU2NOWlpsTjF5QzRxdTQrM2E5ZkJuSXFxQ1RDU1Jqb1ZhVkl4YVhJalFkT3kyTUhaMU5kSk9vL2l6ZG9pckg2eXB0Y0dqbzJzcUc2KzlnK0xLVGZ6bDBVZm8zcXNuZDkxNVp3YWVTTVcyYlRkdlcxUDUzZi85SDFVYk52RHk1TW4wNlY3TzJvdHZSazBrVVlKK3BOWCt1bks3NkR0VjllVHJFa2RYc2RwYUVJN3p1ZkVIUlRnazdRRGpjai9nbXozL3lPL1gvSURGYlNPWjNUUVJSNnJvaW9scDZ5ZzRleDIvVUZWQm56NTVEQjFhUUZsWmdKNDlzL0g3WFlPclo4OXN5c29DREIxYVFHMXRncFVyVzdEdEl6TjQ1UUE2TU5xYjRzcFFtR1AwQkd1V3BQam5TMG1tenpOb2FIWnc1SmR1RThZTzFmbm1SVDVPR091bk9kZ0RtSHRFNjJXRnZpUHJlUTNESWhLT2s1MGRKSmxNZzREc25DQ1JTQnlQeDEyM2tjam5IL2RLaDhUbUd1THh0c00rQnJ2VnhldVdsQXU4bWtCWFhYM0t0Q1ZwMDlXWDJydS81cEUydmk1Mm9vTEhGMlRUcWtYVXJYcUhWTFNXbm4xMWlzcFVObTh3cWQ2MEh0MC9tOEduL1loQVZqYUtBZ082NS9EaWI4WnQxems3NkhrbmpkbjU4LzB0TytkL09nMGIwUlNCSTNlRzU1YTcvU3NQU3IrYkgzYTRVaXB3SEl2RytsV1VsQTFDU2djaHZubzIrdUhmVTFVZVBMOU5abEU3anFRKzJzYVFvbHBtTnNYSnpSN01wSXFSekpqM0NxZVh4VmtkOW1Uc3ZiMGZPMFZSeWVzMERNZjhKczFybmtSTnIzY2IxNWx4SWkxdDVGcTFCTTFWSkpvK0lscGRUbGFuU1JUMk9BMUYwVkdFZ3RlcEpEL2JkZGhGWW1zeGtoSDhvUUtrWTlKU09aWG9sdmZ3Mk5YNHRSanhlSUpJeExYL1pDYnYxL2Iyb3FEUE5lU1hEVU5SMUlQQzhQd2ozR2VJZit6ck1MNWwyZTQwcUlxcmhqLzBSSXEvL0NmTmZkZjcrTjBkQVg1NWM0QzcvaGpuYnk4MThxTFJ5RlhlRW00TWxsSWgvY1NrVFFvSDlURHAwSFhrOEF5SjhHa3VqN1FkTUN6U3BzM01CUnNSUWlBQ25rT0RyN3kzL2hGZHBTamZUMDFqbkp5UWg0dFA3VW1Ya2hELzk5Umk2cHVUN2pzSVNLWnRIRWVpS0FxcUNxbTBUZWVTQU5lZjM1K0c1Z1IvK2M4eW1scFNsQlVIYUdwTGtUYit4Mk1jUWdFaDhYVHRnVjVVaW5Sc2hLWWpUUU1sbUlWTUpSR0JJTm1UemtFSlpwRTE3bVQ4QTRhaEJJS28yYmxrblhnR1NqQ0U0dk9oRmhTaGVIMFVYWHM3UXROUXNuUDNTM204L2E4SkxwNWc4ZlVKTnIvdW5tWllNTUhqOWNXc1QvcTNZNjBJZ1MwZHFzTk5QTC93QTFZM1ZuUERxSzl4enFoUkZIUXBKenJsRFdMdlRzVnVhanF3UHErSEdTbEFTb05LRlNvRHNEUU4vbHEzZkdocVY2Z05Ra0xicnV1SlBmaE9oYXBpNHREMDdBT0lMUTdsVHovRmJ4NTZrci8rN1d0ODc1WnJ1QTZMQURvUlRCUU9ubG1qZmYyYTV5RFh6L25YbjhEZEovVkNuejJiK0pUM1dCeFJlTEM1Z091dTlqTWk0QVVobUxLd25tZisrQW0vL2M1RWVnL3JROFB6TCtGc1NmT0dWYzdibFNiVU5rT09Ea3FtYVNBdTJvQVFCZ2tyUmFyYnAvVHlqU09vbHRLWVk1UGJ1NFN4SXowOE12dFRjcjBwSUt0akoxVGJudEZmVTkwTHJ6ZU80d2dzMDBkWmx3M3VzRXVRMXNGZGFJWEJYUDV3N3QzUXJlTGdGMUpjOFp0OTUyTkNJSVNnZDY5ZUhEZGhBdG5DSURsckJqSWVRNmdxaXMrUFRDYVJodWs2SmROcGhNK1B0RXhrSWs1eTlTcXloL2RuWEs4dW1KYkY2c1lOU0VVNzRDSUFDOGtabml5VzJTa21wOE1adDdMY3VnZFJCQXpzclRHc3I4YnFLcHVuMzB6eGgzdERxQjVCbmw4Zy9OdFY2aFBHZXJBTnlYY2ZpRkZTcURCeHRNNmkxUmJMMTFvNGJKK21EQnd5NTNwek9NT1RoZlVsNzlDaCswMEFRbUxiQ2sydEJ2bjVZSHp3RUdxaUV2SXJzWnZxOGZRZVNFTlRHNllsMmowZ3B3cm9wR3JNUzZmWWJGblUyalpaaXNJd3I1ZFAwaW1tSlJNQUxEYlNqUEg2Q0FqQjFHU0NSWVpLVWtxTzhmcDJ4RW5hTDdxNyt4V0h0MVJwbWRZaE5xRFFKS21OUHJiOHM1UzhTV0ZLTG1zZ05DeEd3OHVGR0xVZEN4Q25Lb0l4dmJKcGlocXNxRTVzcXd2ZmtmS0NPdVdGM3IwQzNzNE9hR1FEaFZrNkJTR2RlZXNpdE81bkE3VkVPelhpM2JGd3V5T0x1TjBXbWpMRHV3UU9HaWk2NjBSMDBuU1NUZlNUOVF5aGljRmVrOTdkOCtrOG9oKzU0eTRsTUhZTWV2LytLSDcvenM5dTIxczdjcnE4T3dONjQyUUFrclpVcnVYRDk2ZFFsRjlFRklXcVpCcVZORUZWa1BRR1NVZmIwUDBCc3JJL0IwRGxDQU0ydnVDR053RS9aOTh3Z1h2UDZrdm9vNm53NnN1c2JRNXcxNlloWEhOYkp5NEl1UUJTcjg5cDQ0a2Z2OGZ2Zmo2SzNxTUhFdnIzbzVSdVVIa3lOcG8zVnZnaDJVaEd3Y25JQTBtWExya0FWRmRIdHFtRXpyYWlESUZ0MjV4NmFnVy8vZTFFMXE5dlkvTGtGaFJGNVl2eXY0UVFKQTJIRDdmQUFqR0l2c2YwNFZ1eFI0bGw1L1BvOEN2Wm5CQkV0OWdZdGp6QzhsdjNyb0pLYmxPdE8wWXYrdHN6Zno0dzc3NnE0ajMzZFBSaG83R1dMc0plc3g1cnhXcGtPSkpwTm54Z2svTHlmdjR1bGJaSnBTd2lNWk91blVLY01iRXJueTZwNTgzM2kvam1ZMWZ5OTI4OHd3bUQxclVqVUgwN2t5NFFCdGkyUkZFRWppN1lVT1dDclBhbzhLQ1lFc2VSQ0VVZzlZTy84RFVKOTI0ME9MdlI0a3RxTTl3OFFnRm5OMXBVZXczdTdlWEZPdXBSMnorV1FjZGF4eHVqclYvcElWU3pRZ1NQR1FGSTBsV2JNVFp0T1NRRlZ1NDBTaXhwazZVRmtNQy9xMTdrN2JvUHVidnZUVnhmY2JIYkQ4NDBDSTBkU2IrUFhBQWdKUlFFMnlIbUpGbncvRDlCd29qTGJ5U2srUEVQR1VDL0R5WWpQRHJDNDhFeURUVGRBNXJHNDFVdjhmQ2F2N01sV1UrK0o5ZTl0anlhZEgybzZldlhQQXU1QVM2NGZpSjNuOVFMNyt6WkpLYTh4K0tJNElHbVFxNi9acXM5REZNWDFmUE1uejdob1c5UG9QZXdQalErL3lKeWk4R2JWaGVtVk5wUVU4TUhJazJCcW1ES2pENGtYZEFYRzFnMWRRYSsrblVvZlRRU2JRYXhqZk5aL1ZhUWlqTlBROXRETXZTT05IdjJiR2JQbnMwamp6d0NRRmxaR1FNR0RHRGt5SkdNSGoyYUlVT0cwTDE3ZDNSZDMxMVZCb3d0dFRUODRlODBQLzZzcTRzckNzMVBQVVhCTlZkUmVzLzMwRHVkdUgxL0dPdHhySlhJOUNJY1l3blNYSTIwYTVCT09LTVo2U0M4dUtoQTZoY0xueU9JanJSR0tYc3J0alFoTVMwTmhNTWR2VGJ4cSs2YjhSZlliRnlmeFY5ZUhjbTdDeXFvYVhiOW41M3lZMHdhV2NsdDUzM0dXYjFiT0RrL3pJOHJ5L2xkWldkc3FhSnJGcFlVSFR1MWpiVWtwcjZHMFpERjVaY1ZjTktvRUxvdU11QzFIZWlQN0VCYkkrVVU0Z2dWSnpBQ3h6c1VSZEd4SEIwaEpab1E2S3BLVnJRRm1YMDhkcmdCLzlPL1FsKy9BR0dtVU9UUmhqaUhBM1crL2tyQ255NUFwdE1VblgwYVNFbTY5aU9FcWh6Ui9FR3hKWmVlM28yK0F4UFViekNvc3NLY1ArSXlQcTU4bnc4M3YwYWh0NVQ4U0E1MXNRMXNqcnpQWnpVek9iLy90Vnc4OWlvK1dmVVJqVFdmY08zRU83bjFnaEg4OGRtNTJJcDJjRmovQngvQWM4OUJlVG04L0RMY2VTZjA3Ny83ZWYzN3cxTlB3ZTkrQnhkZEJKczN3K1dYdzZSSkIzUjdSN3FpNzUwdDhKRGp1cU5TQ1hob09LeDdCMFlPY1YwMGxTMndwQlhRTW1hN0FOdUFjM3JBYTJkQmZRc01lQlhXTmJybmJCWGZYYkpjR1ZvZDMyNS9iR1dCcW5DVEtrN3RETDg5RWRaSFlYSVlGQlgybEY5ck9qcFBWbDVPekFyeXM4RVAwaU5ZaFMxVkpJSnNQVXBJanpPMVpoSS9YdklEVm9UNzdyVVBXRlZzVGlpZHhSMERIbUdjbUVYOFJjbkd5WDdNQnVFV01DZzdueThkMEVza0JlY1pCTTVXV0tTTkFuWUd1Zjdiajg3WWJiRkt1VDB4U2xYa0hvdmpsYWwrMU5XejNjTDRIY2lycTF4N3psQ3VQdjFFRHNRNVBiSWpCSWFFZkkvZ1c5MVVydW1zVU9qWkMxa3JBQnNTY3lKRVhtekMzSlErWkhiVi80YmRzTGR4TkxiRjBSNzY5a1Q2Wk9KbzlpNXhOSkhyQWROaDBvbDllT0xCQzdqKys1TjU1NTBWS0NFdmxyMjc3TGRzaWVMVCtXUnVKYWVlT29BMy8zRWwxOTMzQ3UvT1dJM2kxYjhRTzA0QzRaakpPL1BxT1B2NEx2aTlLbDVkWWZyOGVyYlV4WTlZWU0zRHhuNnd3YXhTaWMzUThmVzNRSmNJVzVLWXI1TllxT0drZHVZMTBvTDBLbTBiUHp4S1h3MHlOdGNjdVEvdk9OaUpKTG1ubjBSeTFUcU1qZFVvZmgrZTBrTE1UZFZVWFhFckxVKytTS2VmMzBYYndLR29oa0VBRzN0cnBjRmh4RUtFWUJ1OG81UUNhZWp1NCtsV3BtR0s2OGs0R0d4UEFxYUVEWnRhY0N3SFRWY0pocndrdzBtdU9Hc29xeXFiZVA3MXhRUURIaEpKazhNcDkxdmlncjdkL1p1bHFLcHdFKzJrUUhqZEpPSjBWUThhcTdyanJhZ2lkOVNubUtYVlBOemI0dnB1cHR2MVJaVmNuUlk4dUZIblQ1czFQR0wzc1ZHQVlvOWtibGpoMkU5OVBEL0k0T1FpbXhzNldVek1zNW5TcFBLSFRSb2hyUVBlejBvak5DL2lDNW9pT3Vrb1ZxeWVSTlZNSWt0ZlJ0RUQ1SXk2Z1VEWFkxRkRSWm5pQTlFTzYxV1FTcHNzV1ZkRFEydU1sWlVOWEhYR1NFYjI3WHhJZ2RzN0grWXNhOHV1K3RtMXoyMzM2NTdjQzgrY09TU212TWVTaU9DQjVrS3V2enJBOEtBdjQ5ZHQ0SmsvZmNwdnZ6MkJYc1A3MHZqOFN6aGJETjYweTVteUxnMlJHRFdmM3MxNUoyKzNLeSsrNDJXbWY3WU1WUS94MDIrZHhjTDh4MWl5YVMzQzF2RjRMWjU5ZlRtdnZQSUpQYnNIZWVqT1Nkei9uWk8zL1haRDlYN0VlQVRrQlZTR2UzMTB5dFpaV0p0aTFxWUVqVEVMajZhZ0tlQWNWZDIra0g0eXJtNC81S0RBRGtpeTUrcmNNRi93V2plQjZZbFRXbm9Nd1VhRlJPNm55SUNQdStZbnlSdWNKSEtLaVpvUUxuanpQdEl2L25WUW1mbmhJNThsT0JyMGFvTXpOOEhRWnBXS1pDdXhPVCtocWtzcHZpRjl5RDF2RW9GamhtWjBpL2FwVXV6MTQrWjlHeXZoRnM3SkhTc3FPNUl1YllkcGxxNXVzM0o1aUhlbkY3RjhiUTVEQnVaeDhibWQyRmhyOGVvYlhwTHhHSDE2eDVrMHNZbWUzUlBndEZNZXo4RW9ZbXBYK2QrZVNkZmlrRzAwQi9BSXdkbUtsNkFlb3RzdHQ1Rjk3Smp0QzJLWEJSS2VQUmVydVlYY0V5ZWlabWUxbTg5b2p3RDVOdWhETFR6SG1xU21lRW0vNzhFejJrU0dCWUVyVXNRZUNaQjh4VXZXOXhNb2VXbnM5U3BPZVB1ZWt3THNIZFpvVGt5UUZ4VU1YYXR3MFF5SUJDV2JTeVFySzJ3VzkzWllVV0ZUWFNJSkJ5V1c2dkljUmU2NWwrK1J4aCtlTzc1Nkh4YTdBRytLRGV2N01ycDZPSW92Umsxek1Zc1ZoM05IekdWemN5RUFGNHlhd3lmcmUxUFRWRUxBbnlDMVpSaS82QnlrUjgvVmtQYnRVelBrNS9kN1l3cWtyWUxpSUIyRmRRM0YvUEsvRjlCa2VIQlVHNlFnYm1uYmhZbHFzM0JqVnpiWGx0SmdlSEFjdCtpSnpEVTZ1b0d6dGkwT3REdTRueENnSDZRNDBjVTNQQUs1SWM2LzdsVHVQbmswK3F3NXhLZTh5K0tvdzROdEFhNi84aFNHQlYzVWhpbExOdlBzb3pONDZMYlQ2VDJzUC9YUHZZUlRHK05OaXBtNklRelJCTmYrNFU0Q09SNXN5M0xGc09PZytIM2tsWFhIVzNBUHNYZ092dmMveEN5SzAzRHE4ZGlkTEZxUGFVVVBlWkcyODZXMlVVZldKV3pqalJLeVBJSlBHeldXYms3UnNtWVZkWkUwL1FyOXpObHM0ZFVVMGgyc2R1MDZDcVl0TVRLQU1wOG5kNDlDOUI2bGpxQi9mWHZzSHR4LzdxYlJDdnBRMHE4WE9BN1NjVERyR3pPRkZRS3ZJakJxNmpKNms5aW1RNWsxZGZnN1NlVGdmZ1NHRG5Cei9sVUZzN0Y1bTdEc29VbStmMTRmRk9XTFYvYXpEMys1am1WSnQrbXg2ak5vVFBxNDU1TkIvR2xOTis3dHY0R2JlbTdHNnpXd0RSMUxDclFNMzVjMmJIWHg3UGozMW5POFhnTXo3ZUd2SzNyeXdNb2VWTGRsZ1dhaitReHNSMkE1WXY5MnBCQ1FsUVdubmdvNU9mRDY2ekJpQkp4NUpnUUNCMmJUQ0FIRnhlNjFra21ZT3hmR2pZT3hZMTJnN3dPNHRwVGdVeVJEYzFPaXhHY3hNRHZONDVXNWNuNnJUOWpPN25VMlJ5UWRqSGY0aXZlOWxZNkQ1dkhRUFA4ekdwLzRCLzlRUWxpdlRtRXhiM0luQVFBV1AvQUFuVkg0aHhLaTlvbC9ZSFhyUXQrenpuQ2JZM1JrNGJhVXBOWnVwTzZCeDRpK094c25HczlVVEx2MUVUc09vVFF0ek5vR3dsTSt4STVFS2YzUkxRU0c5V3Yvd25MbmFMQ3ZZL2Uwc2hNUGM0Q1lyV0pKamF5QWlVUWhhV3ZZd25GakcyS1h3SlVReEd3VnZ5cndlaVFLa3BTamtiYTFqSDlQN3NSQXBKU2tIUTNMVVpCQ0lUdGdZVG9hTVZzSExWTUZMUFp5ZXd1TDVzZ1oxUHFYMHluM0ZVemJSdGtYRmlOMzVtc2R3U0pPSGx5eTI4MWRvQmYzYnRsK25mSDlDbmZxTWVFNGtsbXJtNW4xM3lhYW93Y1hCSFNiZlhIZENkeDFVaTg4TzlnWER6UVY3SkRuTFppeUxjOTdlNzZHVTUzbURic0xiMWRhbjJ0ZlNBa29DcVg1YVZZdHE2ZDdyKzRrSTIrUm4rTW5PL2RTTnM1L20yTlBmb3M2OHpncXEzSVF1dDF4NEU0eUEvUzFRMU5SOXhtM2YzZTRpVi9GZ2VOOFVmcGVPSnlaSlNzUWlzTDR5OGR3MHQvbk1DM21RU29kNTAzYnF0SFp3QnRHaEJQMUVHV0tqbk5JMndMdTNYNjNrUlFwR3JjR0N6akJDdkx2YWExY3NpRENsUmY2dVBraVAxMUtOUnpId2pHcUlMMEJXbDhqV3l0Z3JIOEFZNHVQNDdhdXgxTmxuc084MWliZXIxdk92SVlWVk1acVNWdXBqQjlMY0hDVURMSGR2NStSajBwMkx2bjMvWnJBQ2FkbWl0aGMzN1JRTlJjZ3Z4MGJmeDVwZGJrdlhGV3h6KzlvMkpJM1YwUzRZSERPWHAzL3l0SXdadzNJeHJNZm9BZ3ZYcjNyQTc5d1FPdjhyQ0VESUJhRERadVFZNDhCQk9xMDF4bGUwWVhoR3o5QkxsbHhZS3YweFJmYmQyOWFUcWFCNnc2SlhWdHpCQlJjUkxSMnBJb0hmblI0NjJNUC9lU29UbnFVdnBEKzc1NEI3V1RxU2J5NnU3ZlNwdE51T1ROM0hBQ3NpM0FrMHVjbGUvRks2dTY0ak1RbDN5UjdhRGVjU0pxMktjOHg1aWUvWWZQNWE3R2VtNHdtQktKdU9NRmhXV1E5T1JlZjdzWHg2QWN1NTV6MmkyL0s3YmhzSGFldkgybjVPMGVZUGYrMWJzZlRMNzhuam5SUWhFTGFOdkFvR29wUU1Xd0RSYmhZTGFwUVNkbHBkRVZERlFwbVpoMHBRa0VWQ2trcmhkY1RRQWlCYlJnNE9LaUtpcWFvSkMzM2Qxc2JiRnVPamFhb3FJcEthb2RqUWdqU3RvR3VhT2lLenZxMmpYekNLMGVaNHFFa1ZYVlZGOXRDTFN1bTZMRUh5YnJxQXBwLzhDRHBlWXR3SWxHYXYvY0xZcysvUnY2djc4Vi93bGhDWTRjUS9FMTN6SVoxU0FOOHlWNzR4ZzBISVBuaFhGcCs4QkRwZVlzUWZpODREcDZoL1NuNHpiMzRKbzdONkV3V1F0WGNleCtnYTIzK0NsaXdDaDUvQmE2L0FDNDRHVXFLQUFlS2RaT2JTK3E1SUsrRlYxb0xlTHl4R0FsY1g5VEFCWG5ObEhqTTdjYW1DZzJOOE1wMCtOZGtXTEN5SGJmNkxveDBxejNuRjRJVFBTRk9zSDBFUFlVVVhuWUpXUk9PUlEzNE0wRHQ3VytWN2pGZlkyOWZ4M1pvZnZ0ak52M2YwMFFYTHNkcWk3bDIyZzRPcWZTbU9oSnJLNGt1V2szWE82Nmk0TFR4aDZSMlVrcUpsSkp3T015amYvNHo5L3p3aHd3cEt1THk1bVo2amhvRndPWHZ2VWV5b0lEK1E0YncwUDMzRXc2SEQ2MlR4QWFsME1KemJBeHRZQkxQNkFST1RNR3U5cmhMdFVjYWZVZ1M0OU1BU3BhTk1TZUUwNlM1WURFSHVHUitVdi9PQVQ2OCt3QUtEakdQRHdFRWpSVE9Ocy9tZ1JVTy9OOXV0eFJmdkUrMktpNmZjMXdJc0ZSSnlYZmo1STZ3TVpPZ3B4VVFZS1lraGFlWUNBMmFIdFJRNDhyblAvRWVycjhueFVrUkN0RjBoT043bnNBUFR2MFpSYUZpZnZQdXorbFcwSXZpckRKbVYzN011K3MvWlc3MVRWeDl6QTFjUGZaNlZKVnR0VjVIV2dXeUtpVGpzNkxjVk56TWNaNHdTejlOOE85WGtueTgwS1N4VldLSUJrYU9HTUVwSjd1NjEvZS8vMzJzejhuVDY5Tk40K3J6dkZ4d3NvOU9LWjNFWk84ZW5PT2ZMK3RrYXh2ZXF5OGorUEQ5QUZnelo1UDQyYS94WG5vUmFyOCs1RXg3azlhUjQ1RjE5ZUR4SFBUYVNzZHhzQ3lMcDU1NmlvVUxGM0xPT2Vjd2RlcFVUai85ZEY1KytXV2VldW9wU2t0TFFicUEyS2wxRzJoKzQyM2l5MVppdGJyNnFwYVhTM0RRQUFyT1BnMWZ6KzdnT0pTV2x2S1RuL3lFbDE5K21lSERoL1BnZ3c5U1hsN092SG56ZU9xcHA3am1tbXZRTk8zQW0zVGJrc0lhbTkrZmRETVYzU29PdWcvNnVVdDI5ajkwZEw2UkFLUXRDV1ZwbkpxZlppTGpDQmUyRWVnY1lHTmpEUnQ5emJ5Ykd5UWFOMXdNc2IxNGh3MTJHVjJWZWpZNUpiQVB6WmtFRWlrOVZHaWJ5UllKTHZQTm9MTzZFVVBtRUZTaTNPUi9rNS9FcjZPUFZzMThZekNJQThjbHVqK3I3d0dKQ3luQnNoMFVSZURMTkl4SkdSYU9JOUZVWmJkdzNUNVR3L3lkUG9iKzlQQUJ2N05iM3lYNS9ZYXBIRi9VbjNFNVBVSEs5b2tpREp6U2JudEJFUkJOMjV6U1UyUFdpLzhoSEkwRE1PdTEvekR1NG0veDJrcWJISi9XSWZVa0VvRlFiS0twRUlhU3o2bkh4ZkFGUWpRMnB3a0ZWVlJWd1V4RW1QNWNNVGc2aWpDdzVaR1haQ0syeGowRjZGNkprUkJrZFROSUNZdU5teFY2OWxSSUdBNjZnSTJmK3RuNHRvK1NuaGJaT1E3eFJoK096MFFQT1poUkZXL1dsK2RQYm1PemptVGFuTlcwaGVNRUExNE0wM0w1aEFCc0c1bE80OWlIUVc1K2V5MHVBZjZRaXd1YmpNYzZUQzVYeFQxSDFQcFR1blE2dkI5dzljNGZzem9mNXMrN3BHTXUyN3QzYjBhTUdNR21UWnRZdG13WjBXajBxTy9wZjRRMEJYUy9RNisweHFvN2UrRDNSRWhaZ29iWHV0T2p3SEVoOVE2MTZGTUEwMEhwR2tMcEVjQnpiZ21KZjFUakZ4STkyK1cxanBDa05pWUozTlFGMFNPQTB0V1BzeTRHdWdKSDA5d09lL0xxS29XRlFVb0tBdlRybHN2d3ZzVVU1ZnFSU0x3ZWxjRTlDeGpTcTVETjlURUNYcFhHdGhTUmhQRzVvbFlnVVFUWXRvWXRkWUtlQ0NmbUxlUnJSWXNZbmJ1SkVyVVIxWkpZQnNpOExvUjZua2lnNzRsNFNnZWpGL1FFZjU1Ymc2aTRVWVBkOWt3Uk9DbVFxVXlmbE05eGJXM05XSEdTRUhrUDRqTWhOQUh5TG9leTdsRC9XOGc2R1hMT2RNL1hPME4wT3BUY0RXb3UxUDRZWWpQQlR1N2NXT2Z6N2dNdS9LWHdndUlIR28vc3RYREFQaVMzT0FoMFA0VEd1ZGZVL1dDbk9oNGJ4QkdvV1JaV2kwN3lreXpNT2c5cWpvVlo1MFVvOG9ndHBGR0VCRWVoVjNhTTg3dlc4OWMxM1VqYkdyTWFzekt1RlkxczNlS1dQaHVadkttRWRaRVFLQTdPUWJDYlJNWTNsUmZJWW1Uakd6UkY1aElhZGc5cmw1cG9Yb2RFV3hwc2hiREhTNjhlM2NqTkR0SWlsMEE0VGx5WWFFRVBpNnBiR2RmL1FxcHFaakJpb0JkVmRYdFB0TWRpa2RKOXZ0S2lFTmRmT0pLaC9VdXhiUWZUdEZtNXZwRVo4emFRU3BuN2VWMUpsOUpzYnZqNkNBYjBMTUxPMUhJdFdWM1BSNTlVa1RhLzNJL1NFdExiMDdqZW1URjFBSFY0LzZETTQzc2RCMU5SNlg3bGpSeno0VXRFemVYa0RSeEtqUTBlZGUvWGhkQTB2SG01NERnVUZSYlIwdFJBZmlDYnJNNmRVSHpldzQ0bC9NcnM5cFhRS1phVUNSNGJwV0pvKzdaOFphWVp0Wkx4V1h6Wi9IZ3MrTVo4bXdtVjdTdFlGQVM5RkM5WlFtV2huU0NKdy9YZWZQcHBQdFN0ejdxakRpVUUvVFFmNTVQRG84a20xanRwUm1nQmVpdGVhbXhyV3grd2cwMWJ4ek1WYWFOMjFXeldmVFlMUGJlY3NXZGZpaitVMnlGNDExS0NwdGhFRWtIZStMQWIzemgvRmQ5NjhIalNwaGROTWFsckNqQjVSbmRDZm9zQlBWcFp2ajZQeWU5M3A2WXBpRVM0TldYU1FzM05ZOWduR3lrcURHR2FkdnZrR3hVWGY3azhzOTBHbzMxYUU5dzdkeFBsa1RSUERpckZsQmJFVW9mZXR5aGNYU2M3bU9ENDNodXhIWVhCbmVyeFlnT1N3WjNxbWJhaUJ4UDZWTEdpcG9qV2VBQ3hBMDZxcWlqWXRvMFZTVEZzZUFYM2ZHc1NFd01tOXNPUFVELzFROHptQ0lxcXVCZ2VPeWo1UWxHUXRvMFJpNUExWWlobDk5eE0xYWhTSGw0M21Xa2JQbVpMTXJMYnM3N2szejN2VjFPaHBRV3FMbGxPWGhra215UStyeVFWaFRmZWdUOC9CaFZkNGV2bmdCQTJScFBDMXliRktKNzZKOGFzcWNBS21JaDIwbTEwL3Zkb2FmMDZETXRFQ0lFaUZOWTJiK2JSZVMvenJXTXVJcytmL1Q5dEMrZGw2ZTIwUjlWdGNSOGhGR1E3NVYvdW1ua29qOVlSSGpMeVNac3h5VWFsdHhISi9UalZjTjVib2E2akZ2c0tKNGRWK1l5UnRwWWhOSVBqL2lxWmV6czQ1bGQ2TEw1K3cxOGdOOFFGMTU3SzNTZVB4TDk0Tm9rM3A3RWthdk9iVmg4M1hqR0pQK1p0QVFRZnJtamtxWC9PNUxlM25VR3ZvWDFwZk9FbDJCTGpUU2VmS2V2akVOOUN3eE1wL0xrS2x0VXhmZVV1M3NXTzBXYlBKanJsUFpaazdKanJyL1l6TkdQSFROM0ZqcWw3L2lXc3o3RmpoTG85L3ArWDYyZFl6d0krWGxhSFpkbXVmYU81OVIvU3NsR3lBL3l3UjVxd28zRHhGai9FWTN1dU1aWVM0ZkVRZjI4YU1wbEV5YzhIS1VuTy9CZ1JDQ0FDQVp4WWpMb2JianBzY2I5RkptZy9wbmNKcHczcnhyd0ZHd0U0N2Z3UkhOTzdKRk9TZlJUdFpHK28yOThmYm9jSlVRR0RjT1VXTENuSjc5NEpJWHd1TU1hQjB1QzN2dlFVTzVQQm9pQjQzWWl3ekVuemNMQVRRMVVmTGRKQ1FYeXgvYWVBTk1Gc1VzaVphRkp5YllyRy8zaFJnaEluTGNnNzNVQXRjRWl2VTFsL2V4YXA5UXJDeHo3R0k5d2d2bFAzRUNJd0RMdzlRSGpRWkJoNzQ1MDRoWGZSdWFnZlQvOTBMTGRjMElzNy83U1F1Yk5yd085QjkydFlsdE5oRHMrT3VLcXFLTWhrZ3RQR244cDNMcm1aWHovekorTFJOb1NxYnN2WGt0SWhKNVNEYmR2RVdocEE5NkI0ZlRoU2ZxVnhpaDRyTjhWcmZXeWk2VFl1V1JobmJMb0p6emlIOGNzYldMbTBpbGY2Qlhtb24yVE1GbHVreGM0ZEdRV1FZOVR5amRKWEdWdFloVTh4bUY5ZnlsdE40eW1QVnpJd3NJWXVXVnNvRFVUSkNkaTgwVHFjRWM1NlRpeFlqbDlORWRBTUdzMDhua21kU2EydlAxTHFZQXU4eVJwc1BZRGx6VDRvZmpxaENxU3Bvb2VhNlhmOE82U2lCU3hmUEJndFZZSlEybWhzTEtkaVdCZzF2NWxucGczRGRsUW1EdC9NSy9kUDQ3b0hKcEdTZTA3TDNYMk5iODJqZFVBb2JEWjgvUGRUV0ZZTjV4NnJjZU1rRDUwTFhabHAyKzFlVXJsZjVHUjhRZWNySVM3VEMrajByVzhUR2p0cXUyUGtJTkgrNXZNckFxUUIzUW9sazNxQlY0Rk9XU0E3UTMwMXFCYmt2Z2YrS3BjSEgrcjRyb0pEMzl6Vi9HVGtMNWpVNVQzeXZTMjcyUGNtUGpWRm5yZVZFbjg5eGY0R2Z2N1pUMW5kMW5lSDNQTjJrTWYvZU9hQU9ib1FBa1ZSTUUwVEtVSDM2RWpIMlk0cGVTQjAybGtIc0tnbHllWTJvbHZxTVdLSm84clhWNURVdmRFb0VpbTBxaFRLYUpOQVhoclY4T0REd0pObkVWQU5qRllEdlZLZ1pDQTNqOEtSSDJyZWFPTVhTWEpFaENLMUNhOWprQzBpZURGd081SWVHR21LU25sZUNaUDZIa051SUlSSDFmbHczUUpNMnlJL2tFMnVQNHVVWlZDY2xVZEJNSWZ5M0JLbXJweER0amVBVi9QeS90cjVYRGYyYkFDcTIrcXBEVGZ6d29KM1NWdjc3aXRSaE1DT20zaXpQWGcwaFdoREVqMUxaOUxQRndBU1hSVVFOY2txOW1OWUR1bUlnUkxZUGNkWlZSeWtGTmpKSUNnT0Uvdk81NGNUWG1QU2tNOEF5Y2ZMQzNoa1RqWWZyUGRpUzBHMjEwRUlpZDJPcXI3WDQvRDkwK3ZvWDViQzNyVzV0d0JwU0NJeldtaCtvUUdyeWRnL0VENHBYZHcxSVZDeXMvSDI2VVBvdU9NSUhuY2NubDY5NEtXWDl0b1FNVlY0c1ZlS0xkMWlQSERtMll6dk1USXpGZ2VSQS96elYxK05UU3QyL1Z2aVJLSVlVNlloNC9IdCtQZW1oVG43MDB6QjJzSHZJMzNSWlU5QzV6eHUrODZwZkcxb1Q0eHBINUorYlFwVnBzNGZrNTM1K3BVRjlQSHJDRVhodGJtYitYREZRbjV4OHpqS2h2Vm15OStmeEE1TDV2cDY4OHhhRXlycklWc0hkWmMrUEk2Z0tOc2dLemNPS1ExaGJ1UzllVjVPR0dZd1pLUkZRWmJoOXBiWkM3cmtrc1ZmWUVWN0tLV2U2WitPb2FoWVIwcjQ4KzhyT0duRUVoNThaUkZnY0JTQmQyOThlM3RZME5MQjJieVorUGZ1Z1VUU1BkbHg4SngzTmdTREdQOTVFUnlKRkc3Y05malEvYWpEaDNhb1FlZjhqelJiazlKQkNJVzY2dFY4OVBwREZIUTluc1pXQXlRc25qZVY1azBmTStHY3V5bnQwbS9idVlmZE8zd09henljcVRqTFRYcHBpRm9kZG85Y05YQkVqcThpSkFuRHc0Uyt5MUVWaDdjL0hZY2VqSkhsUzJCYkpzMkd5bmYrdm9sWG5tbmh1NXRmWVZ4NE9VbkZRMUwxb2tuN2tDMUFBY1N6SFZiK3NZSk9qa0xaYlRYWVczdFNmRjVQQWVtR2M0UVAxcTV6dityZEMyUTZneDhoOXZHOEw2SHhRd3JiWlIxSVZCU3NqQzlMUldHclludGdxK09qbVh2V1JSSEN4ZjRBUEgzN2tIZkhkOUI3OWFUMS8vNkVYZCtBa2hWeVk5MkhLcloxaE1YWlA3M0h0NS8rUzRtT2doZUhwSlEwQUVsVm82S2lKMDQwZ3RsUUMzWUtUZEZRZEYrbXQ4UCswTTUrcEYzOTFWK016OHAyZk5idjdJRFArb1Y1cFJLRVFxeTJqYjh0WFVLc1N3Rjl1cFVRcWU1UHhPbEVjMmtucHZicHptWFpCWXh1YUNQSDhmSDI4azBaREpvdlhtc0hvMThGUWlFV0Q4TXFtL0M2TS9FUGVvN2F5Rm8rZWIyRTRjYzBFZFdqb09RYzliTWNUcnFLWlpOZXRZSFU4clhrWFhNK251N2xDRTNGTjZBMzByQ0p2UGsrWnRXV2JmV3ZBaGNIUTkyYTAzeVFKbE1jWWF0RzJnY2kreVZDMWJDYnBpQ0VqZ2lOY0wrTnZZMlVKbXJoMlVqYmFsY05TQkZnbXphRCs1UWdnYWxUbGlIOCtpNzdXMkRaRGs4OE9RZUNYb1NtN0hSY0VSSWhKR1k0U0dHblp2NXk0MVF1T1dVRm1HQzBLV2lxZzZZNldJNExqaHp5R1NBT0hHM2c5Tk5QcDdHeGtWbXpadEcxYTFkTTArTHZrMnRZdHQ3Z3dWc0xHVGZNVDJDVWduK2dRbks1US9oOW0rUnlCeWUxRSt6NlFmV1phREZZSkR5b1BSVktXeXljR0lUeUxCYjA4dU5mWnFHbEhhUlhwVDdXQ2toV0NvV1dlQ3RPT29IbVdOd3c5RXpxWXkzSWRBeFYxYkVQbXh3YVYwSFVSNHpFZC82WmFLT0hveGE2dXA3ZDFJVDE2VUpTazkvQ1hMQjQzeFRHZlNSZnQyNzR1blhEYW0xRi9mblAzVGhuMTY3a24zYmFrY0ZBRkFXWmpLTldWQkM4NG1LODQ0OURMUzRFVFVNbWtwakxWcEI4NHkxUzc3enYrdE0wOWVEcW1vNERRdUFwektQeHAvOUh1cXFhTy85NlA5MTc5ZUxDYzgvRnRtMDBUY095TEd6TFJ0ZDEvdnZxcTR3Wk1aTHBDK2JUZjk2YnJQN2E1ZGkxamFoNTJVaXpmVzFQVjk4SmNINEdqMU9mUFp2RTFHa3NqZ2dlYUNyaytxdjlEQTk2QVJjLy85ay9mY3BEMzU2d2s3N3pwbDNPMVBVR3RJVzU2STRSK0lNZWJIdjMvRDVIS3ZqVUpCSkJYYW9UcXJCSk8xNWVxcjdTOWMxTEZhK2F4cEY3ejJ5a2hFZ2tUVlZWbE42OWM5RzA3Yi9WTklWRXdxYXFLa29ra2o1YzArZStsR3lnVUxFNU14RGo2NkVvK2RFVXI3NlI1S2szVWl4ZGF4RlBmdm1MRmVRSUx2cWFsMnZPOGRDNVp4RnZHU2Z6WXUzSndDVmZVZi9rUGw1RUtFaHB1MzZ5akIrekl4YU1vaWpvdW9acFdxZ1pQNmhwV09pNmhwMnh1Yjd3ZUdNVEcvOHptYmhpd21HTW5TT0JITDlLd0NPSXBCeTh1a0FWZ3FCWEVQUW90TVJ0MHBva2JVbXlmUW9KUXhKTzJlMGk0WTY0OFJVQ2FWdkVXbW94VWduTVZKeUNZa0duYmg0c1U5S3R0NWZXbGppV21TTGNVSVhxS3lhL1V5OXlzM1JPSEZGODBGdlMvdUM3VngvVy9PQ0hQN3FsdysreGNmMkhOTlhOd2V2TkpUZS95MkhyWHorZ1pha2VXY0x5WU5RdlM4Q2pxbGo0U0ZrV1p3dzdoVXRPdTU1WE4zeEdvN0VDb2VqN0pZODgzaUNGM1NZZ2hDQ3k2WFdzOENJOHVrVXM1WkJNRytpcURYWVVrV3drVWEreVBGbEJLTHVBZVAwYzdOcGxyRzdTUUVCZTNscFNvY1g0Y2djUURUZVFIWjZCaUMxQUtqYUdKVWltYlF3TGdqNkJnNGFXTzV5OHJ1ZFEwUFY0ZEcvZzRLd3JqeVF3M3EyMVRIemlSYVk3anM5S3ViVlhlc1l6bVpMODVORWt2MzBpeFE5djlQUFhId1g1OWJlQ2ZQZjNNWjU2dlo2bjB3M2M2Q3ZsdWtBSlhhU1BxTFJKNDdnMXkxOEpKOWJuQ1lyOTYybjlSVDhSVzN0VUtZSXpUeDBBRXQ1OFp6bjRkSlJkTm9lTEhuOTQ1SmY3ZlJvbkg5T1o4U1BLbUR5dGtsV1ZyVlJ1aVJLT0dvUmpCckdFeVl2dnJFY0lRVnNralVUd3pCdHJBRWtrYnFKckNxczJ0QktPR2FRTmh4RURDcm5nbEI3TVhWTFB0TG5WSkpMN2FMZDk1ZXIvQklyUGo2WHB4R0l4QW9FZ0hsM0h0bTFzVmVEeGFFaGRSU2cyQkgxNFF1V0FSRW9MTFM4SHc3QlFkUStxMTRkaG1pUUNXWVJDSVpUOXhKU2Z1OHBpVTZQRDhpcWJiNXhtY1dOM2t3SEJCUCtvTFdWNld3N0cxdjdpbWNVZVRpZjR1R281V3lMTkxLM2Z5TFhEVDZMMzVWZmg3ZG1MOEt1dmtGNnhER3o3Q0o4aHQxOGJnSWFyQWx0QVhJRVBzeUNxUWxYSUxTL1MyVFBzajdSdDdKWm10THhpVXNsVkpIeFBZcjNWblU2eE9NS25jY3ZObHpGbi9DQWV2Znh5emxtNmd0RWVEY08yM1Y1MkIrRmR0Vy85K0N5K2Q5Vm9ldFd0eG43NkwzeFluZWFmWmhjbVY1bWsxMnpoNm90UzZNSU5uZHFHeVd1UHplVE5LWXU1K3BvSjNIUFhQVnhVdDRvTFhudWJ1Y1VXanliTGVmYlRSbmNCQ0lIRVF0aFpMUC9FSWFqT0k2cVZNaXlyaUtMRUpsNjBYNmUrcHBpYzdDczQzcnlZbVFzYklaQndpL0E3aU92WDF2YWh0bUVBdlhwTW96SFNsMDBiaHlJZDZGcitHVDUvRStzMlRLUkxwMldVRmxjZVZHUENYWFNpSFMzNWppZXZ4OE9nUVFQUlBGNnN5dlhZelUyZ0tHaUZSZWlkeTBtdlc0UFZVT2NhbzhFUW5wNjlzZXBxTVpzYXNGdWJzVFp2eERPcUIwTktlMUxWVmtQS05oQUhFTGJadWdtOVF1RjZYejVyN1RUTHJCU3FVTEdSU09IV2N0UTFnaGlnOE1PYkEraWFRTlZVQ25NVkxITm5YUHZDWEdocWNiaitvaUNtS2ZudnREUjFqUllPeWphYldNMGtmdzNTZkZ6dnk4Y3JGS3d2RWVRZHV0OHllUXltcFpKT3BhRnBKbHBPT2NveFB3VWs0dTF6b0tDTWhKbUhtYlozVDBoc0I4VXFMU1ZKS1dteGJUNU9wOGhWRkc3UHppRWhIWjdNZ0g4TzhuaVk2UFB4NTBpWU5zZGh2TmVIWDFGSWI5VlN4WUU4d3Y5b01xT0EwT0E0NFRuWkpLdDlGSi9kUk1tVlRUUy9uWTl0cW1nK0MrbUlEdUtzRVBBb1hET2hsSTlYaC9sb1paald1T1dDeldRRVdjOFNQNFZaKzJZWXFvcWdLRXVuSk5mRDJ0cmtmdkdHay92bHRNUFlDb1JRdHlWVktoa25hWHRzbnIvc05wWUtObHRScFV5NjBFb2ZwNW9oTkRKWXQrblRvNERPSS91VE8rNVNBbVBIb1BmdmorTDM3NlowSU4zQW1oQUM4UVhLNGRhcDhBYURISGZodFN6OThHMmlEWnZ4aEhMUkhVbHgxNEg4N1BGWEtTd3MrdUtoeVRteUFGVnUvdDRrN3J4OUtMMGFaOEdUMzJQVk9vWGZSTWZ5N0VvZmRrTWRWMTJmQk9IT3M1TTJlT09GT1V4NWFTbFgzRGFPKzM3NEtPTWFaL0g2Q3k5UTFkM0RMMXBHOE84UEV3amI1ZnFxcXZET094Y0JNR1RJRTlpMmsybEl2RjJ1Z000TEw2eWlzakxNekpuVmdMNnRVZW9YMmtBUzRnYkVoSWRHbWNjNWcwYlQ0TTFsbnBtUGFzVVJqblNUN0E2RDhRM3E2YjEzVWdzSFRYSDJjRndTMU5QNDlaUUxFdGtPRk4vTlVEK0E2OW8yK2duajhGOXhFZkZmUEl5MWFLbTc1N0pDcVAzN0lCdWJjWnBiRHFGTUVFakg0ZjI1TmF4Yzl4NHQ0UlRqUmhRaFpTbTMvVnZoa2V1Zlp1TEF0UngrdWVLU2RKdE55SytCUjhHS1N4eXY0T20zWFFDdUgzMm5DR2xJdEpBQ0JpVGI3SU90ckhOc204MWw5ZVkreFVla2dNdnFUVjR0MHBpWnB4NnRJTnpuL2JhVk1YVGNMU2ErOXNldjVOQkoweVJkdFpuSXRKbUUzM3FQeEtKbE9MSEUvaFhYdGZlMFpoaFFnU2VQcUJYanU0dC95WXZWYi9HekFkOWxiUDV3MTNEejZDZ2VIY2N5VVRTZGhsZ0QwZS8rQm9DRzg4NGxsTlBkUFJZS3V0dktBVTMzTUs5bEVUOWI4UWRtTjM5R2xoYWswSk9ISmUyamUra3dvWnQrZkE1M1hEV0d2bldyU0QvOUtPOVhwM2pNN01JclZTYjIyaG91LzNyYTFhRndHeVM5K3RqSHZEcDFLVmRkZlR6MzNuVWZGOWF2NHB4WDMyWm1zY01MaVc0d1F3UFQySmFwdDdXaHBBUW1WeTRocDNVK2EzLzBXK3hBTHQ2YU1ITEpZbjUrNW1sN3JRZDRQQ3FLSW5BY01FMkwydHBhYW10cm1UNTlla2JrQ2lvcUtoZzBhQkNqUm81azFISEhNaWljb3VEWTBRUTdsK0VyS0tEektTZmk4L21KcjYvQ3RpejA3dVg0aHcxRU9tMUFDS3V4a2NUaVZXU2ZjanlxcHljRU11QUdNb2swSzNITTVUanBSVWhqQ2RKY2g3VHJrZkx6Z1F1VTBKSGxRUGZrNUJ6ZUQxaXpqdzVXSWJHa3dEUjBodWVIK1Z2LzlZekppNEVmbm41MUlEZjkvalJTelNFWDZWZDErVkpUUXpaTEZuZmxMNitONUIvZm04clY1NnpnNFg1VlhGTFN4RGRYOW1SaFN3N28xclpyZHhTWkZydzdMOHJjWlhFdU9TV0hiMTljd0tDZXZvUHVHMjBmRHdYb0lvcktCbEpLQ05XVGcyVWtzTkpWK0xMeXNiUUNrQXI2a3Vra2F6YWhlcnpZNFNhVVVDNmVtblZmV2VDMkkwMEZiWnM5RHhEa25YZzhiYlBta2Q1U3k1RThOWW9RQ01Oa2VQOXliai92R0dZc2VZcXlZQ2ZPSG5FK3lhcTFySG50RmRUdUdsdnNOWXdWNDFDQ1hXaFk5UW1CelRXOC8wNk1mdC9vd2VEK3g3Rnl4U2U4TnZmZmZQMjBTWHowV1RVTFZsYURSKzJRSm5jN1VVRUJUSjRNVzVzSC8rQUhNSGl3Vy9XM05YaXJLUERLSzdCMEtUUTB3QzkvQ1RrNWNQdnRCM3g3UjRLcXc1SUcrTDhsY01kSUNHaFFPUk5xcW1Ca05oQ0Q3ODREeHdEVjQvN0dsbTVqazRkSHU3cmllVE5nWFFONEFtQkpNRE9BVys5TWN1OHo1RFd3blF6QTE0NTdSNE1YS3FGeU1zeXNkei92elppYmpzWi9xaTZrS3Q2TnA0LzlKbDJEMVRoU1FSRU8vOWw0QWQrWi93QmhJM3Z2bkRvU2VtVnY0TForajNGSnlYL1I1MGFvZmRaTGNxV3JBNGxkM1grT1c1Q1pNOEdpOEFxRFRaMTc4b3UxTi9KUzFYbEEzazZuanVoZmRnQ1Q0OUMyT0pjdGl0Z05SMHRSQk9XZGNzbnRXN3BuWU5CRHdCQnpkTUZOWFZWdUtGY285ZTVGVEVxNFk1cWNGeVg4UWhOR1pab2pOc3Y2Q0tGYmZuUW1kMXc5WnFjNDJsYTdZZWM0R3J2RTBZN2ZMWTcyMTJRNXozM1doRXlaMURiR1dMeTZqbWg4TDRGbkZFRTBickI0VlIwMURkRzlpbDladGtNa1liSzVMczRmWGxoTmVYR0F0R0dUTW83YXBlMUJUa29na3dJbkpVaCtvcUVWT2lEQmlTbTdLendLcUpualZ0UFJobTVmRlZwNzFoVkg1b01MZ1ZaY2lLeHJvUFRlMjJoNi9IbGFHNXRSczdPdzI4SUludzh0NENjeS9XT1NzejloVnBlUi9ENHdpclZhUHJreWhTSmRvSm5ENGxVQWFTbElVM1B0VzF2aGUyZTZTQW0vbjNJOFVuR1FoZzY2aVZDZGcyS0xTQ214a1NnZUZjZHlHRDZnakN2UEdNS2tjVDFwaTZRWTNyK1V4LzY3a0xVYkd0MWltRU5vSVltTW51Ukl0N21KOENqTStyakJWVkw4Ym94WXBxV3JjT29waENZd05sWlF2N29YRjV6M0laZWRPSjNHbUplaWtFMWpUR0hDWno2KzI5WGtraEtieDJzMENuU0pJM2NHU0pGQVNJVmFRK0JYSmFpU3BDT29UQXFtdGFoNGxQWlNiU1JTYmkwdUVxUnFGaEJiUFFVMVZJTGlDYUpsbGFIb0FleDRJMGJyQnBKVmN6RGE2ckJpTlFSN2pLZGcvSGZ4bGc1RktOb09UOTllVzlEMTcyMXBEUFBLQjh2WVVOUENwWk9HY2VhNC91U0dmSWRrTFR4L21MT3RDYnQ4L3NhOXAvT2RLMFl4cUc0MThYLytnZWsxQnYreXkzbWwwc1JadTRsTHpvbGhwUTBBWXBFRXIvNzFmVjU5ZlFGWFhuMDg5MzduTGk2c1djRnByMDdsa3l5SFA4Vkw2RFRoWWNhT0tLZHpTVGF2VEZ1SlRKdU1IOU9IcGtnTFAzdnZ1K2lSZ2ZRclBoMmo3R1BlZWMxTHZQaCtpbzdwejRvNTR6ajIrTi9TZVdSWFJnM3NUQ1NlNXYxcEsvZDVIMjcxSWV1cW9FdU9ScTQvUU84Q0Q3TTJKVmhZbXlKcE9uaDF4Y1VNUHFyNjcwWS9QNkZwLzV4VFhrbjFDL2s4M0NYSXRXME9JVHo4dEVRbFdUU0lYODVaUzBVcXpHL0x2ZHkyTVVhWGUxb2d2WCtKL0wvWXpUN2RmNXRVVVFTb3puYS9sTndod1Y4SWhDSXl1VG1IMWdFbnBPc2JPSEVMM0xoU01MQk5vTmdPeTdwNjZYYlJLZVIzSzhjeUxlS2ZMc1V4RElMalJ5SGFDYlF1V0dIcy9lWVRZRXRCM0ZESjlscTdPR0FPYTFVT0tjSG5zUms4b0FWZGhGbTJLTW5MakdEaGlnYkNqV3NaZjJ5Q1RzWDJObE96M1ZTM3o1NDVvdmlENHZXMmovTm1oODIvdmFqbTRPckRXeHM5UnViTVk4MDNicUg4cnU5UmNzWEZDSTlucC9QQ00yZlI4UFR6ZFAzK1hTVFhyQ05yeE5DRDVndFRpaDJjSm9YVU94NlVvQ1J3V1FwcENHUlVnQTMyWmhWem5vNTNVaG84ZTNacVNBSDJEb2R6WW9LOHFHRG9Xb1dMWmtBa0tObGNJbGxaWWJPNHQ4T0tDcHZxRWtrNEtMSFZ6OC9CT3RMNGcySHNmUUdPWlNzRVBQRGMvTkcweElMY2VQSVVobmF0NUpNTmZUaHB3R0sydEJZUTlLYnhhUVkrM2VEV1U5NWlkVzBYL2puOURKNmJQNW9mOVZoTklxV2hxUjNyck5nSzNuVHk0S1dNNzcyV2YzdzBnZXFXZkRhbHZVZ2h0eFVHaWN5L01pTlU0b2FIUk5vTFFsSmUyTWhORXovaTQ3VzltYjVpQVB1YnFmWDZSNnYzU20rUEp0S0VZNm5kMTZzUU5MVEVlZlhEMVhoMHBjUGRzemZmKzNYdXVISWl2V3ZXWVQ3MkNCOXNpZkdZTEdUeXhqam0ydFZjZWQ2eHFKbENLVE9SNHRWL1RPRzFOK2R3OVZXVHVQZXVPN2lvWmgzbnZUcVYyVUY0d3RzYnFXbHVrNnlNMGlCdEIwL1F5OVNlNVVUdEZGbERPM1BPekZLeWxSQS9ML2F4dE50OHZqdjRZdlEySDJuSCtWSlhaa2ZXSld4ZEhJNlVtRktqb1hrbGwvOXJEcVlTb0RhZUlwc29wcjhIaFhtbnVFMjlaZnYzVW5mell3V0dMVkYzWHhxZlM3WUVqK3FXWng2VU9zU2pkc01CY3Fzamg5YWZjKzBCdjY2MExLeUc1bTF4Q3F1aG1hb2I3a0JvV29ldUpiSERXbFdGeEhJRVFuRlFmVGJWc1FDM3p4bktIMVpYOElNQjY3bXV4eGE4SGdNcnJTTVI2TGtPZHN4OVhpMVhZa1lVQkJLdjEwQ2FHdjllWGNIOUszcXl2aVVITkJ2TloyQkxnZFVldFN1S0FzR2dHNTkrNEFIbzJSTkNvZlpSdWxYVnZkWUpKMEI1dVh1UFlMRGQySUlpb0hQQUVoZVdSK21SWmNwbk4yYkwxN2VFYUU1clF0MDFOMTRjNXZ4RUhQenRyR2JKOXBrSWRxNFRiTGRuYld1Zjl4eDAvYlZVL3VLMzVEdVN6VUpCb05Bamt5TldMd1FCb055QkZwRkY5K3V2N2ZpNWxtQzNSV24rNTh0RTM1bjE1VG5IUXJqNW5va1VzWS9tMC9UWC8xRDJ5MitqbHhTMGEyMnNrbnVZNXhtR2ozQnh2R3RSaVpRb21rVjlYWWdYUCtqSEo2dktjQlFUTitBcWRnZWFFcUFvRWpPbDhNYXNudWlhZzVVVUtCNXo5Nll4T3l3MlJ4SE1YVmxLeU51UCt2b1FRazBqWmNaSWxIdkhuQ1FTVzNyWjBuUWRlZjVLY29NTFNac3FxcktuYUpCYkl5aUV0aDBsVkVxa05OMWF3UU5teGpzM0RVcWtyVjJIRjAwUkJMeXFHNytRa2tUYXpnQkV1K2M0RHBpV1E5Q3JZVmdkRzltSzdQTDVsaCtkeVIxWGphRlh2V3RmZkxBNXpXT1dtNjlock4zQ05WL2YzYjU0WThwaXJybDZsM3lOb294OU1YOVgrMEtpYWhwbkg1TmdWdUJOZW5jZGdCSFB3YklGSldXdkVQQTNvcmVzcERsZUFWb1JVaVk3ME84bmRtSlZTU09KMytQZmxrTXE5cVZMNUVFUXhVSlJ5RXZIT1BtVVBqU043VUZremNkb1dwRFdZMDdscExWUkZrMWVTcU9XaFhBNkprWWJsdzdOMGliaTJFeE9oL0VpR0tVSENBaUYvQjJTMXdRU1JjakRyc1o3NjVnTTBuemNuMVhLakhpTVovN1p5dHNmdGZHOWF3S2NkNktYWUVEQnRqTTFDVllUZHVRRGlIeUFSODJpbjdjbi9VSmp1SExRV09xWndLSm9rZy9xMXpDemZoa3IyellTVGtjemZGTHBJSHdJQVk2TmxBNkt4d2VLd0VuRUNSNS9DcjVqamlmeDBYdjRqejBCMzlpSkpENzZDSXd3U0J2aDlTRTgzbllCNlRuUzZuTHRmUWp5T2RLTkc2NXFTUEc3RHhzNHBtdUF6ams2WmdZY1Z0dHF2emx1bkY5WEJWdkNKci83c0lGZWhSNkdsUGt4YlhsZ3BWcjdBOHF6dFhFRllIL25Mc1NHRFNnLy9qSGkxQXdvOG85L2pIUEZ0Y2dlUGJiNXNuWkNpanVFR3pJM3o0ZW1DYnlhRjcvbVJ5SkpXU25TVmhyTGtyU0ZqZmExTVk0MmRqOUtSekJkZjI2WGRqSG5IUWx0VVZkWHpjM1NkK0paQjZJNzNIR0E3MmVyNEcrRi9IbXpTUTlZUlBTK3pXaXQ5ZVFPR0lUM2x6a1VYM3NKbFk4OWlWOExrSDNkcFdqekZtS0dZNGl5WVB1QWpXdWVkakdwaEFyQ204bDVTbHRJdTJPYUVoeHArVHZxRVdiUFh6L3c2MlI1UXJpSVJRcTJ0RkVRS0VMWlZnOHRjTEZtck13eFYyZlpicmVwaW9ybFdDaW0yK3JiOFdnNDBrRWdVQlVGeTNGL3QwMkdmK0V4Z1MzdGJjZGlaU1A0SWJjZVpZcUhnWEVtTk0zVnJ4MkpiK0l4ZEo3MUN1Ry9QRUhiQTQ5aXAwMk14U3VwTytNYWdwZWVUZkh2ZjBIeDd4Nm0rUnRuSVMwb2VQd2hDQ2RwK042UGlmL25EVmRIVVJTVTdDeHlmMzB2T2Jkbi9IK1dEWXB3NzlXTzVEZ3dmd1VzV0FXUHZ3TFhYd0FYbkF3bGhhNHdLTlpOYmk2cDQ4TDhaZ0NLZEhPN2tGQ2dvUWxlbVE3L21nd0xWclkvRnFpU0ZVTHhlYkZhMm5hNnVDUUROWkZJRXBrNm5mak11V1JOT0phQ2F5OGhhOEt4S0g3ZlliZFVwT01RbnJXUXFsLy9rOGlueTNCTUUzZG5LN3ZwOUdacmhMYVo4M0ZTS2JTc0lEbmpoeU1PTU8va2laZGYzbStkV1JXQy9zT0hjM3RGQlNWdGJZalNVZ0M2cXlxM1YxVFFmL2h3YnYzKzk3bDVaNE50bitqYWl5NDZ3TVVNZUNUYW9DVGF3Q1NlNDJPa1hzOUZKaFY4WjdjQmtIb2pGK0Z6OEozcmZuYWlLc2FjSUpqaWdHMk5KckYvc1NRaEhRUU9qcUtERU9oMmxGa1hmZzFoMjR4NzhXM1NhZ2doSllwaklsR1ErNnRNN0RJbDBySVF1dHNnV1diMmxsQUUwcEZJMDlVUGR6dXVDcHdrK0U5dkk2dXZnWm5VQ2ZrMWREM2pBYlVnMW1hUk15Wk5kSXlLOFU0T1NnaWtKZmZ1K3BtL3R4N2ZTWDlRVkNLcENKUDZuY1lENS80ZWdLdWZ1cGlQMXM3ZzloUHVvaUJZaUxGMkJybitIQXdyeVI5bS9KcDNWcnpHN1JQdllGelBpUm43M1VRVjZ1RmZLeTRGUlI2RHIrZTFjVlZoTTNsdGNWNThOY0YvcHFaWXVjRW1aVUNuVG1WY2ROR0Y5TzdkbTZLaUl0THBORU9IRG1YMjdOazBOVFVocGNUckVad3kxc04xRi9vWTE4K0RaNVdYcGlrZTRpdjNFWXpZc2hDNU9YaE9QWVgwaTVOUkN2SkkvK2RsbkMyMXBQNzJMNVRTRWtRb2hQZnI1NU44NkE4SW4rK1FnQXhMS1dscGFXSGN1SEZNbXphTkUwNDRnUmt6Wm5EWlpaY3hiTmd3cE9PZ0NJVzI5MmRTOTQ4blNLN2JnSk5LYjQrRkNFRjg4VEtpOCtaVGV0TzE1RXdjaitNNGpCZ3hnaTNWMVR6KzczOXowa2tuOGZiYmIzUGNjY2ZSMHRMaSt1L2JUZUNKYlRpemgzcU5kblMra2V0aUYzVDJLZHdSZllPMWE2SUVneHA1aHFTem1lYUtWQTVMUFdjVGpRbjJ5aDB2ZFpMU2kwZFl4S1NmN1JsS1h6YU9Bb0dERkE0NkZnR1Jva3hwUnNvUUdnNkdEQkFRQ2ZLVkNEb1dDQWNOR3hQOWdDem1sWHIyZ1N4MGhLb3d0RjhYSm83dVRVWG5BZ0NxdGpUejRhZHJXYnlxMm0yTTJvNXJTQjNRLzhEcys4eS9MMVI5d0tQR3A3d2NhK0JFZnhPWGRoM1B5THdlVzlORUR3LzJLMEZUVllaNTRSdVBQNzd0KzhjZmY1ekhydm9XYjZscWg0YUhCQkpwNnZ6N283NUVHOTlqN2NacUhOdENTa0hBcjlLcGN4R1RGL1lCelRtaWExa0VJRzJ3RE5mWDM3WTB5QkpEb2QvcE1RcExIYVFEQWE5QUR6b29DV2hyVVBCbkNZTFprczc5TEdyV2FDaDcyd0FtNHlNeVRZc042MnZCY1doeEZRdjNld21OMCtleTdwT1AwQStEc1huc3QrUGJaWUFWUldIcDBxVUFEQjQwd2NYSWJZYzE4NDFMZC80OGNWYnZ3M3kxMWU3MEtmdXBSdy92eCswOGVhZVBwLy9yTUgvZVRwUGIvWko5K3ZUaDdydnY1b2tubm1ERmloV2swMmtHRHg1TVkyTWowV2lVZUR4KzJQSzFBL1duL3krVGxBSlUyTndvS013dlliQVdKTDlsSlFrWlFQRlpGTW93SXpvZGh5aE1ZTVhxMFBJTzVXQm5aanRQeDdFa251UHpDYTZKMHZSYUcvRnZEa0FURHY2L3JTVHZoQnowNC9OSWIweEJ2cjZqQkR3NjRZYzVPVWpTcG8xcE9Uak8xdlRJN2ZPbVpCcXdXYllrWlRwWU94YnQ3NkRUQ1FHT3JXRkxuYUFlWlVMZUVrNHVXc3d4MlpWMFV1dlFIYkIxRGRGdEpEbTlUc0RmNHpqMDRuNm8rVDBRaXJaZFAxWUV0aTNaVUJ2WjdWbDd2QUoyQk94V3NKckJiZ0pyNjMvTjd2ZDJHT3dZT0FtUWFYQlNFSDRYb2grQWZ5RGtuZ2NsOTRESXdOWUh4MEo5RnJROENja1Y0S1F6c1E4ZGhCZVVBS2doVUhOQXpRT3RBTlJDMExiK1YrQityMllEeHgvWmE4RThJRHhIMThxUmprU0VCcUY3M0ppdTZSK0VqSHpzK25pbFBFQ2U4UG0vRmFwRUxUU1Jsc0NzOW1GMVRtUFdlN0RER25wcEdpZXE0YVNPdk9hUUFuQnNCUnlGbEszU2tQSmdPcEowS3NWTG03c0RrRTZsVVB6dXNaU3R1dWRMRUVySG80Y0lBZEowNkZmcXAycWhsNTRscFRUNUIwQ3luc3Y2YTl4ODhtQWE0eFlWZ1o0b3ZoREZuZno4NTl1bkVoVUJRb3JGZzFPWDhmWmFEekxRbVdKMUdkMkxYbUZrNXpGOHNqR080bEVPMlA3TERubm9YSkxOK0pIZHVQRFVBVVJpYVJhdHFpTVNUU0VsakIvWmxaYTJKQXRYMU82VHJ5czMyMGVub2l4T1BxNDc1NTNTbjZiV0JFdlgxQk9OcDBIQ3hERVZOTFVsV0w2dWNjL09uZll5Y0NVVTYyNUR4d2JUMTJIT2hnNnYwOHNzZWljakIrb2RoYmVhMHh5VFYwOXBwd0tXTjFpZzcrUExaV0xXL3B3Y2lscGF5TW5LUXRIMXczSy9yM0FDSE9ra2dWWWZyQ3dXcExWOStKWGpvT3MrL0xxWGhKbkNzcjg4NzhWcnVmZmEyN1pOV1dMdllnTnF4cWUzekVxeTFrNmpJRmhuRzlUWTVoNS9sMEFpRUt5MTArZ0liQ0JMS094dHRDRGE3dGp3a3JhbTlUUXRuc3FxVCtheWR2bEtOalhaMUc2cDVxSmJmNERINTNlQlJUdGdEWUROVGZkUFlQMXJ6elAzaWNtY2NzdFp4SklCckpURisvTTdzV0ZMRmpraGczRE1RMVZ0Rm1sRHpWUS9aRFJLdzZEdGpUZlFzalJNUzNaNGlxT0RCRWVnK215a0k3QXNRWEU4elUyTGEra1NNMWg3NFVSQ2ZYc1FrQ0xUWDFCMnVJM3poMzgrODduK1cwVklra2tmaXplWGNzcUFEYXhyeW1kd2R4ZWJhOTJXZkFKZWt6a2J5a2ttZlFqaDRteTU2UmNDTzVaQ2VEUnV1SFlpMTU4MWhMNUxGdEg2cnhlSkwxaUJ0R3dVWGR0K280eVFGNHFDSFlzanZUcGRiN3lTNERYbjhtSk9IWTh0ZUpUNU5hc3dIQXVoYXJ1TlJLdjA3emJHZmx0bHRUOUd3V2dIa3FDb2J2K2daQXcyMTBELzNyQm1QYUM1K2pzNGVIVklIV05RdVVRbk42RHRvUWJuS08ySm1oTnRMSyt2cENpVWgxL3o4djZHK1lSVGNab1RZYzd1ZHp4NS91ei82ZkZaLzZ2aDdhQ3hDeXlqelRWQ0VVakZpKzR0YUJldldmN3ZkLzc4VmV0WGNIaHJOUmxlNk5IY2VtdlRRbG8yK1haYW5CbmJyQTVKdFhaOU45VDU1bmVEWFk1ZjQ4MTkxbExrNUxSUU5qUDJVVGVCYnZZMzkvcHVJYTk1V0k5R2JKZlBOOTU3R1hkY2VRTDlhamFRL3RmanpLaU84cGlUenlzYll6anIxM1B4eVJQUnozTDF1VWlqeGF1UHZjZXJiM3pHbFZkTjR0N3Yzc1dGdFJzNCs3V3B6QXo1K0s5dkFHaXpRQnE0elpiYVg3N3VhTWVZR1R2bVh6dllNZGZzd1k2NTk2NTd1SGdITytadkdUdEdPcmFyRFNnNjF3OE9jWSt6aUNzR0RXWGFKOVU3MkxJU1ZBVW5FdU91VmZsWXRvUjRlTy82RG1ma3NRZ0V0dVdmaUdEUXpSM00xTDBvdWJtSFprSFVSdmVPT3lxQzNKQ1hwR0Z4M2VsREVFS1FOR3h5UTE0WGwrNG83Ulg1Qi9VN01HNW10Q0cyVENXeWRESFZ6MGZvZXQrMStCUC9ndHpSaVBLVHdWOTYwTGlxamNTcnFteXcwbHdRcnVTWFdaMjRWTThtTGgxTXBOdm5lQmNSSzlPZzVrZzYzWkxBcUZOb2Z0VkQrVThUMkcwQ21XR2RabzJLdDdORHQxL0VXWE5OMW41Z2E3djNWWXEvalZQL1cyVGRBMkNIY1JLZm9oVGVnaHJzaHlQQmNSeU9HMXpJbkg5TzRxbDNHcm52ejdPcFhkc0tlUUZRVkk2RUdJaXFLSkJPTWJ6L2NINTgvZDNNWDdXSWhZdm03SVFISnhBNFJob1JGSHp6bkN1WnRXZ091VG41VEY4d3k4WFMvUXJIZWlZZjExVjRIY0Z0UzhKTTJpVG9ORUpIbFZCdWVyaG1vNkRJby9EaW9GeW1GeFNMbUtMdU5CS0t0Qm1oTGVEU3dldm9sSnVpdGtYbi9lb1RzZng1M0Y3eEhNUExtZ25vSnBvS0M3Y1VVRm5YaGRzR2ZNaXAzVnRkbjRLaDhkQ3FjVlRwQXpsUGU1a2liNWd0aVFJMjFTWllXM29hbGpmN29QanBwRzJEWmhKcjZzSzZUeWRTMnFtYVV6cnJqQjQxRjQ5VmhkRjhDWm94aXF0R3ZzYkRVd3U0OC9jaitPL3Y2cG14c0N2aHNCL2hjZlk1cjhqMWZ3dFFKQUtibEFXTE5rQjFuYzNISzJ5dVBjWERKZU0wZEUzZ3dqbExsRU84RHJmaUw4Ym56R2ZqRGQrajlPNWJLYmo4Z3Qzd0Z3ODNVZ1Jnd0RGZEJlZjJ6R0psczg2Y1ZzR0VycEJWRGVvY1NQZTFxYm5hb3VDOUdMbHpwYXVlSGFLZUJRSkpqamZNelFQK3hobGRwNUNsNzFrSHlmZTJjRWJYS2RRblMvalpaeitqTFozYmJyWDgyYWVlMlM3WDJkemN3dVpObTlBMGpVNmR1OUFsUDVlamRKUTZtc3d2YVdvckFkMnI0WXVraVJrNkh0WEE5S1V4UEFGQ2lRakNrNDFvbG5nZERWTVRibjV1QjFKYnpEZzZhWHVjTDRHQmgyWTdueXE3SzlsR2xMZ01zTmt1Sit4a1pmSzc5NS8zQ1NEYkYrS1liZ01aV3pHSWdNZEhOSjJnS0pSSDNFaVM1UXZTcjdRN2FUTk55QnNnWWFZd2JZc2VCWjBCaWQvam95eW5FRVZSS0FoazB4aHRvVENZaTZxbzdJbzF0RGZrT0E1ZHkwUGNjbG9YUW42TlA3NjVpWFZiNGpTMXByY0p0MTU5Y3ZqT1dWMkpKaTMrOWs0MW14cVNiczJPQkZWeGtGSmdKNE9nT0V6c081OGZUbmlOU1VNK0F5UWZMeS9na1RuWmZMRGVpeTBGMlY0SElhUWJPbWxQZGNNUlhEeTZoWXRIdCtMczZ1TldCRmFUUWZNTERVUm10Q0FOdVcvOWs2VkVPaTcyaUpLZGpiZFBIMExISFVmdzJHUHg5dW1ERWdvZGtOSXphOE44TG5ubVRuNHk2UmF1SFgwK1h1MFE2anQ3bmNleWMwM3o3bnFjQXJKamZGQmZORWRPYlQweUhFRXBLa1FVRjBGREV6S1ZRaHM5SEh0OUZVNWpFOXFBZnVBNFdNdFhIUklzcDEvODVYSnV1MndVZVNzWGtIN3dseXhwY1hqRzI1Tm4xbHUwTEs3aXpITkc0VkZjOHpFYVNmRG5uNy9Cc3kvUDUvWmJUK0gyUC8rVzA1Wit5c2t2dk02OTJSci9HTmFEUDM5WUM3YTFMUTlBSWtDMXFRM25Nbm51c2FSTWhicmFXbkp6RGFxaTNkajRrWi82aUE2cXZWYzZuS3JxbjZzL09xcEttMUhJSTNkL3dMay9QUXNoNFBWZmZFZ3JoU2dlRGNVK09IaFA5aEhlZXMyd25DOWN6MEpYb1RXTXZXSWxwQTF3SEp5bUJqem5uSUVJK0RBL25vbkl5UWRkUjlnMlZtTVRqaXFRWmdlQlN3QTUrdUVkNTZwdVQyTlVRRHFkd295dXBzU2JRNmg0T1NBSmVvUFVSMWRqR09uTVZNbkREa1pJd2phOGJGc2UvaWpMaWlJWTNzMk5lYiszSXJaSERLOERvV1gzUE5oK2RuU214a2phNHFETVp6cWNoK1dvL1AyNlI3alhsK1RFQVV0NGVNb0YxSWR6OFdnV0htbnlmanlYbVhuWGNMNDFpOXVyWDZWM1lnT3RXdWpROVpiTHVEbzh1U2IxZis2S0FwUjh1K2FMY1hNVmFJdEFiZ2s4OFpyNzFmMTNRemdDdWRuc2hET3hWK2Q5Q2YzdXRxSHRNamZRaWtJRUtZSkk2VUdRemQ1blYzMHhqWDVrVHd2UXhjVlBoZWRqdGMzR2Rqb1JLRG1CckNzdlIrL1prNVpmUDBocS9nS1VVSERudnM0SGtZNDBmSi93dXIzSWN4Tzc2cm9RQUZvY20vbFNZUUVLZFk3SkZkLzhCaWRmZkRHT1pSS3ZxcUp4OWt5YTNweUNiR2hBOHdmWW9mdkdEbE9hOGNMdTVWenQxazkzYzVwL2JzVm5YYk1qUHV1WDk5TjlOT0hpc3dySFJqb0txaWJSaFFFSjZOR1E1dnh4STZsTE5EQjBRQVVibDYzRS85NTZwaDgzaG9hWlM5SFRPcXBQQmNQR2RoU0UrSHpiNEtEa3dTSlJGUTBLb3FoYndMR3lLTzBNQlowRjVUM0IyN0M5VjhWUk9sd1VGb2xaMDBEYnkyK2pkK3VNdDFmWHJRNEtJcTlQSi9MV0I5aVIyRTd6dk5PVUg2VEpqRVJpUjlTd0NsVTlnRGt4c092L2pWcDBLU2grWkhxekszb0xUZ01uNlI0cnZnSkUrL2tyYkVjaXNydzg5TWdIN3ZObmViOVFGMVJ6L05nWjdOV3RwS2tPbHFGRFd1T0tNejdoTHpkT0piYzRqWlhwVjZIdjBIdEpRWUlGM1V2YXdHdmlPQWRtTS9sOFBoNTU1QkhlZSs4OWV2ZnV6WjEzM2duQXJDVkpMdjVoTFQrNXZvQnJ6OHJHNnhNRVJpcjRCeW9rbHp1RTM3ZEpMbmVRS1Zldk9aaGtlNkd6WVpGcVVXbk4wc24yV0xUNmREclhHd2poWUdjd0RXU21GMkpiT2taSlZpRUZoZDI1b005NFJwYjE1WjRaZnlQTjRSVEZscUI3OEoxN0dvSGJia1R0MFExbjh4YXNWV3VRdG8xYTNnbmZwUmVnSHp1YXhLUC9JdlhhMjJBYUhjcEVoS2FSZTlKSmVMdDJKVGg0OEI1MXVzUElLRU1hU2J6SGpTWDdaei9FTTNnZ1NtRUJ4cWNMU0wwOUhhZStIaHlKMXFjdlBoVFM3ODlFcHRQYmN4L2t3ZlA5U1Z1aWx4UVJmZUlsS3F0cnVPQ05mL1BwMGlXY012WTR3dkVZdXE1am1pYW1hYUxyT3A4dVhNQ0FzazU4c09BeitpNmJ6cm9UdjQ2MVlEbGFVWDc3NElabTZPWWZuc2tkVjQybWQ5MXF6Q2YreklmVmFSNHpYZjNNWExPWkt5OUlvbVYwUFROcDhPcmZQK1MxTnhaeDlUWEhjKzhkZDNOUjNTck9lKzF0NXVSWlBFNDVNWFZyUDdFdjlNcnlVZU1wTEE4UHBja294cThtY0tTcmp5bkN3WEE4S0Rnb1l1LzBTOGVSdExZYWhFSTZ5YVRGb2tWTkRCbmk1dVF1V2RKTUltRVJDdW0wdGhvZFpyTjNGR1dRMlJtcXA3a2tLOElKbmdUMWE1STg5R3FTdDJZYWJLcXo5MG9OSDk1ZjQvcnp2Snd4d1VkTGJuOGVEcC9GbStIeGJESkxqbnk5ekR4QVBpd1VwTzNneEV4VWo0STBMYmRXT2t0RHFDS0RzZFdlUGNCQlZSVU13MExOWUxqWXRvUFhxMk5acnJOWVZSWFNhWE9uNHg2dmhzakpvdFBZZ1pUbStEcE9FcnozMGdGZm9rdWV6cEJPUHJhMG1YaFVHOE4yOTUxWFZWQ0ZJTWV2MGlWWFoxT0xpZDhqNkp5cnNhUW16WlpXODM5eWZJVVE1SlYxeDA3MVp0Tm5CbHNsdldXQnBrTXFJZkQ3RXFRVGNieUJIQkFLanBSWTFpRXdFb05IZmgzai92QUoxNGV1RUkvVjBienhkd2g3QzdVYkRITHpmK0g2UktTREVCMm5ISDhSTmt0SFliYVlsdHB1enkxMzJKdnRwM0xaQjkxdkl3SGRjVkFVZ3g3Qkxveks3MEl5RnFhVHJoUEo5Q3ZjMzVuUXZTRUt1azNBR3lxamFjMkxwSnZub1NsdFJPTTJYbDFGU29HaU9DUlNndWZmbWM3NmFndkZxc05PQkdob2MzMll4YmsybnV6M3NjUWllblpSdVhLQ3dDY2tsaTJ3SFlqR2JUUUZiSkdEcDNBc1JiMHZKbFRRQzkwVFBHZzdTU3V3OFEwM3R2MXQxbWdkZGk5RmNVdGdSL1RYdVBzYUg3bFpncWZlVFBQOFZJUDcvcGpnd1g4bitkbk5mcDc4ZFJZUDNlWncrKy9pL1BPZFd2NlpxdWMyZnlsWCswc29rVjdTaHlvUnNqMDN0UkF1WnB5ekkwNkhjUE5NdHRhWjdOT2pmVDZ2azJLNzAvbEh0NTRNd0pzZnJRTUV1MjRQbWRHL3JNUEFwclJzaDZ5Z2g5S0NBTG91aUNjdDN2cG9JNm9pYUlzYW1KYk51azBSSENuUUZEZEhhTzNHdG0zRDJOeVc1dm1wYTdFZGlDY01kRTJoVTFHUW5KQUgyOXIzOWFOK1Jmb0l5a3h2NlZnc3hwSWxTOUF6V1BBOWV2WWtMeStQV0N6S2hnMWIyTFFwUWxGaGdMUmhiY01sY2h3SHIxZWp1VGxGZVhrMnZYcDFJUmdNRVkxRTJMQitmVVpPV1F3Wk1vUlFLTFR0WG52bng0UE5qUTcvK2NoZ1RZM0RkYWZZbkhhTVRZOGVhWjZ0TCtTNWhpS3FNNzNHdCs0ZjA3WlowN2lGZjMzeURxc2FxN2wrMUNsTW1uZ0NoZVZkaWJ6MUJvazVzNURKNUJIcHVCZUFxVUI2RjFlcFY0QUdyQXlDazJFWEtSTk1lODlta1ZCVndzODhTK05QZjRhZGswM29qMzYwYjFTeXBrY2ZsR1Njd0hWWGNleWYva3oveGN0NDZQcnJtZnpFRStRRFdxWVhSWWZMb1FlK1ZrcmpyeDdnN1RhTEowUUYvNjIwc0xiVW91aEFTQ09hc21pVzdtaEVreVlVaGdEQnYvOXZDdjkrL0VPdXZYNGkzN3ZoMnd4WVBJODdKay9qZFh4RWhaWUJ6Qkk0S1llVGg2UVkzU01MSi85cnBKTXhwTCtjaVZWRFdOMmpIbE8wY2Y1eER1bHdtay9XQmhGZXAxMzlVVEl6cTZhcHNXN1RKT0xoVXBKYkJGSUtQR29ZMWFPU2ptYXhjdWtwdEthSEVJa1ZVWkJYaGNkM0ZOanQ4K1duMnlpbFI4K2VsSlNVNHRnVzZlWW1GOVRHU0NNOFh2U3l6cGgxTldBWWJ0Mm1wdUlwNzRiZDBvUmpwQUdGZEdzVHRtTlJrbFZBcjhLdUxLOWJtd0dkT01ETnkvK3pkOTV4Y3BYVi8zOC90MHpmMmQ1MzAzdENlaUFrSWZRcW9CUVJGUVJCOUd2QkJ2Yis4MnRYOUl1aUFvSlNWUlRwbllSQUFnbnB2VzJ5S1p2dGZmck12ZmQ1Zm4vY3lTWUxBWkxzYmdybStGck16Tnc3ODl4N24rYzg1M3pPT1oranFOWk1idklWOE4xNEl4R1ZMVnJOY3JxMWRraWVXMkRqVnhtKzh4bVRnaUlOSGRCOWI1ODRCVVZ3VXJYa0ozZFpQTGZBcHJXemw4bUFBc0pDNHlaZkFkV2FTZm9kellGOU1wRHJUV1dOUFJtemFFK0ZJYjBlbFRzR2tpM2d6VWRWbmc5TGI2VTU4R1BJYUdoQjFhKzVCbnVMSGZNMDF6R1BTa21yNDdBMG5hYmJrZFJrR3dPVTZqcEwwMmxxTEF1ZkVIaUZJRS9UY0ZBbjZCUVBBeDMxbEdjb09MdUwvTk83Q1l4TTBqNHZuNVpuaWdtT1MxTDh3WGJzcUU2bXlZUFExSUJFZnh5bDJGZ2ZaL3J3SEs0NHVaaXhsVUZlM2RURjJsMHhRajZkb2NWK3pwK2NUOEJ6Nk1DQWFRaEdsZmxadkRYaUZwTWZvcHcxSnE4ZmpBS0JFMi9GVHJnRmkwWWdIejFZUENDenRWcUxNY05zWTRyWnlYQzZxQ3dPVUgzZUhBcE9uNDEvNm1TTUlVUFJ2TDJ0RStVNFdkWWN6ZFhQQnh0TXpocUpua0Fobi9ubVQ1Zy9ZVEpkelhXc1g3U0FiVnZYczJuTFdocDM3NkNvcUJqYnR0RVA4TDJCYjMzNTJGNGZsNzNVNitVZlB1SkZmZmR6ckczVitIWG1WQjdZNklmV1ZuUzZBSTFvd2lHVEpTbUx4aDNBTFJxNC8vWVh1Zi8yUlZ6enhkTzQ5YlAveDZUVnovS0x2ei9KWTB5Z0N4OENpZU1vSG41NFV4Wk1kWlBLOW5FTUNhUjA5VjlyYTRKbm50a00yU0tWOTdKM0JHQm9icUZ0b2p2RzZ1RXphTE4wVkZNTXIrNDI1VDVXOU9ZTEgvdjV3VzhXQWtZWE5yNmpUaW9KUnJqLzBqK1JzazJFNko4cm5QT1Ava1ZXUEdlZGhyMW1QZmFxdFQzSmUrYnNrd25jOG5reTh4ZVN2TzJQcUdUNjZEbERRckI4WFF2WWtwT25sZk9INzduRTlKLzl2czBOZi9vWTkzNzJJVTRmdisxdC9lU1BJc2FNeHhRc1haM2tpVGNpWEhkSkRoTkdldG13SWNXRHo3bUV1WmVkazhQNFlSNVdyazl4MzFOUlBqakx4R09LSTVmWm9PQkRyUllGbHNJV2gzUWFCWmJpUTYwMkMvTjBUc2doR1BZT2lBSjNrcW9PeldVd0hJRG52U3ZTOGI2N2ZjcXlhSC80TVZyK2NBK3BMZHZjeEFURGdHT01rTVpXRG9Zd0tQYmtzNkp6UFplKy9paytQdWhEZkd2TTV5anhGcnJCcFN4d1ZoYXVvUEd1SC9mOEc5emtuYjBCcUZhcmc1OXR2b01IZHorT1FsSGt5Y2RSRWxzNUo5YlRNU1Izbmx0QTI0OS94QnM5L3JDZmp2cGQ1Sm1LZUVCZ0poUElySk5xSm1LWWhSNUNNczBEdjNtY3grOTVrVS9lY0RwZnZlRXp6Rm16bFBIL2VaWkdaV0VqMkdjUktkQmRpcDB6Q3B1STU3ZVE2TmhEbzVoS3pyUnFCdFU4UW82SzA2WjdEZ3I4ejJSNnp4OWQxekFNZ1JBYTBsRmtMSnNkTzNhd1k4Y09ubnJxS1FDdXg4ZTVvMC9peFdtak9DKy9oTXBycjJMU2o3K0IvOFVGQklTR2Z1NWNBTG9lZVJMalF5WFVmZTNIR0VPcUNaOXpHdEpLb3htNld5Z20vQWpQT0hUUE9QVGdoOTJyazkwb3F4YVZXWVBNckFGKzEydDh4Wi90UExZbndOTGVMeWYrdjI4ZjIrUDk4R1VIWnhyaWtwamFsb0Z1MnZ6djJPMThjMmk5KzZFUDduOWlETmQ5NXpMd1o5RENVUkE2V2s5Q25vVVdTcE5PbVZ6My9TdlJ4Yi81K0FjMk1pTTN4c3FaYS9qRmprcStzMzBRdG1WZ21EWlNpUUVOelVYaWtydWY2T1M1eFRFK2Qza0JYL2h3SVRsQjdUamhROHEySmhNQ1hTVko2ZE5RbmxHZ0xCUUNhWFVpYXhjUlhMc2JSNFdJano0WlorZEdVQTV5eEdTY3JjdXcvV0hNWkNSYnJQa2VGMjIvMS83aUV0bXBkNjJJVlc1a1pxOWZQNERPZzM2Y2tkSUpYY2NzTEVCNFRJU3U0eTB2SmJHbDVyamVBdzJoY2NrWmcxRm1FK1ZHQ1dOR1RpWTNtY1AyMWM5eFdvR0dOdTVHNXRYOGs5YUdIZFExN2FTelBJOVJxZ0JuWllROXkxN2hndE8rVFR3Wlk4bktGeGxWSE9ZajU0MXptd2dlaVFZMXhjVlFWUVhkMlVob1N3dk1tL2NXakZLKy9iMnFLdmZjL29CQWxRdWwzTElFMmxMdzljbFFVZzJuWFFuYkcrRExpK0hwSGFCNzNDSmJUWUN5WUV3aGpNeUgyalpZMWdiQ0J4bTVUMjA0Q2g2dTNZdHh1dS90ai8vTGJQNXhheEtlMllFYklUeEVON1FyRThiVWJEZGVocHY4SzVWRzFBNjk5N0pYa091SjhOR2hqL0w1a1g5aFVQMTIybjdoSWZLYS84QkZDdG1CK2NkSmlxOUpZNTBTNXEvTjEvQ0gxejdGdHNpd2ZsY3p5cEh2M0E5RlpXTXlqdXh6Yyt6KzlPdHpETUVOMVJxZnJ0YW85QjBFcmlZQUNja1ZNYm9mYVNOVGsrSzQ3dXA0bk1ndnppOC9pRGlhUzRyUk80NzJISCs5OXpXdXUrRjB2cHFObzMzbHNaZDVTdm5wRmhwZGtTVFhmZTAvSkpJWjhCaW9kM21XU2lyd0dLeloxTVIxWC84UEh2UGdNUjFIS3U1N2JnYzF1eUtVbHdSSVpaeit6Z3o4NzRXTGROQkNpdGlMSHBMckRjeEtCejFQSWJ3S2xleXQ1RFN2SW5pYW00Z1hmY2FMVEo0b04zMC9TR2JYbnVOdzRncFVPa1A0bk5Nbys5cm5NQ3ZLcUo0d212d1BYMExkclQvQzd1aEVLSVd5SlVaZUdDa2xaK3haeGxSdEhmY0hUdUpQd2Ftb0htQlVEUFJRMzN0YmxCckZlVEgrNTh6bFBQREdKSGJXbGFKcldmMW1HUXlwYnViYVdXdjQ4eXZUYVkyRTBEVFpiOWFxZW8vUkthWFFkSTJkVzVycFBpUE5vUEpjS2t0eXVPTWZTMmx0N0hLSjA0NmlneXV5KzRzVHQ4R25Jd3czVHFnRmpaN1BuYWpGcFIrczVvZGZIc3ZGTjc1Qnc1NEVua0NLVENySUJ5c1RySXpCMWN2OHpNcTNXUjhYMUtVRll3T0tBa055ZHozWXl2M1RldkJYeUNnb01PQVhJeXlVZ28rdDlQRm1SS01wTFFqcUNsOWYzZjVzZ2FvUUdrTG83RTNPa2VrWTdRdnZSUmdhYUI0MGJ3aWhHYWhNQWlmZGhVeTJvUGx6S1RuL3g0UkduSU9uYU5SK1BlTEZnTXh2Z1NDYVRMTjQzUzRhMnlKczN0WEMxZWRNWnZ5d0kxOHdWbjJjcWJLN3J4MEZmNytYclowMjl4bmorV3Qzak1iYUp2SThFSzNJSVM4L1NObUlTdGNWck1qRE43b01udzRQM3J1QXgvK3psQy9kZkQ3Zi92bFBPSFBsWWs1OS9sVnVyQnpKSTR0MnNXVHhkczQ5ZHh4UC9QNXEvRjZUTk0yOHNIb292L21keExObEJlVWxEaGRkK0FHK2ZmVWYyUlpaeG9qd05PNTRlQVcvK3RzaW5uaGhQV2dhbDM1d0VrLys0ZERtTEVLNEdsVXBsQkNFUEJwamlqMFVCSFJHRjNsNGZYZVM3ZTJ1SGVFeFhDZndoQ1czVDRhZTFuTEkrczhCY29EZmkxSk9EU2hTU0J3UlpMaHpOci9WNytiVG5oUkZhWjFUYlVuTkNwTUxUbWtsU3YrRUJtVWlmZmpuYWdMZHNuR3lXS0JoNk81OHNHMmtiU090Qk5nMlFzcWpOa20wckowOHVRMitzbFl3cWhzaVhyaDluR1RUeEJDUGZlWUtjdk5Ma0lra2Rrc0hUanlCMDk2SlVWeHdjQWJBZTRuMTNrc09JQ04xWXBhWGFFU2pOZVpsVUdFU3IxOFNNakxvUWg1emhHNjlyMEdnNllxU1lvRnBlSmcybzVXbHIwZjQ5eU13Zm5RM3AzMmlsV0hESkYzdHhSUVhwOUNFUXFuOVkxZDlrR1gzSDFmNllmQWZmOTRQMytJYUJJbU9UUmkrQWp6QkN1aXZlTytITHowTVAxUW5VOTlJN1RlL1IzemRlZ1ovNzVzWStYazluN2MvOVJ5K1lVUHBlTzRsV3YvOUdHV2Z2SmJpS3k5REMvZ0g5bWFiWUF5V3FJU0FwRHZiMHZNOG1LZFkyRnQxWk1UZHY1d0dEWlVVNk9VUzJhSWR0RXVoQk96UHRaY2JFK1JIQlpOcU5LNmNENUdncEw1WXNtbUl3OHJSc0hxVTk2MWh3T05PUCtpSGtwK1d6Y1BkMlZvR3VzTVRLMDhoTjVEQTFHMlc3eGpKTTJ1bTQwaU5EMDU5RTBOemFJL2w4UHk2cWFCSmRyV1ZnUUpEVTRmMm00ZGxBeXMwUjJkWWNTdG5qOW5NQTB0bUlwUUF3MGJ0UjhMenRsRUloZEFkc0EzODNneG5qOWxNUTFjZXIwZ05xVHVvdzJqQ2ZjVTNIamtFYkUyK1BiZEZFNnpkMXNMVjMvbjNFWmtQLzNmWlJGcCtlenZ6dTlMY1o1YnphTHVYZUgwTGZsTmdsZWRqbXlhSkhKZWsxVFpOR0ZxTzM2TnozejNQOC9kSEYvSEo2eS9ncTdkK25XbkxsbEQrMGlMdXdDR0pRTi9QS3hWQ1k4NmdNU1RxYWlrb0dVVkJlRGsrdytUYmN5NW50MTdPeVpObnMzNSszVUV0MjRHc1N3Q1hZenFXa2Z6NXdrb3VuamFSMy8xNkVkTkg1cU03S1ZZMnBmbnNaNy9Dc3l0aVhQUFl2QUVoVndwNWRJWVcrT2xJV0xURkxaTFd1MGZNL2FaR1VkQ2tJR0N5b3lOSkpEWHdlVU5DQ040MUZDSUVXcmIrNW9UMGxrR2V4REU5dnQxdnhTZDM5d2MrS1hycE9lVTRXUFhORExSVElRRjBpVlFDbFRZUlhoY3JzcVZBMHlXYTdyQzlPOFNOaTZieW15MUQrZTY0N1h4MFNEMTRGSTMzQkltOTRXSllvVk50eXErTFEwYndqMjNWL08vR0VXeG96UWZkd2ZCbWtKQWxFK2huS1NtQmM4NTVqdzFkNTRDTFVkUGN6OTRKTkJvNjFQM3JiMThpYS9Qa21KSlpoUWxSNGJmVTJIQ2FCM2ZtcXZWZFhxSFlOeFdLbzY1dWF3ME5ZRnpWdGc5N3ppb3AzelgvUlRtTzI4akJkdnB0TGxmY25PeTNTMjlzZGU5dlJYRS8zdCt2OTgvWFpDSVJEQ1ZKSVFnaThDdDRFaHNCWEtnTWtnSlNnS0VrbVVoazRIMWd4eUgrK2txNm41eVBqQ2NPUHVkWUNGUXFRL1RGMXduTm5VNytSeS9xeWYzdER4bjJteDhjMnh2YWxaZHlYRXZ6STIvVFh4SkZUR284K2tpSzdzUTI1QUVzMHg3ZWpDenJteU0xbHJ5V3diWkJ0OWVTdGlTYW51VmRGZ2ZRa2NET1ZzVy9hekxFWXJVb0lRK2p3WVVBWVpQTVZOSWF1WlZiNXlZcENucXg1WUcrS1Z2bkJTaVp3VXAzWU50eEZBckRDR0o2QzlBMEwySy9ZdzlIWHVIanZkWEZnK3ZlYmdNVitmbWZjNGVURnpEWjNaYmd6cGRyNllyM0pzek1DNXJjZXVsb1RGME1hSWp3NDNmMmZ2MnJDeXRvK2VrdmVLN0Q0ajV0Q0kvdXNQYjVGMEhYditnVTNsNytoUkNDdi83Mk9mNzYxOTc1R2dmMEw1VEFvMXZFWTFGSzhrcXA3MXBDZWVXTHREbEpobGRjeDJVWC81UWYzYnFheU9ZVjZHT240R1RVd01TTmNDZnZqb2F0eEZOeFJnK2V4TTY2amV4czI4NjUweStqb1dVM2pySVpWRFlTY1F3d1pBaEFTTVdva0tMeTNMbFFXTTYwL0xNeGZmbjRndFVVblE0algxcEhXL29kZlAxKytQME1pa2ZUWGJ5UWlkSWliWDZiYkdXSzVlY3ovaUlLOVgzTlJsdHRrKzYwZUN2bjFURWpFdkFLd1FlOFlhYWJmaDdaMXMwM2Y5RE5ZL1BUZk8yNkFETW1tRzVjWEFrWGZBZVVqT01rVmtOaUZXajNVVzVXVWhHY3drWERadEUxNnNOc1Rwb3NhdDNGZ3FaMXJHcXZvU25aanR6YlNLaWZpTmFVa21qK0FFTFhjUnFic3dFVUE5L0pwNkY1ZlFoZFIrZzZNdHFOWGx5SVo5Um9WRHFGdmFzV3U3TWR6ZDkzTXJ6anJTNzNVUEttOTNvTEU4djl2UDZGa2IyK1F4UHdwemZhQVBqc3JLS2UxTUhLWExQWHNhYmVSMTNSRjRMeFdBejl4aHVncGdaR2pZSU5HMXhuWk1JRXRLMWJZZVJJaU1XZ0x3M1dEcVJIRHd0REFabHgrTWZ2NTNMKzNDcm1yMXZEZzgvZmkzUWsxMTk4RTJkTW1NZ0xyKzNoZ28rK2dPYlZEenZkN2tSczk0UzhueVFjUER6ZlNpbVFXWEtkdld2cDIzL2FDc0QvZldWc3o1cDBvU3B4MU9LMXdsR29IQi8rWlRzSXJMSXduVERDOU5PY3I3RjE1VCtRSk9BTE45RHh6TXZrbHhWZzFUV0J4L091K2IrSEpHZjhxRysyaFFUTjZ6bys5ZlZ1YzR2S3loQkMwNUJwaDc2bjBGL1k2OVh4bHI5VDlmUHZEcmlkM0tlWjhOSGVkWU5Ed2xYOUFQWmtjTG83c0RadmNXMkVNYVBSOHd2QTI3ZEdIL25ld3lOZFZQdjlIWEMvUEpIYmZuaWlhVzVNekhGQTE4bjl3dldFcnJpSWp1LzlodGpEajRNUXhCNThuT1J6Q3lqODZiY28rOVE5N2oxZnZJdmQzLzRmblBZdWhPazJKTWo1eE9VVS9QaFc5UElTc2dZeEdBUExSU0VsTE44SUt6ZkIzZitHLzdrS3Jya1lBajUzU2hRYlZzOWVJZ1FrVXZEUU0vQ25mOEthTFFOVFRpTk1rN0piUGt0ZzRqanFidjBoNmUwNzM0NzNaN21VWkNKSjE3TXZFMzMxRFVKelRxSGtjNThrNS9SVGo1MG1JRXFSYWVtZy9zLy9Jcko4UGNxeUVlOFlSQlZ1ZGJ4bEUxbStudm8vL3d2L3FNRjRTd3Y3ZEQwWEhNN2FWdnNxRktQUFBVZlZqaDA0Z0piMVZUU2dhc2NPak9lZTQ5ekN3aU5SemZqT3l0OFI2R1VaakNGcFBETVNwSi9MeFY3dnh4aWRJdmtQTnlkT3kzV3dOL2hKZXhUZU02UElSaE5uaHdkbmx4ZU12aVdFR29kQjBDT1FXS0VncWNKY1FydnFFY0lnamhmejlHbmdPQ1FlbVk5Zk9xQnNZb01yOGJaM1k4YmlCOEZpZUJDUE5oREFhdXRBMkJhNjE4WDFuSFFhcFJzWUpVVUFXQzF0Q01mdStWeW0wemdZZU1JQm5JQ0dGbS9ERUJMSGNqODNSQnFoTkJ4UmhEN1NTK2FKYnZTNGpYYVEzKytrMHlqRHhDZ3FnTGVFUGpKMmhwSlFDZDg4Ny9zQS9IcmVUMWxadDR5UkphTjVaT1ZEZ0NMb0NXRTVOcHJRS1F3V3NhTzlsaS8rKzM4NGI4eUYzSHpHVjZuSWRmZDBSenJvUWpzbXR4SUJUQS9GK0dSeE8rY0V1cW5iRU9QT0oxSzg5R2FHK21aM2pobUd3ZURCZ3lrc0xHVFRwazNrNU9SUVUxUEQ0Q0ZEbURaOU9pKy9OSStLWW9lckwvVHk0UXQ4alBSNlNEN3ZwWG1CUWJwT1J4NUsvd3BOb0JKcDlGRWpNRTZkUWVKSFB5ZDE1NzFvZWJtSTRpTGlYL3N1K0h6azNQbC9tR2ZPSlhuYkg0NktIU0dFUU5kMXJyamlDbXByYTdFc2kvcjZlandlRDlkZmY3MmJUd3ZFVjYybC9yWTdTTlh1Y1BuNE5BMDBvd2NnbEtrMHNiWHJxYi90RG94d0RvSEpKNkVKd1NrelozTDc3MzlQVTFNVGt5Wk40dkxMTDJmWXNHSG91djYrelBjWWFCN1V2WWFIN3ZXUXlTa2lQQ1NBMldIakQwaE02U1dUQ2FDMWVrQmxPTmlFbzJGNkk4UDBScXEwRnBhaXZ5ZEdwYUdReXNNa2N5dFgrMTdoanVRSGlhb0FHKzNCbk9wZENqS0VSM1RSNkF5aVRlYlJLdlA0VXVDZjdIR0tlVFIxTHBwSUhUQkdOdEFJbGM5cmNQbDVVN2poaWxtTUhscEdPT1NTNDBaaUtTNDVZd0wzUHJxWS83eTRrbFNtL3hwdzlXVk5PMG9pRUd5TE5mSzNiUzlqNEtFNTJzb0QzZk5wVFhSeTI5UlBVdWpKT1FKVmNRZW5mNU9XdzRSeW5aYVZpMWkwZEVYUHFCWXRYVUhMeWtWTXFKN0Roa1lIdjZuM203M1RxKzJxRW1pK0RLdDJWckZxOVFmQjdnYVp5Y1lVdk9BdGhMd1FtbTVuODlHUGdBazdBRGRhMmdLendDSlVaaEhzQWllV1EvVXd4ZmlKZ2xRYThzTTZYbDF3M1RjemhJSzJhLzd1aGNFOGl2dHU5UnowdEp4N3l1amVGN0ovUnhyaGFwaFJzVmEwU0JOQ0hmMnV0dGRlUHJ6dmZwM2pzSDdEV2pZc1dZU3U2MHdjTm9qeDQwL3FzZC83SXA5NnkrdmRjUS9IazJnVlpjZlZlRVBseDlkNCswTXV2UEJDTm0zYXhPdXZ2KzVpaUZWVmZPTWIzNkMwdEpRdmYvbkxiTml3NFpnY2Q3dkhWUjRGbVJONDJtR2JHaDdZV0creWNHT01xb25GUEpCN0paLzk4RXZVZHhUdytHdlRtUkdJRUd0VE5IWkFkZkV4RU8vTGdtQXk3dUFkN0dGTndVbWs0dm1zNnloaC9NeGNyc3hiU3lhZXhRaFM4c1JEUG83RXRpVWQzU2tzUjFKZUdHUjFUUnNWUlVFS3dqN1NHWWYxMjl2WnRMT0RuWTBSbXRyaU9HcC9NOE50TWlzZEE2VU1nbWFNV1hrYk9MTm9MYWZtYkdPdzBZaXBnd3lYb1ZmUElqUmlGcjdLcVpobEV6Q0N2Zm0zRWltYkxidTdXTHU5amJVMTdXeXJiWC9iV0wwajZhSFUyemMzM1Q5bGdVcURUSUtNZ3hNQnB3dnNkckRid0c2QjJFSUl6UVhoQjdMdWcvQzc3OFVXUXRHTllKU0NVUVJHQWVqNW9JZEJDNExtZDgxVFlXWmROdTB0QnVUN1FCMyt2KzRoaDJEaWlteXp4WDJlalVBajQ2UzRwUGhTVGhadUhlRnk3NlU4MWJVVGorNUQ5VEJGN3MyRGtZZkljN0hqZ01hN25tOVQvdjFhVWxzQ3hCYmtnd0s3eFlOL2ZKekNUemJRZG1jbHNZWDUrNUpoamdNUjJXdkw5MllvOVZuc2pQdDVhbWNaSGlQRThJbzhMajFwSmdCUHJsdENYYlNMcDNhV0VWTTZZL0tqTktkTXVqS21TK2swMEk2VG9kUGNHc1hPSHdjanZrRHp4aTRJQlBsN3JVMUZTUXMvdjJxYWl3Wkx0OUhjNlZQR2dKM211dnRXOEh5VEgzd0dEZEVFSThyUG9IWDl1TVBDbXQ5eDI1TGdNWFRTR1p1R2xnaWhnQmUvMTBBNkhncnpBbFNVNXJCMFRmMGhCMWpkcG1nNnlaUk5jMnNNMDlUd2VRMmtWQlFYQkNrdERMSnd4UzQyYm1zZGNMWGdFdzVCM2VHOFVDTUF6MFVyaVV1ZGxPci95VDdRZFhvOS9vdVVvQ1NKdE1XWnc0Y3p3dHpEQTQwdDRLMUNPSWZJalpEbHp2Q1dGbE1kQ3FDYkp1SVk1UjE5dnlDdGdtelB2b09aL0VyaE5Uek1IVGFac2NWRFdkdTBqZVVObTRnZFJJMlBPRVFvNDlaQThVR1AzeS9jM2x3bkdUNE1CQUdoSFF3bEpoLzM1bUdqOEFzTkJ6amJFenBvSGZDRGVGUC9ZUUJDNEZneDBwa0VHUnk2MnR2WTB4ekZ5V1JZL3V6RGpKc3lnNGxuWHV6eWtmYlRiK3A3OTNjSlhpMURVM3VRRVpkY3paM2ZlWTFYLy93a1Q3MDJtTVhyU25selhRa2JkeFRnMDIxU2pvNUhTTFFzV2FkUWJtTlRrWWhSZDh2TnhGRFlSMkJ0QkRVZFBhMmpuZE5LY3FjWHRUbUU2ZFhKcEROY3RMa1piY0ZXTnFVMWx0bFIvR2hvUXJpNVowZkRoeFFLeXpaSTJ6b2RjUjhMYXdiUm5uVHpremZXRmRFUjg1TzBkREsyZ1RKc2RLSGhPQW9ubW1UVTZISnUvdFNaWEZUcEkvRHdQMmw5N0FWU3U1b1JobzVtR3IwU0hvU21vYVFrRStrbU9HWWs1VGZmUU90Wm8vbFp5MnM4dFdRK05aRW1oS1lqZE9PQURTUDF0ekNEQzZIUWJRMDduQ1MzUUtGc2dSQ0tUQWJ5UytIc3ViQm1QWHpvd3JkZ21RNkVLMUtrTlFzUEJ1aytSQ2JlVGN6SzBjZVlKbDNYcjkrMnVuRXJyKzFjU2RxMnFNNHR4ZFRkbmhXMUhYdVl0MzBaNDB1R29Xdi92YjFoOGdOOXIvR3pFenN3Y290b3llUUFVR0tDbmRxTkVlai91dHpqcmwvQmNjWlBqM0w3dW1pYUJ6SVd4ckFxZ3VmTndxZ3NJYjJ1aHNTcnkzRmFPdEJOblNGMlFueWlhNnR2V3JKMXlqT2hRY01XQnN2UHFqZERmNVBJK1phdWQzUG1ReElyQVl0dWVzK2ZuWGZMODhmMFl6MmxkemtnZDEweGlNN2JmOHliWFduK3BwZndhTHVpclg0VEJhWkd2QXhDQlZHNkhuYjlndEFYb3ZpRytBaDUwano0MTRkNStyRW4rZVQxNS9QVld6N0pHU3RXTXZYbFp3aGlJMFUvY1ZFZFFINTJYaGt0Ly90em51Mnl1YjhQZnN6NE5XL3k1YjErREliYjdENlZabUdUamFkc05KdjJSSEJiclBkMk1JVUc2emEzdXFXZW5rT3NBOW0vYWVwYkc2ZzZ4M1ovSVUyNE9NQnA0eW9ZVlo0SEFtb2F1cEZTb1JrbmVFVU9YaS8xWVYzWUNjU3FuNEhWUUhLWFJmcTFiU1RQSEkyczJJYmVXUXNkcTJIS2Q4R1RjMFE4VWszVFNEc09lZUV3U3RQNFhsY0RLM3dKdnVzdklTUjBvc3JCMkg4Y0N0QmgySy9pNUp5UkFVc2dZd0s3UlNEMjI3NDFRMkYzQzRJVGJZby9scWJwTGg5R3Zqb2tTamJWOWFqTDRaYmFETW5Wb0lkUnNkY1F1UjlBdGYwRkxmY2lOTE1DUjRHSXZNd25aaTdtcW5PK3g0Ly9zWU0vL3ZGMVpNYWlYeDJzclBRbmM0SVFJS1ZES0pqRGR6OTVLK01HamVCTHQzK1BtRzBoZkg2WEN5UGJFRDRVQ25QRzVGbDg5dEpQOE1FNUYvQzdmOTBONlNTNng0ZnpQczZ2UDZ0Z0pwZU9uY3E0d1ZFMnY3R1VJYWZPUW5rOE5Jd1lDZW95YnBwNkVoUHpCWDlhc3BaRzFUdWZ5NUJwNXVTdXBicllRdGMwbGpaWHNiSmpNRmNOWGNLRkUxckpEem9JQVJsSFo4T08wUlQ1RTV3MnRKWGlBamUwMFZEbloyRmlCa09OTGR3eTZCRUc1OGZaMlpYREQ3c3VZdk03MUVvTUdFNG5KRXBwZEc2YXpQbmp1L25LbGEvUktFYnd3aHN6cWZZSDJaRVpRMEhNUituUWhWUlYxUE9EdjAxaC9lS1RvQ2g2U0d0QVpPZWxjR0RNWUoyZGJaSkVTZ1BEL2F3OUJmUFdPT3l1VC9QYUJvZnJ6dkl3ZTR5T3dPMUZKWTRCTEUzb09sWjlFM3UrOGI4azEyNmk0bnRmUmMvUFBTYm50NFo3cjBjWHd4Y24rL0RVRmxId1pvU0xWaVJKbmF4b2FZZFI2NkFsNktWbGNpbnBUMHBrWjRMOHJZQ21FRWNoNUtzTGg1a2xTN2hzeUdQa21OR0RPaWZIakhMWmtNZDR2dTRDWHRwekxyYnFIMDRYMVJlN0s5c1BzN2FtaGxWclYxRlFYa1ZYTXNtVzFjdVpQWE1PdzBhT1FObjIwYXYzMEFUK3dqeHlLa3Z4aEFLY2tQZWYvTkl6NGwyVnNkQjFydGJiR1ZNUlJGbFJQTDdoK0x0OWVIYzFFQmgzS3JSdkpWeGNpQzRqUEo3T1lYWGF4QlFjRUJNOFBGblk2OVdYZjdmeXhFTjdOeGNSalpnTXNkdXA1dlhVcWV5MkJwSEJ3elpyT0MxT0tTbnA2N05KYWpzT1NTdURMVzJTVnBxMldCZCswMHQzTW9xcEc2VHREQTNkYmZoTUQ5WDVwU3pmdlpGaFJaVnNhNjJuTUFqNS9oeTJ0ZXhtNkpoVGlHZFNwTzBNWnJaWHFqcjBDMGJUQkYrK2VEQStqOGE5OCtwQktuU1BpMlU2R1ljY244NFhMcXdtbVpIYy9WSTlTREFNaVNNRlRqSUltdVQwMGN2NXp0d25PSGZpQ2tDeGFFTWhkeXdPczJDN0YwY0p3bDZKRUFwSDB2K0JkU2tZVlo3aVd4YzJFZkM0NCtveGhvRGtoaGh0OXplUjNCanY5ZjU3N1MxNzdYY3RITVk3YWhTaFdiTUlubm9xM2xHajBQcVJNd05OcDZHcmlTOCs5bE5XMVcvbXB4ZDltWUxBMGJGM2Nqd0h6N2RuQ29sWHQ5N3lRQlZlM1NKa0pyRlUvOWRTdlp1MTR0VFZZNzI1QXM4RlorTTU4elJTMjJyQjc4T1lOQUhWSFVXMWRhQ1BIQXBTWVcrdU9TcVl6MWVuaDZuNy9EZFlHM2Q0Tkg4ODk5ZFpkRytyQTAxQzBDQ1dkdnVmQ2FXUlREdFFra05IVjRJZjNmSjNmdnQvTC9EbEwxM0FEZC8rUHFYelh1YmF4K2R4THpuRWhiNnZma2E1ZG1VMDRtSGIxaUhzVEJRZ3pBWlVWeHpxZGRxTldkUjFMUWE5RmFYTTkxeU1MdS9PQWJZMnh5SkZJZjljc0lkeDR4ZWdhZkNQK1JaSnloQ1pUSmE1OENqNHRjY1pUdjQvdDc5eDRQdXJGTXJyNFRQaE5pWjRQYVF0Rzk4blBvWStZaWo2U1NjaGdrR0N0LzhXMmRwTzZwNzdNSlREdHAzdDNIN25TcXhJd3EySkhvQmgvM0Q4bDQvcC9mdkR2TmozN1VUSm5wN09nNGRQb25IYXg1bi94RmN3ZkVXQXdrbXZZT2FIZnNlZ1laT3lPSnlPbFB2T09XclE1djRyVG9QNm1QdXFMQ1RZbXhwMnJDTEZQbE13YmJDYjk3aXdKazRpUFRDNlk4OURUL1lUU0FIQjRhNE9pVy9YQjB6VjdlV2Q4eG9XMTUzL0pOZk5tY2ZRa2lZZStkci80d3QzZnBHZGJTWGtCZUk0V1Y3L1hOMUJDY0dqMWVmeVV2a3NybW1heDJmcW44WlU5bUh3YWZianhFUmc1RnMwL21FUUtxMVJkdk1lbDlCVzdML3VRRE9ob1JXdXVCV1daRVA0UzliQzc3OEJlUVZ1dVJzYzNIRUhrNm8yZlV4K1A5aWZMVWhISjU0S1loaCt2SWFHWm1yQXdObHd5c29nMm1PbzVqZElyUHdEM1MwcE5DWFF4NzZFZCt6bkNjdzhHZjFuUDZiclQzY1JlK29aMEEwMHI2ZHZlTXRoU05YUHYzTUljMzB2MjZvNnpMVnlHT2QvOVBMZXByaXAzbjB4V3E2L3NYZGVLNkVJZUFWYmxPUlpQTFNOT2g5cCtHbHRXc2RKSDd5QWl0TlBSYUpRbVZPb09QczAyaTY1aU8xLytqUFJWK2JqMGYzWmNKVGJWMC9USUoyS0lnUVlmai9xUUxoVnF2Zkx2ZjEwbit1MHMveXM3OVJQVjd4blA5MnZQdll5VCtFam9neThwc05sWXh2NDBDa21kOC9yWmxPTjRxbDBocE5HbGJNdGJwSnAxS215VGFJdkxxTTgyc3lnSW9zdmZpek5rOHNkSHR0WVFjWStNRS90Z05lUHV3MHNpU1k4a0IvRGYrb3ZXZlZMSDhySXBlTHNLTjRBUkpPbUcvODlFVFk5dGtTQkUwdWlCZjNZclIxa2F1dndqaDZHOEhtUWlXUXZITmRXZ3FobG9HVUczS0hvOWVxM3Y3NzN2K2RoQ0E5YWFBcDdrL3hsOXdJQTlKSnJBT0YrSmp6MGQ5OWFwVUI0emV5LzMxa2ZPL3ZuV3dLR0xyRWlBZkpLdXJqN2MwOXo1ZG1iSUFWV3Q0YWh2ejNRSW9RQ0M4Wld0VkZWMHNXZTVudzAwM1o1Zmc4RnZ0RTBCZzhlek15Wk01azBhUktUSmszaXR0dHVZL3YyN1QzSE5MVFpmUEcyRmxiVnBQanAveFJSa0tzalBCQ1lwdUVmcjVIY0xPbDYxaUc1OFFqMUZoUXU5aWNEZ3JHbEZ0Wm1tNWpwa09kMzhNZFNGQXFMOXVFQ2FYcmU5bmdINTFVd3NXUTRhU0g0ZjYvZHkvS0dqU2pONkVmTXVvK2lhM2hPbjBYd0cxOUNDNFZJL1BsdlpGNVpoREFNakpQR29WcUhvcUp4ekNrbkVmejZ6Y2l1Q0psWFhnT243K05QNzlyMWppWnc1VmUvQ2xJaWRQM0F4eGtHVm12cnNYRVBOUUdaRE9hb1VlVCs5RWQ0Wjg4RUtZbmRjVGZ4QngvQTNyNGJsY3dnVEIydEpCY3Ryd1NSbjRkcWFuWjdqQWpoY2hjTDRTN29JekEzbEcxamxCYVJXYkNFbXVrWE0vMlZSOWpZVU1jWms2ZFJzNk1XMHpTeExBdkxzakJOa3oxTlRVd1lOSVRuWDF2QTZRc2ZaZGRIUGsveXlaY3dTZ3BSanV5WE1mL3VROVcwM3ZZYjVuZmEvRTBid3FON0xCTDFiZmhNaFZYaXg5WUVzU3dQdHkyQVFmbjRQQnIzL2ZrbEh2N0g2M3p5aGpQNDZzMjNNR1hWWXI3MS9LdjhnaUtTd29ldVpLOWFVdGZxZFgxQXI1YWsyOHJEcnllUVN1dkpCWlRvakErdnBUbFZUcWRWY05BNWdsSXFhbXE2aWNVc2NuSk1hbXZkTEpwNDNPTDExeHRwYUlpN05XckhrVGhBcmlZNXh4L253NkVvUTFKSlhuMGh5ZjFQcFhoenZVVjM5TDJ2Snljb3VIaXVsK3N2TlJrem9ZQTNtTU45TFJleEpIWVNYVEtIOTBOaGEvUFhEdDlmRkVLZ01qYm9Ddi9NdWNnU0M3T3dIR2RiaE9UQ2wwRUtoT25Xc3ZhYnRXWTdKRk1aUWtFL2lZUUxNQVFDWHVMeEpCNlBhMU1razJtQ0IvamNiM3JJbXppT3dySzhZOVkxeVBYcm5EellUNDVYWTJkN0J0TVFlQXlOZU1iQmtZcUVwUWg2TkNaVitmQ2JnaDN0RnNVNUJpY1AxbmdsSmVsS092OVY5MWRseVVtdGRJcElXeU1GMVpObzNyS0g5U3NTK0VPU1JFekRVWDdLUjU5R0lKeUhiVm11dnRzVDVlZjNiOEYyVG5BeUhBRmp3K1dQalRYUjJib0tyemNmVFdrb0owbG4yeGI4Z1NKOGdVS1VrdG02K2Y2WFJzdkxIc3ZIMUVBRXJXZS9GS3hNaEtreVU1U1o2WDc5dmV2dnVMUVBldFcxeHgxYmtremJlRDF1TGxZNmJlUHpHUmlHMW92WC9mRGtzU09HMit5MVlrd3BhUXFhMUhiN0dTSUZiYnBrWjl0dTVqZHQ0NXdSSGhTU3cyK2RxekE5UWZMTEptSjRjbWpmT1pqWW5tZElkKzJtTzJiaE5YWDhQaDJmM00zdTdlMHNXTzVEYUtCa0huWVdXemYyS0RUUmdwUXRlR2NrOGMxeDh3blNHVW5hY3JCdEIyOXVOY0hxaXlrYWVnN0IzS0ZvK2x2Skx2cEo4eDJvUmxpQVo0U05PY2dsOHZTTXNMSHFqUU1lUnorMEpYRWMrTkNaSHY3MXF4Qy91aStGWlNzZS9rME9wMDFKOGJtZnh1bU1LTDcweXdRLytVdUsvLzI4bjBkK2w4UHU3WkxQL1RyR0h4WTA4TWRrTTdjRUtqamRtOXVUQXoxZys4SmJ0ajNIQVNtMDNybUJQUXZMeWVZR2lKNDk1RjNyM3BWQytIeVk1NTJCTVh3bys0SnRHdmIySFZndkxrQWxrNGVVaHhpV3FYZTN5WlhpSzkvOE93QWhKNFVtRHR5VHpSYUNQSm5PSWpoSHo2cXhiY25TZGMzczJCTmhSMzBVVzByYU9sT3UxeUwyY3FCSWhoVjBNN21paVlidUhKYlVWYUVVNkpvaVl6czB0aVd5M0NsUXV5ZktuWTlzb0swN2pXVWZ1bEk0bExqRVVaRzN4Q1hlRlhOSXA5bTBhUk5kWFYyVWw1ZVRTQ1NvcWFsaDJyVHBDS0Y0K2VVZFBQeHdQWVdGSHBKSmhTY0w2VmdaOFBrRUhSMFpycnFxakp0dnJzQnhKRFUxTlRpT1F5QVFvTFd0alUyYk5qRng0a1E4bmtQbjhvc2tGQXZYV3pTMFN6YnNjdmpFMlRaZnFzd3dMcGprM3NZU1hvL211TEZMc2ErdlcxdWltK2UyTEdkWFp3c2JKcDdHUnlmTW9mcjZHOG1aZlJxa2t2MmpKVjVlZUVRZnB4U1FseEpVZEx1TXd5ckxMZGxzUzVvY2lTYjJjVDhNTDRCY3J4c1AzWHVsOHc3d25ZVmYrUXBHVVJuMTM3d0pyMG9TdjlRZ296ZFE2UDhPVmQvL1h4eWx5Qk9Dbi83MXIvejFvb3U0NGJycllLOGVHbUE4eGlpNTZDNU1yNGRrUlJWMmZSTVlFaU5ndW9wZWd5Ly85bFdNakV2RVkvLzJWVEEwSkFxakpJeHRTLzUyMjdQODdXK3ZVanlrbkhSbk1URTdDcm9MZGtqSHk3VDhyZnhvN0hhV0JzNmdYdHJNbmowRnZ4S1V6RHlEcEJBODkvbzZ6STZGL0tKNkFaL2RNNVhOemlBME12MWIvcTdBNjdVcHExcE8welA1VktJVE9LMkN6aDN6OFEyU0dCdTZNRXliK3VGSnZJV05lSHpxUkFlcTl3RFM4L1B6MmJSeEk4TkhqMGJaRnNJdzhaUlhZcGFWbzRkQ21LWGxhSDQveW5aUTZSUkdmZ0Y2Ymg2ZXltcEVheXZTdHJFY2krMHRPeW53NTdwa0h2MHc0ZDNZcjJLMkdlU2p3VEx1ekN2cklUL3krUVNEeXpXcXkzU2Njc0hyblJyRlh0MDFPc1RiNTR6U29hMVQ0bFJMSnAwanFXdHkyTlVvU2FaVXozZCt0S3VKMldZUTZ5QzM3WUZhYjN0dm15WkFaZ1NidHUzaWpLa253d3VUSWFjU3Bud2J3aU5nN285WS85ZVhJUzNRUXRDZmJyTVFFTXlTeUdnQ0RDR3dwT1NKUkJ4TEtlenNvbHFaU2JQT3ltQXBSVWpUZXBScVVHaUlFOEhlUTdUd3dZNFplS3N5QkdZa1NOVDZrUWtOcDF1bjdha0NodnlnanZqNkFHM1BGaUowTlREN2lZTDZqZ3l2Yk9oaSt0QWN6cHVZei9CU0g1dnFFeFRtR0ZUbWU2a3U4aDFTVThkOThRMUJRY2pNR3ArSFB2aXdyNDlrSDBxUmFOOU5zbTRGOGVadEFBUkxSeENxbWthZ2FCREg2NFJWU3JtTkQ1d28yOTc0T1dObmZaNlAzL0E1QU41NDlqL2Nlc01WZlBJN3YrT2txU2ZqT0RiR096UUg5MzdnM09QcXVndG0vZ3VkSVhRVmowQzF0Z0tkR0xvSFI3b08rTTNmV2NiWDB2OERRT283eTdKT0hCaEdEcll0ZWZEMkYzam85b1hramFqQ2JwOUR6SW15ZnlyVFQzNnlhSzlwdFo4VExuQ2NOTmRkTndXQSsrNWJoV242c0N4NUtFc01LUVM2a2l4TTVwSzJGYWF3Y1k0eENIejJrSzJIRHBCb2dMYmYyaGJ1WHVnMUxLWlgxNTdROGYyeVQyaHMyOVhOcWcxdGdHTEg3azRDL2hGODZzNlBjL2VuSCtLTUNkdFF4d0tHTHR6YWdKSWhIcDcrWlJmTjdSYjMvTEFjbFpJOVRYcFZTbUpaOE11L2RiQnNVNGFiUGxwQ3kwNk9XS0pZMkZaTWk4ckRjaEVVTURYcUVMWVZrUk9FSUFjSG51cEFSbUJNZHNGOTYva0ErQlVEVWduL1BqUkFoV21TZDhtNWVNcEw2SHJtWmFJTFhpZFQxNEJ5SkVMWGpyRkhyckNWUTQ0UlFLQngrN2EvY1VyQlpLNnV2Z1FIaFM1QklnbG9YbVpmK2VsOXdJMTBFQWdjb1RDQWVTMnY4My9iL3NhUVFCVUtpYTJjRSt2cEdKU2xjNjdBOUhxZ29vcUw2eGZ3Y1VOaGVrd2NTeUdsSXZTalY0bW1FZ0FNLzlGM2VDbVJRVXNKZEorR0ZYUG8vT0ZqN0xvOVNHSklPZW5PYnJBczBMVjl1c09SaUhBTzlYKzZHM1hiTDlCL2NSYmhoa1hVM3ZjUU0yLzRGS09lZjR5dFMzZWduMzNSUVdFUGYvNWxtSlhyYkZhdHM2aXB0ZW1LeUd4OTRyNzVaUmdhdXU0U2FLWnRoNzhyaTB0M054RGJzcHgvb1BIVUhiL0ZET2R3WTA0SkUwZVBKVjI3a1ZQR1Q2UnljeTNXSCs1RmJ0NUc5ZDl1ZC8wZjA0dVVFdW00TFBCYU5oWWlBSVNPMEhJUjNpbmduWkxsL3Y1ZHIvR0d6a2djVi9PaDZvTWZPTzdudENFVXR0U1Fsc0hacGUzOGFjeDJSdWFtY0RJQzNWVHNxZzN5NVRzL1JFNjFnYzhVeEJNZUVyRTBNcFowbWRPOEduaDFQRDVKaGd3MzNuWWhaMHpjVFdWcERNY1NmR05rUFZlVXR2UFpUY041dWJrUURBZERrOWpxaEQzUkd3a1VidGNFMGxsL3pBRmxvYVZYNFRBZHc5QVIvaXFjblRYSWRTc0liTitJZFlVWFcwbzhFMmVqRWxHTWxTK2haUkpadStDOTlZUDJubzErM09DeUtDeHlvN01IL0JJZFVWQ0FWbFpHZnlkdHMyVmpyNWNYVGl3K3BwL2lMOTduTXhRcEtTb09NM2RxS1N1MnZFUW9VSWkrdklhTnEzNUZhZFVlUms4dVpvV3hrMmkramRvV1JTWjBmQ2ROb2FLbG12YU9mN0hsOFVlSWRYWXovT3paREMwZHh0UExIK2VVU2VkUVhKUkxRMmZVVGU0YnlJdFlzQUIyN3o3MDgzYnZkcys5OXRwK2NSTUVMbDcvc3hYdyswMHd2Z2d5Q2xZMUFUYm9ucmZualIvTWZmbkp5cmZCT2VnQ25BeGNOOVo5ZmQ4bU1MMWdIWWIvZkZyeEVzcDh6VHpYZUE2TFdtYnlQeVAveXV6aU42a0tOTEE3Vm5YZ3BhOUExeHpPS0h1ZHI0NjdnOW5pZGVLUEtIWTk1c2RxRVlnRE5HOVJFc3hTUmVHSE1nUXZGYnl1NW5MYjhzK3pvSGxPTnJCN3d0Y01HZkNKS28zUER0SVo1RC9JZGFNZ3RTWk81Sjl0cERjbDNVbDJZaHNlY0NtNTZHNU1yMG1xb2dyckhlTm9wd0lIanFQZGQ5dXozTmNyamhZREFWLys1Q3krZk4xTUJzMzlEZkZJNmgySjMxMm93Q1dvQ09kNHFYdnRGbTYvLzAyKytzT24zOU9OVUVCN1Y1cUZuYTFZR1ljOWJVbDhIdjJva2UwUHRKZ2xybUswV280TTFxQVVaSGJxcERjYk9OMENhN2VPWGlUQjZVMnlxcFRMZldvM3V1TTZBUkc4ajBUVGpyOHhLNFhtOTlIOGgzdndEaHRNNlZjK0RjSkwzWmUvVDNySGJyUlE4TzJFMkVkcnFMWjhEeDBud2RMUlJabzVJN2J4enpkSGdjanc2OGZuWkpWbkJvK2VZczZJYmR5OTRDUkkrNUdtdzhFMkMrOFBIYUVFTkxaRWFlMkk4L2o4emVRRVBUUzJSdW51U2tMQWMxUUxKWlZVQklJR3MwNHJaZG5hVHJxN01naEQ5QlJ3NmRta2lVeEdFb25hUGROQ1pjbThJcHFGWDROdkRyRllIb05PUytOYmd5M21WdGo4ZFJmb2VDZzFCUTZTdEJSb1FwRnJ3REMvWW14QVVwc1UvSGlIRjZVRVFVTlI0bEc5R2lNZXZxRXVYQUlJSlltc2Z4UW4yVTVnMEN3U094ZGlKOW9RdXYzMk9hNXBDS0V3d3lYa3o3Z1JZZml5eWJ0aXdQRjZUUWdjS2RtMnA1MEhuMS9KOXZwMnJqNW5FbWRQSDBuUWYrU2FKaDl2NVMwUlBOd21SN0pJQ3FaVTVmSG16Uk9wcmlyb3lUdG9iSTN5emRldm9yMHJ5WlZTbytXTlc4a0plbnZPZitTWnRWenh1UWNZT1drb243anFrencwcHBTSEFOdVJHTHJHRTY5czRlNS9MK2ZVaVVQNDNJY3Y1dEsvNlRTdmtaaWVHUlNNL1FBL3Uyc2hHMnNpbkRWckxaLy8yQXcrLzdFWk9JNUV6OFk3eEI4K2RsQktZaSs1b05QV2h2QUgwSUlCa0JLbHVYbE9KVUdkQXIrZmloeVROVTBwbHU1SjBoSzM4V2dDUXhmSUUzbUU3djBPVERoMGJJUnNrN1dVbXhlb2hJNXdvb3lNWmFDNG5QbjVhL2xrdlJlNUYxUHpUM0JWd21HTmNIMnZWMVdWaFlkL3JjSU5ZZ2VEZmpSTm83RzFEWFNkOHR4Y2pHQUFUMVVWUWpmZHhKTERuUjliZHgvKytMS3FPR0RCZFZzRW83c2hhY0JkWXhTUERWZUV3Z0pSa0FzZUQ3clh6VUkzcThyMklTYjlvWFBmNHl1RUJuZ0ZEVnU5MUx6bXg3RVZTVFE2bEE5dm9XTHFlUTdoc0VSbGpsVjNXNEFtaUNSTDZJcUUyTldjSkNWeVNlVVdrWmt3RG0yQ1EySDFDalowZGhMc0JvKy9EUFE0T2I1VzlqRkU5a0ZpemNlVmZzaS84dUkrenVaOXM4RFRPUlJOOStFUGp6Z1FTbmdzUVU0WWVYa294OEZxYTBmemVkRUMvaU15TmZFcDlFRU9JdGNsTWxFcHQ0bUh5RmRvSVlVVEZZZzhpVEJCQkZTZnIxU2hzc3BjeDNCeUNLUktLT3dlUW5YTENDS2hhcFp5L24rWmZ0Z250dFI1NkkzVHVmNjBlWnc4YkN0L1h6SVhSMnFjUFc0TnkzYU01SjRGNTVHeVRSQ0tJK21TS01BUml2bWJ4N0M5cFlTbVNCZ2xGRXErdDQ4bXBXdXpOMFhDL1BESlM5blZVWUFqMUdHdnZ2NG84RlpLWVR0SDVnWitlWFVNODdTUGtLeXNKRnJmeW9kMWhlbjE0RWlGVklxbGZnOHJmM3lIZTIwK1A5Zi85SXRvUXFEckdwYnQwTlFaNWVmTFdpZ2VlaHJwRDA4a25jcWdLZWxXR1NpRlp1Z2tJOTJVZmVWT2l0R3hQYThTMzdxRGxITEkzMVJIY2RLbTJmTVVtUnMraTZld0RKVzIzM1VoREhSZEFnaE1ZR3RqTjdQLzJNbHRvOHRKdG0vRjhSaU1xQnpHOURzalhGc1p4UURzZm02TDVqVTBSaFQ1bVQwMGwxMGRLZVp2NjNyUGMzUk5NS1V5eE9BQ0g0WUdHNW9TcE96RG40TU5YZW1EbUovUUhNbTRaTTdxN2F2UmtZcldxRVZEZDVyakVOMGFVRmt3ZXNreFBiNWg3eGRZVlVESzBhZ0lKbmg4OWtwK3RuazRqKzBzQjhOZEcxSzVoQXlhNGFBWkRoczdjdm5ZSzlQNTlmQ2gvTFp1TXprL1YrUmQ2NjZGcHAvNnFWRUJ2bEkxbXBYYmk4Q1VHTjRNRXZxZXk3SmpSOS9Bd1ZRS290SGVPV0ZLdWU5dDN3NCszMUhKRlpYS2pUK1BDRm5pdWlFUlJvUXM5ZEN1c0hxcEtVaTNyUWxUd2ZUZEx0dmk4K044TGdmcUFJUWtZeis3NCtBTUNKbUZkRVh2OSsxTjI4QTZRQU4weXliOTlEeWM3YnZlZHM0QnYrc2dKZS9zUGpCUTdrOStMT0g1NTkzNU8vb3NiKzh3d3pIZ1duaDFuWFlodUlJRVg4VERhZWg4SmN0R080a2dDM0c0WFdSNGxBQ0Q5SUZ2aEN3VFNicWZlUldyc2UzUTE0c1EyQjNkZEQrOWdQQUZjekNLOHZ0dHpTMEtqdWFFREtCRVY3OWRIUWhYaDNiYW1xdklyTjUrZTQ4bkw4QnJLUEx5M0g4WDUybDBSOEVJU21JeDZJeTRhYjRjMEU1MG05RjJSa1MybWQvaHpSZWxCTHJtME5JeGpnME5wZnpnL0JKY2FvNERGQW9EMGtuVDJiUUUyenVJa0NjSFV6TkkyZ2xzbFNHL2JDYWE0VHM0eC9ZZHBYZEg0a2NXMTcxRlJRa21EczdsMnJtRENRZE0ybU1abmw3UlNFTm5zdGN4YzhjVmNjdkZvOGdMbWdQNitOL1NQNW5TaSs1Rzk1Z2t5aXNQNkY5ODViZXZZbWI5QzJ1dmY2RU9rSzh4dElKMFIyLy9RdFBjbXFEaG8wTEVJMXZvcWwzS2tMT3ZZZkRRNTZpVUdXTGRaL0RZby85bTIrWWxvQmNnbllGdE51Y29oM1UxU3luS3I4Sk8xaEtVVzVDSldyYnQyWXhscGRoZXQ1SFNnaW84bnFQZmJFNEkwR3lIUVVWQjlLb3FLcnRBNlNNeDlEQmFGNmlLYWlxTFFtaTdiV1NXc0txL01ZWjhvZk1wWHlIYm5Bek4wc1pBY0pPdmtQRzZ0eWZ1cFlDZk5KWXpmMHNBL1lqa2FldzVmTXdFUmJGbThQbGdJV2ZZUWY3NmNpY2ZXUm5oMml0OGZPWktQMVdsR3Z2Z0RBRWl1dzhyRzVuWkFlbnQwUGs0WWFPUW1mN3h6Q3laeFJjR25jWk82NE84MmRuS0swM3JlYk5sSXp0aVRhVHRkTjhuZ0dWaGxGZVI4K0hyU0wzNU9pTGdKN25FSmVKRlNYeFRaNUo4WXdGQzF5bjZ5ZTJZVllOQlNhemRPNGorODY4azMzZ0Y0ZlAzaWJ2aGVLM0xQVFNjVDlFVXRha0ltNzJhWHFoM3NQTWJJaFpsT1FhR2RoUVJUS1VnRklJTExvQzJOdmYxbVdmdSsyemFOQ2dwZ2VlZXl6S0NpMzdTQzRlSGNPeTFNY0k1N241N1VrbUF1TkdGWnVwTUtIR3g5WENPRDVUbUVvdWRpTStla0JOeVdPdEFaZkdndmNSd1NzR2l0WjJzcm5IYi95M1owTVdjaWZtOVZJSThpdW5SU2tqTVRBQ1YwVkIyZ21oVkVUTWYvemYxWFl1UjBtYjY3MjlneTVlWDBkSzFIRzFYUFNHakg4bnlSMXpRSjh3SHBhaHZTYkhvdGQwOU9XQmFnMkRPM0VHVVYvdVFRdENmMjhUeGxyK1RmMFhmNndhRjBIcElydmYvTjRCRW9hUDFrTEtwUG00Y2gzMStkaTRnSllsNTgwRFhzZXRjWDlESnBNRnhDSng3THIwTFJmc0J4em1ZUkNZRjhoM3lVd1Z1N05LUjZyZ2pvVDltUkhjYjJDbkhSaTh2b2ZndnZ5RG5FNWZUL3MyZmsxNjhFaG1OMDN6REZ3bCs2RUlBNG84L2h4WU1nMlhobVhZU2hULy9KcjdUVDhtNkdqWkNOOTY1QnZIOXZ0ZHArM0hOQ1hGYzh6NG9SOUs5YUJVZEx5OTJpZndQYXRHN3BQOGRMeSttKy9WVkZIL3dMSVJ4K0hOaCt3OStjSGlxRFBBSndVdkpKRVVORFl6eCszR1NTVkFLUTBvMk56VHcraTkveWJsK1B5bWwrcDN1NCtEbmkwSXJzdEdIWkpBZE9pcW1rWGZ2VGlLM1ZHR3RkbkVjYzNLQ3ZIdDNFdnRaR2JKRFJ4K2FRVnR2NDlSNWpyaWZJWFdOZ0JObnkvaXg3TDV3Sm1mODhFNENTaWVlRnlKUVdRWktFUThIeVlta1NHS3grSlBuTStpNUpVeDhjeVVKUFFldGova1cwM1l1aHJXYmFIejBPVG9YdTBXVSthZE9wZnl5QzJES2VQZWcxUnRvK3M4TGRDeGVBUUlLVHBsSzJWWG53N1J4V1NCdExiUTlqZE8xMUxWMzhrNG1mOElId0poRTRRemdxbzAwUGZJaUhVdFdnSHFQN3dmeVowNmwvSW9MWWRKWThQVnVEQjdQeExqNHBBK1I1OCtuTzluRmdxM3p5QThVMEpIbzRIT25mUW1BTzE3N0hXRmZHS2trdHJUeG0zNUE4TUttWjFpeTQzVStNZk5HcnA5eEkvcXhxRk9WSU0rd3VUaXZtK3VLMnhtU2pETHY2UVFQUFp0aXhTYWJSRkx0dDlkTGFtdHJlZkRCQjFtK2ZEbmYvdmEzdWVPT085aXdjUk5kWGEyY1BsM25ZNWQ0T1dlS2w5dzlYanBmOEJCWlllQjB1dmJHSVhQL0M1Zk1XOHZQSjNUN3J6QW1uMFQ4YTkrRmFCU3R1cEx3ay85RUh6RWM2L1dqRitNWFFxRHJPc09IRDZla3BJVEt5a3J1dWVjZXJybm1HcXFycTkyWVpqSkYvZjMvSUZXekRlSDM3OE5JVkpiVVc0QnVhQ2gwNGpYYmFiNy83d3daTXhMTjc2ZTh2SnhiYjcyVlYxNTVoUnR2dkpIcTZtcHljbko2ZnZ2OUprY2kzd2lsU0hwTWpPLy9uS0daYnVqV1hkNTR2MFBLbTB2eWV5OWtuYXREeXdzVkIzMmNtKzg0VkcvaU90L3p2SlNaeGhhN21xY3pwNktoR0d2c290bXA1SkhVR2V4d3lnaUtGRDhPM3NzdkVoL2xRSG10UjhURTFBUm56UnpEMTI0OGw0bWpxM29SMW9lRFBpcEtjaW5NQzlFVlNmRENvZzI5bXZ2MUdZYytMSGhTb1drNmpja09idHY4SkhFblRWR29sSmlWb2kwVFFkTzBMQm05UU83bHZEeUtvZ2xJTzRxNXBmQ1BuOTBEd0syZmROZjVyLzhhNGRFSDcrSHEzODFoNVI1RjBOTXZ2ZTdlanFmdU5YMDlDbEZlaWhMbCs4MHpCZElHeDBHcTQ5czNVSUFoTkhZMzJwQnZZMVFsT08rVGFZSmhFNVZ5OXlucFpQRXJLM3RPU2lFZGdaNHZxUmhqcytjTjhCN0VsUG5KMTY1NHoyT0tuQXpsVHZybzRGK25QTkRycGNmb1l3YWhnS1NkWnZ1Mm1xeHZMOW0yYlN2ang0L0ROTTArTklEcG85STlJU2ZrZlNpaUI0ZUUxYm51cXpOYjkybjFFNGphb2V6QkN0SXdlN1ROYnozTnJFMk9ZV2ZSTUY2dkNWSGJVY1ZUMm1XTWtYK25wRGhPZFFWZ0gwMzFvL2I5TjJaamh3d0NNOEswclN0bHRHeGphSEVYYmJsK0dKYVBZeXRVVXhxNU9lYml2eWR3MXVQRFRzbHlrY1FTRnR2cnUzbHBhUjNTa1l5b3pxTWprdUwxTlkyczNkWk9XM2ZTcllNUkFpRmNMRXhLQStVWUJEMXhUZzV2WVc3Qkd1YmsxRERjVzQvUHIrRVVUTVlZZkRMK1liUHdWMDNCTEJtSDBQYmxRSFJFVW16WjNjWEdIUjJzMjliTzFtMXRiS25yWWxkckhDZGxuM2c0UjFpZVRSWWV0RjVJMmlrc21VRVR2ZTEwdjFISTVlRXpRYmpQMlF5ZnliT3BoMGphQ1dEZnNWSkpUTTJQMy9BZGdvSDFEbm4xbXNJb3l1Q0o2dmpHeHBFSkhiTThnL0JJekpJMHdpZVB1ejNLYmZTa01Ub2M1N3lLTm42OWFTVHRLWmhXVnM1blRqbVRENHlaQ01EUS9BTHVmUE1WVnV5cXhlL1R1R3BJQXk4MkZMR3N0UUFsQnZpNkJXQXBpb3MxdHJHZWlaV1hFdDYrRVpTTjBneCs4V0lycjlTOHdLSmJUc2YwdVpoVVMzc25VMzY1aUlZdUQyYll4RXFtQ0FTcjBHWmV3NU8vWFVZOGR5eVk0ckNNaW96Vk96blBkbEpzcW0yanJxbWJ6YlZ0VEJoVlFpamdBUVE3OW5UUnRqRE84dlVOcEROMnorOVp0a1R0dDNjcHFiQnMyZXU3dXlJcE5tNXZaWGRqTjV1MnR6SjJSQWxCdjV2VHVxdStpK2EyR0dzMk41TzI3RDRiUjRhUTVPa1diYmJuYmV0RUFFVkdtZy9uN3VLcVBMZFpmTEdSNGwvZGc2bTNBZ2Y4NlNJalRaZGpZcXREOThFR0VqZnJRUUNFUnN5WEE0N0dHS2VXazFxZjVmYVdsK0RVRXNnN2g2aW1jY2hWeWtLZyszM29mdDhKSlg4RS9ZV0RFWi9oNWVxSjUzRHA2RGs4WC9NbU83c2FTTnVaQWZtdEN6MDVoMlQ1N28rQUhxdzV1emNQWnUrNWh6SytIOFNiK3UwWk9JNUVPVWxTOFU2TVVBbmRjUXNMZ3lsejVyQm5ldzBiVnkzbHBOTS8wSyt4WjFzTDd2czNBZ3hKWTJjSmw5NzZVYlJ3aEtLOEZDMGRma2g1UUZla3N2MFZNdnZmNkd3OEpscFV4SlNkRnZuQmZzUUJEM1N0QWp3SU5zc0V0YVM1L3JKVzhwYmxzMzZEbjkwcWhsL1RHU2E5K045WVQ5bmFUYlE1VFN3VWFmUzlqVitQaXMwdXdIQ29xU3ZIZG5RdVBHa3JiMnlwZHZjTHpXRmh6V0IyTkpRZ0RBZE4wM0VTYWRBRVYxMDJneHMrT0lVWkxidUkvZVJSV2hjc1F5YVRhRjV2NzBrdUJFTFRjT0lKbEM2b3VPb1N3cCs4bkJjSE8veWw1aUZlM2JHTXVKVkNHQ1lnK29jN1VvT0FEMUpwQ0FYWjExL2pDTjdnNG0vODYvQ2ZTU2FKM1ZhSDArcm1RK25GMVJoRjFRaFBIemcxZmorbVg2L1BaM2dwRFJYaTBRM2ltWlJiNDZJYkZBUnlpV2VTZEtmakZQakQvOVcrOE9IaUpFSUlNc2xtMElKQWdQa2Ixd0p3OVpUSlNNMG1rMnpHNHkvTjVuVDJqODQ5M3ZvVkhHLzg5RXFBQ1BueGpoeUMwOUJLN3FldUlIVFoyV2k1T1RqTjdRaS9sL1NxelNqYndkN1RoTGN6d3RSVXV6Yk1pdWFkbkdxOThPblFvTW5ML0NWUHhZVDN2bFNxYXpWQ3p6RHJ6NG8zL3FkUDFwVlNDajNiajhweDlzWVZqNTZIRzl0eEJvRVBlQmhkV2NrdDlhMzhQeDFNcjluRE54SUt2SWIrVTdjTytLTGd6ZXorWTZZWDMwaG54NlA0YW5MUUoxWVFHdFNOU0dkY25wY0JBajVMTDdvTHcrc2gvYTc4ellmdXh6aFNJVHc2UzJ1N1dib1ZOQk13OWJmbGNTc0ZtdGZJYnJuL1BUaXBBRHlHenBrVHF2Q1o3dnF1TEFoaDZ0cUpFRnRmN2RpRDJ0OXMySFFIblZ1MklBeUZuajhXajl4Qys4TXZVZnoxSVNSMmJjTHJXMG5JZHdkTS9Gb1dxeFVEZUJrQ0tTV0RCdy9tYzUvN0hGNlBoei84L3ZjOFhsdkxHaXZKcjRQbFREYjhkQ2diRFlHbWdSMFZGSDg0VFdpcWhkMmdJUk1DZE5CRHF0ZDJvT2NvN0c2QmNpRHZyQXd0RDNrSGpHTmJ4ODJwZC9RZ1BtbnpuYVluK1VEdGZXUXNaMEJ5UHM3b3p6MVphSkJKTW5mbTJad3hlU2JiRzNheGRmYzJsTWVMMmorZlhrbnljd3VZT0h3Y1JYbUZESzBZeE9PTG5rZVlKczc3UEFKNHc0UUxHVDl5Tkl5VU5GY014aHd6aHBUakVKZ3lGZTlKSjFGY1BZanpISWVHOWx5MVlxY0hTKzFMUVRDaVRWUUVkbFBYNENDbHptdHQ0L0E3M1h5b1lobDVJZG5UMmllWjBWZ1hIOGJVOGpwS3crNWU2VWlOTit2TDJKVXNvZExmenJ5T2FWUkVtMGwzUjlnZW1vbnRDUjFCbkU2NWZNUUpqWi9jK2pTWFRtM2pCMCtleW4raVh3ZGQ0eS9uZkpFSE5uK0NUVnUvd1VuaENwbzJMcUxWcUdmYWhRMXNXRFdMbEhXUXFrUm1MUmtOUEJwOCtud1BmNTJYWVcyTmd6VGR6NFVCUWtKTmkyVFh5eGsyYkxPNWVJNlhqMDFMTTVoNjBIeFltaGRkU1U1RXA5OTdUMWE0OS9vclp3dE9IMlJRTXovR2hBNmIwWUV4MUpTQlZRRkdrOEx3YmNPek8wMXF2RW45dFJENmYyQ21PU3JVbGg0OXcvbFZMMUFXT0RUTXJDelF4UGxWTC9CcTQrbll0dEUvOTdDUE9kZU9kR2hyYVdOcm9vTVBsUHZKMGYzY3RhR1owYTJ0REI0MkZOMHdqdHI4VUk2a3M3YU94cFViaWJlMG4xZ3c3ME9aWjVTOE02NEJDRTF3WVltWDhnK2ZSL0xSdTFFWlNjbTBTOGhzM2dWakM0bmUveXFGbytZUW1KSFB1ditzNFdVekQ2K1NBOFliLy9jWGRwMTRhTzhoS2VXbndha2dxZnhzRjhOeDBPaVN1WFRKZkN6NnhyK2pnS1NWb3FHN2xlM3Q5WlNFQ3FqS0x5WFBIMkxsbmkzRTBrbWtkSkJJcXZKTEtjMHA0TTJkNi9Ib0ppVTVlU1F5YVd6SFJpcEZkekpHY1NpUGh1NDJETzB3OVp5QXBzNDBYN3AzQzRZbTJObVNvamN1TGRqVm11THpkMjNHZGlRdFhVblFGRllpQ0pyazlOSEwrYzdjSnpoMzRncEFzV2hESVhjc0RyTmd1eGRIQ2NKZWlSREs1VTBab0gzTzY1Rjg2OElteHBhbmNLVG91UzZWVVVUbWQ5RCt6eGJzdGd6dldXaTlYOThBTFJ6R08yb1VvVm16Q0o1Nkt0NVJvOUJDb2ZmOTNQL3A5TDhmOU1RUlNLWVgxYUtMZmRwS0Y1S3p5OWVUYXlheXVldjkrOUJ2ZnJmSEY0MlIvdmRUYUJWbGVDNDhHOW5TaXJWd01kYUMxNUdOVFNqYnhsNjV6c1dVN0tPVEkxVjAvcDJZcG80elpCaUpwWFdnYkF5L0IwZnBLS240d3M5ZlJrKzd0YjcyLzcwS3BvN1FCSHBwbUVoM2l2OTN5OFA4OHRlNTVGU1drT3FvSVA2MitobEEwMGlsNGt3THJxWTBNSmdsclNsOHBpQ1NpRE5ZMVlDVmNKMkVQandibDFITm9wMXF2bkJIUi9iZFFRZ3kyWjN2QkU1K01EajVQMTZwZlNla0d1SDFjZWtwa29rb1pNWUMyd0dob3hMSmJPMno1dlkwU1dmUVBEb2RIVEgrdFdrM3FjN0lnUFhSK21ENU9lOXIvYWRRYUVKREtjWE91cDBNSFRRVVQ2Q01qa1E1NWQ0d1FnaWFZeDUwWHlrQXk5YSt5ZWhoWXdtSHdqMGNHMGZUSDlXRVczc2tkWGgybDd1K3I1c28wS1RMUDN1c2VQU082czFOVVJUVUdWbnE3Zm4zOW9Tem56b1Q2UDEwVzUxRXNuL3V0UUdoY1M2SFczU2pGM1VpNWJZZjhGUndVakJ1TW56LzAzREdUZTc3My8rMCs1N1R1VTlsSCt4eDc3bmVWVjgwQmFBU3REWHZZTmttd2JoaUQwTEUyTmlTWWVZRXlDc2NBMW80dTN2MDB3UldDaVVFTXBsaTAwUDMweHBiVGFwTlJ5WXFRSWVjdGdqR2ltY1pOK2RrOHM0NWs0SzhQTXdoZytuKzJ3UElTQVF0R0VBNVI2NHJXZjdsQjk4ZnhzNEdHUXh4ZUpoUVg4L3ZNUThPcEZnbEtGdEFya1Q0WEU0Y29ZRVhXTmdtK1U4eVRXMXVCYk5LSnBQbjg1Rk9KSGo2aWFlWWUrb3N0eDdjNHlWM3lGRENRNFlTcmg3RWxqL2NRZk16RCtJSmVCQUluRXlDZUZLamVPNDV5SXhOYk9WS2RNdDZ6M2pWM242Njc0NVhIMG8vM1Nnb25hSGhOdGJYbTN3MDRPTXJjN2V3Y25jTy82aXFwbWI0eWV4T2RaQ1lNeEV1S0tKMDdmTmMzbndQTTRiR3NYSkdzckVoeGJEY1RqYTNscUFaMXR0d2pJR3ZIOWRBWlZpeG94RE84cEoya3Z4cVJqRXhvZkdmQ1RzaDVHSFpVMFdnTW5DaUc4T3hKUUxNc2lLRUVMVCszLzJrVm04aU9IY0dlbUVlZWw0WXU3MnI1OURhU0lDN1ZvMGlHUnhvYjJOZHIxY3ZQTC93ditCQnVJVDlNcklRb2VlQTV1Withem1uN0h0UTJmZGs1RFcwOEZ6MmtmejMxelozOEJ1enBybjYyT29LY3Q1cDYzbndTNDlUWEpIQTZ0YlFOSVdodndPM21RREwwdkRuMjV3L2VUdjNQREVMeldzaG5VT2JVUVVGQlZ4enpUWE1taldMVENhRHgrUGh6RFBQWk1hTUdTeGJ0dXdZTjdyQWw2c1FHZEM2Yk9vRGtCK3o4SlFvZkdGQmJ4cDJRZHBPVTlPeW5jNnVKaUpXa3QzeERvU21IMU02UkNzcEpuRFR0V2dsUmNULzl6WlNqeitGUG1JNHZtcy9qRGwyTkNJL0Q2RnJZQmdZazA4aWNOTzEyT3MzSVp0Yit1d2dyVDc5OUhmMXo5N0x6SERpY1RnVzhwb1VvT3VFUG5zVDNsTlBCdHNoOGM5SGlmejIxemg3V3JNSmZob3FrMEh1aUNMTWRvVFA2L2E0S2lwQXhSTElWTXJ0RldJWUNOTTRJdGVsTEJ1OUlCKzVmUmViSjU3TG1HZnVZMFB0ZHM0N2JTNExGaTNFTUUwYzI4YXlMQXpESUdWYm5ERnJObjk3NEFHdSsrY2ROSDN0SjNUKzRUN01vZ0ozN3ZleEZ2ZW1SeGRqbG84aE9hMkt0dm8yTGh5djhIaXJlL2dVNTBmYWVlMFRyZ05qUjlxNThqTVRFWnJBeU9iM2JldW80M3VQZExqMnpyVFRTY2NUYUdvZkM2VkFZU2tUcVRSTXpYSTVIZERRaFlQTUxsNkpobFFhbzNJMjg3MXgzMkpKKzJuY3NlMldnOGJwMG1tYk5XdGFzZTFDWG4yMUFiL2ZqVFVrRWhaMWRURTJiR2dublhZNEhtUnZhdnhvTThQbHdTam4rK01rZHlYNTh6Tkovak0vdzlhZE5nZmpIbzBaYXZEeGl6eGNkbzRYVlQ2Y3YwUXY0Tkd1TTlpU0h1eHluNHZqcmZQemdTWDZwRHBjTmV4eWloaytDci8xZGRScFozTHYzVC9pOUhObU11RzBPZGpkcDlENXE5dkFUbVY1V2Z0cE85TUVYbzlCVzFzM2ZyOEhVTFMxZFpHYkZ5SWFjYkdmbkxELzdaL25ockE2TzZsOTRCSGkzbU0wbzFMQWtFSVAxZmttMjFzemRDZmRIRG0vQ1Y0ankxT21DWVNBeG00TG4wZVF0Q1R0TVlmaHhSNkdGSHBZWFovczB4NTN2TjFmSVZ6UTAvUUZ5SythVGlyV1NSa09yZHRmSjJsNVNDWnN5c2VjamhFYVJzbndtUmkrWEFCYU96TDg2N2tkSkN6cHp1VVRxVkFEc0ZtN09yS2w3Z21rOHRIZHVZZU9MZ3V2R1Vmb2NleDBqRzFibDFKUmtpTEZxZVFYVkZKUWtOOS8zTjQ5V0xUZ2hVZ3hyOFVLK0VuRkZzcE1GOWR0c1R6OHFYVXdjME1kWEZOUWo5NlA1RWdQTHp6cGNDWnpka08yUUNwQ1JTRXVQV2NNcnl6WkNjQlpNNGZ5eE11YmliVkZYVERWYS9ZQjVIenNpT0UyKytxWHdVZ3Axc2VDZkdEUU5pYVVGR0VHaXNBSUlHVUtROENod096cGRJYUZXeHZRTkpnOXNwSzJTSXpGTzlvNVpYQVJyYjZ4aUNLRlQxOUJPcklWMjRtakd3S1RKa3lLRUpnb3grVVhOalRaWXhNN1VxR2hNRVFFckRZc1N4SlBPVGdpUkxCMExFVkRMeVN2OGxUOG9XTFgzbENLK3JZdWx1OXE1OVJoeFpUbWgvc2xSaVI4Q3VGUnNMK3ZhaXI4TTlKb0lmZDUrMmVrU2E3eGdMWGZNYnBDWlFRcTNiY3g3RTF2L3RIbi9Gei8vUmhyYXh3Q1BzSHpiM1R6eHQ5enVmcy9LVlp0ZHZCNm9LVkQ4dWtmeC9sL2R5YjUyWmNDUEgxM21PMGJIRzc2Ull4ZkxhN2pWNG02QVZjMVV3ZDdleTBqcjhlZ1VLUVIzUkdVdHJjUGdzdjVvRlZWUURyVDR3WnB4WVhJOXM1MzNoTUxDOEF3SUJiSG1Ea2RmWENWcTFkMjc4RmVzeDRSRGlFQ2ZtUkg1MEdQOThtV3A5NXpYMHZ1Y2Nudi9EN3pYWFdpQUVJeWczT0FMbWhIVE5VcjJGa2ZwWFpQdEdjL2RXbnU5NDFJRXpDMnBJMExSbTFuVjJjdUdhblRGQTNSRkExbFA5OTNiR3RIa3BhT0pKbzR2QnJhUTRsTEhOUCtqSlNzV2JPR1NDU0N6K2ZETkUxU3FSUXltOGRrR0RycHRFTnRiWXI2ZWdlbDRpU1RMaCtHMTV0RTEwT2swdzZwbElOaDZBZ2hpRWFqYUpwR2JtNHVQcCtQN3U1dTFxeFp3N1JwMHc2TEk5bVJzTFhlNFo0WEpWdnFIYTQveCtFRGsyMUdERXZ4UUZNUi8ya3ZwRFhqb1NmelgyaGtiSXZWRGR0cGlYYXl1YldPajAwK2s1RVR4aURrOGVkWGFVQmFnOUd0T2w5YTVHZHZLcHhmd04yUk5QL082aG9KZUhYNHhKa3dZd2dvZXgraWVzb0J6U2ViM0dzL3l2YnQvMkpqNDJPazYyMktxa1pTK2ZuL2RUKzNiVERObzNMTlJpcXZpSlJTME55R0VUQndsSWJkVXlRUDhYZ21XK1VIeE4za1BEY3Z5elc0OWVJd3RpTnAzVklIdWdaWkFFa0tEV1NLejR6Y2l0K0kwbEcvQ2F0OFBOM0pTbjYvL1RiQTRNWVJuOEVnZ3FWaWxKWEV1Q2E4Z3UrMlZhQ00vc3VBMk92Z0xsOXhFZld4VVJTbXQxRCswUVRlT2J0by9ud0p3ZXJ0ZUltaEt3dERUN085N2h5UzhWS21uL3pDQ1ZMTWR4R2Z6MGN5SG1mbHFsWE1qa2ZRYzNMd2pKOUlZTFJMTG05R28ramhYTGQ0cXQxdFR1dXBxRVl2cjhSWnVvUllLc2FLK3MzNDBRaDZnL1RYemQ1YnA2RWh1TnFUdzZaUlovSGFrSk1SVmhySG94SEpGVFRsYUVSTldGMGpFTnZlZTBQVVNpQ1JyK2l1bGpqZENpMGp3ZlF5ZCtkU3JsNzlGRUs1RFd3TzVnb0dhcjN0dzRNVkdINmVlWGt0bi8zSVhPeExsMFBSQ0lqc3dBNUYwQ25tK2ZtYndQU2pCaUI5Zlc4Z0lxM0FWdTR2dERtOVFjZnUvVFlIV3luU3F2ZTUvMDNTSi9veUFUZ0NHZEdKclBlVHVxdVU5RzRQbVlnT21rT3N4ayttMVNEWjdEcUFhZ0NCZlVjcWFsdVNMTmtlNGN4eGVZeXZDaks4MUkvWEZMME13c09KYjJSc3Q4aGVLZzY1Q1pjNjNCL05ubWtsWTNUWHJhSnR3M01RV1E1QXJHMDZqdEl3Z2dXWS90QytoOUVQODdkT2hxaEw1L0dmTklCRlZheWJVWGV1WXVLZEwzS1M2VEJxV0NHVjA4YVNOL3NVQWpOUHhodzdGczNmbTRCRk9VNVA1MTd4RHMxM2xGSnNXUHB2V2xmOEhETnZFbXZtL1lxU1FqK3QzUnFkTytmeDhhdW1jT2w1bzJpcjMwUlI1ZGgzYmo1NWxBeVh3NVdJVnVrQ1dxMk5HTHFCSTAzcy9WamdFMG1IdUhMdnAwZzZQWHVBYmJ1RnJMcnVOa1R0M0xZRE1Od013LzNXbFpiVjNmc25UYXBzdGVmR2plMDlwcVp6R016ekNqQTB3WjR1Szl0QSs5aTd2MDEvcmp4ME5hWkJjbXZBWFVKQ2thb04wSFJYRmYzUGNnNVEzNC9LVzVHWnY1REF6VGRoVEptSXZYbzlhQnJXNjB1Sjd0aU5hbTFIcGRMSGhoMHBJSkcwK1BvdjNpQVVNRGwzVGpWWFhEQ2NCeDR2NXNzUG1QenUycjl4eG9SdHFLUHN0eW5Bc2hWRFIzaTU4cXdRRHp6YlRXZW5RL1VvSDhPcTNMVlZQY3BIWjRmRGE2dVNYSHRSTGtOSGVGbTFUUjB4N0Qva1FLRjFlTCtuZ0NKTEVYSWdZdkMrRitkd2RaUVNvS21zVis0U1l4aFRYTUEvODJJQWFRdndLdGNiVjJLQWRNWDdSNHlDZk1Mbm5VSDQzTk5KNzlwRGRQNGkyaC8rRDRsVjY0Nk5SSmEzemhzbDBRU1UrWW9ZRlJycVhvUFFlNXRaZS8wSVRVUExKamZ0WFZJalEwTXA4eFVoa1VnbFQweUFZMVE4dVRtZ0ZLR21QZVQ3RFRlcFl6OS8wWW1tVUZrdzA0aEdLTlExZDgxbkgybHBrUmZMVHBQY1ZJTXc5R3dDVTNiTEU2NXE4TmdhS1pFbThLT2ZNT3lzNjZsWjkyTnlTOU1NblhRSkJUUG1rbjU1RWY3RXdUa1huN2twNkJhdEpoU05MUTVidHp1c1htK3hmSzNOMm8wVzIzYzZKSklTMjk0MzU5TEFOcStpMEZQTUdMOUpiV3NuR3lKUlVnbDR2YjZlaCtZL3pUQU52bmZ5Y05idEVKdzNaZ3d2L2Z1ZnpCNCttdUdqUnhFSUJORGVVaWptT0E1S09UMjlOZDhLMHZkcysrYnhwUmUxNDh5ZmVDdUFMSVRDenBpRS9XbHVHMS9EamRWdXNtSW1JOURRUURra0N6N05EMzd6UWZKODNhUWM4T3RlOHJWY21sdmlQUGZHSmphczdtVDNqaWpKdGhqZVlvTjBSdzcvOS9oMGZ2bmxCVGhwZ1pPQkVjRVVMODNZd0wxMUpYeDE2MUM2azE1MGorc1g5TGUyQ3djMVBuSk9MbCs4cXBBSnczMTljS3lQcEZpZ1VsaFU0ZWpWYU00ZUZGNTh6bkswWklxWTc3ZG9vaEROWDBSbTVQbkVMeCtNcytwbFpEQU13eWVoajUyQmxZaGhqWitGWjk0RDRQWHYyMi9lelRiODdyY096aHpQelVQbDVtTG9qZnRXclFCZDE5QURmanlmK0JqeW9ndjYvMFl2bU4vcjVmSm4vblpjclRIbE9HUmEydkI1dlNqSElkM1lmTnpxQ3lFRUltTXphbkFoSXlzSzJWV25VVGxvTUlGRUZJY1duSGdYbmR1YWtkNGdIemo1U21Ta2tZemNpbFZrMExtNG1hYVdSZ0xTd3RtNGlUa2Z1cHhFSUVwemJSUERTZ3NaTWJpQXh0WXU4SmdEaXZ0eCtlWFEwZ0kvK1FsMEhtVGdQRDhmdnZNZDk5eCs5QnNCREMvRUxIaHpiNjZDQ2ZwYkd2MHA1UnFLVzdxaHBoTkdGc09NSWxoU0I1NEEyR3BmUHZGZUtINy8vT0s5NUYwYnUvWXAvc05wSkdqcUZxY1VMZWVQTlRmeTB3MjMwSllxWUZIcnFmeG80cytZVWJDSzNiR3FBMTdvaUhBdFh4anpGejVTK2lqbWtnaU5EM2xKYm5MdGc3ZlYxRWtRUHNpZGExUDA4UXk3SzRmejQ1cFA4ZmNkVjlDZENYTjBPajRmYTBvRkFnWmNYYUh4K2NFNnd3TGlvTFZ1YW4yQ3lEL2JTSzlQdUpPZ1ArNmxZWURIOC9iM0E0RURFd1pvbXZ2WmdTU1RPV29rR2dNcHFiekNmb3lqNlFoVEIyem12YkdkaHVZSVhaRVVHQnJ2aHZLNHNUYU43a2lLci8veVJUYlh0aDMwODg5WVdWdENkOGVWVE52OTJxamcyTmlyM1djUm11ek92NDduM1VidFFoLzQ5V3kzYWoyMWJpb0Rkc04rWk1zQ3pES0pVU1pKMStna1Y1cHVFMm5yUk1EL2hCemxOU01sUms0WXM3U1lQVi8vTWNFWmsvRlBHRU42Kzg0ZVhTODBnZDBad2ZSN1dGQTFnOThHcGxOakZKQ25VbTdSMFFEb2tiZGFkdmw1NzlSb0tOdjlXUE1naEplMERITEZuejZIcVN2eWk5alhXRThKV2hQVjdtZUdSa0dwSDZYU0lEUFFEMlR2QjJPSlNxWFFBeWFyTmpYeXdyek5CSEs4T0VLQXh6ajZrR2pTWWZMMElsNTZZQTZYM3JTWXA1Nm9ROHMxZStLR2ppWEJyL1A4dkVhZWY3NGV2RHJDbzdseFIxM3kxSXFSZk9HS0pVejFXMkRBNVV0MVJnUWthSkpuTmd4R04xc29DRm9NMVR5RWRBVkNrWkN3SXltWTEyRVFkd1Q1aGtJSU4rNXU5L1YrS0FWS2ttN2RndTdQSjdGakVjM1AvUy9LNnNKVE5BcXJzd2JOc0VFWGlQMGFkeWtCT0FwcEtUSnRMWFFzK1JNRnAzNGVvWnRIekhBVndpM1c2WXdrZWVuTnJkUTFkYkYxZHh1WG5UR0I0WldGSjVUV0FXVDRqZitpYlVzVCtIWG1SZFBjOWZmRmZQckthY3ljWEUxYlI1eXYvdklGRW8wUkNIajQ1Ny9XTUdiV2NLNy8wR1RHRFM5bXlkbzkvUFQzODhGUlBQL2thbjcvSXpqdG9nbDg3TUtUcUNvTGMrZS9sdlAwUTB1aEtNZ3pEeTNsbDM5OWtlOS81UnhtVmtjeDBocDMvZXh4N3YzYkc1QVNQSGgzaXMvL3BJVFBYVDJEMlpPcmlTWXkvUEtlUlFjM1g0VkE2RHJLdG9rOCtReStreWJnbnpFTnNaOE52amNtUDZ6QXBDU2tNelRmWk5tZUpPdWEweVFzaGFtckFUSHJsSE1JaFp4U0hwQk1SdTE5WHd4OFVXanQxbldIZlc3OXRUZnorMlV2TUlaY2RPV1E2cmlMN2lFbXRtWVFRTEJZaS9HbE04OW4zZjIvNzlNYTMxLys4UDNyK3ZCZGJqN1UxTkdEZVhQRlJ0bzYyOGpGb3JXa25GRlRUbUxRYlQ5eGZiYStiRElmT0h5Q041ZndGc2Exd3F3V3NBV3N5NGNuaDBKY0Z4U21KZWxOdFloSms4alVOUkY1YWo2Rk4zMFljUVN3ZVpXOWY2a2t0RFVxZ242THRORFozYVhoVVVuYUVFd290NUFaaDhZOVVGcmtYc3RBaXlPMXc3clJ0bVBRM0JoaVF6TEJsbVVUeVEvT0lUZzl4RmJkNXVsMTFTeHFmSk1MaHRReXBURkVJSlIySVdaMU9LRE04UjdqRkgyWk1UaFdndTdHMXdnV1RIRHp6NjBFNmRnZTRoM3J5UzJmaTI0RzZIZVN5SVBRMGQ3S0NxcS85aFZLUDM0VjRpMllUdEVsRjlKMC85OHArZWlWalB2M2cyaW01OGpjYVVPaE90MUF1aFpXaUJ4RjRNWWsxbklUMmFxQno4MjdNSVpJbE9TUWk5Q0VVdTRmQ2tmVGlRVkNOT2VYc0xOaUNEWFZJOWhaUG9UbWdoTGkvaUNPcHFNZGdoNThOLzFnSGtYOXdDRnNvU3BMZmp5MHNCbERPSnc2WWpNTlhRV3Myek9ZdG1pWWIxMzhiNExlRkk4dW0wVlhNa2g1ZmdjVmVSMjhzR1lxUXd1YnMzTnI0RmtpbGRSd3BNYVdQVlZzMlZPRk1DM1VJZVRaS0tHSUp2Mjh1SFppMW5lVmV5ZkkrOTcrbFlPcVNTbUZrVWhRWFpxTG13NmdlbWpKTFVlUnlYR0wySVVqQ1lUMzdhMG1FTTRQWTlrT0hmVXRDRjEzR3lTbzNrMmJUWStYeENsamlIcjhtTGs1eUs1T1RETkl4Y2VtMHJaeEtZcXhtRDV2cjJiUDc0eW5EbXhkZ3FZTGtrbWJwYSt2NXllWFZGS3pvNWhnc0pxd1gyUDl0aVorUG40ajk3K3BrWXFtMEVLK1h2bXo3d2Y1d3I5ckQwcTNkY1p0T2xJSyt5MUt5MEVqbG9IL2U2MkpmNncrMGFUaXJUTEVreml1eHVzWlZOVm5jMG5aTm5aTGU0OHZLSFFkbzd3UVlSaDkzeHM2TnIyamxXWXJRYWsvdzR5aWR2NXpiaXZmV3pHQi8xMCtHdDFyNGV3bE04cm1vZWlHalRCaDVhNENkcjBRNElxZk5xS2Y3ZTREcGVQU1BQclBjbGFlVjRnUnlMajZwTCtLZ0c2NXBZLzd1UU9yVi9mTytaQVNsaTJEYjMzcjRKbHJCOGhIVWdyeVBRN25sOFhFSUwrbFJ2c3kvTHMrck5xNmRERjdoMXVvdW1pWWw0VEgzWFlkWFNENzBmUk4zdjMzOTU2Z2ZvVUlTV1NUeHR0KzNMWlJhYWVYSGFNY2dVbzZaRjVlUW1iQjh0N0hhd3F0VEtKaUdpUVBIUjhXZlhCZGhZQzlmUUxqTWNXOEZXNGU4bVVYZUFnRzNQRkx1My9UYU5VaHhteVZsQWlQQjJIWjdGWXgyb0NkV0p5czRYYnZjeUNGdzA1cDBZWmtOekdtV3ZhKzN4b0lJbnFwc0JwYmlhL1lRRjhLQzFKcnQ1TFpVWTlSa0VkL01Zei92OSsrZVdMVEhIQXQ5UmJ4Z2NvSDRaTW9IZWdHV2xSMjczTGp4YUdncTJZbmp0RW95b2NSUXpTS0NseDEzTjRwYUdxRnRac2wwVGpVTnlsMHZWZTZjTTl2QzFSMlBmYWhlWWFBdExUNDYrc3RUS24wY09uNFBDVHFMZldNcmk0U3drQ1lKZmdEUVo1dVdFdlVTakNuY0F4bFhrKzJ5V2hmTUk2M1M4YVdiOU8zbGkxN2RKQlNpb3d0eWRpcTV4NEkzTHlEakMyeGJIbEU4dzNpNFFKWFFiNkRmeEdMWjdKSzlqMzhpODI3MytaZlNDa1FQc21rNmc2RUZTSzNNSitxOENDa21rTmxxSVZsT3d0WTl1WmlxaXJLcUkrVjBtM2JDRzBBM0dmbDVvVEVFbEZhdWhxWk12WjBETk1tUHhEajVDRmx0RGpkZUx4NXRIWTJFRTFFS1RUOXgwanBoVUJLdDZsU1lVQ1EwaTNTa1owSWo0bDBNaWpIWnFCSnVETW9ET0I2WHdHYm5SUVJ0WmNHWjk4TmFyVU42dFBlUHBOOUhrbnROOEh3OFpOd0dRdmlNZjU4Vnp0UExVanp2YzhFK2VDWjNuZFlmbG9QWUtYc05weklLeEI1QlkrZXd4anZVTVlFWjNEdFNXZlFZbHpCMnE1VzVqV3U0b1g2bGF6aGhUNk5Wdmo5aEQ1NE5ZSFR6a0g0L2FTV0w4YmVzeE9FUm1yVlVwSUxYeWJuNmsvaUdUMEJ1M0VQMW81dEJDKzhITE42S0IyLytRSEpKYSs1OFlIRG5OREhXMTJ1Y3doelVDb3dkY0dhaGlRZmYyZ1hMM3g2T0lQelBUaktiYmoydVZsRlBaaVFFQzZCVWwxWGh2UHYyczVESHgvTXRLb0FscU1PdWZhOXR6dWpEbGVoZ1NGZzJIQTBmd0N4ZWpXVWw3c2ZyMTZOR2pRSVdaNnQrWFZVRnR2cis3NFNWb2ZYQUVhVGtKQTJYaE0ydkRhZlB6NjhpUjlmZXpKU21Iei8reTl4OHpWNzhPYWRoRWNtQ0VqanNGVko1SVNCZDBMZVIzS29wcUJTQ3BSZ1IyT1NlY3Zic1d4WGR6MHl2NGxvd2dZRVAvakxOcTQ2cXd5bHdEUUVaMDh2WkhDWkg4VFJhOENsTkxmUlpUSUR4VC8vUHVRRmlkMjdsY1NDMTlnNnV3YXRzQWk3cFI3dnRzMElueDkxbEd0SDkyNWhrZTQweno1ZFEwR0JuM0RZalJOR0lobWVmYnFHRDE4eGluQ2U3eDBwT2c1SGpyZjhuYjdtSnRoS3NxbGxKNFB5U3ZFWkhyYTA3V0owMFNDOHVvRWxIVm9UWGRqU29TM2VUVVZPSWFXaGdqN3Rjb2ROOFpnOVRTYVRwRjUvSGUrRUNXaGVselJUZFhTUVhyOGUvNXc1YmhQVWZseGpYL3pneElNNkx1Z3pHVnlXaTRnMzl0akFDamVQYXZMd1ltNitaQ0xXQURTMnV2M3gveFpGall2dlN3bEs0WnQ3Q3BWdlBFYjB2bi9UK2IzZklIeGVrcys5Qm9CZVdJd1c4SlAvaHgrVGMvMlYrM0J0SWR6dk9FS2lhVEIxRE54d09WeCt0aHVUSnd0TENBR3RscnQyaTAzTHJjWHh3VTFYd2dmUGdQL01nM3NlZzVXYkRxcjg4cUR2b1VxbGFmN3RuUWl2Qjd1OTg4QnJKZHRvV0E4RnlabDdLb1hYZjRTY3VhZWkrWDNIMUpTUTZReWQ4OTdFNnVvK1JOdGJZSFYxMHpudlRRb3ZtSU51K0E5N0RKR05Hdy9iVDA0Qnp3SXpoR0NzYlJQZHVCR1VRdGcybTRCbHRiWE1BQ3lPWXFtYURzSXYwWW90N0IxZTlKRnBVby9tZ2Fud1hkemxMcTFtazlTamVlZ2owKzR4bFJtRVg3cjQreEUwSXhSZ09KSVdFU0J6NlJsVXpKcEt0T3hKdkUzYjJIWDZMQXFMQ2xGS3NmdTBpWlErOHd6UnNwRlVuRDZMak9tblplbG04aHlKMDhkNy9kWDdWbkRtS1NNNTcrZmZJK3N0a2dLZVdkZkVTL2U2elpiT25UMmFzMy8rWGNyZSt2a2RLMUFLenBrK2hyT20vcFJnYVJZV3RHRCtpbVplWHJZQ0ZKeDMranVjL3c3Zm53YWVXdHZJSy9ldE9LQ2ROYnhvSkFBTjNmVjBKam93ZEJPdjRXWCsxaGRSZ00vMDlhcWwzY3Nya3V2UHczWnNmdi95TDNtNjVsbStlTVl0bkI2ZWlpMnRvOXBvZG44Wkgwanc4YUpPTHNucEpGNGI0NDVua3p6MWFvYnRkVzlQWEpKUzB0emNUSE56TXkwdExZd2NPWW9ubm53R1lUZHoyVGsrUG42Sm40bUZIdXpGWHBwZU5rbHUwOTJ5amNPQkNLVkNlRDNJdWowNG03YWdqeCtMM0xVSGJCdHp6aXlzVnhlaE9ydGRHMjNwQ3Npa1FRc2RsWFJISVFSU1NzTGhNT1BHamVNem4va01RNFlNN2ZsOHg2YmROQzllUWRqbmM0ZVhuU3NLZ1VjNUdFaFNHQmc0K0wwNjBUZmVKTEZoTTZIcFV4RUN6ai92UEVhTkdzV29VYU42Zmt2VDNwL05Ed2M2MzhndElaSzBwVDA4c1hranI2ejRHVE1uL3hpbEJFdlhmWmN6cG42VDlyUUhsRHpvY3FOYXA1eGFwNXc2V1FJNDczbUtSSUN3V0d5TjQ2N2tKZGpvSkpXWE42engxRGtsNUlrb0VSV2tUZVd5eHluR0w5SThtcDdMSzVuSlIyV25FMEJoWHBEckxwdkpTYU1xRDhqYnFRbkJTYU1xdU81RE0xbStmaWV0SGJHalJnV2lsRUtpMkJxcDV6OTFTOWlWYUNQcFpHaE5SUWg3L0l6UHJXWjd0SWtYbWxaemVkVk12THFKY3IyUm96YnZMVWRSRmpZbzdtcmg5M2Y5aXhrVE5INzFUYmQyKzlWbE1YNS8xNys0K1llL29DeGNRanlsMExUK0dXdFlwZzQwUWQzR1RqMVd3MzRPNWhHK1IvMk9weW9RdWtMRkRiYXQwUmwzVHBJcnZobkh5UWpJWkYwaEc5QWxCQVYyWENFY0RWM1A5Z1J6Rk0yMU9vWXVzZzNqMy8zbnBxVGYrd3FVeU9xRVkwQlUzeGNmQ2tnbTA5aU93a3FsU0NSVDdLMy9WQ2ZJMDQ4cmlUVTIvZGRkODNQUFBjZlh2dlkxWnMrZXpmcjE2MmxwYWVFWHYvZ0ZyYTJ0UktQUlkyYWNTcmk5Z1RRRkNWMndJY2RkV3pNNkJRRkhJUVVZNmdRRjVpRVpPaEpDZmtsMVVTRlJ1WktQVmRmUkprb0lCUXkrTXVZdkZKcDFnT2R0dU92UlVkUUNkaWV4NTdjalRza25WV1ZTNW10aVdTWkFzUlpuaU5GT0pnNnlLWVo4WURka0hERDE0eUpQNG9Uc20xK09WRFMweFZtOHJwRTlMVkhHRHkya29TM0d0ajNkMURYSFNhU2NySSt0VU5KQUtaMmdtV1JxVGcyejg5Wnllbmd6WTRMMStNTkZ5Skp6MFFmUElEeDBKcjdxR2VnNVpUMC8xZEFXWjJ0ZEY5dnF1bG16cFpWTjI5cll0S3VUaG80RXBCMDN4OUxVMGZ6bTI5enNkQTA0RVhBNndXNEhwdzNzdlgvdDd2dE9Oemd4a0FsUWFWQld0aWVIQi96aklmWWFCR2VDeU1LTkt1bStKM1JvdXdka2xqSmJtQ0M4b0FWQUQ0R2VDM28rR0lXZ0Y0R3g5Ni9RZlY4UC96ZE1GSGROKzNRZnA1V2VSdGdNazNTU2lPei9IQ1RGM2lKR2hVZWdad0daVWVFUmZIVG8xYlNtMjlCeE9ZMFVDci91SjJKRldOYTJqSlNUNmhkRkp4TTZUcmVCWjFBS3E5bUQ1bmM0WGduR1hOV3JxRS81ZWJXNWdGUW1nMlpibE9lRW1UbG9PS1VodDM1cjVxRGhQTEZ4QlpxZEpKVXhlYlc1Z1BxVUh5V09IQ2Q1UkRONW9mRkJwcmFWY3NtNFVmeHI5WFpNTFlEak4vRjRORXlmbjR4bDR6RU5TdkxEbUtZSmZ0UE42cE1PNXczUDQvR1hmODNPaUlaVE5RWGFrejI4dTRjaXAwNnAxdDU2MFZLNnZVZWtsT3lxN3lJbjZNWFFOZElaaDY1b2lxclNNTlZsK3hadmJvNlBjTWpiTTJ2Q0lTL1RKMVRTSFUwZDhIc3psc091K2s1Q0FTKzZycEZPMjNSR2tneXB6R05vWmQ1K3oxT0pSeGNlK3IzVmdNbStEamFtODJpMC9HOTdwbkhIeEVKanROZjFBUzAwNG81NVFMT2ozRXd5enR2RmEvSFNZdzQzRXlpVTBBaW00NXl4NFhuQ2Rnc0ZYZHZaVUo5aTlPZzhtbHMyTXJIbG53VDlnaTB5a0NWWVZvZStxRTY0aHNlTTZNRFVpdEg4ei9RUHNhSnhDODlzV1VSOXRHMWY0N1IrRms5ZnZ2TTRtVGRDQ0pTU05EZHRKUWNma2U0T3dxbGQ1QVo5Mkk0Z3FmeU1tbjBSZ2Z3U21wbzJVMW82R3RGUENlbTN5S2Q3THpZcDBIQ2I0YVlpT25aRXcwU2lJN05OYWQrK0lBWGdJQW0wZVdqOVFndnhnQWZIa1FNU3k1S0FtZFpaTGFMOElWbFBpVjl4Vmw2YzdrS2JleklwUm1WeW1FVVFGZENJWTFIVWx1UWpHSGhrbkVmU3JTU09JdStGUkxHN0s0ZWtnRXpLUXpnY0J3WGQwU0RiT25OcGorU0Nua0ZGa2xRUEt1VEdhK1p3eGZnaXl1YTlRc2MvbmlLK3ZoWmg2bWhlWDYva0JxRnBLQ214b2hGOGc2c292ZkZqSkM2Wnp1L1M2M2xrMmZPc2FhMEZUVWN6dmRrWTVEdFBIRWU4ZGN3Q3gxUVlVUy9kblZBYVZtQzc1WXd5RGt0WGdzZUVoVXRnOEFqWE5oZFpSUkZwOUpDckRES2FZcUQ2ZTVvVkl3OUxNVGdkRGNTWFBVMzg5WDlodCs0Q3dDZ2VUSEQyaHdtZWRqVjZRUVZIbTdSY0tVVm5Nc0xrOHBFc3JkdEFYWGN6MVhsbGxJWUtTTnNXc1hTQ3BKVUdQLysxMGxjVjQ5aFIvRGtqV04xUVJ6cVpRUk9LTlkxMVRDb2ZSQ3BlMXkrLzBjczJQTTc2RlJ4di9QUkNnVXFrOEl3Y2pPZUNPUVRPbUk2V200TXdkSXp5WWtJWG40RjM3RERpenkzRTJycWo1K0htT1JseGJxeGVINS9xckp3ZnF2amtzNkhxMlJ1OStROUxZZjRySmJUZHpMclRBUlJ2Zk9hQXd6ajdOeGU4eXpxR0VZTUtLQ2tNZ29LV2pqamJkbmNjWWZyZWxiMWVCUWFIUUVtOHlUM2tsV1hyY0pUZHM3ZExtWUk4Rnc4d1pBUi9idSs4Z3VJQ1A5aHA3S2F0YUxydWNsQVBvTHBNNVJXOWF6MWdYL3dZbFgxSXV1RTJ0WDdIL1hzQWl1K2NZOFJHZmJmNkpBR1l1b2FkdlRtbXJyazIzMXZQVVc1UEhLa1U2QnBDMXhHNmRrejJpenIyd2FUc1JHeGJoMnAramZZOXVSaDZncHlLQkU2a0M3bkpScWJMYU4yZFMwNSttbURiRzRqMmRWQTB5WDFpQTBSaTVmb3Fpdno4Zkw3KzlhOEQ4UERmL3c2MXRleVFhYTZNN09RSHdUS3U4ZVlUVXc2V1ZPZ0JpQzQzMlB6Uk1FYStJclZMSS84OGk2cHZ4N0ZiTklRQk1pbG91dHNIR3BnRmluU0RkbGlYSVBLdUFMc2RsVmdKVmlNNDNRai9lRENyRWVGejNSSTEyMFlZQmlMM1hMb2ZnZm9mbkVsODh4YUN1V0Z5TkhFYzlLb0JVOU81NU5SejhSZ2U2bG9heUtRU2FFTDA2Q2czQjBHak85ckZpL01mWi9xb0NhemV2b25haGwxNC9FR3NSUHg5eHgrL3Y0d2ZQWmJkZFhzSWhvS01temlSWkNMQnpybzZoZzBiaG00WTFPN2FSVEFZWk9LRUNjcmZ0RnQwSjExdUM1R01vT0pkTEsvTForM3VLWVF5YmJ6SklFYmtkekc2c0JPUnJYRlVRTkxTNmJhQ2pLdG9RZGZkWGc2V283RW1PcHlrcGJNek9JWS90RlV5TXZvNlFqcnNLUjcxamxOcm9IQTZxUUNQdytLMlRoNjhPNWVVMFEwNWtsT0hyc0h2OTNQZGlNVjhzMzQyUTBwZzlqbk50Q1VLbVR4MkI1OWVlekprVE1SQllOS21LWEFjaFV3cWlpbzBQakRkWU9OdWg5WHJYWDVtaittR0dCRnVUQ2Zqd0J0YkhHcWEwaXhkRnVleWp0ZTR1UEY1OGpXSEpPS29lZWpLY2ZCVWxsUDI5YzlUK0xITDM4YS9lTXo0UEZrZ1pGUXhqQzhHTFNTWXNEaU8zemNPNjM5L3hNNTBHaVZoNUdsZXFuLzViUW9YMUpIWkxVaE1oTVE0eUYyVHBTdFdSM0xNaXJBbndxVENOV2ppMEo2d0ppU1RDdGNROWtSSTJ2NWpKRmRJNERnT3VhRXdqWkVPb281SktCQjBzWmlqUERMTjBDbVpNSXBVWjRSWVV5dUo5cTRUOXRUN0RmZDRsMCtFQUdYWitNZU5KVy9PTEx6elhpU3hhQjA1RjFSampwbEl5K3ZQd0ZhTDBCVVR5UjA5QXYybFd1aVEyWjZRQXlNWnl6bXU3cTh1anZ4NEZaQlVQaXluaUhaUkFBaHNwV05qdkcwOGh6TTZSMGthdWx2cFRzYUpwWktFZlVFYUkrMjB4anJKOVlWSVdtbkdsUTFqZUZFbEFZK1A0Y1hWN09scUllUU40TWdrbXFhaGF6b04zVzNrQjhJNFNxRnJHaHhPK3cwaGNLVGlycWQzZ1FRemFQVDBOc28rQUtJcG16OCtXWnR0VmhvRzZYRDY2T1Y4Wis0VG5EdHhCYUJZdEtHUU94YUhXYkRkaTZNRVlhOWJyKzNJQVladnBlQ3FHUjFjTmFNVHVaZXJUaFBZYlJuYS85bENaSDRIS3ZNdVBXS3p0WUpDQ0xSd0dPK29VWVJtelNKNDZxbDRSNDF5NjNFSFdxUkRSWDQ1M3ovM3Mxdy80eks4eHRHemR6NDErcFZET3Q0UUR2cCtkb1F1Sk5PS2RqQ3BjUGVBak8vbWQxMjRDbnY5SmxKMzNvZm4vTE13WjB4R2VBeXNaYXRSa1NnNERzNzJIVWRWbjZYeUNra0I3R25HOEprNHluTUFQcTIzK2hjSzIxWUlVMGN2Q1pOSzJhUU93S2ZsWW1PQXJ0amQ1V0Y3bDBaWlNRb3IwazFyT2tRTzNYU3pqYlp1M0I1cEI3RXU5WGZWY0FKQkN2U2NMTUZvS21zVEhqblB3VG5PY2ZJRGJmUUNFRW9nTklHdUZGZzJXbkVSc3FNRDUrbm44RngyS1NJdkYrdlo1eEZGUldobHBkRGNoS0VrZXRaNEVFSXdFRmxNcG5iODluayttSDFmSUdqcmFPUE5kVy9RMnRsTng2WW5XUERQcjFCZFZJcFZNQXVKUmpVdk1mL3V5eEd4MzdJcUhtYng2bGU0L3BLYkNPYm11L2YvS0lsVVlFbndHQzZsMHpNNzNmZHZPTW1ORTJjc054ZGRQOHB1bTZFSlJoUjVLQXJwUGYxWHgxVjRLUW03ZVd0bmpnMVJtcHZlYTM3UUZuUFkyWmJacHlmN1lxLzNwUzVUWlhzakFrWklrVHZGMVhPdHp3dXNEdmVtQ3AxK05kN2R2Z21LakdOdzN3dVhzcnU5bUNGRkxYempuOWR6NXJpMURDbHFvYms3RDQ5cHV6a01qb0doSEs1b2ZJbWI2eDVuWkxLZVRpT0VjelI5ZFZlaFlYZWFsTis4bTlJdk5rRFhPOXluN1BheFpSZjg5QXZ1NnkyNzRIVDVsdU1QOXJqM05uLzdKTFlUWS83S0xXemFJcGswdTUyVUt1SzFGUWFXYmZHQnM2clFSTGgvNzN3MmQwL3BCbnM2T3ZsWGJoeDcySVdNN0xTSkJFb0lGSlJTc21NakkxTVpsSlI0Um84aTcvT2Z4UmcwaUs0LzNrbG0yemJ3QjFDYXlQYXJHZUJIN3puNC9XSkxhejBBRTRxSEhOWnY5Zlg4ZHpZck5aUUo1RWhFdFlQSVZXZ1NEQ1ZZME96d2FKY1h6OWd4ak02cG9NQ1h3VTVCU1ZrcGp6LzJiNG9LOHJuNjZxdXpqeTRiMC9WNkdmeTFXeEdERmMwdlBvanUwUkNoVXN5YzRRU21uVVZtVndQMnVnM28xbnR6U2ZkdlAxM043YWZyS0hCc1d1MGNBcDQwdXRjZ3h3OEZWanM1UHNYb1lCcU5OQnRzUHhFblNtNUE0UFhvbUI1SmF5cUhQQ01DNzRCWEQzVDl1Q01CdjhXaml3dTQrMlBUV0JGN2czbURmYlRqWVVrTVptdlRlWFJ4Q1B6Tk9OTGdoQnhqTmxqR292T1I1MGl1M29qc2lwTGV0aHZmaEpHb3R5U3VOU1o4UEZDVFI3ZFBHMkFjdW5mL084dXkvbXRRVFdHV2c0eWpVdHRSeVcybytCcjMvZUFraEgrRWF5MmJGZStKaFBhWGFKcEF5ZDU2eGRBbGR0b0VSK1BIbjNtVzczNThFZGlRNmRZdzlmZjJRNFZ3OHlodk9uY1Y5encvWXgrR2RBalMzdDdPejM3Mk0rNjk5MTZlZlBKSlhuMzFWVmF0V2tWMWRUVnIxcXdoazhsUVVXVHcvUnNLdWY3aU1GNnYreHNxRGNrTmt1NVhISkliSkNyRlFOTTF2MzI5MmREY3JOSHMwNmpORjNRSERFcWlrbUcyamRFQ0lnODMyYnhIdjBxYTRsMDBSZHRkV3lTTFZSMHpvWHBkWUU2WmhEbjdGTkpQdjBqeThTZlJjbk1KZnVPTGVNOCtIWHZWT3JTaUFrUkJIaW9TUmVnNm50Tm5ZMDZkUlByRmwvdmNNRGU5YTlmN1lQa0xzQzJNTWFQeGYvQWk5N2szTmhIOS9aMDRlNW9Sbm1BMlQyM3Z2dTBCeDBFbFV5aVp4aGd6Q21QNFVPSi8rU3ZHa0tISVpCclYyUVdhT0VKejJrWUxoeER4Qkp2bVhzblErMy9IS3d0ZjQvcFBmSUw3SG5nQVRkY1JTbUhiTnJxdTR6Z08xMTk3TFR1MmJlT0h2L29odnFIVk5IejlaNWpoRUJqNnV5ZWp2WmQvVUZHR3JSUmF0SlBLSWgrT2NwTVc5bG9lR2FsSSsxMGVFU0VsL3VBK2U5bndhQXpPS2NCeUpPMTFqUWhkNjlWUFRLQndsRUc1cng2dmxxWTlVMHpjRHFFSkI0WEFVVHFHc0FtYjNUUW1LMmxObC9CS3kzbHNqWTBsNWZqeEd3ZlhlOG0yRmZHNHhlN2RVWGJ0aWxKZTdvNjNzVEdPRUlKNDNFS3BZeitIeFFHQ1FqSEhsK0RLbkNnbjJRbFdMVXB5LzlNcEZpeTFhT3Q2NytjYzhBbk9QTm5rK2tzOG5Ed2psM1dlazNtZzlVTG1SNmZUNnVTN21sQkkzaTl5MkZlaWFhRHA1RjkzRGVIUGZvNVdKOE1tSzQ5THBweURiOXhKZUlZTVE3YTIwZkhYZTBFNi9VWVNlZHJjU2VTRUE3UzBkSkdiR3dTZ3V6dEdTVWsrWFoweEFQTHlRMi83dkxRa0g3dWpnMER6Tm5EU3grU3owSVdnT0VkSDF3UXRVUnZIYmZkSlhrQm5mTG1Yem9SRHlLdFJrbVBTSExGcDdMYklPSXFXcU0yb1VpOUZPVHE2RUs0TytpKzZ2d3J3aHdxUUpjTXh2VDY2RzhyUVBBVm91b2RnWGdGSzVGSTRhQ2FtTHg5dk1Jd2pGVUlUQ0VORGx3TnIzVGo4OThyZUNqWnZhQ29yMzN5UXFvb1Nxa2FkUnZMUFR5QmVXNEIrNnlVWVV5YlNXUHNLSWMvdDVJMjRDM0FRb245N3VEWGJYdjdkV2M2cWVDNFhobHU0SXMvbDFGa1V5K2VGcmhKYUxDL25odHVvTUZQOWFHTWRjcUFlVUJpTzVKeXpSaU1keWJKTlRVeWZVTUhLRFEwSVlOcUVjcDVkc0lYenpoeUZwbXU4L0ZvTnRwN05DK2pqSEI1bzNBYkExaFRWS3NZcEl6cTVaM2NsSDlGem1ESjRKR05LQjVOMm1wRXU4ZGxCdTVwS0NEYTF4TmphRm1mNjBESzJ0c1o0YkgwakpiNEVhL2RzUnBPS0tjWG5raHNvSnRQeU1wYmxZRHNhSjQ4cHcyZ3hFWWFCNWpGd1VtbFFvUHU5eUl5TnNteW1qaTRqbVc1Qk9RNjZwdUVybVUzcHlDc2dPSVM2THBzUmdTd0huSUxXV0pwL3JXdGtmRVVlSmYzaEtRdlE4eVdoY3hONGhqbzluUDdDVVBoUFNTTU05NzRHejBtaTVVaVVMYkxjL1pEWllSQjdLWURkclBkcFNpZ0ZYbzhna1ZROHU4amlzeC8yNGZQQzkvK1laTXRXbTltVFRWWnRkbkFjMSt6WE5OalRJcm4yT3pHK2RsdUNuMzdSei94N2NsbTEybVpIbzROaGlINHRUL2pRbDN2elFQMC83K3JlZTZrbUdQbmlkdElyZXhmdHFiWU9ONUNXNVZBUWdJckVVTjN2ekJPbmp4aUtNV1VpbVpkZUlmM29rL2h2L0xqckMvNzdLWnlkdS9GZTlnSHNWZXVRU3pzUGV2d0ZNdldleXJQUWs4V1Q3WGRmRXdweGRPTS9QYkdTdC9COHZuVXZFQXFQN3BEclRURzJORU4rSUVsdGV3R1ByaDlEYXp6WWU5L002aDZKT3F3WXpxSEVKWTVwbjhaeFdMOStQV1BIanNXMmJTS1JDTHF1NC9QNWFHaG9vTEF3akdVNWVMMDZtaWFZZTFvT08zWXFNbWtZTzg1azRXc1NwWFFzU3lLbG9xR2hnVUFnZ0dWWlJDSVJUTlBFTUF6V3IxL1A1TW1UMGZ2UVA3VTlxbmhtbWNYT0ZzVkg2aHl1bW12eGplbzBZNE5KSG13dVlVVXM2UHFSWWw5RGpJWklPLzlhdTVCTkxYVlU1aFlkTTd6TWgycm9TQUU1YVkzeHpRWXlTNzhSRUZEWVlTSGpZR2ZYZ0tIRGtBUk1rMjUrL2p2Q2dWSWlOQU43VXkzV2ZZOVJkMU1PSXNlTCtua04xdkRYMEMrWWkyR2FkRXJKcjI2OGtkYS8vWTJ2QTBhMmJtaWd4UkF5YTlxYStnRUQ5MExmajRSRTc2MzhGV0E3V2NwTm53ZHdDV00wRk5JeEdKM2J3bURSVExKZ09NOHNxYUFvNlVFLzVUOHNqUDhWbEk5VHRWRXNYbXJoTmNvNWQyWVZKeFhVVWRUZFRadk1SMkQzVDhBZ0N4eDNSUWVqS1MrK2NXV2tvamtrNTVWZ0RLbER5bDA0eW9PMGRaVFVNVHhCdXFMRHlGakNCWjJQMU56YjExbnkyRjRqMmZINS9YNHF5OHRadDNrTDNlMmRoSy8rTU5yVVV5Q1ZSR1V5cUhTSzlQWm1OSDhBczZJU1pUc29KUW1mZHhHT3gwL25obmxJQVNNTEJ0R1JpdllVeXZWWFdNUkdVYWdVTnpYVnNHdk1lZXd1TGNPeExSb1JORWF6SHAwNmhDL1UzVCt0UUNFTWswSGRUZHpVVkVPaGtxUVFCeDBQR0lqMTFudWpVUkF5ZVdaZUM3Lzl6enlHenJpVTdsVUt4RkJ5ODJIbnZ4N21wZGNURUF6aDlIZWpHQVcyVXFTVXUzSjFJZDQxMTFsa0ZaMEFVa3BoWjBIWFBuSFlIT01zblc4ZFhVNWZuR1JIWUljdHJKUkFMczRuT1U5SEJCM0NlcGJzSnE2aHhYU0toMmRncFRiZ20zSkh6T2JSTjFzeGRjRTVFL0x4ZS9vZUpkTUZqS253Yzg1SitTemRGcVVqWmgyeUxqZ3NCWko5VUhhcW0xUkhIVTduS29xQ1d3Rm82OVJJZFU3RVRuWGo4WWY2OEVNSCttbUpSam9MT2duMmtNOGVyWVQ1QW9TZHBtSkxKMk8yN0dEaXc4czR5V3N4Y21nQmxWUEhrRGY3RkFJelQ4WWNPeGJOL3habnlYR3l4ZWJaT1NBRW1xWXhjdExGQkl1bVVWaVFROE9PVlhnOEd1bWR2OFhyRFhENmg2NGcycnlhWEg5bGR0NGVYV0wzZnNOelpIYitDQVA3TGFpZWFXcFlWcFJ4WTZzQjJMaXBEdFBNd2JKa3o5YTh0eUVxZUErb2YrVUJkTHFVQ2sweldiYXNMb3U1ZXc1NDNFR0QvZGx6ajBVYnUrV0Jpc1BYMnhxZ1FYcVhqNVlkNVFNMHd2cTNnRTk5VVU0YW1ZV0xFUVY1ZUsrNUVuM1NPSnl0MjdFM2JzWGV1Q1ZiaUNPT0dXSzFWTm9obGJLSnhDd0dWWVM0NlBSQkxGdmJ6Tk92RlBPWnYxekRuWjk2a0RNbWJPTW85MlIwOHhVY3hmVWZDUFAzRnlPczNwcGk3Z1ZoOUd3MDFwdW44K2FTT0lZaHVQNERZUXhIdlo5cjg0OXJ5VTBkN21RU29DdVlra1lOdDVHYVFCL2w2dTdBUjZOb1VpRzJHN0RLdXgvUjNnbDVQOHJlVkxJTURwczN2STdwOFRKNjVDbG9XY1lUQ1d5cGVSTXJrMmJNK05sNDBJK2QrV0FBNWdsVzFuY3hadHovTXoya0R1UVA3NWRJb3d3RDZ5MzJsdVVvaEthaitmVzM0U2RTS1R5R2wyMk42eGp4czkrU1hQRWM5VXVlNEtOZitEODAwNlI3KzlPODN2d0tzYXRta1AvSUlvYnJ2dmZFSUdJZDBnMHk2VkJhcEZGUnFYUEcyVjVRQ2l1bXFHK1ViS3F4V2JuT1l1VmFtdzJiYmJic3NrbDJLYmFRb2pZWTQ4OHppcmxrU1QyVlJoREQxQ2h4MnJsL1dnVS9yVy9BYk5aWTNkSEJOMTkxaVViTHk4c1pOMjRjMDZaTlk4YU1HVXljT0pHaFE0ZTZCTk1IQUpuZjArRThJUU1pR2lDbEJvN0dSNnFhdUgzMERrcUNGazVHb0FCVEtNQkJPZkRqUDNwWnYzczE5UTJOSUFUQmdJZXkwaUNUeDFZd1kyb0ZILzNJT0xvNjB2emwzclc4K1VvZE9FbGVYajBNNGd0NmttVnR4L1hHYmhqY3dpWEZuZHk4ZVNqLzNGTUd1a1RUNU9FbEJBMGREVHUyN1BPSEREaHpXZzVmL1dnaFowMFBZWnB1WXUreHYxK0FGTGxZMm1nU25zdkFOd21WMm8zUVRIeldVNmpkMjlHNk42Tkd6RUhUQkliUGkxMVlTdktxV3hCN2F2RFViMFA1QTVqcEJIcDNHMmo2UWVPeUd3ZU5PMmdqVis1c1kwZDlldzhPSjZXaXJyR0Q5YlV0Nk1FeUNKUU8rTDM2M1c5K2VWeXRzN3hacDlDOWJDV2RyeXlrOU9yTHNkbzdpRytwT1M2M1Z5RkFsNUpSVlFXMHhldG9qYlZ6U3JpSWlsTW1ZRldIcU4yd2tFaThuWXJnVUx3dFFmUUoweUhhaUJScGRvd3Z4cmpwTStSVlZESnE2aHpLeGsyaXNYVWRhVHREYTJ3bm82dUxlT1BON1FOdkdnZURjTXN0TUh3NGZPMXJzRzNidXg4L1lnVDg4cGR3MldVRE1odzdHNVBVUE5rZTJBb2M5WGI5b0F0d01uRHJNbmppWW5qOExKanpIR3hyZFcwMjAzU0xkQStrN3FRQ3pZQmwyWjVlbW5sNHZZQUNlcEtIZDE3Sm90YVpaQndQQ0ZqY09vTlB2WGs3VmY2RzNuTmFRYTRud2tlSFBzcm5SLzZGUWZYYmFmdUZoOGhyL2dNWEpHVEg0eDhuS2I0bWpYVkttTDgyWDhNZlh2c1UyeUxEc3NXZUF6eS9OUU5EMDkreGdOVFFkSVIybEl1N0ZQaDF1TEpNNDR0RERFWUZ4VUV2bC9TbUpKRi90cEZhSFVmWi81Kzk4NDZUb3pqei9yZXF1eWZQNXJ3S3F4eVJFQUloRURublpEQU9PSUVEUHR2bmVLL1QyWWZ2ZkdkOFBpZWNFOWpHUkpOelJpQUJRamxuYVZjcnJUYUh5YUc3cTk0L2VoU1JVTnBWQUQyZnowb3owejA5MWRWUFBmWEUzNlA3Yno0dnVRUUtZSkc3S2hrU0prNTg1K2NUSjhKamorMDVPZmQvL3hlZWV1bzlwMjhOU0J6Tmtqejc4aHJpeVJ6WFhEaU9lNTlZaW1EdkFBM2VNYmptd25ITVdieUZOK2MyRmdBNzlGNE13VjM1ZjQrdnQ4a3hESlJoSWN4anMwR3hER2xDWTF6TU1rWHhlWjdmUnJ2ZzlFalNhd3hVK2pCczJITFA4eXNFV0lOZGdpZmJPQjBCN0paQ3ZPd3dUclZodnA5VGlvL1RYc2wxTVlxaXRONytLekxMVm1PV2wyTFYxeUtDUVlSaG9GSXAzSFNXb292T3B1NEgzNkI4d21TdXplY0o0WHJKZ3dPazc1V1ZmSDZYOXhzZnUzbXZ2am9oTEZSdUhhcjNZWXlLenlMTVVyUitaMnFqbDB4b29KMWUzSzQvSWtzL2dQU1BRbXY3a0dPTnBlSFA3WmVkNkNDWVBXOFRtVlFPcENBVThxR01nUUhsT1NBS0dpeGUyY2NGSDV2TnZDVzlFREpReW90ejZLekx6Mzg0aGFkZWJ1WGxsMW94b3hhdTBnVmRWeUJET1Y2WU40ci91KzlNdm5IRGJCRHdMNk5zVGk5eCtQWERNM2o0VHhjVEhMbVJ1U2N1WVBIUUpneXBVRGsvdGhaSW9RZ2JVR1pwVDIvdXQybndtdUxsdXpjUVcvUWd1ZmFsNURxV0lhVEc3bXNHV1FCbFVUdjlwUEFTczJXZ0dGOUZQVTZpaytUYVp3a1BQNGRBN2VRZDV4eXVQVTBLSEZleGRFTWI3YjFKMW0vcDRvTVhuTWlwSnpRUTlobkhaZGRPTkxnc3lFc3ZmNVhKWTJ0NGZmNG12dlBMbC9pL256d1BPUWRjeFVVZm5zYmRQN3FXb3JDZmY3NjRrbS8vL0NXKzlXOFBlVVdjUHBOdmZ1Y3kvdk9MNXhKTFpQbk5mWFA1NFI5ZVo5YmpTOEIyWVhBcEQ5ei9HVDU0OFFRV3IrdmxwUmVlcHUxakg2TG44aG93Qk9IbkU2eWFmeitqeDB4aDV0c2IrUFl2WHVHbi8vczhQODA1b0JUbThNcDlzS3JIZ1c1M0QzWnJHMElLNGc4OWdyMmxCYU9zRkozUDR4c3hIT0gzSTdSbmNHb2c0cE9jV0J1Z0ptb3l2TXpIMjF2U3RNVWxFcXZmNVhKMDJxVDlYM2xLNHg5VXZXc3l0WURneUtGRXAwMUNtQVBBdTYvdENzaHcyek4vUFhBZDMxVTQwUkJGUXczKzdWSEpVOE0xQVJ2R1c4M2NrWkowNTh0NHBVTHliNDJTdjM3QUlEN3pmc3hFR20wY3VpSjM5YmtuSHZJMWVsTjlQREJyTVU1UGtwUFRuY3l0TDJmd05SK2w5UElManF6dFZBQVhtOW9sQ0JlYXg4NnVnZTRBa05Nb3l5QzlZRG1kejd4TmR2TlduUFp1eWo1NUhlSndOT1BSb0NVa01nWnIyZ09jV0pyRHlMbzQzWnJJc0ZQd2o2cWdlRlFmYWIyQTFTMDJsZVVaRGdlRXRCRlNCM3dmQUNXK0RxckRPV0t4S3ByYlpqRHh2Q3NZWHdscllnNWR2YkJocGNXV3VqaVhsclZRV2hSSGJnUERPQjR1M1A5SlJxT2NORjBiSHFWdjg4dUV5MDlBYTBXNlp3Vk9QazYwY2lxR0ZkeFo2eHpZOVZWWVkrSFRUMlhvZjN5SG91blRDdHVLM3VXa29qTm5vS1dCMDl1THI3NGVJeEkrTEVuL09pdkl6N2Z3blc0VHVpVkQ2cmNoVXI4UDRqL0hKbkI1RG51WlNmRGFITDVUYkxJditYRFdHTzg2WlVKcjd3K05LdzJTb1FqdHBWVTAxVFd3YnZCSW1tb2JhQytySWhVTTQwb0RnZDcrSFVPNS9TWWZ3a2RRUHNqaS9mOE5VeXZ3QzY0NGF6NC9ldWtHNXF3ZFEzZXlsSXV1ZWdETGNOamNVNEZBTTd5cW5VUW15SlB6VHFjNTJvcy9hblBGV2ZNZ0tEQ2xRZzV3cnJNUW1xcmlHQUhUWVV1c0dQY2drdVUwWVBqeURDcU9rWFZNT3BLUjkwVklXdVR6ZU5oOWdsemUyZDJWN3dGWk94NXduQllDdDFDQXU5MjM3TGdJSWJBc2N3K3lReUNWU3laVVJPOUhybVRVaUVFa2ZWR01GZXVvTGh2TWJSZGJESit3akZNcnZrTnFoU0txWE5RKzdLU0Jya3VRUXFBeU5rVzVMRy9Ib296dTdDWVpxcWE5TDhncGZjdFoyVlJGSUZZRWpsZUkycDhwaURsSHNiNHJnNnVnSjIyL2EvT3U3VzRZcFZuVWttUlRiNDdHbmd4WjU5Qkd0R3Jta3YwK2R6Z3dOTmU3WFc0Sk5JUHlNVWJGV3VoWnVKV2U0eHYvTzBnZFl3clRpQ2YyYmc5dHkrODJ0aU1BQzRRaDBhN3lZanhLSVN5VC9OWjJtbTc1R25aTHU3ZXYxSmJUOEplZjRhdXZLZVJwYUZBRjRId3B2ZngvUStMa25lMytqTDNTa1BwM0Vlb0NZV2pJQ0ZyK3E0UnpQOTdORDMwdWFtLzdnd1lzVGI1VjB2V0luL29QZW9CRzdRLzd5VytWWG41Y2YyOEtqejQ2QUV5bW9MblorenNhZUY2REtXQlNLQ2VLK3dSMUM2VGUxR2x4OG1ZdjN2THBPV21TZnNHcWFwUDVneTJ5VnYrdEVSVkw3Rk1MbG1FWDY4SU1xc2xBNS9ZUWhKRUNZNGlMQ0JTMm5sTnp5Rm9IVlBvZCtUYkNyNUVOTHZuSGc2allRZVIzSGlSL2FRMnRYWXBsNnh6eUR2VDBLZDVhNU0zdmc4L21LQ3VSK0V3NFlaUkpUWVhzTjNla01BOHNMcjd0WjVjODlBZ2xnMGJ5UUNSTW9tVXJTaW4rMzNDTGhGU285UUZPbDVLTDYrc0lKVk1zZWVnUlpreWFpQnlveGwxU1lMZTBZMjl1UStmc2d6YTc3UFl1Y28wdGhLYWQwRzlEVzdTazlmaW1lVmdWWXJ3YTJpR2dLL0NBeFFjREswQmtBUXNpcnNEdndpbW5TS1pObHB4Nm9tVFlZRUVnQ0thRVdBS2FXelR6bHlsZWZWTVJEQ2dhbS9VMnJPMytXTzd2a0s5SXdlWjRqdHRmYW1ORVJZQ3hWVjdkbHhEYklsUUZIVTJhaEl0R3NhQm5EYjliL2pTMjY5QTdCcjQ0L2hxRXRBcnhwUDZyb1pON0VEUlM3TGk2UUhpQUxtSlhaMUpUVjVxZlA3MldnTTg0clBWOEEyVmZDRHpnNzZDWkpadnFJaXl5REFxbTZOdjRPb1oxQVdSajlIWjFJd0sxWFAvaHozSEgzZlB4QXYzOUhIL1hoUWlYMXNSVHZlVHRISldsVlNpM0I5dXhDUW9iSjdzRmFSVmpHaGJaWEdvN1R4eEpnMWdEeWpEWTNKMWsvZUtOakQxekpEMk9abFhUSm5KMm1GSE5xOWpTblVRWnBlZ0JiQmpqYXMydHdRckdHMzVhbFVPZmRsRzdUY3h4bCtnQXJVM0R4TzFzUitleW1FT0drWGxySnFFTHI2VHZOejhtK2ZSRDVKWXZRdWZ6NURldUJhVXdLcXVSNFlobmt5Z1gzN2hKWkJlOGRZank0ZGlxeXpVT0FDUjNXM1J0NnFBUXozMW1CRU5MUFgzTDJ1MGExazRkWDRhVytuanVNeU5vS1BPOTQ5akJrSEZRMzkvcE83LzlEYXhkZ3p0bUxNYTZkYUExN3VqUkdHdldZSXdlWFhCczlsOEMxVFB4dXcvV2FZbWR6bktTZlM0L21kZkI3RG16dVQ0L0R6UHZNSGZ4S1R3OXRvSnZuTlBKODdHL1l0bUJnOFpiT2VNZGRzTHhRcHZqOVA1UzZJWHc1T0R2SHRsTVphbVBiRTdSdURYTjVUTXFBY0hUYjNSdy80dHRCUHlTenQ0OEYwMnJLTWpvSTdlVGF5RXdVamt5azRmUmQzS09EYmQvbGFMdlBrYUpUOUQzN0d4UW1tSmZDQ1BrUXgzeDV2WmVUcGRTbW9XTDJrRnI2dXRDTEYzYUNjQ2tTWlgwZEtkWnVLaWRzODRhakpTaTMrYjNtTTdmT1VCeWxNdjhsdFYwcCtNTUxhNG1uYzh5ZjhzcWhwWlU0ek5NQkxBMTFzWFN0ZzMwcEdPY08vd2tLc01sR09JSTVtWUxnVkZXaHR2VDR4V3JBTmcyUmxuWmdPVEUvYit6QnUrM1hWb3NiZHkrK0k2aUdOZEY5Y2FZWEJkaStJejZBVmxTZHh3WHlEc3JweHdOaHBPVWNOSll1UGs2dU81OHFLN0VDK3dWbXI5MTJCYVA5Slp6WjJjVkdyaTVzb1ByU3J1cDl0bWdvS29jYnYyUTk5MUhYb2EvUEFvTFYvVVRCcjBRdVBIRTl0ZTdUNWRVR2gwT0VqNXpPaFdmdkpIb1dhZGhoSUtGbXJLalNOZlRHaWVSSXJsaXd6dWFMKzNYMTVVaXVYd0RUaUtGRVFvY3RPeXdEcUpoNDdaTW5DeXdDYWpHYTF5VDJiREJFeHRLMFN3RW00UWdCd1E0aE95ZGZtcGNnQktJc0NMM2RESG0yQ3dvUWZEajNRQWtmMXlMc3o2QXN6cUEvL0tZaHlaNmhOYS80YVpvdi9JQzlQblRDV2NkTm4vN1U3UjI5WkVhV2tVNGtVQURpYXZPWXRsSkU3QXJTaWdXa3ZqNXA5TCs5akxLbjNnSjF3Z2ZVa09WUHoweWo1Ly83a1VJK1preXJnNFFMRnJkQXNrY1JiVWxBUHp5OXk5QmVLZmpxMW9nbGFPb3pqdCt4NTB2UWNUUGxERWVwdFNpdFZzaGthT29wbkQ4TDd0OWZ6K3ZIeWw4ZjM4NFZMQU5sMUxzMVYrcUhSZGhTS3pxU2pLcjFyTHVGNStpc3JzTTJ6Z0kvUGorVlhhSkdDN25GY1g1ZUdVUGsxV00rYStsK01kVGVXWXR5aE5QN250d3ZiMTlQUHpRZzR5cWozUERwUkd1UE4xUFRjeFAzejk5eE40MHNUdTlkWDlJcXBCaG9PTUpNci8rSTVIZi9SeG4rVXFpRC80ZDM4VVhrUHIyYmRpdnpjWThhVExaUC84VkVZa2NFbDhlK3A2Mm83NXZ6Smd4QmZWRzRicWEyVXZicUV2bEtmWUxsQ3IwUGhVQ3YzYnBrd0ZlRFRTdzBTd2xxRzJtTzYxTTd0dEljc0VTSWxNbWdXSGc4L3NaTTJZTVdoZHdkR1gvNnBkcTUyWlFSM2dQRzhoOEl5bkF0UlZFSW56QzMwalZGai9TdXB6aElRL1lmWjV4QmRXYlkzemMzOGh2SXhXNDJTelNGTzlld3kxc2dpSkhYcHRFUkdhL2RpS05RSktuMWEzbitmd3BWTW8rTnVzcXdqcExvMXREanNFVWl4Ulo3U09QU2FYbzQrbmNkTjdNbjRRUWFkUmg3akluQll3Y1dzVnBKdzdmWTN4cFp4My90Q25ER1RtMGl1N2U1RHZxNncrZmRReUdrRVROSUoyNUdDMlpidHF6TWJKdUhqdm5ZaUJ4dE9JUDYxOGdiUHE1cFBZa2ZOTGdTS0V4U1FIeHZNdGxZMDJlL3VPOW9GTzg4S2RhenlZR1h2aFROZVdudGZMMFBmZHk5bWUvd29OTFhVcUNKdjBCdWZKRXg1Tkh0Y2x5emtEeGlGUVVCdzAydlJWa3hpY2hyMXhpR1NnT21kaktaZDF5V1AxeWdKNWV6UTMvbGlGZ1NrSVZrcDdOc0hXcEgxL0E4OEhzU3kxZTg2MmZIbHZldTBOY0FFcHBMTk9rdExTRTFhdFhrY3RtdWVpaUN6Rk5vN0IzSFkvV0hVdjA3QzMvOHI2NzU3VnIxL0svLy91L1RKMDZGYVVVeTVjdlo5bXlaVWZkT0cwQlM0c0VHOElTSldCendOTUxucW9CcVdGRVNqRXBydkVkRDBFZGdBQ0VmRjVRVTJTejhZMGtWOTI2aVJkYXpxYXN2b2RUekVVOE5MdVVrZ21SblV1TWpweVNJMENuWFZTdmpYdmJLdlJWZFp4NWd5RGNybkdVWkVLdHdMNi9qWTZWbXZSSnc2bmR0QXFoampQRGZ1dGxHczlYZlJSTVdTYm4wTnlXb0xNblRTNnZhRzZMMDlXWEplZDRHTzVhbTZBTklsYVdpYUVObkZhOG5QTkxWekN4ZEF1aDB0RzR0ZGRqRFQrRGNNUHArT3VuZ0RTeFhVM3oxamdiV21LczM5ekgwalZkTEZ2YnlZcm1QbnA3TStDNFh1emVaeUFqdnUzbW9kcURqYmp4T2xCWjBGbXZLZldlMHBkMnIzVXhBaEE1QzBvL0FtNGZ0UDhFM0FRVVgrNmRFM3NhRWk5RDliK0JVUUs5OTBKeUZyZ1pFRGFvSkRnZGUvOGRZWUh3Z3d3ZSs3eG83QWNUYWdEdEVqR0QzTkJ3UFdYK1VwVDJuT29hVGNBSUVMV2kyOCtQV2xFK05lcVRaTjBzMnpweVNDSHB5Zlh5UU9OOW9GM2s5dm5VaHlTclpOaWwrUEl1VkU0U0tlM0Q3VEdQT0o3NG9ZaGVCR3p1RWJTa2F6aWh0b3JXM2k3NnNwbGRmSUVDUVY4bVEzbFJHYldsRmN6cTZFQmxrd2ovd0lzVXBRRlRzelptTWNnM25tZGZmSkJ2L3R1ZktYNXNOVEZYUUQ3SGw4NGVqNXVPOGFlNzdpVVFESEhMelIvbTA5TUg4YjJuTnBPVEFVcExETTRaS3ZuTExKdkxQMzRyZjMrdUhTenJvT0ljMy96TUdjYnVYeE03emFlcjlBNE1VZUg1RW5hM0ZTelRZRWhkOGZaK0pVUHFpdm5pVGFkaTc1WVl0dXQxMVE0K0UxNXR5eDU4R09MaFh4MEVIMmhCUkRwY1g3eUp2L2FNSU83NnRqdDJOUkJYRm10eVJUellOOVN6QlhORnhKVzE2N1BYZ3FpUjV3UEZ6V3pPaDdZMzRsNzg5Vm1jK05Nemp3cS8yVFlNckV5dnkzL1AvaVc1OW01MGpjVnJUVFl2anhqRTlKN1YzUGJtTE5wSGorRUx5YzhVTnM0RDE3dU9ac3JiN3k4Y0Y4dXd1SGprcWRSR0tuaGs1UjlwVFhZTktLYU9lcC9NcTlhS1ZMeUZ1SzVoWWJkaWxBNFRQdWxTYXRNdnNiVjlFL1ZqcHpEaWhCUG83bTZrc21wa3Yvbmp2enhXNzJrWDgvWXJvUkM0YUwwTjQzTHZ4bzBRQXFYeTlEM3pKSmtCakJXWVVSY3h2by9mdnRsSmNFcWFqODJvNG8rUHhuRXpOaWQ5Rktibmt0U0hIZEliL2FTWFJSQm1nUEdFcU5GUmFzMEE5K2JhMmV6bVlZQVF1OTV0RDlSYWdNK2hMKzNucmQ3QkZFZTh1c1pZS29RdjZLQlZHaHpOeGVkTjRGUFhuc1Q1SWtIK2QzK2w3WWxYY0dKeGpFQ2dVT3lzZHBMZkVqZVRRMmxGNVVWblUvS3A2M2o3eEZMK3V1VlpubG85azc1TURLeUE5M3oyUTdFcXpiOXovS2JoTXFZdlJOTWJBUmlieFVrS1FtSE5scTJ3WmdPMGQ4SHlWVURPeStGQUMzSjVUZUMxWW9ZTGlaMjFFUU1WMno2SVFLSkt4MGk4K0JjU3ovOEJGZXZZZm8xOHZBdW5hek1xbTZMb3FpOGpROFZIMXJaemNyUW11bWhMZE5PZGlSUDJoZWpMSktncnFxQTcxVWR2TnNHYXprM1VGMVZ5bkE1Y3NkQmFFNHlPb0tldmd6ZVhmcG02K2pqSnZNbk14ZVVNQ2Q1QmFjbGd0TmJIWm5QYWZxSmpEWjhlQVRwdmszNTFIdjdKWTVDbDNocldqdGZBMHhwV1QvcTFlZVJXYlBCcVRIZUttVXMwZzV5VStGQnNZK0NrVE5mRXA2TkR2djFLcVA3OE5pdDhweVBjRi9LSW1KNythNWM1WDN6SHp5WnplOGU2R2pXMG5Ndk9IYysxNTQ4RDRKR1hWdkh3aXl0WnQ2bWJJeFZjMVBsQ1h3amhnL3kyUWV4a293clRBMGNIcjhiRzJXMWZjRFFJWXdjVzNBRG5Cd3cwM2dpOEUvZDkyN0lmcUZzVFFIRk9IaFVtenY3Vko0bjlPaTc5RmpxWnhFM0VQVDQ2M2xUbTRMeEoyb1d1SllER1RSb1lQaC9Cd1lNSVhYWUIrYzRPWkxRYzhnbzdFL09jbnQzTG9QeUVRMHl1MmovOWR1M2F0ZnpnQnovQTUvT3habzNYQThZc2RPRytMZFhHUWp2Tjk4TTFSSVJCQWhmZEl0RktiSmQzblE5S0lpZmJGSi9wQVFvS0N4SnpMWklMVEdvK25jVUlhZHkwd0l6cUEvQUhlaGRYSFhjZ3dxY2l5ajZNamoyTHJQdzhhc3ZYUWRZakl1TVJwa2xxN2lKYS92MS9pTC8wR2pJVUpsQlppZXU0WHBYdlViemRDMEFwaFQ5Y3pJa2pKMko0Q2pkN1NqclFRRHlkWXY2R2xmejJzYjh6ZDlVaTdId09XeDE0TFhQMnJTWEgxT29KQklOczJ0UkViVzB0OVhWMTlIUjNzMzc5ZXNhT0hZdHBtbXhxYXFLbXRvWlEzUmd0RFVNZ0ZOZ1paTHdUMnlyaXJiWWhETExhS1hhenVMcWJvZFVwd242OVU3MDhPRnBpcEh1b01yc1JhSklwU0dRRUhicWF1dnhhUm1VN01hUW1sRzNtN2FKcmNjM2dZZC9mdFBBVzExTlBuc1BWbDczSTNGWGpJQnJpeklxN0NCVjlIVi84ejV3NTVoV2VmUGdVZktOZjRvT1hOZkg4SzZlUTdnbGlGT1Z4WGZIdTBsNURXUlJ1UE1OUFRWUlFWaXlvTDVmY2RLN0Y0RktCTWdSUEwzQ1l2OFpCQ2MvL0xBenZmam9UaXNlV1dLeElUV0ZPYXdzM2JuMmNFMUpMRHZ2eTI0YS9HRGo5Rk9yKzR4dEVway9kcHkxL1JHV0FBS2xnY2kyczJnckNFVlQ2SVY5ZlNjVkY1NU5aME91NUNLYVdFdjk3T2FuY1pvcHlBbjhmcENaQzBYSVE3dUdlWTAzRVNsSVI2RUljb0Q0ZzBGUUV1b2hZU2RycEh4dkNPWVFrUkswMWxpbUpscGR6U2lpQWlCYlQxZFhGQlpOSEVZMldZQm9HanFPT1dNTmxaVHUwTFY3RmhoZG0wN2VwNWJncTlSNmtkOE1vRlFXYlJWUlhrWlpRZXNWVlpPL04wTnZaUzNSa0dmR3RhWXBPdXh4cjRuZ3kyc1VzS1VaMDlTSE5BYXhmUGNieSsxem55UGorRk9BTTBCNVhGQWhURlMxalVJbFhiNTJ4czJ6c2JtRndTVFhGd1RBWk80OGxEV0taSkFzM3I2RXowVU4zS3NhZ2tpb3N3NlNockphZ0wwQlBPc2FtbmxhcW8yVzRTaDBjendpd0hZME1lUFd5OW03OXNBeERlYmdlb2hpRTR1eVI4L2p1Mlk5ejRRa0xBTTNzRmVYODVxMGlabTd3NDJwQmtWOGhoUFpLUFFZOGlDNFlYWnZsMjVlMkVmS3A3VGkzbVJWSnV2N2VSbVpsYXMvbXNpNWdLd3FCTENyQ1AzbzBrZE5QSjN6YWFmaEhqMFpHSW9kVmlUaDkrTW5jZnZuWE9IUDQxSUlKY2VUMG5ZQmhIN2g1dk50SHBsQ1k4akJGRFBPN2pUZWZ4NTc5TnU2R0pvd1JEV0JJZENxTnp1ZkJkblp5SWgwWk9iamR2dkNaQjI1ZmFJM2phdThjWSsvK00wTnEzS3pKUS9Oei9PU0w5WHg0MnVYRXU3dW9yQWp5SDc5YWdFcTNZWVN0L2NQVHBXZy9oUFRSczE4Y2EzN3l2Zm43aE5ZSUtUSFFhTnZHR0RzRS8wMGZRalUxSThlUFJRUUMrSzY0RERseU9DcWJRMjlwUmdvUEwwaUtBcDZFT0o3THJ3OUlqbmt4cHJ2KytVczYyenNZT213VXJXdnVRMC80TXVtS3dYVDdwaUNBc3RvcE9PMU5MSHIxTHhUUCtCcHZ6bnVMRFUxcitQbjM3dHBocng2QnVYYzFQTGRKTTc5REl3WE1hZmZ1L2ovZVZDZ05wMVFLTGgwaU9Cb3laVUord1psandveXM4dkpXaTRJR0FjdnpsMTV5UXBUVFI0WUEyTkNSNTdubGlTTStYbUZDYUxoTFlKQkNhTEFxRktHUm51Q3J2RGlQM1NYUkFySmJKT21OaHBkajI4OTZvNys0RjFPNi9NdmZQczl6ODJidzJNTHBSQU5wVE5NaG40T2NOamszMHNOWE5qL0NqUGdLTXFVK0V1VmpDZWdCRk5DSnpuME9YQWx3K2l6cXZ0Uk05UmUzNHZhS0hVNnJkeHBVcUNSY2N4NVVlZVhqZEd6MVBrUHV0TlhzNzNrREtWczBLQ1ZvYk4xS1BOZkg4cDQrRWlwRmUwclQzRkdNMG40djNiQy9SWUVRQ010UGFmVVFZa1gxTkpRUDU0U2dudzdIWXEwcUp0UGJUcWlxd292NUtCZWpxcEtpajM4VW83cUszdC85RWJGZ0hwYmVwcmdkV2QrYTFwcjJaQzhiZTF0NGFyV0hSWGpGMk5NWVhscEhkYVJzbnpIL1EvMyt2bTBNamFXeUVGYW93UUkzYUtDVUI5WHlWa3p4UUt0RElsVE9SODgvRHhBNEtrdFhTeC9ESzBNMHJ2ZHg1NTEzVWxKU2d0L3YzNTdEa00vbHVQYkdEekwybG44am4rdWw5ZFZuS1JvK2ljR25Ya2JuSzI5Z0xGOU9PTk9IcXlSS0d1KzZsZlMzdjlweldHajY4Z0hTcmtraTNrTWdyMW5iYmpKbVRKUTFqbVRTMEdKNnNwcDVyVDVHbFpxc2FaU01xZFZrNHlsU2RoaFUwSFBrNm9FZjcrNzZyOVpnK2swU1c3cjUvTjNYOExsYnVpaHI2MFlLZzBERkdQN2xMOWVRMk5LTldmeE92TXJqZE9USjZlekJidTBFMXdYRHdPbm9JVFY3d1R1RXFOS0NuSkprM2NPcnpSeHI5Ykd1T2xnbWR4SEJrYWpFQWxUblg5RjJKOEkvMkZ0elhZOGlyQXBrK2JYSThFaVV5c05BYTVWYW96S09WKzlrZUxrYXBxR3dFMEVpWlFuKytZMkh1T1RzRGJneHozZHFHZnZuZnpDa3hra0xUcDNVd2hXbnJlU3AxeVpoRnFWeFhIa0FROU00amtOblp5ZFBQUEVFZDk1NUo1czNiOTUrZk1ha0lELytRZ1V6VGd4NmVWRVp5S3hReEY1MXlheFFxR3doVmVCd3drWnM2NXVkaHRWOUJ1MTFncXE4bitHMVpiUzFkTExjVWhSM2dCd213TGVUbWlBRXdyUVErQXFZV3Vxb3lpb1Job0YxOG9rSTB5VDM3SXZvUkFML2RWZmhQKzhzVUpyc1V5OTR2WnFIRGNHYU1RMVpVb0lvTGNZNmVUTDVsMTlGT3c3dmU1SUNyVzE4SjAxR2xwZURVdVFYTGNGZXZneGhoVHpadlB1bXV5MS9UNEZSWDBmMGk1L0RxSzlGQmtJay8zQW5iby8ybVB3dytUYTE0MExBaittNGJQemc1Nm45OGJmNTY5Ly96ckFSSTdqdHR0c0t2bTBEMTNVOXZCNGgrTUVQZmtEVGhvMzg5ZTYvRXh3MmhJMGYrd3FtNHlDQ2dVTGU0a0g0ZDdiMUNwUEdkdHpyM1ZSNVpFRkdhd1JxdDNobzNuVkJnT1V6OStBYjF0amE1S3E2aHppMzVnVytzK1NYeE94aUFqS1AwZ1orbWVXRGcrOW1ZdkVTZnJQK0cyek5ET0szNjcrT3o4Z1JOTk1vdlNlQlkrN1YxbWx0eTRQV2RQVjU0M1d5VHFIWDh6dHpMaFZnWTZDUGdpU2ViZTJ3aDVvMlY0UlNYQkZPNEcvTGNQOUxXZTUvUHN1U05RNzdzK3diNmcydXY4REhCeS8yVVR4OEtBOWx6dVArMWd0WW5CbU5yU3dRKzdIbnVOWXhKUW9PT1BxMkU0NnRMaStsK0hPZlFaZVhzT0NacDRsVzFWTTNZaXpTTkpHMTFaUjg3ak00VHp5RzZPd3MrTXNPdlpiN3d4K1lzUjJEeTZ1RDltcG1sVkxiNndyVlhvNmJBcUx1R1Y2Zng0Rmkyei85L0tDL2Fra0kreVRKbkNMbmFFS1dKQnFRaktqd01hMGh4TXJXTENHZjVMVGhJUlkyWjFuVG5zTnZDbktPSnBsVGhIMFN5emcwR0xaamJYNTFvUmhZYTQwVkNGRlJNb1Y4T3NHd2FTZVFTWFJSTzJJeW5adlhVOVV3R2VYbXZkNENRdEJRRythSFg1anN4VWdHY012NnhrZDMreUNWZlI4cEdoNFRORzFPc3JXckNpRjZHQnJjUlBES3o1QS8vU2JNaGhIRTJ4ZEI2aTZjekhJeXNTOFFMcDZNN3NmQ2RGY0xaaWJLbVpjcXBzL3g4WEJ2TFdkRnZFNk5EL2ZXMHVYNG1KY3FabWFpbkJ0THQyTDBGekNrMUFjOFU5clZLQlFORGFVQXpKcmZ5UDBQejZldHJRK0EreCtlVHphWllmaUljbThkdnE1QWE2L2Z4eUV5OFVENmJRU2dsVXNpVll4VXRjU3lxNUdpQkVOREpPem4zQkZUZVhQMXE0U3RLbnJzYW5DMkluekdQbFZKMHpRWlZWUENzK3Y3YUkybFdkYWVvaWdVd0ZFcE5yWnRKSnZLRWcxTTUrd2hGNUZ4MnNuSFY2UHplU1lPQ1ZOZWIyR0dnaGpoQUhaZkFoQllKUkhjZEE0bmxhWjJTQjQ3YnlNTUg4SHlzU1NLejJadHNvSWxqVjNVaFFVajZ5cDIrQ3lrUVUvTzZ6WFZYd3FOU2d2Y0hnUHJ2Q3pCazNMYnpXOWg3Y2pmOEEyM3NRWTcyOHg1TWd2OVpCYjRVZWxEenk4eURNamxOU3MzdXZ6a3F5RysrbjlwYWlza04xL2pwNnhZa2tqcC9XTHFiV2IyUU9PdG50WHh6cnhwdDBXVDI3MWZvZkQ2YmU2OFAybWwyYnVDS0JERlJmaXZ2UXdzZy96VEw1SXAyRWZPd3FYNExyOFEveFVYNDI3Y3RJM1Q5MnU4OXI2Y0FXSlhtM3ovSk8wUmx2Wjdhek9xQlVKb1RxanBZSEp0TzBKQXlMUVpXZDVEVlRqRjFuaUVwOWVNd2xFN2FuU09oN2EzK1NNbGZyK2ZRQ0JBSUJBZ0hvL2o5L3Z4K1h4a01obGNOK3pGUUxSQXVRSWgvZHh5Y3kxU0dydzl0d1hIU1c4eitYRmRsMHdtUXlBUVFFcUpsSkxTMGxLeTJTeCt2NzlmY0cwZEY1WnNkR2p2VmF6ZTR2THg4MXh1SEoxbmhEL0xQWjJWdk5oYlFyZGo3bnlEWk93ODg1clhNRStzNFZqdEppWUFWMmd5cGtiSkhXVWlqa1VCVDZXQXNTQWhMeUVQcE1XN3VBUUxjaXU5YWpHanZ2bGJUcjMxNDRDZ2IvQVRKRFl1cDV5emVHdlZDdjUyd3cxY3RXSVZwL2hNOHE1YmlFRU4vUDJhZXVmZGYrL2pmL2R6ZGp2UnN4RWwxYjRzMGNHRCtkUEdjVFFYOWJJMjh6Z0xOeS9rcDlPZXdPOHorUGFpbTNHell3aFpKbjlwSE1JTndTM1VxMTY2cUNpVVJ2WERIcXdrQkdEWTROZFl1dllLcUUreWRlTm1WSDREYm8wZ1hqa1VTWXB3Y1JvbldJTGRsMlhVeUZmeGhUVktIUjVQYjFkWEYvLzExYS9TR1E0ampvRkdWMElJUXNFZ1ZWVlZuQmdJNE85dG8raWlLM0NxcXNuTWZRdW50eHV0Rkc0OFRtYlpZcUxuWElCditDaWN6bmFDRXlZamZFSDhtK1l6cFhZMGxiNHdXV1VqaEVGL1ptTklJSWRnMHBZbDNEVC9BWDU2MnNmSlNtT0gzOFBjZnhHMVBmNWVHSjQvbitTbStROHdhY3NTY29idmdPSUJBN0hlM3ZsOEZGcEgrY0YvdnN6M2IzT3BHSE10R21oYStnai8rVDl6UUpjamhVdS9ZeGdLUVZBSWlxUkVBaUVoNk4zSFY0SkNVQ29sRVNrSkNuSElHc09mTHYvalViMTJQajEvMS9melZQS2dOaWtoUE9WejZ0bHhJbHJ5K3NNUnBOU1lTZEJtRmhUNC9acUtVSjYxdGIxc0lJaFFla0Q5K3RtOFlsTm5qczY0M1crOEphVmcvS0F3a2FCSlBPUHcxbHI3aUdIcjd3SHZiRUNjNE81TzE1VTRDT1VVYkVOQmk2aWdSZFR3c2dDUnoxRzN1cGV4cXh1WmRPODhUdkRiakJwV1J2MUpZeW1aY1NxaDZkT3d4bzFEQm5jdHBOU3VpMVl1L2tDUXdUVW1qL3pzVEU0NCszTTBuUG9SaWdPZkpsUjVJc0hpWWJzSUpYRWttM0gxOC96dUxsdTlCdGVLaW9vdzExMDNtVFBQSEFSb1huOTlDNDgrdW83VzFnUkN5TjE2TytnRDRtRXY5dVlsVWFwRFhCeml1RlhWYi9UTFN3ODF1OGlGek9PSWhUTVI0VEI2VUF4ZGxuNzNEZnhBYUdYL0N6R3RGSy9PMmNxcTlTL1NFOHN5NDZSS3RLN2hpM2RKZm5QejNadzlZZDBSQXhVVkJmNld0cWFod2MrRVlUNW1MYzV3MmdYUjdZbGd0cU9adFRqRGhHRStHaHI4U0R1L1U4UDRnYWVrQWQyV1lPUkIzbCtYSlVpK1QzQVFadzBKSExpTTNwYVhMelM2VEJLZWxtTGlvQlNHNGEwbjU1bzB5MXZDcEhxRGlIclBNai9vWFA1MTc0L240UFQwa3A2L2hMNm5YeUl4OHczeW03ZWlYWVV3anM1OTNSQVNnYVF0MjhXYXhFYW1scDdBeHM2MWJEbnZ3Nml5S05GRnJ6RW80QlgrYk0yMnMrR3FUeUo3NHZpV3Y4VFl5bkdzU1d5a0xkdEZRMmdRUW9CN0JBU2F6Z3FjbFJhMjVUdG1IV0tIYjdMMmtvS3lhMlhkdnMvWnhmZWo4SVhDZE0rWnc5ZitmQjRmdVQ5RHFITTlhMy9lU2RCZnp0b2ZmQk94MmMrUHYzQWZYM3pLWkpLL2xMaFc3NW9pYWU1ME1HK0R5aGNBbDRWM2JFaTlRY053ZzBzdkQ0Q3J5Y1ExVFZ0Y2pHVlExMlN3NERGSlFFcm1YRDJZVFlzMWhoQjhZRXdkbVRqa1drMVcrblAwR1FKTG1EaTJRMnRySzYydHJiejg4c3ZiZGIrR2hnWW1UcHpJeVNlZnpNa25uOHlFQ1JNWU9uUW9obUVjNTZNanBMTW9MV2dJWmJoenduck9yWXlCQzNaZVlHNERzdFlnVGVpTCszbHFab3g0ZkJPUUJ5SHBGbW1hMTNReTk2VU5JQXlxUjVSejl2bDFmT2FMRTdqcFkyTzUvWWRMV0xHdWwxalNUM0UwaDNMWUh1QzI4NEpLbjgzOVU5Wnk2NkEyUHJWeUZFM3BBRUljUkNpNWNjMk8xNVcxaEtaUHd6ZWpobnQ5Qm5jdjFvZko3bDUrNko0L2JaT1Q0MGhIYnNVMXg2SE1ja1JvR2xMWlpPelI2T0JpdEE2RGNoRFNoOWk2a2RCemQ1SS85ME1FWHJrWDMrbzVVRHNjdzg0aUc1ZUJZZTUzUXVRM2Yvcm9BUm1qclYxeGNvWGlhTWRSUFBUOEl1WXNhVHBzZ2JNdFc0NHR3Sk9XTy8rQkVRNWo5L2JSOWNSenpOR2JXSDVWR1VlTkZyUHdBRzBkQkdYRlFRSkdtSUFWd0RCTnJHZ3hjdFNabEllSDRibzJUaXBCeTZJNURLa3lNWU9LVkpkTHc5akJqTDN3ZW55V1NWVlZQUnJONE5JaExESjlXSWFnb2lTRU9KeHBuZGRjQXhVVmNQMzEwTjYrNTNPcXErR3V1K0NNTXdiY3g3TXZ2Q0pYZTdYNVQyeUVxNStDMzU0R0s2K0J4NXRoVmpzODFnek55WUp2YUhjSlUvaE1GbkpFRDlhZEU3ZUxlS1h0ckYyeFJBVTBKd2ZSbkJxMC9XWU02WEpPelJ0OGJmeHZtQ0hlSVBXZ1p0T2pRZXdPOGM2Q0JBMWFnVld0S2I4bVQvZ3F3UnY2TEg0Mi93dk1iRDhEVjhrRFVrWG50ODQvQk5lSXd1emRnTEVIM1Z0cHhZYmVEVGl0YzkvWlVQMHdPZ1A5RXE2cWtYeGxtTW40eVA1UFRINWRodmcvdThndVNLSjNBMk01WktxdGhUUDN2MmtGeGNVd1k4YWVqOTE5OTN2VFhPRGRYV3dIRTBlVGhrVGw4dHoycitjeWZrUVZUNzZ5aGtSWEFvSStEQ20yTjJ5U1F1QXFqVXJuaVpTSCtkOXZYc1NxRFoxY2VPTUdwTS9jbzMvM1pIZjlBZDFiSUc5UXRONGtVOXF5bjJDelI5OERNa3MxSlJmWVJDWTUyei9yZTlGM3hQRnR0UWFud3lDN0VsUks3STdsZkZqbzlkVU5SL2tEN0Q1dTJCMEpraEtWemVJMko3RnFxdENPUTI3TFZxOGd2YTJENElReDFIN3ZxNVIvOEVvQXdtZ0krZzc3TUV2MDNoTGdsWWRZNnJSakoxL0NLdjh3NkREby9CNFdtUVo4b0JQZXVkRVo0Qi9oVlY0ZUpvMWVhVTBtNXlDREZrcEJPdXVBY1JUSVd5bElweDFlZm1FckJBMkUzQ2xaMjVUOC9aRm10clpud0dkNFRiLzB6dmNrd0cvemIzZGV5RXZMR3JqeXBQVkVETGhoL2tpZW1Uc0tBbmt5amNQSU5BMGoyTkJJOUtRRmhCb2FQVUM0bkIrdHdSMEFJUzJFeENvZVJHTFY0NmhjQWlOZ2VzcXFLQlRNNlYxam0xb3AzS3lnWk1vMVJNZGZoWnZwd1FpV0lYMFJDaWNmZmwrUEVCZ0MybnNTUFB6YUNqYTI5ZkdaMDRaeFVYMElTNHJqYnQ1dFp2QkR0OUs0cFpkSFhsckZ1YWMwTVB2dVcyanRUUExXa3MzVVZVYVpQbmtRQzFac3BhTW54Y2V1bk16SHJwek1pdlVkTEYvWHdXa25EbVpJYlRIUHpWNVBjVFRBYlY4NGw5dStjQzZ6RnpiVDJwbmcyZ3ZHSVlCSFhsekpsQW1EK2NZWGJxQng2ZWZwODhYQU5QanFCL01rbkFCUHZiYVJjNmJXOC9aOW4yRnpXNXo1SzFvSStpM09PYVdCWU9BLzlxMG5aTE1rbm5pSzdPTEY1RmF1d21sdngyNXFJbkxCZVZqREdyeGN2UUlQN3B6blhSV1dWQTBQTTZURXg4eE5uY3hzV1lsVy9kdENhZndUdnovZ2ZjVUk3OGdERVZJeTZOdWZvLzRidHd3TUF4VGZzOHZiSC96empvTVUwQW9pSVhxbWxUSnFVNWFhWklqbE9vS3ZVM0ZhVDRLbVNKNmZUU3ZqOXQ2MzRhNlp1elFvNlJmNzRpQ1VTNjAxR3MzcTNrWjY5R1pHeElQRWxaOEZ1ZFdjMkwyT0tYVW5JaWcwVUR4Q3VSeFNRMTNhNDF0YlFtTlU3K0tFQ0k0WlFmelB2eVM1ZENXK1FiVjAvdnl2RkY5OVBvSHhJL3B0anZmcUZOTUM0U3RCRmsyaWErVmNtaHFEa01sUlczdzZ2c2c0VWs0dmZxY2JFU2tHM21SZ0lHQjNwVm5yeGh6VXJkaU9wRDdZVGpSVlJsVXZKSk5yOGVraUFzb21KeHltOVBrb2lsZVNiT2hpOWZxUldNYkJBaldzZVIvdU1qdWtydFkyVHE2UGRNOEsvTkhCS0RkUHJPMHQvT0U2OUM1NXhXTEExMVhPRkx3d3ZvUjFsOWJqYjNrSi9lRHplNzhEUTNwZ0ZrL1BHOUJHSkx0UG03M1NKUE5RZ05Bbk13U3Z5NUgraHgralNwRjd6Y0tvZHdsK0pJdXp6aUJ6WHdDZDJyWENRV2p0L2FGeHBVRXlGS0c5dElxbXVnYldEUjVKVTIwRDdXVlZwSUpoWEdsNGZ1akNkd3psRHBoOHFEdUM4cUgxU3djR1JxeUlNRXh2NXZMMDJ6em9PNThSRlp1cEtlN2xuM1BQb0NOZWpOS1NJZVdkWERQMUxZYVV0ZEhzMVBEQjlDc011MzBMVzBRbDhvQmJmUjU0d2JKUEttNCtZellORlYxODgrRVAwSmNPSFhnRm9CWkVneG0rYy9uVE5IV1g4N01YTGlLbjVQdEFOSW1kNnY3RU8xallteHF4aTEyeHgzUDJOcTFLWVFaRFBMMjZqK3BNSTRORzFpR0ZTYVpyQ3kxencxak9GMWkvTllVL1dvNVc3ajdsM2tEV0pRZ0JUdDdCWDFmT1IwNFZORzJaeTl2QnlWeWZlQXFsWWNId2F4a3hmaEkxM1hmemNIa0lPK2NnZGl0T1BsUks1bDJXdDZYSXUzcS96UHVNcldqcXpiRTFudThYdmYyMmpjOGRrSXlydHBQNEMzbmZsbmE1cW1zNVUrT2JCd3dMOGtQSFRkYkRTcmZjTWVjZGkyZGJmR0hFa0RJK2RQbEVKZ3oxR3BYcVhKN0VhMjhSZStabERNc2tkTlowNUprekNOUUpoTG1qWVp3d1RheTZHckpsbFVRRHh2YnZ4cDU3bGNScmI0RlNGRjl4SVp0cWh2SFAxemF5dnJFVE5BVTdaSC85WlJDMUhHYTExUENubWdiYXFnUDg2WlZCaUNLOWk0dFBDbzBFSE1jRVczTFM2QzZHWFp0R0xSVTBmU3ZzbldQQnNPdFNUQjNjdzRLMUZXQXBUTk5CYmZOaEhhZjlzbE9WZ0pwaWh5dFZTblN2OXVHUGU4ZXVYSjdseldFK0Z0ZGJ1UDI5NWU1SHJwa0lLWHpuMlloSWZzOUl2eHJ3YTBUWTQxLy9qV25JN1lVWERkQkpnZjFpNkxESGkxMEZTOWM2UERNclQwZTNvckhGMDczKzk4NDBWV1dTUzgvME1XNUUvK2JlZFh6dVh3L0c5Y0Nnbmg2R25ERURsQ1llQ3VOUEsrTGwzU2hETVRwWHlkQ1FwR2prU0pBQ3RYSXQ3Wi85MTM1eFFhVGVYTFJISFNXM2NRdWhxUlBRZWZ2Z1RDOE5tQVoyV3lmSjErZnZhS0I2aUdSWlIzZXVaTzY5YXE2N2dCOG94NnVrSHcwa1FRVEI1OEJKUWNubDUwck9tbUV3YnFqQU5IZVl4WU9CNFVNRW94b0V4UkY0NWxYSTI0b3RyWnE5cUo2SFRFcUR0Q1J6bTFMODlzMU9mblpsUFQ1ejV5YTBPek8xaTlhS3k4dkdVMnBGcVMyckwvZ2UvUFIzZFlyYS9XWUwrb1BlL2xhamRLSFdiS2VmM3R5VjVzNVhtempjZ1lxQnNpODBJS1JMT2g5aHcrb0ZWRVV5bEJDakxQc1k4MzBYb1d2cWVPUW41N0pwN2xJYVY4NmpLQUo5OGJ5M2YvVW53Mnd2TEJkWXBwZnYzNXZvSWVqbXlEblY1Snc4N1YyOWxGb0pYT1ZnbWp2VkJCeEJWVWNYM0w3cjBwSzZwMllTQ201aFVhcVk1ajRmayszWDZaamZ6ZnEwRCswYnVQeGZEVlJLazJwTUZGQWpUV293aitrMnlOc2U2WElueTEzcFh0YVhwZm5ZeHdOODd2b2dnNnJsdTREN3FVSk0xRVNZRmNqZ0JBaWZUall3aFNhN2pMZDdPM2wxNDNMZTduaU14bVFiT1NkMzZBeGdtamdkYlNTZitpZkZIN3NWNFErZ3N4a0NVNmVUZk9ZUjNMWVdFSUxzbXpPeE42ekZQK2trek9wNkVvL2VSK0srdjZMU01TOUgyckg3VlQ0Y3pYVzVOOTdkZE1EM0p3VUVUVW5hVnUvYXgzN2JzWkFseVRoZVU1aERGUkdmL2V3TEI4M0h0cFpVNkFRL0hyNGE0K1ZuMExmZjdxbmtMejJEZnZnUnZybGhMRjBpZ2lYNkQyUzZUR2NPa284RVF0cTBiVzJtWk1ReVBuSFo2M1MwRkdFZytQaVZzd2tQSDAvbmxqRFZNby9XcXQ4QXpXNy94OCtPRzZNRFNXZWRkWFNQNy9YWDMxZVBRd2d2TkY5VDd1UENhZVhNWE5pRDdXcSs4cUVHTGoydEFvQlJnMFBjOC94V3NubkJoZFBLcVNuMzdZSkJma1RHclRRcTZDZXlwcG4wOTUrbDRYKytSOHdhUWZiYlB5RllWSVh5S2JUeS9vNEdMVUpyalZLYURSdjZHRHUyakxWcmUzbjRrYlZlN3JyZlpNeVlNdGFzNmVHTU13WVZZZ2o5bzB5K0YvSjMzdDJuNDJKSWcxZzJ5ZXJPWnQ3ZXZJb3B0U09aMzdLR1JENU5MSnRDSUZCYXNiRm5LNHRiMTdHbXN4blRNRkQ5VVV0OEtNcTAxc2hRaU9ENTU1TmZ0WXAwb1RZMGRQNzUrTWFOUTRaQy9XNE1oLzd5dC8wK042MDBkbXM3T3V2RkhOMmVQbUovdmhlanBNakRlRHBPaDJRc2FkY3ArUDBoKy9yYmRIL3Jkbkp2TFVTRVE2aFVrdEI1WG4xVitwWFo2R3lFems5K25manY3Nkg4OW04Uk9QdFU3ektPZ3pETUFiRTlwWVNUeHNMTjE4RjE1ME4xWmNIWFV3aERkdGdXai9TVzhaZk9haGFtSXR0OS9RdFRFZTdzck9MbXlnNnVLKzJtMm1lREMxWGxjT3VIdkdzOThqTDg1VkZZdU1yYmZ3NTVFOXROMTVVS1VqN0IzSG9mYjV4YWgzRmFPVVo2RGp6OUJrY3JOSitiekdEM3hnNHVMcWpCN28zaEpqTndDSDFVRDJhLzNLbTNEUWtnWmhpNHBrbEpvZllwOXRwcnhHeWJoT3VTQm9JRk5qb3lrd3c2STFHZEp1YTRMS24xZm93aGVjeVJXWXhCbnQxcmpzeml0dmh3MXZzSkQ4L2hyQXFnTTNJNzN4OU9HYUdRRkxWMGtjL2tRRXZNaWFPd1FrRUc1MnhDQlR5d3dCZy96aVFMTWxsUUNwbkpVZFRTaFVJZWNvdzU4ZHpYNlUxa3VlZWxGVHo1cGxmNzlLdXZYOHBIemg5UFdaSDMrejJKTFBlOXRJSW50aDMveGo2T2YyVWZ4L2R4L1R1K2ZpazNYVGlCMG1nQUliN3hEbEd3b2NzRGc2a3JycWMwVkVZczIwZld5WEQrbUlzQitNM3JQNmNvVUx3ZEZGMTRQZmhJaFFUaHRPYnFwNU5jK29ZbWxEWkpHdDFITmhWY0MwWUVzbnlnckkvclMzcnd0U2E0NThVTUQ3MllaOFVHWjc5bFdWSFk0YVJSVy9qb2xRRk9id2dnbDFtMFBlOGp0Y0pBWlFSaWY4TW83ellacm9zb0tTYjMwR09nRlpGZi9RUlpWd3RBK0VlM1liL3lHckVMcmtTMWR5SWlZYSt4MFJHYzNHMjVPcXJRbkI0aGNMWG03VzRZWVZVeFdqV1IxQlphUUVBNXBLU1BQMGVuOEh4d0RKMHlnSVZpbnR2SHB6TjVydHphNGdVWkRLOEdZbHZUanY0bUN6Z3RZWlA0N28vWkZJa2MwZWIxZS9QMzdWVTlQb0I0Z0JSZXM5ZWhJYzFuUHhMbGF0OWNadlZxdnYzSkgvSGNDN2NBbXU5ODhrNWFIdmcyWDdxaWtacE1BMys1UDh1bXJFQksvYTYxM01PTlZnWVpuUXlSN1lCRXNPK3VzUXFKRUJuZXNFOWtzcm1HSGgzRlVRYkRqVmJDWkdsVFpiU3BVaXhjUWthT2gzTG5nckNQU0VNbUNReXFLYVcwS1BTdUdJTkNDRXFMUWd5cUtXWHVFZFo5K3ZJcFpuZXV4Rll1M2JrRUtUZEhoUytLSVNScjRsdW84a1ZZNjJSWjNOdklqSXF4bFB1alI0N25OUVI4SnVNbC9NL2RkL0hDbi95VTFBaHlCWkRja2hyQkMzL3k4NjFmMzhVL2J2MEtBWi9aYnpwbm1Yby9OYXdCTFRSQ0NXeXRHRHpPWmMzckFmNzBOVC9SYWdkSEt6Nzl3end2L2QzSHZIc2poQzJUWEY2ejlpMlh1bkUyVGJNMWs2ZUJFVkRvL1p3Mm5YOS9OU1JVU2lHbHhMWnRsaTlmdnIwcGdSQmkrN0hqZE94UW9tWHIrL0srMTYxYng3cDFSemNJcE5UZ1U5QVNFR3dLQ1VZbFBTdDRUcWxrYUZvekxuSEFmYXIyWjRHLzU1Kzk3VW8rZDIwam1kUGgyV1VWZERjTFduUVlNYVdJRDN5d0QzOUZMeW9ua0dGOVpPdDZUUWtwRzZUQWQwMGR1aTZBL1VnWHA1MWZEdG9sK1hBUHh1QUFUSzFDQjRPSTV5U2tYYStPWFhPYzNzMzBGTEErSkdndmxVZk5YT1VkaFoxemFlMU8wUjNQa01zNWFHRUJCbUV6eTloQUk5T0xWM0pSK1JKT3JFd1FxUnFMSG53NTVyQnppSXc0RTZPb25uUk9zYllsenFiV0JLdWJlbGk2dW9PRmE3cFl0Ym1QVEN6ckthTStBL3dHTW1nVzlGTzl6eHdJcDNQL1RIc05HRUVJbndIbG53RC9LT2k5RjdydkFqY08zWDhIdXdBOUYzL1p1MGJyOTZIOGsxRDdYNUJiQnoxL2crUnNjRFB2RHRHaWJlL3ZJRm9wSEgxNjYzNmVsMU41WnJYUFJpQzVlc2pWbkZ4eHlydTRYZ1JWZ2FwZFBwdmZOWi9IbXg5alZ2dHNjaXFQUVBRUCt3dU4wK2tEVStOdnlKRHBqUnl6ejBJQUVzMnd5bXFtTm96bTlLR2phRS9HYUV2RVNObTU3Zk9WdEhPTXJxemhyT0ZqcUlrVTgrYW1kY3h2V2t0anZCZkZ3SXNWUTBqY1RKTHdxT3M1dFh3ZFBac1c4N2NQVCtDYVA2MGtXQklpMTdhQk8xNTdtS3p0RU92dDVZNWYvSjdRb0VuZStzOG11UDl6azJsZU1ZZWJyNzZGYjgzSmdRMm1ENXlER1BqSkUrdjdmYWVNaHYyY09LN215TzBSQ05ibW8zeTB0QkZiUys3dmJhRFg5Vyt2aGRSQVV5N0N6N3JHRmVUb2JtdEpDMHFOSEI4cTNjU1o0UTV1UzU2d3ZjZkhpVDg5OCtEa3d3RFU2U2tOd29LMVd6V3ZuZkZSWnVSK1RhYmJaZFFKRVV3elFLWGxKejg0eFZQUkcrbFpra2Fhc3Y5N0NCMWhPbVB5bHFONmZJLzFNMXlyei9ReG9Xb1lQZGs0RzN0YWpvcEc4TWY4SHE0VUlBaUVTdW5OeEZIUldsN3ZLME5FK3ZDZmZCSTY3WktMbEJJSzVIQmxHU2FpMzVvbEQxNjFvVi92WlVpL2I2cTd4ZHdkZ1J0MkdYVjZrcXV1SDgzV3pjVnNXRnZQaUJHRE9PK3FRWXdvZVpqMGltNVNqZlZlYXJSUXBMUkxCTWxIclNycThIRjdwcGxXbFRzZy9hay9GVFpiR1FpZlRTempSMGlCc0d6eWZUWlYxVVhjZU4wMFBucmFFTVlzWFVUZjNZL1I5OVl5cENFeFF5RzBxM2FBeDBvQlN1TWtrMWpWVlZUZWVCWDZ4blA1UjdpRmZ5eTVpemVhbDRHVVNGOElwZFYreDI5dU9ETzB4MEZyTEZLTkkzaWdlUVZsVlpCS2VYa2FYNzBWdnZQZjN2K3BGR0FJd3FXYUoxK3krTyt5WVF5NXhDTHYrdnBQU3N6dUIzdHAzVHl5QzU5RDliWjVlZWpibVV1aWV0dklMbnFPd0xnWkJDYWZmMlI5VFYzTk5QYTIwaHhycHl2VlI4UWZJcDNQMGh4clkxaHBQYTVTck90dTV2U2hKeEF3L2U5UDJYa29hWEdGS3F0RWZET2p5aitGWlVlSWFJdnk0Z3l4MkdaS1M4cTgvZTE5N0JNNTF2RHB0L3NkTnJmUys1TTd5UzFhVFdENkpHUnhCSHRySjZsWDU1R1pzd1RWR3dlNTUyUUVReXZHNWZya0lEdGRQRFhUZGU3ajBhRW52QldxZmlZdmZYY0NDNWorcXp4enZyUmZHN0FoQmNQcVMvakUxWk1aMCtEbE9SZEYvQ3hhMWNyR3pUMjRSMG9oM2w1S3RqZGY1YzZmNzYyNThPRWIrK0hvZzdvelNTRlFoUVppMGpUZVdUOTVpUGRpYWtqNE5OODhyNXVrVDJPb3d5eG0vckhyMjFtcnR2YkxqV2tCdm1TS3Npa1RpUTZyUnlQN1orOS9aZFg3VFBJSzBBb1Iyd0IyRDBHcm5ONThEYVk1Q24zdENGVHJWdHBWbEp4V2xJbzJSTFlEa1dncTFBSU9USzI2bEJKVmlQTm9yYm50dHRzQUNJVThuZEhaNWdNVGdpZnljWmE1V2Y0dlhNZUpacEFlbjRNc3FLMElVRmxvK25hRTBIaUg0Q2lYd2Q5SlUvdjVET3MrRjZYN2NSOTEvNXJCcWxDNHlRUElHU3R3bXF6NWZ5REQ2T1FzMEhrMHhjaWh2d01zN05ZT3R2N2dKM1Q5L1ovZ09KZ1ZGV2lsdmZ6bVk0SXRCTnAxQ1lYRFZKU1VJYVZCZFdrbHBqOUFKdi9PNUFOcEdHQkdlSFhSRytUc1hDRjNUQjV3ZjlhZS8vbmpNYlY2MHVrMDFkWFZsSlNVa01sa0NBYUQxTmZYNHpnT2p1TlFVMU5EYVhFSkc1TUpYTmZCelBTZzQ5MjQvakJhYStKbUZaTWpzeW4zWjNBNmZQamRZcStmb1BUYWpxZXlrRTQ1K05LZG1Ob2hrNGJGYXdYdDZRQnVNc1pKcXBIejlYeWtxMW5KWUJMKzZuZVY3d09XMzRaWHB6cXFRdktEUzF4K0g4elFWUFE4Ym5vTks1YjlDK3Y2c3B6Wm9GazIyT0x0dmw1bTNsMUw5K0xoaUxDRDY0cjlXbkc1SEdUem1pdW4reGhWS3pFa25EYkdaT3dnZ3dkbTJ5UVQ2aDMzb3ZGOGgxZ1c2ME1UMlZneGpxVkR6dUpqNi83TTlWc2VSaDVxYi9mOTNlYzFaRTE0ZG55VWxaZVc0MnQ1SHYzZ00wYzlmMHVnUHVMMXBYbHVzZWFVMFZCZGJ6UHp4VVlTdHFkLy8vT0ZIb2FQc25HaTRQZEI4a1F3MW5rUDdmM3V0VE1QQ2JQZCsrN0VDZVBvN1d6QnplY1pPWFFRR0pLU2lucnYrdWFSeTJlU2xrblZDYVBKOVBTUjZ1Z2gyeHMvN21SOXIvazk5c1dmQXJTVTJFNGVPVzQwdVNIMWRLOWNqUmFDbm80T3lxZE5SUlZGVVoyZGFNTW9ZRkRMZnNVY1A1YnBqT2hiUis3QmluMS9kakJ1VUo5aEViSUN0Q2Q2cUFpWHNMaGxIZTJKSGdLbUQ5TXdXTkc2a2JlYlZqQ290SkpGbTllU2MvSU1LcW1pdWJjZHBSWEZ3UWliZTl2eG16NUNQdTg2Nlh6MjREbEc3SVNoSWJiNVN4UmFDOXhNR0tUaTdGSHorTzVaajNQaHBBV0FadmFLY243elZoRXpOL2h4dGFESXI3dytGSWNqY0Y0Z3YwL3g3VXZiR0ZlYnhkVUNuZGZFWCttaCs0RU9uSzU4d2NqWm9ZZm9RdDJITENyQ1AzbzBrZE5QSjN6YWFmaEhqMFpHRGl6ZkllL2F4TElwT3BLOU5NZmFXZC9kd3NhZXJRYzA1emdhYTAwUzM1b08vanozbC96aEFPSUR4Nm1nUDB5ZnV1ZTE2N3BlSGJOcEltdXJrTldWSEpGQzBBM3orOSsrMkFkZWpxdEErT0dGNVQ3R3p2UHp1WnRMcWFvcDR5LzNMdUxsV1IySWtMbmYvczZmOGYrTzZ1Zi90ZDNlSDJ0KzhyMnlwQzdrOWVGaHpidTlNZkp2ejBlM3R4T3NxVVJHbzJTV0wwZDJkZU4yZENJTnc3UG5kc0tTTzY1Q0hJaDlwUkJDc21qbGZObzZlN0JFR2FGOE4wVkZZYkxWSHlMamFDSUI3NG94OHpUMGlOTVp0R1VSYTVzWGtOTmhCZ1hLeVdZU2hFTFJkNjNCR2tneUJCVDdZWGszdkx4Rmt5bGd0LzU4c2ViOFFZTHpCNE1wZHRqOVI0b2NwV25zdEpuZm1LRWlhako1VUFDZnVXUE9xb3RNU2tNR1M3ZGttZGVZb2JIVHhqa0tFcGFrQmNVbk9rUW5PaGdSalZYcStWTnFiOGpoSmdXSkZTYjU5b0hwNmFhMElHRFp2TDFoREk0eUtLL29RR21ONi9wUXRrVjVSWlp2ZldvRUg1czZDWmsvallRVnh0U0s0b0YrMHJWRDMzWHhhUUhodUtUdXkwMkV2dGdHTVR6LzNUNldTRlVsa05ycHRYdG81eDJpZTJxUEtvYldBa09HT0hGa0tVLzBiT2FONXFIWVNtRDR0M0RDeUJGSUVRWXRVUDJhbmFWd2Mxc1EyVzZFWXpITUdjVU1NaGlwSHVxMElrK2FwQTFrKzNDZGVSaldpZDVETUMwaVYxNk9WVlhCcXYvN1BZMnpGeU10WXdCMG92WURuc2RVUHN1TDYrZHovMUlQRDhkdldOeDA0a1g3VWFWNzZOOS8xMnNiR3Q5a2gzWmRSZFlJVWxYVFJaRklJb1ZreFdhNGQ3MURjd3lLM0RSTGx5NURLeGRYdWFTU1dRS3RmckxaSExGWUhLVVVKNTU0SXJadEk2WEVkVjNDcGtWWjlSZ21mUExmU1c1dUlpQ2IwUjB2NDh1OFJtdllUMlpDQTRPS1dtQzFRbmZMdmJaVjdHOS85YmF1YUk2U2FEZFBMcFBoNFFWaEhscFp5KzgrSE9IMkN3VC8rV3FlRXIvZzBjdmgzb2ZEZlAyUHRTUnpXN25zcEF6YXplTUl1ZGVaUHh6eFk4Y0ZvMGp4NThmU1pMbVZWejcrS0JMTnQvNXlIWGMvRnNjb1VqanU4VHJIbzlHQnBuTUZMRkpScU91UkVtMjc3T0lzMTRMalp2Sis2b1R5WUdQUTN2ZGtkQ3FJYnNpc0FWOGhsejlmRE1IUkVDblkzbkxnKzlnYXBzR2tDWFdzMzlSREtwMUdhUU83TDhLTVU5WncvOWNmWnREZ0JQbGVpV1dvQXhiNkFrOXYrT2tuWCtUcEJhTndIQU5SOEg4ZENObTJ6VzkrOHh1NnU3MGV6SDVMOE1uTGkvaitMZVhVMVZyb2xDYXpRaEY3MVNXelFxR3lIcHVMSXlXS3R2WDh3T3NONWdwSlhpdGNORUtMdmVZa2JldVRlRlNTTkpHRDZ0Q0pKS3F4R1dHWW1KTW1vaE5KY3MrL1F2NmxtVGliTnVJNzdYUjhGNTFUS0ZBVHlFRjFJRTBPUjgreFk4SnFsbUFNSGxSSWYxRTRhOWVqM1R6Q3N2YWlsaXBrYVFtQlN6NUE2Q1BYWTQwZlIzVG9FQkkvK1NWdVZ5dFl4dUUzT2wwRmhzUlhXa3piTjM1SXRta3ovL0dULzJEWXlKRjg0cWFiY0YwWDB6UnhIQWNoQktabDhiZC8zTTJtcGlhZW4vVTY0Mlk5ek9yTFA0N3NqU09Mb2w2L3YwUFozc1RlemhIN1BrZnZ5Ukl3Q0JvWjFpVEdZMG1ickJ2QWtqYU9zbEJJMG00WUFmaGtqclFiSnE5OGhNd1VyalpRZXM5QzU4eDM2MGU1YlF4WnZaT0J0M2ZSTW9oZXd1U1BhSXpiQllKQ005V1g1YnBva3VrazJiZ293ejFQNTNobVZvNnRuZnRPSC9WWmd0TW1tWHpzY2gvbm5SbGxjM1F5Zis2OW1LZjdadERpVkhrVEkvYXZEdVNzb1l1UDZwVy9PeHJ5bklOaGVPSGgvWlZYMXpCajFHaTBocWFXclN4YnM1S0ZiOCttSVp1bi90VHBHQ05Hc0xhNm11N09Ucys4NlFmNVlMeXhJeUszTTRmdjZmWHVuMmtnZGpUam5BcndGZklsaElBaFpSYmphdnprSE0yeXJWbDZVaTZqcTB3Y1Y5T1JzRW5sRmE1aXUrL01iNGozM2Z4dS96a2g4QVdqZ0thMGJnSytVSlJzc29kUWFRMDEvbElNeThMWWFXOGJWQlhreXg4Y3ZXdUQ4QUdnYjN4MDEvZS8rdk9YM2s5YUJnQWpSOVRUMVRXQ2t2THB0R3laVGJoNktxTW1oZG02K1BQa3hXMVUxUXhIV1I4bFhEeTU4Q2o3ajRjU3l1VHB2aXI2SEFzWGVDTlp5b3FzaHpYMlJySVVGK2h6TEo3dXErS3k0ZzVLREx0L2Z2Z0FiQXNod0pLQ0QxeCtBbHZiNHJ6MnlscVVKY2s3aXJtTFc4RHYyV3B6RjdkZytFMWVuYlVlNlNqT25ENmN1cG9pSG41Mk9iWTYxQnFkZ2ZIYkNBbzlrUUlSL3ZzREx6T3NycFNIMWwxTW5xWDg1cmxmOGZ5OFIzaHEzVXdtbGw3RVR5WU5Kejd5V1Q3MTI5T3hjeG1FZkhjL2dDRmdZbTB4ZmxQeTFzWk9GcmZFT1h0RUdVTXFKQkV6UkYrNmwvVmIxak5seURocXh0NU1zbk1oZHFxTlZFc1FTOGNKK1N4TW40OWNRUzc0ZlQ0Y1I1Rkp1aGkrTW9LMUYrSUwxU0pMSnZIWTJnaGRmWTBzNjdINTZKUjYxclowTUtxdUVpRWtRZ2dNMmM5OXBHS1M1RXRCM0Y2Sit3Rko2T3dzUnBGNnh3SVRQbzBibDZSZkN4Qi9KRXhtdmgrZFBmVEV3MjB3US8vNjR6VC8vY1VndC85cmlEV2JYTTQ5eGFTeVhQRENXOTQ2a2RMenh5a1hCbFZKZnZUbEVEZDkwTSthMVlxTFA5SEhDM1Bkd3lKcjdLeTluM3p1N21NajJiTTlMQ3JLOGQ5d05icXJsOXlUWHM5WS81VVg0Ny9oYWtRNGZNQjVIZStIdkZCSGVUVXBBZE9oTEpUaDlLR2JHVi9WdVNQM1NBdkNQcHN6aHpVVHovdVp2NldXUk01L3ZOSjlKNzdyN2UxbDhPREJ4R0l4aW9xS3FLaW9vTE96azU2ZUh1cnJCMk1ZQnE0d3lTaU5hY0xzdVJsQ3hYSDhBWU5YM2tpVEZ3TEhkWEdFaVpRR3hjVWxORGR2SWhxTlVsSGgxY20xdDdjemVQQmcrdnI2S0M4djc1Zjl0NjFYY2QvTVBHdGJGTis0RHE2YzNzMndZSVpxSzgrZDdkVWtYR1BYdGZjZTZEOGd0dW5FdXRDZmNPZTlVdTk2bnNETGlkL3J0bEhvNHhxOTZxcnRQUVVjQjBxdThUcEMvL2FYZDdMdUs1L2hYMUNFc05pY3Q3ZnI0SWVEeklHNHFBSVFtbzJ1eGR6cUM1Z3hkaXdUV01mZjFqeEU3ZXF2VURhNG5HelNaZnlxbTVsODVRcE9pazRodGlYSFN5SkhyTW1FdUFmWTNDK3pJRFRZTUdMNFNscTZUc0RLZGxQdHZvYUxTZFpYaDIrNFEzSmhqbkt6bTNqNVlJckQ2eGcxWmpVNDlCZGswejRwbFVyeDhHT1AwWElNTFpMV3RqWlNxUlNtUDBDa3NneFpQNWpNL0Rub2ZJN2MybFc0ZlgzSWNCai84RkhZN1cxWWRZTnhrd2t5U3hkU05INHlSV1dWOUtWaWRQVjFFcytsQjBad0NJRmorTGh5dzVzc3J4ckpZMlBQUnlqN2dEMzUyM3RQb3REUzR1SjFMM1BsaGpkeEROKzJMbnBIMllZRDBxZUk5Wlh4L2UrK3dsZStta0FhSnIvNDJWc2s0aFhJZ0R0QStKT2VpelFrQkhraG1HRDVLSlVHY2VYUzVycmtDdlBrRjRJYXc2QklHdFFaQmo0aENJbHRMVndQTFIzZ0l4UGVPcXJYemFkM2UvL3pmT3VCbTNqQ1kyRWxCSit0eWZHaGEyQk5keC9Qdk9ZQjBlTjZmczZ4dFpyaFdadi9mTkdsM1dueFpsVVBuT29xQkVTREJxTnJnLzNhUTl3MEJQV2xQcUlCNHlBNDhsQ3NhREFEeFFUS0JwTXNtMEpQM0RNNmpMS1RDSlFOeGd3VTdXcHdENEFJVTd0ZFZHb2JvVDBqeVVYUUlpcG9FVFc4TEVEa2M5U3Q3bVhzNmtZbTNUdVBFL3cybzRhVlVYL1NXRXBtbkVwbytqU3NjZU9Rd1NDaW9KaWtjM2tDbG1UQmM3L2dsUWQveXRDR1VySTVsN0lSNTNQeTVUK21LQnA2VHloMSs1U1gwcUMxdFpkenpobk05ZGVQTHVodWt0LytkaTVTK2crb2VlazdqWENuOERzRzczV3ErdGlCQXlNSUNabTFJUkp6aTBHQnZ5RkwwWXcrK3ExNzZNNzAyMTNmdmpxaG4zNUQ5d0Y5VUhvTXVBV0VZUDZ5RG5BVTA2Ylc4dXZ2ZVEzTlB2OTloNXQvOXhIdS9QdzluRDFoUGZwSVlsUnJnZlFKVHA4Y1pPR2FMRVpRYms4K05vS1N0WnZ6ekpnY1JQcUVoeko4R0NsdUNoWkVKZE5qQis0VUU4RENxRUhjZkgrNFI3NTdRY25CN2IrRjZkR3VvS1Fuenc5ck4zR1M1U0VRcjg1SHVLMTdFSDIxUGtTOTNoSDhPWmdwZlhuL0hZakg3UDVtMi9ROStTSWR2LzRMMlRYclFXdUVhU0tNb3krNVVpQXdoQ1R1cEJEQXY0NzhKT2RYelFDZ0pGU0d2UDRDckdpRXNMVURlQzlzaGZCZmZSNXVJa2xKcUF5QUM2cG04T1dSbitRZnpZK2gwUlNaRVZ5dERtdENsTzZUWkY0TmtVNmFIS2ZEVDFKRHh0S2MzT3JuYzc5UDhmeU1NaHFIbjBCK3hSMVlHdXlyQmpHaXBad3ZQZG5ERGN0TlVnR0ZjUUI3bmhCZThHcm5DSG91cjFIWlFyQkJnR25DMk9FbTRtU1hJUytGdWZDZkVYb1NObGd3WnBRZ2tWVnNXT0pTVzJidzgwZ2ROL1kyOHhySm5meUhFdE1VQ0NGUnJpWnZPelEyTnRMWTJNaVRUejRKZ00vblk4U0lFVXlhTk9uNFF6OEd5TzgzdlNiREFSTXBKVVhoQUQxOUtRSmxJVnlsYVcrUDhlQ2ZlL2puL2V2NDFLZkg4OHMvbnNVTEQ0WEo1eFFVYmRNaUJraU9SWXBnMGpTWWZDcXg0aktlNmdGNmpxbmREb0dMYloySTR6c05MVkpJZXkxbVRPTUd5bEJGNDlFbmpBYzdoWER5dUlhSjNMcUI0UHhuc1RxYkNheVpnM0JkYUcvMEx1Y0w3Qlg0Y0UvMHpNdExEdHhwVXRpSFhhVll0bm96eTFZMkgxOGtlNXN1dzBBN0RtVVhua1BQVXkvUWRWVXRpeU1PeGpGY2FDQ0ZBVUpnYXdmYnRUMFFCQ2RQdUtnWXBUVzltU3lESjA2alU0RWxxNmp5UDBzc0ZTQmNWSWxVZWZMNVBJWmxFTThsQ0JoK3dyNHdZbHUxM2VHa3dZTmgyeDQwYkppSGRLVTFCQUxRV0ZoUFE0WWNOZlB1YWpCODhNUkdlS0laSnBaQmtRVnJZOUNWWmE5NXN3VjNEb2ZxenRGN2N4V0lIU2VNTE5ySUY4ZittUnVySDhhYUU2ZjFIaitaVmJLd0Z0N2hMRVFFb1Bnc2g0cVA1bW11SDhGL3JmczA5elYrZ0ZpKzZOMjd2T3lGZmpIM0Y0ZmtXSnU0TWM1RnltYjNkSFJiMmJ5dzhUbVd6My96eU5oY0dud1NMcXVTZkcyWXdhVG9qdWpEdmlqZm1DWCtVRGVadHhOb2V3Q2FWL1ZuUE9sNEJkWitrM0lWUnRqUHJkOTdrc3F5RUJOR1ZSS1lXTWZNdHh0eDAvbnR4Ukd1NDBMQTRweHpScFBOMlZ6L3hRZm83RWxoaFAzZXNUM3c4NWV6engzWW5wQVhESHIyZGJybUJJN0pSQnFWRWFTV0drUk9FY2lneDROT24vZVp5aHpoTzlLUWI1YllXeVRhUFRKRCtQZEh6ei9LbitDQ1kzd3hIOE1ORm9WQStIeTRqb3VRRWpPZHdpZ3RZZkEzdjBQRjF6NExwcldUQm5GazF0S1NhV2U5cXhmUEc1WUpYRnRJb3RidmNxN0dpMXgvWmNEMksvRXVzU1JoZVExaWhOajIrdkR2bVhyUGhnRkcxRUtwSFY1TEtRWFNFQ3lhM3cyV0xJeDNMM3RJSU0vemI0L20rVGZIRmxEVUZUS1VRMmtCdmp3QW1ZM0R5VFFPdzkvUVNOSFVCUVFhR3BGQ28zS0ZCaG45RllNcjVNbjR5a2RTZE1JMTlMejFENFJ3UUFxMEtnRG1hMUMyM240L1JzQlBlUGhwbEV6N0RLR2hweDlkYTlRdzBQazg2VGx6Nlo3M0RKM0ZDdXM0VnNGMnV1VjdqM1BubjJkQk1nZkZJYTcvNEZTKzlla3p1ZXJjTVNSU09hNzUwbjA4L3JlM0NoV0lwWHo3TTJmeDJSdW1jdU9sRTFtMnJwMWhGOTlGMCt6MTRET3BtVHlJLy9yU2VWeDcvbGpPT0drSUR6Ni9naHUvOGdCczdvRlFnRFBPRzg0ZEg3NkY3bUExWUJMdldzODVsL3dlZW9IeUlCLzk4RFQrN1ZNenVPcWNNZVR5TGovK3krejk0bFZaVm9wLy9GZ1NUenlKMDlXTzA5bEpZTXFKK01lT1FlNnh3TFlBemlFa1NydTBxNFVzY1o5bm5ydTRVS1RlZjNMRktEcjB4bzh5R0lEZzRlRUhNMXA2Y0dLallOamVQbDV3eC9nTXB6U2w2RnBwQVlMVExyaVlGUTBHdDhmZXhqSkNVQnc2NkJsMjltS0NINXdzTDR3aW5VTzFOakl5UG9qbC9pQ2JXNXF3azZudDV4eHZCcmZuSjY2MUlOTVdSdllOb1dmOUFycDFpSHhSbUMyWlBBMU9CTWNKa0dncHdjZ05KdDA3aDJqVmZ0ZjFIcnkrL3MrUEhKVE9vYklCUG56MmN3UnltbEdwSnBha1drZzExeE1wYnNVWHpqQ2gyNlFvYi9EUzVrbmM5OXJGeUVEMmdBRXRQUHFQOXpYWGFPV2kzUnlCNGhINFFqVm83UklzSG9HYmk2SFY0VEh5REEzdEVZTy9UaTNsNmJGUjdMWWwwTHI0Nkp3d0I3TFArWENiSmI0emJFSTNaekZIdTdoYkpLcFRrdjVUa1B4Q0U5VW5FRUlqbEVhZ2NhVkJNaFNodmJTS3Byb0cxZzBlU1ZOdEErMWxWYVNDWVZ4cElOQUk3ZjBaL1Q3M1I2ZDhTRHg2WUEzbE5JS3NOdmh1MFQyc21UQ0kxZUVoL09TcEQ3QzF1NXhUUjY0R1lPYXlTV3hvcTZIRFY4TGsyRnErdStJZU91SlJIR0VNZUcyQ0VGNTNJdEZ2K3IvZTVab0hLdVBNQThoVmNaWGFvMDAwRUFXZWU5TWZEb2U5YUdwRnJxeWVPNXJhT0RtM2xXbnhHTmxFblBOSy9wWEY4VERwY0JTcm4yRU5EMHJQRkFJM0I1Ky9xSlRobzJ0eFgzZ0VXWFVoSTI3NUpkck9zL2JWWlloWGZvTmE4eFkzbjM0MWYzalJRQnJ1OWliTy9lVU8wbWlNUFFJbDdWRDdkNUhud2dObDZJOVJYTnE3K29DZnIxdW9VNUZhTXpIWnhnbTBjcHplRzNUUFF3dDNZazR2aGpSNFNCa2Z2V29TSDc1aUltTkhWS0l5V1pLdno2SHJydnZKTGxsSmNNcEUyczg4bDM4dVNHT3NuOFAzUHpCdVY1TlNlekdNSC8xdUp0cFYzSHo5U1l4cUtLZmtnak1SbGtuMzMvNUo4eGUrUStERUNWeDJ6Z1U4VmhMZ3ZwZlgwOXpZV1FEeEUvdkZsOXZxb1Q0N2F4S2lScUZURW13UDBFMEtrR2djeDBDNUJ1TXJlL24zOFJ2NGNFTUxuS3RwLzJlSXJudjlvS0hpb3puT3U2R0QrZmxPN3ErdjQ0Y3JSN0tpc3hRTUY5TjBVWGlBdXNkcEgxdXJENnhKRGlVQzFIcEpwdHRFYStpTENCNmI3R2RCcllVeWpqY3hPbGkzWlUyNTRJTHBQbG82WE81K3dpRnZlNHV1clV0eDRXa1dGNXptbzZaYzltc1l1K2VQdnpvb1g4bTI0bUVOQlBIUlZ3bjVZZDY2VExadXBpZ0c2WVZ2Yms4RnlQYVRWNnIxQjc5NWg2QVFBdnpqUjFMOWpac1J2b1BQZ2RXMlEveUZOMm43N3o5NG0vVnhSajQyU1FGTmVFRGdvd0EvTU53cm5RbUVvS0VNemhrbE9HK1NaT3hJZ1hZS2VwdTdnOEVEQVJneFZIRHR4UWJkdlpyZXVLQ25GMUtaSTV2bjREZzJ1WHlPS1pXakdkVmc0RGY4RkRlTUpKNkk0VGdPcHRtL09lQkJ5OWh0VHhiNExXTzdEQkpDRUxBa1FmK3VnSTZhSTk5WW9OOXRJUTBZa3Zic01NWlVMV1Z6WWpCTE54ZVJjUnRKaUFWOC9qOTlsTGdOVEN6YWhMOTRFc1JkQm1JR1BQd0xRV20wbktGVnczbmx1ZnVaUHZVc0lpV25ZTHN1OFkwdjBENS9OcVdWVlpSRVN4RkNITEVtRkR2ekF5aDZ6QkJ0R3piQjRnNHFwMDNseERxWE14YlA1UmNiNitnMnEwQzdBMjVIcWwzR2RJenFDNEJFMEs1c0hzekVlRTdHT1BVQ2d3YytVY1FwRXkwRUh0N3BMazlBRjdweHlRRFNxa2VFcDBENGRQck1jYXpPV016dTJNVE10bGtzNmw1SFc2WWI1VG9GWnVzblZHS3ZJdzN4ZS8rTVdWTlArUHpMMGZrOHZqRVRNQmZQdzE2OURDMEV3ZFBPd1JvMkVxZHhQWW43N2lTM1loRk9jek9ZQWhFSURNaTZQbHJyY2grYzAzM3dDMDRNd0xuN29MdnZYbm53L2hzcHlPWVZHeWVGdVAzVEZ6TnkvZTBnQk9zblhjeTN2cm1PUjVjMEV2REpRM29XdTVPTlBLalZwN1hHc29KODg1RnYwenFzaElyd2RPYlU5bm4xN29FSVBjdG1NWFBqRTN6SENtSnJGOUZQdFJRdnpIM2x1SDQza1BUREh4N2Q0enZyclBlbGJXd1lnczlmTjVpbjMreWtvdGpIVFpmVVVoTDFjaU51dXFTV0oyZDEwQm5MOC9uckJtTVk0cWdvcjlWby9OSkUzdjBjNmJZRTBSOTltNDdQck1ScGZCTC9uQktrZVhScklBT01kUXNjNC9rNyt5QlhLUmExcm1kVFh4dk5mZTJzNldxbU05VkhjNnlkRGQwdEZBWENsQWVMYWVwdHBUZ1E0VmR6SG1GOTl4WUNwbytoSlRXczZteG1ZczF3Z3FiLzBCYlBJWDdYUDNreVpuMDk5cnAxQUlRdXVBQ2pBQWJZMzlUemowY09ta2xWUEVIeTZaZVA3MkdIU3E0TGhvRXdUZHpXRG5xKzkxT1M5ejVXUUI2MmtNVlJ5bjcwVFlxLzlFa0FZci82SzMyMy94WTNiNU5mdW9yV1N6OU81Q05YVS9aZjM4Q29yZHJsbXYxQlVzSkpZK0htNitDNjg2RzZzbURVRmZvQ2RkZ1dqL1NXOFpmT2FoYW1JcDV2WCtqdE9hWUttSitNc2pBVjRjN09LbTZ1N09DNjBtNnFmVGE0VUZVT3QzN0l1L1lqTDhOZkhvV0ZxdzQ5MVZzQVVrSEtKNWhYNytQaENVSG0xdnZJV2lsWS9kcHh2bnUva3dCY2dlb3ljVGY1c0U1TUU3eWhsOVR2S29sK3Z4V0tDNmRGRlprSFN3bC92aFBoVjdpYmZLZ3VFNVFBODNBNjNUUUdCdmwxVFNUNllrUkt5NGkxZEJBSmg3SDhmdncrSDFwcnN1a01UbCtNZENaTnFMYVdSRjhQUmVzM1lXRGdIT0pnTC8xL0QzTHBxY081NmFLSmZQRmFyd0ZWVHlMTHZTK3Q0TWszMXdOdzVXa2orY2dGNC9uQ1lUcmVtOGh5OXd2TGVmYnRqZThZYjlnWDRmVjFyL0Q1TS8rVmttQXA1NHcrbjcvTytUTTFSYlg4OFkzZkFKcW92d2hWQUVVeUZHUjk0QnFDVTViYVhQdENqcUZiWGRJQlFUSUlVbHRIU0xrVkJBeVgwOElwYnFyc1lZYm9ZY09DTlA5NE9zZnpiOXIweFBaUFdBb0I0MGVZZk9BaVA5ZWY1MmVZOXBONDJrZlBxeGE1RmkvV0pRNWcyM0FjdFMrbERIdytVdmM5VEhiZUlxeFRUMFpVbE9PdTM0anoxbHgwWHd3UkRxRnorYU1TbzBjRGFXSHhjR1FTRFhhZVlma2VUSzFvTnlJOEVSekRQME1ua0pVK3RIYkpDWk1GL2pwODRVbWNLM3piL2ZjRFJVTU5IN2NFeXJoSWg3R2ZmSkh1OTNySGFRMWxQc1VueTFhUXZlWUVwalNHZWVEcFYyakxYSTNTOE1yVHIvQ2hLNnN3aDRhNStmRlZQT29yWjFObTMvNm16VzRWcmJLQ3Jhb2NEaUN2U2lNUTJDeXh4MkdJTEhIQ1hPcDdtNDF1SFE0RzN3N2RTNk9xNVplcEQ0RndFRWRCenRiUi80ZzlIdTdNeFhpN2V4MmIwMTJVKzZLMFozcEpDSU1pSzBqQThGSHFqK0F6QTNSbTQvVGxVNVQ1b29XY3hzUGM0QVpJMnk0bkRUSlk5Y29yZk9MU0ZaeC9TVFhaRGdlckVCck05amljZjBrNW45aXdnbFd2dk1Ma0tlZXhjSXRMeURJT2VjVWVuRC8xMkZ2M0NBK3VSU3FKUXVNM0pTdWVDK0YwVzloYmc2VFhDOUxhb2F1MUJ5MFZBVk1TTEhiUjNTYUxudzB3NWxTYkYvOFlZdlRFRkRWamJEYlA4dU8zUUdqeHJqQXdvMzd4N2FON2JxYmQxMitYVWtvaGhLQzd1NXY3NzcrZjF0WldoQkRjYzg4OW5ISEdHZFRVMUtDVVFrclp2d3ZvT0EyY2ZKTEhsbnd3eXdOSDlmaWM3bXkvWGN2U01DR2hNYlRMZllOMjdBVlJSM054aDh2WXBPNTM4OUkzZE5EUk9iRkwxL2ZiWGhId2F3WU5Bb1pCbjlIRGN6MWJDZnV6VEJtZllPUUVEVm5RK2FOaFh5dHNiREViTHF2QytmZlZtQmRWa2lzcjJKaHBoOXp2V3lrL29ZK3lMUmxVMnZVUy9vNUR2K3hiTHhMd1VKWGtwUkVXN2xHQ2xiUE50dTdzVFpPM0pWcjRDUnM1UnZpYW1GYXloc3VyRjNKeW5hQzRiaXpPa05NSmpMNklZTU4wK2xLYU5aMEpXbFp2WnRtNkRoYXQ3R0QrbWk3V3RzUlFxWUxkN0RNUVlSOVNlRmFHVnJwZjQvWWFNSUlRUGdQS1ArYjluMWtDVzc0TXFaMjZsRW9UeWovdXZVNitCdG9CTnc0ZGQwQnFMbFIvRXdiL0FWSnZRUGZmSVRVYjNNeHhOV0NIT2lTSTVXTTgxdndZRzVNYitjaXdqM0IrM2ZuNHBCZVRrcnZsQlczelcrVlZucGUzdnNTOWpmZXh0R2NKaGpDd3BOVmZnMEtsRE9JdmxCTTZPVTV1UXhDVk5DaTY4QmlkWXlHUWpzUDBFZVA0NmhtWFVCV09Jb1NnSmRaTHNUKzQzV2RUN0EveXVWUFBwYjZvRkswMU14cEc4M1BEWU5QOFdXalRISEE4RVZlRDlFc2VXNW5qd3F0UHBXTEQyNXgrMGxsODcrSkIvTmR6bS9qUkV4djV3aGdIMStmSGtJSnNPc1cvUDdVQi9PWGNlL01VeHNqTjlBVWxyL2FXOHNEY1ZSaEZFWnhqR1Qrbm4wa0JUYmtvU3pLbGZMWjhIU1ZHbmtkalExaWJpNkswZ1VLelBoL2RYdE80bzc1UklJWEw2RUNjYTR1YitXQkpNdy8zRGFZcEYrV29uVjFwUUQ3QnJ4WU5RcDcwWlU3dGZaeTZ6czM4T2RkTjlmQXplYURxUnU2Wkh3U1JRQXZqUGFkamZPdFRSM2Yvb01lZU9iNGVqNFc5V1FoSlVjbGdWRzRaVTZwS2VGNVlsS3g2bFQ0bHFaaHlIbFZSazZ5VG9ycDJZc0gyN2gvTlpzMFpaeDVUYytXa0pOYWI1WHoxUk0yenEzMDhzMm9RbzRmVU1HSENGT2IwaExGYjFsQjZ6d2JTU3lOZXpmdlJLRzhLOHQ0d3djM2I0Q3BtbkRLTWoxNXpFdGZXV01oSEhxUGxIMDlpdDNkaEJJTWU1dFZPU2VEQ2tLaHNIcVZjU2s0OWlaS1BYOFBhYzBkeVQ4OWM3cC85TkIzSlR2QUZFVUpzMStQMlcxNE04KzM1Z0tFaFBZaVBQcHpncVJ1YkNkZEJQaUdZdHhSS1NtSGxlamozSWlDdldUb1hQcjdnQlBxbVJIbGJPVWVkTTg1dTI0RFQyN3JIZEdrTk9EMnQyRzNyQ1V3K2NwaUxtM3BiK2YzY1I1aTVjUUZwTzB2ZXRTa0plQmhPYVR0TDFzbVJkMjJhKzlyWUd1OWllRm45KzFOMkhrcGFYT0gvb1ZWbERCMHlHb2dXUGtsRHZydGdGNzIvOTZaakZaOWVhM0JhdTBqYyt6VEpSMTRFdzJDRmlMQkFGaEduM2pWSzZ4eXhyK1l1d3V1WlYrN21pc3VkN0hVeG4yOHFjQS93S0xCZmprWFRsQlJGL0lRQ08yem1jTUNpS09MSE5BM2N2TU54T3NwTUdpRlFtVHlWdzd5Y3g4N0dEbVRRaCtvdnUxeUFVSUs4b1hoMFRCb1ZZbnZPNDVHaWY3OXJkcit0dTJqWTRyZGYvUlFWeGc0cGU4aTNkdnJmMzVlV0FiNElqcitXWkJhU1poMHRLM3NvaTRiSlZ4U3h0czJrV0VlSlp5VTE0Y0VvSXpJZ1VYc2hCRkpLWE5mRk1BeVVVbVF5bWUzeDJuUTZ2ZjNoQ3lseGxjSUFHdDA4MThlYitJOXdEVGY1UzBscUYxdHJEQVRDNThWS0VuTXNZcTlaWk5ZYUZNMndrWmJHN3BINDZoVFI2UTQ5VC9vd2kvUis5aFpVM3B6SnNQYzJlQ29pTUJsaGdIWU0ybi81ZTlwLytsdnN0ZzZNc2hLRWtHakhQWGE1UXdpa0ZBeXRHY3lRMmlHc1hMOENZZmwzMGZtMTFyamF4VkVLYVpoZ2NGRCt4ZlRyeHhhK2QzTnpNeU5IamdSZ3c0WU4xTmZYTTNIaVJMcTZ1c2psY293ZU5RcFhLVjZadjFyWStUeWhlRE9odmcwa2F5YVJUanFreWtjenRGeHdhbldNck5IRCtudzltN3FEeEJLS1RNckIwRFlDaDZCUDAyMUhXYm94enBQTEtwakhEUEpaaDdNQ3F4aFVrcVlyNldlOU5abXNWWHBFNWtGcGdiUWMxalZXY1Bjcm8ranJ0Q2pXai9OYWg4bU40d1E5YlVXa3R5NmlJVG1LcG13TlByc0M0ZHMvVE90dC9VaGlLYzFmWDhpVHljUHZiZzNpdDd6MHpHZm0yL3pmdlZtYVl3cHRpS1BPRkRjMHRFVWtmNW9hNGZHeEFleTJ4ZEM2NkJqU1U4QnhvVGtGbDY3UjFPWmd4VFRoT2ZnQjJ4RFVieERrT3pYMkdKQTJIS20wTG8wZ2FVZm95bFljY0s2aVJ0Q1ZyU0JwUi9wdFBBKyt2TGxmYkU4cERkSnBGNDFET0JSR3FTMW9yWTZvTXFjY2w5NE56YlF1WEVHcW81dmo5UDRrYmRzWVF1QTZMbVpSRVNITEpPSUxFQWdHSUJoQU80N24zM0FLK0JESEUwQzIwdytIL1BkaGw1RGIvOXVUVTFMczZyVTY1eUN1SHM4bVdkS3lobzFkbXduN2dyUW5ldEJvM2hiTHFRZ1gwOWpUU2lxWG9USlNUQ3FmUldsTk1wZkdjVjJ5VGc2ZjRXTnpYenRWMFRJR2wxYlRGdXNpYStmNlp5K1dDcTBGYmlZTVVuSDJtUGw4OTZ6SHVYRFNBa0F6ZTBVNXYzbXJpSmtiL0xoYVVPUlhDS0U5YkpURHliWks4TUZUZXZqZ0tiMG9JWEM2YkxvZjZDRCtTZzg2cnd0NVZCcGR5SG1WUlVYNFI0OG1jdnJwaEU4N0RmL28wY2pJdnZleHZHc1R5NmJvU1BiU0hHdG5mWGNMNjdxM3NLRzdoZVpZTyszSlhtTFpGSGtuejM0M1hoY0NFamJNNmNKZTBjZE1kL05Sczk2eTdvSGxsSmpDeGRnTnBOblJFa2NaQXpSQ2U1ZDNvYS9jdXU4RmR5Ujl4L2Y4NGNqc09WcUQzK1NPUHl6bDlmbnRPSzdMOG9YdEVBMGNVS3VlNjVsNVZPOFBYOXZ0L1h1bGo2c1E0RG9PY2VsSGhJSVltemJCTCs1QXhmcklScU5RV1luKzQ1L1FrU0pNdng4WkRCSTNBK1R5TGxLSTR4cEVnVksyMnUvMTRyTWdISzBpRWk1bVkxTW50UUdCVXhKRlpWT0VkWko4SWtjd0hNWklwZkJWTlNCOFFZS21TYkNpaFBtTlMzaG16a3l1UCs5S0VqbW5mMnNvRHNBT1BXK1FJQlNBalMvQWluYVBDNFpWQzc0OVhUQzl3c05tRk9MSVI0SmpHWmVaYTVLMHhoeHVPcTJFVTRjSHQyTzh1MG96dnluRFBXLzFzYm90aTZ1T2ZQeFBPNURhSUpHekxNd2lSZW5wenZZNldxdEVrMXhsMFAyNlJXcURSRHNES1JjMFBpdVBveVRDRG9LVnhobjFLdWt4aTdpajFlUS9Id0lsQklZK3NwbHFXbmgvUlhIQm5UZGxXWEdkaVgvMVVLK2wzSDcwSnRCNlIweDU1OWNIZTk1T0hzbDN5Tm1EZWc3YmV1WEpJR2RPT1pXMG5hZXRxd3lCeTR4eFJadzY4VVJNMDdlTHJkQS8rN3BOUHY0RVptK08xbHd0dm9qRzU4WndoUStsSElxTURKdExLdWx0MlVweDkzUDRpNk5Zb2RIYmRmTzN6WHIrR0pyQjZuQXgwaHlJUE1DRkJ5aXpCSldSWW9vRFlaTDVEQURGZ1RDVmtSTGtmanljUS8zK3V6NWg3YksrYkJUTFNtYVF5VWNabjNxTGFmRTVhTXRFZDRKT1NyeUFZUUUyUjBnc3k2UzBQSUJwbXVUek5vWmhZTHdMVG90T2Fud3hVTTNyNkYyK2dtUkZGVzlNdnA0K3Q1THg4bTFPV1BNYUpvZlBKNkM5b0NoeE8wUStsK2Y1ZFJWTUg5bE9aOWNhZE04bUZzWk9ZM3dvZ2NKZ1NieUdUUHNtenFuZHlDa2ovTHk0dm9KazFpRHY5NEU0c3JYUXJwSVlFWnQvUE56TFd5dHZRQU1iVjNWaUZDdGNkYnpoMzlGQ3dxZmYzUSt6eC9jYXc2ZndHNHFBd1lEeVdlNFluOS9MZjMzNUlRb0VCZG9Hc3dRaHpNSWU1SUR6QkloZjlBK083YnZxT3dLZGQ2aXBMdUs1T3ovR3JkOTdsRWZ2V3dlVkJqLzgzTk44OTBOZXZrUStMckdNZzlONXBOVFlHY25vVVQzODlyUFA4dm1mWEk5Um1zUlZIRkMvSTYwMVhWMWRBTlJWbUh6L2xuSStkV1VSUGkxSXozV0p2ZXFTV2FGUTJmNkRBRDZFN1EwVWlCQ01LWFVwM2lwb0NtUnBjL0tVSnh3bXVncWpIcFI1cEIwb3grazRIUUlwalJaZ1ZaVVQrL1hmeURlMzhQRUhmc3ZRRWNPNTVNeXp5VG8ybG1WaDJ6YU83YjJlT1hzV0U0Y1BaK2FpaFl4ZDhpTHJ6dnNnN3VvTkdPV2xhUHZJNXdtS1FnOVNnY1pSSmkrMlg4YnJuUmVRVnhZK21hZlUxMFBRU0pOMnd6eTQ1V004dU9WakNEU21kSEQzZ1puOVE1N290M0dHc0tra3laR0laMjNycFZKck9Kd2ZUSE50T0VGVlg0b1hYcy94ajJleXpGbmlrTFAzUGE2NlNzbWxaL2k0NlhJZlF5ZldNVE4vQm5lM1hzU2JxVW5rVkFERWdlVXQvZkM4dnh6VnkrV3NIKy82L2tjSHUreUFvVUp3c2hDRURJUFRUcDNPMjIrOXhSLys4RWMrMU5KSzhJWWJDSDNpRTl5aEZNMzBYenBFNDROUHZKZEZHWTdTV0ZJUXRDUjFKU1pUaHdSWjFaYmoxYlVwUmxUNnFDMDJTZVlVVzJNT3Fad2k3MnFLQWlhV0ZOaEtjNmdsNDhmYS9MNGoxaUVFb1pJS05CQXBxL1g4dnFHaXZjZEVEclBvK3QvaHk5NUh4cDhYcHdpSGl6anYzTFBJNTdJb2F3SUxIM3FBMTM3elpVNzV4bTlwR0hJTzJqa0Z2eis4MHdNWlFIMVVnTFB0K2tlSjJxdGRqWnQxcUs4cHduWVVzMTViaDdJaytFeGt5TGNkVTAyRURGdzBhelowSW0zRmhNbURxSzhwd2szYmFNdndnSDZQc3NpUWxPQ21EYzZhbHVLcUtRdXhrODJjWFhrRmVmTW1ubXg2bmN5cVZWdzE3Q3pPTFk4ektQOW5xc2RXY3VVcDQzamt4UWd5NHVDK2kzMG1oS0E4RW1Cc1paaEhsN2RpYThsSjlhWFVsNGNZVXorYXpwNXVXbnZhV05XeWtSSFRMeU5jUG9GMGZDdXg3c2Nna01DbEJLRXB5RXlOcXpVSzBQNEV2a0FaWmFNK1JxaW9sdTZzWk42V2hiaXBQaUtteGF6R2JzcURKaU5xSy9mWXQ3Uy8rRlJuQmVrM0FqanRCazZuUWZFTktXUjBWeHRZSlNUeGg4TEUveGttdjk0cTlJdnNIN2txaE5lLzZ5cy9TVE4raE1HenY0NHlaSVRCcmQ5SjB0cFZ3SzJ3b2FwTThzTXZCUG5NUndKc2JGSmNjMHVjeDErM0FSUDVnVkhJRXlwQTlTOWZPdjg1NXgyeTV2QnBuc2RwWDJRWkxnMmxmUmhTTTc2cWs2RWxmVXlvN3NTVTZoMHpPTGdreHFXajE3TTFGbVZkem8rakpGS3E5N1ZYUW11TlVvcU9qZzc4ZmorNVhJNm1waWJxNnVxSVJxT2tVaW02dXpzSlJnYlRZSFZ5VmVCVkxNdkV6aXBTaitWSkFhZEpDMy9Rd0xZZGh1aHpjTFNndTdzVEtTWFJhSlI4UHMvV3JWdXhMSXRBSUVCN2V6dWxwYVZJS1k5NC83UGpWQkJycG9sMlhSemxZbGsrdXJwdGZ2Wi9uMk9xdUl0LytRMmtwSW5qMmxRZjVzZGxEZ2pUSXdDSEZrcDRjSEdHczRmMHNiblR4TjgwbVJmV3IrUEZXV2wwSmt2VXlITkd6UmswdHhsc1hMT1J4YjErTmxFQnVQM1htRmdMTUdIVjBoUG9qUTJoS3JJVlhBT1VDYTVFMjk0cG9MQ3NISDJKRTFpemFoeGpUbHgxV0FOajVqSEcwUEY0bkV3NmpUSk1oTThpdTJRaHlaa3Y0Ujg2SEpYTm9USnBaTFNJME1tbjRyUzM0aVlUMkswdEpHYStoT1ZxaEdHeU9kR0ZzRzFzN1hwRkFQdVhHYkQvaTA1clhDRUlPSGx1V2ZJa0c4dUhzcVJzT09UeUIrN1YxeDZBK3VUTzlkeXk1RWtDVHA2OFlTTDEwYWxJS0FYUzc1SktWL0RmUHl3WXE2SUNHWEFaU093cFYwT0g2MklBSi9oOGpBT2FIWWRYTTJtY3dseUZoR0NxUDhBUTA4UUViSzNwY0YyR200Y09sT1ljWTdoYWkxVHlvRDEzUXNCZHI4UFlzK0dhTDlxMEZjT2pMME1pN1IzN3dDWGdEOEdjOVM0eE56WHdteHhRWCtwamFFVUEyYytaWUVxRHo1UklJUTRJU0ZJYzdJMFV2dWtMUmlnZVBBVURSYko5RkFDUjZwRkVCay9CRjR3YzltWUp1NnZUVXRzSTdTVmJ1d2hhUkFVdG9vYVhCWWg4anJyVnZZeGQzY2lrZStkeGd0OW0xTEF5Nms4YVM4bU1Vd21lZWdwRko1ekVWZDlhU1c5aUpVdm16RVduT3JIaVd5Z3BhOERPNVNBYVFtdjlubFlrcFJRbzVYRFJSYU1wM3duNHVMdzh3TVVYaitiNTV6Y2dwWG1RUUo2YWNlTXEwUnBXcis0K1lJNDgxbEtFYTI1dE9YQTczSUNleHlwSXZGMk0xb0xBOERRMW45M2lPVUQ2bSsxK3UrdGJRL1duOUR2Ry9BcUdaUDJtR0l0V2RBR2F4dVplUXNHUmZQb1BIK1ZQbjcySGN5YXU1MGptcHhwYU0zRzRqL3RmalBQbzAzRzJ0SHRCM1VlZmpyTzJPYy9ITHkzQzBQcndUN21BeHlvdFB0enVVT3pzLys4TG9NY1NQRlpwd3Z1a2Z2Q3R3WWNDSks5QkM2cVVnZWxvbG1XRG5xM2thQmFLSUIxRHpVS1NjdjhKaWJwWThxaWV6NjBIdzY2V1JmbEhyaVZ5K3NuRVg1cEY3T2tYU1M5ZWprcW1qeXJFTGxNWTVGU2VIanZGNmVVbmNkdjRyekM5YkFwb3J4MVFUYmlhR2IvNUV5WStndXhvVWxOcVJEbmo5dC9na0NlS0Q0V215bGZCenlaL2p4c0hYOGx0SzMvQm05MExpSnBoL05LSG93OFBpSW5PQ1p3VkZuWTNISGM0SHlISG00YXNINjVZRitia0xYRVdOU2lXaml3amE4SEVScGNUTjNZd3ZOZFBKdGcvNEpkZTArWmQ3WlpNVGlOYUJYYTFnLys3Q1NxV21lQUh1MFBnVHdpbVhhZ1Jyb3M3Tk1kUFVpRWVmMXV3WktYTjJnME9mWEdGNjNyYS9mWjFZa29NUXlJUXVFcVJ6K2RadFdvVnExYXRPdjdBandCcFFBcE5VenJJZVhNbWMrT2dOdTRZMDBoVjJNYk5leHE4SVRUYWhaS2lIRFVsQ2RMNVdnSytMTjI5R1hyNlVnZ3BDUVlzRENtSkFhN1BBNDY2ODZmem1mbDZOM2ZkWGs5bGlZdHJlNy9sYWc4ZTNmSnBPdE1XWDFvOWpBZTIxSUNoa0ZJZE9BQzI1WVBSRStIa002Rm1rTWZJV2gxek9hVmFneTFINFFST1Erc01zbTgrMFNYM0k5ZGtzRXNiMEEzalVGV0RjY0pscU5JYWRIY3J3YmVmeE1yRXNWYk1RZ2ZDNERNOUI4dTJDK3IzcnV3ZU5Pam9Ca0xkc21WWGU3TGtqT2tJS2ZCVlYxRit5Zm40U2x1UjJXYmtNUmhtMUFVZHBqZVdJZStrQ1VvL3V1Q2NGVUlpbGVkM0NRU2oySlZEYVcySmdUT0YwcktsbE1nYXBBYVUycTRINWV3TXNWeWN2T3ZTRlV0dlQ2NDhmTVovRGR4M0gwUWk0UGZEdkhuZTU2ZWNBcmtjSkpQZXNhT0lYQTJHei90L2VlY09mNFNRZTVrN0RlUEt2R09yK3hnWSthaWgyQmZudzhNZTVndWovc3lRbGcxMC9kaEgvUFVnT3NzN0UwTUtBdzJPVjFUZWxNTSt0WWk3Mm0vaTE2OS9tdlh4NGQ0WUQzS2NiN1VjUEdDLzBJSkFqNDhMZE9nZEExQmFzYjVuQTNOYThtaWhEL3ZDc3lSY1dDbjUrbkNEcVVWeXYxMDM5cVljOFllNlNiK1I4QUJNanNmWDMwUEdnc0IxRlJ2V2RiREJsQ3g3L2w5eFhjV01HLy9NbUFsMWJHcnBCUVJENjB0WXM3R1RYL3o3cFppR1pPTEZkM2lCSjcrNTEzakFkUGZBR3F0cEY5eDFtclE2ZG5VUEp5NXd1aVN4MlY1Y3orbVVPUEdqSlZ2VEF3czRVdXQzMXVxRzQrdHRBT21vYmJDNGpkNmwwYUpHb0xRZ1NoNDdyOGhlY2luVnQzMGQzd2tqNkUzbTBma1V3akNPVWgveXRrR1pTSitCeWlsMm9IWHJQWityRGFUZlFPWEJBNDdxL3h2VGp2R3VldmllWGg4Vit1bE84bDhJVUNrSDVTcGtrUSt0OWJ1YXBrb0xqSEN1MEpEYks1SjExYlk0VmVGL3YxYzZuV3NjVG1mVE1Qd05qUlJOWFVDZ29SRWhOQ3JuMytGSU8wUyswR2lrTDB6NTZmOUtycjJGWE1kOFZEWU9zdUJxTUNTK2lwRUlNNGdacVNRMGZCcVJVUmNTckorNlBUZElheGNoakNQMlBIUWhJbHR1WjVpZTJNSWwzZXVZR04rS2JlZDJnenpyWHpKcmozS0IyN3JyMnp2dm5zUC8rN2VMT2YzRXdUejEybHIrL0krM2VlaXVONkF5Q29rc2xFZjR4VzgvUW1WWm1Mc2VYY1NQL3VjWmZ2US96MEJaR0RyaWpEaDFHUGM5ZEN0ZGZXbnUrTWZiZk9ibXYvR1phQUJDRm5RbXVlS2owL2pNQjZZeWQxa0xQLy9iRzV6NzA1Rjg3dVEwcVp6aXlhWlQrT1pYQjNQcTVLRTg5dklxL243dlhPNzV3K3RRR1lHczQvMytmcEFNQm9sZWNqSHhCeDlDT1RsMExFVm8ralFDSjA3ZXNTQUxOcnlYcisrOVg1dll5TXR0czNtZytVbVd4cGJoNlB6NzNrNXcxTUhIWEN5cElXUFNlcUZONkRzOS9OY3BuUkNjeUFmdSt4VnRNKytIdTJaQ1NRamJQUXJBNllWQUZ1VFR1S0lHTnRvbEJLTXVRMlNLUzV5aGpDa2JnU0dOSXo1TUpXQnJxTEJUS3hpV0VMdEl1Y3lhRFZSZmVTNitFOGZndEhkVCtkVlBJa09Cd3lGZ3dZQmtoeWJabXFLMDFLV3lJMCtUWGNVckxkMWNXL3dtbFJMc1JKeDRSNXBzaFNaYTQ5bExBNW1pOVBxNjhRZnEvQUNoTVRJaHpweTBnRUcrTHNLdEdUTHBFcGJuaGhQb0N6RFJiaVRTMVVmV0oyanByZUROZFJOd2cra2RxRnpINmQxWlJXdTJaWnU3VGhxbE5hVTEwOGttdHdCUVZITTZQWnVleFhYU0hzanM5aVhhdjNNckNueTd1RGJBNzA0clkybHRZQWZhLzFIK0dPM2xKdll5RTNPaWd6OXRZeTh4c1dlYkNLVTl2ZEdBWkNoQ2Uya1ZUWFVOckJzOGtxYmFCdHJMcWtnRnc3alNRS0FSMnZzemxQdStsQSt5UkI4Z3oyaGNKTVZPbXJ0WC81amJNaC9qbVlwVG9VeXpNam5FTzZsTTA1RXI0Zkt0YjNQYnByOVRwTk5rU3kxTTFJSGJLWjBIT3M4Q0c3aHI5aG40REpkNE51QTEzajNnN1ZBVHp3YjRuNmV1SU84YTJBY3AxeDcrOFFmMzQ3Y0VpWFNPZi8vZEt6UnU2ZDAxdDBWcEpvMnA1bnUzbkkzUGt2MGUwcnY2N084ZkNSY1dwbll3SzJ1WWw5VXN1dXlEQ0dtUWMyc0lSVFNXVmtlRlBhdTFCbE13ZjIwZkY3NzlHcTFGNDZGdk5mUC91WnErem5hNk4yMm0xZFpNbVhBNksrYjZnZVNBMU43czZZcVdJZkFaRWczWXJzSjI5VDYvYzV5TzA2RWI5SEo3TWZXd1llVjg5S3BKZlB6YUtZd2FXZ2E1SFBIblo5SjExLzFrbDZ3a09HVWltYTk5aFh1N0E5ejN5SG8ycm12bnd4ODRhWS83bVJEUXRLV1AreDVleUFQUExOOXgzY3ZPcC9qOE00alBmSXV1dSs2bjZJNDcrTnlVaWR6d2tRdDR0SHMwOTcyOG5vMk5YWjZmWlI4NWdicWczMXFtaTUwVVNLblF3c3R4Y1J3RDVSaU1LSXZ4bmZFYitOVHdGb1JsNCtRc2RFWlEvYUVzbGRkNVBpZnAwOWhKRTRIbVF5TTNjK1BRVnY2NmNSRC92WElFRzNxS3dYUXhUUmRYaS9keUNrWS9iUVJnMUNpMEQ2emhuZzdtbDVMaEkvSzZTUmlpUFdNZysxTWQzYWV0TGRCcFRmNFZDOVZrb0hQaW5Zd3FCY1lRbDhESHZZWjR1UWRDdU0yR3R5NTJlK0RDcjVFTkxqcXRPZHhkTEN4VE1IV0NDUVI1OXZVODIxS0VLMG9FbjdnNnlOUUpKc3J0M3hHWlpzbEI3N1hid3YwT2l1Sk9HTFJWWWVhZ0tDWnhESkFFdDU5dkhLeFM3UFR0OGpZNWM5NGVtRklnQW41Q0owOUFSa0lINzZ2STVlbjUrK09GMytpZlpsRzI3UjZYRzRkYlJtVUtmdzRRQklhRDhJTW9oMksvWU53Z3liU0prckVqSlc2dWdJUERybmFiNjNpZjE5WUlMam5IWVBrNnphWXRtbFJtZ093NkFkaUthUTBSL3VYMFNpeGpXOHhxUjR4S0E1bDBobGhmalByNk9wbzdtM0dFU1dSSUEzMjlmYUFoV2xTMFUwK2lRK2ZmV3k4Y3NldCtqS2F1TEVnMFlDRUZWQmNIK05oWlE0bW43VjNYeTJGU2FIOTQxMkhtTDZscGpRL210STZYdWZHR051WnVxcUV1bENLVEVjUlRmNk80TWtQRHVrNXl5MjZFbXJFSUo0TWVnTzUrQWdqNGdrd2VObzIvdmZJZldPRU1aNTd4YVhyVHJiUzFMaVhabk9MRFozeVhrRC9NMFpMYW9UVm9vWGpMTHFWbVZwS3ZqSHVOU2pmSkgyYVc4WFJ2R2E1ZklkUnhTMmlmTEFoa3RlYVZmSUovNUhvSmpuRzQvUk1ocmpuWFR6Z2tjTjJkSkVhaHNFNFlVYVIvQkVTbTRRYW4wOG9RRmljeXpOeTRsbG50LzJSVjN5Wml1VVJoMzVNRnZjbm9kd1lRcG9XenVZbWVuLzJBM05MNStFYU5SNFFqNE5nRXo3d0FsZkdLeXNNWFhZMjl1Wkgwckpld216Y2lpMHM5c0lFQkFCVTRtdXR5emZEUmpkaXhPL3h0V2RtaHhXNkVFRHpYcUpnMTh1ZU1IZlpoUUxCNnhDOUltVUZxcS8wSDFTUjVaOXE2ZGQrK212MTVwZ0p3aGN2TlR3b01meGJIMllSbCtrR0FiWGNqRFF1VkZ6akNaZit6UHZkTjc5WTg0amoxQTUxNTV2RTVPRTc5UmtwcnpPb3k5Q3R2RXIvMlpyanpoMlIrdkpTZzJ3bW1qNk1oRTh6RDNkQklLUmd4b29UVnEzdVllRUlGMTEwM0dvRFJZMHBadnF5TEVTTktrRko0OFJuZFAvSE45MEwrenQ2ZnZXSmxSeU12YjFoSTNyVzNOeURhME4zaWdaRUdpd2lhUGpiSE9nRG9TdlhoTnkxS2cxSHFpeXBvUzNTVGMyd0NwditnelNsNy9YcGtTUW00cnRmOGROditzYTBacW1udTBLdGtRZS9iL1ZnaEo2N29VNS95anRrMmJtZm45bU1hdk9zcXRldHZLT1h4VnVFNjI0OFZycWRpc2VNQzRxZ1NWc3J6aVpyZTg0djkrcS8wM2Y1YjNJNGVoR1dDMWtRL2ZoMWwvL1VOak5xcTdWOHIvdEluaVZ4L0dUM2YreW5KZXg4RElVajgvUkhTejg2azVGdi9RdkdYUHVrVkt6dXU1K2c0eUdhSVVzSkpZK0htNitDNjg2RzZzbUN1Rk5KK08yeUxSM3JMK0V0bk5RdFRFUS9icjVBZjgwNUYwd1B2blorTXNqQVY0YzdPS202dTdPQzYwbTZxZlRhNFVGVU90MzdJKzYxSFhvYS9QQW9MVngyNENTSUFxU0RsRTh5cjkvSHdoQ0J6NjMxa2ZjSWJ2NmIvYmEwQklDTVN4Q290UGppbFdZQlZXb3dSQ1I2YWZYQ1F2S09CRUJBRmlyWEdjQno2WnMzeTdzdHhLTmFhcUpTRTJBRXBMZzUyRFIySzcxSnEzRFlMWjVPZi9Od3dnU3RpNkx3Zy9hY0s4ck85bWtaN1ZZRFFMVjBFcm9pUm14bkIyZVRIYmJOQTZzT3FUa2psUmRBRFAvb2FaV1ZsZEhkMk1Xck1hSHcrSDQ3anNIWHJWb1FRMU5iV0Zocmc1V2x1YXFLc3FvTEFqNzVLOGwvK0U3ODZ0Q0Z2N1U3eTVWKzh3SmYvNndtaXRTVWdJTEcxRHlJQnBvenprcG0vOUxQbitkSi9QbjU0ajBjRFRCcGQ4NDd4K2t3Zkhja09ibi9oUDduOTZwL3pqZk8vdzlLV3hieSsvbFcrZFBiWGtFSnl6N3kvRWJVaU9GSVRpd2lHYm5XNTl2a3NKeSszY1NYRUl4S3BRS2dqcEQxcUdPVExjMWxwakErWDlWRFRGMmZXUE1rZkhreXpZS1dEMXVEMys4bm44KzlxcnhlRkJUT20rdmpvRlg0dVBDRkFZS09QanVjc0V2Tk4zSlRnWU5MdkswcjJNLzVURm9aWUYvcnhSejE5eERBUTRURFVWNEJ5Qjg2QjNYcGdlcm0zN3hVOENFcGhTQmhaSGVRaDN5RCtMeFJrU21ZelFXMnp5U3psMVVBRFdXRWlsWTBTQXFFMVd1ZFo1cXVtZDNBTnVuQWRLWVRYU0sxdy9VUFY0MzBJTHZKRnVTVlF4akRENTlXRG0rL3RuQmFsUVVqRm9yaVByNjBZU2RGYXpTa241cmg4Mmh6NnNxV0UvQVkrMGNXU3RSWnZQMUJFeWkxbVVUeUZrUHZBSE5ZV3ZUcUNFSnB1VmN5T0dpV3huMHRUSUVVT0R4bFZjMi8yQXFaYkt4bHV0SEpuOWpLV09jTVF3b1pDMDZnak1uZkFsclplZXVOcHdrSGZYdmxQYTAxdlBNMld0dDRqWnlVWGZyZ3JsMEJweGVaMEY1MjVPTFdCVXZMYW9UM1RpOWFhaUM5SzBQQ1Jkbk5zU25VeU5GeUplUVRxaDZRQUY4WEVrRUdOL3o2dXVOSEU3UUZySnpleVpZTGJBN2ZlYUxLNjQxNGlvZk9ZaDBJS0EvY1FKL285SDcwcExFV1ZGeVFUQW9weVdIa0wwNExNaWlJTVN5TjltdkNFQkRNdXpSQlBhRGE4RnNYdkY5Z1pnVGsweWRqTDBtelpvcGw0YVpwRTFxVjFsWVhQNTJHUDVhUk5LaFZBcXowbjBjaUEvMzFoaW03Ym16S1pESC84NHg5NTdMSEhjQXU1UUU4OTlSVGp4NC9ubTkvOEpzWEZ4ZjJLRzF1ZE9icnpOZHAzZTc4cDVYQ2NCbzdxdnpYdHFCN2Zwbjk3dlY5Rm02bWhNdSs5Ymd1STdaOVg1cjFqL2IwUGozcnFucU56WW9mMEgxNlYxbDdQWkoySFU2WXJSZ3haUThBUG9WSnc0d2Z0RGh1WXZjMlE2QlVKN1AvZDRGVlNwMXgwVjk0N25ISzlKcVBMNGdnRUE5Zk42ajFvTHdoWUdaYThWaW9QT1liZEh5UUt1V1VhZzJRYVFpTEhFSDg3MDBwWGNjMmdGWncyeEVmUjBKUFJ3eS9GR24wWk9WSEZ4dTRrTGZOYVdiUmlLMjh2YTJQKzJtNDJ0eVlnWjRNaHdXOWlSQU9lZnFRMFd1c0R3dERmYnhZTlF2Z01LTDhKSW1kN2E2dnJqOUQ5SjdDN2QxV2JqSEx3ajl6eDJ0bHBBMDNPZ2R3dFVQNVpxTGdGSW1kQzhqWG8vZ2VrWm9PYmVlL3Fzd2NDcytDWG5rMi90SHNKWFprdVd0T3RYRFgwYWlyOEZkdGJEOE1Pbk55dVhCZFBORC9PUHh2L3lkWjBDMEV6NUZteC9jZ0xNcVFJVGtsZ2x0dklvSXVLSE50NUVScEk1M05VaGFNTUtpN3pkSStpVXZLdWcxUFFlNGVYVmVJemRzMEhTdWR6aDlVMjFrcEQyTThYbm1uanJrc25vdDk0bkUrTU81MUx2bnNCTHp6MkFJbGtHNzZRSHpUa3NobHVPYW1jajF4Mk5vUGpDK2hzV3NmcXlPbmMvSStWRUkyaURzRlhQbjk1eTdZVTlIZktXcVczNTJwNU9MbDczbUF0MDJERWtGSWlJYyttU3FaemJHanV4WGIyYkFQc2NsMHBNQVlBMHpxakRSNk1EZVhVVUJkZnJsak5CSCtNNXhKMUxNMlcwbUtIU0NnVHUzRGJsdEJFRFlkNks4MEpnVjR1alc3bC9HZ2I4OU5sUEJnYlNrWWZ2V3RDYTQyd1RMSzlmZno0OVVvbWp2d1NaOVJ0UmJtU0Z4WlcwTlNjQlJJSXd6d3E5c3YrcGxNbnQvQitvcnlUWjBWSEk2ZlVqV040V1QyYityWWVNZi9qZTJjVDkvQmJTNHFyc1hOcE1sM3JPVDFxRWE2SWtza0xzZ0diWVdHQkw5eEFXV2tkS09XVkJMd1BwMTFJU0NaZ3dadCtYbTN6Y2Y0Tms2aHZxS1c2dkpqdTdoNmUrMXVRODk4c3dSK2lrUDRzQ1FsSnI3SjVMTi9GdmJsMldyVzl2YWFpdjZkd2YyVGN0cGlObTg1VFVoemk4b3RPNEZNWGp1SFUxazMwM2Y0d25TKzhoUlFDTXhKR3UycEhFMTBwUUdtY2RCcXp1SWlLeTgvSDkvSExlSDV3bnIrdXVwZm4xcjhGQ0F4L0dLWFZRY2xiSTYvM3F0aEkwK0c1MEZoT3ZqZkFMMC9kd0g5LzMrV0Z1ZDdoODY2R3UzOEt1aUhNcHhlT0p6K29EQ3RyRi9wUDlaL2NmNzlVWVZWSHk1bGFONWJPWkM4YVRYYzZSbE52SzVaaGN1SElhWnd6ZkNybG9XSUFvdjdRKzFaMDlxWVAxVzhxMEhvSXVjN05DQmxIS3cva014QWVYR2dPZUx5UStKaTJ4MXdYbmNvZ3RhYllVbXdzcmVPbDhLQ21tQkY0eHRScTNYN0pIQUc1SFozVjBrQXRzRjhBdmJtOFMzTnJqRmZlYnVUS2M4WUE4TkxiRzJscTZTT1hQKzd6UCtyMEN5RlFlWWVHY2ZYOGQxa0xBdmhPb0o2bXRhMElYei9aTU5yN1IyZ295VXA2aE1KVWdzUFptV3ozZmZUMTVWdjZSNUZWaXRMcVlvd3BseEVPKzQ4ejFFR3ppRUNMLzgvZWVjZm5VVjE1LzN2dmxLZXJkOHU5ZCtPQ0FkTkM3NzJGRUZKSU5tMDNnYlJOMldTekpPL3VKaHRJUWlvcFFDQzAwQWtRZXJlTmNlOU50bVRMc25wNyt2Tk11ZThmODdoaWcyMUp0Z1E2ZklTZk5qTjM3cHg3MmozbmQzUzIrODlrU2RkSTNNdzZodFZ1eEdyWVJNM2tVeURlUlVuVEpsUnJrbmZIbmNENjdqRk1xNXJBY0tFamRrZnllbWM5S0tWd0hJZmpqanVPNWN1WDcxa25lOFY5ZEYzSHRtMis5S1V2Y2M4OTk1Qk1KdEdVd2dGK2xHaGltWlhraDZFS3drSWpwaHgwSlVDQ0RDbTBDTVRlTVVodDBnaU1jeWk2S0V2MExRT2p5RVg2MVdGZ2VlVGlRNjZEY2hWQ053R1RycWVlcCtGSC8wZHl4V3IwL0h6MGttS1ViYU1Hb2pXcEZFSktVc2tFSGRGT2hwY05vU2hTd0JXbm5NK0dqYXZBOUo3Ky9uSkthdHFlejRSQUtmZXd1RVNZeG9DYXBxMWJ0ekp1M0RpeTJTeWJOMittdExTVXdzSkNXbHBhaUVhampCNDltblE2VGUzV3JTS1RLUld1cndBdEZHRmExejhKNkE0N0F0TUlsUlF3YVZ3VFNhT2J1alZ4L3JCMEtvbTR4YzVrQVVXK0JCTjl0UVIwbS9tTncvRzMyN3libWNGYWZTcG41Ny9CaVpYdFZKVUlscVRIc3p4OEhyWWVQS2F5Qk0zbDkwOVA1NnpwTzNqanpYSStlOTFhYXRvamxCV21XTHU1aklaR2w5bmpRN3o4eGppRTN6NWt1MWNCdWc1T1VsSFg3UG1jaXphN2pDcVh4Rk93czlWRmhNUSs2ZFFpbHhMaldvQmpNVGF4a2JNYW4rSGFuVTh4TmJHeXo4TWF1L0FYbDFZYTNIRmloQldWeG9EQlg5eExETkNjaEs0TTFLVWRpdHA4NU1kMmN0V2RoYnkwenV0UGM5NGtoZjJkRnB3U2c5aVVKT1lXOExXclkrTFNLQVRSYkI0cjI2Y3pyMkkrbWpoMDJlc3F5Y3IyNlVTemViMFdhN3oyNWpkNjcwSHMycGR3M0tQZTMvdUFXbERYS0J4WlRkblU4YlJ0cUNYZTNEWm9VSDBJL1pTRGYrY3RjVGVkUmltRllab1VqQjFEVVhFeHdZb3lTcWRQZzlJU2RFMGptOG1nYkJzaFBMdEJESWJ5QVRndC9PNkg3cDVTVm9hR3p1WTlXR2w3UGV6NjlvWmNBcE5nWjFjTHV6WVlZdWw0N3ZlNTMwcEpTN1NkbG02dkIzaFA2OTAwNlhwOUpsSWhrQzZualYvQzkwOTlpck9uTFFVVWI2OHQ1cmNMODNoOWl3OUhDZko4TGtLb293M3BsbE5FZ25HVmFiNTdmak5CbnlLK0prSGJ2VTJrMWlXQVhLMnRFTWk4UEh6anhoRSs2U1JDSjU2SWI5dzQ1RUg2MkdVZGkrNTBncFo0Sjl1N202bHBiMkJ6K3c2MnREZXd2YnVaNW5nbjNla0VXVHU3R3dObTkrYVAyUFYzQ005QUFBMUplS3ZGKzdlZjBaODNmdXlRclRlQnkreVNyY3dxcVVVVDNwdzRTckswYlNSTDJrYmxjSnA2bXpsZTNPZWRQbnZHb0pCOHYzVWRNVm14d3F1SGwvbUJ3OGJjNmFLLzV3RU43SjBvY1pEMUlZVEFUVnRzVUlXSXNsSmlIVW1jY0JIU0RQTndZNUIwdCtTNjBoSDROSEF0aS9LaVBEWVpSV1NUM1JqU3c4a1lKUGpXRzgySDZEKzRvQWRJYjNrWDFieUZSaUZZazZsaUdnNkdGU2NiYjhPU0prcEJwcXVaY0hFNW1pNTVhMnVLMnBabWdnRS96N1VVOHZyckhiaFd5dHNnUCtxK25iZEZQVEpQb0tPWVdwU1RBWGlmN1ZyNi9jRzB6RzJoczdrNVEyT1hoZG9MMjFRQmpWMFdtNW96dUI4TWEzejB6STZVb0h1Ump0UVVrZWtPWnBFM29WWkMwUHE4U2ZjaXZVYzlXdy9wQ1F1RnN2eUF3cTVhaGozNkpWUmVJMTFaZzdiR0hPVElVZDNCT01Bb2MyMVFDbUtDT3o2UjVaZlhPV2c3aXp6b1RkRy81TktTRFoyOXNPcUdNTFQ4Uk9KV0VoQlVsdWF6ZGtjNTBOM3J6S0NVUzdSN0krSEVhR2p0UUM4TmtRMllEQmsvbWU2Mk5qb2FtOUhiTzNCY204N09idksxZXN6UVdES1d5ejllcStHM2R5L2k5ZFdkRUJqV2I3YlVRNGFmQ2FYRCtaYzVGd013b1d3NEljTi8xSTQvR0E5cnRxS21aaGoxb3lkZ0dRRXFhbGFUcnRQSTZnWWpjYm5lbE55YlRoTVBCcGsyYlpxM0Q1UGJqL0g1Zkd6ZnRwMDVjK1lRQ0FSWXRteVo1OXNMUVRhVFllVFlzV2pyTjdMbXh6OGg5ZW9taEJaQWR3M3E4c3ZZWkU1QytmSkpONmVaMlBFVytsRlhKWXFzcTRFUjVKNjNnMndjSmJuc2dnS1d2N3ljV1dOR2NNS3BjN0VkbDQwdnYwek40azJjZmY1MEhucWxpd1YxaFdCQTFqM3FIY3dQYkJtNkVyMEF0bXoxUUFMMEFoM2JrUXhTLzZHaUMxdVA2TGdKZVRxZkdoa2pZWWcrdFdkK004RG45N2wzbit0ZEEvTW9HNUFxRjlkdjY0aHp6cWYveHNxTktXYlByZWZ1ZjN1T0taTmFjS05ldjFSRGMvY1o0cDRYNG9DMzhCNTdWQ3F5WFJwZnZIUXBHeHFLK2RXOVowRkIzTU1BT2t5YU56M0FULysxaEhuakF5Ulh1N1MvYXBOYTYrS21QYmRBOUNjUlpFQkptYUp3aDZLOE8wdFhRRkFhaDZKU2w3WXlpZXFMRUU2Zkd1azI3bzZkaUVnWU9YSVlhdE5HN0pWckVKKzhCditWbDJCdnFNRjBUa0ViT1F5VlNIcjNwaFR1anAzZ0R1YUI3VjRsTGpqMU96eVhRNVBvNDhZZ05KT0RKb0ZJaWRzZEpYSHZmU2piUWlzckpmbkUwOGhJQksya0VxZWhjVGNPM3RHL0hZV3lIZlR5RXRMUHZFck5LVmR5Mm11UHNHWjdIYWZQbk0yT3BrWU13OEN5TEN6THdqQU1OdGZXTW5GSU5hKzhzNERaaTUraDl1TFBrSGw1UG5wWkNjbytkbndpY0hHVWppWnNGQkloRkVNQzlVaWhTRGtCV3RJVm5GWDRUejQ3OW5mOGVzTzNlSzNsWElKYUlsZFYrTUVMK2RSRFM2YzhJclZ4TkNPQ3BsQk1OakpjR281emhoYW5mVk9LMzcyUTRkR1hNOVExZkhETVVOZGcrbmlkNjg0MXVmanNNUEdTQ2Z5KzYwd2U2enlEclpucUhBN2k0Y2NlVHhtK2VrQkpnaVdIejZDN2FYTlRFNXRxTmpOaitnenlJaEV1UFA4Q25uN2hlYlRDQW1qY3llYnQyM2k1dVpuNDNzZjJrRm5HZnZGVC9YdENYM3FrQi80TXRNVnNxZ3NNeWlJNnJUR0hEYzBaWEtWSVd5NWhuOFN2Qy9LREdzVmhEYjhoa0ZKUVhXaWdTV2lMMjk1KzNVZG9mbi94ME1iMzhxZmEzNUE5TUI3WXNRaWh5NDhZSHYydVdSZEM0UE1IU1hYL0VYLzdGOWp5K2pUMFM4bzRyVEtMM3graWh5aWlCNldJdExtd29JVlhZc1YwMlNielFsMDRPVHk1ZWFFdW5zaFdVS0JiWEZqUVFrVGFSMzFlVUlwUXdHRHNtRkllZjM0dDhWZ0dFVEtSVXFCY3RjOCt6eTRFT3VFM0VLYml6WVZiV1JieE1XMWlCWnNidWtpazdkMG43aThtdmVNQ1BwZDNOMmpNK3Y2L2NlVkpqWHg2OW4zTUtWN0lUY09LS1l5a0tkYnVweTJSNWRkdjM4US9sbzBubGVvQ3Y0TnpDTDF0REYxajdyQUM3bC9WekduRDh4aGFITUl3RElhV0RzVWZYTUhPOXAyc2ExalAxS1pKakIwNmlsanpUZ0p5QlNVVEJGMWJpekVJN1BOVUhDZEI2Y1JPL0tJREp6VVhYOWxZU01VcEVCbTBvRTdBWjdBMWxtVm9XWkZYSjY4OEg5YnBpNlpCdWR2UGJEWkl2QllnY2xFU0dkNVhyTGtwUWVLMUFKbk5odWQzOXVMeTJaVnk1N2dRalN0ZVgyTHh4Ky9HbWIvQ1d5Y0ZFY0YvZlNuQVZ6OFZvS0hSNWJxdlJubjRKUXZRa0JlUFFwdzVES2ZBajJ2MUlUN28wVmlyUXFEYTJzazg4d0xXb3FXWTU1MEJDS3hGU3hFbFJmZ3VPcmZYZTVjUGRBcVpGcWVQcXFNcUw4Nm9vZzd5L1ptRG1uKzZkQm1TSCtXTTBiVlVST0xVZCtmUkdBdVR0b3lQOUJ3S0lmRDcvZFRWMVZGZFhjM09uVHVwcTZzakx5K1Bpb29LT3RyYWtENC9NL0xibUpUM0V0SXdVTUpCY3pWUE5tZ3VRa2xVTmd2QnNleHNhcUdqclkyS2lncTZ1cnFJUnFNQWxKU1VzR1BIRG9xTGkzdU5qeXNLSmVmTTFMbnhESlBKNC95OEdDM2cvdFpTWHVvc0lPWm83eFUwU3VWRXhPQTYyaWZjNWJvb29UQU1rN2NYcnVmSmU2N2tLeGV0WitSc0hkSU9JWTVOcktKdnVtemxBTjFWWjRBRjh4VUwzcTcxR0VJZmlmQTdxTTRXa0lLWWtOejJsL1ZlOE5iUXdSME9tZ0t0TjV1ZGVZeG9VNFpqYTNRbVM0bjRTM0Z0eUdnUmRDT0pPVndSRDFUUzBWYUU2eHBZVHNrZ3g3NnZRYUdvcUtoZ2FQVVFPbUlKZ3BwTjkrTVBrVzdZZ1ZsVmpWNWNnbDVjQWxLaU1oa0MwMmZpSnBQZ3VLVFhycWFyc1pIZ3BPR01LS3FpVVBQUkVHdGpWZVBHUGlrR2tFcVIxUXhHZGpYeTJXVlA4UGZML2cwN3Y4QnJzSHlvMThzQnBldmRYVnp6OGhPTTdHb2taZmlReXUzblFnZUU0UUNobkZ2bTlFVWZ3YjFXbWlBZ0pYNGhtT0h6WVNuWWJHVkp1aTRuK2Yyc3pYcUFpcE5OazZUckVoU0NzWWFKSVdCRkprTkFTc1JIVEhISUk3aGZrZXNsWXptd2VKWGlKLzhMWC9pNDREdWZnT0hGY00rek1HRTRuRHNkWG50WDVScVQ1NG9WRHRPL2NRL3pBQ2tFMjl2U0ZJVjF6RjdNaU5DbG9LTEFSSmZpc0p5MGFMcm5pYWNpUEJSem1KKzhra25lV0lLRk9LRlNvcGxqdi83ZC9maEhLZ3VoTE05cFI5QWdTbWdRRmJ3aVFHUXpWRzNvWk1LR1dxWTlzSmlwUG91eEl3dW9tam1Gc2pQTzRQU1RUNFh4b3c0b1NKUlMvUWl4dGJmbHBFTFRkRjU4Y1RNZEhXbHV1KzEwQUw3OTdUZFpzcVFlVFROeERoTWgzdXNucHRCMWpYLzg0d3FFZ1BIajc4SzJuVnlSK0NHT1RRMnNPWjlmTis3UWJVUUI0NHNiS1luRVBLVFkzZDk1RGFJeXRzSHFscUdrYlFQUmF3bUptd1lOdUwxTTQyVEs0dHMvWFVBNGFIRDJ5VU81OHJ6UjNQZGtLVGZmWi9ETFQ5N0Q2Vk5xanRIWUZOS0JvYVVHeVpUaXZuczcyTmJveWJYNzd1MGdtVklNTFRXUURqanlLSWRKRlN6TTEzaXczT0JMTzdJb2NjaTN4QVBsQmd2enRZOE1UcEtXUG5JZEtZVkN1WkpwQlhHYUhZTS83eXdINEtieVpxWUY0N3plbFkrUTd2czNsdmtBMnQ4NnVQZlJGL3YxZko1MXBNdkpNUENQSFlWLzdDaEtQbjB0aVVWTGFmbmRQVVJmZWV2WTdLRHR6U05Db29EMmJDZVYvbkp1bmZ4MVBqdmlHczl2dDdMb2hvbkkydGlaREpGSUdDd2JWK3hwRU9XNkRnRUZHQ1oyTEk3bTg0RnBZRnRaNWhiTjRKOG4zOE5kZFkvdzgwMTMwcEJxcHNnczhCcFo5N1gvSnZDNkJ4aURSVDdIVk0wcGlQbGRDbXlUQzliQnVXc1VTb0NPSUdOQ1BLaVFidCt4d0s1RVF0OFFoWCtVQlpkYjRJSWJ6NEg2Qk5WdUxJMExwY0dGTjVxb3BLS3h4V0hURm9jVmF5eVdyTEpadGM1aVM1MURNdVZpMis0K1Z6RU1nU1lsNll5OW53d2RmUDVIeHc4REtWMkU1dkR3amdyKzJWN0k3ZU5xdVdsb0N5aklPZ0xoQ295d3krV25OSERyWDhlamdtbEtpeU8wdGtaUlFtSGJMaG5IeHNvNkhqTllEa01tRkZKWGEvUE1BNy9uMUcrNk9KMFNSeXBNemVPWnU3YVY4ZlZOSStsTytkQk1DNlVFaDhYS1FzRFFVVERuVkJnNUhuVERLN0liTUlXSllwOW9pc0ltSzRaaHl6RzR5aVd3NkRuMHpUV3dvWjVJOUI4NGhSWFlSWlhFNWwxRjVxd2JNZXBYNHE5WmhwSVNaOGdrck9JcWZCc1dIWEZzNzRJenB4K1dIZG5ZRm1YMXhoM1lqb3NtSlpQR0RhRzZvckRQZ0NXZTI4K2N2L2tiMys3WFQvZWJ0M3h0WDNzdG5rRDZUTExOclNBRWRqU0s4REVnN1dtbHdKR1N0ZHRicUM0NGtjTGdjbHE2bWhoZk9nR2xJT1dtMFpSaVM3cVZqZHNFb3FVZUpVdHBMLzB5eHhYdlpKVHJnR0Y2VFdhZExHUWRKcGFPcHpRMGxQWGJsK0ZJZVhTWHNjL24vZTJpZUh4UHpHai83L29ST2JrOVMySHNlUzdxQUZKR0tkQWwvT01zNy8zNHh6M00yMTBBTXIzaFYyclM0ZlNLK1h4OTBtK1pKK2FUK0x0aTJ4TUJyQmJoMlJGeTM5OHJGNHh5UmZGbFdVS1hDT2FyVTdsOXlWZDR2ZmxrSEZmMmVCL1dsR2FQN0M1ZGFoeDRFQUpkYXBqU1FCMWxHMFdYY0hxeDVKdWpOT1lXeU4zaHFBOVNNOWFPRE5FbjJrbStFVVZsM0w3YjQrNU40VCtZMEhMNGNZZUFnZXU0Zk8zSHo1Rk1XY3lhWE1rYkQ5ekV0Vi83T3dBUC8rb2FUdi9FWFh6cGgvOGc0Tk5CQ3UrWTk5bVh5QjdKVnZzQWJ5WXNUVWh2azNTOTdnbFcvMGdIYVlLVDdZZW00OUVtM1JsY2FIMUkvYmJCNGk0NlNLTkZHNGtmbTVDeVdHUlVjWHZCWERaM1QwSC8ycHM0c1g5NkZTKzdESTVqeUwvVDMzM3o0RWFNREVCaUFYYnIvNkJYL1JiTXFoeDZxVGpBYnczSTdzVGUrUlgwMHU5Q2FCNjR5WjdmWERpeXo5dUEyYitMQmxPSG9NWlYydVhNTXl1b0tnOXczMlBiRGltNDR5VmZ2MS9qOWR4M3Znd0FtZHBSdE5hTnhEZWlscnhaUy9HUHFFVUloWnZ4N1RIcWp0Z1U4V3d0bytvNHFpNzdDZkdhVjBsdVg0S1JWMFo2NXdvVVVIemlWNUQrZkl5Q2F2eVZ4KzFWaGF0eURZKzEzSDA1YVBMb0ZtRzRRcUM3THFQU25aelJWY3RablZzWWx1bjJnRlJNczArdlhmWG5maTV3TDl6M2JmdktIMUtVQXpLNzlJd0ovT2I3Ri9DN2h4YnordUk2S2tyQy9PcTc1K00zUFp2bytndW1zdlUvTy9uakkwdFp1YkdKMDJhUDREdWZPM24zdWY3MTQ4Znp4cEk2N245bU5UdWFvM3pobWxsYytyRUpLS1c0NUdQaitjbFh6K0NYajZ5bjlZVmY0Y2Zrd2R1K3hFa1Q4bkNWNHZJekovRGIvN2lRM3oyMG1JVXI2akZOalU5ZE1vTUxUL3ZWSVRub1Rsc2JXa2tKNWRmK0VHdm5UcHkyTnR4TUZ1SDNlUVdyS0dRT0RMUTkwOG5DOXFYOGZmcy9lTEh4VGJxc2JvSmFFTE1QQWhST05INll4cGhFQ3dYMjhRZmNWQnBsOWY5aTZsMVkwMFpDUUZyUUlmYUlCU09XOVBJTWV6bk8wZjNjS3ozenVWeVg0TlNKbkh2YWxXUU1tekdBb1lMRUhEOXZ2TG9jS2NVeGkxa3A0Y1U4bHBZb0VvWWdhTUhKVGZERWFHZ3hCTkp5Q002YVF1bjA2V1RybTRqKzQxV0VjWFJsYmJCQVVHVG1VeEMwS1c2TDRtWWtWbm90cXI2WlRFdVc2cFB5U09zRm1QNmpNNDltTUhIWXgyakNSUWtYVGRtVUQrMWlUV28wVTk1MHFLMk9vaE5pVEozSnBtZ3hKdzdkUnRQMlFveGdITk9md2ptQ25KLzlYYXJxNnVwK3ZhWjM3T2g1QTVYZGVWUUNOTTJrY01nOFFrVVQ2S3gvQlNFRStXV3pVSFlNVFROMzI4eTlYZUFqRldSMHdYUGpJOXc5dTRDMnNENndZdEVTaEZLNGF5WHAxU2FPcHBFSWhXZ3VMS091YWdTYmg0NmhybklFelVWbEpBSWhIS2toVUFqbC9XbnVzZkZqKzV0OE9GeDhVNFczVzVXV0JpRTd6YTgzLzViUE5ML0ltd1ZUcVRNckFCaVJiZUxVcnRYTWpHNG1MVTNTMGtBNlJ3YzBjTmMxR2pzTHdkSEE4SEt2aER6MGpHQUJLTmZMN2RqV1hBNmFnOUR0SXhyL0phZU9QNlRmeFJJWi91KytCYnpIUVZhS3NxSVFsNTAyL3FDTmtRY2lLUVE0TmlFaFVLTzhPVEt6SHRoQWYyazA2eXJBZ0xmWEpQaE9LcC90TGQwVVJIeFU1YnZZVmluTjhVb1NqbzhoN1M2cmFxSmc3Z0ZCN2V2NFg4U25NYVhDcTQ5WTI1U2dJMlgzaWJ6NForR0V3eHBYdVJWblVxSUpYYm00UXJBK1ZFNkRtYityRjFvZjBLTEJvT0ZSWGJpS2tjT0srTVNsMDdqeDh1TVlPN3dJTWhtaUw3eE8yOTBQa1Y2NWpzQnhVMGg5L1dZZWFQZno0TjlyMkZyYmxpdXc5QUJERHU3cWVVRDN0ZHM2K01tdlgrZitwMWZ4aVV0eTF6bjNkUEpPUDVIbzZ3dHB1L3NoQXJmL2twdU9tOExsMTV6RkUrMWplUENWM0hVT2dVbmRYRDhES1JTMnJXSGJHdFVGTWY1OTRsYitaWFE5cGkrTGt6V3dNeWE2VUFnVWRrenM5dDNzakVEbWNuY3p1ZDk4Wm53ZE40ell5UiszRE9WLzE0OWlSMWNFZEFkZFB6UWdnZDEwK2VVOTFPY09yRmdCTzNhd3UyaEtTcWl1aGhrem9LY0FJRTg4MGN0Q0Z1d2RFbjJJUzk3VkZncVl1TkRoVzNsSkpwUUYxUk1ORWRaMSs0VGw5azVPbU15UGZMQVFjeFhXU3hIY0pybHZmaitBYmFNeVdkeXBGcjVydkFZTDFpSWZ6bW9ENFRPOUxsbjdHZHB5c3d1dVJPWWZRaUZUZEwvRFJVL1pRZEhZNmlBRm5EZlBpL1Z0cVhkb2JITndIQzBYQStwRjhkQWI0R1hTQXhYUFMrd0srM2lBY1NqblBYWmVqMVhwUVJyZVdRMHRXUFZOK01hUE9MTDZJYVd3V3p2STFEVWd6QjZVSysvbklNK2NYdEd2MWNQQy9wMkdmc1F5Q2dsWVFKUDNyeW9CV1E1NU9sVHJncGtsRW1VZG5GV2tGMXBEMDJGRXRXREdSTW42VFlxT0xxL0pUVy9HQWFVQTZTZ3E4bng4NTZ3S0pwWDdQZDkzZHd3aDF6aFNDSVNVdEhkMm9nUmtoQUhDWkdkVEk1MWRYUlFVRmVXYVNLcGVpejk4OTRvSjczSFlwQVMvcm9HQTZpSS8vM3JlbUgxNkVSMU4rc2xSdnA1UUNpVUZxNGNNNDlyU0JieFpNNHF2UG5JNVNKZzhvb0huVDdpVHAyUFZ0RmRXUVRhTDZzTzhHQVdVbFZaenhrV2ZvTDV0QTY2YnhyRlRsSlpXTTMzTUJLckxSL2FKQ2E5Nk9IK3VwdkZVVzRqaGQ3V2dDL2gxUXlWT1VFTzRici94SmZzajdacVpOWGFhdTVPZDFCUWx1ZUZHUDErOEtreDFoY1Ixd1hGY0wxbFA2QWk5QkJtWUJLR1RTUHRuVW1jVnNxaXpqZGUyckdWUnkzUFV4aHZKMkduMmFWclYxdzErbEl2dytiRzNieVg2d0ovSi8reFg4YytjaXpsdUVyN3BjMGd2WDRRYmkrTEd1cEY1K1JSOCtkdWtseTFFWlRKOXB5NzZjVjJ1N1E2c2hPUERuYWNEU1pkOFB6Z3F4SW9kWHVPQVFDaElmcTV1b2I5UldWYUh0SlY3cGhrdjNpb2tTamtJcVdPSndacXNRUnFrSG9hd2NCekY3eCt2SitUWGlDWnQvdlo4SStlZjZPRW4vWE5oRzlHa1RjaXY4ZnZINjduMTgyTVFXdjlwbXVyYU5ub29UTGJJUit2Zi9zU0VWMXR3aTN6UVQyVDdMbDlCMXdReloxYXdkV3VVcHAxSlJvL3lPb1kxN1V3aWhHVG16QXAwVFhyQW9yMDB1UitLL0oyRHhrY2xvNHVyQ1JnKzh2MWhBcnFaeTAzem5udWVQNFJTaXJBWnBEaVl4eTBuWDBQV3R2SHBPZ1grQ1BGTUNyOXU5c2dpN3Z6bEwvRk5uWXF5ckJ4UWswQm9Ha29wVkRhTDlQdFJydXQ5NTdvSXcvQytzeXlrYVhwK3AyZFlJc0poRDZNbGtZQmRlV2k3ZnJ2clBKYmx4ZFNrOUw3Yit4cE9MaDZrYVFncHlhNWYvNTd4RnQxd3hhSGJHcTdDYW13bXRXQUpLcE5GNWtVSW5uSThXa0VlV2w4dC92OWUvQ0VVc0tBY0c2SHJJQ0g5eGlMYXYvZFRNb3RXSUFJK2NGM002Uk1wL3A5L3gzL2FDYnZqaGlJWE8xVzJqVlpaUnVtZmYwcmtrMWZzUHRhTnhtaS81VmJpRHo3MTNtTzFReTg2a0JKbVRvRFBYZ0ZYbkFubHBia1lUdzRudHNVeWVMeXppTCswbHJNc0VmWndHb1E2dEJ4U29YQ0JKZkVJeXhKaDdtb3Q0N09sTFZ4UjJFNjVhWUVEWmNYd3hldThhei8rQ3Z6bENWaTJuZy9FT0JPQWRDRmhDaFlQTVhsc2NvQjNoNWlrVFE5M0JuY0E4WWdRNkpFUTRTbWo2WDVuT2Vvd2tlT0ZsSVNuakVhUGhIcFVLMlFkSWJDY0FuekFjR0NZOEdyWUE2TkhBNUI2N1RXR09RN05TdUhMaFhDUG1la2dnWXpFWGhOQVJoeFE0TCtnRzkvSFl0anIvYUFnK05rMmhOOGw4M29ZZTEwQWUwMEFzc0p6M1krV1NhRnJLTHVUNUxWWE1leHoxK0Zidlo3MnJNM1F5a3BjVjZIck9wbEVFaUVFdzZxcXNDeXZtWDJzczR1U1lJU3ltNjZqOFkybG1BOC9Dbm9oMkVlVzM3UHlMNThGNEkyVjIzbG13UllBTGpweE5LZk5HTGJQNzk1WVdjOHpDMnFPeXZjWG5qaWEwM1BmaTd0dTJrOW5PVVI4RVY3YThEeHBLODMzenYwUmYvM2t3L3pQaS85RlY2cVRSQ2FKTG5UU2ZvZEEwdVhhNTdLYysxYUdVRktSQ0hvNVJxWjFyUFNFd0pRdTAwTXByaXZ1NEh4L0oyMGI0L3o2Qlp1ZDhSbkk4Q2p5OHRZemF0UklBRmF0V29YakhQaTVqaHFxY2RGcEpwKzRJTURrc0VuaURaTWRMeGhrYXJWY2s2RWpHK0lqMzd2ak1OYWEyTE1Cc012TzZldjE4OG5URGpFbTVTS2xSQ25GeG8wYkdURmlKTHFobzJ1U1U2WlU4SXZnR3Bhb0twYm9GUWpsb0lRT3VBamw0T3lTcndKd0ZiNXdrTHhaMHhHYUY3UFBaTExVMWRVeWJ0dzRyN0YwN2xwSFFzTTFrNXY4Ulp4alJ2QWpCcFJLNjduWkpFRFlQUHhZRkJ5NDYxa2ZwOHdLTW5GRUhKOHVXVmtUNU0ybE5rNTN6SlBySVE0cHZqMUthMlM0YkdhWTFzSlNTenRzWGVUdUJaMGVWV0Zlekp5U1V5d09pQXpIdXFqTFZWQ3pyWVdGeTdkeTVibkhIZFJXZDVWaTRmS3QxR3hyT1NhdThxNUx0bVdpTEdyZlRHYzJRY0xPWUxrMmhmNENVazZHdEowaHBQbG9UWGVqQ2NuSWNCbjF5VFpzNVdMMEVlejErOW1ibG10VEdEUTRqcmNwcm40S3l5N0tOUUtSKzkyYkFsbkVsT3FucWVSdG5neWVUQ1pyb3dtZGoxYkVNcGRQSVVHWENwRVRZUFl1SEZ1eDIveEY3YW9Ic1FXQjhpem5mVE5GNDNiQjF1ZE5mQ0VYSStUa2ZDbEJ0dFZrelpNNmk2TVNGVGVRaHZLMlpiSTZhNStLa0VtQkw2QjQ3aDJCWm10SVU1Rk9DV1pjbjBCM01taEJjY0JjMzQxZnVYV2d1WlpIRlBCVFNwRklKdm5iZmZmeDEzdi9TaUFZeExZc2xGSVlwc0hERHo5TWRYVTFOOXh3QTNsNWVYc2VVZy9wMTBzNysvVjhYclBmKzlPZWJ4d01FUGVsbTFNUytFamRyd3MwK2dXRldaamQ1UW5EcFFXU1JyK2dOTlA3dS9QbTBLcVBocGJKYmE4N1VTZ3E5UHc0TjY1MnAzZjJpYzRWKy8xN3lFd3ZFREVMREExbmZodnVScThHVkxXbEVZYWVPNTA2dkVFZjZWZytUTEpFZ2U2Q2RRd05MRUV1ajB4cHVBcjhaQmxpdG5OQ3lVYXVHTGFSZVdOTWlrYWZoVFArYXJvTFQ2Q3RPOE8yalVrV0wxL0svSlU3V0xhNWcvYTJwQmV2TVhUd2FXaStBQ3BYTisvMFVlTUhCV2dCQ0owTXhUZEE2QlNRRVVndGh1Yi9nOWpyM28vRS9qRy9FYUI3Y0w3NFJvRFZ2QzhyMmgzUS9GTklMb0x5YjBIa0FnaWZBdkczb1AxdmtIZ2JuTlNIajIxZGNaaXpMeUJnaG1qTU5QR25tajh6by9nNGluM0YrOHk1eXYyM1BiNmRQMjMrTXlrblJjQU00U3EzOTF4T1YyQzNtV1FiZkNRVzVwTjNYaHVwTldHVUpiRmF1bEZwMlJ0OVk0K3VqYXdVcnBBc2E5akdrK3VXY2ZhWXlWUkU4dkhySmdrcnc3Wk9yMDVpZUdFSklRUFNkcGFtV0RjdjFheGxXY00yWE9IRmlZNldQUytVUXVrbW4za3h4ZmRtemVYS3JmTXBMYXloVEV2UWdZYXBGRUpDMmhWY01UUkJWZDNEdE1iU3ZNSkpmUGVKUmdpRmtiZzlpaFg5OUU5dk82aDlIZXhkTEJZT211UkgvRWdwaUtleWRFZlRCOFRNeW8vNHVlWFRKekp4ZENrQTIzZDI4NXUvTGFJN2x0N2ZIVUVJeUF2N3lBdDcrQ1R4WkpidVdQcUFlVnlxQjluQkN0aWN5ZVAydGtuOHFId1YxeFpzNCtSd0M4dVNSYXpMNU5OZ0JZbTVYZzU4UkZvTU1aSk04blV6TTlqQkVEM0ZnbVFKdDdkTlluTW1yOSt2QWFVVXd0REJUYkJtZFp3MVJwNDNBMDRuMGhRb29SMDF2ajdxWlBHUklzdXhlS0ZtRWVlT09aNHJKcDNHaHBaYUdtSnRmZGJFNzZPUWRxZHkvM2NWbEplUHBpQlNRS1I1TXgxanpxVGNjY0dmb25MSWRQeUJmRnpiN3RVNUdmLzJXLzNmNGRyYnowU3dTby94YUtxTnoxeFd4dHhMTmlOcUpVSmZodS9FRmg2NGR5UGJUTWtrSTRobE9XQmwyRWlheDV3b2oyUmJTU2ozbU5vVlVncXZNYTdqTW4xOEpWZGZOSU1icDVZU2V2MHQ2di93ZDlMYjZ0R0RJWVNVKys3TlM0bXlMSlR0RUo0NGxvS1BYMFRUWlhONUxMT1d1OTU0bE8yZDllQUxJWVhvVVo4Q1J4emM3M01jMEFJT0svd2pPVzErT1F4cFJUOGxpc280T0VHVFQ2NHVCS2NVaG1wSXg4THFwMWlpUnNVWTlLSktuTmJ0QjNSdjlhSktqSW94eDNTTWZ0M2tzc21uYzhLd3FZVE5JQVdCTVBjdWU1Yk43Zlg4OHNLdkgzVXNzLzVLby85amVlK0lHV25zcVhNVUV1VTJNZGlVZHVEaDB4L2MzUlJVMjBrKzE3a0JuK3RVdmhnZUd0eG01citKRU92NVFIbVpBODdlNjNTSE04YWxhM2Z5cDBlWE1YOTVQUURydHJTeWJOM093Y1hiUDUwWmtJTEc5Z1MrY2svR05yWW52QnlUUHZCaG5CeEd1NE02cG42ZUZ2TDNpckh1T29xOGdJRktaRkFCWTA5Lzd3UEszRndFMmgyc3JYbXZ4UEZxK0RwOWszaWl4bUJvMktRNnZaVkV1OFdpWVVXRWJEL3phdWFUeUN0Z3ZqNkhaRTBsWTJhTkJiUmVDOUdKWEExeVNVa0oxMXh6RFRmZWVDTjMzSEVIenp6ekRORm9kSGZ0Z0ZJSzB6VDUyYzkreGkyMzNNSXBwNXpDMTc3Mk5acWJtejJjQXdWUFo2T3NkdEw4UEZURkREMUFoN0tSeXZ0T3VTQURDaTJpQ0l4emFIdmNoeE1UbEZ5WlFXVUZ3anlFUFFvM2hZcTlCcjdqRWY0U2hJVFVxblUwL09CLzZYcm1aWVRQeENndFJUbE83MkFsSEVOZlVaT1NkRHpLaXBxMVRCczFDU0hnK2pNdjU4V0ZMN05vN1ZLRXo3ODc1Mnp2dUl1VTBtc3NiMldSdW5tTUpVN2ZVbkZwS1piamdKU1VWMVRnOC92SlpMTVVGQlZoK254a0xRdWtvS2lrV01tRUllSUZJN0VDK1l4b1dzOWtZejJ6dEJvcWZXMW91c3VNb1ZIT2JsL1BReHNuWTRzSUM5MlRzVnZqTFBlUFpZalJSR3RiQVdPY05xckxMV2FIWCtHcVVTdVlXS25ZMGxIQVcvcjV0Sm9UVWVMWVlZZ3BCYnJQSnRtU3owblRGb0NvNW9WWFp2TzFqeTlreTQ0Q2xyLzFNZTcreGxzOCtzWjRzRFJrTU9QMUFqbEVjaFVZaHVETWFUclBMYkg1ODdNWlRweW1jK0lFblpKS1NXUG5ubjVsUW9EcmdMSVZwZmthODRaYlhONnhuSXZ5VjFNNGFUZ3BSdlJPN3VGVFR4M1kvODdoTHo0OTNzOGZaNGRwRGNzQjF3dkk2d01FSzV2aG9yR3dOWmxoOFFsNWpHbXRaZHlUdjZWRS94aktWVmliWG1QRGlIcXF6aXdpY25vSFhVc2crRXNROXJISkhNdzZKaS9zT0pjclJqN08wSEQ5SVIvWGxLemdoUjNua25WNkR6TmJ5emQ3VnlqM2N2alRlYTh1SG5SR0Iya1BmeHlzYmtkNG1aQkNLZHhZSEVQVHlEaFpVaTB0cEtURVgxeEVvcVVWSXhqQU1BM3NUQlkzbGZKa2l1djJZWDd1d0dMZnRLMzM4eEhhUi9ZTURpVnV1RS9SaG5qdm85dU5NZElEK1N0ZGxCSTRxUkJJbDlQR0wrSDdwejdGMmRPV0FvcTMxeGJ6MjRWNXZMN0ZoNk1FZVQ0WElUek1wbU9pcnhYNFRKZnZYdGpNaEpJa0hjOTEwdjVRTTFaTEJxRUpaRjRlL25IakNKMTBFdUdUVHNJL2Zqd0VnM3ZwUG92dWRJS1dlQ2ZidTV1cGFXOWdjL3NPdHJRM3NMMjdtZVo0SjkzcEJGazd1eWZXdEN0eGVkZDhIMGt4alFCc0JXdTc0SjAyaVBkUDMrZDdTejUreUw4MWhNczNwajNOak9KdGFMbEViMGRKWG1tY3dtMnJMc0ZTZldGcmZ4Z0IxdnBRUDdrS0dmVHlHOXdqVUNvYUE2dmYxVUNMa3pzSHVKRHdzZ3B4bE12cnJZS1B6enlaQnpzcWFjMHZwY0JLOHZ2R1FqSkNwM1hJYVFncEVQRTRYNWhWeEt0Ukg3YmxJSDFlN0VreEdNK0xaZy9SaTFVdXduWElCcXZveWdUUUxKTzZ4bTZpa1FSK3U1Wk9wd3hEVTJpYUlPT0cwTG8yRWs4blNlamxPTzBiVVdObmt3MVhrMDJtY3dsT1I3OXlUeWxRRWxZM0tjcjk4TmtUdk55OXY2eFFyRzVTZkd5NDhNeVZmc0lXQWlnTWFZd3Q5MkhaaWcwdEhpYlo2REtUc2VVK0NrTWFiYkYrcENjRlhsMVR2a0lJUlh5RFp3ZjR5bDMwUE5XMzllTENCZGRBV0NaTzBWYnNNUy9obHE0SFY0ZHNDRTBvZFBQb1QwbDZmeDdNMVhVVnhBUjNYRzl4eDhjdGltSUNxVHNvb1k0NTc3WHU5LzRidjFuWjQwV25FT2lhUVRDWHQ1M014SENjVHE5NnQ5Y1ZpY1JTNCtsUUxVd3FMVVJ1MjQ0WkwyQjcweHAwSzBObE5rTjFWd09CaVFXMHBUV0svZFhzYkVudzZJc2IrZlhkaTZtcGJVZjZOWVJyOVlrM2VDU3JWVXJKMk9KcTVneVpDRUJYT25aWTlkTTlQZjZBeTAwcGxOQVkxYkdCanVKaHBQMzVqT3lxQWFraGM3VWFKMGxKeGpCNFBCYmpwVmRlMldkZlVrcEpOQnBsN3R5NW5IcnFxU2lsZG8vSmRWMk1hSlQxdDkxRzF6K2Z4elFNbEhKUlNsR2M2V0Jjd3p1MEY0MWtXTXRLL0s1emFMNWluNGc3aGRKZ1lWMFJQeGcraFN0UGk1Q01iZUdMWDF1QkxoWGZ2Q0NQYjMvMUhGWnU2R1RCbG5VSTA5MG5ETmN2dkhNSHBFL2YvWHFRK2hkVmZIN0hFWEZtcVlBcG11aHpYdnZOZnUvZEFiWkhyb1g2ZDM2YWN3aitwZFFna3hLc1hMR04vNzdwZGI1NzVUc2dJZEZtWU9pT1Z3Zm83a2w5OXZhM1ZDNTBvL2ExMzk3bnRXWTRZTUV2di9vaVZZVnhmdmpRYVdTeUJsSzZIZ2JXQjVEUEZIem00ankrLy9GaVN0c2xUYisyU0s1MWNkTmVuYnZvaCsyTGxBTnVGelRuQ1ZvakdtRlRzaTNzSUF5RjJ3V3FjR0RKRStVNFdFdFdvR3diMy9sbmsxM3dEcGxYMzhCODVVMThaNTJHLzZKejBNYU5SaFFWb0tJeEVLQTZ1N0dXckVRNWd3ckNFM0lLSVF5eXkxYml0cmVqVlZaZ0hqY2RZOHBVc2l1V0lzeFF6dG5NclMyUlMwb1d3c3VoYXRoSjdEZDNrdmp6M2VnalJ1S21NcnNBbkk4dGIxZzJXbWtSenVxTmJKeHlKdU5mdUovMWpRMmNNV3MyaTVjdHd6QU1MTXZDc2l4MFhTZWFTREJuNm5RZWZlcEpydnpIM1RSOCtmdEU3L283UmxteGx5dDFETzRuNHdZbzlUWFRtaW5IcjZWSTJrRXVxWHFNczhxZjR6dXJmazFudG9pMlRCbkxXbytuSzF0RVVFdHdPRnB5SUVlTVZPNnZSRHJNQzZTNE1oUmpiQ0xCb3NWcDd2bEhtdGZldFVpbVAvZ09Td29rcDgvUnVmRmlIOU5ubDdORXplYWVwdk40SlRhSHBCTUMwUU01TWNCRWpIWWtEeUdIWjV0dTcrQVB2NytUSC8zb3Y0akY0K1RsRi9EeGo5L0E5UHdJVnNiaWozLzhNNW11Ym5RNDRycTAvYWN6UEhyRWgxWXNPNjZpcnNOaTZoQS9sWGs2S3h2U3ZMZytqazhUSkxNdWRlMVpJajdKdUhJZm5Va1hYUk9VUlRTR0ZobzRTckd0dzhMcG9mMDYwT2IzMjc5YS9yNnNPcGpNY1N3RnRoY3ZhS3AvR3lkMkh4bDdGRmxuRFdiZXR4bDNVcEk4MWNucUZiL0Q5SjJHSXNyWU1TTUlSWWIzYWcyckpoU25SOXFaRStwbWVTS1BzL05hZWE2ckRJQ3o4MXA1SzFiSWNhRW9wMGZhMFhxMUNGSjhvQmdWQW5BVXBlVjVYSC90SEg3Mng3ZG9iWWtoL0VadTZzU0JkYURyNVF5M3RNUlF1c2FYUG5raXY3dC9FWW5hZHRBbC9hNEVXRUE2QStsa0ozOTVzcERuVjN5WFU4ZHZaSFJoTGFidXNLbDFDRzl0bnNLMk9ndEVtOWZEN3hCOUtTa0VFMHBEakM0TU1Lc3lUTkJuSUlXZ0xLK0VjQ0NFSld3YU9odDVkL05TaXNOQnVyZjlBemRiUzNENFNKcnJHekcwdk4yTjdCMXBrVFlhQ1E1M2NiTjFkRzk3bXZ6S21XUWRoZVprS1lrRUtDM000OHlLWXNhVjV5T0Z3RlVLWElkQ0U1VGJOM3NaUWxlWUkyeGt5SE9DM1pUSEZ6S2drQ0VYYzRSTmFyRjV1Q0FWaDZpVHZKS01uYTB1bi9xQjEyczlMeVQ0M2swQi92MXpmbG83NFRQZmlYSFBQN0tBUkp3N0F1MmNZZGpGUVVqWkVNMGU4clBzcjFhbjZvNlNlZUpac2krOWpqNW5Kb0dicmdjRXFiL2NUL2E1bDhHeVVWM2RBOXk2N2wyeUhJbmxha3l2YkVMUHhWY09OanRLQ1h5YXcybWp0akdsb29YTjdjWDhmZVVrR2kzakl6MkhRZ2dxS2lxb3I2K25vNk9EUUNCQVoyY242WFFheDNIdyszMDB0N1FRc1YzQzBpVldMVWlHRGNxMmUzcy9MY01NUWpGRi9qYVhtT1BTMHRKQzBPZW52YjJkOXZaMkFBb0xDK25vNkNBVUNsRlJVZEhqUGhXNkJwT0g2MXg3aXNFMXA1cklvaEFQZHhUeHQrWXlsc1pEcUYxWTgzc0NyZ1JNSDFNcVJsQ2RYNHpzcGYyMHgzaG00UHNEdG9PbWE0RGszcnZ1b1duTlRmejhLeTZFREp3bWkyUFpMcjF2c3paMWhUUUF6SnlBc0ZGS0lQUWMyS3BTYUJIVE00YVV3aXZyRTcwdmZ3Vm9tb1BmSDZiTkhrMWIwVEQ4UVEyVURhdUJQRVV5QmlKcTRnK0h2R0Qwb01keFVHR21sQ0lXaTVHWFg0QS9HQ0svSUlSYXZRUzdvd01aREdHM3R5RkRZWVFVT05GdWtCb3FrMEVHZzZTM2JvYWlVdkpHam1GSU1Jd3BOTmEzYmtPNUxrTDJEZkNOVkM0WncrU1V1bVdNamk0a2ROT1hVVms3RiszL2dPc3A0U1VkbVRxSlgveU9xcnBsWkF3VHFRWUc1TGMzblVkbnc5ZFZDa2NwQ3FTa1ZHb2tsS0xSdHJHQkN3TkI2bk9GaE9jRmdqeVZUTkpvMjh6MitRa0pRWUdVT0VyaEt0VnJ5bU1na0h1WVQwVkl6K0djT3dVSzhtRDFabmhqT1N6ZnBMamxldmo0ZVZCYURNTXI0UGwzNFAvZEJSbkxlL3A5dlNlcWdNMU5LUjVjMEVvNG9ER2hLdGhyenpKdHVYVEc3Y08raDFjM2RQV0cwRU1JUDBwNWlJcWlVNkpVRi9SRGtDNTNQOFVsbFlWUW5pSHBJR2dRSlRTSUNsNFJJTElaaG16b1pQeUdHcVk5c0lBcFJwYXhJNHNZT25zU0JmUG1FampoQk14Smt4RCs5eWwydHo0Y2lGNXVMbEFUaTJXNTlOSW5BQ2d2RHdHQ0k4SDJWTGxnaEcwNzNIYmJFZ0JzMit2Y2REaHM0ekt3Z0d2T2ZlQTdoNjZYaGN0Zkw3bVR5NmNjdUxsWVN5S1BHNS8rRW5WZEpjaGVDK3A5ZHRDSTIxdXVaaHpTYVp0bzNHSllWWmdMVGh2RzRsWE5QUE5hS1YvNDh3M2MrYm0vY2ZyMG1tTmpEcnVLWVJVNlg3MnVFRitlUnZ3UkQ2VCtxa3Z5eVVRZGhsWG9YalgxTVhDZ2JBRS9IVzVTblhHNXVOWDJ6TVNEdXg4SUJmOG8xZm5aY0JQN0krUmJPRDE0TmtwNDdUc1Nyc1ovN3FqbW5YZ1lnTzJXNGNrRENZNFV2V3JYVkhmSFA5elBJeFludVhRVjNjKzlRbnJ6MW1OcXd3Z0VtcEJFN1FRQytNeUlhL2plaEs5UTZpdEMyVFpLMTlFTmsvZzdTNmkvK1ljb3kyYkVYYjhnT0gzeVBrdCtWOEp1Y3VWYTZtNjZCYUZyRFAzRmp3bWZPQnNYRUxiTlowZGN6U1ZWWi9IZjYzL0QzN1kvaVVLUnA0ZHhsRHRZZ1BNUklPbUNMUlRkZ1gyQnU2WHJmWGRVZlBFc3FJellEYXhNcmlldUd4Tzcrd3BrYzREeW1nYmxKWktxSVJxbm4ra0RCVmJjcGFIUlpmMW1tMldyTFphdXRGbTl3YUp1dTRObEthd0RRSUZrblA2dWJQWmRlOVlBenY1MmMvRWkzYlNJV2pxZld6bUJCNXRLK2YyRUxZek5UK05rZ1RSOC90eUYvUGNEVTBnbWZmak5MTVhGRWRwYm83bmlBNEd1UzRRUStJSWFsdTJqckxDYmY3MThFU1JCa3dyTlZOUkUvWHhwL1doZWJpNEczVUUzTFd4MW1NKzZxQlJtellOSk15RVl5alVDSEdpdDdKd2NEMm1nc2w0eGhLekV4VUFLQjVmaFpNNjVCSGZxQnVTcjk2SFhya0ZFMnpGR3pzRGF0QlRIZFloKzdCUDRXcmNqanorUGRDQVAwZEdNdjdFbVY5QnhlTHJocDkrNC9KQmpDcTdqOHVxaWpmekhMNXV4VXhsMFhYTFZ1Y2R4NlJuVHZRMkRQdEROejkzNXIvdThuMzNocC92MzQ3M2xhL3RPbTZhaFhCZGZWUVhSZDVhaVQ4eEhwUVptaXBCU0NuU05UZHZhcUczdUpxNGx5Tzdjd3ZhS1VkVHRXRUZiWWp1Nmx1WFZtaVdzYnhqTmtIUVNwWWRvYlM5bFEzQURzN3RxVUc2SUUwZWZUYVNvaERmWHZzTE1JVlBaMlo1bVUxMHJTai9HUVBMeE9CZ0RZL05YOGY3TExSZk93WGJodHJVNUg5RDFQbE85TklBeGVWdjUxd2wvNXRyeXh6RGVpZEo0djQvVWVwbmorL2NxRytHSC9GTnRTajZSWmZ1UTBmeDQ4K2Q0c1BaS3VyTjVPYWR6ME83Ym4zUmdYcUhrVzZNMFRpNDh4S1lwQXV6R0xMRW5PMGk4Mm8zS3VIMDd0NDJOOE5ZQmdPYWxoQ2xUSUQ5LzM4Kzd1MkhObWdOM1ptOGNiSlIzMkhhYzZ4V0J2dnJhUm5CY0tvWVg4LzNiWDJiTnBoYUVnTy9mL2pJYmE5dG9xbXNIVFNJRDVvQXJPRHNxODVpRzZOc0dic0piTE5rR2liSUg1MldRK3A0R1dvTkZGNEdHUzRtYnBFNHY0TDlDczNrME1BbUVEdHRhOXNqL2ZrSmR3bjhRTTBZaGhJNnJWK0g0VHNIUWlsRDRjN2tkY25laHAxSUNJVndVQmtJcnd2S2RncVpYSVlXR0V2NWQ3WWw3amI1eTlmSisvZngvdnVvRDRsZEM0R1FkYnJwMkJDZlBMdUcrSjdaN1RlaGtMN21KdTJJSFBnL2NKVk03aXRhNmtmaEcxSkkzYXduK0VYVUlvWEF6dmg3N1BNbGtuRWFua0tvVHZrNyt6SGIwY0RtSnJhL2hwRHJKbjNiTlBvYXJVamx3amx6TUxKYUkwdEJReTVDcTRZUkQrUndObkUrdllFMlFaNmVaRVcvbS9JN05uQkN0Sit4WUJ3U0c2aE83ZGNqQWtyOHJOemJ4bWY5NGttMDFyVXlaWHMxL2YrMHNicm54Ukc2NThVUUEvdjc4V203ODNoTmtrbGt1UEdNOFAvMzZPZnp2TFdmdFB2N2J0NzNFLy8zaERYd1JQMSs0ZWhhMy91dkhPRzMyQ0FEU0dadXpQMzh2TDcrOG5zb1JKWHozcGhPNStZYVRhSzA4aFZCZUhqdUxnZ3c5NC8vWXNhMkxtVE9IOFQrM25NVzNQenR2OTdsWGIyNDU5QnZSTklxKzhrVjg0OGQ1MTE2eEVxSEozWUF4VWtpeXJzV0t6alU4dS9NVi9sNy9ERnZqMi9CcmZ2S01DSTV5VUgxUVRianVraThlT3YrNkNsOTFPYVB1K0FGR1NXSHVNNWNkLzNNblhhKytnOUFIU0k2QjlQSXk5YjBraE9xajdObjZXMzU0WkFjS1FBcVVZekgwOXA5UWNzSFp1d2ZyS0hqNTFhWGM4bC8zb3Zvb3ZuZkk4c3lGZFVXd29Bek8yd0ZUTytHU1duaHd0Q0xqay9nbWprSUI1dEFLQ3ErN0VKVzFVVmtMR1F4QVg4czhCUlNBVmF6UWtoSW5BTVdCS0pWUkM4M09vRElwUkg0RUs2U1FnUnlTVlI5M3Zqc2NnUGM5S3RVTHdteHNHY2FuVG5xTGplZWN3TGpsSzlIUzZ4REFrTGhpeVJuam1EbHNHdzh0UGhVSEFhNTJTQ0FXSDBUZit0YTMrdlZTL3RyWHZ0WXI1OW1Wait3TFYxRTgvRHd5aVVZaUpkTkE2aWduVGRHd2MvR0ZxM0o3YnIzTHQ1cUM1ckRHUGJNS2VYWkNCRXNYQTZKMlNDamwvYUZ3cEVZOEdLYTVzSXk2cWhGc0hqcUd1c29STkJlVmtRaUVjS1NHUU8wK1JuUDd3ZjVjUDVRUFI2N1NGTGJRaU9sQlpzUzJjSHozQnR4ZHRvVlNaS1ZCVEE4aWxFSWVaWDJoQU0yd0dGWFp5S2pTVmhadEdVMDBaLzkvMEVoMmhaL3ovU25tanRuQzF0WlN0cmFWNEtpKzFSMzJicUQzQXhUZEtyQWNGMDBiMEpXTUI1eHRGeUNUM2tmdjlLOGhlcEgyMWV1N1FZZnV6aFRiWEpGTGFFK0RpTkhlQVBpMG96aHJFRFkxWmd6eDhzcTJkYVRwVE5sOUlzSi9OT3E4UTljcndDbGROWHh2Mjh2b1RoWkxhRHhkTW9YbmlpZGg5OVZ6WGZqWHdhRGhVYVQvOTQyenVlcjh5WXdiVVF5WkRORVhYcWZ0N29kSXIxeEg0TGdwcEw1K013KzArM253N3pWc3JXM2IzV2pQNndoMGlCeWFheGhYdTYyRG4vejZkZTUvZWhXZnVHUWFOMTUrSEdQUFBaMjgwMDhrK3ZwQzJ1NStpTUR0ditTbTQ2WncyZFZuOFh4OFBELzR4Z2RyQjEwcU1xN0V0UXhLSXdtK05iR1dyNHpaUmpDUXdjMGFaREltdWxEb2UrbmV2Y0hWOW42OTZ6ZVpqSWtoRkYrWnRJWFBqTnJCN3pZUDQvL1dqNklsRmdMRFJwY3V6cUdzME50dTYwbVFDdEpwK09FUFllZk9QZnRxVXNLY09YRHJyZUQzOTh3UGV1S0ozcGRuRVVYKzlXbDhFejBielRmU29VUWlSb3pNcUFsNUdlN2ZscS9tdHdaRVIxYnoraVAwNEZxQnp4OUNBd0tGbHhRbDkxTkhDdXoxTldSZm5ZL1FzcnUvRTVwQ0JEVE1NMDVBbnpqbVBjY2M4RndIb3g4dTJ1ZHRUL1BnTWpaczJhazQreFFmbjdnb0FNQUR6NmJZMHFDSVp3VSt2Yi9wV3crTE9ocUcyQmpJcXptWVZkUzNsTjNaUW1McFdzeXh3NDhJV0ZHNWl2U3FUV1JyZC9UcXVQN2pXM1A3dFg2NDhNUGFQOE1GNG9BRnBFRkVRY3RBL2tqQm1ES0IzLy9CSENxRkI0aFpYQ2dvS2ZMU0lZVGMwNCs2dDJ4REFOM1ErY3dwcFZ3OE9kL3pnOFcrM3MrdTk4RlFrSEFrUWxkM2xHRFpLSlJTZEhWSHlTOHNKQlFLSVhaM2R1MGQ2OUxRRGp4UDJiMGFYZW5hUnljQlNDaUZNa3pXZFE3aHlUdExXQndaNWpHRmxtRkhQSSsvUFRDYUpSM0RTR3VtQndiZlJ6Rk1oUmRxTUFNQlRweHpJVE95WitNM0RFb0xxeGc5ZERxUlFNaGJCcTdxQzVpREhveGJJSldMN2RPNXZYbXM5MkVRcE91K3A2YjBhSTJwLzN2ZElCRTB1eFovVDNYenZPeG03bGthRDM4cWp6bVRkYThCbDIyRDlDUE5La1RvT0FpZFJKYytpUTBwbmJkYnR2TjYwMXNzYjk5TVU2b2QxN0Z6amF2a2tUV3Y2aFVHMXZFZmZ6TDVuL29LVG5zTCtweVRFYWFKKytaTCtHY2NqOVBWZ2QzYWpHL01CTFNpVXV3ZDIwRFgrMnd2bzcvVzVYNFV5Vk10aWxDdWdZbUg5OUEveDJvSkJidHRjdkVlSmhoTWpSMmtRZXBaaUVRSWFHclA4dEs3N1pRV21xUXpMcjk4cUk3TjlSN0E0TFB6V3hsWkZjVHZrN3owYmp0ZnZtSVlROHY5ZStyZmpybitGaWdjOUNSVXoyK0dTRjgydHo2eUUrL3lML0x5VEM2OWVDeXZ2N0dkdHJaVUxod2x1UFRpc2VUbG1TQjJ5YlRldVlHQmxyK1R6V1lQNjBsTUtoN0duSXB4NkFkbzJyUExNbGZLZXoyN2ZOeGVmTy81Y2E3ckh0WTE5NmY0d3crVFhyalFpeWxLaVVxbEVENmY5OTZ5UE1QSE1FRFRVTWtrd2pROVFGWEhBZHZlODEwcWhkQTA3enRBWmJON2ZwdE9lK2ZUUFpnM2xVNTcxOUEweU9UQS9uVWRoUERPWTVvSXc4QnVhSGpQZUpNM2ZlcVE3a3NLUVg3SXhGMjhuUFN5TmFoTUZxMm9nUHpQWFk5VlZVa3NhZlhORXZ2djczN0lqQzBITkEyaDZ6aU5MWFQ4NERiaUR6eVphOTRna1hrUkN2NzczOG4vdDA5N3Y3Y2RrQjYyM203Wm9lc2VIN2tLLzJsekdUTC9jYnAvY3c5ZC8vczduSXhGZHVWNkdzLy9GT0hyTDZYb3g5OUVxeXpiNTlydlJ5ZE9oeHN1Z2l2UGd2TFNYRnpITTZOcHNRd2U3eXppTDYzbExFdUV2WHdXb1k1c0QxNG9YR0JKUE1LeVJKaTdXc3Y0YkdrTFZ4UzJVMjVhNEVCWk1YenhPcmppVEhqc1pmamJzN0JneFVIOE5SY1NwbUR4RUpQSEpnZDRkNGhKMmhUZStOMkJ5U3JTWjFKNDVseGFIbjJKYkd2SFlYamRDcU1nbjhJejV5SjlQZXRLbURkaDBoRnBSQVg0aE9DQ2RJcVN1bHFVcmhPWjVKMnJYZGVaYUZtVWpoeEZ2ajlBSm1lM0g1SHBzR0ZkejlXM3BuRGJkTElMdzdneERiZkpRQnVlUlZaNEdGajJCai9PTmhON213OTdUUUMzVFFlOWQ1b3Ayb2NTUEJjQ2FkdkVTNGNUdnYxNytNd0EyWkpDMHJoUVVlN2w4R2c2Mlk0MmhCUlFYbzV3YkEvWXU2bUJiRWtSUGpOQStQYnZFWDExTWVIV0RseDVpTDc5ZmorWjlmbTdtVGUxbWh2T25zeFB2M2c2QUlzM05ITHpyMS9talpYMUFKdzZmU2pYbnpucHFIMi9aRU1UWDczakplYXZQdkJlZ3F0Y0lyNDgzdDd5QmxmKzZRTG1ESi9MMkxJSnJLMVp5OGFXWlFTQ2VZemE1T2VLRjlNTWJ6QkpCbnpFQWtjSlA2TDc0RitWR1JhbjU4WDRaSEU3RTlMZHpIOHR4VDFQcDFtd1VuSE9PY1Y4NjVzMzhPNjc3eko1OG1RZWZ2aGhWcTllL1o1ekJBT0NtUk4xUG42Um4wdFA4SlBmYk5MNmxFbDBnWTdkTGJ4d1ZBOXM5dXNlcnY4UStEeGV3NVJvTkVwOWZUMS8rY3RmT09PTU03amdnZ3RRU2pGN2ZBbW56YXJpbWJmcXdHOGloRVFvYTNmOXdDNzd5TFBGYkU0OWRSakRKZ3pmallYNzBrc3Y4dXFycjNMVFRUY3hkT2hRSXBISTdtc2VLcGtJempFajNPUXZZcVJtN3Q0Mi9laVJRSXQ0NXBKdFozajlqUXl2djViejd6UVhBcUFYZURFL3h6MjA4L213eUpkeGRPeGVHSjJMRkltYzZCUTlpckgzcG9mYTNwWGdyMCsrdzdnUlpVd2JYNDJVWWo4WnFWaTlzWUcvUHZrTzdWMkpZNVB1cWhSS1FNckowcEdKTVNHdm1wSGhjbHlsK1B2MnQ5a2VhOFFRa3MrT09ZZWh3UksyeHBzWUVpZ2k3VmhzaVRjeEthOGFJVVN2MTVpOTM3Tk9LNTNUL0pzb2Jya0tzcDBZMHY4K0sxTkNOazF4eTFXYzRIK1RGekxqQ0FzWGhmd0lMVi9sNVd5a05ETHNQVlVTSyt1aXBMZUhKZ1M0V1R3L0p5c0lWMWxNLzVqTnhoOUVTTWZrZXlCdFZOUkhmTHNIN1NLMHZiZzM2aVBwZU81eXl0M1RDRkxvaWxSTWtta3pPZkZUU1dvV0d4d0l3TTlOcGdlWWREd3krU0NGcEt1amt3Zitkai9GaFVWRWdoRXZZcUlVbXFZUkNBUjQ2b2tuT2UvYzg4alA0UlQweGlxclRBMHNYS2h0OGNGQzl6NFBRSC9FS0d3ckxtbDJHQnYzN3IwcW85QUc5eXg3aFRRSnl2WW1zMC9MN0JWZ0s2OU8va2loc3kwWElUUm95K1RjZmcwc3R3ZERVZ2hiRGZZOU9vWjZXQ0JScnNMRW90THM1dmlTVFZ3MXFvYVBUYzRqT09sR3Vxc3Zwc1l1WStQT0RBdWVYY0ZieTdheGFtczd5YTZzSnd0OU9qSmdJS1NKVWdyWFZUaXUyNmRzckFVZ2RESVUzK0Q5Sy9QQjdZYjJQMERyN3lEYmVIRGQ3NThNTXJUbmRYelJnUzhTZlEzU0c2RDB5MUI0UFVRdTlLNlZlQnZhLytiOTY2UStSSGxHUjNBanJuSXhOSk1DSTU5Q3M0RGRuazB1YmlDVWg0OVhhQlpRWU9SajQrRHVNb3BGNzR6WjZkUnB2SFVVS2l0d29qcVptZ0J1UmtNWUxxbTFJZHlvN2hWTURyQW5wUVJZcnNQQzdUVllqczNFc2lGRWZINmE0OTBzM2xFTHdKenFrWlNIODRsbDBxeHJibURwempvczEwRWQ1VnRWT2QzbE9wTC9YdWJRZnR4Wm5HV3ZwYU54Rzc3Q29idDdleGVHZ2l4Y3RKQWR4NTNDUTYzRGViR21DNlNIcWQxVEdLdUZ5K3ZkL1huRGIrb0UvQVl6SjFWU1dSb0dBZUdrU2YzT2J0WnVidkdhTCs1RkpZVkJvdkhNYm5VVWpXZFlzcWFCdHM3a250TUs4UHNNUWdHRHVkT3FxU3lMNExxS1lDTEQ1cnAydG16dk9KQTZVejJkM3pjVFpkemFQSlV2RjIvaWxIQXpseGZVYzdtcUorb2FwRnh2enl3Z0hmS2tCUUphYlIvL2lGYnoyL1p4dkprb0d6QXExdHZubHNnQUNNOERSK202OTZ3RzdZUVBEVG5Bc3AwYitjT1NKN2xrL01sY09QNWtYdHl5aUlab0sxWWYxSHJiK2tkcmZwVlMrSUxGREJ0WnpEQ2xVSzd5OEdQWXM1L1FtNzdzeXJMeUFhZGZmYmJrNnJJOHJwbTdpc1RLWmV6OGJTWCtvVWtLL3EyRHkwNElzMjVCSmE2bEVBU29MOUQ0cTlQTUd3UUlpK0dFKzNoOHpVMjFCelo1Y3JwZHBTM0NBWlBUVGhySFRSZFA0MXkzaStpdi9zVDJSMTlHdUM1R0pBL2x1cWhkdG5qdVFEZVRSZ1lDRkp3MWwvQk5sN0Y0Umo1M2JYeUN2Njk1R1hEUi9IbTR5bjJQYnV4dFc5TnhRV0xCVUIrTUdlRmgyaXFGMEx3NlU1bXhjUjI3WCt4UEhJek1zYlB4SDNjZWRzczJuTzZXUFlXbHlrVXJyTUIvM0htWVkyY2Y4M0dXQkFzb0NSYnNpZWVZUWFMcEJKclVHQ1NQT21POTFVOHNtL00xMUpFN1ZvY1NpaGxnL1FvR0dqNzlQdGEzSmhGU0lrSUJaRjRZdDZPTDZuU0dUOGRxZ2o3bFhQOWNaSmk1MVN5OG5TdSt0SUxIZncvU2hIZS8vc0ZXdlh0NFBPZTRpbmRXMXJOOHZZZXRuTW5hT0lQNHYvM1R2Z0N2WURTVjVsKzJGbmtmcG1JZVJ0dUgyYTd2aGRpZkVJQ3JjRnlGa042R3FCQUh5ZDFYQ3FjN0JvQ1dIK2tmQ2Y3OUxhd25GT09xZEU0WW9YaDlkWVRYanJ1RTFzNE03U0pDdHkvQ2dpa1hvMEpCbWh5TkM4Y0lSbGZvdlRxTnUveU50clkyNXM2ZHk5eTVjeGszYmh6UmFCUXBKVzZPWjNSZEo1bE1zbml4MTVkeDNicDFORGMzbytzNmRxNkhyNDZnMXNseVZiU08vd3hWY0lPdmtMaHlzRkJvQ0MrRllhZWtvOEhFckhJcHVUSkQ5NXVHQjI1ektPbUUyVFpVNiszSU1YL0Y3c3JRZU90UGFQM1RBN2pwTkhwUkFVb3BsUDNoMldPMVhKdW41ci9JVmFkZFJNRG5aL1NRNFh6MzAxL254Ny8vQ1V1MmJVS2dRT3E3TjZlVTQ2QWNENnRvUk1WUVdoTlJrcW5raDNiZFRaODRrY1p0MndnRWc4eWVQcDFrS3NYMkxWc1lPblFvc3F5TW5kdTJFUWdHT0c3cVZCVnEzYUZpS1Z0WWVvVEZ4ZGZRbWwzTHBjNmpCRkt0ZEhZb1FpRTRlV1FyWk42bFd4VXd4TkpwYTgzUzRSdEdvV3RUSGRqQzFIQWpoWUh0bkRndVFYV3BvcmxiNDZuYVNTeVZKK01lUVYrZ1hwZnZqb1J3bWpzZW4wa2k3YU83YlNMLzJaVlBlMnM1Vm1jcFAvbmJISm82d3hETTRoNG1kcVZTZ0FtcnRqbmM4MUtHdXUwdUw2MXp1T0lFRjhNUUNGY2hEQTl2d2JYQU5HSDJhSTJMVHZaeC9Td1l6cWtnejhHU1B2eks3WjI1ZXVxcDkzeWtLV2dLUy80MEs4eFRFL3dEQm4veFFEYUswbUJ0TTN4aUt2emJiSWZYWklwQXU1OHh0Lytjay9QZnhoSFFHSCtIelBraFVqTVNPRU50akdVUTNPaWQ0RmlzZWtkcHZOTnlBay9VWGM1bnh0OU54SWg5NERFeEs4TGpkVmZ3VHNzSk9FcnJ4ZlV3YUg4UDBnQzJEOFVIMlk0QzFkbUZSQ1BWMGtZaUhrZXRXNDloK21qZnVwWEM0aUtzZUFxWnllSW1VMGdaMkF1dnB2ZkpvSC9IUGZiMzZEWGhmUGlaNkxEaU1ibTllTkU3c1RFbkdRYnBjdnI0cFh6L3RDYzVhOXBTUVBIMjJtSit1eUNQMTdmNGNKUWd6K2Q2dUNpOVpCWWMrVndKcmptK2t5dEdOTlAwaDUxMHY5S0pERVNJbkRDRHlMeDVoRTQ2Q1gzTWFLeGdnR2dtd1pab0M5dDNORkhUM3NEbTloMXNhVzlnZTNjenpmRk91dE1Kc25aMlQ2THhMdnpWWGM1eWIyRzVDQUV4Qzk1cGc3VmQwSTkxWGl3Yk9HVFAySlFPR2NmWWp3OEZHY2NnYmdYSXVzZmUzaDRrUGxJOXpnWmVuRndjMks4QWRFTmplVzBYVDV4NktzL01tOEh5K2lRUnpjWVNHZ0s0dS94NFlyWmt4SVFnVmRQem1MK2dFNm5MdlhLQmV0K0l5QTR3ZS8yUTRUMkZCR3lNWURtUmlqR2t0MjJtdTdPVlpmWWt4c1FmWUd2ZU9SaFdKNmFBVENpZmtzNTNXWnFxSkJxdG9YeFVFY25JVUF4ZkJHVW5PU0xBekY0S1Zpb0ZRUjErTkU5dzRoRHY1b2VHd0hYb04vZ3RlOU9JWW9Pd1gvTFc1Z1QvWE9YNW9lZFBpekNtek1lSVlvTzJXTy9HQ2xVUDQrdGFRQkVZYnRHOVZOTDZvb2VwWDNwT2hzQndDMmxxT0tsZW5tQ2hRRWxFTm93YmJNT2E4Q3BPOVdMUUxMQ0N1U0NDZS9obVpCOVNZVlR3cTA5WTNQSHhMQVV4Z1JKNGxaZXEvOFU0MzE3VjFrdVJJUGJGbSs0aitTdUVUbUhwYWV5SS9wemkwMTFPM3VxUVNEdTB0alFTREpua0Y2V1IxUWxTb3hzb0xLaG1hM01SOXo2eG1OODl0SXhrTklNZU1uSDZBTVB5b1ByaUVMRjJoa2YyNUZqbUd3R3M3T0h0N2ZiMCtBTzdHcEl4c1IzWWRXOWg2VDZxWWsyNys2cTRBckpLOFRIRHdHZFpQTDUrUGV0ZGQ1L0swS0xDUXJvN3V4ZzllalIrdjM4M3A3UXRYY3JHMy95RzVnZnV4elI5SHFhcFVyaFNVcHp1WXU3V1Y5bldPWXB4cmV1UVF1Qnk3UHBOQ1FGb0xqZi85RTBDdzZxNTRWTnpPZTEwQzFkSW51dVMvTzBYQzhnMk5vTS9IOXorYWUwUGJ2SDNYNUxCSTlQSEVqZ1dIZW9Od3hoUTgrdTRBenQrSm9SWEZ4RUtwYm4xK2plWk0zb25qeTZjZ0ZJQ1RmYnV3dDQ3NjJ6VzZKMzg5eWRlWTIxOUtTK3VHTVdPbGdLRWZ2QU9Ga1BLZGI3LzhTS3VHeG5CZXNTbFliV0ZtOTVUajk3dlNIbUxTQ1JoZlVyeXhoUWZwbTZRYjJtMG13N0xraGxtN2JDUlZtNmhEUlFaNmlpc1pTdXg1aS9DZC82WjJFdFhrbjd5SHlSK2RnZHVheHZHeFBHNGJSMkl6aTVFWVFIS2NjaStNUjlyMmNwK0haYzd1cnloUURld045V1FldW81d2wvOExGcGxCWkYvK3dKZC8va0RuQjJ0dWQ1c3U1b1kyd2dqZ1BEN0lPRmliOWlFdFdRRkdIN3N1bnJRZFlTaDl3c0hSVmsyV240RXQ2MlQ5U2Rjek5pLy80RjNseTdscXN1djRMRW5uMERUTkZ6WHhiWnRORTNEY1J5dXV2UXlmbjdiYlh6amQvOFAzL0JxV3Y3cmx4aUYrYm1pcmFPSDB1TXF5YnlTMTdoMjZMMDh1dU1UTEdnN25aQ2VvRDQ1bktXZGMzR1VoaTVzRm5lZXdQcllGR0pXQkwrVzVxT0FtdXppOVpjZGJXUTVQNWpnSWw4VWUwZUt2NzZjNGY1L1p0aXc5WVBqQ0pxRWNTTTByampENU5vTFEralZvN2cvZWhwL2F6K1BkWm1ST1NYaGZLUkV3UkhmcmVzaWxPTGVlKytuckx5Q3l5KzdtRVFxUmNBZm9OSFFlZktGbDdqcmozL0J0aTJ2WnEyWGFOVi8vTytIK25tMHhHdzJOR2VZTnNUUGhBb2ZHeG96MUxabmNSWFV0bVZwamRtczJKR21vY3VpTEtJenJ0eEh3QkNzYWtqVEhMVS9jdlByMnVwUUlqZURkRXlNZTg4d3RtT1A0Wm9YbytscjBGdm00UytkUStVSlM2a3FLbVZ6MUNXL05KOTROelMzd2FoSTd3K2pYTTl3ZFdFalpYcUdpR2J6ZkxRVUJad1M2ZURjL0ZaT2kzUlFybWY2d0FEL29GOEloSUJreW1KamJSc0lnVEQxbkJuMUFYeXR2TjhpQkJ0cjIwaW12THBtMVYrNVhvQXdOS1NacHFFK3hZTzExYUNOeXZXUHMwSHJSdm9BdE1PSzV3aWdJaS9Bdng1ZnlaaVNFSm9RQ0NHb0txNmt1ckNLRFUyYmFJNjFzbXpMY3NhRU5IenROU2lWajYyVm8xVnNJWlVXU0xNUUZGaG1QVnBlRXhsdEZJN1ZnZDJ4aFdqYlZtcmFRbXhzNnFLcUtJOHpKZzlqMnJDeVBVNmZnTkt3ajZ1blZwTG5OL3JFRXBOQlJXQk9HdWxYV0EwYXliZThQZnpnS1NtTUNvZkFuRFN4WndPNDhkNjl1aEFlM0xSdGV5d1ZDZ2krL1drLy8vSDVBTEUwZk9uV0JIOTROTGR1emhpR2Z0NXc3TElRZHRxR2FOYXI3L2dROUxweWFtcHg2cmFqVDVtSTc2cUxFVG44Tk45VkY2UGEyc2s4OGF5SDh6MUl1eW1lTlZteW80cmpxeHVveklzZDByb3dOSmZLdkRqdHlTQ1cwN1Bjbko3MEFPZ2ZjVEdCVW9wUUtNVHMyYlBadEdrVFNpbUtpb3J3Ky8xczNMZ1JKeFRFRjhsSENVRkthalFNODlGZDVzZHM3Y0tWVURjcG44S0dKR1o5QmlVMVROTWszdDFGUEpsazh1VEpwTk5wTE10Q0NNRzRjZU1JaFVLSGpXdTdOeFZIQkNkUDF2bjBXVDVPbnVGbm94dmh2dm9TSG04dnBqVnI3b3Mxbi9NSnF2S0tPWHZjY2R3dzR6Ukc1RmYyV2dqaE1iNDNvSisvYmR2b3VnNFp4YWR2dVltL3JyK2JFODZFK3gvU3NTeUxZMTJhM0xkd0VXclhwczYrUmNKN081TDdGbmIyaFpKeHdZYlJJeGJndWhDTGw1UE42bVNzUXNCQUlMQ2phZkxNVHZ3RmlxRC9YVWFQV0pUenFBZmRqZ01icllyYTJscXFoMVJSV1ZXTmNtejA4Z3A4bzhmZ3BsSzRzVzZjN2k1a3J1Rks4dDBGS010Q0x5M0ZoMEt2ckFMSFFVcEpmVmN6VzlycmN3MGorM2krcFdEUzg0OVJjZlhKQk9hZGRGaUhwdVl2b09uNXgraVNnNFdYN3hlRWlyb3VNVmV4MXNwaUtVV1ZybE9tNjlUWk50dHlCWVYxdHMwc253OGQyR3hsTVlRZzVpcWlyb3ZUNTBKcGdQdmllTGI0aEJIdy9admdzVmRoeXc1bzZZQzZSb2lsWU40MHlGcXdvMlZQanJRU1IwZWN4ZElPeTJwakxOd1VaRnhGc0ZjVW5Pc3FOdXhNc25ockRNczV2RUQrS3h1NmUwM203VEtvZW1KY0hmWEEybjQ2VlNnTHFhemNlaFhzRUNYc0VPVzhJZ1RDemxDMXFaUHhtN1l4OVlGbFRQSGR3ZGlSUlZUTkdFL0J5WE1KekhrdnlFdm0yWmMrTkRwTkNJT05HOXQyMnlGZFhTbUVNSG9ZK0JiOC92ZUxkN2xHaDMzMGhWVVA5ZXQ1ZTNPLzl3bkxkOGp6SW9XTC9UN0ZzNjRTSkN3ZktjdS9PM2x5a1ByRVMwVzVMcSs5czVOMU5TL1MyWjNoNUZtbEtGWEJWKzZXM1BtNXZ5TEVVYmFGaGJkblcxYWtjY3VuQ3JHQ0dpKy80U1VlZi80VGhSaEpCOUxLQTlRNlJxSzR4U2Y0dDNGKzZuMVpybSsyS0xMVTdxS0FYYnBhQUIyRzRNRnlnNThPTjJueGlVRzM0bEIxbHdJbEZBc1RJWEFsVXZPQ2M0dmlYakdjRUtyWGN4WGNEeVBBZzZ0STEyeWwrL25YNkg3K1ZWSXIxK0hFNGw2VE1ubHNzcDUwb1pGeHMzUllDVTRxbnNtUEp0M01DVVhIZ1FMYjlZSW1UbXM3OVQvOEdXMzNQTWl1Z3I4TnAxNUs0V1huazMvQm1maEdEUE5za0xydGRELzNDcDFQL2hObGVWSHVqUis3Z3BMUFhNZVEvL28yZWxrSnRtdFRvaGR5Ky9RZmNPM1FpL25SdWwreW9IMHBFVDJFVDVyWWFqRHcrNUh3bmR4alBBQnhBSFVsOXhyZlhoOW5MWEN6SHFncEFuUU5oZzNSR0RGSzQvd0wvZUFvVWxGRmZZUERtbzAyeTlmWS9PUVg4WDFPL2REbW9uNytWTnIzZWZmMGF4c0dQSi9aU2lDRlFwb1dyN1FVTWJFemo1K00zczUzUmphQUE5WEQ0dnoxV3kvd2llOWZTUWNXb1dBV2FVcml5UXk0TGdVRlFZSitDUVRZdVNQTHZkOS9sR0Vqa3BBRVRTcCt1bmtJMzk4eURNZlMwVTBMVnduc3d5bmFDWVZoOG13NDdnUW9MTm5sWkE5TTFVYlFhODd0cGxIQ1I5b2RTeXo0Y1pUcitiUFd2RXZ4bFpXalRqeVRURHFPdG4wREloQWh0T3dGL0pzV2s1cHhCcW55MFRqSFgwaGt5aHlNUkl6c3FWZmplL2gvamdnOGVOTDJRMnVFS3ZJTFVGT25VcnVqRFMwSFdDeWxZR2hsRVZOR2xhR3RYNHZiMXRIblFadC9ybW9kVU04NzI5YUdIZzZUV0w4SmFScGtHcllpaXVXQUJTYVNtcVNqTGM3ejc5VHk1WXV2NC9sM251YmR1b1ZFTzlaaFdaMTAyRjNZNloyNGtYWElxaVNPNjhlT1I5alJscVhEV1lrUkMxTGtLNmNzTzRJaUxROG43T09aQlp2cGFJc2pUTDF2QVk0L2lJcUt2RWJxSHpJajR2ZHJkaG14dmNNRStXYVVqNDk4aksrTS9UUERHcmJROWxPVDZKc0JWSHFQYmJBUDB3Q0JTUzZsTjJTdzV1WnhkL01OL09iTnoxRVRIY1dSZDNEdU94NC9rdS82Z2pRQmN3b0UzeDZsY1hxeDVKQkM0Z0xzWm92WTB4M0VYK3hDcGR5K245L25uNGRYWDMzdjU4RWdQUGtrekp1MzcrZHIxc0JsbDBFeWVRQ0JtV1dRanNSbFZzaWcxN1M5cVRuS2YvL2lsZDFWK1d0WE40Q2hJU1Arbk9rMEdOQTU0UHEyQmNyYTQ5UzRLUUdEMjZlRE5FanZkY21VUlZ3WTNCR2V3eDlETTBsb1lZU2JRYW9Ncms4SGp0SUc3aUhxNmxHWDNmWCtQeFlhUWh1RGJUMkd3RVVwZ2I1ZjhNVjJwQmZEUmFJYm8xSE9tNkJlN1JNWjhiTXZ6ZS9Yei8vblAvaGdmVVJRNThzL1dFSEFyM25CY1NsNnYxWnZWeHpCNXlVRVoycEgwYnB0Skw3aGRVU09XMHBnUk4yZTVML0RQWFZ1c0xadE1YLytzOHlZZGhMRGhveW1TRE1JanowSDE4bDZ3QzlpNzhDWTJNMzdiUjB0MURkc1pjV2FSVnhXZHNQdWMvYmxYcndTQXVtNkRNbEdPYVY3R3hkMGJHSk1xaE5RT0VkenIyQ0FoV2ZPdVBpM2pKc3puS3N2UDQ0M2wyemprcXYvUU1HWU11Wk1xYUt4TGM2YVJiV2M4TEh4bEJZR2VmYk56VHo3K0hKR1RLOW0wcWhTRnE5cG9MV2hpNHZPbjBKM1BNTWRkNzdKSFg5OGt4bXpobE5lSE9hRnR6WVRDQmhjZmNWTTFteHU0YXZmZUlTdi9td0JYNSt4a2F3eStNMGJ5eGs3T1krckxwM09hKy9XY2U2bHY2VjRmQVhIVGF3Z2xzaXk2TzJhUS9EenZHZXJWMWFnVjFhZ1hCY2hKYjRaMDNjak5BbGdTM3diYjdlK3k3MjFqL0pPK3pJQThvMDhYRnljUHR4VGlMMjc2akI0eDhWdUg0N2FHMnhGUWFwbUc3RjNWeUgwZ2RVZzUyaG93ZXoySFVjY0gxQlNnc3JpeHVJbzIvSnFZeEFvSVVnbU1yUTJ0SkUyOUdPR2VKTERGQ0Jsd0YvSEswYkdCT082NFY4MkNOSktzRDZvVUIzZFVPakRTYWF3V3p0d0Vrbk02Z3BrTU5BN0NHVWZjT3NKbjh2NmJkdW9LRFlwcjBqVDRRd2xXemFNd3BaTlZGUTZ0R1pzdG5SdlkxWjVUaGYyOFZTS0k3aEJwUUFqeTd2Ynh2UEcrcWtVak81Z3A1Wm1kUE1PRE5OaC9lenhUSnpReXB2cnAvRHV0Z2tvUFpzREcrOTVJOWV2ZnZXci9Yb05mKzFyWDl2bi9RTVBQTkF6WmhJNmRycU5US0xSQTRvVkFwU0xMendFM2I4T2xOM3JnYkhsVlg1K2YwSVJxeXY5N0pQNDBROUo1R3d2VjByaXdURE5oV1hVVlkyZ3BubzBkVlVqYUM0c0l4RUk3UWJPRXNyNzA0NFZNTTBBa3c4OWt5M2VYQ2VrajdqbWY4OXprK3JZR0g4UzBGekoyWlBXY2YzY1JYeit2azhTYlJpQzBCeFFCMi93Sk1ETEYzTTBLb3M2K01GRnovREFvcm44K2ZYVFVVSXhtTW5YVjR6VS80TnIwaS8zNU1mdGF2S3B2RTBPWVJ4ZGsyZ1hqbmh0UjNvMzQvWnl2OWpkTlBIMDZZY2s4am9UTnUvV2RERXMxYjQ3ZDFzaDJHSG1zemwvQ0xOR0YxQ2UxL3Q3YWh2dUg5aXNMOFhBaXNGLzcwdW5RaXBOOXd1djBYN1BJNlJXcmlFd1l5cUpXMjdtL25ZL0QvMjlocTIxYlI0elN0R3p0WjJyV2FyZDFzRlBmdjA2OXorMWl1c3ZtY1luTDV2QitITlBKM0xhaWNUZVhFamIzWDhuZE1jZGZHTGlXSDd3UHRwS1V3cHNTU2JoSXkrUzRwWkptL25hK0RvS1F5bmNyRUU2YWFJTGhjYmhBNWhxZVBvaG16VHhTNWR2VHQ3TTUwYnM0RmViaHZPTGpTUHBqZ1pBd3h2RCs5bHpJMGYyN0FGbE1oRFpyOUdlRU41bm8wZUR6OWUvR0VxQWI2empsUmprVERaenNnTVdoQ1hpc3VvNFl5T1crbHRkbm5wbVo1amFoQ2xzZHpkckhEYUZ2L3VWSTdkMlhJZjBJOCtSZld2UmU3ODJkSHdYblluLzZnc1FQV2tFOXNPYjkzbjdZRTFleitJQldWZ25nNHc2UmFQRzUrbXI2bE5jMXUxd2VHaVRnV24yOUFFMjk0bjkxakRCSlQ0YjhyZDQ5cG9TUnh5K1BiS3daVHhKOTdOdkVEbGpMa1pWMldFZjczUkY2WDdtZFp5TzdsNGRsNzk4MDZDOWVDd3BBNWlnNHFEdEJQOXc4TGtDUStPUW9oOEtMM1U5THl5dzdkN2ZNaEtBVWhvbnBXdjRVdHQ2MHMvNmNCMTFVRHREQ0VHMWtGalpMTjNkM1NpbEtNL1B4Ky96a1YyNWJMOTlqWjdUSSsvc0dPU2h2ZVVNQWlHeUxLeWZ6a0l4Q2RwY2hDOERDcm83QTN5My9aT2VneUV6SVBzNldDaDI3MHNGY29yQk5FeE13d1NWczRuNnl0SFlpMzhQUCtRaWtNcEYrYnlqaGFzOGNLdGVpRzk4MkVnQ2FhVjROUnZqYjVsT0F1TnQvdmRUQVM3N21FRW9JSEVKSVh5ajBFSnpjWUp6YVdRNEsySXBYdCs2aWJlYUgyRjkxemE2TXpHOGpUM3A4Y014UmdNUlFpRHlTZ2lmZndVeUhDYTE2QTFrS0l5eXNpUmYrQWRhVVFtQjQwOUJ5OHRIT2M1UmlUZjAxN3JjajdTc0hRRExXY0JnbmVVZ0RWTGZTV2FVRWppdTRrdFhETVd5dldhb2o3emF4RnNyT3dFWVBUVElOV2RVb0JRWXV2ZGJiK3U0NS91YnZhUmNjQTJkY0VzSEFuQjFvODlzc2tmWFBkelRvZUwzNmVqVFhYYnU5R3I4cXFyQ3ZCTmJSYnJON25WVlBORHlkeDU2NlBCd01tVE9SajlXS3NKcGE4TnVhK3VYSy90QXJQU3pOK3NQNmRpUTMrQlRwNDloV0VIZW51Q2lwaUVMODFuWnJYankzWWJEeHZENWFCbFhybWRnNVhLeXVuOXpEMTMvK3p1Y2xvN2R6UmtpTjE1QjBZKy9pVmFaaTZjNXp1N2Z2NWZScGVlc09BNW9Hdm4vK21uQ1YxNUF4dzl1SS83QWt5QUVzWHNmSi9uUDF5bjR6cGZKLzdkUDU5QmlIZS81SFFRZjRKbmZRRkdCWjJNcHgrT1pKc3ZnaWM1aTdtb3RZMWtpakxzcjJOZ2JBY2ZjdnZHU2VJUmxpVEIvYVMzanM2VXRYRjdZVHFWaG9Sd29LNFl2WFFmWG5RZEZwK3czRFFvU3B1RGRJU2FQVHdxd2VJaEoyaFNlK3pYQTJWRm9rdng1eDFGMDlvazBQL29DS25zb3VTNEtZZW9VblgwaStmT09RMmc5dzRFWS9lUC9PbUk3UWdqSmRlMGQxTjk2SzNaM0YxckFBMGEycFdSODFSRE8rczUzQ0JVWG9WUVB3RjZ1dnJwM0psdFh1TzBhMllVaG5Gb1RXV0lqQXJuR2ppbUoyNmJqTkJtUWthRDFYdDVKaVVvY3dsUUtCRmxDdmtMMFgvMEptYkVwalVVSkpCS1lGWldBUWtwSlpVc0xRZ2lNMGxLMFhOMzNzS1pHd3FFd01wSkhvVThuNGxQNGlhRmM4NGdjcVdXcmQ3QnNhUjIvdm04QnZzSVFBa2gzSnNCeHdmUUtKMWNzcStPT2UrY2ZzKzhQN05zNmhIMFJYT1h3eHVZM2VIbmo4NFQ5R21GOVBGYnJwYlJteC9ESDAyMVNQb0YyTkhPKzdqajNQYzlhbHk1ai9SbXVLdXJrcW5BNzlvNEVmMzRoellQL1RMTzkwU1VRQ0tEcmd0Tk9PNDN6enorZmxwWVdmdmU3MytIdVYrcy9wRXh5MW9rbW43ckV6NXdxUCttbEJqdWVOVWx0MU1EcG5mN3FodDYvaGV3SHRhRlVTdUU0RG5WMWRXemR1cFZISG5tRTd1NXVmdmF6bnpGMTZsUXFLNnNJK2pTK2VlVmtkdFJIV1Y3ZjdZVjRjM0oxVnp4Q09RNUt3WEVqQ3ZqYWxWUHgrWFFjMTZHbHVabWYvdlNuVkZWVjhjdGYvcEtycjc2YVVhTkdNV0xFQ0RSTk82UWFoNUdheVdmOFJaeGpSdkFqUHZKNVZydk1UQ0VFTXN4ZW9OVUN4ejFjckhlSHRmWUlJcG5qMmVaV0FIYVBHallwd0VIMnd6bFR2UExPQmdydUN2RFpLMDVpL0tnSzhzSmVUbUkwbm1iajFpYnVlbndCcjd5ellUL3M1cDc3NG9jYjJ4c2FMT2JTNnJsc1Q3UnlYT0ZJL0pyT0c4MnIyYWJxd2MweUphK2F6NDA1SnlmWEZTODFyYVE5SGNPTktJNW1wRjBoOEVuWUVvYzcrQ3VPQ0gwdzh3a05MWm1nRS9CSlBoTE53ZmFock9UVXFoVDNYMW1QVDl2anB5c0Uwd1BGK0dVRVhVbVBHVnlGREJpQXk3RGhrdTJyRGVaZFppRXZqYjVYUFlzOU02bjJ4c3pKZmI0M2R0OCszMnN1T3pjWURCOGxEdWd2VFBqemovdjNmQjczMkw3VDZ4NVpreW5sdXBoK0gxZGZldzMxOWZWRW8xR0VrTHN4YkNLUkNFT0hEU09jRnlIaldFalpPOWdzN2tCai84RTY5MEhxWlhZYW1WUVlMamc1M3BvWVUxaHlrTlY2Ylk2UHhrUktnU2cwUE10UDd5RVc3SjRFK2g0eGxyQVZvdEE0OG1UUVFlcEpXTk96RDNFcE02TE1MdHZDRFJOMmN1ck1JV1RIZlpQbXdJbXMyS0h6OW9PMXZMVjBNZXRxMjNHVGxoZVg5V25Jc0luQTI4dHdsVG9xelpGbEVNSW5ROUVORUpvSE1nSTRrRjRKTGIrQTZELzN4SVFQeHJhQjZlekdoUWxNejdHeU9yRGNzeHFoOFVlUWVBZkt2ZzcrU1JBNUgwSW5RMkkrZFB3TjRtK0RteHo0L0hER2NubEVjc0N5MGt5WU9aMWh3YUVJdk9aNWJxT1hVeXdyeTBFcGhnV0hja1ZxT2h1V3ZZaGgrSTlJYml3OW1GM29DT3hXWS9kRGM1T2FWd3VkbHRocGM4RGFSQUtGWDljUkNMWjJ0TklRN1VJcFJXYzZ3ZnJtblFBMHg3c3A5SWNRUXBDeExRUWlkNHc2Nm42YnE3eDRuVktTT3hkMmNuZitXRTdKeERnMzIwMVMrdkJKUld2UzRvSGtTZXhZWEEycGJ2RHBDTkU3ZVQybW9lM0htb0w4aUovOHNJKzhzQS9UMUNrckRqS3F1Z2lmcWJGbGV3ZjJmdnVCaGk0OWJPcGQ1NUFDUTVmN25Gc0tRV0dlbjd5d2owall4Ty9US1NzTU1XcFlJYW0weFk2bWFKOWdIenBLOEVxOGdrWXJ3Slg1MnprOTNNd0lYNXdDTFV0RTgzeXF0SkpzdGNMVVpjSzhIaS9uc2U1aHJNdmtEMGg1NVBHRTJDdHFOVWdEZ1E3blNhWHREQSt1ZW9tR2FDdVRTa2N3b3FDS3RtUTNWamJWNjlkYWRKelp2eWV1bDl2WjdHb0F1ZXUxMEhibGh1ZSs2K1hoRjF4K2VmK2Uzei9ldVc4Y0NwY3BoSWxVYVhRc1NOTHhZQVgyZGgveDVjV29qanlLam84eHdlY240emprbnprUzdhU0pUSEZpekJZUzdTaGtsbi83bS8vOVh2dFhDcFR0b2h5SHNWV0ZYSHp1Vkw1OCttaEtWeXluL3ZhL2tsaS9HU01VUmtqcDVVbnZPUkJsMnlqSHdWOWRTZjRWNTVLODhSd2VOQnE0NC9WZnNLbDVNL2hEYU1Mc1UreWc5OGg0QkdRVlpMTHZXZE9PUExxQXNrZWtzNE41aE0rK0Nla1BrWmovS0U3ck5nQzAwbUdFNWwxTjhKVHJJSmgzYkxHUUQwQmppb2ZTblk3anVDNmFsQXdTQ0wyM2VFM1FGMDdIL2h3MDBQb1ZERFI4K3IyZnBsWmNRUERNdVdoRkJlaVZwZGc3bThsdXJHUElzblhjMExrcFlPSmUvWSt3OG05Ky9QYy9wMnp1dTdTOEE4ZmZCdk0vMy90K2dLdElwcTNCQlRzZ2hJb2drM1hJTk9SNmplamFnTUJLR1JpT3hwNzFIMy9EcTZmS3YrU01QWjkvV09mNU1HMkozRFkxQVovQjVSOGJTM3ZVWnRGMkExK0pSS1JUdUVLd0tqd2NLMnR6enRSaUxqNTlES2FobzVUeXd2S3F0NWFDNTM4OC9QRERMRjY4bUhYcjF1MytmTGNObHNzUFc3cDBLWVdGaFF3ZE9oVHdtcG52SWh1RmhzQkI4YU5FRTh1c0pEOE1WUkFXR2pIbG9DdUIwRUdHRkVhNVMvdlRQcktORXVrL3RKeEk0UjhLdzUrbTVUY1AwUFIvdnllN3ZjR1QrMzdmdmpiMWg0QmM1WUpoOHNheXQzbHQrUUl1blhjT3JsSmNlTUpaU0NINTdlTi9ZZTJtMVRUSG8yUnp6MENUa29yOElxWk9ta2xwWVNsUHYvV2NaK25zNVc5K21DaisyT00wMWRRUUNvVXdxNGZRM3Q1QlUrTk9JdVBHWW1nNnpUVmJDSWFDcEt2R29qSkR2U0NvcHBPSlZMUFJyZUMram56U1cvN00rY25WREMvM0FBUEdsQ1NwS2sxeWVtb25uWldTTFUwNkk2c0VoWUVNQVI5c2EvRFdYYzBPMk5vQWpSMlNVQ1JCWWhlMm96aDI4czJEMkZic2JDNEU2U0pEV1pvMlR3SGRRWWJTck50VUJicUwwTjNERHZNckJiWUxqOCszd0ZIbytRTGJnc2ZmdHRBREFxVUJsamVHc1dXUzAyZnJmT29NazNrVE5NREVaUUtDdnErcVhWSmw4T3NUSXF5b05QbzkvdUlIUFVzSlpCMjRlNm5pNnlkRDVZZ3V0b2hpRW9WQnhqYSt6WVFPZ1ZtWXgvQVVKRHZhaWY4VHFtOERjMWVxdjNzc3hpM296dVR6aDNWZnBEelF6Tm5WTDFIazZ6am83enN5UmJ5MDQyenVYUGNGdWpQNUg3MmN0a0VhcElQUUo4NmIvWUgyWTVYYlJIVHpKcnEycmlWdlNDV1pyZHRJNEJJSVI1QUJRZHVTdHdqTElDZlBHa2RwcEFMRHRYdHRqZjN4algzZlgyQ3Q2TmZ6K2RRSHhHMCtiS1JKaVNIMVhFMnIydWZHMVFGbXdkQjBIT1dTdGEzYzczdkdKK2ROZVlldm4vUXNaMDlaQXNBYnE0djQvY0k4M3RqcXcxR0NQSitMUUhucEtmM2dZVXdibXVEbVlWdEozTk5KSmpPSzhML014cDQ1blk2cUVsYTdLYlowYm1IVGE2K3hwYjJCN2QzTnRNUTc2VTRueU5wWkQxOTZ0MitidzJZVW9uY0taZDZQZGlUZ3JSYlltZXIvREhuSU5aOEtJZHdEY3A5blhydURzWnBCT3VvMDBPTGtWN1N2UHFqaElJQ001V0MvVzhxL3pKek1MOUorNnRvU0dIaTVTbGtsR0Y3ZzR5dVRURmk1aWxPM05PQTM5VjZOSSt3UEwvemc4cllCeFErSE5ST09qUkV1SkYwd0E3MTdLMlhCQXQ3ZTJFSEJzQ0RGNllWbzQyZGlXeTVWMFExczM5bkMvSzRSbUoyMVdNTkhVVExyU3BTVE9hYStrUVNrQ3lkV0NLUU90dGNLaWhNckJhNmRhNi9RajU2TkZJS0lYL0w2aGdTdnJJdlIwR1dqZ09hb3pWbVRJa1Q4RWlsRXIrNy9hc0ZBRDNRakdCRkZ0bFduNDAyTjVGYXZIdG51dGdsUGRERHljN25ZUFJsdWVyLzN0Zy8wTk5ib2w3Rkh2SWtLZENHc0FGZ0JFUDJ2VWpTY0ZQenFFeGEvdWo1TFlWU2d4SjdXWlAyUkNpTDlHME91NHdDclBKdy9tWXJxVDlBZGZZSGlrZldVYTJrQ3pmbjRJd21rZnpzdGNRT3B4bERUZVRhLytlczcvUDJmcTBEWDBFSUdqbk4wamZnSEgzeHdZQmtRWWwvdDRlbytKbmJVSUpTTG8vdDJoK3QyL1N5TDRtVFRvTXpRZWRxeVdHL2JOQ3VGcFJTRzMwODBrNkttcm83eG8wYVNiR2lnYmNVS3R2emhEOFJlZXcxZndPL2w4Q2kxVjlxRHBDTFZSbG1xRllHR28ybDlpamQ2U1ByVFZXeEtGY0hLTGxaKy9WbUdqQ2pBY2FGcFd5ZElBM3lGSUp6QkxOTkI2bU1EN2RqVHVlZWQwcS9IdDJMMTB4OUNIaEg0VFp2R2ppQ1B0a3hFMTF3MDZTS0ZRa29QMi92QXI5bm52UkJxdi9mZTkzdC83b1dFRkoxeFA4Tkt1aGxhMHMwTHkwY2YzSWdSTUc5OGdCK2VWc1QwblNaZEw5azRLUkRTKyt2dnVrNnpvQzRpYVNnM21KazBzRnhCWVVpeVBOOWhXS3VOZE1TeGJtRjgyUExFYlcwbCthZjdpSXdhUWVqclgwYVVGcE45N1czUzl6MkNQWFVTK3BpUmFHTkhZUnczRlh2RmFwSi91ZyszdFhXd1RHSi9POGh4aVAvK1R4alRwK0NiZHdMQmoxK0YyOVZONG0vM1lXL1pqa3BsRVlhR0xNdEhGcFRodExTaGtpa3ZiaUlFUXRmQnlHRno5cVBjQm1VN2lHQUFQV3V4NmNKUE0vUTN0L0xvRTQvenpXOThrOXR1djgzRG5aRVN4M0dRMHV0NzljMXZmSVBhbWhwKzg3dmZFUmcxak8zLzh1L29wZzk4cG9mUjErZStza3ZLQ1dBcmd6d2ppcTBNc3E2SkZBN1BOMTNNbTIxbkVyTWlCTFFVbW5ESXVpWkJQWW1yUHR6NXlidTJKZktreXl4Zm1xdENNV1phY2RZdFNYUFAweG1lZVRORExQSEJ2SmNmRVJ3L1JlZlRsL2c0K2VSaU51bFR1YWY1Zko2Sm5rSzNuUWZDK1VpS2dZOWZjdVRPdXhBQ3kwcXhaZVdQV1Z5d2dQejhFTDV3aENYcmRySjF5V3RjZHJiQU1IcldDLzNCcC9jOU9HL1MyUDQ5b2MvMDdQQ01yVmpWa0tFNHBER3N5R1RxRUIrR0RwMUpGMDE2WXJZdGJsT1Zyek94d2tkZVFHTjdSNVpWRFJreWRzOWw4RUNiMytzdkd0bXZoM3YvMGtIbnoxWkRrTTRTV3Bac0pHVE1vWGhtTVcwYmsrU05uMHp5N2pkcEV5R00vQUIrdzk4blRxTW1GT2ZrdFRMVVRQRlVWem4xV1M5R1BEOWV5QTNGRFV6MHg5RjZ1Zm5XK2RuNlEvNnRXNi9ZZE9kS1p2cDA1R0ZpZmJnN3ZHTm43RHIyRU9Hai9ua3N1RUdCb3lUQ0JPbkxvRlI2dHg1UlNoNVJuYnNRZ29KSWlDdm5qR0h2RGxVQmY0QUpROGF4ZXNjYTJ0dldrWmVPRW0xTVVhUU5RUVlMTUp3dWlrcmI2V3B2UnFzWTZoMXAxcE5mYkdESWFsUmtGbmEyaSs0ZHJ4RnI5VEhFdERocDNBbE1HVnErejc2M0ZJS2hwUVVNTFMwRStnWS9YNjl5TU1kYVpEYWFSSjhJRW5zbTZNVW10K2prWFpiRUhHdWhWemxrTi9XZUxham5vS1p0MjRNMCtlYU5mbTc5Y2hCWENMNTVlNEpmL0MyM2tYRktOZm9GSTdBcnc5aHBCNkpaYjQ5RSsvRGtCcmp0SFloQUFNSWg3SVZMc0JlOG0yTStDZUVRS2hwSHBWS0QrUkQ3dVplTjBUQ0x0Zy9ob2ttYk1MVVB6bmRXQ2hKWmd3VjFRK2xNQlhwMC9RRzNMM0VRMmFhVUlod09NMjdjT0xxNnVqQk5rOUxTVWpSTnNuSERCaUlsWlFnaDBDMlh3b1lrdm5nR2Z6U0Rrb0xTTFYyRU9oeGsxZ1VwOGZuOWREU2xtRFJ4SXFOR2o2YTF0WlZzTmt0QlFRSGhjSGgzYjdURDFxOFNSbGRxWEhhQ3dZMW4raWdjRXVEWnJrTHVhaXhqZml5QzQ4cDk4NDZVaTZtYlRDNGJ4clhUVCtiYXlhZWlFZ0ZXTGVzZ2tScXMzUVBRZFowMXk5ZHcxWGV1WXFPNUVURkY1NTNORGdpN1gyenk2eDk2QVpZTGlwcG1saW1UWDhlMXZUNXdxMWFmVHUzMkU5QU1uZXJ5UmN5WU1kLzd6c001QlhkWEk1MUIybGU0ZTNQUzJOakltalZyTUlNaE9yWTFZMmZpbU1OSFluZTBldURMbmUyNC9nQkNhcmp4S0ZwaEVYcDVKVEsvQUt1MmpvNlFUZnVRcWF4dXFtRm5kNHNIM3FENmRPQ2c2N1J1YXliMS9aOHo4cyszWVl3WTVyVmZsT0s5aTFFQnJwZnNhOVZ0cC9iN1B5ZStyUmtqRlBDYWlBelNBUncwUWJtdTRRb1lydWwwdXk3NVVySW9rK2JGZElwRTdnRXZ5cVE1SnhCa3JzKy8remRoYVZPdWFXaUR4dGNIc3JIbHdEL2VodE5uUTJFRXZub3RaQ3lvM2VteDdYZCtBM01td2Nrem9Ma0RGcTJHcG82akU5dVhBbXhIc2E0K1NVdlVvcUxBN0RIdVpkWlJMS3VOVWQrZVB1eGpnK1lnOE1lK1lrMndkNGhjS2d1aFBHUE5RZEFnU21nUUZid3FCQ0ticG5wREI1TTIxRERyb1FWTTk3ODNLcEg4bjE5K3FIU2IySy9Jb0RlU2RLWDBRTG5jSTRpTWZIYjA3ZjE2enY2OWgwSEZEM1pBQjNEbDZRQXpsSmVzYmdIYjVaUVRxN250dXljQmNQUC9neS8vNVJwT0dsZUhFTWVnb1o4Q08rNlNUU3ZTV2UvcTJRNGJZU3YwWXgyY1V0QmlDcjR6eHNkVHBUcVh0ZHJNakRtVVdONDQyd3pCc29qa3lWS0RoZmthdGhoazVTT1ZFbEp6dklaM2U3MGVuTXBEbkVQWEliVm1BOTNQdlV4eXhScmNaQW9oNVVHYkQvYXRqK0FsYXJSbE82bnlsM1ByNUsvejJSSFhBR0JiV1hURFJCYzZyWGZleTg2Zi9BS3JvUkd0cUhEUENWeVg5cjg5UnZ0OWp5TDhQdS8rMGhrUUFpMC9nakQySklxMzNua3ZYYys4Uk5YM2I2YjBpNS9hZlkyNVJUUDQ1OG4zY0ZmZEkveDgwNTAwcEpvcE1nc0d5K1VIcWQvRnJqUUJlL2V4U21jVktzMXVrRk5kaDNHamRjWk4wcm5pS3NGUGZoSGY1eHpmZUd0WVA3L0w5bjNlM2ZyN1Z6OFV6ODRGWENYUURSdGJDYjY3ZmpSL2J5N2hEeE8zY0x5TWMvMUY2M0FVZlA3MjgwZzBoOEZ2ZytscHZLNVdseTVMbzdDeWkzdSsveFNmdkhRRHBHQnhkNWd2ckIvTjhvNThNT3pkNXo0c0dqa2U1cDRPdzBkN0cxOERHTXhJS1VXV01seFJqdEFOTW5JMFVYRUN4SDBFYWw4aE9XSWErdloxc0xvYk9YSWlXclRkaS9kWmFmUjBETDJ6RVYvOVdpSkkwaC8vSHZiSWllaVJmT3p4czhBdzRRaWFPTVYvOGorSFlORUk1UGp4K0c3OUViYmo3ckZqRkRpT2k1Tk1rYjczQVp4bHkraXJ6ZWhkMUt0TjVvNEM2WkVJQ0VGZ3pFaWk4OS9GTjdJTWxXbmFWMGdPS1B0V1lhTjQ5S1dOWEhieUdGcG9vN3l0bEpPblhrZFE1Yk42WFNzamk3WnhhbUVUUWY4Mnd2NGk0dDNENkd3V0NEUE11QlB6S0NvbzR1SFg3K1BxR1ZjU0NJN2o2eTg4Z2kxQUhXc0wrY1FUUDVSNldlWk16QjR0SFFXYWREaTlZajVmbi9SYjVvbjVKUDZ1MlBaRUFLdEZlRVVKY3QvZkt4ZU1ja1h4WlZsQ2x3am1xMU81ZmNsWGVMMzU1TnptYk4vNVgwZHluTWhGY040dnV1UDJ1WVRiNVhmQWNYbUNiNC9TT2F0RUlnL2wzZ1E0YlJieFp6dUpQOWVKU2g2bHltemI5djRPYUZpNEIvNHNtZlQrQnFuM2JMaGRDMXlUeVAwYXI3aXVPcUo0N2tmUGlUbkk2OEdKR1p5Q1BxUnRPN3NIMUhqZjhnM2w1K0VUMkdnT0FUZUw3cWF3a1Rqc0Fxcm9YN0ttcyt1RDltSVZXQW1HVkhUeDU4ODh4ZGNmT28vMVc0ZnMwK3Rvd3NnR2Z2SHg1L25jM1pmUzBGUUFSdDlaQW1xQTV4VW81VFZ2Nk9ySTB1VXFoSyt2ODJWeTgrWHowR2t5dFNQSjFJM0VQM296ZVhNV0gyRTh5enRuWHFTUU1hT25VcnR0SXkydERSdy82MlA0ZlFFQy91QjdyRUdsRk9sMGtuUW14ZEtWODBra1lvd1pPWW04U01FUkpUa2VudDByQ0RwWkppVGJPTDlqTTZkMzFaRnZaM0RFMFczYU1oRHA5dis3aWx0dVBHRjNqT0dlSjVienM3dm04OUxMNjVFUlAzLzkvUTNjZU9sMEFOcTdrdHgyejBMdWZHUUp6ejJ6aXVFVEsxbjZ6TDh4YzFJbEFPdTJ0SExySDk3Z3NSZlhzZUtkclp4MzBUUWUvTCtyS0loNGhTWXZ6cS9odTc5K2szL1VsWkhJdU56eTFYbmMvczB6QWJCc2h6ODl1b3lmMzcyQWwxL2VBTHJrNGt1bTg0L2ZIdDdpRTFLaWxBc0toSlMwWnpwWjA3MkJlK3NlNVI4Tkw5RnR4WWtZSVFUaXFEUVhFcHAyT0FzUG9iMDNQaUtrUkdqeThNNzFFU0VaQ2g2NVdTY2tLcXQ3aGRXSVhMTkZEMEJHMHlVeTZNTXc5QjdGM25xYWdlamkxY291TDRGZlRGTjhmcjFnY2hmOCsyckptdTQ0MlRzZm8zdllVR3piUXFXeUJLYVBSeXN1N0wzaUNPTmcwK2VCN0FSOVdjYVd0MUZlN2pDazNLSXBEVEdWcERqalVGR1Vvc0ZLTTlac1IyZ2dqTDQzait3akJCL1ZwR0o3dklCL2YvNUdpb3dvWjg4VXhMZFdvT3MyYTBORFdmTGlETnF6WVRwU1BvVG00cWlQcGw3NTlLYy8zVU5mS3BlN0pjWHVHSW1RR3NwMVVjcWh0OUV4L2prK3dsL21GTktVcng4VGNQakRwWTc4SXJZTUdjVzZrUk9wR1RxR25TV1Z4SUlSSE9tMStSUEsrOVBjZmxKQVA4RGtRNi9vSFBvWEFBZEM0VG9hVzFwTGVYUFRPTHFTUVM4SHg5RzhRcUNEMUVjb0pWQ3VCQ1hvU2dWNWM5TTRhbHBMY1YwSnV0Mi9rUVlIcVU5cGI1Tm5mMVkvMnB6dnVyQzlNME0wN2NtOHJwVGRaOWY2elZXakRzbkhYOVVRNS9NN3V0SFZ2a3BGd3lWc3d0ZE9yZUNrTWZtOXZ0djV4T2NITmw4MXhzdjYrUWhiOTNtWFdMU010cjg4U1BlTGIrQWZNNExRZDcvQlk3RUlmM3B5UFJzM05Ydk1JRVh2RmlQbkNqRnF0M2Z3LzM3ek9vODh0NFl2WGorSHoxdzFrNEp6VGlkODhseTZuMytOdGovZGYxQXpTNktJR1RxVVdQemd1QnB1bmxoSFVTUUpsbzd0R09nQmhYKy9CZ243OURjL1VKM1ZBYjdYZDRGT3VBWUZ3U3ovV2JXZWY1dTFqVit0SDhHdDlXT0lHYnFuTDQvRXJHdHBnVldyWVBSb0dESGl3SFBzT0FmZmF6c1lrSlJTVUZjSFc3YkF0R2xRZHBSNVVzSSt4UjJPOTVtYm05dXArV254N3hOdE5Ta3Z3LzNiOHRYU1RyK0lXZElEMHp2Y2ErbEhYam9xYlBXK01RZWhhVjUrcXQ1N2NZbGJGcFQzT0NBb3BFQnVCbWVqeXZsMkFsZkJ3NHRWTDRRRE4vZStmZ01xdHdsYVhsZlluYmtoSG0wbHF4U0p0NWZSL2ZTckZIM2lZbVFrZE9qalQyV0l2YlNBMkVzTGNrMEplMDhXL3ZTeEh3OGFZOGVhNGtBTXJDVEVhaFhaNXB3S09JUnRJSUVIYkpLMUlPanp3QXQ2eThNWFNvR21NeXJleURlWC9oYmpueHRvVng4Z0o1VkNDWUVVRWoybnR4T3VTOHgxY3ZmVHV6N1B0KzViUGNnLzd4SFJBbW1tZG5uU2UzcmtTb1hRYkFRV3psRUFXbFFvWkE1NFFLa2NBRWl1VTVRUUl0ZXNWdlh5TmNIdGhYMHBoZGdkeitwNWt3eUJLOFNIcWhIaHJqdFpZNmU1TzlsQlRWR1NHMjQwK09KVitWUlhsNEU1Q1VJbmt2WFBwTTRxWWxGbkc2OXRYY3VpbG45U0cyOGtZNmZacDZrVi9XVHZSUWlVY2duT25ZMS96anlVWlJHWWR3WjJ3M1ppZi84cnFVVnZvK3dNV2trWmdibW5rbHIwRms1N0syaDlEeUhTSCt0eUIybVFCbW1RUGpTMjAyR0xRTThZSGxrVjRIT1hWTzgreCtSUllmNzl0NXNBK0svUGplSGthWVg3bUw2ZXFCWDlaNXRES1pTZWl6YjE0YUMrOHV6bmV1N1B1d3BORS9oOG5zN05MTFZ4SEhYWVlLT0hRZ010ZitmbW0yOGVZSWFrNk5QOHRSNExnLzNXd2gxUHJUb2tKNlFvejhmcEUwb1o2anA3ZWlXaFVJN0RpaTJ0L1BvZnE4aGFnL2haQjVSRGp1UGxERWxJdjdHSTl1LzlsTXlpRllpQUQxd1hjL3BFaXYvbjMvR2Y1cTFMWmRzSVRZZER5ZC9TTksrR3lMSFJLc3NvL2ZOUGlYenlpdDNYY0tNeDJtKzVsZmlEVHgzZ0d1ODlmMUgrbmo2OVdTVjRwcXVJWHpSVnNqQVc4Wm9adk0vK2NBK0RNN2pBMG5pRTVZa3dEN1NWY25QRlRpNHU3TURNK2RpRitlODliRm1Wd2NOVGdydzUzRWZLSjNaai9IMDRuRktCV1ZiRWtDOWNUYXB1SjlIRnEzRXRyL25vZ1RaY0ZBcHBHT1RObnNxUUwxeU5XVmJVNC9qVTh4T1A5SGlCNnlpR3paeEN3N1BWVkwvYWhldll1Mk1hZGJPcXNjNmV3dlpZQTFMckJ6V2VLdWV5V3dKbm13K24zdHpqd2p1QUswQXEwRld2eHRwdkxULzMwSVluQkNKcDRkNitHbklOVXFTVTJQYUd2VVNCTjJESGFkM05IN3F1NDdweFhIY25LSVhNbTRTcW1PN0ZRZytGbXYreXI3Z0ptb2lRRDZVVW1WVFcreXppM3cyR0N4elQ3OTh2eThsVkxpQ0pCQ1hDTGNlSm5ZMFZPeHZjRU8zNUdVQWcxYkZOS1NyUmJXYUZFM3k2cEoyNWJpY3IzMDN6NXlmU3ZQeE9sa3hXWVJnR2t5Wk40dHh6ejBYWGRZTEJJTHF1TTIvZVBPcnI2MmxzYk1KbndzUlJHdGVlNytPNk13S1VKVTNhSHpIcGVzM0E2amhBRFdvUHlCbmdJUmFsRkk3ajhOaGpqMUZiVzh2cTFhdVpOMjhlTzNmdTVKNTc3dUY3My9zZUFwZzN0WUlmZkc0V3R6MjRpclYxWFhSbG5EMjJsQlFVK0hRbUR5L2dHOWRQNCtRcDViaXVDMHJ4emp2dmtKK2ZUMVZWRmZQbnowZlRORWFPSE1uTk45K01sUElEYmNXenpBaWY5eGN4UWZOOXFGUmJiNGxzcDZjVElySThtejJKWjdNbmVJdENaTDJtb1AzWEtEamlJek1abXdlZlc4cTZyYzJjTm1jc0k0WVVBMURYME00Yml6ZXpjc01PbE9QMjdwN1dZWjdMczJ3RXM0cEdNYXRvRk8wcXpVdU5LNmd1cUdSWVhnV0xtMWV5TEY1UGd4MmpTbzhnaGVEY3lobkhpUDhFT29vNk5ZNGF4aDJhV1p6VEx6cmdRMzJvOWxBT2FjNWNRWFdleGZVbG1WeSs2RjZUNW9hQThMNDdKNjVDWlYyR1RMTTlYcEpPTDI0SXMydUREUnhRbVFPNFZ3SC9nSnJmK3phK2RNUjYwREFNaWkrZVJxd3VqMWg5UFYzZFhXaFNrcCtmVDE1MU5RWERoL05pYkRYWjltei9qWEVNMGlBTk1KSUtuTDJXazVOek5RZHBBSVZxZ2hyaG4wendOa0w2aTJoVW5tOGlnb04xb0VlYi9BcnlqU2duVnU3Z2t6UGp6RDV1TlBHaUczaXlaU2l2UE5YR3d1V3ZVYis5RFRmdG9Bd05aZXBva1FDZ2NOVXVESnFqSndSQ3gwUFJweUh2SEpCNXVaaVhEYkdYb1BISGtLNzVZTGJXSXVBZnQyZlkvbkhlWjA3MGZWalVnYTVuSWIwUktuNEFlV2VCREVMa1BBaWRCTkdYb09OdTROMkJ6UTlmZi9odzE2RHdlcWRrWEFyR3pzSElXY1gydWsya0huNENnTUMxbDZOUEhJdUJ4bzJ4T1hROTlEckNaK1R5MncrUGQvN3ZVRjFPMFdNM3RIK0lSaUhaR2UyaXRxTUZ2YVNDckdQaktFVWlrNkVza2dkQUlwTkJDb2ttQkJuYnByYWpoWjNSTHRReDZpeXZjcXBGQytsa014bGVjU2V4cHFXTkxEcCtMRnFKWU90aGhKdEMrbldjUGl3N1ZFb1JpMmVJSlRMc2JJbHg2aHdIMHloblEyMGJHMnZic0k4d01PTXFSVmNzVFdjMFRWTnJuRE5QR28yaGFhelozRXJ0amk0YzFiY2U4N3AwQVRYWkNFOUhoM0pjc0lQUlpveEN6WXN6ZHprbU5ka0l5NU5Gck0va2tYVzF2dGtMRzZSQmVoK1RUaDFxT3JBUVpOd3NMOVc4dyt2YlZoQXdmS1JkNjVDT1ZlTHdOTWpEbC9mek9NbEx2WC9LL1dNZ2ZSa1RHWDduSC9yMy9QN3h6bjNuUWdteTBxV3pSWVBmVitQRU5XVFkwd254Ti9OSmJRZ2c4eXlLUHRaTjZjMGREQi9UeXJtOVhSZjVQdlR0Yjc1bnFVRFd4bWRvekpvK2tzOWZPWXRyU2lXSnUvN0cxcnVmUW1Tem1IbjVIdTdFcnZyQjNGaGRLNHZRZGNJenAxTDQrYXZaZE5abzdxcDVnYjhzZlFyWHphSUY4bkdWaTZPT3dlNk5vRjgwdnEySjF4M1pnVDVRcDF5QU0zRXFkdHQyQVBTU29VUkxoaUY4V1lqVjlidWxjT3JJNHpobHhJekJHT2wrdHV0QW9vSFdyMkNnNGRQdkVrNzY2R0VFcG8wbDc0WkxNTVlPUlpnbU9BNko1OTRpNFRPcFhMS1c2OXEzK0gydWMra1RlU045RzFyZStSbmg2Z1hFNmhYei9nanovMlZ3Y1gyVVNZQXd0UUVwWS9vMU9TN3BtbTNZVGExMFBmSThBRnBlR0wyeUZQK1k0YjFhdzkrLytPbndaWjdNcFoxV2w0WDQwdFZUV2I2K2hTZmYzazY0cEpDczVWSnEyMXc4YnhUSFQ2bWdNR3pnWmFIMUxybXVpNVNTNTU1N3pudFdtb1lRQWllSGFTR0U4SEtTZ0UyYnZEcU9ycTZ1QXovNlhGYUNSUEIwTnNwcUo4M1BRMVhNMEFOMEtCc3BCRzVjRUY5aUlBeUZES2hEVGt5S3Y3MklIZC8vS2JFMzMwS0w1S0dYRnFOc080Y0Q4T0d6ZVRTcGtZeEgrZDk3ZjhuUXNrcG1qWnVHNDdwY2RPSlpUQjh6bWFmbnY4alNUYXRvNm1nRkZHVUZwUnczYmdyamhvemt0Z2QvUXlJZVJSaStYTzdpaDQ5MmZQUHJHSVhlbnVlT0FHQkJKS1ZvTC9WcWlmeHRDamNGemFWamhYUE45eUZTaE4vSjRncEIxZ2pRbURlRHA1cXV3RitmNEF4dEsrVjVObElheEZNMlliL3lhbDgxUWI1cEUvSkRJaTNvemhiUXNTV0RjSlBrUlJTWER0dENhK09MUE90ZWgybG4wVFJKUWd2Z2FPWXg0eHRoZUhocXJpc1FQcSsyMkhVRjBtK2hqclRPU3VUeTVTUklYV0E3ZURoNjBzWE9lQ1pmU1ZBd2Ziek9wODh5dVhhZWpxRUxsS3RRU3VXcTcvdVcvakUrd0oxelF1ek0xejRVeVk0dUlEVlkyd0ozTFlNelI4TTZvNTIxcHdjNXZUS1BiNjRDWTJrY3ZTVkpZQVVVdmdZRmEvYzYrSmlOVzdLaGF3TC90ZlEvYVU2VmMzYjFTMVFFbWdqb0tUVGg0Q2lObEIyZ0tWWEJ5enZPNGcvcnZzaUdyZ2tmdVh5MlFScWs5NlBmZmZ2cTl4WDBRcE0wdmZ3eXRjLzhpYXpkaUsram5PREh6a2VOR29IL3pYZUl2L0l3eWgvSEtqMkJyM3poOHdTcWgrVGlqNzJ6enY3NDNXdjNlZi9kOU5QOWVqNmYydSs5L2lGT2JSRkEwQXd3c1dJRVlUT0Fxenc5clBEKzlkNTdBUnlWNjZkZUdpNUVBWjNKR0RXdDlUUkgyM3VrdGYvNW1aK0Fick5pYXlHM3ZWbkFTNXQ5T0s0ZzMrOGloT3A1L24wdjAyZEh0TkxWV3NpeU9kUFlXaDVtczlYTjFyVVBzM04rQzUycEtCa3I2eVdkZUo3Ykhyd1dJVHhqNkdqVDJtNVkyQXBSYTFCWUR0SWc5VEVOdERqNUwrdWVPdmhJaFJmWHNiWm1pV1JPUWovK1N2NVFFMkZEYXhMWFZZd3JEdkRwOFRvM3JYbUc5UE12OFNuVDhHeU9YblRqOWtlVXZmbUp1Zyt4UXBhNFZwTFEwT2trZFpQWWt2c0pDWjEzMHVjeU9yNkl6THIxRkJZRWFLakpzdG05RUsxOUpiSjBOT0hKMTRPVFJtbEJqblhpM0s3dFlOdmFEUnVNYlhrNGkvME9TMThvTmpkbmVXZHJpa1RHM1QzZW5WMDJqeTN0cGppVXk3L3F4WEZYZitLU0hoMHZkUVVhbVBtQ29ubTVEeDJRUVVYbDVlRGFQWHordjE2eXI1OWVzZ2xyN0F1NFJWc1FWZ0NSRFlGd3ZiOStTTCs5enVLMzEyWXBpQWt2eDZpZmh3dWNBVmJnTElTWHVGVlFmZzZSd3VQSnREK0FsVjVQdHhiSHlscEVaREdSNEFXOHVYNFVQL25ObXl4YlZvc00rVUI0ZUExSG13WWF2bzlyaWZkWUN6WSs3NDJsRGdpREhnZkdLTUcvQ0pQRmFDeDFiUnFVUzdxeGhVZC8vaXZrNWxwdU9QTnNXaGU4VGZ1eno2RmFXOUVEUWV3c0I3UXZNcGdlOWc0QzRSeU5mZnBEa0h2U1FZUjBYSFFhNmhOZStubzQ2STFUT1F4Q01RN1NrWkRWNzN2SzdNdll0M3p6cy8xNnRELzl2Mjk5cVBqRDY1L3EwdDRWNHVmM25yVmY0YVI2ci9HNzkzZnZxV3RSKzc0V2UrelEzZi91L2QwdTBhczVvRHVvQS9EcXRhTWozRkpkUU9WQ2pYak05VUpPY2dCTXJBQmNzQU13cjg3QlhKT2kxYkFvVnhvTkhSWlhwQnlxTEJmSFZBT3Y3NVBqa24xakFZbi8vUlhCZi9zOHdTOStHditGWitOczI0RnlITFNoVldoRHE3RTNiU0g1dTcrUWZXTkJidU4wY0c5cmp5R2t3RFN4Tm0yaSszdi9TZDZQdm84NWRUTGhyM3dlOC9oWnBGOTlFN2U1MmZ1ZDM0KzlhVFAyeGhydjJGMDlScFRxdjBsYnp2OXY3NzdqNDZyT3hQOS96aTNUMUNWTDd0MFkyNWhlUTkwa1FFSUxPQkEyb2NPU0JrbCt1OW4wVFNmWkZBajdaUU1zSVFVU0FpR2hoaEo2TTJBY2d3czI3dDJXTGNucW1qNXo3em0vUCs2NGdjR3ltalh5OCtZbExNMk1acTdPUGZmY1U1L2pnK3ZnbHBkUy8vbHZVN04rRXpmOTZpWW1UWm5NOWRkZGh6RUcyN2J4ZlIrbEZJN2pjTnYvL1I4YjFxL25pYWVlNHVBSjQxZzU2OSt3a3ltczBoS001L1h6NmJBSVcxbFdkaDNDbHhiY2phTThRbFlXaFNGazVjanBFREVuRmNUd0F5ejBqdStITWhzWTVlUTVQWnJpd2tnbkphMXBIcDJkNVErUFpsaTRmTy9ueExKZzNBaWJjMDV4dVdKV0NiVlRSdk5rL0NSKzMzUWU4OU1IRXhUby9nRmJETngxWTgvSFRJTDlGR3g4WDlNVmY0RklPQ2htODFQZ3FrL1lPTGFGTmhyVmk5bHlmM2xzOTNNODdUKy9PTGdUOUpjLzZQVmJ0Q1E4WGx1VDRyaUpNSzdLNVpCUkVUclRtaTBkd1JqVDZFcVhpcWlGYXluV05PZVl0ejVGUzZKdnlxZGlTOTgvZlBlNFFYMjQ5LzVJcWhxMUV6NkxUcjlJN05TUFllWEcwYnhnRHUxTDE5RzVmajFIZitKMGttNDE0YkJMVFhYcHpqNndQamJTelpMUURyTVQxVHYyY3A2ZHFPWkxkUnNaNldiN3ZPdjhodFQ4ZmF1dUt6Q1pIbGIxZS9DN1QrM25OcCsvNnlMWVBrdjhuZm5Hc1IyT21Id1k4V1FIMjVZM01pYXlpVkUxRll5Y2NpRnQyOVlSWC8xcnlpSSticTFCbTJCZG1xVWdHdmJRNlpXVVQvMEsxYlVUMkxEc0lVSXRDL2pVNUtNNGNlckk5NG5wM285QkZSUzRZejF5NjF3U1Q4Ukl6bzVnc3NIbmRONVhpcmZab2ZTOEZPNFlqOXhxdDgvUzBpdFVpYjc4bVFqLy9lVW9rWWpGRDI1UDhjdmZwZkVBVGhpSmMrNUUvREhsZUZrZnVuSkJBdHBEc0kybEZDYWJKZmZrYytSMmkrdWlkdTVyTG1zRjM2TXpFMmJPcHJFY1BhYUJzUlZkV0piZVl4OUxrTVFHWDF1c2JCN0dvb2JoTzhyb25pcTZmUWMrUUM2WFk5V3FWZmkrajIzYlZGZFhNMkhDUk5hdFhZdnZlZGlXQlNVMVZIV0dLRzlONDBZcVVVWXpjazBPSzFLT0xrc0ZhMGs4ajVEck1tSGlSSHpmcDc2K0h0LzMyYlp0R3pObnpzUjEzWDArdHZLWTRxZ3BEbGVmSHVMangwZG9kRXE0WmNzdzd0dFdTMzAydkh1OCtVSmZ3YkJZQlNkUG5NRTF4NXpCaVNObnNtSmxGM2M5L0JaUHY3S0paRnJtVVFIYzkrZjd1UHJYVjVPYm1zT3RkTW1uOGxqaHdYTjhEbXR1T0NCS1BHMFV5bE1vRlJUOFU2Zk1ZVmoxV2xDSzZzcUdvUEN5VkdGaWdNRlNmZE9ocW9ad2IyVmpZeFB2TEZuQ0tTVTJzZU9QSlY5WkRmazhwbTRrWHRVMmNwczJvRDJQOEVIVGNJYVBSTmtXaEVLNHNUSTZPdGV5cEhFTmpZbldRZ3IxVlRUWkQ4b0VtbEJwalBTOCtiVGNmaGVqdnZkVnJMS3lvS0dpOXJ5Umc0N0hhYm45THRMejVoTXFMZW45QXJraGZMMDV3RFEzeEF3WFlrcmhBNTFhc3p4dk1kSjJxTE9Dem8yUnRrTzVaVEhHY1RqRXNyQ0JLU1pZa05uYjdRN0xQejIwUndlMjk5TTN0Y0pWUHdMUGcxbi9BcGtjdlBZMnpKZ0k4NWJDOC9QZ3ZGUGhyQk5oNmpoNDVDVll1M25nTmdwWTFaamlrWGt0bkRpMW5ERTFZYUloQzJNZzUydHNwWWlFTE1LT2hUWUcrd00yMkRJR05yWmtXZE9VZVcrZzZtNlYrOFYyaHU4YzBQejdudWxwdTdTTERMQzU4UFVNd0I0NkoweG5WNUdsNzlkVmQ2NnZQcjd0OU5odHE3NDd5TlB6UzBWZG5yNXk3WnZGZGI5WWUzMi9IKytyRytHNCszZC9iTWxMQUgvWkwzK3laU2xzUzNIMHdVSEx5YllVMWlBYU0vVVV2RnBsODJxbFRibG5LQzFVRVJNMmREbHFRS3EyQjBMN2JVL2ZpMjYwUVIySHFrK2VRL25wcDVKOGF4RWRqejlML0tVNTVMYzBESGpBajdpWFJLRzRac0xGZkdmYTlkU0dxNFBBSTQ2RDQ0Wkl6SG1UK20vL2xQanNON0RMeTNDRzFieG4wb1pUWFJuY3F3czNWbFVTQzM3Mi9kMXV0czZ3R3Z5dU9CdSsrQTFhNzN1WU1ULzdMMHBQT2c0TktNL2ptZ21mNGhPalR1ZS9sOS9HdlpzZVJjdTJUZ1B1eUphbFJYVXhSeWMwRmRYeGRtYUxhMlYyWnlJenBQSzNaNEp0UXAxUW5vVWQ1UncvOTNDK09uRUxQNW00bWNzdldNYXBoMjdtMXI4ZnpYUHpKN0NsdFJTRlltUjFuRE9PM3NEMTU4OW40a0Z4MGkwMjMxcy9sbCt0SHczR3dnM2w4WXpDNjhsOWNQMUt4ZnFWUTZRdnhPQmJwV1RDcDVCMVA0eEhIU2FicHVyNVgrTXNuMHZpMGgrajF5MG04dlNkK05VamNkc2JDcHY1S25CQzRBYkJrdTFjbXREckQ1T3VHWTJaY0REMnNqZFF2bC9vRTl6SC9vYUd4cjBkZGJBNTliQ2FZSExqSHQvRXg3UzFvUnNiQ3czUy9pdHlpcTBtTmU0cm54OVNsVDl0d0hJZGxxeHU0SGRQTE9aN1YzK2VWYXNXOE5MYnozTHF3ZWNRalZWUkU3VklkSTRqb2o5RVhVa2RtMU5iaVpYbmNDdkdrdlRYRVd2dVltelZPTG9pOEtmSEYvTE9xa1pNeUVYM29ET2pXK01WR3pmQ2hBbURJd0YvT1BCWnVOZTFSQU5UeXRmeHBXbS80MStIUDRRN3Q0dUdlOE9rbHdlTjJ2ZkV2OUNnSWxCeHFzZXdTM05zR2oyWkcxWmZ5MS9XWDBobnJoeFUvMTNJaDVUMC9INnNESXdPZzBYb1BRZG9ZUmdkempPekpOT3JZYmJ1M01sc0JUUExGRitmNUhCV3JZWGR6YUQ2ZnB0SC9LbDI0byszb1pOYTFoME1KZ004amlZdFE5R1hwbWUyRGVyalcxN2s2WHZhVlg4b3F1UDk3TmJuRlR5L3M5MDR5STlYT2RaZTJ4VmEyV1M4S0hQWFRTS1pLd0VWNGo4dmVBbUFYejM2WVZMNUV1YXVtMFRHaTBMSXhiTDlQdXNtZi9mN0xGNVhNOGhUdE8xZDdmUUwxUWY5VGZ0ck9DRlRENWxYZXZjZXRtMXozSkduOHN5TEQ1SEpabG53OXV0VVY5VXljZnpCT0xaRFNhd01nR1FxanVkN3JOKzRrcmIyWmpLWkZJN3RjTnlScDJMYlRyLzlqUWFGaFdaWVBza0pYZlY4b25VRk01TE4yQmg4bVNEY0xWKzk4a1BxcTFlK2YxM3F5Z3QreUpYdjE3eXNoNk1QK1kvM2ZlK25md05WdjduOGZaLy9uM2svNTM4K1lIMzk0MnYyTVQrb25mMDJXWjFsZGNjR0h0LzZMSDlhL3hEckVoc3BjV0pVdUdYNHhpOEVnQlR2Y2RzclBiNXd0dDhMZi94NytQR09SOS9aYllGUlg5OHZUUzhtYlNnTGpON3pvbXBqQU4rZ2JWM1lYSGIvTVFydzRjWFJzS25FY000bU9MeFZNYjQ5UytiQjUya2JNNExJWVZPcHZPQU1Zc2NmSGl5U01LWlBGa2trTjRUZS84NXRvTTV1WjdqZGpta0VMSnVSYWgyanpGcU1vOGcxMjlUUnluQ25GZE1FU1IwcVRFN3Z5N0k1dDl0UE05TTlyNjhyREhaVzRXVmMzdWc2bEhNM3YwMGlGT2FkdW9Od095ekdSTnNaNmRPcm9OM3ZGSG54a00vM3hZS0JnVnQwOE5PNUt4UnppeWQ5RDI1N1d0RUdMQ21PNHkyMjhtRnEyOVloVnpIVVJxRnRuMmVXemVDWnhZZGh1M21pYnA3YXNqaXRpVkpTdmgzVWRyWjM0S3FnQklzNUhqV2xDWnJqWld6ckt1YzdEMTRFamhjRTZEbEE1dTdjOGVIUnhmV0hIaURyZ1Bha0k5My92UzJqS3ZlKzZzc1lhSXJuc08wOWpjSUZjeUJyeTF4R1ZZU3hwQm02bXk4OSs1TkJmb1N6ZHZ1cDlJU2pkNTdCalcvQ0N3L3MwN3ZkZTFQd3RYc1gwbklZTjdyYjc3RnFIWHoxZWZocU4yUGxXY2FRVWpZWHREYngwOHdxVHRqU1FjZEdoeTErT2JZeVFRQURqNTJESlJZb2g5M1dXZmZrK2UyQkJxSzJ6dytjdFh3ODA4S2JyWldrbEkyMUwyUGNXa002RFV1V3dMZStCZGRmRHhkZEJMRllZVjVJTC9nK3BGTHc4c3R3MjIzd2kxL0FDU2RBTk1wZ21henNHMFZWeUZlWGp1OWllbm5PL0dGOXBYbTJzWVNHaktPMEdjRGhUZE5IcjlrSHhUWVBiaW9KMVNkcDNGejQ2cWQwN1ZhK2ErK2k5YmNQNGc0ZlJ1bEhUOEF1TDkzN3BacE1rNXl6a0piYjd5ZmYyRUpmNTg2dWRLZmNOUGUzN2ZFODgyREhGWTB0aG1RS3lzdkE3QzBXaDRHMEI5dVVvZGsyNUtMQi9RSi9sNjhlOXRWWVNsSG1aZm5zeXI5eTdOYjVKSzB3ZGpkNmRzMzJqOTUrVCtySHNZSkUyaXV1Y3oxQTdRdjlQdWRsLy9TMHFoMVpRUFZ6SkFBWHpXaWRKcVIwb1U2azl2dkZyWldpMW1SeDkzQldqbXBmdGU4SGVPdXEvZmJYYk4rSXQwbm4rVnU2amFldFRrNDRJOFlEbnoyVVk0ODlEa3BQcE1PZXpvcTB5MnZiTnZGeTQyc3NiRjFOWTdvVjdYdUZqYTJzL2JPNVZYY0xZMjN3dHRiVGRmOWRPTU5Ib0pNSjBxKzlRR2IrRzZod2hNeGJjMmorOWhjWmZzczlKUDUrUHpyZWlRcEhnOEs2MTRwclhTNi9PcktvV3VCTlRkZEpqMEUvZXVHV3h5Vjl4UTdiUHZ1SGZjNFBGL0g3L1hmQXFtZS9vZzNCT29QQ2NQY0poMVJ5eEVIQi9KMFREcW5FODROK29TREdudXF6S25HeHJSdk0rdGsrZVo5OEhsSzVZRTYrcFFwMXluNVl3bHRzODNmYTI5dUxyTzA3aUlQdTc0SFZqUUVIQTFqdjA5ZHBDbTJoSUhaRDMxKzZSVDgvWHltVTQrQTNiS1B0ZTc4aWNkK2pRWnZCc3JES3k2ajg3MjlTOGVXcmd0ZDZQbGpCNi9lMXdGYU9FMVI4dFNGeTJ2R01mdjFoT20rOW00NmYzNDZmelpON2V6a05aMTFKNlNYblUzM0QxN0JIMXUzNXJRN2I5WTVoZ05iQzE4RFJ3T3VGcjcyNVp0bFN4YktoVzk5UWxrWEZTVWN5NFR2WHN1bm1lNGd2WElyWGtjQVl6YTRETEVwWnVKVmxsQjE1Q09PK2Vqa1ZKeDJKNm9QeGlhdHV1cWpIemM2eVdCa25UaitGK3FybGZMWEVZOHFXWUEzdGhoS1BtNnVXTSthSm56Qm4rYXZFVS9IQnNRWnJlL2VLVTlqMFV1OVNJZHIrV0I4WDdUZVArdGcrbFNVN2RtUTNadmNLbnRybE1iWHJRcmgzOVZsNi9yN2RuNXAycjd2NkwzM3JQV2RxYjlXVS9mMTh3QWFWQVh6ODVESG9ybG1RSHc5V0Nxd2tyajg0cXAyZkc5N00rYVZ0bExjbHVQK0ZESGMvbW1YVnhwMTl3bzdqTUhMa1NKcWJtNWs3ZHk3SEhuc3NjK2ZPWmRTbzBZd2ZQd0dUYitINHd5eis3Wk5SVHBzYXhsL3FVdjlZaU5SaUIrUDEvZVpZK3U5WEZIMzdXQ2xGZFhVMTk5NTdMK2VlZXk3cjFxM2pzc3N1NDFlLytoVm5uMzAyeHh4ekRGb2JacDAwbmltank3am4rWFc4dWJLRnJzNmd2bDVlR2VIWXFjTzQvS09UT0hSaU5iNnZzUzNGbS9NWDh2cnJyL08xcjMyTlgvLzYxNXg1NXBrODl0aGpISDMwMGQzZVJPSDVYRnc5bjRzWFQySVcyM3lqV2NjVjFmRk96L2NpTG1OaEhrWmlRVHRQTFhxSFNDaW9aMlp5SGxvYkRyYXRub1RHMk0yNzF4ZjZ5M3ErNGpDbGZkYWtHakRKUnY3ZjhGT3BWR0h1UzVTaDJoUnIzcHBOVGRsNFhHV2pnYjRxMXU0OFJoWUM5V3Q3OHlQTGl5cDlsMTcyamFKSzMydGZ1TEhIWmNQMmpUTGNTSVJ3S0lTcVVrRjNoamJrMXJ4Ty9wMU1VSGUwTElsN1dDU3VXZlJHVVYxdmE2OTVWc3BmQWM5K3N0djVZSHY3NzE5bnc3L3U2RUhxVG1NZm9BTllFT3dpM3d1SFh2aTY1RnV4d3puVEdqaHJobUhjK0prc1MwL205eTg3ekZ2V1NNZVd4Zmg1SHgxeXdIV3h5Z3ViZ2htRHIvZGZiL2ZrZVNqbTlmSk51b0N6ZXRwdWhQY2RlQm9DM1B3K0ZnOEswRDVXZVRXaG80N0FaTExrbHl3amRmdGQ1RjU5SXlqMzFtMGtkdDNWdUlmT0lIVFVFVVRLcXRGZFhZWDF2TDByanFadVdMRHZiN0JoL2o3L3l1T0ZyNEVVZFBNcTBya3NiMnhhZzY5OVBqVCtJT3BLS3lnTmhYRUthd1k4M3llUnk3SXQwY21pclJ0NXMzNDlSbXVVWmZjK0hzRC9uSzU2ZXV5N3poQnRlcC9YREVUMFo4OFB4aUNxeXFPYzkrR3B4S0lobm5sMU5RM05DVXBqSVpMcFhJK0dRajFQWTREaE5hVmNjUG8wVXFrOHo3eStobzU0aHBLSVN5clRqZlhBdlJpTHpCbWJ0elBWdkoydEFYeGNLeWlYODlvQzdNSmFlUlBzZnQxWEF4Y0g4RHE5Z2JBZ1hUbklqN0NqVzdlRXFneE0zMmJJT2Z0U1psZ1lrOFdReFNyTVY5NWJaZ3Q1d1dkMU4xTW1vNUo5KzVOU3hkY3ZxV3pRTFM1WVlNZjhZSE5SQTFiVXg0NFlxaTlwb3VhcUpxem9lcnd0VCszWExpV1Q5eGxWRWVQMEQwL25hN01PWjhLR05kUi81VTdpODVmZ3hrcFFKYkhkOTFSUXdjYXkydmR4cXlzb08rczA3T3MreFROVmNYNzU4czBzcWw4TTRSSnNKNFp2K3VGdWZQMExSWlVmTG5ueks3MnJyNWxkMnV6MUNyT2xqNmNNL095dGJyOWRFamo1UjBmczN3VDk5aU5xWDlQdzBtODl6S1ZTbEhaTHNlMVhVR3p4NlhmVVRFb2lsRjE1UHVIRHA2TENPMlBEbEY3d0VVdzJSMjc1ZW9ZMU5ITlIxL3BReU9pekhpeWZGRm9LdnlSVStncjVwT2JFMzhDY3ozZi9JNWYrcUtqS1RlZndiUkp2cEJ0bFcwOGR0RzFMOTQ3M1o3My9yR0ppakNHelpDVnRmM2lZMUlLbFFYOVRhenZWVjE5SWVQSzRJUnN5UGYzT2lsN2x3M0xnMUZLSUhtVFQycG5FOXpVamg4VTRxaVNKMnJDV1ZEK1dxbHBybEZMWXRvMjN5OTVhbG1XaHRlYVNTeTZodHJhV1cyNjVCZHUyTWNhZzM2ZlBPZWhETWpnbzF2czVMdXJhd0E5S1JuQlp1SXFFOGNsYkJxZWtjSnZZaDI3cnNsTk8yUG5ueDFzZ1ByU3ZJMTlyN0hDRXQ1Yk41enUvK1NrLy9MZHZNSFBDd1pSRVN4aGJPNUxyTHdnNnZUdVRYU2hsRVhKY2xxeGZ3VS92dnBtWDU3MEMwUkswR2JwUjZyMnVEdFJVUldpc0lWY05ZUStzclJDZUZuUmhwOThBZjRQQ2RMUlJuV2pFc1QwcVRJYXNoamEzRExDd291T1prenFQNFYzUFlzVTYyWmc1bUdINUpxYmJHMmxOTzZ4emptVmJTNG9aZWdPcHJNMXIrVFBRcVZZT0xWdU1jVnhlajMrVWFDNU5iV1lUdFVwajNEQnRoTWc0VVZyMjAvM3QvV0pDOXpvbkZJNCtpQXRqMkI2TUp4cUZnMGZBK1I5eStPd1pJVVlQQzJaVStUN1lGb1g1aXYzL3AvOWc3dHRGRlgreFcrV3lBY3VGVjlmRGxqaWNNVW54THlOVGpLeElrUjBOamc5MlhsSDlnQ0cydHBETWcrQ1NOeWlXdDAvbisyLzltR2ZyeitUVWtiT1pYTDZXbUpNaTVjVlkyeldaMlEybjhscmp5WFJtSzJRZkZTSGV4ZjdBY1NpRjBacnlDUlB3T2pjVHNqWmplWnJLYWRNSjE5WFJObUUwM3B3SHlNUTA3cGdUaUE2dkRXS0E5R1Bjc1FxVExxcjBYZEVjRytSSG1PelZiMXRLTWJKOEdPT3FodSs0bHhpak1aakNVbE1UZkJWR3BNZFdEV2RrZVEzYWFCNWMrQUl0WGEyOWlxR3VablFVTW5BQzJMemo4WlpCbXRyLy90OTNGTmRkNkptdGN0Y1VBOTYrNkN1SEZGbXRyOWo2eVVNZk5IWllhQmlHUWhiZWk2OXdSU2JKbEZObmNXZE5GUmtmcnFsTGNzYThSOGk4K0FxUlVBaWw4NFhmNmIvajdTaTIrSFU5YUpncko0eFRPb0xReklzWlBtSU1uNXVvV2ZMMldGS3R5eWpSSmFTbkRHZlcwVWZ6dXhWbjB0RGFobE16TFZneW9UMEd3K1Zpek83VG83WnYvekhvcmxVTm05cnlRWXkyZHgxdktxdEpabldmeDh1ZStjdHY5cjdmWmc5YnFXd3ZKbnA5dUwvKy9tNC94dS8vajZJcWYyLys0eUxGSHlHTDZEZEtZWXpHRGxVU0cza2RCcGhVZUdwVFk1cUhuMXZIVDI1L2xMYW1UdXl5S0ZwcnpINHFBRG82T29vcWFTdW05R3d1ajhaUWkrS1R3Rms0dEJoREY1QXphU0p2MzhlbXhROWltUnlWdFE3V3FBakc3K0Y5OUozOVU1L1UzWHhzcU5WL1JmOTZjY3V3UVg2RXpidjlWTjZOR09pRHlwMFUvZnlTd1R3bjQ2OXI0dXF2YTRwNGtEc0MxYldHank3TjA2cnpaRXR0anV3MDFNWHliRHZNTHF5QktMb0tFdVJ6WkI1K0FuL2pKaUt6enNVNTlraWNhVk1COEZ0YXlOei9NSmxIbmlTLzRPMUNRT0crdVV4T0cwcWpaRnFqUWxHeWMrYlM5dGt2VTNMcHhZUlBQaEc3YmhqUmN6K0dTYVhKdjdPTTlPTlBrbm5tSmZCMUVMK3FXT0lqYm8rSFVGdEQ2ODl1Sjd0aEM5ZmRkUk1UcGt6bXZETS9odS83T0k2RDUzbDRub2ZydWp6NTlOTWNmc2hNWGxvMG4rbnpuMkxWNlovRzM3Z1Z1N29DazM5dm5lN2VMNTR2OVoxK2RFSWt6Ym14QktjU3AzNUZodHNlei9MUWN4bGFPL2FlQjB1aWlrTVBzcm5pdkFobm4xRkJZK3hnYnR6MmNSN29QSjJXZkRVb255RVFvYkpYUW00dnkyRU1ybXNSalRuQjNyeEtvVlF3THRvZmZhc3Jicno5Z0Rndld6czlacTlPTXJrMlJFWFV4aGhZM2hETWFYY3N4Ylk0ZEtaOTFqYm5hRXY2ZlJhL3VkalMxN1d0b2pyZVRlZk1PWUR1RjhHZldsSlNBU1d6S050ZUphMzdNT215YmRRZGNSZ0FWZTlwRGZSOUVnVXo1UXhsbHIvajdjc3NINnVmZG9ZUDdlc0tidFBMUDY0ZjJtVkZuZk9Vb3FLc2dvOGZleVpyUTNIK3VmWWxFdFpVSmcwN21BcmZKN2w1TkNxemh2SlNDN3RRZVByRzRIbGdSVVpUVVQyV2RtY1NEMjA1RE5PYTR2S1poeEIyM2Yzd2Q0QnV0Mmkvdlp6c3FzTG5GNG84azFNa1hvaVMzK3hnbGVvZ2JHd2ZaZWJQWHhUbWh1dGoxQTZ6K01sdjB2ejNyU25TQUVjTnh6bC9Fdjc0Q3J5Y0QvRmNjSkQyRUMvV2pBbGk3Nzc3WXRNOUd4VHEwVDVMUlhjTlFsT2loQmZXVE9USVVZMGNYTmRDMVBGMmVkNFV3aDRyUE4raU1WSEtQemVQcGpYVit6bGh4VFl1OFVFU2lRVEpaSklQZmVoRE5EVUZFVU44M3llWHp4TUxoM0dQT29HRTBUaVZOUkR2d2lvcHdUS2FjQ2FIVlRNTXI2V0ptcGxIa28yRTJaYlA0L3MrbG1VeGZQaHdoZzhmemh0dnZFRXltYVN5c3JMYngyUmJNS3JHNHF5alhhNzllSmdKRXlPOEhxL2d6azBqZUtHamdweTJ0aS82M1hIOXVMYk54T29SZlBLUUQzSGxrUitseksvaXNXYzNjZWY5UzVuM2RoUGFNeklIdWVEU3l5OE5VbUllNUFuaXBReW1scXB6b0p3SUJTZ1ZKTDNSRUlubUdEVzJNSkZTZy9ZTEJabmFKY0M4Wk9JUGxNdm5zU3lMNnBtSFk5WFdZWEo1OFBLWWJBYTd2QUozeENoUUNydXlDcE5KUXlnRWpvczFySTZxRVJGczFVSFd6OVByYU1mN2N2L1hHaXNhcGVWUGY2UGttQ09vK3RRbk1OcWdyRjBxQUlWZ3F4aEQ1MU12MHZLbnYyRkZvMEZuaVBoQXNlMlZjTFkzeml5bWgwSjBhTTJXd21MSVEwSWhwb2RDbEJVbTBQdEFwUEI3RXMrMis3ekN2cGVQdkx6enNYKytVOWdMRTNqOEZWaTBFcjUyT1Z4MUx2emtENURPRGt5L2YydkM0Njl2Yk9PZmE3bzRja0lwSTZ0Q2FBTnRpVHdSMTJKc1RaaVJWV0VzQmROR3hYRGVwK0dSeXZrOHM2aU5lV3U2Z28zUXhPQmlXWklHL2FnaFBVNFNRUnpZUll5Q3NHLzQ5cFhWUVBEOW9BdkRWcmcxZFRtS0xtZlB6d214UDlubFpaUi81QlRLUDNJSzZTWExhZnpWLzlIeHhMUEJhc1lCY2x6VjRYeG4rdldjVkhOTVVJYzF3ZVFOdjZXTnpkLy9CUzEzM1E5RzQ5WU93L2creG52dlpBM3pyZ1ZCNW4wV0NCblBRemtPYnUwd2t2TVdzdkwwaXhoMjFhY1ovZU52NHRUVzRCbWZZYUVxYmo3OHUxdzA1aXgrdXVJMi9zRkN5U2hpNkNpeVBpeHJDTzc3WklDOFVkaU9oemFLbTllTTQrRnROZno2b1BXY083Nk5HNy82TXJvTHVoSmhBTXBMczFqbFFCNmVXRlhOVjFaUFlIMVhLY3Ixc0pSSDNrakhwTVlsNTB6Q2ozMFNrNTJCMmJpSjB1aFdTcGE4VFBpWjM1R3ZHVTFzOFl2a2pqK1hYSHdiN3RMWFVYNGViS2V3T1RTd2ZWR25HOGF0WDRYMTI2OWpLbXF3TzF1Q0RtRzdCN05xbmU3OWp2ckE5MWJCeUl4dFMvbDFBRENBWjl2Yy9zaENQalJ0Q3BYakZhRjZpNWFtbGJTR09xZ3VQNXhtejJWWWpjRUx4Y21YeDRoV0pIR2RGU3hZTVpjU0lseDgydlg4NDQzTi9MOEhYOFp6SEVuVVFhbzYxTUduSmp6S2x3NzZMZU8ycktYbEZ5RzZaa2N4R2Q2N2UyS2hXaDZkb2FtOUxFdisrSEx1YXJxTVcyZGZ5NXF1U1lWQnJmNDkzaDlPYk94RnhsYXd2aEpVN0QwSDZpckRyR0dkekpyWXNmc0E4ejU2dUJ0OUJ3ZVhLTDQrMGVFVGRSYU82bDV6M08vMFNEN1RRZUxSZG5UY2w3RkFJVVNmK2ErbUZ3ZjE4VjFXNU9tN3NiNURNbGwvMWxuTjN1dTBXRDZ0OFJnLytzdkhJSllCNWU4TWNLQjhOcldXQjg5RnMyRDUvZG9OZWVXUFBqYklVM1QxQVpWL1FxRXdKeDczVWRLWkZLLy84emxTcVFSdDdjM1lsczJ4UjUwS3dGc0xYOFhYUHFsVWdtUXF6a25IbjBFMEVpTVVDdmRqVzB3Uk5oNFRNKzE4dkcwTlo3YXRvU2FmUml1RmxrcmdBZFl1TnloVThLOVIxS2NibU5QeUZyOWRjeTl6V3Q3Q3Rtd3FReFZvby90bmN5RlJ2SXFrcURBS0xBL1dWTUl0VlZDVzhwa1dyZUhCTC95WU1STW1ZVlZYN0g3RDc2UCsrVFUzMUh6Zzg5b0VtNmNxSzVpSGFiWW5xQW5tNlJwMlBxLzZaWUM5WWJlZjdsai9RSyt5Z1RFR1d4blNHMEtNOER2SVkzTmU0d1lpZGg3ZktGUXY1eitlWE95WHl5QWY5ekV5OTNCQUZWdjVNTFFyUWdybGVCaHRNV1ZNUFYvK3lFdjg4WTBUbUx0bUNocUl1Y0hDbHBUbllBRkhURnpQbFIrYXk2MHYvUXZ2YkI0Yi9LNVJ2ZXJuRldMbzk2a1lQbkNKaVRIb1FxQjVsTFJGZHl1TkUzV1NDUDFkUnpPUUN5aytQcmVWM0d5TGYvcFYySUJWS05kTllZT2Rxck56QUxUL0k0VE83OHlxdlgxZW8vQU5sTm8rSHd1MWtnelozYitsR0FQeE9MendBcnp6RG16ZURBc1dRRFFLcDUwR0kwYjAvSm95QnBxYVlQYnM0RDAzYjRiWFg0ZXVMdmpvUjZHc2JOQmNyN3BRZEJ4WGsxYmpTL0xta0lxc3VXOWpPY3U3d2lydHFmMXptQU5STFpEaWNyLzJoV1JXYmFEeFo3K2xOcDZrOUNQSDQ5Wlc3N2JSN0k2c2tNdmp0WGFRbkxPUTVsdnZJN1ZvZWI4Y2txVmszZExnYVBjSDZ4aTNOQmsyYnpWczJLdzU5QkJyUjdHNnAvTElGSDZ2dmtPejFHZ1NVMEE1WURxQmRPRXJReERkUExWdjVZc0ZLR1Z6NXVibnVHVDkwNlRkYUNHdm1MMFdJUU5aeEp4NStQQkJmVjRmbEt3OW9HcE1uaC9rbCtHaEJzMnR6Z0FPaG1xVEwvcjBUUnZESzlsTzdzbDFVbnJFRkc2Ky9tck9PZnRVNHJFSi9LTWp6Y3RyVi9GcTA0TXM3OWhJWnpaT0VPYkRDZ29xcXdqbThSWUsxY3c3Qzhnc25JZHluU0Q0dldWanhZSmcyaW9hdzI5cG91MldHOGpPZndQbGhvSmdHa0lJSVlwV1Y3TG5HNGFwZC9VdmZPT3lpUUFrTS81dUcwTWR5TDMvampYWTEyUjRjaEdJM3JYbGVmOGxLV3A3WTErOGZ4bjhmL2ZRZnNQLzRqZTNvVndIdEticzhrOVMvWk92WVk4c2pHLzRmcmZYR0w1L0o0Y1ZkSFQ0d1JySGlpOWRSZW1GWjlQMnZadEkzUHNvS0VYOGp3K1Irc2RMVkgzM0s1UmZkN21jbkdLNC9teUxZV2VmUW1qRU1KcnUrd2NkcnkwazI5U016Z1FCNTYxSWhQRHdXaXBQUHBMaGw1eE4rVkhUKys2YTdFRk1aYVVVdG05eitJVERhV2pkeEtwUW5IdG0yRXhjTVIrQVA4L3dXUldLWTdkdTR2QUpoek4zMVZ4ODJ4ODhjM0ZNTngvckEyRnZIemN3SCtBdWwrTGZTTklDZkxBNklUOGUzZlZKVFBxWXdtTmRCRHNzV1lPbURudDl5UlpXTE0veVB3OW5lZnlWTE1uVTdrZVd5V1I0OHNrbmVmTEpKem43N0xPNTVwcHIrT1kzdjBsYjZ6WW1qcmE1ZWxhWUs4K09NTTV5YVgvQ3BlM3BFTGttQzJYeDNuV29Bc3V5Y0YyWEs2NjRndGRmZjUzbHk1ZHowVVVYc1d6Wk1vNDg4a2grOUtNZmNlZWRkMUpYVjRldkZZZE9xT2FYMTFiVDJwbWhzVDBOd0lpcUtEVVZrZUEycmczR2FKcWF0dkhqSC8rWVNDVEM4ODgvenlXWFhNS3laY3M0NFlRVHVPS0tLM0JkZDlEUGpSU0R6My9GVi9iUlBXN254aHA5V1lkLzkvckN4RmUrMXFNYnNFS1IweDVqdGNmUjRRcnk1a0Z5eHVkeU80UlJGdlhKWmhKdWxKQ3lDMXVFeUxVaytsNXlhWkd0Myt2TmRWd1l6OHBuTXVUVGFYWXJJSlFDWmUyOHpPUnlFMElJSWQ3ajZNTW04VVJESlMrL21pUFZzQXJQeStLSEhLeXdnNHE0S0VCcmd5L1RMQTRJL3I1MjdTc0xrODhRT213cVZKU1JmZko1a3JmOURuOURQYXE4QklEYzdEZndOMjZtNVBwcmNVOCtEZzZiaXZmS0d5ZzNJdk4zOXRyQ05DZ3JhRHZPMjdTR2xtU2NJMGFONTdDUjQ2a3RDYmJDYkU4bldkeXdpVVZiTjdLdXRRbGoyVHQrUit6SXFLUXlIcTh2Mk15eE0wZnhvU1BIOGFFanh6SDM3YzA4L3VKS01sbXZweWVJemtTRzErWnZZc2FVV2o1OC9FUk9PMlk4TDg1YnovT3ZyeVh2ZlhEK3JrN2srekN2YlA5TE5YMDFudDRtR1dkQWZXSHprWVA4Q0YvcTFxc09hekI4KzJVUDNjOTkrWmFHa2ZGOUtBV2tTQlI3S0RpVnUzME5vZHF4UTJKNFNwcTY2eHNvUDdzZFBJUE9XS2lRR3VBOHRIdGNueU9tanVES1dVZnp1VU5yeVAzMVVkYmVlaDhrVW9US0t6QmE3OXdqYm5zOEQ5OEhwWWhPblVqTnRSZlQ4S25qK2VPbWwvajE0L2VUelNkeG91WDR4dUJMUFF5QVZmSDFrZ2lpYUJUZGZnWEZGcC9lZ0ZWV1F2aklhVGpEYTFEdmltMnV3aUhjeVdNSlRSMVB1cUdacWxTYUMrSWIzSkR4VC84cms4T0xJWVFkZVE0dnFUbnhOekRuODVKcGhlaVRhOU9nSEp1S0M4NGdzMndkeVRsdllZRFlDVWRRTWVzTWxHTy8veUxlSXJmeDgxL3IxZS83R214TE1Ubm1NcGxnUHp0allHTXlqOFpncWY1ZHgybU13WHZYM2xyYjV4a2xFZ2tpa2NpTzErbHU3SHZzWWJCUitCaCttR3hrUVQ3RjkwdEdVS3BzNHRySGtZSGdidVFKalJXTzh2d2JMN0M1dVpIcloxM0Z5WWNkVDFWWkpaRlFDQXhrOGprNjRoMjh2bVFldHp6NE8xYXRYWVlWSzBNUDhmYURNdUMwS3lKbktMTGxGbUZIUTQwaVBNckg3NEJjclVLM0s2eDhXSTBzQ2FuaFpRN0prdkdFY2xrcTJoc0pHWi9JOEpHa3ZOTjVyR1VVODNTZWRSWEhFV3ZmeXFueEYxQWFubll2d2RlYWd4cVdVSzdTdkZaNk90bHduaFg1NVpURk03d1JQZzZuSnNIWTFEYnk1YlcwV0tYVVpWdUo1Wk84TmhUVGZIc0VYR1ZoVUl3SlpUajFLUGpTMllwalIyUlFCcnptWUxwb0VDRkI5SlkyWUlWZ2JRdXNiVGJVVk1BMFgvR3BWNkN1d2VDMkZGTFpZa2MveVNESkxIUm1LM2h5NHprOHZmbmpsTGx4d25hV3JCOG1uaS9EMS9hTzF3a2gzbHNmMjV1U0NST1kvT0V2c3VIbFgrSWNOWjF3WFIwcTd4RTliQVlkRzZvcDE1T1lmTzQxS052cDl6VXl4UllMLzk4ZlAzaVFIK0dDM25TUjBKbU84L2ZGTDJNcHU5RGNVaC80R3pVbGxZeXZHa0ZwT01LbTlpYWs5MWtJSVFxS3JKL2M2MjQ4dzVJWThkZm5jZExHalJ4MjV0bjQ0VENWZjMySytPcU5VRnF5dlRMUy8zMTJRNzBkb0JUS2FEemw4cTlUcXpudDRDcisvdXdMZEhhMHMxVlBJS0pMcU11MU1uL1JRbjU0OWxtOHVtSXpEMjFycHF5bXRodVJCc1c3V2VwOVQwTy9wR2FIbjVKRUYwT2dtQXA2N296UkdLTXdTckZpWFN1My9Xa2VkOXkvQUkzQ0xZM2d5UVQwZlhMc0x6Tzlhczhad0ZaQldBMjdVSTVwWlpQMVBiQWRqTkZnVWozdmREMWJ6cEVZT3E1NjVhaEJmb1RQdk9zYWx6cWVHRUwxQ0FNNXk1Q29kbkNIdVVSR1R5WGZaTkhadGhxZmREQm50eWdIQ0lPSkdmbTNGdUF0V29vMW9oWTFyRHE0aGx2YTBJM05HQys3L1M0dEdlSDlhSTJLbHVCdjJFVG5EVC9IcnEzRnJxdEZPUzUrUnlkK2ZUM0d6MkpGeTRLK2wyTGJiODhZak8vakRxOGwrZGZIV2JlbGdiT2Z2WmRGYTFiejRXT09wYldqQThkeDhEeVBmRDZQNjdvc1hyYVU2U05HOC9MOE41bSs1RG5Xblg0SnVUbnpjV3FySmI4TXNPK1ZOMVBlbGVXbHVWbCs4MkNhdVcvbjk3cm0xbEpRVjJQeDBlTmRQbnRSak1rejYzZ2xmUnkvcWIrQU9hbkQ4STBEU3ZZRkJ2Qk4zMXhqYUgrWFZsTC8yZnp3RXdkSSt4L2FVajV0RzlJb0JZNmx5QmRPMXV6VlNYeHQwSVd3U1gzWkpWeHM2ZnZDVzAxeUVRLzZlN0FHRE1iWEtNY2xPLzlOdU8xT3pNZXZSMmtmVXhnajJmdjRlTytNRGFVNXY3S0p0MVBsQUp4ZjJjVFlVTHBmUHN1VE91ZWc0SVRDVER6OFFqcktKL1BpeXRjNUx0SEppTkdIazA1OGhxNDFmOEExRFVRSzI1MWxjZ3J0aktSczhxZEpSYWR3eXl2citPTVNpL01uZllUUjB6K000NGIzeTZXVFhoUUNUNzAzL21jaGkyVlh1dUNZUHAxM2VNZjNTN25sejJtK2QyT0t1QUVPcmNXNVlCTCtwRXE4dklGNEx2aDg2d0RLNS8xY1BnMUY2YnpMMDZ1bThFNVRIWjg1L0IyT0h0MkFaV2t3aW5UZUpaNE5VeEhKc0w2dGt0YzJqS08rc3lMWVExenNtQ3VvbE1LMmJkTHBOS05HamNMM2ZacWFtZ0RGdURHamlaUWNUT3FvNDdHc29ESVk3K3JDc213cUs4c3h2c0VvaUZxS1JHY0hHOWF1cGFtcGlaRWpSekpxMUNnU2lRUzJiZS80TEdOTXQrTGFuakRONGVKVFEzenExQWpKYUpUZk5nN2pEMDExckUxSGcwNm5YUmVERzZnSXh6aHF6QlN1UGVaTXpweDBORnZxczl6NThDTHVlMndWVGMycG9CeXg1YndYelgzMVFLN0xHbDhWTGt3amUyZjBvRUNMeCtNc1hmb09yV1V1bWE1bXpKUnBvSDJ5YTFjRmc2aTVMTXAxMGVra3h2TUlUNTRLdmtkbTZSTGFLandXajB5UVNTZUREVE1HN3VCUmxvWE81V2o0MmY4U1BXd0cwVU1PM24xU2xqRW9TNUZldm9hR24vMHZKcGZIQ29WMkJwOFE3NSs4Ny9yWkFxWTRMaVlNTDJXQ1J0b0o0UWhUSEhlM2VyQXNidXBaNTVJeE95OGZZNEw3cjY4TG00UGFzTGtSdnZHLzhPa3pndWNHcXQ5ZkVRVGhYOVdRWWsxak9waWphY0RUd1hObFVadnFVcGRKd3lOODQ3eXhWTVRlZXl2eXRlR2R6VWtXYklqaitaSkR4SUhubDBkZU1haVA3emR5aXNRQTNVOWkwY0pFZnkzM0FpSDJ1Vzd1K1dUWGJ5TCt3bXc2bm5xQjlOdkxCdnhhZXZMa3V3cDFPdy9iY25DVXpiYmI3NmJoWjdlUTM5S0FYVjBWMUd1OVB0b3cxUmlNNTJHWGxXQU1OUC9tVDNRODhSd2p2LzBWNnI1NEZRQ2U5aml4NW1pZVBPa1BLTzZTakNLRTZITitZVURFRGVYWmtJeHkzc0pEdUhSYkV6ZFAyVUJkYVk3S3N1eU9UcE50MjBMODUrcngvSG5MQ0ZBR041UW5iOVNPOXpnd2IyQkJwNGRSUGxsdk9Mbnc1YmlORlVTZi95MjVOVzloSzV0dzAzcXdMSnkyclpUWUVKMTZLTm5LL3lRWEthWDh4VCtqOXRRQllneTRJV3lkaCtiTjRMakJvbElqOVV3eEFObmFHQ3dMc3BrODE5NzBDRGQ4N2tRK2VmSTFyTi8yRnF1V3ZNNFJoODlnUS9aRnFzeVIxTGMxVUdPWHNyNmhnV1JYSnhjZGN6RnR5dWVCVjFidzlkdGVJcHZKb3h3TExYbDNVSHJvWDY3Z0NHOGhxYjlwTmo0U0piOU52WGRUV0JPTVQ3bkREVFVYNUNqNWhPSjFjeW8zdjNVOUx6ZWRqSyt0QVp1L2NHaHBwaGNaVzlFWnlWR3YzanVueFZJd0pwS2pvalRUYjFIckxRVlRZb3F2VFhLWU5jTEN0Ym8zenFEalBzbm5PK2w2dUJXLzA1TzVJa0tJdmkxWDA0MlNDUDNKa2tKN1VGQUd1elNGcnkxVUpNZk5UNXdLUnFFaU9ZeFJPNTdyYjR1WGo1QnpNY2dNcXhtQk1ZWVBuM0l1Mld5R3hVdm5rVWgyc1hiRENnQWF0OVZUV2xMTzRUT1BKeHlPVURkc0ZFcXBmZ20rdUgzcjhrb3Z6ZEdKQm1hMUxPZUlSQU91MFdpWkhIYmd0Y2t4T3liUmR1YmlySTZ2NDg2MTkvRm8vZE1rdkNSbGJpa0F2cEVGaUtLNGFRV1dGeFNBOFpCaFk3V0ROWDBTS2xxQjFrRW9XdFhIY3pRVEs4SkZsVVpISit0N1Z3MHEzR01zSUtkc0ZERE5hMFh2OHR3QlhkNUtmNlVvNHZKaHFMZmhsRElvMzZZaW1tYm11QzNVTGttZ1BJZFFKTU81Unl3Q1pYaDA0Wkg0bVFqRFNoUE1ITGVGOGtnR3BTMXdQSm5mTGZyVWpaK1lQUFFhWmRMTTdERkxkajRlc0N5YWNCMVV5QkJWK3QyTlpyQmcrT1VaVU5EMXFvdnQ3NUt2ZS90ODRTNlNONHFjY2JEMnRjN1kzZzUzM2dtclZrRlhGeno2S1B6em56QnhJdFRWOVR5UXVOYXdlVFBjZkRNME5BVHZmZmZkTUhVcUhIVVVsSlVOdXZQb0cwVmR4RmVmbTl5dVpsWms5Vy9YVnZMS3RwaHF6ZGs3K3NJR2hBdkszdm05R0xyU1M5ZlE4TVBiS0g5ekNlVWZPNW5JUWVPeHlrcFF0bzNSR3AxSWtWdGZUL3o1TitoNDdDWHk5WTNJd3R5aDN1NFBUbkU2QTI4dDFoeHpxR0xzU0VWMWxYclAxSFN6eTAyb0xXRjRicDZtYVExMHRSaDhRRldEMlQ2WHhnSzJBVXQ1OXg3ekg5RE1NV2pMWVhySEd2NXoyVDI0eGlObk9WaURjUFBIMno5NzVLQStydy8rcCtUdGdYVHErdGVsb094SDMwcHNaZXVJYW1aZC9WVSsvcGx6MlJwT2N0M3FwY3pkOWpRYkVnMWt2UXc3b3ZncFJSQ3d0Z2piVVNXbGhXajRRUXdFRER1RFFocEFXYVJmZlI1bE96SkhXZ2doaG9BLy9MMitUOTdIR0VQSURjYUtjM25kclNCa0IwWTdSKzZUUW9nOTIzTGlMTEp6RjZKS1lpakhKbnpNb1ZULzVPdEVUajArS0Q4OGIyZWR1Ni9ZZHJEV3lQZXdSOVpSKzd0ZlVuYkZSYlI5OTBheWI3Nk5qaWRwK2RMM2lOL3pzSnlnWXFFVTVVZlBvUFNReWFSV2JDQzVkQzNaYlMxZ0lEeDhHQ1dIVENZMmJRSldKTnpISDl1RCs3d0M0eGphaysyczNMWVNYMmxlUGNqd2cvYVhBSmh6a0lmR3NLeHBCUWZYSFl4eENvRlVlekE2WVlwOEJrSzNONkFWUGN6QWFkQWw2TTZMTVlrelFKZUFsUXd5NlNEc3k3bm5vUlIvZVNyRDRsVWVlMTdTSGp4b1dSWkxsaXpodnZ2dUk5NnhsU09uK1h6Mmt6SE9PaWFHdmM1bDZ5TWg0dk5kVEJZa2krMjlEdSs2THQvNzN2YzQvL3p6V2JKa0NmLzR4ejg0NTV4emVQSEZGM243N2JjNTQ0d3pVQmgwWVdKblRVV0Vtb3JJanZmUXhvQUJWU2lSRmk5ZVRFdExDeC81eUVmNCs5Ly9qdU00S0tXNDhjWWJDWVZDM1E3a0xNU3VEczEzRnRmOWJlR2lubGRqVVpRb1JZZjJDeUZDRkdtak1TaXFMUmZQK09SbEJxTG9SeDlPdjExVWhYU2YzRk5VLzlXTDVHb1ZRZ2d4bEgzcmE5ZnU4VVlzcTRvUFREMWJ4cUJ3eG84amZmOGpwTys4SnhncktDOEZQOGhGcXF3VWYwc2o4ZS8vbk9qbkxzY1pQNDQ4YzR0NDAvQ0J0YVB2MkhaWTI5ekEydVlHbmx5eG1QSkkwSy9UbGNtUXlhYUN0SFpEUWN4aFNkaWQ2V2ZBVW9xU3FNdWFUVzJFWEp2SjQ2bzVkT3B3SE1maStkZlhrc2w2UFhwZjIxSkVJeTdMVm04RFk1ZzB0cHJEcG8wZ2xjM3p5cndONUwwUG5ydDcrVXYxZ3pydGJwSHNNNkRlVEZZTmliK2pLbTJvU1EzTVoya0ZzdGVqNk9WTmR1ZS9GcFFjSDJmNFZ6Y1RPektGVGhiMjZiUDBmcSt2M1AyRFR6Q2xaU3VOWC9rSkhhL093NDFFVVdVbEdIK1hHbnRoWXk2ak5WWTBSTW1weDFQMnRhdDRhNXpEVDE3OWY4elpNQThkaW1LSFN2Q003Q2tuaEJEdmUydkk1ZkEyYk1YdlN1Sm9qYkozbWFpZ0RYNVRLMTVUS3pxZkI2V28wRG5PVFd4MlFrYWZjbCtGQ1MySzFvYU5IZmtIK1lUSGlYZkFuQzlJb2dyUlcwcGhQQisweGk2TlVYN1d2NEFDdTZ3RXRNYjRDdVhZUS9KUFQ3NzFkcDlVZWJ2ZXRjalpzdFIrQ1FOajJ6WitvUTc3MkdPUEZZN0ZRdS9EbnNjK0JnVllLQjdMZGJIRXozQlR5U2lPY0tLMEdROExKU0Z1OXRhV05obzdWc0x5dGN2NDBzM2ZZdnFrYVJ3MVpTYWpoZzBIQTF0YUdsaTRaaW5MMTYwRW8zRkt5dkFQZ0gycGxZRk1pNDIxMGxBKzFpT3oxcUtyeWFWNnVzYmZZUEFqTmxhcEp0Zmhzanc4aWs1M0dDb1BWZEV5WXJGcUttellZaHdTbnNZTDE3RWNTSGlhVUhRR2lmQjBocmsrYXhJV1NkK3d1ZVNqVENoMU1KNG1qczlyem5Gb2JZam44cmgySlluYUdueHRhTXQ0MUR2RGlZV0gzc1JKaFVGaFlaU2lRbWVZMmpxZno3dXY4YThkbXRBakZ1bDBZWDZwWE5EOVVBYUFGUXErYjAzQnFrNURiQ1U0dVVKOEMwRHBRWmxwZ3Z1QXNlbklWdTcrZUgvbms3bWZscHdvaXJncXJmWitjVGtXbzg4L0grTm5TTGJIMGMxTndjTlpUWFhOT1l3OTZ4TkV4NDh1aEtHUXlmeTdlcnV4Yktqbm9CMzF4Kzcwa1cvcmFtVmJaMHZRQ2xHV3hOa1NRb2dpYnE5MXQzR2hTa3ZwYkd6RHZlc3VYS1hveE1ZdUt3M2ltTzRnODVkNjNZN1RQcEdTTXVaNUxrdVdaZGhjY3pKZXBCTWZnMEd4MlJpY3NpbzJMK2tpYmFxSlZrVFF2c3o4TEFaL21mTTNTUVF4SkJpajBOb2ltL2Q0ZStVMnZuZnp5N3c4ZXgwbTVtSmJDcytYZThHK1doWHJtL2lzd1JSdHM2T1BRUFhaclhtK25DUXhaRFNtSWtWMXZObVdOamxwWWdoVUhnaGlyYWVncmRYRi9jZ3dhaXVIWVp5RE1NZFUwN3hwREoydnZZU3FCbHhWeFBHQ2JZeVh4Ni9mQXZXYkM0OVpETmI0UUlPU3IxSFJLQXJRSFYzb2x0WWdBeWtIRlE2anJHalFCMUhFc1RLTjUrSFUxWkNmdTRoVmgzK01RNSs1bHhWYk5uUEdoMDVpMGVMRk8rYlU1UE41SE1kaFcxc3JoMDZjeEdQUFBzdlp6OS9IbG11K1R1SnZUMGhlR1dEcE5VbnVmamJMbjUvSTB0Qzg5ejZZU0ZneFphek5wZWVFdWZpY01sSlZFN2kxN1dQOHVmMXN0dVRxQ2dQME1yZC9oMHh4SGU0bjFyMTF3QXlJcVIzL2c3dzJPNFlDOHpxWXo5Y2ZRNFBGbHI2enZ2R3FYTU9EUGlNSHMwKzNUMHF6cThkUys2bHZGL0szTldCeDlGeGxPS3RpR3crMGpRRGdySXB0dVAyMFA2R00yZzhlb1ZDWW95WWZoYkpzYk12R3NoMUdIdlJSakpjazEvZ292bTRPWGhnZFR0bkk4NmtlZHhwM3ZibUZQeTN0SksxdHJIQUpqaHZhZjMrQVZrR1Q1djFZaGRmMG9kb1B0ZEtTQkdZTXc3bGdJdjZVNnFDL09aRVBNcmRNTUJYZHpiNUdzYkdqZ25tYlJ6Rnp4RGFVdG1oSnhsaldWTWZxMW1xT0gxUFBuRTFqbWIxKy9NRHVjVG5vYjVzS1l3d1ZGUldVbFpXeGR1MWFhbXRyeVdhenJGNjlta21USmhFS2hVaDB0aGVDYnRqb3ZFYyszb1V4RUU4bkNVY2k1TE5aVWtwUldsYkdwRW1UV0xwMEtmbDhubkE0VEhOek0yVmxaVlJXVnU3NHpPNzQ5UmRqVEJnYlpsRzZqUDliUDV4L3RGZVQ5T3pkQStVWWcyM1pqQ3l2NXJ6cHgvSzVZejdHcU1oSVpzOXA0UFkvdjhQc043ZVN6L2xTbGhRaDU4QytNR1hndGJlVlkrVjVsSXdhZzkvZVJIYnhRc0tqUitQVTFxRkNFWEpiTmdVVnQ5SGo4T05kNkhnWDJkVXJDQ1ZTeEtiTndQTGZDUXJIQVQ1dW96VldPRVIyN1FhMjNuQXo0LzczcHpqRHFsR0YxUi9HYUx6bU5yYmVjRFBadFJ1d1NxSVlYenFiZWlxaUZBZTVMbWRGWXdBYzVMcEU5c041SDJxMjkrUHZPcTl3MTdra25nK1dCWmtzM0wyZityenRRcVZnK3pGdXJ5UEUwejZKak0vRTJqMXZsT0pydzdiT1BBL09iV0Z0WTBaT3RqZ2czYlgyUHdiNUVmNUFUcElZbVB1ZHYzMmlucVNGRU4ybURhbDNsdE4yLzZOMFB2VWl1WTJiTVo0ZkJIcmFEeGVUcnoxc3l5RzlaRG1iL3IvdjB2WFNxOWhsNVRqRGFqQ2UxeS90Z3UzdE4yZFlEWDVubkkzWGY1UDJCeDVuN0MwL0lYYllqQjNISklRUS9TbHZGSmJ0bzRCN040L2dxZFpLL3QvVTlWdytKaGpBdkdkekxmKythaUp0cVFoMktOaGFLeThSZ0FzZGpnYlQ1YUJYUjRuV1A0ZTliQzcyMXZXNDRYRFFJUklLQVFydGhOSEhub1ViRHBIYnRKelFtMCtEN1VBK3QrZVJLV1BBc2lIa0JOL0xodUtpajdKczk2cG9CdHR4Nkl5bitjOWZ6MmJkeGdTWG5ET055MDgvaUlnQmI3M0hHS2VXTjdmTlpjeklZemp2c0Ztc1RXd2xucS9pcjArdTVPYUg1cERMK2RpdWpXOTB0MFBCU1M0ZldJZTg4UmFORDRWSUwzT0QvUEh1dWUwYVZBUXFUdlVZZG1tT1RhTW5jOFBxYS9uTCtndnB6SlVQVExDblBzb2d4bnp3RkYxZGVFMS8vRGtXTUQ2aStPcEVtNHRIV29TdDd2MHBPdW1UZkttVHJnZGI4TnM5bWNVZ2hPajdQaEFKSUNZT2xMeXV0OCtyVUtoUWZzZjN1ejdYMyt4WWJuQ24wWUhXTGxJS1U5aWNaWGp0YUF5R0VjUEhrTTZrV0xWNkNRYkRXYWRmVERRU3d3MkZVQVN2TjhiMGVmQkZBN2hHTXlvYjUyUHRhemluYlJYRHMwbU1BaTBWd0FPS3dRVGRQeGp5T2s5RHVvbS9iWDZDUDZ5N253M0p6WlE0TWNyYzBpQVFwQkJEaEZiQlVLRHlJZW9aVENvRmtmSWdLRTQvakJIYXNVRisvY1RmOWFNZDdxczdINVlKUWc2bExCZnBnUk9pK011SElWOHZNZ3BqYVJac0dzZkZ0MzJlemt3RTM5SkViSi9QSFBzbUtNT1RpdzhqWjJsZVdqR04rUnNtMEphS29TMHR1NWNLSWNRUVlRVU41RDNYWERWcytuRXNlRDdmRDgremZRaTBCL1hteWtxNDZpcFl2aHgrOHh2NHhDZmd1T05nOU9oZ29VeVBFOFFLM3VQNjYySGVQSGpvSWJqOGNwZytIU29xQm0rYno0Q2o0TFRhcERXNU5HLyt2S0ZjMzcrcFhLMVB1aXFuQjJBek9RZnMwUjdidTFMczBSNytXcm0raGlwbEtieW1WdHJ1ZnBTdUoxOGhQR1U4b2JFanNVcWo2SFNHZkgwVDJkVWJ5VGUxZ3UvMzdwb1VSZFMyZ0VUU2tNMHJIbnJhcDNhWTRzU2pMQ3FyMUc1eENLeENtZFdSTWp6MXZHYkpHNXI1OHpRSkIwd0ZFQXJLRkd5Q0FaV1c0SDZDMm5zM2k4SmdLVVZOUHNHM2x0N05wTVFXVWs0VWE1RDI4MWFYaENUakNERkFtazZjeGlsWG5jMkdpVkgrYmVtZGJFcHNRL3Rlb2RQYzJzTkV2aUsxMjJMeVBUK3Z3aEdaSXkyRUVFUEVWMys1ckE4cjlEc3ExVUlJSWZZaXQyZ1pWazBWeXJhbytJOXJxZnptRjRPaTFQTlJsa0k1L2JRMlhSRzh0OVlZYllpY2VoeWpaajlBeHkvK2o4Ny8rUjBtRWliMzlqSTVRVVhHaW9RcFBlSmdTbzg0ZUVBK3ovUmtQTWFBUnJOMHk5SWRlN3hvNE5XYVlIS0Ywc0VvajZjOWxtNVppckpWeno1SGlMMWx4Y3hoNks0TElUY0ZyQVJZU1Q0NFd2Zis5Y1BiazJSeWU3OFd0TlkwTlc1bHlZSm4rZFRITEQ0M3E0U0RLMEowUGgraTlZa1EyWG9ycUtiTFVNdmV5MVRMd3ZNOHhvNGR5L1hYWDgrZGQ5N0pXV2VkeFlJRkM3anh4aHVaT0hFaWxtWHRObWRXRzdOYmU4aFNDZ3I3ZEZtV3hjeVpNN254eGh2NTZVOS95dGxubjgwamp6ekMxVmRmVFNRU3dmZDlIRWRpMG9oOTV4ZFo0MXVWbGZXcTd1R2J3clgxTG5rVGJMalQ2OWtNc3Ara0dFcjFIVWtDSVlRUVFvZ2lyY2hwVkRoRTdzVlg4ZXNiVUk2TmlvU0MrYk03R29OKzhKam5rN3I5THV3eEkxSGhFTWdhOW4xTGFtT3dDaHNJWnZKWk1ybDBvZkZxN1hoY3k1eW9kelhzRmJZRnc2cGlYSEgrRVp4OHpEZ3dpblEyejZhR1RwNmZzNVpzenUvQjJ3YnZPM3BFT2RkODhpaU9PbVFVdnE5SlpmS3NXTmZNUzNQWDQzVmp6NTVyWHRnOHFKUHZGc2xCQTV4Zmg4YjFheFQ0TXY5R0ZNVTFWL2hYSzFSWVUzbGVLM1gvM3hhYzRYbjh1RUxaZytlYUhQL3dZNnk3L2EvNHpTMkV5c293eHV5K041d0tCbmVNMWpoMXc2ajl0NHRJWEhzMnYybWF3eS8rZmplSmRBZFdwQXhsREw3VXY0UVE0Z1B2RFNhWFIyZXkrRnViMEJOR1lWZVVGdGJjZ05mWWpOL1dpVTZtSWUrQlphR0JNcDNqNDhsNko0Ui93cDh4MzUwZnJRMXBKL1ozWW1Qem5IZ0h6UG1DcEswUXZiMDhIUnZqKzdnVFJ6UDJzeGVEZ3E3blh0L3gzRkJsbDVjTjdnTnMyWWUveGJieGZaOHhZOGJnT0E0Yk5tekFkVjN5K2Z5K3R6c0JINE9EWXIyZjQ2S3VEZnlnWkFTWGhhdElHSjg4QmxzV2hud2dYMnZzYUF5ak5jdlhMR1A1aXJkM2Y0SGpZb1VqS012QzF3ZEdHOElBT0lic1lvTmVCYnBOWStWenBGTmdrdUIxK2FpTWdtSGcrejVaejZNczVEQXNiRk1YalJCeExNcnpQcHZqT2RhblBNS1d4Y3lhS05VUmg3QmpFYkV0am8xNU5HZnlqQ3h4aWRvV0dWOHpvY3pRbGRPczdFZ1R0UlVqU3h6R2xvWHhOYnpkbWlTZTlVa01vYjNCRlFaVitNOEZSaVkzY2ZIbXYvQnY2MzdMaEd3emlaY01TWFpNMXhiOVJCZjJSVkVXUkYzUVlTQWZYQWhGMFVVcFJid1FmWHM5R1lOeUhNWis2aEl5V3hwSWJOaUE5dks0RlJXTXUvNnJxRWdZWTNTZng4Y2ZDc3BDZzN1SGhXMERucCtVYktRdGhCQUhYT05DWTRkRCtDcU12NzB0cDJVc3NqOVlscUxGeE5CR0VZNkJXMW9STkkyTXdTZ0YybWVqYjdBQVI4bmNzV0x4eDFmdmxVUVFSYzBRekduRlFFYzh3N092citjN043L0VwdlZ0MktVaGpERm9MV1ZTVDN6OXJoOFA4aU04UjA2U0dEcUtyTzYwNHBiZnlUa1RRNlNSQXlSOVBIc1lveWFlZ050bzBiazJTODJFRlhqbENiYWxUREIyRlMzNlFxYndKZjNydmVsN0FGQ3VDNkhRanZuU2FEMWsraUJNM3NPdXJrQnZibURGOGVjeDdlay84K2JiYjNQNnFhZnh5cXV6c1N3THJUV2U1K0U0RHA3bmNjNlpaL0tuKys3bDhqL2NTT09JWWZDemIwbGVHVURYLzNlQ2hTdnk1UFl5NVVrcHFDcTNPUEVJaHkvOGE0eWpqcTdtTGU4SWJ0L3lTVjVNSEVQT2hFQkpYOXE3dGZ5M3BFbXgzT0gyOVAyQkxoblBTeUlVU3g2MkxEQ0c4c05tVW43WXpLQitNY0JqM1pQREtUNVYzYmpqZTNGZ2NCMlg0dzQ2WnNmUG9WQ00wZE12b0xWOERKbHRzd0ZGZWQycDFJdzVtbmpHcHoyUm9zb2tLSE56ekJ3N0ROYzVzR1pXdGxTVjQzeHVNdjVoZFhpK2dXU2huTFhrN2lONlZuL1owbFZPVnpaTWF5cktZOHNPWmxsVExXblBZVk43T1IyWnFOUnQ5dGl1Q1dMV1RwOCtuZVhMbDdOOCtYSnl1UnhqeG95aHZMeWNUWnMyc1g3OWVvd3haRElaZk4vSDh6d0FNcGtNZFhWMVFkdlhHQ1pPbkVobFpTV2pSNDlteFlvVmhNTmg2dXJxbUQ1OU90WSs3dWxZTTdhVSsxcXJ1S05oQk10U01UUzhwNiszeEEwemZmaDQvdTJZMDVrMTdTVGliWWJiSDN5SHV4NWN6dVl0aVdEN2NTbFBpcEpFUHhhOWE4eHFROWVLcGVpU01GNVhKeFlHYkJ0bFdlVHJOd1d2czUxZ0lOejM4WnFiY0ExMHJWcUdtV1M2czNkb3Z6Qyt4b3BGNlh6eWVWcVBPWnk2NjY2R2NEaDRMcHVsOVU5L28vUEo1N0ZpMGQwRFVJaDlUMnNnckJUL1dsSWFWT0tWa2dDNUEwVHJuWFBSQjFQL3YxSlFIclU1L3FBS2xGSms4eHFsRkhsZjQydERVMGVlWnhlM3NXUnpVb0sraVFQV3ZSdXZHK1JIK0FNNVNXTEE3aG45N3ZiSHBDVjdBSnV4cWswVjF6V2hoc2J4eHBzaFBzQUg4L0lqY1Bnamt1bUZFQVBiTGpkQk1laUc4clRsWEs1WU5KMUhtNnRSd0VOYmhvUGo0NGJ5NUkxVVIzYmVQSUFOUGp5WEpicnFiYXpjeXhDS1FGbEZJZGkrQ3Y2MUZIYXlrOGliVCtMWGpjUmRzNUJJeXlaVU9QYkJJMVBHSUZzM2liNWt1ajBVcXZCTk1IRTM3MnYrOTc0M2VIak9HaTQ4WlJxbkhEbU80eVpkaGk0djU4ekRQMDl6UE00YnF6eGVYWmpoTHk4OXdOWk5yZWhvR0JWeThMV0JvQmRlREVKYmZoYkI1SG52SFBmQ0NZdk8wTlJlbGlWL2ZEbDNOVjNHcmJPdlpVM1hwSjF6NDhWZVdjQ1lpT0kvSnRsY01zb21Zbld2Vk5kcFRYSjJGNTMzdCtDM2VJTXZ2WE01K09VdjRaNTdDdmVxUXFkSVEwUHduQkJDQ0ZqNkk3bGI5cWU1WCs1Uit1NnZlcW12SlRzTXV1WjhJWkNpTmhvTWhOd3dJVGZNc1VlZHNrdURIN1RXR0dXdytpbndZb21mNTlEa05pNXNYc2F4aVhvaTJndUNCdzJtdERwS2F2LzkzMVkzUVY0RVdyUHR2Tlk4ajF0WDM4M2Mxdm00eXFYQ0xVY2JmOGRyaEJpS2ZFVy9CN2t0dGt2STdyTTVhR2JublUzbXRRa3hKTXFIb1Y4M0FxVU1xV3lZVkNvR2xrYlpQdWxzbUovKzQyd01rTTZHd2ZicFNzWG9TcFNDN2FPVTZaTTJYMS9NYzNsK0FVUnZ1MEpPcGhCQzdJT2oybGQxdi94dDcrZm5lM1lEZ2NwS3VPZ2ltRHNYbm5vS1Rqd1JMcjRZWExmMzd6MW1ESHptTStBNDhPYWJjTVlaY01JSndjK0QvdDZ1R0JQTHEzOC91RjBkVnBuVmQ2eXQ1Sjh0VVJYM2dua0UvZFh4cENJR2JNZzlXWWhjWnhjZUUwTlhZYUc0MTlSR3ZyR1ZIWTNoWFlhenNhemdTeHhRN1lzVmF6V3hpTVZ2LytMVDJXVTRiTHJGaERHS1VFaWhEZVF5ME55bWVXYTJadkVLelpNdmFIUVdUQnBVR1pnUlFCVVFJdGp4cDRsdUR6alpCa0tXeFNXckgrWE1yVytRc3FOWWc3Z1JPbjk5dTJRYUlRYkl5dG56MWNyWjh5VWhRRGF6RWYzdXNJNjNaTHhiaUlGcWxwVU03bjRLdWVPSW9XU3FyT1lRdTVpVVhxVklGMzc0MW5YQmx4QkRuTUdnSEJYRUJ5ejhiUG1GZWIrN0JDTGQ5VFY5WVVUN0VpbC94UTZ2ZmZzK0JmY1Z6ZkZtY3QyN0ZrcWlpdW1UNExNWHdxeFR5b2cwT2pUK05relhHeTQ2Slh2VTd5dkhjZEJhYzhVVlYvRHNzODhTQ29XNDZhYWJtREZqQnBabFlZeGgxNmxLbGxKN3JPa3BGWlJuWThhTVllVElrZHgwMDAzODdXOS9ZL0xreVh6MnM1L0ZkZDE5RHVZc1JOSHkvWDU1V3luZUF2czBmMGVJUWVhMGxVVldYNzl5a2x4dlFnZ2hoT2cveHVCdmJVU0ZROEhQZWc5OVE3cXdMNHR0QjY5MVpPdWZudGkrRjRXeUxGRDJqdlNYUFNyMkxCcDJxSzJPY2VLUlk3bmt2RU5KcFBJc1dkVkVQSm5ER01PSlI0MmxxVFhCZ3FWYnU3MGNXZ0VsVVpkaFZURStmc3BCWFBqeEdUUzJKRmkrcG9WVU9nY0tUanQrQW8wdENWYXNiL25BT2NBU1hsVUk4Yjd1ZUtiYkpZUVBwSURMN255ZXl5VGw5cTBLNHl1Y0tvOWgxelpRYzBVVHlqSG9wRUxaZyt1K3V2NUh0Mk5IUWpqbHBlL2RGMDRGZFFHRElYYjg0ZFIrK3d1c21GbkRELzk1S3krc25rM2VEV09IUy9BbHVJRVFlL2FiRTZWR0p0NVQ0OCt0V0UvN1RYZFQrZTgrN3FReFdLVXhURFpQOHZHWFNUeitDdDZtaHQzV2pHb1VNWjNubzRtdGRsanJveHlqdi90bXRDN3NwVFk5QUZhT0UrK0FPVitRcEJXaXQxZW42MUE1NjR3ZGs0a3FaNTB4NUdPYm1YNmFyekRnNTA0cGZOL24rT09QNTcvKzY3OXdYWmNiYnJpQk9YUG03SmlqMUJNZUJodUZqK0dIeVVZVzVGTjh2MlFFcGNvbWJud2NtWm54Z1hSaGphVWRqYUhZWlE2WktjUXAxUnB6QUszRE5EYUVwaHVpNHpUWktrVTBad2h0MVVSbWdGYVErYWZCWDdzOW5SU1dVcVR5UGt0YVVwU0ZiSWJIWE1LMkl1c2J5bHlMTWFVaEtzTTJ6ZWs4OVlrY2FVOHp0VExDMk5JUWFWK3pPWjZoTVprSEJlTkt3eHhkVzBKcjFpUHJHVFowWmVuSSttUTlNNlQyV1ZHWVlGc1NaVkhqSlRpNThSbSt0UHJYZktoek1aN3g2YlJzYkdYWUx5TUhRNlM4N1ZGWkFDalpta3FJQTd5aXJZTDd2ekZFUm84aU1ucmticzhacllOeFNmSGUyNGNNOUFraGhCQmdERXJtTEEwSXQ5QjRNenBveDVwMzFlbkNoYXFKbkkxaXFvcExmVkxzMVBuTXJLTEtFTVlFYzFrdEJRMHRTWDc3dDRYOC9MZHZrRTNsY1VwRGVMNlVScjJSMHlGSkJDSEVIcTI3NXdGSkJERkUycEtBYTFIWkZXZnptNjFVSHp5QjhQUldHdXFYa2w0VHA5TExZYXd5YWVHSTNTdWcrN0gvWWVyV053ZW12dDRPekppeTIwTjZsM2tibnVmdCtQNktTeTdsaWtzdWxieXhIL3h6U1g2dnJ3bTVpdEYxRnA4K0s4d1ZzMHB4NjBaeFY4Y1ovTDd0UERia3hxQ1JRZnIzMDNHZnJIa1F4ZXZ3UTZvSDlmRXRrcTBwZHFkVXNCWkxhNVJ0RC9qSGg1VG1NOVZiZG53dkRseHVLTUx3Q1NlUnFadU9RaEdPVmFHVW9zb3hmUDZrS1V3dU5YVGxERWRQck1HMkRyQnhoZm91NWYzUFFza2tvcyswcG1LMEpHSnM2S2hnNGRZUmVOcENBYXRiYTFES3lNcUREK0E0RG9jZWVpZ3paODRFb0sydGpWV3JWbEZWVmNYNDhlUHhmUjlqRE80dWU2WnViODhhWTNBY0I5LzMyYlJwRTlPbVRXUG16Sm05R2l2OWo3VVRlTEd6Z3M2OGkxRzd0NjBzcGFpT2xuSG1RVWR5M2ZGbk03MXlBdk9YdEhMcm54YnozR3YxcERONUNYQmM3UGxSa2tEMHFnM2dlM1N1V1UydUlrclcxK1RXcnNZS2g0TUNLeDkwK25pdExVRVFwMndHNHpqWW5xSFRsR0VtakFrV1grMG54aGlVNjlCMHkyOHBPZVlJU2s4OUFZRGt2SVUwM2ZKYmxPdjA2YVlJQjdwUTRXWWhLVHJRK1h4d3JoZk8rekIvWFp4NDJxTzIzQ1Vhc2xuYmxDYWU5bGl5T2NucWhqUjVtU2dqRG1EbGJvY2tnaEJDQ0NHRUVFTkUzaWdzWlZDaFBBOXZyUVBBRHVVeFJwR1hSZlZCWjVFTlpBeThtWWNYczFpZEdrS0FXd2xHZy9aM2VURkJNSDdYeFhuaFB0U0c1ZGpyM2thNVlhVG5TUXkwRWZuRVB2K09BcXlRSXIxK0UvZXRYTXY5MFJBMWxhV1VSaDBzWlpOSTUyaHU2MEpuOHVpUXk4aXdnODduZTVTN0crVVVEV3h4NWdQVzd1V2IwZUFPTjlSY2tLUGtFNHJYemFuYy9OYjF2TngwTXI2MlpKZkZmV0FwR0JGU2ZHV2l6UldqYmFKMjkwcDlrOVdrWCt1aTY3NW0vSmI4NEV4eno0TW5ucENUTElRUVFvZ2hVR2NMNnJqdm5Xc1QvR3oxVTlCRkMwTnRMc1ZITzlaeGZ1dHl4bVM2Z2oxbXBNSjl3TkZHbzVRaTVhVlptOWpJYmF2djVwSDZwMG43R1VxY0VzRGdHMThTU2dnaGhCQUhGQVBCQWk4M0dHc3dSbUdBdDlaT0JrQTVIc1lvbE8yamJIL0g4MElJSWNSK1o5dHcwRUZ3NDQwd2ZuendjMTl4SERqeFJCZ3pKdmlNL1JBWW84ZjNkZ01SUy9QeGtRbHJhbG5PL0dGZHBYNnd2a3cxcEczVlg1dDdtS1FpKzNoMHQ4ZFVWUHJlRGdpVzJxOXJQOFhnb2pYWUZpeDRSM1BRUklzNzd2VTU3bkREeURyRnFPRUszNGZPaEdIUlVrMWJCN3oyVnRDKzZFeVpZT3lnQzRnRDFVQWRzSm5Dem01MGJ3S0lFK0xvaGplNWJ0VURlSmJOWUcrNVhIMzdXNUpwaEJCQ0NDRkV6OXZpRW1kRENDR0VFQU5aOTNqWHZGK3R6RjVmSTRSNGY3WUZsZVVXSHo4NXhIVVhSemxpVklqa0d5SHFIdzJSWFc4SG0rWEs4RXVQUmFOUmJyMzFWbks1SE9QR2pVTXBoVEZtbjlZcVdKWVZ4Q0JWaWhrelpuRE5OZGNRQ29XSVJxT1N3RUlJSVlRUVFnZ2hoSGdQNWJwNzMrU2g4SHkzWGlzK09DbDNTVS94L214TE1iSzJqTExTTUJ1MmRPRFlGczF0U2RvNjA5UlZsM0RrakpFc1c5UE13bVVOM2U3ak40RGpXSXdkVVVFb1pMTnBheWZwak1lMjFqanhaSTdSSThvNTd0QXgvUFB0ZWxhdWI1RTFpRUlJTVNnckxtQThSWGhpbWhGZnI2ZnNqRTVNMW1CeUNtVVB2cExiTFlzRisybjV1Mjg2clpSQ2V6NVdhWlM2S3k3RS9QdW4rWFBpYlg3ODJNOXBUV3lEY0FrS2cyOWtzMm9oaE9oK1k4dWdPeE40UU1ldDkyRlZsT0dNSGs1K3cxYjhsbmI4cmMyWWREWUkvcnhiTzBFUk5UNm5wQnJ0a05HSE9rWi9aMjVzZURodk9YOEJLODJKZDhDY0wwajZDdEVibGhYc3ViRzlwVzBLajRtaXNYWHJWczQ4ODB4Q29SRFhYMzk5bjd5blg0aWthcUY0TE5mRkVqL0RUU1dqT01LSjBtWThMSWtBc0ZkYVMzc0J3TktnTm1yY0V4VHBhb3RRMkljeWk4aHdINTBBcjF6aGh3RXZlSDFWeEtVbVlyTTFtY1B6TldIYm9qSnNVeGRUbExzbHBIMU5VeXBIaVdNenVzUmxXWHVHeGR0U2JFN2ttRlFSSVd4YnpLeUpVaHQxU2VSOU5zYXpSQjJiVXRkaVV6eExWODRmVXYyS0ZnYWpiR0xHWjByN0FxNWZjeHV6R2g0bjZtZEpLZ3VVd3RhZVpFUWhoTmhmRkNnVjFMZk5MbmNnQlNpcGN3c2hoQkJDREFxNzlSTW85Y0hQQ3lGRVA5TmE0MnZEeHFZNDMvblZTeno2eEZKeXJvTVZjZkFrRmxTdjJVcjJDaE5DN0puMDFZbWgxTUxSU2pFczNFWDRpUmZvbURPQ1JIa2UxUkJudElLMjhSYStOa0hiUjZvV1FvaGl1bGNyS0lrcWpwN2g4c1ZQUnpudHhISldxQm5jMW5BUlQ4ZFBKS21qdTQzRmlUMjBod1o3ZFVlYWErSURQUGUvL3pLb2o2LzJUM0tPOWxSd3EvMjRCOXRJTnl2blFCU3lvaUphVXZPZXgwYldWSERwaDQvR2FJMHhCbHY2QllUb0ZVc1pXdEl4R3VKbHdieTRYUjRYZTdjOUppMUFhV2twa3lkUHBycTZHdHUyMFZxL2I0emI3Yzk1bmtkYld4dXhXR3pIKyt6Nm52dmkwZFlhTk1DN3psM0VjcGhZTTRLcmp6NmRTdzQ3RFpPT2NQZURxL2pOL1V0WnU3NFQzNWc5anJXTDR1SklFb2llbDJSQkk4QU9oY0MyVVphTkZaUkdZRXdRQ0F2QTkwRXBySEFrS0d5TXh0NytYUEFtKzZza1J0azJmbWNYVzc3L0N5Yi83YmNBYlBuK0wvQTd1N0RDWVl3c0VPdlQ3Q0xFZHVtY3o0dExPM2g1ZVFjaFcrSFlGdW1jajYvN2JrT1NteTZhS0xVVVViUzBzWXZyZ0IrNnROdlhtd1l1Zm5EN1Q4MkZMK0R2aFM5YWdQOVBNb0VRUWdnaGhCaGFkWHdBbzdEZElBQ01iNlRKdW9NRmJOWHdYQWJlS1FUSUNSVW11cHIzbTFWa1FObFl5VTZzK1UrREd3SGJsb0R5WXNEOWJ1MC9ldnk3Q29WbEtiUTI1TFdQOWcwR2hXMkJhOXZCYzhiMHFxL3NYRGxGKzdYZ1Z4R29PTlZqMktVNU5vMmV6QTJycitVdjZ5K2tNMWZPYnFQcm9sdEdoQlZmSG05ejlSaWJrbTUyblptY0pqVW5Uc2U5elhoTmVVbEVJWVFRUW9nQm9nWndRbUZZZXh5Y2J1SEM1dVdjMUxXSm1DLzF2Z09aWnp4YXMrM2N2ZTRCN2xyM1YrclREVVNkQ0RFbmlwWk5oWVFReFhVdmxaNGpJVVNmTW9EWlpYeFNBNVliMUoyMTJiNFlTY2xjYnlHRUVJT3RZZ3gxZFZCYkczemZsOVZreTRJSkUyRDgrTDUvN3dHNnR5dGdjbWxPZlh0R2l6cXlLcVB2V0Z2Sm92YXc2cGRRRzdydzllN0hoQkFIbkx3WEZKbXIxbWtpRVdodU5aU1hCV1ZvUlptaXNWbmplZERZWWtpbFFldWdsV0Ywb2VEU1FHdmhheDhiSUNPNzZ2bk9PNytuUEo4Z2E3dFlnM3l1NEthV3BHU1lmdlRVRjQvWTU1djNzNUpzUWdnaGhDZ2lkYkhCSFdlZ1NVNlJFRUlJSVE0dy91SXJaVDZYNkphUUMxUEdPVnd6SzhLbno0aFMwZW5RZkhlWXp0a3VmcnlRalNRMzlaaGxXV2l0R1RWcUZNQUhCbTNlRzZVVVNpbDgzMmZDaEFsQUVQdlFra0QxUWdnaGhCQkNDQ0dFZUxkOW1hOG9jUkJGUCtmRzdkOGtVam5tTGE1bjRiSUdYbnRyRTZjY1BaNXhveW9ZUGJ5Y1ZEclBQWDkvbXhmZldMZGpMdTh1MVB1OUowQkhWNGJYRm16a3pYZTI4T3BiR3pucHlIR01HbDVHYVdtRWVDTEw3eDZZejl5RjlaTFZoUkJpc040b05KU2Uwc21JYjJ3aU9pMkxueTRzbTdQTUlEM2VQUitYOFgwaWgwMWw1TGMrejRZVEp2TGpoYi9qeWVYUGs3RnNyRkFNWDJJSUNTRkVqL2xkU2Z6RnExQ3VnM0pkVERhSDhmMmdaV0NwOTIySVJJelBDZWtteXpYK05BZjlyVG14RWFHc2N2NEVLc1dIYm9jM3JwUEVGYUkzZHIzK1pHNVIwWW5INDF4MjJXVzRya3M4SHUrNytqTGdZM0JRclBkelhOUzFnUitVak9DeWNCVUo0NVBIWUV1R0dYQlRXbDRydXVBa3ViaE5lajJVcHoxU0t5emlyUzdWVXpUZVdzaVZPMWhsR2pxQ2w1YzRGbE1xbzB5dmp0S1Y4eWwxYmVyak9SWTFwNG5ZRmgwNUgxc3BEcW1KVWhOMU9VUXBrcDVtWEdrSWJXQkRQSXN4Tm5VeGw2NmNUMmZPcHo2Ukk1SFgrTm9NdWZobWpuS29TZGR6MVlZL2NzMzYzek1tMTA3YStLU1V3bnJmZlpiRWtQVjVpUjhxeEdDdWJ5dXBOd2toQnFQYlA5UHR3aWtML0tqd3RWTWVlTER3SllRUVFnZ2hlaXVUODNsajBSYis4K2N2c1B5ZEJrelVSV0gyTkE5VDlJQ1J0cmtRQTlqZWZFd3VPQ0gyQ3dVKzVOSTJWVE50WXN1YjBkc1VkcmxGYklxaHNVa0ZjM3FsYWlHRUtDSzJCYlUxRmhlZUh1YXpueXFoZW13dEQ4US93aDJ0RjdBNk00RTh0aFJzM1drUHlSUVNVY1JxeXNPU0NFS0lQbWNwQmJZdENTRkVIMmhQUjdodjRhRWtjaTZlbGppcSswcnRNdlUzSEE1VFcxdUxVZ3BqRExadG83WGU0Ky9ZdG8weEJ0ZDFxYXVyMisxOVZBK25FK3M5ZkU1cEtNSy9URHlVTDU5d0xzZU9PcGhsS3p1NTdjOExlZUxGRFNRU3VlQjNwRGQ0U0hBa0NVU3ZPeCtNQ2Zwb2RvMEdwTlRPbjdjWFRzWVVIb2VkUzN6MmIwbGl0TWFLaEVrdVhNUzJXMzhQUUhMaEl1eG9DY2FYb0JKQzlIZlo0ZnVROWswUXJVWXFGa0lJSVlRUVFnZ2hoampmU09QM1BaWjQ4RXdHdHZvUTN0NlAySjFmTk1HZ3IxTVc5Q3RJcEhLeEg0elBkdlhORzZtZFhXUEdCenhKMjZKVktJcWlNelMxbDJYSkgxL09YVTJYY2V2c2ExblROU2s0MFhJcjZKSFBqYlc1ZXF4TnVkUDlrNUZibmFIcnJ5MTREVGxKUUNHRUVFS0lJZXFVemsxYzNQd08wMU10T0ViTEVyTUQzT3ZOYjNIamlqdVl2VzBPanVWUzZwVGdHeCtOekFFVFFnZ2hoSGczTGVPV1FnZ2hpb0ZTTzlla0ZkTjdENkF5UjNQQm1DNXJmRW5lM0w2NlN0OGp1VVlJMGMrTUFkOUFPZ1ByTmh1aUVVTXVCOUVJSkZOQjBlcnJYWllTYisrNDM3VUR2d2VkK2Q5WTlpZU9hRnRKMWdwaEZjRm04ckk1bFJCQ0NDR0U2STE3Zm43a29ENitNNCtYY3lTRUVFSUlJY1M3V1JiTW5PTHczYytYY01ZSklmUktsNFkvUlVndWRqQ3lacmdQMDluYUVhalo3b1BnOHJzR2ZyWXNDYW90aEJCQ0NDR0VFRUlJSVFhdERMRGJkc1RHUUM3dnMyeHRNNnMydEJKeWJTeEw0ZnVHWE41RDY5MG43S3BnTzdNUVlBVS9veFVxeDd0bTlob0RtYXpId21VTkxGblpSTWkxVVpiQzh6UzV2Qi9zUzdRN0NmTWhoQkNEUk5Xc0ZvYi94eGFjdWp4K1dxR3NJaXVpbFFLdEtUM3pKRWI5OHB1OFV0ckc5VS85Rnh2YjFtTkNNUlRnRzRraEpJUVFQU3hrZDFiNEFaUHpNTG51VDJZd1FOaG9qc20wV0tGMlBka3g1cHV6WXlQQ09lWDh3VUNDRTM1dG1QdGxTV1loeEFGbGV4OUpWMWNYRHo3NElMQnpQcFBwd3oxVFBBdzJDaC9ERDVPTkxNaW4rRUhKQ01xVVRkejRjaUxFWG0vaWRvZFA5bW5JQXlhbGNjaVJYR0l3UGhqTFE2TmdiUER5emZFc2pha2NVeXNqbElkdFZyUmw2TWo2Wkh4Tk1oL0UrN1VzV05lUllSV0d5UlVSUnBXNHJPM01VdXJhVEt1TTBweko4M3BEbk9GUmwrbFZVWmEwcE9qTStVT3lFL0drcHVmNCtzb2JPYlZqRVo2ZklhRXNiQXlXN0pza2hCQkNDQ0dFRUVJSUlVVFJlZkRwRlh6cjVwZG9idXpDaW9Yd3RjeFJFVUlJSWNRK01JQUYyWG9JT1FaM3NvMlhCS2ZDa04wSytRNVFFdEpFQ0ZGRWxJSzZHb3Qvdnp6R2xlZEg4RXByK1orV3ovREgxbk5vOHlzTE93UEwvQWdoaEJCQ0NDSDJKMDlidENaam9LUnUzcmZ0b1dBZDNnZkZwMVg5dlBkcDFBbHg4Y3hUK1BxcHN4aFhYc2ZMYnpSd3c2MXZzV0R4Tm5LZVJyWWlIMko1VHBKQUNQRis2c2ROR05SMytUR2JOa2daSm9RUVFvZ0RUYmZyWnljY1ZjR3Z2bjhRSHpxNkFzL2Z5Ni9aNEMvVFpPL0k0Nytqd2VuZVo5UXNmMFBxWTBJSUlZUTRvTFFmY21pMzZtUE96RU1JLzgvTlBMYWtrYXYvNng3aWlUVFJzTXYvZnZkZnVlSWpNOGg5NHh0NGMvL1o1OGRYdFhTSjFNK0UyRThXVkV3MFRwMmgrdnc4c2ZNczVuQWlOeSs3amxlYVRzYlgxdjRma2Z1Umt2SmhZQnZ2KzJWOFJjbllyeEJDQ0NHRUVFVmpUdWtSM1c4M2FFMWs4amdPZWZyM2hFYlZCZTBPWDdQNnltL1E4dEF6S01mcDgrTTdNYkZJMmhkQ0NDR0VFT0tBWmJxeDI1TTJoZ1ViRTF4NHgySU9YNzJBWDY5Nm1ESS9TOFp5K2Ria2MzbG04dkhjOTdtWi9NdlVLbXlyYjZ2WFNoWDN1TStKWDM5dFVLOVRtWFBqeWRJZUVrSUlJWVFRUWdnaGhCRDdqZWZyUWQxLzV2UjFoNmNRb3R1c1QvNnVXK1ZEVFZtRWUvLzlORTZLMTdQdHk5L0RiKzhrTkhrOGRYZmV5Ty9XcFBuNjNYUEo1dnQrTXl6OThMVlNQZ2doaEJCQ0NDR0VFRUlJMFUzZG1hKzhQeFQ3UEdVaGhCQkNDQ0dFRUVKQTJhT0hES3AraC9nRlM2Vy9RUXdaeFJhZi9yQWpmbVMrMDdLSTBWNFNSZStDSlN2QVE3RXNYS1gvVURsMTY0Sm83YTBhN2dRNm1QdGwyYzFhQ0RGVTdiVjhzMjBiQU4vMysrMGdGR0NoOERGTXNFUDhzbVFrUnpoUnByYXRrSHFXRUVJSUlZUVFRZ2doQnBUczR5cDJkY1UvNmdmMStNQ2Z6aDRqK1VFSUlZUVFRZ2doaEJCQ0NDSEVvR00yN092VWZnWEdnRjBGbzllQ1ZVVXd4WFhmdXNFbG5vZ1FRZ3dPVTg2K2QxQ1BzNjc1eDZWeXZ4QmlnRGlTQkVJSUlZUVFRZ2doaEJCQ0NDR0VFRUwwWE9sSlBzTXV6NU9lWHNFdlZuMkJPMWRmU1h1Mk1waFhKVVBmUWdnaGhCQkNDQ0dFRUVJSUlZUVFRZ2doaEJCQ0NDR0VFRUlJSWZiQ0dFa0RJWVFRUWdnaGhCQkNDQ0dFRUVJSUlZUVFRZ2doaEJCQ0NDRkU3Mnh3eS9qNXNNT0pHQi9vL1NSbFpjQlRsdFhveEVZYitETFFCZHdGWkNTMWhSQUhLdC8zKy8wekRPQmpjRkJzOEhOYzJyV0pINVlNbDhRWFFnZ2hoQkJDQ0NHRUVFSUlJWVFRUWdnaGhCQkNDQ0dFRUVJSUlZUVFvZ2o5LzFWNTJkN244ZkhhQUFBQUFFbEZUa1N1UW1DQyc7XG59IiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCAqIGFzIGludGxUZWxJbnB1dCBmcm9tICdpbnRsLXRlbC1pbnB1dCc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdpbnRsLXRlbC1pbnB1dCc7XG5pbXBvcnQgTWFrZVJlcXVlc3QgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9NYWtlUmVxdWVzdCc7XG5pbXBvcnQgR2V0RmxhZ3NVcmwgZnJvbSAnLi9GbGFncyc7XG5pbXBvcnQgR2V0RmxhZ3MyWFVybCBmcm9tICcuL0ZsYWdzMngnO1xuXG5AQ3VzdG9tRWxlbWVudCh7XG5cdHNlbGVjdG9yOiAnaW50LXBob25lLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICAgICAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIGhyZWY9XCJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9pbnRsLXRlbC1pbnB1dC8xNi4wLjAvY3NzL2ludGxUZWxJbnB1dC5jc3NcIiA+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRlbFwiIGlkPVwicGhvbmUtZmllbGRcIiAgLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG4gICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAud3JhcHBlcntcbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICB9XG4gICAgLml0aSB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGlucHV0e1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuXG4gIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpIHtcblx0Lml0aV9fZmxhZyB7XG5cdCAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9pbnRsLXRlbC1pbnB1dC8xNi4wLjAvaW1nL2ZsYWdzQDJ4LnBuZycpLCB1cmwoJHtHZXRGbGFnczJYVXJsKCl9KTtcblx0fVxuICB9XG4gICAgICAgICAgIGAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW50UGhvbmVGaWVsZEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXHRwaG9uZTogSFRNTElucHV0RWxlbWVudDtcblx0ZnVsbFBob25lOiBIVE1MSW5wdXRFbGVtZW50O1xuXHRpbnRsVGVsSW5wdXQ6IFBsdWdpbjtcblx0cmVhZG9ubHkgVVRJTFNfVVJMOiBzdHJpbmcgPSAnaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvaW50bC10ZWwtaW5wdXQvMTUuMC4xL2pzL3V0aWxzLmpzJztcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuaW50bFRlbElucHV0LmdldE51bWJlcigpO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnBob25lLnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgcGF0dGVyblZhbGlkID1cblx0XHRcdCF0aGlzLmludGxUZWxJbnB1dC5nZXROdW1iZXIoKSB8fCB0aGlzLmludGxUZWxJbnB1dC5pc1ZhbGlkTnVtYmVyKCk7XG5cdFx0cmV0dXJuIHBhdHRlcm5WYWxpZCAmJiB0aGlzLnBob25lLnZhbGlkaXR5LnZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRJbnRsVGVsSW5wdXQoKTtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMucGhvbmUuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMucGhvbmUuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdH1cblx0c2V0SW50bFRlbElucHV0KCkge1xuXHRcdHRoaXMucGhvbmUgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjcGhvbmUtZmllbGQnKTtcblx0XHRjb25zdCBnZW9JcExvb2t1cCA9IChzdWNjZXNzLCBmYWlsdXJlKSA9PiB7XG5cdFx0XHRyZXR1cm4gbmV3IE1ha2VSZXF1ZXN0KFxuXHRcdFx0XHQnaHR0cHM6Ly9pcGluZm8uaW8vanNvbj90b2tlbj04MjI2MTM4MjE3YTY4YScsXG5cdFx0XHRcdCdnZXQnLFxuXHRcdFx0XHR7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcblx0XHRcdClcblx0XHRcdFx0LnNlbmQoKVxuXHRcdFx0XHQudGhlbigocmVxdWVzdDogYW55KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgcmVzID0gSlNPTi5wYXJzZShyZXF1ZXN0KTtcblx0XHRcdFx0XHRyZXR1cm4gc3VjY2VzcyhyZXMuY291bnRyeSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaChlcnIgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBzdWNjZXNzKCdESycpO1xuXHRcdFx0XHR9KTtcblx0XHR9O1xuXHRcdGNvbnN0IGlzSXBsb29rVXBEaXNhYmxlZCA9IHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWRpc2FibGUtaXBsb29rdXAnKT8udG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCI7XG5cdFx0Y29uc3QgZGVmYXVsdENvdW50cnkgPSBpc0lwbG9va1VwRGlzYWJsZWQgPyAnZGsnIDogJ2F1dG8nO1xuXHRcdGNvbnN0IHV0aWxzVXJsID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtdXRpbHMtdXJsJyk7XG5cdFx0Y29uc3QgY291bnRyeSA9IHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLWNvdW50cnknKT8udG9Mb3dlckNhc2UoKTtcblx0XHR0aGlzLmludGxUZWxJbnB1dCA9IGludGxUZWxJbnB1dCh0aGlzLnBob25lLCB7XG5cdFx0XHRnZW9JcExvb2t1cDogaXNJcGxvb2tVcERpc2FibGVkID8gbnVsbCA6IGdlb0lwTG9va3VwLFxuXHRcdFx0aGlkZGVuSW5wdXQ6ICdmdWxscGhvbmUnLFxuXHRcdFx0aW5pdGlhbENvdW50cnk6IGNvdW50cnkgPz8gZGVmYXVsdENvdW50cnksXG5cdFx0XHRwcmVmZXJyZWRDb3VudHJpZXM6IFtcImRrXCIsIFwic2VcIiwgXCJnYlwiXSxcblx0XHRcdG5hdGlvbmFsTW9kZTogdHJ1ZSxcblx0XHRcdHV0aWxzU2NyaXB0OiB1dGlsc1VybCA/PyB0aGlzLlVUSUxTX1VSTCxcblx0XHR9IGFzIGFueSk7XG5cdFx0dGhpcy5pbnRsVGVsSW5wdXQucHJvbWlzZS50aGVuKGUgPT4ge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZnVsbFBob25lID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnW25hbWU9XCJmdWxscGhvbmVcIl0nKTtcblx0XHRcdH0sIDEwMDApO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgaXNMb2NhbEZsYWdFbmFibGVkID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbG9jYWwtZmxhZycpPy50b0xvd2VyQ2FzZSgpID09PSBcInRydWVcIjtcblx0XHRpZiAoaXNMb2NhbEZsYWdFbmFibGVkKSB7XG5cdFx0XHRjb25zdCBmbGFnV3JhcHBlcnM6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+ID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuaXRpX19mbGFnXCIpO1xuXHRcdFx0aWYgKGZsYWdXcmFwcGVycy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGZsYWdXcmFwcGVycy5mb3JFYWNoKGYgPT4gZi5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKCR7R2V0RmxhZ3NVcmwoKX0pYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICdudW1lcmljLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdFx0PGlucHV0IHR5cGU9XCJudW1iZXJcIiBpZD0nbnVtZXJpYy1maWVsZCcvPlxuXHRcdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICA6aG9zdHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgfVxuICAgIC53cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgIH1cbiAgICBpbnB1dHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcbiAgICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICAgICAgcmVzaXplOiBub25lO1xuICAgIH1cbiAgICAgICAgICAgYCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljRmllbGRFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0bnVtYmVyOiBIVE1MSW5wdXRFbGVtZW50O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogYW55IHtcblx0XHRpZiAoaXNOYU4odGhpcy5udW1iZXIudmFsdWVBc051bWJlcikpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMubnVtYmVyLnZhbHVlQXNOdW1iZXI7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuXHRcdHRoaXMubnVtYmVyLnZhbHVlQXNOdW1iZXIgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5udW1iZXIudmFsaWRpdHkudmFsaWQ7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMubnVtYmVyID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI251bWVyaWMtZmllbGQnKTtcblx0XHR0aGlzLm51bWJlci5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy5udW1iZXIuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLm51bWJlci5zZXRBdHRyaWJ1dGUoJ21heCcsIHRoaXMubWF4KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWluKSB7XG5cdFx0XHR0aGlzLm51bWJlci5zZXRBdHRyaWJ1dGUoJ21pbicsIHRoaXMubWluKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuc3RlcCkge1xuXHRcdFx0dGhpcy5udW1iZXIuc2V0QXR0cmlidXRlKCdzdGVwJywgdGhpcy5zdGVwKTtcblx0XHR9XG4gICAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLm51bWJlci5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgeyBTdHJpbmdVdGlsIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9TdHJpbmdVdGlsJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3JhZGlvLWdyb3VwLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG5cdFx0XHQ6aG9zdHtcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdH1cblx0XHRcdC5yYWRpby1idXR0b24ge1xuXHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0bWFyZ2luOiBhdXRvIDNweDtcblx0XHRcdFx0Y29sb3I6IHJnYmEoNzIsIDcyLCA3MiwgMC43NSk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdH1cblx0XHRcdGlucHV0e1xuXHRcdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0XHR3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG5cdFx0XHRcdG1hcmdpbjogMnB4O1xuXHRcdFx0XHRyZXNpemU6IG5vbmU7XG5cdFx0XHR9XG5cdFx0YCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHJhZGlvQnV0dG9uOiBIVE1MSW5wdXRFbGVtZW50W107XG5cdHJhZGlvQnV0dG9uVGVtcGxhdGUgPSBgXG5cdDxkaXYgY2xhc3M9J3JhZGlvLWJ1dHRvbic+XG5cdFx0PGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSd7MH0nIHZhbHVlPVwiezF9XCIgaWQ9XCJ7Mn1cIiB7M30vPlxuXHRcdDxsYWJlbCBmb3I9XCJ7Mn1cIj57MX08L2xhYmVsPlxuXHQ8L2Rpdj5gO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5yYWRpb0J1dHRvbi5maWx0ZXIoYyA9PiBjLmNoZWNrZWQpLm1hcChjID0+IGMudmFsdWUpWzBdO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRsZXQgbWF0Y2hlZFJhZGlvID0gdGhpcy5yYWRpb0J1dHRvbi5maWx0ZXIoYyA9PiBjLnZhbHVlID09PSB2YWx1ZSlbMF07XG5cdFx0aWYgKG1hdGNoZWRSYWRpbykge1xuXHRcdFx0bWF0Y2hlZFJhZGlvLnNldEF0dHJpYnV0ZSgnY2hlY2tlZCcsICcnKTtcblx0XHR9XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHJldHVybiB0aGlzLnJhZGlvQnV0dG9uLmZpbHRlcihjID0+IGMuY2hlY2tlZCkubGVuZ3RoID4gMDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLmFkZFJhZGlvQnV0dG9ucygpO1xuXHRcdHRoaXMucmFkaW9CdXR0b24gPSBzdXBlci5nZXRDaGlsZElucHV0cyhgW25hbWU9JyR7dGhpcy5uYW1lfSddYCk7XG5cdFx0dGhpcy5yYWRpb0J1dHRvbi5mb3JFYWNoKHJhZGlvID0+XG5cdFx0XHRyYWRpby5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKSxcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBhZGRSYWRpb0J1dHRvbnMoKSB7XG5cdFx0Y29uc3Qgd3JhcHBlciA9IHN1cGVyLmdldENoaWxkRWxlbWVudCgnLndyYXBwZXInKTtcblx0XHR3cmFwcGVyLmlubmVySFRNTCA9IFwiXCI7XG5cdFx0dGhpcy5vcHRpb25zLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG5cdFx0XHR3cmFwcGVyLmluc2VydEFkamFjZW50SFRNTChcblx0XHRcdFx0J2JlZm9yZWVuZCcsXG5cdFx0XHRcdFN0cmluZ1V0aWwuU3RyaW5nRm9ybWF0KFxuXHRcdFx0XHRcdHRoaXMucmFkaW9CdXR0b25UZW1wbGF0ZSxcblx0XHRcdFx0XHR0aGlzLm5hbWUsXG5cdFx0XHRcdFx0ZWxlbWVudCxcblx0XHRcdFx0XHRgJHt0aGlzLm5hbWV9LSR7aW5kZXh9YCxcblx0XHRcdFx0XHRgJHt0aGlzLnJlcXVpcmVkID8gJ3JlcXVpcmVkJyA6ICcnfWAsXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5pbXBvcnQgU0VDb21wYW55UmVnaXN0cmF0aW9uVmFsaWRhdG9yIGZyb20gJy4uLy4uL2ZyYW1ld29yay9WYWxpZGF0aW9uL1ZhbGlkYXRvcnMvU0VDb21wYW55UmVnaXN0cmF0aW9uJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3NlLWNvbXBhbnktcmVnaXN0cmF0aW9uLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9J3NlLWNvbXBhbnktcmVnaXN0cmF0aW9uLWZpZWxkJyBwbGFjZWhvbGRlcj0nU1NTU1NTU1NTUycvPlxuICAgICAgICA8L2Rpdj5gLFxuXHRzdHlsZTogYFxuICAgICAgICA6aG9zdHtcbiAgICAgICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLndyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXR7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG4gICAgICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgfWAsXG5cdHVzZVNoYWRvdzogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU0VDb21wYW55UmVnaXN0cmF0aW9uRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHRleHQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cdHZhbGlkYXRvcjogU0VDb21wYW55UmVnaXN0cmF0aW9uVmFsaWRhdG9yID0gbmV3IFNFQ29tcGFueVJlZ2lzdHJhdGlvblZhbGlkYXRvcigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRnZXQgdmFsdWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYCR7dGhpcy50ZXh0LnZhbHVlfWA7XG5cdH1cblxuXHRzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMudGV4dC52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnZhbGlkYXRvci5pc1NhdGlzZmllZEJ5KHRoaXMudmFsdWUsICF0aGlzLnJlcXVpcmVkKTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI3NlLWNvbXBhbnktcmVnaXN0cmF0aW9uLWZpZWxkJyk7XG5cdFx0dGhpcy50ZXh0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuY2hhbmdlLmJpbmQodGhpcykpO1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHR0aGlzLnRleHQuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICcnKTtcblx0XHR9XG5cdH1cblxuXHQvLyBldmVudHNcblx0cHVibGljIGNoYW5nZSgkZXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQgPSB0cnVlO1xuXHRcdHRoaXMub25DaGFuZ2UuZW1pdChuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAnY2hhbmdlJykpO1xuXHR9XG5cblx0cHVibGljIHZhbGlkYXRlKCk6IHZvaWQge1xuXHRcdHRoaXMudmFsaWQ7XG5cdFx0dGhpcy5vblZhbGlkYXRlLmVtaXQoXG5cdFx0XHRuZXcgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyh0aGlzLnZhbHVlLCAndmFsaWRhdGUnKSxcblx0XHQpO1xuXHR9XG59XG4iLCJpbXBvcnQgQ3VzdG9tRWxlbWVudCBmcm9tICcuLi8uLi9mcmFtZXdvcmsvY3VzdG9tLWVsZW1lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEN1c3RvbUlucHV0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21JbnB1dEVsZW1lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2ZyYW1ld29yay9DdXN0b21FdmVudHMnO1xuaW1wb3J0IFNFUGVyc29uYWxOdW1iZXJWYWxpZGF0b3IgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1ZhbGlkYXRpb24vVmFsaWRhdG9ycy9TRVBlcnNvbmFsTnVtYmVyJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3NlLXBlcnNvbmFsLW51bWJlci1lbGVtZW50Jyxcblx0dGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPSdzZS1wZXJzb25hbC1udW1iZXItZmllbGQnIHBsYWNlaG9sZGVyPScoWVkpWVlNTURELVNTU1MnLz5cbiAgICAgICAgPC9kaXY+YCxcblx0c3R5bGU6IGBcbiAgICAgICAgOmhvc3R7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC53cmFwcGVye1xuICAgICAgICAgICAgZGlzcGxheTpmbGV4O1xuICAgICAgICB9XG4gICAgICAgIGlucHV0e1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIH1gLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNFUGVyc29uYWxOdW1iZXJFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblx0dmFsaWRhdG9yOiBTRVBlcnNvbmFsTnVtYmVyVmFsaWRhdG9yID0gbmV3IFNFUGVyc29uYWxOdW1iZXJWYWxpZGF0b3IoKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0b3IuaXNTYXRpc2ZpZWRCeSh0aGlzLnZhbHVlLCAhdGhpcy5yZXF1aXJlZCk7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMudGV4dCA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyNzZS1wZXJzb25hbC1udW1iZXItZmllbGQnKTtcblx0XHR0aGlzLnRleHQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGV2ZW50c1xuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImltcG9ydCBDdXN0b21FbGVtZW50IGZyb20gJy4uLy4uL2ZyYW1ld29yay9jdXN0b20tZWxlbWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUlucHV0RWxlbWVudCc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL0N1c3RvbUV2ZW50cyc7XG5cbkBDdXN0b21FbGVtZW50KHtcblx0c2VsZWN0b3I6ICd0ZXh0LWFyZWEtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8dGV4dGFyZWEgcm93cz01IGlkPSd0ZXh0LWFyZWEtZmllbGQnPjwvdGV4dGFyZWE+XG5cdFx0XHQ8L2Rpdj5gLFxuXHRzdHlsZTogYFxuICAgIDpob3N0e1xuICAgICAgICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgLndyYXBwZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgfVxuICAgIHRleHRhcmVhe1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNGZmO1xuICAgICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICAgICAgICAgICBgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRBcmVhRWxlbWVudCBleHRlbmRzIEN1c3RvbUlucHV0RWxlbWVudCB7XG5cdHRleHQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgJHt0aGlzLnRleHQudmFsdWV9YDtcblx0fVxuXG5cdHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy50ZXh0LnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMudGV4dC52YWxpZGl0eS52YWxpZDtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cdH1cblxuXHRpbml0Q2hpbGRJbnB1dHMoKSB7XG5cdFx0dGhpcy50ZXh0ID0gc3VwZXIuZ2V0Q2hpbGRJbnB1dCgnI3RleHQtYXJlYS1maWVsZCcpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICAgICAgfVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3RleHQtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD0ndGV4dC1maWVsZCcgLz5cblx0XHRcdDwvZGl2PmAsXG5cdHN0eWxlOiBgXG5cdDpob3N0e1xuXHRcdFx0d2lkdGg6MTAwJTtcblx0fVxuXHQud3JhcHBlcntcblx0XHRcdGRpc3BsYXk6ZmxleDtcblx0fVxuXHRpbnB1dHtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxZjRmZjtcblx0XHRcdG1hcmdpbjogMnB4O1xuXHRcdFx0cmVzaXplOiBub25lO1xuXHR9XG5cdFx0YCxcblx0dXNlU2hhZG93OiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0RmllbGRFbGVtZW50IGV4dGVuZHMgQ3VzdG9tSW5wdXRFbGVtZW50IHtcblx0dGV4dDogSFRNTElucHV0RWxlbWVudDtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGAke3RoaXMudGV4dC52YWx1ZX1gO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRleHQudmFsdWUgPSB2YWx1ZTtcblx0fVxuXG5cdGdldCB2YWxpZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy50ZXh0LnZhbGlkaXR5LnZhbGlkO1xuXHR9XG5cblx0Y29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG5cdFx0c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblx0fVxuXG5cdGluaXRDaGlsZElucHV0cygpIHtcblx0XHR0aGlzLnRleHQgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjdGV4dC1maWVsZCcpO1xuXHRcdHRoaXMudGV4dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZS5iaW5kKHRoaXMpKTtcblx0XHRpZiAodGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0dGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAnJyk7XG5cdFx0fVxuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy50ZXh0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICAgICAgfVxuXHR9XG5cblx0Ly8gZXZlbnRzXG5cdHB1YmxpYyBjaGFuZ2UoJGV2ZW50KTogdm9pZCB7XG5cdFx0dGhpcy50b3VjaGVkID0gdHJ1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLnZhbGlkO1xuXHRcdHRoaXMub25WYWxpZGF0ZS5lbWl0KFxuXHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ3ZhbGlkYXRlJyksXG5cdFx0KTtcblx0fVxufVxuIiwiaW1wb3J0IEN1c3RvbUVsZW1lbnQgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2N1c3RvbS1lbGVtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBDdXN0b21JbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvQ3VzdG9tRXZlbnRzJztcbmltcG9ydCBPcHRpb25XaXRoRGVzY3JpcHRpb24gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL01vZGVscy9PcHRpb25XaXRoRGVzY3JpcHRpb24nO1xuaW1wb3J0IERvbVV0aWxpdHkgZnJvbSAnLi4vLi4vZnJhbWV3b3JrL1V0aWxpdGllcy9Eb21VdGlsaXR5JztcblxuQEN1c3RvbUVsZW1lbnQoe1xuXHRzZWxlY3RvcjogJ3R5cGUtYWhlYWQtZWxlbWVudCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cblx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwidGV4dC1pbnB1dFwiPlxuXHRcdFx0PGRpdiBpZD1cImRlc2NyaXB0aW9uXCI+PC9kaXY+XG5cdFx0PC9kaXY+YCxcblx0c3R5bGU6IGBcblx0XHQ6aG9zdCB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdH1cblx0XHQud3JhcHBlciB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OmZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblx0XHQjdGV4dC1pbnB1dCB7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmMWY0ZmY7XG5cdFx0XHRtYXJnaW46IDJweDtcblx0XHRcdHJlc2l6ZTogbm9uZTtcblx0XHR9XG5cdFx0LndyYXBwZXIgI2Rlc2NyaXB0aW9uIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMCAycHg7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdH1cblx0XHQub3B0aW9ucy1saXN0IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNFOEU4RTg7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHRcdHotaW5kZXg6IDM7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRtYXgtaGVpZ2h0OiAyMDBweDtcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0fVxuXHRcdC5vcHRpb25zLWxpc3QtaXRlbSB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRThFOEU4O1xuXHRcdH1cblx0XHQub3B0aW9ucy1saXN0LWl0ZW06aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0U4RThFODtcblx0XHR9XG5cdFx0Lm9wdGlvbnMtbGlzdC1pdGVtLmFjdGl2ZSB7XG5cdFx0XHQvKndoZW4gbmF2aWdhdGluZyB0aHJvdWdoIHRoZSBpdGVtcyB1c2luZyB0aGUgYXJyb3cga2V5czoqL1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwM0U2NCAhaW1wb3J0YW50O1xuXHRcdFx0Y29sb3I6ICNGRkZGRkY7XG5cdFx0fVxuXHRcdC5vcHRpb25zLWxpc3QtaXRlbS10aXRsZSB7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0fVxuXHRcdC5vcHRpb25zLWxpc3QtaXRlbS1kZXNjcmlwdGlvbiB7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0fVxuXHRgLFxuXHR1c2VTaGFkb3c6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVBaGVhZEVsZW1lbnQgZXh0ZW5kcyBDdXN0b21JbnB1dEVsZW1lbnQge1xuXG5cdHByaXZhdGUgdGV4dElucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcblx0cHJpdmF0ZSBkZXNjcmlwdGlvbkVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIGNvbXBvbmVudFdyYXBwZXI6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIGN1cnJlbnRGb3Vjc2VkSW5kZXggPSAtMTtcblxuXHRzZWxlY3RlZE9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uO1xuXHRzZWFyY2hSZXN1bHRPcHRpb25zOiBPcHRpb25XaXRoRGVzY3JpcHRpb25bXSA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIGdldCBzZWFyY2hIYXNSZXN1bHRzKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IGF1dG9jb21wbGV0ZUxpc3QgPSBzdXBlci5nZXRDaGlsZEVsZW1lbnQoJy5vcHRpb25zLWxpc3QnKTtcblx0XHRyZXR1cm4gYXV0b2NvbXBsZXRlTGlzdCAmJiB0aGlzLm9wdGlvbnNXaXRoRGVzY3JpcHRpb25zICYmIHRoaXMub3B0aW9uc1dpdGhEZXNjcmlwdGlvbnMubGVuZ3RoID4gMDtcblx0fVxuXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdGlmICghdGhpcy5zZWxlY3RlZE9wdGlvbikge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9uLnZhbHVlO1xuXHR9XG5cblx0c2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRpZiAoIXRoaXMub3B0aW9uc1dpdGhEZXNjcmlwdGlvbnMgfHwgdGhpcy5vcHRpb25zV2l0aERlc2NyaXB0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zV2l0aERlc2NyaXB0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKTtcblx0XHRpZiAoIW9wdGlvbikge1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQuaW5uZXJIVE1MID0gbnVsbDtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcblx0XHR0aGlzLnRleHRJbnB1dEVsZW1lbnQudmFsdWUgPSBvcHRpb24udGl0bGU7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQuaW5uZXJIVE1MID0gb3B0aW9uLmRlc2NyaXB0aW9uO1xuXHR9XG5cblx0Z2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xuXHRcdGlmICh0aGlzLnJlcXVpcmVkKSB7XG5cdFx0XHRyZXR1cm4gISF0aGlzLnNlbGVjdGVkT3B0aW9uO1xuXHRcdH1cblx0XHRyZXR1cm4gISF0aGlzLnNlbGVjdGVkT3B0aW9uIHx8IHRoaXMudGV4dElucHV0RWxlbWVudC52YWx1ZSA9PT0gJyc7XG5cdH1cblxuXHRjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcblx0XHRzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXHR9XG5cblx0aW5pdENoaWxkSW5wdXRzKCkge1xuXHRcdHRoaXMudGV4dElucHV0RWxlbWVudCA9IHN1cGVyLmdldENoaWxkSW5wdXQoJyN0ZXh0LWlucHV0Jyk7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQgPSBzdXBlci5nZXRDaGlsZElucHV0KCcjZGVzY3JpcHRpb24nKTtcblx0XHR0aGlzLmNvbXBvbmVudFdyYXBwZXIgPSBzdXBlci5nZXRDaGlsZEVsZW1lbnQoJy53cmFwcGVyJyk7XG5cdFx0aWYgKHRoaXMucmVxdWlyZWQpIHtcblx0XHRcdHRoaXMudGV4dElucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJycpO1xuXHRcdH1cbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dElucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgIH1cblx0XHR0aGlzLnRleHRJbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy50ZXh0SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4ge1xuXHRcdFx0dGhpcy5pbnB1dEV2ZW50SGFuZGxlcigpO1xuXHRcdH0pO1xuXHRcdHRoaXMuYmluZE5hdmlnYXRpb24oKTtcblx0fVxuXG5cdHByaXZhdGUgaW5wdXRFdmVudEhhbmRsZXIoKSB7XG5cdFx0dGhpcy5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XG5cdFx0dGhpcy5kZXNjcmlwdGlvbkVsZW1lbnQuaW5uZXJIVE1MID0gbnVsbDtcblx0XHR0aGlzLmNsb3NlT3B0aW9uc0xpc3QoKTtcblx0XHR0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnMgPSBbXTtcblx0XHRjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMudGV4dElucHV0RWxlbWVudC52YWx1ZTtcblx0XHRpZiAoIXNlYXJjaFZhbHVlIHx8IHNlYXJjaFZhbHVlLnRyaW0oKSA9PT0gJycpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgb3B0aW9uc2xpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRvcHRpb25zbGlzdC5jbGFzc0xpc3QuYWRkKCdvcHRpb25zLWxpc3QnKTtcblxuXHRcdGlmICghdGhpcy5vcHRpb25zV2l0aERlc2NyaXB0aW9ucykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLm9wdGlvbnNXaXRoRGVzY3JpcHRpb25zLmZvckVhY2goKG9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uLCBpbmRleCkgPT4ge1xuXHRcdFx0dmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChzZWFyY2hWYWx1ZSwgJ2dpJyk7XG5cdFx0XHRjb25zdCBpc01hdGNoaW5nVGl0bGUgPSByZWdleC50ZXN0KG9wdGlvbi50aXRsZSk7XG5cdFx0XHRjb25zdCBpc01hdGNoaW5nVmFsdWUgPSByZWdleC50ZXN0KG9wdGlvbi52YWx1ZSk7XG5cdFx0XHRjb25zdCBpc01hdGNoaW5nRGVzY3JpcHRpb24gPSByZWdleC50ZXN0KG9wdGlvbi5kZXNjcmlwdGlvbik7XG5cdFx0XHRpZiAoIWlzTWF0Y2hpbmdUaXRsZSAmJiAhaXNNYXRjaGluZ1ZhbHVlICYmICFpc01hdGNoaW5nRGVzY3JpcHRpb24pIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5zZWFyY2hSZXN1bHRPcHRpb25zLnB1c2gob3B0aW9uKTtcblx0XHRcdGNvbnN0IG9wdGlvbnNMaXN0SXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgnb3B0aW9ucy1saXN0LWl0ZW0nKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbS5kYXRhc2V0Wyd2YWx1ZSddID0gb3B0aW9uLnZhbHVlO1xuXHRcdFx0b3B0aW9uc2xpc3QuYXBwZW5kQ2hpbGQob3B0aW9uc0xpc3RJdGVtKTtcblx0XHRcdGNvbnN0IG9wdGlvbnNMaXN0SXRlbVRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbVRpdGxlLmNsYXNzTGlzdC5hZGQoJ29wdGlvbnMtbGlzdC1pdGVtLXRpdGxlJyk7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW1UaXRsZS5pbm5lckhUTUwgPSBEb21VdGlsaXR5LmJvbGRlblRleHQob3B0aW9uLnRpdGxlLCBzZWFyY2hWYWx1ZSk7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW0uYXBwZW5kQ2hpbGQob3B0aW9uc0xpc3RJdGVtVGl0bGUpO1xuXHRcdFx0Y29uc3Qgb3B0aW9uc0xpc3RJdGVtRGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuXHRcdFx0b3B0aW9uc0xpc3RJdGVtRGVzY3JpcHRpb24uY2xhc3NMaXN0LmFkZCgnb3B0aW9ucy1saXN0LWl0ZW0tZGVzY3JpcHRpb24nKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbURlc2NyaXB0aW9uLmlubmVySFRNTCA9IERvbVV0aWxpdHkuYm9sZGVuVGV4dChvcHRpb24uZGVzY3JpcHRpb24sIHNlYXJjaFZhbHVlKTtcblx0XHRcdG9wdGlvbnNMaXN0SXRlbS5hcHBlbmRDaGlsZChvcHRpb25zTGlzdEl0ZW1EZXNjcmlwdGlvbik7XG5cdFx0XHRvcHRpb25zTGlzdEl0ZW0uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm9wdGlvblNlbGVjdGVkSGFuZGxlcihvcHRpb24pO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmNvbXBvbmVudFdyYXBwZXIuYXBwZW5kQ2hpbGQob3B0aW9uc2xpc3QpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjbG9zZU9wdGlvbnNMaXN0KCkge1xuXHRcdHRoaXMuY3VycmVudEZvdWNzZWRJbmRleCA9IC0xO1xuXHRcdGNvbnN0IG9wdGlvbnNMaXN0ID0gc3VwZXIuZ2V0Q2hpbGRFbGVtZW50KCcub3B0aW9ucy1saXN0Jyk7XG5cdFx0aWYgKCFvcHRpb25zTGlzdCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRvcHRpb25zTGlzdC5yZW1vdmUoKTtcblx0fVxuXG5cdHByaXZhdGUgb3B0aW9uU2VsZWN0ZWRIYW5kbGVyKG9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uKSB7XG5cdFx0dGhpcy52YWx1ZSA9IG9wdGlvbi52YWx1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgJ2NoYW5nZScpKTtcblx0XHR0aGlzLmNsb3NlT3B0aW9uc0xpc3QoKTtcblx0fVxuXG5cdHByaXZhdGUgYmluZE5hdmlnYXRpb24oKSB7XG5cdFx0dGhpcy50ZXh0SW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcblx0XHRcdGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG5cdFx0XHRcdHRoaXMuY2xvc2VPcHRpb25zTGlzdCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnNlYXJjaEhhc1Jlc3VsdHMpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4ID0gdGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4ID09PSB0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnMubGVuZ3RoIC0gMSA/IDAgOiB0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXggKyAxO1xuXHRcdFx0XHR0aGlzLmhpZ2hsaWdodEZvY3VzZWRTZWFyY2hSZXN1bHQoKTtcblx0XHRcdH1cblx0XHRcdGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuXHRcdFx0XHRpZiAoIXRoaXMuc2VhcmNoSGFzUmVzdWx0cykge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXggPSB0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXggPT09IDAgPyB0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnMubGVuZ3RoIC0gMSA6IHRoaXMuY3VycmVudEZvdWNzZWRJbmRleCAtIDE7XG5cdFx0XHRcdHRoaXMuaGlnaGxpZ2h0Rm9jdXNlZFNlYXJjaFJlc3VsdCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuXHRcdFx0XHRpZiAodGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4ICE9PSAtMSAmJiB0aGlzLnNlYXJjaEhhc1Jlc3VsdHMpIHtcblx0XHRcdFx0XHR0aGlzLm9wdGlvblNlbGVjdGVkSGFuZGxlcih0aGlzLnNlYXJjaFJlc3VsdE9wdGlvbnNbdGhpcy5jdXJyZW50Rm91Y3NlZEluZGV4XSk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRoaWdobGlnaHRGb2N1c2VkU2VhcmNoUmVzdWx0KCkge1xuXHRcdGNvbnN0IG9wdGlvbkxpc3RJdGVtcyA9IHN1cGVyLmdldENoaWxkRWxlbWVudHMoJy5vcHRpb25zLWxpc3QtaXRlbScpO1xuXHRcdGlmICghb3B0aW9uTGlzdEl0ZW1zKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdG9wdGlvbkxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSwgaW5kZXgpID0+IHtcblx0XHRcdGxpc3RJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xuXHRcdFx0aWYgKGluZGV4ID09PSB0aGlzLmN1cnJlbnRGb3Vjc2VkSW5kZXgpIHtcblx0XHRcdFx0bGlzdEl0ZW0uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgY2hhbmdlKCRldmVudCk6IHZvaWQge1xuXHRcdHRoaXMudG91Y2hlZCA9IHRydWU7XG5cdFx0dGhpcy5vbkNoYW5nZS5lbWl0KG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICdjaGFuZ2UnKSk7XG5cdH1cblxuXHRwdWJsaWMgdmFsaWRhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52YWxpZDtcblx0XHR0aGlzLm9uVmFsaWRhdGUuZW1pdChcblx0XHRcdG5ldyBDdXN0b21FbGVtZW50RXZlbnRBcmdzKHRoaXMudmFsdWUsICd2YWxpZGF0ZScpLFxuXHRcdCk7XG5cdH1cbn1cbiIsImV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXI8VD4ge1xuICAgIChldmVudDogVCk6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNwb3NhYmxlIHtcbiAgICBkaXNwb3NlKCk7XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21FbGVtZW50RXZlbnRBcmdzIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IGFueSwgcHVibGljIGV2ZW50TmFtZTogc3RyaW5nKSB7fVxufVxuLyoqIHBhc3NlcyB0aHJvdWdoIGV2ZW50cyBhcyB0aGV5IGhhcHBlbi4gWW91IHdpbGwgbm90IGdldCBldmVudHMgZnJvbSBiZWZvcmUgeW91IHN0YXJ0IGxpc3RlbmluZyAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbUVsZW1lbnRFdmVudDxUPiB7XG4gICAgcHJpdmF0ZSBsaXN0ZW5lcnM6IExpc3RlbmVyPFQ+W10gPSBbXTtcbiAgICBwcml2YXRlIGxpc3RlbmVyc09uY2VyOiBMaXN0ZW5lcjxUPltdID0gW107XG5cbiAgICBvbiA9IChsaXN0ZW5lcjogTGlzdGVuZXI8VD4pOiBEaXNwb3NhYmxlID0+IHtcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkaXNwb3NlOiAoKSA9PiB0aGlzLm9mZihsaXN0ZW5lciksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIG9uY2UgPSAobGlzdGVuZXI6IExpc3RlbmVyPFQ+KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMubGlzdGVuZXJzT25jZXIucHVzaChsaXN0ZW5lcik7XG4gICAgfTtcblxuICAgIG9mZiA9IChsaXN0ZW5lcjogTGlzdGVuZXI8VD4pID0+IHtcbiAgICAgICAgdmFyIGNhbGxiYWNrSW5kZXggPSB0aGlzLmxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrSW5kZXggPiAtMSkgdGhpcy5saXN0ZW5lcnMuc3BsaWNlKGNhbGxiYWNrSW5kZXgsIDEpO1xuICAgIH07XG5cbiAgICBlbWl0ID0gKGV2ZW50OiBUKSA9PiB7XG4gICAgICAgIC8qKiBVcGRhdGUgYW55IGdlbmVyYWwgbGlzdGVuZXJzICovXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4gbGlzdGVuZXIoZXZlbnQpKTtcblxuICAgICAgICAvKiogQ2xlYXIgdGhlIGBvbmNlYCBxdWV1ZSAqL1xuICAgICAgICBpZiAodGhpcy5saXN0ZW5lcnNPbmNlci5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVyc09uY2VyLmZvckVhY2gobGlzdGVuZXIgPT4gbGlzdGVuZXIoZXZlbnQpKTtcbiAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzT25jZXIgPSBbXTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwaXBlID0gKHRlOiBDdXN0b21FbGVtZW50RXZlbnQ8VD4pOiBEaXNwb3NhYmxlID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub24oZSA9PiB0ZS5lbWl0KGUpKTtcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgQ3VzdG9tRWxlbWVudEV2ZW50LCBDdXN0b21FbGVtZW50RXZlbnRBcmdzIH0gZnJvbSBcIi4vQ3VzdG9tRXZlbnRzXCI7XG5pbXBvcnQgT3B0aW9uV2l0aERlc2NyaXB0aW9uIGZyb20gXCIuL01vZGVscy9PcHRpb25XaXRoRGVzY3JpcHRpb25cIjtcbmltcG9ydCBBcnJheVV0aWwgZnJvbSBcIi4vVXRpbGl0aWVzL0FycmF5VXRpbFwiO1xuaW1wb3J0IERvbVV0aWwgZnJvbSBcIi4vVXRpbGl0aWVzL0RvbVV0aWxcIjtcblxuY2xhc3MgSURpY3Rpb25hcnk8VFZhbHVlPiB7XG5cdFtpbmRleDogc3RyaW5nXTogVFZhbHVlO1xufVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbUlucHV0RWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHtcblx0cHJpdmF0ZSBkZXBlbmRlbnRPbkxpc3QgPSBuZXcgSURpY3Rpb25hcnk8Ym9vbGVhbj4oKTtcblx0cHJpdmF0ZSB2aXNpYmlsaXR5U3RhdGUgPSB0cnVlO1xuXG5cdHByb3RlY3RlZCB0b3VjaGVkID0gZmFsc2U7XG5cdHByb3RlY3RlZCBkb21VdGlsOiBEb21VdGlsO1xuXG5cdHByb3RlY3RlZCBoYXNWYWx1ZURlcGVuZGVuY3k6IGFueTtcblx0cHJvdGVjdGVkIG5vVmFsdWVEZXBlbmRlbmN5OiBhbnk7XG5cdHByb3RlY3RlZCBkZXBlbmRlbmNpZXM6IGFueVtdO1xuXG5cdHB1YmxpYyBvbkNoYW5nZSA9IG5ldyBDdXN0b21FbGVtZW50RXZlbnQ8Q3VzdG9tRWxlbWVudEV2ZW50QXJncz4oKTtcblx0cHVibGljIG9uVmFsaWRhdGUgPSBuZXcgQ3VzdG9tRWxlbWVudEV2ZW50PEN1c3RvbUVsZW1lbnRFdmVudEFyZ3M+KCk7XG5cdHB1YmxpYyBvblZpc2liaWxpdHlDaGFuZ2VkID0gbmV3IEN1c3RvbUVsZW1lbnRFdmVudDxDdXN0b21FbGVtZW50RXZlbnRBcmdzPigpO1xuXG5cdHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cdHB1YmxpYyBvcHRpb25zOiBhbnlbXTtcblx0cHVibGljIG9wdGlvbnNXaXRoRGVzY3JpcHRpb25zOiBPcHRpb25XaXRoRGVzY3JpcHRpb25bXTtcblx0cHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuXHRwdWJsaWMgY3VzdG9tVmFsdWU6IHN0cmluZztcblx0cHVibGljIGFsbERlcGVuZGVuY2llc011c3RCZU1ldDogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgbXVsdGk6IGJvb2xlYW4gPSBmYWxzZTtcblx0cHVibGljIG1heDogYW55O1xuXHRwdWJsaWMgbWluOiBhbnk7XG5cdHB1YmxpYyBzdGVwOiBhbnk7XG5cdHB1YmxpYyBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG5cdGFic3RyYWN0IHNldCB2YWx1ZSh2YWx1ZSk7XG5cdGFic3RyYWN0IGdldCB2YWxpZCgpOiBib29sZWFuO1xuXG5cdGFic3RyYWN0IGluaXRDaGlsZElucHV0cygpOiB2b2lkO1xuXHRhYnN0cmFjdCB2YWxpZGF0ZSgpOiB2b2lkO1xuXHRhYnN0cmFjdCBjaGFuZ2UoJGV2ZW50KTogdm9pZDtcblxuXHRjb21wYXJlVmxhdWVzID0gW107XG5cblx0aXNWYWx1ZUNvbmRpdGlvbk1hdGNoZWQodmFsOiBhbnkpIHtcblx0XHRpZiAodmFsICYmIEFycmF5LmlzQXJyYXkodmFsKSAmJiB2YWwubGVuZ3RoKSB7XG5cdFx0XHRsZXQgcmVzdWx0ID0gZmFsc2U7XG5cdFx0XHR2YWwuZm9yRWFjaChlbGVtZW50ID0+IHtcblx0XHRcdFx0Y29uc3QgZWxlbWVudE1hdGNoZWQgPSB0aGlzLmNvbXBhcmVWbGF1ZXMuZmluZEluZGV4KHggPT4geCA9PSBlbGVtZW50KSAhPT0gLTE7XG5cdFx0XHRcdGlmIChlbGVtZW50TWF0Y2hlZCkge1xuXHRcdFx0XHRcdHJlc3VsdCA9IHRydWU7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmNvbXBhcmVWbGF1ZXMuZmluZEluZGV4KHggPT4geCA9PSB2YWwpICE9PSAtMTtcblx0fVxuXG5cdGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuXHRcdHRoaXMuaW5pdCgpO1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlcygpO1xuXHR9XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG5cdFx0dGhpcy5kb21VdGlsID0gbmV3IERvbVV0aWwodGhpcyk7XG5cdFx0dGhpcy5wYXJzZURhdGEoKTtcblx0XHR0aGlzLmluaXRDaGlsZElucHV0cygpO1xuXHRcdHRoaXMuYmluZEV2ZW50cygpO1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlcygpO1xuXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsICgpID0+IHtcblx0XHRcdHRoaXMuYmluZERlcGVuZGVuY2llcygpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBwYXJzZURhdGEoKTogdm9pZCB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghKHRoaXMuY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBIVE1MU2NyaXB0RWxlbWVudCkpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0bGV0IGRhdGEgPSBKU09OLnBhcnNlKHRoaXMuY2hpbGRyZW5bMF0uaW5uZXJIVE1MKTtcblx0XHRcdHRoaXMub3B0aW9ucyA9IGRhdGEub3B0aW9ucztcblx0XHRcdHRoaXMub3B0aW9uc1dpdGhEZXNjcmlwdGlvbnMgPSBkYXRhLm9wdGlvbnNXaXRoRGVzY3JpcHRpb25zO1xuXHRcdFx0dGhpcy5oYXNWYWx1ZURlcGVuZGVuY3kgPSBkYXRhLmhhc1ZhbHVlRGVwZW5kZW5jeTtcblx0XHRcdHRoaXMubm9WYWx1ZURlcGVuZGVuY3kgPSBkYXRhLm5vVmFsdWVEZXBlbmRlbmN5O1xuXHRcdFx0dGhpcy5kZXBlbmRlbmNpZXMgPSBkYXRhLmRlcGVuZGVuY2llcztcblx0XHRcdHRoaXMucmVxdWlyZWQgPSBkYXRhLnJlcXVpcmVkO1xuXHRcdFx0dGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGRhdGEucGxhY2Vob2xkZXI7XG5cdFx0XHR0aGlzLmFsbERlcGVuZGVuY2llc011c3RCZU1ldCA9IGRhdGEuYWxsRGVwZW5kZW5jaWVzTXVzdEJlTWV0O1xuXHRcdFx0dGhpcy5tdWx0aSA9IGRhdGEubXVsdGk7XG5cdFx0XHR0aGlzLm1heCA9IGRhdGEubWF4O1xuXHRcdFx0dGhpcy5taW4gPSBkYXRhLm1pbjtcblx0XHRcdHRoaXMuc3RlcCA9IGRhdGEuc3RlcDtcblx0XHRcdHRoaXMuY3VzdG9tVmFsdWUgPSBkYXRhLnZhbHVlO1xuXHRcdFx0dGhpcy5kYXRlRm9ybWF0ID0gZGF0YS5kYXRlRm9ybWF0O1xuXHRcdH0gY2F0Y2ggKGV4KSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGV4KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGJpbmRFdmVudHMoKTogdm9pZCB7XG5cdFx0dGhpcy5vblZhbGlkYXRlLm9uKGUgPT4ge1xuXHRcdFx0aWYgKHRoaXMudmFsaWQpIHtcblx0XHRcdFx0aWYgKHRoaXMuY2xvc2VzdCgnLmN1c3RvbS12YWxpZGF0aW9uLXRhcmdldCcpKSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykuY2xhc3NMaXN0LnJlbW92ZShcImludmFsaWRcIik7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykuY2xhc3NMaXN0LmFkZChcInZhbGlkXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpZiAodGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykpIHtcblx0XHRcdFx0XHR0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKS5jbGFzc0xpc3QuYWRkKFwiaW52YWxpZFwiKTtcblx0XHRcdFx0XHR0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKS5jbGFzc0xpc3QucmVtb3ZlKFwidmFsaWRcIik7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kb21VdGlsLmZvY3VzKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy5vbkNoYW5nZS5vbihlID0+IHtcblx0XHRcdGlmICh0aGlzLnRvdWNoZWQpIHtcblx0XHRcdFx0dGhpcy52YWxpZGF0ZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRBdHRyaWJ1dGVzKCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlKFwiY3VzdG9tLWlucHV0XCIsIFwiXCIpO1xuXHRcdHRoaXMuc2V0QXR0cmlidXRlKFwibmFtZVwiLCB0aGlzLm5hbWUpO1xuXHR9XG5cblx0cHJpdmF0ZSBiaW5kRGVwZW5kZW5jaWVzKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmhhc1ZhbHVlRGVwZW5kZW5jeSAmJiB0aGlzLmhhc1ZhbHVlRGVwZW5kZW5jeS5pdGVtcy5sZW5ndGgpIHtcblx0XHRcdGZvciAoY29uc3QgZmllbGROYW1lIG9mIHRoaXMuaGFzVmFsdWVEZXBlbmRlbmN5Lml0ZW1zKSB7XG5cdFx0XHRcdHRoaXMuYmluZERlcGVuZGVuY3koZmllbGROYW1lLCBcImhhc1wiKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5ub1ZhbHVlRGVwZW5kZW5jeSAmJiB0aGlzLm5vVmFsdWVEZXBlbmRlbmN5Lml0ZW1zLmxlbmd0aCkge1xuXHRcdFx0Zm9yIChjb25zdCBmaWVsZE5hbWUgb2YgdGhpcy5ub1ZhbHVlRGVwZW5kZW5jeS5pdGVtcykge1xuXHRcdFx0XHR0aGlzLmJpbmREZXBlbmRlbmN5KGZpZWxkTmFtZSwgXCJub1wiKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodGhpcy5kZXBlbmRlbmNpZXMgJiYgdGhpcy5kZXBlbmRlbmNpZXMubGVuZ3RoKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGluZGV4IGluIHRoaXMuZGVwZW5kZW5jaWVzKSB7XG5cdFx0XHRcdGlmICh0aGlzLmRlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShpbmRleCkpIHtcblx0XHRcdFx0XHRjb25zdCBkZXBlbmRlbmN5ID0gdGhpcy5kZXBlbmRlbmNpZXNbaW5kZXhdO1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZmllbGROYW1lIG9mIGRlcGVuZGVuY3kuaXRlbXMpIHtcblx0XHRcdFx0XHRcdHRoaXMuYmluZERlcGVuZGVuY3koXG5cdFx0XHRcdFx0XHRcdGZpZWxkTmFtZSxcblx0XHRcdFx0XHRcdFx0XCJjdXN0b21cIixcblx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeS52YWx1ZSxcblx0XHRcdFx0XHRcdFx0ZGVwZW5kZW5jeS5jcml0ZXJpYSxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBiaW5kRGVwZW5kZW5jeShlbGVtZW50TmFtZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nLCBjcml0ZXJpYT86IHN0cmluZywpOiB2b2lkIHtcblx0XHRsZXQgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtuYW1lPVwiJHtlbGVtZW50TmFtZX1cIl1gKSBhcyBDdXN0b21JbnB1dEVsZW1lbnQ7XG5cdFx0aWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBDdXN0b21JbnB1dEVsZW1lbnQpIHtcblx0XHRcdGVsZW1lbnQuY29tcGFyZVZsYXVlcy5wdXNoKHZhbHVlKTtcblx0XHRcdGlmICh0aGlzLmRlcGVuZGVudE9uTGlzdC5oYXNPd25Qcm9wZXJ0eShlbGVtZW50Lm5hbWUpKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGxldCBpc1Zpc2libGVCeURlZmF1bHQgPSB0eXBlID09PSBcIm5vXCI7XG5cdFx0XHRlbGVtZW50LlJlZ2lzdGVyRGVwZW5kZW50T24odGhpcy5uYW1lLCBpc1Zpc2libGVCeURlZmF1bHQpO1xuXHRcdFx0dGhpcy5vbkNoYW5nZS5vbihlID0+IHtcblx0XHRcdFx0bGV0IElzQ29uZGl0aW9uTWF0Y2hlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZiAodHlwZSA9PT0gXCJoYXNcIikge1xuXHRcdFx0XHRcdElzQ29uZGl0aW9uTWF0Y2hlZCA9ICEhZS52YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodHlwZSA9PT0gXCJub1wiKSB7XG5cdFx0XHRcdFx0SXNDb25kaXRpb25NYXRjaGVkID0gIWUudmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHR5cGUgPT09IFwiY3VzdG9tXCIpIHtcblx0XHRcdFx0XHRpZiAoY3JpdGVyaWEgPT09IFwiRXhhY3RcIikge1xuXHRcdFx0XHRcdFx0SXNDb25kaXRpb25NYXRjaGVkID0gZWxlbWVudC5pc1ZhbHVlQ29uZGl0aW9uTWF0Y2hlZChlLnZhbHVlKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRlcmlhID09PSBcIkxlc3NUaGFuXCIpIHtcblx0XHRcdFx0XHRcdElzQ29uZGl0aW9uTWF0Y2hlZCA9IGUudmFsdWUgPCB2YWx1ZTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGNyaXRlcmlhID09PSBcIk1vcmVUaGFuXCIpIHtcblx0XHRcdFx0XHRcdElzQ29uZGl0aW9uTWF0Y2hlZCA9IGUudmFsdWUgPiB2YWx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxlbWVudC5EZXBlbmRlbnRPblN0YXRlQ2hhbmdlZCh0aGlzLm5hbWUsIElzQ29uZGl0aW9uTWF0Y2hlZCk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMub25WaXNpYmlsaXR5Q2hhbmdlZC5vbihlID0+IHtcblx0XHRcdFx0aWYgKHRoaXMudmlzaWJpbGl0eVN0YXRlKSB7XG5cdFx0XHRcdFx0dGhpcy5vbkNoYW5nZS5lbWl0KFxuXHRcdFx0XHRcdFx0bmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgXCJjaGFuZ2VcIiksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRlbGVtZW50LkRlcGVuZGVudE9uU3RhdGVDaGFuZ2VkKHRoaXMubmFtZSwgZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHNldFZpc2liaWxpdHkoKSB7XG5cdFx0aWYgKHRoaXMuYWxsRGVwZW5kZW5jaWVzTXVzdEJlTWV0KSB7XG5cdFx0XHR0aGlzLnZpc2liaWxpdHlTdGF0ZSA9IE9iamVjdC52YWx1ZXModGhpcy5kZXBlbmRlbnRPbkxpc3QpLmV2ZXJ5KHN0YXRlID0+IHN0YXRlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy52aXNpYmlsaXR5U3RhdGUgPSBPYmplY3QudmFsdWVzKHRoaXMuZGVwZW5kZW50T25MaXN0KS5zb21lKHN0YXRlID0+IHN0YXRlKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy52aXNpYmlsaXR5U3RhdGUpIHtcblx0XHRcdHRoaXMuc2hvdygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmhpZGUoKTtcblx0XHR9XG5cdFx0dGhpcy5vblZpc2liaWxpdHlDaGFuZ2VkLmVtaXQobmV3IEN1c3RvbUVsZW1lbnRFdmVudEFyZ3ModGhpcy52YWx1ZSwgXCJWaXNpYmlsaXR5Q2hhbmdlZFwiKSk7XG5cdH1cblxuXHRwcml2YXRlIGhpZGUoKSB7XG5cdFx0dGhpcy5zZXRBdHRyaWJ1dGUoXCJoaWRkZW5cIiwgXCJcIik7XG5cdFx0aWYgKHRoaXMuY2xvc2VzdCgnLmN1c3RvbS12YWxpZGF0aW9uLXRhcmdldCcpKSB7XG5cdFx0XHR0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKS5zZXRBdHRyaWJ1dGUoXCJoaWRkZW5cIiwgXCJcIik7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzaG93KCkge1xuXHRcdHRoaXMucmVtb3ZlQXR0cmlidXRlKFwiaGlkZGVuXCIpO1xuXHRcdGlmICh0aGlzLmNsb3Nlc3QoJy5jdXN0b20tdmFsaWRhdGlvbi10YXJnZXQnKSkge1xuXHRcdFx0dGhpcy5jbG9zZXN0KCcuY3VzdG9tLXZhbGlkYXRpb24tdGFyZ2V0JykucmVtb3ZlQXR0cmlidXRlKFwiaGlkZGVuXCIpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBnZXRDaGlsZElucHV0KHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50IHtcblx0XHRsZXQgZWxlbWVudDogYW55ID0gdGhpcztcblx0XHRpZiAodGhpcy5zaGFkb3dSb290KSB7XG5cdFx0XHRlbGVtZW50ID0gdGhpcy5zaGFkb3dSb290O1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXHR9XG5cblx0cHJvdGVjdGVkIGdldENoaWxkSW5wdXRzKHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50W10ge1xuXHRcdGxldCBlbGVtZW50OiBhbnkgPSB0aGlzO1xuXHRcdGlmICh0aGlzLnNoYWRvd1Jvb3QpIHtcblx0XHRcdGVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q7XG5cdFx0fVxuXHRcdHJldHVybiBBcnJheVV0aWwuRnJvbU5vZGVMaXN0KFxuXHRcdFx0ZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSxcblx0XHQpIGFzIEhUTUxJbnB1dEVsZW1lbnRbXTtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRDaGlsZEVsZW1lbnQoc2VsZWN0b3I6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcblx0XHRsZXQgZWxlbWVudDogYW55ID0gdGhpcztcblx0XHRpZiAodGhpcy5zaGFkb3dSb290KSB7XG5cdFx0XHRlbGVtZW50ID0gdGhpcy5zaGFkb3dSb290O1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSBhcyBIVE1MRWxlbWVudDtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRDaGlsZEVsZW1lbnRzKHNlbGVjdG9yOiBzdHJpbmcpOiBIVE1MRWxlbWVudFtdIHtcblx0XHRsZXQgZWxlbWVudDogYW55ID0gdGhpcztcblx0XHRpZiAodGhpcy5zaGFkb3dSb290KSB7XG5cdFx0XHRlbGVtZW50ID0gdGhpcy5zaGFkb3dSb290O1xuXHRcdH1cblx0XHRyZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSBhcyBIVE1MRWxlbWVudFtdO1xuXHR9XG5cblx0cHVibGljIFJlZ2lzdGVyRGVwZW5kZW50T24obmFtZTogc3RyaW5nLCBpbml0aWFsVmFsdWU6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdHRoaXMuZGVwZW5kZW50T25MaXN0W25hbWVdID0gaW5pdGlhbFZhbHVlO1xuXHRcdHRoaXMuc2V0VmlzaWJpbGl0eSgpO1xuXHR9XG5cblx0cHVibGljIERlcGVuZGVudE9uU3RhdGVDaGFuZ2VkKG5hbWU6IHN0cmluZywgc3RhdGU6IGJvb2xlYW4pIHtcblx0XHRpZiAodGhpcy5kZXBlbmRlbnRPbkxpc3QuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcblx0XHRcdHRoaXMuZGVwZW5kZW50T25MaXN0W25hbWVdID0gc3RhdGU7XG5cdFx0fVxuXHRcdHRoaXMuc2V0VmlzaWJpbGl0eSgpO1xuXHR9XG59XG4iLCJleHBvcnQgZGVmYXVsdCBhYnN0cmFjdCBjbGFzcyBCYXNlRGljdGlvbmFyeSB7XG5cdGFic3RyYWN0IGRpY3Rpb25hcnk6IGFueTtcblxuXHRnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGtleVBhcnRzID0ga2V5LnNwbGl0KCcuJyk7XG5cdFx0dmFyIHJlc3VsdDogc3RyaW5nIHwgYW55ID0gdGhpcy5kaWN0aW9uYXJ5O1xuXHRcdGtleVBhcnRzLmZvckVhY2goa2V5UGFydCA9PiB7XG5cdFx0XHRyZXN1bHQgPSByZXN1bHRba2V5UGFydF07XG5cdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRyZXN1bHQgPSBrZXk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3plY2hEaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc2FcIixcbiAgICAgICAgICAgIENpdHk6IFwibcSbc3RvXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcInplbcSbXCIsXG4gICAgICAgICAgICBaaXA6IFwicG/FoXRvdm7DrSBzbcSbcm92YWPDrSDEjcOtc2xvXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiw5rEjWV0XCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiUmVnaXN0cmHEjW7DrSDEjcOtc2xvXCJcbiAgICAgICAgfVxuICAgIH07XG5cbn1cbiIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhbmlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cblx0ZGljdGlvbmFyeTogYW55ID0ge1xuXHRcdEFkZHJlc3NFbGVtZW50OiB7XG5cdFx0XHRBZGRyZXNzOiBcImFkcmVzc2VcIixcblx0XHRcdENpdHk6IFwiYnlcIixcblx0XHRcdENvdW50cnk6IFwibGFuZFwiLFxuXHRcdFx0WmlwOiBcInBvc3RudW1tZXJcIlxuXHRcdH0sXG5cdFx0QmFua0VsZW1lbnQ6IHtcblx0XHRcdEFjY291bnQ6IFwiS29udG9udW1tZXJcIixcblx0XHRcdFJlZ2lzdHJhdGlvbk51bWJlcjogXCJSZWdpc3RyZXJpbmdzbnVtbWVyXCJcblx0XHR9XG5cdH07XG5cbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEdXRjaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cbiAgICBkaWN0aW9uYXJ5OiBhbnkgPSB7XG4gICAgICAgIEFkZHJlc3NFbGVtZW50OiB7XG4gICAgICAgICAgICBBZGRyZXNzOiBcImFkcmVzXCIsXG4gICAgICAgICAgICBDaXR5OiBcInN0YWRcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwibGFuZFwiLFxuICAgICAgICAgICAgWmlwOiBcInBvc3Rjb2RlXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua3Jla2VuaW5nXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiQmFua3Jla2VuaW5nIFJlZ2lzdHJhdGllbnVtbWVyXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW5nbGlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cblx0ZGljdGlvbmFyeTogYW55ID0ge1xuXHRcdEFkZHJlc3NFbGVtZW50OiB7XG5cdFx0XHRBZGRyZXNzOiBcImFkZHJlc3NcIixcblx0XHRcdENpdHk6IFwiY2l0eVwiLFxuXHRcdFx0Q291bnRyeTogXCJjb3VudHJ5XCIsXG5cdFx0XHRaaXA6IFwiemlwXCJcblx0XHR9LFxuXHRcdEJhbmtFbGVtZW50OiB7XG5cdFx0XHRBY2NvdW50OiBcIkJhbmsgQWNjb3VudFwiLFxuXHRcdFx0UmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmsgQWNjb3VudCBSZWdpc3RyYXRpb24gTnVtYmVyXCJcblx0XHR9XG5cdH07XG5cbn1cbiIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVzdG9uaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiYWFkcmVzc1wiLFxuICAgICAgICAgICAgQ2l0eTogXCJsaW5uXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcInJpaWtcIixcbiAgICAgICAgICAgIFppcDogXCJwb3N0aWluZGVrc1wiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIlBhbmdha29udG9cIixcbiAgICAgICAgICAgIFJlZ2lzdHJhdGlvbk51bWJlcjogXCJQYW5nYWtvbnRvIHJlZ2lzdHJlZXJpbWlzbnVtYmVyXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlubmlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG4gICAgXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJvc29pdGVcIixcbiAgICAgICAgICAgIENpdHk6IFwia2F1cHVua2lcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwibWFhXCIsXG4gICAgICAgICAgICBaaXA6IFwicG9zdGludW1lcm9cIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJQYW5ra2l0aWxpXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiUGFua2tpdGlsaW4gcmVraXN0ZXLDtmludGludW1lcm9cIlxuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmVuY2hEaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc3NlXCIsXG4gICAgICAgICAgICBDaXR5OiBcInZpbGxlXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcInBheXNcIixcbiAgICAgICAgICAgIFppcDogXCJjb2RlIHBvc3RhbFwiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkNvbXB0ZSBiYW5jYWlyZVwiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIk51bcOpcm8gZCdlbnJlZ2lzdHJlbWVudCBkdSBjb21wdGUgYmFuY2FpcmVcIlxuICAgICAgICB9XG4gICAgfTtcblxufSIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdlcm1hbkRpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cbiAgICBkaWN0aW9uYXJ5OiBhbnkgPSB7XG4gICAgICAgIEFkZHJlc3NFbGVtZW50OiB7XG4gICAgICAgICAgICBBZGRyZXNzOiBcIkFkcmVzc2VcIixcbiAgICAgICAgICAgIENpdHk6IFwiU3RhZHRcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwiTGFuZFwiLFxuICAgICAgICAgICAgWmlwOiBcIlBvc3RsZWl0emFobFwiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkJhbmtrb250b1wiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmtrb250b3JlZ2lzdHJpZXJ1bmdzbnVtbWVyXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR3JlZWtEaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCLOtM65zrXPjc64z4XOvc+DzrdcIixcbiAgICAgICAgICAgIENpdHk6IFwiz4DPjM67zrdcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwiz4fPjs+BzrFcIixcbiAgICAgICAgICAgIFppcDogXCLPhM6xz4fPhc60z4HOv868zrnOus+Mz4IgzrrPjs60zrnOus6xz4JcIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCLOpM+BzrHPgM61zrbOuc66z4zPgiDOu86/zrPOsc+BzrnOsc+DzrzPjM+CXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwizpHPgc65zrjOvM+Mz4IgzrXOs86zz4HOsc+Gzq7PgiDPhM+BzrHPgM61zrbOuc66zr/PjSDOu86/zrPOsc+BzrnOsc+DzrzOv8+NXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHVuZ2FyaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiY8OtbVwiLFxuICAgICAgICAgICAgQ2l0eTogXCJ2w6Fyb3NcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwib3JzesOhZ1wiLFxuICAgICAgICAgICAgWmlwOiBcImlyw6FuecOtdMOzc3rDoW1cIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJCYW5raSBzesOhbWxhXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiQmFua2kgc3rDoW1sYSByZWdpc3p0csOhY2nDs3Mgc3rDoW1hXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNlbGFuZGljRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiaGVpbWlsaXNmYW5nXCIsXG4gICAgICAgICAgICBDaXR5OiBcImJvcmdcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwibGFuZFwiLFxuICAgICAgICAgICAgWmlwOiBcInDDs3N0bsO6bWVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua2FyZWlrbmluZ3VyXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiTsO6bWVyIHNrcsOhbmluZ2FyIMOhIGJhbmthcmVpa25pbmdpXCJcbiAgICAgICAgfVxuICAgIH07XG5cbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGFsaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiaW5kaXJpenpvXCIsXG4gICAgICAgICAgICBDaXR5OiBcImNpdHTDoFwiLFxuICAgICAgICAgICAgQ291bnRyeTogXCJuYXppb25lXCIsXG4gICAgICAgICAgICBaaXA6IFwiY29kaWNlIHBvc3RhbGVcIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJjb250byBiYW5jYXJpb1wiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIk51bWVybyBkaSByZWdpc3RyYXppb25lIGRlbCBjb250byBiYW5jYXJpb1wiXG4gICAgICAgIH1cbiAgICB9O1xuICAgIFxufSIsImltcG9ydCBCYXNlRGljdGlvbmFyeSBmcm9tIFwiLi9CYXNlL0Jhc2VEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExhdHZpYW5EaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc2VcIixcbiAgICAgICAgICAgIENpdHk6IFwicGlsc8STdGFcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwidmFsc3RzXCIsXG4gICAgICAgICAgICBaaXA6IFwicGFzdGEgaW5kZWtzc1wiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkJhbmthcyBrb250c1wiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmthcyBrb250YSByZcSjaXN0csSBY2lqYXMgbnVtdXJzXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl0dWFuaWFuRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiYWRyZXNhc1wiLFxuICAgICAgICAgICAgQ2l0eTogXCJtaWVzdGFzXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcIsWhYWxpc1wiLFxuICAgICAgICAgICAgWmlwOiBcInBhxaF0byBrb2Rhc1wiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkJhbmtvIHPEhXNrYWl0YVwiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIkJhbmtvIHPEhXNrYWl0b3MgcmVnaXN0cmFjaWpvcyBudW1lcmlzXCJcbiAgICAgICAgfVxuICAgIH07XG5cbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb3J3ZWdpYW5EaWN0aW9uYXJ5IGV4dGVuZHMgQmFzZURpY3Rpb25hcnkge1xuXG4gICAgZGljdGlvbmFyeTogYW55ID0ge1xuICAgICAgICBBZGRyZXNzRWxlbWVudDoge1xuICAgICAgICAgICAgQWRkcmVzczogXCJhZHJlc3NlXCIsXG4gICAgICAgICAgICBDaXR5OiBcImJ5XCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcImxhbmRcIixcbiAgICAgICAgICAgIFppcDogXCJwb3N0bnVtbWVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua2tvbnRvXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiUmVnaXN0cmVyaW5nc251bW1lciBmb3IgYmFua2tvbnRvXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9saXNoRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiYWRyZXNcIixcbiAgICAgICAgICAgIENpdHk6IFwibWlhc3RvXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcImtyYWpcIixcbiAgICAgICAgICAgIFppcDogXCJrb2QgcG9jenRvd3lcIlxuICAgICAgICB9LFxuICAgICAgICBCYW5rRWxlbWVudDoge1xuICAgICAgICAgICAgQWNjb3VudDogXCJLb250byBiYW5rb3dlXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiTnVtZXIgcmVqZXN0cmFjeWpueSBrb250YSBiYW5rb3dlZ29cIlxuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3J0dWd1ZXNlRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiZW5kZXJlw6dvXCIsXG4gICAgICAgICAgICBDaXR5OiBcImNpZGFkZVwiLFxuICAgICAgICAgICAgQ291bnRyeTogXCJwYcOtc1wiLFxuICAgICAgICAgICAgWmlwOiBcImPDs2RpZ28gcG9zdGFsXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQ29udGEgYmFuY8OhcmlhXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiTsO6bWVybyBkZSByZWdpc3RybyBkYSBjb250YSBiYW5jw6FyaWFcIlxuICAgICAgICB9XG4gICAgfTtcbiAgICBcbn0iLCJpbXBvcnQgQmFzZURpY3Rpb25hcnkgZnJvbSBcIi4vQmFzZS9CYXNlRGljdGlvbmFyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTcGFuaXNoRGljdGlvbmFyeSBleHRlbmRzIEJhc2VEaWN0aW9uYXJ5IHtcblxuICAgIGRpY3Rpb25hcnk6IGFueSA9IHtcbiAgICAgICAgQWRkcmVzc0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFkZHJlc3M6IFwiZGlyZWNjacOzblwiLFxuICAgICAgICAgICAgQ2l0eTogXCJjaXVkYWRcIixcbiAgICAgICAgICAgIENvdW50cnk6IFwicGHDrXNcIixcbiAgICAgICAgICAgIFppcDogXCJjw7NkaWdvIHBvc3RhbFwiXG4gICAgICAgIH0sXG4gICAgICAgIEJhbmtFbGVtZW50OiB7XG4gICAgICAgICAgICBBY2NvdW50OiBcIkN1ZW50YSBiYW5jYXJpYVwiLFxuICAgICAgICAgICAgUmVnaXN0cmF0aW9uTnVtYmVyOiBcIk7Dum1lcm8gZGUgcmVnaXN0cm8gZGUgY3VlbnRhIGJhbmNhcmlhXCJcbiAgICAgICAgfVxuICAgIH07XG4gICAgXG59IiwiaW1wb3J0IEJhc2VEaWN0aW9uYXJ5IGZyb20gXCIuL0Jhc2UvQmFzZURpY3Rpb25hcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3dlZGlzaERpY3Rpb25hcnkgZXh0ZW5kcyBCYXNlRGljdGlvbmFyeSB7XG5cbiAgICBkaWN0aW9uYXJ5OiBhbnkgPSB7XG4gICAgICAgIEFkZHJlc3NFbGVtZW50OiB7XG4gICAgICAgICAgICBBZGRyZXNzOiBcImFkcmVzc1wiLFxuICAgICAgICAgICAgQ2l0eTogXCJzdGFkXCIsXG4gICAgICAgICAgICBDb3VudHJ5OiBcImxhbmRcIixcbiAgICAgICAgICAgIFppcDogXCJwb3N0bnVtbWVyXCJcbiAgICAgICAgfSxcbiAgICAgICAgQmFua0VsZW1lbnQ6IHtcbiAgICAgICAgICAgIEFjY291bnQ6IFwiQmFua2tvbnRvXCIsXG4gICAgICAgICAgICBSZWdpc3RyYXRpb25OdW1iZXI6IFwiQmFua2tvbnRvcmVnaXN0cmVyaW5nc251bW1lclwiXG4gICAgICAgIH1cbiAgICB9O1xuICAgIFxufSIsImltcG9ydCBEYW5pc2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9EYW5pc2hEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgRW5nbGlzaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0VuZ2xpc2hEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgQ3plY2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9DemVjaERpY3Rpb25hcnlcIjtcbmltcG9ydCBHZXJtYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9HZXJtYW5EaWN0aW9uYXJ5XCI7XG5pbXBvcnQgR3JlZWtEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9HcmVla0RpY3Rpb25hcnlcIjtcbmltcG9ydCBTcGFuaXNoRGljdGlvbmFyeSBmcm9tIFwiLi9MYW5ndWFnZXMvU3BhbmlzaERpY3Rpb25hcnlcIjtcbmltcG9ydCBFc3RvbmlhbkRpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0VzdG9uaWFuRGljdGlvbmFyeVwiO1xuaW1wb3J0IEZpbm5pc2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9GaW5uaXNoRGljdGlvbmFyeVwiO1xuaW1wb3J0IEZyZW5jaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0ZyZW5jaERpY3Rpb25hcnlcIjtcbmltcG9ydCBIdW5nYXJpYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9IdW5nYXJpYW5EaWN0aW9uYXJ5XCI7XG5pbXBvcnQgSWNlbGFuZGljRGljdGlvbmFyeSBmcm9tIFwiLi9MYW5ndWFnZXMvSWNlbGFuZGljRGljdGlvbmFyeVwiO1xuaW1wb3J0IEl0YWxpYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9JdGFsaWFuRGljdGlvbmFyeVwiO1xuaW1wb3J0IExhdHZpYW5EaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9MYXR2aWFuRGljdGlvbmFyeVwiO1xuaW1wb3J0IExpdHVhbmlhbkRpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0xpdHVhbmlhbkRpY3Rpb25hcnlcIjtcbmltcG9ydCBEdXRjaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL0R1dGNoRGljdGlvbmFyeVwiO1xuaW1wb3J0IE5vcndlZ2lhbkRpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL05vcndlZ2lhbkRpY3Rpb25hcnlcIjtcbmltcG9ydCBQb2xpc2hEaWN0aW9uYXJ5IGZyb20gXCIuL0xhbmd1YWdlcy9Qb2xpc2hEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgUG9ydHVndWVzZURpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL1BvcnR1Z3Vlc2VEaWN0aW9uYXJ5XCI7XG5pbXBvcnQgU3dlZGlzaERpY3Rpb25hcnkgZnJvbSBcIi4vTGFuZ3VhZ2VzL1N3ZWRpc2hEaWN0aW9uYXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zbGF0b3Ige1xuXHRwcml2YXRlIHN0YXRpYyBsYW5nYXVnZXMgPSBbXG5cdFx0J2VuJyxcblx0XHQnZGEnLFxuICAgICAgICAnY3MnLFxuICAgICAgICAnZGUnLFxuICAgICAgICAnZWwnLFxuICAgICAgICAnZXMnLFxuICAgICAgICAnZXQnLFxuICAgICAgICAnZmknLFxuICAgICAgICAnZnInLFxuICAgICAgICAnaHUnLFxuICAgICAgICAnaXMnLFxuICAgICAgICAnaXQnLFxuICAgICAgICAnbHQnLFxuICAgICAgICAnbHYnLFxuICAgICAgICAnbmwnLFxuICAgICAgICAnbm8nLFxuICAgICAgICAncGwnLFxuICAgICAgICAncHQnLFxuICAgICAgICAnc3YnLFxuXHRdO1xuXG5cdHByaXZhdGUgc3RhdGljIGRhbmlzaERpY3Rpb25hcnkgPSBuZXcgRGFuaXNoRGljdGlvbmFyeSgpO1xuXHRwcml2YXRlIHN0YXRpYyBlbmdsaXNoRGljdGlvbmFyeSA9IG5ldyBFbmdsaXNoRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIGN6ZWNoRGljdGlvbmFyeSA9IG5ldyBDemVjaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBnZXJtYW5EaWN0aW9uYXJ5ID0gbmV3IEdlcm1hbkRpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBncmVla0RpY3Rpb25hcnkgPSBuZXcgR3JlZWtEaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgc3BhbmlzaERpY3Rpb25hcnkgPSBuZXcgU3BhbmlzaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBlc3RvbmlhbkRpY3Rpb25hcnkgPSBuZXcgRXN0b25pYW5EaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgZmlubmlzaERpY3Rpb25hcnkgPSBuZXcgRmlubmlzaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBmcmVuY2hEaWN0aW9uYXJ5ID0gbmV3IEZyZW5jaERpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBodW5nYXJpYW5EaWN0aW9uYXJ5ID0gbmV3IEh1bmdhcmlhbkRpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBpY2VsYW5kaWNEaWN0aW9uYXJ5ID0gbmV3IEljZWxhbmRpY0RpY3Rpb25hcnkoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBpdGFsaWFuRGljdGlvbmFyeSA9IG5ldyBJdGFsaWFuRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIGxhdHZpYW5EaWN0aW9uYXJ5ID0gbmV3IExhdHZpYW5EaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgbGl0dWFuaWFuRGljdGlvbmFyeSA9IG5ldyBMaXR1YW5pYW5EaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgZHV0Y2hEaWN0aW9uYXJ5ID0gbmV3IER1dGNoRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIG5vcndlZ2lhbkRpY3Rpb25hcnkgPSBuZXcgTm9yd2VnaWFuRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIHBvbGlzaERpY3Rpb25hcnkgPSBuZXcgUG9saXNoRGljdGlvbmFyeSgpO1xuICAgIHByaXZhdGUgc3RhdGljIHBvcnR1Z3Vlc2VEaWN0aW9uYXJ5ID0gbmV3IFBvcnR1Z3Vlc2VEaWN0aW9uYXJ5KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgc3dlZGlzaERpY3Rpb25hcnkgPSBuZXcgU3dlZGlzaERpY3Rpb25hcnkoKTtcblxuXHRzdGF0aWMgVHJhbnNsYXRlKGtleTogc3RyaW5nLCBsYW5ndWFnZSA9ICdkYScpOiBzdHJpbmcge1xuXHRcdGxhbmd1YWdlID0gbGFuZ3VhZ2UudG9Mb3dlckNhc2UoKTtcblx0XHRjb25zdCBpc1N1cHBvcnRlZExhbmd1YWdlID0gVHJhbnNsYXRvci5sYW5nYXVnZXMuaW5kZXhPZihsYW5ndWFnZSkgIT0gLTE7XG5cdFx0aWYgKCFpc1N1cHBvcnRlZExhbmd1YWdlKSB7XG5cdFx0XHRsYW5ndWFnZSA9ICdkYSdcblx0XHR9XG5cdFx0c3dpdGNoIChsYW5ndWFnZSkge1xuXHRcdFx0Y2FzZSAnZGEnOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5kYW5pc2hEaWN0aW9uYXJ5LmdldChrZXkpO1xuXHRcdFx0Y2FzZSAnZW4nOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5lbmdsaXNoRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ2NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jemVjaERpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdkZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2VybWFuRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ2VsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ncmVla0RpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdlcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbmlzaERpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdldCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXN0b25pYW5EaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnZmknOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbm5pc2hEaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnZnInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZyZW5jaERpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdodSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHVuZ2FyaWFuRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ2lzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pY2VsYW5kaWNEaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnaXQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLml0YWxpYW5EaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnbHQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxhdHZpYW5EaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnbHYnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxpdHVhbmlhbkRpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdubCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZHV0Y2hEaWN0aW9uYXJ5LmdldChrZXkpO1xuICAgICAgICAgICAgY2FzZSAnbm8nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5vcndlZ2lhbkRpY3Rpb25hcnkuZ2V0KGtleSk7XG4gICAgICAgICAgICBjYXNlICdwbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9saXNoRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ3B0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3J0dWd1ZXNlRGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgIGNhc2UgJ3N2JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zd2VkaXNoRGljdGlvbmFyeS5nZXQoa2V5KTtcblx0XHR9XG5cdH1cbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVOYW1lc1BvbHlmaWxsKCkge1xuXHRpZiAoRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTmFtZXMgPT0gdW5kZWZpbmVkKSB7XG5cdFx0RWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTmFtZXMgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHR2YXIgYXR0cmlidXRlcyA9IHRoaXMuYXR0cmlidXRlcztcblx0XHRcdHZhciBsZW5ndGggPSBhdHRyaWJ1dGVzLmxlbmd0aDtcblx0XHRcdHZhciByZXN1bHQgPSBuZXcgQXJyYXkobGVuZ3RoKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0cmVzdWx0W2ldID0gYXR0cmlidXRlc1tpXS5uYW1lO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9O1xuXHR9XG59O1xuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXJyYXlVdGlsIHtcblx0cHVibGljIHN0YXRpYyBGcm9tTm9kZUxpc3Q8VCBleHRlbmRzIE5vZGU+KGxpc3Q6IE5vZGVMaXN0T2Y8VD4pOiBUW10ge1xuXHRcdHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBsaXN0IGFzIGFueSk7XG5cdH1cblxuXHRwcml2YXRlIHN0YXRpYyBhZGRUb0N1cnJlbnQ8VD4oY2h1bmtzOiBUW11bXSwgaXRlbTogVCkge1xuXHRcdGlmICghY2h1bmtzLmxlbmd0aCkge1xuXHRcdFx0Y2h1bmtzWzBdID0gW107XG5cdFx0fVxuXHRcdGNodW5rc1tjaHVua3MubGVuZ3RoIC0gMV0ucHVzaChpdGVtKTtcblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIGFkZFRvTmV3PFQ+KGNodW5rczogVFtdW10sIGl0ZW06IFQpIHtcblx0XHRjaHVua3NbY2h1bmtzLmxlbmd0aF0gPSBbXTtcblx0XHRjaHVua3NbY2h1bmtzLmxlbmd0aCAtIDFdLnB1c2goaXRlbSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGRpdmlkZUFjY29yZGluZ1Byb3BlcnR5PFQ+KGFycmF5OiBUW10sIHNlbGVjdG9yOiAoaXRlbTogVCkgPT4gYW55KTogVFtdW10ge1xuXHRcdGNvbnN0IGNodW5rcyA9IFtdO1xuXHRcdGNodW5rc1swXSA9IFthcnJheVswXV07XG5cdFx0YXJyYXkucmVkdWNlKChhLCBiKSA9PiB7XG5cdFx0XHRpZiAoc2VsZWN0b3IoYSkgPT09IHNlbGVjdG9yKGIpKSB7XG5cdFx0XHRcdHRoaXMuYWRkVG9DdXJyZW50KGNodW5rcywgYik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmFkZFRvTmV3KGNodW5rcywgYik7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYjtcblx0XHR9KTtcblx0XHRyZXR1cm4gY2h1bmtzO1xuXHR9XG59XG4iLCJpbXBvcnQgeyBWaWV3cG9ydFV0aWwgfSBmcm9tICcuL1ZpZXdwb3J0VXRpbCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERvbVV0aWwge1xuICAgIHByaXZhdGUgdmlld1BvcnRVdGlsOiBWaWV3cG9ydFV0aWw7XG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnQ7XG4gICAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudCkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLnZpZXdQb3J0VXRpbCA9IG5ldyBWaWV3cG9ydFV0aWwodGhpcy5lbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0YUF0dHIoYXR0cjogc3RyaW5nLCBkZWZhdWx0dmFsdWU/OiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKGBkYXRhLSR7YXR0cn1gKTtcblxuICAgICAgICByZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogZGVmYXVsdHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREYXRhQXR0cihhdHRyOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoYGRhdGEtJHthdHRyfWAsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXR0cihhdHRyOiBzdHJpbmcsIGRlZmF1bHR2YWx1ZT86IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cik7XG4gICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBkZWZhdWx0dmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEF0dHIoYXR0cjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlQXR0cihhdHRyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZURhdGFBdHRyKGF0dHI6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShgZGF0YS0ke2F0dHJ9YCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0F0dHIoYXR0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lmhhc0F0dHJpYnV0ZShhdHRyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hha2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwZW5kQ2xhc3MoJ3NoYWtlJyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDbGFzcygnc2hha2UnKTtcbiAgICAgICAgICAgICh0aGlzLmVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkucmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfSwgNjAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwZW5kQ2xhc3MoJ2Vycm9yJyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDbGFzcygnZXJyb3InKTtcbiAgICAgICAgICAgICh0aGlzLmVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCkucmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmlld1BvcnRVdGlsLklzVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVDbGFzcyhjbGFzc25hbWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NuYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwZW5kQ2xhc3MoY2xhc3NuYW1lKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzbmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENoaWxkRWxlbWVudEJ5QXR0ck5hbWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpcnN0TGV0dGVyID0gbmFtZS5yZXBsYWNlKC9eXFx3LywgYyA9PiBjLnRvVXBwZXJDYXNlKCkpO1xuICAgICAgICBjb25zdCBTdWJFbGVtZW50ID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICBgW25hbWU9XCIke2ZpcnN0TGV0dGVyfVwiXWAsXG4gICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKFN1YkVsZW1lbnQpIHtcbiAgICAgICAgICAgIFN1YkVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYXNDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdHlsZShydWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudClbcnVsZU5hbWVdO1xuICAgIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIERvbVV0aWxpdHkge1xuXG5cdC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEyMzA0NDUvamF2YXNjcmlwdC1yZWdleC1ob3ctdG8tYm9sZC1zcGVjaWZpYy13b3Jkcy13aXRoLXJlZ2V4XG5cdHN0YXRpYyBib2xkZW5UZXh0KGlucHV0VGV4dDogc3RyaW5nLCBtYXRjaGluZFRleHRUb0JvbGRlbjogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIGlucHV0VGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefCkoJyArIG1hdGNoaW5kVGV4dFRvQm9sZGVuICsgJykofCQpJywgJ2lnJyksICckMTxiPiQyPC9iPiQzJyk7XG5cdH1cbn0iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBNYWtlUmVxdWVzdCB7XG4gICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgaGVhZGVyczogYW55O1xuXG4gICAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nID0gJ2dldCcsIGhlYWRlcnM6IGFueSA9IHt9KSB7XG4gICAgICAgIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gaGVhZGVycztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEhlYWRlcnMoaHR0cFJlcXVlc3Q6IFhNTEh0dHBSZXF1ZXN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyIGluIHRoaXMuaGVhZGVycykge1xuICAgICAgICAgICAgaHR0cFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihoZWFkZXIsIHRoaXMuaGVhZGVyc1toZWFkZXJdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbmQoZGF0YTogYW55ID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeG1sSHR0cFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0Lm9wZW4odGhpcy5tZXRob2QsIHRoaXMudXJsKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SGVhZGVycyh4bWxIdHRwUmVxdWVzdCk7XG4gICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5zdGF0dXMgPj0gMjAwICYmXG4gICAgICAgICAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LnN0YXR1cyA8IDMwMFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHhtbEh0dHBSZXF1ZXN0LnJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWplY3Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB4bWxIdHRwUmVxdWVzdC5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiB4bWxIdHRwUmVxdWVzdC5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogeG1sSHR0cFJlcXVlc3QucmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogeG1sSHR0cFJlcXVlc3Quc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiB4bWxIdHRwUmVxdWVzdC5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiB4bWxIdHRwUmVxdWVzdC5yZXNwb25zZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC5zZW5kKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJleHBvcnQgY2xhc3MgU3RyaW5nVXRpbCB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0Zvcm1hdChzdHI6IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC97KFxcZCspfS9nLCAobWF0Y2gsIGluZGV4KSA9PiBhcmdzW2luZGV4XSB8fCAnJyk7XG4gICAgfVxufSIsImV4cG9ydCBjbGFzcyBWaWV3cG9ydFV0aWwge1xuICAgIHByaXZhdGUgZWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gbnVsbCkge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBJc1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICgoYm91bmRzLnRvcCA+IDAgJiYgYm91bmRzLnRvcCA8IGlubmVySGVpZ2h0KSB8fFxuICAgICAgICAgICAgICAgIChib3VuZHMuYm90dG9tID4gMCAmJiBib3VuZHMuYm90dG9tIDwgaW5uZXJIZWlnaHQpKSAmJlxuICAgICAgICAgICAgKChib3VuZHMubGVmdCA+IDAgJiYgYm91bmRzLmxlZnQgPCBpbm5lcldpZHRoKSB8fFxuICAgICAgICAgICAgICAgIChib3VuZHMucmlnaHQgPiAwICYmIGJvdW5kcy5yaWdodCA8IGlubmVyV2lkdGgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBJc1BhcnRpYWxseVZpc2libGUoKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGJvdW5kcy50b3AgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmxlZnQgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmJvdHRvbSA8PSBpbm5lckhlaWdodCB8fFxuICAgICAgICAgICAgYm91bmRzLnJpZ2h0IDw9IGlubmVyV2lkdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSXNPZmZzZXRWaXNpYmxlKG9mZnNldDogbnVtYmVyID0gMzAwKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGJvdW5kcy50b3AgKyBvZmZzZXQgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmxlZnQgKyBvZmZzZXQgPj0gMCB8fFxuICAgICAgICAgICAgYm91bmRzLmJvdHRvbSAtIG9mZnNldCA8PSBpbm5lckhlaWdodCB8fFxuICAgICAgICAgICAgYm91bmRzLnJpZ2h0IC0gb2Zmc2V0IDw9IGlubmVyV2lkdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgV2luZG93VG9wKG9mZnNldDogbnVtYmVyID0gMCkge1xuICAgICAgICBjb25zdCBZT2Zmc2V0ID1cbiAgICAgICAgICAgIHdpbmRvdy5wYWdlWU9mZnNldCB8fFxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHxcbiAgICAgICAgICAgIDA7XG4gICAgICAgIHJldHVybiBvZmZzZXQgPD0gWU9mZnNldDtcbiAgICB9XG59XG4iLCJ0eXBlIFByb2NlZHVyZSA9ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xuXG5pbnRlcmZhY2UgRGVib3VuY2Uge1xuXHQoLi4uYXJnczogYW55W10pOiBhbnk7XG5cdGNsZWFyOiAoKSA9PiB2b2lkO1xuXHRmbHVzaDogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgZGVib3VuY2VyID0gKGZ1bmM6IFByb2NlZHVyZSwgd2FpdDogbnVtYmVyLCBpbW1lZGlhdGU6IGJvb2xlYW4gPSBmYWxzZSkgPT4ge1xuXHRsZXQgdGltZW91dDogbnVtYmVyIHwgbnVsbDtcblx0bGV0IGFyZ3M6IGFueTtcblx0bGV0IGNvbnRleHQ6IGFueTtcblx0bGV0IHJlc3VsdDogYW55O1xuXG5cdGNvbnN0IGxhdGVyID0gKCkgPT4ge1xuXHRcdHRpbWVvdXQgPSBudWxsO1xuXHRcdGlmICghaW1tZWRpYXRlKSB7XG5cdFx0XHRyZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuXHRcdFx0Y29udGV4dCA9IGFyZ3MgPSBudWxsO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBkZWJvdW5jZWRGdW5jOiBQcm9jZWR1cmUgPSBmdW5jdGlvbiAodGhpczogYW55KSB7XG5cdFx0Y29udGV4dCA9IHRoaXM7XG5cdFx0YXJncyA9IGFyZ3VtZW50cztcblx0XHRjb25zdCBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0O1xuXG5cdFx0aWYgKCF0aW1lb3V0KSB7XG5cdFx0XHR0aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuXHRcdH1cblxuXHRcdGlmIChjYWxsTm93KSB7XG5cdFx0XHRyZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuXHRcdFx0Y29udGV4dCA9IGFyZ3MgPSBudWxsO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH07XG5cblx0Y29uc3QgY2xlYXIgPSAoKSA9PiB7XG5cdFx0aWYgKHRpbWVvdXQpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aW1lb3V0KTtcblx0XHRcdHRpbWVvdXQgPSBudWxsO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBmbHVzaCA9ICgpID0+IHtcblx0XHRpZiAodGltZW91dCkge1xuXHRcdFx0cmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcblx0XHRcdGNvbnRleHQgPSBhcmdzID0gbnVsbDtcblxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuXHRcdFx0dGltZW91dCA9IG51bGw7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGRlYm91bmNlZDogRGVib3VuY2UgPSAoKCkgPT4ge1xuXHRcdGNvbnN0IGY6IGFueSA9IGRlYm91bmNlZEZ1bmM7XG5cdFx0Zi5jbGVhciA9IGNsZWFyO1xuXHRcdGYuZmx1c2ggPSBmbHVzaDtcblx0XHRyZXR1cm4gZjtcblx0fSkoKTtcblxuXHRyZXR1cm4gZGVib3VuY2VkO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZGVib3VuY2VyOyIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhbmtBY2NvdW50VmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuICAgIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIiwiaW1wb3J0IElWYWxpZGF0aW9uIGZyb20gJy4uL0lWYWxpZGF0b3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFua0FjY291bnRSZWdpc3RyYXRpb25OdW1iZXJWYWxpZGF0b3JcbiAgICBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhbmtJZE5vcndheVZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrTm9QZXJzb25udW1tZXIoaW5wdXQsIGFsbG93RW1wdHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tOb1BlcnNvbm51bW1lcihcbiAgICAgICAgaW5wdXQ6IHN0cmluZyxcbiAgICAgICAgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUsXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBhbGxvd0VtcHR5O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBlcnNvbm51bW1lcjogc3RyaW5nID0gaW5wdXQucmVwbGFjZSgnICcsICcnKS5yZXBsYWNlKCctJywgJycpO1xuICAgICAgICBjb25zdCByZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgIC9eKDBbMS05XXwxWzAtOV18MlswLTldfDNbMC0xXSkoMFsxLTldfDFbMC0yXSkoXFxkezJ9KShcXGR7NX0pJC8sXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZWdleC50ZXN0KHBlcnNvbm51bW1lcik7XG4gICAgfVxufVxuIiwiaW1wb3J0IElWYWxpZGF0aW9uIGZyb20gJy4uL0lWYWxpZGF0b3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFua0lkU3dlZGVuVmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuICAgIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tTZVBlcnNvbm51bW1lcihpbnB1dCwgYWxsb3dFbXB0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1NlUGVyc29ubnVtbWVyKFxuICAgICAgICBpbnB1dDogc3RyaW5nLFxuICAgICAgICBhbGxvd0VtcHR5OiBib29sZWFuID0gdHJ1ZSxcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsbG93RW1wdHk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVyc29ubnVtbWVyOiBzdHJpbmcgPSBpbnB1dC5yZXBsYWNlKCcgJywgJycpLnJlcGxhY2UoJy0nLCAnJyk7XG4gICAgICAgIGNvbnN0IHJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgL14oMTlcXGR7Mn18MjBcXGR7Mn0pKDBbMS05XXwxWzAtMl0pKDBbMS05XXwxWzAtOV18MlswLTldfDNbMC0xXSkoXFxkezR9KSQvLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVnZXgudGVzdChwZXJzb25udW1tZXIpO1xuICAgIH1cbn1cbiIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENwclZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrQ3ByKGlucHV0LCBhbGxvd0VtcHR5KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBtb2R1bHVzMTFNdWx0aXBseSh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29udHJvbDogbnVtYmVyW10gPSBbNCwgMywgMiwgNywgNiwgNSwgNCwgMywgMiwgMV07XG4gICAgICAgIHJldHVybiBjb250cm9sW2luZGV4XSAqIHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW9kdWx1czExRXhjZXB0aW9ucyhpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGV4Y2VwdGlvbkRhdGVzOiBEYXRlW10gPSBbXG4gICAgICAgICAgICAxOTYwLFxuICAgICAgICAgICAgMTk2NCxcbiAgICAgICAgICAgIDE5NjUsXG4gICAgICAgICAgICAxOTY2LFxuICAgICAgICAgICAgMTk2OSxcbiAgICAgICAgICAgIDE5NzAsXG4gICAgICAgICAgICAxOTgwLFxuICAgICAgICAgICAgMTk4MixcbiAgICAgICAgICAgIDE5ODQsXG4gICAgICAgICAgICAxOTg1LFxuICAgICAgICAgICAgMTk4NixcbiAgICAgICAgICAgIDE5ODcsXG4gICAgICAgICAgICAxOTg4LFxuICAgICAgICAgICAgMTk4OSxcbiAgICAgICAgICAgIDE5OTAsXG4gICAgICAgIF0ubWFwKHggPT4gbmV3IERhdGUoeCwgMCwgMSkpOyAvLyBtb250aHMgYXJlIDAtaW5kZXhlZFxuXG4gICAgICAgIGNvbnN0IGNwckRhdGU6IERhdGUgPSB0aGlzLmdldENwckRhdGUoaW5wdXQpO1xuXG4gICAgICAgIHJldHVybiBleGNlcHRpb25EYXRlcy5zb21lKHggPT4geC5nZXREYXRlKCkgPT09IGNwckRhdGUuZ2V0RGF0ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrQ3ByRGF0ZShpbnB1dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCB5ZWFyOiBudW1iZXIgPSAraW5wdXQuc3Vic3RyKDQsIDIpICsgMjAwMDtcbiAgICAgICAgeWVhciAtPSB5ZWFyID4gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpID8gMTAwIDogMDsgLy8gaXMgMjB4eCBvciAxOXh4XG4gICAgICAgIGNvbnN0IG1vbnRoOiBudW1iZXIgPSAraW5wdXQuc3Vic3RyKDIsIDIpIC0gMTtcbiAgICAgICAgY29uc3QgZGF5OiBudW1iZXIgPSAraW5wdXQuc3Vic3RyKDAsIDIpO1xuICAgICAgICBjb25zdCBkYXRlOiBEYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcbiAgICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggJiZcbiAgICAgICAgICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENwckRhdGUoaW5wdXQ6IHN0cmluZyk6IERhdGUge1xuICAgICAgICBsZXQgeWVhcjogbnVtYmVyID0gK2lucHV0LnN1YnN0cig0LCAyKSArIDIwMDA7XG4gICAgICAgIHllYXIgLT0geWVhciA+IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSA/IDEwMCA6IDA7IC8vIGlzIDIweHggb3IgMTl4eFxuICAgICAgICBjb25zdCBtb250aDogbnVtYmVyID0gK2lucHV0LnN1YnN0cigyLCAyKSAtIDE7XG4gICAgICAgIGNvbnN0IGRheTogbnVtYmVyID0gK2lucHV0LnN1YnN0cigwLCAyKTtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDcHIoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsbG93RW1wdHk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3BybnI6IHN0cmluZyA9IGlucHV0LnJlcGxhY2UoJyAnLCAnJykucmVwbGFjZSgnLScsICcnKTtcbiAgICAgICAgaWYgKCFjcHJuci5tYXRjaCgvXlxcZHsxMH0kLykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tDcHJEYXRlKGNwcm5yKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1vZHVsdXMxMUV4Y2VwdGlvbnMoY3BybnIpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvdXRwdXQ6IG51bWJlciA9IDA7XG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gdGhpcy5tb2R1bHVzMTFNdWx0aXBseShcbiAgICAgICAgICAgICAgICBwYXJzZUludChjcHJuci5zdWJzdHIoaSwgMSksIDEwKSxcbiAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdXRwdXQgJSAxMSA9PT0gMDsgLy8gaHZpcyBvdXRwdXQgZ8OlciBvcCBpIDExLCBlciBkZXQgZXQgZ3lsZGlndCBjcHIuXG4gICAgfVxufVxuIiwiaW1wb3J0IElWYWxpZGF0aW9uIGZyb20gJy4uL0lWYWxpZGF0b3IuaW50ZXJmYWNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3ZyVmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuICAgIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tDdnIoaW5wdXQsIGFsbG93RW1wdHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tDdnIoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFhbGxvd0VtcHR5ICYmICFpbnB1dCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBjdnJucjogc3RyaW5nID0gaW5wdXQucmVwbGFjZSgnICcsICcnKS5yZXBsYWNlKCctJywgJycpO1xuICAgICAgICBpZiAoIWN2cm5yKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxsb3dFbXB0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIS9eXFxkezh9JC8udGVzdChjdnJucikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGN2ciBudW1yZSBrYW4gw6ViZW5iYXJ0IG9nc8OlIG1vZHVsdXMxMSB0ZXN0ZXMuXG4gICAgICAgIGxldCB0b3RhbDogbnVtYmVyID0gMDtcblxuICAgICAgICBbMiwgNywgNiwgNSwgNCwgMywgMiwgMV0uZm9yRWFjaCgoZWxtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdG90YWwgKz0gcGFyc2VJbnQoY3ZybnJbaW5kZXhdLCAxMCkgKiBlbG07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0b3RhbCAlIDExID09PSAwO1xuICAgIH1cbn1cbiIsImltcG9ydCBJVmFsaWRhdGlvbiBmcm9tICcuLi9JVmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNFQ29tcGFueVJlZ2lzdHJhdGlvblZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgICBwcml2YXRlIE9SR19OUl9TRV9MVUhOX1dFSUdIVFMgPSBbMiwgMSwgMiwgMSwgMiwgMSwgMiwgMSwgMiwgMV07XG4gICAgcHJpdmF0ZSB3ZWlnaHRlZChjb2VmZmljaWVudHM6IEFycmF5PG51bWJlcj4pIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSAqIGNvZWZmaWNpZW50c1tpbmRleF07XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgc3VtID0gKGE6IG51bWJlciwgYjogbnVtYmVyKSA9PiBhICsgYjtcbiAgICBcbiAgICBpc1NhdGlzZmllZEJ5KGlucHV0OiBzdHJpbmcsIGFsbG93RW1wdHk6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGFsbG93RW1wdHkgJiYgIWlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMub3JnTnJTZShpbnB1dCk7XG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgb3JnTnJTZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrTHVobk1vZHVsdXMxMCh2YWx1ZSwgdGhpcy5PUkdfTlJfU0VfTFVITl9XRUlHSFRTKTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBjaGVja0x1aG5Nb2R1bHVzMTAgKHRlc3RWYWx1ZTogc3RyaW5nLCBsdWhuV2VpZ2h0czogbnVtYmVyW10pIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gbHVobldlaWdodHMubGVuZ3RoO1xuICAgICAgICBjb25zdCB0ZXN0VmFsdWUkID0gdGVzdFZhbHVlLnJlcGxhY2UoXCItXCIsIFwiXCIpO1xuICAgICAgICBpZiAodGVzdFZhbHVlJC5sZW5ndGggIT09IGxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4ocGFyc2VJbnQodGVzdFZhbHVlJCwgMTApKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIGNvbnN0IGRpZ2l0cyA9IHRlc3RWYWx1ZSQuc3BsaXQoXCJcIikubWFwKE51bWJlcik7XG4gICAgICAgIGNvbnN0IGx1aG5GID0gKG46IG51bWJlcikgPT4gKG4gPCBsZW5ndGggPyBuIDogbiAtIChsZW5ndGggLSAxKSk7XG4gICAgICAgIGNvbnN0IGx1aG5TdW0gPSBsdWhuV2VpZ2h0cy5tYXAodGhpcy53ZWlnaHRlZChkaWdpdHMpKS5tYXAobHVobkYpLnJlZHVjZSh0aGlzLnN1bSk7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xTdW0gPSBsZW5ndGggLSAoK2x1aG5TdW0gJSBsZW5ndGgpO1xuICAgICAgICByZXR1cm4gY29udHJvbFN1bSAlIDEwID09PSAwO1xuICAgIH0gICBcbn0iLCJpbXBvcnQgSVZhbGlkYXRpb24gZnJvbSAnLi4vSVZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTRVBlcnNvbmFsTnVtYmVyVmFsaWRhdG9yIGltcGxlbWVudHMgSVZhbGlkYXRpb24ge1xuXG4gICAgcHVibGljIGlzU2F0aXNmaWVkQnkoaW5wdXQ6IHN0cmluZywgYWxsb3dFbXB0eTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcbiAgICAgICAgLy8gRm9ybWF0OiAxMCBvciAxMiBkaWdpdHMgW1lZXVlZTU1ERFstLytdTk5OTiBhbmQgcGFzcyBjaGVja3N1bSB2YWxpZGF0aW9uXG4gICAgICAgIGNvbnN0IG1hdGNoID0gaW5wdXRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bICstXS9nLCAnJylcbiAgICAgICAgICAgIC5tYXRjaCgvXihcXGR7Mn18XFxkezR9KShcXGR7Mn0pKFxcZHsyfSkoXFxkezR9KSQvaSlcblxuICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm4gZmFsc2UgLy8gbm90IG1hdGNoaW5nIHJlZ2V4XG5cbiAgICAgICAgbGV0IFssIG1vbnRoLCBkYXldID0gbWF0Y2guc2xpY2UoMSkubWFwKE51bWJlcilcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghYWxsb3dFbXB0eSA/ICEhaW5wdXQgOiB0cnVlKSAmJlxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZURheUFuZE1vbnRoKG1vbnRoLCBkYXkpICYmXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQ2hlY2tzdW0oaW5wdXQpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRGF5QW5kTW9udGgobW9udGg6IG51bWJlciwgZGF5OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWF4RGF5c0luTW9udGggPSBbMCwgMzEsIDI5LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEobW9udGggPCAxIHx8IG1vbnRoID4gMTIpICYmICEoZGF5IDwgMSB8fCBkYXkgPiBtYXhEYXlzSW5Nb250aFttb250aF0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQ2hlY2tzdW0ocGVyc05vOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGlnaXRzID0gcGVyc05vXG4gICAgICAgICAgICAucmVwbGFjZSgvWyArLV0vZywgJycpXG4gICAgICAgICAgICAuc2xpY2UoLTEwKVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcChOdW1iZXIpXG4gICAgICAgIGNvbnN0IGx1aG5XZWlnaHRzID0gWzIsIDEsIDIsIDEsIDIsIDEsIDIsIDEsIDIsIDFdXG4gICAgICAgIGNvbnN0IGx1aG5GID0gKG46IG51bWJlcikgPT4gKG4gPCAxMCA/IG4gOiBuIC0gOSlcbiAgICAgICAgY29uc3QgbHVoblN1bSA9IGx1aG5XZWlnaHRzXG4gICAgICAgICAgICAubWFwKCh2YWx1ZTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSAqIGRpZ2l0c1tpbmRleF0pXG4gICAgICAgICAgICAubWFwKGx1aG5GKVxuICAgICAgICAgICAgLnJlZHVjZSgoYTogbnVtYmVyLCBiOiBudW1iZXIpID0+IGEgKyBiKVxuICAgICAgICBjb25zdCBjb250cm9sU3VtID0gMTAgLSAoK2x1aG5TdW0gJSAxMClcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xTdW0gJSAxMCA9PSAwXG4gICAgfVxufVxuIiwiY2xhc3MgZWxlbWVudENvbmZpZyB7XG5cdHNlbGVjdG9yOiBzdHJpbmc7XG5cdHRlbXBsYXRlOiBzdHJpbmc7XG5cdHN0eWxlOiBzdHJpbmc7XG5cdHVzZVNoYWRvdzogYm9vbGVhbjtcblx0dGVtcGxhdGVQYXRoPzogc3RyaW5nO1xufVxuXG5jb25zdCB2YWxpZGF0ZVNlbGVjdG9yID0gKHNlbGVjdG9yOiBzdHJpbmcpID0+IHtcblx0aWYgKHNlbGVjdG9yLmluZGV4T2YoJy0nKSA8PSAwKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCBhdCBsZWFzdCAxIGRhc2ggaW4gdGhlIGN1c3RvbSBlbGVtZW50IG5hbWUhJyk7XG5cdH1cbn07XG5cbmNvbnN0IEN1c3RvbUVsZW1lbnQgPSAoY29uZmlnOiBlbGVtZW50Q29uZmlnKSA9PiB7XG5cdHJldHVybiAoY2xzOiBhbnkpID0+IHtcblx0XHR2YWxpZGF0ZVNlbGVjdG9yKGNvbmZpZy5zZWxlY3Rvcik7XG5cdFx0bGV0IHRlbXBsYXRlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG5cdFx0aWYgKCFjb25maWcudGVtcGxhdGUpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignWW91IG5lZWQgdG8gcGFzcyBhIHRlbXBsYXRlIGZvciB0aGUgZWxlbWVudCcpO1xuXHRcdH1cblx0XHR0ZW1wbGF0ZUVsZW1lbnQuaW5uZXJIVE1MID0gYDxzdHlsZT4ke2NvbmZpZy5zdHlsZX08L3N0eWxlPiAke1xuXHRcdFx0Y29uZmlnLnRlbXBsYXRlXG5cdFx0XHR9YDtcblx0XHRsZXQgY29ubmVjdGVkQ2FsbGJhY2sgPSBjbHMucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHsgfTtcblx0XHRjb25zdCBkaXNjb25uZWN0ZWRDYWxsYmFjayA9IGNscy5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkgeyB9O1xuXG5cdFx0Y2xzLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdGxldCBjbG9uZSA9IGRvY3VtZW50LmltcG9ydE5vZGUodGVtcGxhdGVFbGVtZW50LmNvbnRlbnQsIHRydWUpO1xuXHRcdFx0aWYgKGNvbmZpZy51c2VTaGFkb3cgJiYgIXRoaXMuc2hhZG93Um9vdCkge1xuXHRcdFx0XHR0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KS5hcHBlbmRDaGlsZChjbG9uZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmFwcGVuZENoaWxkKGNsb25lKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmNvbXBvbmVudFdpbGxNb3VudCkge1xuXHRcdFx0XHR0aGlzLmNvbXBvbmVudFdpbGxNb3VudCgpO1xuXHRcdFx0fVxuXHRcdFx0Y29ubmVjdGVkQ2FsbGJhY2suY2FsbCh0aGlzKTtcblx0XHRcdGlmICh0aGlzLmNvbXBvbmVudERpZE1vdW50KSB7XG5cdFx0XHRcdHRoaXMuY29tcG9uZW50RGlkTW91bnQoKTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0Y2xzLnByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdGlmICh0aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50KSB7XG5cdFx0XHRcdHRoaXMuY29tcG9uZW50V2lsbFVubW91bnQoKTtcblx0XHRcdH1cblx0XHRcdGRpc2Nvbm5lY3RlZENhbGxiYWNrLmNhbGwodGhpcyk7XG5cdFx0XHRpZiAodGhpcy5jb21wb25lbnREaWRVbm1vdW50KSB7XG5cdFx0XHRcdHRoaXMuY29tcG9uZW50RGlkVW5tb3VudCgpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0d2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZShjb25maWcuc2VsZWN0b3IsIGNscyk7XG5cdH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDdXN0b21FbGVtZW50O1xuIiwiaW1wb3J0ICdAd2ViY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvd2ViY29tcG9uZW50cy1idW5kbGUnO1xuaW1wb3J0ICdAd2ViY29tcG9uZW50cy93ZWJjb21wb25lbnRzanMvY3VzdG9tLWVsZW1lbnRzLWVzNS1hZGFwdGVyLmpzJztcbmltcG9ydCAnQHdlYmNvbXBvbmVudHMvd2ViY29tcG9uZW50c2pzL3dlYmNvbXBvbmVudHMtbG9hZGVyLmpzJztcblxuLy8gZm9ybVxuaW1wb3J0IHsgQ3VzdG9tRm9ybSB9IGZyb20gJy4vY3VzdG9tLWZvcm0nO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRFbGVtZW50IH0gZnJvbSAnLi9mcmFtZXdvcmsvQ3VzdG9tSW5wdXRFbGVtZW50JztcblxuLy8gZWxlbWVudHNcbmltcG9ydCAqIGFzIGVsZW1lbnRzIGZyb20gJy4vZWxlbWVudHMvRWxlbWVudHMnO1xuXG5leHBvcnQgeyBDdXN0b21Gb3JtLCBlbGVtZW50cywgQ3VzdG9tSW5wdXRFbGVtZW50IH07XG4iXX0=