{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js??ref--1-0!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/babel.config.js","mtime":1684261475125},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9UYWJzMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay90YWJzLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX1RhYnMgZnJvbSAiZWxlbWVudC11aS9saWIvdGFicyI7CmltcG9ydCBfVGFiUGFuZTIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvdGFiLXBhbmUuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfVGFiUGFuZSBmcm9tICJlbGVtZW50LXVpL2xpYi90YWItcGFuZSI7CmltcG9ydCBfU2xpZGVyMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zbGlkZXIuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2xpZGVyIGZyb20gImVsZW1lbnQtdWkvbGliL3NsaWRlciI7CmltcG9ydCBfU2VsZWN0MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zZWxlY3QuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2VsZWN0IGZyb20gImVsZW1lbnQtdWkvbGliL3NlbGVjdCI7CmltcG9ydCBfUm93MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9yb3cuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUm93IGZyb20gImVsZW1lbnQtdWkvbGliL3JvdyI7CmltcG9ydCBfUG9wb3ZlcjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvcG9wb3Zlci5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Qb3BvdmVyIGZyb20gImVsZW1lbnQtdWkvbGliL3BvcG92ZXIiOwppbXBvcnQgX09wdGlvbjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvb3B0aW9uLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX09wdGlvbiBmcm9tICJlbGVtZW50LXVpL2xpYi9vcHRpb24iOwppbXBvcnQgX0xvYWRpbmcyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2xvYWRpbmcuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfTG9hZGluZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2FkaW5nIjsKaW1wb3J0IF9Db2wyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2NvbC5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Db2wgZnJvbSAiZWxlbWVudC11aS9saWIvY29sIjsKaW1wb3J0IF9CdXR0b24yIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2J1dHRvbi5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9CdXR0b24gZnJvbSAiZWxlbWVudC11aS9saWIvYnV0dG9uIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIudG8tZml4ZWQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKLyogZXNsaW50LWRpc2FibGUgbm8tYWxlcnQsIG5vLWNvbnNvbGUgKi8KaW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOwppbXBvcnQgUHJpbWl0aXZlQ29udHJvbHMgZnJvbSAiLi9QcmltaXRpdmVDb250cm9scyI7CmltcG9ydCBTY2FmZm9sZFRvb2x0aXAgZnJvbSAiLi9TY2FmZm9sZFRvb2x0aXAiOwppbXBvcnQgVHJlZUNvbnRyb2xzIGZyb20gIi4vVHJlZUNvbnRyb2xzIjsKaW1wb3J0IHsgTWFwU3ZnSWNvbiwgTWFwU3ZnU3ByaXRlQ29sb3IgfSBmcm9tICJAYWJpLXNvZnR3YXJlL3N2Zy1zcHJpdGUiOwppbXBvcnQgeyBmaW5kT2JqZWN0c1dpdGhOYW1lcywgZ2V0T2JqZWN0c0Zyb21Bbm5vdGF0aW9ucyB9IGZyb20gIi4uL3NjcmlwdHMvdXRpbGl0aWVzLmpzIjsKaW1wb3J0IHsgU2VhcmNoSW5kZXggfSBmcm9tICIuLi9zY3JpcHRzL3NlYXJjaC5qcyI7CmltcG9ydCBsYW5nIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZS9sYW5nL2VuIjsKaW1wb3J0IGxvY2FsZSBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2NhbGUiOwpsb2NhbGUudXNlKGxhbmcpOwpWdWUudXNlKF9CdXR0b24pOwpWdWUudXNlKF9Db2wpOwpWdWUudXNlKF9Mb2FkaW5nLmRpcmVjdGl2ZSk7ClZ1ZS51c2UoX09wdGlvbik7ClZ1ZS51c2UoX1BvcG92ZXIpOwpWdWUudXNlKF9Sb3cpOwpWdWUudXNlKF9TZWxlY3QpOwpWdWUudXNlKF9TbGlkZXIpOwpWdWUudXNlKF9UYWJQYW5lKTsKVnVlLnVzZShfVGFicyk7CnZhciBPcmdhbnNWaWV3ZXIgPSByZXF1aXJlKCIuLi9zY3JpcHRzL29yZ2Fuc1JlbmRlcmVyIikuT3JnYW5zVmlld2VyOwp2YXIgRXZlbnROb3RpZmllciA9IHJlcXVpcmUoIi4uL3NjcmlwdHMvZXZlbnROb3RpZmllciIpLkV2ZW50Tm90aWZpZXI7CgovKioKICogQSB2dWUgY29tcG9uZW50IG9mIHRoZSBzY2FmZm9sZCB2aWV3ZXIuCiAqCiAqIEByZXF1aXJlcyAuL1ByaW1pdHZlQ29udHJvbHMudnVlCiAqIEByZXF1aXJlcyAuL1RyZWVDb250cm9scy52dWUKICovCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiU2NhZmZvbGRWdWVyIiwKICBjb21wb25lbnRzOiB7CiAgICBNYXBTdmdJY29uOiBNYXBTdmdJY29uLAogICAgTWFwU3ZnU3ByaXRlQ29sb3I6IE1hcFN2Z1Nwcml0ZUNvbG9yLAogICAgUHJpbWl0aXZlQ29udHJvbHM6IFByaW1pdGl2ZUNvbnRyb2xzLAogICAgU2NhZmZvbGRUb29sdGlwOiBTY2FmZm9sZFRvb2x0aXAsCiAgICBUcmVlQ29udHJvbHM6IFRyZWVDb250cm9scwogIH0sCiAgcHJvcHM6IHsKICAgIC8qKgogICAgICogVVJMIG9mIHRoZSB6aW5janMgbWV0YWRhdGEuIFRoaXMgdmFsdWUgd2lsbCBiZSBpZ25vcmVkIGlmIGEgdmFsaWQKICAgICAqIHN0YXRlIHByb3AgaXMgYWxzbyBwcm92aWRlZC4KICAgICAqIElmIHRoZSB1cmwgbmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIHN0YXRlIHByZXNlbnQsIHBsZWFzZSB1c2UKICAgICAqIHRoZSBzZXRVUkwgbWV0aG9kLgogICAgICovCiAgICB1cmw6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIC8qKgogICAgICogU2hvdyB0aGUgY29sb3VyIGNvbnRyb2wgb2Ygc2V0IHRvIHRydWUuCiAgICAgKi8KICAgIHNob3dDb2xvdXJQaWNrZXI6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvKioKICAgICAqIEZsYWcgdG8gc2hvdy9oaWRlIHRoZSBVSS4KICAgICAqLwogICAgZGlzcGxheVVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvKioKICAgICAqIERpc3BsYXkgYWxsIGdyYXBoaWNzIGF0IHN0YXJ0LgogICAgICoKICAgICAqIFRoaXMgc2V0dGluZyBvbmx5IHdvcmtzIHdoZW4gdHJhZGl0aW9uYWwgaXMgc2V0IHRvIGZhbHNlLgogICAgICovCiAgICBkaXNwbGF5QXRTdGFydFVwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvKioKICAgICAqIFVzZSBmb3IgdG9nZ2xpbmcgdGhlIGhlbHAgdG9vbHRpcHMuCiAgICAgKi8KICAgIGhlbHBNb2RlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqCiAgICAgKiBVc2UgZm9yIHNob3cvZGlzcGxheSBiZXRhIHdhcm5pbmcgaWNvbi4KICAgICAqLwogICAgZGlzcGxheVdhcm5pbmc6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIC8qKgogICAgICogV2FybmluZyBtZXNzYWdlIGZvciB0aGUgaG92ZXJlZCBvdmVyIHRleHQKICAgICAqIG9uIHRoZSB3YXJuaW5nIGljb24uCiAgICAgKi8KICAgIHdhcm5pbmdNZXNzYWdlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIkJldGEgZmVhdHVyZSAtIHVuZGVyIGFjdGl2ZSBkZXZlbG9wbWVudCIKICAgIH0sCiAgICBkaXNwbGF5TGF0ZXN0Q2hhbmdlczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIGxhdGVzdENoYW5nZXNNZXNzYWdlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIk5ldyBmZWF0dXJlIC0gTG9jYWwgc2VhcmNoIGlzIG5vdyBhdmFpbGFibGUiCiAgICB9LAogICAgLyoqCiAgICAgKiBTaG93L2hpZGUgcGlja2FibGUgbWFya2VycyBmb3IgcmVnaW9ucy4KICAgICAqLwogICAgZGlzcGxheU1hcmtlcnM6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBtYXJrZXJMYWJlbHM6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU2hvdy9oaWRlIG1pbmltYXAuCiAgICAgKi8KICAgIGRpc3BsYXlNaW5pbWFwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqCiAgICAgKiBGb3JtYXQgb2YgdGhlIGlucHV0IFVSTAogICAgICovCiAgICBmb3JtYXQ6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAibWV0YWRhdGEiCiAgICB9LAogICAgLyoqCiAgICAgKiBTZXR0aW5ncyBmb3IgbWluaW1hcCBwb3NpdGlvbiwgc2l6ZSBhbmQgYWxpZ25tZW50LgogICAgICovCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgeF9vZmZzZXQ6IDE2LAogICAgICAgICAgeV9vZmZzZXQ6IDE2LAogICAgICAgICAgd2lkdGg6IDEyOCwKICAgICAgICAgIGhlaWdodDogMTI4LAogICAgICAgICAgYWxpZ246ICJ0b3AtcmlnaHQiCiAgICAgICAgfTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRmxhZyB0byBkZXRlcm1pbmUgcmF0aGVyIG9wZW4gbWFwIFVJIHNob3VsZCBiZQogICAgICogcHJlc2VudGVkIG9yIG5vdC4KICAgICAqLwogICAgZW5hYmxlT3Blbk1hcFVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgb3Blbk1hcE9wdGlvbnM6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbewogICAgICAgICAgZGlzcGxheTogIk9wZW4gQUMgTWFwIiwKICAgICAgICAgIGtleTogIkFDIgogICAgICAgIH0sIHsKICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEZDIE1hcCIsCiAgICAgICAgICBrZXk6ICJGQyIKICAgICAgICB9LCB7CiAgICAgICAgICBkaXNwbGF5OiAiT3BlbiAzRCBIdW1hbiBNYXAiLAogICAgICAgICAga2V5OiAiM0QiCiAgICAgICAgfV07CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFN0YXRlIGNvbnRhaW5pbmcgc3RhdGUgb2YgdGhlIHNjYWZmb2xkLgogICAgICovCiAgICBzdGF0ZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZAogICAgfSwKICAgIC8qKgogICAgICogT3B0aW9uYWwgcHJvcCBmb3IgdGhlIG5hbWUgb2YgdGhlIHJlZ2lvbiB0byBmb2N1cyBvbiwKICAgICAqIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgc3RhdGUgb3Igdmlld1VSTCBpcyBhbHNvIHByb3ZpZGVkLgogICAgICovCiAgICByZWdpb246IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIC8qKgogICAgICogT3B0aW9uYWwgcHJvcCBmb3IgYW4gVVJMIG9mIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb2YgYSB2aWV3cG9ydC4KICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgc3RhdGUgaXMgYWxzbyBwcm92aWRlZC4KICAgICAqIEl0IHdpbGwgdXNlIHRoZSBwcm92aWRlZCBVUkwgYXMgYmFzZSBpZiBhIHJlbGF0aXZlIHBhcnRoIGlzIHByb3ZpZGVkLgogICAgICovCiAgICB2aWV3VVJMOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICAvKioKICAgICAqIFNldHRpbmdzIGZvciB0dXJuaW5nIG9uL29mZiByZW5kZXJpbmcKICAgICAqLwogICAgcmVuZGVyOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvKioKICAgICAqIFNwZWNpZnkgdGhlIGVuZHBvaW50IG9mIHRoZSBmbGF0bWFwIHNlcnZlci4KICAgICAqIFRoaXMgaXMgdXNlZCBieSBhbm5vdGF0aW9uIHNlcnZpY2UgaW5jbHVkZWQgaW4KICAgICAqIHRoaXJkIHBhcnR5IGZsYXRtYXB2dWVyIGxpYnJhcnkuCiAgICAgKi8KICAgIGZsYXRtYXBBUEk6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiaHR0cHM6Ly9tYXBjb3JlLWRlbW8ub3JnL2N1cnJlbnQvZmxhdG1hcC92My8iCiAgICB9CiAgfSwKICBwcm92aWRlOiBmdW5jdGlvbiBwcm92aWRlKCkgewogICAgcmV0dXJuIHsKICAgICAgZmxhdG1hcEFQSTogdGhpcy5mbGF0bWFwQVBJLAogICAgICBzY2FmZm9sZFVybDogdGhpcy51cmwKICAgIH07CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgc2NlbmVEYXRhOiB0aGlzLiRtb2R1bGUuc2NlbmVEYXRhLAogICAgICBpc1BsYXlpbmc6IGZhbHNlLAogICAgICBpc1JlYWR5OiBmYWxzZSwKICAgICAgLyoqCiAgICAgICAqIFRoaXMgaXMgc2V0IHdoZW4gc2NlbmUgaXMgdHJhbnNpdGlvbmluZy4KICAgICAgICovCiAgICAgIGlzVHJhbnNpdGlvbmluZzogZmFsc2UsCiAgICAgIHRvb2x0aXBBcHBlbmRUb0JvZHk6IGZhbHNlLAogICAgICBob3ZlclZpc2liaWxpdGllczogW3sKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH1dLAogICAgICBpbkhlbHA6IGZhbHNlLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgZHVyYXRpb246IDMwMDAsCiAgICAgIGRyYXdlck9wZW46IHRydWUsCiAgICAgIGN1cnJlbnRCYWNrZ3JvdW5kOiAid2hpdGUiLAogICAgICBhdmFpbGFibGVCYWNrZ3JvdW5kOiBbIndoaXRlIiwgImxpZ2h0c2t5Ymx1ZSIsICJibGFjayJdLAogICAgICBtaW5pbWlzZWRTbGlkZXI6IGZhbHNlLAogICAgICBzbGlkZXJQb3NpdGlvbjogIiIsCiAgICAgIHRpbWVNYXg6IDEwMCwKICAgICAgb3JnaW5hbER1cmF0aW9uOiAiIiwKICAgICAgYW5pbWF0ZUR1cmF0aW9uOiAiNnNlY3MiLAogICAgICBwbGF5U3BlZWQ6IFt7CiAgICAgICAgdmFsdWU6IDAuMSwKICAgICAgICBsYWJlbDogIjAuMXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMC41LAogICAgICAgIGxhYmVsOiAiMC41eCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIGxhYmVsOiAiMXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMiwKICAgICAgICBsYWJlbDogIjJ4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDUsCiAgICAgICAgbGFiZWw6ICI1eCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAxMCwKICAgICAgICBsYWJlbDogIjEweCIKICAgICAgfV0sCiAgICAgIGN1cnJlbnRTcGVlZDogMSwKICAgICAgdGltZVN0YW1wczoge30sCiAgICAgIGRlZmF1bHRDaGVja2VkS2V5czogW10sCiAgICAgIHREYXRhOiB7CiAgICAgICAgbGFiZWw6ICIiLAogICAgICAgIHJlZ2lvbjogIiIsCiAgICAgICAgdmlzaWJsZTogZmFsc2UsCiAgICAgICAgeDogMjAwLAogICAgICAgIHk6IDIwMCwKICAgICAgICBhY3RpdmU6IGZhbHNlCiAgICAgIH0sCiAgICAgIGZpbGVGb3JtYXQ6ICJtZXRhZGF0YSIsCiAgICAgIHByZXZpb3VzTWFya2VyTGFiZWxzOiBbXSwKICAgICAgdmlld2luZ01vZGU6ICJFeHBsb3JhdGlvbiIsCiAgICAgIHZpZXdpbmdNb2RlczogWyJBbm5vdGF0aW9uIiwgIkV4cGxvcmF0aW9uIl0KICAgIH07CiAgfSwKICB3YXRjaDogewogICAgZm9ybWF0OiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmFsdWUpIHsKICAgICAgICB0aGlzLmZpbGVGb3JtYXQgPSB2YWx1ZTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgdXJsOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsdWUpIHsKICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuc3RhdGUudXJsID09PSB1bmRlZmluZWQpIHRoaXMuc2V0VVJMKG5ld1ZhbHVlKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgcmVnaW9uOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIocmVnaW9uKSB7CiAgICAgICAgaWYgKCEodGhpcy5zdGF0ZSB8fCB0aGlzLnZpZXdVUkwpKSB0aGlzLnNldEZvY3VzZWRSZWdpb24ocmVnaW9uKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgc3RhdGU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihzdGF0ZSkgewogICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGRlZXA6IHRydWUKICAgIH0sCiAgICB2aWV3VVJMOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmlld1VSTCkgewogICAgICAgIHRoaXMudXBkYXRlVmlld1VSTCh2aWV3VVJMKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9LAogICAgaGVscE1vZGU6IGZ1bmN0aW9uIGhlbHBNb2RlKHZhbCkgewogICAgICB0aGlzLnNldEhlbHBNb2RlKHZhbCk7CiAgICB9LAogICAgZGlzcGxheU1hcmtlcnM6IGZ1bmN0aW9uIGRpc3BsYXlNYXJrZXJzKHZhbCkgewogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1hcmtlcnMgPSB2YWw7CiAgICAgIC8vVXBkYXRlIHBpY2thYmxlIG9iamVjdHMKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmZvcmNlUGlja2FibGVPYmplY3RzVXBkYXRlID0gdHJ1ZTsKICAgIH0sCiAgICBkaXNwbGF5TWluaW1hcDogZnVuY3Rpb24gZGlzcGxheU1pbmltYXAodmFsKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWluaW1hcCA9IHZhbDsKICAgIH0sCiAgICAic2NlbmVEYXRhLmN1cnJlbnRUaW1lIjogZnVuY3Rpb24gc2NlbmVEYXRhQ3VycmVudFRpbWUoKSB7CiAgICAgIC8qKgogICAgICAgKiBUcmlnZ2VycyB3aGVuIHNjZW5lIHRpbWUgY2hhbmdlcy4KICAgICAgICoKICAgICAgICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWUgQ3VycmVudCBidWlsZC1pbiB0aW1lIG9mIHNjZW5lLgogICAgICAgKiBvZiBzZWxlY3RlZCBvYmplY3QuCiAgICAgICAqLwogICAgICB0aGlzLiRlbWl0KCJ0aW1lQ2hhbmdlZCIsIHRoaXMuc2NlbmVEYXRhLmN1cnJlbnRUaW1lKTsKICAgIH0sCiAgICBkdXJhdGlvbjogZnVuY3Rpb24gZHVyYXRpb24oKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5zZXREdXJhdGlvbih0aGlzLmR1cmF0aW9uKTsKICAgIH0sCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgaGFuZGxlcjogInVwZGF0ZU1pbmltYXBTY2lzc29yIgogICAgfSwKICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKHZhbCkgewogICAgICB0aGlzLnRvZ2dsZVJlbmRlcmluZyh2YWwpOwogICAgfSwKICAgIG1hcmtlckxhYmVsczogZnVuY3Rpb24gbWFya2VyTGFiZWxzKGxhYmVscykgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB0aGlzLnByZXZpb3VzTWFya2VyTGFiZWxzLmZvckVhY2goZnVuY3Rpb24gKHBtbCkgewogICAgICAgIF90aGlzLnNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUocG1sLCAib2ZmIik7CiAgICAgIH0pOwogICAgICBsYWJlbHMuZm9yRWFjaChmdW5jdGlvbiAobCkgewogICAgICAgIF90aGlzLnNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUobCwgIm9uIik7CiAgICAgIH0pOwogICAgICB0aGlzLnByZXZpb3VzTWFya2VyTGFiZWxzID0gbGFiZWxzOwogICAgfQogIH0sCiAgYmVmb3JlQ3JlYXRlOiBmdW5jdGlvbiBiZWZvcmVDcmVhdGUoKSB7CiAgICB0aGlzLiRtb2R1bGUgPSBuZXcgT3JnYW5zVmlld2VyKCk7CiAgICB0aGlzLnNlbGVjdGVkT2JqZWN0cyA9IFtdOwogICAgdGhpcy5ob3ZlcmVkT2JqZWN0cyA9IFtdOwogICAgdGhpcy5jdXJyZW50QmFja2dyb3VuZCA9ICJ3aGl0ZSI7CiAgICB0aGlzLl9jdXJyZW50VVJMID0gdW5kZWZpbmVkOwogICAgdGhpcy5hdmFpbGFibGVCYWNrZ3JvdW5kID0gWyJ3aGl0ZSIsICJibGFjayIsICJsaWdodHNreWJsdWUiXTsKICAgIHRoaXMuJF9zZWFyY2hJbmRleCA9IG5ldyBTZWFyY2hJbmRleCgpOwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnNldE1vZHVsZSh0aGlzLiRtb2R1bGUpOwogICAgdmFyIGV2ZW50Tm90aWZpZXIgPSBuZXcgRXZlbnROb3RpZmllcigpOwogICAgZXZlbnROb3RpZmllci5zdWJzY3JpYmUodGhpcywgdGhpcy5ldmVudE5vdGlmaWVyQ2FsbGJhY2spOwogICAgdGhpcy4kbW9kdWxlLmFkZE5vdGlmaWVyKGV2ZW50Tm90aWZpZXIpOwogICAgdGhpcy4kbW9kdWxlLmFkZE9yZ2FuUGFydEFkZGVkQ2FsbGJhY2sodGhpcy56aW5jT2JqZWN0QWRkZWQpOwogICAgdGhpcy4kbW9kdWxlLmluaXRpYWxpc2VSZW5kZXJlcih0aGlzLiRyZWZzLmRpc3BsYXkpOwogICAgdGhpcy50b2dnbGVSZW5kZXJpbmcodGhpcy5yZW5kZXIpOwogICAgdGhpcy5ybyA9IG5ldyBSZXNpemVPYnNlcnZlcih0aGlzLmFkanVzdExheW91dCkub2JzZXJ2ZSh0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyKTsKICAgIHRoaXMuZGVmYXVsdFJhdGUgPSB0aGlzLiRtb2R1bGUuZ2V0UGxheVJhdGUoKTsKICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICBpZiAodGhpcy5ybykgdGhpcy5yby5kaXNjb25uZWN0KCk7CiAgICB0aGlzLiRtb2R1bGUuZGVzdHJveSgpOwogICAgdGhpcy4kbW9kdWxlID0gdW5kZWZpbmVkOwogIH0sCiAgbWV0aG9kczogewogICAgYWRkWmluY09iamVjdDogZnVuY3Rpb24gYWRkWmluY09iamVjdCh6aW5jT2JqZWN0KSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuYWRkWmluY09iamVjdCh6aW5jT2JqZWN0KTsKICAgICAgICB0aGlzLnppbmNPYmplY3RBZGRlZCh6aW5jT2JqZWN0KTsKICAgICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnppbmNPYmplY3RBZGRlZCh6aW5jT2JqZWN0KTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBhIG5ldyB6aW5jIG9iamVjdCBpcyByZWFkIGludG8gdGhlIHNjZW5lLgogICAgICovCiAgICB6aW5jT2JqZWN0QWRkZWQ6IGZ1bmN0aW9uIHppbmNPYmplY3RBZGRlZCh6aW5jT2JqZWN0KSB7CiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRfc2VhcmNoSW5kZXguYWRkWmluY09iamVjdCh6aW5jT2JqZWN0LCB6aW5jT2JqZWN0LnV1aWQpOwogICAgICB0aGlzLiRlbWl0KCJ6aW5jLW9iamVjdC1hZGRlZCIsIHppbmNPYmplY3QpOwogICAgfSwKICAgIC8qKgogICAgICogCiAgICAgKi8KICAgIGFkZFJlZ2lvbnNUb1NlYXJjaEluZGV4OiBmdW5jdGlvbiBhZGRSZWdpb25zVG9TZWFyY2hJbmRleCgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgdmFyIHJlZ2lvbnMgPSByb290UmVnaW9uLmdldENoaWxkUmVnaW9ucyh0cnVlKTsKICAgICAgcmVnaW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChyZWdpb24pIHsKICAgICAgICBfdGhpczIuJF9zZWFyY2hJbmRleC5hZGRSZWdpb24ocmVnaW9uLCByZWdpb24udXVpZCk7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBDaGFuZ2UgYmFja2dzcGVlZHJvdW5kIGNvbG91ciBidXR0b24KICAgICAqIGlzIHByZXNzZWQgYW4gY2F1c2VzIHRoZSBiYWNrZ3JvdUNvbG9ybmQgY29sb3VyIHRvIGJlIGNoYW5nZWQKICAgICAqIHRvIG9uZSBvZiB0aGUgdGhyZWUgcHJlc2V0IGNvbG91cjogd2hpdGUsIGJsYWNrIGFuZAogICAgICogbGlnaHRza3libHVlLgogICAgICovCiAgICBiYWNrZ3JvdW5kQ2hhbmdlQ2FsbGJhY2s6IGZ1bmN0aW9uIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjayhjb2xvdXIpIHsKICAgICAgdGhpcy5jdXJyZW50QmFja2dyb3VuZCA9IGNvbG91cjsKICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5nZXRUaHJlZUpTUmVuZGVyZXIoKS5zZXRDbGVhckNvbG9yKHRoaXMuY3VycmVudEJhY2tncm91bmQsIDEpOwogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgYnkgY2FwdHVlZVNjcmVlbnNob3QgYW5kIGFmdGVyIHRoZSBsYXN0IHJlbmRlcgogICAgICogbG9vcCwgaXQgZG93bmxvYWQgYSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IHNjZW5lIHdpdGggbm8gVUkuCiAgICAgKi8KICAgIGNhcHR1cmVTY3JlZW5zaG90Q2FsbGJhY2s6IGZ1bmN0aW9uIGNhcHR1cmVTY3JlZW5zaG90Q2FsbGJhY2soKSB7CiAgICAgIC8vUmVtb3ZlIHRoZSBjYWxsYmFjaywgb25seSBuZWVkcyB0byBoYXBwZW4gb25jZQogICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuY2FwdHVyZUlEKTsKICAgICAgdmFyIHNjcmVlbnNob3QgPSB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLmRvbUVsZW1lbnQudG9EYXRhVVJMKCJpbWFnZS9wbmciKTsKICAgICAgdmFyIGhyZWZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChocmVmRWxlbWVudCk7CiAgICAgIGlmICghdGhpcy5jYXB0dXJlRmlsZW5hbWUpIGhyZWZFbGVtZW50LmRvd25sb2FkID0gInNjcmVlbnNob3QucG5nIjtlbHNlIGhyZWZFbGVtZW50LmRvd25sb2FkID0gdGhpcy5jYXB0dXJlRmlsZW5hbWU7CiAgICAgIGhyZWZFbGVtZW50LmhyZWYgPSBzY3JlZW5zaG90OwogICAgICBocmVmRWxlbWVudC5jbGljaygpOwogICAgICBocmVmRWxlbWVudC5yZW1vdmUoKTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIGZvciBjYXB0dXJpbmcgYSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IHJlbmRlcmluZy4KICAgICAqCiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZmlsZW5hbWUgZmlsZW5hbWUgZ2l2ZW4gdG8gdGhlIHNjcmVlbnNob3QuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBjYXB0dXJlU2NyZWVuc2hvdDogZnVuY3Rpb24gY2FwdHVyZVNjcmVlbnNob3QoZmlsZW5hbWUpIHsKICAgICAgdGhpcy5jYXB0dXJlRmlsZW5hbWUgPSBmaWxlbmFtZTsKICAgICAgdGhpcy5jYXB0dXJlSUQgPSB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmFkZFBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuY2FwdHVyZVNjcmVlbnNob3RDYWxsYmFjayk7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byBjbGVhciBjdXJyZW50IHNjZW5lLCB0aGUgdHJlZSBjb250cm9scyBhbmQgdGhlIHNlYXJjaCBpbmRleC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGNsZWFyU2NlbmU6IGZ1bmN0aW9uIGNsZWFyU2NlbmUoKSB7CiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2xlYXIoKTsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCkgdGhpcy4kX3NlYXJjaEluZGV4LnJlbW92ZUFsbCgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB0aGlzLiRtb2R1bGUuc2NlbmUuY2xlYXJBbGwoKTsKICAgIH0sCiAgICBmb3JtYXRUb29sdGlwOiBmdW5jdGlvbiBmb3JtYXRUb29sdGlwKHZhbCkgewogICAgICBpZiAodGhpcy50aW1lTWF4ID49IDEwMDApIHsKICAgICAgICBpZiAodmFsKSB7CiAgICAgICAgICB2YXIgc2VjID0gKHZhbCAlIDYwMDAwIC8gMTAwMCkudG9GaXhlZCgyKSArICJzIjsKICAgICAgICAgIHZhciBtaW4gPSB2YWwgPiA2MDAwMCA/ICh2YWwgLyA2MDAwMCkudG9GaXhlZCgwKSArICJtICIgOiAiIjsKICAgICAgICAgIHJldHVybiBtaW4gKyBzZWM7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YWwgPyB2YWwudG9GaXhlZCgyKSArICIgbXMiIDogIjAgbXMiOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gcmVzZXQgdGhlIHZpZXcgdG8gZGVmYXVsdC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBmaXRXaW5kb3c6IGZ1bmN0aW9uIGZpdFdpbmRvdygpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gaW4uCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbiB6b29tSW4oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2hhbmdlWm9vbUJ5U2Nyb2xsUmF0ZVVuaXQoLTEpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIG91dC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICB6b29tT3V0OiBmdW5jdGlvbiB6b29tT3V0KCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmNoYW5nZVpvb21CeVNjcm9sbFJhdGVVbml0KDEpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgcGxheSBzcGVlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNwZWVkQ2hhbmdlZDogZnVuY3Rpb24gc3BlZWRDaGFuZ2VkKHNwZWVkKSB7CiAgICAgIHRoaXMuY3VycmVudFNwZWVkID0gc3BlZWQ7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRQbGF5UmF0ZSh0aGlzLmRlZmF1bHRSYXRlICogdGhpcy5jdXJyZW50U3BlZWQpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCB0byBzdG9wIHRoZSBmcmVlIHNwaW4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHN0b3BGcmVlU3BpbjogZnVuY3Rpb24gc3RvcEZyZWVTcGluKCkgewogICAgICB2YXIgY2FtZXJhY29udHJvbCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgY2FtZXJhY29udHJvbC5zdG9wQXV0b1R1bWJsZSgpOwogICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IGZhbHNlOwogICAgfSwKICAgIGZpbmRPYmplY3RzV2l0aEdyb3VwTmFtZTogZnVuY3Rpb24gZmluZE9iamVjdHNXaXRoR3JvdXBOYW1lKG5hbWUpIHsKICAgICAgdmFyIG9iamVjdHMgPSBbXTsKICAgICAgaWYgKG5hbWUgJiYgbmFtZSAhPSAiIiAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICBvYmplY3RzID0gdGhpcy4kbW9kdWxlLnNjZW5lLmZpbmRPYmplY3RzV2l0aEdyb3VwTmFtZShuYW1lKTsKICAgICAgfQogICAgICByZXR1cm4gb2JqZWN0czsKICAgIH0sCiAgICAvKioKICAgICAqIEZvY3VzIG9uIG5hbWVkIHJlZ2lvbgogICAgICovCiAgICB2aWV3UmVnaW9uOiBmdW5jdGlvbiB2aWV3UmVnaW9uKG5hbWVzKSB7CiAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgdmFyIGdyb3VwcyA9IEFycmF5LmlzQXJyYXkobmFtZXMpID8gbmFtZXMgOiBbbmFtZXNdOwogICAgICB2YXIgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICB2YXIgYm94ID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldEJvdW5kaW5nQm94T2ZaaW5jT2JqZWN0cyhvYmplY3RzKTsKICAgICAgaWYgKGJveCkgewogICAgICAgIGlmICh0aGlzLiRtb2R1bGUuaXNTeW5jQ29udHJvbCgpKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xab29tVG9Cb3goYm94KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGRpc3QgPSB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciAtIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhcjsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsV2l0aEJvdW5kaW5nQm94KGJveCk7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciA9IHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhciArIGRpc3Q7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIHNldEZvY3VzZWRSZWdpb246IGZ1bmN0aW9uIHNldEZvY3VzZWRSZWdpb24obmFtZSkgewogICAgICBpZiAobmFtZSkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHRoaXMudmlld1JlZ2lvbihuYW1lKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2sodGhpcy5zZXRVUkxGaW5pc2hDYWxsYmFjayh7CiAgICAgICAgICAgIHJlZ2lvbjogbmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHVwZGF0ZVZpZXdVUkw6IGZ1bmN0aW9uIHVwZGF0ZVZpZXdVUkwodmlld1VSTCkgewogICAgICBpZiAodmlld1VSTCkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHZhciB1cmwgPSBuZXcgVVJMKHZpZXdVUkwsIHRoaXMudXJsKTsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5sb2FkVmlld1VSTCh1cmwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgdmlld1VSTDogdmlld1VSTAogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGdldFJlbmRlcmVySW5mbzogZnVuY3Rpb24gZ2V0UmVuZGVyZXJJbmZvKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLmluZm87CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gcm90YXRlIHRoZSBzY2VuZS4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBmcmVlU3BpbjogZnVuY3Rpb24gZnJlZVNwaW4oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgY2FtZXJhY29udHJvbCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IHRydWU7CiAgICAgICAgY2FtZXJhY29udHJvbC5lbmFibGVBdXRvVHVtYmxlKCk7CiAgICAgICAgY2FtZXJhY29udHJvbC5hdXRvVHVtYmxlKFsxLjAsIDAuMF0sIE1hdGguUEksIHRydWUpOwogICAgICAgIHNldFRpbWVvdXQodGhpcy5zdG9wRnJlZVNwaW4sIDQwMDApOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB3aGVuIGEgcmVnaW9uIGlzIHNlbGVjdGVkL2hpZ2hsaWdodGVkLgogICAgICogSXQgd2lsbCBhbHNvIHVwZGF0ZSBvdGhlciBjb250cm9scy4KICAgICAqCiAgICAgKi8KICAgIGV2ZW50Tm90aWZpZXJDYWxsYmFjazogZnVuY3Rpb24gZXZlbnROb3RpZmllckNhbGxiYWNrKGV2ZW50KSB7CiAgICAgIHZhciBuYW1lcyA9IFtdOwogICAgICB2YXIgemluY09iamVjdHMgPSBbXTsKICAgICAgdmFyIHJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSAxIHx8IGV2ZW50LmV2ZW50VHlwZSA9PSAyKSB7CiAgICAgICAgZXZlbnQuaWRlbnRpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaWRlbnRpZmllcikgewogICAgICAgICAgaWYgKGlkZW50aWZpZXIpIHsKICAgICAgICAgICAgdmFyIGlkID0gaWRlbnRpZmllci5kYXRhLmlkID8gaWRlbnRpZmllci5kYXRhLmlkIDogaWRlbnRpZmllci5kYXRhLmdyb3VwOwogICAgICAgICAgICBuYW1lcy5wdXNoKGlkKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB6aW5jT2JqZWN0cyA9IGV2ZW50LnppbmNPYmplY3RzOwogICAgICB9CiAgICAgIC8qCiAgICAgICAqIEV2ZW50IFR5cGUgMTogU2VsZWN0ZWQKICAgICAgICogRXZlbnQgVHlwZSAyOiBIaWdobGlnaHRlZAogICAgICAgKiBFdmVudCBUeXBlIDE6IE1vdmUKICAgICAgICovCiAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT0gMSkgewogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgewogICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgLy90aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VBY3RpdmVCeU5hbWVzKG5hbWVzLCByZWdpb24sIGZhbHNlKTsKICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMudXBkYXRlQWN0aXZlVUkoemluY09iamVjdHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5yZW1vdmVBY3RpdmUodHJ1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIFRyaWdnZXJzIHdoZW4gYW4gb2JqZWN0IGhhcyBiZWVuIHNlbGVjdGVkCiAgICAgICAgaWYgKHRoaXMudmlld2luZ01vZGUgPT09ICdBbm5vdGF0aW9uJykgewogICAgICAgICAgLy9NYWtlIHN1cmUgdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkIHdpdGggYW5ub3RhdGlvbiBtb2RlCiAgICAgICAgICB0aGlzLnNob3dSZWdpb25Ub29sdGlwV2l0aEFubm90YXRpb25zKGV2ZW50LmlkZW50aWZpZXJzLCB0cnVlLCB0cnVlKTsKICAgICAgICB9CiAgICAgICAgdGhpcy4kZW1pdCgic2NhZmZvbGQtc2VsZWN0ZWQiLCBldmVudC5pZGVudGlmaWVycyk7CiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDIpIHsKICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgICAgICAvLyBjb25zdCBvZmZzZXRzID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgewogICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgIC8vdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlSG92ZXJCeU5hbWVzKG5hbWVzLCByZWdpb24sIGZhbHNlKTsKICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy51cGRhdGVIb3ZlclVJKHppbmNPYmplY3RzKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5yZW1vdmVIb3Zlcih0cnVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzLmxlbmd0aCA+IDAgJiYgZXZlbnQuaWRlbnRpZmllcnNbMF0pIHsKICAgICAgICAgICAgdmFyIGlkID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5pZCA/IGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEuaWQgOiBldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLmdyb3VwOwogICAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzKSB7CiAgICAgICAgICAgICAgdGhpcy50RGF0YS5hY3RpdmUgPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICAgIHRoaXMudERhdGEubGFiZWwgPSBpZDsKICAgICAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5yZWdpb24pIHRoaXMudERhdGEucmVnaW9uID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5yZWdpb247ZWxzZSB0aGlzLnREYXRhLnJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnggPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueDsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLy8gVHJpZ2dlcnMgd2hlbiBhbiBvYmplY3QgaGFzIGJlZW4gaGlnaGxpZ2h0ZWQKICAgICAgICAgIHRoaXMuJGVtaXQoInNjYWZmb2xkLWhpZ2hsaWdodGVkIiwgZXZlbnQuaWRlbnRpZmllcnMpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChldmVudC5ldmVudFR5cGUgPT0gMykgewogICAgICAgIC8vTU9WRQogICAgICAgIGlmIChldmVudC5pZGVudGlmaWVycy5sZW5ndGggPiAwICYmIGV2ZW50LmlkZW50aWZpZXJzWzBdKSB7CiAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzKSB7CiAgICAgICAgICAgIHZhciBvZmZzZXRzID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAgdGhpcy50RGF0YS54ID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzLnggLSBvZmZzZXRzLmxlZnQ7CiAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy55IC0gb2Zmc2V0cy50b3A7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBHZXQgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIHJlZ2lvbi4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGdldENvb3JkaW5hdGVzT2ZTZWxlY3RlZDogZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXNPZlNlbGVjdGVkKCkgewogICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMgJiYgdGhpcy5zZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0T2JqZWN0c1NjcmVlblhZKHRoaXMuc2VsZWN0ZWRPYmplY3RzKTsKICAgICAgfQogICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgfSwKICAgIC8qKgogICAgICogUmV0dXJuIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSB3aW5kb3cgY29vcmRpbmF0ZXMgb2YgdGhlCiAgICAgKiBjdXJyZW50IHNlbGVjdGVkIHJlZ2lvbiB3aGljaCB3aWxsIGJlIHVwZGF0ZWQgYWZ0ZXIgZWFjaCByZW5kZXIKICAgICAqIGxvb3AuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBnZXREeW5hbWljU2VsZWN0ZWRDb29yZGluYXRlczogZnVuY3Rpb24gZ2V0RHluYW1pY1NlbGVjdGVkQ29vcmRpbmF0ZXMoKSB7CiAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2VsZWN0ZWRTY3JlZW5Db29yZGluYXRlczsKICAgIH0sCiAgICAvKioKICAgICAqIENhbGxiYWNrIHdoZW4gdGltZSBpcyBjaGFuZ2VkIHRocm91Z2ggdGhlIFVJLgogICAgICovCiAgICB0aW1lQ2hhbmdlOiBmdW5jdGlvbiB0aW1lQ2hhbmdlKGV2ZW50KSB7CiAgICAgIHZhciBub3JtYWxpemVkVGltZSA9IGV2ZW50IC8gdGhpcy50aW1lTWF4ICogMTAwOwogICAgICBpZiAobm9ybWFsaXplZFRpbWUgIT0gdGhpcy5zY2VuZURhdGEuY3VycmVudFRpbWUpIHRoaXMuJG1vZHVsZS51cGRhdGVUaW1lKG5vcm1hbGl6ZWRUaW1lKTsKICAgIH0sCiAgICAvKioKICAgICAqIEEgY2FsbGJhY2sgdXNlZCBieSBjaGlsZHJlbiBjb21wb25lbnRzLiBTZXQgdGhlIHNlbGVjdGVkIHppbmMgb2JqZWN0CiAgICAgKgogICAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCBaaW5jIG9iamVjdAogICAgICovCiAgICBvYmplY3RTZWxlY3RlZDogZnVuY3Rpb24gb2JqZWN0U2VsZWN0ZWQob2JqZWN0cywgcHJvcGFnYXRlKSB7CiAgICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RzID0gb2JqZWN0czsKICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPYmplY3RzICYmIHRoaXMuc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICB0aGlzLiRyZWZzLnByaW1pdGl2ZUNvbnRyb2xzLnNldE9iamVjdCh0aGlzLnNlbGVjdGVkT2JqZWN0c1swXSk7CiAgICAgIH0KICAgICAgdGhpcy4kbW9kdWxlLnNldFNlbGVjdGVkQnlaaW5jT2JqZWN0cyhvYmplY3RzLCB1bmRlZmluZWQsIHByb3BhZ2F0ZSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBBIGNhbGxiYWNrIHVzZWQgYnkgY2hpbGRyZW4gY29tcG9uZW50cy4gU2V0IHRoZSBoaWdobGlnaHRlZCB6aW5jIG9iamVjdAogICAgICoKICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgWmluYyBvYmplY3QKICAgICAqLwogICAgb2JqZWN0SG92ZXJlZDogZnVuY3Rpb24gb2JqZWN0SG92ZXJlZChvYmplY3RzLCBwcm9wYWdhdGUpIHsKICAgICAgdGhpcy5ob3ZlcmVkT2JqZWN0cyA9IG9iamVjdHM7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRIaWdobGlnaHRlZEJ5WmluY09iamVjdHMob2JqZWN0cywgdW5kZWZpbmVkLCBwcm9wYWdhdGUpOwogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBzZWxlY3RlZCBieSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSB7fSBuYW1lIE5hbWUgb2YgdGhlIGdyb3VwCiAgICAgKi8KICAgIGNoYW5nZUFjdGl2ZUJ5TmFtZTogZnVuY3Rpb24gY2hhbmdlQWN0aXZlQnlOYW1lKG5hbWVzLCByZWdpb24sIHByb3BhZ2F0ZSkgewogICAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobmFtZXMpOwogICAgICBpZiAobmFtZXMgPT09IHVuZGVmaW5lZCB8fCBpc0FycmF5ICYmIG5hbWVzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUFjdGl2ZShwcm9wYWdhdGUpOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBhcnJheSA9IG5hbWVzOwogICAgICAgIGlmICghaXNBcnJheSkgYXJyYXkgPSBbYXJyYXldOwogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLmNoYW5nZUFjdGl2ZUJ5TmFtZXMoYXJyYXksIHJlZ2lvbiwgcHJvcGFnYXRlKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBoaWdobGlnaHRlZCBieSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSB7bmFtZX0gbmFtZSBOYW1lIG9mIHRoZSBncm91cAogICAgICovCiAgICBjaGFuZ2VIaWdobGlnaHRlZEJ5TmFtZTogZnVuY3Rpb24gY2hhbmdlSGlnaGxpZ2h0ZWRCeU5hbWUobmFtZXMsIHJlZ2lvbiwgcHJvcGFnYXRlKSB7CiAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShuYW1lcyk7CiAgICAgIGlmIChuYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGlzQXJyYXkgJiYgbmFtZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlSG92ZXIocHJvcGFnYXRlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgYXJyYXkgPSBuYW1lczsKICAgICAgICBpZiAoIWlzQXJyYXkpIGFycmF5ID0gW2FycmF5XTsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VIb3ZlckJ5TmFtZXMoYXJyYXksIHJlZ2lvbiwgcHJvcGFnYXRlKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU3RhcnQgdGhlIGFuaW1hdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0CiAgICAgKi8KICAgIHBsYXk6IGZ1bmN0aW9uIHBsYXkoZmxhZykgewogICAgICB0aGlzLiRtb2R1bGUucGxheUFuaW1hdGlvbihmbGFnKTsKICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmbGFnOwogICAgICAvL0hpZGUgdG9vbHRpcCBhcyBsb2NhdGlvbiBtYXkKICAgICAgLy90aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICB9LAoKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIG9uL29mZiBvdmVybGF5IGhlbHAuCiAgICAgKi8KICAgIHNldEhlbHBNb2RlOiBmdW5jdGlvbiBzZXRIZWxwTW9kZShoZWxwTW9kZSkgewogICAgICBpZiAoaGVscE1vZGUpIHsKICAgICAgICB0aGlzLmluSGVscCA9IHRydWU7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaXRlbS52YWx1ZSA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIGJ5IHNob3dSZWdpb25Ub29sdGlwIGluIHRoZSBjYXNlIHdoZW4gdGhlIHRvb2x0aXAKICAgICAqIGlzIG91dCBvZiB2aWV3LgogICAgICovCiAgICBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrOiBmdW5jdGlvbiBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrKG5hbWUsIG9iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpIHsKICAgICAgdmFyIGluc3RhbmNlID0gdGhpczsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICBpbnN0YW5jZS4kbW9kdWxlLnppbmNSZW5kZXJlci5yZW1vdmVQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbihpbnN0YW5jZS4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjayk7CiAgICAgICAgaW5zdGFuY2UuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2sgPSB1bmRlZmluZWQ7CiAgICAgICAgaW5zdGFuY2UuZGlzcGxheVRvb2x0aXBPZk9iamVjdHMobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgIH07CiAgICB9LAogICAgbGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbjogZnVuY3Rpb24gbGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbigpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zZWxlY3RlZENlbnRlcikgewogICAgICAgIHRoaXMudERhdGEueCA9IHRoaXMuJG1vZHVsZS5zZWxlY3RlZFNjcmVlbkNvb3JkaW5hdGVzLng7CiAgICAgICAgdGhpcy50RGF0YS55ID0gdGhpcy4kbW9kdWxlLnNlbGVjdGVkU2NyZWVuQ29vcmRpbmF0ZXMueTsKICAgICAgfQogICAgfSwKICAgIGRpc3BsYXlUb29sdGlwT2ZPYmplY3RzOiBmdW5jdGlvbiBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0cyhuYW1lLCBvYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgY29vcmRzID0gb2JqZWN0c1swXS5nZXRDbG9zZXN0VmVydGV4RE9NRWxlbWVudENvb3Jkcyh0aGlzLiRtb2R1bGUuc2NlbmUpOwogICAgICAgIGlmIChjb29yZHMpIHsKICAgICAgICAgIC8vVGhlIGNvb3JkcyBpcyBub3QgaW4gdmlldywgdmlldyBhbGwgaWYgcmVzZXRWaWV3IGZsYWcgaXMgdHJ1ZQogICAgICAgICAgaWYgKCFjb29yZHMuaW5WaWV3KSB7CiAgICAgICAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgICAgICAgaWYgKHJlc2V0VmlldykgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsKCk7CiAgICAgICAgICAgICAgLy9Vc2UgdGhlIHBvc3QgcmVuZGVyIGNhbGxiYWNrIHRvIG1ha2Ugc3VyZSB0aGUgc2NlbmUgaGFzIGJlZW4gdXBkYXRlZAogICAgICAgICAgICAgIC8vYmVmb3JlIGdldHRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwLgogICAgICAgICAgICAgIGlmICh0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2spOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrID0gdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hZGRQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLmRpc3BsYXlUb29sdGlwT2ZPYmplY3RzQ2FsbGJhY2sobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoIW5hbWUuaW5jbHVkZXMoIlNlYXJjaCBSZXN1bHRzIGZvciIpKSB7CiAgICAgICAgICAgICAgdGhpcy50RGF0YS5hY3RpdmUgPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRoaXMudERhdGEuYWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy50RGF0YS52aXNpYmxlID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy50RGF0YS5sYWJlbCA9IG5hbWU7CiAgICAgICAgICAgIHRoaXMudERhdGEueCA9IGNvb3Jkcy5wb3NpdGlvbi54OwogICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBjb29yZHMucG9zaXRpb24ueTsKICAgICAgICAgICAgdGhpcy50RGF0YS5yZWdpb24gPSByZWdpb25QYXRoOwogICAgICAgICAgICBpZiAodGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuJF9saXZlQ29vcmRpbmF0ZXNVcGRhdGVkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobGl2ZVVwZGF0ZXMpIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0dXBMaXZlQ29vcmRpbmF0ZXMob2JqZWN0cyk7CiAgICAgICAgICAgICAgdGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQgPSB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmFkZFBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMubGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIERpc3BsYXkgdGhlIHRvb2x0aXAgdXNlZCBmb3IgZGlzcGxheWluZyBzZWFyY2ggcmVzdWx0LgogICAgICogV2hlbiByZXNldFZpZXcgaXMgc2V0IHRvIHRydWUsIGl0IHdpbGwKICAgICAqIHJlc2V0IHZpZXcgaWYgdGhlIHRvb2x0aXAgaXMgbm90IGluIHZpZXcuCiAgICAgKiBTZXR0aW5nIGxpdmVVcGRhdGVzIHRvIHRydWUgd2lsbCB1cGRhdGUgdGhlIHRvb2x0aXAgbG9jYXRpb24KICAgICAqIGF0IGV2ZXJ5IHJlbmRlcmluZyBsb29wLgogICAgICovCiAgICBzaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzOiBmdW5jdGlvbiBzaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKGxhYmVsLCB6aW5jT2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAobGFiZWwgJiYgemluY09iamVjdHMgJiYgemluY09iamVjdHMubGVuZ3RoID4gMCAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5VG9vbHRpcE9mT2JqZWN0cyhsYWJlbCwgemluY09iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpOwogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcC4gV2hlbiByZXNldFZpZXcgaXMgc2V0IHRvIHRydWUsIGl0IHdpbGwKICAgICAqIHJlc2V0IHZpZXcgaWYgdGhlIHRvb2x0aXAgaXMgbm90IGluIHZpZXcuCiAgICAgKiBTZXR0aW5nIGxpdmVVcGRhdGVzIHRvIHRydWUgd2lsbCB1cGRhdGUgdGhlIHRvb2x0aXAgbG9jYXRpb24KICAgICAqIGF0IGV2ZXJ5IHJlbmRlcmluZyBsb29wLgogICAgICovCiAgICBzaG93UmVnaW9uVG9vbHRpcDogZnVuY3Rpb24gc2hvd1JlZ2lvblRvb2x0aXAobmFtZSwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAobmFtZSAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgcm9vdFJlZ2lvbiA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRSb290UmVnaW9uKCk7CiAgICAgICAgdmFyIGdyb3VwcyA9IFtuYW1lXTsKICAgICAgICB2YXIgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICAgIHZhciByZWdpb25QYXRoID0gdW5kZWZpbmVkOwogICAgICAgIGlmIChvYmplY3RzICYmIG9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgcmVnaW9uUGF0aCA9IG9iamVjdHNbMF0uZ2V0UmVnaW9uKCkuZ2V0RnVsbFBhdGgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd1JlZ2lvblRvb2x0aXBXaXRoT2JqZWN0cyhuYW1lLCBvYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKTsKICAgICAgfQogICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIERpc3BsYXkgdGhlIHRvb2x0aXAgdXNpbmcgdGhlIGxpc3Qgb2YgYW5ub3RhdGlvbnMuCiAgICAgKiBXaGVuIHJlc2V0VmlldyBpcyBzZXQgdG8gdHJ1ZSwgaXQgd2lsbAogICAgICogcmVzZXQgdmlldyBpZiB0aGUgdG9vbHRpcCBpcyBub3QgaW4gdmlldy4KICAgICAqIFNldHRpbmcgbGl2ZVVwZGF0ZXMgdG8gdHJ1ZSB3aWxsIHVwZGF0ZSB0aGUgdG9vbHRpcCBsb2NhdGlvbgogICAgICogYXQgZXZlcnkgcmVuZGVyaW5nIGxvb3AuCiAgICAgKi8KICAgIHNob3dSZWdpb25Ub29sdGlwV2l0aEFubm90YXRpb25zOiBmdW5jdGlvbiBzaG93UmVnaW9uVG9vbHRpcFdpdGhBbm5vdGF0aW9ucyhhbm5vdGF0aW9ucywgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHJlc3VsdCA9IGdldE9iamVjdHNGcm9tQW5ub3RhdGlvbnModGhpcy4kbW9kdWxlLnNjZW5lLCBhbm5vdGF0aW9ucyk7CiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQub2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5zaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKHJlc3VsdC5sYWJlbCwgcmVzdWx0Lm9iamVjdHMsIHJlc3VsdC5yZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgaGlkZVJlZ2lvblRvb2x0aXA6IGZ1bmN0aW9uIGhpZGVSZWdpb25Ub29sdGlwKCkgewogICAgICBpZiAodGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuJF9saXZlQ29vcmRpbmF0ZXNVcGRhdGVkKTsKICAgICAgICAvL1Vuc2V0IHRoZSB0cmFja2luZwogICAgICAgIHRoaXMuJG1vZHVsZS5zZXR1cExpdmVDb29yZGluYXRlcyh1bmRlZmluZWQpOwogICAgICB9CiAgICAgIHRoaXMudERhdGEuYWN0aXZlID0gZmFsc2U7CiAgICAgIHRoaXMudERhdGEudmlzaWJsZSA9IGZhbHNlOwogICAgICB0aGlzLnREYXRhLnJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioKICAgICAqIFNldCB0aGUgbWFya2VyIG1vZGVzIGZvciBvYmplY3RzIHdpdGggdGhlIHByb3ZpZGVkIG5hbWUsIG1vZGUgY2FuCiAgICAgKiBiZSAib24iLCAib2ZmIiBvciAiaW5oZXJpdGVkIi4KICAgICAqLwogICAgc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZTogZnVuY3Rpb24gc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZShuYW1lLCBtb2RlKSB7CiAgICAgIGlmIChuYW1lICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgICB2YXIgZ3JvdXBzID0gW25hbWVdOwogICAgICAgIHZhciBvYmplY3RzID0gZmluZE9iamVjdHNXaXRoTmFtZXMocm9vdFJlZ2lvbiwgZ3JvdXBzLCAiIiwgdHJ1ZSk7CiAgICAgICAgb2JqZWN0cy5mb3JFYWNoKGZ1bmN0aW9uIChvYmplY3QpIHsKICAgICAgICAgIHJldHVybiBvYmplY3Quc2V0TWFya2VyTW9kZShtb2RlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBtYXJrZXIgbW9kZXMgZm9yIG9iamVjdHMgc3BlY2lmaWVkIGJ5IHRoZSBsaXN0IG9mIGFubm90YXRpb25zCiAgICAgKi8KICAgIHNldE1hcmtlck1vZGVXaXRoQW5ub3RhdGlvbnM6IGZ1bmN0aW9uIHNldE1hcmtlck1vZGVXaXRoQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMsIG1vZGUpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciByZXN1bHQgPSBnZXRPYmplY3RzRnJvbUFubm90YXRpb25zKHRoaXMuJG1vZHVsZS5zY2VuZSwgYW5ub3RhdGlvbnMpOwogICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lm9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgcmVzdWx0Lm9iamVjdHMuZm9yRWFjaChmdW5jdGlvbiAob2JqZWN0KSB7CiAgICAgICAgICAgIHJldHVybiBvYmplY3Quc2V0TWFya2VyTW9kZShtb2RlKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBtb3VzZSBjdXJzb3IgZW50ZXJzIHN1cHBvcnRlZCBlbGVtZW50cwogICAgICogd2l0aCBoZWxwIHRvb3RsdGlwcy4KICAgICAqLwogICAgc2hvd0hlbHBUZXh0OiBmdW5jdGlvbiBzaG93SGVscFRleHQoaGVscFRleHROdW1iZXIpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICB0aGlzLmhlbHBUZXh0V2FpdCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMzLmhvdmVyVmlzaWJpbGl0aWVzW2hlbHBUZXh0TnVtYmVyXS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBtb3VzZSBjdXJzb3IgZXhpdHMgc3VwcG9ydGVkIGVsZW1lbnQuLgogICAgICovCiAgICBoaWRlSGVscFRleHQ6IGZ1bmN0aW9uIGhpZGVIZWxwVGV4dChoZWxwVGV4dE51bWJlcikgewogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllc1toZWxwVGV4dE51bWJlcl0udmFsdWUgPSBmYWxzZTsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oZWxwVGV4dFdhaXQpOwogICAgICB9CiAgICB9LAogICAgc2VhcmNoOiBmdW5jdGlvbiBzZWFyY2godGV4dCwgZGlzcGxheUxhYmVsKSB7CiAgICAgIGlmICh0aGlzLiRfc2VhcmNoSW5kZXgpIHsKICAgICAgICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQgPT09ICIiIHx8IEFycmF5LmlzQXJyYXkodGV4dCkgJiYgdGV4dC5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHRoaXMub2JqZWN0U2VsZWN0ZWQoW10sIHRydWUpOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy4kX3NlYXJjaEluZGV4LnNlYXJjaEFuZFByb2Nlc3NSZXN1bHQodGV4dCk7CiAgICAgICAgICB2YXIgemluY09iamVjdHMgPSByZXN1bHQuemluY09iamVjdHM7CiAgICAgICAgICBpZiAoemluY09iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLm9iamVjdFNlbGVjdGVkKHppbmNPYmplY3RzLCB0cnVlKTsKICAgICAgICAgICAgaWYgKGRpc3BsYXlMYWJlbCkgewogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgemluY09iamVjdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmICh6aW5jT2JqZWN0c1tpXSAmJiB6aW5jT2JqZWN0c1tpXS5ncm91cE5hbWUpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5zaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKHJlc3VsdC5sYWJlbCwgemluY09iamVjdHMsIHJlc3VsdC5yZWdpb25QYXRoLCB0cnVlLCB0cnVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLm9iamVjdFNlbGVjdGVkKFtdLCB0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogR2V0IHRoZSBsaXN0IG9mIHN1Z2dlc3RlZCB0ZXJtcwogICAgICovCiAgICBmZXRjaFN1Z2dlc3Rpb25zOiBmdW5jdGlvbiBmZXRjaFN1Z2dlc3Rpb25zKHRlcm0pIHsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW107CiAgICAgIHJldHVybiB0aGlzLiRfc2VhcmNoSW5kZXguYXV0b19zdWdnZXN0KHRlcm0pOwogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGVkIHdoZW4gbWluaW1hcCBzZXR0aW5ncyBoYXMgY2hhbmdlZC4gUGFzcyB0aGUKICAgICAqIHBhcmFtZXRlcnMgdG8gWmluY0pTIGFuZCBtYXJrZWQgaXQgZm9yIHVwZGF0ZS4KICAgICAqLwogICAgdXBkYXRlTWluaW1hcFNjaXNzb3I6IGZ1bmN0aW9uIHVwZGF0ZU1pbmltYXBTY2lzc29yKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgT2JqZWN0LmtleXModGhpcy5taW5pbWFwU2V0dGluZ3MpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgIF90aGlzNC4kbW9kdWxlLnNjZW5lLm1pbmltYXBTY2lzc29yW2tleV0gPSBfdGhpczQubWluaW1hcFNldHRpbmdzW2tleV07CiAgICAgIH0pOwogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUubWluaW1hcFNjaXNzb3IudXBkYXRlUmVxdWlyZWQgPSB0cnVlOwogICAgfSwKICAgIHVwZGF0ZVNldHRpbmdzZnJvbVNjZW5lOiBmdW5jdGlvbiB1cGRhdGVTZXR0aW5nc2Zyb21TY2VuZSgpIHsKICAgICAgdGhpcy5jdXJyZW50U3BlZWQgPSAxOwogICAgICB0aGlzLiRtb2R1bGUuc2V0UGxheVJhdGUodGhpcy5kZWZhdWx0UmF0ZSk7CiAgICAgIHRoaXMub3JnaW5hbER1cmF0aW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE1ldGFkYXRhVGFnKCJPcmlnaW5hbER1cmF0aW9uIik7CiAgICAgIHRoaXMuYW5pbWF0ZUR1cmF0aW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE1ldGFkYXRhVGFnKCJEdXJhdGlvbiIpOwogICAgICB2YXIgdGltZVN0YW1wcyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRNZXRhZGF0YVRhZygiVGltZVN0YW1wcyIpOwogICAgICB0aGlzLnRpbWVTdGFtcHMgPSB7fTsKICAgICAgZm9yICh2YXIga2V5IGluIHRpbWVTdGFtcHMpIHsKICAgICAgICB0aGlzLnRpbWVTdGFtcHNbdGltZVN0YW1wc1trZXldXSA9IGtleTsKICAgICAgfQogICAgICB0aGlzLnRpbWVNYXggPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0RHVyYXRpb24oKTsKICAgIH0sCiAgICBzZXRVUkxGaW5pc2hDYWxsYmFjazogZnVuY3Rpb24gc2V0VVJMRmluaXNoQ2FsbGJhY2sob3B0aW9ucykgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAob3B0aW9ucykgewogICAgICAgICAgaWYgKG9wdGlvbnMudmlld3BvcnQpIHsKICAgICAgICAgICAgX3RoaXM1LiRtb2R1bGUuc2NlbmUuZ2V0WmluY0NhbWVyYUNvbnRyb2xzKCkuc2V0Q3VycmVudENhbWVyYVNldHRpbmdzKG9wdGlvbnMudmlld3BvcnQpOwogICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnZpZXdVUkwgJiYgb3B0aW9ucy52aWV3VVJMICE9PSAiIikgewogICAgICAgICAgICB2YXIgdXJsID0gbmV3IFVSTChvcHRpb25zLnZpZXdVUkwsIF90aGlzNS51cmwpOwogICAgICAgICAgICBfdGhpczUuJG1vZHVsZS5zY2VuZS5sb2FkVmlld1VSTCh1cmwpOwogICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnJlZ2lvbiAmJiBvcHRpb25zLnJlZ2lvbiAhPT0gIiIpIHsKICAgICAgICAgICAgX3RoaXM1LnZpZXdSZWdpb24ob3B0aW9ucy5yZWdpb24pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdGlvbnMudmlzaWJpbGl0eSkgewogICAgICAgICAgICAvLyBTb21lIFVJcyBtYXkgbm90IGJlIHJlYWR5IGF0IHRoaXMgdGltZS4KICAgICAgICAgICAgX3RoaXM1LiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgX3RoaXM1LiRyZWZzLnRyZWVDb250cm9scy5zZXRTdGF0ZShvcHRpb25zLnZpc2liaWxpdHkpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgX3RoaXM1LnVwZGF0ZVNldHRpbmdzZnJvbVNjZW5lKCk7CiAgICAgICAgX3RoaXM1LiRtb2R1bGUudXBkYXRlVGltZSgwLjAxKTsKICAgICAgICBfdGhpczUuJG1vZHVsZS51cGRhdGVUaW1lKDApOwogICAgICAgIF90aGlzNS4kbW9kdWxlLnVuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjaygpOwogICAgICAgIF90aGlzNS5hZGRSZWdpb25zVG9TZWFyY2hJbmRleCgpOwogICAgICAgIF90aGlzNS4kZW1pdCgib24tcmVhZHkiKTsKICAgICAgICBfdGhpczUuc2V0TWFya2VycygpOwogICAgICAgIF90aGlzNS5pc1JlYWR5ID0gdHJ1ZTsKICAgICAgfTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIGdldHRpbmcgdGhlIGN1cnJlbnQgc3RhdGVzIG9mIHRoZSBzY2VuZS4gVGhpcyBleHBvcnRlZCBzdGF0ZXMKICAgICAqIGNhbiBiZSBpbXBvcnRlZCB1c2luZyB0aGUgaW1wb3J0U3RhdGVzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGdldFN0YXRlOiBmdW5jdGlvbiBnZXRTdGF0ZSgpIHsKICAgICAgdmFyIHN0YXRlID0gewogICAgICAgIGZvcm1hdDogdGhpcy5maWxlRm9ybWF0LAogICAgICAgIHVybDogdGhpcy5fY3VycmVudFVSTCwKICAgICAgICB2aWV3cG9ydDogdW5kZWZpbmVkLAogICAgICAgIHZpc2liaWxpdHk6IHVuZGVmaW5lZAogICAgICB9OwogICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHN0YXRlLnZpc2liaWxpdHkgPSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5nZXRTdGF0ZSgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHppbmNDYW1lcmFDb250cm9scyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICBzdGF0ZS52aWV3cG9ydCA9IHppbmNDYW1lcmFDb250cm9scy5nZXRDdXJyZW50Vmlld3BvcnQoKTsKICAgICAgfQogICAgICByZXR1cm4gc3RhdGU7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB1c2VkIGZvciBpbXBvcnRpbmcgdGhlIHN0YXRlcyBvZiB0aGUgc2NlbmUuIFRoaXMgZXhwb3J0ZWQgc3RhdGVzCiAgICAgKiBjYW4gYmUgaW1wb3J0ZWQgdXNpbmcgdGhlIHJlYWQgc3RhdGVzIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNldFN0YXRlOiBmdW5jdGlvbiBzZXRTdGF0ZShzdGF0ZSkgewogICAgICBpZiAoc3RhdGUpIHsKICAgICAgICBpZiAoc3RhdGUudXJsICYmIHN0YXRlLnVybCAhPT0gdGhpcy5fY3VycmVudFVSTCkgewogICAgICAgICAgdGhpcy5zZXRVUkxBbmRTdGF0ZShzdGF0ZS51cmwsIHsKICAgICAgICAgICAgZmlsZUZvcm1hdDogc3RhdGUuZmlsZUZvcm1hdCwKICAgICAgICAgICAgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LAogICAgICAgICAgICB2aXNpYmlsaXR5OiBzdGF0ZS52aXNpYmlsaXR5CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKHN0YXRlLnZpZXdwb3J0IHx8IHN0YXRlLnZpc2liaWxpdHkpIHsKICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKS5zZXRDdXJyZW50Q2FtZXJhU2V0dGluZ3Moc3RhdGUudmlld3BvcnQpOwogICAgICAgICAgICAgIGlmIChzdGF0ZS52aXNpYmlsaXR5KSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5zZXRTdGF0ZShzdGF0ZS52aXNpYmlsaXR5KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgICAgIHZpZXdwb3J0OiBzdGF0ZS52aWV3cG9ydCwKICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHN0YXRlLnZpc2liaWxpdHkKICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBleHBvcnRHTFRGOiBmdW5jdGlvbiBleHBvcnRHTFRGKGJpbmFyeSkgewogICAgICByZXR1cm4gdGhpcy4kbW9kdWxlLnNjZW5lLmV4cG9ydEdMVEYoYmluYXJ5KTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIHJlYWRpbmcgaW4gbmV3IHNjYWZmb2xkIG1ldGFkYXRhIGFuZCBhIGN1c3RvbQogICAgICogdmlld3BvcnQuIFRoaXMgZnVuY3Rpb24gd2lsbCBpZ25vcmUgdGhlIHN0YXRlIHByb3AgYW5kCiAgICAgKiByZWFkIGluIHRoZSBuZXcgdXJsLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc2V0VVJMQW5kU3RhdGU6IGZ1bmN0aW9uIHNldFVSTEFuZFN0YXRlKG5ld1ZhbHVlLCBzdGF0ZSkgewogICAgICBpZiAobmV3VmFsdWUgIT0gdGhpcy5fY3VycmVudFVSTCkgewogICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5mb3JtYXQpIHRoaXMuZmlsZUZvcm1hdCA9IHN0YXRlLmZvcm1hdDsKICAgICAgICB2YXIgdmlld3BvcnQgPSBzdGF0ZSAmJiBzdGF0ZS52aWV3cG9ydCA/IHN0YXRlLnZpZXdwb3J0IDogdW5kZWZpbmVkOwogICAgICAgIHZhciB2aXNpYmlsaXR5ID0gc3RhdGUgJiYgc3RhdGUudmlzaWJpbGl0eSA/IHN0YXRlLnZpc2liaWxpdHkgOiB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5fY3VycmVudFVSTCA9IG5ld1ZhbHVlOwogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2xlYXIoKTsKICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICAgIHRoaXMuaXNSZWFkeSA9IGZhbHNlOwogICAgICAgIHRoaXMuJF9zZWFyY2hJbmRleC5yZW1vdmVBbGwoKTsKICAgICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2sodGhpcy5zZXRVUkxGaW5pc2hDYWxsYmFjayh7CiAgICAgICAgICB2aWV3cG9ydDogdmlld3BvcnQsCiAgICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLAogICAgICAgICAgdmlld1VSTDogdGhpcy52aWV3VVJMLAogICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJpbGl0eQogICAgICAgIH0pKTsKICAgICAgICBpZiAodGhpcy5maWxlRm9ybWF0ID09PSAiZ2x0ZiIpIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5sb2FkR0xURkZyb21VUkwobmV3VmFsdWUsICJzY2VuZSIsIHRydWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUubG9hZE9yZ2Fuc0Zyb21VUkwobmV3VmFsdWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAic2NlbmUiLCB1bmRlZmluZWQsIHRydWUpOwogICAgICAgIH0KICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1hcmtlcnMgPSB0aGlzLmRpc3BsYXlNYXJrZXJzOwogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5mb3JjZVBpY2thYmxlT2JqZWN0c1VwZGF0ZSA9IHRydWU7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmRpc3BsYXlNaW5pbWFwID0gdGhpcy5kaXNwbGF5TWluaW1hcDsKICAgICAgICB0aGlzLnVwZGF0ZU1pbmltYXBTY2lzc29yKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIHJlYWRpbmcgaW4gbmV3IHNjYWZmb2xkIG1ldGFkYXRhLiBUaGlzIGZ1bmN0aW9uIHdpbGwgaWdub3JlCiAgICAgKiB0aGUgc3RhdGUgcHJvcCBhbmQgcmVhZCBpbiB0aGUgbmV3IHVybC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHNldFVSTDogZnVuY3Rpb24gc2V0VVJMKG5ld1ZhbHVlKSB7CiAgICAgIHRoaXMuc2V0VVJMQW5kU3RhdGUobmV3VmFsdWUsIHVuZGVmaW5lZCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayB3aGVuIGRyYXdlciBpcyB0b2dnbGVkLgogICAgICovCiAgICBkcmF3ZXJUb2dnbGVkOiBmdW5jdGlvbiBkcmF3ZXJUb2dnbGVkKGZsYWcpIHsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gZmxhZzsKICAgICAgdGhpcy5hZGp1c3RMYXlvdXQoKTsKICAgIH0sCiAgICAvKioKICAgICAqIENhbGxiYWNrIHVzaW5nIFJlc2l6ZU9ic2VydmVyLgogICAgICovCiAgICBhZGp1c3RMYXlvdXQ6IGZ1bmN0aW9uIGFkanVzdExheW91dCgpIHsKICAgICAgdmFyIHdpZHRoID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5jbGllbnRXaWR0aDsKICAgICAgdGhpcy5taW5pbWlzZWRTbGlkZXIgPSB3aWR0aCA8IDgxMjsKICAgICAgaWYgKHRoaXMubWluaW1pc2VkU2xpZGVyKSB7CiAgICAgICAgdGhpcy5zbGlkZXJQb3NpdGlvbiA9IHRoaXMuZHJhd2VyT3BlbiA/ICJyaWdodCIgOiAibGVmdCI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zbGlkZXJQb3NpdGlvbiA9ICIiOwogICAgICB9CiAgICB9LAogICAgdG9nZ2xlUmVuZGVyaW5nOiBmdW5jdGlvbiB0b2dnbGVSZW5kZXJpbmcoZmxhZykgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIGlmIChmbGFnKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmFuaW1hdGUoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5zdG9wQW5pbWF0ZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGZvcmNlUmVzaXplOiBmdW5jdGlvbiBmb3JjZVJlc2l6ZSgpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLm9uV2luZG93UmVzaXplKCk7CiAgICAgIH0KICAgIH0sCiAgICBzeW5jQ29udHJvbENhbGxiYWNrOiBmdW5jdGlvbiBzeW5jQ29udHJvbENhbGxiYWNrKCkgewogICAgICB2YXIgcGF5bG9hZCA9IHRoaXMuJG1vZHVsZS5ORENDYW1lcmFDb250cm9sLmdldFBhblpvb20oKTsKICAgICAgaWYgKHRoaXMudERhdGEudmlzaWJsZSkgewogICAgICAgIHRoaXMuc2hvd1JlZ2lvblRvb2x0aXAodGhpcy50RGF0YS5sYWJlbCwgdHJ1ZSwgdHJ1ZSk7CiAgICAgIH0KICAgICAgdGhpcy4kZW1pdCgic2NhZmZvbGQtbmF2aWdhdGVkIiwgcGF5bG9hZCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBSb3RhdGUgbW9kZSAtICJub25lIiwgImhvcml6b250YWwiLCAidmVydGljYWwiLCAiZnJlZSIgYnV0CiAgICAgKiBpdCB3aWxsIGJlIGlnbm9yZWQgaWYgZmxhZyBpcyBzZXQgdG8gZmFsc2UuCiAgICAgKi8KICAgIHRvZ2dsZVN5bmNDb250cm9sOiBmdW5jdGlvbiB0b2dnbGVTeW5jQ29udHJvbChmbGFnLCByb3RhdGVNb2RlKSB7CiAgICAgIHRoaXMuJG1vZHVsZS50b2dnbGVTeW5jQ29udHJvbChmbGFnLCByb3RhdGVNb2RlKTsKICAgICAgdGhpcy4kbW9kdWxlLnNldFN5bmNDb250cm9sQ2FsbGJhY2sodGhpcy5zeW5jQ29udHJvbENhbGxiYWNrKTsKICAgIH0sCiAgICAvKioKICAgICAqIFNldCB0aGUgbWFya2VycyBmb3IgdGhlIHNjZW5lLgogICAgICovCiAgICBzZXRNYXJrZXJzOiBmdW5jdGlvbiBzZXRNYXJrZXJzKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdGhpcy5tYXJrZXJMYWJlbHMuZm9yRWFjaChmdW5jdGlvbiAobCkgewogICAgICAgIF90aGlzNi5zZXRNYXJrZXJNb2RlRm9yT2JqZWN0c1dpdGhOYW1lKGwsICJvbiIpOwogICAgICB9KTsKICAgIH0KICB9Cn07"},{"version":3,"names":["Vue","PrimitiveControls","ScaffoldTooltip","TreeControls","MapSvgIcon","MapSvgSpriteColor","findObjectsWithNames","getObjectsFromAnnotations","SearchIndex","lang","locale","use","_Button","_Col","_Loading","directive","_Option","_Popover","_Row","_Select","_Slider","_TabPane","_Tabs","OrgansViewer","require","EventNotifier","name","components","props","url","type","String","default","showColourPicker","Boolean","displayUI","displayAtStartUp","helpMode","displayWarning","warningMessage","displayLatestChanges","latestChangesMessage","displayMarkers","markerLabels","Array","_default","displayMinimap","format","minimapSettings","Object","x_offset","y_offset","width","height","align","enableOpenMapUI","openMapOptions","display","key","state","undefined","region","viewURL","render","flatmapAPI","provide","scaffoldUrl","data","sceneData","$module","isPlaying","isReady","isTransitioning","tooltipAppendToBody","hoverVisibilities","value","inHelp","loading","duration","drawerOpen","currentBackground","availableBackground","minimisedSlider","sliderPosition","timeMax","orginalDuration","animateDuration","playSpeed","label","currentSpeed","timeStamps","defaultCheckedKeys","tData","visible","x","y","active","fileFormat","previousMarkerLabels","viewingMode","viewingModes","watch","handler","immediate","newValue","setURL","setFocusedRegion","setState","deep","updateViewURL","val","setHelpMode","scene","forcePickableObjectsUpdate","sceneDataCurrentTime","$emit","currentTime","setDuration","toggleRendering","labels","_this","forEach","pml","setMarkerModeForObjectsWithName","l","beforeCreate","selectedObjects","hoveredObjects","_currentURL","$_searchIndex","mounted","$refs","treeControls","setModule","eventNotifier","subscribe","eventNotifierCallback","addNotifier","addOrganPartAddedCallback","zincObjectAdded","initialiseRenderer","ro","ResizeObserver","adjustLayout","observe","scaffoldContainer","defaultRate","getPlayRate","beforeDestroy","disconnect","destroy","methods","addZincObject","zincObject","uuid","addRegionsToSearchIndex","_this2","rootRegion","getRootRegion","regions","getChildRegions","addRegion","backgroundChangeCallback","colour","zincRenderer","getThreeJSRenderer","setClearColor","captureScreenshotCallback","removePostRenderCallbackFunction","captureID","screenshot","domElement","toDataURL","hrefElement","document","createElement","body","append","captureFilename","download","href","click","remove","captureScreenshot","filename","addPostRenderCallbackFunction","clearScene","clear","removeAll","clearAll","formatTooltip","sec","toFixed","min","fitWindow","viewAll","zoomIn","changeZoomByScrollRateUnit","zoomOut","speedChanged","speed","setPlayRate","stopFreeSpin","cameracontrol","getZincCameraControls","stopAutoTumble","findObjectsWithGroupName","objects","viewRegion","names","groups","isArray","box","getBoundingBoxOfZincObjects","isSyncControl","setSyncControlZoomToBox","dist","camera","far","near","viewAllWithBoundingBox","updateProjectionMatrix","setFinishDownloadCallback","setURLFinishCallback","URL","loadViewURL","getRendererInfo","info","freeSpin","enableAutoTumble","autoTumble","Math","PI","setTimeout","event","zincObjects","eventType","identifiers","identifier","id","group","push","length","updateActiveUI","hideRegionTooltip","removeActive","showRegionTooltipWithAnnotations","updateHoverUI","removeHover","coords","offsets","getBoundingClientRect","left","top","getCoordinatesOfSelected","getObjectsScreenXY","getDynamicSelectedCoordinates","selectedScreenCoordinates","timeChange","normalizedTime","updateTime","objectSelected","propagate","primitiveControls","setObject","setSelectedByZincObjects","objectHovered","setHighlightedByZincObjects","changeActiveByName","array","changeActiveByNames","changeHighlightedByName","changeHoverByNames","play","flag","playAnimation","item","displayTooltipOfObjectsCallback","regionPath","resetView","liveUpdates","instance","$_regionTooltipCallback","displayTooltipOfObjects","liveUpdateTooltipPosition","selectedCenter","getClosestVertexDOMElementCoords","inView","includes","position","$_liveCoordinatesUpdated","setupLiveCoordinates","showRegionTooltipWithObjects","showRegionTooltip","getRegion","getFullPath","annotations","result","mode","object","setMarkerMode","setMarkerModeWithAnnotations","showHelpText","helpTextNumber","_this3","helpTextWait","hideHelpText","clearTimeout","search","text","displayLabel","searchAndProcessResult","i","groupName","fetchSuggestions","term","auto_suggest","updateMinimapScissor","_this4","keys","minimapScissor","updateRequired","updateSettingsfromScene","getMetadataTag","getDuration","options","_this5","viewport","setCurrentCameraSettings","visibility","$nextTick","unsetFinishDownloadCallback","setMarkers","getState","zincCameraControls","getCurrentViewport","setURLAndState","exportGLTF","binary","loadGLTFFromURL","loadOrgansFromURL","drawerToggled","clientWidth","animate","stopAnimate","forceResize","onWindowResize","syncControlCallback","payload","NDCCameraControl","getPanZoom","toggleSyncControl","rotateMode","setSyncControlCallback","_this6"],"sources":["node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue"],"sourcesContent":["\n\n\n\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyUA;AACA,OAAAA,GAAA;AACA,OAAAC,iBAAA;AACA,OAAAC,eAAA;AACA,OAAAC,YAAA;AACA,SAAAC,UAAA,EAAAC,iBAAA;AACA,SAAAC,oBAAA,EAAAC,yBAAA;AACA,SAAAC,WAAA;AAaA,OAAAC,IAAA;AACA,OAAAC,MAAA;AAEAA,MAAA,CAAAC,GAAA,CAAAF,IAAA;AACAT,GAAA,CAAAW,GAAA,CAAAC,OAAA;AACAZ,GAAA,CAAAW,GAAA,CAAAE,IAAA;AACAb,GAAA,CAAAW,GAAA,CAAAG,QAAA,CAAAC,SAAA;AACAf,GAAA,CAAAW,GAAA,CAAAK,OAAA;AACAhB,GAAA,CAAAW,GAAA,CAAAM,QAAA;AACAjB,GAAA,CAAAW,GAAA,CAAAO,IAAA;AACAlB,GAAA,CAAAW,GAAA,CAAAQ,OAAA;AACAnB,GAAA,CAAAW,GAAA,CAAAS,OAAA;AACApB,GAAA,CAAAW,GAAA,CAAAU,QAAA;AACArB,GAAA,CAAAW,GAAA,CAAAW,KAAA;AAEA,IAAAC,YAAA,GAAAC,OAAA,8BAAAD,YAAA;AACA,IAAAE,aAAA,GAAAD,OAAA,6BAAAC,aAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACAC,IAAA;EACAC,UAAA;IACAvB,UAAA,EAAAA,UAAA;IACAC,iBAAA,EAAAA,iBAAA;IACAJ,iBAAA,EAAAA,iBAAA;IACAC,eAAA,EAAAA,eAAA;IACAC,YAAA,EAAAA;EACA;EACAyB,KAAA;IACA;AACA;AACA;AACA;AACA;AACA;IACAC,GAAA;MACAC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAC,gBAAA;MACAH,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAG,SAAA;MACAL,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACAI,gBAAA;MACAN,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAK,QAAA;MACAP,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAM,cAAA;MACAR,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;IACAO,cAAA;MACAT,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACAQ,oBAAA;MACAV,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAS,oBAAA;MACAX,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAU,cAAA;MACAZ,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAW,YAAA;MACAb,IAAA,EAAAc,KAAA;MACAZ,OAAA,WAAAa,SAAA;QACA;MACA;IACA;IACA;AACA;AACA;IACAC,cAAA;MACAhB,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAe,MAAA;MACAjB,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAgB,eAAA;MACAlB,IAAA,EAAAmB,MAAA;MACAjB,OAAA,WAAAa,SAAA;QACA;UACAK,QAAA;UACAC,QAAA;UACAC,KAAA;UACAC,MAAA;UACAC,KAAA;QACA;MACA;IACA;IACA;AACA;AACA;AACA;IACAC,eAAA;MACAzB,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAwB,cAAA;MACA1B,IAAA,EAAAc,KAAA;MACAZ,OAAA,WAAAa,SAAA;QACA,QACA;UACAY,OAAA;UACAC,GAAA;QACA,GACA;UACAD,OAAA;UACAC,GAAA;QACA,GACA;UACAD,OAAA;UACAC,GAAA;QACA,EACA;MACA;IACA;IACA;AACA;AACA;IACAC,KAAA;MACA7B,IAAA,EAAAmB,MAAA;MACAjB,OAAA,EAAA4B;IACA;IACA;AACA;AACA;AACA;IACAC,MAAA;MACA/B,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACA8B,OAAA;MACAhC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACA+B,MAAA;MACAjC,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AAC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"}]}