eda.dragdropway.js 1.3 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. /******/ (function(modules) { // webpackBootstrap
  2. /******/ // The module cache
  3. /******/ var installedModules = {};
  4. /******/ // The require function
  5. /******/ function __webpack_require__(moduleId) {
  6. /******/ // Check if module is in cache
  7. /******/ if(installedModules[moduleId])
  8. /******/ return installedModules[moduleId].exports;
  9. /******/ // Create a new module (and put it into the cache)
  10. /******/ var module = installedModules[moduleId] = {
  11. /******/ exports: {},
  12. /******/ id: moduleId,
  13. /******/ loaded: false
  14. /******/ };
  15. /******/ // Execute the module function
  16. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  17. /******/ // Flag the module as loaded
  18. /******/ module.loaded = true;
  19. /******/ // Return the exports of the module
  20. /******/ return module.exports;
  21. /******/ }
  22. /******/ // expose the modules object (__webpack_modules__)
  23. /******/ __webpack_require__.m = modules;
  24. /******/ // expose the module cache
  25. /******/ __webpack_require__.c = installedModules;
  26. /******/ // __webpack_public_path__
  27. /******/ __webpack_require__.p = "http://localhost:8080/";
  28. /******/ // Load entry module and return exports
  29. /******/ return __webpack_require__(0);
  30. /******/ })
  31. /************************************************************************/
  32. /******/ ([
  33. /* 0 */
  34. /***/ function(module, exports, __webpack_require__) {
  35. eval("'use strict';\n\n__webpack_require__(1);\n\n__webpack_require__(6);\n\n__webpack_require__(10);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2luZGV4LmpzPzQ1NmMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFDQSIsImZpbGUiOiIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuL3ZlbmRvcnMnO1xuaW1wb3J0ICcuL3N0eWxlL2RyYWdfYW5kX2Ryb3Auc2Nzcyc7XG5pbXBvcnQgJy4vbWFpbic7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  36. /***/ },
  37. /* 1 */
  38. /***/ function(module, exports, __webpack_require__) {
  39. eval("'use strict';\n\n__webpack_require__(2);\n\n__webpack_require__(3);\n\n__webpack_require__(5);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L3ZlbmRvcnMuanM/YjcxMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBIiwiZmlsZSI6IjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ2FwaS1jaGVjayc7IC8vIE5PVEU6IGFsd2F5cyBpbXBvcnRlZCBiZWZvcmUgYW5ndWxhci1mb3JtbHkhXG5pbXBvcnQgJ2FuZ3VsYXItZm9ybWx5JztcbmltcG9ydCAnYW5ndWxhci1mb3JtbHktdGVtcGxhdGVzLWJvb3RzdHJhcCc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L3ZlbmRvcnMuanMiXSwic291cmNlUm9vdCI6IiJ9");
  40. /***/ },
  41. /* 2 */
  42. /***/ function(module, exports, __webpack_require__) {
  43. eval("//! api-check version 7.5.5 built with ♥ by Kent C. Dodds <kent@doddsfamily.us> (http://kent.doddsfamily.us) (ó ì_í)=óò=(ì_í ò)\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"apiCheck\"] = factory();\n\telse\n\t\troot[\"apiCheck\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n\tvar _apiCheck = __webpack_require__(1);\n\n\tvar _apiCheck2 = _interopRequireDefault(_apiCheck);\n\n\texports['default'] = _apiCheck2['default'];\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar stringify = __webpack_require__(2);\n\tvar apiCheckUtil = __webpack_require__(3);\n\tvar each = apiCheckUtil.each;\n\tvar isError = apiCheckUtil.isError;\n\tvar t = apiCheckUtil.t;\n\tvar arrayify = apiCheckUtil.arrayify;\n\tvar getCheckerDisplay = apiCheckUtil.getCheckerDisplay;\n\tvar typeOf = apiCheckUtil.typeOf;\n\tvar getError = apiCheckUtil.getError;\n\n\tvar checkers = __webpack_require__(4);\n\tvar apiCheckApis = getApiCheckApis();\n\n\tmodule.exports = getApiCheckInstance;\n\tmodule.exports.VERSION = (\"7.5.5\");\n\tmodule.exports.utils = apiCheckUtil;\n\tmodule.exports.globalConfig = {\n\t verbose: false,\n\t disabled: false\n\t};\n\n\tvar apiCheckApiCheck = getApiCheckInstance({\n\t output: { prefix: 'apiCheck' }\n\t});\n\tmodule.exports.internalChecker = apiCheckApiCheck;\n\n\teach(checkers, function (checker, name) {\n\t return module.exports[name] = checker;\n\t});\n\n\tfunction getApiCheckInstance() {\n\t var config = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var extraCheckers = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n\t /* eslint complexity:[2, 6] */\n\t if (apiCheckApiCheck && arguments.length) {\n\t apiCheckApiCheck['throw'](apiCheckApis.getApiCheckInstanceCheckers, arguments, {\n\t prefix: 'creating an apiCheck instance'\n\t });\n\t }\n\n\t var additionalProperties = {\n\t 'throw': getApiCheck(true),\n\t warn: getApiCheck(false),\n\t getErrorMessage: getErrorMessage,\n\t handleErrorMessage: handleErrorMessage,\n\t config: {\n\t output: config.output || {\n\t prefix: '',\n\t suffix: '',\n\t docsBaseUrl: ''\n\t },\n\t verbose: config.verbose || false,\n\t disabled: config.disabled || false\n\t },\n\t utils: apiCheckUtil\n\t };\n\n\t each(additionalProperties, function (wrapper, name) {\n\t return apiCheck[name] = wrapper;\n\t });\n\n\t var disabled = apiCheck.disabled || module.exports.globalConfig.disabled;\n\t each(checkers.getCheckers(disabled), function (checker, name) {\n\t return apiCheck[name] = checker;\n\t });\n\t each(extraCheckers, function (checker, name) {\n\t return apiCheck[name] = checker;\n\t });\n\n\t return apiCheck;\n\n\t /**\n\t * This is the instance function. Other things are attached to this see additional properties above.\n\t * @param {Array} api - the checkers to check with\n\t * @param {Array} args - the args to check\n\t * @param {Object} output - output options\n\t * @returns {Object} - if this has a failed = true property, then it failed\n\t */\n\t function apiCheck(api, args, output) {\n\t /* eslint complexity:[2, 8] */\n\t if (apiCheck.config.disabled || module.exports.globalConfig.disabled) {\n\t return {\n\t apiTypes: {}, argTypes: {},\n\t passed: true, message: '',\n\t failed: false\n\t }; // empty version of what is normally returned\n\t }\n\t checkApiCheckApi(arguments);\n\t if (!Array.isArray(api)) {\n\t api = [api];\n\t args = [args];\n\t } else {\n\t // turn arguments into an array\n\t args = Array.prototype.slice.call(args);\n\t }\n\t var messages = checkEnoughArgs(api, args);\n\t if (!messages.length) {\n\t // this is where we actually go perform the checks.\n\t messages = checkApiWithArgs(api, args);\n\t }\n\n\t var returnObject = getTypes(api, args);\n\t returnObject.args = args;\n\t if (messages.length) {\n\t returnObject.message = apiCheck.getErrorMessage(api, args, messages, output);\n\t returnObject.failed = true;\n\t returnObject.passed = false;\n\t } else {\n\t returnObject.message = '';\n\t returnObject.failed = false;\n\t returnObject.passed = true;\n\t }\n\t return returnObject;\n\t }\n\n\t /**\n\t * checkApiCheckApi, should be read like: check apiCheck api. As in, check the api for apiCheck :-)\n\t * @param {Array} checkApiArgs - args provided to apiCheck function\n\t */\n\t function checkApiCheckApi(checkApiArgs) {\n\t var api = checkApiArgs[0];\n\t var args = checkApiArgs[1];\n\t var isArrayOrArgs = Array.isArray(args) || args && typeof args === 'object' && typeof args.length === 'number';\n\n\t if (Array.isArray(api) && !isArrayOrArgs) {\n\t throw new Error(getErrorMessage(api, [args], ['If an array is provided for the api, an array must be provided for the args as well.'], { prefix: 'apiCheck' }));\n\t }\n\t // dog fooding here\n\t var errors = checkApiWithArgs(apiCheckApis.checkApiCheckApi, checkApiArgs);\n\t if (errors.length) {\n\t var message = apiCheck.getErrorMessage(apiCheckApis.checkApiCheckApi, checkApiArgs, errors, {\n\t prefix: 'apiCheck'\n\t });\n\t apiCheck.handleErrorMessage(message, true);\n\t }\n\t }\n\n\t function getApiCheck(shouldThrow) {\n\t return function apiCheckWrapper(api, args, output) {\n\t var result = apiCheck(api, args, output);\n\t apiCheck.handleErrorMessage(result.message, shouldThrow);\n\t return result; // wont get here if an error is thrown\n\t };\n\t }\n\n\t function handleErrorMessage(message, shouldThrow) {\n\t if (shouldThrow && message) {\n\t throw new Error(message);\n\t } else if (message) {\n\t /* eslint no-console:0 */\n\t console.warn(message);\n\t }\n\t }\n\n\t function getErrorMessage(api, args) {\n\t var messages = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2];\n\t var output = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n\t var gOut = apiCheck.config.output || {};\n\t var prefix = getPrefix();\n\t var suffix = getSuffix();\n\t var url = getUrl();\n\t var message = 'apiCheck failed! ' + messages.join(', ');\n\t var passedAndShouldHavePassed = '\\n\\n' + buildMessageFromApiAndArgs(api, args);\n\t return (prefix + ' ' + message + ' ' + suffix + ' ' + (url || '') + passedAndShouldHavePassed).trim();\n\n\t function getPrefix() {\n\t var p = output.onlyPrefix;\n\t if (!p) {\n\t p = ((gOut.prefix || '') + ' ' + (output.prefix || '')).trim();\n\t }\n\t return p;\n\t }\n\n\t function getSuffix() {\n\t var s = output.onlySuffix;\n\t if (!s) {\n\t s = ((output.suffix || '') + ' ' + (gOut.suffix || '')).trim();\n\t }\n\t return s;\n\t }\n\n\t function getUrl() {\n\t var u = output.url;\n\t if (!u) {\n\t u = gOut.docsBaseUrl && output.urlSuffix && ('' + gOut.docsBaseUrl + output.urlSuffix).trim();\n\t }\n\t return u;\n\t }\n\t }\n\n\t function buildMessageFromApiAndArgs(api, args) {\n\t var _getTypes = getTypes(api, args);\n\n\t var apiTypes = _getTypes.apiTypes;\n\t var argTypes = _getTypes.argTypes;\n\n\t var copy = Array.prototype.slice.call(args || []);\n\t var replacedItems = [];\n\t replaceFunctionWithName(copy);\n\t var passedArgs = getObjectString(copy);\n\t argTypes = getObjectString(argTypes);\n\t apiTypes = getObjectString(apiTypes);\n\n\t return generateMessage();\n\n\t // functions\n\n\t function replaceFunctionWithName(obj) {\n\t each(obj, function (val, name) {\n\t /* eslint complexity:[2, 6] */\n\t if (replacedItems.indexOf(val) === -1) {\n\t // avoid recursive problems\n\t replacedItems.push(val);\n\t if (typeof val === 'object') {\n\t replaceFunctionWithName(obj);\n\t } else if (typeof val === 'function') {\n\t obj[name] = val.displayName || val.name || 'anonymous function';\n\t }\n\t }\n\t });\n\t }\n\n\t function getObjectString(types) {\n\t if (!types || !types.length) {\n\t return 'nothing';\n\t } else if (types && types.length === 1) {\n\t types = types[0];\n\t }\n\t return stringify(types, null, 2);\n\t }\n\n\t function generateMessage() {\n\t var n = '\\n';\n\t var useS = true;\n\t if (args && args.length === 1) {\n\t if (typeof args[0] === 'object' && args[0] !== null) {\n\t useS = !!Object.keys(args[0]).length;\n\t } else {\n\t useS = false;\n\t }\n\t }\n\t var types = 'type' + (useS ? 's' : '');\n\t var newLine = n + n;\n\t return 'You passed:' + n + passedArgs + newLine + ('With the ' + types + ':' + n + argTypes + newLine) + ('The API calls for:' + n + apiTypes);\n\t }\n\t }\n\n\t function getTypes(api, args) {\n\t api = arrayify(api);\n\t args = arrayify(args);\n\t var apiTypes = api.map(function (checker, index) {\n\t var specified = module.exports.globalConfig.hasOwnProperty('verbose');\n\t return getCheckerDisplay(checker, {\n\t terse: specified ? !module.exports.globalConfig.verbose : !apiCheck.config.verbose,\n\t obj: args[index],\n\t addHelpers: true\n\t });\n\t });\n\t var argTypes = args.map(function (arg) {\n\t return getArgDisplay(arg, []);\n\t });\n\t return { argTypes: argTypes, apiTypes: apiTypes };\n\t }\n\t}\n\n\t// STATELESS FUNCTIONS\n\n\t/**\n\t * This is where the magic happens for actually checking the arguments with the api.\n\t * @param {Array} api - checkers\n\t * @param {Array} args - and arguments object\n\t * @returns {Array} - the error messages\n\t */\n\tfunction checkApiWithArgs(api, args) {\n\t /* eslint complexity:[2, 7] */\n\t var messages = [];\n\t var failed = false;\n\t var checkerIndex = 0;\n\t var argIndex = 0;\n\t var arg = undefined,\n\t checker = undefined,\n\t res = undefined,\n\t lastChecker = undefined,\n\t argName = undefined,\n\t argFailed = undefined,\n\t skipPreviousChecker = undefined;\n\t /* jshint -W084 */\n\t while ((checker = api[checkerIndex++]) && argIndex < args.length) {\n\t arg = args[argIndex++];\n\t argName = 'Argument ' + argIndex + (checker.isOptional ? ' (optional)' : '');\n\t res = checker(arg, 'value', argName);\n\t argFailed = isError(res);\n\t lastChecker = checkerIndex >= api.length;\n\t skipPreviousChecker = checkerIndex > 1 && api[checkerIndex - 1].isOptional;\n\t if (argFailed && lastChecker || argFailed && !lastChecker && !checker.isOptional && !skipPreviousChecker) {\n\t failed = true;\n\t messages.push(getCheckerErrorMessage(res, checker, arg));\n\t } else if (argFailed && checker.isOptional) {\n\t argIndex--;\n\t } else {\n\t messages.push(t(argName) + ' passed');\n\t }\n\t }\n\t return failed ? messages : [];\n\t}\n\n\tcheckerTypeType.type = 'function with __apiCheckData property and `${function.type}` property';\n\tfunction checkerTypeType(checkerType, name, location) {\n\t var apiCheckDataChecker = checkers.shape({\n\t type: checkers.string,\n\t optional: checkers.bool\n\t });\n\t var asFunc = checkers.func.withProperties({ __apiCheckData: apiCheckDataChecker });\n\t var asShape = checkers.shape({ __apiCheckData: apiCheckDataChecker });\n\t var wrongShape = checkers.oneOfType([asFunc, asShape])(checkerType, name, location);\n\t if (isError(wrongShape)) {\n\t return wrongShape;\n\t }\n\t if (typeof checkerType !== 'function' && !checkerType.hasOwnProperty(checkerType.__apiCheckData.type)) {\n\t return getError(name, location, checkerTypeType.type);\n\t }\n\t}\n\n\tfunction getCheckerErrorMessage(res, checker, val) {\n\t var checkerHelp = getCheckerHelp(checker, val);\n\t checkerHelp = checkerHelp ? ' - ' + checkerHelp : '';\n\t return res.message + checkerHelp;\n\t}\n\n\tfunction getCheckerHelp(_ref, val) {\n\t var help = _ref.help;\n\n\t if (!help) {\n\t return '';\n\t }\n\t if (typeof help === 'function') {\n\t help = help(val);\n\t }\n\t return help;\n\t}\n\n\tfunction checkEnoughArgs(api, args) {\n\t var requiredArgs = api.filter(function (a) {\n\t return !a.isOptional;\n\t });\n\t if (args.length < requiredArgs.length) {\n\t return ['Not enough arguments specified. Requires `' + requiredArgs.length + '`, you passed `' + args.length + '`'];\n\t } else {\n\t return [];\n\t }\n\t}\n\n\tfunction getArgDisplay(arg, gottenArgs) {\n\t /* eslint complexity:[2, 7] */\n\t var cName = arg && arg.constructor && arg.constructor.name;\n\t var type = typeOf(arg);\n\t if (type === 'function') {\n\t if (hasKeys()) {\n\t var properties = stringify(getDisplayIfNotGotten());\n\t return cName + ' (with properties: ' + properties + ')';\n\t }\n\t return cName;\n\t }\n\n\t if (arg === null) {\n\t return 'null';\n\t }\n\n\t if (type !== 'array' && type !== 'object') {\n\t return type;\n\t }\n\n\t if (hasKeys()) {\n\t return getDisplayIfNotGotten();\n\t }\n\n\t return cName;\n\n\t // utility functions\n\t function hasKeys() {\n\t return arg && Object.keys(arg).length;\n\t }\n\n\t function getDisplayIfNotGotten() {\n\t if (gottenArgs.indexOf(arg) !== -1) {\n\t return '[Circular]';\n\t }\n\t gottenArgs.push(arg);\n\t return getDisplay(arg, gottenArgs);\n\t }\n\t}\n\n\tfunction getDisplay(obj, gottenArgs) {\n\t var argDisplay = {};\n\t each(obj, function (v, k) {\n\t return argDisplay[k] = getArgDisplay(v, gottenArgs);\n\t });\n\t return argDisplay;\n\t}\n\n\tfunction getApiCheckApis() {\n\t var os = checkers.string.optional;\n\n\t var checkerFnChecker = checkers.func.withProperties({\n\t type: checkers.oneOfType([checkers.string, checkerTypeType]).optional,\n\t displayName: checkers.string.optional,\n\t shortType: checkers.string.optional,\n\t notOptional: checkers.bool.optional,\n\t notRequired: checkers.bool.optional\n\t });\n\n\t var getApiCheckInstanceCheckers = [checkers.shape({\n\t output: checkers.shape({\n\t prefix: checkers.string.optional,\n\t suffix: checkers.string.optional,\n\t docsBaseUrl: checkers.string.optional\n\t }).strict.optional,\n\t verbose: checkers.bool.optional,\n\t disabled: checkers.bool.optional\n\t }).strict.optional, checkers.objectOf(checkerFnChecker).optional];\n\n\t var checkApiCheckApi = [checkers.typeOrArrayOf(checkerFnChecker), checkers.any.optional, checkers.shape({\n\t prefix: os, suffix: os, urlSuffix: os, // appended case\n\t onlyPrefix: os, onlySuffix: os, url: os // override case\n\t }).strict.optional];\n\n\t return {\n\t checkerFnChecker: checkerFnChecker,\n\t getApiCheckInstanceCheckers: getApiCheckInstanceCheckers,\n\t checkApiCheckApi: checkApiCheckApi\n\t };\n\t}\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\tmodule.exports = stringify;\n\n\tfunction getSerialize (fn, decycle) {\n\t var seen = [], keys = [];\n\t decycle = decycle || function(key, value) {\n\t return '[Circular ' + getPath(value, seen, keys) + ']'\n\t };\n\t return function(key, value) {\n\t var ret = value;\n\t if (typeof value === 'object' && value) {\n\t if (seen.indexOf(value) !== -1)\n\t ret = decycle(key, value);\n\t else {\n\t seen.push(value);\n\t keys.push(key);\n\t }\n\t }\n\t if (fn) ret = fn(key, ret);\n\t return ret;\n\t }\n\t}\n\n\tfunction getPath (value, seen, keys) {\n\t var index = seen.indexOf(value);\n\t var path = [ keys[index] ];\n\t for (index--; index >= 0; index--) {\n\t if (seen[index][ path[0] ] === value) {\n\t value = seen[index];\n\t path.unshift(keys[index]);\n\t }\n\t }\n\t return '~' + path.join('.');\n\t}\n\n\tfunction stringify(obj, fn, spaces, decycle) {\n\t return JSON.stringify(obj, getSerialize(fn, decycle), spaces);\n\t}\n\n\tstringify.getSerialize = getSerialize;\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\tvar stringify = __webpack_require__(2);\n\tvar checkerHelpers = {\n\t addOptional: addOptional, getRequiredVersion: getRequiredVersion, setupChecker: setupChecker, addNullable: addNullable\n\t};\n\n\tmodule.exports = {\n\t each: each, copy: copy, typeOf: typeOf, arrayify: arrayify, getCheckerDisplay: getCheckerDisplay,\n\t isError: isError, list: list, getError: getError, nAtL: nAtL, t: t, undef: undef, checkerHelpers: checkerHelpers,\n\t noop: noop\n\t};\n\n\tfunction copy(obj) {\n\t var type = typeOf(obj);\n\t var daCopy = undefined;\n\t if (type === 'array') {\n\t daCopy = [];\n\t } else if (type === 'object') {\n\t daCopy = {};\n\t } else {\n\t return obj;\n\t }\n\t each(obj, function (val, key) {\n\t daCopy[key] = val; // cannot single-line this because we don't want to abort the each\n\t });\n\t return daCopy;\n\t}\n\n\tfunction typeOf(obj) {\n\t if (Array.isArray(obj)) {\n\t return 'array';\n\t } else if (obj instanceof RegExp) {\n\t return 'object';\n\t } else {\n\t return typeof obj;\n\t }\n\t}\n\n\tfunction getCheckerDisplay(checker, options) {\n\t /* eslint complexity:[2, 7] */\n\t var display = undefined;\n\t var short = options && options.short;\n\t if (short && checker.shortType) {\n\t display = checker.shortType;\n\t } else if (!short && typeof checker.type === 'object' || checker.type === 'function') {\n\t display = getCheckerType(checker, options);\n\t } else {\n\t display = getCheckerType(checker, options) || checker.displayName || checker.name;\n\t }\n\t return display;\n\t}\n\n\tfunction getCheckerType(_ref, options) {\n\t var type = _ref.type;\n\n\t if (typeof type === 'function') {\n\t var __apiCheckData = type.__apiCheckData;\n\t var typeTypes = type(options);\n\t type = _defineProperty({\n\t __apiCheckData: __apiCheckData\n\t }, __apiCheckData.type, typeTypes);\n\t }\n\t return type;\n\t}\n\n\tfunction arrayify(obj) {\n\t if (!obj) {\n\t return [];\n\t } else if (Array.isArray(obj)) {\n\t return obj;\n\t } else {\n\t return [obj];\n\t }\n\t}\n\n\tfunction each(obj, iterator, context) {\n\t if (Array.isArray(obj)) {\n\t return eachArry(obj, iterator, context);\n\t } else {\n\t return eachObj(obj, iterator, context);\n\t }\n\t}\n\n\tfunction eachObj(obj, iterator, context) {\n\t var ret = undefined;\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t /* eslint prefer-const:0 */ // some weird eslint bug?\n\t for (var key in obj) {\n\t if (hasOwn.call(obj, key)) {\n\t ret = iterator.call(context, obj[key], key, obj);\n\t if (ret === false) {\n\t return ret;\n\t }\n\t }\n\t }\n\t return true;\n\t}\n\n\tfunction eachArry(obj, iterator, context) {\n\t var ret = undefined;\n\t var length = obj.length;\n\t for (var i = 0; i < length; i++) {\n\t ret = iterator.call(context, obj[i], i, obj);\n\t if (ret === false) {\n\t return ret;\n\t }\n\t }\n\t return true;\n\t}\n\n\tfunction isError(obj) {\n\t return obj instanceof Error;\n\t}\n\n\tfunction list(arry, join, finalJoin) {\n\t arry = arrayify(arry);\n\t var copy = arry.slice();\n\t var last = copy.pop();\n\t if (copy.length === 1) {\n\t join = ' ';\n\t }\n\t return copy.join(join) + ('' + (copy.length ? join + finalJoin : '') + last);\n\t}\n\n\tfunction getError(name, location, checkerType) {\n\t if (typeof checkerType === 'function') {\n\t checkerType = checkerType({ short: true });\n\t }\n\t var stringType = typeof checkerType !== 'object' ? checkerType : stringify(checkerType);\n\t return new Error(nAtL(name, location) + ' must be ' + t(stringType));\n\t}\n\n\tfunction nAtL(name, location) {\n\t var tName = t(name || 'value');\n\t var tLocation = !location ? '' : ' at ' + t(location);\n\t return '' + tName + tLocation;\n\t}\n\n\tfunction t(thing) {\n\t return '`' + thing + '`';\n\t}\n\n\tfunction undef(thing) {\n\t return typeof thing === 'undefined';\n\t}\n\n\t/**\n\t * This will set up the checker with all of the defaults that most checkers want like required by default and an\n\t * optional version\n\t *\n\t * @param {Function} checker - the checker to setup with properties\n\t * @param {Object} properties - properties to add to the checker\n\t * @param {boolean} disabled - when set to true, this will set the checker to a no-op function\n\t * @returns {Function} checker - the setup checker\n\t */\n\tfunction setupChecker(checker, properties, disabled) {\n\t /* eslint complexity:[2, 9] */\n\t if (disabled) {\n\t // swap out the checker for its own copy of noop\n\t checker = getNoop();\n\t checker.isNoop = true;\n\t }\n\n\t if (typeof checker.type === 'string') {\n\t checker.shortType = checker.type;\n\t }\n\n\t // assign all properties given\n\t each(properties, function (prop, name) {\n\t return checker[name] = prop;\n\t });\n\n\t if (!checker.displayName) {\n\t checker.displayName = 'apiCheck ' + t(checker.shortType || checker.type || checker.name) + ' type checker';\n\t }\n\n\t if (!checker.notRequired) {\n\t checker = getRequiredVersion(checker, disabled);\n\t }\n\n\t if (!checker.notNullable) {\n\t addNullable(checker, disabled);\n\t }\n\n\t if (!checker.notOptional) {\n\t addOptional(checker, disabled);\n\t }\n\n\t return checker;\n\t}\n\n\tfunction getRequiredVersion(checker, disabled) {\n\t var requiredChecker = disabled ? getNoop() : function requiredChecker(val, name, location, obj) {\n\t if (undef(val) && !checker.isOptional) {\n\t var tLocation = location ? ' in ' + t(location) : '';\n\t var type = getCheckerDisplay(checker, { short: true });\n\t var stringType = typeof type !== 'object' ? type : stringify(type);\n\t return new Error('Required ' + t(name) + ' not specified' + tLocation + '. Must be ' + t(stringType));\n\t } else {\n\t return checker(val, name, location, obj);\n\t }\n\t };\n\t copyProps(checker, requiredChecker);\n\t requiredChecker.originalChecker = checker;\n\t return requiredChecker;\n\t}\n\n\tfunction addOptional(checker, disabled) {\n\t var optionalCheck = disabled ? getNoop() : function optionalCheck(val, name, location, obj) {\n\t if (!undef(val)) {\n\t return checker(val, name, location, obj);\n\t }\n\t };\n\t // inherit all properties on the original checker\n\t copyProps(checker, optionalCheck);\n\n\t optionalCheck.isOptional = true;\n\t optionalCheck.displayName = checker.displayName + ' (optional)';\n\t optionalCheck.originalChecker = checker;\n\n\t // the magic line that allows you to add .optional to the end of the checkers\n\t checker.optional = optionalCheck;\n\n\t fixType(checker, checker.optional);\n\t}\n\n\tfunction addNullable(checker, disabled) {\n\t var nullableCheck = disabled ? getNoop() : function nullableCheck(val, name, location, obj) {\n\t if (val !== null) {\n\t return checker(val, name, location, obj);\n\t }\n\t };\n\t // inherit all properties on the original checker\n\t copyProps(checker, nullableCheck);\n\n\t nullableCheck.isNullable = true;\n\t nullableCheck.displayName = checker.displayName + ' (nullable)';\n\t nullableCheck.originalChecker = checker;\n\n\t // the magic line that allows you to add .nullable to the end of the checkers\n\t checker.nullable = nullableCheck;\n\n\t fixType(checker, checker.nullable);\n\t if (!checker.notOptional) {\n\t addOptional(checker.nullable, disabled);\n\t }\n\t}\n\n\tfunction fixType(checker, checkerCopy) {\n\t // fix type, because it's not a straight copy...\n\t // the reason is we need to specify type.__apiCheckData.optional as true for the terse/verbose option.\n\t // we also want to add \"(optional)\" to the types with a string\n\t if (typeof checkerCopy.type === 'object') {\n\t checkerCopy.type = copy(checkerCopy.type); // make our own copy of this\n\t } else if (typeof checkerCopy.type === 'function') {\n\t checkerCopy.type = function () {\n\t return checker.type.apply(checker, arguments);\n\t };\n\t } else {\n\t checkerCopy.type += ' (optional)';\n\t return;\n\t }\n\t checkerCopy.type.__apiCheckData = copy(checker.type.__apiCheckData) || {}; // and this\n\t checkerCopy.type.__apiCheckData.optional = true;\n\t}\n\n\t// UTILS\n\n\tfunction copyProps(src, dest) {\n\t each(Object.keys(src), function (key) {\n\t return dest[key] = src[key];\n\t });\n\t}\n\n\tfunction noop() {}\n\n\tfunction getNoop() {\n\t /* eslint no-shadow:0 */\n\t /* istanbul ignore next */\n\t return function noop() {};\n\t}\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar stringify = __webpack_require__(2);\n\n\tvar _require = __webpack_require__(3);\n\n\tvar typeOf = _require.typeOf;\n\tvar each = _require.each;\n\tvar copy = _require.copy;\n\tvar getCheckerDisplay = _require.getCheckerDisplay;\n\tvar isError = _require.isError;\n\tvar arrayify = _require.arrayify;\n\tvar list = _require.list;\n\tvar getError = _require.getError;\n\tvar nAtL = _require.nAtL;\n\tvar t = _require.t;\n\tvar checkerHelpers = _require.checkerHelpers;\n\tvar undef = _require.undef;\n\tvar setupChecker = checkerHelpers.setupChecker;\n\n\tvar checkers = module.exports = getCheckers();\n\tmodule.exports.getCheckers = getCheckers;\n\n\tfunction getCheckers(disabled) {\n\t return {\n\t array: typeOfCheckGetter('Array'),\n\t bool: typeOfCheckGetter('Boolean'),\n\t number: typeOfCheckGetter('Number'),\n\t string: typeOfCheckGetter('String'),\n\t func: funcCheckGetter(),\n\t object: objectCheckGetter(),\n\n\t emptyObject: emptyObjectCheckGetter(),\n\n\t instanceOf: instanceCheckGetter,\n\t oneOf: oneOfCheckGetter,\n\t oneOfType: oneOfTypeCheckGetter,\n\n\t arrayOf: arrayOfCheckGetter,\n\t objectOf: objectOfCheckGetter,\n\t typeOrArrayOf: typeOrArrayOfCheckGetter,\n\n\t range: rangeCheckGetter,\n\t lessThan: lessThanCheckGetter,\n\t greaterThan: greaterThanCheckGetter,\n\n\t shape: getShapeCheckGetter(),\n\t args: argumentsCheckerGetter(),\n\n\t any: anyCheckGetter(),\n\t 'null': nullCheckGetter()\n\n\t };\n\n\t function typeOfCheckGetter(type) {\n\t var lType = type.toLowerCase();\n\t return setupChecker(function typeOfCheckerDefinition(val, name, location) {\n\t if (typeOf(val) !== lType) {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\t }\n\n\t function funcCheckGetter() {\n\t var type = 'Function';\n\t var functionChecker = setupChecker(function functionCheckerDefinition(val, name, location) {\n\t if (typeOf(val) !== 'function') {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\n\t functionChecker.withProperties = function getWithPropertiesChecker(properties) {\n\t var apiError = checkers.objectOf(checkers.func)(properties, 'properties', 'apiCheck.func.withProperties');\n\t if (isError(apiError)) {\n\t throw apiError;\n\t }\n\t var shapeChecker = checkers.shape(properties, true);\n\t shapeChecker.type.__apiCheckData.type = 'func.withProperties';\n\n\t return setupChecker(function functionWithPropertiesChecker(val, name, location) {\n\t var notFunction = checkers.func(val, name, location);\n\t if (isError(notFunction)) {\n\t return notFunction;\n\t }\n\t return shapeChecker(val, name, location);\n\t }, { type: shapeChecker.type, shortType: 'func.withProperties' }, disabled);\n\t };\n\t return functionChecker;\n\t }\n\n\t function objectCheckGetter() {\n\t var type = 'Object';\n\t var nullType = 'Object (null ok)';\n\t var objectNullOkChecker = setupChecker(function objectNullOkCheckerDefinition(val, name, location) {\n\t if (typeOf(val) !== 'object') {\n\t return getError(name, location, nullType);\n\t }\n\t }, { type: nullType }, disabled);\n\n\t var objectChecker = setupChecker(function objectCheckerDefinition(val, name, location) {\n\t if (val === null || isError(objectNullOkChecker(val, name, location))) {\n\t return getError(name, location, objectChecker.type);\n\t }\n\t }, { type: type, nullOk: objectNullOkChecker }, disabled);\n\n\t return objectChecker;\n\t }\n\n\t function instanceCheckGetter(classToCheck) {\n\t return setupChecker(function instanceCheckerDefinition(val, name, location) {\n\t if (!(val instanceof classToCheck)) {\n\t return getError(name, location, classToCheck.name);\n\t }\n\t }, { type: classToCheck.name }, disabled);\n\t }\n\n\t function oneOfCheckGetter(enums) {\n\t var type = {\n\t __apiCheckData: { optional: false, type: 'enum' },\n\t 'enum': enums\n\t };\n\t var shortType = 'oneOf[' + enums.map(function (enm) {\n\t return stringify(enm);\n\t }).join(', ') + ']';\n\t return setupChecker(function oneOfCheckerDefinition(val, name, location) {\n\t if (!enums.some(function (enm) {\n\t return enm === val;\n\t })) {\n\t return getError(name, location, shortType);\n\t }\n\t }, { type: type, shortType: shortType }, disabled);\n\t }\n\n\t function oneOfTypeCheckGetter(typeCheckers) {\n\t var checkersDisplay = typeCheckers.map(function (checker) {\n\t return getCheckerDisplay(checker, { short: true });\n\t });\n\t var shortType = 'oneOfType[' + checkersDisplay.join(', ') + ']';\n\t function type(options) {\n\t if (options && options.short) {\n\t return shortType;\n\t }\n\t return typeCheckers.map(function (checker) {\n\t return getCheckerDisplay(checker, options);\n\t });\n\t }\n\t type.__apiCheckData = { optional: false, type: 'oneOfType' };\n\t return setupChecker(function oneOfTypeCheckerDefinition(val, name, location) {\n\t if (!typeCheckers.some(function (checker) {\n\t return !isError(checker(val, name, location));\n\t })) {\n\t return getError(name, location, shortType);\n\t }\n\t }, { type: type, shortType: shortType }, disabled);\n\t }\n\n\t function arrayOfCheckGetter(checker) {\n\t var shortCheckerDisplay = getCheckerDisplay(checker, { short: true });\n\t var shortType = 'arrayOf[' + shortCheckerDisplay + ']';\n\n\t function type(options) {\n\t if (options && options.short) {\n\t return shortType;\n\t }\n\t return getCheckerDisplay(checker, options);\n\t }\n\t type.__apiCheckData = { optional: false, type: 'arrayOf' };\n\n\t return setupChecker(function arrayOfCheckerDefinition(val, name, location) {\n\t if (isError(checkers.array(val)) || !val.every(function (item) {\n\t return !isError(checker(item));\n\t })) {\n\t return getError(name, location, shortType);\n\t }\n\t }, { type: type, shortType: shortType }, disabled);\n\t }\n\n\t function objectOfCheckGetter(checker) {\n\t var checkerDisplay = getCheckerDisplay(checker, { short: true });\n\t var shortType = 'objectOf[' + checkerDisplay + ']';\n\n\t function type(options) {\n\t if (options && options.short) {\n\t return shortType;\n\t }\n\t return getCheckerDisplay(checker, options);\n\t }\n\t type.__apiCheckData = { optional: false, type: 'objectOf' };\n\n\t return setupChecker(function objectOfCheckerDefinition(val, name, location) {\n\t var notObject = checkers.object(val, name, location);\n\t if (isError(notObject)) {\n\t return notObject;\n\t }\n\t var allTypesSuccess = each(val, function (item, key) {\n\t if (isError(checker(item, key, name))) {\n\t return false;\n\t }\n\t });\n\t if (!allTypesSuccess) {\n\t return getError(name, location, shortType);\n\t }\n\t }, { type: type, shortType: shortType }, disabled);\n\t }\n\n\t function typeOrArrayOfCheckGetter(checker) {\n\t var checkerDisplay = getCheckerDisplay(checker, { short: true });\n\t var shortType = 'typeOrArrayOf[' + checkerDisplay + ']';\n\n\t function type(options) {\n\t if (options && options.short) {\n\t return shortType;\n\t }\n\t return getCheckerDisplay(checker, options);\n\t }\n\n\t type.__apiCheckData = { optional: false, type: 'typeOrArrayOf' };\n\t return setupChecker(function typeOrArrayOfDefinition(val, name, location, obj) {\n\t if (isError(checkers.oneOfType([checker, checkers.arrayOf(checker)])(val, name, location, obj))) {\n\t return getError(name, location, shortType);\n\t }\n\t }, { type: type, shortType: shortType }, disabled);\n\t }\n\n\t function getShapeCheckGetter() {\n\t function shapeCheckGetter(shape, nonObject) {\n\t var shapeTypes = {};\n\t each(shape, function (checker, prop) {\n\t shapeTypes[prop] = getCheckerDisplay(checker);\n\t });\n\t function type() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n\t var ret = {};\n\t var terse = options.terse;\n\t var obj = options.obj;\n\t var addHelpers = options.addHelpers;\n\n\t var parentRequired = options.required;\n\t each(shape, function (checker, prop) {\n\t /* eslint complexity:[2, 6] */\n\t var specified = obj && obj.hasOwnProperty(prop);\n\t var required = undef(parentRequired) ? !checker.isOptional : parentRequired;\n\t if (!terse || (specified || !checker.isOptional)) {\n\t ret[prop] = getCheckerDisplay(checker, { terse: terse, obj: obj && obj[prop], required: required, addHelpers: addHelpers });\n\t }\n\t if (addHelpers) {\n\t modifyTypeDisplayToHelpOut(ret, prop, specified, checker, required);\n\t }\n\t });\n\t return ret;\n\n\t function modifyTypeDisplayToHelpOut(theRet, prop, specified, checker, required) {\n\t if (!specified && required && !checker.isOptional) {\n\t var item = 'ITEM';\n\t if (checker.type && checker.type.__apiCheckData) {\n\t item = checker.type.__apiCheckData.type.toUpperCase();\n\t }\n\t addHelper('missing', 'MISSING THIS ' + item, ' <-- YOU ARE MISSING THIS');\n\t } else if (specified) {\n\t var error = checker(obj[prop], prop, null, obj);\n\t if (isError(error)) {\n\t addHelper('error', 'THIS IS THE PROBLEM: ' + error.message, ' <-- THIS IS THE PROBLEM: ' + error.message);\n\t }\n\t }\n\n\t function addHelper(property, objectMessage, stringMessage) {\n\t if (typeof theRet[prop] === 'string') {\n\t theRet[prop] += stringMessage;\n\t } else {\n\t theRet[prop].__apiCheckData[property] = objectMessage;\n\t }\n\t }\n\t }\n\t }\n\n\t type.__apiCheckData = { strict: false, optional: false, type: 'shape' };\n\t var shapeChecker = setupChecker(function shapeCheckerDefinition(val, name, location) {\n\t /* eslint complexity:[2, 6] */\n\t var isObject = !nonObject && checkers.object(val, name, location);\n\t if (isError(isObject)) {\n\t return isObject;\n\t }\n\t var shapePropError = undefined;\n\t location = location ? location + (name ? '/' : '') : '';\n\t name = name || '';\n\t each(shape, function (checker, prop) {\n\t if (val.hasOwnProperty(prop) || !checker.isOptional) {\n\t shapePropError = checker(val[prop], prop, '' + location + name, val);\n\t return !isError(shapePropError);\n\t }\n\t });\n\t if (isError(shapePropError)) {\n\t return shapePropError;\n\t }\n\t }, { type: type, shortType: 'shape' }, disabled);\n\n\t function strictType() {\n\t return type.apply(undefined, arguments);\n\t }\n\n\t strictType.__apiCheckData = copy(shapeChecker.type.__apiCheckData);\n\t strictType.__apiCheckData.strict = true;\n\t shapeChecker.strict = setupChecker(function strictShapeCheckerDefinition(val, name, location) {\n\t var shapeError = shapeChecker(val, name, location);\n\t if (isError(shapeError)) {\n\t return shapeError;\n\t }\n\t var allowedProperties = Object.keys(shape);\n\t var extraProps = Object.keys(val).filter(function (prop) {\n\t return allowedProperties.indexOf(prop) === -1;\n\t });\n\t if (extraProps.length) {\n\t return new Error(nAtL(name, location) + ' cannot have extra properties: ' + t(extraProps.join('`, `')) + '.' + ('It is limited to ' + t(allowedProperties.join('`, `'))));\n\t }\n\t }, { type: strictType, shortType: 'strict shape' }, disabled);\n\n\t return shapeChecker;\n\t }\n\n\t shapeCheckGetter.ifNot = function ifNot(otherProps, propChecker) {\n\t if (!Array.isArray(otherProps)) {\n\t otherProps = [otherProps];\n\t }\n\t var description = undefined;\n\t if (otherProps.length === 1) {\n\t description = 'specified only if ' + otherProps[0] + ' is not specified';\n\t } else {\n\t description = 'specified only if none of the following are specified: [' + list(otherProps, ', ', 'and ') + ']';\n\t }\n\t var shortType = 'ifNot[' + otherProps.join(', ') + ']';\n\t var type = getTypeForShapeChild(propChecker, description, shortType);\n\t return setupChecker(function ifNotChecker(prop, propName, location, obj) {\n\t var propExists = obj && obj.hasOwnProperty(propName);\n\t var otherPropsExist = otherProps.some(function (otherProp) {\n\t return obj && obj.hasOwnProperty(otherProp);\n\t });\n\t if (propExists === otherPropsExist) {\n\t return getError(propName, location, type);\n\t } else if (propExists) {\n\t return propChecker(prop, propName, location, obj);\n\t }\n\t }, { notRequired: true, type: type, shortType: shortType }, disabled);\n\t };\n\n\t shapeCheckGetter.onlyIf = function onlyIf(otherProps, propChecker) {\n\t otherProps = arrayify(otherProps);\n\t var description = undefined;\n\t if (otherProps.length === 1) {\n\t description = 'specified only if ' + otherProps[0] + ' is also specified';\n\t } else {\n\t description = 'specified only if all of the following are specified: [' + list(otherProps, ', ', 'and ') + ']';\n\t }\n\t var shortType = 'onlyIf[' + otherProps.join(', ') + ']';\n\t var type = getTypeForShapeChild(propChecker, description, shortType);\n\t return setupChecker(function onlyIfCheckerDefinition(prop, propName, location, obj) {\n\t var othersPresent = otherProps.every(function (property) {\n\t return obj.hasOwnProperty(property);\n\t });\n\t if (!othersPresent) {\n\t return getError(propName, location, type);\n\t } else {\n\t return propChecker(prop, propName, location, obj);\n\t }\n\t }, { type: type, shortType: shortType }, disabled);\n\t };\n\n\t shapeCheckGetter.requiredIfNot = function shapeRequiredIfNot(otherProps, propChecker) {\n\t if (!Array.isArray(otherProps)) {\n\t otherProps = [otherProps];\n\t }\n\t return getRequiredIfNotChecker(false, otherProps, propChecker);\n\t };\n\n\t shapeCheckGetter.requiredIfNot.all = function shapeRequiredIfNotAll(otherProps, propChecker) {\n\t if (!Array.isArray(otherProps)) {\n\t throw new Error('requiredIfNot.all must be passed an array');\n\t }\n\t return getRequiredIfNotChecker(true, otherProps, propChecker);\n\t };\n\n\t function getRequiredIfNotChecker(all, otherProps, propChecker) {\n\t var props = t(otherProps.join(', '));\n\t var ifProps = 'if ' + (all ? 'all of' : 'at least one of');\n\t var description = 'specified ' + ifProps + ' these are not specified: ' + props + ' (otherwise it\\'s optional)';\n\t var shortType = 'requiredIfNot' + (all ? '.all' : '') + '[' + otherProps.join(', ') + '}]';\n\t var type = getTypeForShapeChild(propChecker, description, shortType);\n\t return setupChecker(function shapeRequiredIfNotDefinition(prop, propName, location, obj) {\n\t var propExists = obj && obj.hasOwnProperty(propName);\n\t var iteration = all ? 'every' : 'some';\n\t var otherPropsExist = otherProps[iteration](function (otherProp) {\n\t return obj && obj.hasOwnProperty(otherProp);\n\t });\n\t if (!otherPropsExist && !propExists) {\n\t return getError(propName, location, type);\n\t } else if (propExists) {\n\t return propChecker(prop, propName, location, obj);\n\t }\n\t }, { type: type, notRequired: true }, disabled);\n\t }\n\n\t return shapeCheckGetter;\n\n\t function getTypeForShapeChild(propChecker, description, shortType) {\n\t function type(options) {\n\t if (options && options.short) {\n\t return shortType;\n\t }\n\t return getCheckerDisplay(propChecker);\n\t }\n\t type.__apiCheckData = { optional: false, type: 'ifNot', description: description };\n\t return type;\n\t }\n\t }\n\n\t function argumentsCheckerGetter() {\n\t var type = 'function arguments';\n\t return setupChecker(function argsCheckerDefinition(val, name, location) {\n\t if (Array.isArray(val) || isError(checkers.object(val)) || isError(checkers.number(val.length))) {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\t }\n\n\t function anyCheckGetter() {\n\t return setupChecker(function anyCheckerDefinition() {\n\t // don't do anything\n\t }, { type: 'any' }, disabled);\n\t }\n\n\t function nullCheckGetter() {\n\t var type = 'null';\n\t return setupChecker(function nullChecker(val, name, location) {\n\t if (val !== null) {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\t }\n\n\t function rangeCheckGetter(min, max) {\n\t var type = 'Range (' + min + ' - ' + max + ')';\n\t return setupChecker(function rangeChecker(val, name, location) {\n\t if (typeof val !== 'number' || val < min || val > max) {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\t }\n\n\t function lessThanCheckGetter(min) {\n\t var type = 'lessThan[' + min + ']';\n\t return setupChecker(function lessThanChecker(val, name, location) {\n\t if (typeof val !== 'number' || val > min) {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\t }\n\n\t function greaterThanCheckGetter(max) {\n\t var type = 'greaterThan[' + max + ']';\n\t return setupChecker(function greaterThanChecker(val, name, location) {\n\t if (typeof val !== 'number' || val < max) {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\t }\n\n\t function emptyObjectCheckGetter() {\n\t var type = 'empty object';\n\t return setupChecker(function emptyObjectChecker(val, name, location) {\n\t if (typeOf(val) !== 'object' || val === null || Object.keys(val).length) {\n\t return getError(name, location, type);\n\t }\n\t }, { type: type }, disabled);\n\t }\n\t}\n\n/***/ }\n/******/ ])\n});\n;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2FwaS1jaGVjay9kaXN0L2FwaS1jaGVjay5qcz83ZWE5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxvQ0FBb0M7QUFDcEM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGLHVDQUF1Qyx1Q0FBdUMsa0JBQWtCOztBQUVoRzs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsWUFBWTtBQUNaLEVBQUU7QUFDRjs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBLHdFQUF3RTtBQUN4RSwrRUFBK0U7O0FBRS9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7O0FBRUo7O0FBRUE7QUFDQTtBQUNBLGNBQWMsTUFBTTtBQUNwQixjQUFjLE1BQU07QUFDcEIsY0FBYyxPQUFP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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEdBQUcsYUFBYTtBQUN0Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEdBQUcsYUFBYTtBQUN0Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEdBQUcsYUFBYTtBQUN0QjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QiLCJmaWxlIjoiMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vISBhcGktY2hlY2sgdmVyc2lvbiA3LjUuNSBidWlsdCB3aXRoIOKZpSBieSBLZW50IEMuIERvZGRzIDxrZW50QGRvZGRzZmFtaWx5LnVzPiAoaHR0cDovL2tlbnQuZG9kZHNmYW1pbHkudXMpICjDsyDDrF/DrSk9w7PDsj0ow6xfw60gw7IpXG5cbihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiYXBpQ2hlY2tcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiYXBpQ2hlY2tcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fSxcbi8qKioqKiovIFx0XHRcdGlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGxvYWRlZDogZmFsc2Vcbi8qKioqKiovIFx0XHR9O1xuXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuXG5cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcblx0ICB2YWx1ZTogdHJ1ZVxuXHR9KTtcblxuXHRmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cblx0dmFyIF9hcGlDaGVjayA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cblx0dmFyIF9hcGlDaGVjazIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hcGlDaGVjayk7XG5cblx0ZXhwb3J0c1snZGVmYXVsdCddID0gX2FwaUNoZWNrMlsnZGVmYXVsdCddO1xuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSxcbi8qIDEgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgc3RyaW5naWZ5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblx0dmFyIGFwaUNoZWNrVXRpbCA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG5cdHZhciBlYWNoID0gYXBpQ2hlY2tVdGlsLmVhY2g7XG5cdHZhciBpc0Vycm9yID0gYXBpQ2hlY2tVdGlsLmlzRXJyb3I7XG5cdHZhciB0ID0gYXBpQ2hlY2tVdGlsLnQ7XG5cdHZhciBhcnJheWlmeSA9IGFwaUNoZWNrVXRpbC5hcnJheWlmeTtcblx0dmFyIGdldENoZWNrZXJEaXNwbGF5ID0gYXBpQ2hlY2tVdGlsLmdldENoZWNrZXJEaXNwbGF5O1xuXHR2YXIgdHlwZU9mID0gYXBpQ2hlY2tVdGlsLnR5cGVPZjtcblx0dmFyIGdldEVycm9yID0gYXBpQ2hlY2tVdGlsLmdldEVycm9yO1xuXG5cdHZhciBjaGVja2VycyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG5cdHZhciBhcGlDaGVja0FwaXMgPSBnZXRBcGlDaGVja0FwaXMoKTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGdldEFwaUNoZWNrSW5zdGFuY2U7XG5cdG1vZHVsZS5leHBvcnRzLlZFUlNJT04gPSAoXCI3LjUuNVwiKTtcblx0bW9kdWxlLmV4cG9ydHMudXRpbHMgPSBhcGlDaGVja1V0aWw7XG5cdG1vZHVsZS5leHBvcnRzLmdsb2JhbENvbmZpZyA9IHtcblx0ICB2ZXJib3NlOiBmYWxzZSxcblx0ICBkaXNhYmxlZDogZmFsc2Vcblx0fTtcblxuXHR2YXIgYXBpQ2hlY2tBcGlDaGVjayA9IGdldEFwaUNoZWNrSW5zdGFuY2Uoe1xuXHQgIG91dHB1dDogeyBwcmVmaXg6ICdhcGlDaGVjaycgfVxuXHR9KTtcblx0bW9kdWxlLmV4cG9ydHMuaW50ZXJuYWxDaGVja2VyID0gYXBpQ2hlY2tBcGlDaGVjaztcblxuXHRlYWNoKGNoZWNrZXJzLCBmdW5jdGlvbiAoY2hlY2tlciwgbmFtZSkge1xuXHQgIHJldHVybiBtb2R1bGUuZXhwb3J0c1tuYW1lXSA9IGNoZWNrZXI7XG5cdH0pO1xuXG5cdGZ1bmN0aW9uIGdldEFwaUNoZWNrSW5zdGFuY2UoKSB7XG5cdCAgdmFyIGNvbmZpZyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXHQgIHZhciBleHRyYUNoZWNrZXJzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMV07XG5cblx0ICAvKiBlc2xpbnQgY29tcGxleGl0eTpbMiwgNl0gKi9cblx0ICBpZiAoYXBpQ2hlY2tBcGlDaGVjayAmJiBhcmd1bWVudHMubGVuZ3RoKSB7XG5cdCAgICBhcGlDaGVja0FwaUNoZWNrWyd0aHJvdyddKGFwaUNoZWNrQXBpcy5nZXRBcGlDaGVja0luc3RhbmNlQ2hlY2tlcnMsIGFyZ3VtZW50cywge1xuXHQgICAgICBwcmVmaXg6ICdjcmVhdGluZyBhbiBhcGlDaGVjayBpbnN0YW5jZSdcblx0ICAgIH0pO1xuXHQgIH1cblxuXHQgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllcyA9IHtcblx0ICAgICd0aHJvdyc6IGdldEFwaUNoZWNrKHRydWUpLFxuXHQgICAgd2FybjogZ2V0QXBpQ2hlY2soZmFsc2UpLFxuXHQgICAgZ2V0RXJyb3JNZXNzYWdlOiBnZXRFcnJvck1lc3NhZ2UsXG5cdCAgICBoYW5kbGVFcnJvck1lc3NhZ2U6IGhhbmRsZUVycm9yTWVzc2FnZSxcblx0ICAgIGNvbmZpZzoge1xuXHQgICAgICBvdXRwdXQ6IGNvbmZpZy5vdXRwdXQgfHwge1xuXHQgICAgICAgIHByZWZpeDogJycsXG5cdCAgICAgICAgc3VmZml4OiAnJyxcblx0ICAgICAgICBkb2NzQmFzZVVybDogJydcblx0ICAgICAgfSxcblx0ICAgICAgdmVyYm9zZTogY29uZmlnLnZlcmJvc2UgfHwgZmFsc2UsXG5cdCAgICAgIGRpc2FibGVkOiBjb25maWcuZGlzYWJsZWQgfHwgZmFsc2Vcblx0ICAgIH0sXG5cdCAgICB1dGlsczogYXBpQ2hlY2tVdGlsXG5cdCAgfTtcblxuXHQgIGVhY2goYWRkaXRpb25hbFByb3BlcnRpZXMsIGZ1bmN0aW9uICh3cmFwcGVyLCBuYW1lKSB7XG5cdCAgICByZXR1cm4gYXBpQ2hlY2tbbmFtZV0gPSB3cmFwcGVyO1xuXHQgIH0pO1xuXG5cdCAgdmFyIGRpc2FibGVkID0gYXBpQ2hlY2suZGlzYWJsZWQgfHwgbW9kdWxlLmV4cG9ydHMuZ2xvYmFsQ29uZmlnLmRpc2FibGVkO1xuXHQgIGVhY2goY2hlY2tlcnMuZ2V0Q2hlY2tlcnMoZGlzYWJsZWQpLCBmdW5jdGlvbiAoY2hlY2tlciwgbmFtZSkge1xuXHQgICAgcmV0dXJuIGFwaUNoZWNrW25hbWVdID0gY2hlY2tlcjtcblx0ICB9KTtcblx0ICBlYWNoKGV4dHJhQ2hlY2tlcnMsIGZ1bmN0aW9uIChjaGVja2VyLCBuYW1lKSB7XG5cdCAgICByZXR1cm4gYXBpQ2hlY2tbbmFtZV0gPSBjaGVja2VyO1xuXHQgIH0pO1xuXG5cdCAgcmV0dXJuIGFwaUNoZWNrO1xuXG5cdCAgLyoqXG5cdCAgICogVGhpcyBpcyB0aGUgaW5zdGFuY2UgZnVuY3Rpb24uIE90aGVyIHRoaW5ncyBhcmUgYXR0YWNoZWQgdG8gdGhpcyBzZWUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGFib3ZlLlxuXHQgICAqIEBwYXJhbSB7QXJyYXl9IGFwaSAtIHRoZSBjaGVja2VycyB0byBjaGVjayB3aXRoXG5cdCAgICogQHBhcmFtIHtBcnJheX0gYXJncyAtIHRoZSBhcmdzIHRvIGNoZWNrXG5cdCAgICogQHBhcmFtIHtPYmplY3R9IG91dHB1dCAtIG91dHB1dCBvcHRpb25zXG5cdCAgICogQHJldHVybnMge09iamVjdH0gLSBpZiB0aGlzIGhhcyBhIGZhaWxlZCA9IHRydWUgcHJvcGVydHksIHRoZW4gaXQgZmFpbGVkXG5cdCAgICovXG5cdCAgZnVuY3Rpb24gYXBpQ2hlY2soYXBpLCBhcmdzLCBvdXRwdXQpIHtcblx0ICAgIC8qIGVzbGludCBjb21wbGV4aXR5OlsyLCA4XSAqL1xuXHQgICAgaWYgKGFwaUNoZWNrLmNvbmZpZy5kaXNhYmxlZCB8fCBtb2R1bGUuZXhwb3J0cy5nbG9iYWxDb25maWcuZGlzYWJsZWQpIHtcblx0ICAgICAgcmV0dXJuIHtcblx0ICAgICAgICBhcGlUeXBlczoge30sIGFyZ1R5cGVzOiB7fSxcblx0ICAgICAgICBwYXNzZWQ6IHRydWUsIG1lc3NhZ2U6ICcnLFxuXHQgICAgICAgIGZhaWxlZDogZmFsc2Vcblx0ICAgICAgfTsgLy8gZW1wdHkgdmVyc2lvbiBvZiB3aGF0IGlzIG5vcm1hbGx5IHJldHVybmVkXG5cdCAgICB9XG5cdCAgICBjaGVja0FwaUNoZWNrQXBpKGFyZ3VtZW50cyk7XG5cdCAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXBpKSkge1xuXHQgICAgICBhcGkgPSBbYXBpXTtcblx0ICAgICAgYXJncyA9IFthcmdzXTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIC8vIHR1cm4gYXJndW1lbnRzIGludG8gYW4gYXJyYXlcblx0ICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuXHQgICAgfVxuXHQgICAgdmFyIG1lc3NhZ2VzID0gY2hlY2tFbm91Z2hBcmdzKGFwaSwgYXJncyk7XG5cdCAgICBpZiAoIW1lc3NhZ2VzLmxlbmd0aCkge1xuXHQgICAgICAvLyB0aGlzIGlzIHdoZXJlIHdlIGFjdHVhbGx5IGdvIHBlcmZvcm0gdGhlIGNoZWNrcy5cblx0ICAgICAgbWVzc2FnZXMgPSBjaGVja0FwaVdpdGhBcmdzKGFwaSwgYXJncyk7XG5cdCAgICB9XG5cblx0ICAgIHZhciByZXR1cm5PYmplY3QgPSBnZXRUeXBlcyhhcGksIGFyZ3MpO1xuXHQgICAgcmV0dXJuT2JqZWN0LmFyZ3MgPSBhcmdzO1xuXHQgICAgaWYgKG1lc3NhZ2VzLmxlbmd0aCkge1xuXHQgICAgICByZXR1cm5PYmplY3QubWVzc2FnZSA9IGFwaUNoZWNrLmdldEVycm9yTWVzc2FnZShhcGksIGFyZ3MsIG1lc3NhZ2VzLCBvdXRwdXQpO1xuXHQgICAgICByZXR1cm5PYmplY3QuZmFpbGVkID0gdHJ1ZTtcblx0ICAgICAgcmV0dXJuT2JqZWN0LnBhc3NlZCA9IGZhbHNlO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgcmV0dXJuT2JqZWN0Lm1lc3NhZ2UgPSAnJztcblx0ICAgICAgcmV0dXJuT2JqZWN0LmZhaWxlZCA9IGZhbHNlO1xuXHQgICAgICByZXR1cm5PYmplY3QucGFzc2VkID0gdHJ1ZTtcblx0ICAgIH1cblx0ICAgIHJldHVybiByZXR1cm5PYmplY3Q7XG5cdCAgfVxuXG5cdCAgLyoqXG5cdCAgICogY2hlY2tBcGlDaGVja0FwaSwgc2hvdWxkIGJlIHJlYWQgbGlrZTogY2hlY2sgYXBpQ2hlY2sgYXBpLiBBcyBpbiwgY2hlY2sgdGhlIGFwaSBmb3IgYXBpQ2hlY2sgOi0pXG5cdCAgICogQHBhcmFtIHtBcnJheX0gY2hlY2tBcGlBcmdzIC0gYXJncyBwcm92aWRlZCB0byBhcGlDaGVjayBmdW5jdGlvblxuXHQgICAqL1xuXHQgIGZ1bmN0aW9uIGNoZWNrQXBpQ2hlY2tBcGkoY2hlY2tBcGlBcmdzKSB7XG5cdCAgICB2YXIgYXBpID0gY2hlY2tBcGlBcmdzWzBdO1xuXHQgICAgdmFyIGFyZ3MgPSBjaGVja0FwaUFyZ3NbMV07XG5cdCAgICB2YXIgaXNBcnJheU9yQXJncyA9IEFycmF5LmlzQXJyYXkoYXJncykgfHwgYXJncyAmJiB0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGFyZ3MubGVuZ3RoID09PSAnbnVtYmVyJztcblxuXHQgICAgaWYgKEFycmF5LmlzQXJyYXkoYXBpKSAmJiAhaXNBcnJheU9yQXJncykge1xuXHQgICAgICB0aHJvdyBuZXcgRXJyb3IoZ2V0RXJyb3JNZXNzYWdlKGFwaSwgW2FyZ3NdLCBbJ0lmIGFuIGFycmF5IGlzIHByb3ZpZGVkIGZvciB0aGUgYXBpLCBhbiBhcnJheSBtdXN0IGJlIHByb3ZpZGVkIGZvciB0aGUgYXJncyBhcyB3ZWxsLiddLCB7IHByZWZpeDogJ2FwaUNoZWNrJyB9KSk7XG5cdCAgICB9XG5cdCAgICAvLyBkb2cgZm9vZGluZyBoZXJlXG5cdCAgICB2YXIgZXJyb3JzID0gY2hlY2tBcGlXaXRoQXJncyhhcGlDaGVja0FwaXMuY2hlY2tBcGlDaGVja0FwaSwgY2hlY2tBcGlBcmdzKTtcblx0ICAgIGlmIChlcnJvcnMubGVuZ3RoKSB7XG5cdCAgICAgIHZhciBtZXNzYWdlID0gYXBpQ2hlY2suZ2V0RXJyb3JNZXNzYWdlKGFwaUNoZWNrQXBpcy5jaGVja0FwaUNoZWNrQXBpLCBjaGVja0FwaUFyZ3MsIGVycm9ycywge1xuXHQgICAgICAgIHByZWZpeDogJ2FwaUNoZWNrJ1xuXHQgICAgICB9KTtcblx0ICAgICAgYXBpQ2hlY2suaGFuZGxlRXJyb3JNZXNzYWdlKG1lc3NhZ2UsIHRydWUpO1xuXHQgICAgfVxuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldEFwaUNoZWNrKHNob3VsZFRocm93KSB7XG5cdCAgICByZXR1cm4gZnVuY3Rpb24gYXBpQ2hlY2tXcmFwcGVyKGFwaSwgYXJncywgb3V0cHV0KSB7XG5cdCAgICAgIHZhciByZXN1bHQgPSBhcGlDaGVjayhhcGksIGFyZ3MsIG91dHB1dCk7XG5cdCAgICAgIGFwaUNoZWNrLmhhbmRsZUVycm9yTWVzc2FnZShyZXN1bHQubWVzc2FnZSwgc2hvdWxkVGhyb3cpO1xuXHQgICAgICByZXR1cm4gcmVzdWx0OyAvLyB3b250IGdldCBoZXJlIGlmIGFuIGVycm9yIGlzIHRocm93blxuXHQgICAgfTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBoYW5kbGVFcnJvck1lc3NhZ2UobWVzc2FnZSwgc2hvdWxkVGhyb3cpIHtcblx0ICAgIGlmIChzaG91bGRUaHJvdyAmJiBtZXNzYWdlKSB7XG5cdCAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcblx0ICAgIH0gZWxzZSBpZiAobWVzc2FnZSkge1xuXHQgICAgICAvKiBlc2xpbnQgbm8tY29uc29sZTowICovXG5cdCAgICAgIGNvbnNvbGUud2FybihtZXNzYWdlKTtcblx0ICAgIH1cblx0ICB9XG5cblx0ICBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2UoYXBpLCBhcmdzKSB7XG5cdCAgICB2YXIgbWVzc2FnZXMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyBbXSA6IGFyZ3VtZW50c1syXTtcblx0ICAgIHZhciBvdXRwdXQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDMgfHwgYXJndW1lbnRzWzNdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1szXTtcblxuXHQgICAgdmFyIGdPdXQgPSBhcGlDaGVjay5jb25maWcub3V0cHV0IHx8IHt9O1xuXHQgICAgdmFyIHByZWZpeCA9IGdldFByZWZpeCgpO1xuXHQgICAgdmFyIHN1ZmZpeCA9IGdldFN1ZmZpeCgpO1xuXHQgICAgdmFyIHVybCA9IGdldFVybCgpO1xuXHQgICAgdmFyIG1lc3NhZ2UgPSAnYXBpQ2hlY2sgZmFpbGVkISAnICsgbWVzc2FnZXMuam9pbignLCAnKTtcblx0ICAgIHZhciBwYXNzZWRBbmRTaG91bGRIYXZlUGFzc2VkID0gJ1xcblxcbicgKyBidWlsZE1lc3NhZ2VGcm9tQXBpQW5kQXJncyhhcGksIGFyZ3MpO1xuXHQgICAgcmV0dXJuIChwcmVmaXggKyAnICcgKyBtZXNzYWdlICsgJyAnICsgc3VmZml4ICsgJyAnICsgKHVybCB8fCAnJykgKyBwYXNzZWRBbmRTaG91bGRIYXZlUGFzc2VkKS50cmltKCk7XG5cblx0ICAgIGZ1bmN0aW9uIGdldFByZWZpeCgpIHtcblx0ICAgICAgdmFyIHAgPSBvdXRwdXQub25seVByZWZpeDtcblx0ICAgICAgaWYgKCFwKSB7XG5cdCAgICAgICAgcCA9ICgoZ091dC5wcmVmaXggfHwgJycpICsgJyAnICsgKG91dHB1dC5wcmVmaXggfHwgJycpKS50cmltKCk7XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuIHA7XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIGdldFN1ZmZpeCgpIHtcblx0ICAgICAgdmFyIHMgPSBvdXRwdXQub25seVN1ZmZpeDtcblx0ICAgICAgaWYgKCFzKSB7XG5cdCAgICAgICAgcyA9ICgob3V0cHV0LnN1ZmZpeCB8fCAnJykgKyAnICcgKyAoZ091dC5zdWZmaXggfHwgJycpKS50cmltKCk7XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuIHM7XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIGdldFVybCgpIHtcblx0ICAgICAgdmFyIHUgPSBvdXRwdXQudXJsO1xuXHQgICAgICBpZiAoIXUpIHtcblx0ICAgICAgICB1ID0gZ091dC5kb2NzQmFzZVVybCAmJiBvdXRwdXQudXJsU3VmZml4ICYmICgnJyArIGdPdXQuZG9jc0Jhc2VVcmwgKyBvdXRwdXQudXJsU3VmZml4KS50cmltKCk7XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuIHU7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gYnVpbGRNZXNzYWdlRnJvbUFwaUFuZEFyZ3MoYXBpLCBhcmdzKSB7XG5cdCAgICB2YXIgX2dldFR5cGVzID0gZ2V0VHlwZXMoYXBpLCBhcmdzKTtcblxuXHQgICAgdmFyIGFwaVR5cGVzID0gX2dldFR5cGVzLmFwaVR5cGVzO1xuXHQgICAgdmFyIGFyZ1R5cGVzID0gX2dldFR5cGVzLmFyZ1R5cGVzO1xuXG5cdCAgICB2YXIgY29weSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MgfHwgW10pO1xuXHQgICAgdmFyIHJlcGxhY2VkSXRlbXMgPSBbXTtcblx0ICAgIHJlcGxhY2VGdW5jdGlvbldpdGhOYW1lKGNvcHkpO1xuXHQgICAgdmFyIHBhc3NlZEFyZ3MgPSBnZXRPYmplY3RTdHJpbmcoY29weSk7XG5cdCAgICBhcmdUeXBlcyA9IGdldE9iamVjdFN0cmluZyhhcmdUeXBlcyk7XG5cdCAgICBhcGlUeXBlcyA9IGdldE9iamVjdFN0cmluZyhhcGlUeXBlcyk7XG5cblx0ICAgIHJldHVybiBnZW5lcmF0ZU1lc3NhZ2UoKTtcblxuXHQgICAgLy8gZnVuY3Rpb25zXG5cblx0ICAgIGZ1bmN0aW9uIHJlcGxhY2VGdW5jdGlvbldpdGhOYW1lKG9iaikge1xuXHQgICAgICBlYWNoKG9iaiwgZnVuY3Rpb24gKHZhbCwgbmFtZSkge1xuXHQgICAgICAgIC8qIGVzbGludCBjb21wbGV4aXR5OlsyLCA2XSAqL1xuXHQgICAgICAgIGlmIChyZXBsYWNlZEl0ZW1zLmluZGV4T2YodmFsKSA9PT0gLTEpIHtcblx0ICAgICAgICAgIC8vIGF2b2lkIHJlY3Vyc2l2ZSBwcm9ibGVtc1xuXHQgICAgICAgICAgcmVwbGFjZWRJdGVtcy5wdXNoKHZhbCk7XG5cdCAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcblx0ICAgICAgICAgICAgcmVwbGFjZUZ1bmN0aW9uV2l0aE5hbWUob2JqKTtcblx0ICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgICAgICBvYmpbbmFtZV0gPSB2YWwuZGlzcGxheU5hbWUgfHwgdmFsLm5hbWUgfHwgJ2Fub255bW91cyBmdW5jdGlvbic7XG5cdCAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgICB9KTtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gZ2V0T2JqZWN0U3RyaW5nKHR5cGVzKSB7XG5cdCAgICAgIGlmICghdHlwZXMgfHwgIXR5cGVzLmxlbmd0aCkge1xuXHQgICAgICAgIHJldHVybiAnbm90aGluZyc7XG5cdCAgICAgIH0gZWxzZSBpZiAodHlwZXMgJiYgdHlwZXMubGVuZ3RoID09PSAxKSB7XG5cdCAgICAgICAgdHlwZXMgPSB0eXBlc1swXTtcblx0ICAgICAgfVxuXHQgICAgICByZXR1cm4gc3RyaW5naWZ5KHR5cGVzLCBudWxsLCAyKTtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gZ2VuZXJhdGVNZXNzYWdlKCkge1xuXHQgICAgICB2YXIgbiA9ICdcXG4nO1xuXHQgICAgICB2YXIgdXNlUyA9IHRydWU7XG5cdCAgICAgIGlmIChhcmdzICYmIGFyZ3MubGVuZ3RoID09PSAxKSB7XG5cdCAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnb2JqZWN0JyAmJiBhcmdzWzBdICE9PSBudWxsKSB7XG5cdCAgICAgICAgICB1c2VTID0gISFPYmplY3Qua2V5cyhhcmdzWzBdKS5sZW5ndGg7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgIHVzZVMgPSBmYWxzZTtcblx0ICAgICAgICB9XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIHR5cGVzID0gJ3R5cGUnICsgKHVzZVMgPyAncycgOiAnJyk7XG5cdCAgICAgIHZhciBuZXdMaW5lID0gbiArIG47XG5cdCAgICAgIHJldHVybiAnWW91IHBhc3NlZDonICsgbiArIHBhc3NlZEFyZ3MgKyBuZXdMaW5lICsgKCdXaXRoIHRoZSAnICsgdHlwZXMgKyAnOicgKyBuICsgYXJnVHlwZXMgKyBuZXdMaW5lKSArICgnVGhlIEFQSSBjYWxscyBmb3I6JyArIG4gKyBhcGlUeXBlcyk7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZ2V0VHlwZXMoYXBpLCBhcmdzKSB7XG5cdCAgICBhcGkgPSBhcnJheWlmeShhcGkpO1xuXHQgICAgYXJncyA9IGFycmF5aWZ5KGFyZ3MpO1xuXHQgICAgdmFyIGFwaVR5cGVzID0gYXBpLm1hcChmdW5jdGlvbiAoY2hlY2tlciwgaW5kZXgpIHtcblx0ICAgICAgdmFyIHNwZWNpZmllZCA9IG1vZHVsZS5leHBvcnRzLmdsb2JhbENvbmZpZy5oYXNPd25Qcm9wZXJ0eSgndmVyYm9zZScpO1xuXHQgICAgICByZXR1cm4gZ2V0Q2hlY2tlckRpc3BsYXkoY2hlY2tlciwge1xuXHQgICAgICAgIHRlcnNlOiBzcGVjaWZpZWQgPyAhbW9kdWxlLmV4cG9ydHMuZ2xvYmFsQ29uZmlnLnZlcmJvc2UgOiAhYXBpQ2hlY2suY29uZmlnLnZlcmJvc2UsXG5cdCAgICAgICAgb2JqOiBhcmdzW2luZGV4XSxcblx0ICAgICAgICBhZGRIZWxwZXJzOiB0cnVlXG5cdCAgICAgIH0pO1xuXHQgICAgfSk7XG5cdCAgICB2YXIgYXJnVHlwZXMgPSBhcmdzLm1hcChmdW5jdGlvbiAoYXJnKSB7XG5cdCAgICAgIHJldHVybiBnZXRBcmdEaXNwbGF5KGFyZywgW10pO1xuXHQgICAgfSk7XG5cdCAgICByZXR1cm4geyBhcmdUeXBlczogYXJnVHlwZXMsIGFwaVR5cGVzOiBhcGlUeXBlcyB9O1xuXHQgIH1cblx0fVxuXG5cdC8vIFNUQVRFTEVTUyBGVU5DVElPTlNcblxuXHQvKipcblx0ICogVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucyBmb3IgYWN0dWFsbHkgY2hlY2tpbmcgdGhlIGFyZ3VtZW50cyB3aXRoIHRoZSBhcGkuXG5cdCAqIEBwYXJhbSB7QXJyYXl9IGFwaSAtIGNoZWNrZXJzXG5cdCAqIEBwYXJhbSAge0FycmF5fSBhcmdzIC0gYW5kIGFyZ3VtZW50cyBvYmplY3Rcblx0ICogQHJldHVybnMge0FycmF5fSAtIHRoZSBlcnJvciBtZXNzYWdlc1xuXHQgKi9cblx0ZnVuY3Rpb24gY2hlY2tBcGlXaXRoQXJncyhhcGksIGFyZ3MpIHtcblx0ICAvKiBlc2xpbnQgY29tcGxleGl0eTpbMiwgN10gKi9cblx0ICB2YXIgbWVzc2FnZXMgPSBbXTtcblx0ICB2YXIgZmFpbGVkID0gZmFsc2U7XG5cdCAgdmFyIGNoZWNrZXJJbmRleCA9IDA7XG5cdCAgdmFyIGFyZ0luZGV4ID0gMDtcblx0ICB2YXIgYXJnID0gdW5kZWZpbmVkLFxuXHQgICAgICBjaGVja2VyID0gdW5kZWZpbmVkLFxuXHQgICAgICByZXMgPSB1bmRlZmluZWQsXG5cdCAgICAgIGxhc3RDaGVja2VyID0gdW5kZWZpbmVkLFxuXHQgICAgICBhcmdOYW1lID0gdW5kZWZpbmVkLFxuXHQgICAgICBhcmdGYWlsZWQgPSB1bmRlZmluZWQsXG5cdCAgICAgIHNraXBQcmV2aW91c0NoZWNrZXIgPSB1bmRlZmluZWQ7XG5cdCAgLyoganNoaW50IC1XMDg0ICovXG5cdCAgd2hpbGUgKChjaGVja2VyID0gYXBpW2NoZWNrZXJJbmRleCsrXSkgJiYgYXJnSW5kZXggPCBhcmdzLmxlbmd0aCkge1xuXHQgICAgYXJnID0gYXJnc1thcmdJbmRleCsrXTtcblx0ICAgIGFyZ05hbWUgPSAnQXJndW1lbnQgJyArIGFyZ0luZGV4ICsgKGNoZWNrZXIuaXNPcHRpb25hbCA/ICcgKG9wdGlvbmFsKScgOiAnJyk7XG5cdCAgICByZXMgPSBjaGVja2VyKGFyZywgJ3ZhbHVlJywgYXJnTmFtZSk7XG5cdCAgICBhcmdGYWlsZWQgPSBpc0Vycm9yKHJlcyk7XG5cdCAgICBsYXN0Q2hlY2tlciA9IGNoZWNrZXJJbmRleCA+PSBhcGkubGVuZ3RoO1xuXHQgICAgc2tpcFByZXZpb3VzQ2hlY2tlciA9IGNoZWNrZXJJbmRleCA+IDEgJiYgYXBpW2NoZWNrZXJJbmRleCAtIDFdLmlzT3B0aW9uYWw7XG5cdCAgICBpZiAoYXJnRmFpbGVkICYmIGxhc3RDaGVja2VyIHx8IGFyZ0ZhaWxlZCAmJiAhbGFzdENoZWNrZXIgJiYgIWNoZWNrZXIuaXNPcHRpb25hbCAmJiAhc2tpcFByZXZpb3VzQ2hlY2tlcikge1xuXHQgICAgICBmYWlsZWQgPSB0cnVlO1xuXHQgICAgICBtZXNzYWdlcy5wdXNoKGdldENoZWNrZXJFcnJvck1lc3NhZ2UocmVzLCBjaGVja2VyLCBhcmcpKTtcblx0ICAgIH0gZWxzZSBpZiAoYXJnRmFpbGVkICYmIGNoZWNrZXIuaXNPcHRpb25hbCkge1xuXHQgICAgICBhcmdJbmRleC0tO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgbWVzc2FnZXMucHVzaCh0KGFyZ05hbWUpICsgJyBwYXNzZWQnKTtcblx0ICAgIH1cblx0ICB9XG5cdCAgcmV0dXJuIGZhaWxlZCA/IG1lc3NhZ2VzIDogW107XG5cdH1cblxuXHRjaGVja2VyVHlwZVR5cGUudHlwZSA9ICdmdW5jdGlvbiB3aXRoIF9fYXBpQ2hlY2tEYXRhIHByb3BlcnR5IGFuZCBgJHtmdW5jdGlvbi50eXBlfWAgcHJvcGVydHknO1xuXHRmdW5jdGlvbiBjaGVja2VyVHlwZVR5cGUoY2hlY2tlclR5cGUsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgdmFyIGFwaUNoZWNrRGF0YUNoZWNrZXIgPSBjaGVja2Vycy5zaGFwZSh7XG5cdCAgICB0eXBlOiBjaGVja2Vycy5zdHJpbmcsXG5cdCAgICBvcHRpb25hbDogY2hlY2tlcnMuYm9vbFxuXHQgIH0pO1xuXHQgIHZhciBhc0Z1bmMgPSBjaGVja2Vycy5mdW5jLndpdGhQcm9wZXJ0aWVzKHsgX19hcGlDaGVja0RhdGE6IGFwaUNoZWNrRGF0YUNoZWNrZXIgfSk7XG5cdCAgdmFyIGFzU2hhcGUgPSBjaGVja2Vycy5zaGFwZSh7IF9fYXBpQ2hlY2tEYXRhOiBhcGlDaGVja0RhdGFDaGVja2VyIH0pO1xuXHQgIHZhciB3cm9uZ1NoYXBlID0gY2hlY2tlcnMub25lT2ZUeXBlKFthc0Z1bmMsIGFzU2hhcGVdKShjaGVja2VyVHlwZSwgbmFtZSwgbG9jYXRpb24pO1xuXHQgIGlmIChpc0Vycm9yKHdyb25nU2hhcGUpKSB7XG5cdCAgICByZXR1cm4gd3JvbmdTaGFwZTtcblx0ICB9XG5cdCAgaWYgKHR5cGVvZiBjaGVja2VyVHlwZSAhPT0gJ2Z1bmN0aW9uJyAmJiAhY2hlY2tlclR5cGUuaGFzT3duUHJvcGVydHkoY2hlY2tlclR5cGUuX19hcGlDaGVja0RhdGEudHlwZSkpIHtcblx0ICAgIHJldHVybiBnZXRFcnJvcihuYW1lLCBsb2NhdGlvbiwgY2hlY2tlclR5cGVUeXBlLnR5cGUpO1xuXHQgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGdldENoZWNrZXJFcnJvck1lc3NhZ2UocmVzLCBjaGVja2VyLCB2YWwpIHtcblx0ICB2YXIgY2hlY2tlckhlbHAgPSBnZXRDaGVja2VySGVscChjaGVja2VyLCB2YWwpO1xuXHQgIGNoZWNrZXJIZWxwID0gY2hlY2tlckhlbHAgPyAnIC0gJyArIGNoZWNrZXJIZWxwIDogJyc7XG5cdCAgcmV0dXJuIHJlcy5tZXNzYWdlICsgY2hlY2tlckhlbHA7XG5cdH1cblxuXHRmdW5jdGlvbiBnZXRDaGVja2VySGVscChfcmVmLCB2YWwpIHtcblx0ICB2YXIgaGVscCA9IF9yZWYuaGVscDtcblxuXHQgIGlmICghaGVscCkge1xuXHQgICAgcmV0dXJuICcnO1xuXHQgIH1cblx0ICBpZiAodHlwZW9mIGhlbHAgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgIGhlbHAgPSBoZWxwKHZhbCk7XG5cdCAgfVxuXHQgIHJldHVybiBoZWxwO1xuXHR9XG5cblx0ZnVuY3Rpb24gY2hlY2tFbm91Z2hBcmdzKGFwaSwgYXJncykge1xuXHQgIHZhciByZXF1aXJlZEFyZ3MgPSBhcGkuZmlsdGVyKGZ1bmN0aW9uIChhKSB7XG5cdCAgICByZXR1cm4gIWEuaXNPcHRpb25hbDtcblx0ICB9KTtcblx0ICBpZiAoYXJncy5sZW5ndGggPCByZXF1aXJlZEFyZ3MubGVuZ3RoKSB7XG5cdCAgICByZXR1cm4gWydOb3QgZW5vdWdoIGFyZ3VtZW50cyBzcGVjaWZpZWQuIFJlcXVpcmVzIGAnICsgcmVxdWlyZWRBcmdzLmxlbmd0aCArICdgLCB5b3UgcGFzc2VkIGAnICsgYXJncy5sZW5ndGggKyAnYCddO1xuXHQgIH0gZWxzZSB7XG5cdCAgICByZXR1cm4gW107XG5cdCAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gZ2V0QXJnRGlzcGxheShhcmcsIGdvdHRlbkFyZ3MpIHtcblx0ICAvKiBlc2xpbnQgY29tcGxleGl0eTpbMiwgN10gKi9cblx0ICB2YXIgY05hbWUgPSBhcmcgJiYgYXJnLmNvbnN0cnVjdG9yICYmIGFyZy5jb25zdHJ1Y3Rvci5uYW1lO1xuXHQgIHZhciB0eXBlID0gdHlwZU9mKGFyZyk7XG5cdCAgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgIGlmIChoYXNLZXlzKCkpIHtcblx0ICAgICAgdmFyIHByb3BlcnRpZXMgPSBzdHJpbmdpZnkoZ2V0RGlzcGxheUlmTm90R290dGVuKCkpO1xuXHQgICAgICByZXR1cm4gY05hbWUgKyAnICh3aXRoIHByb3BlcnRpZXM6ICcgKyBwcm9wZXJ0aWVzICsgJyknO1xuXHQgICAgfVxuXHQgICAgcmV0dXJuIGNOYW1lO1xuXHQgIH1cblxuXHQgIGlmIChhcmcgPT09IG51bGwpIHtcblx0ICAgIHJldHVybiAnbnVsbCc7XG5cdCAgfVxuXG5cdCAgaWYgKHR5cGUgIT09ICdhcnJheScgJiYgdHlwZSAhPT0gJ29iamVjdCcpIHtcblx0ICAgIHJldHVybiB0eXBlO1xuXHQgIH1cblxuXHQgIGlmIChoYXNLZXlzKCkpIHtcblx0ICAgIHJldHVybiBnZXREaXNwbGF5SWZOb3RHb3R0ZW4oKTtcblx0ICB9XG5cblx0ICByZXR1cm4gY05hbWU7XG5cblx0ICAvLyB1dGlsaXR5IGZ1bmN0aW9uc1xuXHQgIGZ1bmN0aW9uIGhhc0tleXMoKSB7XG5cdCAgICByZXR1cm4gYXJnICYmIE9iamVjdC5rZXlzKGFyZykubGVuZ3RoO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldERpc3BsYXlJZk5vdEdvdHRlbigpIHtcblx0ICAgIGlmIChnb3R0ZW5BcmdzLmluZGV4T2YoYXJnKSAhPT0gLTEpIHtcblx0ICAgICAgcmV0dXJuICdbQ2lyY3VsYXJdJztcblx0ICAgIH1cblx0ICAgIGdvdHRlbkFyZ3MucHVzaChhcmcpO1xuXHQgICAgcmV0dXJuIGdldERpc3BsYXkoYXJnLCBnb3R0ZW5BcmdzKTtcblx0ICB9XG5cdH1cblxuXHRmdW5jdGlvbiBnZXREaXNwbGF5KG9iaiwgZ290dGVuQXJncykge1xuXHQgIHZhciBhcmdEaXNwbGF5ID0ge307XG5cdCAgZWFjaChvYmosIGZ1bmN0aW9uICh2LCBrKSB7XG5cdCAgICByZXR1cm4gYXJnRGlzcGxheVtrXSA9IGdldEFyZ0Rpc3BsYXkodiwgZ290dGVuQXJncyk7XG5cdCAgfSk7XG5cdCAgcmV0dXJuIGFyZ0Rpc3BsYXk7XG5cdH1cblxuXHRmdW5jdGlvbiBnZXRBcGlDaGVja0FwaXMoKSB7XG5cdCAgdmFyIG9zID0gY2hlY2tlcnMuc3RyaW5nLm9wdGlvbmFsO1xuXG5cdCAgdmFyIGNoZWNrZXJGbkNoZWNrZXIgPSBjaGVja2Vycy5mdW5jLndpdGhQcm9wZXJ0aWVzKHtcblx0ICAgIHR5cGU6IGNoZWNrZXJzLm9uZU9mVHlwZShbY2hlY2tlcnMuc3RyaW5nLCBjaGVja2VyVHlwZVR5cGVdKS5vcHRpb25hbCxcblx0ICAgIGRpc3BsYXlOYW1lOiBjaGVja2Vycy5zdHJpbmcub3B0aW9uYWwsXG5cdCAgICBzaG9ydFR5cGU6IGNoZWNrZXJzLnN0cmluZy5vcHRpb25hbCxcblx0ICAgIG5vdE9wdGlvbmFsOiBjaGVja2Vycy5ib29sLm9wdGlvbmFsLFxuXHQgICAgbm90UmVxdWlyZWQ6IGNoZWNrZXJzLmJvb2wub3B0aW9uYWxcblx0ICB9KTtcblxuXHQgIHZhciBnZXRBcGlDaGVja0luc3RhbmNlQ2hlY2tlcnMgPSBbY2hlY2tlcnMuc2hhcGUoe1xuXHQgICAgb3V0cHV0OiBjaGVja2Vycy5zaGFwZSh7XG5cdCAgICAgIHByZWZpeDogY2hlY2tlcnMuc3RyaW5nLm9wdGlvbmFsLFxuXHQgICAgICBzdWZmaXg6IGNoZWNrZXJzLnN0cmluZy5vcHRpb25hbCxcblx0ICAgICAgZG9jc0Jhc2VVcmw6IGNoZWNrZXJzLnN0cmluZy5vcHRpb25hbFxuXHQgICAgfSkuc3RyaWN0Lm9wdGlvbmFsLFxuXHQgICAgdmVyYm9zZTogY2hlY2tlcnMuYm9vbC5vcHRpb25hbCxcblx0ICAgIGRpc2FibGVkOiBjaGVja2Vycy5ib29sLm9wdGlvbmFsXG5cdCAgfSkuc3RyaWN0Lm9wdGlvbmFsLCBjaGVja2Vycy5vYmplY3RPZihjaGVja2VyRm5DaGVja2VyKS5vcHRpb25hbF07XG5cblx0ICB2YXIgY2hlY2tBcGlDaGVja0FwaSA9IFtjaGVja2Vycy50eXBlT3JBcnJheU9mKGNoZWNrZXJGbkNoZWNrZXIpLCBjaGVja2Vycy5hbnkub3B0aW9uYWwsIGNoZWNrZXJzLnNoYXBlKHtcblx0ICAgIHByZWZpeDogb3MsIHN1ZmZpeDogb3MsIHVybFN1ZmZpeDogb3MsIC8vIGFwcGVuZGVkIGNhc2Vcblx0ICAgIG9ubHlQcmVmaXg6IG9zLCBvbmx5U3VmZml4OiBvcywgdXJsOiBvcyAvLyBvdmVycmlkZSBjYXNlXG5cdCAgfSkuc3RyaWN0Lm9wdGlvbmFsXTtcblxuXHQgIHJldHVybiB7XG5cdCAgICBjaGVja2VyRm5DaGVja2VyOiBjaGVja2VyRm5DaGVja2VyLFxuXHQgICAgZ2V0QXBpQ2hlY2tJbnN0YW5jZUNoZWNrZXJzOiBnZXRBcGlDaGVja0luc3RhbmNlQ2hlY2tlcnMsXG5cdCAgICBjaGVja0FwaUNoZWNrQXBpOiBjaGVja0FwaUNoZWNrQXBpXG5cdCAgfTtcblx0fVxuXG4vKioqLyB9LFxuLyogMiAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBzdHJpbmdpZnk7XG5cblx0ZnVuY3Rpb24gZ2V0U2VyaWFsaXplIChmbiwgZGVjeWNsZSkge1xuXHQgIHZhciBzZWVuID0gW10sIGtleXMgPSBbXTtcblx0ICBkZWN5Y2xlID0gZGVjeWNsZSB8fCBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG5cdCAgICByZXR1cm4gJ1tDaXJjdWxhciAnICsgZ2V0UGF0aCh2YWx1ZSwgc2Vlbiwga2V5cykgKyAnXSdcblx0ICB9O1xuXHQgIHJldHVybiBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG5cdCAgICB2YXIgcmV0ID0gdmFsdWU7XG5cdCAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSkge1xuXHQgICAgICBpZiAoc2Vlbi5pbmRleE9mKHZhbHVlKSAhPT0gLTEpXG5cdCAgICAgICAgcmV0ID0gZGVjeWNsZShrZXksIHZhbHVlKTtcblx0ICAgICAgZWxzZSB7XG5cdCAgICAgICAgc2Vlbi5wdXNoKHZhbHVlKTtcblx0ICAgICAgICBrZXlzLnB1c2goa2V5KTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgICAgaWYgKGZuKSByZXQgPSBmbihrZXksIHJldCk7XG5cdCAgICByZXR1cm4gcmV0O1xuXHQgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGdldFBhdGggKHZhbHVlLCBzZWVuLCBrZXlzKSB7XG5cdCAgdmFyIGluZGV4ID0gc2Vlbi5pbmRleE9mKHZhbHVlKTtcblx0ICB2YXIgcGF0aCA9IFsga2V5c1tpbmRleF0gXTtcblx0ICBmb3IgKGluZGV4LS07IGluZGV4ID49IDA7IGluZGV4LS0pIHtcblx0ICAgIGlmIChzZWVuW2luZGV4XVsgcGF0aFswXSBdID09PSB2YWx1ZSkge1xuXHQgICAgICB2YWx1ZSA9IHNlZW5baW5kZXhdO1xuXHQgICAgICBwYXRoLnVuc2hpZnQoa2V5c1tpbmRleF0pO1xuXHQgICAgfVxuXHQgIH1cblx0ICByZXR1cm4gJ34nICsgcGF0aC5qb2luKCcuJyk7XG5cdH1cblxuXHRmdW5jdGlvbiBzdHJpbmdpZnkob2JqLCBmbiwgc3BhY2VzLCBkZWN5Y2xlKSB7XG5cdCAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgZ2V0U2VyaWFsaXplKGZuLCBkZWN5Y2xlKSwgc3BhY2VzKTtcblx0fVxuXG5cdHN0cmluZ2lmeS5nZXRTZXJpYWxpemUgPSBnZXRTZXJpYWxpemU7XG5cblxuLyoqKi8gfSxcbi8qIDMgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdCd1c2Ugc3RyaWN0JztcblxuXHRmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5cdHZhciBzdHJpbmdpZnkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXHR2YXIgY2hlY2tlckhlbHBlcnMgPSB7XG5cdCAgYWRkT3B0aW9uYWw6IGFkZE9wdGlvbmFsLCBnZXRSZXF1aXJlZFZlcnNpb246IGdldFJlcXVpcmVkVmVyc2lvbiwgc2V0dXBDaGVja2VyOiBzZXR1cENoZWNrZXIsIGFkZE51bGxhYmxlOiBhZGROdWxsYWJsZVxuXHR9O1xuXG5cdG1vZHVsZS5leHBvcnRzID0ge1xuXHQgIGVhY2g6IGVhY2gsIGNvcHk6IGNvcHksIHR5cGVPZjogdHlwZU9mLCBhcnJheWlmeTogYXJyYXlpZnksIGdldENoZWNrZXJEaXNwbGF5OiBnZXRDaGVja2VyRGlzcGxheSxcblx0ICBpc0Vycm9yOiBpc0Vycm9yLCBsaXN0OiBsaXN0LCBnZXRFcnJvcjogZ2V0RXJyb3IsIG5BdEw6IG5BdEwsIHQ6IHQsIHVuZGVmOiB1bmRlZiwgY2hlY2tlckhlbHBlcnM6IGNoZWNrZXJIZWxwZXJzLFxuXHQgIG5vb3A6IG5vb3Bcblx0fTtcblxuXHRmdW5jdGlvbiBjb3B5KG9iaikge1xuXHQgIHZhciB0eXBlID0gdHlwZU9mKG9iaik7XG5cdCAgdmFyIGRhQ29weSA9IHVuZGVmaW5lZDtcblx0ICBpZiAodHlwZSA9PT0gJ2FycmF5Jykge1xuXHQgICAgZGFDb3B5ID0gW107XG5cdCAgfSBlbHNlIGlmICh0eXBlID09PSAnb2JqZWN0Jykge1xuXHQgICAgZGFDb3B5ID0ge307XG5cdCAgfSBlbHNlIHtcblx0ICAgIHJldHVybiBvYmo7XG5cdCAgfVxuXHQgIGVhY2gob2JqLCBmdW5jdGlvbiAodmFsLCBrZXkpIHtcblx0ICAgIGRhQ29weVtrZXldID0gdmFsOyAvLyBjYW5ub3Qgc2luZ2xlLWxpbmUgdGhpcyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gYWJvcnQgdGhlIGVhY2hcblx0ICB9KTtcblx0ICByZXR1cm4gZGFDb3B5O1xuXHR9XG5cblx0ZnVuY3Rpb24gdHlwZU9mKG9iaikge1xuXHQgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcblx0ICAgIHJldHVybiAnYXJyYXknO1xuXHQgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgUmVnRXhwKSB7XG5cdCAgICByZXR1cm4gJ29iamVjdCc7XG5cdCAgfSBlbHNlIHtcblx0ICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuXHQgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGdldENoZWNrZXJEaXNwbGF5KGNoZWNrZXIsIG9wdGlvbnMpIHtcblx0ICAvKiBlc2xpbnQgY29tcGxleGl0eTpbMiwgN10gKi9cblx0ICB2YXIgZGlzcGxheSA9IHVuZGVmaW5lZDtcblx0ICB2YXIgc2hvcnQgPSBvcHRpb25zICYmIG9wdGlvbnMuc2hvcnQ7XG5cdCAgaWYgKHNob3J0ICYmIGNoZWNrZXIuc2hvcnRUeXBlKSB7XG5cdCAgICBkaXNwbGF5ID0gY2hlY2tlci5zaG9ydFR5cGU7XG5cdCAgfSBlbHNlIGlmICghc2hvcnQgJiYgdHlwZW9mIGNoZWNrZXIudHlwZSA9PT0gJ29iamVjdCcgfHwgY2hlY2tlci50eXBlID09PSAnZnVuY3Rpb24nKSB7XG5cdCAgICBkaXNwbGF5ID0gZ2V0Q2hlY2tlclR5cGUoY2hlY2tlciwgb3B0aW9ucyk7XG5cdCAgfSBlbHNlIHtcblx0ICAgIGRpc3BsYXkgPSBnZXRDaGVja2VyVHlwZShjaGVja2VyLCBvcHRpb25zKSB8fCBjaGVja2VyLmRpc3BsYXlOYW1lIHx8IGNoZWNrZXIubmFtZTtcblx0ICB9XG5cdCAgcmV0dXJuIGRpc3BsYXk7XG5cdH1cblxuXHRmdW5jdGlvbiBnZXRDaGVja2VyVHlwZShfcmVmLCBvcHRpb25zKSB7XG5cdCAgdmFyIHR5cGUgPSBfcmVmLnR5cGU7XG5cblx0ICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgIHZhciBfX2FwaUNoZWNrRGF0YSA9IHR5cGUuX19hcGlDaGVja0RhdGE7XG5cdCAgICB2YXIgdHlwZVR5cGVzID0gdHlwZShvcHRpb25zKTtcblx0ICAgIHR5cGUgPSBfZGVmaW5lUHJvcGVydHkoe1xuXHQgICAgICBfX2FwaUNoZWNrRGF0YTogX19hcGlDaGVja0RhdGFcblx0ICAgIH0sIF9fYXBpQ2hlY2tEYXRhLnR5cGUsIHR5cGVUeXBlcyk7XG5cdCAgfVxuXHQgIHJldHVybiB0eXBlO1xuXHR9XG5cblx0ZnVuY3Rpb24gYXJyYXlpZnkob2JqKSB7XG5cdCAgaWYgKCFvYmopIHtcblx0ICAgIHJldHVybiBbXTtcblx0ICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHQgICAgcmV0dXJuIG9iajtcblx0ICB9IGVsc2Uge1xuXHQgICAgcmV0dXJuIFtvYmpdO1xuXHQgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIGVhY2gob2JqLCBpdGVyYXRvciwgY29udGV4dCkge1xuXHQgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcblx0ICAgIHJldHVybiBlYWNoQXJyeShvYmosIGl0ZXJhdG9yLCBjb250ZXh0KTtcblx0ICB9IGVsc2Uge1xuXHQgICAgcmV0dXJuIGVhY2hPYmoob2JqLCBpdGVyYXRvciwgY29udGV4dCk7XG5cdCAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gZWFjaE9iaihvYmosIGl0ZXJhdG9yLCBjb250ZXh0KSB7XG5cdCAgdmFyIHJldCA9IHVuZGVmaW5lZDtcblx0ICB2YXIgaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblx0ICAvKiBlc2xpbnQgcHJlZmVyLWNvbnN0OjAgKi8gLy8gc29tZSB3ZWlyZCBlc2xpbnQgYnVnP1xuXHQgIGZvciAodmFyIGtleSBpbiBvYmopIHtcblx0ICAgIGlmIChoYXNPd24uY2FsbChvYmosIGtleSkpIHtcblx0ICAgICAgcmV0ID0gaXRlcmF0b3IuY2FsbChjb250ZXh0LCBvYmpba2V5XSwga2V5LCBvYmopO1xuXHQgICAgICBpZiAocmV0ID09PSBmYWxzZSkge1xuXHQgICAgICAgIHJldHVybiByZXQ7XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9XG5cdCAgcmV0dXJuIHRydWU7XG5cdH1cblxuXHRmdW5jdGlvbiBlYWNoQXJyeShvYmosIGl0ZXJhdG9yLCBjb250ZXh0KSB7XG5cdCAgdmFyIHJldCA9IHVuZGVmaW5lZDtcblx0ICB2YXIgbGVuZ3RoID0gb2JqLmxlbmd0aDtcblx0ICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG5cdCAgICByZXQgPSBpdGVyYXRvci5jYWxsKGNvbnRleHQsIG9ialtpXSwgaSwgb2JqKTtcblx0ICAgIGlmIChyZXQgPT09IGZhbHNlKSB7XG5cdCAgICAgIHJldHVybiByZXQ7XG5cdCAgICB9XG5cdCAgfVxuXHQgIHJldHVybiB0cnVlO1xuXHR9XG5cblx0ZnVuY3Rpb24gaXNFcnJvcihvYmopIHtcblx0ICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRXJyb3I7XG5cdH1cblxuXHRmdW5jdGlvbiBsaXN0KGFycnksIGpvaW4sIGZpbmFsSm9pbikge1xuXHQgIGFycnkgPSBhcnJheWlmeShhcnJ5KTtcblx0ICB2YXIgY29weSA9IGFycnkuc2xpY2UoKTtcblx0ICB2YXIgbGFzdCA9IGNvcHkucG9wKCk7XG5cdCAgaWYgKGNvcHkubGVuZ3RoID09PSAxKSB7XG5cdCAgICBqb2luID0gJyAnO1xuXHQgIH1cblx0ICByZXR1cm4gY29weS5qb2luKGpvaW4pICsgKCcnICsgKGNvcHkubGVuZ3RoID8gam9pbiArIGZpbmFsSm9pbiA6ICcnKSArIGxhc3QpO1xuXHR9XG5cblx0ZnVuY3Rpb24gZ2V0RXJyb3IobmFtZSwgbG9jYXRpb24sIGNoZWNrZXJUeXBlKSB7XG5cdCAgaWYgKHR5cGVvZiBjaGVja2VyVHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgY2hlY2tlclR5cGUgPSBjaGVja2VyVHlwZSh7IHNob3J0OiB0cnVlIH0pO1xuXHQgIH1cblx0ICB2YXIgc3RyaW5nVHlwZSA9IHR5cGVvZiBjaGVja2VyVHlwZSAhPT0gJ29iamVjdCcgPyBjaGVja2VyVHlwZSA6IHN0cmluZ2lmeShjaGVja2VyVHlwZSk7XG5cdCAgcmV0dXJuIG5ldyBFcnJvcihuQXRMKG5hbWUsIGxvY2F0aW9uKSArICcgbXVzdCBiZSAnICsgdChzdHJpbmdUeXBlKSk7XG5cdH1cblxuXHRmdW5jdGlvbiBuQXRMKG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgdmFyIHROYW1lID0gdChuYW1lIHx8ICd2YWx1ZScpO1xuXHQgIHZhciB0TG9jYXRpb24gPSAhbG9jYXRpb24gPyAnJyA6ICcgYXQgJyArIHQobG9jYXRpb24pO1xuXHQgIHJldHVybiAnJyArIHROYW1lICsgdExvY2F0aW9uO1xuXHR9XG5cblx0ZnVuY3Rpb24gdCh0aGluZykge1xuXHQgIHJldHVybiAnYCcgKyB0aGluZyArICdgJztcblx0fVxuXG5cdGZ1bmN0aW9uIHVuZGVmKHRoaW5nKSB7XG5cdCAgcmV0dXJuIHR5cGVvZiB0aGluZyA9PT0gJ3VuZGVmaW5lZCc7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyB3aWxsIHNldCB1cCB0aGUgY2hlY2tlciB3aXRoIGFsbCBvZiB0aGUgZGVmYXVsdHMgdGhhdCBtb3N0IGNoZWNrZXJzIHdhbnQgbGlrZSByZXF1aXJlZCBieSBkZWZhdWx0IGFuZCBhblxuXHQgKiBvcHRpb25hbCB2ZXJzaW9uXG5cdCAqXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IGNoZWNrZXIgLSB0aGUgY2hlY2tlciB0byBzZXR1cCB3aXRoIHByb3BlcnRpZXNcblx0ICogQHBhcmFtIHtPYmplY3R9IHByb3BlcnRpZXMgLSBwcm9wZXJ0aWVzIHRvIGFkZCB0byB0aGUgY2hlY2tlclxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGRpc2FibGVkIC0gd2hlbiBzZXQgdG8gdHJ1ZSwgdGhpcyB3aWxsIHNldCB0aGUgY2hlY2tlciB0byBhIG5vLW9wIGZ1bmN0aW9uXG5cdCAqIEByZXR1cm5zIHtGdW5jdGlvbn0gY2hlY2tlciAtIHRoZSBzZXR1cCBjaGVja2VyXG5cdCAqL1xuXHRmdW5jdGlvbiBzZXR1cENoZWNrZXIoY2hlY2tlciwgcHJvcGVydGllcywgZGlzYWJsZWQpIHtcblx0ICAvKiBlc2xpbnQgY29tcGxleGl0eTpbMiwgOV0gKi9cblx0ICBpZiAoZGlzYWJsZWQpIHtcblx0ICAgIC8vIHN3YXAgb3V0IHRoZSBjaGVja2VyIGZvciBpdHMgb3duIGNvcHkgb2Ygbm9vcFxuXHQgICAgY2hlY2tlciA9IGdldE5vb3AoKTtcblx0ICAgIGNoZWNrZXIuaXNOb29wID0gdHJ1ZTtcblx0ICB9XG5cblx0ICBpZiAodHlwZW9mIGNoZWNrZXIudHlwZSA9PT0gJ3N0cmluZycpIHtcblx0ICAgIGNoZWNrZXIuc2hvcnRUeXBlID0gY2hlY2tlci50eXBlO1xuXHQgIH1cblxuXHQgIC8vIGFzc2lnbiBhbGwgcHJvcGVydGllcyBnaXZlblxuXHQgIGVhY2gocHJvcGVydGllcywgZnVuY3Rpb24gKHByb3AsIG5hbWUpIHtcblx0ICAgIHJldHVybiBjaGVja2VyW25hbWVdID0gcHJvcDtcblx0ICB9KTtcblxuXHQgIGlmICghY2hlY2tlci5kaXNwbGF5TmFtZSkge1xuXHQgICAgY2hlY2tlci5kaXNwbGF5TmFtZSA9ICdhcGlDaGVjayAnICsgdChjaGVja2VyLnNob3J0VHlwZSB8fCBjaGVja2VyLnR5cGUgfHwgY2hlY2tlci5uYW1lKSArICcgdHlwZSBjaGVja2VyJztcblx0ICB9XG5cblx0ICBpZiAoIWNoZWNrZXIubm90UmVxdWlyZWQpIHtcblx0ICAgIGNoZWNrZXIgPSBnZXRSZXF1aXJlZFZlcnNpb24oY2hlY2tlciwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIGlmICghY2hlY2tlci5ub3ROdWxsYWJsZSkge1xuXHQgICAgYWRkTnVsbGFibGUoY2hlY2tlciwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIGlmICghY2hlY2tlci5ub3RPcHRpb25hbCkge1xuXHQgICAgYWRkT3B0aW9uYWwoY2hlY2tlciwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIHJldHVybiBjaGVja2VyO1xuXHR9XG5cblx0ZnVuY3Rpb24gZ2V0UmVxdWlyZWRWZXJzaW9uKGNoZWNrZXIsIGRpc2FibGVkKSB7XG5cdCAgdmFyIHJlcXVpcmVkQ2hlY2tlciA9IGRpc2FibGVkID8gZ2V0Tm9vcCgpIDogZnVuY3Rpb24gcmVxdWlyZWRDaGVja2VyKHZhbCwgbmFtZSwgbG9jYXRpb24sIG9iaikge1xuXHQgICAgaWYgKHVuZGVmKHZhbCkgJiYgIWNoZWNrZXIuaXNPcHRpb25hbCkge1xuXHQgICAgICB2YXIgdExvY2F0aW9uID0gbG9jYXRpb24gPyAnIGluICcgKyB0KGxvY2F0aW9uKSA6ICcnO1xuXHQgICAgICB2YXIgdHlwZSA9IGdldENoZWNrZXJEaXNwbGF5KGNoZWNrZXIsIHsgc2hvcnQ6IHRydWUgfSk7XG5cdCAgICAgIHZhciBzdHJpbmdUeXBlID0gdHlwZW9mIHR5cGUgIT09ICdvYmplY3QnID8gdHlwZSA6IHN0cmluZ2lmeSh0eXBlKTtcblx0ICAgICAgcmV0dXJuIG5ldyBFcnJvcignUmVxdWlyZWQgJyArIHQobmFtZSkgKyAnIG5vdCBzcGVjaWZpZWQnICsgdExvY2F0aW9uICsgJy4gTXVzdCBiZSAnICsgdChzdHJpbmdUeXBlKSk7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICByZXR1cm4gY2hlY2tlcih2YWwsIG5hbWUsIGxvY2F0aW9uLCBvYmopO1xuXHQgICAgfVxuXHQgIH07XG5cdCAgY29weVByb3BzKGNoZWNrZXIsIHJlcXVpcmVkQ2hlY2tlcik7XG5cdCAgcmVxdWlyZWRDaGVja2VyLm9yaWdpbmFsQ2hlY2tlciA9IGNoZWNrZXI7XG5cdCAgcmV0dXJuIHJlcXVpcmVkQ2hlY2tlcjtcblx0fVxuXG5cdGZ1bmN0aW9uIGFkZE9wdGlvbmFsKGNoZWNrZXIsIGRpc2FibGVkKSB7XG5cdCAgdmFyIG9wdGlvbmFsQ2hlY2sgPSBkaXNhYmxlZCA/IGdldE5vb3AoKSA6IGZ1bmN0aW9uIG9wdGlvbmFsQ2hlY2sodmFsLCBuYW1lLCBsb2NhdGlvbiwgb2JqKSB7XG5cdCAgICBpZiAoIXVuZGVmKHZhbCkpIHtcblx0ICAgICAgcmV0dXJuIGNoZWNrZXIodmFsLCBuYW1lLCBsb2NhdGlvbiwgb2JqKTtcblx0ICAgIH1cblx0ICB9O1xuXHQgIC8vIGluaGVyaXQgYWxsIHByb3BlcnRpZXMgb24gdGhlIG9yaWdpbmFsIGNoZWNrZXJcblx0ICBjb3B5UHJvcHMoY2hlY2tlciwgb3B0aW9uYWxDaGVjayk7XG5cblx0ICBvcHRpb25hbENoZWNrLmlzT3B0aW9uYWwgPSB0cnVlO1xuXHQgIG9wdGlvbmFsQ2hlY2suZGlzcGxheU5hbWUgPSBjaGVja2VyLmRpc3BsYXlOYW1lICsgJyAob3B0aW9uYWwpJztcblx0ICBvcHRpb25hbENoZWNrLm9yaWdpbmFsQ2hlY2tlciA9IGNoZWNrZXI7XG5cblx0ICAvLyB0aGUgbWFnaWMgbGluZSB0aGF0IGFsbG93cyB5b3UgdG8gYWRkIC5vcHRpb25hbCB0byB0aGUgZW5kIG9mIHRoZSBjaGVja2Vyc1xuXHQgIGNoZWNrZXIub3B0aW9uYWwgPSBvcHRpb25hbENoZWNrO1xuXG5cdCAgZml4VHlwZShjaGVja2VyLCBjaGVja2VyLm9wdGlvbmFsKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGFkZE51bGxhYmxlKGNoZWNrZXIsIGRpc2FibGVkKSB7XG5cdCAgdmFyIG51bGxhYmxlQ2hlY2sgPSBkaXNhYmxlZCA/IGdldE5vb3AoKSA6IGZ1bmN0aW9uIG51bGxhYmxlQ2hlY2sodmFsLCBuYW1lLCBsb2NhdGlvbiwgb2JqKSB7XG5cdCAgICBpZiAodmFsICE9PSBudWxsKSB7XG5cdCAgICAgIHJldHVybiBjaGVja2VyKHZhbCwgbmFtZSwgbG9jYXRpb24sIG9iaik7XG5cdCAgICB9XG5cdCAgfTtcblx0ICAvLyBpbmhlcml0IGFsbCBwcm9wZXJ0aWVzIG9uIHRoZSBvcmlnaW5hbCBjaGVja2VyXG5cdCAgY29weVByb3BzKGNoZWNrZXIsIG51bGxhYmxlQ2hlY2spO1xuXG5cdCAgbnVsbGFibGVDaGVjay5pc051bGxhYmxlID0gdHJ1ZTtcblx0ICBudWxsYWJsZUNoZWNrLmRpc3BsYXlOYW1lID0gY2hlY2tlci5kaXNwbGF5TmFtZSArICcgKG51bGxhYmxlKSc7XG5cdCAgbnVsbGFibGVDaGVjay5vcmlnaW5hbENoZWNrZXIgPSBjaGVja2VyO1xuXG5cdCAgLy8gdGhlIG1hZ2ljIGxpbmUgdGhhdCBhbGxvd3MgeW91IHRvIGFkZCAubnVsbGFibGUgdG8gdGhlIGVuZCBvZiB0aGUgY2hlY2tlcnNcblx0ICBjaGVja2VyLm51bGxhYmxlID0gbnVsbGFibGVDaGVjaztcblxuXHQgIGZpeFR5cGUoY2hlY2tlciwgY2hlY2tlci5udWxsYWJsZSk7XG5cdCAgaWYgKCFjaGVja2VyLm5vdE9wdGlvbmFsKSB7XG5cdCAgICBhZGRPcHRpb25hbChjaGVja2VyLm51bGxhYmxlLCBkaXNhYmxlZCk7XG5cdCAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gZml4VHlwZShjaGVja2VyLCBjaGVja2VyQ29weSkge1xuXHQgIC8vIGZpeCB0eXBlLCBiZWNhdXNlIGl0J3Mgbm90IGEgc3RyYWlnaHQgY29weS4uLlxuXHQgIC8vIHRoZSByZWFzb24gaXMgd2UgbmVlZCB0byBzcGVjaWZ5IHR5cGUuX19hcGlDaGVja0RhdGEub3B0aW9uYWwgYXMgdHJ1ZSBmb3IgdGhlIHRlcnNlL3ZlcmJvc2Ugb3B0aW9uLlxuXHQgIC8vIHdlIGFsc28gd2FudCB0byBhZGQgXCIob3B0aW9uYWwpXCIgdG8gdGhlIHR5cGVzIHdpdGggYSBzdHJpbmdcblx0ICBpZiAodHlwZW9mIGNoZWNrZXJDb3B5LnR5cGUgPT09ICdvYmplY3QnKSB7XG5cdCAgICBjaGVja2VyQ29weS50eXBlID0gY29weShjaGVja2VyQ29weS50eXBlKTsgLy8gbWFrZSBvdXIgb3duIGNvcHkgb2YgdGhpc1xuXHQgIH0gZWxzZSBpZiAodHlwZW9mIGNoZWNrZXJDb3B5LnR5cGUgPT09ICdmdW5jdGlvbicpIHtcblx0ICAgICAgY2hlY2tlckNvcHkudHlwZSA9IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICByZXR1cm4gY2hlY2tlci50eXBlLmFwcGx5KGNoZWNrZXIsIGFyZ3VtZW50cyk7XG5cdCAgICAgIH07XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICBjaGVja2VyQ29weS50eXBlICs9ICcgKG9wdGlvbmFsKSc7XG5cdCAgICAgIHJldHVybjtcblx0ICAgIH1cblx0ICBjaGVja2VyQ29weS50eXBlLl9fYXBpQ2hlY2tEYXRhID0gY29weShjaGVja2VyLnR5cGUuX19hcGlDaGVja0RhdGEpIHx8IHt9OyAvLyBhbmQgdGhpc1xuXHQgIGNoZWNrZXJDb3B5LnR5cGUuX19hcGlDaGVja0RhdGEub3B0aW9uYWwgPSB0cnVlO1xuXHR9XG5cblx0Ly8gVVRJTFNcblxuXHRmdW5jdGlvbiBjb3B5UHJvcHMoc3JjLCBkZXN0KSB7XG5cdCAgZWFjaChPYmplY3Qua2V5cyhzcmMpLCBmdW5jdGlvbiAoa2V5KSB7XG5cdCAgICByZXR1cm4gZGVzdFtrZXldID0gc3JjW2tleV07XG5cdCAgfSk7XG5cdH1cblxuXHRmdW5jdGlvbiBub29wKCkge31cblxuXHRmdW5jdGlvbiBnZXROb29wKCkge1xuXHQgIC8qIGVzbGludCBuby1zaGFkb3c6MCAqL1xuXHQgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5cdCAgcmV0dXJuIGZ1bmN0aW9uIG5vb3AoKSB7fTtcblx0fVxuXG4vKioqLyB9LFxuLyogNCAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBzdHJpbmdpZnkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG5cdHZhciBfcmVxdWlyZSA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG5cblx0dmFyIHR5cGVPZiA9IF9yZXF1aXJlLnR5cGVPZjtcblx0dmFyIGVhY2ggPSBfcmVxdWlyZS5lYWNoO1xuXHR2YXIgY29weSA9IF9yZXF1aXJlLmNvcHk7XG5cdHZhciBnZXRDaGVja2VyRGlzcGxheSA9IF9yZXF1aXJlLmdldENoZWNrZXJEaXNwbGF5O1xuXHR2YXIgaXNFcnJvciA9IF9yZXF1aXJlLmlzRXJyb3I7XG5cdHZhciBhcnJheWlmeSA9IF9yZXF1aXJlLmFycmF5aWZ5O1xuXHR2YXIgbGlzdCA9IF9yZXF1aXJlLmxpc3Q7XG5cdHZhciBnZXRFcnJvciA9IF9yZXF1aXJlLmdldEVycm9yO1xuXHR2YXIgbkF0TCA9IF9yZXF1aXJlLm5BdEw7XG5cdHZhciB0ID0gX3JlcXVpcmUudDtcblx0dmFyIGNoZWNrZXJIZWxwZXJzID0gX3JlcXVpcmUuY2hlY2tlckhlbHBlcnM7XG5cdHZhciB1bmRlZiA9IF9yZXF1aXJlLnVuZGVmO1xuXHR2YXIgc2V0dXBDaGVja2VyID0gY2hlY2tlckhlbHBlcnMuc2V0dXBDaGVja2VyO1xuXG5cdHZhciBjaGVja2VycyA9IG1vZHVsZS5leHBvcnRzID0gZ2V0Q2hlY2tlcnMoKTtcblx0bW9kdWxlLmV4cG9ydHMuZ2V0Q2hlY2tlcnMgPSBnZXRDaGVja2VycztcblxuXHRmdW5jdGlvbiBnZXRDaGVja2VycyhkaXNhYmxlZCkge1xuXHQgIHJldHVybiB7XG5cdCAgICBhcnJheTogdHlwZU9mQ2hlY2tHZXR0ZXIoJ0FycmF5JyksXG5cdCAgICBib29sOiB0eXBlT2ZDaGVja0dldHRlcignQm9vbGVhbicpLFxuXHQgICAgbnVtYmVyOiB0eXBlT2ZDaGVja0dldHRlcignTnVtYmVyJyksXG5cdCAgICBzdHJpbmc6IHR5cGVPZkNoZWNrR2V0dGVyKCdTdHJpbmcnKSxcblx0ICAgIGZ1bmM6IGZ1bmNDaGVja0dldHRlcigpLFxuXHQgICAgb2JqZWN0OiBvYmplY3RDaGVja0dldHRlcigpLFxuXG5cdCAgICBlbXB0eU9iamVjdDogZW1wdHlPYmplY3RDaGVja0dldHRlcigpLFxuXG5cdCAgICBpbnN0YW5jZU9mOiBpbnN0YW5jZUNoZWNrR2V0dGVyLFxuXHQgICAgb25lT2Y6IG9uZU9mQ2hlY2tHZXR0ZXIsXG5cdCAgICBvbmVPZlR5cGU6IG9uZU9mVHlwZUNoZWNrR2V0dGVyLFxuXG5cdCAgICBhcnJheU9mOiBhcnJheU9mQ2hlY2tHZXR0ZXIsXG5cdCAgICBvYmplY3RPZjogb2JqZWN0T2ZDaGVja0dldHRlcixcblx0ICAgIHR5cGVPckFycmF5T2Y6IHR5cGVPckFycmF5T2ZDaGVja0dldHRlcixcblxuXHQgICAgcmFuZ2U6IHJhbmdlQ2hlY2tHZXR0ZXIsXG5cdCAgICBsZXNzVGhhbjogbGVzc1RoYW5DaGVja0dldHRlcixcblx0ICAgIGdyZWF0ZXJUaGFuOiBncmVhdGVyVGhhbkNoZWNrR2V0dGVyLFxuXG5cdCAgICBzaGFwZTogZ2V0U2hhcGVDaGVja0dldHRlcigpLFxuXHQgICAgYXJnczogYXJndW1lbnRzQ2hlY2tlckdldHRlcigpLFxuXG5cdCAgICBhbnk6IGFueUNoZWNrR2V0dGVyKCksXG5cdCAgICAnbnVsbCc6IG51bGxDaGVja0dldHRlcigpXG5cblx0ICB9O1xuXG5cdCAgZnVuY3Rpb24gdHlwZU9mQ2hlY2tHZXR0ZXIodHlwZSkge1xuXHQgICAgdmFyIGxUeXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiB0eXBlT2ZDaGVja2VyRGVmaW5pdGlvbih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgIGlmICh0eXBlT2YodmFsKSAhPT0gbFR5cGUpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0RXJyb3IobmFtZSwgbG9jYXRpb24sIHR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IHR5cGUgfSwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGZ1bmNDaGVja0dldHRlcigpIHtcblx0ICAgIHZhciB0eXBlID0gJ0Z1bmN0aW9uJztcblx0ICAgIHZhciBmdW5jdGlvbkNoZWNrZXIgPSBzZXR1cENoZWNrZXIoZnVuY3Rpb24gZnVuY3Rpb25DaGVja2VyRGVmaW5pdGlvbih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgIGlmICh0eXBlT2YodmFsKSAhPT0gJ2Z1bmN0aW9uJykge1xuXHQgICAgICAgIHJldHVybiBnZXRFcnJvcihuYW1lLCBsb2NhdGlvbiwgdHlwZSk7XG5cdCAgICAgIH1cblx0ICAgIH0sIHsgdHlwZTogdHlwZSB9LCBkaXNhYmxlZCk7XG5cblx0ICAgIGZ1bmN0aW9uQ2hlY2tlci53aXRoUHJvcGVydGllcyA9IGZ1bmN0aW9uIGdldFdpdGhQcm9wZXJ0aWVzQ2hlY2tlcihwcm9wZXJ0aWVzKSB7XG5cdCAgICAgIHZhciBhcGlFcnJvciA9IGNoZWNrZXJzLm9iamVjdE9mKGNoZWNrZXJzLmZ1bmMpKHByb3BlcnRpZXMsICdwcm9wZXJ0aWVzJywgJ2FwaUNoZWNrLmZ1bmMud2l0aFByb3BlcnRpZXMnKTtcblx0ICAgICAgaWYgKGlzRXJyb3IoYXBpRXJyb3IpKSB7XG5cdCAgICAgICAgdGhyb3cgYXBpRXJyb3I7XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIHNoYXBlQ2hlY2tlciA9IGNoZWNrZXJzLnNoYXBlKHByb3BlcnRpZXMsIHRydWUpO1xuXHQgICAgICBzaGFwZUNoZWNrZXIudHlwZS5fX2FwaUNoZWNrRGF0YS50eXBlID0gJ2Z1bmMud2l0aFByb3BlcnRpZXMnO1xuXG5cdCAgICAgIHJldHVybiBzZXR1cENoZWNrZXIoZnVuY3Rpb24gZnVuY3Rpb25XaXRoUHJvcGVydGllc0NoZWNrZXIodmFsLCBuYW1lLCBsb2NhdGlvbikge1xuXHQgICAgICAgIHZhciBub3RGdW5jdGlvbiA9IGNoZWNrZXJzLmZ1bmModmFsLCBuYW1lLCBsb2NhdGlvbik7XG5cdCAgICAgICAgaWYgKGlzRXJyb3Iobm90RnVuY3Rpb24pKSB7XG5cdCAgICAgICAgICByZXR1cm4gbm90RnVuY3Rpb247XG5cdCAgICAgICAgfVxuXHQgICAgICAgIHJldHVybiBzaGFwZUNoZWNrZXIodmFsLCBuYW1lLCBsb2NhdGlvbik7XG5cdCAgICAgIH0sIHsgdHlwZTogc2hhcGVDaGVja2VyLnR5cGUsIHNob3J0VHlwZTogJ2Z1bmMud2l0aFByb3BlcnRpZXMnIH0sIGRpc2FibGVkKTtcblx0ICAgIH07XG5cdCAgICByZXR1cm4gZnVuY3Rpb25DaGVja2VyO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIG9iamVjdENoZWNrR2V0dGVyKCkge1xuXHQgICAgdmFyIHR5cGUgPSAnT2JqZWN0Jztcblx0ICAgIHZhciBudWxsVHlwZSA9ICdPYmplY3QgKG51bGwgb2spJztcblx0ICAgIHZhciBvYmplY3ROdWxsT2tDaGVja2VyID0gc2V0dXBDaGVja2VyKGZ1bmN0aW9uIG9iamVjdE51bGxPa0NoZWNrZXJEZWZpbml0aW9uKHZhbCwgbmFtZSwgbG9jYXRpb24pIHtcblx0ICAgICAgaWYgKHR5cGVPZih2YWwpICE9PSAnb2JqZWN0Jykge1xuXHQgICAgICAgIHJldHVybiBnZXRFcnJvcihuYW1lLCBsb2NhdGlvbiwgbnVsbFR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IG51bGxUeXBlIH0sIGRpc2FibGVkKTtcblxuXHQgICAgdmFyIG9iamVjdENoZWNrZXIgPSBzZXR1cENoZWNrZXIoZnVuY3Rpb24gb2JqZWN0Q2hlY2tlckRlZmluaXRpb24odmFsLCBuYW1lLCBsb2NhdGlvbikge1xuXHQgICAgICBpZiAodmFsID09PSBudWxsIHx8IGlzRXJyb3Iob2JqZWN0TnVsbE9rQ2hlY2tlcih2YWwsIG5hbWUsIGxvY2F0aW9uKSkpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0RXJyb3IobmFtZSwgbG9jYXRpb24sIG9iamVjdENoZWNrZXIudHlwZSk7XG5cdCAgICAgIH1cblx0ICAgIH0sIHsgdHlwZTogdHlwZSwgbnVsbE9rOiBvYmplY3ROdWxsT2tDaGVja2VyIH0sIGRpc2FibGVkKTtcblxuXHQgICAgcmV0dXJuIG9iamVjdENoZWNrZXI7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gaW5zdGFuY2VDaGVja0dldHRlcihjbGFzc1RvQ2hlY2spIHtcblx0ICAgIHJldHVybiBzZXR1cENoZWNrZXIoZnVuY3Rpb24gaW5zdGFuY2VDaGVja2VyRGVmaW5pdGlvbih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgIGlmICghKHZhbCBpbnN0YW5jZW9mIGNsYXNzVG9DaGVjaykpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0RXJyb3IobmFtZSwgbG9jYXRpb24sIGNsYXNzVG9DaGVjay5uYW1lKTtcblx0ICAgICAgfVxuXHQgICAgfSwgeyB0eXBlOiBjbGFzc1RvQ2hlY2submFtZSB9LCBkaXNhYmxlZCk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gb25lT2ZDaGVja0dldHRlcihlbnVtcykge1xuXHQgICAgdmFyIHR5cGUgPSB7XG5cdCAgICAgIF9fYXBpQ2hlY2tEYXRhOiB7IG9wdGlvbmFsOiBmYWxzZSwgdHlwZTogJ2VudW0nIH0sXG5cdCAgICAgICdlbnVtJzogZW51bXNcblx0ICAgIH07XG5cdCAgICB2YXIgc2hvcnRUeXBlID0gJ29uZU9mWycgKyBlbnVtcy5tYXAoZnVuY3Rpb24gKGVubSkge1xuXHQgICAgICByZXR1cm4gc3RyaW5naWZ5KGVubSk7XG5cdCAgICB9KS5qb2luKCcsICcpICsgJ10nO1xuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBvbmVPZkNoZWNrZXJEZWZpbml0aW9uKHZhbCwgbmFtZSwgbG9jYXRpb24pIHtcblx0ICAgICAgaWYgKCFlbnVtcy5zb21lKGZ1bmN0aW9uIChlbm0pIHtcblx0ICAgICAgICByZXR1cm4gZW5tID09PSB2YWw7XG5cdCAgICAgIH0pKSB7XG5cdCAgICAgICAgcmV0dXJuIGdldEVycm9yKG5hbWUsIGxvY2F0aW9uLCBzaG9ydFR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IHR5cGUsIHNob3J0VHlwZTogc2hvcnRUeXBlIH0sIGRpc2FibGVkKTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBvbmVPZlR5cGVDaGVja0dldHRlcih0eXBlQ2hlY2tlcnMpIHtcblx0ICAgIHZhciBjaGVja2Vyc0Rpc3BsYXkgPSB0eXBlQ2hlY2tlcnMubWFwKGZ1bmN0aW9uIChjaGVja2VyKSB7XG5cdCAgICAgIHJldHVybiBnZXRDaGVja2VyRGlzcGxheShjaGVja2VyLCB7IHNob3J0OiB0cnVlIH0pO1xuXHQgICAgfSk7XG5cdCAgICB2YXIgc2hvcnRUeXBlID0gJ29uZU9mVHlwZVsnICsgY2hlY2tlcnNEaXNwbGF5LmpvaW4oJywgJykgKyAnXSc7XG5cdCAgICBmdW5jdGlvbiB0eXBlKG9wdGlvbnMpIHtcblx0ICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zaG9ydCkge1xuXHQgICAgICAgIHJldHVybiBzaG9ydFR5cGU7XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuIHR5cGVDaGVja2Vycy5tYXAoZnVuY3Rpb24gKGNoZWNrZXIpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0Q2hlY2tlckRpc3BsYXkoY2hlY2tlciwgb3B0aW9ucyk7XG5cdCAgICAgIH0pO1xuXHQgICAgfVxuXHQgICAgdHlwZS5fX2FwaUNoZWNrRGF0YSA9IHsgb3B0aW9uYWw6IGZhbHNlLCB0eXBlOiAnb25lT2ZUeXBlJyB9O1xuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBvbmVPZlR5cGVDaGVja2VyRGVmaW5pdGlvbih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgIGlmICghdHlwZUNoZWNrZXJzLnNvbWUoZnVuY3Rpb24gKGNoZWNrZXIpIHtcblx0ICAgICAgICByZXR1cm4gIWlzRXJyb3IoY2hlY2tlcih2YWwsIG5hbWUsIGxvY2F0aW9uKSk7XG5cdCAgICAgIH0pKSB7XG5cdCAgICAgICAgcmV0dXJuIGdldEVycm9yKG5hbWUsIGxvY2F0aW9uLCBzaG9ydFR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IHR5cGUsIHNob3J0VHlwZTogc2hvcnRUeXBlIH0sIGRpc2FibGVkKTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBhcnJheU9mQ2hlY2tHZXR0ZXIoY2hlY2tlcikge1xuXHQgICAgdmFyIHNob3J0Q2hlY2tlckRpc3BsYXkgPSBnZXRDaGVja2VyRGlzcGxheShjaGVja2VyLCB7IHNob3J0OiB0cnVlIH0pO1xuXHQgICAgdmFyIHNob3J0VHlwZSA9ICdhcnJheU9mWycgKyBzaG9ydENoZWNrZXJEaXNwbGF5ICsgJ10nO1xuXG5cdCAgICBmdW5jdGlvbiB0eXBlKG9wdGlvbnMpIHtcblx0ICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zaG9ydCkge1xuXHQgICAgICAgIHJldHVybiBzaG9ydFR5cGU7XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuIGdldENoZWNrZXJEaXNwbGF5KGNoZWNrZXIsIG9wdGlvbnMpO1xuXHQgICAgfVxuXHQgICAgdHlwZS5fX2FwaUNoZWNrRGF0YSA9IHsgb3B0aW9uYWw6IGZhbHNlLCB0eXBlOiAnYXJyYXlPZicgfTtcblxuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBhcnJheU9mQ2hlY2tlckRlZmluaXRpb24odmFsLCBuYW1lLCBsb2NhdGlvbikge1xuXHQgICAgICBpZiAoaXNFcnJvcihjaGVja2Vycy5hcnJheSh2YWwpKSB8fCAhdmFsLmV2ZXJ5KGZ1bmN0aW9uIChpdGVtKSB7XG5cdCAgICAgICAgcmV0dXJuICFpc0Vycm9yKGNoZWNrZXIoaXRlbSkpO1xuXHQgICAgICB9KSkge1xuXHQgICAgICAgIHJldHVybiBnZXRFcnJvcihuYW1lLCBsb2NhdGlvbiwgc2hvcnRUeXBlKTtcblx0ICAgICAgfVxuXHQgICAgfSwgeyB0eXBlOiB0eXBlLCBzaG9ydFR5cGU6IHNob3J0VHlwZSB9LCBkaXNhYmxlZCk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gb2JqZWN0T2ZDaGVja0dldHRlcihjaGVja2VyKSB7XG5cdCAgICB2YXIgY2hlY2tlckRpc3BsYXkgPSBnZXRDaGVja2VyRGlzcGxheShjaGVja2VyLCB7IHNob3J0OiB0cnVlIH0pO1xuXHQgICAgdmFyIHNob3J0VHlwZSA9ICdvYmplY3RPZlsnICsgY2hlY2tlckRpc3BsYXkgKyAnXSc7XG5cblx0ICAgIGZ1bmN0aW9uIHR5cGUob3B0aW9ucykge1xuXHQgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNob3J0KSB7XG5cdCAgICAgICAgcmV0dXJuIHNob3J0VHlwZTtcblx0ICAgICAgfVxuXHQgICAgICByZXR1cm4gZ2V0Q2hlY2tlckRpc3BsYXkoY2hlY2tlciwgb3B0aW9ucyk7XG5cdCAgICB9XG5cdCAgICB0eXBlLl9fYXBpQ2hlY2tEYXRhID0geyBvcHRpb25hbDogZmFsc2UsIHR5cGU6ICdvYmplY3RPZicgfTtcblxuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBvYmplY3RPZkNoZWNrZXJEZWZpbml0aW9uKHZhbCwgbmFtZSwgbG9jYXRpb24pIHtcblx0ICAgICAgdmFyIG5vdE9iamVjdCA9IGNoZWNrZXJzLm9iamVjdCh2YWwsIG5hbWUsIGxvY2F0aW9uKTtcblx0ICAgICAgaWYgKGlzRXJyb3Iobm90T2JqZWN0KSkge1xuXHQgICAgICAgIHJldHVybiBub3RPYmplY3Q7XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIGFsbFR5cGVzU3VjY2VzcyA9IGVhY2godmFsLCBmdW5jdGlvbiAoaXRlbSwga2V5KSB7XG5cdCAgICAgICAgaWYgKGlzRXJyb3IoY2hlY2tlcihpdGVtLCBrZXksIG5hbWUpKSkge1xuXHQgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXHQgICAgICAgIH1cblx0ICAgICAgfSk7XG5cdCAgICAgIGlmICghYWxsVHlwZXNTdWNjZXNzKSB7XG5cdCAgICAgICAgcmV0dXJuIGdldEVycm9yKG5hbWUsIGxvY2F0aW9uLCBzaG9ydFR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IHR5cGUsIHNob3J0VHlwZTogc2hvcnRUeXBlIH0sIGRpc2FibGVkKTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiB0eXBlT3JBcnJheU9mQ2hlY2tHZXR0ZXIoY2hlY2tlcikge1xuXHQgICAgdmFyIGNoZWNrZXJEaXNwbGF5ID0gZ2V0Q2hlY2tlckRpc3BsYXkoY2hlY2tlciwgeyBzaG9ydDogdHJ1ZSB9KTtcblx0ICAgIHZhciBzaG9ydFR5cGUgPSAndHlwZU9yQXJyYXlPZlsnICsgY2hlY2tlckRpc3BsYXkgKyAnXSc7XG5cblx0ICAgIGZ1bmN0aW9uIHR5cGUob3B0aW9ucykge1xuXHQgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNob3J0KSB7XG5cdCAgICAgICAgcmV0dXJuIHNob3J0VHlwZTtcblx0ICAgICAgfVxuXHQgICAgICByZXR1cm4gZ2V0Q2hlY2tlckRpc3BsYXkoY2hlY2tlciwgb3B0aW9ucyk7XG5cdCAgICB9XG5cblx0ICAgIHR5cGUuX19hcGlDaGVja0RhdGEgPSB7IG9wdGlvbmFsOiBmYWxzZSwgdHlwZTogJ3R5cGVPckFycmF5T2YnIH07XG5cdCAgICByZXR1cm4gc2V0dXBDaGVja2VyKGZ1bmN0aW9uIHR5cGVPckFycmF5T2ZEZWZpbml0aW9uKHZhbCwgbmFtZSwgbG9jYXRpb24sIG9iaikge1xuXHQgICAgICBpZiAoaXNFcnJvcihjaGVja2Vycy5vbmVPZlR5cGUoW2NoZWNrZXIsIGNoZWNrZXJzLmFycmF5T2YoY2hlY2tlcildKSh2YWwsIG5hbWUsIGxvY2F0aW9uLCBvYmopKSkge1xuXHQgICAgICAgIHJldHVybiBnZXRFcnJvcihuYW1lLCBsb2NhdGlvbiwgc2hvcnRUeXBlKTtcblx0ICAgICAgfVxuXHQgICAgfSwgeyB0eXBlOiB0eXBlLCBzaG9ydFR5cGU6IHNob3J0VHlwZSB9LCBkaXNhYmxlZCk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZ2V0U2hhcGVDaGVja0dldHRlcigpIHtcblx0ICAgIGZ1bmN0aW9uIHNoYXBlQ2hlY2tHZXR0ZXIoc2hhcGUsIG5vbk9iamVjdCkge1xuXHQgICAgICB2YXIgc2hhcGVUeXBlcyA9IHt9O1xuXHQgICAgICBlYWNoKHNoYXBlLCBmdW5jdGlvbiAoY2hlY2tlciwgcHJvcCkge1xuXHQgICAgICAgIHNoYXBlVHlwZXNbcHJvcF0gPSBnZXRDaGVja2VyRGlzcGxheShjaGVja2VyKTtcblx0ICAgICAgfSk7XG5cdCAgICAgIGZ1bmN0aW9uIHR5cGUoKSB7XG5cdCAgICAgICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuXHQgICAgICAgIHZhciByZXQgPSB7fTtcblx0ICAgICAgICB2YXIgdGVyc2UgPSBvcHRpb25zLnRlcnNlO1xuXHQgICAgICAgIHZhciBvYmogPSBvcHRpb25zLm9iajtcblx0ICAgICAgICB2YXIgYWRkSGVscGVycyA9IG9wdGlvbnMuYWRkSGVscGVycztcblxuXHQgICAgICAgIHZhciBwYXJlbnRSZXF1aXJlZCA9IG9wdGlvbnMucmVxdWlyZWQ7XG5cdCAgICAgICAgZWFjaChzaGFwZSwgZnVuY3Rpb24gKGNoZWNrZXIsIHByb3ApIHtcblx0ICAgICAgICAgIC8qIGVzbGludCBjb21wbGV4aXR5OlsyLCA2XSAqL1xuXHQgICAgICAgICAgdmFyIHNwZWNpZmllZCA9IG9iaiAmJiBvYmouaGFzT3duUHJvcGVydHkocHJvcCk7XG5cdCAgICAgICAgICB2YXIgcmVxdWlyZWQgPSB1bmRlZihwYXJlbnRSZXF1aXJlZCkgPyAhY2hlY2tlci5pc09wdGlvbmFsIDogcGFyZW50UmVxdWlyZWQ7XG5cdCAgICAgICAgICBpZiAoIXRlcnNlIHx8IChzcGVjaWZpZWQgfHwgIWNoZWNrZXIuaXNPcHRpb25hbCkpIHtcblx0ICAgICAgICAgICAgcmV0W3Byb3BdID0gZ2V0Q2hlY2tlckRpc3BsYXkoY2hlY2tlciwgeyB0ZXJzZTogdGVyc2UsIG9iajogb2JqICYmIG9ialtwcm9wXSwgcmVxdWlyZWQ6IHJlcXVpcmVkLCBhZGRIZWxwZXJzOiBhZGRIZWxwZXJzIH0pO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgICAgaWYgKGFkZEhlbHBlcnMpIHtcblx0ICAgICAgICAgICAgbW9kaWZ5VHlwZURpc3BsYXlUb0hlbHBPdXQocmV0LCBwcm9wLCBzcGVjaWZpZWQsIGNoZWNrZXIsIHJlcXVpcmVkKTtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9KTtcblx0ICAgICAgICByZXR1cm4gcmV0O1xuXG5cdCAgICAgICAgZnVuY3Rpb24gbW9kaWZ5VHlwZURpc3BsYXlUb0hlbHBPdXQodGhlUmV0LCBwcm9wLCBzcGVjaWZpZWQsIGNoZWNrZXIsIHJlcXVpcmVkKSB7XG5cdCAgICAgICAgICBpZiAoIXNwZWNpZmllZCAmJiByZXF1aXJlZCAmJiAhY2hlY2tlci5pc09wdGlvbmFsKSB7XG5cdCAgICAgICAgICAgIHZhciBpdGVtID0gJ0lURU0nO1xuXHQgICAgICAgICAgICBpZiAoY2hlY2tlci50eXBlICYmIGNoZWNrZXIudHlwZS5fX2FwaUNoZWNrRGF0YSkge1xuXHQgICAgICAgICAgICAgIGl0ZW0gPSBjaGVja2VyLnR5cGUuX19hcGlDaGVja0RhdGEudHlwZS50b1VwcGVyQ2FzZSgpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIGFkZEhlbHBlcignbWlzc2luZycsICdNSVNTSU5HIFRISVMgJyArIGl0ZW0sICcgPC0tIFlPVSBBUkUgTUlTU0lORyBUSElTJyk7XG5cdCAgICAgICAgICB9IGVsc2UgaWYgKHNwZWNpZmllZCkge1xuXHQgICAgICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKG9ialtwcm9wXSwgcHJvcCwgbnVsbCwgb2JqKTtcblx0ICAgICAgICAgICAgaWYgKGlzRXJyb3IoZXJyb3IpKSB7XG5cdCAgICAgICAgICAgICAgYWRkSGVscGVyKCdlcnJvcicsICdUSElTIElTIFRIRSBQUk9CTEVNOiAnICsgZXJyb3IubWVzc2FnZSwgJyA8LS0gVEhJUyBJUyBUSEUgUFJPQkxFTTogJyArIGVycm9yLm1lc3NhZ2UpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICB9XG5cblx0ICAgICAgICAgIGZ1bmN0aW9uIGFkZEhlbHBlcihwcm9wZXJ0eSwgb2JqZWN0TWVzc2FnZSwgc3RyaW5nTWVzc2FnZSkge1xuXHQgICAgICAgICAgICBpZiAodHlwZW9mIHRoZVJldFtwcm9wXSA9PT0gJ3N0cmluZycpIHtcblx0ICAgICAgICAgICAgICB0aGVSZXRbcHJvcF0gKz0gc3RyaW5nTWVzc2FnZTtcblx0ICAgICAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgICAgICB0aGVSZXRbcHJvcF0uX19hcGlDaGVja0RhdGFbcHJvcGVydHldID0gb2JqZWN0TWVzc2FnZTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXG5cdCAgICAgIHR5cGUuX19hcGlDaGVja0RhdGEgPSB7IHN0cmljdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSwgdHlwZTogJ3NoYXBlJyB9O1xuXHQgICAgICB2YXIgc2hhcGVDaGVja2VyID0gc2V0dXBDaGVja2VyKGZ1bmN0aW9uIHNoYXBlQ2hlY2tlckRlZmluaXRpb24odmFsLCBuYW1lLCBsb2NhdGlvbikge1xuXHQgICAgICAgIC8qIGVzbGludCBjb21wbGV4aXR5OlsyLCA2XSAqL1xuXHQgICAgICAgIHZhciBpc09iamVjdCA9ICFub25PYmplY3QgJiYgY2hlY2tlcnMub2JqZWN0KHZhbCwgbmFtZSwgbG9jYXRpb24pO1xuXHQgICAgICAgIGlmIChpc0Vycm9yKGlzT2JqZWN0KSkge1xuXHQgICAgICAgICAgcmV0dXJuIGlzT2JqZWN0O1xuXHQgICAgICAgIH1cblx0ICAgICAgICB2YXIgc2hhcGVQcm9wRXJyb3IgPSB1bmRlZmluZWQ7XG5cdCAgICAgICAgbG9jYXRpb24gPSBsb2NhdGlvbiA/IGxvY2F0aW9uICsgKG5hbWUgPyAnLycgOiAnJykgOiAnJztcblx0ICAgICAgICBuYW1lID0gbmFtZSB8fCAnJztcblx0ICAgICAgICBlYWNoKHNoYXBlLCBmdW5jdGlvbiAoY2hlY2tlciwgcHJvcCkge1xuXHQgICAgICAgICAgaWYgKHZhbC5oYXNPd25Qcm9wZXJ0eShwcm9wKSB8fCAhY2hlY2tlci5pc09wdGlvbmFsKSB7XG5cdCAgICAgICAgICAgIHNoYXBlUHJvcEVycm9yID0gY2hlY2tlcih2YWxbcHJvcF0sIHByb3AsICcnICsgbG9jYXRpb24gKyBuYW1lLCB2YWwpO1xuXHQgICAgICAgICAgICByZXR1cm4gIWlzRXJyb3Ioc2hhcGVQcm9wRXJyb3IpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgIH0pO1xuXHQgICAgICAgIGlmIChpc0Vycm9yKHNoYXBlUHJvcEVycm9yKSkge1xuXHQgICAgICAgICAgcmV0dXJuIHNoYXBlUHJvcEVycm9yO1xuXHQgICAgICAgIH1cblx0ICAgICAgfSwgeyB0eXBlOiB0eXBlLCBzaG9ydFR5cGU6ICdzaGFwZScgfSwgZGlzYWJsZWQpO1xuXG5cdCAgICAgIGZ1bmN0aW9uIHN0cmljdFR5cGUoKSB7XG5cdCAgICAgICAgcmV0dXJuIHR5cGUuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xuXHQgICAgICB9XG5cblx0ICAgICAgc3RyaWN0VHlwZS5fX2FwaUNoZWNrRGF0YSA9IGNvcHkoc2hhcGVDaGVja2VyLnR5cGUuX19hcGlDaGVja0RhdGEpO1xuXHQgICAgICBzdHJpY3RUeXBlLl9fYXBpQ2hlY2tEYXRhLnN0cmljdCA9IHRydWU7XG5cdCAgICAgIHNoYXBlQ2hlY2tlci5zdHJpY3QgPSBzZXR1cENoZWNrZXIoZnVuY3Rpb24gc3RyaWN0U2hhcGVDaGVja2VyRGVmaW5pdGlvbih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgICAgdmFyIHNoYXBlRXJyb3IgPSBzaGFwZUNoZWNrZXIodmFsLCBuYW1lLCBsb2NhdGlvbik7XG5cdCAgICAgICAgaWYgKGlzRXJyb3Ioc2hhcGVFcnJvcikpIHtcblx0ICAgICAgICAgIHJldHVybiBzaGFwZUVycm9yO1xuXHQgICAgICAgIH1cblx0ICAgICAgICB2YXIgYWxsb3dlZFByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhzaGFwZSk7XG5cdCAgICAgICAgdmFyIGV4dHJhUHJvcHMgPSBPYmplY3Qua2V5cyh2YWwpLmZpbHRlcihmdW5jdGlvbiAocHJvcCkge1xuXHQgICAgICAgICAgcmV0dXJuIGFsbG93ZWRQcm9wZXJ0aWVzLmluZGV4T2YocHJvcCkgPT09IC0xO1xuXHQgICAgICAgIH0pO1xuXHQgICAgICAgIGlmIChleHRyYVByb3BzLmxlbmd0aCkge1xuXHQgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihuQXRMKG5hbWUsIGxvY2F0aW9uKSArICcgY2Fubm90IGhhdmUgZXh0cmEgcHJvcGVydGllczogJyArIHQoZXh0cmFQcm9wcy5qb2luKCdgLCBgJykpICsgJy4nICsgKCdJdCBpcyBsaW1pdGVkIHRvICcgKyB0KGFsbG93ZWRQcm9wZXJ0aWVzLmpvaW4oJ2AsIGAnKSkpKTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0sIHsgdHlwZTogc3RyaWN0VHlwZSwgc2hvcnRUeXBlOiAnc3RyaWN0IHNoYXBlJyB9LCBkaXNhYmxlZCk7XG5cblx0ICAgICAgcmV0dXJuIHNoYXBlQ2hlY2tlcjtcblx0ICAgIH1cblxuXHQgICAgc2hhcGVDaGVja0dldHRlci5pZk5vdCA9IGZ1bmN0aW9uIGlmTm90KG90aGVyUHJvcHMsIHByb3BDaGVja2VyKSB7XG5cdCAgICAgIGlmICghQXJyYXkuaXNBcnJheShvdGhlclByb3BzKSkge1xuXHQgICAgICAgIG90aGVyUHJvcHMgPSBbb3RoZXJQcm9wc107XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuXHQgICAgICBpZiAob3RoZXJQcm9wcy5sZW5ndGggPT09IDEpIHtcblx0ICAgICAgICBkZXNjcmlwdGlvbiA9ICdzcGVjaWZpZWQgb25seSBpZiAnICsgb3RoZXJQcm9wc1swXSArICcgaXMgbm90IHNwZWNpZmllZCc7XG5cdCAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgZGVzY3JpcHRpb24gPSAnc3BlY2lmaWVkIG9ubHkgaWYgbm9uZSBvZiB0aGUgZm9sbG93aW5nIGFyZSBzcGVjaWZpZWQ6IFsnICsgbGlzdChvdGhlclByb3BzLCAnLCAnLCAnYW5kICcpICsgJ10nO1xuXHQgICAgICB9XG5cdCAgICAgIHZhciBzaG9ydFR5cGUgPSAnaWZOb3RbJyArIG90aGVyUHJvcHMuam9pbignLCAnKSArICddJztcblx0ICAgICAgdmFyIHR5cGUgPSBnZXRUeXBlRm9yU2hhcGVDaGlsZChwcm9wQ2hlY2tlciwgZGVzY3JpcHRpb24sIHNob3J0VHlwZSk7XG5cdCAgICAgIHJldHVybiBzZXR1cENoZWNrZXIoZnVuY3Rpb24gaWZOb3RDaGVja2VyKHByb3AsIHByb3BOYW1lLCBsb2NhdGlvbiwgb2JqKSB7XG5cdCAgICAgICAgdmFyIHByb3BFeGlzdHMgPSBvYmogJiYgb2JqLmhhc093blByb3BlcnR5KHByb3BOYW1lKTtcblx0ICAgICAgICB2YXIgb3RoZXJQcm9wc0V4aXN0ID0gb3RoZXJQcm9wcy5zb21lKGZ1bmN0aW9uIChvdGhlclByb3ApIHtcblx0ICAgICAgICAgIHJldHVybiBvYmogJiYgb2JqLmhhc093blByb3BlcnR5KG90aGVyUHJvcCk7XG5cdCAgICAgICAgfSk7XG5cdCAgICAgICAgaWYgKHByb3BFeGlzdHMgPT09IG90aGVyUHJvcHNFeGlzdCkge1xuXHQgICAgICAgICAgcmV0dXJuIGdldEVycm9yKHByb3BOYW1lLCBsb2NhdGlvbiwgdHlwZSk7XG5cdCAgICAgICAgfSBlbHNlIGlmIChwcm9wRXhpc3RzKSB7XG5cdCAgICAgICAgICByZXR1cm4gcHJvcENoZWNrZXIocHJvcCwgcHJvcE5hbWUsIGxvY2F0aW9uLCBvYmopO1xuXHQgICAgICAgIH1cblx0ICAgICAgfSwgeyBub3RSZXF1aXJlZDogdHJ1ZSwgdHlwZTogdHlwZSwgc2hvcnRUeXBlOiBzaG9ydFR5cGUgfSwgZGlzYWJsZWQpO1xuXHQgICAgfTtcblxuXHQgICAgc2hhcGVDaGVja0dldHRlci5vbmx5SWYgPSBmdW5jdGlvbiBvbmx5SWYob3RoZXJQcm9wcywgcHJvcENoZWNrZXIpIHtcblx0ICAgICAgb3RoZXJQcm9wcyA9IGFycmF5aWZ5KG90aGVyUHJvcHMpO1xuXHQgICAgICB2YXIgZGVzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG5cdCAgICAgIGlmIChvdGhlclByb3BzLmxlbmd0aCA9PT0gMSkge1xuXHQgICAgICAgIGRlc2NyaXB0aW9uID0gJ3NwZWNpZmllZCBvbmx5IGlmICcgKyBvdGhlclByb3BzWzBdICsgJyBpcyBhbHNvIHNwZWNpZmllZCc7XG5cdCAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgZGVzY3JpcHRpb24gPSAnc3BlY2lmaWVkIG9ubHkgaWYgYWxsIG9mIHRoZSBmb2xsb3dpbmcgYXJlIHNwZWNpZmllZDogWycgKyBsaXN0KG90aGVyUHJvcHMsICcsICcsICdhbmQgJykgKyAnXSc7XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIHNob3J0VHlwZSA9ICdvbmx5SWZbJyArIG90aGVyUHJvcHMuam9pbignLCAnKSArICddJztcblx0ICAgICAgdmFyIHR5cGUgPSBnZXRUeXBlRm9yU2hhcGVDaGlsZChwcm9wQ2hlY2tlciwgZGVzY3JpcHRpb24sIHNob3J0VHlwZSk7XG5cdCAgICAgIHJldHVybiBzZXR1cENoZWNrZXIoZnVuY3Rpb24gb25seUlmQ2hlY2tlckRlZmluaXRpb24ocHJvcCwgcHJvcE5hbWUsIGxvY2F0aW9uLCBvYmopIHtcblx0ICAgICAgICB2YXIgb3RoZXJzUHJlc2VudCA9IG90aGVyUHJvcHMuZXZlcnkoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdCAgICAgICAgICByZXR1cm4gb2JqLmhhc093blByb3BlcnR5KHByb3BlcnR5KTtcblx0ICAgICAgICB9KTtcblx0ICAgICAgICBpZiAoIW90aGVyc1ByZXNlbnQpIHtcblx0ICAgICAgICAgIHJldHVybiBnZXRFcnJvcihwcm9wTmFtZSwgbG9jYXRpb24sIHR5cGUpO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICByZXR1cm4gcHJvcENoZWNrZXIocHJvcCwgcHJvcE5hbWUsIGxvY2F0aW9uLCBvYmopO1xuXHQgICAgICAgIH1cblx0ICAgICAgfSwgeyB0eXBlOiB0eXBlLCBzaG9ydFR5cGU6IHNob3J0VHlwZSB9LCBkaXNhYmxlZCk7XG5cdCAgICB9O1xuXG5cdCAgICBzaGFwZUNoZWNrR2V0dGVyLnJlcXVpcmVkSWZOb3QgPSBmdW5jdGlvbiBzaGFwZVJlcXVpcmVkSWZOb3Qob3RoZXJQcm9wcywgcHJvcENoZWNrZXIpIHtcblx0ICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG90aGVyUHJvcHMpKSB7XG5cdCAgICAgICAgb3RoZXJQcm9wcyA9IFtvdGhlclByb3BzXTtcblx0ICAgICAgfVxuXHQgICAgICByZXR1cm4gZ2V0UmVxdWlyZWRJZk5vdENoZWNrZXIoZmFsc2UsIG90aGVyUHJvcHMsIHByb3BDaGVja2VyKTtcblx0ICAgIH07XG5cblx0ICAgIHNoYXBlQ2hlY2tHZXR0ZXIucmVxdWlyZWRJZk5vdC5hbGwgPSBmdW5jdGlvbiBzaGFwZVJlcXVpcmVkSWZOb3RBbGwob3RoZXJQcm9wcywgcHJvcENoZWNrZXIpIHtcblx0ICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG90aGVyUHJvcHMpKSB7XG5cdCAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXF1aXJlZElmTm90LmFsbCBtdXN0IGJlIHBhc3NlZCBhbiBhcnJheScpO1xuXHQgICAgICB9XG5cdCAgICAgIHJldHVybiBnZXRSZXF1aXJlZElmTm90Q2hlY2tlcih0cnVlLCBvdGhlclByb3BzLCBwcm9wQ2hlY2tlcik7XG5cdCAgICB9O1xuXG5cdCAgICBmdW5jdGlvbiBnZXRSZXF1aXJlZElmTm90Q2hlY2tlcihhbGwsIG90aGVyUHJvcHMsIHByb3BDaGVja2VyKSB7XG5cdCAgICAgIHZhciBwcm9wcyA9IHQob3RoZXJQcm9wcy5qb2luKCcsICcpKTtcblx0ICAgICAgdmFyIGlmUHJvcHMgPSAnaWYgJyArIChhbGwgPyAnYWxsIG9mJyA6ICdhdCBsZWFzdCBvbmUgb2YnKTtcblx0ICAgICAgdmFyIGRlc2NyaXB0aW9uID0gJ3NwZWNpZmllZCAnICsgaWZQcm9wcyArICcgdGhlc2UgYXJlIG5vdCBzcGVjaWZpZWQ6ICcgKyBwcm9wcyArICcgKG90aGVyd2lzZSBpdFxcJ3Mgb3B0aW9uYWwpJztcblx0ICAgICAgdmFyIHNob3J0VHlwZSA9ICdyZXF1aXJlZElmTm90JyArIChhbGwgPyAnLmFsbCcgOiAnJykgKyAnWycgKyBvdGhlclByb3BzLmpvaW4oJywgJykgKyAnfV0nO1xuXHQgICAgICB2YXIgdHlwZSA9IGdldFR5cGVGb3JTaGFwZUNoaWxkKHByb3BDaGVja2VyLCBkZXNjcmlwdGlvbiwgc2hvcnRUeXBlKTtcblx0ICAgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBzaGFwZVJlcXVpcmVkSWZOb3REZWZpbml0aW9uKHByb3AsIHByb3BOYW1lLCBsb2NhdGlvbiwgb2JqKSB7XG5cdCAgICAgICAgdmFyIHByb3BFeGlzdHMgPSBvYmogJiYgb2JqLmhhc093blByb3BlcnR5KHByb3BOYW1lKTtcblx0ICAgICAgICB2YXIgaXRlcmF0aW9uID0gYWxsID8gJ2V2ZXJ5JyA6ICdzb21lJztcblx0ICAgICAgICB2YXIgb3RoZXJQcm9wc0V4aXN0ID0gb3RoZXJQcm9wc1tpdGVyYXRpb25dKGZ1bmN0aW9uIChvdGhlclByb3ApIHtcblx0ICAgICAgICAgIHJldHVybiBvYmogJiYgb2JqLmhhc093blByb3BlcnR5KG90aGVyUHJvcCk7XG5cdCAgICAgICAgfSk7XG5cdCAgICAgICAgaWYgKCFvdGhlclByb3BzRXhpc3QgJiYgIXByb3BFeGlzdHMpIHtcblx0ICAgICAgICAgIHJldHVybiBnZXRFcnJvcihwcm9wTmFtZSwgbG9jYXRpb24sIHR5cGUpO1xuXHQgICAgICAgIH0gZWxzZSBpZiAocHJvcEV4aXN0cykge1xuXHQgICAgICAgICAgcmV0dXJuIHByb3BDaGVja2VyKHByb3AsIHByb3BOYW1lLCBsb2NhdGlvbiwgb2JqKTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0sIHsgdHlwZTogdHlwZSwgbm90UmVxdWlyZWQ6IHRydWUgfSwgZGlzYWJsZWQpO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gc2hhcGVDaGVja0dldHRlcjtcblxuXHQgICAgZnVuY3Rpb24gZ2V0VHlwZUZvclNoYXBlQ2hpbGQocHJvcENoZWNrZXIsIGRlc2NyaXB0aW9uLCBzaG9ydFR5cGUpIHtcblx0ICAgICAgZnVuY3Rpb24gdHlwZShvcHRpb25zKSB7XG5cdCAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zaG9ydCkge1xuXHQgICAgICAgICAgcmV0dXJuIHNob3J0VHlwZTtcblx0ICAgICAgICB9XG5cdCAgICAgICAgcmV0dXJuIGdldENoZWNrZXJEaXNwbGF5KHByb3BDaGVja2VyKTtcblx0ICAgICAgfVxuXHQgICAgICB0eXBlLl9fYXBpQ2hlY2tEYXRhID0geyBvcHRpb25hbDogZmFsc2UsIHR5cGU6ICdpZk5vdCcsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB9O1xuXHQgICAgICByZXR1cm4gdHlwZTtcblx0ICAgIH1cblx0ICB9XG5cblx0ICBmdW5jdGlvbiBhcmd1bWVudHNDaGVja2VyR2V0dGVyKCkge1xuXHQgICAgdmFyIHR5cGUgPSAnZnVuY3Rpb24gYXJndW1lbnRzJztcblx0ICAgIHJldHVybiBzZXR1cENoZWNrZXIoZnVuY3Rpb24gYXJnc0NoZWNrZXJEZWZpbml0aW9uKHZhbCwgbmFtZSwgbG9jYXRpb24pIHtcblx0ICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSB8fCBpc0Vycm9yKGNoZWNrZXJzLm9iamVjdCh2YWwpKSB8fCBpc0Vycm9yKGNoZWNrZXJzLm51bWJlcih2YWwubGVuZ3RoKSkpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0RXJyb3IobmFtZSwgbG9jYXRpb24sIHR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IHR5cGUgfSwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGFueUNoZWNrR2V0dGVyKCkge1xuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBhbnlDaGVja2VyRGVmaW5pdGlvbigpIHtcblx0ICAgICAgLy8gZG9uJ3QgZG8gYW55dGhpbmdcblx0ICAgIH0sIHsgdHlwZTogJ2FueScgfSwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIG51bGxDaGVja0dldHRlcigpIHtcblx0ICAgIHZhciB0eXBlID0gJ251bGwnO1xuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBudWxsQ2hlY2tlcih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgIGlmICh2YWwgIT09IG51bGwpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0RXJyb3IobmFtZSwgbG9jYXRpb24sIHR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IHR5cGUgfSwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIHJhbmdlQ2hlY2tHZXR0ZXIobWluLCBtYXgpIHtcblx0ICAgIHZhciB0eXBlID0gJ1JhbmdlICgnICsgbWluICsgJyAtICcgKyBtYXggKyAnKSc7XG5cdCAgICByZXR1cm4gc2V0dXBDaGVja2VyKGZ1bmN0aW9uIHJhbmdlQ2hlY2tlcih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgIGlmICh0eXBlb2YgdmFsICE9PSAnbnVtYmVyJyB8fCB2YWwgPCBtaW4gfHwgdmFsID4gbWF4KSB7XG5cdCAgICAgICAgcmV0dXJuIGdldEVycm9yKG5hbWUsIGxvY2F0aW9uLCB0eXBlKTtcblx0ICAgICAgfVxuXHQgICAgfSwgeyB0eXBlOiB0eXBlIH0sIGRpc2FibGVkKTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBsZXNzVGhhbkNoZWNrR2V0dGVyKG1pbikge1xuXHQgICAgdmFyIHR5cGUgPSAnbGVzc1RoYW5bJyArIG1pbiArICddJztcblx0ICAgIHJldHVybiBzZXR1cENoZWNrZXIoZnVuY3Rpb24gbGVzc1RoYW5DaGVja2VyKHZhbCwgbmFtZSwgbG9jYXRpb24pIHtcblx0ICAgICAgaWYgKHR5cGVvZiB2YWwgIT09ICdudW1iZXInIHx8IHZhbCA+IG1pbikge1xuXHQgICAgICAgIHJldHVybiBnZXRFcnJvcihuYW1lLCBsb2NhdGlvbiwgdHlwZSk7XG5cdCAgICAgIH1cblx0ICAgIH0sIHsgdHlwZTogdHlwZSB9LCBkaXNhYmxlZCk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZ3JlYXRlclRoYW5DaGVja0dldHRlcihtYXgpIHtcblx0ICAgIHZhciB0eXBlID0gJ2dyZWF0ZXJUaGFuWycgKyBtYXggKyAnXSc7XG5cdCAgICByZXR1cm4gc2V0dXBDaGVja2VyKGZ1bmN0aW9uIGdyZWF0ZXJUaGFuQ2hlY2tlcih2YWwsIG5hbWUsIGxvY2F0aW9uKSB7XG5cdCAgICAgIGlmICh0eXBlb2YgdmFsICE9PSAnbnVtYmVyJyB8fCB2YWwgPCBtYXgpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0RXJyb3IobmFtZSwgbG9jYXRpb24sIHR5cGUpO1xuXHQgICAgICB9XG5cdCAgICB9LCB7IHR5cGU6IHR5cGUgfSwgZGlzYWJsZWQpO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGVtcHR5T2JqZWN0Q2hlY2tHZXR0ZXIoKSB7XG5cdCAgICB2YXIgdHlwZSA9ICdlbXB0eSBvYmplY3QnO1xuXHQgICAgcmV0dXJuIHNldHVwQ2hlY2tlcihmdW5jdGlvbiBlbXB0eU9iamVjdENoZWNrZXIodmFsLCBuYW1lLCBsb2NhdGlvbikge1xuXHQgICAgICBpZiAodHlwZU9mKHZhbCkgIT09ICdvYmplY3QnIHx8IHZhbCA9PT0gbnVsbCB8fCBPYmplY3Qua2V5cyh2YWwpLmxlbmd0aCkge1xuXHQgICAgICAgIHJldHVybiBnZXRFcnJvcihuYW1lLCBsb2NhdGlvbiwgdHlwZSk7XG5cdCAgICAgIH1cblx0ICAgIH0sIHsgdHlwZTogdHlwZSB9LCBkaXNhYmxlZCk7XG5cdCAgfVxuXHR9XG5cbi8qKiovIH1cbi8qKioqKiovIF0pXG59KTtcbjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vYXBpLWNoZWNrL2Rpc3QvYXBpLWNoZWNrLmpzXG4vLyBtb2R1bGUgaWQgPSAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  44. /***/ },
  45. /* 3 */
  46. /***/ function(module, exports, __webpack_require__) {
  47. eval("// angular-formly version 6.8.2 built with ♥ by Astrism <astrisms@gmail.com>, Kent C. Dodds <kent@doddsfamily.us> (ó ì_í)=óò=(ì_í ò)\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(2), __webpack_require__(4));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"api-check\", \"angular\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ngFormly\"] = factory(require(\"api-check\"), require(\"angular\"));\n\telse\n\t\troot[\"ngFormly\"] = factory(root[\"apiCheck\"], root[\"angular\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_16__, __WEBPACK_EXTERNAL_MODULE_17__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar index = _interopRequire(__webpack_require__(1));\n\n\tmodule.exports = index;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar angular = _interopRequire(__webpack_require__(15));\n\n\tvar formlyApiCheck = _interopRequire(__webpack_require__(2));\n\n\tvar formlyErrorAndWarningsUrlPrefix = _interopRequire(__webpack_require__(3));\n\n\tvar formlyUsability = _interopRequire(__webpack_require__(4));\n\n\tvar formlyConfig = _interopRequire(__webpack_require__(5));\n\n\tvar formlyValidationMessages = _interopRequire(__webpack_require__(6));\n\n\tvar formlyUtil = _interopRequire(__webpack_require__(7));\n\n\tvar formlyWarn = _interopRequire(__webpack_require__(8));\n\n\tvar formlyCustomValidation = _interopRequire(__webpack_require__(9));\n\n\tvar formlyField = _interopRequire(__webpack_require__(10));\n\n\tvar formlyFocus = _interopRequire(__webpack_require__(11));\n\n\tvar formlyForm = _interopRequire(__webpack_require__(12));\n\n\tvar formlyNgModelAttrsManipulator = _interopRequire(__webpack_require__(13));\n\n\tvar formlyCustomTags = _interopRequire(__webpack_require__(14));\n\n\tvar ngModuleName = \"formly\";\n\n\tmodule.exports = ngModuleName;\n\n\tvar ngModule = angular.module(ngModuleName, []);\n\n\tngModule.constant(\"formlyApiCheck\", formlyApiCheck);\n\tngModule.constant(\"formlyErrorAndWarningsUrlPrefix\", formlyErrorAndWarningsUrlPrefix);\n\tngModule.constant(\"formlyVersion\", (\"6.8.2\")); // <-- webpack variable\n\n\tngModule.provider(\"formlyUsability\", formlyUsability);\n\tngModule.provider(\"formlyConfig\", formlyConfig);\n\n\tngModule.factory(\"formlyValidationMessages\", formlyValidationMessages);\n\tngModule.factory(\"formlyUtil\", formlyUtil);\n\tngModule.factory(\"formlyWarn\", formlyWarn);\n\n\tngModule.directive(\"formlyCustomValidation\", formlyCustomValidation);\n\tngModule.directive(\"formlyField\", formlyField);\n\tngModule.directive(\"formlyFocus\", formlyFocus);\n\tngModule.directive(\"formlyForm\", formlyForm);\n\n\tngModule.run(formlyNgModelAttrsManipulator);\n\tngModule.run(formlyCustomTags);\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar apiCheckFactory = _interopRequire(__webpack_require__(16));\n\n\tvar apiCheck = apiCheckFactory({\n\t output: {\n\t prefix: \"angular-formly:\",\n\t docsBaseUrl: __webpack_require__(3)\n\t }\n\t});\n\n\tfunction shapeRequiredIfNot(otherProps, propChecker) {\n\t if (!angular.isArray(otherProps)) {\n\t otherProps = [otherProps];\n\t }\n\t var type = \"specified if these are not specified: `\" + otherProps.join(\", \") + \"` (otherwise it's optional)\";\n\t function shapeRequiredIfNotDefinition(prop, propName, location, obj) {\n\t var propExists = obj && obj.hasOwnProperty(propName);\n\t var otherPropsExist = otherProps.some(function (otherProp) {\n\t return obj && obj.hasOwnProperty(otherProp);\n\t });\n\t if (!otherPropsExist && !propExists) {\n\t return apiCheck.utils.getError(propName, location, type);\n\t } else if (propExists) {\n\t return propChecker(prop, propName, location, obj);\n\t }\n\t }\n\t shapeRequiredIfNotDefinition.type = type;\n\t return apiCheck.utils.checkerHelpers.setupChecker(shapeRequiredIfNotDefinition);\n\t}\n\n\tvar formlyExpression = apiCheck.oneOfType([apiCheck.string, apiCheck.func]);\n\tvar specifyWrapperType = apiCheck.oneOfType([apiCheck.oneOf([null]), apiCheck.typeOrArrayOf(apiCheck.string)]);\n\n\tvar apiCheckProperty = apiCheck.objectOf(apiCheck.func);\n\n\tvar apiCheckInstanceProperty = apiCheck.shape.onlyIf(\"apiCheck\", apiCheck.func.withProperties({\n\t warn: apiCheck.func,\n\t \"throw\": apiCheck.func,\n\t shape: apiCheck.func\n\t}));\n\n\tvar apiCheckFunctionProperty = apiCheck.shape.onlyIf(\"apiCheck\", apiCheck.oneOf([\"throw\", \"warn\"]));\n\n\tvar formlyWrapperType = apiCheck.shape({\n\t name: shapeRequiredIfNot(\"types\", apiCheck.string).optional,\n\t template: apiCheck.shape.ifNot(\"templateUrl\", apiCheck.string).optional,\n\t templateUrl: apiCheck.shape.ifNot(\"template\", apiCheck.string).optional,\n\t types: apiCheck.typeOrArrayOf(apiCheck.string).optional,\n\t overwriteOk: apiCheck.bool.optional,\n\t validateOptions: apiCheck.func.optional,\n\t apiCheck: apiCheckProperty.optional,\n\t apiCheckInstance: apiCheckInstanceProperty.optional,\n\t apiCheckFunction: apiCheckFunctionProperty.optional,\n\t apiCheckOptions: apiCheck.object.optional\n\t}).strict;\n\n\tvar expressionProperties = apiCheck.objectOf(apiCheck.oneOfType([formlyExpression, apiCheck.shape({\n\t expression: formlyExpression,\n\t message: formlyExpression.optional\n\t}).strict]));\n\n\tvar modelChecker = apiCheck.oneOfType([apiCheck.oneOf([\"formState\"]), apiCheck.object]);\n\n\tvar fieldOptionsApiShape = {\n\t $$hashKey: apiCheck.any.optional,\n\t type: apiCheck.shape.ifNot([\"template\", \"templateUrl\"], apiCheck.string).optional,\n\t template: apiCheck.shape.ifNot([\"type\", \"templateUrl\"], apiCheck.oneOfType([apiCheck.string, apiCheck.func])).optional,\n\t templateUrl: apiCheck.shape.ifNot([\"type\", \"template\"], apiCheck.oneOfType([apiCheck.string, apiCheck.func])).optional,\n\t key: apiCheck.oneOfType([apiCheck.string, apiCheck.number]).optional,\n\t model: modelChecker.optional,\n\t className: apiCheck.string.optional,\n\t id: apiCheck.string.optional,\n\t expressionProperties: expressionProperties.optional,\n\t data: apiCheck.object.optional,\n\t templateOptions: apiCheck.object.optional,\n\t wrapper: specifyWrapperType.optional,\n\t modelOptions: apiCheck.shape({\n\t updateOn: apiCheck.string.optional,\n\t debounce: apiCheck.oneOfType([apiCheck.objectOf(apiCheck.number), apiCheck.number]).optional,\n\t allowInvalid: apiCheck.bool.optional,\n\t getterSetter: apiCheck.bool.optional,\n\t timezone: apiCheck.string.optional\n\t }).optional,\n\t watcher: apiCheck.typeOrArrayOf(apiCheck.shape({\n\t expression: formlyExpression.optional,\n\t listener: formlyExpression\n\t })).optional,\n\t validators: apiCheck.objectOf(apiCheck.oneOfType([formlyExpression, apiCheck.shape({\n\t expression: formlyExpression,\n\t message: formlyExpression.optional\n\t }).strict])).optional,\n\t noFormControl: apiCheck.bool.optional,\n\t hide: apiCheck.bool.optional,\n\t hideExpression: formlyExpression.optional,\n\t ngModelAttrs: apiCheck.objectOf(apiCheck.shape({\n\t expression: apiCheck.shape.ifNot([\"value\", \"attribute\", \"bound\"], apiCheck.any).optional,\n\t value: apiCheck.shape.ifNot(\"expression\", apiCheck.any).optional,\n\t attribute: apiCheck.shape.ifNot(\"expression\", apiCheck.any).optional,\n\t bound: apiCheck.shape.ifNot(\"expression\", apiCheck.any).optional\n\t }).strict).optional,\n\t elementAttributes: apiCheck.objectOf(apiCheck.string).optional,\n\t optionsTypes: apiCheck.typeOrArrayOf(apiCheck.string).optional,\n\t link: apiCheck.func.optional,\n\t controller: apiCheck.oneOfType([apiCheck.string, apiCheck.func, apiCheck.array]).optional,\n\t validation: apiCheck.shape({\n\t show: apiCheck.oneOfType([apiCheck.bool, apiCheck.oneOf([null])]).optional,\n\t messages: apiCheck.objectOf(formlyExpression).optional,\n\t errorExistsAndShouldBeVisible: apiCheck.bool.optional\n\t }).optional,\n\t formControl: apiCheck.object.optional,\n\t value: apiCheck.func.optional,\n\t runExpressions: apiCheck.func.optional,\n\t resetModel: apiCheck.func.optional,\n\t updateInitialValue: apiCheck.func.optional,\n\t initialValue: apiCheck.any.optional,\n\t defaultValue: apiCheck.any.optional\n\t};\n\n\tvar formlyFieldOptions = apiCheck.shape(fieldOptionsApiShape).strict;\n\n\tvar formOptionsApi = apiCheck.shape({\n\t formState: apiCheck.object.optional,\n\t resetModel: apiCheck.func.optional,\n\t updateInitialValue: apiCheck.func.optional,\n\t removeChromeAutoComplete: apiCheck.bool.optional\n\t}).strict;\n\n\tvar fieldGroup = apiCheck.shape({\n\t $$hashKey: apiCheck.any.optional,\n\t // danger. Nested field groups wont get api-checked...\n\t fieldGroup: apiCheck.arrayOf(apiCheck.oneOfType([formlyFieldOptions, apiCheck.object])),\n\t className: apiCheck.string.optional,\n\t options: formOptionsApi.optional,\n\t hide: apiCheck.bool.optional,\n\t hideExpression: formlyExpression.optional,\n\t model: modelChecker.optional,\n\t form: apiCheck.object.optional,\n\t elementAttributes: apiCheck.objectOf(apiCheck.string).optional\n\t}).strict;\n\n\tvar typeOptionsDefaultOptions = angular.copy(fieldOptionsApiShape);\n\ttypeOptionsDefaultOptions.key = apiCheck.string.optional;\n\n\tvar formlyTypeOptions = apiCheck.shape({\n\t name: apiCheck.string,\n\t template: apiCheck.shape.ifNot(\"templateUrl\", apiCheck.oneOfType([apiCheck.string, apiCheck.func])).optional,\n\t templateUrl: apiCheck.shape.ifNot(\"template\", apiCheck.oneOfType([apiCheck.string, apiCheck.func])).optional,\n\t controller: apiCheck.oneOfType([apiCheck.func, apiCheck.string, apiCheck.array]).optional,\n\t link: apiCheck.func.optional,\n\t defaultOptions: apiCheck.oneOfType([apiCheck.func, apiCheck.shape(typeOptionsDefaultOptions)]).optional,\n\t \"extends\": apiCheck.string.optional,\n\t wrapper: specifyWrapperType.optional,\n\t data: apiCheck.object.optional,\n\t validateOptions: apiCheck.func.optional,\n\t apiCheck: apiCheckProperty.optional,\n\t apiCheckInstance: apiCheckInstanceProperty.optional,\n\t apiCheckFunction: apiCheckFunctionProperty.optional,\n\t apiCheckOptions: apiCheck.object.optional,\n\t overwriteOk: apiCheck.bool.optional\n\t}).strict;\n\tangular.extend(apiCheck, {\n\t formlyTypeOptions: formlyTypeOptions, formlyFieldOptions: formlyFieldOptions, formlyExpression: formlyExpression, formlyWrapperType: formlyWrapperType, fieldGroup: fieldGroup, formOptionsApi: formOptionsApi\n\t});\n\n\tmodule.exports = apiCheck;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tmodule.exports = \"https://github.com/formly-js/angular-formly/blob/\" + (\"6.8.2\") + \"/other/ERRORS_AND_WARNINGS.md#\";\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar angular = _interopRequire(__webpack_require__(15));\n\n\tmodule.exports = formlyUsability;\n\n\t// @ngInject\n\tfunction formlyUsability(formlyApiCheck, formlyErrorAndWarningsUrlPrefix) {\n\t var _this = this;\n\n\t angular.extend(this, {\n\t getFormlyError: getFormlyError,\n\t getFieldError: getFieldError,\n\t checkWrapper: checkWrapper,\n\t checkWrapperTemplate: checkWrapperTemplate,\n\t $get: function () {\n\t return _this;\n\t }\n\t });\n\n\t function getFieldError(errorInfoSlug, message, field) {\n\t if (arguments.length < 3) {\n\t field = message;\n\t message = errorInfoSlug;\n\t errorInfoSlug = null;\n\t }\n\t return new Error(getErrorMessage(errorInfoSlug, message) + (\" Field definition: \" + angular.toJson(field)));\n\t }\n\n\t function getFormlyError(errorInfoSlug, message) {\n\t if (!message) {\n\t message = errorInfoSlug;\n\t errorInfoSlug = null;\n\t }\n\t return new Error(getErrorMessage(errorInfoSlug, message));\n\t }\n\n\t function getErrorMessage(errorInfoSlug, message) {\n\t var url = \"\";\n\t if (errorInfoSlug !== null) {\n\t url = \"\" + formlyErrorAndWarningsUrlPrefix + \"\" + errorInfoSlug;\n\t }\n\t return \"Formly Error: \" + message + \". \" + url;\n\t }\n\n\t function checkWrapper(wrapper) {\n\t formlyApiCheck[\"throw\"](formlyApiCheck.formlyWrapperType, wrapper, {\n\t prefix: \"formlyConfig.setWrapper\",\n\t urlSuffix: \"setwrapper-validation-failed\"\n\t });\n\t }\n\n\t function checkWrapperTemplate(template, additionalInfo) {\n\t var formlyTransclude = \"<formly-transclude></formly-transclude>\";\n\t if (template.indexOf(formlyTransclude) === -1) {\n\t throw getFormlyError(\"Template wrapper templates must use \\\"\" + formlyTransclude + \"\\\" somewhere in them. \" + (\"This one does not have \\\"<formly-transclude></formly-transclude>\\\" in it: \" + template) + \"\\n\" + (\"Additional information: \" + JSON.stringify(additionalInfo)));\n\t }\n\t }\n\t}\n\tformlyUsability.$inject = [\"formlyApiCheck\", \"formlyErrorAndWarningsUrlPrefix\"];\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar angular = _interopRequire(__webpack_require__(15));\n\n\tvar utils = _interopRequire(__webpack_require__(18));\n\n\tmodule.exports = formlyConfig;\n\n\t// @ngInject\n\tfunction formlyConfig(formlyUsabilityProvider, formlyApiCheck) {\n\t var _this2 = this;\n\n\t var typeMap = {};\n\t var templateWrappersMap = {};\n\t var defaultWrapperName = \"default\";\n\t var _this = this;\n\t var getError = formlyUsabilityProvider.getFormlyError;\n\n\t angular.extend(this, {\n\t setType: setType,\n\t getType: getType,\n\t setWrapper: setWrapper,\n\t getWrapper: getWrapper,\n\t getWrapperByType: getWrapperByType,\n\t removeWrapperByName: removeWrapperByName,\n\t removeWrappersForType: removeWrappersForType,\n\t disableWarnings: false,\n\t extras: {\n\t disableNgModelAttrsManipulator: false,\n\t ngModelAttrsManipulatorPreferUnbound: false,\n\t removeChromeAutoComplete: false,\n\t defaultHideDirective: \"ng-if\",\n\t getFieldId: null\n\t },\n\t templateManipulators: {\n\t preWrapper: [],\n\t postWrapper: []\n\t },\n\t $get: function () {\n\t return _this2;\n\t }\n\t });\n\n\t function setType(options) {\n\t if (angular.isArray(options)) {\n\t angular.forEach(options, setType);\n\t } else if (angular.isObject(options)) {\n\t checkType(options);\n\t if (options[\"extends\"]) {\n\t extendTypeOptions(options);\n\t }\n\t typeMap[options.name] = options;\n\t } else {\n\t throw getError(\"You must provide an object or array for setType. You provided: \" + JSON.stringify(arguments));\n\t }\n\t }\n\n\t function checkType(options) {\n\t formlyApiCheck[\"throw\"](formlyApiCheck.formlyTypeOptions, options, {\n\t prefix: \"formlyConfig.setType\",\n\t url: \"settype-validation-failed\"\n\t });\n\t if (!options.overwriteOk) {\n\t checkOverwrite(options.name, typeMap, options, \"types\");\n\t } else {\n\t options.overwriteOk = undefined;\n\t }\n\t }\n\n\t function extendTypeOptions(options) {\n\t var extendsType = getType(options[\"extends\"], true, options);\n\t extendTypeControllerFunction(options, extendsType);\n\t extendTypeLinkFunction(options, extendsType);\n\t extendTypeValidateOptionsFunction(options, extendsType);\n\t extendTypeDefaultOptions(options, extendsType);\n\t utils.reverseDeepMerge(options, extendsType);\n\t extendTemplate(options, extendsType);\n\t }\n\n\t function extendTemplate(options, extendsType) {\n\t if (options.template && extendsType.templateUrl) {\n\t delete options.templateUrl;\n\t } else if (options.templateUrl && extendsType.template) {\n\t delete options.template;\n\t }\n\t }\n\n\t function extendTypeControllerFunction(options, extendsType) {\n\t var extendsCtrl = extendsType.controller;\n\t if (!angular.isDefined(extendsCtrl)) {\n\t return;\n\t }\n\t var optionsCtrl = options.controller;\n\t if (angular.isDefined(optionsCtrl)) {\n\t options.controller = function ($scope, $controller) {\n\t $controller(extendsCtrl, { $scope: $scope });\n\t $controller(optionsCtrl, { $scope: $scope });\n\t };\n\t options.controller.$inject = [\"$scope\", \"$controller\"];\n\t } else {\n\t options.controller = extendsCtrl;\n\t }\n\t }\n\n\t function extendTypeLinkFunction(options, extendsType) {\n\t var extendsFn = extendsType.link;\n\t if (!angular.isDefined(extendsFn)) {\n\t return;\n\t }\n\t var optionsFn = options.link;\n\t if (angular.isDefined(optionsFn)) {\n\t options.link = function () {\n\t extendsFn.apply(undefined, arguments);\n\t optionsFn.apply(undefined, arguments);\n\t };\n\t } else {\n\t options.link = extendsFn;\n\t }\n\t }\n\n\t function extendTypeValidateOptionsFunction(options, extendsType) {\n\t var extendsFn = extendsType.validateOptions;\n\t if (!angular.isDefined(extendsFn)) {\n\t return;\n\t }\n\t var optionsFn = options.validateOptions;\n\t var originalDefaultOptions = options.defaultOptions;\n\t if (angular.isDefined(optionsFn)) {\n\t options.validateOptions = function (options) {\n\t optionsFn(options);\n\t var mergedOptions = angular.copy(options);\n\t var defaultOptions = originalDefaultOptions;\n\t if (defaultOptions) {\n\t if (angular.isFunction(defaultOptions)) {\n\t defaultOptions = defaultOptions(mergedOptions);\n\t }\n\t utils.reverseDeepMerge(mergedOptions, defaultOptions);\n\t }\n\t extendsFn(mergedOptions);\n\t };\n\t } else {\n\t options.validateOptions = extendsFn;\n\t }\n\t }\n\n\t function extendTypeDefaultOptions(options, extendsType) {\n\t var extendsDO = extendsType.defaultOptions;\n\t if (!angular.isDefined(extendsDO)) {\n\t return;\n\t }\n\t var optionsDO = options.defaultOptions;\n\t var optionsDOIsFn = angular.isFunction(optionsDO);\n\t var extendsDOIsFn = angular.isFunction(extendsDO);\n\t if (extendsDOIsFn) {\n\t options.defaultOptions = function defaultOptions(options) {\n\t var extendsDefaultOptions = extendsDO(options);\n\t var mergedDefaultOptions = {};\n\t utils.reverseDeepMerge(mergedDefaultOptions, options, extendsDefaultOptions);\n\t var extenderOptionsDefaultOptions = optionsDO;\n\t if (optionsDOIsFn) {\n\t extenderOptionsDefaultOptions = extenderOptionsDefaultOptions(mergedDefaultOptions);\n\t }\n\t utils.reverseDeepMerge(extendsDefaultOptions, extenderOptionsDefaultOptions);\n\t return extendsDefaultOptions;\n\t };\n\t } else if (optionsDOIsFn) {\n\t options.defaultOptions = function defaultOptions(options) {\n\t var newDefaultOptions = {};\n\t utils.reverseDeepMerge(newDefaultOptions, options, extendsDO);\n\t return optionsDO(newDefaultOptions);\n\t };\n\t }\n\t }\n\n\t function getType(name, throwError, errorContext) {\n\t if (!name) {\n\t return undefined;\n\t }\n\t var type = typeMap[name];\n\t if (!type && throwError === true) {\n\t throw getError(\"There is no type by the name of \\\"\" + name + \"\\\": \" + JSON.stringify(errorContext));\n\t } else {\n\t return type;\n\t }\n\t }\n\n\t function setWrapper(_x, _x2) {\n\t var _again = true;\n\n\t _function: while (_again) {\n\t _again = false;\n\t var options = _x,\n\t name = _x2;\n\n\t if (angular.isArray(options)) {\n\t return options.map(function (wrapperOptions) {\n\t return setWrapper(wrapperOptions);\n\t });\n\t } else if (angular.isObject(options)) {\n\t options.types = getOptionsTypes(options);\n\t options.name = getOptionsName(options, name);\n\t checkWrapperAPI(options);\n\t templateWrappersMap[options.name] = options;\n\t return options;\n\t } else if (angular.isString(options)) {\n\t _x = {\n\t template: options,\n\t name: name\n\t };\n\t _again = true;\n\t continue _function;\n\t }\n\t }\n\t }\n\n\t function getOptionsTypes(options) {\n\t if (angular.isString(options.types)) {\n\t return [options.types];\n\t }\n\t if (!angular.isDefined(options.types)) {\n\t return [];\n\t } else {\n\t return options.types;\n\t }\n\t }\n\n\t function getOptionsName(options, name) {\n\t return options.name || name || options.types.join(\" \") || defaultWrapperName;\n\t }\n\n\t function checkWrapperAPI(options) {\n\t formlyUsabilityProvider.checkWrapper(options);\n\t if (options.template) {\n\t formlyUsabilityProvider.checkWrapperTemplate(options.template, options);\n\t }\n\t if (!options.overwriteOk) {\n\t checkOverwrite(options.name, templateWrappersMap, options, \"templateWrappers\");\n\t } else {\n\t delete options.overwriteOk;\n\t }\n\t checkWrapperTypes(options);\n\t }\n\n\t function checkWrapperTypes(options) {\n\t var shouldThrow = !angular.isArray(options.types) || !options.types.every(angular.isString);\n\t if (shouldThrow) {\n\t throw getError(\"Attempted to create a template wrapper with types that is not a string or an array of strings\");\n\t }\n\t }\n\n\t function checkOverwrite(property, object, newValue, objectName) {\n\t if (object.hasOwnProperty(property)) {\n\t warn([\"Attempting to overwrite \" + property + \" on \" + objectName + \" which is currently\", \"\" + JSON.stringify(object[property]) + \" with \" + JSON.stringify(newValue), \"To supress this warning, specify the property \\\"overwriteOk: true\\\"\"].join(\" \"));\n\t }\n\t }\n\n\t function getWrapper(name) {\n\t return templateWrappersMap[name || defaultWrapperName];\n\t }\n\n\t function getWrapperByType(type) {\n\t /* jshint maxcomplexity:6 */\n\t var wrappers = [];\n\t for (var name in templateWrappersMap) {\n\t if (templateWrappersMap.hasOwnProperty(name)) {\n\t if (templateWrappersMap[name].types && templateWrappersMap[name].types.indexOf(type) !== -1) {\n\t wrappers.push(templateWrappersMap[name]);\n\t }\n\t }\n\t }\n\t return wrappers;\n\t }\n\n\t function removeWrapperByName(name) {\n\t var wrapper = templateWrappersMap[name];\n\t delete templateWrappersMap[name];\n\t return wrapper;\n\t }\n\n\t function removeWrappersForType(type) {\n\t var wrappers = getWrapperByType(type);\n\t if (!wrappers) {\n\t return;\n\t }\n\t if (!angular.isArray(wrappers)) {\n\t return removeWrapperByName(wrappers.name);\n\t } else {\n\t wrappers.forEach(function (wrapper) {\n\t return removeWrapperByName(wrapper.name);\n\t });\n\t return wrappers;\n\t }\n\t }\n\n\t function warn() {\n\t if (!_this.disableWarnings) {\n\t console.warn.apply(console, arguments);\n\t }\n\t }\n\t}\n\tformlyConfig.$inject = [\"formlyUsabilityProvider\", \"formlyApiCheck\"];\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tmodule.exports = formlyValidationMessages;\n\n\t// @ngInject\n\tfunction formlyValidationMessages() {\n\n\t var validationMessages = {\n\t addTemplateOptionValueMessage: addTemplateOptionValueMessage,\n\t addStringMessage: addStringMessage,\n\t messages: {}\n\t };\n\n\t return validationMessages;\n\n\t function addTemplateOptionValueMessage(name, prop, prefix, suffix, alternate) {\n\t validationMessages.messages[name] = templateOptionValue(prop, prefix, suffix, alternate);\n\t }\n\n\t function addStringMessage(name, string) {\n\t validationMessages.messages[name] = function () {\n\t return string;\n\t };\n\t }\n\n\t function templateOptionValue(prop, prefix, suffix, alternate) {\n\t return function getValidationMessage(viewValue, modelValue, scope) {\n\t if (scope.options.templateOptions[prop]) {\n\t return \"\" + prefix + \" \" + scope.options.templateOptions[prop] + \" \" + suffix;\n\t } else {\n\t return alternate;\n\t }\n\t };\n\t }\n\t}\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar utils = _interopRequire(__webpack_require__(18));\n\n\tmodule.exports = formlyUtil;\n\n\t// @ngInject\n\tfunction formlyUtil() {\n\t return utils;\n\t}\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _toConsumableArray = function (arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } };\n\n\tmodule.exports = formlyWarn;\n\n\t// @ngInject\n\tfunction formlyWarn(formlyConfig, formlyErrorAndWarningsUrlPrefix, $log) {\n\t return function warn() {\n\t if (!formlyConfig.disableWarnings) {\n\t var args = Array.prototype.slice.call(arguments);\n\t var warnInfoSlug = args.shift();\n\t args.unshift(\"Formly Warning:\");\n\t args.push(\"\" + formlyErrorAndWarningsUrlPrefix + \"\" + warnInfoSlug);\n\t $log.warn.apply($log, _toConsumableArray(args));\n\t }\n\t };\n\t}\n\tformlyWarn.$inject = [\"formlyConfig\", \"formlyErrorAndWarningsUrlPrefix\", \"$log\"];\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tmodule.exports = formlyCustomValidation;\n\n\t// @ngInject\n\tfunction formlyCustomValidation(formlyUtil, $q) {\n\t return {\n\t restrict: \"A\",\n\t require: \"ngModel\",\n\t link: function formlyCustomValidationLink(scope, el, attrs, ctrl) {\n\t var opts = scope.options;\n\t if (opts.validators) {\n\t checkValidators(opts.validators);\n\t }\n\t opts.validation.messages = opts.validation.messages || {};\n\t angular.forEach(opts.validation.messages, function (message, key) {\n\t opts.validation.messages[key] = function () {\n\t return formlyUtil.formlyEval(scope, message, ctrl.$modelValue, ctrl.$viewValue);\n\t };\n\t });\n\n\t var useNewValidatorsApi = ctrl.hasOwnProperty(\"$validators\") && !attrs.hasOwnProperty(\"useParsers\");\n\t angular.forEach(opts.validators, function addValidatorToPipeline(validator, name) {\n\t var message = validator.message;\n\t if (message) {\n\t opts.validation.messages[name] = function () {\n\t return formlyUtil.formlyEval(scope, message, ctrl.$modelValue, ctrl.$viewValue);\n\t };\n\t }\n\t validator = angular.isObject(validator) ? validator.expression : validator;\n\t var isPossiblyAsync = !angular.isString(validator);\n\t if (useNewValidatorsApi) {\n\t setupWithValidators();\n\t } else {\n\t setupWithParsers();\n\t }\n\n\t function setupWithValidators() {\n\t var validatorCollection = isPossiblyAsync ? \"$asyncValidators\" : \"$validators\";\n\t ctrl[validatorCollection][name] = function evalValidity(modelValue, viewValue) {\n\t var value = formlyUtil.formlyEval(scope, validator, modelValue, viewValue);\n\t if (isPossiblyAsync) {\n\t return isPromiseLike(value) ? value : value ? $q.when(value) : $q.reject(value);\n\t } else {\n\t return value;\n\t }\n\t };\n\t }\n\n\t function setupWithParsers() {\n\t var inFlightValidator = undefined;\n\t ctrl.$parsers.unshift(function evalValidityOfParser(viewValue) {\n\t var isValid = formlyUtil.formlyEval(scope, validator, ctrl.$modelValue, viewValue);\n\t if (isPromiseLike(isValid)) {\n\t ctrl.$pending = ctrl.$pending || {};\n\t ctrl.$pending[name] = true;\n\t inFlightValidator = isValid;\n\t isValid.then(function () {\n\t if (inFlightValidator === isValid) {\n\t ctrl.$setValidity(name, true);\n\t }\n\t })[\"catch\"](function () {\n\t if (inFlightValidator === isValid) {\n\t ctrl.$setValidity(name, false);\n\t }\n\t })[\"finally\"](function () {\n\t if (Object.keys(ctrl.$pending).length === 1) {\n\t delete ctrl.$pending;\n\t } else {\n\t delete ctrl.$pending[name];\n\t }\n\t });\n\t } else {\n\t ctrl.$setValidity(name, isValid);\n\t }\n\t return viewValue;\n\t });\n\t }\n\t });\n\t }\n\t };\n\n\t function isPromiseLike(obj) {\n\t return obj && angular.isFunction(obj.then);\n\t }\n\n\t function checkValidators(validators) {\n\t var allowedProperties = [\"expression\", \"message\"];\n\t var validatorsWithExtraProps = {};\n\t angular.forEach(validators, function (validator, name) {\n\t if (angular.isString(validator)) {\n\t return;\n\t }\n\t var extraProps = [];\n\t angular.forEach(validator, function (v, key) {\n\t if (allowedProperties.indexOf(key) === -1) {\n\t extraProps.push(key);\n\t }\n\t });\n\t if (extraProps.length) {\n\t validatorsWithExtraProps[name] = extraProps;\n\t }\n\t });\n\t if (Object.keys(validatorsWithExtraProps).length) {\n\t throw new Error([\"Validators are only allowed to be functions or objects that have \" + allowedProperties.join(\", \") + \".\", \"You provided some extra properties: \" + JSON.stringify(validatorsWithExtraProps)].join(\" \"));\n\t }\n\t }\n\t}\n\tformlyCustomValidation.$inject = [\"formlyUtil\", \"$q\"];\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar angular = _interopRequire(__webpack_require__(15));\n\n\tmodule.exports = formlyField;\n\n\t/**\n\t * @ngdoc directive\n\t * @name formlyField\n\t * @restrict AE\n\t */\n\t// @ngInject\n\tfunction formlyField($http, $q, $compile, $templateCache, formlyConfig, formlyValidationMessages, formlyApiCheck, formlyUtil, formlyUsability, formlyWarn) {\n\t var arrayify = formlyUtil.arrayify;\n\n\t FormlyFieldController.$inject = [\"$scope\", \"$timeout\", \"$parse\", \"$controller\"];\n\t return {\n\t restrict: \"AE\",\n\t transclude: true,\n\t scope: {\n\t options: \"=\",\n\t model: \"=\",\n\t formId: \"@\", // TODO remove formId in a breaking release\n\t index: \"=?\",\n\t fields: \"=?\",\n\t formState: \"=?\",\n\t form: \"=?\" // TODO require form in a breaking release\n\t },\n\t controller: FormlyFieldController,\n\t link: fieldLink\n\t };\n\n\t // @ngInject\n\t function FormlyFieldController($scope, $timeout, $parse, $controller) {\n\t /* jshint maxstatements:31 */\n\t if ($scope.options.fieldGroup) {\n\t setupFieldGroup();\n\t return;\n\t }\n\n\t var fieldType = getFieldType($scope.options);\n\t simplifyLife($scope.options);\n\t mergeFieldOptionsWithTypeDefaults($scope.options, fieldType);\n\t extendOptionsWithDefaults($scope.options, $scope.index);\n\t checkApi($scope.options);\n\t // set field id to link labels and fields\n\n\t // initalization\n\t setFieldId();\n\t setDefaultValue();\n\t setInitialValue();\n\t runExpressions();\n\t addModelWatcher($scope, $scope.options);\n\t addValidationMessages($scope.options);\n\t invokeControllers($scope, $scope.options, fieldType);\n\n\t // function definitions\n\t function runExpressions() {\n\t // must run on next tick to make sure that the current value is correct.\n\t $timeout(function runExpressionsOnNextTick() {\n\t var field = $scope.options;\n\t var currentValue = valueGetterSetter();\n\t angular.forEach(field.expressionProperties, function runExpression(expression, prop) {\n\t var setter = $parse(prop).assign;\n\t var promise = $q.when(formlyUtil.formlyEval($scope, expression, currentValue));\n\t promise.then(function setFieldValue(value) {\n\t setter(field, value);\n\t });\n\t });\n\t });\n\t }\n\n\t function valueGetterSetter(newVal) {\n\t if (!$scope.model || !$scope.options.key) {\n\t return;\n\t }\n\t if (angular.isDefined(newVal)) {\n\t $scope.model[$scope.options.key] = newVal;\n\t }\n\t return $scope.model[$scope.options.key];\n\t }\n\n\t function simplifyLife(options) {\n\t // add a few empty objects (if they don't already exist) so you don't have to undefined check everywhere\n\t formlyUtil.reverseDeepMerge(options, {\n\t data: {},\n\t templateOptions: {},\n\t validation: {}\n\t });\n\t // create $scope.to so template authors can reference to instead of $scope.options.templateOptions\n\t $scope.to = $scope.options.templateOptions;\n\t }\n\n\t function setFieldId() {\n\t if (angular.isFunction(formlyConfig.extras.getFieldId)) {\n\t $scope.id = formlyConfig.extras.getFieldId($scope.options, $scope.model, $scope);\n\t } else {\n\t var formName = $scope.form && $scope.form.$name || $scope.formId;\n\t $scope.id = formlyUtil.getFieldId(formName, $scope.options, $scope.index);\n\t }\n\t $scope.options.id = $scope.id;\n\t }\n\n\t function setDefaultValue() {\n\t if (angular.isDefined($scope.options.defaultValue) && !angular.isDefined($scope.model[$scope.options.key])) {\n\t $scope.model[$scope.options.key] = $scope.options.defaultValue;\n\t }\n\t }\n\n\t function setInitialValue() {\n\t $scope.options.initialValue = $scope.model && $scope.model[$scope.options.key];\n\t }\n\n\t function mergeFieldOptionsWithTypeDefaults(options, type) {\n\t if (type) {\n\t mergeOptions(options, type.defaultOptions);\n\t }\n\t var properOrder = arrayify(options.optionsTypes).reverse(); // so the right things are overridden\n\t angular.forEach(properOrder, function (typeName) {\n\t mergeOptions(options, formlyConfig.getType(typeName, true, options).defaultOptions);\n\t });\n\t }\n\n\t function mergeOptions(options, extraOptions) {\n\t if (extraOptions) {\n\t if (angular.isFunction(extraOptions)) {\n\t extraOptions = extraOptions(options);\n\t }\n\t formlyUtil.reverseDeepMerge(options, extraOptions);\n\t }\n\t }\n\n\t function extendOptionsWithDefaults(options, index) {\n\t var key = options.key || index || 0;\n\t angular.extend(options, {\n\t // attach the key in case the formly-field directive is used directly\n\t key: key,\n\t value: valueGetterSetter,\n\t runExpressions: runExpressions,\n\t resetModel: resetModel,\n\t updateInitialValue: updateInitialValue\n\t });\n\t }\n\n\t // initialization functions\n\t function addModelWatcher(scope, options) {\n\t if (options.model) {\n\t scope.$watch(\"options.model\", runExpressions, true);\n\t }\n\t }\n\n\t function resetModel() {\n\t $scope.model[$scope.options.key] = $scope.options.initialValue;\n\t if ($scope.options.formControl) {\n\t $scope.options.formControl.$setViewValue($scope.model[$scope.options.key]);\n\t $scope.options.formControl.$render();\n\t $scope.options.formControl.$setUntouched();\n\t $scope.options.formControl.$setPristine();\n\t }\n\t }\n\n\t function updateInitialValue() {\n\t $scope.options.initialValue = $scope.model[$scope.options.key];\n\t }\n\n\t function addValidationMessages(options) {\n\t options.validation.messages = options.validation.messages || {};\n\t angular.forEach(formlyValidationMessages.messages, function createFunctionForMessage(expression, name) {\n\t if (!options.validation.messages[name]) {\n\t options.validation.messages[name] = function evaluateMessage(viewValue, modelValue, scope) {\n\t return formlyUtil.formlyEval(scope, expression, modelValue, viewValue);\n\t };\n\t }\n\t });\n\t }\n\n\t function invokeControllers(scope) {\n\t var options = arguments[1] === undefined ? {} : arguments[1];\n\t var type = arguments[2] === undefined ? {} : arguments[2];\n\n\t angular.forEach([type.controller, options.controller], function (controller) {\n\t if (controller) {\n\t $controller(controller, { $scope: scope });\n\t }\n\t });\n\t }\n\n\t function setupFieldGroup() {\n\t $scope.options.options = $scope.options.options || {};\n\t $scope.options.options.formState = $scope.formState;\n\t }\n\t }\n\n\t // link function\n\t function fieldLink(scope, el) {\n\t if (scope.options.fieldGroup) {\n\t setFieldGroupTemplate();\n\t return;\n\t }\n\n\t addAttributes();\n\t addClasses();\n\n\t var type = getFieldType(scope.options);\n\t var args = arguments;\n\t var thusly = this;\n\t getFieldTemplate(scope.options).then(runManipulators(formlyConfig.templateManipulators.preWrapper)).then(transcludeInWrappers(scope.options)).then(runManipulators(formlyConfig.templateManipulators.postWrapper)).then(setElementTemplate).then(watchFormControl).then(callLinkFunctions)[\"catch\"](function (error) {\n\t formlyWarn(\"there-was-a-problem-setting-the-template-for-this-field\", \"There was a problem setting the template for this field \", scope.options, error);\n\t });\n\n\t function setFieldGroupTemplate() {\n\t checkFieldGroupApi(scope.options);\n\t el.addClass(\"formly-field-group\");\n\t var extraAttributes = \"\";\n\t if (scope.options.elementAttributes) {\n\t extraAttributes = Object.keys(scope.options.elementAttributes).map(function (key) {\n\t return \"\" + key + \"=\\\"\" + scope.options.elementAttributes[key] + \"\\\"\";\n\t }).join(\" \");\n\t }\n\t setElementTemplate(\"\\n <formly-form model=\\\"model\\\"\\n fields=\\\"options.fieldGroup\\\"\\n options=\\\"options.options\\\"\\n form=\\\"options.form\\\"\\n class=\\\"\" + scope.options.className + \"\\\"\\n \" + extraAttributes + \"\\n is-field-group>\\n </formly-form>\\n \");\n\t }\n\n\t function addAttributes() {\n\t if (scope.options.elementAttributes) {\n\t el.attr(scope.options.elementAttributes);\n\t }\n\t }\n\n\t function addClasses() {\n\t if (scope.options.className) {\n\t el.addClass(scope.options.className);\n\t }\n\t if (scope.options.type) {\n\t el.addClass(\"formly-field-\" + scope.options.type);\n\t }\n\t }\n\n\t function setElementTemplate(templateString) {\n\t el.html(asHtml(templateString));\n\t $compile(el.contents())(scope);\n\t return templateString;\n\t }\n\n\t function watchFormControl(templateString) {\n\t var stopWatchingField = angular.noop;\n\t var stopWatchingShowError = angular.noop;\n\t if (scope.options.noFormControl) {\n\t return;\n\t }\n\t var templateEl = angular.element(\"<div>\" + templateString + \"</div>\");\n\t var ngModelNode = templateEl[0].querySelector(\"[ng-model],[data-ng-model]\");\n\t if (ngModelNode && ngModelNode.getAttribute(\"name\")) {\n\t watchFieldNameOrExistence(ngModelNode.getAttribute(\"name\"));\n\t }\n\n\t function watchFieldNameOrExistence(name) {\n\t var nameExpressionRegex = /\\{\\{(.*?)}}/;\n\t var nameExpression = nameExpressionRegex.exec(name);\n\t if (nameExpression) {\n\t watchFieldName(nameExpression[1]);\n\t } else {\n\t watchFieldExistence(name);\n\t }\n\t }\n\n\t function watchFieldName(expression) {\n\t scope.$watch(expression, function oneFieldNameChange(name) {\n\t if (name) {\n\t stopWatchingField();\n\t watchFieldExistence(name);\n\t }\n\t });\n\t }\n\n\t function watchFieldExistence(name) {\n\t stopWatchingField = scope.$watch(\"form[\\\"\" + name + \"\\\"]\", function formControlChange(formControl) {\n\t if (formControl) {\n\t scope.fc = formControl; // shortcut for template authors\n\t scope.options.formControl = formControl;\n\t stopWatchingShowError();\n\t addShowMessagesWatcher();\n\t }\n\t });\n\t }\n\n\t function addShowMessagesWatcher() {\n\t stopWatchingShowError = scope.$watch(function watchShowValidationChange() {\n\t var customExpression = formlyConfig.extras.errorExistsAndShouldBeVisibleExpression;\n\t var options = scope.options;\n\t var fc = scope.fc;\n\n\t if (!fc.$invalid) {\n\t return false;\n\t } else if (typeof options.validation.show === \"boolean\") {\n\t return options.validation.show;\n\t } else if (customExpression) {\n\t return formlyUtil.formlyEval(scope, customExpression, fc.$modelValue, fc.$viewValue);\n\t } else {\n\t var noTouchedButDirty = angular.isUndefined(fc.$touched) && fc.$dirty;\n\t return scope.fc.$touched || noTouchedButDirty;\n\t }\n\t }, function onShowValidationChange(show) {\n\t scope.options.validation.errorExistsAndShouldBeVisible = show;\n\t scope.showError = show; // shortcut for template authors\n\t });\n\t }\n\t }\n\n\t function callLinkFunctions() {\n\t if (type && type.link) {\n\t type.link.apply(thusly, args);\n\t }\n\t if (scope.options.link) {\n\t scope.options.link.apply(thusly, args);\n\t }\n\t }\n\n\t function runManipulators(manipulators) {\n\t return function runManipulatorsOnTemplate(template) {\n\t var chain = $q.when(template);\n\t angular.forEach(manipulators, function (manipulator) {\n\t chain = chain.then(function (template) {\n\t return $q.when(manipulator(template, scope.options, scope)).then(function (newTemplate) {\n\t return angular.isString(newTemplate) ? newTemplate : asHtml(newTemplate);\n\t });\n\t });\n\t });\n\t return chain;\n\t };\n\t }\n\t }\n\n\t // stateless util functions\n\t function asHtml(el) {\n\t var wrapper = angular.element(\"<a></a>\");\n\t return wrapper.append(el).html();\n\t }\n\n\t function getFieldType(options) {\n\t return options.type && formlyConfig.getType(options.type);\n\t }\n\n\t function getFieldTemplate(options) {\n\t function fromOptionsOrType(key, type) {\n\t if (angular.isDefined(options[key])) {\n\t return options[key];\n\t } else if (type && angular.isDefined(type[key])) {\n\t return type[key];\n\t }\n\t }\n\n\t var type = formlyConfig.getType(options.type, true, options);\n\t var template = fromOptionsOrType(\"template\", type);\n\t var templateUrl = fromOptionsOrType(\"templateUrl\", type);\n\t if (angular.isUndefined(template) && !templateUrl) {\n\t throw formlyUsability.getFieldError(\"type-type-has-no-template\", \"Type '\" + options.type + \"' has not template. On element:\", options);\n\t }\n\n\t return getTemplate(templateUrl || template, angular.isUndefined(template), options);\n\t }\n\n\t function getTemplate(template, isUrl, options) {\n\t var templatePromise = undefined;\n\t if (angular.isFunction(template)) {\n\t templatePromise = $q.when(template(options));\n\t } else {\n\t templatePromise = $q.when(template);\n\t }\n\n\t if (!isUrl) {\n\t return templatePromise;\n\t } else {\n\t var _ret = (function () {\n\t var httpOptions = { cache: $templateCache };\n\t return {\n\t v: templatePromise.then(function (url) {\n\t return $http.get(url, httpOptions);\n\t }).then(function (response) {\n\t return response.data;\n\t })[\"catch\"](function handleErrorGettingATemplate(error) {\n\t formlyWarn(\"problem-loading-template-for-templateurl\", \"Problem loading template for \" + template, error);\n\t })\n\t };\n\t })();\n\n\t if (typeof _ret === \"object\") {\n\t return _ret.v;\n\t }\n\t }\n\t }\n\n\t function transcludeInWrappers(options) {\n\t var wrapper = getWrapperOption(options);\n\n\t return function transcludeTemplate(template) {\n\t if (!wrapper.length) {\n\t return $q.when(template);\n\t }\n\n\t wrapper.forEach(function (wrapper) {\n\t formlyUsability.checkWrapper(wrapper, options);\n\t wrapper.validateOptions && wrapper.validateOptions(options);\n\t runApiCheck(wrapper, options);\n\t });\n\t var promises = wrapper.map(function (w) {\n\t return getTemplate(w.template || w.templateUrl, !w.template);\n\t });\n\t return $q.all(promises).then(function (wrappersTemplates) {\n\t wrappersTemplates.forEach(function (wrapperTemplate, index) {\n\t formlyUsability.checkWrapperTemplate(wrapperTemplate, wrapper[index]);\n\t });\n\t wrappersTemplates.reverse(); // wrapper 0 is wrapped in wrapper 1 and so on...\n\t var totalWrapper = wrappersTemplates.shift();\n\t wrappersTemplates.forEach(function (wrapperTemplate) {\n\t totalWrapper = doTransclusion(totalWrapper, wrapperTemplate);\n\t });\n\t return doTransclusion(totalWrapper, template);\n\t });\n\t };\n\t }\n\n\t function doTransclusion(wrapper, template) {\n\t var superWrapper = angular.element(\"<a></a>\"); // this allows people not have to have a single root in wrappers\n\t superWrapper.append(wrapper);\n\t var transcludeEl = superWrapper.find(\"formly-transclude\");\n\t if (!transcludeEl.length) {\n\t //try it using our custom find function\n\t transcludeEl = formlyUtil.findByNodeName(superWrapper, \"formly-transclude\");\n\t }\n\t transcludeEl.replaceWith(template);\n\t return superWrapper.html();\n\t }\n\n\t function getWrapperOption(options) {\n\t var wrapper = options.wrapper;\n\t // explicit null means no wrapper\n\t if (wrapper === null) {\n\t return [];\n\t }\n\n\t // nothing specified means use the default wrapper for the type\n\t if (!wrapper) {\n\t // get all wrappers that specify they apply to this type\n\t wrapper = arrayify(formlyConfig.getWrapperByType(options.type));\n\t } else {\n\t wrapper = arrayify(wrapper).map(formlyConfig.getWrapper);\n\t }\n\n\t // get all wrappers for that this type specified that it uses.\n\t var type = formlyConfig.getType(options.type, true, options);\n\t if (type && type.wrapper) {\n\t var typeWrappers = arrayify(type.wrapper).map(formlyConfig.getWrapper);\n\t wrapper = wrapper.concat(typeWrappers);\n\t }\n\n\t // add the default wrapper last\n\t var defaultWrapper = formlyConfig.getWrapper();\n\t if (defaultWrapper) {\n\t wrapper.push(defaultWrapper);\n\t }\n\t return wrapper;\n\t }\n\n\t function checkApi(options) {\n\t formlyApiCheck[\"throw\"](formlyApiCheck.formlyFieldOptions, options, {\n\t prefix: \"formly-field directive\",\n\t url: \"formly-field-directive-validation-failed\"\n\t });\n\t // validate with the type\n\t var type = options.type && formlyConfig.getType(options.type);\n\t if (type) {\n\t if (type.validateOptions) {\n\t type.validateOptions(options);\n\t }\n\t runApiCheck(type, options);\n\t }\n\t }\n\n\t function checkFieldGroupApi(options) {\n\t formlyApiCheck[\"throw\"](formlyApiCheck.fieldGroup, options, {\n\t prefix: \"formly-field directive\",\n\t url: \"formly-field-directive-validation-failed\"\n\t });\n\t }\n\n\t function runApiCheck(_ref, options) {\n\t var apiCheck = _ref.apiCheck;\n\t var apiCheckInstance = _ref.apiCheckInstance;\n\t var apiCheckFunction = _ref.apiCheckFunction;\n\t var apiCheckOptions = _ref.apiCheckOptions;\n\n\t if (!apiCheck) {\n\t return;\n\t }\n\t var instance = apiCheckInstance || formlyApiCheck;\n\t var fn = apiCheckFunction || \"warn\";\n\t var shape = instance.shape(apiCheck);\n\t instance[fn](shape, options, apiCheckOptions || {\n\t prefix: \"formly-field \" + name,\n\t url: formlyApiCheck.config.output.docsBaseUrl + \"formly-field-type-apicheck-failed\"\n\t });\n\t }\n\t}\n\tformlyField.$inject = [\"$http\", \"$q\", \"$compile\", \"$templateCache\", \"formlyConfig\", \"formlyValidationMessages\", \"formlyApiCheck\", \"formlyUtil\", \"formlyUsability\", \"formlyWarn\"];\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tmodule.exports = formlyFocus;\n\n\t// @ngInject\n\tfunction formlyFocus($timeout, $document) {\n\t /* jshint -W052 */\n\t return {\n\t restrict: \"A\",\n\t link: function formlyFocusLink(scope, element, attrs) {\n\t var previousEl = null;\n\t var el = element[0];\n\t var doc = $document[0];\n\t attrs.$observe(\"formlyFocus\", function respondToFocusExpressionChange(value) {\n\t if (value === \"true\") {\n\t $timeout(function setElementFocus() {\n\t previousEl = doc.activeElement;\n\t el.focus();\n\t }, ~ ~attrs.focusWait);\n\t } else if (value === \"false\") {\n\t if (doc.activeElement === el) {\n\t el.blur();\n\t if (attrs.hasOwnProperty(\"refocus\") && previousEl) {\n\t previousEl.focus();\n\t }\n\t }\n\t }\n\t });\n\t }\n\t };\n\t}\n\tformlyFocus.$inject = [\"$timeout\", \"$document\"];\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar _toConsumableArray = function (arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } };\n\n\tvar _slice = Array.prototype.slice;\n\n\tvar angular = _interopRequire(__webpack_require__(15));\n\n\tmodule.exports = formlyForm;\n\n\t/**\n\t * @ngdoc directive\n\t * @name formlyForm\n\t * @restrict E\n\t */\n\t// @ngInject\n\tfunction formlyForm(formlyUsability, $parse, formlyApiCheck, formlyConfig) {\n\t var currentFormId = 1;\n\t return {\n\t restrict: \"E\",\n\t template: function formlyFormGetTemplate(el, attrs) {\n\t /* jshint -W033 */ // this because jshint is broken I guess...\n\t var rootEl = getRootEl();\n\t var fieldRootEl = getFieldRootEl();\n\t var formId = \"formly_\" + currentFormId++;\n\t var parentFormAttributes = \"\";\n\t if (attrs.hasOwnProperty(\"isFieldGroup\") && el.parent().parent().hasClass(\"formly\")) {\n\t parentFormAttributes = copyAttributes(el.parent().parent()[0].attributes);\n\t }\n\t return \"\\n <\" + rootEl + \" class=\\\"formly\\\"\\n name=\\\"\" + getFormName() + \"\\\"\\n role=\\\"form\\\" \" + parentFormAttributes + \">\\n <\" + fieldRootEl + \" formly-field\\n ng-repeat=\\\"field in fields \" + getTrackBy() + \"\\\"\\n \" + getHideDirective() + \"=\\\"!field.hide\\\"\\n class=\\\"formly-field\\\"\\n options=\\\"field\\\"\\n model=\\\"field.model || model\\\"\\n fields=\\\"fields\\\"\\n form=\\\"theFormlyForm\\\"\\n form-id=\\\"\" + getFormName() + \"\\\"\\n form-state=\\\"options.formState\\\"\\n index=\\\"$index\\\">\\n </\" + fieldRootEl + \">\\n <div ng-transclude></div>\\n </\" + rootEl + \">\\n \";\n\n\t function getRootEl() {\n\t return attrs.rootEl || \"ng-form\";\n\t }\n\n\t function getFieldRootEl() {\n\t return attrs.fieldRootEl || \"div\";\n\t }\n\n\t function getHideDirective() {\n\t return attrs.hideDirective || formlyConfig.extras.defaultHideDirective || \"ng-if\";\n\t }\n\n\t function getTrackBy() {\n\t if (!attrs.trackBy) {\n\t return \"\";\n\t } else {\n\t return \"track by \" + attrs.trackBy;\n\t }\n\t }\n\n\t function getFormName() {\n\t var formName = formId;\n\t var bindName = attrs.bindName;\n\t if (bindName) {\n\t if (angular.version.minor < 3) {\n\t throw formlyUsability.getFormlyError(\"bind-name attribute on formly-form not allowed in > angular 1.3\");\n\t }\n\t // we can do a one-time binding here because we know we're in 1.3.x territory\n\t formName = \"{{::'formly_' + \" + bindName + \"}}\";\n\t }\n\t return formName;\n\t }\n\n\t function copyAttributes(attributes) {\n\t var excluded = [\"model\", \"form\", \"fields\", \"options\", \"name\", \"role\", \"class\"];\n\t var arrayAttrs = [];\n\t angular.forEach(attributes, function (_ref) {\n\t var nodeName = _ref.nodeName;\n\t var nodeValue = _ref.nodeValue;\n\n\t if (nodeName !== \"undefined\" && excluded.indexOf(nodeName) === -1) {\n\t arrayAttrs.push(\"\" + toKebabCase(nodeName) + \"=\\\"\" + nodeValue + \"\\\"\");\n\t }\n\t });\n\t return arrayAttrs.join(\" \");\n\t }\n\n\t function toKebabCase(string) {\n\t if (string) {\n\t return string.replace(/([A-Z])/g, function ($1) {\n\t return \"-\" + $1.toLowerCase();\n\t });\n\t } else {\n\t return \"\";\n\t }\n\t }\n\t },\n\t replace: true,\n\t transclude: true,\n\t scope: {\n\t fields: \"=\",\n\t model: \"=\",\n\t form: \"=?\",\n\t options: \"=?\"\n\t },\n\t controller: /* @ngInject */[\"$scope\", \"formlyUtil\", function FormlyFormController($scope, formlyUtil) {\n\t setupOptions();\n\t $scope.model = $scope.model || {};\n\t $scope.fields = $scope.fields || [];\n\n\t angular.forEach($scope.fields, initModel); // initializes the model property if set to 'formState'\n\t angular.forEach($scope.fields, attachKey); // attaches a key based on the index if a key isn't specified\n\t angular.forEach($scope.fields, setupWatchers); // setup watchers for all fields\n\n\t // watch the model and evaluate watch expressions that depend on it.\n\t $scope.$watch(\"model\", onModelOrFormStateChange, true);\n\t if ($scope.options.formState) {\n\t $scope.$watch(\"options.formState\", onModelOrFormStateChange, true);\n\t }\n\n\t function onModelOrFormStateChange() {\n\t angular.forEach($scope.fields, function runFieldExpressionProperties(field, index) {\n\t /*jshint -W030 */\n\t var model = field.model || $scope.model;\n\t field.runExpressions && field.runExpressions(model);\n\t if (field.hideExpression) {\n\t // can't use hide with expressionProperties reliably\n\t var val = model[field.key];\n\t // this makes it closer to what a regular expressionProperty would be\n\t var extraLocals = {\n\t options: field,\n\t index: index,\n\t formState: $scope.options.formState,\n\t formId: $scope.formId\n\t };\n\t field.hide = formlyUtil.formlyEval($scope, field.hideExpression, val, val, extraLocals);\n\t }\n\t });\n\t }\n\n\t function setupOptions() {\n\t formlyApiCheck[\"throw\"]([formlyApiCheck.formOptionsApi.optional], [$scope.options], { prefix: \"formly-form options check\" });\n\t $scope.options = $scope.options || {};\n\t $scope.options.formState = $scope.options.formState || {};\n\n\t angular.extend($scope.options, {\n\t updateInitialValue: updateInitialValue,\n\t resetModel: resetModel\n\t });\n\t }\n\n\t function updateInitialValue() {\n\t angular.forEach($scope.fields, function (field) {\n\t if (isFieldGroup(field)) {\n\t field.options.updateInitialValue();\n\t } else {\n\t field.updateInitialValue();\n\t }\n\t });\n\t }\n\n\t function resetModel() {\n\t angular.forEach($scope.fields, function (field) {\n\t if (isFieldGroup(field)) {\n\t field.options.resetModel();\n\t } else {\n\t field.resetModel();\n\t }\n\t });\n\t }\n\n\t function initModel(field) {\n\t if (field.model && field.model === \"formState\") {\n\t field.model = $scope.options.formState;\n\t }\n\t }\n\n\t function attachKey(field, index) {\n\t if (!isFieldGroup(field)) {\n\t field.key = field.key || index || 0;\n\t }\n\t }\n\n\t function setupWatchers(field, index) {\n\t if (isFieldGroup(field) || !angular.isDefined(field.watcher)) {\n\t return;\n\t }\n\t var watchers = field.watcher;\n\t if (!angular.isArray(watchers)) {\n\t watchers = [watchers];\n\t }\n\t angular.forEach(watchers, function setupWatcher(watcher) {\n\t if (!angular.isDefined(watcher.listener)) {\n\t throw formlyUsability.getFieldError(\"all-field-watchers-must-have-a-listener\", \"All field watchers must have a listener\", field);\n\t }\n\t var watchExpression = getWatchExpression(watcher, field, index);\n\t var watchListener = getWatchListener(watcher, field, index);\n\n\t var type = watcher.type || \"$watch\";\n\t watcher.stopWatching = $scope[type](watchExpression, watchListener, watcher.watchDeep);\n\t });\n\t }\n\n\t function getWatchExpression(watcher, field, index) {\n\t var watchExpression = watcher.expression || \"model['\" + field.key + \"']\";\n\t if (angular.isFunction(watchExpression)) {\n\t // wrap the field's watch expression so we can call it with the field as the first arg\n\t // and the stop function as the last arg as a helper\n\t var originalExpression = watchExpression;\n\t watchExpression = function formlyWatchExpression() {\n\t var args = modifyArgs.apply(undefined, [watcher, index].concat(_slice.call(arguments)));\n\t return originalExpression.apply(undefined, _toConsumableArray(args));\n\t };\n\t watchExpression.displayName = \"Formly Watch Expression for field for \" + field.key;\n\t }\n\t return watchExpression;\n\t }\n\n\t function getWatchListener(watcher, field, index) {\n\t var watchListener = watcher.listener;\n\t if (angular.isFunction(watchListener)) {\n\t // wrap the field's watch listener so we can call it with the field as the first arg\n\t // and the stop function as the last arg as a helper\n\t var originalListener = watchListener;\n\t watchListener = function formlyWatchListener() {\n\t var args = modifyArgs.apply(undefined, [watcher, index].concat(_slice.call(arguments)));\n\t return originalListener.apply(undefined, _toConsumableArray(args));\n\t };\n\t watchListener.displayName = \"Formly Watch Listener for field for \" + field.key;\n\t }\n\t return watchListener;\n\t }\n\n\t function modifyArgs(watcher, index) {\n\t for (var _len = arguments.length, originalArgs = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n\t originalArgs[_key - 2] = arguments[_key];\n\t }\n\n\t return [$scope.fields[index]].concat(originalArgs, [watcher.stopWatching]);\n\t }\n\n\t function isFieldGroup(field) {\n\t return field && !!field.fieldGroup;\n\t }\n\t }],\n\t link: function link(scope, el, attrs) {\n\t var formId = attrs.name;\n\t scope.formId = formId;\n\t scope.theFormlyForm = scope[formId];\n\t if (attrs.form) {\n\t $parse(attrs.form).assign(scope.$parent, scope[formId]);\n\t }\n\n\t // chrome autocomplete lameness\n\t // see https://code.google.com/p/chromium/issues/detail?id=468153#c14\n\t // ლ(ಠ益ಠლ) (╯°□°)╯︵ ┻━┻ (◞‸◟;)\n\t var global = formlyConfig.extras.removeChromeAutoComplete === true;\n\t var offInstance = scope.options && scope.options.removeChromeAutoComplete === false;\n\t var onInstance = scope.options && scope.options.removeChromeAutoComplete === true;\n\t if (global && !offInstance || onInstance) {\n\t var input = document.createElement(\"input\");\n\t input.setAttribute(\"autocomplete\", \"address-level4\");\n\t input.setAttribute(\"hidden\", true);\n\t el[0].appendChild(input);\n\t }\n\t }\n\t };\n\t}\n\tformlyForm.$inject = [\"formlyUsability\", \"$parse\", \"formlyApiCheck\", \"formlyConfig\"];\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar angular = _interopRequire(__webpack_require__(15));\n\n\tmodule.exports = addFormlyNgModelAttrsManipulator;\n\n\t// @ngInject\n\tfunction addFormlyNgModelAttrsManipulator(formlyConfig) {\n\t if (formlyConfig.extras.disableNgModelAttrsManipulator) {\n\t return;\n\t }\n\t formlyConfig.templateManipulators.preWrapper.push(ngModelAttrsManipulator);\n\n\t function ngModelAttrsManipulator(template, options, scope) {\n\t /* jshint maxcomplexity:6 */\n\t var el = document.createElement(\"div\");\n\t var data = options.data;\n\t if (data.skipNgModelAttrsManipulator === true) {\n\t return template;\n\t }\n\t el.innerHTML = template;\n\t var modelNodes = el.querySelectorAll(\"[ng-model], [data-ng-model]\");\n\t if (!modelNodes || !modelNodes.length) {\n\t return template;\n\t }\n\n\t addIfNotPresent(modelNodes, \"id\", scope.id);\n\t addIfNotPresent(modelNodes, \"name\", scope.id);\n\n\t addValidation();\n\t addModelOptions();\n\t addTemplateOptionsAttrs();\n\n\t return el.innerHTML;\n\n\t function addValidation() {\n\t if (angular.isDefined(options.validators) || angular.isDefined(options.validation.messages)) {\n\t addIfNotPresent(modelNodes, \"formly-custom-validation\", \"\");\n\t }\n\t }\n\n\t function addModelOptions() {\n\t if (angular.isDefined(options.modelOptions)) {\n\t addIfNotPresent(modelNodes, \"ng-model-options\", \"options.modelOptions\");\n\t if (options.modelOptions.getterSetter) {\n\t angular.forEach(modelNodes, function (node) {\n\t node.setAttribute(\"ng-model\", \"options.value\");\n\t });\n\t }\n\t }\n\t }\n\n\t function addTemplateOptionsAttrs() {\n\t if (!options.templateOptions && !options.expressionProperties) {\n\t // no need to run these if there are no templateOptions or expressionProperties\n\t return;\n\t }\n\t var to = options.templateOptions || {};\n\t var ep = options.expressionProperties || {};\n\n\t var ngModelAttributes = getBuiltInAttributes();\n\n\t // extend with the user's specifications winning\n\t angular.extend(ngModelAttributes, options.ngModelAttrs);\n\n\t // Feel free to make this more simple :-)\n\t angular.forEach(ngModelAttributes, function (val, name) {\n\t /* jshint maxcomplexity:14 */\n\t var attrVal = undefined;\n\t var attrName = undefined;\n\t var ref = \"options.templateOptions['\" + name + \"']\";\n\t var toVal = to[name];\n\t var epVal = getEpValue(ep, name);\n\n\t var inTo = angular.isDefined(toVal);\n\t var inEp = angular.isDefined(epVal);\n\t if (val.value) {\n\t // I realize this looks backwards, but it's right, trust me...\n\t attrName = val.value;\n\t attrVal = name;\n\t } else if (val.expression && inTo) {\n\t attrName = val.expression;\n\t if (angular.isString(to[name])) {\n\t attrVal = \"$eval(\" + ref + \")\";\n\t } else if (angular.isFunction(to[name])) {\n\t attrVal = \"\" + ref + \"(model[options.key], options, this, $event)\";\n\t } else {\n\t throw new Error(\"options.templateOptions.\" + name + \" must be a string or function: \" + JSON.stringify(options));\n\t }\n\t } else if (val.bound && inEp) {\n\t attrName = val.bound;\n\t attrVal = ref;\n\t } else if ((val.attribute || val.boolean) && inEp) {\n\t attrName = val.attribute || val.boolean;\n\t attrVal = \"{{\" + ref + \"}}\";\n\t } else if (val.attribute && inTo) {\n\t attrName = val.attribute;\n\t attrVal = toVal;\n\t } else if (val.boolean) {\n\t if (inTo && !inEp && toVal) {\n\t attrName = val.boolean;\n\t attrVal = true;\n\t } else {}\n\t } else if (val.bound && inTo) {\n\t attrName = val.bound;\n\t attrVal = ref;\n\t }\n\n\t if (angular.isDefined(attrName) && angular.isDefined(attrVal)) {\n\t addIfNotPresent(modelNodes, attrName, attrVal);\n\t }\n\t });\n\t }\n\t }\n\n\t // Utility functions\n\t function getBuiltInAttributes() {\n\t var ngModelAttributes = {\n\t focus: {\n\t attribute: \"formly-focus\"\n\t }\n\t };\n\t var boundOnly = [];\n\t var bothBooleanAndBound = [\"required\", \"disabled\"];\n\t var bothAttributeAndBound = [\"pattern\", \"minlength\"];\n\t var expressionOnly = [\"change\", \"keydown\", \"keyup\", \"keypress\", \"click\", \"focus\", \"blur\"];\n\t var attributeOnly = [\"placeholder\", \"min\", \"max\", \"tabindex\", \"type\"];\n\t if (formlyConfig.extras.ngModelAttrsManipulatorPreferUnbound) {\n\t bothAttributeAndBound.push(\"maxlength\");\n\t } else {\n\t boundOnly.push(\"maxlength\");\n\t }\n\n\t angular.forEach(boundOnly, function (item) {\n\t ngModelAttributes[item] = { bound: \"ng-\" + item };\n\t });\n\n\t angular.forEach(bothBooleanAndBound, function (item) {\n\t ngModelAttributes[item] = { boolean: item, bound: \"ng-\" + item };\n\t });\n\n\t angular.forEach(bothAttributeAndBound, function (item) {\n\t ngModelAttributes[item] = { attribute: item, bound: \"ng-\" + item };\n\t });\n\n\t angular.forEach(expressionOnly, function (item) {\n\t var propName = \"on\" + item.substr(0, 1).toUpperCase() + item.substr(1);\n\t ngModelAttributes[propName] = { expression: \"ng-\" + item };\n\t });\n\n\t angular.forEach(attributeOnly, function (item) {\n\t ngModelAttributes[item] = { attribute: item };\n\t });\n\t return ngModelAttributes;\n\t }\n\n\t function getEpValue(ep, name) {\n\t return ep[\"templateOptions.\" + name] || ep[\"templateOptions['\" + name + \"']\"] || ep[\"templateOptions[\\\"\" + name + \"\\\"]\"];\n\t }\n\n\t function addIfNotPresent(nodes, attr, val) {\n\t angular.forEach(nodes, function (node) {\n\t if (!node.getAttribute(attr)) {\n\t node.setAttribute(attr, val);\n\t }\n\t });\n\t }\n\t}\n\taddFormlyNgModelAttrsManipulator.$inject = [\"formlyConfig\"];\n\n\t// jshint -W035\n\t// empty to illustrate that a boolean will not be added via val.bound\n\t// if you want it added via val.bound, then put it in expressionProperties\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tmodule.exports = addCustomTags;\n\n\t// @ngInject\n\tfunction addCustomTags($document) {\n\t if ($document && $document.get) {\n\t (function () {\n\t //IE8 check ->\n\t // http://stackoverflow.com/questions/10964966/detect-ie-version-prior-to-v9-in-javascript/10965203#10965203\n\t var document = $document.get(0);\n\t var div = document.createElement(\"div\");\n\t div.innerHTML = \"<!--[if lt IE 9]><i></i><![endif]-->\";\n\t var isIeLessThan9 = div.getElementsByTagName(\"i\").length === 1;\n\n\t if (isIeLessThan9) {\n\t //add the custom elements that we need for formly\n\t var customElements = [\"formly-field\", \"formly-form\", \"formly-custom-validation\", \"formly-focus\", \"formly-transpose\"];\n\t angular.forEach(customElements, function (el) {\n\t document.createElement(el);\n\t });\n\t }\n\t })();\n\t }\n\t}\n\taddCustomTags.$inject = [\"$document\"];\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\t// some versions of angular don't export the angular module properly,\n\t// so we get it from window in this case.\n\n\tvar angular = _interopRequire(__webpack_require__(17));\n\n\tif (!angular.version) {\n\t angular = window.angular;\n\t}\n\tmodule.exports = angular;\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_16__;\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_17__;\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tvar _interopRequire = function (obj) { return obj && obj.__esModule ? obj[\"default\"] : obj; };\n\n\tvar angular = _interopRequire(__webpack_require__(15));\n\n\tmodule.exports = { formlyEval: formlyEval, getFieldId: getFieldId, reverseDeepMerge: reverseDeepMerge, findByNodeName: findByNodeName, arrayify: arrayify, extendFunction: extendFunction };\n\n\tfunction formlyEval(scope, expression, $modelValue, $viewValue, extraLocals) {\n\t if (angular.isFunction(expression)) {\n\t return expression($viewValue, $modelValue, scope, extraLocals);\n\t } else {\n\t return scope.$eval(expression, angular.extend({ $viewValue: $viewValue, $modelValue: $modelValue }, extraLocals));\n\t }\n\t}\n\n\tfunction getFieldId(formId, options, index) {\n\t if (options.id) {\n\t return options.id;\n\t }\n\t var type = options.type;\n\t if (!type && options.template) {\n\t type = \"template\";\n\t } else if (!type && options.templateUrl) {\n\t type = \"templateUrl\";\n\t }\n\n\t return [formId, type, options.key, index].join(\"_\");\n\t}\n\n\tfunction reverseDeepMerge(dest) {\n\t angular.forEach(arguments, function (src, index) {\n\t if (!index) {\n\t return;\n\t }\n\t angular.forEach(src, function (val, prop) {\n\t if (!angular.isDefined(dest[prop])) {\n\t dest[prop] = angular.copy(val);\n\t } else if (objAndSameType(dest[prop], val)) {\n\t reverseDeepMerge(dest[prop], val);\n\t }\n\t });\n\t });\n\t}\n\n\tfunction objAndSameType(obj1, obj2) {\n\t return angular.isObject(obj1) && angular.isObject(obj2) && Object.getPrototypeOf(obj1) === Object.getPrototypeOf(obj2);\n\t}\n\n\t//recurse down a node tree to find a node with matching nodeName, for custom tags jQuery.find doesn't work in IE8\n\tfunction findByNodeName(el, nodeName) {\n\t if (!el.prop) {\n\t // not a jQuery or jqLite object -> wrap it\n\t el = angular.element(el);\n\t }\n\n\t if (el.prop(\"nodeName\") === nodeName.toUpperCase()) {\n\t return el;\n\t }\n\n\t var c = el.children();\n\t for (var i = 0; c && i < c.length; i++) {\n\t var node = findByNodeName(c[i], nodeName);\n\t if (node) {\n\t return node;\n\t }\n\t }\n\t}\n\n\tfunction arrayify(obj) {\n\t if (obj && !angular.isArray(obj)) {\n\t obj = [obj];\n\t } else if (!obj) {\n\t obj = [];\n\t }\n\t return obj;\n\t}\n\n\tfunction extendFunction() {\n\t for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {\n\t fns[_key] = arguments[_key];\n\t }\n\n\t return function extendedFunction() {\n\t var args = arguments;\n\t fns.forEach(function (fn) {\n\t return fn.apply(null, args);\n\t });\n\t };\n\t}\n\n/***/ }\n/******/ ])\n});\n;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2FuZ3VsYXItZm9ybWx5L2Rpc3QvZm9ybWx5LmpzPzUxZmEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG9DQUFvQztBQUNwQztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsdUNBQXVDLHFEQUFxRDs7QUFFNUY7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUEsdUNBQXVDLHFEQUFxRDs7QUFFNUY7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLCtDQUErQzs7QUFFL0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQSx1Q0FBdUMscURBQXFEOztBQUU1Rjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7O0FBRUY7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUEsdUNBQXVDLHFEQUFxRDs7QUFFNUY7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQSx1Q0FBdUMscURBQXFEOztBQUU1Rjs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsaUJBQWlCO0FBQ3BELG1DQUFtQyxpQkFBaUI7QUFDcEQ7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQSx1Q0FBdUMscURBQXFEOztBQUU1Rjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQSwwQ0FBMEMsMEJBQTBCLDBDQUEwQyxnQkFBZ0IsdUJBQXVCLGFBQWEsRUFBRSxPQUFPLHdCQUF3QixFQUFFOztBQUVyTTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBLHVDQUF1QyxxREFBcUQ7O0FBRTVGOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaLFVBQVU7QUFDVixRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQiw0QkFBNEI7QUFDNUI7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0VBQWtFO0FBQ2xFO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7QUFFQTtBQUNBLG9EQUFvRDtBQUNwRCxpREFBaUQ7O0FBRWpEO0FBQ0E7QUFDQSxvQ0FBb0MsZ0JBQWdCO0FBQ3BEO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07O0FBRU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxzQ0FBc0MsRUFBRSxPQUFPO0FBQy9DO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxZQUFZO0FBQ1o7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0Esa0NBQWtDO0FBQ2xDLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsWUFBWTtBQUNaLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBLFlBQVk7QUFDWjtBQUNBLFlBQVk7QUFDWjtBQUNBLFFBQVE7O0FBRVI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBLG1EQUFtRDtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUEsdUNBQXVDLHFEQUFxRDs7QUFFNUYsMENBQTBDLDBCQUEwQiwwQ0FBMEMsZ0JBQWdCLHVCQUF1QixhQUFhLEVBQUUsT0FBTyx3QkFBd0IsRUFBRTs7QUFFck07O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsZ0NBQWdDO0FBQ3pEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1osVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpREFBaUQ7QUFDakQsaURBQWlEO0FBQ2pELHFEQUFxRDs7QUFFckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWOztBQUVBO0FBQ0EsOEZBQThGLHNDQUFzQztBQUNwSTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtR0FBbUcsYUFBYTtBQUNoSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBLHVDQUF1QyxxREFBcUQ7O0FBRTVGOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLHdCQUF3QixhQUFhO0FBQ3JDLFVBQVU7QUFDVjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWixVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBLGtDQUFrQztBQUNsQyxNQUFNOztBQUVOO0FBQ0Esa0NBQWtDO0FBQ2xDLE1BQU07O0FBRU47QUFDQSxrQ0FBa0M7QUFDbEMsTUFBTTs7QUFFTjtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDLE1BQU07O0FBRU47QUFDQSxrQ0FBa0M7QUFDbEMsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQSx1Q0FBdUMscURBQXFEOztBQUU1RjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBLHVDQUF1QyxxREFBcUQ7O0FBRTVGOztBQUVBLG1CQUFtQjs7QUFFbkI7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLG9EQUFvRCxtREFBbUQ7QUFDdkc7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixtQkFBbUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlFQUFpRSxhQUFhO0FBQzlFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEIiwiZmlsZSI6IjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBhbmd1bGFyLWZvcm1seSB2ZXJzaW9uIDYuOC4yIGJ1aWx0IHdpdGgg4pmlIGJ5IEFzdHJpc20gPGFzdHJpc21zQGdtYWlsLmNvbT4sIEtlbnQgQy4gRG9kZHMgPGtlbnRAZG9kZHNmYW1pbHkudXM+ICjDsyDDrF/DrSk9w7PDsj0ow6xfw60gw7IpXG5cbihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcImFwaS1jaGVja1wiKSwgcmVxdWlyZShcImFuZ3VsYXJcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW1wiYXBpLWNoZWNrXCIsIFwiYW5ndWxhclwiXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJuZ0Zvcm1seVwiXSA9IGZhY3RvcnkocmVxdWlyZShcImFwaS1jaGVja1wiKSwgcmVxdWlyZShcImFuZ3VsYXJcIikpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIm5nRm9ybWx5XCJdID0gZmFjdG9yeShyb290W1wiYXBpQ2hlY2tcIl0sIHJvb3RbXCJhbmd1bGFyXCJdKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMTZfXywgX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8xN19fKSB7XG5yZXR1cm4gLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0ZXhwb3J0czoge30sXG4vKioqKioqLyBcdFx0XHRpZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsb2FkZWQ6IGZhbHNlXG4vKioqKioqLyBcdFx0fTtcblxuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4vKioqKioqLyBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbi8qKioqKiovIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4vKioqKioqLyBcdH1cblxuXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdHZhciBfaW50ZXJvcFJlcXVpcmUgPSBmdW5jdGlvbiAob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmpbXCJkZWZhdWx0XCJdIDogb2JqOyB9O1xuXG5cdHZhciBpbmRleCA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDEpKTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGluZGV4O1xuXG4vKioqLyB9LFxuLyogMSAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIF9pbnRlcm9wUmVxdWlyZSA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9ialtcImRlZmF1bHRcIl0gOiBvYmo7IH07XG5cblx0dmFyIGFuZ3VsYXIgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxNSkpO1xuXG5cdHZhciBmb3JtbHlBcGlDaGVjayA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDIpKTtcblxuXHR2YXIgZm9ybWx5RXJyb3JBbmRXYXJuaW5nc1VybFByZWZpeCA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDMpKTtcblxuXHR2YXIgZm9ybWx5VXNhYmlsaXR5ID0gX2ludGVyb3BSZXF1aXJlKF9fd2VicGFja19yZXF1aXJlX18oNCkpO1xuXG5cdHZhciBmb3JtbHlDb25maWcgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXyg1KSk7XG5cblx0dmFyIGZvcm1seVZhbGlkYXRpb25NZXNzYWdlcyA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDYpKTtcblxuXHR2YXIgZm9ybWx5VXRpbCA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDcpKTtcblxuXHR2YXIgZm9ybWx5V2FybiA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDgpKTtcblxuXHR2YXIgZm9ybWx5Q3VzdG9tVmFsaWRhdGlvbiA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDkpKTtcblxuXHR2YXIgZm9ybWx5RmllbGQgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxMCkpO1xuXG5cdHZhciBmb3JtbHlGb2N1cyA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSk7XG5cblx0dmFyIGZvcm1seUZvcm0gPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxMikpO1xuXG5cdHZhciBmb3JtbHlOZ01vZGVsQXR0cnNNYW5pcHVsYXRvciA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKSk7XG5cblx0dmFyIGZvcm1seUN1c3RvbVRhZ3MgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxNCkpO1xuXG5cdHZhciBuZ01vZHVsZU5hbWUgPSBcImZvcm1seVwiO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gbmdNb2R1bGVOYW1lO1xuXG5cdHZhciBuZ01vZHVsZSA9IGFuZ3VsYXIubW9kdWxlKG5nTW9kdWxlTmFtZSwgW10pO1xuXG5cdG5nTW9kdWxlLmNvbnN0YW50KFwiZm9ybWx5QXBpQ2hlY2tcIiwgZm9ybWx5QXBpQ2hlY2spO1xuXHRuZ01vZHVsZS5jb25zdGFudChcImZvcm1seUVycm9yQW5kV2FybmluZ3NVcmxQcmVmaXhcIiwgZm9ybWx5RXJyb3JBbmRXYXJuaW5nc1VybFByZWZpeCk7XG5cdG5nTW9kdWxlLmNvbnN0YW50KFwiZm9ybWx5VmVyc2lvblwiLCAoXCI2LjguMlwiKSk7IC8vIDwtLSB3ZWJwYWNrIHZhcmlhYmxlXG5cblx0bmdNb2R1bGUucHJvdmlkZXIoXCJmb3JtbHlVc2FiaWxpdHlcIiwgZm9ybWx5VXNhYmlsaXR5KTtcblx0bmdNb2R1bGUucHJvdmlkZXIoXCJmb3JtbHlDb25maWdcIiwgZm9ybWx5Q29uZmlnKTtcblxuXHRuZ01vZHVsZS5mYWN0b3J5KFwiZm9ybWx5VmFsaWRhdGlvbk1lc3NhZ2VzXCIsIGZvcm1seVZhbGlkYXRpb25NZXNzYWdlcyk7XG5cdG5nTW9kdWxlLmZhY3RvcnkoXCJmb3JtbHlVdGlsXCIsIGZvcm1seVV0aWwpO1xuXHRuZ01vZHVsZS5mYWN0b3J5KFwiZm9ybWx5V2FyblwiLCBmb3JtbHlXYXJuKTtcblxuXHRuZ01vZHVsZS5kaXJlY3RpdmUoXCJmb3JtbHlDdXN0b21WYWxpZGF0aW9uXCIsIGZvcm1seUN1c3RvbVZhbGlkYXRpb24pO1xuXHRuZ01vZHVsZS5kaXJlY3RpdmUoXCJmb3JtbHlGaWVsZFwiLCBmb3JtbHlGaWVsZCk7XG5cdG5nTW9kdWxlLmRpcmVjdGl2ZShcImZvcm1seUZvY3VzXCIsIGZvcm1seUZvY3VzKTtcblx0bmdNb2R1bGUuZGlyZWN0aXZlKFwiZm9ybWx5Rm9ybVwiLCBmb3JtbHlGb3JtKTtcblxuXHRuZ01vZHVsZS5ydW4oZm9ybWx5TmdNb2RlbEF0dHJzTWFuaXB1bGF0b3IpO1xuXHRuZ01vZHVsZS5ydW4oZm9ybWx5Q3VzdG9tVGFncyk7XG5cbi8qKiovIH0sXG4vKiAyICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHR2YXIgX2ludGVyb3BSZXF1aXJlID0gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqW1wiZGVmYXVsdFwiXSA6IG9iajsgfTtcblxuXHR2YXIgYXBpQ2hlY2tGYWN0b3J5ID0gX2ludGVyb3BSZXF1aXJlKF9fd2VicGFja19yZXF1aXJlX18oMTYpKTtcblxuXHR2YXIgYXBpQ2hlY2sgPSBhcGlDaGVja0ZhY3Rvcnkoe1xuXHQgIG91dHB1dDoge1xuXHQgICAgcHJlZml4OiBcImFuZ3VsYXItZm9ybWx5OlwiLFxuXHQgICAgZG9jc0Jhc2VVcmw6IF9fd2VicGFja19yZXF1aXJlX18oMylcblx0ICB9XG5cdH0pO1xuXG5cdGZ1bmN0aW9uIHNoYXBlUmVxdWlyZWRJZk5vdChvdGhlclByb3BzLCBwcm9wQ2hlY2tlcikge1xuXHQgIGlmICghYW5ndWxhci5pc0FycmF5KG90aGVyUHJvcHMpKSB7XG5cdCAgICBvdGhlclByb3BzID0gW290aGVyUHJvcHNdO1xuXHQgIH1cblx0ICB2YXIgdHlwZSA9IFwic3BlY2lmaWVkIGlmIHRoZXNlIGFyZSBub3Qgc3BlY2lmaWVkOiBgXCIgKyBvdGhlclByb3BzLmpvaW4oXCIsIFwiKSArIFwiYCAob3RoZXJ3aXNlIGl0J3Mgb3B0aW9uYWwpXCI7XG5cdCAgZnVuY3Rpb24gc2hhcGVSZXF1aXJlZElmTm90RGVmaW5pdGlvbihwcm9wLCBwcm9wTmFtZSwgbG9jYXRpb24sIG9iaikge1xuXHQgICAgdmFyIHByb3BFeGlzdHMgPSBvYmogJiYgb2JqLmhhc093blByb3BlcnR5KHByb3BOYW1lKTtcblx0ICAgIHZhciBvdGhlclByb3BzRXhpc3QgPSBvdGhlclByb3BzLnNvbWUoZnVuY3Rpb24gKG90aGVyUHJvcCkge1xuXHQgICAgICByZXR1cm4gb2JqICYmIG9iai5oYXNPd25Qcm9wZXJ0eShvdGhlclByb3ApO1xuXHQgICAgfSk7XG5cdCAgICBpZiAoIW90aGVyUHJvcHNFeGlzdCAmJiAhcHJvcEV4aXN0cykge1xuXHQgICAgICByZXR1cm4gYXBpQ2hlY2sudXRpbHMuZ2V0RXJyb3IocHJvcE5hbWUsIGxvY2F0aW9uLCB0eXBlKTtcblx0ICAgIH0gZWxzZSBpZiAocHJvcEV4aXN0cykge1xuXHQgICAgICByZXR1cm4gcHJvcENoZWNrZXIocHJvcCwgcHJvcE5hbWUsIGxvY2F0aW9uLCBvYmopO1xuXHQgICAgfVxuXHQgIH1cblx0ICBzaGFwZVJlcXVpcmVkSWZOb3REZWZpbml0aW9uLnR5cGUgPSB0eXBlO1xuXHQgIHJldHVybiBhcGlDaGVjay51dGlscy5jaGVja2VySGVscGVycy5zZXR1cENoZWNrZXIoc2hhcGVSZXF1aXJlZElmTm90RGVmaW5pdGlvbik7XG5cdH1cblxuXHR2YXIgZm9ybWx5RXhwcmVzc2lvbiA9IGFwaUNoZWNrLm9uZU9mVHlwZShbYXBpQ2hlY2suc3RyaW5nLCBhcGlDaGVjay5mdW5jXSk7XG5cdHZhciBzcGVjaWZ5V3JhcHBlclR5cGUgPSBhcGlDaGVjay5vbmVPZlR5cGUoW2FwaUNoZWNrLm9uZU9mKFtudWxsXSksIGFwaUNoZWNrLnR5cGVPckFycmF5T2YoYXBpQ2hlY2suc3RyaW5nKV0pO1xuXG5cdHZhciBhcGlDaGVja1Byb3BlcnR5ID0gYXBpQ2hlY2sub2JqZWN0T2YoYXBpQ2hlY2suZnVuYyk7XG5cblx0dmFyIGFwaUNoZWNrSW5zdGFuY2VQcm9wZXJ0eSA9IGFwaUNoZWNrLnNoYXBlLm9ubHlJZihcImFwaUNoZWNrXCIsIGFwaUNoZWNrLmZ1bmMud2l0aFByb3BlcnRpZXMoe1xuXHQgIHdhcm46IGFwaUNoZWNrLmZ1bmMsXG5cdCAgXCJ0aHJvd1wiOiBhcGlDaGVjay5mdW5jLFxuXHQgIHNoYXBlOiBhcGlDaGVjay5mdW5jXG5cdH0pKTtcblxuXHR2YXIgYXBpQ2hlY2tGdW5jdGlvblByb3BlcnR5ID0gYXBpQ2hlY2suc2hhcGUub25seUlmKFwiYXBpQ2hlY2tcIiwgYXBpQ2hlY2sub25lT2YoW1widGhyb3dcIiwgXCJ3YXJuXCJdKSk7XG5cblx0dmFyIGZvcm1seVdyYXBwZXJUeXBlID0gYXBpQ2hlY2suc2hhcGUoe1xuXHQgIG5hbWU6IHNoYXBlUmVxdWlyZWRJZk5vdChcInR5cGVzXCIsIGFwaUNoZWNrLnN0cmluZykub3B0aW9uYWwsXG5cdCAgdGVtcGxhdGU6IGFwaUNoZWNrLnNoYXBlLmlmTm90KFwidGVtcGxhdGVVcmxcIiwgYXBpQ2hlY2suc3RyaW5nKS5vcHRpb25hbCxcblx0ICB0ZW1wbGF0ZVVybDogYXBpQ2hlY2suc2hhcGUuaWZOb3QoXCJ0ZW1wbGF0ZVwiLCBhcGlDaGVjay5zdHJpbmcpLm9wdGlvbmFsLFxuXHQgIHR5cGVzOiBhcGlDaGVjay50eXBlT3JBcnJheU9mKGFwaUNoZWNrLnN0cmluZykub3B0aW9uYWwsXG5cdCAgb3ZlcndyaXRlT2s6IGFwaUNoZWNrLmJvb2wub3B0aW9uYWwsXG5cdCAgdmFsaWRhdGVPcHRpb25zOiBhcGlDaGVjay5mdW5jLm9wdGlvbmFsLFxuXHQgIGFwaUNoZWNrOiBhcGlDaGVja1Byb3BlcnR5Lm9wdGlvbmFsLFxuXHQgIGFwaUNoZWNrSW5zdGFuY2U6IGFwaUNoZWNrSW5zdGFuY2VQcm9wZXJ0eS5vcHRpb25hbCxcblx0ICBhcGlDaGVja0Z1bmN0aW9uOiBhcGlDaGVja0Z1bmN0aW9uUHJvcGVydHkub3B0aW9uYWwsXG5cdCAgYXBpQ2hlY2tPcHRpb25zOiBhcGlDaGVjay5vYmplY3Qub3B0aW9uYWxcblx0fSkuc3RyaWN0O1xuXG5cdHZhciBleHByZXNzaW9uUHJvcGVydGllcyA9IGFwaUNoZWNrLm9iamVjdE9mKGFwaUNoZWNrLm9uZU9mVHlwZShbZm9ybWx5RXhwcmVzc2lvbiwgYXBpQ2hlY2suc2hhcGUoe1xuXHQgIGV4cHJlc3Npb246IGZvcm1seUV4cHJlc3Npb24sXG5cdCAgbWVzc2FnZTogZm9ybWx5RXhwcmVzc2lvbi5vcHRpb25hbFxuXHR9KS5zdHJpY3RdKSk7XG5cblx0dmFyIG1vZGVsQ2hlY2tlciA9IGFwaUNoZWNrLm9uZU9mVHlwZShbYXBpQ2hlY2sub25lT2YoW1wiZm9ybVN0YXRlXCJdKSwgYXBpQ2hlY2sub2JqZWN0XSk7XG5cblx0dmFyIGZpZWxkT3B0aW9uc0FwaVNoYXBlID0ge1xuXHQgICQkaGFzaEtleTogYXBpQ2hlY2suYW55Lm9wdGlvbmFsLFxuXHQgIHR5cGU6IGFwaUNoZWNrLnNoYXBlLmlmTm90KFtcInRlbXBsYXRlXCIsIFwidGVtcGxhdGVVcmxcIl0sIGFwaUNoZWNrLnN0cmluZykub3B0aW9uYWwsXG5cdCAgdGVtcGxhdGU6IGFwaUNoZWNrLnNoYXBlLmlmTm90KFtcInR5cGVcIiwgXCJ0ZW1wbGF0ZVVybFwiXSwgYXBpQ2hlY2sub25lT2ZUeXBlKFthcGlDaGVjay5zdHJpbmcsIGFwaUNoZWNrLmZ1bmNdKSkub3B0aW9uYWwsXG5cdCAgdGVtcGxhdGVVcmw6IGFwaUNoZWNrLnNoYXBlLmlmTm90KFtcInR5cGVcIiwgXCJ0ZW1wbGF0ZVwiXSwgYXBpQ2hlY2sub25lT2ZUeXBlKFthcGlDaGVjay5zdHJpbmcsIGFwaUNoZWNrLmZ1bmNdKSkub3B0aW9uYWwsXG5cdCAga2V5OiBhcGlDaGVjay5vbmVPZlR5cGUoW2FwaUNoZWNrLnN0cmluZywgYXBpQ2hlY2subnVtYmVyXSkub3B0aW9uYWwsXG5cdCAgbW9kZWw6IG1vZGVsQ2hlY2tlci5vcHRpb25hbCxcblx0ICBjbGFzc05hbWU6IGFwaUNoZWNrLnN0cmluZy5vcHRpb25hbCxcblx0ICBpZDogYXBpQ2hlY2suc3RyaW5nLm9wdGlvbmFsLFxuXHQgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiBleHByZXNzaW9uUHJvcGVydGllcy5vcHRpb25hbCxcblx0ICBkYXRhOiBhcGlDaGVjay5vYmplY3Qub3B0aW9uYWwsXG5cdCAgdGVtcGxhdGVPcHRpb25zOiBhcGlDaGVjay5vYmplY3Qub3B0aW9uYWwsXG5cdCAgd3JhcHBlcjogc3BlY2lmeVdyYXBwZXJUeXBlLm9wdGlvbmFsLFxuXHQgIG1vZGVsT3B0aW9uczogYXBpQ2hlY2suc2hhcGUoe1xuXHQgICAgdXBkYXRlT246IGFwaUNoZWNrLnN0cmluZy5vcHRpb25hbCxcblx0ICAgIGRlYm91bmNlOiBhcGlDaGVjay5vbmVPZlR5cGUoW2FwaUNoZWNrLm9iamVjdE9mKGFwaUNoZWNrLm51bWJlciksIGFwaUNoZWNrLm51bWJlcl0pLm9wdGlvbmFsLFxuXHQgICAgYWxsb3dJbnZhbGlkOiBhcGlDaGVjay5ib29sLm9wdGlvbmFsLFxuXHQgICAgZ2V0dGVyU2V0dGVyOiBhcGlDaGVjay5ib29sLm9wdGlvbmFsLFxuXHQgICAgdGltZXpvbmU6IGFwaUNoZWNrLnN0cmluZy5vcHRpb25hbFxuXHQgIH0pLm9wdGlvbmFsLFxuXHQgIHdhdGNoZXI6IGFwaUNoZWNrLnR5cGVPckFycmF5T2YoYXBpQ2hlY2suc2hhcGUoe1xuXHQgICAgZXhwcmVzc2lvbjogZm9ybWx5RXhwcmVzc2lvbi5vcHRpb25hbCxcblx0ICAgIGxpc3RlbmVyOiBmb3JtbHlFeHByZXNzaW9uXG5cdCAgfSkpLm9wdGlvbmFsLFxuXHQgIHZhbGlkYXRvcnM6IGFwaUNoZWNrLm9iamVjdE9mKGFwaUNoZWNrLm9uZU9mVHlwZShbZm9ybWx5RXhwcmVzc2lvbiwgYXBpQ2hlY2suc2hhcGUoe1xuXHQgICAgZXhwcmVzc2lvbjogZm9ybWx5RXhwcmVzc2lvbixcblx0ICAgIG1lc3NhZ2U6IGZvcm1seUV4cHJlc3Npb24ub3B0aW9uYWxcblx0ICB9KS5zdHJpY3RdKSkub3B0aW9uYWwsXG5cdCAgbm9Gb3JtQ29udHJvbDogYXBpQ2hlY2suYm9vbC5vcHRpb25hbCxcblx0ICBoaWRlOiBhcGlDaGVjay5ib29sLm9wdGlvbmFsLFxuXHQgIGhpZGVFeHByZXNzaW9uOiBmb3JtbHlFeHByZXNzaW9uLm9wdGlvbmFsLFxuXHQgIG5nTW9kZWxBdHRyczogYXBpQ2hlY2sub2JqZWN0T2YoYXBpQ2hlY2suc2hhcGUoe1xuXHQgICAgZXhwcmVzc2lvbjogYXBpQ2hlY2suc2hhcGUuaWZOb3QoW1widmFsdWVcIiwgXCJhdHRyaWJ1dGVcIiwgXCJib3VuZFwiXSwgYXBpQ2hlY2suYW55KS5vcHRpb25hbCxcblx0ICAgIHZhbHVlOiBhcGlDaGVjay5zaGFwZS5pZk5vdChcImV4cHJlc3Npb25cIiwgYXBpQ2hlY2suYW55KS5vcHRpb25hbCxcblx0ICAgIGF0dHJpYnV0ZTogYXBpQ2hlY2suc2hhcGUuaWZOb3QoXCJleHByZXNzaW9uXCIsIGFwaUNoZWNrLmFueSkub3B0aW9uYWwsXG5cdCAgICBib3VuZDogYXBpQ2hlY2suc2hhcGUuaWZOb3QoXCJleHByZXNzaW9uXCIsIGFwaUNoZWNrLmFueSkub3B0aW9uYWxcblx0ICB9KS5zdHJpY3QpLm9wdGlvbmFsLFxuXHQgIGVsZW1lbnRBdHRyaWJ1dGVzOiBhcGlDaGVjay5vYmplY3RPZihhcGlDaGVjay5zdHJpbmcpLm9wdGlvbmFsLFxuXHQgIG9wdGlvbnNUeXBlczogYXBpQ2hlY2sudHlwZU9yQXJyYXlPZihhcGlDaGVjay5zdHJpbmcpLm9wdGlvbmFsLFxuXHQgIGxpbms6IGFwaUNoZWNrLmZ1bmMub3B0aW9uYWwsXG5cdCAgY29udHJvbGxlcjogYXBpQ2hlY2sub25lT2ZUeXBlKFthcGlDaGVjay5zdHJpbmcsIGFwaUNoZWNrLmZ1bmMsIGFwaUNoZWNrLmFycmF5XSkub3B0aW9uYWwsXG5cdCAgdmFsaWRhdGlvbjogYXBpQ2hlY2suc2hhcGUoe1xuXHQgICAgc2hvdzogYXBpQ2hlY2sub25lT2ZUeXBlKFthcGlDaGVjay5ib29sLCBhcGlDaGVjay5vbmVPZihbbnVsbF0pXSkub3B0aW9uYWwsXG5cdCAgICBtZXNzYWdlczogYXBpQ2hlY2sub2JqZWN0T2YoZm9ybWx5RXhwcmVzc2lvbikub3B0aW9uYWwsXG5cdCAgICBlcnJvckV4aXN0c0FuZFNob3VsZEJlVmlzaWJsZTogYXBpQ2hlY2suYm9vbC5vcHRpb25hbFxuXHQgIH0pLm9wdGlvbmFsLFxuXHQgIGZvcm1Db250cm9sOiBhcGlDaGVjay5vYmplY3Qub3B0aW9uYWwsXG5cdCAgdmFsdWU6IGFwaUNoZWNrLmZ1bmMub3B0aW9uYWwsXG5cdCAgcnVuRXhwcmVzc2lvbnM6IGFwaUNoZWNrLmZ1bmMub3B0aW9uYWwsXG5cdCAgcmVzZXRNb2RlbDogYXBpQ2hlY2suZnVuYy5vcHRpb25hbCxcblx0ICB1cGRhdGVJbml0aWFsVmFsdWU6IGFwaUNoZWNrLmZ1bmMub3B0aW9uYWwsXG5cdCAgaW5pdGlhbFZhbHVlOiBhcGlDaGVjay5hbnkub3B0aW9uYWwsXG5cdCAgZGVmYXVsdFZhbHVlOiBhcGlDaGVjay5hbnkub3B0aW9uYWxcblx0fTtcblxuXHR2YXIgZm9ybWx5RmllbGRPcHRpb25zID0gYXBpQ2hlY2suc2hhcGUoZmllbGRPcHRpb25zQXBpU2hhcGUpLnN0cmljdDtcblxuXHR2YXIgZm9ybU9wdGlvbnNBcGkgPSBhcGlDaGVjay5zaGFwZSh7XG5cdCAgZm9ybVN0YXRlOiBhcGlDaGVjay5vYmplY3Qub3B0aW9uYWwsXG5cdCAgcmVzZXRNb2RlbDogYXBpQ2hlY2suZnVuYy5vcHRpb25hbCxcblx0ICB1cGRhdGVJbml0aWFsVmFsdWU6IGFwaUNoZWNrLmZ1bmMub3B0aW9uYWwsXG5cdCAgcmVtb3ZlQ2hyb21lQXV0b0NvbXBsZXRlOiBhcGlDaGVjay5ib29sLm9wdGlvbmFsXG5cdH0pLnN0cmljdDtcblxuXHR2YXIgZmllbGRHcm91cCA9IGFwaUNoZWNrLnNoYXBlKHtcblx0ICAkJGhhc2hLZXk6IGFwaUNoZWNrLmFueS5vcHRpb25hbCxcblx0ICAvLyBkYW5nZXIuIE5lc3RlZCBmaWVsZCBncm91cHMgd29udCBnZXQgYXBpLWNoZWNrZWQuLi5cblx0ICBmaWVsZEdyb3VwOiBhcGlDaGVjay5hcnJheU9mKGFwaUNoZWNrLm9uZU9mVHlwZShbZm9ybWx5RmllbGRPcHRpb25zLCBhcGlDaGVjay5vYmplY3RdKSksXG5cdCAgY2xhc3NOYW1lOiBhcGlDaGVjay5zdHJpbmcub3B0aW9uYWwsXG5cdCAgb3B0aW9uczogZm9ybU9wdGlvbnNBcGkub3B0aW9uYWwsXG5cdCAgaGlkZTogYXBpQ2hlY2suYm9vbC5vcHRpb25hbCxcblx0ICBoaWRlRXhwcmVzc2lvbjogZm9ybWx5RXhwcmVzc2lvbi5vcHRpb25hbCxcblx0ICBtb2RlbDogbW9kZWxDaGVja2VyLm9wdGlvbmFsLFxuXHQgIGZvcm06IGFwaUNoZWNrLm9iamVjdC5vcHRpb25hbCxcblx0ICBlbGVtZW50QXR0cmlidXRlczogYXBpQ2hlY2sub2JqZWN0T2YoYXBpQ2hlY2suc3RyaW5nKS5vcHRpb25hbFxuXHR9KS5zdHJpY3Q7XG5cblx0dmFyIHR5cGVPcHRpb25zRGVmYXVsdE9wdGlvbnMgPSBhbmd1bGFyLmNvcHkoZmllbGRPcHRpb25zQXBpU2hhcGUpO1xuXHR0eXBlT3B0aW9uc0RlZmF1bHRPcHRpb25zLmtleSA9IGFwaUNoZWNrLnN0cmluZy5vcHRpb25hbDtcblxuXHR2YXIgZm9ybWx5VHlwZU9wdGlvbnMgPSBhcGlDaGVjay5zaGFwZSh7XG5cdCAgbmFtZTogYXBpQ2hlY2suc3RyaW5nLFxuXHQgIHRlbXBsYXRlOiBhcGlDaGVjay5zaGFwZS5pZk5vdChcInRlbXBsYXRlVXJsXCIsIGFwaUNoZWNrLm9uZU9mVHlwZShbYXBpQ2hlY2suc3RyaW5nLCBhcGlDaGVjay5mdW5jXSkpLm9wdGlvbmFsLFxuXHQgIHRlbXBsYXRlVXJsOiBhcGlDaGVjay5zaGFwZS5pZk5vdChcInRlbXBsYXRlXCIsIGFwaUNoZWNrLm9uZU9mVHlwZShbYXBpQ2hlY2suc3RyaW5nLCBhcGlDaGVjay5mdW5jXSkpLm9wdGlvbmFsLFxuXHQgIGNvbnRyb2xsZXI6IGFwaUNoZWNrLm9uZU9mVHlwZShbYXBpQ2hlY2suZnVuYywgYXBpQ2hlY2suc3RyaW5nLCBhcGlDaGVjay5hcnJheV0pLm9wdGlvbmFsLFxuXHQgIGxpbms6IGFwaUNoZWNrLmZ1bmMub3B0aW9uYWwsXG5cdCAgZGVmYXVsdE9wdGlvbnM6IGFwaUNoZWNrLm9uZU9mVHlwZShbYXBpQ2hlY2suZnVuYywgYXBpQ2hlY2suc2hhcGUodHlwZU9wdGlvbnNEZWZhdWx0T3B0aW9ucyldKS5vcHRpb25hbCxcblx0ICBcImV4dGVuZHNcIjogYXBpQ2hlY2suc3RyaW5nLm9wdGlvbmFsLFxuXHQgIHdyYXBwZXI6IHNwZWNpZnlXcmFwcGVyVHlwZS5vcHRpb25hbCxcblx0ICBkYXRhOiBhcGlDaGVjay5vYmplY3Qub3B0aW9uYWwsXG5cdCAgdmFsaWRhdGVPcHRpb25zOiBhcGlDaGVjay5mdW5jLm9wdGlvbmFsLFxuXHQgIGFwaUNoZWNrOiBhcGlDaGVja1Byb3BlcnR5Lm9wdGlvbmFsLFxuXHQgIGFwaUNoZWNrSW5zdGFuY2U6IGFwaUNoZWNrSW5zdGFuY2VQcm9wZXJ0eS5vcHRpb25hbCxcblx0ICBhcGlDaGVja0Z1bmN0aW9uOiBhcGlDaGVja0Z1bmN0aW9uUHJvcGVydHkub3B0aW9uYWwsXG5cdCAgYXBpQ2hlY2tPcHRpb25zOiBhcGlDaGVjay5vYmplY3Qub3B0aW9uYWwsXG5cdCAgb3ZlcndyaXRlT2s6IGFwaUNoZWNrLmJvb2wub3B0aW9uYWxcblx0fSkuc3RyaWN0O1xuXHRhbmd1bGFyLmV4dGVuZChhcGlDaGVjaywge1xuXHQgIGZvcm1seVR5cGVPcHRpb25zOiBmb3JtbHlUeXBlT3B0aW9ucywgZm9ybWx5RmllbGRPcHRpb25zOiBmb3JtbHlGaWVsZE9wdGlvbnMsIGZvcm1seUV4cHJlc3Npb246IGZvcm1seUV4cHJlc3Npb24sIGZvcm1seVdyYXBwZXJUeXBlOiBmb3JtbHlXcmFwcGVyVHlwZSwgZmllbGRHcm91cDogZmllbGRHcm91cCwgZm9ybU9wdGlvbnNBcGk6IGZvcm1PcHRpb25zQXBpXG5cdH0pO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gYXBpQ2hlY2s7XG5cbi8qKiovIH0sXG4vKiAzICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IFwiaHR0cHM6Ly9naXRodWIuY29tL2Zvcm1seS1qcy9hbmd1bGFyLWZvcm1seS9ibG9iL1wiICsgKFwiNi44LjJcIikgKyBcIi9vdGhlci9FUlJPUlNfQU5EX1dBUk5JTkdTLm1kI1wiO1xuXG4vKioqLyB9LFxuLyogNCAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIF9pbnRlcm9wUmVxdWlyZSA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9ialtcImRlZmF1bHRcIl0gOiBvYmo7IH07XG5cblx0dmFyIGFuZ3VsYXIgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxNSkpO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZm9ybWx5VXNhYmlsaXR5O1xuXG5cdC8vIEBuZ0luamVjdFxuXHRmdW5jdGlvbiBmb3JtbHlVc2FiaWxpdHkoZm9ybWx5QXBpQ2hlY2ssIGZvcm1seUVycm9yQW5kV2FybmluZ3NVcmxQcmVmaXgpIHtcblx0ICB2YXIgX3RoaXMgPSB0aGlzO1xuXG5cdCAgYW5ndWxhci5leHRlbmQodGhpcywge1xuXHQgICAgZ2V0Rm9ybWx5RXJyb3I6IGdldEZvcm1seUVycm9yLFxuXHQgICAgZ2V0RmllbGRFcnJvcjogZ2V0RmllbGRFcnJvcixcblx0ICAgIGNoZWNrV3JhcHBlcjogY2hlY2tXcmFwcGVyLFxuXHQgICAgY2hlY2tXcmFwcGVyVGVtcGxhdGU6IGNoZWNrV3JhcHBlclRlbXBsYXRlLFxuXHQgICAgJGdldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICByZXR1cm4gX3RoaXM7XG5cdCAgICB9XG5cdCAgfSk7XG5cblx0ICBmdW5jdGlvbiBnZXRGaWVsZEVycm9yKGVycm9ySW5mb1NsdWcsIG1lc3NhZ2UsIGZpZWxkKSB7XG5cdCAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDMpIHtcblx0ICAgICAgZmllbGQgPSBtZXNzYWdlO1xuXHQgICAgICBtZXNzYWdlID0gZXJyb3JJbmZvU2x1Zztcblx0ICAgICAgZXJyb3JJbmZvU2x1ZyA9IG51bGw7XG5cdCAgICB9XG5cdCAgICByZXR1cm4gbmV3IEVycm9yKGdldEVycm9yTWVzc2FnZShlcnJvckluZm9TbHVnLCBtZXNzYWdlKSArIChcIiBGaWVsZCBkZWZpbml0aW9uOiBcIiArIGFuZ3VsYXIudG9Kc29uKGZpZWxkKSkpO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldEZvcm1seUVycm9yKGVycm9ySW5mb1NsdWcsIG1lc3NhZ2UpIHtcblx0ICAgIGlmICghbWVzc2FnZSkge1xuXHQgICAgICBtZXNzYWdlID0gZXJyb3JJbmZvU2x1Zztcblx0ICAgICAgZXJyb3JJbmZvU2x1ZyA9IG51bGw7XG5cdCAgICB9XG5cdCAgICByZXR1cm4gbmV3IEVycm9yKGdldEVycm9yTWVzc2FnZShlcnJvckluZm9TbHVnLCBtZXNzYWdlKSk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlKGVycm9ySW5mb1NsdWcsIG1lc3NhZ2UpIHtcblx0ICAgIHZhciB1cmwgPSBcIlwiO1xuXHQgICAgaWYgKGVycm9ySW5mb1NsdWcgIT09IG51bGwpIHtcblx0ICAgICAgdXJsID0gXCJcIiArIGZvcm1seUVycm9yQW5kV2FybmluZ3NVcmxQcmVmaXggKyBcIlwiICsgZXJyb3JJbmZvU2x1Zztcblx0ICAgIH1cblx0ICAgIHJldHVybiBcIkZvcm1seSBFcnJvcjogXCIgKyBtZXNzYWdlICsgXCIuIFwiICsgdXJsO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGNoZWNrV3JhcHBlcih3cmFwcGVyKSB7XG5cdCAgICBmb3JtbHlBcGlDaGVja1tcInRocm93XCJdKGZvcm1seUFwaUNoZWNrLmZvcm1seVdyYXBwZXJUeXBlLCB3cmFwcGVyLCB7XG5cdCAgICAgIHByZWZpeDogXCJmb3JtbHlDb25maWcuc2V0V3JhcHBlclwiLFxuXHQgICAgICB1cmxTdWZmaXg6IFwic2V0d3JhcHBlci12YWxpZGF0aW9uLWZhaWxlZFwiXG5cdCAgICB9KTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBjaGVja1dyYXBwZXJUZW1wbGF0ZSh0ZW1wbGF0ZSwgYWRkaXRpb25hbEluZm8pIHtcblx0ICAgIHZhciBmb3JtbHlUcmFuc2NsdWRlID0gXCI8Zm9ybWx5LXRyYW5zY2x1ZGU+PC9mb3JtbHktdHJhbnNjbHVkZT5cIjtcblx0ICAgIGlmICh0ZW1wbGF0ZS5pbmRleE9mKGZvcm1seVRyYW5zY2x1ZGUpID09PSAtMSkge1xuXHQgICAgICB0aHJvdyBnZXRGb3JtbHlFcnJvcihcIlRlbXBsYXRlIHdyYXBwZXIgdGVtcGxhdGVzIG11c3QgdXNlIFxcXCJcIiArIGZvcm1seVRyYW5zY2x1ZGUgKyBcIlxcXCIgc29tZXdoZXJlIGluIHRoZW0uIFwiICsgKFwiVGhpcyBvbmUgZG9lcyBub3QgaGF2ZSBcXFwiPGZvcm1seS10cmFuc2NsdWRlPjwvZm9ybWx5LXRyYW5zY2x1ZGU+XFxcIiBpbiBpdDogXCIgKyB0ZW1wbGF0ZSkgKyBcIlxcblwiICsgKFwiQWRkaXRpb25hbCBpbmZvcm1hdGlvbjogXCIgKyBKU09OLnN0cmluZ2lmeShhZGRpdGlvbmFsSW5mbykpKTtcblx0ICAgIH1cblx0ICB9XG5cdH1cblx0Zm9ybWx5VXNhYmlsaXR5LiRpbmplY3QgPSBbXCJmb3JtbHlBcGlDaGVja1wiLCBcImZvcm1seUVycm9yQW5kV2FybmluZ3NVcmxQcmVmaXhcIl07XG5cbi8qKiovIH0sXG4vKiA1ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHR2YXIgX2ludGVyb3BSZXF1aXJlID0gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqW1wiZGVmYXVsdFwiXSA6IG9iajsgfTtcblxuXHR2YXIgYW5ndWxhciA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KSk7XG5cblx0dmFyIHV0aWxzID0gX2ludGVyb3BSZXF1aXJlKF9fd2VicGFja19yZXF1aXJlX18oMTgpKTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGZvcm1seUNvbmZpZztcblxuXHQvLyBAbmdJbmplY3Rcblx0ZnVuY3Rpb24gZm9ybWx5Q29uZmlnKGZvcm1seVVzYWJpbGl0eVByb3ZpZGVyLCBmb3JtbHlBcGlDaGVjaykge1xuXHQgIHZhciBfdGhpczIgPSB0aGlzO1xuXG5cdCAgdmFyIHR5cGVNYXAgPSB7fTtcblx0ICB2YXIgdGVtcGxhdGVXcmFwcGVyc01hcCA9IHt9O1xuXHQgIHZhciBkZWZhdWx0V3JhcHBlck5hbWUgPSBcImRlZmF1bHRcIjtcblx0ICB2YXIgX3RoaXMgPSB0aGlzO1xuXHQgIHZhciBnZXRFcnJvciA9IGZvcm1seVVzYWJpbGl0eVByb3ZpZGVyLmdldEZvcm1seUVycm9yO1xuXG5cdCAgYW5ndWxhci5leHRlbmQodGhpcywge1xuXHQgICAgc2V0VHlwZTogc2V0VHlwZSxcblx0ICAgIGdldFR5cGU6IGdldFR5cGUsXG5cdCAgICBzZXRXcmFwcGVyOiBzZXRXcmFwcGVyLFxuXHQgICAgZ2V0V3JhcHBlcjogZ2V0V3JhcHBlcixcblx0ICAgIGdldFdyYXBwZXJCeVR5cGU6IGdldFdyYXBwZXJCeVR5cGUsXG5cdCAgICByZW1vdmVXcmFwcGVyQnlOYW1lOiByZW1vdmVXcmFwcGVyQnlOYW1lLFxuXHQgICAgcmVtb3ZlV3JhcHBlcnNGb3JUeXBlOiByZW1vdmVXcmFwcGVyc0ZvclR5cGUsXG5cdCAgICBkaXNhYmxlV2FybmluZ3M6IGZhbHNlLFxuXHQgICAgZXh0cmFzOiB7XG5cdCAgICAgIGRpc2FibGVOZ01vZGVsQXR0cnNNYW5pcHVsYXRvcjogZmFsc2UsXG5cdCAgICAgIG5nTW9kZWxBdHRyc01hbmlwdWxhdG9yUHJlZmVyVW5ib3VuZDogZmFsc2UsXG5cdCAgICAgIHJlbW92ZUNocm9tZUF1dG9Db21wbGV0ZTogZmFsc2UsXG5cdCAgICAgIGRlZmF1bHRIaWRlRGlyZWN0aXZlOiBcIm5nLWlmXCIsXG5cdCAgICAgIGdldEZpZWxkSWQ6IG51bGxcblx0ICAgIH0sXG5cdCAgICB0ZW1wbGF0ZU1hbmlwdWxhdG9yczoge1xuXHQgICAgICBwcmVXcmFwcGVyOiBbXSxcblx0ICAgICAgcG9zdFdyYXBwZXI6IFtdXG5cdCAgICB9LFxuXHQgICAgJGdldDogZnVuY3Rpb24gKCkge1xuXHQgICAgICByZXR1cm4gX3RoaXMyO1xuXHQgICAgfVxuXHQgIH0pO1xuXG5cdCAgZnVuY3Rpb24gc2V0VHlwZShvcHRpb25zKSB7XG5cdCAgICBpZiAoYW5ndWxhci5pc0FycmF5KG9wdGlvbnMpKSB7XG5cdCAgICAgIGFuZ3VsYXIuZm9yRWFjaChvcHRpb25zLCBzZXRUeXBlKTtcblx0ICAgIH0gZWxzZSBpZiAoYW5ndWxhci5pc09iamVjdChvcHRpb25zKSkge1xuXHQgICAgICBjaGVja1R5cGUob3B0aW9ucyk7XG5cdCAgICAgIGlmIChvcHRpb25zW1wiZXh0ZW5kc1wiXSkge1xuXHQgICAgICAgIGV4dGVuZFR5cGVPcHRpb25zKG9wdGlvbnMpO1xuXHQgICAgICB9XG5cdCAgICAgIHR5cGVNYXBbb3B0aW9ucy5uYW1lXSA9IG9wdGlvbnM7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICB0aHJvdyBnZXRFcnJvcihcIllvdSBtdXN0IHByb3ZpZGUgYW4gb2JqZWN0IG9yIGFycmF5IGZvciBzZXRUeXBlLiBZb3UgcHJvdmlkZWQ6IFwiICsgSlNPTi5zdHJpbmdpZnkoYXJndW1lbnRzKSk7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gY2hlY2tUeXBlKG9wdGlvbnMpIHtcblx0ICAgIGZvcm1seUFwaUNoZWNrW1widGhyb3dcIl0oZm9ybWx5QXBpQ2hlY2suZm9ybWx5VHlwZU9wdGlvbnMsIG9wdGlvbnMsIHtcblx0ICAgICAgcHJlZml4OiBcImZvcm1seUNvbmZpZy5zZXRUeXBlXCIsXG5cdCAgICAgIHVybDogXCJzZXR0eXBlLXZhbGlkYXRpb24tZmFpbGVkXCJcblx0ICAgIH0pO1xuXHQgICAgaWYgKCFvcHRpb25zLm92ZXJ3cml0ZU9rKSB7XG5cdCAgICAgIGNoZWNrT3ZlcndyaXRlKG9wdGlvbnMubmFtZSwgdHlwZU1hcCwgb3B0aW9ucywgXCJ0eXBlc1wiKTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIG9wdGlvbnMub3ZlcndyaXRlT2sgPSB1bmRlZmluZWQ7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZXh0ZW5kVHlwZU9wdGlvbnMob3B0aW9ucykge1xuXHQgICAgdmFyIGV4dGVuZHNUeXBlID0gZ2V0VHlwZShvcHRpb25zW1wiZXh0ZW5kc1wiXSwgdHJ1ZSwgb3B0aW9ucyk7XG5cdCAgICBleHRlbmRUeXBlQ29udHJvbGxlckZ1bmN0aW9uKG9wdGlvbnMsIGV4dGVuZHNUeXBlKTtcblx0ICAgIGV4dGVuZFR5cGVMaW5rRnVuY3Rpb24ob3B0aW9ucywgZXh0ZW5kc1R5cGUpO1xuXHQgICAgZXh0ZW5kVHlwZVZhbGlkYXRlT3B0aW9uc0Z1bmN0aW9uKG9wdGlvbnMsIGV4dGVuZHNUeXBlKTtcblx0ICAgIGV4dGVuZFR5cGVEZWZhdWx0T3B0aW9ucyhvcHRpb25zLCBleHRlbmRzVHlwZSk7XG5cdCAgICB1dGlscy5yZXZlcnNlRGVlcE1lcmdlKG9wdGlvbnMsIGV4dGVuZHNUeXBlKTtcblx0ICAgIGV4dGVuZFRlbXBsYXRlKG9wdGlvbnMsIGV4dGVuZHNUeXBlKTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBleHRlbmRUZW1wbGF0ZShvcHRpb25zLCBleHRlbmRzVHlwZSkge1xuXHQgICAgaWYgKG9wdGlvbnMudGVtcGxhdGUgJiYgZXh0ZW5kc1R5cGUudGVtcGxhdGVVcmwpIHtcblx0ICAgICAgZGVsZXRlIG9wdGlvbnMudGVtcGxhdGVVcmw7XG5cdCAgICB9IGVsc2UgaWYgKG9wdGlvbnMudGVtcGxhdGVVcmwgJiYgZXh0ZW5kc1R5cGUudGVtcGxhdGUpIHtcblx0ICAgICAgZGVsZXRlIG9wdGlvbnMudGVtcGxhdGU7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZXh0ZW5kVHlwZUNvbnRyb2xsZXJGdW5jdGlvbihvcHRpb25zLCBleHRlbmRzVHlwZSkge1xuXHQgICAgdmFyIGV4dGVuZHNDdHJsID0gZXh0ZW5kc1R5cGUuY29udHJvbGxlcjtcblx0ICAgIGlmICghYW5ndWxhci5pc0RlZmluZWQoZXh0ZW5kc0N0cmwpKSB7XG5cdCAgICAgIHJldHVybjtcblx0ICAgIH1cblx0ICAgIHZhciBvcHRpb25zQ3RybCA9IG9wdGlvbnMuY29udHJvbGxlcjtcblx0ICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZChvcHRpb25zQ3RybCkpIHtcblx0ICAgICAgb3B0aW9ucy5jb250cm9sbGVyID0gZnVuY3Rpb24gKCRzY29wZSwgJGNvbnRyb2xsZXIpIHtcblx0ICAgICAgICAkY29udHJvbGxlcihleHRlbmRzQ3RybCwgeyAkc2NvcGU6ICRzY29wZSB9KTtcblx0ICAgICAgICAkY29udHJvbGxlcihvcHRpb25zQ3RybCwgeyAkc2NvcGU6ICRzY29wZSB9KTtcblx0ICAgICAgfTtcblx0ICAgICAgb3B0aW9ucy5jb250cm9sbGVyLiRpbmplY3QgPSBbXCIkc2NvcGVcIiwgXCIkY29udHJvbGxlclwiXTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIG9wdGlvbnMuY29udHJvbGxlciA9IGV4dGVuZHNDdHJsO1xuXHQgICAgfVxuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGV4dGVuZFR5cGVMaW5rRnVuY3Rpb24ob3B0aW9ucywgZXh0ZW5kc1R5cGUpIHtcblx0ICAgIHZhciBleHRlbmRzRm4gPSBleHRlbmRzVHlwZS5saW5rO1xuXHQgICAgaWYgKCFhbmd1bGFyLmlzRGVmaW5lZChleHRlbmRzRm4pKSB7XG5cdCAgICAgIHJldHVybjtcblx0ICAgIH1cblx0ICAgIHZhciBvcHRpb25zRm4gPSBvcHRpb25zLmxpbms7XG5cdCAgICBpZiAoYW5ndWxhci5pc0RlZmluZWQob3B0aW9uc0ZuKSkge1xuXHQgICAgICBvcHRpb25zLmxpbmsgPSBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgZXh0ZW5kc0ZuLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcblx0ICAgICAgICBvcHRpb25zRm4uYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xuXHQgICAgICB9O1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgb3B0aW9ucy5saW5rID0gZXh0ZW5kc0ZuO1xuXHQgICAgfVxuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGV4dGVuZFR5cGVWYWxpZGF0ZU9wdGlvbnNGdW5jdGlvbihvcHRpb25zLCBleHRlbmRzVHlwZSkge1xuXHQgICAgdmFyIGV4dGVuZHNGbiA9IGV4dGVuZHNUeXBlLnZhbGlkYXRlT3B0aW9ucztcblx0ICAgIGlmICghYW5ndWxhci5pc0RlZmluZWQoZXh0ZW5kc0ZuKSkge1xuXHQgICAgICByZXR1cm47XG5cdCAgICB9XG5cdCAgICB2YXIgb3B0aW9uc0ZuID0gb3B0aW9ucy52YWxpZGF0ZU9wdGlvbnM7XG5cdCAgICB2YXIgb3JpZ2luYWxEZWZhdWx0T3B0aW9ucyA9IG9wdGlvbnMuZGVmYXVsdE9wdGlvbnM7XG5cdCAgICBpZiAoYW5ndWxhci5pc0RlZmluZWQob3B0aW9uc0ZuKSkge1xuXHQgICAgICBvcHRpb25zLnZhbGlkYXRlT3B0aW9ucyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG5cdCAgICAgICAgb3B0aW9uc0ZuKG9wdGlvbnMpO1xuXHQgICAgICAgIHZhciBtZXJnZWRPcHRpb25zID0gYW5ndWxhci5jb3B5KG9wdGlvbnMpO1xuXHQgICAgICAgIHZhciBkZWZhdWx0T3B0aW9ucyA9IG9yaWdpbmFsRGVmYXVsdE9wdGlvbnM7XG5cdCAgICAgICAgaWYgKGRlZmF1bHRPcHRpb25zKSB7XG5cdCAgICAgICAgICBpZiAoYW5ndWxhci5pc0Z1bmN0aW9uKGRlZmF1bHRPcHRpb25zKSkge1xuXHQgICAgICAgICAgICBkZWZhdWx0T3B0aW9ucyA9IGRlZmF1bHRPcHRpb25zKG1lcmdlZE9wdGlvbnMpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgICAgdXRpbHMucmV2ZXJzZURlZXBNZXJnZShtZXJnZWRPcHRpb25zLCBkZWZhdWx0T3B0aW9ucyk7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGV4dGVuZHNGbihtZXJnZWRPcHRpb25zKTtcblx0ICAgICAgfTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIG9wdGlvbnMudmFsaWRhdGVPcHRpb25zID0gZXh0ZW5kc0ZuO1xuXHQgICAgfVxuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGV4dGVuZFR5cGVEZWZhdWx0T3B0aW9ucyhvcHRpb25zLCBleHRlbmRzVHlwZSkge1xuXHQgICAgdmFyIGV4dGVuZHNETyA9IGV4dGVuZHNUeXBlLmRlZmF1bHRPcHRpb25zO1xuXHQgICAgaWYgKCFhbmd1bGFyLmlzRGVmaW5lZChleHRlbmRzRE8pKSB7XG5cdCAgICAgIHJldHVybjtcblx0ICAgIH1cblx0ICAgIHZhciBvcHRpb25zRE8gPSBvcHRpb25zLmRlZmF1bHRPcHRpb25zO1xuXHQgICAgdmFyIG9wdGlvbnNET0lzRm4gPSBhbmd1bGFyLmlzRnVuY3Rpb24ob3B0aW9uc0RPKTtcblx0ICAgIHZhciBleHRlbmRzRE9Jc0ZuID0gYW5ndWxhci5pc0Z1bmN0aW9uKGV4dGVuZHNETyk7XG5cdCAgICBpZiAoZXh0ZW5kc0RPSXNGbikge1xuXHQgICAgICBvcHRpb25zLmRlZmF1bHRPcHRpb25zID0gZnVuY3Rpb24gZGVmYXVsdE9wdGlvbnMob3B0aW9ucykge1xuXHQgICAgICAgIHZhciBleHRlbmRzRGVmYXVsdE9wdGlvbnMgPSBleHRlbmRzRE8ob3B0aW9ucyk7XG5cdCAgICAgICAgdmFyIG1lcmdlZERlZmF1bHRPcHRpb25zID0ge307XG5cdCAgICAgICAgdXRpbHMucmV2ZXJzZURlZXBNZXJnZShtZXJnZWREZWZhdWx0T3B0aW9ucywgb3B0aW9ucywgZXh0ZW5kc0RlZmF1bHRPcHRpb25zKTtcblx0ICAgICAgICB2YXIgZXh0ZW5kZXJPcHRpb25zRGVmYXVsdE9wdGlvbnMgPSBvcHRpb25zRE87XG5cdCAgICAgICAgaWYgKG9wdGlvbnNET0lzRm4pIHtcblx0ICAgICAgICAgIGV4dGVuZGVyT3B0aW9uc0RlZmF1bHRPcHRpb25zID0gZXh0ZW5kZXJPcHRpb25zRGVmYXVsdE9wdGlvbnMobWVyZ2VkRGVmYXVsdE9wdGlvbnMpO1xuXHQgICAgICAgIH1cblx0ICAgICAgICB1dGlscy5yZXZlcnNlRGVlcE1lcmdlKGV4dGVuZHNEZWZhdWx0T3B0aW9ucywgZXh0ZW5kZXJPcHRpb25zRGVmYXVsdE9wdGlvbnMpO1xuXHQgICAgICAgIHJldHVybiBleHRlbmRzRGVmYXVsdE9wdGlvbnM7XG5cdCAgICAgIH07XG5cdCAgICB9IGVsc2UgaWYgKG9wdGlvbnNET0lzRm4pIHtcblx0ICAgICAgb3B0aW9ucy5kZWZhdWx0T3B0aW9ucyA9IGZ1bmN0aW9uIGRlZmF1bHRPcHRpb25zKG9wdGlvbnMpIHtcblx0ICAgICAgICB2YXIgbmV3RGVmYXVsdE9wdGlvbnMgPSB7fTtcblx0ICAgICAgICB1dGlscy5yZXZlcnNlRGVlcE1lcmdlKG5ld0RlZmF1bHRPcHRpb25zLCBvcHRpb25zLCBleHRlbmRzRE8pO1xuXHQgICAgICAgIHJldHVybiBvcHRpb25zRE8obmV3RGVmYXVsdE9wdGlvbnMpO1xuXHQgICAgICB9O1xuXHQgICAgfVxuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldFR5cGUobmFtZSwgdGhyb3dFcnJvciwgZXJyb3JDb250ZXh0KSB7XG5cdCAgICBpZiAoIW5hbWUpIHtcblx0ICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblx0ICAgIH1cblx0ICAgIHZhciB0eXBlID0gdHlwZU1hcFtuYW1lXTtcblx0ICAgIGlmICghdHlwZSAmJiB0aHJvd0Vycm9yID09PSB0cnVlKSB7XG5cdCAgICAgIHRocm93IGdldEVycm9yKFwiVGhlcmUgaXMgbm8gdHlwZSBieSB0aGUgbmFtZSBvZiBcXFwiXCIgKyBuYW1lICsgXCJcXFwiOiBcIiArIEpTT04uc3RyaW5naWZ5KGVycm9yQ29udGV4dCkpO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgcmV0dXJuIHR5cGU7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gc2V0V3JhcHBlcihfeCwgX3gyKSB7XG5cdCAgICB2YXIgX2FnYWluID0gdHJ1ZTtcblxuXHQgICAgX2Z1bmN0aW9uOiB3aGlsZSAoX2FnYWluKSB7XG5cdCAgICAgIF9hZ2FpbiA9IGZhbHNlO1xuXHQgICAgICB2YXIgb3B0aW9ucyA9IF94LFxuXHQgICAgICAgICAgbmFtZSA9IF94MjtcblxuXHQgICAgICBpZiAoYW5ndWxhci5pc0FycmF5KG9wdGlvbnMpKSB7XG5cdCAgICAgICAgcmV0dXJuIG9wdGlvbnMubWFwKGZ1bmN0aW9uICh3cmFwcGVyT3B0aW9ucykge1xuXHQgICAgICAgICAgcmV0dXJuIHNldFdyYXBwZXIod3JhcHBlck9wdGlvbnMpO1xuXHQgICAgICAgIH0pO1xuXHQgICAgICB9IGVsc2UgaWYgKGFuZ3VsYXIuaXNPYmplY3Qob3B0aW9ucykpIHtcblx0ICAgICAgICBvcHRpb25zLnR5cGVzID0gZ2V0T3B0aW9uc1R5cGVzKG9wdGlvbnMpO1xuXHQgICAgICAgIG9wdGlvbnMubmFtZSA9IGdldE9wdGlvbnNOYW1lKG9wdGlvbnMsIG5hbWUpO1xuXHQgICAgICAgIGNoZWNrV3JhcHBlckFQSShvcHRpb25zKTtcblx0ICAgICAgICB0ZW1wbGF0ZVdyYXBwZXJzTWFwW29wdGlvbnMubmFtZV0gPSBvcHRpb25zO1xuXHQgICAgICAgIHJldHVybiBvcHRpb25zO1xuXHQgICAgICB9IGVsc2UgaWYgKGFuZ3VsYXIuaXNTdHJpbmcob3B0aW9ucykpIHtcblx0ICAgICAgICBfeCA9IHtcblx0ICAgICAgICAgIHRlbXBsYXRlOiBvcHRpb25zLFxuXHQgICAgICAgICAgbmFtZTogbmFtZVxuXHQgICAgICAgIH07XG5cdCAgICAgICAgX2FnYWluID0gdHJ1ZTtcblx0ICAgICAgICBjb250aW51ZSBfZnVuY3Rpb247XG5cdCAgICAgIH1cblx0ICAgIH1cblx0ICB9XG5cblx0ICBmdW5jdGlvbiBnZXRPcHRpb25zVHlwZXMob3B0aW9ucykge1xuXHQgICAgaWYgKGFuZ3VsYXIuaXNTdHJpbmcob3B0aW9ucy50eXBlcykpIHtcblx0ICAgICAgcmV0dXJuIFtvcHRpb25zLnR5cGVzXTtcblx0ICAgIH1cblx0ICAgIGlmICghYW5ndWxhci5pc0RlZmluZWQob3B0aW9ucy50eXBlcykpIHtcblx0ICAgICAgcmV0dXJuIFtdO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgcmV0dXJuIG9wdGlvbnMudHlwZXM7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZ2V0T3B0aW9uc05hbWUob3B0aW9ucywgbmFtZSkge1xuXHQgICAgcmV0dXJuIG9wdGlvbnMubmFtZSB8fCBuYW1lIHx8IG9wdGlvbnMudHlwZXMuam9pbihcIiBcIikgfHwgZGVmYXVsdFdyYXBwZXJOYW1lO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGNoZWNrV3JhcHBlckFQSShvcHRpb25zKSB7XG5cdCAgICBmb3JtbHlVc2FiaWxpdHlQcm92aWRlci5jaGVja1dyYXBwZXIob3B0aW9ucyk7XG5cdCAgICBpZiAob3B0aW9ucy50ZW1wbGF0ZSkge1xuXHQgICAgICBmb3JtbHlVc2FiaWxpdHlQcm92aWRlci5jaGVja1dyYXBwZXJUZW1wbGF0ZShvcHRpb25zLnRlbXBsYXRlLCBvcHRpb25zKTtcblx0ICAgIH1cblx0ICAgIGlmICghb3B0aW9ucy5vdmVyd3JpdGVPaykge1xuXHQgICAgICBjaGVja092ZXJ3cml0ZShvcHRpb25zLm5hbWUsIHRlbXBsYXRlV3JhcHBlcnNNYXAsIG9wdGlvbnMsIFwidGVtcGxhdGVXcmFwcGVyc1wiKTtcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIGRlbGV0ZSBvcHRpb25zLm92ZXJ3cml0ZU9rO1xuXHQgICAgfVxuXHQgICAgY2hlY2tXcmFwcGVyVHlwZXMob3B0aW9ucyk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gY2hlY2tXcmFwcGVyVHlwZXMob3B0aW9ucykge1xuXHQgICAgdmFyIHNob3VsZFRocm93ID0gIWFuZ3VsYXIuaXNBcnJheShvcHRpb25zLnR5cGVzKSB8fCAhb3B0aW9ucy50eXBlcy5ldmVyeShhbmd1bGFyLmlzU3RyaW5nKTtcblx0ICAgIGlmIChzaG91bGRUaHJvdykge1xuXHQgICAgICB0aHJvdyBnZXRFcnJvcihcIkF0dGVtcHRlZCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSB3cmFwcGVyIHdpdGggdHlwZXMgdGhhdCBpcyBub3QgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5nc1wiKTtcblx0ICAgIH1cblx0ICB9XG5cblx0ICBmdW5jdGlvbiBjaGVja092ZXJ3cml0ZShwcm9wZXJ0eSwgb2JqZWN0LCBuZXdWYWx1ZSwgb2JqZWN0TmFtZSkge1xuXHQgICAgaWYgKG9iamVjdC5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcblx0ICAgICAgd2FybihbXCJBdHRlbXB0aW5nIHRvIG92ZXJ3cml0ZSBcIiArIHByb3BlcnR5ICsgXCIgb24gXCIgKyBvYmplY3ROYW1lICsgXCIgd2hpY2ggaXMgY3VycmVudGx5XCIsIFwiXCIgKyBKU09OLnN0cmluZ2lmeShvYmplY3RbcHJvcGVydHldKSArIFwiIHdpdGggXCIgKyBKU09OLnN0cmluZ2lmeShuZXdWYWx1ZSksIFwiVG8gc3VwcmVzcyB0aGlzIHdhcm5pbmcsIHNwZWNpZnkgdGhlIHByb3BlcnR5IFxcXCJvdmVyd3JpdGVPazogdHJ1ZVxcXCJcIl0uam9pbihcIiBcIikpO1xuXHQgICAgfVxuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldFdyYXBwZXIobmFtZSkge1xuXHQgICAgcmV0dXJuIHRlbXBsYXRlV3JhcHBlcnNNYXBbbmFtZSB8fCBkZWZhdWx0V3JhcHBlck5hbWVdO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldFdyYXBwZXJCeVR5cGUodHlwZSkge1xuXHQgICAgLyoganNoaW50IG1heGNvbXBsZXhpdHk6NiAqL1xuXHQgICAgdmFyIHdyYXBwZXJzID0gW107XG5cdCAgICBmb3IgKHZhciBuYW1lIGluIHRlbXBsYXRlV3JhcHBlcnNNYXApIHtcblx0ICAgICAgaWYgKHRlbXBsYXRlV3JhcHBlcnNNYXAuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcblx0ICAgICAgICBpZiAodGVtcGxhdGVXcmFwcGVyc01hcFtuYW1lXS50eXBlcyAmJiB0ZW1wbGF0ZVdyYXBwZXJzTWFwW25hbWVdLnR5cGVzLmluZGV4T2YodHlwZSkgIT09IC0xKSB7XG5cdCAgICAgICAgICB3cmFwcGVycy5wdXNoKHRlbXBsYXRlV3JhcHBlcnNNYXBbbmFtZV0pO1xuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXHQgICAgfVxuXHQgICAgcmV0dXJuIHdyYXBwZXJzO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIHJlbW92ZVdyYXBwZXJCeU5hbWUobmFtZSkge1xuXHQgICAgdmFyIHdyYXBwZXIgPSB0ZW1wbGF0ZVdyYXBwZXJzTWFwW25hbWVdO1xuXHQgICAgZGVsZXRlIHRlbXBsYXRlV3JhcHBlcnNNYXBbbmFtZV07XG5cdCAgICByZXR1cm4gd3JhcHBlcjtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiByZW1vdmVXcmFwcGVyc0ZvclR5cGUodHlwZSkge1xuXHQgICAgdmFyIHdyYXBwZXJzID0gZ2V0V3JhcHBlckJ5VHlwZSh0eXBlKTtcblx0ICAgIGlmICghd3JhcHBlcnMpIHtcblx0ICAgICAgcmV0dXJuO1xuXHQgICAgfVxuXHQgICAgaWYgKCFhbmd1bGFyLmlzQXJyYXkod3JhcHBlcnMpKSB7XG5cdCAgICAgIHJldHVybiByZW1vdmVXcmFwcGVyQnlOYW1lKHdyYXBwZXJzLm5hbWUpO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgd3JhcHBlcnMuZm9yRWFjaChmdW5jdGlvbiAod3JhcHBlcikge1xuXHQgICAgICAgIHJldHVybiByZW1vdmVXcmFwcGVyQnlOYW1lKHdyYXBwZXIubmFtZSk7XG5cdCAgICAgIH0pO1xuXHQgICAgICByZXR1cm4gd3JhcHBlcnM7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gd2FybigpIHtcblx0ICAgIGlmICghX3RoaXMuZGlzYWJsZVdhcm5pbmdzKSB7XG5cdCAgICAgIGNvbnNvbGUud2Fybi5hcHBseShjb25zb2xlLCBhcmd1bWVudHMpO1xuXHQgICAgfVxuXHQgIH1cblx0fVxuXHRmb3JtbHlDb25maWcuJGluamVjdCA9IFtcImZvcm1seVVzYWJpbGl0eVByb3ZpZGVyXCIsIFwiZm9ybWx5QXBpQ2hlY2tcIl07XG5cbi8qKiovIH0sXG4vKiA2ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGZvcm1seVZhbGlkYXRpb25NZXNzYWdlcztcblxuXHQvLyBAbmdJbmplY3Rcblx0ZnVuY3Rpb24gZm9ybWx5VmFsaWRhdGlvbk1lc3NhZ2VzKCkge1xuXG5cdCAgdmFyIHZhbGlkYXRpb25NZXNzYWdlcyA9IHtcblx0ICAgIGFkZFRlbXBsYXRlT3B0aW9uVmFsdWVNZXNzYWdlOiBhZGRUZW1wbGF0ZU9wdGlvblZhbHVlTWVzc2FnZSxcblx0ICAgIGFkZFN0cmluZ01lc3NhZ2U6IGFkZFN0cmluZ01lc3NhZ2UsXG5cdCAgICBtZXNzYWdlczoge31cblx0ICB9O1xuXG5cdCAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlcztcblxuXHQgIGZ1bmN0aW9uIGFkZFRlbXBsYXRlT3B0aW9uVmFsdWVNZXNzYWdlKG5hbWUsIHByb3AsIHByZWZpeCwgc3VmZml4LCBhbHRlcm5hdGUpIHtcblx0ICAgIHZhbGlkYXRpb25NZXNzYWdlcy5tZXNzYWdlc1tuYW1lXSA9IHRlbXBsYXRlT3B0aW9uVmFsdWUocHJvcCwgcHJlZml4LCBzdWZmaXgsIGFsdGVybmF0ZSk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gYWRkU3RyaW5nTWVzc2FnZShuYW1lLCBzdHJpbmcpIHtcblx0ICAgIHZhbGlkYXRpb25NZXNzYWdlcy5tZXNzYWdlc1tuYW1lXSA9IGZ1bmN0aW9uICgpIHtcblx0ICAgICAgcmV0dXJuIHN0cmluZztcblx0ICAgIH07XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gdGVtcGxhdGVPcHRpb25WYWx1ZShwcm9wLCBwcmVmaXgsIHN1ZmZpeCwgYWx0ZXJuYXRlKSB7XG5cdCAgICByZXR1cm4gZnVuY3Rpb24gZ2V0VmFsaWRhdGlvbk1lc3NhZ2Uodmlld1ZhbHVlLCBtb2RlbFZhbHVlLCBzY29wZSkge1xuXHQgICAgICBpZiAoc2NvcGUub3B0aW9ucy50ZW1wbGF0ZU9wdGlvbnNbcHJvcF0pIHtcblx0ICAgICAgICByZXR1cm4gXCJcIiArIHByZWZpeCArIFwiIFwiICsgc2NvcGUub3B0aW9ucy50ZW1wbGF0ZU9wdGlvbnNbcHJvcF0gKyBcIiBcIiArIHN1ZmZpeDtcblx0ICAgICAgfSBlbHNlIHtcblx0ICAgICAgICByZXR1cm4gYWx0ZXJuYXRlO1xuXHQgICAgICB9XG5cdCAgICB9O1xuXHQgIH1cblx0fVxuXG4vKioqLyB9LFxuLyogNyAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIF9pbnRlcm9wUmVxdWlyZSA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9ialtcImRlZmF1bHRcIl0gOiBvYmo7IH07XG5cblx0dmFyIHV0aWxzID0gX2ludGVyb3BSZXF1aXJlKF9fd2VicGFja19yZXF1aXJlX18oMTgpKTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGZvcm1seVV0aWw7XG5cblx0Ly8gQG5nSW5qZWN0XG5cdGZ1bmN0aW9uIGZvcm1seVV0aWwoKSB7XG5cdCAgcmV0dXJuIHV0aWxzO1xuXHR9XG5cbi8qKiovIH0sXG4vKiA4ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHR2YXIgX3RvQ29uc3VtYWJsZUFycmF5ID0gZnVuY3Rpb24gKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7IGZvciAodmFyIGkgPSAwLCBhcnIyID0gQXJyYXkoYXJyLmxlbmd0aCk7IGkgPCBhcnIubGVuZ3RoOyBpKyspIGFycjJbaV0gPSBhcnJbaV07IHJldHVybiBhcnIyOyB9IGVsc2UgeyByZXR1cm4gQXJyYXkuZnJvbShhcnIpOyB9IH07XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBmb3JtbHlXYXJuO1xuXG5cdC8vIEBuZ0luamVjdFxuXHRmdW5jdGlvbiBmb3JtbHlXYXJuKGZvcm1seUNvbmZpZywgZm9ybWx5RXJyb3JBbmRXYXJuaW5nc1VybFByZWZpeCwgJGxvZykge1xuXHQgIHJldHVybiBmdW5jdGlvbiB3YXJuKCkge1xuXHQgICAgaWYgKCFmb3JtbHlDb25maWcuZGlzYWJsZVdhcm5pbmdzKSB7XG5cdCAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblx0ICAgICAgdmFyIHdhcm5JbmZvU2x1ZyA9IGFyZ3Muc2hpZnQoKTtcblx0ICAgICAgYXJncy51bnNoaWZ0KFwiRm9ybWx5IFdhcm5pbmc6XCIpO1xuXHQgICAgICBhcmdzLnB1c2goXCJcIiArIGZvcm1seUVycm9yQW5kV2FybmluZ3NVcmxQcmVmaXggKyBcIlwiICsgd2FybkluZm9TbHVnKTtcblx0ICAgICAgJGxvZy53YXJuLmFwcGx5KCRsb2csIF90b0NvbnN1bWFibGVBcnJheShhcmdzKSk7XG5cdCAgICB9XG5cdCAgfTtcblx0fVxuXHRmb3JtbHlXYXJuLiRpbmplY3QgPSBbXCJmb3JtbHlDb25maWdcIiwgXCJmb3JtbHlFcnJvckFuZFdhcm5pbmdzVXJsUHJlZml4XCIsIFwiJGxvZ1wiXTtcblxuLyoqKi8gfSxcbi8qIDkgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZm9ybWx5Q3VzdG9tVmFsaWRhdGlvbjtcblxuXHQvLyBAbmdJbmplY3Rcblx0ZnVuY3Rpb24gZm9ybWx5Q3VzdG9tVmFsaWRhdGlvbihmb3JtbHlVdGlsLCAkcSkge1xuXHQgIHJldHVybiB7XG5cdCAgICByZXN0cmljdDogXCJBXCIsXG5cdCAgICByZXF1aXJlOiBcIm5nTW9kZWxcIixcblx0ICAgIGxpbms6IGZ1bmN0aW9uIGZvcm1seUN1c3RvbVZhbGlkYXRpb25MaW5rKHNjb3BlLCBlbCwgYXR0cnMsIGN0cmwpIHtcblx0ICAgICAgdmFyIG9wdHMgPSBzY29wZS5vcHRpb25zO1xuXHQgICAgICBpZiAob3B0cy52YWxpZGF0b3JzKSB7XG5cdCAgICAgICAgY2hlY2tWYWxpZGF0b3JzKG9wdHMudmFsaWRhdG9ycyk7XG5cdCAgICAgIH1cblx0ICAgICAgb3B0cy52YWxpZGF0aW9uLm1lc3NhZ2VzID0gb3B0cy52YWxpZGF0aW9uLm1lc3NhZ2VzIHx8IHt9O1xuXHQgICAgICBhbmd1bGFyLmZvckVhY2gob3B0cy52YWxpZGF0aW9uLm1lc3NhZ2VzLCBmdW5jdGlvbiAobWVzc2FnZSwga2V5KSB7XG5cdCAgICAgICAgb3B0cy52YWxpZGF0aW9uLm1lc3NhZ2VzW2tleV0gPSBmdW5jdGlvbiAoKSB7XG5cdCAgICAgICAgICByZXR1cm4gZm9ybWx5VXRpbC5mb3JtbHlFdmFsKHNjb3BlLCBtZXNzYWdlLCBjdHJsLiRtb2RlbFZhbHVlLCBjdHJsLiR2aWV3VmFsdWUpO1xuXHQgICAgICAgIH07XG5cdCAgICAgIH0pO1xuXG5cdCAgICAgIHZhciB1c2VOZXdWYWxpZGF0b3JzQXBpID0gY3RybC5oYXNPd25Qcm9wZXJ0eShcIiR2YWxpZGF0b3JzXCIpICYmICFhdHRycy5oYXNPd25Qcm9wZXJ0eShcInVzZVBhcnNlcnNcIik7XG5cdCAgICAgIGFuZ3VsYXIuZm9yRWFjaChvcHRzLnZhbGlkYXRvcnMsIGZ1bmN0aW9uIGFkZFZhbGlkYXRvclRvUGlwZWxpbmUodmFsaWRhdG9yLCBuYW1lKSB7XG5cdCAgICAgICAgdmFyIG1lc3NhZ2UgPSB2YWxpZGF0b3IubWVzc2FnZTtcblx0ICAgICAgICBpZiAobWVzc2FnZSkge1xuXHQgICAgICAgICAgb3B0cy52YWxpZGF0aW9uLm1lc3NhZ2VzW25hbWVdID0gZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICByZXR1cm4gZm9ybWx5VXRpbC5mb3JtbHlFdmFsKHNjb3BlLCBtZXNzYWdlLCBjdHJsLiRtb2RlbFZhbHVlLCBjdHJsLiR2aWV3VmFsdWUpO1xuXHQgICAgICAgICAgfTtcblx0ICAgICAgICB9XG5cdCAgICAgICAgdmFsaWRhdG9yID0gYW5ndWxhci5pc09iamVjdCh2YWxpZGF0b3IpID8gdmFsaWRhdG9yLmV4cHJlc3Npb24gOiB2YWxpZGF0b3I7XG5cdCAgICAgICAgdmFyIGlzUG9zc2libHlBc3luYyA9ICFhbmd1bGFyLmlzU3RyaW5nKHZhbGlkYXRvcik7XG5cdCAgICAgICAgaWYgKHVzZU5ld1ZhbGlkYXRvcnNBcGkpIHtcblx0ICAgICAgICAgIHNldHVwV2l0aFZhbGlkYXRvcnMoKTtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgc2V0dXBXaXRoUGFyc2VycygpO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIGZ1bmN0aW9uIHNldHVwV2l0aFZhbGlkYXRvcnMoKSB7XG5cdCAgICAgICAgICB2YXIgdmFsaWRhdG9yQ29sbGVjdGlvbiA9IGlzUG9zc2libHlBc3luYyA/IFwiJGFzeW5jVmFsaWRhdG9yc1wiIDogXCIkdmFsaWRhdG9yc1wiO1xuXHQgICAgICAgICAgY3RybFt2YWxpZGF0b3JDb2xsZWN0aW9uXVtuYW1lXSA9IGZ1bmN0aW9uIGV2YWxWYWxpZGl0eShtb2RlbFZhbHVlLCB2aWV3VmFsdWUpIHtcblx0ICAgICAgICAgICAgdmFyIHZhbHVlID0gZm9ybWx5VXRpbC5mb3JtbHlFdmFsKHNjb3BlLCB2YWxpZGF0b3IsIG1vZGVsVmFsdWUsIHZpZXdWYWx1ZSk7XG5cdCAgICAgICAgICAgIGlmIChpc1Bvc3NpYmx5QXN5bmMpIHtcblx0ICAgICAgICAgICAgICByZXR1cm4gaXNQcm9taXNlTGlrZSh2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlID8gJHEud2hlbih2YWx1ZSkgOiAkcS5yZWplY3QodmFsdWUpO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgfTtcblx0ICAgICAgICB9XG5cblx0ICAgICAgICBmdW5jdGlvbiBzZXR1cFdpdGhQYXJzZXJzKCkge1xuXHQgICAgICAgICAgdmFyIGluRmxpZ2h0VmFsaWRhdG9yID0gdW5kZWZpbmVkO1xuXHQgICAgICAgICAgY3RybC4kcGFyc2Vycy51bnNoaWZ0KGZ1bmN0aW9uIGV2YWxWYWxpZGl0eU9mUGFyc2VyKHZpZXdWYWx1ZSkge1xuXHQgICAgICAgICAgICB2YXIgaXNWYWxpZCA9IGZvcm1seVV0aWwuZm9ybWx5RXZhbChzY29wZSwgdmFsaWRhdG9yLCBjdHJsLiRtb2RlbFZhbHVlLCB2aWV3VmFsdWUpO1xuXHQgICAgICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShpc1ZhbGlkKSkge1xuXHQgICAgICAgICAgICAgIGN0cmwuJHBlbmRpbmcgPSBjdHJsLiRwZW5kaW5nIHx8IHt9O1xuXHQgICAgICAgICAgICAgIGN0cmwuJHBlbmRpbmdbbmFtZV0gPSB0cnVlO1xuXHQgICAgICAgICAgICAgIGluRmxpZ2h0VmFsaWRhdG9yID0gaXNWYWxpZDtcblx0ICAgICAgICAgICAgICBpc1ZhbGlkLnRoZW4oZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAgICAgaWYgKGluRmxpZ2h0VmFsaWRhdG9yID09PSBpc1ZhbGlkKSB7XG5cdCAgICAgICAgICAgICAgICAgIGN0cmwuJHNldFZhbGlkaXR5KG5hbWUsIHRydWUpO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgIH0pW1wiY2F0Y2hcIl0oZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAgICAgaWYgKGluRmxpZ2h0VmFsaWRhdG9yID09PSBpc1ZhbGlkKSB7XG5cdCAgICAgICAgICAgICAgICAgIGN0cmwuJHNldFZhbGlkaXR5KG5hbWUsIGZhbHNlKTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgICB9KVtcImZpbmFsbHlcIl0oZnVuY3Rpb24gKCkge1xuXHQgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGN0cmwuJHBlbmRpbmcpLmxlbmd0aCA9PT0gMSkge1xuXHQgICAgICAgICAgICAgICAgICBkZWxldGUgY3RybC4kcGVuZGluZztcblx0ICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgICAgICAgIGRlbGV0ZSBjdHJsLiRwZW5kaW5nW25hbWVdO1xuXHQgICAgICAgICAgICAgICAgfVxuXHQgICAgICAgICAgICAgIH0pO1xuXHQgICAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICAgIGN0cmwuJHNldFZhbGlkaXR5KG5hbWUsIGlzVmFsaWQpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIHJldHVybiB2aWV3VmFsdWU7XG5cdCAgICAgICAgICB9KTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0pO1xuXHQgICAgfVxuXHQgIH07XG5cblx0ICBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKG9iaikge1xuXHQgICAgcmV0dXJuIG9iaiAmJiBhbmd1bGFyLmlzRnVuY3Rpb24ob2JqLnRoZW4pO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGNoZWNrVmFsaWRhdG9ycyh2YWxpZGF0b3JzKSB7XG5cdCAgICB2YXIgYWxsb3dlZFByb3BlcnRpZXMgPSBbXCJleHByZXNzaW9uXCIsIFwibWVzc2FnZVwiXTtcblx0ICAgIHZhciB2YWxpZGF0b3JzV2l0aEV4dHJhUHJvcHMgPSB7fTtcblx0ICAgIGFuZ3VsYXIuZm9yRWFjaCh2YWxpZGF0b3JzLCBmdW5jdGlvbiAodmFsaWRhdG9yLCBuYW1lKSB7XG5cdCAgICAgIGlmIChhbmd1bGFyLmlzU3RyaW5nKHZhbGlkYXRvcikpIHtcblx0ICAgICAgICByZXR1cm47XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIGV4dHJhUHJvcHMgPSBbXTtcblx0ICAgICAgYW5ndWxhci5mb3JFYWNoKHZhbGlkYXRvciwgZnVuY3Rpb24gKHYsIGtleSkge1xuXHQgICAgICAgIGlmIChhbGxvd2VkUHJvcGVydGllcy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG5cdCAgICAgICAgICBleHRyYVByb3BzLnB1c2goa2V5KTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0pO1xuXHQgICAgICBpZiAoZXh0cmFQcm9wcy5sZW5ndGgpIHtcblx0ICAgICAgICB2YWxpZGF0b3JzV2l0aEV4dHJhUHJvcHNbbmFtZV0gPSBleHRyYVByb3BzO1xuXHQgICAgICB9XG5cdCAgICB9KTtcblx0ICAgIGlmIChPYmplY3Qua2V5cyh2YWxpZGF0b3JzV2l0aEV4dHJhUHJvcHMpLmxlbmd0aCkge1xuXHQgICAgICB0aHJvdyBuZXcgRXJyb3IoW1wiVmFsaWRhdG9ycyBhcmUgb25seSBhbGxvd2VkIHRvIGJlIGZ1bmN0aW9ucyBvciBvYmplY3RzIHRoYXQgaGF2ZSBcIiArIGFsbG93ZWRQcm9wZXJ0aWVzLmpvaW4oXCIsIFwiKSArIFwiLlwiLCBcIllvdSBwcm92aWRlZCBzb21lIGV4dHJhIHByb3BlcnRpZXM6IFwiICsgSlNPTi5zdHJpbmdpZnkodmFsaWRhdG9yc1dpdGhFeHRyYVByb3BzKV0uam9pbihcIiBcIikpO1xuXHQgICAgfVxuXHQgIH1cblx0fVxuXHRmb3JtbHlDdXN0b21WYWxpZGF0aW9uLiRpbmplY3QgPSBbXCJmb3JtbHlVdGlsXCIsIFwiJHFcIl07XG5cbi8qKiovIH0sXG4vKiAxMCAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIF9pbnRlcm9wUmVxdWlyZSA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9ialtcImRlZmF1bHRcIl0gOiBvYmo7IH07XG5cblx0dmFyIGFuZ3VsYXIgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxNSkpO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZm9ybWx5RmllbGQ7XG5cblx0LyoqXG5cdCAqIEBuZ2RvYyBkaXJlY3RpdmVcblx0ICogQG5hbWUgZm9ybWx5RmllbGRcblx0ICogQHJlc3RyaWN0IEFFXG5cdCAqL1xuXHQvLyBAbmdJbmplY3Rcblx0ZnVuY3Rpb24gZm9ybWx5RmllbGQoJGh0dHAsICRxLCAkY29tcGlsZSwgJHRlbXBsYXRlQ2FjaGUsIGZvcm1seUNvbmZpZywgZm9ybWx5VmFsaWRhdGlvbk1lc3NhZ2VzLCBmb3JtbHlBcGlDaGVjaywgZm9ybWx5VXRpbCwgZm9ybWx5VXNhYmlsaXR5LCBmb3JtbHlXYXJuKSB7XG5cdCAgdmFyIGFycmF5aWZ5ID0gZm9ybWx5VXRpbC5hcnJheWlmeTtcblxuXHQgIEZvcm1seUZpZWxkQ29udHJvbGxlci4kaW5qZWN0ID0gW1wiJHNjb3BlXCIsIFwiJHRpbWVvdXRcIiwgXCIkcGFyc2VcIiwgXCIkY29udHJvbGxlclwiXTtcblx0ICByZXR1cm4ge1xuXHQgICAgcmVzdHJpY3Q6IFwiQUVcIixcblx0ICAgIHRyYW5zY2x1ZGU6IHRydWUsXG5cdCAgICBzY29wZToge1xuXHQgICAgICBvcHRpb25zOiBcIj1cIixcblx0ICAgICAgbW9kZWw6IFwiPVwiLFxuXHQgICAgICBmb3JtSWQ6IFwiQFwiLCAvLyBUT0RPIHJlbW92ZSBmb3JtSWQgaW4gYSBicmVha2luZyByZWxlYXNlXG5cdCAgICAgIGluZGV4OiBcIj0/XCIsXG5cdCAgICAgIGZpZWxkczogXCI9P1wiLFxuXHQgICAgICBmb3JtU3RhdGU6IFwiPT9cIixcblx0ICAgICAgZm9ybTogXCI9P1wiIC8vIFRPRE8gcmVxdWlyZSBmb3JtIGluIGEgYnJlYWtpbmcgcmVsZWFzZVxuXHQgICAgfSxcblx0ICAgIGNvbnRyb2xsZXI6IEZvcm1seUZpZWxkQ29udHJvbGxlcixcblx0ICAgIGxpbms6IGZpZWxkTGlua1xuXHQgIH07XG5cblx0ICAvLyBAbmdJbmplY3Rcblx0ICBmdW5jdGlvbiBGb3JtbHlGaWVsZENvbnRyb2xsZXIoJHNjb3BlLCAkdGltZW91dCwgJHBhcnNlLCAkY29udHJvbGxlcikge1xuXHQgICAgLyoganNoaW50IG1heHN0YXRlbWVudHM6MzEgKi9cblx0ICAgIGlmICgkc2NvcGUub3B0aW9ucy5maWVsZEdyb3VwKSB7XG5cdCAgICAgIHNldHVwRmllbGRHcm91cCgpO1xuXHQgICAgICByZXR1cm47XG5cdCAgICB9XG5cblx0ICAgIHZhciBmaWVsZFR5cGUgPSBnZXRGaWVsZFR5cGUoJHNjb3BlLm9wdGlvbnMpO1xuXHQgICAgc2ltcGxpZnlMaWZlKCRzY29wZS5vcHRpb25zKTtcblx0ICAgIG1lcmdlRmllbGRPcHRpb25zV2l0aFR5cGVEZWZhdWx0cygkc2NvcGUub3B0aW9ucywgZmllbGRUeXBlKTtcblx0ICAgIGV4dGVuZE9wdGlvbnNXaXRoRGVmYXVsdHMoJHNjb3BlLm9wdGlvbnMsICRzY29wZS5pbmRleCk7XG5cdCAgICBjaGVja0FwaSgkc2NvcGUub3B0aW9ucyk7XG5cdCAgICAvLyBzZXQgZmllbGQgaWQgdG8gbGluayBsYWJlbHMgYW5kIGZpZWxkc1xuXG5cdCAgICAvLyBpbml0YWxpemF0aW9uXG5cdCAgICBzZXRGaWVsZElkKCk7XG5cdCAgICBzZXREZWZhdWx0VmFsdWUoKTtcblx0ICAgIHNldEluaXRpYWxWYWx1ZSgpO1xuXHQgICAgcnVuRXhwcmVzc2lvbnMoKTtcblx0ICAgIGFkZE1vZGVsV2F0Y2hlcigkc2NvcGUsICRzY29wZS5vcHRpb25zKTtcblx0ICAgIGFkZFZhbGlkYXRpb25NZXNzYWdlcygkc2NvcGUub3B0aW9ucyk7XG5cdCAgICBpbnZva2VDb250cm9sbGVycygkc2NvcGUsICRzY29wZS5vcHRpb25zLCBmaWVsZFR5cGUpO1xuXG5cdCAgICAvLyBmdW5jdGlvbiBkZWZpbml0aW9uc1xuXHQgICAgZnVuY3Rpb24gcnVuRXhwcmVzc2lvbnMoKSB7XG5cdCAgICAgIC8vIG11c3QgcnVuIG9uIG5leHQgdGljayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgY3VycmVudCB2YWx1ZSBpcyBjb3JyZWN0LlxuXHQgICAgICAkdGltZW91dChmdW5jdGlvbiBydW5FeHByZXNzaW9uc09uTmV4dFRpY2soKSB7XG5cdCAgICAgICAgdmFyIGZpZWxkID0gJHNjb3BlLm9wdGlvbnM7XG5cdCAgICAgICAgdmFyIGN1cnJlbnRWYWx1ZSA9IHZhbHVlR2V0dGVyU2V0dGVyKCk7XG5cdCAgICAgICAgYW5ndWxhci5mb3JFYWNoKGZpZWxkLmV4cHJlc3Npb25Qcm9wZXJ0aWVzLCBmdW5jdGlvbiBydW5FeHByZXNzaW9uKGV4cHJlc3Npb24sIHByb3ApIHtcblx0ICAgICAgICAgIHZhciBzZXR0ZXIgPSAkcGFyc2UocHJvcCkuYXNzaWduO1xuXHQgICAgICAgICAgdmFyIHByb21pc2UgPSAkcS53aGVuKGZvcm1seVV0aWwuZm9ybWx5RXZhbCgkc2NvcGUsIGV4cHJlc3Npb24sIGN1cnJlbnRWYWx1ZSkpO1xuXHQgICAgICAgICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uIHNldEZpZWxkVmFsdWUodmFsdWUpIHtcblx0ICAgICAgICAgICAgc2V0dGVyKGZpZWxkLCB2YWx1ZSk7XG5cdCAgICAgICAgICB9KTtcblx0ICAgICAgICB9KTtcblx0ICAgICAgfSk7XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHZhbHVlR2V0dGVyU2V0dGVyKG5ld1ZhbCkge1xuXHQgICAgICBpZiAoISRzY29wZS5tb2RlbCB8fCAhJHNjb3BlLm9wdGlvbnMua2V5KSB7XG5cdCAgICAgICAgcmV0dXJuO1xuXHQgICAgICB9XG5cdCAgICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZChuZXdWYWwpKSB7XG5cdCAgICAgICAgJHNjb3BlLm1vZGVsWyRzY29wZS5vcHRpb25zLmtleV0gPSBuZXdWYWw7XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuICRzY29wZS5tb2RlbFskc2NvcGUub3B0aW9ucy5rZXldO1xuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzaW1wbGlmeUxpZmUob3B0aW9ucykge1xuXHQgICAgICAvLyBhZGQgYSBmZXcgZW1wdHkgb2JqZWN0cyAoaWYgdGhleSBkb24ndCBhbHJlYWR5IGV4aXN0KSBzbyB5b3UgZG9uJ3QgaGF2ZSB0byB1bmRlZmluZWQgY2hlY2sgZXZlcnl3aGVyZVxuXHQgICAgICBmb3JtbHlVdGlsLnJldmVyc2VEZWVwTWVyZ2Uob3B0aW9ucywge1xuXHQgICAgICAgIGRhdGE6IHt9LFxuXHQgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge30sXG5cdCAgICAgICAgdmFsaWRhdGlvbjoge31cblx0ICAgICAgfSk7XG5cdCAgICAgIC8vIGNyZWF0ZSAkc2NvcGUudG8gc28gdGVtcGxhdGUgYXV0aG9ycyBjYW4gcmVmZXJlbmNlIHRvIGluc3RlYWQgb2YgJHNjb3BlLm9wdGlvbnMudGVtcGxhdGVPcHRpb25zXG5cdCAgICAgICRzY29wZS50byA9ICRzY29wZS5vcHRpb25zLnRlbXBsYXRlT3B0aW9ucztcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gc2V0RmllbGRJZCgpIHtcblx0ICAgICAgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbihmb3JtbHlDb25maWcuZXh0cmFzLmdldEZpZWxkSWQpKSB7XG5cdCAgICAgICAgJHNjb3BlLmlkID0gZm9ybWx5Q29uZmlnLmV4dHJhcy5nZXRGaWVsZElkKCRzY29wZS5vcHRpb25zLCAkc2NvcGUubW9kZWwsICRzY29wZSk7XG5cdCAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgdmFyIGZvcm1OYW1lID0gJHNjb3BlLmZvcm0gJiYgJHNjb3BlLmZvcm0uJG5hbWUgfHwgJHNjb3BlLmZvcm1JZDtcblx0ICAgICAgICAkc2NvcGUuaWQgPSBmb3JtbHlVdGlsLmdldEZpZWxkSWQoZm9ybU5hbWUsICRzY29wZS5vcHRpb25zLCAkc2NvcGUuaW5kZXgpO1xuXHQgICAgICB9XG5cdCAgICAgICRzY29wZS5vcHRpb25zLmlkID0gJHNjb3BlLmlkO1xuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXREZWZhdWx0VmFsdWUoKSB7XG5cdCAgICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZCgkc2NvcGUub3B0aW9ucy5kZWZhdWx0VmFsdWUpICYmICFhbmd1bGFyLmlzRGVmaW5lZCgkc2NvcGUubW9kZWxbJHNjb3BlLm9wdGlvbnMua2V5XSkpIHtcblx0ICAgICAgICAkc2NvcGUubW9kZWxbJHNjb3BlLm9wdGlvbnMua2V5XSA9ICRzY29wZS5vcHRpb25zLmRlZmF1bHRWYWx1ZTtcblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXRJbml0aWFsVmFsdWUoKSB7XG5cdCAgICAgICRzY29wZS5vcHRpb25zLmluaXRpYWxWYWx1ZSA9ICRzY29wZS5tb2RlbCAmJiAkc2NvcGUubW9kZWxbJHNjb3BlLm9wdGlvbnMua2V5XTtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gbWVyZ2VGaWVsZE9wdGlvbnNXaXRoVHlwZURlZmF1bHRzKG9wdGlvbnMsIHR5cGUpIHtcblx0ICAgICAgaWYgKHR5cGUpIHtcblx0ICAgICAgICBtZXJnZU9wdGlvbnMob3B0aW9ucywgdHlwZS5kZWZhdWx0T3B0aW9ucyk7XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIHByb3Blck9yZGVyID0gYXJyYXlpZnkob3B0aW9ucy5vcHRpb25zVHlwZXMpLnJldmVyc2UoKTsgLy8gc28gdGhlIHJpZ2h0IHRoaW5ncyBhcmUgb3ZlcnJpZGRlblxuXHQgICAgICBhbmd1bGFyLmZvckVhY2gocHJvcGVyT3JkZXIsIGZ1bmN0aW9uICh0eXBlTmFtZSkge1xuXHQgICAgICAgIG1lcmdlT3B0aW9ucyhvcHRpb25zLCBmb3JtbHlDb25maWcuZ2V0VHlwZSh0eXBlTmFtZSwgdHJ1ZSwgb3B0aW9ucykuZGVmYXVsdE9wdGlvbnMpO1xuXHQgICAgICB9KTtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gbWVyZ2VPcHRpb25zKG9wdGlvbnMsIGV4dHJhT3B0aW9ucykge1xuXHQgICAgICBpZiAoZXh0cmFPcHRpb25zKSB7XG5cdCAgICAgICAgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbihleHRyYU9wdGlvbnMpKSB7XG5cdCAgICAgICAgICBleHRyYU9wdGlvbnMgPSBleHRyYU9wdGlvbnMob3B0aW9ucyk7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGZvcm1seVV0aWwucmV2ZXJzZURlZXBNZXJnZShvcHRpb25zLCBleHRyYU9wdGlvbnMpO1xuXHQgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIGV4dGVuZE9wdGlvbnNXaXRoRGVmYXVsdHMob3B0aW9ucywgaW5kZXgpIHtcblx0ICAgICAgdmFyIGtleSA9IG9wdGlvbnMua2V5IHx8IGluZGV4IHx8IDA7XG5cdCAgICAgIGFuZ3VsYXIuZXh0ZW5kKG9wdGlvbnMsIHtcblx0ICAgICAgICAvLyBhdHRhY2ggdGhlIGtleSBpbiBjYXNlIHRoZSBmb3JtbHktZmllbGQgZGlyZWN0aXZlIGlzIHVzZWQgZGlyZWN0bHlcblx0ICAgICAgICBrZXk6IGtleSxcblx0ICAgICAgICB2YWx1ZTogdmFsdWVHZXR0ZXJTZXR0ZXIsXG5cdCAgICAgICAgcnVuRXhwcmVzc2lvbnM6IHJ1bkV4cHJlc3Npb25zLFxuXHQgICAgICAgIHJlc2V0TW9kZWw6IHJlc2V0TW9kZWwsXG5cdCAgICAgICAgdXBkYXRlSW5pdGlhbFZhbHVlOiB1cGRhdGVJbml0aWFsVmFsdWVcblx0ICAgICAgfSk7XG5cdCAgICB9XG5cblx0ICAgIC8vIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uc1xuXHQgICAgZnVuY3Rpb24gYWRkTW9kZWxXYXRjaGVyKHNjb3BlLCBvcHRpb25zKSB7XG5cdCAgICAgIGlmIChvcHRpb25zLm1vZGVsKSB7XG5cdCAgICAgICAgc2NvcGUuJHdhdGNoKFwib3B0aW9ucy5tb2RlbFwiLCBydW5FeHByZXNzaW9ucywgdHJ1ZSk7XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gcmVzZXRNb2RlbCgpIHtcblx0ICAgICAgJHNjb3BlLm1vZGVsWyRzY29wZS5vcHRpb25zLmtleV0gPSAkc2NvcGUub3B0aW9ucy5pbml0aWFsVmFsdWU7XG5cdCAgICAgIGlmICgkc2NvcGUub3B0aW9ucy5mb3JtQ29udHJvbCkge1xuXHQgICAgICAgICRzY29wZS5vcHRpb25zLmZvcm1Db250cm9sLiRzZXRWaWV3VmFsdWUoJHNjb3BlLm1vZGVsWyRzY29wZS5vcHRpb25zLmtleV0pO1xuXHQgICAgICAgICRzY29wZS5vcHRpb25zLmZvcm1Db250cm9sLiRyZW5kZXIoKTtcblx0ICAgICAgICAkc2NvcGUub3B0aW9ucy5mb3JtQ29udHJvbC4kc2V0VW50b3VjaGVkKCk7XG5cdCAgICAgICAgJHNjb3BlLm9wdGlvbnMuZm9ybUNvbnRyb2wuJHNldFByaXN0aW5lKCk7XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gdXBkYXRlSW5pdGlhbFZhbHVlKCkge1xuXHQgICAgICAkc2NvcGUub3B0aW9ucy5pbml0aWFsVmFsdWUgPSAkc2NvcGUubW9kZWxbJHNjb3BlLm9wdGlvbnMua2V5XTtcblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gYWRkVmFsaWRhdGlvbk1lc3NhZ2VzKG9wdGlvbnMpIHtcblx0ICAgICAgb3B0aW9ucy52YWxpZGF0aW9uLm1lc3NhZ2VzID0gb3B0aW9ucy52YWxpZGF0aW9uLm1lc3NhZ2VzIHx8IHt9O1xuXHQgICAgICBhbmd1bGFyLmZvckVhY2goZm9ybWx5VmFsaWRhdGlvbk1lc3NhZ2VzLm1lc3NhZ2VzLCBmdW5jdGlvbiBjcmVhdGVGdW5jdGlvbkZvck1lc3NhZ2UoZXhwcmVzc2lvbiwgbmFtZSkge1xuXHQgICAgICAgIGlmICghb3B0aW9ucy52YWxpZGF0aW9uLm1lc3NhZ2VzW25hbWVdKSB7XG5cdCAgICAgICAgICBvcHRpb25zLnZhbGlkYXRpb24ubWVzc2FnZXNbbmFtZV0gPSBmdW5jdGlvbiBldmFsdWF0ZU1lc3NhZ2Uodmlld1ZhbHVlLCBtb2RlbFZhbHVlLCBzY29wZSkge1xuXHQgICAgICAgICAgICByZXR1cm4gZm9ybWx5VXRpbC5mb3JtbHlFdmFsKHNjb3BlLCBleHByZXNzaW9uLCBtb2RlbFZhbHVlLCB2aWV3VmFsdWUpO1xuXHQgICAgICAgICAgfTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0pO1xuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBpbnZva2VDb250cm9sbGVycyhzY29wZSkge1xuXHQgICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMV07XG5cdCAgICAgIHZhciB0eXBlID0gYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1syXTtcblxuXHQgICAgICBhbmd1bGFyLmZvckVhY2goW3R5cGUuY29udHJvbGxlciwgb3B0aW9ucy5jb250cm9sbGVyXSwgZnVuY3Rpb24gKGNvbnRyb2xsZXIpIHtcblx0ICAgICAgICBpZiAoY29udHJvbGxlcikge1xuXHQgICAgICAgICAgJGNvbnRyb2xsZXIoY29udHJvbGxlciwgeyAkc2NvcGU6IHNjb3BlIH0pO1xuXHQgICAgICAgIH1cblx0ICAgICAgfSk7XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHNldHVwRmllbGRHcm91cCgpIHtcblx0ICAgICAgJHNjb3BlLm9wdGlvbnMub3B0aW9ucyA9ICRzY29wZS5vcHRpb25zLm9wdGlvbnMgfHwge307XG5cdCAgICAgICRzY29wZS5vcHRpb25zLm9wdGlvbnMuZm9ybVN0YXRlID0gJHNjb3BlLmZvcm1TdGF0ZTtcblx0ICAgIH1cblx0ICB9XG5cblx0ICAvLyBsaW5rIGZ1bmN0aW9uXG5cdCAgZnVuY3Rpb24gZmllbGRMaW5rKHNjb3BlLCBlbCkge1xuXHQgICAgaWYgKHNjb3BlLm9wdGlvbnMuZmllbGRHcm91cCkge1xuXHQgICAgICBzZXRGaWVsZEdyb3VwVGVtcGxhdGUoKTtcblx0ICAgICAgcmV0dXJuO1xuXHQgICAgfVxuXG5cdCAgICBhZGRBdHRyaWJ1dGVzKCk7XG5cdCAgICBhZGRDbGFzc2VzKCk7XG5cblx0ICAgIHZhciB0eXBlID0gZ2V0RmllbGRUeXBlKHNjb3BlLm9wdGlvbnMpO1xuXHQgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG5cdCAgICB2YXIgdGh1c2x5ID0gdGhpcztcblx0ICAgIGdldEZpZWxkVGVtcGxhdGUoc2NvcGUub3B0aW9ucykudGhlbihydW5NYW5pcHVsYXRvcnMoZm9ybWx5Q29uZmlnLnRlbXBsYXRlTWFuaXB1bGF0b3JzLnByZVdyYXBwZXIpKS50aGVuKHRyYW5zY2x1ZGVJbldyYXBwZXJzKHNjb3BlLm9wdGlvbnMpKS50aGVuKHJ1bk1hbmlwdWxhdG9ycyhmb3JtbHlDb25maWcudGVtcGxhdGVNYW5pcHVsYXRvcnMucG9zdFdyYXBwZXIpKS50aGVuKHNldEVsZW1lbnRUZW1wbGF0ZSkudGhlbih3YXRjaEZvcm1Db250cm9sKS50aGVuKGNhbGxMaW5rRnVuY3Rpb25zKVtcImNhdGNoXCJdKGZ1bmN0aW9uIChlcnJvcikge1xuXHQgICAgICBmb3JtbHlXYXJuKFwidGhlcmUtd2FzLWEtcHJvYmxlbS1zZXR0aW5nLXRoZS10ZW1wbGF0ZS1mb3ItdGhpcy1maWVsZFwiLCBcIlRoZXJlIHdhcyBhIHByb2JsZW0gc2V0dGluZyB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZmllbGQgXCIsIHNjb3BlLm9wdGlvbnMsIGVycm9yKTtcblx0ICAgIH0pO1xuXG5cdCAgICBmdW5jdGlvbiBzZXRGaWVsZEdyb3VwVGVtcGxhdGUoKSB7XG5cdCAgICAgIGNoZWNrRmllbGRHcm91cEFwaShzY29wZS5vcHRpb25zKTtcblx0ICAgICAgZWwuYWRkQ2xhc3MoXCJmb3JtbHktZmllbGQtZ3JvdXBcIik7XG5cdCAgICAgIHZhciBleHRyYUF0dHJpYnV0ZXMgPSBcIlwiO1xuXHQgICAgICBpZiAoc2NvcGUub3B0aW9ucy5lbGVtZW50QXR0cmlidXRlcykge1xuXHQgICAgICAgIGV4dHJhQXR0cmlidXRlcyA9IE9iamVjdC5rZXlzKHNjb3BlLm9wdGlvbnMuZWxlbWVudEF0dHJpYnV0ZXMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG5cdCAgICAgICAgICByZXR1cm4gXCJcIiArIGtleSArIFwiPVxcXCJcIiArIHNjb3BlLm9wdGlvbnMuZWxlbWVudEF0dHJpYnV0ZXNba2V5XSArIFwiXFxcIlwiO1xuXHQgICAgICAgIH0pLmpvaW4oXCIgXCIpO1xuXHQgICAgICB9XG5cdCAgICAgIHNldEVsZW1lbnRUZW1wbGF0ZShcIlxcbiAgICAgICAgICA8Zm9ybWx5LWZvcm0gbW9kZWw9XFxcIm1vZGVsXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzPVxcXCJvcHRpb25zLmZpZWxkR3JvdXBcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPVxcXCJvcHRpb25zLm9wdGlvbnNcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICBmb3JtPVxcXCJvcHRpb25zLmZvcm1cXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cXFwiXCIgKyBzY29wZS5vcHRpb25zLmNsYXNzTmFtZSArIFwiXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgXCIgKyBleHRyYUF0dHJpYnV0ZXMgKyBcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgaXMtZmllbGQtZ3JvdXA+XFxuICAgICAgICAgIDwvZm9ybWx5LWZvcm0+XFxuICAgICAgICBcIik7XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIGFkZEF0dHJpYnV0ZXMoKSB7XG5cdCAgICAgIGlmIChzY29wZS5vcHRpb25zLmVsZW1lbnRBdHRyaWJ1dGVzKSB7XG5cdCAgICAgICAgZWwuYXR0cihzY29wZS5vcHRpb25zLmVsZW1lbnRBdHRyaWJ1dGVzKTtcblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBhZGRDbGFzc2VzKCkge1xuXHQgICAgICBpZiAoc2NvcGUub3B0aW9ucy5jbGFzc05hbWUpIHtcblx0ICAgICAgICBlbC5hZGRDbGFzcyhzY29wZS5vcHRpb25zLmNsYXNzTmFtZSk7XG5cdCAgICAgIH1cblx0ICAgICAgaWYgKHNjb3BlLm9wdGlvbnMudHlwZSkge1xuXHQgICAgICAgIGVsLmFkZENsYXNzKFwiZm9ybWx5LWZpZWxkLVwiICsgc2NvcGUub3B0aW9ucy50eXBlKTtcblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBzZXRFbGVtZW50VGVtcGxhdGUodGVtcGxhdGVTdHJpbmcpIHtcblx0ICAgICAgZWwuaHRtbChhc0h0bWwodGVtcGxhdGVTdHJpbmcpKTtcblx0ICAgICAgJGNvbXBpbGUoZWwuY29udGVudHMoKSkoc2NvcGUpO1xuXHQgICAgICByZXR1cm4gdGVtcGxhdGVTdHJpbmc7XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIHdhdGNoRm9ybUNvbnRyb2wodGVtcGxhdGVTdHJpbmcpIHtcblx0ICAgICAgdmFyIHN0b3BXYXRjaGluZ0ZpZWxkID0gYW5ndWxhci5ub29wO1xuXHQgICAgICB2YXIgc3RvcFdhdGNoaW5nU2hvd0Vycm9yID0gYW5ndWxhci5ub29wO1xuXHQgICAgICBpZiAoc2NvcGUub3B0aW9ucy5ub0Zvcm1Db250cm9sKSB7XG5cdCAgICAgICAgcmV0dXJuO1xuXHQgICAgICB9XG5cdCAgICAgIHZhciB0ZW1wbGF0ZUVsID0gYW5ndWxhci5lbGVtZW50KFwiPGRpdj5cIiArIHRlbXBsYXRlU3RyaW5nICsgXCI8L2Rpdj5cIik7XG5cdCAgICAgIHZhciBuZ01vZGVsTm9kZSA9IHRlbXBsYXRlRWxbMF0ucXVlcnlTZWxlY3RvcihcIltuZy1tb2RlbF0sW2RhdGEtbmctbW9kZWxdXCIpO1xuXHQgICAgICBpZiAobmdNb2RlbE5vZGUgJiYgbmdNb2RlbE5vZGUuZ2V0QXR0cmlidXRlKFwibmFtZVwiKSkge1xuXHQgICAgICAgIHdhdGNoRmllbGROYW1lT3JFeGlzdGVuY2UobmdNb2RlbE5vZGUuZ2V0QXR0cmlidXRlKFwibmFtZVwiKSk7XG5cdCAgICAgIH1cblxuXHQgICAgICBmdW5jdGlvbiB3YXRjaEZpZWxkTmFtZU9yRXhpc3RlbmNlKG5hbWUpIHtcblx0ICAgICAgICB2YXIgbmFtZUV4cHJlc3Npb25SZWdleCA9IC9cXHtcXHsoLio/KX19Lztcblx0ICAgICAgICB2YXIgbmFtZUV4cHJlc3Npb24gPSBuYW1lRXhwcmVzc2lvblJlZ2V4LmV4ZWMobmFtZSk7XG5cdCAgICAgICAgaWYgKG5hbWVFeHByZXNzaW9uKSB7XG5cdCAgICAgICAgICB3YXRjaEZpZWxkTmFtZShuYW1lRXhwcmVzc2lvblsxXSk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgIHdhdGNoRmllbGRFeGlzdGVuY2UobmFtZSk7XG5cdCAgICAgICAgfVxuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gd2F0Y2hGaWVsZE5hbWUoZXhwcmVzc2lvbikge1xuXHQgICAgICAgIHNjb3BlLiR3YXRjaChleHByZXNzaW9uLCBmdW5jdGlvbiBvbmVGaWVsZE5hbWVDaGFuZ2UobmFtZSkge1xuXHQgICAgICAgICAgaWYgKG5hbWUpIHtcblx0ICAgICAgICAgICAgc3RvcFdhdGNoaW5nRmllbGQoKTtcblx0ICAgICAgICAgICAgd2F0Y2hGaWVsZEV4aXN0ZW5jZShuYW1lKTtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9KTtcblx0ICAgICAgfVxuXG5cdCAgICAgIGZ1bmN0aW9uIHdhdGNoRmllbGRFeGlzdGVuY2UobmFtZSkge1xuXHQgICAgICAgIHN0b3BXYXRjaGluZ0ZpZWxkID0gc2NvcGUuJHdhdGNoKFwiZm9ybVtcXFwiXCIgKyBuYW1lICsgXCJcXFwiXVwiLCBmdW5jdGlvbiBmb3JtQ29udHJvbENoYW5nZShmb3JtQ29udHJvbCkge1xuXHQgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG5cdCAgICAgICAgICAgIHNjb3BlLmZjID0gZm9ybUNvbnRyb2w7IC8vIHNob3J0Y3V0IGZvciB0ZW1wbGF0ZSBhdXRob3JzXG5cdCAgICAgICAgICAgIHNjb3BlLm9wdGlvbnMuZm9ybUNvbnRyb2wgPSBmb3JtQ29udHJvbDtcblx0ICAgICAgICAgICAgc3RvcFdhdGNoaW5nU2hvd0Vycm9yKCk7XG5cdCAgICAgICAgICAgIGFkZFNob3dNZXNzYWdlc1dhdGNoZXIoKTtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9KTtcblx0ICAgICAgfVxuXG5cdCAgICAgIGZ1bmN0aW9uIGFkZFNob3dNZXNzYWdlc1dhdGNoZXIoKSB7XG5cdCAgICAgICAgc3RvcFdhdGNoaW5nU2hvd0Vycm9yID0gc2NvcGUuJHdhdGNoKGZ1bmN0aW9uIHdhdGNoU2hvd1ZhbGlkYXRpb25DaGFuZ2UoKSB7XG5cdCAgICAgICAgICB2YXIgY3VzdG9tRXhwcmVzc2lvbiA9IGZvcm1seUNvbmZpZy5leHRyYXMuZXJyb3JFeGlzdHNBbmRTaG91bGRCZVZpc2libGVFeHByZXNzaW9uO1xuXHQgICAgICAgICAgdmFyIG9wdGlvbnMgPSBzY29wZS5vcHRpb25zO1xuXHQgICAgICAgICAgdmFyIGZjID0gc2NvcGUuZmM7XG5cblx0ICAgICAgICAgIGlmICghZmMuJGludmFsaWQpIHtcblx0ICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXHQgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucy52YWxpZGF0aW9uLnNob3cgPT09IFwiYm9vbGVhblwiKSB7XG5cdCAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnZhbGlkYXRpb24uc2hvdztcblx0ICAgICAgICAgIH0gZWxzZSBpZiAoY3VzdG9tRXhwcmVzc2lvbikge1xuXHQgICAgICAgICAgICByZXR1cm4gZm9ybWx5VXRpbC5mb3JtbHlFdmFsKHNjb3BlLCBjdXN0b21FeHByZXNzaW9uLCBmYy4kbW9kZWxWYWx1ZSwgZmMuJHZpZXdWYWx1ZSk7XG5cdCAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICB2YXIgbm9Ub3VjaGVkQnV0RGlydHkgPSBhbmd1bGFyLmlzVW5kZWZpbmVkKGZjLiR0b3VjaGVkKSAmJiBmYy4kZGlydHk7XG5cdCAgICAgICAgICAgIHJldHVybiBzY29wZS5mYy4kdG91Y2hlZCB8fCBub1RvdWNoZWRCdXREaXJ0eTtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9LCBmdW5jdGlvbiBvblNob3dWYWxpZGF0aW9uQ2hhbmdlKHNob3cpIHtcblx0ICAgICAgICAgIHNjb3BlLm9wdGlvbnMudmFsaWRhdGlvbi5lcnJvckV4aXN0c0FuZFNob3VsZEJlVmlzaWJsZSA9IHNob3c7XG5cdCAgICAgICAgICBzY29wZS5zaG93RXJyb3IgPSBzaG93OyAvLyBzaG9ydGN1dCBmb3IgdGVtcGxhdGUgYXV0aG9yc1xuXHQgICAgICAgIH0pO1xuXHQgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIGZ1bmN0aW9uIGNhbGxMaW5rRnVuY3Rpb25zKCkge1xuXHQgICAgICBpZiAodHlwZSAmJiB0eXBlLmxpbmspIHtcblx0ICAgICAgICB0eXBlLmxpbmsuYXBwbHkodGh1c2x5LCBhcmdzKTtcblx0ICAgICAgfVxuXHQgICAgICBpZiAoc2NvcGUub3B0aW9ucy5saW5rKSB7XG5cdCAgICAgICAgc2NvcGUub3B0aW9ucy5saW5rLmFwcGx5KHRodXNseSwgYXJncyk7XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gcnVuTWFuaXB1bGF0b3JzKG1hbmlwdWxhdG9ycykge1xuXHQgICAgICByZXR1cm4gZnVuY3Rpb24gcnVuTWFuaXB1bGF0b3JzT25UZW1wbGF0ZSh0ZW1wbGF0ZSkge1xuXHQgICAgICAgIHZhciBjaGFpbiA9ICRxLndoZW4odGVtcGxhdGUpO1xuXHQgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChtYW5pcHVsYXRvcnMsIGZ1bmN0aW9uIChtYW5pcHVsYXRvcikge1xuXHQgICAgICAgICAgY2hhaW4gPSBjaGFpbi50aGVuKGZ1bmN0aW9uICh0ZW1wbGF0ZSkge1xuXHQgICAgICAgICAgICByZXR1cm4gJHEud2hlbihtYW5pcHVsYXRvcih0ZW1wbGF0ZSwgc2NvcGUub3B0aW9ucywgc2NvcGUpKS50aGVuKGZ1bmN0aW9uIChuZXdUZW1wbGF0ZSkge1xuXHQgICAgICAgICAgICAgIHJldHVybiBhbmd1bGFyLmlzU3RyaW5nKG5ld1RlbXBsYXRlKSA/IG5ld1RlbXBsYXRlIDogYXNIdG1sKG5ld1RlbXBsYXRlKTtcblx0ICAgICAgICAgICAgfSk7XG5cdCAgICAgICAgICB9KTtcblx0ICAgICAgICB9KTtcblx0ICAgICAgICByZXR1cm4gY2hhaW47XG5cdCAgICAgIH07XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgLy8gc3RhdGVsZXNzIHV0aWwgZnVuY3Rpb25zXG5cdCAgZnVuY3Rpb24gYXNIdG1sKGVsKSB7XG5cdCAgICB2YXIgd3JhcHBlciA9IGFuZ3VsYXIuZWxlbWVudChcIjxhPjwvYT5cIik7XG5cdCAgICByZXR1cm4gd3JhcHBlci5hcHBlbmQoZWwpLmh0bWwoKTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBnZXRGaWVsZFR5cGUob3B0aW9ucykge1xuXHQgICAgcmV0dXJuIG9wdGlvbnMudHlwZSAmJiBmb3JtbHlDb25maWcuZ2V0VHlwZShvcHRpb25zLnR5cGUpO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldEZpZWxkVGVtcGxhdGUob3B0aW9ucykge1xuXHQgICAgZnVuY3Rpb24gZnJvbU9wdGlvbnNPclR5cGUoa2V5LCB0eXBlKSB7XG5cdCAgICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZChvcHRpb25zW2tleV0pKSB7XG5cdCAgICAgICAgcmV0dXJuIG9wdGlvbnNba2V5XTtcblx0ICAgICAgfSBlbHNlIGlmICh0eXBlICYmIGFuZ3VsYXIuaXNEZWZpbmVkKHR5cGVba2V5XSkpIHtcblx0ICAgICAgICByZXR1cm4gdHlwZVtrZXldO1xuXHQgICAgICB9XG5cdCAgICB9XG5cblx0ICAgIHZhciB0eXBlID0gZm9ybWx5Q29uZmlnLmdldFR5cGUob3B0aW9ucy50eXBlLCB0cnVlLCBvcHRpb25zKTtcblx0ICAgIHZhciB0ZW1wbGF0ZSA9IGZyb21PcHRpb25zT3JUeXBlKFwidGVtcGxhdGVcIiwgdHlwZSk7XG5cdCAgICB2YXIgdGVtcGxhdGVVcmwgPSBmcm9tT3B0aW9uc09yVHlwZShcInRlbXBsYXRlVXJsXCIsIHR5cGUpO1xuXHQgICAgaWYgKGFuZ3VsYXIuaXNVbmRlZmluZWQodGVtcGxhdGUpICYmICF0ZW1wbGF0ZVVybCkge1xuXHQgICAgICB0aHJvdyBmb3JtbHlVc2FiaWxpdHkuZ2V0RmllbGRFcnJvcihcInR5cGUtdHlwZS1oYXMtbm8tdGVtcGxhdGVcIiwgXCJUeXBlICdcIiArIG9wdGlvbnMudHlwZSArIFwiJyBoYXMgbm90IHRlbXBsYXRlLiBPbiBlbGVtZW50OlwiLCBvcHRpb25zKTtcblx0ICAgIH1cblxuXHQgICAgcmV0dXJuIGdldFRlbXBsYXRlKHRlbXBsYXRlVXJsIHx8IHRlbXBsYXRlLCBhbmd1bGFyLmlzVW5kZWZpbmVkKHRlbXBsYXRlKSwgb3B0aW9ucyk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZ2V0VGVtcGxhdGUodGVtcGxhdGUsIGlzVXJsLCBvcHRpb25zKSB7XG5cdCAgICB2YXIgdGVtcGxhdGVQcm9taXNlID0gdW5kZWZpbmVkO1xuXHQgICAgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbih0ZW1wbGF0ZSkpIHtcblx0ICAgICAgdGVtcGxhdGVQcm9taXNlID0gJHEud2hlbih0ZW1wbGF0ZShvcHRpb25zKSk7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICB0ZW1wbGF0ZVByb21pc2UgPSAkcS53aGVuKHRlbXBsYXRlKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKCFpc1VybCkge1xuXHQgICAgICByZXR1cm4gdGVtcGxhdGVQcm9taXNlO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgdmFyIF9yZXQgPSAoZnVuY3Rpb24gKCkge1xuXHQgICAgICAgIHZhciBodHRwT3B0aW9ucyA9IHsgY2FjaGU6ICR0ZW1wbGF0ZUNhY2hlIH07XG5cdCAgICAgICAgcmV0dXJuIHtcblx0ICAgICAgICAgIHY6IHRlbXBsYXRlUHJvbWlzZS50aGVuKGZ1bmN0aW9uICh1cmwpIHtcblx0ICAgICAgICAgICAgcmV0dXJuICRodHRwLmdldCh1cmwsIGh0dHBPcHRpb25zKTtcblx0ICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG5cdCAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuXHQgICAgICAgICAgfSlbXCJjYXRjaFwiXShmdW5jdGlvbiBoYW5kbGVFcnJvckdldHRpbmdBVGVtcGxhdGUoZXJyb3IpIHtcblx0ICAgICAgICAgICAgZm9ybWx5V2FybihcInByb2JsZW0tbG9hZGluZy10ZW1wbGF0ZS1mb3ItdGVtcGxhdGV1cmxcIiwgXCJQcm9ibGVtIGxvYWRpbmcgdGVtcGxhdGUgZm9yIFwiICsgdGVtcGxhdGUsIGVycm9yKTtcblx0ICAgICAgICAgIH0pXG5cdCAgICAgICAgfTtcblx0ICAgICAgfSkoKTtcblxuXHQgICAgICBpZiAodHlwZW9mIF9yZXQgPT09IFwib2JqZWN0XCIpIHtcblx0ICAgICAgICByZXR1cm4gX3JldC52O1xuXHQgICAgICB9XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gdHJhbnNjbHVkZUluV3JhcHBlcnMob3B0aW9ucykge1xuXHQgICAgdmFyIHdyYXBwZXIgPSBnZXRXcmFwcGVyT3B0aW9uKG9wdGlvbnMpO1xuXG5cdCAgICByZXR1cm4gZnVuY3Rpb24gdHJhbnNjbHVkZVRlbXBsYXRlKHRlbXBsYXRlKSB7XG5cdCAgICAgIGlmICghd3JhcHBlci5sZW5ndGgpIHtcblx0ICAgICAgICByZXR1cm4gJHEud2hlbih0ZW1wbGF0ZSk7XG5cdCAgICAgIH1cblxuXHQgICAgICB3cmFwcGVyLmZvckVhY2goZnVuY3Rpb24gKHdyYXBwZXIpIHtcblx0ICAgICAgICBmb3JtbHlVc2FiaWxpdHkuY2hlY2tXcmFwcGVyKHdyYXBwZXIsIG9wdGlvbnMpO1xuXHQgICAgICAgIHdyYXBwZXIudmFsaWRhdGVPcHRpb25zICYmIHdyYXBwZXIudmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpO1xuXHQgICAgICAgIHJ1bkFwaUNoZWNrKHdyYXBwZXIsIG9wdGlvbnMpO1xuXHQgICAgICB9KTtcblx0ICAgICAgdmFyIHByb21pc2VzID0gd3JhcHBlci5tYXAoZnVuY3Rpb24gKHcpIHtcblx0ICAgICAgICByZXR1cm4gZ2V0VGVtcGxhdGUody50ZW1wbGF0ZSB8fCB3LnRlbXBsYXRlVXJsLCAhdy50ZW1wbGF0ZSk7XG5cdCAgICAgIH0pO1xuXHQgICAgICByZXR1cm4gJHEuYWxsKHByb21pc2VzKS50aGVuKGZ1bmN0aW9uICh3cmFwcGVyc1RlbXBsYXRlcykge1xuXHQgICAgICAgIHdyYXBwZXJzVGVtcGxhdGVzLmZvckVhY2goZnVuY3Rpb24gKHdyYXBwZXJUZW1wbGF0ZSwgaW5kZXgpIHtcblx0ICAgICAgICAgIGZvcm1seVVzYWJpbGl0eS5jaGVja1dyYXBwZXJUZW1wbGF0ZSh3cmFwcGVyVGVtcGxhdGUsIHdyYXBwZXJbaW5kZXhdKTtcblx0ICAgICAgICB9KTtcblx0ICAgICAgICB3cmFwcGVyc1RlbXBsYXRlcy5yZXZlcnNlKCk7IC8vIHdyYXBwZXIgMCBpcyB3cmFwcGVkIGluIHdyYXBwZXIgMSBhbmQgc28gb24uLi5cblx0ICAgICAgICB2YXIgdG90YWxXcmFwcGVyID0gd3JhcHBlcnNUZW1wbGF0ZXMuc2hpZnQoKTtcblx0ICAgICAgICB3cmFwcGVyc1RlbXBsYXRlcy5mb3JFYWNoKGZ1bmN0aW9uICh3cmFwcGVyVGVtcGxhdGUpIHtcblx0ICAgICAgICAgIHRvdGFsV3JhcHBlciA9IGRvVHJhbnNjbHVzaW9uKHRvdGFsV3JhcHBlciwgd3JhcHBlclRlbXBsYXRlKTtcblx0ICAgICAgICB9KTtcblx0ICAgICAgICByZXR1cm4gZG9UcmFuc2NsdXNpb24odG90YWxXcmFwcGVyLCB0ZW1wbGF0ZSk7XG5cdCAgICAgIH0pO1xuXHQgICAgfTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBkb1RyYW5zY2x1c2lvbih3cmFwcGVyLCB0ZW1wbGF0ZSkge1xuXHQgICAgdmFyIHN1cGVyV3JhcHBlciA9IGFuZ3VsYXIuZWxlbWVudChcIjxhPjwvYT5cIik7IC8vIHRoaXMgYWxsb3dzIHBlb3BsZSBub3QgaGF2ZSB0byBoYXZlIGEgc2luZ2xlIHJvb3QgaW4gd3JhcHBlcnNcblx0ICAgIHN1cGVyV3JhcHBlci5hcHBlbmQod3JhcHBlcik7XG5cdCAgICB2YXIgdHJhbnNjbHVkZUVsID0gc3VwZXJXcmFwcGVyLmZpbmQoXCJmb3JtbHktdHJhbnNjbHVkZVwiKTtcblx0ICAgIGlmICghdHJhbnNjbHVkZUVsLmxlbmd0aCkge1xuXHQgICAgICAvL3RyeSBpdCB1c2luZyBvdXIgY3VzdG9tIGZpbmQgZnVuY3Rpb25cblx0ICAgICAgdHJhbnNjbHVkZUVsID0gZm9ybWx5VXRpbC5maW5kQnlOb2RlTmFtZShzdXBlcldyYXBwZXIsIFwiZm9ybWx5LXRyYW5zY2x1ZGVcIik7XG5cdCAgICB9XG5cdCAgICB0cmFuc2NsdWRlRWwucmVwbGFjZVdpdGgodGVtcGxhdGUpO1xuXHQgICAgcmV0dXJuIHN1cGVyV3JhcHBlci5odG1sKCk7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gZ2V0V3JhcHBlck9wdGlvbihvcHRpb25zKSB7XG5cdCAgICB2YXIgd3JhcHBlciA9IG9wdGlvbnMud3JhcHBlcjtcblx0ICAgIC8vIGV4cGxpY2l0IG51bGwgbWVhbnMgbm8gd3JhcHBlclxuXHQgICAgaWYgKHdyYXBwZXIgPT09IG51bGwpIHtcblx0ICAgICAgcmV0dXJuIFtdO1xuXHQgICAgfVxuXG5cdCAgICAvLyBub3RoaW5nIHNwZWNpZmllZCBtZWFucyB1c2UgdGhlIGRlZmF1bHQgd3JhcHBlciBmb3IgdGhlIHR5cGVcblx0ICAgIGlmICghd3JhcHBlcikge1xuXHQgICAgICAvLyBnZXQgYWxsIHdyYXBwZXJzIHRoYXQgc3BlY2lmeSB0aGV5IGFwcGx5IHRvIHRoaXMgdHlwZVxuXHQgICAgICB3cmFwcGVyID0gYXJyYXlpZnkoZm9ybWx5Q29uZmlnLmdldFdyYXBwZXJCeVR5cGUob3B0aW9ucy50eXBlKSk7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICB3cmFwcGVyID0gYXJyYXlpZnkod3JhcHBlcikubWFwKGZvcm1seUNvbmZpZy5nZXRXcmFwcGVyKTtcblx0ICAgIH1cblxuXHQgICAgLy8gZ2V0IGFsbCB3cmFwcGVycyBmb3IgdGhhdCB0aGlzIHR5cGUgc3BlY2lmaWVkIHRoYXQgaXQgdXNlcy5cblx0ICAgIHZhciB0eXBlID0gZm9ybWx5Q29uZmlnLmdldFR5cGUob3B0aW9ucy50eXBlLCB0cnVlLCBvcHRpb25zKTtcblx0ICAgIGlmICh0eXBlICYmIHR5cGUud3JhcHBlcikge1xuXHQgICAgICB2YXIgdHlwZVdyYXBwZXJzID0gYXJyYXlpZnkodHlwZS53cmFwcGVyKS5tYXAoZm9ybWx5Q29uZmlnLmdldFdyYXBwZXIpO1xuXHQgICAgICB3cmFwcGVyID0gd3JhcHBlci5jb25jYXQodHlwZVdyYXBwZXJzKTtcblx0ICAgIH1cblxuXHQgICAgLy8gYWRkIHRoZSBkZWZhdWx0IHdyYXBwZXIgbGFzdFxuXHQgICAgdmFyIGRlZmF1bHRXcmFwcGVyID0gZm9ybWx5Q29uZmlnLmdldFdyYXBwZXIoKTtcblx0ICAgIGlmIChkZWZhdWx0V3JhcHBlcikge1xuXHQgICAgICB3cmFwcGVyLnB1c2goZGVmYXVsdFdyYXBwZXIpO1xuXHQgICAgfVxuXHQgICAgcmV0dXJuIHdyYXBwZXI7XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gY2hlY2tBcGkob3B0aW9ucykge1xuXHQgICAgZm9ybWx5QXBpQ2hlY2tbXCJ0aHJvd1wiXShmb3JtbHlBcGlDaGVjay5mb3JtbHlGaWVsZE9wdGlvbnMsIG9wdGlvbnMsIHtcblx0ICAgICAgcHJlZml4OiBcImZvcm1seS1maWVsZCBkaXJlY3RpdmVcIixcblx0ICAgICAgdXJsOiBcImZvcm1seS1maWVsZC1kaXJlY3RpdmUtdmFsaWRhdGlvbi1mYWlsZWRcIlxuXHQgICAgfSk7XG5cdCAgICAvLyB2YWxpZGF0ZSB3aXRoIHRoZSB0eXBlXG5cdCAgICB2YXIgdHlwZSA9IG9wdGlvbnMudHlwZSAmJiBmb3JtbHlDb25maWcuZ2V0VHlwZShvcHRpb25zLnR5cGUpO1xuXHQgICAgaWYgKHR5cGUpIHtcblx0ICAgICAgaWYgKHR5cGUudmFsaWRhdGVPcHRpb25zKSB7XG5cdCAgICAgICAgdHlwZS52YWxpZGF0ZU9wdGlvbnMob3B0aW9ucyk7XG5cdCAgICAgIH1cblx0ICAgICAgcnVuQXBpQ2hlY2sodHlwZSwgb3B0aW9ucyk7XG5cdCAgICB9XG5cdCAgfVxuXG5cdCAgZnVuY3Rpb24gY2hlY2tGaWVsZEdyb3VwQXBpKG9wdGlvbnMpIHtcblx0ICAgIGZvcm1seUFwaUNoZWNrW1widGhyb3dcIl0oZm9ybWx5QXBpQ2hlY2suZmllbGRHcm91cCwgb3B0aW9ucywge1xuXHQgICAgICBwcmVmaXg6IFwiZm9ybWx5LWZpZWxkIGRpcmVjdGl2ZVwiLFxuXHQgICAgICB1cmw6IFwiZm9ybWx5LWZpZWxkLWRpcmVjdGl2ZS12YWxpZGF0aW9uLWZhaWxlZFwiXG5cdCAgICB9KTtcblx0ICB9XG5cblx0ICBmdW5jdGlvbiBydW5BcGlDaGVjayhfcmVmLCBvcHRpb25zKSB7XG5cdCAgICB2YXIgYXBpQ2hlY2sgPSBfcmVmLmFwaUNoZWNrO1xuXHQgICAgdmFyIGFwaUNoZWNrSW5zdGFuY2UgPSBfcmVmLmFwaUNoZWNrSW5zdGFuY2U7XG5cdCAgICB2YXIgYXBpQ2hlY2tGdW5jdGlvbiA9IF9yZWYuYXBpQ2hlY2tGdW5jdGlvbjtcblx0ICAgIHZhciBhcGlDaGVja09wdGlvbnMgPSBfcmVmLmFwaUNoZWNrT3B0aW9ucztcblxuXHQgICAgaWYgKCFhcGlDaGVjaykge1xuXHQgICAgICByZXR1cm47XG5cdCAgICB9XG5cdCAgICB2YXIgaW5zdGFuY2UgPSBhcGlDaGVja0luc3RhbmNlIHx8IGZvcm1seUFwaUNoZWNrO1xuXHQgICAgdmFyIGZuID0gYXBpQ2hlY2tGdW5jdGlvbiB8fCBcIndhcm5cIjtcblx0ICAgIHZhciBzaGFwZSA9IGluc3RhbmNlLnNoYXBlKGFwaUNoZWNrKTtcblx0ICAgIGluc3RhbmNlW2ZuXShzaGFwZSwgb3B0aW9ucywgYXBpQ2hlY2tPcHRpb25zIHx8IHtcblx0ICAgICAgcHJlZml4OiBcImZvcm1seS1maWVsZCBcIiArIG5hbWUsXG5cdCAgICAgIHVybDogZm9ybWx5QXBpQ2hlY2suY29uZmlnLm91dHB1dC5kb2NzQmFzZVVybCArIFwiZm9ybWx5LWZpZWxkLXR5cGUtYXBpY2hlY2stZmFpbGVkXCJcblx0ICAgIH0pO1xuXHQgIH1cblx0fVxuXHRmb3JtbHlGaWVsZC4kaW5qZWN0ID0gW1wiJGh0dHBcIiwgXCIkcVwiLCBcIiRjb21waWxlXCIsIFwiJHRlbXBsYXRlQ2FjaGVcIiwgXCJmb3JtbHlDb25maWdcIiwgXCJmb3JtbHlWYWxpZGF0aW9uTWVzc2FnZXNcIiwgXCJmb3JtbHlBcGlDaGVja1wiLCBcImZvcm1seVV0aWxcIiwgXCJmb3JtbHlVc2FiaWxpdHlcIiwgXCJmb3JtbHlXYXJuXCJdO1xuXG4vKioqLyB9LFxuLyogMTEgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZm9ybWx5Rm9jdXM7XG5cblx0Ly8gQG5nSW5qZWN0XG5cdGZ1bmN0aW9uIGZvcm1seUZvY3VzKCR0aW1lb3V0LCAkZG9jdW1lbnQpIHtcblx0ICAvKiBqc2hpbnQgLVcwNTIgKi9cblx0ICByZXR1cm4ge1xuXHQgICAgcmVzdHJpY3Q6IFwiQVwiLFxuXHQgICAgbGluazogZnVuY3Rpb24gZm9ybWx5Rm9jdXNMaW5rKHNjb3BlLCBlbGVtZW50LCBhdHRycykge1xuXHQgICAgICB2YXIgcHJldmlvdXNFbCA9IG51bGw7XG5cdCAgICAgIHZhciBlbCA9IGVsZW1lbnRbMF07XG5cdCAgICAgIHZhciBkb2MgPSAkZG9jdW1lbnRbMF07XG5cdCAgICAgIGF0dHJzLiRvYnNlcnZlKFwiZm9ybWx5Rm9jdXNcIiwgZnVuY3Rpb24gcmVzcG9uZFRvRm9jdXNFeHByZXNzaW9uQ2hhbmdlKHZhbHVlKSB7XG5cdCAgICAgICAgaWYgKHZhbHVlID09PSBcInRydWVcIikge1xuXHQgICAgICAgICAgJHRpbWVvdXQoZnVuY3Rpb24gc2V0RWxlbWVudEZvY3VzKCkge1xuXHQgICAgICAgICAgICBwcmV2aW91c0VsID0gZG9jLmFjdGl2ZUVsZW1lbnQ7XG5cdCAgICAgICAgICAgIGVsLmZvY3VzKCk7XG5cdCAgICAgICAgICB9LCB+IH5hdHRycy5mb2N1c1dhaXQpO1xuXHQgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiZmFsc2VcIikge1xuXHQgICAgICAgICAgaWYgKGRvYy5hY3RpdmVFbGVtZW50ID09PSBlbCkge1xuXHQgICAgICAgICAgICBlbC5ibHVyKCk7XG5cdCAgICAgICAgICAgIGlmIChhdHRycy5oYXNPd25Qcm9wZXJ0eShcInJlZm9jdXNcIikgJiYgcHJldmlvdXNFbCkge1xuXHQgICAgICAgICAgICAgIHByZXZpb3VzRWwuZm9jdXMoKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgICAgfVxuXHQgICAgICAgIH1cblx0ICAgICAgfSk7XG5cdCAgICB9XG5cdCAgfTtcblx0fVxuXHRmb3JtbHlGb2N1cy4kaW5qZWN0ID0gW1wiJHRpbWVvdXRcIiwgXCIkZG9jdW1lbnRcIl07XG5cbi8qKiovIH0sXG4vKiAxMiAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIF9pbnRlcm9wUmVxdWlyZSA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9ialtcImRlZmF1bHRcIl0gOiBvYmo7IH07XG5cblx0dmFyIF90b0NvbnN1bWFibGVBcnJheSA9IGZ1bmN0aW9uIChhcnIpIHsgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgeyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IEFycmF5KGFyci5sZW5ndGgpOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSBhcnIyW2ldID0gYXJyW2ldOyByZXR1cm4gYXJyMjsgfSBlbHNlIHsgcmV0dXJuIEFycmF5LmZyb20oYXJyKTsgfSB9O1xuXG5cdHZhciBfc2xpY2UgPSBBcnJheS5wcm90b3R5cGUuc2xpY2U7XG5cblx0dmFyIGFuZ3VsYXIgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxNSkpO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZm9ybWx5Rm9ybTtcblxuXHQvKipcblx0ICogQG5nZG9jIGRpcmVjdGl2ZVxuXHQgKiBAbmFtZSBmb3JtbHlGb3JtXG5cdCAqIEByZXN0cmljdCBFXG5cdCAqL1xuXHQvLyBAbmdJbmplY3Rcblx0ZnVuY3Rpb24gZm9ybWx5Rm9ybShmb3JtbHlVc2FiaWxpdHksICRwYXJzZSwgZm9ybWx5QXBpQ2hlY2ssIGZvcm1seUNvbmZpZykge1xuXHQgIHZhciBjdXJyZW50Rm9ybUlkID0gMTtcblx0ICByZXR1cm4ge1xuXHQgICAgcmVzdHJpY3Q6IFwiRVwiLFxuXHQgICAgdGVtcGxhdGU6IGZ1bmN0aW9uIGZvcm1seUZvcm1HZXRUZW1wbGF0ZShlbCwgYXR0cnMpIHtcblx0ICAgICAgLyoganNoaW50IC1XMDMzICovIC8vIHRoaXMgYmVjYXVzZSBqc2hpbnQgaXMgYnJva2VuIEkgZ3Vlc3MuLi5cblx0ICAgICAgdmFyIHJvb3RFbCA9IGdldFJvb3RFbCgpO1xuXHQgICAgICB2YXIgZmllbGRSb290RWwgPSBnZXRGaWVsZFJvb3RFbCgpO1xuXHQgICAgICB2YXIgZm9ybUlkID0gXCJmb3JtbHlfXCIgKyBjdXJyZW50Rm9ybUlkKys7XG5cdCAgICAgIHZhciBwYXJlbnRGb3JtQXR0cmlidXRlcyA9IFwiXCI7XG5cdCAgICAgIGlmIChhdHRycy5oYXNPd25Qcm9wZXJ0eShcImlzRmllbGRHcm91cFwiKSAmJiBlbC5wYXJlbnQoKS5wYXJlbnQoKS5oYXNDbGFzcyhcImZvcm1seVwiKSkge1xuXHQgICAgICAgIHBhcmVudEZvcm1BdHRyaWJ1dGVzID0gY29weUF0dHJpYnV0ZXMoZWwucGFyZW50KCkucGFyZW50KClbMF0uYXR0cmlidXRlcyk7XG5cdCAgICAgIH1cblx0ICAgICAgcmV0dXJuIFwiXFxuICAgICAgICA8XCIgKyByb290RWwgKyBcIiBjbGFzcz1cXFwiZm9ybWx5XFxcIlxcbiAgICAgICAgICAgICAgICAgbmFtZT1cXFwiXCIgKyBnZXRGb3JtTmFtZSgpICsgXCJcXFwiXFxuICAgICAgICAgICAgICAgICByb2xlPVxcXCJmb3JtXFxcIiBcIiArIHBhcmVudEZvcm1BdHRyaWJ1dGVzICsgXCI+XFxuICAgICAgICAgIDxcIiArIGZpZWxkUm9vdEVsICsgXCIgZm9ybWx5LWZpZWxkXFxuICAgICAgICAgICAgICAgbmctcmVwZWF0PVxcXCJmaWVsZCBpbiBmaWVsZHMgXCIgKyBnZXRUcmFja0J5KCkgKyBcIlxcXCJcXG4gICAgICAgICAgICAgICBcIiArIGdldEhpZGVEaXJlY3RpdmUoKSArIFwiPVxcXCIhZmllbGQuaGlkZVxcXCJcXG4gICAgICAgICAgICAgICBjbGFzcz1cXFwiZm9ybWx5LWZpZWxkXFxcIlxcbiAgICAgICAgICAgICAgIG9wdGlvbnM9XFxcImZpZWxkXFxcIlxcbiAgICAgICAgICAgICAgIG1vZGVsPVxcXCJmaWVsZC5tb2RlbCB8fCBtb2RlbFxcXCJcXG4gICAgICAgICAgICAgICBmaWVsZHM9XFxcImZpZWxkc1xcXCJcXG4gICAgICAgICAgICAgICBmb3JtPVxcXCJ0aGVGb3JtbHlGb3JtXFxcIlxcbiAgICAgICAgICAgICAgIGZvcm0taWQ9XFxcIlwiICsgZ2V0Rm9ybU5hbWUoKSArIFwiXFxcIlxcbiAgICAgICAgICAgICAgIGZvcm0tc3RhdGU9XFxcIm9wdGlvbnMuZm9ybVN0YXRlXFxcIlxcbiAgICAgICAgICAgICAgIGluZGV4PVxcXCIkaW5kZXhcXFwiPlxcbiAgICAgICAgICA8L1wiICsgZmllbGRSb290RWwgKyBcIj5cXG4gICAgICAgICAgPGRpdiBuZy10cmFuc2NsdWRlPjwvZGl2PlxcbiAgICAgICAgPC9cIiArIHJvb3RFbCArIFwiPlxcbiAgICAgIFwiO1xuXG5cdCAgICAgIGZ1bmN0aW9uIGdldFJvb3RFbCgpIHtcblx0ICAgICAgICByZXR1cm4gYXR0cnMucm9vdEVsIHx8IFwibmctZm9ybVwiO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gZ2V0RmllbGRSb290RWwoKSB7XG5cdCAgICAgICAgcmV0dXJuIGF0dHJzLmZpZWxkUm9vdEVsIHx8IFwiZGl2XCI7XG5cdCAgICAgIH1cblxuXHQgICAgICBmdW5jdGlvbiBnZXRIaWRlRGlyZWN0aXZlKCkge1xuXHQgICAgICAgIHJldHVybiBhdHRycy5oaWRlRGlyZWN0aXZlIHx8IGZvcm1seUNvbmZpZy5leHRyYXMuZGVmYXVsdEhpZGVEaXJlY3RpdmUgfHwgXCJuZy1pZlwiO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gZ2V0VHJhY2tCeSgpIHtcblx0ICAgICAgICBpZiAoIWF0dHJzLnRyYWNrQnkpIHtcblx0ICAgICAgICAgIHJldHVybiBcIlwiO1xuXHQgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICByZXR1cm4gXCJ0cmFjayBieSBcIiArIGF0dHJzLnRyYWNrQnk7XG5cdCAgICAgICAgfVxuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gZ2V0Rm9ybU5hbWUoKSB7XG5cdCAgICAgICAgdmFyIGZvcm1OYW1lID0gZm9ybUlkO1xuXHQgICAgICAgIHZhciBiaW5kTmFtZSA9IGF0dHJzLmJpbmROYW1lO1xuXHQgICAgICAgIGlmIChiaW5kTmFtZSkge1xuXHQgICAgICAgICAgaWYgKGFuZ3VsYXIudmVyc2lvbi5taW5vciA8IDMpIHtcblx0ICAgICAgICAgICAgdGhyb3cgZm9ybWx5VXNhYmlsaXR5LmdldEZvcm1seUVycm9yKFwiYmluZC1uYW1lIGF0dHJpYnV0ZSBvbiBmb3JtbHktZm9ybSBub3QgYWxsb3dlZCBpbiA+IGFuZ3VsYXIgMS4zXCIpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgICAgLy8gd2UgY2FuIGRvIGEgb25lLXRpbWUgYmluZGluZyBoZXJlIGJlY2F1c2Ugd2Uga25vdyB3ZSdyZSBpbiAxLjMueCB0ZXJyaXRvcnlcblx0ICAgICAgICAgIGZvcm1OYW1lID0gXCJ7ezo6J2Zvcm1seV8nICsgXCIgKyBiaW5kTmFtZSArIFwifX1cIjtcblx0ICAgICAgICB9XG5cdCAgICAgICAgcmV0dXJuIGZvcm1OYW1lO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gY29weUF0dHJpYnV0ZXMoYXR0cmlidXRlcykge1xuXHQgICAgICAgIHZhciBleGNsdWRlZCA9IFtcIm1vZGVsXCIsIFwiZm9ybVwiLCBcImZpZWxkc1wiLCBcIm9wdGlvbnNcIiwgXCJuYW1lXCIsIFwicm9sZVwiLCBcImNsYXNzXCJdO1xuXHQgICAgICAgIHZhciBhcnJheUF0dHJzID0gW107XG5cdCAgICAgICAgYW5ndWxhci5mb3JFYWNoKGF0dHJpYnV0ZXMsIGZ1bmN0aW9uIChfcmVmKSB7XG5cdCAgICAgICAgICB2YXIgbm9kZU5hbWUgPSBfcmVmLm5vZGVOYW1lO1xuXHQgICAgICAgICAgdmFyIG5vZGVWYWx1ZSA9IF9yZWYubm9kZVZhbHVlO1xuXG5cdCAgICAgICAgICBpZiAobm9kZU5hbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgZXhjbHVkZWQuaW5kZXhPZihub2RlTmFtZSkgPT09IC0xKSB7XG5cdCAgICAgICAgICAgIGFycmF5QXR0cnMucHVzaChcIlwiICsgdG9LZWJhYkNhc2Uobm9kZU5hbWUpICsgXCI9XFxcIlwiICsgbm9kZVZhbHVlICsgXCJcXFwiXCIpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgIH0pO1xuXHQgICAgICAgIHJldHVybiBhcnJheUF0dHJzLmpvaW4oXCIgXCIpO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gdG9LZWJhYkNhc2Uoc3RyaW5nKSB7XG5cdCAgICAgICAgaWYgKHN0cmluZykge1xuXHQgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8oW0EtWl0pL2csIGZ1bmN0aW9uICgkMSkge1xuXHQgICAgICAgICAgICByZXR1cm4gXCItXCIgKyAkMS50b0xvd2VyQ2FzZSgpO1xuXHQgICAgICAgICAgfSk7XG5cdCAgICAgICAgfSBlbHNlIHtcblx0ICAgICAgICAgIHJldHVybiBcIlwiO1xuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXHQgICAgfSxcblx0ICAgIHJlcGxhY2U6IHRydWUsXG5cdCAgICB0cmFuc2NsdWRlOiB0cnVlLFxuXHQgICAgc2NvcGU6IHtcblx0ICAgICAgZmllbGRzOiBcIj1cIixcblx0ICAgICAgbW9kZWw6IFwiPVwiLFxuXHQgICAgICBmb3JtOiBcIj0/XCIsXG5cdCAgICAgIG9wdGlvbnM6IFwiPT9cIlxuXHQgICAgfSxcblx0ICAgIGNvbnRyb2xsZXI6IC8qIEBuZ0luamVjdCAqL1tcIiRzY29wZVwiLCBcImZvcm1seVV0aWxcIiwgZnVuY3Rpb24gRm9ybWx5Rm9ybUNvbnRyb2xsZXIoJHNjb3BlLCBmb3JtbHlVdGlsKSB7XG5cdCAgICAgIHNldHVwT3B0aW9ucygpO1xuXHQgICAgICAkc2NvcGUubW9kZWwgPSAkc2NvcGUubW9kZWwgfHwge307XG5cdCAgICAgICRzY29wZS5maWVsZHMgPSAkc2NvcGUuZmllbGRzIHx8IFtdO1xuXG5cdCAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkc2NvcGUuZmllbGRzLCBpbml0TW9kZWwpOyAvLyBpbml0aWFsaXplcyB0aGUgbW9kZWwgcHJvcGVydHkgaWYgc2V0IHRvICdmb3JtU3RhdGUnXG5cdCAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkc2NvcGUuZmllbGRzLCBhdHRhY2hLZXkpOyAvLyBhdHRhY2hlcyBhIGtleSBiYXNlZCBvbiB0aGUgaW5kZXggaWYgYSBrZXkgaXNuJ3Qgc3BlY2lmaWVkXG5cdCAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkc2NvcGUuZmllbGRzLCBzZXR1cFdhdGNoZXJzKTsgLy8gc2V0dXAgd2F0Y2hlcnMgZm9yIGFsbCBmaWVsZHNcblxuXHQgICAgICAvLyB3YXRjaCB0aGUgbW9kZWwgYW5kIGV2YWx1YXRlIHdhdGNoIGV4cHJlc3Npb25zIHRoYXQgZGVwZW5kIG9uIGl0LlxuXHQgICAgICAkc2NvcGUuJHdhdGNoKFwibW9kZWxcIiwgb25Nb2RlbE9yRm9ybVN0YXRlQ2hhbmdlLCB0cnVlKTtcblx0ICAgICAgaWYgKCRzY29wZS5vcHRpb25zLmZvcm1TdGF0ZSkge1xuXHQgICAgICAgICRzY29wZS4kd2F0Y2goXCJvcHRpb25zLmZvcm1TdGF0ZVwiLCBvbk1vZGVsT3JGb3JtU3RhdGVDaGFuZ2UsIHRydWUpO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gb25Nb2RlbE9yRm9ybVN0YXRlQ2hhbmdlKCkge1xuXHQgICAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkc2NvcGUuZmllbGRzLCBmdW5jdGlvbiBydW5GaWVsZEV4cHJlc3Npb25Qcm9wZXJ0aWVzKGZpZWxkLCBpbmRleCkge1xuXHQgICAgICAgICAgLypqc2hpbnQgLVcwMzAgKi9cblx0ICAgICAgICAgIHZhciBtb2RlbCA9IGZpZWxkLm1vZGVsIHx8ICRzY29wZS5tb2RlbDtcblx0ICAgICAgICAgIGZpZWxkLnJ1bkV4cHJlc3Npb25zICYmIGZpZWxkLnJ1bkV4cHJlc3Npb25zKG1vZGVsKTtcblx0ICAgICAgICAgIGlmIChmaWVsZC5oaWRlRXhwcmVzc2lvbikge1xuXHQgICAgICAgICAgICAvLyBjYW4ndCB1c2UgaGlkZSB3aXRoIGV4cHJlc3Npb25Qcm9wZXJ0aWVzIHJlbGlhYmx5XG5cdCAgICAgICAgICAgIHZhciB2YWwgPSBtb2RlbFtmaWVsZC5rZXldO1xuXHQgICAgICAgICAgICAvLyB0aGlzIG1ha2VzIGl0IGNsb3NlciB0byB3aGF0IGEgcmVndWxhciBleHByZXNzaW9uUHJvcGVydHkgd291bGQgYmVcblx0ICAgICAgICAgICAgdmFyIGV4dHJhTG9jYWxzID0ge1xuXHQgICAgICAgICAgICAgIG9wdGlvbnM6IGZpZWxkLFxuXHQgICAgICAgICAgICAgIGluZGV4OiBpbmRleCxcblx0ICAgICAgICAgICAgICBmb3JtU3RhdGU6ICRzY29wZS5vcHRpb25zLmZvcm1TdGF0ZSxcblx0ICAgICAgICAgICAgICBmb3JtSWQ6ICRzY29wZS5mb3JtSWRcblx0ICAgICAgICAgICAgfTtcblx0ICAgICAgICAgICAgZmllbGQuaGlkZSA9IGZvcm1seVV0aWwuZm9ybWx5RXZhbCgkc2NvcGUsIGZpZWxkLmhpZGVFeHByZXNzaW9uLCB2YWwsIHZhbCwgZXh0cmFMb2NhbHMpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgIH0pO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gc2V0dXBPcHRpb25zKCkge1xuXHQgICAgICAgIGZvcm1seUFwaUNoZWNrW1widGhyb3dcIl0oW2Zvcm1seUFwaUNoZWNrLmZvcm1PcHRpb25zQXBpLm9wdGlvbmFsXSwgWyRzY29wZS5vcHRpb25zXSwgeyBwcmVmaXg6IFwiZm9ybWx5LWZvcm0gb3B0aW9ucyBjaGVja1wiIH0pO1xuXHQgICAgICAgICRzY29wZS5vcHRpb25zID0gJHNjb3BlLm9wdGlvbnMgfHwge307XG5cdCAgICAgICAgJHNjb3BlLm9wdGlvbnMuZm9ybVN0YXRlID0gJHNjb3BlLm9wdGlvbnMuZm9ybVN0YXRlIHx8IHt9O1xuXG5cdCAgICAgICAgYW5ndWxhci5leHRlbmQoJHNjb3BlLm9wdGlvbnMsIHtcblx0ICAgICAgICAgIHVwZGF0ZUluaXRpYWxWYWx1ZTogdXBkYXRlSW5pdGlhbFZhbHVlLFxuXHQgICAgICAgICAgcmVzZXRNb2RlbDogcmVzZXRNb2RlbFxuXHQgICAgICAgIH0pO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gdXBkYXRlSW5pdGlhbFZhbHVlKCkge1xuXHQgICAgICAgIGFuZ3VsYXIuZm9yRWFjaCgkc2NvcGUuZmllbGRzLCBmdW5jdGlvbiAoZmllbGQpIHtcblx0ICAgICAgICAgIGlmIChpc0ZpZWxkR3JvdXAoZmllbGQpKSB7XG5cdCAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMudXBkYXRlSW5pdGlhbFZhbHVlKCk7XG5cdCAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBmaWVsZC51cGRhdGVJbml0aWFsVmFsdWUoKTtcblx0ICAgICAgICAgIH1cblx0ICAgICAgICB9KTtcblx0ICAgICAgfVxuXG5cdCAgICAgIGZ1bmN0aW9uIHJlc2V0TW9kZWwoKSB7XG5cdCAgICAgICAgYW5ndWxhci5mb3JFYWNoKCRzY29wZS5maWVsZHMsIGZ1bmN0aW9uIChmaWVsZCkge1xuXHQgICAgICAgICAgaWYgKGlzRmllbGRHcm91cChmaWVsZCkpIHtcblx0ICAgICAgICAgICAgZmllbGQub3B0aW9ucy5yZXNldE1vZGVsKCk7XG5cdCAgICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBmaWVsZC5yZXNldE1vZGVsKCk7XG5cdCAgICAgICAgICB9XG5cdCAgICAgICAgfSk7XG5cdCAgICAgIH1cblxuXHQgICAgICBmdW5jdGlvbiBpbml0TW9kZWwoZmllbGQpIHtcblx0ICAgICAgICBpZiAoZmllbGQubW9kZWwgJiYgZmllbGQubW9kZWwgPT09IFwiZm9ybVN0YXRlXCIpIHtcblx0ICAgICAgICAgIGZpZWxkLm1vZGVsID0gJHNjb3BlLm9wdGlvbnMuZm9ybVN0YXRlO1xuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXG5cdCAgICAgIGZ1bmN0aW9uIGF0dGFjaEtleShmaWVsZCwgaW5kZXgpIHtcblx0ICAgICAgICBpZiAoIWlzRmllbGRHcm91cChmaWVsZCkpIHtcblx0ICAgICAgICAgIGZpZWxkLmtleSA9IGZpZWxkLmtleSB8fCBpbmRleCB8fCAwO1xuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXG5cdCAgICAgIGZ1bmN0aW9uIHNldHVwV2F0Y2hlcnMoZmllbGQsIGluZGV4KSB7XG5cdCAgICAgICAgaWYgKGlzRmllbGRHcm91cChmaWVsZCkgfHwgIWFuZ3VsYXIuaXNEZWZpbmVkKGZpZWxkLndhdGNoZXIpKSB7XG5cdCAgICAgICAgICByZXR1cm47XG5cdCAgICAgICAgfVxuXHQgICAgICAgIHZhciB3YXRjaGVycyA9IGZpZWxkLndhdGNoZXI7XG5cdCAgICAgICAgaWYgKCFhbmd1bGFyLmlzQXJyYXkod2F0Y2hlcnMpKSB7XG5cdCAgICAgICAgICB3YXRjaGVycyA9IFt3YXRjaGVyc107XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGFuZ3VsYXIuZm9yRWFjaCh3YXRjaGVycywgZnVuY3Rpb24gc2V0dXBXYXRjaGVyKHdhdGNoZXIpIHtcblx0ICAgICAgICAgIGlmICghYW5ndWxhci5pc0RlZmluZWQod2F0Y2hlci5saXN0ZW5lcikpIHtcblx0ICAgICAgICAgICAgdGhyb3cgZm9ybWx5VXNhYmlsaXR5LmdldEZpZWxkRXJyb3IoXCJhbGwtZmllbGQtd2F0Y2hlcnMtbXVzdC1oYXZlLWEtbGlzdGVuZXJcIiwgXCJBbGwgZmllbGQgd2F0Y2hlcnMgbXVzdCBoYXZlIGEgbGlzdGVuZXJcIiwgZmllbGQpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgICAgdmFyIHdhdGNoRXhwcmVzc2lvbiA9IGdldFdhdGNoRXhwcmVzc2lvbih3YXRjaGVyLCBmaWVsZCwgaW5kZXgpO1xuXHQgICAgICAgICAgdmFyIHdhdGNoTGlzdGVuZXIgPSBnZXRXYXRjaExpc3RlbmVyKHdhdGNoZXIsIGZpZWxkLCBpbmRleCk7XG5cblx0ICAgICAgICAgIHZhciB0eXBlID0gd2F0Y2hlci50eXBlIHx8IFwiJHdhdGNoXCI7XG5cdCAgICAgICAgICB3YXRjaGVyLnN0b3BXYXRjaGluZyA9ICRzY29wZVt0eXBlXSh3YXRjaEV4cHJlc3Npb24sIHdhdGNoTGlzdGVuZXIsIHdhdGNoZXIud2F0Y2hEZWVwKTtcblx0ICAgICAgICB9KTtcblx0ICAgICAgfVxuXG5cdCAgICAgIGZ1bmN0aW9uIGdldFdhdGNoRXhwcmVzc2lvbih3YXRjaGVyLCBmaWVsZCwgaW5kZXgpIHtcblx0ICAgICAgICB2YXIgd2F0Y2hFeHByZXNzaW9uID0gd2F0Y2hlci5leHByZXNzaW9uIHx8IFwibW9kZWxbJ1wiICsgZmllbGQua2V5ICsgXCInXVwiO1xuXHQgICAgICAgIGlmIChhbmd1bGFyLmlzRnVuY3Rpb24od2F0Y2hFeHByZXNzaW9uKSkge1xuXHQgICAgICAgICAgLy8gd3JhcCB0aGUgZmllbGQncyB3YXRjaCBleHByZXNzaW9uIHNvIHdlIGNhbiBjYWxsIGl0IHdpdGggdGhlIGZpZWxkIGFzIHRoZSBmaXJzdCBhcmdcblx0ICAgICAgICAgIC8vIGFuZCB0aGUgc3RvcCBmdW5jdGlvbiBhcyB0aGUgbGFzdCBhcmcgYXMgYSBoZWxwZXJcblx0ICAgICAgICAgIHZhciBvcmlnaW5hbEV4cHJlc3Npb24gPSB3YXRjaEV4cHJlc3Npb247XG5cdCAgICAgICAgICB3YXRjaEV4cHJlc3Npb24gPSBmdW5jdGlvbiBmb3JtbHlXYXRjaEV4cHJlc3Npb24oKSB7XG5cdCAgICAgICAgICAgIHZhciBhcmdzID0gbW9kaWZ5QXJncy5hcHBseSh1bmRlZmluZWQsIFt3YXRjaGVyLCBpbmRleF0uY29uY2F0KF9zbGljZS5jYWxsKGFyZ3VtZW50cykpKTtcblx0ICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRXhwcmVzc2lvbi5hcHBseSh1bmRlZmluZWQsIF90b0NvbnN1bWFibGVBcnJheShhcmdzKSk7XG5cdCAgICAgICAgICB9O1xuXHQgICAgICAgICAgd2F0Y2hFeHByZXNzaW9uLmRpc3BsYXlOYW1lID0gXCJGb3JtbHkgV2F0Y2ggRXhwcmVzc2lvbiBmb3IgZmllbGQgZm9yIFwiICsgZmllbGQua2V5O1xuXHQgICAgICAgIH1cblx0ICAgICAgICByZXR1cm4gd2F0Y2hFeHByZXNzaW9uO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gZ2V0V2F0Y2hMaXN0ZW5lcih3YXRjaGVyLCBmaWVsZCwgaW5kZXgpIHtcblx0ICAgICAgICB2YXIgd2F0Y2hMaXN0ZW5lciA9IHdhdGNoZXIubGlzdGVuZXI7XG5cdCAgICAgICAgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbih3YXRjaExpc3RlbmVyKSkge1xuXHQgICAgICAgICAgLy8gd3JhcCB0aGUgZmllbGQncyB3YXRjaCBsaXN0ZW5lciBzbyB3ZSBjYW4gY2FsbCBpdCB3aXRoIHRoZSBmaWVsZCBhcyB0aGUgZmlyc3QgYXJnXG5cdCAgICAgICAgICAvLyBhbmQgdGhlIHN0b3AgZnVuY3Rpb24gYXMgdGhlIGxhc3QgYXJnIGFzIGEgaGVscGVyXG5cdCAgICAgICAgICB2YXIgb3JpZ2luYWxMaXN0ZW5lciA9IHdhdGNoTGlzdGVuZXI7XG5cdCAgICAgICAgICB3YXRjaExpc3RlbmVyID0gZnVuY3Rpb24gZm9ybWx5V2F0Y2hMaXN0ZW5lcigpIHtcblx0ICAgICAgICAgICAgdmFyIGFyZ3MgPSBtb2RpZnlBcmdzLmFwcGx5KHVuZGVmaW5lZCwgW3dhdGNoZXIsIGluZGV4XS5jb25jYXQoX3NsaWNlLmNhbGwoYXJndW1lbnRzKSkpO1xuXHQgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxMaXN0ZW5lci5hcHBseSh1bmRlZmluZWQsIF90b0NvbnN1bWFibGVBcnJheShhcmdzKSk7XG5cdCAgICAgICAgICB9O1xuXHQgICAgICAgICAgd2F0Y2hMaXN0ZW5lci5kaXNwbGF5TmFtZSA9IFwiRm9ybWx5IFdhdGNoIExpc3RlbmVyIGZvciBmaWVsZCBmb3IgXCIgKyBmaWVsZC5rZXk7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIHJldHVybiB3YXRjaExpc3RlbmVyO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gbW9kaWZ5QXJncyh3YXRjaGVyLCBpbmRleCkge1xuXHQgICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBvcmlnaW5hbEFyZ3MgPSBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG5cdCAgICAgICAgICBvcmlnaW5hbEFyZ3NbX2tleSAtIDJdID0gYXJndW1lbnRzW19rZXldO1xuXHQgICAgICAgIH1cblxuXHQgICAgICAgIHJldHVybiBbJHNjb3BlLmZpZWxkc1tpbmRleF1dLmNvbmNhdChvcmlnaW5hbEFyZ3MsIFt3YXRjaGVyLnN0b3BXYXRjaGluZ10pO1xuXHQgICAgICB9XG5cblx0ICAgICAgZnVuY3Rpb24gaXNGaWVsZEdyb3VwKGZpZWxkKSB7XG5cdCAgICAgICAgcmV0dXJuIGZpZWxkICYmICEhZmllbGQuZmllbGRHcm91cDtcblx0ICAgICAgfVxuXHQgICAgfV0sXG5cdCAgICBsaW5rOiBmdW5jdGlvbiBsaW5rKHNjb3BlLCBlbCwgYXR0cnMpIHtcblx0ICAgICAgdmFyIGZvcm1JZCA9IGF0dHJzLm5hbWU7XG5cdCAgICAgIHNjb3BlLmZvcm1JZCA9IGZvcm1JZDtcblx0ICAgICAgc2NvcGUudGhlRm9ybWx5Rm9ybSA9IHNjb3BlW2Zvcm1JZF07XG5cdCAgICAgIGlmIChhdHRycy5mb3JtKSB7XG5cdCAgICAgICAgJHBhcnNlKGF0dHJzLmZvcm0pLmFzc2lnbihzY29wZS4kcGFyZW50LCBzY29wZVtmb3JtSWRdKTtcblx0ICAgICAgfVxuXG5cdCAgICAgIC8vIGNocm9tZSBhdXRvY29tcGxldGUgbGFtZW5lc3Ncblx0ICAgICAgLy8gc2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NjgxNTMjYzE0XG5cdCAgICAgIC8vIOGDmijgsqDnm4rgsqDhg5opICAgKOKVr8Kw4pahwrAp4pWv77i1IOKUu+KUgeKUuyAgICAo4pee4oC44pef77ybKVxuXHQgICAgICB2YXIgZ2xvYmFsID0gZm9ybWx5Q29uZmlnLmV4dHJhcy5yZW1vdmVDaHJvbWVBdXRvQ29tcGxldGUgPT09IHRydWU7XG5cdCAgICAgIHZhciBvZmZJbnN0YW5jZSA9IHNjb3BlLm9wdGlvbnMgJiYgc2NvcGUub3B0aW9ucy5yZW1vdmVDaHJvbWVBdXRvQ29tcGxldGUgPT09IGZhbHNlO1xuXHQgICAgICB2YXIgb25JbnN0YW5jZSA9IHNjb3BlLm9wdGlvbnMgJiYgc2NvcGUub3B0aW9ucy5yZW1vdmVDaHJvbWVBdXRvQ29tcGxldGUgPT09IHRydWU7XG5cdCAgICAgIGlmIChnbG9iYWwgJiYgIW9mZkluc3RhbmNlIHx8IG9uSW5zdGFuY2UpIHtcblx0ICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XG5cdCAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKFwiYXV0b2NvbXBsZXRlXCIsIFwiYWRkcmVzcy1sZXZlbDRcIik7XG5cdCAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKFwiaGlkZGVuXCIsIHRydWUpO1xuXHQgICAgICAgIGVsWzBdLmFwcGVuZENoaWxkKGlucHV0KTtcblx0ICAgICAgfVxuXHQgICAgfVxuXHQgIH07XG5cdH1cblx0Zm9ybWx5Rm9ybS4kaW5qZWN0ID0gW1wiZm9ybWx5VXNhYmlsaXR5XCIsIFwiJHBhcnNlXCIsIFwiZm9ybWx5QXBpQ2hlY2tcIiwgXCJmb3JtbHlDb25maWdcIl07XG5cbi8qKiovIH0sXG4vKiAxMyAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIF9pbnRlcm9wUmVxdWlyZSA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9ialtcImRlZmF1bHRcIl0gOiBvYmo7IH07XG5cblx0dmFyIGFuZ3VsYXIgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxNSkpO1xuXG5cdG1vZHVsZS5leHBvcnRzID0gYWRkRm9ybWx5TmdNb2RlbEF0dHJzTWFuaXB1bGF0b3I7XG5cblx0Ly8gQG5nSW5qZWN0XG5cdGZ1bmN0aW9uIGFkZEZvcm1seU5nTW9kZWxBdHRyc01hbmlwdWxhdG9yKGZvcm1seUNvbmZpZykge1xuXHQgIGlmIChmb3JtbHlDb25maWcuZXh0cmFzLmRpc2FibGVOZ01vZGVsQXR0cnNNYW5pcHVsYXRvcikge1xuXHQgICAgcmV0dXJuO1xuXHQgIH1cblx0ICBmb3JtbHlDb25maWcudGVtcGxhdGVNYW5pcHVsYXRvcnMucHJlV3JhcHBlci5wdXNoKG5nTW9kZWxBdHRyc01hbmlwdWxhdG9yKTtcblxuXHQgIGZ1bmN0aW9uIG5nTW9kZWxBdHRyc01hbmlwdWxhdG9yKHRlbXBsYXRlLCBvcHRpb25zLCBzY29wZSkge1xuXHQgICAgLyoganNoaW50IG1heGNvbXBsZXhpdHk6NiAqL1xuXHQgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcblx0ICAgIHZhciBkYXRhID0gb3B0aW9ucy5kYXRhO1xuXHQgICAgaWYgKGRhdGEuc2tpcE5nTW9kZWxBdHRyc01hbmlwdWxhdG9yID09PSB0cnVlKSB7XG5cdCAgICAgIHJldHVybiB0ZW1wbGF0ZTtcblx0ICAgIH1cblx0ICAgIGVsLmlubmVySFRNTCA9IHRlbXBsYXRlO1xuXHQgICAgdmFyIG1vZGVsTm9kZXMgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKFwiW25nLW1vZGVsXSwgW2RhdGEtbmctbW9kZWxdXCIpO1xuXHQgICAgaWYgKCFtb2RlbE5vZGVzIHx8ICFtb2RlbE5vZGVzLmxlbmd0aCkge1xuXHQgICAgICByZXR1cm4gdGVtcGxhdGU7XG5cdCAgICB9XG5cblx0ICAgIGFkZElmTm90UHJlc2VudChtb2RlbE5vZGVzLCBcImlkXCIsIHNjb3BlLmlkKTtcblx0ICAgIGFkZElmTm90UHJlc2VudChtb2RlbE5vZGVzLCBcIm5hbWVcIiwgc2NvcGUuaWQpO1xuXG5cdCAgICBhZGRWYWxpZGF0aW9uKCk7XG5cdCAgICBhZGRNb2RlbE9wdGlvbnMoKTtcblx0ICAgIGFkZFRlbXBsYXRlT3B0aW9uc0F0dHJzKCk7XG5cblx0ICAgIHJldHVybiBlbC5pbm5lckhUTUw7XG5cblx0ICAgIGZ1bmN0aW9uIGFkZFZhbGlkYXRpb24oKSB7XG5cdCAgICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZChvcHRpb25zLnZhbGlkYXRvcnMpIHx8IGFuZ3VsYXIuaXNEZWZpbmVkKG9wdGlvbnMudmFsaWRhdGlvbi5tZXNzYWdlcykpIHtcblx0ICAgICAgICBhZGRJZk5vdFByZXNlbnQobW9kZWxOb2RlcywgXCJmb3JtbHktY3VzdG9tLXZhbGlkYXRpb25cIiwgXCJcIik7XG5cdCAgICAgIH1cblx0ICAgIH1cblxuXHQgICAgZnVuY3Rpb24gYWRkTW9kZWxPcHRpb25zKCkge1xuXHQgICAgICBpZiAoYW5ndWxhci5pc0RlZmluZWQob3B0aW9ucy5tb2RlbE9wdGlvbnMpKSB7XG5cdCAgICAgICAgYWRkSWZOb3RQcmVzZW50KG1vZGVsTm9kZXMsIFwibmctbW9kZWwtb3B0aW9uc1wiLCBcIm9wdGlvbnMubW9kZWxPcHRpb25zXCIpO1xuXHQgICAgICAgIGlmIChvcHRpb25zLm1vZGVsT3B0aW9ucy5nZXR0ZXJTZXR0ZXIpIHtcblx0ICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChtb2RlbE5vZGVzLCBmdW5jdGlvbiAobm9kZSkge1xuXHQgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIm5nLW1vZGVsXCIsIFwib3B0aW9ucy52YWx1ZVwiKTtcblx0ICAgICAgICAgIH0pO1xuXHQgICAgICAgIH1cblx0ICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICBmdW5jdGlvbiBhZGRUZW1wbGF0ZU9wdGlvbnNBdHRycygpIHtcblx0ICAgICAgaWYgKCFvcHRpb25zLnRlbXBsYXRlT3B0aW9ucyAmJiAhb3B0aW9ucy5leHByZXNzaW9uUHJvcGVydGllcykge1xuXHQgICAgICAgIC8vIG5vIG5lZWQgdG8gcnVuIHRoZXNlIGlmIHRoZXJlIGFyZSBubyB0ZW1wbGF0ZU9wdGlvbnMgb3IgZXhwcmVzc2lvblByb3BlcnRpZXNcblx0ICAgICAgICByZXR1cm47XG5cdCAgICAgIH1cblx0ICAgICAgdmFyIHRvID0gb3B0aW9ucy50ZW1wbGF0ZU9wdGlvbnMgfHwge307XG5cdCAgICAgIHZhciBlcCA9IG9wdGlvbnMuZXhwcmVzc2lvblByb3BlcnRpZXMgfHwge307XG5cblx0ICAgICAgdmFyIG5nTW9kZWxBdHRyaWJ1dGVzID0gZ2V0QnVpbHRJbkF0dHJpYnV0ZXMoKTtcblxuXHQgICAgICAvLyBleHRlbmQgd2l0aCB0aGUgdXNlcidzIHNwZWNpZmljYXRpb25zIHdpbm5pbmdcblx0ICAgICAgYW5ndWxhci5leHRlbmQobmdNb2RlbEF0dHJpYnV0ZXMsIG9wdGlvbnMubmdNb2RlbEF0dHJzKTtcblxuXHQgICAgICAvLyBGZWVsIGZyZWUgdG8gbWFrZSB0aGlzIG1vcmUgc2ltcGxlIDotKVxuXHQgICAgICBhbmd1bGFyLmZvckVhY2gobmdNb2RlbEF0dHJpYnV0ZXMsIGZ1bmN0aW9uICh2YWwsIG5hbWUpIHtcblx0ICAgICAgICAvKiBqc2hpbnQgbWF4Y29tcGxleGl0eToxNCAqL1xuXHQgICAgICAgIHZhciBhdHRyVmFsID0gdW5kZWZpbmVkO1xuXHQgICAgICAgIHZhciBhdHRyTmFtZSA9IHVuZGVmaW5lZDtcblx0ICAgICAgICB2YXIgcmVmID0gXCJvcHRpb25zLnRlbXBsYXRlT3B0aW9uc1snXCIgKyBuYW1lICsgXCInXVwiO1xuXHQgICAgICAgIHZhciB0b1ZhbCA9IHRvW25hbWVdO1xuXHQgICAgICAgIHZhciBlcFZhbCA9IGdldEVwVmFsdWUoZXAsIG5hbWUpO1xuXG5cdCAgICAgICAgdmFyIGluVG8gPSBhbmd1bGFyLmlzRGVmaW5lZCh0b1ZhbCk7XG5cdCAgICAgICAgdmFyIGluRXAgPSBhbmd1bGFyLmlzRGVmaW5lZChlcFZhbCk7XG5cdCAgICAgICAgaWYgKHZhbC52YWx1ZSkge1xuXHQgICAgICAgICAgLy8gSSByZWFsaXplIHRoaXMgbG9va3MgYmFja3dhcmRzLCBidXQgaXQncyByaWdodCwgdHJ1c3QgbWUuLi5cblx0ICAgICAgICAgIGF0dHJOYW1lID0gdmFsLnZhbHVlO1xuXHQgICAgICAgICAgYXR0clZhbCA9IG5hbWU7XG5cdCAgICAgICAgfSBlbHNlIGlmICh2YWwuZXhwcmVzc2lvbiAmJiBpblRvKSB7XG5cdCAgICAgICAgICBhdHRyTmFtZSA9IHZhbC5leHByZXNzaW9uO1xuXHQgICAgICAgICAgaWYgKGFuZ3VsYXIuaXNTdHJpbmcodG9bbmFtZV0pKSB7XG5cdCAgICAgICAgICAgIGF0dHJWYWwgPSBcIiRldmFsKFwiICsgcmVmICsgXCIpXCI7XG5cdCAgICAgICAgICB9IGVsc2UgaWYgKGFuZ3VsYXIuaXNGdW5jdGlvbih0b1tuYW1lXSkpIHtcblx0ICAgICAgICAgICAgYXR0clZhbCA9IFwiXCIgKyByZWYgKyBcIihtb2RlbFtvcHRpb25zLmtleV0sIG9wdGlvbnMsIHRoaXMsICRldmVudClcIjtcblx0ICAgICAgICAgIH0gZWxzZSB7XG5cdCAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIm9wdGlvbnMudGVtcGxhdGVPcHRpb25zLlwiICsgbmFtZSArIFwiIG11c3QgYmUgYSBzdHJpbmcgb3IgZnVuY3Rpb246IFwiICsgSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuXHQgICAgICAgICAgfVxuXHQgICAgICAgIH0gZWxzZSBpZiAodmFsLmJvdW5kICYmIGluRXApIHtcblx0ICAgICAgICAgIGF0dHJOYW1lID0gdmFsLmJvdW5kO1xuXHQgICAgICAgICAgYXR0clZhbCA9IHJlZjtcblx0ICAgICAgICB9IGVsc2UgaWYgKCh2YWwuYXR0cmlidXRlIHx8IHZhbC5ib29sZWFuKSAmJiBpbkVwKSB7XG5cdCAgICAgICAgICBhdHRyTmFtZSA9IHZhbC5hdHRyaWJ1dGUgfHwgdmFsLmJvb2xlYW47XG5cdCAgICAgICAgICBhdHRyVmFsID0gXCJ7e1wiICsgcmVmICsgXCJ9fVwiO1xuXHQgICAgICAgIH0gZWxzZSBpZiAodmFsLmF0dHJpYnV0ZSAmJiBpblRvKSB7XG5cdCAgICAgICAgICBhdHRyTmFtZSA9IHZhbC5hdHRyaWJ1dGU7XG5cdCAgICAgICAgICBhdHRyVmFsID0gdG9WYWw7XG5cdCAgICAgICAgfSBlbHNlIGlmICh2YWwuYm9vbGVhbikge1xuXHQgICAgICAgICAgaWYgKGluVG8gJiYgIWluRXAgJiYgdG9WYWwpIHtcblx0ICAgICAgICAgICAgYXR0ck5hbWUgPSB2YWwuYm9vbGVhbjtcblx0ICAgICAgICAgICAgYXR0clZhbCA9IHRydWU7XG5cdCAgICAgICAgICB9IGVsc2Uge31cblx0ICAgICAgICB9IGVsc2UgaWYgKHZhbC5ib3VuZCAmJiBpblRvKSB7XG5cdCAgICAgICAgICBhdHRyTmFtZSA9IHZhbC5ib3VuZDtcblx0ICAgICAgICAgIGF0dHJWYWwgPSByZWY7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgaWYgKGFuZ3VsYXIuaXNEZWZpbmVkKGF0dHJOYW1lKSAmJiBhbmd1bGFyLmlzRGVmaW5lZChhdHRyVmFsKSkge1xuXHQgICAgICAgICAgYWRkSWZOb3RQcmVzZW50KG1vZGVsTm9kZXMsIGF0dHJOYW1lLCBhdHRyVmFsKTtcblx0ICAgICAgICB9XG5cdCAgICAgIH0pO1xuXHQgICAgfVxuXHQgIH1cblxuXHQgIC8vIFV0aWxpdHkgZnVuY3Rpb25zXG5cdCAgZnVuY3Rpb24gZ2V0QnVpbHRJbkF0dHJpYnV0ZXMoKSB7XG5cdCAgICB2YXIgbmdNb2RlbEF0dHJpYnV0ZXMgPSB7XG5cdCAgICAgIGZvY3VzOiB7XG5cdCAgICAgICAgYXR0cmlidXRlOiBcImZvcm1seS1mb2N1c1wiXG5cdCAgICAgIH1cblx0ICAgIH07XG5cdCAgICB2YXIgYm91bmRPbmx5ID0gW107XG5cdCAgICB2YXIgYm90aEJvb2xlYW5BbmRCb3VuZCA9IFtcInJlcXVpcmVkXCIsIFwiZGlzYWJsZWRcIl07XG5cdCAgICB2YXIgYm90aEF0dHJpYnV0ZUFuZEJvdW5kID0gW1wicGF0dGVyblwiLCBcIm1pbmxlbmd0aFwiXTtcblx0ICAgIHZhciBleHByZXNzaW9uT25seSA9IFtcImNoYW5nZVwiLCBcImtleWRvd25cIiwgXCJrZXl1cFwiLCBcImtleXByZXNzXCIsIFwiY2xpY2tcIiwgXCJmb2N1c1wiLCBcImJsdXJcIl07XG5cdCAgICB2YXIgYXR0cmlidXRlT25seSA9IFtcInBsYWNlaG9sZGVyXCIsIFwibWluXCIsIFwibWF4XCIsIFwidGFiaW5kZXhcIiwgXCJ0eXBlXCJdO1xuXHQgICAgaWYgKGZvcm1seUNvbmZpZy5leHRyYXMubmdNb2RlbEF0dHJzTWFuaXB1bGF0b3JQcmVmZXJVbmJvdW5kKSB7XG5cdCAgICAgIGJvdGhBdHRyaWJ1dGVBbmRCb3VuZC5wdXNoKFwibWF4bGVuZ3RoXCIpO1xuXHQgICAgfSBlbHNlIHtcblx0ICAgICAgYm91bmRPbmx5LnB1c2goXCJtYXhsZW5ndGhcIik7XG5cdCAgICB9XG5cblx0ICAgIGFuZ3VsYXIuZm9yRWFjaChib3VuZE9ubHksIGZ1bmN0aW9uIChpdGVtKSB7XG5cdCAgICAgIG5nTW9kZWxBdHRyaWJ1dGVzW2l0ZW1dID0geyBib3VuZDogXCJuZy1cIiArIGl0ZW0gfTtcblx0ICAgIH0pO1xuXG5cdCAgICBhbmd1bGFyLmZvckVhY2goYm90aEJvb2xlYW5BbmRCb3VuZCwgZnVuY3Rpb24gKGl0ZW0pIHtcblx0ICAgICAgbmdNb2RlbEF0dHJpYnV0ZXNbaXRlbV0gPSB7IGJvb2xlYW46IGl0ZW0sIGJvdW5kOiBcIm5nLVwiICsgaXRlbSB9O1xuXHQgICAgfSk7XG5cblx0ICAgIGFuZ3VsYXIuZm9yRWFjaChib3RoQXR0cmlidXRlQW5kQm91bmQsIGZ1bmN0aW9uIChpdGVtKSB7XG5cdCAgICAgIG5nTW9kZWxBdHRyaWJ1dGVzW2l0ZW1dID0geyBhdHRyaWJ1dGU6IGl0ZW0sIGJvdW5kOiBcIm5nLVwiICsgaXRlbSB9O1xuXHQgICAgfSk7XG5cblx0ICAgIGFuZ3VsYXIuZm9yRWFjaChleHByZXNzaW9uT25seSwgZnVuY3Rpb24gKGl0ZW0pIHtcblx0ICAgICAgdmFyIHByb3BOYW1lID0gXCJvblwiICsgaXRlbS5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKSArIGl0ZW0uc3Vic3RyKDEpO1xuXHQgICAgICBuZ01vZGVsQXR0cmlidXRlc1twcm9wTmFtZV0gPSB7IGV4cHJlc3Npb246IFwibmctXCIgKyBpdGVtIH07XG5cdCAgICB9KTtcblxuXHQgICAgYW5ndWxhci5mb3JFYWNoKGF0dHJpYnV0ZU9ubHksIGZ1bmN0aW9uIChpdGVtKSB7XG5cdCAgICAgIG5nTW9kZWxBdHRyaWJ1dGVzW2l0ZW1dID0geyBhdHRyaWJ1dGU6IGl0ZW0gfTtcblx0ICAgIH0pO1xuXHQgICAgcmV0dXJuIG5nTW9kZWxBdHRyaWJ1dGVzO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGdldEVwVmFsdWUoZXAsIG5hbWUpIHtcblx0ICAgIHJldHVybiBlcFtcInRlbXBsYXRlT3B0aW9ucy5cIiArIG5hbWVdIHx8IGVwW1widGVtcGxhdGVPcHRpb25zWydcIiArIG5hbWUgKyBcIiddXCJdIHx8IGVwW1widGVtcGxhdGVPcHRpb25zW1xcXCJcIiArIG5hbWUgKyBcIlxcXCJdXCJdO1xuXHQgIH1cblxuXHQgIGZ1bmN0aW9uIGFkZElmTm90UHJlc2VudChub2RlcywgYXR0ciwgdmFsKSB7XG5cdCAgICBhbmd1bGFyLmZvckVhY2gobm9kZXMsIGZ1bmN0aW9uIChub2RlKSB7XG5cdCAgICAgIGlmICghbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cikpIHtcblx0ICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyLCB2YWwpO1xuXHQgICAgICB9XG5cdCAgICB9KTtcblx0ICB9XG5cdH1cblx0YWRkRm9ybWx5TmdNb2RlbEF0dHJzTWFuaXB1bGF0b3IuJGluamVjdCA9IFtcImZvcm1seUNvbmZpZ1wiXTtcblxuXHQvLyBqc2hpbnQgLVcwMzVcblx0Ly8gZW1wdHkgdG8gaWxsdXN0cmF0ZSB0aGF0IGEgYm9vbGVhbiB3aWxsIG5vdCBiZSBhZGRlZCB2aWEgdmFsLmJvdW5kXG5cdC8vIGlmIHlvdSB3YW50IGl0IGFkZGVkIHZpYSB2YWwuYm91bmQsIHRoZW4gcHV0IGl0IGluIGV4cHJlc3Npb25Qcm9wZXJ0aWVzXG5cbi8qKiovIH0sXG4vKiAxNCAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBhZGRDdXN0b21UYWdzO1xuXG5cdC8vIEBuZ0luamVjdFxuXHRmdW5jdGlvbiBhZGRDdXN0b21UYWdzKCRkb2N1bWVudCkge1xuXHQgIGlmICgkZG9jdW1lbnQgJiYgJGRvY3VtZW50LmdldCkge1xuXHQgICAgKGZ1bmN0aW9uICgpIHtcblx0ICAgICAgLy9JRTggY2hlY2sgLT5cblx0ICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDk2NDk2Ni9kZXRlY3QtaWUtdmVyc2lvbi1wcmlvci10by12OS1pbi1qYXZhc2NyaXB0LzEwOTY1MjAzIzEwOTY1MjAzXG5cdCAgICAgIHZhciBkb2N1bWVudCA9ICRkb2N1bWVudC5nZXQoMCk7XG5cdCAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuXHQgICAgICBkaXYuaW5uZXJIVE1MID0gXCI8IS0tW2lmIGx0IElFIDldPjxpPjwvaT48IVtlbmRpZl0tLT5cIjtcblx0ICAgICAgdmFyIGlzSWVMZXNzVGhhbjkgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpXCIpLmxlbmd0aCA9PT0gMTtcblxuXHQgICAgICBpZiAoaXNJZUxlc3NUaGFuOSkge1xuXHQgICAgICAgIC8vYWRkIHRoZSBjdXN0b20gZWxlbWVudHMgdGhhdCB3ZSBuZWVkIGZvciBmb3JtbHlcblx0ICAgICAgICB2YXIgY3VzdG9tRWxlbWVudHMgPSBbXCJmb3JtbHktZmllbGRcIiwgXCJmb3JtbHktZm9ybVwiLCBcImZvcm1seS1jdXN0b20tdmFsaWRhdGlvblwiLCBcImZvcm1seS1mb2N1c1wiLCBcImZvcm1seS10cmFuc3Bvc2VcIl07XG5cdCAgICAgICAgYW5ndWxhci5mb3JFYWNoKGN1c3RvbUVsZW1lbnRzLCBmdW5jdGlvbiAoZWwpIHtcblx0ICAgICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWwpO1xuXHQgICAgICAgIH0pO1xuXHQgICAgICB9XG5cdCAgICB9KSgpO1xuXHQgIH1cblx0fVxuXHRhZGRDdXN0b21UYWdzLiRpbmplY3QgPSBbXCIkZG9jdW1lbnRcIl07XG5cbi8qKiovIH0sXG4vKiAxNSAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0dmFyIF9pbnRlcm9wUmVxdWlyZSA9IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9ialtcImRlZmF1bHRcIl0gOiBvYmo7IH07XG5cblx0Ly8gc29tZSB2ZXJzaW9ucyBvZiBhbmd1bGFyIGRvbid0IGV4cG9ydCB0aGUgYW5ndWxhciBtb2R1bGUgcHJvcGVybHksXG5cdC8vIHNvIHdlIGdldCBpdCBmcm9tIHdpbmRvdyBpbiB0aGlzIGNhc2UuXG5cblx0dmFyIGFuZ3VsYXIgPSBfaW50ZXJvcFJlcXVpcmUoX193ZWJwYWNrX3JlcXVpcmVfXygxNykpO1xuXG5cdGlmICghYW5ndWxhci52ZXJzaW9uKSB7XG5cdCAgYW5ndWxhciA9IHdpbmRvdy5hbmd1bGFyO1xuXHR9XG5cdG1vZHVsZS5leHBvcnRzID0gYW5ndWxhcjtcblxuLyoqKi8gfSxcbi8qIDE2ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMTZfXztcblxuLyoqKi8gfSxcbi8qIDE3ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMTdfXztcblxuLyoqKi8gfSxcbi8qIDE4ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRcInVzZSBzdHJpY3RcIjtcblxuXHR2YXIgX2ludGVyb3BSZXF1aXJlID0gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqW1wiZGVmYXVsdFwiXSA6IG9iajsgfTtcblxuXHR2YXIgYW5ndWxhciA9IF9pbnRlcm9wUmVxdWlyZShfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KSk7XG5cblx0bW9kdWxlLmV4cG9ydHMgPSB7IGZvcm1seUV2YWw6IGZvcm1seUV2YWwsIGdldEZpZWxkSWQ6IGdldEZpZWxkSWQsIHJldmVyc2VEZWVwTWVyZ2U6IHJldmVyc2VEZWVwTWVyZ2UsIGZpbmRCeU5vZGVOYW1lOiBmaW5kQnlOb2RlTmFtZSwgYXJyYXlpZnk6IGFycmF5aWZ5LCBleHRlbmRGdW5jdGlvbjogZXh0ZW5kRnVuY3Rpb24gfTtcblxuXHRmdW5jdGlvbiBmb3JtbHlFdmFsKHNjb3BlLCBleHByZXNzaW9uLCAkbW9kZWxWYWx1ZSwgJHZpZXdWYWx1ZSwgZXh0cmFMb2NhbHMpIHtcblx0ICBpZiAoYW5ndWxhci5pc0Z1bmN0aW9uKGV4cHJlc3Npb24pKSB7XG5cdCAgICByZXR1cm4gZXhwcmVzc2lvbigkdmlld1ZhbHVlLCAkbW9kZWxWYWx1ZSwgc2NvcGUsIGV4dHJhTG9jYWxzKTtcblx0ICB9IGVsc2Uge1xuXHQgICAgcmV0dXJuIHNjb3BlLiRldmFsKGV4cHJlc3Npb24sIGFuZ3VsYXIuZXh0ZW5kKHsgJHZpZXdWYWx1ZTogJHZpZXdWYWx1ZSwgJG1vZGVsVmFsdWU6ICRtb2RlbFZhbHVlIH0sIGV4dHJhTG9jYWxzKSk7XG5cdCAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gZ2V0RmllbGRJZChmb3JtSWQsIG9wdGlvbnMsIGluZGV4KSB7XG5cdCAgaWYgKG9wdGlvbnMuaWQpIHtcblx0ICAgIHJldHVybiBvcHRpb25zLmlkO1xuXHQgIH1cblx0ICB2YXIgdHlwZSA9IG9wdGlvbnMudHlwZTtcblx0ICBpZiAoIXR5cGUgJiYgb3B0aW9ucy50ZW1wbGF0ZSkge1xuXHQgICAgdHlwZSA9IFwidGVtcGxhdGVcIjtcblx0ICB9IGVsc2UgaWYgKCF0eXBlICYmIG9wdGlvbnMudGVtcGxhdGVVcmwpIHtcblx0ICAgIHR5cGUgPSBcInRlbXBsYXRlVXJsXCI7XG5cdCAgfVxuXG5cdCAgcmV0dXJuIFtmb3JtSWQsIHR5cGUsIG9wdGlvbnMua2V5LCBpbmRleF0uam9pbihcIl9cIik7XG5cdH1cblxuXHRmdW5jdGlvbiByZXZlcnNlRGVlcE1lcmdlKGRlc3QpIHtcblx0ICBhbmd1bGFyLmZvckVhY2goYXJndW1lbnRzLCBmdW5jdGlvbiAoc3JjLCBpbmRleCkge1xuXHQgICAgaWYgKCFpbmRleCkge1xuXHQgICAgICByZXR1cm47XG5cdCAgICB9XG5cdCAgICBhbmd1bGFyLmZvckVhY2goc3JjLCBmdW5jdGlvbiAodmFsLCBwcm9wKSB7XG5cdCAgICAgIGlmICghYW5ndWxhci5pc0RlZmluZWQoZGVzdFtwcm9wXSkpIHtcblx0ICAgICAgICBkZXN0W3Byb3BdID0gYW5ndWxhci5jb3B5KHZhbCk7XG5cdCAgICAgIH0gZWxzZSBpZiAob2JqQW5kU2FtZVR5cGUoZGVzdFtwcm9wXSwgdmFsKSkge1xuXHQgICAgICAgIHJldmVyc2VEZWVwTWVyZ2UoZGVzdFtwcm9wXSwgdmFsKTtcblx0ICAgICAgfVxuXHQgICAgfSk7XG5cdCAgfSk7XG5cdH1cblxuXHRmdW5jdGlvbiBvYmpBbmRTYW1lVHlwZShvYmoxLCBvYmoyKSB7XG5cdCAgcmV0dXJuIGFuZ3VsYXIuaXNPYmplY3Qob2JqMSkgJiYgYW5ndWxhci5pc09iamVjdChvYmoyKSAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqMSkgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmoyKTtcblx0fVxuXG5cdC8vcmVjdXJzZSBkb3duIGEgbm9kZSB0cmVlIHRvIGZpbmQgYSBub2RlIHdpdGggbWF0Y2hpbmcgbm9kZU5hbWUsIGZvciBjdXN0b20gdGFncyBqUXVlcnkuZmluZCBkb2Vzbid0IHdvcmsgaW4gSUU4XG5cdGZ1bmN0aW9uIGZpbmRCeU5vZGVOYW1lKGVsLCBub2RlTmFtZSkge1xuXHQgIGlmICghZWwucHJvcCkge1xuXHQgICAgLy8gbm90IGEgalF1ZXJ5IG9yIGpxTGl0ZSBvYmplY3QgLT4gd3JhcCBpdFxuXHQgICAgZWwgPSBhbmd1bGFyLmVsZW1lbnQoZWwpO1xuXHQgIH1cblxuXHQgIGlmIChlbC5wcm9wKFwibm9kZU5hbWVcIikgPT09IG5vZGVOYW1lLnRvVXBwZXJDYXNlKCkpIHtcblx0ICAgIHJldHVybiBlbDtcblx0ICB9XG5cblx0ICB2YXIgYyA9IGVsLmNoaWxkcmVuKCk7XG5cdCAgZm9yICh2YXIgaSA9IDA7IGMgJiYgaSA8IGMubGVuZ3RoOyBpKyspIHtcblx0ICAgIHZhciBub2RlID0gZmluZEJ5Tm9kZU5hbWUoY1tpXSwgbm9kZU5hbWUpO1xuXHQgICAgaWYgKG5vZGUpIHtcblx0ICAgICAgcmV0dXJuIG5vZGU7XG5cdCAgICB9XG5cdCAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gYXJyYXlpZnkob2JqKSB7XG5cdCAgaWYgKG9iaiAmJiAhYW5ndWxhci5pc0FycmF5KG9iaikpIHtcblx0ICAgIG9iaiA9IFtvYmpdO1xuXHQgIH0gZWxzZSBpZiAoIW9iaikge1xuXHQgICAgb2JqID0gW107XG5cdCAgfVxuXHQgIHJldHVybiBvYmo7XG5cdH1cblxuXHRmdW5jdGlvbiBleHRlbmRGdW5jdGlvbigpIHtcblx0ICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgZm5zID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG5cdCAgICBmbnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG5cdCAgfVxuXG5cdCAgcmV0dXJuIGZ1bmN0aW9uIGV4dGVuZGVkRnVuY3Rpb24oKSB7XG5cdCAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcblx0ICAgIGZucy5mb3JFYWNoKGZ1bmN0aW9uIChmbikge1xuXHQgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgYXJncyk7XG5cdCAgICB9KTtcblx0ICB9O1xuXHR9XG5cbi8qKiovIH1cbi8qKioqKiovIF0pXG59KTtcbjtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vYW5ndWxhci1mb3JtbHkvZGlzdC9mb3JtbHkuanNcbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  48. /***/ },
  49. /* 4 */
  50. /***/ function(module, exports) {
  51. eval("module.exports = angular;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJhbmd1bGFyXCI/MTFkMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiI0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBhbmd1bGFyO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiYW5ndWxhclwiXG4vLyBtb2R1bGUgaWQgPSA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  52. /***/ },
  53. /* 5 */
  54. /***/ function(module, exports, __webpack_require__) {
  55. eval("// angular-formly-templates-bootstrap version 4.3.2 built with ♥ by Astrism <astrisms@gmail.com>, Kent C. Dodds <kent@doddsfamily.us> (ó ì_í)=óò=(ì_í ò)\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(3), __webpack_require__(2), __webpack_require__(4));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"angular-formly\", \"api-check\", \"angular\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ngFormlyTemplatesBootstrap\"] = factory(require(\"angular-formly\"), require(\"api-check\"), require(\"angular\"));\n\telse\n\t\troot[\"ngFormlyTemplatesBootstrap\"] = factory(root[\"ngFormly\"], root[\"apiCheck\"], root[\"angular\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_8__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tmodule.exports = __webpack_require__(11);\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.config(addCheckboxType);\n\t\n\t function addCheckboxType(formlyConfigProvider, formlyBootstrapApiCheck) {\n\t var c = formlyBootstrapApiCheck;\n\t formlyConfigProvider.setType({\n\t name: 'multiCheckbox',\n\t template: __webpack_require__(21),\n\t wrapper: ['bootstrapLabel', 'bootstrapHasError'],\n\t apiCheck: {\n\t templateOptions: c.shape({\n\t options: c.arrayOf(c.object),\n\t labelProp: c.string.optional,\n\t valueProp: c.string.optional\n\t })\n\t },\n\t defaultOptions: {\n\t noFormControl: false,\n\t ngModelAttrs: {\n\t required: {\n\t attribute: '',\n\t bound: ''\n\t }\n\t }\n\t },\n\t apiCheckInstance: c,\n\t controller: /* @ngInject */[\"$scope\", function controller($scope) {\n\t var to = $scope.to;\n\t var opts = $scope.options;\n\t $scope.multiCheckbox = {\n\t checked: [],\n\t change: setModel\n\t };\n\t\n\t // initialize the checkboxes check property\n\t var modelValue = $scope.model[opts.key];\n\t if (angular.isArray(modelValue)) {\n\t (function () {\n\t var valueProp = to.valueProp || 'value';\n\t angular.forEach(to.options, function (v, index) {\n\t $scope.multiCheckbox.checked[index] = modelValue.indexOf(v[valueProp]) !== -1;\n\t });\n\t })();\n\t }\n\t\n\t function checkValidity(expressionValue) {\n\t var valid = angular.isArray($scope.model[opts.key]) && $scope.model[opts.key].length > 0 && expressionValue;\n\t\n\t $scope.fc.$setValidity('required', valid);\n\t }\n\t\n\t function setModel() {\n\t $scope.model[opts.key] = [];\n\t angular.forEach($scope.multiCheckbox.checked, function (checkbox, index) {\n\t if (checkbox) {\n\t $scope.model[opts.key].push(to.options[index][to.valueProp || 'value']);\n\t }\n\t });\n\t\n\t // Must make sure we mark as touched because only the last checkbox due to a bug in angular.\n\t $scope.fc.$setTouched();\n\t checkValidity(true);\n\t }\n\t\n\t if (opts.expressionProperties && opts.expressionProperties.required) {\n\t $scope.$watch($scope.options.expressionProperties.required, function (newValue) {\n\t checkValidity(newValue);\n\t });\n\t }\n\t\n\t if ($scope.to.required) {\n\t var unwatchFormControl = $scope.$watch('fc', function (newValue) {\n\t if (!newValue) {\n\t return;\n\t }\n\t checkValidity(true);\n\t unwatchFormControl;\n\t });\n\t }\n\t }]\n\t });\n\t }\n\t addCheckboxType.$inject = [\"formlyConfigProvider\", \"formlyBootstrapApiCheck\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// some versions of angular don't export the angular module properly,\n\t// so we get it from window in this case.\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(8);\n\tif (!angular.version) {\n\t angular = window.angular;\n\t}\n\tmodule.exports = angular;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.config(addWrappers);\n\t\n\t function addWrappers(formlyConfigProvider, formlyBootstrapApiCheck) {\n\t var c = formlyBootstrapApiCheck;\n\t formlyConfigProvider.setWrapper([{\n\t name: 'bootstrapLabel',\n\t template: __webpack_require__(17),\n\t apiCheck: {\n\t templateOptions: c.shape({\n\t label: c.string,\n\t required: c.bool.optional\n\t })\n\t },\n\t apiCheckInstance: c\n\t }, { name: 'bootstrapHasError', template: __webpack_require__(18) }]);\n\t }\n\t addWrappers.$inject = [\"formlyConfigProvider\", \"formlyBootstrapApiCheck\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t __webpack_require__(10)(ngModule);\n\t __webpack_require__(1)(ngModule);\n\t __webpack_require__(12)(ngModule);\n\t __webpack_require__(9)(ngModule);\n\t __webpack_require__(13)(ngModule);\n\t __webpack_require__(14)(ngModule);\n\t};\n\t\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _addons = __webpack_require__(15);\n\t\n\tvar _addons2 = _interopRequireDefault(_addons);\n\t\n\tvar _description = __webpack_require__(16);\n\t\n\tvar _description2 = _interopRequireDefault(_description);\n\t\n\texports['default'] = function (ngModule) {\n\t (0, _addons2['default'])(ngModule);\n\t (0, _description2['default'])(ngModule);\n\t};\n\t\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.config(addRadioType);\n\t\n\t function addRadioType(formlyConfigProvider, formlyBootstrapApiCheck) {\n\t var c = formlyBootstrapApiCheck;\n\t formlyConfigProvider.setType({\n\t name: 'radio',\n\t template: __webpack_require__(19),\n\t wrapper: ['bootstrapLabel', 'bootstrapHasError'],\n\t defaultOptions: {\n\t noFormControl: false\n\t },\n\t apiCheck: {\n\t templateOptions: c.shape({\n\t options: c.arrayOf(c.object),\n\t labelProp: c.string.optional,\n\t valueProp: c.string.optional\n\t })\n\t },\n\t apiCheckInstance: c\n\t });\n\t }\n\t addRadioType.$inject = [\"formlyConfigProvider\", \"formlyBootstrapApiCheck\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.config(addCheckboxType);\n\t\n\t function addCheckboxType(formlyConfigProvider, formlyBootstrapApiCheck) {\n\t var c = formlyBootstrapApiCheck;\n\t formlyConfigProvider.setType({\n\t name: 'checkbox',\n\t template: __webpack_require__(20),\n\t wrapper: ['bootstrapHasError'],\n\t apiCheck: {\n\t templateOptions: c.shape({\n\t label: c.string\n\t })\n\t },\n\t apiCheckInstance: c\n\t });\n\t }\n\t addCheckboxType.$inject = [\"formlyConfigProvider\", \"formlyBootstrapApiCheck\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\tvar ngModuleName = 'formlyBootstrap';\n\tvar angular = __webpack_require__(4);\n\tvar ngModule = angular.module(ngModuleName, [__webpack_require__(2)]);\n\tngModule.constant('formlyBootstrapApiCheck', __webpack_require__(3)({\n\t output: {\n\t prefix: 'angular-formly-bootstrap'\n\t }\n\t}));\n\tngModule.constant('formlyBootstrapVersion', (\"4.3.2\"));\n\t\n\t__webpack_require__(5)(ngModule);\n\t__webpack_require__(6)(ngModule);\n\t__webpack_require__(7)(ngModule);\n\t\n\texports['default'] = ngModuleName;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.config(addInputType);\n\t\n\t function addInputType(formlyConfigProvider) {\n\t formlyConfigProvider.setType({\n\t name: 'input',\n\t template: '<input class=\"form-control\" ng-model=\"model[options.key]\">',\n\t wrapper: ['bootstrapLabel', 'bootstrapHasError']\n\t });\n\t }\n\t addInputType.$inject = [\"formlyConfigProvider\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _defineProperty(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); }\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.config(addSelectType);\n\t\n\t var template = '<select class=\"form-control\" ng-model=\"model[options.key]\"></select>';\n\t\n\t function addSelectType(formlyConfigProvider, formlyBootstrapApiCheck) {\n\t var c = formlyBootstrapApiCheck;\n\t formlyConfigProvider.setType({\n\t name: 'select',\n\t template: template,\n\t wrapper: ['bootstrapLabel', 'bootstrapHasError'],\n\t defaultOptions: function defaultOptions(options) {\n\t /* jshint maxlen:195 */\n\t var ngOptions = options.templateOptions.ngOptions || 'option[to.valueProp || \\'value\\'] as option[to.labelProp || \\'name\\'] group by option[to.groupProp || \\'group\\'] for option in to.options';\n\t return {\n\t ngModelAttrs: _defineProperty({}, ngOptions, {\n\t value: 'ng-options'\n\t })\n\t };\n\t },\n\t apiCheck: {\n\t templateOptions: c.shape({\n\t options: c.arrayOf(c.object),\n\t labelProp: c.string.optional,\n\t valueProp: c.string.optional,\n\t groupProp: c.string.optional\n\t })\n\t },\n\t apiCheckInstance: c\n\t });\n\t }\n\t addSelectType.$inject = [\"formlyConfigProvider\", \"formlyBootstrapApiCheck\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.config(addTextareaType);\n\t\n\t function addTextareaType(formlyConfigProvider, formlyBootstrapApiCheck) {\n\t var c = formlyBootstrapApiCheck;\n\t formlyConfigProvider.setType({\n\t name: 'textarea',\n\t template: '<textarea class=\"form-control\" ng-model=\"model[options.key]\"></textarea>',\n\t wrapper: ['bootstrapLabel', 'bootstrapHasError'],\n\t defaultOptions: {\n\t ngModelAttrs: {\n\t rows: { attribute: 'rows' },\n\t cols: { attribute: 'cols' }\n\t }\n\t },\n\t apiCheck: {\n\t templateOptions: c.shape({\n\t rows: c.number.optional,\n\t cols: c.number.optional\n\t })\n\t },\n\t apiCheckInstance: c\n\t });\n\t }\n\t addTextareaType.$inject = [\"formlyConfigProvider\", \"formlyBootstrapApiCheck\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.run(addAddonsManipulator);\n\t\n\t function addAddonsManipulator(formlyConfig, formlyBootstrapApiCheck) {\n\t var addonTemplate = __webpack_require__(22);\n\t var addonChecker = formlyBootstrapApiCheck.shape({\n\t 'class': formlyBootstrapApiCheck.string.optional,\n\t text: formlyBootstrapApiCheck.string.optional,\n\t onClick: formlyBootstrapApiCheck.func.optional\n\t }).strict.optional;\n\t var api = formlyBootstrapApiCheck.shape({\n\t templateOptions: formlyBootstrapApiCheck.shape({\n\t addonLeft: addonChecker,\n\t addonRight: addonChecker\n\t })\n\t });\n\t formlyConfig.templateManipulators.preWrapper.push(function (template, options) {\n\t if (!options.templateOptions.addonLeft && !options.templateOptions.addonRight) {\n\t return template;\n\t }\n\t formlyBootstrapApiCheck.warn([api], [options]);\n\t return addonTemplate.replace('<formly-transclude></formly-transclude>', template);\n\t });\n\t }\n\t addAddonsManipulator.$inject = [\"formlyConfig\", \"formlyBootstrapApiCheck\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\texports['default'] = function (ngModule) {\n\t ngModule.run(addDescriptionManipulator);\n\t\n\t function addDescriptionManipulator(formlyConfig) {\n\t formlyConfig.templateManipulators.preWrapper.push(function ariaDescribedBy(template, options, scope) {\n\t if (angular.isDefined(options.templateOptions.description)) {\n\t var el = document.createElement('div');\n\t el.appendChild(angular.element(template)[0]);\n\t el.appendChild(angular.element('<p id=\"' + scope.id + '_description\"' + 'class=\"help-block\"' + 'ng-if=\"to.description\">' + '{{to.description}}' + '</p>')[0]);\n\t var modelEls = angular.element(el.querySelectorAll('[ng-model]'));\n\t if (modelEls) {\n\t modelEls.attr('aria-describedby', scope.id + '_description');\n\t }\n\t return el.innerHTML;\n\t } else {\n\t return template;\n\t }\n\t });\n\t }\n\t addDescriptionManipulator.$inject = [\"formlyConfig\"];\n\t};\n\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"<div>\\n <label for=\\\"{{id}}\\\" class=\\\"control-label\\\">\\n {{to.label}}\\n {{to.required ? '*' : ''}}\\n </label>\\n <formly-transclude></formly-transclude>\\n</div>\\n\"\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"<div class=\\\"form-group\\\" ng-class=\\\"{'has-error': showError}\\\">\\n <formly-transclude></formly-transclude>\\n</div>\\n\"\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"<div class=\\\"radio-group\\\">\\n <div ng-repeat=\\\"(key, option) in to.options\\\" class=\\\"radio\\\">\\n <label>\\n <input type=\\\"radio\\\"\\n id=\\\"{{id + '_'+ $index}}\\\"\\n tabindex=\\\"0\\\"\\n ng-value=\\\"option[to.valueProp || 'value']\\\"\\n ng-model=\\\"model[options.key]\\\">\\n {{option[to.labelProp || 'name']}}\\n </label>\\n </div>\\n</div>\\n\"\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"<div class=\\\"checkbox\\\">\\n\\t<label>\\n\\t\\t<input type=\\\"checkbox\\\"\\n class=\\\"formly-field-checkbox\\\"\\n\\t\\t ng-model=\\\"model[options.key]\\\">\\n\\t\\t{{to.label}}\\n\\t\\t{{to.required ? '*' : ''}}\\n\\t</label>\\n</div>\\n\"\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"<div class=\\\"radio-group\\\">\\n <div ng-repeat=\\\"(key, option) in to.options\\\" class=\\\"checkbox\\\">\\n <label>\\n <input type=\\\"checkbox\\\"\\n id=\\\"{{id + '_'+ $index}}\\\"\\n ng-model=\\\"multiCheckbox.checked[$index]\\\"\\n ng-change=\\\"multiCheckbox.change()\\\">\\n {{option[to.labelProp || 'name']}}\\n </label>\\n </div>\\n</div>\\n\"\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"<div ng-class=\\\"{'input-group': to.addonLeft || to.addonRight}\\\">\\n <div class=\\\"input-group-addon\\\"\\n ng-if=\\\"to.addonLeft\\\"\\n ng-style=\\\"{cursor: to.addonLeft.onClick ? 'pointer' : 'inherit'}\\\"\\n ng-click=\\\"to.addonLeft.onClick(options, this)\\\">\\n <i class=\\\"{{to.addonLeft.class}}\\\" ng-if=\\\"to.addonLeft.class\\\"></i>\\n <span ng-if=\\\"to.addonLeft.text\\\">{{to.addonLeft.text}}</span>\\n </div>\\n <formly-transclude></formly-transclude>\\n <div class=\\\"input-group-addon\\\"\\n ng-if=\\\"to.addonRight\\\"\\n ng-style=\\\"{cursor: to.addonRight.onClick ? 'pointer' : 'inherit'}\\\"\\n ng-click=\\\"to.addonRight.onClick(options, this)\\\">\\n <i class=\\\"{{to.addonRight.class}}\\\" ng-if=\\\"to.addonRight.class\\\"></i>\\n <span ng-if=\\\"to.addonRight.text\\\">{{to.addonRight.text}}</span>\\n </div>\\n</div>\\n\"\n\n/***/ }\n/******/ ])\n});\n;\n//# sourceMappingURL=angular-formly-templates-bootstrap.js.map//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2FuZ3VsYXItZm9ybWx5LXRlbXBsYXRlcy1ib290c3RyYXAvZGlzdC9hbmd1bGFyLWZvcm1seS10ZW1wbGF0ZXMtYm9vdHN0cmFwLmpzP2Y1YjUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZCxZQUFZO0FBQ1o7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsUUFBUTtBQUNSLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsUUFBUTtBQUNSO0FBQ0EsTUFBTSxHQUFHLCtEQUErRDtBQUN4RTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRix1Q0FBdUMsdUNBQXVDLGtCQUFrQjs7QUFFaEc7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsUUFBUTtBQUNSO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7QUFFRiw0Q0FBNEMseUNBQXlDLHFFQUFxRSxFQUFFOztBQUU1SjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixRQUFRO0FBQ1I7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixvQkFBb0I7QUFDdEMsa0JBQWtCO0FBQ2xCO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLFFBQVE7QUFDUjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUlBQXVJLGdCQUFnQjtBQUN2SjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBOztBQUVBLE9BQU87QUFDUDtBQUNBOztBQUVBLDJDQUEyQyxJQUFJLG1DQUFtQyxVQUFVLFFBQVEsd0JBQXdCOztBQUU1SCxPQUFPO0FBQ1A7QUFDQTs7QUFFQSx5REFBeUQsdUJBQXVCOztBQUVoRixPQUFPO0FBQ1A7QUFDQTs7QUFFQSxpTEFBaUwsa0JBQWtCLG1KQUFtSixnQ0FBZ0M7O0FBRXRYLE9BQU87QUFDUDtBQUNBOztBQUVBLHFMQUFxTCxVQUFVLFFBQVEsd0JBQXdCOztBQUUvTixPQUFPO0FBQ1A7QUFDQTs7QUFFQSx1TEFBdUwsa0JBQWtCLHlIQUF5SCxnQ0FBZ0M7O0FBRWxXLE9BQU87QUFDUDtBQUNBOztBQUVBLG9DQUFvQyw2Q0FBNkMsaUdBQWlHLHFEQUFxRCxxRkFBcUYsb0JBQW9CLGtGQUFrRixtQkFBbUIsK0pBQStKLHNEQUFzRCxzRkFBc0YscUJBQXFCLG9GQUFvRixvQkFBb0I7O0FBRTcxQjtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EiLCJmaWxlIjoiNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGFuZ3VsYXItZm9ybWx5LXRlbXBsYXRlcy1ib290c3RyYXAgdmVyc2lvbiA0LjMuMiBidWlsdCB3aXRoIOKZpSBieSBBc3RyaXNtIDxhc3RyaXNtc0BnbWFpbC5jb20+LCBLZW50IEMuIERvZGRzIDxrZW50QGRvZGRzZmFtaWx5LnVzPiAow7Mgw6xfw60pPcOzw7I9KMOsX8OtIMOyKVxuXG4oZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJhbmd1bGFyLWZvcm1seVwiKSwgcmVxdWlyZShcImFwaS1jaGVja1wiKSwgcmVxdWlyZShcImFuZ3VsYXJcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW1wiYW5ndWxhci1mb3JtbHlcIiwgXCJhcGktY2hlY2tcIiwgXCJhbmd1bGFyXCJdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIm5nRm9ybWx5VGVtcGxhdGVzQm9vdHN0cmFwXCJdID0gZmFjdG9yeShyZXF1aXJlKFwiYW5ndWxhci1mb3JtbHlcIiksIHJlcXVpcmUoXCJhcGktY2hlY2tcIiksIHJlcXVpcmUoXCJhbmd1bGFyXCIpKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJuZ0Zvcm1seVRlbXBsYXRlc0Jvb3RzdHJhcFwiXSA9IGZhY3Rvcnkocm9vdFtcIm5nRm9ybWx5XCJdLCByb290W1wiYXBpQ2hlY2tcIl0sIHJvb3RbXCJhbmd1bGFyXCJdKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFXzNfXywgX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV84X18pIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbi8qKioqKiovIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fSxcbi8qKioqKiovIFx0XHRcdGlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdGxvYWRlZDogZmFsc2Vcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbi8qKioqKiovIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdCd1c2Ugc3RyaWN0Jztcblx0XG5cdG1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMSk7XG5cbi8qKiovIH0sXG4vKiAxICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHQndXNlIHN0cmljdCc7XG5cdFxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG5cdCAgdmFsdWU6IHRydWVcblx0fSk7XG5cdFxuXHRleHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAobmdNb2R1bGUpIHtcblx0ICBuZ01vZHVsZS5jb25maWcoYWRkQ2hlY2tib3hUeXBlKTtcblx0XG5cdCAgZnVuY3Rpb24gYWRkQ2hlY2tib3hUeXBlKGZvcm1seUNvbmZpZ1Byb3ZpZGVyLCBmb3JtbHlCb290c3RyYXBBcGlDaGVjaykge1xuXHQgICAgdmFyIGMgPSBmb3JtbHlCb290c3RyYXBBcGlDaGVjaztcblx0ICAgIGZvcm1seUNvbmZpZ1Byb3ZpZGVyLnNldFR5cGUoe1xuXHQgICAgICBuYW1lOiAnbXVsdGlDaGVja2JveCcsXG5cdCAgICAgIHRlbXBsYXRlOiBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKSxcblx0ICAgICAgd3JhcHBlcjogWydib290c3RyYXBMYWJlbCcsICdib290c3RyYXBIYXNFcnJvciddLFxuXHQgICAgICBhcGlDaGVjazoge1xuXHQgICAgICAgIHRlbXBsYXRlT3B0aW9uczogYy5zaGFwZSh7XG5cdCAgICAgICAgICBvcHRpb25zOiBjLmFycmF5T2YoYy5vYmplY3QpLFxuXHQgICAgICAgICAgbGFiZWxQcm9wOiBjLnN0cmluZy5vcHRpb25hbCxcblx0ICAgICAgICAgIHZhbHVlUHJvcDogYy5zdHJpbmcub3B0aW9uYWxcblx0ICAgICAgICB9KVxuXHQgICAgICB9LFxuXHQgICAgICBkZWZhdWx0T3B0aW9uczoge1xuXHQgICAgICAgIG5vRm9ybUNvbnRyb2w6IGZhbHNlLFxuXHQgICAgICAgIG5nTW9kZWxBdHRyczoge1xuXHQgICAgICAgICAgcmVxdWlyZWQ6IHtcblx0ICAgICAgICAgICAgYXR0cmlidXRlOiAnJyxcblx0ICAgICAgICAgICAgYm91bmQ6ICcnXG5cdCAgICAgICAgICB9XG5cdCAgICAgICAgfVxuXHQgICAgICB9LFxuXHQgICAgICBhcGlDaGVja0luc3RhbmNlOiBjLFxuXHQgICAgICBjb250cm9sbGVyOiAvKiBAbmdJbmplY3QgKi9bXCIkc2NvcGVcIiwgZnVuY3Rpb24gY29udHJvbGxlcigkc2NvcGUpIHtcblx0ICAgICAgICB2YXIgdG8gPSAkc2NvcGUudG87XG5cdCAgICAgICAgdmFyIG9wdHMgPSAkc2NvcGUub3B0aW9ucztcblx0ICAgICAgICAkc2NvcGUubXVsdGlDaGVja2JveCA9IHtcblx0ICAgICAgICAgIGNoZWNrZWQ6IFtdLFxuXHQgICAgICAgICAgY2hhbmdlOiBzZXRNb2RlbFxuXHQgICAgICAgIH07XG5cdFxuXHQgICAgICAgIC8vIGluaXRpYWxpemUgdGhlIGNoZWNrYm94ZXMgY2hlY2sgcHJvcGVydHlcblx0ICAgICAgICB2YXIgbW9kZWxWYWx1ZSA9ICRzY29wZS5tb2RlbFtvcHRzLmtleV07XG5cdCAgICAgICAgaWYgKGFuZ3VsYXIuaXNBcnJheShtb2RlbFZhbHVlKSkge1xuXHQgICAgICAgICAgKGZ1bmN0aW9uICgpIHtcblx0ICAgICAgICAgICAgdmFyIHZhbHVlUHJvcCA9IHRvLnZhbHVlUHJvcCB8fCAndmFsdWUnO1xuXHQgICAgICAgICAgICBhbmd1bGFyLmZvckVhY2godG8ub3B0aW9ucywgZnVuY3Rpb24gKHYsIGluZGV4KSB7XG5cdCAgICAgICAgICAgICAgJHNjb3BlLm11bHRpQ2hlY2tib3guY2hlY2tlZFtpbmRleF0gPSBtb2RlbFZhbHVlLmluZGV4T2Yodlt2YWx1ZVByb3BdKSAhPT0gLTE7XG5cdCAgICAgICAgICAgIH0pO1xuXHQgICAgICAgICAgfSkoKTtcblx0ICAgICAgICB9XG5cdFxuXHQgICAgICAgIGZ1bmN0aW9uIGNoZWNrVmFsaWRpdHkoZXhwcmVzc2lvblZhbHVlKSB7XG5cdCAgICAgICAgICB2YXIgdmFsaWQgPSBhbmd1bGFyLmlzQXJyYXkoJHNjb3BlLm1vZGVsW29wdHMua2V5XSkgJiYgJHNjb3BlLm1vZGVsW29wdHMua2V5XS5sZW5ndGggPiAwICYmIGV4cHJlc3Npb25WYWx1ZTtcblx0XG5cdCAgICAgICAgICAkc2NvcGUuZmMuJHNldFZhbGlkaXR5KCdyZXF1aXJlZCcsIHZhbGlkKTtcblx0ICAgICAgICB9XG5cdFxuXHQgICAgICAgIGZ1bmN0aW9uIHNldE1vZGVsKCkge1xuXHQgICAgICAgICAgJHNjb3BlLm1vZGVsW29wdHMua2V5XSA9IFtdO1xuXHQgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKCRzY29wZS5tdWx0aUNoZWNrYm94LmNoZWNrZWQsIGZ1bmN0aW9uIChjaGVja2JveCwgaW5kZXgpIHtcblx0ICAgICAgICAgICAgaWYgKGNoZWNrYm94KSB7XG5cdCAgICAgICAgICAgICAgJHNjb3BlLm1vZGVsW29wdHMua2V5XS5wdXNoKHRvLm9wdGlvbnNbaW5kZXhdW3RvLnZhbHVlUHJvcCB8fCAndmFsdWUnXSk7XG5cdCAgICAgICAgICAgIH1cblx0ICAgICAgICAgIH0pO1xuXHRcblx0ICAgICAgICAgIC8vIE11c3QgbWFrZSBzdXJlIHdlIG1hcmsgYXMgdG91Y2hlZCBiZWNhdXNlIG9ubHkgdGhlIGxhc3QgY2hlY2tib3ggZHVlIHRvIGEgYnVnIGluIGFuZ3VsYXIuXG5cdCAgICAgICAgICAkc2NvcGUuZmMuJHNldFRvdWNoZWQoKTtcblx0ICAgICAgICAgIGNoZWNrVmFsaWRpdHkodHJ1ZSk7XG5cdCAgICAgICAgfVxuXHRcblx0ICAgICAgICBpZiAob3B0cy5leHByZXNzaW9uUHJvcGVydGllcyAmJiBvcHRzLmV4cHJlc3Npb25Qcm9wZXJ0aWVzLnJlcXVpcmVkKSB7XG5cdCAgICAgICAgICAkc2NvcGUuJHdhdGNoKCRzY29wZS5vcHRpb25zLmV4cHJlc3Npb25Qcm9wZXJ0aWVzLnJlcXVpcmVkLCBmdW5jdGlvbiAobmV3VmFsdWUpIHtcblx0ICAgICAgICAgICAgY2hlY2tWYWxpZGl0eShuZXdWYWx1ZSk7XG5cdCAgICAgICAgICB9KTtcblx0ICAgICAgICB9XG5cdFxuXHQgICAgICAgIGlmICgkc2NvcGUudG8ucmVxdWlyZWQpIHtcblx0ICAgICAgICAgIHZhciB1bndhdGNoRm9ybUNvbnRyb2wgPSAkc2NvcGUuJHdhdGNoKCdmYycsIGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuXHQgICAgICAgICAgICBpZiAoIW5ld1ZhbHVlKSB7XG5cdCAgICAgICAgICAgICAgcmV0dXJuO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkodHJ1ZSk7XG5cdCAgICAgICAgICAgIHVud2F0Y2hGb3JtQ29udHJvbDtcblx0ICAgICAgICAgIH0pO1xuXHQgICAgICAgIH1cblx0ICAgICAgfV1cblx0ICAgIH0pO1xuXHQgIH1cblx0ICBhZGRDaGVja2JveFR5cGUuJGluamVjdCA9IFtcImZvcm1seUNvbmZpZ1Byb3ZpZGVyXCIsIFwiZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2tcIl07XG5cdH07XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKiovIH0sXG4vKiAyICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMl9fO1xuXG4vKioqLyB9LFxuLyogMyAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFXzNfXztcblxuLyoqKi8gfSxcbi8qIDQgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdC8vIHNvbWUgdmVyc2lvbnMgb2YgYW5ndWxhciBkb24ndCBleHBvcnQgdGhlIGFuZ3VsYXIgbW9kdWxlIHByb3Blcmx5LFxuXHQvLyBzbyB3ZSBnZXQgaXQgZnJvbSB3aW5kb3cgaW4gdGhpcyBjYXNlLlxuXHQndXNlIHN0cmljdCc7XG5cdFxuXHR2YXIgYW5ndWxhciA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7XG5cdGlmICghYW5ndWxhci52ZXJzaW9uKSB7XG5cdCAgYW5ndWxhciA9IHdpbmRvdy5hbmd1bGFyO1xuXHR9XG5cdG1vZHVsZS5leHBvcnRzID0gYW5ndWxhcjtcblxuLyoqKi8gfSxcbi8qIDUgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdCd1c2Ugc3RyaWN0Jztcblx0XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcblx0ICB2YWx1ZTogdHJ1ZVxuXHR9KTtcblx0XG5cdGV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChuZ01vZHVsZSkge1xuXHQgIG5nTW9kdWxlLmNvbmZpZyhhZGRXcmFwcGVycyk7XG5cdFxuXHQgIGZ1bmN0aW9uIGFkZFdyYXBwZXJzKGZvcm1seUNvbmZpZ1Byb3ZpZGVyLCBmb3JtbHlCb290c3RyYXBBcGlDaGVjaykge1xuXHQgICAgdmFyIGMgPSBmb3JtbHlCb290c3RyYXBBcGlDaGVjaztcblx0ICAgIGZvcm1seUNvbmZpZ1Byb3ZpZGVyLnNldFdyYXBwZXIoW3tcblx0ICAgICAgbmFtZTogJ2Jvb3RzdHJhcExhYmVsJyxcblx0ICAgICAgdGVtcGxhdGU6IF9fd2VicGFja19yZXF1aXJlX18oMTcpLFxuXHQgICAgICBhcGlDaGVjazoge1xuXHQgICAgICAgIHRlbXBsYXRlT3B0aW9uczogYy5zaGFwZSh7XG5cdCAgICAgICAgICBsYWJlbDogYy5zdHJpbmcsXG5cdCAgICAgICAgICByZXF1aXJlZDogYy5ib29sLm9wdGlvbmFsXG5cdCAgICAgICAgfSlcblx0ICAgICAgfSxcblx0ICAgICAgYXBpQ2hlY2tJbnN0YW5jZTogY1xuXHQgICAgfSwgeyBuYW1lOiAnYm9vdHN0cmFwSGFzRXJyb3InLCB0ZW1wbGF0ZTogX193ZWJwYWNrX3JlcXVpcmVfXygxOCkgfV0pO1xuXHQgIH1cblx0ICBhZGRXcmFwcGVycy4kaW5qZWN0ID0gW1wiZm9ybWx5Q29uZmlnUHJvdmlkZXJcIiwgXCJmb3JtbHlCb290c3RyYXBBcGlDaGVja1wiXTtcblx0fTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSxcbi8qIDYgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdCd1c2Ugc3RyaWN0Jztcblx0XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcblx0ICB2YWx1ZTogdHJ1ZVxuXHR9KTtcblx0XG5cdGV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChuZ01vZHVsZSkge1xuXHQgIF9fd2VicGFja19yZXF1aXJlX18oMTApKG5nTW9kdWxlKTtcblx0ICBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpKG5nTW9kdWxlKTtcblx0ICBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKShuZ01vZHVsZSk7XG5cdCAgX193ZWJwYWNrX3JlcXVpcmVfXyg5KShuZ01vZHVsZSk7XG5cdCAgX193ZWJwYWNrX3JlcXVpcmVfXygxMykobmdNb2R1bGUpO1xuXHQgIF9fd2VicGFja19yZXF1aXJlX18oMTQpKG5nTW9kdWxlKTtcblx0fTtcblx0XG5cdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKioqLyB9LFxuLyogNyAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXHRcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuXHQgIHZhbHVlOiB0cnVlXG5cdH0pO1xuXHRcblx0ZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXHRcblx0dmFyIF9hZGRvbnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KTtcblx0XG5cdHZhciBfYWRkb25zMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FkZG9ucyk7XG5cdFxuXHR2YXIgX2Rlc2NyaXB0aW9uID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNik7XG5cdFxuXHR2YXIgX2Rlc2NyaXB0aW9uMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Rlc2NyaXB0aW9uKTtcblx0XG5cdGV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChuZ01vZHVsZSkge1xuXHQgICgwLCBfYWRkb25zMlsnZGVmYXVsdCddKShuZ01vZHVsZSk7XG5cdCAgKDAsIF9kZXNjcmlwdGlvbjJbJ2RlZmF1bHQnXSkobmdNb2R1bGUpO1xuXHR9O1xuXHRcblx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKiovIH0sXG4vKiA4ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfOF9fO1xuXG4vKioqLyB9LFxuLyogOSAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXHRcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuXHQgIHZhbHVlOiB0cnVlXG5cdH0pO1xuXHRcblx0ZXhwb3J0c1snZGVmYXVsdCddID0gZnVuY3Rpb24gKG5nTW9kdWxlKSB7XG5cdCAgbmdNb2R1bGUuY29uZmlnKGFkZFJhZGlvVHlwZSk7XG5cdFxuXHQgIGZ1bmN0aW9uIGFkZFJhZGlvVHlwZShmb3JtbHlDb25maWdQcm92aWRlciwgZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2spIHtcblx0ICAgIHZhciBjID0gZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2s7XG5cdCAgICBmb3JtbHlDb25maWdQcm92aWRlci5zZXRUeXBlKHtcblx0ICAgICAgbmFtZTogJ3JhZGlvJyxcblx0ICAgICAgdGVtcGxhdGU6IF9fd2VicGFja19yZXF1aXJlX18oMTkpLFxuXHQgICAgICB3cmFwcGVyOiBbJ2Jvb3RzdHJhcExhYmVsJywgJ2Jvb3RzdHJhcEhhc0Vycm9yJ10sXG5cdCAgICAgIGRlZmF1bHRPcHRpb25zOiB7XG5cdCAgICAgICAgbm9Gb3JtQ29udHJvbDogZmFsc2Vcblx0ICAgICAgfSxcblx0ICAgICAgYXBpQ2hlY2s6IHtcblx0ICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IGMuc2hhcGUoe1xuXHQgICAgICAgICAgb3B0aW9uczogYy5hcnJheU9mKGMub2JqZWN0KSxcblx0ICAgICAgICAgIGxhYmVsUHJvcDogYy5zdHJpbmcub3B0aW9uYWwsXG5cdCAgICAgICAgICB2YWx1ZVByb3A6IGMuc3RyaW5nLm9wdGlvbmFsXG5cdCAgICAgICAgfSlcblx0ICAgICAgfSxcblx0ICAgICAgYXBpQ2hlY2tJbnN0YW5jZTogY1xuXHQgICAgfSk7XG5cdCAgfVxuXHQgIGFkZFJhZGlvVHlwZS4kaW5qZWN0ID0gW1wiZm9ybWx5Q29uZmlnUHJvdmlkZXJcIiwgXCJmb3JtbHlCb290c3RyYXBBcGlDaGVja1wiXTtcblx0fTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSxcbi8qIDEwICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHQndXNlIHN0cmljdCc7XG5cdFxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG5cdCAgdmFsdWU6IHRydWVcblx0fSk7XG5cdFxuXHRleHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAobmdNb2R1bGUpIHtcblx0ICBuZ01vZHVsZS5jb25maWcoYWRkQ2hlY2tib3hUeXBlKTtcblx0XG5cdCAgZnVuY3Rpb24gYWRkQ2hlY2tib3hUeXBlKGZvcm1seUNvbmZpZ1Byb3ZpZGVyLCBmb3JtbHlCb290c3RyYXBBcGlDaGVjaykge1xuXHQgICAgdmFyIGMgPSBmb3JtbHlCb290c3RyYXBBcGlDaGVjaztcblx0ICAgIGZvcm1seUNvbmZpZ1Byb3ZpZGVyLnNldFR5cGUoe1xuXHQgICAgICBuYW1lOiAnY2hlY2tib3gnLFxuXHQgICAgICB0ZW1wbGF0ZTogX193ZWJwYWNrX3JlcXVpcmVfXygyMCksXG5cdCAgICAgIHdyYXBwZXI6IFsnYm9vdHN0cmFwSGFzRXJyb3InXSxcblx0ICAgICAgYXBpQ2hlY2s6IHtcblx0ICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IGMuc2hhcGUoe1xuXHQgICAgICAgICAgbGFiZWw6IGMuc3RyaW5nXG5cdCAgICAgICAgfSlcblx0ICAgICAgfSxcblx0ICAgICAgYXBpQ2hlY2tJbnN0YW5jZTogY1xuXHQgICAgfSk7XG5cdCAgfVxuXHQgIGFkZENoZWNrYm94VHlwZS4kaW5qZWN0ID0gW1wiZm9ybWx5Q29uZmlnUHJvdmlkZXJcIiwgXCJmb3JtbHlCb290c3RyYXBBcGlDaGVja1wiXTtcblx0fTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSxcbi8qIDExICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHQndXNlIHN0cmljdCc7XG5cdFxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG5cdCAgdmFsdWU6IHRydWVcblx0fSk7XG5cdHZhciBuZ01vZHVsZU5hbWUgPSAnZm9ybWx5Qm9vdHN0cmFwJztcblx0dmFyIGFuZ3VsYXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuXHR2YXIgbmdNb2R1bGUgPSBhbmd1bGFyLm1vZHVsZShuZ01vZHVsZU5hbWUsIFtfX3dlYnBhY2tfcmVxdWlyZV9fKDIpXSk7XG5cdG5nTW9kdWxlLmNvbnN0YW50KCdmb3JtbHlCb290c3RyYXBBcGlDaGVjaycsIF9fd2VicGFja19yZXF1aXJlX18oMykoe1xuXHQgIG91dHB1dDoge1xuXHQgICAgcHJlZml4OiAnYW5ndWxhci1mb3JtbHktYm9vdHN0cmFwJ1xuXHQgIH1cblx0fSkpO1xuXHRuZ01vZHVsZS5jb25zdGFudCgnZm9ybWx5Qm9vdHN0cmFwVmVyc2lvbicsIChcIjQuMy4yXCIpKTtcblx0XG5cdF9fd2VicGFja19yZXF1aXJlX18oNSkobmdNb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fKDYpKG5nTW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXyg3KShuZ01vZHVsZSk7XG5cdFxuXHRleHBvcnRzWydkZWZhdWx0J10gPSBuZ01vZHVsZU5hbWU7XG5cdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKioqLyB9LFxuLyogMTIgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdCd1c2Ugc3RyaWN0Jztcblx0XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcblx0ICB2YWx1ZTogdHJ1ZVxuXHR9KTtcblx0XG5cdGV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChuZ01vZHVsZSkge1xuXHQgIG5nTW9kdWxlLmNvbmZpZyhhZGRJbnB1dFR5cGUpO1xuXHRcblx0ICBmdW5jdGlvbiBhZGRJbnB1dFR5cGUoZm9ybWx5Q29uZmlnUHJvdmlkZXIpIHtcblx0ICAgIGZvcm1seUNvbmZpZ1Byb3ZpZGVyLnNldFR5cGUoe1xuXHQgICAgICBuYW1lOiAnaW5wdXQnLFxuXHQgICAgICB0ZW1wbGF0ZTogJzxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5nLW1vZGVsPVwibW9kZWxbb3B0aW9ucy5rZXldXCI+Jyxcblx0ICAgICAgd3JhcHBlcjogWydib290c3RyYXBMYWJlbCcsICdib290c3RyYXBIYXNFcnJvciddXG5cdCAgICB9KTtcblx0ICB9XG5cdCAgYWRkSW5wdXRUeXBlLiRpbmplY3QgPSBbXCJmb3JtbHlDb25maWdQcm92aWRlclwiXTtcblx0fTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSxcbi8qIDEzICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHQndXNlIHN0cmljdCc7XG5cdFxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG5cdCAgdmFsdWU6IHRydWVcblx0fSk7XG5cdFxuXHRmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9XG5cdFxuXHRleHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAobmdNb2R1bGUpIHtcblx0ICBuZ01vZHVsZS5jb25maWcoYWRkU2VsZWN0VHlwZSk7XG5cdFxuXHQgIHZhciB0ZW1wbGF0ZSA9ICc8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmctbW9kZWw9XCJtb2RlbFtvcHRpb25zLmtleV1cIj48L3NlbGVjdD4nO1xuXHRcblx0ICBmdW5jdGlvbiBhZGRTZWxlY3RUeXBlKGZvcm1seUNvbmZpZ1Byb3ZpZGVyLCBmb3JtbHlCb290c3RyYXBBcGlDaGVjaykge1xuXHQgICAgdmFyIGMgPSBmb3JtbHlCb290c3RyYXBBcGlDaGVjaztcblx0ICAgIGZvcm1seUNvbmZpZ1Byb3ZpZGVyLnNldFR5cGUoe1xuXHQgICAgICBuYW1lOiAnc2VsZWN0Jyxcblx0ICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlLFxuXHQgICAgICB3cmFwcGVyOiBbJ2Jvb3RzdHJhcExhYmVsJywgJ2Jvb3RzdHJhcEhhc0Vycm9yJ10sXG5cdCAgICAgIGRlZmF1bHRPcHRpb25zOiBmdW5jdGlvbiBkZWZhdWx0T3B0aW9ucyhvcHRpb25zKSB7XG5cdCAgICAgICAgLyoganNoaW50IG1heGxlbjoxOTUgKi9cblx0ICAgICAgICB2YXIgbmdPcHRpb25zID0gb3B0aW9ucy50ZW1wbGF0ZU9wdGlvbnMubmdPcHRpb25zIHx8ICdvcHRpb25bdG8udmFsdWVQcm9wIHx8IFxcJ3ZhbHVlXFwnXSBhcyBvcHRpb25bdG8ubGFiZWxQcm9wIHx8IFxcJ25hbWVcXCddIGdyb3VwIGJ5IG9wdGlvblt0by5ncm91cFByb3AgfHwgXFwnZ3JvdXBcXCddIGZvciBvcHRpb24gaW4gdG8ub3B0aW9ucyc7XG5cdCAgICAgICAgcmV0dXJuIHtcblx0ICAgICAgICAgIG5nTW9kZWxBdHRyczogX2RlZmluZVByb3BlcnR5KHt9LCBuZ09wdGlvbnMsIHtcblx0ICAgICAgICAgICAgdmFsdWU6ICduZy1vcHRpb25zJ1xuXHQgICAgICAgICAgfSlcblx0ICAgICAgICB9O1xuXHQgICAgICB9LFxuXHQgICAgICBhcGlDaGVjazoge1xuXHQgICAgICAgIHRlbXBsYXRlT3B0aW9uczogYy5zaGFwZSh7XG5cdCAgICAgICAgICBvcHRpb25zOiBjLmFycmF5T2YoYy5vYmplY3QpLFxuXHQgICAgICAgICAgbGFiZWxQcm9wOiBjLnN0cmluZy5vcHRpb25hbCxcblx0ICAgICAgICAgIHZhbHVlUHJvcDogYy5zdHJpbmcub3B0aW9uYWwsXG5cdCAgICAgICAgICBncm91cFByb3A6IGMuc3RyaW5nLm9wdGlvbmFsXG5cdCAgICAgICAgfSlcblx0ICAgICAgfSxcblx0ICAgICAgYXBpQ2hlY2tJbnN0YW5jZTogY1xuXHQgICAgfSk7XG5cdCAgfVxuXHQgIGFkZFNlbGVjdFR5cGUuJGluamVjdCA9IFtcImZvcm1seUNvbmZpZ1Byb3ZpZGVyXCIsIFwiZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2tcIl07XG5cdH07XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKiovIH0sXG4vKiAxNCAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0J3VzZSBzdHJpY3QnO1xuXHRcblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuXHQgIHZhbHVlOiB0cnVlXG5cdH0pO1xuXHRcblx0ZXhwb3J0c1snZGVmYXVsdCddID0gZnVuY3Rpb24gKG5nTW9kdWxlKSB7XG5cdCAgbmdNb2R1bGUuY29uZmlnKGFkZFRleHRhcmVhVHlwZSk7XG5cdFxuXHQgIGZ1bmN0aW9uIGFkZFRleHRhcmVhVHlwZShmb3JtbHlDb25maWdQcm92aWRlciwgZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2spIHtcblx0ICAgIHZhciBjID0gZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2s7XG5cdCAgICBmb3JtbHlDb25maWdQcm92aWRlci5zZXRUeXBlKHtcblx0ICAgICAgbmFtZTogJ3RleHRhcmVhJyxcblx0ICAgICAgdGVtcGxhdGU6ICc8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuZy1tb2RlbD1cIm1vZGVsW29wdGlvbnMua2V5XVwiPjwvdGV4dGFyZWE+Jyxcblx0ICAgICAgd3JhcHBlcjogWydib290c3RyYXBMYWJlbCcsICdib290c3RyYXBIYXNFcnJvciddLFxuXHQgICAgICBkZWZhdWx0T3B0aW9uczoge1xuXHQgICAgICAgIG5nTW9kZWxBdHRyczoge1xuXHQgICAgICAgICAgcm93czogeyBhdHRyaWJ1dGU6ICdyb3dzJyB9LFxuXHQgICAgICAgICAgY29sczogeyBhdHRyaWJ1dGU6ICdjb2xzJyB9XG5cdCAgICAgICAgfVxuXHQgICAgICB9LFxuXHQgICAgICBhcGlDaGVjazoge1xuXHQgICAgICAgIHRlbXBsYXRlT3B0aW9uczogYy5zaGFwZSh7XG5cdCAgICAgICAgICByb3dzOiBjLm51bWJlci5vcHRpb25hbCxcblx0ICAgICAgICAgIGNvbHM6IGMubnVtYmVyLm9wdGlvbmFsXG5cdCAgICAgICAgfSlcblx0ICAgICAgfSxcblx0ICAgICAgYXBpQ2hlY2tJbnN0YW5jZTogY1xuXHQgICAgfSk7XG5cdCAgfVxuXHQgIGFkZFRleHRhcmVhVHlwZS4kaW5qZWN0ID0gW1wiZm9ybWx5Q29uZmlnUHJvdmlkZXJcIiwgXCJmb3JtbHlCb290c3RyYXBBcGlDaGVja1wiXTtcblx0fTtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuLyoqKi8gfSxcbi8qIDE1ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHQndXNlIHN0cmljdCc7XG5cdFxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG5cdCAgdmFsdWU6IHRydWVcblx0fSk7XG5cdFxuXHRleHBvcnRzWydkZWZhdWx0J10gPSBmdW5jdGlvbiAobmdNb2R1bGUpIHtcblx0ICBuZ01vZHVsZS5ydW4oYWRkQWRkb25zTWFuaXB1bGF0b3IpO1xuXHRcblx0ICBmdW5jdGlvbiBhZGRBZGRvbnNNYW5pcHVsYXRvcihmb3JtbHlDb25maWcsIGZvcm1seUJvb3RzdHJhcEFwaUNoZWNrKSB7XG5cdCAgICB2YXIgYWRkb25UZW1wbGF0ZSA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpO1xuXHQgICAgdmFyIGFkZG9uQ2hlY2tlciA9IGZvcm1seUJvb3RzdHJhcEFwaUNoZWNrLnNoYXBlKHtcblx0ICAgICAgJ2NsYXNzJzogZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2suc3RyaW5nLm9wdGlvbmFsLFxuXHQgICAgICB0ZXh0OiBmb3JtbHlCb290c3RyYXBBcGlDaGVjay5zdHJpbmcub3B0aW9uYWwsXG5cdCAgICAgIG9uQ2xpY2s6IGZvcm1seUJvb3RzdHJhcEFwaUNoZWNrLmZ1bmMub3B0aW9uYWxcblx0ICAgIH0pLnN0cmljdC5vcHRpb25hbDtcblx0ICAgIHZhciBhcGkgPSBmb3JtbHlCb290c3RyYXBBcGlDaGVjay5zaGFwZSh7XG5cdCAgICAgIHRlbXBsYXRlT3B0aW9uczogZm9ybWx5Qm9vdHN0cmFwQXBpQ2hlY2suc2hhcGUoe1xuXHQgICAgICAgIGFkZG9uTGVmdDogYWRkb25DaGVja2VyLFxuXHQgICAgICAgIGFkZG9uUmlnaHQ6IGFkZG9uQ2hlY2tlclxuXHQgICAgICB9KVxuXHQgICAgfSk7XG5cdCAgICBmb3JtbHlDb25maWcudGVtcGxhdGVNYW5pcHVsYXRvcnMucHJlV3JhcHBlci5wdXNoKGZ1bmN0aW9uICh0ZW1wbGF0ZSwgb3B0aW9ucykge1xuXHQgICAgICBpZiAoIW9wdGlvbnMudGVtcGxhdGVPcHRpb25zLmFkZG9uTGVmdCAmJiAhb3B0aW9ucy50ZW1wbGF0ZU9wdGlvbnMuYWRkb25SaWdodCkge1xuXHQgICAgICAgIHJldHVybiB0ZW1wbGF0ZTtcblx0ICAgICAgfVxuXHQgICAgICBmb3JtbHlCb290c3RyYXBBcGlDaGVjay53YXJuKFthcGldLCBbb3B0aW9uc10pO1xuXHQgICAgICByZXR1cm4gYWRkb25UZW1wbGF0ZS5yZXBsYWNlKCc8Zm9ybWx5LXRyYW5zY2x1ZGU+PC9mb3JtbHktdHJhbnNjbHVkZT4nLCB0ZW1wbGF0ZSk7XG5cdCAgICB9KTtcblx0ICB9XG5cdCAgYWRkQWRkb25zTWFuaXB1bGF0b3IuJGluamVjdCA9IFtcImZvcm1seUNvbmZpZ1wiLCBcImZvcm1seUJvb3RzdHJhcEFwaUNoZWNrXCJdO1xuXHR9O1xuXG5cdG1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG4vKioqLyB9LFxuLyogMTYgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdCd1c2Ugc3RyaWN0Jztcblx0XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcblx0ICB2YWx1ZTogdHJ1ZVxuXHR9KTtcblx0XG5cdGV4cG9ydHNbJ2RlZmF1bHQnXSA9IGZ1bmN0aW9uIChuZ01vZHVsZSkge1xuXHQgIG5nTW9kdWxlLnJ1bihhZGREZXNjcmlwdGlvbk1hbmlwdWxhdG9yKTtcblx0XG5cdCAgZnVuY3Rpb24gYWRkRGVzY3JpcHRpb25NYW5pcHVsYXRvcihmb3JtbHlDb25maWcpIHtcblx0ICAgIGZvcm1seUNvbmZpZy50ZW1wbGF0ZU1hbmlwdWxhdG9ycy5wcmVXcmFwcGVyLnB1c2goZnVuY3Rpb24gYXJpYURlc2NyaWJlZEJ5KHRlbXBsYXRlLCBvcHRpb25zLCBzY29wZSkge1xuXHQgICAgICBpZiAoYW5ndWxhci5pc0RlZmluZWQob3B0aW9ucy50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24pKSB7XG5cdCAgICAgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdCAgICAgICAgZWwuYXBwZW5kQ2hpbGQoYW5ndWxhci5lbGVtZW50KHRlbXBsYXRlKVswXSk7XG5cdCAgICAgICAgZWwuYXBwZW5kQ2hpbGQoYW5ndWxhci5lbGVtZW50KCc8cCBpZD1cIicgKyBzY29wZS5pZCArICdfZGVzY3JpcHRpb25cIicgKyAnY2xhc3M9XCJoZWxwLWJsb2NrXCInICsgJ25nLWlmPVwidG8uZGVzY3JpcHRpb25cIj4nICsgJ3t7dG8uZGVzY3JpcHRpb259fScgKyAnPC9wPicpWzBdKTtcblx0ICAgICAgICB2YXIgbW9kZWxFbHMgPSBhbmd1bGFyLmVsZW1lbnQoZWwucXVlcnlTZWxlY3RvckFsbCgnW25nLW1vZGVsXScpKTtcblx0ICAgICAgICBpZiAobW9kZWxFbHMpIHtcblx0ICAgICAgICAgIG1vZGVsRWxzLmF0dHIoJ2FyaWEtZGVzY3JpYmVkYnknLCBzY29wZS5pZCArICdfZGVzY3JpcHRpb24nKTtcblx0ICAgICAgICB9XG5cdCAgICAgICAgcmV0dXJuIGVsLmlubmVySFRNTDtcblx0ICAgICAgfSBlbHNlIHtcblx0ICAgICAgICByZXR1cm4gdGVtcGxhdGU7XG5cdCAgICAgIH1cblx0ICAgIH0pO1xuXHQgIH1cblx0ICBhZGREZXNjcmlwdGlvbk1hbmlwdWxhdG9yLiRpbmplY3QgPSBbXCJmb3JtbHlDb25maWdcIl07XG5cdH07XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cbi8qKiovIH0sXG4vKiAxNyAqL1xuLyoqKi8gZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblx0bW9kdWxlLmV4cG9ydHMgPSBcIjxkaXY+XFxuICA8bGFiZWwgZm9yPVxcXCJ7e2lkfX1cXFwiIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsXFxcIj5cXG4gICAge3t0by5sYWJlbH19XFxuICAgIHt7dG8ucmVxdWlyZWQgPyAnKicgOiAnJ319XFxuICA8L2xhYmVsPlxcbiAgPGZvcm1seS10cmFuc2NsdWRlPjwvZm9ybWx5LXRyYW5zY2x1ZGU+XFxuPC9kaXY+XFxuXCJcblxuLyoqKi8gfSxcbi8qIDE4ICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCIgbmctY2xhc3M9XFxcInsnaGFzLWVycm9yJzogc2hvd0Vycm9yfVxcXCI+XFxuICA8Zm9ybWx5LXRyYW5zY2x1ZGU+PC9mb3JtbHktdHJhbnNjbHVkZT5cXG48L2Rpdj5cXG5cIlxuXG4vKioqLyB9LFxuLyogMTkgKi9cbi8qKiovIGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cdG1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJyYWRpby1ncm91cFxcXCI+XFxuICA8ZGl2IG5nLXJlcGVhdD1cXFwiKGtleSwgb3B0aW9uKSBpbiB0by5vcHRpb25zXFxcIiBjbGFzcz1cXFwicmFkaW9cXFwiPlxcbiAgICA8bGFiZWw+XFxuICAgICAgPGlucHV0IHR5cGU9XFxcInJhZGlvXFxcIlxcbiAgICAgICAgICAgICBpZD1cXFwie3tpZCArICdfJysgJGluZGV4fX1cXFwiXFxuICAgICAgICAgICAgIHRhYmluZGV4PVxcXCIwXFxcIlxcbiAgICAgICAgICAgICBuZy12YWx1ZT1cXFwib3B0aW9uW3RvLnZhbHVlUHJvcCB8fCAndmFsdWUnXVxcXCJcXG4gICAgICAgICAgICAgbmctbW9kZWw9XFxcIm1vZGVsW29wdGlvbnMua2V5XVxcXCI+XFxuICAgICAge3tvcHRpb25bdG8ubGFiZWxQcm9wIHx8ICduYW1lJ119fVxcbiAgICA8L2xhYmVsPlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuXCJcblxuLyoqKi8gfSxcbi8qIDIwICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwiY2hlY2tib3hcXFwiPlxcblxcdDxsYWJlbD5cXG5cXHRcXHQ8aW5wdXQgdHlwZT1cXFwiY2hlY2tib3hcXFwiXFxuICAgICAgICAgICBjbGFzcz1cXFwiZm9ybWx5LWZpZWxkLWNoZWNrYm94XFxcIlxcblxcdFxcdCAgICAgICBuZy1tb2RlbD1cXFwibW9kZWxbb3B0aW9ucy5rZXldXFxcIj5cXG5cXHRcXHR7e3RvLmxhYmVsfX1cXG5cXHRcXHR7e3RvLnJlcXVpcmVkID8gJyonIDogJyd9fVxcblxcdDwvbGFiZWw+XFxuPC9kaXY+XFxuXCJcblxuLyoqKi8gfSxcbi8qIDIxICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicmFkaW8tZ3JvdXBcXFwiPlxcbiAgPGRpdiBuZy1yZXBlYXQ9XFxcIihrZXksIG9wdGlvbikgaW4gdG8ub3B0aW9uc1xcXCIgY2xhc3M9XFxcImNoZWNrYm94XFxcIj5cXG4gICAgPGxhYmVsPlxcbiAgICAgIDxpbnB1dCB0eXBlPVxcXCJjaGVja2JveFxcXCJcXG4gICAgICAgICAgICAgaWQ9XFxcInt7aWQgKyAnXycrICRpbmRleH19XFxcIlxcbiAgICAgICAgICAgICBuZy1tb2RlbD1cXFwibXVsdGlDaGVja2JveC5jaGVja2VkWyRpbmRleF1cXFwiXFxuICAgICAgICAgICAgIG5nLWNoYW5nZT1cXFwibXVsdGlDaGVja2JveC5jaGFuZ2UoKVxcXCI+XFxuICAgICAge3tvcHRpb25bdG8ubGFiZWxQcm9wIHx8ICduYW1lJ119fVxcbiAgICA8L2xhYmVsPlxcbiAgPC9kaXY+XFxuPC9kaXY+XFxuXCJcblxuLyoqKi8gfSxcbi8qIDIyICovXG4vKioqLyBmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXHRtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBuZy1jbGFzcz1cXFwieydpbnB1dC1ncm91cCc6IHRvLmFkZG9uTGVmdCB8fCB0by5hZGRvblJpZ2h0fVxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImlucHV0LWdyb3VwLWFkZG9uXFxcIlxcbiAgICAgICAgIG5nLWlmPVxcXCJ0by5hZGRvbkxlZnRcXFwiXFxuICAgICAgICAgbmctc3R5bGU9XFxcIntjdXJzb3I6IHRvLmFkZG9uTGVmdC5vbkNsaWNrID8gJ3BvaW50ZXInIDogJ2luaGVyaXQnfVxcXCJcXG4gICAgICAgICBuZy1jbGljaz1cXFwidG8uYWRkb25MZWZ0Lm9uQ2xpY2sob3B0aW9ucywgdGhpcylcXFwiPlxcbiAgICAgICAgPGkgY2xhc3M9XFxcInt7dG8uYWRkb25MZWZ0LmNsYXNzfX1cXFwiIG5nLWlmPVxcXCJ0by5hZGRvbkxlZnQuY2xhc3NcXFwiPjwvaT5cXG4gICAgICAgIDxzcGFuIG5nLWlmPVxcXCJ0by5hZGRvbkxlZnQudGV4dFxcXCI+e3t0by5hZGRvbkxlZnQudGV4dH19PC9zcGFuPlxcbiAgICA8L2Rpdj5cXG4gICAgPGZvcm1seS10cmFuc2NsdWRlPjwvZm9ybWx5LXRyYW5zY2x1ZGU+XFxuICAgIDxkaXYgY2xhc3M9XFxcImlucHV0LWdyb3VwLWFkZG9uXFxcIlxcbiAgICAgICAgIG5nLWlmPVxcXCJ0by5hZGRvblJpZ2h0XFxcIlxcbiAgICAgICAgIG5nLXN0eWxlPVxcXCJ7Y3Vyc29yOiB0by5hZGRvblJpZ2h0Lm9uQ2xpY2sgPyAncG9pbnRlcicgOiAnaW5oZXJpdCd9XFxcIlxcbiAgICAgICAgIG5nLWNsaWNrPVxcXCJ0by5hZGRvblJpZ2h0Lm9uQ2xpY2sob3B0aW9ucywgdGhpcylcXFwiPlxcbiAgICAgICAgPGkgY2xhc3M9XFxcInt7dG8uYWRkb25SaWdodC5jbGFzc319XFxcIiBuZy1pZj1cXFwidG8uYWRkb25SaWdodC5jbGFzc1xcXCI+PC9pPlxcbiAgICAgICAgPHNwYW4gbmctaWY9XFxcInRvLmFkZG9uUmlnaHQudGV4dFxcXCI+e3t0by5hZGRvblJpZ2h0LnRleHR9fTwvc3Bhbj5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuXCJcblxuLyoqKi8gfVxuLyoqKioqKi8gXSlcbn0pO1xuO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW5ndWxhci1mb3JtbHktdGVtcGxhdGVzLWJvb3RzdHJhcC5qcy5tYXBcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vYW5ndWxhci1mb3JtbHktdGVtcGxhdGVzLWJvb3RzdHJhcC9kaXN0L2FuZ3VsYXItZm9ybWx5LXRlbXBsYXRlcy1ib290c3RyYXAuanNcbi8vIG1vZHVsZSBpZCA9IDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  56. /***/ },
  57. /* 6 */
  58. /***/ function(module, exports, __webpack_require__) {
  59. eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(7);\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(9)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./../../../../node_modules/sass-loader/index.js!./drag_and_drop.scss\", function() {\n\t\t\tvar newContent = require(\"!!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./../../../../node_modules/sass-loader/index.js!./drag_and_drop.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L3N0eWxlL2RyYWdfYW5kX2Ryb3Auc2Nzcz80OWVjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQXlGO0FBQ3pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsZ0NBQWdDLFVBQVUsRUFBRTtBQUM1QyIsImZpbGUiOiI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3R5bGUtbG9hZGVyOiBBZGRzIHNvbWUgY3NzIHRvIHRoZSBET00gYnkgYWRkaW5nIGEgPHN0eWxlPiB0YWdcblxuLy8gbG9hZCB0aGUgc3R5bGVzXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvaW5kZXguanMhLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvaW5kZXguanMhLi9kcmFnX2FuZF9kcm9wLnNjc3NcIik7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbi8vIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSBET01cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9hZGRTdHlsZXMuanNcIikoY29udGVudCwge30pO1xuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG4vLyBIb3QgTW9kdWxlIFJlcGxhY2VtZW50XG5pZihtb2R1bGUuaG90KSB7XG5cdC8vIFdoZW4gdGhlIHN0eWxlcyBjaGFuZ2UsIHVwZGF0ZSB0aGUgPHN0eWxlPiB0YWdzXG5cdGlmKCFjb250ZW50LmxvY2Fscykge1xuXHRcdG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2luZGV4LmpzIS4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2luZGV4LmpzIS4vZHJhZ19hbmRfZHJvcC5zY3NzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2luZGV4LmpzIS4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2luZGV4LmpzIS4vZHJhZ19hbmRfZHJvcC5zY3NzXCIpO1xuXHRcdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cdFx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdFx0fSk7XG5cdH1cblx0Ly8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvc3R5bGUvZHJhZ19hbmRfZHJvcC5zY3NzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  60. /***/ },
  61. /* 7 */
  62. /***/ function(module, exports, __webpack_require__) {
  63. eval("exports = module.exports = __webpack_require__(8)();\n// imports\n\n\n// module\nexports.push([module.id, \"/*=========================================================\\n colors const\\n===========================================================*/\\n/*=========================================================\\n fonts const\\n===========================================================*/\\n/*=========================================================\\n common\\n===========================================================*/\\n.ta-hidden-input {\\n width: 1px;\\n height: 1px;\\n border: none;\\n margin: 0;\\n padding: 0;\\n position: absolute;\\n top: -10000px;\\n left: -10000px;\\n opacity: 0;\\n overflow: hidden; }\\n\\n.ta-root.focussed > .ta-scroll-window.form-control {\\n border-color: #66afe9;\\n outline: 0;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\\n\\n.ta-editor.ta-html, .ta-scroll-window.form-control {\\n min-height: 300px;\\n height: auto;\\n overflow: auto;\\n font-family: inherit;\\n font-size: 100%; }\\n\\n.ta-scroll-window.form-control {\\n position: relative;\\n padding: 0; }\\n\\n.ta-scroll-window > .ta-bind {\\n height: auto;\\n min-height: 300px;\\n padding: 6px 12px; }\\n\\n.ta-editor:focus {\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n user-select: text; }\\n\\n.ta-resizer-handle-overlay {\\n z-index: 100;\\n position: absolute;\\n display: none; }\\n\\n.ta-resizer-handle-overlay > .ta-resizer-handle-info {\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n border: 1px solid #000;\\n background-color: #FFF;\\n padding: 0 4px;\\n opacity: .7; }\\n\\n.ta-resizer-handle-overlay > .ta-resizer-handle-background {\\n position: absolute;\\n bottom: 5px;\\n right: 5px;\\n left: 5px;\\n top: 5px;\\n border: 1px solid #000;\\n background-color: rgba(0, 0, 0, 0.2); }\\n\\n.ta-resizer-handle-overlay > .ta-resizer-handle-corner {\\n width: 10px;\\n height: 10px;\\n position: absolute; }\\n\\n.ta-resizer-handle-overlay > .ta-resizer-handle-corner-tl {\\n top: 0;\\n left: 0;\\n border-left: 1px solid #000;\\n border-top: 1px solid #000; }\\n\\n.ta-resizer-handle-overlay > .ta-resizer-handle-corner-tr {\\n top: 0;\\n right: 0;\\n border-right: 1px solid #000;\\n border-top: 1px solid #000; }\\n\\n.ta-resizer-handle-overlay > .ta-resizer-handle-corner-bl {\\n bottom: 0;\\n left: 0;\\n border-left: 1px solid #000;\\n border-bottom: 1px solid #000; }\\n\\n.ta-resizer-handle-overlay > .ta-resizer-handle-corner-br {\\n bottom: 0;\\n right: 0;\\n border: 1px solid #000;\\n cursor: se-resize;\\n background-color: #fff; }\\n\\n.popover {\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: 1060;\\n display: none;\\n max-width: 276px;\\n padding: 1px;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 1.42857143;\\n text-align: left;\\n white-space: normal;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid #ccc;\\n border: 1px solid rgba(0, 0, 0, 0.2);\\n border-radius: 6px;\\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }\\n\\n.popover.top {\\n margin-top: -10px; }\\n\\n.popover.bottom {\\n margin-top: 10px; }\\n\\n.popover-title {\\n padding: 8px 14px;\\n margin: 0;\\n font-size: 14px;\\n background-color: #f7f7f7;\\n border-bottom: 1px solid #ebebeb;\\n border-radius: 5px 5px 0 0; }\\n\\n.popover-content {\\n padding: 9px 14px; }\\n\\n.popover > .arrow, .popover > .arrow:after {\\n position: absolute;\\n display: block;\\n width: 0;\\n height: 0;\\n border-color: transparent;\\n border-style: solid; }\\n\\n.popover > .arrow {\\n border-width: 11px; }\\n\\n.popover > .arrow:after {\\n content: \\\"\\\";\\n border-width: 10px; }\\n\\n.popover.top > .arrow {\\n bottom: -11px;\\n left: 50%;\\n margin-left: -11px;\\n border-top-color: #999;\\n border-top-color: rgba(0, 0, 0, 0.25);\\n border-bottom-width: 0; }\\n\\n.popover.top > .arrow:after {\\n bottom: 1px;\\n margin-left: -10px;\\n content: \\\" \\\";\\n border-top-color: #fff;\\n border-bottom-width: 0; }\\n\\n.popover.bottom > .arrow {\\n top: -11px;\\n left: 50%;\\n margin-left: -11px;\\n border-top-width: 0;\\n border-bottom-color: #999;\\n border-bottom-color: rgba(0, 0, 0, 0.25); }\\n\\n.popover.bottom > .arrow:after {\\n top: 1px;\\n margin-left: -10px;\\n content: \\\" \\\";\\n border-top-width: 0;\\n border-bottom-color: #fff; }\\n\\n/*=========================================================\\n common\\n===========================================================*/\\nbody {\\n padding-top: 50px;\\n padding-bottom: 20px;\\n height: 100%;\\n background-color: #F2F2F2;\\n font-family: \\\"Roboto\\\", \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif; }\\n\\n.margintop60px {\\n margin-top: 80px; }\\n\\n.margintop120px {\\n margin-top: 120px; }\\n\\n.vAlignMiddle {\\n vertical-align: middle; }\\n\\n[ng\\\\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {\\n display: none !important; }\\n\\n/*=========================================================\\n bootstrap overrides\\n===========================================================*/\\n.nav .open > a, .nav .open > a:hover, .nav .open > a:focus {\\n background-color: #0d87e9;\\n border-color: #2196f3; }\\n\\n/*correction bug sur theme bootstrap journal*/\\n.modal-backdrop {\\n z-index: -1; }\\n\\n.navbar-right {\\n margin-right: 20px; }\\n\\ntextarea, textarea.form-control, input.form-control,\\ninput[type=text], input[type=password], input[type=email],\\ninput[type=number], [type=text].form-control, [type=password].form-control,\\n[type=email].form-control, [type=tel].form-control, [contenteditable].form-control {\\n font-size: 13px; }\\n\\nselect, select.form-control {\\n font-size: 13px; }\\n\\n/*container to 100%*/\\n@media (min-width: 1200px) {\\n .container {\\n width: 100%;\\n margin-right: 20px; } }\\n\\n@media (min-width: 768px) {\\n .container {\\n width: 100%;\\n margin-right: 20px; } }\\n\\n@media (min-width: 992px) {\\n .container {\\n width: 100%; } }\\n\\n.container-fluid {\\n margin-right: auto;\\n margin-left: auto; }\\n\\n.container-fluid padding {\\n left: 30px;\\n right: 30px; }\\n\\n.panel-default > .panel-heading {\\n color: #212121;\\n background-color: #fff;\\n border-color: #eee; }\\n\\n.navbar-nav > li > a {\\n line-height: 30px; }\\n\\n.navbar-default .navbar-brand {\\n line-height: initial; }\\n\\n.panel-heading {\\n background-color: none;\\n border-bottom: solid 1px #eee; }\\n\\n.navBtnGroup {\\n padding-top: 20px;\\n padding-bottom: 22px;\\n padding-right: 15px;\\n padding-left: 15px; }\\n\\n.table > thead > tr > th,\\n.table > tbody > tr > th,\\n.table > tfoot > tr > th,\\n.table > thead > tr > td,\\n.table > tbody > tr > td,\\n.table > tfoot > tr > td {\\n vertical-align: middle; }\\n\\na:hover {\\n color: #fff; }\\n\\na:focus {\\n color: #fff; }\\n\\n/*Forms setup*/\\n.form-control {\\n border-radius: 0;\\n box-shadow: none;\\n height: auto; }\\n\\n.float-label {\\n font-size: 10px; }\\n\\n.socialIcon {\\n font-size: 32px; }\\n .socialIcon:hover {\\n color: #F2F2F2; }\\n\\ninput[type=\\\"text\\\"].form-control,\\ninput[type=\\\"search\\\"].form-control {\\n border: none;\\n border-bottom: 1px dotted #CFCFCF; }\\n\\ntextarea {\\n border: 1px dotted #CFCFCF !important;\\n height: 130px !important; }\\n\\n/*Content Container*/\\n.content-container {\\n background-color: #fff;\\n padding: 35px 20px;\\n margin-bottom: 20px; }\\n\\nh1.content-title {\\n font-size: 32px;\\n font-weight: 300;\\n text-align: center;\\n margin-top: 0;\\n margin-bottom: 20px;\\n font-family: \\\"Open Sans\\\", sans-serif !important; }\\n\\n/*paper theme bootstrap*/\\n.form-control {\\n font-family: \\\"Roboto\\\", \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n display: block;\\n width: 100%;\\n height: 39px;\\n padding: 8px 12px;\\n font-size: 13px;\\n line-height: 1.42857143;\\n color: #777777;\\n background-color: #ffffff;\\n background-image: none;\\n border: 1px solid #cccccc;\\n border-radius: 4px;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }\\n\\n.form-control:focus {\\n border-color: #66afe9;\\n outline: 0;\\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }\\n\\n.form-control::-moz-placeholder {\\n color: #999999;\\n opacity: 1; }\\n\\n.form-control:-ms-input-placeholder {\\n color: #999999; }\\n\\n.form-control::-webkit-input-placeholder {\\n color: #999999; }\\n\\n.form-control[disabled],\\n.form-control[readonly],\\nfieldset[disabled] .form-control {\\n background-color: #eeeeee;\\n opacity: 1; }\\n\\n.form-control[disabled],\\nfieldset[disabled] .form-control {\\n cursor: not-allowed; }\\n\\ntextarea.form-control {\\n height: auto; }\\n\\n.fakeControl[disabled] {\\n background-color: #fff;\\n opacity: 1; }\\n\\n.fakeControl[disabled] {\\n cursor: all-scroll; }\\n\\n.radio input[type=radio].fakeCheck {\\n cursor: all-scroll; }\\n\\n.checkbox input[type=checkbox].fakeCheck {\\n cursor: all-scroll; }\\n\\nlabel.fakeCheck {\\n cursor: all-scroll; }\\n\\n/* animation ng-repeat\\neasy customize animation from here : http://www.nganimate.org/angularjs/ng-repeat/yo-yo-css3-keyframes-animation*/\\n.animate-enter {\\n animation: enter 600ms cubic-bezier(0.445, 0.05, 0.55, 0.95);\\n display: block;\\n position: relative; }\\n\\n@keyframes enter {\\n from {\\n opacity: 0;\\n height: 0px;\\n left: -70px; }\\n 75% {\\n left: 15px; }\\n to {\\n opacity: 1;\\n height: 30px;\\n left: 0px; } }\\n\\n.animate-leave {\\n animation: leave 600ms cubic-bezier(0.445, 0.05, 0.55, 0.95);\\n display: block;\\n position: relative; }\\n\\n@keyframes leave {\\n to {\\n opacity: 0;\\n height: 0px;\\n left: -70px; }\\n 25% {\\n left: 15px; }\\n from {\\n opacity: 1;\\n height: 30px;\\n left: 0px; } }\\n\\n/* td table in myprofile */\\n.tdCommun, .td40, .td60 {\\n height: 75px;\\n vertical-align: none; }\\n\\n.td40 {\\n width: 40%; }\\n\\n.td60 {\\n width: 60%; }\\n\\n.table-user-information > thead > tr > th,\\n.table-user-information > tbody > tr > th,\\n.table-user-information > tfoot > tr > th,\\n.table-user-information > thead > tr > td,\\n.table-user-information > tbody > tr > td,\\n.table-user-information > tfoot > tr > td {\\n vertical-align: middle; }\\n\\n/*=========================================================\\n ANGULAR ANIMATIONS (in pair on animate.css)\\n===========================================================*/\\n/* animation on ng-switch */\\n.switchAngularFadeIn .ng-enter {\\n animation: fadeIn 1s; }\\n\\n/*=========================================================\\n wfEdit\\n===========================================================*/\\n#pageWfEdit {\\n margin-top: 40px;\\n /* right:2%;\\n left:2%; */\\n padding-top: 30px;\\n padding-bottom: 30px;\\n background-color: #F2F2F2;\\n /* border-top: solid 3px white;\\n border-bottom: solid 3px white; */ }\\n\\n.lineCommandButtons {\\n padding-bottom: 25px; }\\n\\n.addNewLine {\\n font-size: 24px;\\n vertical-align: middle;\\n color: #666666; }\\n\\n#editor {\\n margin-top: 0px;\\n margin-bottom: 0px;\\n height: 150px;\\n background-color: #52B3D9;\\n border-bottom: solid 1px #2C3E50; }\\n\\n#editor-content {\\n /* padding-top: 25px; */\\n /* padding-bottom: 25px; */\\n text-align: center;\\n color: white;\\n font-size: 13px; }\\n\\n#preview {\\n margin-top: 0px;\\n margin-bottom: 0px;\\n /* background-color: #E4F1FE; */\\n border: solid 1 px #2C3E50;\\n -o-box-shadow: 0px 0px 10px 0px #ddd;\\n box-shadow: 0px 0px 10px 0px #ddd;\\n filter: progid:DXImageTransform.Microsoft.Shadow(color=#ddd, Direction=NaN, Strength=10); }\\n\\n#preview-content {\\n background-color: #FFF;\\n padding-bottom: 25px;\\n /*text-align: center;*/\\n color: black;\\n /*font-size: 13px;*/ }\\n\\n#commandPanel {\\n padding-top: 25px;\\n padding-bottom: 25px; }\\n\\n/* #commandPanel.affix {\\n position: fixed;\\n top: 0;\\n width:25%;\\n margin-top: -45px;\\n } */\\n#visualPanel {\\n padding-top: 25px;\\n padding-bottom: 25px; }\\n\\n.customPagerButton {\\n width: 100px; }\\n\\n.numberOfColumnsLabel {\\n font-size: 32px;\\n text-align: center;\\n padding-top: 25%;\\n padding-bottom: 25%;\\n font-weight: bold;\\n text-align: center;\\n color: #666666; }\\n\\n.btnMinusColumns {\\n margin-top: 10px; }\\n\\n.btnAddColumns {\\n margin-top: 10px; }\\n\\n.numberOfcolumsText {\\n color: #666666; }\\n\\n.greyText {\\n color: #666666; }\\n\\n.blackText {\\n color: #000; }\\n\\n/*=========================================================\\n ANIMATE NG-SWITCH\\n=========================================================*/\\n.animate-switch-container {\\n position: relative;\\n background: white;\\n border-top: solid 1px #ECECEC;\\n border-bottom: solid 1px #ECECEC;\\n overflow: scroll; }\\n .animate-switch-container .well {\\n background-color: #89C4F4;\\n margin-bottom: 0px;\\n color: #ECECEC; }\\n\\n.linesList {\\n margin-top: 5px; }\\n\\n/*switch 1 : move top*/\\n.animate-switch {\\n padding: 10px; }\\n\\n.animate-switch.ng-animate {\\n transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.6s;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0; }\\n\\n.animate-switch.ng-leave.ng-leave-active,\\n.animate-switch.ng-enter {\\n left: 0px;\\n top: -500px;\\n opacity: 0; }\\n\\n.animate-switch.ng-leave,\\n.animate-switch.ng-enter.ng-enter-active {\\n left: 0px;\\n top: 0px;\\n opacity: 0.8; }\\n\\n/*=========================================================\\n STEP INDICATOR\\n=========================================================*/\\n.stepwizardTopmargin {\\n margin-top: 25px; }\\n\\n.stepwizard-step p {\\n margin-top: 10px;\\n color: #666666; }\\n\\n.stepwizard-row {\\n display: table-row; }\\n\\n.stepwizard {\\n display: table;\\n width: 100%;\\n position: relative; }\\n\\n.stepwizard-step button[disabled] {\\n opacity: 1 !important;\\n filter: alpha(opacity=100) !important; }\\n\\n.stepwizard-row:before {\\n top: 14px;\\n bottom: 0;\\n position: absolute;\\n content: \\\" \\\";\\n width: 100%;\\n height: 1px;\\n background-color: #ccc;\\n z-order: 0; }\\n\\n.stepwizard-step {\\n display: table-cell;\\n text-align: center;\\n position: relative; }\\n\\n.btn-circle {\\n width: 30px;\\n height: 30px;\\n text-align: center;\\n padding: 6px 0;\\n font-size: 12px;\\n line-height: 1.428571429;\\n border-radius: 15px; }\\n\\n.panelDebugScope {\\n color: #000; }\\n\\n/*=========================================================\\n Modal add control\\n=========================================================*/\\n.texteRouge {\\n color: #CF000F; }\\n\\n.editPropertiesLabel {\\n margin-top: 6px; }\\n\\n.textControlLabel {\\n color: #000; }\\n\\n.marginTopFivepixels {\\n margin-top: 5px; }\\n\\n.marginTopTenpixels {\\n margin-top: 5px; }\\n\\n.checkboxCssCorrection {\\n font-size: 4px; }\\n\\n.noGroupText {\\n margin-bottom: 0px; }\\n\\n.nya-bs-select {\\n margin-bottom: 16px; }\\n\\n.ta-scroll-window {\\n margin-bottom: 16px; }\\n\\n.formly-field-checkbox {\\n margin-top: 28px; }\\n\\n#inputAddNewRadioOption {\\n margin-bottom: 20px; }\\n\\n#inputAddNewBasicOption {\\n margin-bottom: 20px; }\\n\\n#inputAddNewGroupedOption {\\n margin-bottom: 20px; }\\n\\n#inputAddNewGroupGroupedOption {\\n margin-bottom: 20px; }\\n\\n.editGroupedSelectnyaSelect {\\n margin-bottom: 0px; }\\n\\n.heading-preview {\\n cursor: pointer; }\\n\\n/*=========================================================\\n specific drag and drop test (will change or be deleted)\\n===========================================================*/\\n/***************************** pageSlide directive css *****************************/\\n/* Needed for hiding crollbars when pushing */\\nhtml {\\n overflow-x: hidden; }\\n\\n.ng-pageslide {\\n background: #eee;\\n box-shadow: 5px 1px 12px 0px rgba(188, 183, 183, 0.7);\\n -moz-box-shadow: 5px 1px 12px 0px rgba(188, 183, 183, 0.7);\\n -webkit-box-shadow: 5px 1px 12px 0px rgba(188, 183, 183, 0.7); }\\n\\n#controlEditLeftPanel {\\n margin-top: 95px;\\n padding-top: 20px;\\n padding-bottom: 20px;\\n padding-right: 10px;\\n padding-left: 10px;\\n height: 85%;\\n overflow-y: scroll; }\\n\\n.separator10pixel {\\n margin-top: 5px;\\n margin-bottom: 5px;\\n height: 25px; }\\n\\n.panelControlWidth {\\n width: 45%; }\\n\\n/***************************** Required styles *****************************/\\n/**\\n * For the correct positioning of the placeholder element, the dnd-list and\\n * it's children must have position: relative\\n */\\n.advancedDemo ul[dnd-list],\\n.advancedDemo ul[dnd-list] > li {\\n position: relative;\\n border: solid 1px #F1F1F1; }\\n\\n/***************************** Dropzone Styling *****************************/\\n/**\\n * The dnd-list should always have a min-height,\\n * otherwise you can't drop to it once it's empty\\n */\\n.advancedDemo .dropzone ul[dnd-list] {\\n min-height: 42px;\\n margin: 0px;\\n padding-left: 0px; }\\n\\n/**\\n * The dnd-lists's child elements currently MUST have\\n * position: relative. Otherwise we can not determine\\n * whether the mouse pointer is in the upper or lower\\n * half of the element we are dragging over. In other\\n * browsers we can use event.offsetY for this.\\n */\\n.advancedDemo .dropzone li {\\n display: block; }\\n\\n/**\\n * Reduce opacity of elements during the drag operation. This allows the user\\n * to see where he is dropping his element, even if the element is huge. The\\n * .dndDragging class is automatically set during the drag operation.\\n */\\n.advancedDemo .dropzone .dndDragging {\\n opacity: 0.7;\\n border: 2px dotted #000; }\\n\\n/**\\n * The dndDraggingSource class will be applied to the source element of a drag\\n * operation. It makes sense to hide it to give the user the feeling that he's\\n * actually moving it. Note that the source element has also .dndDragging class.\\n */\\n.advancedDemo .dropzone .dndDraggingSource {\\n display: none; }\\n\\n/**\\n * An element with .dndPlaceholder class will be added as child of the dnd-list\\n * while the user is dragging over it.\\n */\\n.advancedDemo .dropzone .dndPlaceholder {\\n background-color: #ddd !important;\\n min-height: 155px;\\n display: block;\\n position: relative;\\n -o-box-shadow: inset 0px 0px 5px 0px #343434;\\n box-shadow: inset 0px 0px 5px 0px #343434;\\n filter: progid:DXImageTransform.Microsoft.Shadow(color=#343434, Direction=NaN, Strength=5); }\\n\\n/***************************** Element type specific styles *****************************/\\n.advancedDemo .dropzone .itemlist {\\n min-height: 115px !important; }\\n\\nul.itemlist.ng-scope {\\n border: none; }\\n\\n.effect1ForDragDropItem, #itemContent {\\n box-shadow: 0 10px 6px -6px #777;\\n min-height: 115px; }\\n\\n.advancedDemo .dropzone .itemlist > li {\\n border: none;\\n min-width: 180px;\\n border-radius: .25em;\\n float: left;\\n font-weight: 700;\\n height: 135px; }\\n\\n#itemContent {\\n background-color: #fff;\\n border: 2px outset #0d87e9;\\n border-radius: .25em;\\n color: #fff;\\n float: left;\\n font-weight: 700;\\n height: 115px;\\n margin: 5px;\\n padding: 3px;\\n text-align: center;\\n width: 100%;\\n cursor: all-scroll; }\\n\\n.dragItemtextarea {\\n height: 60px; }\\n\\ntextarea {\\n border: 1px dotted #CFCFCF !important;\\n height: 50px !important; }\\n\\n.advancedDemo .dropzone .container-element {\\n margin: 10px; }\\n\\n.isCollapsableZone {\\n cursor: pointer; }\\n\\n.buttonHeaderAddNewLine {\\n margin-top: 15px;\\n margin-bottom: 0px; }\\n\\n.buttonCloneLineHidden {\\n visibility: hidden; }\\n\\n.buttonCloseLine {\\n margin-top: -10px;\\n margin-right: -10px;\\n border-radius: 50%;\\n height: 45px; }\\n\\n.interligne {\\n padding-bottom: 10px; }\\n\\n.confirmLineDelete {\\n margin-top: 0;\\n margin-bottom: 0;\\n background-color: #F5F5F5;\\n opacity: 1.0;\\n animation: shake 1.3s infinite; }\\n\\n.demoddDatepicker {\\n padding-left: 0;\\n margin-left: 0; }\\n\\n.selectfordemo {\\n margin-top: 30px; }\\n\\n/*=========================================================\\n animation shake\\n===========================================================*/\\n\\n@keyframes shake {\\n 0%, 100% {\\n transform: translate3d(0, 0, 0); }\\n 10%, 30%, 50%, 70%, 90% {\\n transform: translate3d(-10px, 0, 0); }\\n 20%, 40%, 60%, 80% {\\n transform: translate3d(10px, 0, 0); } }\\n\\n.shake {\\n animation-name: shake; }\\n\\n.previewControlinItem {\\n margin-top: 2%;\\n background-color: #fff;\\n padding-top: 5px;\\n padding-bottom: 5px;\\n padding-left: 10px;\\n padding-right: 10px;\\n border-radius: 5px;\\n color: #F1F1F1;\\n font-size: 18px; }\\n\\n.vertical-line {\\n border-left: thick solid #000; }\\n\\n/*=========================================================\\n animation glyphicon rotate\\n===========================================================*/\\n.gly-spin {\\n animation: spin 2s infinite linear; }\\n\\n@keyframes spin {\\n 0% {\\n transform: rotate(0deg); }\\n 100% {\\n transform: rotate(359deg); } }\\n\\n.gly-rotate-90 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\\n transform: rotate(90deg); }\\n\\n.gly-rotate-180 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\\n transform: rotate(180deg); }\\n\\n.gly-rotate-270 {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\\n transform: rotate(270deg); }\\n\\n.gly-flip-horizontal {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\\n transform: scale(-1, 1); }\\n\\n.gly-flip-vertical {\\n filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\\n transform: scale(1, -1); }\\n\\n.rightClickCtrl {\\n opacity: 1.0;\\n transition: opacity .3s ease-in; }\\n\\n.rightClickCtrlSelected {\\n opacity: 0.5; }\\n\", \"\"]);\n\n// exports\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L3N0eWxlL2RyYWdfYW5kX2Ryb3Auc2Nzcz9iODY4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7OztBQUdBO0FBQ0EsK2NBQStjLGVBQWUsZ0JBQWdCLGlCQUFpQixjQUFjLGVBQWUsdUJBQXVCLGtCQUFrQixtQkFBbUIsZUFBZSxxQkFBcUIsRUFBRSx3REFBd0QsMEJBQTBCLGVBQWUsdUZBQXVGLEVBQUUsd0RBQXdELHNCQUFzQixpQkFBaUIsbUJBQW1CLHlCQUF5QixvQkFBb0IsRUFBRSxvQ0FBb0MsdUJBQXVCLGVBQWUsRUFBRSxrQ0FBa0MsaUJBQWlCLHNCQUFzQixzQkFBc0IsRUFBRSxzQkFBc0IsOEJBQThCLDhCQUE4Qiw4QkFBOEIsOEJBQThCLEVBQUUsZ0NBQWdDLGlCQUFpQix1QkFBdUIsa0JBQWtCLEVBQUUsMERBQTBELHVCQUF1QixpQkFBaUIsZ0JBQWdCLDJCQUEyQiwyQkFBMkIsbUJBQW1CLGdCQUFnQixFQUFFLGdFQUFnRSx1QkFBdUIsZ0JBQWdCLGVBQWUsY0FBYyxhQUFhLDJCQUEyQix5Q0FBeUMsRUFBRSw0REFBNEQsZ0JBQWdCLGlCQUFpQix1QkFBdUIsRUFBRSwrREFBK0QsV0FBVyxZQUFZLGdDQUFnQywrQkFBK0IsRUFBRSwrREFBK0QsV0FBVyxhQUFhLGlDQUFpQywrQkFBK0IsRUFBRSwrREFBK0QsY0FBYyxZQUFZLGdDQUFnQyxrQ0FBa0MsRUFBRSwrREFBK0QsY0FBYyxhQUFhLDJCQUEyQixzQkFBc0IsMkJBQTJCLEVBQUUsY0FBYyx1QkFBdUIsV0FBVyxZQUFZLGtCQUFrQixrQkFBa0IscUJBQXFCLGlCQUFpQixvQkFBb0IscUJBQXFCLDRCQUE0QixxQkFBcUIsd0JBQXdCLDJCQUEyQixpQ0FBaUMsMkJBQTJCLHlDQUF5Qyx1QkFBdUIsOENBQThDLEVBQUUsa0JBQWtCLHNCQUFzQixFQUFFLHFCQUFxQixxQkFBcUIsRUFBRSxvQkFBb0Isc0JBQXNC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NkJBQTZCLGlCQUFpQixFQUFFOztBQUU3MXBCIiwiZmlsZSI6IjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikoKTtcbi8vIGltcG9ydHNcblxuXG4vLyBtb2R1bGVcbmV4cG9ydHMucHVzaChbbW9kdWxlLmlkLCBcIi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuICAgIGNvbG9ycyBjb25zdFxcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcbiAgICBmb250cyBjb25zdFxcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcbiAgICBjb21tb25cXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXFxuLnRhLWhpZGRlbi1pbnB1dCB7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMTAwMDBweDtcXG4gIGxlZnQ6IC0xMDAwMHB4O1xcbiAgb3BhY2l0eTogMDtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG5cXG4udGEtcm9vdC5mb2N1c3NlZCA+IC50YS1zY3JvbGwtd2luZG93LmZvcm0tY29udHJvbCB7XFxuICBib3JkZXItY29sb3I6ICM2NmFmZTk7XFxuICBvdXRsaW5lOiAwO1xcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTsgfVxcblxcbi50YS1lZGl0b3IudGEtaHRtbCwgLnRhLXNjcm9sbC13aW5kb3cuZm9ybS1jb250cm9sIHtcXG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gIGZvbnQtc2l6ZTogMTAwJTsgfVxcblxcbi50YS1zY3JvbGwtd2luZG93LmZvcm0tY29udHJvbCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nOiAwOyB9XFxuXFxuLnRhLXNjcm9sbC13aW5kb3cgPiAudGEtYmluZCB7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBtaW4taGVpZ2h0OiAzMDBweDtcXG4gIHBhZGRpbmc6IDZweCAxMnB4OyB9XFxuXFxuLnRhLWVkaXRvcjpmb2N1cyB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogdGV4dDtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiB0ZXh0OyB9XFxuXFxuLnRhLXJlc2l6ZXItaGFuZGxlLW92ZXJsYXkge1xcbiAgei1pbmRleDogMTAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgZGlzcGxheTogbm9uZTsgfVxcblxcbi50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWluZm8ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAxNnB4O1xcbiAgcmlnaHQ6IDE2cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcXG4gIHBhZGRpbmc6IDAgNHB4O1xcbiAgb3BhY2l0eTogLjc7IH1cXG5cXG4udGEtcmVzaXplci1oYW5kbGUtb3ZlcmxheSA+IC50YS1yZXNpemVyLWhhbmRsZS1iYWNrZ3JvdW5kIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogNXB4O1xcbiAgcmlnaHQ6IDVweDtcXG4gIGxlZnQ6IDVweDtcXG4gIHRvcDogNXB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxcblxcbi50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWNvcm5lciB7XFxuICB3aWR0aDogMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxcblxcbi50YS1yZXNpemVyLWhhbmRsZS1vdmVybGF5ID4gLnRhLXJlc2l6ZXItaGFuZGxlLWNvcm5lci10bCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDAwO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7IH1cXG5cXG4udGEtcmVzaXplci1oYW5kbGUtb3ZlcmxheSA+IC50YS1yZXNpemVyLWhhbmRsZS1jb3JuZXItdHIge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMDAwO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7IH1cXG5cXG4udGEtcmVzaXplci1oYW5kbGUtb3ZlcmxheSA+IC50YS1yZXNpemVyLWhhbmRsZS1jb3JuZXItYmwge1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwMDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwOyB9XFxuXFxuLnRhLXJlc2l6ZXItaGFuZGxlLW92ZXJsYXkgPiAudGEtcmVzaXplci1oYW5kbGUtY29ybmVyLWJyIHtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxcblxcbi5wb3BvdmVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAxMDYwO1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIG1heC13aWR0aDogMjc2cHg7XFxuICBwYWRkaW5nOiAxcHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDM7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG4gIGJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XFxuXFxuLnBvcG92ZXIudG9wIHtcXG4gIG1hcmdpbi10b3A6IC0xMHB4OyB9XFxuXFxuLnBvcG92ZXIuYm90dG9tIHtcXG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cXG5cXG4ucG9wb3Zlci10aXRsZSB7XFxuICBwYWRkaW5nOiA4cHggMTRweDtcXG4gIG1hcmdpbjogMDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcXG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwOyB9XFxuXFxuLnBvcG92ZXItY29udGVudCB7XFxuICBwYWRkaW5nOiA5cHggMTRweDsgfVxcblxcbi5wb3BvdmVyID4gLmFycm93LCAucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7IH1cXG5cXG4ucG9wb3ZlciA+IC5hcnJvdyB7XFxuICBib3JkZXItd2lkdGg6IDExcHg7IH1cXG5cXG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGJvcmRlci13aWR0aDogMTBweDsgfVxcblxcbi5wb3BvdmVyLnRvcCA+IC5hcnJvdyB7XFxuICBib3R0b206IC0xMXB4O1xcbiAgbGVmdDogNTAlO1xcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzk5OTtcXG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAwOyB9XFxuXFxuLnBvcG92ZXIudG9wID4gLmFycm93OmFmdGVyIHtcXG4gIGJvdHRvbTogMXB4O1xcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xcbiAgY29udGVudDogXFxcIiBcXFwiO1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7IH1cXG5cXG4ucG9wb3Zlci5ib3R0b20gPiAuYXJyb3cge1xcbiAgdG9wOiAtMTFweDtcXG4gIGxlZnQ6IDUwJTtcXG4gIG1hcmdpbi1sZWZ0OiAtMTFweDtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOTk5O1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxcblxcbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdzphZnRlciB7XFxuICB0b3A6IDFweDtcXG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcXG4gIGNvbnRlbnQ6IFxcXCIgXFxcIjtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmOyB9XFxuXFxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG4gICAgY29tbW9uXFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xcbmJvZHkge1xcbiAgcGFkZGluZy10b3A6IDUwcHg7XFxuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XFxuICBmb250LWZhbWlseTogXFxcIlJvYm90b1xcXCIsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cXG5cXG4ubWFyZ2ludG9wNjBweCB7XFxuICBtYXJnaW4tdG9wOiA4MHB4OyB9XFxuXFxuLm1hcmdpbnRvcDEyMHB4IHtcXG4gIG1hcmdpbi10b3A6IDEyMHB4OyB9XFxuXFxuLnZBbGlnbk1pZGRsZSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuXFxuW25nXFxcXDpjbG9ha10sIFtuZy1jbG9ha10sIFtkYXRhLW5nLWNsb2FrXSwgW3gtbmctY2xvYWtdLCAubmctY2xvYWssIC54LW5nLWNsb2FrIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcblxcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuICAgIGJvb3RzdHJhcCBvdmVycmlkZXNcXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXFxuLm5hdiAub3BlbiA+IGEsIC5uYXYgLm9wZW4gPiBhOmhvdmVyLCAubmF2IC5vcGVuID4gYTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ4N2U5O1xcbiAgYm9yZGVyLWNvbG9yOiAjMjE5NmYzOyB9XFxuXFxuLypjb3JyZWN0aW9uIGJ1ZyBzdXIgdGhlbWUgYm9vdHN0cmFwIGpvdXJuYWwqL1xcbi5tb2RhbC1iYWNrZHJvcCB7XFxuICB6LWluZGV4OiAtMTsgfVxcblxcbi5uYXZiYXItcmlnaHQge1xcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4OyB9XFxuXFxudGV4dGFyZWEsIHRleHRhcmVhLmZvcm0tY29udHJvbCwgaW5wdXQuZm9ybS1jb250cm9sLFxcbmlucHV0W3R5cGU9dGV4dF0sIGlucHV0W3R5cGU9cGFzc3dvcmRdLCBpbnB1dFt0eXBlPWVtYWlsXSxcXG5pbnB1dFt0eXBlPW51bWJlcl0sIFt0eXBlPXRleHRdLmZvcm0tY29udHJvbCwgW3R5cGU9cGFzc3dvcmRdLmZvcm0tY29udHJvbCxcXG5bdHlwZT1lbWFpbF0uZm9ybS1jb250cm9sLCBbdHlwZT10ZWxdLmZvcm0tY29udHJvbCwgW2NvbnRlbnRlZGl0YWJsZV0uZm9ybS1jb250cm9sIHtcXG4gIGZvbnQtc2l6ZTogMTNweDsgfVxcblxcbnNlbGVjdCwgc2VsZWN0LmZvcm0tY29udHJvbCB7XFxuICBmb250LXNpemU6IDEzcHg7IH1cXG5cXG4vKmNvbnRhaW5lciB0byAxMDAlKi9cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAuY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1hcmdpbi1yaWdodDogMjBweDsgfSB9XFxuXFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAuY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1hcmdpbi1yaWdodDogMjBweDsgfSB9XFxuXFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAuY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDEwMCU7IH0gfVxcblxcbi5jb250YWluZXItZmx1aWQge1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cXG5cXG4uY29udGFpbmVyLWZsdWlkIHBhZGRpbmcge1xcbiAgbGVmdDogMzBweDtcXG4gIHJpZ2h0OiAzMHB4OyB9XFxuXFxuLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyB7XFxuICBjb2xvcjogIzIxMjEyMTtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXItY29sb3I6ICNlZWU7IH1cXG5cXG4ubmF2YmFyLW5hdiA+IGxpID4gYSB7XFxuICBsaW5lLWhlaWdodDogMzBweDsgfVxcblxcbi5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kIHtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsOyB9XFxuXFxuLnBhbmVsLWhlYWRpbmcge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcXG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjZWVlOyB9XFxuXFxuLm5hdkJ0bkdyb3VwIHtcXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xcbiAgcGFkZGluZy1ib3R0b206IDIycHg7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XFxuXFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aCxcXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgsXFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRkLFxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCxcXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGQge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcblxcbmE6aG92ZXIge1xcbiAgY29sb3I6ICNmZmY7IH1cXG5cXG5hOmZvY3VzIHtcXG4gIGNvbG9yOiAjZmZmOyB9XFxuXFxuLypGb3JtcyBzZXR1cCovXFxuLmZvcm0tY29udHJvbCB7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG4gIGhlaWdodDogYXV0bzsgfVxcblxcbi5mbG9hdC1sYWJlbCB7XFxuICBmb250LXNpemU6IDEwcHg7IH1cXG5cXG4uc29jaWFsSWNvbiB7XFxuICBmb250LXNpemU6IDMycHg7IH1cXG4gIC5zb2NpYWxJY29uOmhvdmVyIHtcXG4gICAgY29sb3I6ICNGMkYyRjI7IH1cXG5cXG5pbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl0uZm9ybS1jb250cm9sLFxcbmlucHV0W3R5cGU9XFxcInNlYXJjaFxcXCJdLmZvcm0tY29udHJvbCB7XFxuICBib3JkZXI6IG5vbmU7XFxuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNDRkNGQ0Y7IH1cXG5cXG50ZXh0YXJlYSB7XFxuICBib3JkZXI6IDFweCBkb3R0ZWQgI0NGQ0ZDRiAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxMzBweCAhaW1wb3J0YW50OyB9XFxuXFxuLypDb250ZW50IENvbnRhaW5lciovXFxuLmNvbnRlbnQtY29udGFpbmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBwYWRkaW5nOiAzNXB4IDIwcHg7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XFxuXFxuaDEuY29udGVudC10aXRsZSB7XFxuICBmb250LXNpemU6IDMycHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XFxuICBmb250LWZhbWlseTogXFxcIk9wZW4gU2Fuc1xcXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsgfVxcblxcbi8qcGFwZXIgdGhlbWUgYm9vdHN0cmFwKi9cXG4uZm9ybS1jb250cm9sIHtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiUm9ib3RvXFxcIiwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDM5cHg7XFxuICBwYWRkaW5nOiA4cHggMTJweDtcXG4gIGZvbnQtc2l6ZTogMTNweDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzO1xcbiAgY29sb3I6ICM3Nzc3Nzc7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB9XFxuXFxuLmZvcm0tY29udHJvbDpmb2N1cyB7XFxuICBib3JkZXItY29sb3I6ICM2NmFmZTk7XFxuICBvdXRsaW5lOiAwO1xcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoMTAyLCAxNzUsIDIzMywgMC42KTsgfVxcblxcbi5mb3JtLWNvbnRyb2w6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5OTk5OTk7XFxuICBvcGFjaXR5OiAxOyB9XFxuXFxuLmZvcm0tY29udHJvbDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5OTk5OTk7IH1cXG5cXG4uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTk5OTk5OyB9XFxuXFxuLmZvcm0tY29udHJvbFtkaXNhYmxlZF0sXFxuLmZvcm0tY29udHJvbFtyZWFkb25seV0sXFxuZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcXG4gIG9wYWNpdHk6IDE7IH1cXG5cXG4uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxcXG5maWVsZHNldFtkaXNhYmxlZF0gLmZvcm0tY29udHJvbCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XFxuXFxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcXG4gIGhlaWdodDogYXV0bzsgfVxcblxcbi5mYWtlQ29udHJvbFtkaXNhYmxlZF0ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIG9wYWNpdHk6IDE7IH1cXG5cXG4uZmFrZUNvbnRyb2xbZGlzYWJsZWRdIHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDsgfVxcblxcbi5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXS5mYWtlQ2hlY2sge1xcbiAgY3Vyc29yOiBhbGwtc2Nyb2xsOyB9XFxuXFxuLmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdLmZha2VDaGVjayB7XFxuICBjdXJzb3I6IGFsbC1zY3JvbGw7IH1cXG5cXG5sYWJlbC5mYWtlQ2hlY2sge1xcbiAgY3Vyc29yOiBhbGwtc2Nyb2xsOyB9XFxuXFxuLyogYW5pbWF0aW9uIG5nLXJlcGVhdFxcbmVhc3kgY3VzdG9taXplIGFuaW1hdGlvbiBmcm9tIGhlcmUgOiBodHRwOi8vd3d3Lm5nYW5pbWF0ZS5vcmcvYW5ndWxhcmpzL25nLXJlcGVhdC95by15by1jc3MzLWtleWZyYW1lcy1hbmltYXRpb24qL1xcbi5hbmltYXRlLWVudGVyIHtcXG4gIGFuaW1hdGlvbjogZW50ZXIgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuXFxuQGtleWZyYW1lcyBlbnRlciB7XFxuICBmcm9tIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICAgIGxlZnQ6IC03MHB4OyB9XFxuICA3NSUge1xcbiAgICBsZWZ0OiAxNXB4OyB9XFxuICB0byB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIGhlaWdodDogMzBweDtcXG4gICAgbGVmdDogMHB4OyB9IH1cXG5cXG4uYW5pbWF0ZS1sZWF2ZSB7XFxuICBhbmltYXRpb246IGxlYXZlIDYwMG1zIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcblxcbkBrZXlmcmFtZXMgbGVhdmUge1xcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gICAgbGVmdDogLTcwcHg7IH1cXG4gIDI1JSB7XFxuICAgIGxlZnQ6IDE1cHg7IH1cXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICBoZWlnaHQ6IDMwcHg7XFxuICAgIGxlZnQ6IDBweDsgfSB9XFxuXFxuLyogdGQgdGFibGUgaW4gbXlwcm9maWxlICovXFxuLnRkQ29tbXVuLCAudGQ0MCwgLnRkNjAge1xcbiAgaGVpZ2h0OiA3NXB4O1xcbiAgdmVydGljYWwtYWxpZ246IG5vbmU7IH1cXG5cXG4udGQ0MCB7XFxuICB3aWR0aDogNDAlOyB9XFxuXFxuLnRkNjAge1xcbiAgd2lkdGg6IDYwJTsgfVxcblxcbi50YWJsZS11c2VyLWluZm9ybWF0aW9uID4gdGhlYWQgPiB0ciA+IHRoLFxcbi50YWJsZS11c2VyLWluZm9ybWF0aW9uID4gdGJvZHkgPiB0ciA+IHRoLFxcbi50YWJsZS11c2VyLWluZm9ybWF0aW9uID4gdGZvb3QgPiB0ciA+IHRoLFxcbi50YWJsZS11c2VyLWluZm9ybWF0aW9uID4gdGhlYWQgPiB0ciA+IHRkLFxcbi50YWJsZS11c2VyLWluZm9ybWF0aW9uID4gdGJvZHkgPiB0ciA+IHRkLFxcbi50YWJsZS11c2VyLWluZm9ybWF0aW9uID4gdGZvb3QgPiB0ciA+IHRkIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cXG5cXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcbiAgIEFOR1VMQVIgQU5JTUFUSU9OUyAoaW4gcGFpciBvbiBhbmltYXRlLmNzcylcXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXFxuLyogYW5pbWF0aW9uIG9uIG5nLXN3aXRjaCAqL1xcbi5zd2l0Y2hBbmd1bGFyRmFkZUluIC5uZy1lbnRlciB7XFxuICBhbmltYXRpb246IGZhZGVJbiAxczsgfVxcblxcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuICAgd2ZFZGl0XFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xcbiNwYWdlV2ZFZGl0IHtcXG4gIG1hcmdpbi10b3A6IDQwcHg7XFxuICAvKiAgICByaWdodDoyJTtcXG4gICAgbGVmdDoyJTsgKi9cXG4gIHBhZGRpbmctdG9wOiAzMHB4O1xcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xcbiAgLyogYm9yZGVyLXRvcDogc29saWQgM3B4IHdoaXRlO1xcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgM3B4IHdoaXRlOyAqLyB9XFxuXFxuLmxpbmVDb21tYW5kQnV0dG9ucyB7XFxuICBwYWRkaW5nLWJvdHRvbTogMjVweDsgfVxcblxcbi5hZGROZXdMaW5lIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjb2xvcjogIzY2NjY2NjsgfVxcblxcbiNlZGl0b3Ige1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xcbiAgaGVpZ2h0OiAxNTBweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1MkIzRDk7XFxuICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzJDM0U1MDsgfVxcblxcbiNlZGl0b3ItY29udGVudCB7XFxuICAvKiBwYWRkaW5nLXRvcDogMjVweDsgKi9cXG4gIC8qIHBhZGRpbmctYm90dG9tOiAyNXB4OyAqL1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgY29sb3I6IHdoaXRlO1xcbiAgZm9udC1zaXplOiAxM3B4OyB9XFxuXFxuI3ByZXZpZXcge1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xcbiAgLyogYmFja2dyb3VuZC1jb2xvcjogI0U0RjFGRTsgKi9cXG4gIGJvcmRlcjogc29saWQgMSBweCAjMkMzRTUwO1xcbiAgLW8tYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IDBweCAjZGRkO1xcbiAgYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IDBweCAjZGRkO1xcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuU2hhZG93KGNvbG9yPSNkZGQsIERpcmVjdGlvbj1OYU4sIFN0cmVuZ3RoPTEwKTsgfVxcblxcbiNwcmV2aWV3LWNvbnRlbnQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcXG4gIHBhZGRpbmctYm90dG9tOiAyNXB4O1xcbiAgLyp0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cXG4gIGNvbG9yOiBibGFjaztcXG4gIC8qZm9udC1zaXplOiAxM3B4OyovIH1cXG5cXG4jY29tbWFuZFBhbmVsIHtcXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xcbiAgcGFkZGluZy1ib3R0b206IDI1cHg7IH1cXG5cXG4vKiAgI2NvbW1hbmRQYW5lbC5hZmZpeCB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICB3aWR0aDoyNSU7XFxuICAgIG1hcmdpbi10b3A6IC00NXB4O1xcbiAgfSAqL1xcbiN2aXN1YWxQYW5lbCB7XFxuICBwYWRkaW5nLXRvcDogMjVweDtcXG4gIHBhZGRpbmctYm90dG9tOiAyNXB4OyB9XFxuXFxuLmN1c3RvbVBhZ2VyQnV0dG9uIHtcXG4gIHdpZHRoOiAxMDBweDsgfVxcblxcbi5udW1iZXJPZkNvbHVtbnNMYWJlbCB7XFxuICBmb250LXNpemU6IDMycHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nLXRvcDogMjUlO1xcbiAgcGFkZGluZy1ib3R0b206IDI1JTtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgY29sb3I6ICM2NjY2NjY7IH1cXG5cXG4uYnRuTWludXNDb2x1bW5zIHtcXG4gIG1hcmdpbi10b3A6IDEwcHg7IH1cXG5cXG4uYnRuQWRkQ29sdW1ucyB7XFxuICBtYXJnaW4tdG9wOiAxMHB4OyB9XFxuXFxuLm51bWJlck9mY29sdW1zVGV4dCB7XFxuICBjb2xvcjogIzY2NjY2NjsgfVxcblxcbi5ncmV5VGV4dCB7XFxuICBjb2xvcjogIzY2NjY2NjsgfVxcblxcbi5ibGFja1RleHQge1xcbiAgY29sb3I6ICMwMDA7IH1cXG5cXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcbiAgQU5JTUFURSBORy1TV0lUQ0hcXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xcbi5hbmltYXRlLXN3aXRjaC1jb250YWluZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZDogd2hpdGU7XFxuICBib3JkZXItdG9wOiBzb2xpZCAxcHggI0VDRUNFQztcXG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjRUNFQ0VDO1xcbiAgb3ZlcmZsb3c6IHNjcm9sbDsgfVxcbiAgLmFuaW1hdGUtc3dpdGNoLWNvbnRhaW5lciAud2VsbCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM4OUM0RjQ7XFxuICAgIG1hcmdpbi1ib3R0b206IDBweDtcXG4gICAgY29sb3I6ICNFQ0VDRUM7IH1cXG5cXG4ubGluZXNMaXN0IHtcXG4gIG1hcmdpbi10b3A6IDVweDsgfVxcblxcbi8qc3dpdGNoIDEgOiBtb3ZlIHRvcCovXFxuLmFuaW1hdGUtc3dpdGNoIHtcXG4gIHBhZGRpbmc6IDEwcHg7IH1cXG5cXG4uYW5pbWF0ZS1zd2l0Y2gubmctYW5pbWF0ZSB7XFxuICB0cmFuc2l0aW9uOiBhbGwgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpIDAuNnM7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7IH1cXG5cXG4uYW5pbWF0ZS1zd2l0Y2gubmctbGVhdmUubmctbGVhdmUtYWN0aXZlLFxcbi5hbmltYXRlLXN3aXRjaC5uZy1lbnRlciB7XFxuICBsZWZ0OiAwcHg7XFxuICB0b3A6IC01MDBweDtcXG4gIG9wYWNpdHk6IDA7IH1cXG5cXG4uYW5pbWF0ZS1zd2l0Y2gubmctbGVhdmUsXFxuLmFuaW1hdGUtc3dpdGNoLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XFxuICBsZWZ0OiAwcHg7XFxuICB0b3A6IDBweDtcXG4gIG9wYWNpdHk6IDAuODsgfVxcblxcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuICBTVEVQIElORElDQVRPUlxcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXFxuLnN0ZXB3aXphcmRUb3BtYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogMjVweDsgfVxcblxcbi5zdGVwd2l6YXJkLXN0ZXAgcCB7XFxuICBtYXJnaW4tdG9wOiAxMHB4O1xcbiAgY29sb3I6ICM2NjY2NjY7IH1cXG5cXG4uc3RlcHdpemFyZC1yb3cge1xcbiAgZGlzcGxheTogdGFibGUtcm93OyB9XFxuXFxuLnN0ZXB3aXphcmQge1xcbiAgZGlzcGxheTogdGFibGU7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcblxcbi5zdGVwd2l6YXJkLXN0ZXAgYnV0dG9uW2Rpc2FibGVkXSB7XFxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XFxuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MTAwKSAhaW1wb3J0YW50OyB9XFxuXFxuLnN0ZXB3aXphcmQtcm93OmJlZm9yZSB7XFxuICB0b3A6IDE0cHg7XFxuICBib3R0b206IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBjb250ZW50OiBcXFwiIFxcXCI7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMXB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcXG4gIHotb3JkZXI6IDA7IH1cXG5cXG4uc3RlcHdpemFyZC1zdGVwIHtcXG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG5cXG4uYnRuLWNpcmNsZSB7XFxuICB3aWR0aDogMzBweDtcXG4gIGhlaWdodDogMzBweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDZweCAwO1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI5O1xcbiAgYm9yZGVyLXJhZGl1czogMTVweDsgfVxcblxcbi5wYW5lbERlYnVnU2NvcGUge1xcbiAgY29sb3I6ICMwMDA7IH1cXG5cXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcbiAgTW9kYWwgYWRkIGNvbnRyb2xcXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xcbi50ZXh0ZVJvdWdlIHtcXG4gIGNvbG9yOiAjQ0YwMDBGOyB9XFxuXFxuLmVkaXRQcm9wZXJ0aWVzTGFiZWwge1xcbiAgbWFyZ2luLXRvcDogNnB4OyB9XFxuXFxuLnRleHRDb250cm9sTGFiZWwge1xcbiAgY29sb3I6ICMwMDA7IH1cXG5cXG4ubWFyZ2luVG9wRml2ZXBpeGVscyB7XFxuICBtYXJnaW4tdG9wOiA1cHg7IH1cXG5cXG4ubWFyZ2luVG9wVGVucGl4ZWxzIHtcXG4gIG1hcmdpbi10b3A6IDVweDsgfVxcblxcbi5jaGVja2JveENzc0NvcnJlY3Rpb24ge1xcbiAgZm9udC1zaXplOiA0cHg7IH1cXG5cXG4ubm9Hcm91cFRleHQge1xcbiAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XFxuXFxuLm55YS1icy1zZWxlY3Qge1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxcblxcbi50YS1zY3JvbGwtd2luZG93IHtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cXG5cXG4uZm9ybWx5LWZpZWxkLWNoZWNrYm94IHtcXG4gIG1hcmdpbi10b3A6IDI4cHg7IH1cXG5cXG4jaW5wdXRBZGROZXdSYWRpb09wdGlvbiB7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XFxuXFxuI2lucHV0QWRkTmV3QmFzaWNPcHRpb24ge1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxcblxcbiNpbnB1dEFkZE5ld0dyb3VwZWRPcHRpb24ge1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxcblxcbiNpbnB1dEFkZE5ld0dyb3VwR3JvdXBlZE9wdGlvbiB7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XFxuXFxuLmVkaXRHcm91cGVkU2VsZWN0bnlhU2VsZWN0IHtcXG4gIG1hcmdpbi1ib3R0b206IDBweDsgfVxcblxcbi5oZWFkaW5nLXByZXZpZXcge1xcbiAgY3Vyc29yOiBwb2ludGVyOyB9XFxuXFxuLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG4gICBzcGVjaWZpYyBkcmFnIGFuZCBkcm9wIHRlc3QgKHdpbGwgY2hhbmdlIG9yIGJlIGRlbGV0ZWQpXFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBwYWdlU2xpZGUgZGlyZWN0aXZlIGNzcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4vKiBOZWVkZWQgZm9yIGhpZGluZyBjcm9sbGJhcnMgd2hlbiBwdXNoaW5nICovXFxuaHRtbCB7XFxuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cXG5cXG4ubmctcGFnZXNsaWRlIHtcXG4gIGJhY2tncm91bmQ6ICNlZWU7XFxuICBib3gtc2hhZG93OiA1cHggMXB4IDEycHggMHB4IHJnYmEoMTg4LCAxODMsIDE4MywgMC43KTtcXG4gIC1tb3otYm94LXNoYWRvdzogNXB4IDFweCAxMnB4IDBweCByZ2JhKDE4OCwgMTgzLCAxODMsIDAuNyk7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDVweCAxcHggMTJweCAwcHggcmdiYSgxODgsIDE4MywgMTgzLCAwLjcpOyB9XFxuXFxuI2NvbnRyb2xFZGl0TGVmdFBhbmVsIHtcXG4gIG1hcmdpbi10b3A6IDk1cHg7XFxuICBwYWRkaW5nLXRvcDogMjBweDtcXG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xcbiAgcGFkZGluZy1yaWdodDogMTBweDtcXG4gIHBhZGRpbmctbGVmdDogMTBweDtcXG4gIGhlaWdodDogODUlO1xcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XFxuXFxuLnNlcGFyYXRvcjEwcGl4ZWwge1xcbiAgbWFyZ2luLXRvcDogNXB4O1xcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xcbiAgaGVpZ2h0OiAyNXB4OyB9XFxuXFxuLnBhbmVsQ29udHJvbFdpZHRoIHtcXG4gIHdpZHRoOiA0NSU7IH1cXG5cXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogUmVxdWlyZWQgc3R5bGVzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xcbi8qKlxcbiAqIEZvciB0aGUgY29ycmVjdCBwb3NpdGlvbmluZyBvZiB0aGUgcGxhY2Vob2xkZXIgZWxlbWVudCwgdGhlIGRuZC1saXN0IGFuZFxcbiAqIGl0J3MgY2hpbGRyZW4gbXVzdCBoYXZlIHBvc2l0aW9uOiByZWxhdGl2ZVxcbiAqL1xcbi5hZHZhbmNlZERlbW8gdWxbZG5kLWxpc3RdLFxcbi5hZHZhbmNlZERlbW8gdWxbZG5kLWxpc3RdID4gbGkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYm9yZGVyOiBzb2xpZCAxcHggI0YxRjFGMTsgfVxcblxcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBEcm9wem9uZSBTdHlsaW5nICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xcbi8qKlxcbiAqIFRoZSBkbmQtbGlzdCBzaG91bGQgYWx3YXlzIGhhdmUgYSBtaW4taGVpZ2h0LFxcbiAqIG90aGVyd2lzZSB5b3UgY2FuJ3QgZHJvcCB0byBpdCBvbmNlIGl0J3MgZW1wdHlcXG4gKi9cXG4uYWR2YW5jZWREZW1vIC5kcm9wem9uZSB1bFtkbmQtbGlzdF0ge1xcbiAgbWluLWhlaWdodDogNDJweDtcXG4gIG1hcmdpbjogMHB4O1xcbiAgcGFkZGluZy1sZWZ0OiAwcHg7IH1cXG5cXG4vKipcXG4gKiBUaGUgZG5kLWxpc3RzJ3MgY2hpbGQgZWxlbWVudHMgY3VycmVudGx5IE1VU1QgaGF2ZVxcbiAqIHBvc2l0aW9uOiByZWxhdGl2ZS4gT3RoZXJ3aXNlIHdlIGNhbiBub3QgZGV0ZXJtaW5lXFxuICogd2hldGhlciB0aGUgbW91c2UgcG9pbnRlciBpcyBpbiB0aGUgdXBwZXIgb3IgbG93ZXJcXG4gKiBoYWxmIG9mIHRoZSBlbGVtZW50IHdlIGFyZSBkcmFnZ2luZyBvdmVyLiBJbiBvdGhlclxcbiAqIGJyb3dzZXJzIHdlIGNhbiB1c2UgZXZlbnQub2Zmc2V0WSBmb3IgdGhpcy5cXG4gKi9cXG4uYWR2YW5jZWREZW1vIC5kcm9wem9uZSBsaSB7XFxuICBkaXNwbGF5OiBibG9jazsgfVxcblxcbi8qKlxcbiAqIFJlZHVjZSBvcGFjaXR5IG9mIGVsZW1lbnRzIGR1cmluZyB0aGUgZHJhZyBvcGVyYXRpb24uIFRoaXMgYWxsb3dzIHRoZSB1c2VyXFxuICogdG8gc2VlIHdoZXJlIGhlIGlzIGRyb3BwaW5nIGhpcyBlbGVtZW50LCBldmVuIGlmIHRoZSBlbGVtZW50IGlzIGh1Z2UuIFRoZVxcbiAqIC5kbmREcmFnZ2luZyBjbGFzcyBpcyBhdXRvbWF0aWNhbGx5IHNldCBkdXJpbmcgdGhlIGRyYWcgb3BlcmF0aW9uLlxcbiAqL1xcbi5hZHZhbmNlZERlbW8gLmRyb3B6b25lIC5kbmREcmFnZ2luZyB7XFxuICBvcGFjaXR5OiAwLjc7XFxuICBib3JkZXI6IDJweCBkb3R0ZWQgIzAwMDsgfVxcblxcbi8qKlxcbiAqIFRoZSBkbmREcmFnZ2luZ1NvdXJjZSBjbGFzcyB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHNvdXJjZSBlbGVtZW50IG9mIGEgZHJhZ1xcbiAqIG9wZXJhdGlvbi4gSXQgbWFrZXMgc2Vuc2UgdG8gaGlkZSBpdCB0byBnaXZlIHRoZSB1c2VyIHRoZSBmZWVsaW5nIHRoYXQgaGUnc1xcbiAqIGFjdHVhbGx5IG1vdmluZyBpdC4gTm90ZSB0aGF0IHRoZSBzb3VyY2UgZWxlbWVudCBoYXMgYWxzbyAuZG5kRHJhZ2dpbmcgY2xhc3MuXFxuICovXFxuLmFkdmFuY2VkRGVtbyAuZHJvcHpvbmUgLmRuZERyYWdnaW5nU291cmNlIHtcXG4gIGRpc3BsYXk6IG5vbmU7IH1cXG5cXG4vKipcXG4gKiBBbiBlbGVtZW50IHdpdGggLmRuZFBsYWNlaG9sZGVyIGNsYXNzIHdpbGwgYmUgYWRkZWQgYXMgY2hpbGQgb2YgdGhlIGRuZC1saXN0XFxuICogd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgb3ZlciBpdC5cXG4gKi9cXG4uYWR2YW5jZWREZW1vIC5kcm9wem9uZSAuZG5kUGxhY2Vob2xkZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbiAgbWluLWhlaWdodDogMTU1cHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC1vLWJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggNXB4IDBweCAjMzQzNDM0O1xcbiAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCA1cHggMHB4ICMzNDM0MzQ7XFxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5TaGFkb3coY29sb3I9IzM0MzQzNCwgRGlyZWN0aW9uPU5hTiwgU3RyZW5ndGg9NSk7IH1cXG5cXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogRWxlbWVudCB0eXBlIHNwZWNpZmljIHN0eWxlcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4uYWR2YW5jZWREZW1vIC5kcm9wem9uZSAuaXRlbWxpc3Qge1xcbiAgbWluLWhlaWdodDogMTE1cHggIWltcG9ydGFudDsgfVxcblxcbnVsLml0ZW1saXN0Lm5nLXNjb3BlIHtcXG4gIGJvcmRlcjogbm9uZTsgfVxcblxcbi5lZmZlY3QxRm9yRHJhZ0Ryb3BJdGVtLCAjaXRlbUNvbnRlbnQge1xcbiAgYm94LXNoYWRvdzogMCAxMHB4IDZweCAtNnB4ICM3Nzc7XFxuICBtaW4taGVpZ2h0OiAxMTVweDsgfVxcblxcbi5hZHZhbmNlZERlbW8gLmRyb3B6b25lIC5pdGVtbGlzdCA+IGxpIHtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIG1pbi13aWR0aDogMTgwcHg7XFxuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gIGhlaWdodDogMTM1cHg7IH1cXG5cXG4jaXRlbUNvbnRlbnQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMnB4IG91dHNldCAjMGQ4N2U5O1xcbiAgYm9yZGVyLXJhZGl1czogLjI1ZW07XFxuICBjb2xvcjogI2ZmZjtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gIGhlaWdodDogMTE1cHg7XFxuICBtYXJnaW46IDVweDtcXG4gIHBhZGRpbmc6IDNweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgY3Vyc29yOiBhbGwtc2Nyb2xsOyB9XFxuXFxuLmRyYWdJdGVtdGV4dGFyZWEge1xcbiAgaGVpZ2h0OiA2MHB4OyB9XFxuXFxudGV4dGFyZWEge1xcbiAgYm9yZGVyOiAxcHggZG90dGVkICNDRkNGQ0YgIWltcG9ydGFudDtcXG4gIGhlaWdodDogNTBweCAhaW1wb3J0YW50OyB9XFxuXFxuLmFkdmFuY2VkRGVtbyAuZHJvcHpvbmUgLmNvbnRhaW5lci1lbGVtZW50IHtcXG4gIG1hcmdpbjogMTBweDsgfVxcblxcbi5pc0NvbGxhcHNhYmxlWm9uZSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7IH1cXG5cXG4uYnV0dG9uSGVhZGVyQWRkTmV3TGluZSB7XFxuICBtYXJnaW4tdG9wOiAxNXB4O1xcbiAgbWFyZ2luLWJvdHRvbTogMHB4OyB9XFxuXFxuLmJ1dHRvbkNsb25lTGluZUhpZGRlbiB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cXG5cXG4uYnV0dG9uQ2xvc2VMaW5lIHtcXG4gIG1hcmdpbi10b3A6IC0xMHB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGhlaWdodDogNDVweDsgfVxcblxcbi5pbnRlcmxpZ25lIHtcXG4gIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XFxuXFxuLmNvbmZpcm1MaW5lRGVsZXRlIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjVGNTtcXG4gIG9wYWNpdHk6IDEuMDtcXG4gIGFuaW1hdGlvbjogc2hha2UgMS4zcyBpbmZpbml0ZTsgfVxcblxcbi5kZW1vZGREYXRlcGlja2VyIHtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIG1hcmdpbi1sZWZ0OiAwOyB9XFxuXFxuLnNlbGVjdGZvcmRlbW8ge1xcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxcblxcbi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuICAgYW5pbWF0aW9uIHNoYWtlXFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xcblxcbkBrZXlmcmFtZXMgc2hha2Uge1xcbiAgMCUsIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XFxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApOyB9XFxuICAyMCUsIDQwJSwgNjAlLCA4MCUge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApOyB9IH1cXG5cXG4uc2hha2Uge1xcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlOyB9XFxuXFxuLnByZXZpZXdDb250cm9saW5JdGVtIHtcXG4gIG1hcmdpbi10b3A6IDIlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIHBhZGRpbmctdG9wOiA1cHg7XFxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xcbiAgcGFkZGluZy1yaWdodDogMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGNvbG9yOiAjRjFGMUYxO1xcbiAgZm9udC1zaXplOiAxOHB4OyB9XFxuXFxuLnZlcnRpY2FsLWxpbmUge1xcbiAgYm9yZGVyLWxlZnQ6IHRoaWNrIHNvbGlkICMwMDA7IH1cXG5cXG4vKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxcbiAgIGFuaW1hdGlvbiBnbHlwaGljb24gcm90YXRlXFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xcbi5nbHktc3BpbiB7XFxuICBhbmltYXRpb246IHNwaW4gMnMgaW5maW5pdGUgbGluZWFyOyB9XFxuXFxuQGtleWZyYW1lcyBzcGluIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOyB9IH1cXG5cXG4uZ2x5LXJvdGF0ZS05MCB7XFxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpO1xcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XFxuXFxuLmdseS1yb3RhdGUtMTgwIHtcXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XFxuXFxuLmdseS1yb3RhdGUtMjcwIHtcXG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Myk7XFxuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XFxuXFxuLmdseS1mbGlwLWhvcml6b250YWwge1xcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wLCBtaXJyb3I9MSk7XFxuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsgfVxcblxcbi5nbHktZmxpcC12ZXJ0aWNhbCB7XFxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsIG1pcnJvcj0xKTtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOyB9XFxuXFxuLnJpZ2h0Q2xpY2tDdHJsIHtcXG4gIG9wYWNpdHk6IDEuMDtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UtaW47IH1cXG5cXG4ucmlnaHRDbGlja0N0cmxTZWxlY3RlZCB7XFxuICBvcGFjaXR5OiAwLjU7IH1cXG5cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vY3NzLWxvYWRlciEuL34vcG9zdGNzcy1sb2FkZXIhLi9+L3Nhc3MtbG9hZGVyIS4vc3JjL2FwcC9kcmFnZHJvcHdheS9zdHlsZS9kcmFnX2FuZF9kcm9wLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  64. /***/ },
  65. /* 8 */
  66. /***/ function(module, exports) {
  67. eval("/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzP2RhMDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlCQUFpQjtBQUNqQztBQUNBO0FBQ0Esd0NBQXdDLGdCQUFnQjtBQUN4RCxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlCQUFpQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksb0JBQW9CO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuXHRNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxyXG5cdEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcclxuKi9cclxuLy8gY3NzIGJhc2UgY29kZSwgaW5qZWN0ZWQgYnkgdGhlIGNzcy1sb2FkZXJcclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcclxuXHR2YXIgbGlzdCA9IFtdO1xyXG5cclxuXHQvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXHJcblx0bGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xyXG5cdFx0dmFyIHJlc3VsdCA9IFtdO1xyXG5cdFx0Zm9yKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dmFyIGl0ZW0gPSB0aGlzW2ldO1xyXG5cdFx0XHRpZihpdGVtWzJdKSB7XHJcblx0XHRcdFx0cmVzdWx0LnB1c2goXCJAbWVkaWEgXCIgKyBpdGVtWzJdICsgXCJ7XCIgKyBpdGVtWzFdICsgXCJ9XCIpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJlc3VsdC5wdXNoKGl0ZW1bMV0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0LmpvaW4oXCJcIik7XHJcblx0fTtcclxuXHJcblx0Ly8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcclxuXHRsaXN0LmkgPSBmdW5jdGlvbihtb2R1bGVzLCBtZWRpYVF1ZXJ5KSB7XHJcblx0XHRpZih0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIilcclxuXHRcdFx0bW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xyXG5cdFx0dmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcclxuXHRcdGZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdHZhciBpZCA9IHRoaXNbaV1bMF07XHJcblx0XHRcdGlmKHR5cGVvZiBpZCA9PT0gXCJudW1iZXJcIilcclxuXHRcdFx0XHRhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XHJcblx0XHR9XHJcblx0XHRmb3IoaSA9IDA7IGkgPCBtb2R1bGVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdHZhciBpdGVtID0gbW9kdWxlc1tpXTtcclxuXHRcdFx0Ly8gc2tpcCBhbHJlYWR5IGltcG9ydGVkIG1vZHVsZVxyXG5cdFx0XHQvLyB0aGlzIGltcGxlbWVudGF0aW9uIGlzIG5vdCAxMDAlIHBlcmZlY3QgZm9yIHdlaXJkIG1lZGlhIHF1ZXJ5IGNvbWJpbmF0aW9uc1xyXG5cdFx0XHQvLyAgd2hlbiBhIG1vZHVsZSBpcyBpbXBvcnRlZCBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVudCBtZWRpYSBxdWVyaWVzLlxyXG5cdFx0XHQvLyAgSSBob3BlIHRoaXMgd2lsbCBuZXZlciBvY2N1ciAoSGV5IHRoaXMgd2F5IHdlIGhhdmUgc21hbGxlciBidW5kbGVzKVxyXG5cdFx0XHRpZih0eXBlb2YgaXRlbVswXSAhPT0gXCJudW1iZXJcIiB8fCAhYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xyXG5cdFx0XHRcdGlmKG1lZGlhUXVlcnkgJiYgIWl0ZW1bMl0pIHtcclxuXHRcdFx0XHRcdGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xyXG5cdFx0XHRcdH0gZWxzZSBpZihtZWRpYVF1ZXJ5KSB7XHJcblx0XHRcdFx0XHRpdGVtWzJdID0gXCIoXCIgKyBpdGVtWzJdICsgXCIpIGFuZCAoXCIgKyBtZWRpYVF1ZXJ5ICsgXCIpXCI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGxpc3QucHVzaChpdGVtKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcblx0cmV0dXJuIGxpc3Q7XHJcbn07XHJcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  68. /***/ },
  69. /* 9 */
  70. /***/ function(module, exports, __webpack_require__) {
  71. eval("/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0,\r\n\tstyleElementsInsertedAtTop = [];\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(false) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\t// By default, add <style> tags to the bottom of <head>.\r\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction insertStyleElement(options, styleElement) {\r\n\tvar head = getHeadElement();\r\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\tif (options.insertAt === \"top\") {\r\n\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t} else {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t}\r\n\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t} else if (options.insertAt === \"bottom\") {\r\n\t\thead.appendChild(styleElement);\r\n\t} else {\r\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t}\r\n}\r\n\r\nfunction removeStyleElement(styleElement) {\r\n\tstyleElement.parentNode.removeChild(styleElement);\r\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\tif(idx >= 0) {\r\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t}\r\n}\r\n\r\nfunction createStyleElement(options) {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tstyleElement.type = \"text/css\";\r\n\tinsertStyleElement(options, styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement(options) {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tlinkElement.rel = \"stylesheet\";\r\n\tinsertStyleElement(options, linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement(options);\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement(options);\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3N0eWxlLWxvYWRlci9hZGRTdHlsZXMuanM/Yjk4MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFnQixtQkFBbUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHNCQUFzQjtBQUN0QztBQUNBO0FBQ0Esa0JBQWtCLDJCQUEyQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxlQUFlLG1CQUFtQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiwyQkFBMkI7QUFDNUM7QUFDQTtBQUNBLFFBQVEsdUJBQXVCO0FBQy9CO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxpQkFBaUIsdUJBQXVCO0FBQ3hDO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsaUJBQWlCO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxnQ0FBZ0Msc0JBQXNCO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1REFBdUQ7QUFDdkQ7O0FBRUEsNkJBQTZCLG1CQUFtQjs7QUFFaEQ7O0FBRUE7O0FBRUE7QUFDQTtBQUNBIiwiZmlsZSI6IjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG5cdE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXHJcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxyXG4qL1xyXG52YXIgc3R5bGVzSW5Eb20gPSB7fSxcclxuXHRtZW1vaXplID0gZnVuY3Rpb24oZm4pIHtcclxuXHRcdHZhciBtZW1vO1xyXG5cdFx0cmV0dXJuIGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0aWYgKHR5cGVvZiBtZW1vID09PSBcInVuZGVmaW5lZFwiKSBtZW1vID0gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuXHRcdFx0cmV0dXJuIG1lbW87XHJcblx0XHR9O1xyXG5cdH0sXHJcblx0aXNPbGRJRSA9IG1lbW9pemUoZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gL21zaWUgWzYtOV1cXGIvLnRlc3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7XHJcblx0fSksXHJcblx0Z2V0SGVhZEVsZW1lbnQgPSBtZW1vaXplKGZ1bmN0aW9uICgpIHtcclxuXHRcdHJldHVybiBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXTtcclxuXHR9KSxcclxuXHRzaW5nbGV0b25FbGVtZW50ID0gbnVsbCxcclxuXHRzaW5nbGV0b25Db3VudGVyID0gMCxcclxuXHRzdHlsZUVsZW1lbnRzSW5zZXJ0ZWRBdFRvcCA9IFtdO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihsaXN0LCBvcHRpb25zKSB7XHJcblx0aWYodHlwZW9mIERFQlVHICE9PSBcInVuZGVmaW5lZFwiICYmIERFQlVHKSB7XHJcblx0XHRpZih0eXBlb2YgZG9jdW1lbnQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBFcnJvcihcIlRoZSBzdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudFwiKTtcclxuXHR9XHJcblxyXG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cdC8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxyXG5cdC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2VcclxuXHRpZiAodHlwZW9mIG9wdGlvbnMuc2luZ2xldG9uID09PSBcInVuZGVmaW5lZFwiKSBvcHRpb25zLnNpbmdsZXRvbiA9IGlzT2xkSUUoKTtcclxuXHJcblx0Ly8gQnkgZGVmYXVsdCwgYWRkIDxzdHlsZT4gdGFncyB0byB0aGUgYm90dG9tIG9mIDxoZWFkPi5cclxuXHRpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0QXQgPT09IFwidW5kZWZpbmVkXCIpIG9wdGlvbnMuaW5zZXJ0QXQgPSBcImJvdHRvbVwiO1xyXG5cclxuXHR2YXIgc3R5bGVzID0gbGlzdFRvU3R5bGVzKGxpc3QpO1xyXG5cdGFkZFN0eWxlc1RvRG9tKHN0eWxlcywgb3B0aW9ucyk7XHJcblxyXG5cdHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xyXG5cdFx0dmFyIG1heVJlbW92ZSA9IFtdO1xyXG5cdFx0Zm9yKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHR2YXIgaXRlbSA9IHN0eWxlc1tpXTtcclxuXHRcdFx0dmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF07XHJcblx0XHRcdGRvbVN0eWxlLnJlZnMtLTtcclxuXHRcdFx0bWF5UmVtb3ZlLnB1c2goZG9tU3R5bGUpO1xyXG5cdFx0fVxyXG5cdFx0aWYobmV3TGlzdCkge1xyXG5cdFx0XHR2YXIgbmV3U3R5bGVzID0gbGlzdFRvU3R5bGVzKG5ld0xpc3QpO1xyXG5cdFx0XHRhZGRTdHlsZXNUb0RvbShuZXdTdHlsZXMsIG9wdGlvbnMpO1xyXG5cdFx0fVxyXG5cdFx0Zm9yKHZhciBpID0gMDsgaSA8IG1heVJlbW92ZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHR2YXIgZG9tU3R5bGUgPSBtYXlSZW1vdmVbaV07XHJcblx0XHRcdGlmKGRvbVN0eWxlLnJlZnMgPT09IDApIHtcclxuXHRcdFx0XHRmb3IodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspXHJcblx0XHRcdFx0XHRkb21TdHlsZS5wYXJ0c1tqXSgpO1xyXG5cdFx0XHRcdGRlbGV0ZSBzdHlsZXNJbkRvbVtkb21TdHlsZS5pZF07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBhZGRTdHlsZXNUb0RvbShzdHlsZXMsIG9wdGlvbnMpIHtcclxuXHRmb3IodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHR2YXIgaXRlbSA9IHN0eWxlc1tpXTtcclxuXHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xyXG5cdFx0aWYoZG9tU3R5bGUpIHtcclxuXHRcdFx0ZG9tU3R5bGUucmVmcysrO1xyXG5cdFx0XHRmb3IodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRkb21TdHlsZS5wYXJ0c1tqXShpdGVtLnBhcnRzW2pdKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRmb3IoOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xyXG5cdFx0XHRcdGRvbVN0eWxlLnBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSwgb3B0aW9ucykpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR2YXIgcGFydHMgPSBbXTtcclxuXHRcdFx0Zm9yKHZhciBqID0gMDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcclxuXHRcdFx0XHRwYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0sIG9wdGlvbnMpKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHtpZDogaXRlbS5pZCwgcmVmczogMSwgcGFydHM6IHBhcnRzfTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGxpc3RUb1N0eWxlcyhsaXN0KSB7XHJcblx0dmFyIHN0eWxlcyA9IFtdO1xyXG5cdHZhciBuZXdTdHlsZXMgPSB7fTtcclxuXHRmb3IodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xyXG5cdFx0dmFyIGl0ZW0gPSBsaXN0W2ldO1xyXG5cdFx0dmFyIGlkID0gaXRlbVswXTtcclxuXHRcdHZhciBjc3MgPSBpdGVtWzFdO1xyXG5cdFx0dmFyIG1lZGlhID0gaXRlbVsyXTtcclxuXHRcdHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdO1xyXG5cdFx0dmFyIHBhcnQgPSB7Y3NzOiBjc3MsIG1lZGlhOiBtZWRpYSwgc291cmNlTWFwOiBzb3VyY2VNYXB9O1xyXG5cdFx0aWYoIW5ld1N0eWxlc1tpZF0pXHJcblx0XHRcdHN0eWxlcy5wdXNoKG5ld1N0eWxlc1tpZF0gPSB7aWQ6IGlkLCBwYXJ0czogW3BhcnRdfSk7XHJcblx0XHRlbHNlXHJcblx0XHRcdG5ld1N0eWxlc1tpZF0ucGFydHMucHVzaChwYXJ0KTtcclxuXHR9XHJcblx0cmV0dXJuIHN0eWxlcztcclxufVxyXG5cclxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMsIHN0eWxlRWxlbWVudCkge1xyXG5cdHZhciBoZWFkID0gZ2V0SGVhZEVsZW1lbnQoKTtcclxuXHR2YXIgbGFzdFN0eWxlRWxlbWVudEluc2VydGVkQXRUb3AgPSBzdHlsZUVsZW1lbnRzSW5zZXJ0ZWRBdFRvcFtzdHlsZUVsZW1lbnRzSW5zZXJ0ZWRBdFRvcC5sZW5ndGggLSAxXTtcclxuXHRpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJ0b3BcIikge1xyXG5cdFx0aWYoIWxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wKSB7XHJcblx0XHRcdGhlYWQuaW5zZXJ0QmVmb3JlKHN0eWxlRWxlbWVudCwgaGVhZC5maXJzdENoaWxkKTtcclxuXHRcdH0gZWxzZSBpZihsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcC5uZXh0U2libGluZykge1xyXG5cdFx0XHRoZWFkLmluc2VydEJlZm9yZShzdHlsZUVsZW1lbnQsIGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wLm5leHRTaWJsaW5nKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTtcclxuXHRcdH1cclxuXHRcdHN0eWxlRWxlbWVudHNJbnNlcnRlZEF0VG9wLnB1c2goc3R5bGVFbGVtZW50KTtcclxuXHR9IGVsc2UgaWYgKG9wdGlvbnMuaW5zZXJ0QXQgPT09IFwiYm90dG9tXCIpIHtcclxuXHRcdGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICdpbnNlcnRBdCcuIE11c3QgYmUgJ3RvcCcgb3IgJ2JvdHRvbScuXCIpO1xyXG5cdH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xyXG5cdHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7XHJcblx0dmFyIGlkeCA9IHN0eWxlRWxlbWVudHNJbnNlcnRlZEF0VG9wLmluZGV4T2Yoc3R5bGVFbGVtZW50KTtcclxuXHRpZihpZHggPj0gMCkge1xyXG5cdFx0c3R5bGVFbGVtZW50c0luc2VydGVkQXRUb3Auc3BsaWNlKGlkeCwgMSk7XHJcblx0fVxyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQob3B0aW9ucykge1xyXG5cdHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XHJcblx0c3R5bGVFbGVtZW50LnR5cGUgPSBcInRleHQvY3NzXCI7XHJcblx0aW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMsIHN0eWxlRWxlbWVudCk7XHJcblx0cmV0dXJuIHN0eWxlRWxlbWVudDtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTGlua0VsZW1lbnQob3B0aW9ucykge1xyXG5cdHZhciBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xyXG5cdGxpbmtFbGVtZW50LnJlbCA9IFwic3R5bGVzaGVldFwiO1xyXG5cdGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zLCBsaW5rRWxlbWVudCk7XHJcblx0cmV0dXJuIGxpbmtFbGVtZW50O1xyXG59XHJcblxyXG5mdW5jdGlvbiBhZGRTdHlsZShvYmosIG9wdGlvbnMpIHtcclxuXHR2YXIgc3R5bGVFbGVtZW50LCB1cGRhdGUsIHJlbW92ZTtcclxuXHJcblx0aWYgKG9wdGlvbnMuc2luZ2xldG9uKSB7XHJcblx0XHR2YXIgc3R5bGVJbmRleCA9IHNpbmdsZXRvbkNvdW50ZXIrKztcclxuXHRcdHN0eWxlRWxlbWVudCA9IHNpbmdsZXRvbkVsZW1lbnQgfHwgKHNpbmdsZXRvbkVsZW1lbnQgPSBjcmVhdGVTdHlsZUVsZW1lbnQob3B0aW9ucykpO1xyXG5cdFx0dXBkYXRlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgZmFsc2UpO1xyXG5cdFx0cmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgdHJ1ZSk7XHJcblx0fSBlbHNlIGlmKG9iai5zb3VyY2VNYXAgJiZcclxuXHRcdHR5cGVvZiBVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxyXG5cdFx0dHlwZW9mIFVSTC5jcmVhdGVPYmplY3RVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxyXG5cdFx0dHlwZW9mIFVSTC5yZXZva2VPYmplY3RVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxyXG5cdFx0dHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJlxyXG5cdFx0dHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xyXG5cdFx0c3R5bGVFbGVtZW50ID0gY3JlYXRlTGlua0VsZW1lbnQob3B0aW9ucyk7XHJcblx0XHR1cGRhdGUgPSB1cGRhdGVMaW5rLmJpbmQobnVsbCwgc3R5bGVFbGVtZW50KTtcclxuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRyZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcclxuXHRcdFx0aWYoc3R5bGVFbGVtZW50LmhyZWYpXHJcblx0XHRcdFx0VVJMLnJldm9rZU9iamVjdFVSTChzdHlsZUVsZW1lbnQuaHJlZik7XHJcblx0XHR9O1xyXG5cdH0gZWxzZSB7XHJcblx0XHRzdHlsZUVsZW1lbnQgPSBjcmVhdGVTdHlsZUVsZW1lbnQob3B0aW9ucyk7XHJcblx0XHR1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGVFbGVtZW50KTtcclxuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRyZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHR1cGRhdGUob2JqKTtcclxuXHJcblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlKG5ld09iaikge1xyXG5cdFx0aWYobmV3T2JqKSB7XHJcblx0XHRcdGlmKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcClcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdHVwZGF0ZShvYmogPSBuZXdPYmopO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmVtb3ZlKCk7XHJcblx0XHR9XHJcblx0fTtcclxufVxyXG5cclxudmFyIHJlcGxhY2VUZXh0ID0gKGZ1bmN0aW9uICgpIHtcclxuXHR2YXIgdGV4dFN0b3JlID0gW107XHJcblxyXG5cdHJldHVybiBmdW5jdGlvbiAoaW5kZXgsIHJlcGxhY2VtZW50KSB7XHJcblx0XHR0ZXh0U3RvcmVbaW5kZXhdID0gcmVwbGFjZW1lbnQ7XHJcblx0XHRyZXR1cm4gdGV4dFN0b3JlLmZpbHRlcihCb29sZWFuKS5qb2luKCdcXG4nKTtcclxuXHR9O1xyXG59KSgpO1xyXG5cclxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyhzdHlsZUVsZW1lbnQsIGluZGV4LCByZW1vdmUsIG9iaikge1xyXG5cdHZhciBjc3MgPSByZW1vdmUgPyBcIlwiIDogb2JqLmNzcztcclxuXHJcblx0aWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XHJcblx0XHRzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gcmVwbGFjZVRleHQoaW5kZXgsIGNzcyk7XHJcblx0fSBlbHNlIHtcclxuXHRcdHZhciBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKTtcclxuXHRcdHZhciBjaGlsZE5vZGVzID0gc3R5bGVFbGVtZW50LmNoaWxkTm9kZXM7XHJcblx0XHRpZiAoY2hpbGROb2Rlc1tpbmRleF0pIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XHJcblx0XHRpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcclxuXHRcdFx0c3R5bGVFbGVtZW50Lmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY3NzTm9kZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5mdW5jdGlvbiBhcHBseVRvVGFnKHN0eWxlRWxlbWVudCwgb2JqKSB7XHJcblx0dmFyIGNzcyA9IG9iai5jc3M7XHJcblx0dmFyIG1lZGlhID0gb2JqLm1lZGlhO1xyXG5cclxuXHRpZihtZWRpYSkge1xyXG5cdFx0c3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsIG1lZGlhKVxyXG5cdH1cclxuXHJcblx0aWYoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcclxuXHRcdHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XHJcblx0fSBlbHNlIHtcclxuXHRcdHdoaWxlKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XHJcblx0XHRcdHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCk7XHJcblx0XHR9XHJcblx0XHRzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XHJcblx0fVxyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGVMaW5rKGxpbmtFbGVtZW50LCBvYmopIHtcclxuXHR2YXIgY3NzID0gb2JqLmNzcztcclxuXHR2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcclxuXHJcblx0aWYoc291cmNlTWFwKSB7XHJcblx0XHQvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yNjYwMzg3NVxyXG5cdFx0Y3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIiArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyBcIiAqL1wiO1xyXG5cdH1cclxuXHJcblx0dmFyIGJsb2IgPSBuZXcgQmxvYihbY3NzXSwgeyB0eXBlOiBcInRleHQvY3NzXCIgfSk7XHJcblxyXG5cdHZhciBvbGRTcmMgPSBsaW5rRWxlbWVudC5ocmVmO1xyXG5cclxuXHRsaW5rRWxlbWVudC5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuXHJcblx0aWYob2xkU3JjKVxyXG5cdFx0VVJMLnJldm9rZU9iamVjdFVSTChvbGRTcmMpO1xyXG59XHJcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9zdHlsZS1sb2FkZXIvYWRkU3R5bGVzLmpzXG4vLyBtb2R1bGUgaWQgPSA5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  72. /***/ },
  73. /* 10 */
  74. /***/ function(module, exports, __webpack_require__) {
  75. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _edaDragDropWayFormlyConfig = __webpack_require__(11);\n\nvar _edaDragDropWayFormlyConfig2 = _interopRequireDefault(_edaDragDropWayFormlyConfig);\n\nvar _edaDragDropWayDragDropConfig = __webpack_require__(12);\n\nvar _edaDragDropWayDragDropConfig2 = _interopRequireDefault(_edaDragDropWayDragDropConfig);\n\nvar _edaDragDropWayCore = __webpack_require__(14);\n\nvar _edaDragDropWayCore2 = _interopRequireDefault(_edaDragDropWayCore);\n\nvar _edaDragDropWayLeftPanel = __webpack_require__(15);\n\nvar _edaDragDropWayLeftPanel2 = _interopRequireDefault(_edaDragDropWayLeftPanel);\n\nvar _edaDragDropWayFormlyProxyFormFieldManage = __webpack_require__(49);\n\nvar _edaDragDropWayFormlyProxyFormFieldManage2 = _interopRequireDefault(_edaDragDropWayFormlyProxyFormFieldManage);\n\nvar _edaDragDropWayDragdrop = __webpack_require__(53);\n\nvar _edaDragDropWayDragdrop2 = _interopRequireDefault(_edaDragDropWayDragdrop);\n\nvar _edaDragDropWayRightClick = __webpack_require__(67);\n\nvar _edaDragDropWayRightClick2 = _interopRequireDefault(_edaDragDropWayRightClick);\n\nvar _edaDragDropWayConfigurationModelProxy = __webpack_require__(70);\n\nvar _edaDragDropWayConfigurationModelProxy2 = _interopRequireDefault(_edaDragDropWayConfigurationModelProxy);\n\nvar _dragAndDropList = __webpack_require__(72);\n\nvar _dragAndDropList2 = _interopRequireDefault(_dragAndDropList);\n\nvar _pageslide = __webpack_require__(75);\n\nvar _pageslide2 = _interopRequireDefault(_pageslide);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen = __webpack_require__(77);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen2 = _interopRequireDefault(_edaDragDropWayEdaDragdropWayEasyFormGen);\n\nvar _edaDragDropWayTrustThis = __webpack_require__(84);\n\nvar _edaDragDropWayTrustThis2 = _interopRequireDefault(_edaDragDropWayTrustThis);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DRAG_DROP_WAY_MODULE_NAME = 'eda.easyformGen.dragDropWay';\n\nvar DRAG_DROP_MODULES_INJECT = [_edaDragDropWayCore2.default.name, _edaDragDropWayConfigurationModelProxy2.default.name, _edaDragDropWayTrustThis2.default.name, _edaDragDropWayLeftPanel2.default.name, _edaDragDropWayFormlyProxyFormFieldManage2.default.name, _edaDragDropWayDragdrop2.default.name, _edaDragDropWayEdaDragdropWayEasyFormGen2.default.name, _edaDragDropWayRightClick2.default.name, _dragAndDropList2.default.name, _pageslide2.default.name];\n\nvar mainModule = angular.module(DRAG_DROP_WAY_MODULE_NAME, DRAG_DROP_MODULES_INJECT).config(_edaDragDropWayDragDropConfig2.default).config(_edaDragDropWayFormlyConfig2.default).value(_edaDragDropWayDragDropConfig.EASY_FORM_DD_VERSION_NAME, _edaDragDropWayDragDropConfig.EASY_FORM_DD_VERSION_VALUE);\n\nexports.default = mainModule;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L21haW4uanM/M2E3OCJdLCJuYW1lcyI6WyJEUkFHX0RST1BfV0FZX01PRFVMRV9OQU1FIiwiRFJBR19EUk9QX01PRFVMRVNfSU5KRUNUIiwibmFtZSIsIm1haW5Nb2R1bGUiLCJhbmd1bGFyIiwibW9kdWxlIiwiY29uZmlnIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFJQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUE7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsNEJBQTRCLDZCQUFsQzs7QUFFQSxJQUFNQywyQkFBMkIsQ0FDL0IsNkJBQVdDLElBRG9CLEVBRS9CLGdEQUFrQkEsSUFGYSxFQUcvQixrQ0FBc0JBLElBSFMsRUFJL0Isa0NBQWdCQSxJQUplLEVBSy9CLG1EQUFrQkEsSUFMYSxFQU0vQixpQ0FBZUEsSUFOZ0IsRUFPL0Isa0RBQXVCQSxJQVBRLEVBUS9CLG1DQUFpQkEsSUFSYyxFQVMvQiwwQkFBc0JBLElBVFMsRUFVL0Isb0JBQWdCQSxJQVZlLENBQWpDOztBQWFBLElBQU1DLGFBQWFDLFFBQ0FDLE1BREEsQ0FDT0wseUJBRFAsRUFDa0NDLHdCQURsQyxFQUVBSyxNQUZBLHlDQUdBQSxNQUhBLHVDQUlBQyxLQUpBLG1IQUFuQjs7a0JBTWVKLFUiLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZm9ybWx5Q29uZmlnRnVuY3QgICAgICAgIGZyb20gJy4vY29uZmlnL2VkYURyYWdEcm9wV2F5LmZvcm1seUNvbmZpZy5jb25maWcnO1xuaW1wb3J0IGRyYWdEcm9wQ29uZmlnRnVudCwge1xuICBFQVNZX0ZPUk1fRERfVkVSU0lPTl9OQU1FLFxuICBFQVNZX0ZPUk1fRERfVkVSU0lPTl9WQUxVRVxufSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL2NvbmZpZy9lZGFEcmFnRHJvcFdheS5kcmFnRHJvcENvbmZpZy5jb25maWcnO1xuaW1wb3J0IGNvcmVNb2R1bGUgICAgICAgICAgICAgICBmcm9tICcuL2NvcmUvZWRhRHJhZ0Ryb3BXYXkuY29yZS5tb2R1bGUnO1xuaW1wb3J0IGxlZnRQYW5lbE1vZHVsZSAgICAgICAgICBmcm9tICcuL2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5tb2R1bGUnO1xuaW1wb3J0IGZvcm1seVByb3h5TW9kdWxlICAgICAgICBmcm9tICcuL2NvbXBvbmVudHMvZm9ybWx5UHJveHkvZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLm1vZHVsZSc7XG5pbXBvcnQgZHJhZ2Ryb3BNb2R1bGUgICAgICAgICAgIGZyb20gJy4vY29tcG9uZW50cy9kcmFnZHJvcC9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5tb2R1bGUnO1xuaW1wb3J0IHJpZ2h0Q2xpY2tNb2R1bGUgICAgICAgICBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uL3JpZ2h0Y2xpY2svZWRhRHJhZ0Ryb3BXYXkucmlnaHRDbGljay5tb2R1bGUnO1xuaW1wb3J0IGNvbmZpZ1Byb3h5TW9kdWxlICAgICAgICBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbk1vZGVsUHJveHkvZWRhRHJhZ0Ryb3BXYXkuY29uZmlndXJhdGlvbk1vZGVsUHJveHkubW9kdWxlJztcblxuaW1wb3J0IGRyYWdBbmREcm9wTGlzdE1vZHVsZSAgICBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uL2RyYWdBbmREcm9wTGlzdC9kcmFnQW5kRHJvcExpc3QubW9kdWxlJztcbmltcG9ydCBwYWdlU2xpZGVNb2R1bGUgICAgICAgICAgZnJvbSAnLi9jb21wb25lbnRzL2NvbW1vbi9wYWdlc2xpZGUvcGFnZXNsaWRlLm1vZHVsZSc7XG5cbmltcG9ydCBlYXN5Rm9ybURyYWdEcm9wTW9kdWxlICAgZnJvbSAnLi9jb21wb25lbnRzL2VkYURyYWdEcm9wV2F5RWFzeUZvcm1HZW4vZWRhRHJhZ0Ryb3BXYXkuZWRhRHJhZ2Ryb3BXYXlFYXN5Rm9ybUdlbi5tb2R1bGUnO1xuaW1wb3J0IHRydXN0VGhpc0ZpbHRlck1vZHVsZSAgICBmcm9tICcuL2NvbXBvbmVudHMvY29tbW9uL2VkYVRydXN0VGhpc0ZpbHRlci9lZGFEcmFnRHJvcFdheS50cnVzdFRoaXMubW9kdWxlJztcblxuY29uc3QgRFJBR19EUk9QX1dBWV9NT0RVTEVfTkFNRSA9ICdlZGEuZWFzeWZvcm1HZW4uZHJhZ0Ryb3BXYXknO1xuXG5jb25zdCBEUkFHX0RST1BfTU9EVUxFU19JTkpFQ1QgPSBbXG4gIGNvcmVNb2R1bGUubmFtZSxcbiAgY29uZmlnUHJveHlNb2R1bGUubmFtZSxcbiAgdHJ1c3RUaGlzRmlsdGVyTW9kdWxlLm5hbWUsXG4gIGxlZnRQYW5lbE1vZHVsZS5uYW1lLFxuICBmb3JtbHlQcm94eU1vZHVsZS5uYW1lLFxuICBkcmFnZHJvcE1vZHVsZS5uYW1lLFxuICBlYXN5Rm9ybURyYWdEcm9wTW9kdWxlLm5hbWUsXG4gIHJpZ2h0Q2xpY2tNb2R1bGUubmFtZSxcbiAgZHJhZ0FuZERyb3BMaXN0TW9kdWxlLm5hbWUsXG4gIHBhZ2VTbGlkZU1vZHVsZS5uYW1lXG5dO1xuXG5jb25zdCBtYWluTW9kdWxlID0gYW5ndWxhclxuICAgICAgICAgICAgICAgICAgLm1vZHVsZShEUkFHX0RST1BfV0FZX01PRFVMRV9OQU1FLCBEUkFHX0RST1BfTU9EVUxFU19JTkpFQ1QpXG4gICAgICAgICAgICAgICAgICAuY29uZmlnKGRyYWdEcm9wQ29uZmlnRnVudClcbiAgICAgICAgICAgICAgICAgIC5jb25maWcoZm9ybWx5Q29uZmlnRnVuY3QpXG4gICAgICAgICAgICAgICAgICAudmFsdWUoRUFTWV9GT1JNX0REX1ZFUlNJT05fTkFNRSwgRUFTWV9GT1JNX0REX1ZFUlNJT05fVkFMVUUpO1xuXG5leHBvcnQgZGVmYXVsdCBtYWluTW9kdWxlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9tYWluLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  76. /***/ },
  77. /* 11 */
  78. /***/ function(module, exports) {
  79. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction formlyConfig(formlyConfigProvider, EasyFormGenFormlyBindingModelsProvider, easyFormDragWayConfigProvider) {\n\n formlyConfigProvider.setType({\n name: 'blank',\n template: '<div></div>'\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'empty',\n name: 'no control',\n subtitle: 'no control',\n group: 'Blank',\n formlyType: 'blank',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n label: '<div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <div class=\"\">\\n </div>\\n </div>\\n </div>',\n control: 'empty',\n cssClass: 'col-xs-12'\n }, {\n addToGroupCtrl: 'blank'\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'Header',\n name: 'Header',\n subtitle: 'no control',\n group: 'Decoration',\n formlyType: 'header',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n label: ['<div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <div class=\"\">\\n <h2 class=\"text-center\">Header</h2>\\n <hr/>\\n </div>\\n </div>\\n </div>'].join(''),\n control: 'Header',\n cssClass: 'col-xs-12'\n }, {\n addToGroupCtrl: 'headers'\n });\n\n var subTitleTemplate = '\\n <div class=\"row\">\\n <div class=\"\">\\n <h4 class=\"text-center\">{{options.templateOptions.placeholder}}<h4>\\n <hr/>\\n </div>\\n </div>';\n\n formlyConfigProvider.setType({\n name: 'subTitle',\n template: subTitleTemplate\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'Subtitle',\n name: 'Subtitle',\n subtitle: 'no control',\n group: 'Decoration',\n formlyType: 'subTitle',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n 'label': '<div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <div class=\"\">\\n <h4 class=\"text-center\">SubTitle</h4>\\n <hr/>\\n </div>\\n </div>\\n </div>',\n 'control': 'Subtitle',\n 'cssClass': 'col-xs-12'\n }, {\n addToGroupCtrl: 'headers'\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'TextInput',\n name: 'Text input',\n subtitle: 'Text input',\n group: 'input',\n formlyType: 'input',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n\n /**\n * drag and drop text input (basic) control template\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n 'label': '<div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <label for=\"inputText\" class=\"control-label textControlLabel pull-left\">\\n title for text input<span class=\"textControlLabel ng-scope\">*</span>\\n </label>\\n <div class=\"\">\\n <input type=\"text\" disabled class=\"form-control fakeControl\" id=\"inputText\" placeholder=\"basic input\">\\n <p class=\"help-block pull-left\">Description</p>\\n </div>\\n </div>\\n </div>',\n 'control': 'TextInput',\n 'cssClass': 'col-xs-12'\n }, {\n addToGroupCtrl: 'inputs'\n });\n\n /**\n * Add text input (Password)\n *\n * note : formly template already exists\n * no need to create a custom one\n *\n * just declare in EasyFormGenFormlyBindingModelsProvider\n */\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'Password',\n name: 'Password',\n subtitle: 'Password',\n group: 'input',\n formlyType: 'input',\n formlySubtype: 'password',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n /**\n * drag and drop text input — password —control template\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n 'label': '<div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <label for=\"inputPass\" class=\"control-label textControlLabel ng-binding pull-left\">\\n title for password input<span class=\"textControlLabel ng-scope\">*</span>\\n </label>\\n <div class=\"\">\\n <input type=\"password\" disabled class=\"form-control fakeControl\" id=\"inputPass\" placeholder=\"password input\">\\n <p class=\"help-block ng-binding pull-left\">Description</p>\\n </div>\\n </div>\\n </div>',\n 'control': 'Password',\n 'cssClass': 'col-xs-12'\n }, {\n addToGroupCtrl: 'inputs'\n });\n\n /**\n * Add angular UI date picker\n *\n * thx Kent C. Dodds for formly config template (since it was a huge config)\n */\n var attributes = ['date-disabled', 'custom-class', 'show-weeks', 'starting-day', 'init-date', 'min-mode', 'max-mode', 'format-day', 'format-month', 'format-year', 'format-day-header', 'format-day-title', 'format-month-title', 'year-range', 'shortcut-propagation', 'uib-datepicker-popup', 'show-button-bar', 'current-text', 'clear-text', 'close-text', 'close-on-date-selection', 'datepicker-append-to-body'];\n\n var bindings = ['datepicker-mode', 'min-date', 'max-date'];\n\n var ngModelAttrs = {};\n\n angular.forEach(attributes, function (attr) {\n return ngModelAttrs[camelize(attr)] = { attribute: attr };\n });\n angular.forEach(bindings, function (binding) {\n return ngModelAttrs[camelize(binding)] = { bound: binding };\n });\n\n function camelize(string) {\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n // Ensure 1st char is always lowercase\n return string.replace(/^([A-Z])/, function (match, chr) {\n return chr ? chr.toLowerCase() : '';\n });\n }\n\n var angularUIDatePickerTemplate = '\\n <input\\n id=\"{{id}}\"\\n class=\"form-control\"\\n ng-click=\"open($event)\"\\n uib-datepicker-popup\\n ng-model=\"model[options.key || index]\" is-open=\"to.isOpen\"\\n ng-click=\"to.isOpen = true\"\\n datepicker-options=\"to.datepickerOptions\"/>';\n\n formlyConfigProvider.setType({\n name: 'datepicker',\n template: angularUIDatePickerTemplate,\n wrapper: ['bootstrapLabel', 'bootstrapHasError'],\n controller: ['$scope', function ($scope) {\n $scope.open = function ($event) {\n $event.preventDefault();\n $event.stopPropagation();\n $scope.opened = true;\n };\n }],\n defaultOptions: {\n ngModelAttrs: ngModelAttrs,\n templateOptions: {\n addonLeft: {\n class: 'glyphicon glyphicon-calendar',\n onClick: function onClick(options) {\n return options.templateOptions.isOpen = !options.templateOptions.isOpen;\n }\n },\n onFocus: function onFocus($viewValue, $modelValue, scope) {\n return scope.to.isOpen = !scope.to.isOpen;\n },\n datepickerOptions: {}\n }\n }\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'Date',\n name: 'Date',\n subtitle: 'Date',\n group: 'input',\n formlyType: 'datepicker',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: [],\n datepickerPopup: 'dd-MMMM-yyyy'\n });\n /**\n * drag and drop text input — date — control template (using angular UI datepicker)\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n label: '\\n <div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <label for=\"inputDate\" class=\"control-label textControlLabel ng-binding pull-left\">\\n title for date input<span class=\"textControlLabel ng-scope\">*</span>\\n </label>\\n <div class=\"col-xs-12 col-sm-12 col-md-12 demoddDatepicker\">\\n\\t\\t\\t\\t\\t<div class=\"input-group\">\\n \\t\\t\\t\\t\\t<span class=\"input-group-addon\"><span class=\"glyphicon glyphicon-calendar\"></span></span>\\n \\t\\t\\t\\t\\t<input type=\"text\" disabled class=\"form-control fakeControl\">\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n <p class=\"help-block pull-left\">description</p>\\n </div>\\n </div>',\n control: 'Date',\n cssClass: 'col-xs-12'\n }, {\n addToGroupCtrl: 'inputs'\n });\n\n /**\n * Add textarea\n *\n * note : formly template already exists\n * no need to create a custom one\n *\n * just declare in EasyFormGenFormlyBindingModelsProvider\n */\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'Texarea',\n name: 'Textarea',\n subtitle: 'Textarea',\n group: 'Textarea',\n formlyType: 'textarea',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n /**\n * drag and drop textarea control template\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n 'label': '\\n <div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <label for=\"textArea\" class=\"control-label\\n \\t\\t\\t\\t\\t\\t\\ttextControlLabel pull-left\">title for textarea <span class=\"textControlLabel\">*</span></label>\\n <div class=\"\">\\n <textarea disabled class=\"form-control dragItemtextarea fakeControl\" ng-model=\"model[options.key]\" rows=\"1\" id=\"textArea\"></textarea>\\n <p class=\"help-block pull-left\">description</p>\\n </div>\\n </div>\\n </div>',\n 'control': 'Texarea',\n 'cssClass': 'col-xs-12'\n }, {\n addToGroupCtrl: 'textareas'\n });\n\n /**\n * Add rich text editor control (using textAngular)\n *\n */\n var richTexEditorTemplate = '\\n <text-angular name=\"{{id}}\"\\n class=\"richTextAngular\"\\n ng-model=\"model[options.key || index]\">\\n </text-angular>';\n\n formlyConfigProvider.setType({\n name: 'richEditor',\n template: richTexEditorTemplate\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'RichTextEditor',\n name: 'RichTextEditor',\n subtitle: 'RichTextEditor',\n group: 'Textarea',\n formlyType: 'richEditor',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n /**\n * drag and drop rich text editor control template (using textAngular)\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n label: '\\n <div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <label for=\"textArea\" class=\"control-label\\n \\t\\t\\t\\t\\t\\t\\ttextControlLabel pull-left\">title for rich text editor <span class=\"textControlLabel\">*</span></label>\\n <div class=\"\">\\n <textarea disabled class=\"form-control dragItemtextarea fakeControl\" ng-model=\"model[options.key]\" rows=\"1\" id=\"textArea\"></textarea>\\n <p class=\"help-block\">description</p>\\n </div>\\n </div>\\n </div>',\n control: 'RichTextEditor',\n cssClass: 'col-xs-12'\n }, {\n addToGroupCtrl: 'textareas'\n });\n\n /**\n * Add radio\n *\n * note : formly template already exists\n * no need to create a custom one\n *\n * just declare in EasyFormGenFormlyBindingModelsProvider\n */\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'Radio',\n name: 'Radio',\n subtitle: 'Radio',\n options: [],\n group: 'Radio',\n formlyType: 'radio',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n /**\n * drag and drop radio control template (using textAngular)\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n 'label': '\\n <div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <label for=\"vertRadio\" class=\"control-label textControlLabel pull-left\">title for radio <span class=\"textControlLabel\">*</span></label>\\n <div class=\"interligne\"></div>\\n <div class=\"pull-left\">\\n <div class=\"radio\">\\n <label class=\"fakeCheck\">\\n <input type=\"radio\" disabled name=\"optionsRadios\" class=\"fakeCheck\" id=\"optionsRadio-0\" value=\"verticalRadio0\" checked=\"\">\\n option1\\n </label>\\n </div>\\n <div class=\"radio\">\\n <label class=\"fakeCheck\">\\n <input type=\"radio\" disabled name=\"optionsRadios\" class=\"fakeCheck\" id=\"optionsRadio-1\" value=\"verticalRadio1\" checked=\"\">\\n option2\\n </label>\\n </div>\\n <p class=\"help-block pull-left\">description</p>\\n </div>\\n </div>\\n </div>',\n 'control': 'Radio',\n 'cssClass': 'col-xs-12'\n }, {\n addToGroupCtrl: 'radios'\n });\n\n /**\n * Add checkbox\n *\n * note : formly template already exists\n * no need to create a custom one\n *\n * just declare in EasyFormGenFormlyBindingModelsProvider\n */\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'Checkbox',\n name: 'Checkbox',\n subtitle: 'Checkbox',\n group: 'Checkbox',\n formlyType: 'checkbox',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n /**\n * drag and drop checkbox control template (using textAngular)\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n label: '\\n <div class=\"col-md-12\">\\n <div class=\"checkbox\">\\n <label class=\"fakeCheck\">\\n <input type=\"checkbox\" disabled class=\"fakeCheck\" id=\"checkBox\">\\n \\t\\t<span class=\"blackText ng-binding\">label for checkbox </span>\\n \\t\\t<span class=\"textControlLabel ng-scope\">*</span>\\n </label>\\n </div>\\n <p class=\"help-block ng-binding\">description</p>\\n </div>',\n control: 'Checkbox',\n cssClass: 'col-xs-12'\n }, {\n addToGroupCtrl: 'checkboxes'\n });\n\n /**\n * Add basic Select control\n *\n * using nya-bs-select\n */\n var basicSelectTemplate = '\\n <ol class=\"nya-bs-select col-sm-12 col-xs-12 col-md-12 col-lg12\"\\n \\t\\tng-model=\"model[options.key || index]\"\\n \\t\\tid=\"{{id}}\"\\n \\t\\tdisabled=\"options.templateOptions.options.length === 0\">\\n <li class=\"nya-bs-option\" nya-bs-option=\"option in options.templateOptions.options\">\\n <a>{{option.name}}</a>\\n </li>\\n </ol> ';\n\n formlyConfigProvider.setType({\n name: 'basicSelect',\n template: basicSelectTemplate\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'BasicSelect',\n name: 'Basic select',\n subtitle: 'Basic select',\n options: [],\n group: 'Select',\n formlyType: 'basicSelect',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n\n /**\n * drag and drop basic select control template (using textAngular)\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n label: '\\n <div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 selectfordemo\">\\n\\n <ol class=\"nya-bs-select col-xs-12 col-sm-12 col-md-12 col-lg-12 ng-valid btn-group ng-dirty ng-valid-parse ng-touched\"\\n \\tng-model=\"fakeModelNyaSelectBasic\"\\n \\tdata-live-search=\"false\">\\n\\n <button class=\"btn btn-default dropdown-toggle\" disabled type=\"button\">\\n \\t\\t <span class=\"pull-left filter-option\">\\n \\t\\t\\t <span class=\"ng-binding\">Basic select</span>\\n \\t\\t</span>\\n \\t\\t&nbsp;<span class=\"caret\"></span>\\n </button>\\n\\n </div>\\n </div>',\n control: 'BasicSelect',\n cssClass: 'col-xs-12'\n }, {\n addToGroupCtrl: 'selects'\n });\n\n /**\n * Add Grouped Select control\n *\n * using nya-bs-select\n */\n var groupedSelectTemplate = '\\n <ol class=\"nya-bs-select col-sm-12 col-xs-12 col-md-12 col-lg12\"\\n\\t\\t ng-model=\"model[options.key || index]\"\\n data-live-search=\"true\"\\n disabled=\"options.templateOptions.options.length === 0\">\\n <li nya-bs-option=\"option in options.templateOptions.options group by option.group\">\\n <span class=\"dropdown-header\">{{$group}}</span>\\n <a>\\n <span>{{option.name}}</span>\\n <span class=\"glyphicon glyphicon-ok check-mark\"></span>\\n </a>\\n </li>\\n </ol>';\n\n formlyConfigProvider.setType({\n name: 'groupedSelect',\n template: groupedSelectTemplate\n });\n\n EasyFormGenFormlyBindingModelsProvider.addEasyFormControlToList({\n id: 'GroupedSelect',\n name: 'Grouped Select',\n subtitle: 'Grouped Select',\n options: [],\n group: 'Select',\n formlyType: 'groupedSelect',\n formlySubtype: '',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyOptions: []\n });\n /**\n * drag and drop grouped select control template (using textAngular)\n *\n *\n * @PARAM 1 : control template object (drag an drop)\n * @PARAM 2 : object to indicates in which group of control it will be inserted\n * \t\t\t\t\t(related to _dragDropConfigModel.containerConfig.decoration in dragDropConfig provider)\n */\n easyFormDragWayConfigProvider.addControlToDragDropPresentationModel({\n label: '\\n <div class=\"col-md-12\">\\n <div class=\"form-group\">\\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 selectfordemo\">\\n <ol class=\"nya-bs-select col-xs-12 col-sm-12 col-md-12 col-lg-12 ng-valid btn-group ng-dirty ng-valid-parse ng-touched\"\\n \\tng-model=\"fakeModelNyaSelectBasic\"\\n \\tdata-live-search=\"false\">\\n <button class=\"btn btn-default dropdown-toggle\" disabled type=\"button\">\\n \\t\\t <span class=\"pull-left filter-option\">\\n \\t\\t\\t <span class=\"ng-binding\">Grouped select</span>\\n \\t\\t</span>\\n \\t\\t&nbsp;<span class=\"caret\"></span>\\n </button>\\n </div>\\n </div>',\n control: 'GroupedSelect',\n cssClass: 'col-xs-12'\n }, {\n addToGroupCtrl: 'selects'\n });\n}\n\nformlyConfig.$inject = ['formlyConfigProvider', 'EasyFormGenFormlyBindingModelsProvider', 'easyFormDragWayConfigProvider'];\n\nexports.default = formlyConfig;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbmZpZy9lZGFEcmFnRHJvcFdheS5mb3JtbHlDb25maWcuY29uZmlnLmpzPzVmODIiXSwibmFtZXMiOlsiZm9ybWx5Q29uZmlnIiwiZm9ybWx5Q29uZmlnUHJvdmlkZXIiLCJFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlciIsImVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyIiwic2V0VHlwZSIsIm5hbWUiLCJ0ZW1wbGF0ZSIsImFkZEVhc3lGb3JtQ29udHJvbFRvTGlzdCIsImlkIiwic3VidGl0bGUiLCJncm91cCIsImZvcm1seVR5cGUiLCJmb3JtbHlTdWJ0eXBlIiwiZm9ybWx5TGFiZWwiLCJmb3JtbHlSZXF1aXJlZCIsImZvcm1seURlc2NpcHRpb24iLCJmb3JtbHlPcHRpb25zIiwiYWRkQ29udHJvbFRvRHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCIsImxhYmVsIiwiY29udHJvbCIsImNzc0NsYXNzIiwiYWRkVG9Hcm91cEN0cmwiLCJqb2luIiwic3ViVGl0bGVUZW1wbGF0ZSIsImF0dHJpYnV0ZXMiLCJiaW5kaW5ncyIsIm5nTW9kZWxBdHRycyIsImFuZ3VsYXIiLCJmb3JFYWNoIiwiYXR0ciIsImNhbWVsaXplIiwiYXR0cmlidXRlIiwiYmluZGluZyIsImJvdW5kIiwic3RyaW5nIiwicmVwbGFjZSIsIm1hdGNoIiwiY2hyIiwidG9VcHBlckNhc2UiLCJ0b0xvd2VyQ2FzZSIsImFuZ3VsYXJVSURhdGVQaWNrZXJUZW1wbGF0ZSIsIndyYXBwZXIiLCJjb250cm9sbGVyIiwiJHNjb3BlIiwib3BlbiIsIiRldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwib3BlbmVkIiwiZGVmYXVsdE9wdGlvbnMiLCJ0ZW1wbGF0ZU9wdGlvbnMiLCJhZGRvbkxlZnQiLCJjbGFzcyIsIm9uQ2xpY2siLCJvcHRpb25zIiwiaXNPcGVuIiwib25Gb2N1cyIsIiR2aWV3VmFsdWUiLCIkbW9kZWxWYWx1ZSIsInNjb3BlIiwidG8iLCJkYXRlcGlja2VyT3B0aW9ucyIsImRhdGVwaWNrZXJQb3B1cCIsInJpY2hUZXhFZGl0b3JUZW1wbGF0ZSIsImJhc2ljU2VsZWN0VGVtcGxhdGUiLCJncm91cGVkU2VsZWN0VGVtcGxhdGUiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLFNBQVNBLFlBQVQsQ0FBc0JDLG9CQUF0QixFQUE0Q0Msc0NBQTVDLEVBQW9GQyw2QkFBcEYsRUFBbUg7O0FBRWpIRix1QkFBcUJHLE9BQXJCLENBQTZCO0FBQzNCQyxVQUFVLE9BRGlCO0FBRTNCQyxjQUFZO0FBRmUsR0FBN0I7O0FBS0FKLHlDQUF1Q0ssd0JBQXZDLENBQWdFO0FBQzlEQyxRQUFhLE9BRGlEO0FBRTlESCxVQUFjLFlBRmdEO0FBRzlESSxjQUFnQixZQUg4QztBQUk5REMsV0FBYyxPQUpnRDtBQUs5REMsZ0JBQWlCLE9BTDZDO0FBTTlEQyxtQkFBa0IsRUFONEM7QUFPOURDLGlCQUFpQixFQVA2QztBQVE5REMsb0JBQW1CLEtBUjJDO0FBUzlEQyxzQkFBb0IsRUFUMEM7QUFVOURDLG1CQUFrQjtBQVY0QyxHQUFoRTs7QUFhQWIsZ0NBQThCYyxxQ0FBOUIsQ0FBb0U7QUFDbEVDLHdKQURrRTtBQVFsRUMsYUFBVSxPQVJ3RDtBQVNsRUMsY0FBVTtBQVR3RCxHQUFwRSxFQVdFO0FBQ0VDLG9CQUFpQjtBQURuQixHQVhGOztBQWlCQW5CLHlDQUF1Q0ssd0JBQXZDLENBQWdFO0FBQzlEQyxRQUFhLFFBRGlEO0FBRTlESCxVQUFjLFFBRmdEO0FBRzlESSxjQUFnQixZQUg4QztBQUk5REMsV0FBYyxZQUpnRDtBQUs5REMsZ0JBQWlCLFFBTDZDO0FBTTlEQyxtQkFBa0IsRUFONEM7QUFPOURDLGlCQUFpQixFQVA2QztBQVE5REMsb0JBQW1CLEtBUjJDO0FBUzlEQyxzQkFBb0IsRUFUMEM7QUFVOURDLG1CQUFrQjtBQVY0QyxHQUFoRTs7QUFjQWIsZ0NBQThCYyxxQ0FBOUIs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REMsUUFBYSxlQURpRDtBQUU5REgsVUFBYyxnQkFGZ0Q7QUFHOURJLGNBQWdCLGdCQUg4QztBQUk5RDZDLGFBQWUsRUFKK0M7QUFLOUQ1QyxXQUFjLFFBTGdEO0FBTTlEQyxnQkFBaUIsZUFONkM7QUFPOURDLG1CQUFrQixFQVA0QztBQVE5REMsaUJBQWlCLEVBUjZDO0FBUzlEQyxvQkFBbUIsS0FUMkM7QUFVOURDLHNCQUFvQixFQVYwQztBQVc5REMsbUJBQWtCO0FBWDRDLEdBQWhFO0FBYUE7Ozs7Ozs7O0FBUUFiLGdDQUE4QmMscUNBQTlCLENBQW9FO0FBQ2xFQyx3cEJBRGtFO0FBZ0JsRUMsYUFBVSxlQWhCd0Q7QUFpQmxFQyxjQUFVO0FBakJ3RCxHQUFwRSxFQW1CQTtBQUNFQyxvQkFBaUI7QUFEbkIsR0FuQkE7QUF3QkQ7O0FBRURyQixhQUFha0UsT0FBYixHQUF1QixDQUNyQixzQkFEcUIsRUFFckIsd0NBRnFCLEVBR3JCLCtCQUhxQixDQUF2Qjs7a0JBTWVsRSxZIiwiZmlsZSI6IjExLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZm9ybWx5Q29uZmlnKGZvcm1seUNvbmZpZ1Byb3ZpZGVyLCBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlciwgZWFzeUZvcm1EcmFnV2F5Q29uZmlnUHJvdmlkZXIpIHtcblxuICBmb3JtbHlDb25maWdQcm92aWRlci5zZXRUeXBlKHtcbiAgICBuYW1lICBcdFx0OiAnYmxhbmsnLFxuICAgIHRlbXBsYXRlIFx0OiAnPGRpdj48L2Rpdj4nXG4gIH0pO1xuXG4gIEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVsc1Byb3ZpZGVyLmFkZEVhc3lGb3JtQ29udHJvbFRvTGlzdCh7XG4gICAgaWQgXHRcdFx0XHRcdFx0XHRcdDogJ2VtcHR5JyxcbiAgICBuYW1lIFx0XHRcdFx0XHRcdFx0OiAnbm8gY29udHJvbCcsXG4gICAgc3VidGl0bGUgXHRcdFx0XHRcdDogJ25vIGNvbnRyb2wnLFxuICAgIGdyb3VwIFx0XHRcdFx0XHRcdDogJ0JsYW5rJyxcbiAgICBmb3JtbHlUeXBlIFx0XHRcdFx0OiAnYmxhbmsnLFxuICAgIGZvcm1seVN1YnR5cGUgXHRcdDogJycsXG4gICAgZm9ybWx5TGFiZWwgXHRcdFx0OiAnJyxcbiAgICBmb3JtbHlSZXF1aXJlZCBcdFx0OiBmYWxzZSxcbiAgICBmb3JtbHlEZXNjaXB0aW9uIFx0OiAnJyxcbiAgICBmb3JtbHlPcHRpb25zIFx0XHQ6IFtdXG4gIH0pO1xuXG4gIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyLmFkZENvbnRyb2xUb0RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwoe1xuICAgIGxhYmVsIFx0OlxuICAgICAgYDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5gLFxuICAgIGNvbnRyb2wgOiAnZW1wdHknLFxuICAgIGNzc0NsYXNzOiAnY29sLXhzLTEyJ1xuICAgIH0sXG4gICAge1xuICAgICAgYWRkVG9Hcm91cEN0cmwgOiAnYmxhbmsnXG4gICAgfSk7XG5cblxuXG4gIEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVsc1Byb3ZpZGVyLmFkZEVhc3lGb3JtQ29udHJvbFRvTGlzdCh7XG4gICAgaWQgXHRcdFx0XHRcdFx0XHRcdDogJ0hlYWRlcicsXG4gICAgbmFtZSBcdFx0XHRcdFx0XHRcdDogJ0hlYWRlcicsXG4gICAgc3VidGl0bGUgXHRcdFx0XHRcdDogJ25vIGNvbnRyb2wnLFxuICAgIGdyb3VwIFx0XHRcdFx0XHRcdDogJ0RlY29yYXRpb24nLFxuICAgIGZvcm1seVR5cGUgXHRcdFx0XHQ6ICdoZWFkZXInLFxuICAgIGZvcm1seVN1YnR5cGUgXHRcdDogJycsXG4gICAgZm9ybWx5TGFiZWwgXHRcdFx0OiAnJyxcbiAgICBmb3JtbHlSZXF1aXJlZCBcdFx0OiBmYWxzZSxcbiAgICBmb3JtbHlEZXNjaXB0aW9uIFx0OiAnJyxcbiAgICBmb3JtbHlPcHRpb25zIFx0XHQ6IFtdXG4gIH0pO1xuXG5cbiAgZWFzeUZvcm1EcmFnV2F5Q29uZmlnUHJvdmlkZXIuYWRkQ29udHJvbFRvRHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCh7XG4gICAgbGFiZWwgXHQ6IFtcbiAgICAgIGA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5IZWFkZXI8L2gyPlxuICAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5gXG4gICAgICBdLmpvaW4oJycpLFxuICAgIGNvbnRyb2wgOiAnSGVhZGVyJyxcbiAgICBjc3NDbGFzczogJ2NvbC14cy0xMidcbiAgICB9LFxuICAgIHtcbiAgICAgIGFkZFRvR3JvdXBDdHJsIDogJ2hlYWRlcnMnXG4gICAgfSk7XG5cblxuICBjb25zdCBzdWJUaXRsZVRlbXBsYXRlID0gYFxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1jZW50ZXJcIj57e29wdGlvbnMudGVtcGxhdGVPcHRpb25zLnBsYWNlaG9sZGVyfX08aDQ+XG4gICAgICAgIDxoci8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5gO1xuXG4gIGZvcm1seUNvbmZpZ1Byb3ZpZGVyLnNldFR5cGUoe1xuICAgIG5hbWUgXHRcdFx0OiAnc3ViVGl0bGUnLFxuICAgIHRlbXBsYXRlIFx0OiBzdWJUaXRsZVRlbXBsYXRlXG4gIH0pO1xuXG4gIEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVsc1Byb3ZpZGVyLmFkZEVhc3lGb3JtQ29udHJvbFRvTGlzdCh7XG4gICAgaWQgXHRcdFx0XHRcdFx0XHRcdDogJ1N1YnRpdGxlJyxcbiAgICBuYW1lIFx0XHRcdFx0XHRcdFx0OiAnU3VidGl0bGUnLFxuICAgIHN1YnRpdGxlIFx0XHRcdFx0XHQ6ICdubyBjb250cm9sJyxcbiAgICBncm91cCBcdFx0XHRcdFx0XHQ6ICdEZWNvcmF0aW9uJyxcbiAgICBmb3JtbHlUeXBlIFx0XHRcdFx0OiAnc3ViVGl0bGUnLFxuICAgIGZvcm1seVN1YnR5cGUgXHRcdDogJycsXG4gICAgZm9ybWx5TGFiZWwgXHRcdFx0OiAnJyxcbiAgICBmb3JtbHlSZXF1aXJlZCBcdFx0OiBmYWxzZSxcbiAgICBmb3JtbHlEZXNjaXB0aW9uIFx0OiAnJyxcbiAgICBmb3JtbHlPcHRpb25zIFx0XHQ6IFtdXG4gIH0pO1xuXG4gIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyLmFkZENvbnRyb2xUb0RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwoe1xuICAgICdsYWJlbCcgXHQ6XG4gICAgICBgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtY2VudGVyXCI+U3ViVGl0bGU8L2g0PlxuICAgICAgICAgICAgICA8aHIvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5gLFxuICAgICdjb250cm9sJ1x0OiAnU3VidGl0bGUnLFxuICAgICdjc3NDbGFzcyc6ICdjb2wteHMtMTInXG4gICAgfSxcbiAgICB7XG4gICAgICBhZGRUb0dyb3VwQ3RybCA6ICdoZWFkZXJzJ1xuICAgIH0pO1xuXG4gIEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVsc1Byb3ZpZGVyLmFkZEVhc3lGb3JtQ29udHJvbFRvTGlzdCh7XG4gICAgaWQgXHRcdFx0XHRcdFx0XHRcdDogJ1RleHRJbnB1dCcsXG4gICAgbmFtZSBcdFx0XHRcdFx0XHRcdDogJ1RleHQgaW5wdXQnLFxuICAgIHN1YnRpdGxlIFx0XHRcdFx0XHQ6ICdUZXh0IGlucHV0JyxcbiAgICBncm91cCBcdFx0XHRcdFx0XHQ6ICdpbnB1dCcsXG4gICAgZm9ybWx5VHlwZSBcdFx0XHRcdDogJ2lucHV0JyxcbiAgICBmb3JtbHlTdWJ0eXBlIFx0XHQ6ICcnLFxuICAgIGZvcm1seUxhYmVsIFx0XHRcdDogJycsXG4gICAgZm9ybWx5UmVxdWlyZWQgXHRcdDogZmFsc2UsXG4gICAgZm9ybWx5RGVzY2lwdGlvbiBcdDogJycsXG4gICAgZm9ybWx5T3B0aW9ucyBcdFx0OiBbXVxuICB9KTtcblxuXG4gIC8qKlxuICAgKiBkcmFnIGFuZCBkcm9wIHRleHQgaW5wdXQgKGJhc2ljKSBjb250cm9sIHRlbXBsYXRlXG4gICAqXG4gICAgKlxuICAgICogQFBBUkFNIDEgOiBjb250cm9sIHRlbXBsYXRlIG9iamVjdCAoZHJhZyBhbiBkcm9wKVxuICAgICogQFBBUkFNIDIgOiBvYmplY3QgdG8gaW5kaWNhdGVzIGluIHdoaWNoIGdyb3VwIG9mIGNvbnRyb2wgaXQgd2lsbCBiZSBpbnNlcnRlZFxuICAgICogIFx0XHRcdFx0XHQocmVsYXRlZCB0byBfZHJhZ0Ryb3BDb25maWdNb2RlbC5jb250YWluZXJDb25maWcuZGVjb3JhdGlvbiBpbiBkcmFnRHJvcENvbmZpZyBwcm92aWRlcilcbiAgICAqL1xuICBlYXN5Rm9ybURyYWdXYXlDb25maWdQcm92aWRlci5hZGRDb250cm9sVG9EcmFnRHJvcFByZXNlbnRhdGlvbk1vZGVsKHtcbiAgICAgICdsYWJlbCcgXHQ6XG4gICAgICAgIGA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnB1dFRleHRcIiBjbGFzcz1cImNvbnRyb2wtbGFiZWwgdGV4dENvbnRyb2xMYWJlbCBwdWxsLWxlZnRcIj5cbiAgICAgICAgICAgICAgdGl0bGUgZm9yIHRleHQgaW5wdXQ8c3BhbiBjbGFzcz1cInRleHRDb250cm9sTGFiZWwgbmctc2NvcGVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZGlzYWJsZWQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmFrZUNvbnRyb2xcIiBpZD1cImlucHV0VGV4dFwiIHBsYWNlaG9sZGVyPVwiYmFzaWMgaW5wdXRcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJoZWxwLWJsb2NrIHB1bGwtbGVmdFwiPkRlc2NyaXB0aW9uPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PmAsXG4gICAgICAnY29udHJvbCdcdDogJ1RleHRJbnB1dCcsXG4gICAgICAnY3NzQ2xhc3MnOiAnY29sLXhzLTEyJ1xuICAgIH0sXG4gICAge1xuICAgICAgYWRkVG9Hcm91cEN0cmwgOiAnaW5wdXRzJ1xuICAgIH1cbiAgKTtcblxuICAvKipcbiAgICogQWRkIHRleHQgaW5wdXQgKFBhc3N3b3JkKVxuICAgKlxuICAgICogbm90ZSA6IGZvcm1seSB0ZW1wbGF0ZSBhbHJlYWR5IGV4aXN0c1xuICAgICogbm8gbmVlZCB0byBjcmVhdGUgYSBjdXN0b20gb25lXG4gICAgKlxuICAgICoganVzdCBkZWNsYXJlIGluIEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVsc1Byb3ZpZGVyXG4gICAgKi9cbiAgRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzUHJvdmlkZXIuYWRkRWFzeUZvcm1Db250cm9sVG9MaXN0KHtcbiAgICAgIGlkIFx0XHRcdFx0XHRcdFx0XHQ6ICdQYXNzd29yZCcsXG4gICAgICBuYW1lIFx0XHRcdFx0XHRcdFx0OiAnUGFzc3dvcmQnLFxuICAgICAgc3VidGl0bGUgXHRcdFx0XHRcdDogJ1Bhc3N3b3JkJyxcbiAgICAgIGdyb3VwIFx0XHRcdFx0XHRcdDogJ2lucHV0JyxcbiAgICAgIGZvcm1seVR5cGUgXHRcdFx0XHQ6ICdpbnB1dCcsXG4gICAgICBmb3JtbHlTdWJ0eXBlIFx0XHQ6ICdwYXNzd29yZCcsXG4gICAgICBmb3JtbHlMYWJlbCBcdFx0XHQ6ICcnLFxuICAgICAgZm9ybWx5UmVxdWlyZWQgXHRcdDogZmFsc2UsXG4gICAgICBmb3JtbHlEZXNjaXB0aW9uIFx0OiAnJyxcbiAgICAgIGZvcm1seU9wdGlvbnMgXHRcdDogW11cbiAgICB9XG4gICk7XG4gIC8qKlxuICAgKiBkcmFnIGFuZCBkcm9wIHRleHQgaW5wdXQg4oCUIHBhc3N3b3JkIOKAlGNvbnRyb2wgdGVtcGxhdGVcbiAgICpcbiAgICAqXG4gICAgKiBAUEFSQU0gMSA6IGNvbnRyb2wgdGVtcGxhdGUgb2JqZWN0IChkcmFnIGFuIGRyb3ApXG4gICAgKiBAUEFSQU0gMiA6IG9iamVjdCB0byBpbmRpY2F0ZXMgaW4gd2hpY2ggZ3JvdXAgb2YgY29udHJvbCBpdCB3aWxsIGJlIGluc2VydGVkXG4gICAgKiAgXHRcdFx0XHRcdChyZWxhdGVkIHRvIF9kcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uIGluIGRyYWdEcm9wQ29uZmlnIHByb3ZpZGVyKVxuICAgICovXG4gIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyLmFkZENvbnRyb2xUb0RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwoe1xuICAgICAgJ2xhYmVsJyBcdDpcbiAgICAgICAgYDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlucHV0UGFzc1wiIGNsYXNzPVwiY29udHJvbC1sYWJlbCB0ZXh0Q29udHJvbExhYmVsIG5nLWJpbmRpbmcgcHVsbC1sZWZ0XCI+XG4gICAgICAgICAgICB0aXRsZSBmb3IgcGFzc3dvcmQgaW5wdXQ8c3BhbiBjbGFzcz1cInRleHRDb250cm9sTGFiZWwgbmctc2NvcGVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGRpc2FibGVkIGNsYXNzPVwiZm9ybS1jb250cm9sIGZha2VDb250cm9sXCIgaWQ9XCJpbnB1dFBhc3NcIiBwbGFjZWhvbGRlcj1cInBhc3N3b3JkIGlucHV0XCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiaGVscC1ibG9jayBuZy1iaW5kaW5nIHB1bGwtbGVmdFwiPkRlc2NyaXB0aW9uPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PmAsXG4gICAgICAnY29udHJvbCdcdDogJ1Bhc3N3b3JkJyxcbiAgICAgICdjc3NDbGFzcyc6ICdjb2wteHMtMTInXG4gICAgfSxcbiAgICB7XG4gICAgICBhZGRUb0dyb3VwQ3RybCA6ICdpbnB1dHMnXG4gICAgfVxuICApO1xuXG4gIC8qKlxuICAgKiBBZGQgYW5ndWxhciBVSSBkYXRlIHBpY2tlclxuICAgKlxuICAgICogdGh4IEtlbnQgQy4gRG9kZHMgZm9yIGZvcm1seSBjb25maWcgdGVtcGxhdGUgKHNpbmNlIGl0IHdhcyBhIGh1Z2UgY29uZmlnKVxuICAgICovXG4gIGNvbnN0IGF0dHJpYnV0ZXMgPVx0W1xuICAgICdkYXRlLWRpc2FibGVkJyxcbiAgICAnY3VzdG9tLWNsYXNzJyxcbiAgICAnc2hvdy13ZWVrcycsXG4gICAgJ3N0YXJ0aW5nLWRheScsXG4gICAgJ2luaXQtZGF0ZScsXG4gICAgJ21pbi1tb2RlJyxcbiAgICAnbWF4LW1vZGUnLFxuICAgICdmb3JtYXQtZGF5JyxcbiAgICAnZm9ybWF0LW1vbnRoJyxcbiAgICAnZm9ybWF0LXllYXInLFxuICAgICdmb3JtYXQtZGF5LWhlYWRlcicsXG4gICAgJ2Zvcm1hdC1kYXktdGl0bGUnLFxuICAgICdmb3JtYXQtbW9udGgtdGl0bGUnLFxuICAgICd5ZWFyLXJhbmdlJyxcbiAgICAnc2hvcnRjdXQtcHJvcGFnYXRpb24nLFxuICAgICd1aWItZGF0ZXBpY2tlci1wb3B1cCcsXG4gICAgJ3Nob3ctYnV0dG9uLWJhcicsXG4gICAgJ2N1cnJlbnQtdGV4dCcsXG4gICAgJ2NsZWFyLXRleHQnLFxuICAgICdjbG9zZS10ZXh0JyxcbiAgICAnY2xvc2Utb24tZGF0ZS1zZWxlY3Rpb24nLFxuICAgICdkYXRlcGlja2VyLWFwcGVuZC10by1ib2R5J1xuICBdO1xuXG4gIGNvbnN0IGJpbmRpbmdzID1cdFtcbiAgICAnZGF0ZXBpY2tlci1tb2RlJyxcbiAgICAnbWluLWRhdGUnLFxuICAgICdtYXgtZGF0ZSdcbiAgXTtcblxuICBsZXQgbmdNb2RlbEF0dHJzID0ge307XG5cbiAgYW5ndWxhci5mb3JFYWNoKGF0dHJpYnV0ZXMsIChhdHRyKSA9PiBuZ01vZGVsQXR0cnNbY2FtZWxpemUoYXR0cildID0ge2F0dHJpYnV0ZTogYXR0cn0pO1xuICBhbmd1bGFyLmZvckVhY2goYmluZGluZ3MsIChiaW5kaW5nKSA9PiBuZ01vZGVsQXR0cnNbY2FtZWxpemUoYmluZGluZyldID0ge2JvdW5kOiBiaW5kaW5nfSk7XG5cbiAgZnVuY3Rpb24gY2FtZWxpemUoc3RyaW5nKSB7XG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1tcXC1fXFxzXSsoLik/L2csIChtYXRjaCwgY2hyKSA9PiBjaHIgPyBjaHIudG9VcHBlckNhc2UoKSA6ICcnKTtcbiAgICAvLyBFbnN1cmUgMXN0IGNoYXIgaXMgYWx3YXlzIGxvd2VyY2FzZVxuICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXihbQS1aXSkvLCAobWF0Y2gsIGNocikgPT4gY2hyID8gY2hyLnRvTG93ZXJDYXNlKCkgOiAnJyk7XG4gIH1cblxuICBjb25zdCBhbmd1bGFyVUlEYXRlUGlja2VyVGVtcGxhdGUgPVx0YFxuICAgIDxpbnB1dFxuICAgICAgaWQ9XCJ7e2lkfX1cIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgbmctY2xpY2s9XCJvcGVuKCRldmVudClcIlxuICAgICAgdWliLWRhdGVwaWNrZXItcG9wdXBcbiAgICAgIG5nLW1vZGVsPVwibW9kZWxbb3B0aW9ucy5rZXkgfHwgaW5kZXhdXCIgaXMtb3Blbj1cInRvLmlzT3BlblwiXG4gICAgICBuZy1jbGljaz1cInRvLmlzT3BlbiA9IHRydWVcIlxuICAgICAgZGF0ZXBpY2tlci1vcHRpb25zPVwidG8uZGF0ZXBpY2tlck9wdGlvbnNcIi8+YDtcblxuICBmb3JtbHlDb25maWdQcm92aWRlci5zZXRUeXBlKHtcbiAgICBuYW1lIFx0XHRcdFx0OiAnZGF0ZXBpY2tlcicsXG4gICAgdGVtcGxhdGUgXHRcdDogYW5ndWxhclVJRGF0ZVBpY2tlclRlbXBsYXRlLFxuICAgIHdyYXBwZXIgXHRcdDogWydib290c3RyYXBMYWJlbCcsICdib290c3RyYXBIYXNFcnJvciddLFxuICAgIGNvbnRyb2xsZXIgXHQ6IFtcdCckc2NvcGUnLCAoJHNjb3BlKSA9PiB7XG4gICAgICAgICAgJHNjb3BlLm9wZW4gPSAkZXZlbnQgPT4ge1xuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAkc2NvcGUub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICBdLFxuICAgIGRlZmF1bHRPcHRpb25zIDoge1xuICAgICAgbmdNb2RlbEF0dHJzIFx0XHQ6IG5nTW9kZWxBdHRycyxcbiAgICAgIHRlbXBsYXRlT3B0aW9ucyA6IHtcbiAgICAgICAgYWRkb25MZWZ0OiB7XG4gICAgICAgICAgY2xhc3MgICA6ICdnbHlwaGljb24gZ2x5cGhpY29uLWNhbGVuZGFyJyxcbiAgICAgICAgICBvbkNsaWNrIDogKG9wdGlvbnMpID0+IG9wdGlvbnMudGVtcGxhdGVPcHRpb25zLmlzT3BlbiA9ICFvcHRpb25zLnRlbXBsYXRlT3B0aW9ucy5pc09wZW5cbiAgICAgICAgfSxcbiAgICAgICAgb25Gb2N1cyAgIDogKCR2aWV3VmFsdWUsICRtb2RlbFZhbHVlLCBzY29wZSkgPT4gc2NvcGUudG8uaXNPcGVuID0gIXNjb3BlLnRvLmlzT3BlbixcbiAgICAgICAgZGF0ZXBpY2tlck9wdGlvbnM6IHt9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlci5hZGRFYXN5Rm9ybUNvbnRyb2xUb0xpc3Qoe1xuICAgICAgaWQgXHRcdFx0XHRcdFx0XHRcdDogJ0RhdGUnLFxuICAgICAgbmFtZSBcdFx0XHRcdFx0XHRcdDogJ0RhdGUnLFxuICAgICAgc3VidGl0bGUgXHRcdFx0XHRcdDogJ0RhdGUnLFxuICAgICAgZ3JvdXAgXHRcdFx0XHRcdFx0OiAnaW5wdXQnLFxuICAgICAgZm9ybWx5VHlwZSBcdFx0XHRcdDogJ2RhdGVwaWNrZXInLFxuICAgICAgZm9ybWx5U3VidHlwZSBcdFx0OiAnJyxcbiAgICAgIGZvcm1seUxhYmVsIFx0XHRcdDogJycsXG4gICAgICBmb3JtbHlSZXF1aXJlZCBcdFx0OiBmYWxzZSxcbiAgICAgIGZvcm1seURlc2NpcHRpb24gXHQ6ICcnLFxuICAgICAgZm9ybWx5T3B0aW9ucyBcdFx0OiBbXSxcbiAgICAgIGRhdGVwaWNrZXJQb3B1cCBcdDogJ2RkLU1NTU0teXl5eSdcbiAgICB9XG4gICk7XG4gIC8qKlxuICAgKiBkcmFnIGFuZCBkcm9wIHRleHQgaW5wdXQg4oCUIGRhdGUg4oCUIGNvbnRyb2wgdGVtcGxhdGUgKHVzaW5nIGFuZ3VsYXIgVUkgZGF0ZXBpY2tlcilcbiAgICpcbiAgICAqXG4gICAgKiBAUEFSQU0gMSA6IGNvbnRyb2wgdGVtcGxhdGUgb2JqZWN0IChkcmFnIGFuIGRyb3ApXG4gICAgKiBAUEFSQU0gMiA6IG9iamVjdCB0byBpbmRpY2F0ZXMgaW4gd2hpY2ggZ3JvdXAgb2YgY29udHJvbCBpdCB3aWxsIGJlIGluc2VydGVkXG4gICAgKiAgXHRcdFx0XHRcdChyZWxhdGVkIHRvIF9kcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uIGluIGRyYWdEcm9wQ29uZmlnIHByb3ZpZGVyKVxuICAgICovXG4gIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyLmFkZENvbnRyb2xUb0RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwoe1xuICAgIGxhYmVsIFx0OmBcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiaW5wdXREYXRlXCIgY2xhc3M9XCJjb250cm9sLWxhYmVsIHRleHRDb250cm9sTGFiZWwgbmctYmluZGluZyBwdWxsLWxlZnRcIj5cbiAgICAgICAgIHRpdGxlIGZvciBkYXRlIGlucHV0PHNwYW4gY2xhc3M9XCJ0ZXh0Q29udHJvbExhYmVsIG5nLXNjb3BlXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTEyIGRlbW9kZERhdGVwaWNrZXJcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb25cIj48c3BhbiBjbGFzcz1cImdseXBoaWNvbiBnbHlwaGljb24tY2FsZW5kYXJcIj48L3NwYW4+PC9zcGFuPlxuICBcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgZGlzYWJsZWQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmFrZUNvbnRyb2xcIj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG4gICAgICAgIDxwIGNsYXNzPVwiaGVscC1ibG9jayBwdWxsLWxlZnRcIj5kZXNjcmlwdGlvbjwvcD5cbiAgICAgIDwvZGl2PlxuICAgICA8L2Rpdj5gLFxuICAgIGNvbnRyb2xcdDogJ0RhdGUnLFxuICAgIGNzc0NsYXNzOiAnY29sLXhzLTEyJ1xuICB9LFxuICB7XG4gICAgYWRkVG9Hcm91cEN0cmwgOiAnaW5wdXRzJ1xuICB9KTtcblxuICAvKipcbiAgICogQWRkIHRleHRhcmVhXG4gICAqXG4gICAgKiBub3RlIDogZm9ybWx5IHRlbXBsYXRlIGFscmVhZHkgZXhpc3RzXG4gICAgKiBubyBuZWVkIHRvIGNyZWF0ZSBhIGN1c3RvbSBvbmVcbiAgICAqXG4gICAgKiBqdXN0IGRlY2xhcmUgaW4gRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzUHJvdmlkZXJcbiAgICAqL1xuICBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlci5hZGRFYXN5Rm9ybUNvbnRyb2xUb0xpc3Qoe1xuICAgIGlkIFx0XHRcdFx0XHRcdFx0XHQ6ICdUZXhhcmVhJyxcbiAgICBuYW1lIFx0XHRcdFx0XHRcdFx0OiAnVGV4dGFyZWEnLFxuICAgIHN1YnRpdGxlIFx0XHRcdFx0XHQ6ICdUZXh0YXJlYScsXG4gICAgZ3JvdXAgXHRcdFx0XHRcdFx0OiAnVGV4dGFyZWEnLFxuICAgIGZvcm1seVR5cGUgXHRcdFx0XHQ6ICd0ZXh0YXJlYScsXG4gICAgZm9ybWx5U3VidHlwZSBcdFx0OiAnJyxcbiAgICBmb3JtbHlMYWJlbCBcdFx0XHQ6ICcnLFxuICAgIGZvcm1seVJlcXVpcmVkIFx0XHQ6IGZhbHNlLFxuICAgIGZvcm1seURlc2NpcHRpb24gXHQ6ICcnLFxuICAgIGZvcm1seU9wdGlvbnMgXHRcdDogW11cbiAgfSk7XG4gIC8qKlxuICAgKiBkcmFnIGFuZCBkcm9wIHRleHRhcmVhIGNvbnRyb2wgdGVtcGxhdGVcbiAgICpcbiAgICAqXG4gICAgKiBAUEFSQU0gMSA6IGNvbnRyb2wgdGVtcGxhdGUgb2JqZWN0IChkcmFnIGFuIGRyb3ApXG4gICAgKiBAUEFSQU0gMiA6IG9iamVjdCB0byBpbmRpY2F0ZXMgaW4gd2hpY2ggZ3JvdXAgb2YgY29udHJvbCBpdCB3aWxsIGJlIGluc2VydGVkXG4gICAgKiAgXHRcdFx0XHRcdChyZWxhdGVkIHRvIF9kcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uIGluIGRyYWdEcm9wQ29uZmlnIHByb3ZpZGVyKVxuICAgICovXG4gIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyLmFkZENvbnRyb2xUb0RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwoe1xuICAgICdsYWJlbCcgXHQ6IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRleHRBcmVhXCIgY2xhc3M9XCJjb250cm9sLWxhYmVsXG4gICAgICBcdFx0XHRcdFx0XHRcdHRleHRDb250cm9sTGFiZWwgcHVsbC1sZWZ0XCI+dGl0bGUgZm9yIHRleHRhcmVhIDxzcGFuIGNsYXNzPVwidGV4dENvbnRyb2xMYWJlbFwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgPHRleHRhcmVhIGRpc2FibGVkIGNsYXNzPVwiZm9ybS1jb250cm9sIGRyYWdJdGVtdGV4dGFyZWEgZmFrZUNvbnRyb2xcIiBuZy1tb2RlbD1cIm1vZGVsW29wdGlvbnMua2V5XVwiIHJvd3M9XCIxXCIgaWQ9XCJ0ZXh0QXJlYVwiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiaGVscC1ibG9jayBwdWxsLWxlZnRcIj5kZXNjcmlwdGlvbjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+YCxcbiAgICAnY29udHJvbCdcdDogJ1RleGFyZWEnLFxuICAgICdjc3NDbGFzcyc6ICdjb2wteHMtMTInXG4gIH0sXG4gIHtcbiAgICBhZGRUb0dyb3VwQ3RybCA6ICd0ZXh0YXJlYXMnXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBZGQgcmljaCB0ZXh0IGVkaXRvciBjb250cm9sICh1c2luZyB0ZXh0QW5ndWxhcilcbiAgICpcbiAgICovXG4gIGxldCByaWNoVGV4RWRpdG9yVGVtcGxhdGUgPWBcbiAgICA8dGV4dC1hbmd1bGFyIG5hbWU9XCJ7e2lkfX1cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyaWNoVGV4dEFuZ3VsYXJcIlxuICAgICAgICAgICAgICAgICAgbmctbW9kZWw9XCJtb2RlbFtvcHRpb25zLmtleSB8fCBpbmRleF1cIj5cbiAgICA8L3RleHQtYW5ndWxhcj5gO1xuXG4gIGZvcm1seUNvbmZpZ1Byb3ZpZGVyLnNldFR5cGUoe1xuICAgIG5hbWUgICAgIFx0OiAncmljaEVkaXRvcicsXG4gICAgdGVtcGxhdGUgXHQ6IHJpY2hUZXhFZGl0b3JUZW1wbGF0ZVxuICB9KTtcblxuICBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlci5hZGRFYXN5Rm9ybUNvbnRyb2xUb0xpc3Qoe1xuICAgIGlkIFx0XHRcdFx0XHRcdFx0XHQ6ICdSaWNoVGV4dEVkaXRvcicsXG4gICAgbmFtZSBcdFx0XHRcdFx0XHRcdDogJ1JpY2hUZXh0RWRpdG9yJyxcbiAgICBzdWJ0aXRsZSBcdFx0XHRcdFx0OiAnUmljaFRleHRFZGl0b3InLFxuICAgIGdyb3VwIFx0XHRcdFx0XHRcdDogJ1RleHRhcmVhJyxcbiAgICBmb3JtbHlUeXBlIFx0XHRcdFx0OiAncmljaEVkaXRvcicsXG4gICAgZm9ybWx5U3VidHlwZSBcdFx0OiAnJyxcbiAgICBmb3JtbHlMYWJlbCBcdFx0XHQ6ICcnLFxuICAgIGZvcm1seVJlcXVpcmVkIFx0XHQ6IGZhbHNlLFxuICAgIGZvcm1seURlc2NpcHRpb24gXHQ6ICcnLFxuICAgIGZvcm1seU9wdGlvbnMgXHRcdDogW11cbiAgfSk7XG4gIC8qKlxuICAgKiBkcmFnIGFuZCBkcm9wIHJpY2ggdGV4dCBlZGl0b3IgY29udHJvbCB0ZW1wbGF0ZSAodXNpbmcgdGV4dEFuZ3VsYXIpXG4gICAqXG4gICAgKlxuICAgICogQFBBUkFNIDEgOiBjb250cm9sIHRlbXBsYXRlIG9iamVjdCAoZHJhZyBhbiBkcm9wKVxuICAgICogQFBBUkFNIDIgOiBvYmplY3QgdG8gaW5kaWNhdGVzIGluIHdoaWNoIGdyb3VwIG9mIGNvbnRyb2wgaXQgd2lsbCBiZSBpbnNlcnRlZFxuICAgICogIFx0XHRcdFx0XHQocmVsYXRlZCB0byBfZHJhZ0Ryb3BDb25maWdNb2RlbC5jb250YWluZXJDb25maWcuZGVjb3JhdGlvbiBpbiBkcmFnRHJvcENvbmZpZyBwcm92aWRlcilcbiAgICAqL1xuICBlYXN5Rm9ybURyYWdXYXlDb25maWdQcm92aWRlci5hZGRDb250cm9sVG9EcmFnRHJvcFByZXNlbnRhdGlvbk1vZGVsKHtcbiAgICBsYWJlbCBcdDogYFxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidGV4dEFyZWFcIiBjbGFzcz1cImNvbnRyb2wtbGFiZWxcbiAgICAgIFx0XHRcdFx0XHRcdFx0dGV4dENvbnRyb2xMYWJlbCBwdWxsLWxlZnRcIj50aXRsZSBmb3IgcmljaCB0ZXh0IGVkaXRvciA8c3BhbiBjbGFzcz1cInRleHRDb250cm9sTGFiZWxcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSBkaXNhYmxlZCBjbGFzcz1cImZvcm0tY29udHJvbCBkcmFnSXRlbXRleHRhcmVhIGZha2VDb250cm9sXCIgbmctbW9kZWw9XCJtb2RlbFtvcHRpb25zLmtleV1cIiByb3dzPVwiMVwiIGlkPVwidGV4dEFyZWFcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImhlbHAtYmxvY2tcIj5kZXNjcmlwdGlvbjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+YCxcbiAgICBjb250cm9sXHQ6ICdSaWNoVGV4dEVkaXRvcicsXG4gICAgY3NzQ2xhc3M6ICdjb2wteHMtMTInXG4gIH0sXG4gIHtcbiAgICBhZGRUb0dyb3VwQ3RybCA6ICd0ZXh0YXJlYXMnXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBZGQgcmFkaW9cbiAgICpcbiAgICAqIG5vdGUgOiBmb3JtbHkgdGVtcGxhdGUgYWxyZWFkeSBleGlzdHNcbiAgICAqIG5vIG5lZWQgdG8gY3JlYXRlIGEgY3VzdG9tIG9uZVxuICAgICpcbiAgICAqIGp1c3QgZGVjbGFyZSBpbiBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlclxuICAgICovXG4gIEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVsc1Byb3ZpZGVyLmFkZEVhc3lGb3JtQ29udHJvbFRvTGlzdCh7XG4gICAgaWQgXHRcdFx0XHRcdFx0XHRcdDogJ1JhZGlvJyxcbiAgICBuYW1lIFx0XHRcdFx0XHRcdFx0OiAnUmFkaW8nLFxuICAgIHN1YnRpdGxlIFx0XHRcdFx0XHQ6ICdSYWRpbycsXG4gICAgb3B0aW9ucyBcdFx0XHRcdFx0OiBbXSxcbiAgICBncm91cCBcdFx0XHRcdFx0XHQ6ICdSYWRpbycsXG4gICAgZm9ybWx5VHlwZSBcdFx0XHRcdDogJ3JhZGlvJyxcbiAgICBmb3JtbHlTdWJ0eXBlIFx0XHQ6ICcnLFxuICAgIGZvcm1seUxhYmVsIFx0XHRcdDogJycsXG4gICAgZm9ybWx5UmVxdWlyZWQgXHRcdDogZmFsc2UsXG4gICAgZm9ybWx5RGVzY2lwdGlvbiBcdDogJycgLFxuICAgIGZvcm1seU9wdGlvbnMgXHRcdDogW11cbiAgfSk7XG4gIC8qKlxuICAgKiBkcmFnIGFuZCBkcm9wIHJhZGlvIGNvbnRyb2wgdGVtcGxhdGUgKHVzaW5nIHRleHRBbmd1bGFyKVxuICAgKlxuICAgICpcbiAgICAqIEBQQVJBTSAxIDogY29udHJvbCB0ZW1wbGF0ZSBvYmplY3QgKGRyYWcgYW4gZHJvcClcbiAgICAqIEBQQVJBTSAyIDogb2JqZWN0IHRvIGluZGljYXRlcyBpbiB3aGljaCBncm91cCBvZiBjb250cm9sIGl0IHdpbGwgYmUgaW5zZXJ0ZWRcbiAgICAqICBcdFx0XHRcdFx0KHJlbGF0ZWQgdG8gX2RyYWdEcm9wQ29uZmlnTW9kZWwuY29udGFpbmVyQ29uZmlnLmRlY29yYXRpb24gaW4gZHJhZ0Ryb3BDb25maWcgcHJvdmlkZXIpXG4gICAgKi9cbiAgZWFzeUZvcm1EcmFnV2F5Q29uZmlnUHJvdmlkZXIuYWRkQ29udHJvbFRvRHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCh7XG4gICAgJ2xhYmVsJyBcdDogYFxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJ2ZXJ0UmFkaW9cIiBjbGFzcz1cImNvbnRyb2wtbGFiZWwgdGV4dENvbnRyb2xMYWJlbCBwdWxsLWxlZnRcIj50aXRsZSBmb3IgcmFkaW8gPHNwYW4gY2xhc3M9XCJ0ZXh0Q29udHJvbExhYmVsXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnRlcmxpZ25lXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtbGVmdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZha2VDaGVja1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBkaXNhYmxlZCBuYW1lPVwib3B0aW9uc1JhZGlvc1wiIGNsYXNzPVwiZmFrZUNoZWNrXCIgaWQ9XCJvcHRpb25zUmFkaW8tMFwiIHZhbHVlPVwidmVydGljYWxSYWRpbzBcIiBjaGVja2VkPVwiXCI+XG4gICAgICAgICAgICAgICAgb3B0aW9uMVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW9cIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmFrZUNoZWNrXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGRpc2FibGVkIG5hbWU9XCJvcHRpb25zUmFkaW9zXCIgY2xhc3M9XCJmYWtlQ2hlY2tcIiAgaWQ9XCJvcHRpb25zUmFkaW8tMVwiIHZhbHVlPVwidmVydGljYWxSYWRpbzFcIiBjaGVja2VkPVwiXCI+XG4gICAgICAgICAgICAgICAgb3B0aW9uMlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImhlbHAtYmxvY2sgcHVsbC1sZWZ0XCI+ZGVzY3JpcHRpb248L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+YCxcbiAgICAnY29udHJvbCdcdDogJ1JhZGlvJyxcbiAgICAnY3NzQ2xhc3MnOiAnY29sLXhzLTEyJ1xuICB9LFxuICB7XG4gICAgYWRkVG9Hcm91cEN0cmwgOiAncmFkaW9zJ1xuICB9KTtcblxuICAvKipcbiAgICogQWRkIGNoZWNrYm94XG4gICAqXG4gICAgKiBub3RlIDogZm9ybWx5IHRlbXBsYXRlIGFscmVhZHkgZXhpc3RzXG4gICAgKiBubyBuZWVkIHRvIGNyZWF0ZSBhIGN1c3RvbSBvbmVcbiAgICAqXG4gICAgKiBqdXN0IGRlY2xhcmUgaW4gRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzUHJvdmlkZXJcbiAgICAqL1xuICBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlci5hZGRFYXN5Rm9ybUNvbnRyb2xUb0xpc3Qoe1xuICAgIGlkIFx0XHRcdFx0XHRcdFx0XHQ6ICdDaGVja2JveCcsXG4gICAgbmFtZSBcdFx0XHRcdFx0XHRcdDogJ0NoZWNrYm94JyxcbiAgICBzdWJ0aXRsZSBcdFx0XHRcdFx0OiAnQ2hlY2tib3gnLFxuICAgIGdyb3VwIFx0XHRcdFx0XHRcdDogJ0NoZWNrYm94JyxcbiAgICBmb3JtbHlUeXBlIFx0XHRcdFx0OiAnY2hlY2tib3gnLFxuICAgIGZvcm1seVN1YnR5cGUgXHRcdDogJycsXG4gICAgZm9ybWx5TGFiZWwgXHRcdFx0OiAnJyxcbiAgICBmb3JtbHlSZXF1aXJlZCBcdFx0OiBmYWxzZSxcbiAgICBmb3JtbHlEZXNjaXB0aW9uIFx0OiAnJyxcbiAgICBmb3JtbHlPcHRpb25zIFx0XHQ6IFtdXG4gIH0pO1xuICAvKipcbiAgICogZHJhZyBhbmQgZHJvcCBjaGVja2JveCBjb250cm9sIHRlbXBsYXRlICh1c2luZyB0ZXh0QW5ndWxhcilcbiAgICpcbiAgICAqXG4gICAgKiBAUEFSQU0gMSA6IGNvbnRyb2wgdGVtcGxhdGUgb2JqZWN0IChkcmFnIGFuIGRyb3ApXG4gICAgKiBAUEFSQU0gMiA6IG9iamVjdCB0byBpbmRpY2F0ZXMgaW4gd2hpY2ggZ3JvdXAgb2YgY29udHJvbCBpdCB3aWxsIGJlIGluc2VydGVkXG4gICAgKiAgXHRcdFx0XHRcdChyZWxhdGVkIHRvIF9kcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uIGluIGRyYWdEcm9wQ29uZmlnIHByb3ZpZGVyKVxuICAgICovXG4gIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyLmFkZENvbnRyb2xUb0RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwoe1xuICAgIGxhYmVsIFx0OiBgXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZha2VDaGVja1wiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBkaXNhYmxlZCBjbGFzcz1cImZha2VDaGVja1wiIGlkPVwiY2hlY2tCb3hcIj5cbiAgICAgIFx0XHQ8c3BhbiBjbGFzcz1cImJsYWNrVGV4dCBuZy1iaW5kaW5nXCI+bGFiZWwgZm9yIGNoZWNrYm94IDwvc3Bhbj5cbiAgICAgIFx0XHQ8c3BhbiBjbGFzcz1cInRleHRDb250cm9sTGFiZWwgbmctc2NvcGVcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cImhlbHAtYmxvY2sgbmctYmluZGluZ1wiPmRlc2NyaXB0aW9uPC9wPlxuICAgIDwvZGl2PmAsXG4gICAgY29udHJvbFx0OiAnQ2hlY2tib3gnLFxuICAgIGNzc0NsYXNzOiAnY29sLXhzLTEyJ1xuICB9LFxuICB7XG4gICAgYWRkVG9Hcm91cEN0cmwgOiAnY2hlY2tib3hlcydcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEFkZCBiYXNpYyBTZWxlY3QgY29udHJvbFxuICAgKlxuICAgICogdXNpbmcgbnlhLWJzLXNlbGVjdFxuICAgICovXG4gIGxldCBiYXNpY1NlbGVjdFRlbXBsYXRlID1cdGBcbiAgIDxvbCBjbGFzcz1cIm55YS1icy1zZWxlY3QgY29sLXNtLTEyIGNvbC14cy0xMiBjb2wtbWQtMTIgY29sLWxnMTJcIlxuICBcdFx0bmctbW9kZWw9XCJtb2RlbFtvcHRpb25zLmtleSB8fCBpbmRleF1cIlxuICBcdFx0aWQ9XCJ7e2lkfX1cIlxuICBcdFx0ZGlzYWJsZWQ9XCJvcHRpb25zLnRlbXBsYXRlT3B0aW9ucy5vcHRpb25zLmxlbmd0aCA9PT0gMFwiPlxuICAgICA8bGkgY2xhc3M9XCJueWEtYnMtb3B0aW9uXCIgbnlhLWJzLW9wdGlvbj1cIm9wdGlvbiBpbiBvcHRpb25zLnRlbXBsYXRlT3B0aW9ucy5vcHRpb25zXCI+XG4gICAgICAgPGE+e3tvcHRpb24ubmFtZX19PC9hPlxuICAgICA8L2xpPlxuICAgPC9vbD4gYDtcblxuICBmb3JtbHlDb25maWdQcm92aWRlci5zZXRUeXBlKHtcbiAgICBuYW1lIFx0XHRcdDogJ2Jhc2ljU2VsZWN0JyxcbiAgICB0ZW1wbGF0ZSBcdDogYmFzaWNTZWxlY3RUZW1wbGF0ZVxuICB9KTtcblxuICBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlci5hZGRFYXN5Rm9ybUNvbnRyb2xUb0xpc3Qoe1xuICAgIGlkIFx0XHRcdFx0XHRcdFx0XHQ6ICdCYXNpY1NlbGVjdCcsXG4gICAgbmFtZSBcdFx0XHRcdFx0XHRcdDogJ0Jhc2ljIHNlbGVjdCcsXG4gICAgc3VidGl0bGUgXHRcdFx0XHRcdDogJ0Jhc2ljIHNlbGVjdCcsXG4gICAgb3B0aW9ucyBcdFx0XHRcdFx0OiBbXSxcbiAgICBncm91cCBcdFx0XHRcdFx0XHQ6ICdTZWxlY3QnLFxuICAgIGZvcm1seVR5cGUgXHRcdFx0XHQ6ICdiYXNpY1NlbGVjdCcsXG4gICAgZm9ybWx5U3VidHlwZSBcdFx0OiAnJyxcbiAgICBmb3JtbHlMYWJlbCBcdFx0XHQ6ICcnLFxuICAgIGZvcm1seVJlcXVpcmVkIFx0XHQ6IGZhbHNlLFxuICAgIGZvcm1seURlc2NpcHRpb24gXHQ6ICcnLFxuICAgIGZvcm1seU9wdGlvbnMgXHRcdDogW11cbiAgfSk7XG5cbiAgLyoqXG4gICAqIGRyYWcgYW5kIGRyb3AgYmFzaWMgc2VsZWN0IGNvbnRyb2wgdGVtcGxhdGUgKHVzaW5nIHRleHRBbmd1bGFyKVxuICAgKlxuICAgICpcbiAgICAqIEBQQVJBTSAxIDogY29udHJvbCB0ZW1wbGF0ZSBvYmplY3QgKGRyYWcgYW4gZHJvcClcbiAgICAqIEBQQVJBTSAyIDogb2JqZWN0IHRvIGluZGljYXRlcyBpbiB3aGljaCBncm91cCBvZiBjb250cm9sIGl0IHdpbGwgYmUgaW5zZXJ0ZWRcbiAgICAqICBcdFx0XHRcdFx0KHJlbGF0ZWQgdG8gX2RyYWdEcm9wQ29uZmlnTW9kZWwuY29udGFpbmVyQ29uZmlnLmRlY29yYXRpb24gaW4gZHJhZ0Ryb3BDb25maWcgcHJvdmlkZXIpXG4gICAgKi9cbiAgZWFzeUZvcm1EcmFnV2F5Q29uZmlnUHJvdmlkZXIuYWRkQ29udHJvbFRvRHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbChcbiAge1xuICAgIGxhYmVsIFx0OiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIHNlbGVjdGZvcmRlbW9cIj5cblxuICAgICAgPG9sIGNsYXNzPVwibnlhLWJzLXNlbGVjdCBjb2wteHMtMTIgY29sLXNtLTEyIGNvbC1tZC0xMiBjb2wtbGctMTIgbmctdmFsaWQgYnRuLWdyb3VwIG5nLWRpcnR5IG5nLXZhbGlkLXBhcnNlIG5nLXRvdWNoZWRcIlxuICAgICAgXHRuZy1tb2RlbD1cImZha2VNb2RlbE55YVNlbGVjdEJhc2ljXCJcbiAgICAgIFx0ZGF0YS1saXZlLXNlYXJjaD1cImZhbHNlXCI+XG5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlXCIgZGlzYWJsZWQgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgXHRcdCA8c3BhbiBjbGFzcz1cInB1bGwtbGVmdCBmaWx0ZXItb3B0aW9uXCI+XG4gICAgICBcdFx0XHQgPHNwYW4gY2xhc3M9XCJuZy1iaW5kaW5nXCI+QmFzaWMgc2VsZWN0PC9zcGFuPlxuICAgICAgXHRcdDwvc3Bhbj5cbiAgICAgIFx0XHQmbmJzcDs8c3BhbiBjbGFzcz1cImNhcmV0XCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5gLFxuICAgIGNvbnRyb2xcdDogJ0Jhc2ljU2VsZWN0JyxcbiAgICBjc3NDbGFzczogJ2NvbC14cy0xMidcbiAgfSxcbiAge1xuICAgIGFkZFRvR3JvdXBDdHJsIDogJ3NlbGVjdHMnXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBZGQgR3JvdXBlZCBTZWxlY3QgY29udHJvbFxuICAgKlxuICAgICogdXNpbmcgbnlhLWJzLXNlbGVjdFxuICAgICovXG4gIGxldCBncm91cGVkU2VsZWN0VGVtcGxhdGUgPVx0YFxuICA8b2wgY2xhc3M9XCJueWEtYnMtc2VsZWN0IGNvbC1zbS0xMiBjb2wteHMtMTIgY29sLW1kLTEyIGNvbC1sZzEyXCJcblx0XHQgICBuZy1tb2RlbD1cIm1vZGVsW29wdGlvbnMua2V5IHx8IGluZGV4XVwiXG4gICAgICBkYXRhLWxpdmUtc2VhcmNoPVwidHJ1ZVwiXG4gICAgICBkaXNhYmxlZD1cIm9wdGlvbnMudGVtcGxhdGVPcHRpb25zLm9wdGlvbnMubGVuZ3RoID09PSAwXCI+XG4gICAgICA8bGkgbnlhLWJzLW9wdGlvbj1cIm9wdGlvbiBpbiAgb3B0aW9ucy50ZW1wbGF0ZU9wdGlvbnMub3B0aW9ucyBncm91cCBieSBvcHRpb24uZ3JvdXBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1oZWFkZXJcIj57eyRncm91cH19PC9zcGFuPlxuICAgICAgICA8YT5cbiAgICAgICAgICA8c3Bhbj57e29wdGlvbi5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLW9rIGNoZWNrLW1hcmtcIj48L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbGk+XG4gIDwvb2w+YDtcblxuICBmb3JtbHlDb25maWdQcm92aWRlci5zZXRUeXBlKHtcbiAgICBuYW1lICAgXHRcdDogJ2dyb3VwZWRTZWxlY3QnLFxuICAgIHRlbXBsYXRlIFx0OiBncm91cGVkU2VsZWN0VGVtcGxhdGVcbiAgfSk7XG5cbiAgRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzUHJvdmlkZXIuYWRkRWFzeUZvcm1Db250cm9sVG9MaXN0KHtcbiAgICBpZCBcdFx0XHRcdFx0XHRcdFx0OiAnR3JvdXBlZFNlbGVjdCcsXG4gICAgbmFtZSBcdFx0XHRcdFx0XHRcdDogJ0dyb3VwZWQgU2VsZWN0JyxcbiAgICBzdWJ0aXRsZSBcdFx0XHRcdFx0OiAnR3JvdXBlZCBTZWxlY3QnLFxuICAgIG9wdGlvbnMgXHRcdFx0XHRcdDogW10sXG4gICAgZ3JvdXAgXHRcdFx0XHRcdFx0OiAnU2VsZWN0JyxcbiAgICBmb3JtbHlUeXBlIFx0XHRcdFx0OiAnZ3JvdXBlZFNlbGVjdCcsXG4gICAgZm9ybWx5U3VidHlwZSBcdFx0OiAnJyxcbiAgICBmb3JtbHlMYWJlbCBcdFx0XHQ6ICcnLFxuICAgIGZvcm1seVJlcXVpcmVkIFx0XHQ6IGZhbHNlLFxuICAgIGZvcm1seURlc2NpcHRpb24gXHQ6ICcnLFxuICAgIGZvcm1seU9wdGlvbnMgXHRcdDogW11cbiAgfSk7XG4gIC8qKlxuICAgKiBkcmFnIGFuZCBkcm9wIGdyb3VwZWQgc2VsZWN0IGNvbnRyb2wgdGVtcGxhdGUgKHVzaW5nIHRleHRBbmd1bGFyKVxuICAgKlxuICAgICpcbiAgICAqIEBQQVJBTSAxIDogY29udHJvbCB0ZW1wbGF0ZSBvYmplY3QgKGRyYWcgYW4gZHJvcClcbiAgICAqIEBQQVJBTSAyIDogb2JqZWN0IHRvIGluZGljYXRlcyBpbiB3aGljaCBncm91cCBvZiBjb250cm9sIGl0IHdpbGwgYmUgaW5zZXJ0ZWRcbiAgICAqICBcdFx0XHRcdFx0KHJlbGF0ZWQgdG8gX2RyYWdEcm9wQ29uZmlnTW9kZWwuY29udGFpbmVyQ29uZmlnLmRlY29yYXRpb24gaW4gZHJhZ0Ryb3BDb25maWcgcHJvdmlkZXIpXG4gICAgKi9cbiAgZWFzeUZvcm1EcmFnV2F5Q29uZmlnUHJvdmlkZXIuYWRkQ29udHJvbFRvRHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCh7XG4gICAgbGFiZWwgXHQ6IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTEyIGNvbC1sZy0xMiBzZWxlY3Rmb3JkZW1vXCI+XG4gICAgICA8b2wgY2xhc3M9XCJueWEtYnMtc2VsZWN0IGNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTEyIGNvbC1sZy0xMiBuZy12YWxpZCBidG4tZ3JvdXAgbmctZGlydHkgbmctdmFsaWQtcGFyc2UgbmctdG91Y2hlZFwiXG4gICAgICBcdG5nLW1vZGVsPVwiZmFrZU1vZGVsTnlhU2VsZWN0QmFzaWNcIlxuICAgICAgXHRkYXRhLWxpdmUtc2VhcmNoPVwiZmFsc2VcIj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlXCIgZGlzYWJsZWQgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgXHRcdCA8c3BhbiBjbGFzcz1cInB1bGwtbGVmdCBmaWx0ZXItb3B0aW9uXCI+XG4gICAgICBcdFx0XHQgPHNwYW4gY2xhc3M9XCJuZy1iaW5kaW5nXCI+R3JvdXBlZCBzZWxlY3Q8L3NwYW4+XG4gICAgICBcdFx0PC9zcGFuPlxuICAgICAgXHRcdCZuYnNwOzxzcGFuIGNsYXNzPVwiY2FyZXRcIj48L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+YCxcbiAgICBjb250cm9sXHQ6ICdHcm91cGVkU2VsZWN0JyxcbiAgICBjc3NDbGFzczogJ2NvbC14cy0xMidcbiAgfSxcbiAge1xuICAgIGFkZFRvR3JvdXBDdHJsIDogJ3NlbGVjdHMnXG4gIH0pO1xuXG5cbn1cblxuZm9ybWx5Q29uZmlnLiRpbmplY3QgPSBbXG4gICdmb3JtbHlDb25maWdQcm92aWRlcicsXG4gICdFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHNQcm92aWRlcicsXG4gICdlYXN5Rm9ybURyYWdXYXlDb25maWdQcm92aWRlcidcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1seUNvbmZpZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29uZmlnL2VkYURyYWdEcm9wV2F5LmZvcm1seUNvbmZpZy5jb25maWcuanMiXSwic291cmNlUm9vdCI6IiJ9");
  80. /***/ },
  81. /* 12 */
  82. /***/ function(module, exports, __webpack_require__) {
  83. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EASY_FORM_DD_VERSION_VALUE = exports.EASY_FORM_DD_VERSION_NAME = undefined;\n\nvar _easyFormConfig = __webpack_require__(13);\n\nvar _easyFormConfig2 = _interopRequireDefault(_easyFormConfig);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EASY_FORM_DD_VERSION_NAME = 'easyFormGenVersion';\nvar EASY_FORM_DD_VERSION_VALUE = _easyFormConfig2.default.dragdropway.version;\n\nfunction dragDropConfigFunct(easyFormDragWayConfigProvider) {\n easyFormDragWayConfigProvider.setItemsNotTocount({\n //placeholder : '',\n itemBeingDragged: 'dndDraggingSource'\n });\n}\n\ndragDropConfigFunct.$inject = ['easyFormDragWayConfigProvider'];\n\nexports.default = dragDropConfigFunct;\nexports.EASY_FORM_DD_VERSION_NAME = EASY_FORM_DD_VERSION_NAME;\nexports.EASY_FORM_DD_VERSION_VALUE = EASY_FORM_DD_VERSION_VALUE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbmZpZy9lZGFEcmFnRHJvcFdheS5kcmFnRHJvcENvbmZpZy5jb25maWcuanM/ZjU4NCJdLCJuYW1lcyI6WyJFQVNZX0ZPUk1fRERfVkVSU0lPTl9OQU1FIiwiRUFTWV9GT1JNX0REX1ZFUlNJT05fVkFMVUUiLCJkcmFnZHJvcHdheSIsInZlcnNpb24iLCJkcmFnRHJvcENvbmZpZ0Z1bmN0IiwiZWFzeUZvcm1EcmFnV2F5Q29uZmlnUHJvdmlkZXIiLCJzZXRJdGVtc05vdFRvY291bnQiLCJpdGVtQmVpbmdEcmFnZ2VkIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7QUFFQSxJQUFNQSw0QkFBNkIsb0JBQW5DO0FBQ0EsSUFBTUMsNkJBQTZCLHlCQUFlQyxXQUFmLENBQTJCQyxPQUE5RDs7QUFFQSxTQUFTQyxtQkFBVCxDQUE2QkMsNkJBQTdCLEVBQTREO0FBQzFEQSxnQ0FBOEJDLGtCQUE5QixDQUFpRDtBQUMvQztBQUNBQyxzQkFBc0I7QUFGeUIsR0FBakQ7QUFJRDs7QUFFREgsb0JBQW9CSSxPQUFwQixHQUE4QixDQUM1QiwrQkFENEIsQ0FBOUI7O2tCQUllSixtQjtRQUdiSix5QixHQUFBQSx5QjtRQUNBQywwQixHQUFBQSwwQiIsImZpbGUiOiIxMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBlYXN5Rm9ybUNvbmZpZyAgIGZyb20gJy4uLy4uL2Vhc3lGb3JtQ29uZmlnLmpzb24nO1xuXG5jb25zdCBFQVNZX0ZPUk1fRERfVkVSU0lPTl9OQU1FICA9ICdlYXN5Rm9ybUdlblZlcnNpb24nO1xubGV0ICAgRUFTWV9GT1JNX0REX1ZFUlNJT05fVkFMVUUgPSBlYXN5Rm9ybUNvbmZpZy5kcmFnZHJvcHdheS52ZXJzaW9uO1xuXG5mdW5jdGlvbiBkcmFnRHJvcENvbmZpZ0Z1bmN0KGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyKSB7XG4gIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1Byb3ZpZGVyLnNldEl0ZW1zTm90VG9jb3VudCh7XG4gICAgLy9wbGFjZWhvbGRlciA6ICAgICAgICAgJycsXG4gICAgaXRlbUJlaW5nRHJhZ2dlZCA6ICAgICdkbmREcmFnZ2luZ1NvdXJjZScgICAgXG4gIH0pO1xufVxuXG5kcmFnRHJvcENvbmZpZ0Z1bmN0LiRpbmplY3QgPSBbXG4gICdlYXN5Rm9ybURyYWdXYXlDb25maWdQcm92aWRlcidcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGRyYWdEcm9wQ29uZmlnRnVuY3Q7IFxuXG5leHBvcnQge1xuICBFQVNZX0ZPUk1fRERfVkVSU0lPTl9OQU1FLCBcbiAgRUFTWV9GT1JNX0REX1ZFUlNJT05fVkFMVUVcbn07XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29uZmlnL2VkYURyYWdEcm9wV2F5LmRyYWdEcm9wQ29uZmlnLmNvbmZpZy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  84. /***/ },
  85. /* 13 */
  86. /***/ function(module, exports) {
  87. eval("module.exports = {\n\t\"stepway\": {\n\t\t\"version\": \"2.0.0\"\n\t},\n\t\"dragdropway\": {\n\t\t\"version\": \"2.0.0\"\n\t},\n\t\"formviewer\": {\n\t\t\"version\": \"2.0.0\"\n\t}\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2Vhc3lGb3JtQ29uZmlnLmpzb24/MzFjYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIxMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge1xuXHRcInN0ZXB3YXlcIjoge1xuXHRcdFwidmVyc2lvblwiOiBcIjIuMC4wXCJcblx0fSxcblx0XCJkcmFnZHJvcHdheVwiOiB7XG5cdFx0XCJ2ZXJzaW9uXCI6IFwiMi4wLjBcIlxuXHR9LFxuXHRcImZvcm12aWV3ZXJcIjoge1xuXHRcdFwidmVyc2lvblwiOiBcIjIuMC4wXCJcblx0fVxufTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9hcHAvZWFzeUZvcm1Db25maWcuanNvblxuLy8gbW9kdWxlIGlkID0gMTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  88. /***/ },
  89. /* 14 */
  90. /***/ function(module, exports) {
  91. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar CORE_MODULES = ['textAngular', 'textAngularSetup', 'ngAnimate', 'toaster', 'formly', 'formlyBootstrap', 'ui.bootstrap', 'nya.bootstrap.select', 'mgcrea.ngStrap.affix'\n// 'pascalprecht.translate'\t\n];\n\nexports.default = angular.module('easyFormGen.dragDropWay.core', CORE_MODULES);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvcmUvZWRhRHJhZ0Ryb3BXYXkuY29yZS5tb2R1bGUuanM/OTY2YyJdLCJuYW1lcyI6WyJDT1JFX01PRFVMRVMiLCJhbmd1bGFyIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU1BLGVBQWUsQ0FDcEIsYUFEb0IsRUFFcEIsa0JBRm9CLEVBR3BCLFdBSG9CLEVBSXBCLFNBSm9CLEVBS3BCLFFBTG9CLEVBTXBCLGlCQU5vQixFQU9wQixjQVBvQixFQVFwQixzQkFSb0IsRUFTcEI7QUFDQTtBQVZvQixDQUFyQjs7a0JBYWVDLFFBQ05DLE1BRE0sQ0FDQyw4QkFERCxFQUNpQ0YsWUFEakMsQyIsImZpbGUiOiIxNC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENPUkVfTU9EVUxFUyA9IFtcdFxuXHQndGV4dEFuZ3VsYXInLFxuXHQndGV4dEFuZ3VsYXJTZXR1cCcsXG5cdCduZ0FuaW1hdGUnLFxuXHQndG9hc3RlcicsXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHQnZm9ybWx5JywgXG5cdCdmb3JtbHlCb290c3RyYXAnLFxuXHQndWkuYm9vdHN0cmFwJyxcblx0J255YS5ib290c3RyYXAuc2VsZWN0Jyxcblx0J21nY3JlYS5uZ1N0cmFwLmFmZml4J1xuXHQvLyAncGFzY2FscHJlY2h0LnRyYW5zbGF0ZSdcdFxuXTtcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuXHRcdFx0XHRcdFx0XHRcdC5tb2R1bGUoJ2Vhc3lGb3JtR2VuLmRyYWdEcm9wV2F5LmNvcmUnLCBDT1JFX01PRFVMRVMpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb3JlL2VkYURyYWdEcm9wV2F5LmNvcmUubW9kdWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  92. /***/ },
  93. /* 15 */
  94. /***/ function(module, exports, __webpack_require__) {
  95. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _edaDragDropWayLeftPanel = __webpack_require__(16);\n\nvar _edaDragDropWayLeftPanel2 = _interopRequireDefault(_edaDragDropWayLeftPanel);\n\nvar _edaDragDropWayLeftPanel3 = __webpack_require__(18);\n\nvar _edaDragDropWayLeftPanel4 = _interopRequireDefault(_edaDragDropWayLeftPanel3);\n\nvar _edaDragDropWayLeftPanelSelectOptionManage = __webpack_require__(20);\n\nvar _edaDragDropWayLeftPanelSelectOptionManage2 = _interopRequireDefault(_edaDragDropWayLeftPanelSelectOptionManage);\n\nvar _edaDragDropWayLeftPanelControllerModalProxy = __webpack_require__(22);\n\nvar _edaDragDropWayLeftPanelControllerModalProxy2 = _interopRequireDefault(_edaDragDropWayLeftPanelControllerModalProxy);\n\nvar _edaDragDropWayLeftpanelValidEditFooter = __webpack_require__(23);\n\nvar _edaDragDropWayLeftpanelValidEditFooter2 = _interopRequireDefault(_edaDragDropWayLeftpanelValidEditFooter);\n\nvar _edaDragDropWayLeftpanelTextInputControl = __webpack_require__(25);\n\nvar _edaDragDropWayLeftpanelTextInputControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelTextInputControl);\n\nvar _edaDragDropWayLeftpanelTextareaControl = __webpack_require__(27);\n\nvar _edaDragDropWayLeftpanelTextareaControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelTextareaControl);\n\nvar _edaDragDropWayLeftpanelSubtitleControl = __webpack_require__(29);\n\nvar _edaDragDropWayLeftpanelSubtitleControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelSubtitleControl);\n\nvar _edaDragDropWayLeftpanelRichTextEditorControl = __webpack_require__(31);\n\nvar _edaDragDropWayLeftpanelRichTextEditorControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelRichTextEditorControl);\n\nvar _edaDragDropWayLeftpanelRadioControl = __webpack_require__(33);\n\nvar _edaDragDropWayLeftpanelRadioControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelRadioControl);\n\nvar _edaDragDropWayLeftpanelPasswordControl = __webpack_require__(35);\n\nvar _edaDragDropWayLeftpanelPasswordControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelPasswordControl);\n\nvar _edaDragDropWayLeftpanelHeaderControl = __webpack_require__(37);\n\nvar _edaDragDropWayLeftpanelHeaderControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelHeaderControl);\n\nvar _edaDragDropWayLeftpanelGroupedSelectControl = __webpack_require__(39);\n\nvar _edaDragDropWayLeftpanelGroupedSelectControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelGroupedSelectControl);\n\nvar _edaDragDropWayLeftpanelDateControl = __webpack_require__(41);\n\nvar _edaDragDropWayLeftpanelDateControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelDateControl);\n\nvar _edaDragDropWayLeftpanelCheckBoxControl = __webpack_require__(43);\n\nvar _edaDragDropWayLeftpanelCheckBoxControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelCheckBoxControl);\n\nvar _edaDragDropWayLeftpanelBlankControl = __webpack_require__(45);\n\nvar _edaDragDropWayLeftpanelBlankControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelBlankControl);\n\nvar _edaDragDropWayLeftpanelBasicSelectControl = __webpack_require__(47);\n\nvar _edaDragDropWayLeftpanelBasicSelectControl2 = _interopRequireDefault(_edaDragDropWayLeftpanelBasicSelectControl);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_MODULE = 'edaDragDropWay.leftPanel.module'; /* global angular */\nexports.default = angular.module(LEFT_PANEL_MODULE, []).directive(_edaDragDropWayLeftPanel3.LEFT_PANEL_DIRECTIVE, _edaDragDropWayLeftPanel4.default).controller(_edaDragDropWayLeftPanel.LEFT_PANEL_CONTROLLER, _edaDragDropWayLeftPanel2.default).service(_edaDragDropWayLeftPanelSelectOptionManage.LEFT_PANEL_SELECT_OPTION_MANAGE_SERVICE, _edaDragDropWayLeftPanelSelectOptionManage2.default).service(_edaDragDropWayLeftPanelControllerModalProxy.CONTROLLER_MODAL_PROXY, _edaDragDropWayLeftPanelControllerModalProxy2.default).directive(_edaDragDropWayLeftpanelValidEditFooter.LEFT_PANEL_VALID_EDIT_FOOTER_DIRECTIVE, _edaDragDropWayLeftpanelValidEditFooter2.default).directive(_edaDragDropWayLeftpanelTextInputControl.LEFT_PANEL_TEXT_INPUT_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelTextInputControl2.default).directive(_edaDragDropWayLeftpanelTextareaControl.LEFT_PANEL_TEXTAREA_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelTextareaControl2.default).directive(_edaDragDropWayLeftpanelSubtitleControl.LEFT_PANEL_SUBTITLE_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelSubtitleControl2.default).directive(_edaDragDropWayLeftpanelRichTextEditorControl.LEFT_PANEL_RICH_TEXT_EDITOR_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelRichTextEditorControl2.default).directive(_edaDragDropWayLeftpanelRadioControl.LEFT_PANEL_RADIO_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelRadioControl2.default).directive(_edaDragDropWayLeftpanelPasswordControl.LEFT_PANEL_PASSWORD_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelPasswordControl2.default).directive(_edaDragDropWayLeftpanelHeaderControl.LEFT_PANEL_HEADER_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelHeaderControl2.default).directive(_edaDragDropWayLeftpanelGroupedSelectControl.LEFT_PANEL_GROUPED_SELECT_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelGroupedSelectControl2.default).directive(_edaDragDropWayLeftpanelDateControl.LEFT_PANEL_DATE_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelDateControl2.default).directive(_edaDragDropWayLeftpanelCheckBoxControl.LEFT_PANEL_CHECKBOX_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelCheckBoxControl2.default).directive(_edaDragDropWayLeftpanelBlankControl.LEFT_PANEL_BLANK_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelBlankControl2.default).directive(_edaDragDropWayLeftpanelBasicSelectControl.LEFT_PANEL_BASIC_SELECT_CONTROL_DIRECTIVE, _edaDragDropWayLeftpanelBasicSelectControl2.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5tb2R1bGUuanM/NzA3OCJdLCJuYW1lcyI6WyJMRUZUX1BBTkVMX01PRFVMRSIsImFuZ3VsYXIiLCJtb2R1bGUiLCJkaXJlY3RpdmUiLCJjb250cm9sbGVyIiwic2VydmljZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0E7Ozs7QUFHQTs7OztBQUdBOzs7O0FBR0E7Ozs7QUFHQTs7OztBQUdBOzs7O0FBR0E7Ozs7QUFHQTs7OztBQUdBOzs7O0FBR0E7Ozs7QUFHQTs7OztBQUdBOzs7O0FBR0E7Ozs7QUFHQTs7OztBQUdBOzs7O0FBR0E7Ozs7QUFHQTs7Ozs7O0FBS0EsSUFBTUEsb0JBQW9CLGlDQUExQixDLENBdERBO2tCQXdEZUMsUUFDTkMsTUFETSxDQUNDRixpQkFERCxFQUNvQixFQURwQixFQUVORyxTQUZNLG9GQUdOQyxVQUhNLG9GQUlFQyxPQUpGLDBJQUtFQSxPQUxGLDZIQU1FRixTQU5GLG1JQU9FQSxTQVBGLHNJQVFFQSxTQVJGLGtJQVNFQSxTQVRGLGtJQVVFQSxTQVZGLHNKQVdFQSxTQVhGLHlIQVlFQSxTQVpGLGtJQWFFQSxTQWJGLDRIQWNFQSxTQWRGLGtKQWVFQSxTQWZGLHNIQWdCRUEsU0FoQkYsa0lBaUJFQSxTQWpCRix5SEFrQkVBLFNBbEJGLDJJIiwiZmlsZSI6IjE1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cbmltcG9ydCBsZWZ0UGFuZWxDb250cm9sbGVyLCB7XG5cdExFRlRfUEFORUxfQ09OVFJPTExFUlxufVx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmcm9tICcuL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5jb250cm9sbGVyJztcbmltcG9ydCBsZWZ0UGFuZWwsIHtcblx0TEVGVF9QQU5FTF9ESVJFQ1RJVkVcbn1cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5sZWZ0UGFuZWwuZGlyZWN0aXZlJztcbmltcG9ydCBzZWxlY3RPcHRpb25NYW5nZSwge1xuICBMRUZUX1BBTkVMX1NFTEVDVF9PUFRJT05fTUFOQUdFX1NFUlZJQ0Vcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5zZWxlY3RPcHRpb25NYW5hZ2Uuc2VydmljZSc7XG5pbXBvcnQgY29udHJvbGxlck1vZGFsUHJveHksIHtcbiAgQ09OVFJPTExFUl9NT0RBTF9QUk9YWVxufSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdFBhbmVsLmNvbnRyb2xsZXJNb2RhbFByb3h5LnNlcnZpY2UnO1xuaW1wb3J0IGxlZnRQYW5lbFZhbGlkRWRpdEZvb3Rlciwge1xuICBMRUZUX1BBTkVMX1ZBTElEX0VESVRfRk9PVEVSX0RJUkVDVElWRVxufSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4vdmFsaWRFZGl0Rm9vdGVyL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC52YWxpZEVkaXRGb290ZXIuZGlyZWN0aXZlJztcbmltcG9ydCBsZWZ0UGFuZWxUZXh0SW5wdXRDb250cm9sLCB7XG4gIExFRlRfUEFORUxfVEVYVF9JTlBVVF9DT05UUk9MX0RJUkVDVElWRVxufSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4vVGV4dElucHV0Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudGV4dElucHV0Q29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IGxlZnRQYW5lbFRleHRhcmVhQ29udHJvbCwge1xuICBMRUZUX1BBTkVMX1RFWFRBUkVBX0NPTlRST0xfRElSRUNUSVZFXG59ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi9UZXh0QXJlYUNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnRleHRhcmVhQ29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IGxlZnRQYW5lbFN1YnRpdGxlQ29udHJvbCwge1xuICBMRUZUX1BBTkVMX1NVQlRJVExFX0NPTlRST0xfRElSRUNUSVZFXG59ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi9TdWJUaXRsZUNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnN1YnRpdGxlQ29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IGxlZnRQYW5lbFJpY2hUZXh0RWRpdG9yQ29udHJvbCwge1xuICBMRUZUX1BBTkVMX1JJQ0hfVEVYVF9FRElUT1JfQ09OVFJPTF9ESVJFQ1RJVkVcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL1JpY2hUZXh0RWRpdG9yQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmljaFRleHRFZGl0b3JDb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgbGVmdFBhbmVsUmFkaW9Db250cm9sLCB7XG4gIExFRlRfUEFORUxfUkFESU9fQ09OVFJPTF9ESVJFQ1RJVkVcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL1JhZGlvQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmFkaW9Db250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgbGVmdFBhbmVsUGFzc3dvcmRDb250cm9sLCB7XG4gIExFRlRfUEFORUxfUEFTU1dPUkRfQ09OVFJPTF9ESVJFQ1RJVkVcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL1Bhc3N3b3JkQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucGFzc3dvcmRDb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgbGVmdFBhbmVsSGVhZGVyQ29udHJvbCwge1xuICBMRUZUX1BBTkVMX0hFQURFUl9DT05UUk9MX0RJUkVDVElWRVxufSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4vSGVhZGVyQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuaGVhZGVyQ29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IGxlZnRQYW5lbEdyb3VwZWRTZWxlY3RDb250cm9sLCB7XG4gIExFRlRfUEFORUxfR1JPVVBFRF9TRUxFQ1RfQ09OVFJPTF9ESVJFQ1RJVkVcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL0dyb3VwZWRTZWxlY3RDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5ncm91cGVkU2VsZWN0Q29udHJvbC5kaXJlY3RpdmUnO1xuaW1wb3J0IGxlZnRQYW5lbERhdGVDb250cm9sLCB7XG4gIExFRlRfUEFORUxfREFURV9DT05UUk9MX0RJUkVDVElWRVxufSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4vRGF0ZUNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmRhdGVDb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgbGVmdFBhbmVsQ2hlY2tCb3hDb250cm9sLCB7XG4gIExFRlRfUEFORUxfQ0hFQ0tCT1hfQ09OVFJPTF9ESVJFQ1RJVkVcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL0NoZWNrQm94Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuY2hlY2tCb3hDb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgbGVmdFBhbmVsQmxhbmtDb250cm9sLCB7XG4gIExFRlRfUEFORUxfQkxBTktfQ09OVFJPTF9ESVJFQ1RJVkVcbn0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL0JsYW5rQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuYmxhbmtDb250cm9sLmRpcmVjdGl2ZSc7XG5pbXBvcnQgbGVmdFBhbmVsQmFzaWNTZWxlY3RDb250cm9sLCB7XG4gIExFRlRfUEFORUxfQkFTSUNfU0VMRUNUX0NPTlRST0xfRElSRUNUSVZFXG59ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi9CYXNpY1NlbGVjdENvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmJhc2ljU2VsZWN0Q29udHJvbC5kaXJlY3RpdmUnO1xuXG5cbmNvbnN0IExFRlRfUEFORUxfTU9EVUxFID0gJ2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5tb2R1bGUnO1xuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG5cdFx0XHRcdFx0XHRcdFx0Lm1vZHVsZShMRUZUX1BBTkVMX01PRFVMRSwgW10pXG5cdFx0XHRcdFx0XHRcdFx0LmRpcmVjdGl2ZShMRUZUX1BBTkVMX0RJUkVDVElWRSwgbGVmdFBhbmVsKVxuXHRcdFx0XHRcdFx0XHRcdC5jb250cm9sbGVyKExFRlRfUEFORUxfQ09OVFJPTExFUiwgbGVmdFBhbmVsQ29udHJvbGxlcilcbiAgICAgICAgICAgICAgICAuc2VydmljZShMRUZUX1BBTkVMX1NFTEVDVF9PUFRJT05fTUFOQUdFX1NFUlZJQ0UsIHNlbGVjdE9wdGlvbk1hbmdlKVxuICAgICAgICAgICAgICAgIC5zZXJ2aWNlKENPTlRST0xMRVJfTU9EQUxfUFJPWFksIGNvbnRyb2xsZXJNb2RhbFByb3h5KVxuICAgICAgICAgICAgICAgIC5kaXJlY3RpdmUoTEVGVF9QQU5FTF9WQUxJRF9FRElUX0ZPT1RFUl9ESVJFQ1RJVkUsIGxlZnRQYW5lbFZhbGlkRWRpdEZvb3RlcilcbiAgICAgICAgICAgICAgICAuZGlyZWN0aXZlKExFRlRfUEFORUxfVEVYVF9JTlBVVF9DT05UUk9MX0RJUkVDVElWRSwgbGVmdFBhbmVsVGV4dElucHV0Q29udHJvbClcbiAgICAgICAgICAgICAgICAuZGlyZWN0aXZlKExFRlRfUEFORUxfVEVYVEFSRUFfQ09OVFJPTF9ESVJFQ1RJVkUsIGxlZnRQYW5lbFRleHRhcmVhQ29udHJvbClcbiAgICAgICAgICAgICAgICAuZGlyZWN0aXZlKExFRlRfUEFORUxfU1VCVElUTEVfQ09OVFJPTF9ESVJFQ1RJVkUsIGxlZnRQYW5lbFN1YnRpdGxlQ29udHJvbClcbiAgICAgICAgICAgICAgICAuZGlyZWN0aXZlKExFRlRfUEFORUxfUklDSF9URVhUX0VESVRPUl9DT05UUk9MX0RJUkVDVElWRSwgbGVmdFBhbmVsUmljaFRleHRFZGl0b3JDb250cm9sKVxuICAgICAgICAgICAgICAgIC5kaXJlY3RpdmUoTEVGVF9QQU5FTF9SQURJT19DT05UUk9MX0RJUkVDVElWRSwgbGVmdFBhbmVsUmFkaW9Db250cm9sKVxuICAgICAgICAgICAgICAgIC5kaXJlY3RpdmUoTEVGVF9QQU5FTF9QQVNTV09SRF9DT05UUk9MX0RJUkVDVElWRSwgbGVmdFBhbmVsUGFzc3dvcmRDb250cm9sKVxuICAgICAgICAgICAgICAgIC5kaXJlY3RpdmUoTEVGVF9QQU5FTF9IRUFERVJfQ09OVFJPTF9ESVJFQ1RJVkUsIGxlZnRQYW5lbEhlYWRlckNvbnRyb2wpXG4gICAgICAgICAgICAgICAgLmRpcmVjdGl2ZShMRUZUX1BBTkVMX0dST1VQRURfU0VMRUNUX0NPTlRST0xfRElSRUNUSVZFLCBsZWZ0UGFuZWxHcm91cGVkU2VsZWN0Q29udHJvbClcbiAgICAgICAgICAgICAgICAuZGlyZWN0aXZlKExFRlRfUEFORUxfREFURV9DT05UUk9MX0RJUkVDVElWRSwgbGVmdFBhbmVsRGF0ZUNvbnRyb2wpXG4gICAgICAgICAgICAgICAgLmRpcmVjdGl2ZShMRUZUX1BBTkVMX0NIRUNLQk9YX0NPTlRST0xfRElSRUNUSVZFLCBsZWZ0UGFuZWxDaGVja0JveENvbnRyb2wpXG4gICAgICAgICAgICAgICAgLmRpcmVjdGl2ZShMRUZUX1BBTkVMX0JMQU5LX0NPTlRST0xfRElSRUNUSVZFLCBsZWZ0UGFuZWxCbGFua0NvbnRyb2wpXG4gICAgICAgICAgICAgICAgLmRpcmVjdGl2ZShMRUZUX1BBTkVMX0JBU0lDX1NFTEVDVF9DT05UUk9MX0RJUkVDVElWRSwgbGVmdFBhbmVsQmFzaWNTZWxlY3RDb250cm9sKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvZWRhRHJhZ0Ryb3BXYXkubGVmdFBhbmVsLm1vZHVsZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  96. /***/ },
  97. /* 16 */
  98. /***/ function(module, exports, __webpack_require__) {
  99. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.LEFT_PANEL_CONTROLLERAS = exports.LEFT_PANEL_CONTROLLER = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _edaDragDropWayLeftPanelController = __webpack_require__(17);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LEFT_PANEL_CONTROLLER = 'leftPanelController';\nvar LEFT_PANEL_CONTROLLERAS = 'leftPanelCtrl';\n\nvar leftPanelController = function () {\n\tfunction leftPanelController(toaster, $timeout, $selectOptionMange, controllerModalProxy) {\n\t\t_classCallCheck(this, leftPanelController);\n\n\t\tthis.toaster = toaster;\n\t\tthis.$timeout = $timeout;\n\t\tthis.$selectOptionMange = $selectOptionMange;\n\t\tthis.controllerModalProxy = controllerModalProxy;\n\n\t\tthis.init();\n\t}\n\n\t_createClass(leftPanelController, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tthis.proxyModel = this.controllerModalProxy.proxyModel;\n\t\t\tthis.proxyModel.selectedControl = this.proxyModel.temporyConfig.selectedControl;\n\t\t\tthis.basicSelectRowCollection = this.controllerModalProxy.basicSelectRowCollection;\n\t\t\tthis.newOptionBasicSelect = this.controllerModalProxy.newOptionBasicSelect;\n\n\t\t\tthis.groupedSelectRowCollection = this.controllerModalProxy.groupedSelectRowCollection;\n\t\t\tthis.newOptionGroupedSelect = this.controllerModalProxy.newOptionGroupedSelect;\n\t\t\tthis.GroupedSelectGroups = this.controllerModalProxy.GroupedSelectGroups;\n\t\t\tthis.newGroupGroupedSelect = this.controllerModalProxy.newGroupGroupedSelect;\n\t\t\tthis.groupSelectGroupClick = this.controllerModalProxy.groupSelectGroupClick;\n\n\t\t\tthis.radioRowCollection = this.controllerModalProxy.radioRowCollection;\n\t\t\tthis.newOptionRadio = this.controllerModalProxy.newOptionRadio;\n\n\t\t\tthis.demodt = {};\n\t\t\tthis.demodt.formats = _edaDragDropWayLeftPanelController.dateFormats;\n\t\t\tthis.dateOptions = this.getDateOptions();\n\n\t\t\t// this.controllerModalProxy.resetAllTemporyModels();\n\t\t\tthis.initNyaSelectConformingSelectedControl();\n\t\t}\n\t}, {\n\t\tkey: 'getDateOptions',\n\t\tvalue: function getDateOptions() {\n\t\t\tvar dateOptions = {\n\t\t\t\tformatYear: 'yy',\n\t\t\t\tstartingDay: 1,\n\t\t\t\tshowWeeks: true,\n\t\t\t\tinitDate: null\n\t\t\t};\n\t\t\treturn dateOptions;\n\t\t}\n\t}, {\n\t\tkey: 'initNyaSelectConformingSelectedControl',\n\t\tvalue: function initNyaSelectConformingSelectedControl() {\n\t\t\t//place proxyModel to selection if not none :\n\t\t\tif (this.proxyModel.temporyConfig.selectedControl !== 'none') {\n\t\t\t\tfor (var i = this.proxyModel.controls.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (this.proxyModel.controls[i].id === this.proxyModel.temporyConfig.selectedControl) this.modelproxyModel = this.proxyModel.controls[i];\n\t\t\t\t}\n\t\t\t\tif (this.proxyModel.temporyConfig.selectedControl === 'BasicSelect') this.controllerModalProxy.bindBasicSelectFromProxyModel(self.basicSelectRowCollection);\n\t\t\t\tif (this.proxyModel.temporyConfig.selectedControl === 'GroupedSelect') this.controllerModalProxy.bindGroupedSelectFromProxyModel(this.groupedSelectRowCollection, this.GroupedSelectGroups);\n\t\t\t\tif (this.proxyModel.temporyConfig.selectedControl === 'Radio') this.controllerModalProxy.bindRadioFromProxyModel(this.radioRowCollection);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateSpecialControl',\n\t\tvalue: function updateSpecialControl() {\n\t\t\t//refresh service data for particular controls as selects and radio\n\t\t\tthis.proxyModel.basicSelectRowCollection = this.basicSelectRowCollection;\n\t\t\tthis.proxyModel.newOptionBasicSelect = this.newOptionBasicSelect;\n\t\t\tthis.proxyModel.groupedSelectRowCollection = this.groupedSelectRowCollection;\n\t\t\tthis.proxyModel.newOptionGroupedSelect = this.newOptionGroupedSelect;\n\t\t\tthis.proxyModel.GroupedSelectGroups = this.GroupedSelectGroups;\n\t\t\tthis.proxyModel.newGroupGroupedSelect = this.newGroupGroupedSelect;\n\t\t\tthis.proxyModel.groupSelectGroupClick = this.groupSelectGroupClick;\n\t\t\tthis.proxyModel.radioRowCollection = this.radioRowCollection;\n\t\t\tthis.proxyModel.newOptionRadio = this.newOptionRadio;\n\t\t\t//force apply update proxyModel\n\t\t\tthis.controllerModalProxy.bindSpecialCtrlTemporyModelsToProxyModel();\n\t\t\treturn true;\n\t\t}\n\t}, {\n\t\tkey: 'resetTemporyConfig',\n\t\tvalue: function resetTemporyConfig() {\n\t\t\tthis.proxyModel.temporyConfig = {\n\t\t\t\tformlyLabel: '',\n\t\t\t\tformlyRequired: false,\n\t\t\t\tformlyPlaceholder: '',\n\t\t\t\tformlyDesciption: '',\n\t\t\t\tformlyOptions: []\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: 'resetControl',\n\t\tvalue: function resetControl() {\n\t\t\tthis.proxyModel.temporyConfig.formlyLabel = '';\n\t\t\tthis.proxyModel.temporyConfig.formlyRequired = false;\n\t\t\tthis.proxyModel.temporyConfig.formlyPlaceholder = '';\n\t\t\tthis.proxyModel.temporyConfig.formlyDesciption = '';\n\t\t\tthis.proxyModel.temporyConfig.formlyOptions = [];\n\t\t\tthis.proxyModel.temporyConfig.datepickerPopup = this.initDatePicker();\n\t\t}\n\t}, {\n\t\tkey: 'initDatePicker',\n\t\tvalue: function initDatePicker() {\n\t\t\tthis.proxyModel.temporyConfig.datepickerPopup = this.demodt.formats[0];\n\t\t}\n\t}, {\n\t\tkey: 'selectThisControl',\n\t\tvalue: function selectThisControl(controlName) {\n\t\t\tthis.proxyModel.selectedControl = 'none';\n\t\t\tthis.resetTemporyConfig();\n\t\t\tfor (var i = this.proxyModel.controls.length - 1; i >= 0; i--) {\n\t\t\t\tif (this.proxyModel.controls[i].id === controlName) {\n\t\t\t\t\tthis.proxyModel.selectedControl = this.proxyModel.controls[i].id;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.proxyModel.selectedControl === 'Date') this.initDatePicker();\n\t\t}\n\n\t\t/**\n \t* ==============================================================\n \t* specific controls management\n \t* (display, properties.... : ex : grouped Select)\n \t* ==============================================================\n \t*/\n\n\t}, {\n\t\tkey: 'addNewOptionRadio',\n\t\tvalue: function addNewOptionRadio() {\n\t\t\tvar result = this.$selectOptionMange.addNewOptionRadio(this.radioRowCollection, this.newOptionRadio.saisie);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: '\\'' + this.newOptionRadio.saisie + '\\' cannot be added.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t\t//reset input\n\t\t\tthis.newOptionRadio = { saisie: '' };\n\t\t}\n\t}, {\n\t\tkey: 'removeRadioRow',\n\t\tvalue: function removeRadioRow(index) {\n\t\t\tvar result = this.$selectOptionMange.removeOption(this.radioRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Delete was cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'upThisRadioRow',\n\t\tvalue: function upThisRadioRow(index) {\n\t\t\tvar result = this.$selectOptionMange.upthisOption(this.radioRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Operation cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'downThisRadioRow',\n\t\tvalue: function downThisRadioRow(index) {\n\t\t\tvar result = this.$selectOptionMange.downthisOption(this.radioRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Operation cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'addNewOptionBasicSelect',\n\t\tvalue: function addNewOptionBasicSelect() {\n\t\t\tvar result = this.$selectOptionMange.addNewOptionBasicSelect(this.basicSelectRowCollection, this.newOptionBasicSelect.saisie);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: '\\'' + this.newOptionBasicSelect.saisie + '\\' cannot be added.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.newOptionBasicSelect = { saisie: '' }; //reset input\n\t\t}\n\t}, {\n\t\tkey: 'removeRow',\n\t\tvalue: function removeRow(index) {\n\t\t\tvar result = this.$selectOptionMange.removeOption(this.basicSelectRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Delete was cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'upThisRow',\n\t\tvalue: function upThisRow(index) {\n\t\t\tvar result = this.$selectOptionMange.upthisOption(this.basicSelectRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Operation cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'downThisRow',\n\t\tvalue: function downThisRow(index) {\n\t\t\tvar result = this.$selectOptionMange.downthisOption(this.basicSelectRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Operation cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'showGroupListToChoose',\n\t\tvalue: function showGroupListToChoose() {\n\t\t\tthis.groupSelectGroupClick.showList = !this.groupSelectGroupClick.showList;\n\t\t}\n\t}, {\n\t\tkey: 'addNewGroupToGroupedSelect',\n\t\tvalue: function addNewGroupToGroupedSelect() {\n\t\t\tif (this.newGroupGroupedSelect.saisie !== '') {\n\t\t\t\tfor (var i = this.GroupedSelectGroups.list.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (this.GroupedSelectGroups.list[i] === this.newGroupGroupedSelect.saisie) {\n\t\t\t\t\t\tthis.toaster.pop({\n\t\t\t\t\t\t\ttype: 'warning',\n\t\t\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\t\t\ttitle: 'Group already exists',\n\t\t\t\t\t\t\tbody: 'No group added.',\n\t\t\t\t\t\t\tshowCloseButton: true\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.GroupedSelectGroups.list.push(this.newGroupGroupedSelect.saisie);\n\t\t\t} else {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: 'Not a valid group to add',\n\t\t\t\t\tbody: 'No group added.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.newGroupGroupedSelect.saisie = '';\n\t\t}\n\t}, {\n\t\tkey: 'addNewOptionGroupedSelect',\n\t\tvalue: function addNewOptionGroupedSelect() {\n\t\t\tvar result = this.$selectOptionMange.addNewOptionGroupedSelect(this.groupedSelectRowCollection, this.newOptionGroupedSelect.saisie, '');\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: '\\'' + this.newOptionGroupedSelect.saisie + '\\' cannot be added.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t\t//bind nya : dont bind here $apply is not done fast enough\n\t\t\t//bindGroupedSelectToNya();\n\t\t\t//reset input\n\t\t\tthis.newOptionGroupedSelect = { saisie: '' };\n\t\t}\n\t}, {\n\t\tkey: 'removeGroupedSelectRow',\n\t\tvalue: function removeGroupedSelectRow(index) {\n\t\t\tvar result = this.$selectOptionMange.removeOption(this.groupedSelectRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Delete was cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'upThisGroupedSelectRow',\n\t\tvalue: function upThisGroupedSelectRow(index) {\n\t\t\tvar result = this.$selectOptionMange.upthisOption(this.groupedSelectRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Operation cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'downThisGroupedSelectRow',\n\t\tvalue: function downThisGroupedSelectRow(index) {\n\t\t\tvar result = this.$selectOptionMange.downthisOption(this.groupedSelectRowCollection, index);\n\t\t\tif (result.resultFlag === false) {\n\t\t\t\tthis.toaster.pop({\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\ttimeout: 2000,\n\t\t\t\t\ttitle: result.details,\n\t\t\t\t\tbody: 'Operation cancelled.',\n\t\t\t\t\tshowCloseButton: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'today',\n\t\tvalue: function today() {\n\t\t\t(0, _edaDragDropWayLeftPanelController.setToday)(this.demodt);\n\t\t}\n\t}, {\n\t\tkey: 'clear',\n\t\tvalue: function clear() {\n\t\t\t(0, _edaDragDropWayLeftPanelController.clearDateTime)(this.demodt);\n\t\t}\n\t}, {\n\t\tkey: 'open',\n\t\tvalue: function open($event) {\n\t\t\t$event.preventDefault();\n\t\t\t$event.stopPropagation();\n\t\t\tthis.demodt.opened = true;\n\t\t}\n\t}]);\n\n\treturn leftPanelController;\n}();\n\nleftPanelController.$inject = ['toaster', '$timeout', '$selectOptionMange', 'controllerModalProxy'];\n\nexports.default = leftPanelController;\nexports.LEFT_PANEL_CONTROLLER = LEFT_PANEL_CONTROLLER;\nexports.LEFT_PANEL_CONTROLLERAS = LEFT_PANEL_CONTROLLERAS;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5jb250cm9sbGVyLmpzPzNlZWQiXSwibmFtZXMiOlsiTEVGVF9QQU5FTF9DT05UUk9MTEVSIiwiTEVGVF9QQU5FTF9DT05UUk9MTEVSQVMiLCJsZWZ0UGFuZWxDb250cm9sbGVyIiwidG9hc3RlciIsIiR0aW1lb3V0IiwiJHNlbGVjdE9wdGlvbk1hbmdlIiwiY29udHJvbGxlck1vZGFsUHJveHkiLCJpbml0IiwicHJveHlNb2RlbCIsInNlbGVjdGVkQ29udHJvbCIsInRlbXBvcnlDb25maWciLCJiYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24iLCJuZXdPcHRpb25CYXNpY1NlbGVjdCIsImdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uIiwibmV3T3B0aW9uR3JvdXBlZFNlbGVjdCIsIkdyb3VwZWRTZWxlY3RHcm91cHMiLCJuZXdHcm91cEdyb3VwZWRTZWxlY3QiLCJncm91cFNlbGVjdEdyb3VwQ2xpY2siLCJyYWRpb1Jvd0NvbGxlY3Rpb24iLCJuZXdPcHRpb25SYWRpbyIsImRlbW9kdCIsImZvcm1hdHMiLCJkYXRlT3B0aW9ucyIsImdldERhdGVPcHRpb25zIiwiaW5pdE55YVNlbGVjdENvbmZvcm1pbmdTZWxlY3RlZENvbnRyb2wiLCJmb3JtYXRZZWFyIiwic3RhcnRpbmdEYXkiLCJzaG93V2Vla3MiLCJpbml0RGF0ZSIsImkiLCJjb250cm9scyIsImxlbmd0aCIsImlkIiwibW9kZWxwcm94eU1vZGVsIiwiYmluZEJhc2ljU2VsZWN0RnJvbVByb3h5TW9kZWwiLCJzZWxmIiwiYmluZEdyb3VwZWRTZWxlY3RGcm9tUHJveHlNb2RlbCIsImJpbmRSYWRpb0Zyb21Qcm94eU1vZGVsIiwiYmluZFNwZWNpYWxDdHJsVGVtcG9yeU1vZGVsc1RvUHJveHlNb2RlbCIsImZvcm1seUxhYmVsIiwiZm9ybWx5UmVxdWlyZWQiLCJmb3JtbHlQbGFjZWhvbGRlciIsImZvcm1seURlc2NpcHRpb24iLCJmb3JtbHlPcHRpb25zIiwiZGF0ZXBpY2tlclBvcHVwIiwiaW5pdERhdGVQaWNrZXIiLCJjb250cm9sTmFtZSIsInJlc2V0VGVtcG9yeUNvbmZpZyIsInJlc3VsdCIsImFkZE5ld09wdGlvblJhZGlvIiwic2Fpc2llIiwicmVzdWx0RmxhZyIsInBvcCIsInR5cGUiLCJ0aW1lb3V0IiwidGl0bGUiLCJkZXRhaWxzIiwiYm9keSIsInNob3dDbG9zZUJ1dHRvbiIsImluZGV4IiwicmVtb3ZlT3B0aW9uIiwidXB0aGlzT3B0aW9uIiwiZG93bnRoaXNPcHRpb24iLCJhZGROZXdPcHRpb25CYXNpY1NlbGVjdCIsInNob3dMaXN0IiwibGlzdCIsInB1c2giLCJhZGROZXdPcHRpb25Hcm91cGVkU2VsZWN0IiwiJGV2ZW50IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJvcGVuZWQiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7OztBQU1BLElBQU1BLHdCQUF5QixxQkFBL0I7QUFDQSxJQUFNQywwQkFBMEIsZUFBaEM7O0lBRU1DLG1CO0FBQ0wsOEJBQVlDLE9BQVosRUFDTUMsUUFETixFQUVNQyxrQkFGTixFQUdNQyxvQkFITixFQUcyQjtBQUFBOztBQUUxQixPQUFLSCxPQUFMLEdBQXNCQSxPQUF0QjtBQUNBLE9BQUtDLFFBQUwsR0FBdUJBLFFBQXZCO0FBQ0EsT0FBS0Msa0JBQUwsR0FBNEJBLGtCQUE1QjtBQUNBLE9BQUtDLG9CQUFMLEdBQTRCQSxvQkFBNUI7O0FBRUEsT0FBS0MsSUFBTDtBQUNBOzs7O3lCQUVNO0FBQ04sUUFBS0MsVUFBTCxHQUEwQixLQUFLRixvQkFBTCxDQUEwQkUsVUFBcEQ7QUFDQSxRQUFLQSxVQUFMLENBQWdCQyxlQUFoQixHQUFrQyxLQUFLRCxVQUFMLENBQWdCRSxhQUFoQixDQUE4QkQsZUFBaEU7QUFDQSxRQUFLRSx3QkFBTCxHQUFpQyxLQUFLTCxvQkFBTCxDQUEw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QkMsSyxFQUFNO0FBQzdCLE9BQUlYLFNBQVMsS0FBSzNDLGtCQUFMLENBQXdCeUQsY0FBeEIsQ0FBdUMsS0FBS2pELDBCQUE1QyxFQUF3RThDLEtBQXhFLENBQWI7QUFDQSxPQUFJWCxPQUFPRyxVQUFQLEtBQXNCLEtBQTFCLEVBQWlDO0FBQ2hDLFNBQUtoRCxPQUFMLENBQWFpRCxHQUFiLENBQWlCO0FBQ2hCQyxXQUFRLFNBRFE7QUFFaEJDLGNBQVUsSUFGTTtBQUdoQkMsWUFBU1AsT0FBT1EsT0FIQTtBQUloQkMsV0FBUSxzQkFKUTtBQUtoQkMsc0JBQWlCO0FBTEQsS0FBakI7QUFPQTtBQUNGOzs7MEJBR007QUFDTixvREFBUyxLQUFLdEMsTUFBZDtBQUNBOzs7MEJBR007QUFDTix5REFBYyxLQUFLQSxNQUFuQjtBQUNBOzs7dUJBR0lnRCxNLEVBQVE7QUFDWkEsVUFBT0MsY0FBUDtBQUNBRCxVQUFPRSxlQUFQO0FBQ0EsUUFBS2xELE1BQUwsQ0FBWW1ELE1BQVosR0FBcUIsSUFBckI7QUFDQTs7Ozs7O0FBTUZyRSxvQkFBb0JzRSxPQUFwQixHQUE4QixDQUM3QixTQUQ2QixFQUU3QixVQUY2QixFQUc3QixvQkFINkIsRUFJN0Isc0JBSjZCLENBQTlCOztrQkFPZXRFLG1CO1FBR2RGLHFCLEdBQUFBLHFCO1FBQ0FDLHVCLEdBQUFBLHVCIiwiZmlsZSI6IjE2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0ZGF0ZUZvcm1hdHMsXG5cdHNldFRvZGF5LFxuXHRjbGVhckRhdGVUaW1lXG59IFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdFBhbmVsLmNvbnRyb2xsZXIuaGVscGVycyc7XG5cbmNvbnN0IExFRlRfUEFORUxfQ09OVFJPTExFUiBcdD1cdCdsZWZ0UGFuZWxDb250cm9sbGVyJztcbmNvbnN0IExFRlRfUEFORUxfQ09OVFJPTExFUkFTXHQ9ICdsZWZ0UGFuZWxDdHJsJztcblxuY2xhc3MgbGVmdFBhbmVsQ29udHJvbGxlcntcblx0Y29uc3RydWN0b3IodG9hc3Rlcixcblx0XHRcdFx0XHRcdFx0JHRpbWVvdXQsXG5cdFx0XHRcdFx0XHRcdCRzZWxlY3RPcHRpb25NYW5nZSxcblx0XHRcdFx0XHRcdFx0Y29udHJvbGxlck1vZGFsUHJveHkpe1xuXG5cdFx0dGhpcy50b2FzdGVyICBcdFx0XHRcdFx0XHQ9IHRvYXN0ZXI7XG5cdFx0dGhpcy4kdGltZW91dCAgXHRcdFx0XHRcdFx0PSAkdGltZW91dDtcblx0XHR0aGlzLiRzZWxlY3RPcHRpb25NYW5nZSAgXHQ9ICRzZWxlY3RPcHRpb25NYW5nZTtcblx0XHR0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5ID0gY29udHJvbGxlck1vZGFsUHJveHk7XG5cblx0XHR0aGlzLmluaXQoKTtcblx0fVxuXG5cdGluaXQoKSB7XG5cdFx0dGhpcy5wcm94eU1vZGVsIFx0XHRcdFx0XHRcdFx0XHQ9IHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkucHJveHlNb2RlbDtcblx0XHR0aGlzLnByb3h5TW9kZWwuc2VsZWN0ZWRDb250cm9sID0gdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuc2VsZWN0ZWRDb250cm9sO1xuXHRcdHRoaXMuYmFzaWNTZWxlY3RSb3dDb2xsZWN0aW9uIFx0PSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbjtcblx0XHR0aGlzLm5ld09wdGlvbkJhc2ljU2VsZWN0IFx0XHRcdD0gdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5uZXdPcHRpb25CYXNpY1NlbGVjdDtcblxuXHRcdHRoaXMuZ3JvdXBlZFNlbGVjdFJvd0NvbGxlY3Rpb24gPSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5Lmdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uO1xuXHRcdHRoaXMubmV3T3B0aW9uR3JvdXBlZFNlbGVjdCBcdFx0PSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5Lm5ld09wdGlvbkdyb3VwZWRTZWxlY3Q7XG5cdFx0dGhpcy5Hcm91cGVkU2VsZWN0R3JvdXBzIFx0XHRcdFx0PSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5Lkdyb3VwZWRTZWxlY3RHcm91cHM7XG5cdFx0dGhpcy5uZXdHcm91cEdyb3VwZWRTZWxlY3QgXHRcdFx0PSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5Lm5ld0dyb3VwR3JvdXBlZFNlbGVjdDtcblx0XHR0aGlzLmdyb3VwU2VsZWN0R3JvdXBDbGljayBcdFx0XHQ9IHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuZ3JvdXBTZWxlY3RHcm91cENsaWNrO1xuXG5cdFx0dGhpcy5yYWRpb1Jvd0NvbGxlY3Rpb24gXHRcdFx0XHQ9IHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkucmFkaW9Sb3dDb2xsZWN0aW9uO1xuXHRcdHRoaXMubmV3T3B0aW9uUmFkaW8gXHRcdFx0XHRcdFx0PSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5Lm5ld09wdGlvblJhZGlvO1xuXG5cdFx0dGhpcy5kZW1vZHQgXHRcdFx0XHRcdFx0XHRcdFx0XHQ9IHt9O1xuXHRcdHRoaXMuZGVtb2R0LmZvcm1hdHNcdFx0XHRcdFx0XHRcdD0gZGF0ZUZvcm1hdHM7XG5cdFx0dGhpcy5kYXRlT3B0aW9uc1x0XHRcdFx0XHRcdFx0XHQ9IHRoaXMuZ2V0RGF0ZU9wdGlvbnMoKTtcblxuXHRcdC8vIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkucmVzZXRBbGxUZW1wb3J5TW9kZWxzKCk7XG4gICAgdGhpcy5pbml0TnlhU2VsZWN0Q29uZm9ybWluZ1NlbGVjdGVkQ29udHJvbCgpO1xuXHR9XG5cblx0Z2V0RGF0ZU9wdGlvbnMoKSB7XG5cdFx0bGV0IGRhdGVPcHRpb25zID0gIHtcblx0XHRcdGZvcm1hdFllYXJcdDogJ3l5Jyxcblx0XHRcdHN0YXJ0aW5nRGF5XHQ6IDEsXG5cdFx0XHRzaG93V2Vla3NcdFx0OiB0cnVlLFxuXHRcdFx0aW5pdERhdGVcdFx0OiBudWxsXG5cdFx0fTtcblx0XHRyZXR1cm4gZGF0ZU9wdGlvbnM7XG5cdH1cblxuXHRpbml0TnlhU2VsZWN0Q29uZm9ybWluZ1NlbGVjdGVkQ29udHJvbCgpIHtcblx0XHQvL3BsYWNlIHByb3h5TW9kZWwgdG8gc2VsZWN0aW9uIGlmIG5vdCBub25lIDpcblx0XHRpZiAodGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuc2VsZWN0ZWRDb250cm9sICE9PSAnbm9uZScpIHtcblx0XHRcdGZvciAobGV0IGkgPSB0aGlzLnByb3h5TW9kZWwuY29udHJvbHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcblx0XHRcdFx0XHRpZiAodGhpcy5wcm94eU1vZGVsLmNvbnRyb2xzW2ldLmlkID09PSB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5zZWxlY3RlZENvbnRyb2wpIHRoaXMubW9kZWxwcm94eU1vZGVsID0gdGhpcy5wcm94eU1vZGVsLmNvbnRyb2xzW2ldO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLnNlbGVjdGVkQ29udHJvbCA9PT0gJ0Jhc2ljU2VsZWN0JykgdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5iaW5kQmFzaWNTZWxlY3RGcm9tUHJveHlNb2RlbChzZWxmLmJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbik7XG5cdFx0XHRpZiAodGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuc2VsZWN0ZWRDb250cm9sID09PSAnR3JvdXBlZFNlbGVjdCcpIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuYmluZEdyb3VwZWRTZWxlY3RGcm9tUHJveHlNb2RlbCh0aGlzLmdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uLCB0aGlzLkdyb3VwZWRTZWxlY3RHcm91cHMpO1xuXHRcdFx0aWYgKHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLnNlbGVjdGVkQ29udHJvbCA9PT0gJ1JhZGlvJykgdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5iaW5kUmFkaW9Gcm9tUHJveHlNb2RlbCh0aGlzLnJhZGlvUm93Q29sbGVjdGlvbik7XG5cdFx0fVxuXHR9XG5cblx0dXBkYXRlU3BlY2lhbENvbnRyb2woKSB7XG5cdFx0Ly9yZWZyZXNoIHNlcnZpY2UgZGF0YSBmb3IgcGFydGljdWxhciBjb250cm9scyBhcyBzZWxlY3RzIGFuZCByYWRpb1xuXHRcdHRoaXMucHJveHlNb2RlbC5iYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24gXHRcdD0gdGhpcy5iYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb247XG5cdFx0dGhpcy5wcm94eU1vZGVsLm5ld09wdGlvbkJhc2ljU2VsZWN0IFx0XHRcdFx0PSB0aGlzLm5ld09wdGlvbkJhc2ljU2VsZWN0O1xuXHRcdHRoaXMucHJveHlNb2RlbC5ncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbiBcdD0gdGhpcy5ncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbjtcblx0XHR0aGlzLnByb3h5TW9kZWwubmV3T3B0aW9uR3JvdXBlZFNlbGVjdCBcdFx0XHQ9IHRoaXMubmV3T3B0aW9uR3JvdXBlZFNlbGVjdDtcblx0XHR0aGlzLnByb3h5TW9kZWwuR3JvdXBlZFNlbGVjdEdyb3VwcyBcdFx0XHRcdD0gdGhpcy5Hcm91cGVkU2VsZWN0R3JvdXBzO1xuXHRcdHRoaXMucHJveHlNb2RlbC5uZXdHcm91cEdyb3VwZWRTZWxlY3QgXHRcdFx0PSB0aGlzLm5ld0dyb3VwR3JvdXBlZFNlbGVjdDtcblx0XHR0aGlzLnByb3h5TW9kZWwuZ3JvdXBTZWxlY3RHcm91cENsaWNrIFx0XHRcdD0gdGhpcy5ncm91cFNlbGVjdEdyb3VwQ2xpY2s7XG5cdFx0dGhpcy5wcm94eU1vZGVsLnJhZGlvUm93Q29sbGVjdGlvbiBcdFx0XHRcdFx0PSB0aGlzLnJhZGlvUm93Q29sbGVjdGlvbjtcblx0XHR0aGlzLnByb3h5TW9kZWwubmV3T3B0aW9uUmFkaW8gXHRcdFx0XHRcdFx0XHQ9IHRoaXMubmV3T3B0aW9uUmFkaW87XG5cdFx0Ly9mb3JjZSBhcHBseSB1cGRhdGUgcHJveHlNb2RlbFxuXHRcdHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuYmluZFNwZWNpYWxDdHJsVGVtcG9yeU1vZGVsc1RvUHJveHlNb2RlbCgpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmVzZXRUZW1wb3J5Q29uZmlnKCkge1xuXHRcdHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnID0ge1xuXHRcdFx0Zm9ybWx5TGFiZWxcdFx0XHRcdDogJycsXG5cdFx0XHRmb3JtbHlSZXF1aXJlZFx0XHQ6IGZhbHNlLFxuXHRcdFx0Zm9ybWx5UGxhY2Vob2xkZXJcdDogJycsXG5cdFx0XHRmb3JtbHlEZXNjaXB0aW9uXHQ6ICcnLFxuXHRcdFx0Zm9ybWx5T3B0aW9uc1x0XHRcdDogW11cblx0XHR9O1xuXHR9XG5cblx0cmVzZXRDb250cm9sKCkge1xuXHRcdHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seUxhYmVsIFx0XHRcdD0gJyc7XG5cdFx0dGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UmVxdWlyZWQgXHRcdD0gZmFsc2U7XG5cdFx0dGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UGxhY2Vob2xkZXJcdD0gJyc7XG5cdFx0dGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5RGVzY2lwdGlvbiBcdD0gJyc7XG5cdFx0dGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9ucyBcdFx0PSBbXTtcblx0XHR0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5kYXRlcGlja2VyUG9wdXAgICA9IHRoaXMuaW5pdERhdGVQaWNrZXIoKTtcblx0fVxuXG5cdGluaXREYXRlUGlja2VyKCkge1xuXHRcdHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmRhdGVwaWNrZXJQb3B1cCA9IHRoaXMuZGVtb2R0LmZvcm1hdHNbMF07XG5cdH1cblxuXHRzZWxlY3RUaGlzQ29udHJvbChjb250cm9sTmFtZSl7XG5cdFx0dGhpcy5wcm94eU1vZGVsLnNlbGVjdGVkQ29udHJvbCA9ICdub25lJztcblx0XHR0aGlzLnJlc2V0VGVtcG9yeUNvbmZpZygpO1xuXHRcdGZvciAobGV0IGkgPSB0aGlzLnByb3h5TW9kZWwuY29udHJvbHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcblx0XHRcdGlmICh0aGlzLnByb3h5TW9kZWwuY29udHJvbHNbaV0uaWQgPT09IGNvbnRyb2xOYW1lKSB7XG5cdFx0XHRcdHRoaXMucHJveHlNb2RlbC5zZWxlY3RlZENvbnRyb2wgPSB0aGlzLnByb3h5TW9kZWwuY29udHJvbHNbaV0uaWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLnByb3h5TW9kZWwuc2VsZWN0ZWRDb250cm9sID09PSAnRGF0ZScpIHRoaXMuaW5pdERhdGVQaWNrZXIoKTtcblx0fVxuXG5cblx0LyoqXG5cdFx0KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRcdCogc3BlY2lmaWMgY29udHJvbHMgbWFuYWdlbWVudFxuXHRcdCogKGRpc3BsYXksIHByb3BlcnRpZXMuLi4uIDogZXggOiBncm91cGVkIFNlbGVjdClcblx0XHQqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdFx0Ki9cblx0XHRhZGROZXdPcHRpb25SYWRpbygpe1xuXHRcdFx0bGV0IHJlc3VsdCA9IHRoaXMuJHNlbGVjdE9wdGlvbk1hbmdlLmFkZE5ld09wdGlvblJhZGlvKHRoaXMucmFkaW9Sb3dDb2xsZWN0aW9uLCB0aGlzLm5ld09wdGlvblJhZGlvLnNhaXNpZSk7XG5cdFx0XHRpZiAocmVzdWx0LnJlc3VsdEZsYWcgPT09IGZhbHNlKSB7XG5cdFx0XHRcdHRoaXMudG9hc3Rlci5wb3Aoe1xuXHRcdFx0XHRcdFx0dHlwZVx0XHQ6ICd3YXJuaW5nJyxcblx0XHRcdFx0XHRcdHRpbWVvdXRcdDogMjAwMCxcblx0XHRcdFx0XHRcdHRpdGxlXHRcdDogcmVzdWx0LmRldGFpbHMsXG5cdFx0XHRcdFx0XHRib2R5XHRcdDogYCcke3RoaXMubmV3T3B0aW9uUmFkaW8uc2Fpc2llfScgY2Fubm90IGJlIGFkZGVkLmAsXG5cdFx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b246IHRydWVcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdC8vcmVzZXQgaW5wdXRcblx0XHRcdHRoaXMubmV3T3B0aW9uUmFkaW8gPSB7c2Fpc2llOiAnJ307XG5cdFx0fVxuXG5cdFx0cmVtb3ZlUmFkaW9Sb3coaW5kZXgpIHtcblx0XHRcdGxldCByZXN1bHQgPSB0aGlzLiRzZWxlY3RPcHRpb25NYW5nZS5yZW1vdmVPcHRpb24odGhpcy5yYWRpb1Jvd0NvbGxlY3Rpb24sIGluZGV4KTtcblx0XHRcdGlmIChyZXN1bHQucmVzdWx0RmxhZyA9PT0gZmFsc2UpIHtcblx0XHRcdFx0dGhpcy50b2FzdGVyLnBvcCh7XG5cdFx0XHRcdFx0dHlwZVx0XHRcdDogJ3dhcm5pbmcnLFxuXHRcdFx0XHRcdHRpbWVvdXRcdFx0OiAyMDAwLFxuXHRcdFx0XHRcdHRpdGxlXHRcdFx0OiByZXN1bHQuZGV0YWlscyxcblx0XHRcdFx0XHRib2R5XHRcdFx0OiAnRGVsZXRlIHdhcyBjYW5jZWxsZWQuJyxcblx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b246IHRydWVcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dXBUaGlzUmFkaW9Sb3coaW5kZXgpe1xuXHRcdFx0bGV0IHJlc3VsdCA9IHRoaXMuJHNlbGVjdE9wdGlvbk1hbmdlLnVwdGhpc09wdGlvbih0aGlzLnJhZGlvUm93Q29sbGVjdGlvbiwgaW5kZXgpO1xuXHRcdFx0aWYgKHJlc3VsdC5yZXN1bHRGbGFnID09PSBmYWxzZSkge1xuXHRcdFx0XHR0aGlzLnRvYXN0ZXIucG9wKHtcblx0XHRcdFx0XHR0eXBlXHRcdDogJ3dhcm5pbmcnLFxuXHRcdFx0XHRcdHRpbWVvdXRcdDogMjAwMCxcblx0XHRcdFx0XHR0aXRsZVx0XHQ6IHJlc3VsdC5kZXRhaWxzLFxuXHRcdFx0XHRcdGJvZHlcdFx0OiAnT3BlcmF0aW9uIGNhbmNlbGxlZC4nLFxuXHRcdFx0XHRcdHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRkb3duVGhpc1JhZGlvUm93KGluZGV4KXtcblx0XHRcdGxldCByZXN1bHQgPSB0aGlzLiRzZWxlY3RPcHRpb25NYW5nZS5kb3dudGhpc09wdGlvbih0aGlzLnJhZGlvUm93Q29sbGVjdGlvbiwgaW5kZXgpO1xuXHRcdFx0aWYgKHJlc3VsdC5yZXN1bHRGbGFnID09PSBmYWxzZSkge1xuXHRcdFx0XHR0aGlzLnRvYXN0ZXIucG9wKHtcblx0XHRcdFx0XHR0eXBlXHRcdDogJ3dhcm5pbmcnLFxuXHRcdFx0XHRcdHRpbWVvdXRcdDogMjAwMCxcblx0XHRcdFx0XHR0aXRsZVx0XHQ6IHJlc3VsdC5kZXRhaWxzLFxuXHRcdFx0XHRcdGJvZHlcdFx0OiAnT3BlcmF0aW9uIGNhbmNlbGxlZC4nLFxuXHRcdFx0XHRcdHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRhZGROZXdPcHRpb25CYXNpY1NlbGVjdCgpe1xuXHRcdFx0bGV0IHJlc3VsdCA9IHRoaXMuJHNlbGVjdE9wdGlvbk1hbmdlLmFkZE5ld09wdGlvbkJhc2ljU2VsZWN0KHRoaXMuYmFzaWNTZWxlY3RSb3dDb2xsZWN0aW9uLCB0aGlzLm5ld09wdGlvbkJhc2ljU2VsZWN0LnNhaXNpZSk7XG5cdFx0XHRpZiAocmVzdWx0LnJlc3VsdEZsYWcgPT09IGZhbHNlKSB7XG5cdFx0XHRcdHRoaXMudG9hc3Rlci5wb3Aoe1xuXHRcdFx0XHRcdHR5cGVcdFx0XHQ6ICd3YXJuaW5nJyxcblx0XHRcdFx0XHR0aW1lb3V0XHRcdDogMjAwMCxcblx0XHRcdFx0XHR0aXRsZVx0XHRcdDogcmVzdWx0LmRldGFpbHMsXG5cdFx0XHRcdFx0Ym9keVx0XHRcdDogYCcke3RoaXMubmV3T3B0aW9uQmFzaWNTZWxlY3Quc2Fpc2llfScgY2Fubm90IGJlIGFkZGVkLmAsXG5cdFx0XHRcdFx0c2hvd0Nsb3NlQnV0dG9uOiB0cnVlXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5uZXdPcHRpb25CYXNpY1NlbGVjdCA9IHtzYWlzaWU6ICcnfTsgLy9yZXNldCBpbnB1dFxuXHRcdH1cblxuXHRcdHJlbW92ZVJvdyhpbmRleCkge1xuXHRcdFx0bGV0IHJlc3VsdCA9IHRoaXMuJHNlbGVjdE9wdGlvbk1hbmdlLnJlbW92ZU9wdGlvbih0aGlzLmJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbiwgaW5kZXgpO1xuXHRcdFx0aWYgKHJlc3VsdC5yZXN1bHRGbGFnID09PSBmYWxzZSkge1xuXHRcdFx0XHR0aGlzLnRvYXN0ZXIucG9wKHtcblx0XHRcdFx0XHR0eXBlXHRcdDogJ3dhcm5pbmcnLFxuXHRcdFx0XHRcdHRpbWVvdXRcdDogMjAwMCxcblx0XHRcdFx0XHR0aXRsZVx0XHQ6IHJlc3VsdC5kZXRhaWxzLFxuXHRcdFx0XHRcdGJvZHlcdFx0OiAnRGVsZXRlIHdhcyBjYW5jZWxsZWQuJyxcblx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b246IHRydWVcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dXBUaGlzUm93KGluZGV4KXtcblx0XHRcdFx0bGV0IHJlc3VsdCA9IHRoaXMuJHNlbGVjdE9wdGlvbk1hbmdlLnVwdGhpc09wdGlvbih0aGlzLmJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbiwgaW5kZXgpO1xuXHRcdFx0XHRpZiAocmVzdWx0LnJlc3VsdEZsYWcgPT09IGZhbHNlKSB7XG5cdFx0XHRcdFx0dGhpcy50b2FzdGVyLnBvcCh7XG5cdFx0XHRcdFx0XHR0eXBlXHRcdDogJ3dhcm5pbmcnLFxuXHRcdFx0XHRcdFx0dGltZW91dFx0OiAyMDAwLFxuXHRcdFx0XHRcdFx0dGl0bGVcdFx0OiByZXN1bHQuZGV0YWlscyxcblx0XHRcdFx0XHRcdGJvZHlcdFx0OiAnT3BlcmF0aW9uIGNhbmNlbGxlZC4nLFxuXHRcdFx0XHRcdFx0c2hvd0Nsb3NlQnV0dG9uOiB0cnVlXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHR9XG5cblx0XHRkb3duVGhpc1JvdyhpbmRleCl7XG5cdFx0XHRsZXQgcmVzdWx0ID0gdGhpcy4kc2VsZWN0T3B0aW9uTWFuZ2UuZG93bnRoaXNPcHRpb24odGhpcy5iYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24sIGluZGV4KTtcblx0XHRcdGlmIChyZXN1bHQucmVzdWx0RmxhZyA9PT0gZmFsc2UpIHtcblx0XHRcdFx0dGhpcy50b2FzdGVyLnBvcCh7XG5cdFx0XHRcdFx0dHlwZVx0XHQ6ICd3YXJuaW5nJyxcblx0XHRcdFx0XHR0aW1lb3V0XHQ6IDIwMDAsXG5cdFx0XHRcdFx0dGl0bGVcdFx0OiByZXN1bHQuZGV0YWlscyxcblx0XHRcdFx0XHRib2R5XHRcdDogJ09wZXJhdGlvbiBjYW5jZWxsZWQuJyxcblx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b246IHRydWVcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0c2hvd0dyb3VwTGlzdFRvQ2hvb3NlKCl7XG5cdFx0XHR0aGlzLmdyb3VwU2VsZWN0R3JvdXBDbGljay5zaG93TGlzdCA9ICF0aGlzLmdyb3VwU2VsZWN0R3JvdXBDbGljay5zaG93TGlzdDtcblx0XHR9XG5cblx0XHRhZGROZXdHcm91cFRvR3JvdXBlZFNlbGVjdCgpe1xuXHRcdFx0aWYgKHRoaXMubmV3R3JvdXBHcm91cGVkU2VsZWN0LnNhaXNpZSAhPT0gJycpIHtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IHRoaXMuR3JvdXBlZFNlbGVjdEdyb3Vwcy5saXN0Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuR3JvdXBlZFNlbGVjdEdyb3Vwcy5saXN0W2ldID09PSB0aGlzLm5ld0dyb3VwR3JvdXBlZFNlbGVjdC5zYWlzaWUpIHtcblx0XHRcdFx0XHRcdHRoaXMudG9hc3Rlci5wb3Aoe1xuXHRcdFx0XHRcdFx0XHR0eXBlXHRcdFx0OiAnd2FybmluZycsXG5cdFx0XHRcdFx0XHRcdHRpbWVvdXRcdFx0OiAyMDAwLFxuXHRcdFx0XHRcdFx0XHR0aXRsZVx0XHRcdDogJ0dyb3VwIGFscmVhZHkgZXhpc3RzJyxcblx0XHRcdFx0XHRcdFx0Ym9keVx0XHRcdDogJ05vIGdyb3VwIGFkZGVkLicsXG5cdFx0XHRcdFx0XHRcdHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuR3JvdXBlZFNlbGVjdEdyb3Vwcy5saXN0LnB1c2godGhpcy5uZXdHcm91cEdyb3VwZWRTZWxlY3Quc2Fpc2llKTtcblx0XHRcdH1lbHNle1xuXHRcdFx0XHR0aGlzLnRvYXN0ZXIucG9wKHtcblx0XHRcdFx0XHR0eXBlXHRcdFx0OiAnd2FybmluZycsXG5cdFx0XHRcdFx0dGltZW91dFx0XHQ6IDIwMDAsXG5cdFx0XHRcdFx0dGl0bGVcdFx0XHQ6ICdOb3QgYSB2YWxpZCBncm91cCB0byBhZGQnLFxuXHRcdFx0XHRcdGJvZHlcdFx0XHQ6ICdObyBncm91cCBhZGRlZC4nLFxuXHRcdFx0XHRcdHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdHRoaXMubmV3R3JvdXBHcm91cGVkU2VsZWN0LnNhaXNpZSA9ICcnO1xuXHRcdH1cblxuXG5cdFx0YWRkTmV3T3B0aW9uR3JvdXBlZFNlbGVjdCgpe1xuXHRcdFx0bGV0IHJlc3VsdCA9IHRoaXMuJHNlbGVjdE9wdGlvbk1hbmdlLmFkZE5ld09wdGlvbkdyb3VwZWRTZWxlY3QodGhpcy5ncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbiwgdGhpcy5uZXdPcHRpb25Hcm91cGVkU2VsZWN0LnNhaXNpZSwgJycpO1xuXHRcdFx0aWYgKHJlc3VsdC5yZXN1bHRGbGFnID09PSBmYWxzZSkge1xuXHRcdFx0XHR0aGlzLnRvYXN0ZXIucG9wKHtcblx0XHRcdFx0XHR0eXBlXHRcdFx0OiAnd2FybmluZycsXG5cdFx0XHRcdFx0dGltZW91dFx0XHQ6IDIwMDAsXG5cdFx0XHRcdFx0dGl0bGVcdFx0XHQ6IHJlc3VsdC5kZXRhaWxzLFxuXHRcdFx0XHRcdGJvZHlcdFx0XHQ6IGAnJHt0aGlzLm5ld09wdGlvbkdyb3VwZWRTZWxlY3Quc2Fpc2llfScgY2Fubm90IGJlIGFkZGVkLmAsXG5cdFx0XHRcdFx0c2hvd0Nsb3NlQnV0dG9uOiB0cnVlXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0Ly9iaW5kIG55YSA6IGRvbnQgYmluZCBoZXJlICRhcHBseSBpcyBub3QgZG9uZSBmYXN0IGVub3VnaFxuXHRcdFx0Ly9iaW5kR3JvdXBlZFNlbGVjdFRvTnlhKCk7XG5cdFx0XHQvL3Jlc2V0IGlucHV0XG5cdFx0XHR0aGlzLm5ld09wdGlvbkdyb3VwZWRTZWxlY3QgPSB7c2Fpc2llOiAnJ307XG5cdFx0fVxuXG5cblx0XHRyZW1vdmVHcm91cGVkU2VsZWN0Um93KGluZGV4KSB7XG5cdFx0XHRsZXQgcmVzdWx0ID0gdGhpcy4kc2VsZWN0T3B0aW9uTWFuZ2UucmVtb3ZlT3B0aW9uKHRoaXMuZ3JvdXBlZFNlbGVjdFJvd0NvbGxlY3Rpb24sIGluZGV4KTtcblx0XHRcdGlmIChyZXN1bHQucmVzdWx0RmxhZyA9PT0gZmFsc2UpIHtcblx0XHRcdFx0dGhpcy50b2FzdGVyLnBvcCh7XG5cdFx0XHRcdFx0dHlwZVx0XHQ6ICd3YXJuaW5nJyxcblx0XHRcdFx0XHR0aW1lb3V0XHQ6IDIwMDAsXG5cdFx0XHRcdFx0dGl0bGVcdFx0OiByZXN1bHQuZGV0YWlscyxcblx0XHRcdFx0XHRib2R5XHRcdDogJ0RlbGV0ZSB3YXMgY2FuY2VsbGVkLicsXG5cdFx0XHRcdFx0c2hvd0Nsb3NlQnV0dG9uOiB0cnVlXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR1cFRoaXNHcm91cGVkU2VsZWN0Um93KGluZGV4KXtcblx0XHRsZXQgcmVzdWx0ID0gdGhpcy4kc2VsZWN0T3B0aW9uTWFuZ2UudXB0aGlzT3B0aW9uKHRoaXMuZ3JvdXBlZFNlbGVjdFJvd0NvbGxlY3Rpb24sIGluZGV4KTtcblx0XHRpZiAocmVzdWx0LnJlc3VsdEZsYWcgPT09IGZhbHNlKSB7XG5cdFx0XHR0aGlzLnRvYXN0ZXIucG9wKHtcblx0XHRcdFx0dHlwZVx0XHQ6ICd3YXJuaW5nJyxcblx0XHRcdFx0dGltZW91dFx0OiAyMDAwLFxuXHRcdFx0XHR0aXRsZVx0XHQ6IHJlc3VsdC5kZXRhaWxzLFxuXHRcdFx0XHRib2R5XHRcdDogJ09wZXJhdGlvbiBjYW5jZWxsZWQuJyxcblx0XHRcdFx0c2hvd0Nsb3NlQnV0dG9uOiB0cnVlXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXG5cdGRvd25UaGlzR3JvdXBlZFNlbGVjdFJvdyhpbmRleCl7XG5cdFx0XHRsZXQgcmVzdWx0ID0gdGhpcy4kc2VsZWN0T3B0aW9uTWFuZ2UuZG93bnRoaXNPcHRpb24odGhpcy5ncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbiwgaW5kZXgpO1xuXHRcdFx0aWYgKHJlc3VsdC5yZXN1bHRGbGFnID09PSBmYWxzZSkge1xuXHRcdFx0XHR0aGlzLnRvYXN0ZXIucG9wKHtcblx0XHRcdFx0XHR0eXBlXHRcdDogJ3dhcm5pbmcnLFxuXHRcdFx0XHRcdHRpbWVvdXRcdDogMjAwMCxcblx0XHRcdFx0XHR0aXRsZVx0XHQ6IHJlc3VsdC5kZXRhaWxzLFxuXHRcdFx0XHRcdGJvZHlcdFx0OiAnT3BlcmF0aW9uIGNhbmNlbGxlZC4nLFxuXHRcdFx0XHRcdHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0fVxuXG5cblx0dG9kYXkoKXtcblx0XHRzZXRUb2RheSh0aGlzLmRlbW9kdCk7XG5cdH1cblxuXG5cdGNsZWFyKCl7XG5cdFx0Y2xlYXJEYXRlVGltZSh0aGlzLmRlbW9kdCk7XG5cdH1cblxuXG5cdG9wZW4oJGV2ZW50KSB7XG5cdFx0JGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdHRoaXMuZGVtb2R0Lm9wZW5lZCA9IHRydWU7XG5cdH1cblxuXG5cbn1cblxubGVmdFBhbmVsQ29udHJvbGxlci4kaW5qZWN0ID0gW1xuXHQndG9hc3RlcicsXG5cdCckdGltZW91dCcsXG5cdCckc2VsZWN0T3B0aW9uTWFuZ2UnLFxuXHQnY29udHJvbGxlck1vZGFsUHJveHknXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxDb250cm9sbGVyO1xuXG5leHBvcnQge1xuXHRMRUZUX1BBTkVMX0NPTlRST0xMRVIsXG5cdExFRlRfUEFORUxfQ09OVFJPTExFUkFTXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9lZGFEcmFnRHJvcFdheS5sZWZ0UGFuZWwuY29udHJvbGxlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  100. /***/ },
  101. /* 17 */
  102. /***/ function(module, exports) {
  103. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar dateFormats = ['dd-MMMM-yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];\n\nvar setToday = function setToday(datetimePickerModel) {\n\tdatetimePickerModel.dt = new Date();\n};\n\nvar clearDateTime = function clearDateTime(datetimePickerModel) {\n\tdatetimePickerModel.dt = new Date();\n};\n\nexports.dateFormats = dateFormats;\nexports.setToday = setToday;\nexports.clearDateTime = clearDateTime;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5jb250cm9sbGVyLmhlbHBlcnMuanM/MDMyNCJdLCJuYW1lcyI6WyJkYXRlRm9ybWF0cyIsInNldFRvZGF5IiwiZGF0ZXRpbWVQaWNrZXJNb2RlbCIsImR0IiwiRGF0ZSIsImNsZWFyRGF0ZVRpbWUiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBTUEsY0FBYyxDQUFDLGNBQUQsRUFBaUIsWUFBakIsRUFBK0IsWUFBL0IsRUFBNkMsV0FBN0MsQ0FBcEI7O0FBRUEsSUFBTUMsV0FBVyxTQUFYQSxRQUFXLENBQUNDLG1CQUFELEVBQXVCO0FBQ3ZDQSxxQkFBb0JDLEVBQXBCLEdBQXlCLElBQUlDLElBQUosRUFBekI7QUFDQSxDQUZEOztBQUlBLElBQU1DLGdCQUFnQixTQUFoQkEsYUFBZ0IsQ0FBQ0gsbUJBQUQsRUFBdUI7QUFDNUNBLHFCQUFvQkMsRUFBcEIsR0FBeUIsSUFBSUMsSUFBSixFQUF6QjtBQUNBLENBRkQ7O1FBS0NKLFcsR0FBQUEsVztRQUNBQyxRLEdBQUFBLFE7UUFDQUksYSxHQUFBQSxhIiwiZmlsZSI6IjE3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGF0ZUZvcm1hdHMgPSBbJ2RkLU1NTU0teXl5eScsICd5eXl5L01NL2RkJywgJ2RkLk1NLnl5eXknLCAnc2hvcnREYXRlJ107XG5cbmNvbnN0IHNldFRvZGF5ID0gKGRhdGV0aW1lUGlja2VyTW9kZWwpPT57XG5cdGRhdGV0aW1lUGlja2VyTW9kZWwuZHQgPSBuZXcgRGF0ZSgpO1xufTtcblxuY29uc3QgY2xlYXJEYXRlVGltZSA9IChkYXRldGltZVBpY2tlck1vZGVsKT0+e1xuXHRkYXRldGltZVBpY2tlck1vZGVsLmR0ID0gbmV3IERhdGUoKTtcbn07XG5cbmV4cG9ydCB7XG5cdGRhdGVGb3JtYXRzLFxuXHRzZXRUb2RheSxcblx0Y2xlYXJEYXRlVGltZVxufTtcblxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9lZGFEcmFnRHJvcFdheS5sZWZ0UGFuZWwuY29udHJvbGxlci5oZWxwZXJzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  104. /***/ },
  105. /* 18 */
  106. /***/ function(module, exports, __webpack_require__) {
  107. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.LEFT_PANEL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftPanel = __webpack_require__(16);\n\nvar _edaDragDropWayLeftPanelTemplate = __webpack_require__(19);\n\nvar _edaDragDropWayLeftPanelTemplate2 = _interopRequireDefault(_edaDragDropWayLeftPanelTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_DIRECTIVE = 'leftPanel';\n\nfunction leftPanel() {\n\tvar directive = {\n\t\trestrict: 'E',\n\t\ttemplate: _edaDragDropWayLeftPanelTemplate2.default,\n\t\tscope: {},\n\t\tcontroller: _edaDragDropWayLeftPanel.LEFT_PANEL_CONTROLLER,\n\t\tcontrollerAs: _edaDragDropWayLeftPanel.LEFT_PANEL_CONTROLLERAS,\n\t\tbindToController: {\n\t\t\tcloseEditPanel: '&',\n\t\t\tselectedControl: '&',\n\t\t\tsaveFromEditPanel: '&'\n\t\t}\n\t};\n\treturn directive;\n}\n\nleftPanel.$inject = [];\n\nexports.default = leftPanel;\nexports.LEFT_PANEL_DIRECTIVE = LEFT_PANEL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5kaXJlY3RpdmUuanM/ZDg0YSJdLCJuYW1lcyI6WyJMRUZUX1BBTkVMX0RJUkVDVElWRSIsImxlZnRQYW5lbCIsImRpcmVjdGl2ZSIsInJlc3RyaWN0IiwidGVtcGxhdGUiLCJzY29wZSIsImNvbnRyb2xsZXIiLCJjb250cm9sbGVyQXMiLCJiaW5kVG9Db250cm9sbGVyIiwiY2xvc2VFZGl0UGFuZWwiLCJzZWxlY3RlZENvbnRyb2wiLCJzYXZlRnJvbUVkaXRQYW5lbCIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFLQTs7Ozs7O0FBRUEsSUFBTUEsdUJBQXVCLFdBQTdCOztBQUdBLFNBQVNDLFNBQVQsR0FBb0I7QUFDbkIsS0FBSUMsWUFBWTtBQUNmQyxZQUFnQixHQUREO0FBRWZDLHFEQUZlO0FBR2ZDLFNBQWMsRUFIQztBQUlmQyw0REFKZTtBQUtmQyxnRUFMZTtBQU1mQyxvQkFBbUI7QUFDbEJDLG1CQUF3QixHQUROO0FBRWZDLG9CQUF3QixHQUZUO0FBR2ZDLHNCQUF3QjtBQUhUO0FBTkosRUFBaEI7QUFZQSxRQUFPVCxTQUFQO0FBQ0E7O0FBRURELFVBQVVXLE9BQVYsR0FBb0IsRUFBcEI7O2tCQUVlWCxTO1FBR2RELG9CLEdBQUFBLG9CIiwiZmlsZSI6IjE4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0TEVGVF9QQU5FTF9DT05UUk9MTEVSLFxuXHRMRUZUX1BBTkVMX0NPTlRST0xMRVJBU1xufVx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5sZWZ0UGFuZWwuY29udHJvbGxlcic7XG5cbmltcG9ydCBsZWZ0UGFuZWxUZW1wbGF0ZSBmcm9tICcuL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgTEVGVF9QQU5FTF9ESVJFQ1RJVkUgPSAnbGVmdFBhbmVsJztcblxuXG5mdW5jdGlvbiBsZWZ0UGFuZWwoKXtcblx0bGV0IGRpcmVjdGl2ZSA9IHtcblx0XHRyZXN0cmljdCBcdFx0XHRcdFx0OiAnRScsXG5cdFx0dGVtcGxhdGVcdFx0XHRcdFx0OiBsZWZ0UGFuZWxUZW1wbGF0ZSxcblx0XHRzY29wZVx0XHRcdFx0XHRcdFx0OiB7fSxcblx0XHRjb250cm9sbGVyXHRcdFx0XHQ6XHRMRUZUX1BBTkVMX0NPTlRST0xMRVIsXG5cdFx0Y29udHJvbGxlckFzXHRcdFx0OiBMRUZUX1BBTkVMX0NPTlRST0xMRVJBUyxcblx0XHRiaW5kVG9Db250cm9sbGVyXHQ6IHtcblx0XHRcdGNsb3NlRWRpdFBhbmVsICAgICAgICA6ICcmJyxcbiAgICAgIHNlbGVjdGVkQ29udHJvbCAgICAgICA6ICcmJyxcbiAgICAgIHNhdmVGcm9tRWRpdFBhbmVsICAgICA6ICcmJ1xuXHRcdH1cblx0fTtcblx0cmV0dXJuIGRpcmVjdGl2ZTtcbn1cblxubGVmdFBhbmVsLiRpbmplY3QgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbGVmdFBhbmVsO1xuXG5leHBvcnQge1xuXHRMRUZUX1BBTkVMX0RJUkVDVElWRVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvZWRhRHJhZ0Ryb3BXYXkubGVmdFBhbmVsLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  108. /***/ },
  109. /* 19 */
  110. /***/ function(module, exports) {
  111. eval("module.exports = \"<div id=\\\"controlEditLeftPanel\\\">\\n\\t<div class=\\\"pull-right\\\">\\n\\t\\t<button\\n type=\\\"button\\\"\\n class=\\\"close\\\"\\n ng-click=\\\"leftPanelCtrl.closeEditPanel()\\\"\\n aria-label=\\\"Close\\\">\\n\\t\\t\\t<span\\n aria-hidden=\\\"true\\\">\\n &times;\\n </span>\\n\\t\\t</button>\\n\\t</div>\\n\\t<div class=\\\"separator10pixel\\\"></div>\\n\\t<div ng-switch on=\\\"leftPanelCtrl.proxyModel.temporyConfig.selectedControl\\\">\\n\\t\\t<div ng-switch-when=\\\"none\\\">\\n\\t\\t\\t<div class=\\\"row\\\">\\n\\t\\t\\t\\t<div class=\\\"col-sm-12\\\">\\n\\t\\t\\t\\t\\t<h5 class=\\\"text-center texteRouge\\\">\\n <i class=\\\"fa fa-arrow-up\\\"></i>\\n &nbsp;\\n Select a control\\n </h5>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</div>\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"empty\\\">\\n\\t\\t\\t<left-panel-blank-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"Header\\\">\\n\\t\\t\\t<left-panel-header-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"Subtitle\\\">\\n\\t\\t\\t<left-panel-subtitle-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"TextInput\\\">\\n\\t\\t\\t<left-panel-text-input-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"Password\\\">\\n\\t\\t\\t<left-panel-password-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"Date\\\">\\n\\t\\t\\t<left-panel-date-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"Texarea\\\">\\n\\t\\t\\t<left-panel-textarea-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"RichTextEditor\\\">\\n\\t\\t\\t<left-panel-rich-text-editor-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"Radio\\\">\\n\\t\\t\\t<left-panel-radio-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"Checkbox\\\">\\n\\t\\t\\t<left-panel-check-box-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"BasicSelect\\\">\\n\\t\\t\\t<left-panel-basic-select-control />\\n\\t\\t</div>\\n\\t\\t<div ng-switch-when=\\\"GroupedSelect\\\">\\n\\t\\t\\t<left-panel-grouped-select-control />\\n\\t\\t</div>\\n\\t</div>\\n\\t<button\\n class=\\\"btn btn-primary btn-block pull-right\\\"\\n ng-click=\\\"leftPanelCtrl.closeEditPanel()\\\">\\n Close\\n </button>\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC50ZW1wbGF0ZS5odG1sPzI3NDQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseVJBQXlSLHVYQUF1WCIsImZpbGUiOiIxOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGlkPVxcXCJjb250cm9sRWRpdExlZnRQYW5lbFxcXCI+XFxuXFx0PGRpdiBjbGFzcz1cXFwicHVsbC1yaWdodFxcXCI+XFxuXFx0XFx0PGJ1dHRvblxcbiAgICAgIHR5cGU9XFxcImJ1dHRvblxcXCJcXG4gICAgICBjbGFzcz1cXFwiY2xvc2VcXFwiXFxuICAgICAgbmctY2xpY2s9XFxcImxlZnRQYW5lbEN0cmwuY2xvc2VFZGl0UGFuZWwoKVxcXCJcXG4gICAgICBhcmlhLWxhYmVsPVxcXCJDbG9zZVxcXCI+XFxuXFx0XFx0XFx0PHNwYW5cXG4gICAgICAgIGFyaWEtaGlkZGVuPVxcXCJ0cnVlXFxcIj5cXG4gICAgICAgICZ0aW1lcztcXG4gICAgICA8L3NwYW4+XFxuXFx0XFx0PC9idXR0b24+XFxuXFx0PC9kaXY+XFxuXFx0PGRpdiBjbGFzcz1cXFwic2VwYXJhdG9yMTBwaXhlbFxcXCI+PC9kaXY+XFxuXFx0PGRpdiBuZy1zd2l0Y2ggb249XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLnNlbGVjdGVkQ29udHJvbFxcXCI+XFxuXFx0XFx0PGRpdiBuZy1zd2l0Y2gtd2hlbj1cXFwibm9uZVxcXCI+XFxuXFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG5cXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wtc20tMTJcXFwiPlxcblxcdFxcdFxcdFxcdFxcdDxoNSBjbGFzcz1cXFwidGV4dC1jZW50ZXIgdGV4dGVSb3VnZVxcXCI+XFxuICAgICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLWFycm93LXVwXFxcIj48L2k+XFxuICAgICAgICAgICAgJm5ic3A7XFxuICAgICAgICAgICAgU2VsZWN0IGEgY29udHJvbFxcbiAgICAgICAgICA8L2g1PlxcblxcdFxcdFxcdFxcdDwvZGl2PlxcblxcdFxcdFxcdDwvZGl2PlxcblxcdFxcdDwvZGl2PlxcblxcdFxcdDxkaXYgbmctc3dpdGNoLXdoZW49XFxcImVtcHR5XFxcIj5cXG5cXHRcXHRcXHQ8bGVmdC1wYW5lbC1ibGFuay1jb250cm9sIC8+XFxuXFx0XFx0PC9kaXY+XFxuXFx0XFx0PGRpdiBuZy1zd2l0Y2gtd2hlbj1cXFwiSGVhZGVyXFxcIj5cXG5cXHRcXHRcXHQ8bGVmdC1wYW5lbC1oZWFkZXItY29udHJvbCAvPlxcblxcdFxcdDwvZGl2PlxcblxcdFxcdDxkaXYgbmctc3dpdGNoLXdoZW49XFxcIlN1YnRpdGxlXFxcIj5cXG5cXHRcXHRcXHQ8bGVmdC1wYW5lbC1zdWJ0aXRsZS1jb250cm9sIC8+XFxuXFx0XFx0PC9kaXY+XFxuXFx0XFx0PGRpdiBuZy1zd2l0Y2gtd2hlbj1cXFwiVGV4dElucHV0XFxcIj5cXG5cXHRcXHRcXHQ8bGVmdC1wYW5lbC10ZXh0LWlucHV0LWNvbnRyb2wgLz5cXG5cXHRcXHQ8L2Rpdj5cXG5cXHRcXHQ8ZGl2IG5nLXN3aXRjaC13aGVuPVxcXCJQYXNzd29yZFxcXCI+XFxuXFx0XFx0XFx0PGxlZnQtcGFuZWwtcGFzc3dvcmQtY29udHJvbCAvPlxcblxcdFxcdDwvZGl2PlxcblxcdFxcdDxkaXYgbmctc3dpdGNoLXdoZW49XFxcIkRhdGVcXFwiPlxcblxcdFxcdFxcdDxsZWZ0LXBhbmVsLWRhdGUtY29udHJvbCAvPlxcblxcdFxcdDwvZGl2PlxcblxcdFxcdDxkaXYgbmctc3dpdGNoLXdoZW49XFxcIlRleGFyZWFcXFwiPlxcblxcdFxcdFxcdDxsZWZ0LXBhbmVsLXRleHRhcmVhLWNvbnRyb2wgLz5cXG5cXHRcXHQ8L2Rpdj5cXG5cXHRcXHQ8ZGl2IG5nLXN3aXRjaC13aGVuPVxcXCJSaWNoVGV4dEVkaXRvclxcXCI+XFxuXFx0XFx0XFx0PGxlZnQtcGFuZWwtcmljaC10ZXh0LWVkaXRvci1jb250cm9sIC8+XFxuXFx0XFx0PC9kaXY+XFxuXFx0XFx0PGRpdiBuZy1zd2l0Y2gtd2hlbj1cXFwiUmFkaW9cXFwiPlxcblxcdFxcdFxcdDxsZWZ0LXBhbmVsLXJhZGlvLWNvbnRyb2wgLz5cXG5cXHRcXHQ8L2Rpdj5cXG5cXHRcXHQ8ZGl2IG5nLXN3aXRjaC13aGVuPVxcXCJDaGVja2JveFxcXCI+XFxuXFx0XFx0XFx0PGxlZnQtcGFuZWwtY2hlY2stYm94LWNvbnRyb2wgLz5cXG5cXHRcXHQ8L2Rpdj5cXG5cXHRcXHQ8ZGl2IG5nLXN3aXRjaC13aGVuPVxcXCJCYXNpY1NlbGVjdFxcXCI+XFxuXFx0XFx0XFx0PGxlZnQtcGFuZWwtYmFzaWMtc2VsZWN0LWNvbnRyb2wgLz5cXG5cXHRcXHQ8L2Rpdj5cXG5cXHRcXHQ8ZGl2IG5nLXN3aXRjaC13aGVuPVxcXCJHcm91cGVkU2VsZWN0XFxcIj5cXG5cXHRcXHRcXHQ8bGVmdC1wYW5lbC1ncm91cGVkLXNlbGVjdC1jb250cm9sIC8+XFxuXFx0XFx0PC9kaXY+XFxuXFx0PC9kaXY+XFxuXFx0PGJ1dHRvblxcbiAgICBjbGFzcz1cXFwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayBwdWxsLXJpZ2h0XFxcIlxcbiAgICBuZy1jbGljaz1cXFwibGVmdFBhbmVsQ3RybC5jbG9zZUVkaXRQYW5lbCgpXFxcIj5cXG4gICAgQ2xvc2VcXG4gIDwvYnV0dG9uPlxcbjwvZGl2PlxcblwiXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSAxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  112. /***/ },
  113. /* 20 */
  114. /***/ function(module, exports, __webpack_require__) {
  115. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_SELECT_OPTION_MANAGE_SERVICE = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global angular */\n\n\nvar _edaDragDropWayLeftPanelSelectOptionManageService = __webpack_require__(21);\n\nvar helpers = _interopRequireWildcard(_edaDragDropWayLeftPanelSelectOptionManageService);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LEFT_PANEL_SELECT_OPTION_MANAGE_SERVICE = '$selectOptionMange';\n\nvar selectOptionMange = function () {\n function selectOptionMange() {\n _classCallCheck(this, selectOptionMange);\n\n this.init();\n }\n\n _createClass(selectOptionMange, [{\n key: 'init',\n value: function init() {}\n }, {\n key: 'initModel',\n value: function initModel(selectObj) {\n helpers.resetModel(selectObj);\n }\n }, {\n key: 'isOptionUnique',\n value: function isOptionUnique(selectObj, textValue) {\n for (var i = selectObj.rows.length - 1; i >= 0; i--) {\n if (selectObj.rows[i].option === textValue) return false;\n }\n return true;\n }\n }, {\n key: 'isOptionValidFormat',\n value: function isOptionValidFormat(textValue) {\n if (textValue !== '') return true;\n return false;\n }\n }, {\n key: 'addNewOptionRadio',\n value: function addNewOptionRadio(selectObj, newOptionText) {\n var fullResponse = {\n resultFlag: false,\n details: ''\n };\n var checkResult = helpers.validOption(selectObj, newOptionText);\n if (checkResult.resultFlag === true) {\n var newOption = {\n option: newOptionText,\n order: selectObj.rows.length\n };\n selectObj.rows.push(newOption);\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n } else {\n angular.copy(checkResult, fullResponse);\n return fullResponse;\n }\n }\n }, {\n key: 'addNewOptionBasicSelect',\n value: function addNewOptionBasicSelect(selectObj, newOptionText) {\n var fullResponse = {\n resultFlag: false,\n details: ''\n };\n var checkResult = helpers.validOption(selectObj, newOptionText);\n if (checkResult.resultFlag === true) {\n var newOption = {\n option: newOptionText,\n order: selectObj.rows.length\n };\n selectObj.rows.push(newOption);\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n } else {\n angular.copy(checkResult, fullResponse);\n return fullResponse;\n }\n }\n }, {\n key: 'addNewOptionGroupedSelect',\n value: function addNewOptionGroupedSelect(selectObj, newOptionText, newOptionGroup) {\n var fullResponse = {\n resultFlag: false,\n details: ''\n };\n var checkResult = helpers.validOption(selectObj, newOptionText);\n if (checkResult.resultFlag === true) {\n var newOption = {\n option: newOptionText,\n group: newOptionGroup,\n order: selectObj.rows.length\n };\n selectObj.rows.push(newOption);\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n } else {\n angular.copy(checkResult, fullResponse);\n return fullResponse;\n }\n }\n }, {\n key: 'removeOption',\n value: function removeOption(selectObj, AtIndex) {\n var fullResponse = {\n resultFlag: false,\n details: ''\n };\n if (AtIndex !== -1) {\n selectObj.rows.splice(AtIndex, 1);\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n } else {\n fullResponse.resultFlag = false;\n fullResponse.details = 'Option index not valid';\n return fullResponse;\n }\n }\n }, {\n key: 'upthisOption',\n value: function upthisOption(selectObj, indexOption) {\n var fullResponse = {\n resultFlag: false,\n details: ''\n };\n if (indexOption > -1) {\n if (indexOption > 0) {\n if (selectObj.rows[indexOption - 1]) {\n var currentOption = selectObj.rows[indexOption];\n selectObj.rows.splice(indexOption, 1);\n selectObj.rows.splice(indexOption - 1, 0, currentOption);\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n } else {\n fullResponse.resultFlag = false;\n fullResponse.details = 'Can\\'t retreive option from option index';\n return fullResponse;\n }\n } else {\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n }\n } else {\n fullResponse.resultFlag = false;\n fullResponse.details = 'Option index not valid';\n return fullResponse;\n }\n }\n }, {\n key: 'downthisOption',\n value: function downthisOption(selectObj, indexOption) {\n var fullResponse = {\n resultFlag: false,\n details: ''\n };\n if (indexOption > -1) {\n if (indexOption < selectObj.rows.length - 1) {\n if (selectObj.rows[indexOption + 1]) {\n var currentOption = selectObj.rows[indexOption];\n selectObj.rows.splice(indexOption, 1);\n selectObj.rows.splice(indexOption + 1, 0, currentOption);\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n } else {\n fullResponse.resultFlag = false;\n fullResponse.details = 'Can\\'t retreive option from option index';\n return fullResponse;\n }\n } else {\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n }\n } else {\n fullResponse.resultFlag = false;\n fullResponse.details = 'Option index not valid';\n return fullResponse;\n }\n }\n }]);\n\n return selectOptionMange;\n}();\n\nselectOptionMange.$inject = [];\n\nexports.default = selectOptionMange;\nexports.LEFT_PANEL_SELECT_OPTION_MANAGE_SERVICE = LEFT_PANEL_SELECT_OPTION_MANAGE_SERVICE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5zZWxlY3RPcHRpb25NYW5hZ2Uuc2VydmljZS5qcz85ZDAwIl0sIm5hbWVzIjpbImhlbHBlcnMiLCJMRUZUX1BBTkVMX1NFTEVDVF9PUFRJT05fTUFOQUdFX1NFUlZJQ0UiLCJzZWxlY3RPcHRpb25NYW5nZSIsImluaXQiLCJzZWxlY3RPYmoiLCJyZXNldE1vZGVsIiwidGV4dFZhbHVlIiwiaSIsInJvd3MiLCJsZW5ndGgiLCJvcHRpb24iLCJuZXdPcHRpb25UZXh0IiwiZnVsbFJlc3BvbnNlIiwicmVzdWx0RmxhZyIsImRldGFpbHMiLCJjaGVja1Jlc3VsdCIsInZhbGlkT3B0aW9uIiwibmV3T3B0aW9uIiwib3JkZXIiLCJwdXNoIiwiYW5ndWxhciIsImNvcHkiLCJuZXdPcHRpb25Hcm91cCIsImdyb3VwIiwiQXRJbmRleCIsInNwbGljZSIsImluZGV4T3B0aW9uIiwiY3VycmVudE9wdGlvbiIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7cWpCQUFBOzs7QUFDQTs7SUFBWUEsTzs7Ozs7O0FBRVosSUFBTUMsMENBQTBDLG9CQUFoRDs7SUFHTUMsaUI7QUFFSiwrQkFBYTtBQUFBOztBQUNYLFNBQUtDLElBQUw7QUFDRDs7OzsyQkFFSyxDQUVMOzs7OEJBRVNDLFMsRUFBVTtBQUNsQkosY0FBUUssVUFBUixDQUFtQkQsU0FBbkI7QUFDRDs7O21DQUVjQSxTLEVBQVdFLFMsRUFBVTtBQUNsQyxXQUFLLElBQUlDLElBQUlILFVBQVVJLElBQVYsQ0FBZUMsTUFBZixHQUF3QixDQUFyQyxFQUF3Q0YsS0FBSyxDQUE3QyxFQUFnREEsR0FBaEQsRUFBcUQ7QUFDbkQsWUFBSUgsVUFBVUksSUFBVixDQUFlRCxDQUFmLEVBQWtCRyxNQUFsQixLQUE2QkosU0FBakMsRUFBNEMsT0FBTyxLQUFQO0FBQzdDO0FBQ0QsYUFB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LENBQW5CLEVBQXNCO0FBQ3BCLFlBQUlBLGNBQWN0QixVQUFVSSxJQUFWLENBQWVDLE1BQWYsR0FBd0IsQ0FBMUMsRUFBNEM7QUFDMUMsY0FBSUwsVUFBVUksSUFBVixDQUFla0IsY0FBYyxDQUE3QixDQUFKLEVBQXFDO0FBQ25DLGdCQUFJQyxnQkFBZ0J2QixVQUFVSSxJQUFWLENBQWVrQixXQUFmLENBQXBCO0FBQ0F0QixzQkFBVUksSUFBVixDQUFlaUIsTUFBZixDQUFzQkMsV0FBdEIsRUFBb0MsQ0FBcEM7QUFDQXRCLHNCQUFVSSxJQUFWLENBQWVpQixNQUFmLENBQXVCQyxjQUFjLENBQXJDLEVBQXlDLENBQXpDLEVBQTRDQyxhQUE1QztBQUNBZix5QkFBYUMsVUFBYixHQUEwQixJQUExQjtBQUNBRCx5QkFBYUUsT0FBYixHQUEwQixFQUExQjtBQUNBLG1CQUFPRixZQUFQO0FBQ0QsV0FQRCxNQU9LO0FBQ0hBLHlCQUFhQyxVQUFiLEdBQTBCLEtBQTFCO0FBQ0FELHlCQUFhRSxPQUFiO0FBQ0EsbUJBQU9GLFlBQVA7QUFDRDtBQUNGLFNBYkQsTUFhSztBQUNIQSx1QkFBYUMsVUFBYixHQUEwQixJQUExQjtBQUNBRCx1QkFBYUUsT0FBYixHQUEwQixFQUExQjtBQUNBLGlCQUFPRixZQUFQO0FBQ0Q7QUFDRixPQW5CRCxNQW1CSztBQUNIQSxxQkFBYUMsVUFBYixHQUEwQixLQUExQjtBQUNBRCxxQkFBYUUsT0FBYixHQUEwQix3QkFBMUI7QUFDQSxlQUFPRixZQUFQO0FBQ0Q7QUFDRjs7Ozs7O0FBTUhWLGtCQUFrQjBCLE9BQWxCLEdBQTRCLEVBQTVCOztrQkFFZTFCLGlCO1FBR2JELHVDLEdBQUFBLHVDIiwiZmlsZSI6IjIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cbmltcG9ydCAqIGFzIGhlbHBlcnMgZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5sZWZ0UGFuZWwuc2VsZWN0T3B0aW9uTWFuYWdlLnNlcnZpY2UuaGVscGVycyc7XG5cbmNvbnN0IExFRlRfUEFORUxfU0VMRUNUX09QVElPTl9NQU5BR0VfU0VSVklDRSA9ICckc2VsZWN0T3B0aW9uTWFuZ2UnO1xuXG5cbmNsYXNzIHNlbGVjdE9wdGlvbk1hbmdle1xuICBcbiAgY29uc3RydWN0b3IoKXtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuICBcbiAgaW5pdCgpe1xuICAgIFxuICB9XG4gIFxuICBpbml0TW9kZWwoc2VsZWN0T2JqKXtcbiAgICBoZWxwZXJzLnJlc2V0TW9kZWwoc2VsZWN0T2JqKTtcbiAgfVxuICBcbiAgaXNPcHRpb25VbmlxdWUoc2VsZWN0T2JqLCB0ZXh0VmFsdWUpe1xuICAgIGZvciAobGV0IGkgPSBzZWxlY3RPYmoucm93cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHNlbGVjdE9iai5yb3dzW2ldLm9wdGlvbiA9PT0gdGV4dFZhbHVlKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIFxuICBpc09wdGlvblZhbGlkRm9ybWF0KHRleHRWYWx1ZSl7XG4gICAgaWYgKHRleHRWYWx1ZSAhPT0gJycpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgICAgICAgICAgIFxuICB9XG5cbiAgYWRkTmV3T3B0aW9uUmFkaW8oc2VsZWN0T2JqLCBuZXdPcHRpb25UZXh0KXtcbiAgICBsZXQgZnVsbFJlc3BvbnNlID0ge1xuICAgICAgcmVzdWx0RmxhZyAgOiBmYWxzZSxcbiAgICAgIGRldGFpbHMgICAgIDogJydcbiAgICB9O1xuICAgIGxldCBjaGVja1Jlc3VsdCA9IGhlbHBlcnMudmFsaWRPcHRpb24oc2VsZWN0T2JqLCBuZXdPcHRpb25UZXh0KTsgIFxuICAgIGlmIChjaGVja1Jlc3VsdC5yZXN1bHRGbGFnID09PSB0cnVlKXtcbiAgICAgICAgbGV0IG5ld09wdGlvbiA9IHtcbiAgICAgICAgICBvcHRpb24gIDogbmV3T3B0aW9uVGV4dCxcbiAgICAgICAgICBvcmRlciAgIDogc2VsZWN0T2JqLnJvd3MubGVuZ3RoXG4gICAgICAgIH07XG4gICAgICAgIHNlbGVjdE9iai5yb3dzLnB1c2gobmV3T3B0aW9uKTtcbiAgICAgICAgZnVsbFJlc3BvbnNlLnJlc3VsdEZsYWcgPSB0cnVlO1xuICAgICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICcnO1xuICAgICAgICByZXR1cm4gZnVsbFJlc3BvbnNlO1xuICAgIH1lbHNle1xuICAgICAgYW5ndWxhci5jb3B5KGNoZWNrUmVzdWx0LCBmdWxsUmVzcG9uc2UpOyAgICAgICAgICAgICAgICAgICAgXG4gICAgICByZXR1cm4gZnVsbFJlc3BvbnNlOyAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgIH1cbiAgfVxuICBcbiAgYWRkTmV3T3B0aW9uQmFzaWNTZWxlY3Qoc2VsZWN0T2JqLCBuZXdPcHRpb25UZXh0KXtcbiAgICBsZXQgZnVsbFJlc3BvbnNlID0ge1xuICAgICAgcmVzdWx0RmxhZyAgOiBmYWxzZSxcbiAgICAgIGRldGFpbHMgICAgIDogJydcbiAgICB9O1xuICAgIGxldCBjaGVja1Jlc3VsdCA9IGhlbHBlcnMudmFsaWRPcHRpb24oc2VsZWN0T2JqLCBuZXdPcHRpb25UZXh0KTsgIFxuICAgIGlmIChjaGVja1Jlc3VsdC5yZXN1bHRGbGFnID09PSB0cnVlKXtcbiAgICAgIGxldCBuZXdPcHRpb24gPSB7XG4gICAgICAgICAgb3B0aW9uICA6IG5ld09wdGlvblRleHQsXG4gICAgICAgICAgb3JkZXIgICA6IHNlbGVjdE9iai5yb3dzLmxlbmd0aFxuICAgICAgfTtcbiAgICAgIHNlbGVjdE9iai5yb3dzLnB1c2gobmV3T3B0aW9uKTtcbiAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gdHJ1ZTtcbiAgICAgIGZ1bGxSZXNwb25zZS5kZXRhaWxzICAgID0gJyc7XG4gICAgICByZXR1cm4gZnVsbFJlc3BvbnNlO1xuICAgIH1lbHNle1xuICAgICAgYW5ndWxhci5jb3B5KGNoZWNrUmVzdWx0LCBmdWxsUmVzcG9uc2UpOyAgICAgICAgICAgICAgICAgICAgXG4gICAgICByZXR1cm4gZnVsbFJlc3BvbnNlOyAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgIH1cbiAgfVxuICBcbiAgYWRkTmV3T3B0aW9uR3JvdXBlZFNlbGVjdChzZWxlY3RPYmosIG5ld09wdGlvblRleHQsIG5ld09wdGlvbkdyb3VwKXtcbiAgICBsZXQgZnVsbFJlc3BvbnNlID0ge1xuICAgICAgcmVzdWx0RmxhZyAgOiBmYWxzZSxcbiAgICAgIGRldGFpbHMgICAgIDogJydcbiAgICB9O1xuICAgIGxldCBjaGVja1Jlc3VsdCA9IGhlbHBlcnMudmFsaWRPcHRpb24oc2VsZWN0T2JqLCBuZXdPcHRpb25UZXh0KTsgIFxuICAgIGlmIChjaGVja1Jlc3VsdC5yZXN1bHRGbGFnID09PSB0cnVlKXtcbiAgICAgIGxldCBuZXdPcHRpb24gPSB7XG4gICAgICAgICAgb3B0aW9uICA6IG5ld09wdGlvblRleHQsXG4gICAgICAgICAgZ3JvdXAgICA6IG5ld09wdGlvbkdyb3VwLFxuICAgICAgICAgIG9yZGVyICAgOiBzZWxlY3RPYmoucm93cy5sZW5ndGhcbiAgICAgIH07XG4gICAgICBzZWxlY3RPYmoucm93cy5wdXNoKG5ld09wdGlvbik7XG4gICAgICBmdWxsUmVzcG9uc2UucmVzdWx0RmxhZyA9IHRydWU7XG4gICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICcnO1xuICAgICAgcmV0dXJuIGZ1bGxSZXNwb25zZTtcbiAgICB9ZWxzZXtcbiAgICAgIGFuZ3VsYXIuY29weShjaGVja1Jlc3VsdCwgZnVsbFJlc3BvbnNlKTsgICAgICAgICAgICAgICAgICAgIFxuICAgICAgcmV0dXJuIGZ1bGxSZXNwb25zZTsgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICB9XG4gIH0gIFxuICBcbiAgcmVtb3ZlT3B0aW9uKHNlbGVjdE9iaiwgQXRJbmRleCkge1xuICAgIGxldCBmdWxsUmVzcG9uc2UgPSB7XG4gICAgICByZXN1bHRGbGFnICA6IGZhbHNlLFxuICAgICAgZGV0YWlscyAgICAgOiAnJ1xuICAgIH07XG4gICAgaWYgKEF0SW5kZXggIT09IC0xKSB7XG4gICAgICBzZWxlY3RPYmoucm93cy5zcGxpY2UoQXRJbmRleCwgMSk7XG4gICAgICBmdWxsUmVzcG9uc2UucmVzdWx0RmxhZyA9IHRydWU7XG4gICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICcnO1xuICAgICAgcmV0dXJuIGZ1bGxSZXNwb25zZTtcbiAgICB9ZWxzZXtcbiAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gZmFsc2U7XG4gICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICdPcHRpb24gaW5kZXggbm90IHZhbGlkJztcbiAgICAgIHJldHVybiBmdWxsUmVzcG9uc2U7XG4gICAgfVxuICB9XG4gIFxuICB1cHRoaXNPcHRpb24oc2VsZWN0T2JqLCBpbmRleE9wdGlvbil7XG4gICAgbGV0IGZ1bGxSZXNwb25zZSA9IHtcbiAgICAgIHJlc3VsdEZsYWcgIDogZmFsc2UsXG4gICAgICBkZXRhaWxzICAgICA6ICcnXG4gICAgfTtcbiAgICBpZiAoaW5kZXhPcHRpb24gPiAtMSkge1xuICAgICAgaWYgKGluZGV4T3B0aW9uID4gMCkge1xuICAgICAgICBpZiAoc2VsZWN0T2JqLnJvd3NbaW5kZXhPcHRpb24gLSAxXSkge1xuICAgICAgICAgIGxldCBjdXJyZW50T3B0aW9uID0gc2VsZWN0T2JqLnJvd3NbaW5kZXhPcHRpb25dO1xuICAgICAgICAgIHNlbGVjdE9iai5yb3dzLnNwbGljZShpbmRleE9wdGlvbiAsIDEpO1xuICAgICAgICAgIHNlbGVjdE9iai5yb3dzLnNwbGljZSgoaW5kZXhPcHRpb24gLSAxKSwgMCwgY3VycmVudE9wdGlvbik7IFxuICAgICAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gdHJ1ZTtcbiAgICAgICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICcnO1xuICAgICAgICAgIHJldHVybiBmdWxsUmVzcG9uc2U7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gZmFsc2U7XG4gICAgICAgICAgZnVsbFJlc3BvbnNlLmRldGFpbHMgICAgPSBgQ2FuJ3QgcmV0cmVpdmUgb3B0aW9uIGZyb20gb3B0aW9uIGluZGV4YDtcbiAgICAgICAgICByZXR1cm4gZnVsbFJlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICB9ZWxzZXtcbiAgICAgICAgZnVsbFJlc3BvbnNlLnJlc3VsdEZsYWcgPSB0cnVlO1xuICAgICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICcnO1xuICAgICAgICByZXR1cm4gZnVsbFJlc3BvbnNlO1xuICAgICAgfSAgXG4gICAgfWVsc2V7XG4gICAgICBmdWxsUmVzcG9uc2UucmVzdWx0RmxhZyA9IGZhbHNlO1xuICAgICAgZnVsbFJlc3BvbnNlLmRldGFpbHMgICAgPSAnT3B0aW9uIGluZGV4IG5vdCB2YWxpZCc7XG4gICAgICByZXR1cm4gZnVsbFJlc3BvbnNlO1xuICAgIH1cbiAgfVxuICBcbiAgZG93bnRoaXNPcHRpb24oc2VsZWN0T2JqLCBpbmRleE9wdGlvbil7XG4gICAgbGV0IGZ1bGxSZXNwb25zZSA9IHtcbiAgICAgIHJlc3VsdEZsYWcgIDogZmFsc2UsXG4gICAgICBkZXRhaWxzICAgICA6ICcnXG4gICAgfTtcbiAgICBpZiAoaW5kZXhPcHRpb24gPiAtMSkge1xuICAgICAgaWYgKGluZGV4T3B0aW9uIDwgc2VsZWN0T2JqLnJvd3MubGVuZ3RoIC0gMSl7XG4gICAgICAgIGlmIChzZWxlY3RPYmoucm93c1tpbmRleE9wdGlvbiArIDFdKSB7XG4gICAgICAgICAgbGV0IGN1cnJlbnRPcHRpb24gPSBzZWxlY3RPYmoucm93c1tpbmRleE9wdGlvbl07XG4gICAgICAgICAgc2VsZWN0T2JqLnJvd3Muc3BsaWNlKGluZGV4T3B0aW9uICwgMSk7XG4gICAgICAgICAgc2VsZWN0T2JqLnJvd3Muc3BsaWNlKChpbmRleE9wdGlvbiArIDEpLCAwLCBjdXJyZW50T3B0aW9uKTsgIFxuICAgICAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gdHJ1ZTtcbiAgICAgICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICcnO1xuICAgICAgICAgIHJldHVybiBmdWxsUmVzcG9uc2U7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gZmFsc2U7XG4gICAgICAgICAgZnVsbFJlc3BvbnNlLmRldGFpbHMgICAgPSBgQ2FuJ3QgcmV0cmVpdmUgb3B0aW9uIGZyb20gb3B0aW9uIGluZGV4YDtcbiAgICAgICAgICByZXR1cm4gZnVsbFJlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICB9ZWxzZXsgICAgICAgICAgXG4gICAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gdHJ1ZTtcbiAgICAgICAgZnVsbFJlc3BvbnNlLmRldGFpbHMgICAgPSAnJztcbiAgICAgICAgcmV0dXJuIGZ1bGxSZXNwb25zZTtcbiAgICAgIH1cbiAgICB9ZWxzZXtcbiAgICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gZmFsc2U7XG4gICAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICdPcHRpb24gaW5kZXggbm90IHZhbGlkJztcbiAgICAgIHJldHVybiBmdWxsUmVzcG9uc2U7XG4gICAgfVxuICB9ICAgIFxuICBcbiAgXG4gIFxufVxuXG5zZWxlY3RPcHRpb25NYW5nZS4kaW5qZWN0ID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IHNlbGVjdE9wdGlvbk1hbmdlO1xuXG5leHBvcnQge1xuICBMRUZUX1BBTkVMX1NFTEVDVF9PUFRJT05fTUFOQUdFX1NFUlZJQ0Vcbn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9lZGFEcmFnRHJvcFdheS5sZWZ0UGFuZWwuc2VsZWN0T3B0aW9uTWFuYWdlLnNlcnZpY2UuanMiXSwic291cmNlUm9vdCI6IiJ9");
  116. /***/ },
  117. /* 21 */
  118. /***/ function(module, exports) {
  119. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/* global angular */\nvar resetModel = function resetModel(selectObj) {\n var zeroModel = { rows: [] };\n angular.copy(zeroModel, selectObj);\n};\n\nvar validOption = function validOption(selectObj, newOptionText) {\n var fullResponse = {\n resultFlag: false,\n details: ''\n };\n if (typeof newOptionText === 'undefined') {\n fullResponse.resultFlag = false;\n fullResponse.details = 'Entered option is empty';\n return fullResponse;\n }\n if (newOptionText !== '') {\n for (var i = selectObj.rows.length - 1; i >= 0; i--) {\n if (selectObj.rows[i].option === newOptionText) {\n fullResponse.resultFlag = false;\n fullResponse.details = 'Entered option is not unique';\n return fullResponse;\n }\n }\n fullResponse.resultFlag = true;\n fullResponse.details = '';\n return fullResponse;\n }\n fullResponse.resultFlag = false;\n fullResponse.details = 'Entered option is empty';\n return fullResponse;\n};\n\nexports.resetModel = resetModel;\nexports.validOption = validOption;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5zZWxlY3RPcHRpb25NYW5hZ2Uuc2VydmljZS5oZWxwZXJzLmpzPzQyOGEiXSwibmFtZXMiOlsicmVzZXRNb2RlbCIsInNlbGVjdE9iaiIsInplcm9Nb2RlbCIsInJvd3MiLCJhbmd1bGFyIiwiY29weSIsInZhbGlkT3B0aW9uIiwibmV3T3B0aW9uVGV4dCIsImZ1bGxSZXNwb25zZSIsInJlc3VsdEZsYWciLCJkZXRhaWxzIiwiaSIsImxlbmd0aCIsIm9wdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBLElBQU1BLGFBQWEsU0FBYkEsVUFBYSxDQUFDQyxTQUFELEVBQWU7QUFDaEMsTUFBSUMsWUFBWSxFQUFFQyxNQUFLLEVBQVAsRUFBaEI7QUFDQUMsVUFBUUMsSUFBUixDQUFhSCxTQUFiLEVBQXdCRCxTQUF4QjtBQUNELENBSEQ7O0FBTUEsSUFBTUssY0FBYyxTQUFkQSxXQUFjLENBQUNMLFNBQUQsRUFBWU0sYUFBWixFQUE4QjtBQUNoRCxNQUFJQyxlQUFlO0FBQ2pCQyxnQkFBYSxLQURJO0FBRWpCQyxhQUFVO0FBRk8sR0FBbkI7QUFJQSxNQUFJLE9BQU9ILGFBQVAsS0FBeUIsV0FBN0IsRUFBMEM7QUFDeENDLGlCQUFhQyxVQUFiLEdBQTBCLEtBQTFCO0FBQ0FELGlCQUFhRSxPQUFiLEdBQTBCLHlCQUExQjtBQUNBLFdBQU9GLFlBQVA7QUFDRDtBQUNELE1BQUlELGtCQUFrQixFQUF0QixFQUEwQjtBQUN4QixTQUFLLElBQUlJLElBQUlWLFVBQVVFLElBQVYsQ0FBZVMsTUFBZixHQUF3QixDQUFyQyxFQUF3Q0QsS0FBSyxDQUE3QyxFQUFnREEsR0FBaEQsRUFBcUQ7QUFDbkQsVUFBSVYsVUFBVUUsSUFBVixDQUFlUSxDQUFmLEVBQWtCRSxNQUFsQixLQUE2Qk4sYUFBakMsRUFBZ0Q7QUFDOUNDLHFCQUFhQyxVQUFiLEdBQTBCLEtBQTFCO0FBQ0FELHFCQUFhRSxPQUFiLEdBQTBCLDhCQUExQjtBQUNBLGVBQU9GLFlBQVA7QUFDRDtBQUNGO0FBQ0RBLGlCQUFhQyxVQUFiLEdBQTBCLElBQTFCO0FBQ0FELGlCQUFhRSxPQUFiLEdBQXVCLEVBQXZCO0FBQ0EsV0FBT0YsWUFBUDtBQUNEO0FBQ0RBLGVBQWFDLFVBQWIsR0FBMEIsS0FBMUI7QUFDQUQsZUFBYUUsT0FBYixHQUF1Qix5QkFBdkI7QUFDQSxTQUFPRixZQUFQO0FBQ0QsQ0F6QkQ7O1FBNEJFUixVLEdBQUFBLFU7UUFDQU0sVyxHQUFBQSxXIiwiZmlsZSI6IjIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cbmNvbnN0IHJlc2V0TW9kZWwgPSAoc2VsZWN0T2JqKSA9PiB7XG4gIGxldCB6ZXJvTW9kZWwgPSB7IHJvd3M6W10gfTtcbiAgYW5ndWxhci5jb3B5KHplcm9Nb2RlbCwgc2VsZWN0T2JqKTtcbn07XG5cblxuY29uc3QgdmFsaWRPcHRpb24gPSAoc2VsZWN0T2JqLCBuZXdPcHRpb25UZXh0KSA9PiB7XG4gIGxldCBmdWxsUmVzcG9uc2UgPSB7XG4gICAgcmVzdWx0RmxhZyA6IGZhbHNlLFxuICAgIGRldGFpbHMgOiAnJ1xuICB9O1xuICBpZiAodHlwZW9mIG5ld09wdGlvblRleHQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgZnVsbFJlc3BvbnNlLnJlc3VsdEZsYWcgPSBmYWxzZTtcbiAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyAgICA9ICdFbnRlcmVkIG9wdGlvbiBpcyBlbXB0eSc7XG4gICAgcmV0dXJuIGZ1bGxSZXNwb25zZTtcbiAgfVxuICBpZiAobmV3T3B0aW9uVGV4dCAhPT0gJycpIHtcbiAgICBmb3IgKHZhciBpID0gc2VsZWN0T2JqLnJvd3MubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmIChzZWxlY3RPYmoucm93c1tpXS5vcHRpb24gPT09IG5ld09wdGlvblRleHQpIHtcbiAgICAgICAgZnVsbFJlc3BvbnNlLnJlc3VsdEZsYWcgPSBmYWxzZTtcbiAgICAgICAgZnVsbFJlc3BvbnNlLmRldGFpbHMgICAgPSAnRW50ZXJlZCBvcHRpb24gaXMgbm90IHVuaXF1ZSc7XG4gICAgICAgIHJldHVybiBmdWxsUmVzcG9uc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bGxSZXNwb25zZS5yZXN1bHRGbGFnID0gdHJ1ZTtcbiAgICBmdWxsUmVzcG9uc2UuZGV0YWlscyA9ICcnO1xuICAgIHJldHVybiBmdWxsUmVzcG9uc2U7XG4gIH1cbiAgZnVsbFJlc3BvbnNlLnJlc3VsdEZsYWcgPSBmYWxzZTsgICAgIFxuICBmdWxsUmVzcG9uc2UuZGV0YWlscyA9ICdFbnRlcmVkIG9wdGlvbiBpcyBlbXB0eSc7XG4gIHJldHVybiBmdWxsUmVzcG9uc2U7XG59O1xuXG5leHBvcnQge1xuICByZXNldE1vZGVsLFxuICB2YWxpZE9wdGlvblxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvZWRhRHJhZ0Ryb3BXYXkubGVmdFBhbmVsLnNlbGVjdE9wdGlvbk1hbmFnZS5zZXJ2aWNlLmhlbHBlcnMuanMiXSwic291cmNlUm9vdCI6IiJ9");
  120. /***/ },
  121. /* 22 */
  122. /***/ function(module, exports) {
  123. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/// <reference path=\"../../../../../typings/angularjs/angular.d.ts\" />\n/// <reference path=\"../../../../../typings/lodash/lodash.d.ts\" />\n\n/**\n * TODO :\n * - clean deprecated functions\n * - method 'resetAllTemporyModels' -> remove no use angular.copy to optimize\n */\n\nvar CONTROLLER_MODAL_PROXY = 'controllerModalProxy';\nvar INIT_OPTION_MODEL = { rows: [] };\n\nvar controllerModalProxy = function () {\n function controllerModalProxy(EasyFormGenFormlyBindingModels) {\n _classCallCheck(this, controllerModalProxy);\n\n this.EasyFormGenFormlyBindingModels = EasyFormGenFormlyBindingModels;\n this.init();\n }\n\n _createClass(controllerModalProxy, [{\n key: 'init',\n value: function init() {\n this.proxyModel = {};\n this.resetProxyModel();\n this.editPanelModel = {\n toggle: false,\n lineIndex: -1,\n columnIndex: -1,\n control: {}\n };\n this.basicSelectRowCollection = angular.copy(INIT_OPTION_MODEL);\n this.newOptionBasicSelect = angular.copy({ saisie: '' });\n\n this.groupedSelectRowCollection = angular.copy(INIT_OPTION_MODEL);\n this.newOptionGroupedSelect = angular.copy({ saisie: '' });\n this.GroupedSelectGroups = angular.copy({ list: [] });\n this.newGroupGroupedSelect = angular.copy({ saisie: '' });\n this.groupSelectGroupClick = angular.copy({ showList: false });\n\n this.radioRowCollection = angular.copy(INIT_OPTION_MODEL);\n this.newOptionRadio = angular.copy({ saisie: '' });\n }\n\n // deprecated in drag and drop version, use initProxyModel insead\n\n }, {\n key: 'initNyaSelect',\n value: function initNyaSelect(nyaSelectObj) {\n return this.resetNyaSelect(nyaSelectObj);\n }\n }, {\n key: 'initProxyModel',\n value: function initProxyModel(thisProxyModelToInit) {\n return this.resetProxyModel(thisProxyModelToInit);\n }\n\n // deprecated : in drag and drop version, use \"resetProxyModel()\"\"\n\n }, {\n key: 'resetNyaSelect',\n value: function resetNyaSelect(nyaSelectObj) {\n var newNyaSelectObj = this.EasyFormGenFormlyBindingModels.getEasyFormListControls();\n angular.copy(newNyaSelectObj, nyaSelectObj);\n return true;\n }\n }, {\n key: 'resetProxyModel',\n value: function resetProxyModel() {\n var newProxyModel = this.EasyFormGenFormlyBindingModels.getEasyFormListControls();\n this.proxyModel = angular.copy(newProxyModel);\n return true;\n }\n }, {\n key: 'returnControlFromAddCtrlModalModel',\n value: function returnControlFromAddCtrlModalModel(CtrlModalModel) {\n var modelToReturn = {\n selectedControl: 'none',\n formlyType: 'none',\n formlySubtype: 'none',\n formlyLabel: '',\n formlyRequired: false,\n formlyDesciption: '',\n formlyPlaceholder: '',\n formlyOptions: []\n };\n for (var i = CtrlModalModel.controls.length - 1; i >= 0; i--) {\n if (CtrlModalModel.selectedControl === CtrlModalModel.controls[i].id) {\n\n modelToReturn.selectedControl = CtrlModalModel.selectedControl;\n modelToReturn.formlyType = CtrlModalModel.controls[i].formlyType;\n modelToReturn.formlySubtype = CtrlModalModel.controls[i].formlySubtype;\n modelToReturn.formlyLabel = CtrlModalModel.controls[i].formlyLabel;\n modelToReturn.formlyRequired = CtrlModalModel.controls[i].formlyRequired;\n modelToReturn.formlyDesciption = CtrlModalModel.controls[i].formlyDesciption;\n modelToReturn.formlyPlaceholder = CtrlModalModel.controls[i].formlyPlaceholder;\n modelToReturn.formlyOptions = CtrlModalModel.controls[i].formlyOptions;\n // particular properties, here ; datetpicker format\n if (CtrlModalModel.controls[i].formlyType === 'datepicker') modelToReturn.datepickerPopup = CtrlModalModel.controls[i].datepickerPopup;\n }\n }\n return modelToReturn;\n }\n }, {\n key: 'validKeyUniqueness',\n value: function validKeyUniqueness(thisKey, configurationObj) {\n var isUnique = true;\n for (var i = configurationObj.lines.length - 1; i >= 0; i--) {\n for (var j = configurationObj.lines[i].columns.length - 1; j >= 0; j--) {\n if (configurationObj.lines[i].columns[j].control.key === thisKey) {\n isUnique = false;\n }\n }\n }\n return isUnique;\n }\n }, {\n key: 'getSelectedProxyModel',\n value: function getSelectedProxyModel(configurationSelectedCtrl) {\n var selectedProxyModelControl = 'none';\n var listProxyModelCTRL = angular.copy(this.EasyFormGenFormlyBindingModels.getEasyFormListControls().controls);\n\n listProxyModelCTRL.forEach(function (control) {\n if (control.formlyType === configurationSelectedCtrl.type && control.formlySubtype === configurationSelectedCtrl.subtype) {\n selectedProxyModelControl = control.id;\n return selectedProxyModelControl;\n }\n });\n return selectedProxyModelControl;\n }\n\n // to refresh configuration model from edit panel\n\n }, {\n key: 'bindConfigurationModelFromProxyModel',\n value: function bindConfigurationModelFromProxyModel(indexLine, numcolumn, configurationObj) {\n var extractedProps = angular.copy(this.proxyModel.temporyConfig);\n\n configurationObj.lines[indexLine].columns[numcolumn].control.selectedControl = extractedProps.selectedControl;\n configurationObj.lines[indexLine].columns[numcolumn].control.type = extractedProps.formlyType;\n configurationObj.lines[indexLine].columns[numcolumn].control.subtype = extractedProps.formlySubtype;\n // templateOptions\n configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions = {\n label: '',\n required: false,\n description: '',\n placeholder: '',\n options: []\n };\n // then bind template option\n configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.label = extractedProps.formlyLabel;\n configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.required = extractedProps.formlyRequired;\n configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.description = extractedProps.formlyDesciption;\n configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.placeholder = extractedProps.formlyPlaceholder;\n configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.options = extractedProps.formlyOptions;\n // add additionnal — particular — properties : -> datepicker : datepickerPopup\n if (configurationObj.lines[indexLine].columns[numcolumn].control.type === 'datepicker') {\n configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.datepickerPopup = extractedProps.datepickerPopup;\n }\n // unique key (set only first time) in this model is formly control type + Date.now();\n var newKey = configurationObj.lines[indexLine].columns[numcolumn].control.type + '-' + Date.now();\n\n if (this.validKeyUniqueness(newKey, configurationObj) === true) {\n configurationObj.lines[indexLine].columns[numcolumn].control.key = newKey;\n } else {\n newKey = configurationObj.lines[indexLine].columns[numcolumn].control.type + '-' + Date.now();\n if (this.validKeyUniqueness(newKey, configurationObj) === true) {\n configurationObj.lines[indexLine].columns[numcolumn].control.key = newKey;\n } else {\n newKey = configurationObj.lines[indexLine].columns[numcolumn].control.type + '-' + Date.now();\n }\n }\n configurationObj.lines[indexLine].columns[numcolumn].control.edited = true;\n }\n\n /**\n * set local proxyModel from Selected control in configuration model\n *\n * replace deprecated \"getNyASelectFromSelectedLineColumn\"\n * -model is now named \"proxyModel\"\n * -model is stored in this service\n *\n * -> it has just more sence!\n */\n\n }, {\n key: 'setProxyModelFromConfigurationSelection',\n value: function setProxyModelFromConfigurationSelection(configurationObj, indexLine, numcolumn) {\n // data send to modal controller\n if (typeof configurationObj.lines[indexLine].columns[numcolumn].control != 'undefined') {\n // determine selected control from indexes and control.type and control.subtype in configuration model\n this.proxyModel.selectedControl = typeof configurationObj.lines[indexLine].columns[numcolumn].control.type != 'undefined' ? this.getSelectedProxyModel(configurationObj.lines[indexLine].columns[numcolumn].control) : 'none';\n this.proxyModel.temporyConfig.selectedControl = typeof configurationObj.lines[indexLine].columns[numcolumn].control.type != 'undefined' ? this.getSelectedProxyModel(configurationObj.lines[indexLine].columns[numcolumn].control) : 'none';\n this.proxyModel.temporyConfig.formlyType = typeof configurationObj.lines[indexLine].columns[numcolumn].control.type != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.type : 'none';\n this.proxyModel.temporyConfig.formlySubtype = typeof configurationObj.lines[indexLine].columns[numcolumn].control.subtype != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.subtype : 'none';\n this.proxyModel.temporyConfig.formlyLabel = typeof configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.label != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.label : '';\n this.proxyModel.temporyConfig.formlyRequired = typeof configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.required != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.required : '';\n this.proxyModel.temporyConfig.formlyDesciption = typeof configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.description != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.description : '';\n this.proxyModel.temporyConfig.formlyPlaceholder = typeof configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.placeholder != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.placeholder : '';\n this.proxyModel.temporyConfig.formlyOptions = typeof configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.options != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.options : '';\n // particular case : datepicker\n if (this.proxyModel.temporyConfig.selectedControl === 'Date') {\n this.proxyModel.temporyConfig.datepickerPopup = typeof configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.datepickerPopup != 'undefined' ? configurationObj.lines[indexLine].columns[numcolumn].control.templateOptions.datepickerPopup : '';\n }\n // console.info('debug setProxyModelFromConfigurationSelection');\n // console.dir({\n // selectedControl : angular.copy(this.proxyModel.selectedControl ),\n // temporyConfig : angular.copy(this.proxyModel.temporyConfig)\n // });\n }\n return this.proxyModel;\n }\n }, {\n key: 'getProxyModel',\n value: function getProxyModel() {\n return this.proxyModel;\n }\n\n /**\n * ============================================================\n * following methods for \"editPanelModel\"\n *\n * Note this model :\n * - to manage side edit control panel\n * ============================================================\n */\n\n // getter : editPanelModel (whole model => type = object)\n\n }, {\n key: 'getEditPanelModelAllModel',\n value: function getEditPanelModelAllModel() {\n return this.editPanelModel;\n }\n\n // setter : editPanelModel (whole model => type = object)\n\n }, {\n key: 'setEditPanelModelControl',\n value: function setEditPanelModelControl(newEditPanelModel) {\n var successfullDone = false;\n if (typeof newEditPanelModel !== 'undefined') {\n angular.merge(this.editPanelModel, newEditPanelModel);\n successfullDone = true;\n }\n return successfullDone;\n }\n\n // getter : editPanelModel.columnIndex\n\n }, {\n key: 'getEditPanelModelColumnIndex',\n value: function getEditPanelModelColumnIndex() {\n return this.editPanelModel.columnIndex;\n }\n\n // setter : editPanelModel.columnIndex\n\n }, {\n key: 'setEditPanelModelColumnIndex',\n value: function setEditPanelModelColumnIndex(newColumnIndex) {\n var successfullDone = false;\n if (typeof newColumnIndex !== 'undefined') {\n this.editPanelModel.columnIndex = newColumnIndex;\n successfullDone = true;\n }\n return successfullDone;\n }\n\n // getter : editPanelModel.lineIndex\n\n }, {\n key: 'getEditPanelModelLineIndex',\n value: function getEditPanelModelLineIndex() {\n return this.editPanelModel.lineIndex;\n }\n\n // setter : editPanelModel.lineIndex\n\n }, {\n key: 'setEditPanelModelLineIndex',\n value: function setEditPanelModelLineIndex(newLineIndex) {\n var successfullDone = false;\n if (typeof newLineIndex !== 'undefined') {\n this.editPanelModel.lineIndex = newLineIndex;\n successfullDone = true;\n }\n return successfullDone;\n }\n\n // getter : editPanelModel.control\n\n }, {\n key: 'getEditPanelModelControl',\n value: function getEditPanelModelControl() {\n return this.editPanelModel.control;\n }\n\n // getter : editPanelModel.toggle\n\n }, {\n key: 'getEditPanelModelToggle',\n value: function getEditPanelModelToggle() {\n return this.editPanelModel.toggle;\n }\n\n // setter : editPanelModel.toggle\n\n }, {\n key: 'setEditPanelModelToggle',\n value: function setEditPanelModelToggle(newToggleValue) {\n var successfullDone = false;\n if (typeof newToggleValue !== 'undefined') {\n this.editPanelModel.toggle = newToggleValue;\n successfullDone = true;\n }\n return successfullDone;\n }\n }, {\n key: 'resetAllTemporyModels',\n value: function resetAllTemporyModels() {\n this.basicSelectRowCollection = angular.copy(INIT_OPTION_MODEL);\n this.newOptionBasicSelect = angular.copy({ saisie: '' });\n\n this.groupedSelectRowCollection = angular.copy(INIT_OPTION_MODEL);\n this.newOptionGroupedSelect = angular.copy({ saisie: '' });\n this.GroupedSelectGroups = angular.copy({ list: [] });\n this.newGroupGroupedSelect = angular.copy({ saisie: '' });\n this.groupSelectGroupClick = angular.copy({ showList: false });\n\n this.radioRowCollection = angular.copy(INIT_OPTION_MODEL);\n this.newOptionRadio = angular.copy({ saisie: '' });\n return true;\n }\n\n /**\n * bindSpecialCtrlTemporyModelsToProxyModel: needed when validating after editing a control\n * tempory models applied to proxyModel if control is one of these\n *\n * example : if selected control is a basic select options\n * -> so its tempory models are bound to proxyModel\n */\n\n }, {\n key: 'bindSpecialCtrlTemporyModelsToProxyModel',\n value: function bindSpecialCtrlTemporyModelsToProxyModel() {\n if (this.proxyModel.selectedControl === 'BasicSelect') {\n this.bindBasicSelectToProxyModel(this.basicSelectRowCollection);\n }\n if (this.proxyModel.selectedControl === 'GroupedSelect') {\n this.bindGroupedSelectToProxyModel(this.groupedSelectRowCollection);\n }\n if (this.proxyModel.selectedControl === 'Radio') {\n this.bindRadioToProxyModel(this.radioRowCollection);\n }\n }\n\n // basic select\n\n }, {\n key: 'bindBasicSelectFromProxyModel',\n value: function bindBasicSelectFromProxyModel(basicSelectRowCollection) {\n if (this.proxyModel.temporyConfig.formlyOptions.length > 0) {\n for (var i = 0; i <= this.proxyModel.temporyConfig.formlyOptions.length - 1; i++) {\n var newOption = {\n 'option': this.proxyModel.temporyConfig.formlyOptions[i].name,\n 'order': i,\n 'group': ''\n };\n basicSelectRowCollection.rows.push(newOption);\n }\n }\n }\n }, {\n key: 'bindBasicSelectToProxyModel',\n value: function bindBasicSelectToProxyModel(basicSelectRowCollection) {\n var resetNyASelectOptions = [];\n this.proxyModel.temporyConfig.formlyOptions = resetNyASelectOptions;\n if (basicSelectRowCollection.rows.length > 0) {\n for (var i = 0; i <= basicSelectRowCollection.rows.length - 1; i++) {\n var newOption = {\n 'name': basicSelectRowCollection.rows[i].option,\n 'value': i,\n 'group': ''\n };\n this.proxyModel.temporyConfig.formlyOptions.push(newOption);\n }\n }\n }\n\n //* grouped select\n\n }, {\n key: 'bindGroupedSelectFromProxyModel',\n value: function bindGroupedSelectFromProxyModel(groupedSelectRowCollection, GroupedSelectGroups) {\n if (this.proxyModel.temporyConfig.formlyOptions.length > 0) {\n for (var i = 0; i <= this.proxyModel.temporyConfig.formlyOptions.length - 1; i++) {\n var newOption = {\n 'option': this.proxyModel.temporyConfig.formlyOptions[i].name,\n 'order': i,\n 'group': this.proxyModel.temporyConfig.formlyOptions[i].group\n };\n groupedSelectRowCollection.rows.push(newOption);\n }\n //grouplist : thx to lodash it is easy\n var filteredgroup = _.uniq(_.pluck(groupedSelectRowCollection.rows, 'group'));\n angular.copy(filteredgroup, GroupedSelectGroups.list);\n }\n }\n }, {\n key: 'bindGroupedSelectToProxyModel',\n value: function bindGroupedSelectToProxyModel(groupedSelectRowCollection) {\n this.proxyModel.temporyConfig.formlyOptions = [];\n for (var i = 0; i <= groupedSelectRowCollection.rows.length - 1; i++) {\n var newOption = {\n 'name': groupedSelectRowCollection.rows[i].option,\n 'value': i,\n 'group': groupedSelectRowCollection.rows[i].group\n };\n this.proxyModel.temporyConfig.formlyOptions.push(newOption);\n }\n }\n\n // radio\n\n }, {\n key: 'bindRadioFromProxyModel',\n value: function bindRadioFromProxyModel(radioRowCollection) {\n if (this.proxyModel.temporyConfig.formlyOptions.length > 0) {\n for (var i = 0; i <= this.proxyModel.temporyConfig.formlyOptions.length - 1; i++) {\n var newOption = {\n 'option': this.proxyModel.temporyConfig.formlyOptions[i].name,\n 'order': i,\n 'group': ''\n };\n radioRowCollection.rows.push(newOption);\n }\n }\n }\n }, {\n key: 'bindRadioToProxyModel',\n value: function bindRadioToProxyModel(radioRowCollection) {\n var resetproxyModelOptions = [];\n this.proxyModel.temporyConfig.formlyOptions = resetproxyModelOptions;\n if (radioRowCollection.rows.length > 0) {\n for (var i = 0; i <= radioRowCollection.rows.length - 1; i++) {\n var newOption = {\n 'name': radioRowCollection.rows[i].option,\n 'value': i,\n 'group': ''\n };\n this.proxyModel.temporyConfig.formlyOptions.push(newOption);\n }\n }\n }\n }]);\n\n return controllerModalProxy;\n}();\n\ncontrollerModalProxy.$inject = ['EasyFormGenFormlyBindingModels'];\n\nexports.default = controllerModalProxy;\nexports.CONTROLLER_MODAL_PROXY = CONTROLLER_MODAL_PROXY;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL2VkYURyYWdEcm9wV2F5LmxlZnRQYW5lbC5jb250cm9sbGVyTW9kYWxQcm94eS5zZXJ2aWNlLmpzP2UwMzEiXSwibmFtZXMiOlsiQ09OVFJPTExFUl9NT0RBTF9QUk9YWSIsIklOSVRfT1BUSU9OX01PREVMIiwicm93cyIsImNvbnRyb2xsZXJNb2RhbFByb3h5IiwiRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzIiwiaW5pdCIsInByb3h5TW9kZWwiLCJyZXNldFByb3h5TW9kZWwiLCJlZGl0UGFuZWxNb2RlbCIsInRvZ2dsZSIsImxpbmVJbmRleCIsImNvbHVtbkluZGV4IiwiY29udHJvbCIsImJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbiIsImFuZ3VsYXIiLCJjb3B5IiwibmV3T3B0aW9uQmFzaWNTZWxlY3QiLCJzYWlzaWUiLCJncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbiIsIm5ld09wdGlvbkdyb3VwZWRTZWxlY3QiLCJHcm91cGVkU2VsZWN0R3JvdXBzIiwibGlzdCIsIm5ld0dyb3VwR3JvdXBlZFNlbGVjdCIsImdyb3VwU2VsZWN0R3JvdXBDbGljayIsInNob3dMaXN0IiwicmFkaW9Sb3dDb2xsZWN0aW9uIiwibmV3T3B0aW9uUmFkaW8iLCJueWFTZWxlY3RPYmoiLCJyZXNldE55YVNlbGVjdCIsInRoaXNQcm94eU1vZGVsVG9Jbml0IiwibmV3TnlhU2VsZWN0T2JqIiwiZ2V0RWFzeUZvcm1MaXN0Q29udHJvbHMiLCJuZXdQcm94eU1vZGVsIiwiQ3RybE1vZGFsTW9kZWwiLCJtb2RlbFRvUmV0dXJuIiwic2VsZWN0ZWRDb250cm9sIiwiZm9ybWx5VHlwZSIsImZvcm1seVN1YnR5cGUiLCJmb3JtbHlMYWJlbCIsImZvcm1seVJlcXVpcmVkIiwiZm9ybWx5RGVzY2lwdGlvbiIsImZvcm1seVBsYWNlaG9sZGVyIiwiZm9ybWx5T3B0aW9ucyIsImkiLCJjb250cm9scyIsImxlbmd0aCIsImlkIiwiZGF0ZXBpY2tlclBvcHVwIiwidGhpc0tleSIsImNvbmZpZ3VyYXRpb25PYmoiLCJpc1VuaXF1ZSIsImxpbmVzIiwiaiIsImNvbHVtbnMiLCJrZXkiLCJjb25maWd1cmF0aW9uU2VsZWN0ZWRDdHJsIiwic2VsZWN0ZWRQcm94eU1vZGVsQ29udHJvbCIsImxpc3RQcm94eU1vZGVsQ1RSTCIsImZvckVhY2giLCJ0eXBlIiwic3VidHlwZSIsImluZGV4TGluZSIsIm51bWNvbHVtbiIsImV4dHJhY3RlZFByb3BzIiwidGVtcG9yeUNvbmZpZyIsInRlbXBsYXRlT3B0aW9ucyIsImxhYmVsIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsInBsYWNlaG9sZGVyIiwib3B0aW9ucyIsIm5ld0tleSIsIkRhdGUiLCJub3ciLCJ2YWxpZEtleVVuaXF1ZW5lc3MiLCJlZGl0ZWQiLCJnZXRTZWxlY3RlZFByb3h5TW9kZWwiLCJuZXdFZGl0UGFuZWxNb2RlbCIsInN1Y2Nlc3NmdWxsRG9uZSIsIm1lcmdlIiwibmV3Q29sdW1uSW5kZXgiLCJuZXdMaW5lSW5kZXgiLCJuZXdUb2dnbGVWYWx1ZSIsImJpbmRCYXNpY1NlbGVjdFRvUHJveHlNb2RlbCIsImJpbmRHcm91cGVkU2VsZWN0VG9Qcm94eU1vZGVsIiwiYmluZFJhZGlvVG9Qcm94eU1vZGVsIiwibmV3T3B0aW9uIiwibmFtZSIsInB1c2giLCJyZXNldE55QVNlbGVjdE9wdGlvbnMiLCJvcHRpb24iLCJncm91cCIsImZpbHRlcmVkZ3JvdXAiLCJfIiwidW5pcSIsInBsdWNrIiwicmVzZXRwcm94eU1vZGVsT3B0aW9ucyIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBOzs7Ozs7QUFNQSxJQUFNQSx5QkFBMEIsc0JBQWhDO0FBQ0EsSUFBTUMsb0JBQTBCLEVBQUVDLE1BQU8sRUFBVCxFQUFoQzs7SUFFTUMsb0I7QUFFSixnQ0FBWUMsOEJBQVosRUFBMkM7QUFBQTs7QUFDekMsU0FB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LElBQW5CLENBQXdCc0YsSUFBeEIsQ0FBNkJGLFNBQTdCO0FBQ0g7QUFDRjtBQUNIOzs7MENBRXNCN0Qsa0IsRUFBbUI7QUFDdkMsVUFBSXVFLHlCQUF5QixFQUE3QjtBQUNBLFdBQUsxRixVQUFMLENBQWdCMEQsYUFBaEIsQ0FBOEJ0QixhQUE5QixHQUE4Q3NELHNCQUE5QztBQUNBLFVBQUl2RSxtQkFBbUJ2QixJQUFuQixDQUF3QjJDLE1BQXhCLEdBQWlDLENBQXJDLEVBQXdDO0FBQ3RDLGFBQUssSUFBSUYsSUFBSSxDQUFiLEVBQWdCQSxLQUFLbEIsbUJBQW1CdkIsSUFBbkIsQ0FBd0IyQyxNQUF4QixHQUFpQyxDQUF0RCxFQUF5REYsR0FBekQsRUFBNkQ7QUFDM0QsY0FBSTJDLFlBQVk7QUFDZCxvQkFBVTdELG1CQUFtQnZCLElBQW5CLENBQXdCeUMsQ0FBeEIsRUFBMkIrQyxNQUR2QjtBQUVkLHFCQUFXL0MsQ0FGRztBQUdkLHFCQUFXO0FBSEcsV0FBaEI7QUFLQSxlQUFLckMsVUFBTCxDQUFnQjBELGFBQWhCLENBQThCdEIsYUFBOUIsQ0FBNEM4QyxJQUE1QyxDQUFpREYsU0FBakQ7QUFDRDtBQUNGO0FBQ0Y7Ozs7OztBQVFIbkYscUJBQXFCOEYsT0FBckIsR0FBK0IsQ0FDN0IsZ0NBRDZCLENBQS9COztrQkFJZTlGLG9CO1FBR2JILHNCLEdBQUFBLHNCIiwiZmlsZSI6IjIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uLy4uLy4uLy4uL3R5cGluZ3MvYW5ndWxhcmpzL2FuZ3VsYXIuZC50c1wiIC8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vLi4vLi4vLi4vdHlwaW5ncy9sb2Rhc2gvbG9kYXNoLmQudHNcIiAvPlxuXG4vKipcbiAqIFRPRE8gOlxuICogLSBjbGVhbiBkZXByZWNhdGVkIGZ1bmN0aW9uc1xuICogLSBtZXRob2QgJ3Jlc2V0QWxsVGVtcG9yeU1vZGVscycgLT4gcmVtb3ZlIG5vIHVzZSBhbmd1bGFyLmNvcHkgdG8gb3B0aW1pemVcbiAqL1xuXG5jb25zdCBDT05UUk9MTEVSX01PREFMX1BST1hZICA9ICdjb250cm9sbGVyTW9kYWxQcm94eSc7XG5jb25zdCBJTklUX09QVElPTl9NT0RFTCAgICAgICA9IHsgcm93cyA6IFtdIH07XG5cbmNsYXNzIGNvbnRyb2xsZXJNb2RhbFByb3h5e1xuXG4gIGNvbnN0cnVjdG9yKEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscyl7XG4gICAgdGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMgPSBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHM7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBpbml0KCl7XG4gICAgdGhpcy5wcm94eU1vZGVsICAgICA9IHt9O1xuICAgIHRoaXMucmVzZXRQcm94eU1vZGVsKCk7XG4gICAgdGhpcy5lZGl0UGFuZWxNb2RlbCA9IHtcbiAgICAgIHRvZ2dsZSAgICAgIDogZmFsc2UsXG4gICAgICBsaW5lSW5kZXggICA6IC0xLFxuICAgICAgY29sdW1uSW5kZXggOiAtMSxcbiAgICAgIGNvbnRyb2wgICAgIDoge31cbiAgICB9O1xuICAgIHRoaXMuYmFzaWNTZWxlY3RSb3dDb2xsZWN0aW9uICAgPSBhbmd1bGFyLmNvcHkoSU5JVF9PUFRJT05fTU9ERUwpO1xuXHRcdHRoaXMubmV3T3B0aW9uQmFzaWNTZWxlY3QgXHRcdFx0PSBhbmd1bGFyLmNvcHkoeyBzYWlzaWU6ICcnIH0pO1xuXG5cdFx0dGhpcy5ncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbiA9IGFuZ3VsYXIuY29weShJTklUX09QVElPTl9NT0RFTCk7XG5cdFx0dGhpcy5uZXdPcHRpb25Hcm91cGVkU2VsZWN0IFx0XHQ9IGFuZ3VsYXIuY29weSh7IHNhaXNpZTogJycgfSk7XG5cdFx0dGhpcy5Hcm91cGVkU2VsZWN0R3JvdXBzIFx0XHRcdFx0PSBhbmd1bGFyLmNvcHkoeyBsaXN0OltdIH0pO1xuXHRcdHRoaXMubmV3R3JvdXBHcm91cGVkU2VsZWN0IFx0XHRcdD0gYW5ndWxhci5jb3B5KHsgc2Fpc2llOiAnJyB9KTtcblx0XHR0aGlzLmdyb3VwU2VsZWN0R3JvdXBDbGljayBcdFx0XHQ9IGFuZ3VsYXIuY29weSh7IHNob3dMaXN0IDogZmFsc2UgfSk7XG5cblx0XHR0aGlzLnJhZGlvUm93Q29sbGVjdGlvbiBcdFx0XHRcdD0gYW5ndWxhci5jb3B5KElOSVRfT1BUSU9OX01PREVMKTtcblx0XHR0aGlzLm5ld09wdGlvblJhZGlvIFx0XHRcdFx0XHRcdD0gYW5ndWxhci5jb3B5KHsgc2Fpc2llOiAnJyB9KTtcbiAgfVxuXG5cbiAgLy8gZGVwcmVjYXRlZCBpbiBkcmFnIGFuZCBkcm9wIHZlcnNpb24sIHVzZSBpbml0UHJveHlNb2RlbCBpbnNlYWRcbiAgaW5pdE55YVNlbGVjdChueWFTZWxlY3RPYmope1xuICAgIHJldHVybiB0aGlzLnJlc2V0TnlhU2VsZWN0KG55YVNlbGVjdE9iaik7XG4gIH1cblxuXG4gIGluaXRQcm94eU1vZGVsKHRoaXNQcm94eU1vZGVsVG9Jbml0KXtcbiAgICByZXR1cm4gdGhpcy5yZXNldFByb3h5TW9kZWwodGhpc1Byb3h5TW9kZWxUb0luaXQpO1xuICB9XG5cblxuICAvLyBkZXByZWNhdGVkIDogaW4gZHJhZyBhbmQgZHJvcCB2ZXJzaW9uLCB1c2UgXCJyZXNldFByb3h5TW9kZWwoKVwiXCJcbiAgcmVzZXROeWFTZWxlY3QobnlhU2VsZWN0T2JqKXtcbiAgICBsZXQgbmV3TnlhU2VsZWN0T2JqID0gdGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuZ2V0RWFzeUZvcm1MaXN0Q29udHJvbHMoKTtcbiAgICBhbmd1bGFyLmNvcHkobmV3TnlhU2VsZWN0T2JqLCBueWFTZWxlY3RPYmopO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblxuICByZXNldFByb3h5TW9kZWwoKXtcbiAgICBsZXQgbmV3UHJveHlNb2RlbCA9IHRoaXMuRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzLmdldEVhc3lGb3JtTGlzdENvbnRyb2xzKCk7XG4gICAgdGhpcy5wcm94eU1vZGVsID0gYW5ndWxhci5jb3B5KG5ld1Byb3h5TW9kZWwpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblxuICByZXR1cm5Db250cm9sRnJvbUFkZEN0cmxNb2RhbE1vZGVsKEN0cmxNb2RhbE1vZGVsKXtcbiAgICBsZXQgbW9kZWxUb1JldHVybiA9IHtcbiAgICAgICAgICBzZWxlY3RlZENvbnRyb2xcdFx0OiAnbm9uZScsXG4gICAgICAgICAgZm9ybWx5VHlwZSBcdFx0XHRcdDogJ25vbmUnLFxuICAgICAgICAgIGZvcm1seVN1YnR5cGVcdFx0XHQ6ICdub25lJyxcbiAgICAgICAgICBmb3JtbHlMYWJlbFx0XHRcdFx0OiAnJyxcbiAgICAgICAgICBmb3JtbHlSZXF1aXJlZCBcdFx0OiBmYWxzZSxcbiAgICAgICAgICBmb3JtbHlEZXNjaXB0aW9uXHQ6ICcnLFxuICAgICAgICAgIGZvcm1seVBsYWNlaG9sZGVyXHQ6ICcnLFxuICAgICAgICAgIGZvcm1seU9wdGlvbnNcdFx0XHQ6IFtdXG4gICAgfTtcbiAgICBmb3IgKGxldCBpID0gQ3RybE1vZGFsTW9kZWwuY29udHJvbHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmIChDdHJsTW9kYWxNb2RlbC5zZWxlY3RlZENvbnRyb2wgPT09IEN0cmxNb2RhbE1vZGVsLmNvbnRyb2xzW2ldLmlkKSB7XG5cbiAgICAgICAgbW9kZWxUb1JldHVybi5zZWxlY3RlZENvbnRyb2wgXHQ9IEN0cmxNb2RhbE1vZGVsLnNlbGVjdGVkQ29udHJvbDtcbiAgICAgICAgbW9kZWxUb1JldHVybi5mb3JtbHlUeXBlIFx0XHRcdFx0PSBDdHJsTW9kYWxNb2RlbC5jb250cm9sc1tpXS5mb3JtbHlUeXBlO1xuICAgICAgICBtb2RlbFRvUmV0dXJuLmZvcm1seVN1YnR5cGUgXHRcdD0gQ3RybE1vZGFsTW9kZWwuY29udHJvbHNbaV0uZm9ybWx5U3VidHlwZTtcbiAgICAgICAgbW9kZWxUb1JldHVybi5mb3JtbHlMYWJlbCBcdFx0XHQ9IEN0cmxNb2RhbE1vZGVsLmNvbnRyb2xzW2ldLmZvcm1seUxhYmVsO1xuICAgICAgICBtb2RlbFRvUmV0dXJuLmZvcm1seVJlcXVpcmVkIFx0XHQ9IEN0cmxNb2RhbE1vZGVsLmNvbnRyb2xzW2ldLmZvcm1seVJlcXVpcmVkO1xuICAgICAgICBtb2RlbFRvUmV0dXJuLmZvcm1seURlc2NpcHRpb24gXHQ9IEN0cmxNb2RhbE1vZGVsLmNvbnRyb2xzW2ldLmZvcm1seURlc2NpcHRpb247XG4gICAgICAgIG1vZGVsVG9SZXR1cm4uZm9ybWx5UGxhY2Vob2xkZXIgPSBDdHJsTW9kYWxNb2RlbC5jb250cm9sc1tpXS5mb3JtbHlQbGFjZWhvbGRlcjtcbiAgICAgICAgbW9kZWxUb1JldHVybi5mb3JtbHlPcHRpb25zIFx0XHQ9IEN0cmxNb2RhbE1vZGVsLmNvbnRyb2xzW2ldLmZvcm1seU9wdGlvbnM7XG4gICAgICAgIC8vIHBhcnRpY3VsYXIgcHJvcGVydGllcywgaGVyZSA7IGRhdGV0cGlja2VyIGZvcm1hdFxuICAgICAgICBpZiAoQ3RybE1vZGFsTW9kZWwuY29udHJvbHNbaV0uZm9ybWx5VHlwZSA9PT0gJ2RhdGVwaWNrZXInKSBtb2RlbFRvUmV0dXJuLmRhdGVwaWNrZXJQb3B1cCA9IEN0cmxNb2RhbE1vZGVsLmNvbnRyb2xzW2ldLmRhdGVwaWNrZXJQb3B1cDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1vZGVsVG9SZXR1cm47XG4gIH1cblxuXG4gIHZhbGlkS2V5VW5pcXVlbmVzcyh0aGlzS2V5LCBjb25maWd1cmF0aW9uT2JqKXtcbiAgICBsZXQgaXNVbmlxdWUgPSB0cnVlO1xuICAgIGZvciAobGV0IGkgPSBjb25maWd1cmF0aW9uT2JqLmxpbmVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBmb3IgKGxldCBqID0gY29uZmlndXJhdGlvbk9iai5saW5lc1tpXS5jb2x1bW5zLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICAgIGlmIChjb25maWd1cmF0aW9uT2JqLmxpbmVzW2ldLmNvbHVtbnNbal0uY29udHJvbC5rZXkgPT09IHRoaXNLZXkpIHtcbiAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1VuaXF1ZTtcbiAgfVxuXG5cbiAgZ2V0U2VsZWN0ZWRQcm94eU1vZGVsKGNvbmZpZ3VyYXRpb25TZWxlY3RlZEN0cmwpe1xuICAgIHZhciBzZWxlY3RlZFByb3h5TW9kZWxDb250cm9sID0gJ25vbmUnO1xuICAgIHZhciBsaXN0UHJveHlNb2RlbENUUkwgICAgICAgID0gYW5ndWxhci5jb3B5KHRoaXMuRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzLmdldEVhc3lGb3JtTGlzdENvbnRyb2xzKCkuY29udHJvbHMpO1xuXG4gICAgbGlzdFByb3h5TW9kZWxDVFJMLmZvckVhY2goZnVuY3Rpb24oY29udHJvbCl7XG4gICAgICBpZiAoY29udHJvbC5mb3JtbHlUeXBlIFx0XHQ9PT0gY29uZmlndXJhdGlvblNlbGVjdGVkQ3RybC50eXBlICYmXG4gICAgICAgICAgY29udHJvbC5mb3JtbHlTdWJ0eXBlID09PSBjb25maWd1cmF0aW9uU2VsZWN0ZWRDdHJsLnN1YnR5cGUpIHtcbiAgICAgICAgc2VsZWN0ZWRQcm94eU1vZGVsQ29udHJvbCA9IGNvbnRyb2wuaWQ7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZFByb3h5TW9kZWxDb250cm9sO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzZWxlY3RlZFByb3h5TW9kZWxDb250cm9sO1xuICB9XG5cblxuICAvLyB0byByZWZyZXNoIGNvbmZpZ3VyYXRpb24gbW9kZWwgZnJvbSBlZGl0IHBhbmVsXG4gIGJpbmRDb25maWd1cmF0aW9uTW9kZWxGcm9tUHJveHlNb2RlbChpbmRleExpbmUsIG51bWNvbHVtbiwgY29uZmlndXJhdGlvbk9iail7XG4gICAgbGV0IGV4dHJhY3RlZFByb3BzID0gYW5ndWxhci5jb3B5KHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnKTtcblxuICAgIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC5zZWxlY3RlZENvbnRyb2wgXHQ9IGV4dHJhY3RlZFByb3BzLnNlbGVjdGVkQ29udHJvbDtcbiAgICBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudHlwZSBcdFx0XHRcdFx0XHQ9IGV4dHJhY3RlZFByb3BzLmZvcm1seVR5cGU7XG4gICAgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnN1YnR5cGUgXHRcdFx0XHRcdD0gZXh0cmFjdGVkUHJvcHMuZm9ybWx5U3VidHlwZTtcbiAgICAvLyB0ZW1wbGF0ZU9wdGlvbnNcbiAgICBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zID0ge1xuICAgICAgbGFiZWxcdFx0XHRcdDogJycsXG4gICAgICByZXF1aXJlZFx0XHQ6IGZhbHNlLFxuICAgICAgZGVzY3JpcHRpb25cdDogJycsXG4gICAgICBwbGFjZWhvbGRlclx0OiAnJyxcbiAgICAgIG9wdGlvbnNcdFx0XHQ6IFtdXG4gICAgfTtcbiAgICAvLyB0aGVuIGJpbmQgdGVtcGxhdGUgb3B0aW9uXG4gICAgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnRlbXBsYXRlT3B0aW9ucy5sYWJlbCBcdFx0XHRcdD0gZXh0cmFjdGVkUHJvcHMuZm9ybWx5TGFiZWw7XG4gICAgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZCBcdFx0PSBleHRyYWN0ZWRQcm9wcy5mb3JtbHlSZXF1aXJlZDtcbiAgICBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uIFx0PSBleHRyYWN0ZWRQcm9wcy5mb3JtbHlEZXNjaXB0aW9uO1xuICAgIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMucGxhY2Vob2xkZXIgXHQ9IGV4dHJhY3RlZFByb3BzLmZvcm1seVBsYWNlaG9sZGVyO1xuICAgIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMub3B0aW9ucyBcdFx0XHQ9IGV4dHJhY3RlZFByb3BzLmZvcm1seU9wdGlvbnM7XG4gICAgLy8gYWRkIGFkZGl0aW9ubmFsIOKAlCBwYXJ0aWN1bGFyIOKAlCBwcm9wZXJ0aWVzIDogLT4gZGF0ZXBpY2tlciA6IGRhdGVwaWNrZXJQb3B1cFxuICAgIGlmIChjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudHlwZSA9PT0gJ2RhdGVwaWNrZXInKSB7XG4gICAgICBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLmRhdGVwaWNrZXJQb3B1cCA9IGV4dHJhY3RlZFByb3BzLmRhdGVwaWNrZXJQb3B1cDtcbiAgICB9XG4gICAgLy8gdW5pcXVlIGtleSAoc2V0IG9ubHkgZmlyc3QgdGltZSkgaW4gdGhpcyBtb2RlbCBpcyBmb3JtbHkgY29udHJvbCB0eXBlICsgRGF0ZS5ub3coKTtcbiAgICBsZXQgbmV3S2V5ID0gY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnR5cGUgKyAnLScgKyBEYXRlLm5vdygpO1xuXG4gICAgaWYgKHRoaXMudmFsaWRLZXlVbmlxdWVuZXNzKG5ld0tleSwgY29uZmlndXJhdGlvbk9iaikgPT09IHRydWUpe1xuICAgICAgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLmtleSA9IG5ld0tleTtcbiAgICB9ZWxzZXtcbiAgICAgIG5ld0tleSA9IGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50eXBlICsgJy0nICsgRGF0ZS5ub3coKTtcbiAgICAgIGlmICh0aGlzLnZhbGlkS2V5VW5pcXVlbmVzcyhuZXdLZXksIGNvbmZpZ3VyYXRpb25PYmopID09PSB0cnVlKXtcbiAgICAgICAgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLmtleSA9IG5ld0tleTtcbiAgICAgIH1lbHNle1xuICAgICAgICBuZXdLZXkgPSBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudHlwZSArICctJyArIERhdGUubm93KCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC5lZGl0ZWQgPSB0cnVlO1xuICB9XG5cblxuICAvKipcbiAgICogc2V0IGxvY2FsIHByb3h5TW9kZWwgZnJvbSBTZWxlY3RlZCBjb250cm9sIGluIGNvbmZpZ3VyYXRpb24gbW9kZWxcbiAgICpcbiAgICogcmVwbGFjZSBkZXByZWNhdGVkIFwiZ2V0TnlBU2VsZWN0RnJvbVNlbGVjdGVkTGluZUNvbHVtblwiXG4gICAqIC1tb2RlbCBpcyBub3cgbmFtZWQgXCJwcm94eU1vZGVsXCJcbiAgICogLW1vZGVsIGlzIHN0b3JlZCBpbiB0aGlzIHNlcnZpY2VcbiAgICpcbiAgICogLT4gaXQgaGFzIGp1c3QgbW9yZSBzZW5jZSFcbiAgICovXG4gIHNldFByb3h5TW9kZWxGcm9tQ29uZmlndXJhdGlvblNlbGVjdGlvbihjb25maWd1cmF0aW9uT2JqLCBpbmRleExpbmUsIG51bWNvbHVtbil7XG4gICAgLy8gZGF0YSBzZW5kIHRvIG1vZGFsIGNvbnRyb2xsZXJcbiAgICBpZiAodHlwZW9mIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbCAhPSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gZGV0ZXJtaW5lIHNlbGVjdGVkIGNvbnRyb2wgZnJvbSBpbmRleGVzIGFuZCBjb250cm9sLnR5cGUgYW5kIGNvbnRyb2wuc3VidHlwZSBpbiBjb25maWd1cmF0aW9uIG1vZGVsXG4gICAgICB0aGlzLnByb3h5TW9kZWwuc2VsZWN0ZWRDb250cm9sIFx0XHRcdFx0XHRcdFx0XHRcdD0gdHlwZW9mIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50eXBlICE9ICd1bmRlZmluZWQnID8gdGhpcy5nZXRTZWxlY3RlZFByb3h5TW9kZWwoY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sKSA6ICdub25lJztcbiAgICAgIHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLnNlbGVjdGVkQ29udHJvbCBcdFx0PSB0eXBlb2YgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnR5cGUgIT0gJ3VuZGVmaW5lZCcgPyB0aGlzLmdldFNlbGVjdGVkUHJveHlNb2RlbChjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wpIDogJ25vbmUnO1xuICAgICAgdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5VHlwZSBcdFx0XHRcdCAgPSB0eXBlb2YgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnR5cGUgIT0gJ3VuZGVmaW5lZCcgPyBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudHlwZTogJ25vbmUnO1xuICAgICAgdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5U3VidHlwZSBcdFx0XHQ9IHR5cGVvZiBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wuc3VidHlwZSAhPSAndW5kZWZpbmVkJyA/IGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC5zdWJ0eXBlIDogJ25vbmUnO1xuICAgICAgdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5TGFiZWwgXHRcdFx0XHQ9IHR5cGVvZiBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLmxhYmVsICE9ICd1bmRlZmluZWQnID8gY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnRlbXBsYXRlT3B0aW9ucy5sYWJlbCA6ICcnO1xuICAgICAgdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UmVxdWlyZWRcdCBcdFx0PSB0eXBlb2YgY29uZmlndXJhdGlvbk9iai5saW5lc1tpbmRleExpbmVdLmNvbHVtbnNbbnVtY29sdW1uXS5jb250cm9sLnRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZCAhPSAndW5kZWZpbmVkJyA/IGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWQgOiAnJztcbiAgICAgIHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seURlc2NpcHRpb24gXHQgID0gdHlwZW9mIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gIT0gJ3VuZGVmaW5lZCcgPyBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uIDogJyc7XG4gICAgICB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlQbGFjZWhvbGRlciBcdD0gdHlwZW9mIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMucGxhY2Vob2xkZXIgIT0gJ3VuZGVmaW5lZCcgPyBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLnBsYWNlaG9sZGVyIDogJyc7XG4gICAgICB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlPcHRpb25zIFx0XHRcdD0gdHlwZW9mIGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMub3B0aW9ucyAhPSAndW5kZWZpbmVkJyA/IGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMub3B0aW9ucyA6ICcnO1xuICAgICAgLy8gcGFydGljdWxhciBjYXNlIDogZGF0ZXBpY2tlclxuICAgICAgaWYgKHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLnNlbGVjdGVkQ29udHJvbCA9PT0gJ0RhdGUnKSB7XG4gICAgICAgIHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmRhdGVwaWNrZXJQb3B1cCA9IHR5cGVvZiBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2luZGV4TGluZV0uY29sdW1uc1tudW1jb2x1bW5dLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLmRhdGVwaWNrZXJQb3B1cCAhPSAndW5kZWZpbmVkJyA/IGNvbmZpZ3VyYXRpb25PYmoubGluZXNbaW5kZXhMaW5lXS5jb2x1bW5zW251bWNvbHVtbl0uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMuZGF0ZXBpY2tlclBvcHVwIDogJyc7XG4gICAgICB9XG4gICAgICAvLyBjb25zb2xlLmluZm8oJ2RlYnVnIHNldFByb3h5TW9kZWxGcm9tQ29uZmlndXJhdGlvblNlbGVjdGlvbicpO1xuICAgICAgLy8gY29uc29sZS5kaXIoe1xuICAgICAgLy8gICBzZWxlY3RlZENvbnRyb2wgOiBhbmd1bGFyLmNvcHkodGhpcy5wcm94eU1vZGVsLnNlbGVjdGVkQ29udHJvbCApLFxuICAgICAgLy8gICB0ZW1wb3J5Q29uZmlnICAgOiBhbmd1bGFyLmNvcHkodGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcpXG4gICAgICAvLyB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJveHlNb2RlbDtcbiAgfVxuXG5cblx0Z2V0UHJveHlNb2RlbCgpe1xuICAgIHJldHVybiB0aGlzLnByb3h5TW9kZWw7XG4gIH1cblxuXG4gIC8qKlxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICogZm9sbG93aW5nIG1ldGhvZHMgZm9yIFwiZWRpdFBhbmVsTW9kZWxcIlxuICAgKlxuICAgKiBOb3RlIHRoaXMgbW9kZWwgOlxuICAgKiAtIHRvIG1hbmFnZSBzaWRlIGVkaXQgY29udHJvbCBwYW5lbFxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICovXG5cbiAgLy8gZ2V0dGVyIDogZWRpdFBhbmVsTW9kZWwgKHdob2xlIG1vZGVsID0+IHR5cGUgPSBvYmplY3QpXG4gIGdldEVkaXRQYW5lbE1vZGVsQWxsTW9kZWwoKXtcbiAgICByZXR1cm4gdGhpcy5lZGl0UGFuZWxNb2RlbDtcbiAgfVxuXG4gIC8vIHNldHRlciA6IGVkaXRQYW5lbE1vZGVsICh3aG9sZSBtb2RlbCA9PiB0eXBlID0gb2JqZWN0KVxuICBzZXRFZGl0UGFuZWxNb2RlbENvbnRyb2wobmV3RWRpdFBhbmVsTW9kZWwpe1xuICAgIGxldCBzdWNjZXNzZnVsbERvbmUgID0gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBuZXdFZGl0UGFuZWxNb2RlbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGFuZ3VsYXIubWVyZ2UodGhpcy5lZGl0UGFuZWxNb2RlbCwgbmV3RWRpdFBhbmVsTW9kZWwpO1xuICAgICAgc3VjY2Vzc2Z1bGxEb25lICAgICA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzZnVsbERvbmU7XG4gIH1cblxuXG4gIC8vIGdldHRlciA6IGVkaXRQYW5lbE1vZGVsLmNvbHVtbkluZGV4XG4gIGdldEVkaXRQYW5lbE1vZGVsQ29sdW1uSW5kZXgoKXtcbiAgICByZXR1cm4gdGhpcy5lZGl0UGFuZWxNb2RlbC5jb2x1bW5JbmRleDtcbiAgfVxuXG4gIC8vIHNldHRlciA6IGVkaXRQYW5lbE1vZGVsLmNvbHVtbkluZGV4XG4gIHNldEVkaXRQYW5lbE1vZGVsQ29sdW1uSW5kZXgobmV3Q29sdW1uSW5kZXgpe1xuICAgIGxldCBzdWNjZXNzZnVsbERvbmUgID0gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBuZXdDb2x1bW5JbmRleCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuZWRpdFBhbmVsTW9kZWwuY29sdW1uSW5kZXggPSBuZXdDb2x1bW5JbmRleDtcbiAgICAgIHN1Y2Nlc3NmdWxsRG9uZSAgICAgICAgICAgICAgICAgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2Vzc2Z1bGxEb25lO1xuICB9XG5cblxuICAvLyBnZXR0ZXIgOiBlZGl0UGFuZWxNb2RlbC5saW5lSW5kZXhcbiAgZ2V0RWRpdFBhbmVsTW9kZWxMaW5lSW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdFBhbmVsTW9kZWwubGluZUluZGV4O1xuICB9XG5cblxuICAvLyBzZXR0ZXIgOiBlZGl0UGFuZWxNb2RlbC5saW5lSW5kZXhcbiAgc2V0RWRpdFBhbmVsTW9kZWxMaW5lSW5kZXgobmV3TGluZUluZGV4KSB7XG4gICAgbGV0IHN1Y2Nlc3NmdWxsRG9uZSAgPSBmYWxzZTtcbiAgICBpZiAodHlwZW9mIG5ld0xpbmVJbmRleCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuZWRpdFBhbmVsTW9kZWwubGluZUluZGV4ID0gbmV3TGluZUluZGV4O1xuICAgICAgc3VjY2Vzc2Z1bGxEb25lID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHN1Y2Nlc3NmdWxsRG9uZTtcbiAgfVxuXG4gIC8vIGdldHRlciA6IGVkaXRQYW5lbE1vZGVsLmNvbnRyb2xcbiAgZ2V0RWRpdFBhbmVsTW9kZWxDb250cm9sKCl7XG4gICAgcmV0dXJuIHRoaXMuZWRpdFBhbmVsTW9kZWwuY29udHJvbDtcbiAgfVxuXG4gIC8vIGdldHRlciA6IGVkaXRQYW5lbE1vZGVsLnRvZ2dsZVxuICBnZXRFZGl0UGFuZWxNb2RlbFRvZ2dsZSgpe1xuICAgIHJldHVybiB0aGlzLmVkaXRQYW5lbE1vZGVsLnRvZ2dsZTtcbiAgfVxuXG4gIC8vIHNldHRlciA6IGVkaXRQYW5lbE1vZGVsLnRvZ2dsZVxuICBzZXRFZGl0UGFuZWxNb2RlbFRvZ2dsZShuZXdUb2dnbGVWYWx1ZSl7XG4gICAgbGV0IHN1Y2Nlc3NmdWxsRG9uZSAgPSBmYWxzZTtcbiAgICBpZiAodHlwZW9mIG5ld1RvZ2dsZVZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5lZGl0UGFuZWxNb2RlbC50b2dnbGUgID0gbmV3VG9nZ2xlVmFsdWU7XG4gICAgICBzdWNjZXNzZnVsbERvbmUgICAgICAgICAgICAgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gc3VjY2Vzc2Z1bGxEb25lO1xuICB9XG5cbiAgcmVzZXRBbGxUZW1wb3J5TW9kZWxzKCl7XG4gICAgdGhpcy5iYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24gXHQ9IGFuZ3VsYXIuY29weShJTklUX09QVElPTl9NT0RFTCk7XG4gICAgdGhpcy5uZXdPcHRpb25CYXNpY1NlbGVjdCBcdFx0XHQ9IGFuZ3VsYXIuY29weSh7IHNhaXNpZTogJycgfSk7XG5cbiAgICB0aGlzLmdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uID0gYW5ndWxhci5jb3B5KElOSVRfT1BUSU9OX01PREVMKTtcbiAgICB0aGlzLm5ld09wdGlvbkdyb3VwZWRTZWxlY3QgXHRcdD0gYW5ndWxhci5jb3B5KHsgc2Fpc2llOiAnJyB9KTtcbiAgICB0aGlzLkdyb3VwZWRTZWxlY3RHcm91cHMgXHRcdFx0XHQ9IGFuZ3VsYXIuY29weSh7IGxpc3Q6W10gfSk7XG4gICAgdGhpcy5uZXdHcm91cEdyb3VwZWRTZWxlY3QgXHRcdFx0PSBhbmd1bGFyLmNvcHkoeyBzYWlzaWU6ICcnIH0pO1xuICAgIHRoaXMuZ3JvdXBTZWxlY3RHcm91cENsaWNrIFx0XHRcdD0gYW5ndWxhci5jb3B5KHsgc2hvd0xpc3QgOiBmYWxzZSB9KTtcblxuICAgIHRoaXMucmFkaW9Sb3dDb2xsZWN0aW9uIFx0XHRcdFx0PSBhbmd1bGFyLmNvcHkoSU5JVF9PUFRJT05fTU9ERUwpO1xuICAgIHRoaXMubmV3T3B0aW9uUmFkaW8gXHRcdFx0XHRcdFx0PSBhbmd1bGFyLmNvcHkoeyBzYWlzaWU6ICcnIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblx0LyoqXG5cdCAqIGJpbmRTcGVjaWFsQ3RybFRlbXBvcnlNb2RlbHNUb1Byb3h5TW9kZWw6IG5lZWRlZCB3aGVuIHZhbGlkYXRpbmcgYWZ0ZXIgZWRpdGluZyBhIGNvbnRyb2xcblx0ICogdGVtcG9yeSBtb2RlbHMgYXBwbGllZCB0byBwcm94eU1vZGVsIGlmIGNvbnRyb2wgaXMgb25lIG9mIHRoZXNlXG5cdCAqXG5cdCAqIGV4YW1wbGUgOiBpZiBzZWxlY3RlZCBjb250cm9sIGlzIGEgYmFzaWMgc2VsZWN0IG9wdGlvbnNcblx0ICogLT4gc28gaXRzIHRlbXBvcnkgbW9kZWxzIGFyZSBib3VuZCB0byBwcm94eU1vZGVsXG5cdCAqL1xuXHRiaW5kU3BlY2lhbEN0cmxUZW1wb3J5TW9kZWxzVG9Qcm94eU1vZGVsKCkge1xuXHRcdGlmICh0aGlzLnByb3h5TW9kZWwuc2VsZWN0ZWRDb250cm9sID09PSAnQmFzaWNTZWxlY3QnKSB7XG4gICAgICB0aGlzLmJpbmRCYXNpY1NlbGVjdFRvUHJveHlNb2RlbCh0aGlzLmJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbik7XG4gICAgfVxuXHRcdGlmICh0aGlzLnByb3h5TW9kZWwuc2VsZWN0ZWRDb250cm9sID09PSAnR3JvdXBlZFNlbGVjdCcpIHtcbiAgICAgIHRoaXMuYmluZEdyb3VwZWRTZWxlY3RUb1Byb3h5TW9kZWwodGhpcy5ncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbik7XG4gICAgfVxuXHRcdGlmICh0aGlzLnByb3h5TW9kZWwuc2VsZWN0ZWRDb250cm9sID09PSAnUmFkaW8nKSB7XG4gICAgICB0aGlzLmJpbmRSYWRpb1RvUHJveHlNb2RlbCh0aGlzLnJhZGlvUm93Q29sbGVjdGlvbik7XG4gICAgfVxuXHR9XG5cbiAgLy8gYmFzaWMgc2VsZWN0XG4gIGJpbmRCYXNpY1NlbGVjdEZyb21Qcm94eU1vZGVsKGJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbil7XG4gICAgaWYgKHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seU9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9ucy5sZW5ndGgtMTsgaSsrKXtcbiAgICAgICAgbGV0IG5ld09wdGlvbiA9IHtcbiAgICAgICAgICAnb3B0aW9uJyBcdDogdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9uc1tpXS5uYW1lLFxuICAgICAgICAgICdvcmRlcicgXHQ6IGksXG4gICAgICAgICAgJ2dyb3VwJyBcdDogJydcbiAgICAgICAgfTtcbiAgICAgICAgYmFzaWNTZWxlY3RSb3dDb2xsZWN0aW9uLnJvd3MucHVzaChuZXdPcHRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGJpbmRCYXNpY1NlbGVjdFRvUHJveHlNb2RlbChiYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24pe1xuICAgIGxldCByZXNldE55QVNlbGVjdE9wdGlvbnMgPSBbXTtcbiAgICB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlPcHRpb25zID0gcmVzZXROeUFTZWxlY3RPcHRpb25zO1xuICAgIGlmIChiYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24ucm93cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBiYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24ucm93cy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICBsZXQgbmV3T3B0aW9uID0ge1xuICAgICAgICAgICduYW1lJyA6IGJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbi5yb3dzW2ldLm9wdGlvbixcbiAgICAgICAgICAndmFsdWUnOiBpLFxuICAgICAgICAgICdncm91cCc6ICcnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seU9wdGlvbnMucHVzaChuZXdPcHRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vKiBncm91cGVkIHNlbGVjdFxuICBiaW5kR3JvdXBlZFNlbGVjdEZyb21Qcm94eU1vZGVsKGdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uLCBHcm91cGVkU2VsZWN0R3JvdXBzKXtcbiAgICBpZiAodGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlPcHRpb25zLmxlbmd0aC0xOyBpKyspe1xuICAgICAgICBsZXQgbmV3T3B0aW9uID0ge1xuICAgICAgICAgICdvcHRpb24nIFx0OiB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlPcHRpb25zW2ldLm5hbWUsXG4gICAgICAgICAgJ29yZGVyJ1x0XHQ6IGksXG4gICAgICAgICAgJ2dyb3VwJ1x0XHQ6IHRoaXMucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seU9wdGlvbnNbaV0uZ3JvdXBcbiAgICAgICAgfTtcbiAgICAgICAgZ3JvdXBlZFNlbGVjdFJvd0NvbGxlY3Rpb24ucm93cy5wdXNoKG5ld09wdGlvbik7XG4gICAgICAgfVxuICAgICAgIC8vZ3JvdXBsaXN0IDogdGh4IHRvIGxvZGFzaCBpdCBpcyBlYXN5XG4gICAgICAgbGV0IGZpbHRlcmVkZ3JvdXAgPSBfLnVuaXEoXy5wbHVjayhncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbi5yb3dzLCAnZ3JvdXAnKSk7XG4gICAgICAgYW5ndWxhci5jb3B5KGZpbHRlcmVkZ3JvdXAsIEdyb3VwZWRTZWxlY3RHcm91cHMubGlzdCk7XG4gICAgfVxuICB9XG5cblxuICBiaW5kR3JvdXBlZFNlbGVjdFRvUHJveHlNb2RlbChncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbil7XG4gICAgdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9ucyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uLnJvd3MubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgIGxldCBuZXdPcHRpb24gPSB7XG4gICAgICAgICduYW1lJyBcdDogZ3JvdXBlZFNlbGVjdFJvd0NvbGxlY3Rpb24ucm93c1tpXS5vcHRpb24sXG4gICAgICAgICd2YWx1ZSdcdDogaSxcbiAgICAgICAgJ2dyb3VwJ1x0OiBncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbi5yb3dzW2ldLmdyb3VwXG4gICAgICB9O1xuICAgICAgdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9ucy5wdXNoKG5ld09wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8gcmFkaW9cblx0YmluZFJhZGlvRnJvbVByb3h5TW9kZWwocmFkaW9Sb3dDb2xsZWN0aW9uKXtcbiAgICBpZiAodGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlPcHRpb25zLmxlbmd0aC0xOyBpKyspe1xuICAgICAgICAgIGxldCBuZXdPcHRpb24gPSB7XG4gICAgICAgICAgICAnb3B0aW9uJ1x0OiB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlPcHRpb25zW2ldLm5hbWUsXG4gICAgICAgICAgICAnb3JkZXInXHRcdDogaSxcbiAgICAgICAgICAgICdncm91cCdcdFx0OiAnJ1xuICAgICAgICAgIH07XG4gICAgICAgICAgcmFkaW9Sb3dDb2xsZWN0aW9uLnJvd3MucHVzaChuZXdPcHRpb24pO1xuICAgICAgfVxuICAgIH1cblx0fVxuXG4gIGJpbmRSYWRpb1RvUHJveHlNb2RlbChyYWRpb1Jvd0NvbGxlY3Rpb24pe1xuICAgIGxldCByZXNldHByb3h5TW9kZWxPcHRpb25zID0gW107XG4gICAgdGhpcy5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5T3B0aW9ucyA9IHJlc2V0cHJveHlNb2RlbE9wdGlvbnM7XG4gICAgaWYgKHJhZGlvUm93Q29sbGVjdGlvbi5yb3dzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHJhZGlvUm93Q29sbGVjdGlvbi5yb3dzLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgICAgIGxldCBuZXdPcHRpb24gPSB7XG4gICAgICAgICAgJ25hbWUnXHRcdDogcmFkaW9Sb3dDb2xsZWN0aW9uLnJvd3NbaV0ub3B0aW9uLFxuICAgICAgICAgICd2YWx1ZSdcdFx0OiBpLFxuICAgICAgICAgICdncm91cCdcdFx0OiAnJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlPcHRpb25zLnB1c2gobmV3T3B0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG5cblxuXG59XG5cbmNvbnRyb2xsZXJNb2RhbFByb3h5LiRpbmplY3QgPSBbXG4gICdFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMnXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBjb250cm9sbGVyTW9kYWxQcm94eTtcblxuZXhwb3J0IHtcbiAgQ09OVFJPTExFUl9NT0RBTF9QUk9YWVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvZWRhRHJhZ0Ryb3BXYXkubGVmdFBhbmVsLmNvbnRyb2xsZXJNb2RhbFByb3h5LnNlcnZpY2UuanMiXSwic291cmNlUm9vdCI6IiJ9");
  124. /***/ },
  125. /* 23 */
  126. /***/ function(module, exports, __webpack_require__) {
  127. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_VALID_EDIT_FOOTER_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelValidEditFooterTemplate = __webpack_require__(24);\n\nvar _edaDragDropWayLeftpanelValidEditFooterTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelValidEditFooterTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_VALID_EDIT_FOOTER_DIRECTIVE = 'leftPanelValidEditFooter';\n\nfunction leftPanelValidEditFooter() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelValidEditFooterTemplate2.default\n };\n return directive;\n}\n\nleftPanelValidEditFooter.$inject = [];\n\nexports.default = leftPanelValidEditFooter;\nexports.LEFT_PANEL_VALID_EDIT_FOOTER_DIRECTIVE = LEFT_PANEL_VALID_EDIT_FOOTER_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL3ZhbGlkRWRpdEZvb3Rlci9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudmFsaWRFZGl0Rm9vdGVyLmRpcmVjdGl2ZS5qcz83MTg1Il0sIm5hbWVzIjpbIkxFRlRfUEFORUxfVkFMSURfRURJVF9GT09URVJfRElSRUNUSVZFIiwibGVmdFBhbmVsVmFsaWRFZGl0Rm9vdGVyIiwiZGlyZWN0aXZlIiwicmVzdHJpY3QiLCJ0ZW1wbGF0ZSIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7O0FBRUEsSUFBTUEseUNBQXlDLDBCQUEvQzs7QUFFQSxTQUFTQyx3QkFBVCxHQUFvQztBQUNsQyxNQUFJQyxZQUFZO0FBQ2RDLGNBQVcsR0FERztBQUVkQztBQUZjLEdBQWhCO0FBSUEsU0FBT0YsU0FBUDtBQUNEOztBQUVERCx5QkFBeUJJLE9BQXpCLEdBQW1DLEVBQW5DOztrQkFFZUosd0I7UUFHYkQsc0MsR0FBQUEsc0MiLCJmaWxlIjoiMjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGVmdFBhbmVsVmFsaWRFZGl0Rm9vdGVyVGVtcGxhdGUgZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudmFsaWRFZGl0Rm9vdGVyLnRlbXBsYXRlLmh0bWwnO1xuXG5jb25zdCBMRUZUX1BBTkVMX1ZBTElEX0VESVRfRk9PVEVSX0RJUkVDVElWRSA9ICdsZWZ0UGFuZWxWYWxpZEVkaXRGb290ZXInO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxWYWxpZEVkaXRGb290ZXIoKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxWYWxpZEVkaXRGb290ZXJUZW1wbGF0ZVxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xufVxuXG5sZWZ0UGFuZWxWYWxpZEVkaXRGb290ZXIuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxWYWxpZEVkaXRGb290ZXI7XG5cbmV4cG9ydCB7XG4gIExFRlRfUEFORUxfVkFMSURfRURJVF9GT09URVJfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC92YWxpZEVkaXRGb290ZXIvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnZhbGlkRWRpdEZvb3Rlci5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  128. /***/ },
  129. /* 24 */
  130. /***/ function(module, exports) {
  131. eval("module.exports = \"<div class=\\\"modal-footer\\\">\\n <button\\n class=\\\"btn btn-danger pull-left\\\"\\n ng-click=\\\"leftPanelCtrl.resetControl()\\\">\\n <i class=\\\"fa fa-refresh\\\"></i>\\n &nbsp;\\n Reset\\n </button>\\n <button\\n class=\\\"btn btn-success pull-right\\\"\\n ng-click=\\\"leftPanelCtrl.updateSpecialControl(); leftPanelCtrl.saveFromEditPanel();\\\">\\n <i class=\\\"fa fa-floppy-o\\\"></i>\\n &nbsp;\\n Save\\n </button>\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL3ZhbGlkRWRpdEZvb3Rlci9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudmFsaWRFZGl0Rm9vdGVyLnRlbXBsYXRlLmh0bWw/ODMwNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrTUFBa00sbUlBQW1JLG1DQUFtQyxxREFBcUQiLCJmaWxlIjoiMjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwibW9kYWwtZm9vdGVyXFxcIj5cXG4gIDxidXR0b25cXG4gICAgY2xhc3M9XFxcImJ0biBidG4tZGFuZ2VyIHB1bGwtbGVmdFxcXCJcXG4gICAgbmctY2xpY2s9XFxcImxlZnRQYW5lbEN0cmwucmVzZXRDb250cm9sKClcXFwiPlxcbiAgICA8aSBjbGFzcz1cXFwiZmEgZmEtcmVmcmVzaFxcXCI+PC9pPlxcbiAgICAmbmJzcDtcXG4gICAgUmVzZXRcXG4gIDwvYnV0dG9uPlxcbiAgPGJ1dHRvblxcbiAgICBjbGFzcz1cXFwiYnRuIGJ0bi1zdWNjZXNzIHB1bGwtcmlnaHRcXFwiXFxuICAgIG5nLWNsaWNrPVxcXCJsZWZ0UGFuZWxDdHJsLnVwZGF0ZVNwZWNpYWxDb250cm9sKCk7IGxlZnRQYW5lbEN0cmwuc2F2ZUZyb21FZGl0UGFuZWwoKTtcXFwiPlxcbiAgICA8aSBjbGFzcz1cXFwiZmEgZmEtZmxvcHB5LW9cXFwiPjwvaT5cXG4gICAgJm5ic3A7XFxuICAgIFNhdmVcXG4gIDwvYnV0dG9uPlxcbjwvZGl2PlxcblwiXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL3ZhbGlkRWRpdEZvb3Rlci9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudmFsaWRFZGl0Rm9vdGVyLnRlbXBsYXRlLmh0bWxcbi8vIG1vZHVsZSBpZCA9IDI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  132. /***/ },
  133. /* 25 */
  134. /***/ function(module, exports, __webpack_require__) {
  135. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_TEXT_INPUT_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelTextInputControlTemplate = __webpack_require__(26);\n\nvar _edaDragDropWayLeftpanelTextInputControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelTextInputControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_TEXT_INPUT_CONTROL_DIRECTIVE = 'leftPanelTextInputControl';\n\nfunction leftPanelTextInputControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelTextInputControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelTextInputControl.$inject = [];\n\nexports.default = leftPanelTextInputControl;\nexports.LEFT_PANEL_TEXT_INPUT_CONTROL_DIRECTIVE = LEFT_PANEL_TEXT_INPUT_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1RleHRJbnB1dENvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnRleHRJbnB1dENvbnRyb2wuZGlyZWN0aXZlLmpzP2JmZWYiXSwibmFtZXMiOlsiTEVGVF9QQU5FTF9URVhUX0lOUFVUX0NPTlRST0xfRElSRUNUSVZFIiwibGVmdFBhbmVsVGV4dElucHV0Q29udHJvbCIsImRpcmVjdGl2ZSIsInJlc3RyaWN0IiwidGVtcGxhdGUiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLDBDQUEwQywyQkFBaEQ7O0FBRUEsU0FBU0MseUJBQVQsR0FBcUM7QUFDbkMsTUFBSUMsWUFBWTtBQUNkQyxjQUFXLEdBREc7QUFFZEM7QUFGYyxHQUFoQjtBQUlBLFNBQU9GLFNBQVA7QUFDRDs7QUFFREQsMEJBQTBCSSxPQUExQixHQUFvQyxFQUFwQzs7a0JBRWVKLHlCO1FBR2JELHVDLEdBQUFBLHVDIiwiZmlsZSI6IjI1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgbGVmdFBhbmVsVGV4dElucHV0Q29udHJvbFRlbXBsYXRlIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnRleHRJbnB1dENvbnRyb2wudGVtcGxhdGUuaHRtbCc7XG5cbmNvbnN0IExFRlRfUEFORUxfVEVYVF9JTlBVVF9DT05UUk9MX0RJUkVDVElWRSA9ICdsZWZ0UGFuZWxUZXh0SW5wdXRDb250cm9sJztcblxuZnVuY3Rpb24gbGVmdFBhbmVsVGV4dElucHV0Q29udHJvbCgpIHtcbiAgbGV0IGRpcmVjdGl2ZSA9IHtcbiAgICByZXN0cmljdCA6ICdFJyxcbiAgICB0ZW1wbGF0ZSA6IGxlZnRQYW5lbFRleHRJbnB1dENvbnRyb2xUZW1wbGF0ZVxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xufVxuXG5sZWZ0UGFuZWxUZXh0SW5wdXRDb250cm9sLiRpbmplY3QgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbGVmdFBhbmVsVGV4dElucHV0Q29udHJvbDtcblxuZXhwb3J0IHtcbiAgTEVGVF9QQU5FTF9URVhUX0lOUFVUX0NPTlRST0xfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9UZXh0SW5wdXRDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC50ZXh0SW5wdXRDb250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  136. /***/ },
  137. /* 26 */
  138. /***/ function(module, exports) {
  139. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextLabelUpdate\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Label text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyLabel\\\"\\n id=\\\"inputTextLabelUpdate\\\"\\n placeholder=\\\"Add / edit control label here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextplaceholderUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n placeholder :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyPlaceholder\\\"\\n id=\\\"inputTextplaceholderUpdate\\\"\\n placeholder=\\\"Add / edit placeholder text here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"\\\">\\n <label\\n for=\\\"inputTextRequiredUpdate\\\"\\n class=\\\"col-md-4 control-label greyText editPropertiesLabel\\\">\\n Required :\\n </label>\\n <div class=\\\"col-md-8\\\">\\n <div class=\\\"checkboxCssCorrection\\\">&nbsp;</div>\\n <input\\n type=\\\"checkbox\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyRequired\\\"\\n id=\\\"inputTextRequiredUpdate\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextDescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\" \\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"inputTextDescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1RleHRJbnB1dENvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnRleHRJbnB1dENvbnRyb2wudGVtcGxhdGUuaHRtbD85Nzg4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1QQUFtUCxrdkRBQWt2RCIsImZpbGUiOiIyNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG4gIDxkaXYgY2xhc3M9XFxcInBhbmVsLWJvZHlcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCI+XFxuICAgICAgICA8aDUgY2xhc3M9XFxcImdyZXlUZXh0XFxcIj5cXG4gICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLXBlbmNpbC1zcXVhcmUtb1xcXCI+PC9pPlxcbiAgICAgICAgICAmbmJzcDtcXG4gICAgICAgICAgRWRpdCBwcm9wZXJ0aWVzIDpcXG4gICAgICAgIDwvaDU+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJtYXJnaW5Ub3BGaXZlcGl4ZWxzXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxsYWJlbFxcbiAgICAgICAgICBmb3I9XFxcImlucHV0VGV4dExhYmVsVXBkYXRlXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiIGNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICAgIExhYmVsIHRleHQgOlxcbiAgICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCJcXG4gICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlMYWJlbFxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiaW5wdXRUZXh0TGFiZWxVcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgY29udHJvbCBsYWJlbCBoZXJlXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiaW5wdXRUZXh0cGxhY2Vob2xkZXJVcGRhdGVcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBwbGFjZWhvbGRlciA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCJcXG4gICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlQbGFjZWhvbGRlclxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiaW5wdXRUZXh0cGxhY2Vob2xkZXJVcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgcGxhY2Vob2xkZXIgdGV4dCBoZXJlXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiaW5wdXRUZXh0UmVxdWlyZWRVcGRhdGVcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJjb2wtbWQtNCBjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBSZXF1aXJlZCA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLThcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjaGVja2JveENzc0NvcnJlY3Rpb25cXFwiPiZuYnNwOzwvZGl2PlxcbiAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICB0eXBlPVxcXCJjaGVja2JveFxcXCJcXG4gICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UmVxdWlyZWRcXFwiXFxuICAgICAgICAgICAgaWQ9XFxcImlucHV0VGV4dFJlcXVpcmVkVXBkYXRlXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiaW5wdXRUZXh0RGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBEZXNjcmlwdGlvbiA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCIgXFxuICAgICAgICAgICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5RGVzY2lwdGlvblxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiaW5wdXRUZXh0RGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgZGVzY3JpcHRpb24gaGVyZVxcXCI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuICA8bGVmdC1wYW5lbC12YWxpZC1lZGl0LWZvb3RlciAvPlxcbjwvZGl2PlxcblwiXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1RleHRJbnB1dENvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnRleHRJbnB1dENvbnRyb2wudGVtcGxhdGUuaHRtbFxuLy8gbW9kdWxlIGlkID0gMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  140. /***/ },
  141. /* 27 */
  142. /***/ function(module, exports, __webpack_require__) {
  143. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_TEXTAREA_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelTextareaControlTemplate = __webpack_require__(28);\n\nvar _edaDragDropWayLeftpanelTextareaControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelTextareaControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_TEXTAREA_CONTROL_DIRECTIVE = 'leftPanelTextareaControl';\n\nfunction leftPanelTextareaControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelTextareaControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelTextareaControl.$inject = [];\n\nexports.default = leftPanelTextareaControl;\nexports.LEFT_PANEL_TEXTAREA_CONTROL_DIRECTIVE = LEFT_PANEL_TEXTAREA_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1RleHRBcmVhQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudGV4dGFyZWFDb250cm9sLmRpcmVjdGl2ZS5qcz8yY2IzIl0sIm5hbWVzIjpbIkxFRlRfUEFORUxfVEVYVEFSRUFfQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxUZXh0YXJlYUNvbnRyb2wiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSx3Q0FBd0MsMEJBQTlDOztBQUVBLFNBQVNDLHdCQUFULEdBQW9DO0FBQ2xDLE1BQUlDLFlBQVk7QUFDZEMsY0FBVyxHQURHO0FBRWRDO0FBRmMsR0FBaEI7QUFJQSxTQUFPRixTQUFQO0FBQ0Q7O0FBRURELHlCQUF5QkksT0FBekIsR0FBbUMsRUFBbkM7O2tCQUVlSix3QjtRQUdiRCxxQyxHQUFBQSxxQyIsImZpbGUiOiIyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IGxlZnRQYW5lbFRleHRhcmVhQ29udHJvbFRlbXBsYXRlIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnRleHRhcmVhQ29udHJvbC50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgTEVGVF9QQU5FTF9URVhUQVJFQV9DT05UUk9MX0RJUkVDVElWRSA9ICdsZWZ0UGFuZWxUZXh0YXJlYUNvbnRyb2wnO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxUZXh0YXJlYUNvbnRyb2woKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxUZXh0YXJlYUNvbnRyb2xUZW1wbGF0ZVxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xufVxuXG5sZWZ0UGFuZWxUZXh0YXJlYUNvbnRyb2wuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxUZXh0YXJlYUNvbnRyb2w7XG5cbmV4cG9ydCB7XG4gIExFRlRfUEFORUxfVEVYVEFSRUFfQ09OVFJPTF9ESVJFQ1RJVkVcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1RleHRBcmVhQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudGV4dGFyZWFDb250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  144. /***/ },
  145. /* 28 */
  146. /***/ function(module, exports) {
  147. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextLabelUpdate\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Label text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyLabel\\\" \\n id=\\\"inputTextLabelUpdate\\\"\\n placeholder=\\\"Add / edit control label here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"\\\">\\n <label\\n for=\\\"RequiredUpdate\\\"\\n class=\\\"col-md-4 control-label greyText editPropertiesLabel\\\">\\n Required :\\n </label>\\n <div class=\\\"col-md-8\\\">\\n <div class=\\\"checkboxCssCorrection\\\">\\n &nbsp;\\n </div>\\n <input\\n type=\\\"checkbox\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyRequired\\\"\\n id=\\\"RequiredUpdate\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1RleHRBcmVhQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudGV4dGFyZWFDb250cm9sLnRlbXBsYXRlLmh0bWw/OWU4MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAsMmxDQUEybEMiLCJmaWxlIjoiMjguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtZGVmYXVsdFxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cXFwiPjwvaT5cXG4gICAgICAgICAgJm5ic3A7XFxuICAgICAgICAgIEVkaXQgcHJvcGVydGllcyA6XFxuICAgICAgICA8L2g1PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCI+XFxuICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgZm9yPVxcXCJpbnB1dFRleHRMYWJlbFVwZGF0ZVxcXCJcXG4gICAgICAgICAgY2xhc3M9XFxcIiBjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBMYWJlbCB0ZXh0IDpcXG4gICAgICAgIDwvbGFiZWw+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICB0eXBlPVxcXCJ0ZXh0XFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seUxhYmVsXFxcIiBcXG4gICAgICAgICAgICBpZD1cXFwiaW5wdXRUZXh0TGFiZWxVcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgY29udHJvbCBsYWJlbCBoZXJlXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiUmVxdWlyZWRVcGRhdGVcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJjb2wtbWQtNCBjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBSZXF1aXJlZCA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLThcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjaGVja2JveENzc0NvcnJlY3Rpb25cXFwiPlxcbiAgICAgICAgICAgICZuYnNwO1xcbiAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgdHlwZT1cXFwiY2hlY2tib3hcXFwiXFxuICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seVJlcXVpcmVkXFxcIlxcbiAgICAgICAgICAgIGlkPVxcXCJSZXF1aXJlZFVwZGF0ZVxcXCI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJtYXJnaW5Ub3BGaXZlcGl4ZWxzXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxsYWJlbFxcbiAgICAgICAgICBmb3I9XFxcIkRlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgRGVzY3JpcHRpb24gOlxcbiAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcIlxcXCI+XFxuICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5RGVzY2lwdGlvblxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiRGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgZGVzY3JpcHRpb24gaGVyZVxcXCI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuICA8bGVmdC1wYW5lbC12YWxpZC1lZGl0LWZvb3RlciAvPlxcbjwvZGl2PlxcblwiXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1RleHRBcmVhQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwudGV4dGFyZWFDb250cm9sLnRlbXBsYXRlLmh0bWxcbi8vIG1vZHVsZSBpZCA9IDI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  148. /***/ },
  149. /* 29 */
  150. /***/ function(module, exports, __webpack_require__) {
  151. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_SUBTITLE_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelSubtitleControlTemplate = __webpack_require__(30);\n\nvar _edaDragDropWayLeftpanelSubtitleControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelSubtitleControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_SUBTITLE_CONTROL_DIRECTIVE = 'leftPanelSubtitleControl';\n\nfunction leftPanelSubtitleControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelSubtitleControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelSubtitleControl.$inject = [];\n\nexports.default = leftPanelSubtitleControl;\nexports.LEFT_PANEL_SUBTITLE_CONTROL_DIRECTIVE = LEFT_PANEL_SUBTITLE_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1N1YlRpdGxlQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuc3VidGl0bGVDb250cm9sLmRpcmVjdGl2ZS5qcz9hYjE1Il0sIm5hbWVzIjpbIkxFRlRfUEFORUxfU1VCVElUTEVfQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxTdWJ0aXRsZUNvbnRyb2wiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7QUFFQSxJQUFNQSx3Q0FBd0MsMEJBQTlDOztBQUVBLFNBQVNDLHdCQUFULEdBQW9DO0FBQ2xDLE1BQUlDLFlBQVk7QUFDZEMsY0FBVyxHQURHO0FBRWRDO0FBRmMsR0FBaEI7QUFJQSxTQUFPRixTQUFQO0FBQ0Q7O0FBRURELHlCQUF5QkksT0FBekIsR0FBbUMsRUFBbkM7O2tCQUVlSix3QjtRQUdiRCxxQyxHQUFBQSxxQyIsImZpbGUiOiIyOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsZWZ0UGFuZWxTdWJ0aXRsZUNvbnRyb2xUZW1wbGF0ZSBmcm9tICcuL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5zdWJ0aXRsZUNvbnRyb2wudGVtcGxhdGUuaHRtbCc7XG5cbmNvbnN0IExFRlRfUEFORUxfU1VCVElUTEVfQ09OVFJPTF9ESVJFQ1RJVkUgPSAnbGVmdFBhbmVsU3VidGl0bGVDb250cm9sJztcblxuZnVuY3Rpb24gbGVmdFBhbmVsU3VidGl0bGVDb250cm9sKCkge1xuICBsZXQgZGlyZWN0aXZlID0ge1xuICAgIHJlc3RyaWN0IDogJ0UnLFxuICAgIHRlbXBsYXRlIDogbGVmdFBhbmVsU3VidGl0bGVDb250cm9sVGVtcGxhdGVcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcbn1cblxubGVmdFBhbmVsU3VidGl0bGVDb250cm9sLiRpbmplY3QgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbGVmdFBhbmVsU3VidGl0bGVDb250cm9sO1xuXG5leHBvcnQge1xuICBMRUZUX1BBTkVMX1NVQlRJVExFX0NPTlRST0xfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9TdWJUaXRsZUNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnN1YnRpdGxlQ29udHJvbC5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  152. /***/ },
  153. /* 30 */
  154. /***/ function(module, exports) {
  155. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextDescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Subtitle text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\" \\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"inputSubtitleTextUpdate\\\"\\n placeholder=\\\"Add / edit subtitle text here\\\" >\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1N1YlRpdGxlQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuc3VidGl0bGVDb250cm9sLnRlbXBsYXRlLmh0bWw/ZTBlMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAiLCJmaWxlIjoiMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtZGVmYXVsdFxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cXFwiPjwvaT5cXG4gICAgICAgICAgJm5ic3A7XFxuICAgICAgICAgIEVkaXQgcHJvcGVydGllcyA6XFxuICAgICAgICA8L2g1PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgICBmb3I9XFxcImlucHV0VGV4dERlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICAgIFN1YnRpdGxlIHRleHQgOlxcbiAgICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCJcXG4gICAgICAgICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiIFxcbiAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seURlc2NpcHRpb25cXFwiXFxuICAgICAgICAgICAgICBpZD1cXFwiaW5wdXRTdWJ0aXRsZVRleHRVcGRhdGVcXFwiXFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiQWRkIC8gZWRpdCBzdWJ0aXRsZSB0ZXh0IGhlcmVcXFwiID5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG4gIDxsZWZ0LXBhbmVsLXZhbGlkLWVkaXQtZm9vdGVyIC8+XFxuPC9kaXY+XFxuXCJcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvU3ViVGl0bGVDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5zdWJ0aXRsZUNvbnRyb2wudGVtcGxhdGUuaHRtbFxuLy8gbW9kdWxlIGlkID0gMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  156. /***/ },
  157. /* 31 */
  158. /***/ function(module, exports, __webpack_require__) {
  159. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_RICH_TEXT_EDITOR_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelRichTextEditorControlTemplate = __webpack_require__(32);\n\nvar _edaDragDropWayLeftpanelRichTextEditorControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelRichTextEditorControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_RICH_TEXT_EDITOR_CONTROL_DIRECTIVE = 'leftPanelRichTextEditorControl';\n\nfunction leftPanelRichTextEditorControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelRichTextEditorControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelRichTextEditorControl.$inject = [];\n\nexports.default = leftPanelRichTextEditorControl;\nexports.LEFT_PANEL_RICH_TEXT_EDITOR_CONTROL_DIRECTIVE = LEFT_PANEL_RICH_TEXT_EDITOR_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1JpY2hUZXh0RWRpdG9yQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmljaFRleHRFZGl0b3JDb250cm9sLmRpcmVjdGl2ZS5qcz9jNWQwIl0sIm5hbWVzIjpbIkxFRlRfUEFORUxfUklDSF9URVhUX0VESVRPUl9DT05UUk9MX0RJUkVDVElWRSIsImxlZnRQYW5lbFJpY2hUZXh0RWRpdG9yQ29udHJvbCIsImRpcmVjdGl2ZSIsInJlc3RyaWN0IiwidGVtcGxhdGUiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLGdEQUFnRCxnQ0FBdEQ7O0FBRUEsU0FBU0MsOEJBQVQsR0FBMEM7QUFDeEMsTUFBSUMsWUFBWTtBQUNkQyxjQUFXLEdBREc7QUFFZEM7QUFGYyxHQUFoQjtBQUlBLFNBQU9GLFNBQVA7QUFDRDs7QUFFREQsK0JBQStCSSxPQUEvQixHQUF5QyxFQUF6Qzs7a0JBRWVKLDhCO1FBR2JELDZDLEdBQUFBLDZDIiwiZmlsZSI6IjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgbGVmdFBhbmVsUmljaFRleHRFZGl0b3JDb250cm9sVGVtcGxhdGUgZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmljaFRleHRFZGl0b3JDb250cm9sLnRlbXBsYXRlLmh0bWwnO1xuXG5jb25zdCBMRUZUX1BBTkVMX1JJQ0hfVEVYVF9FRElUT1JfQ09OVFJPTF9ESVJFQ1RJVkUgPSAnbGVmdFBhbmVsUmljaFRleHRFZGl0b3JDb250cm9sJztcblxuZnVuY3Rpb24gbGVmdFBhbmVsUmljaFRleHRFZGl0b3JDb250cm9sKCkge1xuICBsZXQgZGlyZWN0aXZlID0ge1xuICAgIHJlc3RyaWN0IDogJ0UnLFxuICAgIHRlbXBsYXRlIDogbGVmdFBhbmVsUmljaFRleHRFZGl0b3JDb250cm9sVGVtcGxhdGVcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcbn1cblxubGVmdFBhbmVsUmljaFRleHRFZGl0b3JDb250cm9sLiRpbmplY3QgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbGVmdFBhbmVsUmljaFRleHRFZGl0b3JDb250cm9sO1xuXG5leHBvcnQge1xuICBMRUZUX1BBTkVMX1JJQ0hfVEVYVF9FRElUT1JfQ09OVFJPTF9ESVJFQ1RJVkVcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1JpY2hUZXh0RWRpdG9yQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmljaFRleHRFZGl0b3JDb250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  160. /***/ },
  161. /* 32 */
  162. /***/ function(module, exports) {
  163. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp; Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1JpY2hUZXh0RWRpdG9yQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmljaFRleHRFZGl0b3JDb250cm9sLnRlbXBsYXRlLmh0bWw/ZmVjNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAiLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtZGVmYXVsdFxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cXFwiPjwvaT5cXG4gICAgICAgICAgJm5ic3A7IEVkaXQgcHJvcGVydGllcyA6XFxuICAgICAgICA8L2g1PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCI+XFxuICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgZm9yPVxcXCJEZXNjcmlwdGlvblVwZGF0ZVxcXCJcXG4gICAgICAgICAgY2xhc3M9XFxcImNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICAgIERlc2NyaXB0aW9uIDpcXG4gICAgICAgIDwvbGFiZWw+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICB0eXBlPVxcXCJ0ZXh0XFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seURlc2NpcHRpb25cXFwiXFxuICAgICAgICAgICAgaWQ9XFxcIkRlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVxcXCJBZGQgLyBlZGl0IGRlc2NyaXB0aW9uIGhlcmVcXFwiPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2PlxcbiAgPGxlZnQtcGFuZWwtdmFsaWQtZWRpdC1mb290ZXIgLz5cXG48L2Rpdj5cXG5cIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9SaWNoVGV4dEVkaXRvckNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnJpY2hUZXh0RWRpdG9yQ29udHJvbC50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSAzMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  164. /***/ },
  165. /* 33 */
  166. /***/ function(module, exports, __webpack_require__) {
  167. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_RADIO_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelRadioControlTemplate = __webpack_require__(34);\n\nvar _edaDragDropWayLeftpanelRadioControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelRadioControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_RADIO_CONTROL_DIRECTIVE = 'leftPanelRadioControl';\n\nfunction leftPanelRadioControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelRadioControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelRadioControl.$inject = [];\n\nexports.default = leftPanelRadioControl;\nexports.LEFT_PANEL_RADIO_CONTROL_DIRECTIVE = LEFT_PANEL_RADIO_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1JhZGlvQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmFkaW9Db250cm9sLmRpcmVjdGl2ZS5qcz9lMmE0Il0sIm5hbWVzIjpbIkxFRlRfUEFORUxfUkFESU9fQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxSYWRpb0NvbnRyb2wiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxxQ0FBcUMsdUJBQTNDOztBQUVBLFNBQVNDLHFCQUFULEdBQWlDO0FBQy9CLE1BQUlDLFlBQVk7QUFDZEMsY0FBVyxHQURHO0FBRWRDO0FBRmMsR0FBaEI7QUFJQSxTQUFPRixTQUFQO0FBQ0Q7O0FBRURELHNCQUFzQkksT0FBdEIsR0FBZ0MsRUFBaEM7O2tCQUVlSixxQjtRQUdiRCxrQyxHQUFBQSxrQyIsImZpbGUiOiIzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IGxlZnRQYW5lbFJhZGlvQ29udHJvbFRlbXBsYXRlIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnJhZGlvQ29udHJvbC50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgTEVGVF9QQU5FTF9SQURJT19DT05UUk9MX0RJUkVDVElWRSA9ICdsZWZ0UGFuZWxSYWRpb0NvbnRyb2wnO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxSYWRpb0NvbnRyb2woKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxSYWRpb0NvbnRyb2xUZW1wbGF0ZVxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xufVxuXG5sZWZ0UGFuZWxSYWRpb0NvbnRyb2wuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxSYWRpb0NvbnRyb2w7XG5cbmV4cG9ydCB7XG4gIExFRlRfUEFORUxfUkFESU9fQ09OVFJPTF9ESVJFQ1RJVkVcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1JhZGlvQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmFkaW9Db250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  168. /***/ },
  169. /* 34 */
  170. /***/ function(module, exports) {
  171. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12\\\">\\n <label\\n for=\\\"radioRowCollection\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Add new radio :\\n </label>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-9 col-xs-9 col-md-9 col-lg-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"inputAddNewRadioOption\\\"\\n placeholder=\\\"add new radio\\\"\\n ng-model=\\\"leftPanelCtrl.newOptionRadio.saisie\\\">\\n </div>\\n <div class=\\\"col-sm-3 col-xs-3 col-md-3 col-lg-3\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.addNewOptionRadio()\\\">\\n add\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12\\\">\\n <label\\n for=\\\"radioRowCollection\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Edit/Remove radio :\\n </label>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class-\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n <div class=\\\"container\\\">\\n <div ng-show=\\\"leftPanelCtrl.radioRowCollection.rows.length === 0\\\">\\n <h5 class=\\\"text-center greyText\\\">\\n <em>\\n - no radio : add new radio values -\\n </em>\\n </h5>\\n </div>\\n <table\\n ng-if=\\\"leftPanelCtrl.radioRowCollection.rows.length > 0\\\"\\n class=\\\"table table-striped\\\">\\n <thead>\\n <tr>\\n <th st-ratio=\\\"20\\\">\\n order\\n </th>\\n <th st-ratio=\\\"55\\\">\\n option\\n </th>\\n <th st-ratio=\\\"25\\\">\\n </th>\\n </tr>\\n <tr>\\n <th st-ratio=\\\"20\\\">\\n </th>\\n <th st-ratio=\\\"55\\\">\\n <input\\n ng-model=\\\"radioFilter\\\"\\n placeholder=\\\"search for option\\\"\\n class=\\\"input-sm form-control\\\"\\n type=\\\"search\\\" />\\n </th>\\n <th st-ratio=\\\"25\\\"></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"radioRow in leftPanelCtrl.radioRowCollection.rows | filter:radioFilter as radioRow\\\">\\n <td st-ratio=\\\"20\\\">\\n {{$index}}\\n </td>\\n <td st-ratio=\\\"55\\\">\\n {{radioRow.option}}\\n </td>\\n <td st-ratio=\\\"25\\\">\\n <div class=\\\"pull-right\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.upThisRadioRow($index)\\\">\\n <i class=\\\"fa fa-arrow-up\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.downThisRadioRow($index)\\\">\\n <i class=\\\"fa fa-arrow-down\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-danger\\\"\\n ng-click=\\\"leftPanelCtrl.removeRadioRow($index)\\\">\\n <i class=\\\"fa fa-trash-o\\\"></i>\\n </button>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n \\t\\t\\t<div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextLabelUpdate\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Label text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyLabel\\\"\\n id=\\\"inputTextLabelUpdate\\\"\\n placeholder=\\\"Add / edit control label here\\\">\\n </div>\\n \\t\\t\\t</div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n \\t\\t\\t<div class=\\\"\\\">\\n <label\\n for=\\\"RequiredUpdate\\\"\\n class=\\\"col-md-4 control-label greyText editPropertiesLabel\\\">\\n Required :\\n </label>\\n <div class=\\\"col-md-8\\\">\\n <div class=\\\"checkboxCssCorrection\\\">&nbsp;</div>\\n <input\\n type=\\\"checkbox\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyRequired\\\"\\n id=\\\"RequiredUpdate\\\">\\n </div>\\n \\t\\t\\t</div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n \\t\\t\\t<div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n \\t\\t\\t</div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1JhZGlvQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucmFkaW9Db250cm9sLnRlbXBsYXRlLmh0bWw/ODQzYSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAsMm9GQUEyb0YsUUFBUSxtRkFBbUYsaUJBQWlCLDhnRUFBOGdFIiwiZmlsZSI6IjM0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInBhbmVsIHBhbmVsLWRlZmF1bHRcXFwiPlxcbiAgPGRpdiBjbGFzcz1cXFwicGFuZWwtYm9keVxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxoNSBjbGFzcz1cXFwiZ3JleVRleHRcXFwiPlxcbiAgICAgICAgICA8aSBjbGFzcz1cXFwiZmEgZmEtcGVuY2lsLXNxdWFyZS1vXFxcIj48L2k+XFxuICAgICAgICAgICZuYnNwO1xcbiAgICAgICAgICBFZGl0IHByb3BlcnRpZXMgOlxcbiAgICAgICAgPC9oNT5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1sZy0xMiBjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwicmFkaW9Sb3dDb2xsZWN0aW9uXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiIGNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICAgIEFkZCBuZXcgcmFkaW8gOlxcbiAgICAgICAgPC9sYWJlbD5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICA8ZGl2PlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLXNtLTkgY29sLXhzLTkgY29sLW1kLTkgY29sLWxnLTlcXFwiPlxcbiAgICAgICAgPGlucHV0XFxuICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuICAgICAgICAgIGlkPVxcXCJpbnB1dEFkZE5ld1JhZGlvT3B0aW9uXFxcIlxcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiYWRkIG5ldyByYWRpb1xcXCJcXG4gICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwubmV3T3B0aW9uUmFkaW8uc2Fpc2llXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLXNtLTMgY29sLXhzLTMgY29sLW1kLTMgY29sLWxnLTNcXFwiPlxcbiAgICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICBuZy1jbGljaz1cXFwibGVmdFBhbmVsQ3RybC5hZGROZXdPcHRpb25SYWRpbygpXFxcIj5cXG4gICAgICAgICAgICBhZGRcXG4gICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG4gIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImNvbC1sZy0xMiBjb2wtbWQtMTJcXFwiPlxcbiAgICAgIDxsYWJlbFxcbiAgICAgICAgZm9yPVxcXCJyYWRpb1Jvd0NvbGxlY3Rpb25cXFwiXFxuICAgICAgICBjbGFzcz1cXFwiIGNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICBFZGl0L1JlbW92ZSByYWRpbyA6XFxuICAgICAgPC9sYWJlbD5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG4gIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3MtXFxcImNvbC1sZy0xMiBjb2wtbWQtMTIgY29sLXNtLTEyIGNvbC14cy0xMlxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb250YWluZXJcXFwiPlxcbiAgICAgICAgICA8ZGl2IG5nLXNob3c9XFxcImxlZnRQYW5lbEN0cmwucmFkaW9Sb3dDb2xsZWN0aW9uLnJvd3MubGVuZ3RoID09PSAwXFxcIj5cXG4gICAgICAgICAgICA8aDUgY2xhc3M9XFxcInRleHQtY2VudGVyIGdyZXlUZXh0XFxcIj5cXG4gICAgICAgICAgICAgIDxlbT5cXG4gICAgICAgICAgICAgICAgLSBubyByYWRpbyA6IGFkZCBuZXcgcmFkaW8gdmFsdWVzIC1cXG4gICAgICAgICAgICAgIDwvZW0+XFxuICAgICAgICAgICAgPC9oNT5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgIDx0YWJsZVxcbiAgICAgICAgICAgIG5nLWlmPVxcXCJsZWZ0UGFuZWxDdHJsLnJhZGlvUm93Q29sbGVjdGlvbi5yb3dzLmxlbmd0aCA+IDBcXFwiXFxuICAgICAgICAgICAgY2xhc3M9XFxcInRhYmxlIHRhYmxlLXN0cmlwZWRcXFwiPlxcbiAgICAgICAgICAgIDx0aGVhZD5cXG4gICAgICAgICAgICA8dHI+XFxuICAgICAgICAgICAgICA8dGggc3QtcmF0aW89XFxcIjIwXFxcIj5cXG4gICAgICAgICAgICAgICAgb3JkZXJcXG4gICAgICAgICAgICAgIDwvdGg+XFxuICAgICAgICAgICAgICA8dGggc3QtcmF0aW89XFxcIjU1XFxcIj5cXG4gICAgICAgICAgICAgICAgb3B0aW9uXFxuICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgPHRoIHN0LXJhdGlvPVxcXCIyNVxcXCI+XFxuICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgIDwvdHI+XFxuICAgICAgICAgICAgPHRyPlxcbiAgICAgICAgICAgICAgPHRoIHN0LXJhdGlvPVxcXCIyMFxcXCI+XFxuICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgPHRoIHN0LXJhdGlvPVxcXCI1NVxcXCI+XFxuICAgICAgICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJyYWRpb0ZpbHRlclxcXCJcXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwic2VhcmNoIGZvciBvcHRpb25cXFwiXFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcImlucHV0LXNtIGZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICAgICAgICB0eXBlPVxcXCJzZWFyY2hcXFwiIC8+XFxuICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgPHRoIHN0LXJhdGlvPVxcXCIyNVxcXCI+PC90aD5cXG4gICAgICAgICAgICA8L3RyPlxcbiAgICAgICAgICAgIDwvdGhlYWQ+XFxuICAgICAgICAgICAgPHRib2R5PlxcbiAgICAgICAgICAgICAgPHRyIG5nLXJlcGVhdD1cXFwicmFkaW9Sb3cgaW4gbGVmdFBhbmVsQ3RybC5yYWRpb1Jvd0NvbGxlY3Rpb24ucm93cyB8IGZpbHRlcjpyYWRpb0ZpbHRlciBhcyByYWRpb1Jvd1xcXCI+XFxuICAgICAgICAgICAgICAgIDx0ZCBzdC1yYXRpbz1cXFwiMjBcXFwiPlxcbiAgICAgICAgICAgICAgICAgIHt7JGluZGV4fX1cXG4gICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICAgICAgPHRkIHN0LXJhdGlvPVxcXCI1NVxcXCI+XFxuICAgICAgICAgICAgICAgICAge3tyYWRpb1Jvdy5vcHRpb259fVxcbiAgICAgICAgICAgICAgICA8L3RkPlxcbiAgICAgICAgICAgICAgICA8dGQgc3QtcmF0aW89XFxcIjI1XFxcIj5cXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJwdWxsLXJpZ2h0XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgbmctY2xpY2s9XFxcImxlZnRQYW5lbEN0cmwudXBUaGlzUmFkaW9Sb3coJGluZGV4KVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1hcnJvdy11cFxcXCI+PC9pPlxcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVxcXCJidG4gYnRuLXByaW1hcnlcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgIG5nLWNsaWNrPVxcXCJsZWZ0UGFuZWxDdHJsLmRvd25UaGlzUmFkaW9Sb3coJGluZGV4KVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1hcnJvdy1kb3duXFxcIj48L2k+XFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tZGFuZ2VyXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICBuZy1jbGljaz1cXFwibGVmdFBhbmVsQ3RybC5yZW1vdmVSYWRpb1JvdygkaW5kZXgpXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLXRyYXNoLW9cXFwiPjwvaT5cXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICAgIDwvdHI+XFxuICAgICAgICAgICAgPC90Ym9keT5cXG4gICAgICAgICAgPC90YWJsZT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2PlxcbiAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICBcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgICBmb3I9XFxcImlucHV0VGV4dExhYmVsVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCIgY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgICBMYWJlbCB0ZXh0IDpcXG4gICAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seUxhYmVsXFxcIlxcbiAgICAgICAgICAgICAgaWQ9XFxcImlucHV0VGV4dExhYmVsVXBkYXRlXFxcIlxcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgY29udHJvbCBsYWJlbCBoZXJlXFxcIj5cXG4gICAgICAgICAgPC9kaXY+XFxuICBcXHRcXHRcXHQ8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgXFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgPGxhYmVsXFxuICAgICAgICAgICAgZm9yPVxcXCJSZXF1aXJlZFVwZGF0ZVxcXCJcXG4gICAgICAgICAgICBjbGFzcz1cXFwiY29sLW1kLTQgY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgICBSZXF1aXJlZCA6XFxuICAgICAgICAgIDwvbGFiZWw+XFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC04XFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjaGVja2JveENzc0NvcnJlY3Rpb25cXFwiPiZuYnNwOzwvZGl2PlxcbiAgICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgICAgdHlwZT1cXFwiY2hlY2tib3hcXFwiXFxuICAgICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UmVxdWlyZWRcXFwiXFxuICAgICAgICAgICAgICBpZD1cXFwiUmVxdWlyZWRVcGRhdGVcXFwiPlxcbiAgICAgICAgICA8L2Rpdj5cXG4gIFxcdFxcdFxcdDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICBcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgICBmb3I9XFxcIkRlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICAgIERlc2NyaXB0aW9uIDpcXG4gICAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seURlc2NpcHRpb25cXFwiXFxuICAgICAgICAgICAgICBpZD1cXFwiRGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiQWRkIC8gZWRpdCBkZXNjcmlwdGlvbiBoZXJlXFxcIj5cXG4gICAgICAgICAgPC9kaXY+XFxuICBcXHRcXHRcXHQ8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICA8L2Rpdj5cXG4gIDwvZGl2PlxcbiAgPGxlZnQtcGFuZWwtdmFsaWQtZWRpdC1mb290ZXIgLz5cXG48L2Rpdj5cXG5cIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9SYWRpb0NvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnJhZGlvQ29udHJvbC50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSAzNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  172. /***/ },
  173. /* 35 */
  174. /***/ function(module, exports, __webpack_require__) {
  175. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_PASSWORD_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelPasswordControlTemplate = __webpack_require__(36);\n\nvar _edaDragDropWayLeftpanelPasswordControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelPasswordControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_PASSWORD_CONTROL_DIRECTIVE = 'leftPanelPasswordControl';\n\nfunction leftPanelPasswordControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelPasswordControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelPasswordControl.$inject = [];\n\nexports.default = leftPanelPasswordControl;\nexports.LEFT_PANEL_PASSWORD_CONTROL_DIRECTIVE = LEFT_PANEL_PASSWORD_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1Bhc3N3b3JkQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucGFzc3dvcmRDb250cm9sLmRpcmVjdGl2ZS5qcz82NjgzIl0sIm5hbWVzIjpbIkxFRlRfUEFORUxfUEFTU1dPUkRfQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxQYXNzd29yZENvbnRyb2wiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSx3Q0FBd0MsMEJBQTlDOztBQUVBLFNBQVNDLHdCQUFULEdBQW9DO0FBQ2xDLE1BQUlDLFlBQVk7QUFDZEMsY0FBVyxHQURHO0FBRWRDO0FBRmMsR0FBaEI7QUFJQSxTQUFPRixTQUFQO0FBQ0Q7O0FBRURELHlCQUF5QkksT0FBekIsR0FBbUMsRUFBbkM7O2tCQUVlSix3QjtRQUdiRCxxQyxHQUFBQSxxQyIsImZpbGUiOiIzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IGxlZnRQYW5lbFBhc3N3b3JkQ29udHJvbFRlbXBsYXRlIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnBhc3N3b3JkQ29udHJvbC50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgTEVGVF9QQU5FTF9QQVNTV09SRF9DT05UUk9MX0RJUkVDVElWRSA9ICdsZWZ0UGFuZWxQYXNzd29yZENvbnRyb2wnO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxQYXNzd29yZENvbnRyb2woKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxQYXNzd29yZENvbnRyb2xUZW1wbGF0ZVxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xufVxuXG5sZWZ0UGFuZWxQYXNzd29yZENvbnRyb2wuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxQYXNzd29yZENvbnRyb2w7XG5cbmV4cG9ydCB7XG4gIExFRlRfUEFORUxfUEFTU1dPUkRfQ09OVFJPTF9ESVJFQ1RJVkVcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1Bhc3N3b3JkQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucGFzc3dvcmRDb250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  176. /***/ },
  177. /* 36 */
  178. /***/ function(module, exports) {
  179. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextLabelUpdate\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Label text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\" \\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyLabel\\\"\\n id=\\\"inputTextLabelUpdate\\\"\\n placeholder=\\\"Add / edit control label here\\\" >\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"placeholderUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n placeholder :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyPlaceholder\\\"\\n id=\\\"inputTextplaceholderUpdate\\\"\\n placeholder=\\\"Add / edit placeholder text here\\\" >\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"\\\">\\n <label\\n for=\\\"RequiredUpdate\\\"\\n class=\\\"col-md-4 control-label greyText editPropertiesLabel\\\">\\n Required :\\n </label>\\n <div class=\\\"col-md-8\\\">\\n <div class=\\\"checkboxCssCorrection\\\">&nbsp;</div>\\n <input\\n type=\\\"checkbox\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyRequired\\\"\\n id=\\\"RequiredUpdate\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\" >\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL1Bhc3N3b3JkQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwucGFzc3dvcmRDb250cm9sLnRlbXBsYXRlLmh0bWw/YWY5ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAsaXVEQUFpdUQiLCJmaWxlIjoiMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtZGVmYXVsdFxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cXFwiPjwvaT5cXG4gICAgICAgICAgJm5ic3A7XFxuICAgICAgICAgIEVkaXQgcHJvcGVydGllcyA6XFxuICAgICAgICA8L2g1PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCI+XFxuICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgZm9yPVxcXCJpbnB1dFRleHRMYWJlbFVwZGF0ZVxcXCJcXG4gICAgICAgICAgY2xhc3M9XFxcIiBjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBMYWJlbCB0ZXh0IDpcXG4gICAgICAgIDwvbGFiZWw+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICB0eXBlPVxcXCJ0ZXh0XFxcIiBcXG4gICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlMYWJlbFxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiaW5wdXRUZXh0TGFiZWxVcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgY29udHJvbCBsYWJlbCBoZXJlXFxcIiA+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJtYXJnaW5Ub3BGaXZlcGl4ZWxzXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxsYWJlbFxcbiAgICAgICAgICBmb3I9XFxcInBsYWNlaG9sZGVyVXBkYXRlXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgcGxhY2Vob2xkZXIgOlxcbiAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcIlxcXCI+XFxuICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UGxhY2Vob2xkZXJcXFwiXFxuICAgICAgICAgICAgaWQ9XFxcImlucHV0VGV4dHBsYWNlaG9sZGVyVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVxcXCJBZGQgLyBlZGl0IHBsYWNlaG9sZGVyIHRleHQgaGVyZVxcXCIgPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgIDxkaXYgY2xhc3M9XFxcIlxcXCI+XFxuICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgZm9yPVxcXCJSZXF1aXJlZFVwZGF0ZVxcXCJcXG4gICAgICAgICAgY2xhc3M9XFxcImNvbC1tZC00IGNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICAgIFJlcXVpcmVkIDpcXG4gICAgICAgIDwvbGFiZWw+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtOFxcXCI+XFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNoZWNrYm94Q3NzQ29ycmVjdGlvblxcXCI+Jm5ic3A7PC9kaXY+XFxuICAgICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgICB0eXBlPVxcXCJjaGVja2JveFxcXCJcXG4gICAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlSZXF1aXJlZFxcXCJcXG4gICAgICAgICAgICAgIGlkPVxcXCJSZXF1aXJlZFVwZGF0ZVxcXCI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJtYXJnaW5Ub3BGaXZlcGl4ZWxzXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxsYWJlbFxcbiAgICAgICAgICBmb3I9XFxcIkRlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgRGVzY3JpcHRpb24gOlxcbiAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcIlxcXCI+XFxuICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5RGVzY2lwdGlvblxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiRGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgZGVzY3JpcHRpb24gaGVyZVxcXCIgPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2PlxcbiAgPGxlZnQtcGFuZWwtdmFsaWQtZWRpdC1mb290ZXIgLz5cXG48L2Rpdj5cXG5cIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9QYXNzd29yZENvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLnBhc3N3b3JkQ29udHJvbC50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSAzNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  180. /***/ },
  181. /* 37 */
  182. /***/ function(module, exports, __webpack_require__) {
  183. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_HEADER_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelHeaderControlTemplate = __webpack_require__(38);\n\nvar _edaDragDropWayLeftpanelHeaderControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelHeaderControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_HEADER_CONTROL_DIRECTIVE = 'leftPanelHeaderControl';\n\nfunction leftPanelHeaderControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelHeaderControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelHeaderControl.$inject = [];\n\nexports.default = leftPanelHeaderControl;\nexports.LEFT_PANEL_HEADER_CONTROL_DIRECTIVE = LEFT_PANEL_HEADER_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0hlYWRlckNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmhlYWRlckNvbnRyb2wuZGlyZWN0aXZlLmpzPzhjNmMiXSwibmFtZXMiOlsiTEVGVF9QQU5FTF9IRUFERVJfQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxIZWFkZXJDb250cm9sIiwiZGlyZWN0aXZlIiwicmVzdHJpY3QiLCJ0ZW1wbGF0ZSIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7O0FBRUEsSUFBTUEsc0NBQXNDLHdCQUE1Qzs7QUFFQSxTQUFTQyxzQkFBVCxHQUFrQztBQUNoQyxNQUFJQyxZQUFZO0FBQ2RDLGNBQVcsR0FERztBQUVkQztBQUZjLEdBQWhCO0FBSUEsU0FBT0YsU0FBUDtBQUVEOztBQUVERCx1QkFBdUJJLE9BQXZCLEdBQWlDLEVBQWpDOztrQkFFZUosc0I7UUFHYkQsbUMsR0FBQUEsbUMiLCJmaWxlIjoiMzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGVmdFBhbmVsSGVhZGVyQ29udHJvbFRlbXBsYXRlIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmhlYWRlckNvbnRyb2wudGVtcGxhdGUuaHRtbCc7XG5cbmNvbnN0IExFRlRfUEFORUxfSEVBREVSX0NPTlRST0xfRElSRUNUSVZFID0gJ2xlZnRQYW5lbEhlYWRlckNvbnRyb2wnO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxIZWFkZXJDb250cm9sKCkgeyAgXG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxIZWFkZXJDb250cm9sVGVtcGxhdGVcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcblxufVxuXG5sZWZ0UGFuZWxIZWFkZXJDb250cm9sLiRpbmplY3QgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbGVmdFBhbmVsSGVhZGVyQ29udHJvbDtcblxuZXhwb3J0IHtcbiAgTEVGVF9QQU5FTF9IRUFERVJfQ09OVFJPTF9ESVJFQ1RJVkVcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0hlYWRlckNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmhlYWRlckNvbnRyb2wuZGlyZWN0aXZlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  184. /***/ },
  185. /* 38 */
  186. /***/ function(module, exports) {
  187. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextDescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Header text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"inputHeaderTextUpdate\\\"\\n placeholder=\\\"Add / edit header text here\\\" >\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0hlYWRlckNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmhlYWRlckNvbnRyb2wudGVtcGxhdGUuaHRtbD9jMTk5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1QQUFtUCIsImZpbGUiOiIzOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG4gIDxkaXYgY2xhc3M9XFxcInBhbmVsLWJvZHlcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCI+XFxuICAgICAgICA8aDUgY2xhc3M9XFxcImdyZXlUZXh0XFxcIj5cXG4gICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLXBlbmNpbC1zcXVhcmUtb1xcXCI+PC9pPlxcbiAgICAgICAgICAmbmJzcDtcXG4gICAgICAgICAgRWRpdCBwcm9wZXJ0aWVzIDpcXG4gICAgICAgIDwvaDU+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJtYXJnaW5Ub3BGaXZlcGl4ZWxzXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxsYWJlbFxcbiAgICAgICAgICBmb3I9XFxcImlucHV0VGV4dERlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgSGVhZGVyIHRleHQgOlxcbiAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcIlxcXCI+XFxuICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5RGVzY2lwdGlvblxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiaW5wdXRIZWFkZXJUZXh0VXBkYXRlXFxcIlxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVxcXCJBZGQgLyBlZGl0IGhlYWRlciB0ZXh0IGhlcmVcXFwiID5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG4gIDxsZWZ0LXBhbmVsLXZhbGlkLWVkaXQtZm9vdGVyIC8+XFxuPC9kaXY+XFxuXCJcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvSGVhZGVyQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuaGVhZGVyQ29udHJvbC50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSAzOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  188. /***/ },
  189. /* 39 */
  190. /***/ function(module, exports, __webpack_require__) {
  191. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_GROUPED_SELECT_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelGroupedSelectControlTemplate = __webpack_require__(40);\n\nvar _edaDragDropWayLeftpanelGroupedSelectControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelGroupedSelectControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_GROUPED_SELECT_CONTROL_DIRECTIVE = 'leftPanelGroupedSelectControl';\n\nfunction leftPanelGroupedSelectControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelGroupedSelectControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelGroupedSelectControl.$inject = [];\n\nexports.default = leftPanelGroupedSelectControl;\nexports.LEFT_PANEL_GROUPED_SELECT_CONTROL_DIRECTIVE = LEFT_PANEL_GROUPED_SELECT_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0dyb3VwZWRTZWxlY3RDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5ncm91cGVkU2VsZWN0Q29udHJvbC5kaXJlY3RpdmUuanM/YmE5NCJdLCJuYW1lcyI6WyJMRUZUX1BBTkVMX0dST1VQRURfU0VMRUNUX0NPTlRST0xfRElSRUNUSVZFIiwibGVmdFBhbmVsR3JvdXBlZFNlbGVjdENvbnRyb2wiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSw4Q0FBOEMsK0JBQXBEOztBQUVBLFNBQVNDLDZCQUFULEdBQXlDO0FBQ3ZDLE1BQUlDLFlBQVk7QUFDZEMsY0FBVyxHQURHO0FBRWRDO0FBRmMsR0FBaEI7QUFJQSxTQUFPRixTQUFQO0FBQ0Q7O0FBRURELDhCQUE4QkksT0FBOUIsR0FBd0MsRUFBeEM7O2tCQUVlSiw2QjtRQUdiRCwyQyxHQUFBQSwyQyIsImZpbGUiOiIzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IGxlZnRQYW5lbEdyb3VwZWRTZWxlY3RDb250cm9sVGVtcGxhdGUgZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuZ3JvdXBlZFNlbGVjdENvbnRyb2wudGVtcGxhdGUuaHRtbCc7XG5cbmNvbnN0IExFRlRfUEFORUxfR1JPVVBFRF9TRUxFQ1RfQ09OVFJPTF9ESVJFQ1RJVkUgPSAnbGVmdFBhbmVsR3JvdXBlZFNlbGVjdENvbnRyb2wnO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxHcm91cGVkU2VsZWN0Q29udHJvbCgpIHtcbiAgbGV0IGRpcmVjdGl2ZSA9IHtcbiAgICByZXN0cmljdCA6ICdFJyxcbiAgICB0ZW1wbGF0ZSA6IGxlZnRQYW5lbEdyb3VwZWRTZWxlY3RDb250cm9sVGVtcGxhdGVcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcbn1cblxubGVmdFBhbmVsR3JvdXBlZFNlbGVjdENvbnRyb2wuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxHcm91cGVkU2VsZWN0Q29udHJvbDtcblxuZXhwb3J0IHtcbiAgTEVGVF9QQU5FTF9HUk9VUEVEX1NFTEVDVF9DT05UUk9MX0RJUkVDVElWRVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvR3JvdXBlZFNlbGVjdENvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmdyb3VwZWRTZWxlY3RDb250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  192. /***/ },
  193. /* 40 */
  194. /***/ function(module, exports) {
  195. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12\\\">\\n <label\\n for=\\\"groupedSelectRowCollection\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Add new options :\\n </label>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-9 col-xs-9 col-md-9 col-lg-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"inputAddNewGroupedOption\\\"\\n placeholder=\\\"add new option\\\"\\n ng-model=\\\"leftPanelCtrl.newOptionGroupedSelect.saisie\\\">\\n </div>\\n <div class=\\\"col-sm-3 col-xs-3 col-md-3 col-lg-3\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.addNewOptionGroupedSelect()\\\">\\n add\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12\\\">\\n <label\\n for=\\\"groupedSelectRowCollection\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Add new groups :\\n </label>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-9 col-xs-9 col-md-9 col-lg-9\\\">\\n <input\\n id=\\\"inputAddNewGroupGroupedOption\\\"\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.newGroupGroupedSelect.saisie\\\"\\n placeholder=\\\"Add new group\\\">\\n </div>\\n <div class=\\\"col-sm-3 col-xs-3 col-md-3 col-lg-3\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.addNewGroupToGroupedSelect()\\\">\\n add\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12\\\">\\n <label\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Edit/Remove options/groups:\\n </label>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class-\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n <div class=\\\"container\\\">\\n <div ng-if=\\\"leftPanelCtrl.groupedSelectRowCollection.rows.length === 0\\\">\\n <h5 class=\\\"text-center greyText\\\">\\n <em>\\n - no option : add new options -\\n </em>\\n </h5>\\n </div>\\n <table\\n ng-if=\\\"leftPanelCtrl.groupedSelectRowCollection.rows.length > 0\\\"\\n class=\\\"table table-striped\\\">\\n <thead>\\n <tr>\\n <th st-ratio=\\\"20\\\">\\n order\\n </th>\\n <th st-ratio=\\\"25\\\">\\n group\\n </th>\\n <th st-ratio=\\\"30\\\">\\n option\\n </th>\\n <th st-ratio=\\\"25\\\"></th>\\n </tr>\\n <tr>\\n <th st-ratio=\\\"20\\\"></th>\\n <th st-ratio=\\\"25\\\"></th>\\n <th st-ratio=\\\"30\\\">\\n <input\\n ng-model=\\\"groupedSelectFilter\\\"\\n placeholder=\\\"search for option\\\"\\n class=\\\"input-sm form-control\\\"\\n type=\\\"search\\\" />\\n </th>\\n <th st-ratio=\\\"25\\\"></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n ng-repeat=\\\"groupedSelectRow in leftPanelCtrl.groupedSelectRowCollection.rows | filter:groupedSelectFilter as groupedSelectRow\\\">\\n <td st-ratio=\\\"20\\\">\\n {{$index}}\\n </td>\\n <td st-ratio=\\\"25\\\">\\n <div ng-if=\\\"leftPanelCtrl.groupSelectGroupClick.showList === true\\\">\\n <div ng-if=\\\"leftPanelCtrl.GroupedSelectGroups.list.length === 0\\\">\\n <p class=\\\"text-left noGroupText\\\">\\n - add new groups -\\n </p>\\n </div>\\n <div ng-if=\\\"leftPanelCtrl.GroupedSelectGroups.list.length > 0\\\">\\n <ol\\n class=\\\"nya-bs-select col-sm-12 col-xs-12 col-md-12 col-lg12 editGroupedSelectnyaSelect\\\"\\n ng-model=\\\"groupedSelectRow.group\\\"\\n id=\\\"modelGroupedOptionGroupedChoose\\\"\\n disabled=\\\"leftPanelCtrl.GroupedSelectGroups.list.length === 0\\\">\\n <li\\n class=\\\"nya-bs-option\\\"\\n nya-bs-option=\\\"GroupedSelectGroup in leftPanelCtrl.GroupedSelectGroups.list\\\"\\n value=\\\"GroupedSelectGroup\\\">\\n <a>\\n {{GroupedSelectGroup}}\\n </a>\\n </li>\\n </ol>\\n </div>\\n </div>\\n <div ng-if=\\\"leftPanelCtrl.groupSelectGroupClick.showList === false\\\">\\n {{groupedSelectRow.group}}\\n </div>\\n </td>\\n <td st-ratio=\\\"30\\\">\\n {{groupedSelectRow.option}}\\n </td>\\n <td st-ratio=\\\"25\\\">\\n <div class=\\\"pull-right\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.upThisGroupedSelectRow($index)\\\">\\n <i class=\\\"fa fa-arrow-up\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.downThisGroupedSelectRow($index)\\\">\\n <i class=\\\"fa fa-arrow-down\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-warning\\\"\\n ng-click=\\\"leftPanelCtrl.showGroupListToChoose()\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-danger\\\"\\n ng-click=\\\"leftPanelCtrl.removeGroupedSelectRow($index)\\\">\\n <i class=\\\"fa fa-trash-o\\\"></i>\\n </button>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n\\t\\t\\t\\t<div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n\\t\\t\\t\\t</div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0dyb3VwZWRTZWxlY3RDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5ncm91cGVkU2VsZWN0Q29udHJvbC50ZW1wbGF0ZS5odG1sPzY0N2MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbVBBQW1QLDY3SEFBNjdILFFBQVEsNm5DQUE2bkMsb0JBQW9CLG9RQUFvUSx3QkFBd0IsNkdBQTZHLHlCQUF5QiIsImZpbGUiOiI0MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG4gIDxkaXYgY2xhc3M9XFxcInBhbmVsLWJvZHlcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCI+XFxuICAgICAgICA8aDUgY2xhc3M9XFxcImdyZXlUZXh0XFxcIj5cXG4gICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLXBlbmNpbC1zcXVhcmUtb1xcXCI+PC9pPlxcbiAgICAgICAgICAmbmJzcDtcXG4gICAgICAgICAgRWRpdCBwcm9wZXJ0aWVzIDpcXG4gICAgICAgIDwvaDU+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJtYXJnaW5Ub3BGaXZlcGl4ZWxzXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbGctMTIgY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxsYWJlbFxcbiAgICAgICAgICBmb3I9XFxcImdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgQWRkIG5ldyBvcHRpb25zIDpcXG4gICAgICAgIDwvbGFiZWw+XFxuICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtc20tOSBjb2wteHMtOSBjb2wtbWQtOSBjb2wtbGctOVxcXCI+XFxuICAgICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgICB0eXBlPVxcXCJ0ZXh0XFxcIlxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICAgIGlkPVxcXCJpbnB1dEFkZE5ld0dyb3VwZWRPcHRpb25cXFwiXFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiYWRkIG5ldyBvcHRpb25cXFwiXFxuICAgICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5uZXdPcHRpb25Hcm91cGVkU2VsZWN0LnNhaXNpZVxcXCI+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtc20tMyBjb2wteHMtMyBjb2wtbWQtMyBjb2wtbGctM1xcXCI+XFxuICAgICAgICAgICAgPGJ1dHRvblxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgIG5nLWNsaWNrPVxcXCJsZWZ0UGFuZWxDdHJsLmFkZE5ld09wdGlvbkdyb3VwZWRTZWxlY3QoKVxcXCI+XFxuICAgICAgICAgICAgICBhZGRcXG4gICAgICAgICAgICA8L2J1dHRvbj5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbGctMTIgY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxsYWJlbFxcbiAgICAgICAgICBmb3I9XFxcImdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiIGNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICAgIEFkZCBuZXcgZ3JvdXBzIDpcXG4gICAgICAgIDwvbGFiZWw+XFxuICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtc20tOSBjb2wteHMtOSBjb2wtbWQtOSBjb2wtbGctOVxcXCI+XFxuICAgICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgICBpZD1cXFwiaW5wdXRBZGROZXdHcm91cEdyb3VwZWRPcHRpb25cXFwiXFxuICAgICAgICAgICAgICB0eXBlPVxcXCJ0ZXh0XFxcIlxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCJcXG4gICAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLm5ld0dyb3VwR3JvdXBlZFNlbGVjdC5zYWlzaWVcXFwiXFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiQWRkIG5ldyBncm91cFxcXCI+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtc20tMyBjb2wteHMtMyBjb2wtbWQtMyBjb2wtbGctM1xcXCI+XFxuICAgICAgICAgICAgPGJ1dHRvblxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgIG5nLWNsaWNrPVxcXCJsZWZ0UGFuZWxDdHJsLmFkZE5ld0dyb3VwVG9Hcm91cGVkU2VsZWN0KClcXFwiPlxcbiAgICAgICAgICAgICAgYWRkXFxuICAgICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1sZy0xMiBjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGNsYXNzPVxcXCIgY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgRWRpdC9SZW1vdmUgb3B0aW9ucy9ncm91cHM6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcy1cXFwiY29sLWxnLTEyIGNvbC1tZC0xMiBjb2wtc20tMTIgY29sLXhzLTEyXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29udGFpbmVyXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IG5nLWlmPVxcXCJsZWZ0UGFuZWxDdHJsLmdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uLnJvd3MubGVuZ3RoID09PSAwXFxcIj5cXG4gICAgICAgICAgICAgIDxoNSBjbGFzcz1cXFwidGV4dC1jZW50ZXIgZ3JleVRleHRcXFwiPlxcbiAgICAgICAgICAgICAgICA8ZW0+XFxuICAgICAgICAgICAgICAgICAgLSBubyBvcHRpb24gOiBhZGQgbmV3IG9wdGlvbnMgLVxcbiAgICAgICAgICAgICAgICA8L2VtPlxcbiAgICAgICAgICAgICAgPC9oNT5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8dGFibGVcXG4gICAgICAgICAgICAgIG5nLWlmPVxcXCJsZWZ0UGFuZWxDdHJsLmdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uLnJvd3MubGVuZ3RoID4gMFxcXCJcXG4gICAgICAgICAgICAgIGNsYXNzPVxcXCJ0YWJsZSB0YWJsZS1zdHJpcGVkXFxcIj5cXG4gICAgICAgICAgICAgIDx0aGVhZD5cXG4gICAgICAgICAgICAgICAgPHRyPlxcbiAgICAgICAgICAgICAgICAgIDx0aCBzdC1yYXRpbz1cXFwiMjBcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJcXG4gICAgICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgICAgIDx0aCBzdC1yYXRpbz1cXFwiMjVcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBcXG4gICAgICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgICAgIDx0aCBzdC1yYXRpbz1cXFwiMzBcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uXFxuICAgICAgICAgICAgICAgICAgPC90aD5cXG4gICAgICAgICAgICAgICAgICA8dGggc3QtcmF0aW89XFxcIjI1XFxcIj48L3RoPlxcbiAgICAgICAgICAgICAgICA8L3RyPlxcbiAgICAgICAgICAgICAgICA8dHI+XFxuICAgICAgICAgICAgICAgICAgPHRoIHN0LXJhdGlvPVxcXCIyMFxcXCI+PC90aD5cXG4gICAgICAgICAgICAgICAgICA8dGggc3QtcmF0aW89XFxcIjI1XFxcIj48L3RoPlxcbiAgICAgICAgICAgICAgICAgIDx0aCBzdC1yYXRpbz1cXFwiMzBcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJncm91cGVkU2VsZWN0RmlsdGVyXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwic2VhcmNoIGZvciBvcHRpb25cXFwiXFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVxcXCJpbnB1dC1zbSBmb3JtLWNvbnRyb2xcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XFxcInNlYXJjaFxcXCIgLz5cXG4gICAgICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgICAgIDx0aCBzdC1yYXRpbz1cXFwiMjVcXFwiPjwvdGg+XFxuICAgICAgICAgICAgICAgIDwvdHI+XFxuICAgICAgICAgICAgICA8L3RoZWFkPlxcbiAgICAgICAgICAgICAgPHRib2R5PlxcbiAgICAgICAgICAgICAgPHRyXFxuICAgICAgICAgICAgICAgIG5nLXJlcGVhdD1cXFwiZ3JvdXBlZFNlbGVjdFJvdyBpbiBsZWZ0UGFuZWxDdHJsLmdyb3VwZWRTZWxlY3RSb3dDb2xsZWN0aW9uLnJvd3MgfCBmaWx0ZXI6Z3JvdXBlZFNlbGVjdEZpbHRlciBhcyBncm91cGVkU2VsZWN0Um93XFxcIj5cXG4gICAgICAgICAgICAgICAgPHRkIHN0LXJhdGlvPVxcXCIyMFxcXCI+XFxuICAgICAgICAgICAgICAgICAge3skaW5kZXh9fVxcbiAgICAgICAgICAgICAgICA8L3RkPlxcbiAgICAgICAgICAgICAgICA8dGQgc3QtcmF0aW89XFxcIjI1XFxcIj5cXG4gICAgICAgICAgICAgICAgICA8ZGl2IG5nLWlmPVxcXCJsZWZ0UGFuZWxDdHJsLmdyb3VwU2VsZWN0R3JvdXBDbGljay5zaG93TGlzdCA9PT0gdHJ1ZVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nLWlmPVxcXCJsZWZ0UGFuZWxDdHJsLkdyb3VwZWRTZWxlY3RHcm91cHMubGlzdC5sZW5ndGggPT09IDBcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cXFwidGV4dC1sZWZ0IG5vR3JvdXBUZXh0XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICAtIGFkZCBuZXcgZ3JvdXBzIC1cXG4gICAgICAgICAgICAgICAgICAgICAgPC9wPlxcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nLWlmPVxcXCJsZWZ0UGFuZWxDdHJsLkdyb3VwZWRTZWxlY3RHcm91cHMubGlzdC5sZW5ndGggPiAwXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgPG9sXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcIm55YS1icy1zZWxlY3QgY29sLXNtLTEyIGNvbC14cy0xMiBjb2wtbWQtMTIgY29sLWxnMTIgZWRpdEdyb3VwZWRTZWxlY3RueWFTZWxlY3RcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImdyb3VwZWRTZWxlY3RSb3cuZ3JvdXBcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XFxcIm1vZGVsR3JvdXBlZE9wdGlvbkdyb3VwZWRDaG9vc2VcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9XFxcImxlZnRQYW5lbEN0cmwuR3JvdXBlZFNlbGVjdEdyb3Vwcy5saXN0Lmxlbmd0aCA9PT0gMFxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cXFwibnlhLWJzLW9wdGlvblxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG55YS1icy1vcHRpb249XFxcIkdyb3VwZWRTZWxlY3RHcm91cCBpbiBsZWZ0UGFuZWxDdHJsLkdyb3VwZWRTZWxlY3RHcm91cHMubGlzdFxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVxcXCJHcm91cGVkU2VsZWN0R3JvdXBcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGE+XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7R3JvdXBlZFNlbGVjdEdyb3VwfX1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxcbiAgICAgICAgICAgICAgICAgICAgICA8L29sPlxcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgICAgPGRpdiBuZy1pZj1cXFwibGVmdFBhbmVsQ3RybC5ncm91cFNlbGVjdEdyb3VwQ2xpY2suc2hvd0xpc3QgPT09IGZhbHNlXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIHt7Z3JvdXBlZFNlbGVjdFJvdy5ncm91cH19XFxuICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgIDwvdGQ+XFxuICAgICAgICAgICAgICAgIDx0ZCBzdC1yYXRpbz1cXFwiMzBcXFwiPlxcbiAgICAgICAgICAgICAgICAgIHt7Z3JvdXBlZFNlbGVjdFJvdy5vcHRpb259fVxcbiAgICAgICAgICAgICAgICA8L3RkPlxcbiAgICAgICAgICAgICAgICA8dGQgc3QtcmF0aW89XFxcIjI1XFxcIj5cXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJwdWxsLXJpZ2h0XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgbmctY2xpY2s9XFxcImxlZnRQYW5lbEN0cmwudXBUaGlzR3JvdXBlZFNlbGVjdFJvdygkaW5kZXgpXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLWFycm93LXVwXFxcIj48L2k+XFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgbmctY2xpY2s9XFxcImxlZnRQYW5lbEN0cmwuZG93blRoaXNHcm91cGVkU2VsZWN0Um93KCRpbmRleClcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cXFwiZmEgZmEtYXJyb3ctZG93blxcXCI+PC9pPlxcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVxcXCJidG4gYnRuLXdhcm5pbmdcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgIG5nLWNsaWNrPVxcXCJsZWZ0UGFuZWxDdHJsLnNob3dHcm91cExpc3RUb0Nob29zZSgpXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLXBlbmNpbC1zcXVhcmUtb1xcXCI+PC9pPlxcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVxcXCJidG4gYnRuLWRhbmdlclxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgbmctY2xpY2s9XFxcImxlZnRQYW5lbEN0cmwucmVtb3ZlR3JvdXBlZFNlbGVjdFJvdygkaW5kZXgpXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLXRyYXNoLW9cXFwiPjwvaT5cXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICAgIDwvdHI+XFxuICAgICAgICAgICAgICA8L3Rib2R5PlxcbiAgICAgICAgICAgIDwvdGFibGU+XFxuICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJtYXJnaW5Ub3BGaXZlcGl4ZWxzXFxcIj48L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG5cXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgICBmb3I9XFxcIkRlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICAgIERlc2NyaXB0aW9uIDpcXG4gICAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seURlc2NpcHRpb25cXFwiXFxuICAgICAgICAgICAgICBpZD1cXFwiRGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiQWRkIC8gZWRpdCBkZXNjcmlwdGlvbiBoZXJlXFxcIj5cXG4gICAgICAgICAgPC9kaXY+XFxuXFx0XFx0XFx0XFx0PC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgPC9kaXY+XFxuICA8bGVmdC1wYW5lbC12YWxpZC1lZGl0LWZvb3RlciAvPlxcbjwvZGl2PlxcblwiXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0dyb3VwZWRTZWxlY3RDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5ncm91cGVkU2VsZWN0Q29udHJvbC50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSA0MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  196. /***/ },
  197. /* 41 */
  198. /***/ function(module, exports, __webpack_require__) {
  199. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_DATE_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelDateControlTemplate = __webpack_require__(42);\n\nvar _edaDragDropWayLeftpanelDateControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelDateControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_DATE_CONTROL_DIRECTIVE = 'leftPanelDateControl';\n\nfunction leftPanelDateControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelDateControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelDateControl.$inject = [];\n\nexports.default = leftPanelDateControl;\nexports.LEFT_PANEL_DATE_CONTROL_DIRECTIVE = LEFT_PANEL_DATE_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0RhdGVDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5kYXRlQ29udHJvbC5kaXJlY3RpdmUuanM/Yjg0NiJdLCJuYW1lcyI6WyJMRUZUX1BBTkVMX0RBVEVfQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxEYXRlQ29udHJvbCIsImRpcmVjdGl2ZSIsInJlc3RyaWN0IiwidGVtcGxhdGUiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLG9DQUFvQyxzQkFBMUM7O0FBRUEsU0FBU0Msb0JBQVQsR0FBZ0M7QUFDOUIsTUFBSUMsWUFBWTtBQUNkQyxjQUFXLEdBREc7QUFFZEM7QUFGYyxHQUFoQjtBQUlBLFNBQU9GLFNBQVA7QUFDRDs7QUFFREQscUJBQXFCSSxPQUFyQixHQUErQixFQUEvQjs7a0JBRWVKLG9CO1FBR2JELGlDLEdBQUFBLGlDIiwiZmlsZSI6IjQxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgbGVmdFBhbmVsRGF0ZUNvbnRyb2xUZW1wbGF0ZSBmcm9tICcuL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5kYXRlQ29udHJvbC50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgTEVGVF9QQU5FTF9EQVRFX0NPTlRST0xfRElSRUNUSVZFID0gJ2xlZnRQYW5lbERhdGVDb250cm9sJztcblxuZnVuY3Rpb24gbGVmdFBhbmVsRGF0ZUNvbnRyb2woKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxEYXRlQ29udHJvbFRlbXBsYXRlXG4gIH07XG4gIHJldHVybiBkaXJlY3RpdmU7XG59XG5cbmxlZnRQYW5lbERhdGVDb250cm9sLiRpbmplY3QgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbGVmdFBhbmVsRGF0ZUNvbnRyb2w7XG5cbmV4cG9ydCB7XG4gIExFRlRfUEFORUxfREFURV9DT05UUk9MX0RJUkVDVElWRVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvRGF0ZUNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmRhdGVDb250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  200. /***/ },
  201. /* 42 */
  202. /***/ function(module, exports) {
  203. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <label class=\\\"control-label greyText editPropertiesLabel\\\">\\n Date format :\\n </label>\\n <div class=\\\"\\\">\\n <ol\\n class=\\\"nya-bs-select col-sm-12 col-xs-12 col-md-12 col-lg12\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.datepickerPopup\\\"\\n id=\\\"dateformatSelect\\\">\\n <li\\n class=\\\"nya-bs-option\\\"\\n nya-bs-option=\\\"dateformat in leftPanelCtrl.demodt.formats\\\"\\n value=\\\"dateformat\\\">\\n <a>\\n {{dateformat}}\\n </a>\\n </li>\\n </ol>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextLabelUpdate\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Label text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyLabel\\\"\\n id=\\\"inputTextLabelUpdate\\\"\\n placeholder=\\\"Add / edit control label here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"\\\">\\n <label\\n for=\\\"RequiredUpdate\\\"\\n class=\\\"col-md-4 control-label greyText editPropertiesLabel\\\">\\n Required :\\n </label>\\n <div class=\\\"col-md-8\\\">\\n <div class=\\\"checkboxCssCorrection\\\">&nbsp;</div>\\n <input\\n type=\\\"checkbox\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyRequired\\\"\\n id=\\\"RequiredUpdate\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0RhdGVDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5kYXRlQ29udHJvbC50ZW1wbGF0ZS5odG1sPzAyYjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbVBBQW1QLHltQkFBeW1CLFlBQVksOGpDQUE4akMiLCJmaWxlIjoiNDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtZGVmYXVsdFxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cXFwiPjwvaT5cXG4gICAgICAgICAgJm5ic3A7XFxuICAgICAgICAgIEVkaXQgcHJvcGVydGllcyA6XFxuICAgICAgICA8L2g1PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgPGxhYmVsIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgIERhdGUgZm9ybWF0IDpcXG4gICAgPC9sYWJlbD5cXG4gICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICA8b2xcXG4gICAgICAgIGNsYXNzPVxcXCJueWEtYnMtc2VsZWN0IGNvbC1zbS0xMiBjb2wteHMtMTIgY29sLW1kLTEyIGNvbC1sZzEyXFxcIlxcbiAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmRhdGVwaWNrZXJQb3B1cFxcXCJcXG4gICAgICAgIGlkPVxcXCJkYXRlZm9ybWF0U2VsZWN0XFxcIj5cXG4gICAgICAgIDxsaVxcbiAgICAgICAgICBjbGFzcz1cXFwibnlhLWJzLW9wdGlvblxcXCJcXG4gICAgICAgICAgbnlhLWJzLW9wdGlvbj1cXFwiZGF0ZWZvcm1hdCBpbiBsZWZ0UGFuZWxDdHJsLmRlbW9kdC5mb3JtYXRzXFxcIlxcbiAgICAgICAgICB2YWx1ZT1cXFwiZGF0ZWZvcm1hdFxcXCI+XFxuICAgICAgICAgIDxhPlxcbiAgICAgICAgICAgIHt7ZGF0ZWZvcm1hdH19XFxuICAgICAgICAgIDwvYT5cXG4gICAgICAgIDwvbGk+XFxuICAgICAgPC9vbD5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiaW5wdXRUZXh0TGFiZWxVcGRhdGVcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCIgY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgTGFiZWwgdGV4dCA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCJcXG4gICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlMYWJlbFxcXCJcXG4gICAgICAgICAgICBpZD1cXFwiaW5wdXRUZXh0TGFiZWxVcGRhdGVcXFwiXFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgY29udHJvbCBsYWJlbCBoZXJlXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiUmVxdWlyZWRVcGRhdGVcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJjb2wtbWQtNCBjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBSZXF1aXJlZCA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLThcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjaGVja2JveENzc0NvcnJlY3Rpb25cXFwiPiZuYnNwOzwvZGl2PlxcbiAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICB0eXBlPVxcXCJjaGVja2JveFxcXCJcXG4gICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UmVxdWlyZWRcXFwiXFxuICAgICAgICAgICAgaWQ9XFxcIlJlcXVpcmVkVXBkYXRlXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiRGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICBEZXNjcmlwdGlvbiA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCJcXG4gICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlEZXNjaXB0aW9uXFxcIlxcbiAgICAgICAgICAgIGlkPVxcXCJEZXNjcmlwdGlvblVwZGF0ZVxcXCJcXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiQWRkIC8gZWRpdCBkZXNjcmlwdGlvbiBoZXJlXFxcIj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG4gIDxsZWZ0LXBhbmVsLXZhbGlkLWVkaXQtZm9vdGVyIC8+XFxuPC9kaXY+XFxuXCJcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvRGF0ZUNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmRhdGVDb250cm9sLnRlbXBsYXRlLmh0bWxcbi8vIG1vZHVsZSBpZCA9IDQyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  204. /***/ },
  205. /* 43 */
  206. /***/ function(module, exports, __webpack_require__) {
  207. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_CHECKBOX_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelCheckBoxControlTemplate = __webpack_require__(44);\n\nvar _edaDragDropWayLeftpanelCheckBoxControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelCheckBoxControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_CHECKBOX_CONTROL_DIRECTIVE = 'leftPanelCheckBoxControl';\n\nfunction leftPanelCheckBoxControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelCheckBoxControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelCheckBoxControl.$inject = [];\n\nexports.default = leftPanelCheckBoxControl;\nexports.LEFT_PANEL_CHECKBOX_CONTROL_DIRECTIVE = LEFT_PANEL_CHECKBOX_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0NoZWNrQm94Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuY2hlY2tCb3hDb250cm9sLmRpcmVjdGl2ZS5qcz9iZjFhIl0sIm5hbWVzIjpbIkxFRlRfUEFORUxfQ0hFQ0tCT1hfQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxDaGVja0JveENvbnRyb2wiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSx3Q0FBd0MsMEJBQTlDOztBQUVBLFNBQVNDLHdCQUFULEdBQW9DO0FBQ2xDLE1BQUlDLFlBQVk7QUFDZEMsY0FBVyxHQURHO0FBRWRDO0FBRmMsR0FBaEI7QUFJQSxTQUFPRixTQUFQO0FBQ0Q7O0FBRURELHlCQUF5QkksT0FBekIsR0FBbUMsRUFBbkM7O2tCQUVlSix3QjtRQUdiRCxxQyxHQUFBQSxxQyIsImZpbGUiOiI0My5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IGxlZnRQYW5lbENoZWNrQm94Q29udHJvbFRlbXBsYXRlIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmNoZWNrQm94Q29udHJvbC50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgTEVGVF9QQU5FTF9DSEVDS0JPWF9DT05UUk9MX0RJUkVDVElWRSA9ICdsZWZ0UGFuZWxDaGVja0JveENvbnRyb2wnO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxDaGVja0JveENvbnRyb2woKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxDaGVja0JveENvbnRyb2xUZW1wbGF0ZVxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xufVxuXG5sZWZ0UGFuZWxDaGVja0JveENvbnRyb2wuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxDaGVja0JveENvbnRyb2w7XG5cbmV4cG9ydCB7XG4gIExFRlRfUEFORUxfQ0hFQ0tCT1hfQ09OVFJPTF9ESVJFQ1RJVkVcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0NoZWNrQm94Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuY2hlY2tCb3hDb250cm9sLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  208. /***/ },
  209. /* 44 */
  210. /***/ function(module, exports) {
  211. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n \\t\\t\\t<div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"inputTextLabelUpdate\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Label text :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyLabel\\\"\\n id=\\\"inputTextLabelUpdate\\\"\\n placeholder=\\\"Add / edit control label here\\\">\\n </div>\\n \\t\\t\\t</div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n \\t\\t\\t<div class=\\\"\\\">\\n <label\\n for=\\\"RequiredUpdate\\\"\\n class=\\\"col-md-4 control-label greyText editPropertiesLabel\\\">\\n Required :\\n </label>\\n <div class=\\\"col-md-8\\\">\\n <div class=\\\"checkboxCssCorrection\\\">&nbsp;</div>\\n <input\\n type=\\\"checkbox\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyRequired\\\"\\n id=\\\"RequiredUpdate\\\">\\n </div>\\n \\t\\t\\t</div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n \\t\\t\\t<div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n \\t\\t\\t</div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0NoZWNrQm94Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuY2hlY2tCb3hDb250cm9sLnRlbXBsYXRlLmh0bWw/MzEwNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAsdW5DQUF1bkMiLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtZGVmYXVsdFxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cXFwiPjwvaT5cXG4gICAgICAgICAgJm5ic3A7XFxuICAgICAgICAgIEVkaXQgcHJvcGVydGllcyA6XFxuICAgICAgICA8L2g1PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICBcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgICBmb3I9XFxcImlucHV0VGV4dExhYmVsVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCIgY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgICBMYWJlbCB0ZXh0IDpcXG4gICAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seUxhYmVsXFxcIlxcbiAgICAgICAgICAgICAgaWQ9XFxcImlucHV0VGV4dExhYmVsVXBkYXRlXFxcIlxcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XFxcIkFkZCAvIGVkaXQgY29udHJvbCBsYWJlbCBoZXJlXFxcIj5cXG4gICAgICAgICAgPC9kaXY+XFxuICBcXHRcXHRcXHQ8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgXFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgPGxhYmVsXFxuICAgICAgICAgICAgZm9yPVxcXCJSZXF1aXJlZFVwZGF0ZVxcXCJcXG4gICAgICAgICAgICBjbGFzcz1cXFwiY29sLW1kLTQgY29udHJvbC1sYWJlbCBncmV5VGV4dCBlZGl0UHJvcGVydGllc0xhYmVsXFxcIj5cXG4gICAgICAgICAgICBSZXF1aXJlZCA6XFxuICAgICAgICAgIDwvbGFiZWw+XFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC04XFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjaGVja2JveENzc0NvcnJlY3Rpb25cXFwiPiZuYnNwOzwvZGl2PlxcbiAgICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgICAgdHlwZT1cXFwiY2hlY2tib3hcXFwiXFxuICAgICAgICAgICAgICBuZy1tb2RlbD1cXFwibGVmdFBhbmVsQ3RybC5wcm94eU1vZGVsLnRlbXBvcnlDb25maWcuZm9ybWx5UmVxdWlyZWRcXFwiXFxuICAgICAgICAgICAgICBpZD1cXFwiUmVxdWlyZWRVcGRhdGVcXFwiPlxcbiAgICAgICAgICA8L2Rpdj5cXG4gIFxcdFxcdFxcdDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWFyZ2luVG9wRml2ZXBpeGVsc1xcXCI+PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICBcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgICA8bGFiZWxcXG4gICAgICAgICAgICBmb3I9XFxcIkRlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICAgIGNsYXNzPVxcXCJjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgICAgIERlc2NyaXB0aW9uIDpcXG4gICAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiXFxcIj5cXG4gICAgICAgICAgICA8aW5wdXRcXG4gICAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgICBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwucHJveHlNb2RlbC50ZW1wb3J5Q29uZmlnLmZvcm1seURlc2NpcHRpb25cXFwiXFxuICAgICAgICAgICAgICBpZD1cXFwiRGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwiQWRkIC8gZWRpdCBkZXNjcmlwdGlvbiBoZXJlXFxcIj5cXG4gICAgICAgICAgPC9kaXY+XFxuICBcXHRcXHRcXHQ8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG4gIDxsZWZ0LXBhbmVsLXZhbGlkLWVkaXQtZm9vdGVyIC8+XFxuPC9kaXY+XFxuXCJcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9sZWZ0UGFuZWwvQ2hlY2tCb3hDb250cm9sL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5jaGVja0JveENvbnRyb2wudGVtcGxhdGUuaHRtbFxuLy8gbW9kdWxlIGlkID0gNDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  212. /***/ },
  213. /* 45 */
  214. /***/ function(module, exports, __webpack_require__) {
  215. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_BLANK_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelBlankControlTemplate = __webpack_require__(46);\n\nvar _edaDragDropWayLeftpanelBlankControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelBlankControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_BLANK_CONTROL_DIRECTIVE = 'leftPanelBlankControl';\n\nfunction leftPanelBlankControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelBlankControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelBlankControl.$inject = [];\n\nexports.default = leftPanelBlankControl;\nexports.LEFT_PANEL_BLANK_CONTROL_DIRECTIVE = LEFT_PANEL_BLANK_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0JsYW5rQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuYmxhbmtDb250cm9sLmRpcmVjdGl2ZS5qcz8xY2JmIl0sIm5hbWVzIjpbIkxFRlRfUEFORUxfQkxBTktfQ09OVFJPTF9ESVJFQ1RJVkUiLCJsZWZ0UGFuZWxCbGFua0NvbnRyb2wiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7Ozs7QUFFQSxJQUFNQSxxQ0FBcUMsdUJBQTNDOztBQUVBLFNBQVNDLHFCQUFULEdBQWlDO0FBQy9CLE1BQUlDLFlBQVk7QUFDZEMsY0FBVyxHQURHO0FBRWRDO0FBRmMsR0FBaEI7QUFJQSxTQUFPRixTQUFQO0FBQ0Q7O0FBRURELHNCQUFzQkksT0FBdEIsR0FBZ0MsRUFBaEM7O2tCQUVlSixxQjtRQUdiRCxrQyxHQUFBQSxrQyIsImZpbGUiOiI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsZWZ0UGFuZWxCbGFua0NvbnRyb2xUZW1wbGF0ZSBmcm9tICcuL2VkYURyYWdEcm9wV2F5LmxlZnRwYW5lbC5ibGFua0NvbnRyb2wudGVtcGxhdGUuaHRtbCc7XG5cbmNvbnN0IExFRlRfUEFORUxfQkxBTktfQ09OVFJPTF9ESVJFQ1RJVkUgPSAnbGVmdFBhbmVsQmxhbmtDb250cm9sJztcblxuZnVuY3Rpb24gbGVmdFBhbmVsQmxhbmtDb250cm9sKCkge1xuICBsZXQgZGlyZWN0aXZlID0ge1xuICAgIHJlc3RyaWN0IDogJ0UnLFxuICAgIHRlbXBsYXRlIDogbGVmdFBhbmVsQmxhbmtDb250cm9sVGVtcGxhdGVcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcbn1cblxubGVmdFBhbmVsQmxhbmtDb250cm9sLiRpbmplY3QgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbGVmdFBhbmVsQmxhbmtDb250cm9sO1xuXG5leHBvcnQge1xuICBMRUZUX1BBTkVMX0JMQU5LX0NPTlRST0xfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9CbGFua0NvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmJsYW5rQ29udHJvbC5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  216. /***/ },
  217. /* 46 */
  218. /***/ function(module, exports) {
  219. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp; \\n Edit :\\n </h5>\\n </div>\\n </div> \\n <div class=\\\"row\\\">\\n <div class=\\\"col-sm-12\\\">\\n <h5 class=\\\"text-center greyText\\\">\\n Column will be blank\\n </h5>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0JsYW5rQ29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuYmxhbmtDb250cm9sLnRlbXBsYXRlLmh0bWw/NGNiZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAiLCJmaWxlIjoiNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwicGFuZWwgcGFuZWwtZGVmYXVsdFxcXCI+XFxuICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIDxpIGNsYXNzPVxcXCJmYSBmYS1wZW5jaWwtc3F1YXJlLW9cXFwiPjwvaT5cXG4gICAgICAgICAgJm5ic3A7IFxcbiAgICAgICAgICBFZGl0IDpcXG4gICAgICAgIDwvaDU+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PiBcXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJjb2wtc20tMTJcXFwiPlxcbiAgICAgICAgPGg1IGNsYXNzPVxcXCJ0ZXh0LWNlbnRlciBncmV5VGV4dFxcXCI+XFxuICAgICAgICAgIENvbHVtbiB3aWxsIGJlIGJsYW5rXFxuICAgICAgICA8L2g1PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2PlxcbiAgPGxlZnQtcGFuZWwtdmFsaWQtZWRpdC1mb290ZXIgLz5cXG48L2Rpdj5cXG5cIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9CbGFua0NvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmJsYW5rQ29udHJvbC50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSA0NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  220. /***/ },
  221. /* 47 */
  222. /***/ function(module, exports, __webpack_require__) {
  223. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LEFT_PANEL_BASIC_SELECT_CONTROL_DIRECTIVE = undefined;\n\nvar _edaDragDropWayLeftpanelBasicSelectControlTemplate = __webpack_require__(48);\n\nvar _edaDragDropWayLeftpanelBasicSelectControlTemplate2 = _interopRequireDefault(_edaDragDropWayLeftpanelBasicSelectControlTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LEFT_PANEL_BASIC_SELECT_CONTROL_DIRECTIVE = 'leftPanelBasicSelectControl';\n\nfunction leftPanelBasicSelectControl() {\n var directive = {\n restrict: 'E',\n template: _edaDragDropWayLeftpanelBasicSelectControlTemplate2.default\n };\n return directive;\n}\n\nleftPanelBasicSelectControl.$inject = [];\n\nexports.default = leftPanelBasicSelectControl;\nexports.LEFT_PANEL_BASIC_SELECT_CONTROL_DIRECTIVE = LEFT_PANEL_BASIC_SELECT_CONTROL_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0Jhc2ljU2VsZWN0Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuYmFzaWNTZWxlY3RDb250cm9sLmRpcmVjdGl2ZS5qcz84YmNhIl0sIm5hbWVzIjpbIkxFRlRfUEFORUxfQkFTSUNfU0VMRUNUX0NPTlRST0xfRElSRUNUSVZFIiwibGVmdFBhbmVsQmFzaWNTZWxlY3RDb250cm9sIiwiZGlyZWN0aXZlIiwicmVzdHJpY3QiLCJ0ZW1wbGF0ZSIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7O0FBRUEsSUFBTUEsNENBQTRDLDZCQUFsRDs7QUFFQSxTQUFTQywyQkFBVCxHQUF1QztBQUNyQyxNQUFJQyxZQUFZO0FBQ2RDLGNBQVcsR0FERztBQUVkQztBQUZjLEdBQWhCO0FBSUEsU0FBT0YsU0FBUDtBQUNEOztBQUVERCw0QkFBNEJJLE9BQTVCLEdBQXNDLEVBQXRDOztrQkFFZUosMkI7UUFHYkQseUMsR0FBQUEseUMiLCJmaWxlIjoiNDcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbGVmdFBhbmVsQmFzaWNTZWxlY3RDb250cm9sVGVtcGxhdGUgZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuYmFzaWNTZWxlY3RDb250cm9sLnRlbXBsYXRlLmh0bWwnO1xuXG5jb25zdCBMRUZUX1BBTkVMX0JBU0lDX1NFTEVDVF9DT05UUk9MX0RJUkVDVElWRSA9ICdsZWZ0UGFuZWxCYXNpY1NlbGVjdENvbnRyb2wnO1xuXG5mdW5jdGlvbiBsZWZ0UGFuZWxCYXNpY1NlbGVjdENvbnRyb2woKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgcmVzdHJpY3QgOiAnRScsXG4gICAgdGVtcGxhdGUgOiBsZWZ0UGFuZWxCYXNpY1NlbGVjdENvbnRyb2xUZW1wbGF0ZVxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xufVxuXG5sZWZ0UGFuZWxCYXNpY1NlbGVjdENvbnRyb2wuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBsZWZ0UGFuZWxCYXNpY1NlbGVjdENvbnRyb2w7XG5cbmV4cG9ydCB7XG4gIExFRlRfUEFORUxfQkFTSUNfU0VMRUNUX0NPTlRST0xfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2xlZnRQYW5lbC9CYXNpY1NlbGVjdENvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkubGVmdHBhbmVsLmJhc2ljU2VsZWN0Q29udHJvbC5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  224. /***/ },
  225. /* 48 */
  226. /***/ function(module, exports) {
  227. eval("module.exports = \"<div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\">\\n <h5 class=\\\"greyText\\\">\\n <i class=\\\"fa fa-pencil-square-o\\\"></i>\\n &nbsp;\\n Edit properties :\\n </h5>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12\\\">\\n <label\\n for=\\\"basicSelectRowCollection\\\"\\n class=\\\" control-label greyText editPropertiesLabel\\\">\\n Add new options :\\n </label>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div>\\n <div class=\\\"form-group\\\">\\n <div class=\\\"col-sm-9 col-xs-9 col-md-9 col-lg-9\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n id=\\\"inputAddNewBasicOption\\\"\\n placeholder=\\\"add new option\\\"\\n ng-model=\\\"leftPanelCtrl.newOptionBasicSelect.saisie\\\">\\n </div>\\n <div class=\\\"col-sm-3 col-xs-3 col-md-3 col-lg-3\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.addNewOptionBasicSelect()\\\">\\n add\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-12 col-md-12\\\">\\n <label class=\\\" control-label greyText editPropertiesLabel\\\">\\n Edit/Remove options :\\n </label>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n <div class-\\\"col-lg-12 col-md-12 col-sm-12 col-xs-12\\\">\\n <div class=\\\"container\\\">\\n <div ng-if=\\\"leftPanelCtrl.basicSelectRowCollection.rows.length === 0\\\">\\n <h5 class=\\\"text-center greyText\\\">\\n <em>\\n - no option : add new options -\\n </em>\\n </h5>\\n </div>\\n <table\\n ng-if=\\\"leftPanelCtrl.basicSelectRowCollection.rows.length > 0\\\"\\n class=\\\"table table-striped\\\">\\n <thead>\\n <tr>\\n <th st-ratio=\\\"20\\\">\\n order\\n </th>\\n <th st-ratio=\\\"55\\\">\\n option\\n </th>\\n <th st-ratio=\\\"25\\\"></th>\\n </tr>\\n <tr>\\n <th st-ratio=\\\"20\\\"></th>\\n <th st-ratio=\\\"55\\\">\\n <input\\n ng-model=\\\"leftPanelCtrl.basicSelectFilter\\\"\\n placeholder=\\\"search for option\\\"\\n class=\\\"input-sm form-control\\\"\\n type=\\\"search\\\" />\\n </th>\\n <th st-ratio=\\\"25\\\"></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr ng-repeat=\\\"basicSelectRow in leftPanelCtrl.basicSelectRowCollection.rows | filter:basicSelectFilter as basicSelectRow\\\">\\n <td st-ratio=\\\"20\\\">\\n {{$index}}\\n </td>\\n <td st-ratio=\\\"55\\\">\\n {{basicSelectRow.option}}\\n </td>\\n <td st-ratio=\\\"25\\\">\\n <div class=\\\"pull-right\\\">\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.upThisRow($index)\\\">\\n <i class=\\\"fa fa-arrow-up\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-primary\\\"\\n ng-click=\\\"leftPanelCtrl.downThisRow($index)\\\">\\n <i class=\\\"fa fa-arrow-down\\\"></i>\\n </button>\\n <button\\n class=\\\"btn btn-danger\\\"\\n ng-click=\\\"leftPanelCtrl.removeRow($index)\\\">\\n <i class=\\\"fa fa-trash-o\\\"></i>\\n </button>\\n </div>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"marginTopFivepixels\\\"></div>\\n <div class=\\\"row\\\">\\n <div class=\\\"form-group\\\">\\n \\t<div class=\\\"col-md-12\\\">\\n <label\\n for=\\\"DescriptionUpdate\\\"\\n class=\\\"control-label greyText editPropertiesLabel\\\">\\n Description :\\n </label>\\n <div class=\\\"\\\">\\n <input\\n type=\\\"text\\\"\\n class=\\\"form-control\\\"\\n ng-model=\\\"leftPanelCtrl.proxyModel.temporyConfig.formlyDesciption\\\"\\n id=\\\"DescriptionUpdate\\\"\\n placeholder=\\\"Add / edit description here\\\">\\n </div>\\n \\t</div>\\n </div>\\n </div>\\n </div>\\n <left-panel-valid-edit-footer />\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0Jhc2ljU2VsZWN0Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuYmFzaWNTZWxlY3RDb250cm9sLnRlbXBsYXRlLmh0bWw/ZWI1OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtUEFBbVAscXlGQUFxeUYsUUFBUSx5RkFBeUYsdUJBQXVCIiwiZmlsZSI6IjQ4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXYgY2xhc3M9XFxcInBhbmVsIHBhbmVsLWRlZmF1bHRcXFwiPlxcbiAgPGRpdiBjbGFzcz1cXFwicGFuZWwtYm9keVxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLW1kLTEyXFxcIj5cXG4gICAgICAgIDxoNSBjbGFzcz1cXFwiZ3JleVRleHRcXFwiPlxcbiAgICAgICAgICA8aSBjbGFzcz1cXFwiZmEgZmEtcGVuY2lsLXNxdWFyZS1vXFxcIj48L2k+XFxuICAgICAgICAgICZuYnNwO1xcbiAgICAgICAgICBFZGl0IHByb3BlcnRpZXMgOlxcbiAgICAgICAgPC9oNT5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1sZy0xMiBjb2wtbWQtMTJcXFwiPlxcbiAgICAgICAgPGxhYmVsXFxuICAgICAgICAgIGZvcj1cXFwiYmFzaWNTZWxlY3RSb3dDb2xsZWN0aW9uXFxcIlxcbiAgICAgICAgICBjbGFzcz1cXFwiIGNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICAgIEFkZCBuZXcgb3B0aW9ucyA6XFxuICAgICAgICA8L2xhYmVsPlxcbiAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLXNtLTkgY29sLXhzLTkgY29sLW1kLTkgY29sLWxnLTlcXFwiPlxcbiAgICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCJcXG4gICAgICAgICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuICAgICAgICAgICAgICBpZD1cXFwiaW5wdXRBZGROZXdCYXNpY09wdGlvblxcXCJcXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVxcXCJhZGQgbmV3IG9wdGlvblxcXCJcXG4gICAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLm5ld09wdGlvbkJhc2ljU2VsZWN0LnNhaXNpZVxcXCI+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29sLXNtLTMgY29sLXhzLTMgY29sLW1kLTMgY29sLWxnLTNcXFwiPlxcbiAgICAgICAgICAgICAgPGJ1dHRvblxcbiAgICAgICAgICAgICAgICBjbGFzcz1cXFwiYnRuIGJ0bi1wcmltYXJ5XFxcIlxcbiAgICAgICAgICAgICAgICBuZy1jbGljaz1cXFwibGVmdFBhbmVsQ3RybC5hZGROZXdPcHRpb25CYXNpY1NlbGVjdCgpXFxcIj5cXG4gICAgICAgICAgICAgICAgYWRkXFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgIDxkaXYgY2xhc3M9XFxcImNvbC1sZy0xMiBjb2wtbWQtMTJcXFwiPlxcbiAgICAgICA8bGFiZWwgY2xhc3M9XFxcIiBjb250cm9sLWxhYmVsIGdyZXlUZXh0IGVkaXRQcm9wZXJ0aWVzTGFiZWxcXFwiPlxcbiAgICAgICAgIEVkaXQvUmVtb3ZlIG9wdGlvbnMgOlxcbiAgICAgICA8L2xhYmVsPlxcbiAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcy1cXFwiY29sLWxnLTEyIGNvbC1tZC0xMiBjb2wtc20tMTIgY29sLXhzLTEyXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29udGFpbmVyXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IG5nLWlmPVxcXCJsZWZ0UGFuZWxDdHJsLmJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbi5yb3dzLmxlbmd0aCA9PT0gMFxcXCI+XFxuICAgICAgICAgICAgICA8aDUgY2xhc3M9XFxcInRleHQtY2VudGVyIGdyZXlUZXh0XFxcIj5cXG4gICAgICAgICAgICAgICAgPGVtPlxcbiAgICAgICAgICAgICAgICAgIC0gbm8gb3B0aW9uIDogYWRkIG5ldyBvcHRpb25zIC1cXG4gICAgICAgICAgICAgICAgPC9lbT5cXG4gICAgICAgICAgICAgIDwvaDU+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPHRhYmxlXFxuICAgICAgICAgICAgICBuZy1pZj1cXFwibGVmdFBhbmVsQ3RybC5iYXNpY1NlbGVjdFJvd0NvbGxlY3Rpb24ucm93cy5sZW5ndGggPiAwXFxcIlxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcInRhYmxlIHRhYmxlLXN0cmlwZWRcXFwiPlxcbiAgICAgICAgICAgICAgPHRoZWFkPlxcbiAgICAgICAgICAgICAgPHRyPlxcbiAgICAgICAgICAgICAgICA8dGggc3QtcmF0aW89XFxcIjIwXFxcIj5cXG4gICAgICAgICAgICAgICAgICBvcmRlclxcbiAgICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgICA8dGggc3QtcmF0aW89XFxcIjU1XFxcIj5cXG4gICAgICAgICAgICAgICAgICBvcHRpb25cXG4gICAgICAgICAgICAgICAgPC90aD5cXG4gICAgICAgICAgICAgICAgPHRoIHN0LXJhdGlvPVxcXCIyNVxcXCI+PC90aD5cXG4gICAgICAgICAgICAgIDwvdHI+XFxuICAgICAgICAgICAgICA8dHI+XFxuICAgICAgICAgICAgICAgIDx0aCBzdC1yYXRpbz1cXFwiMjBcXFwiPjwvdGg+XFxuICAgICAgICAgICAgICAgIDx0aCBzdC1yYXRpbz1cXFwiNTVcXFwiPlxcbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgICAgICAgICAgbmctbW9kZWw9XFxcImxlZnRQYW5lbEN0cmwuYmFzaWNTZWxlY3RGaWx0ZXJcXFwiXFxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cXFwic2VhcmNoIGZvciBvcHRpb25cXFwiXFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cXFwiaW5wdXQtc20gZm9ybS1jb250cm9sXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cXFwic2VhcmNoXFxcIiAvPlxcbiAgICAgICAgICAgICAgICA8L3RoPlxcbiAgICAgICAgICAgICAgICA8dGggc3QtcmF0aW89XFxcIjI1XFxcIj48L3RoPlxcbiAgICAgICAgICAgICAgPC90cj5cXG4gICAgICAgICAgICAgIDwvdGhlYWQ+XFxuICAgICAgICAgICAgICA8dGJvZHk+XFxuICAgICAgICAgICAgICAgIDx0ciBuZy1yZXBlYXQ9XFxcImJhc2ljU2VsZWN0Um93IGluIGxlZnRQYW5lbEN0cmwuYmFzaWNTZWxlY3RSb3dDb2xsZWN0aW9uLnJvd3MgfCBmaWx0ZXI6YmFzaWNTZWxlY3RGaWx0ZXIgYXMgYmFzaWNTZWxlY3RSb3dcXFwiPlxcbiAgICAgICAgICAgICAgICAgIDx0ZCBzdC1yYXRpbz1cXFwiMjBcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAge3skaW5kZXh9fVxcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XFxuICAgICAgICAgICAgICAgICAgPHRkIHN0LXJhdGlvPVxcXCI1NVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICB7e2Jhc2ljU2VsZWN0Um93Lm9wdGlvbn19XFxuICAgICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICAgICAgICA8dGQgc3QtcmF0aW89XFxcIjI1XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInB1bGwtcmlnaHRcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICBuZy1jbGljaz1cXFwibGVmdFBhbmVsQ3RybC51cFRoaXNSb3coJGluZGV4KVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLWFycm93LXVwXFxcIj48L2k+XFxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICBuZy1jbGljaz1cXFwibGVmdFBhbmVsQ3RybC5kb3duVGhpc1JvdygkaW5kZXgpXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cXFwiZmEgZmEtYXJyb3ctZG93blxcXCI+PC9pPlxcbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVxcXCJidG4gYnRuLWRhbmdlclxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICBuZy1jbGljaz1cXFwibGVmdFBhbmVsQ3RybC5yZW1vdmVSb3coJGluZGV4KVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XFxcImZhIGZhLXRyYXNoLW9cXFwiPjwvaT5cXG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgICAgPC90ZD5cXG4gICAgICAgICAgICAgICAgPC90cj5cXG4gICAgICAgICAgICAgIDwvdGJvZHk+XFxuICAgICAgICAgICAgPC90YWJsZT5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1hcmdpblRvcEZpdmVwaXhlbHNcXFwiPjwvZGl2PlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgIFxcdDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCI+XFxuICAgICAgICAgICAgPGxhYmVsXFxuICAgICAgICAgICAgICBmb3I9XFxcIkRlc2NyaXB0aW9uVXBkYXRlXFxcIlxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcImNvbnRyb2wtbGFiZWwgZ3JleVRleHQgZWRpdFByb3BlcnRpZXNMYWJlbFxcXCI+XFxuICAgICAgICAgICAgICBEZXNjcmlwdGlvbiA6XFxuICAgICAgICAgICAgPC9sYWJlbD5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJcXFwiPlxcbiAgICAgICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgICAgIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuICAgICAgICAgICAgICAgIG5nLW1vZGVsPVxcXCJsZWZ0UGFuZWxDdHJsLnByb3h5TW9kZWwudGVtcG9yeUNvbmZpZy5mb3JtbHlEZXNjaXB0aW9uXFxcIlxcbiAgICAgICAgICAgICAgICBpZD1cXFwiRGVzY3JpcHRpb25VcGRhdGVcXFwiXFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVxcXCJBZGQgLyBlZGl0IGRlc2NyaXB0aW9uIGhlcmVcXFwiPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgXFx0PC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICA8bGVmdC1wYW5lbC12YWxpZC1lZGl0LWZvb3RlciAvPlxcbjwvZGl2PlxcblwiXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvbGVmdFBhbmVsL0Jhc2ljU2VsZWN0Q29udHJvbC9lZGFEcmFnRHJvcFdheS5sZWZ0cGFuZWwuYmFzaWNTZWxlY3RDb250cm9sLnRlbXBsYXRlLmh0bWxcbi8vIG1vZHVsZSBpZCA9IDQ4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  228. /***/ },
  229. /* 49 */
  230. /***/ function(module, exports, __webpack_require__) {
  231. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _edaDragDropWayFormlyProxyFormFieldManage = __webpack_require__(50);\n\nvar _edaDragDropWayFormlyProxyFormFieldManage2 = _interopRequireDefault(_edaDragDropWayFormlyProxyFormFieldManage);\n\nvar _edaDragDropWayFormlyProxyFormFieldManage3 = __webpack_require__(51);\n\nvar _edaDragDropWayFormlyProxyFormFieldManage4 = _interopRequireDefault(_edaDragDropWayFormlyProxyFormFieldManage3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar FORMLY_PROXY_MODULE = '';\n\nexports.default = angular.module(FORMLY_PROXY_MODULE, []).service(_edaDragDropWayFormlyProxyFormFieldManage.FORM_FIELD_MANAGE_SERVICE, _edaDragDropWayFormlyProxyFormFieldManage2.default).provider(_edaDragDropWayFormlyProxyFormFieldManage3.EASY_FORM_FORMLY_BINDING_MODEL_PROVIDER, _edaDragDropWayFormlyProxyFormFieldManage4.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZm9ybWx5UHJveHkvZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLm1vZHVsZS5qcz9kZmRmIl0sIm5hbWVzIjpbIkZPUk1MWV9QUk9YWV9NT0RVTEUiLCJhbmd1bGFyIiwibW9kdWxlIiwic2VydmljZSIsInByb3ZpZGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUlBOzs7Ozs7QUFNQSxJQUFNQSxzQkFBc0IsRUFBNUI7O2tCQUVlQyxRQUNFQyxNQURGLENBQ1NGLG1CQURULEVBQzhCLEVBRDlCLEVBRUVHLE9BRkYsMEhBR0VDLFFBSEYsd0kiLCJmaWxlIjoiNDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZm9ybUZpZWxkTWFuYWdlLCB7XG4gIEZPUk1fRklFTERfTUFOQUdFX1NFUlZJQ0Vcbn0gICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5mb3JtbHlQcm94eS5mb3JtRmllbGRNYW5hZ2Uuc2VydmljZSc7XG5cbmltcG9ydCBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMsIHtcbiAgRUFTWV9GT1JNX0ZPUk1MWV9CSU5ESU5HX01PREVMX1BST1ZJREVSXG59ICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLnByb3ZpZGVyJztcblxuXG5cbmNvbnN0IEZPUk1MWV9QUk9YWV9NT0RVTEUgPSAnJztcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuICAgICAgICAgICAgICAgIC5tb2R1bGUoRk9STUxZX1BST1hZX01PRFVMRSwgW10pXG4gICAgICAgICAgICAgICAgLnNlcnZpY2UoRk9STV9GSUVMRF9NQU5BR0VfU0VSVklDRSwgZm9ybUZpZWxkTWFuYWdlKVxuICAgICAgICAgICAgICAgIC5wcm92aWRlcihFQVNZX0ZPUk1fRk9STUxZX0JJTkRJTkdfTU9ERUxfUFJPVklERVIsIEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscyk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2Zvcm1seVByb3h5L2VkYURyYWdEcm9wV2F5LmZvcm1seVByb3h5LmZvcm1GaWVsZE1hbmFnZS5tb2R1bGUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  232. /***/ },
  233. /* 50 */
  234. /***/ function(module, exports) {
  235. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FORM_FIELD_MANAGE_SERVICE = 'formFieldManage';\n\nvar formFieldManage = function () {\n function formFieldManage(EasyFormGenFormlyBindingModels) {\n _classCallCheck(this, formFieldManage);\n\n this.EasyFormGenFormlyBindingModels = EasyFormGenFormlyBindingModels;\n this.init();\n }\n\n _createClass(formFieldManage, [{\n key: 'init',\n value: function init() {}\n\n /**\n * At initial state : configuration model will contain 1 line, since :\n * -> it is non sense to create a form without a single line (no line = no form at all)\n * -> so it is non sense to force user to add a first line\n *\n * PLEASE NOTE columns array contains objects that look like formly fields one\n */\n\n }, {\n key: 'initConfigurationEditFromScratch',\n value: function initConfigurationEditFromScratch(configurationModel, addStepWayProperties) {\n var configurationModelInit = this.EasyFormGenFormlyBindingModels.getEasyFormInitialStateConfigurationModel(addStepWayProperties);\n angular.copy(configurationModelInit, configurationModel);\n }\n\n /**\n * Get an configuration empty (no init line) then empty it with lines array provided in param\n * @param object - configurationModel [configuration model]\n * @param array - lines [an array : lines to apply to an empty configuration model]\n * @param bool - addStepWayProperties [description]\n * @return {object message} [give details on how it happened to caller]\n */\n\n }, {\n key: 'bindConfigurationLines',\n value: function bindConfigurationLines(configurationModel, lines, addStepWayProperties) {\n if (Object.prototype.toString.call(lines) === '[object Array]') {\n var configurationModelResult = this.EasyFormGenFormlyBindingModels.getEasyFormReloadConfigurationModel(addStepWayProperties);\n configurationModelResult.lines = [].concat(lines);\n angular.copy(configurationModelResult, configurationModel);\n return this.getMessageObject('configuration model is bound', 'lines are bound to configuration model.');\n } else {\n return this.getErrorObject('lines is not an array', 'Checks lines type, it is not an array.');\n }\n }\n\n /**\n * applyConfigurationToformlyModel :\n * - bind configuration model into formly field model\n * - reset dataModel (formlyfield may have changed so previous dataModel would be false)\n * @param configurationModel\n * @param formlyModel\n * @param formlyDataModel\n */\n\n }, {\n key: 'applyConfigurationToformlyModel',\n value: function applyConfigurationToformlyModel(configurationModel, formlyModel, formlyDataModel) {\n this.resetFormlyModel(formlyModel);\n this.resetDataModel(formlyDataModel);\n var lineNumber = configurationModel.lines.length;\n for (var i = 0; i < lineNumber; i++) {\n this.AddNColumnControl(formlyModel, configurationModel, i);\n }\n }\n }, {\n key: 'resetFormlyModel',\n value: function resetFormlyModel(formlyModel) {\n var resetformly = [];\n angular.copy(resetformly, formlyModel);\n }\n }, {\n key: 'AddNColumnControl',\n value: function AddNColumnControl(formlyModel, configurationModel, lineIndex) {\n var _this = this;\n\n var numberOfColumns = configurationModel.lines[lineIndex].columns.length;\n /**\n * push formly model\n * here : only className and empty fieldGroup (controls != header)\n * if header will be reset to set a template (at least we have now indexFormlyModel)\n */\n var rawFormlyModel = {\n className: 'row',\n fieldGroup: []\n };\n //get index formlyModel for this line :\n var indexFormlyModel = formlyModel.push(rawFormlyModel) - 1;\n\n // iterates through controls in the line\n configurationModel.lines[lineIndex].columns.forEach(function (column) {\n var controlTemplate = {};\n if (typeof controlTemplate !== 'undefined' &&\n // column.control.type !== 'header' &&\n // column.control.type !== 'subTitle' &&\n column.control.type !== 'none') {\n /**\n * controls : getFormlyControlTemplateForNcolumnLine()\n *\n * @PARAM numberOfColumns : integer to deduce cssClss to apply\n * @PARAM column.control.type : to add if needed specific properties (example : datepicker)\n */\n if (column.control.type === 'header' || column.control.type === 'subTitle') {\n var headerTextContent = column.control.templateOptions.description;\n controlTemplate.template = _this.EasyFormGenFormlyBindingModels.getHeaderTemplateForNcolumnLine(numberOfColumns, headerTextContent).template;\n controlTemplate.className = _this.EasyFormGenFormlyBindingModels.getRawHeaderTemplates().selectedClass;\n } else {\n controlTemplate = _this.EasyFormGenFormlyBindingModels.getFormlyControlTemplateForNcolumnLine(numberOfColumns, column.control.type);\n /**\n * NEED REFACTOR HERE\n * should bind properties dynamically\n *\n * TODO need to validate all controls (datepicker may not work)\n * need to refactor\n */\n controlTemplate.className = column.control.className;\n controlTemplate.type = column.control.type;\n controlTemplate.key = column.control.key;\n controlTemplate.templateOptions.type = column.control.templateOptions.type;\n controlTemplate.templateOptions.label = column.control.templateOptions.label;\n controlTemplate.templateOptions.required = column.control.templateOptions.required;\n controlTemplate.templateOptions.placeholder = column.control.templateOptions.placeholder;\n controlTemplate.templateOptions.description = column.control.templateOptions.description;\n controlTemplate.templateOptions.options = [].concat(column.control.templateOptions.options);\n\n if (typeof controlTemplate.templateOptions.datepickerPopup !== 'undefined') column.control.templateOptions.datepickerPopup = controlTemplate.templateOptions.datepickerPopup;\n }\n /**\n * popuplate properties\n */\n\n /**\n * push control into formly model in its group\n */\n\n /**\n * need to catch this random error\n */\n formlyModel[indexFormlyModel].fieldGroup.push(controlTemplate);\n }\n });\n }\n }, {\n key: 'isTemplateOptionDefined',\n value: function isTemplateOptionDefined(obj) {\n return typeof obj.templateOptions !== 'undefined' ? true : false;\n }\n }, {\n key: 'extractTemplateOptionLabel',\n value: function extractTemplateOptionLabel(obj) {\n return typeof obj.templateOptions !== 'undefined' ? typeof obj.templateOptions.label !== 'undefined' ? obj.templateOptions.label : '' : '';\n }\n }, {\n key: 'extractTemplateOptionDatepickerPopup',\n value: function extractTemplateOptionDatepickerPopup(obj) {\n return typeof obj.templateOptions !== 'undefined' ? typeof obj.templateOptions.datepickerPopup !== 'undefined' ? obj.templateOptions.datepickerPopup : '' : '';\n }\n }, {\n key: 'extractTemplateOptionRequired',\n value: function extractTemplateOptionRequired(obj) {\n return typeof obj.templateOptions !== 'undefined' ? typeof obj.templateOptions.required !== 'undefined' ? obj.templateOptions.required : '' : '';\n }\n //radio and select\n\n }, {\n key: 'extractTemplateOptionOptions',\n value: function extractTemplateOptionOptions(obj) {\n return typeof obj.templateOptions !== 'undefined' ? typeof obj.templateOptions.options !== 'undefined' ? obj.templateOptions.options : '' : '';\n }\n }, {\n key: 'extractTemplateOptionType',\n value: function extractTemplateOptionType(obj) {\n return typeof obj.subtype !== 'undefined' ? obj.subtype : '';\n }\n }, {\n key: 'extractTemplateOptionPlaceholder',\n value: function extractTemplateOptionPlaceholder(obj) {\n return typeof obj.templateOptions !== 'undefined' ? typeof obj.templateOptions.placeholder !== 'undefined' ? obj.templateOptions.placeholder : '' : '';\n }\n }, {\n key: 'extractTemplateOptionDescription',\n value: function extractTemplateOptionDescription(obj) {\n return typeof obj.templateOptions !== 'undefined' ? typeof obj.templateOptions.description !== 'undefined' ? obj.templateOptions.description : '' : '';\n }\n\n // formly model functions\n\n }, {\n key: 'resetDataModel',\n value: function resetDataModel(obj) {\n var emptyDataModel = {};\n angular.copy(emptyDataModel, obj);\n return true;\n }\n\n // custom errors\n\n }, {\n key: 'getErrorObject',\n value: function getErrorObject(errorTitle, errorMessage) {\n var messageObj = {\n noError: false,\n title: '',\n Message: ''\n };\n messageObj.noError = false;\n messageObj.title = errorTitle;\n messageObj.Message = errorMessage;\n return messageObj;\n }\n }, {\n key: 'getMessageObject',\n value: function getMessageObject(messageTitle, messageBody) {\n var messageObj = {\n noError: false,\n title: '',\n Message: ''\n };\n messageObj.noError = true;\n messageObj.title = messageTitle;\n messageObj.Message = messageBody;\n return messageObj;\n }\n }]);\n\n return formFieldManage;\n}();\n\nformFieldManage.$inject = ['EasyFormGenFormlyBindingModels'];\n\nexports.default = formFieldManage;\nexports.FORM_FIELD_MANAGE_SERVICE = FORM_FIELD_MANAGE_SERVICE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZm9ybWx5UHJveHkvZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLnNlcnZpY2UuanM/MTg3NyJdLCJuYW1lcyI6WyJGT1JNX0ZJRUxEX01BTkFHRV9TRVJWSUNFIiwiZm9ybUZpZWxkTWFuYWdlIiwiRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzIiwiaW5pdCIsImNvbmZpZ3VyYXRpb25Nb2RlbCIsImFkZFN0ZXBXYXlQcm9wZXJ0aWVzIiwiY29uZmlndXJhdGlvbk1vZGVsSW5pdCIsImdldEVhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsIiwiYW5ndWxhciIsImNvcHkiLCJsaW5lcyIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCIsImNvbmZpZ3VyYXRpb25Nb2RlbFJlc3VsdCIsImdldEVhc3lGb3JtUmVsb2FkQ29uZmlndXJhdGlvbk1vZGVsIiwiY29uY2F0IiwiZ2V0TWVzc2FnZU9iamVjdCIsImdldEVycm9yT2JqZWN0IiwiZm9ybWx5TW9kZWwiLCJmb3JtbHlEYXRhTW9kZWwiLCJyZXNldEZvcm1seU1vZGVsIiwicmVzZXREYXRhTW9kZWwiLCJsaW5lTnVtYmVyIiwibGVuZ3RoIiwiaSIsIkFkZE5Db2x1bW5Db250cm9sIiwicmVzZXRmb3JtbHkiLCJsaW5lSW5kZXgiLCJudW1iZXJPZkNvbHVtbnMiLCJjb2x1bW5zIiwicmF3Rm9ybWx5TW9kZWwiLCJjbGFzc05hbWUiLCJmaWVsZEdyb3VwIiwiaW5kZXhGb3JtbHlNb2RlbCIsInB1c2giLCJmb3JFYWNoIiwiY29sdW1uIiwiY29udHJvbFRlbXBsYXRlIiwiY29udHJvbCIsInR5cGUiLCJoZWFkZXJUZXh0Q29udGVudCIsInRlbXBsYXRlT3B0aW9ucyIsImRlc2NyaXB0aW9uIiwidGVtcGxhdGUiLCJnZXRIZWFkZXJUZW1wbGF0ZUZvck5jb2x1bW5MaW5lIiwiZ2V0UmF3SGVhZGVyVGVtcGxhdGVzIiwic2VsZWN0ZWRDbGFzcyIsImdldEZvcm1seUNvbnRyb2xUZW1wbGF0ZUZvck5jb2x1bW5MaW5lIiwia2V5IiwibGFiZWwiLCJyZXF1aXJlZCIsInBsYWNlaG9sZGVyIiwib3B0aW9ucyIsImRhdGVwaWNrZXJQb3B1cCIsIm9iaiIsInN1YnR5cGUiLCJlbXB0eURhdGFNb2RlbCIsImVycm9yVGl0bGUiLCJlcnJvck1lc3NhZ2UiLCJtZXNzYWdlT2JqIiwibm9FcnJvciIsInRpdGxlIiwiTWVzc2FnZSIsIm1lc3NhZ2VUaXRsZSIsIm1lc3NhZ2VCb2R5IiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQU1BLDRCQUE0QixpQkFBbEM7O0lBRU1DLGU7QUFFSiwyQkFBWUMsOEJBQVosRUFBNEM7QUFBQTs7QUFDMUMsU0FBS0EsOEJBQUwsR0FBc0NBLDhCQUF0QztBQUNBLFNBQUtDLElBQUw7QUFDRDs7OzsyQkFFTSxDQUVOOztBQUVEOzs7Ozs7Ozs7O3FEQU9pQ0Msa0IsRUFBb0JDLG9CLEVBQXNCO0FBQ3pFLFVBQUlDLHlCQUF5QixLQUFLSiw4QkFBTCxDQUFvQ0sseUNBQXBDLENBQThFRixvQkFBOUUsQ0FBN0I7QUFDQUcsY0FBUUMsSUFBUixDQUFhSCxzQkFBYixFQUFxQ0Ysa0JBQXJDO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7MkNBT3VCQSxrQixFQUFvQk0sSyxFQUFPTCxvQixFQUFxQjtBQUNyRSxVQUFJTSxPQUFPQyxTQUFQLENBQWlCQyxRQUFqQixDQUEwQkMsSUFBMUIsQ0FBK0JKLEtBQS9CLE1BQTBDLGdCQUE5QyxFQUFpRTtBQUMvRCxZQUFJSywyQkFBMkIsS0FBS2IsOEJBQUwsQ0FBb0NjLG1DQUFwQyxDQUF3RVgsb0JBQXhFLENBQS9CO0FBQ0FVLGlDQUF5QkwsS0FBekIsR0FBaUMsR0FBR08sTUFBSCxDQUFVUCxLQUFWLENBQWpDO0FBQ0FGLGdCQUFRQyxJQUFSLENBQWFNLHdCQUFiLEVBQXVDWCxrQkFB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QWM7QUFDaEJDLGlCQUFZLEtBREk7QUFFaEJDLGVBQVksRUFGSTtBQUdoQkMsaUJBQVk7QUFISSxPQUFsQjtBQUtBSCxpQkFBV0MsT0FBWCxHQUFzQixLQUF0QjtBQUNBRCxpQkFBV0UsS0FBWCxHQUFzQkosVUFBdEI7QUFDQUUsaUJBQVdHLE9BQVgsR0FBc0JKLFlBQXRCO0FBQ0EsYUFBT0MsVUFBUDtBQUNEOzs7cUNBRWdCSSxZLEVBQWNDLFcsRUFBWTtBQUN6QyxVQUFJTCxhQUFjO0FBQ2hCQyxpQkFBWSxLQURJO0FBRWhCQyxlQUFZLEVBRkk7QUFHaEJDLGlCQUFZO0FBSEksT0FBbEI7QUFLQUgsaUJBQVdDLE9BQVgsR0FBd0IsSUFBeEI7QUFDQUQsaUJBQVdFLEtBQVgsR0FBd0JFLFlBQXhCO0FBQ0FKLGlCQUFXRyxPQUFYLEdBQXdCRSxXQUF4QjtBQUNBLGFBQU9MLFVBQVA7QUFDRDs7Ozs7O0FBSUg1RCxnQkFBZ0JrRSxPQUFoQixHQUEwQixDQUN4QixnQ0FEd0IsQ0FBMUI7O2tCQUllbEUsZTtRQUdiRCx5QixHQUFBQSx5QiIsImZpbGUiOiI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEZPUk1fRklFTERfTUFOQUdFX1NFUlZJQ0UgPSAnZm9ybUZpZWxkTWFuYWdlJztcblxuY2xhc3MgZm9ybUZpZWxkTWFuYWdle1xuXG4gIGNvbnN0cnVjdG9yKEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscykge1xuICAgIHRoaXMuRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzID0gRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgaW5pdCgpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIEF0IGluaXRpYWwgc3RhdGUgOiBjb25maWd1cmF0aW9uIG1vZGVsIHdpbGwgY29udGFpbiAxIGxpbmUsIHNpbmNlIDpcbiAgICogICAgLT4gaXQgaXMgbm9uIHNlbnNlIHRvIGNyZWF0ZSBhIGZvcm0gd2l0aG91dCBhIHNpbmdsZSBsaW5lIChubyBsaW5lID0gbm8gZm9ybSBhdCBhbGwpXG4gICAqICAgIC0+IHNvIGl0IGlzIG5vbiBzZW5zZSB0byBmb3JjZSB1c2VyIHRvIGFkZCBhIGZpcnN0IGxpbmVcbiAgICpcbiAgICogIFBMRUFTRSBOT1RFIGNvbHVtbnMgYXJyYXkgY29udGFpbnMgb2JqZWN0cyB0aGF0IGxvb2sgbGlrZSBmb3JtbHkgZmllbGRzIG9uZVxuICAgKi9cbiAgaW5pdENvbmZpZ3VyYXRpb25FZGl0RnJvbVNjcmF0Y2goY29uZmlndXJhdGlvbk1vZGVsLCBhZGRTdGVwV2F5UHJvcGVydGllcykge1xuICAgIGxldCBjb25maWd1cmF0aW9uTW9kZWxJbml0ID0gdGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuZ2V0RWFzeUZvcm1Jbml0aWFsU3RhdGVDb25maWd1cmF0aW9uTW9kZWwoYWRkU3RlcFdheVByb3BlcnRpZXMpO1xuICAgIGFuZ3VsYXIuY29weShjb25maWd1cmF0aW9uTW9kZWxJbml0LCBjb25maWd1cmF0aW9uTW9kZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBjb25maWd1cmF0aW9uIGVtcHR5IChubyBpbml0IGxpbmUpIHRoZW4gZW1wdHkgaXQgd2l0aCBsaW5lcyBhcnJheSBwcm92aWRlZCBpbiBwYXJhbVxuICAgKiBAcGFyYW0gICBvYmplY3QgLSBjb25maWd1cmF0aW9uTW9kZWwgICBbY29uZmlndXJhdGlvbiBtb2RlbF1cbiAgICogQHBhcmFtICAgYXJyYXkgLSAgbGluZXMgICAgICAgICAgICAgICAgW2FuIGFycmF5IDogbGluZXMgdG8gYXBwbHkgdG8gYW4gZW1wdHkgY29uZmlndXJhdGlvbiBtb2RlbF1cbiAgICogQHBhcmFtICAgYm9vbCAtICAgYWRkU3RlcFdheVByb3BlcnRpZXMgW2Rlc2NyaXB0aW9uXVxuICAgKiBAcmV0dXJuIHtvYmplY3QgbWVzc2FnZX0gICAgICAgICAgICAgICBbZ2l2ZSBkZXRhaWxzIG9uIGhvdyBpdCBoYXBwZW5lZCB0byBjYWxsZXJdXG4gICAqL1xuICBiaW5kQ29uZmlndXJhdGlvbkxpbmVzKGNvbmZpZ3VyYXRpb25Nb2RlbCwgbGluZXMsIGFkZFN0ZXBXYXlQcm9wZXJ0aWVzKXtcbiAgICBpZiggT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGxpbmVzKSA9PT0gJ1tvYmplY3QgQXJyYXldJyApIHtcbiAgICAgIGxldCBjb25maWd1cmF0aW9uTW9kZWxSZXN1bHQgPSB0aGlzLkVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscy5nZXRFYXN5Rm9ybVJlbG9hZENvbmZpZ3VyYXRpb25Nb2RlbChhZGRTdGVwV2F5UHJvcGVydGllcyk7XG4gICAgICBjb25maWd1cmF0aW9uTW9kZWxSZXN1bHQubGluZXMgPSBbXS5jb25jYXQobGluZXMpO1xuICAgICAgYW5ndWxhci5jb3B5KGNvbmZpZ3VyYXRpb25Nb2RlbFJlc3VsdCwgY29uZmlndXJhdGlvbk1vZGVsKTtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2VPYmplY3QoJ2NvbmZpZ3VyYXRpb24gbW9kZWwgaXMgYm91bmQnLCdsaW5lcyBhcmUgYm91bmQgdG8gY29uZmlndXJhdGlvbiBtb2RlbC4nKTtcbiAgICB9ZWxzZXtcbiAgICAgIHJldHVybiB0aGlzLmdldEVycm9yT2JqZWN0KCdsaW5lcyBpcyBub3QgYW4gYXJyYXknLCAnQ2hlY2tzIGxpbmVzIHR5cGUsIGl0IGlzIG5vdCBhbiBhcnJheS4nKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qKlxuICAgKiBhcHBseUNvbmZpZ3VyYXRpb25Ub2Zvcm1seU1vZGVsIDpcbiAgICogIC0gYmluZCBjb25maWd1cmF0aW9uIG1vZGVsIGludG8gZm9ybWx5IGZpZWxkIG1vZGVsXG4gICAqICAtIHJlc2V0IGRhdGFNb2RlbCAoZm9ybWx5ZmllbGQgbWF5IGhhdmUgY2hhbmdlZCBzbyBwcmV2aW91cyBkYXRhTW9kZWwgd291bGQgYmUgZmFsc2UpXG4gICAqIEBwYXJhbSAgY29uZmlndXJhdGlvbk1vZGVsXG4gICAqIEBwYXJhbSAgZm9ybWx5TW9kZWxcbiAgICogQHBhcmFtICBmb3JtbHlEYXRhTW9kZWxcbiAgICovXG4gIGFwcGx5Q29uZmlndXJhdGlvblRvZm9ybWx5TW9kZWwoY29uZmlndXJhdGlvbk1vZGVsLCBmb3JtbHlNb2RlbCwgZm9ybWx5RGF0YU1vZGVsKXtcbiAgICB0aGlzLnJlc2V0Rm9ybWx5TW9kZWwoZm9ybWx5TW9kZWwpO1xuICAgIHRoaXMucmVzZXREYXRhTW9kZWwoZm9ybWx5RGF0YU1vZGVsKTtcbiAgICBsZXQgbGluZU51bWJlciA9IGNvbmZpZ3VyYXRpb25Nb2RlbC5saW5lcy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lTnVtYmVyOyBpKyspIHtcbiAgICAgIHRoaXMuQWRkTkNvbHVtbkNvbnRyb2woZm9ybWx5TW9kZWwsIGNvbmZpZ3VyYXRpb25Nb2RlbCwgaSk7XG4gICAgfVxuICB9XG5cblxuICByZXNldEZvcm1seU1vZGVsKGZvcm1seU1vZGVsKXtcbiAgICBsZXQgcmVzZXRmb3JtbHkgPSBbXTtcbiAgICBhbmd1bGFyLmNvcHkocmVzZXRmb3JtbHksIGZvcm1seU1vZGVsKTtcbiAgfVxuXG5cbiAgQWRkTkNvbHVtbkNvbnRyb2woZm9ybWx5TW9kZWwsIGNvbmZpZ3VyYXRpb25Nb2RlbCwgbGluZUluZGV4KXtcblxuICAgIGxldCBudW1iZXJPZkNvbHVtbnMgPSBjb25maWd1cmF0aW9uTW9kZWwubGluZXNbbGluZUluZGV4XS5jb2x1bW5zLmxlbmd0aDtcbiAgICAvKipcbiAgICAgKiBwdXNoIGZvcm1seSBtb2RlbFxuICAgICAqIGhlcmUgOiBvbmx5IGNsYXNzTmFtZSBhbmQgZW1wdHkgZmllbGRHcm91cCAoY29udHJvbHMgIT0gaGVhZGVyKVxuICAgICAqIGlmIGhlYWRlciB3aWxsIGJlIHJlc2V0IHRvIHNldCBhIHRlbXBsYXRlIChhdCBsZWFzdCB3ZSBoYXZlIG5vdyBpbmRleEZvcm1seU1vZGVsKVxuICAgICAqL1xuICAgIGxldCByYXdGb3JtbHlNb2RlbCA9IHtcbiAgICAgIGNsYXNzTmFtZSAgIDogJ3JvdycsXG4gICAgICBmaWVsZEdyb3VwICA6IFtdXG4gICAgfTtcbiAgICAvL2dldCBpbmRleCBmb3JtbHlNb2RlbCBmb3IgdGhpcyBsaW5lIDpcbiAgICBsZXQgaW5kZXhGb3JtbHlNb2RlbCA9ICBmb3JtbHlNb2RlbC5wdXNoKHJhd0Zvcm1seU1vZGVsKSAtIDEgO1xuXG4gICAgLy8gaXRlcmF0ZXMgdGhyb3VnaCBjb250cm9scyBpbiB0aGUgbGluZVxuICAgIGNvbmZpZ3VyYXRpb25Nb2RlbC5saW5lc1tsaW5lSW5kZXhdLmNvbHVtbnMuZm9yRWFjaCggKGNvbHVtbikgPT4ge1xuICAgICAgbGV0IGNvbnRyb2xUZW1wbGF0ZSA9IHt9O1xuICAgICAgaWYgKHR5cGVvZiBjb250cm9sVGVtcGxhdGUgICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgIC8vIGNvbHVtbi5jb250cm9sLnR5cGUgICAgICE9PSAnaGVhZGVyJyAgICAmJlxuICAgICAgICAgIC8vIGNvbHVtbi5jb250cm9sLnR5cGUgICAgICE9PSAnc3ViVGl0bGUnICAmJlxuICAgICAgICAgIGNvbHVtbi5jb250cm9sLnR5cGUgICAgICE9PSAnbm9uZScpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNvbnRyb2xzIDogZ2V0Rm9ybWx5Q29udHJvbFRlbXBsYXRlRm9yTmNvbHVtbkxpbmUoKVxuICAgICAgICAgKlxuICAgICAgICAgICogQFBBUkFNIG51bWJlck9mQ29sdW1ucyAgICAgICA6IGludGVnZXIgdG8gZGVkdWNlIGNzc0Nsc3MgdG8gYXBwbHlcbiAgICAgICAgICAqIEBQQVJBTSBjb2x1bW4uY29udHJvbC50eXBlICAgOiB0byBhZGQgaWYgbmVlZGVkIHNwZWNpZmljIHByb3BlcnRpZXMgKGV4YW1wbGUgOiBkYXRlcGlja2VyKVxuICAgICAgICAgICovXG4gICAgICAgIGlmKGNvbHVtbi5jb250cm9sLnR5cGUgID09PSAnaGVhZGVyJyB8fFxuICAgICAgICAgICAgY29sdW1uLmNvbnRyb2wudHlwZSAgPT09ICdzdWJUaXRsZScpe1xuICAgICAgICAgIGxldCBoZWFkZXJUZXh0Q29udGVudCAgICAgPSBjb2x1bW4uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb247XG4gICAgICAgICAgY29udHJvbFRlbXBsYXRlLnRlbXBsYXRlICA9IHRoaXMuRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzLmdldEhlYWRlclRlbXBsYXRlRm9yTmNvbHVtbkxpbmUobnVtYmVyT2ZDb2x1bW5zLCBoZWFkZXJUZXh0Q29udGVudCkudGVtcGxhdGU7XG4gICAgICAgICAgY29udHJvbFRlbXBsYXRlLmNsYXNzTmFtZSA9IHRoaXMuRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzLmdldFJhd0hlYWRlclRlbXBsYXRlcygpLnNlbGVjdGVkQ2xhc3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udHJvbFRlbXBsYXRlID0gdGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuZ2V0Rm9ybWx5Q29udHJvbFRlbXBsYXRlRm9yTmNvbHVtbkxpbmUobnVtYmVyT2ZDb2x1bW5zLCBjb2x1bW4uY29udHJvbC50eXBlKTtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAqIE5FRUQgUkVGQUNUT1IgSEVSRVxuICAgICAgICAgICogc2hvdWxkIGJpbmQgcHJvcGVydGllcyBkeW5hbWljYWxseVxuICAgICAgICAgICpcbiAgICAgICAgICAqIFRPRE8gbmVlZCB0byB2YWxpZGF0ZSBhbGwgY29udHJvbHMgKGRhdGVwaWNrZXIgbWF5IG5vdCB3b3JrKVxuICAgICAgICAgICogbmVlZCB0byByZWZhY3RvclxuICAgICAgICAgICovXG4gICAgICAgICAgY29udHJvbFRlbXBsYXRlLmNsYXNzTmFtZSAgICAgICAgICAgICAgICAgICA9IGNvbHVtbi5jb250cm9sLmNsYXNzTmFtZTtcbiAgICAgICAgICBjb250cm9sVGVtcGxhdGUudHlwZSAgICAgICAgICAgICAgICAgICAgICAgID0gY29sdW1uLmNvbnRyb2wudHlwZTtcbiAgICAgICAgICBjb250cm9sVGVtcGxhdGUua2V5ICAgICAgICAgICAgICAgICAgICAgICAgID0gY29sdW1uLmNvbnRyb2wua2V5O1xuICAgICAgICAgIGNvbnRyb2xUZW1wbGF0ZS50ZW1wbGF0ZU9wdGlvbnMudHlwZSAgICAgICAgPSBjb2x1bW4uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMudHlwZTtcbiAgICAgICAgICBjb250cm9sVGVtcGxhdGUudGVtcGxhdGVPcHRpb25zLmxhYmVsICAgICAgID0gY29sdW1uLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLmxhYmVsO1xuICAgICAgICAgIGNvbnRyb2xUZW1wbGF0ZS50ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWQgICAgPSBjb2x1bW4uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWQ7XG4gICAgICAgICAgY29udHJvbFRlbXBsYXRlLnRlbXBsYXRlT3B0aW9ucy5wbGFjZWhvbGRlciA9IGNvbHVtbi5jb250cm9sLnRlbXBsYXRlT3B0aW9ucy5wbGFjZWhvbGRlcjtcbiAgICAgICAgICBjb250cm9sVGVtcGxhdGUudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uID0gY29sdW1uLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uO1xuICAgICAgICAgIGNvbnRyb2xUZW1wbGF0ZS50ZW1wbGF0ZU9wdGlvbnMub3B0aW9ucyAgICAgPSBbXS5jb25jYXQoY29sdW1uLmNvbnRyb2wudGVtcGxhdGVPcHRpb25zLm9wdGlvbnMpO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBjb250cm9sVGVtcGxhdGUudGVtcGxhdGVPcHRpb25zLmRhdGVwaWNrZXJQb3B1cCAhPT0gJ3VuZGVmaW5lZCcpICBjb2x1bW4uY29udHJvbC50ZW1wbGF0ZU9wdGlvbnMuZGF0ZXBpY2tlclBvcHVwID0gY29udHJvbFRlbXBsYXRlLnRlbXBsYXRlT3B0aW9ucy5kYXRlcGlja2VyUG9wdXAgIDtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogcG9wdXBsYXRlIHByb3BlcnRpZXNcbiAgICAgICAgICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHB1c2ggY29udHJvbCBpbnRvIGZvcm1seSBtb2RlbCBpbiBpdHMgZ3JvdXBcbiAgICAgICAgICovXG5cbiAgICAgICAgICAvKipcbiAgICAgICAgICAqIG5lZWQgdG8gY2F0Y2ggdGhpcyByYW5kb20gZXJyb3JcbiAgICAgICAgICAqL1xuICAgICAgICAgIGZvcm1seU1vZGVsW2luZGV4Rm9ybWx5TW9kZWxdLmZpZWxkR3JvdXAucHVzaChjb250cm9sVGVtcGxhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGlzVGVtcGxhdGVPcHRpb25EZWZpbmVkKG9iail7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmoudGVtcGxhdGVPcHRpb25zICE9PSAndW5kZWZpbmVkJyA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGV4dHJhY3RUZW1wbGF0ZU9wdGlvbkxhYmVsKG9iail7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmoudGVtcGxhdGVPcHRpb25zICE9PSAndW5kZWZpbmVkJyA/ICh0eXBlb2Ygb2JqLnRlbXBsYXRlT3B0aW9ucy5sYWJlbCAhPT0gJ3VuZGVmaW5lZCc/IG9iai50ZW1wbGF0ZU9wdGlvbnMubGFiZWw6ICcnKSA6ICcnO1xuICB9XG5cbiAgZXh0cmFjdFRlbXBsYXRlT3B0aW9uRGF0ZXBpY2tlclBvcHVwKG9iail7XG4gICAgcmV0dXJuICB0eXBlb2Ygb2JqLnRlbXBsYXRlT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgPyAodHlwZW9mIG9iai50ZW1wbGF0ZU9wdGlvbnMuZGF0ZXBpY2tlclBvcHVwICE9PSAndW5kZWZpbmVkJz8gb2JqLnRlbXBsYXRlT3B0aW9ucy5kYXRlcGlja2VyUG9wdXA6ICcnKSA6ICcnO1xuICB9XG5cbiAgZXh0cmFjdFRlbXBsYXRlT3B0aW9uUmVxdWlyZWQob2JqKXtcbiAgICByZXR1cm4gIHR5cGVvZiBvYmoudGVtcGxhdGVPcHRpb25zICE9PSAndW5kZWZpbmVkJyA/ICh0eXBlb2Ygb2JqLnRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZCAhPT0gJ3VuZGVmaW5lZCc/IG9iai50ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWQ6ICcnKSA6ICcnO1xuICB9XG4gIC8vcmFkaW8gYW5kIHNlbGVjdFxuICBleHRyYWN0VGVtcGxhdGVPcHRpb25PcHRpb25zKG9iail7XG4gICAgcmV0dXJuICB0eXBlb2Ygb2JqLnRlbXBsYXRlT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgPyAodHlwZW9mIG9iai50ZW1wbGF0ZU9wdGlvbnMub3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCc/IG9iai50ZW1wbGF0ZU9wdGlvbnMub3B0aW9uczogJycpIDogJyc7XG4gIH1cblxuICBleHRyYWN0VGVtcGxhdGVPcHRpb25UeXBlKG9iail7XG4gICAgcmV0dXJuICB0eXBlb2Ygb2JqLnN1YnR5cGUgIT09ICd1bmRlZmluZWQnPyBvYmouc3VidHlwZTogJyc7XG4gIH1cblxuICBleHRyYWN0VGVtcGxhdGVPcHRpb25QbGFjZWhvbGRlcihvYmope1xuICAgIHJldHVybiAgdHlwZW9mIG9iai50ZW1wbGF0ZU9wdGlvbnMgIT09ICd1bmRlZmluZWQnID8gKHR5cGVvZiBvYmoudGVtcGxhdGVPcHRpb25zLnBsYWNlaG9sZGVyICE9PSAndW5kZWZpbmVkJz8gb2JqLnRlbXBsYXRlT3B0aW9ucy5wbGFjZWhvbGRlcjogJycpIDogJyc7XG4gIH1cblxuICBleHRyYWN0VGVtcGxhdGVPcHRpb25EZXNjcmlwdGlvbihvYmope1xuICAgIHJldHVybiAgdHlwZW9mIG9iai50ZW1wbGF0ZU9wdGlvbnMgIT09ICd1bmRlZmluZWQnID8gKHR5cGVvZiBvYmoudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJz8gb2JqLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbjogJycpIDogJyc7XG4gIH1cblxuICAvLyBmb3JtbHkgbW9kZWwgZnVuY3Rpb25zXG4gIHJlc2V0RGF0YU1vZGVsKG9iail7XG4gICAgbGV0IGVtcHR5RGF0YU1vZGVsID0ge307XG4gICAgYW5ndWxhci5jb3B5KGVtcHR5RGF0YU1vZGVsLCBvYmopO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gY3VzdG9tIGVycm9yc1xuICBnZXRFcnJvck9iamVjdChlcnJvclRpdGxlLCBlcnJvck1lc3NhZ2Upe1xuICAgIGxldCBtZXNzYWdlT2JqID0gIHtcbiAgICAgIG5vRXJyb3IgICA6IGZhbHNlLFxuICAgICAgdGl0bGUgICAgIDogJycsXG4gICAgICBNZXNzYWdlICAgOiAnJ1xuICAgIH07XG4gICAgbWVzc2FnZU9iai5ub0Vycm9yICA9IGZhbHNlO1xuICAgIG1lc3NhZ2VPYmoudGl0bGUgICAgPSBlcnJvclRpdGxlO1xuICAgIG1lc3NhZ2VPYmouTWVzc2FnZSAgPSBlcnJvck1lc3NhZ2U7XG4gICAgcmV0dXJuIG1lc3NhZ2VPYmo7XG4gIH1cblxuICBnZXRNZXNzYWdlT2JqZWN0KG1lc3NhZ2VUaXRsZSwgbWVzc2FnZUJvZHkpe1xuICAgIGxldCBtZXNzYWdlT2JqID0gIHtcbiAgICAgIG5vRXJyb3IgICA6IGZhbHNlLFxuICAgICAgdGl0bGUgICAgIDogJycsXG4gICAgICBNZXNzYWdlICAgOiAnJ1xuICAgIH07XG4gICAgbWVzc2FnZU9iai5ub0Vycm9yICAgID0gdHJ1ZTtcbiAgICBtZXNzYWdlT2JqLnRpdGxlICAgICAgPSBtZXNzYWdlVGl0bGU7XG4gICAgbWVzc2FnZU9iai5NZXNzYWdlICAgID0gbWVzc2FnZUJvZHk7XG4gICAgcmV0dXJuIG1lc3NhZ2VPYmo7XG4gIH1cblxufVxuXG5mb3JtRmllbGRNYW5hZ2UuJGluamVjdCA9IFtcbiAgJ0Vhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscydcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZvcm1GaWVsZE1hbmFnZTtcblxuZXhwb3J0IHtcbiAgRk9STV9GSUVMRF9NQU5BR0VfU0VSVklDRVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9mb3JtbHlQcm94eS9lZGFEcmFnRHJvcFdheS5mb3JtbHlQcm94eS5mb3JtRmllbGRNYW5hZ2Uuc2VydmljZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  236. /***/ },
  237. /* 51 */
  238. /***/ function(module, exports, __webpack_require__) {
  239. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EASY_FORM_FORMLY_BINDING_MODEL_PROVIDER = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _edaDragDropWayFormlyProxyFormFieldManageProvider = __webpack_require__(52);\n\nvar helpers = _interopRequireWildcard(_edaDragDropWayFormlyProxyFormFieldManageProvider);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar EASY_FORM_FORMLY_BINDING_MODEL_PROVIDER = 'EasyFormGenFormlyBindingModels';\n\nfunction EasyFormGenFormlyBindingModels() {\n\n var _easyFormListControls = helpers.initEasyFormListControls();\n var _easyFormEmptyConfigurationLineModel = helpers.initEasyFormEmptyConfigurationLineModel();\n var _emptyControlFieldModel = helpers.initEmptyControlFieldModel();\n var _easyFormInitialStateConfigurationModel = helpers.initEasyFormInitialStateConfigurationModel(_easyFormEmptyConfigurationLineModel);\n var _easyFormInitialStateConfigurationModelAddOnForStepWay = helpers.initEasyFormInitialStateConfigurationModelAddOnForStepWay();\n var _easyFormReloadConfigurationModel = helpers.initEasyFormReloadConfigurationModel();\n var _headerTemplates = helpers.initHeaderTemplates();\n var _formlyControlTemplates = helpers.initFormlyControlTemplates();\n var _particularControlProperties = helpers.initParticularControlProperties();\n\n this.getAllParticularControlProperties = getAllParticularControlProperties;\n this.addParticularControlProperties = addParticularControlProperties;\n this.getEasyFormListControls = getEasyFormListControls;\n this.addEasyFormControlToList = addEasyFormControlToList;\n this.getHeaderTemplates = getHeaderTemplates;\n this.addHeaderTemplateCssClass = addHeaderTemplateCssClass;\n this.getFormlyControlTemplate = getFormlyControlTemplate;\n this.addformlyControlTemplatesCssClass = addformlyControlTemplatesCssClass;\n this.setFormlyControlTemplate = setFormlyControlTemplate;\n this.$get = getFct;\n\n function getAllParticularControlProperties() {\n return _particularControlProperties;\n }\n\n function addParticularControlProperties(newParticularControlProperty) {\n // test object param has waited properties\n if ('controlType' in newParticularControlProperty && 'properties' in newParticularControlProperty) {\n var isAnUpdate = false;\n if (_particularControlProperties.length > 0) {\n _particularControlProperties.forEach(function (controlProp) {\n if (controlProp.controlType === newParticularControlProperty.controlType) {\n controlProp.properties = [].concat(newParticularControlProperty.properties);\n isAnUpdate = true;\n }\n });\n }\n if (!isAnUpdate) {\n _particularControlProperties.push(newParticularControlProperty);\n }\n }\n return _particularControlProperties;\n }\n\n function getEasyFormListControls() {\n return _easyFormListControls;\n }\n\n function addEasyFormControlToList(controlDeclaration) {\n if (typeof controlDeclaration !== 'undefined') {\n _easyFormListControls.controls.push(controlDeclaration);\n }\n }\n\n function getHeaderTemplates() {\n return _headerTemplates;\n }\n\n function addHeaderTemplateCssClass(cssClassToAdd) {\n if (typeof cssClassToAdd !== 'undefined') {\n _headerTemplates.cssClass.push(cssClassToAdd);\n }\n }\n\n function getFormlyControlTemplate() {\n return _formlyControlTemplates;\n }\n\n function addformlyControlTemplatesCssClass(cssClassToAdd) {\n if (typeof cssClassToAdd !== 'undefined') {\n _formlyControlTemplates.className.push(cssClassToAdd);\n }\n }\n\n function setFormlyControlTemplate(newFormlyControlTemplate) {\n if ('className' in newFormlyControlTemplate && 'type' in newFormlyControlTemplate && 'key' in newFormlyControlTemplate && 'templateOptions' in newFormlyControlTemplate) {\n _formlyControlTemplates = angular.copy(newFormlyControlTemplate);\n }\n return true;\n }\n\n getFct.$inject = [];\n function getFct() {\n var service = {\n getEasyFormListControls: getEasyFormListControlsFct,\n getEasyFormInitialStateConfigurationModel: getEasyFormInitialStateConfigurationModel,\n getEasyFormReloadConfigurationModel: getEasyFormReloadConfigurationModel,\n getEasyFormEmptyConfigurationLineModel: getEasyFormEmptyConfigurationLineModel,\n getEasyFormConfigurationEmptyControlModel: getEasyFormConfigurationEmptyControlModel,\n getRawHeaderTemplates: getRawHeaderTemplates,\n getHeaderTemplateForNcolumnLine: getHeaderTemplateForNcolumnLine,\n getRawFormlyControlTemplates: getRawFormlyControlTemplates,\n getFormlyControlTemplateForNcolumnLine: getFormlyControlTemplateForNcolumnLine\n };\n return service;\n\n function getEasyFormListControlsFct() {\n return _easyFormListControls;\n }\n\n function getEasyFormInitialStateConfigurationModel(addStepWayProperties) {\n var initialConfigurationModel = angular.copy(_easyFormInitialStateConfigurationModel);\n if (typeof addStepWayProperties !== 'undefined') {\n if (addStepWayProperties) {\n // add properties specific to step way\n angular.extend(initialConfigurationModel, _easyFormInitialStateConfigurationModelAddOnForStepWay);\n }\n }\n return initialConfigurationModel;\n }\n\n function getEasyFormReloadConfigurationModel(addStepWayProperties) {\n var initialConfigurationModel = angular.copy(_easyFormReloadConfigurationModel);\n if (typeof addStepWayProperties !== 'undefined') {\n if (addStepWayProperties) {\n // add properties specific to step way\n angular.extend(initialConfigurationModel, _easyFormInitialStateConfigurationModelAddOnForStepWay);\n }\n }\n return initialConfigurationModel;\n }\n\n function getEasyFormEmptyConfigurationLineModel() {\n return _easyFormEmptyConfigurationLineModel;\n }\n\n function getEasyFormConfigurationEmptyControlModel() {\n return _emptyControlFieldModel;\n }\n\n function getRawHeaderTemplates() {\n return _headerTemplates;\n }\n\n function getHeaderTemplateForNcolumnLine(nbColInLines, textContent) {\n if (typeof nbColInLines !== 'undefined' && typeof textContent !== 'undefined') {\n if (nbColInLines === parseInt(nbColInLines, 10)) {\n if (nbColInLines <= _headerTemplates.cssClass.length) {\n var headerToReturn = {};\n headerToReturn.className = _headerTemplates.cssClass[nbColInLines - 1];\n // header html property depends this property dont forget to set it before reading html property\n _headerTemplates.textContent = textContent;\n _headerTemplates.selectedClass = headerToReturn.className;\n headerToReturn.template = [_headerTemplates.simpleHtml1, textContent, _headerTemplates.simpleHtml2].join('');\n return headerToReturn;\n }\n }\n }\n }\n\n function getRawFormlyControlTemplates() {\n return _formlyControlTemplates;\n }\n\n function getFormlyControlTemplateForNcolumnLine(nbColInLines, controlType) {\n if (typeof nbColInLines !== 'undefined') {\n if (nbColInLines === parseInt(nbColInLines, 10)) {\n if (nbColInLines <= _formlyControlTemplates.className.length) {\n var _ret = function () {\n var controlToReturn = angular.copy(_formlyControlTemplates);\n controlToReturn.className = _formlyControlTemplates.className[nbColInLines - 1];\n // throw `it should have a bug upper line`;\n /* eslint no-console:0 */\n console.warn('it should have a bug upper line');\n /**\n * check controlType: it may require another particular property\n */\n if (typeof controlType !== 'undefined') {\n _particularControlProperties.forEach(function (controlProp) {\n if (controlProp.controlType === controlType) {\n /**\n * add all properties this controlType has\n * \n * NOTE : dot expression and bracket expression to access object property\n * http://www.ecma-international.org/ecma-262/5.1/#sec-11.2.1\n */\n controlProp.properties.forEach(function (aPropToAdd) {\n if (aPropToAdd.isRoot) controlToReturn[aPropToAdd.value] = '';\n if (aPropToAdd.isTemplateOptions) controlToReturn.templateOptions[aPropToAdd.value] = '';\n });\n }\n });\n }\n return {\n v: controlToReturn\n };\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n }\n }\n }\n }\n}\n\nEasyFormGenFormlyBindingModels.$inject = [];\n\nexports.default = EasyFormGenFormlyBindingModels;\nexports.EASY_FORM_FORMLY_BINDING_MODEL_PROVIDER = EASY_FORM_FORMLY_BINDING_MODEL_PROVIDER;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZm9ybWx5UHJveHkvZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLnByb3ZpZGVyLmpzPzAxNDgiXSwibmFtZXMiOlsiaGVscGVycyIsIkVBU1lfRk9STV9GT1JNTFlfQklORElOR19NT0RFTF9QUk9WSURFUiIsIkVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscyIsIl9lYXN5Rm9ybUxpc3RDb250cm9scyIsImluaXRFYXN5Rm9ybUxpc3RDb250cm9scyIsIl9lYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbCIsImluaXRFYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbCIsIl9lbXB0eUNvbnRyb2xGaWVsZE1vZGVsIiwiaW5pdEVtcHR5Q29udHJvbEZpZWxkTW9kZWwiLCJfZWFzeUZvcm1Jbml0aWFsU3RhdGVDb25maWd1cmF0aW9uTW9kZWwiLCJpbml0RWFzeUZvcm1Jbml0aWFsU3RhdGVDb25maWd1cmF0aW9uTW9kZWwiLCJfZWFzeUZvcm1Jbml0aWFsU3RhdGVDb25maWd1cmF0aW9uTW9kZWxBZGRPbkZvclN0ZXBXYXkiLCJpbml0RWFzeUZvcm1Jbml0aWFsU3RhdGVDb25maWd1cmF0aW9uTW9kZWxBZGRPbkZvclN0ZXBXYXkiLCJfZWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwiLCJpbml0RWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwiLCJfaGVhZGVyVGVtcGxhdGVzIiwiaW5pdEhlYWRlclRlbXBsYXRlcyIsIl9mb3JtbHlDb250cm9sVGVtcGxhdGVzIiwiaW5pdEZvcm1seUNvbnRyb2xUZW1wbGF0ZXMiLCJfcGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzIiwiaW5pdFBhcnRpY3VsYXJDb250cm9sUHJvcGVydGllcyIsImdldEFsbFBhcnRpY3VsYXJDb250cm9sUHJvcGVydGllcyIsImFkZFBhcnRpY3VsYXJDb250cm9sUHJvcGVydGllcyIsImdldEVhc3lGb3JtTGlzdENvbnRyb2xzIiwiYWRkRWFzeUZvcm1Db250cm9sVG9MaXN0IiwiZ2V0SGVhZGVyVGVtcGxhdGVzIiwiYWRkSGVhZGVyVGVtcGxhdGVDc3NDbGFzcyIsImdldEZvcm1seUNvbnRyb2xUZW1wbGF0ZSIsImFkZGZvcm1seUNvbnRyb2xUZW1wbGF0ZXNDc3NDbGFzcyIsInNldEZvcm1seUNvbnRyb2xUZW1wbGF0ZSIsIiRnZXQiLCJnZXRGY3QiLCJuZXdQYXJ0aWN1bGFyQ29udHJvbFByb3BlcnR5IiwiaXNBblVwZGF0ZSIsImxlbmd0aCIsImZvckVhY2giLCJjb250cm9sUHJvcCIsImNvbnRyb2xUeXBlIiwicHJvcGVydGllcyIsImNvbmNhdCIsInB1c2giLCJjb250cm9sRGVjbGFyYXRpb24iLCJjb250cm9scyIsImNzc0NsYXNzVG9BZGQiLCJjc3NDbGFzcyIsImNsYXNzTmFtZSIsIm5ld0Zvcm1seUNvbnRyb2xUZW1wbGF0ZSIsImFuZ3VsYXIiLCJjb3B5IiwiJGluamVjdCIsInNlcnZpY2UiLCJnZXRFYXN5Rm9ybUxpc3RDb250cm9sc0ZjdCIsImdldEVhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsIiwiZ2V0RWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwiLCJnZXRFYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbCIsImdldEVhc3lGb3JtQ29uZmlndXJhdGlvbkVtcHR5Q29udHJvbE1vZGVsIiwiZ2V0UmF3SGVhZGVyVGVtcGxhdGVzIiwiZ2V0SGVhZGVyVGVtcGxhdGVGb3JOY29sdW1uTGluZSIsImdldFJhd0Zvcm1seUNvbnRyb2xUZW1wbGF0ZXMiLCJnZXRGb3JtbHlDb250cm9sVGVtcGxhdGVGb3JOY29sdW1uTGluZSIsImFkZFN0ZXBXYXlQcm9wZXJ0aWVzIiwiaW5pdGlhbENvbmZpZ3VyYXRpb25Nb2RlbCIsImV4dGVuZCIsIm5iQ29sSW5MaW5lcyIsInRleHRDb250ZW50IiwicGFyc2VJbnQiLCJoZWFkZXJUb1JldHVybiIsInNlbGVjdGVkQ2xhc3MiLCJ0ZW1wbGF0ZSIsInNpbXBsZUh0bWwxIiwic2ltcGxlSHRtbDIiLCJqb2luIiwiY29udHJvbFRvUmV0dXJuIiwiY29uc29sZSIsIndhcm4iLCJhUHJvcFRvQWRkIiwiaXNSb290IiwidmFsdWUiLCJpc1RlbXBsYXRlT3B0aW9ucyIsInRlbXBsYXRlT3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0lBQVlBLE87Ozs7QUFFWixJQUFNQywwQ0FBMEMsZ0NBQWhEOztBQUVBLFNBQVNDLDhCQUFULEdBQXlDOztBQUV2QyxNQUFJQyx3QkFBMERILFFBQVFJLHdCQUFSLEVBQTlEO0FBQ0EsTUFBSUMsdUNBQTBETCxRQUFRTSx1Q0FBUixFQUE5RDtBQUNBLE1BQUlDLDBCQUEwRFAsUUFBUVEsMEJBQVIsRUFBOUQ7QUFDQSxNQUFJQywwQ0FBMERULFFBQVFVLDBDQUFSLENBQW1ETCxvQ0FBbkQsQ0FBOUQ7QUFDQSxNQUFJTSx5REFBMERYLFFBQVFZLHlEQUFSLEVBQTlEO0FBQ0EsTUFBSUMsb0NBQTBEYixRQUFRYyxvQ0FBUixFQUE5RDtBQUNBLE1BQUlDLG1CQUEwRGYsUUFBUWdCLG1CQUFSLEVBQTlEO0FBQ0EsTUFBSUMsMEJBQTBEakIsUUFBUWtCLDBCQUFSLEVBQTlEO0FBQ0EsTUFBSUMsK0JBQTBEbkIsUUFBUW9CLCtCQUFSLEVBQTlEOztBQUVBLE9BQUtDLGlDQUFMLEdBQThEQSxpQ0FBOUQ7QUFDQSxPQUFLQyw4QkFBTCxHQUE4REEsOEJBQTlEO0FBQ0EsT0FBS0MsdUJBQUwsR0FBOERBLHVCQUE5RDtBQUNBLE9BQUtDLHdCQUFMLEdBQThEQSx3QkFBOUQ7QUFDQSxPQUFLQyxrQkFBTCxHQUE4REEsa0JBQTlEO0FBQ0EsT0FBS0MseUJBQUwsR0FBOERBLHlCQUE5RDtBQUNBLE9BQUtDLHdCQUFMLEdBQThEQSx3QkFBOUQ7QUFDQSxPQUFLQyxpQ0FBTCxHQUE4REEsaUNBQTlEO0FBQ0Es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QUFDRDtBQUFBLG1CQUFPTDtBQUFQO0FBekI2RDs7QUFBQTtBQTBCOUQ7QUFDRjtBQUNGO0FBQ0Y7QUFHSjtBQUdGOztBQUdEdEUsK0JBQStCK0MsT0FBL0IsR0FBeUMsRUFBekM7O2tCQUVlL0MsOEI7UUFHYkQsdUMsR0FBQUEsdUMiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBoZWxwZXJzIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLnByb3ZpZGVyLmhlbHBlcnMnO1xuXG5jb25zdCBFQVNZX0ZPUk1fRk9STUxZX0JJTkRJTkdfTU9ERUxfUFJPVklERVIgPSAnRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzJztcblxuZnVuY3Rpb24gRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzKCl7XG5cbiAgbGV0IF9lYXN5Rm9ybUxpc3RDb250cm9scyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPVx0aGVscGVycy5pbml0RWFzeUZvcm1MaXN0Q29udHJvbHMoKTtcbiAgbGV0IF9lYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbCAgICAgICAgICAgICAgICAgICAgPSBoZWxwZXJzLmluaXRFYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbCgpO1xuICBsZXQgX2VtcHR5Q29udHJvbEZpZWxkTW9kZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGhlbHBlcnMuaW5pdEVtcHR5Q29udHJvbEZpZWxkTW9kZWwoKTtcbiAgbGV0IF9lYXN5Rm9ybUluaXRpYWxTdGF0ZUNvbmZpZ3VyYXRpb25Nb2RlbCAgICAgICAgICAgICAgICAgPSBoZWxwZXJzLmluaXRFYXN5Rm9ybUluaXRpYWxTdGF0ZUNvbmZpZ3VyYXRpb25Nb2RlbChfZWFzeUZvcm1FbXB0eUNvbmZpZ3VyYXRpb25MaW5lTW9kZWwpO1xuICBsZXQgX2Vhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsQWRkT25Gb3JTdGVwV2F5ICA9IGhlbHBlcnMuaW5pdEVhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsQWRkT25Gb3JTdGVwV2F5KCk7XG4gIGxldCBfZWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwgICAgICAgICAgICAgICAgICAgICAgID0gaGVscGVycy5pbml0RWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwoKTtcbiAgbGV0IF9oZWFkZXJUZW1wbGF0ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBoZWxwZXJzLmluaXRIZWFkZXJUZW1wbGF0ZXMoKTsgXG4gIGxldCBfZm9ybWx5Q29udHJvbFRlbXBsYXRlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaGVscGVycy5pbml0Rm9ybWx5Q29udHJvbFRlbXBsYXRlcygpOyAgXG4gIGxldCBfcGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaGVscGVycy5pbml0UGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzKCk7ICBcbiAgXG4gIHRoaXMuZ2V0QWxsUGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgID0gZ2V0QWxsUGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzO1xuICB0aGlzLmFkZFBhcnRpY3VsYXJDb250cm9sUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZFBhcnRpY3VsYXJDb250cm9sUHJvcGVydGllcztcbiAgdGhpcy5nZXRFYXN5Rm9ybUxpc3RDb250cm9scyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBnZXRFYXN5Rm9ybUxpc3RDb250cm9scztcbiAgdGhpcy5hZGRFYXN5Rm9ybUNvbnRyb2xUb0xpc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhZGRFYXN5Rm9ybUNvbnRyb2xUb0xpc3Q7XG4gIHRoaXMuZ2V0SGVhZGVyVGVtcGxhdGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0SGVhZGVyVGVtcGxhdGVzO1xuICB0aGlzLmFkZEhlYWRlclRlbXBsYXRlQ3NzQ2xhc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGFkZEhlYWRlclRlbXBsYXRlQ3NzQ2xhc3M7XG4gIHRoaXMuZ2V0Rm9ybWx5Q29udHJvbFRlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0Rm9ybWx5Q29udHJvbFRlbXBsYXRlO1xuICB0aGlzLmFkZGZvcm1seUNvbnRyb2xUZW1wbGF0ZXNDc3NDbGFzcyAgICAgICAgICAgICAgICAgICAgICA9IGFkZGZvcm1seUNvbnRyb2xUZW1wbGF0ZXNDc3NDbGFzcztcbiAgdGhpcy5zZXRGb3JtbHlDb250cm9sVGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzZXRGb3JtbHlDb250cm9sVGVtcGxhdGU7XG4gIHRoaXMuJGdldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0RmN0O1xuICBcbiAgZnVuY3Rpb24gZ2V0QWxsUGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzKCl7XG4gICAgcmV0dXJuIF9wYXJ0aWN1bGFyQ29udHJvbFByb3BlcnRpZXM7XG4gIH0gICAgXG4gICAgXG4gIGZ1bmN0aW9uIGFkZFBhcnRpY3VsYXJDb250cm9sUHJvcGVydGllcyhuZXdQYXJ0aWN1bGFyQ29udHJvbFByb3BlcnR5KXtcbiAgICAvLyB0ZXN0IG9iamVjdCBwYXJhbSBoYXMgd2FpdGVkIHByb3BlcnRpZXNcbiAgICBpZiAoKCdjb250cm9sVHlwZScgXHRpbiBuZXdQYXJ0aWN1bGFyQ29udHJvbFByb3BlcnR5KSAmJlxuICAgICAgICAoJ3Byb3BlcnRpZXMnIFx0aW4gbmV3UGFydGljdWxhckNvbnRyb2xQcm9wZXJ0eSkpIHtcbiAgICAgIGxldCBpc0FuVXBkYXRlID0gZmFsc2U7XG4gICAgICBpZiAoIF9wYXJ0aWN1bGFyQ29udHJvbFByb3BlcnRpZXMubGVuZ3RoID4gMCApIHtcbiAgICAgICAgX3BhcnRpY3VsYXJDb250cm9sUHJvcGVydGllcy5mb3JFYWNoKGZ1bmN0aW9uKGNvbnRyb2xQcm9wKXtcbiAgICAgICAgICBpZiAoY29udHJvbFByb3AuY29udHJvbFR5cGUgPT09IG5ld1BhcnRpY3VsYXJDb250cm9sUHJvcGVydHkuY29udHJvbFR5cGUpIHtcbiAgICAgICAgICAgIGNvbnRyb2xQcm9wLnByb3BlcnRpZXMgPSBbXS5jb25jYXQobmV3UGFydGljdWxhckNvbnRyb2xQcm9wZXJ0eS5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIGlzQW5VcGRhdGUgPSB0cnVlO1xuICAgICAgICAgIH1cdFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNBblVwZGF0ZSkge1xuICAgICAgICBfcGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzLnB1c2gobmV3UGFydGljdWxhckNvbnRyb2xQcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBfcGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzO1x0XHRcdFxuICB9ICBcblxuICBmdW5jdGlvbiBnZXRFYXN5Rm9ybUxpc3RDb250cm9scygpIHtcbiAgICByZXR1cm4gX2Vhc3lGb3JtTGlzdENvbnRyb2xzO1xuICB9XG4gXG4gIGZ1bmN0aW9uIGFkZEVhc3lGb3JtQ29udHJvbFRvTGlzdChjb250cm9sRGVjbGFyYXRpb24pIHtcbiAgICBpZiAodHlwZW9mIGNvbnRyb2xEZWNsYXJhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpe1xuICAgICAgX2Vhc3lGb3JtTGlzdENvbnRyb2xzLmNvbnRyb2xzLnB1c2goY29udHJvbERlY2xhcmF0aW9uKTtcbiAgICB9XG4gIH1cbiAgXG4gIGZ1bmN0aW9uIGdldEhlYWRlclRlbXBsYXRlcygpIHtcbiAgICByZXR1cm4gX2hlYWRlclRlbXBsYXRlcztcbiAgfVxuICBcbiAgZnVuY3Rpb24gYWRkSGVhZGVyVGVtcGxhdGVDc3NDbGFzcyhjc3NDbGFzc1RvQWRkKXtcbiAgICBpZiAodHlwZW9mIGNzc0NsYXNzVG9BZGQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBfaGVhZGVyVGVtcGxhdGVzLmNzc0NsYXNzLnB1c2goY3NzQ2xhc3NUb0FkZCk7XG4gICAgfVxuICB9XG4gIFxuICBmdW5jdGlvbiBnZXRGb3JtbHlDb250cm9sVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIF9mb3JtbHlDb250cm9sVGVtcGxhdGVzO1xuICB9XG4gIFxuICBmdW5jdGlvbiBhZGRmb3JtbHlDb250cm9sVGVtcGxhdGVzQ3NzQ2xhc3MoY3NzQ2xhc3NUb0FkZCl7XG4gICAgaWYgKHR5cGVvZiBjc3NDbGFzc1RvQWRkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgX2Zvcm1seUNvbnRyb2xUZW1wbGF0ZXMuY2xhc3NOYW1lLnB1c2goY3NzQ2xhc3NUb0FkZCk7XG4gICAgfVxuICB9ICBcbiAgXG4gIGZ1bmN0aW9uIHNldEZvcm1seUNvbnRyb2xUZW1wbGF0ZShuZXdGb3JtbHlDb250cm9sVGVtcGxhdGUpIHtcbiAgICBpZiAoKCdjbGFzc05hbWUnXHRcdFx0XHRpbiBuZXdGb3JtbHlDb250cm9sVGVtcGxhdGUpICYmXG4gICAgICAgICgndHlwZScgXHRcdFx0XHRcdFx0aW4gbmV3Rm9ybWx5Q29udHJvbFRlbXBsYXRlKSAmJlxuICAgICAgICAoJ2tleScgXHRcdFx0XHRcdFx0XHRpbiBuZXdGb3JtbHlDb250cm9sVGVtcGxhdGUpICYmXG4gICAgICAgICgndGVtcGxhdGVPcHRpb25zJykgaW4gbmV3Rm9ybWx5Q29udHJvbFRlbXBsYXRlKSB7XG4gICAgICBfZm9ybWx5Q29udHJvbFRlbXBsYXRlcyA9IGFuZ3VsYXIuY29weShuZXdGb3JtbHlDb250cm9sVGVtcGxhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAgXG4gIFxuICBnZXRGY3QuJGluamVjdCA9IFtdO1xuICBmdW5jdGlvbiBnZXRGY3QoKXtcbiAgICBsZXQgc2VydmljZSA9IHtcbiAgICAgIGdldEVhc3lGb3JtTGlzdENvbnRyb2xzICAgICAgICAgICAgICAgICAgIDogZ2V0RWFzeUZvcm1MaXN0Q29udHJvbHNGY3QsXG4gICAgICBnZXRFYXN5Rm9ybUluaXRpYWxTdGF0ZUNvbmZpZ3VyYXRpb25Nb2RlbCA6IGdldEVhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsLFxuICAgICAgZ2V0RWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwgICAgICAgOiBnZXRFYXN5Rm9ybVJlbG9hZENvbmZpZ3VyYXRpb25Nb2RlbCxcbiAgICAgIGdldEVhc3lGb3JtRW1wdHlDb25maWd1cmF0aW9uTGluZU1vZGVsICAgIDogZ2V0RWFzeUZvcm1FbXB0eUNvbmZpZ3VyYXRpb25MaW5lTW9kZWwsXG4gICAgICBnZXRFYXN5Rm9ybUNvbmZpZ3VyYXRpb25FbXB0eUNvbnRyb2xNb2RlbCA6IGdldEVhc3lGb3JtQ29uZmlndXJhdGlvbkVtcHR5Q29udHJvbE1vZGVsLFxuICAgICAgZ2V0UmF3SGVhZGVyVGVtcGxhdGVzICAgICAgICAgICAgICAgICAgICAgOiBnZXRSYXdIZWFkZXJUZW1wbGF0ZXMsXG4gICAgICBnZXRIZWFkZXJUZW1wbGF0ZUZvck5jb2x1bW5MaW5lICAgICAgICAgICA6IGdldEhlYWRlclRlbXBsYXRlRm9yTmNvbHVtbkxpbmUsXG4gICAgICBnZXRSYXdGb3JtbHlDb250cm9sVGVtcGxhdGVzICAgICAgICAgICAgICA6IGdldFJhd0Zvcm1seUNvbnRyb2xUZW1wbGF0ZXMsXG4gICAgICBnZXRGb3JtbHlDb250cm9sVGVtcGxhdGVGb3JOY29sdW1uTGluZSAgICA6IGdldEZvcm1seUNvbnRyb2xUZW1wbGF0ZUZvck5jb2x1bW5MaW5lXG4gICAgfTtcbiAgICByZXR1cm4gc2VydmljZTtcbiAgICBcbiAgICBmdW5jdGlvbiBnZXRFYXN5Rm9ybUxpc3RDb250cm9sc0ZjdCgpIHtcbiAgICAgIHJldHVybiBfZWFzeUZvcm1MaXN0Q29udHJvbHM7XG4gICAgfVxuICAgIFxuICAgIGZ1bmN0aW9uIGdldEVhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsKGFkZFN0ZXBXYXlQcm9wZXJ0aWVzKSB7XG4gICAgICBsZXQgaW5pdGlhbENvbmZpZ3VyYXRpb25Nb2RlbCA9IGFuZ3VsYXIuY29weShfZWFzeUZvcm1Jbml0aWFsU3RhdGVDb25maWd1cmF0aW9uTW9kZWwpO1xuICAgICAgaWYgKHR5cGVvZiBhZGRTdGVwV2F5UHJvcGVydGllcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaWYgKGFkZFN0ZXBXYXlQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgIC8vIGFkZCBwcm9wZXJ0aWVzIHNwZWNpZmljIHRvIHN0ZXAgd2F5XG4gICAgICAgICAgYW5ndWxhci5leHRlbmQoaW5pdGlhbENvbmZpZ3VyYXRpb25Nb2RlbCwgX2Vhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsQWRkT25Gb3JTdGVwV2F5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGluaXRpYWxDb25maWd1cmF0aW9uTW9kZWw7ICAgICAgXG4gICAgfVxuICAgIFxuICAgIGZ1bmN0aW9uIGdldEVhc3lGb3JtUmVsb2FkQ29uZmlndXJhdGlvbk1vZGVsKGFkZFN0ZXBXYXlQcm9wZXJ0aWVzKSB7XG4gICAgICBsZXQgaW5pdGlhbENvbmZpZ3VyYXRpb25Nb2RlbCA9IGFuZ3VsYXIuY29weShfZWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwpO1xuICAgICAgaWYgKHR5cGVvZiBhZGRTdGVwV2F5UHJvcGVydGllcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaWYgKGFkZFN0ZXBXYXlQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgLy8gYWRkIHByb3BlcnRpZXMgc3BlY2lmaWMgdG8gc3RlcCB3YXlcbiAgICAgICAgICBhbmd1bGFyLmV4dGVuZChpbml0aWFsQ29uZmlndXJhdGlvbk1vZGVsLCBfZWFzeUZvcm1Jbml0aWFsU3RhdGVDb25maWd1cmF0aW9uTW9kZWxBZGRPbkZvclN0ZXBXYXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5pdGlhbENvbmZpZ3VyYXRpb25Nb2RlbDsgICAgICBcbiAgICB9XG4gICAgXG4gICAgZnVuY3Rpb24gZ2V0RWFzeUZvcm1FbXB0eUNvbmZpZ3VyYXRpb25MaW5lTW9kZWwoKSB7XG4gICAgICByZXR1cm4gX2Vhc3lGb3JtRW1wdHlDb25maWd1cmF0aW9uTGluZU1vZGVsOyAgICAgIFxuICAgIH1cbiAgICBcbiAgICBmdW5jdGlvbiBnZXRFYXN5Rm9ybUNvbmZpZ3VyYXRpb25FbXB0eUNvbnRyb2xNb2RlbCgpIHtcbiAgICAgIHJldHVybiBfZW1wdHlDb250cm9sRmllbGRNb2RlbDsgICAgICBcbiAgICB9XG4gICAgXG4gICAgZnVuY3Rpb24gZ2V0UmF3SGVhZGVyVGVtcGxhdGVzKCkge1xuICAgICAgcmV0dXJuIF9oZWFkZXJUZW1wbGF0ZXM7XG4gICAgfVxuICAgIFxuICAgIGZ1bmN0aW9uIGdldEhlYWRlclRlbXBsYXRlRm9yTmNvbHVtbkxpbmUobmJDb2xJbkxpbmVzLCB0ZXh0Q29udGVudCkge1xuICAgICAgaWYgKHR5cGVvZiBuYkNvbEluTGluZXMgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgdHlwZW9mIHRleHRDb250ZW50IFx0IT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChuYkNvbEluTGluZXMgPT09IHBhcnNlSW50KG5iQ29sSW5MaW5lcywgMTApKSB7XG4gICAgICAgICAgaWYgKG5iQ29sSW5MaW5lcyA8PSAgX2hlYWRlclRlbXBsYXRlcy5jc3NDbGFzcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGxldCBoZWFkZXJUb1JldHVybiAgICAgICAgPSB7fTtcbiAgICAgICAgICAgIGhlYWRlclRvUmV0dXJuLmNsYXNzTmFtZSAgPSBfaGVhZGVyVGVtcGxhdGVzLmNzc0NsYXNzW25iQ29sSW5MaW5lcyAtIDFdO1xuICAgICAgICAgICAgLy8gaGVhZGVyIGh0bWwgcHJvcGVydHkgZGVwZW5kcyB0aGlzIHByb3BlcnR5IGRvbnQgZm9yZ2V0IHRvIHNldCBpdCBiZWZvcmUgcmVhZGluZyBodG1sIHByb3BlcnR5XG4gICAgICAgICAgICBfaGVhZGVyVGVtcGxhdGVzLnRleHRDb250ZW50ID0gdGV4dENvbnRlbnQ7XG4gICAgICAgICAgICBfaGVhZGVyVGVtcGxhdGVzLnNlbGVjdGVkQ2xhc3MgPSBoZWFkZXJUb1JldHVybi5jbGFzc05hbWU7XG4gICAgICAgICAgICBoZWFkZXJUb1JldHVybi50ZW1wbGF0ZSA9IFtcbiAgICAgICAgICAgICAgX2hlYWRlclRlbXBsYXRlcy5zaW1wbGVIdG1sMSxcbiAgICAgICAgICAgICAgdGV4dENvbnRlbnQsXG4gICAgICAgICAgICAgIF9oZWFkZXJUZW1wbGF0ZXMuc2ltcGxlSHRtbDJcbiAgICAgICAgICAgIF0uam9pbignJyk7XG4gICAgICAgICAgICByZXR1cm4gaGVhZGVyVG9SZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9ICAgICAgXG4gICAgfVxuICAgIFxuICAgIGZ1bmN0aW9uIGdldFJhd0Zvcm1seUNvbnRyb2xUZW1wbGF0ZXMoKSB7XG4gICAgICByZXR1cm4gX2Zvcm1seUNvbnRyb2xUZW1wbGF0ZXM7XG4gICAgfSBcbiAgICBcbiAgICBcbiAgICBmdW5jdGlvbiBnZXRGb3JtbHlDb250cm9sVGVtcGxhdGVGb3JOY29sdW1uTGluZShuYkNvbEluTGluZXMsIGNvbnRyb2xUeXBlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbmJDb2xJbkxpbmVzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGlmIChuYkNvbEluTGluZXMgPT09IHBhcnNlSW50KG5iQ29sSW5MaW5lcywgMTApKSB7XG4gICAgICAgICAgICBpZiAobmJDb2xJbkxpbmVzIDw9ICBfZm9ybWx5Q29udHJvbFRlbXBsYXRlcy5jbGFzc05hbWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGxldCBjb250cm9sVG9SZXR1cm4gICAgICAgPSBhbmd1bGFyLmNvcHkoX2Zvcm1seUNvbnRyb2xUZW1wbGF0ZXMpO1xuICAgICAgICAgICAgICBjb250cm9sVG9SZXR1cm4uY2xhc3NOYW1lID0gX2Zvcm1seUNvbnRyb2xUZW1wbGF0ZXMuY2xhc3NOYW1lW25iQ29sSW5MaW5lcyAtIDFdO1xuICAgICAgICAgICAgICAvLyB0aHJvdyBgaXQgc2hvdWxkIGhhdmUgYSBidWcgdXBwZXIgbGluZWA7XG4gICAgICAgICAgICAgIC8qIGVzbGludCBuby1jb25zb2xlOjAgKi9cbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBpdCBzaG91bGQgaGF2ZSBhIGJ1ZyB1cHBlciBsaW5lYCk7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBjaGVjayBjb250cm9sVHlwZTogaXQgbWF5IHJlcXVpcmUgYW5vdGhlciBwYXJ0aWN1bGFyIHByb3BlcnR5XG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2xUeXBlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIF9wYXJ0aWN1bGFyQ29udHJvbFByb3BlcnRpZXMuZm9yRWFjaCgoY29udHJvbFByb3ApPT57XG4gICAgICAgICAgICAgICAgICBpZiAoY29udHJvbFByb3AuY29udHJvbFR5cGUgPT09IGNvbnRyb2xUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBhZGQgYWxsIHByb3BlcnRpZXMgdGhpcyBjb250cm9sVHlwZSBoYXNcbiAgICAgICAgICAgICAgICAgICAgICogXG4gICAgICAgICAgICAgICAgICAgICAqIE5PVEUgOiBkb3QgZXhwcmVzc2lvbiBhbmQgYnJhY2tldCBleHByZXNzaW9uIHRvIGFjY2VzcyBvYmplY3QgcHJvcGVydHlcbiAgICAgICAgICAgICAgICAgICAgICogaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzUuMS8jc2VjLTExLjIuMVxuICAgICAgICAgICAgICAgICAgICAgKi9cdFx0XHRcdFx0XHRcdFx0XHRcdFxuICAgICAgICAgICAgICAgICAgICBjb250cm9sUHJvcC5wcm9wZXJ0aWVzLmZvckVhY2goKGFQcm9wVG9BZGQpPT57XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGFQcm9wVG9BZGQuaXNSb290KSBjb250cm9sVG9SZXR1cm5bYVByb3BUb0FkZC52YWx1ZV0gPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYVByb3BUb0FkZC5pc1RlbXBsYXRlT3B0aW9ucykgY29udHJvbFRvUmV0dXJuLnRlbXBsYXRlT3B0aW9uc1thUHJvcFRvQWRkLnZhbHVlXSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cdFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBjb250cm9sVG9SZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9ICAgICAgIFxuICAgIFxuICAgIFxuICB9XG4gIFxuICBcbn1cblxuXG5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHM7XG5cbmV4cG9ydCB7XG4gIEVBU1lfRk9STV9GT1JNTFlfQklORElOR19NT0RFTF9QUk9WSURFUlxufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZm9ybWx5UHJveHkvZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLnByb3ZpZGVyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  240. /***/ },
  241. /* 52 */
  242. /***/ function(module, exports) {
  243. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar initEasyFormListControls = exports.initEasyFormListControls = function initEasyFormListControls() {\n return {\n controls: [],\n selectedControl: 'none',\n temporyConfig: {\n selectedControl: 'none',\n formlyLabel: 'label',\n formlyRequired: false,\n formlyDesciption: '',\n formlyPlaceholder: '',\n formlyOptions: []\n }\n };\n};\n\nvar initEasyFormEmptyConfigurationLineModel = exports.initEasyFormEmptyConfigurationLineModel = function initEasyFormEmptyConfigurationLineModel() {\n return {\n line: 1,\n activeColumn: 1,\n columns: [{\n numColumn: 1,\n exist: true,\n control: {\n type: 'none',\n key: 'none'\n }\n }]\n };\n};\n\nvar initEmptyControlFieldModel = exports.initEmptyControlFieldModel = function initEmptyControlFieldModel() {\n return {\n 'control': {\n 'type': 'none',\n 'key': 'none'\n }\n };\n};\n\nvar initEasyFormInitialStateConfigurationModel = exports.initEasyFormInitialStateConfigurationModel = function initEasyFormInitialStateConfigurationModel(_easyFormEmptyConfigurationLineModel) {\n // commun all easy form generator ways\n return {\n submitButtonText: 'submit',\n cancelButtonText: 'cancel',\n lines: [].concat(_easyFormEmptyConfigurationLineModel)\n };\n};\n\nvar initEasyFormInitialStateConfigurationModelAddOnForStepWay = exports.initEasyFormInitialStateConfigurationModelAddOnForStepWay = function initEasyFormInitialStateConfigurationModelAddOnForStepWay() {\n // specific easy form generator — step way — (not drag and drop way), needed for wizard management\n return {\n activeLine: 1,\n listConfigStep: ['init', 'first', 'second', 'third'],\n stepIndicators: [true, false, false, false],\n configStepCounter: 0\n };\n};\n\nvar initEasyFormReloadConfigurationModel = exports.initEasyFormReloadConfigurationModel = function initEasyFormReloadConfigurationModel() {\n var reloadConfigModel = initEasyFormInitialStateConfigurationModel();\n reloadConfigModel.lines = [];\n return reloadConfigModel;\n};\n\n// can't use arrow function here -> 'this' would be bound to caller rather than expected current returned object... \nvar initHeaderTemplates = exports.initHeaderTemplates = function initHeaderTemplates() {\n var headerTemplate = {\n cssClass: ['col-xs-12', 'col-xs-6', 'col-xs-4'],\n textContent: '',\n html_part1: [' <div class=\"'].join(''),\n selectedClass: '',\n html_part2: ['\">', ' <h2 class=\"text-center\">'].join(''),\n html_part3: this.textContent,\n html_part4: [' <h2>', ' <hr/>', ' </div>'].join(''),\n simpleHtml1: ['<h2 class=\"text-center\">'].join(''),\n simpleHtml2: [' <h2>', ' <hr/>'].join('')\n };\n return headerTemplate;\n};\n\nvar initFormlyControlTemplates = exports.initFormlyControlTemplates = function initFormlyControlTemplates() {\n return {\n className: ['col-xs-12', 'col-xs-6', 'col-xs-4'],\n type: '',\n key: '',\n templateOptions: {\n type: '',\n label: '',\n required: '',\n placeholder: '',\n description: '',\n options: ''\n }\n };\n};\n\nvar initParticularControlProperties = exports.initParticularControlProperties = function initParticularControlProperties() {\n return [{\n controlType: 'datepicker',\n properties: [{\n isRoot: false,\n isTemplateOptions: true,\n value: 'datepickerPopup'\n }]\n }];\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZm9ybWx5UHJveHkvZWRhRHJhZ0Ryb3BXYXkuZm9ybWx5UHJveHkuZm9ybUZpZWxkTWFuYWdlLnByb3ZpZGVyLmhlbHBlcnMuanM/MDgyMiJdLCJuYW1lcyI6WyJpbml0RWFzeUZvcm1MaXN0Q29udHJvbHMiLCJjb250cm9scyIsInNlbGVjdGVkQ29udHJvbCIsInRlbXBvcnlDb25maWciLCJmb3JtbHlMYWJlbCIsImZvcm1seVJlcXVpcmVkIiwiZm9ybWx5RGVzY2lwdGlvbiIsImZvcm1seVBsYWNlaG9sZGVyIiwiZm9ybWx5T3B0aW9ucyIsImluaXRFYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbCIsImxpbmUiLCJhY3RpdmVDb2x1bW4iLCJjb2x1bW5zIiwibnVtQ29sdW1uIiwiZXhpc3QiLCJjb250cm9sIiwidHlwZSIsImtleSIsImluaXRFbXB0eUNvbnRyb2xGaWVsZE1vZGVsIiwiaW5pdEVhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsIiwiX2Vhc3lGb3JtRW1wdHlDb25maWd1cmF0aW9uTGluZU1vZGVsIiwic3VibWl0QnV0dG9uVGV4dCIsImNhbmNlbEJ1dHRvblRleHQiLCJsaW5lcyIsImNvbmNhdCIsImluaXRFYXN5Rm9ybUluaXRpYWxTdGF0ZUNvbmZpZ3VyYXRpb25Nb2RlbEFkZE9uRm9yU3RlcFdheSIsImFjdGl2ZUxpbmUiLCJsaXN0Q29uZmlnU3RlcCIsInN0ZXBJbmRpY2F0b3JzIiwiY29uZmlnU3RlcENvdW50ZXIiLCJpbml0RWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwiLCJyZWxvYWRDb25maWdNb2RlbCIsImluaXRIZWFkZXJUZW1wbGF0ZXMiLCJoZWFkZXJUZW1wbGF0ZSIsImNzc0NsYXNzIiwidGV4dENvbnRlbnQiLCJodG1sX3BhcnQxIiwiam9pbiIsInNlbGVjdGVkQ2xhc3MiLCJodG1sX3BhcnQyIiwiaHRtbF9wYXJ0MyIsImh0bWxfcGFydDQiLCJzaW1wbGVIdG1sMSIsInNpbXBsZUh0bWwyIiwiaW5pdEZvcm1seUNvbnRyb2xUZW1wbGF0ZXMiLCJjbGFzc05hbWUiLCJ0ZW1wbGF0ZU9wdGlvbnMiLCJsYWJlbCIsInJlcXVpcmVkIiwicGxhY2Vob2xkZXIiLCJkZXNjcmlwdGlvbiIsIm9wdGlvbnMiLCJpbml0UGFydGljdWxhckNvbnRyb2xQcm9wZXJ0aWVzIiwiY29udHJvbFR5cGUiLCJwcm9wZXJ0aWVzIiwiaXNSb290IiwiaXNUZW1wbGF0ZU9wdGlvbnMiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBUSxJQUFNQSw4REFBMkIsU0FBM0JBLHdCQUEyQixHQUFNO0FBQzdDLFNBQU87QUFDTEMsY0FBa0IsRUFEYjtBQUVMQyxxQkFBa0IsTUFGYjtBQUdMQyxtQkFBa0I7QUFDaEJELHVCQUFtQixNQURIO0FBRWhCRSxtQkFBaUIsT0FGRDtBQUdoQkMsc0JBQWtCLEtBSEY7QUFJaEJDLHdCQUFtQixFQUpIO0FBS2hCQyx5QkFBb0IsRUFMSjtBQU1oQkMscUJBQWtCO0FBTkY7QUFIYixHQUFQO0FBWUQsQ0FiTzs7QUFlRCxJQUFNQyw0RkFBMEMsU0FBMUNBLHVDQUEwQyxHQUFNO0FBQzNELFNBQU87QUFDTEMsVUFBWSxDQURQO0FBRUxDLGtCQUFnQixDQUZYO0FBR0xDLGFBQWEsQ0FBQztBQUNaQyxpQkFBYSxDQUREO0FBRVpDLGFBQVUsSUFGRTtBQUdaQyxlQUFZO0FBQ1ZDLGNBQUssTUFESztBQUVWQyxhQUFLO0FBRks7QUFIQSxLQUFEO0FBSFIsR0FBUDtBQVlELENBYk07O0FBZUEsSUFBTUMsa0VBQTZCLFNBQTdCQSwwQkFBNkIsR0FBTTtBQUM5QyxTQUFPO0FBQ0wsZUFBYztBQUNaLGNBQVUsTUFERTtBQUVaLGFBQVU7QUFGRTtBQURULEdBQVA7QUFNRCxDQVBNOztBQVNBLElBQU1DLGtHQUE2QyxTQUE3Q0EsMENBQTZDLENBQUNDLG9DQUFELEVBQTBDO0FBQ2xHO0FBQ0EsU0FBTztBQUNMQyxzQkFBb0IsUUFEZjtBQUVMQyxzQkFBb0IsUUFGZjtBQUdMQyxXQUFRLEdBQUdDLE1BQUgsQ0FBVUosb0NBQVY7QUFISCxHQUFQO0FBS0QsQ0FQTTs7QUFTQSxJQUFNSyxnSUFBNEQsU0FBNURBLHlEQUE0RCxHQUFNO0FBQzdFO0FBQ0EsU0FBTztBQUNMQyxnQkFBZ0IsQ0FEWDtBQUVMQyxvQkFBa0IsQ0FDaEIsTUFEZ0IsRUFFaEIsT0FGZ0IsRUFHaEIsUUFIZ0IsRUFJaEIsT0FKZ0IsQ0FGYjtBQVFMQyxvQkFBa0IsQ0FDaEIsSUFEZ0IsRUFFaEIsS0FGZ0IsRUFHaEIsS0FIZ0IsRUFJaEIsS0FKZ0IsQ0FSYjtBQWNMQyx1QkFBb0I7QUFkZixHQUFQO0FBZ0JELENBbEJNOztBQW9CQSxJQUFNQyxzRkFBdUMsU0FBdkNBLG9DQUF1QyxHQUFNO0FBQ3hELE1BQUlDLG9CQUFvQlosNENBQXhCO0FBQ0FZLG9CQUFrQlIsS0FBbEIsR0FBMEIsRUFBMUI7QUFDQSxTQUFPUSxpQkFBUDtBQUNELENBSk07O0FBTVA7QUFDTyxJQUFNQyxvREFBc0IsU0FBdEJBLG1CQUFzQixHQUFXO0FBQzVDLE1BQUlDLGlCQUFpQjtBQUNuQkMsY0FBYSxDQUFDLFdBQUQsRUFBYyxVQUFkLEVBQTBCLFVBQTFCLENBRE07QUFFbkJDLGlCQUFjLEVBRks7QUFHbkJDLGdCQUFjLENBQ0UsZ0JBREYsRUFFSUMsSUFGSixDQUVTLEVBRlQsQ0FISztBQU1uQkMsbUJBQWdCLEVBTkc7QUFPbkJDLGdCQUFjLENBQ0UsSUFERixFQUVFLDhCQUZGLEVBR0VGLElBSEYsQ0FHTyxFQUhQLENBUEs7QUFXbkJHLGdCQUFjLEtBQUtMLFdBWEE7QUFZbkJNLGdCQUFlLENBQ0MsVUFERCxFQUVDLFdBRkQsRUFHQyxVQUhELEVBSUdKLElBSkgsQ0FJUSxFQUpSLENBWkk7QUFpQm5CSyxpQkFBZSxDQUNDLDBCQURELEVBRUdMLElBRkgsQ0FFUSxFQUZSLENBakJJO0FBb0JuQk0saUJBQWUsQ0FDQyxVQURELEVBRUMsV0FGRCxFQUdHTixJQUhILENBR1EsRUFIUjtBQXBCSSxHQUFyQjtBQXlCQSxTQUFRSixjQUFSO0FBQ0QsQ0EzQk07O0FBOEJBLElBQU1XLGtFQUE2QixTQUE3QkEsMEJBQTZCLEdBQU07QUFDOUMsU0FBTztBQUNMQyxlQUFZLENBQUMsV0FBRCxFQUFjLFVBQWQsRUFBMEIsVUFBMUIsQ0FEUDtBQUVMN0IsVUFBWSxFQUZQO0FBR0xDLFNBQVksRUFIUDtBQUlMNkIscUJBQWlCO0FBQ2Y5QixZQUFjLEVBREM7QUFFZitCLGFBQWMsRUFGQztBQUdmQyxnQkFBYyxFQUhDO0FBSWZDLG1CQUFjLEVBSkM7QUFLZkMsbUJBQWMsRUFMQztBQU1mQyxlQUFjO0FBTkM7QUFKWixHQUFQO0FBYUQsQ0FkTTs7QUFnQkEsSUFBTUMsNEVBQWtDLFNBQWxDQSwrQkFBa0MsR0FBTTtBQUNuRCxTQUFPLENBQ0w7QUFDRUMsaUJBQWUsWUFEakI7QUFFRUMsZ0JBQWUsQ0FDYjtBQUNBQyxjQUFlLEtBRGY7QUFFQUMseUJBQW9CLElBRnBCO0FBR0FDLGFBQWM7QUFIZCxLQURhO0FBRmpCLEdBREssQ0FBUDtBQVlELENBYk0iLCJmaWxlIjoiNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgZXhwb3J0IGNvbnN0IGluaXRFYXN5Rm9ybUxpc3RDb250cm9scyA9ICgpID0+IHtcbiAgcmV0dXJuIHtcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG4gICAgY29udHJvbHMgICAgICAgIDogW10sXG4gICAgc2VsZWN0ZWRDb250cm9sIDogJ25vbmUnICxcbiAgICB0ZW1wb3J5Q29uZmlnICAgOiB7XG4gICAgICBzZWxlY3RlZENvbnRyb2xcdFx0OiAnbm9uZScsXG4gICAgICBmb3JtbHlMYWJlbFx0XHRcdFx0OiAnbGFiZWwnLCAgXG4gICAgICBmb3JtbHlSZXF1aXJlZFx0XHQ6IGZhbHNlLCBcbiAgICAgIGZvcm1seURlc2NpcHRpb25cdDogJycsXG4gICAgICBmb3JtbHlQbGFjZWhvbGRlclx0OiAnJyxcbiAgICAgIGZvcm1seU9wdGlvbnMgXHRcdDogW11cbiAgICB9IFxuICB9O1xufTtcbiAgXG5leHBvcnQgY29uc3QgaW5pdEVhc3lGb3JtRW1wdHlDb25maWd1cmF0aW9uTGluZU1vZGVsID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGxpbmUgXHRcdFx0XHRcdDogMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICBhY3RpdmVDb2x1bW4gXHQ6IDEsXG4gICAgY29sdW1ucyBcdFx0XHQ6IFt7ICBcbiAgICAgIG51bUNvbHVtbiBcdDogMSxcbiAgICAgIGV4aXN0IFx0XHRcdDp0cnVlLCBcbiAgICAgIGNvbnRyb2wgXHRcdDoge1xuICAgICAgICB0eXBlOidub25lJyxcbiAgICAgICAga2V5OiAnbm9uZSdcbiAgICAgIH1cbiAgICB9XVxuICB9OyAgICAgIFxufTtcbiAgXG5leHBvcnQgY29uc3QgaW5pdEVtcHR5Q29udHJvbEZpZWxkTW9kZWwgPSAoKSA9PiB7XG4gIHJldHVybiB7XG4gICAgJ2NvbnRyb2wnIFx0XHQ6IHtcbiAgICAgICd0eXBlJyAgOiAnbm9uZScsXG4gICAgICAna2V5JyAgIDogJ25vbmUnXG4gICAgfVx0XG4gIH07ICBcbn07XG4gIFxuZXhwb3J0IGNvbnN0IGluaXRFYXN5Rm9ybUluaXRpYWxTdGF0ZUNvbmZpZ3VyYXRpb25Nb2RlbCA9IChfZWFzeUZvcm1FbXB0eUNvbmZpZ3VyYXRpb25MaW5lTW9kZWwpID0+IHtcbiAgLy8gY29tbXVuIGFsbCBlYXN5IGZvcm0gZ2VuZXJhdG9yIHdheXNcbiAgcmV0dXJuIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgIHN1Ym1pdEJ1dHRvblRleHQgXHQ6ICdzdWJtaXQnLFxuICAgIGNhbmNlbEJ1dHRvblRleHQgXHQ6ICdjYW5jZWwnLFxuICAgIGxpbmVzIDogW10uY29uY2F0KF9lYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbClcbiAgfTsgICAgXG59O1xuXG5leHBvcnQgY29uc3QgaW5pdEVhc3lGb3JtSW5pdGlhbFN0YXRlQ29uZmlndXJhdGlvbk1vZGVsQWRkT25Gb3JTdGVwV2F5ID0gKCkgPT4ge1xuICAvLyBzcGVjaWZpYyBlYXN5IGZvcm0gZ2VuZXJhdG9yIOKAlCBzdGVwIHdheSDigJQgKG5vdCBkcmFnIGFuZCBkcm9wIHdheSksIG5lZWRlZCBmb3Igd2l6YXJkIG1hbmFnZW1lbnRcbiAgcmV0dXJuIHtcbiAgICBhY3RpdmVMaW5lIFx0XHRcdDogMSwgICBcbiAgICBsaXN0Q29uZmlnU3RlcCBcdDogW1xuICAgICAgJ2luaXQnLFxuICAgICAgJ2ZpcnN0JyxcbiAgICAgICdzZWNvbmQnLFxuICAgICAgJ3RoaXJkJ1xuICAgIF0sXG4gICAgc3RlcEluZGljYXRvcnMgXHQ6IFtcbiAgICAgIHRydWUsXG4gICAgICBmYWxzZSxcbiAgICAgIGZhbHNlLFxuICAgICAgZmFsc2VcbiAgICBdLCBcbiAgICBjb25maWdTdGVwQ291bnRlciA6IDAgIFx0XG4gIH07XG59O1xuICBcbmV4cG9ydCBjb25zdCBpbml0RWFzeUZvcm1SZWxvYWRDb25maWd1cmF0aW9uTW9kZWwgPSAoKSA9PiB7XG4gIGxldCByZWxvYWRDb25maWdNb2RlbCA9IGluaXRFYXN5Rm9ybUluaXRpYWxTdGF0ZUNvbmZpZ3VyYXRpb25Nb2RlbCgpO1xuICByZWxvYWRDb25maWdNb2RlbC5saW5lcyA9IFtdO1xuICByZXR1cm4gcmVsb2FkQ29uZmlnTW9kZWw7XG59O1xuICBcbi8vIGNhbid0IHVzZSBhcnJvdyBmdW5jdGlvbiBoZXJlIC0+ICd0aGlzJyB3b3VsZCBiZSBib3VuZCB0byBjYWxsZXIgcmF0aGVyIHRoYW4gZXhwZWN0ZWQgY3VycmVudCByZXR1cm5lZCBvYmplY3QuLi4gIFxuZXhwb3J0IGNvbnN0IGluaXRIZWFkZXJUZW1wbGF0ZXMgPSBmdW5jdGlvbigpIHtcbiAgbGV0IGhlYWRlclRlbXBsYXRlID0ge1xuICAgIGNzc0NsYXNzIFx0XHQ6IFsnY29sLXhzLTEyJywgJ2NvbC14cy02JywgJ2NvbC14cy00J10sXG4gICAgdGV4dENvbnRlbnQgOiAnJyxcbiAgICBodG1sX3BhcnQxIFx0OiBbXG4gICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9XCInXG4gICAgICAgICAgICAgICAgICAgIF0uam9pbignJyksXG4gICAgc2VsZWN0ZWRDbGFzcyA6ICcnLFxuICAgIGh0bWxfcGFydDIgXHQ6IFtcbiAgICAgICAgICAgICAgICAgICAgJ1wiPicsXG4gICAgICAgICAgICAgICAgICAgICcgICAgPGgyIGNsYXNzPVwidGV4dC1jZW50ZXJcIj4nXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuICAgICAgICAgICAgICAgICAgXS5qb2luKCcnKSxcdFx0XHRcdFx0XHRcdCBcbiAgICBodG1sX3BhcnQzICA6IHRoaXMudGV4dENvbnRlbnQsICBcbiAgICBodG1sX3BhcnQ0IFx0OiAgWyBcbiAgICAgICAgICAgICAgICAgICAgJyAgICA8aDI+JyxcbiAgICAgICAgICAgICAgICAgICAgJyAgICA8aHIvPicsXG4gICAgICAgICAgICAgICAgICAgICcgIDwvZGl2PidcbiAgICAgICAgICAgICAgICAgICAgXS5qb2luKCcnKSwgXG4gICAgc2ltcGxlSHRtbDEgOiBcdFtcbiAgICAgICAgICAgICAgICAgICAgJzxoMiBjbGFzcz1cInRleHQtY2VudGVyXCI+J1xuICAgICAgICAgICAgICAgICAgICBdLmpvaW4oJycpLFxuICAgIHNpbXBsZUh0bWwyIDogXHRbXG4gICAgICAgICAgICAgICAgICAgICcgICAgPGgyPicsXG4gICAgICAgICAgICAgICAgICAgICcgICAgPGhyLz4nXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcbiAgICAgICAgICAgICAgICAgICAgXS5qb2luKCcnKVx0XHRcdFx0XHRcdCBcbiAgfTsgIFxuICByZXR1cm4gIGhlYWRlclRlbXBsYXRlOyBcbn07XG4gIFxuICBcbmV4cG9ydCBjb25zdCBpbml0Rm9ybWx5Q29udHJvbFRlbXBsYXRlcyA9ICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBjbGFzc05hbWUgOiBbJ2NvbC14cy0xMicsICdjb2wteHMtNicsICdjb2wteHMtNCddLFxuICAgIHR5cGUgICAgICA6ICcnLFxuICAgIGtleSAgICAgICA6ICcnLFxuICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgdHlwZSAgICAgICAgOiAnJyxcbiAgICAgIGxhYmVsICAgICAgIDogJycsXG4gICAgICByZXF1aXJlZCAgICA6ICcnLFxuICAgICAgcGxhY2Vob2xkZXIgOiAnJyxcbiAgICAgIGRlc2NyaXB0aW9uIDogJycsXG4gICAgICBvcHRpb25zICAgICA6ICcnICAgIFxuICAgIH1cbiAgfTtcbn07XG4gIFxuZXhwb3J0IGNvbnN0IGluaXRQYXJ0aWN1bGFyQ29udHJvbFByb3BlcnRpZXMgPSAoKSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgY29udHJvbFR5cGUgXHQ6ICdkYXRlcGlja2VyJyxcbiAgICAgIHByb3BlcnRpZXMgXHRcdDogW1x0XG4gICAgICAgIHtcdFxuICAgICAgICBpc1Jvb3QgIFx0XHRcdFx0XHQ6IGZhbHNlLCBcbiAgICAgICAgaXNUZW1wbGF0ZU9wdGlvbnMgOiB0cnVlLCBcbiAgICAgICAgdmFsdWUgXHRcdFx0XHRcdFx0OiAnZGF0ZXBpY2tlclBvcHVwJ1xuICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgXTtcbn07XG4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2Zvcm1seVByb3h5L2VkYURyYWdEcm9wV2F5LmZvcm1seVByb3h5LmZvcm1GaWVsZE1hbmFnZS5wcm92aWRlci5oZWxwZXJzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  244. /***/ },
  245. /* 53 */
  246. /***/ function(module, exports, __webpack_require__) {
  247. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _edaDragDropWayDragdropDdContentCounter = __webpack_require__(54);\n\nvar _edaDragDropWayDragdropDdContentCounter2 = _interopRequireDefault(_edaDragDropWayDragdropDdContentCounter);\n\nvar _edaDragDropWayDragdropDdContentCounter3 = __webpack_require__(55);\n\nvar _edaDragDropWayDragdropDdContentCounter4 = _interopRequireDefault(_edaDragDropWayDragdropDdContentCounter3);\n\nvar _edaDragDropWayDragdropDdDecorContainer = __webpack_require__(56);\n\nvar _edaDragDropWayDragdropDdDecorContainer2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorContainer);\n\nvar _edaDragDropWayDragdropDdDecorContainer3 = __webpack_require__(58);\n\nvar _edaDragDropWayDragdropDdDecorContainer4 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorContainer3);\n\nvar _edaDragDropWayDragdropDdDecorDropZone = __webpack_require__(59);\n\nvar _edaDragDropWayDragdropDdDecorDropZone2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorDropZone);\n\nvar _edaDragDropWayDragdropDdDecorItem = __webpack_require__(61);\n\nvar _edaDragDropWayDragdropDdDecorItem2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorItem);\n\nvar _edaDragDropWayDragdropDdDecorItem3 = __webpack_require__(63);\n\nvar _edaDragDropWayDragdropDdDecorItem4 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorItem3);\n\nvar _edaDragDropWayDragdropDdDecorLine = __webpack_require__(64);\n\nvar _edaDragDropWayDragdropDdDecorLine2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorLine);\n\nvar _edaDragDropWayDragdropDdNoEditableControl = __webpack_require__(66);\n\nvar _edaDragDropWayDragdropDdNoEditableControl2 = _interopRequireDefault(_edaDragDropWayDragdropDdNoEditableControl);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DRAGDROP_MODULE = 'edaDragDropWay.dragdrop.module'; /* global angular */\nexports.default = angular.module(DRAGDROP_MODULE, []).directive(_edaDragDropWayDragdropDdContentCounter.DD_CONTENT_COUNTER_DIRECTIVE, _edaDragDropWayDragdropDdContentCounter2.default).controller(_edaDragDropWayDragdropDdDecorContainer3.DD_DECOR_CONTAINER_CONTROLLER_NAME, _edaDragDropWayDragdropDdDecorContainer4.default).directive(_edaDragDropWayDragdropDdDecorContainer.DD_DECOR_CONTAINER_DIRECTIVE, _edaDragDropWayDragdropDdDecorContainer2.default).directive(_edaDragDropWayDragdropDdDecorDropZone.DD_DECOR_DROPZONE_DIRECTIVE, _edaDragDropWayDragdropDdDecorDropZone2.default).directive(_edaDragDropWayDragdropDdDecorItem.DRAG_DROP_DECOR_ITEM, _edaDragDropWayDragdropDdDecorItem2.default).service(_edaDragDropWayDragdropDdDecorItem3.DRAG_DROP_ITEM_DECOR_SERVICE, _edaDragDropWayDragdropDdDecorItem4.default).directive(_edaDragDropWayDragdropDdNoEditableControl.DRAG_DROP_NO_EDITABLE_CONTROL, _edaDragDropWayDragdropDdNoEditableControl2.default).service(_edaDragDropWayDragdropDdContentCounter3.DRAG_DROP_ITEM_COUNTER_SERVICE, _edaDragDropWayDragdropDdContentCounter4.default).directive(_edaDragDropWayDragdropDdDecorLine.DRAG_DROP_DECOR_LINE, _edaDragDropWayDragdropDdDecorLine2.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AubW9kdWxlLmpzPzExZjkiXSwibmFtZXMiOlsiRFJBR0RST1BfTU9EVUxFIiwiYW5ndWxhciIsIm1vZHVsZSIsImRpcmVjdGl2ZSIsImNvbnRyb2xsZXIiLCJzZXJ2aWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQTs7OztBQUdBOzs7O0FBR0E7Ozs7QUFHQTs7OztBQUdBOzs7O0FBR0E7Ozs7QUFHQTs7OztBQUdBOzs7O0FBSUE7Ozs7OztBQUtBLElBQU1BLGtCQUFrQixnQ0FBeEIsQyxDQS9CQTtrQkFpQ2VDLFFBQ05DLE1BRE0sQ0FDQ0YsZUFERCxFQUNrQixFQURsQixFQUVORyxTQUZNLHlIQUdOQyxVQUhNLGdJQUlORCxTQUpNLHlIQUtOQSxTQUxNLHNIQU1OQSxTQU5NLHVHQU9ORSxPQVBNLGdIQVFORixTQVJNLGdJQVNORSxPQVRNLDRIQVVORixTQVZNLHNHIiwiZmlsZSI6IjUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cbmltcG9ydCBkZENvbnRlbnRDb3VudGVyLCB7XG4gRERfQ09OVEVOVF9DT1VOVEVSX0RJUkVDVElWRVx0XG59XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmcm9tICcuL2RkQ29udGVudENvdW50ZXIvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGRDb250ZW50Q291bnRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IGRyYWdEcm9wSXRlbUNvdW50ZXJTZXJ2aWNlLCB7XG5cdERSQUdfRFJPUF9JVEVNX0NPVU5URVJfU0VSVklDRVxufVx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9kZENvbnRlbnRDb3VudGVyL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkQ29udGVudENvdW50ZXIuc2VydmljZSc7XG5pbXBvcnQgZGREZWNvckNvbnRhaW5lckRpcmVjdGl2ZSwge1xuXHRERF9ERUNPUl9DT05UQUlORVJfRElSRUNUSVZFXG59IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZGREZWNvckNvbnRhaW5lci9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29yQ29udGFpbmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgZGREZWNvckNvbnRhaW5lckNvbnRyb2xsZXIsIHtcblx0RERfREVDT1JfQ09OVEFJTkVSX0NPTlRST0xMRVJfTkFNRVxufSBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmcm9tICcuL2RkRGVjb3JDb250YWluZXIvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckNvbnRhaW5lci5jb250cm9sbGVyJztcbmltcG9ydCBkZERlY29yRHJvcFpvbmUsIHtcblx0RERfREVDT1JfRFJPUFpPTkVfRElSRUNUSVZFXG59IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZGREZWNvckRyb3Bab25lL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JEcm9wWm9uZS5kaXJlY3RpdmUnO1xuaW1wb3J0IGRkRGVjb3JJdGVtLCB7XG5cdERSQUdfRFJPUF9ERUNPUl9JVEVNXG59IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZGREZWNvckl0ZW0vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCBkcmFnRHJvcEl0ZW1EZWNvcmF0aW9uU2VydmljZSwge1xuXHREUkFHX0RST1BfSVRFTV9ERUNPUl9TRVJWSUNFXG59XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmcm9tICcuL2RkRGVjb3JJdGVtL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JJdGVtLnNlcnZpY2UnO1xuaW1wb3J0IGRkRGVjb3JMaW5lLCB7XG5cdERSQUdfRFJPUF9ERUNPUl9MSU5FXG59IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZGREZWNvckxpbmUvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckxpbmUuZGlyZWN0aXZlJztcblxuaW1wb3J0IGRkTm9FZGl0YWJsZUNvbnRyb2wsIHtcblx0RFJBR19EUk9QX05PX0VESVRBQkxFX0NPTlRST0xcbn0gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9kZE5vRWRpdGFibGVDb250cm9sL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkTm9FZGl0YWJsZUNvbnRyb2wuZGlyZWN0aXZlJztcblxuXG5jb25zdCBEUkFHRFJPUF9NT0RVTEUgPSAnZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AubW9kdWxlJztcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuXHRcdFx0XHRcdFx0XHRcdC5tb2R1bGUoRFJBR0RST1BfTU9EVUxFLCBbXSlcblx0XHRcdFx0XHRcdFx0XHQuZGlyZWN0aXZlKEREX0NPTlRFTlRfQ09VTlRFUl9ESVJFQ1RJVkUsIGRkQ29udGVudENvdW50ZXIpXG5cdFx0XHRcdFx0XHRcdFx0LmNvbnRyb2xsZXIoRERfREVDT1JfQ09OVEFJTkVSX0NPTlRST0xMRVJfTkFNRSwgZGREZWNvckNvbnRhaW5lckNvbnRyb2xsZXIpXG5cdFx0XHRcdFx0XHRcdFx0LmRpcmVjdGl2ZShERF9ERUNPUl9DT05UQUlORVJfRElSRUNUSVZFLCBkZERlY29yQ29udGFpbmVyRGlyZWN0aXZlKVxuXHRcdFx0XHRcdFx0XHRcdC5kaXJlY3RpdmUoRERfREVDT1JfRFJPUFpPTkVfRElSRUNUSVZFLCBkZERlY29yRHJvcFpvbmUpXG5cdFx0XHRcdFx0XHRcdFx0LmRpcmVjdGl2ZShEUkFHX0RST1BfREVDT1JfSVRFTSwgZGREZWNvckl0ZW0pXG5cdFx0XHRcdFx0XHRcdFx0LnNlcnZpY2UoRFJBR19EUk9QX0lURU1fREVDT1JfU0VSVklDRSwgZHJhZ0Ryb3BJdGVtRGVjb3JhdGlvblNlcnZpY2UpXG5cdFx0XHRcdFx0XHRcdFx0LmRpcmVjdGl2ZShEUkFHX0RST1BfTk9fRURJVEFCTEVfQ09OVFJPTCwgZGROb0VkaXRhYmxlQ29udHJvbClcblx0XHRcdFx0XHRcdFx0XHQuc2VydmljZShEUkFHX0RST1BfSVRFTV9DT1VOVEVSX1NFUlZJQ0UsIGRyYWdEcm9wSXRlbUNvdW50ZXJTZXJ2aWNlKVxuXHRcdFx0XHRcdFx0XHRcdC5kaXJlY3RpdmUoRFJBR19EUk9QX0RFQ09SX0xJTkUsIGRkRGVjb3JMaW5lKVxuXHRcdFx0XHRcdFx0XHQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLm1vZHVsZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  248. /***/ },
  249. /* 54 */
  250. /***/ function(module, exports) {
  251. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar DD_CONTENT_COUNTER_DIRECTIVE = 'ddContentCounter';\n\nfunction ddContentCounter(dragDropItemCounterService, $timeout) {\n\tvar directive = {\n\t\trestrict: 'A',\n\t\tscope: {\n\t\t\tvalueWhenPlaceholder: '@ddValueWhenPlaceholder',\n\t\t\tvalueWhendragging: '@ddValueWhenDragging',\n\t\t\tfullModel: '=ddFullModel',\n\t\t\tcurrentIndex: '@ddContentCounterCurrentIndex',\n\t\t\tparentIndex: '@ddContentCounterParentIndex',\n\t\t\tforceRefresh: '=ddContentCounterForceCssRefresh'\n\t\t},\n\t\tlink: linkfct\n\t};\n\treturn directive;\n\n\tfunction linkfct($scope, element) {\n\t\tvar timer = void 0;\n\t\t// watch children length change : to update css item class\n\t\t$scope.$watch(function () {\n\t\t\treturn element[0].children.length;\n\t\t}, function (newValue, oldValue) {\n\t\t\tif (newValue !== oldValue) {\n\t\t\t\t(function () {\n\t\t\t\t\tvar newRealCount = 0;\n\t\t\t\t\tvar listClassForThisRow = [];\n\t\t\t\t\tfor (var i = element[0].children.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tif (dragDropItemCounterService.isHtmlElementToCount(element[0].children[i].classList)) {\n\t\t\t\t\t\t\tnewRealCount++;\n\t\t\t\t\t\t\tlistClassForThisRow.push({ item: i, isReal: true });\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlistClassForThisRow.push({ item: i, isReal: false });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t$scope.contentRealCount = newRealCount;\n\t\t\t\t\t// a timer otherwise won't refresh everytime\n\t\t\t\t\ttimer = $timeout(function () {\n\t\t\t\t\t\tdragDropItemCounterService.updateLineItemCss($scope.fullModel, listClassForThisRow, $scope.parentIndex, $scope.currentIndex, newRealCount);\n\t\t\t\t\t}, 20);\n\t\t\t\t})();\n\t\t\t}\n\t\t});\n\n\t\t$scope.$on('$destroy', function () {\n\t\t\t$timeout.cancel(timer);\n\t\t});\n\t}\n}\n\nddContentCounter.$inject = ['dragDropItemCounterService', '$timeout'];\n\nexports.default = ddContentCounter;\nexports.DD_CONTENT_COUNTER_DIRECTIVE = DD_CONTENT_COUNTER_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGRDb250ZW50Q291bnRlci9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZENvbnRlbnRDb3VudGVyLmRpcmVjdGl2ZS5qcz81NDljIl0sIm5hbWVzIjpbIkREX0NPTlRFTlRfQ09VTlRFUl9ESVJFQ1RJVkUiLCJkZENvbnRlbnRDb3VudGVyIiwiZHJhZ0Ryb3BJdGVtQ291bnRlclNlcnZpY2UiLCIkdGltZW91dCIsImRpcmVjdGl2ZSIsInJlc3RyaWN0Iiwic2NvcGUiLCJ2YWx1ZVdoZW5QbGFjZWhvbGRlciIsInZhbHVlV2hlbmRyYWdnaW5nIiwiZnVsbE1vZGVsIiwiY3VycmVudEluZGV4IiwicGFyZW50SW5kZXgiLCJmb3JjZVJlZnJlc2giLCJsaW5rIiwibGlua2ZjdCIsIiRzY29wZSIsImVsZW1lbnQiLCJ0aW1lciIsIiR3YXRjaCIsImNoaWxkcmVuIiwibGVuZ3RoIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsIm5ld1JlYWxDb3VudCIsImxpc3RDbGFzc0ZvclRoaXNSb3ciLCJpIiwiaXNIdG1sRWxlbWVudFRvQ291bnQiLCJjbGFzc0xpc3QiLCJwdXNoIiwiaXRlbSIsImlzUmVhbCIsImNvbnRlbnRSZWFsQ291bnQiLCJ1cGRhdGVMaW5lSXRlbUNzcyIsIiRvbiIsImNhbmNlbCIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBTUEsK0JBQStCLGtCQUFyQzs7QUFFQSxTQUFTQyxnQkFBVCxDQUEwQkMsMEJBQTFCLEVBQXNEQyxRQUF0RCxFQUErRDtBQUM3RCxLQUFJQyxZQUFZO0FBQ2ZDLFlBQVcsR0FESTtBQUVmQyxTQUFVO0FBQ1RDLHlCQUF1Qix5QkFEZDtBQUVUQyxzQkFBc0Isc0JBRmI7QUFHVEMsY0FBa0IsY0FIVDtBQUlUQyxpQkFBb0IsK0JBSlg7QUFLVEMsZ0JBQW1CLDhCQUxWO0FBTVRDLGlCQUFtQjtBQU5WLEdBRks7QUFVZkMsUUFBU0M7QUFWTSxFQUFoQjtBQVlBLFFBQU9WLFNBQVA7O0FBRUEsVUFBU1UsT0FBVCxDQUFpQkMsTUFBakIsRUFBeUJDLE9BQXpCLEVBQWlDO0FBQ2hDLE1BQUlDLGNBQUo7QUFDQTtBQUNBRixTQUFPRyxNQUFQLENBQWM7QUFBQSxVQUFJRixRQUFRLENBQVIsRUFBV0csUUFBWCxDQUFvQkMsTUFBeEI7QUFBQSxHQUFkLEVBQTZDLFVBQUNDLFFBQUQsRUFBV0MsUUFBWCxFQUFzQjtBQUNsRSxPQUFJRCxhQUFhQyxRQUFqQixFQUEyQjtBQUFBO0FBQzFCLFNBQUlDLGVBQW1CLENBQXZCO0FBQ0EsU0FBSUMsc0JBQXNCLEVBQTFCO0FBQ0EsVUFBSyxJQUFJQyxJQUFJVCxRQUFRLENBQVIsRUFBV0csUUFBWCxDQUFvQkMsTUFBcEIsR0FBNkIsQ0FBMUMsRUFBNkNLLEtBQUssQ0FBbEQsRUFBcURBLEdBQXJELEVBQTBEO0FBQ3pELFVBQUd2QiwyQkFBMkJ3QixvQkFBM0IsQ0FBZ0RWLFFBQVEsQ0FBUixFQUFXRyxRQUFYLENBQW9CTSxDQUFwQixFQUF1QkUsU0FBdkUsQ0FBSCxFQUFxRjtBQUNwRko7QUFDQUMsMkJBQW9CSSxJQUFwQixDQUEwQixFQUFDQyxNQUFNSixDQUFQLEVBQVVLLFFBQVMsSUFBbkIsRUFBMUI7QUFDQSxPQUhELE1BR0s7QUFDSk4sMkJBQW9CSSxJQUFwQixDQUEwQixFQUFDQyxNQUFNSixDQUFQLEVBQVVLLFFBQVMsS0FBbkIsRUFBMUI7QUFDQTtBQUNEO0FBQ0RmLFlBQU9nQixnQkFBUCxHQUEwQlIsWUFBMUI7QUFDQTtBQUNBTixhQUFRZCxTQUFTLFlBQU07QUFDdEJELGlDQUEyQjhCLGlCQUEzQixDQUE2Q2pCLE9BQU9OLFNBQXBELEVBQStEZSxtQkFBL0QsRUFBb0ZULE9BQU9KLFdBQTNGLEVBQXdHSSxPQUFPTCxZQUEvRyxFQUE2SGEsWUFBN0g7QUFDQSxNQUZPLEVBRUwsRUFGSyxDQUFSO0FBYjBCO0FBaUIxQjtBQUNELEdBbkJEOztBQXFCQVIsU0FBT2tCLEdBQVAsQ0FBVyxVQUFYLEVBQXVCLFlBQUk7QUFDMUI5QixZQUFTK0IsTUFBVCxDQUFnQmpCLEtBQWhCO0FBQXdCLEdBRHpCO0FBR0E7QUFFRjs7QUFFRGhCLGlCQUFpQmtDLE9BQWpCLEdBQTJCLENBQzFCLDRCQUQwQixFQUUxQixVQUYwQixDQUEzQjs7a0JBS2VsQyxnQjtRQUdkRCw0QixHQUFBQSw0QiIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEREX0NPTlRFTlRfQ09VTlRFUl9ESVJFQ1RJVkUgPSAnZGRDb250ZW50Q291bnRlcic7XG5cbmZ1bmN0aW9uIGRkQ29udGVudENvdW50ZXIoZHJhZ0Ryb3BJdGVtQ291bnRlclNlcnZpY2UsICR0aW1lb3V0KXtcblx0XHRsZXQgZGlyZWN0aXZlICA9e1xuXHRcdFx0cmVzdHJpY3RcdDogJ0EnLFxuXHRcdFx0c2NvcGUgXHRcdDoge1xuXHRcdFx0XHR2YWx1ZVdoZW5QbGFjZWhvbGRlclx0OiAnQGRkVmFsdWVXaGVuUGxhY2Vob2xkZXInLFxuXHRcdFx0XHR2YWx1ZVdoZW5kcmFnZ2luZ1x0XHRcdDogJ0BkZFZhbHVlV2hlbkRyYWdnaW5nJyxcblx0XHRcdFx0ZnVsbE1vZGVsIFx0XHRcdFx0XHRcdDogJz1kZEZ1bGxNb2RlbCcsXG5cdFx0XHRcdGN1cnJlbnRJbmRleCBcdFx0XHRcdFx0OiAnQGRkQ29udGVudENvdW50ZXJDdXJyZW50SW5kZXgnLFxuXHRcdFx0XHRwYXJlbnRJbmRleCBcdFx0XHRcdFx0OiAnQGRkQ29udGVudENvdW50ZXJQYXJlbnRJbmRleCcsXG5cdFx0XHRcdGZvcmNlUmVmcmVzaFx0XHRcdFx0XHQ6ICc9ZGRDb250ZW50Q291bnRlckZvcmNlQ3NzUmVmcmVzaCdcdFx0XHRcdFxuXHRcdFx0fSxcblx0XHRcdGxpbmtcdFx0XHQ6IGxpbmtmY3Rcblx0XHR9O1xuXHRcdHJldHVybiBkaXJlY3RpdmU7XG5cdFx0XG5cdFx0ZnVuY3Rpb24gbGlua2ZjdCgkc2NvcGUsIGVsZW1lbnQpe1xuXHRcdFx0bGV0IHRpbWVyO1xuXHRcdFx0Ly8gd2F0Y2ggY2hpbGRyZW4gbGVuZ3RoIGNoYW5nZSA6IHRvIHVwZGF0ZSBjc3MgaXRlbSBjbGFzc1xuXHRcdFx0JHNjb3BlLiR3YXRjaCgoKT0+ZWxlbWVudFswXS5jaGlsZHJlbi5sZW5ndGgsKG5ld1ZhbHVlLCBvbGRWYWx1ZSk9Pntcblx0XHRcdFx0aWYgKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSkge1xuXHRcdFx0XHRcdGxldCBuZXdSZWFsQ291bnQgXHRcdFx0XHQ9IDA7XG5cdFx0XHRcdFx0bGV0IGxpc3RDbGFzc0ZvclRoaXNSb3cgPSBbXTtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gZWxlbWVudFswXS5jaGlsZHJlbi5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1x0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0aWYoZHJhZ0Ryb3BJdGVtQ291bnRlclNlcnZpY2UuaXNIdG1sRWxlbWVudFRvQ291bnQoZWxlbWVudFswXS5jaGlsZHJlbltpXS5jbGFzc0xpc3QpKXtcblx0XHRcdFx0XHRcdFx0bmV3UmVhbENvdW50Kys7XG5cdFx0XHRcdFx0XHRcdGxpc3RDbGFzc0ZvclRoaXNSb3cucHVzaCgge2l0ZW06IGksIGlzUmVhbCA6IHRydWV9ICk7XG5cdFx0XHRcdFx0XHR9ZWxzZXtcblx0XHRcdFx0XHRcdFx0bGlzdENsYXNzRm9yVGhpc1Jvdy5wdXNoKCB7aXRlbTogaSwgaXNSZWFsIDogZmFsc2V9ICk7XG5cdFx0XHRcdFx0XHR9IFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQkc2NvcGUuY29udGVudFJlYWxDb3VudCA9IG5ld1JlYWxDb3VudDtcblx0XHRcdFx0XHQvLyBhIHRpbWVyIG90aGVyd2lzZSB3b24ndCByZWZyZXNoIGV2ZXJ5dGltZVxuXHRcdFx0XHRcdHRpbWVyID0gJHRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0ZHJhZ0Ryb3BJdGVtQ291bnRlclNlcnZpY2UudXBkYXRlTGluZUl0ZW1Dc3MoJHNjb3BlLmZ1bGxNb2RlbCwgbGlzdENsYXNzRm9yVGhpc1JvdywgJHNjb3BlLnBhcmVudEluZGV4LCAkc2NvcGUuY3VycmVudEluZGV4LCBuZXdSZWFsQ291bnQpO1x0XHRcdFx0ICAgICAgICBcdFxuXHRcdFx0XHRcdH0sIDIwKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFxuXHRcdFx0JHNjb3BlLiRvbignJGRlc3Ryb3knLCAoKT0+e1xuXHRcdFx0XHQkdGltZW91dC5jYW5jZWwodGltZXIpO31cblx0XHRcdCk7XG5cdFx0fVxuXHRcdFxufVxuXG5kZENvbnRlbnRDb3VudGVyLiRpbmplY3QgPSBbXG5cdCdkcmFnRHJvcEl0ZW1Db3VudGVyU2VydmljZScsXG5cdCckdGltZW91dCdcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGRkQ29udGVudENvdW50ZXI7XG5cbmV4cG9ydCB7XG5cdEREX0NPTlRFTlRfQ09VTlRFUl9ESVJFQ1RJVkVcbn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2RkQ29udGVudENvdW50ZXIvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGRDb250ZW50Q291bnRlci5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  252. /***/ },
  253. /* 55 */
  254. /***/ function(module, exports) {
  255. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DRAG_DROP_ITEM_COUNTER_SERVICE = 'dragDropItemCounterService';\n\nvar dragDropItemCounterService = function () {\n\tfunction dragDropItemCounterService(easyFormDragWayConfig) {\n\t\t_classCallCheck(this, dragDropItemCounterService);\n\n\t\tthis.easyFormDragWayConfig = easyFormDragWayConfig;\n\t\tthis.init();\n\t}\n\n\t_createClass(dragDropItemCounterService, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tthis._modelItemRealCounter = [];\n\t\t\tthis._itemsNotToCount = angular.copy(this.easyFormDragWayConfig.getItemsNotToCount());\n\t\t}\n\t}, {\n\t\tkey: 'getItemsNotToCount',\n\t\tvalue: function getItemsNotToCount() {\n\t\t\treturn this._itemsNotToCount;\n\t\t}\n\t}, {\n\t\tkey: 'getModelItemsRealCounter',\n\t\tvalue: function getModelItemsRealCounter() {\n\t\t\treturn this._modelItemRealCounter;\n\t\t}\n\t}, {\n\t\tkey: 'isHtmlElementToCount',\n\t\tvalue: function isHtmlElementToCount(htmlvalue) {\n\t\t\tvar isToCount = true;\n\t\t\tif (htmlvalue.length > 0) {\n\t\t\t\tangular.forEach(this._itemsNotToCount, function (value) {\n\t\t\t\t\tfor (var classes = htmlvalue.length - 1; classes >= 0; classes--) {\n\t\t\t\t\t\tif (htmlvalue[classes] === value) isToCount = isToCount && false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn isToCount;\n\t\t}\n\t}, {\n\t\tkey: 'updateLineItemCss',\n\t\tvalue: function updateLineItemCss(fullModel, listCssToApply, columIndex, lineIndex, realCount) {\n\t\t\tif (typeof fullModel !== 'undefined' && typeof listCssToApply !== 'undefined' && typeof columIndex !== 'undefined' && typeof lineIndex !== 'undefined' && typeof realCount !== 'undefined') {\n\t\t\t\tfor (var i = fullModel[columIndex][lineIndex].length - 1; i >= 0; i--) {\n\t\t\t\t\tfor (var j = 0; j < listCssToApply.length; j++) {\n\t\t\t\t\t\tif (listCssToApply[j].item === i && listCssToApply[j].isReal === true) {\n\t\t\t\t\t\t\tfullModel[columIndex][lineIndex][i].cssClass = this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(realCount);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn dragDropItemCounterService;\n}();\n\ndragDropItemCounterService.$inject = ['easyFormDragWayConfig'];\n\nexports.default = dragDropItemCounterService;\nexports.DRAG_DROP_ITEM_COUNTER_SERVICE = DRAG_DROP_ITEM_COUNTER_SERVICE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGRDb250ZW50Q291bnRlci9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZENvbnRlbnRDb3VudGVyLnNlcnZpY2UuanM/MzE4MiJdLCJuYW1lcyI6WyJEUkFHX0RST1BfSVRFTV9DT1VOVEVSX1NFUlZJQ0UiLCJkcmFnRHJvcEl0ZW1Db3VudGVyU2VydmljZSIsImVhc3lGb3JtRHJhZ1dheUNvbmZpZyIsImluaXQiLCJfbW9kZWxJdGVtUmVhbENvdW50ZXIiLCJfaXRlbXNOb3RUb0NvdW50IiwiYW5ndWxhciIsImNvcHkiLCJnZXRJdGVtc05vdFRvQ291bnQiLCJodG1sdmFsdWUiLCJpc1RvQ291bnQiLCJsZW5ndGgiLCJmb3JFYWNoIiwidmFsdWUiLCJjbGFzc2VzIiwiZnVsbE1vZGVsIiwibGlzdENzc1RvQXBwbHkiLCJjb2x1bUluZGV4IiwibGluZUluZGV4IiwicmVhbENvdW50IiwiaSIsImoiLCJpdGVtIiwiaXNSZWFsIiwiY3NzQ2xhc3MiLCJnZXRJdGVtQ3NzRGVwZW5kaW5nTnVtYmVySXRlbXNJblJvdyIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNQSxpQ0FBaUMsNEJBQXZDOztJQUVNQywwQjtBQUVMLHFDQUFZQyxxQkFBWixFQUFrQztBQUFBOztBQUNqQyxPQUFLQSxxQkFBTCxHQUE2QkEscUJBQTdCO0FBQ0EsT0FBS0MsSUFBTDtBQUNBOzs7O3lCQUVLO0FBQ0wsUUFBS0MscUJBQUwsR0FBNkIsRUFBN0I7QUFDQSxRQUFLQyxnQkFBTCxHQUF3QkMsUUFBUUMsSUFBUixDQUFhLEtBQUtMLHFCQUFMLENBQTJCTSxrQkFBM0IsRUFBYixDQUF4QjtBQUNBOzs7dUNBRW1CO0FBQ25CLFVBQU8sS0FBS0gsZ0JBQVo7QUFDQTs7OzZDQUV5QjtBQUN6QixVQUFPLEtBQUtELHFCQUFaO0FBQ0E7Ozt1Q0FFb0JLLFMsRUFBVTtBQUM5QixPQUFJQyxZQUFZLElBQWhCO0FBQ0EsT0FBSUQsVUFBVUUsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN6QkwsWUFBUU0sT0FBUixDQUFnQixLQUFLUCxnQkFBckIsRUFBdUMsVUFBQ1EsS0FBRCxFQUFTO0FBQy9DLFVBQUssSUFBSUMsVUFBVUwsVUFBVUUsTUFBVixHQUFtQixDQUF0QyxFQUF5Q0csV0FBVyxDQUFwRCxFQUF1REEsU0FBdkQsRUFBa0U7QUFDakUsVUFBSUwsVUFBVUssT0FBVixNQUF1QkQsS0FBM0IsRUFBa0NILFlBQVlBLGFBQWEsS0FBekI7QUFDbEM7QUFDRCxLQUpEO0FBS0E7QUFDRCxVQUFPQSxTQUFQO0FBQ0E7OztvQ0FFaUJLLFMsRUFBV0MsYyxFQUFnQkMsVSxFQUFZQyxTLEVBQVdDLFMsRUFBVTtBQUM3RSxPQUFJLE9BQU9KLFNBQVAsS0FBeUIsV0FBekIsSUFDSCxPQUFPQyxjQUFQLEtBQTRCLFdBRHpCLElBRUgsT0FBT0MsVUFBUCxLQUEwQixXQUZ2QixJQUdILE9BQU9DLFNBQVAsS0FBMEIsV0FIdkIsSUFJSCxPQUFPQyxTQUFQLEtBQTBCLFdBSjNCLEVBSXdDO0FBQ3ZDLFNBQUssSUFBSUMsSUFBSUwsVUFBVUUsVUFBVixFQUFzQkMsU0FBdEIsRUFBaUNQLE1BQWpDLEdBQTBDLENBQXZELEVBQTBEUyxLQUFLLENBQS9ELEVBQWtFQSxHQUFsRSxFQUF1RTtBQUN0RSxVQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUwsZUFBZUwsTUFBbkMsRUFBMkNVLEdBQTNDLEVBQWdEO0FBQy9DLFVBQUlMLGVBQWVLLENBQWYsRUFBa0JDLElBQWxCLEtBQTZCRixDQUE3QixJQUNGSixlQUFlSyxDQUFmLEVBQWtCRSxNQUFsQixLQUE4QixJQURoQyxFQUNxQztBQUNwQ1IsaUJBQVVFLFVBQVYsRUFBc0JDLFNBQXRCLEVBQWlDRSxDQUFqQyxFQUFvQ0ksUUFBcEMsR0FBK0MsS0FBS3RCLHFCQUFMLENBQTJCdUIsbUNBQTNCLENBQStETixTQUEvRCxDQUEvQztBQUNBO0FBQ0Q7QUFDRDtBQUNELFdBQU8sSUFBUDtBQUNBO0FBQ0Q7Ozs7OztBQUtGbEIsMkJBQTJCeUIsT0FBM0IsR0FBcUMsQ0FDcEMsdUJBRG9DLENBQXJDOztrQkFJZXpCLDBCO1FBR2RELDhCLEdBQUFBLDhCIiwiZmlsZSI6IjU1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFJBR19EUk9QX0lURU1fQ09VTlRFUl9TRVJWSUNFID0gJ2RyYWdEcm9wSXRlbUNvdW50ZXJTZXJ2aWNlJztcblxuY2xhc3MgZHJhZ0Ryb3BJdGVtQ291bnRlclNlcnZpY2V7XG5cdFxuXHRjb25zdHJ1Y3RvcihlYXN5Rm9ybURyYWdXYXlDb25maWcpe1xuXHRcdHRoaXMuZWFzeUZvcm1EcmFnV2F5Q29uZmlnID0gZWFzeUZvcm1EcmFnV2F5Q29uZmlnO1xuXHRcdHRoaXMuaW5pdCgpO1xuXHR9XG5cdFxuXHRpbml0KCl7XG5cdFx0dGhpcy5fbW9kZWxJdGVtUmVhbENvdW50ZXIgPSBbXTtcblx0XHR0aGlzLl9pdGVtc05vdFRvQ291bnQgPSBhbmd1bGFyLmNvcHkodGhpcy5lYXN5Rm9ybURyYWdXYXlDb25maWcuZ2V0SXRlbXNOb3RUb0NvdW50KCkpO1xuXHR9XG5cdFx0XG5cdGdldEl0ZW1zTm90VG9Db3VudCgpe1xuXHRcdHJldHVybiB0aGlzLl9pdGVtc05vdFRvQ291bnQ7XG5cdH0gXHRcblxuXHRnZXRNb2RlbEl0ZW1zUmVhbENvdW50ZXIoKXtcblx0XHRyZXR1cm4gdGhpcy5fbW9kZWxJdGVtUmVhbENvdW50ZXI7XG5cdH1cblx0XG5cdGlzSHRtbEVsZW1lbnRUb0NvdW50KGh0bWx2YWx1ZSl7XG5cdFx0bGV0IGlzVG9Db3VudCA9IHRydWU7XG5cdFx0aWYgKGh0bWx2YWx1ZS5sZW5ndGggPiAwKSB7XG5cdFx0XHRhbmd1bGFyLmZvckVhY2godGhpcy5faXRlbXNOb3RUb0NvdW50LCAodmFsdWUpPT57XG5cdFx0XHRcdGZvciAobGV0IGNsYXNzZXMgPSBodG1sdmFsdWUubGVuZ3RoIC0gMTsgY2xhc3NlcyA+PSAwOyBjbGFzc2VzLS0pIHtcblx0XHRcdFx0XHRpZiAoaHRtbHZhbHVlW2NsYXNzZXNdID09PSB2YWx1ZSkgaXNUb0NvdW50ID0gaXNUb0NvdW50ICYmIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGlzVG9Db3VudDtcdFxuXHR9XG5cdFxuXHR1cGRhdGVMaW5lSXRlbUNzcyhmdWxsTW9kZWwsIGxpc3RDc3NUb0FwcGx5LCBjb2x1bUluZGV4LCBsaW5lSW5kZXgsIHJlYWxDb3VudCl7XG5cdFx0aWYgKHR5cGVvZiBmdWxsTW9kZWwgXHRcdCE9PSBcdFx0J3VuZGVmaW5lZCcgJiZcblx0XHRcdHR5cGVvZiBsaXN0Q3NzVG9BcHBseSAhPT0gXHRcdCd1bmRlZmluZWQnICYmXG5cdFx0XHR0eXBlb2YgY29sdW1JbmRleCBcdFx0IT09IFx0XHQndW5kZWZpbmVkJyAmJlxuXHRcdFx0dHlwZW9mIGxpbmVJbmRleCBcdFx0XHQhPT0gXHRcdCd1bmRlZmluZWQnICYmXG5cdFx0XHR0eXBlb2YgcmVhbENvdW50IFx0XHRcdCE9PSBcdFx0J3VuZGVmaW5lZCcpIHtcblx0XHRcdGZvciAobGV0IGkgPSBmdWxsTW9kZWxbY29sdW1JbmRleF1bbGluZUluZGV4XS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuXHRcdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IGxpc3RDc3NUb0FwcGx5Lmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdFx0aWYoXHRsaXN0Q3NzVG9BcHBseVtqXS5pdGVtIFx0XHQ9PT0gaSAmJlxuXHRcdFx0XHRcdFx0XHRsaXN0Q3NzVG9BcHBseVtqXS5pc1JlYWwgXHQ9PT0gdHJ1ZSl7XG5cdFx0XHRcdFx0XHRmdWxsTW9kZWxbY29sdW1JbmRleF1bbGluZUluZGV4XVtpXS5jc3NDbGFzcyA9IHRoaXMuZWFzeUZvcm1EcmFnV2F5Q29uZmlnLmdldEl0ZW1Dc3NEZXBlbmRpbmdOdW1iZXJJdGVtc0luUm93KHJlYWxDb3VudCk7XG5cdFx0XHRcdFx0fSBcdFxuXHRcdFx0XHR9XG5cdFx0XHR9XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cdFx0XG5cdFxuXHRcbn1cblxuZHJhZ0Ryb3BJdGVtQ291bnRlclNlcnZpY2UuJGluamVjdCA9IFtcblx0J2Vhc3lGb3JtRHJhZ1dheUNvbmZpZydcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGRyYWdEcm9wSXRlbUNvdW50ZXJTZXJ2aWNlO1xuXG5leHBvcnQge1xuXHREUkFHX0RST1BfSVRFTV9DT1VOVEVSX1NFUlZJQ0Vcbn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2RkQ29udGVudENvdW50ZXIvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGRDb250ZW50Q291bnRlci5zZXJ2aWNlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  256. /***/ },
  257. /* 56 */
  258. /***/ function(module, exports, __webpack_require__) {
  259. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.DD_DECOR_CONTAINER_DIRECTIVE = undefined;\n\nvar _edaDragDropWayDragdropDdDecorContainerTemplate = __webpack_require__(57);\n\nvar _edaDragDropWayDragdropDdDecorContainerTemplate2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorContainerTemplate);\n\nvar _edaDragDropWayDragdropDdDecorContainer = __webpack_require__(58);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* global angular */\nvar DD_DECOR_CONTAINER_DIRECTIVE = 'ddDecorContainer';\n\nfunction ddDecorContainer() {\n\tvar directive = {\n\t\trestrict: 'A',\n\t\ttemplate: _edaDragDropWayDragdropDdDecorContainerTemplate2.default,\n\t\tscope: {},\n\t\tcontroller: _edaDragDropWayDragdropDdDecorContainer.DD_DECOR_CONTAINER_CONTROLLER_NAME,\n\t\tcontrollerAs: _edaDragDropWayDragdropDdDecorContainer.DD_DECOR_CONTAINER_CONTROLLERAS_NAME,\n\t\tbindToController: {\n\t\t\t'styleParam': '=ddContainerProperties',\n\t\t\t'isStillCollapsed': '=ddContainerIsCollpased',\n\t\t\t'verboseMode': '@ddContainerVerboseMode',\n\t\t\t'currentIndex': '@ddContainerCurrentIndex',\n\t\t\t'collpaseAll': '&ddCollapseAll'\n\t\t},\n\t\ttransclude: true,\n\t\tlink: linkFct\n\t};\n\treturn directive;\n\n\tfunction linkFct($scope, element, attrs, ctrl, transclude) {\n\t\tvar verboseModeActive = $scope.ddDecorContainerCtrl.verboseMode;\n\t\tvar currentIndex = $scope.ddDecorContainerCtrl.currentIndex;\n\t\t$scope.ddDecorContainerCtrl.isCollapsed = false;\n\t\t$scope.ddDecorContainerCtrl.config.isEnabled = false;\n\t\t/**\n \t* forceCollapse when :\n \t* dragDropConfigModel.containerConfig.decoration.isCollapsed changed (here bound to $scope.isStillCollapsed)\n \t*/\n\t\t$scope.$watch(function () {\n\t\t\treturn $scope.ddDecorContainerCtrl.isStillCollapsed;\n\t\t}, function (newVal, oldVal) {\n\t\t\tif (newVal !== oldVal) {\n\t\t\t\tif ($scope.$parent.$parent.$index === 0) $scope.ddDecorContainerCtrl.isCollapsed = newVal;\n\t\t\t}\n\t\t});\n\n\t\t/**\n \t* verbose mode for developments only\n \t*/\n\t\tif (verboseModeActive !== '') {\n\t\t\tvar verbose = angular.lowercase(verboseModeActive);\n\t\t\tif (verbose === 'true' || verbose === '1') {\n\t\t\t\t/* eslint no-console:0 */\n\t\t\t\tconsole.dir({\n\t\t\t\t\twhoAmI: 'I am verbose from ddDecorContainer link',\n\t\t\t\t\tverbodeMode: verbose,\n\t\t\t\t\tParentParentIndex: $scope.$parent.$parent.$index,\n\t\t\t\t\tParentIndex: $scope.$parent.$index,\n\t\t\t\t\tcurrentIndex: currentIndex,\n\t\t\t\t\tstyleParam: $scope.ddDecorContainerCtrl.styleParam,\n\t\t\t\t\tcolumnindex: $scope.$parent.$parent.$parent.$parent.$index\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n \t* no header (no title, no collapse....)\n \t*/\n\t\t//$scope.ddDecorContainerCtrl.config.isEnabled\n\t\tif (typeof currentIndex !== 'undefined') {\n\t\t\tif (currentIndex !== '') {\n\t\t\t\t/**\n \t* specific 1st column\n \t*/\n\t\t\t\tif (currentIndex === '0') {\n\t\t\t\t\t/**\n \t* apply title\n \t*/\n\t\t\t\t\tif (typeof $scope.ddDecorContainerCtrl.styleParam.title !== 'undefined') {\n\t\t\t\t\t\t$scope.ddDecorContainerCtrl.currentTitle = $scope.ddDecorContainerCtrl.styleParam.title;\n\t\t\t\t\t\t$scope.ddDecorContainerCtrl.config.isEnabled = true;\n\t\t\t\t\t\t$scope.ddDecorContainerCtrl.isCollapsed = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n \t* prevent transclusion creating child scope\n \t* want to know more about what I'm talking about : check this nice tip on the subject :\n \t* http://angular-tips.com/blog/2014/03/transclusion-and-scopes/\n \t*/\n\t\ttransclude($scope.$parent, function (contentClone) {\n\t\t\t/**\n \t* transclusion will append content to '<div id=\"ddDecorContainerWillTranscludeHere\"></div>'\n \t*/\n\t\t\tvar childDiv = angular.element(element.children()[1]);\n\t\t\tchildDiv.append(contentClone);\n\t\t});\n\t}\n}\n\nexports.default = ddDecorContainer;\nexports.DD_DECOR_CONTAINER_DIRECTIVE = DD_DECOR_CONTAINER_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckNvbnRhaW5lci9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29yQ29udGFpbmVyLmRpcmVjdGl2ZS5qcz84MWI0Il0sIm5hbWVzIjpbIkREX0RFQ09SX0NPTlRBSU5FUl9ESVJFQ1RJVkUiLCJkZERlY29yQ29udGFpbmVyIiwiZGlyZWN0aXZlIiwicmVzdHJpY3QiLCJ0ZW1wbGF0ZSIsInNjb3BlIiwiY29udHJvbGxlciIsImNvbnRyb2xsZXJBcyIsImJpbmRUb0NvbnRyb2xsZXIiLCJ0cmFuc2NsdWRlIiwibGluayIsImxpbmtGY3QiLCIkc2NvcGUiLCJlbGVtZW50IiwiYXR0cnMiLCJjdHJsIiwidmVyYm9zZU1vZGVBY3RpdmUiLCJkZERlY29yQ29udGFpbmVyQ3RybCIsInZlcmJvc2VNb2RlIiwiY3VycmVudEluZGV4IiwiaXNDb2xsYXBzZWQiLCJjb25maWciLCJpc0VuYWJsZWQiLCIkd2F0Y2giLCJpc1N0aWxsQ29sbGFwc2VkIiwibmV3VmFsIiwib2xkVmFsIiwiJHBhcmVudCIsIiRpbmRleCIsInZlcmJvc2UiLCJhbmd1bGFyIiwibG93ZXJjYXNlIiwiY29uc29sZSIsImRpciIsIndob0FtSSIsInZlcmJvZGVNb2RlIiwiUGFyZW50UGFyZW50SW5kZXgiLCJQYXJlbnRJbmRleCIsInN0eWxlUGFyYW0iLCJjb2x1bW5pbmRleCIsInRpdGxlIiwiY3VycmVudFRpdGxlIiwiY29udGVudENsb25lIiwiY2hpbGREaXYiLCJjaGlsZHJlbiIsImFwcGVuZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFGQTtBQVFBLElBQU1BLCtCQUErQixrQkFBckM7O0FBR0EsU0FBU0MsZ0JBQVQsR0FBMkI7QUFDMUIsS0FBSUMsWUFBWTtBQUNmQyxZQUFlLEdBREE7QUFFZkMsb0VBRmU7QUFHZkMsU0FBYyxFQUhDO0FBSWZDLHdG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Q29udGVudCI6WyIvKiBnbG9iYWwgYW5ndWxhciAqL1xuaW1wb3J0IGRkRGVjb3JDb250YWluZXJUZW1wbGF0ZSBcdFx0XHRmcm9tICcuL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JDb250YWluZXIudGVtcGxhdGUuaHRtbCc7XG5pbXBvcnQge1xuXHRERF9ERUNPUl9DT05UQUlORVJfQ09OVFJPTExFUl9OQU1FLFxuXHRERF9ERUNPUl9DT05UQUlORVJfQ09OVFJPTExFUkFTX05BTUVcbn1cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckNvbnRhaW5lci5jb250cm9sbGVyJztcblxuXG5jb25zdCBERF9ERUNPUl9DT05UQUlORVJfRElSRUNUSVZFID0gJ2RkRGVjb3JDb250YWluZXInO1xuXG5cbmZ1bmN0aW9uIGRkRGVjb3JDb250YWluZXIoKXtcblx0bGV0IGRpcmVjdGl2ZSA9IHtcblx0XHRyZXN0cmljdFx0XHRcdFx0XHQ6ICdBJyxcblx0XHR0ZW1wbGF0ZVx0XHRcdFx0XHQ6IGRkRGVjb3JDb250YWluZXJUZW1wbGF0ZSxcblx0XHRzY29wZSBcdFx0XHRcdFx0XHQ6IHt9LFxuXHRcdGNvbnRyb2xsZXJcdFx0XHRcdDogRERfREVDT1JfQ09OVEFJTkVSX0NPTlRST0xMRVJfTkFNRSxcbiAgICBjb250cm9sbGVyQXNcdFx0XHQ6IEREX0RFQ09SX0NPTlRBSU5FUl9DT05UUk9MTEVSQVNfTkFNRSxcbiAgICBiaW5kVG9Db250cm9sbGVyXHQ6IHtcblx0XHRcdCdzdHlsZVBhcmFtJyAgICAgICAgICAgOiAnPWRkQ29udGFpbmVyUHJvcGVydGllcycsXG5cdFx0XHQnaXNTdGlsbENvbGxhcHNlZCcgICAgIDogJz1kZENvbnRhaW5lcklzQ29sbHBhc2VkJyxcblx0XHRcdCd2ZXJib3NlTW9kZScgICAgICAgICAgOiAnQGRkQ29udGFpbmVyVmVyYm9zZU1vZGUnLFxuXHRcdFx0J2N1cnJlbnRJbmRleCcgICAgICAgICA6ICdAZGRDb250YWluZXJDdXJyZW50SW5kZXgnLFxuXHRcdFx0J2NvbGxwYXNlQWxsJyAgICAgICAgICA6ICcmZGRDb2xsYXBzZUFsbCdcbiAgICB9LFxuXHRcdHRyYW5zY2x1ZGVcdFx0XHRcdDogdHJ1ZSxcblx0XHRsaW5rIFx0XHRcdFx0XHRcdFx0Olx0bGlua0ZjdFxuXHR9O1xuXHRyZXR1cm4gZGlyZWN0aXZlO1xuXG5cdGZ1bmN0aW9uIGxpbmtGY3QoJHNjb3BlLCBlbGVtZW50LCBhdHRycywgY3RybCwgdHJhbnNjbHVkZSl7XG5cdFx0bGV0IHZlcmJvc2VNb2RlQWN0aXZlICAgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD0gJHNjb3BlLmRkRGVjb3JDb250YWluZXJDdHJsLnZlcmJvc2VNb2RlO1xuXHRcdGxldCBjdXJyZW50SW5kZXggICAgICAgIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ9ICRzY29wZS5kZERlY29yQ29udGFpbmVyQ3RybC5jdXJyZW50SW5kZXg7XG5cdFx0JHNjb3BlLmRkRGVjb3JDb250YWluZXJDdHJsLmlzQ29sbGFwc2VkXHRcdFx0XHQ9IGZhbHNlO1xuXHRcdCRzY29wZS5kZERlY29yQ29udGFpbmVyQ3RybC5jb25maWcuaXNFbmFibGVkXHQ9IGZhbHNlO1xuXHRcdC8qKlxuXHRcdFx0KiBmb3JjZUNvbGxhcHNlIHdoZW4gOlxuXHRcdFx0KiAgZHJhZ0Ryb3BDb25maWdNb2RlbC5jb250YWluZXJDb25maWcuZGVjb3JhdGlvbi5pc0NvbGxhcHNlZCBjaGFuZ2VkIChoZXJlIGJvdW5kIHRvICRzY29wZS5pc1N0aWxsQ29sbGFwc2VkKVxuXHRcdFx0Ki9cblx0XHQkc2NvcGUuJHdhdGNoKCgpPT4gJHNjb3BlLmRkRGVjb3JDb250YWluZXJDdHJsLmlzU3RpbGxDb2xsYXBzZWQsKG5ld1ZhbCwgb2xkVmFsKT0+e1xuXHRcdFx0aWYgKG5ld1ZhbCAhPT0gb2xkVmFsKSB7XG5cdFx0XHRcdGlmICgkc2NvcGUuJHBhcmVudC4kcGFyZW50LiRpbmRleCA9PT0gMCkgJHNjb3BlLmRkRGVjb3JDb250YWluZXJDdHJsLmlzQ29sbGFwc2VkID0gbmV3VmFsO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cblx0XHQvKipcblx0XHRcdCogdmVyYm9zZSBtb2RlIGZvciBkZXZlbG9wbWVudHMgb25seVxuXHRcdFx0Ki9cblx0XHRpZiAodmVyYm9zZU1vZGVBY3RpdmUgIT09ICcnKSB7XG5cdFx0XHR2YXIgdmVyYm9zZSA9IGFuZ3VsYXIubG93ZXJjYXNlKHZlcmJvc2VNb2RlQWN0aXZlKTtcblx0XHRcdGlmICh2ZXJib3NlID09PSAndHJ1ZScgfHwgdmVyYm9zZSA9PT0gJzEnKSB7XG5cdFx0XHRcdC8qIGVzbGludCBuby1jb25zb2xlOjAgKi9cblx0XHRcdFx0Y29uc29sZS5kaXIoe1xuXHRcdFx0XHRcdHdob0FtSSAgICAgICAgICAgICAgOiAgICdJIGFtIHZlcmJvc2UgZnJvbSBkZERlY29yQ29udGFpbmVyIGxpbmsnLFxuXHRcdFx0XHRcdHZlcmJvZGVNb2RlICAgICAgICAgOiAgIHZlcmJvc2UsXG5cdFx0XHRcdFx0UGFyZW50UGFyZW50SW5kZXggICA6ICAgJHNjb3BlLiRwYXJlbnQuJHBhcmVudC4kaW5kZXgsXG5cdFx0XHRcdFx0UGFyZW50SW5kZXggICAgICAgICA6ICAgJHNjb3BlLiRwYXJlbnQuJGluZGV4LFxuXHRcdFx0XHRcdGN1cnJlbnRJbmRleCAgICAgICAgOiAgIGN1cnJlbnRJbmRleCxcblx0XHRcdFx0XHRzdHlsZVBhcmFtICAgICAgICAgIDogICAkc2NvcGUuZGREZWNvckNvbnRhaW5lckN0cmwuc3R5bGVQYXJhbSxcblx0XHRcdFx0XHRjb2x1bW5pbmRleCAgICAgICAgIDogICAkc2NvcGUuJHBhcmVudC4kcGFyZW50LiRwYXJlbnQuJHBhcmVudC4kaW5kZXhcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0XHQqIG5vIGhlYWRlciAobm8gdGl0bGUsIG5vIGNvbGxhcHNlLi4uLilcblx0XHRcdCovXG5cdFx0Ly8kc2NvcGUuZGREZWNvckNvbnRhaW5lckN0cmwuY29uZmlnLmlzRW5hYmxlZFxuXHRcdGlmICh0eXBlb2YgY3VycmVudEluZGV4ICE9PSAndW5kZWZpbmVkJykge1xuXHRcdFx0aWYgKGN1cnJlbnRJbmRleCAhPT0gJycpIHtcblx0XHRcdFx0LyoqXG5cdFx0XHRcdFx0KiBzcGVjaWZpYyAxc3QgY29sdW1uXG5cdFx0XHRcdFx0Ki9cblx0XHRcdFx0aWYgKGN1cnJlbnRJbmRleCA9PT0gJzAnKSB7XG5cdFx0XHRcdFx0LyoqXG5cdFx0XHRcdFx0XHQqIGFwcGx5IHRpdGxlXG5cdFx0XHRcdFx0XHQqL1xuXHRcdFx0XHRcdGlmICh0eXBlb2YgJHNjb3BlLmRkRGVjb3JDb250YWluZXJDdHJsLnN0eWxlUGFyYW0udGl0bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRcdFx0XHRcdCRzY29wZS5kZERlY29yQ29udGFpbmVyQ3RybC5jdXJyZW50VGl0bGUgICAgIFx0PSAkc2NvcGUuZGREZWNvckNvbnRhaW5lckN0cmwuc3R5bGVQYXJhbS50aXRsZTtcblx0XHRcdFx0XHRcdFx0JHNjb3BlLmRkRGVjb3JDb250YWluZXJDdHJsLmNvbmZpZy5pc0VuYWJsZWRcdD0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0JHNjb3BlLmRkRGVjb3JDb250YWluZXJDdHJsLmlzQ29sbGFwc2VkICAgICBcdD0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblxuXHRcdC8qKlxuXHRcdFx0KiBwcmV2ZW50IHRyYW5zY2x1c2lvbiBjcmVhdGluZyBjaGlsZCBzY29wZVxuXHRcdFx0KiB3YW50IHRvIGtub3cgbW9yZSBhYm91dCB3aGF0IEknbSB0YWxraW5nIGFib3V0IDogY2hlY2sgdGhpcyBuaWNlIHRpcCBvbiB0aGUgc3ViamVjdCA6XG5cdFx0XHQqIGh0dHA6Ly9hbmd1bGFyLXRpcHMuY29tL2Jsb2cvMjAxNC8wMy90cmFuc2NsdXNpb24tYW5kLXNjb3Blcy9cblx0XHRcdCovXG5cdFx0dHJhbnNjbHVkZSgkc2NvcGUuJHBhcmVudCwgZnVuY3Rpb24oY29udGVudENsb25lKXtcblx0XHRcdFx0LyoqXG5cdFx0XHRcdFx0KiB0cmFuc2NsdXNpb24gd2lsbCBhcHBlbmQgY29udGVudCB0byAnPGRpdiBpZD1cImRkRGVjb3JDb250YWluZXJXaWxsVHJhbnNjbHVkZUhlcmVcIj48L2Rpdj4nXG5cdFx0XHRcdFx0Ki9cblx0XHRcdFx0dmFyIGNoaWxkRGl2ID0gYW5ndWxhci5lbGVtZW50KGVsZW1lbnQuY2hpbGRyZW4oKVsxXSk7XG5cdFx0XHRcdGNoaWxkRGl2LmFwcGVuZChjb250ZW50Q2xvbmUpO1xuXHRcdH0pO1xuXG5cblxuXHR9XG5cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBkZERlY29yQ29udGFpbmVyO1xuXG5leHBvcnQge1xuXHRERF9ERUNPUl9DT05UQUlORVJfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2RkRGVjb3JDb250YWluZXIvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckNvbnRhaW5lci5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  260. /***/ },
  261. /* 57 */
  262. /***/ function(module, exports) {
  263. eval("module.exports = \"<div ng-click=\\\"ddDecorContainerCtrl.collapseFct()\\\">\\n <h6\\n ng-show=\\\"ddDecorContainerCtrl.config.isEnabled\\\"\\n class=\\\"ddDecorContainerCtrl.isCollapsableZone\\\"\\n style=\\\"cursor:pointer\\\">\\n <button class=\\\"btn btn-primary btn-xs\\\">\\n <span class=\\\"{{ddDecorContainerCtrl.currentIconClass()}}\\\"></span>\\n </button>\\n &nbsp;\\n {{ddDecorContainerCtrl.currentTitle}}\\n </h6>\\n</div>\\n<div uib-collapse=\\\"ddDecorContainerCtrl.isCollapsed\\\">\\n <div id=\\\"ddDecorContainerWillTranscludeHere\\\"></div>\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckNvbnRhaW5lci9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29yQ29udGFpbmVyLnRlbXBsYXRlLmh0bWw/ZGFmOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrU0FBa1MseUNBQXlDLHFDQUFxQyxRQUFRLG1DQUFtQyIsImZpbGUiOiI1Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2IG5nLWNsaWNrPVxcXCJkZERlY29yQ29udGFpbmVyQ3RybC5jb2xsYXBzZUZjdCgpXFxcIj5cXG4gICA8aDZcXG4gICAgbmctc2hvdz1cXFwiZGREZWNvckNvbnRhaW5lckN0cmwuY29uZmlnLmlzRW5hYmxlZFxcXCJcXG4gICAgY2xhc3M9XFxcImRkRGVjb3JDb250YWluZXJDdHJsLmlzQ29sbGFwc2FibGVab25lXFxcIlxcbiAgICBzdHlsZT1cXFwiY3Vyc29yOnBvaW50ZXJcXFwiPlxcbiAgICA8YnV0dG9uIGNsYXNzPVxcXCJidG4gYnRuLXByaW1hcnkgYnRuLXhzXFxcIj5cXG4gICAgICA8c3BhbiBjbGFzcz1cXFwie3tkZERlY29yQ29udGFpbmVyQ3RybC5jdXJyZW50SWNvbkNsYXNzKCl9fVxcXCI+PC9zcGFuPlxcbiAgICA8L2J1dHRvbj5cXG4gICAgJm5ic3A7XFxuICAgIHt7ZGREZWNvckNvbnRhaW5lckN0cmwuY3VycmVudFRpdGxlfX1cXG4gIDwvaDY+XFxuPC9kaXY+XFxuPGRpdiB1aWItY29sbGFwc2U9XFxcImRkRGVjb3JDb250YWluZXJDdHJsLmlzQ29sbGFwc2VkXFxcIj5cXG4gICA8ZGl2IGlkPVxcXCJkZERlY29yQ29udGFpbmVyV2lsbFRyYW5zY2x1ZGVIZXJlXFxcIj48L2Rpdj5cXG48L2Rpdj5cXG5cIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2RkRGVjb3JDb250YWluZXIvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckNvbnRhaW5lci50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSA1N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  264. /***/ },
  265. /* 58 */
  266. /***/ function(module, exports) {
  267. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* global angular */\nvar DD_DECOR_CONTAINER_CONTROLLER_NAME = 'ddDecorContainerController';\nvar DD_DECOR_CONTAINER_CONTROLLERAS_NAME = 'ddDecorContainerCtrl';\n\nvar ddDecorContainerController = function () {\n\tfunction ddDecorContainerController() {\n\t\t_classCallCheck(this, ddDecorContainerController);\n\n\t\tthis.init();\n\t}\n\n\t_createClass(ddDecorContainerController, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tthis.config = angular.extend({}, { isEnabled: false });\n\t\t\t/**\n \t* TODO (low priority) : make icon css configurable (provider)\n \t*/\n\t\t\tthis.icons = angular.extend({}, {\n\t\t\t\tclosedClass: 'glyphicon glyphicon-eye-open',\n\t\t\t\topened: 'glyphicon glyphicon-eye-close'\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'collapseFct',\n\t\tvalue: function collapseFct() {\n\t\t\tthis.collpaseAll({ exceptThisOne: this.styleParam.WhenIndex }); //note : collpaseAll function is boundToController from directive attribute : 'collpaseAll' : '&ddCollapseAll'\n\t\t\tthis.isCollapsed = !this.isCollapsed;\n\t\t\tthis.isStillCollapsed = this.isCollapsed; //note : isStillCollapsed is boundToController from directive attribute : 'isStillCollapsed' : '=ddContainerIsCollpased',\n\t\t}\n\t}, {\n\t\tkey: 'currentIconClass',\n\t\tvalue: function currentIconClass() {\n\t\t\tif (this.isCollapsed) {\n\t\t\t\treturn this.icons.closedClass;\n\t\t\t} else {\n\t\t\t\treturn this.icons.opened;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn ddDecorContainerController;\n}();\n\nexports.default = ddDecorContainerController;\nexports.DD_DECOR_CONTAINER_CONTROLLER_NAME = DD_DECOR_CONTAINER_CONTROLLER_NAME;\nexports.DD_DECOR_CONTAINER_CONTROLLERAS_NAME = DD_DECOR_CONTAINER_CONTROLLERAS_NAME;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckNvbnRhaW5lci9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29yQ29udGFpbmVyLmNvbnRyb2xsZXIuanM/OGEyMCJdLCJuYW1lcyI6WyJERF9ERUNPUl9DT05UQUlORVJfQ09OVFJPTExFUl9OQU1FIiwiRERfREVDT1JfQ09OVEFJTkVSX0NPTlRST0xMRVJBU19OQU1FIiwiZGREZWNvckNvbnRhaW5lckNvbnRyb2xsZXIiLCJpbml0IiwiY29uZmlnIiwiYW5ndWxhciIsImV4dGVuZCIsImlzRW5hYmxlZCIsImljb25zIiwiY2xvc2VkQ2xhc3MiLCJvcGVuZWQiLCJjb2xscGFzZUFsbCIsImV4Y2VwdFRoaXNPbmUiLCJzdHlsZVBhcmFtIiwiV2hlbkluZGV4IiwiaXNDb2xsYXBzZWQiLCJpc1N0aWxsQ29sbGFwc2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQSxJQUFNQSxxQ0FBdUMsNEJBQTdDO0FBQ0EsSUFBTUMsdUNBQXVDLHNCQUE3Qzs7SUFFTUMsMEI7QUFFTCx1Q0FBYTtBQUFBOztBQUNaLE9BQUtDLElBQUw7QUFDQTs7Ozt5QkFFSztBQUNMLFFBQUtDLE1BQUwsR0FBY0MsUUFBUUMsTUFBUixDQUFlLEVBQWYsRUFBbUIsRUFBRUMsV0FBWSxLQUFkLEVBQW5CLENBQWQ7QUFDQTs7O0FBR0EsUUFBS0MsS0FBTCxHQUFhSCxRQUFRQyxNQUFSLENBQWUsRUFBZixFQUFtQjtBQUMvQkcsaUJBQWMsOEJBRGlCO0FBRS9CQyxZQUFXO0FBRm9CLElBQW5CLENBQWI7QUFJQTs7O2dDQUVZO0FBQ1osUUFBS0MsV0FBTCxDQUFpQixFQUFDQyxlQUFlLEtBQUtDLFVBQUwsQ0FBZ0JDLFNBQWhDLEVBQWpCLEVBRFksQ0FDbUQ7QUFDL0QsUUFBS0MsV0FBTCxHQUFzQixDQUFDLEtBQUtBLFdBQTVCO0FBQ0EsUUFBS0MsZ0JBQUwsR0FBd0IsS0FBS0QsV0FBN0IsQ0FIWSxDQUc4QjtBQUMxQzs7O3FDQUVpQjtBQUNqQixPQUFJLEtBQUtBLFdBQVQsRUFBc0I7QUFDckIsV0FBTyxLQUFLUCxLQUFMLENBQVdDLFdBQWxCO0FBQ0EsSUFGRCxNQUVLO0FBQ0osV0FBTyxLQUFLRCxLQUFMLENBQVdFLE1BQWxCO0FBQ0E7QUFDRDs7Ozs7O2tCQUlhUiwwQjtRQUdkRixrQyxHQUFBQSxrQztRQUNBQyxvQyxHQUFBQSxvQyIsImZpbGUiOiI1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5jb25zdCBERF9ERUNPUl9DT05UQUlORVJfQ09OVFJPTExFUl9OQU1FIFx0XHQ9ICdkZERlY29yQ29udGFpbmVyQ29udHJvbGxlcic7XG5jb25zdCBERF9ERUNPUl9DT05UQUlORVJfQ09OVFJPTExFUkFTX05BTUVcdD0gJ2RkRGVjb3JDb250YWluZXJDdHJsJztcblxuY2xhc3MgZGREZWNvckNvbnRhaW5lckNvbnRyb2xsZXJ7XG5cdFxuXHRjb25zdHJ1Y3Rvcigpe1xuXHRcdHRoaXMuaW5pdCgpO1xuXHR9XG5cdFxuXHRpbml0KCl7XG5cdFx0dGhpcy5jb25maWcgPSBhbmd1bGFyLmV4dGVuZCh7fSwgeyBpc0VuYWJsZWQgOiBmYWxzZSB9KTtcblx0XHQvKipcblx0XHRcdCogIFRPRE8gKGxvdyBwcmlvcml0eSkgOiBtYWtlIGljb24gY3NzIGNvbmZpZ3VyYWJsZSAocHJvdmlkZXIpXG5cdFx0XHQqL1x0XHRcblx0XHR0aGlzLmljb25zID0gYW5ndWxhci5leHRlbmQoe30sIHtcblx0XHRcdGNsb3NlZENsYXNzXHQ6ICdnbHlwaGljb24gZ2x5cGhpY29uLWV5ZS1vcGVuJyxcblx0XHRcdG9wZW5lZFx0XHRcdDogJ2dseXBoaWNvbiBnbHlwaGljb24tZXllLWNsb3NlJ1x0XHRcdFxuXHRcdH0pO1xuXHR9XG5cdFxuXHRjb2xsYXBzZUZjdCgpe1xuXHRcdHRoaXMuY29sbHBhc2VBbGwoe2V4Y2VwdFRoaXNPbmU6IHRoaXMuc3R5bGVQYXJhbS5XaGVuSW5kZXh9KTsgIC8vbm90ZSA6IGNvbGxwYXNlQWxsIGZ1bmN0aW9uIGlzIGJvdW5kVG9Db250cm9sbGVyIGZyb20gZGlyZWN0aXZlIGF0dHJpYnV0ZSA6ICdjb2xscGFzZUFsbCcgOiAnJmRkQ29sbGFwc2VBbGwnXG5cdFx0dGhpcy5pc0NvbGxhcHNlZCBcdFx0XHQ9ICF0aGlzLmlzQ29sbGFwc2VkO1xuXHRcdHRoaXMuaXNTdGlsbENvbGxhcHNlZFx0PSB0aGlzLmlzQ29sbGFwc2VkOyAvL25vdGUgOiBpc1N0aWxsQ29sbGFwc2VkIGlzIGJvdW5kVG9Db250cm9sbGVyIGZyb20gZGlyZWN0aXZlIGF0dHJpYnV0ZSA6ICdpc1N0aWxsQ29sbGFwc2VkJyA6ICc9ZGRDb250YWluZXJJc0NvbGxwYXNlZCcsXG5cdH1cdFxuXHRcblx0Y3VycmVudEljb25DbGFzcygpe1xuXHRcdGlmICh0aGlzLmlzQ29sbGFwc2VkKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5pY29ucy5jbG9zZWRDbGFzcztcblx0XHR9ZWxzZXtcblx0XHRcdHJldHVybiB0aGlzLmljb25zLm9wZW5lZDtcblx0XHR9XG5cdH1cdFxuXHRcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGREZWNvckNvbnRhaW5lckNvbnRyb2xsZXI7XG5cbmV4cG9ydCB7XG5cdEREX0RFQ09SX0NPTlRBSU5FUl9DT05UUk9MTEVSX05BTUUsXG5cdEREX0RFQ09SX0NPTlRBSU5FUl9DT05UUk9MTEVSQVNfTkFNRVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9kcmFnZHJvcC9kZERlY29yQ29udGFpbmVyL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JDb250YWluZXIuY29udHJvbGxlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  268. /***/ },
  269. /* 59 */
  270. /***/ function(module, exports, __webpack_require__) {
  271. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.DD_DECOR_DROPZONE_DIRECTIVE = undefined;\n\nvar _edaDragDropWayDragdropDdDecorDropZoneTemplate = __webpack_require__(60);\n\nvar _edaDragDropWayDragdropDdDecorDropZoneTemplate2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorDropZoneTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DD_DECOR_DROPZONE_DIRECTIVE = 'ddDecorDropZone'; /* global angular */\n\n\nfunction ddDecorDropZone() {\n\tvar directive = {\n\t\trestrict: 'A',\n\t\ttemplate: _edaDragDropWayDragdropDdDecorDropZoneTemplate2.default,\n\t\tscope: {\n\t\t\t'styleParam': '=ddDropZoneProperties',\n\t\t\t'verboseMode': '@ddDropZoneVerboseMode',\n\t\t\t'currentIndex': '@ddDropZoneCurrentIndex',\n\t\t\t'addNewLineFct': '&ddDropZoneAddNewLine'\n\t\t},\n\t\ttransclude: true,\n\t\tlink: linkfct\n\t};\n\treturn directive;\n\n\tfunction linkfct($scope) {\n\n\t\tvar verboseModeActive = $scope.verboseMode;\n\t\tvar currentIndex = $scope.currentIndex;\n\n\t\t$scope.headerConfig = {\n\t\t\tHeaderButtonVisible: false,\n\t\t\taffixAttr: 'bs-affix',\n\t\t\taffixEnabled: false\n\t\t};\n\t\t/**\n \t* verbose mode : just for dev\n \t*/\n\t\tif (verboseModeActive !== '') {\n\t\t\tvar verbose = angular.lowercase(verboseModeActive);\n\t\t\tif (verbose === 'true' || verbose === '1') {\n\t\t\t\t/* eslint no-console:0 */\n\t\t\t\tconsole.dir({\n\t\t\t\t\twhoAmI: 'I am verbose from ddDecorDropZone link',\n\t\t\t\t\tverbodeMode: verbose,\n\t\t\t\t\tParentParentIndex: $scope.$parent.$parent.$index,\n\t\t\t\t\tParentIndex: $scope.$parent.$index,\n\t\t\t\t\tcurrentIndex: currentIndex,\n\t\t\t\t\tstyleParam: $scope.styleParam\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (typeof currentIndex !== 'undefined') {\n\t\t\tif (currentIndex !== '') {\n\t\t\t\t// apply title\n\t\t\t\tif (typeof $scope.styleParam.title !== 'undefined') $scope.currentTitle = $scope.styleParam.title;\n\t\t\t\t//apply font-awesome\n\t\t\t\tif (typeof $scope.styleParam.fontAwesomeIcon !== 'undefined') $scope.currentFontAwesome = $scope.styleParam.fontAwesomeIcon;\n\t\t\t\t//show add new line button\n\t\t\t\tif (currentIndex === '1') $scope.headerConfig.HeaderButtonVisible = true;\n\t\t\t}\n\t\t}\n\t}\n}\n\nddDecorDropZone.$inject = [];\n\nexports.default = ddDecorDropZone;\nexports.DD_DECOR_DROPZONE_DIRECTIVE = DD_DECOR_DROPZONE_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckRyb3Bab25lL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JEcm9wWm9uZS5kaXJlY3RpdmUuanM/ZjdhMSJdLCJuYW1lcyI6WyJERF9ERUNPUl9EUk9QWk9ORV9ESVJFQ1RJVkUiLCJkZERlY29yRHJvcFpvbmUiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRlbXBsYXRlIiwic2NvcGUiLCJ0cmFuc2NsdWRlIiwibGluayIsImxpbmtmY3QiLCIkc2NvcGUiLCJ2ZXJib3NlTW9kZUFjdGl2ZSIsInZlcmJvc2VNb2RlIiwiY3VycmVudEluZGV4IiwiaGVhZGVyQ29uZmlnIiwiSGVhZGVyQnV0dG9uVmlzaWJsZSIsImFmZml4QXR0ciIsImFmZml4RW5hYmxlZCIsInZlcmJvc2UiLCJhbmd1bGFyIiwibG93ZXJjYXNlIiwiY29uc29sZSIsImRpciIsIndob0FtSSIsInZlcmJvZGVNb2RlIiwiUGFyZW50UGFyZW50SW5kZXgiLCIkcGFyZW50IiwiJGluZGV4IiwiUGFyZW50SW5kZXgiLCJzdHlsZVBhcmFtIiwidGl0bGUiLCJjdXJyZW50VGl0bGUiLCJmb250QXdlc29tZUljb24iLCJjdXJyZW50Rm9udEF3ZXNvbWUiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLDhCQUE4QixpQkFBcEMsQyxDQUhBOzs7QUFLQSxTQUFTQyxlQUFULEdBQTBCO0FBQ3pCLEtBQUlDLFlBQVk7QUFDZkMsWUFBWSxHQURHO0FBRWZDLG1FQUZlO0FBR2ZDLFNBQVU7QUFDVCxpQkFBa0IsdUJBRFQ7QUFFVCxrQkFBa0Isd0JBRlQ7QUFHVCxtQkFBa0IseUJBSFQ7QUFJVCxvQkFBa0I7QUFKVCxHQUhLO0FBU2ZDLGNBQWEsSUFURTtBQVVmQyxRQUFVQztBQVZLLEVBQWhCO0FBWUEsUUFBT04sU0FBUDs7QUFFQSxVQUFTTSxPQUFULENBQWlCQyxNQUFqQixFQUF3Qjs7QUFFdkIsTUFBSUMsb0JBQXNCRCxPQUFPRSxXQUFqQztBQUNBLE1BQUlDLGVBQXNCSCxPQUFPRyxZQUFqQzs7QUFFQUgsU0FBT0ksWUFBUCxHQUFzQjtBQUNyQkMsd0JBQXNCLEtBREQ7QUFFckJDLGNBQXNCLFVBRkQ7QUFHckJDLGlCQUFzQjtBQUhELEdBQXRCO0FBS0E7OztBQUdBLE1BQUlOLHNCQUFzQixFQUExQixFQUE4QjtBQUM3QixPQUFJTyxVQUFVQyxRQUFRQyxTQUFSLENBQWtCVCxpQkFBbEIsQ0FBZDtBQUNBLE9BQUlPLFlBQVksTUFBWixJQUFzQkEsWUFBWSxHQUF0QyxFQUEyQztBQUMxQztBQUNBRyxZQUFRQyxHQUFSLENBQVk7QUFDWEMsYUFBc0Isd0NBRFg7QUFFWEMsa0JBQXNCTixPQUZYO0FBR1hPLHdCQUFzQmYsT0FBT2dCLE9BQVAsQ0FBZUEsT0FBZixDQUF1QkMsTUFIbEM7QUFJWEMsa0JBQXNCbEIsT0FBT2dCLE9BQVAsQ0FBZUMsTUFKMUI7QUFLWGQsbUJBQXNCQSxZQUxYO0FBTVhnQixpQkFBc0JuQixPQUFPbUI7QUFObEIsS0FBWjtBQVFBO0FBQ0Q7O0FBR0QsTUFBSSxPQUFPaEIsWUFBUCxLQUF3QixXQUE1QixFQUF5QztBQUN4QyxPQUFJQSxpQkFBaUIsRUFBckIsRUFBeUI7QUFDeEI7QUFDQSxRQUFJLE9BQU9ILE9BQU9tQixVQUFQLENBQWtCQyxLQUF6QixLQUFtQyxXQUF2QyxFQUFvRHBCLE9BQU9xQixZQUFQLEdBQXNCckIsT0FBT21CLFVBQVAsQ0FBa0JDLEtBQXhDO0FBQ3BEO0FBQ0EsUUFBSSxPQUFPcEIsT0FBT21CLFVBQVAsQ0FBa0JHLGVBQXpCLEtBQTZDLFdBQWpELEVBQThEdEIsT0FBT3VCLGtCQUFQLEdBQTRCdkIsT0FBT21CLFVBQVAsQ0FBa0JHLGVBQTlDO0FBQzlEO0FBQ0EsUUFBSW5CLGlCQUFpQixHQUFyQixFQUEwQkgsT0FBT0ksWUFBUCxDQUFvQkMsbUJBQXBCLEdBQTBDLElBQTFDO0FBQzFCO0FBQ0Q7QUFFRDtBQUVEOztBQUdEYixnQkFBZ0JnQyxPQUFoQixHQUEwQixFQUExQjs7a0JBRWVoQyxlO1FBR2RELDJCLEdBQUFBLDJCIiwiZmlsZSI6IjU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cbmltcG9ydCBkZERlY29yRHJvcFpvbmVUZW1wbGF0ZSBmcm9tICcuL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JEcm9wWm9uZS50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgRERfREVDT1JfRFJPUFpPTkVfRElSRUNUSVZFID0gJ2RkRGVjb3JEcm9wWm9uZSc7XG5cbmZ1bmN0aW9uIGRkRGVjb3JEcm9wWm9uZSgpe1xuXHRsZXQgZGlyZWN0aXZlID0ge1xuXHRcdHJlc3RyaWN0IFx0OiAnQScsXG5cdFx0dGVtcGxhdGUgXHQ6IGRkRGVjb3JEcm9wWm9uZVRlbXBsYXRlLFxuXHRcdHNjb3BlXHRcdFx0Olx0e1xuXHRcdFx0J3N0eWxlUGFyYW0nICAgIDogJz1kZERyb3Bab25lUHJvcGVydGllcycsXG5cdFx0XHQndmVyYm9zZU1vZGUnICAgOiAnQGRkRHJvcFpvbmVWZXJib3NlTW9kZScsXG5cdFx0XHQnY3VycmVudEluZGV4JyAgOiAnQGRkRHJvcFpvbmVDdXJyZW50SW5kZXgnLFxuXHRcdFx0J2FkZE5ld0xpbmVGY3QnIDogJyZkZERyb3Bab25lQWRkTmV3TGluZSdcblx0XHR9LFxuXHRcdHRyYW5zY2x1ZGVcdDogdHJ1ZSxcblx0XHRsaW5rXHRcdFx0XHQ6IGxpbmtmY3Rcblx0fTtcblx0cmV0dXJuIGRpcmVjdGl2ZTtcblxuXHRmdW5jdGlvbiBsaW5rZmN0KCRzY29wZSl7XG5cblx0XHRsZXQgdmVyYm9zZU1vZGVBY3RpdmUgICA9ICRzY29wZS52ZXJib3NlTW9kZTtcblx0XHRsZXQgY3VycmVudEluZGV4ICAgICAgICA9ICRzY29wZS5jdXJyZW50SW5kZXg7XG5cblx0XHQkc2NvcGUuaGVhZGVyQ29uZmlnID0ge1xuXHRcdFx0SGVhZGVyQnV0dG9uVmlzaWJsZSA6IGZhbHNlLFxuXHRcdFx0YWZmaXhBdHRyICAgICAgICAgICA6ICdicy1hZmZpeCcsXG5cdFx0XHRhZmZpeEVuYWJsZWQgICAgICAgIDogZmFsc2Vcblx0XHR9O1xuXHRcdC8qKlxuXHRcdFx0KiB2ZXJib3NlIG1vZGUgOiBqdXN0IGZvciBkZXZcblx0XHRcdCovXG5cdFx0aWYgKHZlcmJvc2VNb2RlQWN0aXZlICE9PSAnJykge1xuXHRcdFx0bGV0IHZlcmJvc2UgPSBhbmd1bGFyLmxvd2VyY2FzZSh2ZXJib3NlTW9kZUFjdGl2ZSk7XG5cdFx0XHRpZiAodmVyYm9zZSA9PT0gJ3RydWUnIHx8IHZlcmJvc2UgPT09ICcxJykge1xuXHRcdFx0XHQvKiBlc2xpbnQgbm8tY29uc29sZTowICovXG5cdFx0XHRcdGNvbnNvbGUuZGlyKHtcblx0XHRcdFx0XHR3aG9BbUkgICAgICAgICAgICAgIDogJ0kgYW0gdmVyYm9zZSBmcm9tIGRkRGVjb3JEcm9wWm9uZSBsaW5rJyxcblx0XHRcdFx0XHR2ZXJib2RlTW9kZSAgICAgICAgIDogdmVyYm9zZSxcblx0XHRcdFx0XHRQYXJlbnRQYXJlbnRJbmRleCAgIDogJHNjb3BlLiRwYXJlbnQuJHBhcmVudC4kaW5kZXgsXG5cdFx0XHRcdFx0UGFyZW50SW5kZXggICAgICAgICA6ICRzY29wZS4kcGFyZW50LiRpbmRleCxcblx0XHRcdFx0XHRjdXJyZW50SW5kZXggICAgICAgIDogY3VycmVudEluZGV4LFxuXHRcdFx0XHRcdHN0eWxlUGFyYW0gICAgICAgICAgOiAkc2NvcGUuc3R5bGVQYXJhbVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cblxuXHRcdGlmICh0eXBlb2YgY3VycmVudEluZGV4ICE9PSAndW5kZWZpbmVkJykge1xuXHRcdFx0aWYgKGN1cnJlbnRJbmRleCAhPT0gJycpIHtcblx0XHRcdFx0Ly8gYXBwbHkgdGl0bGVcblx0XHRcdFx0aWYgKHR5cGVvZiAkc2NvcGUuc3R5bGVQYXJhbS50aXRsZSAhPT0gJ3VuZGVmaW5lZCcpICRzY29wZS5jdXJyZW50VGl0bGUgPSAkc2NvcGUuc3R5bGVQYXJhbS50aXRsZTtcblx0XHRcdFx0Ly9hcHBseSBmb250LWF3ZXNvbWVcblx0XHRcdFx0aWYgKHR5cGVvZiAkc2NvcGUuc3R5bGVQYXJhbS5mb250QXdlc29tZUljb24gIT09ICd1bmRlZmluZWQnKSAkc2NvcGUuY3VycmVudEZvbnRBd2Vzb21lID0gJHNjb3BlLnN0eWxlUGFyYW0uZm9udEF3ZXNvbWVJY29uO1xuXHRcdFx0XHQvL3Nob3cgYWRkIG5ldyBsaW5lIGJ1dHRvblxuXHRcdFx0XHRpZiAoY3VycmVudEluZGV4ID09PSAnMScpICRzY29wZS5oZWFkZXJDb25maWcuSGVhZGVyQnV0dG9uVmlzaWJsZSA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxufVxuXG5cbmRkRGVjb3JEcm9wWm9uZS4kaW5qZWN0ID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IGRkRGVjb3JEcm9wWm9uZTtcblxuZXhwb3J0IHtcblx0RERfREVDT1JfRFJPUFpPTkVfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2RkRGVjb3JEcm9wWm9uZS9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29yRHJvcFpvbmUuZGlyZWN0aXZlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  272. /***/ },
  273. /* 60 */
  274. /***/ function(module, exports) {
  275. eval("module.exports = \"<div class=\\\"{{styleParam.ApplycssClass}}\\\">\\n <div id=\\\"visualPanel\\\">\\n <div class=\\\"panel panel-default\\\">\\n <div class=\\\"panel-heading\\\">\\n <h3 class=\\\"panel-title\\\">\\n <i class=\\\"{{currentFontAwesome}}\\\"></i>&nbsp;\\n {{currentTitle}}\\n <div ng-show=\\\"headerConfig.HeaderButtonVisible\\\">\\n <button\\n class=\\\"btn btn-primary btn-xs buttonHeaderAddNewLine center-block\\\"\\n ng-click=\\\"addNewLineFct();\\\">\\n <span class=\\\"glyphicon glyphicon-plus\\\"></span>\\n &nbsp;\\n add new line\\n </button>\\n </div>\\n </h3>\\n </div>\\n <div class=\\\"panel-body\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-12\\\" ng-transclude>\\n </div>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckRyb3Bab25lL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JEcm9wWm9uZS50ZW1wbGF0ZS5odG1sPzM5NWEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDLDBCQUEwQiwyS0FBMkssb0JBQW9CLGFBQWEsY0FBYyxjQUFjLG9OQUFvTiwyRkFBMkYiLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiPGRpdiBjbGFzcz1cXFwie3tzdHlsZVBhcmFtLkFwcGx5Y3NzQ2xhc3N9fVxcXCI+XFxuICA8ZGl2IGlkPVxcXCJ2aXN1YWxQYW5lbFxcXCI+XFxuICAgIDxkaXYgIGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1oZWFkaW5nXFxcIj5cXG4gICAgICAgIDxoMyBjbGFzcz1cXFwicGFuZWwtdGl0bGVcXFwiPlxcbiAgICAgICAgICA8aSBjbGFzcz1cXFwie3tjdXJyZW50Rm9udEF3ZXNvbWV9fVxcXCI+PC9pPiZuYnNwO1xcbiAgICAgICAgICB7e2N1cnJlbnRUaXRsZX19XFxuICAgICAgICAgICA8ZGl2IG5nLXNob3c9XFxcImhlYWRlckNvbmZpZy5IZWFkZXJCdXR0b25WaXNpYmxlXFxcIj5cXG4gICAgICAgICAgICAgPGJ1dHRvblxcbiAgICAgICAgICAgICAgY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeSBidG4teHMgYnV0dG9uSGVhZGVyQWRkTmV3TGluZSBjZW50ZXItYmxvY2tcXFwiXFxuICAgICAgICAgICAgICBuZy1jbGljaz1cXFwiYWRkTmV3TGluZUZjdCgpO1xcXCI+XFxuICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImdseXBoaWNvbiBnbHlwaGljb24tcGx1c1xcXCI+PC9zcGFuPlxcbiAgICAgICAgICAgICAgICZuYnNwO1xcbiAgICAgICAgICAgICAgIGFkZCBuZXcgbGluZVxcbiAgICAgICAgICAgICA8L2J1dHRvbj5cXG4gICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9oMz5cXG4gICAgICA8L2Rpdj5cXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG4gICAgICAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbC1tZC0xMlxcXCIgbmctdHJhbnNjbHVkZT5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgPC9kaXY+XFxuPC9kaXY+XFxuXCJcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9kcmFnZHJvcC9kZERlY29yRHJvcFpvbmUvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckRyb3Bab25lLnRlbXBsYXRlLmh0bWxcbi8vIG1vZHVsZSBpZCA9IDYwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  276. /***/ },
  277. /* 61 */
  278. /***/ function(module, exports, __webpack_require__) {
  279. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.DRAG_DROP_DECOR_ITEM = undefined;\n\nvar _edaDragDropWayDragdropDdDecorItemTemplate = __webpack_require__(62);\n\nvar _edaDragDropWayDragdropDdDecorItemTemplate2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorItemTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DRAG_DROP_DECOR_ITEM = 'ddDecorItem';\n\nfunction ddDecorItem(easyFormDragWayConfig) {\n\tvar directive = {\n\t\trestrict: 'A',\n\t\tscope: {\n\t\t\t'verboseMode': '@ddItemVerboseMode',\n\t\t\t'currentIndex': '@ddItemCurrentIndex',\n\t\t\t'parentIndex': '@ddItemParentIndex',\n\t\t\t'parentParentIndex': '@ddItemParentParentIndex',\n\t\t\t'lineItemsCount': '@ddItemsCount',\n\t\t\t'cssClass': '@ddItemCssClass'\n\t\t},\n\t\ttemplate: _edaDragDropWayDragdropDdDecorItemTemplate2.default,\n\t\ttransclude: true,\n\t\tlink: linkfct\n\t};\n\treturn directive;\n\n\tfunction linkfct($scope, element, attrs, ctrl, transclude) {\n\t\tvar verboseModeActive = $scope.verboseMode;\n\t\tvar currentIndex = $scope.currentIndex;\n\t\tvar parentIndex = $scope.parentIndex;\n\t\tvar listClass = easyFormDragWayConfig.getDistinctItemCssClass();\n\n\t\t/**\n \t* init css class\n \t*/\n\t\tangular.forEach(listClass, function (css) {\n\t\t\treturn element.removeClass(css);\n\t\t});\n\t\telement.addClass($scope.cssClass);\n\t\t/**\n \t* update css class\n \t*/\n\t\t$scope.$watch('cssClass', function (newValue, oldValue) {\n\t\t\tif (newValue !== oldValue) {\n\t\t\t\t/**\n \t* update css class\n \t*/\n\t\t\t\tangular.forEach(listClass, function (css) {\n\t\t\t\t\treturn element.removeClass(css);\n\t\t\t\t});\n\t\t\t\telement.addClass(newValue);\n\t\t\t}\n\t\t});\n\n\t\t/**\n \t* verbose mode : just for dev \n \t*/\n\t\tif (verboseModeActive !== '') {\n\t\t\tvar verbose = angular.lowercase(verboseModeActive);\n\t\t\tif (verbose === 'true' || verbose === '1') {\n\t\t\t\t/* eslint no-console:0 */\n\t\t\t\tconsole.dir({\n\t\t\t\t\twhoAmI: 'I am verbose from ddDecorItem directive link',\n\t\t\t\t\tverbodeMode: verbose,\n\t\t\t\t\tParentParentIndex: $scope.$parent.$parent.$index,\n\t\t\t\t\tParentIndex: parentIndex,\n\t\t\t\t\tparentParentIndex: $scope.parentParentIndex,\n\t\t\t\t\tcurrentIndex: currentIndex,\n\t\t\t\t\tlineItemsCount: $scope.lineItemsCount\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t/**\n \t* control column : apply css class to item\n \t*/\n\t\tif ($scope.parentParentIndex === '0') element.addClass(listClass[0]);\n\t\t/**\n \t* prevent transclusion creating child scope \n \t*\n \t*\n \t* NOTE :if you want to know more about what I'm saying : check this nice tip on the subject : \n \t* http://angular-tips.com/blog/2014/03/transclusion-and-scopes/ \n \t*/\n\t\ttransclude($scope.$parent, function (contentClone) {\n\t\t\t/**\n \t* transclusion will append content to '<div id=\"itemDirectiveTranscludeHere\"></div>' \n \t*/\n\t\t\tvar childDiv = angular.element(element.children()[0]);\n\t\t\tchildDiv.append(contentClone);\n\t\t});\n\t}\n}\n\nddDecorItem.$inject = ['easyFormDragWayConfig'];\n\nexports.default = ddDecorItem;\nexports.DRAG_DROP_DECOR_ITEM = DRAG_DROP_DECOR_ITEM;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckl0ZW0vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckl0ZW0uZGlyZWN0aXZlLmpzP2MxMzAiXSwibmFtZXMiOlsiRFJBR19EUk9QX0RFQ09SX0lURU0iLCJkZERlY29ySXRlbSIsImVhc3lGb3JtRHJhZ1dheUNvbmZpZyIsImRpcmVjdGl2ZSIsInJlc3RyaWN0Iiwic2NvcGUiLCJ0ZW1wbGF0ZSIsInRyYW5zY2x1ZGUiLCJsaW5rIiwibGlua2ZjdCIsIiRzY29wZSIsImVsZW1lbnQiLCJhdHRycyIsImN0cmwiLCJ2ZXJib3NlTW9kZUFjdGl2ZSIsInZlcmJvc2VNb2RlIiwiY3VycmVudEluZGV4IiwicGFyZW50SW5kZXgiLCJsaXN0Q2xhc3MiLCJnZXREaXN0aW5jdEl0ZW1Dc3NDbGFzcyIsImFuZ3VsYXIiLCJmb3JFYWNoIiwiY3NzIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImNzc0NsYXNzIiwiJHdhdGNoIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsInZlcmJvc2UiLCJsb3dlcmNhc2UiLCJjb25zb2xlIiwiZGlyIiwid2hvQW1JIiwidmVyYm9kZU1vZGUiLCJQYXJlbnRQYXJlbnRJbmRleCIsIiRwYXJlbnQiLCIkaW5kZXgiLCJQYXJlbnRJbmRleCIsInBhcmVudFBhcmVudEluZGV4IiwibGluZUl0ZW1zQ291bnQiLCJjb250ZW50Q2xvbmUiLCJjaGlsZERpdiIsImNoaWxkcmVuIiwiYXBwZW5kIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7Ozs7QUFFQSxJQUFNQSx1QkFBdUIsYUFBN0I7O0FBRUEsU0FBU0MsV0FBVCxDQUFxQkMscUJBQXJCLEVBQTJDO0FBQzFDLEtBQUlDLFlBQVk7QUFDZkMsWUFBYSxHQURFO0FBRWZDLFNBQWE7QUFDWixrQkFBbUIsb0JBRFA7QUFFWixtQkFBb0IscUJBRlI7QUFHWixrQkFBbUIsb0JBSFA7QUFJWix3QkFBc0IsMEJBSlY7QUFLWixxQkFBcUIsZUFMVDtBQU1aLGVBQWlCO0FBTkwsR0FGRTtBQVVmQywrREFWZTtBQVdmQyxjQUFhLElBWEU7QUFZZkMsUUFBVUM7QUFaSyxFQUFoQjtBQWNBLFFBQU9OLFNBQVA7O0FBRUEsVUFBU00sT0FBVCxDQUFpQkMsTUFBakIsRUFBeUJDLE9BQXpCLEVBQWtDQyxLQUFsQyxFQUF5Q0MsSUFBekMsRUFBK0NOLFVBQS9DLEVBQTBEO0FBQ3pELE1BQUlPLG9CQUFvQkosT0FBT0ssV0FBL0I7QUFDQSxNQUFJQyxlQUFvQk4sT0FBT00sWUFBL0I7QUFDQSxNQUFJQyxjQUFvQlAsT0FBT08sV0FBL0I7QUFDQSxNQUFJQyxZQUFvQmhCLHNCQUFzQmlCLHVCQUF0QixFQUF4Qjs7QUFHQTs7O0FBR0FDLFVBQVFDLE9BQVIsQ0FBZ0JILFNBQWhCLEVBQTJCLFVBQUNJLEdBQUQ7QUFBQSxVQUFPWCxRQUFRWSxXQUFSLENBQW9CRCxHQUFwQixDQUFQO0FBQUEsR0FBM0I7QUFDQVgsVUFBUWEsUUFBUixDQUFpQmQsT0FBT2UsUUFBeEI7QUFDQTs7O0FBR0FmLFNBQU9nQixNQUFQLENBQWMsVUFBZCxFQUEwQixVQUFDQyxRQUFELEVBQVdDLFFBQVgsRUFBc0I7QUFDL0MsT0FBR0QsYUFBYUMsUUFBaEIsRUFBeUI7QUFDeEI7OztBQUdBUixZQUFRQyxPQUFSLENBQWdCSCxTQUFoQixFQUEyQixVQUFDSSxHQUFEO0FBQUEsWUFBT1gsUUFBUVksV0FBUixDQUFvQkQsR0FBcEIsQ0FBUDtBQUFBLEtBQTNCO0FBQ0FYLFlBQVFhLFFBQVIsQ0FBaUJHLFFBQWpCO0FBQ0E7QUFDRCxHQVJEOztBQVVBOzs7QUFHQSxNQUFJYixzQkFBc0IsRUFBMUIsRUFBOEI7QUFDN0IsT0FBSWUsVUFBVVQsUUFBUVUsU0FBUixDQUFrQmhCLGlCQUFsQixDQUFkO0FBQ0EsT0FBSWUsWUFBWSxNQUFaLElBQXNCQSxZQUFZLEdBQXRDLEVBQTJDO0FBQzFDO0FBQ0FFLFlBQVFDLEdBQVIsQ0FBWTtBQUNYQyxhQUFzQiw4Q0FEWDtBQUVYQyxrQkFBc0JMLE9BRlg7QUFHWE0sd0JBQXNCekIsT0FBTzBCLE9BQVAsQ0FBZUEsT0FBZixDQUF1QkMsTUFIbEM7QUFJWEMsa0JBQXNCckIsV0FKWDtBQUtYc0Isd0JBQXNCN0IsT0FBTzZCLGlCQUxsQjtBQU1YdkIsbUJBQXNCQSxZQU5YO0FBT1h3QixxQkFBc0I5QixPQUFPOEI7QUFQbEIsS0FBWjtBQVNBO0FBQ0Q7QUFDRDs7O0FBR0EsTUFBSTlCLE9BQU82QixpQkFBUCxLQUE2QixHQUFqQyxFQUFzQzVCLFFBQVFhLFFBQVIsQ0FBaUJOLFVBQVUsQ0FBVixDQUFqQjtBQUN0Qzs7Ozs7OztBQU9BWCxhQUFXRyxPQUFPMEIsT0FBbEIsRUFBMkIsVUFBQ0ssWUFBRCxFQUFnQjtBQUN6Qzs7O0FBR0EsT0FBSUMsV0FBV3RCLFFBQVFULE9BQVIsQ0FBZ0JBLFFBQVFnQyxRQUFSLEdBQW1CLENBQW5CLENBQWhCLENBQWY7QUFDQUQsWUFBU0UsTUFBVCxDQUFnQkgsWUFBaEI7QUFDRCxHQU5EO0FBT0E7QUFFRDs7QUFHRHhDLFlBQVk0QyxPQUFaLEdBQXNCLENBQ3JCLHVCQURxQixDQUF0Qjs7a0JBSWU1QyxXO1FBR2RELG9CLEdBQUFBLG9CIiwiZmlsZSI6IjYxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgZHJhZ2Ryb3BJdGVtVGVtcGxhdGUgZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29ySXRlbS50ZW1wbGF0ZS5odG1sJztcblxuY29uc3QgRFJBR19EUk9QX0RFQ09SX0lURU0gPSAnZGREZWNvckl0ZW0nO1xuXG5mdW5jdGlvbiBkZERlY29ySXRlbShlYXN5Rm9ybURyYWdXYXlDb25maWcpe1xuXHRsZXQgZGlyZWN0aXZlID0ge1xuXHRcdHJlc3RyaWN0XHRcdFx0OiAnQScsXG5cdFx0c2NvcGVcdFx0XHRcdFx0OiAge1xuXHRcdFx0J3ZlcmJvc2VNb2RlJyBcdFx0XHQ6ICdAZGRJdGVtVmVyYm9zZU1vZGUnLFxuXHRcdFx0J2N1cnJlbnRJbmRleCcgXHRcdFx0OiAnQGRkSXRlbUN1cnJlbnRJbmRleCcsXG5cdFx0XHQncGFyZW50SW5kZXgnXHRcdFx0XHQ6ICdAZGRJdGVtUGFyZW50SW5kZXgnLFxuXHRcdFx0J3BhcmVudFBhcmVudEluZGV4J1x0OiAnQGRkSXRlbVBhcmVudFBhcmVudEluZGV4JywgXG5cdFx0XHQnbGluZUl0ZW1zQ291bnQnIFx0XHQ6ICdAZGRJdGVtc0NvdW50Jyxcblx0XHRcdCdjc3NDbGFzcydcdFx0XHRcdFx0OiAnQGRkSXRlbUNzc0NsYXNzJ1xuXHRcdH0sXG5cdFx0dGVtcGxhdGVcdFx0OiAgIGRyYWdkcm9wSXRlbVRlbXBsYXRlLFxuXHRcdHRyYW5zY2x1ZGVcdDogdHJ1ZSxcdFxuXHRcdGxpbmtcdFx0XHRcdDogbGlua2ZjdFx0XG5cdH07XG5cdHJldHVybiBkaXJlY3RpdmU7XG5cdFxuXHRmdW5jdGlvbiBsaW5rZmN0KCRzY29wZSwgZWxlbWVudCwgYXR0cnMsIGN0cmwsIHRyYW5zY2x1ZGUpe1xuXHRcdGxldCB2ZXJib3NlTW9kZUFjdGl2ZSA9ICRzY29wZS52ZXJib3NlTW9kZTtcblx0XHRsZXQgY3VycmVudEluZGV4ICAgICAgPSAkc2NvcGUuY3VycmVudEluZGV4O1xuXHRcdGxldCBwYXJlbnRJbmRleCAgICAgICA9ICRzY29wZS5wYXJlbnRJbmRleDtcblx0XHRsZXQgbGlzdENsYXNzICAgICAgICAgPSBlYXN5Rm9ybURyYWdXYXlDb25maWcuZ2V0RGlzdGluY3RJdGVtQ3NzQ2xhc3MoKTtcblx0XG5cdFxuXHRcdC8qKlxuXHRcdFx0KiBpbml0IGNzcyBjbGFzc1xuXHRcdFx0Ki9cblx0XHRhbmd1bGFyLmZvckVhY2gobGlzdENsYXNzLCAoY3NzKT0+ZWxlbWVudC5yZW1vdmVDbGFzcyhjc3MpKTtcblx0XHRlbGVtZW50LmFkZENsYXNzKCRzY29wZS5jc3NDbGFzcyk7ICAgICAgICAgICAgICAgIFxuXHRcdC8qKlxuXHRcdFx0KiB1cGRhdGUgY3NzIGNsYXNzXG5cdFx0XHQqL1xuXHRcdCRzY29wZS4kd2F0Y2goJ2Nzc0NsYXNzJywgKG5ld1ZhbHVlLCBvbGRWYWx1ZSk9Pntcblx0XHRcdGlmKG5ld1ZhbHVlICE9PSBvbGRWYWx1ZSl7XG5cdFx0XHRcdC8qKlxuXHRcdFx0XHRcdCogdXBkYXRlIGNzcyBjbGFzc1xuXHRcdFx0XHRcdCovXG5cdFx0XHRcdGFuZ3VsYXIuZm9yRWFjaChsaXN0Q2xhc3MsIChjc3MpPT5lbGVtZW50LnJlbW92ZUNsYXNzKGNzcykpO1xuXHRcdFx0XHRlbGVtZW50LmFkZENsYXNzKG5ld1ZhbHVlKTsgXG5cdFx0XHR9XHRcblx0XHR9KTtcblx0XG5cdFx0LyoqXG5cdFx0XHQqIHZlcmJvc2UgbW9kZSA6IGp1c3QgZm9yIGRldiBcblx0XHRcdCovXG5cdFx0aWYgKHZlcmJvc2VNb2RlQWN0aXZlICE9PSAnJykge1xuXHRcdFx0bGV0IHZlcmJvc2UgPSBhbmd1bGFyLmxvd2VyY2FzZSh2ZXJib3NlTW9kZUFjdGl2ZSk7XG5cdFx0XHRpZiAodmVyYm9zZSA9PT0gJ3RydWUnIHx8IHZlcmJvc2UgPT09ICcxJykge1xuXHRcdFx0XHQvKiBlc2xpbnQgbm8tY29uc29sZTowICovXG5cdFx0XHRcdGNvbnNvbGUuZGlyKHtcblx0XHRcdFx0XHR3aG9BbUkgICAgICAgICAgICAgIDogJ0kgYW0gdmVyYm9zZSBmcm9tIGRkRGVjb3JJdGVtIGRpcmVjdGl2ZSBsaW5rJyxcblx0XHRcdFx0XHR2ZXJib2RlTW9kZSAgICAgICAgIDogdmVyYm9zZSxcblx0XHRcdFx0XHRQYXJlbnRQYXJlbnRJbmRleCAgIDogJHNjb3BlLiRwYXJlbnQuJHBhcmVudC4kaW5kZXgsXG5cdFx0XHRcdFx0UGFyZW50SW5kZXggICAgICAgICA6IHBhcmVudEluZGV4LFxuXHRcdFx0XHRcdHBhcmVudFBhcmVudEluZGV4ICAgOiAkc2NvcGUucGFyZW50UGFyZW50SW5kZXgsXG5cdFx0XHRcdFx0Y3VycmVudEluZGV4ICAgICAgICA6IGN1cnJlbnRJbmRleCxcblx0XHRcdFx0XHRsaW5lSXRlbXNDb3VudCAgICAgIDogJHNjb3BlLmxpbmVJdGVtc0NvdW50XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSAgICAgICAgICAgICAgICAgICAgXG5cdFx0fVxuXHRcdC8qKlxuXHRcdFx0KiBjb250cm9sIGNvbHVtbiA6IGFwcGx5IGNzcyBjbGFzcyB0byBpdGVtXG5cdFx0XHQqL1xuXHRcdGlmICgkc2NvcGUucGFyZW50UGFyZW50SW5kZXggPT09ICcwJykgZWxlbWVudC5hZGRDbGFzcyhsaXN0Q2xhc3NbMF0pO1xuXHRcdC8qKlxuXHRcdFx0KiBwcmV2ZW50IHRyYW5zY2x1c2lvbiBjcmVhdGluZyBjaGlsZCBzY29wZSAgXG5cdFx0XHQqXG5cdFx0XHQqXG5cdFx0XHQqIE5PVEUgOmlmIHlvdSB3YW50IHRvIGtub3cgbW9yZSBhYm91dCB3aGF0IEknbSBzYXlpbmcgOiBjaGVjayB0aGlzIG5pY2UgdGlwIG9uIHRoZSBzdWJqZWN0IDogXG5cdFx0XHQqIGh0dHA6Ly9hbmd1bGFyLXRpcHMuY29tL2Jsb2cvMjAxNC8wMy90cmFuc2NsdXNpb24tYW5kLXNjb3Blcy8gICAgICAgIFxuXHRcdFx0Ki9cblx0XHR0cmFuc2NsdWRlKCRzY29wZS4kcGFyZW50LCAoY29udGVudENsb25lKT0+e1xuXHRcdFx0XHQvKipcblx0XHRcdFx0XHQqIHRyYW5zY2x1c2lvbiB3aWxsIGFwcGVuZCBjb250ZW50IHRvICc8ZGl2IGlkPVwiaXRlbURpcmVjdGl2ZVRyYW5zY2x1ZGVIZXJlXCI+PC9kaXY+JyBcblx0XHRcdFx0XHQqL1xuXHRcdFx0XHRsZXQgY2hpbGREaXYgPSBhbmd1bGFyLmVsZW1lbnQoZWxlbWVudC5jaGlsZHJlbigpWzBdKTsgXG5cdFx0XHRcdGNoaWxkRGl2LmFwcGVuZChjb250ZW50Q2xvbmUpO1xuXHRcdH0pOyAgIFx0XHRcblx0fVxuXHRcbn1cblxuXG5kZERlY29ySXRlbS4kaW5qZWN0ID0gW1xuXHQnZWFzeUZvcm1EcmFnV2F5Q29uZmlnJ1xuXTtcblxuZXhwb3J0IGRlZmF1bHQgZGREZWNvckl0ZW07XG5cbmV4cG9ydCB7XG5cdERSQUdfRFJPUF9ERUNPUl9JVEVNXG59O1xuXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckl0ZW0vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckl0ZW0uZGlyZWN0aXZlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  280. /***/ },
  281. /* 62 */
  282. /***/ function(module, exports) {
  283. eval("module.exports = \"<div>\\n <div id=\\\"itemDirectiveTranscludeHere\\\"></div>\\n</div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckl0ZW0vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckl0ZW0udGVtcGxhdGUuaHRtbD9hNjljIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjYyLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcIjxkaXY+XFxuICA8ZGl2IGlkPVxcXCJpdGVtRGlyZWN0aXZlVHJhbnNjbHVkZUhlcmVcXFwiPjwvZGl2PlxcbjwvZGl2PlxcblwiXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckl0ZW0vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckl0ZW0udGVtcGxhdGUuaHRtbFxuLy8gbW9kdWxlIGlkID0gNjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
  284. /***/ },
  285. /* 63 */
  286. /***/ function(module, exports) {
  287. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DRAG_DROP_ITEM_DECOR_SERVICE = 'dragDropItemDecorationService';\n\nvar dragDropItemDecorationService = function () {\n\tfunction dragDropItemDecorationService(easyFormDragWayConfig) {\n\t\t_classCallCheck(this, dragDropItemDecorationService);\n\n\t\tthis.easyFormDragWayConfig = easyFormDragWayConfig;\n\t\tthis.init();\n\t}\n\n\t_createClass(dragDropItemDecorationService, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tthis._listItemClass = [].concat(this.easyFormDragWayConfig.getListItemCssClass());\n\t\t}\n\t}, {\n\t\tkey: 'getListClass',\n\t\tvalue: function getListClass() {\n\t\t\treturn this._listItemClass;\n\t\t}\n\t}, {\n\t\tkey: 'getCssClassWhenNumberItemsInRowIs',\n\t\tvalue: function getCssClassWhenNumberItemsInRowIs(thisNumber) {\n\t\t\treturn this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(thisNumber);\n\t\t}\n\t}, {\n\t\tkey: 'applyCssClassWholeLine',\n\t\tvalue: function applyCssClassWholeLine(model, indexColumn, indexLine, numberItems, restrictToThisIndexColumn) {\n\t\t\tif (typeof numberItems !== 'undefined' && typeof indexLine !== 'undefined' && typeof indexColumn !== 'undefined' && typeof model !== 'undefined' && typeof restrictToThisIndexColumn !== 'undefined') {\n\t\t\t\tif (indexColumn === restrictToThisIndexColumn) {\n\t\t\t\t\tfor (var i = model[indexColumn][indexLine].length - 1; i >= 0; i--) {\n\t\t\t\t\t\tmodel[indexColumn][indexLine][i].cssClass = this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(numberItems);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateCssClassWholeColumn',\n\t\tvalue: function updateCssClassWholeColumn(model, indexColumn) {\n\t\t\tif (typeof indexColumn !== 'undefined' && typeof model !== 'undefined') {\n\t\t\t\tfor (var cpt = model[indexColumn].length - 1; cpt >= 0; cpt--) {\n\t\t\t\t\tfor (var i = model[indexColumn][cpt].length - 1; i >= 0; i--) {\n\t\t\t\t\t\tmodel[indexColumn][cpt][i].cssClass = this.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(model[indexColumn][cpt].length);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn dragDropItemDecorationService;\n}();\n\ndragDropItemDecorationService.$inject = ['easyFormDragWayConfig'];\n\nexports.default = dragDropItemDecorationService;\nexports.DRAG_DROP_ITEM_DECOR_SERVICE = DRAG_DROP_ITEM_DECOR_SERVICE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckl0ZW0vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckl0ZW0uc2VydmljZS5qcz8wMDY4Il0sIm5hbWVzIjpbIkRSQUdfRFJPUF9JVEVNX0RFQ09SX1NFUlZJQ0UiLCJkcmFnRHJvcEl0ZW1EZWNvcmF0aW9uU2VydmljZSIsImVhc3lGb3JtRHJhZ1dheUNvbmZpZyIsImluaXQiLCJfbGlzdEl0ZW1DbGFzcyIsImNvbmNhdCIsImdldExpc3RJdGVtQ3NzQ2xhc3MiLCJ0aGlzTnVtYmVyIiwiZ2V0SXRlbUNzc0RlcGVuZGluZ051bWJlckl0ZW1zSW5Sb3ciLCJtb2RlbCIsImluZGV4Q29sdW1uIiwiaW5kZXhMaW5lIiwibnVtYmVySXRlbXMiLCJyZXN0cmljdFRvVGhpc0luZGV4Q29sdW1uIiwiaSIsImxlbmd0aCIsImNzc0NsYXNzIiwiY3B0IiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQU1BLCtCQUErQiwrQkFBckM7O0lBRU1DLDZCO0FBRUwsd0NBQVlDLHFCQUFaLEVBQWtDO0FBQUE7O0FBQ2pDLE9BQUtBLHFCQUFMLEdBQTZCQSxxQkFBN0I7QUFDQSxPQUFLQyxJQUFMO0FBQ0E7Ozs7eUJBRUs7QUFDTCxRQUFLQyxjQUFMLEdBQXNCLEdBQUdDLE1BQUgsQ0FBVSxLQUFLSCxxQkFBTCxDQUEyQkksbUJBQTNCLEVBQVYsQ0FBdEI7QUFDQTs7O2lDQUVhO0FBQ2IsVUFBTyxLQUFLRixjQUFaO0FBQ0E7OztvREFFaUNHLFUsRUFBVztBQUM1QyxVQUFPLEtBQUtMLHFCQUFMLENBQTJCTSxtQ0FBM0IsQ0FBK0RELFVBQS9ELENBQVA7QUFDQTs7O3lDQUVzQkUsSyxFQUFPQyxXLEVBQWFDLFMsRUFBV0MsVyxFQUFhQyx5QixFQUEwQjtBQUM1RixPQUFJLE9BQU9ELFdBQVAsS0FBdUIsV0FBdkIsSUFDRixPQUFPRCxTQUFQLEtBQXFCLFdBRG5CLElBRUYsT0FBT0QsV0FBUCxLQUF1QixXQUZyQixJQUdGLE9BQU9ELEtBQVAsS0FBaUIsV0FIZixJQUlGLE9BQU9JLHlCQUFQLEtBQXFDLFdBSnZDLEVBSW9EO0FBQ25ELFFBQUlILGdCQUFnQkcseUJBQXBCLEVBQStDO0FBQzlDLFVBQUssSUFBSUMsSUFBSUwsTUFBTUMsV0FBTixFQUFtQkMsU0FBbkIsRUFBOEJJLE1BQTlCLEdBQXVDLENBQXBELEVBQXVERCxLQUFLLENBQTVELEVBQStEQSxHQUEvRCxFQUFvRTtBQUNsRUwsWUFBTUMsV0FBTixFQUFtQkMsU0FBbkIsRUFBOEJHLENBQTlCLEVBQWlDRSxRQUFqQyxHQUE0QyxLQUFLZCxxQkFBTCxDQUEyQk0sbUNBQTNCLENBQStESSxXQUEvRCxDQUE1QztBQUNEO0FBQ0Q7QUFDRCxXQUFPLElBQVA7QUFDQSxJQVhELE1BV0s7QUFDSixXQUFPLEtBQVA7QUFDQTtBQUNEOzs7NENBRXlCSCxLLEVBQU9DLFcsRUFBWTtBQUM1QyxPQUFJLE9BQU9BLFdBQVAsS0FBdUIsV0FBdkIsSUFDRixPQUFPRCxLQUFQLEtBQWlCLFdBRG5CLEVBQ2dDO0FBQy9CLFNBQUssSUFBSVEsTUFBTVIsTUFBTUMsV0FBTixFQUFtQkssTUFBbkIsR0FBNEIsQ0FBM0MsRUFBOENFLE9BQU8sQ0FBckQsRUFBd0RBLEtBQXhELEVBQStEO0FBQzlELFVBQUssSUFBSUgsSUFBSUwsTUFBTUMsV0FBTixFQUFtQk8sR0FBbkIsRUFBd0JGLE1BQXhCLEdBQWlDLENBQTlDLEVBQWlERCxLQUFLLENBQXRELEVBQXlEQSxHQUF6RCxFQUE4RDtBQUM1REwsWUFBTUMsV0FBTixFQUFtQk8sR0FBbkIsRUFBd0JILENBQXhCLEVBQTJCRSxRQUEzQixHQUFzQyxLQUFLZCxxQkFBTCxDQUEyQk0sbUNBQTNCLENBQStEQyxNQUFNQyxXQUFOLEVBQW1CTyxHQUFuQixFQUF3QkYsTUFBdkYsQ0FBdEM7QUFDRDtBQUNEO0FBQ0QsV0FBTyxJQUFQO0FBQ0EsSUFSRCxNQVFLO0FBQ0osV0FBTyxLQUFQO0FBQ0E7QUFDRDs7Ozs7O0FBS0ZkLDhCQUE4QmlCLE9BQTlCLEdBQXdDLENBQ3ZDLHVCQUR1QyxDQUF4Qzs7a0JBSWVqQiw2QjtRQUdkRCw0QixHQUFBQSw0QiIsImZpbGUiOiI2My5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERSQUdfRFJPUF9JVEVNX0RFQ09SX1NFUlZJQ0UgPSAnZHJhZ0Ryb3BJdGVtRGVjb3JhdGlvblNlcnZpY2UnO1xuXG5jbGFzcyBkcmFnRHJvcEl0ZW1EZWNvcmF0aW9uU2VydmljZSB7XG5cdFxuXHRjb25zdHJ1Y3RvcihlYXN5Rm9ybURyYWdXYXlDb25maWcpe1xuXHRcdHRoaXMuZWFzeUZvcm1EcmFnV2F5Q29uZmlnID0gZWFzeUZvcm1EcmFnV2F5Q29uZmlnO1xuXHRcdHRoaXMuaW5pdCgpO1xuXHR9XG5cdFxuXHRpbml0KCl7XG5cdFx0dGhpcy5fbGlzdEl0ZW1DbGFzcyA9IFtdLmNvbmNhdCh0aGlzLmVhc3lGb3JtRHJhZ1dheUNvbmZpZy5nZXRMaXN0SXRlbUNzc0NsYXNzKCkpO1xuXHR9XG5cdFxuXHRnZXRMaXN0Q2xhc3MoKXtcblx0XHRyZXR1cm4gdGhpcy5fbGlzdEl0ZW1DbGFzcztcblx0fVx0XG5cdFxuXHRnZXRDc3NDbGFzc1doZW5OdW1iZXJJdGVtc0luUm93SXModGhpc051bWJlcil7XG5cdFx0cmV0dXJuIHRoaXMuZWFzeUZvcm1EcmFnV2F5Q29uZmlnLmdldEl0ZW1Dc3NEZXBlbmRpbmdOdW1iZXJJdGVtc0luUm93KHRoaXNOdW1iZXIpO1xuXHR9XG5cdFxuXHRhcHBseUNzc0NsYXNzV2hvbGVMaW5lKG1vZGVsLCBpbmRleENvbHVtbiwgaW5kZXhMaW5lLCBudW1iZXJJdGVtcywgcmVzdHJpY3RUb1RoaXNJbmRleENvbHVtbil7XG5cdFx0aWYgKHR5cGVvZiBudW1iZXJJdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiZcblx0XHRcdFx0dHlwZW9mIGluZGV4TGluZSAhPT0gJ3VuZGVmaW5lZCcgJiZcblx0XHRcdFx0dHlwZW9mIGluZGV4Q29sdW1uICE9PSAndW5kZWZpbmVkJyAmJlxuXHRcdFx0XHR0eXBlb2YgbW9kZWwgIT09ICd1bmRlZmluZWQnICYmXG5cdFx0XHRcdHR5cGVvZiByZXN0cmljdFRvVGhpc0luZGV4Q29sdW1uICE9PSAndW5kZWZpbmVkJykge1xuXHRcdFx0aWYgKGluZGV4Q29sdW1uID09PSByZXN0cmljdFRvVGhpc0luZGV4Q29sdW1uKSB7XG5cdFx0XHRcdGZvciAobGV0IGkgPSBtb2RlbFtpbmRleENvbHVtbl1baW5kZXhMaW5lXS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuXHRcdFx0XHRcdFx0bW9kZWxbaW5kZXhDb2x1bW5dW2luZGV4TGluZV1baV0uY3NzQ2xhc3MgPSB0aGlzLmVhc3lGb3JtRHJhZ1dheUNvbmZpZy5nZXRJdGVtQ3NzRGVwZW5kaW5nTnVtYmVySXRlbXNJblJvdyhudW1iZXJJdGVtcyk7XG5cdFx0XHRcdH1cblx0XHRcdH0gXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9ZWxzZXtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblx0XG5cdHVwZGF0ZUNzc0NsYXNzV2hvbGVDb2x1bW4obW9kZWwsIGluZGV4Q29sdW1uKXtcblx0XHRpZiAodHlwZW9mIGluZGV4Q29sdW1uICE9PSAndW5kZWZpbmVkJyAmJlxuXHRcdFx0XHR0eXBlb2YgbW9kZWwgIT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRmb3IgKGxldCBjcHQgPSBtb2RlbFtpbmRleENvbHVtbl0ubGVuZ3RoIC0gMTsgY3B0ID49IDA7IGNwdC0tKSB7XG5cdFx0XHRcdGZvciAobGV0IGkgPSBtb2RlbFtpbmRleENvbHVtbl1bY3B0XS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuXHRcdFx0XHRcdFx0bW9kZWxbaW5kZXhDb2x1bW5dW2NwdF1baV0uY3NzQ2xhc3MgPSB0aGlzLmVhc3lGb3JtRHJhZ1dheUNvbmZpZy5nZXRJdGVtQ3NzRGVwZW5kaW5nTnVtYmVySXRlbXNJblJvdyhtb2RlbFtpbmRleENvbHVtbl1bY3B0XS5sZW5ndGgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XHRcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1lbHNle1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVx0XG5cdFx0XG5cdFxufVxuXG5kcmFnRHJvcEl0ZW1EZWNvcmF0aW9uU2VydmljZS4kaW5qZWN0ID0gW1xuXHQnZWFzeUZvcm1EcmFnV2F5Q29uZmlnJ1xuXTtcblxuZXhwb3J0IGRlZmF1bHQgZHJhZ0Ryb3BJdGVtRGVjb3JhdGlvblNlcnZpY2U7XG5cbmV4cG9ydCB7XG5cdERSQUdfRFJPUF9JVEVNX0RFQ09SX1NFUlZJQ0Vcbn07XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9kcmFnZHJvcC9kZERlY29ySXRlbS9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29ySXRlbS5zZXJ2aWNlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  288. /***/ },
  289. /* 64 */
  290. /***/ function(module, exports, __webpack_require__) {
  291. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.DRAG_DROP_DECOR_LINE = undefined;\n\nvar _edaDragDropWayDragdropDdDecorLineTemplate = __webpack_require__(65);\n\nvar _edaDragDropWayDragdropDdDecorLineTemplate2 = _interopRequireDefault(_edaDragDropWayDragdropDdDecorLineTemplate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DRAG_DROP_DECOR_LINE = 'ddDecorLine'; /* global angular */\n\n\nfunction ddDecorLine($timeout) {\n\tvar directive = {\n\t\trestrict: 'A',\n\t\tscope: {\n\t\t\t'verboseMode': '@ddLineVerboseMode',\n\t\t\t'currentIndex': '@ddLineCurrentIndex',\n\t\t\t'parentIndex': '@ddLineParentIndex',\n\t\t\t'removeLine': '&ddRemoveLine'\n\t\t},\n\t\ttemplate: _edaDragDropWayDragdropDdDecorLineTemplate2.default,\n\t\ttransclude: true,\n\t\tlink: linkfct\n\t};\n\treturn directive;\n\n\tfunction linkfct($scope, element, attrs, ctrl, transclude) {\n\t\tvar verboseModeActive = $scope.verboseMode;\n\t\tvar currentIndex = $scope.currentIndex;\n\t\tvar parentIndex = $scope.parentIndex;\n\t\t$scope.deleteLine = {};\n\t\t$scope.deleteLine.readyToDelete = false;\n\t\t$scope.deleteLine.dblClickCount = 0;\n\t\t$scope.isCollapsed = false;\n\t\tvar timer = void 0;\n\n\t\t// verbose mode : just for dev \n\t\tif (verboseModeActive !== '') {\n\t\t\tvar verbose = angular.lowercase(verboseModeActive);\n\t\t\tif (verbose === 'true' || verbose === '1') {\n\t\t\t\t/* eslint no-console:0 */\n\t\t\t\tconsole.dir({\n\t\t\t\t\twhoAmI: 'I am verbose from ddDecorLine directive link',\n\t\t\t\t\tverbodeMode: verbose,\n\t\t\t\t\tParentParentIndex: $scope.$parent.$parent.$index,\n\t\t\t\t\tParentIndex: parentIndex,\n\t\t\t\t\tcurrentIndex: currentIndex\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t/**\n \t* removeMe is function related to twice double click sequence to delete a line\n \t*\n \t* - addClass / remove/class ; will make line in a shake movement\n \t* - call \"removeLine function to delete the line (if it was rwice double clicked)\n \t*/\n\t\t$scope.removeMe = function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tif ($scope.parentIndex === '1') {\n\t\t\t\t//2nd dbl click : if is shaking so it is confirmation to delete\n\t\t\t\tif ($scope.deleteLine.dblClickCount === 1) {\n\t\t\t\t\t$scope.deleteLine.dblClickCount = 0;\n\t\t\t\t\t$scope.deleteLine.readyToDelete = false;\n\t\t\t\t\t/**\n \t* NOTE : trick in calling parent controller function with input param when directive with isolate scope\n \t* see : https://thinkster.io/egghead/isolate-scope-am\n \t*\n \t* Here should be:\n \t* \n \t*-> in html : dd-remove-line=\"removeThisLine(indexToDelete)\n \t*-> in controller : $scope.removeThisLine = function(lineIndex){\n \t*-> so in directive call it : $scope.removeLine({indexToDelete: currentIndex});\n \t*\n \t*\n \t* BUT in this case (repeats, ul> li.... complicated) \n \t* => works better (if shaking a lot of line in a row it won't mess up)\n \t*\n \t*-> in html : dd-remove-line=\"removeThisLine($index)\n \t*-> in controller : $scope.removeThisLine = function(lineIndex){\n \t*-> so in directive call it : $scope.removeLine();\n \t*/\n\t\t\t\t\t//$scope.removeLine({indexToDelete: currentIndex});\n\t\t\t\t\t$scope.removeLine();\n\t\t\t\t\t//console.warn('force timer destruction after delete!');\n\t\t\t\t\t$timeout.cancel(timer);\n\t\t\t\t}\n\n\t\t\t\t//1st dbl click : make it shake so ready to delete\n\t\t\t\tif ($scope.deleteLine.dblClickCount === 0) {\n\t\t\t\t\t$scope.deleteLine.dblClickCount = $scope.deleteLine.dblClickCount + 1;\n\t\t\t\t\t$scope.deleteLine.readyToDelete = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n \t* signle event will ever occur\n \t*\n \t* to prevent it to interfere with double click sequence \n \t* -> set a time out (shaking line to delete will automaticallly end shaking after timeout : 2 seconds)\n \t*/\n\t\t$scope.cancelDelete = function () {\n\t\t\t//event.preventDefault();\n\t\t\t//event.stopPropagation();\n\t\t\ttimer = $timeout(function () {\n\t\t\t\t$scope.deleteLine.dblClickCount = 0;\n\t\t\t\t$scope.deleteLine.readyToDelete = false;\n\t\t\t}, 500);\n\n\t\t\t/**\n \t* debug\n \t*/\n\t\t\t// timer.then(\n\t\t\t// () =>{\n\t\t\t// console.log( 'Timer resolved!', Date.now() );\n\t\t\t// },\n\t\t\t// () =>{\n\t\t\t// console.log( 'Timer rejected!', Date.now() );\n\t\t\t// }\n\t\t\t// );\n\t\t};\n\n\t\t/**\n \t* timer destruction to prevent from bad UI experience\n \t*/\n\t\t$scope.$on('$destroy', function () {\n\t\t\treturn $timeout.cancel(timer);\n\t\t});\n\n\t\t/**\n \t* prevent transclusion creating child scope \n \t*\n \t*\n \t* NOTE :if you want to know more about what I'm saying : check this nice tip on the subject : \n \t* http://angular-tips.com/blog/2014/03/transclusion-and-scopes/ \n \t*/\n\t\ttransclude($scope.$parent, function (contentClone) {\n\t\t\t//transclusion will append content to '<div id=\"lineDirectiveTranscludeHere\"></div>'\n\t\t\tvar childDiv = angular.element(element.children()[0]);\n\t\t\tchildDiv.append(contentClone);\n\t\t});\n\t}\n}\n\nddDecorLine.$inject = ['$timeout'];\n\nexports.default = ddDecorLine;\nexports.DRAG_DROP_DECOR_LINE = DRAG_DROP_DECOR_LINE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckxpbmUvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckxpbmUuZGlyZWN0aXZlLmpzPzkwMGEiXSwibmFtZXMiOlsiRFJBR19EUk9QX0RFQ09SX0xJTkUiLCJkZERlY29yTGluZSIsIiR0aW1lb3V0IiwiZGlyZWN0aXZlIiwicmVzdHJpY3QiLCJzY29wZSIsInRlbXBsYXRlIiwidHJhbnNjbHVkZSIsImxpbmsiLCJsaW5rZmN0IiwiJHNjb3BlIiwiZWxlbWVudCIsImF0dHJzIiwiY3RybCIsInZlcmJvc2VNb2RlQWN0aXZlIiwidmVyYm9zZU1vZGUiLCJjdXJyZW50SW5kZXgiLCJwYXJlbnRJbmRleCIsImRlbGV0ZUxpbmUiLCJyZWFkeVRvRGVsZXRlIiwiZGJsQ2xpY2tDb3VudCIsImlzQ29sbGFwc2VkIiwidGltZXIiLCJ2ZXJib3NlIiwiYW5ndWxhciIsImxvd2VyY2FzZSIsImNvbnNvbGUiLCJkaXIiLCJ3aG9BbUkiLCJ2ZXJib2RlTW9kZSIsIlBhcmVudFBhcmVudEluZGV4IiwiJHBhcmVudCIsIiRpbmRleCIsIlBhcmVudEluZGV4IiwicmVtb3ZlTWUiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwicmVtb3ZlTGluZSIsImNhbmNlbCIsImNhbmNlbERlbGV0ZSIsIiRvbiIsImNvbnRlbnRDbG9uZSIsImNoaWxkRGl2IiwiY2hpbGRyZW4iLCJhcHBlbmQiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLHVCQUF1QixhQUE3QixDLENBSEE7OztBQU1BLFNBQVNDLFdBQVQsQ0FBcUJDLFFBQXJCLEVBQThCO0FBQzdCLEtBQUlDLFlBQVk7QUFDZkMsWUFBWSxHQURHO0FBRWZDLFNBQVc7QUFDVixrQkFBaUIsb0JBRFA7QUFFVixtQkFBaUIscUJBRlA7QUFHVixr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QWhCO0FBQ0EsR0FKRDtBQU9BO0FBRUQ7O0FBRUR6QyxZQUFZNkMsT0FBWixHQUFzQixDQUNyQixVQURxQixDQUF0Qjs7a0JBSWU3QyxXO1FBR2RELG9CLEdBQUFBLG9CIiwiZmlsZSI6IjY0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZ2xvYmFsIGFuZ3VsYXIgKi9cbmltcG9ydCBkZERlY29yTGluZVRlbXBsYXRlIGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckxpbmUudGVtcGxhdGUuaHRtbCc7XG5cbmNvbnN0IERSQUdfRFJPUF9ERUNPUl9MSU5FID0gJ2RkRGVjb3JMaW5lJztcblxuXG5mdW5jdGlvbiBkZERlY29yTGluZSgkdGltZW91dCl7XG5cdGxldCBkaXJlY3RpdmUgPSB7XG5cdFx0cmVzdHJpY3RcdFx0Olx0J0EnLFxuXHRcdHNjb3BlXHRcdFx0XHQ6IHtcblx0XHRcdCd2ZXJib3NlTW9kZScgIDogJ0BkZExpbmVWZXJib3NlTW9kZScsXG5cdFx0XHQnY3VycmVudEluZGV4JyA6ICdAZGRMaW5lQ3VycmVudEluZGV4Jyxcblx0XHRcdCdwYXJlbnRJbmRleCcgIDogJ0BkZExpbmVQYXJlbnRJbmRleCcsXG5cdFx0XHQncmVtb3ZlTGluZScgICA6ICcmZGRSZW1vdmVMaW5lJ1xuXHRcdH0sXHRcdFxuXHRcdHRlbXBsYXRlXHRcdDogZGREZWNvckxpbmVUZW1wbGF0ZSxcblx0XHR0cmFuc2NsdWRlXHQ6IHRydWUsXG5cdFx0bGlua1x0XHRcdFx0OiBsaW5rZmN0XHRcdFxuXHR9O1xuXHRyZXR1cm4gZGlyZWN0aXZlO1xuXHRcblx0XG5cdGZ1bmN0aW9uIGxpbmtmY3QoJHNjb3BlLCBlbGVtZW50LCBhdHRycywgY3RybCwgdHJhbnNjbHVkZSl7XG5cdFx0bGV0IHZlcmJvc2VNb2RlQWN0aXZlXHRcdFx0XHRcdFx0PSAkc2NvcGUudmVyYm9zZU1vZGU7XG5cdFx0bGV0IGN1cnJlbnRJbmRleCAgICAgIFx0XHRcdFx0XHQ9ICRzY29wZS5jdXJyZW50SW5kZXg7XG5cdFx0bGV0IHBhcmVudEluZGV4ICAgICAgIFx0XHRcdFx0XHQ9ICRzY29wZS5wYXJlbnRJbmRleDtcblx0XHQkc2NvcGUuZGVsZXRlTGluZSBcdFx0XHRcdFx0XHRcdD0ge307XG5cdFx0JHNjb3BlLmRlbGV0ZUxpbmUucmVhZHlUb0RlbGV0ZSA9IGZhbHNlO1xuXHRcdCRzY29wZS5kZWxldGVMaW5lLmRibENsaWNrQ291bnQgPSAwO1xuXHRcdCRzY29wZS5pc0NvbGxhcHNlZCBcdFx0XHRcdFx0XHRcdD0gZmFsc2U7XG5cdFx0bGV0IHRpbWVyO1xuXHRcdFxuXG5cdFx0Ly8gdmVyYm9zZSBtb2RlIDoganVzdCBmb3IgZGV2IFxuXHRcdGlmICh2ZXJib3NlTW9kZUFjdGl2ZSAhPT0gJycpIHtcblx0XHRcdGxldCB2ZXJib3NlID0gYW5ndWxhci5sb3dlcmNhc2UodmVyYm9zZU1vZGVBY3RpdmUpO1xuXHRcdFx0aWYgKHZlcmJvc2UgPT09ICd0cnVlJyB8fCB2ZXJib3NlID09PSAnMScpIHtcblx0XHRcdFx0LyogZXNsaW50IG5vLWNvbnNvbGU6MCAqL1xuXHRcdFx0XHRjb25zb2xlLmRpcih7XG5cdFx0XHRcdFx0d2hvQW1JICAgICAgICAgICAgICA6ICdJIGFtIHZlcmJvc2UgZnJvbSBkZERlY29yTGluZSBkaXJlY3RpdmUgbGluaycsXG5cdFx0XHRcdFx0dmVyYm9kZU1vZGUgICAgICAgICA6IHZlcmJvc2UsXG5cdFx0XHRcdFx0UGFyZW50UGFyZW50SW5kZXggICA6ICRzY29wZS4kcGFyZW50LiRwYXJlbnQuJGluZGV4LFxuXHRcdFx0XHRcdFBhcmVudEluZGV4ICAgICAgICAgOiBwYXJlbnRJbmRleCxcblx0XHRcdFx0XHRjdXJyZW50SW5kZXggICAgICAgIDogY3VycmVudEluZGV4XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSAgICAgICAgICAgICAgICAgICAgXG5cdFx0fVxuXHRcdFxuXG5cdFx0LyoqXG5cdFx0XHQqIHJlbW92ZU1lIGlzIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdHdpY2UgZG91YmxlIGNsaWNrIHNlcXVlbmNlIHRvIGRlbGV0ZSBhIGxpbmVcblx0XHRcdCpcblx0XHRcdCogIC0gYWRkQ2xhc3MgLyByZW1vdmUvY2xhc3MgOyB3aWxsIG1ha2UgbGluZSBpbiBhIHNoYWtlIG1vdmVtZW50XG5cdFx0XHQqICAtIGNhbGwgXCJyZW1vdmVMaW5lIGZ1bmN0aW9uIHRvIGRlbGV0ZSB0aGUgbGluZSAoaWYgaXQgd2FzIHJ3aWNlIGRvdWJsZSBjbGlja2VkKVxuXHRcdFx0Ki9cblx0JHNjb3BlLnJlbW92ZU1lID0gKGV2ZW50KT0+e1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cblx0XHRpZiAoJHNjb3BlLnBhcmVudEluZGV4ID09PSAnMScpIHtcblx0XHRcdC8vMm5kIGRibCBjbGljayA6IGlmIGlzIHNoYWtpbmcgc28gaXQgaXMgY29uZmlybWF0aW9uIHRvIGRlbGV0ZVxuXHRcdFx0aWYgKCRzY29wZS5kZWxldGVMaW5lLmRibENsaWNrQ291bnQgPT09IDEpe1xuXHRcdFx0XHQkc2NvcGUuZGVsZXRlTGluZS5kYmxDbGlja0NvdW50ID0gMDtcblx0XHRcdFx0JHNjb3BlLmRlbGV0ZUxpbmUucmVhZHlUb0RlbGV0ZSA9IGZhbHNlO1xuXHRcdFx0XHQvKipcblx0XHRcdFx0XHQqIE5PVEUgOiB0cmljayBpbiBjYWxsaW5nIHBhcmVudCBjb250cm9sbGVyIGZ1bmN0aW9uIHdpdGggaW5wdXQgcGFyYW0gd2hlbiBkaXJlY3RpdmUgd2l0aCBpc29sYXRlIHNjb3BlXG5cdFx0XHRcdFx0KiBzZWUgOiBodHRwczovL3RoaW5rc3Rlci5pby9lZ2doZWFkL2lzb2xhdGUtc2NvcGUtYW1cblx0XHRcdFx0XHQqXG5cdFx0XHRcdFx0KiBIZXJlIHNob3VsZCBiZTpcblx0XHRcdFx0XHQqIFxuXHRcdFx0XHRcdCotPiBpbiBodG1sIDogICAgICAgICAgICAgICAgICAgICBkZC1yZW1vdmUtbGluZT1cInJlbW92ZVRoaXNMaW5lKGluZGV4VG9EZWxldGUpXG5cdFx0XHRcdFx0Ki0+IGluIGNvbnRyb2xsZXIgOiAgICAgICAgICAgICAgICRzY29wZS5yZW1vdmVUaGlzTGluZSA9IGZ1bmN0aW9uKGxpbmVJbmRleCl7XG5cdFx0XHRcdFx0Ki0+IHNvIGluIGRpcmVjdGl2ZSBjYWxsIGl0ICA6ICAgICRzY29wZS5yZW1vdmVMaW5lKHtpbmRleFRvRGVsZXRlOiBjdXJyZW50SW5kZXh9KTtcblx0XHRcdFx0XHQqXG5cdFx0XHRcdFx0KlxuXHRcdFx0XHRcdCogQlVUIGluIHRoaXMgY2FzZSAocmVwZWF0cywgdWw+IGxpLi4uLiBjb21wbGljYXRlZCkgXG5cdFx0XHRcdFx0KiAgPT4gd29ya3MgYmV0dGVyIChpZiBzaGFraW5nIGEgbG90IG9mIGxpbmUgaW4gYSByb3cgaXQgd29uJ3QgbWVzcyB1cClcblx0XHRcdFx0XHQqXG5cdFx0XHRcdFx0Ki0+IGluIGh0bWwgOiAgICAgICAgICAgICAgICAgICAgIGRkLXJlbW92ZS1saW5lPVwicmVtb3ZlVGhpc0xpbmUoJGluZGV4KVxuXHRcdFx0XHRcdCotPiBpbiBjb250cm9sbGVyIDogICAgICAgICAgICAgICAkc2NvcGUucmVtb3ZlVGhpc0xpbmUgPSBmdW5jdGlvbihsaW5lSW5kZXgpe1xuXHRcdFx0XHRcdCotPiBzbyBpbiBkaXJlY3RpdmUgY2FsbCBpdCAgOiAgICAkc2NvcGUucmVtb3ZlTGluZSgpO1xuXHRcdFx0XHRcdCovICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHRcdFx0XHQvLyRzY29wZS5yZW1vdmVMaW5lKHtpbmRleFRvRGVsZXRlOiBjdXJyZW50SW5kZXh9KTtcblx0XHRcdFx0JHNjb3BlLnJlbW92ZUxpbmUoKTtcblx0XHRcdFx0Ly9jb25zb2xlLndhcm4oJ2ZvcmNlIHRpbWVyIGRlc3RydWN0aW9uIGFmdGVyIGRlbGV0ZSEnKTtcblx0XHRcdFx0JHRpbWVvdXQuY2FuY2VsKHRpbWVyKTtcblx0XHRcdH1cblx0XHRcblx0XHRcdC8vMXN0IGRibCBjbGljayA6IG1ha2UgaXQgc2hha2Ugc28gcmVhZHkgdG8gZGVsZXRlXG5cdFx0XHRpZiAoJHNjb3BlLmRlbGV0ZUxpbmUuZGJsQ2xpY2tDb3VudCA9PT0gMCkge1xuXHRcdFx0XHQkc2NvcGUuZGVsZXRlTGluZS5kYmxDbGlja0NvdW50ID0gJHNjb3BlLmRlbGV0ZUxpbmUuZGJsQ2xpY2tDb3VudCArIDE7XG5cdFx0XHRcdCRzY29wZS5kZWxldGVMaW5lLnJlYWR5VG9EZWxldGUgPSB0cnVlO1xuXHRcdFx0fVxuXHRcblx0XHR9XG5cdH07XHRcdFxuXHRcblx0XG5cdFxuXHRcdC8qKlxuXHRcdFx0KiBzaWdubGUgZXZlbnQgd2lsbCBldmVyIG9jY3VyXG5cdFx0XHQqXG5cdFx0XHQqIHRvIHByZXZlbnQgaXQgdG8gaW50ZXJmZXJlIHdpdGggZG91YmxlIGNsaWNrIHNlcXVlbmNlIFxuXHRcdFx0KiAtPiBzZXQgYSB0aW1lIG91dCAoc2hha2luZyBsaW5lIHRvIGRlbGV0ZSB3aWxsIGF1dG9tYXRpY2FsbGx5IGVuZCBzaGFraW5nIGFmdGVyIHRpbWVvdXQgOiAyIHNlY29uZHMpXG5cdFx0XHQqL1xuXHRcdCRzY29wZS5jYW5jZWxEZWxldGUgPSAoKT0+e1xuXHRcdFx0Ly9ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0Ly9ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdHRpbWVyID0gJHRpbWVvdXQoKCk9Pntcblx0XHRcdFx0JHNjb3BlLmRlbGV0ZUxpbmUuZGJsQ2xpY2tDb3VudCA9IDA7XG5cdFx0XHRcdCRzY29wZS5kZWxldGVMaW5lLnJlYWR5VG9EZWxldGUgPSBmYWxzZTsgIFx0XHRcdFx0XHRcdFx0XG5cdFx0XHR9LCA1MDApO1xuXHRcdFx0XG5cdFx0XHQvKipcblx0XHRcdFx0KiBkZWJ1Z1xuXHRcdFx0XHQqL1xuXHRcdFx0Ly8gdGltZXIudGhlbihcblx0XHRcdC8vICAgICAoKSA9Pntcblx0XHRcdC8vICAgICAgICAgY29uc29sZS5sb2coICdUaW1lciByZXNvbHZlZCEnLCBEYXRlLm5vdygpICk7XG5cdFx0XHQvLyAgICAgfSxcblx0XHRcdC8vICAgICAoKSA9Pntcblx0XHRcdC8vICAgICAgICAgY29uc29sZS5sb2coICdUaW1lciByZWplY3RlZCEnLCBEYXRlLm5vdygpICk7XG5cdFx0XHQvLyAgICAgfVxuXHRcdFx0Ly8gKTtcblx0XHR9O1x0XHRcblx0XHRcblxuXHRcdC8qKlxuXHRcdFx0KiB0aW1lciBkZXN0cnVjdGlvbiB0byBwcmV2ZW50IGZyb20gYmFkIFVJIGV4cGVyaWVuY2Vcblx0XHRcdCovXG5cdFx0JHNjb3BlLiRvbignJGRlc3Ryb3knLCAoKT0+JHRpbWVvdXQuY2FuY2VsKHRpbWVyKSk7IFxuXHRcdFx0XHRcblxuXG5cdFx0LyoqXG5cdFx0XHQqIHByZXZlbnQgdHJhbnNjbHVzaW9uIGNyZWF0aW5nIGNoaWxkIHNjb3BlICBcblx0XHRcdCpcblx0XHRcdCpcblx0XHRcdCogTk9URSA6aWYgeW91IHdhbnQgdG8ga25vdyBtb3JlIGFib3V0IHdoYXQgSSdtIHNheWluZyA6IGNoZWNrIHRoaXMgbmljZSB0aXAgb24gdGhlIHN1YmplY3QgOiBcblx0XHRcdCogaHR0cDovL2FuZ3VsYXItdGlwcy5jb20vYmxvZy8yMDE0LzAzL3RyYW5zY2x1c2lvbi1hbmQtc2NvcGVzLyAgICAgICAgXG5cdFx0XHQqL1xuXHRcdHRyYW5zY2x1ZGUoJHNjb3BlLiRwYXJlbnQsIChjb250ZW50Q2xvbmUpPT57XG5cdFx0XHQvL3RyYW5zY2x1c2lvbiB3aWxsIGFwcGVuZCBjb250ZW50IHRvICc8ZGl2IGlkPVwibGluZURpcmVjdGl2ZVRyYW5zY2x1ZGVIZXJlXCI+PC9kaXY+J1xuXHRcdFx0bGV0IGNoaWxkRGl2ID0gYW5ndWxhci5lbGVtZW50KGVsZW1lbnQuY2hpbGRyZW4oKVswXSk7IFxuXHRcdFx0Y2hpbGREaXYuYXBwZW5kKGNvbnRlbnRDbG9uZSk7XG5cdFx0fSk7IFxuXG5cblx0fVxuXHRcbn1cblxuZGREZWNvckxpbmUuJGluamVjdCA9IFtcblx0JyR0aW1lb3V0J1xuXTtcblxuZXhwb3J0IGRlZmF1bHQgZGREZWNvckxpbmU7XG5cbmV4cG9ydCB7XG5cdERSQUdfRFJPUF9ERUNPUl9MSU5FXG59O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9kcmFnZHJvcC9kZERlY29yTGluZS9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZERlY29yTGluZS5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  292. /***/ },
  293. /* 65 */
  294. /***/ function(module, exports) {
  295. eval("module.exports = \"<div\\n ng-class=\\\"{confirmLineDelete : deleteLine.readyToDelete}\\\"\\n ng-dblclick=\\\"removeMe($event);\\\"\\n ng-click=\\\"cancelDelete($event);\\\">\\n <button\\n ng-show=\\\"deleteLine.readyToDelete === true\\\"\\n type=\\\"button\\\"\\n class=\\\"btn btn-danger pull-right buttonCloseLine\\\" >\\n <span\\n class=\\\"glyphicon glyphicon-trash\\\"\\n aria-hidden=\\\"true\\\">\\n </span>\\n </button>\\n</div>\\n<div id=\\\"lineDirectiveTranscludeHere\\\"></div>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGREZWNvckxpbmUvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGREZWNvckxpbmUudGVtcGxhdGUuaHRtbD83OGIwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQyw2Q0FBNkMscUNBQXFDLHNDQUFzQyIsImZpbGUiOiI2NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCI8ZGl2XFxuICBuZy1jbGFzcz1cXFwie2NvbmZpcm1MaW5lRGVsZXRlIDogZGVsZXRlTGluZS5yZWFkeVRvRGVsZXRlfVxcXCJcXG4gIG5nLWRibGNsaWNrPVxcXCJyZW1vdmVNZSgkZXZlbnQpO1xcXCJcXG4gIG5nLWNsaWNrPVxcXCJjYW5jZWxEZWxldGUoJGV2ZW50KTtcXFwiPlxcbiAgPGJ1dHRvblxcbiAgICBuZy1zaG93PVxcXCJkZWxldGVMaW5lLnJlYWR5VG9EZWxldGUgPT09IHRydWVcXFwiXFxuICAgIHR5cGU9XFxcImJ1dHRvblxcXCJcXG4gICAgY2xhc3M9XFxcImJ0biBidG4tZGFuZ2VyIHB1bGwtcmlnaHQgYnV0dG9uQ2xvc2VMaW5lXFxcIiA+XFxuICAgICA8c3BhblxcbiAgICAgIGNsYXNzPVxcXCJnbHlwaGljb24gZ2x5cGhpY29uLXRyYXNoXFxcIlxcbiAgICAgIGFyaWEtaGlkZGVuPVxcXCJ0cnVlXFxcIj5cXG4gICAgPC9zcGFuPlxcbiAgPC9idXR0b24+XFxuPC9kaXY+XFxuPGRpdiBpZD1cXFwibGluZURpcmVjdGl2ZVRyYW5zY2x1ZGVIZXJlXFxcIj48L2Rpdj5cXG5cIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2RkRGVjb3JMaW5lL2VkYURyYWdEcm9wV2F5LmRyYWdkcm9wLmRkRGVjb3JMaW5lLnRlbXBsYXRlLmh0bWxcbi8vIG1vZHVsZSBpZCA9IDY1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
  296. /***/ },
  297. /* 66 */
  298. /***/ function(module, exports) {
  299. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar DRAG_DROP_NO_EDITABLE_CONTROL = 'ddNoEditableControl';\n\nfunction ddNoEditableControl() {\n\tvar directive = {\n\t\trestrict: 'A',\n\t\tlink: linkfct\n\t};\n\treturn directive;\n\n\tfunction linkfct($scope, element) {\n\t\telement.on('click', function (event) {\n\t\t\treturn event.preventDefault();\n\t\t});\n\t}\n}\n\nddNoEditableControl.$inject = [];\n\nexports.default = ddNoEditableControl;\nexports.DRAG_DROP_NO_EDITABLE_CONTROL = DRAG_DROP_NO_EDITABLE_CONTROL;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZHJhZ2Ryb3AvZGROb0VkaXRhYmxlQ29udHJvbC9lZGFEcmFnRHJvcFdheS5kcmFnZHJvcC5kZE5vRWRpdGFibGVDb250cm9sLmRpcmVjdGl2ZS5qcz82ODBmIl0sIm5hbWVzIjpbIkRSQUdfRFJPUF9OT19FRElUQUJMRV9DT05UUk9MIiwiZGROb0VkaXRhYmxlQ29udHJvbCIsImRpcmVjdGl2ZSIsInJlc3RyaWN0IiwibGluayIsImxpbmtmY3QiLCIkc2NvcGUiLCJlbGVtZW50Iiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFNQSxnQ0FBZ0MscUJBQXRDOztBQUVBLFNBQVNDLG1CQUFULEdBQStCO0FBQzlCLEtBQUlDLFlBQVk7QUFDZkMsWUFBVyxHQURJO0FBRWZDLFFBQVNDO0FBRk0sRUFBaEI7QUFJQSxRQUFPSCxTQUFQOztBQUVBLFVBQVNHLE9BQVQsQ0FBaUJDLE1BQWpCLEVBQXlCQyxPQUF6QixFQUFrQztBQUNqQ0EsVUFBUUMsRUFBUixDQUFXLE9BQVgsRUFBb0IsVUFBQ0MsS0FBRDtBQUFBLFVBQVNBLE1BQU1DLGNBQU4sRUFBVDtBQUFBLEdBQXBCO0FBQ0E7QUFDRDs7QUFFRFQsb0JBQW9CVSxPQUFwQixHQUE4QixFQUE5Qjs7a0JBRWVWLG1CO1FBR2RELDZCLEdBQUFBLDZCIiwiZmlsZSI6IjY2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFJBR19EUk9QX05PX0VESVRBQkxFX0NPTlRST0wgPSAnZGROb0VkaXRhYmxlQ29udHJvbCc7XG5cbmZ1bmN0aW9uIGRkTm9FZGl0YWJsZUNvbnRyb2woKSB7XG5cdGxldCBkaXJlY3RpdmUgPSB7XG5cdFx0cmVzdHJpY3RcdDogJ0EnLFxuXHRcdGxpbmtcdFx0XHQ6IGxpbmtmY3Rcblx0fTtcblx0cmV0dXJuIGRpcmVjdGl2ZTtcblxuXHRmdW5jdGlvbiBsaW5rZmN0KCRzY29wZSwgZWxlbWVudCkge1xuXHRcdGVsZW1lbnQub24oJ2NsaWNrJywgKGV2ZW50KT0+ZXZlbnQucHJldmVudERlZmF1bHQoKSk7XG5cdH1cbn1cblxuZGROb0VkaXRhYmxlQ29udHJvbC4kaW5qZWN0ID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IGRkTm9FZGl0YWJsZUNvbnRyb2w7XG5cbmV4cG9ydCB7XG5cdERSQUdfRFJPUF9OT19FRElUQUJMRV9DT05UUk9MXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2RyYWdkcm9wL2RkTm9FZGl0YWJsZUNvbnRyb2wvZWRhRHJhZ0Ryb3BXYXkuZHJhZ2Ryb3AuZGROb0VkaXRhYmxlQ29udHJvbC5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  300. /***/ },
  301. /* 67 */
  302. /***/ function(module, exports, __webpack_require__) {
  303. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _edaDragDropWayRightClick = __webpack_require__(68);\n\nvar _edaDragDropWayRightClick2 = _interopRequireDefault(_edaDragDropWayRightClick);\n\nvar _edaDragDropWayRightClick3 = __webpack_require__(69);\n\nvar _edaDragDropWayRightClick4 = _interopRequireDefault(_edaDragDropWayRightClick3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EDA_RIGHT_CLICK_MODULE = 'eda.right.click.module';\n\nexports.default = angular.module(EDA_RIGHT_CLICK_MODULE, []).directive(_edaDragDropWayRightClick.EDA_RIGHT_CLICK_DIRECTIVE, _edaDragDropWayRightClick2.default).service(_edaDragDropWayRightClick3.EDA_RIGHT_CLICKED_MANAGER_SERVICE, _edaDragDropWayRightClick4.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL3JpZ2h0Y2xpY2svZWRhRHJhZ0Ryb3BXYXkucmlnaHRDbGljay5tb2R1bGUuanM/YzJlYSJdLCJuYW1lcyI6WyJFREFfUklHSFRfQ0xJQ0tfTU9EVUxFIiwiYW5ndWxhciIsIm1vZHVsZSIsImRpcmVjdGl2ZSIsInNlcnZpY2UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBSUE7Ozs7OztBQUtBLElBQU1BLHlCQUF5Qix3QkFBL0I7O2tCQUdlQyxRQUNOQyxNQURNLENBQ0NGLHNCQURELEVBQ3lCLEVBRHpCLEVBRU5HLFNBRk0sMEZBR05DLE9BSE0sa0ciLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZWRhUmlnaHRDbGljaywge1xuXHRFREFfUklHSFRfQ0xJQ0tfRElSRUNUSVZFXG59XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkucmlnaHRDbGljay5kaXJlY3RpdmUnO1xuXG5pbXBvcnQgZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlciwge1xuXHRFREFfUklHSFRfQ0xJQ0tFRF9NQU5BR0VSX1NFUlZJQ0Vcbn1cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5yaWdodENsaWNrLnNlcnZpY2UnO1xuXG5cbmNvbnN0IEVEQV9SSUdIVF9DTElDS19NT0RVTEUgPSAnZWRhLnJpZ2h0LmNsaWNrLm1vZHVsZSc7XG5cblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuXHRcdFx0XHRcdFx0XHRcdC5tb2R1bGUoRURBX1JJR0hUX0NMSUNLX01PRFVMRSwgW10pXG5cdFx0XHRcdFx0XHRcdFx0LmRpcmVjdGl2ZShFREFfUklHSFRfQ0xJQ0tfRElSRUNUSVZFLCBlZGFSaWdodENsaWNrKVxuXHRcdFx0XHRcdFx0XHRcdC5zZXJ2aWNlKEVEQV9SSUdIVF9DTElDS0VEX01BTkFHRVJfU0VSVklDRSwgZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlcik7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2NvbW1vbi9yaWdodGNsaWNrL2VkYURyYWdEcm9wV2F5LnJpZ2h0Q2xpY2subW9kdWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  304. /***/ },
  305. /* 68 */
  306. /***/ function(module, exports) {
  307. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar EDA_RIGHT_CLICK_DIRECTIVE = 'edaRightClick';\n\nfunction edaRightClick($parse) {\n\n var directive = {\n restrict: 'A',\n link: linkFct\n };\n return directive;\n\n function linkFct(scope, element, attrs) {\n var fn = $parse(attrs.edaRightClick);\n var columnIndex = $parse(attrs.edaRightClickColIndex);\n var fctSetRightclicked = $parse(attrs.edaSetRightClicked);\n /**\n * on right click event manage\n * - open edit panel through attrs.edaRightClick function\n * - set rightCliked attribute (to true) to control (in dragDropModel)\n */\n element.on('contextmenu', function (event) {\n scope.$apply(function () {\n event.preventDefault();\n if (columnIndex(scope) === 1) fctSetRightclicked(scope, {}); //right click limited to template column (index = 1)\n if (columnIndex(scope) === 1) fn(scope, { $event: event }); //right click limited to template column (index = 1)\n });\n });\n }\n}\n\nedaRightClick.$inject = ['$parse'];\n\nexports.default = edaRightClick;\nexports.EDA_RIGHT_CLICK_DIRECTIVE = EDA_RIGHT_CLICK_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL3JpZ2h0Y2xpY2svZWRhRHJhZ0Ryb3BXYXkucmlnaHRDbGljay5kaXJlY3RpdmUuanM/MzJiMCJdLCJuYW1lcyI6WyJFREFfUklHSFRfQ0xJQ0tfRElSRUNUSVZFIiwiZWRhUmlnaHRDbGljayIsIiRwYXJzZSIsImRpcmVjdGl2ZSIsInJlc3RyaWN0IiwibGluayIsImxpbmtGY3QiLCJzY29wZSIsImVsZW1lbnQiLCJhdHRycyIsImZuIiwiY29sdW1uSW5kZXgiLCJlZGFSaWdodENsaWNrQ29sSW5kZXgiLCJmY3RTZXRSaWdodGNsaWNrZWQiLCJlZGFTZXRSaWdodENsaWNrZWQiLCJvbiIsImV2ZW50IiwiJGFwcGx5IiwicHJldmVudERlZmF1bHQiLCIkZXZlbnQiLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU1BLDRCQUE0QixlQUFsQzs7QUFFQSxTQUFTQyxhQUFULENBQXVCQyxNQUF2QixFQUE4Qjs7QUFFN0IsTUFBSUMsWUFBWTtBQUNiQyxjQUFZLEdBREM7QUFFYkMsVUFBWUM7QUFGQyxHQUFoQjtBQUlDLFNBQU9ILFNBQVA7O0FBRUEsV0FBU0csT0FBVCxDQUFpQkMsS0FBakIsRUFBd0JDLE9BQXhCLEVBQWlDQyxLQUFqQyxFQUF1QztBQUNyQyxRQUFJQyxLQUFzQlIsT0FBT08sTUFBTVIsYUFBYixDQUExQjtBQUNBLFFBQUlVLGNBQXNCVCxPQUFPTyxNQUFNRyxxQkFBYixDQUExQjtBQUNBLFFBQUlDLHFCQUFzQlgsT0FBT08sTUFBTUssa0JBQWIsQ0FBMUI7QUFDQTs7Ozs7QUFLQU4sWUFBUU8sRUFBUixDQUFXLGFBQVgsRUFBMEIsVUFBQ0MsS0FBRCxFQUFTO0FBQ2pDVCxZQUFNVSxNQUFOLENBQWEsWUFBSztBQUNoQkQsY0FBTUUsY0FBTjtBQUNBLFlBQUlQLFlBQVlKLEtBQVosTUFBdUIsQ0FBM0IsRUFBOEJNLG1CQUFtQk4sS0FBbkIsRUFBMEIsRUFBMUIsRUFGZCxDQUU2QztBQUM3RCxZQUFJSSxZQUFZSixLQUFaLE1BQXVCLENBQTNCLEVBQThCRyxHQUFHSCxLQUFILEVBQVUsRUFBQ1ksUUFBT0gsS0FBUixFQUFWLEVBSGQsQ0FHeUM7QUFDMUQsT0FKRDtBQUtELEtBTkQ7QUFRRDtBQUVGOztBQUVEZixjQUFjbUIsT0FBZCxHQUF3QixDQUN0QixRQURzQixDQUF4Qjs7a0JBSWVuQixhO1FBSWJELHlCLEdBQUFBLHlCIiwiZmlsZSI6IjY4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRURBX1JJR0hUX0NMSUNLX0RJUkVDVElWRSA9ICdlZGFSaWdodENsaWNrJztcblxuZnVuY3Rpb24gZWRhUmlnaHRDbGljaygkcGFyc2Upe1xuICBcblx0bGV0IGRpcmVjdGl2ZSA9IHtcbiAgICByZXN0cmljdCAgOiAnQScsXG4gICAgbGluayAgICAgIDogbGlua0ZjdFxuICB9O1xuICByZXR1cm4gZGlyZWN0aXZlO1xuICBcbiAgZnVuY3Rpb24gbGlua0ZjdChzY29wZSwgZWxlbWVudCwgYXR0cnMpe1xuICAgIGxldCBmbiAgICAgICAgICAgICAgICAgID0gJHBhcnNlKGF0dHJzLmVkYVJpZ2h0Q2xpY2spO1xuICAgIGxldCBjb2x1bW5JbmRleCAgICAgICAgID0gJHBhcnNlKGF0dHJzLmVkYVJpZ2h0Q2xpY2tDb2xJbmRleCk7XG4gICAgbGV0IGZjdFNldFJpZ2h0Y2xpY2tlZCAgPSAkcGFyc2UoYXR0cnMuZWRhU2V0UmlnaHRDbGlja2VkKTsgICAgICBcbiAgICAvKipcbiAgICAgICogb24gcmlnaHQgY2xpY2sgZXZlbnQgbWFuYWdlXG4gICAgICAqIC0gb3BlbiBlZGl0IHBhbmVsIHRocm91Z2ggYXR0cnMuZWRhUmlnaHRDbGljayBmdW5jdGlvblxuICAgICAgKiAtIHNldCByaWdodENsaWtlZCBhdHRyaWJ1dGUgKHRvIHRydWUpIHRvIGNvbnRyb2wgKGluIGRyYWdEcm9wTW9kZWwpXG4gICAgICAqL1xuICAgIGVsZW1lbnQub24oJ2NvbnRleHRtZW51JywgKGV2ZW50KT0+e1xuICAgICAgc2NvcGUuJGFwcGx5KCgpID0+e1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoY29sdW1uSW5kZXgoc2NvcGUpID09PSAxKSBmY3RTZXRSaWdodGNsaWNrZWQoc2NvcGUsIHt9KTsgLy9yaWdodCBjbGljayBsaW1pdGVkIHRvIHRlbXBsYXRlIGNvbHVtbiAoaW5kZXggPSAxKVxuICAgICAgICBpZiAoY29sdW1uSW5kZXgoc2NvcGUpID09PSAxKSBmbihzY29wZSwgeyRldmVudDpldmVudH0pOyAvL3JpZ2h0IGNsaWNrIGxpbWl0ZWQgdG8gdGVtcGxhdGUgY29sdW1uIChpbmRleCA9IDEpXG4gICAgICB9KTtcbiAgICB9KTtcdFxuXG4gIH1cbiAgXG59XG5cbmVkYVJpZ2h0Q2xpY2suJGluamVjdCA9IFtcbiAgJyRwYXJzZSdcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGVkYVJpZ2h0Q2xpY2s7XG5cblxuZXhwb3J0IHtcbiAgRURBX1JJR0hUX0NMSUNLX0RJUkVDVElWRVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9jb21tb24vcmlnaHRjbGljay9lZGFEcmFnRHJvcFdheS5yaWdodENsaWNrLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  308. /***/ },
  309. /* 69 */
  310. /***/ function(module, exports) {
  311. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar EDA_RIGHT_CLICKED_MANAGER_SERVICE = 'ddItemRightClickedManager';\n\nvar ddItemRightClickedManager = function () {\n\tfunction ddItemRightClickedManager() {\n\t\t_classCallCheck(this, ddItemRightClickedManager);\n\n\t\tthis.init();\n\t}\n\n\t_createClass(ddItemRightClickedManager, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {}\n\n\t\t/**\n \t* setUnRightClicked \n \t* set unSelected (see edaRightClick directive)\n \t*\n \t* used in edaEditcontroller when droping control\n \t*/\n\n\t}, {\n\t\tkey: 'setUnRightClicked',\n\t\tvalue: function setUnRightClicked(dragDropModelItem) {\n\t\t\tdragDropModelItem.rightCliked = false;\n\t\t}\n\n\t\t/**\n \t* resetAllDragDropItemSelectedState\n \t*\n \t* simply reset (=set to false) all item.rightCliked \n \t* in edit column (dragable column)\n \t*\n \t* used in edaEditPanel when closeEditPanel() called\n \t*/\n\n\t}, {\n\t\tkey: 'resetAllDragDropItemSelectedState',\n\t\tvalue: function resetAllDragDropItemSelectedState(dragDropModel) {\n\t\t\tangular.forEach(dragDropModel[1], function (line) {\n\t\t\t\tangular.forEach(line, function (item) {\n\t\t\t\t\treturn item.rightCliked = false;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn ddItemRightClickedManager;\n}();\n\nddItemRightClickedManager.$inject = [];\n\nexports.default = ddItemRightClickedManager;\nexports.EDA_RIGHT_CLICKED_MANAGER_SERVICE = EDA_RIGHT_CLICKED_MANAGER_SERVICE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL3JpZ2h0Y2xpY2svZWRhRHJhZ0Ryb3BXYXkucmlnaHRDbGljay5zZXJ2aWNlLmpzP2EzNjQiXSwibmFtZXMiOlsiRURBX1JJR0hUX0NMSUNLRURfTUFOQUdFUl9TRVJWSUNFIiwiZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlciIsImluaXQiLCJkcmFnRHJvcE1vZGVsSXRlbSIsInJpZ2h0Q2xpa2VkIiwiZHJhZ0Ryb3BNb2RlbCIsImFuZ3VsYXIiLCJmb3JFYWNoIiwibGluZSIsIml0ZW0iLCIkaW5qZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBTUEsb0NBQW9DLDJCQUExQzs7SUFFTUMseUI7QUFDTCxzQ0FBYTtBQUFBOztBQUNaLE9BQUtDLElBQUw7QUFDQTs7Ozt5QkFFSyxDQUVMOztBQUVEOzs7Ozs7Ozs7b0NBTWtCQyxpQixFQUFrQjtBQUNuQ0EscUJBQWtCQyxXQUFsQixHQUFnQyxLQUFoQztBQUNBOztBQUVEOzs7Ozs7Ozs7OztvREFRa0NDLGEsRUFBYztBQUMvQ0MsV0FBUUMsT0FBUixDQUFnQkYsY0FBYyxDQUFkLENBQWhCLEVBQWtDLFVBQUNHLElBQUQsRUFBUTtBQUN6Q0YsWUFBUUMsT0FBUixDQUFnQkMsSUFBaEIsRUFBc0IsVUFBQ0MsSUFBRDtBQUFBLFlBQVFBLEtBQUtMLFdBQUwsR0FBbUIsS0FBM0I7QUFBQSxLQUF0QjtBQUNBLElBRkQ7QUFJQTs7Ozs7O0FBS0ZILDBCQUEwQlMsT0FBMUIsR0FBb0MsRUFBcEM7O2tCQUVlVCx5QjtRQUdkRCxpQyxHQUFBQSxpQyIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEVEQV9SSUdIVF9DTElDS0VEX01BTkFHRVJfU0VSVklDRSA9ICdkZEl0ZW1SaWdodENsaWNrZWRNYW5hZ2VyJztcblxuY2xhc3MgZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlcntcblx0Y29uc3RydWN0b3IoKXtcblx0XHR0aGlzLmluaXQoKTtcdFxuXHR9XG5cdFxuXHRpbml0KCl7XG5cdFx0XG5cdH1cblx0XG5cdC8qKlxuXHRcdCogc2V0VW5SaWdodENsaWNrZWQgXG5cdFx0KiBzZXQgdW5TZWxlY3RlZCAoc2VlIGVkYVJpZ2h0Q2xpY2sgZGlyZWN0aXZlKVxuXHRcdCpcblx0XHQqIHVzZWQgaW4gZWRhRWRpdGNvbnRyb2xsZXIgd2hlbiBkcm9waW5nIGNvbnRyb2xcblx0XHQqL1x0XG5cdHNldFVuUmlnaHRDbGlja2VkKGRyYWdEcm9wTW9kZWxJdGVtKXtcblx0XHRkcmFnRHJvcE1vZGVsSXRlbS5yaWdodENsaWtlZCA9IGZhbHNlO1xuXHR9XHRcblxuXHQvKipcblx0XHQqIHJlc2V0QWxsRHJhZ0Ryb3BJdGVtU2VsZWN0ZWRTdGF0ZVxuXHRcdCpcblx0XHQqIHNpbXBseSByZXNldCAoPXNldCB0byBmYWxzZSkgYWxsIGl0ZW0ucmlnaHRDbGlrZWQgXG5cdFx0KiBpbiBlZGl0IGNvbHVtbiAoZHJhZ2FibGUgY29sdW1uKVxuXHRcdCpcblx0XHQqIHVzZWQgaW4gZWRhRWRpdFBhbmVsIHdoZW4gY2xvc2VFZGl0UGFuZWwoKSBjYWxsZWRcblx0XHQqL1x0XG5cdHJlc2V0QWxsRHJhZ0Ryb3BJdGVtU2VsZWN0ZWRTdGF0ZShkcmFnRHJvcE1vZGVsKXtcblx0XHRhbmd1bGFyLmZvckVhY2goZHJhZ0Ryb3BNb2RlbFsxXSAsKGxpbmUpPT57XG5cdFx0XHRhbmd1bGFyLmZvckVhY2gobGluZSwgKGl0ZW0pPT5pdGVtLnJpZ2h0Q2xpa2VkID0gZmFsc2UpO1xuXHRcdH0pO1xuXHRcblx0fVx0XG5cdFxuXHRcbn1cblxuZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlci4kaW5qZWN0ID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IGRkSXRlbVJpZ2h0Q2xpY2tlZE1hbmFnZXI7XG5cbmV4cG9ydCB7XG5cdEVEQV9SSUdIVF9DTElDS0VEX01BTkFHRVJfU0VSVklDRVxufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL3JpZ2h0Y2xpY2svZWRhRHJhZ0Ryb3BXYXkucmlnaHRDbGljay5zZXJ2aWNlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  312. /***/ },
  313. /* 70 */
  314. /***/ function(module, exports, __webpack_require__) {
  315. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _edaDragDropWayConfigurationModelProxy = __webpack_require__(71);\n\nvar _edaDragDropWayConfigurationModelProxy2 = _interopRequireDefault(_edaDragDropWayConfigurationModelProxy);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EDA_CONFIG_PROXY_MODULE = 'eda.config.proxy.module';\n\nexports.default = angular.module(EDA_CONFIG_PROXY_MODULE, []).service(_edaDragDropWayConfigurationModelProxy.DRAG_DROP_CONFIG_PROXY_SERVICE, _edaDragDropWayConfigurationModelProxy2.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29uZmlndXJhdGlvbk1vZGVsUHJveHkvZWRhRHJhZ0Ryb3BXYXkuY29uZmlndXJhdGlvbk1vZGVsUHJveHkubW9kdWxlLmpzPzk4ODciXSwibmFtZXMiOlsiRURBX0NPTkZJR19QUk9YWV9NT0RVTEUiLCJhbmd1bGFyIiwibW9kdWxlIiwic2VydmljZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7OztBQUlBLElBQU1BLDBCQUEwQix5QkFBaEM7O2tCQUVlQyxRQUNOQyxNQURNLENBQ0NGLHVCQURELEVBQzBCLEVBRDFCLEVBRU5HLE9BRk0sd0giLCJmaWxlIjoiNzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZSwge1xuXHREUkFHX0RST1BfQ09ORklHX1BST1hZX1NFUlZJQ0Vcbn1cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5jb25maWd1cmF0aW9uTW9kZWxQcm94eS5zZXJ2aWNlJztcblxuY29uc3QgRURBX0NPTkZJR19QUk9YWV9NT0RVTEUgPSAnZWRhLmNvbmZpZy5wcm94eS5tb2R1bGUnO1xuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG5cdFx0XHRcdFx0XHRcdFx0Lm1vZHVsZShFREFfQ09ORklHX1BST1hZX01PRFVMRSwgW10pXG5cdFx0XHRcdFx0XHRcdFx0LnNlcnZpY2UoRFJBR19EUk9QX0NPTkZJR19QUk9YWV9TRVJWSUNFLCBkZE1vZGVsQ29uZk1vZGVsUHJveHlTZXJ2aWNlKTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29uZmlndXJhdGlvbk1vZGVsUHJveHkvZWRhRHJhZ0Ryb3BXYXkuY29uZmlndXJhdGlvbk1vZGVsUHJveHkubW9kdWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  316. /***/ },
  317. /* 71 */
  318. /***/ function(module, exports) {
  319. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DRAG_DROP_CONFIG_PROXY_SERVICE = 'ddModelConfModelProxyService';\n\nvar ddModelConfModelProxyService = function () {\n function ddModelConfModelProxyService(EasyFormGenFormlyBindingModels,\n // controllerModalProxy, \n // dragDropConfig, \n easyFormDragWayConfig, $parse) {\n _classCallCheck(this, ddModelConfModelProxyService);\n\n this.EasyFormGenFormlyBindingModels = EasyFormGenFormlyBindingModels;\n // this.controllerModalProxy = controllerModalProxy;\n // this.dragDropConfig = dragDropConfig;\n this.easyFormDragWayConfig = easyFormDragWayConfig;\n this.$parse = $parse;\n this.init();\n }\n\n _createClass(ddModelConfModelProxyService, [{\n key: 'init',\n value: function init() {}\n }, {\n key: 'refreshAllConfigurationFromDragAndDropModel',\n value: function refreshAllConfigurationFromDragAndDropModel(configModel, ddModel) {\n var _this = this;\n\n /**\n * TODO : prevent reset already set props\n * \n * previousConfigurationModel = a backup of configuration model 'configModel 'before resetting it\n * -> dragDrop model contains unique keys of already existing controls : these controls must not be reset / overwritten \n */\n // let previousConfigurationModel = angular.copy(configModel); \n configModel.lines = [];\n // iterates line config model\n angular.forEach(ddModel[1], function (lineValue, keyValue) {\n // add empty line 1st - if line is empty -> it will be enough \n configModel.lines.push(angular.copy(_this.EasyFormGenFormlyBindingModels.getEasyFormEmptyConfigurationLineModel()));\n // update line value field\n _this.applyThisLine(keyValue + 1, keyValue, configModel);\n // iterate through columns and add them if control exists\t\n angular.forEach(lineValue, function (colValue, colIndex) {\n // push an empty control model but relative to dradrop : model control type - (if datepicker so additionnal properties are added) \t\n var controlToBind = {\n control: angular.copy(_this.EasyFormGenFormlyBindingModels.getFormlyControlTemplateForNcolumnLine(lineValue.length, _this.getFormlyDetailedControlModelFromDragDropObject(lineValue[colIndex]).formlyType))\n };\n var formlyDetailedControlModel = _this.getFormlyDetailedControlModelFromDragDropObject(lineValue[colIndex]);\n // controls alreadys existed so do not reset it - control to bind is the previous one\t\t\n if (typeof colValue.key !== 'undefined') {\n //console.warn('debug dragdropModel show this control key : ' + colValue.key);\n controlToBind.control = angular.copy(colValue.configModelControl);\n //update cssClass depending new position:\n var newClassName = _this.EasyFormGenFormlyBindingModels.getFormlyControlTemplateForNcolumnLine(lineValue.length, _this.getFormlyDetailedControlModelFromDragDropObject(lineValue[colIndex]).formlyType);\n controlToBind.control.className = newClassName.className;\n //test if header nee this one\n controlToBind.control.cssClass = newClassName.className;\n // get control details for this key in backup : previousConfigurationModel\n } else {\n // controls did not exists before : control to bind is a new one\n // bind dragdrop control properties to configuration model through controlToBind var\n _this.bindConfigCtrlModelFromFormlyDetailedCtrlModel(formlyDetailedControlModel, controlToBind, configModel);\n }\n // apply controlToBind var to configuration model control\n if (typeof configModel.lines[keyValue].columns[colIndex] === 'undefined') configModel.lines[keyValue].columns.push(angular.copy(_this.EasyFormGenFormlyBindingModels.getEasyFormConfigurationEmptyControlModel()));\n configModel.lines[keyValue].columns[colIndex].control = angular.copy(controlToBind.control);\n configModel.lines[keyValue].columns[colIndex].numColumn = colIndex + 1;\n configModel.lines[keyValue].columns[colIndex].exist = true;\n });\n });\n return configModel;\n }\n }, {\n key: 'refreshControlsKeys',\n value: function refreshControlsKeys(configModel, dragDropModel) {\n angular.forEach(configModel.lines, function (aConfigLine, aConfigLineIndex) {\n angular.forEach(aConfigLine.columns, function (aConfigControl, aConfigControlIndex) {\n //if last control removed from line - and dragDrop model did not already removed this line\n if (typeof dragDropModel[1][aConfigLineIndex] !== 'undefined') {\n if (dragDropModel[1][aConfigLineIndex].length > 0) {\n dragDropModel[1][aConfigLineIndex][aConfigControlIndex].key = aConfigControl.control.key;\n //need to save all in dragdropModel as it is a reference\n //configModel still needed \n // -> to keep coherence (same back model) between all version of easyForm Generator\n // -> is the back model (can be saved to dataBase)\n dragDropModel[1][aConfigLineIndex][aConfigControlIndex].configModelControl = angular.copy(aConfigControl.control);\n }\n }\n });\n });\n }\n\n /**\n * drag drop model\n * -> will be used to bind configuration model\n * \tof no key saved, configuration model controls would be reset each drop events\n * \n * -> matching key : will prevent to reset existing control\n */\n\n }, {\n key: 'loadDragDropModelFromConfigurationModel',\n value: function loadDragDropModelFromConfigurationModel(configModel, dragDropModel) {\n var _this2 = this;\n\n //reset dragdrop fields model NOT all dragDropModel!\n dragDropModel[1] = [];\n angular.forEach(configModel.lines, function (aConfigLine, aConfigLineIndex) {\n //add new line\n dragDropModel[1].push([]);\n angular.forEach(aConfigLine.columns, function (aConfigControl) {\n // get control type from configuration.control.selectedControl\n var dragdropControlRef = {\n control: 'empty',\n cssClass: 'col-xs-12',\n label: '<div class=\"col-md-12\"> <div class=\"form-group\"> <div class=\"\"> </div> </div></div>'\n };\n angular.forEach(dragDropModel[0], function (groupOfCtrlRef) {\n angular.forEach(groupOfCtrlRef, function (aCtrlref) {\n if (aCtrlref.control === aConfigControl.control.selectedControl) dragdropControlRef = angular.copy(aCtrlref);\n });\n });\n dragDropModel[1][aConfigLineIndex].push(dragdropControlRef);\n //update class depending number of control per line\n var cssClassToApply = _this2.easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(dragDropModel[1][aConfigLineIndex].length);\n angular.forEach(dragDropModel[1][aConfigLineIndex], function (ddControlToUpdate) {\n return ddControlToUpdate.cssClass = cssClassToApply;\n });\n });\n });\n // console.info('bindDragDropModelFromConfigurationModel');\n // console.dir(\t\n // \t\t\t\t\t\t\t{\n // \t\t\t\t\t\t\t\t\t'when' \t\t\t\t\t\t\t: 'starting',\n // \t\t\t\t\t\t\t\t\t'configModel is ' \t: angular.copy(configModel),\n // \t\t\t\t\t\t\t\t\t'dragDropModel is ' : angular.copy(dragDropModel)\n // \t\t\t\t\t\t\t}\n // \t\t\t\t\t\t); \n }\n\n /**\n * returns a control model that is more formly detailed\n * (more formly detailed : see controls property in EasyFormGenFormlyBindingModels._easyFormListControls)\n */\n\n }, {\n key: 'getFormlyDetailedControlModelFromDragDropObject',\n value: function getFormlyDetailedControlModelFromDragDropObject(dragDrapCtrlModel) {\n var controlModel = {};\n var listControl = this.EasyFormGenFormlyBindingModels.getEasyFormListControls();\n var controlsListGetter = this.$parse('controls');\n\n angular.forEach(controlsListGetter(listControl), function (ctrlListValue) {\n if (ctrlListValue.id === dragDrapCtrlModel.control) controlModel = ctrlListValue;\n });\n return controlModel;\n }\n\n /**\n * valid a control key is unique\n *\n * yes... function name already told us that, \n * -> it's just confirmation and to see if\n * you keep focus while reading it ^^\n */\n\n }, {\n key: 'validKeyUniqueness',\n value: function validKeyUniqueness(thisKey, configurationObj) {\n var isUnique = true;\n for (var i = configurationObj.lines.length - 1; i >= 0; i--) {\n for (var j = configurationObj.lines[i].columns.length - 1; j >= 0; j--) {\n if (typeof configurationObj.lines[i].columns[j].control !== 'undefined') {\n if (configurationObj.lines[i].columns[j].control.key === thisKey) {\n isUnique = false;\n }\n }\n }\n }\n return isUnique;\n }\n }, {\n key: 'createUniqueKey',\n value: function createUniqueKey(baseKeyValue, configurationObj) {\n // unique key (set only first time) in this model is formly control type + Date.now(); \n var newKey = baseKeyValue + '-' + Date.now();\n if (this.validKeyUniqueness(newKey, configurationObj) === true) {\n return newKey;\n } else {\n newKey = baseKeyValue + '-' + Date.now();\n if (this.validKeyUniqueness(newKey, configurationObj) === true) {\n return newKey;\n } else {\n newKey = baseKeyValue + '-' + Date.now();\n return newKey;\n }\n }\n }\n }, {\n key: 'applyThisLine',\n value: function applyThisLine(linevalue, lineIndex, configModel) {\n angular.forEach(configModel.lines, function (aLineValue, aLineKey) {\n if (aLineKey === lineIndex) aLineValue.line = linevalue;\n });\n }\n\n /**\n * bind formly detailed model to configuration control model\n */\n\n }, {\n key: 'bindConfigCtrlModelFromFormlyDetailedCtrlModel',\n value: function bindConfigCtrlModelFromFormlyDetailedCtrlModel(formlyDetailCtrlModel, configurationCtrlModel, configModel) {\n /**\n * TODO :properties should be served by provider \n * more configurable without pain\n */\n //set selected control :\n this.$parse('control.selectedControl').assign(configurationCtrlModel, this.$parse('selectedControl')(formlyDetailCtrlModel));\n //set type :\t\n this.$parse('control.type').assign(configurationCtrlModel, this.$parse('formlyType')(formlyDetailCtrlModel));\n //set key :\t\n this.$parse('control.key').assign(configurationCtrlModel, this.createUniqueKey(this.$parse('control.type')(configurationCtrlModel), configModel));\n //set subtype :\t\n this.$parse('control.subtype').assign(configurationCtrlModel, this.$parse('formlySubtype')(formlyDetailCtrlModel));\n //set templateOptions.label :\t\n this.$parse('control.templateOptions.label').assign(configurationCtrlModel, this.$parse('formlyLabel')(formlyDetailCtrlModel));\n //set templateOptions.required :\t\n this.$parse('control.templateOptions.required').assign(configurationCtrlModel, this.$parse('formlyRequired')(formlyDetailCtrlModel));\n //set templateOptions.required :\t\n this.$parse('control.templateOptions.description').assign(configurationCtrlModel, this.$parse('formlyDesciption')(formlyDetailCtrlModel));\n //set templateOptions.required :\t\n this.$parse('control.templateOptions.placeholder').assign(configurationCtrlModel, this.$parse('formlyPlaceholder')(formlyDetailCtrlModel));\n //set templateOptions.required :\t\n this.$parse('control.templateOptions.options').assign(configurationCtrlModel, this.$parse('formlyOptions')(formlyDetailCtrlModel));\n\n if (this.$parse('control.type')(configurationCtrlModel) === 'datepicker') {\n this.$parse('control.templateOptions.datepickerPopup').assign(configurationCtrlModel, this.$parse('datepickerPopup')(formlyDetailCtrlModel));\n }\n }\n }]);\n\n return ddModelConfModelProxyService;\n}();\n\nddModelConfModelProxyService.$inject = ['EasyFormGenFormlyBindingModels',\n// 'controllerModalProxy',\n// 'dragDropConfig',\n'easyFormDragWayConfig', '$parse'];\n\nexports.default = ddModelConfModelProxyService;\nexports.DRAG_DROP_CONFIG_PROXY_SERVICE = DRAG_DROP_CONFIG_PROXY_SERVICE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29uZmlndXJhdGlvbk1vZGVsUHJveHkvZWRhRHJhZ0Ryb3BXYXkuY29uZmlndXJhdGlvbk1vZGVsUHJveHkuc2VydmljZS5qcz9iYmJmIl0sIm5hbWVzIjpbIkRSQUdfRFJPUF9DT05GSUdfUFJPWFlfU0VSVklDRSIsImRkTW9kZWxDb25mTW9kZWxQcm94eVNlcnZpY2UiLCJFYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMiLCJlYXN5Rm9ybURyYWdXYXlDb25maWciLCIkcGFyc2UiLCJpbml0IiwiY29uZmlnTW9kZWwiLCJkZE1vZGVsIiwibGluZXMiLCJhbmd1bGFyIiwiZm9yRWFjaCIsImxpbmVWYWx1ZSIsImtleVZhbHVlIiwicHVzaCIsImNvcHkiLCJnZXRFYXN5Rm9ybUVtcHR5Q29uZmlndXJhdGlvbkxpbmVNb2RlbCIsImFwcGx5VGhpc0xpbmUiLCJjb2xWYWx1ZSIsImNvbEluZGV4IiwiY29udHJvbFRvQmluZCIsImNvbnRyb2wiLCJnZXRGb3JtbHlDb250cm9sVGVtcGxhdGVGb3JOY29sdW1uTGluZSIsImxlbmd0aCIsImdldEZvcm1seURldGFpbGVkQ29udHJvbE1vZGVsRnJvbURyYWdEcm9wT2JqZWN0IiwiZm9ybWx5VHlwZSIsImZvcm1seURldGFpbGVkQ29udHJvbE1vZGVsIiwia2V5IiwiY29uZmlnTW9kZWxDb250cm9sIiwibmV3Q2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiY3NzQ2xhc3MiLCJiaW5kQ29uZmlnQ3RybE1vZGVsRnJvbUZvcm1seURldGFpbGVkQ3RybE1vZGVsIiwiY29sdW1ucyIsImdldEVhc3lGb3JtQ29uZmlndXJhdGlvbkVtcHR5Q29udHJvbE1vZGVsIiwibnVtQ29sdW1uIiwiZXhpc3QiLCJkcmFnRHJvcE1vZGVsIiwiYUNvbmZpZ0xpbmUiLCJhQ29uZmlnTGluZUluZGV4IiwiYUNvbmZpZ0NvbnRyb2wiLCJhQ29uZmlnQ29udHJvbEluZGV4IiwiZHJhZ2Ryb3BDb250cm9sUmVmIiwibGFiZWwiLCJncm91cE9mQ3RybFJlZiIsImFDdHJscmVmIiwic2VsZWN0ZWRDb250cm9sIiwiY3NzQ2xhc3NUb0FwcGx5IiwiZ2V0SXRlbUNzc0RlcGVuZGluZ051bWJlckl0ZW1zSW5Sb3ciLCJkZENvbnRyb2xUb1VwZGF0ZSIsImRyYWdEcmFwQ3RybE1vZGVsIiwiY29udHJvbE1vZGVsIiwibGlzdENvbnRyb2wiLCJnZXRFYXN5Rm9ybUxpc3RDb250cm9scyIsImNvbnRyb2xzTGlzdEdldHRlciIsImN0cmxMaXN0VmFsdWUiLCJpZCIsInRoaXNLZXkiLCJjb25maWd1cmF0aW9uT2JqIiwiaXNVbmlxdWUiLCJpIiwiaiIsImJhc2VLZXlWYWx1ZSIsIm5ld0tleSIsIkRhdGUiLCJub3ciLCJ2YWxpZEtleVVuaXF1ZW5lc3MiLCJsaW5ldmFsdWUiLCJsaW5lSW5kZXgiLCJhTGluZVZhbHVlIiwiYUxpbmVLZXkiLCJsaW5lIiwiZm9ybWx5RGV0YWlsQ3RybE1vZGVsIiwiY29uZmlndXJhdGlvbkN0cmxNb2RlbCIsImFzc2lnbiIsImNyZWF0ZVVuaXF1ZUtleSIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNQSxpQ0FBaUMsOEJBQXZDOztJQUVNQyw0QjtBQUVKLHdDQUNFQyw4QkFERjtBQUVFO0FBQ0E7QUFDQUMsdUJBSkYsRUFLRUMsTUFMRixFQUtTO0FBQUE7O0FBQ1AsU0FBS0YsOEJBQUwsR0FBc0NBLDhCQUF0QztBQUNBO0FBQ0E7QUFDQSxTQUFLQyxxQkFBTCxHQUFzQ0EscUJBQXRDO0FBQ0EsU0FBS0MsTUFBTCxHQUFzQ0EsTUFBdEM7QUFDQSxTQUFLQyxJQUFMO0FBQ0Q7Ozs7MkJBRUssQ0FFTDs7O2dFQUUyQ0MsVyxFQUFhQyxPLEVBQVE7QUFBQTs7QUFDL0Q7Ozs7OztBQU1BO0FBQ0FELGtCQUFZRSxLQUFaLEdBQW9CLEVBQXBCO0FBQ0E7QUFDQUMsY0FBUUMsT0FBUixDQUFnQkgsUUFBUSxDQUFSLENBQWhCLEVBQTRCLFVBQUNJLFNBQUQsRUFBWUMsUUFBWixFQUF1QjtBQUNqRDtBQUNBTixvQkFBWUUsS0FBWixDQUFrQkssSUFBbEIsQ0FBdUJKLFFBQVFLLElBQVIsQ0FBYSxNQUFLWiw4QkFBTCxDQUFvQ2Esc0NBQXBDLEVBQWIsQ0FBdkI7QUFDQTtBQUNBLGNBQUtDLGFBQUwsQ0FBbUJKLFdBQVcsQ0FBOUIsRUFBaUNBLFFBQWpDLEVBQTJDTixXQUEzQztBQUNBO0FBQ0FHLGdCQUFRQyxPQUFSLENBQWdCQyxTQUFoQixFQUEyQixVQUFDTSxRQUFELEVBQVdDLFFBQVgsRUFBc0I7QUFDL0M7QUFDQSxjQUFJQyxnQkFBZ0I7QUFDbEJDLHFCQUFVWCxRQUFRSyxJQUFSLENBQWEsTUFBS1osOEJBQUwsQ0FBb0NtQixzQ0FBcEMsQ0FBMkVWLFVBQVVXLE1BQXJGLEVBQTZGLE1BQUtDLCtDQUFMLENBQXFEWixVQUFVTyxRQUFWLENBQXJELEVBQTBFTSxVQUF2SyxDQUFiO0FBRFEsV0FBcEI7QUFHQSxjQUFJQyw2QkFBNkIsTUFBS0YsK0NBQUwsQ0FBcURaLFVBQVVPLFFBQVYsQ0FBckQsQ0FBakM7QUFDQTtBQUNBLGNBQUcsT0FBT0QsU0FBU1MsR0FBaEIsS0FBd0IsV0FBM0IsRUFBdUM7QUFDckM7QUFDQVAsMEJBQWNDLE9BQWQsR0FBd0JYLFFBQVFLLElBQVIsQ0FBYUcsU0FBU1Usa0JBQXRCLENBQXhCO0FBQ0E7QUFDQSxnQkFBSUMsZUFBZSxNQUFLMUIsOEJBQUwsQ0FBb0NtQixzQ0FBcEMsQ0FBMkVWLFVBQVVXLE1BQXJGLEVBQTZGLE1BQUtDLCtDQUFMLENBQXFEWixVQUFVTyxRQUFWLENBQXJELEVBQTBFTSxVQUF2SyxDQUFuQjtBQUNBTCwwQkFBY0MsT0FBZCxDQUFzQlMsU0FBdEIsR0FBa0NELGFBQWFDLFNBQS9DO0FBQ0E7QUFDQVYsMEJBQWNDLE9BQWQsQ0FBc0JVLFFBQXRCLEdBQWlDRixhQUFhQyxTQUE5QztBQUNBO0FBQ0MsV0FUSCxNQVNPO0FBQ0g7QUFDQTtBQUNBLGtCQUFLRSw4Q0FBTCxDQUFvRE4sMEJBQXBELEVBQWdGTixhQUFoRixFQUErRmIsV0FBL0Y7QUFDRDtBQUNEO0FBQ0EsY0FBSSxPQUFPQSxZQUFZRSxLQUFaLENBQWtCSSxRQUFsQixFQUE0Qm9CLE9BQTVCLENBQW9DZCxRQUFwQyxDQUFQLEtBQXlELFdBQTdELEVBQTBFWixZQUFZRSxLQUFaLENBQWtCSSxRQUFsQixFQUE0Qm9CLE9BQTVCLENBQW9DbkIsSUFBcEMsQ0FBeUNKLFFBQVFLLElBQVIsQ0FBYSxNQUFLWiw4QkFBTCxDQUFvQytCLHlDQUFwQyxFQUFiLENBQXpDO0FBQzFFM0Isc0JBQVlFLEtBQVosQ0FBa0JJLFFBQWxCLEVBQTRCb0IsT0FBNUIsQ0FBb0NkLFFBQXBDLEVBQThDRSxPQUE5QyxHQUF5RFgsUUFBUUssSUFBUixDQUFhSyxjQUFjQyxPQUEzQixDQUF6RDtBQUNBZCxzQkFBWUUsS0FBWixDQUFrQkksUUFBbEIsRUFBNEJvQixPQUE1QixDQUFvQ2QsUUFBcEMsRUFBOENnQixTQUE5QyxHQUEwRGhCLFdBQVcsQ0FBckU7QUFDQVosc0JBQVlFLEtBQVosQ0FBa0JJLFFBQWxCLEVBQTRCb0IsT0FBNUIsQ0FBb0NkLFFBQXBDLEVBQThDaUIsS0FBOUMsR0FBd0QsSUFBeEQ7QUFDSCxTQTFCRDtBQTJCRCxPQWpDRDtBQWtDQSxhQUFPN0IsV0FBUDtBQUNEOzs7d0NBR21CQSxXLEVBQWE4QixhLEVBQWM7QUFDN0MzQixjQUFRQyxPQUFSLENBQWdCSixZQUFZRSxLQUE1QixFQUFtQyxVQUFDNkIsV0FBRCxFQUFjQyxnQkFBZCxFQUFpQztBQUNoRTdCLGdCQUFRQyxPQUFSLENBQWdCMkIsWUFBWUwsT0FBNUIsRUFBcUMsVUFBQ08sY0FBRCxFQUFpQkMsbUJBQWpCLEVBQXVDO0FBQzFFO0FBQ0EsY0FBRyxPQUFPSixjQUFjLENBQWQsRUFBaUJFLGdCQUFqQixDQUFQLEtBQThDLFdBQWpELEVBQTZEO0FBQzNELGdCQUFHRixjQUFjLENBQWQsRUFBaUJFLGdCQUFqQixFQUFtQ2hCLE1BQW5DLEdBQTRDLENBQS9DLEVBQWlEO0FBQy9DYyw0QkFBYyxDQUFkLEVBQWlCRSxnQkFBakIsRUFBbUNFLG1CQUFuQyxFQUF3RGQsR0FBeEQsR0FBOERhLGVBQWVuQixPQUFmLENBQXVCTSxHQUFyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FVLDRCQUFjLENBQWQsRUFBaUJFLGdCQUFqQixFQUFtQ0UsbUJBQW5DLEVBQXdEYixrQkFBeEQsR0FBNkVsQixRQUFRSyxJQUFSLENBQWF5QixlQUFlbkIsT0FBNUIsQ0FBN0U7QUFDRDtBQUNGO0FBQ0YsU0FaRDtBQWFILE9BZEQ7QUFlRDs7QUFHRDs7Ozs7Ozs7Ozs0REFPd0NkLFcsRUFBYThCLGEsRUFBYztBQUFBOztBQUNqRTtBQUNBQSxvQkFBYyxDQUFkLElBQW1CLEVBQW5CO0FBQ0EzQixjQUFRQyxPQUFSLENBQWdCSixZQUFZRSxLQUE1QixFQUFtQyxVQUFDNkIsV0FBRCxFQUFjQyxnQkFBZCxFQUFpQztBQUNsRTtBQUNBRixzQkFBYyxDQUFkLEVBQWlCdkIsSUFBakIsQ0FBc0IsRUFBdEI7QUFDQUosZ0JBQVFDLE9BQVIsQ0FBZ0IyQixZQUFZTCxPQUE1QixFQUFxQyxVQUFDTyxjQUFELEVBQWtCO0FBQ3JEO0FBQ0EsY0FBSUUscUJBQXFCO0FBQ3ZCckIscUJBQVksT0FEVztBQUV2QlUsc0JBQVksV0FGVztBQUd2QlksbUJBQVk7QUFIVyxXQUF6QjtBQUtBakMsa0JBQVFDLE9BQVIsQ0FBZ0IwQixjQUFjLENBQWQsQ0FBaEIsRUFBa0MsVUFBQ08sY0FBRCxFQUFrQjtBQUNsRGxDLG9CQUFRQyxPQUFSLENBQWdCaUMsY0FBaEIsRUFBZ0MsVUFBQ0MsUUFBRCxFQUFZO0FBQzFDLGtCQUFJQSxTQUFTeEIsT0FBVCxLQUFxQm1CLGVBQWVuQixPQUFmLENBQXVCeUIsZUFBaEQsRUFBaUVKLHFCQUFxQmhDLFFBQVFLLElBQVIsQ0FBYThCLFFBQWIsQ0FBckI7QUFDbEUsYUFGRDtBQUdELFdBSkQ7QUFLQVIsd0JBQWMsQ0FBZCxFQUFpQkUsZ0JBQWpCLEVBQW1DekIsSUFBbkMsQ0FBd0M0QixrQkFBeEM7QUFDQTtBQUNBLGNBQUlLLGtCQUFrQixPQUFLM0MscUJBQUwsQ0FBMkI0QyxtQ0FBM0IsQ0FBK0RYLGNBQWMsQ0FBZCxFQUFpQkUsZ0JBQWpCLEVBQW1DaEIsTUFBbEcsQ0FBdEI7QUFDQWIsa0JBQVFDLE9BQVIsQ0FBZ0IwQixjQUFjLENBQWQsRUFBaUJFLGdCQUFqQixDQUFoQixFQUFvRCxVQUFDVSxpQkFBRDtBQUFBLG1CQUFxQkEsa0JBQWtCbEIsUUFBbEIsR0FBNkJnQixlQUFsRDtBQUFBLFdBQXBEO0FBQ0QsU0FoQkQ7QUFpQkQsT0FwQkQ7QUFxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNEOztBQUtEOzs7Ozs7O29FQUlnREcsaUIsRUFBa0I7QUFDaEUsVUFBSUMsZUFBc0IsRUFBMUI7QUFDQSxVQUFJQyxjQUFzQixLQUFLakQsOEJBQUwsQ0FBb0NrRCx1QkFBcEMsRUFBMUI7QUFDQSxVQUFJQyxxQkFBc0IsS0FBS2pELE1BQUwsQ0FBWSxVQUFaLENBQTFCOztBQUVBSyxjQUFRQyxPQUFSLENBQWdCMkMsbUJBQW1CRixXQUFuQixDQUFoQixFQUFpRCxVQUFDRyxhQUFELEVBQWlCO0FBQ2hFLFlBQUlBLGNBQWNDLEVBQWQsS0FBcUJOLGtCQUFrQjdCLE9BQTNDLEVBQXFEOEIsZUFBZUksYUFBZjtBQUN0RCxPQUZEO0FBR0EsYUFBT0osWUFBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7O3VDQU9rQk0sTyxFQUFTQyxnQixFQUFpQjtBQUMxQyxVQUFJQyxXQUFXLElBQWY7QUFDQSxXQUFLLElBQUlDLElBQUlGLGlCQUFpQmpELEtBQWpCLENBQXVCYyxNQUF2QixHQUFnQyxDQUE3QyxFQUFnRHFDLEtBQUssQ0FBckQsRUFBd0RBLEdBQXhELEVBQTZEO0FBQzNELGFBQUssSUFBSUMsSUFBSUgsaUJBQWlCakQsS0FBakIsQ0FBdUJtRCxDQUF2QixFQUEwQjNCLE9BQTFCLENBQWtDVixNQUFsQyxHQUEyQyxDQUF4RCxFQUEyRHNDLEtBQUssQ0FBaEUsRUFBbUVBLEdBQW5FLEVBQXdFO0FBQ3RFLGNBQUksT0FBT0gsaUJBQWlCakQsS0FBakIsQ0FBdUJtRCxDQUF2QixFQUEwQjNCLE9BQTFCLENBQWtDNEIsQ0FBbEMsRUFBcUN4QyxPQUE1QyxLQUF3RCxXQUE1RCxFQUF5RTtBQUN2RSxnQkFBSXFDLGlCQUFpQmpELEtBQWpCLENBQXVCbUQsQ0FBdkIsRUFBMEIzQixPQUExQixDQUFrQzRCLENBQWxDLEVBQXFDeEMsT0FBckMsQ0FBNkNNLEdBQTdDLEtBQXFEOEIsT0FBekQsRUFBa0U7QUFDaEVFLHlCQUFXLEtBQVg7QUFDRDtBQUNGO0FBQ0Y7QUFDRjtBQUNELGFBQU9BLFFBQVA7QUFDRDs7O29DQUdlRyxZLEVBQWNKLGdCLEVBQWlCO0FBQzdDO0FBQ0EsVUFBSUssU0FBU0QsZUFBZSxHQUFmLEdBQXFCRSxLQUFLQyxHQUFMLEVBQWxDO0FBQ0EsVUFBSSxLQUFLQyxrQkFBTCxDQUF3QkgsTUFBeEIsRUFBZ0NMLGdCQUFoQyxNQUFzRCxJQUExRCxFQUErRDtBQUM3RCxlQUFPSyxNQUFQO0FBQ0QsT0FGRCxNQUVLO0FBQ0hBLGlCQUFTRCxlQUFlLEdBQWYsR0FBcUJFLEtBQUtDLEdBQUwsRUFBOUI7QUFDQSxZQUFJLEtBQUtDLGtCQUFMLENBQXdCSCxNQUF4QixFQUFnQ0wsZ0JBQWhDLE1BQXNELElBQTFELEVBQStEO0FBQzdELGlCQUFPSyxNQUFQO0FBQ0QsU0FGRCxNQUVLO0FBQ0hBLG1CQUFTRCxlQUFlLEdBQWYsR0FBcUJFLEtBQUtDLEdBQUwsRUFBOUI7QUFDQSxpQkFBT0YsTUFBUDtBQUNEO0FBQ0Y7QUFDRjs7O2tDQUdhSSxTLEVBQVdDLFMsRUFBVzdELFcsRUFBWTtBQUM5Q0csY0FBUUMsT0FBUixDQUFnQkosWUFBWUUsS0FBNUIsRUFBbUMsVUFBQzRELFVBQUQsRUFBYUMsUUFBYixFQUF3QjtBQUN6RCxZQUFJQSxhQUFhRixTQUFqQixFQUE0QkMsV0FBV0UsSUFBWCxHQUFrQkosU0FBbEI7QUFDN0IsT0FGRDtBQUdEOztBQUdEOzs7Ozs7bUVBRytDSyxxQixFQUF1QkMsc0IsRUFBd0JsRSxXLEVBQVk7QUFDeEc7Ozs7QUFJQTtBQUNBLFdBQUtGLE1BQUwsQ0FBWSx5QkFBWixFQUF1Q3FFLE1BQXZDLENBQThDRCxzQkFBOUMsRUFBc0UsS0FBS3BFLE1BQUwsQ0FBWSxpQkFBWixFQUErQm1FLHFCQUEvQixDQUF0RTtBQUNBO0FBQ0EsV0FBS25FLE1BQUwsQ0FBWSxjQUFaLEVBQTRCcUUsTUFBNUIsQ0FBbUNELHNCQUFuQyxFQUEyRCxLQUFLcEUsTUFBTCxDQUFZLFlBQVosRUFBMEJtRSxxQkFBMUIsQ0FBM0Q7QUFDQTtBQUNBLFdBQUtuRSxNQUFMLENBQVksYUFBWixFQUEyQnFFLE1BQTNCLENBQWtDRCxzQkFBbEMsRUFBMEQsS0FBS0UsZUFBTCxDQUFxQixLQUFLdEUsTUFBTCxDQUFZLGNBQVosRUFBNEJvRSxzQkFBNUIsQ0FBckIsRUFBMEVsRSxXQUExRSxDQUExRDtBQUNBO0FBQ0EsV0FBS0YsTUFBTCxDQUFZLGlCQUFaLEVBQStCcUUsTUFBL0IsQ0FBc0NELHNCQUF0QyxFQUE4RCxLQUFLcEUsTUFBTCxDQUFZLGVBQVosRUFBNkJtRSxxQkFBN0IsQ0FBOUQ7QUFDQTtBQUNBLFdBQUtuRSxNQUFMLENBQVksK0JBQVosRUFBNkNxRSxNQUE3QyxDQUFvREQsc0JBQXBELEVBQTRFLEtBQUtwRSxNQUFMLENBQVksYUFBWixFQUEyQm1FLHFCQUEzQixDQUE1RTtBQUNBO0FBQ0EsV0FBS25FLE1BQUwsQ0FBWSxrQ0FBWixFQUFnRHFFLE1BQWhELENBQXVERCxzQkFBdkQsRUFBK0UsS0FBS3BFLE1BQUwsQ0FBWSxnQkFBWixFQUE4Qm1FLHFCQUE5QixDQUEvRTtBQUNBO0FBQ0EsV0FBS25FLE1BQUwsQ0FBWSxxQ0FBWixFQUFtRHFFLE1BQW5ELENBQTBERCxzQkFBMUQsRUFBa0YsS0FBS3BFLE1BQUwsQ0FBWSxrQkFBWixFQUFnQ21FLHFCQUFoQyxDQUFsRjtBQUNBO0FBQ0EsV0FBS25FLE1BQUwsQ0FBWSxxQ0FBWixFQUFtRHFFLE1BQW5ELENBQTBERCxzQkFBMUQsRUFBa0YsS0FBS3BFLE1BQUwsQ0FBWSxtQkFBWixFQUFpQ21FLHFCQUFqQyxDQUFsRjtBQUNBO0FBQ0EsV0FBS25FLE1BQUwsQ0FBWSxpQ0FBWixFQUErQ3FFLE1BQS9DLENBQXNERCxzQkFBdEQsRUFBOEUsS0FBS3BFLE1BQUwsQ0FBWSxlQUFaLEVBQTZCbUUscUJBQTdCLENBQTlFOztBQUVBLFVBQUksS0FBS25FLE1BQUwsQ0FBWSxjQUFaLEVBQTRCb0Usc0JBQTVCLE1BQXdELFlBQTVELEVBQTBFO0FBQ3hFLGFBQUtwRSxNQUFMLENBQVkseUNBQVosRUFBdURxRSxNQUF2RCxDQUE4REQsc0JBQTlELEVBQXNGLEtBQUtwRSxNQUFMLENBQVksaUJBQVosRUFBK0JtRSxxQkFBL0IsQ0FBdEY7QUFDRDtBQUNGOzs7Ozs7QUFLSHRFLDZCQUE2QjBFLE9BQTdCLEdBQXVDLENBQ3JDLGdDQURxQztBQUVyQztBQUNBO0FBQ0EsdUJBSnFDLEVBS3JDLFFBTHFDLENBQXZDOztrQkFRZTFFLDRCO1FBRWJELDhCLEdBQUFBLDhCIiwiZmlsZSI6IjcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFJBR19EUk9QX0NPTkZJR19QUk9YWV9TRVJWSUNFID0gJ2RkTW9kZWxDb25mTW9kZWxQcm94eVNlcnZpY2UnO1xuXG5jbGFzcyBkZE1vZGVsQ29uZk1vZGVsUHJveHlTZXJ2aWNle1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzLCAgXG4gICAgLy8gY29udHJvbGxlck1vZGFsUHJveHksIFxuICAgIC8vIGRyYWdEcm9wQ29uZmlnLCBcbiAgICBlYXN5Rm9ybURyYWdXYXlDb25maWcsXG4gICAgJHBhcnNlKXtcbiAgICB0aGlzLkVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscyA9IEVhc3lGb3JtR2VuRm9ybWx5QmluZGluZ01vZGVscztcbiAgICAvLyB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5ICAgICAgICAgICA9IGNvbnRyb2xsZXJNb2RhbFByb3h5O1xuICAgIC8vIHRoaXMuZHJhZ0Ryb3BDb25maWcgICAgICAgICAgICAgICAgID0gZHJhZ0Ryb3BDb25maWc7XG4gICAgdGhpcy5lYXN5Rm9ybURyYWdXYXlDb25maWcgICAgICAgICAgPSBlYXN5Rm9ybURyYWdXYXlDb25maWc7XG4gICAgdGhpcy4kcGFyc2UgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcGFyc2U7XG4gICAgdGhpcy5pbml0KCk7ICBcbiAgfVxuICBcbiAgaW5pdCgpe1xuICAgIFxuICB9XG5cbiAgcmVmcmVzaEFsbENvbmZpZ3VyYXRpb25Gcm9tRHJhZ0FuZERyb3BNb2RlbChjb25maWdNb2RlbCwgZGRNb2RlbCl7XG4gICAgLyoqXG4gICAgICogVE9ETyA6IHByZXZlbnQgcmVzZXQgYWxyZWFkeSBzZXQgcHJvcHNcbiAgICAgKiBcbiAgICAgKiBwcmV2aW91c0NvbmZpZ3VyYXRpb25Nb2RlbCA9IGEgYmFja3VwIG9mIGNvbmZpZ3VyYXRpb24gbW9kZWwgJ2NvbmZpZ01vZGVsICdiZWZvcmUgcmVzZXR0aW5nIGl0XG4gICAgICogLT4gZHJhZ0Ryb3AgbW9kZWwgY29udGFpbnMgdW5pcXVlIGtleXMgb2YgYWxyZWFkeSBleGlzdGluZyBjb250cm9scyA6IHRoZXNlIGNvbnRyb2xzIG11c3Qgbm90IGJlIHJlc2V0IC8gb3ZlcndyaXR0ZW4gIFxuICAgICAqL1xuICAgIC8vIGxldCBwcmV2aW91c0NvbmZpZ3VyYXRpb25Nb2RlbCA9IGFuZ3VsYXIuY29weShjb25maWdNb2RlbCk7IFxuICAgIGNvbmZpZ01vZGVsLmxpbmVzID0gW107XG4gICAgLy8gaXRlcmF0ZXMgbGluZSBjb25maWcgbW9kZWxcbiAgICBhbmd1bGFyLmZvckVhY2goZGRNb2RlbFsxXSwgKGxpbmVWYWx1ZSwga2V5VmFsdWUpPT57XG4gICAgICAvLyBhZGQgZW1wdHkgbGluZSAxc3QgLSBpZiBsaW5lIGlzIGVtcHR5IC0+IGl0IHdpbGwgYmUgZW5vdWdoIFxuICAgICAgY29uZmlnTW9kZWwubGluZXMucHVzaChhbmd1bGFyLmNvcHkodGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuZ2V0RWFzeUZvcm1FbXB0eUNvbmZpZ3VyYXRpb25MaW5lTW9kZWwoKSkpO1xuICAgICAgLy8gdXBkYXRlIGxpbmUgdmFsdWUgZmllbGRcbiAgICAgIHRoaXMuYXBwbHlUaGlzTGluZShrZXlWYWx1ZSArIDEsIGtleVZhbHVlLCBjb25maWdNb2RlbCk7XG4gICAgICAvLyBpdGVyYXRlIHRocm91Z2ggY29sdW1ucyBhbmQgYWRkIHRoZW0gaWYgY29udHJvbCBleGlzdHNcdFxuICAgICAgYW5ndWxhci5mb3JFYWNoKGxpbmVWYWx1ZSwgKGNvbFZhbHVlLCBjb2xJbmRleCk9PntcbiAgICAgICAgLy8gcHVzaCBhbiBlbXB0eSBjb250cm9sIG1vZGVsIGJ1dCByZWxhdGl2ZSB0byBkcmFkcm9wIDogbW9kZWwgY29udHJvbCB0eXBlIC0gKGlmIGRhdGVwaWNrZXIgc28gYWRkaXRpb25uYWwgcHJvcGVydGllcyBhcmUgYWRkZWQpIFx0XG4gICAgICAgIGxldCBjb250cm9sVG9CaW5kID0ge1xuICAgICAgICAgIGNvbnRyb2wgOiBhbmd1bGFyLmNvcHkodGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuZ2V0Rm9ybWx5Q29udHJvbFRlbXBsYXRlRm9yTmNvbHVtbkxpbmUobGluZVZhbHVlLmxlbmd0aCwgdGhpcy5nZXRGb3JtbHlEZXRhaWxlZENvbnRyb2xNb2RlbEZyb21EcmFnRHJvcE9iamVjdChsaW5lVmFsdWVbY29sSW5kZXhdKS5mb3JtbHlUeXBlKSlcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGZvcm1seURldGFpbGVkQ29udHJvbE1vZGVsID0gdGhpcy5nZXRGb3JtbHlEZXRhaWxlZENvbnRyb2xNb2RlbEZyb21EcmFnRHJvcE9iamVjdChsaW5lVmFsdWVbY29sSW5kZXhdKTtcbiAgICAgICAgLy8gY29udHJvbHMgYWxyZWFkeXMgZXhpc3RlZCBzbyBkbyBub3QgcmVzZXQgaXQgLSBjb250cm9sIHRvIGJpbmQgaXMgdGhlIHByZXZpb3VzIG9uZVx0XHRcbiAgICAgICAgaWYodHlwZW9mIGNvbFZhbHVlLmtleSAhPT0gJ3VuZGVmaW5lZCcpe1xuICAgICAgICAgIC8vY29uc29sZS53YXJuKCdkZWJ1ZyBkcmFnZHJvcE1vZGVsIHNob3cgdGhpcyBjb250cm9sIGtleSA6ICcgKyBjb2xWYWx1ZS5rZXkpO1xuICAgICAgICAgIGNvbnRyb2xUb0JpbmQuY29udHJvbCA9IGFuZ3VsYXIuY29weShjb2xWYWx1ZS5jb25maWdNb2RlbENvbnRyb2wpO1xuICAgICAgICAgIC8vdXBkYXRlIGNzc0NsYXNzIGRlcGVuZGluZyBuZXcgcG9zaXRpb246XG4gICAgICAgICAgdmFyIG5ld0NsYXNzTmFtZSA9IHRoaXMuRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzLmdldEZvcm1seUNvbnRyb2xUZW1wbGF0ZUZvck5jb2x1bW5MaW5lKGxpbmVWYWx1ZS5sZW5ndGgsIHRoaXMuZ2V0Rm9ybWx5RGV0YWlsZWRDb250cm9sTW9kZWxGcm9tRHJhZ0Ryb3BPYmplY3QobGluZVZhbHVlW2NvbEluZGV4XSkuZm9ybWx5VHlwZSk7XG4gICAgICAgICAgY29udHJvbFRvQmluZC5jb250cm9sLmNsYXNzTmFtZSA9IG5ld0NsYXNzTmFtZS5jbGFzc05hbWU7XG4gICAgICAgICAgLy90ZXN0IGlmIGhlYWRlciBuZWUgdGhpcyBvbmVcbiAgICAgICAgICBjb250cm9sVG9CaW5kLmNvbnRyb2wuY3NzQ2xhc3MgPSBuZXdDbGFzc05hbWUuY2xhc3NOYW1lO1xuICAgICAgICAgIC8vIGdldCBjb250cm9sIGRldGFpbHMgZm9yIHRoaXMga2V5IGluIGJhY2t1cCA6IHByZXZpb3VzQ29uZmlndXJhdGlvbk1vZGVsXG4gICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAvLyBjb250cm9scyBkaWQgbm90IGV4aXN0cyBiZWZvcmUgOiBjb250cm9sIHRvIGJpbmQgaXMgYSBuZXcgb25lXG4gICAgICAgICAgICAvLyBiaW5kIGRyYWdkcm9wIGNvbnRyb2wgcHJvcGVydGllcyB0byBjb25maWd1cmF0aW9uIG1vZGVsIHRocm91Z2ggY29udHJvbFRvQmluZCB2YXJcbiAgICAgICAgICAgIHRoaXMuYmluZENvbmZpZ0N0cmxNb2RlbEZyb21Gb3JtbHlEZXRhaWxlZEN0cmxNb2RlbChmb3JtbHlEZXRhaWxlZENvbnRyb2xNb2RlbCwgY29udHJvbFRvQmluZCwgY29uZmlnTW9kZWwpO1xuICAgICAgICAgIH1cdFxuICAgICAgICAgIC8vIGFwcGx5IGNvbnRyb2xUb0JpbmQgdmFyIHRvIGNvbmZpZ3VyYXRpb24gbW9kZWwgY29udHJvbFxuICAgICAgICAgIGlmICh0eXBlb2YgY29uZmlnTW9kZWwubGluZXNba2V5VmFsdWVdLmNvbHVtbnNbY29sSW5kZXhdID09PSAndW5kZWZpbmVkJykgY29uZmlnTW9kZWwubGluZXNba2V5VmFsdWVdLmNvbHVtbnMucHVzaChhbmd1bGFyLmNvcHkodGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuZ2V0RWFzeUZvcm1Db25maWd1cmF0aW9uRW1wdHlDb250cm9sTW9kZWwoKSkpOyBcbiAgICAgICAgICBjb25maWdNb2RlbC5saW5lc1trZXlWYWx1ZV0uY29sdW1uc1tjb2xJbmRleF0uY29udHJvbCBcdD0gYW5ndWxhci5jb3B5KGNvbnRyb2xUb0JpbmQuY29udHJvbCk7XG4gICAgICAgICAgY29uZmlnTW9kZWwubGluZXNba2V5VmFsdWVdLmNvbHVtbnNbY29sSW5kZXhdLm51bUNvbHVtbiA9IGNvbEluZGV4ICsgMTtcbiAgICAgICAgICBjb25maWdNb2RlbC5saW5lc1trZXlWYWx1ZV0uY29sdW1uc1tjb2xJbmRleF0uZXhpc3QgXHRcdD0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBjb25maWdNb2RlbDtcbiAgfSBcbiAgXG4gICBcbiAgcmVmcmVzaENvbnRyb2xzS2V5cyhjb25maWdNb2RlbCwgZHJhZ0Ryb3BNb2RlbCl7XHRcdFx0XHRcbiAgICBhbmd1bGFyLmZvckVhY2goY29uZmlnTW9kZWwubGluZXMsIChhQ29uZmlnTGluZSwgYUNvbmZpZ0xpbmVJbmRleCk9PntcdFx0XHRcdFx0XHRcbiAgICAgICAgYW5ndWxhci5mb3JFYWNoKGFDb25maWdMaW5lLmNvbHVtbnMsIChhQ29uZmlnQ29udHJvbCwgYUNvbmZpZ0NvbnRyb2xJbmRleCk9PntcbiAgICAgICAgICAvL2lmIGxhc3QgY29udHJvbCByZW1vdmVkIGZyb20gbGluZSAtIGFuZCBkcmFnRHJvcCBtb2RlbCBkaWQgbm90IGFscmVhZHkgcmVtb3ZlZCB0aGlzIGxpbmVcbiAgICAgICAgICBpZih0eXBlb2YgZHJhZ0Ryb3BNb2RlbFsxXVthQ29uZmlnTGluZUluZGV4XSAhPT0gJ3VuZGVmaW5lZCcpe1xuICAgICAgICAgICAgaWYoZHJhZ0Ryb3BNb2RlbFsxXVthQ29uZmlnTGluZUluZGV4XS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICAgZHJhZ0Ryb3BNb2RlbFsxXVthQ29uZmlnTGluZUluZGV4XVthQ29uZmlnQ29udHJvbEluZGV4XS5rZXkgPSBhQ29uZmlnQ29udHJvbC5jb250cm9sLmtleTtcbiAgICAgICAgICAgICAgLy9uZWVkIHRvIHNhdmUgYWxsIGluIGRyYWdkcm9wTW9kZWwgYXMgaXQgaXMgYSByZWZlcmVuY2VcbiAgICAgICAgICAgICAgLy9jb25maWdNb2RlbCBzdGlsbCBuZWVkZWQgXG4gICAgICAgICAgICAgIC8vIC0+IHRvIGtlZXAgY29oZXJlbmNlIChzYW1lIGJhY2sgbW9kZWwpIGJldHdlZW4gYWxsIHZlcnNpb24gb2YgZWFzeUZvcm0gR2VuZXJhdG9yXG4gICAgICAgICAgICAgIC8vIC0+IGlzIHRoZSBiYWNrIG1vZGVsIChjYW4gYmUgc2F2ZWQgdG8gZGF0YUJhc2UpXG4gICAgICAgICAgICAgIGRyYWdEcm9wTW9kZWxbMV1bYUNvbmZpZ0xpbmVJbmRleF1bYUNvbmZpZ0NvbnRyb2xJbmRleF0uY29uZmlnTW9kZWxDb250cm9sID0gYW5ndWxhci5jb3B5KGFDb25maWdDb250cm9sLmNvbnRyb2wpO1x0XHRcdFx0XHRcdFx0XHRcdFx0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTsgICAgIFxuICB9XG5cblxuICAvKipcbiAgICogZHJhZyBkcm9wIG1vZGVsXG4gICAqIC0+IHdpbGwgYmUgdXNlZCB0byBiaW5kIGNvbmZpZ3VyYXRpb24gbW9kZWxcbiAgICogXHRvZiBubyBrZXkgc2F2ZWQsIGNvbmZpZ3VyYXRpb24gbW9kZWwgY29udHJvbHMgd291bGQgYmUgcmVzZXQgZWFjaCBkcm9wIGV2ZW50c1xuICAgKiBcbiAgICogLT4gbWF0Y2hpbmcga2V5IDogd2lsbCBwcmV2ZW50IHRvIHJlc2V0IGV4aXN0aW5nIGNvbnRyb2xcbiAgICovXG4gIGxvYWREcmFnRHJvcE1vZGVsRnJvbUNvbmZpZ3VyYXRpb25Nb2RlbChjb25maWdNb2RlbCwgZHJhZ0Ryb3BNb2RlbCl7XHRcdFx0XHRcbiAgICAvL3Jlc2V0IGRyYWdkcm9wIGZpZWxkcyBtb2RlbCBOT1QgYWxsIGRyYWdEcm9wTW9kZWwhXG4gICAgZHJhZ0Ryb3BNb2RlbFsxXSA9IFtdO1xuICAgIGFuZ3VsYXIuZm9yRWFjaChjb25maWdNb2RlbC5saW5lcywgKGFDb25maWdMaW5lLCBhQ29uZmlnTGluZUluZGV4KT0+e1xuICAgICAgLy9hZGQgbmV3IGxpbmVcbiAgICAgIGRyYWdEcm9wTW9kZWxbMV0ucHVzaChbXSk7XG4gICAgICBhbmd1bGFyLmZvckVhY2goYUNvbmZpZ0xpbmUuY29sdW1ucywgKGFDb25maWdDb250cm9sKT0+e1xuICAgICAgICAvLyBnZXQgY29udHJvbCB0eXBlIGZyb20gY29uZmlndXJhdGlvbi5jb250cm9sLnNlbGVjdGVkQ29udHJvbFxuICAgICAgICBsZXQgZHJhZ2Ryb3BDb250cm9sUmVmID0ge1xuICAgICAgICAgIGNvbnRyb2wgICA6ICdlbXB0eScsXG4gICAgICAgICAgY3NzQ2xhc3MgIDogJ2NvbC14cy0xMicsXG4gICAgICAgICAgbGFiZWwgICAgIDogJzxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj4gPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj4gPGRpdiBjbGFzcz1cIlwiPiA8L2Rpdj4gPC9kaXY+PC9kaXY+J1xuICAgICAgICB9O1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goZHJhZ0Ryb3BNb2RlbFswXSwgKGdyb3VwT2ZDdHJsUmVmKT0+e1xuICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChncm91cE9mQ3RybFJlZiwgKGFDdHJscmVmKT0+e1xuICAgICAgICAgICAgaWYgKGFDdHJscmVmLmNvbnRyb2wgPT09IGFDb25maWdDb250cm9sLmNvbnRyb2wuc2VsZWN0ZWRDb250cm9sKSBkcmFnZHJvcENvbnRyb2xSZWYgPSBhbmd1bGFyLmNvcHkoYUN0cmxyZWYpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgZHJhZ0Ryb3BNb2RlbFsxXVthQ29uZmlnTGluZUluZGV4XS5wdXNoKGRyYWdkcm9wQ29udHJvbFJlZik7XG4gICAgICAgIC8vdXBkYXRlIGNsYXNzIGRlcGVuZGluZyBudW1iZXIgb2YgY29udHJvbCBwZXIgbGluZVxuICAgICAgICBsZXQgY3NzQ2xhc3NUb0FwcGx5ID0gdGhpcy5lYXN5Rm9ybURyYWdXYXlDb25maWcuZ2V0SXRlbUNzc0RlcGVuZGluZ051bWJlckl0ZW1zSW5Sb3coZHJhZ0Ryb3BNb2RlbFsxXVthQ29uZmlnTGluZUluZGV4XS5sZW5ndGgpO1xuICAgICAgICBhbmd1bGFyLmZvckVhY2goZHJhZ0Ryb3BNb2RlbFsxXVthQ29uZmlnTGluZUluZGV4XSwgKGRkQ29udHJvbFRvVXBkYXRlKT0+ZGRDb250cm9sVG9VcGRhdGUuY3NzQ2xhc3MgPSBjc3NDbGFzc1RvQXBwbHkpO1xuICAgICAgfSk7XHQgICAgICAgICAgICBcbiAgICB9KTtcbiAgICAvLyBjb25zb2xlLmluZm8oJ2JpbmREcmFnRHJvcE1vZGVsRnJvbUNvbmZpZ3VyYXRpb25Nb2RlbCcpO1xuICAgIC8vIGNvbnNvbGUuZGlyKFx0XG4gICAgLy8gXHRcdFx0XHRcdFx0XHR7XG4gICAgLy8gXHRcdFx0XHRcdFx0XHRcdFx0J3doZW4nIFx0XHRcdFx0XHRcdFx0OiAnc3RhcnRpbmcnLFxuICAgIC8vIFx0XHRcdFx0XHRcdFx0XHRcdCdjb25maWdNb2RlbCBpcyAnIFx0OiBhbmd1bGFyLmNvcHkoY29uZmlnTW9kZWwpLFxuICAgIC8vIFx0XHRcdFx0XHRcdFx0XHRcdCdkcmFnRHJvcE1vZGVsIGlzICcgOiBhbmd1bGFyLmNvcHkoZHJhZ0Ryb3BNb2RlbClcbiAgICAvLyBcdFx0XHRcdFx0XHRcdH1cbiAgICAvLyBcdFx0XHRcdFx0XHQpOyAgICAgXG4gIH1cblxuXG5cblxuICAvKipcbiAgICogcmV0dXJucyBhIGNvbnRyb2wgbW9kZWwgdGhhdCBpcyBtb3JlIGZvcm1seSBkZXRhaWxlZFxuICAgKiAobW9yZSBmb3JtbHkgZGV0YWlsZWQgOiBzZWUgY29udHJvbHMgcHJvcGVydHkgaW4gRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzLl9lYXN5Rm9ybUxpc3RDb250cm9scylcbiAgICovXG4gIGdldEZvcm1seURldGFpbGVkQ29udHJvbE1vZGVsRnJvbURyYWdEcm9wT2JqZWN0KGRyYWdEcmFwQ3RybE1vZGVsKXtcbiAgICBsZXQgY29udHJvbE1vZGVsICAgICAgICA9IHt9O1xuICAgIGxldCBsaXN0Q29udHJvbCAgICAgICAgID0gdGhpcy5FYXN5Rm9ybUdlbkZvcm1seUJpbmRpbmdNb2RlbHMuZ2V0RWFzeUZvcm1MaXN0Q29udHJvbHMoKTtcbiAgICBsZXQgY29udHJvbHNMaXN0R2V0dGVyICA9IHRoaXMuJHBhcnNlKCdjb250cm9scycpO1xuICAgIFxuICAgIGFuZ3VsYXIuZm9yRWFjaChjb250cm9sc0xpc3RHZXR0ZXIobGlzdENvbnRyb2wpLCAoY3RybExpc3RWYWx1ZSk9PntcbiAgICAgIGlmIChjdHJsTGlzdFZhbHVlLmlkID09PSBkcmFnRHJhcEN0cmxNb2RlbC5jb250cm9sKSAgY29udHJvbE1vZGVsID0gY3RybExpc3RWYWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29udHJvbE1vZGVsO1xuICB9XG4gIFxuICAvKipcbiAgICogdmFsaWQgYSBjb250cm9sIGtleSBpcyB1bmlxdWVcbiAgICpcbiAgICAqIHllcy4uLiBmdW5jdGlvbiBuYW1lIGFscmVhZHkgdG9sZCB1cyB0aGF0LCBcbiAgICAqIC0+IGl0J3MganVzdCBjb25maXJtYXRpb24gYW5kIHRvIHNlZSBpZlxuICAgICogICAgeW91IGtlZXAgZm9jdXMgd2hpbGUgcmVhZGluZyBpdCBeXlxuICAgICovXG4gdmFsaWRLZXlVbmlxdWVuZXNzKHRoaXNLZXksIGNvbmZpZ3VyYXRpb25PYmope1xuICAgIGxldCBpc1VuaXF1ZSA9IHRydWU7XG4gICAgZm9yICh2YXIgaSA9IGNvbmZpZ3VyYXRpb25PYmoubGluZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGZvciAodmFyIGogPSBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2ldLmNvbHVtbnMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWd1cmF0aW9uT2JqLmxpbmVzW2ldLmNvbHVtbnNbal0uY29udHJvbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBpZiAoY29uZmlndXJhdGlvbk9iai5saW5lc1tpXS5jb2x1bW5zW2pdLmNvbnRyb2wua2V5ID09PSB0aGlzS2V5KSB7XG4gICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlO1xuICAgICAgICAgIH1cdFx0XHQgICAgXHRcdFxuICAgICAgICB9XG4gICAgICB9IFxuICAgIH1cbiAgICByZXR1cm4gaXNVbmlxdWU7ICBcbiAgfSAgXG4gIFxuICBcbiAgY3JlYXRlVW5pcXVlS2V5KGJhc2VLZXlWYWx1ZSwgY29uZmlndXJhdGlvbk9iail7XG4gICAgLy8gdW5pcXVlIGtleSAoc2V0IG9ubHkgZmlyc3QgdGltZSkgaW4gdGhpcyBtb2RlbCBpcyBmb3JtbHkgY29udHJvbCB0eXBlICsgRGF0ZS5ub3coKTsgXG4gICAgbGV0IG5ld0tleSA9IGJhc2VLZXlWYWx1ZSArICctJyArIERhdGUubm93KCk7XG4gICAgaWYgKHRoaXMudmFsaWRLZXlVbmlxdWVuZXNzKG5ld0tleSwgY29uZmlndXJhdGlvbk9iaikgPT09IHRydWUpe1xuICAgICAgcmV0dXJuIG5ld0tleTtcbiAgICB9ZWxzZXtcbiAgICAgIG5ld0tleSA9IGJhc2VLZXlWYWx1ZSArICctJyArIERhdGUubm93KCk7XG4gICAgICBpZiAodGhpcy52YWxpZEtleVVuaXF1ZW5lc3MobmV3S2V5LCBjb25maWd1cmF0aW9uT2JqKSA9PT0gdHJ1ZSl7XG4gICAgICAgIHJldHVybiBuZXdLZXk7XG4gICAgICB9ZWxzZXtcbiAgICAgICAgbmV3S2V5ID0gYmFzZUtleVZhbHVlICsgJy0nICsgRGF0ZS5ub3coKTtcbiAgICAgICAgcmV0dXJuIG5ld0tleTtcbiAgICAgIH1cbiAgICB9IFxuICB9ICBcbiBcblxuICBhcHBseVRoaXNMaW5lKGxpbmV2YWx1ZSwgbGluZUluZGV4LCBjb25maWdNb2RlbCl7XG4gICAgYW5ndWxhci5mb3JFYWNoKGNvbmZpZ01vZGVsLmxpbmVzLCAoYUxpbmVWYWx1ZSwgYUxpbmVLZXkpPT57XG4gICAgICBpZiAoYUxpbmVLZXkgPT09IGxpbmVJbmRleCkgYUxpbmVWYWx1ZS5saW5lID0gbGluZXZhbHVlO1xuICAgIH0pO1xuICB9ICBcbiAgXG5cbiAgLyoqXG4gICAqIGJpbmQgZm9ybWx5IGRldGFpbGVkIG1vZGVsIHRvIGNvbmZpZ3VyYXRpb24gY29udHJvbCBtb2RlbFxuICAgKi9cbiAgYmluZENvbmZpZ0N0cmxNb2RlbEZyb21Gb3JtbHlEZXRhaWxlZEN0cmxNb2RlbChmb3JtbHlEZXRhaWxDdHJsTW9kZWwsIGNvbmZpZ3VyYXRpb25DdHJsTW9kZWwsIGNvbmZpZ01vZGVsKXtcbiAgICAvKipcbiAgICAgICogVE9ETyA6cHJvcGVydGllcyBzaG91bGQgYmUgc2VydmVkIGJ5IHByb3ZpZGVyIFxuICAgICAgKiBtb3JlIGNvbmZpZ3VyYWJsZSB3aXRob3V0IHBhaW5cbiAgICAgICovXG4gICAgLy9zZXQgc2VsZWN0ZWQgY29udHJvbCA6XG4gICAgdGhpcy4kcGFyc2UoJ2NvbnRyb2wuc2VsZWN0ZWRDb250cm9sJykuYXNzaWduKGNvbmZpZ3VyYXRpb25DdHJsTW9kZWwsIHRoaXMuJHBhcnNlKCdzZWxlY3RlZENvbnRyb2wnKShmb3JtbHlEZXRhaWxDdHJsTW9kZWwpKTtcbiAgICAvL3NldCB0eXBlIDpcdFxuICAgIHRoaXMuJHBhcnNlKCdjb250cm9sLnR5cGUnKS5hc3NpZ24oY29uZmlndXJhdGlvbkN0cmxNb2RlbCwgdGhpcy4kcGFyc2UoJ2Zvcm1seVR5cGUnKShmb3JtbHlEZXRhaWxDdHJsTW9kZWwpKTtcbiAgICAvL3NldCBrZXkgOlx0XG4gICAgdGhpcy4kcGFyc2UoJ2NvbnRyb2wua2V5JykuYXNzaWduKGNvbmZpZ3VyYXRpb25DdHJsTW9kZWwsIHRoaXMuY3JlYXRlVW5pcXVlS2V5KHRoaXMuJHBhcnNlKCdjb250cm9sLnR5cGUnKShjb25maWd1cmF0aW9uQ3RybE1vZGVsKSwgY29uZmlnTW9kZWwpKTtcbiAgICAvL3NldCBzdWJ0eXBlIDpcdFxuICAgIHRoaXMuJHBhcnNlKCdjb250cm9sLnN1YnR5cGUnKS5hc3NpZ24oY29uZmlndXJhdGlvbkN0cmxNb2RlbCwgdGhpcy4kcGFyc2UoJ2Zvcm1seVN1YnR5cGUnKShmb3JtbHlEZXRhaWxDdHJsTW9kZWwpKTtcbiAgICAvL3NldCB0ZW1wbGF0ZU9wdGlvbnMubGFiZWwgOlx0XG4gICAgdGhpcy4kcGFyc2UoJ2NvbnRyb2wudGVtcGxhdGVPcHRpb25zLmxhYmVsJykuYXNzaWduKGNvbmZpZ3VyYXRpb25DdHJsTW9kZWwsIHRoaXMuJHBhcnNlKCdmb3JtbHlMYWJlbCcpKGZvcm1seURldGFpbEN0cmxNb2RlbCkpO1x0XHRcdFx0XHRcbiAgICAvL3NldCB0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWQgOlx0XG4gICAgdGhpcy4kcGFyc2UoJ2NvbnRyb2wudGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkJykuYXNzaWduKGNvbmZpZ3VyYXRpb25DdHJsTW9kZWwsIHRoaXMuJHBhcnNlKCdmb3JtbHlSZXF1aXJlZCcpKGZvcm1seURldGFpbEN0cmxNb2RlbCkpO1x0XG4gICAgLy9zZXQgdGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkIDpcdFxuICAgIHRoaXMuJHBhcnNlKCdjb250cm9sLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbicpLmFzc2lnbihjb25maWd1cmF0aW9uQ3RybE1vZGVsLCB0aGlzLiRwYXJzZSgnZm9ybWx5RGVzY2lwdGlvbicpKGZvcm1seURldGFpbEN0cmxNb2RlbCkpO1x0XG4gICAgLy9zZXQgdGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkIDpcdFxuICAgIHRoaXMuJHBhcnNlKCdjb250cm9sLnRlbXBsYXRlT3B0aW9ucy5wbGFjZWhvbGRlcicpLmFzc2lnbihjb25maWd1cmF0aW9uQ3RybE1vZGVsLCB0aGlzLiRwYXJzZSgnZm9ybWx5UGxhY2Vob2xkZXInKShmb3JtbHlEZXRhaWxDdHJsTW9kZWwpKTtcbiAgICAvL3NldCB0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWQgOlx0XG4gICAgdGhpcy4kcGFyc2UoJ2NvbnRyb2wudGVtcGxhdGVPcHRpb25zLm9wdGlvbnMnKS5hc3NpZ24oY29uZmlndXJhdGlvbkN0cmxNb2RlbCwgdGhpcy4kcGFyc2UoJ2Zvcm1seU9wdGlvbnMnKShmb3JtbHlEZXRhaWxDdHJsTW9kZWwpKTtcblxuICAgIGlmICh0aGlzLiRwYXJzZSgnY29udHJvbC50eXBlJykoY29uZmlndXJhdGlvbkN0cmxNb2RlbCkgPT09ICdkYXRlcGlja2VyJykge1xuICAgICAgdGhpcy4kcGFyc2UoJ2NvbnRyb2wudGVtcGxhdGVPcHRpb25zLmRhdGVwaWNrZXJQb3B1cCcpLmFzc2lnbihjb25maWd1cmF0aW9uQ3RybE1vZGVsLCB0aGlzLiRwYXJzZSgnZGF0ZXBpY2tlclBvcHVwJykoZm9ybWx5RGV0YWlsQ3RybE1vZGVsKSk7XG4gICAgfSAgICBcbiAgfSAgXG4gIFxuICBcbn1cblxuZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZS4kaW5qZWN0ID0gW1xuICAnRWFzeUZvcm1HZW5Gb3JtbHlCaW5kaW5nTW9kZWxzJyxcbiAgLy8gJ2NvbnRyb2xsZXJNb2RhbFByb3h5JyxcbiAgLy8gJ2RyYWdEcm9wQ29uZmlnJyxcbiAgJ2Vhc3lGb3JtRHJhZ1dheUNvbmZpZycsXG4gICckcGFyc2UnICBcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGRkTW9kZWxDb25mTW9kZWxQcm94eVNlcnZpY2U7XG5leHBvcnQge1xuICBEUkFHX0RST1BfQ09ORklHX1BST1hZX1NFUlZJQ0Vcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29uZmlndXJhdGlvbk1vZGVsUHJveHkvZWRhRHJhZ0Ryb3BXYXkuY29uZmlndXJhdGlvbk1vZGVsUHJveHkuc2VydmljZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  320. /***/ },
  321. /* 72 */
  322. /***/ function(module, exports, __webpack_require__) {
  323. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _dragAndDropListDndlist = __webpack_require__(73);\n\nvar _dragAndDropListDndlist2 = _interopRequireDefault(_dragAndDropListDndlist);\n\nvar _dragAndDropListDndDraggable = __webpack_require__(74);\n\nvar _dragAndDropListDndDraggable2 = _interopRequireDefault(_dragAndDropListDndDraggable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DRAG_DROP_LIST_MODULE = 'dndLists.module';\n\nexports.default = angular.module(DRAG_DROP_LIST_MODULE, []).directive(_dragAndDropListDndlist.DNDLIST_DIRECTIVE, _dragAndDropListDndlist2.default).directive(_dragAndDropListDndDraggable.DNDDRAGGABLE_DIRECTIVE, _dragAndDropListDndDraggable2.default).factory('dndDragTypeWorkaround', function () {\n return {};\n}).factory('dndDropEffectWorkaround', function () {\n return {};\n});//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL2RyYWdBbmREcm9wTGlzdC9kcmFnQW5kRHJvcExpc3QubW9kdWxlLmpzP2NiOGUiXSwibmFtZXMiOlsiRFJBR19EUk9QX0xJU1RfTU9EVUxFIiwiYW5ndWxhciIsIm1vZHVsZSIsImRpcmVjdGl2ZSIsImZhY3RvcnkiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBSUE7Ozs7OztBQUlBLElBQU1BLHdCQUF3QixpQkFBOUI7O2tCQUVlQyxRQUNFQyxNQURGLENBQ1NGLHFCQURULEVBQ2dDLEVBRGhDLEVBRUVHLFNBRkYsOEVBR0VBLFNBSEYsNkZBSUVDLE9BSkYsQ0FJVSx1QkFKVixFQUltQyxZQUFVO0FBQUUsU0FBTyxFQUFQO0FBQVksQ0FKM0QsRUFLRUEsT0FMRixDQUtVLHlCQUxWLEVBS3FDLFlBQVU7QUFBRSxTQUFPLEVBQVA7QUFBWSxDQUw3RCxDIiwiZmlsZSI6IjcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRuZExpc3QsIHtcbiAgRE5ETElTVF9ESVJFQ1RJVkVcbn0gICAgICAgICAgICAgICAgICAgICAgIGZyb20gJy4vZHJhZ0FuZERyb3BMaXN0LmRuZGxpc3QuZGlyZWN0aXZlJztcblxuaW1wb3J0IGRuZERyYWdnYWJsZSwge1xuICBETkREUkFHR0FCTEVfRElSRUNUSVZFXG59ICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL2RyYWdBbmREcm9wTGlzdC5kbmREcmFnZ2FibGUuZGlyZWN0aXZlJztcblxuY29uc3QgRFJBR19EUk9QX0xJU1RfTU9EVUxFID0gJ2RuZExpc3RzLm1vZHVsZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGFuZ3VsYXJcbiAgICAgICAgICAgICAgICAubW9kdWxlKERSQUdfRFJPUF9MSVNUX01PRFVMRSwgW10pXG4gICAgICAgICAgICAgICAgLmRpcmVjdGl2ZShETkRMSVNUX0RJUkVDVElWRSwgZG5kTGlzdClcbiAgICAgICAgICAgICAgICAuZGlyZWN0aXZlKERORERSQUdHQUJMRV9ESVJFQ1RJVkUsIGRuZERyYWdnYWJsZSlcbiAgICAgICAgICAgICAgICAuZmFjdG9yeSgnZG5kRHJhZ1R5cGVXb3JrYXJvdW5kJywgZnVuY3Rpb24oKXsgcmV0dXJuIHt9OyB9KVxuICAgICAgICAgICAgICAgIC5mYWN0b3J5KCdkbmREcm9wRWZmZWN0V29ya2Fyb3VuZCcsIGZ1bmN0aW9uKCl7IHJldHVybiB7fTsgfSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL2RyYWdBbmREcm9wTGlzdC9kcmFnQW5kRHJvcExpc3QubW9kdWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  324. /***/ },
  325. /* 73 */
  326. /***/ function(module, exports) {
  327. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar DNDLIST_DIRECTIVE = 'dndList';\n\nfunction dndList($parse, $timeout, dndDropEffectWorkaround, dndDragTypeWorkaround) {\n var directive = {\n link: linkFct\n };\n return directive;\n\n function linkFct(scope, element, attr) {\n // While an element is dragged over the list, this placeholder element is inserted\n // at the location where the element would be inserted after dropping\n var placeholder = angular.element('<li class=\"dndPlaceholder\"></li>');\n var placeholderNode = placeholder[0];\n var listNode = element[0];\n var horizontal = attr.dndHorizontalList && scope.$eval(attr.dndHorizontalList);\n var externalSources = attr.dndExternalSources && scope.$eval(attr.dndExternalSources);\n\n /**\n * The dragover event is triggered \"every few hundred milliseconds\" while an element\n * is being dragged over our list, or over an child element.\n */\n element.on('dragover', function (event) {\n event = event.originalEvent || event;\n if (!isDropAllowed(event)) return true;\n // First of all, make sure that the placeholder is shown\n // This is especially important if the list is empty\n if (placeholderNode.parentNode != listNode) {\n element.append(placeholder);\n }\n if (event.target !== listNode) {\n // Try to find the node direct directly below the list node.\n var listItemNode = event.target;\n while (listItemNode.parentNode !== listNode && listItemNode.parentNode) {\n listItemNode = listItemNode.parentNode;\n }\n if (listItemNode.parentNode === listNode && listItemNode !== placeholderNode) {\n // If the mouse pointer is in the upper half of the child element,\n // we place it before the child element, otherwise below it.\n if (isMouseInFirstHalf(event, listItemNode)) {\n listNode.insertBefore(placeholderNode, listItemNode);\n } else {\n listNode.insertBefore(placeholderNode, listItemNode.nextSibling);\n }\n }\n } else {\n // This branch is reached when we are dragging directly over the list element.\n // Usually we wouldn't need to do anything here, but the IE does not fire it's\n // events for the child element, only for the list directly. Therefore we repeat\n // the positioning algorithm for IE here.\n if (isMouseInFirstHalf(event, placeholderNode, true)) {\n // Check if we should move the placeholder element one spot towards the top.\n // Note that display none elements will have offsetTop and offsetHeight set to\n // zero, therefore we need a special check for them.\n while (placeholderNode.previousElementSibling && (isMouseInFirstHalf(event, placeholderNode.previousElementSibling, true) || placeholderNode.previousElementSibling.offsetHeight === 0)) {\n listNode.insertBefore(placeholderNode, placeholderNode.previousElementSibling);\n }\n } else {\n // Check if we should move the placeholder element one spot towards the bottom\n while (placeholderNode.nextElementSibling && !isMouseInFirstHalf(event, placeholderNode.nextElementSibling, true)) {\n listNode.insertBefore(placeholderNode, placeholderNode.nextElementSibling.nextElementSibling);\n }\n }\n }\n\n // At this point we invoke the callback, which still can disallow the drop.\n // We can't do this earlier because we want to pass the index of the placeholder.\n if (attr.dndDragover && !invokeCallback(attr.dndDragover, event)) {\n return stopDragover();\n }\n element.addClass('dndDragover');\n event.preventDefault();\n event.stopPropagation();\n return false;\n });\n\n /**\n * When the element is dropped, we use the position of the placeholder element as the\n * position where we insert the transferred data. This assumes that the list has exactly\n * one child element per array element.\n */\n element.on('drop', function (event) {\n event = event.originalEvent || event;\n if (!isDropAllowed(event)) return true;\n // The default behavior in Firefox is to interpret the dropped element as URL and\n // forward to it. We want to prevent that even if our drop is aborted.\n event.preventDefault();\n // Unserialize the data that was serialized in dragstart. According to the HTML5 specs,\n // the \"Text\" drag type will be converted to text/plain, but IE does not do that.\n var data = event.dataTransfer.getData('Text') || event.dataTransfer.getData('text/plain');\n var transferredObject;\n try {\n transferredObject = JSON.parse(data);\n } catch (e) {\n return stopDragover();\n }\n // Invoke the callback, which can transform the transferredObject and even abort the drop.\n if (attr.dndDrop) {\n transferredObject = invokeCallback(attr.dndDrop, event, transferredObject);\n if (!transferredObject) {\n return stopDragover();\n }\n }\n // Retrieve the JSON array and insert the transferred object into it.\n var targetArray = scope.$eval(attr.dndList);\n scope.$apply(function () {\n targetArray.splice(getPlaceholderIndex(), 0, transferredObject);\n });\n // In Chrome on Windows the dropEffect will always be none...\n // We have to determine the actual effect manually from the allowed effects\n if (event.dataTransfer.dropEffect === 'none') {\n if (event.dataTransfer.effectAllowed === 'copy' || event.dataTransfer.effectAllowed === 'move') {\n dndDropEffectWorkaround.dropEffect = event.dataTransfer.effectAllowed;\n } else {\n dndDropEffectWorkaround.dropEffect = event.ctrlKey ? 'copy' : 'move';\n }\n } else {\n dndDropEffectWorkaround.dropEffect = event.dataTransfer.dropEffect;\n }\n // Clean up\n stopDragover();\n event.stopPropagation();\n return false;\n });\n\n /**\n * We have to remove the placeholder when the element is no longer dragged over our list. The\n * problem is that the dragleave event is not only fired when the element leaves our list,\n * but also when it leaves a child element -- so practically it's fired all the time. As a\n * workaround we wait a few milliseconds and then check if the dndDragover class was added\n * again. If it is there, dragover must have been called in the meantime, i.e. the element\n * is still dragging over the list. If you know a better way of doing this, please tell me!\n */\n element.on('dragleave', function (event) {\n event = event.originalEvent || event;\n\n element.removeClass('dndDragover');\n $timeout(function () {\n if (!element.hasClass('dndDragover')) {\n placeholder.remove();\n }\n }, 100);\n });\n\n /**\n * Checks whether the mouse pointer is in the first half of the given target element.\n *\n * In Chrome we can just use offsetY, but in Firefox we have to use layerY, which only\n * works if the child element has position relative. In IE the events are only triggered\n * on the listNode instead of the listNodeItem, therefore the mouse positions are\n * relative to the parent element of targetNode.\n */\n function isMouseInFirstHalf(event, targetNode, relativeToParent) {\n var mousePointer = horizontal ? event.offsetX || event.layerX : event.offsetY || event.layerY;\n var targetSize = horizontal ? targetNode.offsetWidth : targetNode.offsetHeight;\n var targetPosition = horizontal ? targetNode.offsetLeft : targetNode.offsetTop;\n targetPosition = relativeToParent ? targetPosition : 0;\n return mousePointer < targetPosition + targetSize / 2;\n }\n\n /**\n * We use the position of the placeholder node to determine at which position of the array the\n * object needs to be inserted\n */\n function getPlaceholderIndex() {\n return Array.prototype.indexOf.call(listNode.children, placeholderNode);\n }\n\n /**\n * Checks various conditions that must be fulfilled for a drop to be allowed\n */\n function isDropAllowed(event) {\n // Disallow drop from external source unless it's allowed explicitly.\n if (!dndDragTypeWorkaround.isDragging && !externalSources) return false;\n // Check mimetype. Usually we would use a custom drag type instead of Text, but IE doesn't\n // support that.\n if (!hasTextMimetype(event.dataTransfer.types)) return false;\n // Now check the dnd-allowed-types against the type of the incoming element. For drops from\n // external sources we don't know the type, so it will need to be checked via dnd-drop.\n if (attr.dndAllowedTypes && dndDragTypeWorkaround.isDragging) {\n var allowed = scope.$eval(attr.dndAllowedTypes);\n if (angular.isArray(allowed) && allowed.indexOf(dndDragTypeWorkaround.dragType) === -1) {\n return false;\n }\n }\n // Check whether droping is disabled completely\n if (attr.dndDisableIf && scope.$eval(attr.dndDisableIf)) return false;\n return true;\n }\n\n /**\n * Small helper function that cleans up if we aborted a drop.\n */\n function stopDragover() {\n placeholder.remove();\n element.removeClass('dndDragover');\n return true;\n }\n\n /**\n * Invokes a callback with some interesting parameters and returns the callbacks return value.\n */\n function invokeCallback(expression, event, item) {\n return $parse(expression)(scope, {\n event: event,\n index: getPlaceholderIndex(),\n item: item || undefined,\n external: !dndDragTypeWorkaround.isDragging,\n type: dndDragTypeWorkaround.isDragging ? dndDragTypeWorkaround.dragType : undefined\n });\n }\n\n /**\n * Check if the dataTransfer object contains a drag type that we can handle. In old versions\n * of IE the types collection will not even be there, so we just assume a drop is possible.\n */\n function hasTextMimetype(types) {\n if (!types) return true;\n for (var i = 0; i < types.length; i++) {\n if (types[i] === 'Text' || types[i] === 'text/plain') return true;\n }\n return false;\n }\n }\n}\n\nvar TO_INJECT = ['$parse', '$timeout', 'dndDropEffectWorkaround', 'dndDragTypeWorkaround'];\n\ndndList.$inject = TO_INJECT;\n\nexports.default = dndList;\nexports.DNDLIST_DIRECTIVE = DNDLIST_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL2RyYWdBbmREcm9wTGlzdC9kcmFnQW5kRHJvcExpc3QuZG5kbGlzdC5kaXJlY3RpdmUuanM/YjQyZiJdLCJuYW1lcyI6WyJETkRMSVNUX0RJUkVDVElWRSIsImRuZExpc3QiLCIkcGFyc2UiLCIkdGltZW91dCIsImRuZERyb3BFZmZlY3RXb3JrYXJvdW5kIiwiZG5kRHJhZ1R5cGVXb3JrYXJvdW5kIiwiZGlyZWN0aXZlIiwibGluayIsImxpbmtGY3QiLCJzY29wZSIsImVsZW1lbnQiLCJhdHRyIiwicGxhY2Vob2xkZXIiLCJhbmd1bGFyIiwicGxhY2Vob2xkZXJOb2RlIiwibGlzdE5vZGUiLCJob3Jpem9udGFsIiwiZG5kSG9yaXpvbnRhbExpc3QiLCIkZXZhbCIsImV4dGVybmFsU291cmNlcyIsImRuZEV4dGVybmFsU291cmNlcyIsIm9uIiwiZXZlbnQiLCJvcmlnaW5hbEV2ZW50IiwiaXNEcm9wQWxsb3dlZCIsInBhcmVudE5vZGUiLCJhcHBlbmQiLCJ0YXJnZXQiLCJsaXN0SXRlbU5vZGUiLCJpc01vdXNlSW5GaXJzdEhhbGYiLCJpbnNlcnRCZWZvcmUiLCJuZXh0U2libGluZyIsInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJvZmZzZXRIZWlnaHQiLCJuZXh0RWxlbWVudFNpYmxpbmciLCJkbmREcmFnb3ZlciIsImludm9rZUNhbGxiYWNrIiwic3RvcERyYWdvdmVyIiwiYWRkQ2xhc3MiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImRhdGEiLCJkYXRhVHJhbnNmZXIiLCJnZXREYXRhIiwidHJhbnNmZXJyZWRPYmplY3QiLCJKU09OIiwicGFyc2UiLCJlIiwiZG5kRHJvcCIsInRhcmdldEFycmF5IiwiJGFwcGx5Iiwic3BsaWNlIiwiZ2V0UGxhY2Vob2xkZXJJbmRleCIsImRyb3BFZmZlY3QiLCJlZmZlY3RBbGxvd2VkIiwiY3RybEtleSIsInJlbW92ZUNsYXNzIiwiaGFzQ2xhc3MiLCJyZW1vdmUiLCJ0YXJnZXROb2RlIiwicmVsYXRpdmVUb1BhcmVudCIsIm1vdXNlUG9pbnRlciIsIm9mZnNldFgiLCJsYXllclgiLCJvZmZzZXRZIiwibGF5ZXJZIiwidGFyZ2V0U2l6ZSIsIm9mZnNldFdpZHRoIiwidGFyZ2V0UG9zaXRpb24iLCJvZmZzZXRMZWZ0Iiwib2Zmc2V0VG9wIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiY2FsbCIsImNoaWxkcmVuIiwiaXNEcmFnZ2luZyIsImhhc1RleHRNaW1ldHlwZSIsInR5cGVzIiwiZG5kQWxsb3dlZFR5cGVzIiwiYWxsb3dlZCIsImlzQXJyYXkiLCJkcmFnVHlwZSIsImRuZERpc2FibGVJZiIsImV4cHJlc3Npb24iLCJpdGVtIiwiaW5kZXgiLCJ1bmRlZmluZWQiLCJleHRlcm5hbCIsInR5cGUiLCJpIiwibGVuZ3RoIiwiVE9fSU5KRUNUIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFNQSxvQkFBb0IsU0FBMUI7O0FBRUEsU0FBU0MsT0FBVCxDQUFpQkMsTUFBakIsRUFBeUJDLFFBQXpCLEVBQW1DQyx1QkFBbkMsRUFBNERDLHFCQUE1RCxFQUFtRjtBQUNqRixNQUFJQyxZQUFZO0FBQ2RDLFVBQU9DO0FBRE8sR0FBaEI7QUFHQSxTQUFPRixTQUFQOztBQUVBLFdBQVNFLE9BQVQsQ0FBaUJDLEtBQWpCLEVBQXdCQyxPQUF4QixFQUFpQ0MsSUFBakMsRUFBdUM7QUFDckM7QUFDQTtBQUNBLFFBQUlDLGNBQWtCQyxRQUFRSCxPQUFSLENBQWdCLGtDQUFoQixDQUF0QjtBQUNBLFFBQUlJLGtCQUFrQkYsWUFBWSxDQUFaLENBQXRCO0FBQ0EsUUFBSUcsV0FBa0JMLFFBQVEsQ0FBUixDQUF0QjtBQUNBLFFBQUlNLGFBQWtCTCxLQUFLTSxpQkFBTCxJQUEwQlIsTUFBTVMsS0FBTixDQUFZUCxLQUFLTSxpQkFBakIsQ0FBaEQ7QUFDQSxRQUFJRSxrQkFBa0JSLEtBQUtTLGtCQUFM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QU4sTUFBYSxZQUF4QyxFQUFzRCxPQUFPLElBQVA7QUFDdkQ7QUFDRCxhQUFPLEtBQVA7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsSUFBTUUsWUFBWSxDQUNoQixRQURnQixFQUVoQixVQUZnQixFQUdoQix5QkFIZ0IsRUFJaEIsdUJBSmdCLENBQWxCOztBQU9BM0YsUUFBUTRGLE9BQVIsR0FBa0JELFNBQWxCOztrQkFFZTNGLE87UUFHYkQsaUIsR0FBQUEsaUIiLCJmaWxlIjoiNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBETkRMSVNUX0RJUkVDVElWRSA9ICdkbmRMaXN0JztcblxuZnVuY3Rpb24gZG5kTGlzdCgkcGFyc2UsICR0aW1lb3V0LCBkbmREcm9wRWZmZWN0V29ya2Fyb3VuZCwgZG5kRHJhZ1R5cGVXb3JrYXJvdW5kKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgbGluayA6IGxpbmtGY3RcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcblxuICBmdW5jdGlvbiBsaW5rRmN0KHNjb3BlLCBlbGVtZW50LCBhdHRyKSB7XG4gICAgLy8gV2hpbGUgYW4gZWxlbWVudCBpcyBkcmFnZ2VkIG92ZXIgdGhlIGxpc3QsIHRoaXMgcGxhY2Vob2xkZXIgZWxlbWVudCBpcyBpbnNlcnRlZFxuICAgIC8vIGF0IHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgZWxlbWVudCB3b3VsZCBiZSBpbnNlcnRlZCBhZnRlciBkcm9wcGluZ1xuICAgIGxldCBwbGFjZWhvbGRlciAgICAgPSBhbmd1bGFyLmVsZW1lbnQoJzxsaSBjbGFzcz1cImRuZFBsYWNlaG9sZGVyXCI+PC9saT4nKTtcbiAgICBsZXQgcGxhY2Vob2xkZXJOb2RlID0gcGxhY2Vob2xkZXJbMF07XG4gICAgbGV0IGxpc3ROb2RlICAgICAgICA9IGVsZW1lbnRbMF07XG4gICAgbGV0IGhvcml6b250YWwgICAgICA9IGF0dHIuZG5kSG9yaXpvbnRhbExpc3QgJiYgc2NvcGUuJGV2YWwoYXR0ci5kbmRIb3Jpem9udGFsTGlzdCk7XG4gICAgbGV0IGV4dGVybmFsU291cmNlcyA9IGF0dHIuZG5kRXh0ZXJuYWxTb3VyY2VzICYmIHNjb3BlLiRldmFsKGF0dHIuZG5kRXh0ZXJuYWxTb3VyY2VzKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkcmFnb3ZlciBldmVudCBpcyB0cmlnZ2VyZWQgXCJldmVyeSBmZXcgaHVuZHJlZCBtaWxsaXNlY29uZHNcIiB3aGlsZSBhbiBlbGVtZW50XG4gICAgICogaXMgYmVpbmcgZHJhZ2dlZCBvdmVyIG91ciBsaXN0LCBvciBvdmVyIGFuIGNoaWxkIGVsZW1lbnQuXG4gICAgICovXG4gICAgZWxlbWVudC5vbignZHJhZ292ZXInLCAoZXZlbnQpID0+IHtcbiAgICAgIGV2ZW50ID0gZXZlbnQub3JpZ2luYWxFdmVudCB8fCBldmVudDtcbiAgICAgIGlmICghaXNEcm9wQWxsb3dlZChldmVudCkpIHJldHVybiB0cnVlO1xuICAgICAgLy8gRmlyc3Qgb2YgYWxsLCBtYWtlIHN1cmUgdGhhdCB0aGUgcGxhY2Vob2xkZXIgaXMgc2hvd25cbiAgICAgIC8vIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgaWYgdGhlIGxpc3QgaXMgZW1wdHlcbiAgICAgIGlmIChwbGFjZWhvbGRlck5vZGUucGFyZW50Tm9kZSAhPSBsaXN0Tm9kZSkge1xuICAgICAgICBlbGVtZW50LmFwcGVuZChwbGFjZWhvbGRlcik7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBsaXN0Tm9kZSkge1xuICAgICAgICAvLyBUcnkgdG8gZmluZCB0aGUgbm9kZSBkaXJlY3QgZGlyZWN0bHkgYmVsb3cgdGhlIGxpc3Qgbm9kZS5cbiAgICAgICAgdmFyIGxpc3RJdGVtTm9kZSA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgd2hpbGUgKGxpc3RJdGVtTm9kZS5wYXJlbnROb2RlICE9PSBsaXN0Tm9kZSAmJiBsaXN0SXRlbU5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgIGxpc3RJdGVtTm9kZSA9IGxpc3RJdGVtTm9kZS5wYXJlbnROb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0SXRlbU5vZGUucGFyZW50Tm9kZSA9PT0gbGlzdE5vZGUgJiYgbGlzdEl0ZW1Ob2RlICE9PSBwbGFjZWhvbGRlck5vZGUpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgbW91c2UgcG9pbnRlciBpcyBpbiB0aGUgdXBwZXIgaGFsZiBvZiB0aGUgY2hpbGQgZWxlbWVudCxcbiAgICAgICAgICAvLyB3ZSBwbGFjZSBpdCBiZWZvcmUgdGhlIGNoaWxkIGVsZW1lbnQsIG90aGVyd2lzZSBiZWxvdyBpdC5cbiAgICAgICAgICBpZiAoaXNNb3VzZUluRmlyc3RIYWxmKGV2ZW50LCBsaXN0SXRlbU5vZGUpKSB7XG4gICAgICAgICAgICBsaXN0Tm9kZS5pbnNlcnRCZWZvcmUocGxhY2Vob2xkZXJOb2RlLCBsaXN0SXRlbU5vZGUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0Tm9kZS5pbnNlcnRCZWZvcmUocGxhY2Vob2xkZXJOb2RlLCBsaXN0SXRlbU5vZGUubmV4dFNpYmxpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhpcyBicmFuY2ggaXMgcmVhY2hlZCB3aGVuIHdlIGFyZSBkcmFnZ2luZyBkaXJlY3RseSBvdmVyIHRoZSBsaXN0IGVsZW1lbnQuXG4gICAgICAgIC8vIFVzdWFsbHkgd2Ugd291bGRuJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlLCBidXQgdGhlIElFIGRvZXMgbm90IGZpcmUgaXQnc1xuICAgICAgICAvLyBldmVudHMgZm9yIHRoZSBjaGlsZCBlbGVtZW50LCBvbmx5IGZvciB0aGUgbGlzdCBkaXJlY3RseS4gVGhlcmVmb3JlIHdlIHJlcGVhdFxuICAgICAgICAvLyB0aGUgcG9zaXRpb25pbmcgYWxnb3JpdGhtIGZvciBJRSBoZXJlLlxuICAgICAgICBpZiAoaXNNb3VzZUluRmlyc3RIYWxmKGV2ZW50LCBwbGFjZWhvbGRlck5vZGUsIHRydWUpKSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgd2Ugc2hvdWxkIG1vdmUgdGhlIHBsYWNlaG9sZGVyIGVsZW1lbnQgb25lIHNwb3QgdG93YXJkcyB0aGUgdG9wLlxuICAgICAgICAgIC8vIE5vdGUgdGhhdCBkaXNwbGF5IG5vbmUgZWxlbWVudHMgd2lsbCBoYXZlIG9mZnNldFRvcCBhbmQgb2Zmc2V0SGVpZ2h0IHNldCB0b1xuICAgICAgICAgIC8vIHplcm8sIHRoZXJlZm9yZSB3ZSBuZWVkIGEgc3BlY2lhbCBjaGVjayBmb3IgdGhlbS5cbiAgICAgICAgICB3aGlsZSAocGxhY2Vob2xkZXJOb2RlLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgJiYgKGlzTW91c2VJbkZpcnN0SGFsZihldmVudCwgcGxhY2Vob2xkZXJOb2RlLnByZXZpb3VzRWxlbWVudFNpYmxpbmcsIHRydWUpIHx8IHBsYWNlaG9sZGVyTm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLm9mZnNldEhlaWdodCA9PT0gMCkpIHtcbiAgICAgICAgICAgIGxpc3ROb2RlLmluc2VydEJlZm9yZShwbGFjZWhvbGRlck5vZGUsIHBsYWNlaG9sZGVyTm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgd2Ugc2hvdWxkIG1vdmUgdGhlIHBsYWNlaG9sZGVyIGVsZW1lbnQgb25lIHNwb3QgdG93YXJkcyB0aGUgYm90dG9tXG4gICAgICAgICAgd2hpbGUgKHBsYWNlaG9sZGVyTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcgJiZcbiAgICAgICAgICAgICAgICFpc01vdXNlSW5GaXJzdEhhbGYoZXZlbnQsIHBsYWNlaG9sZGVyTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcsIHRydWUpKSB7XG4gICAgICAgICAgICBsaXN0Tm9kZS5pbnNlcnRCZWZvcmUocGxhY2Vob2xkZXJOb2RlLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcubmV4dEVsZW1lbnRTaWJsaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBpbnZva2UgdGhlIGNhbGxiYWNrLCB3aGljaCBzdGlsbCBjYW4gZGlzYWxsb3cgdGhlIGRyb3AuXG4gICAgICAvLyBXZSBjYW4ndCBkbyB0aGlzIGVhcmxpZXIgYmVjYXVzZSB3ZSB3YW50IHRvIHBhc3MgdGhlIGluZGV4IG9mIHRoZSBwbGFjZWhvbGRlci5cbiAgICAgIGlmIChhdHRyLmRuZERyYWdvdmVyICYmICFpbnZva2VDYWxsYmFjayhhdHRyLmRuZERyYWdvdmVyLCBldmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHN0b3BEcmFnb3ZlcigpO1xuICAgICAgfVxuICAgICAgZWxlbWVudC5hZGRDbGFzcygnZG5kRHJhZ292ZXInKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gdGhlIGVsZW1lbnQgaXMgZHJvcHBlZCwgd2UgdXNlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcGxhY2Vob2xkZXIgZWxlbWVudCBhcyB0aGVcbiAgICAgKiBwb3NpdGlvbiB3aGVyZSB3ZSBpbnNlcnQgdGhlIHRyYW5zZmVycmVkIGRhdGEuIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBsaXN0IGhhcyBleGFjdGx5XG4gICAgICogb25lIGNoaWxkIGVsZW1lbnQgcGVyIGFycmF5IGVsZW1lbnQuXG4gICAgICovXG4gICAgZWxlbWVudC5vbignZHJvcCcsIChldmVudCkgPT4ge1xuICAgICAgZXZlbnQgPSBldmVudC5vcmlnaW5hbEV2ZW50IHx8IGV2ZW50O1xuICAgICAgaWYgKCFpc0Ryb3BBbGxvd2VkKGV2ZW50KSkgcmV0dXJuIHRydWU7XG4gICAgICAvLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBpbiBGaXJlZm94IGlzIHRvIGludGVycHJldCB0aGUgZHJvcHBlZCBlbGVtZW50IGFzIFVSTCBhbmRcbiAgICAgIC8vIGZvcndhcmQgdG8gaXQuIFdlIHdhbnQgdG8gcHJldmVudCB0aGF0IGV2ZW4gaWYgb3VyIGRyb3AgaXMgYWJvcnRlZC5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAvLyBVbnNlcmlhbGl6ZSB0aGUgZGF0YSB0aGF0IHdhcyBzZXJpYWxpemVkIGluIGRyYWdzdGFydC4gQWNjb3JkaW5nIHRvIHRoZSBIVE1MNSBzcGVjcyxcbiAgICAgIC8vIHRoZSBcIlRleHRcIiBkcmFnIHR5cGUgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGV4dC9wbGFpbiwgYnV0IElFIGRvZXMgbm90IGRvIHRoYXQuXG4gICAgICB2YXIgZGF0YSA9IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCdUZXh0JykgfHwgZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcbiAgICAgIHZhciB0cmFuc2ZlcnJlZE9iamVjdDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRyYW5zZmVycmVkT2JqZWN0ID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICByZXR1cm4gc3RvcERyYWdvdmVyKCk7XG4gICAgICB9XG4gICAgICAvLyBJbnZva2UgdGhlIGNhbGxiYWNrLCB3aGljaCBjYW4gdHJhbnNmb3JtIHRoZSB0cmFuc2ZlcnJlZE9iamVjdCBhbmQgZXZlbiBhYm9ydCB0aGUgZHJvcC5cbiAgICAgIGlmIChhdHRyLmRuZERyb3ApIHtcbiAgICAgICAgdHJhbnNmZXJyZWRPYmplY3QgPSBpbnZva2VDYWxsYmFjayhhdHRyLmRuZERyb3AsIGV2ZW50LCB0cmFuc2ZlcnJlZE9iamVjdCk7XG4gICAgICAgIGlmICghdHJhbnNmZXJyZWRPYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gc3RvcERyYWdvdmVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFJldHJpZXZlIHRoZSBKU09OIGFycmF5IGFuZCBpbnNlcnQgdGhlIHRyYW5zZmVycmVkIG9iamVjdCBpbnRvIGl0LlxuICAgICAgdmFyIHRhcmdldEFycmF5ID0gc2NvcGUuJGV2YWwoYXR0ci5kbmRMaXN0KTtcbiAgICAgIHNjb3BlLiRhcHBseSgoKSA9PiB7XG4gICAgICAgIHRhcmdldEFycmF5LnNwbGljZShnZXRQbGFjZWhvbGRlckluZGV4KCksIDAsIHRyYW5zZmVycmVkT2JqZWN0KTtcbiAgICAgIH0pO1xuICAgICAgLy8gSW4gQ2hyb21lIG9uIFdpbmRvd3MgdGhlIGRyb3BFZmZlY3Qgd2lsbCBhbHdheXMgYmUgbm9uZS4uLlxuICAgICAgLy8gV2UgaGF2ZSB0byBkZXRlcm1pbmUgdGhlIGFjdHVhbCBlZmZlY3QgbWFudWFsbHkgZnJvbSB0aGUgYWxsb3dlZCBlZmZlY3RzXG4gICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPT09ICdub25lJykge1xuICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPT09ICdjb3B5JyB8fFxuICAgICAgICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPT09ICdtb3ZlJykge1xuICAgICAgICAgIGRuZERyb3BFZmZlY3RXb3JrYXJvdW5kLmRyb3BFZmZlY3QgPSBldmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkbmREcm9wRWZmZWN0V29ya2Fyb3VuZC5kcm9wRWZmZWN0ID0gZXZlbnQuY3RybEtleSA/ICdjb3B5JyA6ICdtb3ZlJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG5kRHJvcEVmZmVjdFdvcmthcm91bmQuZHJvcEVmZmVjdCA9IGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0O1xuICAgICAgfVxuICAgICAgLy8gQ2xlYW4gdXBcbiAgICAgIHN0b3BEcmFnb3ZlcigpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXZSBoYXZlIHRvIHJlbW92ZSB0aGUgcGxhY2Vob2xkZXIgd2hlbiB0aGUgZWxlbWVudCBpcyBubyBsb25nZXIgZHJhZ2dlZCBvdmVyIG91ciBsaXN0LiBUaGVcbiAgICAgKiBwcm9ibGVtIGlzIHRoYXQgdGhlIGRyYWdsZWF2ZSBldmVudCBpcyBub3Qgb25seSBmaXJlZCB3aGVuIHRoZSBlbGVtZW50IGxlYXZlcyBvdXIgbGlzdCxcbiAgICAgKiBidXQgYWxzbyB3aGVuIGl0IGxlYXZlcyBhIGNoaWxkIGVsZW1lbnQgLS0gc28gcHJhY3RpY2FsbHkgaXQncyBmaXJlZCBhbGwgdGhlIHRpbWUuIEFzIGFcbiAgICAgKiB3b3JrYXJvdW5kIHdlIHdhaXQgYSBmZXcgbWlsbGlzZWNvbmRzIGFuZCB0aGVuIGNoZWNrIGlmIHRoZSBkbmREcmFnb3ZlciBjbGFzcyB3YXMgYWRkZWRcbiAgICAgKiBhZ2Fpbi4gSWYgaXQgaXMgdGhlcmUsIGRyYWdvdmVyIG11c3QgaGF2ZSBiZWVuIGNhbGxlZCBpbiB0aGUgbWVhbnRpbWUsIGkuZS4gdGhlIGVsZW1lbnRcbiAgICAgKiBpcyBzdGlsbCBkcmFnZ2luZyBvdmVyIHRoZSBsaXN0LiBJZiB5b3Uga25vdyBhIGJldHRlciB3YXkgb2YgZG9pbmcgdGhpcywgcGxlYXNlIHRlbGwgbWUhXG4gICAgICovXG4gICAgZWxlbWVudC5vbignZHJhZ2xlYXZlJywgKGV2ZW50KSA9PiB7XG4gICAgICBldmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQgfHwgZXZlbnQ7XG5cbiAgICAgIGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2RuZERyYWdvdmVyJyk7XG4gICAgICAkdGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghZWxlbWVudC5oYXNDbGFzcygnZG5kRHJhZ292ZXInKSkge1xuICAgICAgICAgIHBsYWNlaG9sZGVyLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIG1vdXNlIHBvaW50ZXIgaXMgaW4gdGhlIGZpcnN0IGhhbGYgb2YgdGhlIGdpdmVuIHRhcmdldCBlbGVtZW50LlxuICAgICAqXG4gICAgICogSW4gQ2hyb21lIHdlIGNhbiBqdXN0IHVzZSBvZmZzZXRZLCBidXQgaW4gRmlyZWZveCB3ZSBoYXZlIHRvIHVzZSBsYXllclksIHdoaWNoIG9ubHlcbiAgICAgKiB3b3JrcyBpZiB0aGUgY2hpbGQgZWxlbWVudCBoYXMgcG9zaXRpb24gcmVsYXRpdmUuIEluIElFIHRoZSBldmVudHMgYXJlIG9ubHkgdHJpZ2dlcmVkXG4gICAgICogb24gdGhlIGxpc3ROb2RlIGluc3RlYWQgb2YgdGhlIGxpc3ROb2RlSXRlbSwgdGhlcmVmb3JlIHRoZSBtb3VzZSBwb3NpdGlvbnMgYXJlXG4gICAgICogcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBlbGVtZW50IG9mIHRhcmdldE5vZGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNNb3VzZUluRmlyc3RIYWxmKGV2ZW50LCB0YXJnZXROb2RlLCByZWxhdGl2ZVRvUGFyZW50KSB7XG4gICAgICB2YXIgbW91c2VQb2ludGVyID0gaG9yaXpvbnRhbCA/IChldmVudC5vZmZzZXRYIHx8IGV2ZW50LmxheWVyWClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGV2ZW50Lm9mZnNldFkgfHwgZXZlbnQubGF5ZXJZKTtcbiAgICAgIHZhciB0YXJnZXRTaXplID0gaG9yaXpvbnRhbCA/IHRhcmdldE5vZGUub2Zmc2V0V2lkdGggOiB0YXJnZXROb2RlLm9mZnNldEhlaWdodDtcbiAgICAgIHZhciB0YXJnZXRQb3NpdGlvbiA9IGhvcml6b250YWwgPyB0YXJnZXROb2RlLm9mZnNldExlZnQgOiB0YXJnZXROb2RlLm9mZnNldFRvcDtcbiAgICAgIHRhcmdldFBvc2l0aW9uID0gcmVsYXRpdmVUb1BhcmVudCA/IHRhcmdldFBvc2l0aW9uIDogMDtcbiAgICAgIHJldHVybiBtb3VzZVBvaW50ZXIgPCB0YXJnZXRQb3NpdGlvbiArIHRhcmdldFNpemUgLyAyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIHVzZSB0aGUgcG9zaXRpb24gb2YgdGhlIHBsYWNlaG9sZGVyIG5vZGUgdG8gZGV0ZXJtaW5lIGF0IHdoaWNoIHBvc2l0aW9uIG9mIHRoZSBhcnJheSB0aGVcbiAgICAgKiBvYmplY3QgbmVlZHMgdG8gYmUgaW5zZXJ0ZWRcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBnZXRQbGFjZWhvbGRlckluZGV4KCkge1xuICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobGlzdE5vZGUuY2hpbGRyZW4sIHBsYWNlaG9sZGVyTm9kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHZhcmlvdXMgY29uZGl0aW9ucyB0aGF0IG11c3QgYmUgZnVsZmlsbGVkIGZvciBhIGRyb3AgdG8gYmUgYWxsb3dlZFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGlzRHJvcEFsbG93ZWQoZXZlbnQpIHtcbiAgICAgIC8vIERpc2FsbG93IGRyb3AgZnJvbSBleHRlcm5hbCBzb3VyY2UgdW5sZXNzIGl0J3MgYWxsb3dlZCBleHBsaWNpdGx5LlxuICAgICAgaWYgKCFkbmREcmFnVHlwZVdvcmthcm91bmQuaXNEcmFnZ2luZyAmJiAhZXh0ZXJuYWxTb3VyY2VzKSByZXR1cm4gZmFsc2U7XG4gICAgICAvLyBDaGVjayBtaW1ldHlwZS4gVXN1YWxseSB3ZSB3b3VsZCB1c2UgYSBjdXN0b20gZHJhZyB0eXBlIGluc3RlYWQgb2YgVGV4dCwgYnV0IElFIGRvZXNuJ3RcbiAgICAgIC8vIHN1cHBvcnQgdGhhdC5cbiAgICAgIGlmICghaGFzVGV4dE1pbWV0eXBlKGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcykpIHJldHVybiBmYWxzZTtcbiAgICAgIC8vIE5vdyBjaGVjayB0aGUgZG5kLWFsbG93ZWQtdHlwZXMgYWdhaW5zdCB0aGUgdHlwZSBvZiB0aGUgaW5jb21pbmcgZWxlbWVudC4gRm9yIGRyb3BzIGZyb21cbiAgICAgIC8vIGV4dGVybmFsIHNvdXJjZXMgd2UgZG9uJ3Qga25vdyB0aGUgdHlwZSwgc28gaXQgd2lsbCBuZWVkIHRvIGJlIGNoZWNrZWQgdmlhIGRuZC1kcm9wLlxuICAgICAgaWYgKGF0dHIuZG5kQWxsb3dlZFR5cGVzICYmIGRuZERyYWdUeXBlV29ya2Fyb3VuZC5pc0RyYWdnaW5nKSB7XG4gICAgICAgIHZhciBhbGxvd2VkID0gc2NvcGUuJGV2YWwoYXR0ci5kbmRBbGxvd2VkVHlwZXMpO1xuICAgICAgICBpZiAoYW5ndWxhci5pc0FycmF5KGFsbG93ZWQpICYmIGFsbG93ZWQuaW5kZXhPZihkbmREcmFnVHlwZVdvcmthcm91bmQuZHJhZ1R5cGUpID09PSAtMSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQ2hlY2sgd2hldGhlciBkcm9waW5nIGlzIGRpc2FibGVkIGNvbXBsZXRlbHlcbiAgICAgIGlmIChhdHRyLmRuZERpc2FibGVJZiAmJiBzY29wZS4kZXZhbChhdHRyLmRuZERpc2FibGVJZikpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNtYWxsIGhlbHBlciBmdW5jdGlvbiB0aGF0IGNsZWFucyB1cCBpZiB3ZSBhYm9ydGVkIGEgZHJvcC5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzdG9wRHJhZ292ZXIoKSB7XG4gICAgICBwbGFjZWhvbGRlci5yZW1vdmUoKTtcbiAgICAgIGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2RuZERyYWdvdmVyJyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnZva2VzIGEgY2FsbGJhY2sgd2l0aCBzb21lIGludGVyZXN0aW5nIHBhcmFtZXRlcnMgYW5kIHJldHVybnMgdGhlIGNhbGxiYWNrcyByZXR1cm4gdmFsdWUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW52b2tlQ2FsbGJhY2soZXhwcmVzc2lvbiwgZXZlbnQsIGl0ZW0pIHtcbiAgICAgIHJldHVybiAkcGFyc2UoZXhwcmVzc2lvbikoc2NvcGUsIHtcbiAgICAgICAgZXZlbnQgICA6IGV2ZW50LFxuICAgICAgICBpbmRleCAgIDogZ2V0UGxhY2Vob2xkZXJJbmRleCgpLFxuICAgICAgICBpdGVtICAgIDogaXRlbSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGV4dGVybmFsOiAhZG5kRHJhZ1R5cGVXb3JrYXJvdW5kLmlzRHJhZ2dpbmcsXG4gICAgICAgIHR5cGUgICAgOiBkbmREcmFnVHlwZVdvcmthcm91bmQuaXNEcmFnZ2luZyA/IGRuZERyYWdUeXBlV29ya2Fyb3VuZC5kcmFnVHlwZSA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIGRhdGFUcmFuc2ZlciBvYmplY3QgY29udGFpbnMgYSBkcmFnIHR5cGUgdGhhdCB3ZSBjYW4gaGFuZGxlLiBJbiBvbGQgdmVyc2lvbnNcbiAgICAgKiBvZiBJRSB0aGUgdHlwZXMgY29sbGVjdGlvbiB3aWxsIG5vdCBldmVuIGJlIHRoZXJlLCBzbyB3ZSBqdXN0IGFzc3VtZSBhIGRyb3AgaXMgcG9zc2libGUuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFzVGV4dE1pbWV0eXBlKHR5cGVzKSB7XG4gICAgICBpZiAoIXR5cGVzKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHR5cGVzW2ldID09PSAnVGV4dCcgfHwgdHlwZXNbaV0gPT09ICd0ZXh0L3BsYWluJykgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSAgICBcbiAgfVxufVxuXG5jb25zdCBUT19JTkpFQ1QgPSBbXG4gICckcGFyc2UnLCBcbiAgJyR0aW1lb3V0JywgXG4gICdkbmREcm9wRWZmZWN0V29ya2Fyb3VuZCcsIFxuICAnZG5kRHJhZ1R5cGVXb3JrYXJvdW5kJ1xuXTtcblxuZG5kTGlzdC4kaW5qZWN0ID0gVE9fSU5KRUNUO1xuXG5leHBvcnQgZGVmYXVsdCBkbmRMaXN0O1xuXG5leHBvcnQge1xuICBETkRMSVNUX0RJUkVDVElWRVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9jb21tb24vZHJhZ0FuZERyb3BMaXN0L2RyYWdBbmREcm9wTGlzdC5kbmRsaXN0LmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  328. /***/ },
  329. /* 74 */
  330. /***/ function(module, exports) {
  331. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar DNDDRAGGABLE_DIRECTIVE = 'dndDraggable';\n\nfunction dndDraggable($parse, $timeout, dndDropEffectWorkaround, dndDragTypeWorkaround) {\n var directive = {\n link: linkFct\n };\n return directive;\n\n function linkFct(scope, element, attr) {\n var _this = this;\n\n // Set the HTML5 draggable attribute on the element\n element.attr('draggable', 'true');\n\n // If the dnd-disable-if attribute is set, we have to watch that\n if (attr.dndDisableIf) {\n scope.$watch(attr.dndDisableIf, function (disabled) {\n return element.attr('draggable', !disabled);\n });\n }\n\n /**\n * When the drag operation is started we have to prepare the dataTransfer object,\n * which is the primary way we communicate with the target element\n */\n element.on('dragstart', function (event) {\n event = event.originalEvent || event;\n // Serialize the data associated with this element. IE only supports the Text drag type\n event.dataTransfer.setData('Text', angular.toJson(scope.$eval(attr.dndDraggable)));\n // Only allow actions specified in dnd-effect-allowed attribute\n event.dataTransfer.effectAllowed = attr.dndEffectAllowed || 'move';\n // Add CSS classes. See documentation above\n element.addClass('dndDragging');\n $timeout(function () {\n element.addClass('dndDraggingSource');\n }, 0);\n // Workarounds for stupid browsers, see description below\n dndDropEffectWorkaround.dropEffect = 'none';\n dndDragTypeWorkaround.isDragging = true;\n // Save type of item in global state. Usually, this would go into the dataTransfer\n // typename, but we have to use \"Text\" there to support IE\n dndDragTypeWorkaround.dragType = attr.dndType ? scope.$eval(attr.dndType) : undefined;\n // Invoke callback\n $parse(attr.dndDragstart)(scope, { event: event });\n event.stopPropagation();\n });\n\n /**\n * The dragend event is triggered when the element was dropped or when the drag\n * operation was aborted (e.g. hit escape button). Depending on the executed action\n * we will invoke the callbacks specified with the dnd-moved or dnd-copied attribute.\n */\n element.on('dragend', function (event) {\n event = event.originalEvent || event;\n\n // Invoke callbacks. Usually we would use event.dataTransfer.dropEffect to determine\n // the used effect, but Chrome has not implemented that field correctly. On Windows\n // it always sets it to 'none', while Chrome on Linux sometimes sets it to something\n // else when it's supposed to send 'none' (drag operation aborted).\n var dropEffect = dndDropEffectWorkaround.dropEffect;\n scope.$apply(function () {\n switch (dropEffect) {\n case 'move':\n $parse(attr.dndMoved)(scope, { event: event });\n break;\n\n case 'copy':\n $parse(attr.dndCopied)(scope, { event: event });\n break;\n }\n });\n\n // Clean up\n element.removeClass('dndDragging');\n element.removeClass('dndDraggingSource');\n dndDragTypeWorkaround.isDragging = false;\n event.stopPropagation();\n });\n\n /**\n * When the element is clicked we invoke the callback function\n * specified with the dnd-selected attribute.\n */\n element.on('click', function (event) {\n event = event.originalEvent || event;\n scope.$apply(function () {\n return $parse(attr.dndSelected)(scope, { event: event });\n });\n event.stopPropagation();\n });\n\n /**\n * Workaround to make element draggable in IE9\n */\n element.on('selectstart', function () {\n if (_this.dragDrop) _this.dragDrop();\n return false;\n });\n }\n}\n\nvar TO_INJECT = ['$parse', '$timeout', 'dndDropEffectWorkaround', 'dndDragTypeWorkaround'];\n\ndndDraggable.$inject = TO_INJECT;\n\nexports.default = dndDraggable;\nexports.DNDDRAGGABLE_DIRECTIVE = DNDDRAGGABLE_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL2RyYWdBbmREcm9wTGlzdC9kcmFnQW5kRHJvcExpc3QuZG5kRHJhZ2dhYmxlLmRpcmVjdGl2ZS5qcz82OTliIl0sIm5hbWVzIjpbIkRORERSQUdHQUJMRV9ESVJFQ1RJVkUiLCJkbmREcmFnZ2FibGUiLCIkcGFyc2UiLCIkdGltZW91dCIsImRuZERyb3BFZmZlY3RXb3JrYXJvdW5kIiwiZG5kRHJhZ1R5cGVXb3JrYXJvdW5kIiwiZGlyZWN0aXZlIiwibGluayIsImxpbmtGY3QiLCJzY29wZSIsImVsZW1lbnQiLCJhdHRyIiwiZG5kRGlzYWJsZUlmIiwiJHdhdGNoIiwiZGlzYWJsZWQiLCJvbiIsImV2ZW50Iiwib3JpZ2luYWxFdmVudCIsImRhdGFUcmFuc2ZlciIsInNldERhdGEiLCJhbmd1bGFyIiwidG9Kc29uIiwiJGV2YWwiLCJlZmZlY3RBbGxvd2VkIiwiZG5kRWZmZWN0QWxsb3dlZCIsImFkZENsYXNzIiwiZHJvcEVmZmVjdCIsImlzRHJhZ2dpbmciLCJkcmFnVHlwZSIsImRuZFR5cGUiLCJ1bmRlZmluZWQiLCJkbmREcmFnc3RhcnQiLCJzdG9wUHJvcGFnYXRpb24iLCIkYXBwbHkiLCJkbmRNb3ZlZCIsImRuZENvcGllZCIsInJlbW92ZUNsYXNzIiwiZG5kU2VsZWN0ZWQiLCJkcmFnRHJvcCIsIlRPX0lOSkVDVCIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBTUEseUJBQXlCLGNBQS9COztBQUVBLFNBQVNDLFlBQVQsQ0FBc0JDLE1BQXRCLEVBQThCQyxRQUE5QixFQUF3Q0MsdUJBQXhDLEVBQWlFQyxxQkFBakUsRUFBd0Y7QUFDdEYsTUFBSUMsWUFBWTtBQUNkQyxVQUFPQztBQURPLEdBQWhCO0FBR0EsU0FBT0YsU0FBUDs7QUFFQSxXQUFTRSxPQUFULENBQWlCQyxLQUFqQixFQUF3QkMsT0FBeEIsRUFBaUNDLElBQWpDLEVBQXVDO0FB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Z0IsRUFJaEIsdUJBSmdCLENBQWxCOztBQVFBdEMsYUFBYXVDLE9BQWIsR0FBdUJELFNBQXZCOztrQkFFZXRDLFk7UUFHYkQsc0IsR0FBQUEsc0IiLCJmaWxlIjoiNzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBETkREUkFHR0FCTEVfRElSRUNUSVZFID0gJ2RuZERyYWdnYWJsZSc7XG5cbmZ1bmN0aW9uIGRuZERyYWdnYWJsZSgkcGFyc2UsICR0aW1lb3V0LCBkbmREcm9wRWZmZWN0V29ya2Fyb3VuZCwgZG5kRHJhZ1R5cGVXb3JrYXJvdW5kKSB7XG4gIGxldCBkaXJlY3RpdmUgPSB7XG4gICAgbGluayA6IGxpbmtGY3RcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcblxuICBmdW5jdGlvbiBsaW5rRmN0KHNjb3BlLCBlbGVtZW50LCBhdHRyKSB7XG4gICAgLy8gU2V0IHRoZSBIVE1MNSBkcmFnZ2FibGUgYXR0cmlidXRlIG9uIHRoZSBlbGVtZW50XG4gICAgZWxlbWVudC5hdHRyKCdkcmFnZ2FibGUnLCAndHJ1ZScpO1xuXG4gICAgLy8gSWYgdGhlIGRuZC1kaXNhYmxlLWlmIGF0dHJpYnV0ZSBpcyBzZXQsIHdlIGhhdmUgdG8gd2F0Y2ggdGhhdFxuICAgIGlmIChhdHRyLmRuZERpc2FibGVJZikge1xuICAgICAgc2NvcGUuJHdhdGNoKGF0dHIuZG5kRGlzYWJsZUlmLCAoZGlzYWJsZWQpID0+IGVsZW1lbnQuYXR0cignZHJhZ2dhYmxlJywgIWRpc2FibGVkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hlbiB0aGUgZHJhZyBvcGVyYXRpb24gaXMgc3RhcnRlZCB3ZSBoYXZlIHRvIHByZXBhcmUgdGhlIGRhdGFUcmFuc2ZlciBvYmplY3QsXG4gICAgICogd2hpY2ggaXMgdGhlIHByaW1hcnkgd2F5IHdlIGNvbW11bmljYXRlIHdpdGggdGhlIHRhcmdldCBlbGVtZW50XG4gICAgICovXG4gICAgZWxlbWVudC5vbignZHJhZ3N0YXJ0JywgKGV2ZW50KSA9PiB7XG4gICAgICBldmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQgfHwgZXZlbnQ7XG4gICAgICAvLyBTZXJpYWxpemUgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZWxlbWVudC4gSUUgb25seSBzdXBwb3J0cyB0aGUgVGV4dCBkcmFnIHR5cGVcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKCdUZXh0JywgYW5ndWxhci50b0pzb24oc2NvcGUuJGV2YWwoYXR0ci5kbmREcmFnZ2FibGUpKSk7XG4gICAgICAvLyBPbmx5IGFsbG93IGFjdGlvbnMgc3BlY2lmaWVkIGluIGRuZC1lZmZlY3QtYWxsb3dlZCBhdHRyaWJ1dGVcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkICAgID0gYXR0ci5kbmRFZmZlY3RBbGxvd2VkIHx8ICdtb3ZlJztcbiAgICAgIC8vIEFkZCBDU1MgY2xhc3Nlcy4gU2VlIGRvY3VtZW50YXRpb24gYWJvdmVcbiAgICAgIGVsZW1lbnQuYWRkQ2xhc3MoJ2RuZERyYWdnaW5nJyk7XG4gICAgICAkdGltZW91dCgoKSA9PiB7IGVsZW1lbnQuYWRkQ2xhc3MoJ2RuZERyYWdnaW5nU291cmNlJyk7IH0sIDApO1xuICAgICAgLy8gV29ya2Fyb3VuZHMgZm9yIHN0dXBpZCBicm93c2Vycywgc2VlIGRlc2NyaXB0aW9uIGJlbG93XG4gICAgICBkbmREcm9wRWZmZWN0V29ya2Fyb3VuZC5kcm9wRWZmZWN0ICA9ICdub25lJztcbiAgICAgIGRuZERyYWdUeXBlV29ya2Fyb3VuZC5pc0RyYWdnaW5nICAgID0gdHJ1ZTtcbiAgICAgIC8vIFNhdmUgdHlwZSBvZiBpdGVtIGluIGdsb2JhbCBzdGF0ZS4gVXN1YWxseSwgdGhpcyB3b3VsZCBnbyBpbnRvIHRoZSBkYXRhVHJhbnNmZXJcbiAgICAgIC8vIHR5cGVuYW1lLCBidXQgd2UgaGF2ZSB0byB1c2UgXCJUZXh0XCIgdGhlcmUgdG8gc3VwcG9ydCBJRVxuICAgICAgZG5kRHJhZ1R5cGVXb3JrYXJvdW5kLmRyYWdUeXBlICAgICAgPSBhdHRyLmRuZFR5cGUgPyBzY29wZS4kZXZhbChhdHRyLmRuZFR5cGUpIDogdW5kZWZpbmVkO1xuICAgICAgLy8gSW52b2tlIGNhbGxiYWNrXG4gICAgICAkcGFyc2UoYXR0ci5kbmREcmFnc3RhcnQpKHNjb3BlLCB7ZXZlbnQ6IGV2ZW50fSk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkcmFnZW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB3aGVuIHRoZSBlbGVtZW50IHdhcyBkcm9wcGVkIG9yIHdoZW4gdGhlIGRyYWdcbiAgICAgKiBvcGVyYXRpb24gd2FzIGFib3J0ZWQgKGUuZy4gaGl0IGVzY2FwZSBidXR0b24pLiBEZXBlbmRpbmcgb24gdGhlIGV4ZWN1dGVkIGFjdGlvblxuICAgICAqIHdlIHdpbGwgaW52b2tlIHRoZSBjYWxsYmFja3Mgc3BlY2lmaWVkIHdpdGggdGhlIGRuZC1tb3ZlZCBvciBkbmQtY29waWVkIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBlbGVtZW50Lm9uKCdkcmFnZW5kJywgKGV2ZW50KSA9PiB7XG4gICAgICBldmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQgfHwgZXZlbnQ7XG5cbiAgICAgIC8vIEludm9rZSBjYWxsYmFja3MuIFVzdWFsbHkgd2Ugd291bGQgdXNlIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0IHRvIGRldGVybWluZVxuICAgICAgLy8gdGhlIHVzZWQgZWZmZWN0LCBidXQgQ2hyb21lIGhhcyBub3QgaW1wbGVtZW50ZWQgdGhhdCBmaWVsZCBjb3JyZWN0bHkuIE9uIFdpbmRvd3NcbiAgICAgIC8vIGl0IGFsd2F5cyBzZXRzIGl0IHRvICdub25lJywgd2hpbGUgQ2hyb21lIG9uIExpbnV4IHNvbWV0aW1lcyBzZXRzIGl0IHRvIHNvbWV0aGluZ1xuICAgICAgLy8gZWxzZSB3aGVuIGl0J3Mgc3VwcG9zZWQgdG8gc2VuZCAnbm9uZScgKGRyYWcgb3BlcmF0aW9uIGFib3J0ZWQpLlxuICAgICAgdmFyIGRyb3BFZmZlY3QgPSBkbmREcm9wRWZmZWN0V29ya2Fyb3VuZC5kcm9wRWZmZWN0O1xuICAgICAgc2NvcGUuJGFwcGx5KCgpID0+IHtcbiAgICAgICAgc3dpdGNoIChkcm9wRWZmZWN0KSB7XG4gICAgICAgIGNhc2UgJ21vdmUnOlxuICAgICAgICAgICRwYXJzZShhdHRyLmRuZE1vdmVkKShzY29wZSwge2V2ZW50OiBldmVudH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2NvcHknOlxuICAgICAgICAgICRwYXJzZShhdHRyLmRuZENvcGllZCkoc2NvcGUsIHtldmVudDogZXZlbnR9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIENsZWFuIHVwXG4gICAgICBlbGVtZW50LnJlbW92ZUNsYXNzKCdkbmREcmFnZ2luZycpO1xuICAgICAgZWxlbWVudC5yZW1vdmVDbGFzcygnZG5kRHJhZ2dpbmdTb3VyY2UnKTtcbiAgICAgIGRuZERyYWdUeXBlV29ya2Fyb3VuZC5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gdGhlIGVsZW1lbnQgaXMgY2xpY2tlZCB3ZSBpbnZva2UgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAgICogc3BlY2lmaWVkIHdpdGggdGhlIGRuZC1zZWxlY3RlZCBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgZWxlbWVudC5vbignY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICAgIGV2ZW50ID0gZXZlbnQub3JpZ2luYWxFdmVudCB8fCBldmVudDtcbiAgICAgIHNjb3BlLiRhcHBseSgoKSA9PiAkcGFyc2UoYXR0ci5kbmRTZWxlY3RlZCkoc2NvcGUsIHtldmVudDogZXZlbnR9KSk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFdvcmthcm91bmQgdG8gbWFrZSBlbGVtZW50IGRyYWdnYWJsZSBpbiBJRTlcbiAgICAgKi9cbiAgICBlbGVtZW50Lm9uKCdzZWxlY3RzdGFydCcsICgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRyYWdEcm9wKSB0aGlzLmRyYWdEcm9wKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gIH1cbn1cblxuXG5jb25zdCBUT19JTkpFQ1QgPSBbXG4gICckcGFyc2UnLCBcbiAgJyR0aW1lb3V0JywgXG4gICdkbmREcm9wRWZmZWN0V29ya2Fyb3VuZCcsIFxuICAnZG5kRHJhZ1R5cGVXb3JrYXJvdW5kJ1xuXTtcblxuXG5kbmREcmFnZ2FibGUuJGluamVjdCA9IFRPX0lOSkVDVDtcblxuZXhwb3J0IGRlZmF1bHQgZG5kRHJhZ2dhYmxlO1xuXG5leHBvcnQge1xuICBETkREUkFHR0FCTEVfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2NvbW1vbi9kcmFnQW5kRHJvcExpc3QvZHJhZ0FuZERyb3BMaXN0LmRuZERyYWdnYWJsZS5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  332. /***/ },
  333. /* 75 */
  334. /***/ function(module, exports, __webpack_require__) {
  335. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _pageslide = __webpack_require__(76);\n\nvar _pageslide2 = _interopRequireDefault(_pageslide);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PAGE_SLIDE_MODULE = 'pageslide.module';\n\nexports.default = angular.module(PAGE_SLIDE_MODULE, []).directive(_pageslide.PAGE_SLIDE_DIRECTIVE, _pageslide2.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL3BhZ2VzbGlkZS9wYWdlc2xpZGUubW9kdWxlLmpzPzQ0NzciXSwibmFtZXMiOlsiUEFHRV9TTElERV9NT0RVTEUiLCJhbmd1bGFyIiwibW9kdWxlIiwiZGlyZWN0aXZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7Ozs7O0FBS0EsSUFBTUEsb0JBQW9CLGtCQUExQjs7a0JBRWVDLFFBQ0VDLE1BREYsQ0FDU0YsaUJBRFQsRUFDNEIsRUFENUIsRUFFRUcsU0FGRixzRCIsImZpbGUiOiI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYWdlc2xpZGUsIHtcbiAgUEFHRV9TTElERV9ESVJFQ1RJVkVcbn0gZnJvbSAnLi9wYWdlc2xpZGUuZGlyZWN0aXZlJztcblxuXG5jb25zdCBQQUdFX1NMSURFX01PRFVMRSA9ICdwYWdlc2xpZGUubW9kdWxlJztcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuICAgICAgICAgICAgICAgIC5tb2R1bGUoUEFHRV9TTElERV9NT0RVTEUsIFtdKVxuICAgICAgICAgICAgICAgIC5kaXJlY3RpdmUoUEFHRV9TTElERV9ESVJFQ1RJVkUsIHBhZ2VzbGlkZSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL3BhZ2VzbGlkZS9wYWdlc2xpZGUubW9kdWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  336. /***/ },
  337. /* 76 */
  338. /***/ function(module, exports) {
  339. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar PAGE_SLIDE_DIRECTIVE = 'pageslide';\n\nfunction pageslide() {\n var directive = {\n restrict: 'EAC',\n transclude: false,\n scope: {\n psOpen: '=?',\n psAutoClose: '=?',\n psSide: '@',\n psSpeed: '@',\n psClass: '@',\n psSize: '@',\n psSqueeze: '@',\n psCloak: '@',\n psPush: '@',\n psContainer: '@'\n },\n link: linkFct\n };\n return directive;\n\n function linkFct($scope, el, attrs) {\n /* Inspect */\n //console.log($scope);\n //console.log(el);\n //console.log(attrs);\n\n /* Parameters */\n var param = {};\n\n param.side = $scope.psSide || 'right';\n param.speed = $scope.psSpeed || '0.5';\n param.size = $scope.psSize || '300px';\n param.zindex = 1000; // Override with custom CSS\n param.className = $scope.psClass || 'ng-pageslide';\n param.cloak = $scope.psCloak && $scope.psCloak.toLowerCase() == 'false' ? false : true;\n param.squeeze = Boolean($scope.psSqueeze) || false;\n param.push = Boolean($scope.psPush) || false;\n param.container = $scope.psContainer || false;\n\n // Apply Class\n el.addClass(param.className);\n\n /* DOM manipulation */\n var content = null;\n var slider = null;\n var body = param.container ? document.getElementById(param.container) : document.body;\n\n slider = el[0];\n\n // Check for div tag\n if (slider.tagName.toLowerCase() !== 'div' && slider.tagName.toLowerCase() !== 'pageslide') throw new Error('Pageslide can only be applied to <div> or <pageslide> elements');\n\n // Check for content\n if (slider.children.length === 0) throw new Error('You have to content inside the <pageslide>');\n\n content = angular.element(slider.children);\n\n /* Append */\n body.appendChild(slider);\n\n /* Style setup */\n slider.style.zIndex = param.zindex;\n slider.style.position = param.container !== false ? 'absolute' : 'fixed';\n slider.style.width = 0;\n slider.style.height = 0;\n slider.style.overflow = 'hidden';\n slider.style.transitionDuration = param.speed + 's';\n slider.style.webkitTransitionDuration = param.speed + 's';\n slider.style.transitionProperty = 'width, height';\n if (param.squeeze) {\n body.style.position = 'absolute';\n body.style.transitionDuration = param.speed + 's';\n body.style.webkitTransitionDuration = param.speed + 's';\n body.style.transitionProperty = 'top, bottom, left, right';\n }\n\n switch (param.side) {\n case 'right':\n slider.style.height = attrs.psCustomHeight || '100%';\n slider.style.top = attrs.psCustomTop || '0px';\n slider.style.bottom = attrs.psCustomBottom || '0px';\n slider.style.right = attrs.psCustomRight || '0px';\n break;\n case 'left':\n slider.style.height = attrs.psCustomHeight || '100%';\n slider.style.top = attrs.psCustomTop || '0px';\n slider.style.bottom = attrs.psCustomBottom || '0px';\n slider.style.left = attrs.psCustomLeft || '0px';\n break;\n case 'top':\n slider.style.width = attrs.psCustomWidth || '100%';\n slider.style.left = attrs.psCustomLeft || '0px';\n slider.style.top = attrs.psCustomTop || '0px';\n slider.style.right = attrs.psCustomRight || '0px';\n break;\n case 'bottom':\n slider.style.width = attrs.psCustomWidth || '100%';\n slider.style.bottom = attrs.psCustomBottom || '0px';\n slider.style.left = attrs.psCustomLeft || '0px';\n slider.style.right = attrs.psCustomRight || '0px';\n break;\n }\n\n /* Closed */\n function psClose(slider, param) {\n if (slider && slider.style.width !== 0 && slider.style.width !== 0) {\n if (param.cloak) content.css('display', 'none');\n switch (param.side) {\n case 'right':\n slider.style.width = '0px';\n if (param.squeeze) body.style.right = '0px';\n if (param.push) {\n body.style.right = '0px';\n body.style.left = '0px';\n }\n break;\n case 'left':\n slider.style.width = '0px';\n if (param.squeeze) body.style.left = '0px';\n if (param.push) {\n body.style.left = '0px';\n body.style.right = '0px';\n }\n break;\n case 'top':\n slider.style.height = '0px';\n if (param.squeeze) body.style.top = '0px';\n if (param.push) {\n body.style.top = '0px';\n body.style.bottom = '0px';\n }\n break;\n case 'bottom':\n slider.style.height = '0px';\n if (param.squeeze) body.style.bottom = '0px';\n if (param.push) {\n body.style.bottom = '0px';\n body.style.top = '0px';\n }\n break;\n }\n }\n $scope.psOpen = false;\n }\n\n /* Open */\n function psOpen(slider, param) {\n if (slider.style.width !== 0 && slider.style.width !== 0) {\n switch (param.side) {\n case 'right':\n slider.style.width = param.size;\n if (param.squeeze) body.style.right = param.size;\n if (param.push) {\n body.style.right = param.size;\n body.style.left = '-' + param.size;\n }\n break;\n case 'left':\n slider.style.width = param.size;\n if (param.squeeze) body.style.left = param.size;\n if (param.push) {\n body.style.left = param.size;\n body.style.right = '-' + param.size;\n }\n break;\n case 'top':\n slider.style.height = param.size;\n if (param.squeeze) body.style.top = param.size;\n if (param.push) {\n body.style.top = param.size;\n body.style.bottom = '-' + param.size;\n }\n break;\n case 'bottom':\n slider.style.height = param.size;\n if (param.squeeze) body.style.bottom = param.size;\n if (param.push) {\n body.style.bottom = param.size;\n body.style.top = '-' + param.size;\n }\n break;\n }\n setTimeout(function () {\n if (param.cloak) content.css('display', 'block');\n }, param.speed * 1000);\n }\n }\n\n // function isFunction(functionToCheck) {\n // var getType = {};\n // return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n // }\n\n /*\n * Watchers\n * */\n\n $scope.$watch('psOpen', function (value) {\n /* eslint no-extra-boolean-cast:0 */\n if (!!value) {\n // Open\n psOpen(slider, param);\n } else {\n // Close\n psClose(slider, param);\n }\n });\n\n /*\n * Events\n * */\n\n $scope.$on('$destroy', function () {\n return body.removeChild(slider);\n });\n\n if ($scope.psAutoClose) {\n $scope.$on('$locationChangeStart', function () {\n return psClose(slider, param);\n });\n $scope.$on('$stateChangeStart', function () {\n return psClose(slider, param);\n });\n }\n }\n}\n\npageslide.$inject = [];\n\nexports.default = pageslide;\nexports.PAGE_SLIDE_DIRECTIVE = PAGE_SLIDE_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL3BhZ2VzbGlkZS9wYWdlc2xpZGUuZGlyZWN0aXZlLmpzP2U0ZjAiXSwibmFtZXMiOlsiUEFHRV9TTElERV9ESVJFQ1RJVkUiLCJwYWdlc2xpZGUiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsInRyYW5zY2x1ZGUiLCJzY29wZSIsInBzT3BlbiIsInBzQXV0b0Nsb3NlIiwicHNTaWRlIiwicHNTcGVlZCIsInBzQ2xhc3MiLCJwc1NpemUiLCJwc1NxdWVlemUiLCJwc0Nsb2FrIiwicHNQdXNoIiwicHNDb250YWluZXIiLCJsaW5rIiwibGlua0ZjdCIsIiRzY29wZSIsImVsIiwiYXR0cnMiLCJwYXJhbSIsInNpZGUiLCJzcGVlZCIsInNpemUiLCJ6aW5kZXgiLCJjbGFzc05hbWUiLCJjbG9hayIsInRvTG93ZXJDYXNlIiwic3F1ZWV6ZSIsIkJvb2xlYW4iLCJwdXNoIiwiY29udGFpbmVyIiwiYWRkQ2xhc3MiLCJjb250ZW50Iiwic2xpZGVyIiwiYm9keSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJ0YWdOYW1lIiwiRXJyb3IiLCJjaGlsZHJlbiIsImxlbmd0aCIsImFuZ3VsYXIiLCJlbGVtZW50IiwiYXBwZW5kQ2hpbGQiLCJzdHlsZSIsInpJbmRleCIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyIsInRyYW5zaXRpb25EdXJhdGlvbiIsIndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiIsInRyYW5zaXRpb25Qcm9wZXJ0eSIsInBzQ3VzdG9tSGVpZ2h0IiwidG9wIiwicHNDdXN0b21Ub3AiLCJib3R0b20iLCJwc0N1c3RvbUJvdHRvbSIsInJpZ2h0IiwicHNDdXN0b21SaWdodCIsImxlZnQiLCJwc0N1c3RvbUxlZnQiLCJwc0N1c3RvbVdpZHRoIiwicHNDbG9zZSIsImNzcyIsInNldFRpbWVvdXQiLCIkd2F0Y2giLCJ2YWx1ZSIsIiRvbiIs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LGVBQU1MLFFBQVE5QixNQUFSLEVBQWdCZCxLQUFoQixDQUFOO0FBQUEsT0FBbkM7QUFDQUgsYUFBT29ELEdBQVAsQ0FBVyxtQkFBWCxFQUFnQztBQUFBLGVBQU1MLFFBQVE5QixNQUFSLEVBQWdCZCxLQUFoQixDQUFOO0FBQUEsT0FBaEM7QUFDRDtBQUNGO0FBRUY7O0FBRURwQixVQUFVdUUsT0FBVixHQUFvQixFQUFwQjs7a0JBRWV2RSxTO1FBR2JELG9CLEdBQUFBLG9CIiwiZmlsZSI6Ijc2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgUEFHRV9TTElERV9ESVJFQ1RJVkUgPSAncGFnZXNsaWRlJztcblxuZnVuY3Rpb24gcGFnZXNsaWRlKCkge1xuICBsZXQgZGlyZWN0aXZlID0ge1xuICAgIHJlc3RyaWN0ICAgIDogJ0VBQycsXG4gICAgdHJhbnNjbHVkZSAgOiBmYWxzZSxcbiAgICBzY29wZSA6IHtcbiAgICAgICAgcHNPcGVuICAgICAgOiAnPT8nLFxuICAgICAgICBwc0F1dG9DbG9zZSA6ICc9PycsXG4gICAgICAgIHBzU2lkZSAgICAgIDogJ0AnLFxuICAgICAgICBwc1NwZWVkICAgICA6ICdAJyxcbiAgICAgICAgcHNDbGFzcyAgICAgOiAnQCcsXG4gICAgICAgIHBzU2l6ZSAgICAgIDogJ0AnLFxuICAgICAgICBwc1NxdWVlemUgICA6ICdAJyxcbiAgICAgICAgcHNDbG9hayAgICAgOiAnQCcsXG4gICAgICAgIHBzUHVzaCAgICAgIDogJ0AnLFxuICAgICAgICBwc0NvbnRhaW5lciA6ICdAJ1xuICAgIH0sXG4gICAgbGluayA6IGxpbmtGY3RcbiAgfTtcbiAgcmV0dXJuIGRpcmVjdGl2ZTtcblxuICBmdW5jdGlvbiBsaW5rRmN0KCRzY29wZSwgZWwsIGF0dHJzKSB7XG4gICAgLyogSW5zcGVjdCAqL1xuICAgIC8vY29uc29sZS5sb2coJHNjb3BlKTtcbiAgICAvL2NvbnNvbGUubG9nKGVsKTtcbiAgICAvL2NvbnNvbGUubG9nKGF0dHJzKTtcblxuICAgIC8qIFBhcmFtZXRlcnMgKi9cbiAgICB2YXIgcGFyYW0gICAgICAgPSB7fTtcblxuICAgIHBhcmFtLnNpZGUgICAgICA9ICRzY29wZS5wc1NpZGUgfHwgJ3JpZ2h0JztcbiAgICBwYXJhbS5zcGVlZCAgICAgPSAkc2NvcGUucHNTcGVlZCB8fCAnMC41JztcbiAgICBwYXJhbS5zaXplICAgICAgPSAkc2NvcGUucHNTaXplIHx8ICczMDBweCc7XG4gICAgcGFyYW0uemluZGV4ICAgID0gMTAwMDsgLy8gT3ZlcnJpZGUgd2l0aCBjdXN0b20gQ1NTXG4gICAgcGFyYW0uY2xhc3NOYW1lID0gJHNjb3BlLnBzQ2xhc3MgfHwgJ25nLXBhZ2VzbGlkZSc7XG4gICAgcGFyYW0uY2xvYWsgICAgID0gJHNjb3BlLnBzQ2xvYWsgJiYgJHNjb3BlLnBzQ2xvYWsudG9Mb3dlckNhc2UoKSA9PSAnZmFsc2UnID8gZmFsc2UgOiB0cnVlO1xuICAgIHBhcmFtLnNxdWVlemUgICA9IEJvb2xlYW4oJHNjb3BlLnBzU3F1ZWV6ZSkgfHwgZmFsc2U7XG4gICAgcGFyYW0ucHVzaCAgICAgID0gQm9vbGVhbigkc2NvcGUucHNQdXNoKSB8fCBmYWxzZTtcbiAgICBwYXJhbS5jb250YWluZXIgPSAkc2NvcGUucHNDb250YWluZXIgfHwgZmFsc2U7IFxuXG4gICAgLy8gQXBwbHkgQ2xhc3NcbiAgICBlbC5hZGRDbGFzcyhwYXJhbS5jbGFzc05hbWUpO1xuXG4gICAgLyogRE9NIG1hbmlwdWxhdGlvbiAqL1xuICAgIGxldCBjb250ZW50ID0gbnVsbDtcbiAgICBsZXQgc2xpZGVyICA9IG51bGw7XG4gICAgbGV0IGJvZHkgICAgPSBwYXJhbS5jb250YWluZXIgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwYXJhbS5jb250YWluZXIpIDogZG9jdW1lbnQuYm9keTtcblxuICAgIHNsaWRlciAgICAgID0gZWxbMF07XG5cbiAgICAvLyBDaGVjayBmb3IgZGl2IHRhZ1xuICAgIGlmIChzbGlkZXIudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAnZGl2JyAmJlxuICAgICAgICBzbGlkZXIudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAncGFnZXNsaWRlJylcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYWdlc2xpZGUgY2FuIG9ubHkgYmUgYXBwbGllZCB0byA8ZGl2PiBvciA8cGFnZXNsaWRlPiBlbGVtZW50cycpO1xuXG4gICAgLy8gQ2hlY2sgZm9yIGNvbnRlbnRcbiAgICBpZiAoc2xpZGVyLmNoaWxkcmVuLmxlbmd0aCA9PT0gMClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgaGF2ZSB0byBjb250ZW50IGluc2lkZSB0aGUgPHBhZ2VzbGlkZT4nKTtcblxuICAgIGNvbnRlbnQgPSBhbmd1bGFyLmVsZW1lbnQoc2xpZGVyLmNoaWxkcmVuKTtcblxuICAgIC8qIEFwcGVuZCAqL1xuICAgIGJvZHkuYXBwZW5kQ2hpbGQoc2xpZGVyKTtcblxuICAgIC8qIFN0eWxlIHNldHVwICovXG4gICAgc2xpZGVyLnN0eWxlLnpJbmRleCAgICAgICAgICAgICAgICAgICA9IHBhcmFtLnppbmRleDtcbiAgICBzbGlkZXIuc3R5bGUucG9zaXRpb24gICAgICAgICAgICAgICAgID0gcGFyYW0uY29udGFpbmVyICE9PSBmYWxzZSA/ICdhYnNvbHV0ZScgOiAnZml4ZWQnO1xuICAgIHNsaWRlci5zdHlsZS53aWR0aCAgICAgICAgICAgICAgICAgICAgPSAwO1xuICAgIHNsaWRlci5zdHlsZS5oZWlnaHQgICAgICAgICAgICAgICAgICAgPSAwO1xuICAgIHNsaWRlci5zdHlsZS5vdmVyZmxvdyAgICAgICAgICAgICAgICAgPSAnaGlkZGVuJztcbiAgICBzbGlkZXIuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uICAgICAgID0gcGFyYW0uc3BlZWQgKyAncyc7XG4gICAgc2xpZGVyLnN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiA9IHBhcmFtLnNwZWVkICsgJ3MnO1xuICAgIHNsaWRlci5zdHlsZS50cmFuc2l0aW9uUHJvcGVydHkgICAgICAgPSAnd2lkdGgsIGhlaWdodCc7XG4gICAgaWYgKHBhcmFtLnNxdWVlemUpIHtcbiAgICAgIGJvZHkuc3R5bGUucG9zaXRpb24gICAgICAgICAgICAgICAgID0gJ2Fic29sdXRlJztcbiAgICAgIGJvZHkuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uICAgICAgID0gcGFyYW0uc3BlZWQgKyAncyc7XG4gICAgICBib2R5LnN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiA9IHBhcmFtLnNwZWVkICsgJ3MnO1xuICAgICAgYm9keS5zdHlsZS50cmFuc2l0aW9uUHJvcGVydHkgICAgICAgPSAndG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0JztcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHBhcmFtLnNpZGUpIHtcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICBzbGlkZXIuc3R5bGUuaGVpZ2h0ID0gYXR0cnMucHNDdXN0b21IZWlnaHQgfHwgJzEwMCUnO1xuICAgICAgc2xpZGVyLnN0eWxlLnRvcCAgICA9IGF0dHJzLnBzQ3VzdG9tVG9wIHx8ICcwcHgnO1xuICAgICAgc2xpZGVyLnN0eWxlLmJvdHRvbSA9IGF0dHJzLnBzQ3VzdG9tQm90dG9tIHx8ICcwcHgnO1xuICAgICAgc2xpZGVyLnN0eWxlLnJpZ2h0ICA9IGF0dHJzLnBzQ3VzdG9tUmlnaHQgfHwgJzBweCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIHNsaWRlci5zdHlsZS5oZWlnaHQgPSBhdHRycy5wc0N1c3RvbUhlaWdodCB8fCAnMTAwJSc7XG4gICAgICBzbGlkZXIuc3R5bGUudG9wICAgID0gYXR0cnMucHNDdXN0b21Ub3AgfHwgJzBweCc7XG4gICAgICBzbGlkZXIuc3R5bGUuYm90dG9tID0gYXR0cnMucHNDdXN0b21Cb3R0b20gfHwgJzBweCc7XG4gICAgICBzbGlkZXIuc3R5bGUubGVmdCAgID0gYXR0cnMucHNDdXN0b21MZWZ0IHx8ICcwcHgnO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndG9wJzpcbiAgICAgIHNsaWRlci5zdHlsZS53aWR0aCAgPSBhdHRycy5wc0N1c3RvbVdpZHRoIHx8ICcxMDAlJztcbiAgICAgIHNsaWRlci5zdHlsZS5sZWZ0ICAgPSBhdHRycy5wc0N1c3RvbUxlZnQgfHwgJzBweCc7XG4gICAgICBzbGlkZXIuc3R5bGUudG9wICAgID0gYXR0cnMucHNDdXN0b21Ub3AgfHwgJzBweCc7XG4gICAgICBzbGlkZXIuc3R5bGUucmlnaHQgID0gYXR0cnMucHNDdXN0b21SaWdodCB8fCAnMHB4JztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICBzbGlkZXIuc3R5bGUud2lkdGggID0gYXR0cnMucHNDdXN0b21XaWR0aCB8fCAnMTAwJSc7XG4gICAgICBzbGlkZXIuc3R5bGUuYm90dG9tID0gYXR0cnMucHNDdXN0b21Cb3R0b20gfHwgJzBweCc7XG4gICAgICBzbGlkZXIuc3R5bGUubGVmdCAgID0gYXR0cnMucHNDdXN0b21MZWZ0IHx8ICcwcHgnO1xuICAgICAgc2xpZGVyLnN0eWxlLnJpZ2h0ICA9IGF0dHJzLnBzQ3VzdG9tUmlnaHQgfHwgJzBweCc7XG4gICAgICBicmVhaztcbiAgICB9XG5cblxuICAgIC8qIENsb3NlZCAqL1xuICAgIGZ1bmN0aW9uIHBzQ2xvc2Uoc2xpZGVyLCBwYXJhbSkge1xuICAgICAgaWYgKHNsaWRlciAmJiBzbGlkZXIuc3R5bGUud2lkdGggIT09IDAgJiYgc2xpZGVyLnN0eWxlLndpZHRoICE9PSAwKSB7XG4gICAgICAgIGlmIChwYXJhbS5jbG9haykgY29udGVudC5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICBzd2l0Y2ggKHBhcmFtLnNpZGUpIHtcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIHNsaWRlci5zdHlsZS53aWR0aCA9ICcwcHgnO1xuICAgICAgICAgIGlmIChwYXJhbS5zcXVlZXplKSBib2R5LnN0eWxlLnJpZ2h0ID0gJzBweCc7XG4gICAgICAgICAgaWYgKHBhcmFtLnB1c2gpIHtcbiAgICAgICAgICAgICAgYm9keS5zdHlsZS5yaWdodCAgPSAnMHB4JztcbiAgICAgICAgICAgICAgYm9keS5zdHlsZS5sZWZ0ICAgPSAnMHB4JztcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIHNsaWRlci5zdHlsZS53aWR0aCA9ICcwcHgnO1xuICAgICAgICAgIGlmIChwYXJhbS5zcXVlZXplKSBib2R5LnN0eWxlLmxlZnQgPSAnMHB4JztcbiAgICAgICAgICBpZiAocGFyYW0ucHVzaCkge1xuICAgICAgICAgICAgICBib2R5LnN0eWxlLmxlZnQgICA9ICcwcHgnO1xuICAgICAgICAgICAgICBib2R5LnN0eWxlLnJpZ2h0ICA9ICcwcHgnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICBzbGlkZXIuc3R5bGUuaGVpZ2h0ID0gJzBweCc7XG4gICAgICAgICAgaWYgKHBhcmFtLnNxdWVlemUpIGJvZHkuc3R5bGUudG9wID0gJzBweCc7XG4gICAgICAgICAgaWYgKHBhcmFtLnB1c2gpIHtcbiAgICAgICAgICAgICAgYm9keS5zdHlsZS50b3AgICAgPSAnMHB4JztcbiAgICAgICAgICAgICAgYm9keS5zdHlsZS5ib3R0b20gPSAnMHB4JztcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgc2xpZGVyLnN0eWxlLmhlaWdodCA9ICcwcHgnO1xuICAgICAgICAgIGlmIChwYXJhbS5zcXVlZXplKSBib2R5LnN0eWxlLmJvdHRvbSA9ICcwcHgnO1xuICAgICAgICAgIGlmIChwYXJhbS5wdXNoKSB7XG4gICAgICAgICAgICAgIGJvZHkuc3R5bGUuYm90dG9tID0gJzBweCc7IFxuICAgICAgICAgICAgICBib2R5LnN0eWxlLnRvcCAgICA9ICcwcHgnOyBcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRzY29wZS5wc09wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiBPcGVuICovXG4gICAgZnVuY3Rpb24gcHNPcGVuKHNsaWRlciwgcGFyYW0pIHtcbiAgICAgICAgaWYgKHNsaWRlci5zdHlsZS53aWR0aCAhPT0gMCAmJiBzbGlkZXIuc3R5bGUud2lkdGggIT09IDApIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGFyYW0uc2lkZSkge1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICBzbGlkZXIuc3R5bGUud2lkdGggPSBwYXJhbS5zaXplO1xuICAgICAgICAgICAgICBpZiAocGFyYW0uc3F1ZWV6ZSkgYm9keS5zdHlsZS5yaWdodCA9IHBhcmFtLnNpemU7XG4gICAgICAgICAgICAgIGlmIChwYXJhbS5wdXNoKSB7XG4gICAgICAgICAgICAgICAgICBib2R5LnN0eWxlLnJpZ2h0ID0gcGFyYW0uc2l6ZTtcbiAgICAgICAgICAgICAgICAgIGJvZHkuc3R5bGUubGVmdCA9ICctJyArIHBhcmFtLnNpemU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgc2xpZGVyLnN0eWxlLndpZHRoID0gcGFyYW0uc2l6ZTtcbiAgICAgICAgICAgICAgaWYgKHBhcmFtLnNxdWVlemUpIGJvZHkuc3R5bGUubGVmdCA9IHBhcmFtLnNpemU7XG4gICAgICAgICAgICAgIGlmIChwYXJhbS5wdXNoKSB7XG4gICAgICAgICAgICAgICAgICBib2R5LnN0eWxlLmxlZnQgPSBwYXJhbS5zaXplO1xuICAgICAgICAgICAgICAgICAgYm9keS5zdHlsZS5yaWdodCA9ICctJyArIHBhcmFtLnNpemU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICBzbGlkZXIuc3R5bGUuaGVpZ2h0ID0gcGFyYW0uc2l6ZTtcbiAgICAgICAgICAgICAgaWYgKHBhcmFtLnNxdWVlemUpIGJvZHkuc3R5bGUudG9wID0gcGFyYW0uc2l6ZTtcbiAgICAgICAgICAgICAgaWYgKHBhcmFtLnB1c2gpIHtcbiAgICAgICAgICAgICAgICAgIGJvZHkuc3R5bGUudG9wID0gcGFyYW0uc2l6ZTtcbiAgICAgICAgICAgICAgICAgIGJvZHkuc3R5bGUuYm90dG9tID0gJy0nICsgcGFyYW0uc2l6ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgIHNsaWRlci5zdHlsZS5oZWlnaHQgPSBwYXJhbS5zaXplO1xuICAgICAgICAgICAgICBpZiAocGFyYW0uc3F1ZWV6ZSkgYm9keS5zdHlsZS5ib3R0b20gPSBwYXJhbS5zaXplO1xuICAgICAgICAgICAgICBpZiAocGFyYW0ucHVzaCkge1xuICAgICAgICAgICAgICAgICAgYm9keS5zdHlsZS5ib3R0b20gPSBwYXJhbS5zaXplO1xuICAgICAgICAgICAgICAgICAgYm9keS5zdHlsZS50b3AgPSAnLScgKyBwYXJhbS5zaXplO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChwYXJhbS5jbG9haykgY29udGVudC5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcbiAgICAgICAgICAgIH0sIChwYXJhbS5zcGVlZCAqIDEwMDApKTtcblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZnVuY3Rpb24gaXNGdW5jdGlvbihmdW5jdGlvblRvQ2hlY2spIHtcbiAgICAvLyAgIHZhciBnZXRUeXBlID0ge307XG4gICAgLy8gICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xuICAgIC8vIH1cblxuICAgIC8qXG4gICAgKiBXYXRjaGVyc1xuICAgICogKi9cblxuICAgICRzY29wZS4kd2F0Y2goJ3BzT3BlbicsICh2YWx1ZSkgPT4ge1xuICAgICAgLyogZXNsaW50IG5vLWV4dHJhLWJvb2xlYW4tY2FzdDowICovXG4gICAgICBpZiAoISF2YWx1ZSkge1xuICAgICAgICAvLyBPcGVuXG4gICAgICAgIHBzT3BlbihzbGlkZXIsIHBhcmFtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENsb3NlXG4gICAgICAgIHBzQ2xvc2Uoc2xpZGVyLCBwYXJhbSk7XG4gICAgICB9XG4gICAgfSk7XG5cblxuICAgIC8qXG4gICAgKiBFdmVudHNcbiAgICAqICovXG5cbiAgICAkc2NvcGUuJG9uKCckZGVzdHJveScsICgpID0+IGJvZHkucmVtb3ZlQ2hpbGQoc2xpZGVyKSk7XG5cbiAgICBpZiAoJHNjb3BlLnBzQXV0b0Nsb3NlKSB7XG4gICAgICAkc2NvcGUuJG9uKCckbG9jYXRpb25DaGFuZ2VTdGFydCcsICgpID0+IHBzQ2xvc2Uoc2xpZGVyLCBwYXJhbSkpO1xuICAgICAgJHNjb3BlLiRvbignJHN0YXRlQ2hhbmdlU3RhcnQnLCAoKSA9PiBwc0Nsb3NlKHNsaWRlciwgcGFyYW0pKTtcbiAgICB9XG4gIH1cblxufVxuXG5wYWdlc2xpZGUuJGluamVjdCA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBwYWdlc2xpZGU7XG5cbmV4cG9ydCB7XG4gIFBBR0VfU0xJREVfRElSRUNUSVZFXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2NvbW1vbi9wYWdlc2xpZGUvcGFnZXNsaWRlLmRpcmVjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  340. /***/ },
  341. /* 77 */
  342. /***/ function(module, exports, __webpack_require__) {
  343. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen = __webpack_require__(78);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen2 = _interopRequireDefault(_edaDragDropWayEdaDragdropWayEasyFormGen);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen3 = __webpack_require__(80);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen4 = _interopRequireDefault(_edaDragDropWayEdaDragdropWayEasyFormGen3);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen5 = __webpack_require__(82);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen6 = _interopRequireDefault(_edaDragDropWayEdaDragdropWayEasyFormGen5);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DRAGDROP_MODULE = 'edaDragDropWay.main.module'; /* global angular */\n\nexports.default = angular.module(DRAGDROP_MODULE, []).provider(_edaDragDropWayEdaDragdropWayEasyFormGen.EASY_FORM_DRAG_DROP_WAY_CONFIG_NAME, _edaDragDropWayEdaDragdropWayEasyFormGen2.default).controller(_edaDragDropWayEdaDragdropWayEasyFormGen3.DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER, _edaDragDropWayEdaDragdropWayEasyFormGen4.default).directive(_edaDragDropWayEdaDragdropWayEasyFormGen5.EDA_DRAGDROP_WAY_EASY_FORM_GEN_DIRECTIVE, _edaDragDropWayEdaDragdropWayEasyFormGen6.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLm1vZHVsZS5qcz80NjNlIl0sIm5hbWVzIjpbIkRSQUdEUk9QX01PRFVMRSIsImFuZ3VsYXIiLCJtb2R1bGUiLCJwcm92aWRlciIsImNvbnRyb2xsZXIiLCJkaXJlY3RpdmUiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBOzs7O0FBR0E7Ozs7QUFHQTs7Ozs7O0FBS0EsSUFBTUEsa0JBQWtCLDRCQUF4QixDLENBYkE7O2tCQWVlQyxRQUNOQyxNQURNLENBQ0NGLGVBREQsRUFDa0IsRUFEbEIsRUFFTkcsUUFGTSxrSUFHTkMsVUFITSxzSUFJTkMsU0FKTSx1SSIsImZpbGUiOiI3Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cbmltcG9ydCBlYXN5Rm9ybURyYWdXYXlDb25maWcsIHtcblx0RUFTWV9GT1JNX0RSQUdfRFJPUF9XQVlfQ09ORklHX05BTUVcbn0gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLnByb3ZpZGVyJztcbmltcG9ydCBlZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuQ3RybCwge1xuXHREUkFHX0RST1BfV0FZX0VBU1lfRk9STV9HRU5fQ09OVFJPTExFUlxufVx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLmNvbnRyb2xsZXInO1xuaW1wb3J0IGVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4sIHtcblx0RURBX0RSQUdEUk9QX1dBWV9FQVNZX0ZPUk1fR0VOX0RJUkVDVElWRVxufVx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZnJvbSAnLi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLmRpcmVjdGl2ZSc7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5jb25zdCBEUkFHRFJPUF9NT0RVTEUgPSAnZWRhRHJhZ0Ryb3BXYXkubWFpbi5tb2R1bGUnO1xuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG5cdFx0XHRcdFx0XHRcdFx0Lm1vZHVsZShEUkFHRFJPUF9NT0RVTEUsIFtdKVxuXHRcdFx0XHRcdFx0XHRcdC5wcm92aWRlcihFQVNZX0ZPUk1fRFJBR19EUk9QX1dBWV9DT05GSUdfTkFNRSwgZWFzeUZvcm1EcmFnV2F5Q29uZmlnKVxuXHRcdFx0XHRcdFx0XHRcdC5jb250cm9sbGVyKERSQUdfRFJPUF9XQVlfRUFTWV9GT1JNX0dFTl9DT05UUk9MTEVSLCBlZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuQ3RybClcblx0XHRcdFx0XHRcdFx0XHQuZGlyZWN0aXZlKEVEQV9EUkFHRFJPUF9XQVlfRUFTWV9GT1JNX0dFTl9ESVJFQ1RJVkUsIGVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4pO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9lZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuL2VkYURyYWdEcm9wV2F5LmVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4ubW9kdWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
  344. /***/ },
  345. /* 78 */
  346. /***/ function(module, exports, __webpack_require__) {
  347. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.EASY_FORM_DRAG_DROP_WAY_CONFIG_NAME = undefined;\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGenProvider = __webpack_require__(79);\n\nvar EASY_FORM_DRAG_DROP_WAY_CONFIG_NAME = 'easyFormDragWayConfig'; // TODO : Add here configs from ES5 dragDropConfigProvider\n\nfunction easyFormDragWayConfig() {\n\n\tvar _listDragDropItemCssClasses = [].concat(_edaDragDropWayEdaDragdropWayEasyFormGenProvider.LIST_DRAG_DROP_ITEM_CSS_CLASSES);\n\tvar _dragDropConfigModel = angular.copy(_edaDragDropWayEdaDragdropWayEasyFormGenProvider.DRAG_DROP_CONFIG_MODEL);\n\tvar _dragDropPresentationModel = [].concat(_edaDragDropWayEdaDragdropWayEasyFormGenProvider.DRAG_DROP_PRESENTATION_MODEL);\n\tvar _itemsNotToCountFoReal = angular.copy(_edaDragDropWayEdaDragdropWayEasyFormGenProvider.ITEMS_NOT_TO_COUNT_FOR_REAL);\n\n\tvar _configuration = defaultConfig();\n\tvar _controlsList = controlsList();\n\t// let _defaultLanguage\t\t= getDefaultLanguage();\n\t// let _currentLanguage\t\t= initDefaultLanguage();\n\tvar _showPreviewPanel = getDefaultshowPreviewPanel();\n\tvar _showPreviewModels = getDefaultShowPreviewModel();\n\t/* jshint validthis:true */\n\tthis.$get = easyFormDragDropWayConfigGET;\n\tthis.setModalAnimation = setModalAnimation;\n\tthis.getModalAnimation = getModalAnimation;\n\tthis.configuration = _configuration;\n\tthis.getEnabledControls = getEnabledControls;\n\tthis.disableControl = disableControl;\n\tthis.enableControl = enableControl;\n\t// this.setLanguage\t\t\t\t= setLanguage;\n\t// this.getCurrentLanguage\t= getCurrentLanguage;\n\tthis.showPreviewPanel = showPreviewPanel;\n\tthis.showPreviewModels = showPreviewModels;\n\n\tthis.setListItemCssClass = setListItemCssClass;\n\tthis.getItemsNotTocount = getItemsNotTocount;\n\tthis.setItemsNotTocount = setItemsNotTocount;\n\tthis.addControlToDragDropPresentationModel = addControlToDragDropPresentationModel;\n\tthis.getDragDropPresentationModel = getDragDropPresentationModel;\n\n\tfunction setListItemCssClass(fromConfig) {\n\t\t_listDragDropItemCssClasses = [].concat(fromConfig);\n\t}\n\n\tfunction getItemsNotTocount() {\n\t\treturn _itemsNotToCountFoReal;\n\t}\n\n\tfunction setItemsNotTocount(fromConfig) {\n\t\t_itemsNotToCountFoReal = angular.copy(fromConfig);\n\t}\n\n\t//set default config\n\tfunction defaultConfig() {\n\t\tvar _defaultConfiguration = {\n\t\t\tmodalAnimated: false\n\t\t};\n\t\treturn _defaultConfiguration;\n\t}\n\n\tfunction addControlToDragDropPresentationModel(controlToAdd, groupToAdd) {\n\t\tif (typeof controlToAdd !== 'undefined' && typeof groupToAdd !== 'undefined') {\n\t\t\taddToGroupControl(controlToAdd, groupToAdd);\n\t\t}\n\t}\n\n\tfunction getDragDropPresentationModel() {\n\t\treturn _dragDropPresentationModel;\n\t}\n\n\t//show preview panel by default\n\tfunction getDefaultshowPreviewPanel() {\n\t\treturn true;\n\t}\n\n\t//show preview data, fields models in preview panel\n\tfunction getDefaultShowPreviewModel() {\n\t\treturn true;\n\t}\n\n\t// function getCurrentLanguage(){\n\t// \t\treturn _currentLanguage;\n\t// }\t\n\n\t//list of controls\n\tfunction controlsList() {\n\t\tvar controls = [{ name: 'empty', enabled: true }, { name: 'Header', enabled: true }, { name: 'Subtitle', enabled: true }, { name: 'TextInput', enabled: true }, { name: 'Password', enabled: true }, { name: 'Email', enabled: true }, { name: 'Date', enabled: true }, { name: 'Texarea', enabled: true }, { name: 'RichTextEditor', enabled: true }, { name: 'Radio', enabled: true }, { name: 'Checkbox', enabled: true }, { name: 'BasicSelect', enabled: true }, { name: 'GroupedSelect', enabled: true }];\n\t\treturn controls;\n\t}\n\n\tfunction showPreviewPanel(wantToShow) {\n\t\tif (angular.isDefined(wantToShow)) {\n\t\t\tif (wantToShow === true) _showPreviewPanel = true;\n\t\t\tif (wantToShow === false) _showPreviewPanel = false;\n\t\t}\n\t}\n\n\tfunction showPreviewModels(wantToShow) {\n\t\tif (angular.isDefined(wantToShow)) {\n\t\t\tif (wantToShow === true) _showPreviewModels = true;\n\t\t\tif (wantToShow === false) _showPreviewModels = false;\n\t\t}\n\t}\n\n\t// //language : set default to english\n\t// function getDefaultLanguage(){\n\t// \tlet lang = 'en';\n\t// \treturn lang;\n\t// }\n\n\t// function setDefaultLanguage(){\n\t// \t_currentLanguage = _defaultLanguage;\n\t// \t$translateProvider.preferredLanguage(_currentLanguage);\n\t// \treturn _currentLanguage;\n\t// }\t\n\n\t// function setLanguage(language){\t\t\t\t\n\t// \tif (angular.isString(language)) {\n\t// \t\t_currentLanguage = language;\n\t// \t\t$translateProvider.preferredLanguage(language);\n\t// \t}else{\n\t// \t\tsetDefaultLanguage();\n\t// \t}\n\t// }\n\n\t// function initDefaultLanguage(){\n\t// \t$translateProvider.useSanitizeValueStrategy('escape'); \t//security : Enable escaping of HTML\n\t// \t$translateProvider.fallbackLanguage(_defaultLanguage);\t//fallback language to default language\n\t// \t$translateProvider.preferredLanguage(_defaultLanguage);\n\t// \treturn _defaultLanguage;\n\t// }\n\n\tfunction getEnabledControls() {\n\t\treturn _controlsList;\n\t}\n\n\tfunction disableControl(controlName) {\n\t\tif (angular.isString(controlName)) {\n\t\t\tangular.forEach(_controlsList, function (aControl) {\n\t\t\t\tif (aControl.name === controlName) aControl.enabled = false;\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction enableControl(controlName) {\n\t\tif (angular.isString(controlName)) {\n\t\t\tangular.forEach(_controlsList, function (aControl) {\n\t\t\t\tif (aControl.name === controlName) aControl.enabled = true;\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction setModalAnimation(flagConfig) {\n\t\tvar valueToApply = flagConfig === true ? flagConfig : flagConfig === false ? flagConfig : _configuration.modalAnimated;\n\n\t\t_configuration.modalAnimated = valueToApply;\n\t}\n\n\tfunction getModalAnimation() {\n\t\treturn _configuration.modalAnimated;\n\t}\n\n\t//$get implementation :\n\t// easyFormDragDropWayConfigGET.$inject = ['$translate'];\n\t// function easyFormDragDropWayConfigGET($translate){\n\teasyFormDragDropWayConfigGET.$inject = [];\n\tfunction easyFormDragDropWayConfigGET() {\n\n\t\tvar service = {\n\t\t\tsetModalAnimation: setModalAnimationFct,\n\t\t\tgetModalAnimationValue: getModalAnimationValue,\n\t\t\tgetListEnabledControl: getListEnabledControl,\n\t\t\t// setLanguage \t\t\t\t\t\t\t\t\t\t\t: switchLanguage,\n\t\t\t// getCurrentLanguage\t\t\t\t\t\t\t\t: getCurrentLanguage,\n\t\t\tisPreviewPanelVisible: isPreviewPanelVisible,\n\t\t\tarePreviewModelsVisible: arePreviewModelsVisible,\n\n\t\t\tgetListItemCssClass: getListItemCssClass,\n\t\t\tgetItemsNotToCount: getItemsNotToCount,\n\t\t\tgetItemCssDependingNumberItemsInRow: getItemCssDependingNumberItemsInRow,\n\t\t\tgetDistinctItemCssClass: getDistinctItemCssClass,\n\t\t\tgetDragDropConfigModel: getDragDropConfigModel,\n\t\t\tgetDragDropPresentationModel: getDragDropPresentationModel,\n\t\t\tsetDragDropConfigContainerDecorationCollapse: setDragDropConfigContainerDecorationCollapse\n\t\t};\n\t\treturn service;\n\n\t\tfunction getDragDropPresentationModel() {\n\t\t\treturn _dragDropPresentationModel;\n\t\t}\n\n\t\tfunction setDragDropConfigContainerDecorationCollapse(dragDropConfigModel, indexValue, isCollapsedBool) {\n\t\t\tif (typeof indexValue !== 'undefined' && typeof isCollapsedBool !== 'undefined') {\n\t\t\t\tif (indexValue === parseInt(indexValue, 10)) {\n\t\t\t\t\tdragDropConfigModel.containerConfig.decoration[indexValue].isCollapsed = isCollapsedBool;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction getDragDropConfigModel() {\n\t\t\treturn _dragDropConfigModel;\n\t\t}\n\n\t\tfunction getDistinctItemCssClass() {\n\t\t\tvar distinctCssClass = [];\n\t\t\tangular.forEach(_listDragDropItemCssClasses, function (valueRef) {\n\n\t\t\t\tvar cssClassRef = valueRef.cssClass;\n\n\t\t\t\tif (distinctCssClass.length === 0) {\n\t\t\t\t\tdistinctCssClass.push(cssClassRef);\n\t\t\t\t} else {\n\t\t\t\t\tvar canAdd = true;\n\t\t\t\t\tangular.forEach(distinctCssClass, function (valueProc) {\n\t\t\t\t\t\tvar cssClassProc = valueProc;\n\t\t\t\t\t\tif (cssClassRef === cssClassProc) {\n\t\t\t\t\t\t\tcanAdd = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif (canAdd) distinctCssClass.push(cssClassRef);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn distinctCssClass;\n\t\t}\n\n\t\tfunction getItemCssDependingNumberItemsInRow(numberOfItems) {\n\t\t\tif (typeof numberOfItems !== 'undefined') {\n\t\t\t\tvar classToReturn = '';\n\t\t\t\tfor (var i = _listDragDropItemCssClasses.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (_listDragDropItemCssClasses[i].numberItemPerRow === numberOfItems) {\n\t\t\t\t\t\tclassToReturn = _listDragDropItemCssClasses[i].cssClass;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn classToReturn;\n\t\t\t} else {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\tfunction getListItemCssClass() {\n\t\t\treturn _listDragDropItemCssClasses;\n\t\t}\n\n\t\tfunction getItemsNotToCount() {\n\t\t\treturn _itemsNotToCountFoReal;\n\t\t}\n\n\t\tfunction getModalAnimationValue() {\n\t\t\treturn _configuration.modalAnimated;\n\t\t}\n\n\t\tfunction setModalAnimationFct(value) {\n\t\t\tsetModalAnimation(value);\n\t\t}\n\n\t\tfunction getListEnabledControl() {\n\t\t\treturn angular.copy(_controlsList);\n\t\t}\n\n\t\t// function switchLanguage(language){\n\t\t// \tif (angular.isString(language)) {\n\t\t// \t\t_currentLanguage = language;\n\t\t// \t\t$translate.use(language);\n\t\t// \t}else{\n\t\t// \t\tsetDefaultLanguage();\n\t\t// \t}\n\t\t// }\t\t\t\t\t\n\n\t\tfunction isPreviewPanelVisible() {\n\t\t\treturn _showPreviewPanel;\n\t\t}\n\n\t\tfunction arePreviewModelsVisible() {\n\t\t\treturn _showPreviewModels;\n\t\t}\n\t}\n\n\t/**\n * addToGroupControl : add control to _dragDropPresentationModel\n * @param {[type]} thisControl : control to add\n * @param {[type]} thisGroup : groupId wher this control should be added\n *\n * NOTE : if _dragDropPresentationModel wrong initialized it will create list of group conforming to \n * configModel\n */\n\tfunction addToGroupControl(thisControl, thisGroup) {\n\t\t/**\n * search group if already exists\n */\n\t\tif (_dragDropPresentationModel[0].length > 0) {\n\t\t\t/**\n * case when _dragDropConfigModel.containerConfig.decoration.length is > to _dragDropPresentationModel[0].length\n *\n * for instance : initialization _dragDropPresentationModel[0] in between\n */\n\t\t\tif (_dragDropPresentationModel[0].length < _dragDropConfigModel.containerConfig.decoration.length) {\n\t\t\t\tvar missingGroupNumber = _dragDropConfigModel.containerConfig.decoration.length - _dragDropPresentationModel[0].length;\n\n\t\t\t\tfor (var i = 0; i < missingGroupNumber; i++) {\n\t\t\t\t\t_dragDropPresentationModel[0].push([]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t/**\n * push control to right index \n * (deduced by _dragDropConfigModel.containerConfig.decoration.WhenIndex value for groupId === thisGroup)\n */\n\t\t\t_dragDropConfigModel.containerConfig.decoration.forEach(function (groupConfig) {\n\t\t\t\tif (thisGroup.addToGroupCtrl === groupConfig.groupId) {\n\t\t\t\t\t_dragDropPresentationModel[0][groupConfig.WhenIndex].push(thisControl);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t/**\n * no group no control\n *\n * initialize _dragDropConfigModel.containerConfig.decoration list\n */\n\t\t\t_dragDropConfigModel.containerConfig.decoration.forEach(function () {\n\t\t\t\treturn _dragDropPresentationModel[0].push([]);\n\t\t\t});\n\t\t\t/**\n * push control to right index \n * (deduced by _dragDropConfigModel.containerConfig.decoration.WhenIndex value for groupId === thisGroup)\n */\n\t\t\t_dragDropConfigModel.containerConfig.decoration.forEach(function (groupConfig) {\n\t\t\t\tif (thisGroup.addToGroupCtrl === groupConfig.groupId) {\n\t\t\t\t\t_dragDropPresentationModel[0][groupConfig.WhenIndex].push(thisControl);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n}\n\n// easyFormDragWayConfig.$inject = ['$translateProvider'];\n\neasyFormDragWayConfig.$inject = [];\n\nexports.default = easyFormDragWayConfig;\nexports.EASY_FORM_DRAG_DROP_WAY_CONFIG_NAME = EASY_FORM_DRAG_DROP_WAY_CONFIG_NAME;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLnByb3ZpZGVyLmpzPzE0MDIiXSwibmFtZXMiOlsiRUFTWV9GT1JNX0RSQUdfRFJPUF9XQVlfQ09ORklHX05BTUUiLCJlYXN5Rm9ybURyYWdXYXlDb25maWciLCJfbGlzdERyYWdEcm9wSXRlbUNzc0NsYXNzZXMiLCJjb25jYXQiLCJfZHJhZ0Ryb3BDb25maWdNb2RlbCIsImFuZ3VsYXIiLCJjb3B5IiwiX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwiLCJfaXRlbXNOb3RUb0NvdW50Rm9SZWFsIiwiX2NvbmZpZ3VyYXRpb24iLCJkZWZhdWx0Q29uZmlnIiwiX2NvbnRyb2xzTGlzdCIsImNvbnRyb2xzTGlzdCIsIl9zaG93UHJldmlld1BhbmVsIiwiZ2V0RGVmYXVsdHNob3dQcmV2aWV3UGFuZWwiLCJfc2hvd1ByZXZpZXdNb2RlbHMiLCJnZXREZWZhdWx0U2hvd1ByZXZpZXdNb2RlbCIsIiRnZXQiLCJlYXN5Rm9ybURyYWdEcm9wV2F5Q29uZmlnR0VUIiwic2V0TW9kYWxBbmltYXRpb24iLCJnZXRNb2RhbEFuaW1hdGlvbiIsImNvbmZpZ3VyYXRpb24iLCJnZXRFbmFibGVkQ29udHJvbHMiLCJkaXNhYmxlQ29udHJvbCIsImVuYWJsZUNvbnRyb2wiLCJzaG93UHJldmlld1BhbmVsIiwic2hvd1ByZXZpZXdNb2RlbHMiLCJzZXRMaXN0SXRlbUNzc0NsYXNzIiwiZ2V0SXRlbXNOb3RUb2NvdW50Iiwic2V0SXRlbXNOb3RUb2NvdW50IiwiYWRkQ29udHJvbFRvRHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCIsImdldERyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwiLCJmcm9tQ29uZmlnIiwiX2RlZmF1bHRDb25maWd1cmF0aW9uIiwibW9kYWxBbmltYXRlZCIsImNvbnRyb2xUb0FkZCIsImdyb3VwVG9BZGQiLCJhZGRUb0dyb3VwQ29udHJvbCIsImNvbnRyb2xzIiwibmFtZSIsImVuYWJsZWQiLCJ3YW50VG9TaG93IiwiaXNEZWZpbmVkIiwiY29udHJvbE5hbWUiLCJpc1N0cmluZyIsImZvckVhY2giLCJhQ29udHJvbCIsImZsYWdDb25maWciLCJ2YWx1ZVRvQXBwbHkiLCIkaW5qZWN0Iiwic2VydmljZSIsInNldE1vZGFsQW5pbWF0aW9uRmN0IiwiZ2V0TW9kYWxBbmltYXRpb25WYWx1ZSIsImdldExpc3RFbmFibGVkQ29udHJvbCIsImlzUHJldmlld1BhbmVsVmlzaWJsZSIsImFyZVByZXZpZXdNb2RlbHNWaXNpYmxlIiwiZ2V0TGlzdEl0ZW1Dc3NDbGFzcyIsImdldEl0ZW1zTm90VG9Db3VudCIsImdldEl0ZW1Dc3NEZXBlbmRpbmdOdW1iZXJJdGVtc0luUm93IiwiZ2V0RGlzdGluY3RJdGVtQ3NzQ2xhc3MiLCJnZXREcmFnRHJvcENvbmZpZ01vZGVsIiwic2V0RHJhZ0Ryb3BDb25maWdDb250YWluZXJEZWNvcmF0aW9uQ29sbGFwc2UiLCJkcmFnRHJvcENvbmZpZ01vZGVsIiwiaW5kZXhWYWx1ZSIsImlzQ29sbGFwc2VkQm9vbCIsInBhcnNlSW50IiwiY29udGFpbmVyQ29uZmlnIiwiZGVjb3JhdGlvbiIsImlzQ29sbGFwc2VkIiwiZGlzdGluY3RDc3NDbGFzcyIsInZhbHVlUmVmIiwiY3NzQ2xhc3NSZWYiLCJjc3NDbGFzcyIsImxlbmd0aCIsInB1c2giLCJjYW5BZGQiLCJ2YWx1ZVByb2MiLCJjc3NDbGFzc1Byb2MiLCJudW1iZXJPZkl0ZW1zIiwiY2xhc3NUb1JldHVybiIsImkiLCJudW1iZXJJdGVtUGVyUm93IiwidmFsdWUiLCJ0aGlzQ29udHJvbCIsInRoaXNHcm91cCIsIm1pc3NpbmdHcm91cE51bWJlciIsImdyb3VwQ29uZmlnIiwiYWRkVG9Hcm91cEN0cmwiLCJncm91cElkIiwiV2hlbkluZGV4Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBT0EsSUFBTUEsc0NBQXNDLHVCQUE1QyxDLENBVEE7O0FBV0EsU0FBU0MscUJBQVQsR0FBaUM7O0FBRWhDLEtBQUlDLDhCQUFvQyxHQUFHQyxNQUFILGtGQUF4QztBQUNBLEtBQUlDLHVCQUFpQ0MsUUFBUUMsSUFBUix5RUFBckM7QUFDQSxLQUFJQyw2QkFBb0MsR0FBR0osTUFBSCwrRUFBeEM7QUFDQSxLQUFJSyx5QkFBa0NILFFBQVFDLElBQVIsOEVBQXRDOztBQUVBLEtBQUlHLGlCQUE4QkMsZUFBbEM7QUFDQSxLQUFJQyxnQkFBNkJDLGNBQWpDO0FBQ0E7QUFDQTtBQUNBLEtBQUlDLG9CQUErQkMsNEJBQW5DO0FBQ0EsS0FBSUMscUJBQStCQyw0QkFBbkM7QUFDQTtBQUNBLE1BQUtDLElBQUwsR0FBNkJDLDRCQUE3QjtBQUNBLE1BQUtDLGlCQUFMLEdBQW9DQSxpQkFBcEM7QUFDQSxNQUFLQyxpQkFBTCxHQUFtQ0EsaUJBQW5DO0FBQ0EsTUFBS0MsYUFBTCxHQUFpQ1osY0FBakM7QUFDQSxNQUFLYSxrQkFBTCxHQUFvQ0Esa0JBQXBDO0FBQ0EsTUFBS0MsY0FBTCxHQUFrQ0EsY0FBbEM7QUFDQSxNQUFLQyxhQUFMLEdBQWlDQSxhQUFqQztBQUNBO0FBQ0E7QUFDQSxNQUFLQyxnQkFBTCxHQUFtQ0EsZ0JBQW5DO0FBQ0EsTUFBS0MsaUJBQUwsR0FBbUNBLGlCQUFuQzs7QUFFQSxNQUFLQyxtQkFBTCxHQUFxQ0EsbUJBQXJDO0FBQ0EsTUFBS0Msa0JBQUwsR0FBcUNBLGtCQUFyQztBQUNBLE1BQUtDLGtCQUFMLEdBQW9DQSxrQkFBcEM7QUFDQSxNQUFLQyxxQ0FBTCxHQUE4Q0EscUNBQTlDO0FBQ0EsTUFBS0MsNEJBQUwsR0FBeUNBLDRCQUF6Qzs7QUFFQSxVQUFTSixtQkFBVCxDQUE2QkssVUFBN0IsRUFBeUM7QUFDeEM5QixnQ0FBOEIsR0FBR0MsTUFBSCxDQUFVNkIsVUFBVixDQUE5QjtBQUNBOztBQUVELFVBQVNKLGtCQUFULEdBQThCO0FBQzdCLFNBQU9wQixzQkFBUDtBQUNBOztBQUVELFVBQVNxQixrQkFBVCxDQUE0QkcsVUFBNUIsRUFBd0M7QUFDdkN4QiwyQkFBeUJILFFBQVFDLElBQVIsQ0FBYTBCLFVBQWIsQ0FBekI7QUFDQTs7QUFFRDtBQUNBLFVBQVN0QixhQUFULEdBQXlCO0FBQ3hCLE1BQUt1Qix3QkFBd0I7QUFDNUJDLGtCQUFnQjtBQURZLEdBQTdCO0FBR0EsU0FBT0QscUJBQVA7QUFDQTs7QUFFRCxVQUFTSCxxQ0FBVCxDQUErQ0ssWUFBL0MsRUFBNkRDLFVBQTdELEVBQXlFO0FBQ3RFLE1BQUksT0FBT0QsWUFBUCxLQUF3QixXQUF4QixJQUNBLE9BQU9DLFVBQVAsS0FBd0IsV0FENUIsRUFDeUM7QUFDdkNDLHFCQUFrQkYsWUFBbEIsRUFBZ0NDLFVBQWhDO0FBQ0Q7QUFDSDs7QUFFQSxVQUFTTCw0QkFBVCxHQUF1QztBQUNyQyxTQUFPeEIsMEJBQVA7QUFDRDs7QUFFRjtBQUNBLFVBQVNPLDBCQUFULEdBQXFDO0FBQ3BDLFNBQU8sSUFBUDtBQUNBOztBQUVEO0FBQ0EsVUFBU0UsMEJBQVQsR0FBcUM7QUFDcEMsU0FBTyxJQUFQO0FBQ0E7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBU0osWUFBVCxHQUF1QjtBQUN0QixNQUFJMEIsV0FBVyxDQUNkLEVBQUNDLE1BQU0sT0FBUCxFQUFxQkMsU0FBUyxJQUE5QixFQURjLEVBRWQsRUFBQ0QsTUFBTSxRQUFQLEVBQXNCQyxTQUFTLElBQS9CLEVBRmMsRUFHZCxFQUFDRCxNQUFNLFVBQVAsRUFBdUJDLFNBQVMsSUFBaEMsRUFIYyxFQUlkLEVBQUNELE1BQU0sV0FBUCxFQUF1QkMsU0FBUyxJQUFoQyxFQUpjLEVBS2QsRUFBQ0QsTUFBTSxVQUFQLEVBQXVCQyxTQUFTLElBQWhDLEVBTGMsRUFNZCxFQUFDRCxNQUFNLE9BQVAsRUFBcUJDLFNBQVMsSUFBOUIsRUFOYyxFQU9kLEVBQUNELE1BQU0sTUFBUCxFQUFxQkMsU0FBUyxJQUE5QixFQVBjLEVBUWQsRUFBQ0QsTUFBTSxTQUFQLEVBQXVCQyxTQUFTLElBQWhDLEVBUmMsRUFTZCxFQUFDRCxNQUFNLGdCQUFQLEVBQTBCQyxTQUFTLElBQW5DLEVBVGMsRUFVZCxFQUFDRCxNQUFNLE9BQVAsRUFBcUJDLFNBQVMsSUFBOUIsRUFWYyxFQVdkLEVBQUNELE1BQU0sVUFBUCxFQUF1QkMsU0FBUyxJQUFoQyxFQVhjLEVBWWQsRUFBQ0QsTUFBTSxhQUFQLEVBQXdCQyxTQUFTLElBQWpDLEVBWmMsRUFhZCxFQUFDRCxNQUFNLGVBQVAsRUFBeUJDLFNBQVMsSUFBbEMsRUFiYyxDQUFmO0FBZUEsU0FBT0YsUUFBUDtBQUNBOztBQUVELFVBQVNiLGdCQUFULENBQTBCZ0IsVUFBMUIsRUFBcUM7QUFDcEMsTUFBSXBDLFFBQVFxQyxTQUFSLENBQWtCRCxVQUFsQixDQUFKLEVBQW1DO0FBQ2xDLE9BQUdBLGVBQWUsSUFBbEIsRUFBeUI1QixvQkFBcUIsSUFBckI7QUFDekIsT0FBRzRCLGVBQWUsS0FBbEIsRUFBMEI1QixvQkFBcUIsS0FBckI7QUFDMUI7QUFDRDs7QUFFRCxVQUFTYSxpQkFBVCxDQUEyQmUsVUFBM0IsRUFBc0M7QUFDckMsTUFBSXBDLFFBQVFxQyxTQUFSLENBQWtCRCxVQUFsQixDQUFKLEVBQW1DO0FBQ2xDLE9BQUdBLGVBQWUsSUFBbEIsRUFBeUIxQixxQkFBc0IsSUFBdEI7QUFDekIsT0FBRzBCLGVBQWUsS0FBbEIsRUFBMEIxQixxQkFBc0IsS0FBdEI7QUFDMUI7QUFDRDs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsVUFBU08sa0JBQVQsR0FBOEI7QUFDN0IsU0FBT1gsYUFBUDtBQUNBOztBQUVELFVBQVNZLGNBQVQsQ0FBd0JvQixXQUF4QixFQUFxQztBQUNwQyxNQUFJdEMsUUFBUXVDLFFBQVIsQ0FBaUJELFdBQWpCLENBQUosRUFBbUM7QUFDbEN0QyxXQUFRd0MsT0FBUixDQUFnQmxDLGFBQWhCLEVBQStCLFVBQUNtQyxRQUFELEVBQWM7QUFDNUMsUUFBSUEsU0FBU1AsSUFBVCxLQUFrQkksV0FBdEIsRUFBbUNHLFNBQVNOLE9BQVQsR0FBbUIsS0FBbkI7QUFDbkMsSUFGRDtBQUdBO0FBQ0Q7O0FBRUQsVUFBU2hCLGFBQVQsQ0FBdUJtQixXQUF2QixFQUFvQztBQUNuQyxNQUFJdEMsUUFBUXVDLFFBQVIsQ0FBaUJELFdBQWpCLENBQUosRUFBbUM7QUFDbEN0QyxXQUFRd0MsT0FBUixDQUFnQmxDLGFBQWhCLEVBQStCLFVBQUNtQyxRQUFELEVBQWM7QUFDNUMsUUFBSUEsU0FBU1AsSUFBVCxLQUFrQkksV0FBdEIsRUFBbUNHLFNBQVNOLE9BQVQsR0FBbUIsSUFBbkI7QUFDbkMsSUFGRDtBQUdBO0FBQ0Q7O0FBRUQsVUFBU3JCLGlCQUFULENBQTJCNEIsVUFBM0IsRUFBdUM7QUFDdEMsTUFBSUMsZUFBZ0JELGVBQWUsSUFBaEIsR0FDUkEsVUFEUSxHQUVOQSxlQUFlLEtBQWYsR0FDREEsVUFEQyxHQUVBdEMsZUFBZXlCLGFBSjVCOztBQU1BekIsaUJBQWV5QixhQUFmLEdBQStCYyxZQUEvQjtBQUNBOztBQUVELFVBQVM1QixpQkFBVCxHQUE2QjtBQUM1QixTQUFPWCxlQUFleUIsYUFBdEI7QUFDQTs7QUFHRDtBQUNBO0FBQ0E7QUFDQWhCLDhCQUE2QitCLE9BQTdCLEdBQXVDLEVBQXZDO0FBQ0EsVUFBUy9CLDRCQUFULEdBQXVDOztBQUV0QyxNQUFJZ0MsVUFBVTtBQUNiL0Isc0JBQTZCZ0Msb0JBRGhCO0FBRWJDLDJCQUFnQ0Esc0JBRm5CO0FBR2JDLDBCQUErQkEscUJBSGxCO0FBSWI7QUFDQTtBQUNBQywwQkFBK0JBLHFCQU5sQjtBQU9iQyw0QkFBZ0NBLHVCQVBuQjs7QUFTYkMsd0JBQThCQSxtQkFUakI7QUFVYkMsdUJBQThCQSxrQkFWakI7QUFXYkMsd0NBQXNDQSxtQ0FYekI7QUFZYkMsNEJBQWdDQSx1QkFabkI7QUFhYkMsMkJBQWdDQSxzQkFibkI7QUFjYjdCLGlDQUFtQ0EsNEJBZHRCO0FBZWI4QixpREFBK0NBO0FBZmxDLEdBQWQ7QUFpQkEsU0FBT1gsT0FBUDs7QUFFQSxXQUFTbkIsNEJBQVQsR0FBd0M7QUFDdkMsVUFBT3hCLDBCQUFQO0FBQ0E7O0FBRUQsV0FBU3NELDRDQUFULENBQXNEQyxtQkFBdEQsRUFBMkVDLFVBQTNFLEVBQXVGQyxlQUF2RixFQUF3RztBQUNwRyxPQUFJLE9BQU9ELFVBQVAsS0FBNEIsV0FBNUIsSUFDTCxPQUFPQyxlQUFQLEtBQTRCLFdBRDNCLEVBQ3dDO0FBQ3RDLFFBQUlELGVBQWVFLFNBQVNGLFVBQVQsRUFBcUIsRUFBckIsQ0FBbkIsRUFBNkM7QUFDM0NELHlCQUFvQkksZUFBcEIsQ0FBb0NDLFVBQXBDLENBQStDSixVQUEvQyxFQUEyREssV0FBM0QsR0FBeUVKLGVBQXpFO0FBQ0Q7QUFDRjtBQUNILFVBQU8sSUFBUDtBQUNEOztBQUdELFdBQVNKLHNCQUFULEdBQWtDO0FBQ2pDLFVBQU94RCxvQkFBUDtBQUNBOztBQUVELFdBQVN1RCx1QkFBVCxHQUFtQztBQUMvQixPQUFJVSxtQkFBbUIsRUFBdkI7QUFDQWhFLFdBQVF3QyxPQUFSLENBQWdCM0MsMkJBQWhCLEVBQTZDLFVBQUNvRSxRQUFELEVBQVk7O0FBRXZELFFBQUlDLGNBQWNELFNBQVNFLFFBQTNCOztBQUVBLFFBQUlILGlCQUFpQkksTUFBakIsS0FBNEIsQ0FBaEMsRUFBa0M7QUFDaENKLHNCQUFpQkssSUFBakIsQ0FBc0JILFdBQXRCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsU0FBSUksU0FBUyxJQUFiO0FBQ0F0RSxhQUFRd0MsT0FBUixDQUFnQndCLGdCQUFoQixFQUFrQyxVQUFDTyxTQUFELEVBQWE7QUFDN0MsVUFBSUMsZUFBZUQsU0FBbkI7QUFDQSxVQUFJTCxnQkFBZ0JNLFlBQXBCLEVBQWtDO0FBQ2hDRixnQkFBUyxLQUFUO0FBQ0Q7QUFDRixNQUxEO0FBTUEsU0FBSUEsTUFBSixFQUFZTixpQkFBaUJLLElBQWpCLENBQXNCSCxXQUF0QjtBQUNiO0FBQ0YsSUFoQkQ7QUFpQkEsVUFBT0YsZ0JBQVA7QUFDSDs7QUFFRCxXQUFTWCxtQ0FBVCxDQUE2Q29CLGFBQTdDLEVBQTREO0FBQ3hELE9BQUcsT0FBT0EsYUFBUCxLQUF5QixXQUE1QixFQUF3QztBQUN0QyxRQUFJQyxnQkFBZ0IsRUFBcEI7QUFDQSxTQUFLLElBQUtDLElBQUk5RSw0QkFBNEJ1RSxNQUE1QixHQUFxQyxDQUFuRCxFQUFzRE8sS0FBSyxDQUEzRCxFQUE4REEsR0FBOUQsRUFBbUU7QUFDakUsU0FBSTlFLDRCQUE0QjhFLENBQTVCLEVBQStCQyxnQkFBL0IsS0FBb0RILGFBQXhELEVBQXVFO0FBQ3JFQyxzQkFBZ0I3RSw0QkFBNEI4RSxDQUE1QixFQUErQlIsUUFBL0M7QUFDRDtBQUNGO0FBQ0QsV0FBT08sYUFBUDtBQUNELElBUkQsTUFRSztBQUNILFdBQU8sRUFBUDtBQUNEO0FBQ0o7O0FBRUQsV0FBU3ZCLG1CQUFULEdBQStCO0FBQzlCLFVBQU90RCwyQkFBUDtBQUNBOztBQUVELFdBQVN1RCxrQkFBVCxHQUE4QjtBQUM3QixVQUFPakQsc0JBQVA7QUFDQTs7QUFFRCxXQUFTNEMsc0JBQVQsR0FBaUM7QUFDaEMsVUFBTzNDLGVBQWV5QixhQUF0QjtBQUNBOztBQUVELFdBQVNpQixvQkFBVCxDQUE4QitCLEtBQTlCLEVBQW9DO0FBQ25DL0QscUJBQWtCK0QsS0FBbEI7QUFDQTs7QUFFRCxXQUFTN0IscUJBQVQsR0FBZ0M7QUFDL0IsVUFBT2hELFFBQVFDLElBQVIsQ0FBYUssYUFBYixDQUFQO0FBQ0E7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxXQUFTMkMscUJBQVQsR0FBZ0M7QUFDL0IsVUFBT3pDLGlCQUFQO0FBQ0E7O0FBRUQsV0FBUzBDLHVCQUFULEdBQWtDO0FBQ2pDLFVBQU94QyxrQkFBUDtBQUNBO0FBQ0Q7O0FBRUE7Ozs7Ozs7O0FBUUEsVUFBU3NCLGlCQUFULENBQTJCOEMsV0FBM0IsRUFBd0NDLFNBQXhDLEVBQWtEO0FBQ2hEOzs7QUFHQSxNQUFJN0UsMkJBQTJCLENBQTNCLEVBQThCa0UsTUFBOUIsR0FBdUMsQ0FBM0MsRUFBOEM7QUFDNUM7Ozs7O0FBS0EsT0FBSWxFLDJCQUEyQixDQUEzQixFQUE4QmtFLE1BQTlCLEdBQXVDckUscUJBQXFCOEQsZUFBckIsQ0FBcUNDLFVBQXJDLENBQWdETSxNQUEzRixFQUFtRztBQUNqRyxRQUFJWSxxQkFBcUJqRixxQkFBcUI4RCxlQUFyQixDQUFxQ0MsVUFBckMsQ0FBZ0RNLE1BQWhELEdBQXlEbEUsMkJBQTJCLENBQTNCLEVBQThCa0UsTUFBaEg7O0FBRUEsU0FBSyxJQUFJTyxJQUFJLENBQWIsRUFBZ0JBLElBQUlLLGtCQUFwQixFQUF3Q0wsR0FBeEMsRUFBNkM7QUFDM0N6RSxnQ0FBMkIsQ0FBM0IsRUFBOEJtRSxJQUE5QixDQUFtQyxFQUFuQztBQUNEO0FBQ0Y7QUFDRDs7OztBQUlDdEUsd0JBQXFCOEQsZUFBckIsQ0FBcUNDLFVBQXJDLENBQWdEdEIsT0FBaEQsQ0FBd0QsVUFBQ3lDLFdBQUQsRUFBZTtBQUN0RSxRQUFJRixVQUFVRyxjQUFWLEtBQTZCRCxZQUFZRSxPQUE3QyxFQUFzRDtBQUNwRGpGLGdDQUEyQixDQUEzQixFQUE4QitFLFlBQVlHLFNBQTFDLEVBQXFEZixJQUFyRCxDQUEwRFMsV0FBMUQ7QUFDRDtBQUNELElBSkQ7QUFLRixHQXRCRCxNQXNCSztBQUNIOzs7OztBQUtBL0Usd0JBQXFCOEQsZUFBckIsQ0FBcUNDLFVBQXJDLENBQWdEdEIsT0FBaEQsQ0FBd0Q7QUFBQSxXQUFJdEMsMkJBQTJCLENBQTNCLEVBQThCbUUsSUFBOUIsQ0FBbUMsRUFBbkMsQ0FBSjtBQUFBLElBQXhEO0FBQ0E7Ozs7QUFJQ3RFLHdCQUFxQjhELGVBQXJCLENBQXFDQyxVQUFyQyxDQUFnRHRCLE9BQWhELENBQXdELFVBQUN5QyxXQUFELEVBQWU7QUFDdEUsUUFBSUYsVUFBVUcsY0FBVixLQUE2QkQsWUFBWUUsT0FBN0MsRUFBc0Q7QUFDcERqRixnQ0FBMkIsQ0FBM0IsRUFBOEIrRSxZQUFZRyxTQUExQyxFQUFxRGYsSUFBckQsQ0FBMERTLFdBQTFEO0FBQ0Q7QUFDRCxJQUpEO0FBS0Y7QUFDRjtBQUVGOztBQUVEOztBQUVBbEYsc0JBQXNCZ0QsT0FBdEIsR0FBZ0MsRUFBaEM7O2tCQUVlaEQscUI7UUFFUEQsbUMsR0FBQUEsbUMiLCJmaWxlIjoiNzguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPIDogQWRkIGhlcmUgY29uZmlncyBmcm9tIEVTNSBkcmFnRHJvcENvbmZpZ1Byb3ZpZGVyXG5cbmltcG9ydCB7XG4gIExJU1RfRFJBR19EUk9QX0lURU1fQ1NTX0NMQVNTRVMsXG4gIERSQUdfRFJPUF9DT05GSUdfTU9ERUwsXG4gIERSQUdfRFJPUF9QUkVTRU5UQVRJT05fTU9ERUwsXG4gIElURU1TX05PVF9UT19DT1VOVF9GT1JfUkVBTFxufSBcdGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkuZWRhRHJhZ2Ryb3BXYXlFYXN5Rm9ybUdlbi5wcm92aWRlci5oZWxwZXJzJztcblxuY29uc3QgRUFTWV9GT1JNX0RSQUdfRFJPUF9XQVlfQ09ORklHX05BTUUgPSAnZWFzeUZvcm1EcmFnV2F5Q29uZmlnJztcblxuZnVuY3Rpb24gZWFzeUZvcm1EcmFnV2F5Q29uZmlnKCkge1xuXG5cdGxldCBfbGlzdERyYWdEcm9wSXRlbUNzc0NsYXNzZXMgXHRcdFx0XHRcdFx0PSBbXS5jb25jYXQoTElTVF9EUkFHX0RST1BfSVRFTV9DU1NfQ0xBU1NFUyk7XG5cdGxldCBfZHJhZ0Ryb3BDb25maWdNb2RlbCBcdFx0XHRcdFx0XHRcdFx0XHRcdD0gYW5ndWxhci5jb3B5KERSQUdfRFJPUF9DT05GSUdfTU9ERUwpO1xuXHRsZXQgX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwgXHRcdFx0XHRcdFx0XHQ9IFtdLmNvbmNhdChEUkFHX0RST1BfUFJFU0VOVEFUSU9OX01PREVMKTtcblx0bGV0IF9pdGVtc05vdFRvQ291bnRGb1JlYWwgXHRcdFx0XHRcdFx0XHRcdFx0PSBhbmd1bGFyLmNvcHkoSVRFTVNfTk9UX1RPX0NPVU5UX0ZPUl9SRUFMKTtcblxuXHRsZXQgX2NvbmZpZ3VyYXRpb24gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ9IGRlZmF1bHRDb25maWcoKTtcblx0bGV0IF9jb250cm9sc0xpc3RcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PSBjb250cm9sc0xpc3QoKTtcblx0Ly8gbGV0IF9kZWZhdWx0TGFuZ3VhZ2VcdFx0PSBnZXREZWZhdWx0TGFuZ3VhZ2UoKTtcblx0Ly8gbGV0IF9jdXJyZW50TGFuZ3VhZ2VcdFx0PSBpbml0RGVmYXVsdExhbmd1YWdlKCk7XG5cdGxldCBfc2hvd1ByZXZpZXdQYW5lbFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD0gZ2V0RGVmYXVsdHNob3dQcmV2aWV3UGFuZWwoKTtcblx0bGV0IF9zaG93UHJldmlld01vZGVsc1x0XHRcdFx0XHRcdFx0XHRcdFx0XHQ9IGdldERlZmF1bHRTaG93UHJldmlld01vZGVsKCk7XHRcblx0LyoganNoaW50IHZhbGlkdGhpczp0cnVlICovXG5cdHRoaXMuJGdldCBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PSBlYXN5Rm9ybURyYWdEcm9wV2F5Q29uZmlnR0VUO1xuXHR0aGlzLnNldE1vZGFsQW5pbWF0aW9uIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ9IHNldE1vZGFsQW5pbWF0aW9uO1xuXHR0aGlzLmdldE1vZGFsQW5pbWF0aW9uXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD0gZ2V0TW9kYWxBbmltYXRpb247XG5cdHRoaXMuY29uZmlndXJhdGlvblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PSBfY29uZmlndXJhdGlvbjtcblx0dGhpcy5nZXRFbmFibGVkQ29udHJvbHMgXHRcdFx0XHRcdFx0XHRcdFx0XHQ9IGdldEVuYWJsZWRDb250cm9scztcblx0dGhpcy5kaXNhYmxlQ29udHJvbFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PSBkaXNhYmxlQ29udHJvbDtcblx0dGhpcy5lbmFibGVDb250cm9sXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ9IGVuYWJsZUNvbnRyb2w7XG5cdC8vIHRoaXMuc2V0TGFuZ3VhZ2VcdFx0XHRcdD0gc2V0TGFuZ3VhZ2U7XG5cdC8vIHRoaXMuZ2V0Q3VycmVudExhbmd1YWdlXHQ9IGdldEN1cnJlbnRMYW5ndWFnZTtcblx0dGhpcy5zaG93UHJldmlld1BhbmVsXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PSBzaG93UHJldmlld1BhbmVsO1xuXHR0aGlzLnNob3dQcmV2aWV3TW9kZWxzXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD0gc2hvd1ByZXZpZXdNb2RlbHM7XHRcblxuXHR0aGlzLnNldExpc3RJdGVtQ3NzQ2xhc3MgXHRcdFx0XHRcdFx0XHRcdFx0XHQ9IHNldExpc3RJdGVtQ3NzQ2xhc3M7XG5cdHRoaXMuZ2V0SXRlbXNOb3RUb2NvdW50XHQgXHRcdFx0XHRcdFx0XHRcdFx0XHQ9IGdldEl0ZW1zTm90VG9jb3VudDtcblx0dGhpcy5zZXRJdGVtc05vdFRvY291bnQgXHRcdFx0XHRcdFx0XHRcdFx0XHQ9IHNldEl0ZW1zTm90VG9jb3VudDtcblx0dGhpcy5hZGRDb250cm9sVG9EcmFnRHJvcFByZXNlbnRhdGlvbk1vZGVsIFx0PSBhZGRDb250cm9sVG9EcmFnRHJvcFByZXNlbnRhdGlvbk1vZGVsO1xuXHR0aGlzLmdldERyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwgXHRcdFx0XHRcdD0gZ2V0RHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbDtcblxuXHRmdW5jdGlvbiBzZXRMaXN0SXRlbUNzc0NsYXNzKGZyb21Db25maWcpIHtcblx0XHRfbGlzdERyYWdEcm9wSXRlbUNzc0NsYXNzZXMgPSBbXS5jb25jYXQoZnJvbUNvbmZpZyk7XG5cdH1cblxuXHRmdW5jdGlvbiBnZXRJdGVtc05vdFRvY291bnQoKSB7XG5cdFx0cmV0dXJuIF9pdGVtc05vdFRvQ291bnRGb1JlYWw7XG5cdH1cblxuXHRmdW5jdGlvbiBzZXRJdGVtc05vdFRvY291bnQoZnJvbUNvbmZpZykge1xuXHRcdF9pdGVtc05vdFRvQ291bnRGb1JlYWwgPSBhbmd1bGFyLmNvcHkoZnJvbUNvbmZpZyk7XHRcblx0fVxuXG5cdC8vc2V0IGRlZmF1bHQgY29uZmlnXG5cdGZ1bmN0aW9uIGRlZmF1bHRDb25maWcoKSB7XG5cdFx0bGV0ICBfZGVmYXVsdENvbmZpZ3VyYXRpb24gPSB7XG5cdFx0XHRtb2RhbEFuaW1hdGVkIDogZmFsc2Vcblx0XHR9O1xuXHRcdHJldHVybiBfZGVmYXVsdENvbmZpZ3VyYXRpb247XG5cdH1cblxuXHRmdW5jdGlvbiBhZGRDb250cm9sVG9EcmFnRHJvcFByZXNlbnRhdGlvbk1vZGVsKGNvbnRyb2xUb0FkZCwgZ3JvdXBUb0FkZCkge1xuICAgIGlmICh0eXBlb2YgY29udHJvbFRvQWRkICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICB0eXBlb2YgZ3JvdXBUb0FkZCAgICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgYWRkVG9Hcm91cENvbnRyb2woY29udHJvbFRvQWRkLCBncm91cFRvQWRkKTtcbiAgICB9XHRcdFxuXHR9XG5cbiAgZnVuY3Rpb24gZ2V0RHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCgpe1xuICAgIHJldHVybiBfZHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbDtcbiAgfVx0XG5cdFxuXHQvL3Nob3cgcHJldmlldyBwYW5lbCBieSBkZWZhdWx0XG5cdGZ1bmN0aW9uIGdldERlZmF1bHRzaG93UHJldmlld1BhbmVsKCl7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cdFxuXHRcblx0Ly9zaG93IHByZXZpZXcgZGF0YSwgZmllbGRzIG1vZGVscyBpbiBwcmV2aWV3IHBhbmVsXG5cdGZ1bmN0aW9uIGdldERlZmF1bHRTaG93UHJldmlld01vZGVsKCl7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cdFxuXHRcblx0Ly8gZnVuY3Rpb24gZ2V0Q3VycmVudExhbmd1YWdlKCl7XG5cdC8vIFx0XHRyZXR1cm4gX2N1cnJlbnRMYW5ndWFnZTtcblx0Ly8gfVx0XG5cdFxuXHQvL2xpc3Qgb2YgY29udHJvbHNcblx0ZnVuY3Rpb24gY29udHJvbHNMaXN0KCl7XG5cdFx0bGV0IGNvbnRyb2xzID0gW1xuXHRcdFx0e25hbWU6ICdlbXB0eScsIFx0XHRcdFx0XHRlbmFibGVkOiB0cnVlfSxcblx0XHRcdHtuYW1lOiAnSGVhZGVyJywgXHRcdFx0XHRcdGVuYWJsZWQ6IHRydWV9LFxuXHRcdFx0e25hbWU6ICdTdWJ0aXRsZScsIFx0XHRcdFx0ZW5hYmxlZDogdHJ1ZX0sXG5cdFx0XHR7bmFtZTogJ1RleHRJbnB1dCcsIFx0XHRcdGVuYWJsZWQ6IHRydWV9LFxuXHRcdFx0e25hbWU6ICdQYXNzd29yZCcsIFx0XHRcdFx0ZW5hYmxlZDogdHJ1ZX0sXG5cdFx0XHR7bmFtZTogJ0VtYWlsJywgXHRcdFx0XHRcdGVuYWJsZWQ6IHRydWV9LFxuXHRcdFx0e25hbWU6ICdEYXRlJywgXHRcdFx0XHRcdFx0ZW5hYmxlZDogdHJ1ZX0sXG5cdFx0XHR7bmFtZTogJ1RleGFyZWEnLFx0IFx0XHRcdFx0ZW5hYmxlZDogdHJ1ZX0sXG5cdFx0XHR7bmFtZTogJ1JpY2hUZXh0RWRpdG9yJywgXHRlbmFibGVkOiB0cnVlfSxcblx0XHRcdHtuYW1lOiAnUmFkaW8nLCBcdFx0XHRcdFx0ZW5hYmxlZDogdHJ1ZX0sXG5cdFx0XHR7bmFtZTogJ0NoZWNrYm94JywgXHRcdFx0XHRlbmFibGVkOiB0cnVlfSxcblx0XHRcdHtuYW1lOiAnQmFzaWNTZWxlY3QnLCBcdFx0ZW5hYmxlZDogdHJ1ZX0sXG5cdFx0XHR7bmFtZTogJ0dyb3VwZWRTZWxlY3QnLCBcdGVuYWJsZWQ6IHRydWV9XG5cdFx0XTtcblx0XHRyZXR1cm4gY29udHJvbHM7XG5cdH1cblx0XG5cdGZ1bmN0aW9uIHNob3dQcmV2aWV3UGFuZWwod2FudFRvU2hvdyl7XG5cdFx0aWYgKGFuZ3VsYXIuaXNEZWZpbmVkKHdhbnRUb1Nob3cpKSB7XG5cdFx0XHRpZih3YW50VG9TaG93ID09PSB0cnVlKSBcdF9zaG93UHJldmlld1BhbmVsIFx0PSB0cnVlO1xuXHRcdFx0aWYod2FudFRvU2hvdyA9PT0gZmFsc2UpIFx0X3Nob3dQcmV2aWV3UGFuZWwgXHQ9IGZhbHNlO1xuXHRcdH1cblx0fVxuXHRcblx0ZnVuY3Rpb24gc2hvd1ByZXZpZXdNb2RlbHMod2FudFRvU2hvdyl7XG5cdFx0aWYgKGFuZ3VsYXIuaXNEZWZpbmVkKHdhbnRUb1Nob3cpKSB7XG5cdFx0XHRpZih3YW50VG9TaG93ID09PSB0cnVlKSBcdF9zaG93UHJldmlld01vZGVscyBcdD0gdHJ1ZTtcblx0XHRcdGlmKHdhbnRUb1Nob3cgPT09IGZhbHNlKSBcdF9zaG93UHJldmlld01vZGVscyBcdD0gZmFsc2U7XG5cdFx0fVx0XHRcdFx0XG5cdH1cdFx0XG5cdFxuXHQvLyAvL2xhbmd1YWdlIDogc2V0IGRlZmF1bHQgdG8gZW5nbGlzaFxuXHQvLyBmdW5jdGlvbiBnZXREZWZhdWx0TGFuZ3VhZ2UoKXtcblx0Ly8gXHRsZXQgbGFuZyA9ICdlbic7XG5cdC8vIFx0cmV0dXJuIGxhbmc7XG5cdC8vIH1cblx0XG5cdC8vIGZ1bmN0aW9uIHNldERlZmF1bHRMYW5ndWFnZSgpe1xuXHQvLyBcdF9jdXJyZW50TGFuZ3VhZ2UgPSBfZGVmYXVsdExhbmd1YWdlO1xuXHQvLyBcdCR0cmFuc2xhdGVQcm92aWRlci5wcmVmZXJyZWRMYW5ndWFnZShfY3VycmVudExhbmd1YWdlKTtcblx0Ly8gXHRyZXR1cm4gX2N1cnJlbnRMYW5ndWFnZTtcblx0Ly8gfVx0XG5cdFxuXHQvLyBmdW5jdGlvbiBzZXRMYW5ndWFnZShsYW5ndWFnZSl7XHRcdFx0XHRcblx0Ly8gXHRpZiAoYW5ndWxhci5pc1N0cmluZyhsYW5ndWFnZSkpIHtcblx0Ly8gXHRcdF9jdXJyZW50TGFuZ3VhZ2UgPSBsYW5ndWFnZTtcblx0Ly8gXHRcdCR0cmFuc2xhdGVQcm92aWRlci5wcmVmZXJyZWRMYW5ndWFnZShsYW5ndWFnZSk7XG5cdC8vIFx0fWVsc2V7XG5cdC8vIFx0XHRzZXREZWZhdWx0TGFuZ3VhZ2UoKTtcblx0Ly8gXHR9XG5cdC8vIH1cblx0XG5cdC8vIGZ1bmN0aW9uIGluaXREZWZhdWx0TGFuZ3VhZ2UoKXtcblx0Ly8gXHQkdHJhbnNsYXRlUHJvdmlkZXIudXNlU2FuaXRpemVWYWx1ZVN0cmF0ZWd5KCdlc2NhcGUnKTsgXHQvL3NlY3VyaXR5IDogRW5hYmxlIGVzY2FwaW5nIG9mIEhUTUxcblx0Ly8gXHQkdHJhbnNsYXRlUHJvdmlkZXIuZmFsbGJhY2tMYW5ndWFnZShfZGVmYXVsdExhbmd1YWdlKTtcdC8vZmFsbGJhY2sgbGFuZ3VhZ2UgdG8gZGVmYXVsdCBsYW5ndWFnZVxuXHQvLyBcdCR0cmFuc2xhdGVQcm92aWRlci5wcmVmZXJyZWRMYW5ndWFnZShfZGVmYXVsdExhbmd1YWdlKTtcblx0Ly8gXHRyZXR1cm4gX2RlZmF1bHRMYW5ndWFnZTtcblx0Ly8gfVxuXHRcblx0ZnVuY3Rpb24gZ2V0RW5hYmxlZENvbnRyb2xzKCkge1xuXHRcdHJldHVybiBfY29udHJvbHNMaXN0O1xuXHR9XG5cdFxuXHRmdW5jdGlvbiBkaXNhYmxlQ29udHJvbChjb250cm9sTmFtZSkge1xuXHRcdGlmIChhbmd1bGFyLmlzU3RyaW5nKGNvbnRyb2xOYW1lKSkge1xuXHRcdFx0YW5ndWxhci5mb3JFYWNoKF9jb250cm9sc0xpc3QsIChhQ29udHJvbCkgPT4ge1xuXHRcdFx0XHRpZiAoYUNvbnRyb2wubmFtZSA9PT0gY29udHJvbE5hbWUpIGFDb250cm9sLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdH0pO1x0XHRcdFx0XHRcdFxuXHRcdH1cblx0fVxuXHRcblx0ZnVuY3Rpb24gZW5hYmxlQ29udHJvbChjb250cm9sTmFtZSkge1xuXHRcdGlmIChhbmd1bGFyLmlzU3RyaW5nKGNvbnRyb2xOYW1lKSkge1xuXHRcdFx0YW5ndWxhci5mb3JFYWNoKF9jb250cm9sc0xpc3QsIChhQ29udHJvbCkgPT4ge1xuXHRcdFx0XHRpZiAoYUNvbnRyb2wubmFtZSA9PT0gY29udHJvbE5hbWUpIGFDb250cm9sLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0fSk7XHRcdFx0XHRcdFx0XG5cdFx0fVx0XHRcdFx0XG5cdH1cdFx0XHRcdFx0XHRcblx0XG5cdGZ1bmN0aW9uIHNldE1vZGFsQW5pbWF0aW9uKGZsYWdDb25maWcpIHtcblx0XHRsZXQgdmFsdWVUb0FwcGx5ID0gKGZsYWdDb25maWcgPT09IHRydWUpID8gXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZsYWdDb25maWcgIFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiAoZmxhZ0NvbmZpZyA9PT0gZmFsc2UgPyBcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRmbGFnQ29uZmlnIFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ6IF9jb25maWd1cmF0aW9uLm1vZGFsQW5pbWF0ZWQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0X2NvbmZpZ3VyYXRpb24ubW9kYWxBbmltYXRlZCA9IHZhbHVlVG9BcHBseTtcblx0fVxuXHRcblx0ZnVuY3Rpb24gZ2V0TW9kYWxBbmltYXRpb24oKSB7XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFxuXHRcdHJldHVybiBfY29uZmlndXJhdGlvbi5tb2RhbEFuaW1hdGVkO1xuXHR9XHRcdFxuXHRcblx0XG5cdC8vJGdldCBpbXBsZW1lbnRhdGlvbiA6XG5cdC8vIGVhc3lGb3JtRHJhZ0Ryb3BXYXlDb25maWdHRVQuJGluamVjdCA9IFsnJHRyYW5zbGF0ZSddO1xuXHQvLyBmdW5jdGlvbiBlYXN5Rm9ybURyYWdEcm9wV2F5Q29uZmlnR0VUKCR0cmFuc2xhdGUpe1xuXHRlYXN5Rm9ybURyYWdEcm9wV2F5Q29uZmlnR0VULiRpbmplY3QgPSBbXTtcblx0ZnVuY3Rpb24gZWFzeUZvcm1EcmFnRHJvcFdheUNvbmZpZ0dFVCgpe1x0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRsZXQgc2VydmljZSA9IHtcblx0XHRcdHNldE1vZGFsQW5pbWF0aW9uIFx0XHRcdFx0XHRcdFx0XHRcdDogc2V0TW9kYWxBbmltYXRpb25GY3QsXG5cdFx0XHRnZXRNb2RhbEFuaW1hdGlvblZhbHVlIFx0XHRcdFx0XHRcdFx0OiBnZXRNb2RhbEFuaW1hdGlvblZhbHVlLFxuXHRcdFx0Z2V0TGlzdEVuYWJsZWRDb250cm9sXHRcdFx0XHRcdFx0XHRcdDogZ2V0TGlzdEVuYWJsZWRDb250cm9sLFxuXHRcdFx0Ly8gc2V0TGFuZ3VhZ2UgXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogc3dpdGNoTGFuZ3VhZ2UsXG5cdFx0XHQvLyBnZXRDdXJyZW50TGFuZ3VhZ2VcdFx0XHRcdFx0XHRcdFx0OiBnZXRDdXJyZW50TGFuZ3VhZ2UsXG5cdFx0XHRpc1ByZXZpZXdQYW5lbFZpc2libGVcdFx0XHRcdFx0XHRcdFx0OiBpc1ByZXZpZXdQYW5lbFZpc2libGUsXG5cdFx0XHRhcmVQcmV2aWV3TW9kZWxzVmlzaWJsZVx0XHRcdFx0XHRcdFx0OiBhcmVQcmV2aWV3TW9kZWxzVmlzaWJsZSxcblx0XHRcdFxuXHRcdFx0Z2V0TGlzdEl0ZW1Dc3NDbGFzcyBcdFx0XHRcdFx0XHRcdFx0OiBnZXRMaXN0SXRlbUNzc0NsYXNzLFxuXHRcdFx0Z2V0SXRlbXNOb3RUb0NvdW50IFx0XHRcdFx0XHRcdFx0XHRcdDogZ2V0SXRlbXNOb3RUb0NvdW50LFxuXHRcdFx0Z2V0SXRlbUNzc0RlcGVuZGluZ051bWJlckl0ZW1zSW5Sb3cgOiBnZXRJdGVtQ3NzRGVwZW5kaW5nTnVtYmVySXRlbXNJblJvdyxcblx0XHRcdGdldERpc3RpbmN0SXRlbUNzc0NsYXNzIFx0XHRcdFx0XHRcdDogZ2V0RGlzdGluY3RJdGVtQ3NzQ2xhc3MsXG5cdFx0XHRnZXREcmFnRHJvcENvbmZpZ01vZGVsIFx0XHRcdFx0XHRcdFx0OiBnZXREcmFnRHJvcENvbmZpZ01vZGVsLFxuXHRcdFx0Z2V0RHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCBcdFx0XHRcdDogZ2V0RHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCxcblx0XHRcdHNldERyYWdEcm9wQ29uZmlnQ29udGFpbmVyRGVjb3JhdGlvbkNvbGxhcHNlIDogc2V0RHJhZ0Ryb3BDb25maWdDb250YWluZXJEZWNvcmF0aW9uQ29sbGFwc2Vcblx0XHR9O1xuXHRcdHJldHVybiBzZXJ2aWNlO1xuXHRcdFxuXHRcdGZ1bmN0aW9uIGdldERyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwoKSB7XG5cdFx0XHRyZXR1cm4gX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWw7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gc2V0RHJhZ0Ryb3BDb25maWdDb250YWluZXJEZWNvcmF0aW9uQ29sbGFwc2UoZHJhZ0Ryb3BDb25maWdNb2RlbCwgaW5kZXhWYWx1ZSwgaXNDb2xsYXBzZWRCb29sKSB7XG4gICAgICBpZiAodHlwZW9mIGluZGV4VmFsdWUgICAgICAgIT09ICd1bmRlZmluZWQnICYmXG5cdFx0XHRcdFx0dHlwZW9mIGlzQ29sbGFwc2VkQm9vbCAgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChpbmRleFZhbHVlID09PSBwYXJzZUludChpbmRleFZhbHVlLCAxMCkpIHtcbiAgICAgICAgICBkcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uW2luZGV4VmFsdWVdLmlzQ29sbGFwc2VkID0gaXNDb2xsYXBzZWRCb29sO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgcmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcblxuXHRcdGZ1bmN0aW9uIGdldERyYWdEcm9wQ29uZmlnTW9kZWwoKSB7XG5cdFx0XHRyZXR1cm4gX2RyYWdEcm9wQ29uZmlnTW9kZWw7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gZ2V0RGlzdGluY3RJdGVtQ3NzQ2xhc3MoKSB7XG4gICAgICBsZXQgZGlzdGluY3RDc3NDbGFzcyA9IFtdO1xuICAgICAgYW5ndWxhci5mb3JFYWNoKF9saXN0RHJhZ0Ryb3BJdGVtQ3NzQ2xhc3NlcywgKHZhbHVlUmVmKT0+e1xuXG4gICAgICAgIGxldCBjc3NDbGFzc1JlZiA9IHZhbHVlUmVmLmNzc0NsYXNzO1xuXG4gICAgICAgIGlmIChkaXN0aW5jdENzc0NsYXNzLmxlbmd0aCA9PT0gMCl7XG4gICAgICAgICAgZGlzdGluY3RDc3NDbGFzcy5wdXNoKGNzc0NsYXNzUmVmKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgY2FuQWRkID0gdHJ1ZTtcbiAgICAgICAgICBhbmd1bGFyLmZvckVhY2goZGlzdGluY3RDc3NDbGFzcywgKHZhbHVlUHJvYyk9PntcbiAgICAgICAgICAgIGxldCBjc3NDbGFzc1Byb2MgPSB2YWx1ZVByb2M7XG4gICAgICAgICAgICBpZiAoY3NzQ2xhc3NSZWYgPT09IGNzc0NsYXNzUHJvYykge1xuICAgICAgICAgICAgICBjYW5BZGQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoY2FuQWRkKSBkaXN0aW5jdENzc0NsYXNzLnB1c2goY3NzQ2xhc3NSZWYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBkaXN0aW5jdENzc0NsYXNzO1x0XHRcdFxuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIGdldEl0ZW1Dc3NEZXBlbmRpbmdOdW1iZXJJdGVtc0luUm93KG51bWJlck9mSXRlbXMpIHtcbiAgICAgIGlmKHR5cGVvZiBudW1iZXJPZkl0ZW1zICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICAgIGxldCBjbGFzc1RvUmV0dXJuID0gJyc7XG4gICAgICAgIGZvciAobGV0ICBpID0gX2xpc3REcmFnRHJvcEl0ZW1Dc3NDbGFzc2VzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgaWYgKF9saXN0RHJhZ0Ryb3BJdGVtQ3NzQ2xhc3Nlc1tpXS5udW1iZXJJdGVtUGVyUm93ID09PSBudW1iZXJPZkl0ZW1zKSB7XG4gICAgICAgICAgICBjbGFzc1RvUmV0dXJuID0gX2xpc3REcmFnRHJvcEl0ZW1Dc3NDbGFzc2VzW2ldLmNzc0NsYXNzOyAgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc1RvUmV0dXJuO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cdFx0XHRcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBnZXRMaXN0SXRlbUNzc0NsYXNzKCkge1xuXHRcdFx0cmV0dXJuIF9saXN0RHJhZ0Ryb3BJdGVtQ3NzQ2xhc3NlcztcdFxuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIGdldEl0ZW1zTm90VG9Db3VudCgpIHtcblx0XHRcdHJldHVybiBfaXRlbXNOb3RUb0NvdW50Rm9SZWFsO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIGdldE1vZGFsQW5pbWF0aW9uVmFsdWUoKXtcblx0XHRcdHJldHVybiBfY29uZmlndXJhdGlvbi5tb2RhbEFuaW1hdGVkO1xuXHRcdH1cdFx0XHRcdFxuXHRcdFxuXHRcdGZ1bmN0aW9uIHNldE1vZGFsQW5pbWF0aW9uRmN0KHZhbHVlKXtcblx0XHRcdHNldE1vZGFsQW5pbWF0aW9uKHZhbHVlKTtcblx0XHR9XG5cdFx0XG5cdFx0ZnVuY3Rpb24gZ2V0TGlzdEVuYWJsZWRDb250cm9sKCl7XG5cdFx0XHRyZXR1cm4gYW5ndWxhci5jb3B5KF9jb250cm9sc0xpc3QpO1xuXHRcdH1cblx0XHRcblx0XHQvLyBmdW5jdGlvbiBzd2l0Y2hMYW5ndWFnZShsYW5ndWFnZSl7XG5cdFx0Ly8gXHRpZiAoYW5ndWxhci5pc1N0cmluZyhsYW5ndWFnZSkpIHtcblx0XHQvLyBcdFx0X2N1cnJlbnRMYW5ndWFnZSA9IGxhbmd1YWdlO1xuXHRcdC8vIFx0XHQkdHJhbnNsYXRlLnVzZShsYW5ndWFnZSk7XG5cdFx0Ly8gXHR9ZWxzZXtcblx0XHQvLyBcdFx0c2V0RGVmYXVsdExhbmd1YWdlKCk7XG5cdFx0Ly8gXHR9XG5cdFx0Ly8gfVx0XHRcdFx0XHRcblxuXHRcdGZ1bmN0aW9uIGlzUHJldmlld1BhbmVsVmlzaWJsZSgpe1xuXHRcdFx0cmV0dXJuIF9zaG93UHJldmlld1BhbmVsO1xuXHRcdH1cblx0XHRcblx0XHRmdW5jdGlvbiBhcmVQcmV2aWV3TW9kZWxzVmlzaWJsZSgpe1xuXHRcdFx0cmV0dXJuIF9zaG93UHJldmlld01vZGVscztcblx0XHR9XHRcdFx0XHRcblx0fVxuXG4gIC8qKlxuICAgKiBhZGRUb0dyb3VwQ29udHJvbCA6IGFkZCBjb250cm9sIHRvIF9kcmFnRHJvcFByZXNlbnRhdGlvbk1vZGVsXG4gICAqIEBwYXJhbSB7W3R5cGVdfSB0aGlzQ29udHJvbCA6IGNvbnRyb2wgdG8gYWRkXG4gICAqIEBwYXJhbSB7W3R5cGVdfSB0aGlzR3JvdXAgICA6IGdyb3VwSWQgd2hlciB0aGlzIGNvbnRyb2wgc2hvdWxkIGJlIGFkZGVkXG4gICAqXG4gICAqIE5PVEUgOiBpZiBfZHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCB3cm9uZyBpbml0aWFsaXplZCBpdCB3aWxsIGNyZWF0ZSBsaXN0IG9mIGdyb3VwIGNvbmZvcm1pbmcgdG8gXG4gICAqIGNvbmZpZ01vZGVsXG4gICAqL1xuICBmdW5jdGlvbiBhZGRUb0dyb3VwQ29udHJvbCh0aGlzQ29udHJvbCwgdGhpc0dyb3VwKXtcbiAgICAvKipcbiAgICAgKiBzZWFyY2ggZ3JvdXAgaWYgYWxyZWFkeSBleGlzdHNcbiAgICAgKi9cbiAgICBpZiAoX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWxbMF0ubGVuZ3RoID4gMCkge1xuICAgICAgLyoqXG4gICAgICAgKiBjYXNlIHdoZW4gX2RyYWdEcm9wQ29uZmlnTW9kZWwuY29udGFpbmVyQ29uZmlnLmRlY29yYXRpb24ubGVuZ3RoIGlzID4gdG8gX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWxbMF0ubGVuZ3RoXG4gICAgICAgKlxuICAgICAgICogZm9yIGluc3RhbmNlIDogaW5pdGlhbGl6YXRpb24gX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWxbMF0gaW4gYmV0d2VlblxuICAgICAgICovXG4gICAgICBpZiAoX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWxbMF0ubGVuZ3RoIDwgX2RyYWdEcm9wQ29uZmlnTW9kZWwuY29udGFpbmVyQ29uZmlnLmRlY29yYXRpb24ubGVuZ3RoKSB7XG4gICAgICAgIGxldCBtaXNzaW5nR3JvdXBOdW1iZXIgPSBfZHJhZ0Ryb3BDb25maWdNb2RlbC5jb250YWluZXJDb25maWcuZGVjb3JhdGlvbi5sZW5ndGggLSBfZHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbFswXS5sZW5ndGg7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaXNzaW5nR3JvdXBOdW1iZXI7IGkrKykge1xuICAgICAgICAgIF9kcmFnRHJvcFByZXNlbnRhdGlvbk1vZGVsWzBdLnB1c2goW10pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvKipcbiAgICAgICAqIHB1c2ggY29udHJvbCB0byByaWdodCBpbmRleCBcbiAgICAgICAqIChkZWR1Y2VkIGJ5IF9kcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uLldoZW5JbmRleCB2YWx1ZSBmb3IgZ3JvdXBJZCA9PT0gdGhpc0dyb3VwKVxuICAgICAgICovXG4gICAgICAgX2RyYWdEcm9wQ29uZmlnTW9kZWwuY29udGFpbmVyQ29uZmlnLmRlY29yYXRpb24uZm9yRWFjaCgoZ3JvdXBDb25maWcpPT57XG4gICAgICAgIGlmICh0aGlzR3JvdXAuYWRkVG9Hcm91cEN0cmwgPT09IGdyb3VwQ29uZmlnLmdyb3VwSWQpIHtcbiAgICAgICAgICBfZHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbFswXVtncm91cENvbmZpZy5XaGVuSW5kZXhdLnB1c2godGhpc0NvbnRyb2wpO1xuICAgICAgICB9XG4gICAgICAgfSk7XG4gICAgfWVsc2V7XG4gICAgICAvKipcbiAgICAgICAqIG5vIGdyb3VwIG5vIGNvbnRyb2xcbiAgICAgICAqXG4gICAgICAgKiBpbml0aWFsaXplIF9kcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uIGxpc3RcbiAgICAgICAqL1xuICAgICAgX2RyYWdEcm9wQ29uZmlnTW9kZWwuY29udGFpbmVyQ29uZmlnLmRlY29yYXRpb24uZm9yRWFjaCgoKT0+X2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWxbMF0ucHVzaChbXSkpO1xuICAgICAgLyoqXG4gICAgICAgKiBwdXNoIGNvbnRyb2wgdG8gcmlnaHQgaW5kZXggXG4gICAgICAgKiAoZGVkdWNlZCBieSBfZHJhZ0Ryb3BDb25maWdNb2RlbC5jb250YWluZXJDb25maWcuZGVjb3JhdGlvbi5XaGVuSW5kZXggdmFsdWUgZm9yIGdyb3VwSWQgPT09IHRoaXNHcm91cClcbiAgICAgICAqL1xuICAgICAgIF9kcmFnRHJvcENvbmZpZ01vZGVsLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uLmZvckVhY2goKGdyb3VwQ29uZmlnKT0+e1xuICAgICAgICBpZiAodGhpc0dyb3VwLmFkZFRvR3JvdXBDdHJsID09PSBncm91cENvbmZpZy5ncm91cElkKSB7XG4gICAgICAgICAgX2RyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWxbMF1bZ3JvdXBDb25maWcuV2hlbkluZGV4XS5wdXNoKHRoaXNDb250cm9sKTtcbiAgICAgICAgfVxuICAgICAgIH0pOyBcbiAgICB9XG4gIH0gXHRcblxufVxuXG4vLyBlYXN5Rm9ybURyYWdXYXlDb25maWcuJGluamVjdCA9IFsnJHRyYW5zbGF0ZVByb3ZpZGVyJ107XG5cbmVhc3lGb3JtRHJhZ1dheUNvbmZpZy4kaW5qZWN0ID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IGVhc3lGb3JtRHJhZ1dheUNvbmZpZztcblxuZXhwb3J0IHtFQVNZX0ZPUk1fRFJBR19EUk9QX1dBWV9DT05GSUdfTkFNRX07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2VkYURyYWdEcm9wV2F5RWFzeUZvcm1HZW4vZWRhRHJhZ0Ryb3BXYXkuZWRhRHJhZ2Ryb3BXYXlFYXN5Rm9ybUdlbi5wcm92aWRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  348. /***/ },
  349. /* 79 */
  350. /***/ function(module, exports) {
  351. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar LIST_DRAG_DROP_ITEM_CSS_CLASSES = [{\n cssClass: 'col-md-12',\n numberItemPerRow: 0\n}, {\n cssClass: 'col-md-12',\n numberItemPerRow: 1\n}, {\n cssClass: 'col-md-6',\n numberItemPerRow: 2\n}, {\n cssClass: 'col-md-4',\n numberItemPerRow: 3\n}];\n\nvar DRAG_DROP_CONFIG_MODEL = {\n dropZoneConfig: {\n decoration: [{\n WhenIndex: 0,\n ApplycssClass: 'col-md-4',\n fontAwesomeIcon: 'fa fa-level-up',\n title: 'Drag control from here : '\n }, {\n WhenIndex: 1,\n ApplycssClass: 'col-md-8',\n fontAwesomeIcon: 'fa fa-level-down',\n title: 'Drop control into here : '\n }],\n verboseMode: false\n },\n containerConfig: {\n decoration: [{\n WhenIndex: 0,\n ApplycssClass: 'col-md-12',\n title: 'Blank : ',\n groupId: 'blank',\n isCollapsed: true\n }, {\n WhenIndex: 1,\n ApplycssClass: 'col-md-12',\n title: 'Headers : ',\n groupId: 'headers',\n isCollapsed: true\n }, {\n WhenIndex: 2,\n ApplycssClass: 'col-md-12',\n title: 'Text inputs : ',\n groupId: 'inputs',\n isCollapsed: true\n }, {\n WhenIndex: 3,\n ApplycssClass: 'col-md-12',\n title: 'Textareas : ',\n groupId: 'textareas',\n isCollapsed: true\n }, {\n WhenIndex: 4,\n ApplycssClass: 'col-md-12',\n title: 'Radios : ',\n groupId: 'radios',\n isCollapsed: true\n }, {\n WhenIndex: 5,\n ApplycssClass: 'col-md-12',\n title: 'Checkboxes : ',\n groupId: 'checkboxes',\n isCollapsed: true\n }, {\n WhenIndex: 6,\n ApplycssClass: 'col-md-12',\n title: 'Selects : ',\n groupId: 'selects',\n isCollapsed: true\n }],\n verboseMode: false,\n collapseEnabled: true,\n collapseCtrl: [{\n atIndex: 0,\n collapse: true\n }, {\n atIndex: 1,\n collapse: true\n }]\n },\n itemConfig: {\n verboseMode: false\n }\n};\n\nvar DRAG_DROP_PRESENTATION_MODEL = [\n//1 column here is control selection column\n[], [\n//empty 1st line at initialisation\n[]]];\n\nvar ITEMS_NOT_TO_COUNT_FOR_REAL = {\n //placeholder : '',\n itemBeingDragged: ''\n};\n\nexports.LIST_DRAG_DROP_ITEM_CSS_CLASSES = LIST_DRAG_DROP_ITEM_CSS_CLASSES;\nexports.DRAG_DROP_CONFIG_MODEL = DRAG_DROP_CONFIG_MODEL;\nexports.DRAG_DROP_PRESENTATION_MODEL = DRAG_DROP_PRESENTATION_MODEL;\nexports.ITEMS_NOT_TO_COUNT_FOR_REAL = ITEMS_NOT_TO_COUNT_FOR_REAL;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLnByb3ZpZGVyLmhlbHBlcnMuanM/MGFjMCJdLCJuYW1lcyI6WyJMSVNUX0RSQUdfRFJPUF9JVEVNX0NTU19DTEFTU0VTIiwiY3NzQ2xhc3MiLCJudW1iZXJJdGVtUGVyUm93IiwiRFJBR19EUk9QX0NPTkZJR19NT0RFTCIsImRyb3Bab25lQ29uZmlnIiwiZGVjb3JhdGlvbiIsIldoZW5JbmRleCIsIkFwcGx5Y3NzQ2xhc3MiLCJmb250QXdlc29tZUljb24iLCJ0aXRsZSIsInZlcmJvc2VNb2RlIiwiY29udGFpbmVyQ29uZmlnIiwiZ3JvdXBJZCIsImlzQ29sbGFwc2VkIiwiY29sbGFwc2VFbmFibGVkIiwiY29sbGFwc2VDdHJsIiwiYXRJbmRleCIsImNvbGxhcHNlIiwiaXRlbUNvbmZpZyIsIkRSQUdfRFJPUF9QUkVTRU5UQVRJT05fTU9ERUwiLCJJVEVNU19OT1RfVE9fQ09VTlRfRk9SX1JFQUwiLCJpdGVtQmVpbmdEcmFnZ2VkIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQU1BLGtDQUFrQyxDQUN0QztBQUNFQyxZQUFXLFdBRGI7QUFFRUMsb0JBQWtCO0FBRnBCLENBRHNDLEVBS3RDO0FBQ0VELFlBQVcsV0FEYjtBQUVFQyxvQkFBa0I7QUFGcEIsQ0FMc0MsRUFTdEM7QUFDRUQsWUFBVyxVQURiO0FBRUVDLG9CQUFrQjtBQUZwQixDQVRzQyxFQWF0QztBQUNFRCxZQUFXLFVBRGI7QUFFRUMsb0JBQWtCO0FBRnBCLENBYnNDLENBQXhDOztBQW1CQSxJQUFNQyx5QkFBMEI7QUFDOUJDLGtCQUFpQjtBQUNmQyxnQkFBYyxDQUNkO0FBQ0VDLGlCQUFXLENBRGI7QUFFRUMscUJBQWUsVUFGakI7QUFHRUMsdUJBQWlCLGdCQUhuQjtBQUlFQyxhQUFPO0FBSlQsS0FEYyxFQU9kO0FBQ0VILGlCQUFXLENBRGI7QUFFRUMscUJBQWUsVUFGakI7QUFHRUMsdUJBQWlCLGtCQUhuQjtBQUlFQyxhQUFPO0FBSlQsS0FQYyxDQURDO0FBZWpCQyxpQkFBYztBQWZHLEdBRGE7QUFrQjlCQyxtQkFBa0I7QUFDaEJOLGdCQUFnQixDQUNkO0FBQ0VDLGlCQUFnQixDQURsQjtBQUVFQyxxQkFBZ0IsV0FGbEI7QUFHRUUsYUFBZ0IsVUFIbEI7QUFJRUcsZUFBZ0IsT0FKbEI7QUFLRUMsbUJBQWdCO0FBTGxCLEtBRGMsRUFRZDtBQUNFUCxpQkFBZ0IsQ0FEbEI7QUFFRUMscUJBQWdCLFdBRmxCO0FBR0VFLGFBQWdCLFlBSGxCO0FBSUVHLGVBQWdCLFNBSmxCO0FBS0VDLG1CQUFnQjtBQUxsQixLQVJjLEVBZWQ7QUFDRVAsaUJBQWdCLENBRGxCO0FBRUVDLHFCQUFnQixXQUZsQjtBQUdFRSxhQUFnQixnQkFIbEI7QUFJRUcsZUFBZ0IsUUFKbEI7QUFLRUMsbUJBQWdCO0FBTGxCLEtBZmMsRUFzQmQ7QUFDRVAsaUJBQWdCLENBRGxCO0FBRUVDLHFCQUFnQixXQUZsQjtBQUdFRSxhQUFnQixjQUhsQjtBQUlFRyxlQUFnQixXQUpsQjtBQUtFQyxtQkFBZ0I7QUFMbEIsS0F0QmMsRUE2QmQ7QUFDRVAsaUJBQWdCLENBRGxCO0FBRUVDLHFCQUFnQixXQUZsQjtBQUdFRSxhQUFnQixXQUhsQjtBQUlFRyxlQUFnQixRQUpsQjtBQUtFQyxtQkFBZ0I7QUFMbEIsS0E3QmMsRUFvQ2Q7QUFDRVAsaUJBQWdCLENBRGxCO0FBRUVDLHFCQUFnQixXQUZsQjtBQUdFRSxhQUFnQixlQUhsQjtBQUlFRyxlQUFnQixZQUpsQjtBQUtFQyxtQkFBZ0I7QUFMbEIsS0FwQ2MsRUEyQ2Q7QUFDRVAsaUJBQWdCLENBRGxCO0FBRUVDLHFCQUFnQixXQUZsQjtBQUdFRSxhQUFnQixZQUhsQjtBQUlFRyxlQUFnQixTQUpsQjtBQUtFQyxtQkFBZ0I7QUFMbEIsS0EzQ2MsQ0FEQTtBQW9EaEJILGlCQUFrQixLQXBERjtBQXFEaEJJLHFCQUFrQixJQXJERjtBQXNEaEJDLGtCQUFrQixDQUNoQjtBQUNFQyxlQUFVLENBRFo7QUFFRUMsZ0JBQVc7QUFGYixLQURnQixFQUtoQjtBQUNFRCxlQUFVLENBRFo7QUFFRUMsZ0JBQVc7QUFGYixLQUxnQjtBQXRERixHQWxCWTtBQW1GOUJDLGNBQWtCO0FBQ2xCUixpQkFBYztBQURJO0FBbkZZLENBQWhDOztBQXdGQSxJQUFNUywrQkFBK0I7QUFDbkM7QUFDQSxFQUZtQyxFQUduQztBQUNFO0FBQ0EsRUFGRixDQUhtQyxDQUFyQzs7QUFTQSxJQUFNQyw4QkFBOEI7QUFDbEM7QUFDQUMsb0JBQXNCO0FBRlksQ0FBcEM7O1FBTUVyQiwrQixHQUFBQSwrQjtRQUNBRyxzQixHQUFBQSxzQjtRQUNBZ0IsNEIsR0FBQUEsNEI7UUFDQUMsMkIsR0FBQUEsMkIiLCJmaWxlIjoiNzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBMSVNUX0RSQUdfRFJPUF9JVEVNX0NTU19DTEFTU0VTID0gW1xuICB7XG4gICAgY3NzQ2xhc3MgOiAnY29sLW1kLTEyJywgXG4gICAgbnVtYmVySXRlbVBlclJvdzogMFxuICB9LFxuICB7XG4gICAgY3NzQ2xhc3MgOiAnY29sLW1kLTEyJywgXG4gICAgbnVtYmVySXRlbVBlclJvdzogMVxuICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAge1xuICAgIGNzc0NsYXNzIDogJ2NvbC1tZC02JywgXG4gICAgbnVtYmVySXRlbVBlclJvdzogMlxuICB9LFxuICB7XG4gICAgY3NzQ2xhc3MgOiAnY29sLW1kLTQnLCBcbiAgICBudW1iZXJJdGVtUGVyUm93OiAzXG4gIH1cbl07IFxuXG5jb25zdCBEUkFHX0RST1BfQ09ORklHX01PREVMID0gIHtcbiAgZHJvcFpvbmVDb25maWcgOiB7XG4gICAgZGVjb3JhdGlvbiA6ICBbXG4gICAge1xuICAgICAgV2hlbkluZGV4OiAwLFxuICAgICAgQXBwbHljc3NDbGFzczogJ2NvbC1tZC00JywgXG4gICAgICBmb250QXdlc29tZUljb246ICdmYSBmYS1sZXZlbC11cCcsXG4gICAgICB0aXRsZTogJ0RyYWcgY29udHJvbCBmcm9tIGhlcmUgOiAnXG4gICAgfSxcbiAgICB7XG4gICAgICBXaGVuSW5kZXg6IDEsXG4gICAgICBBcHBseWNzc0NsYXNzOiAnY29sLW1kLTgnLCBcbiAgICAgIGZvbnRBd2Vzb21lSWNvbjogJ2ZhIGZhLWxldmVsLWRvd24nLFxuICAgICAgdGl0bGU6ICdEcm9wIGNvbnRyb2wgaW50byBoZXJlIDogJ1xuICAgIH1cbiAgXSxcbiAgdmVyYm9zZU1vZGUgOiBmYWxzZVxufSxcbiAgY29udGFpbmVyQ29uZmlnIDoge1xuICAgIGRlY29yYXRpb24gOiAgICBbXG4gICAgICB7XG4gICAgICAgIFdoZW5JbmRleCAgICAgOiAwLFxuICAgICAgICBBcHBseWNzc0NsYXNzIDogJ2NvbC1tZC0xMicsIFxuICAgICAgICB0aXRsZSAgICAgICAgIDogJ0JsYW5rIDogJyxcbiAgICAgICAgZ3JvdXBJZCAgICAgICA6ICdibGFuaycsXG4gICAgICAgIGlzQ29sbGFwc2VkICAgOiB0cnVlIFxuICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAge1xuICAgICAgICBXaGVuSW5kZXggICAgIDogMSxcbiAgICAgICAgQXBwbHljc3NDbGFzcyA6ICdjb2wtbWQtMTInLCBcbiAgICAgICAgdGl0bGUgICAgICAgICA6ICdIZWFkZXJzIDogJyxcbiAgICAgICAgZ3JvdXBJZCAgICAgICA6ICdoZWFkZXJzJyxcbiAgICAgICAgaXNDb2xsYXBzZWQgICA6IHRydWUgXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBXaGVuSW5kZXggICAgIDogMixcbiAgICAgICAgQXBwbHljc3NDbGFzcyA6ICdjb2wtbWQtMTInLCBcbiAgICAgICAgdGl0bGUgICAgICAgICA6ICdUZXh0IGlucHV0cyA6ICcsXG4gICAgICAgIGdyb3VwSWQgICAgICAgOiAnaW5wdXRzJyAsXG4gICAgICAgIGlzQ29sbGFwc2VkICAgOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBXaGVuSW5kZXggICAgIDogMyxcbiAgICAgICAgQXBwbHljc3NDbGFzcyA6ICdjb2wtbWQtMTInLFxuICAgICAgICB0aXRsZSAgICAgICAgIDogJ1RleHRhcmVhcyA6ICcsXG4gICAgICAgIGdyb3VwSWQgICAgICAgOiAndGV4dGFyZWFzJyxcbiAgICAgICAgaXNDb2xsYXBzZWQgICA6IHRydWUgXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBXaGVuSW5kZXggICAgIDogNCxcbiAgICAgICAgQXBwbHljc3NDbGFzcyA6ICdjb2wtbWQtMTInLFxuICAgICAgICB0aXRsZSAgICAgICAgIDogJ1JhZGlvcyA6ICcsXG4gICAgICAgIGdyb3VwSWQgICAgICAgOiAncmFkaW9zJyxcbiAgICAgICAgaXNDb2xsYXBzZWQgICA6IHRydWUgXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBXaGVuSW5kZXggICAgIDogNSxcbiAgICAgICAgQXBwbHljc3NDbGFzcyA6ICdjb2wtbWQtMTInLFxuICAgICAgICB0aXRsZSAgICAgICAgIDogJ0NoZWNrYm94ZXMgOiAnLFxuICAgICAgICBncm91cElkICAgICAgIDogJ2NoZWNrYm94ZXMnLFxuICAgICAgICBpc0NvbGxhcHNlZCAgIDogdHJ1ZSBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIFdoZW5JbmRleCAgICAgOiA2LFxuICAgICAgICBBcHBseWNzc0NsYXNzIDogJ2NvbC1tZC0xMicsXG4gICAgICAgIHRpdGxlICAgICAgICAgOiAnU2VsZWN0cyA6ICcsXG4gICAgICAgIGdyb3VwSWQgICAgICAgOiAnc2VsZWN0cycsXG4gICAgICAgIGlzQ29sbGFwc2VkICAgOiB0cnVlIFxuICAgICAgfSBcbiAgICBdLFxuICAgIHZlcmJvc2VNb2RlICAgICA6IGZhbHNlLCBcbiAgICBjb2xsYXBzZUVuYWJsZWQgOiB0cnVlLFxuICAgIGNvbGxhcHNlQ3RybCAgICA6IFtcbiAgICAgIHtcbiAgICAgICAgYXRJbmRleCA6IDAsXG4gICAgICAgIGNvbGxhcHNlIDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYXRJbmRleCA6IDEsXG4gICAgICAgIGNvbGxhcHNlIDogdHJ1ZVxuICAgICAgfVxuICAgIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgfSxcbiAgaXRlbUNvbmZpZyAgICA6ICAge1xuICB2ZXJib3NlTW9kZSA6IGZhbHNlXG4gIH0gICAgICAgICAgICAgICAgICBcbn07ICBcblxuY29uc3QgRFJBR19EUk9QX1BSRVNFTlRBVElPTl9NT0RFTCA9IFtcbiAgLy8xIGNvbHVtbiBoZXJlIGlzIGNvbnRyb2wgc2VsZWN0aW9uIGNvbHVtblxuICBbXSxcbiAgW1xuICAgIC8vZW1wdHkgMXN0IGxpbmUgYXQgaW5pdGlhbGlzYXRpb25cbiAgICBbXVxuICBdXG5dO1xuXG5jb25zdCBJVEVNU19OT1RfVE9fQ09VTlRfRk9SX1JFQUwgPSB7XG4gIC8vcGxhY2Vob2xkZXIgOiAgICAgICAgICcnLFxuICBpdGVtQmVpbmdEcmFnZ2VkIDogICAgJydcbn07XG5cbmV4cG9ydCB7XG4gIExJU1RfRFJBR19EUk9QX0lURU1fQ1NTX0NMQVNTRVMsXG4gIERSQUdfRFJPUF9DT05GSUdfTU9ERUwsXG4gIERSQUdfRFJPUF9QUkVTRU5UQVRJT05fTU9ERUwsXG4gIElURU1TX05PVF9UT19DT1VOVF9GT1JfUkVBTFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9lZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuL2VkYURyYWdEcm9wV2F5LmVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4ucHJvdmlkZXIuaGVscGVycy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  352. /***/ },
  353. /* 80 */
  354. /***/ function(module, exports, __webpack_require__) {
  355. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLERAS = exports.DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global angular */\n\n///////////////////////////////////////////////////////////////////////\n// TODO :\n// - check no use methods that come from step way and delete if not needed\n// - check other TODO (a lot of fixes are needed)\n///////////////////////////////////////////////////////////////////////\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGenControllerHelpers = __webpack_require__(81);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER = 'edaDragDropWayEasyFormGenCtrl';\nvar DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLERAS = 'vm';\n\nvar edaDragDropWayEasyFormGenCtrl = function () {\n function edaDragDropWayEasyFormGenCtrl($scope, easyFormGenVersion, $filter, $anchorScroll, toaster, $timeout, $log, formFieldManage, controllerModalProxy, dragDropItemDecorationService, ddModelConfModelProxyService, ddItemRightClickedManager, easyFormDragWayConfig) {\n _classCallCheck(this, edaDragDropWayEasyFormGenCtrl);\n\n this.$scope = $scope;\n this.easyFormGenVersion = easyFormGenVersion;\n this.$filter = $filter;\n this.$anchorScroll = $anchorScroll;\n this.toaster = toaster;\n this.$timeout = $timeout;\n this.$log = $log;\n this.formFieldManage = formFieldManage;\n this.controllerModalProxy = controllerModalProxy;\n this.dragDropItemDecorationService = dragDropItemDecorationService;\n // this.dragDropConfig = dragDropConfig;\n this.ddModelConfModelProxyService = ddModelConfModelProxyService;\n this.ddItemRightClickedManager = ddItemRightClickedManager;\n this.easyFormDragWayConfig = easyFormDragWayConfig;\n\n this.init();\n }\n\n _createClass(edaDragDropWayEasyFormGenCtrl, [{\n key: 'init',\n value: function init() {\n this.easyFormGeneratorVERSION = this.easyFormGenVersion;\n this.tab = (0, _edaDragDropWayEdaDragdropWayEasyFormGenControllerHelpers.initTabModel)(this.easyFormDragWayConfig.isPreviewPanelVisible(), this.easyFormDragWayConfig.arePreviewModelsVisible());\n this.returnSaveEvent = false;\n this.dataModel = {}; //was vm.model in ES5 version\n this.wfFormFields = [];\n this.wfFormFieldsOnlyNeededProperties = [];\n this.ihm = (0, _edaDragDropWayEdaDragdropWayEasyFormGenControllerHelpers.initIhmModel)();\n this.easyFormDragDropProperties = this.easyFormDragWayConfig.getDragDropConfigModel();\n this.dragDropModel = [].concat(this.easyFormDragWayConfig.getDragDropPresentationModel());\n this.numberOfColumns = 1;\n this.MaxNumberOfColumns = 3;\n this.MinNumberOfColumns = 1;\n this.configuration = {};\n this.animationsEnabled = this.easyFormDragWayConfig.getModalAnimationValue();\n this.editPanelModel = { toggle: false };\n this.debugProxyModel = this.controllerModalProxy.ProxyModel;\n this.model = [];\n\n this.formFieldManage.initConfigurationEditFromScratch(this.configuration, false);\n this.controllerModalProxy.initProxyModel();\n }\n }, {\n key: 'collapseAllGroupControl',\n value: function collapseAllGroupControl(allExceptThisGroupIndex) {\n var _this = this;\n\n angular.forEach(this.easyFormDragDropProperties.containerConfig.decoration, function (value) {\n if (value.WhenIndex !== allExceptThisGroupIndex) _this.easyFormDragWayConfig.setDragDropConfigContainerDecorationCollapse(_this.easyFormDragDropProperties, value.WhenIndex, true);\n });\n }\n }, {\n key: 'onSubmit',\n value: function onSubmit() {\n this.toaster.pop({\n type: 'info',\n timeout: 2000,\n title: 'should save data model if it were not a static example',\n body: 'data :' + this.$filter('json')(this.dataModel, 4),\n showCloseButton: true\n });\n }\n }, {\n key: 'resetToZeroModel',\n value: function resetToZeroModel() {\n this.configuration.activeLine = 1;\n if (this.configuration.lines.length > 1) this.configuration.lines.splice(1, this.configuration.lines.length - 2);\n return this.countConfigurationModelLines();\n }\n\n //TO CHECK if does not come from step way :\n\n }, {\n key: 'countConfigurationModelLines',\n value: function countConfigurationModelLines() {\n return this.configuration.lines.length;\n }\n\n // //TO CHECK THEN TO DELETE : should come from step way...\n // setActiveLineNumber(lineNumber){\n // if (lineNumber <= this.countConfigurationModelLines()) this.configuration.activeLine = lineNumber;\n // }\n\n // //TO CHECK THEN TO DELETE : should come from step way...\n // upThisLine(indexLine){\n // if (indexLine > -1) {\n // if (this.configuration.lines[indexLine - 1]) {\n // let currentLineObj = this.configuration.lines[indexLine];\n // this.configuration.lines.splice(indexLine , 1);\n // this.configuration.lines.splice((indexLine - 1), 0, currentLineObj);\n // this.configuration.activeLine = 1;\n // }\n // }\n //\n // this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n // this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n // }\n\n // //TO CHECK THEN TO DELETE : should come from step way...\n // downThisLine(indexLine){\n // if (indexLine > -1) {\n // if (this.configuration.lines[indexLine + 1]) {\n // let currentLineObj = this.configuration.lines[indexLine];\n // this.configuration.lines.splice(indexLine , 1);\n // this.configuration.lines.splice((indexLine + 1), 0, currentLineObj);\n // this.configuration.activeLine = 1;\n // }\n // }\n // this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n // this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n // }\n\n // //TO CHECK THEN TO DELETE : should come from step way...\n // removeThisLine(index){\n // if (index > -1) {\n // if (this.configuration.lines.length > 1) {\n // if (this.configuration.activeLine === index + 1) this.configuration.activeLine = 1;\n // this.configuration.lines.splice(index, 1);\n // }else{\n // this.$timeout(()=>{\n // this.toaster.pop({\n // type : 'warning',\n // title : 'Last line' ,\n // body : 'Can\\'t delete the last line',\n // showCloseButton : true\n // });\n // }, 100);\n // }\n // this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n // this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n // }\n // }\n\n // //TO CHECK THEN TO DELETE : should come from step way...\n // increaseNumberOfColumns(){\n // if (this.configuration.lines[this.configuration.activeLine -1].columns.length < this.MaxNumberOfColumns) {\n // let newNumberOfColumns = this.configuration.lines[this.configuration.activeLine -1].columns.push(initColumnTemplate());\n // this.configuration.lines[this.configuration.activeLine -1].columns[newNumberOfColumns - 1].numColumn = newNumberOfColumns;\n // }\n // this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n // this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n // }\n\n // //TO CHECK THEN TO DELETE : should come from step way...\n // decreaseNumberOfColumns(indexLine, indexColumn){\n // if (this.configuration.lines[this.configuration.activeLine -1].columns.length > 1) {\n // this.configuration.lines[this.configuration.activeLine -1].columns.splice(this.configuration.lines[this.configuration.activeLine -1].columns.length -1, 1);\n // }\n // this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n // this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n // }\n\n }, {\n key: 'saveThisForm',\n value: function saveThisForm() {\n if (typeof this.configuration.formName === 'undefined') {\n this.toaster.pop({\n type: 'warning',\n timeout: 2000,\n title: 'Form name is undefined',\n body: 'Form has not been saved.',\n showCloseButton: true\n });\n return false;\n }\n if (this.configuration.formName === '') {\n this.toaster.pop({\n type: 'warning',\n timeout: 2000,\n title: 'Form name is required',\n body: 'Form has not been saved.',\n showCloseButton: true\n });\n return false;\n }\n this.toaster.pop({\n type: 'wait',\n timeout: 10000,\n title: 'Form is being saved',\n body: 'Wait.',\n showCloseButton: true\n });\n this.toaster.clear();\n this.returnSaveEvent = true;\n return true;\n }\n }, {\n key: 'dragoverCallbackContainer',\n value: function dragoverCallbackContainer(parentparentIndex, parentIndex, index) {\n //prevent container in layout column to be drag to control select contianer\n if (index === 0) return false;\n return true;\n }\n }, {\n key: 'dropCallback',\n value: function dropCallback(event, index, item, external, type, allowedType) {\n var _this2 = this;\n\n if (external) {\n if (allowedType === 'itemType' && !item.label) return false;\n if (allowedType === 'containerType' && !angular.isArray(item)) return false;\n }\n //set a timeout befire binding since ddModel may not be called when already full updated\n var timerRefreshDDToConfig = this.$timeout(function () {\n _this2.configuration = angular.copy(_this2.ddModelConfModelProxyService.refreshAllConfigurationFromDragAndDropModel(_this2.configuration, _this2.dragDropModel));\n _this2.formFieldManage.applyConfigurationToformlyModel(_this2.configuration, _this2.wfFormFields, _this2.dataModel);\n _this2.wfFormFieldsOnlyNeededProperties = angular.copy(_this2.wfFormFields);\n _this2.ddModelConfModelProxyService.refreshControlsKeys(_this2.configuration, _this2.dragDropModel);\n }, 200);\n this.$scope.$on('$destroy', function () {\n return _this2.$timeout.cancel(timerRefreshDDToConfig);\n });\n return item;\n }\n }, {\n key: 'dndItemMoved',\n value: function dndItemMoved(parentParentIndex, parentIndex, itemIndex) {\n //prevent item from first container to disapear when dropped on other container\n if (parentParentIndex > 0) this.dragDropModel[parentParentIndex][parentIndex].splice(itemIndex, 1);\n }\n }, {\n key: 'dragoverCallbackItems',\n value: function dragoverCallbackItems(ParentParentIndex, parentIndex) {\n //prevent items in layout column to be drag to control select\n if (parentIndex === 0) return false;\n return true;\n }\n\n //TODO : will replace in html : dnd-disable-if=\"items.length > 2\"\n\n }, {\n key: 'disableItemDropIf',\n value: function disableItemDropIf() {}\n }, {\n key: 'dropCallbackItems',\n value: function dropCallbackItems(event, index, realIndex, parentIndex, parentParentIndex, parentParentParentIndex, item, external, type, allowedType) {\n var _this3 = this;\n\n if (external) {\n if (allowedType === 'itemType' && !item.label) return false;\n if (allowedType === 'containerType' && !angular.isArray(item)) return false;\n }\n //set a timeout before binding since ddModel may not be called when already full updated\n var timerRefreshDDToConfig = this.$timeout(function () {\n _this3.configuration = angular.copy(_this3.ddModelConfModelProxyService.refreshAllConfigurationFromDragAndDropModel(_this3.configuration, _this3.dragDropModel));\n _this3.formFieldManage.applyConfigurationToformlyModel(_this3.configuration, _this3.wfFormFields, _this3.dataModel);\n _this3.wfFormFieldsOnlyNeededProperties = angular.copy(_this3.wfFormFields);\n // refresh controls key in dragDrop Model to persist already exists controls between refreshes when item drop events\n _this3.ddModelConfModelProxyService.refreshControlsKeys(_this3.configuration, _this3.dragDropModel);\n }, 200);\n // add/set rightCliked property to false (will help edaRightClick directive)\n this.ddItemRightClickedManager.setUnRightClicked(item);\n // timerRefreshDDToConfig timer destruction\n this.$scope.$on('$destroy', function () {\n return _this3.$timeout.cancel(timerRefreshDDToConfig);\n });\n return item;\n }\n }, {\n key: 'saveFromEditPanel',\n value: function saveFromEditPanel() {\n /**\n * TODO :\n * should be called from edit panel\n *\n * AND\n *\n * should call all these methods\n *\n * need to get :\n *\n * - line index\n * - column index\n * - basicSelectRowCollection (from edpitpanelcontroller) --> maybe in controllerModalProxy service\n * - groupedSelectRowCollection (from edpitpanelcontroller) --> maybe in controllerModalProxy service\n * - radioRowCollection (from edpitpanelcontroller) --> maybe in controllerModalProxy service\n */\n this.controllerModalProxy.bindSpecialCtrlTemporyModelsToProxyModel();\n //save config to control\n //controllerModalProxy.applyConfigToSelectedControl(self.proxyModel);\n //return current model to parent controller :\n\n //update configuration model and formly model\n this.controllerModalProxy.bindConfigurationModelFromProxyModel(this.controllerModalProxy.getEditPanelModelLineIndex(), this.controllerModalProxy.getEditPanelModelColumnIndex(), this.configuration);\n this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n this.ddModelConfModelProxyService.refreshControlsKeys(this.configuration, this.dragDropModel);\n this.controllerModalProxy.setEditPanelModelToggle(false);\n this.editPanelModel.toggle = this.controllerModalProxy.getEditPanelModelToggle();\n this.ddItemRightClickedManager.resetAllDragDropItemSelectedState(this.dragDropModel);\n }\n }, {\n key: 'closeEditPanel',\n value: function closeEditPanel() {\n // reset all rightClicked control properties to false\n this.ddItemRightClickedManager.resetAllDragDropItemSelectedState(this.dragDropModel);\n\n /**\n * TODO : refresh configuration model\n * uncomment after update these next 3 lines\n *\n * NOTE : indexLine AND numcolumn should be stored in service and\n * updated when togle sidepanel\n */\n //this.controllerModalProxy.bindConfigurationModelFromProxyModel(indexLine, numcolumn, modalAddCtrlModel, this.configuration);\n //this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n //this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n\n this.controllerModalProxy.setEditPanelModelToggle(false);\n this.editPanelModel.toggle = this.controllerModalProxy.getEditPanelModelToggle();\n }\n }, {\n key: 'setRightClicked',\n value: function setRightClicked(previousState, item) {\n item.rightCliked = true;\n }\n }, {\n key: 'toggleEditPanel',\n value: function toggleEditPanel(event, lineIndex, colIndex, item) {\n var _this4 = this;\n\n this.ddItemRightClickedManager.resetAllDragDropItemSelectedState(this.dragDropModel);\n // already opened (could be another control edit)\n if (this.controllerModalProxy.getEditPanelModelToggle()) {\n // -> immediate close and refresh configuration model + formly model\n this.controllerModalProxy.setEditPanelModelToggle(false);\n this.editPanelModel.toggle = this.controllerModalProxy.getEditPanelModelToggle();\n\n //TODO : for refreshing\n //this.controllerModalProxy.bindConfigurationModelFromProxyModel(indexLine, numcolumn, modalAddCtrlModel, this.configuration);\n //this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n //this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n\n // check if new control right clicked otherwise just toggle side panel\n if (typeof this.controllerModalProxy.getEditPanelModelLineIndex() !== 'undefined' && typeof this.controllerModalProxy.getEditPanelModelColumnIndex() !== 'undefined' && typeof this.controllerModalProxy.getEditPanelModelControl() !== 'undefined') {\n if (this.controllerModalProxy.getEditPanelModelLineIndex() === lineIndex && this.controllerModalProxy.getEditPanelModelColumnIndex() === colIndex && angular.equals(this.controllerModalProxy.getEditPanelModelControl(), item)) {\n //console.info('already opened for SAME ctrl : so close - no re-open');\n } else {\n (function () {\n //console.info('already opened for DIFFERENT ctrl : so re-open');\n item.rightCliked = true;\n // set a timeout before re-opening, 500ms is ok for a ps-size=\"400px\"\n var timerCloseOpenedEditPanel = _this4.$timeout(function () {\n _this4.controllerModalProxy.setEditPanelModelLineIndex(lineIndex);\n _this4.controllerModalProxy.setEditPanelModelColumnIndex(colIndex);\n _this4.controllerModalProxy.setEditPanelModelControl(item);\n // control model passed to Service : controllerModalProxy\n _this4.controllerModalProxy.setProxyModelFromConfigurationSelection(_this4.configuration, lineIndex, colIndex);\n _this4.controllerModalProxy.setEditPanelModelToggle(true);\n _this4.$scope.editPanelModel.toggle = _this4.controllerModalProxy.getEditPanelModelToggle();\n }, 200);\n _this4.$scope.$on('$destroy', function () {\n return _this4.$timeout.cancel(timerCloseOpenedEditPanel);\n });\n })();\n }\n }\n } else {\n // previous state = closed = immediate open\n // console.info('NOT already opened : so open');\n item.rightCliked = true;\n\n this.controllerModalProxy.setEditPanelModelLineIndex(lineIndex);\n this.controllerModalProxy.setEditPanelModelColumnIndex(colIndex);\n this.controllerModalProxy.setEditPanelModelControl(item);\n // control model passed to Service : controllerModalProxy\n this.controllerModalProxy.setProxyModelFromConfigurationSelection(this.configuration, lineIndex, colIndex);\n this.controllerModalProxy.setEditPanelModelToggle(true);\n this.editPanelModel.toggle = this.controllerModalProxy.getEditPanelModelToggle();\n }\n\n // console.info('after toggleLeftPanel check :');\n // console.dir({\n // 'this.editPanelModel' : angular.copy(this.editPanelModel),\n // 'controllerModalProxy.editPanelModel' : angular.copy(this.controllerModalProxy.editPanelModel)\n // });\n }\n\n // // refreshModels : to call after drag and drop events\n // refreshModels(){\n // this.$timeout(()=>{\n // console.info('refreshing models');\n // formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n // this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n // }, 10);\n // }\n\n\n }, {\n key: 'removeThisLine',\n value: function removeThisLine(lineIndex) {\n this.dragDropModel[1].splice(lineIndex, 1);\n }\n\n //TODO : to fix\n\n }, {\n key: 'addNewline',\n value: function addNewline() {\n // re-render formfield\n // TODO : to fix\n this.formFieldManage.applyConfigurationToformlyModel(this.configuration, this.wfFormFields, this.dataModel);\n this.wfFormFieldsOnlyNeededProperties = angular.copy(this.wfFormFields);\n }\n }, {\n key: 'insertNewLine',\n value: function insertNewLine() {\n this.addNewline();\n this.dragDropModel[1].push([]);\n }\n }]);\n\n return edaDragDropWayEasyFormGenCtrl;\n}();\n\nedaDragDropWayEasyFormGenCtrl.$inject = ['$scope', 'easyFormGenVersion', '$filter', '$anchorScroll', 'toaster', '$timeout', '$log', 'formFieldManage', 'controllerModalProxy', 'dragDropItemDecorationService', 'ddModelConfModelProxyService', 'ddItemRightClickedManager', 'easyFormDragWayConfig'];\n\nexports.default = edaDragDropWayEasyFormGenCtrl;\nexports.DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER = DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER;\nexports.DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLERAS = DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLERAS;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLmNvbnRyb2xsZXIuanM/NGRkMiJdLCJuYW1lcyI6WyJEUkFHX0RST1BfV0FZX0VBU1lfRk9STV9HRU5fQ09OVFJPTExFUiIsIkRSQUdfRFJPUF9XQVlfRUFTWV9GT1JNX0dFTl9DT05UUk9MTEVSQVMiLCJlZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuQ3RybCIsIiRzY29wZSIsImVhc3lGb3JtR2VuVmVyc2lvbiIsIiRmaWx0ZXIiLCIkYW5jaG9yU2Nyb2xsIiwidG9hc3RlciIsIiR0aW1lb3V0IiwiJGxvZyIsImZvcm1GaWVsZE1hbmFnZSIsImNvbnRyb2xsZXJNb2RhbFByb3h5IiwiZHJhZ0Ryb3BJdGVtRGVjb3JhdGlvblNlcnZpY2UiLCJkZE1vZGVsQ29uZk1vZGVsUHJveHlTZXJ2aWNlIiwiZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlciIsImVhc3lGb3JtRHJhZ1dheUNvbmZpZyIsImluaXQiLCJlYXN5Rm9ybUdlbmVyYXRvclZFUlNJT04iLCJ0YWIiLCJpc1ByZXZpZXdQYW5lbFZpc2libGUiLCJhcmVQcmV2aWV3TW9kZWxzVmlzaWJsZSIsInJldHVyblNhdmVFdmVudCIsImRhdGFNb2RlbCIsIndmRm9ybUZpZWxkcyIsIndmRm9ybUZpZWxkc09ubHlOZWVkZWRQcm9wZXJ0aWVzIiwiaWhtIiwiZWFzeUZvcm1EcmFnRHJvcFByb3BlcnRpZXMiLCJnZXREcmFnRHJvcENvbmZpZ01vZGVsIiwiZHJhZ0Ryb3BNb2RlbCIsImNvbmNhdCIsImdldERyYWdEcm9wUHJlc2VudGF0aW9uTW9kZWwiLCJudW1iZXJPZkNvbHVtbnMiLCJNYXhOdW1iZXJPZkNvbHVtbnMiLCJNaW5OdW1iZXJPZkNvbHVtbnMiLCJjb25maWd1cmF0aW9uIiwiYW5pbWF0aW9uc0VuYWJsZWQiLCJnZXRNb2RhbEFuaW1hdGlvblZhbHVlIiwiZWRpdFBhbmVsTW9kZWwiLCJ0b2dnbGUiLCJkZWJ1Z1Byb3h5TW9kZWwiLCJQcm94eU1vZGVsIiwibW9kZWwiLCJpbml0Q29uZmlndXJhdGlvbkVkaXRGcm9tU2NyYXRjaCIsImluaXRQcm94eU1vZGVsIiwiYWxsRXhjZXB0VGhpc0dyb3VwSW5kZXgiLCJhbmd1bGFyIiwiZm9yRWFjaCIsImNvbnRhaW5lckNvbmZpZyIsImRlY29yYXRpb24iLCJ2YWx1ZSIsIldoZW5JbmRleCIsInNldERyYWdEcm9wQ29uZmlnQ29udGFpbmVyRGVjb3JhdGlvbkNvbGxhcHNlIiwicG9wIiwidHlwZSIsInRpbWVvdXQiLCJ0aXRsZSIsImJvZHkiLCJzaG93Q2xvc2VCdXR0b24iLCJhY3RpdmVMaW5lIiwibGluZXMiLCJsZW5ndGgiLCJzcGxpY2UiLCJjb3VudENvbmZpZ3VyYXRpb25Nb2RlbExpbmVzIiwiZm9ybU5hbWUiLCJjbGVhciIsInBhcmVudHBhcmVudEluZGV4IiwicGFyZW50SW5kZXgiLCJpbmRleCIsImV2ZW50IiwiaXRlbSIsImV4dGVybmFsIiwiYWxsb3dlZFR5cGUiLCJsYWJlbCIsImlzQXJyYXkiLCJ0aW1lclJlZnJlc2hERFRvQ29uZmlnIiwiY29weSIsInJlZnJlc2hBbGxDb25maWd1cmF0aW9uRnJvbURyYWdBbmREcm9wTW9kZWwiLCJhcHBseUNvbmZpZ3VyYXRpb25Ub2Zvcm1seU1vZGVsIiwicmVmcmVzaENvbnRyb2xzS2V5cyIsIiRvbiIsImNhbmNlbCIsInBhcmVudFBhcmVudEluZGV4IiwiaXRlbUluZGV4IiwiUGFyZW50UGFyZW50SW5kZXgiLCJyZWFsSW5kZXgiLCJwYXJlbnRQYXJlbnRQYXJlbnRJbmRleCIsInNldFVuUmlnaHRDbGlja2VkIiwiYmluZFNwZWNpYWxDdHJsVGVtcG9yeU1vZGVsc1RvUHJveHlNb2RlbCIsImJpbmRDb25maWd1cmF0aW9uTW9kZWxGcm9tUHJveHlNb2RlbCIsImdldEVkaXRQYW5lbE1vZGVsTGluZUluZGV4IiwiZ2V0RWRpdFBhbmVsTW9kZWxDb2x1bW5JbmRleCIsInNldEVkaXRQYW5lbE1vZGVsVG9nZ2xlIiwiZ2V0RWRpdFBhbmVsTW9kZWxUb2dnbGUiLCJyZXNldEFsbERyYWdEcm9wSXRlbVNlbGVjdGVkU3RhdGUiLCJwcmV2aW91c1N0YXRlIiwicmlnaHRDbGlrZWQiLCJsaW5lSW5kZXgiLCJjb2xJbmRleCIsImdldEVkaXRQYW5lbE1vZGVsQ29udHJvbCIsImVxdWFscyIsInRpbWVyQ2xvc2VPcGVuZWRFZGl0UGFuZWwiLCJzZXRFZGl0UGFuZWxNb2RlbExpbmVJbmRleCIsInNldEVkaXRQYW5lbE1vZGVsQ29sdW1uSW5kZXgiLCJzZXRFZGl0UGFuZWxNb2RlbENvbnRyb2wiLCJzZXRQcm94eU1vZGVsRnJvbUNvbmZpZ3VyYXRpb25TZWxlY3Rpb24iLCJhZGROZXdsaW5lIiwicHVzaCIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7cWpCQUFBOztBQUVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUY7Ozs7QUFLQSxJQUFNQSx5Q0FBNEMsK0JBQWxEO0FBQ0EsSUFBTUMsMkNBQTRDLElBQWxEOztJQUdNQyw2QjtBQUVKLHlDQUNFQyxNQURGLEVBRUVDLGtCQUZGLEVBR0VDLE9BSEYsRUFJRUMsYUFKRixFQUtFQyxPQUxGLEVBTUVDLFFBTkYsRUFPRUMsSUFQRixFQVFFQyxlQVJGLEVBU0VDLG9CQVRGLEVBVUVDLDZCQVZGLEVBV0VDLDRCQVhGLEVBWUVDLHlCQVpGLEVBYUVDLHFCQWJGLEVBY0M7QUFBQTs7QUFDQyxTQUFLWixNQUFMLEdBQXdDQSxNQUF4QztBQUNBLFNBQUtDLGtCQUFMLEdBQXdDQSxrQkFBeEM7QUFDQSxTQUFLQyxPQUFMLEdBQXdDQSxPQUF4QztBQUNBLFNBQUtDLGFBQUwsR0FBd0NBLGFBQXhDO0FBQ0EsU0FBS0MsT0FBTCxHQUF3Q0EsT0FBeEM7QUFDQSxTQUFLQyxRQUFMLEdBQXdDQSxRQUF4QztBQUNBLFNBQUtDLElBQUwsR0FBd0NBLElBQXhDO0FBQ0EsU0FB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bG9iYWwgYW5ndWxhciAqL1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFRPRE8gOlxuICAvLyAtIGNoZWNrIG5vIHVzZSBtZXRob2RzIHRoYXQgY29tZSBmcm9tIHN0ZXAgd2F5IGFuZCBkZWxldGUgaWYgbm90IG5lZWRlZFxuICAvLyAtIGNoZWNrIG90aGVyIFRPRE8gKGEgbG90IG9mIGZpeGVzIGFyZSBuZWVkZWQpXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbmltcG9ydCB7XG4gIGluaXRUYWJNb2RlbCxcbiAgaW5pdElobU1vZGVsXG59ICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuL2VkYURyYWdEcm9wV2F5LmVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4uY29udHJvbGxlci5oZWxwZXJzLmpzJztcblxuY29uc3QgRFJBR19EUk9QX1dBWV9FQVNZX0ZPUk1fR0VOX0NPTlRST0xMRVIgICAgPSAnZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbkN0cmwnO1xuY29uc3QgRFJBR19EUk9QX1dBWV9FQVNZX0ZPUk1fR0VOX0NPTlRST0xMRVJBUyAgPSAndm0nO1xuXG5cbmNsYXNzIGVkYURyYWdEcm9wV2F5RWFzeUZvcm1HZW5DdHJse1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICRzY29wZSxcbiAgICBlYXN5Rm9ybUdlblZlcnNpb24sXG4gICAgJGZpbHRlcixcbiAgICAkYW5jaG9yU2Nyb2xsLFxuICAgIHRvYXN0ZXIsXG4gICAgJHRpbWVvdXQsXG4gICAgJGxvZyxcbiAgICBmb3JtRmllbGRNYW5hZ2UsXG4gICAgY29udHJvbGxlck1vZGFsUHJveHksXG4gICAgZHJhZ0Ryb3BJdGVtRGVjb3JhdGlvblNlcnZpY2UsXG4gICAgZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZSxcbiAgICBkZEl0ZW1SaWdodENsaWNrZWRNYW5hZ2VyLFxuICAgIGVhc3lGb3JtRHJhZ1dheUNvbmZpZ1xuICApe1xuICAgIHRoaXMuJHNjb3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkc2NvcGU7XG4gICAgdGhpcy5lYXN5Rm9ybUdlblZlcnNpb24gICAgICAgICAgICAgICA9IGVhc3lGb3JtR2VuVmVyc2lvbjtcbiAgICB0aGlzLiRmaWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgID0gJGZpbHRlcjtcbiAgICB0aGlzLiRhbmNob3JTY3JvbGwgICAgICAgICAgICAgICAgICAgID0gJGFuY2hvclNjcm9sbDtcbiAgICB0aGlzLnRvYXN0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgID0gdG9hc3RlcjtcbiAgICB0aGlzLiR0aW1lb3V0ICAgICAgICAgICAgICAgICAgICAgICAgID0gJHRpbWVvdXQ7XG4gICAgdGhpcy4kbG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRsb2c7XG4gICAgdGhpcy5mb3JtRmllbGRNYW5hZ2UgICAgICAgICAgICAgICAgICA9IGZvcm1GaWVsZE1hbmFnZTtcbiAgICB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5ICAgICAgICAgICAgID0gY29udHJvbGxlck1vZGFsUHJveHk7XG4gICAgdGhpcy5kcmFnRHJvcEl0ZW1EZWNvcmF0aW9uU2VydmljZSAgICA9IGRyYWdEcm9wSXRlbURlY29yYXRpb25TZXJ2aWNlO1xuICAgIC8vIHRoaXMuZHJhZ0Ryb3BDb25maWcgICAgICAgICAgICAgICAgICAgPSBkcmFnRHJvcENvbmZpZztcbiAgICB0aGlzLmRkTW9kZWxDb25mTW9kZWxQcm94eVNlcnZpY2UgICAgID0gZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZTtcbiAgICB0aGlzLmRkSXRlbVJpZ2h0Q2xpY2tlZE1hbmFnZXIgICAgICAgID0gZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlcjtcbiAgICB0aGlzLmVhc3lGb3JtRHJhZ1dheUNvbmZpZyAgICAgICAgICAgID0gZWFzeUZvcm1EcmFnV2F5Q29uZmlnO1xuXG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuXG4gIGluaXQoKXtcbiAgICB0aGlzLmVhc3lGb3JtR2VuZXJhdG9yVkVSU0lPTiAgICAgICAgID0gdGhpcy5lYXN5Rm9ybUdlblZlcnNpb247XG4gICAgdGhpcy50YWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGluaXRUYWJNb2RlbCh0aGlzLmVhc3lGb3JtRHJhZ1dheUNvbmZpZy5pc1ByZXZpZXdQYW5lbFZpc2libGUoKSwgdGhpcy5lYXN5Rm9ybURyYWdXYXlDb25maWcuYXJlUHJldmlld01vZGVsc1Zpc2libGUoKSk7XG4gICAgdGhpcy5yZXR1cm5TYXZlRXZlbnQgICAgICAgICAgICAgICAgICA9IGZhbHNlO1xuICAgIHRoaXMuZGF0YU1vZGVsICAgICAgICAgICAgICAgICAgICAgICAgPSB7fTsgLy93YXMgdm0ubW9kZWwgaW4gRVM1IHZlcnNpb25cbiAgICB0aGlzLndmRm9ybUZpZWxkcyAgICAgICAgICAgICAgICAgICAgID0gW107XG4gICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IFtdO1xuICAgIHRoaXMuaWhtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpbml0SWhtTW9kZWwoKTtcbiAgICB0aGlzLmVhc3lGb3JtRHJhZ0Ryb3BQcm9wZXJ0aWVzICAgICAgID0gdGhpcy5lYXN5Rm9ybURyYWdXYXlDb25maWcuZ2V0RHJhZ0Ryb3BDb25maWdNb2RlbCgpO1xuICAgIHRoaXMuZHJhZ0Ryb3BNb2RlbCAgICAgICAgICAgICAgICAgICAgPSBbXS5jb25jYXQodGhpcy5lYXN5Rm9ybURyYWdXYXlDb25maWcuZ2V0RHJhZ0Ryb3BQcmVzZW50YXRpb25Nb2RlbCgpKTtcbiAgICB0aGlzLm51bWJlck9mQ29sdW1ucyAgICAgICAgICAgICAgICAgID0gMTtcbiAgICB0aGlzLk1heE51bWJlck9mQ29sdW1ucyAgICAgICAgICAgICAgID0gMztcbiAgICB0aGlzLk1pbk51bWJlck9mQ29sdW1ucyAgICAgICAgICAgICAgID0gMTtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gICAgICAgICAgICAgICAgICAgID0ge307XG4gICAgdGhpcy5hbmltYXRpb25zRW5hYmxlZCAgICAgICAgICAgICAgICA9IHRoaXMuZWFzeUZvcm1EcmFnV2F5Q29uZmlnLmdldE1vZGFsQW5pbWF0aW9uVmFsdWUoKTtcbiAgICB0aGlzLmVkaXRQYW5lbE1vZGVsICAgICAgICAgICAgICAgICAgID0geyB0b2dnbGUgOiBmYWxzZSB9O1xuICAgIHRoaXMuZGVidWdQcm94eU1vZGVsICAgICAgICAgICAgICAgICAgPSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LlByb3h5TW9kZWw7XG4gICAgdGhpcy5tb2RlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFtdO1xuXG4gICAgdGhpcy5mb3JtRmllbGRNYW5hZ2UuaW5pdENvbmZpZ3VyYXRpb25FZGl0RnJvbVNjcmF0Y2godGhpcy5jb25maWd1cmF0aW9uICwgZmFsc2UpO1xuICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuaW5pdFByb3h5TW9kZWwoKTtcbiAgfVxuXG5cbiAgY29sbGFwc2VBbGxHcm91cENvbnRyb2woYWxsRXhjZXB0VGhpc0dyb3VwSW5kZXgpe1xuICAgIGFuZ3VsYXIuZm9yRWFjaCh0aGlzLmVhc3lGb3JtRHJhZ0Ryb3BQcm9wZXJ0aWVzLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uLCAodmFsdWUpPT57XG4gICAgICBpZiAodmFsdWUuV2hlbkluZGV4ICE9PSBhbGxFeGNlcHRUaGlzR3JvdXBJbmRleCkgdGhpcy5lYXN5Rm9ybURyYWdXYXlDb25maWcuc2V0RHJhZ0Ryb3BDb25maWdDb250YWluZXJEZWNvcmF0aW9uQ29sbGFwc2UodGhpcy5lYXN5Rm9ybURyYWdEcm9wUHJvcGVydGllcywgdmFsdWUuV2hlbkluZGV4LCB0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgb25TdWJtaXQoKSB7XG4gICAgdGhpcy50b2FzdGVyLnBvcCh7XG4gICAgICB0eXBlICAgICAgICAgICAgOiAnaW5mbycsXG4gICAgICB0aW1lb3V0ICAgICAgICAgOiAyMDAwLFxuICAgICAgdGl0bGUgICAgICAgICAgIDogJ3Nob3VsZCBzYXZlIGRhdGEgbW9kZWwgaWYgaXQgd2VyZSBub3QgYSBzdGF0aWMgZXhhbXBsZScsXG4gICAgICBib2R5ICAgICAgICAgICAgOiAnZGF0YSA6JyArIHRoaXMuJGZpbHRlcignanNvbicpKHRoaXMuZGF0YU1vZGVsLCA0KSxcbiAgICAgIHNob3dDbG9zZUJ1dHRvbiA6IHRydWVcbiAgICB9KTtcbiAgfVxuXG5cbiAgcmVzZXRUb1plcm9Nb2RlbCgpe1xuICAgIHRoaXMuY29uZmlndXJhdGlvbi5hY3RpdmVMaW5lID0gMTtcbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmxpbmVzLmxlbmd0aCA+IDEpIHRoaXMuY29uZmlndXJhdGlvbi5saW5lcy5zcGxpY2UoMSwgdGhpcy5jb25maWd1cmF0aW9uLmxpbmVzLmxlbmd0aCAtIDIpO1xuICAgIHJldHVybiB0aGlzLmNvdW50Q29uZmlndXJhdGlvbk1vZGVsTGluZXMoKTtcbiAgfVxuXG4gIC8vVE8gQ0hFQ0sgaWYgZG9lcyBub3QgY29tZSBmcm9tIHN0ZXAgd2F5IDpcbiAgY291bnRDb25maWd1cmF0aW9uTW9kZWxMaW5lcygpe1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24ubGluZXMubGVuZ3RoO1xuICB9XG5cbiAgLy8gIC8vVE8gQ0hFQ0sgVEhFTiBUTyBERUxFVEUgOiBzaG91bGQgY29tZSBmcm9tIHN0ZXAgd2F5Li4uXG4gIC8vIHNldEFjdGl2ZUxpbmVOdW1iZXIobGluZU51bWJlcil7XG4gIC8vICBpZiAobGluZU51bWJlciA8PSB0aGlzLmNvdW50Q29uZmlndXJhdGlvbk1vZGVsTGluZXMoKSkgdGhpcy5jb25maWd1cmF0aW9uLmFjdGl2ZUxpbmUgPSBsaW5lTnVtYmVyO1xuICAvLyB9XG5cbi8vICAvL1RPIENIRUNLIFRIRU4gVE8gREVMRVRFIDogc2hvdWxkIGNvbWUgZnJvbSBzdGVwIHdheS4uLlxuLy8gIHVwVGhpc0xpbmUoaW5kZXhMaW5lKXtcbi8vICAgIGlmIChpbmRleExpbmUgPiAtMSkge1xuLy8gICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmxpbmVzW2luZGV4TGluZSAtIDFdKSB7XG4vLyAgICAgICAgbGV0IGN1cnJlbnRMaW5lT2JqID0gdGhpcy5jb25maWd1cmF0aW9uLmxpbmVzW2luZGV4TGluZV07XG4vLyAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmxpbmVzLnNwbGljZShpbmRleExpbmUgLCAxKTtcbi8vICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24ubGluZXMuc3BsaWNlKChpbmRleExpbmUgLSAxKSwgMCwgY3VycmVudExpbmVPYmopO1xuLy8gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5hY3RpdmVMaW5lID0gMTtcbi8vICAgICAgfVxuLy8gICAgfVxuLy9cbi8vICAgIHRoaXMuZm9ybUZpZWxkTWFuYWdlLmFwcGx5Q29uZmlndXJhdGlvblRvZm9ybWx5TW9kZWwodGhpcy5jb25maWd1cmF0aW9uLCB0aGlzLndmRm9ybUZpZWxkcywgdGhpcy5kYXRhTW9kZWwpO1xuLy8gICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weSh0aGlzLndmRm9ybUZpZWxkcyk7XG4vLyAgfVxuXG4gIC8vICAvL1RPIENIRUNLIFRIRU4gVE8gREVMRVRFIDogc2hvdWxkIGNvbWUgZnJvbSBzdGVwIHdheS4uLlxuICAvLyBkb3duVGhpc0xpbmUoaW5kZXhMaW5lKXtcbiAgLy8gIGlmIChpbmRleExpbmUgPiAtMSkge1xuICAvLyAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmxpbmVzW2luZGV4TGluZSArIDFdKSB7XG4gIC8vICAgICAgbGV0IGN1cnJlbnRMaW5lT2JqID0gdGhpcy5jb25maWd1cmF0aW9uLmxpbmVzW2luZGV4TGluZV07XG4gIC8vICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmxpbmVzLnNwbGljZShpbmRleExpbmUgLCAxKTtcbiAgLy8gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24ubGluZXMuc3BsaWNlKChpbmRleExpbmUgKyAxKSwgMCwgY3VycmVudExpbmVPYmopO1xuICAvLyAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5hY3RpdmVMaW5lID0gMTtcbiAgLy8gICAgfVxuICAvLyAgfVxuICAvLyAgdGhpcy5mb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMud2ZGb3JtRmllbGRzLCB0aGlzLmRhdGFNb2RlbCk7XG4gIC8vICB0aGlzLndmRm9ybUZpZWxkc09ubHlOZWVkZWRQcm9wZXJ0aWVzID0gYW5ndWxhci5jb3B5KHRoaXMud2ZGb3JtRmllbGRzKTtcbiAgLy8gfVxuXG4vLyAgLy9UTyBDSEVDSyBUSEVOIFRPIERFTEVURSA6IHNob3VsZCBjb21lIGZyb20gc3RlcCB3YXkuLi5cbi8vICByZW1vdmVUaGlzTGluZShpbmRleCl7XG4vLyAgICBpZiAoaW5kZXggPiAtMSkge1xuLy8gICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmxpbmVzLmxlbmd0aCA+IDEpIHtcbi8vICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmFjdGl2ZUxpbmUgPT09IGluZGV4ICsgMSkgdGhpcy5jb25maWd1cmF0aW9uLmFjdGl2ZUxpbmUgPSAxO1xuLy8gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5saW5lcy5zcGxpY2UoaW5kZXgsIDEpO1xuLy8gICAgICB9ZWxzZXtcbi8vICAgICAgICB0aGlzLiR0aW1lb3V0KCgpPT57XG4vLyAgICAgICAgICB0aGlzLnRvYXN0ZXIucG9wKHtcbi8vICAgICAgICAgICAgdHlwZSAgICAgICAgICAgIDogJ3dhcm5pbmcnLFxuLy8gICAgICAgICAgICB0aXRsZSAgICAgICAgICAgOiAnTGFzdCBsaW5lJyAsXG4vLyAgICAgICAgICAgIGJvZHkgICAgICAgICAgICA6ICdDYW5cXCd0IGRlbGV0ZSB0aGUgbGFzdCBsaW5lJyxcbi8vICAgICAgICAgICAgc2hvd0Nsb3NlQnV0dG9uIDogdHJ1ZVxuLy8gICAgICAgICAgfSk7XG4vLyAgICAgICAgfSwgMTAwKTtcbi8vICAgICAgfVxuLy8gICAgICB0aGlzLmZvcm1GaWVsZE1hbmFnZS5hcHBseUNvbmZpZ3VyYXRpb25Ub2Zvcm1seU1vZGVsKHRoaXMuY29uZmlndXJhdGlvbiwgdGhpcy53ZkZvcm1GaWVsZHMsIHRoaXMuZGF0YU1vZGVsKTtcbi8vICAgICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weSh0aGlzLndmRm9ybUZpZWxkcyk7XG4vLyAgICB9XG4vLyAgfVxuXG4gIC8vICAvL1RPIENIRUNLIFRIRU4gVE8gREVMRVRFIDogc2hvdWxkIGNvbWUgZnJvbSBzdGVwIHdheS4uLlxuICAvLyBpbmNyZWFzZU51bWJlck9mQ29sdW1ucygpe1xuICAvLyAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5saW5lc1t0aGlzLmNvbmZpZ3VyYXRpb24uYWN0aXZlTGluZSAtMV0uY29sdW1ucy5sZW5ndGggPCB0aGlzLk1heE51bWJlck9mQ29sdW1ucykge1xuICAvLyAgICBsZXQgbmV3TnVtYmVyT2ZDb2x1bW5zID0gdGhpcy5jb25maWd1cmF0aW9uLmxpbmVzW3RoaXMuY29uZmlndXJhdGlvbi5hY3RpdmVMaW5lIC0xXS5jb2x1bW5zLnB1c2goaW5pdENvbHVtblRlbXBsYXRlKCkpO1xuICAvLyAgICB0aGlzLmNvbmZpZ3VyYXRpb24ubGluZXNbdGhpcy5jb25maWd1cmF0aW9uLmFjdGl2ZUxpbmUgLTFdLmNvbHVtbnNbbmV3TnVtYmVyT2ZDb2x1bW5zIC0gMV0ubnVtQ29sdW1uID0gbmV3TnVtYmVyT2ZDb2x1bW5zO1xuICAvLyAgfVxuICAvLyAgdGhpcy5mb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMud2ZGb3JtRmllbGRzLCB0aGlzLmRhdGFNb2RlbCk7XG4gIC8vICB0aGlzLndmRm9ybUZpZWxkc09ubHlOZWVkZWRQcm9wZXJ0aWVzID0gYW5ndWxhci5jb3B5KHRoaXMud2ZGb3JtRmllbGRzKTtcbiAgLy8gfVxuXG4gIC8vICAvL1RPIENIRUNLIFRIRU4gVE8gREVMRVRFIDogc2hvdWxkIGNvbWUgZnJvbSBzdGVwIHdheS4uLlxuICAvLyBkZWNyZWFzZU51bWJlck9mQ29sdW1ucyhpbmRleExpbmUsIGluZGV4Q29sdW1uKXtcbiAgLy8gIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24ubGluZXNbdGhpcy5jb25maWd1cmF0aW9uLmFjdGl2ZUxpbmUgLTFdLmNvbHVtbnMubGVuZ3RoID4gMSkge1xuICAvLyAgICB0aGlzLmNvbmZpZ3VyYXRpb24ubGluZXNbdGhpcy5jb25maWd1cmF0aW9uLmFjdGl2ZUxpbmUgLTFdLmNvbHVtbnMuc3BsaWNlKHRoaXMuY29uZmlndXJhdGlvbi5saW5lc1t0aGlzLmNvbmZpZ3VyYXRpb24uYWN0aXZlTGluZSAtMV0uY29sdW1ucy5sZW5ndGggLTEsIDEpO1xuICAvLyAgfVxuICAvLyAgdGhpcy5mb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMud2ZGb3JtRmllbGRzLCB0aGlzLmRhdGFNb2RlbCk7XG4gIC8vICB0aGlzLndmRm9ybUZpZWxkc09ubHlOZWVkZWRQcm9wZXJ0aWVzID0gYW5ndWxhci5jb3B5KHRoaXMud2ZGb3JtRmllbGRzKTtcbiAgLy8gfVxuXG4gIHNhdmVUaGlzRm9ybSgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbi5mb3JtTmFtZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0aGlzLnRvYXN0ZXIucG9wKHtcbiAgICAgICAgdHlwZSAgICA6ICd3YXJuaW5nJyxcbiAgICAgICAgdGltZW91dCA6IDIwMDAsXG4gICAgICAgIHRpdGxlICAgOiAnRm9ybSBuYW1lIGlzIHVuZGVmaW5lZCcsXG4gICAgICAgIGJvZHkgICAgOiAnRm9ybSBoYXMgbm90IGJlZW4gc2F2ZWQuJyxcbiAgICAgICAgc2hvd0Nsb3NlQnV0dG9uIDogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uZm9ybU5hbWUgPT09ICcnKSB7XG4gICAgdGhpcy50b2FzdGVyLnBvcCh7XG4gICAgICAgIHR5cGUgICAgOiAnd2FybmluZycsXG4gICAgICAgIHRpbWVvdXQgOiAyMDAwLFxuICAgICAgICB0aXRsZSAgIDogJ0Zvcm0gbmFtZSBpcyByZXF1aXJlZCcsXG4gICAgICAgIGJvZHkgICAgOiAnRm9ybSBoYXMgbm90IGJlZW4gc2F2ZWQuJyxcbiAgICAgICAgc2hvd0Nsb3NlQnV0dG9uIDogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudG9hc3Rlci5wb3Aoe1xuICAgICAgdHlwZSAgICA6ICd3YWl0JyxcbiAgICAgIHRpbWVvdXQgOiAxMDAwMCxcbiAgICAgIHRpdGxlICAgOiAnRm9ybSBpcyBiZWluZyBzYXZlZCcsXG4gICAgICBib2R5ICAgIDogJ1dhaXQuJyxcbiAgICAgIHNob3dDbG9zZUJ1dHRvbiA6IHRydWVcbiAgICB9KTtcbiAgICB0aGlzLnRvYXN0ZXIuY2xlYXIoKTtcbiAgICB0aGlzLnJldHVyblNhdmVFdmVudCA9IHRydWU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG4gIGRyYWdvdmVyQ2FsbGJhY2tDb250YWluZXIocGFyZW50cGFyZW50SW5kZXgsIHBhcmVudEluZGV4LCBpbmRleCl7XG4gICAgLy9wcmV2ZW50IGNvbnRhaW5lciBpbiBsYXlvdXQgY29sdW1uIHRvIGJlIGRyYWcgdG8gY29udHJvbCBzZWxlY3QgY29udGlhbmVyXG4gICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG4gIGRyb3BDYWxsYmFjayhldmVudCwgaW5kZXgsIGl0ZW0sIGV4dGVybmFsLCB0eXBlLCBhbGxvd2VkVHlwZSkge1xuICAgIGlmIChleHRlcm5hbCkge1xuICAgICAgICBpZiAoYWxsb3dlZFR5cGUgPT09ICdpdGVtVHlwZScgICAgICAmJiAhaXRlbS5sYWJlbCkgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoYWxsb3dlZFR5cGUgPT09ICdjb250YWluZXJUeXBlJyAmJiAhYW5ndWxhci5pc0FycmF5KGl0ZW0pKSAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL3NldCBhIHRpbWVvdXQgYmVmaXJlIGJpbmRpbmcgc2luY2UgZGRNb2RlbCBtYXkgbm90IGJlIGNhbGxlZCB3aGVuIGFscmVhZHkgZnVsbCB1cGRhdGVkXG4gICAgbGV0IHRpbWVyUmVmcmVzaEREVG9Db25maWcgPSB0aGlzLiR0aW1lb3V0KCgpPT57XG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBhbmd1bGFyLmNvcHkodGhpcy5kZE1vZGVsQ29uZk1vZGVsUHJveHlTZXJ2aWNlLnJlZnJlc2hBbGxDb25maWd1cmF0aW9uRnJvbURyYWdBbmREcm9wTW9kZWwodGhpcy5jb25maWd1cmF0aW9uLCB0aGlzLmRyYWdEcm9wTW9kZWwpKTtcbiAgICAgIHRoaXMuZm9ybUZpZWxkTWFuYWdlLmFwcGx5Q29uZmlndXJhdGlvblRvZm9ybWx5TW9kZWwodGhpcy5jb25maWd1cmF0aW9uLCB0aGlzLndmRm9ybUZpZWxkcywgdGhpcy5kYXRhTW9kZWwpO1xuICAgICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weSh0aGlzLndmRm9ybUZpZWxkcyk7XG4gICAgICB0aGlzLmRkTW9kZWxDb25mTW9kZWxQcm94eVNlcnZpY2UucmVmcmVzaENvbnRyb2xzS2V5cyh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMuZHJhZ0Ryb3BNb2RlbCk7XG4gICAgfSwgMjAwKTtcbiAgICB0aGlzLiRzY29wZS4kb24oJyRkZXN0cm95JywgKCk9PnRoaXMuJHRpbWVvdXQuY2FuY2VsKHRpbWVyUmVmcmVzaEREVG9Db25maWcpKTtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIGRuZEl0ZW1Nb3ZlZChwYXJlbnRQYXJlbnRJbmRleCwgcGFyZW50SW5kZXgsIGl0ZW1JbmRleCl7XG4gICAgLy9wcmV2ZW50IGl0ZW0gZnJvbSBmaXJzdCBjb250YWluZXIgdG8gZGlzYXBlYXIgd2hlbiBkcm9wcGVkIG9uIG90aGVyIGNvbnRhaW5lclxuICAgIGlmIChwYXJlbnRQYXJlbnRJbmRleCA+IDApIHRoaXMuZHJhZ0Ryb3BNb2RlbFtwYXJlbnRQYXJlbnRJbmRleF1bcGFyZW50SW5kZXhdLnNwbGljZShpdGVtSW5kZXgsIDEpO1xuICB9XG5cbiAgZHJhZ292ZXJDYWxsYmFja0l0ZW1zKFBhcmVudFBhcmVudEluZGV4LCBwYXJlbnRJbmRleCl7XG4gICAgLy9wcmV2ZW50IGl0ZW1zIGluIGxheW91dCBjb2x1bW4gdG8gYmUgZHJhZyB0byBjb250cm9sIHNlbGVjdFxuICAgIGlmIChwYXJlbnRJbmRleCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy9UT0RPIDogd2lsbCByZXBsYWNlIGluIGh0bWwgOiBkbmQtZGlzYWJsZS1pZj1cIml0ZW1zLmxlbmd0aCA+IDJcIlxuICBkaXNhYmxlSXRlbURyb3BJZigpe1xuXG4gIH1cblxuICBkcm9wQ2FsbGJhY2tJdGVtcyhldmVudCwgaW5kZXgsIHJlYWxJbmRleCwgcGFyZW50SW5kZXgsIHBhcmVudFBhcmVudEluZGV4LCBwYXJlbnRQYXJlbnRQYXJlbnRJbmRleCwgaXRlbSwgZXh0ZXJuYWwsIHR5cGUsIGFsbG93ZWRUeXBlKXtcbiAgICBpZiAoZXh0ZXJuYWwpIHtcbiAgICAgIGlmIChhbGxvd2VkVHlwZSA9PT0gJ2l0ZW1UeXBlJyAmJiAhaXRlbS5sYWJlbCkgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBpZiAoYWxsb3dlZFR5cGUgPT09ICdjb250YWluZXJUeXBlJyAmJiAhYW5ndWxhci5pc0FycmF5KGl0ZW0pKSAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvL3NldCBhIHRpbWVvdXQgYmVmb3JlIGJpbmRpbmcgc2luY2UgZGRNb2RlbCBtYXkgbm90IGJlIGNhbGxlZCB3aGVuIGFscmVhZHkgZnVsbCB1cGRhdGVkXG4gICAgbGV0IHRpbWVyUmVmcmVzaEREVG9Db25maWcgPSB0aGlzLiR0aW1lb3V0KCgpPT57XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGFuZ3VsYXIuY29weSh0aGlzLmRkTW9kZWxDb25mTW9kZWxQcm94eVNlcnZpY2UucmVmcmVzaEFsbENvbmZpZ3VyYXRpb25Gcm9tRHJhZ0FuZERyb3BNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMuZHJhZ0Ryb3BNb2RlbCkpO1xuICAgICAgICB0aGlzLmZvcm1GaWVsZE1hbmFnZS5hcHBseUNvbmZpZ3VyYXRpb25Ub2Zvcm1seU1vZGVsKHRoaXMuY29uZmlndXJhdGlvbiwgdGhpcy53ZkZvcm1GaWVsZHMsIHRoaXMuZGF0YU1vZGVsKTtcbiAgICAgICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weSh0aGlzLndmRm9ybUZpZWxkcyk7XG4gICAgICAgIC8vIHJlZnJlc2ggY29udHJvbHMga2V5IGluIGRyYWdEcm9wIE1vZGVsIHRvIHBlcnNpc3QgYWxyZWFkeSBleGlzdHMgY29udHJvbHMgYmV0d2VlbiByZWZyZXNoZXMgd2hlbiBpdGVtIGRyb3AgZXZlbnRzXG4gICAgICAgIHRoaXMuZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZS5yZWZyZXNoQ29udHJvbHNLZXlzKHRoaXMuY29uZmlndXJhdGlvbiwgdGhpcy5kcmFnRHJvcE1vZGVsKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgLy8gYWRkL3NldCByaWdodENsaWtlZCBwcm9wZXJ0eSB0byBmYWxzZSAod2lsbCBoZWxwIGVkYVJpZ2h0Q2xpY2sgZGlyZWN0aXZlKVxuICAgIHRoaXMuZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlci5zZXRVblJpZ2h0Q2xpY2tlZChpdGVtKTtcbiAgICAvLyB0aW1lclJlZnJlc2hERFRvQ29uZmlnIHRpbWVyIGRlc3RydWN0aW9uXG4gICAgdGhpcy4kc2NvcGUuJG9uKCckZGVzdHJveScsICgpPT50aGlzLiR0aW1lb3V0LmNhbmNlbCh0aW1lclJlZnJlc2hERFRvQ29uZmlnKSk7XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuXG4gIHNhdmVGcm9tRWRpdFBhbmVsKCkge1xuICAgIC8qKlxuICAgICogVE9ETyA6XG4gICAgKiBzaG91bGQgYmUgY2FsbGVkIGZyb20gZWRpdCBwYW5lbFxuICAgICpcbiAgICAqIEFORFxuICAgICpcbiAgICAqIHNob3VsZCBjYWxsIGFsbCB0aGVzZSBtZXRob2RzXG4gICAgKlxuICAgICogbmVlZCB0byBnZXQgIDpcbiAgICAqXG4gICAgKiAtIGxpbmUgaW5kZXhcbiAgICAqIC0gY29sdW1uIGluZGV4XG4gICAgKiAtIGJhc2ljU2VsZWN0Um93Q29sbGVjdGlvbiAoZnJvbSBlZHBpdHBhbmVsY29udHJvbGxlcikgICAtLT4gbWF5YmUgaW4gY29udHJvbGxlck1vZGFsUHJveHkgc2VydmljZVxuICAgICogLSBncm91cGVkU2VsZWN0Um93Q29sbGVjdGlvbiAoZnJvbSBlZHBpdHBhbmVsY29udHJvbGxlcikgLS0+IG1heWJlIGluIGNvbnRyb2xsZXJNb2RhbFByb3h5IHNlcnZpY2VcbiAgICAqIC0gcmFkaW9Sb3dDb2xsZWN0aW9uIChmcm9tIGVkcGl0cGFuZWxjb250cm9sbGVyKSAgICAgICAgIC0tPiBtYXliZSBpbiBjb250cm9sbGVyTW9kYWxQcm94eSBzZXJ2aWNlXG4gICAgKi9cbiAgICB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmJpbmRTcGVjaWFsQ3RybFRlbXBvcnlNb2RlbHNUb1Byb3h5TW9kZWwoKTtcbiAgICAvL3NhdmUgY29uZmlnIHRvIGNvbnRyb2xcbiAgICAvL2NvbnRyb2xsZXJNb2RhbFByb3h5LmFwcGx5Q29uZmlnVG9TZWxlY3RlZENvbnRyb2woc2VsZi5wcm94eU1vZGVsKTtcbiAgICAvL3JldHVybiBjdXJyZW50IG1vZGVsIHRvIHBhcmVudCBjb250cm9sbGVyIDpcblxuICAgIC8vdXBkYXRlIGNvbmZpZ3VyYXRpb24gbW9kZWwgYW5kIGZvcm1seSBtb2RlbFxuICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuYmluZENvbmZpZ3VyYXRpb25Nb2RlbEZyb21Qcm94eU1vZGVsKHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuZ2V0RWRpdFBhbmVsTW9kZWxMaW5lSW5kZXgoKSwgdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5nZXRFZGl0UGFuZWxNb2RlbENvbHVtbkluZGV4KCksIHRoaXMuY29uZmlndXJhdGlvbik7XG4gICAgdGhpcy5mb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMud2ZGb3JtRmllbGRzLCB0aGlzLmRhdGFNb2RlbCk7XG4gICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weSh0aGlzLndmRm9ybUZpZWxkcyk7XG4gICAgdGhpcy5kZE1vZGVsQ29uZk1vZGVsUHJveHlTZXJ2aWNlLnJlZnJlc2hDb250cm9sc0tleXModGhpcy5jb25maWd1cmF0aW9uLCB0aGlzLmRyYWdEcm9wTW9kZWwpO1xuICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuc2V0RWRpdFBhbmVsTW9kZWxUb2dnbGUoZmFsc2UpO1xuICAgIHRoaXMuZWRpdFBhbmVsTW9kZWwudG9nZ2xlID0gdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5nZXRFZGl0UGFuZWxNb2RlbFRvZ2dsZSgpO1xuICAgIHRoaXMuZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlci5yZXNldEFsbERyYWdEcm9wSXRlbVNlbGVjdGVkU3RhdGUodGhpcy5kcmFnRHJvcE1vZGVsKTtcbiAgfVxuXG5cbiAgY2xvc2VFZGl0UGFuZWwoKXtcbiAgICAvLyByZXNldCBhbGwgcmlnaHRDbGlja2VkIGNvbnRyb2wgcHJvcGVydGllcyB0byBmYWxzZVxuICAgIHRoaXMuZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlci5yZXNldEFsbERyYWdEcm9wSXRlbVNlbGVjdGVkU3RhdGUodGhpcy5kcmFnRHJvcE1vZGVsKTtcblxuICAgIC8qKlxuICAgICogVE9ETyA6IHJlZnJlc2ggY29uZmlndXJhdGlvbiBtb2RlbFxuICAgICogdW5jb21tZW50IGFmdGVyIHVwZGF0ZSB0aGVzZSBuZXh0IDMgbGluZXNcbiAgICAqXG4gICAgKiBOT1RFIDogaW5kZXhMaW5lIEFORCAgbnVtY29sdW1uIHNob3VsZCBiZSBzdG9yZWQgaW4gc2VydmljZSBhbmRcbiAgICAqIHVwZGF0ZWQgd2hlbiB0b2dsZSBzaWRlcGFuZWxcbiAgICAqL1xuICAgIC8vdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5iaW5kQ29uZmlndXJhdGlvbk1vZGVsRnJvbVByb3h5TW9kZWwoaW5kZXhMaW5lLCBudW1jb2x1bW4sIG1vZGFsQWRkQ3RybE1vZGVsLCB0aGlzLmNvbmZpZ3VyYXRpb24pO1xuICAgIC8vdGhpcy5mb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMud2ZGb3JtRmllbGRzLCB0aGlzLmRhdGFNb2RlbCk7XG4gICAgLy90aGlzLndmRm9ybUZpZWxkc09ubHlOZWVkZWRQcm9wZXJ0aWVzID0gYW5ndWxhci5jb3B5KHRoaXMud2ZGb3JtRmllbGRzKTtcblxuICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuc2V0RWRpdFBhbmVsTW9kZWxUb2dnbGUoZmFsc2UpO1xuICAgIHRoaXMuZWRpdFBhbmVsTW9kZWwudG9nZ2xlID0gdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5nZXRFZGl0UGFuZWxNb2RlbFRvZ2dsZSgpO1xuICB9XG5cblxuICBzZXRSaWdodENsaWNrZWQocHJldmlvdXNTdGF0ZSwgaXRlbSl7XG4gICAgaXRlbS5yaWdodENsaWtlZCA9IHRydWU7XG4gIH1cblxuICB0b2dnbGVFZGl0UGFuZWwoZXZlbnQsIGxpbmVJbmRleCwgY29sSW5kZXgsIGl0ZW0pe1xuICAgIHRoaXMuZGRJdGVtUmlnaHRDbGlja2VkTWFuYWdlci5yZXNldEFsbERyYWdEcm9wSXRlbVNlbGVjdGVkU3RhdGUodGhpcy5kcmFnRHJvcE1vZGVsKTtcbiAgICAvLyBhbHJlYWR5IG9wZW5lZCAoY291bGQgYmUgYW5vdGhlciBjb250cm9sIGVkaXQpXG4gICAgaWYgKHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuZ2V0RWRpdFBhbmVsTW9kZWxUb2dnbGUoKSkge1xuICAgICAgLy8gLT4gaW1tZWRpYXRlIGNsb3NlIGFuZCByZWZyZXNoIGNvbmZpZ3VyYXRpb24gbW9kZWwgKyBmb3JtbHkgbW9kZWxcbiAgICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuc2V0RWRpdFBhbmVsTW9kZWxUb2dnbGUoZmFsc2UpO1xuICAgICAgdGhpcy5lZGl0UGFuZWxNb2RlbC50b2dnbGUgPSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmdldEVkaXRQYW5lbE1vZGVsVG9nZ2xlKCk7XG5cbiAgICAgIC8vVE9ETyA6IGZvciByZWZyZXNoaW5nXG4gICAgICAvL3RoaXMuY29udHJvbGxlck1vZGFsUHJveHkuYmluZENvbmZpZ3VyYXRpb25Nb2RlbEZyb21Qcm94eU1vZGVsKGluZGV4TGluZSwgbnVtY29sdW1uLCBtb2RhbEFkZEN0cmxNb2RlbCwgdGhpcy5jb25maWd1cmF0aW9uKTtcbiAgICAgIC8vdGhpcy5mb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMud2ZGb3JtRmllbGRzLCB0aGlzLmRhdGFNb2RlbCk7XG4gICAgICAvL3RoaXMud2ZGb3JtRmllbGRzT25seU5lZWRlZFByb3BlcnRpZXMgPSBhbmd1bGFyLmNvcHkodGhpcy53ZkZvcm1GaWVsZHMpO1xuXG4gICAgICAvLyBjaGVjayBpZiBuZXcgY29udHJvbCByaWdodCBjbGlja2VkIG90aGVyd2lzZSBqdXN0IHRvZ2dsZSBzaWRlIHBhbmVsXG4gICAgICBpZiAodHlwZW9mIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuZ2V0RWRpdFBhbmVsTW9kZWxMaW5lSW5kZXgoKSAgICAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5nZXRFZGl0UGFuZWxNb2RlbENvbHVtbkluZGV4KCkgICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgIHR5cGVvZiB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmdldEVkaXRQYW5lbE1vZGVsQ29udHJvbCgpICAgICAgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmdldEVkaXRQYW5lbE1vZGVsTGluZUluZGV4KCkgICA9PT0gbGluZUluZGV4ICYmXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmdldEVkaXRQYW5lbE1vZGVsQ29sdW1uSW5kZXgoKSA9PT0gY29sSW5kZXggICYmXG4gICAgICAgICAgYW5ndWxhci5lcXVhbHModGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5nZXRFZGl0UGFuZWxNb2RlbENvbnRyb2woKSwgaXRlbSkpIHtcbiAgICAgICAgICAvL2NvbnNvbGUuaW5mbygnYWxyZWFkeSBvcGVuZWQgZm9yIFNBTUUgY3RybCA6IHNvIGNsb3NlIC0gbm8gcmUtb3BlbicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vY29uc29sZS5pbmZvKCdhbHJlYWR5IG9wZW5lZCBmb3IgRElGRkVSRU5UIGN0cmwgOiBzbyByZS1vcGVuJyk7XG4gICAgICAgICAgaXRlbS5yaWdodENsaWtlZCA9IHRydWU7XG4gICAgICAgICAgLy8gc2V0IGEgdGltZW91dCBiZWZvcmUgcmUtb3BlbmluZywgNTAwbXMgaXMgb2sgZm9yIGEgcHMtc2l6ZT1cIjQwMHB4XCJcbiAgICAgICAgICBsZXQgdGltZXJDbG9zZU9wZW5lZEVkaXRQYW5lbCA9IHRoaXMuJHRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuc2V0RWRpdFBhbmVsTW9kZWxMaW5lSW5kZXgobGluZUluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuc2V0RWRpdFBhbmVsTW9kZWxDb2x1bW5JbmRleChjb2xJbmRleCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LnNldEVkaXRQYW5lbE1vZGVsQ29udHJvbChpdGVtKTtcbiAgICAgICAgICAgIC8vIGNvbnRyb2wgbW9kZWwgcGFzc2VkIHRvIFNlcnZpY2UgOiBjb250cm9sbGVyTW9kYWxQcm94eVxuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5zZXRQcm94eU1vZGVsRnJvbUNvbmZpZ3VyYXRpb25TZWxlY3Rpb24odGhpcy5jb25maWd1cmF0aW9uLCBsaW5lSW5kZXgsIGNvbEluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuc2V0RWRpdFBhbmVsTW9kZWxUb2dnbGUodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLiRzY29wZS5lZGl0UGFuZWxNb2RlbC50b2dnbGUgPSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmdldEVkaXRQYW5lbE1vZGVsVG9nZ2xlKCk7XG4gICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgICB0aGlzLiRzY29wZS4kb24oJyRkZXN0cm95JywgKCk9PnRoaXMuJHRpbWVvdXQuY2FuY2VsKHRpbWVyQ2xvc2VPcGVuZWRFZGl0UGFuZWwpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBwcmV2aW91cyBzdGF0ZSA9IGNsb3NlZCA9IGltbWVkaWF0ZSBvcGVuXG4gICAgICAvLyBjb25zb2xlLmluZm8oJ05PVCBhbHJlYWR5IG9wZW5lZCA6IHNvIG9wZW4nKTtcbiAgICAgIGl0ZW0ucmlnaHRDbGlrZWQgPSB0cnVlO1xuXG4gICAgICB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LnNldEVkaXRQYW5lbE1vZGVsTGluZUluZGV4KGxpbmVJbmRleCk7XG4gICAgICB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LnNldEVkaXRQYW5lbE1vZGVsQ29sdW1uSW5kZXgoY29sSW5kZXgpO1xuICAgICAgdGhpcy5jb250cm9sbGVyTW9kYWxQcm94eS5zZXRFZGl0UGFuZWxNb2RlbENvbnRyb2woaXRlbSk7XG4gICAgICAvLyBjb250cm9sIG1vZGVsIHBhc3NlZCB0byBTZXJ2aWNlIDogY29udHJvbGxlck1vZGFsUHJveHlcbiAgICAgIHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuc2V0UHJveHlNb2RlbEZyb21Db25maWd1cmF0aW9uU2VsZWN0aW9uKHRoaXMuY29uZmlndXJhdGlvbiwgbGluZUluZGV4LCBjb2xJbmRleCk7XG4gICAgICB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LnNldEVkaXRQYW5lbE1vZGVsVG9nZ2xlKHRydWUpO1xuICAgICAgdGhpcy5lZGl0UGFuZWxNb2RlbC50b2dnbGUgPSB0aGlzLmNvbnRyb2xsZXJNb2RhbFByb3h5LmdldEVkaXRQYW5lbE1vZGVsVG9nZ2xlKCk7XG4gICAgfVxuXG4gICAgLy8gY29uc29sZS5pbmZvKCdhZnRlciB0b2dnbGVMZWZ0UGFuZWwgY2hlY2sgOicpO1xuICAgIC8vIGNvbnNvbGUuZGlyKHtcbiAgICAvLyAgICd0aGlzLmVkaXRQYW5lbE1vZGVsJyAgICAgICAgICAgICAgICAgOiBhbmd1bGFyLmNvcHkodGhpcy5lZGl0UGFuZWxNb2RlbCksXG4gICAgLy8gICAnY29udHJvbGxlck1vZGFsUHJveHkuZWRpdFBhbmVsTW9kZWwnIDogYW5ndWxhci5jb3B5KHRoaXMuY29udHJvbGxlck1vZGFsUHJveHkuZWRpdFBhbmVsTW9kZWwpXG4gICAgLy8gfSk7XG4gIH1cblxuICAvLyAvLyByZWZyZXNoTW9kZWxzIDogdG8gY2FsbCBhZnRlciBkcmFnIGFuZCBkcm9wIGV2ZW50c1xuICAvLyByZWZyZXNoTW9kZWxzKCl7XG4gIC8vICAgdGhpcy4kdGltZW91dCgoKT0+e1xuICAvLyAgICBjb25zb2xlLmluZm8oJ3JlZnJlc2hpbmcgbW9kZWxzJyk7XG4gIC8vICAgIGZvcm1GaWVsZE1hbmFnZS5hcHBseUNvbmZpZ3VyYXRpb25Ub2Zvcm1seU1vZGVsKHRoaXMuY29uZmlndXJhdGlvbiwgdGhpcy53ZkZvcm1GaWVsZHMsIHRoaXMuZGF0YU1vZGVsKTtcbiAgLy8gICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weSh0aGlzLndmRm9ybUZpZWxkcyk7XG4gIC8vICAgfSwgMTApO1xuICAvLyB9XG5cblxuICByZW1vdmVUaGlzTGluZShsaW5lSW5kZXgpe1xuICAgIHRoaXMuZHJhZ0Ryb3BNb2RlbFsxXS5zcGxpY2UobGluZUluZGV4LDEpO1xuICB9XG5cblxuICAvL1RPRE8gOiB0byBmaXhcbiAgYWRkTmV3bGluZSgpe1xuICAgIC8vIHJlLXJlbmRlciBmb3JtZmllbGRcbiAgICAvLyBUT0RPIDogdG8gZml4XG4gICAgdGhpcy5mb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbCh0aGlzLmNvbmZpZ3VyYXRpb24sIHRoaXMud2ZGb3JtRmllbGRzLCB0aGlzLmRhdGFNb2RlbCk7XG4gICAgdGhpcy53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weSh0aGlzLndmRm9ybUZpZWxkcyk7XG4gIH1cblxuICBpbnNlcnROZXdMaW5lKCl7XG4gICAgdGhpcy5hZGROZXdsaW5lKCk7XG4gICAgdGhpcy5kcmFnRHJvcE1vZGVsWzFdLnB1c2goW10pO1xuICB9XG5cblxuXG5cbn1cblxuZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbkN0cmwuJGluamVjdCA9IFtcbiAgICAnJHNjb3BlJyxcbiAgICAnZWFzeUZvcm1HZW5WZXJzaW9uJyxcbiAgICAnJGZpbHRlcicsXG4gICAgJyRhbmNob3JTY3JvbGwnLFxuICAgICd0b2FzdGVyJyxcbiAgICAnJHRpbWVvdXQnLFxuICAgICckbG9nJyxcbiAgICAnZm9ybUZpZWxkTWFuYWdlJyxcbiAgICAnY29udHJvbGxlck1vZGFsUHJveHknLFxuICAgICdkcmFnRHJvcEl0ZW1EZWNvcmF0aW9uU2VydmljZScsXG4gICAgJ2RkTW9kZWxDb25mTW9kZWxQcm94eVNlcnZpY2UnLFxuICAgICdkZEl0ZW1SaWdodENsaWNrZWRNYW5hZ2VyJyAsXG4gICAgJ2Vhc3lGb3JtRHJhZ1dheUNvbmZpZydcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGVkYURyYWdEcm9wV2F5RWFzeUZvcm1HZW5DdHJsO1xuXG5leHBvcnQge1xuICBEUkFHX0RST1BfV0FZX0VBU1lfRk9STV9HRU5fQ09OVFJPTExFUixcbiAgRFJBR19EUk9QX1dBWV9FQVNZX0ZPUk1fR0VOX0NPTlRST0xMRVJBU1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9hcHAvZHJhZ2Ryb3B3YXkvY29tcG9uZW50cy9lZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuL2VkYURyYWdEcm9wV2F5LmVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4uY29udHJvbGxlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  356. /***/ },
  357. /* 81 */
  358. /***/ function(module, exports) {
  359. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n/* global angular */\nvar DEBUG_MODEL = {\n\tshowDebug: false,\n\tconfigurationModelNumberofLines: 1\n};\nvar initDebugModel = function initDebugModel() {\n\treturn angular.copy(DEBUG_MODEL);\n};\n\nvar DEFAULT_TAB_MODEL = {\n\teditTab: {\n\t\tactive: true\n\t},\n\tpreviewTab: {\n\t\tactive: false,\n\t\ttabVisible: true,\n\t\tmodelsVisible: true\n\t}\n};\n\nvar initTabModel = function initTabModel(isPreviewPanelVisible, arePreviewModelsVisible) {\n\tvar _tabModel = angular.copy(DEFAULT_TAB_MODEL);\n\tangular.extend(_tabModel.previewTab, {\n\t\ttabVisible: isPreviewPanelVisible,\n\t\tmodelsVisible: arePreviewModelsVisible\n\t});\n\treturn _tabModel;\n};\n\nvar COLUMN_TEMPLATE = {\n\tnumColumn: -1,\n\texist: true,\n\tcontrol: {\n\t\ttype: 'none',\n\t\tkey: 'none',\n\t\tsubtype: 'none'\n\t\t// templateOptions: {\n\t\t// label: 'none',\n\t\t// placeholder: 'none',\n\t\t// required: false,\n\t\t// description: 'Descriptive text'\n\t\t// }\n\t}\n};\nvar initColumnTemplate = function initColumnTemplate() {\n\treturn angular.copy(COLUMN_TEMPLATE);\n};\n\nvar LINE_TEMPLATE = {\n\tline: -1,\n\tactiveColumn: 1,\n\tcolumns: [{\n\t\tnumColumn: 1,\n\t\texist: true,\n\t\tcontrol: {\n\t\t\ttype: 'none',\n\t\t\tkey: 'none'\n\t\t\t// templateOptions: {\n\t\t\t// label: 'none',\n\t\t\t// placeholder: 'none',\n\t\t\t// required: false,\n\t\t\t// description: 'Descriptive text'\n\t\t\t// }\n\t\t}\n\t}]\n};\nvar initLineTemplate = function initLineTemplate() {\n\treturn angular.copy(LINE_TEMPLATE);\n};\n\nvar DEFAULT_IHM_MODEL = {\n\tpreview: {\n\t\tformlyModelViewExpanded: true,\n\t\tformlyFieldsViewExpanded: true,\n\t\tcustomizeFormButtonsExpanded: true,\n\t\tsaveThisFormExpanded: true\n\t}\n};\n\nvar initIhmModel = function initIhmModel() {\n\treturn angular.copy(DEFAULT_IHM_MODEL);\n};\n\nexports.initDebugModel = initDebugModel;\nexports.initTabModel = initTabModel;\nexports.initColumnTemplate = initColumnTemplate;\nexports.initLineTemplate = initLineTemplate;\nexports.initIhmModel = initIhmModel;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLmNvbnRyb2xsZXIuaGVscGVycy5qcz82YWJmIl0sIm5hbWVzIjpbIkRFQlVHX01PREVMIiwic2hvd0RlYnVnIiwiY29uZmlndXJhdGlvbk1vZGVsTnVtYmVyb2ZMaW5lcyIsImluaXREZWJ1Z01vZGVsIiwiYW5ndWxhciIsImNvcHkiLCJERUZBVUxUX1RBQl9NT0RFTCIsImVkaXRUYWIiLCJhY3RpdmUiLCJwcmV2aWV3VGFiIiwidGFiVmlzaWJsZSIsIm1vZGVsc1Zpc2libGUiLCJpbml0VGFiTW9kZWwiLCJpc1ByZXZpZXdQYW5lbFZpc2libGUiLCJhcmVQcmV2aWV3TW9kZWxzVmlzaWJsZSIsIl90YWJNb2RlbCIsImV4dGVuZCIsIkNPTFVNTl9URU1QTEFURSIsIm51bUNvbHVtbiIsImV4aXN0IiwiY29udHJvbCIsInR5cGUiLCJrZXkiLCJzdWJ0eXBlIiwiaW5pdENvbHVtblRlbXBsYXRlIiwiTElORV9URU1QTEFURSIsImxpbmUiLCJhY3RpdmVDb2x1bW4iLCJjb2x1bW5zIiwiaW5pdExpbmVUZW1wbGF0ZSIsIkRFRkFVTFRfSUhNX01PREVMIiwicHJldmlldyIsImZvcm1seU1vZGVsVmlld0V4cGFuZGVkIiwiZm9ybWx5RmllbGRzVmlld0V4cGFuZGVkIiwiY3VzdG9taXplRm9ybUJ1dHRvbnNFeHBhbmRlZCIsInNhdmVUaGlzRm9ybUV4cGFuZGVkIiwiaW5pdElobU1vZGVsIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0EsSUFBTUEsY0FBYztBQUNuQkMsWUFBWSxLQURPO0FBRW5CQyxrQ0FBa0M7QUFGZixDQUFwQjtBQUlBLElBQU1DLGlCQUFpQixTQUFqQkEsY0FBaUI7QUFBQSxRQUFNQyxRQUFRQyxJQUFSLENBQWFMLFdBQWIsQ0FBTjtBQUFBLENBQXZCOztBQUlBLElBQU1NLG9CQUFvQjtBQUN6QkMsVUFBWTtBQUNYQyxVQUFTO0FBREUsRUFEYTtBQUl6QkMsYUFBYztBQUNiRCxVQUFhLEtBREE7QUFFYkUsY0FBZSxJQUZGO0FBR2JDLGlCQUFnQjtBQUhIO0FBSlcsQ0FBMUI7O0FBV0EsSUFBTUMsZUFBZSxTQUFmQSxZQUFlLENBQUNDLHFCQUFELEVBQXdCQyx1QkFBeEIsRUFBb0Q7QUFDeEUsS0FBSUMsWUFBWVgsUUFBUUMsSUFBUixDQUFhQyxpQkFBYixDQUFoQjtBQUNBRixTQUFRWSxNQUFSLENBQWVELFVBQVVOLFVBQXpCLEVBQXFDO0FBQ3BDQyxjQUFlRyxxQkFEcUI7QUFFcENGLGlCQUFnQkc7QUFGb0IsRUFBckM7QUFJQSxRQUFPQyxTQUFQO0FBQ0EsQ0FQRDs7QUFVQSxJQUFNRSxrQkFBbUI7QUFDeEJDLFlBQWEsQ0FBQyxDQURVO0FBRXhCQyxRQUFVLElBRmM7QUFHeEJDLFVBQVk7QUFDWEMsUUFBTyxNQURJO0FBRVhDLE9BQVEsTUFGRztBQUdYQyxXQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVFc7QUFIWSxDQUF6QjtBQWVBLElBQU1DLHFCQUFxQixTQUFyQkEsa0JBQXFCO0FBQUEsUUFBTXBCLFFBQVFDLElBQVIsQ0FBYVksZUFBYixDQUFOO0FBQUEsQ0FBM0I7O0FBR0EsSUFBTVEsZ0JBQWdCO0FBQ3JCQyxPQUFLLENBQUMsQ0FEZTtBQUVyQkMsZUFBZSxDQUZNO0FBR3JCQyxVQUFTLENBQ1I7QUFDQ1YsYUFBVyxDQURaO0FBRUNDLFNBQU0sSUFGUDtBQUdDQyxXQUFTO0FBQ1JDLFNBQUssTUFERztBQUVSQyxRQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUlE7QUFIVixFQURRO0FBSFksQ0FBdEI7QUFvQkEsSUFBTU8sbUJBQW1CLFNBQW5CQSxnQkFBbUI7QUFBQSxRQUFNekIsUUFBUUMsSUFBUixDQUFhb0IsYUFBYixDQUFOO0FBQUEsQ0FBekI7O0FBR0EsSUFBTUssb0JBQW9CO0FBQ3pCQyxVQUFVO0FBQ1JDLDJCQUE2QixJQURyQjtBQUVSQyw0QkFBOEIsSUFGdEI7QUFHUkMsZ0NBQWdDLElBSHhCO0FBSVJDLHdCQUE0QjtBQUpwQjtBQURlLENBQTFCOztBQVVBLElBQU1DLGVBQWUsU0FBZkEsWUFBZTtBQUFBLFFBQU1oQyxRQUFRQyxJQUFSLENBQWF5QixpQkFBYixDQUFOO0FBQUEsQ0FBckI7O1FBR0MzQixjLEdBQUFBLGM7UUFDQVMsWSxHQUFBQSxZO1FBQ0FZLGtCLEdBQUFBLGtCO1FBQ0FLLGdCLEdBQUFBLGdCO1FBQ0FPLFksR0FBQUEsWSIsImZpbGUiOiI4MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5jb25zdCBERUJVR19NT0RFTCA9IHtcblx0c2hvd0RlYnVnIDogZmFsc2UsXG5cdGNvbmZpZ3VyYXRpb25Nb2RlbE51bWJlcm9mTGluZXMgOiAxICAgICAgICBcbn07XG5jb25zdCBpbml0RGVidWdNb2RlbCA9ICgpID0+IGFuZ3VsYXIuY29weShERUJVR19NT0RFTCk7XG5cblxuXG5jb25zdCBERUZBVUxUX1RBQl9NT0RFTCA9IHtcblx0ZWRpdFRhYlx0XHRcdDoge1xuXHRcdGFjdGl2ZSA6IHRydWVcblx0fSxcblx0cHJldmlld1RhYiBcdDoge1xuXHRcdGFjdGl2ZSBcdFx0XHRcdDogZmFsc2UsXG5cdFx0dGFiVmlzaWJsZSBcdFx0OiB0cnVlLFxuXHRcdG1vZGVsc1Zpc2libGUgOiB0cnVlXG5cdH1cbn07XG5cbmNvbnN0IGluaXRUYWJNb2RlbCA9IChpc1ByZXZpZXdQYW5lbFZpc2libGUsIGFyZVByZXZpZXdNb2RlbHNWaXNpYmxlKSA9PiB7XG5cdGxldCBfdGFiTW9kZWwgPSBhbmd1bGFyLmNvcHkoREVGQVVMVF9UQUJfTU9ERUwpO1xuXHRhbmd1bGFyLmV4dGVuZChfdGFiTW9kZWwucHJldmlld1RhYiwge1xuXHRcdHRhYlZpc2libGUgXHRcdDogaXNQcmV2aWV3UGFuZWxWaXNpYmxlLFxuXHRcdG1vZGVsc1Zpc2libGUgOiBhcmVQcmV2aWV3TW9kZWxzVmlzaWJsZVx0XHRcblx0fSk7XG5cdHJldHVybiBfdGFiTW9kZWw7XG59O1xuXG5cbmNvbnN0IENPTFVNTl9URU1QTEFURSA9ICB7XG5cdG51bUNvbHVtblx0XHQ6IC0xLFxuXHRleGlzdFx0XHRcdFx0OnRydWUsIFxuXHRjb250cm9sXHRcdFx0OiB7XG5cdFx0dHlwZVx0XHQ6J25vbmUnLFxuXHRcdGtleVx0XHRcdDogJ25vbmUnLFxuXHRcdHN1YnR5cGVcdDogJ25vbmUnXG5cdFx0Ly8gdGVtcGxhdGVPcHRpb25zOiB7XG5cdFx0Ly8gICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ25vbmUnLFxuXHRcdC8vICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdub25lJyxcblx0XHQvLyAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcblx0XHQvLyAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpdmUgdGV4dCdcblx0XHQvLyAgICAgICAgICAgICAgICAgICB9XG5cdH1cbn07IFxuY29uc3QgaW5pdENvbHVtblRlbXBsYXRlID0gKCkgPT4gYW5ndWxhci5jb3B5KENPTFVNTl9URU1QTEFURSk7XG5cblxuY29uc3QgTElORV9URU1QTEFURSA9IHtcblx0bGluZTotMSwgXG5cdGFjdGl2ZUNvbHVtbiA6IDEsXG5cdGNvbHVtbnM6IFtcblx0XHR7ICBcblx0XHRcdG51bUNvbHVtbjogMSxcblx0XHRcdGV4aXN0OnRydWUsIFxuXHRcdFx0Y29udHJvbDoge1xuXHRcdFx0XHR0eXBlOidub25lJyxcblx0XHRcdFx0a2V5OiAnbm9uZSdcblx0XHRcdFx0Ly8gdGVtcGxhdGVPcHRpb25zOiB7XG5cdFx0XHRcdC8vICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdub25lJyxcblx0XHRcdFx0Ly8gICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ25vbmUnLFxuXHRcdFx0XHQvLyAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcblx0XHRcdFx0Ly8gICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aXZlIHRleHQnXG5cdFx0XHRcdC8vICAgICAgICAgICAgICAgICAgIH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdF1cbn07XG5jb25zdCBpbml0TGluZVRlbXBsYXRlID0gKCkgPT4gYW5ndWxhci5jb3B5KExJTkVfVEVNUExBVEUpO1xuXG5cbmNvbnN0IERFRkFVTFRfSUhNX01PREVMID0ge1xuXHRwcmV2aWV3IDoge1xuXHRcdFx0Zm9ybWx5TW9kZWxWaWV3RXhwYW5kZWQgXHRcdFx0OiB0cnVlLFxuXHRcdFx0Zm9ybWx5RmllbGRzVmlld0V4cGFuZGVkIFx0XHRcdDogdHJ1ZSxcblx0XHRcdGN1c3RvbWl6ZUZvcm1CdXR0b25zRXhwYW5kZWQgXHQ6IHRydWUsXG5cdFx0XHRzYXZlVGhpc0Zvcm1FeHBhbmRlZCBcdFx0XHRcdFx0OiB0cnVlICBcblx0fVxufTtcblxuXG5jb25zdCBpbml0SWhtTW9kZWwgPSAoKSA9PiBhbmd1bGFyLmNvcHkoREVGQVVMVF9JSE1fTU9ERUwpO1xuXG5leHBvcnQge1xuXHRpbml0RGVidWdNb2RlbCxcblx0aW5pdFRhYk1vZGVsLFxuXHRpbml0Q29sdW1uVGVtcGxhdGUsXG5cdGluaXRMaW5lVGVtcGxhdGUsXG5cdGluaXRJaG1Nb2RlbFxufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLmNvbnRyb2xsZXIuaGVscGVycy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  360. /***/ },
  361. /* 82 */
  362. /***/ function(module, exports, __webpack_require__) {
  363. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.EDA_DRAGDROP_WAY_EASY_FORM_GEN_DIRECTIVE = undefined;\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGenTemplate = __webpack_require__(83);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGenTemplate2 = _interopRequireDefault(_edaDragDropWayEdaDragdropWayEasyFormGenTemplate);\n\nvar _edaDragDropWayEdaDragdropWayEasyFormGen = __webpack_require__(80);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* global angular */\n\n//TODO : to bindToController\n//-> then angular 1.4+ will be required...\n//-> check methot to refactor inside rag drop way then common step way and drag drop way\n\nvar EDA_DRAGDROP_WAY_EASY_FORM_GEN_DIRECTIVE = 'edaDragdropWayEasyFormGen';\n\nfunction edaDragdropWayEasyFormGen($timeout, formFieldManage, ddModelConfModelProxyService,\n// dragDropConfig,\neasyFormDragWayConfig) {\n\n\tvar directive = {\n\t\trestrict: 'E',\n\t\ttemplate: _edaDragDropWayEdaDragdropWayEasyFormGenTemplate2.default,\n\t\tscope: {\n\t\t\tedaEasyFormGeneratorModel: '=',\n\t\t\tedaSaveFormEvent: '&edaSaveFormEvent'\n\t\t},\n\t\tcontroller: _edaDragDropWayEdaDragdropWayEasyFormGen.DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLER,\n\t\tcontrollerAs: _edaDragDropWayEdaDragdropWayEasyFormGen.DRAG_DROP_WAY_EASY_FORM_GEN_CONTROLLERAS,\n\t\treplace: false,\n\t\tlink: linkFct\n\t};\n\treturn directive;\n\n\tfunction linkFct(scope) {\n\t\t// watch \"scope.easyFormGeneratorModel\"\n\t\tscope.$watch(function () {\n\t\t\treturn scope.edaEasyFormGeneratorModel;\n\t\t}, function () {\n\t\t\treturn loadExistingConfigurationModel();\n\t\t}, true);\n\n\t\t// watch \"scope.returnSaveEvent\"\" = catch saving form event \n\t\tscope.$watch(function () {\n\t\t\treturn scope.returnSaveEvent;\n\t\t}, function (newValue) {\n\t\t\tif (newValue === true) {\n\t\t\t\tvar _easyFormGeneratorModel = {\n\t\t\t\t\tformName: scope.vm.configuration.formName,\n\t\t\t\t\tbtnSubmitText: scope.vm.configuration.submitButtonText,\n\t\t\t\t\tbtnCancelText: scope.vm.configuration.cancelButtonText,\n\t\t\t\t\tedaFieldsModel: scope.vm.configuration.lines,\n\t\t\t\t\t//just as test\n\t\t\t\t\tedaFieldsModelStringified: angular.toJson(scope.vm.configuration.lines),\n\t\t\t\t\tformlyFieldsModel: scope.vm.wfFormFieldsOnlyNeededProperties,\n\t\t\t\t\tdataModel: scope.vm.dataModel\n\t\t\t\t};\n\t\t\t\tscope.edaSaveFormEvent({\n\t\t\t\t\tedaEasyFormGeneratorModel: _easyFormGeneratorModel\n\t\t\t\t});\n\t\t\t\t//back to false, waiting next save event\n\t\t\t\tscope.returnSaveEvent = false;\n\t\t\t}\n\t\t});\n\n\t\tfunction returnAttributeConfigurationLinesIfNotEmpty() {\n\t\t\tvar edaEasyFormGeneratorModelToReturn = angular.isArray(scope.edaEasyFormGeneratorModel.edaFieldsModel) ? scope.edaEasyFormGeneratorModel.edaFieldsModel.length > 0 ? scope.edaEasyFormGeneratorModel.edaFieldsModel : emptyEdaFieldsModel() : emptyEdaFieldsModel();\n\t\t\treturn edaEasyFormGeneratorModelToReturn;\n\t\t}\n\n\t\t/**\n \t* empty fields model : to display at least an empty line\n \t* otherwise would look like ugly empty line like it were a bug\n \t*/\n\t\tfunction emptyEdaFieldsModel() {\n\t\t\tvar emptyModel = [{\n\t\t\t\t'line': 1,\n\t\t\t\t'activeColumn': 1,\n\t\t\t\t'columns': [{\n\t\t\t\t\t'numColumn': 1,\n\t\t\t\t\t'exist': true,\n\t\t\t\t\t'control': {\n\t\t\t\t\t\t'type': 'none',\n\t\t\t\t\t\t'key': 'none'\n\t\t\t\t\t}\n\t\t\t\t}]\n\t\t\t}];\n\t\t\treturn emptyModel;\n\t\t}\n\n\t\tfunction returnAttributeDataModelIfNotEmpty() {\n\t\t\tvar dataModelToReturn = angular.isArray(scope.edaEasyFormGeneratorModel.dataModel) ? scope.edaEasyFormGeneratorModel.dataModel.length > 0 ? scope.edaEasyFormGeneratorModel.dataModel : [] : [];\n\t\t\treturn dataModelToReturn;\n\t\t}\n\n\t\tfunction loadExistingConfigurationModel() {\n\t\t\tif (angular.isDefined(scope.edaEasyFormGeneratorModel)) {\n\t\t\t\tvar configlines = returnAttributeConfigurationLinesIfNotEmpty();\n\t\t\t\tscope.vm.configurationLoaded = {};\n\t\t\t\tformFieldManage.bindConfigurationLines(scope.vm.configurationLoaded, configlines, false);\n\t\t\t\t//apply configuration model\n\t\t\t\tscope.vm.configuration = angular.copy(scope.vm.configurationLoaded);\n\t\t\t\t//apply ddModel\n\t\t\t\tddModelConfModelProxyService.loadDragDropModelFromConfigurationModel(scope.vm.configuration, scope.vm.dragDropModel);\n\t\t\t\tupdateConfigurationClassName(scope.vm.configuration);\n\t\t\t\tddModelConfModelProxyService.refreshControlsKeys(scope.vm.configuration, scope.vm.dragDropModel);\n\t\t\t\t//apply formly model\n\t\t\t\tformFieldManage.applyConfigurationToformlyModel(scope.vm.configuration, scope.vm.wfFormFields, scope.vm.dataModel);\n\t\t\t\tscope.vm.wfFormFieldsOnlyNeededProperties = angular.copy(scope.vm.wfFormFields);\n\t\t\t\tscope.vm.dataModel = returnAttributeDataModelIfNotEmpty();\n\t\t\t\tscope.vm.configuration.formName = angular.isString(scope.edaEasyFormGeneratorModel.formName) ? scope.edaEasyFormGeneratorModel.formName : '';\n\t\t\t\tscope.vm.configuration.submitButtonText = angular.isString(scope.edaEasyFormGeneratorModel.btnSubmitText) ? scope.edaEasyFormGeneratorModel.btnSubmitText : 'Submit';\n\t\t\t\tscope.vm.configuration.cancelButtonText = angular.isString(scope.edaEasyFormGeneratorModel.btnCancelText) ? scope.edaEasyFormGeneratorModel.btnCancelText : 'Cancel';\n\t\t\t}\n\t\t}\n\n\t\tfunction updateConfigurationClassName(configModel) {\n\t\t\tangular.forEach(configModel.lines, function (aline) {\n\t\t\t\tvar cssClassToApply = easyFormDragWayConfig.getItemCssDependingNumberItemsInRow(aline.columns.length);\n\t\t\t\tangular.forEach(aline.columns, function (aControl) {\n\t\t\t\t\treturn aControl.control.className = cssClassToApply;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n}\n\nedaDragdropWayEasyFormGen.$inject = ['$timeout', 'formFieldManage', 'ddModelConfModelProxyService',\n// 'dragDropConfig',\n'easyFormDragWayConfig'];\n\nexports.default = edaDragdropWayEasyFormGen;\nexports.EDA_DRAGDROP_WAY_EASY_FORM_GEN_DIRECTIVE = EDA_DRAGDROP_WAY_EASY_FORM_GEN_DIRECTIVE;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLmRpcmVjdGl2ZS5qcz9iMjkwIl0sIm5hbWVzIjpbIkVEQV9EUkFHRFJPUF9XQVlfRUFTWV9GT1JNX0dFTl9ESVJFQ1RJVkUiLCJlZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuIiwiJHRpbWVvdXQiLCJmb3JtRmllbGRNYW5hZ2UiLCJkZE1vZGVsQ29uZk1vZGVsUHJveHlTZXJ2aWNlIiwiZWFzeUZvcm1EcmFnV2F5Q29uZmlnIiwiZGlyZWN0aXZlIiwicmVzdHJpY3QiLCJ0ZW1wbGF0ZSIsInNjb3BlIiwiZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbCIsImVkYVNhdmVGb3JtRXZlbnQiLCJjb250cm9sbGVyIiwiY29udHJvbGxlckFzIiwicmVwbGFjZSIsImxpbmsiLCJsaW5rRmN0IiwiJHdhdGNoIiwibG9hZEV4aXN0aW5nQ29uZmlndXJhdGlvbk1vZGVsIiwicmV0dXJuU2F2ZUV2ZW50IiwibmV3VmFsdWUiLCJfZWFzeUZvcm1HZW5lcmF0b3JNb2RlbCIsImZvcm1OYW1lIiwidm0iLCJjb25maWd1cmF0aW9uIiwiYnRuU3VibWl0VGV4dCIsInN1Ym1pdEJ1dHRvblRleHQiLCJidG5DYW5jZWxUZXh0IiwiY2FuY2VsQnV0dG9uVGV4dCIsImVkYUZpZWxkc01vZGVsIiwibGluZXMiLCJlZGFGaWVsZHNNb2RlbFN0cmluZ2lmaWVkIiwiYW5ndWxhciIsInRvSnNvbiIsImZvcm1seUZpZWxkc01vZGVsIiwid2ZGb3JtRmllbGRzT25seU5lZWRlZFByb3BlcnRpZXMiLCJkYXRhTW9kZWwiLCJyZXR1cm5BdHRyaWJ1dGVDb25maWd1cmF0aW9uTGluZXNJZk5vdEVtcHR5IiwiZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbFRvUmV0dXJuIiwiaXNBcnJheSIsImxlbmd0aCIsImVtcHR5RWRhRmllbGRzTW9kZWwiLCJlbXB0eU1vZGVsIiwicmV0dXJuQXR0cmlidXRlRGF0YU1vZGVsSWZOb3RFbXB0eSIsImRhdGFNb2RlbFRvUmV0dXJuIiwiaXNEZWZpbmVkIiwiY29uZmlnbGluZXMiLCJjb25maWd1cmF0aW9uTG9hZGVkIiwiYmluZENvbmZpZ3VyYXRpb25MaW5lcyIsImNvcHkiLCJsb2FkRHJhZ0Ryb3BNb2RlbEZyb21Db25maWd1cmF0aW9uTW9kZWwiLCJkcmFnRHJvcE1vZGVsIiwidXBkYXRlQ29uZmlndXJhdGlvbkNsYXNzTmFtZSIsInJlZnJlc2hDb250cm9sc0tleXMiLCJhcHBseUNvbmZpZ3VyYXRpb25Ub2Zvcm1seU1vZGVsIiwid2ZGb3JtRmllbGRzIiwiaXNTdHJpbmciLCJjb25maWdNb2RlbCIsImZvckVhY2giLCJhbGluZSIsImNzc0NsYXNzVG9BcHBseSIsImdldEl0ZW1Dc3NEZXBlbmRpbmdOdW1iZXJJdGVtc0luUm93IiwiY29sdW1ucyIsImFDb250cm9sIiwiY29udHJvbCIsImNsYXNzTmFtZSIsIiRpbmplY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7OztBQUNBOzs7O0FBUkE7O0FBR0E7QUFDQTtBQUNBOztBQVNBLElBQU1BLDJDQUEyQywyQkFBakQ7O0FBRUEsU0FBU0MseUJBQVQsQ0FDQ0MsUUFERCxFQUVDQyxlQUZELEVBR0NDLDRCQUhEO0FBSUM7QUFDQUMscUJBTEQsRUFLdUI7O0FBRXRCLEtBQUlDLFlBQVk7QUFDZkMsWUFBYyxHQURDO0FBRWZDLHFFQUZlO0FBR2ZDLFNBQWE7QUFDWkMsOEJBQTRCLEdBRGhCO0FBRVpDLHFCQUE0QjtBQUZoQixHQUhFO0FBT2ZDLDZGQVBlO0FBUWZDLGlHQVJlO0FBU2ZDLFdBQWEsS0FURTtBQVVmQyxRQUFXQztBQVZJLEVBQWhCO0FBWUEsUUFBT1YsU0FBUDs7QUFLQSxVQUFTVSxPQUFULENBQWlCUCxLQUFqQixFQUF1QjtBQUN0QjtBQUNBQSxRQUFNUSxNQUFOLENBQWE7QUFBQSxVQUFJUixN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LE9BQU4sQ0FBY3RCLE1BQXhFLENBQXRCO0FBQ0FSLFlBQVEwQixPQUFSLENBQWdCQyxNQUFNRyxPQUF0QixFQUErQixVQUFDQyxRQUFEO0FBQUEsWUFBYUEsU0FBU0MsT0FBVCxDQUFpQkMsU0FBakIsR0FBNkJMLGVBQTFDO0FBQUEsS0FBL0I7QUFDQSxJQUhEO0FBSUE7QUFFRjtBQUlBOztBQUVEM0QsMEJBQTBCaUUsT0FBMUIsR0FBb0MsQ0FDbkMsVUFEbUMsRUFFbkMsaUJBRm1DLEVBR25DLDhCQUhtQztBQUluQztBQUNBLHVCQUxtQyxDQUFwQzs7a0JBUWVqRSx5QjtRQUdkRCx3QyxHQUFBQSx3QyIsImZpbGUiOiI4Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGdsb2JhbCBhbmd1bGFyICovXG5cblxuLy9UT0RPIDogdG8gYmluZFRvQ29udHJvbGxlclxuLy8tPiB0aGVuIGFuZ3VsYXIgMS40KyB3aWxsIGJlIHJlcXVpcmVkLi4uXG4vLy0+IGNoZWNrIG1ldGhvdCB0byByZWZhY3RvciBpbnNpZGUgcmFnIGRyb3Agd2F5IHRoZW4gY29tbW9uIHN0ZXAgd2F5IGFuZCBkcmFnIGRyb3Agd2F5XG5cbmltcG9ydCBlZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuRGlyZWN0aXZlVGVtcGxhdGUgXHRmcm9tICcuL2VkYURyYWdEcm9wV2F5LmVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4udGVtcGxhdGUuaHRtbCc7XG5pbXBvcnQge1xuXHREUkFHX0RST1BfV0FZX0VBU1lfRk9STV9HRU5fQ09OVFJPTExFUixcblx0RFJBR19EUk9QX1dBWV9FQVNZX0ZPUk1fR0VOX0NPTlRST0xMRVJBU1xufSBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGZyb20gJy4vZWRhRHJhZ0Ryb3BXYXkuZWRhRHJhZ2Ryb3BXYXlFYXN5Rm9ybUdlbi5jb250cm9sbGVyJztcblxuXG5jb25zdCBFREFfRFJBR0RST1BfV0FZX0VBU1lfRk9STV9HRU5fRElSRUNUSVZFID0gJ2VkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4nO1xuXG5mdW5jdGlvbiBlZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuKFxuXHQkdGltZW91dCwgXG5cdGZvcm1GaWVsZE1hbmFnZSxcblx0ZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZSxcblx0Ly8gZHJhZ0Ryb3BDb25maWcsXG5cdGVhc3lGb3JtRHJhZ1dheUNvbmZpZyl7XG5cdFxuXHRsZXQgZGlyZWN0aXZlID0ge1xuXHRcdHJlc3RyaWN0IFx0XHRcdDogJ0UnLFxuXHRcdHRlbXBsYXRlXHRcdFx0OiBlZGFEcmFnRHJvcFdheUVhc3lGb3JtR2VuRGlyZWN0aXZlVGVtcGxhdGUsXG5cdFx0c2NvcGUgIFx0XHRcdFx0OiB7XG5cdFx0XHRlZGFFYXN5Rm9ybUdlbmVyYXRvck1vZGVsIDogJz0nLFxuXHRcdFx0ZWRhU2F2ZUZvcm1FdmVudCAgICAgICAgICA6ICcmZWRhU2F2ZUZvcm1FdmVudCdcdFx0XHRcblx0XHR9LFxuXHRcdGNvbnRyb2xsZXIgXHRcdDogRFJBR19EUk9QX1dBWV9FQVNZX0ZPUk1fR0VOX0NPTlRST0xMRVIsXG5cdFx0Y29udHJvbGxlckFzIFx0OiBEUkFHX0RST1BfV0FZX0VBU1lfRk9STV9HRU5fQ09OVFJPTExFUkFTLFxuXHRcdHJlcGxhY2UgXHRcdFx0OiBmYWxzZSxcdFx0XG5cdFx0bGlua1x0XHRcdFx0XHQ6IGxpbmtGY3Rcblx0fTtcblx0cmV0dXJuIGRpcmVjdGl2ZTtcblx0XG5cdFxuXHRcblx0XG5cdGZ1bmN0aW9uIGxpbmtGY3Qoc2NvcGUpeyAgICAgICAgICAgICAgXG5cdFx0Ly8gd2F0Y2ggXCJzY29wZS5lYXN5Rm9ybUdlbmVyYXRvck1vZGVsXCJcblx0XHRzY29wZS4kd2F0Y2goKCk9PnNjb3BlLmVkYUVhc3lGb3JtR2VuZXJhdG9yTW9kZWwsICgpPT5sb2FkRXhpc3RpbmdDb25maWd1cmF0aW9uTW9kZWwoKSwgdHJ1ZSk7XG5cblx0XHQvLyB3YXRjaCBcInNjb3BlLnJldHVyblNhdmVFdmVudFwiXCIgPSBjYXRjaCBzYXZpbmcgZm9ybSBldmVudCAgXG5cdFx0c2NvcGUuJHdhdGNoKCgpPT5zY29wZS5yZXR1cm5TYXZlRXZlbnQsIChuZXdWYWx1ZSk9Pntcblx0XHRcdGlmIChuZXdWYWx1ZSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRsZXQgX2Vhc3lGb3JtR2VuZXJhdG9yTW9kZWwgPSB7XG5cdFx0XHRcdFx0Zm9ybU5hbWUgICAgICAgICAgXHRcdFx0XHQ6IHNjb3BlLnZtLmNvbmZpZ3VyYXRpb24uZm9ybU5hbWUsXG5cdFx0XHRcdFx0YnRuU3VibWl0VGV4dCAgICAgXHRcdFx0XHQ6IHNjb3BlLnZtLmNvbmZpZ3VyYXRpb24uc3VibWl0QnV0dG9uVGV4dCxcblx0XHRcdFx0XHRidG5DYW5jZWxUZXh0ICAgICBcdFx0XHRcdDogc2NvcGUudm0uY29uZmlndXJhdGlvbi5jYW5jZWxCdXR0b25UZXh0LFxuXHRcdFx0XHRcdGVkYUZpZWxkc01vZGVsICAgIFx0XHRcdFx0OiBzY29wZS52bS5jb25maWd1cmF0aW9uLmxpbmVzLFxuXHRcdFx0XHRcdC8vanVzdCBhcyB0ZXN0XG5cdFx0XHRcdFx0ZWRhRmllbGRzTW9kZWxTdHJpbmdpZmllZCA6IGFuZ3VsYXIudG9Kc29uKHNjb3BlLnZtLmNvbmZpZ3VyYXRpb24ubGluZXMpLFxuXHRcdFx0XHRcdGZvcm1seUZpZWxkc01vZGVsIFx0XHRcdFx0OiBzY29wZS52bS53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyxcblx0XHRcdFx0XHRkYXRhTW9kZWwgICAgICAgICBcdFx0XHRcdDogc2NvcGUudm0uZGF0YU1vZGVsXG5cdFx0XHRcdH07XG5cdFx0XHRcdHNjb3BlLmVkYVNhdmVGb3JtRXZlbnQoe1xuXHRcdFx0XHRcdGVkYUVhc3lGb3JtR2VuZXJhdG9yTW9kZWwgOiBfZWFzeUZvcm1HZW5lcmF0b3JNb2RlbFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0Ly9iYWNrIHRvIGZhbHNlLCB3YWl0aW5nIG5leHQgc2F2ZSBldmVudFxuXHRcdFx0XHRzY29wZS5yZXR1cm5TYXZlRXZlbnQgPSBmYWxzZTtcblx0XHRcdH0gICAgICAgICAgICBcblx0XHR9KTtcdFxuXG5cblx0XHRmdW5jdGlvbiByZXR1cm5BdHRyaWJ1dGVDb25maWd1cmF0aW9uTGluZXNJZk5vdEVtcHR5KCl7XG5cdFx0XHRsZXQgZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbFRvUmV0dXJuID0gKFxuXHRcdFx0XHRhbmd1bGFyLmlzQXJyYXkoc2NvcGUuZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbC5lZGFGaWVsZHNNb2RlbCkgPyAgKCBcblx0XHRcdFx0XHRzY29wZS5lZGFFYXN5Rm9ybUdlbmVyYXRvck1vZGVsLmVkYUZpZWxkc01vZGVsLmxlbmd0aCA+IDAgPyBcblx0XHRcdFx0XHRcdHNjb3BlLmVkYUVhc3lGb3JtR2VuZXJhdG9yTW9kZWwuZWRhRmllbGRzTW9kZWwgXG5cdFx0XHRcdFx0OiBlbXB0eUVkYUZpZWxkc01vZGVsKClcblx0XHRcdFx0XHQpIFxuXHRcdFx0XHQ6IGVtcHR5RWRhRmllbGRzTW9kZWwoKVxuXHRcdFx0KTtcblx0XHRcdHJldHVybiBlZGFFYXN5Rm9ybUdlbmVyYXRvck1vZGVsVG9SZXR1cm47ICBcblx0XHR9XG4gICAgICAgICAgXG5cdFx0LyoqXG5cdFx0XHQqIGVtcHR5IGZpZWxkcyBtb2RlbCA6IHRvIGRpc3BsYXkgYXQgbGVhc3QgYW4gZW1wdHkgbGluZVxuXHRcdFx0KiBvdGhlcndpc2Ugd291bGQgbG9vayBsaWtlIHVnbHkgZW1wdHkgbGluZSBsaWtlIGl0IHdlcmUgYSBidWdcblx0XHRcdCovXG5cdFx0ZnVuY3Rpb24gZW1wdHlFZGFGaWVsZHNNb2RlbCgpe1xuXHRcdFx0bGV0IGVtcHR5TW9kZWwgPSBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQnbGluZSdcdFx0XHRcdFx0OiAxLFxuXHRcdFx0XHRcdCdhY3RpdmVDb2x1bW4nXHQ6IDEsXG5cdFx0XHRcdFx0J2NvbHVtbnMnXHRcdFx0XHQ6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0J251bUNvbHVtbidcdDogMSxcblx0XHRcdFx0XHRcdFx0J2V4aXN0J1x0XHRcdDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0J2NvbnRyb2wnXHRcdDoge1xuXHRcdFx0XHRcdFx0XHRcdCd0eXBlJ1x0OiAnbm9uZScsXG5cdFx0XHRcdFx0XHRcdFx0J2tleSdcdFx0OiAnbm9uZSdcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fVxuXHRcdFx0XTtcblx0XHRcdHJldHVybiBlbXB0eU1vZGVsO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIHJldHVybkF0dHJpYnV0ZURhdGFNb2RlbElmTm90RW1wdHkoKXtcblx0XHRcdGxldCBkYXRhTW9kZWxUb1JldHVybiA9IChcblx0XHRcdFx0YW5ndWxhci5pc0FycmF5KHNjb3BlLmVkYUVhc3lGb3JtR2VuZXJhdG9yTW9kZWwuZGF0YU1vZGVsKSAgID8gICggXG5cdFx0XHRcdFx0c2NvcGUuZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbC5kYXRhTW9kZWwubGVuZ3RoID4gMCA/IFxuXHRcdFx0XHRcdHNjb3BlLmVkYUVhc3lGb3JtR2VuZXJhdG9yTW9kZWwuZGF0YU1vZGVsIFxuXHRcdFx0XHRcdDogW11cblx0XHRcdFx0XHQpIFxuXHRcdFx0XHQ6IFtdXG5cdFx0XHQpO1xuXHRcdFx0cmV0dXJuIGRhdGFNb2RlbFRvUmV0dXJuOyAgXG5cdFx0fSAgICAgICAgIFxuIFxuICAgICAgICAgICAgICBcblx0XHRmdW5jdGlvbiBsb2FkRXhpc3RpbmdDb25maWd1cmF0aW9uTW9kZWwoKXtcblx0XHRcdGlmKGFuZ3VsYXIuaXNEZWZpbmVkKHNjb3BlLmVkYUVhc3lGb3JtR2VuZXJhdG9yTW9kZWwpKXtcblx0XHRcdFx0bGV0IGNvbmZpZ2xpbmVzICAgICAgICAgICA9IHJldHVybkF0dHJpYnV0ZUNvbmZpZ3VyYXRpb25MaW5lc0lmTm90RW1wdHkoKTsgICAgICAgICAgIFxuXHRcdFx0XHRzY29wZS52bS5jb25maWd1cmF0aW9uTG9hZGVkID0ge307XG5cdFx0XHRcdGZvcm1GaWVsZE1hbmFnZS5iaW5kQ29uZmlndXJhdGlvbkxpbmVzKHNjb3BlLnZtLmNvbmZpZ3VyYXRpb25Mb2FkZWQsIGNvbmZpZ2xpbmVzLCBmYWxzZSk7XG5cdFx0XHRcdC8vYXBwbHkgY29uZmlndXJhdGlvbiBtb2RlbFxuXHRcdFx0XHRzY29wZS52bS5jb25maWd1cmF0aW9uID0gYW5ndWxhci5jb3B5KHNjb3BlLnZtLmNvbmZpZ3VyYXRpb25Mb2FkZWQpO1xuXHRcdFx0XHQvL2FwcGx5IGRkTW9kZWxcblx0XHRcdFx0ZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZS5sb2FkRHJhZ0Ryb3BNb2RlbEZyb21Db25maWd1cmF0aW9uTW9kZWwoc2NvcGUudm0uY29uZmlndXJhdGlvbiwgc2NvcGUudm0uZHJhZ0Ryb3BNb2RlbCk7IFxuXHRcdFx0XHR1cGRhdGVDb25maWd1cmF0aW9uQ2xhc3NOYW1lKHNjb3BlLnZtLmNvbmZpZ3VyYXRpb24pO1xuXHRcdFx0XHRkZE1vZGVsQ29uZk1vZGVsUHJveHlTZXJ2aWNlLnJlZnJlc2hDb250cm9sc0tleXMoc2NvcGUudm0uY29uZmlndXJhdGlvbiwgc2NvcGUudm0uZHJhZ0Ryb3BNb2RlbCk7ICAgICAgICAgICAgIFxuXHRcdFx0XHQvL2FwcGx5IGZvcm1seSBtb2RlbFxuXHRcdFx0XHRmb3JtRmllbGRNYW5hZ2UuYXBwbHlDb25maWd1cmF0aW9uVG9mb3JtbHlNb2RlbChzY29wZS52bS5jb25maWd1cmF0aW9uLCBzY29wZS52bS53ZkZvcm1GaWVsZHMsIHNjb3BlLnZtLmRhdGFNb2RlbCk7ICAgICAgICAgIFxuXHRcdFx0XHRzY29wZS52bS53ZkZvcm1GaWVsZHNPbmx5TmVlZGVkUHJvcGVydGllcyA9IGFuZ3VsYXIuY29weShzY29wZS52bS53ZkZvcm1GaWVsZHMpO1xuXHRcdFx0XHRzY29wZS52bS5kYXRhTW9kZWwgICAgICAgICAgICAgICAgICAgICAgICA9IHJldHVybkF0dHJpYnV0ZURhdGFNb2RlbElmTm90RW1wdHkoKTsgIFxuXHRcdFx0XHRzY29wZS52bS5jb25maWd1cmF0aW9uLmZvcm1OYW1lICAgICAgICAgICA9IGFuZ3VsYXIuaXNTdHJpbmcoc2NvcGUuZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbC5mb3JtTmFtZSkgPyBzY29wZS5lZGFFYXN5Rm9ybUdlbmVyYXRvck1vZGVsLmZvcm1OYW1lIDogJyc7XG5cdFx0XHRcdHNjb3BlLnZtLmNvbmZpZ3VyYXRpb24uc3VibWl0QnV0dG9uVGV4dCAgID0gYW5ndWxhci5pc1N0cmluZyhzY29wZS5lZGFFYXN5Rm9ybUdlbmVyYXRvck1vZGVsLmJ0blN1Ym1pdFRleHQpID8gc2NvcGUuZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbC5idG5TdWJtaXRUZXh0IDogJ1N1Ym1pdCc7IFxuXHRcdFx0XHRzY29wZS52bS5jb25maWd1cmF0aW9uLmNhbmNlbEJ1dHRvblRleHQgICA9IGFuZ3VsYXIuaXNTdHJpbmcoc2NvcGUuZWRhRWFzeUZvcm1HZW5lcmF0b3JNb2RlbC5idG5DYW5jZWxUZXh0KSA/IHNjb3BlLmVkYUVhc3lGb3JtR2VuZXJhdG9yTW9kZWwuYnRuQ2FuY2VsVGV4dCA6ICdDYW5jZWwnO1xuXHRcdFx0fSAgXG5cdFx0fSBcbiAgICAgICAgIFxuICAgICAgICAgXG5cdFx0ZnVuY3Rpb24gdXBkYXRlQ29uZmlndXJhdGlvbkNsYXNzTmFtZShjb25maWdNb2RlbCl7XG5cdFx0XHRhbmd1bGFyLmZvckVhY2goY29uZmlnTW9kZWwubGluZXMsIChhbGluZSk9Pntcblx0XHRcdFx0bGV0IGNzc0NsYXNzVG9BcHBseSA9IGVhc3lGb3JtRHJhZ1dheUNvbmZpZy5nZXRJdGVtQ3NzRGVwZW5kaW5nTnVtYmVySXRlbXNJblJvdyhhbGluZS5jb2x1bW5zLmxlbmd0aCk7XG5cdFx0XHRcdGFuZ3VsYXIuZm9yRWFjaChhbGluZS5jb2x1bW5zLCAoYUNvbnRyb2wpPT4gYUNvbnRyb2wuY29udHJvbC5jbGFzc05hbWUgPSBjc3NDbGFzc1RvQXBwbHkpOyBcblx0XHRcdH0pOyAgICAgICAgIFxuXHRcdH1cblxufVx0XG5cdFxuXHRcblx0XG59XG5cbmVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW4uJGluamVjdCA9IFtcblx0JyR0aW1lb3V0JywgXG5cdCdmb3JtRmllbGRNYW5hZ2UnLFxuXHQnZGRNb2RlbENvbmZNb2RlbFByb3h5U2VydmljZScsXG5cdC8vICdkcmFnRHJvcENvbmZpZycsXG5cdCdlYXN5Rm9ybURyYWdXYXlDb25maWcnXHRcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGVkYURyYWdkcm9wV2F5RWFzeUZvcm1HZW47XG5cbmV4cG9ydCB7XG5cdEVEQV9EUkFHRFJPUF9XQVlfRUFTWV9GT1JNX0dFTl9ESVJFQ1RJVkVcbn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2VkYURyYWdEcm9wV2F5RWFzeUZvcm1HZW4vZWRhRHJhZ0Ryb3BXYXkuZWRhRHJhZ2Ryb3BXYXlFYXN5Rm9ybUdlbi5kaXJlY3RpdmUuanMiXSwic291cmNlUm9vdCI6IiJ9");
  364. /***/ },
  365. /* 83 */
  366. /***/ function(module, exports) {
  367. eval("module.exports = \"<section id=\\\"pageWfEdit\\\">\\n <div>\\n <div class=\\\"container\\\">\\n <section id=\\\"preview\\\">\\n <div id=\\\"preview-content\\\">\\n\\t\\t\\t\\t\\t<div class=\\\"content-container\\\">\\n\\t\\t\\t\\t\\t\\t<toaster-container\\n toaster-options=\\\"{ 'position-class': 'toast-top-full-width', 'extendedTimeout' : 500,'timeOut': 500 }\\\">\\n\\t\\t\\t\\t\\t\\t</toaster-container>\\n\\t\\t\\t\\t\\t\\t<uib-tabset justified=\\\"true\\\">\\n\\t\\t\\t\\t\\t\\t\\t<uib-tab\\n select=\\\"vm.tabJustSelected(2)\\\"\\n active=\\\"vm.tab.editTab.active\\\"\\n heading=\\\"Edit /Create\\\">\\n <div class=\\\"row\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tpageslide\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tps-open=\\\"vm.editPanelModel.toggle\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tps-side=\\\"left\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tps-cloak=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tps-size=\\\"400px\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<left-panel\\n close-edit-panel=\\\"vm.closeEditPanel()\\\"\\n save-from-edit-panel=vm.saveFromEditPanel()>\\n </left-panel>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"row advancedDemo\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div ng-repeat=\\\"containers in vm.dragDropModel\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-decor-drop-zone\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-drop-zone-properties=\\\"vm.easyFormDragDropProperties.dropZoneConfig.decoration[$index]\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-drop-zone-verbose-mode=\\\"{{vm.easyFormDragDropProperties.dropZoneConfig.verboseMode}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-drop-zone-current-index=\\\"{{$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-drop-zone-add-new-line=\\\"vm.insertNewLine()\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div \\tclass=\\\"dropzone box box-yellow\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<ul\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-list=\\\"containers\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-allowed-types=\\\"['containerType']\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-external-sources=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-dragover=\\\"vm.dragoverCallbackContainer($parent.$parent.$index, $parent.$index, $index);\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-drop=\\\"vm.dropCallback(event, index, item, external, type, 'containerType');\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"row\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-repeat=\\\"items in containers\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-draggable=\\\"items\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-type=\\\"'containerType'\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-effect-allowed=\\\"copyMove\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-dragstart=\\\"\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-moved=\\\"containers.splice($index, 1);\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-disable-if=\\\"$parent.$index == 0\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-copied=\\\"\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"container-element box box-blue\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-decor-container\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-container-properties=\\\"vm.easyFormDragDropProperties.containerConfig.decoration[$index]\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-container-is-collpased=\\\"vm.easyFormDragDropProperties.containerConfig.decoration[$index].isCollapsed\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-container-verbose-mode=\\\"{{vm.easyFormDragDropProperties.containerConfig.verboseMode}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-container-current-index=\\\"{{$parent.$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-collapse-all=\\\"vm.collapseAllGroupControl(exceptThisOne)\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div dd-decor-include-container-here>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-decor-line\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-line-verbose-mode=\\\"{{vm.easyFormDragDropProperties.containerConfig.verboseMode}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-line-current-index=\\\"{{$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-line-parent-index=\\\"{{$parent.$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-remove-line=\\\"vm.removeThisLine($index)\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<ul\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-list=\\\"items\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-allowed-types=\\\"['itemType']\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-horizontal-list=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-external-sources=\\\"true\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-disable-if=\\\"items.length > 2\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-dragover=\\\"vm.dragoverCallbackItems($parent.$parent.$index, $parent.$index, $index, external);\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-drop=\\\"vm.dropCallbackItems(event, index, $index,$parent.$index, $parent.$parent.$index, $parent.$parent.$parent.$index, item, external, type, 'itemType');\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"itemlist\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-content-counter\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-value-when-placeholder=\\\"dndPlaceholder\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-value-when-dragging=\\\"dndDraggingSource\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-full-model = \\\"vm.dragDropModel\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-content-counter-current-index=\\\"{{$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-content-counter-parent-index=\\\"{{$parent.$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-content-counter-force-css-refresh = \\\"command.forceRefresh\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-repeat=\\\"item in items\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-draggable=\\\"item\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-type=\\\"'itemType'\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-effect-allowed=\\\"copyMove\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-dragstart=\\\"\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-moved=\\\"vm.dndItemMoved($parent.$parent.$index, $parent.$index, $index);\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdnd-copied=\\\"\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-decor-item\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-item-verbose-mode=\\\"{{vm.easyFormDragDropProperties.itemConfig.verboseMode}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-item-current-index=\\\"{{$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-item-parent-index=\\\"{{$parent.$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-item-parent-parent-index = \\\"{{$parent.$parent.$index}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-items-count=\\\"items.length\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-item-css-class=\\\"{{item.cssClass}}\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div id=\\\"itemContent\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdd-no-editable-control\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"rightClickCtrl\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-class=\\\"{rightClickCtrlSelected : item.rightCliked === true}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\teda-set-right-clicked=\\\"vm.setRightClicked(previousState, item)\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\teda-right-click=\\\"vm.toggleEditPanel($event, $parent.$index, $index, item)\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\teda-selected-class=\\\"rightClickCtrlSelected\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\teda-is-selected=\\\"{{item.rightCliked}}\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\teda-right-click-col-index = \\\"{{$parent.$parent.$index}}\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span ng-bind-html=\\\"item.label | trustThis\\\"></span>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</li>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</ul>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"clearfix\\\"></div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</li>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</ul>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t</uib-tab>\\n\\t\\t\\t\\t\\t\\t\\t<uib-tab\\n\\t\\t\\t\\t\\t\\t\\t\\tselect=\\\"vm.tabJustSelected(1)\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\tactive=\\\"vm.tab.previewTab.active\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\theading=\\\"Preview\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel panel-default\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel-body\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<form ng-submit=\\\"vm.onSubmit()\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<formly-form\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tid=\\\"previewFormlyForm\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tmodel=\\\"vm.model\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tfields=\\\"vm.wfFormFields\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\\\"pull-right\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"btn btn-primary\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"submit\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{vm.configuration.submitButtonText}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"btn btn-primary\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"cancel\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{vm.configuration.cancelButtonText}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</formly-form>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</form>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel panel-default\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"panel-heading heading-preview\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-click=\\\"vm.ihm.preview.customizeFormButtonsExpanded =!vm.ihm.preview.customizeFormButtonsExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<h3 class=\\\"panel-title\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\\\"btn btn-primary btn-xs\\\" >\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-class=\\\"{'fa-angle-down':!vm.ihm.preview.customizeFormButtonsExpanded, 'fa-angle-up' : vm.ihm.preview.customizeFormButtonsExpanded}\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-wrench\\\"></i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tCustomize form buttons\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</h3>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel-body\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div uib-collapse=\\\"vm.ihm.preview.customizeFormButtonsExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"row\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"col-xs-6\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"form-group\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tfor=\\\"inputSubmitButtontext\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\" greyText control-label\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tCustomize Submit button Text :\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"form-control\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tid=\\\"inputSubmitButtontext\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tplaceholder=\\\"Submit button text\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-model=\\\"vm.configuration.submitButtonText\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"col-xs-6\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"form-group\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tfor=\\\"inputCancelButtontext\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\" greyText control-label\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tCustomize Cancel button Text :\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"form-control\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tid=\\\"inputCancelButtontext\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tplaceholder=\\\"Cancel button text\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-model=\\\"vm.configuration.cancelButtonText\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel panel-default\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"panel-heading heading-preview\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-click=\\\"vm.ihm.preview.formlyModelViewExpanded =!vm.ihm.preview.formlyModelViewExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<h3 class=\\\"panel-title\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\\\"btn btn-primary btn-xs\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-class=\\\"{'fa-angle-down':!vm.ihm.preview.formlyModelViewExpanded, 'fa-angle-up' : vm.ihm.preview.formlyModelViewExpanded}\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-eye\\\"></i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tDATA MODEL\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</h3>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel-body\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div uib-collapse=\\\"vm.ihm.preview.formlyModelViewExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<pre>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{vm.model | json}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</pre>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel panel-default\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"panel-heading heading-preview\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-click=\\\"vm.ihm.preview.formlyFieldsViewExpanded =!vm.ihm.preview.formlyFieldsViewExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<h3 class=\\\"panel-title\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\\\"btn btn-primary btn-xs\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-class=\\\"{'fa-angle-down':!vm.ihm.preview.formlyFieldsViewExpanded, 'fa-angle-up' : vm.ihm.preview.formlyFieldsViewExpanded}\\\"></i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-eye\\\"></i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tFIELDS MODEL (ready to save to database one)\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</h3>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel-body\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div uib-collapse=\\\"vm.ihm.preview.formlyFieldsViewExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<pre>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{{vm.wfFormFieldsOnlyNeededProperties | json}}\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</pre>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel panel-default\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"panel-heading heading-preview\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-click=\\\"vm.ihm.preview.saveThisFormExpanded =!vm.ihm.preview.saveThisFormExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<h3 class=\\\"panel-title\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\\\"btn btn-primary btn-xs\\\" >\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"fa\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-class=\\\"{'fa-angle-down':!vm.ihm.preview.saveThisFormExpanded, 'fa-angle-up' : vm.ihm.preview.saveThisFormExpanded}\\\"></i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\\\"fa fa-camera-retro\\\"></i>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t&nbsp;\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tSave this form\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</h3>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"panel-body\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div uib-collapse=\\\"vm.ihm.preview.saveThisFormExpanded\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"row\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"col-xs-12\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"form-group\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tfor=\\\"inputNameFormtext\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\" greyText control-label\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tName to this form :\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</label>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\\\"\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"form-control\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tid=\\\"inputNameFormtext\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tplaceholder=\\\"Enter formName\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-model=\\\"vm.configuration.formName\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tclass=\\\"btn btn-primary btn-block btn-lg\\\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tng-click=\\\"vm.saveThisForm()\\\">\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tsave this form\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t\\t\\t\\t</uib-tab>\\n\\t\\t\\t\\t\\t\\t</uib-tabset>\\n\\t\\t\\t\\t\\t</div>\\n\\t\\t\\t\\t</div>\\n\\t\\t\\t</section>\\n\\t\\t\\t<hr/>\\n\\t\\t\\t<section>\\n <h6 class=\\\"text-right\\\">\\n Easy form generator : {{vm.easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)\\n </h6>\\n\\t\\t\\t</section>\\n </div>\\n </div>\\n</section>\\n\"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvZWRhRHJhZ0Ryb3BXYXlFYXN5Rm9ybUdlbi9lZGFEcmFnRHJvcFdheS5lZGFEcmFnZHJvcFdheUVhc3lGb3JtR2VuLnRlbXBsYXRlLmh0bWw/Y2NmZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyUUFBMlEsbUZBQW1GLDRuQ0FBNG5DLDBEQUEwRCw2REFBNkQsUUFBUSw0ZUFBNGUsa0hBQWtILDZjQUE2YyxvbkJBQW9uQiwyREFBMkQscUVBQXFFLGdCQUFnQiw2VUFBNlUsMkRBQTJELG9FQUFvRSxRQUFRLG1FQUFtRSxnQkFBZ0IsZ25CQUFnbkIsMk1BQTJNLG1jQUFtYyxRQUFRLGdGQUFnRixnQkFBZ0Isc21CQUFzbUIsMkxBQTJMLHNEQUFzRCx3RUFBd0UsUUFBUSx1RUFBdUUsZ0JBQWdCLGdGQUFnRix3QkFBd0IsK0lBQStJLGVBQWUsbVVBQW1VLG1EQUFtRCxnWkFBZ1osa0JBQWtCLGtGQUFrRix3QkFBd0IsZzlDQUFnOUMsbUNBQW1DLDZNQUE2TSxtQ0FBbUMsaXFCQUFpcUIsMEhBQTBILGdHQUFnRyxvRkFBb0Ysd2lGQUF3aUYsZ0hBQWdILHNHQUFzRyxxRkFBcUYsbVJBQW1SLGlCQUFpQix3a0JBQXdrQixrSEFBa0gsc0VBQXNFLGlGQUFpRixvVEFBb1QsNENBQTRDLGlrQkFBaWtCLDBHQUEwRyxzRUFBc0UsMEZBQTBGLHdtREFBd21ELDZCQUE2QiIsImZpbGUiOiI4My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCI8c2VjdGlvbiBpZD1cXFwicGFnZVdmRWRpdFxcXCI+XFxuICA8ZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJjb250YWluZXJcXFwiPlxcbiAgICAgIDxzZWN0aW9uIGlkPVxcXCJwcmV2aWV3XFxcIj5cXG4gICAgICAgIDxkaXYgaWQ9XFxcInByZXZpZXctY29udGVudFxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiY29udGVudC1jb250YWluZXJcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdDx0b2FzdGVyLWNvbnRhaW5lclxcbiAgICAgICAgICAgICAgdG9hc3Rlci1vcHRpb25zPVxcXCJ7ICdwb3NpdGlvbi1jbGFzcyc6ICd0b2FzdC10b3AtZnVsbC13aWR0aCcsICdleHRlbmRlZFRpbWVvdXQnIDogNTAwLCd0aW1lT3V0JzogNTAwIH1cXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdDwvdG9hc3Rlci1jb250YWluZXI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0PHVpYi10YWJzZXQganVzdGlmaWVkPVxcXCJ0cnVlXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHQ8dWliLXRhYlxcbiAgICAgICAgICAgICAgICBzZWxlY3Q9XFxcInZtLnRhYkp1c3RTZWxlY3RlZCgyKVxcXCJcXG4gICAgICAgICAgICAgICAgYWN0aXZlPVxcXCJ2bS50YWIuZWRpdFRhYi5hY3RpdmVcXFwiXFxuICAgICAgICAgICAgICAgIGhlYWRpbmc9XFxcIkVkaXQgL0NyZWF0ZVxcXCI+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHBhZ2VzbGlkZVxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHBzLW9wZW49XFxcInZtLmVkaXRQYW5lbE1vZGVsLnRvZ2dsZVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRwcy1zaWRlPVxcXCJsZWZ0XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHBzLWNsb2FrPVxcXCJ0cnVlXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHBzLXNpemU9XFxcIjQwMHB4XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8bGVmdC1wYW5lbFxcbiAgICAgICAgICAgICAgICAgICAgICBjbG9zZS1lZGl0LXBhbmVsPVxcXCJ2bS5jbG9zZUVkaXRQYW5lbCgpXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICBzYXZlLWZyb20tZWRpdC1wYW5lbD12bS5zYXZlRnJvbUVkaXRQYW5lbCgpPlxcbiAgICAgICAgICAgICAgICAgICAgPC9sZWZ0LXBhbmVsPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvZGl2PlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwicm93IGFkdmFuY2VkRGVtb1xcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBuZy1yZXBlYXQ9XFxcImNvbnRhaW5lcnMgaW4gdm0uZHJhZ0Ryb3BNb2RlbFxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWRlY29yLWRyb3Atem9uZVxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWRyb3Atem9uZS1wcm9wZXJ0aWVzPVxcXCJ2bS5lYXN5Rm9ybURyYWdEcm9wUHJvcGVydGllcy5kcm9wWm9uZUNvbmZpZy5kZWNvcmF0aW9uWyRpbmRleF1cXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZGQtZHJvcC16b25lLXZlcmJvc2UtbW9kZT1cXFwie3t2bS5lYXN5Rm9ybURyYWdEcm9wUHJvcGVydGllcy5kcm9wWm9uZUNvbmZpZy52ZXJib3NlTW9kZX19XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWRyb3Atem9uZS1jdXJyZW50LWluZGV4PVxcXCJ7eyRpbmRleH19XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWRyb3Atem9uZS1hZGQtbmV3LWxpbmU9XFxcInZtLmluc2VydE5ld0xpbmUoKVxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBcXHRjbGFzcz1cXFwiZHJvcHpvbmUgYm94IGJveC15ZWxsb3dcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDx1bFxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1saXN0PVxcXCJjb250YWluZXJzXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1hbGxvd2VkLXR5cGVzPVxcXCJbJ2NvbnRhaW5lclR5cGUnXVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtZXh0ZXJuYWwtc291cmNlcz1cXFwidHJ1ZVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtZHJhZ292ZXI9XFxcInZtLmRyYWdvdmVyQ2FsbGJhY2tDb250YWluZXIoJHBhcmVudC4kcGFyZW50LiRpbmRleCwgJHBhcmVudC4kaW5kZXgsICRpbmRleCk7XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1kcm9wPVxcXCJ2bS5kcm9wQ2FsbGJhY2soZXZlbnQsIGluZGV4LCBpdGVtLCBleHRlcm5hbCwgdHlwZSwgJ2NvbnRhaW5lclR5cGUnKTtcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcInJvd1xcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGxpXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0bmctcmVwZWF0PVxcXCJpdGVtcyBpbiBjb250YWluZXJzXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1kcmFnZ2FibGU9XFxcIml0ZW1zXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC10eXBlPVxcXCInY29udGFpbmVyVHlwZSdcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZG5kLWVmZmVjdC1hbGxvd2VkPVxcXCJjb3B5TW92ZVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtZHJhZ3N0YXJ0PVxcXCJcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZG5kLW1vdmVkPVxcXCJjb250YWluZXJzLnNwbGljZSgkaW5kZXgsIDEpO1xcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtZGlzYWJsZS1pZj1cXFwiJHBhcmVudC4kaW5kZXggPT0gMFxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtY29waWVkPVxcXCJcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXZcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRjbGFzcz1cXFwiY29udGFpbmVyLWVsZW1lbnQgYm94IGJveC1ibHVlXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWRlY29yLWNvbnRhaW5lclxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWNvbnRhaW5lci1wcm9wZXJ0aWVzPVxcXCJ2bS5lYXN5Rm9ybURyYWdEcm9wUHJvcGVydGllcy5jb250YWluZXJDb25maWcuZGVjb3JhdGlvblskaW5kZXhdXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWNvbnRhaW5lci1pcy1jb2xscGFzZWQ9XFxcInZtLmVhc3lGb3JtRHJhZ0Ryb3BQcm9wZXJ0aWVzLmNvbnRhaW5lckNvbmZpZy5kZWNvcmF0aW9uWyRpbmRleF0uaXNDb2xsYXBzZWRcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZGQtY29udGFpbmVyLXZlcmJvc2UtbW9kZT1cXFwie3t2bS5lYXN5Rm9ybURyYWdEcm9wUHJvcGVydGllcy5jb250YWluZXJDb25maWcudmVyYm9zZU1vZGV9fVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkZC1jb250YWluZXItY3VycmVudC1pbmRleD1cXFwie3skcGFyZW50LiRpbmRleH19XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWNvbGxhcHNlLWFsbD1cXFwidm0uY29sbGFwc2VBbGxHcm91cENvbnRyb2woZXhjZXB0VGhpc09uZSlcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXYgZGQtZGVjb3ItaW5jbHVkZS1jb250YWluZXItaGVyZT5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZGQtZGVjb3ItbGluZVxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWxpbmUtdmVyYm9zZS1tb2RlPVxcXCJ7e3ZtLmVhc3lGb3JtRHJhZ0Ryb3BQcm9wZXJ0aWVzLmNvbnRhaW5lckNvbmZpZy52ZXJib3NlTW9kZX19XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWxpbmUtY3VycmVudC1pbmRleD1cXFwie3skaW5kZXh9fVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkZC1saW5lLXBhcmVudC1pbmRleD1cXFwie3skcGFyZW50LiRpbmRleH19XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLXJlbW92ZS1saW5lPVxcXCJ2bS5yZW1vdmVUaGlzTGluZSgkaW5kZXgpXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8dWxcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtbGlzdD1cXFwiaXRlbXNcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZG5kLWFsbG93ZWQtdHlwZXM9XFxcIlsnaXRlbVR5cGUnXVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtaG9yaXpvbnRhbC1saXN0PVxcXCJ0cnVlXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1leHRlcm5hbC1zb3VyY2VzPVxcXCJ0cnVlXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1kaXNhYmxlLWlmPVxcXCJpdGVtcy5sZW5ndGggPiAyXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1kcmFnb3Zlcj1cXFwidm0uZHJhZ292ZXJDYWxsYmFja0l0ZW1zKCRwYXJlbnQuJHBhcmVudC4kaW5kZXgsICRwYXJlbnQuJGluZGV4LCAkaW5kZXgsIGV4dGVybmFsKTtcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZG5kLWRyb3A9XFxcInZtLmRyb3BDYWxsYmFja0l0ZW1zKGV2ZW50LCBpbmRleCwgJGluZGV4LCRwYXJlbnQuJGluZGV4LCAkcGFyZW50LiRwYXJlbnQuJGluZGV4LCAkcGFyZW50LiRwYXJlbnQuJHBhcmVudC4kaW5kZXgsIGl0ZW0sIGV4dGVybmFsLCB0eXBlLCAnaXRlbVR5cGUnKTtcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcIml0ZW1saXN0XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWNvbnRlbnQtY291bnRlclxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLXZhbHVlLXdoZW4tcGxhY2Vob2xkZXI9XFxcImRuZFBsYWNlaG9sZGVyXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLXZhbHVlLXdoZW4tZHJhZ2dpbmc9XFxcImRuZERyYWdnaW5nU291cmNlXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWZ1bGwtbW9kZWwgPSBcXFwidm0uZHJhZ0Ryb3BNb2RlbFxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkZC1jb250ZW50LWNvdW50ZXItY3VycmVudC1pbmRleD1cXFwie3skaW5kZXh9fVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkZC1jb250ZW50LWNvdW50ZXItcGFyZW50LWluZGV4PVxcXCJ7eyRwYXJlbnQuJGluZGV4fX1cXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZGQtY29udGVudC1jb3VudGVyLWZvcmNlLWNzcy1yZWZyZXNoID0gXFxcImNvbW1hbmQuZm9yY2VSZWZyZXNoXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8bGlcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRuZy1yZXBlYXQ9XFxcIml0ZW0gaW4gaXRlbXNcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZG5kLWRyYWdnYWJsZT1cXFwiaXRlbVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtdHlwZT1cXFwiJ2l0ZW1UeXBlJ1xcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtZWZmZWN0LWFsbG93ZWQ9XFxcImNvcHlNb3ZlXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRuZC1kcmFnc3RhcnQ9XFxcIlxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkbmQtbW92ZWQ9XFxcInZtLmRuZEl0ZW1Nb3ZlZCgkcGFyZW50LiRwYXJlbnQuJGluZGV4LCAkcGFyZW50LiRpbmRleCwgJGluZGV4KTtcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZG5kLWNvcGllZD1cXFwiXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWRlY29yLWl0ZW1cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRkZC1pdGVtLXZlcmJvc2UtbW9kZT1cXFwie3t2bS5lYXN5Rm9ybURyYWdEcm9wUHJvcGVydGllcy5pdGVtQ29uZmlnLnZlcmJvc2VNb2RlfX1cXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZGQtaXRlbS1jdXJyZW50LWluZGV4PVxcXCJ7eyRpbmRleH19XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWl0ZW0tcGFyZW50LWluZGV4PVxcXCJ7eyRwYXJlbnQuJGluZGV4fX1cXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZGQtaXRlbS1wYXJlbnQtcGFyZW50LWluZGV4ID0gXFxcInt7JHBhcmVudC4kcGFyZW50LiRpbmRleH19XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLWl0ZW1zLWNvdW50PVxcXCJpdGVtcy5sZW5ndGhcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZGQtaXRlbS1jc3MtY2xhc3M9XFxcInt7aXRlbS5jc3NDbGFzc319XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGlkPVxcXCJpdGVtQ29udGVudFxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGRkLW5vLWVkaXRhYmxlLWNvbnRyb2xcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRjbGFzcz1cXFwicmlnaHRDbGlja0N0cmxcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0bmctY2xhc3M9XFxcIntyaWdodENsaWNrQ3RybFNlbGVjdGVkIDogaXRlbS5yaWdodENsaWtlZCA9PT0gdHJ1ZX1cXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZWRhLXNldC1yaWdodC1jbGlja2VkPVxcXCJ2bS5zZXRSaWdodENsaWNrZWQocHJldmlvdXNTdGF0ZSwgaXRlbSlcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZWRhLXJpZ2h0LWNsaWNrPVxcXCJ2bS50b2dnbGVFZGl0UGFuZWwoJGV2ZW50LCAkcGFyZW50LiRpbmRleCwgJGluZGV4LCBpdGVtKVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRlZGEtc2VsZWN0ZWQtY2xhc3M9XFxcInJpZ2h0Q2xpY2tDdHJsU2VsZWN0ZWRcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZWRhLWlzLXNlbGVjdGVkPVxcXCJ7e2l0ZW0ucmlnaHRDbGlrZWR9fVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRlZGEtcmlnaHQtY2xpY2stY29sLWluZGV4ID0gXFxcInt7JHBhcmVudC4kcGFyZW50LiRpbmRleH19XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8c3BhbiBuZy1iaW5kLWh0bWw9XFxcIml0ZW0ubGFiZWwgfCB0cnVzdFRoaXNcXFwiPjwvc3Bhbj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2xpPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvdWw+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiY2xlYXJmaXhcXFwiPjwvZGl2PlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvZGl2PlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvZGl2PlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvbGk+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC91bD5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L3VpYi10YWI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0PHVpYi10YWJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRzZWxlY3Q9XFxcInZtLnRhYkp1c3RTZWxlY3RlZCgxKVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRhY3RpdmU9XFxcInZtLnRhYi5wcmV2aWV3VGFiLmFjdGl2ZVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRoZWFkaW5nPVxcXCJQcmV2aWV3XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8Zm9ybSBuZy1zdWJtaXQ9XFxcInZtLm9uU3VibWl0KClcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxmb3JtbHktZm9ybVxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGlkPVxcXCJwcmV2aWV3Rm9ybWx5Rm9ybVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRtb2RlbD1cXFwidm0ubW9kZWxcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0ZmllbGRzPVxcXCJ2bS53ZkZvcm1GaWVsZHNcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxzcGFuIGNsYXNzPVxcXCJwdWxsLXJpZ2h0XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8YnV0dG9uXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHR0eXBlPVxcXCJzdWJtaXRcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHt7dm0uY29uZmlndXJhdGlvbi5zdWJtaXRCdXR0b25UZXh0fX1cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2J1dHRvbj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8YnV0dG9uXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHR0eXBlPVxcXCJjYW5jZWxcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHt7dm0uY29uZmlndXJhdGlvbi5jYW5jZWxCdXR0b25UZXh0fX1cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2J1dHRvbj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L3NwYW4+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9mb3JtbHktZm9ybT5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Zvcm0+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiAgY2xhc3M9XFxcInBhbmVsIHBhbmVsLWRlZmF1bHRcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXZcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRjbGFzcz1cXFwicGFuZWwtaGVhZGluZyBoZWFkaW5nLXByZXZpZXdcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0bmctY2xpY2s9XFxcInZtLmlobS5wcmV2aWV3LmN1c3RvbWl6ZUZvcm1CdXR0b25zRXhwYW5kZWQgPSF2bS5paG0ucHJldmlldy5jdXN0b21pemVGb3JtQnV0dG9uc0V4cGFuZGVkXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8aDMgY2xhc3M9XFxcInBhbmVsLXRpdGxlXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8YnV0dG9uIGNsYXNzPVxcXCJidG4gYnRuLXByaW1hcnkgYnRuLXhzXFxcIiA+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGlcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRjbGFzcz1cXFwiZmFcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0bmctY2xhc3M9XFxcInsnZmEtYW5nbGUtZG93bic6IXZtLmlobS5wcmV2aWV3LmN1c3RvbWl6ZUZvcm1CdXR0b25zRXhwYW5kZWQsICdmYS1hbmdsZS11cCcgOiB2bS5paG0ucHJldmlldy5jdXN0b21pemVGb3JtQnV0dG9uc0V4cGFuZGVkfVxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9pPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvYnV0dG9uPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdCZuYnNwO1xcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxpIGNsYXNzPVxcXCJmYSBmYS13cmVuY2hcXFwiPjwvaT5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQmbmJzcDtcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRDdXN0b21pemUgZm9ybSBidXR0b25zXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9oMz5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IHVpYi1jb2xsYXBzZT1cXFwidm0uaWhtLnByZXZpZXcuY3VzdG9taXplRm9ybUJ1dHRvbnNFeHBhbmRlZFxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wteHMtNlxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGxhYmVsXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Zm9yPVxcXCJpbnB1dFN1Ym1pdEJ1dHRvbnRleHRcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcIiBncmV5VGV4dCBjb250cm9sLWxhYmVsXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRDdXN0b21pemUgU3VibWl0IGJ1dHRvbiBUZXh0IDpcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2xhYmVsPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcIlxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGlucHV0XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0dHlwZT1cXFwidGV4dFxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGlkPVxcXCJpbnB1dFN1Ym1pdEJ1dHRvbnRleHRcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0cGxhY2Vob2xkZXI9XFxcIlN1Ym1pdCBidXR0b24gdGV4dFxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRuZy1tb2RlbD1cXFwidm0uY29uZmlndXJhdGlvbi5zdWJtaXRCdXR0b25UZXh0XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJjb2wteHMtNlxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGxhYmVsXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Zm9yPVxcXCJpbnB1dENhbmNlbEJ1dHRvbnRleHRcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcIiBncmV5VGV4dCBjb250cm9sLWxhYmVsXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRDdXN0b21pemUgQ2FuY2VsIGJ1dHRvbiBUZXh0IDpcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2xhYmVsPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcIlxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGlucHV0XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0dHlwZT1cXFwidGV4dFxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGlkPVxcXCJpbnB1dENhbmNlbEJ1dHRvbnRleHRcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0cGxhY2Vob2xkZXI9XFxcIkNhbmNlbCBidXR0b24gdGV4dFxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRuZy1tb2RlbD1cXFwidm0uY29uZmlndXJhdGlvbi5jYW5jZWxCdXR0b25UZXh0XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcInBhbmVsLWhlYWRpbmcgaGVhZGluZy1wcmV2aWV3XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG5nLWNsaWNrPVxcXCJ2bS5paG0ucHJldmlldy5mb3JtbHlNb2RlbFZpZXdFeHBhbmRlZCA9IXZtLmlobS5wcmV2aWV3LmZvcm1seU1vZGVsVmlld0V4cGFuZGVkXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8aDMgY2xhc3M9XFxcInBhbmVsLXRpdGxlXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8YnV0dG9uIGNsYXNzPVxcXCJidG4gYnRuLXByaW1hcnkgYnRuLXhzXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8aVxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGNsYXNzPVxcXCJmYVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRuZy1jbGFzcz1cXFwieydmYS1hbmdsZS1kb3duJzohdm0uaWhtLnByZXZpZXcuZm9ybWx5TW9kZWxWaWV3RXhwYW5kZWQsICdmYS1hbmdsZS11cCcgOiB2bS5paG0ucHJldmlldy5mb3JtbHlNb2RlbFZpZXdFeHBhbmRlZH1cXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvaT5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2J1dHRvbj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQmbmJzcDtcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8aSBjbGFzcz1cXFwiZmEgZmEtZXllXFxcIj48L2k+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Jm5ic3A7XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0REFUQSBNT0RFTFxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvaDM+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwicGFuZWwtYm9keVxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiB1aWItY29sbGFwc2U9XFxcInZtLmlobS5wcmV2aWV3LmZvcm1seU1vZGVsVmlld0V4cGFuZGVkXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8cHJlPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHt7dm0ubW9kZWwgfCBqc29ufX1cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L3ByZT5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcInBhbmVsLWhlYWRpbmcgaGVhZGluZy1wcmV2aWV3XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG5nLWNsaWNrPVxcXCJ2bS5paG0ucHJldmlldy5mb3JtbHlGaWVsZHNWaWV3RXhwYW5kZWQgPSF2bS5paG0ucHJldmlldy5mb3JtbHlGaWVsZHNWaWV3RXhwYW5kZWRcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxoMyBjbGFzcz1cXFwicGFuZWwtdGl0bGVcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxidXR0b24gY2xhc3M9XFxcImJ0biBidG4tcHJpbWFyeSBidG4teHNcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxpXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcImZhXFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG5nLWNsYXNzPVxcXCJ7J2ZhLWFuZ2xlLWRvd24nOiF2bS5paG0ucHJldmlldy5mb3JtbHlGaWVsZHNWaWV3RXhwYW5kZWQsICdmYS1hbmdsZS11cCcgOiB2bS5paG0ucHJldmlldy5mb3JtbHlGaWVsZHNWaWV3RXhwYW5kZWR9XFxcIj48L2k+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9idXR0b24+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Jm5ic3A7XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGkgY2xhc3M9XFxcImZhIGZhLWV5ZVxcXCI+PC9pPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdCZuYnNwO1xcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdEZJRUxEUyBNT0RFTCAocmVhZHkgdG8gc2F2ZSB0byBkYXRhYmFzZSBvbmUpXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9oMz5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IHVpYi1jb2xsYXBzZT1cXFwidm0uaWhtLnByZXZpZXcuZm9ybWx5RmllbGRzVmlld0V4cGFuZGVkXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8cHJlPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHt7dm0ud2ZGb3JtRmllbGRzT25seU5lZWRlZFByb3BlcnRpZXMgfCBqc29ufX1cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L3ByZT5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbCBwYW5lbC1kZWZhdWx0XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Y2xhc3M9XFxcInBhbmVsLWhlYWRpbmcgaGVhZGluZy1wcmV2aWV3XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG5nLWNsaWNrPVxcXCJ2bS5paG0ucHJldmlldy5zYXZlVGhpc0Zvcm1FeHBhbmRlZCA9IXZtLmlobS5wcmV2aWV3LnNhdmVUaGlzRm9ybUV4cGFuZGVkXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8aDMgY2xhc3M9XFxcInBhbmVsLXRpdGxlXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8YnV0dG9uIGNsYXNzPVxcXCJidG4gYnRuLXByaW1hcnkgYnRuLXhzXFxcIiA+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGlcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRjbGFzcz1cXFwiZmFcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0bmctY2xhc3M9XFxcInsnZmEtYW5nbGUtZG93bic6IXZtLmlobS5wcmV2aWV3LnNhdmVUaGlzRm9ybUV4cGFuZGVkLCAnZmEtYW5nbGUtdXAnIDogdm0uaWhtLnByZXZpZXcuc2F2ZVRoaXNGb3JtRXhwYW5kZWR9XFxcIj48L2k+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9idXR0b24+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0Jm5ic3A7XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGkgY2xhc3M9XFxcImZhIGZhLWNhbWVyYS1yZXRyb1xcXCI+PC9pPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdCZuYnNwO1xcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFNhdmUgdGhpcyBmb3JtXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9oMz5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJwYW5lbC1ib2R5XFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IHVpYi1jb2xsYXBzZT1cXFwidm0uaWhtLnByZXZpZXcuc2F2ZVRoaXNGb3JtRXhwYW5kZWRcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiY29sLXhzLTEyXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8bGFiZWxcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRmb3I9XFxcImlucHV0TmFtZUZvcm10ZXh0XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGNsYXNzPVxcXCIgZ3JleVRleHQgY29udHJvbC1sYWJlbFxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0TmFtZSB0byB0aGlzIGZvcm0gOlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDwvbGFiZWw+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGRpdiBjbGFzcz1cXFwiXFxcIj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8aW5wdXRcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHR0eXBlPVxcXCJ0ZXh0XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0aWQ9XFxcImlucHV0TmFtZUZvcm10ZXh0XFxcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHBsYWNlaG9sZGVyPVxcXCJFbnRlciBmb3JtTmFtZVxcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRuZy1tb2RlbD1cXFwidm0uY29uZmlndXJhdGlvbi5mb3JtTmFtZVxcXCI+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PGJ1dHRvblxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdGNsYXNzPVxcXCJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIGJ0bi1sZ1xcXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRuZy1jbGljaz1cXFwidm0uc2F2ZVRoaXNGb3JtKClcXFwiPlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdHNhdmUgdGhpcyBmb3JtXFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9idXR0b24+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0PC9kaXY+XFxuXFx0XFx0XFx0XFx0XFx0XFx0XFx0PC91aWItdGFiPlxcblxcdFxcdFxcdFxcdFxcdFxcdDwvdWliLXRhYnNldD5cXG5cXHRcXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHRcXHQ8L2Rpdj5cXG5cXHRcXHRcXHQ8L3NlY3Rpb24+XFxuXFx0XFx0XFx0PGhyLz5cXG5cXHRcXHRcXHQ8c2VjdGlvbj5cXG4gICAgICAgIDxoNiBjbGFzcz1cXFwidGV4dC1yaWdodFxcXCI+XFxuICAgICAgICAgIEVhc3kgZm9ybSBnZW5lcmF0b3IgOiB7e3ZtLmVhc3lGb3JtR2VuZXJhdG9yVkVSU0lPTn19IOKAlCBFcndhbiBEQVRJTiAoTWFjS2VudG9jaClcXG4gICAgICAgIDwvaDY+XFxuXFx0XFx0XFx0PC9zZWN0aW9uPlxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2Plxcbjwvc2VjdGlvbj5cXG5cIlxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2VkYURyYWdEcm9wV2F5RWFzeUZvcm1HZW4vZWRhRHJhZ0Ryb3BXYXkuZWRhRHJhZ2Ryb3BXYXlFYXN5Rm9ybUdlbi50ZW1wbGF0ZS5odG1sXG4vLyBtb2R1bGUgaWQgPSA4M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
  368. /***/ },
  369. /* 84 */
  370. /***/ function(module, exports, __webpack_require__) {
  371. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _edaDragDropWayTrustThis = __webpack_require__(85);\n\nvar _edaDragDropWayTrustThis2 = _interopRequireDefault(_edaDragDropWayTrustThis);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TRUST_THIS_FILTER_MODULE = 'edaDragDropWay.trustThis.filter';\n\nexports.default = angular.module(TRUST_THIS_FILTER_MODULE, []).filter(_edaDragDropWayTrustThis.TRUST_THIS_FILTER_NAME, _edaDragDropWayTrustThis2.default);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL2VkYVRydXN0VGhpc0ZpbHRlci9lZGFEcmFnRHJvcFdheS50cnVzdFRoaXMubW9kdWxlLmpzPzY3MTkiXSwibmFtZXMiOlsiVFJVU1RfVEhJU19GSUxURVJfTU9EVUxFIiwiYW5ndWxhciIsIm1vZHVsZSIsImZpbHRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7OztBQUtBLElBQU1BLDJCQUEyQixpQ0FBakM7O2tCQUVlQyxRQUNFQyxNQURGLENBQ1NGLHdCQURULEVBQ21DLEVBRG5DLEVBRUVHLE1BRkYsb0YiLCJmaWxlIjoiODQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHJ1c3RUaGlzLCB7XG4gIFRSVVNUX1RISVNfRklMVEVSX05BTUVcbn0gZnJvbSAnLi9lZGFEcmFnRHJvcFdheS50cnVzdFRoaXMuZmlsdGVyJztcblxuXG5jb25zdCBUUlVTVF9USElTX0ZJTFRFUl9NT0RVTEUgPSAnZWRhRHJhZ0Ryb3BXYXkudHJ1c3RUaGlzLmZpbHRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGFuZ3VsYXJcbiAgICAgICAgICAgICAgICAubW9kdWxlKFRSVVNUX1RISVNfRklMVEVSX01PRFVMRSwgW10pXG4gICAgICAgICAgICAgICAgLmZpbHRlcihUUlVTVF9USElTX0ZJTFRFUl9OQU1FLCB0cnVzdFRoaXMpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2NvbW1vbi9lZGFUcnVzdFRoaXNGaWx0ZXIvZWRhRHJhZ0Ryb3BXYXkudHJ1c3RUaGlzLm1vZHVsZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  372. /***/ },
  373. /* 85 */
  374. /***/ function(module, exports) {
  375. eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar TRUST_THIS_FILTER_NAME = 'trustThis';\n\nfunction trustThis($sce) {\n return function (value, type) {\n return $sce.trustAs(type || 'html', value);\n };\n}\n\ntrustThis.$inject = ['$sce'];\n\nexports.default = trustThis;\nexports.TRUST_THIS_FILTER_NAME = TRUST_THIS_FILTER_NAME;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBwL2RyYWdkcm9wd2F5L2NvbXBvbmVudHMvY29tbW9uL2VkYVRydXN0VGhpc0ZpbHRlci9lZGFEcmFnRHJvcFdheS50cnVzdFRoaXMuZmlsdGVyLmpzPzljMmIiXSwibmFtZXMiOlsiVFJVU1RfVEhJU19GSUxURVJfTkFNRSIsInRydXN0VGhpcyIsIiRzY2UiLCJ2YWx1ZSIsInR5cGUiLCJ0cnVzdEFzIiwiJGluamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFNQSx5QkFBeUIsV0FBL0I7O0FBRUEsU0FBU0MsU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUI7QUFDdkIsU0FBTyxVQUFDQyxLQUFELEVBQVFDLElBQVI7QUFBQSxXQUFpQkYsS0FBS0csT0FBTCxDQUFhRCxRQUFRLE1BQXJCLEVBQTZCRCxLQUE3QixDQUFqQjtBQUFBLEdBQVA7QUFDRDs7QUFFREYsVUFBVUssT0FBVixHQUFvQixDQUNsQixNQURrQixDQUFwQjs7a0JBSWVMLFM7UUFHYkQsc0IsR0FBQUEsc0IiLCJmaWxlIjoiODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBUUlVTVF9USElTX0ZJTFRFUl9OQU1FID0gJ3RydXN0VGhpcyc7XG5cbmZ1bmN0aW9uIHRydXN0VGhpcygkc2NlKSB7XG4gIHJldHVybiAodmFsdWUsIHR5cGUpID0+ICRzY2UudHJ1c3RBcyh0eXBlIHx8ICdodG1sJywgdmFsdWUpO1xufVxuXG50cnVzdFRoaXMuJGluamVjdCA9IFtcbiAgJyRzY2UnXG5dO1xuXG5leHBvcnQgZGVmYXVsdCB0cnVzdFRoaXM7XG5cbmV4cG9ydCB7XG4gIFRSVVNUX1RISVNfRklMVEVSX05BTUVcbn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL2FwcC9kcmFnZHJvcHdheS9jb21wb25lbnRzL2NvbW1vbi9lZGFUcnVzdFRoaXNGaWx0ZXIvZWRhRHJhZ0Ryb3BXYXkudHJ1c3RUaGlzLmZpbHRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
  376. /***/ }
  377. /******/ ]);