@smarterplan/ngx-smarterplan-core 1.4.21 → 1.4.22
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/README.md +24 -24
- package/esm2022/lib/components/csv-export/csv-export.component.mjs +3 -3
- package/esm2022/lib/components/loader/loader.component.mjs +3 -3
- package/esm2022/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
- package/esm2022/lib/components/menu-bar/menu-bar.component.mjs +3 -3
- package/esm2022/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
- package/esm2022/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
- package/esm2022/lib/components/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/components/splat-viewer/splat-viewer.component.mjs +361 -0
- package/esm2022/lib/components/support-modal/support-modal.component.mjs +3 -3
- package/esm2022/lib/config.mjs +1 -1
- package/esm2022/lib/helpers.service.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +1 -1
- package/esm2022/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
- package/esm2022/lib/matterport-extensions/security-camera/SecurityCamera.mjs +22 -22
- package/esm2022/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
- package/esm2022/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +22 -22
- package/esm2022/lib/mattertagData.mjs +1 -1
- package/esm2022/lib/ngx-smarterplan-core.module.mjs +9 -4
- package/esm2022/lib/ngx-smarterplan-core.service.mjs +1 -1
- package/esm2022/lib/pipes/duration-to-string.pipe.mjs +1 -1
- package/esm2022/lib/pipes/format-date-number-to-digits.pipe.mjs +1 -1
- package/esm2022/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
- package/esm2022/lib/pipes/safe-url.pipe.mjs +1 -1
- package/esm2022/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
- package/esm2022/lib/pipes/username-from-id.pipe.mjs +1 -1
- package/esm2022/lib/services/amplify-cache.service.mjs +1 -1
- package/esm2022/lib/services/base-tab.service.mjs +1 -1
- package/esm2022/lib/services/baseVisibility.service.mjs +1 -1
- package/esm2022/lib/services/content.service.mjs +1 -1
- package/esm2022/lib/services/filter.service.mjs +1 -1
- package/esm2022/lib/services/intervention.service.mjs +1 -1
- package/esm2022/lib/services/locale.service.mjs +1 -1
- package/esm2022/lib/services/matterport-import.service.mjs +1 -1
- package/esm2022/lib/services/matterport-measurement.service.mjs +1 -1
- package/esm2022/lib/services/matterport-navigation.service.mjs +1 -1
- package/esm2022/lib/services/matterport-pointer.service.mjs +6 -6
- package/esm2022/lib/services/matterport-tag-copy.service.mjs +1 -1
- package/esm2022/lib/services/matterport-tag.service.mjs +12 -7
- package/esm2022/lib/services/matterport.service.mjs +17 -17
- package/esm2022/lib/services/models/affectation.service.mjs +1 -1
- package/esm2022/lib/services/models/base-object.service.mjs +1 -1
- package/esm2022/lib/services/models/capture.service.mjs +1 -1
- package/esm2022/lib/services/models/comment.service.mjs +1 -1
- package/esm2022/lib/services/models/domain.service.mjs +1 -1
- package/esm2022/lib/services/models/equipment.service.mjs +1 -1
- package/esm2022/lib/services/models/event.service.mjs +1 -1
- package/esm2022/lib/services/models/feature.service.mjs +1 -1
- package/esm2022/lib/services/models/hashtag.service.mjs +1 -1
- package/esm2022/lib/services/models/layer.service.mjs +1 -1
- package/esm2022/lib/services/models/measurement.service.mjs +1 -1
- package/esm2022/lib/services/models/mission.service.mjs +1 -1
- package/esm2022/lib/services/models/navigation.service.mjs +1 -1
- package/esm2022/lib/services/models/node.service.mjs +1 -1
- package/esm2022/lib/services/models/object3D.service.mjs +1 -1
- package/esm2022/lib/services/models/operation.service.mjs +1 -1
- package/esm2022/lib/services/models/organisation.service.mjs +1 -1
- package/esm2022/lib/services/models/plan.service.mjs +1 -1
- package/esm2022/lib/services/models/poi.service.mjs +27 -27
- package/esm2022/lib/services/models/profile.service.mjs +1 -1
- package/esm2022/lib/services/models/property.service.mjs +1 -1
- package/esm2022/lib/services/models/space.service.mjs +1 -1
- package/esm2022/lib/services/models/template.service.mjs +1 -1
- package/esm2022/lib/services/models/ticket.service.mjs +1 -1
- package/esm2022/lib/services/models/visit.service.mjs +1 -1
- package/esm2022/lib/services/models/zone.service.mjs +1 -1
- package/esm2022/lib/services/navigator.service.mjs +1 -1
- package/esm2022/lib/services/obj-to-glb.mjs +649 -0
- package/esm2022/lib/services/s3.service.mjs +43 -3
- package/esm2022/lib/services/search.service.mjs +1 -1
- package/esm2022/lib/services/support.service.mjs +1 -1
- package/esm2022/lib/services/sweep-locator.service.mjs +1 -1
- package/esm2022/lib/services/tag.service.mjs +16 -16
- package/esm2022/lib/services/threejs-import.service.mjs +6 -4
- package/esm2022/lib/services/threejs.service.mjs +867 -95
- package/esm2022/lib/services/user.service.mjs +1 -1
- package/esm2022/lib/services/utils/matterport-transform.util.mjs +1 -1
- package/esm2022/lib/services/validators.service.mjs +1 -1
- package/esm2022/lib/services/viewer.service.mjs +189 -7
- package/esm2022/lib/services/zone-drawer.service.mjs +1 -1
- package/esm2022/lib/services/zoneChange.service.mjs +1 -1
- package/esm2022/lib/tokens/matterport-sdk-key.token.mjs +1 -1
- package/esm2022/lib/validators/email.directive.mjs +1 -1
- package/esm2022/lib/validators/no-empty.directive.mjs +1 -1
- package/esm2022/lib/validators/number.directive.mjs +1 -1
- package/esm2022/lib/validators/text.directive.mjs +1 -1
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs +2239 -233
- package/fesm2022/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/components/splat-viewer/splat-viewer.component.d.ts +98 -0
- package/lib/ngx-smarterplan-core.module.d.ts +7 -6
- package/lib/services/matterport-tag.service.d.ts +5 -5
- package/lib/services/obj-to-glb.d.ts +66 -0
- package/lib/services/s3.service.d.ts +7 -0
- package/lib/services/threejs.service.d.ts +336 -16
- package/lib/services/viewer.service.d.ts +110 -8
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/src/assets/viewers/splat/chunk-BYLI4YBI.js +17037 -0
- package/src/assets/viewers/splat/chunk-LDV6YPMG.js +1 -0
- package/src/assets/viewers/splat/chunk-WZ5Z4TU3.js +105719 -0
- package/src/assets/viewers/splat/convert-4DRLH77X.js +1 -0
- package/src/assets/viewers/splat/convert.html +11 -0
- package/src/assets/viewers/splat/converter-SLBB5MHG.js +1 -0
- package/src/assets/viewers/splat/index.html +90 -0
- package/src/assets/viewers/splat/spz-DEYRea_v-QE6YSGIB.js +5292 -0
- package/src/assets/viewers/splat/viewer-W4X3FWQJ.js +2704 -0
- package/src/assets/viewers/splat/viewer.css +1096 -0
- package/src/assets/viewers/splat/webp.wasm +0 -0
- package/src/assets/viewers/splat/worker.mjs +1383 -0
- package/src/assets/vs-app.json +67 -67
|
@@ -545,4 +545,4 @@ export function pointToString(point) {
|
|
|
545
545
|
const z = point.z.toFixed(3);
|
|
546
546
|
return `{ x: ${x}, y: ${y}, z: ${z} }`;
|
|
547
547
|
}
|
|
548
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFXLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWdCdkc7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLEdBQW9EO0lBRXBELElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxNQUFNLEVBQUUsU0FBUyxLQUFLLFFBQVE7WUFDeEMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNuRixDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2YsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNMLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7QUFDTCxDQUFDO0FBS0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXFCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQVc1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QUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IE1vZGFsU3dpdGNoVmlzaXRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL21vZGFsLXN3aXRjaC12aXNpdC9tb2RhbC1zd2l0Y2gtdmlzaXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGRvd25sb2FkRmlsZUFzT2JqZWN0IH0gZnJvbSBcIi4vc2VydmljZXMvczMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFcXVpcG1lbnREb2N1bWVudCwgTGV2ZWxTdGF0dXMsIExvY2FsZSwgTWlzc2lvbiwgUG9pVHlwZSwgUm9sZVN0YXR1cyB9IGZyb20gXCIuL3R5cGVzLnNlcnZpY2VcIjtcclxuXHJcbi8qKlxyXG4gKiBNYXBzIHRoZSBjb29yZGluYXRlIHNwYWNlIFBPSSBwb3NpdGlvbnMgd2VyZSBjYXB0dXJlZCBpbiBvbnRvIHRoZSBsb2FkZWQgbW9kZWwncyBvd24gc3BhY2UuXHJcbiAqXHJcbiAqIFRhZyBjb29yZGluYXRlcyBjb21lIGZyb20gd2hpY2hldmVyIHZpZXdlciBjcmVhdGVkIHRoZW0gLSB0eXBpY2FsbHkgTWF0dGVycG9ydCAtIGFuZCB0aGUgLmdsYiBpc1xyXG4gKiBhIHNlcGFyYXRlIGNhcHR1cmUgd2l0aCBpdHMgb3duIG9yaWdpbiwgYXhlcyBhbmQgdW5pdHMuIFdpdGhvdXQgdGhpcywgYSB0YWcgY3JlYXRlZCBpbiBvbmUgdmlld2VyXHJcbiAqIGxhbmRzIGluIHRoZSB3cm9uZyBwbGFjZSBpbiB0aGUgb3RoZXIgZXZlbiB0aG91Z2ggYm90aCByZWFkIHRoZSBzYW1lIHJlY29yZC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVKc0FsaWdubWVudCB7XHJcbiAgICB0cmFuc2xhdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xyXG4gICAgLyoqIEV1bGVyIGFuZ2xlcyBpbiByYWRpYW5zLCBhcHBsaWVkIFhZWi4gKi9cclxuICAgIHJvdGF0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyIH07XHJcbiAgICBzY2FsZT86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFdoZXJlIGEgUE9JIHBsYWNlZCBpbiBhIFRocmVlLmpzIG1vZGVsIHNheXMgaXQgd2FzIHBsYWNlZCwgb3IgbnVsbCBmb3IgYW55IG90aGVyIFBPSS5cclxuICpcclxuICogYGZyYW1lYCBpcyAnbW9kZWwnIHdoZW4gaXRzIGNvb3JkaW5hdGVzIGFyZSBpbiB0aGF0IG1vZGVsJ3Mgb3duIHNwYWNlIC0gaXQgd2FzIHBsYWNlZCBiZWZvcmUgdGhlXHJcbiAqIG1vZGVsIHdhcyBjYWxpYnJhdGVkIC0gcmF0aGVyIHRoYW4gaW4gdGhlIHNwYWNlIHRhZ3Mgc2hhcmUgd2l0aCB0aGUgb3RoZXIgdmlzaXRzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFRocmVlSnNQb2lPcmlnaW4oXHJcbiAgICBwb2k6IHsgbWV0YWRhdGE/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsIHwgdW5kZWZpbmVkLFxyXG4pOiB7IGNhcHR1cmVJRDogc3RyaW5nOyBmcmFtZTogXCJtb2RlbFwiIHwgbnVsbCB9IHwgbnVsbCB7XHJcbiAgICBpZiAoIXBvaT8ubWV0YWRhdGEpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwb2kubWV0YWRhdGEpO1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgcGFyc2VkPy5jYXB0dXJlSUQgPT09IFwic3RyaW5nXCJcclxuICAgICAgICAgICAgPyB7IGNhcHR1cmVJRDogcGFyc2VkLmNhcHR1cmVJRCwgZnJhbWU6IHBhcnNlZC5mcmFtZSA9PT0gXCJtb2RlbFwiID8gXCJtb2RlbFwiIDogbnVsbCB9XHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiogV2hpY2ggb2YgYSBtb2RlbCdzIG93biBheGVzIHBvaW50cyB1cCwgZm9yIGEgbW9kZWwgd2hvc2UgZmlsZSBoYXMgaXQgdGhlIG90aGVyIHdheS4gKi9cclxuZXhwb3J0IHR5cGUgVGhyZWVKc01vZGVsVXAgPSBcInhcIiB8IFwieVwiIHwgXCJ6XCIgfCBcIi14XCIgfCBcIi15XCIgfCBcIi16XCI7XHJcblxyXG5leHBvcnQgY29uc3QgVEhSRUVKU19NT0RFTF9VUF9PUFRJT05TOiBUaHJlZUpzTW9kZWxVcFtdID0gW1wieVwiLCBcInpcIiwgXCJ4XCIsIFwiLXlcIiwgXCItelwiLCBcIi14XCJdO1xyXG5cclxuLyoqIFdoZXJlIHRoZSBjYW1lcmEgc3RhcnRzIHdoZW4gYSBUaHJlZS5qcyB2aXNpdCBpcyBvcGVuZWQuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVKc1BsYWNlbWVudCB7XHJcbiAgICBjYW1lcmFQb3NpdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xyXG4gICAgcm90YXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXIgfTtcclxuICAgIGFsaWdubWVudD86IFRocmVlSnNBbGlnbm1lbnQ7XHJcbiAgICAvKiogU2V0IG9uY2Ugc29tZW9uZSBoYXMgY2hvc2VuIHRoZSB2ZXJ0aWNhbCBheGlzIGJ5IGhhbmQ7IGFic2VudCBtZWFucyBcIndvcmsgaXQgb3V0XCIuICovXHJcbiAgICB1cD86IFRocmVlSnNNb2RlbFVwO1xyXG59XHJcblxyXG4vKipcclxuICogUGFyc2VzIHRoZSBwbGFjZW1lbnQgc3RvcmVkIGluIGEgVGhyZWUuanMgY2FwdHVyZSdzIG1ldGFkYXRhLCBvciBudWxsIHdoZW4gdGhlcmUgaXMgbm9uZS5cclxuICpcclxuICogQm90aCB0aGUgaW1wb3J0ICh3cml0aW5nIHRoZSBuYXZpZ2F0aW9uIGVudHJ5KSBhbmQgdGhlIHZpZXdlciAoZnJhbWluZyB0aGUgY2FtZXJhKSBuZWVkIHRoaXMsIHNvXHJcbiAqIGl0IGxpdmVzIGhlcmUgcmF0aGVyIHRoYW4gb24gZWl0aGVyIHNlcnZpY2UuIFBsYWNlbWVudCBpcyBvcHRpb25hbCAtIHRoZSB2aWV3ZXIgZnJhbWVzIHRoZSBtb2RlbFxyXG4gKiBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgaXQgLSBzbyB1bnVzYWJsZSBtZXRhZGF0YSBpcyB3YXJuZWQgYWJvdXQgYW5kIGRyb3BwZWQsIG5ldmVyIHRocm93bi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRocmVlSnNQbGFjZW1lbnQobWV0YWRhdGE6IHN0cmluZyk6IFRocmVlSnNQbGFjZW1lbnQgfCBudWxsIHtcclxuICAgIGlmICghbWV0YWRhdGEgfHwgIW1ldGFkYXRhLnRyaW0oKSkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKG1ldGFkYXRhKTtcclxuICAgICAgICBjb25zdCBpc1ZlY3RvciA9ICh2YWx1ZTogYW55KSA9PlxyXG4gICAgICAgICAgICB2YWx1ZSAmJiBbXCJ4XCIsIFwieVwiLCBcInpcIl0uZXZlcnkoKGF4aXMpID0+IHR5cGVvZiB2YWx1ZVtheGlzXSA9PT0gXCJudW1iZXJcIik7XHJcbiAgICAgICAgY29uc3QgcGxhY2VtZW50OiBUaHJlZUpzUGxhY2VtZW50ID0ge307XHJcbiAgICAgICAgaWYgKGlzVmVjdG9yKHBhcnNlZC5jYW1lcmFQb3NpdGlvbikpIHtcclxuICAgICAgICAgICAgcGxhY2VtZW50LmNhbWVyYVBvc2l0aW9uID0gcGFyc2VkLmNhbWVyYVBvc2l0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNWZWN0b3IocGFyc2VkLnJvdGF0aW9uKSkge1xyXG4gICAgICAgICAgICBwbGFjZW1lbnQucm90YXRpb24gPSBwYXJzZWQucm90YXRpb247XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBwYXJzZWQuYWxpZ25tZW50O1xyXG4gICAgICAgIGlmIChzb3VyY2UpIHtcclxuICAgICAgICAgICAgY29uc3QgYWxpZ25tZW50OiBUaHJlZUpzQWxpZ25tZW50ID0ge307XHJcbiAgICAgICAgICAgIGlmIChpc1ZlY3Rvcihzb3VyY2UudHJhbnNsYXRpb24pKSB7XHJcbiAgICAgICAgICAgICAgICBhbGlnbm1lbnQudHJhbnNsYXRpb24gPSBzb3VyY2UudHJhbnNsYXRpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlzVmVjdG9yKHNvdXJjZS5yb3RhdGlvbikpIHtcclxuICAgICAgICAgICAgICAgIGFsaWdubWVudC5yb3RhdGlvbiA9IHNvdXJjZS5yb3RhdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBTY2FsZSAwIHdvdWxkIGNvbGxhcHNlIGV2ZXJ5IHRhZyBvbnRvIGEgcG9pbnQsIHNvIHRyZWF0IGl0IGFzIHVuc2V0IHJhdGhlciB0aGFuIGhvbm91ciBpdC5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2Uuc2NhbGUgPT09IFwibnVtYmVyXCIgJiYgc291cmNlLnNjYWxlID4gMCkge1xyXG4gICAgICAgICAgICAgICAgYWxpZ25tZW50LnNjYWxlID0gc291cmNlLnNjYWxlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhhbGlnbm1lbnQpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHBsYWNlbWVudC5hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChUSFJFRUpTX01PREVMX1VQX09QVElPTlMuaW5jbHVkZXMocGFyc2VkLnVwKSkge1xyXG4gICAgICAgICAgICBwbGFjZW1lbnQudXAgPSBwYXJzZWQudXA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGxhY2VtZW50LmNhbWVyYVBvc2l0aW9uIHx8IHBsYWNlbWVudC5yb3RhdGlvbiB8fCBwbGFjZW1lbnQuYWxpZ25tZW50IHx8IHBsYWNlbWVudC51cFxyXG4gICAgICAgICAgICA/IHBsYWNlbWVudFxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXCJJZ25vcmluZyB1bnBhcnNlYWJsZSBUaHJlZS5qcyBwbGFjZW1lbnQgbWV0YWRhdGE6XCIsIG1ldGFkYXRhKTtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlQmV0d2VlblR3b1BvaW50cyhzdGFydFBvaW50LCBlbmRQb2ludCkge1xyXG4gICAgY29uc3QgZHggPSBlbmRQb2ludC54IC0gc3RhcnRQb2ludC54O1xyXG4gICAgY29uc3QgZHkgPSBlbmRQb2ludC55IC0gc3RhcnRQb2ludC55O1xyXG4gICAgY29uc3QgZHogPSBlbmRQb2ludC56IC0gc3RhcnRQb2ludC56O1xyXG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkgKyBkeiAqIGR6KTtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKGRpc3RhbmNlICogMTAwKSAvIDEwMDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBvaVR5cGVUb1N0cmluZyh0eXBlOiBQb2lUeXBlKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgIGNhc2UgUG9pVHlwZS5FUVVJUE1FTlQ6XHJcbiAgICAgICAgICAgIHJldHVybiBcImVxdWlwbWVudFwiO1xyXG4gICAgICAgIGNhc2UgUG9pVHlwZS5USUNLRVQ6XHJcbiAgICAgICAgICAgIHJldHVybiBcInRpY2tldFwiO1xyXG4gICAgICAgIGNhc2UgUG9pVHlwZS5EQVRBOlxyXG4gICAgICAgICAgICByZXR1cm4gXCJkYXRhXCI7XHJcbiAgICAgICAgY2FzZSBQb2lUeXBlLkRFU0s6XHJcbiAgICAgICAgICAgIHJldHVybiBcImRhdGFcIjtcclxuICAgICAgICBjYXNlIFBvaVR5cGUuSU5GT1JNQVRJT046XHJcbiAgICAgICAgICAgIHJldHVybiBcImluZm9ybWF0aW9uXCI7XHJcbiAgICAgICAgY2FzZSBQb2lUeXBlLk1FQVNVUkU6XHJcbiAgICAgICAgICAgIHJldHVybiBcIm1lYXN1cmVcIjtcclxuICAgICAgICBjYXNlIFBvaVR5cGUuUEVPUExFOlxyXG4gICAgICAgICAgICByZXR1cm4gXCJwZW9wbGVcIjtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gXCJ0aWNrZXRcIjtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHdhaXQodGltZW91dDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICB0aW1lb3V0ID0gdGltZW91dCB8fCAyMDAwO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHdhaXRVbnRpbCA9IChjb25kaXRpb246ICgpID0+IGJvb2xlYW4pID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbmRpdGlvbigpKSB7XHJcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMzApO1xyXG4gICAgfSk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZW51bVRvQXJyYXkoZW51bWVyYWJsZTogYW55KSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bWVyYWJsZSlcclxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gaXNOYU4oTnVtYmVyKHZhbHVlKSkgPT09IHRydWUpXHJcbiAgICAgICAgLm1hcCgoa2V5KSA9PiBlbnVtZXJhYmxlW2tleV0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGV2ZWxzQmVsb3cobGV2ZWw6IExldmVsU3RhdHVzKTogTGV2ZWxTdGF0dXNbXSB7XHJcbiAgICBjb25zdCBhbGwgPSBbXHJcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUlOSU1VTSxcclxuICAgICAgICBMZXZlbFN0YXR1cy5MT1csXHJcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUVESVVNLFxyXG4gICAgICAgIExldmVsU3RhdHVzLkhJR0gsXHJcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUFYSU1VTSxcclxuICAgIF07XHJcbiAgICBzd2l0Y2ggKGxldmVsKSB7XHJcbiAgICAgICAgY2FzZSBMZXZlbFN0YXR1cy5NQVhJTVVNOlxyXG4gICAgICAgICAgICByZXR1cm4gYWxsO1xyXG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuSElHSDpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSg0LCAxKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIExldmVsU3RhdHVzLk1FRElVTTpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSgzLCAyKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIExldmVsU3RhdHVzLkxPVzpcclxuICAgICAgICAgICAgcmV0dXJuIFtMZXZlbFN0YXR1cy5NSU5JTVVNLCBMZXZlbFN0YXR1cy5MT1ddO1xyXG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuTUlOSU1VTTpcclxuICAgICAgICAgICAgcmV0dXJuIFtMZXZlbFN0YXR1cy5NSU5JTVVNXTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gW0xldmVsU3RhdHVzLk1JTklNVU1dO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlnaGVzdExldmVsRm9yTWlzc2lvbnMobWlzc2lvbnM6IE1pc3Npb25bXSk6IExldmVsU3RhdHVzIHtcclxuICAgIGxldCBsYXRlc3RWaXNpYmxlTGV2ZWxzID0gW0xldmVsU3RhdHVzLk1JTklNVU1dO1xyXG4gICAgZm9yIChjb25zdCBtIG9mIG1pc3Npb25zKSB7XHJcbiAgICAgICAgY29uc3QgdmlzaWJsZUxldmVscyA9IGdldExldmVsc0JlbG93KG0ubGV2ZWwpO1xyXG4gICAgICAgIGlmICh2aXNpYmxlTGV2ZWxzLmxlbmd0aCA+IGxhdGVzdFZpc2libGVMZXZlbHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxhdGVzdFZpc2libGVMZXZlbHMgPSB2aXNpYmxlTGV2ZWxzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHN3aXRjaCAobGF0ZXN0VmlzaWJsZUxldmVscy5sZW5ndGgpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NSU5JTVVNO1xyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgcmV0dXJuIExldmVsU3RhdHVzLkxPVztcclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NRURJVU07XHJcbiAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICByZXR1cm4gTGV2ZWxTdGF0dXMuSElHSDtcclxuICAgICAgICBjYXNlIDU6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NQVhJTVVNO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NSU5JTVVNO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlnaGVzdFJvbGVGb3JNaXNzaW9ucyhtaXNzaW9uczogTWlzc2lvbltdKTogUm9sZVN0YXR1cyB7XHJcbiAgICBsZXQgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLlZJU0lUT1I7XHJcbiAgICBmb3IgKGNvbnN0IG0gb2YgbWlzc2lvbnMpIHtcclxuICAgICAgICBpZiAobS5yb2xlID09PSBSb2xlU3RhdHVzLkFETUlOKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBSb2xlU3RhdHVzLkFETUlOO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaGlnaGVzdFJvbGUgPT09IFJvbGVTdGF0dXMuT1dORVIpIHtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuT1dORVIpIHtcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLk9XTkVSO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobS5yb2xlID09PSBSb2xlU3RhdHVzLk1BTkFHRVIpIHtcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLk1BTkFHRVI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgbS5yb2xlID09PSBSb2xlU3RhdHVzLlNFUlZJQ0UgJiZcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgIT09IFJvbGVTdGF0dXMuTUFOQUdFUlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9IFJvbGVTdGF0dXMuU0VSVklDRTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBtLnJvbGUgPT09IFJvbGVTdGF0dXMuT0NDVVBBTlQgJiZcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPT09IFJvbGVTdGF0dXMuVklTSVRPUlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9IFJvbGVTdGF0dXMuT0NDVVBBTlQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuR1VJREVfTVVTRVVNKSB7XHJcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlID0gUm9sZVN0YXR1cy5HVUlERV9NVVNFVU07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuVklTSVRPUl9NVVNFVU0pIHtcclxuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLlZJU0lUT1JfTVVTRVVNO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBoaWdoZXN0Um9sZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvbGVzQmVsb3dGb3JNYW5hZ2VyKHJvbGU6IFJvbGVTdGF0dXMpOiBSb2xlU3RhdHVzW10ge1xyXG4gICAgY29uc3QgYWxsID0gW1xyXG4gICAgICAgIFJvbGVTdGF0dXMuVklTSVRPUixcclxuICAgICAgICBSb2xlU3RhdHVzLk9DQ1VQQU5ULFxyXG4gICAgICAgIFJvbGVTdGF0dXMuU0VSVklDRSxcclxuICAgICAgICBSb2xlU3RhdHVzLk1BTkFHRVIsXHJcbiAgICAgICAgUm9sZVN0YXR1cy5PV05FUixcclxuICAgICAgICBSb2xlU3RhdHVzLkFETUlOLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IG11c2V1bSA9IFtSb2xlU3RhdHVzLlZJU0lUT1JfTVVTRVVNLCBSb2xlU3RhdHVzLkdVSURFX01VU0VVTV07XHJcbiAgICBzd2l0Y2ggKHJvbGUpIHtcclxuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuQURNSU46XHJcbiAgICAgICAgICAgIHJldHVybiBbLi4uYWxsLCAuLi5tdXNldW1dO1xyXG4gICAgICAgIGNhc2UgUm9sZVN0YXR1cy5PV05FUjpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSg1LCAxKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuTUFOQUdFUjpcclxuICAgICAgICAgICAgYWxsLnNwbGljZSg0LCAyKTtcclxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcclxuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuR1VJREVfTVVTRVVNOlxyXG4gICAgICAgICAgICByZXR1cm4gbXVzZXVtO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBhbGwuc3BsaWNlKDQsIDIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVW5pcXVlQXJyYXlCeUlEKGFycmF5T2ZPYmplY3RzOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIHJldHVybiBhcnJheU9mT2JqZWN0cy5maWx0ZXIoXHJcbiAgICAgICAgKHYsIGluZGV4LCBhKSA9PiBhLmZpbmRJbmRleCgodCkgPT4gdC5pZCA9PT0gdi5pZCkgPT09IGluZGV4LFxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZU51bGxLZXlzRnJvbU9iamVjdChvYmplY3Q6IE9iamVjdCkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xyXG4gICAgICAgIGlmIChvYmplY3Rba2V5XSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBkZWxldGUgb2JqZWN0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogVGVzdCBpZiBhIGRhdGUgaGFzIGV4cGlyZWRcclxuICogQHBhcmFtIGRhdGVcclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZGF0ZSBoYXMgZXhwaXJlZCwgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUhhc0V4cGlyZWQoXHJcbiAgICBkYXRlOiBzdHJpbmcgfCBEYXRlIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKSA8PSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nTG9jYWxlVG9FbnVtKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcclxuICAgIHN3aXRjaCAobG9jYWxlKSB7XHJcbiAgICAgICAgY2FzZSBcImVuXCI6XHJcbiAgICAgICAgICAgIHJldHVybiBMb2NhbGUuRU47XHJcbiAgICAgICAgY2FzZSBcImZyXCI6XHJcbiAgICAgICAgICAgIHJldHVybiBMb2NhbGUuRlI7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuIExvY2FsZS5FTjtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhRm9ySW1hZ2UodXJsKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XHJcblxyXG4gICAgICAgIGltZy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoaW1nKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsICgpID0+IHJlamVjdCgpKTtcclxuICAgICAgICBpbWcuc3JjID0gdXJsO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0QWxwaGFiZXRpY2FsbHlPbk5hbWUoYXJyYXk6IHsgbmFtZTogc3RyaW5nOyB9W10pOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZEVtYWlsKGVtYWlsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJlID1cclxuICAgICAgICAvXigoW15cXHNcIigpLC46Ozw+QFtcXFxcXFxdXSsoXFwuW15cXHNcIigpLC46Ozw+QFtcXFxcXFxdXSspKil8KFwiLitcIikpQCgoXFxbKD86XFxkezEsM31cXC4pezN9XFxkezEsM31dKXwoKFtcXGRBLVphLXpcXC1dK1xcLikrW0EtWmEtel17Mix9KSkkLztcclxuICAgIHJldHVybiByZS50ZXN0KGVtYWlsKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkQmxvYihibG9iLCBmaWxlbmFtZSkge1xyXG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCBcImRvd25sb2FkXCI7XHJcbiAgICBjb25zdCBjbGlja0hhbmRsZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcclxuICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2xpY2tIYW5kbGVyKTtcclxuICAgICAgICB9LCAxNTApO1xyXG4gICAgfTtcclxuICAgIGEuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNsaWNrSGFuZGxlciwgZmFsc2UpO1xyXG4gICAgYS5jbGljaygpO1xyXG4gICAgcmV0dXJuIGE7XHJcbn1cclxuXHJcbi8qXHJcbiAgICBPcGVuIG1vZGFsIGlmIG9uZSBoYXMgdG8gc3dpdGNoIHZpcnR1YWwgdmlzaXRcclxuKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5Nb2RhbEZvclZpc2l0U3dpdGNoKFxyXG4gICAgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIG1vZGVsM0Q6IHN0cmluZyxcclxuICAgIHNwYWNlSUQ6IHN0cmluZyxcclxuICAgIGRhdGFUb01vdmU6IHsgc3dlZXBUb01vdmU6IHN0cmluZywgcm90YXRpb246IGFueTsgfSB8IG51bGwgPSBudWxsXHJcbikge1xyXG4gICAgY29uc3QgbW9kYWxSZWZlcmVuY2UgPSBtb2RhbFNlcnZpY2Uub3BlbihNb2RhbFN3aXRjaFZpc2l0Q29tcG9uZW50KTtcclxuICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLmNvbnRlbnQgPVxyXG4gICAgICAgIFwiVGhpcyBvYmplY3QgYmVsb25ncyB0byBhbm90aGVyIDNEIHZpc2l0LiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gc3dpdGNoIHRoZSB2aXNpdD9cIjtcclxuICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLm1vZGVsM0QgPSBtb2RlbDNEO1xyXG4gICAgbW9kYWxSZWZlcmVuY2UuY29tcG9uZW50SW5zdGFuY2Uuc3BhY2VJRCA9IHNwYWNlSUQ7XHJcbiAgICBpZiAoZGF0YVRvTW92ZSkge1xyXG4gICAgICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLmRhdGFUb01vdmUgPSBkYXRhVG9Nb3ZlO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFuZyA9IHRyYW5zbGF0ZS5nZXRDdXJyZW50TGFuZygpIHx8IHRyYW5zbGF0ZS5nZXRGYWxsYmFja0xhbmcoKSB8fCBcImZyXCI7XHJcblxyXG4gICAgLy8gQ2xlYW4gdXAgbGVhZGluZyBtZXNzXHJcbiAgICBsYW5nID0gbGFuZy5yZXBsYWNlKC9eW18tXSsvLCAnJyk7XHJcblxyXG4gICAgLy8gSGFuZGxlIGZyX0ZSIG9yIGZyLUZSICh0YWtlIHByaW1hcnkgbGFuZ3VhZ2UpXHJcbiAgICBpZiAobGFuZy5pbmNsdWRlcyhcIl9cIikpIHtcclxuICAgICAgICBsYW5nID0gbGFuZy5zcGxpdChcIl9cIilbMF07XHJcbiAgICB9XHJcbiAgICBpZiAobGFuZy5pbmNsdWRlcyhcIi1cIikpIHtcclxuICAgICAgICBsYW5nID0gbGFuZy5zcGxpdChcIi1cIilbMF07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRW5zdXJlIDItbGV0dGVyIGNvZGUgKElTTyA2MzktMSlcclxuICAgIGlmIChsYW5nLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICBsYW5nID0gbGFuZy5zdWJzdHJpbmcoMCwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxhbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gYSBzdHJpbmcgb2YgYSBnaXZlbiBkYXRlIHRpbWUgaW4gbG9jYWwgZm9ybWF0LlxyXG4gKiBUaGUgZm9ybWF0IGlzIGRldGVybWluZWQgYnkgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRpbWVUb0xvY2FsU3RyaW5nKFxyXG4gICAgZGF0ZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSxcclxuICAgIHRyYW5zbGF0ZT86IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBtb2RlPyxcclxuKTogc3RyaW5nIHtcclxuICAgIGxldCBsYW5nID0gXCJlbi1FTlwiO1xyXG4gICAgaWYgKHRyYW5zbGF0ZSkge1xyXG4gICAgICAgIGxhbmcgPSBnZXRDdXJyZW50TGFuZyh0cmFuc2xhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBvcHRpb25zOiB7XHJcbiAgICAgICAgbW9udGg/O1xyXG4gICAgICAgIHllYXI/O1xyXG4gICAgICAgIGRheT87XHJcbiAgICAgICAgaG91cj87XHJcbiAgICAgICAgbWludXRlPztcclxuICAgICAgICBzZWNvbmQ/O1xyXG4gICAgICAgIGRhdGVTdHlsZT87XHJcbiAgICAgICAgdGltZVN0eWxlPztcclxuICAgICAgICB3ZWVrZGF5PztcclxuICAgICAgICB0aW1lWm9uZT87XHJcbiAgICAgICAgdGltZVpvbmVOYW1lPztcclxuICAgIH07XHJcbiAgICBzd2l0Y2ggKG1vZGUpIHtcclxuICAgICAgICBjYXNlIFwiZGF5X251bWVyaWNcIjpcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgZGF5OiBcIm51bWVyaWNcIiB9O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiZGF5XCI6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IHdlZWtkYXk6IFwibG9uZ1wiIH07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IGRhdGVTdHlsZTogXCJsb25nXCIgfTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcInNob3J0X2RhdGVfdGltZVwiOlxyXG4gICAgICAgICAgICBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgeWVhcjogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgICAgICBtb250aDogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgICAgICAgICAgaG91cjogXCIyLWRpZ2l0XCIsXHJcbiAgICAgICAgICAgICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwidGltZVwiOlxyXG4gICAgICAgICAgICBvcHRpb25zID0geyBob3VyOiBcIm51bWVyaWNcIiwgbWludXRlOiBcIm51bWVyaWNcIiB9O1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiZGF5X3RpbWVfem9uZVwiOlxyXG4gICAgICAgICAgICBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgd2Vla2RheTogXCJsb25nXCIsXHJcbiAgICAgICAgICAgICAgICB5ZWFyOiBcIm51bWVyaWNcIixcclxuICAgICAgICAgICAgICAgIG1vbnRoOiBcImxvbmdcIixcclxuICAgICAgICAgICAgICAgIGRheTogXCJudW1lcmljXCIsXHJcbiAgICAgICAgICAgICAgICBob3VyOiBcIm51bWVyaWNcIixcclxuICAgICAgICAgICAgICAgIG1pbnV0ZTogXCJudW1lcmljXCIsXHJcbiAgICAgICAgICAgICAgICB0aW1lWm9uZU5hbWU6IFwic2hvcnRPZmZzZXRcIixcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgIGRhdGVTdHlsZTogXCJsb25nXCIsXHJcbiAgICAgICAgICAgICAgICB0aW1lU3R5bGU6IFwic2hvcnRcIixcclxuICAgICAgICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0xvY2FsZVN0cmluZyhsYW5nLCBvcHRpb25zKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbXBhcmVzIHR3byBzdHJpbmcgYXJyYXlzXHJcbiAqIEBwYXJhbSBhcnJheTFcclxuICogQHBhcmFtIGFycmF5MlxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5c0NvbnRhaW5TYW1lRWxlbWVudHMoXHJcbiAgICBhcnJheTE6IHN0cmluZ1tdLFxyXG4gICAgYXJyYXkyOiBzdHJpbmdbXSxcclxuKTogYm9vbGVhbiB7XHJcbiAgICBhcnJheTEuc29ydCgpO1xyXG4gICAgYXJyYXkyLnNvcnQoKTtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcnJheTEpID09PSBKU09OLnN0cmluZ2lmeShhcnJheTIpO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2l0VXJsKGN1cnJlbnRVcmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwYXRoID0gY3VycmVudFVybC5zcGxpdChcIi9cIik7XHJcbiAgICBwYXRoLnNwbGljZSgzLCBwYXRoLmxlbmd0aCAtIDIpO1xyXG4gICAgcmV0dXJuIHBhdGguam9pbihcIi9cIik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFeHRyYWN0IHNwYWNlSUQgZnJvbSB1cmwgd2hlbiBpbiB2aXNpdCAzRFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFNwYWNlSURGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZpc2l0VXJsID0gZ2V0VmlzaXRVcmwodXJsKTtcclxuICAgIHJldHVybiB2aXNpdFVybC5zcGxpdChcIi9cIilbMl07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEb3dubG9hZCByZWxhdGVkXHJcbiAqL1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSBcImZpbGUtc2F2ZXJcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUoZmlsZVVybDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGZpbGVVcmwgKyBmaWxlTmFtZSwgZmlsZU5hbWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb3BlbkRvY3VtZW50KGZpbGVVcmw6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZywgaWQ6IG51bWJlcikge1xyXG4gICAgd2luZG93Lm9wZW4oYCR7ZmlsZVVybCArIGZpbGVOYW1lfSNkb2M9JHtpZH1gLCBcIl9ibGFua1wiLCBcIlwiKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRvd25sb2FkRXF1aXBtZW50RG9jdW1lbnQgPSBhc3luYyAoXHJcbiAgICBkb2N1bWVudF86IEVxdWlwbWVudERvY3VtZW50LFxyXG4pOiBQcm9taXNlPE9iamVjdCB8IHZvaWQ+ID0+IHtcclxuICAgIGNvbnN0IHNpZ25lZEZpbGUgPSBhd2FpdCBkb3dubG9hZEZpbGVBc09iamVjdChkb2N1bWVudF8udXJsKTtcclxuICAgIGlmIChzaWduZWRGaWxlKSB7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIGRvd25sb2FkQmxvYihzaWduZWRGaWxlLkJvZHksIGRvY3VtZW50Xy5maWxlbmFtZSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tFbGVtZW50QnlJZChzZWxlY3Rvcikge1xyXG4gICAgbGV0IHF1ZXJ5U2VsZWN0b3IgPSBudWxsO1xyXG4gICAgd2hpbGUgKHF1ZXJ5U2VsZWN0b3IgPT09IG51bGwpIHtcclxuICAgICAgICBhd2FpdCByYWZBc3luYygpO1xyXG4gICAgICAgIHF1ZXJ5U2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3Rvcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcXVlcnlTZWxlY3RvcjtcclxufVxyXG5cclxuZnVuY3Rpb24gcmFmQXN5bmMoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSk7IC8vIGZhc3RlciB0aGFuIHNldCB0aW1lIG91dFxyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8qIEBwYXJhbSB7QXJyYXl9IG51bWJlcnMgQW4gYXJyYXkgb2YgbnVtYmVycy5cclxuICogQHJldHVybiB7TnVtYmVyfSBUaGUgY2FsY3VsYXRlZCBhdmVyYWdlIChvciBtZWFuKSB2YWx1ZSBmcm9tIHRoZSBzcGVjaWZpZWRcclxuICogICAgIG51bWJlcnMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWVhbihudW1iZXJzOiBudW1iZXJbXSkge1xyXG4gICAgbGV0IHRvdGFsID0gMDtcclxuICAgIGZvciAoY29uc3QgbnVtYmVyIG9mIG51bWJlcnMpIHtcclxuICAgICAgICB0b3RhbCArPSBudW1iZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG90YWwgLyBudW1iZXJzLmxlbmd0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUaW1lc3RhbXBUb0xvY2FsWm9uZSh0aW1lc3RhbXA6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xyXG4gICAgY29uc3QgbG9jYWxPZmZzZXQgPSAtMSAqIHNlbGVjdGVkRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XHJcbiAgICBjb25zdCBzdGFtcCA9IHRpbWVzdGFtcCArIGxvY2FsT2Zmc2V0O1xyXG4gICAgcmV0dXJuIHN0YW1wO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHN0cmluZyBmb3IgcGVyaW9kIG9mIHRpbWUuIFBhcmFtZXRlcnMgYXJlIERhdGVUaW1lIG9iamVjdHMgb2YgbHV4b24gbGlicmFyeS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVEYXRlUGVyaW9kKFxyXG4gICAgdHJhbnNsYXRlU2VydmljZTogYW55LFxyXG4gICAgZGF0ZVN0YXJ0UGVyaW9kOiBhbnksXHJcbiAgICBkYXRlRW5kUGVyaW9kOiBhbnksXHJcbik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsb2NhbGUgPSBnZXRMb2NhbGVMb25nKHRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gICAgcmV0dXJuIGAke2RhdGVTdGFydFBlcmlvZC50b0xvY2FsZVN0cmluZyh7XHJcbiAgICAgICAgbG9jYWxlLFxyXG4gICAgICAgIG1vbnRoOiBcImxvbmdcIixcclxuICAgICAgICBkYXk6IFwiMi1kaWdpdFwiLFxyXG4gICAgfSl9IC0gJHtkYXRlRW5kUGVyaW9kLnRvTG9jYWxlU3RyaW5nKHtcclxuICAgICAgICBsb2NhbGUsXHJcbiAgICAgICAgbW9udGg6IFwibG9uZ1wiLFxyXG4gICAgICAgIGRheTogXCIyLWRpZ2l0XCIsXHJcbiAgICB9KX0gYDtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4qIFJldHVybiBsb2NhbCBpbiB0aGUgY2Fub25pY2FsIGZvcm06IFwiZW4tR0JcIiwgXCJmci1GUlwiXHJcbiovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVMb25nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFuZyA9IGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZSk7XHJcblxyXG4gICAgaWYgKGxhbmcgPT09IFwiZW5cIikge1xyXG4gICAgICAgIHJldHVybiBcImVuLUdCXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7bGFuZ30tJHtsYW5nLnRvVXBwZXJDYXNlKCl9YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybiBsb2NhbCBpbiB0aGUgc2hvcnQgZm9ybTogXCJlblwiLCBcImZyXCJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVTaG9ydCh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXQgc3RyaW5nIHRvIGxvd2VyY2FzZSwgbm8gc3BhY2VzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9Mb3dlcmNhc2VOb1NwYWNlcyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHdvcmRzID0gaW5wdXQudG9Mb3dlckNhc2UoKS5zcGxpdCgvXFxzKy8pO1xyXG4gICAgcmV0dXJuIHdvcmRzLmpvaW4oXCJcIik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZXN0IGlmIHRoZSBvYmplY3QgPT09IHt9XHJcbiAqIEBwYXJhbSBvYmogb2JqZWN0IHtrZXk6dmFsdWV9XHJcbiAqIEByZXR1cm5zIGJvb2xlYW5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5T2JqZWN0KG9iamVjdCk6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChjb25zdCB4IGluIG9iamVjdCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2h1ZmZsZUFycmF5KGFycmF5OiBhbnlbXSkge1xyXG4gICAgY29uc3QgbmV3QXJyYXkgPSBbLi4uYXJyYXldO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSBhcnJheS5sZW5ndGggLSAxOyBpbmRleCA+IDA7IGluZGV4LS0pIHtcclxuICAgICAgICBjb25zdCBpbmRleE5ldyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChpbmRleCArIDEpKTtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cclxuICAgICAgICBbbmV3QXJyYXlbaW5kZXhdLCBuZXdBcnJheVtpbmRleE5ld11dID0gW1xyXG4gICAgICAgICAgICBuZXdBcnJheVtpbmRleE5ld10sXHJcbiAgICAgICAgICAgIG5ld0FycmF5W2luZGV4XSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld0FycmF5O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyVG9EYXRlU3RyaW5nKHRpbWVzdGFtcDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGpzRGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XHJcbiAgICByZXR1cm4ganNEYXRlLnRvTG9jYWxlU3RyaW5nKFwiZnItRlJcIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkdXJhdGlvblRvU3RyaW5nKFxyXG4gICAgZHVyYXRpb246IG51bWJlcixcclxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGR1cmF0aW9uIC8gMzYwMCAvIDI0KTtcclxuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcigoZHVyYXRpb24gLSBkYXlzICogMjQgKiAzNjAwKSAvIDM2MDApO1xyXG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKGR1cmF0aW9uICUgMzYwMCkgLyA2MCk7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkdXJhdGlvbiAlIDYwKTtcclxuXHJcbiAgICBjb25zdCBkYXlzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJkYXkocylcIik7XHJcbiAgICBjb25zdCBob3Vyc1N0cmluZyA9IHRyYW5zbGF0ZS5pbnN0YW50KFwiaG91cihzKVwiKTtcclxuICAgIGNvbnN0IG9uZUhvdXJTdHJpbmcgPSB0cmFuc2xhdGUuaW5zdGFudChcImhvdXJcIik7XHJcbiAgICBjb25zdCBtaW51dGVzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJtaW51dGUocylcIik7XHJcbiAgICBjb25zdCBzZWNvbmRzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJzZWNvbmQocylcIik7XHJcblxyXG4gICAgaWYgKGR1cmF0aW9uID4gMzYwMCAqIDI0ICogNykge1xyXG4gICAgICAgIHJldHVybiBgJHtkYXlzfSAke2RheXNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIGlmIChkdXJhdGlvbiA+IDM2MDAgKiAyNCkge1xyXG4gICAgICAgIHJldHVybiBgJHtkYXlzfSAke2RheXNTdHJpbmd9ICR7aG91cnN9ICR7aG91cnNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIGlmIChkdXJhdGlvbiA9PT0gMzYwMCkge1xyXG4gICAgICAgIHJldHVybiBgJHtob3Vyc30gJHtvbmVIb3VyU3RyaW5nfWA7XHJcbiAgICB9XHJcbiAgICBpZiAoZHVyYXRpb24gPiAzNjAwKSB7XHJcbiAgICAgICAgaWYgKG1pbnV0ZXMgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke2hvdXJzfSAke2hvdXJzU3RyaW5nfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBgJHtob3Vyc30gJHtob3Vyc1N0cmluZ30gJHttaW51dGVzfSAke21pbnV0ZXNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIGlmIChkdXJhdGlvbiA+PSA2MCkge1xyXG4gICAgICAgIGlmIChzZWNvbmRzID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHttaW51dGVzfSAke21pbnV0ZXNTdHJpbmd9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9ICR7bWludXRlc1N0cmluZ30gJHtzZWNvbmRzfSAke3NlY29uZHNTdHJpbmd9YDtcclxuICAgIH1cclxuICAgIHJldHVybiBgJHtzZWNvbmRzfSAke3NlY29uZHNTdHJpbmd9YDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50VG9TdHJpbmcocG9pbnQ6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlciB9KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHggPSBwb2ludC54LnRvRml4ZWQoMyk7XHJcbiAgICBjb25zdCB5ID0gcG9pbnQueS50b0ZpeGVkKDMpO1xyXG4gICAgY29uc3QgeiA9IHBvaW50LnoudG9GaXhlZCgzKTtcclxuXHJcbiAgICByZXR1cm4gYHsgeDogJHt4fSwgeTogJHt5fSwgejogJHt6fSB9YDtcclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
548
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9oZWxwZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFxQixXQUFXLEVBQUUsTUFBTSxFQUFXLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWdCdkc7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLEdBQW9EO0lBRXBELElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxNQUFNLEVBQUUsU0FBUyxLQUFLLFFBQVE7WUFDeEMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNuRixDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2YsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNMLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7QUFDTCxDQUFDO0FBS0QsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXFCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQVc1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QUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTW9kYWxTd2l0Y2hWaXNpdENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbW9kYWwtc3dpdGNoLXZpc2l0L21vZGFsLXN3aXRjaC12aXNpdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IGRvd25sb2FkRmlsZUFzT2JqZWN0IH0gZnJvbSBcIi4vc2VydmljZXMvczMuc2VydmljZVwiO1xuaW1wb3J0IHsgRXF1aXBtZW50RG9jdW1lbnQsIExldmVsU3RhdHVzLCBMb2NhbGUsIE1pc3Npb24sIFBvaVR5cGUsIFJvbGVTdGF0dXMgfSBmcm9tIFwiLi90eXBlcy5zZXJ2aWNlXCI7XG5cbi8qKlxuICogTWFwcyB0aGUgY29vcmRpbmF0ZSBzcGFjZSBQT0kgcG9zaXRpb25zIHdlcmUgY2FwdHVyZWQgaW4gb250byB0aGUgbG9hZGVkIG1vZGVsJ3Mgb3duIHNwYWNlLlxuICpcbiAqIFRhZyBjb29yZGluYXRlcyBjb21lIGZyb20gd2hpY2hldmVyIHZpZXdlciBjcmVhdGVkIHRoZW0gLSB0eXBpY2FsbHkgTWF0dGVycG9ydCAtIGFuZCB0aGUgLmdsYiBpc1xuICogYSBzZXBhcmF0ZSBjYXB0dXJlIHdpdGggaXRzIG93biBvcmlnaW4sIGF4ZXMgYW5kIHVuaXRzLiBXaXRob3V0IHRoaXMsIGEgdGFnIGNyZWF0ZWQgaW4gb25lIHZpZXdlclxuICogbGFuZHMgaW4gdGhlIHdyb25nIHBsYWNlIGluIHRoZSBvdGhlciBldmVuIHRob3VnaCBib3RoIHJlYWQgdGhlIHNhbWUgcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRocmVlSnNBbGlnbm1lbnQge1xuICAgIHRyYW5zbGF0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyIH07XG4gICAgLyoqIEV1bGVyIGFuZ2xlcyBpbiByYWRpYW5zLCBhcHBsaWVkIFhZWi4gKi9cbiAgICByb3RhdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xuICAgIHNjYWxlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFdoZXJlIGEgUE9JIHBsYWNlZCBpbiBhIFRocmVlLmpzIG1vZGVsIHNheXMgaXQgd2FzIHBsYWNlZCwgb3IgbnVsbCBmb3IgYW55IG90aGVyIFBPSS5cbiAqXG4gKiBgZnJhbWVgIGlzICdtb2RlbCcgd2hlbiBpdHMgY29vcmRpbmF0ZXMgYXJlIGluIHRoYXQgbW9kZWwncyBvd24gc3BhY2UgLSBpdCB3YXMgcGxhY2VkIGJlZm9yZSB0aGVcbiAqIG1vZGVsIHdhcyBjYWxpYnJhdGVkIC0gcmF0aGVyIHRoYW4gaW4gdGhlIHNwYWNlIHRhZ3Mgc2hhcmUgd2l0aCB0aGUgb3RoZXIgdmlzaXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGhyZWVKc1BvaU9yaWdpbihcbiAgICBwb2k6IHsgbWV0YWRhdGE/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogeyBjYXB0dXJlSUQ6IHN0cmluZzsgZnJhbWU6IFwibW9kZWxcIiB8IG51bGwgfSB8IG51bGwge1xuICAgIGlmICghcG9pPy5tZXRhZGF0YSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwb2kubWV0YWRhdGEpO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHBhcnNlZD8uY2FwdHVyZUlEID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHsgY2FwdHVyZUlEOiBwYXJzZWQuY2FwdHVyZUlELCBmcmFtZTogcGFyc2VkLmZyYW1lID09PSBcIm1vZGVsXCIgPyBcIm1vZGVsXCIgOiBudWxsIH1cbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG4vKiogV2hpY2ggb2YgYSBtb2RlbCdzIG93biBheGVzIHBvaW50cyB1cCwgZm9yIGEgbW9kZWwgd2hvc2UgZmlsZSBoYXMgaXQgdGhlIG90aGVyIHdheS4gKi9cbmV4cG9ydCB0eXBlIFRocmVlSnNNb2RlbFVwID0gXCJ4XCIgfCBcInlcIiB8IFwielwiIHwgXCIteFwiIHwgXCIteVwiIHwgXCItelwiO1xuXG5leHBvcnQgY29uc3QgVEhSRUVKU19NT0RFTF9VUF9PUFRJT05TOiBUaHJlZUpzTW9kZWxVcFtdID0gW1wieVwiLCBcInpcIiwgXCJ4XCIsIFwiLXlcIiwgXCItelwiLCBcIi14XCJdO1xuXG4vKiogV2hlcmUgdGhlIGNhbWVyYSBzdGFydHMgd2hlbiBhIFRocmVlLmpzIHZpc2l0IGlzIG9wZW5lZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVKc1BsYWNlbWVudCB7XG4gICAgY2FtZXJhUG9zaXRpb24/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXIgfTtcbiAgICByb3RhdGlvbj86IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlciB9O1xuICAgIGFsaWdubWVudD86IFRocmVlSnNBbGlnbm1lbnQ7XG4gICAgLyoqIFNldCBvbmNlIHNvbWVvbmUgaGFzIGNob3NlbiB0aGUgdmVydGljYWwgYXhpcyBieSBoYW5kOyBhYnNlbnQgbWVhbnMgXCJ3b3JrIGl0IG91dFwiLiAqL1xuICAgIHVwPzogVGhyZWVKc01vZGVsVXA7XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBwbGFjZW1lbnQgc3RvcmVkIGluIGEgVGhyZWUuanMgY2FwdHVyZSdzIG1ldGFkYXRhLCBvciBudWxsIHdoZW4gdGhlcmUgaXMgbm9uZS5cbiAqXG4gKiBCb3RoIHRoZSBpbXBvcnQgKHdyaXRpbmcgdGhlIG5hdmlnYXRpb24gZW50cnkpIGFuZCB0aGUgdmlld2VyIChmcmFtaW5nIHRoZSBjYW1lcmEpIG5lZWQgdGhpcywgc29cbiAqIGl0IGxpdmVzIGhlcmUgcmF0aGVyIHRoYW4gb24gZWl0aGVyIHNlcnZpY2UuIFBsYWNlbWVudCBpcyBvcHRpb25hbCAtIHRoZSB2aWV3ZXIgZnJhbWVzIHRoZSBtb2RlbFxuICogYXV0b21hdGljYWxseSB3aXRob3V0IGl0IC0gc28gdW51c2FibGUgbWV0YWRhdGEgaXMgd2FybmVkIGFib3V0IGFuZCBkcm9wcGVkLCBuZXZlciB0aHJvd24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRocmVlSnNQbGFjZW1lbnQobWV0YWRhdGE6IHN0cmluZyk6IFRocmVlSnNQbGFjZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIW1ldGFkYXRhIHx8ICFtZXRhZGF0YS50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UobWV0YWRhdGEpO1xuICAgICAgICBjb25zdCBpc1ZlY3RvciA9ICh2YWx1ZTogYW55KSA9PlxuICAgICAgICAgICAgdmFsdWUgJiYgW1wieFwiLCBcInlcIiwgXCJ6XCJdLmV2ZXJ5KChheGlzKSA9PiB0eXBlb2YgdmFsdWVbYXhpc10gPT09IFwibnVtYmVyXCIpO1xuICAgICAgICBjb25zdCBwbGFjZW1lbnQ6IFRocmVlSnNQbGFjZW1lbnQgPSB7fTtcbiAgICAgICAgaWYgKGlzVmVjdG9yKHBhcnNlZC5jYW1lcmFQb3NpdGlvbikpIHtcbiAgICAgICAgICAgIHBsYWNlbWVudC5jYW1lcmFQb3NpdGlvbiA9IHBhcnNlZC5jYW1lcmFQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNWZWN0b3IocGFyc2VkLnJvdGF0aW9uKSkge1xuICAgICAgICAgICAgcGxhY2VtZW50LnJvdGF0aW9uID0gcGFyc2VkLnJvdGF0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gcGFyc2VkLmFsaWdubWVudDtcbiAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgYWxpZ25tZW50OiBUaHJlZUpzQWxpZ25tZW50ID0ge307XG4gICAgICAgICAgICBpZiAoaXNWZWN0b3Ioc291cmNlLnRyYW5zbGF0aW9uKSkge1xuICAgICAgICAgICAgICAgIGFsaWdubWVudC50cmFuc2xhdGlvbiA9IHNvdXJjZS50cmFuc2xhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1ZlY3Rvcihzb3VyY2Uucm90YXRpb24pKSB7XG4gICAgICAgICAgICAgICAgYWxpZ25tZW50LnJvdGF0aW9uID0gc291cmNlLnJvdGF0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2NhbGUgMCB3b3VsZCBjb2xsYXBzZSBldmVyeSB0YWcgb250byBhIHBvaW50LCBzbyB0cmVhdCBpdCBhcyB1bnNldCByYXRoZXIgdGhhbiBob25vdXIgaXQuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNvdXJjZS5zY2FsZSA9PT0gXCJudW1iZXJcIiAmJiBzb3VyY2Uuc2NhbGUgPiAwKSB7XG4gICAgICAgICAgICAgICAgYWxpZ25tZW50LnNjYWxlID0gc291cmNlLnNjYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGFsaWdubWVudCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHBsYWNlbWVudC5hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoVEhSRUVKU19NT0RFTF9VUF9PUFRJT05TLmluY2x1ZGVzKHBhcnNlZC51cCkpIHtcbiAgICAgICAgICAgIHBsYWNlbWVudC51cCA9IHBhcnNlZC51cDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwbGFjZW1lbnQuY2FtZXJhUG9zaXRpb24gfHwgcGxhY2VtZW50LnJvdGF0aW9uIHx8IHBsYWNlbWVudC5hbGlnbm1lbnQgfHwgcGxhY2VtZW50LnVwXG4gICAgICAgICAgICA/IHBsYWNlbWVudFxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH0gY2F0Y2gge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJJZ25vcmluZyB1bnBhcnNlYWJsZSBUaHJlZS5qcyBwbGFjZW1lbnQgbWV0YWRhdGE6XCIsIG1ldGFkYXRhKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGFuY2VCZXR3ZWVuVHdvUG9pbnRzKHN0YXJ0UG9pbnQsIGVuZFBvaW50KSB7XG4gICAgY29uc3QgZHggPSBlbmRQb2ludC54IC0gc3RhcnRQb2ludC54O1xuICAgIGNvbnN0IGR5ID0gZW5kUG9pbnQueSAtIHN0YXJ0UG9pbnQueTtcbiAgICBjb25zdCBkeiA9IGVuZFBvaW50LnogLSBzdGFydFBvaW50Lno7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkgKyBkeiAqIGR6KTtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChkaXN0YW5jZSAqIDEwMCkgLyAxMDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb2lUeXBlVG9TdHJpbmcodHlwZTogUG9pVHlwZSk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUG9pVHlwZS5FUVVJUE1FTlQ6XG4gICAgICAgICAgICByZXR1cm4gXCJlcXVpcG1lbnRcIjtcbiAgICAgICAgY2FzZSBQb2lUeXBlLlRJQ0tFVDpcbiAgICAgICAgICAgIHJldHVybiBcInRpY2tldFwiO1xuICAgICAgICBjYXNlIFBvaVR5cGUuREFUQTpcbiAgICAgICAgICAgIHJldHVybiBcImRhdGFcIjtcbiAgICAgICAgY2FzZSBQb2lUeXBlLkRFU0s6XG4gICAgICAgICAgICByZXR1cm4gXCJkYXRhXCI7XG4gICAgICAgIGNhc2UgUG9pVHlwZS5JTkZPUk1BVElPTjpcbiAgICAgICAgICAgIHJldHVybiBcImluZm9ybWF0aW9uXCI7XG4gICAgICAgIGNhc2UgUG9pVHlwZS5NRUFTVVJFOlxuICAgICAgICAgICAgcmV0dXJuIFwibWVhc3VyZVwiO1xuICAgICAgICBjYXNlIFBvaVR5cGUuUEVPUExFOlxuICAgICAgICAgICAgcmV0dXJuIFwicGVvcGxlXCI7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gXCJ0aWNrZXRcIjtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0KHRpbWVvdXQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICB0aW1lb3V0ID0gdGltZW91dCB8fCAyMDAwO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSwgdGltZW91dCk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCB3YWl0VW50aWwgPSAoY29uZGl0aW9uOiAoKSA9PiBib29sZWFuKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChjb25kaXRpb24oKSkge1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAzMCk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVRvQXJyYXkoZW51bWVyYWJsZTogYW55KSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudW1lcmFibGUpXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiBpc05hTihOdW1iZXIodmFsdWUpKSA9PT0gdHJ1ZSlcbiAgICAgICAgLm1hcCgoa2V5KSA9PiBlbnVtZXJhYmxlW2tleV0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGV2ZWxzQmVsb3cobGV2ZWw6IExldmVsU3RhdHVzKTogTGV2ZWxTdGF0dXNbXSB7XG4gICAgY29uc3QgYWxsID0gW1xuICAgICAgICBMZXZlbFN0YXR1cy5NSU5JTVVNLFxuICAgICAgICBMZXZlbFN0YXR1cy5MT1csXG4gICAgICAgIExldmVsU3RhdHVzLk1FRElVTSxcbiAgICAgICAgTGV2ZWxTdGF0dXMuSElHSCxcbiAgICAgICAgTGV2ZWxTdGF0dXMuTUFYSU1VTSxcbiAgICBdO1xuICAgIHN3aXRjaCAobGV2ZWwpIHtcbiAgICAgICAgY2FzZSBMZXZlbFN0YXR1cy5NQVhJTVVNOlxuICAgICAgICAgICAgcmV0dXJuIGFsbDtcbiAgICAgICAgY2FzZSBMZXZlbFN0YXR1cy5ISUdIOlxuICAgICAgICAgICAgYWxsLnNwbGljZSg0LCAxKTtcbiAgICAgICAgICAgIHJldHVybiBhbGw7XG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuTUVESVVNOlxuICAgICAgICAgICAgYWxsLnNwbGljZSgzLCAyKTtcbiAgICAgICAgICAgIHJldHVybiBhbGw7XG4gICAgICAgIGNhc2UgTGV2ZWxTdGF0dXMuTE9XOlxuICAgICAgICAgICAgcmV0dXJuIFtMZXZlbFN0YXR1cy5NSU5JTVVNLCBMZXZlbFN0YXR1cy5MT1ddO1xuICAgICAgICBjYXNlIExldmVsU3RhdHVzLk1JTklNVU06XG4gICAgICAgICAgICByZXR1cm4gW0xldmVsU3RhdHVzLk1JTklNVU1dO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFtMZXZlbFN0YXR1cy5NSU5JTVVNXTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWdoZXN0TGV2ZWxGb3JNaXNzaW9ucyhtaXNzaW9uczogTWlzc2lvbltdKTogTGV2ZWxTdGF0dXMge1xuICAgIGxldCBsYXRlc3RWaXNpYmxlTGV2ZWxzID0gW0xldmVsU3RhdHVzLk1JTklNVU1dO1xuICAgIGZvciAoY29uc3QgbSBvZiBtaXNzaW9ucykge1xuICAgICAgICBjb25zdCB2aXNpYmxlTGV2ZWxzID0gZ2V0TGV2ZWxzQmVsb3cobS5sZXZlbCk7XG4gICAgICAgIGlmICh2aXNpYmxlTGV2ZWxzLmxlbmd0aCA+IGxhdGVzdFZpc2libGVMZXZlbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBsYXRlc3RWaXNpYmxlTGV2ZWxzID0gdmlzaWJsZUxldmVscztcbiAgICAgICAgfVxuICAgIH1cbiAgICBzd2l0Y2ggKGxhdGVzdFZpc2libGVMZXZlbHMubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBMZXZlbFN0YXR1cy5NSU5JTVVNO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICByZXR1cm4gTGV2ZWxTdGF0dXMuTE9XO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gTGV2ZWxTdGF0dXMuTUVESVVNO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICByZXR1cm4gTGV2ZWxTdGF0dXMuSElHSDtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgcmV0dXJuIExldmVsU3RhdHVzLk1BWElNVU07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gTGV2ZWxTdGF0dXMuTUlOSU1VTTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWdoZXN0Um9sZUZvck1pc3Npb25zKG1pc3Npb25zOiBNaXNzaW9uW10pOiBSb2xlU3RhdHVzIHtcbiAgICBsZXQgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLlZJU0lUT1I7XG4gICAgZm9yIChjb25zdCBtIG9mIG1pc3Npb25zKSB7XG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuQURNSU4pIHtcbiAgICAgICAgICAgIHJldHVybiBSb2xlU3RhdHVzLkFETUlOO1xuICAgICAgICB9XG4gICAgICAgIGlmIChoaWdoZXN0Um9sZSA9PT0gUm9sZVN0YXR1cy5PV05FUikge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG0ucm9sZSA9PT0gUm9sZVN0YXR1cy5PV05FUikge1xuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLk9XTkVSO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtLnJvbGUgPT09IFJvbGVTdGF0dXMuTUFOQUdFUikge1xuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLk1BTkFHRVI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgbS5yb2xlID09PSBSb2xlU3RhdHVzLlNFUlZJQ0UgJiZcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlICE9PSBSb2xlU3RhdHVzLk1BTkFHRVJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9IFJvbGVTdGF0dXMuU0VSVklDRTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBtLnJvbGUgPT09IFJvbGVTdGF0dXMuT0NDVVBBTlQgJiZcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlID09PSBSb2xlU3RhdHVzLlZJU0lUT1JcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBoaWdoZXN0Um9sZSA9IFJvbGVTdGF0dXMuT0NDVVBBTlQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG0ucm9sZSA9PT0gUm9sZVN0YXR1cy5HVUlERV9NVVNFVU0pIHtcbiAgICAgICAgICAgIGhpZ2hlc3RSb2xlID0gUm9sZVN0YXR1cy5HVUlERV9NVVNFVU07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG0ucm9sZSA9PT0gUm9sZVN0YXR1cy5WSVNJVE9SX01VU0VVTSkge1xuICAgICAgICAgICAgaGlnaGVzdFJvbGUgPSBSb2xlU3RhdHVzLlZJU0lUT1JfTVVTRVVNO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoaWdoZXN0Um9sZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvbGVzQmVsb3dGb3JNYW5hZ2VyKHJvbGU6IFJvbGVTdGF0dXMpOiBSb2xlU3RhdHVzW10ge1xuICAgIGNvbnN0IGFsbCA9IFtcbiAgICAgICAgUm9sZVN0YXR1cy5WSVNJVE9SLFxuICAgICAgICBSb2xlU3RhdHVzLk9DQ1VQQU5ULFxuICAgICAgICBSb2xlU3RhdHVzLlNFUlZJQ0UsXG4gICAgICAgIFJvbGVTdGF0dXMuTUFOQUdFUixcbiAgICAgICAgUm9sZVN0YXR1cy5PV05FUixcbiAgICAgICAgUm9sZVN0YXR1cy5BRE1JTixcbiAgICBdO1xuICAgIGNvbnN0IG11c2V1bSA9IFtSb2xlU3RhdHVzLlZJU0lUT1JfTVVTRVVNLCBSb2xlU3RhdHVzLkdVSURFX01VU0VVTV07XG4gICAgc3dpdGNoIChyb2xlKSB7XG4gICAgICAgIGNhc2UgUm9sZVN0YXR1cy5BRE1JTjpcbiAgICAgICAgICAgIHJldHVybiBbLi4uYWxsLCAuLi5tdXNldW1dO1xuICAgICAgICBjYXNlIFJvbGVTdGF0dXMuT1dORVI6XG4gICAgICAgICAgICBhbGwuc3BsaWNlKDUsIDEpO1xuICAgICAgICAgICAgcmV0dXJuIGFsbDtcbiAgICAgICAgY2FzZSBSb2xlU3RhdHVzLk1BTkFHRVI6XG4gICAgICAgICAgICBhbGwuc3BsaWNlKDQsIDIpO1xuICAgICAgICAgICAgcmV0dXJuIGFsbDtcbiAgICAgICAgY2FzZSBSb2xlU3RhdHVzLkdVSURFX01VU0VVTTpcbiAgICAgICAgICAgIHJldHVybiBtdXNldW07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gYWxsLnNwbGljZSg0LCAyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJVbmlxdWVBcnJheUJ5SUQoYXJyYXlPZk9iamVjdHM6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBhcnJheU9mT2JqZWN0cy5maWx0ZXIoXG4gICAgICAgICh2LCBpbmRleCwgYSkgPT4gYS5maW5kSW5kZXgoKHQpID0+IHQuaWQgPT09IHYuaWQpID09PSBpbmRleCxcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlTnVsbEtleXNGcm9tT2JqZWN0KG9iamVjdDogT2JqZWN0KSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xuICAgICAgICBpZiAob2JqZWN0W2tleV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBvYmplY3Rba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBUZXN0IGlmIGEgZGF0ZSBoYXMgZXhwaXJlZFxuICogQHBhcmFtIGRhdGVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGRhdGUgaGFzIGV4cGlyZWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUhhc0V4cGlyZWQoXG4gICAgZGF0ZTogc3RyaW5nIHwgRGF0ZSB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkgPD0gbmV3IERhdGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nTG9jYWxlVG9FbnVtKGxvY2FsZTogc3RyaW5nKTogTG9jYWxlIHtcbiAgICBzd2l0Y2ggKGxvY2FsZSkge1xuICAgICAgICBjYXNlIFwiZW5cIjpcbiAgICAgICAgICAgIHJldHVybiBMb2NhbGUuRU47XG4gICAgICAgIGNhc2UgXCJmclwiOlxuICAgICAgICAgICAgcmV0dXJuIExvY2FsZS5GUjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBMb2NhbGUuRU47XG4gICAgfVxufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhRm9ySW1hZ2UodXJsKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcblxuICAgICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShpbWcpO1xuICAgICAgICB9KTtcbiAgICAgICAgaW1nLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLCAoKSA9PiByZWplY3QoKSk7XG4gICAgICAgIGltZy5zcmMgPSB1cmw7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QWxwaGFiZXRpY2FsbHlPbk5hbWUoYXJyYXk6IHsgbmFtZTogc3RyaW5nOyB9W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGFycmF5LnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRFbWFpbChlbWFpbDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmUgPVxuICAgICAgICAvXigoW15cXHNcIigpLC46Ozw+QFtcXFxcXFxdXSsoXFwuW15cXHNcIigpLC46Ozw+QFtcXFxcXFxdXSspKil8KFwiLitcIikpQCgoXFxbKD86XFxkezEsM31cXC4pezN9XFxkezEsM31dKXwoKFtcXGRBLVphLXpcXC1dK1xcLikrW0EtWmEtel17Mix9KSkkLztcbiAgICByZXR1cm4gcmUudGVzdChlbWFpbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEJsb2IoYmxvYiwgZmlsZW5hbWUpIHtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8IFwiZG93bmxvYWRcIjtcbiAgICBjb25zdCBjbGlja0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2xpY2tIYW5kbGVyKTtcbiAgICAgICAgfSwgMTUwKTtcbiAgICB9O1xuICAgIGEuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGNsaWNrSGFuZGxlciwgZmFsc2UpO1xuICAgIGEuY2xpY2soKTtcbiAgICByZXR1cm4gYTtcbn1cblxuLypcbiAgICBPcGVuIG1vZGFsIGlmIG9uZSBoYXMgdG8gc3dpdGNoIHZpcnR1YWwgdmlzaXRcbiovXG5leHBvcnQgZnVuY3Rpb24gb3Blbk1vZGFsRm9yVmlzaXRTd2l0Y2goXG4gICAgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcbiAgICBtb2RlbDNEOiBzdHJpbmcsXG4gICAgc3BhY2VJRDogc3RyaW5nLFxuICAgIGRhdGFUb01vdmU6IHsgc3dlZXBUb01vdmU6IHN0cmluZywgcm90YXRpb246IGFueTsgfSB8IG51bGwgPSBudWxsXG4pIHtcbiAgICBjb25zdCBtb2RhbFJlZmVyZW5jZSA9IG1vZGFsU2VydmljZS5vcGVuKE1vZGFsU3dpdGNoVmlzaXRDb21wb25lbnQpO1xuICAgIG1vZGFsUmVmZXJlbmNlLmNvbXBvbmVudEluc3RhbmNlLmNvbnRlbnQgPVxuICAgICAgICBcIlRoaXMgb2JqZWN0IGJlbG9uZ3MgdG8gYW5vdGhlciAzRCB2aXNpdC4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHN3aXRjaCB0aGUgdmlzaXQ/XCI7XG4gICAgbW9kYWxSZWZlcmVuY2UuY29tcG9uZW50SW5zdGFuY2UubW9kZWwzRCA9IG1vZGVsM0Q7XG4gICAgbW9kYWxSZWZlcmVuY2UuY29tcG9uZW50SW5zdGFuY2Uuc3BhY2VJRCA9IHNwYWNlSUQ7XG4gICAgaWYgKGRhdGFUb01vdmUpIHtcbiAgICAgICAgbW9kYWxSZWZlcmVuY2UuY29tcG9uZW50SW5zdGFuY2UuZGF0YVRvTW92ZSA9IGRhdGFUb01vdmU7XG4gICAgfVxuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50TGFuZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiBzdHJpbmcge1xuICAgIGxldCBsYW5nID0gdHJhbnNsYXRlLmdldEN1cnJlbnRMYW5nKCkgfHwgdHJhbnNsYXRlLmdldEZhbGxiYWNrTGFuZygpIHx8IFwiZnJcIjtcblxuICAgIC8vIENsZWFuIHVwIGxlYWRpbmcgbWVzc1xuICAgIGxhbmcgPSBsYW5nLnJlcGxhY2UoL15bXy1dKy8sICcnKTtcblxuICAgIC8vIEhhbmRsZSBmcl9GUiBvciBmci1GUiAodGFrZSBwcmltYXJ5IGxhbmd1YWdlKVxuICAgIGlmIChsYW5nLmluY2x1ZGVzKFwiX1wiKSkge1xuICAgICAgICBsYW5nID0gbGFuZy5zcGxpdChcIl9cIilbMF07XG4gICAgfVxuICAgIGlmIChsYW5nLmluY2x1ZGVzKFwiLVwiKSkge1xuICAgICAgICBsYW5nID0gbGFuZy5zcGxpdChcIi1cIilbMF07XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIDItbGV0dGVyIGNvZGUgKElTTyA2MzktMSlcbiAgICBpZiAobGFuZy5sZW5ndGggPiAyKSB7XG4gICAgICAgIGxhbmcgPSBsYW5nLnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFuZztcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBzdHJpbmcgb2YgYSBnaXZlbiBkYXRlIHRpbWUgaW4gbG9jYWwgZm9ybWF0LlxuICogVGhlIGZvcm1hdCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBjdXJyZW50IGxhbmd1YWdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVRpbWVUb0xvY2FsU3RyaW5nKFxuICAgIGRhdGU6IG51bWJlciB8IHN0cmluZyB8IERhdGUsXG4gICAgdHJhbnNsYXRlPzogVHJhbnNsYXRlU2VydmljZSxcbiAgICBtb2RlPyxcbik6IHN0cmluZyB7XG4gICAgbGV0IGxhbmcgPSBcImVuLUVOXCI7XG4gICAgaWYgKHRyYW5zbGF0ZSkge1xuICAgICAgICBsYW5nID0gZ2V0Q3VycmVudExhbmcodHJhbnNsYXRlKTtcbiAgICB9XG5cbiAgICBsZXQgb3B0aW9uczoge1xuICAgICAgICBtb250aD87XG4gICAgICAgIHllYXI/O1xuICAgICAgICBkYXk/O1xuICAgICAgICBob3VyPztcbiAgICAgICAgbWludXRlPztcbiAgICAgICAgc2Vjb25kPztcbiAgICAgICAgZGF0ZVN0eWxlPztcbiAgICAgICAgdGltZVN0eWxlPztcbiAgICAgICAgd2Vla2RheT87XG4gICAgICAgIHRpbWVab25lPztcbiAgICAgICAgdGltZVpvbmVOYW1lPztcbiAgICB9O1xuICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICBjYXNlIFwiZGF5X251bWVyaWNcIjpcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IGRheTogXCJudW1lcmljXCIgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGF5XCI6XG4gICAgICAgICAgICBvcHRpb25zID0geyB3ZWVrZGF5OiBcImxvbmdcIiB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICAgICAgICBvcHRpb25zID0geyBkYXRlU3R5bGU6IFwibG9uZ1wiIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInNob3J0X2RhdGVfdGltZVwiOlxuICAgICAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgICAgICBtb250aDogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgICAgICBob3VyOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgICAgICBtaW51dGU6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidGltZVwiOlxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgaG91cjogXCJudW1lcmljXCIsIG1pbnV0ZTogXCJudW1lcmljXCIgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGF5X3RpbWVfem9uZVwiOlxuICAgICAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgICAgICAgICAgICAgICB5ZWFyOiBcIm51bWVyaWNcIixcbiAgICAgICAgICAgICAgICBtb250aDogXCJsb25nXCIsXG4gICAgICAgICAgICAgICAgZGF5OiBcIm51bWVyaWNcIixcbiAgICAgICAgICAgICAgICBob3VyOiBcIm51bWVyaWNcIixcbiAgICAgICAgICAgICAgICBtaW51dGU6IFwibnVtZXJpY1wiLFxuICAgICAgICAgICAgICAgIHRpbWVab25lTmFtZTogXCJzaG9ydE9mZnNldFwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBkYXRlU3R5bGU6IFwibG9uZ1wiLFxuICAgICAgICAgICAgICAgIHRpbWVTdHlsZTogXCJzaG9ydFwiLFxuICAgICAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvTG9jYWxlU3RyaW5nKGxhbmcsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIENvbXBhcmVzIHR3byBzdHJpbmcgYXJyYXlzXG4gKiBAcGFyYW0gYXJyYXkxXG4gKiBAcGFyYW0gYXJyYXkyXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlzQ29udGFpblNhbWVFbGVtZW50cyhcbiAgICBhcnJheTE6IHN0cmluZ1tdLFxuICAgIGFycmF5Mjogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgICBhcnJheTEuc29ydCgpO1xuICAgIGFycmF5Mi5zb3J0KCk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGFycmF5MSkgPT09IEpTT04uc3RyaW5naWZ5KGFycmF5Mik7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2l0VXJsKGN1cnJlbnRVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGF0aCA9IGN1cnJlbnRVcmwuc3BsaXQoXCIvXCIpO1xuICAgIHBhdGguc3BsaWNlKDMsIHBhdGgubGVuZ3RoIC0gMik7XG4gICAgcmV0dXJuIHBhdGguam9pbihcIi9cIik7XG59XG5cbi8qKlxuICogRXh0cmFjdCBzcGFjZUlEIGZyb20gdXJsIHdoZW4gaW4gdmlzaXQgM0RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNwYWNlSURGcm9tVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB2aXNpdFVybCA9IGdldFZpc2l0VXJsKHVybCk7XG4gICAgcmV0dXJuIHZpc2l0VXJsLnNwbGl0KFwiL1wiKVsyXTtcbn1cblxuLyoqXG4gKiBEb3dubG9hZCByZWxhdGVkXG4gKi9cbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlKGZpbGVVcmw6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZykge1xuICAgIEZpbGVTYXZlci5zYXZlQXMoZmlsZVVybCArIGZpbGVOYW1lLCBmaWxlTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRG9jdW1lbnQoZmlsZVVybDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nLCBpZDogbnVtYmVyKSB7XG4gICAgd2luZG93Lm9wZW4oYCR7ZmlsZVVybCArIGZpbGVOYW1lfSNkb2M9JHtpZH1gLCBcIl9ibGFua1wiLCBcIlwiKTtcbn1cblxuZXhwb3J0IGNvbnN0IGRvd25sb2FkRXF1aXBtZW50RG9jdW1lbnQgPSBhc3luYyAoXG4gICAgZG9jdW1lbnRfOiBFcXVpcG1lbnREb2N1bWVudCxcbik6IFByb21pc2U8T2JqZWN0IHwgdm9pZD4gPT4ge1xuICAgIGNvbnN0IHNpZ25lZEZpbGUgPSBhd2FpdCBkb3dubG9hZEZpbGVBc09iamVjdChkb2N1bWVudF8udXJsKTtcbiAgICBpZiAoc2lnbmVkRmlsZSkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGRvd25sb2FkQmxvYihzaWduZWRGaWxlLkJvZHksIGRvY3VtZW50Xy5maWxlbmFtZSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrRWxlbWVudEJ5SWQoc2VsZWN0b3IpIHtcbiAgICBsZXQgcXVlcnlTZWxlY3RvciA9IG51bGw7XG4gICAgd2hpbGUgKHF1ZXJ5U2VsZWN0b3IgPT09IG51bGwpIHtcbiAgICAgICAgYXdhaXQgcmFmQXN5bmMoKTtcbiAgICAgICAgcXVlcnlTZWxlY3RvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3I7XG59XG5cbmZ1bmN0aW9uIHJhZkFzeW5jKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSk7IC8vIGZhc3RlciB0aGFuIHNldCB0aW1lIG91dFxuICAgIH0pO1xufVxuXG4vKiBAcGFyYW0ge0FycmF5fSBudW1iZXJzIEFuIGFycmF5IG9mIG51bWJlcnMuXG4gKiBAcmV0dXJuIHtOdW1iZXJ9IFRoZSBjYWxjdWxhdGVkIGF2ZXJhZ2UgKG9yIG1lYW4pIHZhbHVlIGZyb20gdGhlIHNwZWNpZmllZFxuICogICAgIG51bWJlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZWFuKG51bWJlcnM6IG51bWJlcltdKSB7XG4gICAgbGV0IHRvdGFsID0gMDtcbiAgICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzKSB7XG4gICAgICAgIHRvdGFsICs9IG51bWJlcjtcbiAgICB9XG4gICAgcmV0dXJuIHRvdGFsIC8gbnVtYmVycy5sZW5ndGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VGltZXN0YW1wVG9Mb2NhbFpvbmUodGltZXN0YW1wOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcCk7XG4gICAgY29uc3QgbG9jYWxPZmZzZXQgPSAtMSAqIHNlbGVjdGVkRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XG4gICAgY29uc3Qgc3RhbXAgPSB0aW1lc3RhbXAgKyBsb2NhbE9mZnNldDtcbiAgICByZXR1cm4gc3RhbXA7XG59XG5cbi8qKlxuICogUmV0dXJuIHN0cmluZyBmb3IgcGVyaW9kIG9mIHRpbWUuIFBhcmFtZXRlcnMgYXJlIERhdGVUaW1lIG9iamVjdHMgb2YgbHV4b24gbGlicmFyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZURhdGVQZXJpb2QoXG4gICAgdHJhbnNsYXRlU2VydmljZTogYW55LFxuICAgIGRhdGVTdGFydFBlcmlvZDogYW55LFxuICAgIGRhdGVFbmRQZXJpb2Q6IGFueSxcbik6IHN0cmluZyB7XG4gICAgY29uc3QgbG9jYWxlID0gZ2V0TG9jYWxlTG9uZyh0cmFuc2xhdGVTZXJ2aWNlKTtcbiAgICByZXR1cm4gYCR7ZGF0ZVN0YXJ0UGVyaW9kLnRvTG9jYWxlU3RyaW5nKHtcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBtb250aDogXCJsb25nXCIsXG4gICAgICAgIGRheTogXCIyLWRpZ2l0XCIsXG4gICAgfSl9IC0gJHtkYXRlRW5kUGVyaW9kLnRvTG9jYWxlU3RyaW5nKHtcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBtb250aDogXCJsb25nXCIsXG4gICAgICAgIGRheTogXCIyLWRpZ2l0XCIsXG4gICAgfSl9IGA7XG59XG5cblxuLyoqXG4qIFJldHVybiBsb2NhbCBpbiB0aGUgY2Fub25pY2FsIGZvcm06IFwiZW4tR0JcIiwgXCJmci1GUlwiXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUxvbmcodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKTogc3RyaW5nIHtcbiAgICBsZXQgbGFuZyA9IGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZSk7XG5cbiAgICBpZiAobGFuZyA9PT0gXCJlblwiKSB7XG4gICAgICAgIHJldHVybiBcImVuLUdCXCI7XG4gICAgfVxuICAgIHJldHVybiBgJHtsYW5nfS0ke2xhbmcudG9VcHBlckNhc2UoKX1gO1xufVxuXG4vKipcbiAqIFJldHVybiBsb2NhbCBpbiB0aGUgc2hvcnQgZm9ybTogXCJlblwiLCBcImZyXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZVNob3J0KHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEN1cnJlbnRMYW5nKHRyYW5zbGF0ZSk7XG59XG5cbi8qKlxuICogRm9ybWF0IHN0cmluZyB0byBsb3dlcmNhc2UsIG5vIHNwYWNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9Mb3dlcmNhc2VOb1NwYWNlcyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB3b3JkcyA9IGlucHV0LnRvTG93ZXJDYXNlKCkuc3BsaXQoL1xccysvKTtcbiAgICByZXR1cm4gd29yZHMuam9pbihcIlwiKTtcbn1cblxuLyoqXG4gKiBUZXN0IGlmIHRoZSBvYmplY3QgPT09IHt9XG4gKiBAcGFyYW0gb2JqIG9iamVjdCB7a2V5OnZhbHVlfVxuICogQHJldHVybnMgYm9vbGVhblxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eU9iamVjdChvYmplY3QpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHggaW4gb2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaHVmZmxlQXJyYXkoYXJyYXk6IGFueVtdKSB7XG4gICAgY29uc3QgbmV3QXJyYXkgPSBbLi4uYXJyYXldO1xuICAgIGZvciAobGV0IGluZGV4ID0gYXJyYXkubGVuZ3RoIC0gMTsgaW5kZXggPiAwOyBpbmRleC0tKSB7XG4gICAgICAgIGNvbnN0IGluZGV4TmV3ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGluZGV4ICsgMSkpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgW25ld0FycmF5W2luZGV4XSwgbmV3QXJyYXlbaW5kZXhOZXddXSA9IFtcbiAgICAgICAgICAgIG5ld0FycmF5W2luZGV4TmV3XSxcbiAgICAgICAgICAgIG5ld0FycmF5W2luZGV4XSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld0FycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyVG9EYXRlU3RyaW5nKHRpbWVzdGFtcDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc0RhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgIHJldHVybiBqc0RhdGUudG9Mb2NhbGVTdHJpbmcoXCJmci1GUlwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGR1cmF0aW9uVG9TdHJpbmcoXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGR1cmF0aW9uIC8gMzYwMCAvIDI0KTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IoKGR1cmF0aW9uIC0gZGF5cyAqIDI0ICogMzYwMCkgLyAzNjAwKTtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigoZHVyYXRpb24gJSAzNjAwKSAvIDYwKTtcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkdXJhdGlvbiAlIDYwKTtcblxuICAgIGNvbnN0IGRheXNTdHJpbmcgPSB0cmFuc2xhdGUuaW5zdGFudChcImRheShzKVwiKTtcbiAgICBjb25zdCBob3Vyc1N0cmluZyA9IHRyYW5zbGF0ZS5pbnN0YW50KFwiaG91cihzKVwiKTtcbiAgICBjb25zdCBvbmVIb3VyU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJob3VyXCIpO1xuICAgIGNvbnN0IG1pbnV0ZXNTdHJpbmcgPSB0cmFuc2xhdGUuaW5zdGFudChcIm1pbnV0ZShzKVwiKTtcbiAgICBjb25zdCBzZWNvbmRzU3RyaW5nID0gdHJhbnNsYXRlLmluc3RhbnQoXCJzZWNvbmQocylcIik7XG5cbiAgICBpZiAoZHVyYXRpb24gPiAzNjAwICogMjQgKiA3KSB7XG4gICAgICAgIHJldHVybiBgJHtkYXlzfSAke2RheXNTdHJpbmd9YDtcbiAgICB9XG4gICAgaWYgKGR1cmF0aW9uID4gMzYwMCAqIDI0KSB7XG4gICAgICAgIHJldHVybiBgJHtkYXlzfSAke2RheXNTdHJpbmd9ICR7aG91cnN9ICR7aG91cnNTdHJpbmd9YDtcbiAgICB9XG4gICAgaWYgKGR1cmF0aW9uID09PSAzNjAwKSB7XG4gICAgICAgIHJldHVybiBgJHtob3Vyc30gJHtvbmVIb3VyU3RyaW5nfWA7XG4gICAgfVxuICAgIGlmIChkdXJhdGlvbiA+IDM2MDApIHtcbiAgICAgICAgaWYgKG1pbnV0ZXMgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtob3Vyc30gJHtob3Vyc1N0cmluZ31gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtob3Vyc30gJHtob3Vyc1N0cmluZ30gJHttaW51dGVzfSAke21pbnV0ZXNTdHJpbmd9YDtcbiAgICB9XG4gICAgaWYgKGR1cmF0aW9uID49IDYwKSB7XG4gICAgICAgIGlmIChzZWNvbmRzID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7bWludXRlc30gJHttaW51dGVzU3RyaW5nfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9ICR7bWludXRlc1N0cmluZ30gJHtzZWNvbmRzfSAke3NlY29uZHNTdHJpbmd9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3NlY29uZHN9ICR7c2Vjb25kc1N0cmluZ31gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9pbnRUb1N0cmluZyhwb2ludDogeyB4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHggPSBwb2ludC54LnRvRml4ZWQoMyk7XG4gICAgY29uc3QgeSA9IHBvaW50LnkudG9GaXhlZCgzKTtcbiAgICBjb25zdCB6ID0gcG9pbnQuei50b0ZpeGVkKDMpO1xuXG4gICAgcmV0dXJuIGB7IHg6ICR7eH0sIHk6ICR7eX0sIHo6ICR7en0gfWA7XG59XG5cblxuIl19
|
|
@@ -45,4 +45,4 @@ export const canvasImageType = 'mp.canvasImage';
|
|
|
45
45
|
export function makeCanvasImage() {
|
|
46
46
|
return new CanvasImage();
|
|
47
47
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzSW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvQ2FudmFzSW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixjQUFjLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQWVwRixNQUFNLE9BQU8sV0FBWSxTQUFRLGNBQWM7SUFDckMsS0FBSyxHQUE0QixJQUFJLENBQUM7SUFFckMsTUFBTSxHQUFXO1FBQ3hCLEdBQUcsRUFBRSxJQUFJO1FBQ1QsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUN6QixZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDNUIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO0tBQzNCLENBQUE7SUFFUSxPQUFPLEdBQUc7UUFDakIsT0FBTyxFQUFFLElBQUk7S0FDSCxDQUFDO0lBRUosTUFBTTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVRLGVBQWU7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBbUMsRUFBRSxJQUFVO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFFRCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVMsS0FBWTtnQkFDdkMsOEJBQThCO1lBQ2hDLENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCw4QkFBOEI7SUFDaEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDO0FBQ2hELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnRPdXRwdXQsIFNjZW5lQ29tcG9uZW50fSBmcm9tICcuLy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XG5pbXBvcnQge0lQYWludGVyMmR9IGZyb20gXCIuL0NhbnZhc1JlbmRlcmVyXCI7XG5pbXBvcnQge1NpemV9IGZyb20gXCIuL1BsYW5lUmVuZGVyZXJcIjtcbnR5cGUgSW5wdXRzID0ge1xuICBzcmM6IHN0cmluZyB8IG51bGw7XG4gIHNyY1Bvc2l0aW9uOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH07XG4gIHNyY1NpemU6IFNpemU7XG4gIGRlc3RQb3NpdGlvbjogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9O1xuICBkZXN0U2l6ZTogU2l6ZTtcbn07XG5cbnR5cGUgT3V0cHV0cyA9IHtcbiAgcGFpbnRlcjogSVBhaW50ZXIyZCB8IG51bGw7XG59ICYgQ29tcG9uZW50T3V0cHV0O1xuXG5leHBvcnQgY2xhc3MgQ2FudmFzSW1hZ2UgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQYWludGVyMmQge1xuICBwcml2YXRlIGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgb3ZlcnJpZGUgaW5wdXRzOiBJbnB1dHMgPSB7XG4gICAgc3JjOiBudWxsLFxuICAgIHNyY1Bvc2l0aW9uOiB7IHg6IDAsIHk6IDAgfSxcbiAgICBzcmNTaXplOiB7IHc6IDY0LCBoOiA2NCB9LFxuICAgIGRlc3RQb3NpdGlvbjogeyB4OiAwLCB5OiAwIH0sXG4gICAgZGVzdFNpemU6IHsgdzogNjQsIGg6IDY0IH0sXG4gIH1cblxuICBvdmVycmlkZSBvdXRwdXRzID0ge1xuICAgIHBhaW50ZXI6IG51bGwsXG4gIH0gYXMgT3V0cHV0cztcblxuICBvdmVycmlkZSBvbkluaXQoKSB7XG4gICAgdGhpcy5vdXRwdXRzLnBhaW50ZXIgPSB0aGlzO1xuICAgIHRoaXMubWF5YmVMb2FkSW1hZ2UoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5wdXRzVXBkYXRlZCgpIHtcbiAgICB0aGlzLm1heWJlTG9hZEltYWdlKCk7XG4gIH1cblxuICBwYWludChjb250ZXh0MmQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgc2l6ZTogU2l6ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbWFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnRleHQyZC5jbGVhclJlY3QoMCwgMCwgdGhpcy5pbnB1dHMuZGVzdFNpemUudywgdGhpcy5pbnB1dHMuZGVzdFNpemUuaCk7XG4gICAgaWYgKHRoaXMuaW1hZ2Uud2lkdGggPiAwKSB7XG4gICAgICBjb250ZXh0MmQuZHJhd0ltYWdlKHRoaXMuaW1hZ2UsXG4gICAgICAgIHRoaXMuaW5wdXRzLnNyY1Bvc2l0aW9uLngsIHRoaXMuaW5wdXRzLnNyY1Bvc2l0aW9uLnksXG4gICAgICAgIHRoaXMuaW5wdXRzLnNyY1NpemUudywgdGhpcy5pbnB1dHMuc3JjU2l6ZS5oLFxuICAgICAgICB0aGlzLmlucHV0cy5kZXN0UG9zaXRpb24ueCwgdGhpcy5pbnB1dHMuZGVzdFBvc2l0aW9uLnksXG4gICAgICAgIHRoaXMuaW5wdXRzLmRlc3RTaXplLncsIHRoaXMuaW5wdXRzLmRlc3RTaXplLmgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWF5YmVMb2FkSW1hZ2UoKSB7XG4gICAgdGhpcy5pbWFnZSA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5pbnB1dHMuc3JjICE9PSBudWxsICYmIHRoaXMuaW5wdXRzLnNyYyAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgdGhpcy5pbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgdGhpcy5pbWFnZS5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xuICAgICAgdGhpcy5pbWFnZS5zcmMgPSB0aGlzLmlucHV0cy5zcmM7XG4gICAgICB0aGlzLmltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKGV2ZW50OiBFdmVudCkge1xuICAgICAgICAvLyB0aGF0Lm5vdGlmeSgncGFpbnQucmVhZHknKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gdGhpcy5ub3RpZnkoJ3BhaW50LnJlYWR5Jyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNhbnZhc0ltYWdlVHlwZSA9ICdtcC5jYW52YXNJbWFnZSc7XG5leHBvcnQgZnVuY3Rpb24gbWFrZUNhbnZhc0ltYWdlKCkge1xuICByZXR1cm4gbmV3IENhbnZhc0ltYWdlKCk7XG59XG4iXX0=
|
|
@@ -57,4 +57,4 @@ export const canvasRendererType = 'mp.canvasRenderer';
|
|
|
57
57
|
export function makeCanvasRenderer() {
|
|
58
58
|
return new CanvasRenderer();
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FudmFzUmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvQ2FudmFzUmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBcUJ0QyxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDeEMsTUFBTSxDQUFvQjtJQUMxQixlQUFlLENBQTJCO0lBRXpDLE1BQU0sR0FBVztRQUN4QixPQUFPLEVBQUUsSUFBSTtRQUNiLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLHFCQUFxQjtLQUN4RCxDQUFBO0lBRVEsT0FBTyxHQUFHO1FBQ2pCLE9BQU8sRUFBRSxJQUFJO0tBQ0gsQ0FBQztJQUVKLE1BQU0sR0FBRztRQUNoQixPQUFPLEVBQUUsSUFBSTtLQUNKLENBQUM7SUFFSCxNQUFNO1FBRWIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxFQUFFO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVEsZUFBZSxDQUFDLFNBQWlCO1FBQ3hDLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVRLE9BQU8sQ0FBQyxTQUFpQixFQUFFLFVBQW1CO1FBQ3JELElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVRLFNBQVM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTyxNQUFNLENBQUMsSUFBVTtRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0NBRUY7QUFPRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NlbmVDb21wb25lbnQsIENvbXBvbmVudE91dHB1dCB9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IFRleHR1cmUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDYW52YXNUZXh0dXJlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gJy4vUGxhbmVSZW5kZXJlcic7XG5pbXBvcnQgeyBDYW52YXNJbWFnZSB9IGZyb20gJy4vQ2FudmFzSW1hZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYWludGVyMmQge1xuICBwYWludChjb250ZXh0MmQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgc2l6ZTogU2l6ZSk6IHZvaWQ7XG59XG5cbnR5cGUgSW5wdXRzID0ge1xuICBwYWludGVyOiBJUGFpbnRlcjJkIHwgbnVsbDtcbiAgdGV4dHVyZVJlczogU2l6ZTtcbn1cblxudHlwZSBPdXRwdXRzID0ge1xuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcbn0gJiBDb21wb25lbnRPdXRwdXQ7XG5cbnR5cGUgRXZlbnRzID0ge1xuICByZXBhaW50OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNsYXNzIENhbnZhc1JlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnQge1xuICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG4gIHByaXZhdGUgcmVuZGVyQ29udGV4dDJEOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG5cbiAgb3ZlcnJpZGUgaW5wdXRzOiBJbnB1dHMgPSB7XG4gICAgcGFpbnRlcjogbnVsbCxcbiAgICB0ZXh0dXJlUmVzOiB7IHc6IDEwMjQsIGg6IDEwMjQgfSwgLy8gZGltIGZvciB0aGVybW9zdGF0XG4gIH1cblxuICBvdmVycmlkZSBvdXRwdXRzID0ge1xuICAgIHRleHR1cmU6IG51bGwsXG4gIH0gYXMgT3V0cHV0cztcblxuICBvdmVycmlkZSBldmVudHMgPSB7XG4gICAgcmVwYWludDogdHJ1ZSxcbiAgfSBhcyBFdmVudHM7XG5cbiAgb3ZlcnJpZGUgb25Jbml0KCkge1xuXG4gICAgLy8gc2V0IHVwIGNhbnZhcyAyZCBjb250ZXh0XG4gICAgdGhpcy5jYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICB0aGlzLnJlbmRlckNvbnRleHQyRCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgdGhpcy5vdXRwdXRzLnRleHR1cmUgPSBuZXcgQ2FudmFzVGV4dHVyZSh0aGlzLmNhbnZhcyk7XG5cbiAgICB0aGlzLnJlc2l6ZSh0aGlzLmlucHV0cy50ZXh0dXJlUmVzKTtcbiAgICB0aGlzLnJlcGFpbnQoKTtcbiAgfVxuXG4gIHNldENhbnZhc05lc3RUaGVybW9zdGF0UGFpbnRlcihzYyl7XG4gICAgdGhpcy5pbnB1dHMucGFpbnRlciA9IHNjO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKG9sZElucHV0czogSW5wdXRzKSB7XG4gICAgaWYgKG9sZElucHV0cy50ZXh0dXJlUmVzLncgIT09IHRoaXMuaW5wdXRzLnRleHR1cmVSZXMudyB8fFxuICAgICAgICBvbGRJbnB1dHMudGV4dHVyZVJlcy5oICE9PSB0aGlzLmlucHV0cy50ZXh0dXJlUmVzLmgpIHtcbiAgICAgIHRoaXMucmVzaXplKHRoaXMuaW5wdXRzLnRleHR1cmVSZXMpO1xuICAgIH1cblxuICAgIGlmIChvbGRJbnB1dHMucGFpbnRlciAhPT0gdGhpcy5pbnB1dHMucGFpbnRlcikge1xuICAgICAgdGhpcy5yZXBhaW50KCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25FdmVudChldmVudFR5cGU6IHN0cmluZywgX2V2ZW50RGF0YTogdW5rbm93bikge1xuICAgIGlmIChldmVudFR5cGUgPT09ICdyZXBhaW50Jykge1xuICAgICAgdGhpcy5yZXBhaW50KCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCkge1xuICAgIHRoaXMub3V0cHV0cy50ZXh0dXJlLmRpc3Bvc2UoKTtcbiAgICB0aGlzLm91dHB1dHMudGV4dHVyZSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlc2l6ZShzaXplOiBTaXplKSB7XG4gICAgdGhpcy5jYW52YXMud2lkdGggPSBzaXplLnc7XG4gICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gc2l6ZS5oO1xuICB9XG5cbiAgcHVibGljIHJlcGFpbnQoKSB7XG4gICAgaWYgKHRoaXMuaW5wdXRzLnBhaW50ZXIpIHtcbiAgICAgIHRoaXMuaW5wdXRzLnBhaW50ZXIucGFpbnQodGhpcy5yZW5kZXJDb250ZXh0MkQsIHRoaXMuaW5wdXRzLnRleHR1cmVSZXMpO1xuICAgICAgdGhpcy5vdXRwdXRzLnRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbnZhc1JlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnR7XG4gIGlucHV0czogSW5wdXRzO1xuICBvdXRwdXRzOiBPdXRwdXRzO1xufVxuXG5leHBvcnQgY29uc3QgY2FudmFzUmVuZGVyZXJUeXBlID0gJ21wLmNhbnZhc1JlbmRlcmVyJztcbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ2FudmFzUmVuZGVyZXIoKSB7XG4gIHJldHVybiBuZXcgQ2FudmFzUmVuZGVyZXIoKTtcbn1cbiJdfQ==
|
|
@@ -153,4 +153,4 @@ export const nestThermostatType = 'mp.nestThermostat';
|
|
|
153
153
|
export const makeNestThermostat = function () {
|
|
154
154
|
return new NestThermostat();
|
|
155
155
|
};
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdFRoZXJtb3N0YXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvTmVzdFRoZXJtb3N0YXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBb0MsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRyxPQUFPLEVBRUwsY0FBYyxFQUVkLFFBQVEsRUFDUixhQUFhLEVBSWIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFFbEIsTUFBTSxPQUFPLENBQUM7QUFJZixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFDM0IsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQy9CLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQWMvQixNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDeEMsRUFBRSxHQUEwQixJQUFJLENBQUM7SUFDakMsYUFBYSxHQUF5QixJQUFJLENBQUM7SUFDM0MsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsS0FBSyxHQUEwQixJQUFJLENBQUM7SUFDcEMsV0FBVyxHQUF5QixJQUFJLENBQUM7SUFDekMsSUFBSSxHQUFnQixJQUFJLENBQUM7SUFDekIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFDeEIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixTQUFTLENBQWlCO0lBR3pCLE1BQU0sR0FBVztRQUN4QixZQUFZLEVBQUUsTUFBTTtRQUNwQixPQUFPLEVBQUUsSUFBSTtRQUNiLGNBQWMsRUFBRSxJQUFJO0tBQ3JCLENBQUE7SUFFUSxPQUFPLEdBQUc7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsS0FBSztL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QjtRQUM5RSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUM5QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRPdXRwdXQsIENvbXBvbmVudENvbnRleHR9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgT2JqZWN0M0QsXHJcbiAgQW5pbWF0aW9uTWl4ZXIsXHJcbiAgQW5pbWF0aW9uQWN0aW9uLFxyXG4gIExvb3BPbmNlLFxyXG4gIEFuaW1hdGlvbkNsaXAsXHJcbiAgTWVzaCxcclxuICBUZXh0dXJlLFxyXG4gIE1lc2hMYW1iZXJ0TWF0ZXJpYWwsXHJcbiAgVmVjdG9yS2V5ZnJhbWVUcmFjayxcclxuICBJbnRlcnBvbGF0ZVNtb290aCxcclxuICBNZXNoQmFzaWNNYXRlcmlhbCxcclxuICBMaW5lU2VnbWVudHNcclxufSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7Q2FudmFzUmVuZGVyZXIsIElQYWludGVyMmR9IGZyb20gJy4vQ2FudmFzUmVuZGVyZXInO1xyXG5pbXBvcnQge1BsYW5lUmVuZGVyZXIsIFNpemV9IGZyb20gJy4vUGxhbmVSZW5kZXJlcic7XHJcblxyXG5jb25zdCBIb3ZlckV2ZW50ID0gJ2hvdmVyJztcclxuY29uc3QgVW5ob3ZlckV2ZW50ID0gJ3VuaG92ZXInO1xyXG5jb25zdCBSZXBhaW50RXZlbnQgPSAncmVwYWludCc7XHJcblxyXG50eXBlIElucHV0cyA9IHtcclxuICBsb2FkaW5nU3RhdGU6IHN0cmluZztcclxuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcclxuICB1cGRhdGVJbnRlcnZhbDogbnVtYmVyO1xyXG59XHJcblxyXG50eXBlIE91dHB1dHMgPSB7XHJcbiAgcGFpbnRlcjogSVBhaW50ZXIyZCB8IG51bGw7XHJcbiAgdmlzaWJsZTogYm9vbGVhbjtcclxufSAmIENvbXBvbmVudE91dHB1dDtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgTmVzdFRoZXJtb3N0YXQgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQYWludGVyMmQge1xyXG4gIHByaXZhdGUgY3Y6IENhbnZhc1JlbmRlcmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBwbGFuZVJlbmRlcmVyOiBQbGFuZVJlbmRlcmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSByb290U2NlbmU6IE9iamVjdDNEIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtaXhlcjogQW5pbWF0aW9uTWl4ZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIG9uRW50ZXJDbGlwOiBBbmltYXRpb25DbGlwIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtZXNoOiBNZXNoIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBjdXJyZW50VGltZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIG5leHRVcGRhdGU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSB0ZW1wZXJhdHVyZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIHRlbXBDaGFuZ2VSYW5nZTogbnVtYmVyID0gNTtcclxuICBwcml2YXRlIGNvbXBvbmVudDogU2NlbmVDb21wb25lbnQ7XHJcblxyXG5cclxuICBvdmVycmlkZSBpbnB1dHM6IElucHV0cyA9IHtcclxuICAgIGxvYWRpbmdTdGF0ZTogJ0lkbGUnLFxyXG4gICAgdGV4dHVyZTogbnVsbCxcclxuICAgIHVwZGF0ZUludGVydmFsOiAxMDAwLFxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb3V0cHV0cyA9IHtcclxuICAgIHBhaW50ZXI6IG51bGwsXHJcbiAgICB2aXNpYmxlOiBmYWxzZSxcclxuICB9IGFzIE91dHB1dHM7XHJcblxyXG4gIG92ZXJyaWRlIGV2ZW50cyA9IHtcclxuICAgIFtIb3ZlckV2ZW50XTogdHJ1ZSxcclxuICAgIFtVbmhvdmVyRXZlbnRdOiB0cnVlLFxyXG4gIH07XHJcblxyXG4gIG92ZXJyaWRlIG9uSW5pdChtb2RlbE5vZGU/OiBhbnksIHBsYW5lPzogUGxhbmVSZW5kZXJlciwgaW5wdXRUZXh0dXJlPzogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGV4dCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXHJcbiAgICAgIH0gYXMgQ29tcG9uZW50Q29udGV4dDtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wdXRzLnRleHR1cmUgPSBpbnB1dFRleHR1cmU7XHJcbiAgICBjb25zdCByb290ID0gdGhpcy5jb250ZXh0LnJvb3Q7XHJcbiAgICBjb25zdCBUSFJFRSA9IHRoaXMuY29udGV4dC50aHJlZTtcclxuXHJcbiAgICB0aGlzLnBsYW5lUmVuZGVyZXIgPSBwbGFuZTtcclxuICAgIHRoaXMucGxhbmVSZW5kZXJlci5vdXRwdXRzLm9iamVjdFJvb3QudHJhbnNsYXRlWigwLjA1KTtcclxuICAgIHRoaXMucGxhbmVSZW5kZXJlci5vdXRwdXRzLm9iamVjdFJvb3QudHJhbnNsYXRlWSgwLjQpO1xyXG4gICAgdGhpcy5wbGFuZVJlbmRlcmVyLm91dHB1dHMub2JqZWN0Um9vdC5zY2FsZS5zZXQoMC41LCAwLjUsIDAuNSk7XHJcbiAgICAvLyBwbGFuZVJlbmRlcmVyLmlucHV0cy5sb2NhbFBvc2l0aW9uLnogPSAwLjA1O1xyXG4gICAgLy8gcGxhbmVSZW5kZXJlci5pbnB1dHMubG9jYWxQb3NpdGlvbi55ID0gMC40O1xyXG4gICAgLy8gcGxhbmVSZW5kZXJlci5pbnB1dHMubG9jYWxTY2FsZSA9IHt4OiAwLjUsIHk6IDAuNSwgejogMC41fTtcclxuXHJcbiAgICB0aGlzLm91dHB1dHMucGFpbnRlciA9IHRoaXM7XHJcblxyXG4gICAgdGhpcy5taXhlciA9IG5ldyBBbmltYXRpb25NaXhlcih0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290KTtcclxuXHJcbiAgICBjb25zdCB0bSA9IDAuMjtcclxuICAgIGNvbnN0IHBvc2l0aW9uVHJhY2sgPSBuZXcgVmVjdG9yS2V5ZnJhbWVUcmFjaygnLnNjYWxlJywgWzAsIHRtXSwgW1xyXG4gICAgICAwLCAwLCAwLFxyXG4gICAgICAwLjUsIDAuNSwgMC41XHJcbiAgICBdLCBJbnRlcnBvbGF0ZVNtb290aCk7XHJcbiAgICB0aGlzLm9uRW50ZXJDbGlwID0gbmV3IEFuaW1hdGlvbkNsaXAobnVsbCwgdG0sIFtwb3NpdGlvblRyYWNrXSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvbklucHV0c1VwZGF0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dHMubG9hZGluZ1N0YXRlID09PSAnTG9hZGVkJykge1xyXG4gICAgICBjb25zdCBsaW5lczogTGluZVNlZ21lbnRzW10gPSBbXTtcclxuXHJcbiAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICB0aGlzLmNvbnRleHQucm9vdC5vYmozRC50cmF2ZXJzZSgob2JqOiBPYmplY3QzRCkgPT4ge1xyXG4gICAgICAgIC8vIHdlIGRvbnQgd2FudCBsaW5lIHNlZ21lbnRzLCB0cmFjayB0aGVtIGFuZCByZW1vdmUgdGhlbS5cclxuICAgICAgICBpZiAob2JqLnR5cGUgPT09ICdMaW5lU2VnbWVudHMnKSB7XHJcbiAgICAgICAgICBsaW5lcy5wdXNoKG9iaiBhcyBMaW5lU2VnbWVudHMpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdNZXNoJykge1xyXG4gICAgICAgICAgdGhpcy5tZXNoID0gb2JqIGFzIE1lc2g7XHJcblxyXG4gICAgICAgICAgY29uc3QgbWF0ZXJpYWxzID0gdGhpcy5tZXNoLm1hdGVyaWFsIGFzIE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XHJcbiAgICAgICAgICBtYXRlcmlhbHMuZm9yRWFjaCgobSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChtICYmIG0ubWFwLnNvdXJjZS5kYXRhLm91dGVySFRNTC5pbmRleE9mKCdfNWI3NmRiZTM4ODg2MjMwMDEyNmMxZTE0JykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbmV3TWF0ZXJpYWwgPSBuZXcgTWVzaEJhc2ljTWF0ZXJpYWwoe21hcDogdGhpcy5pbnB1dHMudGV4dHVyZX0pO1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzaC5tYXRlcmlhbFtpZHhdID0gbmV3TWF0ZXJpYWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyByZW1vdmUgdGhlIGxpbmUgc2VnbWVudHMuXHJcbiAgICAgIGxpbmVzLmZvckVhY2goKGxpbmU6IExpbmVTZWdtZW50cykgPT4ge1xyXG4gICAgICAgIGxpbmUucGFyZW50LnJlbW92ZShsaW5lKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvbkV2ZW50KGV2ZW50VHlwZTogc3RyaW5nLCBldmVudERhdGE6IHVua25vd24pOiB2b2lkIHtcclxuICAgIGlmIChldmVudFR5cGUgPT09IEhvdmVyRXZlbnQpIHtcclxuICAgICAgY29uc3QgZGF0YTogYW55ID0gZXZlbnREYXRhO1xyXG4gICAgICBpZiAoZGF0YS5ob3Zlcikge1xyXG4gICAgICAgIHRoaXMub3V0cHV0cy52aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBvbkVudGVyQWN0aW9uOiBBbmltYXRpb25BY3Rpb24gPSB0aGlzLm1peGVyLmNsaXBBY3Rpb24odGhpcy5vbkVudGVyQ2xpcCk7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5zdG9wKCk7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5sb29wID0gTG9vcE9uY2U7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5jbGFtcFdoZW5GaW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgb25FbnRlckFjdGlvbi5wbGF5KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGFpbnQoY29udGV4dDJkOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIHNpemU6IFNpemUpOiB2b2lkIHtcclxuICAgIGNvbnN0IHggPSA0OTA7XHJcbiAgICBjb25zdCB5ID0gNDkwO1xyXG5cclxuICAgIGNvbnRleHQyZC5maWxsU3R5bGUgPSAnYmxhY2snO1xyXG4gICAgY29udGV4dDJkLmJlZ2luUGF0aCgpO1xyXG4gICAgY29udGV4dDJkLmFyYyh4LCB5LCA0MDAsIDAsIE1hdGguUEkgKiAyKTtcclxuICAgIGNvbnRleHQyZC5maWxsKCk7XHJcblxyXG4gICAgY29udGV4dDJkLmZpbGxTdHlsZSA9ICcjQ0Y1MzAwJztcclxuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQyZC5hcmMoeCwgeSwgMzAwLCAwLCBNYXRoLlBJICogMik7XHJcbiAgICBjb250ZXh0MmQuZmlsbCgpO1xyXG5cclxuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcclxuICAgIGNvbnRleHQyZC5zdHJva2VTdHlsZSA9ICdvcmFuZ2UnO1xyXG4gICAgY29udGV4dDJkLmFyYyh4LCB5LCAyNDAsIDAuNzUgKiBNYXRoLlBJLCAwLjI1ICogTWF0aC5QSSk7XHJcbiAgICBjb250ZXh0MmQubGluZUNhcCA9ICdidXR0JztcclxuICAgIGNvbnRleHQyZC5saW5lV2lkdGggPSA4MDtcclxuICAgIGNvbnRleHQyZC5zdHJva2UoKTtcclxuXHJcbiAgICBjb250ZXh0MmQuZmlsbFN0eWxlID0gJ3doaXRlJztcclxuICAgIGNvbnRleHQyZC5mb250ID0gJzIyMHB4IEFyaWFsJztcclxuICAgIGNvbnRleHQyZC5maWxsVGV4dChgJHt0aGlzLnRlbXBlcmF0dXJlfWAsIHggLSAxMTUsIHkgKyA3NSk7XHJcbiAgICB0aGlzLm91dHB1dHMudmlzaWJsZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBvblRpY2soZGVsdGE6IG51bWJlcikge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSArPSBkZWx0YTtcclxuXHJcbiAgICBpZiAodGhpcy5taXhlcikge1xyXG4gICAgICB0aGlzLm1peGVyLnVwZGF0ZShkZWx0YSAvIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lID4gdGhpcy5uZXh0VXBkYXRlKSB7XHJcbiAgICAgIHRoaXMubmV4dFVwZGF0ZSArPSB0aGlzLmlucHV0cy51cGRhdGVJbnRlcnZhbDtcclxuXHJcbiAgICAgIHRoaXMudGVtcGVyYXR1cmUgKz0gKE1hdGgucmFuZG9tKCkgKiB0aGlzLnRlbXBDaGFuZ2VSYW5nZSk7XHJcbiAgICAgIHRoaXMudGVtcGVyYXR1cmUgPSBNYXRoLnRydW5jKHRoaXMudGVtcGVyYXR1cmUpO1xyXG5cclxuICAgICAgaWYgKHRoaXMudGVtcGVyYXR1cmUgPiA5OSkge1xyXG4gICAgICAgIHRoaXMudGVtcGVyYXR1cmUgPSA5OTtcclxuICAgICAgICB0aGlzLnRlbXBDaGFuZ2VSYW5nZSA9IC10aGlzLnRlbXBDaGFuZ2VSYW5nZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50ZW1wZXJhdHVyZSA8IDEwKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wZXJhdHVyZSA9IDEwO1xyXG4gICAgICAgIHRoaXMudGVtcENoYW5nZVJhbmdlID0gLXRoaXMudGVtcENoYW5nZVJhbmdlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNvbXBvbmVudC5ub3RpZnkoUmVwYWludEV2ZW50KTtcclxuICAgICAgdGhpcy5jdi5yZXBhaW50KClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENvbXBvbmVudChjb21wb25lbnQ6IFNjZW5lQ29tcG9uZW50LCBwbGFuZTogUGxhbmVSZW5kZXJlciwgY3Y6IENhbnZhc1JlbmRlcmVyKSB7XHJcbiAgICBjb21wb25lbnQub25UaWNrID0gdGhpcy5vblRpY2suYmluZCh0aGlzKTtcclxuICAgIC8vIHBsYW5lLm9uVGljayA9IHRoaXMub25UaWNrLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLmN2ID0gY3Y7XHJcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcclxuICAgIHRoaXMuY29udGV4dCA9IGNvbXBvbmVudC5jb250ZXh0O1xyXG4gIH1cclxuXHJcbiAgc2V0Um9vdFNjZW5lKHJvb3RTY2VuZTogT2JqZWN0M0QpIHtcclxuICAgIHRoaXMucm9vdFNjZW5lID0gcm9vdFNjZW5lO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG5lc3RUaGVybW9zdGF0VHlwZSA9ICdtcC5uZXN0VGhlcm1vc3RhdCc7XHJcbmV4cG9ydCBjb25zdCBtYWtlTmVzdFRoZXJtb3N0YXQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgcmV0dXJuIG5ldyBOZXN0VGhlcm1vc3RhdCgpO1xyXG59XHJcbiJdfQ==
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmVzdFRoZXJtb3N0YXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9uZXN0LXRoZXJtb3N0YXQvTmVzdFRoZXJtb3N0YXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBb0MsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRyxPQUFPLEVBRUwsY0FBYyxFQUVkLFFBQVEsRUFDUixhQUFhLEVBSWIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFFbEIsTUFBTSxPQUFPLENBQUM7QUFJZixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFDM0IsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBQy9CLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQWMvQixNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFDeEMsRUFBRSxHQUEwQixJQUFJLENBQUM7SUFDakMsYUFBYSxHQUF5QixJQUFJLENBQUM7SUFDM0MsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsS0FBSyxHQUEwQixJQUFJLENBQUM7SUFDcEMsV0FBVyxHQUF5QixJQUFJLENBQUM7SUFDekMsSUFBSSxHQUFnQixJQUFJLENBQUM7SUFDekIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixVQUFVLEdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFDeEIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixTQUFTLENBQWlCO0lBR3pCLE1BQU0sR0FBVztRQUN4QixZQUFZLEVBQUUsTUFBTTtRQUNwQixPQUFPLEVBQUUsSUFBSTtRQUNiLGNBQWMsRUFBRSxJQUFJO0tBQ3JCLENBQUE7SUFFUSxPQUFPLEdBQUc7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsS0FBSztL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QjtRQUM5RSxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztBQUM5QixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRPdXRwdXQsIENvbXBvbmVudENvbnRleHR9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBPYmplY3QzRCxcbiAgQW5pbWF0aW9uTWl4ZXIsXG4gIEFuaW1hdGlvbkFjdGlvbixcbiAgTG9vcE9uY2UsXG4gIEFuaW1hdGlvbkNsaXAsXG4gIE1lc2gsXG4gIFRleHR1cmUsXG4gIE1lc2hMYW1iZXJ0TWF0ZXJpYWwsXG4gIFZlY3RvcktleWZyYW1lVHJhY2ssXG4gIEludGVycG9sYXRlU21vb3RoLFxuICBNZXNoQmFzaWNNYXRlcmlhbCxcbiAgTGluZVNlZ21lbnRzXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7Q2FudmFzUmVuZGVyZXIsIElQYWludGVyMmR9IGZyb20gJy4vQ2FudmFzUmVuZGVyZXInO1xuaW1wb3J0IHtQbGFuZVJlbmRlcmVyLCBTaXplfSBmcm9tICcuL1BsYW5lUmVuZGVyZXInO1xuXG5jb25zdCBIb3ZlckV2ZW50ID0gJ2hvdmVyJztcbmNvbnN0IFVuaG92ZXJFdmVudCA9ICd1bmhvdmVyJztcbmNvbnN0IFJlcGFpbnRFdmVudCA9ICdyZXBhaW50JztcblxudHlwZSBJbnB1dHMgPSB7XG4gIGxvYWRpbmdTdGF0ZTogc3RyaW5nO1xuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcbiAgdXBkYXRlSW50ZXJ2YWw6IG51bWJlcjtcbn1cblxudHlwZSBPdXRwdXRzID0ge1xuICBwYWludGVyOiBJUGFpbnRlcjJkIHwgbnVsbDtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbn0gJiBDb21wb25lbnRPdXRwdXQ7XG5cblxuZXhwb3J0IGNsYXNzIE5lc3RUaGVybW9zdGF0IGV4dGVuZHMgU2NlbmVDb21wb25lbnQgaW1wbGVtZW50cyBJUGFpbnRlcjJkIHtcbiAgcHJpdmF0ZSBjdjogQ2FudmFzUmVuZGVyZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBwbGFuZVJlbmRlcmVyOiBQbGFuZVJlbmRlcmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcm9vdFNjZW5lOiBPYmplY3QzRCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1peGVyOiBBbmltYXRpb25NaXhlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9uRW50ZXJDbGlwOiBBbmltYXRpb25DbGlwIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbWVzaDogTWVzaCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGN1cnJlbnRUaW1lOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG5leHRVcGRhdGU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgdGVtcGVyYXR1cmU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgdGVtcENoYW5nZVJhbmdlOiBudW1iZXIgPSA1O1xuICBwcml2YXRlIGNvbXBvbmVudDogU2NlbmVDb21wb25lbnQ7XG5cblxuICBvdmVycmlkZSBpbnB1dHM6IElucHV0cyA9IHtcbiAgICBsb2FkaW5nU3RhdGU6ICdJZGxlJyxcbiAgICB0ZXh0dXJlOiBudWxsLFxuICAgIHVwZGF0ZUludGVydmFsOiAxMDAwLFxuICB9XG5cbiAgb3ZlcnJpZGUgb3V0cHV0cyA9IHtcbiAgICBwYWludGVyOiBudWxsLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICB9IGFzIE91dHB1dHM7XG5cbiAgb3ZlcnJpZGUgZXZlbnRzID0ge1xuICAgIFtIb3ZlckV2ZW50XTogdHJ1ZSxcbiAgICBbVW5ob3ZlckV2ZW50XTogdHJ1ZSxcbiAgfTtcblxuICBvdmVycmlkZSBvbkluaXQobW9kZWxOb2RlPzogYW55LCBwbGFuZT86IFBsYW5lUmVuZGVyZXIsIGlucHV0VGV4dHVyZT86IGFueSkge1xuICAgIGlmICghdGhpcy5jb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB7XG4gICAgICAgIHJvb3Q6IG1vZGVsTm9kZVxuICAgICAgfSBhcyBDb21wb25lbnRDb250ZXh0O1xuICAgIH1cbiAgICB0aGlzLmlucHV0cy50ZXh0dXJlID0gaW5wdXRUZXh0dXJlO1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmNvbnRleHQucm9vdDtcbiAgICBjb25zdCBUSFJFRSA9IHRoaXMuY29udGV4dC50aHJlZTtcblxuICAgIHRoaXMucGxhbmVSZW5kZXJlciA9IHBsYW5lO1xuICAgIHRoaXMucGxhbmVSZW5kZXJlci5vdXRwdXRzLm9iamVjdFJvb3QudHJhbnNsYXRlWigwLjA1KTtcbiAgICB0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290LnRyYW5zbGF0ZVkoMC40KTtcbiAgICB0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290LnNjYWxlLnNldCgwLjUsIDAuNSwgMC41KTtcbiAgICAvLyBwbGFuZVJlbmRlcmVyLmlucHV0cy5sb2NhbFBvc2l0aW9uLnogPSAwLjA1O1xuICAgIC8vIHBsYW5lUmVuZGVyZXIuaW5wdXRzLmxvY2FsUG9zaXRpb24ueSA9IDAuNDtcbiAgICAvLyBwbGFuZVJlbmRlcmVyLmlucHV0cy5sb2NhbFNjYWxlID0ge3g6IDAuNSwgeTogMC41LCB6OiAwLjV9O1xuXG4gICAgdGhpcy5vdXRwdXRzLnBhaW50ZXIgPSB0aGlzO1xuXG4gICAgdGhpcy5taXhlciA9IG5ldyBBbmltYXRpb25NaXhlcih0aGlzLnBsYW5lUmVuZGVyZXIub3V0cHV0cy5vYmplY3RSb290KTtcblxuICAgIGNvbnN0IHRtID0gMC4yO1xuICAgIGNvbnN0IHBvc2l0aW9uVHJhY2sgPSBuZXcgVmVjdG9yS2V5ZnJhbWVUcmFjaygnLnNjYWxlJywgWzAsIHRtXSwgW1xuICAgICAgMCwgMCwgMCxcbiAgICAgIDAuNSwgMC41LCAwLjVcbiAgICBdLCBJbnRlcnBvbGF0ZVNtb290aCk7XG4gICAgdGhpcy5vbkVudGVyQ2xpcCA9IG5ldyBBbmltYXRpb25DbGlwKG51bGwsIHRtLCBbcG9zaXRpb25UcmFja10pO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLmlucHV0cy5sb2FkaW5nU3RhdGUgPT09ICdMb2FkZWQnKSB7XG4gICAgICBjb25zdCBsaW5lczogTGluZVNlZ21lbnRzW10gPSBbXTtcblxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICB0aGlzLmNvbnRleHQucm9vdC5vYmozRC50cmF2ZXJzZSgob2JqOiBPYmplY3QzRCkgPT4ge1xuICAgICAgICAvLyB3ZSBkb250IHdhbnQgbGluZSBzZWdtZW50cywgdHJhY2sgdGhlbSBhbmQgcmVtb3ZlIHRoZW0uXG4gICAgICAgIGlmIChvYmoudHlwZSA9PT0gJ0xpbmVTZWdtZW50cycpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKG9iaiBhcyBMaW5lU2VnbWVudHMpO1xuICAgICAgICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnTWVzaCcpIHtcbiAgICAgICAgICB0aGlzLm1lc2ggPSBvYmogYXMgTWVzaDtcblxuICAgICAgICAgIGNvbnN0IG1hdGVyaWFscyA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoTGFtYmVydE1hdGVyaWFsO1xuICAgICAgICAgIG1hdGVyaWFscy5mb3JFYWNoKChtLCBpZHgpID0+IHtcbiAgICAgICAgICAgIGlmIChtICYmIG0ubWFwLnNvdXJjZS5kYXRhLm91dGVySFRNTC5pbmRleE9mKCdfNWI3NmRiZTM4ODg2MjMwMDEyNmMxZTE0JykgIT09IC0xKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld01hdGVyaWFsID0gbmV3IE1lc2hCYXNpY01hdGVyaWFsKHttYXA6IHRoaXMuaW5wdXRzLnRleHR1cmV9KTtcbiAgICAgICAgICAgICAgdGhpcy5tZXNoLm1hdGVyaWFsW2lkeF0gPSBuZXdNYXRlcmlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyByZW1vdmUgdGhlIGxpbmUgc2VnbWVudHMuXG4gICAgICBsaW5lcy5mb3JFYWNoKChsaW5lOiBMaW5lU2VnbWVudHMpID0+IHtcbiAgICAgICAgbGluZS5wYXJlbnQucmVtb3ZlKGxpbmUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgb25FdmVudChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50VHlwZSA9PT0gSG92ZXJFdmVudCkge1xuICAgICAgY29uc3QgZGF0YTogYW55ID0gZXZlbnREYXRhO1xuICAgICAgaWYgKGRhdGEuaG92ZXIpIHtcbiAgICAgICAgdGhpcy5vdXRwdXRzLnZpc2libGUgPSB0cnVlO1xuICAgICAgICBjb25zdCBvbkVudGVyQWN0aW9uOiBBbmltYXRpb25BY3Rpb24gPSB0aGlzLm1peGVyLmNsaXBBY3Rpb24odGhpcy5vbkVudGVyQ2xpcCk7XG4gICAgICAgIG9uRW50ZXJBY3Rpb24uc3RvcCgpO1xuICAgICAgICBvbkVudGVyQWN0aW9uLmxvb3AgPSBMb29wT25jZTtcbiAgICAgICAgb25FbnRlckFjdGlvbi5jbGFtcFdoZW5GaW5pc2hlZCA9IHRydWU7XG4gICAgICAgIG9uRW50ZXJBY3Rpb24ucGxheSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vdXRwdXRzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwYWludChjb250ZXh0MmQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgc2l6ZTogU2l6ZSk6IHZvaWQge1xuICAgIGNvbnN0IHggPSA0OTA7XG4gICAgY29uc3QgeSA9IDQ5MDtcblxuICAgIGNvbnRleHQyZC5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0MmQuYXJjKHgsIHksIDQwMCwgMCwgTWF0aC5QSSAqIDIpO1xuICAgIGNvbnRleHQyZC5maWxsKCk7XG5cbiAgICBjb250ZXh0MmQuZmlsbFN0eWxlID0gJyNDRjUzMDAnO1xuICAgIGNvbnRleHQyZC5iZWdpblBhdGgoKTtcbiAgICBjb250ZXh0MmQuYXJjKHgsIHksIDMwMCwgMCwgTWF0aC5QSSAqIDIpO1xuICAgIGNvbnRleHQyZC5maWxsKCk7XG5cbiAgICBjb250ZXh0MmQuYmVnaW5QYXRoKCk7XG4gICAgY29udGV4dDJkLnN0cm9rZVN0eWxlID0gJ29yYW5nZSc7XG4gICAgY29udGV4dDJkLmFyYyh4LCB5LCAyNDAsIDAuNzUgKiBNYXRoLlBJLCAwLjI1ICogTWF0aC5QSSk7XG4gICAgY29udGV4dDJkLmxpbmVDYXAgPSAnYnV0dCc7XG4gICAgY29udGV4dDJkLmxpbmVXaWR0aCA9IDgwO1xuICAgIGNvbnRleHQyZC5zdHJva2UoKTtcblxuICAgIGNvbnRleHQyZC5maWxsU3R5bGUgPSAnd2hpdGUnO1xuICAgIGNvbnRleHQyZC5mb250ID0gJzIyMHB4IEFyaWFsJztcbiAgICBjb250ZXh0MmQuZmlsbFRleHQoYCR7dGhpcy50ZW1wZXJhdHVyZX1gLCB4IC0gMTE1LCB5ICsgNzUpO1xuICAgIHRoaXMub3V0cHV0cy52aXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uVGljayhkZWx0YTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50VGltZSArPSBkZWx0YTtcblxuICAgIGlmICh0aGlzLm1peGVyKSB7XG4gICAgICB0aGlzLm1peGVyLnVwZGF0ZShkZWx0YSAvIDEwMDApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lID4gdGhpcy5uZXh0VXBkYXRlKSB7XG4gICAgICB0aGlzLm5leHRVcGRhdGUgKz0gdGhpcy5pbnB1dHMudXBkYXRlSW50ZXJ2YWw7XG5cbiAgICAgIHRoaXMudGVtcGVyYXR1cmUgKz0gKE1hdGgucmFuZG9tKCkgKiB0aGlzLnRlbXBDaGFuZ2VSYW5nZSk7XG4gICAgICB0aGlzLnRlbXBlcmF0dXJlID0gTWF0aC50cnVuYyh0aGlzLnRlbXBlcmF0dXJlKTtcblxuICAgICAgaWYgKHRoaXMudGVtcGVyYXR1cmUgPiA5OSkge1xuICAgICAgICB0aGlzLnRlbXBlcmF0dXJlID0gOTk7XG4gICAgICAgIHRoaXMudGVtcENoYW5nZVJhbmdlID0gLXRoaXMudGVtcENoYW5nZVJhbmdlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudGVtcGVyYXR1cmUgPCAxMCkge1xuICAgICAgICB0aGlzLnRlbXBlcmF0dXJlID0gMTA7XG4gICAgICAgIHRoaXMudGVtcENoYW5nZVJhbmdlID0gLXRoaXMudGVtcENoYW5nZVJhbmdlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbXBvbmVudC5ub3RpZnkoUmVwYWludEV2ZW50KTtcbiAgICAgIHRoaXMuY3YucmVwYWludCgpXG4gICAgfVxuICB9XG5cbiAgc2V0Q29tcG9uZW50KGNvbXBvbmVudDogU2NlbmVDb21wb25lbnQsIHBsYW5lOiBQbGFuZVJlbmRlcmVyLCBjdjogQ2FudmFzUmVuZGVyZXIpIHtcbiAgICBjb21wb25lbnQub25UaWNrID0gdGhpcy5vblRpY2suYmluZCh0aGlzKTtcbiAgICAvLyBwbGFuZS5vblRpY2sgPSB0aGlzLm9uVGljay5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY3YgPSBjdjtcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICB0aGlzLmNvbnRleHQgPSBjb21wb25lbnQuY29udGV4dDtcbiAgfVxuXG4gIHNldFJvb3RTY2VuZShyb290U2NlbmU6IE9iamVjdDNEKSB7XG4gICAgdGhpcy5yb290U2NlbmUgPSByb290U2NlbmU7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG5lc3RUaGVybW9zdGF0VHlwZSA9ICdtcC5uZXN0VGhlcm1vc3RhdCc7XG5leHBvcnQgY29uc3QgbWFrZU5lc3RUaGVybW9zdGF0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IE5lc3RUaGVybW9zdGF0KCk7XG59XG4iXX0=
|
|
@@ -81,4 +81,4 @@ export const planeRendererType = 'mp.planeRenderer';
|
|
|
81
81
|
export function makePlaneRenderer() {
|
|
82
82
|
return new PlaneRenderer();
|
|
83
83
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxhbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvbWF0dGVycG9ydC1leHRlbnNpb25zL25lc3QtdGhlcm1vc3RhdC9QbGFuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUUsd0JBQXdCLEdBQW9CLE1BQU0sbUNBQW1DLENBQUM7QUFDOUcsT0FBTyxFQUVMLElBQUksRUFDSixpQkFBaUIsRUFFakIsS0FBSyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLE9BQU8sQ0FBQztBQWlCZixNQUFNLE9BQU8sYUFBYyxTQUFRLGNBQWM7SUFDdkMsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsSUFBSSxDQUFPO0lBQ1gsU0FBUyxDQUFXO0lBRW5CLE1BQU0sR0FBVztRQUN4QixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxDQUFDO1FBQ1QsV0FBVyxFQUFFLElBQUk7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQztRQUNWLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQixVQUFVLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztRQUM5QixhQUFhLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztLQUNsQyxDQUFBO0lBRVEsTUFBTSxHQUFHO1FBQ2hCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSTtLQUN2QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWUsRUFBRSxZQUFrQjtRQUNqRCxJQUFJLENBQUMsTUFB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QUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FFRjtBQU1ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRJbnRlcmFjdGlvblR5cGUsIENvbXBvbmVudENvbnRleHQsfSBmcm9tICcuLi9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFRleHR1cmUsXHJcbiAgTWVzaCxcclxuICBNZXNoQmFzaWNNYXRlcmlhbCxcclxuICBPYmplY3QzRCxcclxuICBHcm91cCxcclxuICBQbGFuZUJ1ZmZlckdlb21ldHJ5XHJcbn0gZnJvbSAndGhyZWUnO1xyXG5cclxuZXhwb3J0IHR5cGUgU2l6ZSA9IHsgdzogbnVtYmVyOyBoOiBudW1iZXI7IH07XHJcblxyXG50eXBlIElucHV0cyA9IHtcclxuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcclxuICBhc3BlY3Q6IG51bWJlcjtcclxuICB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICB2aXNpYmxlOiBib29sZWFuO1xyXG4gIG9wYWNpdHk6IG51bWJlcjtcclxuICBwb2x5Z29uT2Zmc2V0OiBib29sZWFuO1xyXG4gIHBvbHlnb25PZmZzZXRGYWN0b3I6IG51bWJlcjtcclxuICBwb2x5Z29uT2Zmc2V0VW5pdHM6IG51bWJlcjtcclxuICBsb2NhbFNjYWxlOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07XHJcbiAgbG9jYWxQb3NpdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlcjsgejogbnVtYmVyOyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGxhbmVSZW5kZXJlciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IGltcGxlbWVudHMgSVBsYW5lUmVuZGVyZXIge1xyXG4gIHByaXZhdGUgcm9vdFNjZW5lOiBPYmplY3QzRCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgbWVzaDogTWVzaDtcclxuICBwcml2YXRlIHBpdm90Tm9kZTogT2JqZWN0M0Q7XHJcblxyXG4gIG92ZXJyaWRlIGlucHV0czogSW5wdXRzID0ge1xyXG4gICAgdGV4dHVyZTogbnVsbCxcclxuICAgIGFzcGVjdDogMSxcclxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIG9wYWNpdHk6IDEsXHJcbiAgICBwb2x5Z29uT2Zmc2V0OiBmYWxzZSxcclxuICAgIHBvbHlnb25PZmZzZXRGYWN0b3I6IDAsXHJcbiAgICBwb2x5Z29uT2Zmc2V0VW5pdHM6IDAsXHJcbiAgICBsb2NhbFNjYWxlOiB7eDogMSwgeTogMSwgejogMX0sXHJcbiAgICBsb2NhbFBvc2l0aW9uOiB7eDogMCwgeTogMCwgejogMH0sXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBldmVudHMgPSB7XHJcbiAgICBbQ29tcG9uZW50SW50ZXJhY3Rpb25UeXBlLkNMSUNLXTogdHJ1ZSxcclxuICB9O1xyXG5cclxuICBvdmVycmlkZSBvbkluaXQobW9kZWxOb2RlPzogYW55LCBpbnB1dFRleHR1cmU/OiBhbnkpIHtcclxuICAgIHRoaXMuaW5wdXRzLnRleHR1cmUgPSBpbnB1dFRleHR1cmU7XHJcbiAgICBpZiAoIXRoaXMuY29udGV4dCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXHJcbiAgICAgIH0gYXMgQ29tcG9uZW50Q29udGV4dDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBpdm90Tm9kZSA9IG5ldyBHcm91cCgpO1xyXG5cclxuICAgIHRoaXMubWVzaCA9IG5ldyBNZXNoKFxyXG4gICAgICBuZXcgUGxhbmVCdWZmZXJHZW9tZXRyeSgxLjAsIDEuMCksXHJcbiAgICAgIG5ldyBNZXNoQmFzaWNNYXRlcmlhbCh7XHJcbiAgICAgICAgdHJhbnNwYXJlbnQ6IHRoaXMuaW5wdXRzLnRyYW5zcGFyZW50LFxyXG4gICAgICAgIG1hcDogdGhpcy5pbnB1dHMudGV4dHVyZSxcclxuICAgICAgICBvcGFjaXR5OiB0aGlzLmlucHV0cy5vcGFjaXR5LFxyXG4gICAgICAgIHBvbHlnb25PZmZzZXQ6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXQsXHJcbiAgICAgICAgcG9seWdvbk9mZnNldEZhY3RvcjogdGhpcy5pbnB1dHMucG9seWdvbk9mZnNldEZhY3RvcixcclxuICAgICAgICBwb2x5Z29uT2Zmc2V0VW5pdHM6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRVbml0cyxcclxuICAgICAgfSkpO1xyXG4gICAgdGhpcy5tZXNoLnNjYWxlLnNldCh0aGlzLmlucHV0cy5sb2NhbFNjYWxlLngsIHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueSAvIHRoaXMuaW5wdXRzLmFzcGVjdCwgdGhpcy5pbnB1dHMubG9jYWxTY2FsZS56KTtcclxuICAgIHRoaXMubWVzaC5wb3NpdGlvbi5zZXQodGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi54LCB0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLnksIHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueik7XHJcbiAgICB0aGlzLm1lc2gudXBkYXRlTWF0cml4V29ybGQoKTtcclxuICAgIHRoaXMucGl2b3ROb2RlLmFkZCh0aGlzLm1lc2gpO1xyXG5cclxuICAgIHRoaXMub3V0cHV0cy5vYmplY3RSb290ID0gdGhpcy5waXZvdE5vZGU7XHJcbiAgICB0aGlzLm91dHB1dHMuY29sbGlkZXIgPSB0aGlzLnBpdm90Tm9kZTtcclxuICAgIHRoaXMubWVzaC52aXNpYmxlID0gdGhpcy5pbnB1dHMudmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uRXZlbnQoZXZlbnRUeXBlOiBzdHJpbmcsIGV2ZW50RGF0YTogdW5rbm93bikge1xyXG4gICAgdGhpcy5ub3RpZnkoZXZlbnRUeXBlLCBldmVudERhdGEpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKG9sZElucHV0czogSW5wdXRzKSB7XHJcbiAgICBpZiAob2xkSW5wdXRzLnRyYW5zcGFyZW50ICE9PSB0aGlzLmlucHV0cy50cmFuc3BhcmVudCkge1xyXG4gICAgICAodGhpcy5tZXNoLm1hdGVyaWFsIGFzIE1lc2hCYXNpY01hdGVyaWFsKS50cmFuc3BhcmVudCA9IHRoaXMuaW5wdXRzLnRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvbGRJbnB1dHMudGV4dHVyZSAhPT0gdGhpcy5pbnB1dHMudGV4dHVyZSkge1xyXG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbDtcclxuICAgICAgbWF0ZXJpYWwubWFwID0gdGhpcy5pbnB1dHMudGV4dHVyZTtcclxuICAgICAgbWF0ZXJpYWwubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvbGRJbnB1dHMudmlzaWJsZSAhPT0gdGhpcy5pbnB1dHMudmlzaWJsZSkge1xyXG4gICAgICB0aGlzLm1lc2gudmlzaWJsZSA9IHRoaXMuaW5wdXRzLnZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9sZElucHV0cy5wb2x5Z29uT2Zmc2V0ICE9PSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0KSB7XHJcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gdGhpcy5tZXNoLm1hdGVyaWFsIGFzIE1lc2hCYXNpY01hdGVyaWFsO1xyXG4gICAgICBtYXRlcmlhbC5wb2x5Z29uT2Zmc2V0ID0gdGhpcy5pbnB1dHMucG9seWdvbk9mZnNldDtcclxuICAgICAgbWF0ZXJpYWwucG9seWdvbk9mZnNldEZhY3RvciA9IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRGYWN0b3I7XHJcbiAgICAgIG1hdGVyaWFsLnBvbHlnb25PZmZzZXRVbml0cyA9IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRVbml0cztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1lc2guc2NhbGUuc2V0KHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueCwgdGhpcy5pbnB1dHMubG9jYWxTY2FsZS55IC8gdGhpcy5pbnB1dHMuYXNwZWN0LCB0aGlzLmlucHV0cy5sb2NhbFNjYWxlLnopO1xyXG4gICAgdGhpcy5tZXNoLnBvc2l0aW9uLnNldCh0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLngsIHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueSwgdGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi56KTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uRGVzdHJveSgpIHtcclxuICAgIHRoaXMub3V0cHV0cy5jb2xsaWRlciA9IG51bGw7XHJcbiAgICB0aGlzLm91dHB1dHMub2JqZWN0Um9vdCA9IG51bGw7XHJcblxyXG4gICAgKHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbCkuZGlzcG9zZSgpO1xyXG4gICAgdGhpcy5tZXNoLmdlb21ldHJ5LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNldFJvb3RTY2VuZShyb290U2NlbmU6IE9iamVjdDNEKSB7XHJcbiAgICB0aGlzLnJvb3RTY2VuZSA9IHJvb3RTY2VuZTtcclxuICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQbGFuZVJlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnQge1xyXG4gIGlucHV0czogSW5wdXRzO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcGxhbmVSZW5kZXJlclR5cGUgPSAnbXAucGxhbmVSZW5kZXJlcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFrZVBsYW5lUmVuZGVyZXIoKSB7XHJcbiAgcmV0dXJuIG5ldyBQbGFuZVJlbmRlcmVyKCk7XHJcbn1cclxuIl19
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGxhbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvbWF0dGVycG9ydC1leHRlbnNpb25zL25lc3QtdGhlcm1vc3RhdC9QbGFuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUUsd0JBQXdCLEdBQW9CLE1BQU0sbUNBQW1DLENBQUM7QUFDOUcsT0FBTyxFQUVMLElBQUksRUFDSixpQkFBaUIsRUFFakIsS0FBSyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLE9BQU8sQ0FBQztBQWlCZixNQUFNLE9BQU8sYUFBYyxTQUFRLGNBQWM7SUFDdkMsU0FBUyxHQUFvQixJQUFJLENBQUM7SUFDbEMsSUFBSSxDQUFPO0lBQ1gsU0FBUyxDQUFXO0lBRW5CLE1BQU0sR0FBVztRQUN4QixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxDQUFDO1FBQ1QsV0FBVyxFQUFFLElBQUk7UUFDakIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsQ0FBQztRQUNWLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQixVQUFVLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztRQUM5QixhQUFhLEVBQUUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBQztLQUNsQyxDQUFBO0lBRVEsTUFBTSxHQUFHO1FBQ2hCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSTtLQUN2QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQWUsRUFBRSxZQUFrQjtRQUNqRCxJQUFJLENBQUMsTUFB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QUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7Q0FFRjtBQU1ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NjZW5lQ29tcG9uZW50LCBDb21wb25lbnRJbnRlcmFjdGlvblR5cGUsIENvbXBvbmVudENvbnRleHQsfSBmcm9tICcuLi9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgVGV4dHVyZSxcbiAgTWVzaCxcbiAgTWVzaEJhc2ljTWF0ZXJpYWwsXG4gIE9iamVjdDNELFxuICBHcm91cCxcbiAgUGxhbmVCdWZmZXJHZW9tZXRyeVxufSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCB0eXBlIFNpemUgPSB7IHc6IG51bWJlcjsgaDogbnVtYmVyOyB9O1xuXG50eXBlIElucHV0cyA9IHtcbiAgdGV4dHVyZTogVGV4dHVyZSB8IG51bGw7XG4gIGFzcGVjdDogbnVtYmVyO1xuICB0cmFuc3BhcmVudDogYm9vbGVhbjtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgb3BhY2l0eTogbnVtYmVyO1xuICBwb2x5Z29uT2Zmc2V0OiBib29sZWFuO1xuICBwb2x5Z29uT2Zmc2V0RmFjdG9yOiBudW1iZXI7XG4gIHBvbHlnb25PZmZzZXRVbml0czogbnVtYmVyO1xuICBsb2NhbFNjYWxlOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB6OiBudW1iZXI7IH07XG4gIGxvY2FsUG9zaXRpb246IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHo6IG51bWJlcjsgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFBsYW5lUmVuZGVyZXIgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCBpbXBsZW1lbnRzIElQbGFuZVJlbmRlcmVyIHtcbiAgcHJpdmF0ZSByb290U2NlbmU6IE9iamVjdDNEIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbWVzaDogTWVzaDtcbiAgcHJpdmF0ZSBwaXZvdE5vZGU6IE9iamVjdDNEO1xuXG4gIG92ZXJyaWRlIGlucHV0czogSW5wdXRzID0ge1xuICAgIHRleHR1cmU6IG51bGwsXG4gICAgYXNwZWN0OiAxLFxuICAgIHRyYW5zcGFyZW50OiB0cnVlLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMSxcbiAgICBwb2x5Z29uT2Zmc2V0OiBmYWxzZSxcbiAgICBwb2x5Z29uT2Zmc2V0RmFjdG9yOiAwLFxuICAgIHBvbHlnb25PZmZzZXRVbml0czogMCxcbiAgICBsb2NhbFNjYWxlOiB7eDogMSwgeTogMSwgejogMX0sXG4gICAgbG9jYWxQb3NpdGlvbjoge3g6IDAsIHk6IDAsIHo6IDB9LFxuICB9XG5cbiAgb3ZlcnJpZGUgZXZlbnRzID0ge1xuICAgIFtDb21wb25lbnRJbnRlcmFjdGlvblR5cGUuQ0xJQ0tdOiB0cnVlLFxuICB9O1xuXG4gIG92ZXJyaWRlIG9uSW5pdChtb2RlbE5vZGU/OiBhbnksIGlucHV0VGV4dHVyZT86IGFueSkge1xuICAgIHRoaXMuaW5wdXRzLnRleHR1cmUgPSBpbnB1dFRleHR1cmU7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQpIHtcbiAgICAgIHRoaXMuY29udGV4dCA9IHtcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXG4gICAgICB9IGFzIENvbXBvbmVudENvbnRleHQ7XG4gICAgfVxuXG4gICAgdGhpcy5waXZvdE5vZGUgPSBuZXcgR3JvdXAoKTtcblxuICAgIHRoaXMubWVzaCA9IG5ldyBNZXNoKFxuICAgICAgbmV3IFBsYW5lQnVmZmVyR2VvbWV0cnkoMS4wLCAxLjApLFxuICAgICAgbmV3IE1lc2hCYXNpY01hdGVyaWFsKHtcbiAgICAgICAgdHJhbnNwYXJlbnQ6IHRoaXMuaW5wdXRzLnRyYW5zcGFyZW50LFxuICAgICAgICBtYXA6IHRoaXMuaW5wdXRzLnRleHR1cmUsXG4gICAgICAgIG9wYWNpdHk6IHRoaXMuaW5wdXRzLm9wYWNpdHksXG4gICAgICAgIHBvbHlnb25PZmZzZXQ6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXQsXG4gICAgICAgIHBvbHlnb25PZmZzZXRGYWN0b3I6IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRGYWN0b3IsXG4gICAgICAgIHBvbHlnb25PZmZzZXRVbml0czogdGhpcy5pbnB1dHMucG9seWdvbk9mZnNldFVuaXRzLFxuICAgICAgfSkpO1xuICAgIHRoaXMubWVzaC5zY2FsZS5zZXQodGhpcy5pbnB1dHMubG9jYWxTY2FsZS54LCB0aGlzLmlucHV0cy5sb2NhbFNjYWxlLnkgLyB0aGlzLmlucHV0cy5hc3BlY3QsIHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueik7XG4gICAgdGhpcy5tZXNoLnBvc2l0aW9uLnNldCh0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLngsIHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueSwgdGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi56KTtcbiAgICB0aGlzLm1lc2gudXBkYXRlTWF0cml4V29ybGQoKTtcbiAgICB0aGlzLnBpdm90Tm9kZS5hZGQodGhpcy5tZXNoKTtcblxuICAgIHRoaXMub3V0cHV0cy5vYmplY3RSb290ID0gdGhpcy5waXZvdE5vZGU7XG4gICAgdGhpcy5vdXRwdXRzLmNvbGxpZGVyID0gdGhpcy5waXZvdE5vZGU7XG4gICAgdGhpcy5tZXNoLnZpc2libGUgPSB0aGlzLmlucHV0cy52aXNpYmxlO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25FdmVudChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhOiB1bmtub3duKSB7XG4gICAgdGhpcy5ub3RpZnkoZXZlbnRUeXBlLCBldmVudERhdGEpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKG9sZElucHV0czogSW5wdXRzKSB7XG4gICAgaWYgKG9sZElucHV0cy50cmFuc3BhcmVudCAhPT0gdGhpcy5pbnB1dHMudHJhbnNwYXJlbnQpIHtcbiAgICAgICh0aGlzLm1lc2gubWF0ZXJpYWwgYXMgTWVzaEJhc2ljTWF0ZXJpYWwpLnRyYW5zcGFyZW50ID0gdGhpcy5pbnB1dHMudHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKG9sZElucHV0cy50ZXh0dXJlICE9PSB0aGlzLmlucHV0cy50ZXh0dXJlKSB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbDtcbiAgICAgIG1hdGVyaWFsLm1hcCA9IHRoaXMuaW5wdXRzLnRleHR1cmU7XG4gICAgICBtYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG9sZElucHV0cy52aXNpYmxlICE9PSB0aGlzLmlucHV0cy52aXNpYmxlKSB7XG4gICAgICB0aGlzLm1lc2gudmlzaWJsZSA9IHRoaXMuaW5wdXRzLnZpc2libGU7XG4gICAgfVxuXG4gICAgaWYgKG9sZElucHV0cy5wb2x5Z29uT2Zmc2V0ICE9PSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0KSB7XG4gICAgICBjb25zdCBtYXRlcmlhbCA9IHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbDtcbiAgICAgIG1hdGVyaWFsLnBvbHlnb25PZmZzZXQgPSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0O1xuICAgICAgbWF0ZXJpYWwucG9seWdvbk9mZnNldEZhY3RvciA9IHRoaXMuaW5wdXRzLnBvbHlnb25PZmZzZXRGYWN0b3I7XG4gICAgICBtYXRlcmlhbC5wb2x5Z29uT2Zmc2V0VW5pdHMgPSB0aGlzLmlucHV0cy5wb2x5Z29uT2Zmc2V0VW5pdHM7XG4gICAgfVxuXG4gICAgdGhpcy5tZXNoLnNjYWxlLnNldCh0aGlzLmlucHV0cy5sb2NhbFNjYWxlLngsIHRoaXMuaW5wdXRzLmxvY2FsU2NhbGUueSAvIHRoaXMuaW5wdXRzLmFzcGVjdCwgdGhpcy5pbnB1dHMubG9jYWxTY2FsZS56KTtcbiAgICB0aGlzLm1lc2gucG9zaXRpb24uc2V0KHRoaXMuaW5wdXRzLmxvY2FsUG9zaXRpb24ueCwgdGhpcy5pbnB1dHMubG9jYWxQb3NpdGlvbi55LCB0aGlzLmlucHV0cy5sb2NhbFBvc2l0aW9uLnopO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCkge1xuICAgIHRoaXMub3V0cHV0cy5jb2xsaWRlciA9IG51bGw7XG4gICAgdGhpcy5vdXRwdXRzLm9iamVjdFJvb3QgPSBudWxsO1xuXG4gICAgKHRoaXMubWVzaC5tYXRlcmlhbCBhcyBNZXNoQmFzaWNNYXRlcmlhbCkuZGlzcG9zZSgpO1xuICAgIHRoaXMubWVzaC5nZW9tZXRyeS5kaXNwb3NlKCk7XG4gIH1cblxuICBzZXRSb290U2NlbmUocm9vdFNjZW5lOiBPYmplY3QzRCkge1xuICAgIHRoaXMucm9vdFNjZW5lID0gcm9vdFNjZW5lO1xuICB9XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGxhbmVSZW5kZXJlciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IHtcbiAgaW5wdXRzOiBJbnB1dHM7XG59XG5cbmV4cG9ydCBjb25zdCBwbGFuZVJlbmRlcmVyVHlwZSA9ICdtcC5wbGFuZVJlbmRlcmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQbGFuZVJlbmRlcmVyKCkge1xuICByZXR1cm4gbmV3IFBsYW5lUmVuZGVyZXIoKTtcbn1cbiJdfQ==
|
|
@@ -136,4 +136,4 @@ export var Keys;
|
|
|
136
136
|
Keys[Keys["ALT"] = 18] = "ALT";
|
|
137
137
|
Keys[Keys["CONTROL"] = 17] = "CONTROL";
|
|
138
138
|
})(Keys || (Keys = {}));
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUNILE1BQWUscUJBQXFCO0NBcURuQztBQUVELE1BQU0sT0FBZ0IsY0FBZSxTQUFRLHFCQUFxQjtJQUNoRTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFhO0lBa0NuQjs7O09BR0c7SUFDSCxLQUFLLENBQTJCO0NBTWpDO0FBc0REOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksd0JBcUJYO0FBckJELFdBQVksd0JBQXdCO0lBQ2xDLG1CQUFtQjtJQUNuQix1REFBMkIsQ0FBQTtJQUMzQixtQkFBbUI7SUFDbkIsdURBQTJCLENBQUE7SUFDM0Isd0NBQXdDO0lBQ3hDLHFEQUF5QixDQUFBO0lBQ3pCLGlFQUFxQyxDQUFBO0lBQ3JDLDZEQUFpQyxDQUFBO0lBQ2pDLHFFQUF5QyxDQUFBO0lBQ3pDLHlFQUE2QyxDQUFBO0lBQzdDLHlEQUE2QixDQUFBO0lBQzdCLG1EQUF1QixDQUFBO0lBQ3ZCLDZFQUFpRCxDQUFBO0lBQ2pELHlFQUE2QyxDQUFBO0lBQzdDLG1FQUF1QyxDQUFBO0lBQ3ZDLDJFQUErQyxDQUFBO0lBQy9DLHVEQUEyQixDQUFBO0lBQzNCLCtEQUFtQyxDQUFBO0lBQ25DLHlEQUE2QixDQUFBO0lBQzdCLGlFQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFyQlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQXFCbkM7QUFFRCxNQUFlLHVCQUF1QjtDQUdyQztBQUlELE1BQU0sWUFBYSxTQUFRLHVCQUF1QjtDQUFJO0FBdUR0RCxNQUFNLENBQU4sSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLHVEQUFPLENBQUE7SUFDUCxxREFBTSxDQUFBO0lBQ04sMkRBQVMsQ0FBQTtJQUNULGlEQUFJLENBQUE7SUFDSix1REFBTyxDQUFBO0lBQ1AsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFQVyxhQUFhLEtBQWIsYUFBYSxRQU94QjtBQUVELE1BQU0sQ0FBTixJQUFZLGlCQVFYO0FBUkQsV0FBWSxpQkFBaUI7SUFDM0IseURBQUksQ0FBQTtJQUNKLCtEQUFvQyxDQUFBO0lBQ3BDLG1FQUF3QyxDQUFBO0lBQ3hDLDZEQUFrQyxDQUFBO0lBQ2xDLHlEQUE4QixDQUFBO0lBQzlCLGdFQUFvQyxDQUFBO0lBQ3BDLHdEQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFSVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBUTVCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2YsZ0NBQWUsQ0FBQTtJQUNmLDRCQUFXLENBQUE7SUFDWCxvQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUF1REQsTUFBTSxDQUFOLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix1Q0FBSSxDQUFBO0lBQ0osNkNBQU8sQ0FBQTtJQUNQLG1DQUFFLENBQUE7QUFDSixDQUFDLEVBSlcsUUFBUSxLQUFSLFFBQVEsUUFJbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxJQXNEWDtBQXRERCxXQUFZLElBQUk7SUFDZCxvQ0FBVyxDQUFBO0lBQ1gsZ0NBQVMsQ0FBQTtJQUNULDhCQUFRLENBQUE7SUFDUiw4QkFBUSxDQUFBO0lBQ1Isa0NBQVUsQ0FBQTtJQUNWLGdDQUFTLENBQUE7SUFDVCxnQ0FBUyxDQUFBO0lBQ1QsOEJBQVEsQ0FBQTtJQUNSLGtDQUFVLENBQUE7SUFDVixrQ0FBVSxDQUFBO0lBQ1YsZ0NBQVMsQ0FBQTtJQUNULDBDQUFjLENBQUE7SUFDZCxzQ0FBWSxDQUFBO0lBQ1osNENBQWUsQ0FBQTtJQUNmLDBDQUFjLENBQUE7SUFDZCw2QkFBTyxDQUFBO0lBQ1AsMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTixrQ0FBVSxDQUFBO0lBQ1Ysb0NBQVcsQ0FBQTtJQUNYLG9DQUFXLENBQUE7SUFDWCx5Q0FBYSxDQUFBO0lBQ2IsMkNBQWUsQ0FBQTtJQUNmLDZDQUFnQixDQUFBO0lBQ2hCLHFEQUFvQixDQUFBO0lBQ3BCLCtDQUFpQixDQUFBO0lBQ2pCLGtDQUFVLENBQUE7SUFDViw4QkFBUSxDQUFBO0lBQ1Isc0NBQVksQ0FBQTtBQUNkLENBQUMsRUF0RFcsSUFBSSxLQUFKLElBQUksUUFzRGYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVEhSRUUsIHsgU2NlbmUgfSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCBEaWN0ID0gTm9kZUpTLkRpY3Q7XHJcblxyXG4vKipcclxuICogVGhlIGJhc2Ugb2YgYWxsIGBTY2VuZUNvbXBvbmVudGAgY3JlYXRlZCB3aXRoIHRoZSBzZGsuXHJcbiAqIEFsbCBwcm9wZXJ0aWVzIG9mIHRoaXMgY2xhc3MgYXJlIGFsd2F5cyBhdmFpbGFibGUgdG8gYWxsIGNvbXBvbmVudHMgZ2VuZXJhdGVkIHRocm91Z2ggdGhlIHNkay5cclxuICogVGhlc2UgcHJvcGVydGllcyBzaG91bGQgYWxsIGJlIGNvbnNpZGVyZWQgcmVzZXJ2ZWQgYW5kIHNob3VsZCBub3QgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIHN1YmNsYXNzLlxyXG4gKi9cclxuYWJzdHJhY3QgY2xhc3MgU2NlbmVDb21wb25lbnRQcml2YXRlIHtcclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBUaGUgbmFtZSByZWdpc3RlcmVkIHRvIHRoZSBmYWN0b3J5IHVzZWQgdG8gZ2VuZXJhdGUgdGhpcyBjb21wb25lbnQuXHJcbiAgICovXHJcbiAgZGVjbGFyZSByZWFkb25seSBjb21wb25lbnRUeXBlOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXNlcnZlZFxyXG4gICAqIEEgZGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzIHRoYXQgdGhpcyBjb21wb25lbnQgY29tcHV0ZXMuIEV2ZXJ5IGNvbXBvbmVudCBpcyBndWFyYW50ZWVkIHRvIGhhdmUgYG91dHB1dHMuY29sbGlkZXJgIGFuZCBgb3V0cHV0cy5vYmplY3RSb290YC5cclxuICAgKiBUaGlzIGRpY3Rpb25hcnkgaXMgb2JzZXJ2YWJsZSBhbmQgY2FuIGJlIHRoZSBzb3VyY2Ugb2YgYSBiaW5kIHRhcmdldC5cclxuICAgKlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgb3V0cHV0czogQ29tcG9uZW50T3V0cHV0O1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBBIGRpY3Rpb25hcnkgb2YgZXZlbnRzIHRoYXQgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoaXMgY29tcG9uZW50J3MgYG9uRXZlbnRgLiBFdmVyeSBjb21wb25lbnQgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGFsbCBvZiB0aGUgYEludGVyYWN0aW9uU2VsZWN0aW9uYCBrZXlzOlxyXG4gICAqICBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkNMSUNLXWAsIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uSE9WRVJdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5EUkFHXWBcclxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgZXZlbnRzOiBEaWN0PGJvb2xlYW4+O1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBUaGUgY29udGV4dCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgZnJhbWV3b3JrLCBlLmcuIFRIUkVFLmpzLlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgY29udGV4dDogQ29tcG9uZW50Q29udGV4dDtcclxuXHJcbiAgLyoqXHJcbiAgICogQHJlc2VydmVkXHJcbiAgICogQmluZHMgYHRoaXNbcHJvcF1gIHRvIHRoZSBvdXRwdXQgb2YgYHNyY1tzcmNQcm9wXWAuXHJcbiAgICogV2hlbiB0aGUgdmFsdWUgb2YgYHNyY1tzcmNQcm9wXWAgY2hhbmdlcywgdGhlIHZhbHVlIGlzIHByb3BhZ2F0ZWQgYW5kIHNldHMgYHRoaXNbcHJvcF1gIHRvIHRoZSBzYW1lIHZhbHVlIGF1dG9tYXRpY2FsbHkuXHJcbiAgICovXHJcbiAgZGVjbGFyZSBiaW5kOiAocHJvcDogc3RyaW5nLCBzcmM6IFNjZW5lQ29tcG9uZW50WydvdXRwdXRzJyB8ICdpbnB1dHMnXSwgc3JjUHJvcDoga2V5b2YgU2NlbmVDb21wb25lbnRbJ291dHB1dHMnIHwgJ2lucHV0cyddKSA9PiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBOb3RpZmllcyB0aGlzIGNvbXBvbmVudCBvZiBhbiBgZXZlbnRUeXBlYCB3aGVuIHRoZSBgc3JjYCBDb21wb25lbnQgY2FsbHMgYG5vdGlmeWAgd2l0aCBhIGBzcmNFdmVudFR5cGVgIGV2ZW50XHJcbiAgICovXHJcbiAgZGVjbGFyZSBiaW5kRXZlbnQ6IChldmVudFR5cGU6IHN0cmluZywgc3JjOiBTY2VuZUNvbXBvbmVudCwgc3JjRXZlbnRUeXBlOiBzdHJpbmcpID0+IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXNlcnZlZFxyXG4gICAqIE5vdGlmaWVzIGFueSBldmVudCBiaW5kaW5ncyBvZiBhbiBldmVudCB3aXRoIGBldmVudFR5cGVgIGFuZCBkYXRhIGBldmVudERhdGFgXHJcbiAgICovXHJcbiAgZGVjbGFyZSBub3RpZnk6IChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhPzogdW5rbm93bikgPT4gdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogQHJlc2VydmVkXHJcbiAgICogU3B5IG9uIGEgY29tcG9uZW50J3Mgbm90aWZ5IGZyb20gb3V0c2lkZSBvZiB0aGUgY29tcG9uZW50IHN5c3RlbVxyXG4gICAqL1xyXG4gIGRlY2xhcmUgc3B5T25FdmVudDogKHNweTogSUNvbXBvbmVudEV2ZW50U3B5KSA9PiBJU3Vic2NyaXB0aW9uO1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2NlbmVDb21wb25lbnQgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudFByaXZhdGUge1xyXG4gIC8qKlxyXG4gICAqIEFuIG9wdGlvbmFsIGRpY3Rpb25hcnkgb2YgcHJvcGVydGllcyB0aGF0IGFmZmVjdHMgdGhlIGJlaGF2aW9yIG9mIHRoZSBjb21wb25lbnQuXHJcbiAgICogVGhlIHByb3BlcnRpZXMgY2FuIGJlIGNoYW5nZWQgYnkgYW4gZXh0ZXJuYWwgc291cmNlIGF0IGFueSB0aW1lLiBJdCBpcyB1cCB0byB0aGUgY29tcG9uZW50IHRvIHJlc3BvbmQgYXBwcm9wcmlhdGVseSB0byB0aGUgY2hhbmdlcy5cclxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBjYW4gYWxzbyBiZSBiaW5kIHRhcmdldHMgdG8gYW5vdGhlciBvYnNlcnZhYmxlIHNvdXJjZSwgZS5nLiB0aGUgb3V0cHV0IHByb3BlcnR5IG9mIGFub3RoZXIgY29tcG9uZW50LlxyXG4gICAqL1xyXG4gIGlucHV0cz86IERpY3Q8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBldmVudCBpcyBjYWxsZWQgb25jZSBhZnRlciB0aGUgc2NlbmUgbm9kZSBpdHMgYXR0YWNoZWQgdG8gaGFzIHN0YXJ0ZWQuXHJcbiAgICovXHJcbiAgb25Jbml0PygpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBUaGlzIGV2ZW50IGlzIGNhbGxlZCBhdCBtb3N0IG9uY2UgcGVyIGZyYW1lIHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBvbiB0aGlzIGNvbXBvbmVudC5cclxuICAgKiBBbnkgb2YgdGhlIGludGVyYWN0aW9uIHR5cGVzIHNwZWNpZmllZCBpbiBgdGhpcy5pbnRlcmFjdGlvbnNgIG9yIGEgY2FsbCB0byBub3RpZnkgZm9yIGEgYm91bmQgZXZlbnQgd2lsbCB0cmlnZ2VyIHRoaXMgZXZlbnQuXHJcbiAgICogQHByb3BlcnR5IHtzdHJpbmcgfCBDb21wb25lbnRJbnRlcmFjdGlvblR5cGV9IGV2ZW50VHlwZSBUaGUgZXZlbnQgdHlwZVxyXG4gICAqIEBwcm9wZXJ0eSB7dW5rbm93bn0gZXZlbnREYXRhIFRoZSBkYXRhIHBheWxvYWQgb2YgdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgb25FdmVudD8oZXZlbnRUeXBlOiBzdHJpbmcsIGV2ZW50RGF0YTogdW5rbm93bik6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGFuIGlucHV0IHByb3BlcnR5IGhhcyBjaGFuZ2VkLlxyXG4gICAqIEl0IHdpbGwgYmUgY2FsbGVkIGF0IG1vc3Qgb25jZSBhIGZyYW1lLlxyXG4gICAqL1xyXG4gIG9uSW5wdXRzVXBkYXRlZD8ocHJldmlvdXNJbnB1dHM6IHRoaXNbJ2lucHV0cyddKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBldmVudCBpcyBjYWxsZWQgb25jZSBhIGZyYW1lIGFmdGVyIGlucHV0IGNoYW5nZXMgaGF2ZSBiZWVuIGRldGVjdGVkLlxyXG4gICAqL1xyXG4gIG9uVGljaz8odGlja0RlbHRhOiBudW1iZXIpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBAcmVzZXJ2ZWRcclxuICAgKiBBIGRpY3Rpb25hcnkgb2YgZXZlbnRzIHRoYXQgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoaXMgY29tcG9uZW50J3MgYG9uRXZlbnRgLiBFdmVyeSBjb21wb25lbnQgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGFsbCBvZiB0aGUgYEludGVyYWN0aW9uU2VsZWN0aW9uYCBrZXlzOlxyXG4gICAqICBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkNMSUNLXWAsIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uSE9WRVJdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5EUkFHXWBcclxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxyXG4gICAqL1xyXG4gIGRlY2xhcmUgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcclxuXHJcbiAgLyoqXHJcbiAgICogQHJlc2VydmVkXHJcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgZW1pdHRlZCBieSB0aGlzIGNvbXBvbmVudC5cclxuICAgKi9cclxuICBlbWl0cz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGlzIGV2ZW50IGlzIGNhbGxlZCBvbmNlIHJpZ2h0IGJlZm9yZSB0aGUgc2NlbmUgbm9kZSBoYXMgc3RvcHBlZC5cclxuICAgKi9cclxuICBvbkRlc3Ryb3k/KCk6IHZvaWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIG5vZGUgb2YgYSBzY2VuZSBncmFwaC5cclxuICogQWdncmVnYXRlcyBgU2NlbmVDb21wb25lbnRgIGFzIGNoaWxkcmVuLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJU2NlbmVOb2RlIHtcclxuICAvKipcclxuICAgKiBBIGh1bWFuIHJlYWRhYmxlIG5hbWUgcHJvdmlkZWQgYnkgdGhlIHVzZXIuXHJcbiAgICovXHJcbiAgbmFtZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIG5vZGUuXHJcbiAgICogVGhlIHBvc2l0aW9uLCBxdWF0ZXJuaW9uLCBzY2FsZSB0cmFuc2Zvcm1zIGFyZSBhcHBsaWVkIGluIHNjYWxlLCBxdWF0ZXJuaW9uLCB0aGVuIHNjYWxlIG9yZGVyLiAoc2FtZSBhcyBUSFJFRS5qcylcclxuICAgKi9cclxuICByZWFkb25seSBwb3NpdGlvbjogVEhSRUUuVmVjdG9yMztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG9yaWVudGF0aW9uIG9mIHRoZSBub2RlLlxyXG4gICAqIFRoZSBwb3NpdGlvbiwgcXVhdGVybmlvbiwgc2NhbGUgdHJhbnNmb3JtcyBhcmUgYXBwbGllZCBpbiBzY2FsZSwgcXVhdGVybmlvbiwgdGhlbiBzY2FsZSBvcmRlci4gKHNhbWUgYXMgVEhSRUUuanMpXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgcXVhdGVybmlvbjogVEhSRUUuUXVhdGVybmlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHNjYWxlIG9mIHRoZSBub2RlLlxyXG4gICAqIFRoZSBwb3NpdGlvbiwgcXVhdGVybmlvbiwgc2NhbGUgdHJhbnNmb3JtcyBhcmUgYXBwbGllZCBpbiBzY2FsZSwgcXVhdGVybmlvbiwgdGhlbiBzY2FsZSBvcmRlci4gKHNhbWUgYXMgVEhSRUUuanMpXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2NhbGU6IFRIUkVFLlZlY3RvcjM7XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbmQgYWRkIGEgY2hpbGQgY29tcG9uZW50IHRvIHRoaXMgbm9kZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmYWN0b3J5IFRoZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmFjdG9yeSB0byBnZW5lcmF0ZSBhIGBTY2VuZUNvbXBvbmVudGBcclxuICAgKiBAcGFyYW0gaW5pdGlhbElucHV0cyBBbiBpbml0aWFsIHNldCBvZiBpbnB1dHMsIGltbWVkaWF0ZWx5IGF2YWlsYWJsZSB0byB0aGUgbmV3bHkgY3JlYXRlIGBTY2VuZUNvbXBvbmVudC5vbkluaXRgXHJcbiAgICovXHJcbiAgYWRkQ29tcG9uZW50KGZhY3Rvcnk6IHN0cmluZywgaW5pdGlhbElucHV0cz86IFNjZW5lQ29tcG9uZW50WydpbnB1dHMnXSk6IFNjZW5lQ29tcG9uZW50O1xyXG5cclxuICAvKipcclxuICAgKiBBbiBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIGNvbXBvbmVudHMgYWRkZWQgdG8gdGhpcyBub2RlIHVzaW5nIGEgZm9yLW9mIGxvb3AuXHJcbiAgICovXHJcbiAgY29tcG9uZW50SXRlcmF0b3IoKTogSXRlcmFibGVJdGVyYXRvcjxTY2VuZUNvbXBvbmVudD47XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHRoZSBub2RlIGFuZCBpdHMgY29tcG9uZW50cy5cclxuICAgKi9cclxuICBzdGFydCgpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHRoZSBub2RlIGFuZCBpdHMgY29tcG9uZW50cy5cclxuICAgKi9cclxuICBzdG9wKCk6IHZvaWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgdHlwZXMgb2YgdGhlIEludGVyYWN0aW9uIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSByZWdpc3RlcmVkIGBJbnRlcmFjdGlvblNlbGVjdGlvbmBcclxuICovXHJcbmV4cG9ydCBlbnVtIENvbXBvbmVudEludGVyYWN0aW9uVHlwZSB7XHJcbiAgLyoqIENMSUNLIGV2ZW50cyAqL1xyXG4gIENMSUNLID0gJ0lOVEVSQUNUSU9OLkNMSUNLJyxcclxuICAvKiogSE9WRVIgZXZlbnRzICovXHJcbiAgSE9WRVIgPSAnSU5URVJBQ1RJT04uSE9WRVInLFxyXG4gIC8qKiBEUkFHIGV2ZW50cyAobW91c2Vkb3duIHRoZW4gbW92ZSkgKi9cclxuICBEUkFHID0gJ0lOVEVSQUNUSU9OLkRSQUcnLFxyXG4gIERSQUdfQkVHSU4gPSAnSU5URVJBQ1RJT04uRFJBR19CRUdJTicsXHJcbiAgRFJBR19FTkQgPSAnSU5URVJBQ1RJT04uRFJBR19FTkQnLFxyXG4gIFBPSU5URVJfTU9WRSA9ICdJTlRFUkFDVElPTi5QT0lOVEVSX01PVkUnLFxyXG4gIFBPSU5URVJfQlVUVE9OID0gJ0lOVEVSQUNUSU9OLlBPSU5URVJfQlVUVE9OJyxcclxuICBTQ1JPTEwgPSAnSU5URVJBQ1RJT04uU0NST0xMJyxcclxuICBLRVkgPSAnSU5URVJBQ1RJT04uS0VZJyxcclxuICBMT05HX1BSRVNTX1NUQVJUID0gJ0lOVEVSQUNUSU9OLkxPTkdfUFJFU1NfU1RBUlQnLFxyXG4gIExPTkdfUFJFU1NfRU5EID0gJ0lOVEVSQUNUSU9OLkxPTkdfUFJFU1NfRU5EJyxcclxuICBNVUxUSV9TV0lQRSA9ICdJTlRFUkFDVElPTi5NVUxUSV9TV0lQRScsXHJcbiAgTVVMVElfU1dJUEVfRU5EID0gJ0lOVEVSQUNUSU9OLk1VTFRJX1NXSVBFX0VORCcsXHJcbiAgUElOQ0ggPSAnSU5URVJBQ1RJT04uUElOQ0gnLFxyXG4gIFBJTkNIX0VORCA9ICdJTlRFUkFDVElPTi5QSU5DSF9FTkQnLFxyXG4gIFJPVEFURSA9ICdJTlRFUkFDVElPTi5ST1RBVEUnLFxyXG4gIFJPVEFURV9FTkQgPSAnSU5URVJBQ1RJT04uUk9UQVRFX0VORCcsXHJcbn1cclxuXHJcbmFic3RyYWN0IGNsYXNzIENvbXBvbmVudE91dHB1dFJlc2VydmVkIHtcclxuICBkZWNsYXJlIG9iamVjdFJvb3Q6IFRIUkVFLk9iamVjdDNEIHwgbnVsbDtcclxuICBkZWNsYXJlIGNvbGxpZGVyOiBUSFJFRS5PYmplY3QzRCB8IG51bGw7XHJcbn1cclxuXHJcbi8vIEhhY2sgYXJvdW5kIHRoZSB0eXBlIHN5c3RlbSB0byBnZXQgYSBjbGVhbmVyIGludGVyZmFjZSBhcm91bmQgYENvbXBvbmVudE91dHB1dGBcclxuaW50ZXJmYWNlIENvbXBvbmVudE91dCBleHRlbmRzIERpY3Q8YW55PiB7IH1cclxuY2xhc3MgQ29tcG9uZW50T3V0IGV4dGVuZHMgQ29tcG9uZW50T3V0cHV0UmVzZXJ2ZWQgeyB9XHJcblxyXG4vKipcclxuICogQSBnZW5lcmFsLXVzZSBiYWcgb2YgcHJvcGVydGllcy5cclxuICogQXQgYSBtaW5pbXVtLCBpdCBoYXMgYG9iamVjdFJvb3RgIGFuZCBgY29sbGlkZXJgIGF1dG9tYXRpY2FsbHkgZGVmaW5lZC5cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbXBvbmVudE91dHB1dCA9IENvbXBvbmVudE91dDtcclxuXHJcbi8qKlxyXG4gKiBUaGUgY29udGV4dCBvZiBhIGNvbXBvbmVudCAoYXZhaWxhYmxlIGFzIGB0aGlzLmNvbnRleHRgKSBpbiBhIGBTY2VuZUNvbXBvbmVudGAgc3ViY2xhc3MuXHJcbiAqIEFjY2VzcyB0byB0aGUgcm9vdCBgSVNjZW5lTm9kZWAgYW5kIHRoZSBUSFJFRS5qcyBhcmUgYXZhaWxhYmxlLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgQ29tcG9uZW50Q29udGV4dCA9IHtcclxuICB0aHJlZTogdHlwZW9mIFRIUkVFO1xyXG4gIHJvb3Q6IElTY2VuZU5vZGU7XHJcbiAgcmVuZGVyZXI6IFRIUkVFLldlYkdMUmVuZGVyZXI7XHJcbiAgdXNlcjogRGljdDxhbnk+O1xyXG4gIHNjZW5lOiBTY2VuZTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIHJheWNhc3QgaW50ZXJzZWN0aW9uIHdpdGggYSBtZXNoXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBJbnRlcnNlY3QgPSB7XHJcbiAgcG9pbnQ6IFRIUkVFLlZlY3RvcjM7XHJcbiAgbm9ybWFsOiBUSFJFRS5WZWN0b3IzO1xyXG4gIGNvbGxpZGVyOiBUSFJFRS5PYmplY3QzRDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBBIHNweSB0aGF0IGNhbiBiZSBhdHRhY2hlZCB0byBhIGNvbXBvbmVudCB1c2luZyBgc3B5T25FdmVudGBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbXBvbmVudEV2ZW50U3B5PFQgPSB1bmtub3duPiB7XHJcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBzdHJpbmc7XHJcbiAgb25FdmVudChldmVudERhdGE/OiBUKTogdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIG9iamVjdCByZXNwb25zaWJsZSBmb3IgcmVtb3ZpbmcgYSBzcHkgZnJvbSBhIGNvbXBvbmVudCdzIGV2ZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElTdWJzY3JpcHRpb24ge1xyXG4gIGNhbmNlbCgpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElWZWN0b3IyIHtcclxuICB4OiBudW1iZXI7XHJcbiAgeTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElWZWN0b3IzIHtcclxuICB4OiBudW1iZXI7XHJcbiAgeTogbnVtYmVyO1xyXG4gIHo6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbiB7XHJcbiAgUFJJTUFSWSxcclxuICBNSURETEUsXHJcbiAgU0VDT05EQVJZLFxyXG4gIEJBQ0ssXHJcbiAgRk9SV0FSRCxcclxuICBDT1VOVCxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbk1hc2sge1xyXG4gIE5PTkUsXHJcbiAgUFJJTUFSWSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5QUklNQVJZLFxyXG4gIFNFQ09OREFSWSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5TRUNPTkRBUlksXHJcbiAgTUlERExFID0gMSA8PCBQb2ludGVyQnV0dG9uLk1JRERMRSxcclxuICBCQUNLID0gMSA8PCBQb2ludGVyQnV0dG9uLkJBQ0ssXHJcbiAgRk9SV0FSRCA9IDEgPDwgUG9pbnRlckJ1dHRvbi5GT1JXQVJELFxyXG4gIEFMTCA9ICgxIDw8IFBvaW50ZXJCdXR0b24uQ09VTlQpIC0gMSxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUG9pbnRlckRldmljZSB7XHJcbiAgTU9VU0UgPSAnbW91c2UnLFxyXG4gIFRPVUNIID0gJ3RvdWNoJyxcclxuICBQRU4gPSAncGVuJyxcclxuICBHQU1FUEFEID0gJ2dhbWVwYWQnLFxyXG59XHJcblxyXG4vKipcclxuICogRmlyZWQgb24gZXZlcnkgbW91c2UgZG93biwgcHJvdmlkZXMgY3VycmVudCBwb3NpdGlvbi9idXR0b25zIGRvd24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERyYWdCZWdpbkV2ZW50IHtcclxuICAvKiogQ3VycmVudCBwb3NpdGlvbiAqL1xyXG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcclxuICAvKiogQnV0dG9ucyBkb3duIGR1cmluZyBldmVudCAqL1xyXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xyXG59XHJcblxyXG4vKipcclxuICogRmlyZWQgb25seSBhZnRlciB0aGUgcG9pbnRlciBoYXMgbW92ZWQgZmFyIGVub3VnaCBmcm9tIERyYWdCZWdpbkV2ZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERyYWdFdmVudCB7XHJcbiAgLyoqIEN1cnJlbnQgcG9zaXRpb24gKi9cclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgLyoqIERlbHRhIG1vdmVkIHNpbmNlIGxhc3QgZHJhZyBldmVudCAqL1xyXG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcclxuICAvKiogQnV0dG9ucyBkb3duIGR1cmluZyBldmVudCAqL1xyXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xyXG59XHJcblxyXG4vKipcclxuICogRmlyZWQgb24gZXZlcnkgbW91c2UgdXAsIGluY2x1ZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIERyYWdCZWdpbiBhbmQgY3VycmVudCBwb3NpdGlvbnNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0VuZEV2ZW50IGV4dGVuZHMgRHJhZ0V2ZW50IHtcclxuICAvKiogZHVyYXRpb24gc2luY2UgbGFzdCBEcmFnRXZlbnQgKi9cclxuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xyXG5cclxuICAvKiogVGhlIGRlbHRhIGJldHdlZW4gcG9zaXRpb24sIGFuZCB0aGUgcG9zaXRpb24gZnJvbSBEcmFnQmVnaW5FdmVudCAqL1xyXG4gIHJlYWRvbmx5IGZ1bGxEZWx0YTogSVZlY3RvcjI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnRlck1vdmVFdmVudCB7XHJcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgYnV0dG9uczogUG9pbnRlckJ1dHRvbk1hc2s7XHJcbiAgcmVhZG9ubHkgZGV2aWNlOiBQb2ludGVyRGV2aWNlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50ZXJCdXR0b25FdmVudCB7XHJcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgYnV0dG9uOiBQb2ludGVyQnV0dG9uO1xyXG4gIHJlYWRvbmx5IGRvd246IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgZGV2aWNlOiBQb2ludGVyRGV2aWNlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbEV2ZW50IHtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgZGVsdGE6IElWZWN0b3IyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBLZXlTdGF0ZSB7XHJcbiAgRE9XTixcclxuICBQUkVTU0VELFxyXG4gIFVQLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBLZXlzIHtcclxuICBFU0NBUEUgPSAyNyxcclxuICBaRVJPID0gNDgsXHJcbiAgT05FID0gNDksXHJcbiAgVFdPID0gNTAsXHJcbiAgVEhSRUUgPSA1MSxcclxuICBGT1VSID0gNTIsXHJcbiAgRklWRSA9IDUzLFxyXG4gIFNJWCA9IDU0LFxyXG4gIFNFVkVOID0gNTUsXHJcbiAgRUlHSFQgPSA1NixcclxuICBOSU5FID0gNTcsXHJcbiAgTEVGVEFSUk9XID0gMzcsXHJcbiAgVVBBUlJPVyA9IDM4LFxyXG4gIFJJR0hUQVJST1cgPSAzOSxcclxuICBET1dOQVJST1cgPSA0MCxcclxuICBUQUIgPSA5LFxyXG4gIEEgPSA2NSxcclxuICBCID0gNjYsXHJcbiAgQyA9IDY3LFxyXG4gIEQgPSA2OCxcclxuICBFID0gNjksXHJcbiAgRiA9IDcwLFxyXG4gIEcgPSA3MSxcclxuICBIID0gNzIsXHJcbiAgSSA9IDczLFxyXG4gIEogPSA3NCxcclxuICBLID0gNzUsXHJcbiAgTCA9IDc2LFxyXG4gIE0gPSA3NyxcclxuICBOID0gNzgsXHJcbiAgTyA9IDc5LFxyXG4gIFAgPSA4MCxcclxuICBRID0gODEsXHJcbiAgUiA9IDgyLFxyXG4gIFMgPSA4MyxcclxuICBUID0gODQsXHJcbiAgVSA9IDg1LFxyXG4gIFYgPSA4NixcclxuICBXID0gODcsXHJcbiAgWCA9IDg4LFxyXG4gIFkgPSA4OSxcclxuICBaID0gOTAsXHJcbiAgU1BBQ0UgPSAzMixcclxuICBSRVRVUk4gPSAxMyxcclxuICBERUxFVEUgPSA0NixcclxuICBCQUNLU1BBQ0UgPSA4LFxyXG4gIFNFTUlDT0xPTiA9IDE4NixcclxuICBQTFVTRVFVQUxTID0gMTg3LFxyXG4gIERBU0hVTkRFUlNDT1JFID0gMTg5LFxyXG4gIE9QRU5CUkFDS0VUID0gMjE5LFxyXG4gIFNISUZUID0gMTYsXHJcbiAgQUxUID0gMTgsXHJcbiAgQ09OVFJPTCA9IDE3LFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEtleUV2ZW50IHtcclxuICBrZXk6IEtleXM7XHJcbiAgc3RhdGU6IEtleVN0YXRlO1xyXG4gIG1vZGlmaWVyczoge1xyXG4gICAgYWx0S2V5OiBib29sZWFuLFxyXG4gICAgc2hpZnRLZXk6IGJvb2xlYW4sXHJcbiAgICBjdHJsS2V5OiBib29sZWFuXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb25nUHJlc3NTdGFydEV2ZW50IHtcclxuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XHJcbiAgcmVhZG9ubHkgYnV0dG9uczogUG9pbnRlckJ1dHRvbk1hc2s7XHJcbiAgcmVhZG9ubHkgdGhyZXNob2xkOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9uZ1ByZXNzRW5kRXZlbnQgeyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU3dpcGVFdmVudCB7XHJcbiAgcmVhZG9ubHkgcG9pbnRlckNvdW50OiBudW1iZXI7XHJcbiAgcmVhZG9ubHkgcG9zaXRpb246IElWZWN0b3IyO1xyXG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVN3aXBlRW5kRXZlbnQgZXh0ZW5kcyBNdWx0aVN3aXBlRXZlbnQge1xyXG4gIHJlYWRvbmx5IHRpbWVTaW5jZUxhc3RNb3ZlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGluY2hFdmVudCB7XHJcbiAgcmVhZG9ubHkgcGluY2hEZWx0YTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBpbmNoRW5kRXZlbnQgZXh0ZW5kcyBQaW5jaEV2ZW50IHtcclxuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUV2ZW50IHtcclxuICByZWFkb25seSByb3RhdGVEZWx0YTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUVuZEV2ZW50IGV4dGVuZHMgUm90YXRlRXZlbnQge1xyXG4gIHJlYWRvbmx5IHRpbWVTaW5jZUxhc3RNb3ZlOiBudW1iZXI7XHJcbn1cclxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVDb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUNILE1BQWUscUJBQXFCO0NBcURuQztBQUVELE1BQU0sT0FBZ0IsY0FBZSxTQUFRLHFCQUFxQjtJQUNoRTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFhO0lBa0NuQjs7O09BR0c7SUFDSCxLQUFLLENBQTJCO0NBTWpDO0FBc0REOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksd0JBcUJYO0FBckJELFdBQVksd0JBQXdCO0lBQ2xDLG1CQUFtQjtJQUNuQix1REFBMkIsQ0FBQTtJQUMzQixtQkFBbUI7SUFDbkIsdURBQTJCLENBQUE7SUFDM0Isd0NBQXdDO0lBQ3hDLHFEQUF5QixDQUFBO0lBQ3pCLGlFQUFxQyxDQUFBO0lBQ3JDLDZEQUFpQyxDQUFBO0lBQ2pDLHFFQUF5QyxDQUFBO0lBQ3pDLHlFQUE2QyxDQUFBO0lBQzdDLHlEQUE2QixDQUFBO0lBQzdCLG1EQUF1QixDQUFBO0lBQ3ZCLDZFQUFpRCxDQUFBO0lBQ2pELHlFQUE2QyxDQUFBO0lBQzdDLG1FQUF1QyxDQUFBO0lBQ3ZDLDJFQUErQyxDQUFBO0lBQy9DLHVEQUEyQixDQUFBO0lBQzNCLCtEQUFtQyxDQUFBO0lBQ25DLHlEQUE2QixDQUFBO0lBQzdCLGlFQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFyQlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQXFCbkM7QUFFRCxNQUFlLHVCQUF1QjtDQUdyQztBQUlELE1BQU0sWUFBYSxTQUFRLHVCQUF1QjtDQUFJO0FBdUR0RCxNQUFNLENBQU4sSUFBWSxhQU9YO0FBUEQsV0FBWSxhQUFhO0lBQ3ZCLHVEQUFPLENBQUE7SUFDUCxxREFBTSxDQUFBO0lBQ04sMkRBQVMsQ0FBQTtJQUNULGlEQUFJLENBQUE7SUFDSix1REFBTyxDQUFBO0lBQ1AsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFQVyxhQUFhLEtBQWIsYUFBYSxRQU94QjtBQUVELE1BQU0sQ0FBTixJQUFZLGlCQVFYO0FBUkQsV0FBWSxpQkFBaUI7SUFDM0IseURBQUksQ0FBQTtJQUNKLCtEQUFvQyxDQUFBO0lBQ3BDLG1FQUF3QyxDQUFBO0lBQ3hDLDZEQUFrQyxDQUFBO0lBQ2xDLHlEQUE4QixDQUFBO0lBQzlCLGdFQUFvQyxDQUFBO0lBQ3BDLHdEQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFSVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBUTVCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2QixnQ0FBZSxDQUFBO0lBQ2YsZ0NBQWUsQ0FBQTtJQUNmLDRCQUFXLENBQUE7SUFDWCxvQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUF1REQsTUFBTSxDQUFOLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQix1Q0FBSSxDQUFBO0lBQ0osNkNBQU8sQ0FBQTtJQUNQLG1DQUFFLENBQUE7QUFDSixDQUFDLEVBSlcsUUFBUSxLQUFSLFFBQVEsUUFJbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxJQXNEWDtBQXRERCxXQUFZLElBQUk7SUFDZCxvQ0FBVyxDQUFBO0lBQ1gsZ0NBQVMsQ0FBQTtJQUNULDhCQUFRLENBQUE7SUFDUiw4QkFBUSxDQUFBO0lBQ1Isa0NBQVUsQ0FBQTtJQUNWLGdDQUFTLENBQUE7SUFDVCxnQ0FBUyxDQUFBO0lBQ1QsOEJBQVEsQ0FBQTtJQUNSLGtDQUFVLENBQUE7SUFDVixrQ0FBVSxDQUFBO0lBQ1YsZ0NBQVMsQ0FBQTtJQUNULDBDQUFjLENBQUE7SUFDZCxzQ0FBWSxDQUFBO0lBQ1osNENBQWUsQ0FBQTtJQUNmLDBDQUFjLENBQUE7SUFDZCw2QkFBTyxDQUFBO0lBQ1AsMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTiwwQkFBTSxDQUFBO0lBQ04sMEJBQU0sQ0FBQTtJQUNOLDBCQUFNLENBQUE7SUFDTixrQ0FBVSxDQUFBO0lBQ1Ysb0NBQVcsQ0FBQTtJQUNYLG9DQUFXLENBQUE7SUFDWCx5Q0FBYSxDQUFBO0lBQ2IsMkNBQWUsQ0FBQTtJQUNmLDZDQUFnQixDQUFBO0lBQ2hCLHFEQUFvQixDQUFBO0lBQ3BCLCtDQUFpQixDQUFBO0lBQ2pCLGtDQUFVLENBQUE7SUFDViw4QkFBUSxDQUFBO0lBQ1Isc0NBQVksQ0FBQTtBQUNkLENBQUMsRUF0RFcsSUFBSSxLQUFKLElBQUksUUFzRGYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVEhSRUUsIHsgU2NlbmUgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgRGljdCA9IE5vZGVKUy5EaWN0O1xuXG4vKipcbiAqIFRoZSBiYXNlIG9mIGFsbCBgU2NlbmVDb21wb25lbnRgIGNyZWF0ZWQgd2l0aCB0aGUgc2RrLlxuICogQWxsIHByb3BlcnRpZXMgb2YgdGhpcyBjbGFzcyBhcmUgYWx3YXlzIGF2YWlsYWJsZSB0byBhbGwgY29tcG9uZW50cyBnZW5lcmF0ZWQgdGhyb3VnaCB0aGUgc2RrLlxuICogVGhlc2UgcHJvcGVydGllcyBzaG91bGQgYWxsIGJlIGNvbnNpZGVyZWQgcmVzZXJ2ZWQgYW5kIHNob3VsZCBub3QgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIHN1YmNsYXNzLlxuICovXG5hYnN0cmFjdCBjbGFzcyBTY2VuZUNvbXBvbmVudFByaXZhdGUge1xuICAvKipcbiAgICogQHJlc2VydmVkXG4gICAqIFRoZSBuYW1lIHJlZ2lzdGVyZWQgdG8gdGhlIGZhY3RvcnkgdXNlZCB0byBnZW5lcmF0ZSB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIGRlY2xhcmUgcmVhZG9ubHkgY29tcG9uZW50VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIHByb3BlcnRpZXMgdGhhdCB0aGlzIGNvbXBvbmVudCBjb21wdXRlcy4gRXZlcnkgY29tcG9uZW50IGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBgb3V0cHV0cy5jb2xsaWRlcmAgYW5kIGBvdXRwdXRzLm9iamVjdFJvb3RgLlxuICAgKiBUaGlzIGRpY3Rpb25hcnkgaXMgb2JzZXJ2YWJsZSBhbmQgY2FuIGJlIHRoZSBzb3VyY2Ugb2YgYSBiaW5kIHRhcmdldC5cbiAgICpcbiAgICovXG4gIGRlY2xhcmUgb3V0cHV0czogQ29tcG9uZW50T3V0cHV0O1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgaGFuZGxlZCBieSB0aGlzIGNvbXBvbmVudCdzIGBvbkV2ZW50YC4gRXZlcnkgY29tcG9uZW50IGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBhbGwgb2YgdGhlIGBJbnRlcmFjdGlvblNlbGVjdGlvbmAga2V5czpcbiAgICogIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uQ0xJQ0tdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUl1gLCBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkRSQUddYFxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxuICAgKi9cbiAgZGVjbGFyZSBldmVudHM6IERpY3Q8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIEByZXNlcnZlZFxuICAgKiBUaGUgY29udGV4dCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgZnJhbWV3b3JrLCBlLmcuIFRIUkVFLmpzLlxuICAgKi9cbiAgZGVjbGFyZSBjb250ZXh0OiBDb21wb25lbnRDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQmluZHMgYHRoaXNbcHJvcF1gIHRvIHRoZSBvdXRwdXQgb2YgYHNyY1tzcmNQcm9wXWAuXG4gICAqIFdoZW4gdGhlIHZhbHVlIG9mIGBzcmNbc3JjUHJvcF1gIGNoYW5nZXMsIHRoZSB2YWx1ZSBpcyBwcm9wYWdhdGVkIGFuZCBzZXRzIGB0aGlzW3Byb3BdYCB0byB0aGUgc2FtZSB2YWx1ZSBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgZGVjbGFyZSBiaW5kOiAocHJvcDogc3RyaW5nLCBzcmM6IFNjZW5lQ29tcG9uZW50WydvdXRwdXRzJyB8ICdpbnB1dHMnXSwgc3JjUHJvcDoga2V5b2YgU2NlbmVDb21wb25lbnRbJ291dHB1dHMnIHwgJ2lucHV0cyddKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogTm90aWZpZXMgdGhpcyBjb21wb25lbnQgb2YgYW4gYGV2ZW50VHlwZWAgd2hlbiB0aGUgYHNyY2AgQ29tcG9uZW50IGNhbGxzIGBub3RpZnlgIHdpdGggYSBgc3JjRXZlbnRUeXBlYCBldmVudFxuICAgKi9cbiAgZGVjbGFyZSBiaW5kRXZlbnQ6IChldmVudFR5cGU6IHN0cmluZywgc3JjOiBTY2VuZUNvbXBvbmVudCwgc3JjRXZlbnRUeXBlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEByZXNlcnZlZFxuICAgKiBOb3RpZmllcyBhbnkgZXZlbnQgYmluZGluZ3Mgb2YgYW4gZXZlbnQgd2l0aCBgZXZlbnRUeXBlYCBhbmQgZGF0YSBgZXZlbnREYXRhYFxuICAgKi9cbiAgZGVjbGFyZSBub3RpZnk6IChldmVudFR5cGU6IHN0cmluZywgZXZlbnREYXRhPzogdW5rbm93bikgPT4gdm9pZDtcblxuICAvKipcbiAgICogQHJlc2VydmVkXG4gICAqIFNweSBvbiBhIGNvbXBvbmVudCdzIG5vdGlmeSBmcm9tIG91dHNpZGUgb2YgdGhlIGNvbXBvbmVudCBzeXN0ZW1cbiAgICovXG4gIGRlY2xhcmUgc3B5T25FdmVudDogKHNweTogSUNvbXBvbmVudEV2ZW50U3B5KSA9PiBJU3Vic2NyaXB0aW9uO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2NlbmVDb21wb25lbnQgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudFByaXZhdGUge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzIHRoYXQgYWZmZWN0cyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNvbXBvbmVudC5cbiAgICogVGhlIHByb3BlcnRpZXMgY2FuIGJlIGNoYW5nZWQgYnkgYW4gZXh0ZXJuYWwgc291cmNlIGF0IGFueSB0aW1lLiBJdCBpcyB1cCB0byB0aGUgY29tcG9uZW50IHRvIHJlc3BvbmQgYXBwcm9wcmlhdGVseSB0byB0aGUgY2hhbmdlcy5cbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgY2FuIGFsc28gYmUgYmluZCB0YXJnZXRzIHRvIGFub3RoZXIgb2JzZXJ2YWJsZSBzb3VyY2UsIGUuZy4gdGhlIG91dHB1dCBwcm9wZXJ0eSBvZiBhbm90aGVyIGNvbXBvbmVudC5cbiAgICovXG4gIGlucHV0cz86IERpY3Q8YW55PjtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBjYWxsZWQgb25jZSBhZnRlciB0aGUgc2NlbmUgbm9kZSBpdHMgYXR0YWNoZWQgdG8gaGFzIHN0YXJ0ZWQuXG4gICAqL1xuICBvbkluaXQ/KCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIGF0IG1vc3Qgb25jZSBwZXIgZnJhbWUgd2hlbiB0aGVyZSBhcmUgZXZlbnRzIG9uIHRoaXMgY29tcG9uZW50LlxuICAgKiBBbnkgb2YgdGhlIGludGVyYWN0aW9uIHR5cGVzIHNwZWNpZmllZCBpbiBgdGhpcy5pbnRlcmFjdGlvbnNgIG9yIGEgY2FsbCB0byBub3RpZnkgZm9yIGEgYm91bmQgZXZlbnQgd2lsbCB0cmlnZ2VyIHRoaXMgZXZlbnQuXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgQ29tcG9uZW50SW50ZXJhY3Rpb25UeXBlfSBldmVudFR5cGUgVGhlIGV2ZW50IHR5cGVcbiAgICogQHByb3BlcnR5IHt1bmtub3dufSBldmVudERhdGEgVGhlIGRhdGEgcGF5bG9hZCBvZiB0aGUgZXZlbnRcbiAgICovXG4gIG9uRXZlbnQ/KGV2ZW50VHlwZTogc3RyaW5nLCBldmVudERhdGE6IHVua25vd24pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhbiBpbnB1dCBwcm9wZXJ0eSBoYXMgY2hhbmdlZC5cbiAgICogSXQgd2lsbCBiZSBjYWxsZWQgYXQgbW9zdCBvbmNlIGEgZnJhbWUuXG4gICAqL1xuICBvbklucHV0c1VwZGF0ZWQ/KHByZXZpb3VzSW5wdXRzOiB0aGlzWydpbnB1dHMnXSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIG9uY2UgYSBmcmFtZSBhZnRlciBpbnB1dCBjaGFuZ2VzIGhhdmUgYmVlbiBkZXRlY3RlZC5cbiAgICovXG4gIG9uVGljaz8odGlja0RlbHRhOiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgaGFuZGxlZCBieSB0aGlzIGNvbXBvbmVudCdzIGBvbkV2ZW50YC4gRXZlcnkgY29tcG9uZW50IGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBhbGwgb2YgdGhlIGBJbnRlcmFjdGlvblNlbGVjdGlvbmAga2V5czpcbiAgICogIGBldmVudHNbSW50ZXJhY3Rpb25TZWxlY3Rpb24uQ0xJQ0tdYCwgYGV2ZW50c1tJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUl1gLCBgZXZlbnRzW0ludGVyYWN0aW9uU2VsZWN0aW9uLkRSQUddYFxuICAgKiBOb3RlOiByZWdpc3RlcmluZyB0byByZWNlaXZlIGBJbnRlcmFjdGlvblNlbGVjdGlvbi5IT1ZFUmAgd2lsbCBwcm9kdWNlIGJvdGggYEludGVyYWN0aW9uVHlwZS5IT1ZFUmAgYW5kIGBJbnRlcmFjdGlvblR5cGUuVU5IT1ZFUmAgaW4gYG9uRXZlbnRgLlxuICAgKi9cbiAgZGVjbGFyZSBldmVudHM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBAcmVzZXJ2ZWRcbiAgICogQSBkaWN0aW9uYXJ5IG9mIGV2ZW50cyB0aGF0IHdpbGwgYmUgZW1pdHRlZCBieSB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIGVtaXRzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgY2FsbGVkIG9uY2UgcmlnaHQgYmVmb3JlIHRoZSBzY2VuZSBub2RlIGhhcyBzdG9wcGVkLlxuICAgKi9cbiAgb25EZXN0cm95PygpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgbm9kZSBvZiBhIHNjZW5lIGdyYXBoLlxuICogQWdncmVnYXRlcyBgU2NlbmVDb21wb25lbnRgIGFzIGNoaWxkcmVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTY2VuZU5vZGUge1xuICAvKipcbiAgICogQSBodW1hbiByZWFkYWJsZSBuYW1lIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIG5vZGUuXG4gICAqIFRoZSBwb3NpdGlvbiwgcXVhdGVybmlvbiwgc2NhbGUgdHJhbnNmb3JtcyBhcmUgYXBwbGllZCBpbiBzY2FsZSwgcXVhdGVybmlvbiwgdGhlbiBzY2FsZSBvcmRlci4gKHNhbWUgYXMgVEhSRUUuanMpXG4gICAqL1xuICByZWFkb25seSBwb3NpdGlvbjogVEhSRUUuVmVjdG9yMztcblxuICAvKipcbiAgICogVGhlIG9yaWVudGF0aW9uIG9mIHRoZSBub2RlLlxuICAgKiBUaGUgcG9zaXRpb24sIHF1YXRlcm5pb24sIHNjYWxlIHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQgaW4gc2NhbGUsIHF1YXRlcm5pb24sIHRoZW4gc2NhbGUgb3JkZXIuIChzYW1lIGFzIFRIUkVFLmpzKVxuICAgKi9cbiAgcmVhZG9ubHkgcXVhdGVybmlvbjogVEhSRUUuUXVhdGVybmlvbjtcblxuICAvKipcbiAgICogVGhlIHNjYWxlIG9mIHRoZSBub2RlLlxuICAgKiBUaGUgcG9zaXRpb24sIHF1YXRlcm5pb24sIHNjYWxlIHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQgaW4gc2NhbGUsIHF1YXRlcm5pb24sIHRoZW4gc2NhbGUgb3JkZXIuIChzYW1lIGFzIFRIUkVFLmpzKVxuICAgKi9cbiAgcmVhZG9ubHkgc2NhbGU6IFRIUkVFLlZlY3RvcjM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbmQgYWRkIGEgY2hpbGQgY29tcG9uZW50IHRvIHRoaXMgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIGZhY3RvcnkgVGhlIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBmYWN0b3J5IHRvIGdlbmVyYXRlIGEgYFNjZW5lQ29tcG9uZW50YFxuICAgKiBAcGFyYW0gaW5pdGlhbElucHV0cyBBbiBpbml0aWFsIHNldCBvZiBpbnB1dHMsIGltbWVkaWF0ZWx5IGF2YWlsYWJsZSB0byB0aGUgbmV3bHkgY3JlYXRlIGBTY2VuZUNvbXBvbmVudC5vbkluaXRgXG4gICAqL1xuICBhZGRDb21wb25lbnQoZmFjdG9yeTogc3RyaW5nLCBpbml0aWFsSW5wdXRzPzogU2NlbmVDb21wb25lbnRbJ2lucHV0cyddKTogU2NlbmVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIEFuIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgY29tcG9uZW50cyBhZGRlZCB0byB0aGlzIG5vZGUgdXNpbmcgYSBmb3Itb2YgbG9vcC5cbiAgICovXG4gIGNvbXBvbmVudEl0ZXJhdG9yKCk6IEl0ZXJhYmxlSXRlcmF0b3I8U2NlbmVDb21wb25lbnQ+O1xuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgbm9kZSBhbmQgaXRzIGNvbXBvbmVudHMuXG4gICAqL1xuICBzdGFydCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTdG9wIHRoZSBub2RlIGFuZCBpdHMgY29tcG9uZW50cy5cbiAgICovXG4gIHN0b3AoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgdHlwZXMgb2YgdGhlIEludGVyYWN0aW9uIGV2ZW50cyByZWNlaXZlZCBmcm9tIHRoZSByZWdpc3RlcmVkIGBJbnRlcmFjdGlvblNlbGVjdGlvbmBcbiAqL1xuZXhwb3J0IGVudW0gQ29tcG9uZW50SW50ZXJhY3Rpb25UeXBlIHtcbiAgLyoqIENMSUNLIGV2ZW50cyAqL1xuICBDTElDSyA9ICdJTlRFUkFDVElPTi5DTElDSycsXG4gIC8qKiBIT1ZFUiBldmVudHMgKi9cbiAgSE9WRVIgPSAnSU5URVJBQ1RJT04uSE9WRVInLFxuICAvKiogRFJBRyBldmVudHMgKG1vdXNlZG93biB0aGVuIG1vdmUpICovXG4gIERSQUcgPSAnSU5URVJBQ1RJT04uRFJBRycsXG4gIERSQUdfQkVHSU4gPSAnSU5URVJBQ1RJT04uRFJBR19CRUdJTicsXG4gIERSQUdfRU5EID0gJ0lOVEVSQUNUSU9OLkRSQUdfRU5EJyxcbiAgUE9JTlRFUl9NT1ZFID0gJ0lOVEVSQUNUSU9OLlBPSU5URVJfTU9WRScsXG4gIFBPSU5URVJfQlVUVE9OID0gJ0lOVEVSQUNUSU9OLlBPSU5URVJfQlVUVE9OJyxcbiAgU0NST0xMID0gJ0lOVEVSQUNUSU9OLlNDUk9MTCcsXG4gIEtFWSA9ICdJTlRFUkFDVElPTi5LRVknLFxuICBMT05HX1BSRVNTX1NUQVJUID0gJ0lOVEVSQUNUSU9OLkxPTkdfUFJFU1NfU1RBUlQnLFxuICBMT05HX1BSRVNTX0VORCA9ICdJTlRFUkFDVElPTi5MT05HX1BSRVNTX0VORCcsXG4gIE1VTFRJX1NXSVBFID0gJ0lOVEVSQUNUSU9OLk1VTFRJX1NXSVBFJyxcbiAgTVVMVElfU1dJUEVfRU5EID0gJ0lOVEVSQUNUSU9OLk1VTFRJX1NXSVBFX0VORCcsXG4gIFBJTkNIID0gJ0lOVEVSQUNUSU9OLlBJTkNIJyxcbiAgUElOQ0hfRU5EID0gJ0lOVEVSQUNUSU9OLlBJTkNIX0VORCcsXG4gIFJPVEFURSA9ICdJTlRFUkFDVElPTi5ST1RBVEUnLFxuICBST1RBVEVfRU5EID0gJ0lOVEVSQUNUSU9OLlJPVEFURV9FTkQnLFxufVxuXG5hYnN0cmFjdCBjbGFzcyBDb21wb25lbnRPdXRwdXRSZXNlcnZlZCB7XG4gIGRlY2xhcmUgb2JqZWN0Um9vdDogVEhSRUUuT2JqZWN0M0QgfCBudWxsO1xuICBkZWNsYXJlIGNvbGxpZGVyOiBUSFJFRS5PYmplY3QzRCB8IG51bGw7XG59XG5cbi8vIEhhY2sgYXJvdW5kIHRoZSB0eXBlIHN5c3RlbSB0byBnZXQgYSBjbGVhbmVyIGludGVyZmFjZSBhcm91bmQgYENvbXBvbmVudE91dHB1dGBcbmludGVyZmFjZSBDb21wb25lbnRPdXQgZXh0ZW5kcyBEaWN0PGFueT4geyB9XG5jbGFzcyBDb21wb25lbnRPdXQgZXh0ZW5kcyBDb21wb25lbnRPdXRwdXRSZXNlcnZlZCB7IH1cblxuLyoqXG4gKiBBIGdlbmVyYWwtdXNlIGJhZyBvZiBwcm9wZXJ0aWVzLlxuICogQXQgYSBtaW5pbXVtLCBpdCBoYXMgYG9iamVjdFJvb3RgIGFuZCBgY29sbGlkZXJgIGF1dG9tYXRpY2FsbHkgZGVmaW5lZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50T3V0cHV0ID0gQ29tcG9uZW50T3V0O1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IG9mIGEgY29tcG9uZW50IChhdmFpbGFibGUgYXMgYHRoaXMuY29udGV4dGApIGluIGEgYFNjZW5lQ29tcG9uZW50YCBzdWJjbGFzcy5cbiAqIEFjY2VzcyB0byB0aGUgcm9vdCBgSVNjZW5lTm9kZWAgYW5kIHRoZSBUSFJFRS5qcyBhcmUgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgdHlwZSBDb21wb25lbnRDb250ZXh0ID0ge1xuICB0aHJlZTogdHlwZW9mIFRIUkVFO1xuICByb290OiBJU2NlbmVOb2RlO1xuICByZW5kZXJlcjogVEhSRUUuV2ViR0xSZW5kZXJlcjtcbiAgdXNlcjogRGljdDxhbnk+O1xuICBzY2VuZTogU2NlbmU7XG59O1xuXG4vKipcbiAqIEEgcmF5Y2FzdCBpbnRlcnNlY3Rpb24gd2l0aCBhIG1lc2hcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJzZWN0ID0ge1xuICBwb2ludDogVEhSRUUuVmVjdG9yMztcbiAgbm9ybWFsOiBUSFJFRS5WZWN0b3IzO1xuICBjb2xsaWRlcjogVEhSRUUuT2JqZWN0M0Q7XG59O1xuXG4vKipcbiAqIEEgc3B5IHRoYXQgY2FuIGJlIGF0dGFjaGVkIHRvIGEgY29tcG9uZW50IHVzaW5nIGBzcHlPbkV2ZW50YFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb21wb25lbnRFdmVudFNweTxUID0gdW5rbm93bj4ge1xuICByZWFkb25seSBldmVudFR5cGU6IHN0cmluZztcbiAgb25FdmVudChldmVudERhdGE/OiBUKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBvYmplY3QgcmVzcG9uc2libGUgZm9yIHJlbW92aW5nIGEgc3B5IGZyb20gYSBjb21wb25lbnQncyBldmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdWJzY3JpcHRpb24ge1xuICBjYW5jZWwoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmVjdG9yMiB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWZWN0b3IzIHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHo6IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbiB7XG4gIFBSSU1BUlksXG4gIE1JRERMRSxcbiAgU0VDT05EQVJZLFxuICBCQUNLLFxuICBGT1JXQVJELFxuICBDT1VOVCxcbn1cblxuZXhwb3J0IGVudW0gUG9pbnRlckJ1dHRvbk1hc2sge1xuICBOT05FLFxuICBQUklNQVJZID0gMSA8PCBQb2ludGVyQnV0dG9uLlBSSU1BUlksXG4gIFNFQ09OREFSWSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5TRUNPTkRBUlksXG4gIE1JRERMRSA9IDEgPDwgUG9pbnRlckJ1dHRvbi5NSURETEUsXG4gIEJBQ0sgPSAxIDw8IFBvaW50ZXJCdXR0b24uQkFDSyxcbiAgRk9SV0FSRCA9IDEgPDwgUG9pbnRlckJ1dHRvbi5GT1JXQVJELFxuICBBTEwgPSAoMSA8PCBQb2ludGVyQnV0dG9uLkNPVU5UKSAtIDEsXG59XG5cbmV4cG9ydCBlbnVtIFBvaW50ZXJEZXZpY2Uge1xuICBNT1VTRSA9ICdtb3VzZScsXG4gIFRPVUNIID0gJ3RvdWNoJyxcbiAgUEVOID0gJ3BlbicsXG4gIEdBTUVQQUQgPSAnZ2FtZXBhZCcsXG59XG5cbi8qKlxuICogRmlyZWQgb24gZXZlcnkgbW91c2UgZG93biwgcHJvdmlkZXMgY3VycmVudCBwb3NpdGlvbi9idXR0b25zIGRvd24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0JlZ2luRXZlbnQge1xuICAvKiogQ3VycmVudCBwb3NpdGlvbiAqL1xuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XG4gIC8qKiBCdXR0b25zIGRvd24gZHVyaW5nIGV2ZW50ICovXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xufVxuXG4vKipcbiAqIEZpcmVkIG9ubHkgYWZ0ZXIgdGhlIHBvaW50ZXIgaGFzIG1vdmVkIGZhciBlbm91Z2ggZnJvbSBEcmFnQmVnaW5FdmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyYWdFdmVudCB7XG4gIC8qKiBDdXJyZW50IHBvc2l0aW9uICovXG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcbiAgLyoqIERlbHRhIG1vdmVkIHNpbmNlIGxhc3QgZHJhZyBldmVudCAqL1xuICByZWFkb25seSBkZWx0YTogSVZlY3RvcjI7XG4gIC8qKiBCdXR0b25zIGRvd24gZHVyaW5nIGV2ZW50ICovXG4gIHJlYWRvbmx5IGJ1dHRvbnM6IFBvaW50ZXJCdXR0b25NYXNrO1xufVxuXG4vKipcbiAqIEZpcmVkIG9uIGV2ZXJ5IG1vdXNlIHVwLCBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBEcmFnQmVnaW4gYW5kIGN1cnJlbnQgcG9zaXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0VuZEV2ZW50IGV4dGVuZHMgRHJhZ0V2ZW50IHtcbiAgLyoqIGR1cmF0aW9uIHNpbmNlIGxhc3QgRHJhZ0V2ZW50ICovXG4gIHJlYWRvbmx5IHRpbWVTaW5jZUxhc3RNb3ZlOiBudW1iZXI7XG5cbiAgLyoqIFRoZSBkZWx0YSBiZXR3ZWVuIHBvc2l0aW9uLCBhbmQgdGhlIHBvc2l0aW9uIGZyb20gRHJhZ0JlZ2luRXZlbnQgKi9cbiAgcmVhZG9ubHkgZnVsbERlbHRhOiBJVmVjdG9yMjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2ludGVyTW92ZUV2ZW50IHtcbiAgcmVhZG9ubHkgaWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgcG9zaXRpb246IElWZWN0b3IyO1xuICByZWFkb25seSBidXR0b25zOiBQb2ludGVyQnV0dG9uTWFzaztcbiAgcmVhZG9ubHkgZGV2aWNlOiBQb2ludGVyRGV2aWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50ZXJCdXR0b25FdmVudCB7XG4gIHJlYWRvbmx5IGlkOiBudW1iZXI7XG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcbiAgcmVhZG9ubHkgYnV0dG9uOiBQb2ludGVyQnV0dG9uO1xuICByZWFkb25seSBkb3duOiBib29sZWFuO1xuICByZWFkb25seSBkZXZpY2U6IFBvaW50ZXJEZXZpY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsRXZlbnQge1xuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcbn1cblxuZXhwb3J0IGVudW0gS2V5U3RhdGUge1xuICBET1dOLFxuICBQUkVTU0VELFxuICBVUCxcbn1cblxuZXhwb3J0IGVudW0gS2V5cyB7XG4gIEVTQ0FQRSA9IDI3LFxuICBaRVJPID0gNDgsXG4gIE9ORSA9IDQ5LFxuICBUV08gPSA1MCxcbiAgVEhSRUUgPSA1MSxcbiAgRk9VUiA9IDUyLFxuICBGSVZFID0gNTMsXG4gIFNJWCA9IDU0LFxuICBTRVZFTiA9IDU1LFxuICBFSUdIVCA9IDU2LFxuICBOSU5FID0gNTcsXG4gIExFRlRBUlJPVyA9IDM3LFxuICBVUEFSUk9XID0gMzgsXG4gIFJJR0hUQVJST1cgPSAzOSxcbiAgRE9XTkFSUk9XID0gNDAsXG4gIFRBQiA9IDksXG4gIEEgPSA2NSxcbiAgQiA9IDY2LFxuICBDID0gNjcsXG4gIEQgPSA2OCxcbiAgRSA9IDY5LFxuICBGID0gNzAsXG4gIEcgPSA3MSxcbiAgSCA9IDcyLFxuICBJID0gNzMsXG4gIEogPSA3NCxcbiAgSyA9IDc1LFxuICBMID0gNzYsXG4gIE0gPSA3NyxcbiAgTiA9IDc4LFxuICBPID0gNzksXG4gIFAgPSA4MCxcbiAgUSA9IDgxLFxuICBSID0gODIsXG4gIFMgPSA4MyxcbiAgVCA9IDg0LFxuICBVID0gODUsXG4gIFYgPSA4NixcbiAgVyA9IDg3LFxuICBYID0gODgsXG4gIFkgPSA4OSxcbiAgWiA9IDkwLFxuICBTUEFDRSA9IDMyLFxuICBSRVRVUk4gPSAxMyxcbiAgREVMRVRFID0gNDYsXG4gIEJBQ0tTUEFDRSA9IDgsXG4gIFNFTUlDT0xPTiA9IDE4NixcbiAgUExVU0VRVUFMUyA9IDE4NyxcbiAgREFTSFVOREVSU0NPUkUgPSAxODksXG4gIE9QRU5CUkFDS0VUID0gMjE5LFxuICBTSElGVCA9IDE2LFxuICBBTFQgPSAxOCxcbiAgQ09OVFJPTCA9IDE3LFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleUV2ZW50IHtcbiAga2V5OiBLZXlzO1xuICBzdGF0ZTogS2V5U3RhdGU7XG4gIG1vZGlmaWVyczoge1xuICAgIGFsdEtleTogYm9vbGVhbixcbiAgICBzaGlmdEtleTogYm9vbGVhbixcbiAgICBjdHJsS2V5OiBib29sZWFuXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9uZ1ByZXNzU3RhcnRFdmVudCB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uOiBJVmVjdG9yMjtcbiAgcmVhZG9ubHkgYnV0dG9uczogUG9pbnRlckJ1dHRvbk1hc2s7XG4gIHJlYWRvbmx5IHRocmVzaG9sZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvbmdQcmVzc0VuZEV2ZW50IHsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU3dpcGVFdmVudCB7XG4gIHJlYWRvbmx5IHBvaW50ZXJDb3VudDogbnVtYmVyO1xuICByZWFkb25seSBwb3NpdGlvbjogSVZlY3RvcjI7XG4gIHJlYWRvbmx5IGRlbHRhOiBJVmVjdG9yMjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVN3aXBlRW5kRXZlbnQgZXh0ZW5kcyBNdWx0aVN3aXBlRXZlbnQge1xuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpbmNoRXZlbnQge1xuICByZWFkb25seSBwaW5jaERlbHRhOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGluY2hFbmRFdmVudCBleHRlbmRzIFBpbmNoRXZlbnQge1xuICByZWFkb25seSB0aW1lU2luY2VMYXN0TW92ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUV2ZW50IHtcbiAgcmVhZG9ubHkgcm90YXRlRGVsdGE6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3RhdGVFbmRFdmVudCBleHRlbmRzIFJvdGF0ZUV2ZW50IHtcbiAgcmVhZG9ubHkgdGltZVNpbmNlTGFzdE1vdmU6IG51bWJlcjtcbn1cbiJdfQ==
|