{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataCollect\\dataCollectCompany\\dataSourceItem\\FieldsManage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataCollect\\dataCollectCompany\\dataSourceItem\\FieldsManage\\index.vue","mtime":1746730556257},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UvZGF0YVNoYXJlLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb3J0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50ZXN0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgZGlhbG9nTWl4aW4gZnJvbSAnQC9taXhpbnMvZGlhbG9nLmpzJzsKaW1wb3J0IHV0aWxzIGZyb20gJ0AvaG90ZW50LXVpLXV0aWwuanMnOwppbXBvcnQgZW51bURpY3REaWFsb2cgZnJvbSAnLi9FbnVtRGljdERpYWxvZy52dWUnOwppbXBvcnQgbXVsdGlEaWN0RGlhbG9nIGZyb20gJy4vTXVsdGlEaWN0RGlhbG9nLnZ1ZSc7CmltcG9ydCB7IGdldERpY3Rpb25hcnlCeUNvZGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnkuanMnOwppbXBvcnQgQVBJIGZyb20gJ0AvYXBpL2J1c2luZXNzL2RhdGFDb2xsZWN0Q29tcGFueSc7CmltcG9ydCB7IG1hcFN0YXRlIH0gZnJvbSAndnVleCc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnU291cmNlRmllbGRzTWFuYWdlJywKICBjb21wb25lbnRzOiB7CiAgICBlbnVtRGljdERpYWxvZzogZW51bURpY3REaWFsb2csCiAgICBtdWx0aURpY3REaWFsb2c6IG11bHRpRGljdERpYWxvZwogIH0sCiAgbWl4aW5zOiBbZGlhbG9nTWl4aW5dLAogIHByb3BzOiB7CiAgICBkYXRhOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIHt9OwogICAgICB9CiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHZhciBjaGVja2V5ID0gZnVuY3Rpb24gY2hlY2tleShydWxlLCB2YWx1ZSwgY2FsbGJhY2spIHsKICAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgIHJldHVybiBjYWxsYmFjayhuZXcgRXJyb3IoJ+Wtl+autee8lueggeS4jeiDveS4uuepuicpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoX3RoaXMuZm9ybS5hdHRyRGF0YS5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtLmNvZGUgPT09IHZhbHVlOwogICAgICAgIH0pLmxlbmd0aCA+IDEpIHsKICAgICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcign5a2X5q6157yW56CB5LiN6IO96YeN5aSNIScpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICByZXR1cm4gewogICAgICBmaWVsZHNSdWxlczogewogICAgICAgIG5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICflrZfmrrXlkI3np7DkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgY29kZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+Wtl+autee8lueggeS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9LCB7CiAgICAgICAgICBwYXR0ZXJuOiAvXlthLXpBLVpdW2EtekEtWjAtOV9dKiQvLAogICAgICAgICAgbWVzc2FnZTogJ+S7peWtl+avjeW8gOWktOeahOWtl+avjeOAgeaVsOWtl+OAgeS4i+WIkue6v+e7hOWQiCcsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9LCB7CiAgICAgICAgICB2YWxpZGF0b3I6IGNoZWNrZXksCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9LAogICAgICBmb3JtOiB7CiAgICAgICAgYXR0ckRhdGE6IFtdCiAgICAgIH0sCiAgICAgIGltcG9ydERhdGE6IHsKICAgICAgICB0YWJsZUlkOiAnJwogICAgICB9LAogICAgICBkaWFsb2dWaXNpYmxlRW51bTogZmFsc2UsCiAgICAgIGRpYWxvZ1Zpc2libGVNdWx0aTogZmFsc2UsCiAgICAgIGN1cnJlbnRSb3c6IG51bGwsCiAgICAgIGluZGV4OiBudWxsLAogICAgICB0YWJlbERhdGE6IG51bGwsCiAgICAgIHRhYmxlTG9hZGluZzogZmFsc2UsCiAgICAgIHVwbG9hZExvYWRpbmc6IGZhbHNlLAogICAgICB1cGxvYWRWaXNpYmxlOiBmYWxzZSwKICAgICAgbG9hZGluZzogZmFsc2UKICAgIH07CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICBkb2N1bWVudC5vbmtleWRvd24gPSBmdW5jdGlvbiAoKSB7CiAgICAgIGlmIChfdGhpczIuZm9ybS5hdHRyRGF0YSkgewogICAgICAgIHZhciBrZXkgPSB3aW5kb3cuZXZlbnQua2V5Q29kZTsKICAgICAgICBpZiAoa2V5ID09IDExMykgewogICAgICAgICAgLy8gPT0gODMgJiYgZXZlbnQuY3RybEtleQogICAgICAgICAgX3RoaXMyLmFkZEF0dHJSb3dzKCk7CiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgX3RoaXMyLiRyZWZzLmF0dHJUYWJsZVNjcm9sbGJhckhlaWdodC5ib2R5V3JhcHBlci5zY3JvbGxUb3AgPSBfdGhpczIuJHJlZnMuYXR0clRhYmxlU2Nyb2xsYmFySGVpZ2h0LmJvZHlXcmFwcGVyLnNjcm9sbEhlaWdodDsKICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IF9vYmplY3RTcHJlYWQoewogICAgYWN0aW9uVXJsOiBmdW5jdGlvbiBhY3Rpb25VcmwoXykgewogICAgICByZXR1cm4gIiIuY29uY2F0KHdpbmRvdy5jb250ZXh0LnBvcnRhbCwgIi9iaXovZGF0YUNvbGxlY3QvY2x1c3RlckZpZWxkL3YxL2ltcG9ydEZpbGUiKTsKICAgIH0KICB9LCBtYXBTdGF0ZSh7CiAgICBoZWFkZXJzOiBmdW5jdGlvbiBoZWFkZXJzKHN0YXRlKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiLmNvbmNhdChzdGF0ZS5sb2dpbi5jdXJyZW50VXNlci50b2tlbikKICAgICAgfTsKICAgIH0KICB9KSksCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHt9LAogIG1ldGhvZHM6IHsKICAgIGluaXREYXRhOiBmdW5jdGlvbiBpbml0RGF0YShkYXRhKSB7CiAgICAgIHRoaXMudGFiZWxEYXRhID0gZGF0YTsKICAgICAgdGhpcy5pbXBvcnREYXRhLnRhYmxlSWQgPSBkYXRhLmlkOwogICAgICB0aGlzLmdldEZpZWxkc0J5VGFibGUoKTsKICAgIH0sCiAgICBnZXRGaWVsZHNCeVRhYmxlOiBmdW5jdGlvbiBnZXRGaWVsZHNCeVRhYmxlKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciBfeWllbGQkQVBJJGdldEZpZWxkc0wsIGZpZWxkTGlzdDsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfdGhpczMudGFibGVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMTsKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gNDsKICAgICAgICAgICAgICByZXR1cm4gQVBJLmdldEZpZWxkc0xpc3QoX3RoaXMzLmRhdGEuaWQpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgX3lpZWxkJEFQSSRnZXRGaWVsZHNMID0gX2NvbnRleHQuc2VudDsKICAgICAgICAgICAgICBmaWVsZExpc3QgPSBfeWllbGQkQVBJJGdldEZpZWxkc0wuZmllbGRMaXN0OwogICAgICAgICAgICAgIC8vIGlmIChmaWVsZExpc3QgJiYgZmllbGRMaXN0Lmxlbmd0aCkgewogICAgICAgICAgICAgIC8vIHRoaXMuZm9ybS5hdHRyRGF0YSA9IGZpZWxkTGlzdDsKICAgICAgICAgICAgICBpZiAoZmllbGRMaXN0ICYmIGZpZWxkTGlzdC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIF90aGlzMy5mb3JtLmF0dHJEYXRhID0gZmllbGRMaXN0LmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5maWVsZFR5cGUgPT09ICcyJzsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgX3RoaXMzLmZvcm0uYXR0ckRhdGEuc29ydChmdW5jdGlvbiAoYSwgYikgewogICAgICAgICAgICAgICAgICByZXR1cm4gYS5zbiAtIGIuc247CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8gfQogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSA5OwogICAgICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbImNhdGNoIl0oMSk7CiAgICAgICAgICAgICAgX3RoaXMzLiRtZXNzYWdlLndhcm5pbmcoX2NvbnRleHQudDAgfHwgJ+i1hOa6kOmhueWtl+auteafpeivouWksei0pe+8gScpOwogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxMjsKICAgICAgICAgICAgICBfdGhpczMudGFibGVMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmZpbmlzaCgxMik7CiAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzEsIDksIDEyLCAxNV1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgZ2V0RGljdGlvbmFyeUJ5Q29kZTogZ2V0RGljdGlvbmFyeUJ5Q29kZSwKICAgIGNoYW5nZURpY3Q6IGZ1bmN0aW9uIGNoYW5nZURpY3QoZGF0YSwga2V5KSB7CiAgICAgIC8vIHRoaXMuY3VycmVudFJvdy5kaW1lbnNpb25JZCA9IGRhdGEuaWQ7CiAgICAgIC8vIHRoaXMuZm9ybS5hdHRyRGF0YS5zcGxpY2UodGhpcy5pbmRleCwgMSwgZGF0YSk7CiAgICAgIHRoaXMuY3VycmVudFJvdy5kaW1lbnNpb25JZCA9IGRhdGFba2V5XTsKICAgICAgdGhpcy5mb3JtLmF0dHJEYXRhLnNwbGljZSh0aGlzLmluZGV4LCAxLCB0aGlzLmN1cnJlbnRSb3cpOwogICAgfSwKICAgIC8vIOaWsOWinuWtl+autQogICAgYWRkQXR0clJvd3M6IGZ1bmN0aW9uIGFkZEF0dHJSb3dzKCkgewogICAgICB2YXIgbGFzdCA9IHRoaXMuZm9ybS5hdHRyRGF0YVt0aGlzLmZvcm0uYXR0ckRhdGEubGVuZ3RoIC0gMV07CiAgICAgIHZhciBzbiA9IGxhc3QgJiYgbGFzdC5zbiA/IGxhc3Quc24gKyAxIDogMTsKICAgICAgdmFyIHJvdyA9IHsKICAgICAgICB0YWJsZUlkOiB0aGlzLnRhYmVsRGF0YS5pZCwKICAgICAgICBjb2RlOiAnJywKICAgICAgICBuYW1lOiAnJywKICAgICAgICBkZXNjOiAnJywKICAgICAgICBmaWVsZFR5cGU6ICcyJywKICAgICAgICBpc0luaXRGaWxlZDogJ04nLAogICAgICAgIGlzUGs6ICcwJywKICAgICAgICBpc1JlcXVpcmVkOiAnMCcsCiAgICAgICAgLy8gVWlDb21Db2RlOiAnaW5wdXQnLAogICAgICAgIGRhdGFUeXBlOiAndmFyY2hhcicsCiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJywKICAgICAgICBmb3JtYXQ6ICcnLAogICAgICAgIGZpZWxkVmFsdWVUeXBlOiAnMScsCiAgICAgICAgZGltZW5zaW9uSWQ6ICcnLAogICAgICAgIHVuaXQ6ICcnLAogICAgICAgIGF0dHJMZW5ndGg6IDIwMCwKICAgICAgICBkZWNpbWFsTGVuOiAwLAogICAgICAgIGlzRW5jcnlwdDogJzAnLAogICAgICAgIGlzRWRpdDogJzAnLAogICAgICAgIGlzRGVzZW5zaXRpemU6ICcwJywKICAgICAgICBpbmRleDogdGhpcy5mb3JtLmF0dHJEYXRhLmxlbmd0aCArIDEKICAgICAgfTsKICAgICAgc24gPyByb3cuc24gPSBzbiA6IG51bGw7CiAgICAgIHRoaXMuZm9ybS5hdHRyRGF0YS5zcGxpY2UodGhpcy5mb3JtLmF0dHJEYXRhLmxlbmd0aCwgMCwgcm93KTsKICAgIH0sCiAgICBjaGFuZ2VGaWVsZFZhbHVlVHlwZTogZnVuY3Rpb24gY2hhbmdlRmllbGRWYWx1ZVR5cGUodmFsLCByb3csIGluZGV4KSB7CiAgICAgIHJvdy5kaW1lbnNpb25JZCA9ICcnOwogICAgICByb3cuZmllbGRWYWx1ZVR5cGUgPSB2YWw7CiAgICAgIHRoaXMuZm9ybS5hdHRyRGF0YS5zcGxpY2UoaW5kZXgsIDEsIHJvdyk7CiAgICB9LAogICAgLy8gVUnnsbvlnovliIfmjaLorr7nva7pu5jorqTlgLwKICAgIGNoYW5nZVVJVHlwZTogZnVuY3Rpb24gY2hhbmdlVUlUeXBlKHZhbCwgcm93LCBpbmRleCkgewogICAgICBpZiAoIXRoaXMuZGF0YS5kZXBsb3llZCAmJiAhcm93LmlkKSB7CiAgICAgICAgcm93LmRhdGFUeXBlID0gJ3ZhcmNoYXInOwogICAgICB9CiAgICAgIHJvdy5mb3JtYXQgPSAnJzsKICAgICAgcm93LmZpZWxkVmFsdWVUeXBlID0gJzEnOwogICAgICBpZiAodmFsID09PSAnZGF0ZScpIHsKICAgICAgICBpZiAoIXRoaXMuZGF0YS5kZXBsb3llZCAmJiAhcm93LmlkKSB7CiAgICAgICAgICByb3cuZGF0YVR5cGUgPSAnZGF0ZSc7IC8vIOWPkeW4g+WQjlVJ5ZKM5pWw5o2u57G75Z6L5LiN5YWz6IGUCiAgICAgICAgfQogICAgICAgIHJvdy5mb3JtYXQgPSAneXl5eS1NTS1kZCc7CiAgICAgIH0gZWxzZSBpZiAodmFsID09PSAnZGF0ZXRpbWUnKSB7CiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZGVwbG95ZWQgJiYgIXJvdy5pZCkgewogICAgICAgICAgcm93LmRhdGFUeXBlID0gJ2RhdGV0aW1lJzsgLy8g5Y+R5biD5ZCOVUnlkozmlbDmja7nsbvlnovkuI3lhbPogZQKICAgICAgICB9CiAgICAgICAgcm93LmZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tOnNzJzsKICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICdzZWxlY3QnIHx8IHZhbCA9PT0gJ2NoZWNrYm94JyB8fCB2YWwgPT09ICdyYWRpbycpIHsKICAgICAgICByb3cuZmllbGRWYWx1ZVR5cGUgPSAnMic7CiAgICAgIH0KICAgICAgdGhpcy5mb3JtLmF0dHJEYXRhLnNwbGljZShpbmRleCwgMSwgcm93KTsKICAgIH0sCiAgICAvLyDmlbDmja7nsbvlnovliIfmjaLorr7nva7pu5jorqTlgLwKICAgIGNoYW5nZURhdGFUeXBlOiBmdW5jdGlvbiBjaGFuZ2VEYXRhVHlwZSh2YWwsIHJvdywgaW5kZXgpIHsKICAgICAgcm93LmF0dHJMZW5ndGggPSAwOwogICAgICByb3cuZGVjaW1hbExlbiA9IDA7CiAgICAgIHJvdy5mb3JtYXQgPSAnJzsKICAgICAgcm93LmZpZWxkVmFsdWVUeXBlID0gJzEnOwogICAgICByb3cuZGltZW5zaW9uSWQgPSAnJzsKICAgICAgaWYgKHZhbCA9PT0gJ2RhdGV0aW1lJykgewogICAgICAgIHJvdy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbTpzcyc7CiAgICAgIH0gZWxzZSBpZiAodmFsID09PSAnZGF0ZScpIHsKICAgICAgICByb3cuZm9ybWF0ID0gJ3l5eXktTU0tZGQnOwogICAgICB9IGVsc2UgaWYgKHZhbCA9PT0gJ3ZhcmNoYXInKSB7CiAgICAgICAgcm93LmF0dHJMZW5ndGggPSAyMDA7CiAgICAgIH0gZWxzZSBpZiAodmFsID09PSAnbnVtYmVyJykgewogICAgICAgIHJvdy5hdHRyTGVuZ3RoID0gMTA7CiAgICAgICAgcm93LmRlY2ltYWxMZW4gPSAyOwogICAgICB9CiAgICAgIHRoaXMuZm9ybS5hdHRyRGF0YS5zcGxpY2UoaW5kZXgsIDEsIHJvdyk7CiAgICB9LAogICAgLy8g6YCJ5oup5a2X5YW4CiAgICBoYW5kbGVTZWFyY2hEaWN0OiBmdW5jdGlvbiBoYW5kbGVTZWFyY2hEaWN0KHJvdywgJGluZGV4KSB7CiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJvdzsKICAgICAgdGhpcy5pbmRleCA9ICRpbmRleDsKICAgICAgaWYgKHJvdy5maWVsZFZhbHVlVHlwZSA9PT0gJzInKSB7CiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlRW51bSA9IHRydWU7CiAgICAgIH0gZWxzZSBpZiAocm93LmZpZWxkVmFsdWVUeXBlID09PSAnMycpIHsKICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGVNdWx0aSA9IHRydWU7CiAgICAgIH0KICAgIH0sCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShwYXJhbSwgZGVwbG95ZWQpIHsKICAgICAgaWYgKGRlcGxveWVkICYmIHBhcmFtLnJvdy5pZCkgcmV0dXJuOwogICAgICB0aGlzLmhhbmRsZUNvbW1hbmQocGFyYW0pOwogICAgfSwKICAgIGhhbmRsZUNvbW1hbmQ6IGZ1bmN0aW9uIGhhbmRsZUNvbW1hbmQocGFyYW0pIHsKICAgICAgc3dpdGNoIChwYXJhbS5jb21tYW5kKSB7CiAgICAgICAgY2FzZSAnZGVsJzoKICAgICAgICAgIHRoaXMuZGVsZXRlQXR0clJvd3MocGFyYW0ucm93LCBwYXJhbS5pbmRleCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICd1cCc6CiAgICAgICAgICB0aGlzLmF0dHJVcChwYXJhbS5yb3csIHBhcmFtLmluZGV4KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2Rvd24nOgogICAgICAgICAgdGhpcy5hdHRyRG93bihwYXJhbS5yb3csIHBhcmFtLmluZGV4KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgfSwKICAgIC8vIOWIoOmZpOWtl+autSDkvKrliKDpmaQg6K6+572u5a2X5q61IHN0YXR1cyDlgLwgaGlkZQogICAgaXNEZWw6IGZ1bmN0aW9uIGlzRGVsKHJvdywgaW5kZXgpIHt9LAogICAgLy8g5Yig6Zmk5a2X5q61CiAgICBkZWxldGVBdHRyUm93czogZnVuY3Rpb24gZGVsZXRlQXR0clJvd3Mocm93LCBpbmRleCkgewogICAgICBpZiAocm93LmlzSW5pdEZpbGVkID09PSAnWScpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivpeWtl+auteS4uuWIneWni+Wtl+aute+8jOS4jeWPr+WIoOmZpO+8gScpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmZvcm0uYXR0ckRhdGEuc3BsaWNlKGluZGV4LCAxKTsKCiAgICAgIC8vIGlmICghcm93LmlkKSB7CiAgICAgIC8vICAgdGhpcy5mb3JtLmF0dHJEYXRhLnNwbGljZShpbmRleCwgMSk7CiAgICAgIC8vICAgcmV0dXJuOwogICAgICAvLyB9CgogICAgICAvLyB0aGlzLiRjb25maXJtKGDmmK/lkKbliKDpmaTlrZfmrrXvvIgke3Jvdy5uYW1lfe+8iT9gLCAn5o+Q56S6JywgewogICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgLy8gICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgLy8gICB0eXBlOiAnd2FybmluZycsCiAgICAgIC8vIH0pLnRoZW4oYXN5bmMgKCkgPT4gewogICAgICAvLyAgIGF3YWl0IEFQSS5kZWxGaWVsZHMocm93LmlkKTsKICAgICAgLy8gICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoJ+WIoOmZpOaIkOWKnycpOwogICAgICAvLyAgIHRoaXMuZm9ybS5hdHRyRGF0YS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAvLyB9KS5jYXRjaCgoKSA9PiB7CiAgICAgIC8vIH0pOwogICAgfSwKICAgIGF0dHJVcDogZnVuY3Rpb24gYXR0clVwKHJvdywgaW5kZXgpIHsKICAgICAgdGhpcy5mb3JtLmF0dHJEYXRhW2luZGV4XS5pbmRleCA9IHRoaXMuZm9ybS5hdHRyRGF0YVtpbmRleF0uaW5kZXggLSAxOwogICAgICB0aGlzLmZvcm0uYXR0ckRhdGFbaW5kZXhdLnNuID0gdGhpcy5mb3JtLmF0dHJEYXRhW2luZGV4IC0gMV0uc247CiAgICAgIHRoaXMuZm9ybS5hdHRyRGF0YVtpbmRleCAtIDFdLmluZGV4ID0gdGhpcy5mb3JtLmF0dHJEYXRhW2luZGV4IC0gMV0uaW5kZXggKyAxOwogICAgICB0aGlzLmZvcm0uYXR0ckRhdGFbaW5kZXggLSAxXS5zbiA9IHRoaXMuZm9ybS5hdHRyRGF0YVtpbmRleCAtIDFdLnNuICsgMTsKICAgICAgdGhpcy5mb3JtLmF0dHJEYXRhID0gdXRpbHMuYXJyYXlNb3ZlKHRoaXMuZm9ybS5hdHRyRGF0YSwgcm93LCAndXAnKTsKICAgIH0sCiAgICBhdHRyRG93bjogZnVuY3Rpb24gYXR0ckRvd24ocm93LCBpbmRleCkgewogICAgICB0aGlzLmZvcm0uYXR0ckRhdGFbaW5kZXhdLmluZGV4ID0gdGhpcy5mb3JtLmF0dHJEYXRhW2luZGV4XS5pbmRleCArIDE7CiAgICAgIHRoaXMuZm9ybS5hdHRyRGF0YVtpbmRleF0uc24gPSB0aGlzLmZvcm0uYXR0ckRhdGFbaW5kZXhdLnNuICsgMTsKICAgICAgdGhpcy5mb3JtLmF0dHJEYXRhW2luZGV4ICsgMV0uaW5kZXggPSB0aGlzLmZvcm0uYXR0ckRhdGFbaW5kZXggKyAxXS5pbmRleCAtIDE7CiAgICAgIHRoaXMuZm9ybS5hdHRyRGF0YVtpbmRleCArIDFdLnNuID0gdGhpcy5mb3JtLmF0dHJEYXRhW2luZGV4XS5zbiAtIDE7CiAgICAgIHRoaXMuZm9ybS5hdHRyRGF0YSA9IHV0aWxzLmFycmF5TW92ZSh0aGlzLmZvcm0uYXR0ckRhdGEsIHJvdywgJ2Rvd24nKTsKICAgIH0sCiAgICBvbkNhbmNlbDogZnVuY3Rpb24gb25DYW5jZWwoKSB7CiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlOwogICAgICB0aGlzLmZvcm0uYXR0ckRhdGEgPSBbXTsKICAgIH0sCiAgICBvbkNvbmZpcm06IGZ1bmN0aW9uIG9uQ29uZmlybSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHRoaXMuJHJlZnMuZm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKHZhbGlkLCBvYmplY3QpIHsKICAgICAgICAgIHZhciBwYXJhbXM7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDI0OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF90aGlzNC5sb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHBhcmFtcyA9IHsKICAgICAgICAgICAgICAgICAgZmllbGRMaXN0OiBfdGhpczQuZm9ybS5hdHRyRGF0YSwKICAgICAgICAgICAgICAgICAgdGFibGU6IF90aGlzNC5kYXRhCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAzOwogICAgICAgICAgICAgICAgaWYgKCFfdGhpczQuZGF0YS5kZXBsb3llZCkgewogICAgICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSA3OwogICAgICAgICAgICAgICAgcmV0dXJuIEFQSS5zYXZlT3JVcGRhdGVGaWVsZHMocGFyYW1zLmZpZWxkTGlzdCk7CiAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxMTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMTE7CiAgICAgICAgICAgICAgICByZXR1cm4gQVBJLnNhdmVGaWVsZHMocGFyYW1zKTsKICAgICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICAgICAgX3RoaXM0LiRtZXNzYWdlLnN1Y2Nlc3MoJ+Wtl+auteS/neWtmOaIkOWKnycpOwogICAgICAgICAgICAgICAgX3RoaXM0LnZpc2libGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIF90aGlzNC4kZW1pdCgnY29uZmlybScpOwogICAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxOTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDE2OwogICAgICAgICAgICAgICAgX2NvbnRleHQyLnQwID0gX2NvbnRleHQyWyJjYXRjaCJdKDMpOwogICAgICAgICAgICAgICAgX3RoaXM0LiRtZXNzYWdlLndhcm5pbmcoX2NvbnRleHQyLnQwIHx8ICfmk43kvZzlpLHotKUnKTsKICAgICAgICAgICAgICBjYXNlIDE5OgogICAgICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAxOTsKICAgICAgICAgICAgICAgIF90aGlzNC5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmZpbmlzaCgxOSk7CiAgICAgICAgICAgICAgY2FzZSAyMjoKICAgICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjY7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDI0OgogICAgICAgICAgICAgICAgX3RoaXM0LiRtZXNzYWdlLndhcm5pbmcoIlx1NjcwOSIuY29uY2F0KE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoLCAiXHU0RTJBXHU1QjU3XHU2QkI1XHU2NzJBXHU5MDFBXHU4RkM3XHU2ODIxXHU5QThDXHVGRjBDXHU4QkY3XHU2QjYzXHU3ODZFXHU1ODZCXHU1MTk5XHU4ODY4XHU1MzU1XHUzMDAyIikpOwogICAgICAgICAgICAgICAgX3RoaXM0LmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICBjYXNlIDI2OgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTIsIG51bGwsIFtbMywgMTYsIDE5LCAyMl1dKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7CiAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LAogICAgZG93bmxvYWQ6IGZ1bmN0aW9uIGRvd25sb2FkKCkgewogICAgICB2YXIgZmlsZU5hbWUgPSAn5pWw5o2u5o+Q5L6b5pa5LeaVsOaNruWtl+autea4heWNlS54bHN4JzsKICAgICAgLy8gY29uc3QgZmlsZSA9IGAuL2ZpbGUvZG93bmxvYWQvJHtmaWxlTmFtZX1gOwogICAgICB2YXIgZmlsZSA9IHdpbmRvdy5jb250ZXh0LmRvd25sb2FkICsgZmlsZU5hbWU7CiAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICBhLmhyZWYgPSBmaWxlOwogICAgICBhLmRvd25sb2FkID0gZmlsZU5hbWU7IC8vIOiuvue9ruS4i+i9veaWh+S7tuaWh+S7tuWQjQogICAgICBhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7CiAgICAgIGEuY2xpY2soKTsKICAgICAgYS5yZW1vdmUoKTsKICAgIH0sCiAgICAvLyAg5a+85YWl5paH5Lu25LiK5Lyg5YmNCiAgICBiZWZvcmVVcGxvYWQ6IGZ1bmN0aW9uIGJlZm9yZVVwbG9hZChmaWxlKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLnVwbG9hZFZpc2libGUgPSBmYWxzZTsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICBfdGhpczUudXBsb2FkTG9hZGluZyA9IHRydWU7CiAgICAgICAgdmFyIHNpemUgPSBmaWxlLnNpemUsCiAgICAgICAgICBuYW1lID0gZmlsZS5uYW1lOwogICAgICAgIF90aGlzNS4kY29uZmlybSgiXHU4QkY3XHU3ODZFXHU4QkE0XHU2NjJGXHU1NDI2XHU1QkZDXHU1MTY1IFx1MjAxQyIuY29uY2F0KG5hbWUsICJcdTIwMUQgXHVGRjFGIiksICfmj5DnpLonLCB7CiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruiupCcsCiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKF8pIHsKICAgICAgICAgIHZhciBwYXNzZWRPck5vdCA9IHRydWU7IC8vIOaYr+WQpumAmui/h+mqjOivgQogICAgICAgICAgdmFyIHR5cGVSZWd1bGFyID0gL1wuKHhsc3x4bHN4KSQvaTsKICAgICAgICAgIHZhciB2ZXJpZmljYXRpb24gPSBbewogICAgICAgICAgICBjb25kaXRpb246ICF0eXBlUmVndWxhci50ZXN0KG5hbWUpLAogICAgICAgICAgICByZXN1bHQ6IGZ1bmN0aW9uIHJlc3VsdCgpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM1LiRtZXNzYWdlLmVycm9yKCflj6rog73kuIrkvKB4bHPmiJZ4bHN45paH5Lu257G75Z6LJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH1dOwogICAgICAgICAgdmVyaWZpY2F0aW9uLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgaWYgKGl0ZW0uY29uZGl0aW9uKSB7CiAgICAgICAgICAgICAgaXRlbS5yZXN1bHQoKTsKICAgICAgICAgICAgICBwYXNzZWRPck5vdCA9IGZhbHNlOwogICAgICAgICAgICAgIF90aGlzNS51cGxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgcGFzc2VkT3JOb3QgPyByZXNvbHZlKCkgOiByZWplY3QoKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgICAgcmVqZWN0KCk7CiAgICAgICAgICBfdGhpczUudXBsb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLndhcm5pbmcoJ+W3suWPlua2iOS4iuS8oCcpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlr7zlhaXmlofku7bkuIrkvKDmiJDlip8KICAgIGhhbmRsZVN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVN1Y2Nlc3MocmVzKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBpZiAoIXJlcy5zdGF0ZSkgewogICAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSA3OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5zdWNjZXNzKCflr7zlhaXmiJDlip8nKTsKICAgICAgICAgICAgICBfdGhpczYudXBsb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gNTsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM2LmdldEZpZWxkc0J5VGFibGUoKTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gODsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5lcnJvcihyZXMubWVzc2FnZSk7CiAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOWvvOWFpeaWh+S7tuS4iuS8oOWksei0pQogICAgaGFuZGxlRXJyb3I6IGZ1bmN0aW9uIGhhbmRsZUVycm9yKCkgewogICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCflr7zlhaXlpLHotKXvvIzor7fph43or5UnKTsKICAgICAgdGhpcy51cGxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICB9CiAgfQp9Ow=="},null]}