{"remainingRequest":"/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/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/thread-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:Ci8qIGVzbGludC1kaXNhYmxlIG5vLWFsZXJ0LCBuby1jb25zb2xlICovCmltcG9ydCBWdWUgZnJvbSAidnVlIjsKaW1wb3J0IFRvb2x0aXAgZnJvbSAiLi9Ub29sdGlwIjsKaW1wb3J0IFNlbGVjdGlvbnNHcm91cCBmcm9tICIuL1NlbGVjdGlvbnNHcm91cCI7CmltcG9ydCBUcmVlQ29udHJvbHMgZnJvbSAiLi9UcmVlQ29udHJvbHMiOwppbXBvcnQgeyBNYXBTdmdJY29uLCBNYXBTdmdTcHJpdGVDb2xvciB9IGZyb20gIkBhYmktc29mdHdhcmUvc3ZnLXNwcml0ZSI7CmltcG9ydCBTdmdMZWdlbmRzIGZyb20gIi4vbGVnZW5kcy9TdmdMZWdlbmRzIjsKaW1wb3J0IHsKICBCdXR0b24sCiAgQ29sLAogIExvYWRpbmcsCiAgUmFkaW8sCiAgUmFkaW9Hcm91cCwKICBSb3cKfSBmcm9tICJlbGVtZW50LXVpIjsKaW1wb3J0IGxhbmcgZnJvbSAiZWxlbWVudC11aS9saWIvbG9jYWxlL2xhbmcvZW4iOwppbXBvcnQgbG9jYWxlIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZSI7CmltcG9ydCBmbGF0bWFwTWFya2VyIGZyb20gIi4uL2ljb25zL2ZsYXRtYXAtbWFya2VyIjsKaW1wb3J0IHtGbGF0bWFwUXVlcmllcywgZmluZFRheG9ub215TGFiZWx9IGZyb20gIi4uL3NlcnZpY2VzL2ZsYXRtYXBRdWVyaWVzLmpzIjsKCmxvY2FsZS51c2UobGFuZyk7ClZ1ZS51c2UoQnV0dG9uKTsKVnVlLnVzZShDb2wpOwpWdWUudXNlKExvYWRpbmcuZGlyZWN0aXZlKTsKVnVlLnVzZShSYWRpbyk7ClZ1ZS51c2UoUmFkaW9Hcm91cCk7ClZ1ZS51c2UoUm93KTsKY29uc3QgUmVzaXplU2Vuc29yID0gcmVxdWlyZSgiY3NzLWVsZW1lbnQtcXVlcmllcy9zcmMvUmVzaXplU2Vuc29yIik7Cgpjb25zdCBwcm9jZXNzVGF4b24gPSAoZmxhdG1hcEFQSSwgdGF4b25JZGVudGlmaWVycykgPT4gewogIGxldCBwcm9jZXNzZWQgPSBbXTsKICB0YXhvbklkZW50aWZpZXJzLmZvckVhY2godGF4b24gPT4gewogICAgZmluZFRheG9ub215TGFiZWwoZmxhdG1hcEFQSSwgdGF4b24pLnRoZW4odmFsdWUgPT4gewogICAgICBjb25zdCBpdGVtID0geyB0YXhvbiwgbGFiZWw6IHZhbHVlfTsKICAgICAgcHJvY2Vzc2VkLnB1c2goaXRlbSk7CiAgICB9KTsKICB9KTsKCiAgcmV0dXJuIHByb2Nlc3NlZDsKfQoKY29uc3QgcHJvY2Vzc0ZUVXMgPSAocGFyZW50LCBrZXkpID0+IHsKICBjb25zdCBmdHVzID0gW107CiAgbGV0IGl0ZW1zID0gcGFyZW50Lm9yZ2FucyA/IHBhcmVudC5vcmdhbnMgOiBwYXJlbnQuZnR1czsKICBjb25zdCBjaGlsZHJlbiA9IGl0ZW1zID8gaXRlbXMuZmlsdGVyKAogICAgKG9iaiwgaW5kZXgpID0+CiAgICAgIGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5sYWJlbCA9PT0gb2JqLmxhYmVsKSA9PT0gaW5kZXgKICAgICkgOiB1bmRlZmluZWQKICBpZiAoY2hpbGRyZW4pIHsKICAgIGNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4gewogICAgICBjb25zdCBkYXRhID0gewogICAgICAgIGxhYmVsOiBjaGlsZC5sYWJlbCwKICAgICAgICBtb2RlbHM6IGNoaWxkLm1vZGVscywKICAgICAgICBrZXk6IGAke2tleX0uJHtjaGlsZC5sYWJlbH1gLAogICAgICB9OwogICAgICBjb25zdCBncmFuZENoaWxkcmVuID0gcHJvY2Vzc0ZUVXMoY2hpbGQsIGRhdGEua2V5KTsKICAgICAgaWYgKGdyYW5kQ2hpbGRyZW4ubGVuZ3RoID4gMCkgewogICAgICAgIGRhdGEuY2hpbGRyZW4gPSBncmFuZENoaWxkcmVuOwogICAgICB9CiAgICAgIGZ0dXMucHVzaChkYXRhKTsKICAgIH0pCiAgfQogIHJldHVybiBmdHVzOwp9Cgpjb25zdCBwcm9jZXNzU3lzdGVtcyA9IHN5c3RlbXMgPT4gewogIGNvbnN0IGFsbFN5c3RlbXMgPSBbXTsKICBpZiAoc3lzdGVtcyAmJiBzeXN0ZW1zLmxlbmd0aCA+IDApIHsKICAgIGNvbnN0IGRhdGEgPSB7IGxhYmVsOiAiQWxsIiwga2V5OiAiQWxsIiwgY2hpbGRyZW46IFtdIH07CiAgICBzeXN0ZW1zLmZvckVhY2goc3lzdGVtID0+IHsKICAgICAgY29uc3QgY2hpbGQgPSB7CiAgICAgICAgY29sb3VyOiBzeXN0ZW0uY29sb3VyLAogICAgICAgIGVuYWJsZWQ6IHN5c3RlbS5lbmFibGVkLAogICAgICAgIGxhYmVsOiBzeXN0ZW0uaWQsCiAgICAgICAga2V5OiBzeXN0ZW0uaWQsCiAgICAgIH07CiAgICAgIGNvbnN0IGNoaWxkcmVuID0gcHJvY2Vzc0ZUVXMoc3lzdGVtLCBjaGlsZC5rZXkpOwogICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkKICAgICAgICBjaGlsZC5jaGlsZHJlbiA9IGNoaWxkcmVuOwogICAgICBkYXRhLmNoaWxkcmVuLnB1c2goY2hpbGQpOwogICAgfSk7CgogICAgYWxsU3lzdGVtcy5wdXNoKGRhdGEpOwogIH0KICAKICByZXR1cm4gYWxsU3lzdGVtczsKfQoKY29uc3QgY3JlYXRlVW5maWxsZWRUb29sdGlwRGF0YSA9IGZ1bmN0aW9uICgpewogIHJldHVybiB7CiAgICBkZXN0aW5hdGlvbnM6IFtdLAogICAgb3JpZ2luczogW10sCiAgICBjb21wb25lbnRzOiBbXSwKICAgIGRlc3RpbmF0aW9uc1dpdGhEYXRhc2V0czogW10sCiAgICBvcmlnaW5zV2l0aERhdGFzZXRzOiBbXSwKICAgIGNvbXBvbmVudHNXaXRoRGF0YXNldHM6IFtdLAogICAgcmVzb3VyY2U6IHVuZGVmaW5lZAogIH0KfQoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJGbGF0bWFwVnVlciIsCiAgY29tcG9uZW50czogewogICAgTWFwU3ZnSWNvbiwKICAgIE1hcFN2Z1Nwcml0ZUNvbG9yLAogICAgVG9vbHRpcCwKICAgIFRyZWVDb250cm9scywKICAgIFNlbGVjdGlvbnNHcm91cCwKICAgIFN2Z0xlZ2VuZHMKICB9LAogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24oKSB7CiAgICB0aGlzLm1hcE1hbmFnZXIgPSB1bmRlZmluZWQ7CiAgICB0aGlzLm1hcEltcCA9IHVuZGVmaW5lZDsKICAgIC8vVGhlIHN0YXRlIHdhdGNoZXIgbWF5IHRyaWdnZXJlZCBiZWZvcmUKICAgIC8vY3JlYXRlZCBjYXVzaW5nIGlzc3VlLCBUaGlzIGZsYWcgd2lsbAogICAgLy9yZXNvbHZlIHRoaXMgaXNzdWUuCiAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsKICB9LAogIG1ldGhvZHM6IHsKICAgIHZpZXdMYXRlc3RNYXA6IGZ1bmN0aW9uKCkgewogICAgICBsZXQgYmlvbG9naWNhbFNleCA9IHRoaXMuYmlvbG9naWNhbFNleCA/IHRoaXMuYmlvbG9naWNhbFNleCA6IHVuZGVmaW5lZDsKICAgICAgLy9IdW1hbiByZXF1aXJlcyBzcGVjaWFsIGhhbmRsaW5nCiAgICAgIGlmICh0aGlzLmVudHJ5ID09PSAiTkNCSVRheG9uOjk2MDYiKSB7CiAgICAgICAgYmlvbG9naWNhbFNleCA9ICJQQVRPOjAwMDAzODQiOwogICAgICB9CiAgICAgIGNvbnN0IHN0YXRlID0gewogICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LAogICAgICAgIGJpb2xvZ2ljYWxTZXgsCiAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkKICAgICAgfTsKICAgICAgdGhpcy4kZW1pdCgidmlldy1sYXRlc3QtbWFwIiwgc3RhdGUpOwogICAgfSwKICAgIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24oY29sb3VyKSB7CiAgICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSBjb2xvdXI7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldEJhY2tncm91bmRDb2xvdXIodGhpcy5jdXJyZW50QmFja2dyb3VuZCwgMSk7CiAgICAgIH0KICAgIH0sCiAgICB0b2dnbGVEcmF3ZXI6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLmRyYXdlck9wZW4gPSAhdGhpcy5kcmF3ZXJPcGVuOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIGNvbG91ci9ncmV5c2NhbGUgb2Ygb3JnYW5zLgogICAgICovCiAgICBzZXRDb2xvdXI6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5jb2xvdXJSYWRpbyA9IGZsYWc7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNldENvbG91cih7IGNvbG91cjogZmxhZywgb3V0bGluZTogdGhpcy5vdXRsaW5lc1JhZGlvIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgb3V0bGluZXMgZiBvcmdhbnMuCiAgICAgKi8KICAgIHNldE91dGxpbmVzOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIHRoaXMub3V0bGluZVJhZGlvID0gZmxhZzsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuc2V0Q29sb3VyKHsgY29sb3VyOiB0aGlzLmNvbG91clJhZGlvLCBvdXRsaW5lOiBmbGFnIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgcGF0aHMgdG8gZGVmYXVsdC4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKi8KICAgIHJlc2V0VmlldzogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnJlc2V0TWFwKCk7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuY2VudHJlbGluZXNTZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24pIHsKICAgICAgICAgIHRoaXMuJHJlZnMuc2tjYW5TZWxlY3Rpb24ucmVzZXQoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuJHJlZnMubGF5ZXJzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLmxheWVyc1NlbGVjdGlvbi5yZXNldCgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy4kcmVmcy5zeXN0ZW1zU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uKSB7CiAgICAgICAgICB0aGlzLiRyZWZzLnBhdGh3YXlzU2VsZWN0aW9uLnJlc2V0KCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byB6b29tIGluLgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbigpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuem9vbUluKCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gb3V0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqLwogICAgem9vbU91dDogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnpvb21PdXQoKTsKICAgICAgfQogICAgfSwKICAgIGNlbnRyZUxpbmVzU2VsZWN0ZWQ6IGZ1bmN0aW9uKHBheWxvYWQpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlQ2VudHJlbGluZXMocGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBzY2thblNlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVNja2FuUGF0aChwYXlsb2FkLmtleSwgcGF5bG9hZC52YWx1ZSk7CiAgICAgIH0KICAgIH0sCiAgICBjaGVja0FsbFNDS0FOOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVTY2thblBhdGgoa2V5LCBwYXlsb2FkLnZhbHVlKSk7CiAgICAgIH0KICAgIH0sCiAgICBzeXN0ZW1TZWxlY3RlZDogZnVuY3Rpb24ocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0ocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxTeXN0ZW1zOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMuc3lzdGVtc1swXS5jaGlsZHJlbi5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVTeXN0ZW0oa2V5LmxhYmVsLCBmbGFnKSk7CiAgICAgIH0KICAgIH0sCiAgICBmdHVTZWxlY3RlZDogZnVuY3Rpb24obW9kZWxzKSB7CiAgICAgIHRoaXMuc2VhcmNoQW5kU2hvd1Jlc3VsdChtb2RlbHMsIHRydWUpOwogICAgfSwKICAgIGxheWVyc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUxheWVyKHBheWxvYWQua2V5LCBwYXlsb2FkLnZhbHVlKTsKICAgICAgfQogICAgfSwKICAgIGNoZWNrQWxsTGF5ZXJzOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHBheWxvYWQua2V5cy5mb3JFYWNoKGtleSA9PiB0aGlzLm1hcEltcC5lbmFibGVMYXllcihrZXksIHBheWxvYWQudmFsdWUpKTsKICAgICAgfQogICAgfSwKICAgIHRheG9uc1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNvbm5lY3Rpdml0eUJ5VGF4b25JZHMocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxUYXhvbnM6IGZ1bmN0aW9uKHBheWxvYWQpIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKSB7CiAgICAgICAgcGF5bG9hZC5rZXlzLmZvckVhY2goa2V5ID0+IHRoaXMubWFwSW1wLmVuYWJsZUNvbm5lY3Rpdml0eUJ5VGF4b25JZHMoa2V5LCBwYXlsb2FkLnZhbHVlKSk7CiAgICAgIH0KICAgIH0sCiAgICBwYXRod2F5c1NlbGVjdGVkOiBmdW5jdGlvbihwYXlsb2FkKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLmVuYWJsZVBhdGgocGF5bG9hZC5rZXksIHBheWxvYWQudmFsdWUpOwogICAgICB9CiAgICB9LAogICAgY2hlY2tBbGxQYXRod2F5czogZnVuY3Rpb24ocGF5bG9hZCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBwYXlsb2FkLmtleXMuZm9yRWFjaChrZXkgPT4gdGhpcy5tYXBJbXAuZW5hYmxlUGF0aChrZXksIHBheWxvYWQudmFsdWUpKTsKICAgICAgfQogICAgfSwKICAgIGVuYWJsZVBhblpvb21FdmVudHM6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5tYXBJbXAuZW5hYmxlUGFuWm9vbUV2ZW50cyhmbGFnKTsKICAgIH0sCiAgICBldmVudENhbGxiYWNrOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIChldmVudFR5cGUsIGRhdGEsIC4uLmFyZ3MpID0+IHsKICAgICAgICBpZiAoZXZlbnRUeXBlICE9PSAicGFuLXpvb20iKSB7CiAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGEubGFiZWw7CiAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IFtkYXRhLm1vZGVsc107CiAgICAgICAgICBjb25zdCB0YXhvbm9teSA9IHRoaXMuZW50cnk7CiAgICAgICAgICBjb25zdCBiaW9sb2dpY2FsU2V4ID0gdGhpcy5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgY29uc3QgcGF5bG9hZCA9IHsKICAgICAgICAgICAgZGF0YXNldDogZGF0YS5kYXRhc2V0LAogICAgICAgICAgICBiaW9sb2dpY2FsU2V4OiBiaW9sb2dpY2FsU2V4LAogICAgICAgICAgICB0YXhvbm9teTogdGF4b25vbXksCiAgICAgICAgICAgIHJlc291cmNlOiByZXNvdXJjZSwKICAgICAgICAgICAgbGFiZWw6IGxhYmVsLAogICAgICAgICAgICBmZWF0dXJlOiBkYXRhLAogICAgICAgICAgICB1c2VyRGF0YTogYXJncywKICAgICAgICAgICAgZXZlbnRUeXBlOiBldmVudFR5cGUsCiAgICAgICAgICAgIHByb3ZlbmFuY2VUYXhvbm9teTogZGF0YS50YXhvbnMgPyBKU09OLnBhcnNlKGRhdGEudGF4b25zKSA6IHVuZGVmaW5lZAogICAgICAgICAgfTsKICAgICAgICAgIGlmIChldmVudFR5cGUgPT09ICJjbGljayIpIHsKICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlID0gZGF0YS5tb2RlbHMgPyBkYXRhLm1vZGVscyA6ICIiOwogICAgICAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICJtb3VzZWVudGVyIikgewogICAgICAgICAgICB0aGlzLmN1cnJlbnRIb3ZlciA9IGRhdGEubW9kZWxzID8gZGF0YS5tb2RlbHMgOiAiIjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEudHlwZSAhPT0gIm1hcmtlciIgJiYgZXZlbnRUeXBlID09PSAiY2xpY2siKXsKICAgICAgICAgICAgdGhpcy5jaGVja0FuZENyZWF0ZVBvcHVwcyhwYXlsb2FkKTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuJGVtaXQoInJlc291cmNlLXNlbGVjdGVkIiwgcGF5bG9hZCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJGVtaXQoInBhbi16b29tLWNhbGxiYWNrIiwgZGF0YSk7CiAgICAgICAgfQogICAgICB9OwogICAgfSwKICAgIC8vIGNoZWNrTmV1cm9uQ2xpY2tlZCBzaG93cyBhIG5ldXJvbiBwYXRoIHBvcCB1cCBpZiBhIHBhdGggd2FzIHJlY2VudGx5IGNsaWNrZWQKICAgIGNoZWNrQW5kQ3JlYXRlUG9wdXBzOiAgYXN5bmMgZnVuY3Rpb24oZGF0YSkgewogICAgICAvLyBDYWxsIGZsYXRtYXAgZGF0YWJhc2UgdG8gZ2V0IHRoZSBjb25uZWN0aW9uIGRhdGEKICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmZsYXRtYXBRdWVyaWVzLnJldHJpZXZlRmxhdG1hcEtub3dsZWRnZUZvckV2ZW50KGRhdGEpCiAgICAgIC8vIFRoZSBsaW5lIGJlbG93IG9ubHkgY3JlYXRlcyB0aGUgdG9vbHRpcCBpZiBzb21lIGRhdGEgd2FzIGZvdW5kIG9uIHRoZSBwYXRoIAogICAgICAvLyByZXN1bHQgMCBpcyB0aGUgY29ubmVjdGlvbiwgcmVzdWx0IDEgaXMgdGhlIHB1Ym1lZCByZXN1bHRzIGZyb20gZmxhdG1hcAogICAgICBpZihyZXN1bHRzWzBdIHx8IHJlc3VsdHNbMV0gfHwoIGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzICYmIGRhdGEuZmVhdHVyZS5oeXBlcmxpbmtzLmxlbmd0aCA+IDApKXsKICAgICAgICB0aGlzLnJlc291cmNlRm9yVG9vbHRpcCA9ICBkYXRhLnJlc291cmNlWzBdOwogICAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcEZyb21OZXVyb25DdXJhdGlvbihkYXRhKTsKICAgICAgfSAKICAgIH0sCiAgICBwb3BVcENzc0hhY2tzOiBmdW5jdGlvbigpIHsKICAgICAgLy8gQmVsb3cgaXMgYSBoYWNrIHRvIHJlbW92ZSBmbGF0bWFwIHRvb2x0aXBzIHdoaWxlIHBvcHVwIGlzIG9wZW4KICAgICAgbGV0IGZ0b29sdGlwID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmZsYXRtYXAtdG9vbHRpcC1wb3B1cCIpOwogICAgICBpZiAoZnRvb2x0aXApIGZ0b29sdGlwLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpLnN0eWxlLmRpc3BsYXkgPQogICAgICAgICJibG9jayI7CiAgICAgIHRoaXMuJHJlZnMudG9vbHRpcC4kZWwuc3R5bGUuZGlzcGxheSA9ICJmbGV4IjsKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIikub25jbGljayA9ICgpID0+IHsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZmxhdG1hcC10b29sdGlwLXBvcHVwIikuc3R5bGUuZGlzcGxheSA9CiAgICAgICAgICAiYmxvY2siOwogICAgICB9OwogICAgfSwKICAgIGNyZWF0ZVRvb2x0aXBGcm9tTmV1cm9uQ3VyYXRpb246IGFzeW5jIGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgdGhpcy50b29sdGlwRW50cnkgPSBhd2FpdCB0aGlzLmZsYXRtYXBRdWVyaWVzLmNyZWF0ZVRvb2x0aXBEYXRhKGRhdGEpOwogICAgICB0aGlzLmRpc3BsYXlUb29sdGlwKCk7CiAgICB9LAogICAgLy8gS2VlcGluZyB0aGlzIGFzIGFuIEFQSQogICAgc2hvd1BvcHVwOiBmdW5jdGlvbihmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpIHsKICAgICAgbGV0IG15T3B0aW9ucyA9IG9wdGlvbnM7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGlmIChteU9wdGlvbnMpIHsKICAgICAgICAgIGlmICghbXlPcHRpb25zLmNsYXNzTmFtZSkgbXlPcHRpb25zLmNsYXNzTmFtZSA9ICJjdXN0b20tcG9wdXAiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBteU9wdGlvbnMgPSB7IGNsYXNzTmFtZTogImN1c3RvbS1wb3B1cCIsIHBvc2l0aW9uQXRMYXN0Q2xpY2s6IHRydWUgfTsKICAgICAgICB9CiAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKGZlYXR1cmVJZCwgbm9kZSwgbXlPcHRpb25zKTsKICAgICAgfQogICAgfSwKICAgIHNob3dNYXJrZXJQb3B1cDogZnVuY3Rpb24oZmVhdHVyZUlkLCBub2RlLCBvcHRpb25zKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIHRoaXMubWFwSW1wLnNob3dNYXJrZXJQb3B1cChmZWF0dXJlSWQsIG5vZGUsIG9wdGlvbnMpOwogICAgICB9CiAgICB9LAogICAgY2xvc2VNaW5pbWFwOiBmdW5jdGlvbigpewogICAgICBsZXQgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOyAvLyBmaW5kIG1pbmltYXAKICAgICAgaWYgKHRoaXMubWluaW1hcFNtYWxsKSB7IC8vc3dpdGNoIHRoZSBjbGFzc2VzIG9uIHRoZSBtaW5pbWFwCiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ2VubGFyZ2UnKTsKICAgICAgICBtaW5pbWFwRWwuY2xhc3NMaXN0LnJlbW92ZSgnc2hyaW5rJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWluaW1hcEVsLmNsYXNzTGlzdC5hZGQoJ3NocmluaycpOwogICAgICAgIG1pbmltYXBFbC5jbGFzc0xpc3QucmVtb3ZlKCdlbmxhcmdlJyk7CiAgICAgIH0KICAgICAgdGhpcy5taW5pbWFwU21hbGwgPSAhdGhpcy5taW5pbWFwU21hbGw7CiAgICB9LAogICAgYWRkUmVzaXplQnV0dG9uVG9NaW5pbWFwOiBmdW5jdGlvbigpewogICAgICBsZXQgbWluaW1hcEVsID0gdGhpcy4kcmVmcy5mbGF0bWFwQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5tYXBsaWJyZWdsLWN0cmwtbWluaW1hcCcpOwogICAgICBpZiAobWluaW1hcEVsKXsKICAgICAgICB0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOwogICAgICAgIG1pbmltYXBFbC5hcHBlbmRDaGlsZCh0aGlzLiRyZWZzLm1pbmltYXBSZXNpemUpOwogICAgICAgIHRoaXMubWluaW1hcFJlc2l6ZVNob3cgPSB0cnVlOwogICAgICB9CiAgICB9LAogICAgc2V0SGVscE1vZGU6IGZ1bmN0aW9uKGhlbHBNb2RlKSB7CiAgICAgIGlmIChoZWxwTW9kZSkgewogICAgICAgIHRoaXMuaW5IZWxwID0gdHJ1ZTsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLm9wZW5GbGF0bWFwSGVscFBvcHVwKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pbkhlbHAgPSBmYWxzZTsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5jbG9zZUZsYXRtYXBIZWxwUG9wdXAoKTsKICAgICAgfQogICAgfSwKICAgIHNob3dUb29saXRpcDogZnVuY3Rpb24odG9vbHRpcE51bWJlcikgewogICAgICBpZiAoIXRoaXMuaW5IZWxwKSB7CiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0pOwogICAgICAgIHRoaXMudG9vbHRpcFdhaXRbdG9vbHRpcE51bWJlcl0gPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXNbdG9vbHRpcE51bWJlcl0udmFsdWUgPSB0cnVlOwogICAgICAgIH0sIDUwMCk7CiAgICAgIH0KICAgIH0sCiAgICBoaWRlVG9vbGl0aXA6IGZ1bmN0aW9uKHRvb2x0aXBOdW1iZXIpIHsKICAgICAgaWYgKCF0aGlzLmluSGVscCkgewogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdKTsKICAgICAgICB0aGlzLnRvb2x0aXBXYWl0W3Rvb2x0aXBOdW1iZXJdID0gc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzW3Rvb2x0aXBOdW1iZXJdLnZhbHVlID0gZmFsc2U7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIGRpc3BsYXlUb29sdGlwOiBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5tYXBJbXAuc2hvd1BvcHVwKAogICAgICAgIHRoaXMubWFwSW1wLm1vZGVsRmVhdHVyZUlkcyh0aGlzLnJlc291cmNlRm9yVG9vbHRpcClbMF0sCiAgICAgICAgdGhpcy4kcmVmcy50b29sdGlwLiRlbCwKICAgICAgICB7IGNsYXNzTmFtZTogImZsYXRtYXB2dWVyLXBvcG92ZXIiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiB0cnVlIH0KICAgICAgKTsKICAgICAgdGhpcy5wb3BVcENzc0hhY2tzKCk7CiAgICB9LAogICAgb3BlbkZsYXRtYXBIZWxwUG9wdXA6IGZ1bmN0aW9uKCkgewogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBsZXQgaGVhcnRJZCA9IHRoaXMubWFwSW1wLmZlYXR1cmVJZHNGb3JNb2RlbCgiVUJFUk9OOjAwMDA5NDgiKVswXTsKICAgICAgICBjb25zdCBlbG0gPSAiQ2xpY2sgZm9yIG1vcmUgaW5mb3JtYXRpb24iOwogICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cChoZWFydElkLCBlbG0sIHsKICAgICAgICAgIGFuY2hvcjogInRvcCIsCiAgICAgICAgICBjbGFzc05hbWU6ICJmbGF0bWFwLXBvcHVwLXBvcHBlciIKICAgICAgICB9KTsKICAgICAgfQogICAgfSwKICAgIGNsb3NlRmxhdG1hcEhlbHBQb3B1cDogZnVuY3Rpb24oKSB7CiAgICAgIHRoaXMuJGVsCiAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tYXBsaWJyZWdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIpCiAgICAgICAgLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBpdGVtLmNsaWNrKCk7CiAgICAgICAgfSk7CiAgICB9LAogICAgZ2V0TGFiZWxzOiBmdW5jdGlvbigpIHsKICAgICAgbGV0IGxhYmVscyA9IFtdOwogICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICBsZXQgYW5ub3RhdGlvbnMgPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uczsKICAgICAgICBmb3IgKGxldCB2YWx1ZSBvZiBhbm5vdGF0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICAgaWYgKHZhbHVlLmxhYmVsKSBsYWJlbHMucHVzaCh2YWx1ZS5sYWJlbCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQobGFiZWxzKSk7CiAgICAgIH0KICAgIH0sCiAgICBnZXRTdGF0ZTogZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGxldCBzdGF0ZSA9IHsKICAgICAgICAgIGVudHJ5OiB0aGlzLmVudHJ5LAogICAgICAgICAgdmlld3BvcnQ6IHRoaXMubWFwSW1wLmdldFN0YXRlKCkKICAgICAgICB9OwogICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB0aGlzLm1hcEltcC5nZXRJZGVudGlmaWVyKCk7CiAgICAgICAgaWYgKHRoaXMuYmlvbG9naWNhbFNleCkKICAgICAgICAgIHN0YXRlWydiaW9sb2dpY2FsU2V4J10gPSB0aGlzLmJpb2xvZ2ljYWxTZXg7CiAgICAgICAgZWxzZSBpZiAoaWRlbnRpZmllciAmJiBpZGVudGlmaWVyLmJpb2xvZ2ljYWxTZXgpCiAgICAgICAgICBzdGF0ZVsnYmlvbG9naWNhbFNleCddID0gaWRlbnRpZmllci5iaW9sb2dpY2FsU2V4OwogICAgICAgIGlmIChpZGVudGlmaWVyICYmIGlkZW50aWZpZXIudXVpZCkKICAgICAgICAgIHN0YXRlWyd1dWlkJ10gPSBpZGVudGlmaWVyLnV1aWQ7CiAgICAgICAgcmV0dXJuIHN0YXRlOwogICAgICB9CiAgICAgIHJldHVybiB1bmRlZmluZWQ7CiAgICB9LAogICAgc2V0U3RhdGU6IGZ1bmN0aW9uKHN0YXRlKSB7CiAgICAgIGlmIChzdGF0ZSkgewogICAgICAgIGlmICh0aGlzLm1hcEltcCAmJiAKICAgICAgICAgIChzdGF0ZS5lbnRyeSAmJiAodGhpcy5lbnRyeSA9PSBzdGF0ZS5lbnRyeSkpICYmCiAgICAgICAgICAoIXN0YXRlLmJpb2xvZ2ljYWxTZXggfHwgKHN0YXRlLmJpb2xvZ2ljYWxTZXggPT09IHRoaXMuYmlvbG9naWNhbFNleCkpKSAKICAgICAgICB7CiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQpIHsKICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmNyZWF0ZUZsYXRtYXAoc3RhdGUpOwogICAgICAgIH0KICAgICAgICB0aGlzLnNldFN0YXRlUmVxdWlyZWQgPSBmYWxzZTsKICAgICAgfQogICAgfSwKICAgIHJlc3RvcmVNYXBTdGF0ZTogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgaWYgKHN0YXRlLnZpZXdwb3J0KQogICAgICAgICAgdGhpcy5tYXBJbXAuc2V0U3RhdGUoc3RhdGUudmlld3BvcnQpOwogICAgICAgIGlmIChzdGF0ZS5zZWFyY2hUZXJtKQogICAgICAgICAgdGhpcy5zZWFyY2hBbmRTaG93UmVzdWx0KHN0YXRlLnNlYXJjaFRlcm0sIHRydWUpOwogICAgICB9CiAgICB9LAogICAgY3JlYXRlRmxhdG1hcDogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgaWYgKCF0aGlzLm1hcEltcCAmJiAhdGhpcy5sb2FkaW5nKSB7CiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICBsZXQgbWluaW1hcCA9IGZhbHNlOwogICAgICAgIGlmICh0aGlzLmRpc3BsYXlNaW5pbWFwKSB7CiAgICAgICAgICBtaW5pbWFwID0geyBwb3NpdGlvbjogInRvcC1yaWdodCIgfTsKICAgICAgICB9CgogICAgICAgIC8vQXMgZm9yIGZsYXRtYXAtdmlld2VyQDIuMi43LCBzZWUgYmVsb3cgZm9yIHRoZSBkb2N1bWVudGF0aW9uIAogICAgICAgIC8vZm9yIHRoZSBpZGVudGlmaWVyOgoKICAgICAgICAvL0BhcmcgaWRlbnRpZmllciB7c3RyaW5nfE9iamVjdH0KICAgICAgICAvLyBBIHN0cmluZyBvciBvYmplY3QgaWRlbnRpZnlpbmcgdGhlIG1hcCB0byBsb2FkLiBJZiBhIHN0cmluZyBpdHMKICAgICAgICAvLyB2YWx1ZSBjYW4gYmUgZWl0aGVyIHRoZSBtYXAncyBgYHV1aWRgYCwgYXNzaWduZWQgYXQgZ2VuZXJhdGlvbiB0aW1lLAogICAgICAgIC8vIG9yIHRheG9uIGFuZCBiaW9sb2dpY2FsIHNleCBpZGVudGlmaWVycyBvZiB0aGUgc3BlY2llcyB0aGF0IHRoZSBtYXAKICAgICAgICAvLyByZXByZXNlbnRzLiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgYSBtYXAgaXMgbG9hZGVkIHVubGVzcyBpdCBoYXMgYmVlbgogICAgICAgIC8vIGlkZW50aWZpZWQgdXNpbmcgYSBgYHV1aWRgYCAoc2VlIGJlbG93KS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIudGF4b24ge3N0cmluZ30gVGhlIHRheG9uIGlkZW50aWZpZXIgb2YgdGhlIHNwZWNpZXMgCiAgICAgICAgLy8gIHJlcHJlc2VudGVkIGJ5IHRoZSBtYXAuIFRoaXMgaXMgc3BlY2lmaWVkIGFzIG1ldGFkYXRhIGluIHRoZSBtYXAncyBzb3VyY2UgZmlsZS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIuYmlvbG9naWNhbFNleCB7c3RyaW5nfSBUaGUgYmlvbG9naWNhbCBzZXggb2YgdGhlIHNwZWNpZXMKICAgICAgICAvLyByZXByZXNlbnRlZCBieSB0aGUgbWFwLiBUaGlzIGlzIHNwZWNpZmllZCBhcyBtZXRhZGF0YWluIHRoZSBtYXAncyBzb3VyY2UgZmlsZS4KICAgICAgICAvLyBAYXJnIGlkZW50aWZpZXIudXVpZCB7c3RyaW5nfSBUaGUgdW5pcXVlIHV1aWQgdGhlIGZsYXRtYXAuIElmIGdpdmVuIHRoZW4gdGhpcyBleGFjdCBtYXAgd2lsbAogICAgICAgIC8vICBiZSBsb2FkZWQsIG92ZXJyaWRpbmcgYGB0YXhvbmBgIGFuZCBgYGJpb2xvZ2ljYWxTZXhgYC4KCiAgICAgICAgbGV0IGlkZW50aWZpZXIgPSB7IHRheG9uOiB0aGlzLmVudHJ5IH07CiAgICAgICAgaWYgKHRoaXMudXVpZCkgewogICAgICAgICAgaWRlbnRpZmllci51dWlkID0gdGhpcy51dWlkOwogICAgICAgIH0KICAgICAgICAvL1RoaXMgbm93IGhhbmRsZSB0aGUgdXNlcyBvZiB1dWlkIHdoZW4gcmVzdW1pbmcgc3RhdGVzCiAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICBpZiAoc3RhdGUudXVpZCkgewogICAgICAgICAgICBpZGVudGlmaWVyID0geyB1dWlkOiBzdGF0ZS51dWlkIH07CiAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmVudHJ5KSB7CiAgICAgICAgICAgIGlkZW50aWZpZXIudGF4b24gPSBzdGF0ZS5lbnRyeTsKICAgICAgICAgICAgaWYgKHN0YXRlLmJpb2xvZ2ljYWxTZXgpIHsKICAgICAgICAgICAgICBpZGVudGlmaWVyWyJiaW9sb2dpY2FsU2V4Il0gPSBzdGF0ZS5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgICB9IGVsc2UgaWYgKGlkZW50aWZpZXIudGF4b24gPT09ICJOQ0JJVGF4b246OTYwNiIpIHsKICAgICAgICAgICAgICAvL0ZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0iUEFUTzowMDAwMzg0IjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyBTZXQgdGhlIGJpb2xvaWNhbFNleCBub3cgaWYgbWFwIGlzIG5vdCByZXN1bWVkIGZyb20KICAgICAgICAgIC8vIGEgc2F2ZWQgc3RhdGUKICAgICAgICAgIGlmICh0aGlzLmJpb2xvZ2ljYWxTZXgpIHsKICAgICAgICAgICAgaWRlbnRpZmllclsiYmlvbG9naWNhbFNleCJdID0gdGhpcy5iaW9sb2dpY2FsU2V4OwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbGV0IHByb21pc2UxID0gdGhpcy5tYXBNYW5hZ2VyLmxvYWRNYXAoCiAgICAgICAgICBpZGVudGlmaWVyLAogICAgICAgICAgdGhpcy4kcmVmcy5kaXNwbGF5LAogICAgICAgICAgdGhpcy5ldmVudENhbGxiYWNrKCksCiAgICAgICAgICB7CiAgICAgICAgICAgIC8vZnVsbHNjcmVlbkNvbnRyb2w6IGZhbHNlLAogICAgICAgICAgICAvL2Fubm90YXRhYmxlOiBmYWxzZSwKICAgICAgICAgICAgLy9kZWJ1ZzogdHJ1ZSwKICAgICAgICAgICAgZmVhdHVyZUluZm86IHRoaXMuZmVhdHVyZUluZm8sCiAgICAgICAgICAgICJtaW4tem9vbSI6IHRoaXMubWluWm9vbSwKICAgICAgICAgICAgbGF5ZXJDb250cm9sOiB0cnVlLAogICAgICAgICAgICBwYXRoQ29udHJvbHM6IHRydWUsCiAgICAgICAgICAgIHNlYXJjaGFibGU6IHRoaXMuc2VhcmNoYWJsZSwKICAgICAgICAgICAgdG9vbHRpcHM6IHRoaXMudG9vbHRpcHMsCiAgICAgICAgICAgIG1pbmltYXA6IG1pbmltYXAKICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIHByb21pc2UxLnRoZW4ocmV0dXJuZWRPYmplY3QgPT4gewogICAgICAgICAgdGhpcy5tYXBJbXAgPSByZXR1cm5lZE9iamVjdDsKICAgICAgICAgIHRoaXMub25GbGF0bWFwUmVhZHkoKTsKICAgICAgICAgIGlmICh0aGlzLl9zdGF0ZVRvQmVTZXQpCiAgICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHRoaXMuX3N0YXRlVG9CZVNldCk7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhpcy5yZXN0b3JlTWFwU3RhdGUoc3RhdGUpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKHN0YXRlKSB7CiAgICAgICAgdGhpcy5fc3RhdGVUb0JlU2V0ID0geyB2aWV3cG9ydDogc3RhdGUudmlld3BvcnQsIHNlYXJjaFRlcm06IHN0YXRlLnNlYXJjaFRlcm0gfTsKICAgICAgICBpZiAodGhpcy5tYXBJbXAgJiYgIXRoaXMubG9hZGluZykKICAgICAgICAgIHRoaXMucmVzdG9yZU1hcFN0YXRlKHRoaXMuX3N0YXRlVG9CZVNldCk7CiAgICAgIH0KICAgIH0sCiAgICBjb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpIHsKICAgICAgY29uc3QgZWxlbSA9IHRoaXMuJHJlZnMuZGlzcGxheTsKICAgICAgaWYgKGVsZW0pIHsKICAgICAgICBjb25zdCBjb21wdXRlZCA9IGdldENvbXB1dGVkU3R5bGUoZWxlbSk7CiAgICAgICAgY29uc3QgcGFkZGluZyA9IHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdUb3ApICsgcGFyc2VJbnQoY29tcHV0ZWQucGFkZGluZ0JvdHRvbSk7CiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbS5jbGllbnRIZWlnaHQgLSBwYWRkaW5nOwogICAgICAgIHRoaXMucGF0aHdheXNNYXhIZWlnaHQgPSBoZWlnaHQgLSAxNzA7CiAgICAgIH0KICAgIH0sCiAgICBtYXBSZXNpemU6IGZ1bmN0aW9uKCkgewogICAgICB0cnkgewogICAgICAgIHRoaXMuY29tcHV0ZVBhdGhDb250cm9sc01heGltdW1IZWlnaHQoKTsKICAgICAgICBpZiAodGhpcy5tYXBJbXApIHsKICAgICAgICAgIHRoaXMubWFwSW1wLnJlc2l6ZSgpOwogICAgICAgICAgdGhpcy5zaG93TWluaW1hcCh0aGlzLmRpc3BsYXlNaW5pbWFwKTsKICAgICAgICAgIGlmICh0aGlzLm1hcEltcC5fbWluaW1hcCkgewogICAgICAgICAgICAgIHRoaXMubWFwSW1wLl9taW5pbWFwLnJlc2l6ZSgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBjYXRjaCB7CiAgICAgICAgY29uc29sZS5lcnJvcigiTWFwIHJlc2l6ZSBlcnJvciIpOwogICAgICB9CiAgICB9LAogICAgb25GbGF0bWFwUmVhZHk6IGZ1bmN0aW9uKCl7CiAgICAgIC8vIG9uRmxhdG1hcFJlYWR5IGlzIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gcnVuIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBmbGF0bWFwIGlzIGxvYWRlZAogICAgICB0aGlzLnNlbnNvciA9IG5ldyBSZXNpemVTZW5zb3IoCiAgICAgICAgdGhpcy4kcmVmcy5kaXNwbGF5LAogICAgICAgIHRoaXMubWFwUmVzaXplCiAgICAgICk7CiAgICAgIGlmICh0aGlzLm1hcEltcC5vcHRpb25zICYmIHRoaXMubWFwSW1wLm9wdGlvbnMuc3R5bGUgPT09ICJmdW5jdGlvbmFsIikgewogICAgICAgIHRoaXMuaXNGQyA9IHRydWU7CiAgICAgIH0KICAgICAgdGhpcy5tYXBJbXAuc2V0QmFja2dyb3VuZE9wYWNpdHkoMSk7CiAgICAgIHRoaXMuYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrKHRoaXMuY3VycmVudEJhY2tncm91bmQpOwogICAgICB0aGlzLnBhdGh3YXlzID0gdGhpcy5tYXBJbXAucGF0aFR5cGVzKCk7CiAgICAgIHRoaXMubWFwSW1wLmVuYWJsZUNlbnRyZWxpbmVzKGZhbHNlKTsKICAgICAgLy9EaXNhYmxlIGxheWVycyBmb3Igbm93CiAgICAgIC8vdGhpcy5sYXllcnMgPSB0aGlzLm1hcEltcC5nZXRMYXllcnMoKTsKICAgICAgdGhpcy5zeXN0ZW1zID0gcHJvY2Vzc1N5c3RlbXModGhpcy5tYXBJbXAuZ2V0U3lzdGVtcygpKTsKICAgICAgdGhpcy50YXhvbkNvbm5lY3Rpdml0eSA9IHByb2Nlc3NUYXhvbih0aGlzLmZsYXRtYXBBUEksIHRoaXMubWFwSW1wLnRheG9uSWRlbnRpZmllcnMpOwogICAgICB0aGlzLmFkZFJlc2l6ZUJ1dHRvblRvTWluaW1hcCgpOwogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy5jb21wdXRlUGF0aENvbnRyb2xzTWF4aW11bUhlaWdodCgpOwogICAgICB0aGlzLmRyYXdlck9wZW4gPSB0cnVlOwogICAgICB0aGlzLm1hcFJlc2l6ZSgpOwogICAgICB0aGlzLiRlbWl0KCJyZWFkeSIsIHRoaXMpOwogICAgfSwKICAgIHNob3dNaW5pbWFwOiBmdW5jdGlvbihmbGFnKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkKICAgICAgICB0aGlzLm1hcEltcC5zaG93TWluaW1hcChmbGFnKTsKICAgIH0sCiAgICBzaG93UGF0aHdheXNEcmF3ZXI6IGZ1bmN0aW9uKGZsYWcpIHsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gZmxhZzsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIGRpc3BsYXkgZmVhdHVyZXMgd2l0aCBhbm5vdGF0aW9uIG1hdGNoaW5nIHRoZSBwcm92aWRlZCB0ZXJtLAogICAgICogd2l0aCB0aGUgb3B0aW9uIHRvIGRpc3BsYXkgdGhlIGxhYmVsIHVzaW5nIGRpc3BsYXlMYWJlbCBmbGFnLiAKICAgICAqLwogICAgc2VhcmNoQW5kU2hvd1Jlc3VsdDogZnVuY3Rpb24odGVybSwgZGlzcGxheUxhYmVsKSB7CiAgICAgIGlmICh0aGlzLm1hcEltcCkgewogICAgICAgIGlmICh0ZXJtID09PSB1bmRlZmluZWQgfHwgdGVybSA9PT0gIiIpIHsKICAgICAgICAgIHRoaXMubWFwSW1wLmNsZWFyU2VhcmNoUmVzdWx0cygpOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7CiAgICAgICAgICBpZiAoc2VhcmNoUmVzdWx0cyAmJiBzZWFyY2hSZXN1bHRzLnJlc3VsdHMgJiYKICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdGhpcy5tYXBJbXAuc2hvd1NlYXJjaFJlc3VsdHMoc2VhcmNoUmVzdWx0cyk7CiAgICAgICAgICAgIGlmIChkaXNwbGF5TGFiZWwgJiYgCiAgICAgICAgICAgICAgc2VhcmNoUmVzdWx0cy5yZXN1bHRzWzBdLmZlYXR1cmVJZCAmJiAKICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnJlc3VsdHNbMF0udGV4dCkgewogICAgICAgICAgICAgIGNvbnN0IGFubm90YXRpb24gPSB0aGlzLm1hcEltcC5hbm5vdGF0aW9uKHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQpOwogICAgICAgICAgICAgIHRoaXMubWFwSW1wLnNob3dQb3B1cCgKICAgICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucmVzdWx0c1swXS5mZWF0dXJlSWQsCiAgICAgICAgICAgICAgICBhbm5vdGF0aW9uLmxhYmVsLAogICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICJjdXN0b20tcG9wdXAiLCBwb3NpdGlvbkF0TGFzdENsaWNrOiBmYWxzZSwgcHJlc2VydmVTZWxlY3Rpb246IHRydWUgfQogICAgICAgICAgICAgICkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhpcy5tYXBJbXAuY2xlYXJTZWFyY2hSZXN1bHRzKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICAvKioKICAgICAqIEdldCB0aGUgbGlzdCBvZiBzdWdnZXN0ZWQgdGVybXMKICAgICAqLwogICAgc2VhcmNoU3VnZ2VzdGlvbnM6IGZ1bmN0aW9uKHRlcm0pIHsKICAgICAgaWYgKHRoaXMubWFwSW1wKQogICAgICAgIHJldHVybiB0aGlzLm1hcEltcC5zZWFyY2godGVybSk7CiAgICAgIHJldHVybiBbXTsKICAgIH0sCiAgfSwKICBwcm9wczogewogICAgZW50cnk6IFN0cmluZywKICAgIHV1aWQ6IFN0cmluZywKICAgIGJpb2xvZ2ljYWxTZXg6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIGZlYXR1cmVJbmZvOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbWluWm9vbTogewogICAgICB0eXBlOiBOdW1iZXIsCiAgICAgIGRlZmF1bHQ6IDQKICAgIH0sCiAgICBwYXRoQ29udHJvbHM6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBzZWFyY2hhYmxlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbGF5ZXJDb250cm9sOiB7CiAgICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIHRvb2x0aXBzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICBoZWxwTW9kZTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIHJlbmRlckF0TW91bnRlZDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgZGlzcGxheU1pbmltYXA6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBkaXNwbGF5V2FybmluZzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIC8qKgogICAgICogRmxhZyB0byBkZXRlcm1pbmUgcmF0aGVyIG9wZW4gbWFwIFVJIHNob3VsZCBiZQogICAgICogcHJlc2VudGVkIG9yIG5vdC4KICAgICAqLwogICAgZW5hYmxlT3Blbk1hcFVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlLAogICAgfSwKICAgIG9wZW5NYXBPcHRpb25zOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIHsKICAgICAgICAgICAgZGlzcGxheTogIk9wZW4gQUMgTWFwIiwKICAgICAgICAgICAga2V5OiAiQUMiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICBkaXNwbGF5OiAiT3BlbiBGQyBNYXAiLAogICAgICAgICAgICBrZXk6ICJGQyIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIDNEIEh1bWFuIE1hcCIsCiAgICAgICAgICAgIGtleTogIjNEIgogICAgICAgICAgfSwKICAgICAgICBdCiAgICAgIH0sCiAgICB9LAogICAgaXNMZWdhY3k6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBkaXNwbGF5TGF0ZXN0Q2hhbmdlczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZSwKICAgIH0sCiAgICBsYXRlc3RDaGFuZ2VzTWVzc2FnZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICInT2JzZXJ2ZWQgSW4nIGNvbnRyb2xzIGFuZCBpbmZvcm1hdGlvbiBhcmUgbm93IGluY2x1ZGVkIGluIEFDIG1hcHMuIFN5c3RlbSBjb250cm9sIHdpdGggRlRVIGluZm9ybWF0aW9uIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBGQyBtYXAuIiwKICAgIH0sCiAgICAvKioKICAgICAqIFN0YXRlIGNvbnRhaW5pbmcgc3RhdGUgb2YgdGhlIGZsYXRtYXAuCiAgICAgKi8KICAgIHN0YXRlOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogdW5kZWZpbmVkCiAgICB9LAogICAgLyoqCiAgICAgKiBTcGVjaWZ5IHRoZSBlbmRwb2ludCBvZiB0aGUgZmxhdG1hcCBzZXJ2ZXIuCiAgICAgKi8KICAgIGZsYXRtYXBBUEk6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiaHR0cHM6Ly9tYXBjb3JlLWRlbW8ub3JnL2N1cnJlbnQvZmxhdG1hcC92My8iCiAgICB9LAogICAgc3BhcmNBUEk6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiaHR0cHM6Ly9hcGkuc3BhcmMuc2NpZW5jZS8iCiAgICB9LAogIH0sCiAgcHJvdmlkZSgpIHsKICAgIHJldHVybiB7CiAgICAgIHNwYXJjQVBJOiB0aGlzLnNwYXJjQVBJLAogICAgICBmbGF0bWFwQVBJOiB0aGlzLmZsYXRtYXBBUEkKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHsKICAgICAgbGF5ZXJzOiBbXSwKICAgICAgcGF0aHdheXM6IFtdLAogICAgICBzY2thbkRpc3BsYXk6IFsKICAgICAgICB7CiAgICAgICAgICBsYWJlbDogIkRpc3BsYXkgUGF0aCB3aXRoIFNDS0FOIiwKICAgICAgICAgIGtleTogIlZBTElEIiwKICAgICAgICB9LAogICAgICBdLAogICAgICBjZW50cmVMaW5lczogWwogICAgICAgIHsKICAgICAgICAgIGxhYmVsOiAiRGlzcGxheSBOZXJ2ZXMiLAogICAgICAgICAga2V5OiAiY2VudHJlbGluZXMiLAogICAgICAgICAgZW5hYmxlZDogZmFsc2UKICAgICAgICB9CiAgICAgIF0sCiAgICAgIHN5c3RlbXM6IFtdLAogICAgICB0YXhvbkNvbm5lY3Rpdml0eTogW10sCiAgICAgIHBhdGh3YXlzTWF4SGVpZ2h0OiAxMDAwLAogICAgICBob3ZlclZpc2liaWxpdGllczogWwogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICAgIHsgdmFsdWU6IGZhbHNlIH0sCiAgICAgICAgeyB2YWx1ZTogZmFsc2UgfSwKICAgICAgICB7IHZhbHVlOiBmYWxzZSB9LAogICAgICBdLAogICAgICBpc0ZDOiBmYWxzZSwKICAgICAgaW5IZWxwOiBmYWxzZSwKICAgICAgY3VycmVudEJhY2tncm91bmQ6ICJ3aGl0ZSIsCiAgICAgIGF2YWlsYWJsZUJhY2tncm91bmQ6IFsid2hpdGUiLCAibGlnaHRza3libHVlIiwgImJsYWNrIl0sCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBmbGF0bWFwTWFya2VyOiBmbGF0bWFwTWFya2VyLAogICAgICB0b29sdGlwRW50cnk6IGNyZWF0ZVVuZmlsbGVkVG9vbHRpcERhdGEoKSwKICAgICAgY29ubmVjdGl2aXR5VG9vbHRpcFZpc2libGU6IGZhbHNlLAogICAgICByZXNvdXJjZUZvclRvb2x0aXA6IHVuZGVmaW5lZCwKICAgICAgZHJhd2VyT3BlbjogZmFsc2UsCiAgICAgIGNvbG91clJhZGlvOiB0cnVlLAogICAgICBvdXRsaW5lc1JhZGlvOiB0cnVlLAogICAgICBtaW5pbWFwUmVzaXplU2hvdzogZmFsc2UsCiAgICAgIG1pbmltYXBTbWFsbDogZmFsc2UsCiAgICAgIGN1cnJlbnRBY3RpdmU6ICIiLAogICAgICBjdXJyZW50SG92ZXI6ICIiLAogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBlbnRyeTogZnVuY3Rpb24oKSB7CiAgICAgIGlmICghdGhpcy5zdGF0ZSkgdGhpcy5jcmVhdGVGbGF0bWFwKCk7CiAgICB9LAogICAgaGVscE1vZGU6IGZ1bmN0aW9uKHZhbCkgewogICAgICB0aGlzLnNldEhlbHBNb2RlKHZhbCk7CiAgICB9LAogICAgc3RhdGU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24oc3RhdGUpIHsKICAgICAgICBpZiAodGhpcy5tYXBNYW5hZ2VyKSB7CiAgICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy90aGlzIGNvbXBvbmVudCBoYXMgbm90IGJlZW4gbW91bnRlZCB5ZXQKICAgICAgICAgIHRoaXMuc2V0U3RhdGVSZXF1aXJlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGRlZXA6IHRydWUKICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uKCkgewogICAgY29uc3QgZmxhdG1hcCA9IHJlcXVpcmUoIkBhYmktc29mdHdhcmUvZmxhdG1hcC12aWV3ZXIiKTsKICAgIHRoaXMudG9vbHRpcFdhaXQgPSBbXTsKICAgIHRoaXMudG9vbHRpcFdhaXQubGVuZ3RoID0gdGhpcy5ob3ZlclZpc2liaWxpdGllcy5sZW5ndGg7CiAgICB0aGlzLm1hcE1hbmFnZXIgPSBuZXcgZmxhdG1hcC5NYXBNYW5hZ2VyKHRoaXMuZmxhdG1hcEFQSSk7CiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzID0gbmV3IEZsYXRtYXBRdWVyaWVzKCk7CiAgICB0aGlzLmZsYXRtYXBRdWVyaWVzLmluaXRpYWxpc2UodGhpcy5mbGF0bWFwQVBJKTsKICAgIGlmICh0aGlzLnN0YXRlKSB7CiAgICAgIC8vU3RhdGUgaXMgc2V0IGFuZCByZXF1aXJlIHRvIHNldCB0aGUgc3RhdGUKICAgICAgaWYgKHRoaXMuc2V0U3RhdGVSZXF1aXJlZCkgewogICAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5zdGF0ZSk7CiAgICAgIH0KICAgIH0gZWxzZSBpZih0aGlzLnJlbmRlckF0TW91bnRlZCkgewogICAgICB0aGlzLmNyZWF0ZUZsYXRtYXAoKTsKICAgIH0KICB9Cn07Cg=="},{"version":3,"sources":["FlatmapVuer.vue"],"names":[],"mappings":";AA0WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"FlatmapVuer.vue","sourceRoot":"node_modules/@abi-software/flatmapvuer/src/components","sourcesContent":["\n\n\n\n\n\n\n"]}]}