{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Manage\\saftyDanger\\components\\CmgtSaftyDangerCheckrecordFormDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Manage\\saftyDanger\\components\\CmgtSaftyDangerCheckrecordFormDialog.vue","mtime":1731062409394},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\babel.config.js","mtime":1725536844935},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9ienpnai1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgQ21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmRBcGkgZnJvbSAnQC92aWV3cy9NYW5hZ2Uvc2FmdHlEYW5nZXIvYXBpL0NtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpJzsKaW1wb3J0IGRpY3RDb250cmFjdHMgZnJvbSAnQC9jb21wb25lbnRzL2RpY3QvRGljdFNlbGVjdFV0aWxzLmpzJzsKaW1wb3J0IENtZ3RTYWZ0eURhbmdlckNoZWNrcGxhbkFwaSBmcm9tICdAL3ZpZXdzL01hbmFnZS9zYWZ0eURhbmdlci9hcGkvQ21ndFNhZnR5RGFuZ2VyQ2hlY2twbGFuQXBpJzsKaW1wb3J0IHByb2dyYW1BcGkgZnJvbSAnQC92aWV3cy9NYW5hZ2Uvc2FmdHlEYW5nZXIvYXBpL3Byb2dyYW1BcGknOwppbXBvcnQgbmluZUxpdHRsZVBsYWNlQXBpIGZyb20gJ0Avdmlld3MvTWFuYWdlL3NhZnR5RGFuZ2VyL2FwaS9uaW5lTGl0dGxlUGxhY2VBcGknOwppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0NtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkRm9ybURpYWxvZycsCiAgY29tcG9uZW50czoge30sCiAgcHJvcHM6IHt9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoewogICAgICBhY3RpdmVDb2xsYXBzZURpYTogJzEnLAogICAgICByZWFkVHlwZTogZmFsc2UsCiAgICAgIHRpdGxlOiAn5paw5aKeJywKICAgICAgc2hvd0Zvcm1EaWE6IGZhbHNlLAogICAgICBkd2Rpc2FibGVkOiBmYWxzZSwKICAgICAgYWN0aXZlQ29sbGFwc2VOYW1lczogWycxJywgJzInLCAnMyddLAogICAgICBwYXJhbXM6IHsKICAgICAgICBjaGVja3NjaGVtZUlkOiBudWxsLAogICAgICAgIGNoZWNrWWVhck1vbnRoOiBudWxsLAogICAgICAgIHVuaXRUeXBlOiBudWxsLAogICAgICAgIHVuaXROYW1lOiBudWxsLAogICAgICAgIHVuaXRJZDogbnVsbCwKICAgICAgICB1bml0QWRkcmVzczogbnVsbCwKICAgICAgICByZWNvcmROYW1lOiBudWxsLAogICAgICAgIHVuaXRVc2VycGhvbmU6IG51bGwsCiAgICAgICAgaGlkZGVuRGFuZ2VyOiAnMicsCiAgICAgICAgY2hlY2tEYXRlOiBudWxsLAogICAgICAgIGNoZWNrQ29udGVudDogbnVsbCwKICAgICAgICBsZWFkVXNlcm5hbWU6IG51bGwsCiAgICAgICAgY2hlY2tVc2VybmFtZTogbnVsbCwKICAgICAgICAvLyBzdGF0dXM6IG51bGwsCiAgICAgICAgcmVmb3JtVXNlcm5hbWU6IG51bGwsCiAgICAgICAgcmVmb3JtVW5pdG5hbWU6IG51bGwsCiAgICAgICAgbGF0ZXN0VGltZUxpbWl0OiBudWxsLAogICAgICAgIGxhdGVzdFJldmlld0RhdGU6IG51bGwsCiAgICAgICAgY29tcGxldGVEYXRlOiBudWxsLAogICAgICAgIHJlZm9ybVJlcXVpcmU6IG51bGwsCiAgICAgICAgdW5pdFVzZXJuYW1lOiBudWxsLAogICAgICAgIGNvbnRyb2xNZW1vOiBudWxsLAogICAgICAgIC8vIHJlZm9ybUNvbnRlbnQ6IG51bGwsCiAgICAgICAgZGV0YWlsOiBbXQogICAgICB9LAogICAgICBydWxlczogewogICAgICAgIGNoZWNrRGF0ZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+makOaCo+aOkuafpeWPkeeOsOaXtumXtOiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBsYXRlc3RUaW1lTGltaXQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogZmFsc2UsCiAgICAgICAgICBtZXNzYWdlOiAn5pyA6L+f5pW05pS55pyf6ZmQKOWkqSnkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgdHlwZXM6IFtdLAogICAgICB1bml0czogW10sCiAgICAgIHNjaGVtZUxpc3Q6IFtdLAogICAgICBpc0ZjOiBmYWxzZSwKICAgICAgaXNBZGQ6IHRydWUsCiAgICAgIGRpc2FibGVkRmM6IGZhbHNlLAogICAgICBkaWFsb2dJbWFnZVVybDogJycsCiAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLAogICAgICBkaXNhYmxlZDogZmFsc2UsCiAgICAgIHVwbG9hZFVybDogd2luZG93LmNvbnRleHQucG9ydGFsICsgJy9maWxlL3YxL3VwbG9hZEZpbGVGb3JDb25maWcnLAogICAgICAvLyDmnI3liqHlmajkuIrkvKDlnLDlnYAKICAgICAgcHJldmlld1VybDogd2luZG93LmNvbnRleHQucG9ydGFsICsgJy9maWxlL29ubGluZVByZXZpZXdDb250cm9sbGVyL3YxL2dldEZpbGVCeUlkXycsCiAgICAgIHVuaXREYXRhOiBbXQogICAgfSwgInNjaGVtZUxpc3QiLCBbXSksICJhcXlobHhMaXN0IiwgW10pLCAieWh6dExpc3QiLCBbXSksICJzaG93RGV0YWlsZUxpc3QiLCBmYWxzZSksICJkZXRhaWxMaXN0RnJvbSIsIHsKICAgICAgY2hlY2tSZWNvcmRJZDogbnVsbCwKICAgICAgdW5pdElkOiBudWxsLAogICAgICBncmVhdERhbmdlcjogJzInLAogICAgICBkYW5nZXJUeXBlOiBudWxsLAogICAgICByZWZvcm1JbWdVcmxBcnJheTogW10sCiAgICAgIGltZ1VybEFycmF5OiBbXSwKICAgICAgY2hlY2tEYXRlOiBudWxsLAogICAgICBkYW5nZXJDb250ZW50OiBudWxsLAogICAgICByZWZvcm1TdWdndWVzdDogbnVsbCwKICAgICAgcmVmZXJlbmNlOiBudWxsLAogICAgICBpZDogbnVsbAogICAgfSksICJkZXRhaWxUaXRsZSIsICfmlrDlop7lronlhajmo4Dmn6XorrDlvZUnKSwgInJ1bGVzRGV0YWlsIiwgewogICAgICBkYW5nZXJUeXBlOiBbewogICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgIG1lc3NhZ2U6ICfpmpDmgqPnsbvlnovkuI3og73kuLrnqbonLAogICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgIH1dLAogICAgICBncmVhdERhbmdlcjogW3sKICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICBtZXNzYWdlOiAn5piv5ZCm5piv6YeN5aSn6ZqQ5oKj5LiN6IO95Li656m6JywKICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICB9XSwKICAgICAgZGFuZ2VyQ29udGVudDogW3sKICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICBtZXNzYWdlOiAn6ZqQ5oKj5YaF5a655LiN6IO95Li656m6JywKICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgfV0sCiAgICAgIHJlZm9ybVN1Z2d1ZXN0OiBbewogICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgIG1lc3NhZ2U6ICfmlbTmlLnmjqrmlr3lu7rorq7kuI3og73kuLrnqbonLAogICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICB9XQogICAgfSksICJhY3RpdmVTdGVwIiwgMCksICJpc0RhbmdlciIsIGZhbHNlKTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmdyZWF0RGFuZ2VyTGlzdCA9IGRpY3RDb250cmFjdHMuZ2V0RGljdEl0ZW1zRnJvbUNhY2hlKCd0eS1zZicpOwogICAgdGhpcy5hcXlobHhMaXN0ID0gZGljdENvbnRyYWN0cy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ2NtZ3RfYXF5aGx4Jyk7CiAgICB0aGlzLmR3bHhMaXN0ID0gZGljdENvbnRyYWN0cy5nZXREaWN0SXRlbXNGcm9tQ2FjaGUoJ3poZ2wtZHdseCcpOwogICAgdGhpcy55aHp0TGlzdCA9IGRpY3RDb250cmFjdHMuZ2V0RGljdEl0ZW1zRnJvbUNhY2hlKCd5aHp0Jyk7CiAgICB0aGlzLnloenRMaXN0LnNwbGljZSg0LCAxKTsKICAgIHRoaXMuZ2V0U2NoZW1lKCk7CiAgICB0aGlzLmdldFVuaXQoKTsKICAgIC8vIENtZ3RTYWZ0eURhbmdlckNoZWNrcGxhbkFwaS5sb2FkQWxsVW5pdChyZXMgPT4gewogICAgLy8gCXRoaXMudW5pdHMgPSByZXMKICAgIC8vIH0pCiAgfSwKICBjb21wdXRlZDogbWFwU3RhdGUoewogICAgaGVhZGVyOiBmdW5jdGlvbiBoZWFkZXIoc3RhdGUpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIuY29uY2F0KHN0YXRlLmxvZ2luLmN1cnJlbnRVc2VyLnRva2VuKQogICAgICB9OwogICAgfQogIH0pLAogIG1ldGhvZHM6IF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eShfZGVmaW5lUHJvcGVydHkoX2RlZmluZVByb3BlcnR5KF9kZWZpbmVQcm9wZXJ0eSh7CiAgICBoaWRkZW5EYW5nZXJDaGFuZ2U6IGZ1bmN0aW9uIGhpZGRlbkRhbmdlckNoYW5nZShlKSB7CiAgICAgIHRoaXMucGFyYW1zLmhpZGRlbkRhbmdlciA9IGUgPyAnMScgOiAnMic7CiAgICB9LAogICAgLy8g5a2X5YW46L2s5LmJCiAgICBkaWN0VHJhbnNsYXRpb246IGZ1bmN0aW9uIGRpY3RUcmFuc2xhdGlvbihkaWN0TGlzdCwgdmFsdWUsIGRpY3RWYWx1ZSwgZGljdExhYmVsKSB7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGljdExpc3QubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAoZGljdExpc3RbaV1bZGljdFZhbHVlXSA9PT0gdmFsdWUpIHsKICAgICAgICAgIHJldHVybiBkaWN0TGlzdFtpXVtkaWN0TGFiZWxdOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIERhbmdlclVuaXRJZDogZnVuY3Rpb24gRGFuZ2VyVW5pdElkKGlkKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpLmNtZ3RTYWZ0eURhbmdlclVuaXRJZChpZCwgZnVuY3Rpb24gKHJlcykgewogICAgICAgIGNvbnNvbGUubG9nKHJlcyk7CiAgICAgICAgX3RoaXMucGFyYW1zLnVuaXRBZGRyZXNzID0gcmVzLnVuaXRBZGRyZXNzOwogICAgICAgIF90aGlzLnBhcmFtcy51bml0VXNlcm5hbWUgPSByZXMubmFtZTsKICAgICAgICBfdGhpcy5wYXJhbXMudW5pdFVzZXJwaG9uZSA9IHJlcy5waG9uZTsKICAgICAgICBfdGhpcy5wYXJhbXMudW5pdFR5cGUgPSByZXMudHlwZTsKICAgICAgfSk7CiAgICB9LAogICAgLy8KICAgIHVuaXRJZElucHV0OiBmdW5jdGlvbiB1bml0SWRJbnB1dCh2YWwpIHsKICAgICAgdGhpcy5EYW5nZXJVbml0SWQodmFsKTsKICAgIH0sCiAgICAvL+mAieaLqeajgOafpeaWueahiOWQjuiHquWKqOWhq+WFheWtl+auteajgOafpeW5tOW6pgogICAgQ2hlY2tzY2hlbWVJZDogZnVuY3Rpb24gQ2hlY2tzY2hlbWVJZChpZCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgLy8gY29uc29sZS5sb2coaWQpCiAgICAgIENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpLmNtZ3RTYWZ0eURhbmdlckNoZWNrc2NoZW1lSWQoaWQsIGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXMpCiAgICAgICAgX3RoaXMyLnBhcmFtcy5jaGVja1llYXJNb250aCA9IHJlcy5jaGVja1llYXJNb250aDsKICAgICAgfSk7CiAgICB9LAogICAgLy/pgInmi6nmo4Dmn6XmlrnmoYjlkI7oh6rliqjloavlhYXlrZfmrrXmo4Dmn6XlubTluqYKICAgIGNoZWNrc2NoZW1lSWRJbnB1dDogZnVuY3Rpb24gY2hlY2tzY2hlbWVJZElucHV0KHZhbCkgewogICAgICB0aGlzLkNoZWNrc2NoZW1lSWQodmFsKTsKICAgIH0sCiAgICAvL+acgOi/n+aVtOaUueacn+mZkAogICAgbGF0ZXN0VGltZUlucHV0OiBmdW5jdGlvbiBsYXRlc3RUaW1lSW5wdXQoKSB7CiAgICAgIGlmICh0aGlzLnBhcmFtcy5sYXRlc3RUaW1lTGltaXQgJiYgdGhpcy5wYXJhbXMuY2hlY2tEYXRlKSB7CiAgICAgICAgdGhpcy5wYXJhbXMubGF0ZXN0UmV2aWV3RGF0ZSA9IHRoaXMuZGF5anModGhpcy5wYXJhbXMuY2hlY2tEYXRlKS5hZGQodGhpcy5wYXJhbXMubGF0ZXN0VGltZUxpbWl0LCAnZGF5JykuZm9ybWF0KCdZWVlZLU1NLUREJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5wYXJhbXMubGF0ZXN0UmV2aWV3RGF0ZSA9IG51bGw7CiAgICAgIH0KICAgIH0sCiAgICAvL+iOt+WPluWNleS9jQogICAgZ2V0VW5pdDogZnVuY3Rpb24gZ2V0VW5pdCgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIG5pbmVMaXR0bGVQbGFjZUFwaS5sb2FkQ21ndFNhZnR5RGFuZ2VyVW5pdCh7CiAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgIHBhZ2VTaXplOiAtMSwKICAgICAgICAgIHBhZ2U6IDEKICAgICAgICB9CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMy50b3RhbCA9IHJlcy5kYXRhLnRvdGFsOwogICAgICAgIF90aGlzMy51bml0RGF0YSA9IHJlcy5kYXRhLnJvd3M7CiAgICAgIH0pOwogICAgfSwKICAgIGdldFNjaGVtZTogZnVuY3Rpb24gZ2V0U2NoZW1lKCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgcHJvZ3JhbUFwaS5sb2FkQ21ndFNhZnR5RGFuZ2VyVW5pdCh7CiAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgIHBhZ2VTaXplOiAtMSwKICAgICAgICAgIHBhZ2U6IDEKICAgICAgICB9CiAgICAgIH0sIGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczQudG90YWwgPSByZXMudG90YWw7CiAgICAgICAgX3RoaXM0LnNjaGVtZUxpc3QgPSByZXMucm93czsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlVGFyZ2V0OiBmdW5jdGlvbiBoYW5kbGVUYXJnZXQoaXRlbSkgewogICAgICB2YXIgYXJyID0gdGhpcy51bml0RGF0YS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsKICAgICAgICByZXR1cm4gZS5pZCA9PSBpdGVtOwogICAgICB9KTsKICAgICAgdGhpcy5wYXJhbXMudW5pdE5hbWUgPSBhcnJbMF0udW5pdE5hbWU7CiAgICB9LAogICAgaGFuZGxlQXZhdGFyU3VjY2VzczogZnVuY3Rpb24gaGFuZGxlQXZhdGFyU3VjY2VzcyhyZXMsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIGlmIChyZXMuc3VjY2VzcykgewogICAgICAgIHZhciBhcnIgPSBbXTsKICAgICAgICBhcnIucHVzaChyZXMuZmlsZUlkKTsKICAgICAgICB0aGlzLmRldGFpbExpc3RGcm9tLmltZ1VybEFycmF5ID0gdGhpcy5kZXRhaWxMaXN0RnJvbS5pbWdVcmxBcnJheS5jb25jYXQoYXJyKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIrkvKDmlofku7blpLHotKXvvIEnKTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZUF2YXRhclN1Y2Nlc3MxOiBmdW5jdGlvbiBoYW5kbGVBdmF0YXJTdWNjZXNzMShyZXMsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIGlmIChyZXMuc3VjY2VzcykgewogICAgICAgIHZhciBhcnIgPSBbXTsKICAgICAgICBhcnIucHVzaChyZXMuZmlsZUlkKTsKICAgICAgICB0aGlzLmRldGFpbExpc3RGcm9tLnJlZm9ybUltZ1VybEFycmF5ID0gdGhpcy5kZXRhaWxMaXN0RnJvbS5yZWZvcm1JbWdVcmxBcnJheS5jb25jYXQoYXJyKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIrkvKDmlofku7blpLHotKXvvIEnKTsKICAgICAgfQogICAgfSwKICAgIGJlZm9yZUF2YXRhclVwbG9hZDogZnVuY3Rpb24gYmVmb3JlQXZhdGFyVXBsb2FkKGZpbGUpIHsKICAgICAgY29uc29sZS5sb2coZmlsZSk7CiAgICAgIHZhciBpc0pQRyA9IGZpbGUudHlwZSA9PT0gJ2ltYWdlL2pwZWcnIHx8IGZpbGUudHlwZSA9PT0gJ2ltYWdlL3BuZycgfHwgZmlsZS50eXBlID09PSAnaW1hZ2UvanBnJzsKICAgICAgdmFyIGlzTHQxTSA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDwgMTA7CiAgICAgIGlmICghaXNKUEcpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIrkvKDlm77niYflj6rog73mmK8gSlBHIOagvOW8jyEnKTsKICAgICAgfQogICAgICBpZiAoIWlzTHQxTSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+S4iuS8oOWbvueJh+Wkp+Wwj+S4jeiDvei2hei/hyAxTUIhJyk7CiAgICAgIH0KICAgICAgcmV0dXJuIGlzSlBHICYmIGlzTHQxTTsKICAgIH0sCiAgICBhZGRSZWNvcmQ6IGZ1bmN0aW9uIGFkZFJlY29yZChyb3csIGR3KSB7CiAgICAgIHRoaXMucGFyYW1zLnJlY2lwaWVudCA9IHJvdy5yZWNpcGllbnQ7CiAgICAgIHRoaXMucGFyYW1zLmxvY2F0aW9uID0gZHcuYWRkcmVzczsKICAgICAgdGhpcy5wYXJhbXMuY2hlY2twbGFuSWQgPSByb3cuaWQ7CiAgICAgIHRoaXMuZHdkaXNhYmxlZCA9IHRydWU7CgogICAgICAvLyB0aGlzLnBhcmFtcy5zdGF0dXMgPSAnMScgLy8g5paw5aKeCiAgICAgIHRoaXMuc2hvd0Zvcm1EaWEgPSB0cnVlOwogICAgfSwKICAgIGFkZDogZnVuY3Rpb24gYWRkKCkgewogICAgICB0aGlzLnJlYWRUeXBlID0gZmFsc2U7CiAgICAgIC8vIHRoaXMucGFyYW1zLnN0YXR1cyA9ICcxJyAvLyDmlrDlop4KICAgICAgdGhpcy5zaG93Rm9ybURpYSA9IHRydWU7CiAgICB9LAogICAgYWRkVGFibGU6IGZ1bmN0aW9uIGFkZFRhYmxlKCkgewogICAgICB2YXIgX3RoaXMkJHJlZnMkZGV0YWlsRm9yOwogICAgICB0aGlzLmRldGFpbExpc3RGcm9tLmNoZWNrUmVjb3JkSWQgPSB0aGlzLnBhcmFtcy5pZDsKICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS51bml0SWQgPSB0aGlzLnBhcmFtcy51bml0SWQ7CiAgICAgIHRoaXMuJHNldCh0aGlzLmRldGFpbExpc3RGcm9tLCAnZ3JlYXREYW5nZXInLCAnMicpOwogICAgICB0aGlzLmRldGFpbFRpdGxlID0gJ+aWsOWinuWuieWFqOajgOafpeiusOW9lSc7CiAgICAgIHRoaXMuc2hvd0RldGFpbGVMaXN0ID0gdHJ1ZTsKICAgICAgKF90aGlzJCRyZWZzJGRldGFpbEZvciA9IHRoaXMuJHJlZnMuZGV0YWlsRm9ybUluZm8pID09PSBudWxsIHx8IF90aGlzJCRyZWZzJGRldGFpbEZvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkJHJlZnMkZGV0YWlsRm9yLmNsZWFyVmFsaWRhdGUoKTsKICAgIH0sCiAgICBkYmxjbGlja0RldGFpbDogZnVuY3Rpb24gZGJsY2xpY2tEZXRhaWwocm93KSB7CiAgICAgIGNvbnNvbGUubG9nKHJvdyk7CiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20uY2hlY2tSZWNvcmRJZCA9IHJvdy5jaGVja1JlY29yZElkOwogICAgICB0aGlzLmRldGFpbExpc3RGcm9tLnVuaXRJZCA9IHJvdy51bml0SWQ7CiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20uaW1nVXJsQXJyYXkgPSByb3cuaW1nVXJsQXJyYXkgPyByb3cuaW1nVXJsQXJyYXkgOiBbXTsKICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbS5yZWZvcm1JbWdVcmxBcnJheSA9IHJvdy5yZWZvcm1JbWdVcmxBcnJheSA/IHJvdy5yZWZvcm1JbWdVcmxBcnJheSA6IFtdOwogICAgICB0aGlzLmRldGFpbExpc3RGcm9tLmNoZWNrRGF0ZSA9IHJvdy5jaGVja0RhdGU7CiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20uZGFuZ2VyQ29udGVudCA9IHJvdy5kYW5nZXJDb250ZW50OwogICAgICB0aGlzLmRldGFpbExpc3RGcm9tLnJlZm9ybVN1Z2d1ZXN0ID0gcm93LnJlZm9ybVN1Z2d1ZXN0OwogICAgICB0aGlzLmRldGFpbExpc3RGcm9tLnJlZmVyZW5jZSA9IHJvdy5yZWZlcmVuY2U7CiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20uaWQgPSByb3cuaWQ7CiAgICAgIHRoaXMuZGV0YWlsTGlzdEZyb20uZGFuZ2VyVHlwZSA9IHJvdy5kYW5nZXJUeXBlOwogICAgICB0aGlzLiRzZXQodGhpcy5kZXRhaWxMaXN0RnJvbSwgJ2dyZWF0RGFuZ2VyJywgcm93LmdyZWF0RGFuZ2VyKTsKICAgICAgdGhpcy5kZXRhaWxUaXRsZSA9ICfkv67mlLnlronlhajmo4Dmn6XorrDlvZUnOwogICAgICB0aGlzLnNob3dEZXRhaWxlTGlzdCA9IHRydWU7CiAgICB9LAogICAgZGVsVGFibGU6IGZ1bmN0aW9uIGRlbFRhYmxlKGluZGV4LCByb3cpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIC8vIHRoaXMucGFyYW1zLmRldGFpbC5zcGxpY2UoaW5kZXgsIDEpCiAgICAgIENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpLkNTYWZ0eURhbmdlckNoZWNrcmVjb3JkRGV0YWlsRGVsZXRlKFtyb3cuaWRdLCBmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXM1LiRub3RpZnkoewogICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLAogICAgICAgICAgbWVzc2FnZTogJ+WIoOmZpOaIkOWKnycsCiAgICAgICAgICBkdXJhdGlvbjogMjAwMAogICAgICAgIH0pOwogICAgICAgIF90aGlzNS5nZXRUYWJsZURhdGEoewogICAgICAgICAgaWQ6IF90aGlzNS5wYXJhbXMuaWQKICAgICAgICB9LCAnJywgJ+WuieWFqOS/ruaUuScpOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVDbG9zZTogZnVuY3Rpb24gaGFuZGxlQ2xvc2UoKSB7CiAgICAgIHRoaXMucGFyYW1zID0gewogICAgICAgIGNoZWNrc2NoZW1lSWQ6IG51bGwsCiAgICAgICAgY2hlY2tZZWFyTW9udGg6IG51bGwsCiAgICAgICAgdW5pdFR5cGU6IG51bGwsCiAgICAgICAgdW5pdE5hbWU6IG51bGwsCiAgICAgICAgdW5pdElkOiBudWxsLAogICAgICAgIHVuaXRBZGRyZXNzOiBudWxsLAogICAgICAgIHVuaXRVc2VycGhvbmU6IG51bGwsCiAgICAgICAgaGlkZGVuRGFuZ2VyOiAnMicsCiAgICAgICAgY2hlY2tEYXRlOiBudWxsLAogICAgICAgIGNoZWNrQ29udGVudDogbnVsbCwKICAgICAgICBsZWFkVXNlcm5hbWU6IG51bGwsCiAgICAgICAgdW5pdFVzZXJuYW1lOiBudWxsLAogICAgICAgIGNoZWNrVXNlcm5hbWU6IG51bGwsCiAgICAgICAgcmVjb3JkTmFtZTogbnVsbCwKICAgICAgICAvLyBzdGF0dXM6IG51bGwsCiAgICAgICAgcmVmb3JtVXNlcm5hbWU6IG51bGwsCiAgICAgICAgcmVmb3JtVW5pdG5hbWU6IG51bGwsCiAgICAgICAgbGF0ZXN0VGltZUxpbWl0OiBudWxsLAogICAgICAgIGxhdGVzdFJldmlld0RhdGU6IG51bGwsCiAgICAgICAgY29tcGxldGVEYXRlOiBudWxsLAogICAgICAgIHJlZm9ybVJlcXVpcmU6IG51bGwsCiAgICAgICAgY29udHJvbE1lbW86IG51bGwsCiAgICAgICAgLy8gcmVmb3JtQ29udGVudDogbnVsbCwKICAgICAgICBkZXRhaWw6IFtdCiAgICAgIH07CiAgICAgIHRoaXMuaXNEYW5nZXIgPSBmYWxzZTsKICAgICAgdGhpcy50aXRsZSA9ICfmlrDlop4nOwogICAgICB0aGlzLnNob3dGb3JtRGlhID0gZmFsc2U7CiAgICAgIHRoaXMuJGVtaXQoJ3JlZnJlc2hMaXN0Jyk7CiAgICB9LAogICAgaGFuZGVsQ2xvc2VEZXRhaWw6IGZ1bmN0aW9uIGhhbmRlbENsb3NlRGV0YWlsKCkgewogICAgICB2YXIgX3RoaXMkJHJlZnMkZGV0YWlsRm9yMjsKICAgICAgdGhpcy5kZXRhaWxMaXN0RnJvbSA9IHsKICAgICAgICBjaGVja1JlY29yZElkOiBudWxsLAogICAgICAgIHVuaXRJZDogbnVsbCwKICAgICAgICBpbWdVcmxBcnJheTogW10sCiAgICAgICAgZGFuZ2VyVHlwZTogJycsCiAgICAgICAgZ3JlYXREYW5nZXI6ICcyJywKICAgICAgICByZWZvcm1JbWdVcmxBcnJheTogW10sCiAgICAgICAgY2hlY2tEYXRlOiBudWxsLAogICAgICAgIGRhbmdlckNvbnRlbnQ6IG51bGwsCiAgICAgICAgcmVmb3JtU3VnZ3Vlc3Q6IG51bGwsCiAgICAgICAgcmVmZXJlbmNlOiBudWxsLAogICAgICAgIGlkOiBudWxsCiAgICAgIH07CiAgICAgIHRoaXMuc2hvd0RldGFpbGVMaXN0ID0gZmFsc2U7CiAgICAgIChfdGhpcyQkcmVmcyRkZXRhaWxGb3IyID0gdGhpcy4kcmVmcy5kZXRhaWxGb3JtSW5mbykgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkZGV0YWlsRm9yMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkJHJlZnMkZGV0YWlsRm9yMi5jbGVhclZhbGlkYXRlKCk7CiAgICB9LAogICAgaGFuZGxlU2F2ZTogZnVuY3Rpb24gaGFuZGxlU2F2ZSgpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuJHJlZnMuZm9ybUluZm8udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICB2YXIgX3RoaXM2JHBhcmFtcyRkZXRhaWw7CiAgICAgICAgICB2YXIgbWV0aG9kOwogICAgICAgICAgaWYgKCFfdGhpczYucGFyYW1zLmlkKSB7CiAgICAgICAgICAgIC8vIOaWsOWingogICAgICAgICAgICBtZXRob2QgPSBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5hZGRDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChfdGhpczYucGFyYW1zLmlkKSB7CiAgICAgICAgICAgIC8vIOS/ruaUuQogICAgICAgICAgICBtZXRob2QgPSBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5lZGl0Q21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmQ7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zb2xlLmxvZyhfdGhpczYucGFyYW1zKTsKICAgICAgICAgIChfdGhpczYkcGFyYW1zJGRldGFpbCA9IF90aGlzNi5wYXJhbXMuZGV0YWlsKSA9PT0gbnVsbCB8fCBfdGhpczYkcGFyYW1zJGRldGFpbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXM2JHBhcmFtcyRkZXRhaWwuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLnJlZm9ybUltZ1VybEFycmF5KSAmJiBpdGVtLnJlZm9ybUltZ1VybEFycmF5Lmxlbmd0aCkgewogICAgICAgICAgICAgIGl0ZW0ucmVmb3JtU3RhdHVzID0gMjsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBtZXRob2QoX3RoaXM2LnBhcmFtcywgZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBpZiAocmVzLnN0YXRlKSB7CiAgICAgICAgICAgICAgX3RoaXM2LiRub3RpZnkoewogICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgICAgbWVzc2FnZTogX3RoaXM2LnRpdGxlICsgJ+aIkOWKnycsCiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIF90aGlzNi4kcGFyZW50LmxvYWREYXRhKCk7CiAgICAgICAgICAgICAgX3RoaXM2LmhhbmRsZUNsb3NlKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLndhcm5pbmcocmVzLm1lc3NhZ2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIFVwZGF0ZTogZnVuY3Rpb24gVXBkYXRlKHJvdywgc3RhdHVzLCBhY3RpdmVJbmRleCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy5yZWFkVHlwZSA9IGZhbHNlOwogICAgICB0aGlzLnRpdGxlID0gJ+S/ruaUuSc7CiAgICAgIGlmIChhY3RpdmVJbmRleCkgewogICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9IGFjdGl2ZUluZGV4OwogICAgICB9CiAgICAgIHRoaXMuc2hvd0Zvcm1EaWEgPSB0cnVlOwogICAgICBDbWd0U2FmdHlEYW5nZXJDaGVja3JlY29yZEFwaS5nZXRJdGVtQnlJZChyb3cuaWQsIGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczcucGFyYW1zLmlkID0gcmVzLmlkOwogICAgICAgIF90aGlzNy5wYXJhbXMuY2hlY2tzY2hlbWVJZCA9IHJlcy5jaGVja3NjaGVtZUlkOwogICAgICAgIF90aGlzNy5wYXJhbXMuY2hlY2tZZWFyTW9udGggPSByZXMuY2hlY2tZZWFyTW9udGg7CiAgICAgICAgX3RoaXM3LnBhcmFtcy51bml0VHlwZSA9IHJlcy51bml0VHlwZTsKICAgICAgICBfdGhpczcucGFyYW1zLnVuaXROYW1lID0gcmVzLnVuaXROYW1lOwogICAgICAgIF90aGlzNy5wYXJhbXMudW5pdElkID0gcmVzLnVuaXRJZDsKICAgICAgICBfdGhpczcucGFyYW1zLnVuaXRBZGRyZXNzID0gcmVzLnVuaXRBZGRyZXNzOwogICAgICAgIF90aGlzNy5wYXJhbXMudW5pdFVzZXJwaG9uZSA9IHJlcy51bml0VXNlcnBob25lOwogICAgICAgIF90aGlzNy5wYXJhbXMudW5pdFVzZXJuYW1lID0gcmVzLnVuaXRVc2VybmFtZTsKICAgICAgICBfdGhpczcucGFyYW1zLmhpZGRlbkRhbmdlciA9IHJlcy5oaWRkZW5EYW5nZXIgfHwgJzInOwogICAgICAgIF90aGlzNy5pc0RhbmdlciA9IF90aGlzNy5wYXJhbXMuaGlkZGVuRGFuZ2VyID09ICcyJyA/IGZhbHNlIDogdHJ1ZTsKICAgICAgICBfdGhpczcucGFyYW1zLmNoZWNrRGF0ZSA9IHJlcy5jaGVja0RhdGU7CiAgICAgICAgX3RoaXM3LnBhcmFtcy5jaGVja0NvbnRlbnQgPSByZXMuY2hlY2tDb250ZW50OwogICAgICAgIF90aGlzNy5wYXJhbXMubGVhZFVzZXJuYW1lID0gcmVzLmxlYWRVc2VybmFtZTsKICAgICAgICBfdGhpczcucGFyYW1zLmNoZWNrVXNlcm5hbWUgPSByZXMuY2hlY2tVc2VybmFtZTsKICAgICAgICBfdGhpczcucGFyYW1zLnJlY29yZE5hbWUgPSByZXMucmVjb3JkTmFtZTsKICAgICAgICBfdGhpczcucGFyYW1zLnN0YXR1cyA9IHJlcy5zdGF0dXM7CiAgICAgICAgX3RoaXM3LnBhcmFtcy5yZWZvcm1Vc2VybmFtZSA9IHJlcy5yZWZvcm1Vc2VybmFtZTsKICAgICAgICBfdGhpczcucGFyYW1zLnJlZm9ybVVuaXRuYW1lID0gcmVzLnJlZm9ybVVuaXRuYW1lOwogICAgICAgIF90aGlzNy5wYXJhbXMubGF0ZXN0VGltZUxpbWl0ID0gcmVzLmxhdGVzdFRpbWVMaW1pdDsKICAgICAgICBfdGhpczcucGFyYW1zLmxhdGVzdFJldmlld0RhdGUgPSByZXMubGF0ZXN0UmV2aWV3RGF0ZTsKICAgICAgICBfdGhpczcucGFyYW1zLmNvbXBsZXRlRGF0ZSA9IHJlcy5jb21wbGV0ZURhdGU7CiAgICAgICAgX3RoaXM3LnBhcmFtcy5yZWZvcm1SZXF1aXJlID0gcmVzLnJlZm9ybVJlcXVpcmU7CiAgICAgICAgX3RoaXM3LnBhcmFtcy5jb250cm9sTWVtbyA9IHJlcy5jb250cm9sTWVtbzsKICAgICAgICAvLyB0aGlzLnBhcmFtcy5yZWZvcm1Db250ZW50ID0gcmVzLnJlZm9ybUNvbnRlbnQKICAgICAgICBfdGhpczcucGFyYW1zLmRldGFpbCA9IHJlcy5kZXRhaWw7CiAgICAgIH0pOwogICAgfQogIH0sICJiZWZvcmVBdmF0YXJVcGxvYWQiLCBmdW5jdGlvbiBiZWZvcmVBdmF0YXJVcGxvYWQoZmlsZSkgewogICAgdmFyIGlzSlBHID0gZmlsZS50eXBlID09PSAnaW1hZ2UvanBlZycgfHwgZmlsZS50eXBlID09PSAnaW1hZ2UvcG5nJyB8fCBmaWxlLnR5cGUgPT09ICdpbWFnZS9qcGcnOwogICAgdmFyIGlzTHQxME0gPSBmaWxlLnNpemUgLyAxMDI0IC8gMTAyNCA8IDEwOwogICAgaWYgKCFpc0pQRykgewogICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIrkvKDlm77niYflj6rog73mmK8gSlBHIOagvOW8jyEnKTsKICAgIH0KICAgIGlmICghaXNMdDEwTSkgewogICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIrkvKDlm77niYflpKflsI/kuI3og73otoXov4cgMTBNQiEnKTsKICAgIH0KICAgIHJldHVybiBpc0pQRyAmJiBpc0x0MTBNOwogIH0pLCAiaGFuZGxlUmVtb3ZlIiwgZnVuY3Rpb24gaGFuZGxlUmVtb3ZlKGZpbGUsIGZpbGVMaXN0KSB7CiAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgIHRoaXMuZGV0YWlsTGlzdEZyb20uaW1nVXJsQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoZSwgaW5kZXgpIHsKICAgICAgaWYgKGUgPT0gZmlsZS5pZCkgewogICAgICAgIF90aGlzOC5kZXRhaWxMaXN0RnJvbS5pbWdVcmxBcnJheS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB9CiAgICB9KTsKICB9KSwgImhhbmRsZVJlbW92ZTEiLCBmdW5jdGlvbiBoYW5kbGVSZW1vdmUxKGZpbGUsIGZpbGVMaXN0KSB7CiAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgIHRoaXMuZGV0YWlsTGlzdEZyb20ucmVmb3JtSW1nVXJsQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoZSwgaW5kZXgpIHsKICAgICAgaWYgKGUgPT0gZmlsZS5pZCkgewogICAgICAgIF90aGlzOS5kZXRhaWxMaXN0RnJvbS5yZWZvcm1JbWdVcmxBcnJheS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB9CiAgICB9KTsKICB9KSwgImhhbmRsZVBpY3R1cmVDYXJkUHJldmlldyIsIGZ1bmN0aW9uIGhhbmRsZVBpY3R1cmVDYXJkUHJldmlldyhmaWxlKSB7CiAgICAvLyB0aGlzLmRpYWxvZ0ltYWdlVXJsID0gZmlsZS51cmwKICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgfSksICJoYW5kbGVEb3dubG9hZCIsIGZ1bmN0aW9uIGhhbmRsZURvd25sb2FkKGZpbGUpIHsKICAgIENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpLmRvd25sb2FkRmlsZShmaWxlLmZpbGVJZCk7CiAgfSksICJib29sZW5TaG93IiwgZnVuY3Rpb24gYm9vbGVuU2hvdygpIHsKICAgIGlmICghdGhpcy5wYXJhbXMuaGlkZGVuRGFuZ2VyIHx8IHRoaXMucGFyYW1zLmhpZGRlbkRhbmdlciA9PT0gJzInKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0pLCAiY2hhbmdlR3JlYXREYW5nZXIiLCBmdW5jdGlvbiBjaGFuZ2VHcmVhdERhbmdlcih2YWwpIHsKICAgIGNvbnNvbGUubG9nKHZhbCk7CiAgICBpZiAodmFsID09PSAnMicpIHsKICAgICAgdGhpcy5wYXJhbXMucmVmb3JtVW5pdG5hbWUgPSBudWxsOwogICAgICB0aGlzLnBhcmFtcy5jaGVja0RhdGUgPSBudWxsOwogICAgICB0aGlzLnBhcmFtcy5sYXRlc3RUaW1lTGltaXQgPSBudWxsOwogICAgICB0aGlzLnBhcmFtcy5sYXRlc3RSZXZpZXdEYXRlID0gbnVsbDsKICAgICAgdGhpcy5wYXJhbXMubGVhZFVzZXJuYW1lID0gbnVsbDsKICAgICAgdGhpcy5wYXJhbXMucmVmb3JtVXNlcm5hbWUgPSBudWxsOwogICAgICB0aGlzLnBhcmFtcy5jaGVja1VzZXJuYW1lID0gbnVsbDsKICAgICAgdGhpcy5wYXJhbXMuY2hlY2tDb250ZW50ID0gbnVsbDsKICAgICAgdGhpcy5wYXJhbXMucmVmb3JtUmVxdWlyZSA9IG51bGw7CiAgICAgIHRoaXMucGFyYW1zLmNvbnRyb2xNZW1vID0gbnVsbDsKICAgICAgdGhpcy5ydWxlcy5jaGVja0RhdGVbMF0ucmVxdWlyZWQgPSBmYWxzZTsKICAgICAgdGhpcy5ydWxlcy5sYXRlc3RUaW1lTGltaXRbMF0ucmVxdWlyZWQgPSBmYWxzZTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucnVsZXMuY2hlY2tEYXRlWzBdLnJlcXVpcmVkID0gdHJ1ZTsKICAgICAgdGhpcy5ydWxlcy5sYXRlc3RUaW1lTGltaXRbMF0ucmVxdWlyZWQgPSB0cnVlOwogICAgfQogIH0pLCAiaGFuZGxlU2F2ZURldGFpbExpc3QiLCBmdW5jdGlvbiBoYW5kbGVTYXZlRGV0YWlsTGlzdCgpIHsKICAgIHZhciBfdGhpczEwID0gdGhpczsKICAgIHRoaXMuJHJlZnMuZGV0YWlsRm9ybUluZm8udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgIGlmICh2YWxpZCkgewogICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfdGhpczEwLmRldGFpbExpc3RGcm9tKSk7CiAgICAgICAgZGF0YS5yZWZvcm1TdGF0dXMgPSAyOwogICAgICAgIGlmIChfdGhpczEwLmRldGFpbFRpdGxlID09PSAn5paw5aKe5a6J5YWo5qOA5p+l6K6w5b2VJykgewogICAgICAgICAgQ21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmRBcGkuQ1NhZnR5RGFuZ2VyQ2hlY2tyZWNvcmREZXRhaWxDcmVhdGUoZGF0YSwgZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpOwogICAgICAgICAgICBfdGhpczEwLiRub3RpZnkoewogICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywKICAgICAgICAgICAgICBtZXNzYWdlOiAn5paw5aKe5oiQ5YqfJywKICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgX3RoaXMxMC5oYW5kZWxDbG9zZURldGFpbCgpOwogICAgICAgICAgICBfdGhpczEwLmdldFRhYmxlRGF0YSh7CiAgICAgICAgICAgICAgaWQ6IF90aGlzMTAucGFyYW1zLmlkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIGlmIChfdGhpczEwLmRldGFpbFRpdGxlID09PSAn5L+u5pS55a6J5YWo5qOA5p+l6K6w5b2VJykgewogICAgICAgICAgQ21ndFNhZnR5RGFuZ2VyQ2hlY2tyZWNvcmRBcGkuQ1NhZnR5RGFuZ2VyQ2hlY2tyZWNvcmREZXRhaWxVcGRhdGVCeUlkKGRhdGEsIGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKTsKICAgICAgICAgICAgX3RoaXMxMC4kbm90aWZ5KHsKICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgbWVzc2FnZTogJ+S/ruaUueaIkOWKnycsCiAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIF90aGlzMTAuaGFuZGVsQ2xvc2VEZXRhaWwoKTsKICAgICAgICAgICAgX3RoaXMxMC5nZXRUYWJsZURhdGEoewogICAgICAgICAgICAgIGlkOiBfdGhpczEwLnBhcmFtcy5pZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgfSksICJnZXRUYWJsZURhdGEiLCBmdW5jdGlvbiBnZXRUYWJsZURhdGEocm93LCBzdGF0dXMsIGFjdGl2ZUluZGV4KSB7CiAgICB2YXIgX3RoaXMxMSA9IHRoaXM7CiAgICB0aGlzLnRpdGxlID0gJ+S/ruaUuSc7CiAgICB0aGlzLnNob3dGb3JtRGlhID0gdHJ1ZTsKICAgIGNvbnNvbGUubG9nKDExMTExMTExMTExMTExMTExKTsKICAgIENtZ3RTYWZ0eURhbmdlckNoZWNrcmVjb3JkQXBpLmdldEl0ZW1CeUlkKHJvdy5pZCwgZnVuY3Rpb24gKHJlcykgewogICAgICBfdGhpczExLnBhcmFtcy5kZXRhaWwgPSByZXMuZGV0YWlsOwogICAgfSk7CiAgfSksICJjb252ZXJ0SW1nIiwgZnVuY3Rpb24gY29udmVydEltZyhhcnIpIHsKICAgIHZhciBfdGhpczEyID0gdGhpczsKICAgIHZhciBuZXdBcnIgPSBbXTsKICAgIGlmIChBcnJheS5pc0FycmF5KGFycikpIHsKICAgICAgbmV3QXJyID0gYXJyLm1hcChmdW5jdGlvbiAoaXQpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgdXJsOiBfdGhpczEyLnByZXZpZXdVcmwgKyBpdCwKICAgICAgICAgIGlkOiBpdAogICAgICAgIH07CiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyOwogICAgfQogIH0pCn07"},null]}