3845ceede215e4c7554d4795a40204e2.json 41 KB

1
  1. {"remainingRequest":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\order\\manageO\\NewOrderList.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\order\\manageO\\NewOrderList.vue","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgZ2V0Q3VzdG9tZXJJbmZvIH0gZnJvbSAiQC9hcGkvQ3VzdG9tZXIiOwppbXBvcnQgc3RhZmZMaXN0TW9kYWwgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL3N0YWZmTGlzdE1vZGFsIjsKaW1wb3J0IE9yZGVyT3V0IGZyb20gIkAvdmlld3Mvb3JkZXIvY29tcG9uZW50cy9PcmRlck91dC52dWUiOwppbXBvcnQgdGFnUHJpbnQgZnJvbSAiLi4vY29tcG9uZW50cy90YWdQcmludCI7CmltcG9ydCBMb2dpc3RpY3NEYXRhIGZyb20gIi4uL2NvbXBvbmVudHMvTG9naXN0aWNzRGF0YSI7CmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tICJ2dWV4IjsKaW1wb3J0IHsgZ2V0T3JkZXJJbmZvQnlJZCwgZ2V0QWxsT3JkZXIsIGV4cG9ydEdldEFsbE9yZGVyLCB1cGRhdGVPcmRlclN0YXR1cywgdXBkYXRlQXVkaXRTdGF0dXMsIHNldFNhbGVzTWFuLCByZXZva2VBdWRpdCwgcmVTdG9ja091dCwgcmV0QW1vdW50LCBiYXRjaFVwZGF0ZUF1ZGl0U3RhdHVzLCBleHBvcnRLZXl3b3JkU2VhcmNoLCBrZXl3b3JkU2VhcmNoIH0gZnJvbSAiQC9hcGkvT3JkZXIiOwppbXBvcnQgeyBnZXRBbGxDdXN0b21lclNvdXJjZSwgZ2V0QWxsUGF5bWVudCB9IGZyb20gIkAvYXBpL1N5c3RlbSI7CmltcG9ydCB7IGFkZFJlY2VpdmVkIH0gZnJvbSAiQC9hcGkvRmluYW5jZSI7CmltcG9ydCB7IHRvUHJpbnQgfSBmcm9tICJAL2FwaS9jb21tb24iOwppbXBvcnQgU2VsZWN0U2hvcCBmcm9tICJAL2NvbXBvbmVudC9nb29kcy9TZWxlY3RTaG9wLnZ1ZSI7CmltcG9ydCBTZWxlY3RDdXN0b21lciBmcm9tICJAL2NvbXBvbmVudC9jb21tb24vU2VsZWN0Q3VzdG9tZXIudnVlIjsKaW1wb3J0IEFjY291bnRUeXBlIGZyb20gIi4uLy4uL0ZpbmFuY2UvQWNjb3VudFR5cGUiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIk5ld09yZGVyTGlzdCIsCiAgY29tcG9uZW50czogewogICAgc3RhZmZMaXN0TW9kYWwsCiAgICBTZWxlY3RTaG9wLAogICAgU2VsZWN0Q3VzdG9tZXIsCiAgICBPcmRlck91dCwKICAgIExvZ2lzdGljc0RhdGEsCiAgICB0YWdQcmludCwKICAgIEFjY291bnRUeXBlCiAgfSwKCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGNhbmNlbF9yZWFzb246ICIiLAogICAgICBvcmRlcl9pdGVtOiB7fSwKICAgICAgY2FuY2VsUmVqZWN0UmVhc29uOiAiIiwKICAgICAgLy8g5ouS57ud5Y+W5raI5a6h5qC45Y6f5ZugCiAgICAgIGFjY291bnRfc2hvdzogZmFsc2UsCiAgICAgIGNhbmNlbF90aXA6IGZhbHNlLAogICAgICBmb3JtRGF0YTogewogICAgICAgIGN1c3RvbWVySWQ6ICIiLAogICAgICAgIGN1c3RvbWVyTmFtZTogIiIsCiAgICAgICAgc2hvcElkOiAiIiwKICAgICAgICBzaG9wTmFtZTogIiIsCiAgICAgICAgaWQ6ICIiLAogICAgICAgIG5vOiAiIiwKICAgICAgICBwYXlBbW91bnQ6ICIiLAogICAgICAgIGRpc2NvdW50TW9uZXk6ICIiLAogICAgICAgIG1vbmV5OiAiIiwKICAgICAgICBhY2NvdW50SWQ6ICIiLAogICAgICAgIGFjY291bnROdW1iZXI6ICIiLAogICAgICAgIGFjY291bnROYW1lOiAiIgogICAgICB9LAogICAgICBydWxlczE6IHsKICAgICAgICBtb25leTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeaUtuasvumHkeminSIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9LAogICAgICBSZXR1cm5fc3RhdHVzOiBbewogICAgICAgIGxhYmVsOiAi5pyq6YCA6LSnIiwKICAgICAgICB2YWx1ZTogMAogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLpg6jliIbpgIDotKciLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuWFqOmDqOmAgOi0pyIsCiAgICAgICAgdmFsdWU6IDIKICAgICAgfV0sCiAgICAgIHByaW50X3VzZXJfY2VudGVyX2lkOiAiIiwKICAgICAgcHJpbnRfb3JkZXJfaWQ6ICIiLAogICAgICBnb29kczogIiIsCiAgICAgIHByaW50X3Nob3c6IGZhbHNlLAogICAgICBvcHRpb25zX3ZhbHVlOiBbXSwKICAgICAgcmVjZWl2ZWRfZGF0YToge30sCiAgICAgIGN1c3RvbWVyVHlwZTogW10sCiAgICAgIGJhdGNoX2F1ZGl0X2xvYWQ6IGZhbHNlLAogICAgICBjaGVja2VkQWxsOiBmYWxzZSwKICAgICAgaXNfc2hvd19nb29kczogZmFsc2UsCiAgICAgIHNlbGVjdGVkX29yZGVyOiBbXSwKICAgICAgc3RhZmZfc2hvdzogZmFsc2UsCiAgICAgIG9yZGVyX2xpc3Q6IFtdLAogICAgICBnb29kc0RhdGFEOiBbXSwKICAgICAgb3JkZXJfZnJvbTogW3sKICAgICAgICBsYWJlbDogImlvcyIsCiAgICAgICAgdmFsdWU6IDEKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5a6J5Y2TIiwKICAgICAgICB2YWx1ZTogMgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLlvq7kv6HlsI/nqIvluo8iLAogICAgICAgIHZhbHVlOiAzCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuWQjuWPsOWIm+W7uiIsCiAgICAgICAgdmFsdWU6IDQKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAiSDXpobXpnaIiLAogICAgICAgIHZhbHVlOiA1CiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogInBj6aG16Z2iIiwKICAgICAgICB2YWx1ZTogNgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLlrZfoioLot7PliqjlsI/nqIvluo8iLAogICAgICAgIHZhbHVlOiA4CiAgICAgIH1dLAogICAgICBwYXlfdHlwZV9saXN0OiBbXSwKICAgICAgb3JkZXJfc3RhdHVzOiBbLy8gewogICAgICAvLyAgIGxhYmVsOiAi5YWo6YOoIiwKICAgICAgLy8gICB2YWx1ZTogImFsbCIsCiAgICAgIC8vIH0sCiAgICAgIHsKICAgICAgICBsYWJlbDogIuW+heWuoeaguCIsCiAgICAgICAgLy8g5paw6K6i5Y2V44CRCiAgICAgICAgdmFsdWU6ICJ3YWl0QXVkaXQiCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuW+heWHuuW6kyIsCiAgICAgICAgLy8g562J5b6F5Ye65bqTCiAgICAgICAgdmFsdWU6ICJ3YWl0T3V0U3RvY2siCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuW3suWHuuW6kyIsCiAgICAgICAgLy8g5bey5Ye65bqTCiAgICAgICAgdmFsdWU6ICJoYXNPdXRTdG9jayIKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5bey5a6M5oiQIiwKICAgICAgICAvLyDlt7LmlLbotKcKICAgICAgICB2YWx1ZTogImZpbmlzaCIKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5bey5YWz6ZetIiwKICAgICAgICAvLyDlt7Llj5bmtogKICAgICAgICB2YWx1ZTogImNsb3NlIgogICAgICB9XSwKICAgICAgcmVnaW9uX29wdGlvbnM6IFtdLAogICAgICB0b3RhbDogMCwKICAgICAgcGFnZTogMSwKICAgICAgcGFnZVNpemU6IDEwLAogICAgICBzZWFyY2hfZm9ybTogewogICAgICAgIHRpbWU6IFtdLAogICAgICAgIHJlZ2lvbjogW10sCiAgICAgICAgdXNlcjogIiIsCiAgICAgICAgb3JkZXJfdHlwZTogIiIsCiAgICAgICAgc2hvcElkOiAiIiwKICAgICAgICBtb25leV90eXBlOiAiIiwKICAgICAgICBjdXN0b21UeXBlOiAiIiwKICAgICAgICBzdGFmZjogIiIKICAgICAgfSwKICAgICAgY3VzdG9tZXJfbmFtZTogIiIsCiAgICAgIHNlYXJjaERhdGU6IHsKICAgICAgICBSZXR1cm46ICIiLAogICAgICAgIGtleXdvcmQ6ICIiLAogICAgICAgIG9yZGVyU3RhdHVzOiAiYWxsIiwKICAgICAgICBwYXlUeXBlOiAiIiwKICAgICAgICBwcm92aW5jZUNvZGU6ICIiLAogICAgICAgIGNpdHlDb2RlOiAiIiwKICAgICAgICBkaXN0cmljdENvZGU6ICIiLAogICAgICAgIHN0YXJ0OiAiIiwKICAgICAgICBlbmQ6ICIiLAogICAgICAgIGN1c3RvbWVySWQ6ICIiLAogICAgICAgIGN1c3RvbWVyVHlwZTogIiIsCiAgICAgICAgc2FsZXNNYW5JZDogIiIsCiAgICAgICAgc291cmNlOiAiIiwKICAgICAgICBzaG9wSWQ6ICIiLAogICAgICAgIGtleXdvcmRUeXBlOiAxLAogICAgICAgIG91dFN0YXR1czogIiIsCiAgICAgICAgcGF5U3RhdHVzOiAiIgogICAgICB9LAogICAgICBwYXlTdGF0dXNfbGlzdDogW3sKICAgICAgICBsYWJlbDogIuacquaUr+S7mCIsCiAgICAgICAgdmFsdWU6IDQKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5bey5pSv5LuYIiwKICAgICAgICB2YWx1ZTogNQogICAgICB9XSwKICAgICAgc2FsZXNNYW5JZDogIiIsCiAgICAgIHJlY2VpdmVEYXRhOiBbXSwKICAgICAgZGVsaXZlcnlUeXBlOiAiIiwKICAgICAgYXVkaXRTdGF0dXM6ICIiLAogICAgICAvLyDmnYPpmZAKICAgICAgYWNjZXNzQWRkOiB0cnVlLAogICAgICBhY2Nlc3NBdWRpdDogdHJ1ZSwKICAgICAgYWNjZXNzU2VhcmNoOiB0cnVlLAogICAgICBhY2Nlc3NEZXRhaWw6IHRydWUsCiAgICAgIGlzc2VyY2g6IHRydWUsCiAgICAgIG9yZGVyX2lkOiAiIiwKICAgICAgY2hlY2tMaXN0OiBbIuWIm+W7uuaXtumXtCIsICLlrqLmiLciLCAi6K6i5Y2V6YeR6aKdIiwgIuWVhuWTgSIsICLorqLljZXnirbmgIEiLCAi5LuY5qy+54q25oCBIiwgIuWuoeaguOeKtuaAgSIsICLphY3pgIHmlrnlvI8iLCAi5pSv5LuY5pa55byPIiwgIuaJgOWxnuWRmOW3pSIsICLorqLljZXmnaXmupAiLCAi6K6i5Y2V5Y+3IiwgIuWVhumTuiJdLAogICAgICBjb2x1bW5zOiBbewogICAgICAgIGxhYmVsOiAi5Yib5bu65pe26Ze0IgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLlrqLmiLciCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuiuouWNlemHkeminSIKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5ZWG5ZOBIgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLorqLljZXnirbmgIEiCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuS7mOasvueKtuaAgSIKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5a6h5qC454q25oCBIgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLphY3pgIHmlrnlvI8iCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuaUr+S7mOaWueW8jyIKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5omA5bGe5ZGY5belIgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLorqLljZXmnaXmupAiCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuiuouWNleWPtyIKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5ZWG6ZO6IgogICAgICB9XSwKICAgICAgdGltZUZsYWc6IHRydWUsCiAgICAgIGNsaWVudEZsYWc6IHRydWUsCiAgICAgIG1vbmV5RmxhZzogdHJ1ZSwKICAgICAgY29tbW9kaXR5RmxhZzogdHJ1ZSwKICAgICAgaW5kZW50RmxhZzogdHJ1ZSwKICAgICAgcGF5bWVudEZsYWc6IHRydWUsCiAgICAgIGF1ZGl0RmxhZzogdHJ1ZSwKICAgICAgZGlzdHJpYnV0aW9uRmxhZzogdHJ1ZSwKICAgICAgcGF5RmxhZzogdHJ1ZSwKICAgICAgc3RhZmZGbGFnOiB0cnVlLAogICAgICBzb3VyY2VGbGFnOiB0cnVlLAogICAgICBtYXJrRmxhZzogdHJ1ZSwKICAgICAgc2hvcEZsYWc6IHRydWUsCiAgICAgIGxvZ2lzdGljc0ZsYWc6IGZhbHNlLAogICAgICBydWxlczogewogICAgICAgIGZyZWlnaHRfaW5mb3JtYXRpb246IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXotKfovabovabniYwiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgdmFuX3Bob25lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl6LSn6L2m55S16K+dIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHNob3dfb3V0OiBmYWxzZSwKICAgICAgb3V0X2lkOiAiIiwKICAgICAgb3V0X2RldGFpbDoge30sCiAgICAgIGxvZ2lzdGljc0xpc3Q6IHt9LAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgYmFsYW5jZUFkanVzdG1lbnQ6IGZhbHNlLAogICAgICBrZXl3b3JkVHlwZV9saXN0OiBbewogICAgICAgIGxhYmVsOiAi5Y2V5o2u57yW5Y+3IiwKICAgICAgICB2YWx1ZTogMQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLoh6rmj5DnoIEiLAogICAgICAgIHZhbHVlOiAyCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuWVhuWTgeWQjeensCIsCiAgICAgICAgdmFsdWU6IDMKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5ZWG5ZOB57yW56CBIiwKICAgICAgICB2YWx1ZTogNAogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLmlLbotKfkuroiLAogICAgICAgIHZhbHVlOiA1CiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIueUteivnSIsCiAgICAgICAgdmFsdWU6IDYKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5Lia5Yqh5ZGYIiwKICAgICAgICB2YWx1ZTogNwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLor6bnu4blnLDlnYAiLAogICAgICAgIHZhbHVlOiA4CiAgICAgIH1dLAogICAgICBvdXRTdGF0dXNfbGlzdDogW3sKICAgICAgICBsYWJlbDogIuacquWHuuW6kyIsCiAgICAgICAgdmFsdWU6IDQKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5bey5Ye65bqTIiwKICAgICAgICB2YWx1ZTogNQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLpg6jliIblh7rlupMiLAogICAgICAgIHZhbHVlOiA2CiAgICAgIH1dCiAgICB9OwogIH0sCgogIGNvbXB1dGVkOiB7IC4uLm1hcEdldHRlcnMoewogICAgICBwcmludFRhZzogIk1Vc2VyL3ByaW50VGFnIgogICAgfSkKICB9LAoKICBhc3luYyBtb3VudGVkKCkgewogICAgdGhpcy5kZWxpdmVyeVR5cGUgPSBwYXJzZUludCh0aGlzLiRyb3V0ZS5xdWVyeS50eXBlKSB8fCAiIjsKCiAgICBpZiAodGhpcy4kcm91dGUubmFtZSA9PT0gIk5ld09yZGVyTGlzdCIpIHsKICAgICAgdGhpcy5hdWRpdFN0YXR1cyA9IDE7CiAgICAgIHRoaXMuYWNjZXNzQWRkID0gdGhpcy4kYWNjZXNzQ2hlY2sodGhpcy4kQWNjZXNzLm5ld09yZGVyTGlzdEFkZE9yZGVyKTsKICAgICAgdGhpcy5hY2Nlc3NBdWRpdCA9IHRoaXMuJGFjY2Vzc0NoZWNrKHRoaXMuJEFjY2Vzcy5uZXdPcmRlckxpdFVwZGF0ZUF1ZGl0U3RhdHVzKTsKICAgICAgdGhpcy5hY2Nlc3NTZWFyY2ggPSB0aGlzLiRhY2Nlc3NDaGVjayh0aGlzLiRBY2Nlc3MubmV3T3JkZXJMaXRTZWFyY2gpOwogICAgfSBlbHNlIGlmICh0aGlzLiRyb3V0ZS5uYW1lID09PSAiT3JkZXJRdWVyeSIpIHsKICAgICAgdGhpcy5hdWRpdFN0YXR1cyA9IDI7CiAgICAgIHRoaXMuYWNjZXNzQWRkID0gdGhpcy4kYWNjZXNzQ2hlY2sodGhpcy4kQWNjZXNzLm9yZGVyUXVlcnlBZGRPcmRlcik7CiAgICAgIHRoaXMuYWNjZXNzQXVkaXQgPSB0aGlzLiRhY2Nlc3NDaGVjayh0aGlzLiRBY2Nlc3Mub3JkZXJRdWVyeVVwZGF0ZUF1ZGl0U3RhdHVzKTsKICAgICAgdGhpcy5hY2Nlc3NTZWFyY2ggPSB0aGlzLiRhY2Nlc3NDaGVjayh0aGlzLiRBY2Nlc3Mub3JkZXJRdWVyeVNlYXJjaCk7CiAgICB9CgogICAgdGhpcy5hY2Nlc3NEZXRhaWwgPSB0aGlzLiRhY2Nlc3NDaGVjayh0aGlzLiRBY2Nlc3MubmV3T3JkZXJMaXRHZXRPcmRlckluZm9CeUlkKTsgLy8g5Yiw5pyf5o+Q56S6CgogICAgdGhpcy5lbnRlckV4cGlyZVRpbWUoKTsKICAgIGF3YWl0IHRoaXMuZ2V0QWxsT3JkZXIoKTsKICAgIGF3YWl0IHRoaXMuZ2V0QWxsUGF5bWVudCgpOwogICAgYXdhaXQgdGhpcy5nZXRBbGxDdXN0b21lclNvdXJjZSgpOwogIH0sCgogIGFjdGl2YXRlZCgpIHsKICAgIGlmICh0aGlzLiRfaXNJbml0KCkpIHJldHVybjsKICAgIHRoaXMuZ2V0RGF0YSgpOwogIH0sCgogIG1ldGhvZHM6IHsKICAgIGFzeW5jIHNob3dHb29kcyhyb3cpIHsKICAgICAgY29uc3QgewogICAgICAgIGRhdGEKICAgICAgfSA9IGF3YWl0IGdldE9yZGVySW5mb0J5SWQocm93LnVzZXJDZW50ZXJJZCwgewogICAgICAgIG9yZGVySWQ6IHJvdy5pZAogICAgICB9KTsKICAgICAgdGhpcy5pc19zaG93X2dvb2RzID0gdHJ1ZTsKICAgICAgdGhpcy5nb29kc0RhdGFEID0gZGF0YS5nb29kc0RhdGE7CiAgICB9LAoKICAgIHJldHVybk9yZGVyKHJvdykgewogICAgICBjb25zdCBhbGxvd1JldHVybiA9IHJvdy5hbGxvd1JldHVybjsKICAgICAgY29uc3QgYWxsb3dSZXR1cm5EYXkgPSByb3cuYWxsb3dSZXR1cm5EYXk7CgogICAgICBpZiAoYWxsb3dSZXR1cm4gPT09IDQpIHsKICAgICAgICB0aGlzLiRjb25maXJtKGDlt7Lnu4/otoXov4cke2FsbG93UmV0dXJuRGF5feWkqSzlu7rorq7kuI3og73pgIDotKcsIOaYr+WQpuehruWumuW8uuWItumAgOi0pz9gLCAi5o+Q6YaSIiwgewogICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAiZXJyb3IiLAogICAgICAgICAgICBtZXNzYWdlOiAi5L2g5bey56Gu5a6a5by65Yi26YCA6LSnISIKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKGAvb3JkZXIvbWFuYWdlTy9BZGRXYXJlT3JkZXI/dXNlckNlbnRlcklkPSR7cm93LnVzZXJDZW50ZXJJZH0mb3JkZXJJZD0ke3Jvdy5pZH1gKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaChgL29yZGVyL21hbmFnZU8vQWRkV2FyZU9yZGVyP3VzZXJDZW50ZXJJZD0ke3Jvdy51c2VyQ2VudGVySWR9Jm9yZGVySWQ9JHtyb3cuaWR9YCk7CiAgICAgIH0KICAgIH0sCgogICAgLy8g5a6i5oi357G75Z6LCiAgICBhc3luYyBnZXRBbGxDdXN0b21lclNvdXJjZSgpIHsKICAgICAgaWYgKHRoaXMuY3VzdG9tZXJUeXBlLmxlbmd0aCkgewogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldEFsbEN1c3RvbWVyU291cmNlKHsKICAgICAgICBwYWdlOiAxLAogICAgICAgIHBhZ2VTaXplOiA5OTkKICAgICAgfSk7CiAgICAgIHRoaXMuY3VzdG9tZXJUeXBlID0gZGF0YS5kYXRhOwogICAgfSwKCiAgICBjdXN0b21lclR5cGVzKHZhbCkgewogICAgICB0aGlzLnNlYXJjaERhdGUuY3VzdG9tZXJUeXBlID0gdmFsOwogICAgICB0aGlzLnBhZ2VDaGFuZ2UoMSk7CiAgICB9LAoKICAgIGNsZWFyU2hvcCgpIHsKICAgICAgdGhpcy5zZWFyY2hEYXRlLnNob3BJZCA9ICIiOwogICAgICB0aGlzLnBhZ2VDaGFuZ2UoMSk7CiAgICB9LAoKICAgIHNlbFNob3AodmFsKSB7CiAgICAgIHRoaXMucGFnZUNoYW5nZSgxKTsKICAgIH0sCgogICAgLy8g6I635Y+W5YiX6KGoCiAgICBhc3luYyBnZXRBbGxPcmRlcihleHBvcnRzKSB7CiAgICAgIGxldCBzZWFyY2ggPSB7fTsKCiAgICAgIGlmICh0aGlzLmRlbGl2ZXJ5VHlwZSkgewogICAgICAgIHNlYXJjaC5kZWxpdmVyeVR5cGUgPSAyOwogICAgICB9IC8vIGlmICh0aGlzLiRyb3V0ZS5uYW1lID09PSAiTmV3T3JkZXJMaXN0IikgewogICAgICAvLyAgIHRoaXMuc2VhcmNoRGF0ZS5vcmRlclN0YXR1cyA9ICJ3YWl0QXVkaXQiOwogICAgICAvLyAgIHNlYXJjaC5hdWRpdFN0YXR1cyA9IDE7CiAgICAgIC8vIH0KICAgICAgLy8gaWYgKHRoaXMuJHJvdXRlLm5hbWUgPT09ICJPcmRlclF1ZXJ5IikgewogICAgICAvLyAgIHNlYXJjaC5hdWRpdFN0YXR1cyA9IDI7CiAgICAgIC8vIH0KCgogICAgICBsZXQgcGFyYW1zID0gewogICAgICAgIHBhZ2U6IHRoaXMucGFnZSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwKICAgICAgICBzZWFyY2g6IHNlYXJjaAogICAgICB9OwoKICAgICAgaWYgKGV4cG9ydHMpIHsKICAgICAgICBwYXJhbXMuZXhwb3J0ID0gMTsKICAgICAgICBjb25zdCB0YXJnZXQgPSBhd2FpdCBleHBvcnRHZXRBbGxPcmRlcih7IC4uLnBhcmFtcywKICAgICAgICAgIHN0YXRlOiB0aGlzLm9wdGlvbnNfdmFsdWUKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0QWxsT3JkZXIoeyAuLi5wYXJhbXMsCiAgICAgICAgICBzdGF0ZTogdGhpcy5vcHRpb25zX3ZhbHVlCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5vcmRlcl9saXN0ID0gZGF0YS5kYXRhOwogICAgICAgIHRoaXMudG90YWwgPSBkYXRhLnBhZ2VUb3RhbDsKICAgICAgfQogICAgfSwKCiAgICAvLyDmlK/ku5jmlrnlvI/lsZXlvIAKICAgIHBheXR5cGV2aXNpYmxlQ2hhbmdlKHZhbCkgewogICAgICBpZiAodmFsICYmICF0aGlzLnBheV90eXBlX2xpc3QubGVuZ3RoKSB7CiAgICAgICAgdGhpcy5nZXRBbGxQYXltZW50KCk7CiAgICAgIH0KICAgIH0sCgogICAgLy8g6I635Y+W5pSv5LuY5pa55byPCiAgICBhc3luYyBnZXRBbGxQYXltZW50KCkgewogICAgICBpZiAodGhpcy5wYXlfdHlwZV9saXN0Lmxlbmd0aCkgewogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldEFsbFBheW1lbnQoewogICAgICAgIHBhZ2U6IDEsCiAgICAgICAgcGFnZVNpemU6IDIwCiAgICAgIH0pOwogICAgICB0aGlzLnBheV90eXBlX2xpc3QgPSBkYXRhLmRhdGE7CiAgICB9LAoKICAgIC8vIOiuouWNleaQnOe0onNlYXJjaE9yZGVyCiAgICBhc3luYyBrZXl3b3JkU2VhcmNoKGV4cG9ydHMpIHsKICAgICAgY29uc3QgcGFyYW1zID0gewogICAgICAgIGtleXdvcmRUeXBlOiB0aGlzLnNlYXJjaERhdGUua2V5d29yZFR5cGUsCiAgICAgICAga2V5d29yZDogdGhpcy5zZWFyY2hEYXRlLmtleXdvcmQsCiAgICAgICAgcGF5VHlwZTogdGhpcy5zZWFyY2hEYXRlLnBheVR5cGUsCiAgICAgICAgc2hvcElkOiB0aGlzLnNlYXJjaERhdGUuc2hvcElkLAogICAgICAgIHN0YXJ0VGltZTogdGhpcy5zZWFyY2hEYXRlLnN0YXJ0LAogICAgICAgIGVuZFRpbWU6IHRoaXMuc2VhcmNoRGF0ZS5lbmQsCiAgICAgICAgY3VzdG9tZXJJZDogdGhpcy5zZWFyY2hEYXRlLmN1c3RvbWVySWQsCiAgICAgICAgY3VzdG9tZXJUeXBlOiB0aGlzLnNlYXJjaERhdGUuY3VzdG9tZXJUeXBlLAogICAgICAgIHNvdXJjZTogdGhpcy5zZWFyY2hEYXRlLnNvdXJjZSwKICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsCiAgICAgICAgcmV0dXJuU3RhdHVzOiB0aGlzLnNlYXJjaERhdGUuUmV0dXJuLAogICAgICAgIHN0YXRlOiB0aGlzLm9wdGlvbnNfdmFsdWUsCiAgICAgICAgb3V0U3RhdHVzOiB0aGlzLnNlYXJjaERhdGUub3V0U3RhdHVzLAogICAgICAgIHBheVN0YXR1czogdGhpcy5zZWFyY2hEYXRlLnBheVN0YXR1cwogICAgICB9OwoKICAgICAgaWYgKHRoaXMuZGVsaXZlcnlUeXBlKSB7CiAgICAgICAgcGFyYW1zLmRlbGl2ZXJ5VHlwZSA9IDI7CiAgICAgIH0KCiAgICAgIGlmIChleHBvcnRzKSB7CiAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXdhaXQgZXhwb3J0S2V5d29yZFNlYXJjaCh7IC4uLnBhcmFtcywKICAgICAgICAgIGV4cG9ydDogMQogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBrZXl3b3JkU2VhcmNoKHsgLi4ucGFyYW1zCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5vcmRlcl9saXN0ID0gZGF0YS5kYXRhOwogICAgICAgIHRoaXMudG90YWwgPSBkYXRhLnBhZ2VUb3RhbDsKICAgICAgfQogICAgfSwKCiAgICAvLyAg5Yik5patCiAgICBnZXREYXRhKGV4cG9ydHMpIHsKICAgICAgY29uc3Qgb2JqID0gewogICAgICAgIGtleXdvcmQ6IHRoaXMuc2VhcmNoRGF0ZS5rZXl3b3JkLAogICAgICAgIHBheVR5cGU6IHRoaXMuc2VhcmNoRGF0ZS5wYXlUeXBlLAogICAgICAgIHNob3BJZDogdGhpcy5zZWFyY2hEYXRlLnNob3BJZCwKICAgICAgICBzdGFydFRpbWU6IHRoaXMuc2VhcmNoRGF0ZS5zdGFydCwKICAgICAgICBlbmRUaW1lOiB0aGlzLnNlYXJjaERhdGUuZW5kLAogICAgICAgIGN1c3RvbWVySWQ6IHRoaXMuc2VhcmNoRGF0ZS5jdXN0b21lcklkLAogICAgICAgIGN1c3RvbWVyVHlwZTogdGhpcy5zZWFyY2hEYXRlLmN1c3RvbWVyVHlwZSwKICAgICAgICBzb3VyY2U6IHRoaXMuc2VhcmNoRGF0ZS5zb3VyY2UsCiAgICAgICAgcmV0dXJuU3RhdHVzOiB0aGlzLnNlYXJjaERhdGUuUmV0dXJuLAogICAgICAgIG91dFN0YXR1czogdGhpcy5zZWFyY2hEYXRlLm91dFN0YXR1cywKICAgICAgICBwYXlTdGF0dXM6IHRoaXMuc2VhcmNoRGF0ZS5wYXlTdGF0dXMKICAgICAgfTsKICAgICAgY29uc3QgaXNLZXkgPSB0aGlzLiRfY29tbW9uLmlzU2VyY2gob2JqKTsKCiAgICAgIGlmIChpc0tleSkgewogICAgICAgIHRoaXMua2V5d29yZFNlYXJjaChleHBvcnRzKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmdldEFsbE9yZGVyKGV4cG9ydHMpOwogICAgICB9CiAgICB9LAoKICAgIC8vIOmAieaLqeWRmOW3pQogICAgc3RhZmZTZWwodmFsKSB7CiAgICAgIGNvbnN0IHJvdyA9IHZhbFswXTsKICAgICAgdGhpcy4kY29uZmlybSgi56Gu5a6a6KaB5YiG6YWN57uZ6K+l5Lia5Yqh5ZGY5ZCXPyIsICLmj5DnpLoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICB0aGlzLnNldFNhbGVzTWFuKHJvdy5pZCwgcm93LnN0YWZmTmFtZSk7CiAgICAgIH0pOwogICAgfSwKCiAgICAvLyDmuIXpmaTlkZjlt6XovpPlhaXmoYYKICAgIHN0YWZmQ2xlYXIoKSB7CiAgICAgIHRoaXMuc2VhcmNoRGF0ZS5zYWxlc01hbklkID0gIiI7CiAgICAgIHRoaXMuc2VhcmNoX2Zvcm0uc3RhZmYgPSAiIjsKICAgICAgdGhpcy5wYWdlQ2hhbmdlKDEpOwogICAgfSwKCiAgICAvLyDpgInmi6nlrqLmiLcKICAgIGN1c3RvbWVyU2VsKHZhbCwgbGlzdCkgewogICAgICB0aGlzLnNlYXJjaERhdGUuY3VzdG9tZXJJZCA9IGxpc3RbMF0uaWQ7CiAgICAgIHRoaXMucGFnZUNoYW5nZSgxKTsKICAgIH0sCgogICAgY3VzdG9tZXJDbGVhcigpIHsKICAgICAgdGhpcy5zZWFyY2hEYXRlLmN1c3RvbWVySWQgPSAiIjsKICAgICAgdGhpcy5jdXN0b21lcl9uYW1lID0gIiI7CiAgICAgIHRoaXMucGFnZUNoYW5nZSgxKTsKICAgIH0sCgogICAgLy/pgIDotKfnirbmgIEKICAgIHJldHVybnN0YXR1cygpIHsKICAgICAgdGhpcy5wYWdlQ2hhbmdlKDEpOwogICAgfSwKCiAgICAvLyAg6YCJ5oup5Yy65Z+fcmVnaW9uCiAgICByZWdpb25DaGFuZ2UodmFsKSB7CiAgICAgIGlmICh2YWwgJiYgdmFsLmxlbmd0aCkgewogICAgICAgIHRoaXMuc2VhcmNoRGF0ZS5wcm92aW5jZUNvZGUgPSB2YWxbMF07CiAgICAgICAgdGhpcy5zZWFyY2hEYXRlLmNpdHlDb2RlID0gdmFsWzFdOwogICAgICAgIHRoaXMuc2VhcmNoRGF0ZS5kaXN0cmljdENvZGUgPSB2YWxbMl07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5zZWFyY2hEYXRlLnByb3ZpbmNlQ29kZSA9ICIiOwogICAgICAgIHRoaXMuc2VhcmNoRGF0ZS5jaXR5Q29kZSA9ICIiOwogICAgICAgIHRoaXMuc2VhcmNoRGF0ZS5kaXN0cmljdENvZGUgPSAiIjsKICAgICAgfQoKICAgICAgdGhpcy5wYWdlQ2hhbmdlKDEpOwogICAgfSwKCiAgICAvLyAg6K6i5Y2V5pe26Ze0CiAgICBvcmRlckRhdGUodmFsKSB7CiAgICAgIGlmICh2YWwgJiYgdmFsLmxlbmd0aCkgewogICAgICAgIHRoaXMuc2VhcmNoRGF0ZS5zdGFydCA9IHBhcnNlSW50KHZhbFswXSAvIDEwMDApOwogICAgICAgIHRoaXMuc2VhcmNoRGF0ZS5lbmQgPSBwYXJzZUludCh2YWxbMV0gLyAxMDAwKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnNlYXJjaERhdGUuc3RhcnQgPSAiIjsKICAgICAgICB0aGlzLnNlYXJjaERhdGUuZW5kID0gIiI7CiAgICAgIH0KCiAgICAgIHRoaXMucGFnZUNoYW5nZSgxKTsKICAgIH0sCgogICAgLy8g5YiH6aG1CiAgICBwYWdlQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLnBhZ2UgPSB2YWw7CiAgICAgIHRoaXMuZ2V0RGF0YSgpOwogICAgfSwKCiAgICAvLyDmr4/pobXmlbDmja7lpKflsI/mlLnlj5gKICAgIHNpemVDaGFuZ2UodmFsKSB7CiAgICAgIHRoaXMucGFnZVNpemUgPSB2YWw7CiAgICAgIHRoaXMucGFnZUNoYW5nZSgxKTsKICAgIH0sCgogICAgZ29BZGRPcmRlcigpIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goewogICAgICAgIHBhdGg6ICIvb3JkZXIvbWFuYWdlTy9PcmRlckFkZCIKICAgICAgfSk7CiAgICB9LAoKICAgIGdvRGV0YWlsKHJvdykgewogICAgICBpZiAoIXRoaXMuYWNjZXNzRGV0YWlsKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgcGF0aDogYC9vcmRlci9tYW5hZ2VPL09yZGVyRGV0YWlscy8ke3Jvdy51c2VyQ2VudGVySWR9LyR7cm93LmlkfWAKICAgICAgfSk7CiAgICB9LAoKICAgIG9wZW5Vcmwocm93KSB7CiAgICAgIC8vIGNvbnN0IHBhcmFtcyA9IHsgdXNlckNlbnRlcklkOiByb3cudXNlckNlbnRlcklkLCBpZDogcm93LmlkIH0KICAgICAgbGV0IHJvdXRlRGF0YSA9IHRoaXMuJHJvdXRlci5yZXNvbHZlKHsKICAgICAgICBwYXRoOiBgL09yZGVyUHJpbnRpbmcvJHtyb3cudXNlckNlbnRlcklkfS8ke3Jvdy5pZH1gCiAgICAgIH0pOwogICAgICB3aW5kb3cub3Blbihyb3V0ZURhdGEuaHJlZiwgIl9ibGFuayIpOwogICAgfSwKCiAgICAvLyDljZXmja7lsI/npajmiZPljbAKICAgIGFzeW5jIHRvUHJpbnQocm93KSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0b1ByaW50KHsKICAgICAgICBvYmplY3RJZDogcm93LmlkLAogICAgICAgIG9iamVjdFR5cGU6IDEgLy8g6ZSA5ZSu5Y2VCgogICAgICB9KTsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgIG1lc3NhZ2U6ICLmk43kvZzmiJDlip8iCiAgICAgIH0pOwogICAgfSwKCiAgICAvLyDlj5bmtojorqLljZUKICAgIGFzeW5jIHVwZGF0ZU9yZGVyU3RhdHVzKHJvdykgewogICAgICB0aGlzLiRwcm9tcHQoIuivt+i+k+WFpeWPlua2iOiuouWNleWOn+WboCIsICLlj5bmtojorqLljZUiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiCiAgICAgIH0pLnRoZW4oYXN5bmMgKHsKICAgICAgICB2YWx1ZQogICAgICB9KSA9PiB7CiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHVwZGF0ZU9yZGVyU3RhdHVzKHJvdy51c2VyQ2VudGVySWQsIHsKICAgICAgICAgIG9yZGVySWQ6IHJvdy5pZCwKICAgICAgICAgIG9yZGVyU3RhdHVzOiA2LAogICAgICAgICAgY2FuY2VsUmVhc29uOiB2YWx1ZQogICAgICAgIH0pOwogICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgbWVzc2FnZTogIuWPlua2iOiuouWNleaIkOWKnyzmgqjnmoTlj5bmtojljp/lm6DmmK86ICIgKyB2YWx1ZQogICAgICAgIH0pOwogICAgICAgIHRoaXMucGFnZUNoYW5nZSgxKTsKICAgICAgfSk7IC8vIHRoaXMuJGNvbmZpcm0oIuehruWumuimgeWPlua2iOivpeiuouWNleWQlz8iLCAi5o+Q56S6IiwgewogICAgICAvLyAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgLy8gICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgLy8gICB0eXBlOiAid2FybmluZyIsCiAgICAgIC8vIH0pLnRoZW4oYXN5bmMgKCkgPT4gewogICAgICAvLyAgIGNvbnN0IGRhdGEgPSBhd2FpdCB1cGRhdGVPcmRlclN0YXR1cyhyb3cudXNlckNlbnRlcklkLCB7CiAgICAgIC8vICAgICBvcmRlcklkOiByb3cuaWQsCiAgICAgIC8vICAgfSk7CiAgICAgIC8vCiAgICAgIC8vICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgIC8vICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgIC8vICAgICBtZXNzYWdlOiAi5pON5L2c5oiQ5YqfIiwKICAgICAgLy8gICB9KTsKICAgICAgLy8gICB0aGlzLmdldERhdGEoKTsKICAgICAgLy8gfSk7CiAgICB9LAoKICAgIC8vIOaJuemHj+mAieaLqeiuouWNlQogICAgc2VsZWN0T3JkZXJDaGFuZ2UodmFsKSB7CiAgICAgIHRoaXMuY2hlY2tlZEFsbCA9IHZhbC5sZW5ndGggPT09IHRoaXMub3JkZXJfbGlzdC5sZW5ndGg7CiAgICAgIHRoaXMuc2VsZWN0ZWRfb3JkZXIgPSB2YWw7CiAgICB9LAoKICAgIC8vIOaJuemHj+WuoeaguOiuouWNlQogICAgYmF0Y2hVcGRhdGVBdWRpdFN0YXR1cygpIHsKICAgICAgbGV0IGZsYWcgPSBmYWxzZTsKICAgICAgdGhpcy5zZWxlY3RlZF9vcmRlci5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgIGlmIChpdGVtLnBheVR5cGUgPT09ICI0IiAmJiAhaXRlbS5leHRlbmRzKSB7CiAgICAgICAgICBmbGFnID0gdHJ1ZTsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6ZO26KGM5omT5qy+6ZyA6KaB5LiK5Lyg5pSv5LuY5Yet6K+B5omN5Y+v5Lul5a6h5qC477yBIik7CiAgICAgICAgICByZXR1cm47CgogICAgICAgICAgaWYgKGl0ZW0ucGF5VHlwZSA9PT0gIjQiICYmIGl0ZW0uZXh0ZW5kcy5iYW5rRGF0YS5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgZmxhZyA9IHRydWU7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6ZO26KGM5omT5qy+6ZyA6KaB5LiK5Lyg5pSv5LuY5Yet6K+B5omN5Y+v5Lul5a6h5qC477yBIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwoKICAgICAgaWYgKGZsYWcpIHsKICAgICAgICAvLyB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIumTtuihjOaJk+asvumcgOimgeS4iuS8oOaUr+S7mOWHreivgeaJjeWPr+S7peWuoeaguO+8gSIpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkX29yZGVyLmxlbmd0aCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36YCJ5oup6KaB5a6h5qC455qE6K6i5Y2VIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB0aGlzLiRjb25maXJtKCLmmK/lkKbopoHmibnph4/lrqHmoLjorqLljZXlkJc/IiwgIuaPkOekuiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oYXN5bmMgKCkgPT4gewogICAgICAgIHRoaXMuYmF0Y2hfYXVkaXRfbG9hZCA9IHRydWU7CgogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBvcmRlcklkcyA9IHRoaXMuc2VsZWN0ZWRfb3JkZXIubWFwKGl0ZW0gPT4gewogICAgICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGJhdGNoVXBkYXRlQXVkaXRTdGF0dXMoewogICAgICAgICAgICBvcmRlcklkczogb3JkZXJJZHMsCiAgICAgICAgICAgIGF1ZGl0OiB0aGlzLnVzZXJOYW1lLAogICAgICAgICAgICBhdWRpdFN0YXR1czogMgogICAgICAgICAgfSk7CiAgICAgICAgICB0aGlzLmJhdGNoX2F1ZGl0X2xvYWQgPSBmYWxzZTsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5a6h5qC45oiQ5YqfIik7CiAgICAgICAgICB0aGlzLmdldERhdGEoKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgdGhpcy5iYXRjaF9hdWRpdF9sb2FkID0gZmFsc2U7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCgogICAgLy8g5om56YeP5omT5Y2wCiAgICBiYXRjaFByaW50aW5nKCkgewogICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRfb3JkZXIubGVuZ3RoKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nopoHmiZPljbDnmoTorqLljZUiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGNvbnN0IGlkcyA9IHRoaXMuc2VsZWN0ZWRfb3JkZXIubWFwKGl0ZW0gPT4gaXRlbS5pZCk7CiAgICAgIGxldCByb3V0ZURhdGEgPSB0aGlzLiRyb3V0ZXIucmVzb2x2ZSh7CiAgICAgICAgcGF0aDogYC9PcmRlclByaW50aW5nQmV0Y2g/aWRzPSR7aWRzfWAKICAgICAgfSk7CiAgICAgIHdpbmRvdy5vcGVuKHJvdXRlRGF0YS5ocmVmLCAiX2JsYW5rIik7CiAgICB9LAoKICAgIC8vIOagh+etvuaJk+WNsAogICAgdGFnUHJpbnQocm93KSB7CiAgICAgIHRoaXMucHJpbnRfb3JkZXJfaWQgPSByb3cuaWQ7CiAgICAgIHRoaXMucHJpbnRfdXNlcl9jZW50ZXJfaWQgPSByb3cudXNlckNlbnRlcklkOwogICAgICB0aGlzLnByaW50X3Nob3cgPSB0cnVlOwogICAgfSwKCiAgICAvLyDlrqHmoLjorqLljZUKICAgIGFzeW5jIHVwZGF0ZUF1ZGl0U3RhdHVzKHJvdykgewogICAgICBpZiAocm93LnBheVR5cGUgPT09ICI0IiAmJiAhcm93LmV4dGVuZHMpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIumTtuihjOaJk+asvumcgOimgeS4iuS8oOaUr+S7mOWHreivgeaJjeWPr+S7peWuoeaguO+8gSIpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgaWYgKHJvdy5wYXlUeXBlID09PSAiNCIgJiYgcm93LmV4dGVuZHMuYmFua0RhdGEubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLpk7booYzmiZPmrL7pnIDopoHkuIrkvKDmlK/ku5jlh63or4HmiY3lj6/ku6XlrqHmoLjvvIEiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHRoaXMuJGNvbmZpcm0oIuehruWumuimgeWuoeaguOmAmui/h+ivpeiuouWNleWQlz8iLCAi5o+Q56S6IiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihhc3luYyAoKSA9PiB7CiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHVwZGF0ZUF1ZGl0U3RhdHVzKHJvdy51c2VyQ2VudGVySWQsIHsKICAgICAgICAgIG9yZGVySWQ6IHJvdy5pZCwKICAgICAgICAgIGF1ZGl0U3RhdHVzOiAyLAogICAgICAgICAgYXVkaXQ6IHRoaXMudXNlck5hbWUKICAgICAgICB9KTsKICAgICAgICB0aGlzLmdldERhdGEoKTsKICAgICAgICB0aGlzLiRjb25maXJtKCLorqLljZXlrqHmoLjmiJDlip/vvIzmmK/lkKbliY3ljrvmiZPljbA/IiwgIuaPkOekuiIsIHsKICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICB0aGlzLm9wZW5Vcmwocm93KTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIOmps+WbnuiuouWNlQogICAgYXN5bmMgZGVBdWRpdChyb3cpIHsKICAgICAgdGhpcy4kY29uZmlybSgi56Gu5a6a6KaB6amz5Zue6K+l6K6i5Y2V5ZCXPyIsICLmj5DnpLoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGFzeW5jICgpID0+IHsKICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmV2b2tlQXVkaXQocm93LmlkKTsKICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuiuouWNlemps+WbnuaIkOWKn++8gSIpOwogICAgICAgIHRoaXMuZ2V0RGF0YSgpOwogICAgICB9KTsKICAgIH0sCgogICAgY2hlY2tBbGxDaGFuZ2UoKSB7CiAgICAgIHRoaXMuJHJlZnMub3JkZXJMaXN0LnRvZ2dsZUFsbFNlbGVjdGlvbigpOwogICAgfSwKCiAgICBhc3luYyBzYWxlRm4oaWQsIGN1dG9tZXJpZCkgewogICAgICBpZiAoaWQpIHsKICAgICAgICB0aGlzLm9yZGVyX2lkID0gaWQ7CiAgICAgIH0KCiAgICAgIGF3YWl0IHRoaXMuZ2V0Q3VzdG9tZXJJbmZvKGN1dG9tZXJpZCk7CiAgICB9LAoKICAgIC8vICDlrqLmiLfor6bmg4UgZ2V0Q3VzdG9tZXJJbmZvCiAgICBhc3luYyBnZXRDdXN0b21lckluZm8oY3V0b21lcmlkKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRDdXN0b21lckluZm8oY3V0b21lcmlkKTsKCiAgICAgIGlmIChkYXRhLnNhbGVzTWFuSWQpIHsKICAgICAgICBhd2FpdCB0aGlzLnNldFNhbGVzTWFuKGRhdGEuc2FsZXNNYW5JZCwgZGF0YS5zYWxlc01hbk5hbWUsIDUpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuc3RhZmZfc2hvdyA9IHRydWU7CiAgICAgIH0KICAgIH0sCgogICAgYXN5bmMgc2V0U2FsZXNNYW4oaWQsIHNhbGVzTWFuTmFtZSwgaWZTYWxlc01hbikgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgc2V0U2FsZXNNYW4oewogICAgICAgIG9yZGVySWQ6IHRoaXMub3JkZXJfaWQsCiAgICAgICAgc2FsZXNNYW5OYW1lOiBzYWxlc01hbk5hbWUsCiAgICAgICAgc2FsZXNNYW5JZDogaWQsCiAgICAgICAgaWZTYWxlc01hbjogaWZTYWxlc01hbiB8fCA0CiAgICAgIH0pOwogICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuWIhumFjeaIkOWKn++8gSIpOwogICAgICB0aGlzLmdldERhdGEoKTsKICAgIH0sCgogICAgdGFibGVSb3dDbGFzc05hbWUoewogICAgICByb3csCiAgICAgIHJvd0luZGV4CiAgICB9KSB7CiAgICAgIGlmIChwYXJzZUludCh0aGlzLnByaW50VGFnKSA9PT0gNSAmJiByb3cucHJpbnRpbmdOdW0gPiAwKSB7CiAgICAgICAgcmV0dXJuICJwcmludC1yb3ciOwogICAgICB9CgogICAgICByZXR1cm4gIiI7CiAgICB9LAoKICAgIC8vIOWIt+aWsOmhtemdogogICAgcmVzZXRQYWdlKCkgewogICAgICB0aGlzLmdldERhdGEoKTsKICAgIH0sCgogICAgY2hhbmdlKCkgewogICAgICB0aGlzLnRpbWVGbGFnID0gdGhpcy5jaGVja0xpc3Quc29tZShpdGVtID0+IGl0ZW0gPT09ICLliJvlu7rml7bpl7QiKTsKICAgICAgdGhpcy5jbGllbnRGbGFnID0gdGhpcy5jaGVja0xpc3Quc29tZShpdGVtID0+IGl0ZW0gPT09ICLlrqLmiLciKTsKICAgICAgdGhpcy5tb25leUZsYWcgPSB0aGlzLmNoZWNrTGlzdC5zb21lKGl0ZW0gPT4gaXRlbSA9PT0gIuiuouWNlemHkeminSIpOwogICAgICB0aGlzLmNvbW1vZGl0eUZsYWcgPSB0aGlzLmNoZWNrTGlzdC5zb21lKGl0ZW0gPT4gaXRlbSA9PT0gIuWVhuWTgSIpOwogICAgICB0aGlzLmluZGVudEZsYWcgPSB0aGlzLmNoZWNrTGlzdC5zb21lKGl0ZW0gPT4gaXRlbSA9PT0gIuiuouWNleeKtuaAgSIpOwogICAgICB0aGlzLnBheW1lbnRGbGFnID0gdGhpcy5jaGVja0xpc3Quc29tZShpdGVtID0+IGl0ZW0gPT09ICLku5jmrL7nirbmgIEiKTsKICAgICAgdGhpcy5hdWRpdEZsYWcgPSB0aGlzLmNoZWNrTGlzdC5zb21lKGl0ZW0gPT4gaXRlbSA9PT0gIuWuoeaguOeKtuaAgSIpOwogICAgICB0aGlzLmRpc3RyaWJ1dGlvbkZsYWcgPSB0aGlzLmNoZWNrTGlzdC5zb21lKGl0ZW0gPT4gaXRlbSA9PT0gIumFjemAgeaWueW8jyIpOwogICAgICB0aGlzLnBheUZsYWcgPSB0aGlzLmNoZWNrTGlzdC5zb21lKGl0ZW0gPT4gaXRlbSA9PT0gIuaUr+S7mOaWueW8jyIpOwogICAgICB0aGlzLnN0YWZmRmxhZyA9IHRoaXMuY2hlY2tMaXN0LnNvbWUoaXRlbSA9PiBpdGVtID09PSAi5omA5bGe5ZGY5belIik7CiAgICAgIHRoaXMuc291cmNlRmxhZyA9IHRoaXMuY2hlY2tMaXN0LnNvbWUoaXRlbSA9PiBpdGVtID09PSAi6K6i5Y2V5p2l5rqQIik7CiAgICAgIHRoaXMubWFya0ZsYWcgPSB0aGlzLmNoZWNrTGlzdC5zb21lKGl0ZW0gPT4gaXRlbSA9PT0gIuiuouWNleWPtyIpOwogICAgICB0aGlzLnNob3BGbGFnID0gdGhpcy5jaGVja0xpc3Quc29tZShpdGVtID0+IGl0ZW0gPT09ICLllYbpk7oiKTsKICAgIH0sCgogICAgLy8g5YaN5qyh5Ye65bqTCiAgICBhc3luYyByZVN0b2NrT3V0KHJvdykgewogICAgICB0aGlzLiRjb25maXJtKCLmmK/lkKbnoa7orqTorqLljZXlho3mrKHlh7rlupM/IiwgIuaPkOekuiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oYXN5bmMgKCkgPT4gewogICAgICAgIGNvbnN0IHsKICAgICAgICAgIGRhdGEKICAgICAgICB9ID0gYXdhaXQgcmVTdG9ja091dChyb3cuaWQpOwogICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5YaN5qyh5Ye65bqT5oiQ5YqfIik7CiAgICAgICAgdGhpcy5nZXREYXRhKCk7CiAgICAgIH0pOwogICAgfSwKCiAgICBleHByZXNzSW5mb3JtYXRpb24ocm93KSB7CiAgICAgIHRoaXMub3V0X2lkID0gcm93LmlkOwogICAgICB0aGlzLm91dF9kZXRhaWwgPSByb3c7CiAgICAgIHRoaXMucmVjZWl2ZWRfZGF0YSA9IHsgLi4ucm93LnJlY2VpdmVEYXRhLAogICAgICAgIG9yZGVySWQ6IHJvdy5pZCwKICAgICAgICBkZWxpdmVyeU5vOiByb3cuZGVsaXZlcnlObywKICAgICAgICBleHByZXNzSWQ6IHJvdy5leHByZXNzSWQsCiAgICAgICAgZXhwcmVzc05hbWU6IHJvdy5leHByZXNzTmFtZSwKICAgICAgICBwYWdlOiAib3JkZXIiCiAgICAgIH07CiAgICAgIHRoaXMuc2hvd19vdXQgPSB0cnVlOwogICAgfSwKCiAgICBvcmRlckF1ZGl0Q29uZmlybSgpIHsKICAgICAgdGhpcy5nZXREYXRhKCk7CiAgICAgIHRoaXMuc2hvd19vdXQgPSBmYWxzZTsKICAgIH0sCgogICAgbG9naXN0aWNzSW5mb3JtYXRpb24ocm93KSB7CiAgICAgIGlmIChyb3cub3JkZXJNc2cgPT09ICLlvoXlh7rlupMiIHx8IHJvdy5vcmRlck1zZyA9PT0gIuW+heWuoeaguCIpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlKCLor7flhYjlrqHmoLgiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHRoaXMubG9naXN0aWNzRmxhZyA9IHRydWU7CiAgICAgIHRoaXMubG9naXN0aWNzTGlzdCA9IHJvdzsKICAgIH0sCgogICAgLy8g5LiA6ZSu6YCA5qy+CiAgICByZXRBbW91bnQocm93KSB7CiAgICAgIHRoaXMuJGNvbmZpcm0oYOehruWumiR7cGFyc2VJbnQocm93LnBheVN0YXR1cykgPT09IDUgPyAi5LiA6ZSu6YCA5qy+IiA6ICLkuIDplK7lroznu5MifeWQlz9gLCAi5o+Q56S6IiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihhc3luYyAoKSA9PiB7CiAgICAgICAgY29uc3QgewogICAgICAgICAgZGF0YQogICAgICAgIH0gPSBhd2FpdCByZXRBbW91bnQoewogICAgICAgICAgb3JkZXJJZDogcm93LmlkCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgICBtZXNzYWdlOiBkYXRhCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5nZXREYXRhKCk7CiAgICAgIH0pOwogICAgfSwKCiAgICBwYXltZW50KHJvdykgewogICAgICB0aGlzLmJhbGFuY2VBZGp1c3RtZW50ID0gdHJ1ZTsKICAgICAgdGhpcy5mb3JtRGF0YSA9IHsKICAgICAgICBjdXN0b21lcklkOiByb3cuY3VzdG9tZXJJZCwKICAgICAgICBjdXN0b21lck5hbWU6IHJvdy5jdXN0b21lck5hbWUsCiAgICAgICAgc2hvcElkOiByb3cuc2hvcElkLAogICAgICAgIHNob3BOYW1lOiByb3cuc2hvcE5hbWUsCiAgICAgICAgaWQ6IHJvdy5pZCwKICAgICAgICBubzogcm93Lm5vLAogICAgICAgIHBheUFtb3VudDogcm93LnBheUFtb3VudCwKICAgICAgICBkaXNjb3VudE1vbmV5OiAiIiwKICAgICAgICBtb25leTogIiIsCiAgICAgICAgYWNjb3VudElkOiAiIiwKICAgICAgICBhY2NvdW50TnVtYmVyOiAiIiwKICAgICAgICBhY2NvdW50TmFtZTogIiIKICAgICAgfTsKICAgIH0sCgogICAgYWNjb3VudHNlbCh2YWwpIHsKICAgICAgdGhpcy5mb3JtRGF0YS5hY2NvdW50SWQgPSB2YWxbMF0uaWQ7CiAgICAgIHRoaXMuZm9ybURhdGEuYWNjb3VudE51bWJlciA9IHZhbFswXS5hY2NvdW50TnVtYmVyOwogICAgICB0aGlzLmZvcm1EYXRhLmFjY291bnROYW1lID0gdmFsWzBdLm5hbWU7CiAgICB9LAoKICAgIGNsb3NlQmFsYW5jZUFkanVzdG1lbnQoZm9ybURhdGEpIHsKICAgICAgdGhpcy5iYWxhbmNlQWRqdXN0bWVudCA9IGZhbHNlOwogICAgICB0aGlzLmZvcm1EYXRhID0gewogICAgICAgIGN1c3RvbWVySWQ6ICIiLAogICAgICAgIGN1c3RvbWVyTmFtZTogIiIsCiAgICAgICAgc2hvcElkOiAiIiwKICAgICAgICBzaG9wTmFtZTogIiIsCiAgICAgICAgaWQ6ICIiLAogICAgICAgIG5vOiAiIiwKICAgICAgICBwYXlBbW91bnQ6ICIiLAogICAgICAgIGRpc2NvdW50TW9uZXk6ICIiLAogICAgICAgIG1vbmV5OiAiIiwKICAgICAgICBhY2NvdW50SWQ6ICIiLAogICAgICAgIGFjY291bnROdW1iZXI6ICIiLAogICAgICAgIGFjY291bnROYW1lOiAiIgogICAgICB9OwogICAgICB0aGlzLiRyZWZzW2Zvcm1EYXRhXS5yZXNldEZpZWxkcygpOwogICAgICB0aGlzLnBhZ2VDaGFuZ2UoMSk7CiAgICB9LAoKICAgIGFzeW5jIGFkZFJlY2VpdmVkKCkgewogICAgICBpZiAoIXRoaXMuZm9ybURhdGEuYWNjb3VudElkKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nmlLbmrL7otKbmiLciKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGlmICghdGhpcy5mb3JtRGF0YS5tb25leSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36L6T5YWl5pS25qy+6YeR6aKdIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgYWRkUmVjZWl2ZWQoewogICAgICAgIGFjY291bnRMaXN0OiBbewogICAgICAgICAgYWNjb3VudElkOiB0aGlzLmZvcm1EYXRhLmFjY291bnRJZCwKICAgICAgICAgIGFjY291bnROYW1lOiB0aGlzLmZvcm1EYXRhLmFjY291bnROYW1lLAogICAgICAgICAgYWNjb3VudE51bWJlcjogdGhpcy5mb3JtRGF0YS5hY2NvdW50TnVtYmVyLAogICAgICAgICAgZGlzY291bnRNb25leTogdGhpcy5mb3JtRGF0YS5kaXNjb3VudE1vbmV5LAogICAgICAgICAgbW9uZXk6IHRoaXMuZm9ybURhdGEubW9uZXksCiAgICAgICAgICBmaW5hbE1vbmV5OiB0aGlzLmZvcm1EYXRhLm1vbmV5IC0gdGhpcy5mb3JtRGF0YS5kaXNjb3VudE1vbmV5LAogICAgICAgICAgcGF5V2F5OiAiIiwKICAgICAgICAgIHJlbWFyazogIiIKICAgICAgICB9XSwKICAgICAgICBjcmVhdGVUaW1lOiAiIiwKICAgICAgICBjdXJyZW50QWNjb3VudE5hbWU6IHRoaXMudXNlck5hbWUsCiAgICAgICAgY3VzdG9tZXJJZDogdGhpcy5mb3JtRGF0YS5jdXN0b21lcklkLAogICAgICAgIGN1c3RvbWVyTmFtZTogdGhpcy5mb3JtRGF0YS5jdXN0b21lck5hbWUsCiAgICAgICAgZmluYW5jZVR5cGVJZDogMiwKICAgICAgICBmaW5hbmNlVHlwZTogIumUgOWUruaUtuasviIsCiAgICAgICAgcmVjZWlwdFRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCwKICAgICAgICBzaG9wSWQ6IHRoaXMuZm9ybURhdGEuc2hvcElkLAogICAgICAgIHNob3BOYW1lOiB0aGlzLmZvcm1EYXRhLnNob3BOYW1lLAogICAgICAgIHNvdXJjZU5vOiB0aGlzLmZvcm1EYXRhLm5vLAogICAgICAgIHNvdXJjZUlkOiB0aGlzLmZvcm1EYXRhLmlkLAogICAgICAgIG9yaWdpbklkOiB0aGlzLmZvcm1EYXRhLmlkLAogICAgICAgIG9yaWdpbk5vOiB0aGlzLmZvcm1EYXRhLm5vLAogICAgICAgIHNvdXJjZU5vTW9uZXk6ICIiCiAgICAgIH0pOwogICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuaUtuasvuWNleWIm+W7uuaIkOWKn++8gSIpOwogICAgICB0aGlzLmNsb3NlQmFsYW5jZUFkanVzdG1lbnQoImZvcm1EYXRhIik7CiAgICB9LAoKICAgIC8vIOWPlua2iOiuouWNleWuoeaguAogICAgY2FuY2VsT3JkZXJBZGl0KHJvdykgewogICAgICB0aGlzLm9yZGVyX2l0ZW0gPSByb3c7CiAgICAgIHRoaXMuY2FuY2VsX3JlYXNvbiA9IHJvdy5leHRlbmRzLmNhbmNlbFJlYXNvbjsKICAgICAgdGhpcy5jYW5jZWxfdGlwID0gdHJ1ZTsKICAgIH0sCgogICAgYXN5bmMgY2FuY2VsUmVqZWN0KCkgewogICAgICBpZiAoIXRoaXMuY2FuY2VsUmVqZWN0UmVhc29uKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAid2FybmluZyIsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl5ouS57ud5Y6f5ZugIgogICAgICAgIH0pOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHVwZGF0ZU9yZGVyU3RhdHVzKHRoaXMub3JkZXJfaXRlbS51c2VyQ2VudGVySWQsIHsKICAgICAgICBvcmRlcklkOiB0aGlzLm9yZGVyX2l0ZW0uaWQsCiAgICAgICAgb3JkZXJTdGF0dXM6IDcsCiAgICAgICAgY2FuY2VsUmVqZWN0UmVhc29uOiB0aGlzLmNhbmNlbFJlamVjdFJlYXNvbgogICAgICB9KTsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgIG1lc3NhZ2U6ICLmgqjlt7Lmi5Lnu53lrqLmiLfnmoTlj5bmtojorqLljZXnlLPor7cs5Y6f5Zug5pivOiAiICsgdGhpcy5jYW5jZWxSZWplY3RSZWFzb24KICAgICAgfSk7CiAgICAgIHRoaXMuY2FuY2VsX3RpcCA9IGZhbHNlOwogICAgICB0aGlzLnBhZ2VDaGFuZ2UodGhpcy5wYWdlKTsKICAgIH0sCgogICAgYXN5bmMgY2FuY2VsQ29uZmlybSgpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHVwZGF0ZU9yZGVyU3RhdHVzKHRoaXMub3JkZXJfaXRlbS51c2VyQ2VudGVySWQsIHsKICAgICAgICBvcmRlcklkOiB0aGlzLm9yZGVyX2l0ZW0uaWQsCiAgICAgICAgb3JkZXJTdGF0dXM6IDYsCiAgICAgICAgY2FuY2VsUmVhc29uOiAi5bel5L2c5Lq65ZGY5ZCM5oSP5a6i5oi35Li75Yqo55qE5Y+R6LW35Y+W5raI6K6i5Y2VIgogICAgICB9KTsKICAgICAgdGhpcy5jYW5jZWxfdGlwID0gZmFsc2U7CiAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICBtZXNzYWdlOiAi5pON5L2c5oiQ5YqfIgogICAgICB9KTsKICAgICAgdGhpcy5wYWdlQ2hhbmdlKHRoaXMucGFnZSk7CiAgICB9CgogIH0KfTs="},null]}