New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@rster/basic

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rster/basic - npm Package Compare versions

Comparing version 0.1.6 to 0.1.7

CHANGELOG.md

2

lib/condition.js

@@ -603,2 +603,2 @@ "use strict";

exports.ConditionChain = ConditionChain;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZXh0Q29uZGl0aW9uIiwiYW5kIiwib3RoZXIiLCJDb250ZXh0Q29uZGl0aW9uQW5kIiwiY2hhaW4iLCJDb25kaXRpb25DaGFpbiIsImFwcGxpZXNUbyIsInJlcSIsImNvbnNvbGUiLCJ3YXJuIiwicGFyc2UiLCJhcHBsaWVzIiwic3ViUmVxdWVzdCIsImV4cG9ydHMiLCJjb25zdHJ1Y3RvciIsImNvbmRpdGlvbnMiLCJwYXJzZWQiLCJtYXAiLCJjIiwiZXZlcnkiLCJyZWR1Y2UiLCJwYXJhbWV0ZXJzIiwicGFyYW1zIiwiaW5mbyIsImEiLCJiIiwidG9Kc29uIiwidHlwZSIsImluZm9Kc29uIiwiaXQiLCJlcXVhbHMiLCJsZW5ndGgiLCJpIiwicGFyc2VQYXRoRGVzY3JpcHRvciIsInN0ciIsInBhcnRzIiwibWF0Y2hBbGwiLCJyZXN1bHQiLCJwYXJ0IiwidXJsIiwiZ3JvdXBzIiwicGFyYW1fbmFtZSIsInBhcmFtIiwicHVzaCIsInBhdGgiLCJuYW1lIiwicGFyc2VkUGF0aFRvUmVnRXhwIiwicmVnZXhwIiwiZW50cnkiLCJyZXBsYWNlIiwiRXJyb3IiLCJqb2luIiwiUmVnRXhwIiwicGFyc2VQYXRoIiwiZGVzY3JpcHRvciIsImRlc2NyaXB0b3JfY29weSIsInNoaWZ0Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWF0Y2giLCJleGVjIiwiJF9fU1VCUEFUSCIsIkNvbnRleHRDb25kaXRpb25QYXRoIiwicGFyc2VkUGF0aCIsInN1YlBhdGgiLCJDb250ZXh0Q29uZGl0aW9uUGF0aDIiLCJpbmRleCIsInNvdXJjZSIsImZsYWdzIiwicGF0aDIiLCJDb250ZXh0Q29uZGl0aW9uTWV0aG9kIiwibWV0aG9kIiwidG9Mb3dlckNhc2UiXSwic291cmNlcyI6WyIuLi9zcmMvY29uZGl0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGhvZCwgUmVxdWVzdCB9IGZyb20gXCJAcnN0ZXIvY29tbW9uXCI7XHJcblxyXG4vKipcclxuICogSlNPTiByZXByZXNlbnRhdGlvbiBvZiB7QGxpbmsgQ29udGV4dENvbmRpdGlvbkFuZH1cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbnRleHRDb25kaXRpb25BbmRKc29uID0ge1xyXG4gIC8qKlxyXG4gICAqIFR5cGUgb2YgdGhlIGNvbmRpdGlvbiAoYWx3YXlzIFwiYW5kXCIgZm9yIHtAbGluayBDb250ZXh0Q29uZGl0aW9uQW5kfSlcclxuICAgKi9cclxuICB0eXBlOiBcImFuZFwiO1xyXG5cclxuICAvKipcclxuICAgKiBDb25kaXRpb25zIHRoYXQgYXJlIGNoYWluZWQgdG9nZXRoZXJcclxuICAgKiBAZXhhbXBsZSBbeyB0eXBlOiBcInBhdGhcIiwgcGF0aDogXCIvYXBpLzppZFwiIH0sIHsgdHlwZTogXCJtZXRob2RcIiwgbWV0aG9kOiBcIkdFVFwiIH1dXHJcbiAgICovXHJcbiAgY29uZGl0aW9uczogQ29udGV4dENvbmRpdGlvbkpzb25bXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHtAbGluayBDb250ZXh0Q29uZGl0aW9uUGF0aH1cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbnRleHRDb25kaXRpb25QYXRoSnNvbiA9IHtcclxuICAvKipcclxuICAgKiBUeXBlIG9mIHRoZSBjb25kaXRpb24gKGFsd2F5cyBcInBhdGhcIiBmb3Ige0BsaW5rIENvbnRleHRDb25kaXRpb25QYXRofSlcclxuICAgKi9cclxuICB0eXBlOiBcInBhdGhcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogUGF0aCB0aGF0IGlzIG1hdGNoZWRcclxuICAgKiBAZXhhbXBsZSBcIi9hcGkvOmlkXCJcclxuICAgKi9cclxuICBwYXRoOiBzdHJpbmc7XHJcbn07XHJcblxyXG4vKipcclxuICogSlNPTiByZXByZXNlbnRhdGlvbiBvZiB7QGxpbmsgQ29udGV4dENvbmRpdGlvblBhdGgyfSAoUmVnRXhwIHBhdGgpXHJcbiAqIEBleGFtcGxlIHsgdHlwZTogXCJwYXRoMlwiLCBwYXRoOiBcIi9hcGkvKFtcXFxcdy1dKylcIiwgZmxhZ3M6IFwiaVwiIH1cclxuICogQGV4YW1wbGUgeyB0eXBlOiBcInBhdGgyXCIsIHBhdGg6IFwiL2FwaS8oW1xcXFx3LV0rKVwiIH1cclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvUmVnRXhwfVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgQ29udGV4dENvbmRpdGlvblBhdGgySnNvbiA9IHtcclxuICAvKipcclxuICAgKiBUeXBlIG9mIHRoZSBjb25kaXRpb24gKGFsd2F5cyBcInBhdGgyXCIgZm9yIHtAbGluayBDb250ZXh0Q29uZGl0aW9uUGF0aDJ9KVxyXG4gICAqL1xyXG4gIHR5cGU6IFwicGF0aDJcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVnRXhwIHBhdGggdGhhdCBpcyBtYXRjaGVkXHJcbiAgICogQGV4YW1wbGUgXCIvYXBpLyhbXFxcXHctXSspXCJcclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1JlZ0V4cH1cclxuICAgKi9cclxuICBwYXRoOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlZ0V4cCBmbGFnc1xyXG4gICAqIEBleGFtcGxlIFwiaVwiXHJcbiAgICpcclxuICAgKiBAc2VlIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9SZWdFeHB9XHJcbiAgICovXHJcbiAgZmxhZ3M6IHN0cmluZztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHtAbGluayBDb250ZXh0Q29uZGl0aW9uTWV0aG9kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7IHR5cGU6IFwibWV0aG9kXCIsIG1ldGhvZDogXCJHRVRcIiB9XHJcbiAqIEBleGFtcGxlIHsgdHlwZTogXCJtZXRob2RcIiwgbWV0aG9kOiBcIlBPU1RcIiB9XHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvTWV0aG9kc31cclxuICogQHNlZSB7QGxpbmsgaW1wb3J0KFwiQHJzdGVyL2NvbW1vblwiKS5NZXRob2R9IHtAbGluayBodHRwczovL25zYy1kZS5naXRodWIuaW8vcnN0ZXIvZG9jcy9hcGktcmVmZXJlbmNlL2NvbW1vbi9tb2R1bGVzI21ldGhvZH1cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbnRleHRDb25kaXRpb25NZXRob2RKc29uID0geyB0eXBlOiBcIm1ldGhvZFwiOyBtZXRob2Q6IE1ldGhvZCB9O1xyXG5cclxuLyoqXHJcbiAqIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYSB7QGxpbmsgQ29udGV4dENvbmRpdGlvbn0gKG9uZSBvZiB7QGxpbmsgQ29udGV4dENvbmRpdGlvbkFuZEpzb259LCB7QGxpbmsgQ29udGV4dENvbmRpdGlvblBhdGhKc29ufSwge0BsaW5rIENvbnRleHRDb25kaXRpb25QYXRoMkpzb259LCB7QGxpbmsgQ29udGV4dENvbmRpdGlvbk1ldGhvZEpzb259KVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgQ29udGV4dENvbmRpdGlvbkpzb24gPVxyXG4gIHwgQ29udGV4dENvbmRpdGlvbkFuZEpzb25cclxuICB8IENvbnRleHRDb25kaXRpb25QYXRoSnNvblxyXG4gIHwgQ29udGV4dENvbmRpdGlvblBhdGgySnNvblxyXG4gIHwgQ29udGV4dENvbmRpdGlvbk1ldGhvZEpzb247XHJcblxyXG4vKipcclxuICogSlNPTiByZXByZXNlbnRhdGlvbiBvZiB7QGxpbmsgQ29udGV4dENvbmRpdGlvbn0ncyBpbmZvIChmb3IgY29sbGVjdGluZyBpbmZvIGFib3V0IGNvbmRpdGlvbnMgYW5kIHNxdWFzaGluZyB0aGVtIHRvZ2V0aGVyKVxyXG4gKiBAZXhhbXBsZSB7IHBhdGg6IFwiL2FwaS86aWRcIiwgbWV0aG9kOiBcIkdFVFwiIH1cclxuICogQGV4YW1wbGUgeyBwYXRoMjogXCIvYXBpLyhbXFxcXHctXSspXCIsIG1ldGhvZDogXCJHRVRcIiB9XHJcbiAqL1xyXG5leHBvcnQgdHlwZSBDb250ZXh0Q29uZGl0aW9uSW5mb0pzb24gPSB7XHJcbiAgLyoqXHJcbiAgICogUGF0aCB0aGF0IGlzIG1hdGNoZWRcclxuICAgKiBAZXhhbXBsZSBcIi9hcGkvOmlkXCJcclxuICAgKi9cclxuICBwYXRoPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBSZWdFeHAgcGF0aCB0aGF0IGlzIG1hdGNoZWRcclxuICAgKiBAZXhhbXBsZSBcIi9hcGkvKFtcXFxcdy1dKylcIlxyXG4gICAqL1xyXG4gIHBhdGgyPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdGhhdCBpcyBtYXRjaGVkXHJcbiAgICogQGV4YW1wbGUgXCJHRVRcIlxyXG4gICAqL1xyXG4gIG1ldGhvZD86IE1ldGhvZDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXN1bHQgb2Yge0BsaW5rIENvbnRleHRDb25kaXRpb24jcGFyc2V9ICh1c2VkIGZvciB7QGxpbmsgQ29udGV4dENvbmRpdGlvbiNhcHBsaWVzVG99IGFuZCB7QGxpbmsgQ29udGV4dENvbmRpdGlvbiNzdWJSZXF1ZXN0fSlcclxuICogUGFyc2VzIHRoZSBjb25kaXRpb24sIGNoZWNrcyBpZiBpdCBhcHBsaWVzIHRvIGEgcmVxdWVzdCBhbmQgcmV0dXJucyBhbGwgdGhpcyBpbmZvcm1hdGlvbiAodG8gYXZvaWQgZG91YmxlIHBhcnNpbmcpXHJcbiAqIEBleGFtcGxlIHsgYXBwbGllczogdHJ1ZSwgcGFyYW1ldGVyczogKCkgPT4gKHsgaWQ6IFwiMTIzXCIgfSksIHN1YlJlcXVlc3Q6IChyZXEpID0+ICh7IC4uLnJlcSwgcGF0aDogXCIvYXBpXCIsIHBhcmFtczogeyBpZDogXCIxMjNcIiB9IH0pIH1cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbmRpdGlvblBhcnNlUmVzdWx0ID0ge1xyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIGNvbmRpdGlvbiBhcHBsaWVzIHRvIHRoZSByZXF1ZXN0XHJcbiAgICovXHJcbiAgYXBwbGllczogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogUGFyYW1ldGVycyBvZiB0aGUgY29uZGl0aW9uIChpZiBpdCBhcHBsaWVzKVxyXG4gICAqIEBleGFtcGxlIHsgaWQ6IFwiMTIzXCIgfVxyXG4gICAqL1xyXG4gIHBhcmFtZXRlcnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViUmVxdWVzdCBvZiB0aGUgY29uZGl0aW9uIChpZiBpdCBhcHBsaWVzKSAodXNlZCBmb3Igcm91dGluZyBhbmQgc3ViLXJvdXRpbmcpXHJcbiAgICogQGV4YW1wbGUgeyBtZXRob2Q6IFwiR0VUXCIsIHBhdGg6IFwiL2FwaVwiLCBwYXJhbXM6IHsgaWQ6IFwiMTIzXCIgfSB9XHJcbiAgICovXHJcbiAgc3ViUmVxdWVzdChyZXE6IFJlcXVlc3QpOiBSZXF1ZXN0O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbmRpdGlvbiBmb3Ige0BsaW5rIENvbnRleHR9IHVzZWQgZm9yIHJvdXRpbmcgYW5kIHN1Yi1yb3V0aW5nXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udGV4dENvbmRpdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQ2hhaW4gdGhpcyBjb25kaXRpb24gd2l0aCBhbm90aGVyIGNvbmRpdGlvblxyXG4gICAqXHJcbiAgICogQHBhcmFtIG90aGVyIENvbmRpdGlvbiB0byBjaGFpbiB3aXRoXHJcbiAgICogQHJldHVybnMgTmV3IGNvbmRpdGlvbiB0aGF0IGFwcGxpZXMgaWYgYm90aCBjb25kaXRpb25zIGFwcGx5XHJcbiAgICovXHJcbiAgYW5kKG90aGVyOiBDb250ZXh0Q29uZGl0aW9uKTogQ29udGV4dENvbmRpdGlvbkFuZCB7XHJcbiAgICByZXR1cm4gbmV3IENvbnRleHRDb25kaXRpb25BbmQoW3RoaXMsIG90aGVyXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGFpbiB0aGlzIGNvbmRpdGlvbiB3aXRoIGFub3RoZXIgY29uZGl0aW9uICAodXNlZCBmb3Igc3ViLXJvdXRpbmcpXHJcbiAgICovXHJcbiAgY2hhaW4ob3RoZXI6IENvbnRleHRDb25kaXRpb24pOiBDb25kaXRpb25DaGFpbiB7XHJcbiAgICByZXR1cm4gbmV3IENvbmRpdGlvbkNoYWluKFt0aGlzLCBvdGhlcl0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIGNvbmRpdGlvbiBhcHBsaWVzIHRvIGEgcmVxdWVzdCAodXNlZCBmb3Igcm91dGluZykgKHBhcnNlcyB0aGUgcmVxdWVzdCBpdHNlbGYsIHNvIHVzZSB7QGxpbmsgQ29udGV4dENvbmRpdGlvbiNwYXJzZX0gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMpXHJcbiAgICpcclxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYCNwYXJzZSgpLmFwcGxpZXNgIGluc3RlYWQgKEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBhcyB0aGlzIG1ldGhvZCBwYXJzZXMgdGhlIHJlcXVlc3QgaXRzZWxmIGFuZCBzdWJSZXF1ZXN0IGFnYWluKVxyXG4gICAqIEBwYXJhbSByZXEgUmVxdWVzdCB0byBjaGVja1xyXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbmRpdGlvbiBhcHBsaWVzIHRvIHRoZSByZXF1ZXN0XHJcbiAgICpcclxuICAgKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI3BhcnNlfVxyXG4gICAqIEBzZWUge0BsaW5rIENvbmRpdGlvblBhcnNlUmVzdWx0I2FwcGxpZXN9XHJcbiAgICovXHJcbiAgYXBwbGllc1RvKHJlcTogUmVxdWVzdCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc29sZS53YXJuKFxyXG4gICAgICBcIkNvbnRleHRDb25kaXRpb24jYXBwbGllc1RvIGlzIGRlcHJlY2F0ZWQsIHVzZSBDb250ZXh0Q29uZGl0aW9uI3BhcnNlKCkuYXBwbGllcyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBpbnN0ZWFkLiBhcHBsaWVzVG8gcGFyc2VzIHRoZSByZXF1ZXN0IGl0c2VsZiwgc28geW91IHdpbGwgcG90ZW50aWFsbHkgcGFyc2UgdGhlIHJlcXVlc3QgdHdpY2UuXCJcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJzZShyZXEpLmFwcGxpZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0aGUgY29uZGl0aW9uIGFwcGxpZXMgdG8gYSByZXF1ZXN0ICh1c2VkIGZvciByb3V0aW5nKSAocGFyc2VzIHRoZSByZXF1ZXN0IGl0c2VsZiwgc28gdXNlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI3BhcnNlfSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucylcclxuICAgKlxyXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgI3BhcnNlKCkucGFyYW1ldGVyc2AgaW5zdGVhZCAoRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIGFzIHRoaXMgbWV0aG9kIHBhcnNlcyB0aGUgcmVxdWVzdCBpdHNlbGYgYW5kIGFwcGxpZXNUbyBhZ2FpbilcclxuICAgKiBAcGFyYW0gcmVxIFJlcXVlc3QgdG8gY2hlY2tcclxuICAgKiBAcmV0dXJucyBQYXJhbWV0ZXJzIG9mIHRoZSBjb25kaXRpb25cclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb24jcGFyc2V9XHJcbiAgICogQHNlZSB7QGxpbmsgQ29uZGl0aW9uUGFyc2VSZXN1bHQjc3ViUmVxdWVzdH1cclxuICAgKi9cclxuICBzdWJSZXF1ZXN0KHJlcTogUmVxdWVzdCk6IFJlcXVlc3Qge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyc2UocmVxKS5zdWJSZXF1ZXN0KHJlcSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYXJzZSB0aGUgY29uZGl0aW9uICh1c2VkIGZvciByb3V0aW5nIGFuZCBzdWItcm91dGluZylcclxuICAgKiBAcGFyYW0gcmVxIFJlcXVlc3QgdG8gcGFyc2VcclxuICAgKiBAcmV0dXJucyBSZXN1bHQgb2YgdGhlIHBhcnNpbmdcclxuICAgKlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgdHNcclxuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcclxuICAgKiBjb25zdCByZXN1bHQgPSBjb25kaXRpb24ucGFyc2UoeyBtZXRob2Q6IFwiR0VUXCIsIHBhdGg6IFwiL2FwaS8xMjNcIiwgcGFyYW1zOiB7fSB9KTtcclxuICAgKlxyXG4gICAqIHJlc3VsdC5hcHBsaWVzIC8vIHRydWVcclxuICAgKiByZXN1bHQucGFyYW1ldGVycygpIC8vIHsgaWQ6IFwiMTIzXCIgfVxyXG4gICAqIHJlc3VsdC5zdWJSZXF1ZXN0KHsgbWV0aG9kOiBcIkdFVFwiLCBwYXRoOiBcIi9hcGkvMTIzXCIsIHBhcmFtczoge30gfSkgLy8geyBtZXRob2Q6IFwiR0VUXCIsIHBhdGg6IFwiXCIsIHBhcmFtczogeyBpZDogXCIxMjNcIiB9IH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIENvbmRpdGlvblBhcnNlUmVzdWx0fVxyXG4gICAqL1xyXG4gIGFic3RyYWN0IHBhcnNlKHJlcTogUmVxdWVzdCk6IENvbmRpdGlvblBhcnNlUmVzdWx0O1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgaW5mbyBhYm91dCB0aGUgY29uZGl0aW9uICh1c2VkIGZvciBjb2xsZWN0aW5nIGluZm8gYWJvdXQgY29uZGl0aW9ucyBhbmQgc3F1YXNoaW5nIHRoZW0gdG9nZXRoZXIpXHJcbiAgICpcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIGBgYHRzXHJcbiAgICogY29uc3QgY29uZGl0aW9uID0gbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIik7XHJcbiAgICogY29uc3QgaW5mbyA9IGNvbmRpdGlvbi5pbmZvKCk7IC8vIHsgcGF0aDogXCIvYXBpLzppZFwiICwgbWV0aG9kOiB1bmRlZmluZWQsIHBhdGgyOiB1bmRlZmluZWQgfVxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiBgYGB0c1xyXG4gICAqIGNvbnN0IGNvbmRpdGlvbiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcclxuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uUGF0aChcIi9hcGkvOmlkXCIpLFxyXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25NZXRob2QoXCJHRVRcIiksXHJcbiAgICogXSk7XHJcbiAgICogY29uc3QgaW5mbyA9IGNvbmRpdGlvbi5pbmZvKCk7IC8vIHsgcGF0aDogXCIvYXBpLzppZFwiICwgbWV0aG9kOiBcIkdFVFwiLCBwYXRoMjogdW5kZWZpbmVkIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb24jaW5mb0pzb259XHJcbiAgICovXHJcbiAgYWJzdHJhY3QgaW5mbygpOiBDb25kaXRpb25JbmZvO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgaW5mbyBhYm91dCB0aGUgY29uZGl0aW9uICh1c2VkIGZvciBjb2xsZWN0aW5nIGluZm8gYWJvdXQgY29uZGl0aW9ucyBhbmQgc3F1YXNoaW5nIHRoZW0gdG9nZXRoZXIpXHJcbiAgICpcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIGBgYHRzXHJcbiAgICogY29uc3QgY29uZGl0aW9uID0gbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIik7XHJcbiAgICogY29uc3QgaW5mbyA9IGNvbmRpdGlvbi50b0pzb24oKTsgLy8geyB0eXBlOiBcInBhdGhcIiwgcGF0aDogXCIvYXBpLzppZFwiIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb25Kc29ufVxyXG4gICAqL1xyXG4gIGFic3RyYWN0IHRvSnNvbigpOiBDb250ZXh0Q29uZGl0aW9uSnNvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGluZm8gYWJvdXQgdGhlIGNvbmRpdGlvbiAodXNlZCBmb3IgY29sbGVjdGluZyBpbmZvIGFib3V0IGNvbmRpdGlvbnMgYW5kIHNxdWFzaGluZyB0aGVtIHRvZ2V0aGVyKVxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgdHNcclxuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcclxuICAgKiBjb25zdCBpbmZvID0gY29uZGl0aW9uLmluZm9Kc29uKCk7IC8vIHsgcGF0aDogXCIvYXBpLzppZFwiICwgbWV0aG9kOiB1bmRlZmluZWQsIHBhdGgyOiB1bmRlZmluZWQgfVxyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIGFic3RyYWN0IGluZm9Kc29uKCk6IENvbnRleHRDb25kaXRpb25JbmZvSnNvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIGNvbmRpdGlvbiBpcyBlcXVhbCB0byBhbm90aGVyIGNvbmRpdGlvblxyXG4gICAqIEBwYXJhbSBvdGhlciBDb25kaXRpb24gdG8gY2hlY2tcclxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb25kaXRpb25zIGFyZSBlcXVhbFxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgdHNcclxuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcclxuICAgKiBjb25zdCBvdGhlciA9IG5ldyBDb250ZXh0Q29uZGl0aW9uUGF0aChcIi9hcGkvOmlkXCIpO1xyXG4gICAqIGNvbnN0IG90aGVyMiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uUGF0aChcIi9hcGkvOmlkMlwiKTtcclxuICAgKlxyXG4gICAqIGNvbmRpdGlvbi5lcXVhbHMob3RoZXIpIC8vIHRydWVcclxuICAgKiBjb25kaXRpb24uZXF1YWxzKG90aGVyMikgLy8gZmFsc2VcclxuICAgKiBgYGBcclxuICAgKi9cclxuICBhYnN0cmFjdCBlcXVhbHMob3RoZXI6IENvbnRleHRDb25kaXRpb24pOiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZGl0aW9uIHRoYXQgYXBwbGllcyBpZiBhbGwgY29uZGl0aW9ucyBhcHBseVxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0c1xyXG4gKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvbkFuZChbXHJcbiAqICAgbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIiksXHJcbiAqICAgbmV3IENvbnRleHRDb25kaXRpb25NZXRob2QoXCJHRVRcIiksXHJcbiAqIF0pO1xyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9ufVxyXG4gKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uQW5kSnNvbn1cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb250ZXh0Q29uZGl0aW9uQW5kIGV4dGVuZHMgQ29udGV4dENvbmRpdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IGNvbmRpdGlvbiB0aGF0IGFwcGxpZXMgaWYgYWxsIGNvbmRpdGlvbnMgYXBwbHlcclxuICAgKiBAcGFyYW0gY29uZGl0aW9ucyBUaGUgY29uZGl0aW9ucyB0aGF0IGFyZSBjaGFpbmVkIHRvZ2V0aGVyXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvKipcclxuICAgICAqIENvbmRpdGlvbnMgdGhhdCBhcmUgY2hhaW5lZCB0b2dldGhlclxyXG4gICAgICovXHJcbiAgICByZWFkb25seSBjb25kaXRpb25zOiBDb250ZXh0Q29uZGl0aW9uW11cclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGFpbiB0aGlzIGNvbmRpdGlvbiB3aXRoIGFub3RoZXIgY29uZGl0aW9uXHJcbiAgICogQHBhcmFtIG90aGVyIFRoZSBjb25kaXRpb24gdG8gY2hhaW4gd2l0aFxyXG4gICAqIEByZXR1cm5zIFRoZSBuZXcgY29uZGl0aW9uIHRoYXQgYXBwbGllcyBpZiBib3RoIGNvbmRpdGlvbnMgYXBwbHlcclxuICAgKlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgdHNcclxuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvbkFuZChbXHJcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcclxuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uTWV0aG9kKFwiR0VUXCIpLFxyXG4gICAqIF0pO1xyXG4gICAqXHJcbiAgICogY29uc3Qgb3RoZXIgPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZDJcIik7XHJcbiAgICogY29uc3QgbmV3Q29uZGl0aW9uID0gY29uZGl0aW9uLmFuZChvdGhlcik7XHJcbiAgICogYGBgXHJcbiAgICovXHJcbiAgYW5kKG90aGVyOiBDb250ZXh0Q29uZGl0aW9uKTogQ29udGV4dENvbmRpdGlvbkFuZCB7XHJcbiAgICByZXR1cm4gbmV3IENvbnRleHRDb25kaXRpb25BbmQoWy4uLnRoaXMuY29uZGl0aW9ucywgb3RoZXJdKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlIHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIHJvdXRpbmcgYW5kIHN1Yi1yb3V0aW5nKVxyXG4gICAqIEBwYXJhbSByZXEgVGhlIHJlcXVlc3QgdG8gcGFyc2VcclxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBwYXJzaW5nXHJcbiAgICpcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIGBgYHRzXHJcbiAgICogY29uc3QgY29uZGl0aW9uID0gbmV3IENvbnRleHRDb25kaXRpb25BbmQoW1xyXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIiksXHJcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcclxuICAgKiBdKTtcclxuICAgKiBjb25zdCByZXN1bHQgPSBjb25kaXRpb24ucGFyc2UoeyBtZXRob2Q6IFwiR0VUXCIsIHBhdGg6IFwiL2FwaS8xMjNcIiwgcGFyYW1zOiB7fSB9KTtcclxuICAgKiByZXN1bHQuYXBwbGllcyAvLyB0cnVlXHJcbiAgICogcmVzdWx0LnBhcmFtZXRlcnMoKSAvLyB7IGlkOiBcIjEyM1wiIH1cclxuICAgKiByZXN1bHQuc3ViUmVxdWVzdCh7IG1ldGhvZDogXCJHRVRcIiwgcGF0aDogXCIvYXBpLzEyM1wiLCBwYXJhbXM6IHt9IH0pIC8vIHsgbWV0aG9kOiBcIkdFVFwiLCBwYXRoOiBcIlwiLCBwYXJhbXM6IHsgaWQ6IFwiMTIzXCIgfSB9XHJcbiAgICogYGBgXHJcbiAgICogQHNlZSB7QGxpbmsgQ29uZGl0aW9uUGFyc2VSZXN1bHR9XHJcbiAgICovXHJcbiAgcGFyc2UocmVxOiBSZXF1ZXN0KTogQ29uZGl0aW9uUGFyc2VSZXN1bHQge1xyXG4gICAgY29uc3QgcGFyc2VkID0gdGhpcy5jb25kaXRpb25zLm1hcCgoYykgPT4gYy5wYXJzZShyZXEpKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFwcGxpZXM6IHBhcnNlZC5ldmVyeSgoYykgPT4gYy5hcHBsaWVzKSxcclxuICAgICAgc3ViUmVxdWVzdDogKHJlcTogUmVxdWVzdCkgPT5cclxuICAgICAgICBwYXJzZWQucmVkdWNlKChyZXEsIGMpID0+IGMuc3ViUmVxdWVzdChyZXEpLCByZXEpLFxyXG4gICAgICBwYXJhbWV0ZXJzOiAoKSA9PlxyXG4gICAgICAgIHBhcnNlZC5yZWR1Y2UoKHBhcmFtcywgYykgPT4gKHsgLi4ucGFyYW1zLCAuLi5jLnBhcmFtZXRlcnMoKSB9KSwge30pLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBpbmZvIGFib3V0IHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcclxuICAgKiBAcmV0dXJucyBJbmZvIGFib3V0IHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcclxuICAgKlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgdHNcclxuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvbkFuZChbXHJcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcclxuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uTWV0aG9kKFwiR0VUXCIpLFxyXG4gICAqIF0pO1xyXG4gICAqIGNvbnN0IGluZm8gPSBjb25kaXRpb24uaW5mbygpOyAvLyB7IHBhdGg6IFwiL2FwaS86aWRcIiAsIG1ldGhvZDogXCJHRVRcIiwgcGF0aDI6IHVuZGVmaW5lZCB9XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI2luZm9Kc29ufVxyXG4gICAqL1xyXG4gIGluZm8oKTogQ29uZGl0aW9uSW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zXHJcbiAgICAgIC5tYXAoKGMpID0+IGMuaW5mbygpKVxyXG4gICAgICAucmVkdWNlKChhLCBiKSA9PiAoeyAuLi5hLCAuLi5iIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcclxuICAgKiBAcmV0dXJucyBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcclxuICAgKlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgdHNcclxuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvbkFuZChbXHJcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcclxuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uTWV0aG9kKFwiR0VUXCIpLFxyXG4gICAqIF0pO1xyXG4gICAqXHJcbiAgICogY29uc3QganNvbiA9IGNvbmRpdGlvbi50b0pzb24oKTsgLy8geyB0eXBlOiBcImFuZFwiLCBjb25kaXRpb25zOiBbeyB0eXBlOiBcInBhdGhcIiwgcGF0aDogXCIvYXBpLzppZFwiIH0sIHsgdHlwZTogXCJtZXRob2RcIiwgbWV0aG9kOiBcIkdFVFwiIH1dIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb25BbmRKc29ufVxyXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb25Kc29ufVxyXG4gICAqL1xyXG4gIHRvSnNvbigpOiBDb250ZXh0Q29uZGl0aW9uSnNvbiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiBcImFuZFwiLFxyXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmNvbmRpdGlvbnMubWFwKChjKSA9PiBjLnRvSnNvbigpKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgaW5mbyBhYm91dCB0aGUgY29uZGl0aW9uICh1c2VkIGZvciBjb2xsZWN0aW5nIGluZm8gYWJvdXQgY29uZGl0aW9ucyBhbmQgc3F1YXNoaW5nIHRoZW0gdG9nZXRoZXIpXHJcbiAgICogQHJldHVybnMgSW5mbyBhYm91dCB0aGUgY29uZGl0aW9uICh1c2VkIGZvciBjb2xsZWN0aW5nIGluZm8gYWJvdXQgY29uZGl0aW9ucyBhbmQgc3F1YXNoaW5nIHRoZW0gdG9nZXRoZXIpXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiBgYGB0c1xyXG4gICAqIGNvbnN0IGNvbmRpdGlvbiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcclxuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uUGF0aChcIi9hcGkvOmlkXCIpLFxyXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25NZXRob2QoXCJHRVRcIiksXHJcbiAgICogXSk7XHJcbiAgICogY29uc3QgaW5mbyA9IGNvbmRpdGlvbi5pbmZvSnNvbigpOyAvLyB7IHBhdGg6IFwiL2FwaS86aWRcIiAsIG1ldGhvZDogXCJHRVRcIiwgcGF0aDI6IHVuZGVmaW5lZCB9XHJcbiAgICogYGBgXHJcbiAgICogQHNlZSB7QGxpbmsgQ29udGV4dENvbmRpdGlvbiNpbmZvfVxyXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb25JbmZvSnNvbn1cclxuICAgKi9cclxuICBpbmZvSnNvbigpOiBDb250ZXh0Q29uZGl0aW9uSW5mb0pzb24ge1xyXG4gICAgbGV0IGl0ID0ge307XHJcblxyXG4gICAgZm9yIChjb25zdCBjIG9mIHRoaXMuY29uZGl0aW9ucykge1xyXG4gICAgICBpdCA9IHsgLi4uaXQsIC4uLmMuaW5mb0pzb24oKSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoZSBjb25kaXRpb24gaXMgZXF1YWwgdG8gYW5vdGhlciBjb25kaXRpb25cclxuICAgKiBAcGFyYW0gb3RoZXIgQ29uZGl0aW9uIHRvIGNoZWNrXHJcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29uZGl0aW9ucyBhcmUgZXF1YWxcclxuICAgKiBAZXhhbXBsZVxyXG4gICAqIGBgYHRzXHJcbiAgICogY29uc3QgY29uZGl0aW9uID0gbmV3IENvbnRleHRDb25kaXRpb25BbmQoW1xyXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIiksXHJcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcclxuICAgKiBdKTtcclxuICAgKlxyXG4gICAqIGNvbnN0IG90aGVyID0gbmV3IENvbnRleHRDb25kaXRpb25BbmQoW1xyXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIiksXHJcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcclxuICAgKiBdKTtcclxuICAgKlxyXG4gICAqIGNvbnN0IG90aGVyMiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcclxuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uUGF0aChcIi9hcGkvOmlkXCIpLFxyXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25NZXRob2QoXCJQT1NUXCIpLFxyXG4gICAqIF0pO1xyXG4gICAqXHJcbiAgICogY29uZGl0aW9uLmVxdWFscyhvdGhlcikgLy8gdHJ1ZVxyXG4gICAqIGNvbmRpdGlvbi5lcXVhbHMob3RoZXIyKSAvLyBmYWxzZVxyXG4gICAqIGBgYFxyXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb24jZXF1YWxzfVxyXG4gICAqL1xyXG4gIGVxdWFscyhvdGhlcjogQ29udGV4dENvbmRpdGlvbik6IGJvb2xlYW4ge1xyXG4gICAgLy8gVE9ETzogQWRkIGNoZWNraW5nIGlmIGNvbmRpdGlvbnMgYXJlIGVxdWFsIGJ1dCBpbiBkaWZmZXJlbnQgb3JkZXJcclxuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgQ29udGV4dENvbmRpdGlvbkFuZCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbmRpdGlvbnMubGVuZ3RoICE9PSBvdGhlci5jb25kaXRpb25zLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbmRpdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbnNbaV0uZXF1YWxzKG90aGVyLmNvbmRpdGlvbnNbaV0pKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIFBhcnNlZFBhdGhEZXNjcmlwdG9yUGF0aEVudHJ5ID0geyB0eXBlOiBcInBhdGhcIjsgcGF0aDogc3RyaW5nIH07XHJcbnR5cGUgUGFyc2VkUGF0aERlc2NyaXB0b3JQYXJhbUVudHJ5ID0geyB0eXBlOiBcInBhcmFtXCI7IG5hbWU6IHN0cmluZyB9O1xyXG50eXBlIFBhcnNlZFBhdGhEZXNjcmlwdG9yID0gKFxyXG4gIHwgUGFyc2VkUGF0aERlc2NyaXB0b3JQYXRoRW50cnlcclxuICB8IFBhcnNlZFBhdGhEZXNjcmlwdG9yUGFyYW1FbnRyeVxyXG4pW107XHJcblxyXG5mdW5jdGlvbiBwYXJzZVBhdGhEZXNjcmlwdG9yKHN0cjogc3RyaW5nKTogUGFyc2VkUGF0aERlc2NyaXB0b3Ige1xyXG4gIGNvbnN0IHBhcnRzID0gc3RyLm1hdGNoQWxsKC8oKD88dXJsPlteOl0qKSg6KD88cGFyYW0+W1xcdy1dKykpPykvZyk7XHJcbiAgY29uc3QgcmVzdWx0OiBQYXJzZWRQYXRoRGVzY3JpcHRvciA9IFtdO1xyXG4gIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xyXG4gICAgaWYgKHBhcnQubGVuZ3RoID09PSAwKSBjb250aW51ZTtcclxuXHJcbiAgICBjb25zdCB1cmwgPSBwYXJ0Lmdyb3Vwcz8udXJsO1xyXG4gICAgY29uc3QgcGFyYW1fbmFtZSA9IHBhcnQuZ3JvdXBzPy5wYXJhbTtcclxuXHJcbiAgICBpZiAodXJsKSByZXN1bHQucHVzaCh7IHR5cGU6IFwicGF0aFwiLCBwYXRoOiB1cmwgfSk7XHJcbiAgICBpZiAocGFyYW1fbmFtZSkgcmVzdWx0LnB1c2goeyB0eXBlOiBcInBhcmFtXCIsIG5hbWU6IHBhcmFtX25hbWUgfSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJzZWRQYXRoVG9SZWdFeHAocGFyc2VkOiBQYXJzZWRQYXRoRGVzY3JpcHRvcik6IFJlZ0V4cCB7XHJcbiAgY29uc3QgcmVnZXhwID0gcGFyc2VkXHJcbiAgICAubWFwKChlbnRyeSkgPT4ge1xyXG4gICAgICBpZiAoZW50cnkudHlwZSA9PT0gXCJwYXRoXCIpXHJcbiAgICAgICAgcmV0dXJuIGVudHJ5LnBhdGgucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpO1xyXG4gICAgICBpZiAoZW50cnkudHlwZSA9PT0gXCJwYXJhbVwiKSByZXR1cm4gYCg/PCR7ZW50cnkubmFtZX0+W1xcXFx3LV0rKWA7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgZW50cnkgdHlwZVwiKTtcclxuICAgIH0pXHJcbiAgICAuam9pbihcIlwiKTtcclxuXHJcbiAgcmV0dXJuIG5ldyBSZWdFeHAoYF4ke3JlZ2V4cH1gLCBcImlcIik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhcnNlUGF0aChcclxuICBwYXRoOiBzdHJpbmcsXHJcbiAgZGVzY3JpcHRvcjogUGFyc2VkUGF0aERlc2NyaXB0b3JcclxuKTogKFJlY29yZDxzdHJpbmcsIHN0cmluZz4gJiB7ICRfX1NVQlBBVEg6IHN0cmluZyB9KSB8IGZhbHNlIHtcclxuICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcclxuICBjb25zdCBkZXNjcmlwdG9yX2NvcHkgPSBbLi4uZGVzY3JpcHRvcl07XHJcblxyXG4gIHdoaWxlIChkZXNjcmlwdG9yX2NvcHkubGVuZ3RoID4gMCkge1xyXG4gICAgY29uc3QgZW50cnkgPSBkZXNjcmlwdG9yX2NvcHkuc2hpZnQoKTtcclxuXHJcbiAgICBpZiAoIWVudHJ5KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgZW5kIG9mIGRlc2NyaXB0b3JcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGVudHJ5LnR5cGUgPT09IFwicGF0aFwiKSB7XHJcbiAgICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGVudHJ5LnBhdGgpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHBhdGggPSBwYXRoLnNsaWNlKGVudHJ5LnBhdGgubGVuZ3RoKTtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGVudHJ5LnR5cGUgPT09IFwicGFyYW1cIikge1xyXG4gICAgICAvLyBtYXRjaCBzdGFydCBvZiBwYXRoIHdoaWxlIG1hdGNoaW5nIFxcdy0gY2hhcmFjdGVyc1xyXG4gICAgICBjb25zdCBtYXRjaCA9IC9eKFtcXHctXSspLy5leGVjKHBhdGgpPy5bMF0gPz8gXCJcIjtcclxuICAgICAgcGFyYW1zW2VudHJ5Lm5hbWVdID0gbWF0Y2g7XHJcbiAgICAgIHBhdGggPSBwYXRoLnNsaWNlKG1hdGNoLmxlbmd0aCk7XHJcbiAgICAgIGNvbnRpbnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgZW50cnkgdHlwZVwiKTtcclxuICB9XHJcblxyXG4gIHJldHVybiB7IC4uLnBhcmFtcywgJF9fU1VCUEFUSDogcGF0aCB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29udGV4dENvbmRpdGlvblBhdGggZXh0ZW5kcyBDb250ZXh0Q29uZGl0aW9uIHtcclxuICByZWFkb25seSBwYXJzZWRQYXRoOiBQYXJzZWRQYXRoRGVzY3JpcHRvcjtcclxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXRoOiBzdHJpbmcpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnBhcnNlZFBhdGggPSBwYXJzZVBhdGhEZXNjcmlwdG9yKHBhdGgpO1xyXG4gIH1cclxuXHJcbiAgcGFyc2UocmVxOiBSZXF1ZXN0KTogQ29uZGl0aW9uUGFyc2VSZXN1bHQge1xyXG4gICAgY29uc3QgcGFyYW1zID0gcGFyc2VQYXRoKHJlcS5wYXRoLCB0aGlzLnBhcnNlZFBhdGgpO1xyXG5cclxuICAgIGlmICghcGFyYW1zKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgYXBwbGllczogZmFsc2UsXHJcbiAgICAgICAgcGFyYW1ldGVyczogKCkgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ29uZGl0aW9uIGRvZXMgbm90IGFwcGx5XCIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3ViUmVxdWVzdDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ29uZGl0aW9uIGRvZXMgbm90IGFwcGx5XCIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3ViUGF0aCA9IHBhcmFtcy4kX19TVUJQQVRIO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFwcGxpZXM6IHRydWUsXHJcbiAgICAgIHBhcmFtZXRlcnM6ICgpID0+IHBhcmFtcyxcclxuICAgICAgc3ViUmVxdWVzdDogKHJlcSkgPT4gKHtcclxuICAgICAgICAuLi5yZXEsXHJcbiAgICAgICAgcGF0aDogc3ViUGF0aCxcclxuICAgICAgICBwYXJhbXM6IHsgLi4uKHJlcS5wYXJhbXMgPz8ge30pLCAuLi5wYXJhbXMgfSxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgdG9Kc29uKCk6IENvbnRleHRDb25kaXRpb25Kc29uIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IFwicGF0aFwiLFxyXG4gICAgICBwYXRoOiB0aGlzLnBhdGgsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaW5mbygpOiBDb25kaXRpb25JbmZvIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHBhdGg6IHRoaXMucGF0aCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBpbmZvSnNvbigpOiBDb250ZXh0Q29uZGl0aW9uSW5mb0pzb24ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcGF0aDogdGhpcy5wYXRoLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGVxdWFscyhvdGhlcjogQ29udGV4dENvbmRpdGlvbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBDb250ZXh0Q29uZGl0aW9uUGF0aCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnBhdGggPT09IG90aGVyLnBhdGg7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29udGV4dENvbmRpdGlvblBhdGgyIGV4dGVuZHMgQ29udGV4dENvbmRpdGlvbiB7XHJcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGF0aDogUmVnRXhwKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcGFyc2UocmVxOiBSZXF1ZXN0KTogQ29uZGl0aW9uUGFyc2VSZXN1bHQge1xyXG4gICAgY29uc3QgbWF0Y2ggPSB0aGlzLnBhdGguZXhlYyhyZXEucGF0aCk7XHJcblxyXG4gICAgaWYgKCFtYXRjaCB8fCBtYXRjaC5pbmRleCAhPT0gMCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGFwcGxpZXM6IGZhbHNlLFxyXG4gICAgICAgIHBhcmFtZXRlcnM6ICgpID0+IHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbmRpdGlvbiBkb2VzIG5vdCBhcHBseVwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN1YlJlcXVlc3Q6ICgpID0+IHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbmRpdGlvbiBkb2VzIG5vdCBhcHBseVwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IG1hdGNoLmdyb3VwcyA/PyB7fTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcHBsaWVzOiB0cnVlLFxyXG4gICAgICBwYXJhbWV0ZXJzOiAoKSA9PiBwYXJhbXMsXHJcbiAgICAgIHN1YlJlcXVlc3Q6IChyZXEpID0+ICh7XHJcbiAgICAgICAgLi4ucmVxLFxyXG4gICAgICAgIHBhdGg6IHJlcS5wYXRoLnNsaWNlKG1hdGNoWzBdLmxlbmd0aCksXHJcbiAgICAgICAgcGFyYW1zOiB7IC4uLihyZXEucGFyYW1zID8/IHt9KSwgLi4ucGFyYW1zIH0sXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGluZm8oKTogQ29uZGl0aW9uSW5mbyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwYXRoOiBgWyR7dGhpcy5wYXRoLnNvdXJjZX1dYCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICB0b0pzb24oKTogQ29udGV4dENvbmRpdGlvbkpzb24ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogXCJwYXRoMlwiLFxyXG4gICAgICBwYXRoOiB0aGlzLnBhdGguc291cmNlLFxyXG4gICAgICBmbGFnczogdGhpcy5wYXRoLmZsYWdzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGluZm9Kc29uKCk6IENvbnRleHRDb25kaXRpb25JbmZvSnNvbiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwYXRoMjogdGhpcy5wYXRoLnNvdXJjZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBlcXVhbHMob3RoZXI6IENvbnRleHRDb25kaXRpb24pOiBib29sZWFuIHtcclxuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgQ29udGV4dENvbmRpdGlvblBhdGgyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGF0aC5zb3VyY2UgPT09IG90aGVyLnBhdGguc291cmNlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRleHRDb25kaXRpb25NZXRob2QgZXh0ZW5kcyBDb250ZXh0Q29uZGl0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtZXRob2Q6IE1ldGhvZCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHBhcnNlKHJlcTogUmVxdWVzdCk6IENvbmRpdGlvblBhcnNlUmVzdWx0IHtcclxuICAgIGlmIChyZXEubWV0aG9kLnRvTG93ZXJDYXNlKCkgIT09IHRoaXMubWV0aG9kLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBhcHBsaWVzOiBmYWxzZSxcclxuICAgICAgICBwYXJhbWV0ZXJzOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb25kaXRpb24gZG9lcyBub3QgYXBwbHlcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdWJSZXF1ZXN0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb25kaXRpb24gZG9lcyBub3QgYXBwbHlcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhcHBsaWVzOiB0cnVlLFxyXG4gICAgICBwYXJhbWV0ZXJzOiAoKSA9PiAoe30pLFxyXG4gICAgICBzdWJSZXF1ZXN0OiAocmVxKSA9PiByZXEsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgdG9Kc29uKCk6IENvbnRleHRDb25kaXRpb25Kc29uIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IFwibWV0aG9kXCIsXHJcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaW5mbygpOiBDb25kaXRpb25JbmZvIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaW5mb0pzb24oKTogQ29udGV4dENvbmRpdGlvbkluZm9Kc29uIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZXF1YWxzKG90aGVyOiBDb250ZXh0Q29uZGl0aW9uKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIENvbnRleHRDb25kaXRpb25NZXRob2QpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5tZXRob2QgPT09IG90aGVyLm1ldGhvZDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb25kaXRpb25DaGFpbiB7XHJcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29uZGl0aW9uczogQ29udGV4dENvbmRpdGlvbltdKSB7fVxyXG5cclxuICBhcHBsaWVzVG8ocmVxOiBSZXF1ZXN0KTogYm9vbGVhbiB7XHJcbiAgICBmb3IgKGNvbnN0IGMgb2YgdGhpcy5jb25kaXRpb25zKSB7XHJcbiAgICAgIGlmICghYy5hcHBsaWVzVG8ocmVxKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXEgPSBjLnN1YlJlcXVlc3QocmVxKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgdG9Kc29uKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogXCJjaGFpblwiLFxyXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmNvbmRpdGlvbnMubWFwKChjKSA9PiBjLnRvSnNvbigpKSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbkluZm8ge1xyXG4gIG1ldGhvZD86IE1ldGhvZDtcclxuICBwYXRoPzogc3RyaW5nO1xyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUE7QUFDQTtBQUNBOztBQWNBO0FB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZXh0Q29uZGl0aW9uIiwiYW5kIiwib3RoZXIiLCJDb250ZXh0Q29uZGl0aW9uQW5kIiwiY2hhaW4iLCJDb25kaXRpb25DaGFpbiIsImFwcGxpZXNUbyIsInJlcSIsImNvbnNvbGUiLCJ3YXJuIiwicGFyc2UiLCJhcHBsaWVzIiwic3ViUmVxdWVzdCIsImV4cG9ydHMiLCJjb25zdHJ1Y3RvciIsImNvbmRpdGlvbnMiLCJwYXJzZWQiLCJtYXAiLCJjIiwiZXZlcnkiLCJyZWR1Y2UiLCJwYXJhbWV0ZXJzIiwicGFyYW1zIiwiaW5mbyIsImEiLCJiIiwidG9Kc29uIiwidHlwZSIsImluZm9Kc29uIiwiaXQiLCJlcXVhbHMiLCJsZW5ndGgiLCJpIiwicGFyc2VQYXRoRGVzY3JpcHRvciIsInN0ciIsInBhcnRzIiwibWF0Y2hBbGwiLCJyZXN1bHQiLCJwYXJ0IiwidXJsIiwiZ3JvdXBzIiwicGFyYW1fbmFtZSIsInBhcmFtIiwicHVzaCIsInBhdGgiLCJuYW1lIiwicGFyc2VkUGF0aFRvUmVnRXhwIiwicmVnZXhwIiwiZW50cnkiLCJyZXBsYWNlIiwiRXJyb3IiLCJqb2luIiwiUmVnRXhwIiwicGFyc2VQYXRoIiwiZGVzY3JpcHRvciIsImRlc2NyaXB0b3JfY29weSIsInNoaWZ0Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWF0Y2giLCJleGVjIiwiJF9fU1VCUEFUSCIsIkNvbnRleHRDb25kaXRpb25QYXRoIiwicGFyc2VkUGF0aCIsInN1YlBhdGgiLCJDb250ZXh0Q29uZGl0aW9uUGF0aDIiLCJpbmRleCIsInNvdXJjZSIsImZsYWdzIiwicGF0aDIiLCJDb250ZXh0Q29uZGl0aW9uTWV0aG9kIiwibWV0aG9kIiwidG9Mb3dlckNhc2UiXSwic291cmNlcyI6WyIuLi9zcmMvY29uZGl0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGhvZCwgUmVxdWVzdCB9IGZyb20gXCJAcnN0ZXIvY29tbW9uXCI7XG5cbi8qKlxuICogSlNPTiByZXByZXNlbnRhdGlvbiBvZiB7QGxpbmsgQ29udGV4dENvbmRpdGlvbkFuZH1cbiAqL1xuZXhwb3J0IHR5cGUgQ29udGV4dENvbmRpdGlvbkFuZEpzb24gPSB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIHRoZSBjb25kaXRpb24gKGFsd2F5cyBcImFuZFwiIGZvciB7QGxpbmsgQ29udGV4dENvbmRpdGlvbkFuZH0pXG4gICAqL1xuICB0eXBlOiBcImFuZFwiO1xuXG4gIC8qKlxuICAgKiBDb25kaXRpb25zIHRoYXQgYXJlIGNoYWluZWQgdG9nZXRoZXJcbiAgICogQGV4YW1wbGUgW3sgdHlwZTogXCJwYXRoXCIsIHBhdGg6IFwiL2FwaS86aWRcIiB9LCB7IHR5cGU6IFwibWV0aG9kXCIsIG1ldGhvZDogXCJHRVRcIiB9XVxuICAgKi9cbiAgY29uZGl0aW9uczogQ29udGV4dENvbmRpdGlvbkpzb25bXTtcbn07XG5cbi8qKlxuICogSlNPTiByZXByZXNlbnRhdGlvbiBvZiB7QGxpbmsgQ29udGV4dENvbmRpdGlvblBhdGh9XG4gKi9cbmV4cG9ydCB0eXBlIENvbnRleHRDb25kaXRpb25QYXRoSnNvbiA9IHtcbiAgLyoqXG4gICAqIFR5cGUgb2YgdGhlIGNvbmRpdGlvbiAoYWx3YXlzIFwicGF0aFwiIGZvciB7QGxpbmsgQ29udGV4dENvbmRpdGlvblBhdGh9KVxuICAgKi9cbiAgdHlwZTogXCJwYXRoXCI7XG5cbiAgLyoqXG4gICAqIFBhdGggdGhhdCBpcyBtYXRjaGVkXG4gICAqIEBleGFtcGxlIFwiL2FwaS86aWRcIlxuICAgKi9cbiAgcGF0aDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHtAbGluayBDb250ZXh0Q29uZGl0aW9uUGF0aDJ9IChSZWdFeHAgcGF0aClcbiAqIEBleGFtcGxlIHsgdHlwZTogXCJwYXRoMlwiLCBwYXRoOiBcIi9hcGkvKFtcXFxcdy1dKylcIiwgZmxhZ3M6IFwiaVwiIH1cbiAqIEBleGFtcGxlIHsgdHlwZTogXCJwYXRoMlwiLCBwYXRoOiBcIi9hcGkvKFtcXFxcdy1dKylcIiB9XG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvUmVnRXhwfVxuICovXG5leHBvcnQgdHlwZSBDb250ZXh0Q29uZGl0aW9uUGF0aDJKc29uID0ge1xuICAvKipcbiAgICogVHlwZSBvZiB0aGUgY29uZGl0aW9uIChhbHdheXMgXCJwYXRoMlwiIGZvciB7QGxpbmsgQ29udGV4dENvbmRpdGlvblBhdGgyfSlcbiAgICovXG4gIHR5cGU6IFwicGF0aDJcIjtcblxuICAvKipcbiAgICogUmVnRXhwIHBhdGggdGhhdCBpcyBtYXRjaGVkXG4gICAqIEBleGFtcGxlIFwiL2FwaS8oW1xcXFx3LV0rKVwiXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1JlZ0V4cH1cbiAgICovXG4gIHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUmVnRXhwIGZsYWdzXG4gICAqIEBleGFtcGxlIFwiaVwiXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1JlZ0V4cH1cbiAgICovXG4gIGZsYWdzOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEpTT04gcmVwcmVzZW50YXRpb24gb2Yge0BsaW5rIENvbnRleHRDb25kaXRpb25NZXRob2R9XG4gKlxuICogQGV4YW1wbGUgeyB0eXBlOiBcIm1ldGhvZFwiLCBtZXRob2Q6IFwiR0VUXCIgfVxuICogQGV4YW1wbGUgeyB0eXBlOiBcIm1ldGhvZFwiLCBtZXRob2Q6IFwiUE9TVFwiIH1cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL01ldGhvZHN9XG4gKiBAc2VlIHtAbGluayBpbXBvcnQoXCJAcnN0ZXIvY29tbW9uXCIpLk1ldGhvZH0ge0BsaW5rIGh0dHBzOi8vbnNjLWRlLmdpdGh1Yi5pby9yc3Rlci9kb2NzL2FwaS1yZWZlcmVuY2UvY29tbW9uL21vZHVsZXMjbWV0aG9kfVxuICovXG5leHBvcnQgdHlwZSBDb250ZXh0Q29uZGl0aW9uTWV0aG9kSnNvbiA9IHsgdHlwZTogXCJtZXRob2RcIjsgbWV0aG9kOiBNZXRob2QgfTtcblxuLyoqXG4gKiBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEge0BsaW5rIENvbnRleHRDb25kaXRpb259IChvbmUgb2Yge0BsaW5rIENvbnRleHRDb25kaXRpb25BbmRKc29ufSwge0BsaW5rIENvbnRleHRDb25kaXRpb25QYXRoSnNvbn0sIHtAbGluayBDb250ZXh0Q29uZGl0aW9uUGF0aDJKc29ufSwge0BsaW5rIENvbnRleHRDb25kaXRpb25NZXRob2RKc29ufSlcbiAqL1xuZXhwb3J0IHR5cGUgQ29udGV4dENvbmRpdGlvbkpzb24gPVxuICB8IENvbnRleHRDb25kaXRpb25BbmRKc29uXG4gIHwgQ29udGV4dENvbmRpdGlvblBhdGhKc29uXG4gIHwgQ29udGV4dENvbmRpdGlvblBhdGgySnNvblxuICB8IENvbnRleHRDb25kaXRpb25NZXRob2RKc29uO1xuXG4vKipcbiAqIEpTT04gcmVwcmVzZW50YXRpb24gb2Yge0BsaW5rIENvbnRleHRDb25kaXRpb259J3MgaW5mbyAoZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcbiAqIEBleGFtcGxlIHsgcGF0aDogXCIvYXBpLzppZFwiLCBtZXRob2Q6IFwiR0VUXCIgfVxuICogQGV4YW1wbGUgeyBwYXRoMjogXCIvYXBpLyhbXFxcXHctXSspXCIsIG1ldGhvZDogXCJHRVRcIiB9XG4gKi9cbmV4cG9ydCB0eXBlIENvbnRleHRDb25kaXRpb25JbmZvSnNvbiA9IHtcbiAgLyoqXG4gICAqIFBhdGggdGhhdCBpcyBtYXRjaGVkXG4gICAqIEBleGFtcGxlIFwiL2FwaS86aWRcIlxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVnRXhwIHBhdGggdGhhdCBpcyBtYXRjaGVkXG4gICAqIEBleGFtcGxlIFwiL2FwaS8oW1xcXFx3LV0rKVwiXG4gICAqL1xuICBwYXRoMj86IHN0cmluZztcblxuICAvKipcbiAgICogTWV0aG9kIHRoYXQgaXMgbWF0Y2hlZFxuICAgKiBAZXhhbXBsZSBcIkdFVFwiXG4gICAqL1xuICBtZXRob2Q/OiBNZXRob2Q7XG59O1xuXG4vKipcbiAqIFJlc3VsdCBvZiB7QGxpbmsgQ29udGV4dENvbmRpdGlvbiNwYXJzZX0gKHVzZWQgZm9yIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI2FwcGxpZXNUb30gYW5kIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI3N1YlJlcXVlc3R9KVxuICogUGFyc2VzIHRoZSBjb25kaXRpb24sIGNoZWNrcyBpZiBpdCBhcHBsaWVzIHRvIGEgcmVxdWVzdCBhbmQgcmV0dXJucyBhbGwgdGhpcyBpbmZvcm1hdGlvbiAodG8gYXZvaWQgZG91YmxlIHBhcnNpbmcpXG4gKiBAZXhhbXBsZSB7IGFwcGxpZXM6IHRydWUsIHBhcmFtZXRlcnM6ICgpID0+ICh7IGlkOiBcIjEyM1wiIH0pLCBzdWJSZXF1ZXN0OiAocmVxKSA9PiAoeyAuLi5yZXEsIHBhdGg6IFwiL2FwaVwiLCBwYXJhbXM6IHsgaWQ6IFwiMTIzXCIgfSB9KSB9XG4gKi9cbmV4cG9ydCB0eXBlIENvbmRpdGlvblBhcnNlUmVzdWx0ID0ge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgY29uZGl0aW9uIGFwcGxpZXMgdG8gdGhlIHJlcXVlc3RcbiAgICovXG4gIGFwcGxpZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlcnMgb2YgdGhlIGNvbmRpdGlvbiAoaWYgaXQgYXBwbGllcylcbiAgICogQGV4YW1wbGUgeyBpZDogXCIxMjNcIiB9XG4gICAqL1xuICBwYXJhbWV0ZXJzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFN1YlJlcXVlc3Qgb2YgdGhlIGNvbmRpdGlvbiAoaWYgaXQgYXBwbGllcykgKHVzZWQgZm9yIHJvdXRpbmcgYW5kIHN1Yi1yb3V0aW5nKVxuICAgKiBAZXhhbXBsZSB7IG1ldGhvZDogXCJHRVRcIiwgcGF0aDogXCIvYXBpXCIsIHBhcmFtczogeyBpZDogXCIxMjNcIiB9IH1cbiAgICovXG4gIHN1YlJlcXVlc3QocmVxOiBSZXF1ZXN0KTogUmVxdWVzdDtcbn07XG5cbi8qKlxuICogQ29uZGl0aW9uIGZvciB7QGxpbmsgQ29udGV4dH0gdXNlZCBmb3Igcm91dGluZyBhbmQgc3ViLXJvdXRpbmdcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRleHRDb25kaXRpb24ge1xuICAvKipcbiAgICogQ2hhaW4gdGhpcyBjb25kaXRpb24gd2l0aCBhbm90aGVyIGNvbmRpdGlvblxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgQ29uZGl0aW9uIHRvIGNoYWluIHdpdGhcbiAgICogQHJldHVybnMgTmV3IGNvbmRpdGlvbiB0aGF0IGFwcGxpZXMgaWYgYm90aCBjb25kaXRpb25zIGFwcGx5XG4gICAqL1xuICBhbmQob3RoZXI6IENvbnRleHRDb25kaXRpb24pOiBDb250ZXh0Q29uZGl0aW9uQW5kIHtcbiAgICByZXR1cm4gbmV3IENvbnRleHRDb25kaXRpb25BbmQoW3RoaXMsIG90aGVyXSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhaW4gdGhpcyBjb25kaXRpb24gd2l0aCBhbm90aGVyIGNvbmRpdGlvbiAgKHVzZWQgZm9yIHN1Yi1yb3V0aW5nKVxuICAgKi9cbiAgY2hhaW4ob3RoZXI6IENvbnRleHRDb25kaXRpb24pOiBDb25kaXRpb25DaGFpbiB7XG4gICAgcmV0dXJuIG5ldyBDb25kaXRpb25DaGFpbihbdGhpcywgb3RoZXJdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgY29uZGl0aW9uIGFwcGxpZXMgdG8gYSByZXF1ZXN0ICh1c2VkIGZvciByb3V0aW5nKSAocGFyc2VzIHRoZSByZXF1ZXN0IGl0c2VsZiwgc28gdXNlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI3BhcnNlfSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucylcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGAjcGFyc2UoKS5hcHBsaWVzYCBpbnN0ZWFkIChGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgYXMgdGhpcyBtZXRob2QgcGFyc2VzIHRoZSByZXF1ZXN0IGl0c2VsZiBhbmQgc3ViUmVxdWVzdCBhZ2FpbilcbiAgICogQHBhcmFtIHJlcSBSZXF1ZXN0IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbmRpdGlvbiBhcHBsaWVzIHRvIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb24jcGFyc2V9XG4gICAqIEBzZWUge0BsaW5rIENvbmRpdGlvblBhcnNlUmVzdWx0I2FwcGxpZXN9XG4gICAqL1xuICBhcHBsaWVzVG8ocmVxOiBSZXF1ZXN0KTogYm9vbGVhbiB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgXCJDb250ZXh0Q29uZGl0aW9uI2FwcGxpZXNUbyBpcyBkZXByZWNhdGVkLCB1c2UgQ29udGV4dENvbmRpdGlvbiNwYXJzZSgpLmFwcGxpZXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgaW5zdGVhZC4gYXBwbGllc1RvIHBhcnNlcyB0aGUgcmVxdWVzdCBpdHNlbGYsIHNvIHlvdSB3aWxsIHBvdGVudGlhbGx5IHBhcnNlIHRoZSByZXF1ZXN0IHR3aWNlLlwiXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZShyZXEpLmFwcGxpZXM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGNvbmRpdGlvbiBhcHBsaWVzIHRvIGEgcmVxdWVzdCAodXNlZCBmb3Igcm91dGluZykgKHBhcnNlcyB0aGUgcmVxdWVzdCBpdHNlbGYsIHNvIHVzZSB7QGxpbmsgQ29udGV4dENvbmRpdGlvbiNwYXJzZX0gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMpXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgI3BhcnNlKCkucGFyYW1ldGVyc2AgaW5zdGVhZCAoRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIGFzIHRoaXMgbWV0aG9kIHBhcnNlcyB0aGUgcmVxdWVzdCBpdHNlbGYgYW5kIGFwcGxpZXNUbyBhZ2FpbilcbiAgICogQHBhcmFtIHJlcSBSZXF1ZXN0IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIFBhcmFtZXRlcnMgb2YgdGhlIGNvbmRpdGlvblxuICAgKlxuICAgKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI3BhcnNlfVxuICAgKiBAc2VlIHtAbGluayBDb25kaXRpb25QYXJzZVJlc3VsdCNzdWJSZXF1ZXN0fVxuICAgKi9cbiAgc3ViUmVxdWVzdChyZXE6IFJlcXVlc3QpOiBSZXF1ZXN0IHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZShyZXEpLnN1YlJlcXVlc3QocmVxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgY29uZGl0aW9uICh1c2VkIGZvciByb3V0aW5nIGFuZCBzdWItcm91dGluZylcbiAgICogQHBhcmFtIHJlcSBSZXF1ZXN0IHRvIHBhcnNlXG4gICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgcGFyc2luZ1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcbiAgICogY29uc3QgcmVzdWx0ID0gY29uZGl0aW9uLnBhcnNlKHsgbWV0aG9kOiBcIkdFVFwiLCBwYXRoOiBcIi9hcGkvMTIzXCIsIHBhcmFtczoge30gfSk7XG4gICAqXG4gICAqIHJlc3VsdC5hcHBsaWVzIC8vIHRydWVcbiAgICogcmVzdWx0LnBhcmFtZXRlcnMoKSAvLyB7IGlkOiBcIjEyM1wiIH1cbiAgICogcmVzdWx0LnN1YlJlcXVlc3QoeyBtZXRob2Q6IFwiR0VUXCIsIHBhdGg6IFwiL2FwaS8xMjNcIiwgcGFyYW1zOiB7fSB9KSAvLyB7IG1ldGhvZDogXCJHRVRcIiwgcGF0aDogXCJcIiwgcGFyYW1zOiB7IGlkOiBcIjEyM1wiIH0gfVxuICAgKiBgYGBcbiAgICpcbiAgICogQHNlZSB7QGxpbmsgQ29uZGl0aW9uUGFyc2VSZXN1bHR9XG4gICAqL1xuICBhYnN0cmFjdCBwYXJzZShyZXE6IFJlcXVlc3QpOiBDb25kaXRpb25QYXJzZVJlc3VsdDtcblxuICAvKipcbiAgICogR2V0IGluZm8gYWJvdXQgdGhlIGNvbmRpdGlvbiAodXNlZCBmb3IgY29sbGVjdGluZyBpbmZvIGFib3V0IGNvbmRpdGlvbnMgYW5kIHNxdWFzaGluZyB0aGVtIHRvZ2V0aGVyKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcbiAgICogY29uc3QgaW5mbyA9IGNvbmRpdGlvbi5pbmZvKCk7IC8vIHsgcGF0aDogXCIvYXBpLzppZFwiICwgbWV0aG9kOiB1bmRlZmluZWQsIHBhdGgyOiB1bmRlZmluZWQgfVxuICAgKiBgYGBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogY29uc3QgY29uZGl0aW9uID0gbmV3IENvbnRleHRDb25kaXRpb25BbmQoW1xuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uUGF0aChcIi9hcGkvOmlkXCIpLFxuICAgKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uTWV0aG9kKFwiR0VUXCIpLFxuICAgKiBdKTtcbiAgICogY29uc3QgaW5mbyA9IGNvbmRpdGlvbi5pbmZvKCk7IC8vIHsgcGF0aDogXCIvYXBpLzppZFwiICwgbWV0aG9kOiBcIkdFVFwiLCBwYXRoMjogdW5kZWZpbmVkIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb24jaW5mb0pzb259XG4gICAqL1xuICBhYnN0cmFjdCBpbmZvKCk6IENvbmRpdGlvbkluZm87XG5cbiAgLyoqXG4gICAqIEdldCBpbmZvIGFib3V0IHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogY29uc3QgY29uZGl0aW9uID0gbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIik7XG4gICAqIGNvbnN0IGluZm8gPSBjb25kaXRpb24udG9Kc29uKCk7IC8vIHsgdHlwZTogXCJwYXRoXCIsIHBhdGg6IFwiL2FwaS86aWRcIiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uSnNvbn1cbiAgICovXG4gIGFic3RyYWN0IHRvSnNvbigpOiBDb250ZXh0Q29uZGl0aW9uSnNvbjtcblxuICAvKipcbiAgICogR2V0IGluZm8gYWJvdXQgdGhlIGNvbmRpdGlvbiAodXNlZCBmb3IgY29sbGVjdGluZyBpbmZvIGFib3V0IGNvbmRpdGlvbnMgYW5kIHNxdWFzaGluZyB0aGVtIHRvZ2V0aGVyKVxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcbiAgICogY29uc3QgaW5mbyA9IGNvbmRpdGlvbi5pbmZvSnNvbigpOyAvLyB7IHBhdGg6IFwiL2FwaS86aWRcIiAsIG1ldGhvZDogdW5kZWZpbmVkLCBwYXRoMjogdW5kZWZpbmVkIH1cbiAgICogYGBgXG4gICAqL1xuICBhYnN0cmFjdCBpbmZvSnNvbigpOiBDb250ZXh0Q29uZGl0aW9uSW5mb0pzb247XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBjb25kaXRpb24gaXMgZXF1YWwgdG8gYW5vdGhlciBjb25kaXRpb25cbiAgICogQHBhcmFtIG90aGVyIENvbmRpdGlvbiB0byBjaGVja1xuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb25kaXRpb25zIGFyZSBlcXVhbFxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcbiAgICogY29uc3Qgb3RoZXIgPSBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKTtcbiAgICogY29uc3Qgb3RoZXIyID0gbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWQyXCIpO1xuICAgKlxuICAgKiBjb25kaXRpb24uZXF1YWxzKG90aGVyKSAvLyB0cnVlXG4gICAqIGNvbmRpdGlvbi5lcXVhbHMob3RoZXIyKSAvLyBmYWxzZVxuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IGVxdWFscyhvdGhlcjogQ29udGV4dENvbmRpdGlvbik6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIHRoYXQgYXBwbGllcyBpZiBhbGwgY29uZGl0aW9ucyBhcHBseVxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvbkFuZChbXG4gKiAgIG5ldyBDb250ZXh0Q29uZGl0aW9uUGF0aChcIi9hcGkvOmlkXCIpLFxuICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcbiAqIF0pO1xuICpcbiAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb259XG4gKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uQW5kSnNvbn1cbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHRDb25kaXRpb25BbmQgZXh0ZW5kcyBDb250ZXh0Q29uZGl0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBjb25kaXRpb24gdGhhdCBhcHBsaWVzIGlmIGFsbCBjb25kaXRpb25zIGFwcGx5XG4gICAqIEBwYXJhbSBjb25kaXRpb25zIFRoZSBjb25kaXRpb25zIHRoYXQgYXJlIGNoYWluZWQgdG9nZXRoZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIENvbmRpdGlvbnMgdGhhdCBhcmUgY2hhaW5lZCB0b2dldGhlclxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbmRpdGlvbnM6IENvbnRleHRDb25kaXRpb25bXVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYWluIHRoaXMgY29uZGl0aW9uIHdpdGggYW5vdGhlciBjb25kaXRpb25cbiAgICogQHBhcmFtIG90aGVyIFRoZSBjb25kaXRpb24gdG8gY2hhaW4gd2l0aFxuICAgKiBAcmV0dXJucyBUaGUgbmV3IGNvbmRpdGlvbiB0aGF0IGFwcGxpZXMgaWYgYm90aCBjb25kaXRpb25zIGFwcGx5XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGNvbnN0IGNvbmRpdGlvbiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcbiAgICogXSk7XG4gICAqXG4gICAqIGNvbnN0IG90aGVyID0gbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWQyXCIpO1xuICAgKiBjb25zdCBuZXdDb25kaXRpb24gPSBjb25kaXRpb24uYW5kKG90aGVyKTtcbiAgICogYGBgXG4gICAqL1xuICBhbmQob3RoZXI6IENvbnRleHRDb25kaXRpb24pOiBDb250ZXh0Q29uZGl0aW9uQW5kIHtcbiAgICByZXR1cm4gbmV3IENvbnRleHRDb25kaXRpb25BbmQoWy4uLnRoaXMuY29uZGl0aW9ucywgb3RoZXJdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgY29uZGl0aW9uICh1c2VkIGZvciByb3V0aW5nIGFuZCBzdWItcm91dGluZylcbiAgICogQHBhcmFtIHJlcSBUaGUgcmVxdWVzdCB0byBwYXJzZVxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBwYXJzaW5nXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGNvbnN0IGNvbmRpdGlvbiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcbiAgICogXSk7XG4gICAqIGNvbnN0IHJlc3VsdCA9IGNvbmRpdGlvbi5wYXJzZSh7IG1ldGhvZDogXCJHRVRcIiwgcGF0aDogXCIvYXBpLzEyM1wiLCBwYXJhbXM6IHt9IH0pO1xuICAgKiByZXN1bHQuYXBwbGllcyAvLyB0cnVlXG4gICAqIHJlc3VsdC5wYXJhbWV0ZXJzKCkgLy8geyBpZDogXCIxMjNcIiB9XG4gICAqIHJlc3VsdC5zdWJSZXF1ZXN0KHsgbWV0aG9kOiBcIkdFVFwiLCBwYXRoOiBcIi9hcGkvMTIzXCIsIHBhcmFtczoge30gfSkgLy8geyBtZXRob2Q6IFwiR0VUXCIsIHBhdGg6IFwiXCIsIHBhcmFtczogeyBpZDogXCIxMjNcIiB9IH1cbiAgICogYGBgXG4gICAqIEBzZWUge0BsaW5rIENvbmRpdGlvblBhcnNlUmVzdWx0fVxuICAgKi9cbiAgcGFyc2UocmVxOiBSZXF1ZXN0KTogQ29uZGl0aW9uUGFyc2VSZXN1bHQge1xuICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMuY29uZGl0aW9ucy5tYXAoKGMpID0+IGMucGFyc2UocmVxKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpZXM6IHBhcnNlZC5ldmVyeSgoYykgPT4gYy5hcHBsaWVzKSxcbiAgICAgIHN1YlJlcXVlc3Q6IChyZXE6IFJlcXVlc3QpID0+XG4gICAgICAgIHBhcnNlZC5yZWR1Y2UoKHJlcSwgYykgPT4gYy5zdWJSZXF1ZXN0KHJlcSksIHJlcSksXG4gICAgICBwYXJhbWV0ZXJzOiAoKSA9PlxuICAgICAgICBwYXJzZWQucmVkdWNlKChwYXJhbXMsIGMpID0+ICh7IC4uLnBhcmFtcywgLi4uYy5wYXJhbWV0ZXJzKCkgfSksIHt9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpbmZvIGFib3V0IHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcbiAgICogQHJldHVybnMgSW5mbyBhYm91dCB0aGUgY29uZGl0aW9uICh1c2VkIGZvciBjb2xsZWN0aW5nIGluZm8gYWJvdXQgY29uZGl0aW9ucyBhbmQgc3F1YXNoaW5nIHRoZW0gdG9nZXRoZXIpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGNvbnN0IGNvbmRpdGlvbiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcbiAgICogXSk7XG4gICAqIGNvbnN0IGluZm8gPSBjb25kaXRpb24uaW5mbygpOyAvLyB7IHBhdGg6IFwiL2FwaS86aWRcIiAsIG1ldGhvZDogXCJHRVRcIiwgcGF0aDI6IHVuZGVmaW5lZCB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uI2luZm9Kc29ufVxuICAgKi9cbiAgaW5mbygpOiBDb25kaXRpb25JbmZvIHtcbiAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zXG4gICAgICAubWFwKChjKSA9PiBjLmluZm8oKSlcbiAgICAgIC5yZWR1Y2UoKGEsIGIpID0+ICh7IC4uLmEsIC4uLmIgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb25kaXRpb24gKHVzZWQgZm9yIGNvbGxlY3RpbmcgaW5mbyBhYm91dCBjb25kaXRpb25zIGFuZCBzcXVhc2hpbmcgdGhlbSB0b2dldGhlcilcbiAgICogQHJldHVybnMgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29uZGl0aW9uICh1c2VkIGZvciBjb2xsZWN0aW5nIGluZm8gYWJvdXQgY29uZGl0aW9ucyBhbmQgc3F1YXNoaW5nIHRoZW0gdG9nZXRoZXIpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGNvbnN0IGNvbmRpdGlvbiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcbiAgICogXSk7XG4gICAqXG4gICAqIGNvbnN0IGpzb24gPSBjb25kaXRpb24udG9Kc29uKCk7IC8vIHsgdHlwZTogXCJhbmRcIiwgY29uZGl0aW9uczogW3sgdHlwZTogXCJwYXRoXCIsIHBhdGg6IFwiL2FwaS86aWRcIiB9LCB7IHR5cGU6IFwibWV0aG9kXCIsIG1ldGhvZDogXCJHRVRcIiB9XSB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAc2VlIHtAbGluayBDb250ZXh0Q29uZGl0aW9uQW5kSnNvbn1cbiAgICogQHNlZSB7QGxpbmsgQ29udGV4dENvbmRpdGlvbkpzb259XG4gICAqL1xuICB0b0pzb24oKTogQ29udGV4dENvbmRpdGlvbkpzb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcImFuZFwiLFxuICAgICAgY29uZGl0aW9uczogdGhpcy5jb25kaXRpb25zLm1hcCgoYykgPT4gYy50b0pzb24oKSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5mbyBhYm91dCB0aGUgY29uZGl0aW9uICh1c2VkIGZvciBjb2xsZWN0aW5nIGluZm8gYWJvdXQgY29uZGl0aW9ucyBhbmQgc3F1YXNoaW5nIHRoZW0gdG9nZXRoZXIpXG4gICAqIEByZXR1cm5zIEluZm8gYWJvdXQgdGhlIGNvbmRpdGlvbiAodXNlZCBmb3IgY29sbGVjdGluZyBpbmZvIGFib3V0IGNvbmRpdGlvbnMgYW5kIHNxdWFzaGluZyB0aGVtIHRvZ2V0aGVyKVxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvbkFuZChbXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIiksXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25NZXRob2QoXCJHRVRcIiksXG4gICAqIF0pO1xuICAgKiBjb25zdCBpbmZvID0gY29uZGl0aW9uLmluZm9Kc29uKCk7IC8vIHsgcGF0aDogXCIvYXBpLzppZFwiICwgbWV0aG9kOiBcIkdFVFwiLCBwYXRoMjogdW5kZWZpbmVkIH1cbiAgICogYGBgXG4gICAqIEBzZWUge0BsaW5rIENvbnRleHRDb25kaXRpb24jaW5mb31cbiAgICogQHNlZSB7QGxpbmsgQ29udGV4dENvbmRpdGlvbkluZm9Kc29ufVxuICAgKi9cbiAgaW5mb0pzb24oKTogQ29udGV4dENvbmRpdGlvbkluZm9Kc29uIHtcbiAgICBsZXQgaXQgPSB7fTtcblxuICAgIGZvciAoY29uc3QgYyBvZiB0aGlzLmNvbmRpdGlvbnMpIHtcbiAgICAgIGl0ID0geyAuLi5pdCwgLi4uYy5pbmZvSnNvbigpIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBjb25kaXRpb24gaXMgZXF1YWwgdG8gYW5vdGhlciBjb25kaXRpb25cbiAgICogQHBhcmFtIG90aGVyIENvbmRpdGlvbiB0byBjaGVja1xuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb25kaXRpb25zIGFyZSBlcXVhbFxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBjb25kaXRpb24gPSBuZXcgQ29udGV4dENvbmRpdGlvbkFuZChbXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25QYXRoKFwiL2FwaS86aWRcIiksXG4gICAqICAgbmV3IENvbnRleHRDb25kaXRpb25NZXRob2QoXCJHRVRcIiksXG4gICAqIF0pO1xuICAgKlxuICAgKiBjb25zdCBvdGhlciA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIkdFVFwiKSxcbiAgICogXSk7XG4gICAqXG4gICAqIGNvbnN0IG90aGVyMiA9IG5ldyBDb250ZXh0Q29uZGl0aW9uQW5kKFtcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvblBhdGgoXCIvYXBpLzppZFwiKSxcbiAgICogICBuZXcgQ29udGV4dENvbmRpdGlvbk1ldGhvZChcIlBPU1RcIiksXG4gICAqIF0pO1xuICAgKlxuICAgKiBjb25kaXRpb24uZXF1YWxzKG90aGVyKSAvLyB0cnVlXG4gICAqIGNvbmRpdGlvbi5lcXVhbHMob3RoZXIyKSAvLyBmYWxzZVxuICAgKiBgYGBcbiAgICogQHNlZSB7QGxpbmsgQ29udGV4dENvbmRpdGlvbiNlcXVhbHN9XG4gICAqL1xuICBlcXVhbHMob3RoZXI6IENvbnRleHRDb25kaXRpb24pOiBib29sZWFuIHtcbiAgICAvLyBUT0RPOiBBZGQgY2hlY2tpbmcgaWYgY29uZGl0aW9ucyBhcmUgZXF1YWwgYnV0IGluIGRpZmZlcmVudCBvcmRlclxuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgQ29udGV4dENvbmRpdGlvbkFuZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25kaXRpb25zLmxlbmd0aCAhPT0gb3RoZXIuY29uZGl0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29uZGl0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbnNbaV0uZXF1YWxzKG90aGVyLmNvbmRpdGlvbnNbaV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG50eXBlIFBhcnNlZFBhdGhEZXNjcmlwdG9yUGF0aEVudHJ5ID0geyB0eXBlOiBcInBhdGhcIjsgcGF0aDogc3RyaW5nIH07XG50eXBlIFBhcnNlZFBhdGhEZXNjcmlwdG9yUGFyYW1FbnRyeSA9IHsgdHlwZTogXCJwYXJhbVwiOyBuYW1lOiBzdHJpbmcgfTtcbnR5cGUgUGFyc2VkUGF0aERlc2NyaXB0b3IgPSAoXG4gIHwgUGFyc2VkUGF0aERlc2NyaXB0b3JQYXRoRW50cnlcbiAgfCBQYXJzZWRQYXRoRGVzY3JpcHRvclBhcmFtRW50cnlcbilbXTtcblxuZnVuY3Rpb24gcGFyc2VQYXRoRGVzY3JpcHRvcihzdHI6IHN0cmluZyk6IFBhcnNlZFBhdGhEZXNjcmlwdG9yIHtcbiAgY29uc3QgcGFydHMgPSBzdHIubWF0Y2hBbGwoLygoPzx1cmw+W146XSopKDooPzxwYXJhbT5bXFx3LV0rKSk/KS9nKTtcbiAgY29uc3QgcmVzdWx0OiBQYXJzZWRQYXRoRGVzY3JpcHRvciA9IFtdO1xuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBpZiAocGFydC5sZW5ndGggPT09IDApIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgdXJsID0gcGFydC5ncm91cHM/LnVybDtcbiAgICBjb25zdCBwYXJhbV9uYW1lID0gcGFydC5ncm91cHM/LnBhcmFtO1xuXG4gICAgaWYgKHVybCkgcmVzdWx0LnB1c2goeyB0eXBlOiBcInBhdGhcIiwgcGF0aDogdXJsIH0pO1xuICAgIGlmIChwYXJhbV9uYW1lKSByZXN1bHQucHVzaCh7IHR5cGU6IFwicGFyYW1cIiwgbmFtZTogcGFyYW1fbmFtZSB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHBhcnNlZFBhdGhUb1JlZ0V4cChwYXJzZWQ6IFBhcnNlZFBhdGhEZXNjcmlwdG9yKTogUmVnRXhwIHtcbiAgY29uc3QgcmVnZXhwID0gcGFyc2VkXG4gICAgLm1hcCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS50eXBlID09PSBcInBhdGhcIilcbiAgICAgICAgcmV0dXJuIGVudHJ5LnBhdGgucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpO1xuICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IFwicGFyYW1cIikgcmV0dXJuIGAoPzwke2VudHJ5Lm5hbWV9PltcXFxcdy1dKylgO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBlbnRyeSB0eXBlXCIpO1xuICAgIH0pXG4gICAgLmpvaW4oXCJcIik7XG5cbiAgcmV0dXJuIG5ldyBSZWdFeHAoYF4ke3JlZ2V4cH1gLCBcImlcIik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGF0aChcbiAgcGF0aDogc3RyaW5nLFxuICBkZXNjcmlwdG9yOiBQYXJzZWRQYXRoRGVzY3JpcHRvclxuKTogKFJlY29yZDxzdHJpbmcsIHN0cmluZz4gJiB7ICRfX1NVQlBBVEg6IHN0cmluZyB9KSB8IGZhbHNlIHtcbiAgY29uc3QgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGNvbnN0IGRlc2NyaXB0b3JfY29weSA9IFsuLi5kZXNjcmlwdG9yXTtcblxuICB3aGlsZSAoZGVzY3JpcHRvcl9jb3B5Lmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBlbnRyeSA9IGRlc2NyaXB0b3JfY29weS5zaGlmdCgpO1xuXG4gICAgaWYgKCFlbnRyeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5leHBlY3RlZCBlbmQgb2YgZGVzY3JpcHRvclwiKTtcbiAgICB9XG5cbiAgICBpZiAoZW50cnkudHlwZSA9PT0gXCJwYXRoXCIpIHtcbiAgICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGVudHJ5LnBhdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHBhdGggPSBwYXRoLnNsaWNlKGVudHJ5LnBhdGgubGVuZ3RoKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChlbnRyeS50eXBlID09PSBcInBhcmFtXCIpIHtcbiAgICAgIC8vIG1hdGNoIHN0YXJ0IG9mIHBhdGggd2hpbGUgbWF0Y2hpbmcgXFx3LSBjaGFyYWN0ZXJzXG4gICAgICBjb25zdCBtYXRjaCA9IC9eKFtcXHctXSspLy5leGVjKHBhdGgpPy5bMF0gPz8gXCJcIjtcbiAgICAgIHBhcmFtc1tlbnRyeS5uYW1lXSA9IG1hdGNoO1xuICAgICAgcGF0aCA9IHBhdGguc2xpY2UobWF0Y2gubGVuZ3RoKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgZW50cnkgdHlwZVwiKTtcbiAgfVxuXG4gIHJldHVybiB7IC4uLnBhcmFtcywgJF9fU1VCUEFUSDogcGF0aCB9O1xufVxuXG5leHBvcnQgY2xhc3MgQ29udGV4dENvbmRpdGlvblBhdGggZXh0ZW5kcyBDb250ZXh0Q29uZGl0aW9uIHtcbiAgcmVhZG9ubHkgcGFyc2VkUGF0aDogUGFyc2VkUGF0aERlc2NyaXB0b3I7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhdGg6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wYXJzZWRQYXRoID0gcGFyc2VQYXRoRGVzY3JpcHRvcihwYXRoKTtcbiAgfVxuXG4gIHBhcnNlKHJlcTogUmVxdWVzdCk6IENvbmRpdGlvblBhcnNlUmVzdWx0IHtcbiAgICBjb25zdCBwYXJhbXMgPSBwYXJzZVBhdGgocmVxLnBhdGgsIHRoaXMucGFyc2VkUGF0aCk7XG5cbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXBwbGllczogZmFsc2UsXG4gICAgICAgIHBhcmFtZXRlcnM6ICgpID0+IHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb25kaXRpb24gZG9lcyBub3QgYXBwbHlcIik7XG4gICAgICAgIH0sXG4gICAgICAgIHN1YlJlcXVlc3Q6ICgpID0+IHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb25kaXRpb24gZG9lcyBub3QgYXBwbHlcIik7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHN1YlBhdGggPSBwYXJhbXMuJF9fU1VCUEFUSDtcblxuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWVzOiB0cnVlLFxuICAgICAgcGFyYW1ldGVyczogKCkgPT4gcGFyYW1zLFxuICAgICAgc3ViUmVxdWVzdDogKHJlcSkgPT4gKHtcbiAgICAgICAgLi4ucmVxLFxuICAgICAgICBwYXRoOiBzdWJQYXRoLFxuICAgICAgICBwYXJhbXM6IHsgLi4uKHJlcS5wYXJhbXMgPz8ge30pLCAuLi5wYXJhbXMgfSxcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICB0b0pzb24oKTogQ29udGV4dENvbmRpdGlvbkpzb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInBhdGhcIixcbiAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICB9O1xuICB9XG5cbiAgaW5mbygpOiBDb25kaXRpb25JbmZvIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgIH07XG4gIH1cblxuICBpbmZvSnNvbigpOiBDb250ZXh0Q29uZGl0aW9uSW5mb0pzb24ge1xuICAgIHJldHVybiB7XG4gICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogQ29udGV4dENvbmRpdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgQ29udGV4dENvbmRpdGlvblBhdGgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucGF0aCA9PT0gb3RoZXIucGF0aDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGV4dENvbmRpdGlvblBhdGgyIGV4dGVuZHMgQ29udGV4dENvbmRpdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhdGg6IFJlZ0V4cCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwYXJzZShyZXE6IFJlcXVlc3QpOiBDb25kaXRpb25QYXJzZVJlc3VsdCB7XG4gICAgY29uc3QgbWF0Y2ggPSB0aGlzLnBhdGguZXhlYyhyZXEucGF0aCk7XG5cbiAgICBpZiAoIW1hdGNoIHx8IG1hdGNoLmluZGV4ICE9PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhcHBsaWVzOiBmYWxzZSxcbiAgICAgICAgcGFyYW1ldGVyczogKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbmRpdGlvbiBkb2VzIG5vdCBhcHBseVwiKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3ViUmVxdWVzdDogKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbmRpdGlvbiBkb2VzIG5vdCBhcHBseVwiKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0gbWF0Y2guZ3JvdXBzID8/IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpZXM6IHRydWUsXG4gICAgICBwYXJhbWV0ZXJzOiAoKSA9PiBwYXJhbXMsXG4gICAgICBzdWJSZXF1ZXN0OiAocmVxKSA9PiAoe1xuICAgICAgICAuLi5yZXEsXG4gICAgICAgIHBhdGg6IHJlcS5wYXRoLnNsaWNlKG1hdGNoWzBdLmxlbmd0aCksXG4gICAgICAgIHBhcmFtczogeyAuLi4ocmVxLnBhcmFtcyA/PyB7fSksIC4uLnBhcmFtcyB9LFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIGluZm8oKTogQ29uZGl0aW9uSW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IGBbJHt0aGlzLnBhdGguc291cmNlfV1gLFxuICAgIH07XG4gIH1cblxuICB0b0pzb24oKTogQ29udGV4dENvbmRpdGlvbkpzb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInBhdGgyXCIsXG4gICAgICBwYXRoOiB0aGlzLnBhdGguc291cmNlLFxuICAgICAgZmxhZ3M6IHRoaXMucGF0aC5mbGFncyxcbiAgICB9O1xuICB9XG5cbiAgaW5mb0pzb24oKTogQ29udGV4dENvbmRpdGlvbkluZm9Kc29uIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDI6IHRoaXMucGF0aC5zb3VyY2UsXG4gICAgfTtcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogQ29udGV4dENvbmRpdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgQ29udGV4dENvbmRpdGlvblBhdGgyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBhdGguc291cmNlID09PSBvdGhlci5wYXRoLnNvdXJjZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGV4dENvbmRpdGlvbk1ldGhvZCBleHRlbmRzIENvbnRleHRDb25kaXRpb24ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtZXRob2Q6IE1ldGhvZCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwYXJzZShyZXE6IFJlcXVlc3QpOiBDb25kaXRpb25QYXJzZVJlc3VsdCB7XG4gICAgaWYgKHJlcS5tZXRob2QudG9Mb3dlckNhc2UoKSAhPT0gdGhpcy5tZXRob2QudG9Mb3dlckNhc2UoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXBwbGllczogZmFsc2UsXG4gICAgICAgIHBhcmFtZXRlcnM6ICgpID0+IHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb25kaXRpb24gZG9lcyBub3QgYXBwbHlcIik7XG4gICAgICAgIH0sXG4gICAgICAgIHN1YlJlcXVlc3Q6ICgpID0+IHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb25kaXRpb24gZG9lcyBub3QgYXBwbHlcIik7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWVzOiB0cnVlLFxuICAgICAgcGFyYW1ldGVyczogKCkgPT4gKHt9KSxcbiAgICAgIHN1YlJlcXVlc3Q6IChyZXEpID0+IHJlcSxcbiAgICB9O1xuICB9XG5cbiAgdG9Kc29uKCk6IENvbnRleHRDb25kaXRpb25Kc29uIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJtZXRob2RcIixcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgfTtcbiAgfVxuXG4gIGluZm8oKTogQ29uZGl0aW9uSW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgfTtcbiAgfVxuXG4gIGluZm9Kc29uKCk6IENvbnRleHRDb25kaXRpb25JbmZvSnNvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgfTtcbiAgfVxuXG4gIGVxdWFscyhvdGhlcjogQ29udGV4dENvbmRpdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgQ29udGV4dENvbmRpdGlvbk1ldGhvZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tZXRob2QgPT09IG90aGVyLm1ldGhvZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZGl0aW9uQ2hhaW4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25kaXRpb25zOiBDb250ZXh0Q29uZGl0aW9uW10pIHt9XG5cbiAgYXBwbGllc1RvKHJlcTogUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgYyBvZiB0aGlzLmNvbmRpdGlvbnMpIHtcbiAgICAgIGlmICghYy5hcHBsaWVzVG8ocmVxKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXEgPSBjLnN1YlJlcXVlc3QocmVxKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0b0pzb24oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiY2hhaW5cIixcbiAgICAgIGNvbmRpdGlvbnM6IHRoaXMuY29uZGl0aW9ucy5tYXAoKGMpID0+IGMudG9Kc29uKCkpLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25JbmZvIHtcbiAgbWV0aG9kPzogTWV0aG9kO1xuICBwYXRoPzogc3RyaW5nO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQTtBQUNBO0FBQ0E7O0FBY0E7QUFDQTtBQUNBOztBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQXdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBOztBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBcUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBb0JBO0FBQ0E7QUFDQTtBQUNPLE1BQWVBLGdCQUFnQixDQUFDO0VBQ3JDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxHQUFHQSxDQUFDQyxLQUF1QixFQUF1QjtJQUNoRCxPQUFPLElBQUlDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxFQUFFRCxLQUFLLENBQUMsQ0FBQztFQUMvQzs7RUFFQTtBQUNGO0FBQ0E7RUFDRUUsS0FBS0EsQ0FBQ0YsS0FBdUIsRUFBa0I7SUFDN0MsT0FBTyxJQUFJRyxjQUFjLENBQUMsQ0FBQyxJQUFJLEVBQUVILEtBQUssQ0FBQyxDQUFDO0VBQzFDOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0VJLFNBQVNBLENBQUNDLEdBQVksRUFBVztJQUMvQkMsT0FBTyxDQUFDQyxJQUFJLENBQ1YsdU1BQ0YsQ0FBQztJQUNELE9B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

