angular-three 2.0.0-beta.31 → 2.0.0-beta.310
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 +221 -4
- package/esm2022/index.mjs +13 -13
- package/esm2022/lib/canvas.mjs +128 -200
- package/esm2022/lib/directives/args.mjs +46 -20
- package/esm2022/lib/directives/selection.mjs +65 -0
- package/esm2022/lib/dom/events.mjs +2 -2
- package/esm2022/lib/events.mjs +33 -31
- package/esm2022/lib/html.mjs +40 -0
- package/esm2022/lib/instance.mjs +43 -36
- package/esm2022/lib/loader.mjs +62 -31
- package/esm2022/lib/loop.mjs +28 -25
- package/esm2022/lib/pipes/hexify.mjs +67 -0
- package/esm2022/lib/portal.mjs +173 -193
- package/esm2022/lib/renderer/catalogue.mjs +2 -2
- package/esm2022/lib/renderer/constants.mjs +5 -6
- package/esm2022/lib/renderer/index.mjs +387 -234
- package/esm2022/lib/renderer/state.mjs +49 -0
- package/esm2022/lib/renderer/utils.mjs +107 -95
- package/esm2022/lib/roots.mjs +85 -61
- package/esm2022/lib/routed-scene.mjs +6 -7
- package/esm2022/lib/store.mjs +170 -194
- package/esm2022/lib/three-types.mjs +2 -2
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +24 -28
- package/esm2022/lib/utils/attach.mjs +12 -9
- package/esm2022/lib/utils/before-render.mjs +12 -0
- package/esm2022/lib/utils/is.mjs +6 -5
- package/esm2022/lib/utils/make.mjs +19 -17
- package/esm2022/lib/utils/non-nullish.mjs +7 -0
- package/esm2022/lib/utils/object-events.mjs +92 -0
- package/esm2022/lib/utils/parameters.mjs +70 -0
- package/esm2022/lib/utils/resolve-ref.mjs +8 -0
- package/esm2022/lib/utils/signal-store.mjs +52 -58
- package/esm2022/lib/utils/update.mjs +8 -4
- package/esm2022/testing/angular-three-testing.mjs +5 -0
- package/esm2022/testing/index.mjs +3 -0
- package/esm2022/testing/lib/test-bed.mjs +130 -0
- package/esm2022/testing/lib/test-canvas.mjs +45 -0
- package/esm2022/testing/lib/utils/mock-canvas.mjs +37 -0
- package/esm2022/testing/lib/utils/web-gl-rendering-context.mjs +752 -0
- package/fesm2022/angular-three-testing.mjs +966 -0
- package/fesm2022/angular-three-testing.mjs.map +1 -0
- package/fesm2022/angular-three.mjs +2506 -2539
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +14 -12
- package/lib/canvas.d.ts +366 -96
- package/lib/directives/args.d.ts +14 -7
- package/lib/directives/selection.d.ts +17 -0
- package/lib/dom/events.d.ts +2 -3
- package/lib/events.d.ts +4 -80
- package/lib/html.d.ts +17 -0
- package/lib/instance.d.ts +3 -35
- package/lib/loader.d.ts +18 -6
- package/lib/loop.d.ts +11 -59
- package/lib/pipes/hexify.d.ts +20 -0
- package/lib/portal.d.ts +54 -48
- package/lib/renderer/catalogue.d.ts +7 -3
- package/lib/renderer/constants.d.ts +4 -5
- package/lib/renderer/index.d.ts +64 -4
- package/lib/renderer/state.d.ts +24 -0
- package/lib/renderer/utils.d.ts +9 -27
- package/lib/roots.d.ts +9 -7
- package/lib/store.d.ts +13 -141
- package/lib/three-types.d.ts +500 -147
- package/lib/types.d.ts +291 -0
- package/lib/utils/apply-props.d.ts +1 -3
- package/lib/utils/attach.d.ts +3 -5
- package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
- package/lib/utils/is.d.ts +13 -14
- package/lib/utils/make.d.ts +7 -13
- package/lib/utils/non-nullish.d.ts +4 -0
- package/lib/utils/object-events.d.ts +34 -0
- package/lib/utils/parameters.d.ts +20 -0
- package/lib/utils/resolve-ref.d.ts +2 -0
- package/lib/utils/signal-store.d.ts +13 -4
- package/lib/utils/update.d.ts +1 -1
- package/metadata.json +1 -1
- package/package.json +40 -24
- package/plugin/generators.json +8 -30
- package/plugin/package.json +3 -22
- package/plugin/src/generators/add-soba/compat.js.map +1 -0
- package/plugin/src/generators/add-soba/generator.d.ts +3 -0
- package/plugin/src/generators/add-soba/generator.js +78 -0
- package/plugin/src/generators/add-soba/generator.js.map +1 -0
- package/plugin/src/generators/add-soba/schema.json +4 -0
- package/plugin/src/generators/init/compat.d.ts +1 -3
- package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +18 -7
- package/plugin/src/generators/init/generator.d.ts +5 -5
- package/plugin/src/generators/init/generator.js +100 -106
- package/plugin/src/generators/init/generator.js.map +1 -1
- package/plugin/src/generators/init/schema.json +8 -12
- package/plugin/src/generators/utils.js +4 -3
- package/plugin/src/generators/utils.js.map +1 -1
- package/plugin/src/generators/version.d.ts +17 -0
- package/plugin/src/generators/version.js +21 -0
- package/plugin/src/generators/version.js.map +1 -0
- package/plugin/src/index.d.ts +0 -3
- package/plugin/src/index.js +0 -9
- package/plugin/src/index.js.map +1 -1
- package/testing/README.md +3 -0
- package/testing/index.d.ts +2 -0
- package/testing/lib/test-bed.d.ts +38 -0
- package/testing/lib/test-canvas.d.ts +11 -0
- package/testing/lib/utils/mock-canvas.d.ts +5 -0
- package/testing/lib/utils/web-gl-rendering-context.d.ts +16 -0
- package/testing/package.json +3 -0
- package/web-types.json +1 -1
- package/esm2022/lib/before-render.mjs +0 -13
- package/esm2022/lib/directives/common.mjs +0 -41
- package/esm2022/lib/directives/key.mjs +0 -29
- package/esm2022/lib/directives/parent.mjs +0 -35
- package/esm2022/lib/ref.mjs +0 -48
- package/esm2022/lib/renderer/store.mjs +0 -408
- package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
- package/lib/directives/common.d.ts +0 -15
- package/lib/directives/key.d.ts +0 -10
- package/lib/directives/parent.d.ts +0 -11
- package/lib/ref.d.ts +0 -8
- package/lib/renderer/store.d.ts +0 -67
- package/lib/utils/safe-detect-changes.d.ts +0 -2
- package/plugin/migrations.json +0 -16
- package/plugin/src/generators/init/files/experience/experience.component.html__tmpl__ +0 -4
- package/plugin/src/generators/init-cannon/compat.js.map +0 -1
- package/plugin/src/generators/init-cannon/generator.d.ts +0 -2
- package/plugin/src/generators/init-cannon/generator.js +0 -23
- package/plugin/src/generators/init-cannon/generator.js.map +0 -1
- package/plugin/src/generators/init-cannon/schema.json +0 -6
- package/plugin/src/generators/init-postprocessing/compat.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/compat.js +0 -6
- package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/generator.js +0 -21
- package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/schema.json +0 -6
- package/plugin/src/generators/init-soba/compat.d.ts +0 -2
- package/plugin/src/generators/init-soba/compat.js +0 -6
- package/plugin/src/generators/init-soba/compat.js.map +0 -1
- package/plugin/src/generators/init-soba/generator.d.ts +0 -2
- package/plugin/src/generators/init-soba/generator.js +0 -27
- package/plugin/src/generators/init-soba/generator.js.map +0 -1
- package/plugin/src/generators/init-soba/schema.json +0 -6
- package/plugin/src/generators/versions.d.ts +0 -13
- package/plugin/src/generators/versions.js +0 -17
- package/plugin/src/generators/versions.js.map +0 -1
- package/plugin/src/migrations/migrate-to-ngxtension/compat.d.ts +0 -2
- package/plugin/src/migrations/migrate-to-ngxtension/compat.js +0 -6
- package/plugin/src/migrations/migrate-to-ngxtension/compat.js.map +0 -1
- package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.d.ts +0 -2
- package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js +0 -41
- package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js.map +0 -1
- /package/plugin/src/generators/{init-cannon → add-soba}/compat.d.ts +0 -0
- /package/plugin/src/generators/{init-cannon → add-soba}/compat.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0RXZlbnRIYW5kbGVycyB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgTmd0QWZ0ZXJBdHRhY2gsIE5ndEF0dGFjaEZ1bmN0aW9uLCBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB0eXBlIHsgTmd0QmVmb3JlUmVuZGVyRXZlbnQgfSBmcm9tICcuL3N0b3JlJztcblxudHlwZSBOb0V2ZW50PFQ+ID0gT21pdDxULCAnYWRkRXZlbnRMaXN0ZW5lcicgfCAncmVtb3ZlRXZlbnRMaXN0ZW5lcic+O1xuXG5leHBvcnQgdHlwZSBOZ3ROb25GdW5jdGlvbktleXM8VD4gPSB7IFtLIGluIGtleW9mIFRdLT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogSyB9W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgTmd0T3ZlcndyaXRlPFQsIE8+ID0gT21pdDxULCBOZ3ROb25GdW5jdGlvbktleXM8Tz4+ICYgTztcblxuZXhwb3J0IHR5cGUgTmd0RXh0ZW5kZWRDb2xvcnM8VD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgVEhSRUUuQ29sb3IgfCB1bmRlZmluZWQgPyBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uIDogVFtLXTtcbn07XG5cbi8qKlxuICogSWYgKipUKiogY29udGFpbnMgYSBjb25zdHJ1Y3RvciwgQHNlZSBDb25zdHJ1Y3RvclBhcmFtZXRlcnMgbXVzdCBiZSB1c2VkLCBvdGhlcndpc2UgKipUKiouXG4gKi9cbnR5cGUgTmd0QXJnczxUPiA9IFQgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueSkgPT4gYW55ID8gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFQ+IDogVDtcblxuZXhwb3J0IHR5cGUgTmd0RXVsZXIgPSBUSFJFRS5FdWxlciB8IFBhcmFtZXRlcnM8VEhSRUUuRXVsZXJbJ3NldCddPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDQgPSBUSFJFRS5NYXRyaXg0IHwgUGFyYW1ldGVyczxUSFJFRS5NYXRyaXg0WydzZXQnXT4gfCBSZWFkb25seTxUSFJFRS5NYXRyaXg0WydzZXQnXT47XG5cbi8qKlxuICogVHVybiBhbiBpbXBsZW1lbnRhdGlvbiBvZiBUSFJFRS5WZWN0b3IgaW4gdG8gdGhlIHR5cGUgdGhhdCBhbiByM2YgY29tcG9uZW50IHdvdWxkIGFjY2VwdCBhcyBhIHByb3AuXG4gKi9cbnR5cGUgTmd0VmVjdG9yTGlrZTxWZWN0b3JDbGFzcyBleHRlbmRzIFRIUkVFLlZlY3Rvcj4gPVxuXHR8IFZlY3RvckNsYXNzXG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+XG5cdHwgUmVhZG9ubHk8UGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+PlxuXHR8IFBhcmFtZXRlcnM8VmVjdG9yQ2xhc3NbJ3NldFNjYWxhciddPlswXTtcblxuZXhwb3J0IHR5cGUgTmd0VmVjdG9yMiA9IE5ndFZlY3Rvckxpa2U8VEhSRUUuVmVjdG9yMj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IzID0gTmd0VmVjdG9yTGlrZTxUSFJFRS5WZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjQgPSBOZ3RWZWN0b3JMaWtlPFRIUkVFLlZlY3RvcjQ+O1xuZXhwb3J0IHR5cGUgTmd0TGF5ZXJzID0gVEhSRUUuTGF5ZXJzIHwgUGFyYW1ldGVyczxUSFJFRS5MYXllcnNbJ3NldCddPlswXTtcbmV4cG9ydCB0eXBlIE5ndFF1YXRlcm5pb24gPSBUSFJFRS5RdWF0ZXJuaW9uIHwgUGFyYW1ldGVyczxUSFJFRS5RdWF0ZXJuaW9uWydzZXQnXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4ge1xuXHRhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2g8Tmd0SW5zdGFuY2VOb2RlLCBUT3JpZ2luYWw+O1xuXHRhZnRlclVwZGF0ZTogVE9yaWdpbmFsO1xuXHRiZWZvcmVSZW5kZXI6IE5ndEJlZm9yZVJlbmRlckV2ZW50PFRPcmlnaW5hbD47XG59XG5cbmV4cG9ydCB0eXBlIE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiA9IHtcblx0YXR0YWNoOiBzdHJpbmcgfCBzdHJpbmdbXSB8IE5ndEF0dGFjaEZ1bmN0aW9uO1xuXHQvLyByZWY6IE5ndEluamVjdGVkUmVmPFRPcmlnaW5hbD47XG5cdGFkZEV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4+KFxuXHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+W1RFdmVudEtleV0pID0+IGFueSxcblx0KTogdm9pZDtcblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG5cdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdGxpc3RlbmVyOiAodGhpczogTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD5bVEV2ZW50S2V5XSkgPT4gYW55LFxuXHQpOiB2b2lkO1xuXHRfX25ndF9hcmdzX186IE5ndEFyZ3M8VENvbnN0cnVjdG9yPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IE5ndEV4dGVuZGVkQ29sb3JzPFxuXHROZ3RPdmVyd3JpdGU8UGFydGlhbDxUTm9FdmVudD4sIE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPj5cbj47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNERXZlbnRzTWFwID0ge1xuXHRbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IFBhcmFtZXRlcnM8Tm9uTnVsbGFibGU8Tmd0RXZlbnRIYW5kbGVyc1tURXZlbnRdPj5bMF07XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IE5ndE92ZXJ3cml0ZTxcblx0Tmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQ+LFxuXHR7XG5cdFx0cG9zaXRpb246IE5ndFZlY3RvcjM7XG5cdFx0dXA6IE5ndFZlY3RvcjM7XG5cdFx0c2NhbGU6IE5ndFZlY3RvcjM7XG5cdFx0cm90YXRpb246IE5ndEV1bGVyO1xuXHRcdG1hdHJpeDogTmd0TWF0cml4NDtcblx0XHRxdWF0ZXJuaW9uOiBOZ3RRdWF0ZXJuaW9uO1xuXHRcdGxheWVyczogTmd0TGF5ZXJzO1xuXHRcdGRpc3Bvc2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG5cdFx0YWRkRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3RPYmplY3QzREV2ZW50c01hcD4oXG5cdFx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3RPYmplY3QzREV2ZW50c01hcFtURXZlbnRLZXldKSA9PiBhbnksXG5cdFx0KTogdm9pZDtcblx0XHRyZW1vdmVFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE9iamVjdDNERXZlbnRzTWFwPihcblx0XHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRcdGxpc3RlbmVyOiAodGhpczogTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE9iamVjdDNERXZlbnRzTWFwW1RFdmVudEtleV0pID0+IGFueSxcblx0XHQpOiB2b2lkO1xuXHR9XG4+O1xuXG5leHBvcnQgdHlwZSBOZ3RHZW9tZXRyeTxUR2VvbWV0cnkgZXh0ZW5kcyBUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VEdlb21ldHJ5LCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TWF0ZXJpYWw8VE1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuTWF0ZXJpYWwsIFRDb25zdHJ1Y3Rvcj4gPSBOZ3ROb2RlPFRNYXRlcmlhbCwgVENvbnN0cnVjdG9yPjtcbmV4cG9ydCB0eXBlIE5ndExpZ2h0PFQgZXh0ZW5kcyBUSFJFRS5MaWdodCwgUD4gPSBOZ3RPYmplY3QzRE5vZGU8VCwgUD47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNEID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk9iamVjdDNELCB0eXBlb2YgVEhSRUUuT2JqZWN0M0Q+O1xuZXhwb3J0IHR5cGUgTmd0QXVkaW8gPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXVkaW8sIHR5cGVvZiBUSFJFRS5BdWRpbz47XG5leHBvcnQgdHlwZSBOZ3RBdWRpb0xpc3RlbmVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkF1ZGlvTGlzdGVuZXIsIHR5cGVvZiBUSFJFRS5BdWRpb0xpc3RlbmVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvc2l0aW9uYWxBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb3NpdGlvbmFsQXVkaW8sIHR5cGVvZiBUSFJFRS5Qb3NpdGlvbmFsQXVkaW8+O1xuXG5leHBvcnQgdHlwZSBOZ3RNZXNoID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk1lc2gsIHR5cGVvZiBUSFJFRS5NZXNoPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuSW5zdGFuY2VkTWVzaCwgdHlwZW9mIFRIUkVFLkluc3RhbmNlZE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0U2NlbmUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2NlbmUsIHR5cGVvZiBUSFJFRS5TY2VuZT47XG5leHBvcnQgdHlwZSBOZ3RTcHJpdGUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU3ByaXRlLCB0eXBlb2YgVEhSRUUuU3ByaXRlPjtcbmV4cG9ydCB0eXBlIE5ndExPRCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MT0QsIHR5cGVvZiBUSFJFRS5MT0Q+O1xuZXhwb3J0IHR5cGUgTmd0U2tpbm5lZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2tpbm5lZE1lc2gsIHR5cGVvZiBUSFJFRS5Ta2lubmVkTWVzaD47XG5cbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNrZWxldG9uLCB0eXBlb2YgVEhSRUUuU2tlbGV0b24+O1xuZXhwb3J0IHR5cGUgTmd0Qm9uZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Cb25lLCB0eXBlb2YgVEhSRUUuQm9uZT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxpbmUsIHR5cGVvZiBUSFJFRS5MaW5lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVTZWdtZW50cyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MaW5lU2VnbWVudHMsIHR5cGVvZiBUSFJFRS5MaW5lU2VnbWVudHM+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUxvb3AgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTGluZUxvb3AsIHR5cGVvZiBUSFJFRS5MaW5lTG9vcD47XG5leHBvcnQgdHlwZSBOZ3RQb2ludHMgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUG9pbnRzLCB0eXBlb2YgVEhSRUUuUG9pbnRzPjtcbmV4cG9ydCB0eXBlIE5ndEdyb3VwID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkdyb3VwLCB0eXBlb2YgVEhSRUUuR3JvdXA+O1xuXG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFOb2RlID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkNhbWVyYSwgdHlwZW9mIFRIUkVFLkNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RQZXJzcGVjdGl2ZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSwgdHlwZW9mIFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndE9ydGhvZ3JhcGhpY0NhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5DdWJlQ2FtZXJhLCB0eXBlb2YgVEhSRUUuQ3ViZUNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RBcnJheUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BcnJheUNhbWVyYSwgdHlwZW9mIFRIUkVFLkFycmF5Q2FtZXJhPjtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxcblx0VEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnksXG5cdHR5cGVvZiBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeVxuPjtcbmV4cG9ydCB0eXBlIE5ndEJ1ZmZlckdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQnVmZmVyR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RXaXJlZnJhbWVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLldpcmVmcmFtZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuV2lyZWZyYW1lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VGV0cmFoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlRldHJhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5UZXRyYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndE9jdGFoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLk9jdGFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLk9jdGFoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RJY29zYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuSWNvc2FoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkljb3NhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RG9kZWNhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Eb2RlY2FoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkRvZGVjYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFBvbHloZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlBvbHloZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlBvbHloZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUdWJlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5UdWJlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5UdWJlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNLbm90R2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Ub3J1c0tub3RHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlRvcnVzS25vdEdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFRvcnVzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Ub3J1c0dlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVG9ydXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTcGhlcmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlNwaGVyZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuU3BoZXJlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UmluZ0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuUmluZ0dlb21ldHJ5LCB0eXBlb2YgVEhSRUUuUmluZ0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5QbGFuZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuUGxhbmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RMYXRoZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuTGF0aGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkxhdGhlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0U2hhcGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlNoYXBlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5TaGFwZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEV4dHJ1ZGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkV4dHJ1ZGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkV4dHJ1ZGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RFZGdlc0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuRWRnZXNHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkVkZ2VzR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q29uZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ29uZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ29uZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEN5bGluZGVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5DeWxpbmRlckdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ3lsaW5kZXJHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDaXJjbGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkNpcmNsZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ2lyY2xlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Qm94R2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Cb3hHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkJveEdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENhcHN1bGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkNhcHN1bGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkNhcHN1bGVHZW9tZXRyeT47XG5cbmV4cG9ydCB0eXBlIE5ndFNoYWRvd01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuU2hhZG93TWF0ZXJpYWwsIFtUSFJFRS5TaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZU1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuU3ByaXRlTWF0ZXJpYWwsIFtUSFJFRS5TcHJpdGVNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFJhd1NoYWRlck1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuUmF3U2hhZGVyTWF0ZXJpYWwsIFtUSFJFRS5TaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFNoYWRlck1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuU2hhZGVyTWF0ZXJpYWwsIFtUSFJFRS5TaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50c01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuUG9pbnRzTWF0ZXJpYWwsIFtUSFJFRS5Qb2ludHNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hQaHlzaWNhbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWwsIFtUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFN0YW5kYXJkTWF0ZXJpYWwsIFtUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hQaG9uZ01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFBob25nTWF0ZXJpYWwsIFtUSFJFRS5NZXNoUGhvbmdNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hUb29uTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoVG9vbk1hdGVyaWFsLCBbVEhSRUUuTWVzaFRvb25NYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hOb3JtYWxNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hOb3JtYWxNYXRlcmlhbCwgW1RIUkVFLk1lc2hOb3JtYWxNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsLCBbVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hEZXB0aE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaERlcHRoTWF0ZXJpYWwsIFtUSFJFRS5NZXNoRGVwdGhNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hEaXN0YW5jZU1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaERpc3RhbmNlTWF0ZXJpYWwsIFtUSFJFRS5NZXNoRGlzdGFuY2VNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hCYXNpY01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwsIFtUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hNYXRjYXBNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hNYXRjYXBNYXRlcmlhbCwgW1RIUkVFLk1lc2hNYXRjYXBNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVEYXNoZWRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLkxpbmVEYXNoZWRNYXRlcmlhbCwgW1RIUkVFLkxpbmVEYXNoZWRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVCYXNpY01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwsIFtUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcblxuZXhwb3J0IHR5cGUgTmd0UHJpbWl0aXZlID0gTmd0Tm9kZUVsZW1lbnQ8YW55LCBhbnk+O1xuZXhwb3J0IHR5cGUgTmd0VmFsdWUgPSBOZ3ROb2RlPHsgcmF3VmFsdWU6IGFueSB9LCB7fT47XG5cbmV4cG9ydCB0eXBlIE5ndExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxUSFJFRS5MaWdodFNoYWRvdywgdHlwZW9mIFRIUkVFLkxpZ2h0U2hhZG93PjtcbmV4cG9ydCB0eXBlIE5ndFNwb3RMaWdodFNoYWRvdyA9IE5ndE5vZGU8VEhSRUUuU3BvdExpZ2h0U2hhZG93LCB0eXBlb2YgVEhSRUUuU3BvdExpZ2h0U2hhZG93PjtcbmV4cG9ydCB0eXBlIE5ndERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBOZ3ROb2RlPFRIUkVFLkRpcmVjdGlvbmFsTGlnaHRTaGFkb3csIHR5cGVvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0U2hhZG93PjtcblxuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuU3BvdExpZ2h0LCB0eXBlb2YgVEhSRUUuU3BvdExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50TGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5Qb2ludExpZ2h0LCB0eXBlb2YgVEhSRUUuUG9pbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RSZWN0QXJlYUxpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuUmVjdEFyZWFMaWdodCwgdHlwZW9mIFRIUkVFLlJlY3RBcmVhTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0SGVtaXNwaGVyZUxpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0LCB0eXBlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndERpcmVjdGlvbmFsTGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5EaXJlY3Rpb25hbExpZ2h0LCB0eXBlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RBbWJpZW50TGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5BbWJpZW50TGlnaHQsIHR5cGVvZiBUSFJFRS5BbWJpZW50TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0QW1iaWVudExpZ2h0UHJvYmUgPSBOZ3RMaWdodDxUSFJFRS5BbWJpZW50TGlnaHRQcm9iZSwgdHlwZW9mIFRIUkVFLkFtYmllbnRMaWdodFByb2JlPjtcbmV4cG9ydCB0eXBlIE5ndEhlbWlzcGhlcmVMaWdodFByb2JlID0gTmd0TGlnaHQ8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0UHJvYmUsIHR5cGVvZiBUSFJFRS5IZW1pc3BoZXJlTGlnaHRQcm9iZT47XG5leHBvcnQgdHlwZSBOZ3RMaWdodFByb2JlID0gTmd0TGlnaHQ8VEhSRUUuTGlnaHRQcm9iZSwgdHlwZW9mIFRIUkVFLkxpZ2h0UHJvYmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU3BvdExpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuU3BvdExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNrZWxldG9uSGVscGVyLCB0eXBlb2YgVEhSRUUuU2tlbGV0b25IZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb2ludExpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuUG9pbnRMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEdyaWRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuR3JpZEhlbHBlciwgdHlwZW9mIFRIUkVFLkdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9sYXJHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBvbGFyR3JpZEhlbHBlciwgdHlwZW9mIFRIUkVFLlBvbGFyR3JpZEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFxuXHRUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyLFxuXHR0eXBlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodEhlbHBlclxuPjtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYUhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5DYW1lcmFIZWxwZXIsIHR5cGVvZiBUSFJFRS5DYW1lcmFIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0Qm94SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJveEhlbHBlciwgdHlwZW9mIFRIUkVFLkJveEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3gzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJveDNIZWxwZXIsIHR5cGVvZiBUSFJFRS5Cb3gzSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBsYW5lSGVscGVyLCB0eXBlb2YgVEhSRUUuUGxhbmVIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0QXJyb3dIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXJyb3dIZWxwZXIsIHR5cGVvZiBUSFJFRS5BcnJvd0hlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBeGVzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkF4ZXNIZWxwZXIsIHR5cGVvZiBUSFJFRS5BeGVzSGVscGVyPjtcblxuZXhwb3J0IHR5cGUgTmd0VGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuVGV4dHVyZSwgdHlwZW9mIFRIUkVFLlRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0VmlkZW9UZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5WaWRlb1RleHR1cmUsIHR5cGVvZiBUSFJFRS5WaWRlb1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YVRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkRhdGFUZXh0dXJlLCB0eXBlb2YgVEhSRUUuRGF0YVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YTNEVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuRGF0YTNEVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkRhdGEzRFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q29tcHJlc3NlZFRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkNvbXByZXNzZWRUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ29tcHJlc3NlZFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZVRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkN1YmVUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ3ViZVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q2FudmFzVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ2FudmFzVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkNhbnZhc1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGVwdGhUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5EZXB0aFRleHR1cmUsIHR5cGVvZiBUSFJFRS5EZXB0aFRleHR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RSYXljYXN0ZXIgPSBOZ3ROb2RlPFRIUkVFLlJheWNhc3RlciwgdHlwZW9mIFRIUkVFLlJheWNhc3Rlcj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyTm9kZSA9IE5ndE5vZGU8VEhSRUUuVmVjdG9yMiwgdHlwZW9mIFRIUkVFLlZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yM05vZGUgPSBOZ3ROb2RlPFRIUkVFLlZlY3RvcjMsIHR5cGVvZiBUSFJFRS5WZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjROb2RlID0gTmd0Tm9kZTxUSFJFRS5WZWN0b3I0LCB0eXBlb2YgVEhSRUUuVmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RFdWxlck5vZGUgPSBOZ3ROb2RlPFRIUkVFLkV1bGVyLCB0eXBlb2YgVEhSRUUuRXVsZXI+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4M05vZGUgPSBOZ3ROb2RlPFRIUkVFLk1hdHJpeDMsIHR5cGVvZiBUSFJFRS5NYXRyaXgzPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDROb2RlID0gTmd0Tm9kZTxUSFJFRS5NYXRyaXg0LCB0eXBlb2YgVEhSRUUuTWF0cml4ND47XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uTm9kZSA9IE5ndE5vZGU8VEhSRUUuUXVhdGVybmlvbiwgdHlwZW9mIFRIUkVFLlF1YXRlcm5pb24+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5CdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5CdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0NjRCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkludDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuSW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkludDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuSW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDhCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuVWludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5VaW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5VaW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxcblx0VEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlLFxuXHR0eXBlb2YgVEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlXG4+O1xuZXhwb3J0IHR5cGUgTmd0Q29sb3IgPSBOZ3ROb2RlPFRIUkVFLkNvbG9yLCBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uPjtcbmV4cG9ydCB0eXBlIE5ndEZvZyA9IE5ndE5vZGU8VEhSRUUuRm9nLCB0eXBlb2YgVEhSRUUuRm9nPjtcbmV4cG9ydCB0eXBlIE5ndEZvZ0V4cDIgPSBOZ3ROb2RlPFRIUkVFLkZvZ0V4cDIsIHR5cGVvZiBUSFJFRS5Gb2dFeHAyPjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlID0gTmd0Tm9kZTxUSFJFRS5TaGFwZSwgdHlwZW9mIFRIUkVFLlNoYXBlPjtcblxuZXhwb3J0IGludGVyZmFjZSBUaHJlZUVsZW1lbnRzIHtcblx0J25ndC1vYmplY3QzRCc6IE5ndE9iamVjdDNEO1xuXG5cdC8vIGBhdWRpb2Agd29ya3MgYnV0IGNvbmZsaWN0cyB3aXRoIEB0eXBlcy9yZWFjdC4gVHJ5IHVzaW5nIFBvc2l0aW9uYWxBdWRpbyBmcm9tIEByZWFjdC10aHJlZS9kcmVpIGluc3RlYWRcblx0J25ndC1hdWRpbyc6IE5ndEF1ZGlvO1xuXHQnbmd0LWF1ZGlvLWxpc3RlbmVyJzogTmd0QXVkaW9MaXN0ZW5lcjtcblx0J25ndC1wb3NpdGlvbmFsLWF1ZGlvJzogTmd0UG9zaXRpb25hbEF1ZGlvO1xuXG5cdCduZ3QtbWVzaCc6IE5ndE1lc2g7XG5cdCduZ3QtaW5zdGFuY2VkLW1lc2gnOiBOZ3RJbnN0YW5jZWRNZXNoO1xuXHQnbmd0LXNjZW5lJzogTmd0U2NlbmU7XG5cdCduZ3Qtc3ByaXRlJzogTmd0U3ByaXRlO1xuXHQnbmd0LWxPRCc6IE5ndExPRDtcblx0J25ndC1za2lubmVkLW1lc2gnOiBOZ3RTa2lubmVkTWVzaDtcblx0J25ndC1za2VsZXRvbic6IE5ndFNrZWxldG9uO1xuXHQnbmd0LWJvbmUnOiBOZ3RCb25lO1xuXG5cdCduZ3QtbGluZSc6IE5ndExpbmU7XG5cdCduZ3QtbGluZS1zZWdtZW50cyc6IE5ndExpbmVTZWdtZW50cztcblx0J25ndC1saW5lLWxvb3AnOiBOZ3RMaW5lTG9vcDtcblx0J25ndC1wb2ludHMnOiBOZ3RQb2ludHM7XG5cdCduZ3QtZ3JvdXAnOiBOZ3RHcm91cDtcblxuXHQvLyBjYW1lcmFzXG5cdCduZ3QtY2FtZXJhJzogTmd0Q2FtZXJhTm9kZTtcblx0J25ndC1wZXJzcGVjdGl2ZS1jYW1lcmEnOiBOZ3RQZXJzcGVjdGl2ZUNhbWVyYTtcblx0J25ndC1vcnRob2dyYXBoaWMtY2FtZXJhJzogTmd0T3J0aG9ncmFwaGljQ2FtZXJhO1xuXHQnbmd0LWN1YmUtY2FtZXJhJzogTmd0Q3ViZUNhbWVyYTtcblx0J25ndC1hcnJheS1jYW1lcmEnOiBOZ3RBcnJheUNhbWVyYTtcblxuXHQvLyBnZW9tZXRyeVxuXHQnbmd0LWluc3RhbmNlZC1idWZmZXItZ2VvbWV0cnknOiBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeTtcblx0J25ndC1idWZmZXItZ2VvbWV0cnknOiBOZ3RCdWZmZXJHZW9tZXRyeTtcblx0J25ndC13aXJlZnJhbWUtZ2VvbWV0cnknOiBOZ3RXaXJlZnJhbWVHZW9tZXRyeTtcblx0J25ndC10ZXRyYWhlZHJvbi1nZW9tZXRyeSc6IE5ndFRldHJhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3Qtb2N0YWhlZHJvbi1nZW9tZXRyeSc6IE5ndE9jdGFoZWRyb25HZW9tZXRyeTtcblx0J25ndC1pY29zYWhlZHJvbi1nZW9tZXRyeSc6IE5ndEljb3NhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3QtcG9seWhlZHJvbi1nZW9tZXRyeSc6IE5ndFBvbHloZWRyb25HZW9tZXRyeTtcblx0J25ndC1kb2RlY2FoZWRyb24tZ2VvbWV0cnknOiBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeTtcblx0J25ndC10dWJlLWdlb21ldHJ5JzogTmd0VHViZUdlb21ldHJ5O1xuXHQnbmd0LXRvcnVzLWtub3QtZ2VvbWV0cnknOiBOZ3RUb3J1c0tub3RHZW9tZXRyeTtcblx0J25ndC10b3J1cy1nZW9tZXRyeSc6IE5ndFRvcnVzR2VvbWV0cnk7XG5cdCduZ3Qtc3BoZXJlLWdlb21ldHJ5JzogTmd0U3BoZXJlR2VvbWV0cnk7XG5cdCduZ3QtcmluZy1nZW9tZXRyeSc6IE5ndFJpbmdHZW9tZXRyeTtcblx0J25ndC1wbGFuZS1nZW9tZXRyeSc6IE5ndFBsYW5lR2VvbWV0cnk7XG5cdCduZ3QtbGF0aGUtZ2VvbWV0cnknOiBOZ3RMYXRoZUdlb21ldHJ5O1xuXHQnbmd0LXNoYXBlLWdlb21ldHJ5JzogTmd0U2hhcGVHZW9tZXRyeTtcblx0J25ndC1leHRydWRlLWdlb21ldHJ5JzogTmd0RXh0cnVkZUdlb21ldHJ5O1xuXHQnbmd0LWVkZ2VzLWdlb21ldHJ5JzogTmd0RWRnZXNHZW9tZXRyeTtcblx0J25ndC1jb25lLWdlb21ldHJ5JzogTmd0Q29uZUdlb21ldHJ5O1xuXHQnbmd0LWN5bGluZGVyLWdlb21ldHJ5JzogTmd0Q3lsaW5kZXJHZW9tZXRyeTtcblx0J25ndC1jaXJjbGUtZ2VvbWV0cnknOiBOZ3RDaXJjbGVHZW9tZXRyeTtcblx0J25ndC1ib3gtZ2VvbWV0cnknOiBOZ3RCb3hHZW9tZXRyeTtcblx0J25ndC1jYXBzdWxlLWdlb21ldHJ5JzogTmd0Q2Fwc3VsZUdlb21ldHJ5O1xuXG5cdC8vIG1hdGVyaWFsc1xuXHQnbmd0LXNoYWRvdy1tYXRlcmlhbCc6IE5ndFNoYWRvd01hdGVyaWFsO1xuXHQnbmd0LXNwcml0ZS1tYXRlcmlhbCc6IE5ndFNwcml0ZU1hdGVyaWFsO1xuXHQnbmd0LXJhdy1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RSYXdTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1wb2ludHMtbWF0ZXJpYWwnOiBOZ3RQb2ludHNNYXRlcmlhbDtcblx0J25ndC1tZXNoLXBoeXNpY2FsLW1hdGVyaWFsJzogTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1zdGFuZGFyZC1tYXRlcmlhbCc6IE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtcGhvbmctbWF0ZXJpYWwnOiBOZ3RNZXNoUGhvbmdNYXRlcmlhbDtcblx0J25ndC1tZXNoLXRvb24tbWF0ZXJpYWwnOiBOZ3RNZXNoVG9vbk1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbm9ybWFsLW1hdGVyaWFsJzogTmd0TWVzaE5vcm1hbE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbGFtYmVydC1tYXRlcmlhbCc6IE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1kZXB0aC1tYXRlcmlhbCc6IE5ndE1lc2hEZXB0aE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtZGlzdGFuY2UtbWF0ZXJpYWwnOiBOZ3RNZXNoRGlzdGFuY2VNYXRlcmlhbDtcblx0J25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsJzogTmd0TWVzaEJhc2ljTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1tYXRjYXAtbWF0ZXJpYWwnOiBOZ3RNZXNoTWF0Y2FwTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1kYXNoZWQtbWF0ZXJpYWwnOiBOZ3RMaW5lRGFzaGVkTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1iYXNpYy1tYXRlcmlhbCc6IE5ndExpbmVCYXNpY01hdGVyaWFsO1xuXG5cdC8vIHByaW1pdGl2ZVxuXHQnbmd0LXByaW1pdGl2ZSc6IE5ndFByaW1pdGl2ZTtcblxuXHQvLyByYXdWYWx1ZVxuXHQnbmd0LXZhbHVlJzogTmd0VmFsdWU7XG5cblx0Ly8gbGlnaHRzIGFuZCBvdGhlclxuXHQnbmd0LXNwb3QtbGlnaHQtc2hhZG93JzogTmd0U3BvdExpZ2h0U2hhZG93O1xuXHQnbmd0LXNwb3QtbGlnaHQnOiBOZ3RTcG90TGlnaHQ7XG5cdCduZ3QtcG9pbnQtbGlnaHQnOiBOZ3RQb2ludExpZ2h0O1xuXHQnbmd0LXJlY3QtYXJlYS1saWdodCc6IE5ndFJlY3RBcmVhTGlnaHQ7XG5cdCduZ3QtaGVtaXNwaGVyZS1saWdodCc6IE5ndEhlbWlzcGhlcmVMaWdodDtcblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1zaGFkb3cnOiBOZ3REaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0JzogTmd0RGlyZWN0aW9uYWxMaWdodDtcblx0J25ndC1hbWJpZW50LWxpZ2h0JzogTmd0QW1iaWVudExpZ2h0O1xuXHQnbmd0LWxpZ2h0LXNoYWRvdyc6IE5ndExpZ2h0U2hhZG93O1xuXHQnbmd0LWFtYmllbnQtbGlnaHQtcHJvYmUnOiBOZ3RBbWJpZW50TGlnaHRQcm9iZTtcblx0J25ndC1oZW1pc3BoZXJlLWxpZ2h0LXByb2JlJzogTmd0SGVtaXNwaGVyZUxpZ2h0UHJvYmU7XG5cdCduZ3QtbGlnaHQtcHJvYmUnOiBOZ3RMaWdodFByb2JlO1xuXG5cdC8vIGhlbHBlcnNcblx0J25ndC1zcG90LWxpZ2h0LWhlbHBlcic6IE5ndFNwb3RMaWdodEhlbHBlcjtcblx0J25ndC1za2VsZXRvbi1oZWxwZXInOiBOZ3RTa2VsZXRvbkhlbHBlcjtcblx0J25ndC1wb2ludC1saWdodC1oZWxwZXInOiBOZ3RQb2ludExpZ2h0SGVscGVyO1xuXHQnbmd0LWhlbWlzcGhlcmUtbGlnaHQtaGVscGVyJzogTmd0SGVtaXNwaGVyZUxpZ2h0SGVscGVyO1xuXHQnbmd0LWdyaWQtaGVscGVyJzogTmd0R3JpZEhlbHBlcjtcblx0J25ndC1wb2xhci1ncmlkLWhlbHBlcic6IE5ndFBvbGFyR3JpZEhlbHBlcjtcblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1oZWxwZXInOiBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyO1xuXHQnbmd0LWNhbWVyYS1oZWxwZXInOiBOZ3RDYW1lcmFIZWxwZXI7XG5cdCduZ3QtYm94LWhlbHBlcic6IE5ndEJveEhlbHBlcjtcblx0J25ndC1ib3gzLWhlbHBlcic6IE5ndEJveDNIZWxwZXI7XG5cdCduZ3QtcGxhbmUtaGVscGVyJzogTmd0UGxhbmVIZWxwZXI7XG5cdCduZ3QtYXJyb3ctaGVscGVyJzogTmd0QXJyb3dIZWxwZXI7XG5cdCduZ3QtYXhlcy1oZWxwZXInOiBOZ3RBeGVzSGVscGVyO1xuXG5cdC8vIHRleHR1cmVzXG5cdCduZ3QtdGV4dHVyZSc6IE5ndFRleHR1cmU7XG5cdCduZ3QtdmlkZW8tdGV4dHVyZSc6IE5ndFZpZGVvVGV4dHVyZTtcblx0J25ndC1kYXRhLXRleHR1cmUnOiBOZ3REYXRhVGV4dHVyZTtcblx0J25ndC1kYXRhM0QtdGV4dHVyZSc6IE5ndERhdGEzRFRleHR1cmU7XG5cdCduZ3QtY29tcHJlc3NlZC10ZXh0dXJlJzogTmd0Q29tcHJlc3NlZFRleHR1cmU7XG5cdCduZ3QtY3ViZS10ZXh0dXJlJzogTmd0Q3ViZVRleHR1cmU7XG5cdCduZ3QtY2FudmFzLXRleHR1cmUnOiBOZ3RDYW52YXNUZXh0dXJlO1xuXHQnbmd0LWRlcHRoLXRleHR1cmUnOiBOZ3REZXB0aFRleHR1cmU7XG5cblx0Ly8gbWlzY1xuXHQnbmd0LXJheWNhc3Rlcic6IE5ndFJheWNhc3Rlcjtcblx0J25ndC12ZWN0b3IyJzogTmd0VmVjdG9yMk5vZGU7XG5cdCduZ3QtdmVjdG9yMyc6IE5ndFZlY3RvcjNOb2RlO1xuXHQnbmd0LXZlY3RvcjQnOiBOZ3RWZWN0b3I0Tm9kZTtcblx0J25ndC1ldWxlcic6IE5ndEV1bGVyTm9kZTtcblx0J25ndC1tYXRyaXgzJzogTmd0TWF0cml4M05vZGU7XG5cdCduZ3QtbWF0cml4NCc6IE5ndE1hdHJpeDROb2RlO1xuXHQnbmd0LXF1YXRlcm5pb24nOiBOZ3RRdWF0ZXJuaW9uTm9kZTtcblx0J25ndC1idWZmZXItYXR0cmlidXRlJzogTmd0QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWZsb2F0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtZmxvYXQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1mbG9hdDY0LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDY0QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWludDgtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDhCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDE2QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWludDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0OC1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDhCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtdW5pdDE2LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtdW5pdDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50MzJCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW5zdGFuY2VkLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtY29sb3InOiBOZ3RDb2xvcjtcblx0J25ndC1mb2cnOiBOZ3RGb2c7XG5cdCduZ3QtZm9nLWV4cDInOiBOZ3RGb2dFeHAyO1xuXHQnbmd0LXNoYXBlJzogTmd0U2hhcGU7XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCBleHRlbmRzIFRocmVlRWxlbWVudHMge31cbn1cbiJdfQ==
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QW1iaWVudExpZ2h0LFxuXHRBcnJheUNhbWVyYSxcblx0QXJyb3dIZWxwZXIsXG5cdEF1ZGlvLFxuXHRBeGVzSGVscGVyLFxuXHRCYXRjaGVkTWVzaCxcblx0Qm9uZSxcblx0Qm94M0hlbHBlcixcblx0Qm94R2VvbWV0cnksXG5cdEJveEhlbHBlcixcblx0QnVmZmVyQXR0cmlidXRlLFxuXHRCdWZmZXJHZW9tZXRyeSxcblx0Q2FtZXJhLFxuXHRDYW1lcmFIZWxwZXIsXG5cdENhbnZhc1RleHR1cmUsXG5cdENhcHN1bGVHZW9tZXRyeSxcblx0Q2lyY2xlR2VvbWV0cnksXG5cdENvbG9yLFxuXHRDb2xvclJlcHJlc2VudGF0aW9uLFxuXHRDb21wcmVzc2VkVGV4dHVyZSxcblx0Q29uZUdlb21ldHJ5LFxuXHRDdWJlQ2FtZXJhLFxuXHRDdWJlVGV4dHVyZSxcblx0Q3lsaW5kZXJHZW9tZXRyeSxcblx0RGF0YTNEVGV4dHVyZSxcblx0RGF0YVRleHR1cmUsXG5cdERlcHRoVGV4dHVyZSxcblx0RGlyZWN0aW9uYWxMaWdodCxcblx0RGlyZWN0aW9uYWxMaWdodEhlbHBlcixcblx0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyxcblx0RG9kZWNhaGVkcm9uR2VvbWV0cnksXG5cdEVkZ2VzR2VvbWV0cnksXG5cdEV1bGVyLFxuXHRFeHRydWRlR2VvbWV0cnksXG5cdEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUsXG5cdEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdEZvZyxcblx0Rm9nRXhwMixcblx0R3JpZEhlbHBlcixcblx0R3JvdXAsXG5cdEhlbWlzcGhlcmVMaWdodCxcblx0SGVtaXNwaGVyZUxpZ2h0SGVscGVyLFxuXHRJY29zYWhlZHJvbkdlb21ldHJ5LFxuXHRJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUsXG5cdEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5LFxuXHRJbnN0YW5jZWRNZXNoLFxuXHRJbnQxNkJ1ZmZlckF0dHJpYnV0ZSxcblx0SW50MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdEludDhCdWZmZXJBdHRyaWJ1dGUsXG5cdExPRCxcblx0TGF0aGVHZW9tZXRyeSxcblx0TGF5ZXJzLFxuXHRMaWdodCxcblx0TGlnaHRQcm9iZSxcblx0TGlnaHRTaGFkb3csXG5cdExpbmUsXG5cdExpbmVCYXNpY01hdGVyaWFsLFxuXHRMaW5lQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdExpbmVEYXNoZWRNYXRlcmlhbCxcblx0TGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TGluZUxvb3AsXG5cdExpbmVTZWdtZW50cyxcblx0TWF0ZXJpYWwsXG5cdE1hdHJpeDMsXG5cdE1hdHJpeDQsXG5cdE1lc2gsXG5cdE1lc2hCYXNpY01hdGVyaWFsLFxuXHRNZXNoQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hEZXB0aE1hdGVyaWFsLFxuXHRNZXNoRGVwdGhNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hEaXN0YW5jZU1hdGVyaWFsLFxuXHRNZXNoRGlzdGFuY2VNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hMYW1iZXJ0TWF0ZXJpYWwsXG5cdE1lc2hMYW1iZXJ0TWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoTWF0Y2FwTWF0ZXJpYWwsXG5cdE1lc2hNYXRjYXBNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE1lc2hOb3JtYWxNYXRlcmlhbCxcblx0TWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFBob25nTWF0ZXJpYWwsXG5cdE1lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFBoeXNpY2FsTWF0ZXJpYWwsXG5cdE1lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFN0YW5kYXJkTWF0ZXJpYWwsXG5cdE1lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFRvb25NYXRlcmlhbCxcblx0TWVzaFRvb25NYXRlcmlhbFBhcmFtZXRlcnMsXG5cdE9iamVjdDNELFxuXHRPY3RhaGVkcm9uR2VvbWV0cnksXG5cdE9ydGhvZ3JhcGhpY0NhbWVyYSxcblx0UGVyc3BlY3RpdmVDYW1lcmEsXG5cdFBsYW5lR2VvbWV0cnksXG5cdFBsYW5lSGVscGVyLFxuXHRQb2ludExpZ2h0LFxuXHRQb2ludExpZ2h0SGVscGVyLFxuXHRQb2ludHMsXG5cdFBvaW50c01hdGVyaWFsLFxuXHRQb2ludHNNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdFBvbGFyR3JpZEhlbHBlcixcblx0UG9seWhlZHJvbkdlb21ldHJ5LFxuXHRQb3NpdGlvbmFsQXVkaW8sXG5cdFF1YXRlcm5pb24sXG5cdFJhd1NoYWRlck1hdGVyaWFsLFxuXHRSYXljYXN0ZXIsXG5cdFJlY3RBcmVhTGlnaHQsXG5cdFJpbmdHZW9tZXRyeSxcblx0U2NlbmUsXG5cdFNoYWRlck1hdGVyaWFsLFxuXHRTaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnMsXG5cdFNoYWRvd01hdGVyaWFsLFxuXHRTaGFwZSxcblx0U2hhcGVHZW9tZXRyeSxcblx0U2tlbGV0b24sXG5cdFNrZWxldG9uSGVscGVyLFxuXHRTa2lubmVkTWVzaCxcblx0U3BoZXJlR2VvbWV0cnksXG5cdFNwb3RMaWdodCxcblx0U3BvdExpZ2h0SGVscGVyLFxuXHRTcG90TGlnaHRTaGFkb3csXG5cdFNwcml0ZSxcblx0U3ByaXRlTWF0ZXJpYWwsXG5cdFNwcml0ZU1hdGVyaWFsUGFyYW1ldGVycyxcblx0VGV0cmFoZWRyb25HZW9tZXRyeSxcblx0VGV4dHVyZSxcblx0VG9ydXNHZW9tZXRyeSxcblx0VG9ydXNLbm90R2VvbWV0cnksXG5cdFR1YmVHZW9tZXRyeSxcblx0VWludDE2QnVmZmVyQXR0cmlidXRlLFxuXHRVaW50MzJCdWZmZXJBdHRyaWJ1dGUsXG5cdFVpbnQ4QnVmZmVyQXR0cmlidXRlLFxuXHRWZWN0b3IyLFxuXHRWZWN0b3IzLFxuXHRWZWN0b3I0LFxuXHRWaWRlb1RleHR1cmUsXG5cdFdpcmVmcmFtZUdlb21ldHJ5LFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RBZnRlckF0dGFjaCwgTmd0QXR0YWNoRnVuY3Rpb24sIE5ndEJlZm9yZVJlbmRlckV2ZW50LCBOZ3RFdmVudEhhbmRsZXJzLCBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBFeHBhbmQ8VD4gPSBUIGV4dGVuZHMgaW5mZXIgTyA/IHsgW0sgaW4ga2V5b2YgT106IE9bS10gfSA6IG5ldmVyO1xudHlwZSBOb0V2ZW50PFQ+ID0gT21pdDxULCAnYWRkRXZlbnRMaXN0ZW5lcicgfCAncmVtb3ZlRXZlbnRMaXN0ZW5lcic+O1xuXG5leHBvcnQgdHlwZSBOZ3ROb25GdW5jdGlvbktleXM8VD4gPSB7IFtLIGluIGtleW9mIFRdLT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogSyB9W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgTmd0T3ZlcndyaXRlPFQsIE8+ID0gT21pdDxULCBOZ3ROb25GdW5jdGlvbktleXM8Tz4+ICYgTztcblxuZXhwb3J0IHR5cGUgTmd0RXh0ZW5kZWRDb2xvcnM8VD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgQ29sb3IgfCB1bmRlZmluZWQgPyBDb2xvclJlcHJlc2VudGF0aW9uIDogVFtLXTtcbn07XG5cbi8qKlxuICogSWYgKipUKiogY29udGFpbnMgYSBjb25zdHJ1Y3RvciwgQHNlZSBDb25zdHJ1Y3RvclBhcmFtZXRlcnMgbXVzdCBiZSB1c2VkLCBvdGhlcndpc2UgKipUKiouXG4gKi9cbnR5cGUgTmd0QXJndW1lbnRzPFQ+ID0gVCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnkgPyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4gOiBUO1xuXG5leHBvcnQgdHlwZSBOZ3RFdWxlciA9IEV1bGVyIHwgUGFyYW1ldGVyczxFdWxlclsnc2V0J10+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NCA9IE1hdHJpeDQgfCBQYXJhbWV0ZXJzPE1hdHJpeDRbJ3NldCddPiB8IFJlYWRvbmx5PE1hdHJpeDRbJ3NldCddPjtcblxuLyoqXG4gKiBUdXJuIGFuIGltcGxlbWVudGF0aW9uIG9mIFZlY3RvciBpbiB0byB0aGUgdHlwZSB0aGF0IGFuIHIzZiBjb21wb25lbnQgd291bGQgYWNjZXB0IGFzIGEgcHJvcC5cbiAqL1xudHlwZSBOZ3RWZWN0b3JMaWtlPFZlY3RvckNsYXNzIGV4dGVuZHMgVmVjdG9yMiB8IFZlY3RvcjMgfCBWZWN0b3I0PiA9XG5cdHwgVmVjdG9yQ2xhc3Ncblx0fCBQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT5cblx0fCBSZWFkb25seTxQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT4+XG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0U2NhbGFyJ10+WzBdO1xuXG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyID0gTmd0VmVjdG9yTGlrZTxWZWN0b3IyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjMgPSBOZ3RWZWN0b3JMaWtlPFZlY3RvcjM+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yNCA9IE5ndFZlY3Rvckxpa2U8VmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RMYXllcnMgPSBMYXllcnMgfCBQYXJhbWV0ZXJzPExheWVyc1snc2V0J10+WzBdO1xuZXhwb3J0IHR5cGUgTmd0UXVhdGVybmlvbiA9IFF1YXRlcm5pb24gfCBQYXJhbWV0ZXJzPFF1YXRlcm5pb25bJ3NldCddPjtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPiB7XG5cdGF0dGFjaGVkOiBOZ3RBZnRlckF0dGFjaDxOZ3RJbnN0YW5jZU5vZGUsIFRPcmlnaW5hbD47XG5cdHVwZGF0ZWQ6IFRPcmlnaW5hbDtcblx0YmVmb3JlUmVuZGVyOiBOZ3RCZWZvcmVSZW5kZXJFdmVudDxUT3JpZ2luYWw+O1xufVxuXG5leHBvcnQgdHlwZSBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4gPSB7XG5cdGF0dGFjaDogc3RyaW5nIHwgc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcblx0YWRkRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG5cdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdGxpc3RlbmVyOiAodGhpczogTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD5bVEV2ZW50S2V5XSkgPT4gYW55LFxuXHQpOiB2b2lkO1xuXHRyZW1vdmVFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+Pihcblx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPltURXZlbnRLZXldKSA9PiBhbnksXG5cdCk6IHZvaWQ7XG5cdF9fbmd0X2FyZ3NfXzogTmd0QXJndW1lbnRzPFRDb25zdHJ1Y3Rvcj47XG59O1xuXG5leHBvcnQgdHlwZSBOZ3ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudCA9IE5vRXZlbnQ8VE9yaWdpbmFsPj4gPSBFeHBhbmQ8XG5cdE5ndEV4dGVuZGVkQ29sb3JzPE5ndE92ZXJ3cml0ZTxQYXJ0aWFsPFROb0V2ZW50PiwgTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+Pj5cbj47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNERXZlbnRzTWFwID0ge1xuXHRbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IFBhcmFtZXRlcnM8Tm9uTnVsbGFibGU8Tmd0RXZlbnRIYW5kbGVyc1tURXZlbnRdPj5bMF07XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RBbGxPYmplY3QzREV2ZW50c01hcCA9IE5ndE9iamVjdDNERXZlbnRzTWFwICYgTmd0Tm9kZUV2ZW50TWFwPE5ndEluc3RhbmNlTm9kZT47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gRXhwYW5kPFxuXHROZ3RPdmVyd3JpdGU8XG5cdFx0Tmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQ+LFxuXHRcdHtcblx0XHRcdHBvc2l0aW9uOiBOZ3RWZWN0b3IzO1xuXHRcdFx0dXA6IE5ndFZlY3RvcjM7XG5cdFx0XHRzY2FsZTogTmd0VmVjdG9yMztcblx0XHRcdHJvdGF0aW9uOiBOZ3RFdWxlcjtcblx0XHRcdG1hdHJpeDogTmd0TWF0cml4NDtcblx0XHRcdHF1YXRlcm5pb246IE5ndFF1YXRlcm5pb247XG5cdFx0XHRsYXllcnM6IE5ndExheWVycztcblx0XHRcdGRpc3Bvc2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG5cdFx0XHRyYXljYXN0OiBPYmplY3QzRFsncmF5Y2FzdCddIHwgbnVsbDtcblx0XHRcdGFkZEV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0QWxsT2JqZWN0M0RFdmVudHNNYXA+KFxuXHRcdFx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0XHRcdGxpc3RlbmVyOiAodGhpczogTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndEFsbE9iamVjdDNERXZlbnRzTWFwW1RFdmVudEtleV0pID0+IGFueSxcblx0XHRcdCk6IHZvaWQ7XG5cdFx0XHRyZW1vdmVFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndEFsbE9iamVjdDNERXZlbnRzTWFwPihcblx0XHRcdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdFx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3RBbGxPYmplY3QzREV2ZW50c01hcFtURXZlbnRLZXldKSA9PiBhbnksXG5cdFx0XHQpOiB2b2lkO1xuXHRcdH1cblx0PlxuPjtcblxuZXhwb3J0IHR5cGUgTmd0R2VvbWV0cnk8VEdlb21ldHJ5IGV4dGVuZHMgQnVmZmVyR2VvbWV0cnksIFRDb25zdHJ1Y3Rvcj4gPSBOZ3ROb2RlPFRHZW9tZXRyeSwgVENvbnN0cnVjdG9yPjtcbmV4cG9ydCB0eXBlIE5ndE1hdGVyaWFsPFRNYXRlcmlhbCBleHRlbmRzIE1hdGVyaWFsLCBUQ29uc3RydWN0b3I+ID0gTmd0Tm9kZTxUTWF0ZXJpYWwsIFRDb25zdHJ1Y3Rvcj47XG5leHBvcnQgdHlwZSBOZ3RMaWdodDxUIGV4dGVuZHMgTGlnaHQsIFA+ID0gTmd0T2JqZWN0M0ROb2RlPFQsIFA+O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzRCA9IE5ndE9iamVjdDNETm9kZTxPYmplY3QzRCwgdHlwZW9mIE9iamVjdDNEPjtcbmV4cG9ydCB0eXBlIE5ndEF1ZGlvID0gTmd0T2JqZWN0M0ROb2RlPEF1ZGlvLCB0eXBlb2YgQXVkaW8+O1xuZXhwb3J0IHR5cGUgTmd0QXVkaW9MaXN0ZW5lciA9IE5ndE9iamVjdDNETm9kZTxBdWRpb0xpc3RlbmVyLCB0eXBlb2YgQXVkaW9MaXN0ZW5lcj47XG5leHBvcnQgdHlwZSBOZ3RQb3NpdGlvbmFsQXVkaW8gPSBOZ3RPYmplY3QzRE5vZGU8UG9zaXRpb25hbEF1ZGlvLCB0eXBlb2YgUG9zaXRpb25hbEF1ZGlvPjtcblxuZXhwb3J0IHR5cGUgTmd0TWVzaCA9IE5ndE9iamVjdDNETm9kZTxNZXNoLCB0eXBlb2YgTWVzaD47XG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRNZXNoID0gTmd0T2JqZWN0M0ROb2RlPEluc3RhbmNlZE1lc2gsIHR5cGVvZiBJbnN0YW5jZWRNZXNoPjtcbmV4cG9ydCB0eXBlIE5ndEJhdGNoZWRNZXNoID0gTmd0T2JqZWN0M0ROb2RlPEJhdGNoZWRNZXNoLCB0eXBlb2YgQmF0Y2hlZE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0U2NlbmUgPSBOZ3RPYmplY3QzRE5vZGU8U2NlbmUsIHR5cGVvZiBTY2VuZT47XG5leHBvcnQgdHlwZSBOZ3RTcHJpdGUgPSBOZ3RPYmplY3QzRE5vZGU8U3ByaXRlLCB0eXBlb2YgU3ByaXRlPjtcbmV4cG9ydCB0eXBlIE5ndExPRCA9IE5ndE9iamVjdDNETm9kZTxMT0QsIHR5cGVvZiBMT0Q+O1xuZXhwb3J0IHR5cGUgTmd0U2tpbm5lZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8U2tpbm5lZE1lc2gsIHR5cGVvZiBTa2lubmVkTWVzaD47XG5cbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uID0gTmd0T2JqZWN0M0ROb2RlPFNrZWxldG9uLCB0eXBlb2YgU2tlbGV0b24+O1xuZXhwb3J0IHR5cGUgTmd0Qm9uZSA9IE5ndE9iamVjdDNETm9kZTxCb25lLCB0eXBlb2YgQm9uZT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lID0gTmd0T2JqZWN0M0ROb2RlPExpbmUsIHR5cGVvZiBMaW5lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVTZWdtZW50cyA9IE5ndE9iamVjdDNETm9kZTxMaW5lU2VnbWVudHMsIHR5cGVvZiBMaW5lU2VnbWVudHM+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUxvb3AgPSBOZ3RPYmplY3QzRE5vZGU8TGluZUxvb3AsIHR5cGVvZiBMaW5lTG9vcD47XG5leHBvcnQgdHlwZSBOZ3RQb2ludHMgPSBOZ3RPYmplY3QzRE5vZGU8UG9pbnRzLCB0eXBlb2YgUG9pbnRzPjtcbmV4cG9ydCB0eXBlIE5ndEdyb3VwID0gTmd0T2JqZWN0M0ROb2RlPEdyb3VwLCB0eXBlb2YgR3JvdXA+O1xuXG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFOb2RlID0gTmd0T2JqZWN0M0ROb2RlPENhbWVyYSwgdHlwZW9mIENhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RQZXJzcGVjdGl2ZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxQZXJzcGVjdGl2ZUNhbWVyYSwgdHlwZW9mIFBlcnNwZWN0aXZlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndE9ydGhvZ3JhcGhpY0NhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxPcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBPcnRob2dyYXBoaWNDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxDdWJlQ2FtZXJhLCB0eXBlb2YgQ3ViZUNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RBcnJheUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxBcnJheUNhbWVyYSwgdHlwZW9mIEFycmF5Q2FtZXJhPjtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSwgdHlwZW9mIEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEJ1ZmZlckdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8QnVmZmVyR2VvbWV0cnksIHR5cGVvZiBCdWZmZXJHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RXaXJlZnJhbWVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFdpcmVmcmFtZUdlb21ldHJ5LCB0eXBlb2YgV2lyZWZyYW1lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VGV0cmFoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRldHJhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUZXRyYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndE9jdGFoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PE9jdGFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIE9jdGFoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RJY29zYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8SWNvc2FoZWRyb25HZW9tZXRyeSwgdHlwZW9mIEljb3NhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RG9kZWNhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxEb2RlY2FoZWRyb25HZW9tZXRyeSwgdHlwZW9mIERvZGVjYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFBvbHloZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFBvbHloZWRyb25HZW9tZXRyeSwgdHlwZW9mIFBvbHloZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUdWJlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUdWJlR2VvbWV0cnksIHR5cGVvZiBUdWJlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNLbm90R2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUb3J1c0tub3RHZW9tZXRyeSwgdHlwZW9mIFRvcnVzS25vdEdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFRvcnVzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUb3J1c0dlb21ldHJ5LCB0eXBlb2YgVG9ydXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTcGhlcmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFNwaGVyZUdlb21ldHJ5LCB0eXBlb2YgU3BoZXJlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UmluZ0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8UmluZ0dlb21ldHJ5LCB0eXBlb2YgUmluZ0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxQbGFuZUdlb21ldHJ5LCB0eXBlb2YgUGxhbmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RMYXRoZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8TGF0aGVHZW9tZXRyeSwgdHlwZW9mIExhdGhlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0U2hhcGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFNoYXBlR2VvbWV0cnksIHR5cGVvZiBTaGFwZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEV4dHJ1ZGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PEV4dHJ1ZGVHZW9tZXRyeSwgdHlwZW9mIEV4dHJ1ZGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RFZGdlc0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8RWRnZXNHZW9tZXRyeSwgdHlwZW9mIEVkZ2VzR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q29uZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8Q29uZUdlb21ldHJ5LCB0eXBlb2YgQ29uZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEN5bGluZGVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxDeWxpbmRlckdlb21ldHJ5LCB0eXBlb2YgQ3lsaW5kZXJHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDaXJjbGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PENpcmNsZUdlb21ldHJ5LCB0eXBlb2YgQ2lyY2xlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Qm94R2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxCb3hHZW9tZXRyeSwgdHlwZW9mIEJveEdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENhcHN1bGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PENhcHN1bGVHZW9tZXRyeSwgdHlwZW9mIENhcHN1bGVHZW9tZXRyeT47XG5cbmV4cG9ydCB0eXBlIE5ndFNoYWRvd01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8U2hhZG93TWF0ZXJpYWwsIFtTaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZU1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8U3ByaXRlTWF0ZXJpYWwsIFtTcHJpdGVNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFJhd1NoYWRlck1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8UmF3U2hhZGVyTWF0ZXJpYWwsIFtTaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFNoYWRlck1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8U2hhZGVyTWF0ZXJpYWwsIFtTaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50c01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8UG9pbnRzTWF0ZXJpYWwsIFtQb2ludHNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hQaHlzaWNhbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaFBoeXNpY2FsTWF0ZXJpYWwsIFtNZXNoUGh5c2ljYWxNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaFN0YW5kYXJkTWF0ZXJpYWwsIFtNZXNoU3RhbmRhcmRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hQaG9uZ01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaFBob25nTWF0ZXJpYWwsIFtNZXNoUGhvbmdNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hUb29uTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoVG9vbk1hdGVyaWFsLCBbTWVzaFRvb25NYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hOb3JtYWxNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hOb3JtYWxNYXRlcmlhbCwgW01lc2hOb3JtYWxNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxNZXNoTGFtYmVydE1hdGVyaWFsLCBbTWVzaExhbWJlcnRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hEZXB0aE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaERlcHRoTWF0ZXJpYWwsIFtNZXNoRGVwdGhNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hEaXN0YW5jZU1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaERpc3RhbmNlTWF0ZXJpYWwsIFtNZXNoRGlzdGFuY2VNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hCYXNpY01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TWVzaEJhc2ljTWF0ZXJpYWwsIFtNZXNoQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hNYXRjYXBNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPE1lc2hNYXRjYXBNYXRlcmlhbCwgW01lc2hNYXRjYXBNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVEYXNoZWRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPExpbmVEYXNoZWRNYXRlcmlhbCwgW0xpbmVEYXNoZWRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVCYXNpY01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8TGluZUJhc2ljTWF0ZXJpYWwsIFtMaW5lQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcblxuZXhwb3J0IHR5cGUgTmd0UHJpbWl0aXZlID0gTmd0Tm9kZUVsZW1lbnQ8YW55LCBhbnk+O1xuZXhwb3J0IHR5cGUgTmd0VmFsdWUgPSBOZ3ROb2RlPHsgcmF3VmFsdWU6IGFueSB9LCB7fT47XG5cbmV4cG9ydCB0eXBlIE5ndExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxMaWdodFNoYWRvdywgdHlwZW9mIExpZ2h0U2hhZG93PjtcbmV4cG9ydCB0eXBlIE5ndFNwb3RMaWdodFNoYWRvdyA9IE5ndE5vZGU8U3BvdExpZ2h0U2hhZG93LCB0eXBlb2YgU3BvdExpZ2h0U2hhZG93PjtcbmV4cG9ydCB0eXBlIE5ndERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBOZ3ROb2RlPERpcmVjdGlvbmFsTGlnaHRTaGFkb3csIHR5cGVvZiBEaXJlY3Rpb25hbExpZ2h0U2hhZG93PjtcblxuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0ID0gTmd0TGlnaHQ8U3BvdExpZ2h0LCB0eXBlb2YgU3BvdExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50TGlnaHQgPSBOZ3RMaWdodDxQb2ludExpZ2h0LCB0eXBlb2YgUG9pbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RSZWN0QXJlYUxpZ2h0ID0gTmd0TGlnaHQ8UmVjdEFyZWFMaWdodCwgdHlwZW9mIFJlY3RBcmVhTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0SGVtaXNwaGVyZUxpZ2h0ID0gTmd0TGlnaHQ8SGVtaXNwaGVyZUxpZ2h0LCB0eXBlb2YgSGVtaXNwaGVyZUxpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndERpcmVjdGlvbmFsTGlnaHQgPSBOZ3RMaWdodDxEaXJlY3Rpb25hbExpZ2h0LCB0eXBlb2YgRGlyZWN0aW9uYWxMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RBbWJpZW50TGlnaHQgPSBOZ3RMaWdodDxBbWJpZW50TGlnaHQsIHR5cGVvZiBBbWJpZW50TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0TGlnaHRQcm9iZSA9IE5ndExpZ2h0PExpZ2h0UHJvYmUsIHR5cGVvZiBMaWdodFByb2JlPjtcblxuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFNwb3RMaWdodEhlbHBlciwgdHlwZW9mIFNwb3RMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RTa2VsZXRvbkhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxTa2VsZXRvbkhlbHBlciwgdHlwZW9mIFNrZWxldG9uSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8UG9pbnRMaWdodEhlbHBlciwgdHlwZW9mIFBvaW50TGlnaHRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0SGVtaXNwaGVyZUxpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEhlbWlzcGhlcmVMaWdodEhlbHBlciwgdHlwZW9mIEhlbWlzcGhlcmVMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEdyaWRIZWxwZXIsIHR5cGVvZiBHcmlkSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvbGFyR3JpZEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxQb2xhckdyaWRIZWxwZXIsIHR5cGVvZiBQb2xhckdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxEaXJlY3Rpb25hbExpZ2h0SGVscGVyLCB0eXBlb2YgRGlyZWN0aW9uYWxMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8Q2FtZXJhSGVscGVyLCB0eXBlb2YgQ2FtZXJhSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEJveEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxCb3hIZWxwZXIsIHR5cGVvZiBCb3hIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0Qm94M0hlbHBlciA9IE5ndE9iamVjdDNETm9kZTxCb3gzSGVscGVyLCB0eXBlb2YgQm94M0hlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RQbGFuZUhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxQbGFuZUhlbHBlciwgdHlwZW9mIFBsYW5lSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEFycm93SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPEFycm93SGVscGVyLCB0eXBlb2YgQXJyb3dIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0QXhlc0hlbHBlciA9IE5ndE9iamVjdDNETm9kZTxBeGVzSGVscGVyLCB0eXBlb2YgQXhlc0hlbHBlcj47XG5cbmV4cG9ydCB0eXBlIE5ndFRleHR1cmUgPSBOZ3ROb2RlPFRleHR1cmUsIHR5cGVvZiBUZXh0dXJlPjtcbmV4cG9ydCB0eXBlIE5ndFZpZGVvVGV4dHVyZSA9IE5ndE5vZGU8VmlkZW9UZXh0dXJlLCB0eXBlb2YgVmlkZW9UZXh0dXJlPjtcbmV4cG9ydCB0eXBlIE5ndERhdGFUZXh0dXJlID0gTmd0Tm9kZTxEYXRhVGV4dHVyZSwgdHlwZW9mIERhdGFUZXh0dXJlPjtcbmV4cG9ydCB0eXBlIE5ndERhdGEzRFRleHR1cmUgPSBOZ3ROb2RlPERhdGEzRFRleHR1cmUsIHR5cGVvZiBEYXRhM0RUZXh0dXJlPjtcbmV4cG9ydCB0eXBlIE5ndENvbXByZXNzZWRUZXh0dXJlID0gTmd0Tm9kZTxDb21wcmVzc2VkVGV4dHVyZSwgdHlwZW9mIENvbXByZXNzZWRUZXh0dXJlPjtcbmV4cG9ydCB0eXBlIE5ndEN1YmVUZXh0dXJlID0gTmd0Tm9kZTxDdWJlVGV4dHVyZSwgdHlwZW9mIEN1YmVUZXh0dXJlPjtcbmV4cG9ydCB0eXBlIE5ndENhbnZhc1RleHR1cmUgPSBOZ3ROb2RlPENhbnZhc1RleHR1cmUsIHR5cGVvZiBDYW52YXNUZXh0dXJlPjtcbmV4cG9ydCB0eXBlIE5ndERlcHRoVGV4dHVyZSA9IE5ndE5vZGU8RGVwdGhUZXh0dXJlLCB0eXBlb2YgRGVwdGhUZXh0dXJlPjtcblxuZXhwb3J0IHR5cGUgTmd0UmF5Y2FzdGVyID0gTmd0Tm9kZTxSYXljYXN0ZXIsIHR5cGVvZiBSYXljYXN0ZXI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yMk5vZGUgPSBOZ3ROb2RlPFZlY3RvcjIsIHR5cGVvZiBWZWN0b3IyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjNOb2RlID0gTmd0Tm9kZTxWZWN0b3IzLCB0eXBlb2YgVmVjdG9yMz47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3I0Tm9kZSA9IE5ndE5vZGU8VmVjdG9yNCwgdHlwZW9mIFZlY3RvcjQ+O1xuZXhwb3J0IHR5cGUgTmd0RXVsZXJOb2RlID0gTmd0Tm9kZTxFdWxlciwgdHlwZW9mIEV1bGVyPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDNOb2RlID0gTmd0Tm9kZTxNYXRyaXgzLCB0eXBlb2YgTWF0cml4Mz47XG5leHBvcnQgdHlwZSBOZ3RNYXRyaXg0Tm9kZSA9IE5ndE5vZGU8TWF0cml4NCwgdHlwZW9mIE1hdHJpeDQ+O1xuZXhwb3J0IHR5cGUgTmd0UXVhdGVybmlvbk5vZGUgPSBOZ3ROb2RlPFF1YXRlcm5pb24sIHR5cGVvZiBRdWF0ZXJuaW9uPjtcbmV4cG9ydCB0eXBlIE5ndEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgQnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBGbG9hdDE2QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBGbG9hdDMyQnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEludDhCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPEludDhCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBJbnQ4QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEludDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxJbnQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEludDE2QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEludDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxJbnQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIEludDMyQnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndFVpbnQ4QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxVaW50OEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFVpbnQ4QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VWludDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVWludDE2QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VWludDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVWludDMyQnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8SW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndENvbG9yID0gTmd0Tm9kZTxDb2xvciwgQ29sb3JSZXByZXNlbnRhdGlvbj47XG5leHBvcnQgdHlwZSBOZ3RGb2cgPSBOZ3ROb2RlPEZvZywgdHlwZW9mIEZvZz47XG5leHBvcnQgdHlwZSBOZ3RGb2dFeHAyID0gTmd0Tm9kZTxGb2dFeHAyLCB0eXBlb2YgRm9nRXhwMj47XG5leHBvcnQgdHlwZSBOZ3RTaGFwZSA9IE5ndE5vZGU8U2hhcGUsIHR5cGVvZiBTaGFwZT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVFbGVtZW50cyB7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL09iamVjdDNELmQudHNcblx0ICovXG5cdCduZ3Qtb2JqZWN0M0QnOiBOZ3RPYmplY3QzRDtcblxuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvYXVkaW8vQXVkaW8uZC50c1xuXHQgKi9cblx0J25ndC1hdWRpbyc6IE5ndEF1ZGlvO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvYXVkaW8vQXVkaW9MaXN0ZW5lci5kLnRzXG5cdCAqL1xuXHQnbmd0LWF1ZGlvLWxpc3RlbmVyJzogTmd0QXVkaW9MaXN0ZW5lcjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2F1ZGlvL1Bvc2l0aW9uYWxBdWRpby5kLnRzXG5cdCAqL1xuXHQnbmd0LXBvc2l0aW9uYWwtYXVkaW8nOiBOZ3RQb3NpdGlvbmFsQXVkaW87XG5cblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvTWVzaC5kLnRzXG5cdCAqL1xuXHQnbmd0LW1lc2gnOiBOZ3RNZXNoO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9JbnN0YW5jZWRNZXNoLmQudHNcblx0ICovXG5cdCduZ3QtaW5zdGFuY2VkLW1lc2gnOiBOZ3RJbnN0YW5jZWRNZXNoO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvc2NlbmVzL1NjZW5lLmQudHNcblx0ICovXG5cdCduZ3Qtc2NlbmUnOiBOZ3RTY2VuZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvU3ByaXRlLmQudHNcblx0ICovXG5cdCduZ3Qtc3ByaXRlJzogTmd0U3ByaXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9MT0QuZC50c1xuXHQgKi9cblx0J25ndC1sT0QnOiBOZ3RMT0Q7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9vYmplY3RzL1NraW5uZWRNZXNoLmQudHNcblx0ICovXG5cdCduZ3Qtc2tpbm5lZC1tZXNoJzogTmd0U2tpbm5lZE1lc2g7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9vYmplY3RzL1NrZWxldG9uLmQudHNcblx0ICovXG5cdCduZ3Qtc2tlbGV0b24nOiBOZ3RTa2VsZXRvbjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvQm9uZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWJvbmUnOiBOZ3RCb25lO1xuXG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9vYmplY3RzL0xpbmUuZC50c1xuXHQgKi9cblx0J25ndC1saW5lJzogTmd0TGluZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvTGluZVNlZ21lbnRzLmQudHNcblx0ICovXG5cdCduZ3QtbGluZS1zZWdtZW50cyc6IE5ndExpbmVTZWdtZW50cztcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvTGluZUxvb3AuZC50c1xuXHQgKi9cblx0J25ndC1saW5lLWxvb3AnOiBOZ3RMaW5lTG9vcDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL29iamVjdHMvUG9pbnRzLmQudHNcblx0ICovXG5cdCduZ3QtcG9pbnRzJzogTmd0UG9pbnRzO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvb2JqZWN0cy9Hcm91cC5kLnRzXG5cdCAqL1xuXHQnbmd0LWdyb3VwJzogTmd0R3JvdXA7XG5cblx0Ly8gY2FtZXJhc1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY2FtZXJhcy9DYW1lcmEuZC50c1xuXHQgKi9cblx0J25ndC1jYW1lcmEnOiBOZ3RDYW1lcmFOb2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY2FtZXJhcy9QZXJzcGVjdGl2ZUNhbWVyYS5kLnRzXG5cdCAqL1xuXHQnbmd0LXBlcnNwZWN0aXZlLWNhbWVyYSc6IE5ndFBlcnNwZWN0aXZlQ2FtZXJhO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY2FtZXJhcy9PcnRob2dyYXBoaWNDYW1lcmEuZC50c1xuXHQgKi9cblx0J25ndC1vcnRob2dyYXBoaWMtY2FtZXJhJzogTmd0T3J0aG9ncmFwaGljQ2FtZXJhO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY2FtZXJhcy9DdWJlQ2FtZXJhLmQudHNcblx0ICovXG5cdCduZ3QtY3ViZS1jYW1lcmEnOiBOZ3RDdWJlQ2FtZXJhO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY2FtZXJhcy9BcnJheUNhbWVyYS5kLnRzXG5cdCAqL1xuXHQnbmd0LWFycmF5LWNhbWVyYSc6IE5ndEFycmF5Q2FtZXJhO1xuXG5cdC8vIGdlb21ldHJ5XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0luc3RhbmNlZEJ1ZmZlckdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtaW5zdGFuY2VkLWJ1ZmZlci1nZW9tZXRyeSc6IE5ndEluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LWJ1ZmZlci1nZW9tZXRyeSc6IE5ndEJ1ZmZlckdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9XaXJlZnJhbWVHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXdpcmVmcmFtZS1nZW9tZXRyeSc6IE5ndFdpcmVmcmFtZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9UZXRyYWhlZHJvbkdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtdGV0cmFoZWRyb24tZ2VvbWV0cnknOiBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9PY3RhaGVkcm9uR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1vY3RhaGVkcm9uLWdlb21ldHJ5JzogTmd0T2N0YWhlZHJvbkdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9JY29zYWhlZHJvbkdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtaWNvc2FoZWRyb24tZ2VvbWV0cnknOiBOZ3RJY29zYWhlZHJvbkdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9Qb2x5aGVkcm9uR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1wb2x5aGVkcm9uLWdlb21ldHJ5JzogTmd0UG9seWhlZHJvbkdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9Eb2RlY2FoZWRyb25HZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LWRvZGVjYWhlZHJvbi1nZW9tZXRyeSc6IE5ndERvZGVjYWhlZHJvbkdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9UdWJlR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC10dWJlLWdlb21ldHJ5JzogTmd0VHViZUdlb21ldHJ5O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvZ2VvbWV0cmllcy9Ub3J1c0tub3RHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXRvcnVzLWtub3QtZ2VvbWV0cnknOiBOZ3RUb3J1c0tub3RHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvVG9ydXNHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXRvcnVzLWdlb21ldHJ5JzogTmd0VG9ydXNHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvU3BoZXJlR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1zcGhlcmUtZ2VvbWV0cnknOiBOZ3RTcGhlcmVHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvUmluZ0dlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtcmluZy1nZW9tZXRyeSc6IE5ndFJpbmdHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvUGxhbmVHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXBsYW5lLWdlb21ldHJ5JzogTmd0UGxhbmVHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvTGF0aGVHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LWxhdGhlLWdlb21ldHJ5JzogTmd0TGF0aGVHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvU2hhcGVHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LXNoYXBlLWdlb21ldHJ5JzogTmd0U2hhcGVHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvRXh0cnVkZUdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtZXh0cnVkZS1nZW9tZXRyeSc6IE5ndEV4dHJ1ZGVHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvRWRnZXNHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LWVkZ2VzLWdlb21ldHJ5JzogTmd0RWRnZXNHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvQ29uZUdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtY29uZS1nZW9tZXRyeSc6IE5ndENvbmVHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvQ3lsaW5kZXJHZW9tZXRyeS5kLnRzXG5cdCAqL1xuXHQnbmd0LWN5bGluZGVyLWdlb21ldHJ5JzogTmd0Q3lsaW5kZXJHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvQ2lyY2xlR2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1jaXJjbGUtZ2VvbWV0cnknOiBOZ3RDaXJjbGVHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvQm94R2VvbWV0cnkuZC50c1xuXHQgKi9cblx0J25ndC1ib3gtZ2VvbWV0cnknOiBOZ3RCb3hHZW9tZXRyeTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2dlb21ldHJpZXMvQ2Fwc3VsZUdlb21ldHJ5LmQudHNcblx0ICovXG5cdCduZ3QtY2Fwc3VsZS1nZW9tZXRyeSc6IE5ndENhcHN1bGVHZW9tZXRyeTtcblxuXHQvLyBtYXRlcmlhbHNcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL21hdGVyaWFscy9TaGFkb3dNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LXNoYWRvdy1tYXRlcmlhbCc6IE5ndFNoYWRvd01hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL1Nwcml0ZU1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3Qtc3ByaXRlLW1hdGVyaWFsJzogTmd0U3ByaXRlTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvUmF3U2hhZGVyTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1yYXctc2hhZGVyLW1hdGVyaWFsJzogTmd0UmF3U2hhZGVyTWF0ZXJpYWw7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9tYXRlcmlhbHMvU2hhZGVyTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RTaGFkZXJNYXRlcmlhbDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL21hdGVyaWFscy9Qb2ludHNNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LXBvaW50cy1tYXRlcmlhbCc6IE5ndFBvaW50c01hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hQaHlzaWNhbE1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1waHlzaWNhbC1tYXRlcmlhbCc6IE5ndE1lc2hQaHlzaWNhbE1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hTdGFuZGFyZE1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1zdGFuZGFyZC1tYXRlcmlhbCc6IE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hQaG9uZ01hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1waG9uZy1tYXRlcmlhbCc6IE5ndE1lc2hQaG9uZ01hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hUb29uTWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLXRvb24tbWF0ZXJpYWwnOiBOZ3RNZXNoVG9vbk1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hOb3JtYWxNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LW1lc2gtbm9ybWFsLW1hdGVyaWFsJzogTmd0TWVzaE5vcm1hbE1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hMYW1iZXJ0TWF0ZXJpYWwuZC50c1xuXHQgKi9cblx0J25ndC1tZXNoLWxhbWJlcnQtbWF0ZXJpYWwnOiBOZ3RNZXNoTGFtYmVydE1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hEZXB0aE1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1kZXB0aC1tYXRlcmlhbCc6IE5ndE1lc2hEZXB0aE1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hEaXN0YW5jZU1hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1kaXN0YW5jZS1tYXRlcmlhbCc6IE5ndE1lc2hEaXN0YW5jZU1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hCYXNpY01hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbCc6IE5ndE1lc2hCYXNpY01hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL01lc2hNYXRjYXBNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LW1lc2gtbWF0Y2FwLW1hdGVyaWFsJzogTmd0TWVzaE1hdGNhcE1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL0xpbmVEYXNoZWRNYXRlcmlhbC5kLnRzXG5cdCAqL1xuXHQnbmd0LWxpbmUtZGFzaGVkLW1hdGVyaWFsJzogTmd0TGluZURhc2hlZE1hdGVyaWFsO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0ZXJpYWxzL0xpbmVCYXNpY01hdGVyaWFsLmQudHNcblx0ICovXG5cdCduZ3QtbGluZS1iYXNpYy1tYXRlcmlhbCc6IE5ndExpbmVCYXNpY01hdGVyaWFsO1xuXG5cdC8vIHByaW1pdGl2ZVxuXHQnbmd0LXByaW1pdGl2ZSc6IE5ndFByaW1pdGl2ZTtcblxuXHQvLyByYXdWYWx1ZVxuXHQnbmd0LXZhbHVlJzogTmd0VmFsdWU7XG5cblx0Ly8gbGlnaHRzIGFuZCBvdGhlclxuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL1Nwb3RMaWdodFNoYWRvdy5kLnRzXG5cdCAqL1xuXHQnbmd0LXNwb3QtbGlnaHQtc2hhZG93JzogTmd0U3BvdExpZ2h0U2hhZG93O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL1Nwb3RMaWdodC5kLnRzXG5cdCAqL1xuXHQnbmd0LXNwb3QtbGlnaHQnOiBOZ3RTcG90TGlnaHQ7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9saWdodHMvUG9pbnRMaWdodC5kLnRzXG5cdCAqL1xuXHQnbmd0LXBvaW50LWxpZ2h0JzogTmd0UG9pbnRMaWdodDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2xpZ2h0cy9SZWN0QXJlYUxpZ2h0LmQudHNcblx0ICovXG5cdCduZ3QtcmVjdC1hcmVhLWxpZ2h0JzogTmd0UmVjdEFyZWFMaWdodDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2xpZ2h0cy9IZW1pc3BoZXJlTGlnaHQuZC50c1xuXHQgKi9cblx0J25ndC1oZW1pc3BoZXJlLWxpZ2h0JzogTmd0SGVtaXNwaGVyZUxpZ2h0O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL0RpcmVjdGlvbmFsTGlnaHRTaGFkb3cuZC50c1xuXHQgKi9cblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1zaGFkb3cnOiBOZ3REaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbGlnaHRzL0RpcmVjdGlvbmFsTGlnaHQuZC50c1xuXHQgKi9cblx0J25ndC1kaXJlY3Rpb25hbC1saWdodCc6IE5ndERpcmVjdGlvbmFsTGlnaHQ7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9saWdodHMvQW1iaWVudExpZ2h0LmQudHNcblx0ICovXG5cdCduZ3QtYW1iaWVudC1saWdodCc6IE5ndEFtYmllbnRMaWdodDtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2xpZ2h0cy9MaWdodFNoYWRvd1xuXHQgKi9cblx0J25ndC1saWdodC1zaGFkb3cnOiBOZ3RMaWdodFNoYWRvdztcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2xpZ2h0cy9MaWdodFByb2JlLmQudHNcblx0ICovXG5cdCduZ3QtbGlnaHQtcHJvYmUnOiBOZ3RMaWdodFByb2JlO1xuXG5cdC8vIGhlbHBlcnNcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2hlbHBlcnMvU3BvdExpZ2h0SGVscGVyLmQudHNcblx0ICovXG5cdCduZ3Qtc3BvdC1saWdodC1oZWxwZXInOiBOZ3RTcG90TGlnaHRIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL1NrZWxldG9uSGVscGVyLmQudHNcblx0ICovXG5cdCduZ3Qtc2tlbGV0b24taGVscGVyJzogTmd0U2tlbGV0b25IZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL1BvaW50TGlnaHRIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1wb2ludC1saWdodC1oZWxwZXInOiBOZ3RQb2ludExpZ2h0SGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9IZW1pc3BoZXJlTGlnaHRIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1oZW1pc3BoZXJlLWxpZ2h0LWhlbHBlcic6IE5ndEhlbWlzcGhlcmVMaWdodEhlbHBlcjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2hlbHBlcnMvR3JpZEhlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LWdyaWQtaGVscGVyJzogTmd0R3JpZEhlbHBlcjtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2hlbHBlcnMvUG9sYXJHcmlkSGVscGVyLmQudHNcblx0ICovXG5cdCduZ3QtcG9sYXItZ3JpZC1oZWxwZXInOiBOZ3RQb2xhckdyaWRIZWxwZXI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9oZWxwZXJzL0RpcmVjdGlvbmFsTGlnaHRIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1oZWxwZXInOiBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9DYW1lcmFIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1jYW1lcmEtaGVscGVyJzogTmd0Q2FtZXJhSGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9Cb3hIZWxwZXIuZC50c1xuXHQgKi9cblx0J25ndC1ib3gtaGVscGVyJzogTmd0Qm94SGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9Cb3gzSGVscGVyLmQudHNcblx0ICovXG5cdCduZ3QtYm94My1oZWxwZXInOiBOZ3RCb3gzSGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9QbGFuZUhlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LXBsYW5lLWhlbHBlcic6IE5ndFBsYW5lSGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9BcnJvd0hlbHBlci5kLnRzXG5cdCAqL1xuXHQnbmd0LWFycm93LWhlbHBlcic6IE5ndEFycm93SGVscGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvaGVscGVycy9BeGVzSGVscGVyLmQudHNcblx0ICovXG5cdCduZ3QtYXhlcy1oZWxwZXInOiBOZ3RBeGVzSGVscGVyO1xuXG5cdC8vIHRleHR1cmVzXG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy90ZXh0dXJlcy9UZXh0dXJlLmQudHNcblx0ICovXG5cdCduZ3QtdGV4dHVyZSc6IE5ndFRleHR1cmU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy90ZXh0dXJlcy9WaWRlb1RleHR1cmUuZC50c1xuXHQgKi9cblx0J25ndC12aWRlby10ZXh0dXJlJzogTmd0VmlkZW9UZXh0dXJlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvdGV4dHVyZXMvRGF0YVRleHR1cmUuZC50c1xuXHQgKi9cblx0J25ndC1kYXRhLXRleHR1cmUnOiBOZ3REYXRhVGV4dHVyZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL3RleHR1cmVzL0RhdGEzRFRleHR1cmUuZC50c1xuXHQgKi9cblx0J25ndC1kYXRhM0QtdGV4dHVyZSc6IE5ndERhdGEzRFRleHR1cmU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy90ZXh0dXJlcy9Db21wcmVzc2VkVGV4dHVyZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWNvbXByZXNzZWQtdGV4dHVyZSc6IE5ndENvbXByZXNzZWRUZXh0dXJlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvdGV4dHVyZXMvQ3ViZVRleHR1cmUuZC50c1xuXHQgKi9cblx0J25ndC1jdWJlLXRleHR1cmUnOiBOZ3RDdWJlVGV4dHVyZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL3RleHR1cmVzL0NhbnZhc1RleHR1cmUuZC50c1xuXHQgKi9cblx0J25ndC1jYW52YXMtdGV4dHVyZSc6IE5ndENhbnZhc1RleHR1cmU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy90ZXh0dXJlcy9EZXB0aFRleHR1cmUuZC50c1xuXHQgKi9cblx0J25ndC1kZXB0aC10ZXh0dXJlJzogTmd0RGVwdGhUZXh0dXJlO1xuXG5cdC8vIG1pc2Ncblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvUmF5Y2FzdGVyLmQudHNcblx0ICovXG5cdCduZ3QtcmF5Y2FzdGVyJzogTmd0UmF5Y2FzdGVyO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9WZWN0b3IyLmQudHNcblx0ICovXG5cdCduZ3QtdmVjdG9yMic6IE5ndFZlY3RvcjJOb2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9WZWN0b3IzLmQudHNcblx0ICovXG5cdCduZ3QtdmVjdG9yMyc6IE5ndFZlY3RvcjNOb2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9WZWN0b3I0LmQudHNcblx0ICovXG5cdCduZ3QtdmVjdG9yNCc6IE5ndFZlY3RvcjROb2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9FdWxlci5kLnRzXG5cdCAqL1xuXHQnbmd0LWV1bGVyJzogTmd0RXVsZXJOb2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9NYXRyaXgzLmQudHNcblx0ICovXG5cdCduZ3QtbWF0cml4Myc6IE5ndE1hdHJpeDNOb2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9NYXRyaXg0LmQudHNcblx0ICovXG5cdCduZ3QtbWF0cml4NCc6IE5ndE1hdHJpeDROb2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9RdWF0ZXJuaW9uLmQudHNcblx0ICovXG5cdCduZ3QtcXVhdGVybmlvbic6IE5ndFF1YXRlcm5pb25Ob2RlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJBdHRyaWJ1dGUuZC50c1xuXHQgKi9cblx0J25ndC1idWZmZXItYXR0cmlidXRlJzogTmd0QnVmZmVyQXR0cmlidXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJBdHRyaWJ1dGUuZC50c1xuXHQgKiBAc3ltYm9sIEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGVcblx0ICovXG5cdCduZ3QtZmxvYXQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvQnVmZmVyQXR0cmlidXRlLmQudHNcblx0ICogQHN5bWJvbCBGbG9hdDMyQnVmZmVyQXR0cmlidXRlXG5cdCAqL1xuXHQnbmd0LWZsb2F0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0J1ZmZlckF0dHJpYnV0ZS5kLnRzXG5cdCAqIEBzeW1ib2wgSW50OEJ1ZmZlckF0dHJpYnV0ZVxuXHQgKi9cblx0J25ndC1pbnQ4LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnQ4QnVmZmVyQXR0cmlidXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJBdHRyaWJ1dGUuZC50c1xuXHQgKiBAc3ltYm9sIEludDE2QnVmZmVyQXR0cmlidXRlXG5cdCAqL1xuXHQnbmd0LWludDE2LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvQnVmZmVyQXR0cmlidXRlLmQudHNcblx0ICogQHN5bWJvbCBJbnQzMkJ1ZmZlckF0dHJpYnV0ZVxuXHQgKi9cblx0J25ndC1pbnQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0J1ZmZlckF0dHJpYnV0ZS5kLnRzXG5cdCAqIEBzeW1ib2wgVWludDhCdWZmZXJBdHRyaWJ1dGVcblx0ICovXG5cdCduZ3QtdW5pdDgtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQ4QnVmZmVyQXR0cmlidXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvY29yZS9CdWZmZXJBdHRyaWJ1dGUuZC50c1xuXHQgKiBAc3ltYm9sIFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZVxuXHQgKi9cblx0J25ndC11bml0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0LyoqXG5cdCAqIEBmcm9tIG5vZGVfbW9kdWxlcy9AdHlwZXMvdGhyZWUvc3JjL2NvcmUvQnVmZmVyQXR0cmlidXRlLmQudHNcblx0ICogQHN5bWJvbCBVaW50MzJCdWZmZXJBdHRyaWJ1dGVcblx0ICovXG5cdCduZ3QtdW5pdDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50MzJCdWZmZXJBdHRyaWJ1dGU7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9jb3JlL0luc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZS5kLnRzXG5cdCAqL1xuXHQnbmd0LWluc3RhbmNlZC1idWZmZXItYXR0cmlidXRlJzogTmd0SW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvbWF0aC9Db2xvci5kLnRzXG5cdCAqL1xuXHQnbmd0LWNvbG9yJzogTmd0Q29sb3I7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9zY2VuZXMvRm9nLmQudHNcblx0ICovXG5cdCduZ3QtZm9nJzogTmd0Rm9nO1xuXHQvKipcblx0ICogQGZyb20gbm9kZV9tb2R1bGVzL0B0eXBlcy90aHJlZS9zcmMvc2NlbmVzL0ZvZ0V4cDIuZC50c1xuXHQgKi9cblx0J25ndC1mb2ctZXhwMic6IE5ndEZvZ0V4cDI7XG5cdC8qKlxuXHQgKiBAZnJvbSBub2RlX21vZHVsZXMvQHR5cGVzL3RocmVlL3NyYy9leHRyYXMvY29yZS9TaGFwZS5kLnRzXG5cdCAqL1xuXHQnbmd0LXNoYXBlJzogTmd0U2hhcGU7XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCBleHRlbmRzIFRocmVlRWxlbWVudHMge31cblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAgZXh0ZW5kcyBOZ3ROb2RlRXZlbnRNYXA8Tmd0SW5zdGFuY2VOb2RlPiB7fVxufVxuIl19
|
package/esm2022/lib/types.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTmd0UHJvcGVydGllczxUPiA9IFBpY2s8VCwgeyBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIChfOiBhbnkpID0+IGFueSA/IG5ldmVyIDogSyB9W2tleW9mIFRdPjtcbmV4cG9ydCB0eXBlIE5ndEFueVJlY29yZCA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmV4cG9ydCB0eXBlIE5ndEVxdUNvbmZpZyA9IHtcblx0LyoqIENvbXBhcmUgYXJyYXlzIGJ5IHJlZmVyZW5jZSBlcXVhbGl0eSBhID09PSBiIChkZWZhdWx0KSwgb3IgYnkgc2hhbGxvdyBlcXVhbGl0eSAqL1xuXHRhcnJheXM/OiAncmVmZXJlbmNlJyB8ICdzaGFsbG93Jztcblx0LyoqIENvbXBhcmUgb2JqZWN0cyBieSByZWZlcmVuY2UgZXF1YWxpdHkgYSA9PT0gYiAoZGVmYXVsdCksIG9yIGJ5IHNoYWxsb3cgZXF1YWxpdHkgKi9cblx0b2JqZWN0cz86ICdyZWZlcmVuY2UnIHwgJ3NoYWxsb3cnO1xuXHQvKiogSWYgdHJ1ZSB0aGUga2V5cyBpbiBib3RoIGEgYW5kIGIgbXVzdCBtYXRjaCAxOjEgKGRlZmF1bHQpLCBpZiBmYWxzZSBhJ3Mga2V5cyBtdXN0IGludGVyc2VjdCBiJ3MgKi9cblx0c3RyaWN0PzogYm9vbGVhbjtcbn07XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuXHRDYW1lcmEsXG5cdENsb2NrLFxuXHRFdmVudERpc3BhdGNoZXIsXG5cdEludGVyc2VjdGlvbixcblx0T2JqZWN0M0QsXG5cdE9ydGhvZ3JhcGhpY0NhbWVyYSxcblx0UGVyc3BlY3RpdmVDYW1lcmEsXG5cdFJheSxcblx0UmF5Y2FzdGVyLFxuXHRTY2VuZSxcblx0VmVjdG9yMixcblx0VmVjdG9yMyxcblx0V2ViR0xSZW5kZXJlcixcblx0V2ViR0xSZW5kZXJlclBhcmFtZXRlcnMsXG5cdFdlYkdMU2hhZG93TWFwLFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RPYmplY3QzRE5vZGUgfSBmcm9tICcuL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi91dGlscy9zaWduYWwtc3RvcmUnO1xuXG5leHBvcnQgdHlwZSBOZ3RQcm9wZXJ0aWVzPFQ+ID0gUGljazxULCB7IFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgKF86IGFueSkgPT4gYW55ID8gbmV2ZXIgOiBLIH1ba2V5b2YgVF0+O1xuZXhwb3J0IHR5cGUgTmd0QW55UmVjb3JkID0gUmVjb3JkPHN0cmluZywgYW55PjtcblxuZXhwb3J0IHR5cGUgTmd0RXF1Q29uZmlnID0ge1xuXHQvKiogQ29tcGFyZSBhcnJheXMgYnkgcmVmZXJlbmNlIGVxdWFsaXR5IGEgPT09IGIgKGRlZmF1bHQpLCBvciBieSBzaGFsbG93IGVxdWFsaXR5ICovXG5cdGFycmF5cz86ICdyZWZlcmVuY2UnIHwgJ3NoYWxsb3cnO1xuXHQvKiogQ29tcGFyZSBvYmplY3RzIGJ5IHJlZmVyZW5jZSBlcXVhbGl0eSBhID09PSBiIChkZWZhdWx0KSwgb3IgYnkgc2hhbGxvdyBlcXVhbGl0eSAqL1xuXHRvYmplY3RzPzogJ3JlZmVyZW5jZScgfCAnc2hhbGxvdyc7XG5cdC8qKiBJZiB0cnVlIHRoZSBrZXlzIGluIGJvdGggYSBhbmQgYiBtdXN0IG1hdGNoIDE6MSAoZGVmYXVsdCksIGlmIGZhbHNlIGEncyBrZXlzIG11c3QgaW50ZXJzZWN0IGIncyAqL1xuXHRzdHJpY3Q/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cblx0fCBOZ3RSZW5kZXJlckxpa2Vcblx0fCAoKGNhbnZhczogTmd0Q2FudmFzRWxlbWVudCkgPT4gTmd0UmVuZGVyZXJMaWtlKVxuXHR8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxXZWJHTFJlbmRlcmVyPiB8IFdlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuXHR8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RDYW52YXNPcHRpb25zIHtcblx0LyoqIEEgdGhyZWVqcyByZW5kZXJlciBpbnN0YW5jZSBvciBwcm9wcyB0aGF0IGdvIGludG8gdGhlIGRlZmF1bHQgcmVuZGVyZXIgKi9cblx0Z2w/OiBOZ3RHTE9wdGlvbnM7XG5cdC8qKiBEaW1lbnNpb25zIHRvIGZpdCB0aGUgcmVuZGVyZXIgdG8uIFdpbGwgbWVhc3VyZSBjYW52YXMgZGltZW5zaW9ucyBpZiBvbWl0dGVkICovXG5cdHNpemU/OiBOZ3RTaXplO1xuXHQvKipcblx0ICogRW5hYmxlcyBzaGFkb3dzIChieSBkZWZhdWx0IFBDRnNvZnQpLiBDYW4gYWNjZXB0IGBnbC5zaGFkb3dNYXBgIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nLFxuXHQgKiBidXQgYWxzbyBzdHJpbmdzOiAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJy5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2FwaS9lbi9yZW5kZXJlcnMvV2ViR0xSZW5kZXJlci5zaGFkb3dNYXBcblx0ICovXG5cdHNoYWRvd3M/OiBib29sZWFuIHwgJ2Jhc2ljJyB8ICdwZXJjZW50YWdlJyB8ICdzb2Z0JyB8ICd2YXJpYW5jZScgfCBQYXJ0aWFsPFdlYkdMU2hhZG93TWFwPjtcblx0LyoqXG5cdCAqIERpc2FibGVzIHRocmVlIHIxMzkgY29sb3IgbWFuYWdlbWVudC5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI21hbnVhbC9lbi9pbnRyb2R1Y3Rpb24vQ29sb3ItbWFuYWdlbWVudFxuXHQgKi9cblx0bGVnYWN5PzogYm9vbGVhbjtcblx0LyoqIFN3aXRjaCBvZmYgYXV0b21hdGljIHNSR0IgY29sb3Igc3BhY2UgYW5kIGdhbW1hIGNvcnJlY3Rpb24gKi9cblx0bGluZWFyPzogYm9vbGVhbjtcblx0LyoqIFVzZSBgVEhSRUUuTm9Ub25lTWFwcGluZ2AgaW5zdGVhZCBvZiBgVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nYCAqL1xuXHRmbGF0PzogYm9vbGVhbjtcblx0LyoqIENyZWF0ZXMgYW4gb3J0aG9ncmFwaGljIGNhbWVyYSAqL1xuXHRvcnRob2dyYXBoaWM/OiBib29sZWFuO1xuXHQvKipcblx0ICogUjNGJ3MgcmVuZGVyIG1vZGUuIFNldCB0byBgZGVtYW5kYCB0byBvbmx5IHJlbmRlciBvbiBzdGF0ZSBjaGFuZ2Ugb3IgYG5ldmVyYCB0byB0YWtlIGNvbnRyb2wuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNvbi1kZW1hbmQtcmVuZGVyaW5nXG5cdCAqL1xuXHRmcmFtZWxvb3A/OiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJztcblx0LyoqXG5cdCAqIFIzRiBwZXJmb3JtYW5jZSBvcHRpb25zIGZvciBhZGFwdGl2ZSBwZXJmb3JtYW5jZS5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI21vdmVtZW50LXJlZ3Jlc3Npb25cblx0ICovXG5cdHBlcmZvcm1hbmNlPzogUGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pjtcblx0LyoqIFRhcmdldCBwaXhlbCByYXRpby4gQ2FuIGNsYW1wIGJldHdlZW4gYSByYW5nZTogYFttaW4sIG1heF1gICovXG5cdGRwcj86IE5ndERwcjtcblx0LyoqIFByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByYXljYXN0ZXIgKi9cblx0cmF5Y2FzdGVyPzogUGFydGlhbDxSYXljYXN0ZXI+O1xuXHQvKiogQSBgU2NlbmVgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBzY2VuZSAqL1xuXHRzY2VuZT86IFNjZW5lIHwgUGFydGlhbDxTY2VuZT47XG5cdC8qKiBBIGBDYW1lcmFgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBjYW1lcmEgKi9cblx0Y2FtZXJhPzogKFxuXHRcdHwgTmd0Q2FtZXJhXG5cdFx0fCBQYXJ0aWFsPFxuXHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPiAmXG5cdFx0XHRcdFx0Tmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8T3J0aG9ncmFwaGljQ2FtZXJhLCB0eXBlb2YgT3J0aG9ncmFwaGljQ2FtZXJhPlxuXHRcdCAgPlxuXHQpICYge1xuXHRcdC8qKiBGbGFncyB0aGUgY2FtZXJhIGFzIG1hbnVhbCwgcHV0dGluZyBwcm9qZWN0aW9uIGludG8geW91ciBvd24gaGFuZHMgKi9cblx0XHRtYW51YWw/OiBib29sZWFuO1xuXHR9O1xuXHQvKiogQW4gUjNGIGV2ZW50IG1hbmFnZXIgdG8gbWFuYWdlIGVsZW1lbnRzJyBwb2ludGVyIGV2ZW50cyAqL1xuXHRldmVudHM/OiAoc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikgPT4gTmd0RXZlbnRNYW5hZ2VyPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSB0YXJnZXQgd2hlcmUgZXZlbnRzIGFyZSBiZWluZyBzdWJzY3JpYmVkIHRvLCBkZWZhdWx0OiB0aGUgZGl2IHRoYXQgd3JhcHMgY2FudmFzICovXG5cdGV2ZW50U291cmNlPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSBldmVudCBwcmVmaXggdGhhdCBpcyBjYXN0IGludG8gY2FudmFzIHBvaW50ZXIgeC95IGV2ZW50cywgZGVmYXVsdDogXCJvZmZzZXRcIiAqL1xuXHRldmVudFByZWZpeD86ICdvZmZzZXQnIHwgJ2NsaWVudCcgfCAncGFnZScgfCAnbGF5ZXInIHwgJ3NjcmVlbic7XG5cdC8qKiBEZWZhdWx0IGNvb3JkaW5hdGUgZm9yIHRoZSBjYW1lcmEgdG8gbG9vayBhdCAqL1xuXHRsb29rQXQ/OiBWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0SW50ZXJzZWN0aW9uIGV4dGVuZHMgSW50ZXJzZWN0aW9uIHtcblx0LyoqIFRoZSBldmVudCBzb3VyY2UgKHRoZSBvYmplY3Qgd2hpY2ggcmVnaXN0ZXJlZCB0aGUgaGFuZGxlcikgKi9cblx0ZXZlbnRPYmplY3Q6IE9iamVjdDNEO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndEludGVyc2VjdGlvbkV2ZW50PFRTb3VyY2VFdmVudD4gZXh0ZW5kcyBOZ3RJbnRlcnNlY3Rpb24ge1xuXHQvKiogVGhlIGV2ZW50IHNvdXJjZSAodGhlIG9iamVjdCB3aGljaCByZWdpc3RlcmVkIHRoZSBoYW5kbGVyKSAqL1xuXHRldmVudE9iamVjdDogT2JqZWN0M0Q7XG5cdC8qKiBBbiBhcnJheSBvZiBpbnRlcnNlY3Rpb25zICovXG5cdGludGVyc2VjdGlvbnM6IE5ndEludGVyc2VjdGlvbltdO1xuXHQvKiogdmVjMy5zZXQocG9pbnRlci54LCBwb2ludGVyLnksIDApLnVucHJvamVjdChjYW1lcmEpICovXG5cdHVucHJvamVjdGVkUG9pbnQ6IFZlY3RvcjM7XG5cdC8qKiBOb3JtYWxpemVkIGV2ZW50IGNvb3JkaW5hdGVzICovXG5cdHBvaW50ZXI6IFZlY3RvcjI7XG5cdC8qKiBEZWx0YSBiZXR3ZWVuIGZpcnN0IGNsaWNrIGFuZCB0aGlzIGV2ZW50ICovXG5cdGRlbHRhOiBudW1iZXI7XG5cdC8qKiBUaGUgcmF5IHRoYXQgcGllcmNlZCBpdCAqL1xuXHRyYXk6IFJheTtcblx0LyoqIFRoZSBjYW1lcmEgdGhhdCB3YXMgdXNlZCBieSB0aGUgcmF5Y2FzdGVyICovXG5cdGNhbWVyYTogTmd0Q2FtZXJhO1xuXHQvKiogc3RvcFByb3BhZ2F0aW9uIHdpbGwgc3RvcCB1bmRlcmx5aW5nIGhhbmRsZXJzIGZyb20gZmlyaW5nICovXG5cdHN0b3BQcm9wYWdhdGlvbjogKCkgPT4gdm9pZDtcblx0LyoqIFRoZSBvcmlnaW5hbCBob3N0IGV2ZW50ICovXG5cdG5hdGl2ZUV2ZW50OiBUU291cmNlRXZlbnQ7XG5cdC8qKiBJZiB0aGUgZXZlbnQgd2FzIHN0b3BwZWQgYnkgY2FsbGluZyBzdG9wUHJvcGFnYXRpb24gKi9cblx0c3RvcHBlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgTmd0Q2FtZXJhID0gT3J0aG9ncmFwaGljQ2FtZXJhIHwgUGVyc3BlY3RpdmVDYW1lcmE7XG5leHBvcnQgdHlwZSBOZ3RUaHJlZUV2ZW50PFRFdmVudD4gPSBOZ3RJbnRlcnNlY3Rpb25FdmVudDxURXZlbnQ+ICYgTmd0UHJvcGVydGllczxURXZlbnQ+O1xuZXhwb3J0IHR5cGUgTmd0RG9tRXZlbnQgPSBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50IHwgV2hlZWxFdmVudDtcblxuZXhwb3J0IHR5cGUgTmd0RXZlbnRIYW5kbGVycyA9IHtcblx0Y2xpY2s/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4pID0+IHZvaWQ7XG5cdGNvbnRleHRtZW51PzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+KSA9PiB2b2lkO1xuXHRkYmxjbGljaz86IChldmVudDogTmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50PikgPT4gdm9pZDtcblx0cG9pbnRlcnVwPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJkb3duPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJvdmVyPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJvdXQ/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PikgPT4gdm9pZDtcblx0cG9pbnRlcmVudGVyPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHBvaW50ZXJsZWF2ZT86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuXHRwb2ludGVybW92ZT86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuXHRwb2ludGVybWlzc2VkPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXHRwb2ludGVyY2FuY2VsPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG5cdHdoZWVsPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFdoZWVsRXZlbnQ+KSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0RXZlbnRzID0ge1xuXHRbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IEV2ZW50TGlzdGVuZXI7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RGaWx0ZXJGdW5jdGlvbiA9IChpdGVtczogSW50ZXJzZWN0aW9uW10sIHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4pID0+IEludGVyc2VjdGlvbltdO1xuZXhwb3J0IHR5cGUgTmd0Q29tcHV0ZUZ1bmN0aW9uID0gKFxuXHRldmVudDogTmd0RG9tRXZlbnQsXG5cdHJvb3Q6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPixcblx0cHJldmlvdXM6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPiB8IG51bGwsXG4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIE5ndEV2ZW50TWFuYWdlcjxUVGFyZ2V0PiA9IHtcblx0LyoqIERldGVybWluZXMgaWYgdGhlIGV2ZW50IGxheWVyIGlzIGFjdGl2ZSAqL1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHQvKiogRXZlbnQgbGF5ZXIgcHJpb3JpdHksIGhpZ2hlciBwcmlvcml0aXplZCBsYXllcnMgY29tZSBmaXJzdCBhbmQgbWF5IHN0b3AoLXByb3BhZ2F0ZSkgbG93ZXIgbGF5ZXIgICovXG5cdHByaW9yaXR5OiBudW1iZXI7XG5cdC8qKiBUaGUgY29tcHV0ZSBmdW5jdGlvbiBuZWVkcyB0byBzZXQgdXAgdGhlIHJheWNhc3RlciBhbmQgYW4geHktIHBvaW50ZXIgICovXG5cdGNvbXB1dGU/OiBOZ3RDb21wdXRlRnVuY3Rpb247XG5cdC8qKiBUaGUgZmlsdGVyIGNhbiByZS1vcmRlciBvciByZS1zdHJ1Y3R1cmUgdGhlIGludGVyc2VjdGlvbnMgICovXG5cdGZpbHRlcj86IE5ndEZpbHRlckZ1bmN0aW9uO1xuXHQvKiogVGhlIHRhcmdldCBub2RlIHRoZSBldmVudCBsYXllciBpcyB0aWVkIHRvICovXG5cdGNvbm5lY3RlZD86IFRUYXJnZXQ7XG5cdC8qKiBBbGwgdGhlIHBvaW50ZXIgZXZlbnQgaGFuZGxlcnMgdGhyb3VnaCB3aGljaCB0aGUgaG9zdCBmb3J3YXJkcyBuYXRpdmUgZXZlbnRzICovXG5cdGhhbmRsZXJzPzogTmd0RXZlbnRzO1xuXHQvKiogQWxsb3dzIHJlLWNvbm5lY3RpbmcgdG8gYW5vdGhlciB0YXJnZXQgKi9cblx0Y29ubmVjdD86ICh0YXJnZXQ6IFRUYXJnZXQpID0+IHZvaWQ7XG5cdC8qKiBSZW1vdmVzIGFsbCBleGlzdGluZyBldmVudHMgaGFuZGxlcnMgZnJvbSB0aGUgdGFyZ2V0ICovXG5cdGRpc2Nvbm5lY3Q/OiAoKSA9PiB2b2lkO1xuXHQvKiogVHJpZ2dlcnMgYSBvblBvaW50ZXJNb3ZlIHdpdGggdGhlIGxhc3Qga25vd24gZXZlbnQuIFRoaXMgY2FuIGJlIHVzZWZ1bCB0byBlbmFibGUgcmF5Y2FzdGluZyB3aXRob3V0XG5cdCAqICBleHBsaWNpdCB1c2VyIGludGVyYWN0aW9uLCBmb3IgaW5zdGFuY2Ugd2hlbiB0aGUgY2FtZXJhIG1vdmVzIGEgaG92ZXJhYmxlIG9iamVjdCB1bmRlcm5lYXRoIHRoZSBjdXJzb3IuXG5cdCAqL1xuXHR1cGRhdGU/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RQb2ludGVyQ2FwdHVyZVRhcmdldCB7XG5cdGludGVyc2VjdGlvbjogTmd0SW50ZXJzZWN0aW9uO1xuXHR0YXJnZXQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCB0eXBlIE5ndEF0dGFjaEZ1bmN0aW9uPFRDaGlsZCA9IGFueSwgVFBhcmVudCA9IGFueT4gPSAoXG5cdHBhcmVudDogVFBhcmVudCxcblx0Y2hpbGQ6IFRDaGlsZCxcblx0c3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPixcbikgPT4gdm9pZCB8ICgoKSA9PiB2b2lkKTtcblxuZXhwb3J0IHR5cGUgTmd0QXR0YWNoYWJsZTxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+ID0gTmd0QXR0YWNoRnVuY3Rpb248VENoaWxkLCBUUGFyZW50PiB8IHN0cmluZyB8IHN0cmluZ1tdO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndEFmdGVyQXR0YWNoPFxuXHRUQ2hpbGQgZXh0ZW5kcyBOZ3RJbnN0YW5jZU5vZGUgPSBOZ3RJbnN0YW5jZU5vZGUsXG5cdFRQYXJlbnQgZXh0ZW5kcyBOZ3RJbnN0YW5jZU5vZGUgPSBOZ3RJbnN0YW5jZU5vZGUsXG4+IHtcblx0cGFyZW50OiBUUGFyZW50O1xuXHRub2RlOiBUQ2hpbGQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0TG9jYWxJbnN0YW5jZVN0YXRlIHtcblx0b2JqZWN0czogTmd0SW5zdGFuY2VOb2RlW107XG5cdG5vbk9iamVjdHM6IE5ndEluc3RhbmNlTm9kZVtdO1xuXHRwYXJlbnQ6IE5ndEluc3RhbmNlTm9kZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0TG9jYWxTdGF0ZSB7XG5cdC8qKiB0aGUgc3RvcmUgb2YgdGhlIGNhbnZhcyB0aGF0IHRoZSBpbnN0YW5jZSBpcyBiZWluZyByZW5kZXJlZCB0byAqL1xuXHRzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuXHQvLyBvYmplY3RzIHJlbGF0ZWQgdG8gdGhpcyBpbnN0YW5jZVxuXHRpbnN0YW5jZVN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RMb2NhbEluc3RhbmNlU3RhdGU+O1xuXHQvLyBzaG9ydGN1dCB0byBzaWduYWxzXG5cdHBhcmVudDogU2lnbmFsPE5ndExvY2FsSW5zdGFuY2VTdGF0ZVsncGFyZW50J10+O1xuXHRvYmplY3RzOiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydvYmplY3RzJ10+O1xuXHRub25PYmplY3RzOiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydub25PYmplY3RzJ10+O1xuXHQvLyBzaG9ydGN1dCB0byBhZGQvcmVtb3ZlIG9iamVjdCB0byBsaXN0XG5cdGFkZDogKGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUsIHR5cGU6ICdvYmplY3RzJyB8ICdub25PYmplY3RzJykgPT4gdm9pZDtcblx0cmVtb3ZlOiAoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgdHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnKSA9PiB2b2lkO1xuXHRzZXRQYXJlbnQ6IChwYXJlbnQ6IE5ndEluc3RhbmNlTm9kZSB8IG51bGwpID0+IHZvaWQ7XG5cdC8vIGlmIHRoaXMgVEhSRUUgaW5zdGFuY2UgaXMgYSBuZ3QtcHJpbWl0aXZlXG5cdHByaW1pdGl2ZT86IGJvb2xlYW47XG5cdC8vIGlmIHRoaXMgVEhSRUUgb2JqZWN0IGhhcyBhbnkgZXZlbnRzIGJvdW5kIHRvIGl0XG5cdGV2ZW50Q291bnQ6IG51bWJlcjtcblx0Ly8gbGlzdCBvZiBoYW5kbGVycyB0byBoYW5kbGUgdGhlIGV2ZW50c1xuXHRoYW5kbGVyczogUGFydGlhbDxOZ3RFdmVudEhhbmRsZXJzPjtcblx0Ly8gYXR0YWNoIGluZm9ybWF0aW9uIHNvIHRoYXQgd2UgY2FuIGRldGFjaCBhcyB3ZWxsIGFzIHJlc2V0XG5cdGF0dGFjaD86IHN0cmluZ1tdIHwgTmd0QXR0YWNoRnVuY3Rpb247XG5cdC8vIHByZXZpb3VzbHkgYXR0YWNoIGluZm9ybWF0aW9uIHNvIHdlIGNhbiByZXNldCBhcyB3ZWxsIGFzIGNsZWFuIHVwXG5cdHByZXZpb3VzQXR0YWNoPzogdW5rbm93biB8ICgoKSA9PiB2b2lkKTtcblx0Ly8gaXMgcmF3IHZhbHVlXG5cdGlzUmF3PzogYm9vbGVhbjtcblx0Ly8gcHJpb3JpdHkgZm9yIGJlZm9yZSByZW5kZXJcblx0cHJpb3JpdHk/OiBudW1iZXI7XG5cdG9uVXBkYXRlPzogKG5vZGU6IE5ndEluc3RhbmNlTm9kZSkgPT4gdm9pZDtcblx0b25BdHRhY2g/OiAoYWZ0ZXJBdHRhY2g6IE5ndEFmdGVyQXR0YWNoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZU5vZGU8VE5vZGUgPSBhbnk+ID0geyBfX25ndF9fOiBOZ3RMb2NhbFN0YXRlIH0gJiBOZ3RBbnlSZWNvcmQgJiBUTm9kZTtcblxuZXhwb3J0IHR5cGUgTmd0Q2FudmFzRWxlbWVudCA9IEhUTUxDYW52YXNFbGVtZW50IHwgT2Zmc2NyZWVuQ2FudmFzO1xuZXhwb3J0IHR5cGUgTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2sgPSAodGltZVN0YW1wOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIE5ndFJlbmRlcmVyTGlrZSA9IHsgcmVuZGVyOiAoc2NlbmU6IFNjZW5lLCBjYW1lcmE6IENhbWVyYSkgPT4gYW55IH07XG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFNYW51YWwgPSBOZ3RDYW1lcmEgJiB7IG1hbnVhbD86IGJvb2xlYW4gfTtcbmV4cG9ydCB0eXBlIE5ndERwciA9IG51bWJlciB8IFttaW46IG51bWJlciwgbWF4OiBudW1iZXJdO1xuZXhwb3J0IHR5cGUgTmd0U2l6ZSA9IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXI7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfTtcblxuZXhwb3J0IHR5cGUgTmd0Vmlld3BvcnQgPSBOZ3RTaXplICYge1xuXHQvKiogVGhlIGluaXRpYWwgcGl4ZWwgcmF0aW8gKi9cblx0aW5pdGlhbERwcjogbnVtYmVyO1xuXHQvKiogQ3VycmVudCBwaXhlbCByYXRpbyAqL1xuXHRkcHI6IG51bWJlcjtcblx0LyoqIHNpemUud2lkdGggLyB2aWV3cG9ydC53aWR0aCAqL1xuXHRmYWN0b3I6IG51bWJlcjtcblx0LyoqIENhbWVyYSBkaXN0YW5jZSAqL1xuXHRkaXN0YW5jZTogbnVtYmVyO1xuXHQvKiogQ2FtZXJhIGFzcGVjdCByYXRpbzogd2lkdGggLyBoZWlnaHQgKi9cblx0YXNwZWN0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RQZXJmb3JtYW5jZSA9IHtcblx0LyoqIEN1cnJlbnQgcGVyZm9ybWFuY2Ugbm9ybWFsLCBiZXR3ZWVuIG1pbiBhbmQgbWF4ICovXG5cdGN1cnJlbnQ6IG51bWJlcjtcblx0LyoqIEhvdyBsb3cgdGhlIHBlcmZvcm1hbmNlIGNhbiBnbywgYmV0d2VlbiAwIGFuZCBtYXggKi9cblx0bWluOiBudW1iZXI7XG5cdC8qKiBIb3cgaGlnaCB0aGUgcGVyZm9ybWFuY2UgY2FuIGdvLCBiZXR3ZWVuIG1pbiBhbmQgbWF4ICovXG5cdG1heDogbnVtYmVyO1xuXHQvKiogVGltZSB1bnRpbCBjdXJyZW50IHJldHVybnMgdG8gbWF4IGluIG1zICovXG5cdGRlYm91bmNlOiBudW1iZXI7XG5cdC8qKiBTZXRzIGN1cnJlbnQgdG8gbWluLCBwdXRzIHRoZSBzeXN0ZW0gaW4gcmVncmVzc2lvbiAqL1xuXHRyZWdyZXNzOiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0UmVuZGVyU3RhdGUgPSBOZ3RTdGF0ZSAmIHsgZGVsdGE6IG51bWJlcjsgZnJhbWU/OiBYUkZyYW1lIH07XG5cbmV4cG9ydCB0eXBlIE5ndEJlZm9yZVJlbmRlckV2ZW50PFRPYmplY3QgZXh0ZW5kcyBOZ3RJbnN0YW5jZU5vZGUgPSBOZ3RJbnN0YW5jZU5vZGU+ID0ge1xuXHRzdGF0ZTogTmd0UmVuZGVyU3RhdGU7XG5cdG9iamVjdDogVE9iamVjdDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndEJlZm9yZVJlbmRlclJlY29yZCA9IHtcblx0Y2FsbGJhY2s6IChzdGF0ZTogTmd0UmVuZGVyU3RhdGUpID0+IHZvaWQ7XG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5cdHByaW9yaXR5PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0SW50ZXJuYWxTdGF0ZSA9IHtcblx0YWN0aXZlOiBib29sZWFuO1xuXHRwcmlvcml0eTogbnVtYmVyO1xuXHRmcmFtZXM6IG51bWJlcjtcblx0bGFzdEV2ZW50OiBFbGVtZW50UmVmPE5ndERvbUV2ZW50IHwgbnVsbD47XG5cdGludGVyYWN0aW9uOiBPYmplY3QzRFtdO1xuXHRob3ZlcmVkOiBNYXA8c3RyaW5nLCBOZ3RUaHJlZUV2ZW50PE5ndERvbUV2ZW50Pj47XG5cdGNhcHR1cmVkTWFwOiBNYXA8bnVtYmVyLCBNYXA8T2JqZWN0M0QsIE5ndFBvaW50ZXJDYXB0dXJlVGFyZ2V0Pj47XG5cdGluaXRpYWxDbGljazogW3g6IG51bWJlciwgeTogbnVtYmVyXTtcblx0aW5pdGlhbEhpdHM6IE9iamVjdDNEW107XG5cdHN1YnNjcmliZXJzOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbXTtcblx0c3Vic2NyaWJlOiAoXG5cdFx0Y2FsbGJhY2s6IE5ndEJlZm9yZVJlbmRlclJlY29yZFsnY2FsbGJhY2snXSxcblx0XHRwcmlvcml0eT86IG51bWJlcixcblx0XHRzdG9yZT86IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPixcblx0KSA9PiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0U3RhdGUgPSB7XG5cdC8qKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIHJlbmRlcmVyICovXG5cdGdsOiBXZWJHTFJlbmRlcmVyO1xuXHQvKiogRGVmYXVsdCBjYW1lcmEgKi9cblx0Y2FtZXJhOiBOZ3RDYW1lcmFNYW51YWw7XG5cdC8qKiBEZWZhdWx0IHNjZW5lICovXG5cdHNjZW5lOiBTY2VuZTtcblx0LyoqIERlZmF1bHQgcmF5Y2FzdGVyICovXG5cdHJheWNhc3RlcjogUmF5Y2FzdGVyO1xuXHQvKiogRGVmYXVsdCBjbG9jayAqL1xuXHRjbG9jazogQ2xvY2s7XG5cdC8qKiBFdmVudCBsYXllciBpbnRlcmZhY2UsIGNvbnRhaW5zIHRoZSBldmVudCBoYW5kbGVyIGFuZCB0aGUgbm9kZSB0aGV5J3JlIGNvbm5lY3RlZCB0byAqL1xuXHRldmVudHM6IE5ndEV2ZW50TWFuYWdlcjxhbnk+O1xuXHQvKiogWFIgaW50ZXJmYWNlICovXG5cdHhyOiB7IGNvbm5lY3Q6ICgpID0+IHZvaWQ7IGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgfTtcblx0LyoqIEN1cnJlbnRseSB1c2VkIGNvbnRyb2xzICovXG5cdGNvbnRyb2xzOiBFdmVudERpc3BhdGNoZXIgfCBudWxsO1xuXHQvKiogTm9ybWFsaXplZCBldmVudCBjb29yZGluYXRlcyAqL1xuXHRwb2ludGVyOiBWZWN0b3IyO1xuXHQvKiBXaGV0aGVyIHRvIGVuYWJsZSByMTM5J3MgQ29sb3JNYW5hZ2VtZW50ICovXG5cdGxlZ2FjeTogYm9vbGVhbjtcblx0LyoqIFNob3J0Y3V0IHRvIGdsLm91dHB1dENvbG9yU3BhY2UgPSBMaW5lYXJTUkdCQ29sb3JTcGFjZSAqL1xuXHRsaW5lYXI6IGJvb2xlYW47XG5cdC8qKiBTaG9ydGN1dCB0byBnbC50b25lTWFwcGluZyA9IE5vVG9uZW1hcHBpbmcgKi9cblx0ZmxhdDogYm9vbGVhbjtcblx0LyoqIFJlbmRlciBsb29wIGZsYWdzICovXG5cdGZyYW1lbG9vcDogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcic7XG5cdC8qKiBBZGFwdGl2ZSBwZXJmb3JtYW5jZSBpbnRlcmZhY2UgKi9cblx0cGVyZm9ybWFuY2U6IE5ndFBlcmZvcm1hbmNlO1xuXHQvKiogUmVhY3RpdmUgcGl4ZWwtc2l6ZSBvZiB0aGUgY2FudmFzICovXG5cdHNpemU6IE5ndFNpemU7XG5cdC8qKiBSZWFjdGl2ZSBzaXplIG9mIHRoZSB2aWV3cG9ydCBpbiB0aHJlZWpzIHVuaXRzICovXG5cdHZpZXdwb3J0OiBOZ3RWaWV3cG9ydCAmIHtcblx0XHRnZXRDdXJyZW50Vmlld3BvcnQ6IChcblx0XHRcdGNhbWVyYT86IE5ndENhbWVyYSxcblx0XHRcdHRhcmdldD86IFZlY3RvcjMgfCBQYXJhbWV0ZXJzPFZlY3RvcjNbJ3NldCddPixcblx0XHRcdHNpemU/OiBOZ3RTaXplLFxuXHRcdCkgPT4gT21pdDxOZ3RWaWV3cG9ydCwgJ2RwcicgfCAnaW5pdGlhbERwcic+O1xuXHR9O1xuXHQvKiogRmxhZ3MgdGhlIGNhbnZhcyBmb3IgcmVuZGVyLCBidXQgZG9lc24ndCByZW5kZXIgaW4gaXRzZWxmICovXG5cdGludmFsaWRhdGU6IChmcmFtZXM/OiBudW1iZXIpID0+IHZvaWQ7XG5cdC8qKiBBZHZhbmNlIChyZW5kZXIpIG9uZSBzdGVwICovXG5cdGFkdmFuY2U6ICh0aW1lc3RhbXA6IG51bWJlciwgcnVuR2xvYmFsRWZmZWN0cz86IGJvb2xlYW4pID0+IHZvaWQ7XG5cdC8qKiBTaG9ydGN1dCB0byBzZXR0aW5nIHRoZSBldmVudCBsYXllciAqL1xuXHRzZXRFdmVudHM6IChldmVudHM6IFBhcnRpYWw8Tmd0RXZlbnRNYW5hZ2VyPGFueT4+KSA9PiB2b2lkO1xuXHQvKipcblx0ICogU2hvcnRjdXQgdG8gbWFudWFsIHNpemluZ1xuXHQgKi9cblx0c2V0U2l6ZTogKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB0b3A/OiBudW1iZXIsIGxlZnQ/OiBudW1iZXIpID0+IHZvaWQ7XG5cdC8qKiBTaG9ydGN1dCB0byBtYW51YWwgc2V0dGluZyB0aGUgcGl4ZWwgcmF0aW8gKi9cblx0c2V0RHByOiAoZHByOiBOZ3REcHIpID0+IHZvaWQ7XG5cdC8qKiBTaG9ydGN1dCB0byBmcmFtZWxvb3AgZmxhZ3MgKi9cblx0c2V0RnJhbWVsb29wOiAoZnJhbWVsb29wPzogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcicpID0+IHZvaWQ7XG5cdC8qKiBXaGVuIHRoZSBjYW52YXMgd2FzIGNsaWNrZWQgYnV0IG5vdGhpbmcgd2FzIGhpdCAqL1xuXHQvKiogUG9pbnRlck1pc3NlZCBPYnNlcnZhYmxlICovXG5cdHBvaW50ZXJNaXNzZWQkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXHQvKiogSWYgdGhpcyBzdGF0ZSBtb2RlbCBpcyBsYXllcmVkICh2aWEgY3JlYXRlUG9ydGFsKSB0aGVuIHRoaXMgY29udGFpbnMgdGhlIHByZXZpb3VzIGxheWVyICovXG5cdHByZXZpb3VzUm9vdDogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+IHwgbnVsbDtcblx0LyoqIEludGVybmFscyAqL1xuXHRpbnRlcm5hbDogTmd0SW50ZXJuYWxTdGF0ZTtcbn07XG4iXX0=
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as THREE from 'three';
|
|
1
|
+
import { Color, ColorManagement, Layers, RGBAFormat, Texture, UnsignedByteType } from 'three';
|
|
3
2
|
import { getLocalState, invalidateInstance } from '../instance';
|
|
4
3
|
import { is } from './is';
|
|
5
4
|
import { checkUpdate } from './update';
|
|
6
5
|
// This function prepares a set of changes to be applied to the instance
|
|
7
|
-
|
|
6
|
+
function diffProps(instance, props) {
|
|
8
7
|
const propsEntries = Object.entries(props);
|
|
9
8
|
const changes = [];
|
|
10
9
|
for (const [propKey, propValue] of propsEntries) {
|
|
@@ -28,10 +27,9 @@ export function applyProps(instance, props) {
|
|
|
28
27
|
// if props is empty
|
|
29
28
|
if (!Object.keys(props).length)
|
|
30
29
|
return instance;
|
|
31
|
-
//
|
|
32
|
-
// filter equals, events , and reserved props
|
|
30
|
+
// filter equals, and reserved props
|
|
33
31
|
const localState = getLocalState(instance);
|
|
34
|
-
const rootState = localState
|
|
32
|
+
const rootState = localState?.store?.snapshot ?? {};
|
|
35
33
|
const changes = diffProps(instance, props);
|
|
36
34
|
for (let i = 0; i < changes.length; i++) {
|
|
37
35
|
let [key, value] = changes[i];
|
|
@@ -53,52 +51,50 @@ export function applyProps(instance, props) {
|
|
|
53
51
|
const currentInstance = instance;
|
|
54
52
|
const targetProp = currentInstance[key];
|
|
55
53
|
// special treatmen for objects with support for set/copy, and layers
|
|
56
|
-
if (targetProp && targetProp['set'] && (targetProp['copy'] || targetProp instanceof
|
|
57
|
-
const isColor = targetProp instanceof
|
|
54
|
+
if (targetProp && targetProp['set'] && (targetProp['copy'] || targetProp instanceof Layers)) {
|
|
55
|
+
const isColor = targetProp instanceof Color;
|
|
58
56
|
// if value is an array
|
|
59
57
|
if (Array.isArray(value)) {
|
|
60
58
|
if (targetProp['fromArray'])
|
|
61
59
|
targetProp['fromArray'](value);
|
|
62
60
|
else
|
|
63
61
|
targetProp['set'](...value);
|
|
64
|
-
}
|
|
65
|
-
// test again target.copy
|
|
62
|
+
} // test again target.copy
|
|
66
63
|
else if (targetProp['copy'] &&
|
|
67
64
|
value &&
|
|
68
65
|
value.constructor &&
|
|
69
66
|
targetProp.constructor.name === value.constructor.name) {
|
|
70
67
|
targetProp['copy'](value);
|
|
71
|
-
if (!
|
|
68
|
+
if (!ColorManagement && !rootState.linear && isColor)
|
|
72
69
|
targetProp['convertSRGBToLinear']();
|
|
73
|
-
}
|
|
74
|
-
// if nothing else fits, just set the single value, ignore undefined
|
|
70
|
+
} // if nothing else fits, just set the single value, ignore undefined
|
|
75
71
|
else if (value !== undefined) {
|
|
76
|
-
const isColor = targetProp instanceof
|
|
72
|
+
const isColor = targetProp instanceof Color;
|
|
77
73
|
// allow setting array scalars
|
|
78
74
|
if (!isColor && targetProp['setScalar'])
|
|
79
75
|
targetProp['setScalar'](value);
|
|
80
76
|
// layers have no copy function, copy the mask
|
|
81
|
-
else if (targetProp instanceof
|
|
77
|
+
else if (targetProp instanceof Layers && value instanceof Layers)
|
|
82
78
|
targetProp.mask = value.mask;
|
|
83
79
|
// otherwise just set ...
|
|
84
80
|
else
|
|
85
81
|
targetProp['set'](value);
|
|
86
82
|
// auto-convert srgb
|
|
87
|
-
if (!
|
|
83
|
+
if (!ColorManagement && !rootState?.linear && isColor)
|
|
88
84
|
targetProp.convertSRGBToLinear();
|
|
89
85
|
}
|
|
90
|
-
}
|
|
91
|
-
// else just overwrite the value
|
|
86
|
+
} // else just overwrite the value
|
|
92
87
|
else {
|
|
93
88
|
currentInstance[key] = value;
|
|
94
89
|
// auto-convert srgb textures
|
|
95
|
-
if (currentInstance[key] instanceof
|
|
96
|
-
currentInstance[key].format ===
|
|
97
|
-
currentInstance[key].type ===
|
|
90
|
+
if (currentInstance[key] instanceof Texture &&
|
|
91
|
+
currentInstance[key].format === RGBAFormat &&
|
|
92
|
+
currentInstance[key].type === UnsignedByteType) {
|
|
98
93
|
const texture = currentInstance[key];
|
|
99
94
|
if (rootState?.gl) {
|
|
100
95
|
if (is.colorSpaceExist(texture) && is.colorSpaceExist(rootState.gl))
|
|
101
96
|
texture.colorSpace = rootState.gl.outputColorSpace;
|
|
97
|
+
// @ts-expect-error - old version of threejs
|
|
102
98
|
else
|
|
103
99
|
texture.encoding = rootState.gl.outputEncoding;
|
|
104
100
|
}
|
|
@@ -108,20 +104,20 @@ export function applyProps(instance, props) {
|
|
|
108
104
|
checkUpdate(targetProp);
|
|
109
105
|
invalidateInstance(instance);
|
|
110
106
|
}
|
|
111
|
-
const
|
|
112
|
-
const parent = localState
|
|
113
|
-
if (parent && rootState.internal && instance['raycast'] &&
|
|
107
|
+
const instanceHandlersCount = localState?.eventCount;
|
|
108
|
+
const parent = localState?.instanceStore?.get('parent');
|
|
109
|
+
if (parent && rootState.internal && instance['raycast'] && instanceHandlersCount !== localState?.eventCount) {
|
|
114
110
|
// Pre-emptively remove the instance from the interaction manager
|
|
115
111
|
const index = rootState.internal.interaction.indexOf(instance);
|
|
116
112
|
if (index > -1)
|
|
117
113
|
rootState.internal.interaction.splice(index, 1);
|
|
118
114
|
// Add the instance to the interaction manager only when it has handlers
|
|
119
|
-
if (localState
|
|
115
|
+
if (localState?.eventCount)
|
|
120
116
|
rootState.internal.interaction.push(instance);
|
|
121
117
|
}
|
|
122
|
-
if (parent && localState
|
|
123
|
-
localState.
|
|
118
|
+
if (parent && localState?.onUpdate && changes.length) {
|
|
119
|
+
localState.onUpdate(instance);
|
|
124
120
|
}
|
|
125
121
|
return instance;
|
|
126
122
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFzQixFQUFFLEtBQW1CO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsTUFBTSxPQUFPLEdBQW9DLEVBQUUsQ0FBQztJQUVwRCxLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksWUFBWSxFQUFFO1FBQ2hELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakMsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUMzQixHQUFHLEdBQUcsWUFBWSxDQUFDO2FBQ25CO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFO2dCQUN4QyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7YUFDekI7U0FDRDtRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxD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QUN0QztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSwgdHlwZSBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi9pbnN0YW5jZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gZGlmZlByb3BzKGluc3RhbmNlOiBOZ3RBbnlSZWNvcmQsIHByb3BzOiBOZ3RBbnlSZWNvcmQpIHtcblx0Y29uc3QgcHJvcHNFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMocHJvcHMpO1xuXHRjb25zdCBjaGFuZ2VzOiBba2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duXVtdID0gW107XG5cblx0Zm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcblx0XHRsZXQga2V5ID0gcHJvcEtleTtcblx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KGluc3RhbmNlKSkge1xuXHRcdFx0aWYgKHByb3BLZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0fSBlbHNlIGlmIChwcm9wS2V5ID09PSAnb3V0cHV0RW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdvdXRwdXRDb2xvclNwYWNlJztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGlzLmVxdShwcm9wVmFsdWUsIGluc3RhbmNlW2tleV0pKSBjb250aW51ZTtcblx0XHRjaGFuZ2VzLnB1c2goW3Byb3BLZXksIHByb3BWYWx1ZV0pO1xuXHR9XG5cblx0cmV0dXJuIGNoYW5nZXM7XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gYXBwbGllcyBhIHNldCBvZiBjaGFuZ2VzIHRvIHRoZSBpbnN0YW5jZVxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UHJvcHMoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHQvLyBpZiBwcm9wcyBpcyBlbXB0eVxuXHRpZiAoIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHJldHVybiBpbnN0YW5jZTtcblxuXHQvLyBGaWx0ZXIgZXF1YWxzLCBldmVudHMgYW5kIHJlc2VydmVkIHByb3BzXG5cdC8vIGZpbHRlciBlcXVhbHMsIGV2ZW50cyAsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGUuc3RvcmU/LmdldCgpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBOZ3RBbnlSZWNvcmQ7XG5cblx0XHQvLyBzcGVjaWFsIHRyZWF0bWVuIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3Igc2V0L2NvcHksIGFuZCBsYXllcnNcblx0XHRpZiAodGFyZ2V0UHJvcCAmJiB0YXJnZXRQcm9wWydzZXQnXSAmJiAodGFyZ2V0UHJvcFsnY29weSddIHx8IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpKSB7XG5cdFx0XHRjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuXHRcdFx0Ly8gaWYgdmFsdWUgaXMgYW4gYXJyYXlcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0XHRpZiAoKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnZnJvbUFycmF5J10pICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2Zyb21BcnJheSddKHZhbHVlKTtcblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSguLi52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHQvLyB0ZXN0IGFnYWluIHRhcmdldC5jb3B5XG5cdFx0XHRlbHNlIGlmIChcblx0XHRcdFx0KHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnY29weSddICYmXG5cdFx0XHRcdHZhbHVlICYmXG5cdFx0XHRcdHZhbHVlLmNvbnN0cnVjdG9yICYmXG5cdFx0XHRcdHRhcmdldFByb3AuY29uc3RydWN0b3IubmFtZSA9PT0gdmFsdWUuY29uc3RydWN0b3IubmFtZVxuXHRcdFx0KSB7XG5cdFx0XHRcdCh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2NvcHknXSh2YWx1ZSk7XG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGUubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3BbJ2NvbnZlcnRTUkdCVG9MaW5lYXInXSgpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiAodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSlcblx0XHRcdFx0XHQodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSh2YWx1ZSk7XG5cdFx0XHRcdC8vIGxheWVycyBoYXZlIG5vIGNvcHkgZnVuY3Rpb24sIGNvcHkgdGhlIG1hc2tcblx0XHRcdFx0ZWxzZSBpZiAodGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkxheWVycyAmJiB2YWx1ZSBpbnN0YW5jZW9mIFRIUkVFLkxheWVycylcblx0XHRcdFx0XHR0YXJnZXRQcm9wLm1hc2sgPSB2YWx1ZS5tYXNrO1xuXHRcdFx0XHQvLyBvdGhlcndpc2UganVzdCBzZXQgLi4uXG5cdFx0XHRcdGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10odmFsdWUpO1xuXG5cdFx0XHRcdC8vIGF1dG8tY29udmVydCBzcmdiXG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGU/LmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRIUkVFLlRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBUSFJFRS5SR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFRIUkVFLlVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVEhSRUUuVGV4dHVyZTtcblxuXHRcdFx0XHRpZiAocm9vdFN0YXRlPy5nbCkge1xuXHRcdFx0XHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QodGV4dHVyZSkgJiYgaXMuY29sb3JTcGFjZUV4aXN0KHJvb3RTdGF0ZS5nbCkpXG5cdFx0XHRcdFx0XHR0ZXh0dXJlLmNvbG9yU3BhY2UgPSByb290U3RhdGUuZ2wub3V0cHV0Q29sb3JTcGFjZTtcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnMgPSBsb2NhbFN0YXRlLmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGUucGFyZW50ID8gdW50cmFja2VkKGxvY2FsU3RhdGUucGFyZW50KSA6IG51bGw7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzICE9PSBsb2NhbFN0YXRlLmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZS5ldmVudENvdW50KSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24ucHVzaChpbnN0YW5jZSk7XG5cdH1cblxuXHRpZiAocGFyZW50ICYmIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUgJiYgbG9jYWxTdGF0ZS5hZnRlclVwZGF0ZS5vYnNlcnZlZCAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUuZW1pdChpbnN0YW5jZSk7XG5cdH1cblxuXHRyZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5RixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsU0FBUyxTQUFTLENBQUMsUUFBc0IsRUFBRSxLQUFtQjtJQUM3RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUM7SUFFcEQsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDNUIsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUNwQixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3pDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztZQUMxQixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxP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O0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yLCBDb2xvck1hbmFnZW1lbnQsIExheWVycywgUkdCQUZvcm1hdCwgVGV4dHVyZSwgVW5zaWduZWRCeXRlVHlwZSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSB9IGZyb20gJy4uL2luc3RhbmNlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCwgTmd0SW5zdGFuY2VOb2RlLCBOZ3RTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5mdW5jdGlvbiBkaWZmUHJvcHMoaW5zdGFuY2U6IE5ndEFueVJlY29yZCwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHRjb25zdCBwcm9wc0VudHJpZXMgPSBPYmplY3QuZW50cmllcyhwcm9wcyk7XG5cdGNvbnN0IGNoYW5nZXM6IFtrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd25dW10gPSBbXTtcblxuXHRmb3IgKGNvbnN0IFtwcm9wS2V5LCBwcm9wVmFsdWVdIG9mIHByb3BzRW50cmllcykge1xuXHRcdGxldCBrZXkgPSBwcm9wS2V5O1xuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRpZiAocHJvcEtleSA9PT0gJ2VuY29kaW5nJykge1xuXHRcdFx0XHRrZXkgPSAnY29sb3JTcGFjZSc7XG5cdFx0XHR9IGVsc2UgaWYgKHByb3BLZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaXMuZXF1KHByb3BWYWx1ZSwgaW5zdGFuY2Vba2V5XSkpIGNvbnRpbnVlO1xuXHRcdGNoYW5nZXMucHVzaChbcHJvcEtleSwgcHJvcFZhbHVlXSk7XG5cdH1cblxuXHRyZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBhcHBsaWVzIGEgc2V0IG9mIGNoYW5nZXMgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQcm9wcyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCBwcm9wczogTmd0QW55UmVjb3JkKSB7XG5cdC8vIGlmIHByb3BzIGlzIGVtcHR5XG5cdGlmICghT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkgcmV0dXJuIGluc3RhbmNlO1xuXG5cdC8vIGZpbHRlciBlcXVhbHMsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGU/LnN0b3JlPy5zbmFwc2hvdCA/PyAoe30gYXMgTmd0U3RhdGUpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XTtcblxuXHRcdC8vIHNwZWNpYWwgdHJlYXRtZW4gZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvciBzZXQvY29weSwgYW5kIGxheWVyc1xuXHRcdGlmICh0YXJnZXRQcm9wICYmIHRhcmdldFByb3BbJ3NldCddICYmICh0YXJnZXRQcm9wWydjb3B5J10gfHwgdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIExheWVycykpIHtcblx0XHRcdGNvbnN0IGlzQ29sb3IgPSB0YXJnZXRQcm9wIGluc3RhbmNlb2YgQ29sb3I7XG5cdFx0XHQvLyBpZiB2YWx1ZSBpcyBhbiBhcnJheVxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRcdGlmICh0YXJnZXRQcm9wWydmcm9tQXJyYXknXSkgdGFyZ2V0UHJvcFsnZnJvbUFycmF5J10odmFsdWUpO1xuXHRcdFx0XHRlbHNlIHRhcmdldFByb3BbJ3NldCddKC4uLnZhbHVlKTtcblx0XHRcdH0gLy8gdGVzdCBhZ2FpbiB0YXJnZXQuY29weVxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdHRhcmdldFByb3BbJ2NvcHknXSAmJlxuXHRcdFx0XHR2YWx1ZSAmJlxuXHRcdFx0XHR2YWx1ZS5jb25zdHJ1Y3RvciAmJlxuXHRcdFx0XHR0YXJnZXRQcm9wLmNvbnN0cnVjdG9yLm5hbWUgPT09IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWVcblx0XHRcdCkge1xuXHRcdFx0XHR0YXJnZXRQcm9wWydjb3B5J10odmFsdWUpO1xuXHRcdFx0XHRpZiAoIUNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcblx0XHRcdH0gLy8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBDb2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiB0YXJnZXRQcm9wWydzZXRTY2FsYXInXSkgdGFyZ2V0UHJvcFsnc2V0U2NhbGFyJ10odmFsdWUpO1xuXHRcdFx0XHQvLyBsYXllcnMgaGF2ZSBubyBjb3B5IGZ1bmN0aW9uLCBjb3B5IHRoZSBtYXNrXG5cdFx0XHRcdGVsc2UgaWYgKHRhcmdldFByb3AgaW5zdGFuY2VvZiBMYXllcnMgJiYgdmFsdWUgaW5zdGFuY2VvZiBMYXllcnMpIHRhcmdldFByb3AubWFzayA9IHZhbHVlLm1hc2s7XG5cdFx0XHRcdC8vIG90aGVyd2lzZSBqdXN0IHNldCAuLi5cblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSh2YWx1ZSk7XG5cblx0XHRcdFx0Ly8gYXV0by1jb252ZXJ0IHNyZ2Jcblx0XHRcdFx0aWYgKCFDb2xvck1hbmFnZW1lbnQgJiYgIXJvb3RTdGF0ZT8ubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3AuY29udmVydFNSR0JUb0xpbmVhcigpO1xuXHRcdFx0fVxuXHRcdH0gLy8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBSR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVGV4dHVyZTtcblx0XHRcdFx0aWYgKHJvb3RTdGF0ZT8uZ2wpIHtcblx0XHRcdFx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KHRleHR1cmUpICYmIGlzLmNvbG9yU3BhY2VFeGlzdChyb290U3RhdGUuZ2wpKVxuXHRcdFx0XHRcdFx0dGV4dHVyZS5jb2xvclNwYWNlID0gcm9vdFN0YXRlLmdsLm91dHB1dENvbG9yU3BhY2U7XG5cdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIG9sZCB2ZXJzaW9uIG9mIHRocmVlanNcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnNDb3VudCA9IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGU/Lmluc3RhbmNlU3RvcmU/LmdldCgncGFyZW50Jyk7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzQ291bnQgIT09IGxvY2FsU3RhdGU/LmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZT8uZXZlbnRDb3VudCkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnB1c2goaW5zdGFuY2UpO1xuXHR9XG5cblx0aWYgKHBhcmVudCAmJiBsb2NhbFN0YXRlPy5vblVwZGF0ZSAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUub25VcGRhdGUoaW5zdGFuY2UpO1xuXHR9XG5cblx0cmV0dXJuIGluc3RhbmNlO1xufVxuIl19
|
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
import { getLocalState } from '../instance';
|
|
2
2
|
import { applyProps } from './apply-props';
|
|
3
|
-
export function attach(object, value, paths = []) {
|
|
3
|
+
export function attach(object, value, paths = [], useApplyProps = false) {
|
|
4
4
|
const [base, ...remaining] = paths;
|
|
5
5
|
if (!base)
|
|
6
6
|
return;
|
|
7
7
|
if (remaining.length === 0) {
|
|
8
|
-
|
|
8
|
+
if (useApplyProps)
|
|
9
|
+
applyProps(object, { [base]: value });
|
|
10
|
+
else
|
|
11
|
+
object[base] = value;
|
|
9
12
|
}
|
|
10
13
|
else {
|
|
11
14
|
assignEmpty(object, base);
|
|
12
|
-
attach(object[base], value, remaining);
|
|
15
|
+
attach(object[base], value, remaining, useApplyProps);
|
|
13
16
|
}
|
|
14
17
|
}
|
|
15
18
|
export function detach(parent, child, attachProp) {
|
|
16
19
|
const childLocalState = getLocalState(child);
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
if (childLocalState) {
|
|
21
|
+
if (Array.isArray(attachProp))
|
|
22
|
+
attach(parent, childLocalState.previousAttach, attachProp, childLocalState.isRaw);
|
|
23
|
+
else
|
|
24
|
+
childLocalState.previousAttach();
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
27
|
function assignEmpty(obj, base) {
|
|
@@ -29,4 +32,4 @@ function assignEmpty(obj, base) {
|
|
|
29
32
|
export function createAttachFunction(cb) {
|
|
30
33
|
return (parent, child, store) => cb({ parent, child, store });
|
|
31
34
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYXR0YWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLFVBQVUsTUFBTSxDQUFDLE1BQW9CLEVBQUUsS0FBYyxFQUFFLFFBQWtCLEVBQUUsRUFBRSxhQUFhLEdBQUcsS0FBSztJQUN2RyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25DLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTztJQUVsQixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsSUFBSSxhQUFhO1lBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs7WUFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO1NBQU0sQ0FBQztRQUNQLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDRixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFvQixFQUFFLEtBQW1CLEVBQUUsVUFBd0M7SUFDekcsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUMzRyxlQUFlLENBQUMsY0FBNkIsRUFBRSxDQUFDO0lBQ3ZELENBQUM7QUFDRixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBaUIsRUFBRSxJQUFZO0lBQ25ELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25ILEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztBQUNGLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLEVBQXdHO0lBRXhHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2NhbFN0YXRlIH0gZnJvbSAnLi4vaW5zdGFuY2UnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RBdHRhY2hGdW5jdGlvbiwgTmd0U3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBhcHBseVByb3BzIH0gZnJvbSAnLi9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaChvYmplY3Q6IE5ndEFueVJlY29yZCwgdmFsdWU6IHVua25vd24sIHBhdGhzOiBzdHJpbmdbXSA9IFtdLCB1c2VBcHBseVByb3BzID0gZmFsc2UpOiB2b2lkIHtcblx0Y29uc3QgW2Jhc2UsIC4uLnJlbWFpbmluZ10gPSBwYXRocztcblx0aWYgKCFiYXNlKSByZXR1cm47XG5cblx0aWYgKHJlbWFpbmluZy5sZW5ndGggPT09IDApIHtcblx0XHRpZiAodXNlQXBwbHlQcm9wcykgYXBwbHlQcm9wcyhvYmplY3QsIHsgW2Jhc2VdOiB2YWx1ZSB9KTtcblx0XHRlbHNlIG9iamVjdFtiYXNlXSA9IHZhbHVlO1xuXHR9IGVsc2Uge1xuXHRcdGFzc2lnbkVtcHR5KG9iamVjdCwgYmFzZSk7XG5cdFx0YXR0YWNoKG9iamVjdFtiYXNlXSwgdmFsdWUsIHJlbWFpbmluZywgdXNlQXBwbHlQcm9wcyk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaChwYXJlbnQ6IE5ndEFueVJlY29yZCwgY2hpbGQ6IE5ndEFueVJlY29yZCwgYXR0YWNoUHJvcDogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbikge1xuXHRjb25zdCBjaGlsZExvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGNoaWxkKTtcblx0aWYgKGNoaWxkTG9jYWxTdGF0ZSkge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGF0dGFjaFByb3ApKSBhdHRhY2gocGFyZW50LCBjaGlsZExvY2FsU3RhdGUucHJldmlvdXNBdHRhY2gsIGF0dGFjaFByb3AsIGNoaWxkTG9jYWxTdGF0ZS5pc1Jhdyk7XG5cdFx0ZWxzZSAoY2hpbGRMb2NhbFN0YXRlLnByZXZpb3VzQXR0YWNoIGFzICgpID0+IHZvaWQpKCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gYXNzaWduRW1wdHkob2JqOiBOZ3RBbnlSZWNvcmQsIGJhc2U6IHN0cmluZykge1xuXHRpZiAoKCFPYmplY3QuaGFzT3duKG9iaiwgYmFzZSkgJiYgUmVmbGVjdCAmJiAhIVJlZmxlY3QuaGFzICYmICFSZWZsZWN0LmhhcyhvYmosIGJhc2UpKSB8fCBvYmpbYmFzZV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdG9ialtiYXNlXSA9IHt9O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBdHRhY2hGdW5jdGlvbjxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+KFxuXHRjYjogKHBhcmFtczogeyBwYXJlbnQ6IFRQYXJlbnQ7IGNoaWxkOiBUQ2hpbGQ7IHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4gfSkgPT4gKCgpID0+IHZvaWQpIHwgdm9pZCxcbik6IE5ndEF0dGFjaEZ1bmN0aW9uPFRDaGlsZCwgVFBhcmVudD4ge1xuXHRyZXR1cm4gKHBhcmVudCwgY2hpbGQsIHN0b3JlKSA9PiBjYih7IHBhcmVudCwgY2hpbGQsIHN0b3JlIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DestroyRef, inject } from '@angular/core';
|
|
2
|
+
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
+
import { injectStore } from '../store';
|
|
4
|
+
export function injectBeforeRender(cb, { priority = 0, injector } = {}) {
|
|
5
|
+
return assertInjector(injectBeforeRender, injector, () => {
|
|
6
|
+
const store = injectStore();
|
|
7
|
+
const sub = store.get('internal').subscribe(cb, priority, store);
|
|
8
|
+
inject(DestroyRef).onDestroy(() => void sub());
|
|
9
|
+
return sub;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLXJlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2JlZm9yZS1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHdkMsTUFBTSxVQUFVLGtCQUFrQixDQUNqQyxFQUFxQyxFQUNyQyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxLQUFpRCxFQUFFO0lBRTNFLE9BQU8sY0FBYyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvQyxPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RCZWZvcmVSZW5kZXJSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCZWZvcmVSZW5kZXIoXG5cdGNiOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbJ2NhbGxiYWNrJ10sXG5cdHsgcHJpb3JpdHkgPSAwLCBpbmplY3RvciB9OiB7IHByaW9yaXR5PzogbnVtYmVyOyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSxcbikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBzdWIgPSBzdG9yZS5nZXQoJ2ludGVybmFsJykuc3Vic2NyaWJlKGNiLCBwcmlvcml0eSwgc3RvcmUpO1xuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gdm9pZCBzdWIoKSk7XG5cdFx0cmV0dXJuIHN1Yjtcblx0fSk7XG59XG4iXX0=
|
package/esm2022/lib/utils/is.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
|
-
import * as THREE from 'three';
|
|
3
2
|
export const is = {
|
|
4
3
|
obj: (a) => a === Object(a) && !Array.isArray(a) && typeof a !== 'function',
|
|
5
4
|
material: (a) => !!a && a.isMaterial,
|
|
@@ -7,11 +6,13 @@ export const is = {
|
|
|
7
6
|
orthographicCamera: (a) => !!a && a.isOrthographicCamera,
|
|
8
7
|
perspectiveCamera: (a) => !!a && a.isPerspectiveCamera,
|
|
9
8
|
camera: (a) => !!a && a.isCamera,
|
|
10
|
-
renderer: (a) => !!a && a
|
|
9
|
+
renderer: (a) => !!a && typeof a === 'object' && 'render' in a && typeof a['render'] === 'function',
|
|
11
10
|
scene: (a) => !!a && a.isScene,
|
|
12
|
-
object3D: (a) => !!a && a.isObject3D,
|
|
13
|
-
instance: (a) => !!a && !!a['__ngt__'],
|
|
14
11
|
ref: (a) => a instanceof ElementRef,
|
|
12
|
+
instance: (a) => !!a && !!a['__ngt__'],
|
|
13
|
+
object3D: (a) => !!a && a.isObject3D,
|
|
14
|
+
// instance: (a: unknown): a is NgtInstanceNode => !!a && !!(a as NgtAnyRecord)['__ngt__'],
|
|
15
|
+
// ref: (a: unknown): a is ElementRef => a instanceof ElementRef,
|
|
15
16
|
colorSpaceExist: (object) => 'colorSpace' in object || 'outputColorSpace' in object,
|
|
16
17
|
equ(a, b, { arrays = 'shallow', objects = 'reference', strict = true } = {}) {
|
|
17
18
|
// Wrong type or one of the two undefined, doesn't match
|
|
@@ -48,4 +49,4 @@ export const is = {
|
|
|
48
49
|
return true;
|
|
49
50
|
},
|
|
50
51
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9pcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYTNDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNqQixHQUFHLEVBQUUsQ0FBQyxDQUFVLEVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFVBQVU7SUFDakcsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFjLENBQUMsVUFBVTtJQUMxRSxRQUFRLEVBQUUsQ0FBQyxDQUFVLEVBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQW9CLENBQUMsZ0JBQWdCO0lBQzVGLGtCQUFrQixFQUFFLENBQUMsQ0FBVSxFQUEyQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUF3QixDQUFDLG9CQUFvQjtJQUNsSCxpQkFBaUIsRUFBRSxDQUFDLENBQVUsRUFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBdUIsQ0FBQyxtQkFBbUI7SUFDOUcsTUFBTSxFQUFFLENBQUMsQ0FBVSxFQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQVksQ0FBQyxRQUFRO0lBQ2xFLFFBQVEsRUFBRSxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxVQUFVO0lBQzVHLEtBQUssRUFBRSxDQUFDLENBQVUsRUFBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFXLENBQUMsT0FBTztJQUM5RCxHQUFHLEVBQUUsQ0FBQyxDQUFVLEVBQW1CLEVBQUUsQ0FBQyxDQUFDLFlBQVksVUFBVTtJQUM3RCxRQUFRLEVBQUUsQ0FBQyxDQUFVLEVBQXdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFrQixDQUFDLFNBQVMsQ0FBQztJQUN2RixRQUFRLEVBQUUsQ0FBQyxDQUFVLEVBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQWMsQ0FBQyxVQUFVO0lBQzFFLDJGQUEyRjtJQUMzRixpRUFBaUU7SUFDakUsZUFBZSxFQUFFLENBSWhCLE1BQVMsRUFDUyxFQUFFLENBQUMsWUFBWSxJQUFJLE1BQU0sSUFBSSxrQkFBa0IsSUFBSSxNQUFNO0lBQzVFLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxPQUFPLEdBQUcsV0FBVyxFQUFFLE1BQU0sR0FBRyxJQUFJLEtBQW1CLEVBQUU7UUFDbEcsd0RBQXdEO1FBQ3hELElBQUksT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3ZELG1DQUFtQztRQUNuQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLFdBQVc7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLEtBQUssSUFBSSxNQUFNLEtBQUssV0FBVztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdDLCtCQUErQjtRQUMvQixJQUFJLENBQUMsQ0FBQztRQUNOLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xCLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUMzRCxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUNyRixJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzNCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7Q0FDRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0QnVmZmVyR2VvbWV0cnksXG5cdENhbWVyYSxcblx0TWF0ZXJpYWwsXG5cdE9iamVjdDNELFxuXHRPcnRob2dyYXBoaWNDYW1lcmEsXG5cdFBlcnNwZWN0aXZlQ2FtZXJhLFxuXHRTY2VuZSxcblx0VGV4dHVyZSxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RFcXVDb25maWcsIE5ndEluc3RhbmNlTm9kZSwgTmd0UmVuZGVyZXJMaWtlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXMgPSB7XG5cdG9iajogKGE6IHVua25vd24pOiBhIGlzIG9iamVjdCA9PiBhID09PSBPYmplY3QoYSkgJiYgIUFycmF5LmlzQXJyYXkoYSkgJiYgdHlwZW9mIGEgIT09ICdmdW5jdGlvbicsXG5cdG1hdGVyaWFsOiAoYTogdW5rbm93bik6IGEgaXMgTWF0ZXJpYWwgPT4gISFhICYmIChhIGFzIE1hdGVyaWFsKS5pc01hdGVyaWFsLFxuXHRnZW9tZXRyeTogKGE6IHVua25vd24pOiBhIGlzIEJ1ZmZlckdlb21ldHJ5ID0+ICEhYSAmJiAoYSBhcyBCdWZmZXJHZW9tZXRyeSkuaXNCdWZmZXJHZW9tZXRyeSxcblx0b3J0aG9ncmFwaGljQ2FtZXJhOiAoYTogdW5rbm93bik6IGEgaXMgT3J0aG9ncmFwaGljQ2FtZXJhID0+ICEhYSAmJiAoYSBhcyBPcnRob2dyYXBoaWNDYW1lcmEpLmlzT3J0aG9ncmFwaGljQ2FtZXJhLFxuXHRwZXJzcGVjdGl2ZUNhbWVyYTogKGE6IHVua25vd24pOiBhIGlzIFBlcnNwZWN0aXZlQ2FtZXJhID0+ICEhYSAmJiAoYSBhcyBQZXJzcGVjdGl2ZUNhbWVyYSkuaXNQZXJzcGVjdGl2ZUNhbWVyYSxcblx0Y2FtZXJhOiAoYTogdW5rbm93bik6IGEgaXMgQ2FtZXJhID0+ICEhYSAmJiAoYSBhcyBDYW1lcmEpLmlzQ2FtZXJhLFxuXHRyZW5kZXJlcjogKGE6IHVua25vd24pID0+ICEhYSAmJiB0eXBlb2YgYSA9PT0gJ29iamVjdCcgJiYgJ3JlbmRlcicgaW4gYSAmJiB0eXBlb2YgYVsncmVuZGVyJ10gPT09ICdmdW5jdGlvbicsXG5cdHNjZW5lOiAoYTogdW5rbm93bik6IGEgaXMgU2NlbmUgPT4gISFhICYmIChhIGFzIFNjZW5lKS5pc1NjZW5lLFxuXHRyZWY6IChhOiB1bmtub3duKTogYSBpcyBFbGVtZW50UmVmID0+IGEgaW5zdGFuY2VvZiBFbGVtZW50UmVmLFxuXHRpbnN0YW5jZTogKGE6IHVua25vd24pOiBhIGlzIE5ndEluc3RhbmNlTm9kZSA9PiAhIWEgJiYgISEoYSBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ10sXG5cdG9iamVjdDNEOiAoYTogdW5rbm93bik6IGEgaXMgT2JqZWN0M0QgPT4gISFhICYmIChhIGFzIE9iamVjdDNEKS5pc09iamVjdDNELFxuXHQvLyBpbnN0YW5jZTogKGE6IHVua25vd24pOiBhIGlzIE5ndEluc3RhbmNlTm9kZSA9PiAhIWEgJiYgISEoYSBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ10sXG5cdC8vIHJlZjogKGE6IHVua25vd24pOiBhIGlzIEVsZW1lbnRSZWYgPT4gYSBpbnN0YW5jZW9mIEVsZW1lbnRSZWYsXG5cdGNvbG9yU3BhY2VFeGlzdDogPFxuXHRcdFQgZXh0ZW5kcyBOZ3RSZW5kZXJlckxpa2UgfCBUZXh0dXJlIHwgb2JqZWN0LFxuXHRcdFAgPSBUIGV4dGVuZHMgTmd0UmVuZGVyZXJMaWtlID8geyBvdXRwdXRDb2xvclNwYWNlOiBzdHJpbmcgfSA6IHsgY29sb3JTcGFjZTogc3RyaW5nIH0sXG5cdD4oXG5cdFx0b2JqZWN0OiBULFxuXHQpOiBvYmplY3QgaXMgVCAmIFAgPT4gJ2NvbG9yU3BhY2UnIGluIG9iamVjdCB8fCAnb3V0cHV0Q29sb3JTcGFjZScgaW4gb2JqZWN0LFxuXHRlcXUoYTogYW55LCBiOiBhbnksIHsgYXJyYXlzID0gJ3NoYWxsb3cnLCBvYmplY3RzID0gJ3JlZmVyZW5jZScsIHN0cmljdCA9IHRydWUgfTogTmd0RXF1Q29uZmlnID0ge30pIHtcblx0XHQvLyBXcm9uZyB0eXBlIG9yIG9uZSBvZiB0aGUgdHdvIHVuZGVmaW5lZCwgZG9lc24ndCBtYXRjaFxuXHRcdGlmICh0eXBlb2YgYSAhPT0gdHlwZW9mIGIgfHwgISFhICE9PSAhIWIpIHJldHVybiBmYWxzZTtcblx0XHQvLyBBdG9taWMsIGp1c3QgY29tcGFyZSBhIGFnYWluc3QgYlxuXHRcdGlmICh0eXBlb2YgYSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGEgPT09ICdudW1iZXInKSByZXR1cm4gYSA9PT0gYjtcblx0XHRjb25zdCBpc09iaiA9IGlzLm9iaihhKTtcblx0XHRpZiAoaXNPYmogJiYgb2JqZWN0cyA9PT0gJ3JlZmVyZW5jZScpIHJldHVybiBhID09PSBiO1xuXHRcdGNvbnN0IGlzQXJyID0gQXJyYXkuaXNBcnJheShhKTtcblx0XHRpZiAoaXNBcnIgJiYgYXJyYXlzID09PSAncmVmZXJlbmNlJykgcmV0dXJuIGEgPT09IGI7XG5cdFx0Ly8gQXJyYXkgb3IgT2JqZWN0LCBzaGFsbG93IGNvbXBhcmUgZmlyc3QgdG8gc2VlIGlmIGl0J3MgYSBtYXRjaFxuXHRcdGlmICgoaXNBcnIgfHwgaXNPYmopICYmIGEgPT09IGIpIHJldHVybiB0cnVlO1xuXHRcdC8vIExhc3QgcmVzb3J0LCBnbyB0aHJvdWdoIGtleXNcblx0XHRsZXQgaTtcblx0XHRmb3IgKGkgaW4gYSkgaWYgKCEoaSBpbiBiKSkgcmV0dXJuIGZhbHNlO1xuXHRcdGZvciAoaSBpbiBzdHJpY3QgPyBiIDogYSkgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBmYWxzZTtcblx0XHRpZiAoaSA9PT0gdm9pZCAwKSB7XG5cdFx0XHRpZiAoaXNBcnIgJiYgYS5sZW5ndGggPT09IDAgJiYgYi5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuXHRcdFx0aWYgKGlzT2JqICYmIE9iamVjdC5rZXlzKGEpLmxlbmd0aCA9PT0gMCAmJiBPYmplY3Qua2V5cyhiKS5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuXHRcdFx0aWYgKGEgIT09IGIpIHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG59O1xuIl19
|