{"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/flatmapvuer/src/components/FlatmapVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.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:aW1wb3J0IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIGZyb20gIi9ob21lL2NtaXNzL0plbmtpbnMvd29ya3NwYWNlL21hcGludGVncmF0ZWR2dWVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiL2hvbWUvY21pc3MvSmVua2lucy93b3Jrc3BhY2UvbWFwaW50ZWdyYXRlZHZ1ZXIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICIvaG9tZS9jbWlzcy9KZW5raW5zL3dvcmtzcGFjZS9tYXBpbnRlZ3JhdGVkdnVlci9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfUm93MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9yb3cuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUm93IGZyb20gImVsZW1lbnQtdWkvbGliL3JvdyI7CmltcG9ydCBfUmFkaW9Hcm91cDIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvcmFkaW8tZ3JvdXAuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUmFkaW9Hcm91cCBmcm9tICJlbGVtZW50LXVpL2xpYi9yYWRpby1ncm91cCI7CmltcG9ydCBfUmFkaW8yIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL3JhZGlvLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX1JhZGlvIGZyb20gImVsZW1lbnQtdWkvbGliL3JhZGlvIjsKaW1wb3J0IF9Mb2FkaW5nMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9sb2FkaW5nLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX0xvYWRpbmcgZnJvbSAiZWxlbWVudC11aS9saWIvbG9hZGluZyI7CmltcG9ydCBfQ29sMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9jb2wuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfQ29sIGZyb20gImVsZW1lbnQtdWkvbGliL2NvbCI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZyb20uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zZXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc2VhcmNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIjsKLyogZXNsaW50LWRpc2FibGUgbm8tYWxlcnQsIG5vLWNvbnNvbGUgKi8KaW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOwppbXBvcnQgVG9vbHRpcCBmcm9tICIuL1Rvb2x0aXAiOwppbXBvcnQgU2VsZWN0aW9uc0dyb3VwIGZyb20gIi4vU2VsZWN0aW9uc0dyb3VwLnZ1ZSI7CmltcG9ydCB7IE1hcFN2Z0ljb24sIE1hcFN2Z1Nwcml0ZUNvbG9yIH0gZnJvbSAiQGFiaS1zb2Z0d2FyZS9zdmctc3ByaXRlIjsKaW1wb3J0IFN2Z0xlZ2VuZHMgZnJvbSAiLi9sZWdlbmRzL1N2Z0xlZ2VuZHMiOwppbXBvcnQgbGFuZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2NhbGUvbGFuZy9lbiI7CmltcG9ydCBsb2NhbGUgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlIjsKaW1wb3J0IGZsYXRtYXBNYXJrZXIgZnJvbSAiLi4vaWNvbnMvZmxhdG1hcC1tYXJrZXIiOwppbXBvcnQgeyBGbGF0bWFwUXVlcmllcyB9IGZyb20gIi4uL3NlcnZpY2VzL2ZsYXRtYXBRdWVyaWVzLmpzIjsKbG9jYWxlLnVzZShsYW5nKTsKVnVlLnVzZShfQ29sKTsKVnVlLnVzZShfTG9hZGluZy5kaXJlY3RpdmUpOwpWdWUudXNlKF9SYWRpbyk7ClZ1ZS51c2UoX1JhZGlvR3JvdXApOwpWdWUudXNlKF9Sb3cpOwp2YXIgUmVzaXplU2Vuc29yID0gcmVxdWlyZSgiY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yIik7CnZhciBjcmVhdGVVbmZpbGxlZFRvb2x0aXBEYXRhID0gZnVuY3Rpb24gY3JlYXRlVW5maWxsZWRUb29sdGlwRGF0YSgpIHsKICByZXR1cm4gewogICAgZGVzdGluYXRpb25zOiBbXSwKICAgIG9yaWdpbnM6IFtdLAogICAgY29tcG9uZW50czogW10sCiAgICBkZXN0aW5hdGlvbnNXaXRoRGF0YXNldHM6IFtdLAogICAgb3JpZ2luc1dpdGhEYXRhc2V0czogW10sCiAgICBjb21wb25lbnRzV2l0aERhdGFzZXRzOiBbXSwKICAgIHJlc291cmNlOiB1bmRlZmluZWQKICB9Owp9OwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkZsYXRtYXBWdWVyIiwKICBjb21wb25lbnRzOiB7CiAgICBNYXBTdmdJY29uOiBNYXBTdmdJY29uLAogICAgTWFwU3ZnU3ByaXRlQ29sb3I6IE1hcFN2Z1Nwcml0ZUNvbG9yLAogICAgVG9vbHRpcDogVG9vbHRpcCwKICAgIFNlbGVjdGlvbnNHcm91cDogU2VsZWN0aW9uc0dyb3VwLAogICAgU3ZnTGVnZW5kczogU3ZnTGVnZW5kcwogIH0sCiAgYmVmb3JlQ3JlYXRlOiBmdW5jdGlvbiBiZWZvcmVDcmVhdGUoKSB7CiAgICB0aGlzLm1hcE1hbmFnZXIgPSB1bmRlZmluZWQ7CiAgICB0aGlzLm1hcEltcCA9IHVuZGVmaW5lZDsKICAgIC8vVGhlIHN0YXRlIHdhdGNoZXIgbWF5IHRyaWdnZXJlZCBiZWZvcmUKICAgIC8vY3JlYXRlZCBjYXVzaW5nIGlzc3VlLCBUaGlzIGZsYWcgd2lsbAogICAgLy9yZXNvbHZlIHRoaXMgaXNzdWUuCiAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsKICB9LAogIG1ldGhvZHM6IHsKICAgIHZpZXdMYXRlc3RNYXA6IGZ1bmN0aW9uIHZpZXdMYXRlc3RNYXAoKSB7CiAgICAgIHZhciBiaW9sb2dpY2FsU2V4ID0gdGhpcy5iaW9sb2dpY2FsU2V4ID8gdGhpcy5iaW9sb2dpY2FsU2V4IDogdW5kZWZpbmVkOwogICAgICAvL0h1bWFuIHJlcXVpcmVzIHNwZWNpYWwgaGFuZGxpbmcKICAgICAgaWYgKHRoaXMuZW50cnkgPT09ICJOQ0JJVGF4b246OTYwNiIpIHsKICAgICAgICBiaW9sb2dpY2FsU2V4ID0gIlBBVE86MDAwMDM4NCI7CiAgICAgIH0KICAgICAgdmFyIHN0YXRlID0gewogICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LAogICAgICAgIGJpb2xvZ2ljYWxTZXg6IGJpb2xvZ2ljYWxTZXgsCiAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkKICAgICAgfTsKICAgICAgdGhpcy4kZW1pdCgidmlldy1sYXRlc3QtbWFwIiwgc3RhdGUpOwogICAgfSwKICAgIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24gYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrKGNvbG91cikgewogICAgICB0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kID0gY29sb3VyOwogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5zZXRCYWNrZ3JvdW5kQ29sb3VyKHRoaXMuY3VycmVudEJhY2tncm91bmQsIDEpOwogICAgICB9CiAgICB9LAogICAgdG9nZ2xlRHJhd2VyOiBmdW5jdGlvbiB0b2dnbGVEcmF3ZXIoKSB7CiAgICAgIHRoaXMuZHJhd2VyT3BlbiA9ICF0aGlzLmRyYXdlck9wZW47CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgY29sb3VyL2dyZXlzY2FsZSBvZiBvcmdhbnMuCiAgICAgKi8KICAgIHNldENvbG91cjogZnVuY3Rpb24gc2V0Q29sb3VyKGZsYWcpIHsKICAgICAgdGhpcy5jb2xvdXJSYWRpbyA9IGZsYWc7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7CiAgICAgICAgICBjb2xvdXI6IGZsYWcsCiAgICAgICAgICBvdXRsaW5lOiB0aGlzLm91dGxpbmVzUmFkaW8KICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIG91dGxpbmVzIGYgb3JnYW5zLgogICAgICovCiAgICBzZXRPdXRsaW5lczogZnVuY3Rpb24gc2V0T3V0bGluZXMoZmxhZykgewogICAgICB0aGlzLm91dGxpbmVSYWRpbyA9IGZsYWc7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7CiAgICAgICAgICBjb2xvdXI6IHRoaXMuY29sb3VyUmFkaW8sCiAgICAgICAgICBvdXRsaW5lOiBmbGFnCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHRvZ2dsZSBwYXRocyB0byBkZWZhdWx0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgcmVzZXRWaWV3OiBmdW5jdGlvbiByZXNldFZpZXcoKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnJlc2V0TWFwKCk7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMubGF5ZXJzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLmxheWVyc1NlbGVjdGlvbi5yZXNldCgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy4kcmVmcy5zeXN0ZW1zU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIGluLgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbiB6b29tSW4oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnpvb21JbigpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIG91dC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKi8KICAgIHpvb21PdXQ6IGZ1bmN0aW9uIHpvb21PdXQoKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnpvb21PdXQoKTsKICAgICAgfQogICAgfSwKICAgIGNlbnRyZUxpbmVzU2VsZWN0ZWQ6IGZ1bmN0aW9uIGNlbnRyZUxpbmVzU2VsZWN0ZWQocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVDZW50cmVsaW5lcyhwYXlsb2FkLnZhbHVlKTsKICAgICAgfQogICAgfSwKICAgIHNja2FuU2VsZWN0ZWQ6IGZ1bmN0aW9uIHNja2FuU2VsZWN0ZWQocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTY2thblBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxTQ0tBTjogZnVuY3Rpb24gY2hlY2tBbGxTQ0tBTihwYXlsb2FkKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgIHJldHVybiBfdGhpcy5tYXBJbXAuZW5hYmxlU2NrYW5QYXRoKGtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBzeXN0ZW1TZWxlY3RlZDogZnVuY3Rpb24gc3lzdGVtU2VsZWN0ZWQocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0ocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxTeXN0ZW1zOiBmdW5jdGlvbiBjaGVja0FsbFN5c3RlbXMocGF5bG9hZCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgcmV0dXJuIF90aGlzMi5tYXBJbXAuZW5hYmxlU3lzdGVtKGtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBsYXllcnNTZWxlY3RlZDogZnVuY3Rpb24gbGF5ZXJzU2VsZWN0ZWQocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVMYXllcihwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjaGVja0FsbExheWVyczogZnVuY3Rpb24gY2hlY2tBbGxMYXllcnMocGF5bG9hZCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgcmV0dXJuIF90aGlzMy5tYXBJbXAuZW5hYmxlTGF5ZXIoa2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIHBhdGh3YXlzU2VsZWN0ZWQ6IGZ1bmN0aW9uIHBhdGh3YXlzU2VsZWN0ZWQocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVQYXRoKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgfQogICAgfSwKICAgIGNoZWNrQWxsUGF0aHdheXM6IGZ1bmN0aW9uIGNoZWNrQWxsUGF0aHdheXMocGF5bG9hZCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgcmV0dXJuIF90aGlzNC5tYXBJbXAuZW5hYmxlUGF0aChrZXksIHBheWxvYWQudmFsdWUpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgZW5hYmxlUGFuWm9vbUV2ZW50czogZnVuY3Rpb24gZW5hYmxlUGFuWm9vbUV2ZW50cyhmbGFnKSB7CiAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVBhblpvb21FdmVudHMoZmxhZyk7CiAgICB9LAogICAgZXZlbnRDYWxsYmFjazogZnVuY3Rpb24gZXZlbnRDYWxsYmFjaygpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBmdW5jdGlvbiAoZXZlbnRUeXBlLCBkYXRhKSB7CiAgICAgICAgaWYgKGV2ZW50VHlwZSAhPT0gInBhbi16b29tIikgewogICAgICAgICAgdmFyIGxhYmVsID0gZGF0YS5sYWJlbDsKICAgICAgICAgIHZhciByZXNvdXJjZSA9IFtkYXRhLm1vZGVsc107CiAgICAgICAgICB2YXIgdGF4b25vbXkgPSBfdGhpczUuZW50cnk7CiAgICAgICAgICB2YXIgYmlvbG9naWNhbFNleCA9IF90aGlzNS5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDIgPyBfbGVuIC0gMiA6IDApLCBfa2V5ID0gMjsgX2tleSA8IF9sZW47IF9rZXkrKykgewogICAgICAgICAgICBhcmdzW19rZXkgLSAyXSA9IGFyZ3VtZW50c1tfa2V5XTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBwYXlsb2FkID0gewogICAgICAgICAgICBkYXRhc2V0OiBkYXRhLmRhdGFzZXQsCiAgICAgICAgICAgIGJpb2xvZ2ljYWxTZXg6IGJpb2xvZ2ljYWxTZXgsCiAgICAgICAgICAgIHRheG9ub215OiB0YXhvbm9teSwKICAgICAgICAgICAgcmVzb3VyY2U6IHJlc291cmNlLAogICAgICAgICAgICBsYWJlbDogbGFiZWwsCiAgICAgICAgICAgIGZlYXR1cmU6IGRhdGEsCiAgICAgICAgICAgIHVzZXJEYXRhOiBhcmdzLAogICAgICAgICAgICBldmVudFR5cGU6IGV2ZW50VHlwZQogICAgICAgICAgfTsKICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEudHlwZSAhPT0gIm1hcmtlciIgJiYgZXZlbnRUeXBlID09PSAiY2xpY2siKSB7CiAgICAgICAgICAgIF90aGlzNS5jaGVja0FuZENyZWF0ZVBvcHVwcyhwYXlsb2FkKTsKICAgICAgICAgIH0KICAgICAgICAgIF90aGlzNS4kZW1pdCgicmVzb3VyY2Utc2VsZWN0ZWQiLCBwYXlsb2FkKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM1LiRlbWl0KCJwYW4tem9vbS1jYWxsYmFjayIsIGRhdGEpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0sCiAgICAvLyBjaGVja05ldXJvbkNsaWNrZWQgc2hvd3MgYSBuZXVyb24gcGF0aCBwb3AgdXAgaWYgYSBwYXRoIHdhcyByZWNlbnRseSBjbGlja2VkCiAgICBjaGVja0FuZENyZWF0ZVBvcHVwczogZnVuY3Rpb24gKCkgewogICAgICB2YXIgX2NoZWNrQW5kQ3JlYXRlUG9wdXBzID0gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKGRhdGEpIHsKICAgICAgICB2YXIgcmVzdWx0czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mbGF0bWFwUXVlcmllcy5yZXRyaWV2ZUZsYXRtYXBLbm93bGVkZ2VGb3JFdmVudChkYXRhKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIHJlc3VsdHMgPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIC8vIFRoZSBsaW5lIGJlbG93IG9ubHkgY3JlYXRlcyB0aGUgdG9vbHRpcCBpZiBzb21lIGRhdGEgd2FzIGZvdW5kIG9uIHRoZSBwYXRoIAogICAgICAgICAgICAgIC8vIHJlc3VsdCAwIGlzIHRoZSBjb25uZWN0aW9uLCByZXN1bHQgMSBpcyB0aGUgcHVibWVkIHJlc3VsdHMgZnJvbSBmbGF0bWFwCiAgICAgICAgICAgICAgaWYgKHJlc3VsdHNbMF0gfHwgcmVzdWx0c1sxXSB8fCBkYXRhLmZlYXR1cmUuaHlwZXJsaW5rcyAmJiBkYXRhLmZlYXR1cmUuaHlwZXJsaW5rcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICB0aGlzLnJlc291cmNlRm9yVG9vbHRpcCA9IGRhdGEucmVzb3VyY2VbMF07CiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVRvb2x0aXBGcm9tTmV1cm9uQ3VyYXRpb24oZGF0YSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCB0aGlzKTsKICAgICAgfSkpOwogICAgICBmdW5jdGlvbiBjaGVja0FuZENyZWF0ZVBvcHVwcyhfeCkgewogICAgICAgIHJldHVybiBfY2hlY2tBbmRDcmVhdGVQb3B1cHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfQogICAgICByZXR1cm4gY2hlY2tBbmRDcmVhdGVQb3B1cHM7CiAgICB9KCksCiAgICBwb3BVcENzc0hhY2tzOiBmdW5jdGlvbiBwb3BVcENzc0hhY2tzKCkgewogICAgICAvLyBCZWxvdyBpcyBhIGhhY2sgdG8gcmVtb3ZlIGZsYXRtYXAgdG9vbHRpcHMgd2hpbGUgcG9wdXAgaXMgb3BlbgogICAgICB2YXIgZnRvb2x0aXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmxhdG1hcC10b29sdGlwLXBvcHVwIik7CiAgICAgIGlmIChmdG9vbHRpcCkgZnRvb2x0aXAuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgIHRoaXMuJHJlZnMudG9vbHRpcC4kZWwuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIikub25jbGljayA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmxhdG1hcC10b29sdGlwLXBvcHVwIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgIH07CiAgICB9LAogICAgcmVzb3VyY2VTZWxlY3RlZDogZnVuY3Rpb24gcmVzb3VyY2VTZWxlY3RlZChhY3Rpb24pIHsKICAgICAgdGhpcy4kZW1pdCgicmVzb3VyY2Utc2VsZWN0ZWQiLCBhY3Rpb24pOwogICAgfSwKICAgIGNyZWF0ZVRvb2x0aXBGcm9tTmV1cm9uQ3VyYXRpb246IGZ1bmN0aW9uIGNyZWF0ZVRvb2x0aXBGcm9tTmV1cm9uQ3VyYXRpb24oZGF0YSkgewogICAgICB0aGlzLnRvb2x0aXBFbnRyeSA9IHRoaXMuZmxhdG1hcFF1ZXJpZXMuY3JlYXRlVG9vbHRpcERhdGEoZGF0YSk7CiAgICAgIHRoaXMuZGlzcGxheVRvb2x0aXAoKTsKICAgIH0sCiAgICAvLyBLZWVwaW5nIHRoaXMgYXMgYW4gQVBJCiAgICBzaG93UG9wdXA6IGZ1bmN0aW9uIHNob3dQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpIHsKICAgICAgdmFyIG15T3B0aW9ucyA9IG9wdGlvbnM7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGlmIChteU9wdGlvbnMpIHsKICAgICAgICAgIGlmICghbXlPcHRpb25zLmNsYXNzTmFtZSkgbXlPcHRpb25zLmNsYXNzTmFtZSA9ICJjdXN0b20tcG9wdXAiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBteU9wdGlvbnMgPSB7CiAgICAgICAgICAgIGNsYXNzTmFtZTogImN1c3RvbS1wb3B1cCIsCiAgICAgICAgICAgIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IHRydWUKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG15T3B0aW9ucyk7CiAgICAgIH0KICAgIH0sCiAgICBzaG93TWFya2VyUG9wdXA6IGZ1bmN0aW9uIHNob3dNYXJrZXJQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd01hcmtlclBvcHVwKGZlYXR1cmVJZCwgbm9kZSwgb3B0aW9ucyk7CiAgICAgIH0KICAgIH0sCiAgICBjbG9zZU1pbmltYXA6IGZ1bmN0aW9uIGNsb3NlTWluaW1hcCgpIHsKICAgICAgdmFyIG1pbmltYXBFbCA9IHRoaXMuJHJlZnMuZmxhdG1hcENvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcubWFwbGlicmVnbC1jdHJsLW1pbmltYXAnKTsgLy8gZmluZCBtaW5pbWFwCiAgICAgIGlmICh0aGlzLm1pbmltYXBTbWFsbCkgewogICAgICAgIC8vc3dpdGNoIHRoZSBjbGFzc2VzIG9uIHRoZSBtaW5pbWFwCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ2VubGFyZ2UnKTsKICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LnJlbW92ZSgnc2hyaW5rJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ3NocmluaycpOwogICAgICAgIG1pbmltYXBFbC5jbGFzc0xpc3QucmVtb3ZlKCdlbmxhcmdlJyk7CiAgICAgIH0KICAgICAgdGhpcy5taW5pbWFwU21hbGwgPSAhdGhpcy5taW5pbWFwU21hbGw7CiAgICB9LAogICAgYWRkUmVzaXplQnV0dG9uVG9NaW5pbWFwOiBmdW5jdGlvbiBhZGRSZXNpemVCdXR0b25Ub01pbmltYXAoKSB7CiAgICAgIHZhciBtaW5pbWFwRWwgPSB0aGlzLiRyZWZzLmZsYXRtYXBDb250YWluZXIucXVlcnlTZWxlY3RvcignLm1hcGxpYnJlZ2wtY3RybC1taW5pbWFwJyk7CiAgICAgIGlmIChtaW5pbWFwRWwpIHsKICAgICAgICB0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOwogICAgICAgIG1pbmltYXBFbC5hcHBlbmRDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOwogICAgICAgIHRoaXMubWluaW1hcFJlc2l6ZVNob3cgPSB0cnVlOwogICAgICB9CiAgICB9LAogICAgc2V0SGVscE1vZGU6IGZ1bmN0aW9uIHNldEhlbHBNb2RlKGhlbHBNb2RlKSB7CiAgICAgIGlmIChoZWxwTW9kZSkgewogICAgICAgIHRoaXMuaW5IZWxwID0gdHJ1ZTsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGl0ZW0udmFsdWUgPSB0cnVlOwogICAgICAgIH0pOwogICAgICAgIHRoaXMub3BlbkZsYXRtYXBIZWxwUG9wdXAoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaXRlbS52YWx1ZSA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuY2xvc2VGbGF0bWFwSGVscFBvcHVwKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaG93VG9vbGl0aXA6IGZ1bmN0aW9uIHNob3dUb29saXRpcCh0b29sdGlwTnVtYmVyKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOwogICAgICAgIHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0gPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzNi5ob3ZlclZpc2liaWxpdGllc1t0b29sdGlwTnVtYmVyXS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIGhpZGVUb29saXRpcDogZnVuY3Rpb24gaGlkZVRvb2xpdGlwKHRvb2x0aXBOdW1iZXIpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSk7CiAgICAgICAgdGhpcy50b29sdGlwV2FpdFt0b29sdGlwTnVtYmVyXSA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXM3LmhvdmVyVmlzaWJpbGl0aWVzW3Rvb2x0aXBOdW1iZXJdLnZhbHVlID0gZmFsc2U7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIGRpc3BsYXlUb29sdGlwOiBmdW5jdGlvbiBkaXNwbGF5VG9vbHRpcCgpIHsKICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKHRoaXMubWFwSW1wLm1vZGVsRmVhdHVyZUlkcyh0aGlzLnJlc291cmNlRm9yVG9vbHRpcClbMF0sIHRoaXMuJHJlZnMudG9vbHRpcC4kZWwsIHsKICAgICAgICBjbGFzc05hbWU6ICJmbGF0bWFwdnVlci1wb3BvdmVyIiwKICAgICAgICBwb3NpdGlvbkF0TGFzdENsaWNrOiB0cnVlCiAgICAgIH0pOwogICAgICB0aGlzLnBvcFVwQ3NzSGFja3MoKTsKICAgIH0sCiAgICBvcGVuRmxhdG1hcEhlbHBQb3B1cDogZnVuY3Rpb24gb3BlbkZsYXRtYXBIZWxwUG9wdXAoKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHZhciBoZWFydElkID0gdGhpcy5tYXBJbXAuZmVhdHVyZUlkc0Zvck1vZGVsKCJVQkVST046MDAwMDk0OCIpWzBdOwogICAgICAgIHZhciBlbG0gPSAiQ2xpY2sgZm9yIG1vcmUgaW5mb3JtYXRpb24iOwogICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cChoZWFydElkLCBlbG0sIHsKICAgICAgICAgIGFuY2hvcjogInRvcCIsCiAgICAgICAgICBjbGFzc05hbWU6ICJmbGF0bWFwLXBvcHVwLXBvcHBlciIKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGNsb3NlRmxhdG1hcEhlbHBQb3B1cDogZnVuY3Rpb24gY2xvc2VGbGF0bWFwSGVscFBvcHVwKCkgewogICAgICB0aGlzLiRlbC5xdWVyeVNlbGVjdG9yQWxsKCIubWFwbGlicmVnbC1wb3B1cC1jbG9zZS1idXR0b24iKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgaXRlbS5jbGljaygpOwogICAgICB9KTsKICAgIH0sCiAgICBnZXRMYWJlbHM6IGZ1bmN0aW9uIGdldExhYmVscygpIHsKICAgICAgdmFyIGxhYmVscyA9IFtdOwogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB2YXIgYW5ub3RhdGlvbnMgPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uczsKICAgICAgICB2YXIgX2l0ZXJhdG9yID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIoYW5ub3RhdGlvbnMudmFsdWVzKCkpLAogICAgICAgICAgX3N0ZXA7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGZvciAoX2l0ZXJhdG9yLnMoKTsgIShfc3RlcCA9IF9pdGVyYXRvci5uKCkpLmRvbmU7KSB7CiAgICAgICAgICAgIHZhciB2YWx1ZSA9IF9zdGVwLnZhbHVlOwogICAgICAgICAgICBpZiAodmFsdWUubGFiZWwpIGxhYmVscy5wdXNoKHZhbHVlLmxhYmVsKTsKICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgIF9pdGVyYXRvci5lKGVycik7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIF9pdGVyYXRvci5mKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQobGFiZWxzKSk7CiAgICAgIH0KICAgIH0sCiAgICBnZXRTdGF0ZTogZnVuY3Rpb24gZ2V0U3RhdGUoKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHZhciBzdGF0ZSA9IHsKICAgICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LAogICAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkKICAgICAgICB9OwogICAgICAgIHZhciBpZGVudGlmaWVyID0gdGhpcy5tYXBJbXAuZ2V0SWRlbnRpZmllcigpOwogICAgICAgIGlmICh0aGlzLmJpb2xvZ2ljYWxTZXgpIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSB0aGlzLmJpb2xvZ2ljYWxTZXg7ZWxzZSBpZiAoaWRlbnRpZmllciAmJiBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXgpIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXg7CiAgICAgICAgaWYgKGlkZW50aWZpZXIgJiYgaWRlbnRpZmllci51dWlkKSBzdGF0ZVsndXVpZCddID0gaWRlbnRpZmllci51dWlkOwogICAgICAgIHJldHVybiBzdGF0ZTsKICAgICAgfQogICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgfSwKICAgIHNldFN0YXRlOiBmdW5jdGlvbiBzZXRTdGF0ZShzdGF0ZSkgewogICAgICBpZiAoc3RhdGUpIHsKICAgICAgICBpZiAodGhpcy5tYXBJbXAgJiYgc3RhdGUuZW50cnkgJiYgdGhpcy5lbnRyeSA9PSBzdGF0ZS5lbnRyeSAmJiAoIXN0YXRlLmJpb2xvZ2ljYWxTZXggfHwgc3RhdGUuYmlvbG9naWNhbFNleCA9PT0gdGhpcy5iaW9sb2dpY2FsU2V4KSkgewogICAgICAgICAgaWYgKHN0YXRlLnZpZXdwb3J0KSB7CiAgICAgICAgICAgIHRoaXMubWFwSW1wLnNldFN0YXRlKHN0YXRlLnZpZXdwb3J0KTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jcmVhdGVGbGF0bWFwKHN0YXRlKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5zZXRTdGF0ZVJlcXVpcmVkID0gZmFsc2U7CiAgICAgIH0KICAgIH0sCiAgICByZXN0b3JlTWFwU3RhdGU6IGZ1bmN0aW9uIHJlc3RvcmVNYXBTdGF0ZShzdGF0ZSkgewogICAgICBpZiAoc3RhdGUpIHsKICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHRoaXMubWFwSW1wLnNldFN0YXRlKHN0YXRlLnZpZXdwb3J0KTsKICAgICAgICBpZiAoc3RhdGUuc2VhcmNoVGVybSkgdGhpcy5zZWFyY2hBbmRTaG93UmVzdWx0KHN0YXRlLnNlYXJjaFRlcm0sIHRydWUpOwogICAgICB9CiAgICB9LAogICAgY3JlYXRlRmxhdG1hcDogZnVuY3Rpb24gY3JlYXRlRmxhdG1hcChzdGF0ZSkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgaWYgKCF0aGlzLm1hcEltcCAmJiAhdGhpcy5sb2FkaW5nKSB7CiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICB2YXIgbWluaW1hcCA9IGZhbHNlOwogICAgICAgIGlmICh0aGlzLmRpc3BsYXlNaW5pbWFwKSB7CiAgICAgICAgICBtaW5pbWFwID0gewogICAgICAgICAgICBwb3NpdGlvbjogInRvcC1yaWdodCIKICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAvL0FzIGZvciBmbGF0bWFwLXZpZXdlckAyLjIuNywgc2VlIGJlbG93IGZvciB0aGUgZG9jdW1lbnRhdGlvbiAKICAgICAgICAvL2ZvciB0aGUgaWRlbnRpZmllcjoKCiAgICAgICAgLy9AYXJnIGlkZW50aWZpZXIge3N0cmluZ3xPYmplY3R9CiAgICAgICAgLy8gQSBzdHJpbmcgb3Igb2JqZWN0IGlkZW50aWZ5aW5nIHRoZSBtYXAgdG8gbG9hZC4gSWYgYSBzdHJpbmcgaXRzCiAgICAgICAgLy8gdmFsdWUgY2FuIGJlIGVpdGhlciB0aGUgbWFwJ3MgYGB1dWlkYGAsIGFzc2lnbmVkIGF0IGdlbmVyYXRpb24gdGltZSwKICAgICAgICAvLyBvciB0YXhvbiBhbmQgYmlvbG9naWNhbCBzZXggaWRlbnRpZmllcnMgb2YgdGhlIHNwZWNpZXMgdGhhdCB0aGUgbWFwCiAgICAgICAgLy8gcmVwcmVzZW50cy4gVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGEgbWFwIGlzIGxvYWRlZCB1bmxlc3MgaXQgaGFzIGJlZW4KICAgICAgICAvLyBpZGVudGlmaWVkIHVzaW5nIGEgYGB1dWlkYGAgKHNlZSBiZWxvdykuCiAgICAgICAgLy8gQGFyZyBpZGVudGlmaWVyLnRheG9uIHtzdHJpbmd9IFRoZSB0YXhvbiBpZGVudGlmaWVyIG9mIHRoZSBzcGVjaWVzIAogICAgICAgIC8vICByZXByZXNlbnRlZCBieSB0aGUgbWFwLiBUaGlzIGlzIHNwZWNpZmllZCBhcyBtZXRhZGF0YSBpbiB0aGUgbWFwJ3Mgc291cmNlIGZpbGUuCiAgICAgICAgLy8gQGFyZyBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXgge3N0cmluZ30gVGhlIGJpb2xvZ2ljYWwgc2V4IG9mIHRoZSBzcGVjaWVzCiAgICAgICAgLy8gcmVwcmVzZW50ZWQgYnkgdGhlIG1hcC4gVGhpcyBpcyBzcGVjaWZpZWQgYXMgbWV0YWRhdGFpbiB0aGUgbWFwJ3Mgc291cmNlIGZpbGUuCiAgICAgICAgLy8gQGFyZyBpZGVudGlmaWVyLnV1aWQge3N0cmluZ30gVGhlIHVuaXF1ZSB1dWlkIHRoZSBmbGF0bWFwLiBJZiBnaXZlbiB0aGVuIHRoaXMgZXhhY3QgbWFwIHdpbGwKICAgICAgICAvLyAgYmUgbG9hZGVkLCBvdmVycmlkaW5nIGBgdGF4b25gYCBhbmQgYGBiaW9sb2dpY2FsU2V4YGAuCgogICAgICAgIHZhciBpZGVudGlmaWVyID0gewogICAgICAgICAgdGF4b246IHRoaXMuZW50cnkKICAgICAgICB9OwogICAgICAgIC8vVGhpcyBub3cgaGFuZGxlIHRoZSB1c2VzIG9mIHV1aWQgd2hlbiByZXN1bWluZyBzdGF0ZXMKICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgIGlmIChzdGF0ZS51dWlkKSB7CiAgICAgICAgICAgIGlkZW50aWZpZXIgPSB7CiAgICAgICAgICAgICAgdXVpZDogc3RhdGUudXVpZAogICAgICAgICAgICB9OwogICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5lbnRyeSkgewogICAgICAgICAgICBpZGVudGlmaWVyLnRheG9uID0gc3RhdGUuZW50cnk7CiAgICAgICAgICAgIGlmIChzdGF0ZS5iaW9sb2dpY2FsU2V4KSB7CiAgICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0gc3RhdGUuYmlvbG9naWNhbFNleDsKICAgICAgICAgICAgfSBlbHNlIGlmIChpZGVudGlmaWVyLnRheG9uID09PSAiTkNCSVRheG9uOjk2MDYiKSB7CiAgICAgICAgICAgICAgLy9Gb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgICAgICAgIGlkZW50aWZpZXJbImJpb2xvZ2ljYWxTZXgiXSA9ICJQQVRPOjAwMDAzODQiOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIFNldCB0aGUgYmlvbG9pY2FsU2V4IG5vdyBpZiBtYXAgaXMgbm90IHJlc3VtZWQgZnJvbQogICAgICAgICAgLy8gYSBzYXZlZCBzdGF0ZQogICAgICAgICAgaWYgKHRoaXMuYmlvbG9naWNhbFNleCkgewogICAgICAgICAgICBpZGVudGlmaWVyWyJiaW9sb2dpY2FsU2V4Il0gPSB0aGlzLmJpb2xvZ2ljYWxTZXg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHZhciBwcm9taXNlMSA9IHRoaXMubWFwTWFuYWdlci5sb2FkTWFwKGlkZW50aWZpZXIsIHRoaXMuJHJlZnMuZGlzcGxheSwgdGhpcy5ldmVudENhbGxiYWNrKCksIHsKICAgICAgICAgIC8vZnVsbHNjcmVlbkNvbnRyb2w6IGZhbHNlLAogICAgICAgICAgLy9hbm5vdGF0YWJsZTogZmFsc2UsCiAgICAgICAgICAvL2RlYnVnOiB0cnVlLAogICAgICAgICAgZmVhdHVyZUluZm86IHRoaXMuZmVhdHVyZUluZm8sCiAgICAgICAgICAibWluLXpvb20iOiB0aGlzLm1pblpvb20sCiAgICAgICAgICBsYXllckNvbnRyb2w6IHRydWUsCiAgICAgICAgICBwYXRoQ29udHJvbHM6IHRydWUsCiAgICAgICAgICBzZWFyY2hhYmxlOiB0aGlzLnNlYXJjaGFibGUsCiAgICAgICAgICB0b29sdGlwczogdGhpcy50b29sdGlwcywKICAgICAgICAgIG1pbmltYXA6IG1pbmltYXAKICAgICAgICB9KTsKICAgICAgICBwcm9taXNlMS50aGVuKGZ1bmN0aW9uIChyZXR1cm5lZE9iamVjdCkgewogICAgICAgICAgX3RoaXM4Lm1hcEltcCA9IHJldHVybmVkT2JqZWN0OwogICAgICAgICAgX3RoaXM4Lm9uRmxhdG1hcFJlYWR5KCk7CiAgICAgICAgICBpZiAoX3RoaXM4Ll9zdGF0ZVRvQmVTZXQpIF90aGlzOC5yZXN0b3JlTWFwU3RhdGUoX3RoaXM4Ll9zdGF0ZVRvQmVTZXQpO2Vsc2UgewogICAgICAgICAgICBfdGhpczgucmVzdG9yZU1hcFN0YXRlKHN0YXRlKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmIChzdGF0ZSkgewogICAgICAgIHRoaXMuX3N0YXRlVG9CZVNldCA9IHsKICAgICAgICAgIHZpZXdwb3J0OiBzdGF0ZS52aWV3cG9ydCwKICAgICAgICAgIHNlYXJjaFRlcm06IHN0YXRlLnNlYXJjaFRlcm0KICAgICAgICB9OwogICAgICAgIGlmICh0aGlzLm1hcEltcCAmJiAhdGhpcy5sb2FkaW5nKSB0aGlzLnJlc3RvcmVNYXBTdGF0ZSh0aGlzLl9zdGF0ZVRvQmVTZXQpOwogICAgICB9CiAgICB9LAogICAgY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQ6IGZ1bmN0aW9uIGNvbXB1dGVQYXRoQ29udHJvbHNNYXhpbXVtSGVpZ2h0KCkgewogICAgICB2YXIgZWxlbSA9IHRoaXMuJHJlZnMuZGlzcGxheTsKICAgICAgaWYgKGVsZW0pIHsKICAgICAgICB2YXIgY29tcHV0ZWQgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW0pOwogICAgICAgIHZhciBwYWRkaW5nID0gcGFyc2VJbnQoY29tcHV0ZWQucGFkZGluZ1RvcCkgKyBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nQm90dG9tKTsKICAgICAgICB2YXIgaGVpZ2h0ID0gZWxlbS5jbGllbnRIZWlnaHQgLSBwYWRkaW5nOwogICAgICAgIHRoaXMucGF0aHdheXNNYXhIZWlnaHQgPSBoZWlnaHQgLSAxNzA7CiAgICAgIH0KICAgIH0sCiAgICBtYXBSZXNpemU6IGZ1bmN0aW9uIG1hcFJlc2l6ZSgpIHsKICAgICAgdHJ5IHsKICAgICAgICB0aGlzLmNvbXB1dGVQYXRoQ29udHJvbHNNYXhpbXVtSGVpZ2h0KCk7CiAgICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgICB0aGlzLm1hcEltcC5yZXNpemUoKTsKICAgICAgICAgIHRoaXMuc2hvd01pbmltYXAodGhpcy5kaXNwbGF5TWluaW1hcCk7CiAgICAgICAgICBpZiAodGhpcy5tYXBJbXAuX21pbmltYXApIHsKICAgICAgICAgICAgdGhpcy5tYXBJbXAuX21pbmltYXAucmVzaXplKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGNhdGNoIChfdW51c2VkKSB7CiAgICAgICAgY29uc29sZS5lcnJvcigiTWFwIHJlc2l6ZSBlcnJvciIpOwogICAgICB9CiAgICB9LAogICAgb25GbGF0bWFwUmVhZHk6IGZ1bmN0aW9uIG9uRmxhdG1hcFJlYWR5KCkgewogICAgICAvLyBvbkZsYXRtYXBSZWFkeSBpcyB1c2VkIGZvciBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIHJ1biBpbW1lZGlhdGVseSBhZnRlciB0aGUgZmxhdG1hcCBpcyBsb2FkZWQKICAgICAgdGhpcy5zZW5zb3IgPSBuZXcgUmVzaXplU2Vuc29yKHRoaXMuJHJlZnMuZGlzcGxheSwgdGhpcy5tYXBSZXNpemUpOwogICAgICBpZiAodGhpcy5tYXBJbXAub3B0aW9ucyAmJiB0aGlzLm1hcEltcC5vcHRpb25zLnN0eWxlID09PSAiZnVuY3Rpb25hbCIpIHsKICAgICAgICB0aGlzLmlzRkMgPSB0cnVlOwogICAgICB9CiAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRPcGFjaXR5KDEpOwogICAgICB0aGlzLmJhY2tncm91bmRDaGFuZ2VDYWxsYmFjayh0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kKTsKICAgICAgdGhpcy5wYXRod2F5cyA9IHRoaXMubWFwSW1wLnBhdGhUeXBlcygpOwogICAgICB0aGlzLm1hcEltcC5lbmFibGVDZW50cmVsaW5lcyhmYWxzZSk7CiAgICAgIC8vRGlzYWJsZSBsYXllcnMgZm9yIG5vdwogICAgICAvL3RoaXMubGF5ZXJzID0gdGhpcy5tYXBJbXAuZ2V0TGF5ZXJzKCk7CiAgICAgIHRoaXMuc3lzdGVtcyA9IHRoaXMubWFwSW1wLmdldFN5c3RlbXMoKTsKICAgICAgdGhpcy5hZGRSZXNpemVCdXR0b25Ub01pbmltYXAoKTsKICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKTsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gdHJ1ZTsKICAgICAgdGhpcy5tYXBSZXNpemUoKTsKICAgICAgdGhpcy4kZW1pdCgicmVhZHkiLCB0aGlzKTsKICAgIH0sCiAgICBzaG93TWluaW1hcDogZnVuY3Rpb24gc2hvd01pbmltYXAoZmxhZykgewogICAgICBpZiAodGhpcy5tYXBJbXApIHRoaXMubWFwSW1wLnNob3dNaW5pbWFwKGZsYWcpOwogICAgfSwKICAgIHNob3dQYXRod2F5c0RyYXdlcjogZnVuY3Rpb24gc2hvd1BhdGh3YXlzRHJhd2VyKGZsYWcpIHsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gZmxhZzsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIGRpc3BsYXkgZmVhdHVyZXMgd2l0aCBhbm5vdGF0aW9uIG1hdGNoaW5nIHRoZSBwcm92aWRlZCB0ZXJtLAogICAgICogd2l0aCB0aGUgb3B0aW9uIHRvIGRpc3BsYXkgdGhlIGxhYmVsIHVzaW5nIGRpc3BsYXlMYWJlbCBmbGFnLiAKICAgICAqLwogICAgc2VhcmNoQW5kU2hvd1Jlc3VsdDogZnVuY3Rpb24gc2VhcmNoQW5kU2hvd1Jlc3VsdCh0ZXJtLCBkaXNwbGF5TGFiZWwpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgaWYgKHRlcm0gPT09IHVuZGVmaW5lZCB8fCB0ZXJtID09PSAiIikgewogICAgICAgICAgdGhpcy5tYXBJbXAuY2xlYXJTZWFyY2hSZXN1bHRzKCk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIHNlYXJjaFJlc3VsdHMgPSB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7CiAgICAgICAgICBpZiAoc2VhcmNoUmVzdWx0cyAmJiBzZWFyY2hSZXN1bHRzLnJlc3VsdHMgJiYgc2VhcmNoUmVzdWx0cy5yZXN1bHRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1NlYXJjaFJlc3VsdHMoc2VhcmNoUmVzdWx0cyk7CiAgICAgICAgICAgIGlmIChkaXNwbGF5TGFiZWwgJiYgc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLmZlYXR1cmVJZCAmJiBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0udGV4dCkgewogICAgICAgICAgICAgIHZhciBhbm5vdGF0aW9uID0gdGhpcy5tYXBJbXAuYW5ub3RhdGlvbihzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0uZmVhdHVyZUlkKTsKICAgICAgICAgICAgICB0aGlzLm1hcEltcC5zaG93UG9wdXAoc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLmZlYXR1cmVJZCwgYW5ub3RhdGlvbi5sYWJlbCwgewogICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY3VzdG9tLXBvcHVwIiwKICAgICAgICAgICAgICAgIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IGZhbHNlLAogICAgICAgICAgICAgICAgcHJlc2VydmVTZWxlY3Rpb246IHRydWUKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSB0aGlzLm1hcEltcC5jbGVhclNlYXJjaFJlc3VsdHMoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogR2V0IHRoZSBsaXN0IG9mIHN1Z2dlc3RlZCB0ZXJtcwogICAgICovCiAgICBzZWFyY2hTdWdnZXN0aW9uczogZnVuY3Rpb24gc2VhcmNoU3VnZ2VzdGlvbnModGVybSkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHJldHVybiB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7CiAgICAgIHJldHVybiBbXTsKICAgIH0KICB9LAogIHByb3BzOiB7CiAgICBlbnRyeTogU3RyaW5nLAogICAgYmlvbG9naWNhbFNleDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiCiAgICB9LAogICAgZmVhdHVyZUluZm86IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBtaW5ab29tOiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogNAogICAgfSwKICAgIHBhdGhDb250cm9sczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIHNlYXJjaGFibGU6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBsYXllckNvbnRyb2w6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICB0b29sdGlwczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgaGVscE1vZGU6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICByZW5kZXJBdE1vdW50ZWQ6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIGRpc3BsYXlNaW5pbWFwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgZGlzcGxheVdhcm5pbmc6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBpc0xlZ2FjeTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIGRpc3BsYXlMYXRlc3RDaGFuZ2VzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbGF0ZXN0Q2hhbmdlc01lc3NhZ2U6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiU2VhcmNoIG5vdyBwcm92aWRlIHN1Z2dlc3RlZCB0ZXJtcy4gQWRkIG5ldyBsZWdlbmRzLiBOZXcgdGlsZXNldHMuIE5ldyBmZW1hbGUgbWFwLiBJbXByb3ZlIHVwc3RyZWFtIGRvd25zdHJlYW0gaW5mb3JtYXRpb24uIgogICAgfSwKICAgIC8qKgogICAgICogU3RhdGUgY29udGFpbmluZyBzdGF0ZSBvZiB0aGUgZmxhdG1hcC4KICAgICAqLwogICAgc3RhdGU6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiB1bmRlZmluZWQKICAgIH0sCiAgICAvKioKICAgICAqIFNwZWNpZnkgdGhlIGVuZHBvaW50IG9mIHRoZSBmbGF0bWFwIHNlcnZlci4KICAgICAqLwogICAgZmxhdG1hcEFQSTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJodHRwczovL21hcGNvcmUtZGVtby5vcmcvY3VycmVudC9mbGF0bWFwL3YzLyIKICAgIH0sCiAgICBzcGFyY0FQSTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJodHRwczovL2FwaS5zcGFyYy5zY2llbmNlLyIKICAgIH0KICB9LAogIHByb3ZpZGU6IGZ1bmN0aW9uIHByb3ZpZGUoKSB7CiAgICByZXR1cm4gewogICAgICBzcGFyY0FQSTogdGhpcy5zcGFyY0FQSSwKICAgICAgZmxhdG1hcEFQSTogdGhpcy5mbGF0bWFwQVBJCiAgICB9OwogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGxheWVyczogW10sCiAgICAgIHBhdGh3YXlzOiBbXSwKICAgICAgc2NrYW5EaXNwbGF5OiBbewogICAgICAgIGxhYmVsOiAiRGlzcGxheSBQYXRoIHdpdGggU0NLQU4iLAogICAgICAgIGtleTogIlZBTElEIgogICAgICB9XSwKICAgICAgY2VudHJlTGluZXM6IFt7CiAgICAgICAgbGFiZWw6ICJEaXNwbGF5IE5lcnZlcyIsCiAgICAgICAga2V5OiAiY2VudHJlbGluZXMiLAogICAgICAgIGVuYWJsZWQ6IGZhbHNlCiAgICAgIH1dLAogICAgICBzeXN0ZW1zOiBbXSwKICAgICAgcGF0aHdheXNNYXhIZWlnaHQ6IDEwMDAsCiAgICAgIGhvdmVyVmlzaWJpbGl0aWVzOiBbewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH1dLAogICAgICBpc0ZDOiBmYWxzZSwKICAgICAgaW5IZWxwOiBmYWxzZSwKICAgICAgY3VycmVudEJhY2tncm91bmQ6ICJ3aGl0ZSIsCiAgICAgIGF2YWlsYWJsZUJhY2tncm91bmQ6IFsid2hpdGUiLCAibGlnaHRza3libHVlIiwgImJsYWNrIl0sCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBmbGF0bWFwTWFya2VyOiBmbGF0bWFwTWFya2VyLAogICAgICB0b29sdGlwRW50cnk6IGNyZWF0ZVVuZmlsbGVkVG9vbHRpcERhdGEoKSwKICAgICAgY29ubmVjdGl2aXR5VG9vbHRpcFZpc2libGU6IGZhbHNlLAogICAgICByZXNvdXJjZUZvclRvb2x0aXA6IHVuZGVmaW5lZCwKICAgICAgZHJhd2VyT3BlbjogZmFsc2UsCiAgICAgIGNvbG91clJhZGlvOiB0cnVlLAogICAgICBvdXRsaW5lc1JhZGlvOiB0cnVlLAogICAgICBtaW5pbWFwUmVzaXplU2hvdzogZmFsc2UsCiAgICAgIG1pbmltYXBTbWFsbDogZmFsc2UKICAgIH07CiAgfSwKICB3YXRjaDogewogICAgZW50cnk6IGZ1bmN0aW9uIGVudHJ5KCkgewogICAgICBpZiAoIXRoaXMuc3RhdGUpIHRoaXMuY3JlYXRlRmxhdG1hcCgpOwogICAgfSwKICAgIGhlbHBNb2RlOiBmdW5jdGlvbiBoZWxwTW9kZSh2YWwpIHsKICAgICAgdGhpcy5zZXRIZWxwTW9kZSh2YWwpOwogICAgfSwKICAgIHN0YXRlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoc3RhdGUpIHsKICAgICAgICBpZiAodGhpcy5tYXBNYW5hZ2VyKSB7CiAgICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy90aGlzIGNvbXBvbmVudCBoYXMgbm90IGJlZW4gbW91bnRlZCB5ZXQKICAgICAgICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGRlZXA6IHRydWUKICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgZmxhdG1hcCA9IHJlcXVpcmUoIkBhYmktc29mdHdhcmUvZmxhdG1hcC12aWV3ZXIiKTsKICAgIHRoaXMudG9vbHRpcFdhaXQgPSBbXTsKICAgIHRoaXMudG9vbHRpcFdhaXQubGVuZ3RoID0gdGhpcy5ob3ZlclZpc2liaWxpdGllcy5sZW5ndGg7CiAgICB0aGlzLm1hcE1hbmFnZXIgPSBuZXcgZmxhdG1hcC5NYXBNYW5hZ2VyKHRoaXMuZmxhdG1hcEFQSSk7CiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzID0gbmV3IEZsYXRtYXBRdWVyaWVzKCk7CiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzLmluaXRpYWxpc2UodGhpcy5zcGFyY0FQSSwgdGhpcy5mbGF0bWFwQVBJKTsKICAgIGlmICh0aGlzLnN0YXRlKSB7CiAgICAgIC8vU3RhdGUgaXMgc2V0IGFuZCByZXF1aXJlIHRvIHNldCB0aGUgc3RhdGUKICAgICAgaWYgKHRoaXMuc2V0U3RhdGVSZXF1aXJlZCkgewogICAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5zdGF0ZSk7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodGhpcy5yZW5kZXJBdE1vdW50ZWQpIHsKICAgICAgdGhpcy5jcmVhdGVGbGF0bWFwKCk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["Vue","Tooltip","SelectionsGroup","MapSvgIcon","MapSvgSpriteColor","SvgLegends","lang","locale","flatmapMarker","FlatmapQueries","use","_Col","_Loading","directive","_Radio","_RadioGroup","_Row","ResizeSensor","require","createUnfilledTooltipData","destinations","origins","components","destinationsWithDatasets","originsWithDatasets","componentsWithDatasets","resource","undefined","name","beforeCreate","mapManager","mapImp","setStateRequired","methods","viewLatestMap","biologicalSex","entry","state","viewport","getState","$emit","backgroundChangeCallback","colour","currentBackground","setBackgroundColour","toggleDrawer","drawerOpen","setColour","flag","colourRadio","outline","outlinesRadio","setOutlines","outlineRadio","resetView","resetMap","$refs","centrelinesSelection","reset","skcanSelection","layersSelection","systemsSelection","pathwaysSelection","zoomIn","zoomOut","centreLinesSelected","payload","enableCentrelines","value","sckanSelected","enableSckanPath","key","checkAllSCKAN","_this","keys","forEach","systemSelected","enableSystem","checkAllSystems","_this2","layersSelected","enableLayer","checkAllLayers","_this3","pathwaysSelected","enablePath","checkAllPathways","_this4","enablePanZoomEvents","eventCallback","_this5","eventType","data","label","models","taxonomy","_len","arguments","length","args","Array","_key","dataset","feature","userData","type","checkAndCreatePopups","_checkAndCreatePopups","_asyncToGenerator","_regeneratorRuntime","mark","_callee","results","wrap","_callee$","_context","prev","next","flatmapQueries","retrieveFlatmapKnowledgeForEvent","sent","hyperlinks","resourceForTooltip","createTooltipFromNeuronCuration","stop","_x","apply","popUpCssHacks","ftooltip","document","querySelector","style","display","tooltip","$el","onclick","resourceSelected","action","tooltipEntry","createTooltipData","displayTooltip","showPopup","featureId","node","options","myOptions","className","positionAtLastClick","showMarkerPopup","closeMinimap","minimapEl","flatmapContainer","minimapSmall","classList","add","remove","addResizeButtonToMinimap","minimapResize","parentNode","removeChild","appendChild","minimapResizeShow","setHelpMode","helpMode","inHelp","hoverVisibilities","item","openFlatmapHelpPopup","closeFlatmapHelpPopup","showToolitip","tooltipNumber","_this6","clearTimeout","tooltipWait","setTimeout","hideToolitip","_this7","modelFeatureIds","heartId","featureIdsForModel","elm","anchor","querySelectorAll","click","getLabels","labels","annotations","_iterator","_createForOfIteratorHelper","values","_step","s","n","done","push","err","e","f","from","Set","identifier","getIdentifier","uuid","setState","createFlatmap","restoreMapState","searchTerm","searchAndShowResult","_this8","loading","minimap","displayMinimap","position","taxon","promise1","loadMap","featureInfo","minZoom","layerControl","pathControls","searchable","tooltips","then","returnedObject","onFlatmapReady","_stateToBeSet","computePathControlsMaximumHeight","elem","computed","getComputedStyle","padding","parseInt","paddingTop","paddingBottom","height","clientHeight","pathwaysMaxHeight","mapResize","resize","showMinimap","_minimap","_unused","console","error","sensor","isFC","setBackgroundOpacity","pathways","pathTypes","systems","getSystems","showPathwaysDrawer","term","displayLabel","clearSearchResults","searchResults","search","showSearchResults","text","annotation","preserveSelection","searchSuggestions","props","String","default","Boolean","Number","renderAtMounted","displayWarning","isLegacy","displayLatestChanges","latestChangesMessage","Object","flatmapAPI","sparcAPI","provide","layers","sckanDisplay","centreLines","enabled","availableBackground","connectivityTooltipVisible","watch","val","handler","immediate","deep","mounted","flatmap","MapManager","initialise"],"sources":["node_modules/@abi-software/flatmapvuer/src/components/FlatmapVuer.vue"],"sourcesContent":["\n\n\n\n\n\n\n"],"mappings":"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"}]}