@@ -59,2 +59,2 @@ "use strict";

var _default = exports.default = _rster.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZGl0aW9uIiwicmVxdWlyZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl9jb250ZXh0IiwiX2Vycm9yIiwiX3JzdGVyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsInNldCIsIl9kZWZhdWx0IiwicmVzdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb25kaXRpb25cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29udGV4dFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvclwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9yc3RlclwiO1xyXG5cclxuaW1wb3J0IHJlc3QgZnJvbSBcIi4vcnN0ZXJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHJlc3Q7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUgsVUFBQSxFQUFBSSxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZGl0aW9uIiwicmVxdWlyZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl9jb250ZXh0IiwiX2Vycm9yIiwiX3JzdGVyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsInNldCIsIl9kZWZhdWx0IiwicmVzdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb25kaXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yc3RlclwiO1xuXG5pbXBvcnQgcmVzdCBmcm9tIFwiLi9yc3RlclwiO1xuXG5leHBvcnQgZGVmYXVsdCByZXN0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSCxVQUFBLEVBQUFJLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFB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

@@ -64,2 +64,2 @@ "use strict";

var _default = exports.default = rest;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29udGV4dCIsInJlcXVpcmUiLCJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1Z0h0dHBFcnJvciIsImRlYnVnIiwiZGVidWdDYXVnaHQiLCJSZXN0ZnVsQXBpIiwiQ29udGV4dCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsInVuZGVmaW5lZCIsIm9wdHMiLCJfb3B0aW9ucyIsIl9hcGkiLCJoYW5kbGUiLCJyZXEiLCJyZXMiLCJzZW5kNDA0IiwiZm91bmQiLCJleGVjdXRlIiwic3RhdHVzIiwianNvbiIsIm1lc3NhZ2UiLCJwYXRoIiwiZnVsbFBhdGgiLCJhcGlfcGF0aCIsImZ1bGxBcGlQYXRoIiwibWV0aG9kIiwiZW5kIiwiZSIsIkh0dHBFcnJvciIsImVycm9yIiwidG9Kc29uIiwiZXhwb3J0cyIsInJlc3QiLCJpbml0IiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvcnN0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCwgQ29udGV4dEluaXRpYWxpemVyIH0gZnJvbSBcIi4vY29udGV4dFwiO1xyXG5pbXBvcnQgZGVidWcgZnJvbSBcImRlYnVnXCI7XHJcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gXCIuL2Vycm9yXCI7XHJcbmltcG9ydCB7IFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSBcIkByc3Rlci9jb21tb25cIjtcclxuXHJcbmNvbnN0IGRlYnVnSHR0cEVycm9yID0gZGVidWcoXCJyc3RlcjpodHRwLWVycm9yXCIpO1xyXG5jb25zdCBkZWJ1Z0NhdWdodCA9IGRlYnVnKFwicnN0ZXI6Y2F1Z2h0LWVycm9yXCIpO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlc3RmdWxBcGkgZXh0ZW5kcyBDb250ZXh0IHtcclxuICBwcml2YXRlIF9vcHRpb25zOiBSZXN0ZnVsQXBpT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IFJlc3RmdWxBcGlPcHRpb25zSW5pdCkge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIHN1cGVyKHVuZGVmaW5lZCBhcyBhbnkpO1xyXG5cclxuICAgIGNvbnN0IG9wdHM6IFJlc3RmdWxBcGlPcHRpb25zID0ge1xyXG4gICAgICBkZWJ1Zzogb3B0aW9ucz8uZGVidWcgPz8gZmFsc2UsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRzO1xyXG5cclxuICAgIHRoaXMuX2FwaSA9IHRoaXM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBoYW5kbGUoXHJcbiAgICByZXE6IFJlcXVlc3QsXHJcbiAgICByZXM6IFJlc3BvbnNlLFxyXG4gICAgeyBzZW5kNDA0ID0gdHJ1ZSB9OiB7IHNlbmQ0MDQ/OiBib29sZWFuIH0gPSB7fVxyXG4gICk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgc2VuZDQwNCA9IHNlbmQ0MDQgPz8gdHJ1ZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBmb3VuZCA9IGF3YWl0IHRoaXMuZXhlY3V0ZShyZXEsIHJlcyk7XHJcbiAgICAgIGlmICghZm91bmQgJiYgc2VuZDQwNCkge1xyXG4gICAgICAgIGF3YWl0IHJlcy5zdGF0dXMoNDA0KS5qc29uKHtcclxuICAgICAgICAgIG1lc3NhZ2U6IGBOb3QgRm91bmRgLFxyXG4gICAgICAgICAgcGF0aDogcmVxLmZ1bGxQYXRoLFxyXG4gICAgICAgICAgYXBpX3BhdGg6IHJlcS5mdWxsQXBpUGF0aCxcclxuICAgICAgICAgIG1ldGhvZDogcmVxLm1ldGhvZCxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICByZXMuZW5kKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcclxuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBIdHRwRXJyb3IpIHtcclxuICAgICAgICBkZWJ1Z0h0dHBFcnJvcihlKTtcclxuICAgICAgICByZXMuc3RhdHVzKGUuc3RhdHVzKS5qc29uKHsgZXJyb3I6IGUudG9Kc29uKCkgfSkuZW5kKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGVidWdDYXVnaHQoZSk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHsgbWVzc2FnZTogXCJJbnRlcm5hbCBzZXJ2ZXIgZXJyb3JcIiB9KS5lbmQoKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAvKiBlbXB0eSAqL1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXN0ZnVsQXBpT3B0aW9ucyB7XHJcbiAgZGVidWc6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGZ1bEFwaU9wdGlvbnNJbml0IHtcclxuICBkZWJ1Zz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXN0KGluaXQ6IENvbnRleHRJbml0aWFsaXplcikge1xyXG4gIHJldHVybiBuZXcgUmVzdGZ1bEFwaSgpLmluaXQoaW5pdCk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHJlc3Q7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUFvQyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUdwQyxNQUFNRyxjQUFjLEdBQUcsSUFBQUMsY0FBSyxFQUFDLGtCQUFrQixDQUFDO0FBQ2hELE1BQU1DLFdBQVcsR0FBRyxJQUFBRCxjQUFLLEVBQUMsb0JBQW9CLENBQUM7QUFFeEMsTUFBTUUsVUFBVSxTQUFTQyxnQkFBTyxDQUFDO0VBR3RDQyxXQUFXQSxDQUFDQyxPQUErQixFQUFFO0lBQzNDO0lBQ0EsS0FBSyxDQUFDQyxTQUFnQixDQUFDO0lBRXZCLE1BQU1DLElBQXVCLEdBQUc7TUFDOUJQLEtBQUssRUFBRUssT0FBTyxFQUFFTCxLQUFLLElBQUk7SUFDM0IsQ0FBQztJQUVELElBQUksQ0FBQ1EsUUFBUSxHQUFHRCxJQUFJO0lBRXBCLElBQUksQ0FBQ0UsSUFBSSxHQUFHLElBQUk7RUFDbEI7RUFFQSxNQUFNQyxNQUFNQSxDQUNWQyxHQUFZLEVBQ1pDLEdBQWEsRUFDYjtJQUFFQyxPQUFPLEdBQUc7RUFBNEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMvQjtJQUNmQSxPQUFPLEdBQUdBLE9BQU8sSUFBSSxJQUFJO0lBRXpCLElBQUk7TUFDRixNQUFNQyxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUNDLE9BQU8sQ0FBQ0osR0FBRyxFQUFFQyxHQUFHLENBQUM7TUFDMUMsSUFBSSxDQUFDRSxLQUFLLElBQUlELE9BQU8sRUFBRTtRQUNyQixNQUFNRCxHQUFHLENBQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO1VBQ3pCQyxPQUFPLEVBQUcsV0FBVTtVQUNwQkMsSUFBSSxFQUFFUixHQUFHLENBQUNTLFFBQVE7VUFDbEJDLFFBQVEsRUFBRVYsR0FBRyxDQUFDVyxXQUFXO1VBQ3pCQyxNQUFNLEVBQUVaLEdBQUcsQ0FBQ1k7UUFDZCxDQUFDLENBQUM7TUFDSjtNQUNBWCxHQUFHLENBQUNZLEdBQUcsQ0FBQyxDQUFDO01BQ1Q7SUFDRixDQUFDLENBQUMsT0FBT0MsQ0FBVSxFQUFFO01BQ25CLElBQUlBLENBQUMsWUFBWUMsZ0JBQVMsRUFBRTtRQUMxQjNCLGNBQWMsQ0FBQzBCLENBQUMsQ0FBQztRQUNqQmIsR0FBRyxDQUFDSSxNQUFNLENBQUNTLENBQUMsQ0FBQ1QsTUFBTSxDQUFDLENBQUNDLElBQUksQ0FBQztVQUFFVSxLQUFLLEVBQUVGLENBQUMsQ0FBQ0csTUFBTSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUNKLEdBQUcsQ0FBQyxDQUFDO01BQ3hELENBQUMsTUFBTTtRQUNMdkIsV0FBVyxDQUFDd0IsQ0FBQyxDQUFDO1FBQ2QsSUFBSTtVQUNGYixHQUFHLENBQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO1lBQUVDLE9BQU8sRUFBRTtVQUF3QixDQUFDLENBQUMsQ0FBQ00sR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLE9BQU9DLENBQUMsRUFBRTtVQUNWO1FBQUE7TUFFSjtJQUNGO0VBQ0Y7QUFDRjtBQUFDSSxPQUFBLENBQUEzQixVQUFBLEdBQUFBLFVBQUE7QUFVTSxTQUFTNEIsSUFBSUEsQ0FBQ0MsSUFBd0IsRUFBRTtFQUM3QyxPQUFPLElBQUk3QixVQUFVLENBQUMsQ0FBQyxDQUFDNkIsSUFBSSxDQUFDQSxJQUFJLENBQUM7QUFDcEM7QUFBQyxJQUFBQyxRQUFBLEdBQUFILE9BQUEsQ0FBQS9CLE9BQUEsR0FFY2dDLElBQUkifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29udGV4dCIsInJlcXVpcmUiLCJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Vycm9yIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1Z0h0dHBFcnJvciIsImRlYnVnIiwiZGVidWdDYXVnaHQiLCJSZXN0ZnVsQXBpIiwiQ29udGV4dCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsInVuZGVmaW5lZCIsIm9wdHMiLCJfb3B0aW9ucyIsIl9hcGkiLCJoYW5kbGUiLCJyZXEiLCJyZXMiLCJzZW5kNDA0IiwiZm91bmQiLCJleGVjdXRlIiwic3RhdHVzIiwianNvbiIsIm1lc3NhZ2UiLCJwYXRoIiwiZnVsbFBhdGgiLCJhcGlfcGF0aCIsImZ1bGxBcGlQYXRoIiwibWV0aG9kIiwiZW5kIiwiZSIsIkh0dHBFcnJvciIsImVycm9yIiwidG9Kc29uIiwiZXhwb3J0cyIsInJlc3QiLCJpbml0IiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvcnN0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCwgQ29udGV4dEluaXRpYWxpemVyIH0gZnJvbSBcIi4vY29udGV4dFwiO1xuaW1wb3J0IGRlYnVnIGZyb20gXCJkZWJ1Z1wiO1xuaW1wb3J0IHsgSHR0cEVycm9yIH0gZnJvbSBcIi4vZXJyb3JcIjtcbmltcG9ydCB7IFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSBcIkByc3Rlci9jb21tb25cIjtcblxuY29uc3QgZGVidWdIdHRwRXJyb3IgPSBkZWJ1ZyhcInJzdGVyOmh0dHAtZXJyb3JcIik7XG5jb25zdCBkZWJ1Z0NhdWdodCA9IGRlYnVnKFwicnN0ZXI6Y2F1Z2h0LWVycm9yXCIpO1xuXG5leHBvcnQgY2xhc3MgUmVzdGZ1bEFwaSBleHRlbmRzIENvbnRleHQge1xuICBwcml2YXRlIF9vcHRpb25zOiBSZXN0ZnVsQXBpT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogUmVzdGZ1bEFwaU9wdGlvbnNJbml0KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBzdXBlcih1bmRlZmluZWQgYXMgYW55KTtcblxuICAgIGNvbnN0IG9wdHM6IFJlc3RmdWxBcGlPcHRpb25zID0ge1xuICAgICAgZGVidWc6IG9wdGlvbnM/LmRlYnVnID8/IGZhbHNlLFxuICAgIH07XG5cbiAgICB0aGlzLl9vcHRpb25zID0gb3B0cztcblxuICAgIHRoaXMuX2FwaSA9IHRoaXM7XG4gIH1cblxuICBhc3luYyBoYW5kbGUoXG4gICAgcmVxOiBSZXF1ZXN0LFxuICAgIHJlczogUmVzcG9uc2UsXG4gICAgeyBzZW5kNDA0ID0gdHJ1ZSB9OiB7IHNlbmQ0MDQ/OiBib29sZWFuIH0gPSB7fVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBzZW5kNDA0ID0gc2VuZDQwNCA/PyB0cnVlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZvdW5kID0gYXdhaXQgdGhpcy5leGVjdXRlKHJlcSwgcmVzKTtcbiAgICAgIGlmICghZm91bmQgJiYgc2VuZDQwNCkge1xuICAgICAgICBhd2FpdCByZXMuc3RhdHVzKDQwNCkuanNvbih7XG4gICAgICAgICAgbWVzc2FnZTogYE5vdCBGb3VuZGAsXG4gICAgICAgICAgcGF0aDogcmVxLmZ1bGxQYXRoLFxuICAgICAgICAgIGFwaV9wYXRoOiByZXEuZnVsbEFwaVBhdGgsXG4gICAgICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJlcy5lbmQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEh0dHBFcnJvcikge1xuICAgICAgICBkZWJ1Z0h0dHBFcnJvcihlKTtcbiAgICAgICAgcmVzLnN0YXR1cyhlLnN0YXR1cykuanNvbih7IGVycm9yOiBlLnRvSnNvbigpIH0pLmVuZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVidWdDYXVnaHQoZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmVzLnN0YXR1cyg1MDApLmpzb24oeyBtZXNzYWdlOiBcIkludGVybmFsIHNlcnZlciBlcnJvclwiIH0pLmVuZCgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLyogZW1wdHkgKi9cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RmdWxBcGlPcHRpb25zIHtcbiAgZGVidWc6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGZ1bEFwaU9wdGlvbnNJbml0IHtcbiAgZGVidWc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdChpbml0OiBDb250ZXh0SW5pdGlhbGl6ZXIpIHtcbiAgcmV0dXJuIG5ldyBSZXN0ZnVsQXBpKCkuaW5pdChpbml0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgcmVzdDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUFvQyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUdwQyxNQUFNRyxjQUFjLEdBQUcsSUFBQUMsY0FBSyxFQUFDLGtCQUFrQixDQUFDO0FBQ2hELE1BQU1DLFdBQVcsR0FBRyxJQUFBRCxjQUFLLEVBQUMsb0JBQW9CLENBQUM7QUFFeEMsTUFBTUUsVUFBVSxTQUFTQyxnQkFBTyxDQUFDO0VBR3RDQyxXQUFXQSxDQUFDQyxPQUErQixFQUFFO0lBQzNDO0lBQ0EsS0FBSyxDQUFDQyxTQUFnQixDQUFDO0lBRXZCLE1BQU1DLElBQXVCLEdBQUc7TUFDOUJQLEtBQUssRUFBRUssT0FBTyxFQUFFTCxLQUFLLElBQUk7SUFDM0IsQ0FBQztJQUVELElBQUksQ0FBQ1EsUUFBUSxHQUFHRCxJQUFJO0lBRXBCLElBQUksQ0FBQ0UsSUFBSSxHQUFHLElBQUk7RUFDbEI7RUFFQSxNQUFNQyxNQUFNQSxDQUNWQyxHQUFZLEVBQ1pDLEdBQWEsRUFDYjtJQUFFQyxPQUFPLEdBQUc7RUFBNEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMvQjtJQUNmQSxPQUFPLEdBQUdBLE9BQU8sSUFBSSxJQUFJO0lBRXpCLElBQUk7TUFDRixNQUFNQyxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUNDLE9BQU8sQ0FBQ0osR0FBRyxFQUFFQyxHQUFHLENBQUM7TUFDMUMsSUFBSSxDQUFDRSxLQUFLLElBQUlELE9BQU8sRUFBRTtRQUNyQixNQUFNRCxHQUFHLENBQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO1VBQ3pCQyxPQUFPLEVBQUcsV0FBVTtVQUNwQkMsSUFBSSxFQUFFUixHQUFHLENBQUNTLFFBQVE7VUFDbEJDLFFBQVEsRUFBRVYsR0FBRyxDQUFDVyxXQUFXO1VBQ3pCQyxNQUFNLEVBQUVaLEdBQUcsQ0FBQ1k7UUFDZCxDQUFDLENBQUM7TUFDSjtNQUNBWCxHQUFHLENBQUNZLEdBQUcsQ0FBQyxDQUFDO01BQ1Q7SUFDRixDQUFDLENBQUMsT0FBT0MsQ0FBVSxFQUFFO01BQ25CLElBQUlBLENBQUMsWUFBWUMsZ0JBQVMsRUFBRTtRQUMxQjNCLGNBQWMsQ0FBQzBCLENBQUMsQ0FBQztRQUNqQmIsR0FBRyxDQUFDSSxNQUFNLENBQUNTLENBQUMsQ0FBQ1QsTUFBTSxDQUFDLENBQUNDLElBQUksQ0FBQztVQUFFVSxLQUFLLEVBQUVGLENBQUMsQ0FBQ0csTUFBTSxDQUFDO1FBQUUsQ0FBQyxDQUFDLENBQUNKLEdBQUcsQ0FBQyxDQUFDO01BQ3hELENBQUMsTUFBTTtRQUNMdkIsV0FBVyxDQUFDd0IsQ0FBQyxDQUFDO1FBQ2QsSUFBSTtVQUNGYixHQUFHLENBQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDO1lBQUVDLE9BQU8sRUFBRTtVQUF3QixDQUFDLENBQUMsQ0FBQ00sR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLE9BQU9DLENBQUMsRUFBRTtVQUNWO1FBQUE7TUFFSjtJQUNGO0VBQ0Y7QUFDRjtBQUFDSSxPQUFBLENBQUEzQixVQUFBLEdBQUFBLFVBQUE7QUFVTSxTQUFTNEIsSUFBSUEsQ0FBQ0MsSUFBd0IsRUFBRTtFQUM3QyxPQUFPLElBQUk3QixVQUFVLENBQUMsQ0FBQyxDQUFDNkIsSUFBSSxDQUFDQSxJQUFJLENBQUM7QUFDcEM7QUFBQyxJQUFBQyxRQUFBLEdBQUFILE9BQUEsQ0FBQS9CLE9BQUEsR0FFY2dDLElBQUkifQ==
{
"name": "@rster/basic",
"version": "0.1.6",
"version": "0.1.7",
"description": "RSTER is a toolset for REST Api creation",

@@ -10,18 +10,19 @@ "main": "lib/index.js",

"dependencies": {
"@rster/common": "^0.1.3",
"@rster/types": "^0.1.8",
"@rster/util": "^0.1.1",
"@rster/common": "^0.1.4",
"@rster/types": "^0.1.9",
"@rster/util": "^0.1.2",
"debug": "^4.3.4"
},
"devDependencies": {
"@types/debug": "^4.1.8"
"@types/debug": "^4.1.8",
"typedoc": "^0.25.1"
},
"scripts": {
"build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline",
"build:types": "tsc --emitDeclarationOnly",
"build": "npm run build:types && npm run build:js",
"test": "jest --config=jest.config.js",
"type-check:watch": "npm run type-check --watch",
"type-check": "tsc --noEmit",
"type-check:watch": "npm run type-check --watch",
"build": "npm run build:types && npm run build:js",
"build:types": "tsc --emitDeclarationOnly",
"build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline",
"upgrade": "npm install @rster/common@latest @rster/types@latest @rster/util@latest"
"typedoc": "typedoc"
},

@@ -28,0 +29,0 @@ "repository": {

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc