| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/element-ui/lib/option.js","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/element-ui/lib/option.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:cmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbCIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5kZXNjcmlwdGlvbiIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5pdGVyYXRvciIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC50by1zdHJpbmctdGFnIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0Iik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5kZXgtb2YiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb21lIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZSIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmpzb24udG8tc3RyaW5nLXRhZyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm1hdGgudG8tc3RyaW5nLXRhZyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3RvciIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmciKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuY29uc3RydWN0b3IiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50by1zdHJpbmciKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yIik7Cgp2YXIgX3R5cGVvZjIgPSByZXF1aXJlKCIvdXNyL2xvY2FsL2RldmVsb3AvcGhwL3d3dy93YWliYW8vcHJvamVjdC9OTjIwMjAwNjA4MDEvYWRkb25zL2FkbWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZiIpOwoKbW9kdWxlLmV4cG9ydHMgPQovKioqKioqLwpmdW5jdGlvbiAobW9kdWxlcykgewogIC8vIHdlYnBhY2tCb290c3RyYXAKCiAgLyoqKioqKi8KICAvLyBUaGUgbW9kdWxlIGNhY2hlCgogIC8qKioqKiovCiAgdmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTsKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uCgogIC8qKioqKiovCgogIGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHsKICAgIC8qKioqKiovCgogICAgLyoqKioqKi8KICAgIC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZQoKICAgIC8qKioqKiovCiAgICBpZiAoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHsKICAgICAgLyoqKioqKi8KICAgICAgcmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7CiAgICAgIC8qKioqKiovCiAgICB9CiAgICAvKioqKioqLwogICAgLy8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSkKCiAgICAvKioqKioqLwoKCiAgICB2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7CiAgICAgIC8qKioqKiovCiAgICAgIGk6IG1vZHVsZUlkLAoKICAgICAgLyoqKioqKi8KICAgICAgbDogZmFsc2UsCgogICAgICAvKioqKioqLwogICAgICBleHBvcnRzOiB7fQogICAgICAvKioqKioqLwoKICAgIH07CiAgICAvKioqKioqLwoKICAgIC8qKioqKiovCiAgICAvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb24KCiAgICAvKioqKioqLwoKICAgIG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pOwogICAgLyoqKioqKi8KCiAgICAvKioqKioqLwogICAgLy8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZAoKICAgIC8qKioqKiovCgogICAgbW9kdWxlLmwgPSB0cnVlOwogICAgLyoqKioqKi8KCiAgICAvKioqKioqLwogICAgLy8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGUKCiAgICAvKioqKioqLwoKICAgIHJldHVybiBtb2R1bGUuZXhwb3J0czsKICAgIC8qKioqKiovCiAgfQogIC8qKioqKiovCgogIC8qKioqKiovCgogIC8qKioqKiovCiAgLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXykKCiAgLyoqKioqKi8KCgogIF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7CiAgLyoqKioqKi8KCiAgLyoqKioqKi8KICAvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZQoKICAvKioqKioqLwoKICBfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzOwogIC8qKioqKiovCgogIC8qKioqKiovCiAgLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzCgogIC8qKioqKiovCgogIF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uIChleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHsKICAgIC8qKioqKiovCiAgICBpZiAoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkgewogICAgICAvKioqKioqLwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgewogICAgICAgIGVudW1lcmFibGU6IHRydWUsCiAgICAgICAgZ2V0OiBnZXR0ZXIKICAgICAgfSk7CiAgICAgIC8qKioqKiovCiAgICB9CiAgICAvKioqKioqLwoKICB9OwogIC8qKioqKiovCgogIC8qKioqKiovCiAgLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0cwoKICAvKioqKioqLwoKCiAgX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24gKGV4cG9ydHMpIHsKICAgIC8qKioqKiovCiAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7CiAgICAgIC8qKioqKiovCiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsKICAgICAgICB2YWx1ZTogJ01vZHVsZScKICAgICAgfSk7CiAgICAgIC8qKioqKiovCiAgICB9CiAgICAvKioqKioqLwoKCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7CiAgICAgIHZhbHVlOiB0cnVlCiAgICB9KTsKICAgIC8qKioqKiovCiAgfTsKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdAoKICAvKioqKioqLwogIC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdAoKICAvKioqKioqLwogIC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBucwoKICAvKioqKioqLwogIC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdAoKICAvKioqKioqLwogIC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmUKCiAgLyoqKioqKi8KCgogIF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uICh2YWx1ZSwgbW9kZSkgewogICAgLyoqKioqKi8KICAgIGlmIChtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTsKICAgIC8qKioqKiovCgogICAgaWYgKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7CiAgICAvKioqKioqLwoKICAgIGlmIChtb2RlICYgNCAmJiBfdHlwZW9mMih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTsKICAgIC8qKioqKiovCgogICAgdmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgIC8qKioqKiovCgogICAgX193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTsKICAgIC8qKioqKiovCgoKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7CiAgICAgIGVudW1lcmFibGU6IHRydWUsCiAgICAgIHZhbHVlOiB2YWx1ZQogICAgfSk7CiAgICAvKioqKioqLwoKICAgIGlmIChtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvciAodmFyIGtleSBpbiB2YWx1ZSkgewogICAgICBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24gKGtleSkgewogICAgICAgIHJldHVybiB2YWx1ZVtrZXldOwogICAgICB9LmJpbmQobnVsbCwga2V5KSk7CiAgICB9CiAgICAvKioqKioqLwoKICAgIHJldHVybiBuczsKICAgIC8qKioqKiovCiAgfTsKICAvKioqKioqLwoKICAvKioqKioqLwogIC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzCgogIC8qKioqKiovCgoKICBfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbiAobW9kdWxlKSB7CiAgICAvKioqKioqLwogICAgdmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/CiAgICAvKioqKioqLwogICAgZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsKICAgICAgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOwogICAgfSA6CiAgICAvKioqKioqLwogICAgZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsKICAgICAgcmV0dXJuIG1vZHVsZTsKICAgIH07CiAgICAvKioqKioqLwoKICAgIF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTsKICAgIC8qKioqKiovCgoKICAgIHJldHVybiBnZXR0ZXI7CiAgICAvKioqKioqLwogIH07CiAgLyoqKioqKi8KCiAgLyoqKioqKi8KICAvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwKCiAgLyoqKioqKi8KCgogIF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uIChvYmplY3QsIHByb3BlcnR5KSB7CiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOwogIH07CiAgLyoqKioqKi8KCiAgLyoqKioqKi8KICAvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfXwoKICAvKioqKioqLwoKCiAgX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gIi9kaXN0LyI7CiAgLyoqKioqKi8KCiAgLyoqKioqKi8KCiAgLyoqKioqKi8KICAvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHMKCiAgLyoqKioqKi8KCiAgcmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNTMpOwogIC8qKioqKiovCn0oCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKioqKioqLwp7CiAgLyoqKi8KICAwOgogIC8qKiovCiAgZnVuY3Rpb24gXyhtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIC8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLwoKICAgIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCAiYSIsIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIG5vcm1hbGl6ZUNvbXBvbmVudDsKICAgIH0pOwogICAgLyogZ2xvYmFscyBfX1ZVRV9TU1JfQ09OVEVYVF9fICovCiAgICAvLyBJTVBPUlRBTlQ6IERvIE5PVCB1c2UgRVMyMDE1IGZlYXR1cmVzIGluIHRoaXMgZmlsZSAoZXhjZXB0IGZvciBtb2R1bGVzKS4KICAgIC8vIFRoaXMgbW9kdWxlIGlzIGEgcnVudGltZSB1dGlsaXR5IGZvciBjbGVhbmVyIGNvbXBvbmVudCBtb2R1bGUgb3V0cHV0IGFuZCB3aWxsCiAgICAvLyBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgd2VicGFjayB1c2VyIGJ1bmRsZS4KCgogICAgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50KHNjcmlwdEV4cG9ydHMsIHJlbmRlciwgc3RhdGljUmVuZGVyRm5zLCBmdW5jdGlvbmFsVGVtcGxhdGUsIGluamVjdFN0eWxlcywgc2NvcGVJZCwgbW9kdWxlSWRlbnRpZmllciwKICAgIC8qIHNlcnZlciBvbmx5ICovCiAgICBzaGFkb3dNb2RlCiAgICAvKiB2dWUtY2xpIG9ubHkgKi8KICAgICkgewogICAgICAvLyBWdWUuZXh0ZW5kIGNvbnN0cnVjdG9yIGV4cG9ydCBpbnRlcm9wCiAgICAgIHZhciBvcHRpb25zID0gdHlwZW9mIHNjcmlwdEV4cG9ydHMgPT09ICdmdW5jdGlvbicgPyBzY3JpcHRFeHBvcnRzLm9wdGlvbnMgOiBzY3JpcHRFeHBvcnRzOyAvLyByZW5kZXIgZnVuY3Rpb25zCgogICAgICBpZiAocmVuZGVyKSB7CiAgICAgICAgb3B0aW9ucy5yZW5kZXIgPSByZW5kZXI7CiAgICAgICAgb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBzdGF0aWNSZW5kZXJGbnM7CiAgICAgICAgb3B0aW9ucy5fY29tcGlsZWQgPSB0cnVlOwogICAgICB9IC8vIGZ1bmN0aW9uYWwgdGVtcGxhdGUKCgogICAgICBpZiAoZnVuY3Rpb25hbFRlbXBsYXRlKSB7CiAgICAgICAgb3B0aW9ucy5mdW5jdGlvbmFsID0gdHJ1ZTsKICAgICAgfSAvLyBzY29wZWRJZAoKCiAgICAgIGlmIChzY29wZUlkKSB7CiAgICAgICAgb3B0aW9ucy5fc2NvcGVJZCA9ICdkYXRhLXYtJyArIHNjb3BlSWQ7CiAgICAgIH0KCiAgICAgIHZhciBob29rOwoKICAgICAgaWYgKG1vZHVsZUlkZW50aWZpZXIpIHsKICAgICAgICAvLyBzZXJ2ZXIgYnVpbGQKICAgICAgICBob29rID0gZnVuY3Rpb24gaG9vayhjb250ZXh0KSB7CiAgICAgICAgICAvLyAyLjMgaW5qZWN0aW9uCiAgICAgICAgICBjb250ZXh0ID0gY29udGV4dCB8fCAvLyBjYWNoZWQgY2FsbAogICAgICAgICAgdGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dCB8fCAvLyBzdGF0ZWZ1bAogICAgICAgICAgdGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuJHZub2RlICYmIHRoaXMucGFyZW50LiR2bm9kZS5zc3JDb250ZXh0OyAvLyBmdW5jdGlvbmFsCiAgICAgICAgICAvLyAyLjIgd2l0aCBydW5Jbk5ld0NvbnRleHQ6IHRydWUKCiAgICAgICAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIF9fVlVFX1NTUl9DT05URVhUX18gIT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgIGNvbnRleHQgPSBfX1ZVRV9TU1JfQ09OVEVYVF9fOwogICAgICAgICAgfSAvLyBpbmplY3QgY29tcG9uZW50IHN0eWxlcwoKCiAgICAgICAgICBpZiAoaW5qZWN0U3R5bGVzKSB7CiAgICAgICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIGNvbnRleHQpOwogICAgICAgICAgfSAvLyByZWdpc3RlciBjb21wb25lbnQgbW9kdWxlIGlkZW50aWZpZXIgZm9yIGFzeW5jIGNodW5rIGluZmVycmVuY2UKCgogICAgICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMpIHsKICAgICAgICAgICAgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG1vZHVsZUlkZW50aWZpZXIpOwogICAgICAgICAgfQogICAgICAgIH07IC8vIHVzZWQgYnkgc3NyIGluIGNhc2UgY29tcG9uZW50IGlzIGNhY2hlZCBhbmQgYmVmb3JlQ3JlYXRlCiAgICAgICAgLy8gbmV2ZXIgZ2V0cyBjYWxsZWQKCgogICAgICAgIG9wdGlvbnMuX3NzclJlZ2lzdGVyID0gaG9vazsKICAgICAgfSBlbHNlIGlmIChpbmplY3RTdHlsZXMpIHsKICAgICAgICBob29rID0gc2hhZG93TW9kZSA/IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIHRoaXMuJHJvb3QuJG9wdGlvbnMuc2hhZG93Um9vdCk7CiAgICAgICAgfSA6IGluamVjdFN0eWxlczsKICAgICAgfQoKICAgICAgaWYgKGhvb2spIHsKICAgICAgICBpZiAob3B0aW9ucy5mdW5jdGlvbmFsKSB7CiAgICAgICAgICAvLyBmb3IgdGVtcGxhdGUtb25seSBob3QtcmVsb2FkIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSByZW5kZXIgZm4gZG9lc24ndAogICAgICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsaXplcgogICAgICAgICAgb3B0aW9ucy5faW5qZWN0U3R5bGVzID0gaG9vazsgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9hbCBjb21wb25lbnQgaW4gdnVlIGZpbGUKCiAgICAgICAgICB2YXIgb3JpZ2luYWxSZW5kZXIgPSBvcHRpb25zLnJlbmRlcjsKCiAgICAgICAgICBvcHRpb25zLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcldpdGhTdHlsZUluamVjdGlvbihoLCBjb250ZXh0KSB7CiAgICAgICAgICAgIGhvb2suY2FsbChjb250ZXh0KTsKICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVuZGVyKGgsIGNvbnRleHQpOwogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCByZWdpc3RyYXRpb24gYXMgYmVmb3JlQ3JlYXRlIGhvb2sKICAgICAgICAgIHZhciBleGlzdGluZyA9IG9wdGlvbnMuYmVmb3JlQ3JlYXRlOwogICAgICAgICAgb3B0aW9ucy5iZWZvcmVDcmVhdGUgPSBleGlzdGluZyA/IFtdLmNvbmNhdChleGlzdGluZywgaG9vaykgOiBbaG9va107CiAgICAgICAgfQogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGV4cG9ydHM6IHNjcmlwdEV4cG9ydHMsCiAgICAgICAgb3B0aW9uczogb3B0aW9ucwogICAgICB9OwogICAgfQogICAgLyoqKi8KCiAgfSwKCiAgLyoqKi8KICAzOgogIC8qKiovCiAgZnVuY3Rpb24gXyhtb2R1bGUsIGV4cG9ydHMpIHsKICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgiZWxlbWVudC11aS9saWIvdXRpbHMvdXRpbCIpOwogICAgLyoqKi8KICB9LAoKICAvKioqLwogIDM0OgogIC8qKiovCiAgZnVuY3Rpb24gXyhtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKICAgICJ1c2Ugc3RyaWN0IjsgLy8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9wYWNrYWdlcy9zZWxlY3Qvc3JjL29wdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2E0NGM2NDImCgogICAgdmFyIHJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHsKICAgICAgdmFyIF92bSA9IHRoaXM7CgogICAgICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnQ7CgogICAgICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2g7CgogICAgICByZXR1cm4gX2MoImxpIiwgewogICAgICAgIGRpcmVjdGl2ZXM6IFt7CiAgICAgICAgICBuYW1lOiAic2hvdyIsCiAgICAgICAgICByYXdOYW1lOiAidi1zaG93IiwKICAgICAgICAgIHZhbHVlOiBfdm0udmlzaWJsZSwKICAgICAgICAgIGV4cHJlc3Npb246ICJ2aXNpYmxlIgogICAgICAgIH1dLAogICAgICAgIHN0YXRpY0NsYXNzOiAiZWwtc2VsZWN0LWRyb3Bkb3duX19pdGVtIiwKICAgICAgICBjbGFzczogewogICAgICAgICAgc2VsZWN0ZWQ6IF92bS5pdGVtU2VsZWN0ZWQsCiAgICAgICAgICAiaXMtZGlzYWJsZWQiOiBfdm0uZGlzYWJsZWQgfHwgX3ZtLmdyb3VwRGlzYWJsZWQgfHwgX3ZtLmxpbWl0UmVhY2hlZCwKICAgICAgICAgIGhvdmVyOiBfdm0uaG92ZXIKICAgICAgICB9LAogICAgICAgIG9uOiB7CiAgICAgICAgICBtb3VzZWVudGVyOiBfdm0uaG92ZXJJdGVtLAogICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uIGNsaWNrKCRldmVudCkgewogICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgIHJldHVybiBfdm0uc2VsZWN0T3B0aW9uQ2xpY2soJGV2ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sIFtfdm0uX3QoImRlZmF1bHQiLCBbX2MoInNwYW4iLCBbX3ZtLl92KF92bS5fcyhfdm0uY3VycmVudExhYmVsKSldKV0pXSwgMik7CiAgICB9OwoKICAgIHZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXTsKICAgIHJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZTsgLy8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9wYWNrYWdlcy9zZWxlY3Qvc3JjL29wdGlvbi52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2E0NGM2NDImCiAgICAvLyBFWFRFUk5BTCBNT0RVTEU6IGV4dGVybmFsICJlbGVtZW50LXVpL2xpYi9taXhpbnMvZW1pdHRlciIKCiAgICB2YXIgZW1pdHRlcl8gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwoKICAgIHZhciBlbWl0dGVyX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovX193ZWJwYWNrX3JlcXVpcmVfXy5uKGVtaXR0ZXJfKTsgLy8gRVhURVJOQUwgTU9EVUxFOiBleHRlcm5hbCAiZWxlbWVudC11aS9saWIvdXRpbHMvdXRpbCIKCgogICAgdmFyIHV0aWxfID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsgLy8gQ09OQ0FURU5BVEVEIE1PRFVMRTogLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYiEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYj8/dnVlLWxvYWRlci1vcHRpb25zIS4vcGFja2FnZXMvc2VsZWN0L3NyYy9vcHRpb24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJgoKCiAgICB2YXIgX3R5cGVvZiA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgX3R5cGVvZjIoU3ltYm9sLml0ZXJhdG9yKSA9PT0gInN5bWJvbCIgPyBmdW5jdGlvbiAob2JqKSB7CiAgICAgIHJldHVybiBfdHlwZW9mMihvYmopOwogICAgfSA6IGZ1bmN0aW9uIChvYmopIHsKICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/ICJzeW1ib2wiIDogX3R5cGVvZjIob2JqKTsKICAgIH07IC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwogICAgLy8KICAgIC8vCiAgICAvLwoKICAgIC8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8KCgogICAgdmFyIG9wdGlvbnZ1ZV90eXBlX3NjcmlwdF9sYW5nX2pzXyA9IHsKICAgICAgbWl4aW5zOiBbZW1pdHRlcl9kZWZhdWx0LmFdLAogICAgICBuYW1lOiAnRWxPcHRpb24nLAogICAgICBjb21wb25lbnROYW1lOiAnRWxPcHRpb24nLAogICAgICBpbmplY3Q6IFsnc2VsZWN0J10sCiAgICAgIHByb3BzOiB7CiAgICAgICAgdmFsdWU6IHsKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBsYWJlbDogW1N0cmluZywgTnVtYmVyXSwKICAgICAgICBjcmVhdGVkOiBCb29sZWFuLAogICAgICAgIGRpc2FibGVkOiB7CiAgICAgICAgICB0eXBlOiBCb29sZWFuLAogICAgICAgICAgZGVmYXVsdDogZmFsc2UKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluZGV4OiAtMSwKICAgICAgICAgIGdyb3VwRGlzYWJsZWQ6IGZhbHNlLAogICAgICAgICAgdmlzaWJsZTogdHJ1ZSwKICAgICAgICAgIGhpdFN0YXRlOiBmYWxzZSwKICAgICAgICAgIGhvdmVyOiBmYWxzZQogICAgICAgIH07CiAgICAgIH0sCiAgICAgIGNvbXB1dGVkOiB7CiAgICAgICAgaXNPYmplY3Q6IGZ1bmN0aW9uIGlzT2JqZWN0KCkgewogICAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzLnZhbHVlKS50b0xvd2VyQ2FzZSgpID09PSAnW29iamVjdCBvYmplY3RdJzsKICAgICAgICB9LAogICAgICAgIGN1cnJlbnRMYWJlbDogZnVuY3Rpb24gY3VycmVudExhYmVsKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMubGFiZWwgfHwgKHRoaXMuaXNPYmplY3QgPyAnJyA6IHRoaXMudmFsdWUpOwogICAgICAgIH0sCiAgICAgICAgY3VycmVudFZhbHVlOiBmdW5jdGlvbiBjdXJyZW50VmFsdWUoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSB8fCB0aGlzLmxhYmVsIHx8ICcnOwogICAgICAgIH0sCiAgICAgICAgaXRlbVNlbGVjdGVkOiBmdW5jdGlvbiBpdGVtU2VsZWN0ZWQoKSB7CiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0Lm11bHRpcGxlKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRXF1YWwodGhpcy52YWx1ZSwgdGhpcy5zZWxlY3QudmFsdWUpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbnModGhpcy5zZWxlY3QudmFsdWUsIHRoaXMudmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgbGltaXRSZWFjaGVkOiBmdW5jdGlvbiBsaW1pdFJlYWNoZWQoKSB7CiAgICAgICAgICBpZiAodGhpcy5zZWxlY3QubXVsdGlwbGUpIHsKICAgICAgICAgICAgcmV0dXJuICF0aGlzLml0ZW1TZWxlY3RlZCAmJiAodGhpcy5zZWxlY3QudmFsdWUgfHwgW10pLmxlbmd0aCA+PSB0aGlzLnNlbGVjdC5tdWx0aXBsZUxpbWl0ICYmIHRoaXMuc2VsZWN0Lm11bHRpcGxlTGltaXQgPiAwOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgd2F0Y2g6IHsKICAgICAgICBjdXJyZW50TGFiZWw6IGZ1bmN0aW9uIGN1cnJlbnRMYWJlbCgpIHsKICAgICAgICAgIGlmICghdGhpcy5jcmVhdGVkICYmICF0aGlzLnNlbGVjdC5yZW1vdGUpIHRoaXMuZGlzcGF0Y2goJ0VsU2VsZWN0JywgJ3NldFNlbGVjdGVkJyk7CiAgICAgICAgfSwKICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdmFsdWUodmFsLCBvbGRWYWwpIHsKICAgICAgICAgIHZhciBfc2VsZWN0ID0gdGhpcy5zZWxlY3QsCiAgICAgICAgICAgICAgcmVtb3RlID0gX3NlbGVjdC5yZW1vdGUsCiAgICAgICAgICAgICAgdmFsdWVLZXkgPSBfc2VsZWN0LnZhbHVlS2V5OwoKICAgICAgICAgIGlmICghdGhpcy5jcmVhdGVkICYmICFyZW1vdGUpIHsKICAgICAgICAgICAgaWYgKHZhbHVlS2V5ICYmICh0eXBlb2YgdmFsID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZih2YWwpKSA9PT0gJ29iamVjdCcgJiYgKHR5cGVvZiBvbGRWYWwgPT09ICd1bmRlZmluZWQnID8gJ3VuZGVmaW5lZCcgOiBfdHlwZW9mKG9sZFZhbCkpID09PSAnb2JqZWN0JyAmJiB2YWxbdmFsdWVLZXldID09PSBvbGRWYWxbdmFsdWVLZXldKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmRpc3BhdGNoKCdFbFNlbGVjdCcsICdzZXRTZWxlY3RlZCcpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgbWV0aG9kczogewogICAgICAgIGlzRXF1YWw6IGZ1bmN0aW9uIGlzRXF1YWwoYSwgYikgewogICAgICAgICAgaWYgKCF0aGlzLmlzT2JqZWN0KSB7CiAgICAgICAgICAgIHJldHVybiBhID09PSBiOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIHZhbHVlS2V5ID0gdGhpcy5zZWxlY3QudmFsdWVLZXk7CiAgICAgICAgICAgIHJldHVybiBPYmplY3QodXRpbF9bImdldFZhbHVlQnlQYXRoIl0pKGEsIHZhbHVlS2V5KSA9PT0gT2JqZWN0KHV0aWxfWyJnZXRWYWx1ZUJ5UGF0aCJdKShiLCB2YWx1ZUtleSk7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBjb250YWluczogZnVuY3Rpb24gY29udGFpbnMoKSB7CiAgICAgICAgICB2YXIgYXJyID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBbXTsKICAgICAgICAgIHZhciB0YXJnZXQgPSBhcmd1bWVudHNbMV07CgogICAgICAgICAgaWYgKCF0aGlzLmlzT2JqZWN0KSB7CiAgICAgICAgICAgIHJldHVybiBhcnIgJiYgYXJyLmluZGV4T2YodGFyZ2V0KSA+IC0xOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIHZhbHVlS2V5ID0gdGhpcy5zZWxlY3QudmFsdWVLZXk7CiAgICAgICAgICAgIHJldHVybiBhcnIgJiYgYXJyLnNvbWUoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0KHV0aWxfWyJnZXRWYWx1ZUJ5UGF0aCJdKShpdGVtLCB2YWx1ZUtleSkgPT09IE9iamVjdCh1dGlsX1siZ2V0VmFsdWVCeVBhdGgiXSkodGFyZ2V0LCB2YWx1ZUtleSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgaGFuZGxlR3JvdXBEaXNhYmxlZDogZnVuY3Rpb24gaGFuZGxlR3JvdXBEaXNhYmxlZCh2YWwpIHsKICAgICAgICAgIHRoaXMuZ3JvdXBEaXNhYmxlZCA9IHZhbDsKICAgICAgICB9LAogICAgICAgIGhvdmVySXRlbTogZnVuY3Rpb24gaG92ZXJJdGVtKCkgewogICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmdyb3VwRGlzYWJsZWQpIHsKICAgICAgICAgICAgdGhpcy5zZWxlY3QuaG92ZXJJbmRleCA9IHRoaXMuc2VsZWN0Lm9wdGlvbnMuaW5kZXhPZih0aGlzKTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHNlbGVjdE9wdGlvbkNsaWNrOiBmdW5jdGlvbiBzZWxlY3RPcHRpb25DbGljaygpIHsKICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkICE9PSB0cnVlICYmIHRoaXMuZ3JvdXBEaXNhYmxlZCAhPT0gdHJ1ZSkgewogICAgICAgICAgICB0aGlzLmRpc3BhdGNoKCdFbFNlbGVjdCcsICdoYW5kbGVPcHRpb25DbGljaycsIFt0aGlzLCB0cnVlXSk7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBxdWVyeUNoYW5nZTogZnVuY3Rpb24gcXVlcnlDaGFuZ2UocXVlcnkpIHsKICAgICAgICAgIHRoaXMudmlzaWJsZSA9IG5ldyBSZWdFeHAoT2JqZWN0KHV0aWxfWyJlc2NhcGVSZWdleHBTdHJpbmciXSkocXVlcnkpLCAnaScpLnRlc3QodGhpcy5jdXJyZW50TGFiZWwpIHx8IHRoaXMuY3JlYXRlZDsKCiAgICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkgewogICAgICAgICAgICB0aGlzLnNlbGVjdC5maWx0ZXJlZE9wdGlvbnNDb3VudC0tOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgICAgICB0aGlzLnNlbGVjdC5vcHRpb25zLnB1c2godGhpcyk7CiAgICAgICAgdGhpcy5zZWxlY3QuY2FjaGVkT3B0aW9ucy5wdXNoKHRoaXMpOwogICAgICAgIHRoaXMuc2VsZWN0Lm9wdGlvbnNDb3VudCsrOwogICAgICAgIHRoaXMuc2VsZWN0LmZpbHRlcmVkT3B0aW9uc0NvdW50Kys7CiAgICAgICAgdGhpcy4kb24oJ3F1ZXJ5Q2hhbmdlJywgdGhpcy5xdWVyeUNoYW5nZSk7CiAgICAgICAgdGhpcy4kb24oJ2hhbmRsZUdyb3VwRGlzYWJsZWQnLCB0aGlzLmhhbmRsZUdyb3VwRGlzYWJsZWQpOwogICAgICB9LAogICAgICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgICAgIHZhciBfc2VsZWN0MiA9IHRoaXMuc2VsZWN0LAogICAgICAgICAgICBzZWxlY3RlZCA9IF9zZWxlY3QyLnNlbGVjdGVkLAogICAgICAgICAgICBtdWx0aXBsZSA9IF9zZWxlY3QyLm11bHRpcGxlOwogICAgICAgIHZhciBzZWxlY3RlZE9wdGlvbnMgPSBtdWx0aXBsZSA/IHNlbGVjdGVkIDogW3NlbGVjdGVkXTsKICAgICAgICB2YXIgaW5kZXggPSB0aGlzLnNlbGVjdC5jYWNoZWRPcHRpb25zLmluZGV4T2YodGhpcyk7CiAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZE9wdGlvbnMuaW5kZXhPZih0aGlzKTsgLy8gaWYgb3B0aW9uIGlzIG5vdCBzZWxlY3RlZCwgcmVtb3ZlIGl0IGZyb20gY2FjaGUKCiAgICAgICAgaWYgKGluZGV4ID4gLTEgJiYgc2VsZWN0ZWRJbmRleCA8IDApIHsKICAgICAgICAgIHRoaXMuc2VsZWN0LmNhY2hlZE9wdGlvbnMuc3BsaWNlKGluZGV4LCAxKTsKICAgICAgICB9CgogICAgICAgIHRoaXMuc2VsZWN0Lm9uT3B0aW9uRGVzdHJveSh0aGlzLnNlbGVjdC5vcHRpb25zLmluZGV4T2YodGhpcykpOwogICAgICB9CiAgICB9OyAvLyBDT05DQVRFTkFURUQgTU9EVUxFOiAuL3BhY2thZ2VzL3NlbGVjdC9zcmMvb3B0aW9uLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyYKCiAgICAvKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovCgogICAgdmFyIHNyY19vcHRpb252dWVfdHlwZV9zY3JpcHRfbGFuZ19qc18gPSBvcHRpb252dWVfdHlwZV9zY3JpcHRfbGFuZ19qc187IC8vIEVYVEVSTkFMIE1PRFVMRTogLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzCgogICAgdmFyIGNvbXBvbmVudE5vcm1hbGl6ZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApOyAvLyBDT05DQVRFTkFURUQgTU9EVUxFOiAuL3BhY2thZ2VzL3NlbGVjdC9zcmMvb3B0aW9uLnZ1ZQoKICAgIC8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KCgogICAgdmFyIGNvbXBvbmVudCA9IE9iamVjdChjb21wb25lbnROb3JtYWxpemVyWyJhIgogICAgLyogZGVmYXVsdCAqLwogICAgXSkoc3JjX29wdGlvbnZ1ZV90eXBlX3NjcmlwdF9sYW5nX2pzXywgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMsIGZhbHNlLCBudWxsLCBudWxsLCBudWxsKTsKICAgIC8qIGhvdCByZWxvYWQgKi8KCiAgICBpZiAoZmFsc2UpIHsKICAgICAgdmFyIGFwaTsKICAgIH0KCiAgICBjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAicGFja2FnZXMvc2VsZWN0L3NyYy9vcHRpb24udnVlIjsKICAgIC8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8KCiAgICB2YXIgc3JjX29wdGlvbiA9IF9fd2VicGFja19leHBvcnRzX19bImEiXSA9IGNvbXBvbmVudC5leHBvcnRzOwogICAgLyoqKi8KICB9LAoKICAvKioqLwogIDQ6CiAgLyoqKi8KICBmdW5jdGlvbiBfKG1vZHVsZSwgZXhwb3J0cykgewogICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCJlbGVtZW50LXVpL2xpYi9taXhpbnMvZW1pdHRlciIpOwogICAgLyoqKi8KICB9LAoKICAvKioqLwogIDUzOgogIC8qKiovCiAgZnVuY3Rpb24gXyhtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHsKICAgICJ1c2Ugc3RyaWN0IjsKCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fLnIoX193ZWJwYWNrX2V4cG9ydHNfXyk7CiAgICAvKiBoYXJtb255IGltcG9ydCAqLwoKCiAgICB2YXIgX3NlbGVjdF9zcmNfb3B0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM0KTsKICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovCgoKICAgIF9zZWxlY3Rfc3JjX29wdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWwogICAgLyogZGVmYXVsdCAqLwogICAgImEiXS5pbnN0YWxsID0gZnVuY3Rpb24gKFZ1ZSkgewogICAgICBWdWUuY29tcG9uZW50KF9zZWxlY3Rfc3JjX29wdGlvbl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fWwogICAgICAvKiBkZWZhdWx0ICovCiAgICAgICJhIl0ubmFtZSwgX3NlbGVjdF9zcmNfb3B0aW9uX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19bCiAgICAgIC8qIGRlZmF1bHQgKi8KICAgICAgImEiXSk7CiAgICB9OwogICAgLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLwoKCiAgICBfX3dlYnBhY2tfZXhwb3J0c19fWyJkZWZhdWx0Il0gPSBfc2VsZWN0X3NyY19vcHRpb25fX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1sKICAgIC8qIGRlZmF1bHQgKi8KICAgICJhIl07CiAgICAvKioqLwogIH0KICAvKioqKioqLwoKfSk7"},null]}
|