From 8fd8dc4840baf5fc5b478ba8f5d460ced8c1366e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=B5=A9=E6=9E=97?= Date: Fri, 12 Jan 2024 18:03:13 +0800 Subject: [PATCH] =?UTF-8?q?[Feature]:=20=E7=BB=91=E5=AE=9A=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=EF=BC=8C=E9=85=8D=E7=BD=AE=E6=B5=81=E7=A8=8B=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E5=85=B3=E7=B3=BB=E6=97=B6=EF=BC=8C=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E6=9F=90=E5=AD=90=E8=A1=A8=E5=BF=85=E5=A1=AB?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=9C=A8=E5=8F=91=E8=B5=B7=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E6=97=B6=E6=A0=A1=E9=AA=8C=20#6214?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/uuflowManagerForInitApproval.coffee | 21 +++++++++++++ .../object_workflows.en.objectTranslation.yml | 4 +++ ...ject_workflows.zh-CN.objectTranslation.yml | 4 +++ .../object_workflows.object.yml | 27 ++++++++++++++++ .../programs/server/packages/modules.js | 26 ++++++++-------- .../server/packages/steedos_creator.js | 31 +++++++++++++++++-- .../server/packages/steedos_creator.js.map | 2 +- ...16ea9413b8cd85ada717cd3a6934cf722fa935.js} | 2 +- ...b8cd85ada717cd3a6934cf722fa935.stats.json} | 0 ...72a003d0bc555f97724324e85cd5b0fb7287b.css} | 2 +- .../programs/web.browser.legacy/program.json | 22 ++++++------- ...16ea9413b8cd85ada717cd3a6934cf722fa935.js} | 2 +- ...b8cd85ada717cd3a6934cf722fa935.stats.json} | 0 ...72a003d0bc555f97724324e85cd5b0fb7287b.css} | 2 +- .../bundle/programs/web.browser/program.json | 22 ++++++------- ...72a003d0bc555f97724324e85cd5b0fb7287b.css} | 2 +- ...724487e5ec390de10b5accba2a48355ab84c81.js} | 2 +- ...ec390de10b5accba2a48355ab84c81.stats.json} | 2 +- .../bundle/programs/web.cordova/program.json | 26 ++++++++-------- server/bundle/star.json | 2 +- 20 files changed, 141 insertions(+), 60 deletions(-) rename server/bundle/programs/web.browser.legacy/{18b1573e16dfb893209907100a4090bccecb75e9.js => 1a16ea9413b8cd85ada717cd3a6934cf722fa935.js} (99%) rename server/bundle/programs/web.browser.legacy/{18b1573e16dfb893209907100a4090bccecb75e9.stats.json => 1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json} (100%) rename server/bundle/programs/{web.cordova/5766f147e314187665f8cf23620c00b20d7a2c90.css => web.browser.legacy/22b72a003d0bc555f97724324e85cd5b0fb7287b.css} (92%) rename server/bundle/programs/web.browser/{18b1573e16dfb893209907100a4090bccecb75e9.js => 1a16ea9413b8cd85ada717cd3a6934cf722fa935.js} (99%) rename server/bundle/programs/web.browser/{18b1573e16dfb893209907100a4090bccecb75e9.stats.json => 1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json} (100%) rename server/bundle/programs/{web.browser.legacy/5766f147e314187665f8cf23620c00b20d7a2c90.css => web.browser/22b72a003d0bc555f97724324e85cd5b0fb7287b.css} (92%) rename server/bundle/programs/{web.browser/5766f147e314187665f8cf23620c00b20d7a2c90.css => web.cordova/22b72a003d0bc555f97724324e85cd5b0fb7287b.css} (92%) rename server/bundle/programs/web.cordova/{743c48204b93359a72631ab7ac17c3c7603be02f.js => b6724487e5ec390de10b5accba2a48355ab84c81.js} (99%) rename server/bundle/programs/web.cordova/{743c48204b93359a72631ab7ac17c3c7603be02f.stats.json => b6724487e5ec390de10b5accba2a48355ab84c81.stats.json} (99%) diff --git a/creator/packages/steedos-creator/server/lib/uuflowManagerForInitApproval.coffee b/creator/packages/steedos-creator/server/lib/uuflowManagerForInitApproval.coffee index 024d6a168b..6600081f8c 100644 --- a/creator/packages/steedos-creator/server/lib/uuflowManagerForInitApproval.coffee +++ b/creator/packages/steedos-creator/server/lib/uuflowManagerForInitApproval.coffee @@ -16,6 +16,7 @@ getRelateds = (objectApiName) -> objectFindOne = (objectApiName, query) -> return Meteor.wrapAsync((objectApiName, query, cb) -> + query.top = 1 objectql.getObject(objectApiName).find(query).then (resolve, reject) -> if (resolve && resolve.length > 0) cb(reject, resolve[0]) @@ -191,6 +192,23 @@ getInstanceFieldValue = (objField, formField, record, object_field, spaceId) -> return value +# requiredDetails结构["子表名.子表中master_detail字段名", ...] +checkRequiredDetails = (requiredDetails, masterRecord) -> + if !_.isEmpty requiredDetails + # 检查子表必填,即子表必须有记录 + requiredDetails.forEach (rd) -> + subTableName = rd.split('.')[0] + subTableMasterField = rd.split('.')[1] + subObjConfig = getObjectConfig subTableName + masterField = subObjConfig.fields[subTableMasterField] + refId = masterField.reference_to_field || '_id' + masterFieldValue = masterRecord[refId] + # 查询子表记录 + subTableRecord = objectFindOne(subTableName, { filters: [[subTableMasterField, '=', masterFieldValue]], fields: [subTableMasterField] }) + if !subTableRecord + throw new Error "请先新增#{subObjConfig.label}" + return + uuflowManagerForInitApproval = {} uuflowManagerForInitApproval.check_authorization = (req) -> @@ -429,6 +447,9 @@ uuflowManagerForInitApproval.initiateValues = (recordIds, flowId, spaceId, field record = objectFindOne(objectName, { filters: [['_id', '=', recordId]]}) flow = Creator.getCollection('flows').findOne(flowId, { fields: { form: 1 } }) if ow and record + requiredDetails = ow.required_details || [] + checkRequiredDetails(requiredDetails, record) + form = Creator.getCollection("forms").findOne(flow.form) formFields = form.current.fields || [] relatedObjects = getRelateds(objectName) diff --git a/packages/standard-objects/objectTranslations/object_workflows.en/object_workflows.en.objectTranslation.yml b/packages/standard-objects/objectTranslations/object_workflows.en/object_workflows.en.objectTranslation.yml index 95a2a65fcf..6d29771053 100644 --- a/packages/standard-objects/objectTranslations/object_workflows.en/object_workflows.en.objectTranslation.yml +++ b/packages/standard-objects/objectTranslations/object_workflows.en/object_workflows.en.objectTranslation.yml @@ -80,6 +80,10 @@ fields: lock_record_after_approval: label: Lock record after approval description: + required_details: + label: Required Details + help: Is There A Record Of The Sub Check Table When Initiating The Approval. + description: groups: script: Script listviews: diff --git a/packages/standard-objects/objectTranslations/object_workflows.zh-CN/object_workflows.zh-CN.objectTranslation.yml b/packages/standard-objects/objectTranslations/object_workflows.zh-CN/object_workflows.zh-CN.objectTranslation.yml index ec527052a7..60392377e0 100644 --- a/packages/standard-objects/objectTranslations/object_workflows.zh-CN/object_workflows.zh-CN.objectTranslation.yml +++ b/packages/standard-objects/objectTranslations/object_workflows.zh-CN/object_workflows.zh-CN.objectTranslation.yml @@ -80,6 +80,10 @@ fields: lock_record_after_approval: label: 审批完成后锁定记录 description: + required_details: + label: 必填子表 + help: 台账里发起审批时校验子表是否有记录。 + description: groups: script: 脚本 listviews: diff --git a/packages/standard-objects/object_workflows.object.yml b/packages/standard-objects/object_workflows.object.yml index 3c7463723b..538f37674b 100644 --- a/packages/standard-objects/object_workflows.object.yml +++ b/packages/standard-objects/object_workflows.object.yml @@ -185,6 +185,33 @@ fields: type: boolean defaultValue: false required: false + required_details: + label: Required Details + inlineHelpText: Is There A Record Of The Sub Check Table When Initiating The Approval. + type: select + multiple: true + is_wide: true + depend_on: + - object_name + amis: + disabledOn: "${is_system == true}" + "source": + "method": "get" + "url": "${context.rootUrl}/service/api/amis-metadata-objects/objects/${object_name}/relatedLists/options" + "headers": + "Authorization": "Bearer ${context.tenantId},${context.authToken}" + "adaptor": "let data = payload.data;\n// 移除 附件、任务、备忘、日程、审批单、历史步骤、批准步骤、审计日志\nconst needToRemove = ['cms_files.parent', 'tasks.related_to', 'notes.related_to', 'events.related_to', 'instances.record_ids', 'approvals.related_to', 'process_instance_history.target_object', 'audit_records.related_to'];\nconst options = [];\nfor (const item of data.options) {\n if (!needToRemove.includes(item.value)) {\n options.push(item);\n }\n}\ndata.options = options;\npayload.data = data;\nreturn payload;\n" + "sendOn": "this.object_name" + "requestAdaptor": "" + "autoComplete": + "method": "get" + "url": "${context.rootUrl}/service/api/amis-metadata-objects/objects/${object_name}/relatedLists/options" + "headers": + "Authorization": "Bearer ${context.tenantId},${context.authToken}" + "adaptor": "let data = payload.data;\n// 移除 附件、任务、备忘、日程、审批单、历史步骤、批准步骤、审计日志\nconst needToRemove = ['cms_files.parent', 'tasks.related_to', 'notes.related_to', 'events.related_to', 'instances.record_ids', 'approvals.related_to', 'process_instance_history.target_object', 'audit_records.related_to'];\nconst options = [];\nfor (const item of data.options) {\n if (!needToRemove.includes(item.value)) {\n options.push(item);\n }\n}\ndata.options = options;\npayload.data = data;\nreturn payload;\n" + "sendOn": "this.object_name" + "requestAdaptor": "" + list_views: default: columns: diff --git a/server/bundle/programs/server/packages/modules.js b/server/bundle/programs/server/packages/modules.js index 61e681b3d4..c6c5bdb7d8 100644 --- a/server/bundle/programs/server/packages/modules.js +++ b/server/bundle/programs/server/packages/modules.js @@ -463,7 +463,7 @@ module.useNode(); // module.exports = { "name": "@steedos/objectql", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "lib/index.js" }; @@ -490,7 +490,7 @@ module.useNode(); // module.exports = { "name": "@steedos/i18n", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "lib/index.js" }; @@ -517,7 +517,7 @@ module.useNode(); // module.exports = { "name": "@steedos/core", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "lib/index.js" }; @@ -544,7 +544,7 @@ module.useNode(); // module.exports = { "name": "@steedos/service-meteor-package-loader", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "index.js" }; @@ -571,7 +571,7 @@ module.useNode(); // module.exports = { "name": "@steedos/service-api", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "index.js" }; @@ -598,7 +598,7 @@ module.useNode(); // module.exports = { "name": "@steedos/service-metadata-server", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "index.js" }; @@ -625,7 +625,7 @@ module.useNode(); // module.exports = { "name": "@steedos/service-package-registry", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "package.service.js" }; @@ -652,7 +652,7 @@ module.useNode(); // module.exports = { "name": "@steedos/service-objectql", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "package.service.js" }; @@ -679,7 +679,7 @@ module.useNode(); // module.exports = { "name": "@steedos/service-ui", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "package.service.js" }; @@ -706,7 +706,7 @@ module.useNode(); // module.exports = { "name": "@steedos/service-pages", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "package.service.js" }; @@ -733,7 +733,7 @@ module.useNode(); // module.exports = { "name": "@steedos/router", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "lib/index.js" }; @@ -760,7 +760,7 @@ module.useNode(); // module.exports = { "name": "@steedos/auth", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "lib/index.js" }; @@ -787,7 +787,7 @@ module.useNode(); // module.exports = { "name": "@steedos/workflow", - "version": "2.6.4-beta.1", + "version": "2.6.4-beta.2", "main": "index.js" }; diff --git a/server/bundle/programs/server/packages/steedos_creator.js b/server/bundle/programs/server/packages/steedos_creator.js index a93edf2d0c..8b7efbd264 100644 --- a/server/bundle/programs/server/packages/steedos_creator.js +++ b/server/bundle/programs/server/packages/steedos_creator.js @@ -2612,7 +2612,7 @@ permissionManagerForInitApproval.getFlowPermissions = function (flow_id, user_id ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // __coffeescriptShare = typeof __coffeescriptShare === 'object' ? __coffeescriptShare : {}; var share = __coffeescriptShare; -var _eval, getFieldOdataValue, getFileFieldValue, getFormField, getFormTableField, getFormTableFieldCode, getFormTableSubField, getInstanceFieldValue, getObjectConfig, getObjectNameFieldKey, getRelatedObjectFieldCode, getRelateds, getSelectOrgValue, getSelectOrgValues, getSelectUserValue, getSelectUserValues, objectFind, objectFindOne, objectUpdate, objectql; +var _eval, checkRequiredDetails, getFieldOdataValue, getFileFieldValue, getFormField, getFormTableField, getFormTableFieldCode, getFormTableSubField, getInstanceFieldValue, getObjectConfig, getObjectNameFieldKey, getRelatedObjectFieldCode, getRelateds, getSelectOrgValue, getSelectOrgValues, getSelectUserValue, getSelectUserValues, objectFind, objectFindOne, objectUpdate, objectql; _eval = require('eval'); objectql = require('@steedos/objectql'); @@ -2635,6 +2635,7 @@ getRelateds = function (objectApiName) { objectFindOne = function (objectApiName, query) { return Meteor.wrapAsync(function (objectApiName, query, cb) { + query.top = 1; return objectql.getObject(objectApiName).find(query).then(function (resolve, reject) { if (resolve && resolve.length > 0) { return cb(reject, resolve[0]); @@ -2915,6 +2916,28 @@ getInstanceFieldValue = function (objField, formField, record, object_field, spa return value; }; +checkRequiredDetails = function (requiredDetails, masterRecord) { + if (!_.isEmpty(requiredDetails)) { + requiredDetails.forEach(function (rd) { + var masterField, masterFieldValue, refId, subObjConfig, subTableMasterField, subTableName, subTableRecord; + subTableName = rd.split('.')[0]; + subTableMasterField = rd.split('.')[1]; + subObjConfig = getObjectConfig(subTableName); + masterField = subObjConfig.fields[subTableMasterField]; + refId = masterField.reference_to_field || '_id'; + masterFieldValue = masterRecord[refId]; + subTableRecord = objectFindOne(subTableName, { + filters: [[subTableMasterField, '=', masterFieldValue]], + fields: [subTableMasterField] + }); + + if (!subTableRecord) { + throw new Error("请先新增" + subObjConfig.label); + } + }); + } +}; + uuflowManagerForInitApproval = {}; uuflowManagerForInitApproval.check_authorization = function (req) { @@ -3163,7 +3186,7 @@ uuflowManagerForInitApproval.create_instance = function (instance_from_client, u }; uuflowManagerForInitApproval.initiateValues = function (recordIds, flowId, spaceId, fields, relatedTablesInfo) { - var fieldCodes, filterValues, flow, form, formFields, formTableFields, formTableFieldsCode, object, objectName, ow, record, recordId, ref, relatedObjects, relatedObjectsKeys, tableFieldCodes, tableFieldMap, tableToRelatedMap, values; + var fieldCodes, filterValues, flow, form, formFields, formTableFields, formTableFieldsCode, object, objectName, ow, record, recordId, ref, relatedObjects, relatedObjectsKeys, requiredDetails, tableFieldCodes, tableFieldMap, tableToRelatedMap, values; fieldCodes = []; _.each(fields, function (f) { @@ -3194,6 +3217,8 @@ uuflowManagerForInitApproval.initiateValues = function (recordIds, flowId, space }); if (ow && record) { + requiredDetails = ow.required_details || []; + checkRequiredDetails(requiredDetails, record); form = Creator.getCollection("forms").findOne(flow.form); formFields = form.current.fields || []; relatedObjects = getRelateds(objectName); @@ -3550,4 +3575,4 @@ Package._define("steedos:creator", { })(); //# sourceURL=meteor://💻app/packages/steedos_creator.js -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvczpjcmVhdG9yL2NoZWNrTnBtLmpzIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3IvY29yZS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL2NvcmUuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3IvbGliL2FwcHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL21ldGhvZHMvb2JqZWN0X3JlY2VudF92aWV3ZWQuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9zZXJ2ZXIvbWV0aG9kcy9vYmplY3RfcmVjZW50X3ZpZXdlZC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbWV0aG9kcy9vYmplY3RfcmVjZW50X3JlY29yZC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL29iamVjdF9yZWNlbnRfcmVjb3JkLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9tZXRob2RzL29iamVjdF9saXN0dmlld3Nfb3B0aW9ucy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL29iamVjdF9saXN0dmlld3Nfb3B0aW9ucy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbWV0aG9kcy9yZXBvcnRfZGF0YS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL3JlcG9ydF9kYXRhLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9tZXRob2RzL3VzZXJfdGFidWxhcl9zZXR0aW5ncy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL3VzZXJfdGFidWxhcl9zZXR0aW5ncy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbWV0aG9kcy9vYmplY3RfZXhwb3J0MnhtbC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL29iamVjdF9leHBvcnQyeG1sLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9tZXRob2RzL3JlbGF0ZWRfb2JqZWN0c19yZWNvcmRzLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvc2VydmVyL21ldGhvZHMvcmVsYXRlZF9vYmplY3RzX3JlY29yZHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL21ldGhvZHMvcGVuZGluZ19zcGFjZS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL3BlbmRpbmdfc3BhY2UuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9vYmplY3QuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9zZXJ2ZXIvcHVibGljYXRpb25zL29iamVjdC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvcHVibGljYXRpb25zL29iamVjdF90YWJ1bGFyLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvc2VydmVyL3B1YmxpY2F0aW9ucy9vYmplY3RfdGFidWxhci5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvcHVibGljYXRpb25zL29iamVjdF9saXN0dmlld3MuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy91c2VyX3RhYnVsYXJfc2V0dGluZ3MuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9yZWxhdGVkX29iamVjdHNfcmVjb3Jkcy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9wdWJsaWNhdGlvbnMvcmVsYXRlZF9vYmplY3RzX3JlY29yZHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9zcGFjZV91c2VyX2luZm8uY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9jb250YWN0c192aWV3X2xpbWl0cy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9wdWJsaWNhdGlvbnMvY29udGFjdHNfdmlld19saW1pdHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9jb250YWN0c19ub19mb3JjZV9waG9uZV91c2Vycy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9wdWJsaWNhdGlvbnMvY29udGFjdHNfbm9fZm9yY2VfcGhvbmVfdXNlcnMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9zcGFjZV9uZWVkX3RvX2NvbmZpcm0uY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9zZXJ2ZXIvcHVibGljYXRpb25zL3NwYWNlX25lZWRfdG9fY29uZmlybS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbGliL3Blcm1pc3Npb25fbWFuYWdlci5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9saWIvcGVybWlzc2lvbl9tYW5hZ2VyLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9saWIvdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9saWIvdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jb2ZmZWUiXSwibmFtZXMiOlsiY2hlY2tOcG1WZXJzaW9ucyIsIm1vZHVsZSIsImxpbmsiLCJ2IiwiYnVzYm95IiwiTWV0ZW9yIiwic2V0dGluZ3MiLCJjZnMiLCJhbGl5dW4iLCJDcmVhdG9yIiwiZ2V0U2NoZW1hIiwib2JqZWN0X25hbWUiLCJyZWYiLCJnZXRPYmplY3QiLCJzY2hlbWEiLCJnZXRPYmplY3RIb21lQ29tcG9uZW50IiwiZ2V0T2JqZWN0VXJsIiwicmVjb3JkX2lkIiwiYXBwX2lkIiwibGlzdF92aWV3IiwibGlzdF92aWV3X2lkIiwiU2Vzc2lvbiIsImdldCIsImdldExpc3RWaWV3IiwiX2lkIiwiZ2V0UmVsYXRpdmVVcmwiLCJnZXRPYmplY3RBYnNvbHV0ZVVybCIsIlN0ZWVkb3MiLCJhYnNvbHV0ZVVybCIsImdldE9iamVjdFJvdXRlclVybCIsImdldExpc3RWaWV3VXJsIiwidXJsIiwiZ2V0TGlzdFZpZXdSZWxhdGl2ZVVybCIsImdldFN3aXRjaExpc3RVcmwiLCJnZXRSZWxhdGVkT2JqZWN0VXJsIiwicmVsYXRlZF9vYmplY3RfbmFtZSIsInJlbGF0ZWRfZmllbGRfbmFtZSIsImdldE9iamVjdExvb2t1cEZpZWxkT3B0aW9ucyIsImlzX2RlZXAiLCJpc19za2lwX2hpZGUiLCJpc19yZWxhdGVkIiwiX29iamVjdCIsIl9vcHRpb25zIiwiZmllbGRzIiwiaWNvbiIsInJlbGF0ZWRPYmplY3RzIiwiXyIsImZvckVhY2giLCJmIiwiayIsImhpZGRlbiIsInR5cGUiLCJwdXNoIiwibGFiZWwiLCJ2YWx1ZSIsInJfb2JqZWN0IiwicmVmZXJlbmNlX3RvIiwiaXNTdHJpbmciLCJmMiIsImsyIiwiZ2V0UmVsYXRlZE9iamVjdHMiLCJlYWNoIiwiX3RoaXMiLCJfcmVsYXRlZE9iamVjdCIsInJlbGF0ZWRPYmplY3QiLCJyZWxhdGVkT3B0aW9ucyIsInJlbGF0ZWRPcHRpb24iLCJmb3JlaWduX2tleSIsIm5hbWUiLCJnZXRPYmplY3RGaWx0ZXJGaWVsZE9wdGlvbnMiLCJwZXJtaXNzaW9uX2ZpZWxkcyIsImdldEZpZWxkcyIsImluY2x1ZGUiLCJ0ZXN0IiwiaW5kZXhPZiIsImdldE9iamVjdEZpZWxkT3B0aW9ucyIsImdldEZpbHRlcnNXaXRoRmlsdGVyRmllbGRzIiwiZmlsdGVycyIsImZpbHRlcl9maWVsZHMiLCJsZW5ndGgiLCJuIiwiZmllbGQiLCJyZXF1aXJlZCIsImZpbmRXaGVyZSIsImlzX2RlZmF1bHQiLCJpc19yZXF1aXJlZCIsImZpbHRlckl0ZW0iLCJtYXRjaEZpZWxkIiwiZmluZCIsImdldE9iamVjdFJlY29yZCIsInNlbGVjdF9maWVsZHMiLCJleHBhbmQiLCJjb2xsZWN0aW9uIiwib2JqIiwicmVjb3JkIiwicmVmMSIsInJlZjIiLCJpc0NsaWVudCIsIlRlbXBsYXRlIiwiaW5zdGFuY2UiLCJvZGF0YSIsImRhdGFiYXNlX25hbWUiLCJnZXRDb2xsZWN0aW9uIiwiZmluZE9uZSIsImdldE9iamVjdFJlY29yZE5hbWUiLCJuYW1lX2ZpZWxkX2tleSIsIk5BTUVfRklFTERfS0VZIiwiZ2V0QXBwIiwiYXBwTWVudXMiLCJjdXJyZW50QXBwIiwibWVudUl0ZW0iLCJpZCIsImdldEFwcERhc2hib2FyZCIsImFwcCIsImRhc2hib2FyZCIsIkRhc2hib2FyZHMiLCJhcHBzIiwiZ2V0QXBwRGFzaGJvYXJkQ29tcG9uZW50IiwiZ2V0QXBwT2JqZWN0TmFtZXMiLCJhcHBPYmplY3RzIiwiaXNNb2JpbGUiLCJvYmplY3RzIiwibW9iaWxlX29iamVjdHMiLCJwZXJtaXNzaW9ucyIsImFsbG93UmVhZCIsImdldFVybFdpdGhUb2tlbiIsImV4cHJlc3Npb25Gb3JtRGF0YSIsImhhc1F1ZXJ5U3ltYm9sIiwibGlua1N0ciIsInBhcmFtcyIsInNwYWNlSWQiLCJ1c2VySWQiLCJnZXRVc2VyQ29tcGFueUlkcyIsIkFjY291bnRzIiwiX3N0b3JlZExvZ2luVG9rZW4iLCJpc0V4cHJlc3Npb24iLCJwYXJzZVNpbmdsZUV4cHJlc3Npb24iLCJVU0VSX0NPTlRFWFQiLCIkIiwicGFyYW0iLCJnZXRBcHBNZW51IiwibWVudV9pZCIsIm1lbnVzIiwiZ2V0QXBwTWVudXMiLCJtZW51IiwiZ2V0QXBwTWVudVVybEZvckludGVybmV0IiwicGF0aCIsImdldEFwcE1lbnVVcmwiLCJ0YXJnZXQiLCJjdXJlbnRBcHBNZW51cyIsImNoaWxkcmVuIiwibG9hZEFwcHNNZW51cyIsImRhdGEiLCJvcHRpb25zIiwibW9iaWxlIiwic3VjY2VzcyIsInNldCIsImF1dGhSZXF1ZXN0IiwiY3JlYXRvckFwcHNTZWxlY3RvciIsImFzc2lnbmVkX2FwcHMiLCJhZG1pbkFwcCIsImNyZWF0b3JBcHBzIiwic29ydGVkQXBwcyIsImtleSIsImlzX2NyZWF0b3IiLCJ2aXNpYmxlIiwic29ydEJ5IiwidmFsdWVzIiwiYWRtaW4iLCJ2aXNpYmxlQXBwc1NlbGVjdG9yIiwiaW5jbHVkZUFkbWluIiwiZ2V0VmlzaWJsZUFwcHMiLCJjaGFuZ2VBcHAiLCJfc3ViQXBwIiwiT2JqZWN0IiwiYXNzaWduIiwiQXBwcyIsImdldFZpc2libGVBcHBzT2JqZWN0cyIsInZpc2libGVPYmplY3ROYW1lcyIsImZsYXR0ZW4iLCJwbHVjayIsImZpbHRlciIsIk9iamVjdHMiLCJzb3J0Iiwic29ydGluZ01ldGhvZCIsImJpbmQiLCJ1bmlxIiwiZ2V0QXBwc09iamVjdHMiLCJ0ZW1wT2JqZWN0cyIsImNvbmNhdCIsInZhbGlkYXRlRmlsdGVycyIsImxvZ2ljIiwiZSIsImVycm9yTXNnIiwiZmlsdGVyX2l0ZW1zIiwiZmlsdGVyX2xlbmd0aCIsImZsYWciLCJpbmRleCIsIndvcmQiLCJtYXAiLCJpc0VtcHR5IiwiY29tcGFjdCIsInJlcGxhY2UiLCJtYXRjaCIsImkiLCJpbmNsdWRlcyIsInciLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJ0b2FzdHIiLCJmb3JtYXRGaWx0ZXJzVG9Nb25nbyIsInNlbGVjdG9yIiwiQXJyYXkiLCJvcGVyYXRpb24iLCJvcHRpb24iLCJyZWciLCJzdWJfc2VsZWN0b3IiLCJldmFsdWF0ZUZvcm11bGEiLCJSZWdFeHAiLCJpc0JldHdlZW5GaWx0ZXJPcGVyYXRpb24iLCJnZXRCZXR3ZWVuVGltZUJ1aWx0aW5WYWx1ZXMiLCJmb3JtYXRGaWx0ZXJzVG9EZXYiLCJsb2dpY1RlbXBGaWx0ZXJzIiwiaXNfbG9naWNfb3IiLCJwb3AiLCJTdGVlZG9zRmlsdGVycyIsImZvcm1hdExvZ2ljRmlsdGVyc1RvRGV2IiwiZmlsdGVyX2xvZ2ljIiwiZm9ybWF0X2xvZ2ljIiwieCIsIl9mIiwiaXNBcnJheSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZWxhdGVkX29iamVjdF9uYW1lcyIsInJlbGF0ZWRfb2JqZWN0cyIsInVucmVsYXRlZF9vYmplY3RzIiwiZ2V0T2JqZWN0UmVsYXRlZHMiLCJfY29sbGVjdGlvbl9uYW1lIiwiZ2V0UGVybWlzc2lvbnMiLCJkaWZmZXJlbmNlIiwicmVsYXRlZF9vYmplY3QiLCJpc0FjdGl2ZSIsImFsbG93UmVhZEZpbGVzIiwiZ2V0UmVsYXRlZE9iamVjdE5hbWVzIiwiZ2V0UmVsYXRlZE9iamVjdExpc3RBY3Rpb25zIiwicmVsYXRlZE9iamVjdE5hbWUiLCJhY3Rpb25zIiwiZ2V0QWN0aW9ucyIsImFjdGlvbiIsIm9uIiwiZGlzYWJsZWRfYWN0aW9ucyIsImhhcyIsImFsbG93X2N1c3RvbUFjdGlvbnMiLCJrZXlzIiwiZXhjbHVkZV9hY3Rpb25zIiwiZ2V0TGlzdFZpZXdzIiwiZGlzYWJsZWRfbGlzdF92aWV3cyIsImxpc3RWaWV3cyIsImxpc3Rfdmlld3MiLCJvYmplY3QiLCJpdGVtIiwiaXRlbV9uYW1lIiwiaXNEaXNhYmxlZCIsIm93bmVyIiwiZmllbGRzTmFtZSIsInVucmVhZGFibGVfZmllbGRzIiwiZ2V0T2JqZWN0RmllbGRzTmFtZSIsImlzbG9hZGluZyIsImJvb3RzdHJhcExvYWRlZCIsImNvbnZlcnRTcGVjaWFsQ2hhcmFjdGVyIiwic3RyIiwiZ2V0RGlzYWJsZWRGaWVsZHMiLCJmaWVsZE5hbWUiLCJhdXRvZm9ybSIsImRpc2FibGVkIiwib21pdCIsImdldEhpZGRlbkZpZWxkcyIsImdldEZpZWxkc1dpdGhOb0dyb3VwIiwiZ3JvdXAiLCJnZXRTb3J0ZWRGaWVsZEdyb3VwTmFtZXMiLCJuYW1lcyIsInVuaXF1ZSIsImdldEZpZWxkc0Zvckdyb3VwIiwiZ3JvdXBOYW1lIiwiZ2V0U3lzdGVtQmFzZUZpZWxkcyIsImdldEZpZWxkc1dpdGhvdXRTeXN0ZW1CYXNlIiwiZ2V0RmllbGRzV2l0aG91dE9taXQiLCJwaWNrIiwiZ2V0RmllbGRzSW5GaXJzdExldmVsIiwiZmlyc3RMZXZlbEtleXMiLCJnZXRGaWVsZHNGb3JSZW9yZGVyIiwiaXNTaW5nbGUiLCJfa2V5cyIsImNoaWxkS2V5cyIsImlzX3dpZGVfMSIsImlzX3dpZGVfMiIsInNjXzEiLCJzY18yIiwiZW5kc1dpdGgiLCJpc193aWRlIiwic2xpY2UiLCJpc0ZpbHRlclZhbHVlRW1wdHkiLCJOdW1iZXIiLCJpc05hTiIsImdldEZpZWxkRGF0YVR5cGUiLCJvYmplY3RGaWVsZHMiLCJyZXN1bHQiLCJkYXRhX3R5cGUiLCJpc1NlcnZlciIsImdldEFsbFJlbGF0ZWRPYmplY3RzIiwicmVsYXRlZF9maWVsZCIsImVuYWJsZV9maWxlcyIsImZvcm1hdEluZGV4IiwiYXJyYXkiLCJpbmRleE5hbWUiLCJpc2RvY3VtZW50REIiLCJiYWNrZ3JvdW5kIiwiZGF0YXNvdXJjZXMiLCJkb2N1bWVudERCIiwiam9pbiIsInN1YnN0cmluZyIsImFwcHNCeU5hbWUiLCJtZXRob2RzIiwic3BhY2VfaWQiLCJjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQiLCJjdXJyZW50X3JlY2VudF92aWV3ZWQiLCJkb2MiLCJzcGFjZSIsInVwZGF0ZSIsIiRpbmMiLCJjb3VudCIsIiRzZXQiLCJtb2RpZmllZCIsIkRhdGUiLCJtb2RpZmllZF9ieSIsImluc2VydCIsIl9tYWtlTmV3SUQiLCJvIiwiaWRzIiwiY3JlYXRlZCIsImNyZWF0ZWRfYnkiLCJ2YWxpZGF0ZSIsImFzeW5jX3JlY2VudF9hZ2dyZWdhdGUiLCJyZWNlbnRfYWdncmVnYXRlIiwic2VhcmNoX29iamVjdCIsIl9yZWNvcmRzIiwiY2FsbGJhY2siLCJDb2xsZWN0aW9ucyIsIm9iamVjdF9yZWNlbnRfdmlld2VkIiwicmF3Q29sbGVjdGlvbiIsImFnZ3JlZ2F0ZSIsIiRtYXRjaCIsIiRncm91cCIsIm1heENyZWF0ZWQiLCIkbWF4IiwiJHNvcnQiLCIkbGltaXQiLCJ0b0FycmF5IiwiZXJyIiwiRXJyb3IiLCJpc0Z1bmN0aW9uIiwid3JhcEFzeW5jIiwic2VhcmNoVGV4dCIsIl9vYmplY3RfY29sbGVjdGlvbiIsIl9vYmplY3RfbmFtZV9rZXkiLCJxdWVyeSIsInF1ZXJ5X2FuZCIsInJlY29yZHMiLCJzZWFyY2hfS2V5d29yZHMiLCJzcGxpdCIsImtleXdvcmQiLCJzdWJxdWVyeSIsIiRyZWdleCIsInRyaW0iLCIkYW5kIiwiJGluIiwibGltaXQiLCJfbmFtZSIsIl9vYmplY3RfbmFtZSIsInJlY29yZF9vYmplY3QiLCJyZWNvcmRfb2JqZWN0X2NvbGxlY3Rpb24iLCJzZWxmIiwib2JqZWN0c0J5TmFtZSIsIm9iamVjdF9yZWNvcmQiLCJlbmFibGVfc2VhcmNoIiwidXBkYXRlX2ZpbHRlcnMiLCJsaXN0dmlld19pZCIsImZpbHRlcl9zY29wZSIsIm9iamVjdF9saXN0dmlld3MiLCJkaXJlY3QiLCJ1cGRhdGVfY29sdW1ucyIsImNvbHVtbnMiLCJjaGVjayIsImNvbXBvdW5kRmllbGRzIiwiY3Vyc29yIiwiZmlsdGVyRmllbGRzIiwiY2hpbGRLZXkiLCJvYmplY3RGaWVsZCIsInNwbGl0cyIsImlzQ29tbW9uU3BhY2UiLCJpc1NwYWNlQWRtaW4iLCJza2lwIiwiZmV0Y2giLCJjb21wb3VuZEZpZWxkSXRlbSIsImNvbXBvdW5kRmlsdGVyRmllbGRzIiwiaXRlbUtleSIsIml0ZW1WYWx1ZSIsInJlZmVyZW5jZUl0ZW0iLCJzZXR0aW5nIiwiY29sdW1uX3dpZHRoIiwib2JqMSIsIl9pZF9hY3Rpb25zIiwiX21peEZpZWxkc0RhdGEiLCJfbWl4UmVsYXRlZERhdGEiLCJfd3JpdGVYbWxGaWxlIiwiZnMiLCJsb2dnZXIiLCJta2RpcnAiLCJ4bWwyanMiLCJyZXF1aXJlIiwiTG9nZ2VyIiwianNvbk9iaiIsIm9iak5hbWUiLCJidWlsZGVyIiwiZGF5IiwiZmlsZUFkZHJlc3MiLCJmaWxlTmFtZSIsImZpbGVQYXRoIiwibW9udGgiLCJub3ciLCJzdHJlYW0iLCJ4bWwiLCJ5ZWFyIiwiQnVpbGRlciIsImJ1aWxkT2JqZWN0IiwiQnVmZmVyIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJfX21ldGVvcl9ib290c3RyYXBfXyIsInNlcnZlckRpciIsImV4aXN0c1N5bmMiLCJzeW5jIiwid3JpdGVGaWxlIiwibWl4Qm9vbCIsIm1peERhdGUiLCJtaXhEZWZhdWx0Iiwib2JqRmllbGRzIiwiZmllbGRfbmFtZSIsImRhdGUiLCJkYXRlU3RyIiwiZm9ybWF0IiwibW9tZW50IiwicmVsYXRlZE9iak5hbWVzIiwicmVsYXRlZE9iak5hbWUiLCJyZWxhdGVkQ29sbGVjdGlvbiIsInJlbGF0ZWRSZWNvcmRMaXN0IiwicmVsYXRlZFRhYmxlRGF0YSIsInJlbGF0ZWRPYmoiLCJmaWVsZHNEYXRhIiwiRXhwb3J0MnhtbCIsInJlY29yZExpc3QiLCJpbmZvIiwidGltZSIsInJlY29yZE9iaiIsInRpbWVFbmQiLCJyZWxhdGVkX29iamVjdHNfcmVjb3JkcyIsInJlbGF0ZWRfcmVjb3JkcyIsInZpZXdBbGxSZWNvcmRzIiwiZ2V0UGVuZGluZ1NwYWNlSW5mbyIsImludml0ZXJJZCIsImludml0ZXJOYW1lIiwic3BhY2VOYW1lIiwiZGIiLCJ1c2VycyIsInNwYWNlcyIsImludml0ZXIiLCJyZWZ1c2VKb2luU3BhY2UiLCJzcGFjZV91c2VycyIsImludml0ZV9zdGF0ZSIsImFjY2VwdEpvaW5TcGFjZSIsInVzZXJfYWNjZXB0ZWQiLCJwdWJsaXNoIiwicHVibGlzaENvbXBvc2l0ZSIsInRhYmxlTmFtZSIsIl9maWVsZHMiLCJvYmplY3RfY29sbGVjaXRvbiIsInJlZmVyZW5jZV9maWVsZHMiLCJyZWFkeSIsIlN0cmluZyIsIk1hdGNoIiwiT3B0aW9uYWwiLCJnZXRPYmplY3ROYW1lIiwidW5ibG9jayIsImZpZWxkX2tleXMiLCJfb2JqZWN0S2V5cyIsInJlZmVyZW5jZV9maWVsZCIsInBhcmVudCIsImNoaWxkcmVuX2ZpZWxkcyIsInBfayIsInJlZmVyZW5jZV9pZHMiLCJyZWZlcmVuY2VfdG9fb2JqZWN0Iiwic19rIiwiZ2V0UHJvcGVydHkiLCJyZWR1Y2UiLCJpc09iamVjdCIsInNoYXJlZCIsInVzZXIiLCJzcGFjZV9zZXR0aW5ncyIsInBlcm1pc3Npb25NYW5hZ2VyRm9ySW5pdEFwcHJvdmFsIiwiZ2V0Rmxvd1Blcm1pc3Npb25zIiwiZmxvd19pZCIsInVzZXJfaWQiLCJmbG93IiwibXlfcGVybWlzc2lvbnMiLCJvcmdfaWRzIiwib3JnYW5pemF0aW9ucyIsIm9yZ3NfY2FuX2FkZCIsIm9yZ3NfY2FuX2FkbWluIiwib3Jnc19jYW5fbW9uaXRvciIsInVzZXJzX2Nhbl9hZGQiLCJ1c2Vyc19jYW5fYWRtaW4iLCJ1c2Vyc19jYW5fbW9uaXRvciIsInV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwiLCJnZXRGbG93IiwicGFyZW50cyIsIm9yZyIsInBhcmVudF9pZCIsInBlcm1zIiwib3JnX2lkIiwiX2V2YWwiLCJnZXRGaWVsZE9kYXRhVmFsdWUiLCJnZXRGaWxlRmllbGRWYWx1ZSIsImdldEZvcm1GaWVsZCIsImdldEZvcm1UYWJsZUZpZWxkIiwiZ2V0Rm9ybVRhYmxlRmllbGRDb2RlIiwiZ2V0Rm9ybVRhYmxlU3ViRmllbGQiLCJnZXRJbnN0YW5jZUZpZWxkVmFsdWUiLCJnZXRPYmplY3RDb25maWciLCJnZXRPYmplY3ROYW1lRmllbGRLZXkiLCJnZXRSZWxhdGVkT2JqZWN0RmllbGRDb2RlIiwiZ2V0UmVsYXRlZHMiLCJnZXRTZWxlY3RPcmdWYWx1ZSIsImdldFNlbGVjdE9yZ1ZhbHVlcyIsImdldFNlbGVjdFVzZXJWYWx1ZSIsImdldFNlbGVjdFVzZXJWYWx1ZXMiLCJvYmplY3RGaW5kIiwib2JqZWN0RmluZE9uZSIsIm9iamVjdFVwZGF0ZSIsIm9iamVjdHFsIiwib2JqZWN0QXBpTmFtZSIsInRvQ29uZmlnIiwiY2IiLCJ0aGVuIiwicmVzb2x2ZSIsInJlamVjdCIsInJlbGF0ZWRPYmplY3RzS2V5cyIsInJlbGF0ZWRPYmplY3RzS2V5Iiwic3RhcnRzV2l0aCIsImZvcm1UYWJsZUZpZWxkc0NvZGUiLCJmb3JtVGFibGVGaWVsZENvZGUiLCJmb3JtVGFibGVGaWVsZHMiLCJjb2RlIiwiZm9ybUZpZWxkcyIsImZmIiwic2YiLCJ0YWJsZUZpZWxkIiwic3ViRmllbGRDb2RlIiwicmVmZXJlbmNlVG9GaWVsZE5hbWUiLCJfcmVjb3JkIiwibmFtZUtleSIsInN1IiwidXNlcklkcyIsInN1cyIsIm9yZ0lkIiwiZnVsbG5hbWUiLCJvcmdJZHMiLCJvcmdzIiwicmVjb3JkRmllbGRJZCIsImZUeXBlIiwiZmlsZXMiLCJuZXdGaWxlIiwiRlMiLCJGaWxlIiwiYXR0YWNoRGF0YSIsImNyZWF0ZVJlYWRTdHJlYW0iLCJvcmlnaW5hbCIsIm1ldGFkYXRhIiwicmVhc29uIiwic2l6ZSIsImluc3RhbmNlcyIsIm9iakZpZWxkIiwiZm9ybUZpZWxkIiwib2JqZWN0X2ZpZWxkIiwib2RhdGFGaWVsZFZhbHVlIiwicmVjb3JkRmllbGRWYWx1ZSIsInJlZmVyZW5jZVRvT2JqZWN0TmFtZSIsInNlbGVjdEZpZWxkVmFsdWUiLCJyZWZlcmVuY2VfdG9fZmllbGQiLCJtdWx0aXBsZSIsImlzX211bHRpc2VsZWN0IiwiZm9ybWF0RGF0ZSIsImhhc093blByb3BlcnR5IiwiY2hlY2tfYXV0aG9yaXphdGlvbiIsInJlcSIsImF1dGhUb2tlbiIsImhhc2hlZFRva2VuIiwiX2hhc2hMb2dpblRva2VuIiwiZ2V0U3BhY2UiLCJmbG93cyIsImdldFNwYWNlVXNlciIsInNwYWNlX3VzZXIiLCJnZXRTcGFjZVVzZXJPcmdJbmZvIiwib3JnYW5pemF0aW9uIiwib3JnYW5pemF0aW9uX25hbWUiLCJvcmdhbml6YXRpb25fZnVsbG5hbWUiLCJpc0Zsb3dFbmFibGVkIiwic3RhdGUiLCJpc0Zsb3dTcGFjZU1hdGNoZWQiLCJnZXRGb3JtIiwiZm9ybV9pZCIsImZvcm0iLCJmb3JtcyIsImdldENhdGVnb3J5IiwiY2F0ZWdvcnlfaWQiLCJjYXRlZ29yaWVzIiwiY2hlY2tTeW5jRGlyZWN0aW9uIiwib3ciLCJzeW5jRGlyZWN0aW9uIiwib2JqZWN0X3dvcmtmbG93cyIsInN5bmNfZGlyZWN0aW9uIiwiY3JlYXRlX2luc3RhbmNlIiwiaW5zdGFuY2VfZnJvbV9jbGllbnQiLCJ1c2VyX2luZm8iLCJhcHByX29iaiIsImFwcHJvdmVfZnJvbV9jbGllbnQiLCJjYXRlZ29yeSIsImluc19vYmoiLCJuZXdfaW5zX2lkIiwicmVsYXRlZFRhYmxlc0luZm8iLCJzcGFjZV91c2VyX29yZ19pbmZvIiwic3RhcnRfc3RlcCIsInRyYWNlX2Zyb21fY2xpZW50IiwidHJhY2Vfb2JqIiwiY2hlY2tJc0luQXBwcm92YWwiLCJwZXJtaXNzaW9uTWFuYWdlciIsImZsb3dfdmVyc2lvbiIsImN1cnJlbnQiLCJmb3JtX3ZlcnNpb24iLCJzdWJtaXR0ZXIiLCJzdWJtaXR0ZXJfbmFtZSIsImFwcGxpY2FudCIsImFwcGxpY2FudF9uYW1lIiwiYXBwbGljYW50X29yZ2FuaXphdGlvbiIsImFwcGxpY2FudF9vcmdhbml6YXRpb25fbmFtZSIsImFwcGxpY2FudF9vcmdhbml6YXRpb25fZnVsbG5hbWUiLCJhcHBsaWNhbnRfY29tcGFueSIsImNvbXBhbnlfaWQiLCJpc19hcmNoaXZlZCIsImlzX2RlbGV0ZWQiLCJyZWNvcmRfaWRzIiwiTW9uZ28iLCJPYmplY3RJRCIsIl9zdHIiLCJpc19maW5pc2hlZCIsInN0ZXBzIiwic3RlcCIsInN0ZXBfdHlwZSIsInN0YXJ0X2RhdGUiLCJ0cmFjZSIsInVzZXJfbmFtZSIsImhhbmRsZXIiLCJoYW5kbGVyX25hbWUiLCJoYW5kbGVyX29yZ2FuaXphdGlvbiIsImhhbmRsZXJfb3JnYW5pemF0aW9uX25hbWUiLCJoYW5kbGVyX29yZ2FuaXphdGlvbl9mdWxsbmFtZSIsInJlYWRfZGF0ZSIsImlzX3JlYWQiLCJpc19lcnJvciIsImRlc2NyaXB0aW9uIiwiaW5pdGlhdGVWYWx1ZXMiLCJhcHByb3ZlcyIsInRyYWNlcyIsImluYm94X3VzZXJzIiwiY3VycmVudF9zdGVwX25hbWUiLCJhdXRvX3JlbWluZCIsImZsb3dfbmFtZSIsImNhdGVnb3J5X25hbWUiLCJpbml0aWF0ZVJlY29yZEluc3RhbmNlSW5mbyIsImluaXRpYXRlQXR0YWNoIiwicmVjb3JkSWRzIiwiZmxvd0lkIiwiZmllbGRDb2RlcyIsImZpbHRlclZhbHVlcyIsIm9iamVjdE5hbWUiLCJyZWNvcmRJZCIsInRhYmxlRmllbGRDb2RlcyIsInRhYmxlRmllbGRNYXAiLCJ0YWJsZVRvUmVsYXRlZE1hcCIsImZpZWxkX21hcCIsImZtIiwiZ3JpZENvZGUiLCJsb29rdXBGaWVsZE5hbWUiLCJsb29rdXBGaWVsZE9iaiIsImxvb2t1cE9iamVjdFJlY29yZCIsIm9UYWJsZUNvZGUiLCJvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQiLCJvVGFibGVDb2RlUmVmZXJlbmNlRmllbGRDb2RlIiwib1RhYmxlRmllbGRDb2RlIiwib2JqZWN0RmllbGROYW1lIiwib2JqZWN0RmllbGRPYmplY3ROYW1lIiwib2JqZWN0TG9va3VwRmllbGQiLCJyZWZlcmVuY2VUb0RvYyIsInJlZmVyZW5jZVRvRmllbGRWYWx1ZSIsInJlbGF0ZWRPYmplY3RGaWVsZENvZGUiLCJ0YWJsZVRvUmVsYXRlZE1hcEtleSIsIndUYWJsZUNvZGUiLCJ3b3JrZmxvd19maWVsZCIsIndvcmtmbG93X3RhYmxlX2ZpZWxkX2NvZGUiLCJvYmplY3RfdGFibGVfZmllbGRfY29kZSIsInRmYyIsImMiLCJwYXJzZSIsInRyIiwibmV3VHIiLCJ0Zm0iLCJ3VGRDb2RlIiwiZm9ybVRhYmxlRmllbGQiLCJyZWxhdGVkRmllbGQiLCJyZWxhdGVkRmllbGROYW1lIiwicmVsYXRlZFJlY29yZHMiLCJyZWxhdGVkVGFibGVJdGVtcyIsInRhYmxlQ29kZSIsInRhYmxlVmFsdWVzIiwiX0ZST01fVEFCTEVfQ09ERSIsIndhcm4iLCJyciIsInRhYmxlVmFsdWVJdGVtIiwidmFsdWVLZXkiLCJmaWVsZEtleSIsImZvcm1GaWVsZEtleSIsInJlbGF0ZWRPYmplY3RGaWVsZCIsInRhYmxlRmllbGRWYWx1ZSIsIl90YWJsZSIsIl9jb2RlIiwiZmllbGRfbWFwX3NjcmlwdCIsImV4dGVuZCIsImV2YWxGaWVsZE1hcFNjcmlwdCIsIm9iamVjdElkIiwiZnVuYyIsInNjcmlwdCIsImluc0lkIiwiYXBwcm92ZUlkIiwiY2YiLCJ2ZXJzaW9ucyIsInZlcnNpb25JZCIsImlkeCIsIm93bmVyX25hbWUiLCJhcHByb3ZlIiwibG9ja2VkIiwiaW5zdGFuY2Vfc3RhdGUiLCJpbml0aWF0ZVJlbGF0ZWRSZWNvcmRJbnN0YW5jZUluZm8iLCJ0YWJsZUl0ZW1zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUlBLGdCQUFKO0FBQXFCQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxvQ0FBWixFQUFpRDtBQUFDRixrQkFBZ0IsQ0FBQ0csQ0FBRCxFQUFHO0FBQUNILG9CQUFnQixHQUFDRyxDQUFqQjtBQUFtQjs7QUFBeEMsQ0FBakQsRUFBMkYsQ0FBM0Y7QUFHckJILGdCQUFnQixDQUFDO0FBQ2hCSSxRQUFNLEVBQUUsU0FEUTtBQUVoQixZQUFVO0FBRk0sQ0FBRCxFQUdiLGlCQUhhLENBQWhCOztBQUtBLElBQUlDLE1BQU0sQ0FBQ0MsUUFBUCxJQUFtQkQsTUFBTSxD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QUFQLEVBQWFFLE1BQWIsQ0FBb0IsWUFBcEIsQ0FBUDtBQUR5QyxDQUExQyxDIiwiZmlsZSI6Ii9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRjaGVja05wbVZlcnNpb25zXG59IGZyb20gJ21ldGVvci90bWVhc2RheTpjaGVjay1ucG0tdmVyc2lvbnMnO1xuY2hlY2tOcG1WZXJzaW9ucyh7XG5cdGJ1c2JveTogXCJeMC4yLjEzXCIsXG5cdFwieG1sMmpzXCI6IFwiXjAuNC4xOVwiLFxufSwgJ3N0ZWVkb3M6Y3JlYXRvcicpO1xuXG5pZiAoTWV0ZW9yLnNldHRpbmdzICYmIE1ldGVvci5zZXR0aW5ncy5jZnMgJiYgTWV0ZW9yLnNldHRpbmdzLmNmcy5hbGl5dW4pIHtcblx0Y2hlY2tOcG1WZXJzaW9ucyh7XG5cdFx0XCJhbGl5dW4tc2RrXCI6IFwiXjEuMTEuMTJcIlxuXHR9LCAnc3RlZWRvczpjcmVhdG9yJyk7XG59IiwiXG5cdCMgQ3JlYXRvci5pbml0QXBwcygpXG5cblxuIyBDcmVhdG9yLmluaXRBcHBzID0gKCktPlxuIyBcdGlmIE1ldGVvci5pc1NlcnZlclxuIyBcdFx0Xy5lYWNoIENyZWF0b3IuQXBwcywgKGFwcCwgYXBwX2lkKS0+XG4jIFx0XHRcdGRiX2FwcCA9IGRiLmFwcHMuZmluZE9uZShhcHBfaWQpXG4jIFx0XHRcdGlmICFkYl9hcHBcbiMgXHRcdFx0XHRhcHAuX2lkID0gYXBwX2lkXG4jIFx0XHRcdFx0ZGIuYXBwcy5pbnNlcnQoYXBwKVxuIyBlbHNlXG4jIFx0YXBwLl9pZCA9IGFwcF9pZFxuIyBcdGRiLmFwcHMudXBkYXRlKHtfaWQ6IGFwcF9pZH0sIGFwcClcblxuQ3JlYXRvci5nZXRTY2hlbWEgPSAob2JqZWN0X25hbWUpLT5cblx0cmV0dXJuIENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKT8uc2NoZW1hXG5cbkNyZWF0b3IuZ2V0T2JqZWN0SG9tZUNvbXBvbmVudCA9IChvYmplY3RfbmFtZSktPlxuXHQjIGlmIE1ldGVvci5pc0NsaWVudFxuXHQjIFx0cmV0dXJuIEJ1aWxkZXJDcmVhdG9yLnBsdWdpbkNvbXBvbmVudFNlbGVjdG9yKEJ1aWxkZXJDcmVhdG9yLnN0b3JlLmdldFN0YXRlKCksIFwiT2JqZWN0SG9tZVwiLCBvYmplY3RfbmFtZSlcblx0cmV0dXJuIGZhbHNlO1xuXG5DcmVhdG9yLmdldE9iamVjdFVybCA9IChvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBhcHBfaWQpIC0+XG5cdGlmICFhcHBfaWRcblx0XHRhcHBfaWQgPSBTZXNzaW9uLmdldChcImFwcF9pZFwiKVxuXHRpZiAhb2JqZWN0X25hbWVcblx0XHRvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIilcblxuXHRsaXN0X3ZpZXcgPSBDcmVhdG9yLmdldExpc3RWaWV3KG9iamVjdF9uYW1lLCBudWxsKVxuXHRsaXN0X3ZpZXdfaWQgPSBsaXN0X3ZpZXc/Ll9pZFxuXG5cdGlmIHJlY29yZF9pZFxuXHRcdHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi92aWV3L1wiICsgcmVjb3JkX2lkKVxuXHRlbHNlXG5cdFx0aWYgQ3JlYXRvci5nZXRPYmplY3RIb21lQ29tcG9uZW50KG9iamVjdF9uYW1lKVxuXHRcdFx0cmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSlcblx0XHRlbHNlXG5cdFx0XHRpZiBsaXN0X3ZpZXdfaWRcblx0XHRcdFx0cmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2dyaWQvXCIgKyBsaXN0X3ZpZXdfaWQpXG5cdFx0XHRlbHNlXG5cdFx0XHRcdHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUpXG5cbkNyZWF0b3IuZ2V0T2JqZWN0QWJzb2x1dGVVcmwgPSAob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgYXBwX2lkKSAtPlxuXHRpZiAhYXBwX2lkXG5cdFx0YXBwX2lkID0gU2Vzc2lvbi5nZXQoXCJhcHBfaWRcIilcblx0aWYgIW9iamVjdF9uYW1lXG5cdFx0b2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpXG5cblx0bGlzdF92aWV3ID0gQ3JlYXRvci5nZXRMaXN0VmlldyhvYmplY3RfbmFtZSwgbnVsbClcblx0bGlzdF92aWV3X2lkID0gbGlzdF92aWV3Py5faWRcblxuXHRpZiByZWNvcmRfaWRcblx0XHRyZXR1cm4gU3RlZWRvcy5hYnNvbHV0ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvdmlldy9cIiArIHJlY29yZF9pZCwgdHJ1ZSlcblx0ZWxzZVxuXHRcdHJldHVybiBTdGVlZG9zLmFic29sdXRlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9ncmlkL1wiICsgbGlzdF92aWV3X2lkLCB0cnVlKVxuXG5DcmVhdG9yLmdldE9iamVjdFJvdXRlclVybCA9IChvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBhcHBfaWQpIC0+XG5cdGlmICFhcHBfaWRcblx0XHRhcHBfaWQgPSBTZXNzaW9uLmdldChcImFwcF9pZFwiKVxuXHRpZiAhb2JqZWN0X25hbWVcblx0XHRvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIilcblxuXHRsaXN0X3ZpZXcgPSBDcmVhdG9yLmdldExpc3RWaWV3KG9iamVjdF9uYW1lLCBudWxsKVxuXHRsaXN0X3ZpZXdfaWQgPSBsaXN0X3ZpZXc/Ll9pZFxuXG5cdGlmIHJlY29yZF9pZFxuXHRcdHJldHVybiBcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvdmlldy9cIiArIHJlY29yZF9pZFxuXHRlbHNlXG5cdFx0cmV0dXJuIFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9ncmlkL1wiICsgbGlzdF92aWV3X2lkXG5cbkNyZWF0b3IuZ2V0TGlzdFZpZXdVcmwgPSAob2JqZWN0X25hbWUsIGFwcF9pZCwgbGlzdF92aWV3X2lkKSAtPlxuXHR1cmwgPSBDcmVhdG9yLmdldExpc3RWaWV3UmVsYXRpdmVVcmwob2JqZWN0X25hbWUsIGFwcF9pZCwgbGlzdF92aWV3X2lkKVxuXHRyZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybCh1cmwpXG5cbkNyZWF0b3IuZ2V0TGlzdFZpZXdSZWxhdGl2ZVVybCA9IChvYmplY3RfbmFtZSwgYXBwX2lkLCBsaXN0X3ZpZXdfaWQpIC0+XG5cdHJldHVybiBcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvZ3JpZC9cIiArIGxpc3Rfdmlld19pZFxuXG5DcmVhdG9yLmdldFN3aXRjaExpc3RVcmwgPSAob2JqZWN0X25hbWUsIGFwcF9pZCwgbGlzdF92aWV3X2lkKSAtPlxuXHRpZiBsaXN0X3ZpZXdfaWRcblx0XHRyZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvXCIgKyBsaXN0X3ZpZXdfaWQgKyBcIi9saXN0XCIpXG5cdGVsc2Vcblx0XHRyZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvbGlzdC9zd2l0Y2hcIilcblxuQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0VXJsID0gKG9iamVjdF9uYW1lLCBhcHBfaWQsIHJlY29yZF9pZCwgcmVsYXRlZF9vYmplY3RfbmFtZSwgcmVsYXRlZF9maWVsZF9uYW1lKSAtPlxuXHRpZiByZWxhdGVkX2ZpZWxkX25hbWVcblx0XHRyZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvXCIgKyByZWNvcmRfaWQgKyBcIi9cIiArIHJlbGF0ZWRfb2JqZWN0X25hbWUgKyBcIi9ncmlkP3JlbGF0ZWRfZmllbGRfbmFtZT1cIiArIHJlbGF0ZWRfZmllbGRfbmFtZSlcblx0ZWxzZVxuXHRcdHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9cIiArIHJlY29yZF9pZCArIFwiL1wiICsgcmVsYXRlZF9vYmplY3RfbmFtZSArIFwiL2dyaWRcIilcblxuQ3JlYXRvci5nZXRPYmplY3RMb29rdXBGaWVsZE9wdGlvbnMgPSAob2JqZWN0X25hbWUsIGlzX2RlZXAsIGlzX3NraXBfaGlkZSwgaXNfcmVsYXRlZCktPlxuXHRfb3B0aW9ucyA9IFtdXG5cdHVubGVzcyBvYmplY3RfbmFtZVxuXHRcdHJldHVybiBfb3B0aW9uc1xuXHRfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpXG5cdGZpZWxkcyA9IF9vYmplY3Q/LmZpZWxkc1xuXHRpY29uID0gX29iamVjdD8uaWNvblxuXHRfLmZvckVhY2ggZmllbGRzLCAoZiwgayktPlxuXHRcdGlmIGlzX3NraXBfaGlkZSBhbmQgZi5oaWRkZW5cblx0XHRcdHJldHVyblxuXHRcdGlmIGYudHlwZSA9PSBcInNlbGVjdFwiXG5cdFx0XHRfb3B0aW9ucy5wdXNoIHtsYWJlbDogXCIje2YubGFiZWwgfHwga31cIiwgdmFsdWU6IFwiI3trfVwiLCBpY29uOiBpY29ufVxuXHRcdGVsc2Vcblx0XHRcdF9vcHRpb25zLnB1c2gge2xhYmVsOiBmLmxhYmVsIHx8IGssIHZhbHVlOiBrLCBpY29uOiBpY29ufVxuXHRpZiBpc19kZWVwXG5cdFx0Xy5mb3JFYWNoIGZpZWxkcywgKGYsIGspLT5cblx0XHRcdGlmIGlzX3NraXBfaGlkZSBhbmQgZi5oaWRkZW5cblx0XHRcdFx0cmV0dXJuXG5cdFx0XHRpZiAoZi50eXBlID09IFwibG9va3VwXCIgfHwgZi50eXBlID09IFwibWFzdGVyX2RldGFpbFwiKSAmJiBmLnJlZmVyZW5jZV90byAmJiBfLmlzU3RyaW5nKGYucmVmZXJlbmNlX3RvKVxuXHRcdFx0XHQjIOS4jeaUr+aMgWYucmVmZXJlbmNlX3Rv5Li6ZnVuY3Rpb27nmoTmg4XlhrXvvIzmnInpnIDmsYLlho3or7Rcblx0XHRcdFx0cl9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChmLnJlZmVyZW5jZV90bylcblx0XHRcdFx0aWYgcl9vYmplY3Rcblx0XHRcdFx0XHRfLmZvckVhY2ggcl9vYmplY3QuZmllbGRzLCAoZjIsIGsyKS0+XG5cdFx0XHRcdFx0XHRfb3B0aW9ucy5wdXNoIHtsYWJlbDogXCIje2YubGFiZWwgfHwga309PiN7ZjIubGFiZWwgfHwgazJ9XCIsIHZhbHVlOiBcIiN7a30uI3trMn1cIiwgaWNvbjogcl9vYmplY3Q/Lmljb259XG5cdGlmIGlzX3JlbGF0ZWRcblx0XHRyZWxhdGVkT2JqZWN0cyA9IENyZWF0b3IuZ2V0UmVsYXRlZE9iamVjdHMob2JqZWN0X25hbWUpXG5cdFx0Xy5lYWNoIHJlbGF0ZWRPYmplY3RzLCAoX3JlbGF0ZWRPYmplY3QpPT5cblx0XHRcdHJlbGF0ZWRPcHRpb25zID0gQ3JlYXRvci5nZXRPYmplY3RMb29rdXBGaWVsZE9wdGlvbnMoX3JlbGF0ZWRPYmplY3Qub2JqZWN0X25hbWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UpXG5cdFx0XHRyZWxhdGVkT2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3QoX3JlbGF0ZWRPYmplY3Qub2JqZWN0X25hbWUpXG5cdFx0XHRfLmVhY2ggcmVsYXRlZE9wdGlvbnMsIChyZWxhdGVkT3B0aW9uKS0+XG5cdFx0XHRcdGlmIF9yZWxhdGVkT2JqZWN0LmZvcmVpZ25fa2V5ICE9IHJlbGF0ZWRPcHRpb24udmFsdWVcblx0XHRcdFx0XHRfb3B0aW9ucy5wdXNoIHtsYWJlbDogXCIje3JlbGF0ZWRPYmplY3QubGFiZWwgfHwgcmVsYXRlZE9iamVjdC5uYW1lfT0+I3tyZWxhdGVkT3B0aW9uLmxhYmVsfVwiLCB2YWx1ZTogXCIje3JlbGF0ZWRPYmplY3QubmFtZX0uI3tyZWxhdGVkT3B0aW9uLnZhbHVlfVwiLCBpY29uOiByZWxhdGVkT2JqZWN0Py5pY29ufVxuXHRyZXR1cm4gX29wdGlvbnNcblxuIyDnu5/kuIDkuLrlr7nosaFvYmplY3RfbmFtZeaPkOS+m+WPr+eUqOS6jui/h+iZkeWZqOi/h+iZkeWtl+autVxuQ3JlYXRvci5nZXRPYmplY3RGaWx0ZXJGaWVsZE9wdGlvbnMgPSAob2JqZWN0X25hbWUpLT5cblx0X29wdGlvbnMgPSBbXVxuXHR1bmxlc3Mgb2JqZWN0X25hbWVcblx0XHRyZXR1cm4gX29wdGlvbnNcblx0X29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKVxuXHRmaWVsZHMgPSBfb2JqZWN0Py5maWVsZHNcblx0cGVybWlzc2lvbl9maWVsZHMgPSBDcmVhdG9yLmdldEZpZWxkcyhvYmplY3RfbmFtZSlcblx0aWNvbiA9IF9vYmplY3Q/Lmljb25cblx0Xy5mb3JFYWNoIGZpZWxkcywgKGYsIGspLT5cblx0XHQjIGhpZGRlbixncmlk562J57G75Z6L55qE5a2X5q6177yM5LiN6ZyA6KaB6L+H5rukXG5cdFx0aWYgIV8uaW5jbHVkZShbXCJncmlkXCIsXCJvYmplY3RcIiwgXCJbT2JqZWN0XVwiLCBcIltvYmplY3RdXCIsIFwiT2JqZWN0XCIsIFwiYXZhdGFyXCIsIFwiaW1hZ2VcIiwgXCJtYXJrZG93blwiLCBcImh0bWxcIl0sIGYudHlwZSkgYW5kICFmLmhpZGRlblxuXHRcdFx0IyBmaWx0ZXJzLiQuZmllbGTlj4pmbG93LmN1cnJlbnTnrYnlrZDlrZfmrrXkuZ/kuI3pnIDopoHov4fmu6Rcblx0XHRcdGlmICEvXFx3K1xcLi8udGVzdChrKSBhbmQgXy5pbmRleE9mKHBlcm1pc3Npb25fZmllbGRzLCBrKSA+IC0xXG5cdFx0XHRcdF9vcHRpb25zLnB1c2gge2xhYmVsOiBmLmxhYmVsIHx8IGssIHZhbHVlOiBrLCBpY29uOiBpY29ufVxuXG5cdHJldHVybiBfb3B0aW9uc1xuXG5DcmVhdG9yLmdldE9iamVjdEZpZWxkT3B0aW9ucyA9IChvYmplY3RfbmFtZSktPlxuXHRfb3B0aW9ucyA9IFtdXG5cdHVubGVzcyBvYmplY3RfbmFtZVxuXHRcdHJldHVybiBfb3B0aW9uc1xuXHRfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpXG5cdGZpZWxkcyA9IF9vYmplY3Q/LmZpZWxkc1xuXHRwZXJtaXNzaW9uX2ZpZWxkcyA9IENyZWF0b3IuZ2V0RmllbGRzKG9iamVjdF9uYW1lKVxuXHRpY29uID0gX29iamVjdD8uaWNvblxuXHRfLmZvckVhY2ggZmllbGRzLCAoZiwgayktPlxuXHRcdGlmICFfLmluY2x1ZGUoW1wiZ3JpZFwiLFwib2JqZWN0XCIsIFwiW09iamVjdF1cIiwgXCJbb2JqZWN0XVwiLCBcIk9iamVjdFwiLCBcIm1hcmtkb3duXCIsIFwiaHRtbFwiXSwgZi50eXBlKVxuXHRcdFx0aWYgIS9cXHcrXFwuLy50ZXN0KGspIGFuZCBfLmluZGV4T2YocGVybWlzc2lvbl9maWVsZHMsIGspID4gLTFcblx0XHRcdFx0X29wdGlvbnMucHVzaCB7bGFiZWw6IGYubGFiZWwgfHwgaywgdmFsdWU6IGssIGljb246IGljb259XG5cdHJldHVybiBfb3B0aW9uc1xuXG4jIyNcbmZpbHRlcnM6IOimgei9rOaNoueahGZpbHRlcnNcbmZpZWxkczog5a+56LGh5a2X5q61XG5maWx0ZXJfZmllbGRzOiDpu5jorqTov4fmu6TlrZfmrrXvvIzmlK/mjIHlrZfnrKbkuLLmlbDnu4Tlkozlr7nosaHmlbDnu4TkuKTnp43moLzlvI/vvIzlpoI6WydmaWxlZF9uYW1lMScsJ2ZpbGVkX25hbWUyJ10sW3tmaWVsZDonZmlsZWRfbmFtZTEnLHJlcXVpcmVkOnRydWV9XVxu5aSE55CG6YC76L6ROiDmiopmaWx0ZXJz5Lit5a2Y5Zyo5LqOZmlsdGVyX2ZpZWxkc+eahOi/h+a7pOadoeS7tuWinuWKoOavj+mhueeahGlzX2RlZmF1bHTjgIFpc19yZXF1aXJlZOWxnuaAp++8jOS4jeWtmOWcqOS6jmZpbHRlcl9maWVsZHPnmoTov4fmu6TmnaHku7blr7nlupTnmoTnp7vpmaTmr4/pobnnmoTnm7jlhbPlsZ7mgKdcbui/lOWbnue7k+aenDog5aSE55CG5ZCO55qEZmlsdGVyc1xuIyMjXG5DcmVhdG9yLmdldEZpbHRlcnNXaXRoRmlsdGVyRmllbGRzID0gKGZpbHRlcnMsIGZpZWxkcywgZmlsdGVyX2ZpZWxkcyktPlxuXHR1bmxlc3MgZmlsdGVyc1xuXHRcdGZpbHRlcnMgPSBbXVxuXHR1bmxlc3MgZmlsdGVyX2ZpZWxkc1xuXHRcdGZpbHRlcl9maWVsZHMgPSBbXVxuXHRpZiBmaWx0ZXJfZmllbGRzPy5sZW5ndGhcblx0XHRmaWx0ZXJfZmllbGRzLmZvckVhY2ggKG4pLT5cblx0XHRcdGlmIF8uaXNTdHJpbmcobilcblx0XHRcdFx0biA9IFxuXHRcdFx0XHRcdGZpZWxkOiBuLFxuXHRcdFx0XHRcdHJlcXVpcmVkOiBmYWxzZVxuXHRcdFx0aWYgZmllbGRzW24uZmllbGRdIGFuZCAhXy5maW5kV2hlcmUoZmlsdGVycyx7ZmllbGQ6bi5maWVsZH0pXG5cdFx0XHRcdGZpbHRlcnMucHVzaFxuXHRcdFx0XHRcdGZpZWxkOiBuLmZpZWxkLFxuXHRcdFx0XHRcdGlzX2RlZmF1bHQ6IHRydWUsXG5cdFx0XHRcdFx0aXNfcmVxdWlyZWQ6IG4ucmVxdWlyZWRcblx0ZmlsdGVycy5mb3JFYWNoIChmaWx0ZXJJdGVtKS0+XG5cdFx0bWF0Y2hGaWVsZCA9IGZpbHRlcl9maWVsZHMuZmluZCAobiktPiByZXR1cm4gbiA9PSBmaWx0ZXJJdGVtLmZpZWxkIG9yIG4uZmllbGQgPT0gZmlsdGVySXRlbS5maWVsZFxuXHRcdGlmIF8uaXNTdHJpbmcobWF0Y2hGaWVsZClcblx0XHRcdG1hdGNoRmllbGQgPSBcblx0XHRcdFx0ZmllbGQ6IG1hdGNoRmllbGQsXG5cdFx0XHRcdHJlcXVpcmVkOiBmYWxzZVxuXHRcdGlmIG1hdGNoRmllbGRcblx0XHRcdGZpbHRlckl0ZW0uaXNfZGVmYXVsdCA9IHRydWVcblx0XHRcdGZpbHRlckl0ZW0uaXNfcmVxdWlyZWQgPSBtYXRjaEZpZWxkLnJlcXVpcmVkXG5cdFx0ZWxzZVxuXHRcdFx0ZGVsZXRlIGZpbHRlckl0ZW0uaXNfZGVmYXVsdFxuXHRcdFx0ZGVsZXRlIGZpbHRlckl0ZW0uaXNfcmVxdWlyZWRcblx0cmV0dXJuIGZpbHRlcnNcblxuQ3JlYXRvci5nZXRPYmplY3RSZWNvcmQgPSAob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgc2VsZWN0X2ZpZWxkcywgZXhwYW5kKS0+XG5cblx0aWYgIW9iamVjdF9uYW1lXG5cdFx0b2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpXG5cblx0aWYgIXJlY29yZF9pZFxuXHRcdHJlY29yZF9pZCA9IFNlc3Npb24uZ2V0KFwicmVjb3JkX2lkXCIpXG5cdGlmIE1ldGVvci5pc0NsaWVudFxuXHRcdGlmIG9iamVjdF9uYW1lID09IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIikgJiYgIHJlY29yZF9pZCA9PSBTZXNzaW9uLmdldChcInJlY29yZF9pZFwiKVxuXHRcdFx0aWYgVGVtcGxhdGUuaW5zdGFuY2UoKT8ucmVjb3JkXG5cdFx0XHRcdHJldHVybiBUZW1wbGF0ZS5pbnN0YW5jZSgpPy5yZWNvcmQ/LmdldCgpXG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIENyZWF0b3Iub2RhdGEuZ2V0KG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIHNlbGVjdF9maWVsZHMsIGV4cGFuZClcblxuXHRvYmogPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSlcblxuXHRpZiBvYmouZGF0YWJhc2VfbmFtZSA9PSBcIm1ldGVvclwiIHx8ICFvYmouZGF0YWJhc2VfbmFtZVxuXHRcdGNvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUpXG5cdFx0aWYgY29sbGVjdGlvblxuXHRcdFx0cmVjb3JkID0gY29sbGVjdGlvbi5maW5kT25lKHJlY29yZF9pZClcblx0XHRcdHJldHVybiByZWNvcmRcblx0ZWxzZSBpZiBvYmplY3RfbmFtZSAmJiByZWNvcmRfaWRcblx0XHRyZXR1cm4gQ3JlYXRvci5vZGF0YS5nZXQob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgc2VsZWN0X2ZpZWxkcywgZXhwYW5kKVxuXG5DcmVhdG9yLmdldE9iamVjdFJlY29yZE5hbWUgPSAocmVjb3JkLCBvYmplY3RfbmFtZSktPlxuXHR1bmxlc3MgcmVjb3JkXG5cdFx0cmVjb3JkID0gQ3JlYXRvci5nZXRPYmplY3RSZWNvcmQoKVxuXHRpZiByZWNvcmRcblx0XHQjIOaYvuekuue7hOe7h+WIl+ihqOaXtu+8jOeJueauiuWkhOeQhm5hbWVfZmllbGRfa2V55Li6bmFtZeWtl+autVxuXHRcdG5hbWVfZmllbGRfa2V5ID0gaWYgb2JqZWN0X25hbWUgPT0gXCJvcmdhbml6YXRpb25zXCIgdGhlbiBcIm5hbWVcIiBlbHNlIENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKT8uTkFNRV9GSUVMRF9LRVlcblx0XHRpZiByZWNvcmQgYW5kIG5hbWVfZmllbGRfa2V5XG5cdFx0XHRyZXR1cm4gcmVjb3JkLmxhYmVsIHx8IHJlY29yZFtuYW1lX2ZpZWxkX2tleV1cblxuQ3JlYXRvci5nZXRBcHAgPSAoYXBwX2lkKS0+XG5cdGFwcE1lbnVzID0gU2Vzc2lvbi5nZXQoXCJfYXBwX21lbnVzXCIpIHx8IFNlc3Npb24uZ2V0KFwiYXBwX21lbnVzXCIpO1xuXHR1bmxlc3MgYXBwTWVudXNcblx0XHRyZXR1cm4ge31cblx0Y3VycmVudEFwcCA9IGFwcE1lbnVzLmZpbmQgKG1lbnVJdGVtKSAtPlxuXHRcdHJldHVybiBtZW51SXRlbS5pZCA9PSBhcHBfaWRcblx0cmV0dXJuIGN1cnJlbnRBcHBcblxuQ3JlYXRvci5nZXRBcHBEYXNoYm9hcmQgPSAoYXBwX2lkKS0+XG5cdGFwcCA9IENyZWF0b3IuZ2V0QXBwKGFwcF9pZClcblx0aWYgIWFwcFxuXHRcdHJldHVyblxuXHRkYXNoYm9hcmQgPSBudWxsXG5cdF8uZWFjaCBDcmVhdG9yLkRhc2hib2FyZHMsICh2LCBrKS0+XG5cdFx0aWYgdi5hcHBzPy5pbmRleE9mKGFwcC5faWQpID4gLTFcblx0XHRcdGRhc2hib2FyZCA9IHY7XG5cdHJldHVybiBkYXNoYm9hcmQ7XG5cbkNyZWF0b3IuZ2V0QXBwRGFzaGJvYXJkQ29tcG9uZW50ID0gKGFwcF9pZCktPlxuXHRhcHAgPSBDcmVhdG9yLmdldEFwcChhcHBfaWQpXG5cdGlmICFhcHAgfHwgdHJ1ZVxuXHRcdHJldHVyblxuXHQjIHJldHVybiBCdWlsZGVyQ3JlYXRvci5wbHVnaW5Db21wb25lbnRTZWxlY3RvcihCdWlsZGVyQ3JlYXRvci5zdG9yZS5nZXRTdGF0ZSgpLCBcIkRhc2hib2FyZFwiLCBhcHAuX2lkKTtcblxuQ3JlYXRvci5nZXRBcHBPYmplY3ROYW1lcyA9IChhcHBfaWQpLT5cblx0YXBwID0gQ3JlYXRvci5nZXRBcHAoYXBwX2lkKVxuXHRpZiAhYXBwXG5cdFx0cmV0dXJuXG5cdGlzTW9iaWxlID0gU3RlZWRvcy5pc01vYmlsZSgpXG5cdGFwcE9iamVjdHMgPSBpZiBpc01vYmlsZSB0aGVuIGFwcC5tb2JpbGVfb2JqZWN0cyBlbHNlIGFwcC5vYmplY3RzXG5cdG9iamVjdHMgPSBbXVxuXHRpZiBhcHBcblx0XHRfLmVhY2ggYXBwT2JqZWN0cywgKHYpLT5cblx0XHRcdG9iaiA9IENyZWF0b3IuZ2V0T2JqZWN0KHYpXG5cdFx0XHRpZiBvYmo/LnBlcm1pc3Npb25zLmdldCgpLmFsbG93UmVhZFxuXHRcdFx0XHRvYmplY3RzLnB1c2ggdlxuXHRyZXR1cm4gb2JqZWN0c1xuXG5DcmVhdG9yLmdldFVybFdpdGhUb2tlbiA9ICh1cmwsIGV4cHJlc3Npb25Gb3JtRGF0YSkgLT5cblx0IyDnu5l1cmzml7bmi7zmjqXlvZPliY3nlKjmiLd0b2tlbuebuOWFs+S/oeaBr+eUqOS6jueZu+W9lemqjOivge+8jOaUr+aMgemFjee9ruihqOi+vuW8j1xuXHRwYXJhbXMgPSB7fTtcblx0cGFyYW1zW1wiWC1TcGFjZS1JZFwiXSA9IFN0ZWVkb3Muc3BhY2VJZCgpXG5cdHBhcmFtc1tcIlgtVXNlci1JZFwiXSA9IFN0ZWVkb3MudXNlcklkKCk7XG5cdHBhcmFtc1tcIlgtQ29tcGFueS1JZHNcIl0gPSBTdGVlZG9zLmdldFVzZXJDb21wYW55SWRzKCk7XG5cdHBhcmFtc1tcIlgtQXV0aC1Ub2tlblwiXSA9IEFjY291bnRzLl9zdG9yZWRMb2dpblRva2VuKCk7XG5cdGlmIFN0ZWVkb3MuaXNFeHByZXNzaW9uKHVybClcblx0XHR1cmwgPSBTdGVlZG9zLnBhcnNlU2luZ2xlRXhwcmVzc2lvbih1cmwsIGV4cHJlc3Npb25Gb3JtRGF0YSwgXCIjXCIsIENyZWF0b3IuVVNFUl9DT05URVhUKVxuXHQjIOWklumDqOmTvuaOpeWcsOWdgOS4reWPr+iDveS8muW4puaciSPlj7fvvIzmr5TlpoIvYnVpbGRlci8/cF9pZHM9NjE5MzgzNTQ1YjJlOWE3MmVjMDU1OGIzIy9wYWdlL3B1YmxpYy90ZXN0XG5cdCMg5q2k5pe2dXJs5Lit5bey57uP5ZyoI+WPt+WJjemdouWHuueOsOS6huS4gOS4qj/lj7fvvIzov5nkuKrpl67lj7fkuI3lj6/ku6Xooqvor4bliKvkuLp1cmzlj4LmlbDvvIzlj6rmnIkj5Y+35ZCO6Z2i55qEP+WPt+aJjeW6lOivpeiiq+ivhuWIq+S4unVybOWPguaVsFxuXHRoYXNRdWVyeVN5bWJvbCA9IC8oXFwjLitcXD8pfChcXD9bXiNdKiQpL2cudGVzdCh1cmwpXG5cdGxpbmtTdHIgPSBpZiBoYXNRdWVyeVN5bWJvbCB0aGVuIFwiJlwiIGVsc2UgXCI/XCJcblx0cmV0dXJuIFwiI3t1cmx9I3tsaW5rU3RyfSN7JC5wYXJhbShwYXJhbXMpfVwiXG5cbkNyZWF0b3IuZ2V0QXBwTWVudSA9IChhcHBfaWQsIG1lbnVfaWQpLT5cblx0bWVudXMgPSBDcmVhdG9yLmdldEFwcE1lbnVzKGFwcF9pZClcblx0cmV0dXJuIG1lbnVzICYmIG1lbnVzLmZpbmQgKG1lbnUpLT4gcmV0dXJuIG1lbnUuaWQgPT0gbWVudV9pZFxuXG5DcmVhdG9yLmdldEFwcE1lbnVVcmxGb3JJbnRlcm5ldCA9IChtZW51KS0+XG5cdCMg5b2TdGFic+exu+Wei+S4unVybOaXtu+8jOaMieWklumDqOmTvuaOpeWkhOeQhu+8jOaUr+aMgemFjee9ruihqOi+vuW8j+W5tuWKoOS4iue7n+S4gOeahHVybOWPguaVsFxuXHRyZXR1cm4gQ3JlYXRvci5nZXRVcmxXaXRoVG9rZW4gbWVudS5wYXRoLCBtZW51XG5cbkNyZWF0b3IuZ2V0QXBwTWVudVVybCA9IChtZW51KS0+XG5cdHVybCA9IG1lbnUucGF0aFxuXHRpZiBtZW51LnR5cGUgPT0gXCJ1cmxcIlxuXHRcdGlmIG1lbnUudGFyZ2V0XG5cdFx0XHRyZXR1cm4gQ3JlYXRvci5nZXRBcHBNZW51VXJsRm9ySW50ZXJuZXQobWVudSlcblx0XHRlbHNlXG5cdFx0XHQjIOWcqGlmcmFtZeS4reaYvuekunVybOeVjOmdolxuXHRcdFx0cmV0dXJuIFwiL2FwcC8tL3RhYl9pZnJhbWUvI3ttZW51LmlkfVwiXG5cdGVsc2Vcblx0XHRyZXR1cm4gbWVudS5wYXRoXG5cbkNyZWF0b3IuZ2V0QXBwTWVudXMgPSAoYXBwX2lkKS0+XG5cdGFwcE1lbnVzID0gU2Vzc2lvbi5nZXQoXCJfYXBwX21lbnVzXCIpIHx8IFNlc3Npb24uZ2V0KFwiYXBwX21lbnVzXCIpO1xuXHR1bmxlc3MgYXBwTWVudXNcblx0XHRyZXR1cm4gW11cblx0Y3VyZW50QXBwTWVudXMgPSBhcHBNZW51cy5maW5kIChtZW51SXRlbSkgLT5cblx0XHRyZXR1cm4gbWVudUl0ZW0uaWQgPT0gYXBwX2lkXG5cdGlmIGN1cmVudEFwcE1lbnVzXG5cdFx0cmV0dXJuIGN1cmVudEFwcE1lbnVzLmNoaWxkcmVuXG5cbkNyZWF0b3IubG9hZEFwcHNNZW51cyA9ICgpLT5cblx0aXNNb2JpbGUgPSBTdGVlZG9zLmlzTW9iaWxlKClcblx0ZGF0YSA9IHsgfVxuXHRpZiBpc01vYmlsZVxuXHRcdGRhdGEubW9iaWxlID0gaXNNb2JpbGVcblx0b3B0aW9ucyA9IHsgXG5cdFx0dHlwZTogJ2dldCcsIFxuXHRcdGRhdGE6IGRhdGEsIFxuXHRcdHN1Y2Nlc3M6IChkYXRhKS0+XG5cdFx0XHRTZXNzaW9uLnNldChcImFwcF9tZW51c1wiLCBkYXRhKTtcblx0IH1cblx0U3RlZWRvcz8uYXV0aFJlcXVlc3QgXCIvc2VydmljZS9hcGkvYXBwcy9tZW51c1wiLCBvcHRpb25zXG5cbkNyZWF0b3IuY3JlYXRvckFwcHNTZWxlY3RvciA9IChhcHBzLCBhc3NpZ25lZF9hcHBzKSAtPlxuXHRhZG1pbkFwcCA9IHVuZGVmaW5lZFxuXHRzb3J0ZWRBcHBzID0gdW5kZWZpbmVkXG5cdF8uZWFjaCBhcHBzLCAoYXBwLCBrZXkpIC0+XG5cdFx0aWYgIWFwcC5faWRcblx0XHRcdGFwcC5faWQgPSBrZXlcblx0XHRpZiBhcHAuaXNfY3JlYXRvclxuXHRcdFx0IyDkuI3pnIDopoFpc1NwYWNlQWRtaW7pgLvovpFcblx0XHRcdCMgaWYgKGlzU3BhY2VBZG1pbikge1xuXHRcdFx0I1x0XHQgYXBwLnZpc2libGUgPSB0cnVlO1xuXHRcdFx0IyB9XG5cdFx0ZWxzZVxuXHRcdFx0IyDpnZ5jcmVhdG9y5bqU6K+l5LiA5b6L5LiN5pi+56S6XG5cdFx0XHRhcHAudmlzaWJsZSA9IGZhbHNlXG5cdFx0cmV0dXJuXG5cdHNvcnRlZEFwcHMgPSBfLnNvcnRCeShfLnZhbHVlcyhhcHBzKSwgJ3NvcnQnKVxuXHRjcmVhdG9yQXBwcyA9IHt9XG5cdGFkbWluQXBwID0ge31cblx0IyDmjInpkq5zb3J05o6S5bqP5qyh5bqP6K6+572uQ3JlYXRvci5BcHBz5YC8XG5cdF8uZWFjaCBzb3J0ZWRBcHBzLCAobikgLT5cblx0XHRpZiBuLl9pZCA9PSAnYWRtaW4nXG5cdFx0XHRhZG1pbkFwcCA9IG5cblx0XHRlbHNlXG5cdFx0XHRjcmVhdG9yQXBwc1tuLl9pZF0gPSBuXG5cdCMgYWRtaW7oj5zljZXmmL7npLrlnKjmnIDlkI5cblx0Y3JlYXRvckFwcHMuYWRtaW4gPSBhZG1pbkFwcFxuXHRpZiBhc3NpZ25lZF9hcHBzLmxlbmd0aFxuXHRcdF8uZWFjaCBjcmVhdG9yQXBwcywgKGFwcCwga2V5KSAtPlxuXHRcdFx0aWYgYXNzaWduZWRfYXBwcy5pbmRleE9mKGtleSkgPiAtMVxuXHRcdFx0XHRhcHAudmlzaWJsZSA9IGFwcC5pc19jcmVhdG9yXG5cdFx0XHRlbHNlXG5cdFx0XHRcdGFwcC52aXNpYmxlID0gZmFsc2Vcblx0XHRcdHJldHVyblxuXHRjcmVhdG9yQXBwc1xuXG5DcmVhdG9yLnZpc2libGVBcHBzU2VsZWN0b3IgPSAoY3JlYXRvckFwcHMsIGluY2x1ZGVBZG1pbiA9IHRydWUpIC0+XG5cdGFwcHMgPSBbXVxuXHRfLmVhY2ggY3JlYXRvckFwcHMsICh2LCBrKSAtPlxuXHRcdGlmIHYudmlzaWJsZSAhPSBmYWxzZSBhbmQgdi5faWQgIT0gJ2FkbWluJyBvciBpbmNsdWRlQWRtaW4gYW5kIHYuX2lkID09ICdhZG1pbidcblx0XHRcdGFwcHMucHVzaCB2XG5cdFx0cmV0dXJuXG5cdGFwcHNcblxuQ3JlYXRvci5nZXRWaXNpYmxlQXBwcyA9IChpbmNsdWRlQWRtaW4pLT5cblx0Y2hhbmdlQXBwID0gQ3JlYXRvci5fc3ViQXBwLmdldCgpO1xuXHRjcmVhdG9yQXBwcyA9IE9iamVjdC5hc3NpZ24oe30sIENyZWF0b3IuQXBwcywge2FwcHM6IGNoYW5nZUFwcH0pO1xuXHRyZXR1cm4gQ3JlYXRvci52aXNpYmxlQXBwc1NlbGVjdG9yKGNyZWF0b3JBcHBzLCBpbmNsdWRlQWRtaW4pXG5cbkNyZWF0b3IuZ2V0VmlzaWJsZUFwcHNPYmplY3RzID0gKCktPlxuXHRhcHBzID0gQ3JlYXRvci5nZXRWaXNpYmxlQXBwcygpXG5cdHZpc2libGVPYmplY3ROYW1lcyA9IF8uZmxhdHRlbihfLnBsdWNrKGFwcHMsJ29iamVjdHMnKSlcblx0b2JqZWN0cyA9IF8uZmlsdGVyIENyZWF0b3IuT2JqZWN0cywgKG9iaiktPlxuXHRcdGlmIHZpc2libGVPYmplY3ROYW1lcy5pbmRleE9mKG9iai5uYW1lKSA8IDBcblx0XHRcdHJldHVybiBmYWxzZVxuXHRcdGVsc2Vcblx0XHRcdHJldHVybiB0cnVlXG5cdG9iamVjdHMgPSBvYmplY3RzLnNvcnQoQ3JlYXRvci5zb3J0aW5nTWV0aG9kLmJpbmQoe2tleTpcImxhYmVsXCJ9KSlcblx0b2JqZWN0cyA9IF8ucGx1Y2sob2JqZWN0cywnbmFtZScpXG5cdHJldHVybiBfLnVuaXEgb2JqZWN0c1xuXG5DcmVhdG9yLmdldEFwcHNPYmplY3RzID0gKCktPlxuXHRvYmplY3RzID0gW11cblx0dGVtcE9iamVjdHMgPSBbXVxuXHRfLmZvckVhY2ggQ3JlYXRvci5BcHBzLCAoYXBwKS0+XG5cdFx0dGVtcE9iamVjdHMgPSBfLmZpbHRlciBhcHAub2JqZWN0cywgKG9iaiktPlxuXHRcdFx0cmV0dXJuICFvYmouaGlkZGVuXG5cdFx0b2JqZWN0cyA9IG9iamVjdHMuY29uY2F0KHRlbXBPYmplY3RzKVxuXHRyZXR1cm4gXy51bmlxIG9iamVjdHNcblxuQ3JlYXRvci52YWxpZGF0ZUZpbHRlcnMgPSAoZmlsdGVycywgbG9naWMpLT5cblx0ZmlsdGVyX2l0ZW1zID0gXy5tYXAgZmlsdGVycywgKG9iaikgLT5cblx0XHRpZiBfLmlzRW1wdHkob2JqKVxuXHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIG9ialxuXHRmaWx0ZXJfaXRlbXMgPSBfLmNvbXBhY3QoZmlsdGVyX2l0ZW1zKVxuXHRlcnJvck1zZyA9IFwiXCJcblx0ZmlsdGVyX2xlbmd0aCA9IGZpbHRlcl9pdGVtcy5sZW5ndGhcblx0aWYgbG9naWNcblx0XHQjIOagvOW8j+WMlmZpbHRlclxuXHRcdGxvZ2ljID0gbG9naWMucmVwbGFjZSgvXFxuL2csIFwiXCIpLnJlcGxhY2UoL1xccysvZywgXCIgXCIpXG5cblx0XHQjIOWIpOaWreeJueauiuWtl+esplxuXHRcdGlmIC9bLl9cXC0hK10rL2lnLnRlc3QobG9naWMpXG5cdFx0XHRlcnJvck1zZyA9IFwi5ZCr5pyJ54m55q6K5a2X56ym44CCXCJcblxuXHRcdGlmICFlcnJvck1zZ1xuXHRcdFx0aW5kZXggPSBsb2dpYy5tYXRjaCgvXFxkKy9pZylcblx0XHRcdGlmICFpbmRleFxuXHRcdFx0XHRlcnJvck1zZyA9IFwi5pyJ5Lqb562b6YCJ5p2h5Lu26L+b6KGM5LqG5a6a5LmJ77yM5L2G5pyq5Zyo6auY57qn562b6YCJ5p2h5Lu25Lit6KKr5byV55So44CCXCJcblx0XHRcdGVsc2Vcblx0XHRcdFx0aW5kZXguZm9yRWFjaCAoaSktPlxuXHRcdFx0XHRcdGlmIGkgPCAxIG9yIGkgPiBmaWx0ZXJfbGVuZ3RoXG5cdFx0XHRcdFx0XHRlcnJvck1zZyA9IFwi5oKo55qE562b6YCJ5p2h5Lu25byV55So5LqG5pyq5a6a5LmJ55qE562b6YCJ5Zmo77yaI3tpfeOAglwiXG5cblx0XHRcdFx0ZmxhZyA9IDFcblx0XHRcdFx0d2hpbGUgZmxhZyA8PSBmaWx0ZXJfbGVuZ3RoXG5cdFx0XHRcdFx0aWYgIWluZGV4LmluY2x1ZGVzKFwiI3tmbGFnfVwiKVxuXHRcdFx0XHRcdFx0ZXJyb3JNc2cgPSBcIuacieS6m+etm+mAieadoeS7tui/m+ihjOS6huWumuS5ie+8jOS9huacquWcqOmrmOe6p+etm+mAieadoeS7tuS4reiiq+W8leeUqOOAglwiXG5cdFx0XHRcdFx0ZmxhZysrO1xuXG5cdFx0aWYgIWVycm9yTXNnXG5cdFx0XHQjIOWIpOaWreaYr+WQpuaciemdnuazleiLseaWh+Wtl+esplxuXHRcdFx0d29yZCA9IGxvZ2ljLm1hdGNoKC9bYS16QS1aXSsvaWcpXG5cdFx0XHRpZiB3b3JkXG5cdFx0XHRcdHdvcmQuZm9yRWFjaCAodyktPlxuXHRcdFx0XHRcdGlmICEvXihhbmR8b3IpJC9pZy50ZXN0KHcpXG5cdFx0XHRcdFx0XHRlcnJvck1zZyA9IFwi5qOA5p+l5oKo55qE6auY57qn562b6YCJ5p2h5Lu25Lit55qE5ou85YaZ44CCXCJcblxuXHRcdGlmICFlcnJvck1zZ1xuXHRcdFx0IyDliKTmlq3moLzlvI/mmK/lkKbmraPnoa5cblx0XHRcdHRyeVxuXHRcdFx0XHRDcmVhdG9yLmV2YWwobG9naWMucmVwbGFjZSgvYW5kL2lnLCBcIiYmXCIpLnJlcGxhY2UoL29yL2lnLCBcInx8XCIpKVxuXHRcdFx0Y2F0Y2ggZVxuXHRcdFx0XHRlcnJvck1zZyA9IFwi5oKo55qE562b6YCJ5Zmo5Lit5ZCr5pyJ54m55q6K5a2X56ymXCJcblxuXHRcdFx0aWYgLyhBTkQpW14oKV0rKE9SKS9pZy50ZXN0KGxvZ2ljKSB8fCAgLyhPUilbXigpXSsoQU5EKS9pZy50ZXN0KGxvZ2ljKVxuXHRcdFx0XHRlcnJvck1zZyA9IFwi5oKo55qE562b6YCJ5Zmo5b+F6aG75Zyo6L+e57ut5oCn55qEIEFORCDlkowgT1Ig6KGo6L6+5byP5YmN5ZCO5L2/55So5ous5Y+344CCXCJcblx0aWYgZXJyb3JNc2dcblx0XHRjb25zb2xlLmxvZyBcImVycm9yXCIsIGVycm9yTXNnXG5cdFx0aWYgTWV0ZW9yLmlzQ2xpZW50XG5cdFx0XHR0b2FzdHIuZXJyb3IoZXJyb3JNc2cpXG5cdFx0cmV0dXJuIGZhbHNlXG5cdGVsc2Vcblx0XHRyZXR1cm4gdHJ1ZVxuXG4jIFwiPVwiLCBcIjw+XCIsIFwiPlwiLCBcIj49XCIsIFwiPFwiLCBcIjw9XCIsIFwic3RhcnRzd2l0aFwiLCBcImNvbnRhaW5zXCIsIFwibm90Y29udGFpbnNcIi5cbiMjI1xub3B0aW9uc+WPguaVsO+8mlxuXHRleHRlbmQtLSDmmK/lkKbpnIDopoHmiorlvZPliY3nlKjmiLfln7rmnKzkv6Hmga/liqDlhaXlhazlvI/vvIzljbPorqnlhazlvI/mlK/mjIFDcmVhdG9yLlVTRVJfQ09OVEVYVOS4reeahOWAvO+8jOm7mOiupOS4unRydWVcblx0dXNlcklkLS0g5b2T5YmN55m75b2V55So5oi3XG5cdHNwYWNlSWQtLSDlvZPliY3miYDlnKjlt6XkvZzljLpcbmV4dGVuZOS4unRydWXml7bvvIzlkI7nq6/pnIDopoHpop3lpJbkvKDlhaV1c2VySWTlj4pzcGFjZUlk55So5LqO5oqT5Y+WQ3JlYXRvci5VU0VSX0NPTlRFWFTlr7nlupTnmoTlgLxcbiMjI1xuQ3JlYXRvci5mb3JtYXRGaWx0ZXJzVG9Nb25nbyA9IChmaWx0ZXJzLCBvcHRpb25zKS0+XG5cdHVubGVzcyBmaWx0ZXJzPy5sZW5ndGhcblx0XHRyZXR1cm5cblx0IyDlvZNmaWx0ZXJz5LiN5pivW0FycmF5Xeexu+Wei+iAjOaYr1tPYmplY3Rd57G75Z6L5pe277yM6L+b6KGM5qC85byP6L2s5o2iXG5cdHVubGVzcyBmaWx0ZXJzWzBdIGluc3RhbmNlb2YgQXJyYXlcblx0XHRmaWx0ZXJzID0gXy5tYXAgZmlsdGVycywgKG9iaiktPlxuXHRcdFx0cmV0dXJuIFtvYmouZmllbGQsIG9iai5vcGVyYXRpb24sIG9iai52YWx1ZV1cblx0c2VsZWN0b3IgPSBbXVxuXHRfLmVhY2ggZmlsdGVycywgKGZpbHRlciktPlxuXHRcdGZpZWxkID0gZmlsdGVyWzBdXG5cdFx0b3B0aW9uID0gZmlsdGVyWzFdXG5cdFx0aWYgTWV0ZW9yLmlzQ2xpZW50XG5cdFx0XHR2YWx1ZSA9IENyZWF0b3IuZXZhbHVhdGVGb3JtdWxhKGZpbHRlclsyXSlcblx0XHRlbHNlXG5cdFx0XHR2YWx1ZSA9IENyZWF0b3IuZXZhbHVhdGVGb3JtdWxhKGZpbHRlclsyXSwgbnVsbCwgb3B0aW9ucylcblx0XHRzdWJfc2VsZWN0b3IgPSB7fVxuXHRcdHN1Yl9zZWxlY3RvcltmaWVsZF0gPSB7fVxuXHRcdGlmIG9wdGlvbiA9PSBcIj1cIlxuXHRcdFx0c3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRlcVwiXSA9IHZhbHVlXG5cdFx0ZWxzZSBpZiBvcHRpb24gPT0gXCI8PlwiXG5cdFx0XHRzdWJfc2VsZWN0b3JbZmllbGRdW1wiJG5lXCJdID0gdmFsdWVcblx0XHRlbHNlIGlmIG9wdGlvbiA9PSBcIj5cIlxuXHRcdFx0c3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRndFwiXSA9IHZhbHVlXG5cdFx0ZWxzZSBpZiBvcHRpb24gPT0gXCI+PVwiXG5cdFx0XHRzdWJfc2VsZWN0b3JbZmllbGRdW1wiJGd0ZVwiXSA9IHZhbHVlXG5cdFx0ZWxzZSBpZiBvcHRpb24gPT0gXCI8XCJcblx0XHRcdHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkbHRcIl0gPSB2YWx1ZVxuXHRcdGVsc2UgaWYgb3B0aW9uID09IFwiPD1cIlxuXHRcdFx0c3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRsdGVcIl0gPSB2YWx1ZVxuXHRcdGVsc2UgaWYgb3B0aW9uID09IFwic3RhcnRzd2l0aFwiXG5cdFx0XHRyZWcgPSBuZXcgUmVnRXhwKFwiXlwiICsgdmFsdWUsIFwiaVwiKVxuXHRcdFx0c3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRyZWdleFwiXSA9IHJlZ1xuXHRcdGVsc2UgaWYgb3B0aW9uID09IFwiY29udGFpbnNcIlxuXHRcdFx0cmVnID0gbmV3IFJlZ0V4cCh2YWx1ZSwgXCJpXCIpXG5cdFx0XHRzdWJfc2VsZWN0b3JbZmllbGRdW1wiJHJlZ2V4XCJdID0gcmVnXG5cdFx0ZWxzZSBpZiBvcHRpb24gPT0gXCJub3Rjb250YWluc1wiXG5cdFx0XHRyZWcgPSBuZXcgUmVnRXhwKFwiXigoPyFcIiArIHZhbHVlICsgXCIpLikqJFwiLCBcImlcIilcblx0XHRcdHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkcmVnZXhcIl0gPSByZWdcblx0XHRzZWxlY3Rvci5wdXNoIHN1Yl9zZWxlY3RvclxuXHRyZXR1cm4gc2VsZWN0b3JcblxuQ3JlYXRvci5pc0JldHdlZW5GaWx0ZXJPcGVyYXRpb24gPSAob3BlcmF0aW9uKS0+XG5cdHJldHVybiBvcGVyYXRpb24gPT0gXCJiZXR3ZWVuXCIgb3IgISFDcmVhdG9yLmdldEJldHdlZW5UaW1lQnVpbHRpblZhbHVlcyh0cnVlKT9bb3BlcmF0aW9uXVxuXG4jIyNcbm9wdGlvbnPlj4LmlbDvvJpcblx0ZXh0ZW5kLS0g5piv5ZCm6ZyA6KaB5oqK5b2T5YmN55So5oi35Z+65pys5L+h5oGv5Yqg5YWl5YWs5byP77yM5Y2z6K6p5YWs5byP5pSv5oyBQ3JlYXRvci5VU0VSX0NPTlRFWFTkuK3nmoTlgLzvvIzpu5jorqTkuLp0cnVlXG5cdHVzZXJJZC0tIOW9k+WJjeeZu+W9leeUqOaIt1xuXHRzcGFjZUlkLS0g5b2T5YmN5omA5Zyo5bel5L2c5Yy6XG5cdGV4dGVuZOS4unRydWXml7bvvIzlkI7nq6/pnIDopoHpop3lpJbkvKDlhaV1c2VySWTlj4pzcGFjZUlk55So5LqO5oqT5Y+WQ3JlYXRvci5VU0VSX0NPTlRFWFTlr7nlupTnmoTlgLxcbiMjI1xuQ3JlYXRvci5mb3JtYXRGaWx0ZXJzVG9EZXYgPSAoZmlsdGVycywgb2JqZWN0X25hbWUsIG9wdGlvbnMpLT5cblx0dW5sZXNzIGZpbHRlcnMubGVuZ3RoXG5cdFx0cmV0dXJuXG5cdGlmIG9wdGlvbnM/LmlzX2xvZ2ljX29yXG5cdFx0IyDlpoLmnpxpc19sb2dpY19vcuS4unRydWXvvIzkuLpmaWx0ZXJz56ys5LiA5bGC5YWD57Sg5aKe5Yqgb3Lpl7TpmpRcblx0XHRsb2dpY1RlbXBGaWx0ZXJzID0gW11cblx0XHRmaWx0ZXJzLmZvckVhY2ggKG4pLT5cblx0XHRcdGxvZ2ljVGVtcEZpbHRlcnMucHVzaChuKVxuXHRcdFx0bG9naWNUZW1wRmlsdGVycy5wdXNoKFwib3JcIilcblx0XHRsb2dpY1RlbXBGaWx0ZXJzLnBvcCgpXG5cdFx0ZmlsdGVycyA9IGxvZ2ljVGVtcEZpbHRlcnNcblx0c2VsZWN0b3IgPSBTdGVlZG9zRmlsdGVycy5mb3JtYXRGaWx0ZXJzVG9EZXYoZmlsdGVycywgQ3JlYXRvci5VU0VSX0NPTlRFWFQpXG5cdHJldHVybiBzZWxlY3RvclxuXG4jIyNcbm9wdGlvbnPlj4LmlbDvvJpcblx0ZXh0ZW5kLS0g5piv5ZCm6ZyA6KaB5oqK5b2T5YmN55So5oi35Z+65pys5L+h5oGv5Yqg5YWl5YWs5byP77yM5Y2z6K6p5YWs5byP5pSv5oyBQ3JlYXRvci5VU0VSX0NPTlRFWFTkuK3nmoTlgLzvvIzpu5jorqTkuLp0cnVlXG5cdHVzZXJJZC0tIOW9k+WJjeeZu+W9leeUqOaIt1xuXHRzcGFjZUlkLS0g5b2T5YmN5omA5Zyo5bel5L2c5Yy6XG5leHRlbmTkuLp0cnVl5pe277yM5ZCO56uv6ZyA6KaB6aKd5aSW5Lyg5YWldXNlcklk5Y+Kc3BhY2VJZOeUqOS6juaKk+WPlkNyZWF0b3IuVVNFUl9DT05URVhU5a+55bqU55qE5YC8XG4jIyNcbkNyZWF0b3IuZm9ybWF0TG9naWNGaWx0ZXJzVG9EZXYgPSAoZmlsdGVycywgZmlsdGVyX2xvZ2ljLCBvcHRpb25zKS0+XG5cdGZvcm1hdF9sb2dpYyA9IGZpbHRlcl9sb2dpYy5yZXBsYWNlKC9cXChcXHMrL2lnLCBcIihcIikucmVwbGFjZSgvXFxzK1xcKS9pZywgXCIpXCIpLnJlcGxhY2UoL1xcKC9nLCBcIltcIikucmVwbGFjZSgvXFwpL2csIFwiXVwiKS5yZXBsYWNlKC9cXHMrL2csIFwiLFwiKS5yZXBsYWNlKC8oYW5kfG9yKS9pZywgXCInJDEnXCIpXG5cdGZvcm1hdF9sb2dpYyA9IGZvcm1hdF9sb2dpYy5yZXBsYWNlKC8oXFxkKSsvaWcsICh4KS0+XG5cdFx0X2YgPSBmaWx0ZXJzW3gtMV1cblx0XHRmaWVsZCA9IF9mLmZpZWxkXG5cdFx0b3B0aW9uID0gX2Yub3BlcmF0aW9uXG5cdFx0aWYgTWV0ZW9yLmlzQ2xpZW50XG5cdFx0XHR2YWx1ZSA9IENyZWF0b3IuZXZhbHVhdGVGb3JtdWxhKF9mLnZhbHVlKVxuXHRcdGVsc2Vcblx0XHRcdHZhbHVlID0gQ3JlYXRvci5ldmFsdWF0ZUZvcm11bGEoX2YudmFsdWUsIG51bGwsIG9wdGlvbnMpXG5cdFx0c3ViX3NlbGVjdG9yID0gW11cblx0XHRpZiBfLmlzQXJyYXkodmFsdWUpID09IHRydWVcblx0XHRcdGlmIG9wdGlvbiA9PSBcIj1cIlxuXHRcdFx0XHRfLmVhY2ggdmFsdWUsICh2KS0+XG5cdFx0XHRcdFx0c3ViX3NlbGVjdG9yLnB1c2ggW2ZpZWxkLCBvcHRpb24sIHZdLCBcIm9yXCJcblx0XHRcdGVsc2UgaWYgb3B0aW9uID09IFwiPD5cIlxuXHRcdFx0XHRfLmVhY2ggdmFsdWUsICh2KS0+XG5cdFx0XHRcdFx0c3ViX3NlbGVjdG9yLnB1c2ggW2ZpZWxkLCBvcHRpb24sIHZdLCBcImFuZFwiXG5cdFx0XHRlbHNlXG5cdFx0XHRcdF8uZWFjaCB2YWx1ZSwgKHYpLT5cblx0XHRcdFx0XHRzdWJfc2VsZWN0b3IucHVzaCBbZmllbGQsIG9wdGlvbiwgdl0sIFwib3JcIlxuXHRcdFx0aWYgc3ViX3NlbGVjdG9yW3N1Yl9zZWxlY3Rvci5sZW5ndGggLSAxXSA9PSBcImFuZFwiIHx8IHN1Yl9zZWxlY3RvcltzdWJfc2VsZWN0b3IubGVuZ3RoIC0gMV0gPT0gXCJvclwiXG5cdFx0XHRcdHN1Yl9zZWxlY3Rvci5wb3AoKVxuXHRcdGVsc2Vcblx0XHRcdHN1Yl9zZWxlY3RvciA9IFtmaWVsZCwgb3B0aW9uLCB2YWx1ZV1cblx0XHQjIGNvbnNvbGUubG9nIFwic3ViX3NlbGVjdG9yXCIsIHN1Yl9zZWxlY3RvclxuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeShzdWJfc2VsZWN0b3IpXG5cdClcblx0Zm9ybWF0X2xvZ2ljID0gXCJbI3tmb3JtYXRfbG9naWN9XVwiXG5cdHJldHVybiBDcmVhdG9yLmV2YWwoZm9ybWF0X2xvZ2ljKVxuXG5DcmVhdG9yLmdldFJlbGF0ZWRPYmplY3RzID0gKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpLT5cblx0aWYgTWV0ZW9yLmlzQ2xpZW50XG5cdFx0aWYgIW9iamVjdF9uYW1lXG5cdFx0XHRvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIilcblx0XHRpZiAhc3BhY2VJZFxuXHRcdFx0c3BhY2VJZCA9IFNlc3Npb24uZ2V0KFwic3BhY2VJZFwiKVxuXHRcdGlmICF1c2VySWRcblx0XHRcdHVzZXJJZCA9IE1ldGVvci51c2VySWQoKVxuXG5cdHJlbGF0ZWRfb2JqZWN0X25hbWVzID0gW11cblx0X29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKVxuXG5cdGlmICFfb2JqZWN0XG5cdFx0cmV0dXJuIHJlbGF0ZWRfb2JqZWN0X25hbWVzXG5cbiNcdHJlbGF0ZWRfb2JqZWN0X25hbWVzID0gXy5wbHVjayhfb2JqZWN0LnJlbGF0ZWRfb2JqZWN0cyxcIm9iamVjdF9uYW1lXCIpXG5cblx0cmVsYXRlZF9vYmplY3RzID0gQ3JlYXRvci5nZXRPYmplY3RSZWxhdGVkcyhfb2JqZWN0Ll9jb2xsZWN0aW9uX25hbWUpXG5cblx0cmVsYXRlZF9vYmplY3RfbmFtZXMgPSBfLnBsdWNrKHJlbGF0ZWRfb2JqZWN0cyxcIm9iamVjdF9uYW1lXCIpXG5cdGlmIHJlbGF0ZWRfb2JqZWN0X25hbWVzPy5sZW5ndGggPT0gMFxuXHRcdHJldHVybiByZWxhdGVkX29iamVjdF9uYW1lc1xuXG5cdHBlcm1pc3Npb25zID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKVxuXHR1bnJlbGF0ZWRfb2JqZWN0cyA9IHBlcm1pc3Npb25zLnVucmVsYXRlZF9vYmplY3RzXG5cblx0cmVsYXRlZF9vYmplY3RfbmFtZXMgPSBfLmRpZmZlcmVuY2UgcmVsYXRlZF9vYmplY3RfbmFtZXMsIHVucmVsYXRlZF9vYmplY3RzXG5cdHJldHVybiBfLmZpbHRlciByZWxhdGVkX29iamVjdHMsIChyZWxhdGVkX29iamVjdCktPlxuXHRcdHJlbGF0ZWRfb2JqZWN0X25hbWUgPSByZWxhdGVkX29iamVjdC5vYmplY3RfbmFtZVxuXHRcdGlzQWN0aXZlID0gcmVsYXRlZF9vYmplY3RfbmFtZXMuaW5kZXhPZihyZWxhdGVkX29iamVjdF9uYW1lKSA+IC0xXG5cdFx0IyByZWxhdGVkX29iamVjdF9uYW1lID0gaWYgcmVsYXRlZF9vYmplY3RfbmFtZSA9PSBcImNmc19maWxlc19maWxlcmVjb3JkXCIgdGhlbiBcImNmcy5maWxlcy5maWxlcmVjb3JkXCIgZWxzZSByZWxhdGVkX29iamVjdF9uYW1lXG5cdFx0YWxsb3dSZWFkID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhyZWxhdGVkX29iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpPy5hbGxvd1JlYWRcblx0XHRpZiByZWxhdGVkX29iamVjdF9uYW1lID09IFwiY21zX2ZpbGVzXCJcblx0XHRcdGFsbG93UmVhZCA9IGFsbG93UmVhZCAmJiBwZXJtaXNzaW9ucy5hbGxvd1JlYWRGaWxlc1xuXHRcdHJldHVybiBpc0FjdGl2ZSBhbmQgYWxsb3dSZWFkXG5cbkNyZWF0b3IuZ2V0UmVsYXRlZE9iamVjdE5hbWVzID0gKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpLT5cblx0cmVsYXRlZF9vYmplY3RzID0gQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0cyhvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKVxuXHRyZXR1cm4gXy5wbHVjayhyZWxhdGVkX29iamVjdHMsXCJvYmplY3RfbmFtZVwiKVxuXG5DcmVhdG9yLmdldFJlbGF0ZWRPYmplY3RMaXN0QWN0aW9ucyA9IChyZWxhdGVkT2JqZWN0TmFtZSwgc3BhY2VJZCwgdXNlcklkKS0+XG5cdGFjdGlvbnMgPSBDcmVhdG9yLmdldEFjdGlvbnMocmVsYXRlZE9iamVjdE5hbWUsIHNwYWNlSWQsIHVzZXJJZClcblx0YWN0aW9ucyA9IF8uZmlsdGVyIGFjdGlvbnMsIChhY3Rpb24pLT5cblx0XHRpZiBhY3Rpb24ubmFtZSA9PSBcInN0YW5kYXJkX2ZvbGxvd1wiXG5cdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRpZiBhY3Rpb24ubmFtZSA9PSBcInN0YW5kYXJkX3F1ZXJ5XCJcblx0XHRcdHJldHVybiBmYWxzZVxuXHRcdGlmIGFjdGlvbi5vbiA9PSBcImxpc3RcIlxuXHRcdFx0aWYgdHlwZW9mIGFjdGlvbi52aXNpYmxlID09IFwiZnVuY3Rpb25cIlxuXHRcdFx0XHRyZXR1cm4gYWN0aW9uLnZpc2libGUoKVxuXHRcdFx0ZWxzZVxuXHRcdFx0XHRyZXR1cm4gYWN0aW9uLnZpc2libGVcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4gZmFsc2Vcblx0cmV0dXJuIGFjdGlvbnNcblxuQ3JlYXRvci5nZXRBY3Rpb25zID0gKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpLT5cblx0aWYgTWV0ZW9yLmlzQ2xpZW50XG5cdFx0aWYgIW9iamVjdF9uYW1lXG5cdFx0XHRvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIilcblx0XHRpZiAhc3BhY2VJZFxuXHRcdFx0c3BhY2VJZCA9IFNlc3Npb24uZ2V0KFwic3BhY2VJZFwiKVxuXHRcdGlmICF1c2VySWRcblx0XHRcdHVzZXJJZCA9IE1ldGVvci51c2VySWQoKVxuXG5cdG9iaiA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKVxuXG5cdGlmICFvYmpcblx0XHRyZXR1cm5cblxuXHRwZXJtaXNzaW9ucyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZClcblx0ZGlzYWJsZWRfYWN0aW9ucyA9IHBlcm1pc3Npb25zLmRpc2FibGVkX2FjdGlvbnNcblx0YWN0aW9ucyA9IF8uc29ydEJ5KF8udmFsdWVzKG9iai5hY3Rpb25zKSAsICdzb3J0Jyk7XG5cblx0aWYgXy5oYXMob2JqLCAnYWxsb3dfY3VzdG9tQWN0aW9ucycpXG5cdFx0YWN0aW9ucyA9IF8uZmlsdGVyIGFjdGlvbnMsIChhY3Rpb24pLT5cblx0XHRcdHJldHVybiBfLmluY2x1ZGUob2JqLmFsbG93X2N1c3RvbUFjdGlvbnMsIGFjdGlvbi5uYW1lKSB8fCBfLmluY2x1ZGUoXy5rZXlzKENyZWF0b3IuZ2V0T2JqZWN0KCdiYXNlJykuYWN0aW9ucykgfHwge30sIGFjdGlvbi5uYW1lKVxuXHRpZiBfLmhhcyhvYmosICdleGNsdWRlX2FjdGlvbnMnKVxuXHRcdGFjdGlvbnMgPSBfLmZpbHRlciBhY3Rpb25zLCAoYWN0aW9uKS0+XG5cdFx0XHRyZXR1cm4gIV8uaW5jbHVkZShvYmouZXhjbHVkZV9hY3Rpb25zLCBhY3Rpb24ubmFtZSlcblxuXHRfLmVhY2ggYWN0aW9ucywgKGFjdGlvbiktPlxuXHRcdCMg5omL5py65LiK5Y+q5pi+56S657yW6L6R5oyJ6ZKu77yM5YW25LuW55qE5pS+5Yiw5oqY5Y+g5LiL5ouJ6I+c5Y2V5LitXG5cdFx0aWYgU3RlZWRvcy5pc01vYmlsZSgpICYmIFtcInJlY29yZFwiLCBcInJlY29yZF9vbmx5XCJdLmluZGV4T2YoYWN0aW9uLm9uKSA+IC0xICYmIGFjdGlvbi5uYW1lICE9ICdzdGFuZGFyZF9lZGl0J1xuXHRcdFx0aWYgYWN0aW9uLm9uID09IFwicmVjb3JkX29ubHlcIlxuXHRcdFx0XHRhY3Rpb24ub24gPSAncmVjb3JkX29ubHlfbW9yZSdcblx0XHRcdGVsc2Vcblx0XHRcdFx0YWN0aW9uLm9uID0gJ3JlY29yZF9tb3JlJ1xuXG5cdGlmIFN0ZWVkb3MuaXNNb2JpbGUoKSAmJiBbXCJjbXNfZmlsZXNcIiwgXCJjZnMuZmlsZXMuZmlsZXJlY29yZFwiXS5pbmRleE9mKG9iamVjdF9uYW1lKSA+IC0xXG5cdFx0IyDpmYTku7bnibnmrorlpITnkIbvvIzkuIvovb3mjInpkq7mlL7lnKjkuLvoj5zljZXvvIznvJbovpHmjInpkq7mlL7liLDlupXkuIvmipjlj6DkuIvmi4noj5zljZXkuK1cblx0XHRhY3Rpb25zLmZpbmQoKG4pLT4gcmV0dXJuIG4ubmFtZSA9PSBcInN0YW5kYXJkX2VkaXRcIik/Lm9uID0gXCJyZWNvcmRfbW9yZVwiXG5cdFx0YWN0aW9ucy5maW5kKChuKS0+IHJldHVybiBuLm5hbWUgPT0gXCJkb3dubG9hZFwiKT8ub24gPSBcInJlY29yZFwiXG5cblx0YWN0aW9ucyA9IF8uZmlsdGVyIGFjdGlvbnMsIChhY3Rpb24pLT5cblx0XHRyZXR1cm4gXy5pbmRleE9mKGRpc2FibGVkX2FjdGlvbnMsIGFjdGlvbi5uYW1lKSA8IDBcblxuXHRyZXR1cm4gYWN0aW9uc1xuXG4vLy9cblx06L+U5Zue5b2T5YmN55So5oi35pyJ5p2D6ZmQ6K6/6Zeu55qE5omA5pyJbGlzdF92aWV377yM5YyF5ous5YiG5Lqr55qE77yM55So5oi36Ieq5a6a5LmJ6Z2e5YiG5Lqr55qE77yI6Zmk6Z2eb3duZXLlj5jkuobvvInvvIzku6Xlj4rpu5jorqTnmoTlhbbku5bop4blm75cblx05rOo5oSPQ3JlYXRvci5nZXRQZXJtaXNzaW9uc+WHveaVsOS4reaYr+S4jeS8muacieeUqOaIt+iHquWumuS5iemdnuWIhuS6q+eahOinhuWbvueahO+8jOaJgOS7pUNyZWF0b3IuZ2V0UGVybWlzc2lvbnPlh73mlbDkuK3mi7/liLDnmoTnu5PmnpzkuI3lhajvvIzlubbkuI3mmK/lvZPliY3nlKjmiLfog73nnIvliLDmiYDmnInop4blm75cbi8vL1xuQ3JlYXRvci5nZXRMaXN0Vmlld3MgPSAob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCktPlxuXHRpZiBNZXRlb3IuaXNDbGllbnRcblx0XHRpZiAhb2JqZWN0X25hbWVcblx0XHRcdG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKVxuXHRcdGlmICFzcGFjZUlkXG5cdFx0XHRzcGFjZUlkID0gU2Vzc2lvbi5nZXQoXCJzcGFjZUlkXCIpXG5cdFx0aWYgIXVzZXJJZFxuXHRcdFx0dXNlcklkID0gTWV0ZW9yLnVzZXJJZCgpXG5cdFxuXHR1bmxlc3Mgb2JqZWN0X25hbWVcblx0XHRyZXR1cm5cblxuXHRvYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSlcblxuXHRpZiAhb2JqZWN0XG5cdFx0cmV0dXJuXG5cblx0ZGlzYWJsZWRfbGlzdF92aWV3cyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCk/LmRpc2FibGVkX2xpc3Rfdmlld3MgfHwgW11cblxuXHRsaXN0X3ZpZXdzID0gW11cblxuXHRpc01vYmlsZSA9IFN0ZWVkb3MuaXNNb2JpbGUoKVxuXG5cdF8uZWFjaCBvYmplY3QubGlzdF92aWV3cywgKGl0ZW0sIGl0ZW1fbmFtZSktPlxuXHRcdGl0ZW0ubmFtZSA9IGl0ZW1fbmFtZVxuXG5cdGxpc3RWaWV3cyA9IF8uc29ydEJ5KF8udmFsdWVzKG9iamVjdC5saXN0X3ZpZXdzKSAsICdzb3J0X25vJyk7XG5cblx0Xy5lYWNoIGxpc3RWaWV3cywgKGl0ZW0pLT5cblx0XHRpZiBpc01vYmlsZSBhbmQgaXRlbS50eXBlID09IFwiY2FsZW5kYXJcIlxuXHRcdFx0IyDmiYvmnLrkuIrlhYjkuI3mmL7npLrml6Xljobop4blm75cblx0XHRcdHJldHVyblxuXHRcdGlmIGl0ZW0ubmFtZSAgIT0gXCJkZWZhdWx0XCJcblx0XHRcdGlzRGlzYWJsZWQgPSBfLmluZGV4T2YoZGlzYWJsZWRfbGlzdF92aWV3cywgaXRlbS5uYW1lKSA+IC0xIHx8IChpdGVtLl9pZCAmJiBfLmluZGV4T2YoZGlzYWJsZWRfbGlzdF92aWV3cywgaXRlbS5faWQpID4gLTEpXG5cdFx0XHRpZiAhaXNEaXNhYmxlZCB8fCBpdGVtLm93bmVyID09IHVzZXJJZFxuXHRcdFx0XHRsaXN0X3ZpZXdzLnB1c2ggaXRlbVxuXHRyZXR1cm4gbGlzdF92aWV3c1xuXG4jIOWJjeWPsOeQhuiuuuS4iuS4jeW6lOivpeiwg+eUqOivpeWHveaVsO+8jOWboOS4uuWtl+auteeahOadg+mZkOmDveWcqENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKS5maWVsZHPnmoTnm7jlhbPlsZ7mgKfkuK3mnInmoIfor4bkuoZcbkNyZWF0b3IuZ2V0RmllbGRzID0gKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpLT5cblx0aWYgTWV0ZW9yLmlzQ2xpZW50XG5cdFx0aWYgIW9iamVjdF9uYW1lXG5cdFx0XHRvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIilcblx0XHRpZiAhc3BhY2VJZFxuXHRcdFx0c3BhY2VJZCA9IFNlc3Npb24uZ2V0KFwic3BhY2VJZFwiKVxuXHRcdGlmICF1c2VySWRcblx0XHRcdHVzZXJJZCA9IE1ldGVvci51c2VySWQoKVxuXG5cdGZpZWxkc05hbWUgPSBDcmVhdG9yLmdldE9iamVjdEZpZWxkc05hbWUob2JqZWN0X25hbWUpXG5cdHVucmVhZGFibGVfZmllbGRzID0gIENyZWF0b3IuZ2V0UGVybWlzc2lvbnMob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCk/LnVucmVhZGFibGVfZmllbGRzXG5cdHJldHVybiBfLmRpZmZlcmVuY2UoZmllbGRzTmFtZSwgdW5yZWFkYWJsZV9maWVsZHMpXG5cbkNyZWF0b3IuaXNsb2FkaW5nID0gKCktPlxuXHRyZXR1cm4gIUNyZWF0b3IuYm9vdHN0cmFwTG9hZGVkLmdldCgpXG5cbkNyZWF0b3IuY29udmVydFNwZWNpYWxDaGFyYWN0ZXIgPSAoc3RyKS0+XG5cdHJldHVybiBzdHIucmVwbGFjZSgvKFtcXF5cXCRcXChcXClcXCpcXCtcXD9cXC5cXFxcXFx8XFxbXFxdXFx7XFx9XSkvZywgXCJcXFxcJDFcIilcblxuIyDorqHnrpdmaWVsZHPnm7jlhbPlh73mlbBcbiMgU1RBUlRcbkNyZWF0b3IuZ2V0RGlzYWJsZWRGaWVsZHMgPSAoc2NoZW1hKS0+XG5cdGZpZWxkcyA9IF8ubWFwKHNjaGVtYSwgKGZpZWxkLCBmaWVsZE5hbWUpIC0+XG5cdFx0cmV0dXJuIGZpZWxkLmF1dG9mb3JtIGFuZCBmaWVsZC5hdXRvZm9ybS5kaXNhYmxlZCBhbmQgIWZpZWxkLmF1dG9mb3JtLm9taXQgYW5kIGZpZWxkTmFtZVxuXHQpXG5cdGZpZWxkcyA9IF8uY29tcGFjdChmaWVsZHMpXG5cdHJldHVybiBmaWVsZHNcblxuQ3JlYXRvci5nZXRIaWRkZW5GaWVsZHMgPSAoc2NoZW1hKS0+XG5cdGZpZWxkcyA9IF8ubWFwKHNjaGVtYSwgKGZpZWxkLCBmaWVsZE5hbWUpIC0+XG5cdFx0cmV0dXJuIGZpZWxkLmF1dG9mb3JtIGFuZCBmaWVsZC5hdXRvZm9ybS50eXBlID09IFwiaGlkZGVuXCIgYW5kICFmaWVsZC5hdXRvZm9ybS5vbWl0IGFuZCBmaWVsZE5hbWVcblx0KVxuXHRmaWVsZHMgPSBfLmNvbXBhY3QoZmllbGRzKVxuXHRyZXR1cm4gZmllbGRzXG5cbkNyZWF0b3IuZ2V0RmllbGRzV2l0aE5vR3JvdXAgPSAoc2NoZW1hKS0+XG5cdGZpZWxkcyA9IF8ubWFwKHNjaGVtYSwgKGZpZWxkLCBmaWVsZE5hbWUpIC0+XG5cdFx0cmV0dXJuICghZmllbGQuYXV0b2Zvcm0gb3IgIWZpZWxkLmF1dG9mb3JtLmdyb3VwIG9yIGZpZWxkLmF1dG9mb3JtLmdyb3VwID09IFwiLVwiKSBhbmQgKCFmaWVsZC5hdXRvZm9ybSBvciBmaWVsZC5hdXRvZm9ybS50eXBlICE9IFwiaGlkZGVuXCIpIGFuZCBmaWVsZE5hbWVcblx0KVxuXHRmaWVsZHMgPSBfLmNvbXBhY3QoZmllbGRzKVxuXHRyZXR1cm4gZmllbGRzXG5cbkNyZWF0b3IuZ2V0U29ydGVkRmllbGRHcm91cE5hbWVzID0gKHNjaGVtYSktPlxuXHRuYW1lcyA9IF8ubWFwKHNjaGVtYSwgKGZpZWxkKSAtPlxuIFx0XHRyZXR1cm4gZmllbGQuYXV0b2Zvcm0gYW5kIGZpZWxkLmF1dG9mb3JtLmdyb3VwICE9IFwiLVwiIGFuZCBmaWVsZC5hdXRvZm9ybS5ncm91cFxuXHQpXG5cdG5hbWVzID0gXy5jb21wYWN0KG5hbWVzKVxuXHRuYW1lcyA9IF8udW5pcXVlKG5hbWVzKVxuXHRyZXR1cm4gbmFtZXNcblxuQ3JlYXRvci5nZXRGaWVsZHNGb3JHcm91cCA9IChzY2hlbWEsIGdyb3VwTmFtZSkgLT5cbiAgXHRmaWVsZHMgPSBfLm1hcChzY2hlbWEsIChmaWVsZCwgZmllbGROYW1lKSAtPlxuICAgIFx0cmV0dXJuIGZpZWxkLmF1dG9mb3JtIGFuZCBmaWVsZC5hdXRvZm9ybS5ncm91cCA9PSBncm91cE5hbWUgYW5kIGZpZWxkLmF1dG9mb3JtLnR5cGUgIT0gXCJoaWRkZW5cIiBhbmQgZmllbGROYW1lXG4gIFx0KVxuICBcdGZpZWxkcyA9IF8uY29tcGFjdChmaWVsZHMpXG4gIFx0cmV0dXJuIGZpZWxkc1xuXG5DcmVhdG9yLmdldFN5c3RlbUJhc2VGaWVsZHMgPSAoKSAtPlxuXHRyZXR1cm4gW1wiY3JlYXRlZFwiLCBcImNyZWF0ZWRfYnlcIiwgXCJtb2RpZmllZFwiLCBcIm1vZGlmaWVkX2J5XCJdXG5cbkNyZWF0b3IuZ2V0RmllbGRzV2l0aG91dFN5c3RlbUJhc2UgPSAoa2V5cykgLT5cblx0cmV0dXJuIF8uZGlmZmVyZW5jZShrZXlzLCBDcmVhdG9yLmdldFN5c3RlbUJhc2VGaWVsZHMoKSk7XG5cbkNyZWF0b3IuZ2V0RmllbGRzV2l0aG91dE9taXQgPSAoc2NoZW1hLCBrZXlzKSAtPlxuXHRrZXlzID0gXy5tYXAoa2V5cywgKGtleSkgLT5cblx0XHRmaWVsZCA9IF8ucGljayhzY2hlbWEsIGtleSlcblx0XHRpZiBmaWVsZFtrZXldLmF1dG9mb3JtPy5vbWl0XG5cdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4ga2V5XG5cdClcblx0a2V5cyA9IF8uY29tcGFjdChrZXlzKVxuXHRyZXR1cm4ga2V5c1xuXG5DcmVhdG9yLmdldEZpZWxkc0luRmlyc3RMZXZlbCA9IChmaXJzdExldmVsS2V5cywga2V5cykgLT5cblx0a2V5cyA9IF8ubWFwKGtleXMsIChrZXkpIC0+XG5cdFx0aWYgXy5pbmRleE9mKGZpcnN0TGV2ZWxLZXlzLCBrZXkpID4gLTFcblx0XHRcdHJldHVybiBrZXlcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4gZmFsc2Vcblx0KVxuXHRrZXlzID0gXy5jb21wYWN0KGtleXMpXG5cdHJldHVybiBrZXlzXG5cbkNyZWF0b3IuZ2V0RmllbGRzRm9yUmVvcmRlciA9IChzY2hlbWEsIGtleXMsIGlzU2luZ2xlKSAtPlxuXHRmaWVsZHMgPSBbXVxuXHRpID0gMFxuXHRfa2V5cyA9IF8uZmlsdGVyKGtleXMsIChrZXkpLT5cblx0XHRyZXR1cm4gIWtleS5lbmRzV2l0aCgnX2VuZExpbmUnKVxuXHQpO1xuXHR3aGlsZSBpIDwgX2tleXMubGVuZ3RoXG5cdFx0c2NfMSA9IF8ucGljayhzY2hlbWEsIF9rZXlzW2ldKVxuXHRcdHNjXzIgPSBfLnBpY2soc2NoZW1hLCBfa2V5c1tpKzFdKVxuXG5cdFx0aXNfd2lkZV8xID0gZmFsc2Vcblx0XHRpc193aWRlXzIgPSBmYWxzZVxuXG4jXHRcdGlzX3JhbmdlXzEgPSBmYWxzZVxuI1x0XHRpc19yYW5nZV8yID0gZmFsc2VcblxuXHRcdF8uZWFjaCBzY18xLCAodmFsdWUpIC0+XG5cdFx0XHRpZiB2YWx1ZS5hdXRvZm9ybT8uaXNfd2lkZSB8fCB2YWx1ZS5hdXRvZm9ybT8udHlwZSA9PSBcInRhYmxlXCJcblx0XHRcdFx0aXNfd2lkZV8xID0gdHJ1ZVxuXG4jXHRcdFx0aWYgdmFsdWUuYXV0b2Zvcm0/LmlzX3JhbmdlXG4jXHRcdFx0XHRpc19yYW5nZV8xID0gdHJ1ZVxuXG5cdFx0Xy5lYWNoIHNjXzIsICh2YWx1ZSkgLT5cblx0XHRcdGlmIHZhbHVlLmF1dG9mb3JtPy5pc193aWRlIHx8IHZhbHVlLmF1dG9mb3JtPy50eXBlID09IFwidGFibGVcIlxuXHRcdFx0XHRpc193aWRlXzIgPSB0cnVlXG5cbiNcdFx0XHRpZiB2YWx1ZS5hdXRvZm9ybT8uaXNfcmFuZ2VcbiNcdFx0XHRcdGlzX3JhbmdlXzIgPSB0cnVlXG5cblx0XHRpZiBTdGVlZG9zLmlzTW9iaWxlKClcblx0XHRcdGlzX3dpZGVfMSA9IHRydWVcblx0XHRcdGlzX3dpZGVfMiA9IHRydWVcblxuXHRcdGlmIGlzU2luZ2xlXG5cdFx0XHRmaWVsZHMucHVzaCBfa2V5cy5zbGljZShpLCBpKzEpXG5cdFx0XHRpICs9IDFcblx0XHRlbHNlXG4jXHRcdFx0aWYgIWlzX3JhbmdlXzEgJiYgaXNfcmFuZ2VfMlxuI1x0XHRcdFx0Y2hpbGRLZXlzID0gX2tleXMuc2xpY2UoaSwgaSsxKVxuI1x0XHRcdFx0Y2hpbGRLZXlzLnB1c2ggdW5kZWZpbmVkXG4jXHRcdFx0XHRmaWVsZHMucHVzaCBjaGlsZEtleXNcbiNcdFx0XHRcdGkgKz0gMVxuI1x0XHRcdGVsc2Vcblx0XHRcdGlmIGlzX3dpZGVfMVxuXHRcdFx0XHRmaWVsZHMucHVzaCBfa2V5cy5zbGljZShpLCBpKzEpXG5cdFx0XHRcdGkgKz0gMVxuXHRcdFx0ZWxzZSBpZiAhaXNfd2lkZV8xIGFuZCBpc193aWRlXzJcblx0XHRcdFx0Y2hpbGRLZXlzID0gX2tleXMuc2xpY2UoaSwgaSsxKVxuXHRcdFx0XHRjaGlsZEtleXMucHVzaCB1bmRlZmluZWRcblx0XHRcdFx0ZmllbGRzLnB1c2ggY2hpbGRLZXlzXG5cdFx0XHRcdGkgKz0gMVxuXHRcdFx0ZWxzZSBpZiAhaXNfd2lkZV8xIGFuZCAhaXNfd2lkZV8yXG5cdFx0XHRcdGNoaWxkS2V5cyA9IF9rZXlzLnNsaWNlKGksIGkrMSlcblx0XHRcdFx0aWYgX2tleXNbaSsxXVxuXHRcdFx0XHRcdGNoaWxkS2V5cy5wdXNoIF9rZXlzW2krMV1cblx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdGNoaWxkS2V5cy5wdXNoIHVuZGVmaW5lZFxuXHRcdFx0XHRmaWVsZHMucHVzaCBjaGlsZEtleXNcblx0XHRcdFx0aSArPSAyXG5cblx0cmV0dXJuIGZpZWxkc1xuXG5DcmVhdG9yLmlzRmlsdGVyVmFsdWVFbXB0eSA9ICh2KSAtPlxuXHRyZXR1cm4gdHlwZW9mIHYgPT0gXCJ1bmRlZmluZWRcIiB8fCB2ID09IG51bGwgfHwgTnVtYmVyLmlzTmFOKHYpIHx8IHYubGVuZ3RoID09IDBcblxuQ3JlYXRvci5nZXRGaWVsZERhdGFUeXBlID0gKG9iamVjdEZpZWxkcywga2V5KS0+XG5cdGlmIG9iamVjdEZpZWxkcyBhbmQga2V5XG5cdFx0cmVzdWx0ID0gb2JqZWN0RmllbGRzW2tleV0/LnR5cGVcblx0XHRpZiBbXCJmb3JtdWxhXCIsIFwic3VtbWFyeVwiXS5pbmRleE9mKHJlc3VsdCkgPiAtMVxuXHRcdFx0cmVzdWx0ID0gb2JqZWN0RmllbGRzW2tleV0uZGF0YV90eXBlXG5cdFx0IyBlbHNlIGlmIHJlc3VsdCA9PSBcInNlbGVjdFwiIGFuZCBvYmplY3RGaWVsZHNba2V5XT8uZGF0YV90eXBlIGFuZCBvYmplY3RGaWVsZHNba2V5XS5kYXRhX3R5cGUgIT0gXCJ0ZXh0XCJcblx0XHQjIFx0cmVzdWx0ID0gb2JqZWN0RmllbGRzW2tleV0uZGF0YV90eXBlXG5cdFx0cmV0dXJuIHJlc3VsdFxuXHRlbHNlXG5cdFx0cmV0dXJuIFwidGV4dFwiXG5cbiMgRU5EXG5cbmlmIE1ldGVvci5pc1NlcnZlclxuXHRDcmVhdG9yLmdldEFsbFJlbGF0ZWRPYmplY3RzID0gKG9iamVjdF9uYW1lKS0+XG5cdFx0cmVsYXRlZF9vYmplY3RfbmFtZXMgPSBbXVxuXHRcdF8uZWFjaCBDcmVhdG9yLk9iamVjdHMsIChyZWxhdGVkX29iamVjdCwgcmVsYXRlZF9vYmplY3RfbmFtZSktPlxuXHRcdFx0Xy5lYWNoIHJlbGF0ZWRfb2JqZWN0LmZpZWxkcywgKHJlbGF0ZWRfZmllbGQsIHJlbGF0ZWRfZmllbGRfbmFtZSktPlxuXHRcdFx0XHRpZiByZWxhdGVkX2ZpZWxkLnR5cGUgPT0gXCJtYXN0ZXJfZGV0YWlsXCIgYW5kIHJlbGF0ZWRfZmllbGQucmVmZXJlbmNlX3RvIGFuZCByZWxhdGVkX2ZpZWxkLnJlZmVyZW5jZV90byA9PSBvYmplY3RfbmFtZVxuXHRcdFx0XHRcdHJlbGF0ZWRfb2JqZWN0X25hbWVzLnB1c2ggcmVsYXRlZF9vYmplY3RfbmFtZVxuXG5cdFx0aWYgQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpLmVuYWJsZV9maWxlc1xuXHRcdFx0cmVsYXRlZF9vYmplY3RfbmFtZXMucHVzaCBcImNtc19maWxlc1wiXG5cblx0XHRyZXR1cm4gcmVsYXRlZF9vYmplY3RfbmFtZXNcblxuaWYgTWV0ZW9yLmlzU2VydmVyXG5cdFN0ZWVkb3MuZm9ybWF0SW5kZXggPSAoYXJyYXkpIC0+XG5cdFx0b2JqZWN0ID0ge1xuICAgICAgICBcdGJhY2tncm91bmQ6IHRydWVcbiAgICBcdH07XG5cdFx0aXNkb2N1bWVudERCID0gTWV0ZW9yLnNldHRpbmdzPy5kYXRhc291cmNlcz8uZGVmYXVsdD8uZG9jdW1lbnREQiB8fCBmYWxzZTtcblx0XHRpZiBpc2RvY3VtZW50REJcblx0XHRcdGlmIGFycmF5Lmxlbmd0aCA+IDBcblx0XHRcdFx0aW5kZXhOYW1lID0gYXJyYXkuam9pbihcIi5cIik7XG5cdFx0XHRcdG9iamVjdC5uYW1lID0gaW5kZXhOYW1lO1xuXHRcdFx0XHRcblx0XHRcdFx0aWYgKGluZGV4TmFtZS5sZW5ndGggPiA1Milcblx0XHRcdFx0XHRvYmplY3QubmFtZSA9IGluZGV4TmFtZS5zdWJzdHJpbmcoMCw1Mik7XG5cblx0XHRyZXR1cm4gb2JqZWN0OyIsIkNyZWF0b3IuZ2V0U2NoZW1hID0gZnVuY3Rpb24ob2JqZWN0X25hbWUpIHtcbiAgdmFyIHJlZjtcbiAgcmV0dXJuIChyZWYgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSkpICE9IG51bGwgPyByZWYuc2NoZW1hIDogdm9pZCAwO1xufTtcblxuQ3JlYXRvci5nZXRPYmplY3RIb21lQ29tcG9uZW50ID0gZnVuY3Rpb24ob2JqZWN0X25hbWUpIHtcbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuQ3JlYXRvci5nZXRPYmplY3RVcmwgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBhcHBfaWQpIHtcbiAgdmFyIGxpc3RfdmlldywgbGlzdF92aWV3X2lkO1xuICBpZiAoIWFwcF9pZCkge1xuICAgIGFwcF9pZCA9IFNlc3Npb24uZ2V0KFwiYXBwX2lkXCIpO1xuICB9XG4gIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICBvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIik7XG4gIH1cbiAgbGlzdF92aWV3ID0gQ3JlYXRvci5nZXRMaXN0VmlldyhvYmplY3RfbmFtZSwgbnVsbCk7XG4gIGxpc3Rfdmlld19pZCA9IGxpc3RfdmlldyAhPSBudWxsID8gbGlzdF92aWV3Ll9pZCA6IHZvaWQgMDtcbiAgaWYgKHJlY29yZF9pZCkge1xuICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi92aWV3L1wiICsgcmVjb3JkX2lkKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoQ3JlYXRvci5nZXRPYmplY3RIb21lQ29tcG9uZW50KG9iamVjdF9uYW1lKSkge1xuICAgICAgcmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsaXN0X3ZpZXdfaWQpIHtcbiAgICAgICAgcmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2dyaWQvXCIgKyBsaXN0X3ZpZXdfaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5DcmVhdG9yLmdldE9iamVjdEFic29sdXRlVXJsID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgYXBwX2lkKSB7XG4gIHZhciBsaXN0X3ZpZXcsIGxpc3Rfdmlld19pZDtcbiAgaWYgKCFhcHBfaWQpIHtcbiAgICBhcHBfaWQgPSBTZXNzaW9uLmdldChcImFwcF9pZFwiKTtcbiAgfVxuICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgb2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpO1xuICB9XG4gIGxpc3RfdmlldyA9IENyZWF0b3IuZ2V0TGlzdFZpZXcob2JqZWN0X25hbWUsIG51bGwpO1xuICBsaXN0X3ZpZXdfaWQgPSBsaXN0X3ZpZXcgIT0gbnVsbCA/IGxpc3Rfdmlldy5faWQgOiB2b2lkIDA7XG4gIGlmIChyZWNvcmRfaWQpIHtcbiAgICByZXR1cm4gU3RlZWRvcy5hYnNvbHV0ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvdmlldy9cIiArIHJlY29yZF9pZCwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFN0ZWVkb3MuYWJzb2x1dGVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2dyaWQvXCIgKyBsaXN0X3ZpZXdfaWQsIHRydWUpO1xuICB9XG59O1xuXG5DcmVhdG9yLmdldE9iamVjdFJvdXRlclVybCA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIGFwcF9pZCkge1xuICB2YXIgbGlzdF92aWV3LCBsaXN0X3ZpZXdfaWQ7XG4gIGlmICghYXBwX2lkKSB7XG4gICAgYXBwX2lkID0gU2Vzc2lvbi5nZXQoXCJhcHBfaWRcIik7XG4gIH1cbiAgaWYgKCFvYmplY3RfbmFtZSkge1xuICAgIG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKTtcbiAgfVxuICBsaXN0X3ZpZXcgPSBDcmVhdG9yLmdldExpc3RWaWV3KG9iamVjdF9uYW1lLCBudWxsKTtcbiAgbGlzdF92aWV3X2lkID0gbGlzdF92aWV3ICE9IG51bGwgPyBsaXN0X3ZpZXcuX2lkIDogdm9pZCAwO1xuICBpZiAocmVjb3JkX2lkKSB7XG4gICAgcmV0dXJuIFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi92aWV3L1wiICsgcmVjb3JkX2lkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvZ3JpZC9cIiArIGxpc3Rfdmlld19pZDtcbiAgfVxufTtcblxuQ3JlYXRvci5nZXRMaXN0Vmlld1VybCA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBhcHBfaWQsIGxpc3Rfdmlld19pZCkge1xuICB2YXIgdXJsO1xuICB1cmwgPSBDcmVhdG9yLmdldExpc3RWaWV3UmVsYXRpdmVVcmwob2JqZWN0X25hbWUsIGFwcF9pZCwgbGlzdF92aWV3X2lkKTtcbiAgcmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwodXJsKTtcbn07XG5cbkNyZWF0b3IuZ2V0TGlzdFZpZXdSZWxhdGl2ZVVybCA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBhcHBfaWQsIGxpc3Rfdmlld19pZCkge1xuICByZXR1cm4gXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2dyaWQvXCIgKyBsaXN0X3ZpZXdfaWQ7XG59O1xuXG5DcmVhdG9yLmdldFN3aXRjaExpc3RVcmwgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgYXBwX2lkLCBsaXN0X3ZpZXdfaWQpIHtcbiAgaWYgKGxpc3Rfdmlld19pZCkge1xuICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9cIiArIGxpc3Rfdmlld19pZCArIFwiL2xpc3RcIik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2xpc3Qvc3dpdGNoXCIpO1xuICB9XG59O1xuXG5DcmVhdG9yLmdldFJlbGF0ZWRPYmplY3RVcmwgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgYXBwX2lkLCByZWNvcmRfaWQsIHJlbGF0ZWRfb2JqZWN0X25hbWUsIHJlbGF0ZWRfZmllbGRfbmFtZSkge1xuICBpZiAocmVsYXRlZF9maWVsZF9uYW1lKSB7XG4gICAgcmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL1wiICsgcmVjb3JkX2lkICsgXCIvXCIgKyByZWxhdGVkX29iamVjdF9uYW1lICsgXCIvZ3JpZD9yZWxhdGVkX2ZpZWxkX25hbWU9XCIgKyByZWxhdGVkX2ZpZWxkX25hbWUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9cIiArIHJlY29yZF9pZCArIFwiL1wiICsgcmVsYXRlZF9vYmplY3RfbmFtZSArIFwiL2dyaWRcIik7XG4gIH1cbn07XG5cbkNyZWF0b3IuZ2V0T2JqZWN0TG9va3VwRmllbGRPcHRpb25zID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIGlzX2RlZXAsIGlzX3NraXBfaGlkZSwgaXNfcmVsYXRlZCkge1xuICB2YXIgX29iamVjdCwgX29wdGlvbnMsIGZpZWxkcywgaWNvbiwgcmVsYXRlZE9iamVjdHM7XG4gIF9vcHRpb25zID0gW107XG4gIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICByZXR1cm4gX29wdGlvbnM7XG4gIH1cbiAgX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKTtcbiAgZmllbGRzID0gX29iamVjdCAhPSBudWxsID8gX29iamVjdC5maWVsZHMgOiB2b2lkIDA7XG4gIGljb24gPSBfb2JqZWN0ICE9IG51bGwgPyBfb2JqZWN0Lmljb24gOiB2b2lkIDA7XG4gIF8uZm9yRWFjaChmaWVsZHMsIGZ1bmN0aW9uKGYsIGspIHtcbiAgICBpZiAoaXNfc2tpcF9oaWRlICYmIGYuaGlkZGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChmLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICAgIHJldHVybiBfb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgbGFiZWw6IFwiXCIgKyAoZi5sYWJlbCB8fCBrKSxcbiAgICAgICAgdmFsdWU6IFwiXCIgKyBrLFxuICAgICAgICBpY29uOiBpY29uXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIF9vcHRpb25zLnB1c2goe1xuICAgICAgICBsYWJlbDogZi5sYWJlbCB8fCBrLFxuICAgICAgICB2YWx1ZTogayxcbiAgICAgICAgaWNvbjogaWNvblxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgaWYgKGlzX2RlZXApIHtcbiAgICBfLmZvckVhY2goZmllbGRzLCBmdW5jdGlvbihmLCBrKSB7XG4gICAgICB2YXIgcl9vYmplY3Q7XG4gICAgICBpZiAoaXNfc2tpcF9oaWRlICYmIGYuaGlkZGVuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICgoZi50eXBlID09PSBcImxvb2t1cFwiIHx8IGYudHlwZSA9PT0gXCJtYXN0ZXJfZGV0YWlsXCIpICYmIGYucmVmZXJlbmNlX3RvICYmIF8uaXNTdHJpbmcoZi5yZWZlcmVuY2VfdG8pKSB7XG4gICAgICAgIHJfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3QoZi5yZWZlcmVuY2VfdG8pO1xuICAgICAgICBpZiAocl9vYmplY3QpIHtcbiAgICAgICAgICByZXR1cm4gXy5mb3JFYWNoKHJfb2JqZWN0LmZpZWxkcywgZnVuY3Rpb24oZjIsIGsyKSB7XG4gICAgICAgICAgICByZXR1cm4gX29wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgIGxhYmVsOiAoZi5sYWJlbCB8fCBrKSArIFwiPT5cIiArIChmMi5sYWJlbCB8fCBrMiksXG4gICAgICAgICAgICAgIHZhbHVlOiBrICsgXCIuXCIgKyBrMixcbiAgICAgICAgICAgICAgaWNvbjogcl9vYmplY3QgIT0gbnVsbCA/IHJfb2JqZWN0Lmljb24gOiB2b2lkIDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgaWYgKGlzX3JlbGF0ZWQpIHtcbiAgICByZWxhdGVkT2JqZWN0cyA9IENyZWF0b3IuZ2V0UmVsYXRlZE9iamVjdHMob2JqZWN0X25hbWUpO1xuICAgIF8uZWFjaChyZWxhdGVkT2JqZWN0cywgKGZ1bmN0aW9uKF90aGlzKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24oX3JlbGF0ZWRPYmplY3QpIHtcbiAgICAgICAgdmFyIHJlbGF0ZWRPYmplY3QsIHJlbGF0ZWRPcHRpb25zO1xuICAgICAgICByZWxhdGVkT3B0aW9ucyA9IENyZWF0b3IuZ2V0T2JqZWN0TG9va3VwRmllbGRPcHRpb25zKF9yZWxhdGVkT2JqZWN0Lm9iamVjdF9uYW1lLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgcmVsYXRlZE9iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KF9yZWxhdGVkT2JqZWN0Lm9iamVjdF9uYW1lKTtcbiAgICAgICAgcmV0dXJuIF8uZWFjaChyZWxhdGVkT3B0aW9ucywgZnVuY3Rpb24ocmVsYXRlZE9wdGlvbikge1xuICAgICAgICAgIGlmIChfcmVsYXRlZE9iamVjdC5mb3JlaWduX2tleSAhPT0gcmVsYXRlZE9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIF9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICBsYWJlbDogKHJlbGF0ZWRPYmplY3QubGFiZWwgfHwgcmVsYXRlZE9iamVjdC5uYW1lKSArIFwiPT5cIiArIHJlbGF0ZWRPcHRpb24ubGFiZWwsXG4gICAgICAgICAgICAgIHZhbHVlOiByZWxhdGVkT2JqZWN0Lm5hbWUgKyBcIi5cIiArIHJlbGF0ZWRPcHRpb24udmFsdWUsXG4gICAgICAgICAgICAgIGljb246IHJlbGF0ZWRPYmplY3QgIT0gbnVsbCA/IHJlbGF0ZWRPYmplY3QuaWNvbiA6IHZvaWQgMFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgfSkodGhpcykpO1xuICB9XG4gIHJldHVybiBfb3B0aW9ucztcbn07XG5cbkNyZWF0b3IuZ2V0T2JqZWN0RmlsdGVyRmllbGRPcHRpb25zID0gZnVuY3Rpb24ob2JqZWN0X25hbWUpIHtcbiAgdmFyIF9vYmplY3QsIF9vcHRpb25zLCBmaWVsZHMsIGljb24sIHBlcm1pc3Npb25fZmllbGRzO1xuICBfb3B0aW9ucyA9IFtdO1xuICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgcmV0dXJuIF9vcHRpb25zO1xuICB9XG4gIF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk7XG4gIGZpZWxkcyA9IF9vYmplY3QgIT0gbnVsbCA/IF9vYmplY3QuZmllbGRzIDogdm9pZCAwO1xuICBwZXJtaXNzaW9uX2ZpZWxkcyA9IENyZWF0b3IuZ2V0RmllbGRzKG9iamVjdF9uYW1lKTtcbiAgaWNvbiA9IF9vYmplY3QgIT0gbnVsbCA/IF9vYmplY3QuaWNvbiA6IHZvaWQgMDtcbiAgXy5mb3JFYWNoKGZpZWxkcywgZnVuY3Rpb24oZiwgaykge1xuICAgIGlmICghXy5pbmNsdWRlKFtcImdyaWRcIiwgXCJvYmplY3RcIiwgXCJbT2JqZWN0XVwiLCBcIltvYmplY3RdXCIsIFwiT2JqZWN0XCIsIFwiYXZhdGFyXCIsIFwiaW1hZ2VcIiwgXCJtYXJrZG93blwiLCBcImh0bWxcIl0sIGYudHlwZSkgJiYgIWYuaGlkZGVuKSB7XG4gICAgICBpZiAoIS9cXHcrXFwuLy50ZXN0KGspICYmIF8uaW5kZXhPZihwZXJtaXNzaW9uX2ZpZWxkcywgaykgPiAtMSkge1xuICAgICAgICByZXR1cm4gX29wdGlvbnMucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IGYubGFiZWwgfHwgayxcbiAgICAgICAgICB2YWx1ZTogayxcbiAgICAgICAgICBpY29uOiBpY29uXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBfb3B0aW9ucztcbn07XG5cbkNyZWF0b3IuZ2V0T2JqZWN0RmllbGRPcHRpb25zID0gZnVuY3Rpb24ob2JqZWN0X25hbWUpIHtcbiAgdmFyIF9vYmplY3QsIF9vcHRpb25zLCBmaWVsZHMsIGljb24sIHBlcm1pc3Npb25fZmllbGRzO1xuICBfb3B0aW9ucyA9IFtdO1xuICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgcmV0dXJuIF9vcHRpb25zO1xuICB9XG4gIF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk7XG4gIGZpZWxkcyA9IF9vYmplY3QgIT0gbnVsbCA/IF9vYmplY3QuZmllbGRzIDogdm9pZCAwO1xuICBwZXJtaXNzaW9uX2ZpZWxkcyA9IENyZWF0b3IuZ2V0RmllbGRzKG9iamVjdF9uYW1lKTtcbiAgaWNvbiA9IF9vYmplY3QgIT0gbnVsbCA/IF9vYmplY3QuaWNvbiA6IHZvaWQgMDtcbiAgXy5mb3JFYWNoKGZpZWxkcywgZnVuY3Rpb24oZiwgaykge1xuICAgIGlmICghXy5pbmNsdWRlKFtcImdyaWRcIiwgXCJvYmplY3RcIiwgXCJbT2JqZWN0XVwiLCBcIltvYmplY3RdXCIsIFwiT2JqZWN0XCIsIFwibWFya2Rvd25cIiwgXCJodG1sXCJdLCBmLnR5cGUpKSB7XG4gICAgICBpZiAoIS9cXHcrXFwuLy50ZXN0KGspICYmIF8uaW5kZXhPZihwZXJtaXNzaW9uX2ZpZWxkcywgaykgPiAtMSkge1xuICAgICAgICByZXR1cm4gX29wdGlvbnMucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IGYubGFiZWwgfHwgayxcbiAgICAgICAgICB2YWx1ZTogayxcbiAgICAgICAgICBpY29uOiBpY29uXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBfb3B0aW9ucztcbn07XG5cblxuLypcbmZpbHRlcnM6IOimgei9rOaNoueahGZpbHRlcnNcbmZpZWxkczog5a+56LGh5a2X5q61XG5maWx0ZXJfZmllbGRzOiDpu5jorqTov4fmu6TlrZfmrrXvvIzmlK/mjIHlrZfnrKbkuLLmlbDnu4Tlkozlr7nosaHmlbDnu4TkuKTnp43moLzlvI/vvIzlpoI6WydmaWxlZF9uYW1lMScsJ2ZpbGVkX25hbWUyJ10sW3tmaWVsZDonZmlsZWRfbmFtZTEnLHJlcXVpcmVkOnRydWV9XVxu5aSE55CG6YC76L6ROiDmiopmaWx0ZXJz5Lit5a2Y5Zyo5LqOZmlsdGVyX2ZpZWxkc+eahOi/h+a7pOadoeS7tuWinuWKoOavj+mhueeahGlzX2RlZmF1bHTjgIFpc19yZXF1aXJlZOWxnuaAp++8jOS4jeWtmOWcqOS6jmZpbHRlcl9maWVsZHPnmoTov4fmu6TmnaHku7blr7nlupTnmoTnp7vpmaTmr4/pobnnmoTnm7jlhbPlsZ7mgKdcbui/lOWbnue7k+aenDog5aSE55CG5ZCO55qEZmlsdGVyc1xuICovXG5cbkNyZWF0b3IuZ2V0RmlsdGVyc1dpdGhGaWx0ZXJGaWVsZHMgPSBmdW5jdGlvbihmaWx0ZXJzLCBmaWVsZHMsIGZpbHRlcl9maWVsZHMpIHtcbiAgaWYgKCFmaWx0ZXJzKSB7XG4gICAgZmlsdGVycyA9IFtdO1xuICB9XG4gIGlmICghZmlsdGVyX2ZpZWxkcykge1xuICAgIGZpbHRlcl9maWVsZHMgPSBbXTtcbiAgfVxuICBpZiAoZmlsdGVyX2ZpZWxkcyAhPSBudWxsID8gZmlsdGVyX2ZpZWxkcy5sZW5ndGggOiB2b2lkIDApIHtcbiAgICBmaWx0ZXJfZmllbGRzLmZvckVhY2goZnVuY3Rpb24obikge1xuICAgICAgaWYgKF8uaXNTdHJpbmcobikpIHtcbiAgICAgICAgbiA9IHtcbiAgICAgICAgICBmaWVsZDogbixcbiAgICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZHNbbi5maWVsZF0gJiYgIV8uZmluZFdoZXJlKGZpbHRlcnMsIHtcbiAgICAgICAgZmllbGQ6IG4uZmllbGRcbiAgICAgIH0pKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBuLmZpZWxkLFxuICAgICAgICAgIGlzX2RlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgaXNfcmVxdWlyZWQ6IG4ucmVxdWlyZWRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgZmlsdGVycy5mb3JFYWNoKGZ1bmN0aW9uKGZpbHRlckl0ZW0pIHtcbiAgICB2YXIgbWF0Y2hGaWVsZDtcbiAgICBtYXRjaEZpZWxkID0gZmlsdGVyX2ZpZWxkcy5maW5kKGZ1bmN0aW9uKG4pIHtcbiAgICAgIHJldHVybiBuID09PSBmaWx0ZXJJdGVtLmZpZWxkIHx8IG4uZmllbGQgPT09IGZpbHRlckl0ZW0uZmllbGQ7XG4gICAgfSk7XG4gICAgaWYgKF8uaXNTdHJpbmcobWF0Y2hGaWVsZCkpIHtcbiAgICAgIG1hdGNoRmllbGQgPSB7XG4gICAgICAgIGZpZWxkOiBtYXRjaEZpZWxkLFxuICAgICAgICByZXF1aXJlZDogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChtYXRjaEZpZWxkKSB7XG4gICAgICBmaWx0ZXJJdGVtLmlzX2RlZmF1bHQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGZpbHRlckl0ZW0uaXNfcmVxdWlyZWQgPSBtYXRjaEZpZWxkLnJlcXVpcmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgZmlsdGVySXRlbS5pc19kZWZhdWx0O1xuICAgICAgcmV0dXJuIGRlbGV0ZSBmaWx0ZXJJdGVtLmlzX3JlcXVpcmVkO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBmaWx0ZXJzO1xufTtcblxuQ3JlYXRvci5nZXRPYmplY3RSZWNvcmQgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBzZWxlY3RfZmllbGRzLCBleHBhbmQpIHtcbiAgdmFyIGNvbGxlY3Rpb24sIG9iaiwgcmVjb3JkLCByZWYsIHJlZjEsIHJlZjI7XG4gIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICBvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIik7XG4gIH1cbiAgaWYgKCFyZWNvcmRfaWQpIHtcbiAgICByZWNvcmRfaWQgPSBTZXNzaW9uLmdldChcInJlY29yZF9pZFwiKTtcbiAgfVxuICBpZiAoTWV0ZW9yLmlzQ2xpZW50KSB7XG4gICAgaWYgKG9iamVjdF9uYW1lID09PSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpICYmIHJlY29yZF9pZCA9PT0gU2Vzc2lvbi5nZXQoXCJyZWNvcmRfaWRcIikpIHtcbiAgICAgIGlmICgocmVmID0gVGVtcGxhdGUuaW5zdGFuY2UoKSkgIT0gbnVsbCA/IHJlZi5yZWNvcmQgOiB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIChyZWYxID0gVGVtcGxhdGUuaW5zdGFuY2UoKSkgIT0gbnVsbCA/IChyZWYyID0gcmVmMS5yZWNvcmQpICE9IG51bGwgPyByZWYyLmdldCgpIDogdm9pZCAwIDogdm9pZCAwO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQ3JlYXRvci5vZGF0YS5nZXQob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgc2VsZWN0X2ZpZWxkcywgZXhwYW5kKTtcbiAgICB9XG4gIH1cbiAgb2JqID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpO1xuICBpZiAob2JqLmRhdGFiYXNlX25hbWUgPT09IFwibWV0ZW9yXCIgfHwgIW9iai5kYXRhYmFzZV9uYW1lKSB7XG4gICAgY29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmplY3RfbmFtZSk7XG4gICAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgIHJlY29yZCA9IGNvbGxlY3Rpb24uZmluZE9uZShyZWNvcmRfaWQpO1xuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9XG4gIH0gZWxzZSBpZiAob2JqZWN0X25hbWUgJiYgcmVjb3JkX2lkKSB7XG4gICAgcmV0dXJuIENyZWF0b3Iub2RhdGEuZ2V0KG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIHNlbGVjdF9maWVsZHMsIGV4cGFuZCk7XG4gIH1cbn07XG5cbkNyZWF0b3IuZ2V0T2JqZWN0UmVjb3JkTmFtZSA9IGZ1bmN0aW9uKHJlY29yZCwgb2JqZWN0X25hbWUpIHtcbiAgdmFyIG5hbWVfZmllbGRfa2V5LCByZWY7XG4gIGlmICghcmVjb3JkKSB7XG4gICAgcmVjb3JkID0gQ3JlYXRvci5nZXRPYmplY3RSZWNvcmQoKTtcbiAgfVxuICBpZiAocmVjb3JkKSB7XG4gICAgbmFtZV9maWVsZF9rZXkgPSBvYmplY3RfbmFtZSA9PT0gXCJvcmdhbml6YXRpb25zXCIgPyBcIm5hbWVcIiA6IChyZWYgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSkpICE9IG51bGwgPyByZWYuTkFNRV9GSUVMRF9LRVkgOiB2b2lkIDA7XG4gICAgaWYgKHJlY29yZCAmJiBuYW1lX2ZpZWxkX2tleSkge1xuICAgICAgcmV0dXJuIHJlY29yZC5sYWJlbCB8fCByZWNvcmRbbmFtZV9maWVsZF9rZXldO1xuICAgIH1cbiAgfVxufTtcblxuQ3JlYXRvci5nZXRBcHAgPSBmdW5jdGlvbihhcHBfaWQpIHtcbiAgdmFyIGFwcE1lbnVzLCBjdXJyZW50QXBwO1xuICBhcHBNZW51cyA9IFNlc3Npb24uZ2V0KFwiX2FwcF9tZW51c1wiKSB8fCBTZXNzaW9uLmdldChcImFwcF9tZW51c1wiKTtcbiAgaWYgKCFhcHBNZW51cykge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjdXJyZW50QXBwID0gYXBwTWVudXMuZmluZChmdW5jdGlvbihtZW51SXRlbSkge1xuICAgIHJldHVybiBtZW51SXRlbS5pZCA9PT0gYXBwX2lkO1xuICB9KTtcbiAgcmV0dXJuIGN1cnJlbnRBcHA7XG59O1xuXG5DcmVhdG9yLmdldEFwcERhc2hib2FyZCA9IGZ1bmN0aW9uKGFwcF9pZCkge1xuICB2YXIgYXBwLCBkYXNoYm9hcmQ7XG4gIGFwcCA9IENyZWF0b3IuZ2V0QXBwKGFwcF9pZCk7XG4gIGlmICghYXBwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGRhc2hib2FyZCA9IG51bGw7XG4gIF8uZWFjaChDcmVhdG9yLkRhc2hib2FyZHMsIGZ1bmN0aW9uKHYsIGspIHtcbiAgICB2YXIgcmVmO1xuICAgIGlmICgoKHJlZiA9IHYuYXBwcykgIT0gbnVsbCA/IHJlZi5pbmRleE9mKGFwcC5faWQpIDogdm9pZCAwKSA+IC0xKSB7XG4gICAgICByZXR1cm4gZGFzaGJvYXJkID0gdjtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZGFzaGJvYXJkO1xufTtcblxuQ3JlYXRvci5nZXRBcHBEYXNoYm9hcmRDb21wb25lbnQgPSBmdW5jdGlvbihhcHBfaWQpIHtcbiAgdmFyIGFwcDtcbiAgYXBwID0gQ3JlYXRvci5nZXRBcHAoYXBwX2lkKTtcbiAgaWYgKCFhcHAgfHwgdHJ1ZSkge1xuXG4gIH1cbn07XG5cbkNyZWF0b3IuZ2V0QXBwT2JqZWN0TmFtZXMgPSBmdW5jdGlvbihhcHBfaWQpIHtcbiAgdmFyIGFwcCwgYXBwT2JqZWN0cywgaXNNb2JpbGUsIG9iamVjdHM7XG4gIGFwcCA9IENyZWF0b3IuZ2V0QXBwKGFwcF9pZCk7XG4gIGlmICghYXBwKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlzTW9iaWxlID0gU3RlZWRvcy5pc01vYmlsZSgpO1xuICBhcHBPYmplY3RzID0gaXNNb2JpbGUgPyBhcHAubW9iaWxlX29iamVjdHMgOiBhcHAub2JqZWN0cztcbiAgb2JqZWN0cyA9IFtdO1xuICBpZiAoYXBwKSB7XG4gICAgXy5lYWNoKGFwcE9iamVjdHMsIGZ1bmN0aW9uKHYpIHtcbiAgICAgIHZhciBvYmo7XG4gICAgICBvYmogPSBDcmVhdG9yLmdldE9iamVjdCh2KTtcbiAgICAgIGlmIChvYmogIT0gbnVsbCA/IG9iai5wZXJtaXNzaW9ucy5nZXQoKS5hbGxvd1JlYWQgOiB2b2lkIDApIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdHMucHVzaCh2KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gb2JqZWN0cztcbn07XG5cbkNyZWF0b3IuZ2V0VXJsV2l0aFRva2VuID0gZnVuY3Rpb24odXJsLCBleHByZXNzaW9uRm9ybURhdGEpIHtcbiAgdmFyIGhhc1F1ZXJ5U3ltYm9sLCBsaW5rU3RyLCBwYXJhbXM7XG4gIHBhcmFtcyA9IHt9O1xuICBwYXJhbXNbXCJYLVNwYWNlLUlkXCJdID0gU3RlZWRvcy5zcGFjZUlkKCk7XG4gIHBhcmFtc1tcIlgtVXNlci1JZFwiXSA9IFN0ZWVkb3MudXNlcklkKCk7XG4gIHBhcmFtc1tcIlgtQ29tcGFueS1JZHNcIl0gPSBTdGVlZG9zLmdldFVzZXJDb21wYW55SWRzKCk7XG4gIHBhcmFtc1tcIlgtQXV0aC1Ub2tlblwiXSA9IEFjY291bnRzLl9zdG9yZWRMb2dpblRva2VuKCk7XG4gIGlmIChTdGVlZG9zLmlzRXhwcmVzc2lvbih1cmwpKSB7XG4gICAgdXJsID0gU3RlZWRvcy5wYXJzZVNpbmdsZUV4cHJlc3Npb24odXJsLCBleHByZXNzaW9uRm9ybURhdGEsIFwiI1wiLCBDcmVhdG9yLlVTRVJfQ09OVEVYVCk7XG4gIH1cbiAgaGFzUXVlcnlTeW1ib2wgPSAvKFxcIy4rXFw/KXwoXFw/W14jXSokKS9nLnRlc3QodXJsKTtcbiAgbGlua1N0ciA9IGhhc1F1ZXJ5U3ltYm9sID8gXCImXCIgOiBcIj9cIjtcbiAgcmV0dXJuIFwiXCIgKyB1cmwgKyBsaW5rU3RyICsgKCQucGFyYW0ocGFyYW1zKSk7XG59O1xuXG5DcmVhdG9yLmdldEFwcE1lbnUgPSBmdW5jdGlvbihhcHBfaWQsIG1lbnVfaWQpIHtcbiAgdmFyIG1lbnVzO1xuICBtZW51cyA9IENyZWF0b3IuZ2V0QXBwTWVudXMoYXBwX2lkKTtcbiAgcmV0dXJuIG1lbnVzICYmIG1lbnVzLmZpbmQoZnVuY3Rpb24obWVudSkge1xuICAgIHJldHVybiBtZW51LmlkID09PSBtZW51X2lkO1xuICB9KTtcbn07XG5cbkNyZWF0b3IuZ2V0QXBwTWVudVVybEZvckludGVybmV0ID0gZnVuY3Rpb24obWVudSkge1xuICByZXR1cm4gQ3JlYXRvci5nZXRVcmxXaXRoVG9rZW4obWVudS5wYXRoLCBtZW51KTtcbn07XG5cbkNyZWF0b3IuZ2V0QXBwTWVudVVybCA9IGZ1bmN0aW9uKG1lbnUpIHtcbiAgdmFyIHVybDtcbiAgdXJsID0gbWVudS5wYXRoO1xuICBpZiAobWVudS50eXBlID09PSBcInVybFwiKSB7XG4gICAgaWYgKG1lbnUudGFyZ2V0KSB7XG4gICAgICByZXR1cm4gQ3JlYXRvci5nZXRBcHBNZW51VXJsRm9ySW50ZXJuZXQobWVudSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIi9hcHAvLS90YWJfaWZyYW1lL1wiICsgbWVudS5pZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1lbnUucGF0aDtcbiAgfVxufTtcblxuQ3JlYXRvci5nZXRBcHBNZW51cyA9IGZ1bmN0aW9uKGFwcF9pZCkge1xuICB2YXIgYXBwTWVudXMsIGN1cmVudEFwcE1lbnVzO1xuICBhcHBNZW51cyA9IFNlc3Npb24uZ2V0KFwiX2FwcF9tZW51c1wiKSB8fCBTZXNzaW9uLmdldChcImFwcF9tZW51c1wiKTtcbiAgaWYgKCFhcHBNZW51cykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBjdXJlbnRBcHBNZW51cyA9IGFwcE1lbnVzLmZpbmQoZnVuY3Rpb24obWVudUl0ZW0pIHtcbiAgICByZXR1cm4gbWVudUl0ZW0uaWQgPT09IGFwcF9pZDtcbiAgfSk7XG4gIGlmIChjdXJlbnRBcHBNZW51cykge1xuICAgIHJldHVybiBjdXJlbnRBcHBNZW51cy5jaGlsZHJlbjtcbiAgfVxufTtcblxuQ3JlYXRvci5sb2FkQXBwc01lbnVzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBkYXRhLCBpc01vYmlsZSwgb3B0aW9ucztcbiAgaXNNb2JpbGUgPSBTdGVlZG9zLmlzTW9iaWxlKCk7XG4gIGRhdGEgPSB7fTtcbiAgaWYgKGlzTW9iaWxlKSB7XG4gICAgZGF0YS5tb2JpbGUgPSBpc01vYmlsZTtcbiAgfVxuICBvcHRpb25zID0ge1xuICAgIHR5cGU6ICdnZXQnLFxuICAgIGRhdGE6IGRhdGEsXG4gICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xuICAgICAgcmV0dXJuIFNlc3Npb24uc2V0KFwiYXBwX21lbnVzXCIsIGRhdGEpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHR5cGVvZiBTdGVlZG9zICE9PSBcInVuZGVmaW5lZFwiICYmIFN0ZWVkb3MgIT09IG51bGwgPyBTdGVlZG9zLmF1dGhSZXF1ZXN0KFwiL3NlcnZpY2UvYXBpL2FwcHMvbWVudXNcIiwgb3B0aW9ucykgOiB2b2lkIDA7XG59O1xuXG5DcmVhdG9yLmNyZWF0b3JBcHBzU2VsZWN0b3IgPSBmdW5jdGlvbihhcHBzLCBhc3NpZ25lZF9hcHBzKSB7XG4gIHZhciBhZG1pbkFwcCwgY3JlYXRvckFwcHMsIHNvcnRlZEFwcHM7XG4gIGFkbWluQXBwID0gdm9pZCAwO1xuICBzb3J0ZWRBcHBzID0gdm9pZCAwO1xuICBfLmVhY2goYXBwcywgZnVuY3Rpb24oYXBwLCBrZXkpIHtcbiAgICBpZiAoIWFwcC5faWQpIHtcbiAgICAgIGFwcC5faWQgPSBrZXk7XG4gICAgfVxuICAgIGlmIChhcHAuaXNfY3JlYXRvcikge1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwcC52aXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAgc29ydGVkQXBwcyA9IF8uc29ydEJ5KF8udmFsdWVzKGFwcHMpLCAnc29ydCcpO1xuICBjcmVhdG9yQXBwcyA9IHt9O1xuICBhZG1pbkFwcCA9IHt9O1xuICBfLmVhY2goc29ydGVkQXBwcywgZnVuY3Rpb24obikge1xuICAgIGlmIChuLl9pZCA9PT0gJ2FkbWluJykge1xuICAgICAgcmV0dXJuIGFkbWluQXBwID0gbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNyZWF0b3JBcHBzW24uX2lkXSA9IG47XG4gICAgfVxuICB9KTtcbiAgY3JlYXRvckFwcHMuYWRtaW4gPSBhZG1pbkFwcDtcbiAgaWYgKGFzc2lnbmVkX2FwcHMubGVuZ3RoKSB7XG4gICAgXy5lYWNoKGNyZWF0b3JBcHBzLCBmdW5jdGlvbihhcHAsIGtleSkge1xuICAgICAgaWYgKGFzc2lnbmVkX2FwcHMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICAgICAgYXBwLnZpc2libGUgPSBhcHAuaXNfY3JlYXRvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFwcC52aXNpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGNyZWF0b3JBcHBzO1xufTtcblxuQ3JlYXRvci52aXNpYmxlQXBwc1NlbGVjdG9yID0gZnVuY3Rpb24oY3JlYXRvckFwcHMsIGluY2x1ZGVBZG1pbikge1xuICB2YXIgYXBwcztcbiAgaWYgKGluY2x1ZGVBZG1pbiA9PSBudWxsKSB7XG4gICAgaW5jbHVkZUFkbWluID0gdHJ1ZTtcbiAgfVxuICBhcHBzID0gW107XG4gIF8uZWFjaChjcmVhdG9yQXBwcywgZnVuY3Rpb24odiwgaykge1xuICAgIGlmICh2LnZpc2libGUgIT09IGZhbHNlICYmIHYuX2lkICE9PSAnYWRtaW4nIHx8IGluY2x1ZGVBZG1pbiAmJiB2Ll9pZCA9PT0gJ2FkbWluJykge1xuICAgICAgYXBwcy5wdXNoKHYpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBhcHBzO1xufTtcblxuQ3JlYXRvci5nZXRWaXNpYmxlQXBwcyA9IGZ1bmN0aW9uKGluY2x1ZGVBZG1pbikge1xuICB2YXIgY2hhbmdlQXBwLCBjcmVhdG9yQXBwcztcbiAgY2hhbmdlQXBwID0gQ3JlYXRvci5fc3ViQXBwLmdldCgpO1xuICBjcmVhdG9yQXBwcyA9IE9iamVjdC5hc3NpZ24oe30sIENyZWF0b3IuQXBwcywge1xuICAgIGFwcHM6IGNoYW5nZUFwcFxuICB9KTtcbiAgcmV0dXJuIENyZWF0b3IudmlzaWJsZUFwcHNTZWxlY3RvcihjcmVhdG9yQXBwcywgaW5jbHVkZUFkbWluKTtcbn07XG5cbkNyZWF0b3IuZ2V0VmlzaWJsZUFwcHNPYmplY3RzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBhcHBzLCBvYmplY3RzLCB2aXNpYmxlT2JqZWN0TmFtZXM7XG4gIGFwcHMgPSBDcmVhdG9yLmdldFZpc2libGVBcHBzKCk7XG4gIHZpc2libGVPYmplY3ROYW1lcyA9IF8uZmxhdHRlbihfLnBsdWNrKGFwcHMsICdvYmplY3RzJykpO1xuICBvYmplY3RzID0gXy5maWx0ZXIoQ3JlYXRvci5PYmplY3RzLCBmdW5jdGlvbihvYmopIHtcbiAgICBpZiAodmlzaWJsZU9iamVjdE5hbWVzLmluZGV4T2Yob2JqLm5hbWUpIDwgMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuICBvYmplY3RzID0gb2JqZWN0cy5zb3J0KENyZWF0b3Iuc29ydGluZ01ldGhvZC5iaW5kKHtcbiAgICBrZXk6IFwibGFiZWxcIlxuICB9KSk7XG4gIG9iamVjdHMgPSBfLnBsdWNrKG9iamVjdHMsICduYW1lJyk7XG4gIHJldHVybiBfLnVuaXEob2JqZWN0cyk7XG59O1xuXG5DcmVhdG9yLmdldEFwcHNPYmplY3RzID0gZnVuY3Rpb24oKSB7XG4gIHZhciBvYmplY3RzLCB0ZW1wT2JqZWN0cztcbiAgb2JqZWN0cyA9IFtdO1xuICB0ZW1wT2JqZWN0cyA9IFtdO1xuICBfLmZvckVhY2goQ3JlYXRvci5BcHBzLCBmdW5jdGlvbihhcHApIHtcbiAgICB0ZW1wT2JqZWN0cyA9IF8uZmlsdGVyKGFwcC5vYmplY3RzLCBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiAhb2JqLmhpZGRlbjtcbiAgICB9KTtcbiAgICByZXR1cm4gb2JqZWN0cyA9IG9iamVjdHMuY29uY2F0KHRlbXBPYmplY3RzKTtcbiAgfSk7XG4gIHJldHVybiBfLnVuaXEob2JqZWN0cyk7XG59O1xuXG5DcmVhdG9yLnZhbGlkYXRlRmlsdGVycyA9IGZ1bmN0aW9uKGZpbHRlcnMsIGxvZ2ljKSB7XG4gIHZhciBlLCBlcnJvck1zZywgZmlsdGVyX2l0ZW1zLCBmaWx0ZXJfbGVuZ3RoLCBmbGFnLCBpbmRleCwgd29yZDtcbiAgZmlsdGVyX2l0ZW1zID0gXy5tYXAoZmlsdGVycywgZnVuY3Rpb24ob2JqKSB7XG4gICAgaWYgKF8uaXNFbXB0eShvYmopKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICB9KTtcbiAgZmlsdGVyX2l0ZW1zID0gXy5jb21wYWN0KGZpbHRlcl9pdGVtcyk7XG4gIGVycm9yTXNnID0gXCJcIjtcbiAgZmlsdGVyX2xlbmd0aCA9IGZpbHRlcl9pdGVtcy5sZW5ndGg7XG4gIGlmIChsb2dpYykge1xuICAgIGxvZ2ljID0gbG9naWMucmVwbGFjZSgvXFxuL2csIFwiXCIpLnJlcGxhY2UoL1xccysvZywgXCIgXCIpO1xuICAgIGlmICgvWy5fXFwtIStdKy9pZy50ZXN0KGxvZ2ljKSkge1xuICAgICAgZXJyb3JNc2cgPSBcIuWQq+acieeJueauiuWtl+espuOAglwiO1xuICAgIH1cbiAgICBpZiAoIWVycm9yTXNnKSB7XG4gICAgICBpbmRleCA9IGxvZ2ljLm1hdGNoKC9cXGQrL2lnKTtcbiAgICAgIGlmICghaW5kZXgpIHtcbiAgICAgICAgZXJyb3JNc2cgPSBcIuacieS6m+etm+mAieadoeS7tui/m+ihjOS6huWumuS5ie+8jOS9huacquWcqOmrmOe6p+etm+mAieadoeS7tuS4reiiq+W8leeUqOOAglwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5kZXguZm9yRWFjaChmdW5jdGlvbihpKSB7XG4gICAgICAgICAgaWYgKGkgPCAxIHx8IGkgPiBmaWx0ZXJfbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3JNc2cgPSBcIuaCqOeahOetm+mAieadoeS7tuW8leeUqOS6huacquWumuS5ieeahOetm+mAieWZqO+8mlwiICsgaSArIFwi44CCXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgZmxhZyA9IDE7XG4gICAgICAgIHdoaWxlIChmbGFnIDw9IGZpbHRlcl9sZW5ndGgpIHtcbiAgICAgICAgICBpZiAoIWluZGV4LmluY2x1ZGVzKFwiXCIgKyBmbGFnKSkge1xuICAgICAgICAgICAgZXJyb3JNc2cgPSBcIuacieS6m+etm+mAieadoeS7tui/m+ihjOS6huWumuS5ie+8jOS9huacquWcqOmrmOe6p+etm+mAieadoeS7tuS4reiiq+W8leeUqOOAglwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmbGFnKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFlcnJvck1zZykge1xuICAgICAgd29yZCA9IGxvZ2ljLm1hdGNoKC9bYS16QS1aXSsvaWcpO1xuICAgICAgaWYgKHdvcmQpIHtcbiAgICAgICAgd29yZC5mb3JFYWNoKGZ1bmN0aW9uKHcpIHtcbiAgICAgICAgICBpZiAoIS9eKGFuZHxvcikkL2lnLnRlc3QodykpIHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvck1zZyA9IFwi5qOA5p+l5oKo55qE6auY57qn562b6YCJ5p2h5Lu25Lit55qE5ou85YaZ44CCXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFlcnJvck1zZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgQ3JlYXRvcltcImV2YWxcIl0obG9naWMucmVwbGFjZSgvYW5kL2lnLCBcIiYmXCIpLnJlcGxhY2UoL29yL2lnLCBcInx8XCIpKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGUgPSBlcnJvcjtcbiAgICAgICAgZXJyb3JNc2cgPSBcIuaCqOeahOetm+mAieWZqOS4reWQq+acieeJueauiuWtl+esplwiO1xuICAgICAgfVxuICAgICAgaWYgKC8oQU5EKVteKCldKyhPUikvaWcudGVzdChsb2dpYykgfHwgLyhPUilbXigpXSsoQU5EKS9pZy50ZXN0KGxvZ2ljKSkge1xuICAgICAgICBlcnJvck1zZyA9IFwi5oKo55qE562b6YCJ5Zmo5b+F6aG75Zyo6L+e57ut5oCn55qEIEFORCDlkowgT1Ig6KGo6L6+5byP5YmN5ZCO5L2/55So5ous5Y+344CCXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChlcnJvck1zZykge1xuICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3JNc2cpO1xuICAgIGlmIChNZXRlb3IuaXNDbGllbnQpIHtcbiAgICAgIHRvYXN0ci5lcnJvcihlcnJvck1zZyk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcblxuXG4vKlxub3B0aW9uc+WPguaVsO+8mlxuXHRleHRlbmQtLSDmmK/lkKbpnIDopoHmiorlvZPliY3nlKjmiLfln7rmnKzkv6Hmga/liqDlhaXlhazlvI/vvIzljbPorqnlhazlvI/mlK/mjIFDcmVhdG9yLlVTRVJfQ09OVEVYVOS4reeahOWAvO+8jOm7mOiupOS4unRydWVcblx0dXNlcklkLS0g5b2T5YmN55m75b2V55So5oi3XG5cdHNwYWNlSWQtLSDlvZPliY3miYDlnKjlt6XkvZzljLpcbmV4dGVuZOS4unRydWXml7bvvIzlkI7nq6/pnIDopoHpop3lpJbkvKDlhaV1c2VySWTlj4pzcGFjZUlk55So5LqO5oqT5Y+WQ3JlYXRvci5VU0VSX0NPTlRFWFTlr7nlupTnmoTlgLxcbiAqL1xuXG5DcmVhdG9yLmZvcm1hdEZpbHRlcnNUb01vbmdvID0gZnVuY3Rpb24oZmlsdGVycywgb3B0aW9ucykge1xuICB2YXIgc2VsZWN0b3I7XG4gIGlmICghKGZpbHRlcnMgIT0gbnVsbCA/IGZpbHRlcnMubGVuZ3RoIDogdm9pZCAwKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIShmaWx0ZXJzWzBdIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgZmlsdGVycyA9IF8ubWFwKGZpbHRlcnMsIGZ1bmN0aW9uKG9iaikge1xuICAgICAgcmV0dXJuIFtvYmouZmllbGQsIG9iai5vcGVyYXRpb24sIG9iai52YWx1ZV07XG4gICAgfSk7XG4gIH1cbiAgc2VsZWN0b3IgPSBbXTtcbiAgXy5lYWNoKGZpbHRlcnMsIGZ1bmN0aW9uKGZpbHRlcikge1xuICAgIHZhciBmaWVsZCwgb3B0aW9uLCByZWcsIHN1Yl9zZWxlY3RvciwgdmFsdWU7XG4gICAgZmllbGQgPSBmaWx0ZXJbMF07XG4gICAgb3B0aW9uID0gZmlsdGVyWzFdO1xuICAgIGlmIChNZXRlb3IuaXNDbGllbnQpIHtcbiAgICAgIHZhbHVlID0gQ3JlYXRvci5ldmFsdWF0ZUZvcm11bGEoZmlsdGVyWzJdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBDcmVhdG9yLmV2YWx1YXRlRm9ybXVsYShmaWx0ZXJbMl0sIG51bGwsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBzdWJfc2VsZWN0b3IgPSB7fTtcbiAgICBzdWJfc2VsZWN0b3JbZmllbGRdID0ge307XG4gICAgaWYgKG9wdGlvbiA9PT0gXCI9XCIpIHtcbiAgICAgIHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkZXFcIl0gPSB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbiA9PT0gXCI8PlwiKSB7XG4gICAgICBzdWJfc2VsZWN0b3JbZmllbGRdW1wiJG5lXCJdID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcHRpb24gPT09IFwiPlwiKSB7XG4gICAgICBzdWJfc2VsZWN0b3JbZmllbGRdW1wiJGd0XCJdID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcHRpb24gPT09IFwiPj1cIikge1xuICAgICAgc3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRndGVcIl0gPSB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbiA9PT0gXCI8XCIpIHtcbiAgICAgIHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkbHRcIl0gPSB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbiA9PT0gXCI8PVwiKSB7XG4gICAgICBzdWJfc2VsZWN0b3JbZmllbGRdW1wiJGx0ZVwiXSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcInN0YXJ0c3dpdGhcIikge1xuICAgICAgcmVnID0gbmV3IFJlZ0V4cChcIl5cIiArIHZhbHVlLCBcImlcIik7XG4gICAgICBzdWJfc2VsZWN0b3JbZmllbGRdW1wiJHJlZ2V4XCJdID0gcmVnO1xuICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcImNvbnRhaW5zXCIpIHtcbiAgICAgIHJlZyA9IG5ldyBSZWdFeHAodmFsdWUsIFwiaVwiKTtcbiAgICAgIHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkcmVnZXhcIl0gPSByZWc7XG4gICAgfSBlbHNlIGlmIChvcHRpb24gPT09IFwibm90Y29udGFpbnNcIikge1xuICAgICAgcmVnID0gbmV3IFJlZ0V4cChcIl4oKD8hXCIgKyB2YWx1ZSArIFwiKS4pKiRcIiwgXCJpXCIpO1xuICAgICAgc3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRyZWdleFwiXSA9IHJlZztcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdG9yLnB1c2goc3ViX3NlbGVjdG9yKTtcbiAgfSk7XG4gIHJldHVybiBzZWxlY3Rvcjtcbn07XG5cbkNyZWF0b3IuaXNCZXR3ZWVuRmlsdGVyT3BlcmF0aW9uID0gZnVuY3Rpb24ob3BlcmF0aW9uKSB7XG4gIHZhciByZWY7XG4gIHJldHVybiBvcGVyYXRpb24gPT09IFwiYmV0d2VlblwiIHx8ICEhKChyZWYgPSBDcmVhdG9yLmdldEJldHdlZW5UaW1lQnVpbHRpblZhbHVlcyh0cnVlKSkgIT0gbnVsbCA/IHJlZltvcGVyYXRpb25dIDogdm9pZCAwKTtcbn07XG5cblxuLypcbm9wdGlvbnPlj4LmlbDvvJpcblx0ZXh0ZW5kLS0g5piv5ZCm6ZyA6KaB5oqK5b2T5YmN55So5oi35Z+65pys5L+h5oGv5Yqg5YWl5YWs5byP77yM5Y2z6K6p5YWs5byP5pSv5oyBQ3JlYXRvci5VU0VSX0NPTlRFWFTkuK3nmoTlgLzvvIzpu5jorqTkuLp0cnVlXG5cdHVzZXJJZC0tIOW9k+WJjeeZu+W9leeUqOaIt1xuXHRzcGFjZUlkLS0g5b2T5YmN5omA5Zyo5bel5L2c5Yy6XG5cdGV4dGVuZOS4unRydWXml7bvvIzlkI7nq6/pnIDopoHpop3lpJbkvKDlhaV1c2VySWTlj4pzcGFjZUlk55So5LqO5oqT5Y+WQ3JlYXRvci5VU0VSX0NPTlRFWFTlr7nlupTnmoTlgLxcbiAqL1xuXG5DcmVhdG9yLmZvcm1hdEZpbHRlcnNUb0RldiA9IGZ1bmN0aW9uKGZpbHRlcnMsIG9iamVjdF9uYW1lLCBvcHRpb25zKSB7XG4gIHZhciBsb2dpY1RlbXBGaWx0ZXJzLCBzZWxlY3RvcjtcbiAgaWYgKCFmaWx0ZXJzLmxlbmd0aCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAob3B0aW9ucyAhPSBudWxsID8gb3B0aW9ucy5pc19sb2dpY19vciA6IHZvaWQgMCkge1xuICAgIGxvZ2ljVGVtcEZpbHRlcnMgPSBbXTtcbiAgICBmaWx0ZXJzLmZvckVhY2goZnVuY3Rpb24obikge1xuICAgICAgbG9naWNUZW1wRmlsdGVycy5wdXNoKG4pO1xuICAgICAgcmV0dXJuIGxvZ2ljVGVtcEZpbHRlcnMucHVzaChcIm9yXCIpO1xuICAgIH0pO1xuICAgIGxvZ2ljVGVtcEZpbHRlcnMucG9wKCk7XG4gICAgZmlsdGVycyA9IGxvZ2ljVGVtcEZpbHRlcnM7XG4gIH1cbiAgc2VsZWN0b3IgPSBTdGVlZG9zRmlsdGVycy5mb3JtYXRGaWx0ZXJzVG9EZXYoZmlsdGVycywgQ3JlYXRvci5VU0VSX0NPTlRFWFQpO1xuICByZXR1cm4gc2VsZWN0b3I7XG59O1xuXG5cbi8qXG5vcHRpb25z5Y+C5pWw77yaXG5cdGV4dGVuZC0tIOaYr+WQpumcgOimgeaKiuW9k+WJjeeUqOaIt+WfuuacrOS/oeaBr+WKoOWFpeWFrOW8j++8jOWNs+iuqeWFrOW8j+aUr+aMgUNyZWF0b3IuVVNFUl9DT05URVhU5Lit55qE5YC877yM6buY6K6k5Li6dHJ1ZVxuXHR1c2VySWQtLSDlvZPliY3nmbvlvZXnlKjmiLdcblx0c3BhY2VJZC0tIOW9k+WJjeaJgOWcqOW3peS9nOWMulxuZXh0ZW5k5Li6dHJ1ZeaXtu+8jOWQjuerr+mcgOimgemineWkluS8oOWFpXVzZXJJZOWPinNwYWNlSWTnlKjkuo7mipPlj5ZDcmVhdG9yLlVTRVJfQ09OVEVYVOWvueW6lOeahOWAvFxuICovXG5cbkNyZWF0b3IuZm9ybWF0TG9naWNGaWx0ZXJzVG9EZXYgPSBmdW5jdGlvbihmaWx0ZXJzLCBmaWx0ZXJfbG9naWMsIG9wdGlvbnMpIHtcbiAgdmFyIGZvcm1hdF9sb2dpYztcbiAgZm9ybWF0X2xvZ2ljID0gZmlsdGVyX2xvZ2ljLnJlcGxhY2UoL1xcKFxccysvaWcsIFwiKFwiKS5yZXBsYWNlKC9cXHMrXFwpL2lnLCBcIilcIikucmVwbGFjZSgvXFwoL2csIFwiW1wiKS5yZXBsYWNlKC9cXCkvZywgXCJdXCIpLnJlcGxhY2UoL1xccysvZywgXCIsXCIpLnJlcGxhY2UoLyhhbmR8b3IpL2lnLCBcIickMSdcIik7XG4gIGZvcm1hdF9sb2dpYyA9IGZvcm1hdF9sb2dpYy5yZXBsYWNlKC8oXFxkKSsvaWcsIGZ1bmN0aW9uKHgpIHtcbiAgICB2YXIgX2YsIGZpZWxkLCBvcHRpb24sIHN1Yl9zZWxlY3RvciwgdmFsdWU7XG4gICAgX2YgPSBmaWx0ZXJzW3ggLSAxXTtcbiAgICBmaWVsZCA9IF9mLmZpZWxkO1xuICAgIG9wdGlvbiA9IF9mLm9wZXJhdGlvbjtcbiAgICBpZiAoTWV0ZW9yLmlzQ2xpZW50KSB7XG4gICAgICB2YWx1ZSA9IENyZWF0b3IuZXZhbHVhdGVGb3JtdWxhKF9mLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBDcmVhdG9yLmV2YWx1YXRlRm9ybXVsYShfZi52YWx1ZSwgbnVsbCwgb3B0aW9ucyk7XG4gICAgfVxuICAgIHN1Yl9zZWxlY3RvciA9IFtdO1xuICAgIGlmIChfLmlzQXJyYXkodmFsdWUpID09PSB0cnVlKSB7XG4gICAgICBpZiAob3B0aW9uID09PSBcIj1cIikge1xuICAgICAgICBfLmVhY2godmFsdWUsIGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4gc3ViX3NlbGVjdG9yLnB1c2goW2ZpZWxkLCBvcHRpb24sIHZdLCBcIm9yXCIpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcIjw+XCIpIHtcbiAgICAgICAgXy5lYWNoKHZhbHVlLCBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHN1Yl9zZWxlY3Rvci5wdXNoKFtmaWVsZCwgb3B0aW9uLCB2XSwgXCJhbmRcIik7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5lYWNoKHZhbHVlLCBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHN1Yl9zZWxlY3Rvci5wdXNoKFtmaWVsZCwgb3B0aW9uLCB2XSwgXCJvclwiKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoc3ViX3NlbGVjdG9yW3N1Yl9zZWxlY3Rvci5sZW5ndGggLSAxXSA9PT0gXCJhbmRcIiB8fCBzdWJfc2VsZWN0b3Jbc3ViX3NlbGVjdG9yLmxlbmd0aCAtIDFdID09PSBcIm9yXCIpIHtcbiAgICAgICAgc3ViX3NlbGVjdG9yLnBvcCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzdWJfc2VsZWN0b3IgPSBbZmllbGQsIG9wdGlvbiwgdmFsdWVdO1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc3ViX3NlbGVjdG9yKTtcbiAgfSk7XG4gIGZvcm1hdF9sb2dpYyA9IFwiW1wiICsgZm9ybWF0X2xvZ2ljICsgXCJdXCI7XG4gIHJldHVybiBDcmVhdG9yW1wiZXZhbFwiXShmb3JtYXRfbG9naWMpO1xufTtcblxuQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0cyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpIHtcbiAgdmFyIF9vYmplY3QsIHBlcm1pc3Npb25zLCByZWxhdGVkX29iamVjdF9uYW1lcywgcmVsYXRlZF9vYmplY3RzLCB1bnJlbGF0ZWRfb2JqZWN0cztcbiAgaWYgKE1ldGVvci5pc0NsaWVudCkge1xuICAgIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICAgIG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKTtcbiAgICB9XG4gICAgaWYgKCFzcGFjZUlkKSB7XG4gICAgICBzcGFjZUlkID0gU2Vzc2lvbi5nZXQoXCJzcGFjZUlkXCIpO1xuICAgIH1cbiAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgdXNlcklkID0gTWV0ZW9yLnVzZXJJZCgpO1xuICAgIH1cbiAgfVxuICByZWxhdGVkX29iamVjdF9uYW1lcyA9IFtdO1xuICBfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpO1xuICBpZiAoIV9vYmplY3QpIHtcbiAgICByZXR1cm4gcmVsYXRlZF9vYmplY3RfbmFtZXM7XG4gIH1cbiAgcmVsYXRlZF9vYmplY3RzID0gQ3JlYXRvci5nZXRPYmplY3RSZWxhdGVkcyhfb2JqZWN0Ll9jb2xsZWN0aW9uX25hbWUpO1xuICByZWxhdGVkX29iamVjdF9uYW1lcyA9IF8ucGx1Y2socmVsYXRlZF9vYmplY3RzLCBcIm9iamVjdF9uYW1lXCIpO1xuICBpZiAoKHJlbGF0ZWRfb2JqZWN0X25hbWVzICE9IG51bGwgPyByZWxhdGVkX29iamVjdF9uYW1lcy5sZW5ndGggOiB2b2lkIDApID09PSAwKSB7XG4gICAgcmV0dXJuIHJlbGF0ZWRfb2JqZWN0X25hbWVzO1xuICB9XG4gIHBlcm1pc3Npb25zID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKTtcbiAgdW5yZWxhdGVkX29iamVjdHMgPSBwZXJtaXNzaW9ucy51bnJlbGF0ZWRfb2JqZWN0cztcbiAgcmVsYXRlZF9vYmplY3RfbmFtZXMgPSBfLmRpZmZlcmVuY2UocmVsYXRlZF9vYmplY3RfbmFtZXMsIHVucmVsYXRlZF9vYmplY3RzKTtcbiAgcmV0dXJuIF8uZmlsdGVyKHJlbGF0ZWRfb2JqZWN0cywgZnVuY3Rpb24ocmVsYXRlZF9vYmplY3QpIHtcbiAgICB2YXIgYWxsb3dSZWFkLCBpc0FjdGl2ZSwgcmVmLCByZWxhdGVkX29iamVjdF9uYW1lO1xuICAgIHJlbGF0ZWRfb2JqZWN0X25hbWUgPSByZWxhdGVkX29iamVjdC5vYmplY3RfbmFtZTtcbiAgICBpc0FjdGl2ZSA9IHJlbGF0ZWRfb2JqZWN0X25hbWVzLmluZGV4T2YocmVsYXRlZF9vYmplY3RfbmFtZSkgPiAtMTtcbiAgICBhbGxvd1JlYWQgPSAocmVmID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhyZWxhdGVkX29iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpKSAhPSBudWxsID8gcmVmLmFsbG93UmVhZCA6IHZvaWQgMDtcbiAgICBpZiAocmVsYXRlZF9vYmplY3RfbmFtZSA9PT0gXCJjbXNfZmlsZXNcIikge1xuICAgICAgYWxsb3dSZWFkID0gYWxsb3dSZWFkICYmIHBlcm1pc3Npb25zLmFsbG93UmVhZEZpbGVzO1xuICAgIH1cbiAgICByZXR1cm4gaXNBY3RpdmUgJiYgYWxsb3dSZWFkO1xuICB9KTtcbn07XG5cbkNyZWF0b3IuZ2V0UmVsYXRlZE9iamVjdE5hbWVzID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCkge1xuICB2YXIgcmVsYXRlZF9vYmplY3RzO1xuICByZWxhdGVkX29iamVjdHMgPSBDcmVhdG9yLmdldFJlbGF0ZWRPYmplY3RzKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpO1xuICByZXR1cm4gXy5wbHVjayhyZWxhdGVkX29iamVjdHMsIFwib2JqZWN0X25hbWVcIik7XG59O1xuXG5DcmVhdG9yLmdldFJlbGF0ZWRPYmplY3RMaXN0QWN0aW9ucyA9IGZ1bmN0aW9uKHJlbGF0ZWRPYmplY3ROYW1lLCBzcGFjZUlkLCB1c2VySWQpIHtcbiAgdmFyIGFjdGlvbnM7XG4gIGFjdGlvbnMgPSBDcmVhdG9yLmdldEFjdGlvbnMocmVsYXRlZE9iamVjdE5hbWUsIHNwYWNlSWQsIHVzZXJJZCk7XG4gIGFjdGlvbnMgPSBfLmZpbHRlcihhY3Rpb25zLCBmdW5jdGlvbihhY3Rpb24pIHtcbiAgICBpZiAoYWN0aW9uLm5hbWUgPT09IFwic3RhbmRhcmRfZm9sbG93XCIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFjdGlvbi5uYW1lID09PSBcInN0YW5kYXJkX3F1ZXJ5XCIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFjdGlvbi5vbiA9PT0gXCJsaXN0XCIpIHtcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uLnZpc2libGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gYWN0aW9uLnZpc2libGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhY3Rpb24udmlzaWJsZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBhY3Rpb25zO1xufTtcblxuQ3JlYXRvci5nZXRBY3Rpb25zID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCkge1xuICB2YXIgYWN0aW9ucywgZGlzYWJsZWRfYWN0aW9ucywgb2JqLCBwZXJtaXNzaW9ucywgcmVmLCByZWYxO1xuICBpZiAoTWV0ZW9yLmlzQ2xpZW50KSB7XG4gICAgaWYgKCFvYmplY3RfbmFtZSkge1xuICAgICAgb2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpO1xuICAgIH1cbiAgICBpZiAoIXNwYWNlSWQpIHtcbiAgICAgIHNwYWNlSWQgPSBTZXNzaW9uLmdldChcInNwYWNlSWRcIik7XG4gICAgfVxuICAgIGlmICghdXNlcklkKSB7XG4gICAgICB1c2VySWQgPSBNZXRlb3IudXNlcklkKCk7XG4gICAgfVxuICB9XG4gIG9iaiA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKTtcbiAgaWYgKCFvYmopIHtcbiAgICByZXR1cm47XG4gIH1cbiAgcGVybWlzc2lvbnMgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpO1xuICBkaXNhYmxlZF9hY3Rpb25zID0gcGVybWlzc2lvbnMuZGlzYWJsZWRfYWN0aW9ucztcbiAgYWN0aW9ucyA9IF8uc29ydEJ5KF8udmFsdWVzKG9iai5hY3Rpb25zKSwgJ3NvcnQnKTtcbiAgaWYgKF8uaGFzKG9iaiwgJ2FsbG93X2N1c3RvbUFjdGlvbnMnKSkge1xuICAgIGFjdGlvbnMgPSBfLmZpbHRlcihhY3Rpb25zLCBmdW5jdGlvbihhY3Rpb24pIHtcbiAgICAgIHJldHVybiBfLmluY2x1ZGUob2JqLmFsbG93X2N1c3RvbUFjdGlvbnMsIGFjdGlvbi5uYW1lKSB8fCBfLmluY2x1ZGUoXy5rZXlzKENyZWF0b3IuZ2V0T2JqZWN0KCdiYXNlJykuYWN0aW9ucykgfHwge30sIGFjdGlvbi5uYW1lKTtcbiAgICB9KTtcbiAgfVxuICBpZiAoXy5oYXMob2JqLCAnZXhjbHVkZV9hY3Rpb25zJykpIHtcbiAgICBhY3Rpb25zID0gXy5maWx0ZXIoYWN0aW9ucywgZnVuY3Rpb24oYWN0aW9uKSB7XG4gICAgICByZXR1cm4gIV8uaW5jbHVkZShvYmouZXhjbHVkZV9hY3Rpb25zLCBhY3Rpb24ubmFtZSk7XG4gICAgfSk7XG4gIH1cbiAgXy5lYWNoKGFjdGlvbnMsIGZ1bmN0aW9uKGFjdGlvbikge1xuICAgIGlmIChTdGVlZG9zLmlzTW9iaWxlKCkgJiYgW1wicmVjb3JkXCIsIFwicmVjb3JkX29ubHlcIl0uaW5kZXhPZihhY3Rpb24ub24pID4gLTEgJiYgYWN0aW9uLm5hbWUgIT09ICdzdGFuZGFyZF9lZGl0Jykge1xuICAgICAgaWYgKGFjdGlvbi5vbiA9PT0gXCJyZWNvcmRfb25seVwiKSB7XG4gICAgICAgIHJldHVybiBhY3Rpb24ub24gPSAncmVjb3JkX29ubHlfbW9yZSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYWN0aW9uLm9uID0gJ3JlY29yZF9tb3JlJztcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBpZiAoU3RlZWRvcy5pc01vYmlsZSgpICYmIFtcImNtc19maWxlc1wiLCBcImNmcy5maWxlcy5maWxlcmVjb3JkXCJdLmluZGV4T2Yob2JqZWN0X25hbWUpID4gLTEpIHtcbiAgICBpZiAoKHJlZiA9IGFjdGlvbnMuZmluZChmdW5jdGlvbihuKSB7XG4gICAgICByZXR1cm4gbi5uYW1lID09PSBcInN0YW5kYXJkX2VkaXRcIjtcbiAgICB9KSkgIT0gbnVsbCkge1xuICAgICAgcmVmLm9uID0gXCJyZWNvcmRfbW9yZVwiO1xuICAgIH1cbiAgICBpZiAoKHJlZjEgPSBhY3Rpb25zLmZpbmQoZnVuY3Rpb24obikge1xuICAgICAgcmV0dXJuIG4ubmFtZSA9PT0gXCJkb3dubG9hZFwiO1xuICAgIH0pKSAhPSBudWxsKSB7XG4gICAgICByZWYxLm9uID0gXCJyZWNvcmRcIjtcbiAgICB9XG4gIH1cbiAgYWN0aW9ucyA9IF8uZmlsdGVyKGFjdGlvbnMsIGZ1bmN0aW9uKGFjdGlvbikge1xuICAgIHJldHVybiBfLmluZGV4T2YoZGlzYWJsZWRfYWN0aW9ucywgYWN0aW9uLm5hbWUpIDwgMDtcbiAgfSk7XG4gIHJldHVybiBhY3Rpb25zO1xufTtcblxuL+i/lOWbnuW9k+WJjeeUqOaIt+acieadg+mZkOiuv+mXrueahOaJgOaciWxpc3Rfdmlld++8jOWMheaLrOWIhuS6q+eahO+8jOeUqOaIt+iHquWumuS5iemdnuWIhuS6q+eahO+8iOmZpOmdnm93bmVy5Y+Y5LqG77yJ77yM5Lul5Y+K6buY6K6k55qE5YW25LuW6KeG5Zu+5rOo5oSPQ3JlYXRvci5nZXRQZXJtaXNzaW9uc+WHveaVsOS4reaYr+S4jeS8muacieeUqOaIt+iHquWumuS5iemdnuWIhuS6q+eahOinhuWbvueahO+8jOaJgOS7pUNyZWF0b3IuZ2V0UGVybWlzc2lvbnPlh73mlbDkuK3mi7/liLDnmoTnu5PmnpzkuI3lhajvvIzlubbkuI3mmK/lvZPliY3nlKjmiLfog73nnIvliLDmiYDmnInop4blm74vO1xuXG5DcmVhdG9yLmdldExpc3RWaWV3cyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpIHtcbiAgdmFyIGRpc2FibGVkX2xpc3Rfdmlld3MsIGlzTW9iaWxlLCBsaXN0Vmlld3MsIGxpc3Rfdmlld3MsIG9iamVjdCwgcmVmO1xuICBpZiAoTWV0ZW9yLmlzQ2xpZW50KSB7XG4gICAgaWYgKCFvYmplY3RfbmFtZSkge1xuICAgICAgb2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpO1xuICAgIH1cbiAgICBpZiAoIXNwYWNlSWQpIHtcbiAgICAgIHNwYWNlSWQgPSBTZXNzaW9uLmdldChcInNwYWNlSWRcIik7XG4gICAgfVxuICAgIGlmICghdXNlcklkKSB7XG4gICAgICB1c2VySWQgPSBNZXRlb3IudXNlcklkKCk7XG4gICAgfVxuICB9XG4gIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpO1xuICBpZiAoIW9iamVjdCkge1xuICAgIHJldHVybjtcbiAgfVxuICBkaXNhYmxlZF9saXN0X3ZpZXdzID0gKChyZWYgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpKSAhPSBudWxsID8gcmVmLmRpc2FibGVkX2xpc3Rfdmlld3MgOiB2b2lkIDApIHx8IFtdO1xuICBsaXN0X3ZpZXdzID0gW107XG4gIGlzTW9iaWxlID0gU3RlZWRvcy5pc01vYmlsZSgpO1xuICBfLmVhY2gob2JqZWN0Lmxpc3Rfdmlld3MsIGZ1bmN0aW9uKGl0ZW0sIGl0ZW1fbmFtZSkge1xuICAgIHJldHVybiBpdGVtLm5hbWUgPSBpdGVtX25hbWU7XG4gIH0pO1xuICBsaXN0Vmlld3MgPSBfLnNvcnRCeShfLnZhbHVlcyhvYmplY3QubGlzdF92aWV3cyksICdzb3J0X25vJyk7XG4gIF8uZWFjaChsaXN0Vmlld3MsIGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICB2YXIgaXNEaXNhYmxlZDtcbiAgICBpZiAoaXNNb2JpbGUgJiYgaXRlbS50eXBlID09PSBcImNhbGVuZGFyXCIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGl0ZW0ubmFtZSAhPT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgIGlzRGlzYWJsZWQgPSBfLmluZGV4T2YoZGlzYWJsZWRfbGlzdF92aWV3cywgaXRlbS5uYW1lKSA+IC0xIHx8IChpdGVtLl9pZCAmJiBfLmluZGV4T2YoZGlzYWJsZWRfbGlzdF92aWV3cywgaXRlbS5faWQpID4gLTEpO1xuICAgICAgaWYgKCFpc0Rpc2FibGVkIHx8IGl0ZW0ub3duZXIgPT09IHVzZXJJZCkge1xuICAgICAgICByZXR1cm4gbGlzdF92aWV3cy5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBsaXN0X3ZpZXdzO1xufTtcblxuQ3JlYXRvci5nZXRGaWVsZHMgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKSB7XG4gIHZhciBmaWVsZHNOYW1lLCByZWYsIHVucmVhZGFibGVfZmllbGRzO1xuICBpZiAoTWV0ZW9yLmlzQ2xpZW50KSB7XG4gICAgaWYgKCFvYmplY3RfbmFtZSkge1xuICAgICAgb2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpO1xuICAgIH1cbiAgICBpZiAoIXNwYWNlSWQpIHtcbiAgICAgIHNwYWNlSWQgPSBTZXNzaW9uLmdldChcInNwYWNlSWRcIik7XG4gICAgfVxuICAgIGlmICghdXNlcklkKSB7XG4gICAgICB1c2VySWQgPSBNZXRlb3IudXNlcklkKCk7XG4gICAgfVxuICB9XG4gIGZpZWxkc05hbWUgPSBDcmVhdG9yLmdldE9iamVjdEZpZWxkc05hbWUob2JqZWN0X25hbWUpO1xuICB1bnJlYWRhYmxlX2ZpZWxkcyA9IChyZWYgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpKSAhPSBudWxsID8gcmVmLnVucmVhZGFibGVfZmllbGRzIDogdm9pZCAwO1xuICByZXR1cm4gXy5kaWZmZXJlbmNlKGZpZWxkc05hbWUsIHVucmVhZGFibGVfZmllbGRzKTtcbn07XG5cbkNyZWF0b3IuaXNsb2FkaW5nID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAhQ3JlYXRvci5ib290c3RyYXBMb2FkZWQuZ2V0KCk7XG59O1xuXG5DcmVhdG9yLmNvbnZlcnRTcGVjaWFsQ2hhcmFjdGVyID0gZnVuY3Rpb24oc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvKFtcXF5cXCRcXChcXClcXCpcXCtcXD9cXC5cXFxcXFx8XFxbXFxdXFx7XFx9XSkvZywgXCJcXFxcJDFcIik7XG59O1xuXG5DcmVhdG9yLmdldERpc2FibGVkRmllbGRzID0gZnVuY3Rpb24oc2NoZW1hKSB7XG4gIHZhciBmaWVsZHM7XG4gIGZpZWxkcyA9IF8ubWFwKHNjaGVtYSwgZnVuY3Rpb24oZmllbGQsIGZpZWxkTmFtZSkge1xuICAgIHJldHVybiBmaWVsZC5hdXRvZm9ybSAmJiBmaWVsZC5hdXRvZm9ybS5kaXNhYmxlZCAmJiAhZmllbGQuYXV0b2Zvcm0ub21pdCAmJiBmaWVsZE5hbWU7XG4gIH0pO1xuICBmaWVsZHMgPSBfLmNvbXBhY3QoZmllbGRzKTtcbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbkNyZWF0b3IuZ2V0SGlkZGVuRmllbGRzID0gZnVuY3Rpb24oc2NoZW1hKSB7XG4gIHZhciBmaWVsZHM7XG4gIGZpZWxkcyA9IF8ubWFwKHNjaGVtYSwgZnVuY3Rpb24oZmllbGQsIGZpZWxkTmFtZSkge1xuICAgIHJldHVybiBmaWVsZC5hdXRvZm9ybSAmJiBmaWVsZC5hdXRvZm9ybS50eXBlID09PSBcImhpZGRlblwiICYmICFmaWVsZC5hdXRvZm9ybS5vbWl0ICYmIGZpZWxkTmFtZTtcbiAgfSk7XG4gIGZpZWxkcyA9IF8uY29tcGFjdChmaWVsZHMpO1xuICByZXR1cm4gZmllbGRzO1xufTtcblxuQ3JlYXRvci5nZXRGaWVsZHNXaXRoTm9Hcm91cCA9IGZ1bmN0aW9uKHNjaGVtYSkge1xuICB2YXIgZmllbGRzO1xuICBmaWVsZHMgPSBfLm1hcChzY2hlbWEsIGZ1bmN0aW9uKGZpZWxkLCBmaWVsZE5hbWUpIHtcbiAgICByZXR1cm4gKCFmaWVsZC5hdXRvZm9ybSB8fCAhZmllbGQuYXV0b2Zvcm0uZ3JvdXAgfHwgZmllbGQuYXV0b2Zvcm0uZ3JvdXAgPT09IFwiLVwiKSAmJiAoIWZpZWxkLmF1dG9mb3JtIHx8IGZpZWxkLmF1dG9mb3JtLnR5cGUgIT09IFwiaGlkZGVuXCIpICYmIGZpZWxkTmFtZTtcbiAgfSk7XG4gIGZpZWxkcyA9IF8uY29tcGFjdChmaWVsZHMpO1xuICByZXR1cm4gZmllbGRzO1xufTtcblxuQ3JlYXRvci5nZXRTb3J0ZWRGaWVsZEdyb3VwTmFtZXMgPSBmdW5jdGlvbihzY2hlbWEpIHtcbiAgdmFyIG5hbWVzO1xuICBuYW1lcyA9IF8ubWFwKHNjaGVtYSwgZnVuY3Rpb24oZmllbGQpIHtcbiAgICByZXR1cm4gZmllbGQuYXV0b2Zvcm0gJiYgZmllbGQuYXV0b2Zvcm0uZ3JvdXAgIT09IFwiLVwiICYmIGZpZWxkLmF1dG9mb3JtLmdyb3VwO1xuICB9KTtcbiAgbmFtZXMgPSBfLmNvbXBhY3QobmFtZXMpO1xuICBuYW1lcyA9IF8udW5pcXVlKG5hbWVzKTtcbiAgcmV0dXJuIG5hbWVzO1xufTtcblxuQ3JlYXRvci5nZXRGaWVsZHNGb3JHcm91cCA9IGZ1bmN0aW9uKHNjaGVtYSwgZ3JvdXBOYW1lKSB7XG4gIHZhciBmaWVsZHM7XG4gIGZpZWxkcyA9IF8ubWFwKHNjaGVtYSwgZnVuY3Rpb24oZmllbGQsIGZpZWxkTmFtZSkge1xuICAgIHJldHVybiBmaWVsZC5hdXRvZm9ybSAmJiBmaWVsZC5hdXRvZm9ybS5ncm91cCA9PT0gZ3JvdXBOYW1lICYmIGZpZWxkLmF1dG9mb3JtLnR5cGUgIT09IFwiaGlkZGVuXCIgJiYgZmllbGROYW1lO1xuICB9KTtcbiAgZmllbGRzID0gXy5jb21wYWN0KGZpZWxkcyk7XG4gIHJldHVybiBmaWVsZHM7XG59O1xuXG5DcmVhdG9yLmdldFN5c3RlbUJhc2VGaWVsZHMgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIFtcImNyZWF0ZWRcIiwgXCJjcmVhdGVkX2J5XCIsIFwibW9kaWZpZWRcIiwgXCJtb2RpZmllZF9ieVwiXTtcbn07XG5cbkNyZWF0b3IuZ2V0RmllbGRzV2l0aG91dFN5c3RlbUJhc2UgPSBmdW5jdGlvbihrZXlzKSB7XG4gIHJldHVybiBfLmRpZmZlcmVuY2Uoa2V5cywgQ3JlYXRvci5nZXRTeXN0ZW1CYXNlRmllbGRzKCkpO1xufTtcblxuQ3JlYXRvci5nZXRGaWVsZHNXaXRob3V0T21pdCA9IGZ1bmN0aW9uKHNjaGVtYSwga2V5cykge1xuICBrZXlzID0gXy5tYXAoa2V5cywgZnVuY3Rpb24oa2V5KSB7XG4gICAgdmFyIGZpZWxkLCByZWY7XG4gICAgZmllbGQgPSBfLnBpY2soc2NoZW1hLCBrZXkpO1xuICAgIGlmICgocmVmID0gZmllbGRba2V5XS5hdXRvZm9ybSkgIT0gbnVsbCA/IHJlZi5vbWl0IDogdm9pZCAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuICB9KTtcbiAga2V5cyA9IF8uY29tcGFjdChrZXlzKTtcbiAgcmV0dXJuIGtleXM7XG59O1xuXG5DcmVhdG9yLmdldEZpZWxkc0luRmlyc3RMZXZlbCA9IGZ1bmN0aW9uKGZpcnN0TGV2ZWxLZXlzLCBrZXlzKSB7XG4gIGtleXMgPSBfLm1hcChrZXlzLCBmdW5jdGlvbihrZXkpIHtcbiAgICBpZiAoXy5pbmRleE9mKGZpcnN0TGV2ZWxLZXlzLCBrZXkpID4gLTEpIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xuICBrZXlzID0gXy5jb21wYWN0KGtleXMpO1xuICByZXR1cm4ga2V5cztcbn07XG5cbkNyZWF0b3IuZ2V0RmllbGRzRm9yUmVvcmRlciA9IGZ1bmN0aW9uKHNjaGVtYSwga2V5cywgaXNTaW5nbGUpIHtcbiAgdmFyIF9rZXlzLCBjaGlsZEtleXMsIGZpZWxkcywgaSwgaXNfd2lkZV8xLCBpc193aWRlXzIsIHNjXzEsIHNjXzI7XG4gIGZpZWxkcyA9IFtdO1xuICBpID0gMDtcbiAgX2tleXMgPSBfLmZpbHRlcihrZXlzLCBmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gIWtleS5lbmRzV2l0aCgnX2VuZExpbmUnKTtcbiAgfSk7XG4gIHdoaWxlIChpIDwgX2tleXMubGVuZ3RoKSB7XG4gICAgc2NfMSA9IF8ucGljayhzY2hlbWEsIF9rZXlzW2ldKTtcbiAgICBzY18yID0gXy5waWNrKHNjaGVtYSwgX2tleXNbaSArIDFdKTtcbiAgICBpc193aWRlXzEgPSBmYWxzZTtcbiAgICBpc193aWRlXzIgPSBmYWxzZTtcbiAgICBfLmVhY2goc2NfMSwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHZhciByZWYsIHJlZjE7XG4gICAgICBpZiAoKChyZWYgPSB2YWx1ZS5hdXRvZm9ybSkgIT0gbnVsbCA/IHJlZi5pc193aWRlIDogdm9pZCAwKSB8fCAoKHJlZjEgPSB2YWx1ZS5hdXRvZm9ybSkgIT0gbnVsbCA/IHJlZjEudHlwZSA6IHZvaWQgMCkgPT09IFwidGFibGVcIikge1xuICAgICAgICByZXR1cm4gaXNfd2lkZV8xID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBfLmVhY2goc2NfMiwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHZhciByZWYsIHJlZjE7XG4gICAgICBpZiAoKChyZWYgPSB2YWx1ZS5hdXRvZm9ybSkgIT0gbnVsbCA/IHJlZi5pc193aWRlIDogdm9pZCAwKSB8fCAoKHJlZjEgPSB2YWx1ZS5hdXRvZm9ybSkgIT0gbnVsbCA/IHJlZjEudHlwZSA6IHZvaWQgMCkgPT09IFwidGFibGVcIikge1xuICAgICAgICByZXR1cm4gaXNfd2lkZV8yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoU3RlZWRvcy5pc01vYmlsZSgpKSB7XG4gICAgICBpc193aWRlXzEgPSB0cnVlO1xuICAgICAgaXNfd2lkZV8yID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGlzU2luZ2xlKSB7XG4gICAgICBmaWVsZHMucHVzaChfa2V5cy5zbGljZShpLCBpICsgMSkpO1xuICAgICAgaSArPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNfd2lkZV8xKSB7XG4gICAgICAgIGZpZWxkcy5wdXNoKF9rZXlzLnNsaWNlKGksIGkgKyAxKSk7XG4gICAgICAgIGkgKz0gMTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzX3dpZGVfMSAmJiBpc193aWRlXzIpIHtcbiAgICAgICAgY2hpbGRLZXlzID0gX2tleXMuc2xpY2UoaSwgaSArIDEpO1xuICAgICAgICBjaGlsZEtleXMucHVzaCh2b2lkIDApO1xuICAgICAgICBmaWVsZHMucHVzaChjaGlsZEtleXMpO1xuICAgICAgICBpICs9IDE7XG4gICAgICB9IGVsc2UgaWYgKCFpc193aWRlXzEgJiYgIWlzX3dpZGVfMikge1xuICAgICAgICBjaGlsZEtleXMgPSBfa2V5cy5zbGljZShpLCBpICsgMSk7XG4gICAgICAgIGlmIChfa2V5c1tpICsgMV0pIHtcbiAgICAgICAgICBjaGlsZEtleXMucHVzaChfa2V5c1tpICsgMV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNoaWxkS2V5cy5wdXNoKHZvaWQgMCk7XG4gICAgICAgIH1cbiAgICAgICAgZmllbGRzLnB1c2goY2hpbGRLZXlzKTtcbiAgICAgICAgaSArPSAyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmllbGRzO1xufTtcblxuQ3JlYXRvci5pc0ZpbHRlclZhbHVlRW1wdHkgPSBmdW5jdGlvbih2KSB7XG4gIHJldHVybiB0eXBlb2YgdiA9PT0gXCJ1bmRlZmluZWRcIiB8fCB2ID09PSBudWxsIHx8IE51bWJlci5pc05hTih2KSB8fCB2Lmxlbmd0aCA9PT0gMDtcbn07XG5cbkNyZWF0b3IuZ2V0RmllbGREYXRhVHlwZSA9IGZ1bmN0aW9uKG9iamVjdEZpZWxkcywga2V5KSB7XG4gIHZhciByZWYsIHJlc3VsdDtcbiAgaWYgKG9iamVjdEZpZWxkcyAmJiBrZXkpIHtcbiAgICByZXN1bHQgPSAocmVmID0gb2JqZWN0RmllbGRzW2tleV0pICE9IG51bGwgPyByZWYudHlwZSA6IHZvaWQgMDtcbiAgICBpZiAoW1wiZm9ybXVsYVwiLCBcInN1bW1hcnlcIl0uaW5kZXhPZihyZXN1bHQpID4gLTEpIHtcbiAgICAgIHJlc3VsdCA9IG9iamVjdEZpZWxkc1trZXldLmRhdGFfdHlwZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gXCJ0ZXh0XCI7XG4gIH1cbn07XG5cbmlmIChNZXRlb3IuaXNTZXJ2ZXIpIHtcbiAgQ3JlYXRvci5nZXRBbGxSZWxhdGVkT2JqZWN0cyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lKSB7XG4gICAgdmFyIHJlbGF0ZWRfb2JqZWN0X25hbWVzO1xuICAgIHJlbGF0ZWRfb2JqZWN0X25hbWVzID0gW107XG4gICAgXy5lYWNoKENyZWF0b3IuT2JqZWN0cywgZnVuY3Rpb24ocmVsYXRlZF9vYmplY3QsIHJlbGF0ZWRfb2JqZWN0X25hbWUpIHtcbiAgICAgIHJldHVybiBfLmVhY2gocmVsYXRlZF9vYmplY3QuZmllbGRzLCBmdW5jdGlvbihyZWxhdGVkX2ZpZWxkLCByZWxhdGVkX2ZpZWxkX25hbWUpIHtcbiAgICAgICAgaWYgKHJlbGF0ZWRfZmllbGQudHlwZSA9PT0gXCJtYXN0ZXJfZGV0YWlsXCIgJiYgcmVsYXRlZF9maWVsZC5yZWZlcmVuY2VfdG8gJiYgcmVsYXRlZF9maWVsZC5yZWZlcmVuY2VfdG8gPT09IG9iamVjdF9uYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbGF0ZWRfb2JqZWN0X25hbWVzLnB1c2gocmVsYXRlZF9vYmplY3RfbmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGlmIChDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSkuZW5hYmxlX2ZpbGVzKSB7XG4gICAgICByZWxhdGVkX29iamVjdF9uYW1lcy5wdXNoKFwiY21zX2ZpbGVzXCIpO1xuICAgIH1cbiAgICByZXR1cm4gcmVsYXRlZF9vYmplY3RfbmFtZXM7XG4gIH07XG59XG5cbmlmIChNZXRlb3IuaXNTZXJ2ZXIpIHtcbiAgU3RlZWRvcy5mb3JtYXRJbmRleCA9IGZ1bmN0aW9uKGFycmF5KSB7XG4gICAgdmFyIGluZGV4TmFtZSwgaXNkb2N1bWVudERCLCBvYmplY3QsIHJlZiwgcmVmMSwgcmVmMjtcbiAgICBvYmplY3QgPSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cnVlXG4gICAgfTtcbiAgICBpc2RvY3VtZW50REIgPSAoKHJlZiA9IE1ldGVvci5zZXR0aW5ncykgIT0gbnVsbCA/IChyZWYxID0gcmVmLmRhdGFzb3VyY2VzKSAhPSBudWxsID8gKHJlZjIgPSByZWYxW1wiZGVmYXVsdFwiXSkgIT0gbnVsbCA/IHJlZjIuZG9jdW1lbnREQiA6IHZvaWQgMCA6IHZvaWQgMCA6IHZvaWQgMCkgfHwgZmFsc2U7XG4gICAgaWYgKGlzZG9jdW1lbnREQikge1xuICAgICAgaWYgKGFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgaW5kZXhOYW1lID0gYXJyYXkuam9pbihcIi5cIik7XG4gICAgICAgIG9iamVjdC5uYW1lID0gaW5kZXhOYW1lO1xuICAgICAgICBpZiAoaW5kZXhOYW1lLmxlbmd0aCA+IDUyKSB7XG4gICAgICAgICAgb2JqZWN0Lm5hbWUgPSBpbmRleE5hbWUuc3Vic3RyaW5nKDAsIDUyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9O1xufVxuIiwiQ3JlYXRvci5hcHBzQnlOYW1lID0ge31cblxuIiwiTWV0ZW9yLm1ldGhvZHNcblx0XCJvYmplY3RfcmVjZW50X3ZpZXdlZFwiOiAob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgc3BhY2VfaWQpLT5cblx0XHRpZiAhdGhpcy51c2VySWRcblx0XHRcdHJldHVybiBudWxsXG5cblx0XHRpZiBvYmplY3RfbmFtZSA9PSBcIm9iamVjdF9yZWNlbnRfdmlld2VkXCJcblx0XHRcdHJldHVyblxuXHRcdGlmIG9iamVjdF9uYW1lIGFuZCByZWNvcmRfaWRcblx0XHRcdGlmICFzcGFjZV9pZFxuXHRcdFx0XHRkb2MgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUpLmZpbmRPbmUoe19pZDogcmVjb3JkX2lkfSwge2ZpZWxkczoge3NwYWNlOiAxfX0pXG5cdFx0XHRcdHNwYWNlX2lkID0gZG9jPy5zcGFjZVxuXG5cdFx0XHRjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oXCJvYmplY3RfcmVjZW50X3ZpZXdlZFwiKVxuXHRcdFx0ZmlsdGVycyA9IHsgb3duZXI6IHRoaXMudXNlcklkLCBzcGFjZTogc3BhY2VfaWQsICdyZWNvcmQubyc6IG9iamVjdF9uYW1lLCAncmVjb3JkLmlkcyc6IFtyZWNvcmRfaWRdfVxuXHRcdFx0Y3VycmVudF9yZWNlbnRfdmlld2VkID0gY29sbGVjdGlvbl9yZWNlbnRfdmlld2VkLmZpbmRPbmUoZmlsdGVycylcblx0XHRcdGlmIGN1cnJlbnRfcmVjZW50X3ZpZXdlZFxuXHRcdFx0XHRjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQudXBkYXRlKFxuXHRcdFx0XHRcdGN1cnJlbnRfcmVjZW50X3ZpZXdlZC5faWQsXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0JGluYzoge1xuXHRcdFx0XHRcdFx0XHRjb3VudDogMVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdCRzZXQ6IHtcblx0XHRcdFx0XHRcdFx0bW9kaWZpZWQ6IG5ldyBEYXRlKClcblx0XHRcdFx0XHRcdFx0bW9kaWZpZWRfYnk6IHRoaXMudXNlcklkXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpXG5cdFx0XHRlbHNlXG5cdFx0XHRcdGNvbGxlY3Rpb25fcmVjZW50X3ZpZXdlZC5pbnNlcnQoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0X2lkOiBjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQuX21ha2VOZXdJRCgpXG5cdFx0XHRcdFx0XHRvd25lcjogdGhpcy51c2VySWRcblx0XHRcdFx0XHRcdHNwYWNlOiBzcGFjZV9pZFxuXHRcdFx0XHRcdFx0cmVjb3JkOiB7bzogb2JqZWN0X25hbWUsIGlkczogW3JlY29yZF9pZF19XG5cdFx0XHRcdFx0XHRjb3VudDogMVxuXHRcdFx0XHRcdFx0Y3JlYXRlZDogbmV3IERhdGUoKVxuXHRcdFx0XHRcdFx0Y3JlYXRlZF9ieTogdGhpcy51c2VySWRcblx0XHRcdFx0XHRcdG1vZGlmaWVkOiBuZXcgRGF0ZSgpXG5cdFx0XHRcdFx0XHRtb2RpZmllZF9ieTogdGhpcy51c2VySWRcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdHZhbGlkYXRlOiBmYWxzZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0KVxuXHRcdFx0cmV0dXJuIiwiTWV0ZW9yLm1ldGhvZHMoe1xuICBcIm9iamVjdF9yZWNlbnRfdmlld2VkXCI6IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIHNwYWNlX2lkKSB7XG4gICAgdmFyIGNvbGxlY3Rpb25fcmVjZW50X3ZpZXdlZCwgY3VycmVudF9yZWNlbnRfdmlld2VkLCBkb2MsIGZpbHRlcnM7XG4gICAgaWYgKCF0aGlzLnVzZXJJZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmIChvYmplY3RfbmFtZSA9PT0gXCJvYmplY3RfcmVjZW50X3ZpZXdlZFwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChvYmplY3RfbmFtZSAmJiByZWNvcmRfaWQpIHtcbiAgICAgIGlmICghc3BhY2VfaWQpIHtcbiAgICAgICAgZG9jID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdF9uYW1lKS5maW5kT25lKHtcbiAgICAgICAgICBfaWQ6IHJlY29yZF9pZFxuICAgICAgICB9LCB7XG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICBzcGFjZTogMVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHNwYWNlX2lkID0gZG9jICE9IG51bGwgPyBkb2Muc3BhY2UgOiB2b2lkIDA7XG4gICAgICB9XG4gICAgICBjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oXCJvYmplY3RfcmVjZW50X3ZpZXdlZFwiKTtcbiAgICAgIGZpbHRlcnMgPSB7XG4gICAgICAgIG93bmVyOiB0aGlzLnVzZXJJZCxcbiAgICAgICAgc3BhY2U6IHNwYWNlX2lkLFxuICAgICAgICAncmVjb3JkLm8nOiBvYmplY3RfbmFtZSxcbiAgICAgICAgJ3JlY29yZC5pZHMnOiBbcmVjb3JkX2lkXVxuICAgICAgfTtcbiAgICAgIGN1cnJlbnRfcmVjZW50X3ZpZXdlZCA9IGNvbGxlY3Rpb25fcmVjZW50X3ZpZXdlZC5maW5kT25lKGZpbHRlcnMpO1xuICAgICAgaWYgKGN1cnJlbnRfcmVjZW50X3ZpZXdlZCkge1xuICAgICAgICBjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQudXBkYXRlKGN1cnJlbnRfcmVjZW50X3ZpZXdlZC5faWQsIHtcbiAgICAgICAgICAkaW5jOiB7XG4gICAgICAgICAgICBjb3VudDogMVxuICAgICAgICAgIH0sXG4gICAgICAgICAgJHNldDoge1xuICAgICAgICAgICAgbW9kaWZpZWQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICBtb2RpZmllZF9ieTogdGhpcy51c2VySWRcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29sbGVjdGlvbl9yZWNlbnRfdmlld2VkLmluc2VydCh7XG4gICAgICAgICAgX2lkOiBjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQuX21ha2VOZXdJRCgpLFxuICAgICAgICAgIG93bmVyOiB0aGlzLnVzZXJJZCxcbiAgICAgICAgICBzcGFjZTogc3BhY2VfaWQsXG4gICAgICAgICAgcmVjb3JkOiB7XG4gICAgICAgICAgICBvOiBvYmplY3RfbmFtZSxcbiAgICAgICAgICAgIGlkczogW3JlY29yZF9pZF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvdW50OiAxLFxuICAgICAgICAgIGNyZWF0ZWQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgY3JlYXRlZF9ieTogdGhpcy51c2VySWQsXG4gICAgICAgICAgbW9kaWZpZWQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgbW9kaWZpZWRfYnk6IHRoaXMudXNlcklkXG4gICAgICAgIH0sIHtcbiAgICAgICAgICB2YWxpZGF0ZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59KTtcbiIsInJlY2VudF9hZ2dyZWdhdGUgPSAoY3JlYXRlZF9ieSwgc3BhY2VJZCwgX3JlY29yZHMsIGNhbGxiYWNrKS0+XG5cdENyZWF0b3IuQ29sbGVjdGlvbnMub2JqZWN0X3JlY2VudF92aWV3ZWQucmF3Q29sbGVjdGlvbigpLmFnZ3JlZ2F0ZShbXG5cdFx0eyRtYXRjaDoge2NyZWF0ZWRfYnk6IGNyZWF0ZWRfYnksIHNwYWNlOiBzcGFjZUlkfX0sXG5cdFx0eyRncm91cDoge19pZDoge29iamVjdF9uYW1lOiBcIiRyZWNvcmQub1wiLCByZWNvcmRfaWQ6IFwiJHJlY29yZC5pZHNcIiwgc3BhY2U6IFwiJHNwYWNlXCJ9LCBtYXhDcmVhdGVkOiB7JG1heDogXCIkY3JlYXRlZFwifX19LFxuXHRcdHskc29ydDoge21heENyZWF0ZWQ6IC0xfX0sXG5cdFx0eyRsaW1pdDogMTB9XG5cdF0pLnRvQXJyYXkgKGVyciwgZGF0YSktPlxuXHRcdGlmIGVyclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGVycilcblxuXHRcdGRhdGEuZm9yRWFjaCAoZG9jKSAtPlxuXHRcdFx0X3JlY29yZHMucHVzaCBkb2MuX2lkXG5cblx0XHRpZiBjYWxsYmFjayAmJiBfLmlzRnVuY3Rpb24oY2FsbGJhY2spXG5cdFx0XHRjYWxsYmFjaygpXG5cblx0XHRyZXR1cm5cblxuYXN5bmNfcmVjZW50X2FnZ3JlZ2F0ZSA9IE1ldGVvci53cmFwQXN5bmMocmVjZW50X2FnZ3JlZ2F0ZSlcblxuc2VhcmNoX29iamVjdCA9IChzcGFjZSwgb2JqZWN0X25hbWUsdXNlcklkLCBzZWFyY2hUZXh0KS0+XG5cdGRhdGEgPSBuZXcgQXJyYXkoKVxuXG5cdGlmIHNlYXJjaFRleHRcblxuXHRcdF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSlcblxuXHRcdF9vYmplY3RfY29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmplY3RfbmFtZSlcblx0XHRfb2JqZWN0X25hbWVfa2V5ID0gX29iamVjdD8uTkFNRV9GSUVMRF9LRVlcblx0XHRpZiBfb2JqZWN0ICYmIF9vYmplY3RfY29sbGVjdGlvbiAmJiBfb2JqZWN0X25hbWVfa2V5XG5cdFx0XHRxdWVyeSA9IHt9XG5cdFx0XHRzZWFyY2hfS2V5d29yZHMgPSBzZWFyY2hUZXh0LnNwbGl0KFwiIFwiKVxuXHRcdFx0cXVlcnlfYW5kID0gW11cblx0XHRcdHNlYXJjaF9LZXl3b3Jkcy5mb3JFYWNoIChrZXl3b3JkKS0+XG5cdFx0XHRcdHN1YnF1ZXJ5ID0ge31cblx0XHRcdFx0c3VicXVlcnlbX29iamVjdF9uYW1lX2tleV0gPSB7JHJlZ2V4OiBrZXl3b3JkLnRyaW0oKX1cblx0XHRcdFx0cXVlcnlfYW5kLnB1c2ggc3VicXVlcnlcblxuXHRcdFx0cXVlcnkuJGFuZCA9IHF1ZXJ5X2FuZFxuXHRcdFx0cXVlcnkuc3BhY2UgPSB7JGluOiBbc3BhY2VdfVxuXG5cdFx0XHRmaWVsZHMgPSB7X2lkOiAxfVxuXHRcdFx0ZmllbGRzW19vYmplY3RfbmFtZV9rZXldID0gMVxuXG5cdFx0XHRyZWNvcmRzID0gX29iamVjdF9jb2xsZWN0aW9uLmZpbmQocXVlcnksIHtmaWVsZHM6IGZpZWxkcywgc29ydDoge21vZGlmaWVkOiAxfSwgbGltaXQ6IDV9KVxuXG5cdFx0XHRyZWNvcmRzLmZvckVhY2ggKHJlY29yZCktPlxuXHRcdFx0XHRkYXRhLnB1c2gge19pZDogcmVjb3JkLl9pZCwgX25hbWU6IHJlY29yZFtfb2JqZWN0X25hbWVfa2V5XSwgX29iamVjdF9uYW1lOiBvYmplY3RfbmFtZX1cblx0XG5cdHJldHVybiBkYXRhXG5cbk1ldGVvci5tZXRob2RzXG5cdCdvYmplY3RfcmVjZW50X3JlY29yZCc6IChzcGFjZUlkKS0+XG5cdFx0ZGF0YSA9IG5ldyBBcnJheSgpXG5cdFx0cmVjb3JkcyA9IG5ldyBBcnJheSgpXG5cdFx0YXN5bmNfcmVjZW50X2FnZ3JlZ2F0ZSh0aGlzLnVzZXJJZCwgc3BhY2VJZCwgcmVjb3Jkcylcblx0XHRyZWNvcmRzLmZvckVhY2ggKGl0ZW0pLT5cblx0XHRcdHJlY29yZF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChpdGVtLm9iamVjdF9uYW1lLCBpdGVtLnNwYWNlKVxuXG5cdFx0XHRpZiAhcmVjb3JkX29iamVjdFxuXHRcdFx0XHRyZXR1cm5cblxuXHRcdFx0cmVjb3JkX29iamVjdF9jb2xsZWN0aW9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKGl0ZW0ub2JqZWN0X25hbWUsIGl0ZW0uc3BhY2UpXG5cblx0XHRcdGlmIHJlY29yZF9vYmplY3QgJiYgcmVjb3JkX29iamVjdF9jb2xsZWN0aW9uXG5cdFx0XHRcdGZpZWxkcyA9IHtfaWQ6IDF9XG5cblx0XHRcdFx0ZmllbGRzW3JlY29yZF9vYmplY3QuTkFNRV9GSUVMRF9LRVldID0gMVxuXG5cdFx0XHRcdHJlY29yZCA9IHJlY29yZF9vYmplY3RfY29sbGVjdGlvbi5maW5kT25lKGl0ZW0ucmVjb3JkX2lkWzBdLCB7ZmllbGRzOiBmaWVsZHN9KVxuXHRcdFx0XHRpZiByZWNvcmRcblx0XHRcdFx0XHRkYXRhLnB1c2gge19pZDogcmVjb3JkLl9pZCwgX25hbWU6IHJlY29yZFtyZWNvcmRfb2JqZWN0Lk5BTUVfRklFTERfS0VZXSwgX29iamVjdF9uYW1lOiBpdGVtLm9iamVjdF9uYW1lfVxuXG5cdFx0cmV0dXJuIGRhdGFcblxuXHQnb2JqZWN0X3JlY29yZF9zZWFyY2gnOiAob3B0aW9ucyktPlxuXHRcdHNlbGYgPSB0aGlzXG5cblx0XHRkYXRhID0gbmV3IEFycmF5KClcblxuXHRcdHNlYXJjaFRleHQgPSBvcHRpb25zLnNlYXJjaFRleHRcblx0XHRzcGFjZSA9IG9wdGlvbnMuc3BhY2VcblxuXHRcdF8uZm9yRWFjaCBDcmVhdG9yLm9iamVjdHNCeU5hbWUsIChfb2JqZWN0LCBuYW1lKS0+XG5cdFx0XHRpZiBfb2JqZWN0LmVuYWJsZV9zZWFyY2hcblx0XHRcdFx0b2JqZWN0X3JlY29yZCA9IHNlYXJjaF9vYmplY3Qoc3BhY2UsIF9vYmplY3QubmFtZSwgc2VsZi51c2VySWQsIHNlYXJjaFRleHQpXG5cdFx0XHRcdGRhdGEgPSBkYXRhLmNvbmNhdChvYmplY3RfcmVjb3JkKVxuXG5cdFx0cmV0dXJuIGRhdGFcbiIsInZhciBhc3luY19yZWNlbnRfYWdncmVnYXRlLCByZWNlbnRfYWdncmVnYXRlLCBzZWFyY2hfb2JqZWN0O1xuXG5yZWNlbnRfYWdncmVnYXRlID0gZnVuY3Rpb24oY3JlYXRlZF9ieSwgc3BhY2VJZCwgX3JlY29yZHMsIGNhbGxiYWNrKSB7XG4gIHJldHVybiBDcmVhdG9yLkNvbGxlY3Rpb25zLm9iamVjdF9yZWNlbnRfdmlld2VkLnJhd0NvbGxlY3Rpb24oKS5hZ2dyZWdhdGUoW1xuICAgIHtcbiAgICAgICRtYXRjaDoge1xuICAgICAgICBjcmVhdGVkX2J5OiBjcmVhdGVkX2J5LFxuICAgICAgICBzcGFjZTogc3BhY2VJZFxuICAgICAgfVxuICAgIH0sIHtcbiAgICAgICRncm91cDoge1xuICAgICAgICBfaWQ6IHtcbiAgICAgICAgICBvYmplY3RfbmFtZTogXCIkcmVjb3JkLm9cIixcbiAgICAgICAgICByZWNvcmRfaWQ6IFwiJHJlY29yZC5pZHNcIixcbiAgICAgICAgICBzcGFjZTogXCIkc3BhY2VcIlxuICAgICAgICB9LFxuICAgICAgICBtYXhDcmVhdGVkOiB7XG4gICAgICAgICAgJG1heDogXCIkY3JlYXRlZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICAkc29ydDoge1xuICAgICAgICBtYXhDcmVhdGVkOiAtMVxuICAgICAgfVxuICAgIH0sIHtcbiAgICAgICRsaW1pdDogMTBcbiAgICB9XG4gIF0pLnRvQXJyYXkoZnVuY3Rpb24oZXJyLCBkYXRhKSB7XG4gICAgaWYgKGVycikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycik7XG4gICAgfVxuICAgIGRhdGEuZm9yRWFjaChmdW5jdGlvbihkb2MpIHtcbiAgICAgIHJldHVybiBfcmVjb3Jkcy5wdXNoKGRvYy5faWQpO1xuICAgIH0pO1xuICAgIGlmIChjYWxsYmFjayAmJiBfLmlzRnVuY3Rpb24oY2FsbGJhY2spKSB7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5hc3luY19yZWNlbnRfYWdncmVnYXRlID0gTWV0ZW9yLndyYXBBc3luYyhyZWNlbnRfYWdncmVnYXRlKTtcblxuc2VhcmNoX29iamVjdCA9IGZ1bmN0aW9uKHNwYWNlLCBvYmplY3RfbmFtZSwgdXNlcklkLCBzZWFyY2hUZXh0KSB7XG4gIHZhciBfb2JqZWN0LCBfb2JqZWN0X2NvbGxlY3Rpb24sIF9vYmplY3RfbmFtZV9rZXksIGRhdGEsIGZpZWxkcywgcXVlcnksIHF1ZXJ5X2FuZCwgcmVjb3Jkcywgc2VhcmNoX0tleXdvcmRzO1xuICBkYXRhID0gbmV3IEFycmF5KCk7XG4gIGlmIChzZWFyY2hUZXh0KSB7XG4gICAgX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKTtcbiAgICBfb2JqZWN0X2NvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUpO1xuICAgIF9vYmplY3RfbmFtZV9rZXkgPSBfb2JqZWN0ICE9IG51bGwgPyBfb2JqZWN0Lk5BTUVfRklFTERfS0VZIDogdm9pZCAwO1xuICAgIGlmIChfb2JqZWN0ICYmIF9vYmplY3RfY29sbGVjdGlvbiAmJiBfb2JqZWN0X25hbWVfa2V5KSB7XG4gICAgICBxdWVyeSA9IHt9O1xuICAgICAgc2VhcmNoX0tleXdvcmRzID0gc2VhcmNoVGV4dC5zcGxpdChcIiBcIik7XG4gICAgICBxdWVyeV9hbmQgPSBbXTtcbiAgICAgIHNlYXJjaF9LZXl3b3Jkcy5mb3JFYWNoKGZ1bmN0aW9uKGtleXdvcmQpIHtcbiAgICAgICAgdmFyIHN1YnF1ZXJ5O1xuICAgICAgICBzdWJxdWVyeSA9IHt9O1xuICAgICAgICBzdWJxdWVyeVtfb2JqZWN0X25hbWVfa2V5XSA9IHtcbiAgICAgICAgICAkcmVnZXg6IGtleXdvcmQudHJpbSgpXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBxdWVyeV9hbmQucHVzaChzdWJxdWVyeSk7XG4gICAgICB9KTtcbiAgICAgIHF1ZXJ5LiRhbmQgPSBxdWVyeV9hbmQ7XG4gICAgICBxdWVyeS5zcGFjZSA9IHtcbiAgICAgICAgJGluOiBbc3BhY2VdXG4gICAgICB9O1xuICAgICAgZmllbGRzID0ge1xuICAgICAgICBfaWQ6IDFcbiAgICAgIH07XG4gICAgICBmaWVsZHNbX29iamVjdF9uYW1lX2tleV0gPSAxO1xuICAgICAgcmVjb3JkcyA9IF9vYmplY3RfY29sbGVjdGlvbi5maW5kKHF1ZXJ5LCB7XG4gICAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgICBzb3J0OiB7XG4gICAgICAgICAgbW9kaWZpZWQ6IDFcbiAgICAgICAgfSxcbiAgICAgICAgbGltaXQ6IDVcbiAgICAgIH0pO1xuICAgICAgcmVjb3Jkcy5mb3JFYWNoKGZ1bmN0aW9uKHJlY29yZCkge1xuICAgICAgICByZXR1cm4gZGF0YS5wdXNoKHtcbiAgICAgICAgICBfaWQ6IHJlY29yZC5faWQsXG4gICAgICAgICAgX25hbWU6IHJlY29yZFtfb2JqZWN0X25hbWVfa2V5XSxcbiAgICAgICAgICBfb2JqZWN0X25hbWU6IG9iamVjdF9uYW1lXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhO1xufTtcblxuTWV0ZW9yLm1ldGhvZHMoe1xuICAnb2JqZWN0X3JlY2VudF9yZWNvcmQnOiBmdW5jdGlvbihzcGFjZUlkKSB7XG4gICAgdmFyIGRhdGEsIHJlY29yZHM7XG4gICAgZGF0YSA9IG5ldyBBcnJheSgpO1xuICAgIHJlY29yZHMgPSBuZXcgQXJyYXkoKTtcbiAgICBhc3luY19yZWNlbnRfYWdncmVnYXRlKHRoaXMudXNlcklkLCBzcGFjZUlkLCByZWNvcmRzKTtcbiAgICByZWNvcmRzLmZvckVhY2goZnVuY3Rpb24oaXRlbSkge1xuICAgICAgdmFyIGZpZWxkcywgcmVjb3JkLCByZWNvcmRfb2JqZWN0LCByZWNvcmRfb2JqZWN0X2NvbGxlY3Rpb247XG4gICAgICByZWNvcmRfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3QoaXRlbS5vYmplY3RfbmFtZSwgaXRlbS5zcGFjZSk7XG4gICAgICBpZiAoIXJlY29yZF9vYmplY3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVjb3JkX29iamVjdF9jb2xsZWN0aW9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKGl0ZW0ub2JqZWN0X25hbWUsIGl0ZW0uc3BhY2UpO1xuICAgICAgaWYgKHJlY29yZF9vYmplY3QgJiYgcmVjb3JkX29iamVjdF9jb2xsZWN0aW9uKSB7XG4gICAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgICBfaWQ6IDFcbiAgICAgICAgfTtcbiAgICAgICAgZmllbGRzW3JlY29yZF9vYmplY3QuTkFNRV9GSUVMRF9LRVldID0gMTtcbiAgICAgICAgcmVjb3JkID0gcmVjb3JkX29iamVjdF9jb2xsZWN0aW9uLmZpbmRPbmUoaXRlbS5yZWNvcmRfaWRbMF0sIHtcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkc1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlY29yZCkge1xuICAgICAgICAgIHJldHVybiBkYXRhLnB1c2goe1xuICAgICAgICAgICAgX2lkOiByZWNvcmQuX2lkLFxuICAgICAgICAgICAgX25hbWU6IHJlY29yZFtyZWNvcmRfb2JqZWN0Lk5BTUVfRklFTERfS0VZXSxcbiAgICAgICAgICAgIF9vYmplY3RfbmFtZTogaXRlbS5vYmplY3RfbmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH0sXG4gICdvYmplY3RfcmVjb3JkX3NlYXJjaCc6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICB2YXIgZGF0YSwgc2VhcmNoVGV4dCwgc2VsZiwgc3BhY2U7XG4gICAgc2VsZiA9IHRoaXM7XG4gICAgZGF0YSA9IG5ldyBBcnJheSgpO1xuICAgIHNlYXJjaFRleHQgPSBvcHRpb25zLnNlYXJjaFRleHQ7XG4gICAgc3BhY2UgPSBvcHRpb25zLnNwYWNlO1xuICAgIF8uZm9yRWFjaChDcmVhdG9yLm9iamVjdHNCeU5hbWUsIGZ1bmN0aW9uKF9vYmplY3QsIG5hbWUpIHtcbiAgICAgIHZhciBvYmplY3RfcmVjb3JkO1xuICAgICAgaWYgKF9vYmplY3QuZW5hYmxlX3NlYXJjaCkge1xuICAgICAgICBvYmplY3RfcmVjb3JkID0gc2VhcmNoX29iamVjdChzcGFjZSwgX29iamVjdC5uYW1lLCBzZWxmLnVzZXJJZCwgc2VhcmNoVGV4dCk7XG4gICAgICAgIHJldHVybiBkYXRhID0gZGF0YS5jb25jYXQob2JqZWN0X3JlY29yZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn0pO1xuIiwiTWV0ZW9yLm1ldGhvZHNcbiAgICB1cGRhdGVfZmlsdGVyczogKGxpc3R2aWV3X2lkLCBmaWx0ZXJzLCBmaWx0ZXJfc2NvcGUsIGZpbHRlcl9sb2dpYyktPlxuICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLm9iamVjdF9saXN0dmlld3MuZGlyZWN0LnVwZGF0ZSh7X2lkOiBsaXN0dmlld19pZH0sIHskc2V0OiB7ZmlsdGVyczogZmlsdGVycywgZmlsdGVyX3Njb3BlOiBmaWx0ZXJfc2NvcGUsIGZpbHRlcl9sb2dpYzogZmlsdGVyX2xvZ2ljfX0pXG5cbiAgICB1cGRhdGVfY29sdW1uczogKGxpc3R2aWV3X2lkLCBjb2x1bW5zKS0+XG4gICAgICAgIGNoZWNrKGNvbHVtbnMsIEFycmF5KVxuICAgICAgICBcbiAgICAgICAgaWYgY29sdW1ucy5sZW5ndGggPCAxXG4gICAgICAgICAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yIDQwMCwgXCJTZWxlY3QgYXQgbGVhc3Qgb25lIGZpZWxkIHRvIGRpc3BsYXlcIlxuICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLm9iamVjdF9saXN0dmlld3MudXBkYXRlKHtfaWQ6IGxpc3R2aWV3X2lkfSwgeyRzZXQ6IHtjb2x1bW5zOiBjb2x1bW5zfX0pXG4iLCJNZXRlb3IubWV0aG9kcyh7XG4gIHVwZGF0ZV9maWx0ZXJzOiBmdW5jdGlvbihsaXN0dmlld19pZCwgZmlsdGVycywgZmlsdGVyX3Njb3BlLCBmaWx0ZXJfbG9naWMpIHtcbiAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3RfbGlzdHZpZXdzLmRpcmVjdC51cGRhdGUoe1xuICAgICAgX2lkOiBsaXN0dmlld19pZFxuICAgIH0sIHtcbiAgICAgICRzZXQ6IHtcbiAgICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICAgICAgZmlsdGVyX3Njb3BlOiBmaWx0ZXJfc2NvcGUsXG4gICAgICAgIGZpbHRlcl9sb2dpYzogZmlsdGVyX2xvZ2ljXG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG4gIHVwZGF0ZV9jb2x1bW5zOiBmdW5jdGlvbihsaXN0dmlld19pZCwgY29sdW1ucykge1xuICAgIGNoZWNrKGNvbHVtbnMsIEFycmF5KTtcbiAgICBpZiAoY29sdW1ucy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKDQwMCwgXCJTZWxlY3QgYXQgbGVhc3Qgb25lIGZpZWxkIHRvIGRpc3BsYXlcIik7XG4gICAgfVxuICAgIHJldHVybiBDcmVhdG9yLkNvbGxlY3Rpb25zLm9iamVjdF9saXN0dmlld3MudXBkYXRlKHtcbiAgICAgIF9pZDogbGlzdHZpZXdfaWRcbiAgICB9LCB7XG4gICAgICAkc2V0OiB7XG4gICAgICAgIGNvbHVtbnM6IGNvbHVtbnNcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG4iLCJNZXRlb3IubWV0aG9kc1xuXHQncmVwb3J0X2RhdGEnOiAob3B0aW9ucyktPlxuXHRcdGNoZWNrKG9wdGlvbnMsIE9iamVjdClcblx0XHRzcGFjZSA9IG9wdGlvbnMuc3BhY2Vcblx0XHRmaWVsZHMgPSBvcHRpb25zLmZpZWxkc1xuXHRcdG9iamVjdF9uYW1lID0gb3B0aW9ucy5vYmplY3RfbmFtZVxuXHRcdGZpbHRlcl9zY29wZSA9IG9wdGlvbnMuZmlsdGVyX3Njb3BlXG5cdFx0ZmlsdGVycyA9IG9wdGlvbnMuZmlsdGVyc1xuXHRcdGZpbHRlckZpZWxkcyA9IHt9XG5cdFx0Y29tcG91bmRGaWVsZHMgPSBbXVxuXHRcdG9iamVjdEZpZWxkcyA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKT8uZmllbGRzXG5cdFx0Xy5lYWNoIGZpZWxkcywgKGl0ZW0sIGluZGV4KS0+XG5cdFx0XHRzcGxpdHMgPSBpdGVtLnNwbGl0KFwiLlwiKVxuXHRcdFx0bmFtZSA9IHNwbGl0c1swXVxuXHRcdFx0b2JqZWN0RmllbGQgPSBvYmplY3RGaWVsZHNbbmFtZV1cblx0XHRcdGlmIHNwbGl0cy5sZW5ndGggPiAxIGFuZCBvYmplY3RGaWVsZFxuXHRcdFx0XHRjaGlsZEtleSA9IGl0ZW0ucmVwbGFjZSBuYW1lICsgXCIuXCIsIFwiXCJcblx0XHRcdFx0Y29tcG91bmRGaWVsZHMucHVzaCh7bmFtZTogbmFtZSwgY2hpbGRLZXk6IGNoaWxkS2V5LCBmaWVsZDogb2JqZWN0RmllbGR9KVxuXHRcdFx0ZmlsdGVyRmllbGRzW25hbWVdID0gMVxuXG5cdFx0c2VsZWN0b3IgPSB7fVxuXHRcdHVzZXJJZCA9IHRoaXMudXNlcklkXG5cdFx0c2VsZWN0b3Iuc3BhY2UgPSBzcGFjZVxuXHRcdGlmIGZpbHRlcl9zY29wZSA9PSBcInNwYWNleFwiXG5cdFx0XHRzZWxlY3Rvci5zcGFjZSA9IFxuXHRcdFx0XHQkaW46IFtudWxsLHNwYWNlXVxuXHRcdGVsc2UgaWYgZmlsdGVyX3Njb3BlID09IFwibWluZVwiXG5cdFx0XHRzZWxlY3Rvci5vd25lciA9IHVzZXJJZFxuXG5cdFx0aWYgQ3JlYXRvci5pc0NvbW1vblNwYWNlKHNwYWNlKSAmJiBDcmVhdG9yLmlzU3BhY2VBZG1pbihzcGFjZSwgQHVzZXJJZClcblx0XHRcdGRlbGV0ZSBzZWxlY3Rvci5zcGFjZVxuXG5cdFx0aWYgZmlsdGVycyBhbmQgZmlsdGVycy5sZW5ndGggPiAwXG5cdFx0XHRzZWxlY3RvcltcIiRhbmRcIl0gPSBmaWx0ZXJzXG5cblx0XHRjdXJzb3IgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUpLmZpbmQoc2VsZWN0b3IsIHtmaWVsZHM6IGZpbHRlckZpZWxkcywgc2tpcDogMCwgbGltaXQ6IDEwMDAwfSlcbiNcdFx0aWYgY3Vyc29yLmNvdW50KCkgPiAxMDAwMFxuI1x0XHRcdHJldHVybiBbXVxuXHRcdHJlc3VsdCA9IGN1cnNvci5mZXRjaCgpXG5cdFx0aWYgY29tcG91bmRGaWVsZHMubGVuZ3RoXG5cdFx0XHRyZXN1bHQgPSByZXN1bHQubWFwIChpdGVtLGluZGV4KS0+XG5cdFx0XHRcdF8uZWFjaCBjb21wb3VuZEZpZWxkcywgKGNvbXBvdW5kRmllbGRJdGVtLCBpbmRleCktPlxuXHRcdFx0XHRcdGl0ZW1LZXkgPSBjb21wb3VuZEZpZWxkSXRlbS5uYW1lICsgXCIqJSpcIiArIGNvbXBvdW5kRmllbGRJdGVtLmNoaWxkS2V5LnJlcGxhY2UoL1xcLi9nLCBcIiolKlwiKVxuXHRcdFx0XHRcdGl0ZW1WYWx1ZSA9IGl0ZW1bY29tcG91bmRGaWVsZEl0ZW0ubmFtZV1cblx0XHRcdFx0XHR0eXBlID0gY29tcG91bmRGaWVsZEl0ZW0uZmllbGQudHlwZVxuXHRcdFx0XHRcdGlmIFtcImxvb2t1cFwiLCBcIm1hc3Rlcl9kZXRhaWxcIl0uaW5kZXhPZih0eXBlKSA+IC0xXG5cdFx0XHRcdFx0XHRyZWZlcmVuY2VfdG8gPSBjb21wb3VuZEZpZWxkSXRlbS5maWVsZC5yZWZlcmVuY2VfdG9cblx0XHRcdFx0XHRcdGNvbXBvdW5kRmlsdGVyRmllbGRzID0ge31cblx0XHRcdFx0XHRcdGNvbXBvdW5kRmlsdGVyRmllbGRzW2NvbXBvdW5kRmllbGRJdGVtLmNoaWxkS2V5XSA9IDFcblx0XHRcdFx0XHRcdHJlZmVyZW5jZUl0ZW0gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVmZXJlbmNlX3RvKS5maW5kT25lIHtfaWQ6IGl0ZW1WYWx1ZX0sIGZpZWxkczogY29tcG91bmRGaWx0ZXJGaWVsZHNcblx0XHRcdFx0XHRcdGlmIHJlZmVyZW5jZUl0ZW1cblx0XHRcdFx0XHRcdFx0aXRlbVtpdGVtS2V5XSA9IHJlZmVyZW5jZUl0ZW1bY29tcG91bmRGaWVsZEl0ZW0uY2hpbGRLZXldXG5cdFx0XHRcdFx0ZWxzZSBpZiB0eXBlID09IFwic2VsZWN0XCJcblx0XHRcdFx0XHRcdG9wdGlvbnMgPSBjb21wb3VuZEZpZWxkSXRlbS5maWVsZC5vcHRpb25zXG5cdFx0XHRcdFx0XHRpdGVtW2l0ZW1LZXldID0gXy5maW5kV2hlcmUob3B0aW9ucywge3ZhbHVlOiBpdGVtVmFsdWV9KT8ubGFiZWwgb3IgaXRlbVZhbHVlXG5cdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0aXRlbVtpdGVtS2V5XSA9IGl0ZW1WYWx1ZVxuXHRcdFx0XHRcdHVubGVzcyBpdGVtW2l0ZW1LZXldXG5cdFx0XHRcdFx0XHRpdGVtW2l0ZW1LZXldID0gXCItLVwiXG5cdFx0XHRcdHJldHVybiBpdGVtXG5cdFx0XHRyZXR1cm4gcmVzdWx0XG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIHJlc3VsdFxuXG4iLCJNZXRlb3IubWV0aG9kcyh7XG4gICdyZXBvcnRfZGF0YSc6IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICB2YXIgY29tcG91bmRGaWVsZHMsIGN1cnNvciwgZmllbGRzLCBmaWx0ZXJGaWVsZHMsIGZpbHRlcl9zY29wZSwgZmlsdGVycywgb2JqZWN0RmllbGRzLCBvYmplY3RfbmFtZSwgcmVmLCByZXN1bHQsIHNlbGVjdG9yLCBzcGFjZSwgdXNlcklkO1xuICAgIGNoZWNrKG9wdGlvbnMsIE9iamVjdCk7XG4gICAgc3BhY2UgPSBvcHRpb25zLnNwYWNlO1xuICAgIGZpZWxkcyA9IG9wdGlvbnMuZmllbGRzO1xuICAgIG9iamVjdF9uYW1lID0gb3B0aW9ucy5vYmplY3RfbmFtZTtcbiAgICBmaWx0ZXJfc2NvcGUgPSBvcHRpb25zLmZpbHRlcl9zY29wZTtcbiAgICBmaWx0ZXJzID0gb3B0aW9ucy5maWx0ZXJzO1xuICAgIGZpbHRlckZpZWxkcyA9IHt9O1xuICAgIGNvbXBvdW5kRmllbGRzID0gW107XG4gICAgb2JqZWN0RmllbGRzID0gKHJlZiA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKSkgIT0gbnVsbCA/IHJlZi5maWVsZHMgOiB2b2lkIDA7XG4gICAgXy5lYWNoKGZpZWxkcywgZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcbiAgICAgIHZhciBjaGlsZEtleSwgbmFtZSwgb2JqZWN0RmllbGQsIHNwbGl0cztcbiAgICAgIHNwbGl0cyA9IGl0ZW0uc3BsaXQoXCIuXCIpO1xuICAgICAgbmFtZSA9IHNwbGl0c1swXTtcbiAgICAgIG9iamVjdEZpZWxkID0gb2JqZWN0RmllbGRzW25hbWVdO1xuICAgICAgaWYgKHNwbGl0cy5sZW5ndGggPiAxICYmIG9iamVjdEZpZWxkKSB7XG4gICAgICAgIGNoaWxkS2V5ID0gaXRlbS5yZXBsYWNlKG5hbWUgKyBcIi5cIiwgXCJcIik7XG4gICAgICAgIGNvbXBvdW5kRmllbGRzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgY2hpbGRLZXk6IGNoaWxkS2V5LFxuICAgICAgICAgIGZpZWxkOiBvYmplY3RGaWVsZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXJGaWVsZHNbbmFtZV0gPSAxO1xuICAgIH0pO1xuICAgIHNlbGVjdG9yID0ge307XG4gICAgdXNlcklkID0gdGhpcy51c2VySWQ7XG4gICAgc2VsZWN0b3Iuc3BhY2UgPSBzcGFjZTtcbiAgICBpZiAoZmlsdGVyX3Njb3BlID09PSBcInNwYWNleFwiKSB7XG4gICAgICBzZWxlY3Rvci5zcGFjZSA9IHtcbiAgICAgICAgJGluOiBbbnVsbCwgc3BhY2VdXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZmlsdGVyX3Njb3BlID09PSBcIm1pbmVcIikge1xuICAgICAgc2VsZWN0b3Iub3duZXIgPSB1c2VySWQ7XG4gICAgfVxuICAgIGlmIChDcmVhdG9yLmlzQ29tbW9uU3BhY2Uoc3BhY2UpICYmIENyZWF0b3IuaXNTcGFjZUFkbWluKHNwYWNlLCB0aGlzLnVzZXJJZCkpIHtcbiAgICAgIGRlbGV0ZSBzZWxlY3Rvci5zcGFjZTtcbiAgICB9XG4gICAgaWYgKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxlY3RvcltcIiRhbmRcIl0gPSBmaWx0ZXJzO1xuICAgIH1cbiAgICBjdXJzb3IgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUpLmZpbmQoc2VsZWN0b3IsIHtcbiAgICAgIGZpZWxkczogZmlsdGVyRmllbGRzLFxuICAgICAgc2tpcDogMCxcbiAgICAgIGxpbWl0OiAxMDAwMFxuICAgIH0pO1xuICAgIHJlc3VsdCA9IGN1cnNvci5mZXRjaCgpO1xuICAgIGlmIChjb21wb3VuZEZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgXy5lYWNoKGNvbXBvdW5kRmllbGRzLCBmdW5jdGlvbihjb21wb3VuZEZpZWxkSXRlbSwgaW5kZXgpIHtcbiAgICAgICAgICB2YXIgY29tcG91bmRGaWx0ZXJGaWVsZHMsIGl0ZW1LZXksIGl0ZW1WYWx1ZSwgcmVmMSwgcmVmZXJlbmNlSXRlbSwgcmVmZXJlbmNlX3RvLCB0eXBlO1xuICAgICAgICAgIGl0ZW1LZXkgPSBjb21wb3VuZEZpZWxkSXRlbS5uYW1lICsgXCIqJSpcIiArIGNvbXBvdW5kRmllbGRJdGVtLmNoaWxkS2V5LnJlcGxhY2UoL1xcLi9nLCBcIiolKlwiKTtcbiAgICAgICAgICBpdGVtVmFsdWUgPSBpdGVtW2NvbXBvdW5kRmllbGRJdGVtLm5hbWVdO1xuICAgICAgICAgIHR5cGUgPSBjb21wb3VuZEZpZWxkSXRlbS5maWVsZC50eXBlO1xuICAgICAgICAgIGlmIChbXCJsb29rdXBcIiwgXCJtYXN0ZXJfZGV0YWlsXCJdLmluZGV4T2YodHlwZSkgPiAtMSkge1xuICAgICAgICAgICAgcmVmZXJlbmNlX3RvID0gY29tcG91bmRGaWVsZEl0ZW0uZmllbGQucmVmZXJlbmNlX3RvO1xuICAgICAgICAgICAgY29tcG91bmRGaWx0ZXJGaWVsZHMgPSB7fTtcbiAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyRmllbGRzW2NvbXBvdW5kRmllbGRJdGVtLmNoaWxkS2V5XSA9IDE7XG4gICAgICAgICAgICByZWZlcmVuY2VJdGVtID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlZmVyZW5jZV90bykuZmluZE9uZSh7XG4gICAgICAgICAgICAgIF9pZDogaXRlbVZhbHVlXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgIGZpZWxkczogY29tcG91bmRGaWx0ZXJGaWVsZHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlZmVyZW5jZUl0ZW0pIHtcbiAgICAgICAgICAgICAgaXRlbVtpdGVtS2V5XSA9IHJlZmVyZW5jZUl0ZW1bY29tcG91bmRGaWVsZEl0ZW0uY2hpbGRLZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gXCJzZWxlY3RcIikge1xuICAgICAgICAgICAgb3B0aW9ucyA9IGNvbXBvdW5kRmllbGRJdGVtLmZpZWxkLm9wdGlvbnM7XG4gICAgICAgICAgICBpdGVtW2l0ZW1LZXldID0gKChyZWYxID0gXy5maW5kV2hlcmUob3B0aW9ucywge1xuICAgICAgICAgICAgICB2YWx1ZTogaXRlbVZhbHVlXG4gICAgICAgICAgICB9KSkgIT0gbnVsbCA/IHJlZjEubGFiZWwgOiB2b2lkIDApIHx8IGl0ZW1WYWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbVtpdGVtS2V5XSA9IGl0ZW1WYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFpdGVtW2l0ZW1LZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbVtpdGVtS2V5XSA9IFwiLS1cIjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gIH1cbn0pO1xuIiwiIyMjXG4gICAgdHlwZTogXCJ1c2VyXCJcbiAgICBvYmplY3RfbmFtZTogXCJvYmplY3RfbGlzdHZpZXdzXCJcbiAgICByZWNvcmRfaWQ6IFwie29iamVjdF9uYW1lfSx7bGlzdHZpZXdfaWR9XCJcbiAgICBzZXR0aW5nczpcbiAgICAgICAgY29sdW1uX3dpZHRoOiB7IGZpZWxkX2E6IDEwMCwgZmllbGRfMjogMTUwIH1cbiAgICAgICAgc29ydDogW1tcImZpZWxkX2FcIiwgXCJkZXNjXCJdXVxuICAgIG93bmVyOiB7dXNlcklkfVxuIyMjXG5cbk1ldGVvci5tZXRob2RzXG4gICAgXCJ0YWJ1bGFyX3NvcnRfc2V0dGluZ3NcIjogKG9iamVjdF9uYW1lLCBsaXN0X3ZpZXdfaWQsIHNvcnQpLT5cbiAgICAgICAgdXNlcklkID0gdGhpcy51c2VySWRcbiAgICAgICAgc2V0dGluZyA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuZmluZE9uZSh7b2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLCByZWNvcmRfaWQ6IFwib2JqZWN0X2xpc3R2aWV3c1wiLCBvd25lcjogdXNlcklkfSlcbiAgICAgICAgaWYgc2V0dGluZ1xuICAgICAgICAgICAgQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy51cGRhdGUoe19pZDogc2V0dGluZy5faWR9LCB7JHNldDoge1wic2V0dGluZ3MuI3tsaXN0X3ZpZXdfaWR9LnNvcnRcIjogc29ydH19KVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBkb2MgPSBcbiAgICAgICAgICAgICAgICB0eXBlOiBcInVzZXJcIlxuICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lOiBvYmplY3RfbmFtZVxuICAgICAgICAgICAgICAgIHJlY29yZF9pZDogXCJvYmplY3RfbGlzdHZpZXdzXCJcbiAgICAgICAgICAgICAgICBzZXR0aW5nczoge31cbiAgICAgICAgICAgICAgICBvd25lcjogdXNlcklkXG5cbiAgICAgICAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdID0ge31cbiAgICAgICAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdLnNvcnQgPSBzb3J0XG5cbiAgICAgICAgICAgIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuaW5zZXJ0KGRvYylcblxuICAgIFwidGFidWxhcl9jb2x1bW5fd2lkdGhfc2V0dGluZ3NcIjogKG9iamVjdF9uYW1lLCBsaXN0X3ZpZXdfaWQsIGNvbHVtbl93aWR0aCktPlxuICAgICAgICB1c2VySWQgPSB0aGlzLnVzZXJJZFxuICAgICAgICBzZXR0aW5nID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5maW5kT25lKHtvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsIHJlY29yZF9pZDogXCJvYmplY3RfbGlzdHZpZXdzXCIsIG93bmVyOiB1c2VySWR9KVxuICAgICAgICBpZiBzZXR0aW5nXG4gICAgICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLnVwZGF0ZSh7X2lkOiBzZXR0aW5nLl9pZH0sIHskc2V0OiB7XCJzZXR0aW5ncy4je2xpc3Rfdmlld19pZH0uY29sdW1uX3dpZHRoXCI6IGNvbHVtbl93aWR0aH19KVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBkb2MgPSBcbiAgICAgICAgICAgICAgICB0eXBlOiBcInVzZXJcIlxuICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lOiBvYmplY3RfbmFtZVxuICAgICAgICAgICAgICAgIHJlY29yZF9pZDogXCJvYmplY3RfbGlzdHZpZXdzXCJcbiAgICAgICAgICAgICAgICBzZXR0aW5nczoge31cbiAgICAgICAgICAgICAgICBvd25lcjogdXNlcklkXG5cbiAgICAgICAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdID0ge31cbiAgICAgICAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdLmNvbHVtbl93aWR0aCA9IGNvbHVtbl93aWR0aFxuXG4gICAgICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmluc2VydChkb2MpXG5cbiAgICBcImdyaWRfc2V0dGluZ3NcIjogKG9iamVjdF9uYW1lLCBsaXN0X3ZpZXdfaWQsIGNvbHVtbl93aWR0aCwgc29ydCktPlxuICAgICAgICB1c2VySWQgPSB0aGlzLnVzZXJJZFxuICAgICAgICBzZXR0aW5nID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5maW5kT25lKHtvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsIHJlY29yZF9pZDogXCJvYmplY3RfZ3JpZHZpZXdzXCIsIG93bmVyOiB1c2VySWR9KVxuICAgICAgICBpZiBzZXR0aW5nXG4gICAgICAgICAgICAjIOavj+asoemDveW8uuWItuaUueWPmF9pZF9hY3Rpb25z5YiX55qE5a695bqm77yM5Lul6Kej5Yaz5b2T55So5oi35Y+q5pS55Y+Y5a2X5q615qyh5bqP6ICM5rKh5pyJ5pS55Y+Y5Lu75L2V5a2X5q615a695bqm5pe277yM5YmN56uv5rKh5pyJ6K6i6ZiF5Yiw5a2X5q615qyh5bqP5Y+Y5pu055qE5pWw5o2u55qE6Zeu6aKYXG4gICAgICAgICAgICBjb2x1bW5fd2lkdGguX2lkX2FjdGlvbnMgPSBpZiBzZXR0aW5nLnNldHRpbmdzW1wiI3tsaXN0X3ZpZXdfaWR9XCJdPy5jb2x1bW5fd2lkdGg/Ll9pZF9hY3Rpb25zID09IDQ2IHRoZW4gNDcgZWxzZSA0NlxuICAgICAgICAgICAgaWYgc29ydFxuICAgICAgICAgICAgICAgIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MudXBkYXRlKHtfaWQ6IHNldHRpbmcuX2lkfSwgeyRzZXQ6IHtcInNldHRpbmdzLiN7bGlzdF92aWV3X2lkfS5zb3J0XCI6IHNvcnQsIFwic2V0dGluZ3MuI3tsaXN0X3ZpZXdfaWR9LmNvbHVtbl93aWR0aFwiOiBjb2x1bW5fd2lkdGh9fSlcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLnVwZGF0ZSh7X2lkOiBzZXR0aW5nLl9pZH0sIHskc2V0OiB7XCJzZXR0aW5ncy4je2xpc3Rfdmlld19pZH0uY29sdW1uX3dpZHRoXCI6IGNvbHVtbl93aWR0aH19KVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBkb2MgPVxuICAgICAgICAgICAgICAgIHR5cGU6IFwidXNlclwiXG4gICAgICAgICAgICAgICAgb2JqZWN0X25hbWU6IG9iamVjdF9uYW1lXG4gICAgICAgICAgICAgICAgcmVjb3JkX2lkOiBcIm9iamVjdF9ncmlkdmlld3NcIlxuICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7fVxuICAgICAgICAgICAgICAgIG93bmVyOiB1c2VySWRcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0gPSB7fVxuICAgICAgICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0uY29sdW1uX3dpZHRoID0gY29sdW1uX3dpZHRoXG4gICAgICAgICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXS5zb3J0ID0gc29ydFxuXG4gICAgICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmluc2VydChkb2MpIiwiXG4vKlxuICAgIHR5cGU6IFwidXNlclwiXG4gICAgb2JqZWN0X25hbWU6IFwib2JqZWN0X2xpc3R2aWV3c1wiXG4gICAgcmVjb3JkX2lkOiBcIntvYmplY3RfbmFtZX0se2xpc3R2aWV3X2lkfVwiXG4gICAgc2V0dGluZ3M6XG4gICAgICAgIGNvbHVtbl93aWR0aDogeyBmaWVsZF9hOiAxMDAsIGZpZWxkXzI6IDE1MCB9XG4gICAgICAgIHNvcnQ6IFtbXCJmaWVsZF9hXCIsIFwiZGVzY1wiXV1cbiAgICBvd25lcjoge3VzZXJJZH1cbiAqL1xuTWV0ZW9yLm1ldGhvZHMoe1xuICBcInRhYnVsYXJfc29ydF9zZXR0aW5nc1wiOiBmdW5jdGlvbihvYmplY3RfbmFtZSwgbGlzdF92aWV3X2lkLCBzb3J0KSB7XG4gICAgdmFyIGRvYywgb2JqLCBzZXR0aW5nLCB1c2VySWQ7XG4gICAgdXNlcklkID0gdGhpcy51c2VySWQ7XG4gICAgc2V0dGluZyA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuZmluZE9uZSh7XG4gICAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsXG4gICAgICByZWNvcmRfaWQ6IFwib2JqZWN0X2xpc3R2aWV3c1wiLFxuICAgICAgb3duZXI6IHVzZXJJZFxuICAgIH0pO1xuICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy51cGRhdGUoe1xuICAgICAgICBfaWQ6IHNldHRpbmcuX2lkXG4gICAgICB9LCB7XG4gICAgICAgICRzZXQ6IChcbiAgICAgICAgICBvYmogPSB7fSxcbiAgICAgICAgICBvYmpbXCJzZXR0aW5ncy5cIiArIGxpc3Rfdmlld19pZCArIFwiLnNvcnRcIl0gPSBzb3J0LFxuICAgICAgICAgIG9ialxuICAgICAgICApXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jID0ge1xuICAgICAgICB0eXBlOiBcInVzZXJcIixcbiAgICAgICAgb2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLFxuICAgICAgICByZWNvcmRfaWQ6IFwib2JqZWN0X2xpc3R2aWV3c1wiLFxuICAgICAgICBzZXR0aW5nczoge30sXG4gICAgICAgIG93bmVyOiB1c2VySWRcbiAgICAgIH07XG4gICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXSA9IHt9O1xuICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0uc29ydCA9IHNvcnQ7XG4gICAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5pbnNlcnQoZG9jKTtcbiAgICB9XG4gIH0sXG4gIFwidGFidWxhcl9jb2x1bW5fd2lkdGhfc2V0dGluZ3NcIjogZnVuY3Rpb24ob2JqZWN0X25hbWUsIGxpc3Rfdmlld19pZCwgY29sdW1uX3dpZHRoKSB7XG4gICAgdmFyIGRvYywgb2JqLCBzZXR0aW5nLCB1c2VySWQ7XG4gICAgdXNlcklkID0gdGhpcy51c2VySWQ7XG4gICAgc2V0dGluZyA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuZmluZE9uZSh7XG4gICAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsXG4gICAgICByZWNvcmRfaWQ6IFwib2JqZWN0X2xpc3R2aWV3c1wiLFxuICAgICAgb3duZXI6IHVzZXJJZFxuICAgIH0pO1xuICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy51cGRhdGUoe1xuICAgICAgICBfaWQ6IHNldHRpbmcuX2lkXG4gICAgICB9LCB7XG4gICAgICAgICRzZXQ6IChcbiAgICAgICAgICBvYmogPSB7fSxcbiAgICAgICAgICBvYmpbXCJzZXR0aW5ncy5cIiArIGxpc3Rfdmlld19pZCArIFwiLmNvbHVtbl93aWR0aFwiXSA9IGNvbHVtbl93aWR0aCxcbiAgICAgICAgICBvYmpcbiAgICAgICAgKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvYyA9IHtcbiAgICAgICAgdHlwZTogXCJ1c2VyXCIsXG4gICAgICAgIG9iamVjdF9uYW1lOiBvYmplY3RfbmFtZSxcbiAgICAgICAgcmVjb3JkX2lkOiBcIm9iamVjdF9saXN0dmlld3NcIixcbiAgICAgICAgc2V0dGluZ3M6IHt9LFxuICAgICAgICBvd25lcjogdXNlcklkXG4gICAgICB9O1xuICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0gPSB7fTtcbiAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdLmNvbHVtbl93aWR0aCA9IGNvbHVtbl93aWR0aDtcbiAgICAgIHJldHVybiBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmluc2VydChkb2MpO1xuICAgIH1cbiAgfSxcbiAgXCJncmlkX3NldHRpbmdzXCI6IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBsaXN0X3ZpZXdfaWQsIGNvbHVtbl93aWR0aCwgc29ydCkge1xuICAgIHZhciBkb2MsIG9iaiwgb2JqMSwgcmVmLCByZWYxLCBzZXR0aW5nLCB1c2VySWQ7XG4gICAgdXNlcklkID0gdGhpcy51c2VySWQ7XG4gICAgc2V0dGluZyA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuZmluZE9uZSh7XG4gICAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsXG4gICAgICByZWNvcmRfaWQ6IFwib2JqZWN0X2dyaWR2aWV3c1wiLFxuICAgICAgb3duZXI6IHVzZXJJZFxuICAgIH0pO1xuICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICBjb2x1bW5fd2lkdGguX2lkX2FjdGlvbnMgPSAoKHJlZiA9IHNldHRpbmcuc2V0dGluZ3NbXCJcIiArIGxpc3Rfdmlld19pZF0pICE9IG51bGwgPyAocmVmMSA9IHJlZi5jb2x1bW5fd2lkdGgpICE9IG51bGwgPyByZWYxLl9pZF9hY3Rpb25zIDogdm9pZCAwIDogdm9pZCAwKSA9PT0gNDYgPyA0NyA6IDQ2O1xuICAgICAgaWYgKHNvcnQpIHtcbiAgICAgICAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MudXBkYXRlKHtcbiAgICAgICAgICBfaWQ6IHNldHRpbmcuX2lkXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAkc2V0OiAoXG4gICAgICAgICAgICBvYmogPSB7fSxcbiAgICAgICAgICAgIG9ialtcInNldHRpbmdzLlwiICsgbGlzdF92aWV3X2lkICsgXCIuc29ydFwiXSA9IHNvcnQsXG4gICAgICAgICAgICBvYmpbXCJzZXR0aW5ncy5cIiArIGxpc3Rfdmlld19pZCArIFwiLmNvbHVtbl93aWR0aFwiXSA9IGNvbHVtbl93aWR0aCxcbiAgICAgICAgICAgIG9ialxuICAgICAgICAgIClcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy51cGRhdGUoe1xuICAgICAgICAgIF9pZDogc2V0dGluZy5faWRcbiAgICAgICAgfSwge1xuICAgICAgICAgICRzZXQ6IChcbiAgICAgICAgICAgIG9iajEgPSB7fSxcbiAgICAgICAgICAgIG9iajFbXCJzZXR0aW5ncy5cIiArIGxpc3Rfdmlld19pZCArIFwiLmNvbHVtbl93aWR0aFwiXSA9IGNvbHVtbl93aWR0aCxcbiAgICAgICAgICAgIG9iajFcbiAgICAgICAgICApXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkb2MgPSB7XG4gICAgICAgIHR5cGU6IFwidXNlclwiLFxuICAgICAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsXG4gICAgICAgIHJlY29yZF9pZDogXCJvYmplY3RfZ3JpZHZpZXdzXCIsXG4gICAgICAgIHNldHRpbmdzOiB7fSxcbiAgICAgICAgb3duZXI6IHVzZXJJZFxuICAgICAgfTtcbiAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdID0ge307XG4gICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXS5jb2x1bW5fd2lkdGggPSBjb2x1bW5fd2lkdGg7XG4gICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXS5zb3J0ID0gc29ydDtcbiAgICAgIHJldHVybiBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmluc2VydChkb2MpO1xuICAgIH1cbiAgfVxufSk7XG4iLCJ4bWwyanMgPSByZXF1aXJlICd4bWwyanMnXG5mcyA9IHJlcXVpcmUgJ2ZzJ1xucGF0aCA9IHJlcXVpcmUgJ3BhdGgnXG5ta2RpcnAgPSByZXF1aXJlICdta2RpcnAnXG5cbmxvZ2dlciA9IG5ldyBMb2dnZXIgJ0V4cG9ydF9UT19YTUwnXG5cbl93cml0ZVhtbEZpbGUgPSAoanNvbk9iaixvYmpOYW1lKSAtPlxuXHQjIOi9rHhtbFxuXHRidWlsZGVyID0gbmV3IHhtbDJqcy5CdWlsZGVyKClcblx0eG1sID0gYnVpbGRlci5idWlsZE9iamVjdCBqc29uT2JqXG5cblx0IyDovazkuLpidWZmZXJcblx0c3RyZWFtID0gbmV3IEJ1ZmZlciB4bWxcblxuXHQjIOagueaNruW9k+WkqeaXtumXtOeahOW5tOaciOaXpeS9nOS4uuWtmOWCqOi3r+W+hFxuXHRub3cgPSBuZXcgRGF0ZVxuXHR5ZWFyID0gbm93LmdldEZ1bGxZZWFyKClcblx0bW9udGggPSBub3cuZ2V0TW9udGgoKSArIDFcblx0ZGF5ID0gbm93LmdldERhdGUoKVxuXG5cdCMg5paH5Lu26Lev5b6EXG5cdGZpbGVQYXRoID0gcGF0aC5qb2luKF9fbWV0ZW9yX2Jvb3RzdHJhcF9fLnNlcnZlckRpciwnLi4vLi4vLi4vZXhwb3J0LycgKyB5ZWFyICsgJy8nICsgbW9udGggKyAnLycgKyBkYXkgKyAnLycgKyBvYmpOYW1lIClcblx0ZmlsZU5hbWUgPSBqc29uT2JqPy5faWQgKyBcIi54bWxcIlxuXHRmaWxlQWRkcmVzcyA9IHBhdGguam9pbiBmaWxlUGF0aCwgZmlsZU5hbWVcblxuXHRpZiAhZnMuZXhpc3RzU3luYyBmaWxlUGF0aFxuXHRcdG1rZGlycC5zeW5jIGZpbGVQYXRoXG5cblx0IyDlhpnlhaXmlofku7Zcblx0ZnMud3JpdGVGaWxlIGZpbGVBZGRyZXNzLCBzdHJlYW0sIChlcnIpIC0+XG5cdFx0aWYgZXJyXG5cdFx0XHRsb2dnZXIuZXJyb3IgXCIje2pzb25PYmouX2lkfeWGmeWFpXhtbOaWh+S7tuWksei0pVwiLGVyclxuXHRcblx0cmV0dXJuIGZpbGVQYXRoXG5cblxuIyDmlbTnkIZGaWVsZHPnmoRqc29u5pWw5o2uXG5fbWl4RmllbGRzRGF0YSA9IChvYmosb2JqTmFtZSkgLT5cblx0IyDliJ3lp4vljJblr7nosaHmlbDmja5cblx0anNvbk9iaiA9IHt9XG5cdCMg6I635Y+WZmllbGRzXG5cdG9iakZpZWxkcyA9IENyZWF0b3I/LmdldE9iamVjdChvYmpOYW1lKT8uZmllbGRzXG5cblx0bWl4RGVmYXVsdCA9IChmaWVsZF9uYW1lKS0+XG5cdFx0anNvbk9ialtmaWVsZF9uYW1lXSA9IG9ialtmaWVsZF9uYW1lXSB8fCBcIlwiXG5cblx0bWl4RGF0ZSA9IChmaWVsZF9uYW1lLHR5cGUpLT5cblx0XHRkYXRlID0gb2JqW2ZpZWxkX25hbWVdXG5cdFx0aWYgdHlwZSA9PSBcImRhdGVcIlxuXHRcdFx0Zm9ybWF0ID0gXCJZWVlZLU1NLUREXCJcblx0XHRlbHNlXG5cdFx0XHRmb3JtYXQgPSBcIllZWVktTU0tREQgSEg6bW06c3NcIlxuXHRcdGlmIGRhdGU/IGFuZCBmb3JtYXQ/XG5cdFx0XHRkYXRlU3RyID0gbW9tZW50KGRhdGUpLmZvcm1hdChmb3JtYXQpXG5cdFx0anNvbk9ialtmaWVsZF9uYW1lXSA9IGRhdGVTdHIgfHwgXCJcIlxuXG5cdG1peEJvb2wgPSAoZmllbGRfbmFtZSktPlxuXHRcdGlmIG9ialtmaWVsZF9uYW1lXSA9PSB0cnVlXG5cdFx0XHRqc29uT2JqW2ZpZWxkX25hbWVdID0gXCLmmK9cIlxuXHRcdGVsc2UgaWYgb2JqW2ZpZWxkX25hbWVdID09IGZhbHNlXG5cdFx0XHRqc29uT2JqW2ZpZWxkX25hbWVdID0gXCLlkKZcIlxuXHRcdGVsc2Vcblx0XHRcdGpzb25PYmpbZmllbGRfbmFtZV0gPSBcIlwiXG5cblx0IyDlvqrnjq/mr4/kuKpmaWVsZHMs5bm25Yik5pat5Y+W5YC8XG5cdF8uZWFjaCBvYmpGaWVsZHMsIChmaWVsZCwgZmllbGRfbmFtZSktPlxuXHRcdHN3aXRjaCBmaWVsZD8udHlwZVxuXHRcdFx0d2hlbiBcImRhdGVcIixcImRhdGV0aW1lXCIgdGhlbiBtaXhEYXRlIGZpZWxkX25hbWUsZmllbGQudHlwZVxuXHRcdFx0d2hlbiBcImJvb2xlYW5cIiB0aGVuIG1peEJvb2wgZmllbGRfbmFtZVxuXHRcdFx0ZWxzZSBtaXhEZWZhdWx0IGZpZWxkX25hbWVcblxuXHRyZXR1cm4ganNvbk9ialxuXG4jIOiOt+WPluWtkOihqOaVtOeQhuaVsOaNrlxuX21peFJlbGF0ZWREYXRhID0gKG9iaixvYmpOYW1lKSAtPlxuXHQjIOWIneWni+WMluWvueixoeaVsOaNrlxuXHRyZWxhdGVkX29iamVjdHMgPSB7fVxuXG5cdCMg6I635Y+W55u45YWz6KGoXG5cdHJlbGF0ZWRPYmpOYW1lcyA9IENyZWF0b3I/LmdldEFsbFJlbGF0ZWRPYmplY3RzIG9iak5hbWVcblxuXHQjIOW+queOr+ebuOWFs+ihqFxuXHRyZWxhdGVkT2JqTmFtZXMuZm9yRWFjaCAocmVsYXRlZE9iak5hbWUpIC0+XG5cdFx0IyDmr4/kuKrooajlrprkuYnkuIDkuKrlr7nosaHmlbDnu4Rcblx0XHRyZWxhdGVkVGFibGVEYXRhID0gW11cblxuXHRcdCMgKuiuvue9ruWFs+iBlOaQnOe0ouafpeivoueahOWtl+autVxuXHRcdCMg6ZmE5Lu255qE5YWz6IGU5pCc57Si5a2X5q615piv5a6a5q2755qEXG5cdFx0aWYgcmVsYXRlZE9iak5hbWUgPT0gXCJjbXNfZmlsZXNcIlxuXHRcdFx0cmVsYXRlZF9maWVsZF9uYW1lID0gXCJwYXJlbnQuaWRzXCJcblx0XHRlbHNlXG5cdFx0XHQjIOiOt+WPlmZpZWxkc1xuXHRcdFx0ZmllbGRzID0gQ3JlYXRvcj8uT2JqZWN0c1tyZWxhdGVkT2JqTmFtZV0/LmZpZWxkc1xuXHRcdFx0IyDlvqrnjq/mr4/kuKpmaWVsZCzmib7lh7pyZWZlcmVuY2VfdG/nmoTlhbPogZTlrZfmrrVcblx0XHRcdHJlbGF0ZWRfZmllbGRfbmFtZSA9IFwiXCJcblx0XHRcdF8uZWFjaCBmaWVsZHMsIChmaWVsZCwgZmllbGRfbmFtZSktPlxuXHRcdFx0XHRpZiBmaWVsZD8ucmVmZXJlbmNlX3RvID09IG9iak5hbWVcblx0XHRcdFx0XHRyZWxhdGVkX2ZpZWxkX25hbWUgPSBmaWVsZF9uYW1lXG5cblx0XHQjIOagueaNruaJvuWHuueahOWFs+iBlOWtl+aute+8jOafpeWtkOihqOaVsOaNrlxuXHRcdGlmIHJlbGF0ZWRfZmllbGRfbmFtZVxuXHRcdFx0cmVsYXRlZENvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVsYXRlZE9iak5hbWUpXG5cdFx0XHQjIOiOt+WPluWIsOaJgOacieeahOaVsOaNrlxuXHRcdFx0cmVsYXRlZFJlY29yZExpc3QgPSByZWxhdGVkQ29sbGVjdGlvbi5maW5kKHtcIiN7cmVsYXRlZF9maWVsZF9uYW1lfVwiOm9iai5faWR9KS5mZXRjaCgpXG5cdFx0XHQjIOW+queOr+avj+S4gOadoeaVsOaNrlxuXHRcdFx0cmVsYXRlZFJlY29yZExpc3QuZm9yRWFjaCAocmVsYXRlZE9iaiktPlxuXHRcdFx0XHQjIOaVtOWQiGZpZWxkc+aVsOaNrlxuXHRcdFx0XHRmaWVsZHNEYXRhID0gX21peEZpZWxkc0RhdGEgcmVsYXRlZE9iaixyZWxhdGVkT2JqTmFtZVxuXHRcdFx0XHQjIOaKiuS4gOadoeiusOW9leaPkuWFpeWIsOWvueixoeaVsOe7hOS4rVxuXHRcdFx0XHRyZWxhdGVkVGFibGVEYXRhLnB1c2ggZmllbGRzRGF0YVxuXG5cdFx0IyDmiorkuIDkuKrlrZDooajnmoTmiYDmnInmlbDmja7mj5LlhaXliLByZWxhdGVkX29iamVjdHPkuK3vvIzlho3lvqrnjq/kuIvkuIDkuKpcblx0XHRyZWxhdGVkX29iamVjdHNbcmVsYXRlZE9iak5hbWVdID0gcmVsYXRlZFRhYmxlRGF0YVxuXG5cdHJldHVybiByZWxhdGVkX29iamVjdHNcblxuIyBDcmVhdG9yLkV4cG9ydDJ4bWwoKVxuQ3JlYXRvci5FeHBvcnQyeG1sID0gKG9iak5hbWUsIHJlY29yZExpc3QpIC0+XG5cdGxvZ2dlci5pbmZvIFwiUnVuIENyZWF0b3IuRXhwb3J0MnhtbFwiXG5cblx0Y29uc29sZS50aW1lIFwiQ3JlYXRvci5FeHBvcnQyeG1sXCJcblxuXHQjIOa1i+ivleaVsOaNrlxuXHQjIG9iak5hbWUgPSBcImFyY2hpdmVfcmVjb3Jkc1wiXG5cblx0IyDmn6Xmib7lr7nosaHmlbDmja5cblx0Y29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmpOYW1lKVxuXHQjIOa1i+ivleaVsOaNrlxuXHRyZWNvcmRMaXN0ID0gY29sbGVjdGlvbi5maW5kKHt9KS5mZXRjaCgpXG5cblx0cmVjb3JkTGlzdC5mb3JFYWNoIChyZWNvcmRPYmopLT5cblx0XHRqc29uT2JqID0ge31cblx0XHRqc29uT2JqLl9pZCA9IHJlY29yZE9iai5faWRcblxuXHRcdCMg5pW055CG5Li76KGo55qERmllbGRz5pWw5o2uXG5cdFx0ZmllbGRzRGF0YSA9IF9taXhGaWVsZHNEYXRhIHJlY29yZE9iaixvYmpOYW1lXG5cdFx0anNvbk9ialtvYmpOYW1lXSA9IGZpZWxkc0RhdGFcblxuXHRcdCMg5pW055CG55u45YWz6KGo5pWw5o2uXG5cdFx0cmVsYXRlZF9vYmplY3RzID0gX21peFJlbGF0ZWREYXRhIHJlY29yZE9iaixvYmpOYW1lXG5cblx0XHRqc29uT2JqW1wicmVsYXRlZF9vYmplY3RzXCJdID0gcmVsYXRlZF9vYmplY3RzXG5cblx0XHQjIOi9rOS4unhtbOS/neWtmOaWh+S7tlxuXHRcdGZpbGVQYXRoID0gX3dyaXRlWG1sRmlsZSBqc29uT2JqLG9iak5hbWVcblxuXHRjb25zb2xlLnRpbWVFbmQgXCJDcmVhdG9yLkV4cG9ydDJ4bWxcIlxuXHRyZXR1cm4gZmlsZVBhdGgiLCJ2YXIgX21peEZpZWxkc0RhdGEsIF9taXhSZWxhdGVkRGF0YSwgX3dyaXRlWG1sRmlsZSwgZnMsIGxvZ2dlciwgbWtkaXJwLCBwYXRoLCB4bWwyanM7XG5cbnhtbDJqcyA9IHJlcXVpcmUoJ3htbDJqcycpO1xuXG5mcyA9IHJlcXVpcmUoJ2ZzJyk7XG5cbnBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1rZGlycCA9IHJlcXVpcmUoJ21rZGlycCcpO1xuXG5sb2dnZXIgPSBuZXcgTG9nZ2VyKCdFeHBvcnRfVE9fWE1MJyk7XG5cbl93cml0ZVhtbEZpbGUgPSBmdW5jdGlvbihqc29uT2JqLCBvYmpOYW1lKSB7XG4gIHZhciBidWlsZGVyLCBkYXksIGZpbGVBZGRyZXNzLCBmaWxlTmFtZSwgZmlsZVBhdGgsIG1vbnRoLCBub3csIHN0cmVhbSwgeG1sLCB5ZWFyO1xuICBidWlsZGVyID0gbmV3IHhtbDJqcy5CdWlsZGVyKCk7XG4gIHhtbCA9IGJ1aWxkZXIuYnVpbGRPYmplY3QoanNvbk9iaik7XG4gIHN0cmVhbSA9IG5ldyBCdWZmZXIoeG1sKTtcbiAgbm93ID0gbmV3IERhdGU7XG4gIHllYXIgPSBub3cuZ2V0RnVsbFllYXIoKTtcbiAgbW9udGggPSBub3cuZ2V0TW9udGgoKSArIDE7XG4gIGRheSA9IG5vdy5nZXREYXRlKCk7XG4gIGZpbGVQYXRoID0gcGF0aC5qb2luKF9fbWV0ZW9yX2Jvb3RzdHJhcF9fLnNlcnZlckRpciwgJy4uLy4uLy4uL2V4cG9ydC8nICsgeWVhciArICcvJyArIG1vbnRoICsgJy8nICsgZGF5ICsgJy8nICsgb2JqTmFtZSk7XG4gIGZpbGVOYW1lID0gKGpzb25PYmogIT0gbnVsbCA/IGpzb25PYmouX2lkIDogdm9pZCAwKSArIFwiLnhtbFwiO1xuICBmaWxlQWRkcmVzcyA9IHBhdGguam9pbihmaWxlUGF0aCwgZmlsZU5hbWUpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgbWtkaXJwLnN5bmMoZmlsZVBhdGgpO1xuICB9XG4gIGZzLndyaXRlRmlsZShmaWxlQWRkcmVzcywgc3RyZWFtLCBmdW5jdGlvbihlcnIpIHtcbiAgICBpZiAoZXJyKSB7XG4gICAgICByZXR1cm4gbG9nZ2VyLmVycm9yKGpzb25PYmouX2lkICsgXCLlhpnlhaV4bWzmlofku7blpLHotKVcIiwgZXJyKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZmlsZVBhdGg7XG59O1xuXG5fbWl4RmllbGRzRGF0YSA9IGZ1bmN0aW9uKG9iaiwgb2JqTmFtZSkge1xuICB2YXIganNvbk9iaiwgbWl4Qm9vbCwgbWl4RGF0ZSwgbWl4RGVmYXVsdCwgb2JqRmllbGRzLCByZWY7XG4gIGpzb25PYmogPSB7fTtcbiAgb2JqRmllbGRzID0gdHlwZW9mIENyZWF0b3IgIT09IFwidW5kZWZpbmVkXCIgJiYgQ3JlYXRvciAhPT0gbnVsbCA/IChyZWYgPSBDcmVhdG9yLmdldE9iamVjdChvYmpOYW1lKSkgIT0gbnVsbCA/IHJlZi5maWVsZHMgOiB2b2lkIDAgOiB2b2lkIDA7XG4gIG1peERlZmF1bHQgPSBmdW5jdGlvbihmaWVsZF9uYW1lKSB7XG4gICAgcmV0dXJuIGpzb25PYmpbZmllbGRfbmFtZV0gPSBvYmpbZmllbGRfbmFtZV0gfHwgXCJcIjtcbiAgfTtcbiAgbWl4RGF0ZSA9IGZ1bmN0aW9uKGZpZWxkX25hbWUsIHR5cGUpIHtcbiAgICB2YXIgZGF0ZSwgZGF0ZVN0ciwgZm9ybWF0O1xuICAgIGRhdGUgPSBvYmpbZmllbGRfbmFtZV07XG4gICAgaWYgKHR5cGUgPT09IFwiZGF0ZVwiKSB7XG4gICAgICBmb3JtYXQgPSBcIllZWVktTU0tRERcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybWF0ID0gXCJZWVlZLU1NLUREIEhIOm1tOnNzXCI7XG4gICAgfVxuICAgIGlmICgoZGF0ZSAhPSBudWxsKSAmJiAoZm9ybWF0ICE9IG51bGwpKSB7XG4gICAgICBkYXRlU3RyID0gbW9tZW50KGRhdGUpLmZvcm1hdChmb3JtYXQpO1xuICAgIH1cbiAgICByZXR1cm4ganNvbk9ialtmaWVsZF9uYW1lXSA9IGRhdGVTdHIgfHwgXCJcIjtcbiAgfTtcbiAgbWl4Qm9vbCA9IGZ1bmN0aW9uKGZpZWxkX25hbWUpIHtcbiAgICBpZiAob2JqW2ZpZWxkX25hbWVdID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4ganNvbk9ialtmaWVsZF9uYW1lXSA9IFwi5pivXCI7XG4gICAgfSBlbHNlIGlmIChvYmpbZmllbGRfbmFtZV0gPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4ganNvbk9ialtmaWVsZF9uYW1lXSA9IFwi5ZCmXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBqc29uT2JqW2ZpZWxkX25hbWVdID0gXCJcIjtcbiAgICB9XG4gIH07XG4gIF8uZWFjaChvYmpGaWVsZHMsIGZ1bmN0aW9uKGZpZWxkLCBmaWVsZF9uYW1lKSB7XG4gICAgc3dpdGNoIChmaWVsZCAhPSBudWxsID8gZmllbGQudHlwZSA6IHZvaWQgMCkge1xuICAgICAgY2FzZSBcImRhdGVcIjpcbiAgICAgIGNhc2UgXCJkYXRldGltZVwiOlxuICAgICAgICByZXR1cm4gbWl4RGF0ZShmaWVsZF9uYW1lLCBmaWVsZC50eXBlKTtcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgIHJldHVybiBtaXhCb29sKGZpZWxkX25hbWUpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG1peERlZmF1bHQoZmllbGRfbmFtZSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGpzb25PYmo7XG59O1xuXG5fbWl4UmVsYXRlZERhdGEgPSBmdW5jdGlvbihvYmosIG9iak5hbWUpIHtcbiAgdmFyIHJlbGF0ZWRPYmpOYW1lcywgcmVsYXRlZF9vYmplY3RzO1xuICByZWxhdGVkX29iamVjdHMgPSB7fTtcbiAgcmVsYXRlZE9iak5hbWVzID0gdHlwZW9mIENyZWF0b3IgIT09IFwidW5kZWZpbmVkXCIgJiYgQ3JlYXRvciAhPT0gbnVsbCA/IENyZWF0b3IuZ2V0QWxsUmVsYXRlZE9iamVjdHMob2JqTmFtZSkgOiB2b2lkIDA7XG4gIHJlbGF0ZWRPYmpOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKHJlbGF0ZWRPYmpOYW1lKSB7XG4gICAgdmFyIGZpZWxkcywgb2JqMSwgcmVmLCByZWxhdGVkQ29sbGVjdGlvbiwgcmVsYXRlZFJlY29yZExpc3QsIHJlbGF0ZWRUYWJsZURhdGEsIHJlbGF0ZWRfZmllbGRfbmFtZTtcbiAgICByZWxhdGVkVGFibGVEYXRhID0gW107XG4gICAgaWYgKHJlbGF0ZWRPYmpOYW1lID09PSBcImNtc19maWxlc1wiKSB7XG4gICAgICByZWxhdGVkX2ZpZWxkX25hbWUgPSBcInBhcmVudC5pZHNcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgZmllbGRzID0gdHlwZW9mIENyZWF0b3IgIT09IFwidW5kZWZpbmVkXCIgJiYgQ3JlYXRvciAhPT0gbnVsbCA/IChyZWYgPSBDcmVhdG9yLk9iamVjdHNbcmVsYXRlZE9iak5hbWVdKSAhPSBudWxsID8gcmVmLmZpZWxkcyA6IHZvaWQgMCA6IHZvaWQgMDtcbiAgICAgIHJlbGF0ZWRfZmllbGRfbmFtZSA9IFwiXCI7XG4gICAgICBfLmVhY2goZmllbGRzLCBmdW5jdGlvbihmaWVsZCwgZmllbGRfbmFtZSkge1xuICAgICAgICBpZiAoKGZpZWxkICE9IG51bGwgPyBmaWVsZC5yZWZlcmVuY2VfdG8gOiB2b2lkIDApID09PSBvYmpOYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbGF0ZWRfZmllbGRfbmFtZSA9IGZpZWxkX25hbWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocmVsYXRlZF9maWVsZF9uYW1lKSB7XG4gICAgICByZWxhdGVkQ29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWxhdGVkT2JqTmFtZSk7XG4gICAgICByZWxhdGVkUmVjb3JkTGlzdCA9IHJlbGF0ZWRDb2xsZWN0aW9uLmZpbmQoKFxuICAgICAgICBvYmoxID0ge30sXG4gICAgICAgIG9iajFbXCJcIiArIHJlbGF0ZWRfZmllbGRfbmFtZV0gPSBvYmouX2lkLFxuICAgICAgICBvYmoxXG4gICAgICApKS5mZXRjaCgpO1xuICAgICAgcmVsYXRlZFJlY29yZExpc3QuZm9yRWFjaChmdW5jdGlvbihyZWxhdGVkT2JqKSB7XG4gICAgICAgIHZhciBmaWVsZHNEYXRhO1xuICAgICAgICBmaWVsZHNEYXRhID0gX21peEZpZWxkc0RhdGEocmVsYXRlZE9iaiwgcmVsYXRlZE9iak5hbWUpO1xuICAgICAgICByZXR1cm4gcmVsYXRlZFRhYmxlRGF0YS5wdXNoKGZpZWxkc0RhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZWxhdGVkX29iamVjdHNbcmVsYXRlZE9iak5hbWVdID0gcmVsYXRlZFRhYmxlRGF0YTtcbiAgfSk7XG4gIHJldHVybiByZWxhdGVkX29iamVjdHM7XG59O1xuXG5DcmVhdG9yLkV4cG9ydDJ4bWwgPSBmdW5jdGlvbihvYmpOYW1lLCByZWNvcmRMaXN0KSB7XG4gIHZhciBjb2xsZWN0aW9uO1xuICBsb2dnZXIuaW5mbyhcIlJ1biBDcmVhdG9yLkV4cG9ydDJ4bWxcIik7XG4gIGNvbnNvbGUudGltZShcIkNyZWF0b3IuRXhwb3J0MnhtbFwiKTtcbiAgY29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmpOYW1lKTtcbiAgcmVjb3JkTGlzdCA9IGNvbGxlY3Rpb24uZmluZCh7fSkuZmV0Y2goKTtcbiAgcmVjb3JkTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKHJlY29yZE9iaikge1xuICAgIHZhciBmaWVsZHNEYXRhLCBmaWxlUGF0aCwganNvbk9iaiwgcmVsYXRlZF9vYmplY3RzO1xuICAgIGpzb25PYmogPSB7fTtcbiAgICBqc29uT2JqLl9pZCA9IHJlY29yZE9iai5faWQ7XG4gICAgZmllbGRzRGF0YSA9IF9taXhGaWVsZHNEYXRhKHJlY29yZE9iaiwgb2JqTmFtZSk7XG4gICAganNvbk9ialtvYmpOYW1lXSA9IGZpZWxkc0RhdGE7XG4gICAgcmVsYXRlZF9vYmplY3RzID0gX21peFJlbGF0ZWREYXRhKHJlY29yZE9iaiwgb2JqTmFtZSk7XG4gICAganNvbk9ialtcInJlbGF0ZWRfb2JqZWN0c1wiXSA9IHJlbGF0ZWRfb2JqZWN0cztcbiAgICByZXR1cm4gZmlsZVBhdGggPSBfd3JpdGVYbWxGaWxlKGpzb25PYmosIG9iak5hbWUpO1xuICB9KTtcbiAgY29uc29sZS50aW1lRW5kKFwiQ3JlYXRvci5FeHBvcnQyeG1sXCIpO1xuICByZXR1cm4gZmlsZVBhdGg7XG59O1xuIiwiTWV0ZW9yLm1ldGhvZHMgXG5cdHJlbGF0ZWRfb2JqZWN0c19yZWNvcmRzOiAob2JqZWN0X25hbWUsIHJlbGF0ZWRfb2JqZWN0X25hbWUsIHJlbGF0ZWRfZmllbGRfbmFtZSwgcmVjb3JkX2lkLCBzcGFjZUlkKS0+XG5cdFx0dXNlcklkID0gdGhpcy51c2VySWRcblx0XHRpZiByZWxhdGVkX29iamVjdF9uYW1lID09IFwiY2ZzLmZpbGVzLmZpbGVyZWNvcmRcIlxuXHRcdFx0c2VsZWN0b3IgPSB7XCJtZXRhZGF0YS5zcGFjZVwiOiBzcGFjZUlkfVxuXHRcdGVsc2Vcblx0XHRcdHNlbGVjdG9yID0ge3NwYWNlOiBzcGFjZUlkfVxuXHRcdFxuXHRcdGlmIHJlbGF0ZWRfb2JqZWN0X25hbWUgPT0gXCJjbXNfZmlsZXNcIlxuXHRcdFx0IyDpmYTku7bnmoTlhbPogZTmkJzntKLmnaHku7bmmK/lrprmrbvnmoRcblx0XHRcdHNlbGVjdG9yW1wicGFyZW50Lm9cIl0gPSBvYmplY3RfbmFtZVxuXHRcdFx0c2VsZWN0b3JbXCJwYXJlbnQuaWRzXCJdID0gW3JlY29yZF9pZF1cblx0XHRlbHNlXG5cdFx0XHRzZWxlY3RvcltyZWxhdGVkX2ZpZWxkX25hbWVdID0gcmVjb3JkX2lkXG5cblx0XHRwZXJtaXNzaW9ucyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMocmVsYXRlZF9vYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKVxuXHRcdGlmICFwZXJtaXNzaW9ucy52aWV3QWxsUmVjb3JkcyBhbmQgcGVybWlzc2lvbnMuYWxsb3dSZWFkXG5cdFx0XHRzZWxlY3Rvci5vd25lciA9IHVzZXJJZFxuXHRcdFxuXHRcdHJlbGF0ZWRfcmVjb3JkcyA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWxhdGVkX29iamVjdF9uYW1lKS5maW5kKHNlbGVjdG9yKVxuXHRcdHJldHVybiByZWxhdGVkX3JlY29yZHMuY291bnQoKSIsIk1ldGVvci5tZXRob2RzKHtcbiAgcmVsYXRlZF9vYmplY3RzX3JlY29yZHM6IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCByZWxhdGVkX29iamVjdF9uYW1lLCByZWxhdGVkX2ZpZWxkX25hbWUsIHJlY29yZF9pZCwgc3BhY2VJZCkge1xuICAgIHZhciBwZXJtaXNzaW9ucywgcmVsYXRlZF9yZWNvcmRzLCBzZWxlY3RvciwgdXNlcklkO1xuICAgIHVzZXJJZCA9IHRoaXMudXNlcklkO1xuICAgIGlmIChyZWxhdGVkX29iamVjdF9uYW1lID09PSBcImNmcy5maWxlcy5maWxlcmVjb3JkXCIpIHtcbiAgICAgIHNlbGVjdG9yID0ge1xuICAgICAgICBcIm1ldGFkYXRhLnNwYWNlXCI6IHNwYWNlSWRcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdG9yID0ge1xuICAgICAgICBzcGFjZTogc3BhY2VJZFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHJlbGF0ZWRfb2JqZWN0X25hbWUgPT09IFwiY21zX2ZpbGVzXCIpIHtcbiAgICAgIHNlbGVjdG9yW1wicGFyZW50Lm9cIl0gPSBvYmplY3RfbmFtZTtcbiAgICAgIHNlbGVjdG9yW1wicGFyZW50Lmlkc1wiXSA9IFtyZWNvcmRfaWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RvcltyZWxhdGVkX2ZpZWxkX25hbWVdID0gcmVjb3JkX2lkO1xuICAgIH1cbiAgICBwZXJtaXNzaW9ucyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMocmVsYXRlZF9vYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKTtcbiAgICBpZiAoIXBlcm1pc3Npb25zLnZpZXdBbGxSZWNvcmRzICYmIHBlcm1pc3Npb25zLmFsbG93UmVhZCkge1xuICAgICAgc2VsZWN0b3Iub3duZXIgPSB1c2VySWQ7XG4gICAgfVxuICAgIHJlbGF0ZWRfcmVjb3JkcyA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWxhdGVkX29iamVjdF9uYW1lKS5maW5kKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gcmVsYXRlZF9yZWNvcmRzLmNvdW50KCk7XG4gIH1cbn0pO1xuIiwiTWV0ZW9yLm1ldGhvZHNcblx0Z2V0UGVuZGluZ1NwYWNlSW5mbzogKGludml0ZXJJZCwgc3BhY2VJZCktPlxuXHRcdGludml0ZXJOYW1lID0gZGIudXNlcnMuZmluZE9uZSh7X2lkOiBpbnZpdGVySWR9KS5uYW1lXG5cdFx0c3BhY2VOYW1lID0gZGIuc3BhY2VzLmZpbmRPbmUoe19pZDogc3BhY2VJZH0pLm5hbWVcblxuXHRcdHJldHVybiB7aW52aXRlcjogaW52aXRlck5hbWUsIHNwYWNlOiBzcGFjZU5hbWV9XG5cblx0cmVmdXNlSm9pblNwYWNlOiAoX2lkKS0+XG5cdFx0ZGIuc3BhY2VfdXNlcnMuZGlyZWN0LnVwZGF0ZSh7X2lkOiBfaWR9LHskc2V0OiB7aW52aXRlX3N0YXRlOiBcInJlZnVzZWRcIn19KVxuXG5cdGFjY2VwdEpvaW5TcGFjZTogKF9pZCktPlxuXHRcdGRiLnNwYWNlX3VzZXJzLmRpcmVjdC51cGRhdGUoe19pZDogX2lkfSx7JHNldDoge2ludml0ZV9zdGF0ZTogXCJhY2NlcHRlZFwiLCB1c2VyX2FjY2VwdGVkOiB0cnVlfX0pXG5cbiIsIk1ldGVvci5tZXRob2RzKHtcbiAgZ2V0UGVuZGluZ1NwYWNlSW5mbzogZnVuY3Rpb24oaW52aXRlcklkLCBzcGFjZUlkKSB7XG4gICAgdmFyIGludml0ZXJOYW1lLCBzcGFjZU5hbWU7XG4gICAgaW52aXRlck5hbWUgPSBkYi51c2Vycy5maW5kT25lKHtcbiAgICAgIF9pZDogaW52aXRlcklkXG4gICAgfSkubmFtZTtcbiAgICBzcGFjZU5hbWUgPSBkYi5zcGFjZXMuZmluZE9uZSh7XG4gICAgICBfaWQ6IHNwYWNlSWRcbiAgICB9KS5uYW1lO1xuICAgIHJldHVybiB7XG4gICAgICBpbnZpdGVyOiBpbnZpdGVyTmFtZSxcbiAgICAgIHNwYWNlOiBzcGFjZU5hbWVcbiAgICB9O1xuICB9LFxuICByZWZ1c2VKb2luU3BhY2U6IGZ1bmN0aW9uKF9pZCkge1xuICAgIHJldHVybiBkYi5zcGFjZV91c2Vycy5kaXJlY3QudXBkYXRlKHtcbiAgICAgIF9pZDogX2lkXG4gICAgfSwge1xuICAgICAgJHNldDoge1xuICAgICAgICBpbnZpdGVfc3RhdGU6IFwicmVmdXNlZFwiXG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG4gIGFjY2VwdEpvaW5TcGFjZTogZnVuY3Rpb24oX2lkKSB7XG4gICAgcmV0dXJuIGRiLnNwYWNlX3VzZXJzLmRpcmVjdC51cGRhdGUoe1xuICAgICAgX2lkOiBfaWRcbiAgICB9LCB7XG4gICAgICAkc2V0OiB7XG4gICAgICAgIGludml0ZV9zdGF0ZTogXCJhY2NlcHRlZFwiLFxuICAgICAgICB1c2VyX2FjY2VwdGVkOiB0cnVlXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuIiwiTWV0ZW9yLnB1Ymxpc2ggXCJjcmVhdG9yX29iamVjdF9yZWNvcmRcIiwgKG9iamVjdF9uYW1lLCBpZCwgc3BhY2VfaWQpLT5cblx0Y29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmplY3RfbmFtZSwgc3BhY2VfaWQpXG5cdGlmIGNvbGxlY3Rpb25cblx0XHRyZXR1cm4gY29sbGVjdGlvbi5maW5kKHtfaWQ6IGlkfSlcblxuIiwiTWV0ZW9yLnB1Ymxpc2goXCJjcmVhdG9yX29iamVjdF9yZWNvcmRcIiwgZnVuY3Rpb24ob2JqZWN0X25hbWUsIGlkLCBzcGFjZV9pZCkge1xuICB2YXIgY29sbGVjdGlvbjtcbiAgY29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmplY3RfbmFtZSwgc3BhY2VfaWQpO1xuICBpZiAoY29sbGVjdGlvbikge1xuICAgIHJldHVybiBjb2xsZWN0aW9uLmZpbmQoe1xuICAgICAgX2lkOiBpZFxuICAgIH0pO1xuICB9XG59KTtcbiIsIk1ldGVvci5wdWJsaXNoQ29tcG9zaXRlIFwic3RlZWRvc19vYmplY3RfdGFidWxhclwiLCAodGFibGVOYW1lLCBpZHMsIGZpZWxkcywgc3BhY2VJZCktPlxuXHR1bmxlc3MgdGhpcy51c2VySWRcblx0XHRyZXR1cm4gdGhpcy5yZWFkeSgpXG5cblx0Y2hlY2sodGFibGVOYW1lLCBTdHJpbmcpO1xuXHRjaGVjayhpZHMsIEFycmF5KTtcblx0Y2hlY2soZmllbGRzLCBNYXRjaC5PcHRpb25hbChPYmplY3QpKTtcblxuXHRfb2JqZWN0X25hbWUgPSB0YWJsZU5hbWUucmVwbGFjZShcImNyZWF0b3JfXCIsXCJcIilcblx0X29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KF9vYmplY3RfbmFtZSwgc3BhY2VJZClcblxuXHRpZiBzcGFjZUlkXG5cdFx0X29iamVjdF9uYW1lID0gQ3JlYXRvci5nZXRPYmplY3ROYW1lKF9vYmplY3QpXG5cblx0b2JqZWN0X2NvbGxlY2l0b24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oX29iamVjdF9uYW1lKVxuXG5cblx0X2ZpZWxkcyA9IF9vYmplY3Q/LmZpZWxkc1xuXHRpZiAhX2ZpZWxkcyB8fCAhb2JqZWN0X2NvbGxlY2l0b25cblx0XHRyZXR1cm4gdGhpcy5yZWFkeSgpXG5cblx0cmVmZXJlbmNlX2ZpZWxkcyA9IF8uZmlsdGVyIF9maWVsZHMsIChmKS0+XG5cdFx0cmV0dXJuIF8uaXNGdW5jdGlvbihmLnJlZmVyZW5jZV90bykgfHwgIV8uaXNFbXB0eShmLnJlZmVyZW5jZV90bylcblxuXHRzZWxmID0gdGhpc1xuXG5cdHNlbGYudW5ibG9jaygpO1xuXG5cdGlmIHJlZmVyZW5jZV9maWVsZHMubGVuZ3RoID4gMFxuXHRcdGRhdGEgPSB7XG5cdFx0XHRmaW5kOiAoKS0+XG5cdFx0XHRcdHNlbGYudW5ibG9jaygpO1xuXHRcdFx0XHRmaWVsZF9rZXlzID0ge31cblx0XHRcdFx0Xy5lYWNoIF8ua2V5cyhmaWVsZHMpLCAoZiktPlxuXHRcdFx0XHRcdHVubGVzcyAvXFx3KyhcXC5cXCQpezF9XFx3Py8udGVzdChmKVxuXHRcdFx0XHRcdFx0ZmllbGRfa2V5c1tmXSA9IDFcblx0XHRcdFx0XG5cdFx0XHRcdHJldHVybiBvYmplY3RfY29sbGVjaXRvbi5maW5kKHtfaWQ6IHskaW46IGlkc319LCB7ZmllbGRzOiBmaWVsZF9rZXlzfSk7XG5cdFx0fVxuXG5cdFx0ZGF0YS5jaGlsZHJlbiA9IFtdXG5cblx0XHRrZXlzID0gXy5rZXlzKGZpZWxkcylcblxuXHRcdGlmIGtleXMubGVuZ3RoIDwgMVxuXHRcdFx0a2V5cyA9IF8ua2V5cyhfZmllbGRzKVxuXG5cdFx0X2tleXMgPSBbXVxuXG5cdFx0a2V5cy5mb3JFYWNoIChrZXkpLT5cblx0XHRcdGlmIF9vYmplY3Quc2NoZW1hLl9vYmplY3RLZXlzW2tleSArICcuJ11cblx0XHRcdFx0X2tleXMgPSBfa2V5cy5jb25jYXQoXy5tYXAoX29iamVjdC5zY2hlbWEuX29iamVjdEtleXNba2V5ICsgJy4nXSwgKGspLT5cblx0XHRcdFx0XHRyZXR1cm4ga2V5ICsgJy4nICsga1xuXHRcdFx0XHQpKVxuXHRcdFx0X2tleXMucHVzaChrZXkpXG5cblx0XHRfa2V5cy5mb3JFYWNoIChrZXkpLT5cblx0XHRcdHJlZmVyZW5jZV9maWVsZCA9IF9maWVsZHNba2V5XVxuXG5cdFx0XHRpZiByZWZlcmVuY2VfZmllbGQgJiYgKF8uaXNGdW5jdGlvbihyZWZlcmVuY2VfZmllbGQucmVmZXJlbmNlX3RvKSB8fCAhXy5pc0VtcHR5KHJlZmVyZW5jZV9maWVsZC5yZWZlcmVuY2VfdG8pKSAgIyBhbmQgQ3JlYXRvci5Db2xsZWN0aW9uc1tyZWZlcmVuY2VfZmllbGQucmVmZXJlbmNlX3RvXVxuXHRcdFx0XHRkYXRhLmNoaWxkcmVuLnB1c2gge1xuXHRcdFx0XHRcdGZpbmQ6IChwYXJlbnQpIC0+XG5cdFx0XHRcdFx0XHR0cnlcblx0XHRcdFx0XHRcdFx0c2VsZi51bmJsb2NrKCk7XG5cblx0XHRcdFx0XHRcdFx0cXVlcnkgPSB7fVxuXG5cdFx0XHRcdFx0XHRcdCMg6KGo5qC85a2Q5a2X5q6154m55q6K5aSE55CGXG5cdFx0XHRcdFx0XHRcdGlmIC9cXHcrKFxcLlxcJFxcLil7MX1cXHcrLy50ZXN0KGtleSlcblx0XHRcdFx0XHRcdFx0XHRwX2sgPSBrZXkucmVwbGFjZSgvKFxcdyspXFwuXFwkXFwuXFx3Ky9pZywgXCIkMVwiKVxuXHRcdFx0XHRcdFx0XHRcdHNfayA9IGtleS5yZXBsYWNlKC9cXHcrXFwuXFwkXFwuKFxcdyspL2lnLCBcIiQxXCIpXG5cdFx0XHRcdFx0XHRcdFx0cmVmZXJlbmNlX2lkcyA9IHBhcmVudFtwX2tdLmdldFByb3BlcnR5KHNfaylcblx0XHRcdFx0XHRcdFx0ZWxzZVxuXHRcdFx0XHRcdFx0XHRcdHJlZmVyZW5jZV9pZHMgPSBrZXkuc3BsaXQoJy4nKS5yZWR1Y2UgKG8sIHgpIC0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG8/W3hdXG5cdFx0XHRcdFx0XHRcdFx0LCBwYXJlbnRcblxuXHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VfdG8gPSByZWZlcmVuY2VfZmllbGQucmVmZXJlbmNlX3RvXG5cblx0XHRcdFx0XHRcdFx0aWYgXy5pc0Z1bmN0aW9uKHJlZmVyZW5jZV90bylcblx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VfdG8gPSByZWZlcmVuY2VfdG8oKVxuXG5cdFx0XHRcdFx0XHRcdGlmIF8uaXNBcnJheShyZWZlcmVuY2VfdG8pXG5cdFx0XHRcdFx0XHRcdFx0aWYgXy5pc09iamVjdChyZWZlcmVuY2VfaWRzKSAmJiAhXy5pc0FycmF5KHJlZmVyZW5jZV9pZHMpXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VfdG8gPSByZWZlcmVuY2VfaWRzLm9cblx0XHRcdFx0XHRcdFx0XHRcdHJlZmVyZW5jZV9pZHMgPSByZWZlcmVuY2VfaWRzLmlkcyB8fCBbXVxuXHRcdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBbXVxuXG5cdFx0XHRcdFx0XHRcdGlmIF8uaXNBcnJheShyZWZlcmVuY2VfaWRzKVxuXHRcdFx0XHRcdFx0XHRcdHF1ZXJ5Ll9pZCA9IHskaW46IHJlZmVyZW5jZV9pZHN9XG5cdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRxdWVyeS5faWQgPSByZWZlcmVuY2VfaWRzXG5cblx0XHRcdFx0XHRcdFx0cmVmZXJlbmNlX3RvX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KHJlZmVyZW5jZV90bywgc3BhY2VJZClcblxuXHRcdFx0XHRcdFx0XHRuYW1lX2ZpZWxkX2tleSA9IHJlZmVyZW5jZV90b19vYmplY3QuTkFNRV9GSUVMRF9LRVlcblxuXHRcdFx0XHRcdFx0XHRjaGlsZHJlbl9maWVsZHMgPSB7X2lkOiAxLCBzcGFjZTogMX1cblxuXHRcdFx0XHRcdFx0XHRpZiBuYW1lX2ZpZWxkX2tleVxuXHRcdFx0XHRcdFx0XHRcdGNoaWxkcmVuX2ZpZWxkc1tuYW1lX2ZpZWxkX2tleV0gPSAxXG5cblx0XHRcdFx0XHRcdFx0cmV0dXJuIENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWZlcmVuY2VfdG8sIHNwYWNlSWQpLmZpbmQocXVlcnksIHtcblx0XHRcdFx0XHRcdFx0XHRmaWVsZHM6IGNoaWxkcmVuX2ZpZWxkc1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGNhdGNoIGVcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2cocmVmZXJlbmNlX3RvLCBwYXJlbnQsIGUpXG5cdFx0XHRcdFx0XHRcdHJldHVybiBbXVxuXHRcdFx0XHR9XG5cblx0XHRyZXR1cm4gZGF0YVxuXHRlbHNlXG5cdFx0cmV0dXJuIHtcblx0XHRcdGZpbmQ6ICgpLT5cblx0XHRcdFx0c2VsZi51bmJsb2NrKCk7XG5cdFx0XHRcdHJldHVybiBvYmplY3RfY29sbGVjaXRvbi5maW5kKHtfaWQ6IHskaW46IGlkc319LCB7ZmllbGRzOiBmaWVsZHN9KVxuXHRcdH07XG5cbiIsIk1ldGVvci5wdWJsaXNoQ29tcG9zaXRlKFwic3RlZWRvc19vYmplY3RfdGFidWxhclwiLCBmdW5jdGlvbih0YWJsZU5hbWUsIGlkcywgZmllbGRzLCBzcGFjZUlkKSB7XG4gIHZhciBfZmllbGRzLCBfa2V5cywgX29iamVjdCwgX29iamVjdF9uYW1lLCBkYXRhLCBrZXlzLCBvYmplY3RfY29sbGVjaXRvbiwgcmVmZXJlbmNlX2ZpZWxkcywgc2VsZjtcbiAgaWYgKCF0aGlzLnVzZXJJZCkge1xuICAgIHJldHVybiB0aGlzLnJlYWR5KCk7XG4gIH1cbiAgY2hlY2sodGFibGVOYW1lLCBTdHJpbmcpO1xuICBjaGVjayhpZHMsIEFycmF5KTtcbiAgY2hlY2soZmllbGRzLCBNYXRjaC5PcHRpb25hbChPYmplY3QpKTtcbiAgX29iamVjdF9uYW1lID0gdGFibGVOYW1lLnJlcGxhY2UoXCJjcmVhdG9yX1wiLCBcIlwiKTtcbiAgX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KF9vYmplY3RfbmFtZSwgc3BhY2VJZCk7XG4gIGlmIChzcGFjZUlkKSB7XG4gICAgX29iamVjdF9uYW1lID0gQ3JlYXRvci5nZXRPYmplY3ROYW1lKF9vYmplY3QpO1xuICB9XG4gIG9iamVjdF9jb2xsZWNpdG9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKF9vYmplY3RfbmFtZSk7XG4gIF9maWVsZHMgPSBfb2JqZWN0ICE9IG51bGwgPyBfb2JqZWN0LmZpZWxkcyA6IHZvaWQgMDtcbiAgaWYgKCFfZmllbGRzIHx8ICFvYmplY3RfY29sbGVjaXRvbikge1xuICAgIHJldHVybiB0aGlzLnJlYWR5KCk7XG4gIH1cbiAgcmVmZXJlbmNlX2ZpZWxkcyA9IF8uZmlsdGVyKF9maWVsZHMsIGZ1bmN0aW9uKGYpIHtcbiAgICByZXR1cm4gXy5pc0Z1bmN0aW9uKGYucmVmZXJlbmNlX3RvKSB8fCAhXy5pc0VtcHR5KGYucmVmZXJlbmNlX3RvKTtcbiAgfSk7XG4gIHNlbGYgPSB0aGlzO1xuICBzZWxmLnVuYmxvY2soKTtcbiAgaWYgKHJlZmVyZW5jZV9maWVsZHMubGVuZ3RoID4gMCkge1xuICAgIGRhdGEgPSB7XG4gICAgICBmaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGZpZWxkX2tleXM7XG4gICAgICAgIHNlbGYudW5ibG9jaygpO1xuICAgICAgICBmaWVsZF9rZXlzID0ge307XG4gICAgICAgIF8uZWFjaChfLmtleXMoZmllbGRzKSwgZnVuY3Rpb24oZikge1xuICAgICAgICAgIGlmICghL1xcdysoXFwuXFwkKXsxfVxcdz8vLnRlc3QoZikpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZF9rZXlzW2ZdID0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2JqZWN0X2NvbGxlY2l0b24uZmluZCh7XG4gICAgICAgICAgX2lkOiB7XG4gICAgICAgICAgICAkaW46IGlkc1xuICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgIGZpZWxkczogZmllbGRfa2V5c1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGRhdGEuY2hpbGRyZW4gPSBbXTtcbiAgICBrZXlzID0gXy5rZXlzKGZpZWxkcyk7XG4gICAgaWYgKGtleXMubGVuZ3RoIDwgMSkge1xuICAgICAga2V5cyA9IF8ua2V5cyhfZmllbGRzKTtcbiAgICB9XG4gICAgX2tleXMgPSBbXTtcbiAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICBpZiAoX29iamVjdC5zY2hlbWEuX29iamVjdEtleXNba2V5ICsgJy4nXSkge1xuICAgICAgICBfa2V5cyA9IF9rZXlzLmNvbmNhdChfLm1hcChfb2JqZWN0LnNjaGVtYS5fb2JqZWN0S2V5c1trZXkgKyAnLiddLCBmdW5jdGlvbihrKSB7XG4gICAgICAgICAgcmV0dXJuIGtleSArICcuJyArIGs7XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBfa2V5cy5wdXNoKGtleSk7XG4gICAgfSk7XG4gICAgX2tleXMuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcbiAgICAgIHZhciByZWZlcmVuY2VfZmllbGQ7XG4gICAgICByZWZlcmVuY2VfZmllbGQgPSBfZmllbGRzW2tleV07XG4gICAgICBpZiAocmVmZXJlbmNlX2ZpZWxkICYmIChfLmlzRnVuY3Rpb24ocmVmZXJlbmNlX2ZpZWxkLnJlZmVyZW5jZV90bykgfHwgIV8uaXNFbXB0eShyZWZlcmVuY2VfZmllbGQucmVmZXJlbmNlX3RvKSkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuY2hpbGRyZW4ucHVzaCh7XG4gICAgICAgICAgZmluZDogZnVuY3Rpb24ocGFyZW50KSB7XG4gICAgICAgICAgICB2YXIgY2hpbGRyZW5fZmllbGRzLCBlLCBuYW1lX2ZpZWxkX2tleSwgcF9rLCBxdWVyeSwgcmVmZXJlbmNlX2lkcywgcmVmZXJlbmNlX3RvLCByZWZlcmVuY2VfdG9fb2JqZWN0LCBzX2s7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBzZWxmLnVuYmxvY2soKTtcbiAgICAgICAgICAgICAgcXVlcnkgPSB7fTtcbiAgICAgICAgICAgICAgaWYgKC9cXHcrKFxcLlxcJFxcLil7MX1cXHcrLy50ZXN0KGtleSkpIHtcbiAgICAgICAgICAgICAgICBwX2sgPSBrZXkucmVwbGFjZSgvKFxcdyspXFwuXFwkXFwuXFx3Ky9pZywgXCIkMVwiKTtcbiAgICAgICAgICAgICAgICBzX2sgPSBrZXkucmVwbGFjZSgvXFx3K1xcLlxcJFxcLihcXHcrKS9pZywgXCIkMVwiKTtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VfaWRzID0gcGFyZW50W3Bfa10uZ2V0UHJvcGVydHkoc19rKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VfaWRzID0ga2V5LnNwbGl0KCcuJykucmVkdWNlKGZ1bmN0aW9uKG8sIHgpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvICE9IG51bGwgPyBvW3hdIDogdm9pZCAwO1xuICAgICAgICAgICAgICAgIH0sIHBhcmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVmZXJlbmNlX3RvID0gcmVmZXJlbmNlX2ZpZWxkLnJlZmVyZW5jZV90bztcbiAgICAgICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihyZWZlcmVuY2VfdG8pKSB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlX3RvID0gcmVmZXJlbmNlX3RvKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKF8uaXNBcnJheShyZWZlcmVuY2VfdG8pKSB7XG4gICAgICAgICAgICAgICAgaWYgKF8uaXNPYmplY3QocmVmZXJlbmNlX2lkcykgJiYgIV8uaXNBcnJheShyZWZlcmVuY2VfaWRzKSkge1xuICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlX3RvID0gcmVmZXJlbmNlX2lkcy5vO1xuICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlX2lkcyA9IHJlZmVyZW5jZV9pZHMuaWRzIHx8IFtdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChfLmlzQXJyYXkocmVmZXJlbmNlX2lkcykpIHtcbiAgICAgICAgICAgICAgICBxdWVyeS5faWQgPSB7XG4gICAgICAgICAgICAgICAgICAkaW46IHJlZmVyZW5jZV9pZHNcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHF1ZXJ5Ll9pZCA9IHJlZmVyZW5jZV9pZHM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVmZXJlbmNlX3RvX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KHJlZmVyZW5jZV90bywgc3BhY2VJZCk7XG4gICAgICAgICAgICAgIG5hbWVfZmllbGRfa2V5ID0gcmVmZXJlbmNlX3RvX29iamVjdC5OQU1FX0ZJRUxEX0tFWTtcbiAgICAgICAgICAgICAgY2hpbGRyZW5fZmllbGRzID0ge1xuICAgICAgICAgICAgICAgIF9pZDogMSxcbiAgICAgICAgICAgICAgICBzcGFjZTogMVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBpZiAobmFtZV9maWVsZF9rZXkpIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbl9maWVsZHNbbmFtZV9maWVsZF9rZXldID0gMTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlZmVyZW5jZV90bywgc3BhY2VJZCkuZmluZChxdWVyeSwge1xuICAgICAgICAgICAgICAgIGZpZWxkczogY2hpbGRyZW5fZmllbGRzXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgZSA9IGVycm9yO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWZlcmVuY2VfdG8sIHBhcmVudCwgZSk7XG4gICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBmaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi51bmJsb2NrKCk7XG4gICAgICAgIHJldHVybiBvYmplY3RfY29sbGVjaXRvbi5maW5kKHtcbiAgICAgICAgICBfaWQ6IHtcbiAgICAgICAgICAgICRpbjogaWRzXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgZmllbGRzOiBmaWVsZHNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufSk7XG4iLCJNZXRlb3IucHVibGlzaCBcIm9iamVjdF9saXN0dmlld3NcIiwgKG9iamVjdF9uYW1lLCBzcGFjZUlkKS0+XG4gICAgdXNlcklkID0gdGhpcy51c2VySWRcbiAgICByZXR1cm4gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKFwib2JqZWN0X2xpc3R2aWV3c1wiKS5maW5kKHtvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsIHNwYWNlOiBzcGFjZUlkICxcIiRvclwiOlt7b3duZXI6IHVzZXJJZH0sIHtzaGFyZWQ6IHRydWV9XX0pIiwiTWV0ZW9yLnB1Ymxpc2ggXCJ1c2VyX3RhYnVsYXJfc2V0dGluZ3NcIiwgKG9iamVjdF9uYW1lKS0+XG4gICAgdXNlcklkID0gdGhpcy51c2VySWRcbiAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5maW5kKHtvYmplY3RfbmFtZTogeyRpbjogb2JqZWN0X25hbWV9LCByZWNvcmRfaWQ6IHskaW46IFtcIm9iamVjdF9saXN0dmlld3NcIiwgXCJvYmplY3RfZ3JpZHZpZXdzXCJdfSwgb3duZXI6IHVzZXJJZH0pXG4iLCJNZXRlb3IucHVibGlzaCBcInJlbGF0ZWRfb2JqZWN0c19yZWNvcmRzXCIsIChvYmplY3RfbmFtZSwgcmVsYXRlZF9vYmplY3RfbmFtZSwgcmVsYXRlZF9maWVsZF9uYW1lLCByZWNvcmRfaWQsIHNwYWNlSWQpLT5cblx0dXNlcklkID0gdGhpcy51c2VySWRcblx0aWYgcmVsYXRlZF9vYmplY3RfbmFtZSA9PSBcImNmcy5maWxlcy5maWxlcmVjb3JkXCJcblx0XHRzZWxlY3RvciA9IHtcIm1ldGFkYXRhLnNwYWNlXCI6IHNwYWNlSWR9XG5cdGVsc2Vcblx0XHRzZWxlY3RvciA9IHtzcGFjZTogc3BhY2VJZH1cblx0XG5cdGlmIHJlbGF0ZWRfb2JqZWN0X25hbWUgPT0gXCJjbXNfZmlsZXNcIlxuXHRcdCMg6ZmE5Lu255qE5YWz6IGU5pCc57Si5p2h5Lu25piv5a6a5q2755qEXG5cdFx0c2VsZWN0b3JbXCJwYXJlbnQub1wiXSA9IG9iamVjdF9uYW1lXG5cdFx0c2VsZWN0b3JbXCJwYXJlbnQuaWRzXCJdID0gW3JlY29yZF9pZF1cblx0ZWxzZVxuXHRcdHNlbGVjdG9yW3JlbGF0ZWRfZmllbGRfbmFtZV0gPSByZWNvcmRfaWRcblxuXHRwZXJtaXNzaW9ucyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMocmVsYXRlZF9vYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKVxuXHRpZiAhcGVybWlzc2lvbnMudmlld0FsbFJlY29yZHMgYW5kIHBlcm1pc3Npb25zLmFsbG93UmVhZFxuXHRcdHNlbGVjdG9yLm93bmVyID0gdXNlcklkXG5cdFxuXHRyZXR1cm4gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlbGF0ZWRfb2JqZWN0X25hbWUpLmZpbmQoc2VsZWN0b3IpIiwiTWV0ZW9yLnB1Ymxpc2goXCJyZWxhdGVkX29iamVjdHNfcmVjb3Jkc1wiLCBmdW5jdGlvbihvYmplY3RfbmFtZSwgcmVsYXRlZF9vYmplY3RfbmFtZSwgcmVsYXRlZF9maWVsZF9uYW1lLCByZWNvcmRfaWQsIHNwYWNlSWQpIHtcbiAgdmFyIHBlcm1pc3Npb25zLCBzZWxlY3RvciwgdXNlcklkO1xuICB1c2VySWQgPSB0aGlzLnVzZXJJZDtcbiAgaWYgKHJlbGF0ZWRfb2JqZWN0X25hbWUgPT09IFwiY2ZzLmZpbGVzLmZpbGVyZWNvcmRcIikge1xuICAgIHNlbGVjdG9yID0ge1xuICAgICAgXCJtZXRhZGF0YS5zcGFjZVwiOiBzcGFjZUlkXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBzZWxlY3RvciA9IHtcbiAgICAgIHNwYWNlOiBzcGFjZUlkXG4gICAgfTtcbiAgfVxuICBpZiAocmVsYXRlZF9vYmplY3RfbmFtZSA9PT0gXCJjbXNfZmlsZXNcIikge1xuICAgIHNlbGVjdG9yW1wicGFyZW50Lm9cIl0gPSBvYmplY3RfbmFtZTtcbiAgICBzZWxlY3RvcltcInBhcmVudC5pZHNcIl0gPSBbcmVjb3JkX2lkXTtcbiAgfSBlbHNlIHtcbiAgICBzZWxlY3RvcltyZWxhdGVkX2ZpZWxkX25hbWVdID0gcmVjb3JkX2lkO1xuICB9XG4gIHBlcm1pc3Npb25zID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhyZWxhdGVkX29iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpO1xuICBpZiAoIXBlcm1pc3Npb25zLnZpZXdBbGxSZWNvcmRzICYmIHBlcm1pc3Npb25zLmFsbG93UmVhZCkge1xuICAgIHNlbGVjdG9yLm93bmVyID0gdXNlcklkO1xuICB9XG4gIHJldHVybiBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVsYXRlZF9vYmplY3RfbmFtZSkuZmluZChzZWxlY3Rvcik7XG59KTtcbiIsIk1ldGVvci5wdWJsaXNoICdzcGFjZV91c2VyX2luZm8nLCAoc3BhY2VJZCwgdXNlcklkKS0+XG5cdHJldHVybiBDcmVhdG9yLmdldENvbGxlY3Rpb24oXCJzcGFjZV91c2Vyc1wiKS5maW5kKHtzcGFjZTogc3BhY2VJZCwgdXNlcjogdXNlcklkfSkiLCJcbmlmIE1ldGVvci5pc1NlcnZlclxuXG5cdE1ldGVvci5wdWJsaXNoICdjb250YWN0c192aWV3X2xpbWl0cycsIChzcGFjZUlkKS0+XG5cblx0XHR1bmxlc3MgdGhpcy51c2VySWRcblx0XHRcdHJldHVybiB0aGlzLnJlYWR5KClcblxuXHRcdHVubGVzcyBzcGFjZUlkXG5cdFx0XHRyZXR1cm4gdGhpcy5yZWFkeSgpXG5cblx0XHRzZWxlY3RvciA9XG5cdFx0XHRzcGFjZTogc3BhY2VJZFxuXHRcdFx0a2V5OiAnY29udGFjdHNfdmlld19saW1pdHMnXG5cblx0XHRyZXR1cm4gZGIuc3BhY2Vfc2V0dGluZ3MuZmluZChzZWxlY3RvcikiLCJpZiAoTWV0ZW9yLmlzU2VydmVyKSB7XG4gIE1ldGVvci5wdWJsaXNoKCdjb250YWN0c192aWV3X2xpbWl0cycsIGZ1bmN0aW9uKHNwYWNlSWQpIHtcbiAgICB2YXIgc2VsZWN0b3I7XG4gICAgaWYgKCF0aGlzLnVzZXJJZCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZHkoKTtcbiAgICB9XG4gICAgaWYgKCFzcGFjZUlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWFkeSgpO1xuICAgIH1cbiAgICBzZWxlY3RvciA9IHtcbiAgICAgIHNwYWNlOiBzcGFjZUlkLFxuICAgICAga2V5OiAnY29udGFjdHNfdmlld19saW1pdHMnXG4gICAgfTtcbiAgICByZXR1cm4gZGIuc3BhY2Vfc2V0dGluZ3MuZmluZChzZWxlY3Rvcik7XG4gIH0pO1xufVxuIiwiXG5pZiBNZXRlb3IuaXNTZXJ2ZXJcblxuXHRNZXRlb3IucHVibGlzaCAnY29udGFjdHNfbm9fZm9yY2VfcGhvbmVfdXNlcnMnLCAoc3BhY2VJZCktPlxuXG5cdFx0dW5sZXNzIHRoaXMudXNlcklkXG5cdFx0XHRyZXR1cm4gdGhpcy5yZWFkeSgpXG5cblx0XHR1bmxlc3Mgc3BhY2VJZFxuXHRcdFx0cmV0dXJuIHRoaXMucmVhZHkoKVxuXG5cdFx0c2VsZWN0b3IgPVxuXHRcdFx0c3BhY2U6IHNwYWNlSWRcblx0XHRcdGtleTogJ2NvbnRhY3RzX25vX2ZvcmNlX3Bob25lX3VzZXJzJ1xuXG5cdFx0cmV0dXJuIGRiLnNwYWNlX3NldHRpbmdzLmZpbmQoc2VsZWN0b3IpIiwiaWYgKE1ldGVvci5pc1NlcnZlcikge1xuICBNZXRlb3IucHVibGlzaCgnY29udGFjdHNfbm9fZm9yY2VfcGhvbmVfdXNlcnMnLCBmdW5jdGlvbihzcGFjZUlkKSB7XG4gICAgdmFyIHNlbGVjdG9yO1xuICAgIGlmICghdGhpcy51c2VySWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlYWR5KCk7XG4gICAgfVxuICAgIGlmICghc3BhY2VJZCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZHkoKTtcbiAgICB9XG4gICAgc2VsZWN0b3IgPSB7XG4gICAgICBzcGFjZTogc3BhY2VJZCxcbiAgICAgIGtleTogJ2NvbnRhY3RzX25vX2ZvcmNlX3Bob25lX3VzZXJzJ1xuICAgIH07XG4gICAgcmV0dXJuIGRiLnNwYWNlX3NldHRpbmdzLmZpbmQoc2VsZWN0b3IpO1xuICB9KTtcbn1cbiIsImlmIE1ldGVvci5pc1NlcnZlclxuXHRNZXRlb3IucHVibGlzaCAnc3BhY2VfbmVlZF90b19jb25maXJtJywgKCktPlxuXHRcdHVzZXJJZCA9IHRoaXMudXNlcklkXG5cdFx0cmV0dXJuIGRiLnNwYWNlX3VzZXJzLmZpbmQoe3VzZXI6IHVzZXJJZCwgaW52aXRlX3N0YXRlOiBcInBlbmRpbmdcIn0pIiwiaWYgKE1ldGVvci5pc1NlcnZlcikge1xuICBNZXRlb3IucHVibGlzaCgnc3BhY2VfbmVlZF90b19jb25maXJtJywgZnVuY3Rpb24oKSB7XG4gICAgdmFyIHVzZXJJZDtcbiAgICB1c2VySWQgPSB0aGlzLnVzZXJJZDtcbiAgICByZXR1cm4gZGIuc3BhY2VfdXNlcnMuZmluZCh7XG4gICAgICB1c2VyOiB1c2VySWQsXG4gICAgICBpbnZpdGVfc3RhdGU6IFwicGVuZGluZ1wiXG4gICAgfSk7XG4gIH0pO1xufVxuIiwicGVybWlzc2lvbk1hbmFnZXJGb3JJbml0QXBwcm92YWwgPSB7fVxuXG5wZXJtaXNzaW9uTWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRGbG93UGVybWlzc2lvbnMgPSAoZmxvd19pZCwgdXNlcl9pZCkgLT5cblx0IyDmoLnmja46Zmxvd19pZOafpeWIsOWvueW6lOeahGZsb3dcblx0ZmxvdyA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0RmxvdyhmbG93X2lkKVxuXHRzcGFjZV9pZCA9IGZsb3cuc3BhY2Vcblx0IyDmoLnmja5zcGFjZV9pZOWSjDp1c2VyX2lk5Yiwb3JnYW5pemF0aW9uc+ihqOS4reafpeWIsOeUqOaIt+aJgOWxnuaJgOacieeahG9yZ19pZO+8iOWMheaLrOS4iue6p+e7hElE77yJXG5cdG9yZ19pZHMgPSBuZXcgQXJyYXlcblx0b3JnYW5pemF0aW9ucyA9IGRiLm9yZ2FuaXphdGlvbnMuZmluZCh7XG5cdFx0c3BhY2U6IHNwYWNlX2lkLCB1c2VyczogdXNlcl9pZCB9LCB7IGZpZWxkczogeyBwYXJlbnRzOiAxIH0gfSkuZmV0Y2goKVxuXHRfLmVhY2gob3JnYW5pemF0aW9ucywgKG9yZykgLT5cblx0XHRvcmdfaWRzLnB1c2gob3JnLl9pZClcblx0XHRpZiBvcmcucGFyZW50c1xuXHRcdFx0Xy5lYWNoKG9yZy5wYXJlbnRzLCAocGFyZW50X2lkKSAtPlxuXHRcdFx0XHRvcmdfaWRzLnB1c2gocGFyZW50X2lkKVxuXHRcdFx0KVxuXHQpXG5cdG9yZ19pZHMgPSBfLnVuaXEob3JnX2lkcylcblx0bXlfcGVybWlzc2lvbnMgPSBuZXcgQXJyYXlcblx0aWYgZmxvdy5wZXJtc1xuXHRcdCMg5Yik5patZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRtaW7kuK3mmK/lkKbljIXlkKvlvZPliY3nlKjmiLfvvIxcblx0XHQjIOaIluiAhWZsb3cucGVybXMub3Jnc19jYW5fYWRk5piv5ZCm5YyF5ZCrNOatpeW+l+WIsOeahG9yZ19pZOaVsOe7hOS4reeahOS7u+S9leS4gOS4qu+8jFxuXHRcdCMg6Iul5piv77yM5YiZ5Zyo6L+U5Zue55qE5pWw57uE5Lit5Yqg5LiKYWRkXG5cdFx0aWYgZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRkXG5cdFx0XHR1c2Vyc19jYW5fYWRkID0gZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRkXG5cdFx0XHRpZiB1c2Vyc19jYW5fYWRkLmluY2x1ZGVzKHVzZXJfaWQpXG5cdFx0XHRcdG15X3Blcm1pc3Npb25zLnB1c2goXCJhZGRcIilcblxuXHRcdGlmIGZsb3cucGVybXMub3Jnc19jYW5fYWRkXG5cdFx0XHRvcmdzX2Nhbl9hZGQgPSBmbG93LnBlcm1zLm9yZ3NfY2FuX2FkZFxuXHRcdFx0Xy5lYWNoKG9yZ19pZHMsIChvcmdfaWQpIC0+XG5cdFx0XHRcdGlmIG9yZ3NfY2FuX2FkZC5pbmNsdWRlcyhvcmdfaWQpXG5cdFx0XHRcdFx0bXlfcGVybWlzc2lvbnMucHVzaChcImFkZFwiKVxuXHRcdFx0KVxuXHRcdCMg5Yik5patZmxvdy5wZXJtcy51c2Vyc19jYW5fbW9uaXRvcuS4reaYr+WQpuWMheWQq+W9k+WJjeeUqOaIt++8jFxuXHRcdCMg5oiW6ICFZmxvdy5wZXJtcy5vcmdzX2Nhbl9tb25pdG9y5piv5ZCm5YyF5ZCrNOatpeW+l+WIsOeahG9yZ19pZOaVsOe7hOS4reeahOS7u+S9leS4gOS4qu+8jFxuXHRcdCMg6Iul5piv77yM5YiZ5Zyo6L+U5Zue55qE5pWw57uE5Lit5Yqg5LiKbW9uaXRvclxuXHRcdGlmIGZsb3cucGVybXMudXNlcnNfY2FuX21vbml0b3Jcblx0XHRcdHVzZXJzX2Nhbl9tb25pdG9yID0gZmxvdy5wZXJtcy51c2Vyc19jYW5fbW9uaXRvclxuXHRcdFx0aWYgdXNlcnNfY2FuX21vbml0b3IuaW5jbHVkZXModXNlcl9pZClcblx0XHRcdFx0bXlfcGVybWlzc2lvbnMucHVzaChcIm1vbml0b3JcIilcblxuXHRcdGlmIGZsb3cucGVybXMub3Jnc19jYW5fbW9uaXRvclxuXHRcdFx0b3Jnc19jYW5fbW9uaXRvciA9IGZsb3cucGVybXMub3Jnc19jYW5fbW9uaXRvclxuXHRcdFx0Xy5lYWNoKG9yZ19pZHMsIChvcmdfaWQpIC0+XG5cdFx0XHRcdGlmIG9yZ3NfY2FuX21vbml0b3IuaW5jbHVkZXMob3JnX2lkKVxuXHRcdFx0XHRcdG15X3Blcm1pc3Npb25zLnB1c2goXCJtb25pdG9yXCIpXG5cdFx0XHQpXG5cdFx0IyDliKTmlq1mbG93LnBlcm1zLnVzZXJzX2Nhbl9hZG1pbuS4reaYr+WQpuWMheWQq+W9k+WJjeeUqOaIt++8jFxuXHRcdCMg5oiW6ICFZmxvdy5wZXJtcy5vcmdzX2Nhbl9hZG1pbuaYr+WQpuWMheWQqzTmraXlvpfliLDnmoRvcmdfaWTmlbDnu4TkuK3nmoTku7vkvZXkuIDkuKrvvIxcblx0XHQjIOiLpeaYr++8jOWImeWcqOi/lOWbnueahOaVsOe7hOS4reWKoOS4imFkbWluXG5cdFx0aWYgZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRtaW5cblx0XHRcdHVzZXJzX2Nhbl9hZG1pbiA9IGZsb3cucGVybXMudXNlcnNfY2FuX2FkbWluXG5cdFx0XHRpZiB1c2Vyc19jYW5fYWRtaW4uaW5jbHVkZXModXNlcl9pZClcblx0XHRcdFx0bXlfcGVybWlzc2lvbnMucHVzaChcImFkbWluXCIpXG5cblx0XHRpZiBmbG93LnBlcm1zLm9yZ3NfY2FuX2FkbWluXG5cdFx0XHRvcmdzX2Nhbl9hZG1pbiA9IGZsb3cucGVybXMub3Jnc19jYW5fYWRtaW5cblx0XHRcdF8uZWFjaChvcmdfaWRzLCAob3JnX2lkKSAtPlxuXHRcdFx0XHRpZiBvcmdzX2Nhbl9hZG1pbi5pbmNsdWRlcyhvcmdfaWQpXG5cdFx0XHRcdFx0bXlfcGVybWlzc2lvbnMucHVzaChcImFkbWluXCIpXG5cdFx0XHQpXG5cblx0bXlfcGVybWlzc2lvbnMgPSBfLnVuaXEobXlfcGVybWlzc2lvbnMpXG5cdHJldHVybiBteV9wZXJtaXNzaW9ucyIsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxucGVybWlzc2lvbk1hbmFnZXJGb3JJbml0QXBwcm92YWwgPSB7fTtcblxucGVybWlzc2lvbk1hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Rmxvd1Blcm1pc3Npb25zID0gZnVuY3Rpb24oZmxvd19pZCwgdXNlcl9pZCkge1xuICB2YXIgZmxvdywgbXlfcGVybWlzc2lvbnMsIG9yZ19pZHMsIG9yZ2FuaXphdGlvbnMsIG9yZ3NfY2FuX2FkZCwgb3Jnc19jYW5fYWRtaW4sIG9yZ3NfY2FuX21vbml0b3IsIHNwYWNlX2lkLCB1c2Vyc19jYW5fYWRkLCB1c2Vyc19jYW5fYWRtaW4sIHVzZXJzX2Nhbl9tb25pdG9yO1xuICBmbG93ID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRGbG93KGZsb3dfaWQpO1xuICBzcGFjZV9pZCA9IGZsb3cuc3BhY2U7XG4gIG9yZ19pZHMgPSBuZXcgQXJyYXk7XG4gIG9yZ2FuaXphdGlvbnMgPSBkYi5vcmdhbml6YXRpb25zLmZpbmQoe1xuICAgIHNwYWNlOiBzcGFjZV9pZCxcbiAgICB1c2VyczogdXNlcl9pZFxuICB9LCB7XG4gICAgZmllbGRzOiB7XG4gICAgICBwYXJlbnRzOiAxXG4gICAgfVxuICB9KS5mZXRjaCgpO1xuICBfLmVhY2gob3JnYW5pemF0aW9ucywgZnVuY3Rpb24ob3JnKSB7XG4gICAgb3JnX2lkcy5wdXNoKG9yZy5faWQpO1xuICAgIGlmIChvcmcucGFyZW50cykge1xuICAgICAgcmV0dXJuIF8uZWFjaChvcmcucGFyZW50cywgZnVuY3Rpb24ocGFyZW50X2lkKSB7XG4gICAgICAgIHJldHVybiBvcmdfaWRzLnB1c2gocGFyZW50X2lkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIG9yZ19pZHMgPSBfLnVuaXEob3JnX2lkcyk7XG4gIG15X3Blcm1pc3Npb25zID0gbmV3IEFycmF5O1xuICBpZiAoZmxvdy5wZXJtcykge1xuICAgIGlmIChmbG93LnBlcm1zLnVzZXJzX2Nhbl9hZGQpIHtcbiAgICAgIHVzZXJzX2Nhbl9hZGQgPSBmbG93LnBlcm1zLnVzZXJzX2Nhbl9hZGQ7XG4gICAgICBpZiAodXNlcnNfY2FuX2FkZC5pbmNsdWRlcyh1c2VyX2lkKSkge1xuICAgICAgICBteV9wZXJtaXNzaW9ucy5wdXNoKFwiYWRkXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZmxvdy5wZXJtcy5vcmdzX2Nhbl9hZGQpIHtcbiAgICAgIG9yZ3NfY2FuX2FkZCA9IGZsb3cucGVybXMub3Jnc19jYW5fYWRkO1xuICAgICAgXy5lYWNoKG9yZ19pZHMsIGZ1bmN0aW9uKG9yZ19pZCkge1xuICAgICAgICBpZiAob3Jnc19jYW5fYWRkLmluY2x1ZGVzKG9yZ19pZCkpIHtcbiAgICAgICAgICByZXR1cm4gbXlfcGVybWlzc2lvbnMucHVzaChcImFkZFwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChmbG93LnBlcm1zLnVzZXJzX2Nhbl9tb25pdG9yKSB7XG4gICAgICB1c2Vyc19jYW5fbW9uaXRvciA9IGZsb3cucGVybXMudXNlcnNfY2FuX21vbml0b3I7XG4gICAgICBpZiAodXNlcnNfY2FuX21vbml0b3IuaW5jbHVkZXModXNlcl9pZCkpIHtcbiAgICAgICAgbXlfcGVybWlzc2lvbnMucHVzaChcIm1vbml0b3JcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmbG93LnBlcm1zLm9yZ3NfY2FuX21vbml0b3IpIHtcbiAgICAgIG9yZ3NfY2FuX21vbml0b3IgPSBmbG93LnBlcm1zLm9yZ3NfY2FuX21vbml0b3I7XG4gICAgICBfLmVhY2gob3JnX2lkcywgZnVuY3Rpb24ob3JnX2lkKSB7XG4gICAgICAgIGlmIChvcmdzX2Nhbl9tb25pdG9yLmluY2x1ZGVzKG9yZ19pZCkpIHtcbiAgICAgICAgICByZXR1cm4gbXlfcGVybWlzc2lvbnMucHVzaChcIm1vbml0b3JcIik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRtaW4pIHtcbiAgICAgIHVzZXJzX2Nhbl9hZG1pbiA9IGZsb3cucGVybXMudXNlcnNfY2FuX2FkbWluO1xuICAgICAgaWYgKHVzZXJzX2Nhbl9hZG1pbi5pbmNsdWRlcyh1c2VyX2lkKSkge1xuICAgICAgICBteV9wZXJtaXNzaW9ucy5wdXNoKFwiYWRtaW5cIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChmbG93LnBlcm1zLm9yZ3NfY2FuX2FkbWluKSB7XG4gICAgICBvcmdzX2Nhbl9hZG1pbiA9IGZsb3cucGVybXMub3Jnc19jYW5fYWRtaW47XG4gICAgICBfLmVhY2gob3JnX2lkcywgZnVuY3Rpb24ob3JnX2lkKSB7XG4gICAgICAgIGlmIChvcmdzX2Nhbl9hZG1pbi5pbmNsdWRlcyhvcmdfaWQpKSB7XG4gICAgICAgICAgcmV0dXJuIG15X3Blcm1pc3Npb25zLnB1c2goXCJhZG1pblwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG15X3Blcm1pc3Npb25zID0gXy51bmlxKG15X3Blcm1pc3Npb25zKTtcbiAgcmV0dXJuIG15X3Blcm1pc3Npb25zO1xufTtcbiIsIiMg5Y+R6LW35a6h5om5XG5fZXZhbCA9IHJlcXVpcmUoJ2V2YWwnKVxub2JqZWN0cWwgPSByZXF1aXJlKCdAc3RlZWRvcy9vYmplY3RxbCcpO1xuXG5nZXRPYmplY3RDb25maWcgPSAob2JqZWN0QXBpTmFtZSkgLT5cblx0cmV0dXJuIG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS50b0NvbmZpZygpXG5cbmdldE9iamVjdE5hbWVGaWVsZEtleSA9IChvYmplY3RBcGlOYW1lKSAtPlxuXHRyZXR1cm4gb2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLk5BTUVfRklFTERfS0VZXG5cbmdldFJlbGF0ZWRzID0gKG9iamVjdEFwaU5hbWUpIC0+XG5cdHJldHVybiBNZXRlb3Iud3JhcEFzeW5jKChvYmplY3RBcGlOYW1lLCBjYikgLT5cblx0XHRvYmplY3RxbC5nZXRPYmplY3Qob2JqZWN0QXBpTmFtZSkuZ2V0UmVsYXRlZHMoKS50aGVuIChyZXNvbHZlLCByZWplY3QpIC0+XG5cdFx0XHRjYihyZWplY3QsIHJlc29sdmUpXG5cdFx0KShvYmplY3RBcGlOYW1lKVxuXG5vYmplY3RGaW5kT25lID0gKG9iamVjdEFwaU5hbWUsIHF1ZXJ5KSAtPlxuXHRyZXR1cm4gTWV0ZW9yLndyYXBBc3luYygob2JqZWN0QXBpTmFtZSwgcXVlcnksIGNiKSAtPlxuXHRcdG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS5maW5kKHF1ZXJ5KS50aGVuIChyZXNvbHZlLCByZWplY3QpIC0+XG5cdFx0XHRpZiAocmVzb2x2ZSAmJiByZXNvbHZlLmxlbmd0aCA+IDApXG5cdFx0XHRcdGNiKHJlamVjdCwgcmVzb2x2ZVswXSlcblx0XHRcdGVsc2Vcblx0XHRcdFx0Y2IocmVqZWN0LCBudWxsKVxuXHRcdCkob2JqZWN0QXBpTmFtZSwgcXVlcnkpXG5cbm9iamVjdEZpbmQgPSAob2JqZWN0QXBpTmFtZSwgcXVlcnkpIC0+XG5cdHJldHVybiBNZXRlb3Iud3JhcEFzeW5jKChvYmplY3RBcGlOYW1lLCBxdWVyeSwgY2IpIC0+XG5cdFx0b2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLmZpbmQocXVlcnkpLnRoZW4gKHJlc29sdmUsIHJlamVjdCkgLT5cblx0XHRcdGNiKHJlamVjdCwgcmVzb2x2ZSlcblx0XHQpKG9iamVjdEFwaU5hbWUsIHF1ZXJ5KVxuXG5vYmplY3RVcGRhdGUgPSAob2JqZWN0QXBpTmFtZSwgaWQsIGRhdGEpIC0+XG5cdHJldHVybiBNZXRlb3Iud3JhcEFzeW5jKChvYmplY3RBcGlOYW1lLCBpZCwgZGF0YSwgY2IpIC0+XG5cdFx0b2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLnVwZGF0ZShpZCwgZGF0YSkudGhlbiAocmVzb2x2ZSwgcmVqZWN0KSAtPlxuXHRcdFx0Y2IocmVqZWN0LCByZXNvbHZlKVxuXHRcdCkob2JqZWN0QXBpTmFtZSwgaWQsIGRhdGEpXG5cbmdldFJlbGF0ZWRPYmplY3RGaWVsZENvZGUgPSAgKHJlbGF0ZWRPYmplY3RzS2V5cywga2V5KSAtPlxuXHRyZXR1cm4gXy5maW5kIHJlbGF0ZWRPYmplY3RzS2V5cywgIChyZWxhdGVkT2JqZWN0c0tleSkgLT5cblx0XHRyZXR1cm4ga2V5LnN0YXJ0c1dpdGgocmVsYXRlZE9iamVjdHNLZXkgKyAnLicpXG5cbmdldEZvcm1UYWJsZUZpZWxkQ29kZSA9IChmb3JtVGFibGVGaWVsZHNDb2RlLCBrZXkpIC0+XG5cdHJldHVybiBfLmZpbmQgZm9ybVRhYmxlRmllbGRzQ29kZSwgIChmb3JtVGFibGVGaWVsZENvZGUpIC0+XG5cdFx0cmV0dXJuIGtleS5zdGFydHNXaXRoKGZvcm1UYWJsZUZpZWxkQ29kZSArICcuJylcblxuZ2V0Rm9ybVRhYmxlRmllbGQgPSAoZm9ybVRhYmxlRmllbGRzLCBrZXkpIC0+XG5cdHJldHVybiBfLmZpbmQgZm9ybVRhYmxlRmllbGRzLCAgKGYpIC0+XG5cdFx0cmV0dXJuIGYuY29kZSA9PSBrZXlcblxuZ2V0Rm9ybUZpZWxkID0gKGZvcm1GaWVsZHMsIGtleSkgLT5cblx0ZmYgPSBudWxsXG5cdF8uZm9yRWFjaCBmb3JtRmllbGRzLCAoZikgLT5cblx0XHRpZiBmZlxuXHRcdFx0cmV0dXJuXG5cdFx0aWYgZi50eXBlID09ICdzZWN0aW9uJ1xuXHRcdFx0ZmYgPSBfLmZpbmQgZi5maWVsZHMsICAoc2YpIC0+XG5cdFx0XHRcdHJldHVybiBzZi5jb2RlID09IGtleVxuXHRcdGVsc2UgaWYgZi5jb2RlID09IGtleVxuXHRcdFx0ZmYgPSBmXG5cblx0cmV0dXJuIGZmXG5cbmdldEZvcm1UYWJsZVN1YkZpZWxkID0gKHRhYmxlRmllbGQsIHN1YkZpZWxkQ29kZSkgLT5cblx0cmV0dXJuIF8uZmluZCB0YWJsZUZpZWxkLmZpZWxkcywgIChmKSAtPlxuXHRcdHJldHVybiBmLmNvZGUgPT0gc3ViRmllbGRDb2RlXG5cbmdldEZpZWxkT2RhdGFWYWx1ZSA9IChvYmpOYW1lLCBpZCwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpIC0+XG5cdCMgb2JqID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iak5hbWUpXG5cdG9iaiA9IG9iamVjdHFsLmdldE9iamVjdChvYmpOYW1lKVxuXHRuYW1lS2V5ID0gZ2V0T2JqZWN0TmFtZUZpZWxkS2V5KG9iak5hbWUpXG5cdGlmICFvYmpcblx0XHRyZXR1cm5cblx0aWYgXy5pc1N0cmluZyBpZFxuXHRcdCMgX3JlY29yZCA9IG9iai5maW5kT25lKGlkKVxuXHRcdF9yZWNvcmQgPSBvYmplY3RGaW5kT25lKG9iak5hbWUsIHsgZmlsdGVyczogW1tyZWZlcmVuY2VUb0ZpZWxkTmFtZSwgJz0nLCBpZF1dfSlcblx0XHRpZiBfcmVjb3JkXG5cdFx0XHRfcmVjb3JkWydAbGFiZWwnXSA9IF9yZWNvcmRbbmFtZUtleV1cblx0XHRcdHJldHVybiBfcmVjb3JkXG5cdGVsc2UgaWYgXy5pc0FycmF5IGlkXG5cdFx0X3JlY29yZHMgPSBbXVxuXHRcdCMgb2JqLmZpbmQoeyBfaWQ6IHsgJGluOiBpZCB9IH0pXG5cdFx0b2JqZWN0RmluZChvYmpOYW1lLCB7IGZpbHRlcnM6IFtbcmVmZXJlbmNlVG9GaWVsZE5hbWUsICdpbicsIGlkXV19KS5mb3JFYWNoIChfcmVjb3JkKSAtPlxuXHRcdFx0X3JlY29yZFsnQGxhYmVsJ10gPSBfcmVjb3JkW25hbWVLZXldXG5cdFx0XHRfcmVjb3Jkcy5wdXNoIF9yZWNvcmRcblx0XHRpZiAhXy5pc0VtcHR5IF9yZWNvcmRzXG5cdFx0XHRyZXR1cm4gX3JlY29yZHNcblx0cmV0dXJuXG5cbmdldFNlbGVjdFVzZXJWYWx1ZSA9ICh1c2VySWQsIHNwYWNlSWQpIC0+XG5cdHN1ID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKCdzcGFjZV91c2VycycpLmZpbmRPbmUoeyBzcGFjZTogc3BhY2VJZCwgdXNlcjogdXNlcklkIH0pXG5cdHN1LmlkID0gdXNlcklkXG5cdHJldHVybiBzdVxuXG5nZXRTZWxlY3RVc2VyVmFsdWVzID0gKHVzZXJJZHMsIHNwYWNlSWQpIC0+XG5cdHN1cyA9IFtdXG5cdGlmIF8uaXNBcnJheSB1c2VySWRzXG5cdFx0Xy5lYWNoIHVzZXJJZHMsICh1c2VySWQpIC0+XG5cdFx0XHRzdSA9IGdldFNlbGVjdFVzZXJWYWx1ZSh1c2VySWQsIHNwYWNlSWQpXG5cdFx0XHRpZiBzdVxuXHRcdFx0XHRzdXMucHVzaChzdSlcblx0cmV0dXJuIHN1c1xuXG5nZXRTZWxlY3RPcmdWYWx1ZSA9IChvcmdJZCwgc3BhY2VJZCkgLT5cblx0b3JnID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKCdvcmdhbml6YXRpb25zJykuZmluZE9uZShvcmdJZCwgeyBmaWVsZHM6IHsgX2lkOiAxLCBuYW1lOiAxLCBmdWxsbmFtZTogMSB9IH0pXG5cdG9yZy5pZCA9IG9yZ0lkXG5cdHJldHVybiBvcmdcblxuZ2V0U2VsZWN0T3JnVmFsdWVzID0gKG9yZ0lkcywgc3BhY2VJZCkgLT5cblx0b3JncyA9IFtdXG5cdGlmIF8uaXNBcnJheSBvcmdJZHNcblx0XHRfLmVhY2ggb3JnSWRzLCAob3JnSWQpIC0+XG5cdFx0XHRvcmcgPSBnZXRTZWxlY3RPcmdWYWx1ZShvcmdJZCwgc3BhY2VJZClcblx0XHRcdGlmIG9yZ1xuXHRcdFx0XHRvcmdzLnB1c2gob3JnKVxuXHRyZXR1cm4gb3Jnc1xuXG5nZXRGaWxlRmllbGRWYWx1ZSA9IChyZWNvcmRGaWVsZElkLCBmVHlwZSktPlxuXHRpZiBfLmlzRW1wdHkocmVjb3JkRmllbGRJZClcblx0XHRyZXR1cm4gXG5cdGlmIGZUeXBlID09ICdpbWFnZSdcblx0XHRjb2xsZWN0aW9uID0gJ2ltYWdlcydcblx0ZWxzZSBpZiBmVHlwZSA9PSAnZmlsZSdcblx0XHRjb2xsZWN0aW9uID0gJ2ZpbGVzJ1xuXHRpZiBfLmlzU3RyaW5nKHJlY29yZEZpZWxkSWQpXG5cdFx0cXVlcnkgPSB7X2lkOiB7JGluOiBbcmVjb3JkRmllbGRJZF19fVxuXHRlbHNlXG5cdFx0cXVlcnkgPSB7X2lkOiB7JGluOiByZWNvcmRGaWVsZElkfX1cblx0ZmlsZXMgPSBDcmVhdG9yLkNvbGxlY3Rpb25zW1wiY2ZzLiN7Y29sbGVjdGlvbn0uZmlsZXJlY29yZFwiXS5maW5kKHF1ZXJ5KTtcblx0dmFsdWUgPSBbXVxuXHRmaWxlcy5mb3JFYWNoIChmKSAtPlxuXHRcdG5ld0ZpbGUgPSBuZXcgRlMuRmlsZSgpXG5cdFx0bmV3RmlsZS5hdHRhY2hEYXRhIGYuY3JlYXRlUmVhZFN0cmVhbSgnZmlsZXMnKSwge1xuXHRcdFx0XHR0eXBlOiBmLm9yaWdpbmFsLnR5cGVcblx0XHR9LCAoZXJyKSAtPlxuXHRcdFx0aWYgKGVycilcblx0XHRcdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcihlcnIuZXJyb3IsIGVyci5yZWFzb24pXG5cblx0XHRcdG5ld0ZpbGUubmFtZShmLm5hbWUoKSlcblx0XHRcdG5ld0ZpbGUuc2l6ZShmLnNpemUoKSlcblx0XHRcdG1ldGFkYXRhID0ge1xuXHRcdFx0XHRvd25lcjogZi5tZXRhZGF0YS5vd25lclxuXHRcdFx0fVxuXHRcdFx0bmV3RmlsZS5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuXHRcdFx0bmV3RmlsZS5faWQgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLmluc3RhbmNlcy5fbWFrZU5ld0lEKCk7XG5cdFx0XHRjZnNbY29sbGVjdGlvbl0uaW5zZXJ0KG5ld0ZpbGUpO1xuXHRcdFx0dmFsdWUucHVzaChuZXdGaWxlLl9pZClcblx0aWYgdmFsdWUubGVuZ3RoID4gMFxuXHRcdGlmIF8uaXNTdHJpbmcocmVjb3JkRmllbGRJZClcblx0XHRcdHJldHVybiB2YWx1ZVswXVxuXHRcdGVsc2Vcblx0XHRcdHJldHVybiB2YWx1ZTtcblxuZ2V0SW5zdGFuY2VGaWVsZFZhbHVlID0gKG9iakZpZWxkLCBmb3JtRmllbGQsIHJlY29yZCwgb2JqZWN0X2ZpZWxkLCBzcGFjZUlkKSAtPlxuXHRyZWNvcmRGaWVsZFZhbHVlID0gcmVjb3JkW29iakZpZWxkLm5hbWVdXG5cdHZhbHVlXG5cdCMgbG9va3Vw44CBbWFzdGVyX2RldGFpbOWtl+auteWQjOatpeWIsG9kYXRh5a2X5q61XG5cdGlmIGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiBmb3JtRmllbGQudHlwZSA9PSAnb2RhdGEnICYmIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhvYmpGaWVsZC50eXBlKSAmJiBfLmlzU3RyaW5nKG9iakZpZWxkLnJlZmVyZW5jZV90bylcblx0XHRyZWZlcmVuY2VUb0ZpZWxkTmFtZSA9IG9iakZpZWxkLnJlZmVyZW5jZV90b19maWVsZCB8fCAnX2lkJ1xuXHRcdHJlZmVyZW5jZVRvT2JqZWN0TmFtZSA9IG9iakZpZWxkLnJlZmVyZW5jZV90b1xuXHRcdG9kYXRhRmllbGRWYWx1ZVxuXHRcdGlmIG9iakZpZWxkLm11bHRpcGxlICYmIGZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdFxuXHRcdFx0b2RhdGFGaWVsZFZhbHVlID0gZ2V0RmllbGRPZGF0YVZhbHVlKHJlZmVyZW5jZVRvT2JqZWN0TmFtZSwgcmVjb3JkRmllbGRWYWx1ZSwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpXG5cdFx0ZWxzZSBpZiAhb2JqRmllbGQubXVsdGlwbGUgJiYgIWZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdFxuXHRcdFx0b2RhdGFGaWVsZFZhbHVlID0gZ2V0RmllbGRPZGF0YVZhbHVlKHJlZmVyZW5jZVRvT2JqZWN0TmFtZSwgcmVjb3JkRmllbGRWYWx1ZSwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpXG5cdFx0dmFsdWUgPSBvZGF0YUZpZWxkVmFsdWVcblx0ZWxzZSBpZiBmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgWyd1c2VyJywgJ2dyb3VwJ10uaW5jbHVkZXMoZm9ybUZpZWxkLnR5cGUpICYmIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhvYmpGaWVsZC50eXBlKSAmJiAoWyd1c2VycycsICdvcmdhbml6YXRpb25zJ10uaW5jbHVkZXMob2JqRmllbGQucmVmZXJlbmNlX3RvKSB8fCAoJ3NwYWNlX3VzZXJzJyA9PSBvYmpGaWVsZC5yZWZlcmVuY2VfdG8gJiYgJ3VzZXInID09IG9iakZpZWxkLnJlZmVyZW5jZV90b19maWVsZCkgKVxuXHRcdGlmICFfLmlzRW1wdHkocmVjb3JkRmllbGRWYWx1ZSlcblx0XHRcdHNlbGVjdEZpZWxkVmFsdWVcblx0XHRcdGlmIGZvcm1GaWVsZC50eXBlID09ICd1c2VyJ1xuXHRcdFx0XHRpZiBvYmpGaWVsZC5tdWx0aXBsZSAmJiBmb3JtRmllbGQuaXNfbXVsdGlzZWxlY3Rcblx0XHRcdFx0XHRzZWxlY3RGaWVsZFZhbHVlID0gZ2V0U2VsZWN0VXNlclZhbHVlcyhyZWNvcmRGaWVsZFZhbHVlLCBzcGFjZUlkKVxuXHRcdFx0XHRlbHNlIGlmICFvYmpGaWVsZC5tdWx0aXBsZSAmJiAhZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0XG5cdFx0XHRcdFx0c2VsZWN0RmllbGRWYWx1ZSA9IGdldFNlbGVjdFVzZXJWYWx1ZShyZWNvcmRGaWVsZFZhbHVlLCBzcGFjZUlkKVxuXHRcdFx0ZWxzZSBpZiBmb3JtRmllbGQudHlwZSA9PSAnZ3JvdXAnXG5cdFx0XHRcdGlmIG9iakZpZWxkLm11bHRpcGxlICYmIGZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdFxuXHRcdFx0XHRcdHNlbGVjdEZpZWxkVmFsdWUgPSBnZXRTZWxlY3RPcmdWYWx1ZXMocmVjb3JkRmllbGRWYWx1ZSwgc3BhY2VJZClcblx0XHRcdFx0ZWxzZSBpZiAhb2JqRmllbGQubXVsdGlwbGUgJiYgIWZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdFxuXHRcdFx0XHRcdHNlbGVjdEZpZWxkVmFsdWUgPSBnZXRTZWxlY3RPcmdWYWx1ZShyZWNvcmRGaWVsZFZhbHVlLCBzcGFjZUlkKVxuXHRcdFx0aWYgc2VsZWN0RmllbGRWYWx1ZVxuXHRcdFx0XHR2YWx1ZSA9IHNlbGVjdEZpZWxkVmFsdWVcblx0ZWxzZSBpZiBmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgZm9ybUZpZWxkLnR5cGUgPT0gJ2RhdGUnICYmIHJlY29yZEZpZWxkVmFsdWVcblx0XHR2YWx1ZSA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZm9ybWF0RGF0ZShyZWNvcmRGaWVsZFZhbHVlKSAjIERhdGXovaxTdHJpbmdcblx0ZWxzZSBpZiBmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgcmVjb3JkRmllbGRWYWx1ZSAmJiAoZm9ybUZpZWxkLnR5cGUgPT0gJ2ltYWdlJyB8fCBmb3JtRmllbGQudHlwZSA9PSAnZmlsZScpXG5cdFx0dmFsdWUgPSBnZXRGaWxlRmllbGRWYWx1ZShyZWNvcmRGaWVsZFZhbHVlLCBmb3JtRmllbGQudHlwZSlcblx0ZWxzZSBpZiBmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgcmVjb3JkRmllbGRWYWx1ZSAmJiBmb3JtRmllbGQudHlwZSA9PSAnbG9va3VwJyAmJiBbJ2xvb2t1cCcsICdtYXN0ZXJfZGV0YWlsJ10uaW5jbHVkZXMob2JqRmllbGQudHlwZSkgJiYgXy5pc1N0cmluZyhvYmpGaWVsZC5yZWZlcmVuY2VfdG8pXG5cdFx0dmFsdWUgPSByZWNvcmRGaWVsZFZhbHVlXG5cdGVsc2UgaWYgZm9ybUZpZWxkICYmIG9iakZpZWxkICYmIHJlY29yZEZpZWxkVmFsdWUgJiYgKGZvcm1GaWVsZC50eXBlID09ICdtdWx0aVNlbGVjdCcpXG5cdFx0dmFsdWUgPSByZWNvcmRGaWVsZFZhbHVlLmpvaW4oJywnKVxuXHRlbHNlIGlmIHJlY29yZC5oYXNPd25Qcm9wZXJ0eShvYmplY3RfZmllbGQpXG5cdFx0dmFsdWUgPSByZWNvcmRGaWVsZFZhbHVlXG5cdFxuXHRyZXR1cm4gdmFsdWVcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbCA9IHt9XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY2hlY2tfYXV0aG9yaXphdGlvbiA9IChyZXEpIC0+XG5cdHF1ZXJ5ID0gcmVxLnF1ZXJ5XG5cdHVzZXJJZCA9IHF1ZXJ5W1wiWC1Vc2VyLUlkXCJdXG5cdGF1dGhUb2tlbiA9IHF1ZXJ5W1wiWC1BdXRoLVRva2VuXCJdXG5cblx0aWYgbm90IHVzZXJJZCBvciBub3QgYXV0aFRva2VuXG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvciA0MDEsICdVbmF1dGhvcml6ZWQnXG5cblx0aGFzaGVkVG9rZW4gPSBBY2NvdW50cy5faGFzaExvZ2luVG9rZW4oYXV0aFRva2VuKVxuXHR1c2VyID0gTWV0ZW9yLnVzZXJzLmZpbmRPbmVcblx0XHRfaWQ6IHVzZXJJZCxcblx0XHRcInNlcnZpY2VzLnJlc3VtZS5sb2dpblRva2Vucy5oYXNoZWRUb2tlblwiOiBoYXNoZWRUb2tlblxuXG5cdGlmIG5vdCB1c2VyXG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvciA0MDEsICdVbmF1dGhvcml6ZWQnXG5cblx0cmV0dXJuIHVzZXJcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZSA9IChzcGFjZV9pZCkgLT5cblx0c3BhY2UgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLnNwYWNlcy5maW5kT25lKHNwYWNlX2lkKVxuXHRpZiBub3Qgc3BhY2Vcblx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcInNwYWNlX2lk5pyJ6K+v5oiW5q2kc3BhY2Xlt7Lnu4/ooqvliKDpmaRcIilcblx0cmV0dXJuIHNwYWNlXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0RmxvdyA9IChmbG93X2lkKSAtPlxuXHRmbG93ID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5mbG93cy5maW5kT25lKGZsb3dfaWQpXG5cdGlmIG5vdCBmbG93XG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCJpZOacieivr+aIluatpOa1geeoi+W3sue7j+iiq+WIoOmZpFwiKVxuXHRyZXR1cm4gZmxvd1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldFNwYWNlVXNlciA9IChzcGFjZV9pZCwgdXNlcl9pZCkgLT5cblx0c3BhY2VfdXNlciA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc3BhY2VfdXNlcnMuZmluZE9uZSh7IHNwYWNlOiBzcGFjZV9pZCwgdXNlcjogdXNlcl9pZCB9KVxuXHRpZiBub3Qgc3BhY2VfdXNlclxuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwidXNlcl9pZOWvueW6lOeahOeUqOaIt+S4jeWxnuS6juW9k+WJjXNwYWNlXCIpXG5cdHJldHVybiBzcGFjZV91c2VyXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0U3BhY2VVc2VyT3JnSW5mbyA9IChzcGFjZV91c2VyKSAtPlxuXHRpbmZvID0gbmV3IE9iamVjdFxuXHRpbmZvLm9yZ2FuaXphdGlvbiA9IHNwYWNlX3VzZXIub3JnYW5pemF0aW9uXG5cdG9yZyA9IENyZWF0b3IuQ29sbGVjdGlvbnMub3JnYW5pemF0aW9ucy5maW5kT25lKHNwYWNlX3VzZXIub3JnYW5pemF0aW9uLCB7IGZpZWxkczogeyBuYW1lOiAxICwgZnVsbG5hbWU6IDEgfSB9KVxuXHRpbmZvLm9yZ2FuaXphdGlvbl9uYW1lID0gb3JnLm5hbWVcblx0aW5mby5vcmdhbml6YXRpb25fZnVsbG5hbWUgPSBvcmcuZnVsbG5hbWVcblx0cmV0dXJuIGluZm9cblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pc0Zsb3dFbmFibGVkID0gKGZsb3cpIC0+XG5cdGlmIGZsb3cuc3RhdGUgaXNudCBcImVuYWJsZWRcIlxuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwi5rWB56iL5pyq5ZCv55SoLOaTjeS9nOWksei0pVwiKVxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmlzRmxvd1NwYWNlTWF0Y2hlZCA9IChmbG93LCBzcGFjZV9pZCkgLT5cblx0aWYgZmxvdy5zcGFjZSBpc250IHNwYWNlX2lkXG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCLmtYHnqIvlkozlt6XkvZzljLpJROS4jeWMuemFjVwiKVxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZvcm0gPSAoZm9ybV9pZCkgLT5cblx0Zm9ybSA9IENyZWF0b3IuQ29sbGVjdGlvbnMuZm9ybXMuZmluZE9uZShmb3JtX2lkKVxuXHRpZiBub3QgZm9ybVxuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsICfooajljZVJROacieivr+aIluatpOihqOWNleW3sue7j+iiq+WIoOmZpCcpXG5cblx0cmV0dXJuIGZvcm1cblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRDYXRlZ29yeSA9IChjYXRlZ29yeV9pZCkgLT5cblx0cmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuY2F0ZWdvcmllcy5maW5kT25lKGNhdGVnb3J5X2lkKVxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmNoZWNrU3luY0RpcmVjdGlvbiA9IChvYmplY3RfbmFtZSwgZmxvd19pZCkgLT5cblx0b3cgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLm9iamVjdF93b3JrZmxvd3MuZmluZE9uZSh7XG5cdFx0b2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLFxuXHRcdGZsb3dfaWQ6IGZsb3dfaWRcblx0fSlcblx0aWYgIW93XG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgJ+acquaJvuWIsOWvueixoea1geeoi+aYoOWwhOiusOW9leOAgicpXG5cdHN5bmNEaXJlY3Rpb24gPSBvdy5zeW5jX2RpcmVjdGlvbiB8fCAnYm90aCdcblx0aWYgIVsnYm90aCcsICdvYmpfdG9faW5zJ10uaW5jbHVkZXMoc3luY0RpcmVjdGlvbilcblx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCAn5LiN5pSv5oyB55qE5ZCM5q2l5pa55ZCR44CCJylcblxuXHRyZXR1cm4gXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY3JlYXRlX2luc3RhbmNlID0gKGluc3RhbmNlX2Zyb21fY2xpZW50LCB1c2VyX2luZm8pIC0+XG5cdGNoZWNrIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdLCBTdHJpbmdcblx0Y2hlY2sgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJzcGFjZVwiXSwgU3RyaW5nXG5cdGNoZWNrIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiZmxvd1wiXSwgU3RyaW5nXG5cdGNoZWNrIGluc3RhbmNlX2Zyb21fY2xpZW50W1wicmVjb3JkX2lkc1wiXSwgW3tvOiBTdHJpbmcsIGlkczogW1N0cmluZ119XVxuXG5cdCMg5qCh6aqM5ZCM5q2l5pa55ZCRXG5cdHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY2hlY2tTeW5jRGlyZWN0aW9uKGluc3RhbmNlX2Zyb21fY2xpZW50W1wicmVjb3JkX2lkc1wiXVswXS5vLCBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImZsb3dcIl0pXG5cblx0IyDmoKHpqozmmK/lkKZyZWNvcmTlt7Lnu4/lj5HotbfnmoTnlLPor7fov5jlnKjlrqHmibnkuK1cblx0dXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jaGVja0lzSW5BcHByb3ZhbChpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl1bMF0sIGluc3RhbmNlX2Zyb21fY2xpZW50W1wic3BhY2VcIl0pXG5cblx0c3BhY2VfaWQgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInNwYWNlXCJdXG5cdGZsb3dfaWQgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImZsb3dcIl1cblx0dXNlcl9pZCA9IHVzZXJfaW5mby5faWRcblx0IyDojrflj5bliY3lj7DmiYDkvKDnmoR0cmFjZVxuXHR0cmFjZV9mcm9tX2NsaWVudCA9IG51bGxcblx0IyDojrflj5bliY3lj7DmiYDkvKDnmoRhcHByb3ZlXG5cdGFwcHJvdmVfZnJvbV9jbGllbnQgPSBudWxsXG5cdGlmIGluc3RhbmNlX2Zyb21fY2xpZW50W1widHJhY2VzXCJdIGFuZCBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInRyYWNlc1wiXVswXVxuXHRcdHRyYWNlX2Zyb21fY2xpZW50ID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJ0cmFjZXNcIl1bMF1cblx0XHRpZiB0cmFjZV9mcm9tX2NsaWVudFtcImFwcHJvdmVzXCJdIGFuZCB0cmFjZV9mcm9tX2NsaWVudFtcImFwcHJvdmVzXCJdWzBdXG5cdFx0XHRhcHByb3ZlX2Zyb21fY2xpZW50ID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJ0cmFjZXNcIl1bMF1bXCJhcHByb3Zlc1wiXVswXVxuXG5cdCMg6I635Y+W5LiA5Liqc3BhY2Vcblx0c3BhY2UgPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldFNwYWNlKHNwYWNlX2lkKVxuXHQjIOiOt+WPluS4gOS4qmZsb3dcblx0ZmxvdyA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0RmxvdyhmbG93X2lkKVxuXHQjIOiOt+WPluS4gOS4qnNwYWNl5LiL55qE5LiA5LiqdXNlclxuXHRzcGFjZV91c2VyID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZVVzZXIoc3BhY2VfaWQsIHVzZXJfaWQpXG5cdCMg6I635Y+Wc3BhY2VfdXNlcuaJgOWcqOeahOmDqOmXqOS/oeaBr1xuXHRzcGFjZV91c2VyX29yZ19pbmZvID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZVVzZXJPcmdJbmZvKHNwYWNlX3VzZXIpXG5cdCMg5Yik5pat5LiA5LiqZmxvd+aYr+WQpuS4uuWQr+eUqOeKtuaAgVxuXHR1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmlzRmxvd0VuYWJsZWQoZmxvdylcblx0IyDliKTmlq3kuIDkuKpmbG935ZKMc3BhY2VfaWTmmK/lkKbljLnphY1cblx0dXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pc0Zsb3dTcGFjZU1hdGNoZWQoZmxvdywgc3BhY2VfaWQpXG5cblx0Zm9ybSA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Rm9ybShmbG93LmZvcm0pXG5cblx0cGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uTWFuYWdlci5nZXRGbG93UGVybWlzc2lvbnMoZmxvd19pZCwgdXNlcl9pZClcblxuXHRpZiBub3QgcGVybWlzc2lvbnMuaW5jbHVkZXMoXCJhZGRcIilcblx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcIuW9k+WJjeeUqOaIt+ayoeacieatpOa1geeoi+eahOaWsOW7uuadg+mZkFwiKVxuXG5cdG5vdyA9IG5ldyBEYXRlXG5cdGluc19vYmogPSB7fVxuXHRpbnNfb2JqLl9pZCA9IENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLl9tYWtlTmV3SUQoKVxuXHRpbnNfb2JqLnNwYWNlID0gc3BhY2VfaWRcblx0aW5zX29iai5mbG93ID0gZmxvd19pZFxuXHRpbnNfb2JqLmZsb3dfdmVyc2lvbiA9IGZsb3cuY3VycmVudC5faWRcblx0aW5zX29iai5mb3JtID0gZmxvdy5mb3JtXG5cdGluc19vYmouZm9ybV92ZXJzaW9uID0gZmxvdy5jdXJyZW50LmZvcm1fdmVyc2lvblxuXHRpbnNfb2JqLm5hbWUgPSBmbG93Lm5hbWVcblx0aW5zX29iai5zdWJtaXR0ZXIgPSB1c2VyX2lkXG5cdGluc19vYmouc3VibWl0dGVyX25hbWUgPSB1c2VyX2luZm8ubmFtZVxuXHRpbnNfb2JqLmFwcGxpY2FudCA9IGlmIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdIHRoZW4gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRcIl0gZWxzZSB1c2VyX2lkXG5cdGluc19vYmouYXBwbGljYW50X25hbWUgPSBpZiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9uYW1lXCJdIHRoZW4gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfbmFtZVwiXSBlbHNlIHVzZXJfaW5mby5uYW1lXG5cdGluc19vYmouYXBwbGljYW50X29yZ2FuaXphdGlvbiA9IGlmIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvblwiXSB0aGVuIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvblwiXSBlbHNlIHNwYWNlX3VzZXIub3JnYW5pemF0aW9uXG5cdGluc19vYmouYXBwbGljYW50X29yZ2FuaXphdGlvbl9uYW1lID0gaWYgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uX25hbWVcIl0gdGhlbiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9vcmdhbml6YXRpb25fbmFtZVwiXSBlbHNlIHNwYWNlX3VzZXJfb3JnX2luZm8ub3JnYW5pemF0aW9uX25hbWVcblx0aW5zX29iai5hcHBsaWNhbnRfb3JnYW5pemF0aW9uX2Z1bGxuYW1lID0gaWYgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uX2Z1bGxuYW1lXCJdIHRoZW4gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uX2Z1bGxuYW1lXCJdIGVsc2UgIHNwYWNlX3VzZXJfb3JnX2luZm8ub3JnYW5pemF0aW9uX2Z1bGxuYW1lXG5cdGluc19vYmouYXBwbGljYW50X2NvbXBhbnkgPSBpZiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9jb21wYW55XCJdIHRoZW4gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfY29tcGFueVwiXSBlbHNlIHNwYWNlX3VzZXIuY29tcGFueV9pZFxuXHRpbnNfb2JqLnN0YXRlID0gJ2RyYWZ0J1xuXHRpbnNfb2JqLmNvZGUgPSAnJ1xuXHRpbnNfb2JqLmlzX2FyY2hpdmVkID0gZmFsc2Vcblx0aW5zX29iai5pc19kZWxldGVkID0gZmFsc2Vcblx0aW5zX29iai5jcmVhdGVkID0gbm93XG5cdGluc19vYmouY3JlYXRlZF9ieSA9IHVzZXJfaWRcblx0aW5zX29iai5tb2RpZmllZCA9IG5vd1xuXHRpbnNfb2JqLm1vZGlmaWVkX2J5ID0gdXNlcl9pZFxuXG5cdGluc19vYmoucmVjb3JkX2lkcyA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1wicmVjb3JkX2lkc1wiXVxuXG5cdGlmIHNwYWNlX3VzZXIuY29tcGFueV9pZFxuXHRcdGluc19vYmouY29tcGFueV9pZCA9IHNwYWNlX3VzZXIuY29tcGFueV9pZFxuXG5cdCMg5paw5bu6VHJhY2Vcblx0dHJhY2Vfb2JqID0ge31cblx0dHJhY2Vfb2JqLl9pZCA9IG5ldyBNb25nby5PYmplY3RJRCgpLl9zdHJcblx0dHJhY2Vfb2JqLmluc3RhbmNlID0gaW5zX29iai5faWRcblx0dHJhY2Vfb2JqLmlzX2ZpbmlzaGVkID0gZmFsc2Vcblx0IyDlvZPliY3mnIDmlrDniYhmbG935Lit5byA5aeL6IqC54K5XG5cdHN0YXJ0X3N0ZXAgPSBfLmZpbmQoZmxvdy5jdXJyZW50LnN0ZXBzLCAoc3RlcCkgLT5cblx0XHRyZXR1cm4gc3RlcC5zdGVwX3R5cGUgaXMgJ3N0YXJ0J1xuXHQpXG5cdHRyYWNlX29iai5zdGVwID0gc3RhcnRfc3RlcC5faWRcblx0dHJhY2Vfb2JqLm5hbWUgPSBzdGFydF9zdGVwLm5hbWVcblxuXHR0cmFjZV9vYmouc3RhcnRfZGF0ZSA9IG5vd1xuXHQjIOaWsOW7ukFwcHJvdmVcblx0YXBwcl9vYmogPSB7fVxuXHRhcHByX29iai5faWQgPSBuZXcgTW9uZ28uT2JqZWN0SUQoKS5fc3RyXG5cdGFwcHJfb2JqLmluc3RhbmNlID0gaW5zX29iai5faWRcblx0YXBwcl9vYmoudHJhY2UgPSB0cmFjZV9vYmouX2lkXG5cdGFwcHJfb2JqLmlzX2ZpbmlzaGVkID0gZmFsc2Vcblx0YXBwcl9vYmoudXNlciA9IGlmIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdIHRoZW4gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRcIl0gZWxzZSB1c2VyX2lkXG5cdGFwcHJfb2JqLnVzZXJfbmFtZSA9IGlmIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X25hbWVcIl0gdGhlbiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9uYW1lXCJdIGVsc2UgdXNlcl9pbmZvLm5hbWVcblx0YXBwcl9vYmouaGFuZGxlciA9IHVzZXJfaWRcblx0YXBwcl9vYmouaGFuZGxlcl9uYW1lID0gdXNlcl9pbmZvLm5hbWVcblx0YXBwcl9vYmouaGFuZGxlcl9vcmdhbml6YXRpb24gPSBzcGFjZV91c2VyLm9yZ2FuaXphdGlvblxuXHRhcHByX29iai5oYW5kbGVyX29yZ2FuaXphdGlvbl9uYW1lID0gc3BhY2VfdXNlcl9vcmdfaW5mby5uYW1lXG5cdGFwcHJfb2JqLmhhbmRsZXJfb3JnYW5pemF0aW9uX2Z1bGxuYW1lID0gc3BhY2VfdXNlcl9vcmdfaW5mby5mdWxsbmFtZVxuXHRhcHByX29iai50eXBlID0gJ2RyYWZ0J1xuXHRhcHByX29iai5zdGFydF9kYXRlID0gbm93XG5cdGFwcHJfb2JqLnJlYWRfZGF0ZSA9IG5vd1xuXHRhcHByX29iai5pc19yZWFkID0gdHJ1ZVxuXHRhcHByX29iai5pc19lcnJvciA9IGZhbHNlXG5cdGFwcHJfb2JqLmRlc2NyaXB0aW9uID0gJydcblx0cmVsYXRlZFRhYmxlc0luZm8gPSB7fVxuXHRhcHByX29iai52YWx1ZXMgPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlVmFsdWVzKGluc19vYmoucmVjb3JkX2lkc1swXSwgZmxvd19pZCwgc3BhY2VfaWQsIGZvcm0uY3VycmVudC5maWVsZHMsIHJlbGF0ZWRUYWJsZXNJbmZvKVxuXG5cdHRyYWNlX29iai5hcHByb3ZlcyA9IFthcHByX29ial1cblx0aW5zX29iai50cmFjZXMgPSBbdHJhY2Vfb2JqXVxuXG5cdGluc19vYmoudmFsdWVzID0gYXBwcl9vYmoudmFsdWVzXG5cblx0aW5zX29iai5pbmJveF91c2VycyA9IGluc3RhbmNlX2Zyb21fY2xpZW50LmluYm94X3VzZXJzIHx8IFtdXG5cblx0aW5zX29iai5jdXJyZW50X3N0ZXBfbmFtZSA9IHN0YXJ0X3N0ZXAubmFtZVxuXG5cdGlmIGZsb3cuYXV0b19yZW1pbmQgaXMgdHJ1ZVxuXHRcdGluc19vYmouYXV0b19yZW1pbmQgPSB0cnVlXG5cblx0IyDmlrDlu7rnlLPor7fljZXml7bvvIxpbnN0YW5jZXPorrDlvZXmtYHnqIvlkI3np7DjgIHmtYHnqIvliIbnsbvlkI3np7AgIzEzMTNcblx0aW5zX29iai5mbG93X25hbWUgPSBmbG93Lm5hbWVcblx0aWYgZm9ybS5jYXRlZ29yeVxuXHRcdGNhdGVnb3J5ID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRDYXRlZ29yeShmb3JtLmNhdGVnb3J5KVxuXHRcdGlmIGNhdGVnb3J5XG5cdFx0XHRpbnNfb2JqLmNhdGVnb3J5X25hbWUgPSBjYXRlZ29yeS5uYW1lXG5cdFx0XHRpbnNfb2JqLmNhdGVnb3J5ID0gY2F0ZWdvcnkuX2lkXG5cblx0bmV3X2luc19pZCA9IENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLmluc2VydChpbnNfb2JqKVxuXG5cdHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVSZWNvcmRJbnN0YW5jZUluZm8oaW5zX29iai5yZWNvcmRfaWRzWzBdLCBuZXdfaW5zX2lkLCBzcGFjZV9pZClcblxuXHQjIHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVSZWxhdGVkUmVjb3JkSW5zdGFuY2VJbmZvKHJlbGF0ZWRUYWJsZXNJbmZvLCBuZXdfaW5zX2lkLCBzcGFjZV9pZClcblxuXHR1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlQXR0YWNoKGluc19vYmoucmVjb3JkX2lkc1swXSwgc3BhY2VfaWQsIGluc19vYmouX2lkLCBhcHByX29iai5faWQpXG5cblx0cmV0dXJuIG5ld19pbnNfaWRcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZVZhbHVlcyA9IChyZWNvcmRJZHMsIGZsb3dJZCwgc3BhY2VJZCwgZmllbGRzLCByZWxhdGVkVGFibGVzSW5mbykgLT5cblx0ZmllbGRDb2RlcyA9IFtdXG5cdF8uZWFjaCBmaWVsZHMsIChmKSAtPlxuXHRcdGlmIGYudHlwZSA9PSAnc2VjdGlvbidcblx0XHRcdF8uZWFjaCBmLmZpZWxkcywgKGZmKSAtPlxuXHRcdFx0XHRmaWVsZENvZGVzLnB1c2ggZmYuY29kZVxuXHRcdGVsc2Vcblx0XHRcdGZpZWxkQ29kZXMucHVzaCBmLmNvZGVcblxuXHR2YWx1ZXMgPSB7fVxuXHRvYmplY3ROYW1lID0gcmVjb3JkSWRzLm9cblx0b2JqZWN0ID0gZ2V0T2JqZWN0Q29uZmlnKG9iamVjdE5hbWUpXG5cdHJlY29yZElkID0gcmVjb3JkSWRzLmlkc1swXVxuXHRvdyA9IENyZWF0b3IuQ29sbGVjdGlvbnMub2JqZWN0X3dvcmtmbG93cy5maW5kT25lKHtcblx0XHRvYmplY3RfbmFtZTogb2JqZWN0TmFtZSxcblx0XHRmbG93X2lkOiBmbG93SWRcblx0fSlcblx0IyByZWNvcmQgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0TmFtZSwgc3BhY2VJZCkuZmluZE9uZShyZWNvcmRJZClcblx0cmVjb3JkID0gb2JqZWN0RmluZE9uZShvYmplY3ROYW1lLCB7IGZpbHRlcnM6IFtbJ19pZCcsICc9JywgcmVjb3JkSWRdXX0pXG5cdGZsb3cgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oJ2Zsb3dzJykuZmluZE9uZShmbG93SWQsIHsgZmllbGRzOiB7IGZvcm06IDEgfSB9KVxuXHRpZiBvdyBhbmQgcmVjb3JkXG5cdFx0Zm9ybSA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihcImZvcm1zXCIpLmZpbmRPbmUoZmxvdy5mb3JtKVxuXHRcdGZvcm1GaWVsZHMgPSBmb3JtLmN1cnJlbnQuZmllbGRzIHx8IFtdXG5cdFx0cmVsYXRlZE9iamVjdHMgPSBnZXRSZWxhdGVkcyhvYmplY3ROYW1lKVxuXHRcdHJlbGF0ZWRPYmplY3RzS2V5cyA9IF8ucGx1Y2socmVsYXRlZE9iamVjdHMsICdvYmplY3RfbmFtZScpXG5cdFx0Zm9ybVRhYmxlRmllbGRzID0gXy5maWx0ZXIgZm9ybUZpZWxkcywgKGZvcm1GaWVsZCkgLT5cblx0XHRcdHJldHVybiBmb3JtRmllbGQudHlwZSA9PSAndGFibGUnXG5cdFx0Zm9ybVRhYmxlRmllbGRzQ29kZSA9IF8ucGx1Y2soZm9ybVRhYmxlRmllbGRzLCAnY29kZScpXG5cblx0XHR0YWJsZUZpZWxkQ29kZXMgPSBbXVxuXHRcdHRhYmxlRmllbGRNYXAgPSBbXVxuXHRcdHRhYmxlVG9SZWxhdGVkTWFwID0ge31cblxuXHRcdG93LmZpZWxkX21hcD8uZm9yRWFjaCAoZm0pIC0+XG5cdFx0XHRvYmplY3RfZmllbGQgPSBmbS5vYmplY3RfZmllbGRcblx0XHRcdHdvcmtmbG93X2ZpZWxkID0gZm0ud29ya2Zsb3dfZmllbGRcblx0XHRcdGlmICFvYmplY3RfZmllbGQgfHwgIXdvcmtmbG93X2ZpZWxkXG5cdFx0XHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoNDAwLCAn5pyq5om+5Yiw5a2X5q6177yM6K+35qOA5p+l5a+56LGh5rWB56iL5pig5bCE5a2X5q616YWN572uJylcblx0XHRcdHJlbGF0ZWRPYmplY3RGaWVsZENvZGUgPSBnZXRSZWxhdGVkT2JqZWN0RmllbGRDb2RlKHJlbGF0ZWRPYmplY3RzS2V5cywgb2JqZWN0X2ZpZWxkKVxuXHRcdFx0Zm9ybVRhYmxlRmllbGRDb2RlID0gZ2V0Rm9ybVRhYmxlRmllbGRDb2RlKGZvcm1UYWJsZUZpZWxkc0NvZGUsIHdvcmtmbG93X2ZpZWxkKVxuXHRcdFx0b2JqRmllbGQgPSBvYmplY3QuZmllbGRzW29iamVjdF9maWVsZF1cblx0XHRcdGZvcm1GaWVsZCA9IGdldEZvcm1GaWVsZChmb3JtRmllbGRzLCB3b3JrZmxvd19maWVsZClcblx0XHRcdHJlY29yZEZpZWxkVmFsdWUgPSByZWNvcmRbb2JqZWN0X2ZpZWxkXVxuXHRcdFx0IyDlpITnkIblrZDooajlrZfmrrVcblx0XHRcdGlmIHJlbGF0ZWRPYmplY3RGaWVsZENvZGVcblx0XHRcdFx0XG5cdFx0XHRcdG9UYWJsZUNvZGUgPSBvYmplY3RfZmllbGQuc3BsaXQoJy4nKVswXVxuXHRcdFx0XHRvVGFibGVGaWVsZENvZGUgPSBvYmplY3RfZmllbGQuc3BsaXQoJy4nKVsxXVxuXHRcdFx0XHR0YWJsZVRvUmVsYXRlZE1hcEtleSA9IG9UYWJsZUNvZGVcblx0XHRcdFx0aWYgIXRhYmxlVG9SZWxhdGVkTWFwW3RhYmxlVG9SZWxhdGVkTWFwS2V5XVxuXHRcdFx0XHRcdHRhYmxlVG9SZWxhdGVkTWFwW3RhYmxlVG9SZWxhdGVkTWFwS2V5XSA9IHt9XG5cblx0XHRcdFx0aWYgZm9ybVRhYmxlRmllbGRDb2RlXG5cdFx0XHRcdFx0d1RhYmxlQ29kZSA9IHdvcmtmbG93X2ZpZWxkLnNwbGl0KCcuJylbMF1cblx0XHRcdFx0XHR0YWJsZVRvUmVsYXRlZE1hcFt0YWJsZVRvUmVsYXRlZE1hcEtleV1bJ19GUk9NX1RBQkxFX0NPREUnXSA9IHdUYWJsZUNvZGVcblxuXHRcdFx0XHR0YWJsZVRvUmVsYXRlZE1hcFt0YWJsZVRvUmVsYXRlZE1hcEtleV1bb1RhYmxlRmllbGRDb2RlXSA9IHdvcmtmbG93X2ZpZWxkXG5cdFx0XHQjIOWIpOaWreaYr+WQpuaYr+ihqOagvOWtl+autVxuXHRcdFx0ZWxzZSBpZiB3b3JrZmxvd19maWVsZC5pbmRleE9mKCcuJykgPiAwIGFuZCBvYmplY3RfZmllbGQuaW5kZXhPZignLiQuJykgPiAwXG5cdFx0XHRcdHdUYWJsZUNvZGUgPSB3b3JrZmxvd19maWVsZC5zcGxpdCgnLicpWzBdXG5cdFx0XHRcdG9UYWJsZUNvZGUgPSBvYmplY3RfZmllbGQuc3BsaXQoJy4kLicpWzBdXG5cdFx0XHRcdGlmIHJlY29yZC5oYXNPd25Qcm9wZXJ0eShvVGFibGVDb2RlKSBhbmQgXy5pc0FycmF5KHJlY29yZFtvVGFibGVDb2RlXSlcblx0XHRcdFx0XHR0YWJsZUZpZWxkQ29kZXMucHVzaChKU09OLnN0cmluZ2lmeSh7XG5cdFx0XHRcdFx0XHR3b3JrZmxvd190YWJsZV9maWVsZF9jb2RlOiB3VGFibGVDb2RlLFxuXHRcdFx0XHRcdFx0b2JqZWN0X3RhYmxlX2ZpZWxkX2NvZGU6IG9UYWJsZUNvZGVcblx0XHRcdFx0XHR9KSlcblx0XHRcdFx0XHR0YWJsZUZpZWxkTWFwLnB1c2goZm0pXG5cdFx0XHRcdGVsc2UgaWYgb1RhYmxlQ29kZS5pbmRleE9mKCcuJykgPiAwICMg6K+05piO5piv5YWz6IGU6KGo55qEZ3JpZOWtl+autVxuXHRcdFx0XHRcdG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZENvZGUgPSBvVGFibGVDb2RlLnNwbGl0KCcuJylbMF07XG5cdFx0XHRcdFx0Z3JpZENvZGUgPSBvVGFibGVDb2RlLnNwbGl0KCcuJylbMV07XG5cdFx0XHRcdFx0b1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkID0gb2JqZWN0LmZpZWxkc1tvVGFibGVDb2RlUmVmZXJlbmNlRmllbGRDb2RlXTtcblx0XHRcdFx0XHRpZiBvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZC50eXBlKSAmJiBfLmlzU3RyaW5nKG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZC5yZWZlcmVuY2VfdG8pXG5cdFx0XHRcdFx0XHRpZiByZWNvcmRbb1RhYmxlQ29kZV1cblx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0cmVmZXJlbmNlVG9GaWVsZE5hbWUgPSBvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQucmVmZXJlbmNlX3RvX2ZpZWxkIHx8ICdfaWQnO1xuXHRcdFx0XHRcdFx0cmVmZXJlbmNlVG9PYmplY3ROYW1lID0gb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkLnJlZmVyZW5jZV90bztcblx0XHRcdFx0XHRcdHJlZmVyZW5jZVRvRmllbGRWYWx1ZSA9IHJlY29yZFtvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQubmFtZV07XG5cdFx0XHRcdFx0XHRyZWZlcmVuY2VUb0RvYyA9IGdldEZpZWxkT2RhdGFWYWx1ZShyZWZlcmVuY2VUb09iamVjdE5hbWUsIHJlZmVyZW5jZVRvRmllbGRWYWx1ZSwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpO1xuXHRcdFx0XHRcdFx0aWYgcmVmZXJlbmNlVG9Eb2NbZ3JpZENvZGVdXG5cdFx0XHRcdFx0XHRcdHJlY29yZFtvVGFibGVDb2RlXSA9IHJlZmVyZW5jZVRvRG9jW2dyaWRDb2RlXTtcblx0XHRcdFx0XHRcdFx0dGFibGVGaWVsZENvZGVzLnB1c2goSlNPTi5zdHJpbmdpZnkoe1xuXHRcdFx0XHRcdFx0XHRcdHdvcmtmbG93X3RhYmxlX2ZpZWxkX2NvZGU6IHdUYWJsZUNvZGUsXG5cdFx0XHRcdFx0XHRcdFx0b2JqZWN0X3RhYmxlX2ZpZWxkX2NvZGU6IG9UYWJsZUNvZGVcblx0XHRcdFx0XHRcdFx0fSkpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGFibGVGaWVsZE1hcC5wdXNoKGZtKTtcblxuXHRcdFx0IyDlpITnkIZsb29rdXDjgIFtYXN0ZXJfZGV0YWls57G75Z6L5a2X5q61XG5cdFx0XHRlbHNlIGlmIG9iamVjdF9maWVsZC5pbmRleE9mKCcuJykgPiAwIGFuZCBvYmplY3RfZmllbGQuaW5kZXhPZignLiQuJykgPT0gLTFcblx0XHRcdFx0b2JqZWN0RmllbGROYW1lID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMF1cblx0XHRcdFx0bG9va3VwRmllbGROYW1lID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMV1cblx0XHRcdFx0aWYgb2JqZWN0XG5cdFx0XHRcdFx0b2JqZWN0RmllbGQgPSBvYmplY3QuZmllbGRzW29iamVjdEZpZWxkTmFtZV1cblx0XHRcdFx0XHRpZiBvYmplY3RGaWVsZCAmJiBmb3JtRmllbGQgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9iamVjdEZpZWxkLnR5cGUpICYmIF8uaXNTdHJpbmcob2JqZWN0RmllbGQucmVmZXJlbmNlX3RvKVxuXHRcdFx0XHRcdFx0bG9va3VwT2JqZWN0UmVjb3JkID0gb2JqZWN0RmluZE9uZShvYmplY3RGaWVsZC5yZWZlcmVuY2VfdG8sIHsgZmlsdGVyczogW1snX2lkJywgJz0nLCByZWNvcmRbb2JqZWN0RmllbGROYW1lXV1dLCBmaWVsZHM6IFtsb29rdXBGaWVsZE5hbWVdIH0pXG5cdFx0XHRcdFx0XHRpZiAhbG9va3VwT2JqZWN0UmVjb3JkXG5cdFx0XHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHRcdFx0b2JqZWN0RmllbGRPYmplY3ROYW1lID0gb2JqZWN0RmllbGQucmVmZXJlbmNlX3RvXG5cdFx0XHRcdFx0XHRsb29rdXBGaWVsZE9iaiA9IGdldE9iamVjdENvbmZpZyhvYmplY3RGaWVsZE9iamVjdE5hbWUpXG5cdFx0XHRcdFx0XHRvYmplY3RMb29rdXBGaWVsZCA9IGxvb2t1cEZpZWxkT2JqLmZpZWxkc1tsb29rdXBGaWVsZE5hbWVdXG5cblx0XHRcdFx0XHRcdHZhbHVlc1t3b3JrZmxvd19maWVsZF0gPSBnZXRJbnN0YW5jZUZpZWxkVmFsdWUob2JqZWN0TG9va3VwRmllbGQsIGZvcm1GaWVsZCwgbG9va3VwT2JqZWN0UmVjb3JkLCBsb29rdXBGaWVsZE5hbWUsIHNwYWNlSWQpXG5cdFx0XHRlbHNlXG5cdFx0XHRcdHZhbHVlc1t3b3JrZmxvd19maWVsZF0gPSBnZXRJbnN0YW5jZUZpZWxkVmFsdWUob2JqRmllbGQsIGZvcm1GaWVsZCwgcmVjb3JkLCBvYmplY3RfZmllbGQsIHNwYWNlSWQpXG5cblx0XHQjIOihqOagvOWtl+autVxuXHRcdF8udW5pcSh0YWJsZUZpZWxkQ29kZXMpLmZvckVhY2ggKHRmYykgLT5cblx0XHRcdGMgPSBKU09OLnBhcnNlKHRmYylcblx0XHRcdHZhbHVlc1tjLndvcmtmbG93X3RhYmxlX2ZpZWxkX2NvZGVdID0gW11cblx0XHRcdHJlY29yZFtjLm9iamVjdF90YWJsZV9maWVsZF9jb2RlXS5mb3JFYWNoICh0cikgLT5cblx0XHRcdFx0bmV3VHIgPSB7fVxuXHRcdFx0XHRfLmVhY2ggdHIsICh2LCBrKSAtPlxuXHRcdFx0XHRcdHRhYmxlRmllbGRNYXAuZm9yRWFjaCAodGZtKSAtPlxuXHRcdFx0XHRcdFx0aWYgdGZtLm9iamVjdF9maWVsZCBpcyAoYy5vYmplY3RfdGFibGVfZmllbGRfY29kZSArICcuJC4nICsgaylcblx0XHRcdFx0XHRcdFx0d1RkQ29kZSA9IHRmbS53b3JrZmxvd19maWVsZC5zcGxpdCgnLicpWzFdXG5cdFx0XHRcdFx0XHRcdG5ld1RyW3dUZENvZGVdID0gdlxuXHRcdFx0XHRpZiBub3QgXy5pc0VtcHR5KG5ld1RyKVxuXHRcdFx0XHRcdHZhbHVlc1tjLndvcmtmbG93X3RhYmxlX2ZpZWxkX2NvZGVdLnB1c2gobmV3VHIpXG5cblx0XHQjIOWQjOatpeWtkOihqOaVsOaNruiHs+ihqOWNleihqOagvFxuXHRcdF8uZWFjaCB0YWJsZVRvUmVsYXRlZE1hcCwgIChtYXAsIGtleSkgLT5cblx0XHRcdHRhYmxlQ29kZSA9IG1hcC5fRlJPTV9UQUJMRV9DT0RFXG5cdFx0XHRmb3JtVGFibGVGaWVsZCA9IGdldEZvcm1UYWJsZUZpZWxkKGZvcm1UYWJsZUZpZWxkcywgdGFibGVDb2RlKVxuXHRcdFx0aWYgIXRhYmxlQ29kZVxuXHRcdFx0XHRjb25zb2xlLndhcm4oJ3RhYmxlVG9SZWxhdGVkOiBbJyArIGtleSArICddIG1pc3NpbmcgY29ycmVzcG9uZGluZyB0YWJsZS4nKVxuXHRcdFx0ZWxzZVxuXHRcdFx0XHRyZWxhdGVkT2JqZWN0TmFtZSA9IGtleVxuXHRcdFx0XHR0YWJsZVZhbHVlcyA9IFtdXG5cdFx0XHRcdHJlbGF0ZWRUYWJsZUl0ZW1zID0gW11cblx0XHRcdFx0cmVsYXRlZE9iamVjdCA9IGdldE9iamVjdENvbmZpZyhyZWxhdGVkT2JqZWN0TmFtZSlcblx0XHRcdFx0cmVsYXRlZEZpZWxkID0gXy5maW5kIHJlbGF0ZWRPYmplY3QuZmllbGRzLCAoZikgLT5cblx0XHRcdFx0XHRyZXR1cm4gWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKGYudHlwZSkgJiYgZi5yZWZlcmVuY2VfdG8gPT0gb2JqZWN0TmFtZVxuXG5cdFx0XHRcdHJlbGF0ZWRGaWVsZE5hbWUgPSByZWxhdGVkRmllbGQubmFtZVxuXG5cdFx0XHRcdHJlbGF0ZWRSZWNvcmRzID0gb2JqZWN0RmluZChyZWxhdGVkT2JqZWN0TmFtZSwge1xuXHRcdFx0XHRcdGZpbHRlcnM6IFtcblx0XHRcdFx0XHRcdFtyZWxhdGVkRmllbGROYW1lLCAnPScsIHJlY29yZElkXVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fSlcblxuXHRcdFx0XHRyZWxhdGVkUmVjb3Jkcy5mb3JFYWNoIChycikgLT5cblx0XHRcdFx0XHR0YWJsZVZhbHVlSXRlbSA9IHt9XG5cdFx0XHRcdFx0Xy5lYWNoIG1hcCwgKHZhbHVlS2V5LCBmaWVsZEtleSkgLT5cblx0XHRcdFx0XHRcdGlmIGZpZWxkS2V5ICE9ICdfRlJPTV9UQUJMRV9DT0RFJ1xuXHRcdFx0XHRcdFx0XHR0YWJsZUZpZWxkVmFsdWVcblx0XHRcdFx0XHRcdFx0Zm9ybUZpZWxkS2V5XG5cdFx0XHRcdFx0XHRcdGlmIHZhbHVlS2V5LnN0YXJ0c1dpdGgodGFibGVDb2RlICsgJy4nKVxuXHRcdFx0XHRcdFx0XHRcdGZvcm1GaWVsZEtleSA9ICh2YWx1ZUtleS5zcGxpdChcIi5cIilbMV0pXG5cdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRmb3JtRmllbGRLZXkgPSB2YWx1ZUtleVxuXHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0Zm9ybUZpZWxkID0gZ2V0Rm9ybVRhYmxlU3ViRmllbGQoZm9ybVRhYmxlRmllbGQsIGZvcm1GaWVsZEtleSlcblx0XHRcdFx0XHRcdFx0cmVsYXRlZE9iamVjdEZpZWxkID0gcmVsYXRlZE9iamVjdC5maWVsZHNbZmllbGRLZXldXG5cdFx0XHRcdFx0XHRcdGlmICFmb3JtRmllbGQgfHwgIXJlbGF0ZWRPYmplY3RGaWVsZFxuXHRcdFx0XHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHRcdFx0XHR0YWJsZUZpZWxkVmFsdWUgPSBnZXRJbnN0YW5jZUZpZWxkVmFsdWUocmVsYXRlZE9iamVjdEZpZWxkLCBmb3JtRmllbGQsIHJyLCBmaWVsZEtleSwgc3BhY2VJZClcblx0XHRcdFx0XHRcdFx0dGFibGVWYWx1ZUl0ZW1bZm9ybUZpZWxkS2V5XSA9IHRhYmxlRmllbGRWYWx1ZVxuXHRcdFx0XHRcdGlmICFfLmlzRW1wdHkodGFibGVWYWx1ZUl0ZW0pXG5cdFx0XHRcdFx0XHR0YWJsZVZhbHVlSXRlbS5faWQgPSByci5faWRcblx0XHRcdFx0XHRcdHRhYmxlVmFsdWVzLnB1c2godGFibGVWYWx1ZUl0ZW0pXG5cdFx0XHRcdFx0XHRyZWxhdGVkVGFibGVJdGVtcy5wdXNoKHsgX3RhYmxlOiB7IF9pZDogcnIuX2lkLCBfY29kZTogdGFibGVDb2RlIH0gfSApXG5cblx0XHRcdFx0dmFsdWVzW3RhYmxlQ29kZV0gPSB0YWJsZVZhbHVlc1xuXHRcdFx0XHRyZWxhdGVkVGFibGVzSW5mb1tyZWxhdGVkT2JqZWN0TmFtZV0gPSByZWxhdGVkVGFibGVJdGVtc1xuXG5cdFx0IyDlpoLmnpzphY3nva7kuobohJrmnKzliJnmiafooYzohJrmnKxcblx0XHRpZiBvdy5maWVsZF9tYXBfc2NyaXB0XG5cdFx0XHRfLmV4dGVuZCh2YWx1ZXMsIHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZXZhbEZpZWxkTWFwU2NyaXB0KG93LmZpZWxkX21hcF9zY3JpcHQsIG9iamVjdE5hbWUsIHNwYWNlSWQsIHJlY29yZElkKSlcblxuXHQjIOi/h+a7pOaOiXZhbHVlc+S4reeahOmdnuazlWtleVxuXHRmaWx0ZXJWYWx1ZXMgPSB7fVxuXHRfLmVhY2ggXy5rZXlzKHZhbHVlcyksIChrKSAtPlxuXHRcdGlmIGZpZWxkQ29kZXMuaW5jbHVkZXMoaylcblx0XHRcdGZpbHRlclZhbHVlc1trXSA9IHZhbHVlc1trXVxuXG5cdHJldHVybiBmaWx0ZXJWYWx1ZXNcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5ldmFsRmllbGRNYXBTY3JpcHQgPSAoZmllbGRfbWFwX3NjcmlwdCwgb2JqZWN0TmFtZSwgc3BhY2VJZCwgb2JqZWN0SWQpIC0+XG5cdCMgcmVjb3JkID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdE5hbWUsIHNwYWNlSWQpLmZpbmRPbmUob2JqZWN0SWQpXG5cdHJlY29yZCA9IG9iamVjdEZpbmRPbmUob2JqZWN0TmFtZSwgeyBmaWx0ZXJzOiBbWydfaWQnLCAnPScsIG9iamVjdElkXV0gfSlcblx0c2NyaXB0ID0gXCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChyZWNvcmQpIHsgXCIgKyBmaWVsZF9tYXBfc2NyaXB0ICsgXCIgfVwiXG5cdGZ1bmMgPSBfZXZhbChzY3JpcHQsIFwiZmllbGRfbWFwX3NjcmlwdFwiKVxuXHR2YWx1ZXMgPSBmdW5jKHJlY29yZClcblx0aWYgXy5pc09iamVjdCB2YWx1ZXNcblx0XHRyZXR1cm4gdmFsdWVzXG5cdGVsc2Vcblx0XHRjb25zb2xlLmVycm9yIFwiZXZhbEZpZWxkTWFwU2NyaXB0OiDohJrmnKzov5Tlm57lgLznsbvlnovkuI3mmK/lr7nosaFcIlxuXHRyZXR1cm4ge31cblxuXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVBdHRhY2ggPSAocmVjb3JkSWRzLCBzcGFjZUlkLCBpbnNJZCwgYXBwcm92ZUlkKSAtPlxuXG5cdENyZWF0b3IuQ29sbGVjdGlvbnNbJ2Ntc19maWxlcyddLmZpbmQoe1xuXHRcdHNwYWNlOiBzcGFjZUlkLFxuXHRcdHBhcmVudDogcmVjb3JkSWRzXG5cdH0pLmZvckVhY2ggKGNmKSAtPlxuXHRcdF8uZWFjaCBjZi52ZXJzaW9ucywgKHZlcnNpb25JZCwgaWR4KSAtPlxuXHRcdFx0ZiA9IENyZWF0b3IuQ29sbGVjdGlvbnNbJ2Nmcy5maWxlcy5maWxlcmVjb3JkJ10uZmluZE9uZSh2ZXJzaW9uSWQpXG5cdFx0XHRuZXdGaWxlID0gbmV3IEZTLkZpbGUoKVxuXG5cdFx0XHRuZXdGaWxlLmF0dGFjaERhdGEgZi5jcmVhdGVSZWFkU3RyZWFtKCdmaWxlcycpLCB7XG5cdFx0XHRcdFx0dHlwZTogZi5vcmlnaW5hbC50eXBlXG5cdFx0XHR9LCAoZXJyKSAtPlxuXHRcdFx0XHRpZiAoZXJyKVxuXHRcdFx0XHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoZXJyLmVycm9yLCBlcnIucmVhc29uKVxuXG5cdFx0XHRcdG5ld0ZpbGUubmFtZShmLm5hbWUoKSlcblx0XHRcdFx0bmV3RmlsZS5zaXplKGYuc2l6ZSgpKVxuXHRcdFx0XHRtZXRhZGF0YSA9IHtcblx0XHRcdFx0XHRvd25lcjogZi5tZXRhZGF0YS5vd25lcixcblx0XHRcdFx0XHRvd25lcl9uYW1lOiBmLm1ldGFkYXRhLm93bmVyX25hbWUsXG5cdFx0XHRcdFx0c3BhY2U6IHNwYWNlSWQsXG5cdFx0XHRcdFx0aW5zdGFuY2U6IGluc0lkLFxuXHRcdFx0XHRcdGFwcHJvdmU6IGFwcHJvdmVJZFxuXHRcdFx0XHRcdHBhcmVudDogY2YuX2lkXG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiBpZHggaXMgMFxuXHRcdFx0XHRcdG1ldGFkYXRhLmN1cnJlbnQgPSB0cnVlXG5cblx0XHRcdFx0bmV3RmlsZS5tZXRhZGF0YSA9IG1ldGFkYXRhXG5cdFx0XHRcdGNmcy5pbnN0YW5jZXMuaW5zZXJ0KG5ld0ZpbGUpXG5cblx0cmV0dXJuXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVSZWNvcmRJbnN0YW5jZUluZm8gPSAocmVjb3JkSWRzLCBpbnNJZCwgc3BhY2VJZCkgLT5cblx0IyBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVjb3JkSWRzLm8sIHNwYWNlSWQpLnVwZGF0ZShyZWNvcmRJZHMuaWRzWzBdLCB7XG5cdCMgXHQkcHVzaDoge1xuXHQjIFx0XHRpbnN0YW5jZXM6IHtcblx0IyBcdFx0XHQkZWFjaDogW3tcblx0IyBcdFx0XHRcdF9pZDogaW5zSWQsXG5cdCMgXHRcdFx0XHRzdGF0ZTogJ2RyYWZ0J1xuXHQjIFx0XHRcdH1dLFxuXHQjIFx0XHRcdCRwb3NpdGlvbjogMFxuXHQjIFx0XHR9XG5cdCMgXHR9LFxuXHQjIFx0JHNldDoge1xuXHQjIFx0XHRsb2NrZWQ6IHRydWVcblx0IyBcdFx0aW5zdGFuY2Vfc3RhdGU6ICdkcmFmdCdcblx0IyBcdH1cblx0IyB9KVxuXHRvYmplY3RVcGRhdGUocmVjb3JkSWRzLm8sIHJlY29yZElkcy5pZHNbMF0sIHtcblx0XHRpbnN0YW5jZXM6IFt7XG5cdFx0XHRfaWQ6IGluc0lkLFxuXHRcdFx0c3RhdGU6ICdkcmFmdCdcblx0XHR9XSxcblx0XHRsb2NrZWQ6IHRydWUsXG5cdFx0aW5zdGFuY2Vfc3RhdGU6ICdkcmFmdCdcblx0fSlcblxuXHRyZXR1cm5cblxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlUmVsYXRlZFJlY29yZEluc3RhbmNlSW5mbyA9IChyZWxhdGVkVGFibGVzSW5mbywgaW5zSWQsIHNwYWNlSWQpIC0+XG5cdF8uZWFjaCByZWxhdGVkVGFibGVzSW5mbywgKHRhYmxlSXRlbXMsIHJlbGF0ZWRPYmplY3ROYW1lKSAtPlxuXHRcdHJlbGF0ZWRDb2xsZWN0aW9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlbGF0ZWRPYmplY3ROYW1lLCBzcGFjZUlkKVxuXHRcdF8uZWFjaCB0YWJsZUl0ZW1zLCAoaXRlbSkgLT5cblx0XHRcdHJlbGF0ZWRDb2xsZWN0aW9uLmRpcmVjdC51cGRhdGUoaXRlbS5fdGFibGUuX2lkLCB7XG5cdFx0XHRcdCRzZXQ6IHtcblx0XHRcdFx0XHRpbnN0YW5jZXM6IFt7XG5cdFx0XHRcdFx0XHRfaWQ6IGluc0lkLFxuXHRcdFx0XHRcdFx0c3RhdGU6ICdkcmFmdCdcblx0XHRcdFx0XHR9XSxcblx0XHRcdFx0XHRfdGFibGU6IGl0ZW0uX3RhYmxlXG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cblx0cmV0dXJuXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY2hlY2tJc0luQXBwcm92YWwgPSAocmVjb3JkSWRzLCBzcGFjZUlkKSAtPlxuXHQjIHJlY29yZCA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWNvcmRJZHMubywgc3BhY2VJZCkuZmluZE9uZSh7XG5cdCMgXHRfaWQ6IHJlY29yZElkcy5pZHNbMF0sIGluc3RhbmNlczogeyAkZXhpc3RzOiB0cnVlIH1cblx0IyB9LCB7IGZpZWxkczogeyBpbnN0YW5jZXM6IDEgfSB9KVxuXHRyZWNvcmQgPSBvYmplY3RGaW5kT25lKHJlY29yZElkcy5vLCB7IGZpbHRlcnM6IFtbJ19pZCcsICc9JywgcmVjb3JkSWRzLmlkc1swXV1dLCBmaWVsZHM6IFsnaW5zdGFuY2VzJ10gfSlcblxuXHRpZiByZWNvcmQgYW5kIHJlY29yZC5pbnN0YW5jZXMgYW5kIHJlY29yZC5pbnN0YW5jZXNbMF0uc3RhdGUgaXNudCAnY29tcGxldGVkJyBhbmQgQ3JlYXRvci5Db2xsZWN0aW9ucy5pbnN0YW5jZXMuZmluZChyZWNvcmQuaW5zdGFuY2VzWzBdLl9pZCkuY291bnQoKSA+IDBcblx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcIuatpOiusOW9leW3suWPkei1t+a1geeoi+ato+WcqOWuoeaJueS4re+8jOW+heWuoeaJuee7k+adn+aWueWPr+WPkei1t+S4i+S4gOasoeWuoeaJue+8gVwiKVxuXG5cdHJldHVyblxuXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZm9ybWF0RGF0ZSA9IChkYXRlKSAtPlxuXHRyZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdChcIllZWVktTU0tRERcIikiLCJ2YXIgX2V2YWwsIGdldEZpZWxkT2RhdGFWYWx1ZSwgZ2V0RmlsZUZpZWxkVmFsdWUsIGdldEZvcm1GaWVsZCwgZ2V0Rm9ybVRhYmxlRmllbGQsIGdldEZvcm1UYWJsZUZpZWxkQ29kZSwgZ2V0Rm9ybVRhYmxlU3ViRmllbGQsIGdldEluc3RhbmNlRmllbGRWYWx1ZSwgZ2V0T2JqZWN0Q29uZmlnLCBnZXRPYmplY3ROYW1lRmllbGRLZXksIGdldFJlbGF0ZWRPYmplY3RGaWVsZENvZGUsIGdldFJlbGF0ZWRzLCBnZXRTZWxlY3RPcmdWYWx1ZSwgZ2V0U2VsZWN0T3JnVmFsdWVzLCBnZXRTZWxlY3RVc2VyVmFsdWUsIGdldFNlbGVjdFVzZXJWYWx1ZXMsIG9iamVjdEZpbmQsIG9iamVjdEZpbmRPbmUsIG9iamVjdFVwZGF0ZSwgb2JqZWN0cWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbl9ldmFsID0gcmVxdWlyZSgnZXZhbCcpO1xuXG5vYmplY3RxbCA9IHJlcXVpcmUoJ0BzdGVlZG9zL29iamVjdHFsJyk7XG5cbmdldE9iamVjdENvbmZpZyA9IGZ1bmN0aW9uKG9iamVjdEFwaU5hbWUpIHtcbiAgcmV0dXJuIG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS50b0NvbmZpZygpO1xufTtcblxuZ2V0T2JqZWN0TmFtZUZpZWxkS2V5ID0gZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSkge1xuICByZXR1cm4gb2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLk5BTUVfRklFTERfS0VZO1xufTtcblxuZ2V0UmVsYXRlZHMgPSBmdW5jdGlvbihvYmplY3RBcGlOYW1lKSB7XG4gIHJldHVybiBNZXRlb3Iud3JhcEFzeW5jKGZ1bmN0aW9uKG9iamVjdEFwaU5hbWUsIGNiKSB7XG4gICAgcmV0dXJuIG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS5nZXRSZWxhdGVkcygpLnRoZW4oZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZXR1cm4gY2IocmVqZWN0LCByZXNvbHZlKTtcbiAgICB9KTtcbiAgfSkob2JqZWN0QXBpTmFtZSk7XG59O1xuXG5vYmplY3RGaW5kT25lID0gZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSwgcXVlcnkpIHtcbiAgcmV0dXJuIE1ldGVvci53cmFwQXN5bmMoZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSwgcXVlcnksIGNiKSB7XG4gICAgcmV0dXJuIG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS5maW5kKHF1ZXJ5KS50aGVuKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgaWYgKHJlc29sdmUgJiYgcmVzb2x2ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBjYihyZWplY3QsIHJlc29sdmVbMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNiKHJlamVjdCwgbnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pKG9iamVjdEFwaU5hbWUsIHF1ZXJ5KTtcbn07XG5cbm9iamVjdEZpbmQgPSBmdW5jdGlvbihvYmplY3RBcGlOYW1lLCBxdWVyeSkge1xuICByZXR1cm4gTWV0ZW9yLndyYXBBc3luYyhmdW5jdGlvbihvYmplY3RBcGlOYW1lLCBxdWVyeSwgY2IpIHtcbiAgICByZXR1cm4gb2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLmZpbmQocXVlcnkpLnRoZW4oZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZXR1cm4gY2IocmVqZWN0LCByZXNvbHZlKTtcbiAgICB9KTtcbiAgfSkob2JqZWN0QXBpTmFtZSwgcXVlcnkpO1xufTtcblxub2JqZWN0VXBkYXRlID0gZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSwgaWQsIGRhdGEpIHtcbiAgcmV0dXJuIE1ldGVvci53cmFwQXN5bmMoZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSwgaWQsIGRhdGEsIGNiKSB7XG4gICAgcmV0dXJuIG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS51cGRhdGUoaWQsIGRhdGEpLnRoZW4oZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZXR1cm4gY2IocmVqZWN0LCByZXNvbHZlKTtcbiAgICB9KTtcbiAgfSkob2JqZWN0QXBpTmFtZSwgaWQsIGRhdGEpO1xufTtcblxuZ2V0UmVsYXRlZE9iamVjdEZpZWxkQ29kZSA9IGZ1bmN0aW9uKHJlbGF0ZWRPYmplY3RzS2V5cywga2V5KSB7XG4gIHJldHVybiBfLmZpbmQocmVsYXRlZE9iamVjdHNLZXlzLCBmdW5jdGlvbihyZWxhdGVkT2JqZWN0c0tleSkge1xuICAgIHJldHVybiBrZXkuc3RhcnRzV2l0aChyZWxhdGVkT2JqZWN0c0tleSArICcuJyk7XG4gIH0pO1xufTtcblxuZ2V0Rm9ybVRhYmxlRmllbGRDb2RlID0gZnVuY3Rpb24oZm9ybVRhYmxlRmllbGRzQ29kZSwga2V5KSB7XG4gIHJldHVybiBfLmZpbmQoZm9ybVRhYmxlRmllbGRzQ29kZSwgZnVuY3Rpb24oZm9ybVRhYmxlRmllbGRDb2RlKSB7XG4gICAgcmV0dXJuIGtleS5zdGFydHNXaXRoKGZvcm1UYWJsZUZpZWxkQ29kZSArICcuJyk7XG4gIH0pO1xufTtcblxuZ2V0Rm9ybVRhYmxlRmllbGQgPSBmdW5jdGlvbihmb3JtVGFibGVGaWVsZHMsIGtleSkge1xuICByZXR1cm4gXy5maW5kKGZvcm1UYWJsZUZpZWxkcywgZnVuY3Rpb24oZikge1xuICAgIHJldHVybiBmLmNvZGUgPT09IGtleTtcbiAgfSk7XG59O1xuXG5nZXRGb3JtRmllbGQgPSBmdW5jdGlvbihmb3JtRmllbGRzLCBrZXkpIHtcbiAgdmFyIGZmO1xuICBmZiA9IG51bGw7XG4gIF8uZm9yRWFjaChmb3JtRmllbGRzLCBmdW5jdGlvbihmKSB7XG4gICAgaWYgKGZmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChmLnR5cGUgPT09ICdzZWN0aW9uJykge1xuICAgICAgcmV0dXJuIGZmID0gXy5maW5kKGYuZmllbGRzLCBmdW5jdGlvbihzZikge1xuICAgICAgICByZXR1cm4gc2YuY29kZSA9PT0ga2V5O1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChmLmNvZGUgPT09IGtleSkge1xuICAgICAgcmV0dXJuIGZmID0gZjtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZmY7XG59O1xuXG5nZXRGb3JtVGFibGVTdWJGaWVsZCA9IGZ1bmN0aW9uKHRhYmxlRmllbGQsIHN1YkZpZWxkQ29kZSkge1xuICByZXR1cm4gXy5maW5kKHRhYmxlRmllbGQuZmllbGRzLCBmdW5jdGlvbihmKSB7XG4gICAgcmV0dXJuIGYuY29kZSA9PT0gc3ViRmllbGRDb2RlO1xuICB9KTtcbn07XG5cbmdldEZpZWxkT2RhdGFWYWx1ZSA9IGZ1bmN0aW9uKG9iak5hbWUsIGlkLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSkge1xuICB2YXIgX3JlY29yZCwgX3JlY29yZHMsIG5hbWVLZXksIG9iajtcbiAgb2JqID0gb2JqZWN0cWwuZ2V0T2JqZWN0KG9iak5hbWUpO1xuICBuYW1lS2V5ID0gZ2V0T2JqZWN0TmFtZUZpZWxkS2V5KG9iak5hbWUpO1xuICBpZiAoIW9iaikge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoXy5pc1N0cmluZyhpZCkpIHtcbiAgICBfcmVjb3JkID0gb2JqZWN0RmluZE9uZShvYmpOYW1lLCB7XG4gICAgICBmaWx0ZXJzOiBbW3JlZmVyZW5jZVRvRmllbGROYW1lLCAnPScsIGlkXV1cbiAgICB9KTtcbiAgICBpZiAoX3JlY29yZCkge1xuICAgICAgX3JlY29yZFsnQGxhYmVsJ10gPSBfcmVjb3JkW25hbWVLZXldO1xuICAgICAgcmV0dXJuIF9yZWNvcmQ7XG4gICAgfVxuICB9IGVsc2UgaWYgKF8uaXNBcnJheShpZCkpIHtcbiAgICBfcmVjb3JkcyA9IFtdO1xuICAgIG9iamVjdEZpbmQob2JqTmFtZSwge1xuICAgICAgZmlsdGVyczogW1tyZWZlcmVuY2VUb0ZpZWxkTmFtZSwgJ2luJywgaWRdXVxuICAgIH0pLmZvckVhY2goZnVuY3Rpb24oX3JlY29yZCkge1xuICAgICAgX3JlY29yZFsnQGxhYmVsJ10gPSBfcmVjb3JkW25hbWVLZXldO1xuICAgICAgcmV0dXJuIF9yZWNvcmRzLnB1c2goX3JlY29yZCk7XG4gICAgfSk7XG4gICAgaWYgKCFfLmlzRW1wdHkoX3JlY29yZHMpKSB7XG4gICAgICByZXR1cm4gX3JlY29yZHM7XG4gICAgfVxuICB9XG59O1xuXG5nZXRTZWxlY3RVc2VyVmFsdWUgPSBmdW5jdGlvbih1c2VySWQsIHNwYWNlSWQpIHtcbiAgdmFyIHN1O1xuICBzdSA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbignc3BhY2VfdXNlcnMnKS5maW5kT25lKHtcbiAgICBzcGFjZTogc3BhY2VJZCxcbiAgICB1c2VyOiB1c2VySWRcbiAgfSk7XG4gIHN1LmlkID0gdXNlcklkO1xuICByZXR1cm4gc3U7XG59O1xuXG5nZXRTZWxlY3RVc2VyVmFsdWVzID0gZnVuY3Rpb24odXNlcklkcywgc3BhY2VJZCkge1xuICB2YXIgc3VzO1xuICBzdXMgPSBbXTtcbiAgaWYgKF8uaXNBcnJheSh1c2VySWRzKSkge1xuICAgIF8uZWFjaCh1c2VySWRzLCBmdW5jdGlvbih1c2VySWQpIHtcbiAgICAgIHZhciBzdTtcbiAgICAgIHN1ID0gZ2V0U2VsZWN0VXNlclZhbHVlKHVzZXJJZCwgc3BhY2VJZCk7XG4gICAgICBpZiAoc3UpIHtcbiAgICAgICAgcmV0dXJuIHN1cy5wdXNoKHN1KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gc3VzO1xufTtcblxuZ2V0U2VsZWN0T3JnVmFsdWUgPSBmdW5jdGlvbihvcmdJZCwgc3BhY2VJZCkge1xuICB2YXIgb3JnO1xuICBvcmcgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oJ29yZ2FuaXphdGlvbnMnKS5maW5kT25lKG9yZ0lkLCB7XG4gICAgZmllbGRzOiB7XG4gICAgICBfaWQ6IDEsXG4gICAgICBuYW1lOiAxLFxuICAgICAgZnVsbG5hbWU6IDFcbiAgICB9XG4gIH0pO1xuICBvcmcuaWQgPSBvcmdJZDtcbiAgcmV0dXJuIG9yZztcbn07XG5cbmdldFNlbGVjdE9yZ1ZhbHVlcyA9IGZ1bmN0aW9uKG9yZ0lkcywgc3BhY2VJZCkge1xuICB2YXIgb3JncztcbiAgb3JncyA9IFtdO1xuICBpZiAoXy5pc0FycmF5KG9yZ0lkcykpIHtcbiAgICBfLmVhY2gob3JnSWRzLCBmdW5jdGlvbihvcmdJZCkge1xuICAgICAgdmFyIG9yZztcbiAgICAgIG9yZyA9IGdldFNlbGVjdE9yZ1ZhbHVlKG9yZ0lkLCBzcGFjZUlkKTtcbiAgICAgIGlmIChvcmcpIHtcbiAgICAgICAgcmV0dXJuIG9yZ3MucHVzaChvcmcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBvcmdzO1xufTtcblxuZ2V0RmlsZUZpZWxkVmFsdWUgPSBmdW5jdGlvbihyZWNvcmRGaWVsZElkLCBmVHlwZSkge1xuICB2YXIgY29sbGVjdGlvbiwgZmlsZXMsIHF1ZXJ5LCB2YWx1ZTtcbiAgaWYgKF8uaXNFbXB0eShyZWNvcmRGaWVsZElkKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZlR5cGUgPT09ICdpbWFnZScpIHtcbiAgICBjb2xsZWN0aW9uID0gJ2ltYWdlcyc7XG4gIH0gZWxzZSBpZiAoZlR5cGUgPT09ICdmaWxlJykge1xuICAgIGNvbGxlY3Rpb24gPSAnZmlsZXMnO1xuICB9XG4gIGlmIChfLmlzU3RyaW5nKHJlY29yZEZpZWxkSWQpKSB7XG4gICAgcXVlcnkgPSB7XG4gICAgICBfaWQ6IHtcbiAgICAgICAgJGluOiBbcmVjb3JkRmllbGRJZF1cbiAgICAgIH1cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHF1ZXJ5ID0ge1xuICAgICAgX2lkOiB7XG4gICAgICAgICRpbjogcmVjb3JkRmllbGRJZFxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgZmlsZXMgPSBDcmVhdG9yLkNvbGxlY3Rpb25zW1wiY2ZzLlwiICsgY29sbGVjdGlvbiArIFwiLmZpbGVyZWNvcmRcIl0uZmluZChxdWVyeSk7XG4gIHZhbHVlID0gW107XG4gIGZpbGVzLmZvckVhY2goZnVuY3Rpb24oZikge1xuICAgIHZhciBuZXdGaWxlO1xuICAgIG5ld0ZpbGUgPSBuZXcgRlMuRmlsZSgpO1xuICAgIHJldHVybiBuZXdGaWxlLmF0dGFjaERhdGEoZi5jcmVhdGVSZWFkU3RyZWFtKCdmaWxlcycpLCB7XG4gICAgICB0eXBlOiBmLm9yaWdpbmFsLnR5cGVcbiAgICB9LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgIHZhciBtZXRhZGF0YTtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcihlcnIuZXJyb3IsIGVyci5yZWFzb24pO1xuICAgICAgfVxuICAgICAgbmV3RmlsZS5uYW1lKGYubmFtZSgpKTtcbiAgICAgIG5ld0ZpbGUuc2l6ZShmLnNpemUoKSk7XG4gICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgb3duZXI6IGYubWV0YWRhdGEub3duZXJcbiAgICAgIH07XG4gICAgICBuZXdGaWxlLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICBuZXdGaWxlLl9pZCA9IENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLl9tYWtlTmV3SUQoKTtcbiAgICAgIGNmc1tjb2xsZWN0aW9uXS5pbnNlcnQobmV3RmlsZSk7XG4gICAgICByZXR1cm4gdmFsdWUucHVzaChuZXdGaWxlLl9pZCk7XG4gICAgfSk7XG4gIH0pO1xuICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xuICAgIGlmIChfLmlzU3RyaW5nKHJlY29yZEZpZWxkSWQpKSB7XG4gICAgICByZXR1cm4gdmFsdWVbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cbn07XG5cbmdldEluc3RhbmNlRmllbGRWYWx1ZSA9IGZ1bmN0aW9uKG9iakZpZWxkLCBmb3JtRmllbGQsIHJlY29yZCwgb2JqZWN0X2ZpZWxkLCBzcGFjZUlkKSB7XG4gIHZhciBvZGF0YUZpZWxkVmFsdWUsIHJlY29yZEZpZWxkVmFsdWUsIHJlZmVyZW5jZVRvRmllbGROYW1lLCByZWZlcmVuY2VUb09iamVjdE5hbWUsIHNlbGVjdEZpZWxkVmFsdWUsIHZhbHVlO1xuICByZWNvcmRGaWVsZFZhbHVlID0gcmVjb3JkW29iakZpZWxkLm5hbWVdO1xuICB2YWx1ZTtcbiAgaWYgKGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiBmb3JtRmllbGQudHlwZSA9PT0gJ29kYXRhJyAmJiBbJ2xvb2t1cCcsICdtYXN0ZXJfZGV0YWlsJ10uaW5jbHVkZXMob2JqRmllbGQudHlwZSkgJiYgXy5pc1N0cmluZyhvYmpGaWVsZC5yZWZlcmVuY2VfdG8pKSB7XG4gICAgcmVmZXJlbmNlVG9GaWVsZE5hbWUgPSBvYmpGaWVsZC5yZWZlcmVuY2VfdG9fZmllbGQgfHwgJ19pZCc7XG4gICAgcmVmZXJlbmNlVG9PYmplY3ROYW1lID0gb2JqRmllbGQucmVmZXJlbmNlX3RvO1xuICAgIG9kYXRhRmllbGRWYWx1ZTtcbiAgICBpZiAob2JqRmllbGQubXVsdGlwbGUgJiYgZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0KSB7XG4gICAgICBvZGF0YUZpZWxkVmFsdWUgPSBnZXRGaWVsZE9kYXRhVmFsdWUocmVmZXJlbmNlVG9PYmplY3ROYW1lLCByZWNvcmRGaWVsZFZhbHVlLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSk7XG4gICAgfSBlbHNlIGlmICghb2JqRmllbGQubXVsdGlwbGUgJiYgIWZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdCkge1xuICAgICAgb2RhdGFGaWVsZFZhbHVlID0gZ2V0RmllbGRPZGF0YVZhbHVlKHJlZmVyZW5jZVRvT2JqZWN0TmFtZSwgcmVjb3JkRmllbGRWYWx1ZSwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpO1xuICAgIH1cbiAgICB2YWx1ZSA9IG9kYXRhRmllbGRWYWx1ZTtcbiAgfSBlbHNlIGlmIChmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgWyd1c2VyJywgJ2dyb3VwJ10uaW5jbHVkZXMoZm9ybUZpZWxkLnR5cGUpICYmIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhvYmpGaWVsZC50eXBlKSAmJiAoWyd1c2VycycsICdvcmdhbml6YXRpb25zJ10uaW5jbHVkZXMob2JqRmllbGQucmVmZXJlbmNlX3RvKSB8fCAoJ3NwYWNlX3VzZXJzJyA9PT0gb2JqRmllbGQucmVmZXJlbmNlX3RvICYmICd1c2VyJyA9PT0gb2JqRmllbGQucmVmZXJlbmNlX3RvX2ZpZWxkKSkpIHtcbiAgICBpZiAoIV8uaXNFbXB0eShyZWNvcmRGaWVsZFZhbHVlKSkge1xuICAgICAgc2VsZWN0RmllbGRWYWx1ZTtcbiAgICAgIGlmIChmb3JtRmllbGQudHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICAgIGlmIChvYmpGaWVsZC5tdWx0aXBsZSAmJiBmb3JtRmllbGQuaXNfbXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICBzZWxlY3RGaWVsZFZhbHVlID0gZ2V0U2VsZWN0VXNlclZhbHVlcyhyZWNvcmRGaWVsZFZhbHVlLCBzcGFjZUlkKTtcbiAgICAgICAgfSBlbHNlIGlmICghb2JqRmllbGQubXVsdGlwbGUgJiYgIWZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdCkge1xuICAgICAgICAgIHNlbGVjdEZpZWxkVmFsdWUgPSBnZXRTZWxlY3RVc2VyVmFsdWUocmVjb3JkRmllbGRWYWx1ZSwgc3BhY2VJZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZm9ybUZpZWxkLnR5cGUgPT09ICdncm91cCcpIHtcbiAgICAgICAgaWYgKG9iakZpZWxkLm11bHRpcGxlICYmIGZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdCkge1xuICAgICAgICAgIHNlbGVjdEZpZWxkVmFsdWUgPSBnZXRTZWxlY3RPcmdWYWx1ZXMocmVjb3JkRmllbGRWYWx1ZSwgc3BhY2VJZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9iakZpZWxkLm11bHRpcGxlICYmICFmb3JtRmllbGQuaXNfbXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICBzZWxlY3RGaWVsZFZhbHVlID0gZ2V0U2VsZWN0T3JnVmFsdWUocmVjb3JkRmllbGRWYWx1ZSwgc3BhY2VJZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWxlY3RGaWVsZFZhbHVlKSB7XG4gICAgICAgIHZhbHVlID0gc2VsZWN0RmllbGRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoZm9ybUZpZWxkICYmIG9iakZpZWxkICYmIGZvcm1GaWVsZC50eXBlID09PSAnZGF0ZScgJiYgcmVjb3JkRmllbGRWYWx1ZSkge1xuICAgIHZhbHVlID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5mb3JtYXREYXRlKHJlY29yZEZpZWxkVmFsdWUpO1xuICB9IGVsc2UgaWYgKGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiByZWNvcmRGaWVsZFZhbHVlICYmIChmb3JtRmllbGQudHlwZSA9PT0gJ2ltYWdlJyB8fCBmb3JtRmllbGQudHlwZSA9PT0gJ2ZpbGUnKSkge1xuICAgIHZhbHVlID0gZ2V0RmlsZUZpZWxkVmFsdWUocmVjb3JkRmllbGRWYWx1ZSwgZm9ybUZpZWxkLnR5cGUpO1xuICB9IGVsc2UgaWYgKGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiByZWNvcmRGaWVsZFZhbHVlICYmIGZvcm1GaWVsZC50eXBlID09PSAnbG9va3VwJyAmJiBbJ2xvb2t1cCcsICdtYXN0ZXJfZGV0YWlsJ10uaW5jbHVkZXMob2JqRmllbGQudHlwZSkgJiYgXy5pc1N0cmluZyhvYmpGaWVsZC5yZWZlcmVuY2VfdG8pKSB7XG4gICAgdmFsdWUgPSByZWNvcmRGaWVsZFZhbHVlO1xuICB9IGVsc2UgaWYgKGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiByZWNvcmRGaWVsZFZhbHVlICYmIChmb3JtRmllbGQudHlwZSA9PT0gJ211bHRpU2VsZWN0JykpIHtcbiAgICB2YWx1ZSA9IHJlY29yZEZpZWxkVmFsdWUuam9pbignLCcpO1xuICB9IGVsc2UgaWYgKHJlY29yZC5oYXNPd25Qcm9wZXJ0eShvYmplY3RfZmllbGQpKSB7XG4gICAgdmFsdWUgPSByZWNvcmRGaWVsZFZhbHVlO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwgPSB7fTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jaGVja19hdXRob3JpemF0aW9uID0gZnVuY3Rpb24ocmVxKSB7XG4gIHZhciBhdXRoVG9rZW4sIGhhc2hlZFRva2VuLCBxdWVyeSwgdXNlciwgdXNlcklkO1xuICBxdWVyeSA9IHJlcS5xdWVyeTtcbiAgdXNlcklkID0gcXVlcnlbXCJYLVVzZXItSWRcIl07XG4gIGF1dGhUb2tlbiA9IHF1ZXJ5W1wiWC1BdXRoLVRva2VuXCJdO1xuICBpZiAoIXVzZXJJZCB8fCAhYXV0aFRva2VuKSB7XG4gICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcig0MDEsICdVbmF1dGhvcml6ZWQnKTtcbiAgfVxuICBoYXNoZWRUb2tlbiA9IEFjY291bnRzLl9oYXNoTG9naW5Ub2tlbihhdXRoVG9rZW4pO1xuICB1c2VyID0gTWV0ZW9yLnVzZXJzLmZpbmRPbmUoe1xuICAgIF9pZDogdXNlcklkLFxuICAgIFwic2VydmljZXMucmVzdW1lLmxvZ2luVG9rZW5zLmhhc2hlZFRva2VuXCI6IGhhc2hlZFRva2VuXG4gIH0pO1xuICBpZiAoIXVzZXIpIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKDQwMSwgJ1VuYXV0aG9yaXplZCcpO1xuICB9XG4gIHJldHVybiB1c2VyO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZSA9IGZ1bmN0aW9uKHNwYWNlX2lkKSB7XG4gIHZhciBzcGFjZTtcbiAgc3BhY2UgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLnNwYWNlcy5maW5kT25lKHNwYWNlX2lkKTtcbiAgaWYgKCFzcGFjZSkge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwic3BhY2VfaWTmnInor6/miJbmraRzcGFjZeW3sue7j+iiq+WIoOmZpFwiKTtcbiAgfVxuICByZXR1cm4gc3BhY2U7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZsb3cgPSBmdW5jdGlvbihmbG93X2lkKSB7XG4gIHZhciBmbG93O1xuICBmbG93ID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5mbG93cy5maW5kT25lKGZsb3dfaWQpO1xuICBpZiAoIWZsb3cpIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcImlk5pyJ6K+v5oiW5q2k5rWB56iL5bey57uP6KKr5Yig6ZmkXCIpO1xuICB9XG4gIHJldHVybiBmbG93O1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZVVzZXIgPSBmdW5jdGlvbihzcGFjZV9pZCwgdXNlcl9pZCkge1xuICB2YXIgc3BhY2VfdXNlcjtcbiAgc3BhY2VfdXNlciA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc3BhY2VfdXNlcnMuZmluZE9uZSh7XG4gICAgc3BhY2U6IHNwYWNlX2lkLFxuICAgIHVzZXI6IHVzZXJfaWRcbiAgfSk7XG4gIGlmICghc3BhY2VfdXNlcikge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwidXNlcl9pZOWvueW6lOeahOeUqOaIt+S4jeWxnuS6juW9k+WJjXNwYWNlXCIpO1xuICB9XG4gIHJldHVybiBzcGFjZV91c2VyO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZVVzZXJPcmdJbmZvID0gZnVuY3Rpb24oc3BhY2VfdXNlcikge1xuICB2YXIgaW5mbywgb3JnO1xuICBpbmZvID0gbmV3IE9iamVjdDtcbiAgaW5mby5vcmdhbml6YXRpb24gPSBzcGFjZV91c2VyLm9yZ2FuaXphdGlvbjtcbiAgb3JnID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5vcmdhbml6YXRpb25zLmZpbmRPbmUoc3BhY2VfdXNlci5vcmdhbml6YXRpb24sIHtcbiAgICBmaWVsZHM6IHtcbiAgICAgIG5hbWU6IDEsXG4gICAgICBmdWxsbmFtZTogMVxuICAgIH1cbiAgfSk7XG4gIGluZm8ub3JnYW5pemF0aW9uX25hbWUgPSBvcmcubmFtZTtcbiAgaW5mby5vcmdhbml6YXRpb25fZnVsbG5hbWUgPSBvcmcuZnVsbG5hbWU7XG4gIHJldHVybiBpbmZvO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pc0Zsb3dFbmFibGVkID0gZnVuY3Rpb24oZmxvdykge1xuICBpZiAoZmxvdy5zdGF0ZSAhPT0gXCJlbmFibGVkXCIpIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcIua1geeoi+acquWQr+eUqCzmk43kvZzlpLHotKVcIik7XG4gIH1cbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaXNGbG93U3BhY2VNYXRjaGVkID0gZnVuY3Rpb24oZmxvdywgc3BhY2VfaWQpIHtcbiAgaWYgKGZsb3cuc3BhY2UgIT09IHNwYWNlX2lkKSB7XG4gICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCLmtYHnqIvlkozlt6XkvZzljLpJROS4jeWMuemFjVwiKTtcbiAgfVxufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRGb3JtID0gZnVuY3Rpb24oZm9ybV9pZCkge1xuICB2YXIgZm9ybTtcbiAgZm9ybSA9IENyZWF0b3IuQ29sbGVjdGlvbnMuZm9ybXMuZmluZE9uZShmb3JtX2lkKTtcbiAgaWYgKCFmb3JtKSB7XG4gICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgJ+ihqOWNlUlE5pyJ6K+v5oiW5q2k6KGo5Y2V5bey57uP6KKr5Yig6ZmkJyk7XG4gIH1cbiAgcmV0dXJuIGZvcm07XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldENhdGVnb3J5ID0gZnVuY3Rpb24oY2F0ZWdvcnlfaWQpIHtcbiAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuY2F0ZWdvcmllcy5maW5kT25lKGNhdGVnb3J5X2lkKTtcbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY2hlY2tTeW5jRGlyZWN0aW9uID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIGZsb3dfaWQpIHtcbiAgdmFyIG93LCBzeW5jRGlyZWN0aW9uO1xuICBvdyA9IENyZWF0b3IuQ29sbGVjdGlvbnMub2JqZWN0X3dvcmtmbG93cy5maW5kT25lKHtcbiAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsXG4gICAgZmxvd19pZDogZmxvd19pZFxuICB9KTtcbiAgaWYgKCFvdykge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsICfmnKrmib7liLDlr7nosaHmtYHnqIvmmKDlsITorrDlvZXjgIInKTtcbiAgfVxuICBzeW5jRGlyZWN0aW9uID0gb3cuc3luY19kaXJlY3Rpb24gfHwgJ2JvdGgnO1xuICBpZiAoIVsnYm90aCcsICdvYmpfdG9faW5zJ10uaW5jbHVkZXMoc3luY0RpcmVjdGlvbikpIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCAn5LiN5pSv5oyB55qE5ZCM5q2l5pa55ZCR44CCJyk7XG4gIH1cbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY3JlYXRlX2luc3RhbmNlID0gZnVuY3Rpb24oaW5zdGFuY2VfZnJvbV9jbGllbnQsIHVzZXJfaW5mbykge1xuICB2YXIgYXBwcl9vYmosIGFwcHJvdmVfZnJvbV9jbGllbnQsIGNhdGVnb3J5LCBmbG93LCBmbG93X2lkLCBmb3JtLCBpbnNfb2JqLCBuZXdfaW5zX2lkLCBub3csIHBlcm1pc3Npb25zLCByZWxhdGVkVGFibGVzSW5mbywgc3BhY2UsIHNwYWNlX2lkLCBzcGFjZV91c2VyLCBzcGFjZV91c2VyX29yZ19pbmZvLCBzdGFydF9zdGVwLCB0cmFjZV9mcm9tX2NsaWVudCwgdHJhY2Vfb2JqLCB1c2VyX2lkO1xuICBjaGVjayhpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudFwiXSwgU3RyaW5nKTtcbiAgY2hlY2soaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJzcGFjZVwiXSwgU3RyaW5nKTtcbiAgY2hlY2soaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJmbG93XCJdLCBTdHJpbmcpO1xuICBjaGVjayhpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl0sIFtcbiAgICB7XG4gICAgICBvOiBTdHJpbmcsXG4gICAgICBpZHM6IFtTdHJpbmddXG4gICAgfVxuICBdKTtcbiAgdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jaGVja1N5bmNEaXJlY3Rpb24oaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJyZWNvcmRfaWRzXCJdWzBdLm8sIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiZmxvd1wiXSk7XG4gIHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY2hlY2tJc0luQXBwcm92YWwoaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJyZWNvcmRfaWRzXCJdWzBdLCBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInNwYWNlXCJdKTtcbiAgc3BhY2VfaWQgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInNwYWNlXCJdO1xuICBmbG93X2lkID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJmbG93XCJdO1xuICB1c2VyX2lkID0gdXNlcl9pbmZvLl9pZDtcbiAgdHJhY2VfZnJvbV9jbGllbnQgPSBudWxsO1xuICBhcHByb3ZlX2Zyb21fY2xpZW50ID0gbnVsbDtcbiAgaWYgKGluc3RhbmNlX2Zyb21fY2xpZW50W1widHJhY2VzXCJdICYmIGluc3RhbmNlX2Zyb21fY2xpZW50W1widHJhY2VzXCJdWzBdKSB7XG4gICAgdHJhY2VfZnJvbV9jbGllbnQgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInRyYWNlc1wiXVswXTtcbiAgICBpZiAodHJhY2VfZnJvbV9jbGllbnRbXCJhcHByb3Zlc1wiXSAmJiB0cmFjZV9mcm9tX2NsaWVudFtcImFwcHJvdmVzXCJdWzBdKSB7XG4gICAgICBhcHByb3ZlX2Zyb21fY2xpZW50ID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJ0cmFjZXNcIl1bMF1bXCJhcHByb3Zlc1wiXVswXTtcbiAgICB9XG4gIH1cbiAgc3BhY2UgPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldFNwYWNlKHNwYWNlX2lkKTtcbiAgZmxvdyA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0RmxvdyhmbG93X2lkKTtcbiAgc3BhY2VfdXNlciA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0U3BhY2VVc2VyKHNwYWNlX2lkLCB1c2VyX2lkKTtcbiAgc3BhY2VfdXNlcl9vcmdfaW5mbyA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0U3BhY2VVc2VyT3JnSW5mbyhzcGFjZV91c2VyKTtcbiAgdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pc0Zsb3dFbmFibGVkKGZsb3cpO1xuICB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmlzRmxvd1NwYWNlTWF0Y2hlZChmbG93LCBzcGFjZV9pZCk7XG4gIGZvcm0gPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZvcm0oZmxvdy5mb3JtKTtcbiAgcGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uTWFuYWdlci5nZXRGbG93UGVybWlzc2lvbnMoZmxvd19pZCwgdXNlcl9pZCk7XG4gIGlmICghcGVybWlzc2lvbnMuaW5jbHVkZXMoXCJhZGRcIikpIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcIuW9k+WJjeeUqOaIt+ayoeacieatpOa1geeoi+eahOaWsOW7uuadg+mZkFwiKTtcbiAgfVxuICBub3cgPSBuZXcgRGF0ZTtcbiAgaW5zX29iaiA9IHt9O1xuICBpbnNfb2JqLl9pZCA9IENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLl9tYWtlTmV3SUQoKTtcbiAgaW5zX29iai5zcGFjZSA9IHNwYWNlX2lkO1xuICBpbnNfb2JqLmZsb3cgPSBmbG93X2lkO1xuICBpbnNfb2JqLmZsb3dfdmVyc2lvbiA9IGZsb3cuY3VycmVudC5faWQ7XG4gIGluc19vYmouZm9ybSA9IGZsb3cuZm9ybTtcbiAgaW5zX29iai5mb3JtX3ZlcnNpb24gPSBmbG93LmN1cnJlbnQuZm9ybV92ZXJzaW9uO1xuICBpbnNfb2JqLm5hbWUgPSBmbG93Lm5hbWU7XG4gIGluc19vYmouc3VibWl0dGVyID0gdXNlcl9pZDtcbiAgaW5zX29iai5zdWJtaXR0ZXJfbmFtZSA9IHVzZXJfaW5mby5uYW1lO1xuICBpbnNfb2JqLmFwcGxpY2FudCA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdID8gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRcIl0gOiB1c2VyX2lkO1xuICBpbnNfb2JqLmFwcGxpY2FudF9uYW1lID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfbmFtZVwiXSA/IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X25hbWVcIl0gOiB1c2VyX2luZm8ubmFtZTtcbiAgaW5zX29iai5hcHBsaWNhbnRfb3JnYW5pemF0aW9uID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uXCJdID8gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uXCJdIDogc3BhY2VfdXNlci5vcmdhbml6YXRpb247XG4gIGluc19vYmouYXBwbGljYW50X29yZ2FuaXphdGlvbl9uYW1lID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uX25hbWVcIl0gPyBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9vcmdhbml6YXRpb25fbmFtZVwiXSA6IHNwYWNlX3VzZXJfb3JnX2luZm8ub3JnYW5pemF0aW9uX25hbWU7XG4gIGluc19vYmouYXBwbGljYW50X29yZ2FuaXphdGlvbl9mdWxsbmFtZSA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvbl9mdWxsbmFtZVwiXSA/IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvbl9mdWxsbmFtZVwiXSA6IHNwYWNlX3VzZXJfb3JnX2luZm8ub3JnYW5pemF0aW9uX2Z1bGxuYW1lO1xuICBpbnNfb2JqLmFwcGxpY2FudF9jb21wYW55ID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfY29tcGFueVwiXSA/IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X2NvbXBhbnlcIl0gOiBzcGFjZV91c2VyLmNvbXBhbnlfaWQ7XG4gIGluc19vYmouc3RhdGUgPSAnZHJhZnQnO1xuICBpbnNfb2JqLmNvZGUgPSAnJztcbiAgaW5zX29iai5pc19hcmNoaXZlZCA9IGZhbHNlO1xuICBpbnNfb2JqLmlzX2RlbGV0ZWQgPSBmYWxzZTtcbiAgaW5zX29iai5jcmVhdGVkID0gbm93O1xuICBpbnNfb2JqLmNyZWF0ZWRfYnkgPSB1c2VyX2lkO1xuICBpbnNfb2JqLm1vZGlmaWVkID0gbm93O1xuICBpbnNfb2JqLm1vZGlmaWVkX2J5ID0gdXNlcl9pZDtcbiAgaW5zX29iai5yZWNvcmRfaWRzID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJyZWNvcmRfaWRzXCJdO1xuICBpZiAoc3BhY2VfdXNlci5jb21wYW55X2lkKSB7XG4gICAgaW5zX29iai5jb21wYW55X2lkID0gc3BhY2VfdXNlci5jb21wYW55X2lkO1xuICB9XG4gIHRyYWNlX29iaiA9IHt9O1xuICB0cmFjZV9vYmouX2lkID0gbmV3IE1vbmdvLk9iamVjdElEKCkuX3N0cjtcbiAgdHJhY2Vfb2JqLmluc3RhbmNlID0gaW5zX29iai5faWQ7XG4gIHRyYWNlX29iai5pc19maW5pc2hlZCA9IGZhbHNlO1xuICBzdGFydF9zdGVwID0gXy5maW5kKGZsb3cuY3VycmVudC5zdGVwcywgZnVuY3Rpb24oc3RlcCkge1xuICAgIHJldHVybiBzdGVwLnN0ZXBfdHlwZSA9PT0gJ3N0YXJ0JztcbiAgfSk7XG4gIHRyYWNlX29iai5zdGVwID0gc3RhcnRfc3RlcC5faWQ7XG4gIHRyYWNlX29iai5uYW1lID0gc3RhcnRfc3RlcC5uYW1lO1xuICB0cmFjZV9vYmouc3RhcnRfZGF0ZSA9IG5vdztcbiAgYXBwcl9vYmogPSB7fTtcbiAgYXBwcl9vYmouX2lkID0gbmV3IE1vbmdvLk9iamVjdElEKCkuX3N0cjtcbiAgYXBwcl9vYmouaW5zdGFuY2UgPSBpbnNfb2JqLl9pZDtcbiAgYXBwcl9vYmoudHJhY2UgPSB0cmFjZV9vYmouX2lkO1xuICBhcHByX29iai5pc19maW5pc2hlZCA9IGZhbHNlO1xuICBhcHByX29iai51c2VyID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRcIl0gPyBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudFwiXSA6IHVzZXJfaWQ7XG4gIGFwcHJfb2JqLnVzZXJfbmFtZSA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X25hbWVcIl0gPyBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9uYW1lXCJdIDogdXNlcl9pbmZvLm5hbWU7XG4gIGFwcHJfb2JqLmhhbmRsZXIgPSB1c2VyX2lkO1xuICBhcHByX29iai5oYW5kbGVyX25hbWUgPSB1c2VyX2luZm8ubmFtZTtcbiAgYXBwcl9vYmouaGFuZGxlcl9vcmdhbml6YXRpb24gPSBzcGFjZV91c2VyLm9yZ2FuaXphdGlvbjtcbiAgYXBwcl9vYmouaGFuZGxlcl9vcmdhbml6YXRpb25fbmFtZSA9IHNwYWNlX3VzZXJfb3JnX2luZm8ubmFtZTtcbiAgYXBwcl9vYmouaGFuZGxlcl9vcmdhbml6YXRpb25fZnVsbG5hbWUgPSBzcGFjZV91c2VyX29yZ19pbmZvLmZ1bGxuYW1lO1xuICBhcHByX29iai50eXBlID0gJ2RyYWZ0JztcbiAgYXBwcl9vYmouc3RhcnRfZGF0ZSA9IG5vdztcbiAgYXBwcl9vYmoucmVhZF9kYXRlID0gbm93O1xuICBhcHByX29iai5pc19yZWFkID0gdHJ1ZTtcbiAgYXBwcl9vYmouaXNfZXJyb3IgPSBmYWxzZTtcbiAgYXBwcl9vYmouZGVzY3JpcHRpb24gPSAnJztcbiAgcmVsYXRlZFRhYmxlc0luZm8gPSB7fTtcbiAgYXBwcl9vYmoudmFsdWVzID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZVZhbHVlcyhpbnNfb2JqLnJlY29yZF9pZHNbMF0sIGZsb3dfaWQsIHNwYWNlX2lkLCBmb3JtLmN1cnJlbnQuZmllbGRzLCByZWxhdGVkVGFibGVzSW5mbyk7XG4gIHRyYWNlX29iai5hcHByb3ZlcyA9IFthcHByX29ial07XG4gIGluc19vYmoudHJhY2VzID0gW3RyYWNlX29ial07XG4gIGluc19vYmoudmFsdWVzID0gYXBwcl9vYmoudmFsdWVzO1xuICBpbnNfb2JqLmluYm94X3VzZXJzID0gaW5zdGFuY2VfZnJvbV9jbGllbnQuaW5ib3hfdXNlcnMgfHwgW107XG4gIGluc19vYmouY3VycmVudF9zdGVwX25hbWUgPSBzdGFydF9zdGVwLm5hbWU7XG4gIGlmIChmbG93LmF1dG9fcmVtaW5kID09PSB0cnVlKSB7XG4gICAgaW5zX29iai5hdXRvX3JlbWluZCA9IHRydWU7XG4gIH1cbiAgaW5zX29iai5mbG93X25hbWUgPSBmbG93Lm5hbWU7XG4gIGlmIChmb3JtLmNhdGVnb3J5KSB7XG4gICAgY2F0ZWdvcnkgPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldENhdGVnb3J5KGZvcm0uY2F0ZWdvcnkpO1xuICAgIGlmIChjYXRlZ29yeSkge1xuICAgICAgaW5zX29iai5jYXRlZ29yeV9uYW1lID0gY2F0ZWdvcnkubmFtZTtcbiAgICAgIGluc19vYmouY2F0ZWdvcnkgPSBjYXRlZ29yeS5faWQ7XG4gICAgfVxuICB9XG4gIG5ld19pbnNfaWQgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLmluc3RhbmNlcy5pbnNlcnQoaW5zX29iaik7XG4gIHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVSZWNvcmRJbnN0YW5jZUluZm8oaW5zX29iai5yZWNvcmRfaWRzWzBdLCBuZXdfaW5zX2lkLCBzcGFjZV9pZCk7XG4gIHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVBdHRhY2goaW5zX29iai5yZWNvcmRfaWRzWzBdLCBzcGFjZV9pZCwgaW5zX29iai5faWQsIGFwcHJfb2JqLl9pZCk7XG4gIHJldHVybiBuZXdfaW5zX2lkO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZVZhbHVlcyA9IGZ1bmN0aW9uKHJlY29yZElkcywgZmxvd0lkLCBzcGFjZUlkLCBmaWVsZHMsIHJlbGF0ZWRUYWJsZXNJbmZvKSB7XG4gIHZhciBmaWVsZENvZGVzLCBmaWx0ZXJWYWx1ZXMsIGZsb3csIGZvcm0sIGZvcm1GaWVsZHMsIGZvcm1UYWJsZUZpZWxkcywgZm9ybVRhYmxlRmllbGRzQ29kZSwgb2JqZWN0LCBvYmplY3ROYW1lLCBvdywgcmVjb3JkLCByZWNvcmRJZCwgcmVmLCByZWxhdGVkT2JqZWN0cywgcmVsYXRlZE9iamVjdHNLZXlzLCB0YWJsZUZpZWxkQ29kZXMsIHRhYmxlRmllbGRNYXAsIHRhYmxlVG9SZWxhdGVkTWFwLCB2YWx1ZXM7XG4gIGZpZWxkQ29kZXMgPSBbXTtcbiAgXy5lYWNoKGZpZWxkcywgZnVuY3Rpb24oZikge1xuICAgIGlmIChmLnR5cGUgPT09ICdzZWN0aW9uJykge1xuICAgICAgcmV0dXJuIF8uZWFjaChmLmZpZWxkcywgZnVuY3Rpb24oZmYpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkQ29kZXMucHVzaChmZi5jb2RlKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmllbGRDb2Rlcy5wdXNoKGYuY29kZSk7XG4gICAgfVxuICB9KTtcbiAgdmFsdWVzID0ge307XG4gIG9iamVjdE5hbWUgPSByZWNvcmRJZHMubztcbiAgb2JqZWN0ID0gZ2V0T2JqZWN0Q29uZmlnKG9iamVjdE5hbWUpO1xuICByZWNvcmRJZCA9IHJlY29yZElkcy5pZHNbMF07XG4gIG93ID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3Rfd29ya2Zsb3dzLmZpbmRPbmUoe1xuICAgIG9iamVjdF9uYW1lOiBvYmplY3ROYW1lLFxuICAgIGZsb3dfaWQ6IGZsb3dJZFxuICB9KTtcbiAgcmVjb3JkID0gb2JqZWN0RmluZE9uZShvYmplY3ROYW1lLCB7XG4gICAgZmlsdGVyczogW1snX2lkJywgJz0nLCByZWNvcmRJZF1dXG4gIH0pO1xuICBmbG93ID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKCdmbG93cycpLmZpbmRPbmUoZmxvd0lkLCB7XG4gICAgZmllbGRzOiB7XG4gICAgICBmb3JtOiAxXG4gICAgfVxuICB9KTtcbiAgaWYgKG93ICYmIHJlY29yZCkge1xuICAgIGZvcm0gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oXCJmb3Jtc1wiKS5maW5kT25lKGZsb3cuZm9ybSk7XG4gICAgZm9ybUZpZWxkcyA9IGZvcm0uY3VycmVudC5maWVsZHMgfHwgW107XG4gICAgcmVsYXRlZE9iamVjdHMgPSBnZXRSZWxhdGVkcyhvYmplY3ROYW1lKTtcbiAgICByZWxhdGVkT2JqZWN0c0tleXMgPSBfLnBsdWNrKHJlbGF0ZWRPYmplY3RzLCAnb2JqZWN0X25hbWUnKTtcbiAgICBmb3JtVGFibGVGaWVsZHMgPSBfLmZpbHRlcihmb3JtRmllbGRzLCBmdW5jdGlvbihmb3JtRmllbGQpIHtcbiAgICAgIHJldHVybiBmb3JtRmllbGQudHlwZSA9PT0gJ3RhYmxlJztcbiAgICB9KTtcbiAgICBmb3JtVGFibGVGaWVsZHNDb2RlID0gXy5wbHVjayhmb3JtVGFibGVGaWVsZHMsICdjb2RlJyk7XG4gICAgdGFibGVGaWVsZENvZGVzID0gW107XG4gICAgdGFibGVGaWVsZE1hcCA9IFtdO1xuICAgIHRhYmxlVG9SZWxhdGVkTWFwID0ge307XG4gICAgaWYgKChyZWYgPSBvdy5maWVsZF9tYXApICE9IG51bGwpIHtcbiAgICAgIHJlZi5mb3JFYWNoKGZ1bmN0aW9uKGZtKSB7XG4gICAgICAgIHZhciBmb3JtRmllbGQsIGZvcm1UYWJsZUZpZWxkQ29kZSwgZ3JpZENvZGUsIGxvb2t1cEZpZWxkTmFtZSwgbG9va3VwRmllbGRPYmosIGxvb2t1cE9iamVjdFJlY29yZCwgb1RhYmxlQ29kZSwgb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkLCBvVGFibGVDb2RlUmVmZXJlbmNlRmllbGRDb2RlLCBvVGFibGVGaWVsZENvZGUsIG9iakZpZWxkLCBvYmplY3RGaWVsZCwgb2JqZWN0RmllbGROYW1lLCBvYmplY3RGaWVsZE9iamVjdE5hbWUsIG9iamVjdExvb2t1cEZpZWxkLCBvYmplY3RfZmllbGQsIHJlY29yZEZpZWxkVmFsdWUsIHJlZmVyZW5jZVRvRG9jLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSwgcmVmZXJlbmNlVG9GaWVsZFZhbHVlLCByZWZlcmVuY2VUb09iamVjdE5hbWUsIHJlbGF0ZWRPYmplY3RGaWVsZENvZGUsIHRhYmxlVG9SZWxhdGVkTWFwS2V5LCB3VGFibGVDb2RlLCB3b3JrZmxvd19maWVsZDtcbiAgICAgICAgb2JqZWN0X2ZpZWxkID0gZm0ub2JqZWN0X2ZpZWxkO1xuICAgICAgICB3b3JrZmxvd19maWVsZCA9IGZtLndvcmtmbG93X2ZpZWxkO1xuICAgICAgICBpZiAoIW9iamVjdF9maWVsZCB8fCAhd29ya2Zsb3dfZmllbGQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKDQwMCwgJ+acquaJvuWIsOWtl+aute+8jOivt+ajgOafpeWvueixoea1geeoi+aYoOWwhOWtl+autemFjee9ricpO1xuICAgICAgICB9XG4gICAgICAgIHJlbGF0ZWRPYmplY3RGaWVsZENvZGUgPSBnZXRSZWxhdGVkT2JqZWN0RmllbGRDb2RlKHJlbGF0ZWRPYmplY3RzS2V5cywgb2JqZWN0X2ZpZWxkKTtcbiAgICAgICAgZm9ybVRhYmxlRmllbGRDb2RlID0gZ2V0Rm9ybVRhYmxlRmllbGRDb2RlKGZvcm1UYWJsZUZpZWxkc0NvZGUsIHdvcmtmbG93X2ZpZWxkKTtcbiAgICAgICAgb2JqRmllbGQgPSBvYmplY3QuZmllbGRzW29iamVjdF9maWVsZF07XG4gICAgICAgIGZvcm1GaWVsZCA9IGdldEZvcm1GaWVsZChmb3JtRmllbGRzLCB3b3JrZmxvd19maWVsZCk7XG4gICAgICAgIHJlY29yZEZpZWxkVmFsdWUgPSByZWNvcmRbb2JqZWN0X2ZpZWxkXTtcbiAgICAgICAgaWYgKHJlbGF0ZWRPYmplY3RGaWVsZENvZGUpIHtcbiAgICAgICAgICBvVGFibGVDb2RlID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgb1RhYmxlRmllbGRDb2RlID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMV07XG4gICAgICAgICAgdGFibGVUb1JlbGF0ZWRNYXBLZXkgPSBvVGFibGVDb2RlO1xuICAgICAgICAgIGlmICghdGFibGVUb1JlbGF0ZWRNYXBbdGFibGVUb1JlbGF0ZWRNYXBLZXldKSB7XG4gICAgICAgICAgICB0YWJsZVRvUmVsYXRlZE1hcFt0YWJsZVRvUmVsYXRlZE1hcEtleV0gPSB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZvcm1UYWJsZUZpZWxkQ29kZSkge1xuICAgICAgICAgICAgd1RhYmxlQ29kZSA9IHdvcmtmbG93X2ZpZWxkLnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgICB0YWJsZVRvUmVsYXRlZE1hcFt0YWJsZVRvUmVsYXRlZE1hcEtleV1bJ19GUk9NX1RBQkxFX0NPREUnXSA9IHdUYWJsZUNvZGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0YWJsZVRvUmVsYXRlZE1hcFt0YWJsZVRvUmVsYXRlZE1hcEtleV1bb1RhYmxlRmllbGRDb2RlXSA9IHdvcmtmbG93X2ZpZWxkO1xuICAgICAgICB9IGVsc2UgaWYgKHdvcmtmbG93X2ZpZWxkLmluZGV4T2YoJy4nKSA+IDAgJiYgb2JqZWN0X2ZpZWxkLmluZGV4T2YoJy4kLicpID4gMCkge1xuICAgICAgICAgIHdUYWJsZUNvZGUgPSB3b3JrZmxvd19maWVsZC5zcGxpdCgnLicpWzBdO1xuICAgICAgICAgIG9UYWJsZUNvZGUgPSBvYmplY3RfZmllbGQuc3BsaXQoJy4kLicpWzBdO1xuICAgICAgICAgIGlmIChyZWNvcmQuaGFzT3duUHJvcGVydHkob1RhYmxlQ29kZSkgJiYgXy5pc0FycmF5KHJlY29yZFtvVGFibGVDb2RlXSkpIHtcbiAgICAgICAgICAgIHRhYmxlRmllbGRDb2Rlcy5wdXNoKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgd29ya2Zsb3dfdGFibGVfZmllbGRfY29kZTogd1RhYmxlQ29kZSxcbiAgICAgICAgICAgICAgb2JqZWN0X3RhYmxlX2ZpZWxkX2NvZGU6IG9UYWJsZUNvZGVcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHJldHVybiB0YWJsZUZpZWxkTWFwLnB1c2goZm0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAob1RhYmxlQ29kZS5pbmRleE9mKCcuJykgPiAwKSB7XG4gICAgICAgICAgICBvVGFibGVDb2RlUmVmZXJlbmNlRmllbGRDb2RlID0gb1RhYmxlQ29kZS5zcGxpdCgnLicpWzBdO1xuICAgICAgICAgICAgZ3JpZENvZGUgPSBvVGFibGVDb2RlLnNwbGl0KCcuJylbMV07XG4gICAgICAgICAgICBvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQgPSBvYmplY3QuZmllbGRzW29UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZENvZGVdO1xuICAgICAgICAgICAgaWYgKG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZCAmJiBbJ2xvb2t1cCcsICdtYXN0ZXJfZGV0YWlsJ10uaW5jbHVkZXMob1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkLnR5cGUpICYmIF8uaXNTdHJpbmcob1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkLnJlZmVyZW5jZV90bykpIHtcbiAgICAgICAgICAgICAgaWYgKHJlY29yZFtvVGFibGVDb2RlXSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZWZlcmVuY2VUb0ZpZWxkTmFtZSA9IG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZC5yZWZlcmVuY2VfdG9fZmllbGQgfHwgJ19pZCc7XG4gICAgICAgICAgICAgIHJlZmVyZW5jZVRvT2JqZWN0TmFtZSA9IG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZC5yZWZlcmVuY2VfdG87XG4gICAgICAgICAgICAgIHJlZmVyZW5jZVRvRmllbGRWYWx1ZSA9IHJlY29yZFtvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQubmFtZV07XG4gICAgICAgICAgICAgIHJlZmVyZW5jZVRvRG9jID0gZ2V0RmllbGRPZGF0YVZhbHVlKHJlZmVyZW5jZVRvT2JqZWN0TmFtZSwgcmVmZXJlbmNlVG9GaWVsZFZhbHVlLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgIGlmIChyZWZlcmVuY2VUb0RvY1tncmlkQ29kZV0pIHtcbiAgICAgICAgICAgICAgICByZWNvcmRbb1RhYmxlQ29kZV0gPSByZWZlcmVuY2VUb0RvY1tncmlkQ29kZV07XG4gICAgICAgICAgICAgICAgdGFibGVGaWVsZENvZGVzLnB1c2goSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgd29ya2Zsb3dfdGFibGVfZmllbGRfY29kZTogd1RhYmxlQ29kZSxcbiAgICAgICAgICAgICAgICAgIG9iamVjdF90YWJsZV9maWVsZF9jb2RlOiBvVGFibGVDb2RlXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZUZpZWxkTWFwLnB1c2goZm0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9iamVjdF9maWVsZC5pbmRleE9mKCcuJykgPiAwICYmIG9iamVjdF9maWVsZC5pbmRleE9mKCcuJC4nKSA9PT0gLTEpIHtcbiAgICAgICAgICBvYmplY3RGaWVsZE5hbWUgPSBvYmplY3RfZmllbGQuc3BsaXQoJy4nKVswXTtcbiAgICAgICAgICBsb29rdXBGaWVsZE5hbWUgPSBvYmplY3RfZmllbGQuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgICBpZiAob2JqZWN0KSB7XG4gICAgICAgICAgICBvYmplY3RGaWVsZCA9IG9iamVjdC5maWVsZHNbb2JqZWN0RmllbGROYW1lXTtcbiAgICAgICAgICAgIGlmIChvYmplY3RGaWVsZCAmJiBmb3JtRmllbGQgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9iamVjdEZpZWxkLnR5cGUpICYmIF8uaXNTdHJpbmcob2JqZWN0RmllbGQucmVmZXJlbmNlX3RvKSkge1xuICAgICAgICAgICAgICBsb29rdXBPYmplY3RSZWNvcmQgPSBvYmplY3RGaW5kT25lKG9iamVjdEZpZWxkLnJlZmVyZW5jZV90bywge1xuICAgICAgICAgICAgICAgIGZpbHRlcnM6IFtbJ19pZCcsICc9JywgcmVjb3JkW29iamVjdEZpZWxkTmFtZV1dXSxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtsb29rdXBGaWVsZE5hbWVdXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAoIWxvb2t1cE9iamVjdFJlY29yZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvYmplY3RGaWVsZE9iamVjdE5hbWUgPSBvYmplY3RGaWVsZC5yZWZlcmVuY2VfdG87XG4gICAgICAgICAgICAgIGxvb2t1cEZpZWxkT2JqID0gZ2V0T2JqZWN0Q29uZmlnKG9iamVjdEZpZWxkT2JqZWN0TmFtZSk7XG4gICAgICAgICAgICAgIG9iamVjdExvb2t1cEZpZWxkID0gbG9va3VwRmllbGRPYmouZmllbGRzW2xvb2t1cEZpZWxkTmFtZV07XG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZXNbd29ya2Zsb3dfZmllbGRdID0gZ2V0SW5zdGFuY2VGaWVsZFZhbHVlKG9iamVjdExvb2t1cEZpZWxkLCBmb3JtRmllbGQsIGxvb2t1cE9iamVjdFJlY29yZCwgbG9va3VwRmllbGROYW1lLCBzcGFjZUlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlc1t3b3JrZmxvd19maWVsZF0gPSBnZXRJbnN0YW5jZUZpZWxkVmFsdWUob2JqRmllbGQsIGZvcm1GaWVsZCwgcmVjb3JkLCBvYmplY3RfZmllbGQsIHNwYWNlSWQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgXy51bmlxKHRhYmxlRmllbGRDb2RlcykuZm9yRWFjaChmdW5jdGlvbih0ZmMpIHtcbiAgICAgIHZhciBjO1xuICAgICAgYyA9IEpTT04ucGFyc2UodGZjKTtcbiAgICAgIHZhbHVlc1tjLndvcmtmbG93X3RhYmxlX2ZpZWxkX2NvZGVdID0gW107XG4gICAgICByZXR1cm4gcmVjb3JkW2Mub2JqZWN0X3RhYmxlX2ZpZWxkX2NvZGVdLmZvckVhY2goZnVuY3Rpb24odHIpIHtcbiAgICAgICAgdmFyIG5ld1RyO1xuICAgICAgICBuZXdUciA9IHt9O1xuICAgICAgICBfLmVhY2godHIsIGZ1bmN0aW9uKHYsIGspIHtcbiAgICAgICAgICByZXR1cm4gdGFibGVGaWVsZE1hcC5mb3JFYWNoKGZ1bmN0aW9uKHRmbSkge1xuICAgICAgICAgICAgdmFyIHdUZENvZGU7XG4gICAgICAgICAgICBpZiAodGZtLm9iamVjdF9maWVsZCA9PT0gKGMub2JqZWN0X3RhYmxlX2ZpZWxkX2NvZGUgKyAnLiQuJyArIGspKSB7XG4gICAgICAgICAgICAgIHdUZENvZGUgPSB0Zm0ud29ya2Zsb3dfZmllbGQuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ld1RyW3dUZENvZGVdID0gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghXy5pc0VtcHR5KG5ld1RyKSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZXNbYy53b3JrZmxvd190YWJsZV9maWVsZF9jb2RlXS5wdXNoKG5ld1RyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgXy5lYWNoKHRhYmxlVG9SZWxhdGVkTWFwLCBmdW5jdGlvbihtYXAsIGtleSkge1xuICAgICAgdmFyIGZvcm1UYWJsZUZpZWxkLCByZWxhdGVkRmllbGQsIHJlbGF0ZWRGaWVsZE5hbWUsIHJlbGF0ZWRPYmplY3QsIHJlbGF0ZWRPYmplY3ROYW1lLCByZWxhdGVkUmVjb3JkcywgcmVsYXRlZFRhYmxlSXRlbXMsIHRhYmxlQ29kZSwgdGFibGVWYWx1ZXM7XG4gICAgICB0YWJsZUNvZGUgPSBtYXAuX0ZST01fVEFCTEVfQ09ERTtcbiAgICAgIGZvcm1UYWJsZUZpZWxkID0gZ2V0Rm9ybVRhYmxlRmllbGQoZm9ybVRhYmxlRmllbGRzLCB0YWJsZUNvZGUpO1xuICAgICAgaWYgKCF0YWJsZUNvZGUpIHtcbiAgICAgICAgcmV0dXJuIGNvbnNvbGUud2FybigndGFibGVUb1JlbGF0ZWQ6IFsnICsga2V5ICsgJ10gbWlzc2luZyBjb3JyZXNwb25kaW5nIHRhYmxlLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVsYXRlZE9iamVjdE5hbWUgPSBrZXk7XG4gICAgICAgIHRhYmxlVmFsdWVzID0gW107XG4gICAgICAgIHJlbGF0ZWRUYWJsZUl0ZW1zID0gW107XG4gICAgICAgIHJlbGF0ZWRPYmplY3QgPSBnZXRPYmplY3RDb25maWcocmVsYXRlZE9iamVjdE5hbWUpO1xuICAgICAgICByZWxhdGVkRmllbGQgPSBfLmZpbmQocmVsYXRlZE9iamVjdC5maWVsZHMsIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICByZXR1cm4gWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKGYudHlwZSkgJiYgZi5yZWZlcmVuY2VfdG8gPT09IG9iamVjdE5hbWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZWxhdGVkRmllbGROYW1lID0gcmVsYXRlZEZpZWxkLm5hbWU7XG4gICAgICAgIHJlbGF0ZWRSZWNvcmRzID0gb2JqZWN0RmluZChyZWxhdGVkT2JqZWN0TmFtZSwge1xuICAgICAgICAgIGZpbHRlcnM6IFtbcmVsYXRlZEZpZWxkTmFtZSwgJz0nLCByZWNvcmRJZF1dXG4gICAgICAgIH0pO1xuICAgICAgICByZWxhdGVkUmVjb3Jkcy5mb3JFYWNoKGZ1bmN0aW9uKHJyKSB7XG4gICAgICAgICAgdmFyIHRhYmxlVmFsdWVJdGVtO1xuICAgICAgICAgIHRhYmxlVmFsdWVJdGVtID0ge307XG4gICAgICAgICAgXy5lYWNoKG1hcCwgZnVuY3Rpb24odmFsdWVLZXksIGZpZWxkS2V5KSB7XG4gICAgICAgICAgICB2YXIgZm9ybUZpZWxkLCBmb3JtRmllbGRLZXksIHJlbGF0ZWRPYmplY3RGaWVsZCwgdGFibGVGaWVsZFZhbHVlO1xuICAgICAgICAgICAgaWYgKGZpZWxkS2V5ICE9PSAnX0ZST01fVEFCTEVfQ09ERScpIHtcbiAgICAgICAgICAgICAgdGFibGVGaWVsZFZhbHVlO1xuICAgICAgICAgICAgICBmb3JtRmllbGRLZXk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZUtleS5zdGFydHNXaXRoKHRhYmxlQ29kZSArICcuJykpIHtcbiAgICAgICAgICAgICAgICBmb3JtRmllbGRLZXkgPSAodmFsdWVLZXkuc3BsaXQoXCIuXCIpWzFdKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3JtRmllbGRLZXkgPSB2YWx1ZUtleTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBmb3JtRmllbGQgPSBnZXRGb3JtVGFibGVTdWJGaWVsZChmb3JtVGFibGVGaWVsZCwgZm9ybUZpZWxkS2V5KTtcbiAgICAgICAgICAgICAgcmVsYXRlZE9iamVjdEZpZWxkID0gcmVsYXRlZE9iamVjdC5maWVsZHNbZmllbGRLZXldO1xuICAgICAgICAgICAgICBpZiAoIWZvcm1GaWVsZCB8fCAhcmVsYXRlZE9iamVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRhYmxlRmllbGRWYWx1ZSA9IGdldEluc3RhbmNlRmllbGRWYWx1ZShyZWxhdGVkT2JqZWN0RmllbGQsIGZvcm1GaWVsZCwgcnIsIGZpZWxkS2V5LCBzcGFjZUlkKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlVmFsdWVJdGVtW2Zvcm1GaWVsZEtleV0gPSB0YWJsZUZpZWxkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGFibGVWYWx1ZUl0ZW0pKSB7XG4gICAgICAgICAgICB0YWJsZVZhbHVlSXRlbS5faWQgPSByci5faWQ7XG4gICAgICAgICAgICB0YWJsZVZhbHVlcy5wdXNoKHRhYmxlVmFsdWVJdGVtKTtcbiAgICAgICAgICAgIHJldHVybiByZWxhdGVkVGFibGVJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgX3RhYmxlOiB7XG4gICAgICAgICAgICAgICAgX2lkOiByci5faWQsXG4gICAgICAgICAgICAgICAgX2NvZGU6IHRhYmxlQ29kZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YWx1ZXNbdGFibGVDb2RlXSA9IHRhYmxlVmFsdWVzO1xuICAgICAgICByZXR1cm4gcmVsYXRlZFRhYmxlc0luZm9bcmVsYXRlZE9iamVjdE5hbWVdID0gcmVsYXRlZFRhYmxlSXRlbXM7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKG93LmZpZWxkX21hcF9zY3JpcHQpIHtcbiAgICAgIF8uZXh0ZW5kKHZhbHVlcywgdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5ldmFsRmllbGRNYXBTY3JpcHQob3cuZmllbGRfbWFwX3NjcmlwdCwgb2JqZWN0TmFtZSwgc3BhY2VJZCwgcmVjb3JkSWQpKTtcbiAgICB9XG4gIH1cbiAgZmlsdGVyVmFsdWVzID0ge307XG4gIF8uZWFjaChfLmtleXModmFsdWVzKSwgZnVuY3Rpb24oaykge1xuICAgIGlmIChmaWVsZENvZGVzLmluY2x1ZGVzKGspKSB7XG4gICAgICByZXR1cm4gZmlsdGVyVmFsdWVzW2tdID0gdmFsdWVzW2tdO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBmaWx0ZXJWYWx1ZXM7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmV2YWxGaWVsZE1hcFNjcmlwdCA9IGZ1bmN0aW9uKGZpZWxkX21hcF9zY3JpcHQsIG9iamVjdE5hbWUsIHNwYWNlSWQsIG9iamVjdElkKSB7XG4gIHZhciBmdW5jLCByZWNvcmQsIHNjcmlwdCwgdmFsdWVzO1xuICByZWNvcmQgPSBvYmplY3RGaW5kT25lKG9iamVjdE5hbWUsIHtcbiAgICBmaWx0ZXJzOiBbWydfaWQnLCAnPScsIG9iamVjdElkXV1cbiAgfSk7XG4gIHNjcmlwdCA9IFwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocmVjb3JkKSB7IFwiICsgZmllbGRfbWFwX3NjcmlwdCArIFwiIH1cIjtcbiAgZnVuYyA9IF9ldmFsKHNjcmlwdCwgXCJmaWVsZF9tYXBfc2NyaXB0XCIpO1xuICB2YWx1ZXMgPSBmdW5jKHJlY29yZCk7XG4gIGlmIChfLmlzT2JqZWN0KHZhbHVlcykpIHtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJldmFsRmllbGRNYXBTY3JpcHQ6IOiEmuacrOi/lOWbnuWAvOexu+Wei+S4jeaYr+WvueixoVwiKTtcbiAgfVxuICByZXR1cm4ge307XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlQXR0YWNoID0gZnVuY3Rpb24ocmVjb3JkSWRzLCBzcGFjZUlkLCBpbnNJZCwgYXBwcm92ZUlkKSB7XG4gIENyZWF0b3IuQ29sbGVjdGlvbnNbJ2Ntc19maWxlcyddLmZpbmQoe1xuICAgIHNwYWNlOiBzcGFjZUlkLFxuICAgIHBhcmVudDogcmVjb3JkSWRzXG4gIH0pLmZvckVhY2goZnVuY3Rpb24oY2YpIHtcbiAgICByZXR1cm4gXy5lYWNoKGNmLnZlcnNpb25zLCBmdW5jdGlvbih2ZXJzaW9uSWQsIGlkeCkge1xuICAgICAgdmFyIGYsIG5ld0ZpbGU7XG4gICAgICBmID0gQ3JlYXRvci5Db2xsZWN0aW9uc1snY2ZzLmZpbGVzLmZpbGVyZWNvcmQnXS5maW5kT25lKHZlcnNpb25JZCk7XG4gICAgICBuZXdGaWxlID0gbmV3IEZTLkZpbGUoKTtcbiAgICAgIHJldHVybiBuZXdGaWxlLmF0dGFjaERhdGEoZi5jcmVhdGVSZWFkU3RyZWFtKCdmaWxlcycpLCB7XG4gICAgICAgIHR5cGU6IGYub3JpZ2luYWwudHlwZVxuICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgIHZhciBtZXRhZGF0YTtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoZXJyLmVycm9yLCBlcnIucmVhc29uKTtcbiAgICAgICAgfVxuICAgICAgICBuZXdGaWxlLm5hbWUoZi5uYW1lKCkpO1xuICAgICAgICBuZXdGaWxlLnNpemUoZi5zaXplKCkpO1xuICAgICAgICBtZXRhZGF0YSA9IHtcbiAgICAgICAgICBvd25lcjogZi5tZXRhZGF0YS5vd25lcixcbiAgICAgICAgICBvd25lcl9uYW1lOiBmLm1ldGFkYXRhLm93bmVyX25hbWUsXG4gICAgICAgICAgc3BhY2U6IHNwYWNlSWQsXG4gICAgICAgICAgaW5zdGFuY2U6IGluc0lkLFxuICAgICAgICAgIGFwcHJvdmU6IGFwcHJvdmVJZCxcbiAgICAgICAgICBwYXJlbnQ6IGNmLl9pZFxuICAgICAgICB9O1xuICAgICAgICBpZiAoaWR4ID09PSAwKSB7XG4gICAgICAgICAgbWV0YWRhdGEuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbmV3RmlsZS5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICAgICAgICByZXR1cm4gY2ZzLmluc3RhbmNlcy5pbnNlcnQobmV3RmlsZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlUmVjb3JkSW5zdGFuY2VJbmZvID0gZnVuY3Rpb24ocmVjb3JkSWRzLCBpbnNJZCwgc3BhY2VJZCkge1xuICBvYmplY3RVcGRhdGUocmVjb3JkSWRzLm8sIHJlY29yZElkcy5pZHNbMF0sIHtcbiAgICBpbnN0YW5jZXM6IFtcbiAgICAgIHtcbiAgICAgICAgX2lkOiBpbnNJZCxcbiAgICAgICAgc3RhdGU6ICdkcmFmdCdcbiAgICAgIH1cbiAgICBdLFxuICAgIGxvY2tlZDogdHJ1ZSxcbiAgICBpbnN0YW5jZV9zdGF0ZTogJ2RyYWZ0J1xuICB9KTtcbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVSZWxhdGVkUmVjb3JkSW5zdGFuY2VJbmZvID0gZnVuY3Rpb24ocmVsYXRlZFRhYmxlc0luZm8sIGluc0lkLCBzcGFjZUlkKSB7XG4gIF8uZWFjaChyZWxhdGVkVGFibGVzSW5mbywgZnVuY3Rpb24odGFibGVJdGVtcywgcmVsYXRlZE9iamVjdE5hbWUpIHtcbiAgICB2YXIgcmVsYXRlZENvbGxlY3Rpb247XG4gICAgcmVsYXRlZENvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVsYXRlZE9iamVjdE5hbWUsIHNwYWNlSWQpO1xuICAgIHJldHVybiBfLmVhY2godGFibGVJdGVtcywgZnVuY3Rpb24oaXRlbSkge1xuICAgICAgcmV0dXJuIHJlbGF0ZWRDb2xsZWN0aW9uLmRpcmVjdC51cGRhdGUoaXRlbS5fdGFibGUuX2lkLCB7XG4gICAgICAgICRzZXQ6IHtcbiAgICAgICAgICBpbnN0YW5jZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgX2lkOiBpbnNJZCxcbiAgICAgICAgICAgICAgc3RhdGU6ICdkcmFmdCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIF90YWJsZTogaXRlbS5fdGFibGVcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jaGVja0lzSW5BcHByb3ZhbCA9IGZ1bmN0aW9uKHJlY29yZElkcywgc3BhY2VJZCkge1xuICB2YXIgcmVjb3JkO1xuICByZWNvcmQgPSBvYmplY3RGaW5kT25lKHJlY29yZElkcy5vLCB7XG4gICAgZmlsdGVyczogW1snX2lkJywgJz0nLCByZWNvcmRJZHMuaWRzWzBdXV0sXG4gICAgZmllbGRzOiBbJ2luc3RhbmNlcyddXG4gIH0pO1xuICBpZiAocmVjb3JkICYmIHJlY29yZC5pbnN0YW5jZXMgJiYgcmVjb3JkLmluc3RhbmNlc1swXS5zdGF0ZSAhPT0gJ2NvbXBsZXRlZCcgJiYgQ3JlYXRvci5Db2xsZWN0aW9ucy5pbnN0YW5jZXMuZmluZChyZWNvcmQuaW5zdGFuY2VzWzBdLl9pZCkuY291bnQoKSA+IDApIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcIuatpOiusOW9leW3suWPkei1t+a1geeoi+ato+WcqOWuoeaJueS4re+8jOW+heWuoeaJuee7k+adn+aWueWPr+WPkei1t+S4i+S4gOasoeWuoeaJue+8gVwiKTtcbiAgfVxufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5mb3JtYXREYXRlID0gZnVuY3Rpb24oZGF0ZSkge1xuICByZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdChcIllZWVktTU0tRERcIik7XG59O1xuIl19 +//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvczpjcmVhdG9yL2NoZWNrTnBtLmpzIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3IvY29yZS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL2NvcmUuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3IvbGliL2FwcHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL21ldGhvZHMvb2JqZWN0X3JlY2VudF92aWV3ZWQuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9zZXJ2ZXIvbWV0aG9kcy9vYmplY3RfcmVjZW50X3ZpZXdlZC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbWV0aG9kcy9vYmplY3RfcmVjZW50X3JlY29yZC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL29iamVjdF9yZWNlbnRfcmVjb3JkLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9tZXRob2RzL29iamVjdF9saXN0dmlld3Nfb3B0aW9ucy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL29iamVjdF9saXN0dmlld3Nfb3B0aW9ucy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbWV0aG9kcy9yZXBvcnRfZGF0YS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL3JlcG9ydF9kYXRhLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9tZXRob2RzL3VzZXJfdGFidWxhcl9zZXR0aW5ncy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL3VzZXJfdGFidWxhcl9zZXR0aW5ncy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbWV0aG9kcy9vYmplY3RfZXhwb3J0MnhtbC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL29iamVjdF9leHBvcnQyeG1sLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9tZXRob2RzL3JlbGF0ZWRfb2JqZWN0c19yZWNvcmRzLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvc2VydmVyL21ldGhvZHMvcmVsYXRlZF9vYmplY3RzX3JlY29yZHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL21ldGhvZHMvcGVuZGluZ19zcGFjZS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9tZXRob2RzL3BlbmRpbmdfc3BhY2UuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9vYmplY3QuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9zZXJ2ZXIvcHVibGljYXRpb25zL29iamVjdC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvcHVibGljYXRpb25zL29iamVjdF90YWJ1bGFyLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvc2VydmVyL3B1YmxpY2F0aW9ucy9vYmplY3RfdGFidWxhci5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvcHVibGljYXRpb25zL29iamVjdF9saXN0dmlld3MuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy91c2VyX3RhYnVsYXJfc2V0dGluZ3MuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9yZWxhdGVkX29iamVjdHNfcmVjb3Jkcy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9wdWJsaWNhdGlvbnMvcmVsYXRlZF9vYmplY3RzX3JlY29yZHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9zcGFjZV91c2VyX2luZm8uY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9jb250YWN0c192aWV3X2xpbWl0cy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9wdWJsaWNhdGlvbnMvY29udGFjdHNfdmlld19saW1pdHMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9jb250YWN0c19ub19mb3JjZV9waG9uZV91c2Vycy5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9wdWJsaWNhdGlvbnMvY29udGFjdHNfbm9fZm9yY2VfcGhvbmVfdXNlcnMuY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9wYWNrYWdlcy9zdGVlZG9zX2NyZWF0b3Ivc2VydmVyL3B1YmxpY2F0aW9ucy9zcGFjZV9uZWVkX3RvX2NvbmZpcm0uY29mZmVlIiwibWV0ZW9yOi8v8J+Su2FwcC9zZXJ2ZXIvcHVibGljYXRpb25zL3NwYWNlX25lZWRfdG9fY29uZmlybS5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3BhY2thZ2VzL3N0ZWVkb3NfY3JlYXRvci9zZXJ2ZXIvbGliL3Blcm1pc3Npb25fbWFuYWdlci5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9saWIvcGVybWlzc2lvbl9tYW5hZ2VyLmNvZmZlZSIsIm1ldGVvcjovL/CfkrthcHAvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yL3NlcnZlci9saWIvdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jb2ZmZWUiLCJtZXRlb3I6Ly/wn5K7YXBwL3NlcnZlci9saWIvdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jb2ZmZWUiXSwibmFtZXMiOlsiY2hlY2tOcG1WZXJzaW9ucyIsIm1vZHVsZSIsImxpbmsiLCJ2IiwiYnVzYm95IiwiTWV0ZW9yIiwic2V0dGluZ3MiLCJjZnMiLCJhbGl5dW4iLCJDcmVhdG9yIiwiZ2V0U2NoZW1hIiwib2JqZWN0X25hbWUiLCJyZWYiLCJnZXRPYmplY3QiLCJzY2hlbWEiLCJnZXRPYmplY3RIb21lQ29tcG9uZW50IiwiZ2V0T2JqZWN0VXJsIiwicmVjb3JkX2lkIiwiYXBwX2lkIiwibGlzdF92aWV3IiwibGlzdF92aWV3X2lkIiwiU2Vzc2lvbiIsImdldCIsImdldExpc3RWaWV3IiwiX2lkIiwiZ2V0UmVsYXRpdmVVcmwiLCJnZXRPYmplY3RBYnNvbHV0ZVVybCIsIlN0ZWVkb3MiLCJhYnNvbHV0ZVVybCIsImdldE9iamVjdFJvdXRlclVybCIsImdldExpc3RWaWV3VXJsIiwidXJsIiwiZ2V0TGlzdFZpZXdSZWxhdGl2ZVVybCIsImdldFN3aXRjaExpc3RVcmwiLCJnZXRSZWxhdGVkT2JqZWN0VXJsIiwicmVsYXRlZF9vYmplY3RfbmFtZSIsInJlbGF0ZWRfZmllbGRfbmFtZSIsImdldE9iamVjdExvb2t1cEZpZWxkT3B0aW9ucyIsImlzX2RlZXAiLCJpc19za2lwX2hpZGUiLCJpc19yZWxhdGVkIiwiX29iamVjdCIsIl9vcHRpb25zIiwiZmllbGRzIiwiaWNvbiIsInJlbGF0ZWRPYmplY3RzIiwiXyIsImZvckVhY2giLCJmIiwiayIsImhpZGRlbiIsInR5cGUiLCJwdXNoIiwibGFiZWwiLCJ2YWx1ZSIsInJfb2JqZWN0IiwicmVmZXJlbmNlX3RvIiwiaXNTdHJpbmciLCJmMiIsImsyIiwiZ2V0UmVsYXRlZE9iamVjdHMiLCJlYWNoIiwiX3RoaXMiLCJfcmVsYXRlZE9iamVjdCIsInJlbGF0ZWRPYmplY3QiLCJyZWxhdGVkT3B0aW9ucyIsInJlbGF0ZWRPcHRpb24iLCJmb3JlaWduX2tleSIsIm5hbWUiLCJnZXRPYmplY3RGaWx0ZXJGaWVsZE9wdGlvbnMiLCJwZXJtaXNzaW9uX2ZpZWxkcyIsImdldEZpZWxkcyIsImluY2x1ZGUiLCJ0ZXN0IiwiaW5kZXhPZiIsImdldE9iamVjdEZpZWxkT3B0aW9ucyIsImdldEZpbHRlcnNXaXRoRmlsdGVyRmllbGRzIiwiZmlsdGVycyIsImZpbHRlcl9maWVsZHMiLCJsZW5ndGgiLCJuIiwiZmllbGQiLCJyZXF1aXJlZCIsImZpbmRXaGVyZSIsImlzX2RlZmF1bHQiLCJpc19yZXF1aXJlZCIsImZpbHRlckl0ZW0iLCJtYXRjaEZpZWxkIiwiZmluZCIsImdldE9iamVjdFJlY29yZCIsInNlbGVjdF9maWVsZHMiLCJleHBhbmQiLCJjb2xsZWN0aW9uIiwib2JqIiwicmVjb3JkIiwicmVmMSIsInJlZjIiLCJpc0NsaWVudCIsIlRlbXBsYXRlIiwiaW5zdGFuY2UiLCJvZGF0YSIsImRhdGFiYXNlX25hbWUiLCJnZXRDb2xsZWN0aW9uIiwiZmluZE9uZSIsImdldE9iamVjdFJlY29yZE5hbWUiLCJuYW1lX2ZpZWxkX2tleSIsIk5BTUVfRklFTERfS0VZIiwiZ2V0QXBwIiwiYXBwTWVudXMiLCJjdXJyZW50QXBwIiwibWVudUl0ZW0iLCJpZCIsImdldEFwcERhc2hib2FyZCIsImFwcCIsImRhc2hib2FyZCIsIkRhc2hib2FyZHMiLCJhcHBzIiwiZ2V0QXBwRGFzaGJvYXJkQ29tcG9uZW50IiwiZ2V0QXBwT2JqZWN0TmFtZXMiLCJhcHBPYmplY3RzIiwiaXNNb2JpbGUiLCJvYmplY3RzIiwibW9iaWxlX29iamVjdHMiLCJwZXJtaXNzaW9ucyIsImFsbG93UmVhZCIsImdldFVybFdpdGhUb2tlbiIsImV4cHJlc3Npb25Gb3JtRGF0YSIsImhhc1F1ZXJ5U3ltYm9sIiwibGlua1N0ciIsInBhcmFtcyIsInNwYWNlSWQiLCJ1c2VySWQiLCJnZXRVc2VyQ29tcGFueUlkcyIsIkFjY291bnRzIiwiX3N0b3JlZExvZ2luVG9rZW4iLCJpc0V4cHJlc3Npb24iLCJwYXJzZVNpbmdsZUV4cHJlc3Npb24iLCJVU0VSX0NPTlRFWFQiLCIkIiwicGFyYW0iLCJnZXRBcHBNZW51IiwibWVudV9pZCIsIm1lbnVzIiwiZ2V0QXBwTWVudXMiLCJtZW51IiwiZ2V0QXBwTWVudVVybEZvckludGVybmV0IiwicGF0aCIsImdldEFwcE1lbnVVcmwiLCJ0YXJnZXQiLCJjdXJlbnRBcHBNZW51cyIsImNoaWxkcmVuIiwibG9hZEFwcHNNZW51cyIsImRhdGEiLCJvcHRpb25zIiwibW9iaWxlIiwic3VjY2VzcyIsInNldCIsImF1dGhSZXF1ZXN0IiwiY3JlYXRvckFwcHNTZWxlY3RvciIsImFzc2lnbmVkX2FwcHMiLCJhZG1pbkFwcCIsImNyZWF0b3JBcHBzIiwic29ydGVkQXBwcyIsImtleSIsImlzX2NyZWF0b3IiLCJ2aXNpYmxlIiwic29ydEJ5IiwidmFsdWVzIiwiYWRtaW4iLCJ2aXNpYmxlQXBwc1NlbGVjdG9yIiwiaW5jbHVkZUFkbWluIiwiZ2V0VmlzaWJsZUFwcHMiLCJjaGFuZ2VBcHAiLCJfc3ViQXBwIiwiT2JqZWN0IiwiYXNzaWduIiwiQXBwcyIsImdldFZpc2libGVBcHBzT2JqZWN0cyIsInZpc2libGVPYmplY3ROYW1lcyIsImZsYXR0ZW4iLCJwbHVjayIsImZpbHRlciIsIk9iamVjdHMiLCJzb3J0Iiwic29ydGluZ01ldGhvZCIsImJpbmQiLCJ1bmlxIiwiZ2V0QXBwc09iamVjdHMiLCJ0ZW1wT2JqZWN0cyIsImNvbmNhdCIsInZhbGlkYXRlRmlsdGVycyIsImxvZ2ljIiwiZSIsImVycm9yTXNnIiwiZmlsdGVyX2l0ZW1zIiwiZmlsdGVyX2xlbmd0aCIsImZsYWciLCJpbmRleCIsIndvcmQiLCJtYXAiLCJpc0VtcHR5IiwiY29tcGFjdCIsInJlcGxhY2UiLCJtYXRjaCIsImkiLCJpbmNsdWRlcyIsInciLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJ0b2FzdHIiLCJmb3JtYXRGaWx0ZXJzVG9Nb25nbyIsInNlbGVjdG9yIiwiQXJyYXkiLCJvcGVyYXRpb24iLCJvcHRpb24iLCJyZWciLCJzdWJfc2VsZWN0b3IiLCJldmFsdWF0ZUZvcm11bGEiLCJSZWdFeHAiLCJpc0JldHdlZW5GaWx0ZXJPcGVyYXRpb24iLCJnZXRCZXR3ZWVuVGltZUJ1aWx0aW5WYWx1ZXMiLCJmb3JtYXRGaWx0ZXJzVG9EZXYiLCJsb2dpY1RlbXBGaWx0ZXJzIiwiaXNfbG9naWNfb3IiLCJwb3AiLCJTdGVlZG9zRmlsdGVycyIsImZvcm1hdExvZ2ljRmlsdGVyc1RvRGV2IiwiZmlsdGVyX2xvZ2ljIiwiZm9ybWF0X2xvZ2ljIiwieCIsIl9mIiwiaXNBcnJheSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZWxhdGVkX29iamVjdF9uYW1lcyIsInJlbGF0ZWRfb2JqZWN0cyIsInVucmVsYXRlZF9vYmplY3RzIiwiZ2V0T2JqZWN0UmVsYXRlZHMiLCJfY29sbGVjdGlvbl9uYW1lIiwiZ2V0UGVybWlzc2lvbnMiLCJkaWZmZXJlbmNlIiwicmVsYXRlZF9vYmplY3QiLCJpc0FjdGl2ZSIsImFsbG93UmVhZEZpbGVzIiwiZ2V0UmVsYXRlZE9iamVjdE5hbWVzIiwiZ2V0UmVsYXRlZE9iamVjdExpc3RBY3Rpb25zIiwicmVsYXRlZE9iamVjdE5hbWUiLCJhY3Rpb25zIiwiZ2V0QWN0aW9ucyIsImFjdGlvbiIsIm9uIiwiZGlzYWJsZWRfYWN0aW9ucyIsImhhcyIsImFsbG93X2N1c3RvbUFjdGlvbnMiLCJrZXlzIiwiZXhjbHVkZV9hY3Rpb25zIiwiZ2V0TGlzdFZpZXdzIiwiZGlzYWJsZWRfbGlzdF92aWV3cyIsImxpc3RWaWV3cyIsImxpc3Rfdmlld3MiLCJvYmplY3QiLCJpdGVtIiwiaXRlbV9uYW1lIiwiaXNEaXNhYmxlZCIsIm93bmVyIiwiZmllbGRzTmFtZSIsInVucmVhZGFibGVfZmllbGRzIiwiZ2V0T2JqZWN0RmllbGRzTmFtZSIsImlzbG9hZGluZyIsImJvb3RzdHJhcExvYWRlZCIsImNvbnZlcnRTcGVjaWFsQ2hhcmFjdGVyIiwic3RyIiwiZ2V0RGlzYWJsZWRGaWVsZHMiLCJmaWVsZE5hbWUiLCJhdXRvZm9ybSIsImRpc2FibGVkIiwib21pdCIsImdldEhpZGRlbkZpZWxkcyIsImdldEZpZWxkc1dpdGhOb0dyb3VwIiwiZ3JvdXAiLCJnZXRTb3J0ZWRGaWVsZEdyb3VwTmFtZXMiLCJuYW1lcyIsInVuaXF1ZSIsImdldEZpZWxkc0Zvckdyb3VwIiwiZ3JvdXBOYW1lIiwiZ2V0U3lzdGVtQmFzZUZpZWxkcyIsImdldEZpZWxkc1dpdGhvdXRTeXN0ZW1CYXNlIiwiZ2V0RmllbGRzV2l0aG91dE9taXQiLCJwaWNrIiwiZ2V0RmllbGRzSW5GaXJzdExldmVsIiwiZmlyc3RMZXZlbEtleXMiLCJnZXRGaWVsZHNGb3JSZW9yZGVyIiwiaXNTaW5nbGUiLCJfa2V5cyIsImNoaWxkS2V5cyIsImlzX3dpZGVfMSIsImlzX3dpZGVfMiIsInNjXzEiLCJzY18yIiwiZW5kc1dpdGgiLCJpc193aWRlIiwic2xpY2UiLCJpc0ZpbHRlclZhbHVlRW1wdHkiLCJOdW1iZXIiLCJpc05hTiIsImdldEZpZWxkRGF0YVR5cGUiLCJvYmplY3RGaWVsZHMiLCJyZXN1bHQiLCJkYXRhX3R5cGUiLCJpc1NlcnZlciIsImdldEFsbFJlbGF0ZWRPYmplY3RzIiwicmVsYXRlZF9maWVsZCIsImVuYWJsZV9maWxlcyIsImZvcm1hdEluZGV4IiwiYXJyYXkiLCJpbmRleE5hbWUiLCJpc2RvY3VtZW50REIiLCJiYWNrZ3JvdW5kIiwiZGF0YXNvdXJjZXMiLCJkb2N1bWVudERCIiwiam9pbiIsInN1YnN0cmluZyIsImFwcHNCeU5hbWUiLCJtZXRob2RzIiwic3BhY2VfaWQiLCJjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQiLCJjdXJyZW50X3JlY2VudF92aWV3ZWQiLCJkb2MiLCJzcGFjZSIsInVwZGF0ZSIsIiRpbmMiLCJjb3VudCIsIiRzZXQiLCJtb2RpZmllZCIsIkRhdGUiLCJtb2RpZmllZF9ieSIsImluc2VydCIsIl9tYWtlTmV3SUQiLCJvIiwiaWRzIiwiY3JlYXRlZCIsImNyZWF0ZWRfYnkiLCJ2YWxpZGF0ZSIsImFzeW5jX3JlY2VudF9hZ2dyZWdhdGUiLCJyZWNlbnRfYWdncmVnYXRlIiwic2VhcmNoX29iamVjdCIsIl9yZWNvcmRzIiwiY2FsbGJhY2siLCJDb2xsZWN0aW9ucyIsIm9iamVjdF9yZWNlbnRfdmlld2VkIiwicmF3Q29sbGVjdGlvbiIsImFnZ3JlZ2F0ZSIsIiRtYXRjaCIsIiRncm91cCIsIm1heENyZWF0ZWQiLCIkbWF4IiwiJHNvcnQiLCIkbGltaXQiLCJ0b0FycmF5IiwiZXJyIiwiRXJyb3IiLCJpc0Z1bmN0aW9uIiwid3JhcEFzeW5jIiwic2VhcmNoVGV4dCIsIl9vYmplY3RfY29sbGVjdGlvbiIsIl9vYmplY3RfbmFtZV9rZXkiLCJxdWVyeSIsInF1ZXJ5X2FuZCIsInJlY29yZHMiLCJzZWFyY2hfS2V5d29yZHMiLCJzcGxpdCIsImtleXdvcmQiLCJzdWJxdWVyeSIsIiRyZWdleCIsInRyaW0iLCIkYW5kIiwiJGluIiwibGltaXQiLCJfbmFtZSIsIl9vYmplY3RfbmFtZSIsInJlY29yZF9vYmplY3QiLCJyZWNvcmRfb2JqZWN0X2NvbGxlY3Rpb24iLCJzZWxmIiwib2JqZWN0c0J5TmFtZSIsIm9iamVjdF9yZWNvcmQiLCJlbmFibGVfc2VhcmNoIiwidXBkYXRlX2ZpbHRlcnMiLCJsaXN0dmlld19pZCIsImZpbHRlcl9zY29wZSIsIm9iamVjdF9saXN0dmlld3MiLCJkaXJlY3QiLCJ1cGRhdGVfY29sdW1ucyIsImNvbHVtbnMiLCJjaGVjayIsImNvbXBvdW5kRmllbGRzIiwiY3Vyc29yIiwiZmlsdGVyRmllbGRzIiwiY2hpbGRLZXkiLCJvYmplY3RGaWVsZCIsInNwbGl0cyIsImlzQ29tbW9uU3BhY2UiLCJpc1NwYWNlQWRtaW4iLCJza2lwIiwiZmV0Y2giLCJjb21wb3VuZEZpZWxkSXRlbSIsImNvbXBvdW5kRmlsdGVyRmllbGRzIiwiaXRlbUtleSIsIml0ZW1WYWx1ZSIsInJlZmVyZW5jZUl0ZW0iLCJzZXR0aW5nIiwiY29sdW1uX3dpZHRoIiwib2JqMSIsIl9pZF9hY3Rpb25zIiwiX21peEZpZWxkc0RhdGEiLCJfbWl4UmVsYXRlZERhdGEiLCJfd3JpdGVYbWxGaWxlIiwiZnMiLCJsb2dnZXIiLCJta2RpcnAiLCJ4bWwyanMiLCJyZXF1aXJlIiwiTG9nZ2VyIiwianNvbk9iaiIsIm9iak5hbWUiLCJidWlsZGVyIiwiZGF5IiwiZmlsZUFkZHJlc3MiLCJmaWxlTmFtZSIsImZpbGVQYXRoIiwibW9udGgiLCJub3ciLCJzdHJlYW0iLCJ4bWwiLCJ5ZWFyIiwiQnVpbGRlciIsImJ1aWxkT2JqZWN0IiwiQnVmZmVyIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJfX21ldGVvcl9ib290c3RyYXBfXyIsInNlcnZlckRpciIsImV4aXN0c1N5bmMiLCJzeW5jIiwid3JpdGVGaWxlIiwibWl4Qm9vbCIsIm1peERhdGUiLCJtaXhEZWZhdWx0Iiwib2JqRmllbGRzIiwiZmllbGRfbmFtZSIsImRhdGUiLCJkYXRlU3RyIiwiZm9ybWF0IiwibW9tZW50IiwicmVsYXRlZE9iak5hbWVzIiwicmVsYXRlZE9iak5hbWUiLCJyZWxhdGVkQ29sbGVjdGlvbiIsInJlbGF0ZWRSZWNvcmRMaXN0IiwicmVsYXRlZFRhYmxlRGF0YSIsInJlbGF0ZWRPYmoiLCJmaWVsZHNEYXRhIiwiRXhwb3J0MnhtbCIsInJlY29yZExpc3QiLCJpbmZvIiwidGltZSIsInJlY29yZE9iaiIsInRpbWVFbmQiLCJyZWxhdGVkX29iamVjdHNfcmVjb3JkcyIsInJlbGF0ZWRfcmVjb3JkcyIsInZpZXdBbGxSZWNvcmRzIiwiZ2V0UGVuZGluZ1NwYWNlSW5mbyIsImludml0ZXJJZCIsImludml0ZXJOYW1lIiwic3BhY2VOYW1lIiwiZGIiLCJ1c2VycyIsInNwYWNlcyIsImludml0ZXIiLCJyZWZ1c2VKb2luU3BhY2UiLCJzcGFjZV91c2VycyIsImludml0ZV9zdGF0ZSIsImFjY2VwdEpvaW5TcGFjZSIsInVzZXJfYWNjZXB0ZWQiLCJwdWJsaXNoIiwicHVibGlzaENvbXBvc2l0ZSIsInRhYmxlTmFtZSIsIl9maWVsZHMiLCJvYmplY3RfY29sbGVjaXRvbiIsInJlZmVyZW5jZV9maWVsZHMiLCJyZWFkeSIsIlN0cmluZyIsIk1hdGNoIiwiT3B0aW9uYWwiLCJnZXRPYmplY3ROYW1lIiwidW5ibG9jayIsImZpZWxkX2tleXMiLCJfb2JqZWN0S2V5cyIsInJlZmVyZW5jZV9maWVsZCIsInBhcmVudCIsImNoaWxkcmVuX2ZpZWxkcyIsInBfayIsInJlZmVyZW5jZV9pZHMiLCJyZWZlcmVuY2VfdG9fb2JqZWN0Iiwic19rIiwiZ2V0UHJvcGVydHkiLCJyZWR1Y2UiLCJpc09iamVjdCIsInNoYXJlZCIsInVzZXIiLCJzcGFjZV9zZXR0aW5ncyIsInBlcm1pc3Npb25NYW5hZ2VyRm9ySW5pdEFwcHJvdmFsIiwiZ2V0Rmxvd1Blcm1pc3Npb25zIiwiZmxvd19pZCIsInVzZXJfaWQiLCJmbG93IiwibXlfcGVybWlzc2lvbnMiLCJvcmdfaWRzIiwib3JnYW5pemF0aW9ucyIsIm9yZ3NfY2FuX2FkZCIsIm9yZ3NfY2FuX2FkbWluIiwib3Jnc19jYW5fbW9uaXRvciIsInVzZXJzX2Nhbl9hZGQiLCJ1c2Vyc19jYW5fYWRtaW4iLCJ1c2Vyc19jYW5fbW9uaXRvciIsInV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwiLCJnZXRGbG93IiwicGFyZW50cyIsIm9yZyIsInBhcmVudF9pZCIsInBlcm1zIiwib3JnX2lkIiwiX2V2YWwiLCJjaGVja1JlcXVpcmVkRGV0YWlscyIsImdldEZpZWxkT2RhdGFWYWx1ZSIsImdldEZpbGVGaWVsZFZhbHVlIiwiZ2V0Rm9ybUZpZWxkIiwiZ2V0Rm9ybVRhYmxlRmllbGQiLCJnZXRGb3JtVGFibGVGaWVsZENvZGUiLCJnZXRGb3JtVGFibGVTdWJGaWVsZCIsImdldEluc3RhbmNlRmllbGRWYWx1ZSIsImdldE9iamVjdENvbmZpZyIsImdldE9iamVjdE5hbWVGaWVsZEtleSIsImdldFJlbGF0ZWRPYmplY3RGaWVsZENvZGUiLCJnZXRSZWxhdGVkcyIsImdldFNlbGVjdE9yZ1ZhbHVlIiwiZ2V0U2VsZWN0T3JnVmFsdWVzIiwiZ2V0U2VsZWN0VXNlclZhbHVlIiwiZ2V0U2VsZWN0VXNlclZhbHVlcyIsIm9iamVjdEZpbmQiLCJvYmplY3RGaW5kT25lIiwib2JqZWN0VXBkYXRlIiwib2JqZWN0cWwiLCJvYmplY3RBcGlOYW1lIiwidG9Db25maWciLCJjYiIsInRoZW4iLCJyZXNvbHZlIiwicmVqZWN0IiwidG9wIiwicmVsYXRlZE9iamVjdHNLZXlzIiwicmVsYXRlZE9iamVjdHNLZXkiLCJzdGFydHNXaXRoIiwiZm9ybVRhYmxlRmllbGRzQ29kZSIsImZvcm1UYWJsZUZpZWxkQ29kZSIsImZvcm1UYWJsZUZpZWxkcyIsImNvZGUiLCJmb3JtRmllbGRzIiwiZmYiLCJzZiIsInRhYmxlRmllbGQiLCJzdWJGaWVsZENvZGUiLCJyZWZlcmVuY2VUb0ZpZWxkTmFtZSIsIl9yZWNvcmQiLCJuYW1lS2V5Iiwic3UiLCJ1c2VySWRzIiwic3VzIiwib3JnSWQiLCJmdWxsbmFtZSIsIm9yZ0lkcyIsIm9yZ3MiLCJyZWNvcmRGaWVsZElkIiwiZlR5cGUiLCJmaWxlcyIsIm5ld0ZpbGUiLCJGUyIsIkZpbGUiLCJhdHRhY2hEYXRhIiwiY3JlYXRlUmVhZFN0cmVhbSIsIm9yaWdpbmFsIiwibWV0YWRhdGEiLCJyZWFzb24iLCJzaXplIiwiaW5zdGFuY2VzIiwib2JqRmllbGQiLCJmb3JtRmllbGQiLCJvYmplY3RfZmllbGQiLCJvZGF0YUZpZWxkVmFsdWUiLCJyZWNvcmRGaWVsZFZhbHVlIiwicmVmZXJlbmNlVG9PYmplY3ROYW1lIiwic2VsZWN0RmllbGRWYWx1ZSIsInJlZmVyZW5jZV90b19maWVsZCIsIm11bHRpcGxlIiwiaXNfbXVsdGlzZWxlY3QiLCJmb3JtYXREYXRlIiwiaGFzT3duUHJvcGVydHkiLCJyZXF1aXJlZERldGFpbHMiLCJtYXN0ZXJSZWNvcmQiLCJyZCIsIm1hc3RlckZpZWxkIiwibWFzdGVyRmllbGRWYWx1ZSIsInJlZklkIiwic3ViT2JqQ29uZmlnIiwic3ViVGFibGVNYXN0ZXJGaWVsZCIsInN1YlRhYmxlTmFtZSIsInN1YlRhYmxlUmVjb3JkIiwiY2hlY2tfYXV0aG9yaXphdGlvbiIsInJlcSIsImF1dGhUb2tlbiIsImhhc2hlZFRva2VuIiwiX2hhc2hMb2dpblRva2VuIiwiZ2V0U3BhY2UiLCJmbG93cyIsImdldFNwYWNlVXNlciIsInNwYWNlX3VzZXIiLCJnZXRTcGFjZVVzZXJPcmdJbmZvIiwib3JnYW5pemF0aW9uIiwib3JnYW5pemF0aW9uX25hbWUiLCJvcmdhbml6YXRpb25fZnVsbG5hbWUiLCJpc0Zsb3dFbmFibGVkIiwic3RhdGUiLCJpc0Zsb3dTcGFjZU1hdGNoZWQiLCJnZXRGb3JtIiwiZm9ybV9pZCIsImZvcm0iLCJmb3JtcyIsImdldENhdGVnb3J5IiwiY2F0ZWdvcnlfaWQiLCJjYXRlZ29yaWVzIiwiY2hlY2tTeW5jRGlyZWN0aW9uIiwib3ciLCJzeW5jRGlyZWN0aW9uIiwib2JqZWN0X3dvcmtmbG93cyIsInN5bmNfZGlyZWN0aW9uIiwiY3JlYXRlX2luc3RhbmNlIiwiaW5zdGFuY2VfZnJvbV9jbGllbnQiLCJ1c2VyX2luZm8iLCJhcHByX29iaiIsImFwcHJvdmVfZnJvbV9jbGllbnQiLCJjYXRlZ29yeSIsImluc19vYmoiLCJuZXdfaW5zX2lkIiwicmVsYXRlZFRhYmxlc0luZm8iLCJzcGFjZV91c2VyX29yZ19pbmZvIiwic3RhcnRfc3RlcCIsInRyYWNlX2Zyb21fY2xpZW50IiwidHJhY2Vfb2JqIiwiY2hlY2tJc0luQXBwcm92YWwiLCJwZXJtaXNzaW9uTWFuYWdlciIsImZsb3dfdmVyc2lvbiIsImN1cnJlbnQiLCJmb3JtX3ZlcnNpb24iLCJzdWJtaXR0ZXIiLCJzdWJtaXR0ZXJfbmFtZSIsImFwcGxpY2FudCIsImFwcGxpY2FudF9uYW1lIiwiYXBwbGljYW50X29yZ2FuaXphdGlvbiIsImFwcGxpY2FudF9vcmdhbml6YXRpb25fbmFtZSIsImFwcGxpY2FudF9vcmdhbml6YXRpb25fZnVsbG5hbWUiLCJhcHBsaWNhbnRfY29tcGFueSIsImNvbXBhbnlfaWQiLCJpc19hcmNoaXZlZCIsImlzX2RlbGV0ZWQiLCJyZWNvcmRfaWRzIiwiTW9uZ28iLCJPYmplY3RJRCIsIl9zdHIiLCJpc19maW5pc2hlZCIsInN0ZXBzIiwic3RlcCIsInN0ZXBfdHlwZSIsInN0YXJ0X2RhdGUiLCJ0cmFjZSIsInVzZXJfbmFtZSIsImhhbmRsZXIiLCJoYW5kbGVyX25hbWUiLCJoYW5kbGVyX29yZ2FuaXphdGlvbiIsImhhbmRsZXJfb3JnYW5pemF0aW9uX25hbWUiLCJoYW5kbGVyX29yZ2FuaXphdGlvbl9mdWxsbmFtZSIsInJlYWRfZGF0ZSIsImlzX3JlYWQiLCJpc19lcnJvciIsImRlc2NyaXB0aW9uIiwiaW5pdGlhdGVWYWx1ZXMiLCJhcHByb3ZlcyIsInRyYWNlcyIsImluYm94X3VzZXJzIiwiY3VycmVudF9zdGVwX25hbWUiLCJhdXRvX3JlbWluZCIsImZsb3dfbmFtZSIsImNhdGVnb3J5X25hbWUiLCJpbml0aWF0ZVJlY29yZEluc3RhbmNlSW5mbyIsImluaXRpYXRlQXR0YWNoIiwicmVjb3JkSWRzIiwiZmxvd0lkIiwiZmllbGRDb2RlcyIsImZpbHRlclZhbHVlcyIsIm9iamVjdE5hbWUiLCJyZWNvcmRJZCIsInRhYmxlRmllbGRDb2RlcyIsInRhYmxlRmllbGRNYXAiLCJ0YWJsZVRvUmVsYXRlZE1hcCIsInJlcXVpcmVkX2RldGFpbHMiLCJmaWVsZF9tYXAiLCJmbSIsImdyaWRDb2RlIiwibG9va3VwRmllbGROYW1lIiwibG9va3VwRmllbGRPYmoiLCJsb29rdXBPYmplY3RSZWNvcmQiLCJvVGFibGVDb2RlIiwib1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkIiwib1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkQ29kZSIsIm9UYWJsZUZpZWxkQ29kZSIsIm9iamVjdEZpZWxkTmFtZSIsIm9iamVjdEZpZWxkT2JqZWN0TmFtZSIsIm9iamVjdExvb2t1cEZpZWxkIiwicmVmZXJlbmNlVG9Eb2MiLCJyZWZlcmVuY2VUb0ZpZWxkVmFsdWUiLCJyZWxhdGVkT2JqZWN0RmllbGRDb2RlIiwidGFibGVUb1JlbGF0ZWRNYXBLZXkiLCJ3VGFibGVDb2RlIiwid29ya2Zsb3dfZmllbGQiLCJ3b3JrZmxvd190YWJsZV9maWVsZF9jb2RlIiwib2JqZWN0X3RhYmxlX2ZpZWxkX2NvZGUiLCJ0ZmMiLCJjIiwicGFyc2UiLCJ0ciIsIm5ld1RyIiwidGZtIiwid1RkQ29kZSIsImZvcm1UYWJsZUZpZWxkIiwicmVsYXRlZEZpZWxkIiwicmVsYXRlZEZpZWxkTmFtZSIsInJlbGF0ZWRSZWNvcmRzIiwicmVsYXRlZFRhYmxlSXRlbXMiLCJ0YWJsZUNvZGUiLCJ0YWJsZVZhbHVlcyIsIl9GUk9NX1RBQkxFX0NPREUiLCJ3YXJuIiwicnIiLCJ0YWJsZVZhbHVlSXRlbSIsInZhbHVlS2V5IiwiZmllbGRLZXkiLCJmb3JtRmllbGRLZXkiLCJyZWxhdGVkT2JqZWN0RmllbGQiLCJ0YWJsZUZpZWxkVmFsdWUiLCJfdGFibGUiLCJfY29kZSIsImZpZWxkX21hcF9zY3JpcHQiLCJleHRlbmQiLCJldmFsRmllbGRNYXBTY3JpcHQiLCJvYmplY3RJZCIsImZ1bmMiLCJzY3JpcHQiLCJpbnNJZCIsImFwcHJvdmVJZCIsImNmIiwidmVyc2lvbnMiLCJ2ZXJzaW9uSWQiLCJpZHgiLCJvd25lcl9uYW1lIiwiYXBwcm92ZSIsImxvY2tlZCIsImluc3RhbmNlX3N0YXRlIiwiaW5pdGlhdGVSZWxhdGVkUmVjb3JkSW5zdGFuY2VJbmZvIiwidGFibGVJdGVtcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFJQSxnQkFBSjtBQUFxQkMsTUFBTSxDQUFDQyxJQUFQLENBQVksb0NBQVosRUFBaUQ7QUFBQ0Ysa0JB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RG9ULEtBQTVELEtBQXNFLENBQXhKO0FBQ0MsVUFBTSxJQUFJdlUsT0FBT29XLEtBQVgsQ0FBaUIsUUFBakIsRUFBMkIsK0JBQTNCLENBQU47QUNxSEM7QUQ1SDhDLENBQWpEOztBQVlBb0ssNkJBQTZCZ0YsVUFBN0IsR0FBMEMsVUFBQzFKLElBQUQ7QUFDekMsU0FBT0csT0FBT0gsSUFBUCxFQUFhRSxNQUFiLENBQW9CLFlBQXBCLENBQVA7QUFEeUMsQ0FBMUMsQyIsImZpbGUiOiIvcGFja2FnZXMvc3RlZWRvc19jcmVhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Y2hlY2tOcG1WZXJzaW9uc1xufSBmcm9tICdtZXRlb3IvdG1lYXNkYXk6Y2hlY2stbnBtLXZlcnNpb25zJztcbmNoZWNrTnBtVmVyc2lvbnMoe1xuXHRidXNib3k6IFwiXjAuMi4xM1wiLFxuXHRcInhtbDJqc1wiOiBcIl4wLjQuMTlcIixcbn0sICdzdGVlZG9zOmNyZWF0b3InKTtcblxuaWYgKE1ldGVvci5zZXR0aW5ncyAmJiBNZXRlb3Iuc2V0dGluZ3MuY2ZzICYmIE1ldGVvci5zZXR0aW5ncy5jZnMuYWxpeXVuKSB7XG5cdGNoZWNrTnBtVmVyc2lvbnMoe1xuXHRcdFwiYWxpeXVuLXNka1wiOiBcIl4xLjExLjEyXCJcblx0fSwgJ3N0ZWVkb3M6Y3JlYXRvcicpO1xufSIsIlxuXHQjIENyZWF0b3IuaW5pdEFwcHMoKVxuXG5cbiMgQ3JlYXRvci5pbml0QXBwcyA9ICgpLT5cbiMgXHRpZiBNZXRlb3IuaXNTZXJ2ZXJcbiMgXHRcdF8uZWFjaCBDcmVhdG9yLkFwcHMsIChhcHAsIGFwcF9pZCktPlxuIyBcdFx0XHRkYl9hcHAgPSBkYi5hcHBzLmZpbmRPbmUoYXBwX2lkKVxuIyBcdFx0XHRpZiAhZGJfYXBwXG4jIFx0XHRcdFx0YXBwLl9pZCA9IGFwcF9pZFxuIyBcdFx0XHRcdGRiLmFwcHMuaW5zZXJ0KGFwcClcbiMgZWxzZVxuIyBcdGFwcC5faWQgPSBhcHBfaWRcbiMgXHRkYi5hcHBzLnVwZGF0ZSh7X2lkOiBhcHBfaWR9LCBhcHApXG5cbkNyZWF0b3IuZ2V0U2NoZW1hID0gKG9iamVjdF9uYW1lKS0+XG5cdHJldHVybiBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk/LnNjaGVtYVxuXG5DcmVhdG9yLmdldE9iamVjdEhvbWVDb21wb25lbnQgPSAob2JqZWN0X25hbWUpLT5cblx0IyBpZiBNZXRlb3IuaXNDbGllbnRcblx0IyBcdHJldHVybiBCdWlsZGVyQ3JlYXRvci5wbHVnaW5Db21wb25lbnRTZWxlY3RvcihCdWlsZGVyQ3JlYXRvci5zdG9yZS5nZXRTdGF0ZSgpLCBcIk9iamVjdEhvbWVcIiwgb2JqZWN0X25hbWUpXG5cdHJldHVybiBmYWxzZTtcblxuQ3JlYXRvci5nZXRPYmplY3RVcmwgPSAob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgYXBwX2lkKSAtPlxuXHRpZiAhYXBwX2lkXG5cdFx0YXBwX2lkID0gU2Vzc2lvbi5nZXQoXCJhcHBfaWRcIilcblx0aWYgIW9iamVjdF9uYW1lXG5cdFx0b2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpXG5cblx0bGlzdF92aWV3ID0gQ3JlYXRvci5nZXRMaXN0VmlldyhvYmplY3RfbmFtZSwgbnVsbClcblx0bGlzdF92aWV3X2lkID0gbGlzdF92aWV3Py5faWRcblxuXHRpZiByZWNvcmRfaWRcblx0XHRyZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvdmlldy9cIiArIHJlY29yZF9pZClcblx0ZWxzZVxuXHRcdGlmIENyZWF0b3IuZ2V0T2JqZWN0SG9tZUNvbXBvbmVudChvYmplY3RfbmFtZSlcblx0XHRcdHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUpXG5cdFx0ZWxzZVxuXHRcdFx0aWYgbGlzdF92aWV3X2lkXG5cdFx0XHRcdHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9ncmlkL1wiICsgbGlzdF92aWV3X2lkKVxuXHRcdFx0ZWxzZVxuXHRcdFx0XHRyZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lKVxuXG5DcmVhdG9yLmdldE9iamVjdEFic29sdXRlVXJsID0gKG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIGFwcF9pZCkgLT5cblx0aWYgIWFwcF9pZFxuXHRcdGFwcF9pZCA9IFNlc3Npb24uZ2V0KFwiYXBwX2lkXCIpXG5cdGlmICFvYmplY3RfbmFtZVxuXHRcdG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKVxuXG5cdGxpc3RfdmlldyA9IENyZWF0b3IuZ2V0TGlzdFZpZXcob2JqZWN0X25hbWUsIG51bGwpXG5cdGxpc3Rfdmlld19pZCA9IGxpc3Rfdmlldz8uX2lkXG5cblx0aWYgcmVjb3JkX2lkXG5cdFx0cmV0dXJuIFN0ZWVkb3MuYWJzb2x1dGVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL3ZpZXcvXCIgKyByZWNvcmRfaWQsIHRydWUpXG5cdGVsc2Vcblx0XHRyZXR1cm4gU3RlZWRvcy5hYnNvbHV0ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvZ3JpZC9cIiArIGxpc3Rfdmlld19pZCwgdHJ1ZSlcblxuQ3JlYXRvci5nZXRPYmplY3RSb3V0ZXJVcmwgPSAob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgYXBwX2lkKSAtPlxuXHRpZiAhYXBwX2lkXG5cdFx0YXBwX2lkID0gU2Vzc2lvbi5nZXQoXCJhcHBfaWRcIilcblx0aWYgIW9iamVjdF9uYW1lXG5cdFx0b2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpXG5cblx0bGlzdF92aWV3ID0gQ3JlYXRvci5nZXRMaXN0VmlldyhvYmplY3RfbmFtZSwgbnVsbClcblx0bGlzdF92aWV3X2lkID0gbGlzdF92aWV3Py5faWRcblxuXHRpZiByZWNvcmRfaWRcblx0XHRyZXR1cm4gXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL3ZpZXcvXCIgKyByZWNvcmRfaWRcblx0ZWxzZVxuXHRcdHJldHVybiBcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvZ3JpZC9cIiArIGxpc3Rfdmlld19pZFxuXG5DcmVhdG9yLmdldExpc3RWaWV3VXJsID0gKG9iamVjdF9uYW1lLCBhcHBfaWQsIGxpc3Rfdmlld19pZCkgLT5cblx0dXJsID0gQ3JlYXRvci5nZXRMaXN0Vmlld1JlbGF0aXZlVXJsKG9iamVjdF9uYW1lLCBhcHBfaWQsIGxpc3Rfdmlld19pZClcblx0cmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwodXJsKVxuXG5DcmVhdG9yLmdldExpc3RWaWV3UmVsYXRpdmVVcmwgPSAob2JqZWN0X25hbWUsIGFwcF9pZCwgbGlzdF92aWV3X2lkKSAtPlxuXHRyZXR1cm4gXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2dyaWQvXCIgKyBsaXN0X3ZpZXdfaWRcblxuQ3JlYXRvci5nZXRTd2l0Y2hMaXN0VXJsID0gKG9iamVjdF9uYW1lLCBhcHBfaWQsIGxpc3Rfdmlld19pZCkgLT5cblx0aWYgbGlzdF92aWV3X2lkXG5cdFx0cmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL1wiICsgbGlzdF92aWV3X2lkICsgXCIvbGlzdFwiKVxuXHRlbHNlXG5cdFx0cmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2xpc3Qvc3dpdGNoXCIpXG5cbkNyZWF0b3IuZ2V0UmVsYXRlZE9iamVjdFVybCA9IChvYmplY3RfbmFtZSwgYXBwX2lkLCByZWNvcmRfaWQsIHJlbGF0ZWRfb2JqZWN0X25hbWUsIHJlbGF0ZWRfZmllbGRfbmFtZSkgLT5cblx0aWYgcmVsYXRlZF9maWVsZF9uYW1lXG5cdFx0cmV0dXJuIENyZWF0b3IuZ2V0UmVsYXRpdmVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL1wiICsgcmVjb3JkX2lkICsgXCIvXCIgKyByZWxhdGVkX29iamVjdF9uYW1lICsgXCIvZ3JpZD9yZWxhdGVkX2ZpZWxkX25hbWU9XCIgKyByZWxhdGVkX2ZpZWxkX25hbWUpXG5cdGVsc2Vcblx0XHRyZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvXCIgKyByZWNvcmRfaWQgKyBcIi9cIiArIHJlbGF0ZWRfb2JqZWN0X25hbWUgKyBcIi9ncmlkXCIpXG5cbkNyZWF0b3IuZ2V0T2JqZWN0TG9va3VwRmllbGRPcHRpb25zID0gKG9iamVjdF9uYW1lLCBpc19kZWVwLCBpc19za2lwX2hpZGUsIGlzX3JlbGF0ZWQpLT5cblx0X29wdGlvbnMgPSBbXVxuXHR1bmxlc3Mgb2JqZWN0X25hbWVcblx0XHRyZXR1cm4gX29wdGlvbnNcblx0X29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKVxuXHRmaWVsZHMgPSBfb2JqZWN0Py5maWVsZHNcblx0aWNvbiA9IF9vYmplY3Q/Lmljb25cblx0Xy5mb3JFYWNoIGZpZWxkcywgKGYsIGspLT5cblx0XHRpZiBpc19za2lwX2hpZGUgYW5kIGYuaGlkZGVuXG5cdFx0XHRyZXR1cm5cblx0XHRpZiBmLnR5cGUgPT0gXCJzZWxlY3RcIlxuXHRcdFx0X29wdGlvbnMucHVzaCB7bGFiZWw6IFwiI3tmLmxhYmVsIHx8IGt9XCIsIHZhbHVlOiBcIiN7a31cIiwgaWNvbjogaWNvbn1cblx0XHRlbHNlXG5cdFx0XHRfb3B0aW9ucy5wdXNoIHtsYWJlbDogZi5sYWJlbCB8fCBrLCB2YWx1ZTogaywgaWNvbjogaWNvbn1cblx0aWYgaXNfZGVlcFxuXHRcdF8uZm9yRWFjaCBmaWVsZHMsIChmLCBrKS0+XG5cdFx0XHRpZiBpc19za2lwX2hpZGUgYW5kIGYuaGlkZGVuXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0aWYgKGYudHlwZSA9PSBcImxvb2t1cFwiIHx8IGYudHlwZSA9PSBcIm1hc3Rlcl9kZXRhaWxcIikgJiYgZi5yZWZlcmVuY2VfdG8gJiYgXy5pc1N0cmluZyhmLnJlZmVyZW5jZV90bylcblx0XHRcdFx0IyDkuI3mlK/mjIFmLnJlZmVyZW5jZV90b+S4umZ1bmN0aW9u55qE5oOF5Ya177yM5pyJ6ZyA5rGC5YaN6K+0XG5cdFx0XHRcdHJfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3QoZi5yZWZlcmVuY2VfdG8pXG5cdFx0XHRcdGlmIHJfb2JqZWN0XG5cdFx0XHRcdFx0Xy5mb3JFYWNoIHJfb2JqZWN0LmZpZWxkcywgKGYyLCBrMiktPlxuXHRcdFx0XHRcdFx0X29wdGlvbnMucHVzaCB7bGFiZWw6IFwiI3tmLmxhYmVsIHx8IGt9PT4je2YyLmxhYmVsIHx8IGsyfVwiLCB2YWx1ZTogXCIje2t9LiN7azJ9XCIsIGljb246IHJfb2JqZWN0Py5pY29ufVxuXHRpZiBpc19yZWxhdGVkXG5cdFx0cmVsYXRlZE9iamVjdHMgPSBDcmVhdG9yLmdldFJlbGF0ZWRPYmplY3RzKG9iamVjdF9uYW1lKVxuXHRcdF8uZWFjaCByZWxhdGVkT2JqZWN0cywgKF9yZWxhdGVkT2JqZWN0KT0+XG5cdFx0XHRyZWxhdGVkT3B0aW9ucyA9IENyZWF0b3IuZ2V0T2JqZWN0TG9va3VwRmllbGRPcHRpb25zKF9yZWxhdGVkT2JqZWN0Lm9iamVjdF9uYW1lLCBmYWxzZSwgZmFsc2UsIGZhbHNlKVxuXHRcdFx0cmVsYXRlZE9iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KF9yZWxhdGVkT2JqZWN0Lm9iamVjdF9uYW1lKVxuXHRcdFx0Xy5lYWNoIHJlbGF0ZWRPcHRpb25zLCAocmVsYXRlZE9wdGlvbiktPlxuXHRcdFx0XHRpZiBfcmVsYXRlZE9iamVjdC5mb3JlaWduX2tleSAhPSByZWxhdGVkT3B0aW9uLnZhbHVlXG5cdFx0XHRcdFx0X29wdGlvbnMucHVzaCB7bGFiZWw6IFwiI3tyZWxhdGVkT2JqZWN0LmxhYmVsIHx8IHJlbGF0ZWRPYmplY3QubmFtZX09PiN7cmVsYXRlZE9wdGlvbi5sYWJlbH1cIiwgdmFsdWU6IFwiI3tyZWxhdGVkT2JqZWN0Lm5hbWV9LiN7cmVsYXRlZE9wdGlvbi52YWx1ZX1cIiwgaWNvbjogcmVsYXRlZE9iamVjdD8uaWNvbn1cblx0cmV0dXJuIF9vcHRpb25zXG5cbiMg57uf5LiA5Li65a+56LGhb2JqZWN0X25hbWXmj5Dkvpvlj6/nlKjkuo7ov4fomZHlmajov4fomZHlrZfmrrVcbkNyZWF0b3IuZ2V0T2JqZWN0RmlsdGVyRmllbGRPcHRpb25zID0gKG9iamVjdF9uYW1lKS0+XG5cdF9vcHRpb25zID0gW11cblx0dW5sZXNzIG9iamVjdF9uYW1lXG5cdFx0cmV0dXJuIF9vcHRpb25zXG5cdF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSlcblx0ZmllbGRzID0gX29iamVjdD8uZmllbGRzXG5cdHBlcm1pc3Npb25fZmllbGRzID0gQ3JlYXRvci5nZXRGaWVsZHMob2JqZWN0X25hbWUpXG5cdGljb24gPSBfb2JqZWN0Py5pY29uXG5cdF8uZm9yRWFjaCBmaWVsZHMsIChmLCBrKS0+XG5cdFx0IyBoaWRkZW4sZ3JpZOetieexu+Wei+eahOWtl+aute+8jOS4jemcgOimgei/h+a7pFxuXHRcdGlmICFfLmluY2x1ZGUoW1wiZ3JpZFwiLFwib2JqZWN0XCIsIFwiW09iamVjdF1cIiwgXCJbb2JqZWN0XVwiLCBcIk9iamVjdFwiLCBcImF2YXRhclwiLCBcImltYWdlXCIsIFwibWFya2Rvd25cIiwgXCJodG1sXCJdLCBmLnR5cGUpIGFuZCAhZi5oaWRkZW5cblx0XHRcdCMgZmlsdGVycy4kLmZpZWxk5Y+KZmxvdy5jdXJyZW50562J5a2Q5a2X5q615Lmf5LiN6ZyA6KaB6L+H5rukXG5cdFx0XHRpZiAhL1xcdytcXC4vLnRlc3QoaykgYW5kIF8uaW5kZXhPZihwZXJtaXNzaW9uX2ZpZWxkcywgaykgPiAtMVxuXHRcdFx0XHRfb3B0aW9ucy5wdXNoIHtsYWJlbDogZi5sYWJlbCB8fCBrLCB2YWx1ZTogaywgaWNvbjogaWNvbn1cblxuXHRyZXR1cm4gX29wdGlvbnNcblxuQ3JlYXRvci5nZXRPYmplY3RGaWVsZE9wdGlvbnMgPSAob2JqZWN0X25hbWUpLT5cblx0X29wdGlvbnMgPSBbXVxuXHR1bmxlc3Mgb2JqZWN0X25hbWVcblx0XHRyZXR1cm4gX29wdGlvbnNcblx0X29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKVxuXHRmaWVsZHMgPSBfb2JqZWN0Py5maWVsZHNcblx0cGVybWlzc2lvbl9maWVsZHMgPSBDcmVhdG9yLmdldEZpZWxkcyhvYmplY3RfbmFtZSlcblx0aWNvbiA9IF9vYmplY3Q/Lmljb25cblx0Xy5mb3JFYWNoIGZpZWxkcywgKGYsIGspLT5cblx0XHRpZiAhXy5pbmNsdWRlKFtcImdyaWRcIixcIm9iamVjdFwiLCBcIltPYmplY3RdXCIsIFwiW29iamVjdF1cIiwgXCJPYmplY3RcIiwgXCJtYXJrZG93blwiLCBcImh0bWxcIl0sIGYudHlwZSlcblx0XHRcdGlmICEvXFx3K1xcLi8udGVzdChrKSBhbmQgXy5pbmRleE9mKHBlcm1pc3Npb25fZmllbGRzLCBrKSA+IC0xXG5cdFx0XHRcdF9vcHRpb25zLnB1c2gge2xhYmVsOiBmLmxhYmVsIHx8IGssIHZhbHVlOiBrLCBpY29uOiBpY29ufVxuXHRyZXR1cm4gX29wdGlvbnNcblxuIyMjXG5maWx0ZXJzOiDopoHovazmjaLnmoRmaWx0ZXJzXG5maWVsZHM6IOWvueixoeWtl+autVxuZmlsdGVyX2ZpZWxkczog6buY6K6k6L+H5ruk5a2X5q6177yM5pSv5oyB5a2X56ym5Liy5pWw57uE5ZKM5a+56LGh5pWw57uE5Lik56eN5qC85byP77yM5aaCOlsnZmlsZWRfbmFtZTEnLCdmaWxlZF9uYW1lMiddLFt7ZmllbGQ6J2ZpbGVkX25hbWUxJyxyZXF1aXJlZDp0cnVlfV1cbuWkhOeQhumAu+i+kTog5oqKZmlsdGVyc+S4reWtmOWcqOS6jmZpbHRlcl9maWVsZHPnmoTov4fmu6TmnaHku7blop7liqDmr4/pobnnmoRpc19kZWZhdWx044CBaXNfcmVxdWlyZWTlsZ7mgKfvvIzkuI3lrZjlnKjkuo5maWx0ZXJfZmllbGRz55qE6L+H5ruk5p2h5Lu25a+55bqU55qE56e76Zmk5q+P6aG555qE55u45YWz5bGe5oCnXG7ov5Tlm57nu5Pmnpw6IOWkhOeQhuWQjueahGZpbHRlcnNcbiMjI1xuQ3JlYXRvci5nZXRGaWx0ZXJzV2l0aEZpbHRlckZpZWxkcyA9IChmaWx0ZXJzLCBmaWVsZHMsIGZpbHRlcl9maWVsZHMpLT5cblx0dW5sZXNzIGZpbHRlcnNcblx0XHRmaWx0ZXJzID0gW11cblx0dW5sZXNzIGZpbHRlcl9maWVsZHNcblx0XHRmaWx0ZXJfZmllbGRzID0gW11cblx0aWYgZmlsdGVyX2ZpZWxkcz8ubGVuZ3RoXG5cdFx0ZmlsdGVyX2ZpZWxkcy5mb3JFYWNoIChuKS0+XG5cdFx0XHRpZiBfLmlzU3RyaW5nKG4pXG5cdFx0XHRcdG4gPSBcblx0XHRcdFx0XHRmaWVsZDogbixcblx0XHRcdFx0XHRyZXF1aXJlZDogZmFsc2Vcblx0XHRcdGlmIGZpZWxkc1tuLmZpZWxkXSBhbmQgIV8uZmluZFdoZXJlKGZpbHRlcnMse2ZpZWxkOm4uZmllbGR9KVxuXHRcdFx0XHRmaWx0ZXJzLnB1c2hcblx0XHRcdFx0XHRmaWVsZDogbi5maWVsZCxcblx0XHRcdFx0XHRpc19kZWZhdWx0OiB0cnVlLFxuXHRcdFx0XHRcdGlzX3JlcXVpcmVkOiBuLnJlcXVpcmVkXG5cdGZpbHRlcnMuZm9yRWFjaCAoZmlsdGVySXRlbSktPlxuXHRcdG1hdGNoRmllbGQgPSBmaWx0ZXJfZmllbGRzLmZpbmQgKG4pLT4gcmV0dXJuIG4gPT0gZmlsdGVySXRlbS5maWVsZCBvciBuLmZpZWxkID09IGZpbHRlckl0ZW0uZmllbGRcblx0XHRpZiBfLmlzU3RyaW5nKG1hdGNoRmllbGQpXG5cdFx0XHRtYXRjaEZpZWxkID0gXG5cdFx0XHRcdGZpZWxkOiBtYXRjaEZpZWxkLFxuXHRcdFx0XHRyZXF1aXJlZDogZmFsc2Vcblx0XHRpZiBtYXRjaEZpZWxkXG5cdFx0XHRmaWx0ZXJJdGVtLmlzX2RlZmF1bHQgPSB0cnVlXG5cdFx0XHRmaWx0ZXJJdGVtLmlzX3JlcXVpcmVkID0gbWF0Y2hGaWVsZC5yZXF1aXJlZFxuXHRcdGVsc2Vcblx0XHRcdGRlbGV0ZSBmaWx0ZXJJdGVtLmlzX2RlZmF1bHRcblx0XHRcdGRlbGV0ZSBmaWx0ZXJJdGVtLmlzX3JlcXVpcmVkXG5cdHJldHVybiBmaWx0ZXJzXG5cbkNyZWF0b3IuZ2V0T2JqZWN0UmVjb3JkID0gKG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIHNlbGVjdF9maWVsZHMsIGV4cGFuZCktPlxuXG5cdGlmICFvYmplY3RfbmFtZVxuXHRcdG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKVxuXG5cdGlmICFyZWNvcmRfaWRcblx0XHRyZWNvcmRfaWQgPSBTZXNzaW9uLmdldChcInJlY29yZF9pZFwiKVxuXHRpZiBNZXRlb3IuaXNDbGllbnRcblx0XHRpZiBvYmplY3RfbmFtZSA9PSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpICYmICByZWNvcmRfaWQgPT0gU2Vzc2lvbi5nZXQoXCJyZWNvcmRfaWRcIilcblx0XHRcdGlmIFRlbXBsYXRlLmluc3RhbmNlKCk/LnJlY29yZFxuXHRcdFx0XHRyZXR1cm4gVGVtcGxhdGUuaW5zdGFuY2UoKT8ucmVjb3JkPy5nZXQoKVxuXHRcdGVsc2Vcblx0XHRcdHJldHVybiBDcmVhdG9yLm9kYXRhLmdldChvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBzZWxlY3RfZmllbGRzLCBleHBhbmQpXG5cblx0b2JqID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpXG5cblx0aWYgb2JqLmRhdGFiYXNlX25hbWUgPT0gXCJtZXRlb3JcIiB8fCAhb2JqLmRhdGFiYXNlX25hbWVcblx0XHRjb2xsZWN0aW9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdF9uYW1lKVxuXHRcdGlmIGNvbGxlY3Rpb25cblx0XHRcdHJlY29yZCA9IGNvbGxlY3Rpb24uZmluZE9uZShyZWNvcmRfaWQpXG5cdFx0XHRyZXR1cm4gcmVjb3JkXG5cdGVsc2UgaWYgb2JqZWN0X25hbWUgJiYgcmVjb3JkX2lkXG5cdFx0cmV0dXJuIENyZWF0b3Iub2RhdGEuZ2V0KG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIHNlbGVjdF9maWVsZHMsIGV4cGFuZClcblxuQ3JlYXRvci5nZXRPYmplY3RSZWNvcmROYW1lID0gKHJlY29yZCwgb2JqZWN0X25hbWUpLT5cblx0dW5sZXNzIHJlY29yZFxuXHRcdHJlY29yZCA9IENyZWF0b3IuZ2V0T2JqZWN0UmVjb3JkKClcblx0aWYgcmVjb3JkXG5cdFx0IyDmmL7npLrnu4Tnu4fliJfooajml7bvvIznibnmrorlpITnkIZuYW1lX2ZpZWxkX2tleeS4um5hbWXlrZfmrrVcblx0XHRuYW1lX2ZpZWxkX2tleSA9IGlmIG9iamVjdF9uYW1lID09IFwib3JnYW5pemF0aW9uc1wiIHRoZW4gXCJuYW1lXCIgZWxzZSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk/Lk5BTUVfRklFTERfS0VZXG5cdFx0aWYgcmVjb3JkIGFuZCBuYW1lX2ZpZWxkX2tleVxuXHRcdFx0cmV0dXJuIHJlY29yZC5sYWJlbCB8fCByZWNvcmRbbmFtZV9maWVsZF9rZXldXG5cbkNyZWF0b3IuZ2V0QXBwID0gKGFwcF9pZCktPlxuXHRhcHBNZW51cyA9IFNlc3Npb24uZ2V0KFwiX2FwcF9tZW51c1wiKSB8fCBTZXNzaW9uLmdldChcImFwcF9tZW51c1wiKTtcblx0dW5sZXNzIGFwcE1lbnVzXG5cdFx0cmV0dXJuIHt9XG5cdGN1cnJlbnRBcHAgPSBhcHBNZW51cy5maW5kIChtZW51SXRlbSkgLT5cblx0XHRyZXR1cm4gbWVudUl0ZW0uaWQgPT0gYXBwX2lkXG5cdHJldHVybiBjdXJyZW50QXBwXG5cbkNyZWF0b3IuZ2V0QXBwRGFzaGJvYXJkID0gKGFwcF9pZCktPlxuXHRhcHAgPSBDcmVhdG9yLmdldEFwcChhcHBfaWQpXG5cdGlmICFhcHBcblx0XHRyZXR1cm5cblx0ZGFzaGJvYXJkID0gbnVsbFxuXHRfLmVhY2ggQ3JlYXRvci5EYXNoYm9hcmRzLCAodiwgayktPlxuXHRcdGlmIHYuYXBwcz8uaW5kZXhPZihhcHAuX2lkKSA+IC0xXG5cdFx0XHRkYXNoYm9hcmQgPSB2O1xuXHRyZXR1cm4gZGFzaGJvYXJkO1xuXG5DcmVhdG9yLmdldEFwcERhc2hib2FyZENvbXBvbmVudCA9IChhcHBfaWQpLT5cblx0YXBwID0gQ3JlYXRvci5nZXRBcHAoYXBwX2lkKVxuXHRpZiAhYXBwIHx8IHRydWVcblx0XHRyZXR1cm5cblx0IyByZXR1cm4gQnVpbGRlckNyZWF0b3IucGx1Z2luQ29tcG9uZW50U2VsZWN0b3IoQnVpbGRlckNyZWF0b3Iuc3RvcmUuZ2V0U3RhdGUoKSwgXCJEYXNoYm9hcmRcIiwgYXBwLl9pZCk7XG5cbkNyZWF0b3IuZ2V0QXBwT2JqZWN0TmFtZXMgPSAoYXBwX2lkKS0+XG5cdGFwcCA9IENyZWF0b3IuZ2V0QXBwKGFwcF9pZClcblx0aWYgIWFwcFxuXHRcdHJldHVyblxuXHRpc01vYmlsZSA9IFN0ZWVkb3MuaXNNb2JpbGUoKVxuXHRhcHBPYmplY3RzID0gaWYgaXNNb2JpbGUgdGhlbiBhcHAubW9iaWxlX29iamVjdHMgZWxzZSBhcHAub2JqZWN0c1xuXHRvYmplY3RzID0gW11cblx0aWYgYXBwXG5cdFx0Xy5lYWNoIGFwcE9iamVjdHMsICh2KS0+XG5cdFx0XHRvYmogPSBDcmVhdG9yLmdldE9iamVjdCh2KVxuXHRcdFx0aWYgb2JqPy5wZXJtaXNzaW9ucy5nZXQoKS5hbGxvd1JlYWRcblx0XHRcdFx0b2JqZWN0cy5wdXNoIHZcblx0cmV0dXJuIG9iamVjdHNcblxuQ3JlYXRvci5nZXRVcmxXaXRoVG9rZW4gPSAodXJsLCBleHByZXNzaW9uRm9ybURhdGEpIC0+XG5cdCMg57uZdXJs5pe25ou85o6l5b2T5YmN55So5oi3dG9rZW7nm7jlhbPkv6Hmga/nlKjkuo7nmbvlvZXpqozor4HvvIzmlK/mjIHphY3nva7ooajovr7lvI9cblx0cGFyYW1zID0ge307XG5cdHBhcmFtc1tcIlgtU3BhY2UtSWRcIl0gPSBTdGVlZG9zLnNwYWNlSWQoKVxuXHRwYXJhbXNbXCJYLVVzZXItSWRcIl0gPSBTdGVlZG9zLnVzZXJJZCgpO1xuXHRwYXJhbXNbXCJYLUNvbXBhbnktSWRzXCJdID0gU3RlZWRvcy5nZXRVc2VyQ29tcGFueUlkcygpO1xuXHRwYXJhbXNbXCJYLUF1dGgtVG9rZW5cIl0gPSBBY2NvdW50cy5fc3RvcmVkTG9naW5Ub2tlbigpO1xuXHRpZiBTdGVlZG9zLmlzRXhwcmVzc2lvbih1cmwpXG5cdFx0dXJsID0gU3RlZWRvcy5wYXJzZVNpbmdsZUV4cHJlc3Npb24odXJsLCBleHByZXNzaW9uRm9ybURhdGEsIFwiI1wiLCBDcmVhdG9yLlVTRVJfQ09OVEVYVClcblx0IyDlpJbpg6jpk77mjqXlnLDlnYDkuK3lj6/og73kvJrluKbmnIkj5Y+377yM5q+U5aaCL2J1aWxkZXIvP3BfaWRzPTYxOTM4MzU0NWIyZTlhNzJlYzA1NThiMyMvcGFnZS9wdWJsaWMvdGVzdFxuXHQjIOatpOaXtnVybOS4reW3sue7j+WcqCPlj7fliY3pnaLlh7rnjrDkuobkuIDkuKo/5Y+377yM6L+Z5Liq6Zeu5Y+35LiN5Y+v5Lul6KKr6K+G5Yir5Li6dXJs5Y+C5pWw77yM5Y+q5pyJI+WPt+WQjumdoueahD/lj7fmiY3lupTor6Xooqvor4bliKvkuLp1cmzlj4LmlbBcblx0aGFzUXVlcnlTeW1ib2wgPSAvKFxcIy4rXFw/KXwoXFw/W14jXSokKS9nLnRlc3QodXJsKVxuXHRsaW5rU3RyID0gaWYgaGFzUXVlcnlTeW1ib2wgdGhlbiBcIiZcIiBlbHNlIFwiP1wiXG5cdHJldHVybiBcIiN7dXJsfSN7bGlua1N0cn0jeyQucGFyYW0ocGFyYW1zKX1cIlxuXG5DcmVhdG9yLmdldEFwcE1lbnUgPSAoYXBwX2lkLCBtZW51X2lkKS0+XG5cdG1lbnVzID0gQ3JlYXRvci5nZXRBcHBNZW51cyhhcHBfaWQpXG5cdHJldHVybiBtZW51cyAmJiBtZW51cy5maW5kIChtZW51KS0+IHJldHVybiBtZW51LmlkID09IG1lbnVfaWRcblxuQ3JlYXRvci5nZXRBcHBNZW51VXJsRm9ySW50ZXJuZXQgPSAobWVudSktPlxuXHQjIOW9k3RhYnPnsbvlnovkuLp1cmzml7bvvIzmjInlpJbpg6jpk77mjqXlpITnkIbvvIzmlK/mjIHphY3nva7ooajovr7lvI/lubbliqDkuIrnu5/kuIDnmoR1cmzlj4LmlbBcblx0cmV0dXJuIENyZWF0b3IuZ2V0VXJsV2l0aFRva2VuIG1lbnUucGF0aCwgbWVudVxuXG5DcmVhdG9yLmdldEFwcE1lbnVVcmwgPSAobWVudSktPlxuXHR1cmwgPSBtZW51LnBhdGhcblx0aWYgbWVudS50eXBlID09IFwidXJsXCJcblx0XHRpZiBtZW51LnRhcmdldFxuXHRcdFx0cmV0dXJuIENyZWF0b3IuZ2V0QXBwTWVudVVybEZvckludGVybmV0KG1lbnUpXG5cdFx0ZWxzZVxuXHRcdFx0IyDlnKhpZnJhbWXkuK3mmL7npLp1cmznlYzpnaJcblx0XHRcdHJldHVybiBcIi9hcHAvLS90YWJfaWZyYW1lLyN7bWVudS5pZH1cIlxuXHRlbHNlXG5cdFx0cmV0dXJuIG1lbnUucGF0aFxuXG5DcmVhdG9yLmdldEFwcE1lbnVzID0gKGFwcF9pZCktPlxuXHRhcHBNZW51cyA9IFNlc3Npb24uZ2V0KFwiX2FwcF9tZW51c1wiKSB8fCBTZXNzaW9uLmdldChcImFwcF9tZW51c1wiKTtcblx0dW5sZXNzIGFwcE1lbnVzXG5cdFx0cmV0dXJuIFtdXG5cdGN1cmVudEFwcE1lbnVzID0gYXBwTWVudXMuZmluZCAobWVudUl0ZW0pIC0+XG5cdFx0cmV0dXJuIG1lbnVJdGVtLmlkID09IGFwcF9pZFxuXHRpZiBjdXJlbnRBcHBNZW51c1xuXHRcdHJldHVybiBjdXJlbnRBcHBNZW51cy5jaGlsZHJlblxuXG5DcmVhdG9yLmxvYWRBcHBzTWVudXMgPSAoKS0+XG5cdGlzTW9iaWxlID0gU3RlZWRvcy5pc01vYmlsZSgpXG5cdGRhdGEgPSB7IH1cblx0aWYgaXNNb2JpbGVcblx0XHRkYXRhLm1vYmlsZSA9IGlzTW9iaWxlXG5cdG9wdGlvbnMgPSB7IFxuXHRcdHR5cGU6ICdnZXQnLCBcblx0XHRkYXRhOiBkYXRhLCBcblx0XHRzdWNjZXNzOiAoZGF0YSktPlxuXHRcdFx0U2Vzc2lvbi5zZXQoXCJhcHBfbWVudXNcIiwgZGF0YSk7XG5cdCB9XG5cdFN0ZWVkb3M/LmF1dGhSZXF1ZXN0IFwiL3NlcnZpY2UvYXBpL2FwcHMvbWVudXNcIiwgb3B0aW9uc1xuXG5DcmVhdG9yLmNyZWF0b3JBcHBzU2VsZWN0b3IgPSAoYXBwcywgYXNzaWduZWRfYXBwcykgLT5cblx0YWRtaW5BcHAgPSB1bmRlZmluZWRcblx0c29ydGVkQXBwcyA9IHVuZGVmaW5lZFxuXHRfLmVhY2ggYXBwcywgKGFwcCwga2V5KSAtPlxuXHRcdGlmICFhcHAuX2lkXG5cdFx0XHRhcHAuX2lkID0ga2V5XG5cdFx0aWYgYXBwLmlzX2NyZWF0b3Jcblx0XHRcdCMg5LiN6ZyA6KaBaXNTcGFjZUFkbWlu6YC76L6RXG5cdFx0XHQjIGlmIChpc1NwYWNlQWRtaW4pIHtcblx0XHRcdCNcdFx0IGFwcC52aXNpYmxlID0gdHJ1ZTtcblx0XHRcdCMgfVxuXHRcdGVsc2Vcblx0XHRcdCMg6Z2eY3JlYXRvcuW6lOivpeS4gOW+i+S4jeaYvuekulxuXHRcdFx0YXBwLnZpc2libGUgPSBmYWxzZVxuXHRcdHJldHVyblxuXHRzb3J0ZWRBcHBzID0gXy5zb3J0QnkoXy52YWx1ZXMoYXBwcyksICdzb3J0Jylcblx0Y3JlYXRvckFwcHMgPSB7fVxuXHRhZG1pbkFwcCA9IHt9XG5cdCMg5oyJ6ZKuc29ydOaOkuW6j+asoeW6j+iuvue9rkNyZWF0b3IuQXBwc+WAvFxuXHRfLmVhY2ggc29ydGVkQXBwcywgKG4pIC0+XG5cdFx0aWYgbi5faWQgPT0gJ2FkbWluJ1xuXHRcdFx0YWRtaW5BcHAgPSBuXG5cdFx0ZWxzZVxuXHRcdFx0Y3JlYXRvckFwcHNbbi5faWRdID0gblxuXHQjIGFkbWlu6I+c5Y2V5pi+56S65Zyo5pyA5ZCOXG5cdGNyZWF0b3JBcHBzLmFkbWluID0gYWRtaW5BcHBcblx0aWYgYXNzaWduZWRfYXBwcy5sZW5ndGhcblx0XHRfLmVhY2ggY3JlYXRvckFwcHMsIChhcHAsIGtleSkgLT5cblx0XHRcdGlmIGFzc2lnbmVkX2FwcHMuaW5kZXhPZihrZXkpID4gLTFcblx0XHRcdFx0YXBwLnZpc2libGUgPSBhcHAuaXNfY3JlYXRvclxuXHRcdFx0ZWxzZVxuXHRcdFx0XHRhcHAudmlzaWJsZSA9IGZhbHNlXG5cdFx0XHRyZXR1cm5cblx0Y3JlYXRvckFwcHNcblxuQ3JlYXRvci52aXNpYmxlQXBwc1NlbGVjdG9yID0gKGNyZWF0b3JBcHBzLCBpbmNsdWRlQWRtaW4gPSB0cnVlKSAtPlxuXHRhcHBzID0gW11cblx0Xy5lYWNoIGNyZWF0b3JBcHBzLCAodiwgaykgLT5cblx0XHRpZiB2LnZpc2libGUgIT0gZmFsc2UgYW5kIHYuX2lkICE9ICdhZG1pbicgb3IgaW5jbHVkZUFkbWluIGFuZCB2Ll9pZCA9PSAnYWRtaW4nXG5cdFx0XHRhcHBzLnB1c2ggdlxuXHRcdHJldHVyblxuXHRhcHBzXG5cbkNyZWF0b3IuZ2V0VmlzaWJsZUFwcHMgPSAoaW5jbHVkZUFkbWluKS0+XG5cdGNoYW5nZUFwcCA9IENyZWF0b3IuX3N1YkFwcC5nZXQoKTtcblx0Y3JlYXRvckFwcHMgPSBPYmplY3QuYXNzaWduKHt9LCBDcmVhdG9yLkFwcHMsIHthcHBzOiBjaGFuZ2VBcHB9KTtcblx0cmV0dXJuIENyZWF0b3IudmlzaWJsZUFwcHNTZWxlY3RvcihjcmVhdG9yQXBwcywgaW5jbHVkZUFkbWluKVxuXG5DcmVhdG9yLmdldFZpc2libGVBcHBzT2JqZWN0cyA9ICgpLT5cblx0YXBwcyA9IENyZWF0b3IuZ2V0VmlzaWJsZUFwcHMoKVxuXHR2aXNpYmxlT2JqZWN0TmFtZXMgPSBfLmZsYXR0ZW4oXy5wbHVjayhhcHBzLCdvYmplY3RzJykpXG5cdG9iamVjdHMgPSBfLmZpbHRlciBDcmVhdG9yLk9iamVjdHMsIChvYmopLT5cblx0XHRpZiB2aXNpYmxlT2JqZWN0TmFtZXMuaW5kZXhPZihvYmoubmFtZSkgPCAwXG5cdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRlbHNlXG5cdFx0XHRyZXR1cm4gdHJ1ZVxuXHRvYmplY3RzID0gb2JqZWN0cy5zb3J0KENyZWF0b3Iuc29ydGluZ01ldGhvZC5iaW5kKHtrZXk6XCJsYWJlbFwifSkpXG5cdG9iamVjdHMgPSBfLnBsdWNrKG9iamVjdHMsJ25hbWUnKVxuXHRyZXR1cm4gXy51bmlxIG9iamVjdHNcblxuQ3JlYXRvci5nZXRBcHBzT2JqZWN0cyA9ICgpLT5cblx0b2JqZWN0cyA9IFtdXG5cdHRlbXBPYmplY3RzID0gW11cblx0Xy5mb3JFYWNoIENyZWF0b3IuQXBwcywgKGFwcCktPlxuXHRcdHRlbXBPYmplY3RzID0gXy5maWx0ZXIgYXBwLm9iamVjdHMsIChvYmopLT5cblx0XHRcdHJldHVybiAhb2JqLmhpZGRlblxuXHRcdG9iamVjdHMgPSBvYmplY3RzLmNvbmNhdCh0ZW1wT2JqZWN0cylcblx0cmV0dXJuIF8udW5pcSBvYmplY3RzXG5cbkNyZWF0b3IudmFsaWRhdGVGaWx0ZXJzID0gKGZpbHRlcnMsIGxvZ2ljKS0+XG5cdGZpbHRlcl9pdGVtcyA9IF8ubWFwIGZpbHRlcnMsIChvYmopIC0+XG5cdFx0aWYgXy5pc0VtcHR5KG9iailcblx0XHRcdHJldHVybiBmYWxzZVxuXHRcdGVsc2Vcblx0XHRcdHJldHVybiBvYmpcblx0ZmlsdGVyX2l0ZW1zID0gXy5jb21wYWN0KGZpbHRlcl9pdGVtcylcblx0ZXJyb3JNc2cgPSBcIlwiXG5cdGZpbHRlcl9sZW5ndGggPSBmaWx0ZXJfaXRlbXMubGVuZ3RoXG5cdGlmIGxvZ2ljXG5cdFx0IyDmoLzlvI/ljJZmaWx0ZXJcblx0XHRsb2dpYyA9IGxvZ2ljLnJlcGxhY2UoL1xcbi9nLCBcIlwiKS5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKVxuXG5cdFx0IyDliKTmlq3nibnmrorlrZfnrKZcblx0XHRpZiAvWy5fXFwtIStdKy9pZy50ZXN0KGxvZ2ljKVxuXHRcdFx0ZXJyb3JNc2cgPSBcIuWQq+acieeJueauiuWtl+espuOAglwiXG5cblx0XHRpZiAhZXJyb3JNc2dcblx0XHRcdGluZGV4ID0gbG9naWMubWF0Y2goL1xcZCsvaWcpXG5cdFx0XHRpZiAhaW5kZXhcblx0XHRcdFx0ZXJyb3JNc2cgPSBcIuacieS6m+etm+mAieadoeS7tui/m+ihjOS6huWumuS5ie+8jOS9huacquWcqOmrmOe6p+etm+mAieadoeS7tuS4reiiq+W8leeUqOOAglwiXG5cdFx0XHRlbHNlXG5cdFx0XHRcdGluZGV4LmZvckVhY2ggKGkpLT5cblx0XHRcdFx0XHRpZiBpIDwgMSBvciBpID4gZmlsdGVyX2xlbmd0aFxuXHRcdFx0XHRcdFx0ZXJyb3JNc2cgPSBcIuaCqOeahOetm+mAieadoeS7tuW8leeUqOS6huacquWumuS5ieeahOetm+mAieWZqO+8miN7aX3jgIJcIlxuXG5cdFx0XHRcdGZsYWcgPSAxXG5cdFx0XHRcdHdoaWxlIGZsYWcgPD0gZmlsdGVyX2xlbmd0aFxuXHRcdFx0XHRcdGlmICFpbmRleC5pbmNsdWRlcyhcIiN7ZmxhZ31cIilcblx0XHRcdFx0XHRcdGVycm9yTXNnID0gXCLmnInkupvnrZvpgInmnaHku7bov5vooYzkuoblrprkuYnvvIzkvYbmnKrlnKjpq5jnuqfnrZvpgInmnaHku7bkuK3ooqvlvJXnlKjjgIJcIlxuXHRcdFx0XHRcdGZsYWcrKztcblxuXHRcdGlmICFlcnJvck1zZ1xuXHRcdFx0IyDliKTmlq3mmK/lkKbmnInpnZ7ms5Xoi7HmloflrZfnrKZcblx0XHRcdHdvcmQgPSBsb2dpYy5tYXRjaCgvW2EtekEtWl0rL2lnKVxuXHRcdFx0aWYgd29yZFxuXHRcdFx0XHR3b3JkLmZvckVhY2ggKHcpLT5cblx0XHRcdFx0XHRpZiAhL14oYW5kfG9yKSQvaWcudGVzdCh3KVxuXHRcdFx0XHRcdFx0ZXJyb3JNc2cgPSBcIuajgOafpeaCqOeahOmrmOe6p+etm+mAieadoeS7tuS4reeahOaLvOWGmeOAglwiXG5cblx0XHRpZiAhZXJyb3JNc2dcblx0XHRcdCMg5Yik5pat5qC85byP5piv5ZCm5q2j56GuXG5cdFx0XHR0cnlcblx0XHRcdFx0Q3JlYXRvci5ldmFsKGxvZ2ljLnJlcGxhY2UoL2FuZC9pZywgXCImJlwiKS5yZXBsYWNlKC9vci9pZywgXCJ8fFwiKSlcblx0XHRcdGNhdGNoIGVcblx0XHRcdFx0ZXJyb3JNc2cgPSBcIuaCqOeahOetm+mAieWZqOS4reWQq+acieeJueauiuWtl+esplwiXG5cblx0XHRcdGlmIC8oQU5EKVteKCldKyhPUikvaWcudGVzdChsb2dpYykgfHwgIC8oT1IpW14oKV0rKEFORCkvaWcudGVzdChsb2dpYylcblx0XHRcdFx0ZXJyb3JNc2cgPSBcIuaCqOeahOetm+mAieWZqOW/hemhu+WcqOi/nue7reaAp+eahCBBTkQg5ZKMIE9SIOihqOi+vuW8j+WJjeWQjuS9v+eUqOaLrOWPt+OAglwiXG5cdGlmIGVycm9yTXNnXG5cdFx0Y29uc29sZS5sb2cgXCJlcnJvclwiLCBlcnJvck1zZ1xuXHRcdGlmIE1ldGVvci5pc0NsaWVudFxuXHRcdFx0dG9hc3RyLmVycm9yKGVycm9yTXNnKVxuXHRcdHJldHVybiBmYWxzZVxuXHRlbHNlXG5cdFx0cmV0dXJuIHRydWVcblxuIyBcIj1cIiwgXCI8PlwiLCBcIj5cIiwgXCI+PVwiLCBcIjxcIiwgXCI8PVwiLCBcInN0YXJ0c3dpdGhcIiwgXCJjb250YWluc1wiLCBcIm5vdGNvbnRhaW5zXCIuXG4jIyNcbm9wdGlvbnPlj4LmlbDvvJpcblx0ZXh0ZW5kLS0g5piv5ZCm6ZyA6KaB5oqK5b2T5YmN55So5oi35Z+65pys5L+h5oGv5Yqg5YWl5YWs5byP77yM5Y2z6K6p5YWs5byP5pSv5oyBQ3JlYXRvci5VU0VSX0NPTlRFWFTkuK3nmoTlgLzvvIzpu5jorqTkuLp0cnVlXG5cdHVzZXJJZC0tIOW9k+WJjeeZu+W9leeUqOaIt1xuXHRzcGFjZUlkLS0g5b2T5YmN5omA5Zyo5bel5L2c5Yy6XG5leHRlbmTkuLp0cnVl5pe277yM5ZCO56uv6ZyA6KaB6aKd5aSW5Lyg5YWldXNlcklk5Y+Kc3BhY2VJZOeUqOS6juaKk+WPlkNyZWF0b3IuVVNFUl9DT05URVhU5a+55bqU55qE5YC8XG4jIyNcbkNyZWF0b3IuZm9ybWF0RmlsdGVyc1RvTW9uZ28gPSAoZmlsdGVycywgb3B0aW9ucyktPlxuXHR1bmxlc3MgZmlsdGVycz8ubGVuZ3RoXG5cdFx0cmV0dXJuXG5cdCMg5b2TZmlsdGVyc+S4jeaYr1tBcnJheV3nsbvlnovogIzmmK9bT2JqZWN0Xeexu+Wei+aXtu+8jOi/m+ihjOagvOW8j+i9rOaNolxuXHR1bmxlc3MgZmlsdGVyc1swXSBpbnN0YW5jZW9mIEFycmF5XG5cdFx0ZmlsdGVycyA9IF8ubWFwIGZpbHRlcnMsIChvYmopLT5cblx0XHRcdHJldHVybiBbb2JqLmZpZWxkLCBvYmoub3BlcmF0aW9uLCBvYmoudmFsdWVdXG5cdHNlbGVjdG9yID0gW11cblx0Xy5lYWNoIGZpbHRlcnMsIChmaWx0ZXIpLT5cblx0XHRmaWVsZCA9IGZpbHRlclswXVxuXHRcdG9wdGlvbiA9IGZpbHRlclsxXVxuXHRcdGlmIE1ldGVvci5pc0NsaWVudFxuXHRcdFx0dmFsdWUgPSBDcmVhdG9yLmV2YWx1YXRlRm9ybXVsYShmaWx0ZXJbMl0pXG5cdFx0ZWxzZVxuXHRcdFx0dmFsdWUgPSBDcmVhdG9yLmV2YWx1YXRlRm9ybXVsYShmaWx0ZXJbMl0sIG51bGwsIG9wdGlvbnMpXG5cdFx0c3ViX3NlbGVjdG9yID0ge31cblx0XHRzdWJfc2VsZWN0b3JbZmllbGRdID0ge31cblx0XHRpZiBvcHRpb24gPT0gXCI9XCJcblx0XHRcdHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkZXFcIl0gPSB2YWx1ZVxuXHRcdGVsc2UgaWYgb3B0aW9uID09IFwiPD5cIlxuXHRcdFx0c3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRuZVwiXSA9IHZhbHVlXG5cdFx0ZWxzZSBpZiBvcHRpb24gPT0gXCI+XCJcblx0XHRcdHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkZ3RcIl0gPSB2YWx1ZVxuXHRcdGVsc2UgaWYgb3B0aW9uID09IFwiPj1cIlxuXHRcdFx0c3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRndGVcIl0gPSB2YWx1ZVxuXHRcdGVsc2UgaWYgb3B0aW9uID09IFwiPFwiXG5cdFx0XHRzdWJfc2VsZWN0b3JbZmllbGRdW1wiJGx0XCJdID0gdmFsdWVcblx0XHRlbHNlIGlmIG9wdGlvbiA9PSBcIjw9XCJcblx0XHRcdHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkbHRlXCJdID0gdmFsdWVcblx0XHRlbHNlIGlmIG9wdGlvbiA9PSBcInN0YXJ0c3dpdGhcIlxuXHRcdFx0cmVnID0gbmV3IFJlZ0V4cChcIl5cIiArIHZhbHVlLCBcImlcIilcblx0XHRcdHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkcmVnZXhcIl0gPSByZWdcblx0XHRlbHNlIGlmIG9wdGlvbiA9PSBcImNvbnRhaW5zXCJcblx0XHRcdHJlZyA9IG5ldyBSZWdFeHAodmFsdWUsIFwiaVwiKVxuXHRcdFx0c3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRyZWdleFwiXSA9IHJlZ1xuXHRcdGVsc2UgaWYgb3B0aW9uID09IFwibm90Y29udGFpbnNcIlxuXHRcdFx0cmVnID0gbmV3IFJlZ0V4cChcIl4oKD8hXCIgKyB2YWx1ZSArIFwiKS4pKiRcIiwgXCJpXCIpXG5cdFx0XHRzdWJfc2VsZWN0b3JbZmllbGRdW1wiJHJlZ2V4XCJdID0gcmVnXG5cdFx0c2VsZWN0b3IucHVzaCBzdWJfc2VsZWN0b3Jcblx0cmV0dXJuIHNlbGVjdG9yXG5cbkNyZWF0b3IuaXNCZXR3ZWVuRmlsdGVyT3BlcmF0aW9uID0gKG9wZXJhdGlvbiktPlxuXHRyZXR1cm4gb3BlcmF0aW9uID09IFwiYmV0d2VlblwiIG9yICEhQ3JlYXRvci5nZXRCZXR3ZWVuVGltZUJ1aWx0aW5WYWx1ZXModHJ1ZSk/W29wZXJhdGlvbl1cblxuIyMjXG5vcHRpb25z5Y+C5pWw77yaXG5cdGV4dGVuZC0tIOaYr+WQpumcgOimgeaKiuW9k+WJjeeUqOaIt+WfuuacrOS/oeaBr+WKoOWFpeWFrOW8j++8jOWNs+iuqeWFrOW8j+aUr+aMgUNyZWF0b3IuVVNFUl9DT05URVhU5Lit55qE5YC877yM6buY6K6k5Li6dHJ1ZVxuXHR1c2VySWQtLSDlvZPliY3nmbvlvZXnlKjmiLdcblx0c3BhY2VJZC0tIOW9k+WJjeaJgOWcqOW3peS9nOWMulxuXHRleHRlbmTkuLp0cnVl5pe277yM5ZCO56uv6ZyA6KaB6aKd5aSW5Lyg5YWldXNlcklk5Y+Kc3BhY2VJZOeUqOS6juaKk+WPlkNyZWF0b3IuVVNFUl9DT05URVhU5a+55bqU55qE5YC8XG4jIyNcbkNyZWF0b3IuZm9ybWF0RmlsdGVyc1RvRGV2ID0gKGZpbHRlcnMsIG9iamVjdF9uYW1lLCBvcHRpb25zKS0+XG5cdHVubGVzcyBmaWx0ZXJzLmxlbmd0aFxuXHRcdHJldHVyblxuXHRpZiBvcHRpb25zPy5pc19sb2dpY19vclxuXHRcdCMg5aaC5p6caXNfbG9naWNfb3LkuLp0cnVl77yM5Li6ZmlsdGVyc+esrOS4gOWxguWFg+e0oOWinuWKoG9y6Ze06ZqUXG5cdFx0bG9naWNUZW1wRmlsdGVycyA9IFtdXG5cdFx0ZmlsdGVycy5mb3JFYWNoIChuKS0+XG5cdFx0XHRsb2dpY1RlbXBGaWx0ZXJzLnB1c2gobilcblx0XHRcdGxvZ2ljVGVtcEZpbHRlcnMucHVzaChcIm9yXCIpXG5cdFx0bG9naWNUZW1wRmlsdGVycy5wb3AoKVxuXHRcdGZpbHRlcnMgPSBsb2dpY1RlbXBGaWx0ZXJzXG5cdHNlbGVjdG9yID0gU3RlZWRvc0ZpbHRlcnMuZm9ybWF0RmlsdGVyc1RvRGV2KGZpbHRlcnMsIENyZWF0b3IuVVNFUl9DT05URVhUKVxuXHRyZXR1cm4gc2VsZWN0b3JcblxuIyMjXG5vcHRpb25z5Y+C5pWw77yaXG5cdGV4dGVuZC0tIOaYr+WQpumcgOimgeaKiuW9k+WJjeeUqOaIt+WfuuacrOS/oeaBr+WKoOWFpeWFrOW8j++8jOWNs+iuqeWFrOW8j+aUr+aMgUNyZWF0b3IuVVNFUl9DT05URVhU5Lit55qE5YC877yM6buY6K6k5Li6dHJ1ZVxuXHR1c2VySWQtLSDlvZPliY3nmbvlvZXnlKjmiLdcblx0c3BhY2VJZC0tIOW9k+WJjeaJgOWcqOW3peS9nOWMulxuZXh0ZW5k5Li6dHJ1ZeaXtu+8jOWQjuerr+mcgOimgemineWkluS8oOWFpXVzZXJJZOWPinNwYWNlSWTnlKjkuo7mipPlj5ZDcmVhdG9yLlVTRVJfQ09OVEVYVOWvueW6lOeahOWAvFxuIyMjXG5DcmVhdG9yLmZvcm1hdExvZ2ljRmlsdGVyc1RvRGV2ID0gKGZpbHRlcnMsIGZpbHRlcl9sb2dpYywgb3B0aW9ucyktPlxuXHRmb3JtYXRfbG9naWMgPSBmaWx0ZXJfbG9naWMucmVwbGFjZSgvXFwoXFxzKy9pZywgXCIoXCIpLnJlcGxhY2UoL1xccytcXCkvaWcsIFwiKVwiKS5yZXBsYWNlKC9cXCgvZywgXCJbXCIpLnJlcGxhY2UoL1xcKS9nLCBcIl1cIikucmVwbGFjZSgvXFxzKy9nLCBcIixcIikucmVwbGFjZSgvKGFuZHxvcikvaWcsIFwiJyQxJ1wiKVxuXHRmb3JtYXRfbG9naWMgPSBmb3JtYXRfbG9naWMucmVwbGFjZSgvKFxcZCkrL2lnLCAoeCktPlxuXHRcdF9mID0gZmlsdGVyc1t4LTFdXG5cdFx0ZmllbGQgPSBfZi5maWVsZFxuXHRcdG9wdGlvbiA9IF9mLm9wZXJhdGlvblxuXHRcdGlmIE1ldGVvci5pc0NsaWVudFxuXHRcdFx0dmFsdWUgPSBDcmVhdG9yLmV2YWx1YXRlRm9ybXVsYShfZi52YWx1ZSlcblx0XHRlbHNlXG5cdFx0XHR2YWx1ZSA9IENyZWF0b3IuZXZhbHVhdGVGb3JtdWxhKF9mLnZhbHVlLCBudWxsLCBvcHRpb25zKVxuXHRcdHN1Yl9zZWxlY3RvciA9IFtdXG5cdFx0aWYgXy5pc0FycmF5KHZhbHVlKSA9PSB0cnVlXG5cdFx0XHRpZiBvcHRpb24gPT0gXCI9XCJcblx0XHRcdFx0Xy5lYWNoIHZhbHVlLCAodiktPlxuXHRcdFx0XHRcdHN1Yl9zZWxlY3Rvci5wdXNoIFtmaWVsZCwgb3B0aW9uLCB2XSwgXCJvclwiXG5cdFx0XHRlbHNlIGlmIG9wdGlvbiA9PSBcIjw+XCJcblx0XHRcdFx0Xy5lYWNoIHZhbHVlLCAodiktPlxuXHRcdFx0XHRcdHN1Yl9zZWxlY3Rvci5wdXNoIFtmaWVsZCwgb3B0aW9uLCB2XSwgXCJhbmRcIlxuXHRcdFx0ZWxzZVxuXHRcdFx0XHRfLmVhY2ggdmFsdWUsICh2KS0+XG5cdFx0XHRcdFx0c3ViX3NlbGVjdG9yLnB1c2ggW2ZpZWxkLCBvcHRpb24sIHZdLCBcIm9yXCJcblx0XHRcdGlmIHN1Yl9zZWxlY3RvcltzdWJfc2VsZWN0b3IubGVuZ3RoIC0gMV0gPT0gXCJhbmRcIiB8fCBzdWJfc2VsZWN0b3Jbc3ViX3NlbGVjdG9yLmxlbmd0aCAtIDFdID09IFwib3JcIlxuXHRcdFx0XHRzdWJfc2VsZWN0b3IucG9wKClcblx0XHRlbHNlXG5cdFx0XHRzdWJfc2VsZWN0b3IgPSBbZmllbGQsIG9wdGlvbiwgdmFsdWVdXG5cdFx0IyBjb25zb2xlLmxvZyBcInN1Yl9zZWxlY3RvclwiLCBzdWJfc2VsZWN0b3Jcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoc3ViX3NlbGVjdG9yKVxuXHQpXG5cdGZvcm1hdF9sb2dpYyA9IFwiWyN7Zm9ybWF0X2xvZ2ljfV1cIlxuXHRyZXR1cm4gQ3JlYXRvci5ldmFsKGZvcm1hdF9sb2dpYylcblxuQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0cyA9IChvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKS0+XG5cdGlmIE1ldGVvci5pc0NsaWVudFxuXHRcdGlmICFvYmplY3RfbmFtZVxuXHRcdFx0b2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpXG5cdFx0aWYgIXNwYWNlSWRcblx0XHRcdHNwYWNlSWQgPSBTZXNzaW9uLmdldChcInNwYWNlSWRcIilcblx0XHRpZiAhdXNlcklkXG5cdFx0XHR1c2VySWQgPSBNZXRlb3IudXNlcklkKClcblxuXHRyZWxhdGVkX29iamVjdF9uYW1lcyA9IFtdXG5cdF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSlcblxuXHRpZiAhX29iamVjdFxuXHRcdHJldHVybiByZWxhdGVkX29iamVjdF9uYW1lc1xuXG4jXHRyZWxhdGVkX29iamVjdF9uYW1lcyA9IF8ucGx1Y2soX29iamVjdC5yZWxhdGVkX29iamVjdHMsXCJvYmplY3RfbmFtZVwiKVxuXG5cdHJlbGF0ZWRfb2JqZWN0cyA9IENyZWF0b3IuZ2V0T2JqZWN0UmVsYXRlZHMoX29iamVjdC5fY29sbGVjdGlvbl9uYW1lKVxuXG5cdHJlbGF0ZWRfb2JqZWN0X25hbWVzID0gXy5wbHVjayhyZWxhdGVkX29iamVjdHMsXCJvYmplY3RfbmFtZVwiKVxuXHRpZiByZWxhdGVkX29iamVjdF9uYW1lcz8ubGVuZ3RoID09IDBcblx0XHRyZXR1cm4gcmVsYXRlZF9vYmplY3RfbmFtZXNcblxuXHRwZXJtaXNzaW9ucyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZClcblx0dW5yZWxhdGVkX29iamVjdHMgPSBwZXJtaXNzaW9ucy51bnJlbGF0ZWRfb2JqZWN0c1xuXG5cdHJlbGF0ZWRfb2JqZWN0X25hbWVzID0gXy5kaWZmZXJlbmNlIHJlbGF0ZWRfb2JqZWN0X25hbWVzLCB1bnJlbGF0ZWRfb2JqZWN0c1xuXHRyZXR1cm4gXy5maWx0ZXIgcmVsYXRlZF9vYmplY3RzLCAocmVsYXRlZF9vYmplY3QpLT5cblx0XHRyZWxhdGVkX29iamVjdF9uYW1lID0gcmVsYXRlZF9vYmplY3Qub2JqZWN0X25hbWVcblx0XHRpc0FjdGl2ZSA9IHJlbGF0ZWRfb2JqZWN0X25hbWVzLmluZGV4T2YocmVsYXRlZF9vYmplY3RfbmFtZSkgPiAtMVxuXHRcdCMgcmVsYXRlZF9vYmplY3RfbmFtZSA9IGlmIHJlbGF0ZWRfb2JqZWN0X25hbWUgPT0gXCJjZnNfZmlsZXNfZmlsZXJlY29yZFwiIHRoZW4gXCJjZnMuZmlsZXMuZmlsZXJlY29yZFwiIGVsc2UgcmVsYXRlZF9vYmplY3RfbmFtZVxuXHRcdGFsbG93UmVhZCA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMocmVsYXRlZF9vYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKT8uYWxsb3dSZWFkXG5cdFx0aWYgcmVsYXRlZF9vYmplY3RfbmFtZSA9PSBcImNtc19maWxlc1wiXG5cdFx0XHRhbGxvd1JlYWQgPSBhbGxvd1JlYWQgJiYgcGVybWlzc2lvbnMuYWxsb3dSZWFkRmlsZXNcblx0XHRyZXR1cm4gaXNBY3RpdmUgYW5kIGFsbG93UmVhZFxuXG5DcmVhdG9yLmdldFJlbGF0ZWRPYmplY3ROYW1lcyA9IChvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKS0+XG5cdHJlbGF0ZWRfb2JqZWN0cyA9IENyZWF0b3IuZ2V0UmVsYXRlZE9iamVjdHMob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZClcblx0cmV0dXJuIF8ucGx1Y2socmVsYXRlZF9vYmplY3RzLFwib2JqZWN0X25hbWVcIilcblxuQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0TGlzdEFjdGlvbnMgPSAocmVsYXRlZE9iamVjdE5hbWUsIHNwYWNlSWQsIHVzZXJJZCktPlxuXHRhY3Rpb25zID0gQ3JlYXRvci5nZXRBY3Rpb25zKHJlbGF0ZWRPYmplY3ROYW1lLCBzcGFjZUlkLCB1c2VySWQpXG5cdGFjdGlvbnMgPSBfLmZpbHRlciBhY3Rpb25zLCAoYWN0aW9uKS0+XG5cdFx0aWYgYWN0aW9uLm5hbWUgPT0gXCJzdGFuZGFyZF9mb2xsb3dcIlxuXHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0aWYgYWN0aW9uLm5hbWUgPT0gXCJzdGFuZGFyZF9xdWVyeVwiXG5cdFx0XHRyZXR1cm4gZmFsc2Vcblx0XHRpZiBhY3Rpb24ub24gPT0gXCJsaXN0XCJcblx0XHRcdGlmIHR5cGVvZiBhY3Rpb24udmlzaWJsZSA9PSBcImZ1bmN0aW9uXCJcblx0XHRcdFx0cmV0dXJuIGFjdGlvbi52aXNpYmxlKClcblx0XHRcdGVsc2Vcblx0XHRcdFx0cmV0dXJuIGFjdGlvbi52aXNpYmxlXG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIGZhbHNlXG5cdHJldHVybiBhY3Rpb25zXG5cbkNyZWF0b3IuZ2V0QWN0aW9ucyA9IChvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKS0+XG5cdGlmIE1ldGVvci5pc0NsaWVudFxuXHRcdGlmICFvYmplY3RfbmFtZVxuXHRcdFx0b2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpXG5cdFx0aWYgIXNwYWNlSWRcblx0XHRcdHNwYWNlSWQgPSBTZXNzaW9uLmdldChcInNwYWNlSWRcIilcblx0XHRpZiAhdXNlcklkXG5cdFx0XHR1c2VySWQgPSBNZXRlb3IudXNlcklkKClcblxuXHRvYmogPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSlcblxuXHRpZiAhb2JqXG5cdFx0cmV0dXJuXG5cblx0cGVybWlzc2lvbnMgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpXG5cdGRpc2FibGVkX2FjdGlvbnMgPSBwZXJtaXNzaW9ucy5kaXNhYmxlZF9hY3Rpb25zXG5cdGFjdGlvbnMgPSBfLnNvcnRCeShfLnZhbHVlcyhvYmouYWN0aW9ucykgLCAnc29ydCcpO1xuXG5cdGlmIF8uaGFzKG9iaiwgJ2FsbG93X2N1c3RvbUFjdGlvbnMnKVxuXHRcdGFjdGlvbnMgPSBfLmZpbHRlciBhY3Rpb25zLCAoYWN0aW9uKS0+XG5cdFx0XHRyZXR1cm4gXy5pbmNsdWRlKG9iai5hbGxvd19jdXN0b21BY3Rpb25zLCBhY3Rpb24ubmFtZSkgfHwgXy5pbmNsdWRlKF8ua2V5cyhDcmVhdG9yLmdldE9iamVjdCgnYmFzZScpLmFjdGlvbnMpIHx8IHt9LCBhY3Rpb24ubmFtZSlcblx0aWYgXy5oYXMob2JqLCAnZXhjbHVkZV9hY3Rpb25zJylcblx0XHRhY3Rpb25zID0gXy5maWx0ZXIgYWN0aW9ucywgKGFjdGlvbiktPlxuXHRcdFx0cmV0dXJuICFfLmluY2x1ZGUob2JqLmV4Y2x1ZGVfYWN0aW9ucywgYWN0aW9uLm5hbWUpXG5cblx0Xy5lYWNoIGFjdGlvbnMsIChhY3Rpb24pLT5cblx0XHQjIOaJi+acuuS4iuWPquaYvuekuue8lui+keaMiemSru+8jOWFtuS7lueahOaUvuWIsOaKmOWPoOS4i+aLieiPnOWNleS4rVxuXHRcdGlmIFN0ZWVkb3MuaXNNb2JpbGUoKSAmJiBbXCJyZWNvcmRcIiwgXCJyZWNvcmRfb25seVwiXS5pbmRleE9mKGFjdGlvbi5vbikgPiAtMSAmJiBhY3Rpb24ubmFtZSAhPSAnc3RhbmRhcmRfZWRpdCdcblx0XHRcdGlmIGFjdGlvbi5vbiA9PSBcInJlY29yZF9vbmx5XCJcblx0XHRcdFx0YWN0aW9uLm9uID0gJ3JlY29yZF9vbmx5X21vcmUnXG5cdFx0XHRlbHNlXG5cdFx0XHRcdGFjdGlvbi5vbiA9ICdyZWNvcmRfbW9yZSdcblxuXHRpZiBTdGVlZG9zLmlzTW9iaWxlKCkgJiYgW1wiY21zX2ZpbGVzXCIsIFwiY2ZzLmZpbGVzLmZpbGVyZWNvcmRcIl0uaW5kZXhPZihvYmplY3RfbmFtZSkgPiAtMVxuXHRcdCMg6ZmE5Lu254m55q6K5aSE55CG77yM5LiL6L295oyJ6ZKu5pS+5Zyo5Li76I+c5Y2V77yM57yW6L6R5oyJ6ZKu5pS+5Yiw5bqV5LiL5oqY5Y+g5LiL5ouJ6I+c5Y2V5LitXG5cdFx0YWN0aW9ucy5maW5kKChuKS0+IHJldHVybiBuLm5hbWUgPT0gXCJzdGFuZGFyZF9lZGl0XCIpPy5vbiA9IFwicmVjb3JkX21vcmVcIlxuXHRcdGFjdGlvbnMuZmluZCgobiktPiByZXR1cm4gbi5uYW1lID09IFwiZG93bmxvYWRcIik/Lm9uID0gXCJyZWNvcmRcIlxuXG5cdGFjdGlvbnMgPSBfLmZpbHRlciBhY3Rpb25zLCAoYWN0aW9uKS0+XG5cdFx0cmV0dXJuIF8uaW5kZXhPZihkaXNhYmxlZF9hY3Rpb25zLCBhY3Rpb24ubmFtZSkgPCAwXG5cblx0cmV0dXJuIGFjdGlvbnNcblxuLy8vXG5cdOi/lOWbnuW9k+WJjeeUqOaIt+acieadg+mZkOiuv+mXrueahOaJgOaciWxpc3Rfdmlld++8jOWMheaLrOWIhuS6q+eahO+8jOeUqOaIt+iHquWumuS5iemdnuWIhuS6q+eahO+8iOmZpOmdnm93bmVy5Y+Y5LqG77yJ77yM5Lul5Y+K6buY6K6k55qE5YW25LuW6KeG5Zu+XG5cdOazqOaEj0NyZWF0b3IuZ2V0UGVybWlzc2lvbnPlh73mlbDkuK3mmK/kuI3kvJrmnInnlKjmiLfoh6rlrprkuYnpnZ7liIbkuqvnmoTop4blm77nmoTvvIzmiYDku6VDcmVhdG9yLmdldFBlcm1pc3Npb25z5Ye95pWw5Lit5ou/5Yiw55qE57uT5p6c5LiN5YWo77yM5bm25LiN5piv5b2T5YmN55So5oi36IO955yL5Yiw5omA5pyJ6KeG5Zu+XG4vLy9cbkNyZWF0b3IuZ2V0TGlzdFZpZXdzID0gKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpLT5cblx0aWYgTWV0ZW9yLmlzQ2xpZW50XG5cdFx0aWYgIW9iamVjdF9uYW1lXG5cdFx0XHRvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIilcblx0XHRpZiAhc3BhY2VJZFxuXHRcdFx0c3BhY2VJZCA9IFNlc3Npb24uZ2V0KFwic3BhY2VJZFwiKVxuXHRcdGlmICF1c2VySWRcblx0XHRcdHVzZXJJZCA9IE1ldGVvci51c2VySWQoKVxuXHRcblx0dW5sZXNzIG9iamVjdF9uYW1lXG5cdFx0cmV0dXJuXG5cblx0b2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpXG5cblx0aWYgIW9iamVjdFxuXHRcdHJldHVyblxuXG5cdGRpc2FibGVkX2xpc3Rfdmlld3MgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpPy5kaXNhYmxlZF9saXN0X3ZpZXdzIHx8IFtdXG5cblx0bGlzdF92aWV3cyA9IFtdXG5cblx0aXNNb2JpbGUgPSBTdGVlZG9zLmlzTW9iaWxlKClcblxuXHRfLmVhY2ggb2JqZWN0Lmxpc3Rfdmlld3MsIChpdGVtLCBpdGVtX25hbWUpLT5cblx0XHRpdGVtLm5hbWUgPSBpdGVtX25hbWVcblxuXHRsaXN0Vmlld3MgPSBfLnNvcnRCeShfLnZhbHVlcyhvYmplY3QubGlzdF92aWV3cykgLCAnc29ydF9ubycpO1xuXG5cdF8uZWFjaCBsaXN0Vmlld3MsIChpdGVtKS0+XG5cdFx0aWYgaXNNb2JpbGUgYW5kIGl0ZW0udHlwZSA9PSBcImNhbGVuZGFyXCJcblx0XHRcdCMg5omL5py65LiK5YWI5LiN5pi+56S65pel5Y6G6KeG5Zu+XG5cdFx0XHRyZXR1cm5cblx0XHRpZiBpdGVtLm5hbWUgICE9IFwiZGVmYXVsdFwiXG5cdFx0XHRpc0Rpc2FibGVkID0gXy5pbmRleE9mKGRpc2FibGVkX2xpc3Rfdmlld3MsIGl0ZW0ubmFtZSkgPiAtMSB8fCAoaXRlbS5faWQgJiYgXy5pbmRleE9mKGRpc2FibGVkX2xpc3Rfdmlld3MsIGl0ZW0uX2lkKSA+IC0xKVxuXHRcdFx0aWYgIWlzRGlzYWJsZWQgfHwgaXRlbS5vd25lciA9PSB1c2VySWRcblx0XHRcdFx0bGlzdF92aWV3cy5wdXNoIGl0ZW1cblx0cmV0dXJuIGxpc3Rfdmlld3NcblxuIyDliY3lj7DnkIborrrkuIrkuI3lupTor6XosIPnlKjor6Xlh73mlbDvvIzlm6DkuLrlrZfmrrXnmoTmnYPpmZDpg73lnKhDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSkuZmllbGRz55qE55u45YWz5bGe5oCn5Lit5pyJ5qCH6K+G5LqGXG5DcmVhdG9yLmdldEZpZWxkcyA9IChvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKS0+XG5cdGlmIE1ldGVvci5pc0NsaWVudFxuXHRcdGlmICFvYmplY3RfbmFtZVxuXHRcdFx0b2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpXG5cdFx0aWYgIXNwYWNlSWRcblx0XHRcdHNwYWNlSWQgPSBTZXNzaW9uLmdldChcInNwYWNlSWRcIilcblx0XHRpZiAhdXNlcklkXG5cdFx0XHR1c2VySWQgPSBNZXRlb3IudXNlcklkKClcblxuXHRmaWVsZHNOYW1lID0gQ3JlYXRvci5nZXRPYmplY3RGaWVsZHNOYW1lKG9iamVjdF9uYW1lKVxuXHR1bnJlYWRhYmxlX2ZpZWxkcyA9ICBDcmVhdG9yLmdldFBlcm1pc3Npb25zKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpPy51bnJlYWRhYmxlX2ZpZWxkc1xuXHRyZXR1cm4gXy5kaWZmZXJlbmNlKGZpZWxkc05hbWUsIHVucmVhZGFibGVfZmllbGRzKVxuXG5DcmVhdG9yLmlzbG9hZGluZyA9ICgpLT5cblx0cmV0dXJuICFDcmVhdG9yLmJvb3RzdHJhcExvYWRlZC5nZXQoKVxuXG5DcmVhdG9yLmNvbnZlcnRTcGVjaWFsQ2hhcmFjdGVyID0gKHN0ciktPlxuXHRyZXR1cm4gc3RyLnJlcGxhY2UoLyhbXFxeXFwkXFwoXFwpXFwqXFwrXFw/XFwuXFxcXFxcfFxcW1xcXVxce1xcfV0pL2csIFwiXFxcXCQxXCIpXG5cbiMg6K6h566XZmllbGRz55u45YWz5Ye95pWwXG4jIFNUQVJUXG5DcmVhdG9yLmdldERpc2FibGVkRmllbGRzID0gKHNjaGVtYSktPlxuXHRmaWVsZHMgPSBfLm1hcChzY2hlbWEsIChmaWVsZCwgZmllbGROYW1lKSAtPlxuXHRcdHJldHVybiBmaWVsZC5hdXRvZm9ybSBhbmQgZmllbGQuYXV0b2Zvcm0uZGlzYWJsZWQgYW5kICFmaWVsZC5hdXRvZm9ybS5vbWl0IGFuZCBmaWVsZE5hbWVcblx0KVxuXHRmaWVsZHMgPSBfLmNvbXBhY3QoZmllbGRzKVxuXHRyZXR1cm4gZmllbGRzXG5cbkNyZWF0b3IuZ2V0SGlkZGVuRmllbGRzID0gKHNjaGVtYSktPlxuXHRmaWVsZHMgPSBfLm1hcChzY2hlbWEsIChmaWVsZCwgZmllbGROYW1lKSAtPlxuXHRcdHJldHVybiBmaWVsZC5hdXRvZm9ybSBhbmQgZmllbGQuYXV0b2Zvcm0udHlwZSA9PSBcImhpZGRlblwiIGFuZCAhZmllbGQuYXV0b2Zvcm0ub21pdCBhbmQgZmllbGROYW1lXG5cdClcblx0ZmllbGRzID0gXy5jb21wYWN0KGZpZWxkcylcblx0cmV0dXJuIGZpZWxkc1xuXG5DcmVhdG9yLmdldEZpZWxkc1dpdGhOb0dyb3VwID0gKHNjaGVtYSktPlxuXHRmaWVsZHMgPSBfLm1hcChzY2hlbWEsIChmaWVsZCwgZmllbGROYW1lKSAtPlxuXHRcdHJldHVybiAoIWZpZWxkLmF1dG9mb3JtIG9yICFmaWVsZC5hdXRvZm9ybS5ncm91cCBvciBmaWVsZC5hdXRvZm9ybS5ncm91cCA9PSBcIi1cIikgYW5kICghZmllbGQuYXV0b2Zvcm0gb3IgZmllbGQuYXV0b2Zvcm0udHlwZSAhPSBcImhpZGRlblwiKSBhbmQgZmllbGROYW1lXG5cdClcblx0ZmllbGRzID0gXy5jb21wYWN0KGZpZWxkcylcblx0cmV0dXJuIGZpZWxkc1xuXG5DcmVhdG9yLmdldFNvcnRlZEZpZWxkR3JvdXBOYW1lcyA9IChzY2hlbWEpLT5cblx0bmFtZXMgPSBfLm1hcChzY2hlbWEsIChmaWVsZCkgLT5cbiBcdFx0cmV0dXJuIGZpZWxkLmF1dG9mb3JtIGFuZCBmaWVsZC5hdXRvZm9ybS5ncm91cCAhPSBcIi1cIiBhbmQgZmllbGQuYXV0b2Zvcm0uZ3JvdXBcblx0KVxuXHRuYW1lcyA9IF8uY29tcGFjdChuYW1lcylcblx0bmFtZXMgPSBfLnVuaXF1ZShuYW1lcylcblx0cmV0dXJuIG5hbWVzXG5cbkNyZWF0b3IuZ2V0RmllbGRzRm9yR3JvdXAgPSAoc2NoZW1hLCBncm91cE5hbWUpIC0+XG4gIFx0ZmllbGRzID0gXy5tYXAoc2NoZW1hLCAoZmllbGQsIGZpZWxkTmFtZSkgLT5cbiAgICBcdHJldHVybiBmaWVsZC5hdXRvZm9ybSBhbmQgZmllbGQuYXV0b2Zvcm0uZ3JvdXAgPT0gZ3JvdXBOYW1lIGFuZCBmaWVsZC5hdXRvZm9ybS50eXBlICE9IFwiaGlkZGVuXCIgYW5kIGZpZWxkTmFtZVxuICBcdClcbiAgXHRmaWVsZHMgPSBfLmNvbXBhY3QoZmllbGRzKVxuICBcdHJldHVybiBmaWVsZHNcblxuQ3JlYXRvci5nZXRTeXN0ZW1CYXNlRmllbGRzID0gKCkgLT5cblx0cmV0dXJuIFtcImNyZWF0ZWRcIiwgXCJjcmVhdGVkX2J5XCIsIFwibW9kaWZpZWRcIiwgXCJtb2RpZmllZF9ieVwiXVxuXG5DcmVhdG9yLmdldEZpZWxkc1dpdGhvdXRTeXN0ZW1CYXNlID0gKGtleXMpIC0+XG5cdHJldHVybiBfLmRpZmZlcmVuY2Uoa2V5cywgQ3JlYXRvci5nZXRTeXN0ZW1CYXNlRmllbGRzKCkpO1xuXG5DcmVhdG9yLmdldEZpZWxkc1dpdGhvdXRPbWl0ID0gKHNjaGVtYSwga2V5cykgLT5cblx0a2V5cyA9IF8ubWFwKGtleXMsIChrZXkpIC0+XG5cdFx0ZmllbGQgPSBfLnBpY2soc2NoZW1hLCBrZXkpXG5cdFx0aWYgZmllbGRba2V5XS5hdXRvZm9ybT8ub21pdFxuXHRcdFx0cmV0dXJuIGZhbHNlXG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIGtleVxuXHQpXG5cdGtleXMgPSBfLmNvbXBhY3Qoa2V5cylcblx0cmV0dXJuIGtleXNcblxuQ3JlYXRvci5nZXRGaWVsZHNJbkZpcnN0TGV2ZWwgPSAoZmlyc3RMZXZlbEtleXMsIGtleXMpIC0+XG5cdGtleXMgPSBfLm1hcChrZXlzLCAoa2V5KSAtPlxuXHRcdGlmIF8uaW5kZXhPZihmaXJzdExldmVsS2V5cywga2V5KSA+IC0xXG5cdFx0XHRyZXR1cm4ga2V5XG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIGZhbHNlXG5cdClcblx0a2V5cyA9IF8uY29tcGFjdChrZXlzKVxuXHRyZXR1cm4ga2V5c1xuXG5DcmVhdG9yLmdldEZpZWxkc0ZvclJlb3JkZXIgPSAoc2NoZW1hLCBrZXlzLCBpc1NpbmdsZSkgLT5cblx0ZmllbGRzID0gW11cblx0aSA9IDBcblx0X2tleXMgPSBfLmZpbHRlcihrZXlzLCAoa2V5KS0+XG5cdFx0cmV0dXJuICFrZXkuZW5kc1dpdGgoJ19lbmRMaW5lJylcblx0KTtcblx0d2hpbGUgaSA8IF9rZXlzLmxlbmd0aFxuXHRcdHNjXzEgPSBfLnBpY2soc2NoZW1hLCBfa2V5c1tpXSlcblx0XHRzY18yID0gXy5waWNrKHNjaGVtYSwgX2tleXNbaSsxXSlcblxuXHRcdGlzX3dpZGVfMSA9IGZhbHNlXG5cdFx0aXNfd2lkZV8yID0gZmFsc2VcblxuI1x0XHRpc19yYW5nZV8xID0gZmFsc2VcbiNcdFx0aXNfcmFuZ2VfMiA9IGZhbHNlXG5cblx0XHRfLmVhY2ggc2NfMSwgKHZhbHVlKSAtPlxuXHRcdFx0aWYgdmFsdWUuYXV0b2Zvcm0/LmlzX3dpZGUgfHwgdmFsdWUuYXV0b2Zvcm0/LnR5cGUgPT0gXCJ0YWJsZVwiXG5cdFx0XHRcdGlzX3dpZGVfMSA9IHRydWVcblxuI1x0XHRcdGlmIHZhbHVlLmF1dG9mb3JtPy5pc19yYW5nZVxuI1x0XHRcdFx0aXNfcmFuZ2VfMSA9IHRydWVcblxuXHRcdF8uZWFjaCBzY18yLCAodmFsdWUpIC0+XG5cdFx0XHRpZiB2YWx1ZS5hdXRvZm9ybT8uaXNfd2lkZSB8fCB2YWx1ZS5hdXRvZm9ybT8udHlwZSA9PSBcInRhYmxlXCJcblx0XHRcdFx0aXNfd2lkZV8yID0gdHJ1ZVxuXG4jXHRcdFx0aWYgdmFsdWUuYXV0b2Zvcm0/LmlzX3JhbmdlXG4jXHRcdFx0XHRpc19yYW5nZV8yID0gdHJ1ZVxuXG5cdFx0aWYgU3RlZWRvcy5pc01vYmlsZSgpXG5cdFx0XHRpc193aWRlXzEgPSB0cnVlXG5cdFx0XHRpc193aWRlXzIgPSB0cnVlXG5cblx0XHRpZiBpc1NpbmdsZVxuXHRcdFx0ZmllbGRzLnB1c2ggX2tleXMuc2xpY2UoaSwgaSsxKVxuXHRcdFx0aSArPSAxXG5cdFx0ZWxzZVxuI1x0XHRcdGlmICFpc19yYW5nZV8xICYmIGlzX3JhbmdlXzJcbiNcdFx0XHRcdGNoaWxkS2V5cyA9IF9rZXlzLnNsaWNlKGksIGkrMSlcbiNcdFx0XHRcdGNoaWxkS2V5cy5wdXNoIHVuZGVmaW5lZFxuI1x0XHRcdFx0ZmllbGRzLnB1c2ggY2hpbGRLZXlzXG4jXHRcdFx0XHRpICs9IDFcbiNcdFx0XHRlbHNlXG5cdFx0XHRpZiBpc193aWRlXzFcblx0XHRcdFx0ZmllbGRzLnB1c2ggX2tleXMuc2xpY2UoaSwgaSsxKVxuXHRcdFx0XHRpICs9IDFcblx0XHRcdGVsc2UgaWYgIWlzX3dpZGVfMSBhbmQgaXNfd2lkZV8yXG5cdFx0XHRcdGNoaWxkS2V5cyA9IF9rZXlzLnNsaWNlKGksIGkrMSlcblx0XHRcdFx0Y2hpbGRLZXlzLnB1c2ggdW5kZWZpbmVkXG5cdFx0XHRcdGZpZWxkcy5wdXNoIGNoaWxkS2V5c1xuXHRcdFx0XHRpICs9IDFcblx0XHRcdGVsc2UgaWYgIWlzX3dpZGVfMSBhbmQgIWlzX3dpZGVfMlxuXHRcdFx0XHRjaGlsZEtleXMgPSBfa2V5cy5zbGljZShpLCBpKzEpXG5cdFx0XHRcdGlmIF9rZXlzW2krMV1cblx0XHRcdFx0XHRjaGlsZEtleXMucHVzaCBfa2V5c1tpKzFdXG5cdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRjaGlsZEtleXMucHVzaCB1bmRlZmluZWRcblx0XHRcdFx0ZmllbGRzLnB1c2ggY2hpbGRLZXlzXG5cdFx0XHRcdGkgKz0gMlxuXG5cdHJldHVybiBmaWVsZHNcblxuQ3JlYXRvci5pc0ZpbHRlclZhbHVlRW1wdHkgPSAodikgLT5cblx0cmV0dXJuIHR5cGVvZiB2ID09IFwidW5kZWZpbmVkXCIgfHwgdiA9PSBudWxsIHx8IE51bWJlci5pc05hTih2KSB8fCB2Lmxlbmd0aCA9PSAwXG5cbkNyZWF0b3IuZ2V0RmllbGREYXRhVHlwZSA9IChvYmplY3RGaWVsZHMsIGtleSktPlxuXHRpZiBvYmplY3RGaWVsZHMgYW5kIGtleVxuXHRcdHJlc3VsdCA9IG9iamVjdEZpZWxkc1trZXldPy50eXBlXG5cdFx0aWYgW1wiZm9ybXVsYVwiLCBcInN1bW1hcnlcIl0uaW5kZXhPZihyZXN1bHQpID4gLTFcblx0XHRcdHJlc3VsdCA9IG9iamVjdEZpZWxkc1trZXldLmRhdGFfdHlwZVxuXHRcdCMgZWxzZSBpZiByZXN1bHQgPT0gXCJzZWxlY3RcIiBhbmQgb2JqZWN0RmllbGRzW2tleV0/LmRhdGFfdHlwZSBhbmQgb2JqZWN0RmllbGRzW2tleV0uZGF0YV90eXBlICE9IFwidGV4dFwiXG5cdFx0IyBcdHJlc3VsdCA9IG9iamVjdEZpZWxkc1trZXldLmRhdGFfdHlwZVxuXHRcdHJldHVybiByZXN1bHRcblx0ZWxzZVxuXHRcdHJldHVybiBcInRleHRcIlxuXG4jIEVORFxuXG5pZiBNZXRlb3IuaXNTZXJ2ZXJcblx0Q3JlYXRvci5nZXRBbGxSZWxhdGVkT2JqZWN0cyA9IChvYmplY3RfbmFtZSktPlxuXHRcdHJlbGF0ZWRfb2JqZWN0X25hbWVzID0gW11cblx0XHRfLmVhY2ggQ3JlYXRvci5PYmplY3RzLCAocmVsYXRlZF9vYmplY3QsIHJlbGF0ZWRfb2JqZWN0X25hbWUpLT5cblx0XHRcdF8uZWFjaCByZWxhdGVkX29iamVjdC5maWVsZHMsIChyZWxhdGVkX2ZpZWxkLCByZWxhdGVkX2ZpZWxkX25hbWUpLT5cblx0XHRcdFx0aWYgcmVsYXRlZF9maWVsZC50eXBlID09IFwibWFzdGVyX2RldGFpbFwiIGFuZCByZWxhdGVkX2ZpZWxkLnJlZmVyZW5jZV90byBhbmQgcmVsYXRlZF9maWVsZC5yZWZlcmVuY2VfdG8gPT0gb2JqZWN0X25hbWVcblx0XHRcdFx0XHRyZWxhdGVkX29iamVjdF9uYW1lcy5wdXNoIHJlbGF0ZWRfb2JqZWN0X25hbWVcblxuXHRcdGlmIENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKS5lbmFibGVfZmlsZXNcblx0XHRcdHJlbGF0ZWRfb2JqZWN0X25hbWVzLnB1c2ggXCJjbXNfZmlsZXNcIlxuXG5cdFx0cmV0dXJuIHJlbGF0ZWRfb2JqZWN0X25hbWVzXG5cbmlmIE1ldGVvci5pc1NlcnZlclxuXHRTdGVlZG9zLmZvcm1hdEluZGV4ID0gKGFycmF5KSAtPlxuXHRcdG9iamVjdCA9IHtcbiAgICAgICAgXHRiYWNrZ3JvdW5kOiB0cnVlXG4gICAgXHR9O1xuXHRcdGlzZG9jdW1lbnREQiA9IE1ldGVvci5zZXR0aW5ncz8uZGF0YXNvdXJjZXM/LmRlZmF1bHQ/LmRvY3VtZW50REIgfHwgZmFsc2U7XG5cdFx0aWYgaXNkb2N1bWVudERCXG5cdFx0XHRpZiBhcnJheS5sZW5ndGggPiAwXG5cdFx0XHRcdGluZGV4TmFtZSA9IGFycmF5LmpvaW4oXCIuXCIpO1xuXHRcdFx0XHRvYmplY3QubmFtZSA9IGluZGV4TmFtZTtcblx0XHRcdFx0XG5cdFx0XHRcdGlmIChpbmRleE5hbWUubGVuZ3RoID4gNTIpXG5cdFx0XHRcdFx0b2JqZWN0Lm5hbWUgPSBpbmRleE5hbWUuc3Vic3RyaW5nKDAsNTIpO1xuXG5cdFx0cmV0dXJuIG9iamVjdDsiLCJDcmVhdG9yLmdldFNjaGVtYSA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lKSB7XG4gIHZhciByZWY7XG4gIHJldHVybiAocmVmID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpKSAhPSBudWxsID8gcmVmLnNjaGVtYSA6IHZvaWQgMDtcbn07XG5cbkNyZWF0b3IuZ2V0T2JqZWN0SG9tZUNvbXBvbmVudCA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lKSB7XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbkNyZWF0b3IuZ2V0T2JqZWN0VXJsID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgYXBwX2lkKSB7XG4gIHZhciBsaXN0X3ZpZXcsIGxpc3Rfdmlld19pZDtcbiAgaWYgKCFhcHBfaWQpIHtcbiAgICBhcHBfaWQgPSBTZXNzaW9uLmdldChcImFwcF9pZFwiKTtcbiAgfVxuICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgb2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpO1xuICB9XG4gIGxpc3RfdmlldyA9IENyZWF0b3IuZ2V0TGlzdFZpZXcob2JqZWN0X25hbWUsIG51bGwpO1xuICBsaXN0X3ZpZXdfaWQgPSBsaXN0X3ZpZXcgIT0gbnVsbCA/IGxpc3Rfdmlldy5faWQgOiB2b2lkIDA7XG4gIGlmIChyZWNvcmRfaWQpIHtcbiAgICByZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvdmlldy9cIiArIHJlY29yZF9pZCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKENyZWF0b3IuZ2V0T2JqZWN0SG9tZUNvbXBvbmVudChvYmplY3RfbmFtZSkpIHtcbiAgICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobGlzdF92aWV3X2lkKSB7XG4gICAgICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9ncmlkL1wiICsgbGlzdF92aWV3X2lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuQ3JlYXRvci5nZXRPYmplY3RBYnNvbHV0ZVVybCA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIGFwcF9pZCkge1xuICB2YXIgbGlzdF92aWV3LCBsaXN0X3ZpZXdfaWQ7XG4gIGlmICghYXBwX2lkKSB7XG4gICAgYXBwX2lkID0gU2Vzc2lvbi5nZXQoXCJhcHBfaWRcIik7XG4gIH1cbiAgaWYgKCFvYmplY3RfbmFtZSkge1xuICAgIG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKTtcbiAgfVxuICBsaXN0X3ZpZXcgPSBDcmVhdG9yLmdldExpc3RWaWV3KG9iamVjdF9uYW1lLCBudWxsKTtcbiAgbGlzdF92aWV3X2lkID0gbGlzdF92aWV3ICE9IG51bGwgPyBsaXN0X3ZpZXcuX2lkIDogdm9pZCAwO1xuICBpZiAocmVjb3JkX2lkKSB7XG4gICAgcmV0dXJuIFN0ZWVkb3MuYWJzb2x1dGVVcmwoXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL3ZpZXcvXCIgKyByZWNvcmRfaWQsIHRydWUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBTdGVlZG9zLmFic29sdXRlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9ncmlkL1wiICsgbGlzdF92aWV3X2lkLCB0cnVlKTtcbiAgfVxufTtcblxuQ3JlYXRvci5nZXRPYmplY3RSb3V0ZXJVcmwgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBhcHBfaWQpIHtcbiAgdmFyIGxpc3RfdmlldywgbGlzdF92aWV3X2lkO1xuICBpZiAoIWFwcF9pZCkge1xuICAgIGFwcF9pZCA9IFNlc3Npb24uZ2V0KFwiYXBwX2lkXCIpO1xuICB9XG4gIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICBvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIik7XG4gIH1cbiAgbGlzdF92aWV3ID0gQ3JlYXRvci5nZXRMaXN0VmlldyhvYmplY3RfbmFtZSwgbnVsbCk7XG4gIGxpc3Rfdmlld19pZCA9IGxpc3RfdmlldyAhPSBudWxsID8gbGlzdF92aWV3Ll9pZCA6IHZvaWQgMDtcbiAgaWYgKHJlY29yZF9pZCkge1xuICAgIHJldHVybiBcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvdmlldy9cIiArIHJlY29yZF9pZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gXCIvYXBwL1wiICsgYXBwX2lkICsgXCIvXCIgKyBvYmplY3RfbmFtZSArIFwiL2dyaWQvXCIgKyBsaXN0X3ZpZXdfaWQ7XG4gIH1cbn07XG5cbkNyZWF0b3IuZ2V0TGlzdFZpZXdVcmwgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgYXBwX2lkLCBsaXN0X3ZpZXdfaWQpIHtcbiAgdmFyIHVybDtcbiAgdXJsID0gQ3JlYXRvci5nZXRMaXN0Vmlld1JlbGF0aXZlVXJsKG9iamVjdF9uYW1lLCBhcHBfaWQsIGxpc3Rfdmlld19pZCk7XG4gIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKHVybCk7XG59O1xuXG5DcmVhdG9yLmdldExpc3RWaWV3UmVsYXRpdmVVcmwgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgYXBwX2lkLCBsaXN0X3ZpZXdfaWQpIHtcbiAgcmV0dXJuIFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9ncmlkL1wiICsgbGlzdF92aWV3X2lkO1xufTtcblxuQ3JlYXRvci5nZXRTd2l0Y2hMaXN0VXJsID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIGFwcF9pZCwgbGlzdF92aWV3X2lkKSB7XG4gIGlmIChsaXN0X3ZpZXdfaWQpIHtcbiAgICByZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvXCIgKyBsaXN0X3ZpZXdfaWQgKyBcIi9saXN0XCIpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9saXN0L3N3aXRjaFwiKTtcbiAgfVxufTtcblxuQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0VXJsID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIGFwcF9pZCwgcmVjb3JkX2lkLCByZWxhdGVkX29iamVjdF9uYW1lLCByZWxhdGVkX2ZpZWxkX25hbWUpIHtcbiAgaWYgKHJlbGF0ZWRfZmllbGRfbmFtZSkge1xuICAgIHJldHVybiBDcmVhdG9yLmdldFJlbGF0aXZlVXJsKFwiL2FwcC9cIiArIGFwcF9pZCArIFwiL1wiICsgb2JqZWN0X25hbWUgKyBcIi9cIiArIHJlY29yZF9pZCArIFwiL1wiICsgcmVsYXRlZF9vYmplY3RfbmFtZSArIFwiL2dyaWQ/cmVsYXRlZF9maWVsZF9uYW1lPVwiICsgcmVsYXRlZF9maWVsZF9uYW1lKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gQ3JlYXRvci5nZXRSZWxhdGl2ZVVybChcIi9hcHAvXCIgKyBhcHBfaWQgKyBcIi9cIiArIG9iamVjdF9uYW1lICsgXCIvXCIgKyByZWNvcmRfaWQgKyBcIi9cIiArIHJlbGF0ZWRfb2JqZWN0X25hbWUgKyBcIi9ncmlkXCIpO1xuICB9XG59O1xuXG5DcmVhdG9yLmdldE9iamVjdExvb2t1cEZpZWxkT3B0aW9ucyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBpc19kZWVwLCBpc19za2lwX2hpZGUsIGlzX3JlbGF0ZWQpIHtcbiAgdmFyIF9vYmplY3QsIF9vcHRpb25zLCBmaWVsZHMsIGljb24sIHJlbGF0ZWRPYmplY3RzO1xuICBfb3B0aW9ucyA9IFtdO1xuICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgcmV0dXJuIF9vcHRpb25zO1xuICB9XG4gIF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk7XG4gIGZpZWxkcyA9IF9vYmplY3QgIT0gbnVsbCA/IF9vYmplY3QuZmllbGRzIDogdm9pZCAwO1xuICBpY29uID0gX29iamVjdCAhPSBudWxsID8gX29iamVjdC5pY29uIDogdm9pZCAwO1xuICBfLmZvckVhY2goZmllbGRzLCBmdW5jdGlvbihmLCBrKSB7XG4gICAgaWYgKGlzX3NraXBfaGlkZSAmJiBmLmhpZGRlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZi50eXBlID09PSBcInNlbGVjdFwiKSB7XG4gICAgICByZXR1cm4gX29wdGlvbnMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBcIlwiICsgKGYubGFiZWwgfHwgayksXG4gICAgICAgIHZhbHVlOiBcIlwiICsgayxcbiAgICAgICAgaWNvbjogaWNvblxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBfb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgbGFiZWw6IGYubGFiZWwgfHwgayxcbiAgICAgICAgdmFsdWU6IGssXG4gICAgICAgIGljb246IGljb25cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIGlmIChpc19kZWVwKSB7XG4gICAgXy5mb3JFYWNoKGZpZWxkcywgZnVuY3Rpb24oZiwgaykge1xuICAgICAgdmFyIHJfb2JqZWN0O1xuICAgICAgaWYgKGlzX3NraXBfaGlkZSAmJiBmLmhpZGRlbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoKGYudHlwZSA9PT0gXCJsb29rdXBcIiB8fCBmLnR5cGUgPT09IFwibWFzdGVyX2RldGFpbFwiKSAmJiBmLnJlZmVyZW5jZV90byAmJiBfLmlzU3RyaW5nKGYucmVmZXJlbmNlX3RvKSkge1xuICAgICAgICByX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KGYucmVmZXJlbmNlX3RvKTtcbiAgICAgICAgaWYgKHJfb2JqZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIF8uZm9yRWFjaChyX29iamVjdC5maWVsZHMsIGZ1bmN0aW9uKGYyLCBrMikge1xuICAgICAgICAgICAgcmV0dXJuIF9vcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICBsYWJlbDogKGYubGFiZWwgfHwgaykgKyBcIj0+XCIgKyAoZjIubGFiZWwgfHwgazIpLFxuICAgICAgICAgICAgICB2YWx1ZTogayArIFwiLlwiICsgazIsXG4gICAgICAgICAgICAgIGljb246IHJfb2JqZWN0ICE9IG51bGwgPyByX29iamVjdC5pY29uIDogdm9pZCAwXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGlmIChpc19yZWxhdGVkKSB7XG4gICAgcmVsYXRlZE9iamVjdHMgPSBDcmVhdG9yLmdldFJlbGF0ZWRPYmplY3RzKG9iamVjdF9uYW1lKTtcbiAgICBfLmVhY2gocmVsYXRlZE9iamVjdHMsIChmdW5jdGlvbihfdGhpcykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKF9yZWxhdGVkT2JqZWN0KSB7XG4gICAgICAgIHZhciByZWxhdGVkT2JqZWN0LCByZWxhdGVkT3B0aW9ucztcbiAgICAgICAgcmVsYXRlZE9wdGlvbnMgPSBDcmVhdG9yLmdldE9iamVjdExvb2t1cEZpZWxkT3B0aW9ucyhfcmVsYXRlZE9iamVjdC5vYmplY3RfbmFtZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIHJlbGF0ZWRPYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChfcmVsYXRlZE9iamVjdC5vYmplY3RfbmFtZSk7XG4gICAgICAgIHJldHVybiBfLmVhY2gocmVsYXRlZE9wdGlvbnMsIGZ1bmN0aW9uKHJlbGF0ZWRPcHRpb24pIHtcbiAgICAgICAgICBpZiAoX3JlbGF0ZWRPYmplY3QuZm9yZWlnbl9rZXkgIT09IHJlbGF0ZWRPcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBfb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgbGFiZWw6IChyZWxhdGVkT2JqZWN0LmxhYmVsIHx8IHJlbGF0ZWRPYmplY3QubmFtZSkgKyBcIj0+XCIgKyByZWxhdGVkT3B0aW9uLmxhYmVsLFxuICAgICAgICAgICAgICB2YWx1ZTogcmVsYXRlZE9iamVjdC5uYW1lICsgXCIuXCIgKyByZWxhdGVkT3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICBpY29uOiByZWxhdGVkT2JqZWN0ICE9IG51bGwgPyByZWxhdGVkT2JqZWN0Lmljb24gOiB2b2lkIDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0pKHRoaXMpKTtcbiAgfVxuICByZXR1cm4gX29wdGlvbnM7XG59O1xuXG5DcmVhdG9yLmdldE9iamVjdEZpbHRlckZpZWxkT3B0aW9ucyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lKSB7XG4gIHZhciBfb2JqZWN0LCBfb3B0aW9ucywgZmllbGRzLCBpY29uLCBwZXJtaXNzaW9uX2ZpZWxkcztcbiAgX29wdGlvbnMgPSBbXTtcbiAgaWYgKCFvYmplY3RfbmFtZSkge1xuICAgIHJldHVybiBfb3B0aW9ucztcbiAgfVxuICBfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpO1xuICBmaWVsZHMgPSBfb2JqZWN0ICE9IG51bGwgPyBfb2JqZWN0LmZpZWxkcyA6IHZvaWQgMDtcbiAgcGVybWlzc2lvbl9maWVsZHMgPSBDcmVhdG9yLmdldEZpZWxkcyhvYmplY3RfbmFtZSk7XG4gIGljb24gPSBfb2JqZWN0ICE9IG51bGwgPyBfb2JqZWN0Lmljb24gOiB2b2lkIDA7XG4gIF8uZm9yRWFjaChmaWVsZHMsIGZ1bmN0aW9uKGYsIGspIHtcbiAgICBpZiAoIV8uaW5jbHVkZShbXCJncmlkXCIsIFwib2JqZWN0XCIsIFwiW09iamVjdF1cIiwgXCJbb2JqZWN0XVwiLCBcIk9iamVjdFwiLCBcImF2YXRhclwiLCBcImltYWdlXCIsIFwibWFya2Rvd25cIiwgXCJodG1sXCJdLCBmLnR5cGUpICYmICFmLmhpZGRlbikge1xuICAgICAgaWYgKCEvXFx3K1xcLi8udGVzdChrKSAmJiBfLmluZGV4T2YocGVybWlzc2lvbl9maWVsZHMsIGspID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIF9vcHRpb25zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBmLmxhYmVsIHx8IGssXG4gICAgICAgICAgdmFsdWU6IGssXG4gICAgICAgICAgaWNvbjogaWNvblxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gX29wdGlvbnM7XG59O1xuXG5DcmVhdG9yLmdldE9iamVjdEZpZWxkT3B0aW9ucyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lKSB7XG4gIHZhciBfb2JqZWN0LCBfb3B0aW9ucywgZmllbGRzLCBpY29uLCBwZXJtaXNzaW9uX2ZpZWxkcztcbiAgX29wdGlvbnMgPSBbXTtcbiAgaWYgKCFvYmplY3RfbmFtZSkge1xuICAgIHJldHVybiBfb3B0aW9ucztcbiAgfVxuICBfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpO1xuICBmaWVsZHMgPSBfb2JqZWN0ICE9IG51bGwgPyBfb2JqZWN0LmZpZWxkcyA6IHZvaWQgMDtcbiAgcGVybWlzc2lvbl9maWVsZHMgPSBDcmVhdG9yLmdldEZpZWxkcyhvYmplY3RfbmFtZSk7XG4gIGljb24gPSBfb2JqZWN0ICE9IG51bGwgPyBfb2JqZWN0Lmljb24gOiB2b2lkIDA7XG4gIF8uZm9yRWFjaChmaWVsZHMsIGZ1bmN0aW9uKGYsIGspIHtcbiAgICBpZiAoIV8uaW5jbHVkZShbXCJncmlkXCIsIFwib2JqZWN0XCIsIFwiW09iamVjdF1cIiwgXCJbb2JqZWN0XVwiLCBcIk9iamVjdFwiLCBcIm1hcmtkb3duXCIsIFwiaHRtbFwiXSwgZi50eXBlKSkge1xuICAgICAgaWYgKCEvXFx3K1xcLi8udGVzdChrKSAmJiBfLmluZGV4T2YocGVybWlzc2lvbl9maWVsZHMsIGspID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIF9vcHRpb25zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBmLmxhYmVsIHx8IGssXG4gICAgICAgICAgdmFsdWU6IGssXG4gICAgICAgICAgaWNvbjogaWNvblxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gX29wdGlvbnM7XG59O1xuXG5cbi8qXG5maWx0ZXJzOiDopoHovazmjaLnmoRmaWx0ZXJzXG5maWVsZHM6IOWvueixoeWtl+autVxuZmlsdGVyX2ZpZWxkczog6buY6K6k6L+H5ruk5a2X5q6177yM5pSv5oyB5a2X56ym5Liy5pWw57uE5ZKM5a+56LGh5pWw57uE5Lik56eN5qC85byP77yM5aaCOlsnZmlsZWRfbmFtZTEnLCdmaWxlZF9uYW1lMiddLFt7ZmllbGQ6J2ZpbGVkX25hbWUxJyxyZXF1aXJlZDp0cnVlfV1cbuWkhOeQhumAu+i+kTog5oqKZmlsdGVyc+S4reWtmOWcqOS6jmZpbHRlcl9maWVsZHPnmoTov4fmu6TmnaHku7blop7liqDmr4/pobnnmoRpc19kZWZhdWx044CBaXNfcmVxdWlyZWTlsZ7mgKfvvIzkuI3lrZjlnKjkuo5maWx0ZXJfZmllbGRz55qE6L+H5ruk5p2h5Lu25a+55bqU55qE56e76Zmk5q+P6aG555qE55u45YWz5bGe5oCnXG7ov5Tlm57nu5Pmnpw6IOWkhOeQhuWQjueahGZpbHRlcnNcbiAqL1xuXG5DcmVhdG9yLmdldEZpbHRlcnNXaXRoRmlsdGVyRmllbGRzID0gZnVuY3Rpb24oZmlsdGVycywgZmllbGRzLCBmaWx0ZXJfZmllbGRzKSB7XG4gIGlmICghZmlsdGVycykge1xuICAgIGZpbHRlcnMgPSBbXTtcbiAgfVxuICBpZiAoIWZpbHRlcl9maWVsZHMpIHtcbiAgICBmaWx0ZXJfZmllbGRzID0gW107XG4gIH1cbiAgaWYgKGZpbHRlcl9maWVsZHMgIT0gbnVsbCA/IGZpbHRlcl9maWVsZHMubGVuZ3RoIDogdm9pZCAwKSB7XG4gICAgZmlsdGVyX2ZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgIGlmIChfLmlzU3RyaW5nKG4pKSB7XG4gICAgICAgIG4gPSB7XG4gICAgICAgICAgZmllbGQ6IG4sXG4gICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoZmllbGRzW24uZmllbGRdICYmICFfLmZpbmRXaGVyZShmaWx0ZXJzLCB7XG4gICAgICAgIGZpZWxkOiBuLmZpZWxkXG4gICAgICB9KSkge1xuICAgICAgICByZXR1cm4gZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBmaWVsZDogbi5maWVsZCxcbiAgICAgICAgICBpc19kZWZhdWx0OiB0cnVlLFxuICAgICAgICAgIGlzX3JlcXVpcmVkOiBuLnJlcXVpcmVkXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGZpbHRlcnMuZm9yRWFjaChmdW5jdGlvbihmaWx0ZXJJdGVtKSB7XG4gICAgdmFyIG1hdGNoRmllbGQ7XG4gICAgbWF0Y2hGaWVsZCA9IGZpbHRlcl9maWVsZHMuZmluZChmdW5jdGlvbihuKSB7XG4gICAgICByZXR1cm4gbiA9PT0gZmlsdGVySXRlbS5maWVsZCB8fCBuLmZpZWxkID09PSBmaWx0ZXJJdGVtLmZpZWxkO1xuICAgIH0pO1xuICAgIGlmIChfLmlzU3RyaW5nKG1hdGNoRmllbGQpKSB7XG4gICAgICBtYXRjaEZpZWxkID0ge1xuICAgICAgICBmaWVsZDogbWF0Y2hGaWVsZCxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAobWF0Y2hGaWVsZCkge1xuICAgICAgZmlsdGVySXRlbS5pc19kZWZhdWx0ID0gdHJ1ZTtcbiAgICAgIHJldHVybiBmaWx0ZXJJdGVtLmlzX3JlcXVpcmVkID0gbWF0Y2hGaWVsZC5yZXF1aXJlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIGZpbHRlckl0ZW0uaXNfZGVmYXVsdDtcbiAgICAgIHJldHVybiBkZWxldGUgZmlsdGVySXRlbS5pc19yZXF1aXJlZDtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZmlsdGVycztcbn07XG5cbkNyZWF0b3IuZ2V0T2JqZWN0UmVjb3JkID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIHJlY29yZF9pZCwgc2VsZWN0X2ZpZWxkcywgZXhwYW5kKSB7XG4gIHZhciBjb2xsZWN0aW9uLCBvYmosIHJlY29yZCwgcmVmLCByZWYxLCByZWYyO1xuICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgb2JqZWN0X25hbWUgPSBTZXNzaW9uLmdldChcIm9iamVjdF9uYW1lXCIpO1xuICB9XG4gIGlmICghcmVjb3JkX2lkKSB7XG4gICAgcmVjb3JkX2lkID0gU2Vzc2lvbi5nZXQoXCJyZWNvcmRfaWRcIik7XG4gIH1cbiAgaWYgKE1ldGVvci5pc0NsaWVudCkge1xuICAgIGlmIChvYmplY3RfbmFtZSA9PT0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKSAmJiByZWNvcmRfaWQgPT09IFNlc3Npb24uZ2V0KFwicmVjb3JkX2lkXCIpKSB7XG4gICAgICBpZiAoKHJlZiA9IFRlbXBsYXRlLmluc3RhbmNlKCkpICE9IG51bGwgPyByZWYucmVjb3JkIDogdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiAocmVmMSA9IFRlbXBsYXRlLmluc3RhbmNlKCkpICE9IG51bGwgPyAocmVmMiA9IHJlZjEucmVjb3JkKSAhPSBudWxsID8gcmVmMi5nZXQoKSA6IHZvaWQgMCA6IHZvaWQgMDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIENyZWF0b3Iub2RhdGEuZ2V0KG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIHNlbGVjdF9maWVsZHMsIGV4cGFuZCk7XG4gICAgfVxuICB9XG4gIG9iaiA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKTtcbiAgaWYgKG9iai5kYXRhYmFzZV9uYW1lID09PSBcIm1ldGVvclwiIHx8ICFvYmouZGF0YWJhc2VfbmFtZSkge1xuICAgIGNvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUpO1xuICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICByZWNvcmQgPSBjb2xsZWN0aW9uLmZpbmRPbmUocmVjb3JkX2lkKTtcbiAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9iamVjdF9uYW1lICYmIHJlY29yZF9pZCkge1xuICAgIHJldHVybiBDcmVhdG9yLm9kYXRhLmdldChvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBzZWxlY3RfZmllbGRzLCBleHBhbmQpO1xuICB9XG59O1xuXG5DcmVhdG9yLmdldE9iamVjdFJlY29yZE5hbWUgPSBmdW5jdGlvbihyZWNvcmQsIG9iamVjdF9uYW1lKSB7XG4gIHZhciBuYW1lX2ZpZWxkX2tleSwgcmVmO1xuICBpZiAoIXJlY29yZCkge1xuICAgIHJlY29yZCA9IENyZWF0b3IuZ2V0T2JqZWN0UmVjb3JkKCk7XG4gIH1cbiAgaWYgKHJlY29yZCkge1xuICAgIG5hbWVfZmllbGRfa2V5ID0gb2JqZWN0X25hbWUgPT09IFwib3JnYW5pemF0aW9uc1wiID8gXCJuYW1lXCIgOiAocmVmID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpKSAhPSBudWxsID8gcmVmLk5BTUVfRklFTERfS0VZIDogdm9pZCAwO1xuICAgIGlmIChyZWNvcmQgJiYgbmFtZV9maWVsZF9rZXkpIHtcbiAgICAgIHJldHVybiByZWNvcmQubGFiZWwgfHwgcmVjb3JkW25hbWVfZmllbGRfa2V5XTtcbiAgICB9XG4gIH1cbn07XG5cbkNyZWF0b3IuZ2V0QXBwID0gZnVuY3Rpb24oYXBwX2lkKSB7XG4gIHZhciBhcHBNZW51cywgY3VycmVudEFwcDtcbiAgYXBwTWVudXMgPSBTZXNzaW9uLmdldChcIl9hcHBfbWVudXNcIikgfHwgU2Vzc2lvbi5nZXQoXCJhcHBfbWVudXNcIik7XG4gIGlmICghYXBwTWVudXMpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY3VycmVudEFwcCA9IGFwcE1lbnVzLmZpbmQoZnVuY3Rpb24obWVudUl0ZW0pIHtcbiAgICByZXR1cm4gbWVudUl0ZW0uaWQgPT09IGFwcF9pZDtcbiAgfSk7XG4gIHJldHVybiBjdXJyZW50QXBwO1xufTtcblxuQ3JlYXRvci5nZXRBcHBEYXNoYm9hcmQgPSBmdW5jdGlvbihhcHBfaWQpIHtcbiAgdmFyIGFwcCwgZGFzaGJvYXJkO1xuICBhcHAgPSBDcmVhdG9yLmdldEFwcChhcHBfaWQpO1xuICBpZiAoIWFwcCkge1xuICAgIHJldHVybjtcbiAgfVxuICBkYXNoYm9hcmQgPSBudWxsO1xuICBfLmVhY2goQ3JlYXRvci5EYXNoYm9hcmRzLCBmdW5jdGlvbih2LCBrKSB7XG4gICAgdmFyIHJlZjtcbiAgICBpZiAoKChyZWYgPSB2LmFwcHMpICE9IG51bGwgPyByZWYuaW5kZXhPZihhcHAuX2lkKSA6IHZvaWQgMCkgPiAtMSkge1xuICAgICAgcmV0dXJuIGRhc2hib2FyZCA9IHY7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGRhc2hib2FyZDtcbn07XG5cbkNyZWF0b3IuZ2V0QXBwRGFzaGJvYXJkQ29tcG9uZW50ID0gZnVuY3Rpb24oYXBwX2lkKSB7XG4gIHZhciBhcHA7XG4gIGFwcCA9IENyZWF0b3IuZ2V0QXBwKGFwcF9pZCk7XG4gIGlmICghYXBwIHx8IHRydWUpIHtcblxuICB9XG59O1xuXG5DcmVhdG9yLmdldEFwcE9iamVjdE5hbWVzID0gZnVuY3Rpb24oYXBwX2lkKSB7XG4gIHZhciBhcHAsIGFwcE9iamVjdHMsIGlzTW9iaWxlLCBvYmplY3RzO1xuICBhcHAgPSBDcmVhdG9yLmdldEFwcChhcHBfaWQpO1xuICBpZiAoIWFwcCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpc01vYmlsZSA9IFN0ZWVkb3MuaXNNb2JpbGUoKTtcbiAgYXBwT2JqZWN0cyA9IGlzTW9iaWxlID8gYXBwLm1vYmlsZV9vYmplY3RzIDogYXBwLm9iamVjdHM7XG4gIG9iamVjdHMgPSBbXTtcbiAgaWYgKGFwcCkge1xuICAgIF8uZWFjaChhcHBPYmplY3RzLCBmdW5jdGlvbih2KSB7XG4gICAgICB2YXIgb2JqO1xuICAgICAgb2JqID0gQ3JlYXRvci5nZXRPYmplY3Qodik7XG4gICAgICBpZiAob2JqICE9IG51bGwgPyBvYmoucGVybWlzc2lvbnMuZ2V0KCkuYWxsb3dSZWFkIDogdm9pZCAwKSB7XG4gICAgICAgIHJldHVybiBvYmplY3RzLnB1c2godik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG9iamVjdHM7XG59O1xuXG5DcmVhdG9yLmdldFVybFdpdGhUb2tlbiA9IGZ1bmN0aW9uKHVybCwgZXhwcmVzc2lvbkZvcm1EYXRhKSB7XG4gIHZhciBoYXNRdWVyeVN5bWJvbCwgbGlua1N0ciwgcGFyYW1zO1xuICBwYXJhbXMgPSB7fTtcbiAgcGFyYW1zW1wiWC1TcGFjZS1JZFwiXSA9IFN0ZWVkb3Muc3BhY2VJZCgpO1xuICBwYXJhbXNbXCJYLVVzZXItSWRcIl0gPSBTdGVlZG9zLnVzZXJJZCgpO1xuICBwYXJhbXNbXCJYLUNvbXBhbnktSWRzXCJdID0gU3RlZWRvcy5nZXRVc2VyQ29tcGFueUlkcygpO1xuICBwYXJhbXNbXCJYLUF1dGgtVG9rZW5cIl0gPSBBY2NvdW50cy5fc3RvcmVkTG9naW5Ub2tlbigpO1xuICBpZiAoU3RlZWRvcy5pc0V4cHJlc3Npb24odXJsKSkge1xuICAgIHVybCA9IFN0ZWVkb3MucGFyc2VTaW5nbGVFeHByZXNzaW9uKHVybCwgZXhwcmVzc2lvbkZvcm1EYXRhLCBcIiNcIiwgQ3JlYXRvci5VU0VSX0NPTlRFWFQpO1xuICB9XG4gIGhhc1F1ZXJ5U3ltYm9sID0gLyhcXCMuK1xcPyl8KFxcP1teI10qJCkvZy50ZXN0KHVybCk7XG4gIGxpbmtTdHIgPSBoYXNRdWVyeVN5bWJvbCA/IFwiJlwiIDogXCI/XCI7XG4gIHJldHVybiBcIlwiICsgdXJsICsgbGlua1N0ciArICgkLnBhcmFtKHBhcmFtcykpO1xufTtcblxuQ3JlYXRvci5nZXRBcHBNZW51ID0gZnVuY3Rpb24oYXBwX2lkLCBtZW51X2lkKSB7XG4gIHZhciBtZW51cztcbiAgbWVudXMgPSBDcmVhdG9yLmdldEFwcE1lbnVzKGFwcF9pZCk7XG4gIHJldHVybiBtZW51cyAmJiBtZW51cy5maW5kKGZ1bmN0aW9uKG1lbnUpIHtcbiAgICByZXR1cm4gbWVudS5pZCA9PT0gbWVudV9pZDtcbiAgfSk7XG59O1xuXG5DcmVhdG9yLmdldEFwcE1lbnVVcmxGb3JJbnRlcm5ldCA9IGZ1bmN0aW9uKG1lbnUpIHtcbiAgcmV0dXJuIENyZWF0b3IuZ2V0VXJsV2l0aFRva2VuKG1lbnUucGF0aCwgbWVudSk7XG59O1xuXG5DcmVhdG9yLmdldEFwcE1lbnVVcmwgPSBmdW5jdGlvbihtZW51KSB7XG4gIHZhciB1cmw7XG4gIHVybCA9IG1lbnUucGF0aDtcbiAgaWYgKG1lbnUudHlwZSA9PT0gXCJ1cmxcIikge1xuICAgIGlmIChtZW51LnRhcmdldCkge1xuICAgICAgcmV0dXJuIENyZWF0b3IuZ2V0QXBwTWVudVVybEZvckludGVybmV0KG1lbnUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCIvYXBwLy0vdGFiX2lmcmFtZS9cIiArIG1lbnUuaWQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBtZW51LnBhdGg7XG4gIH1cbn07XG5cbkNyZWF0b3IuZ2V0QXBwTWVudXMgPSBmdW5jdGlvbihhcHBfaWQpIHtcbiAgdmFyIGFwcE1lbnVzLCBjdXJlbnRBcHBNZW51cztcbiAgYXBwTWVudXMgPSBTZXNzaW9uLmdldChcIl9hcHBfbWVudXNcIikgfHwgU2Vzc2lvbi5nZXQoXCJhcHBfbWVudXNcIik7XG4gIGlmICghYXBwTWVudXMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgY3VyZW50QXBwTWVudXMgPSBhcHBNZW51cy5maW5kKGZ1bmN0aW9uKG1lbnVJdGVtKSB7XG4gICAgcmV0dXJuIG1lbnVJdGVtLmlkID09PSBhcHBfaWQ7XG4gIH0pO1xuICBpZiAoY3VyZW50QXBwTWVudXMpIHtcbiAgICByZXR1cm4gY3VyZW50QXBwTWVudXMuY2hpbGRyZW47XG4gIH1cbn07XG5cbkNyZWF0b3IubG9hZEFwcHNNZW51cyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgZGF0YSwgaXNNb2JpbGUsIG9wdGlvbnM7XG4gIGlzTW9iaWxlID0gU3RlZWRvcy5pc01vYmlsZSgpO1xuICBkYXRhID0ge307XG4gIGlmIChpc01vYmlsZSkge1xuICAgIGRhdGEubW9iaWxlID0gaXNNb2JpbGU7XG4gIH1cbiAgb3B0aW9ucyA9IHtcbiAgICB0eXBlOiAnZ2V0JyxcbiAgICBkYXRhOiBkYXRhLFxuICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgIHJldHVybiBTZXNzaW9uLnNldChcImFwcF9tZW51c1wiLCBkYXRhKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB0eXBlb2YgU3RlZWRvcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTdGVlZG9zICE9PSBudWxsID8gU3RlZWRvcy5hdXRoUmVxdWVzdChcIi9zZXJ2aWNlL2FwaS9hcHBzL21lbnVzXCIsIG9wdGlvbnMpIDogdm9pZCAwO1xufTtcblxuQ3JlYXRvci5jcmVhdG9yQXBwc1NlbGVjdG9yID0gZnVuY3Rpb24oYXBwcywgYXNzaWduZWRfYXBwcykge1xuICB2YXIgYWRtaW5BcHAsIGNyZWF0b3JBcHBzLCBzb3J0ZWRBcHBzO1xuICBhZG1pbkFwcCA9IHZvaWQgMDtcbiAgc29ydGVkQXBwcyA9IHZvaWQgMDtcbiAgXy5lYWNoKGFwcHMsIGZ1bmN0aW9uKGFwcCwga2V5KSB7XG4gICAgaWYgKCFhcHAuX2lkKSB7XG4gICAgICBhcHAuX2lkID0ga2V5O1xuICAgIH1cbiAgICBpZiAoYXBwLmlzX2NyZWF0b3IpIHtcblxuICAgIH0gZWxzZSB7XG4gICAgICBhcHAudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfSk7XG4gIHNvcnRlZEFwcHMgPSBfLnNvcnRCeShfLnZhbHVlcyhhcHBzKSwgJ3NvcnQnKTtcbiAgY3JlYXRvckFwcHMgPSB7fTtcbiAgYWRtaW5BcHAgPSB7fTtcbiAgXy5lYWNoKHNvcnRlZEFwcHMsIGZ1bmN0aW9uKG4pIHtcbiAgICBpZiAobi5faWQgPT09ICdhZG1pbicpIHtcbiAgICAgIHJldHVybiBhZG1pbkFwcCA9IG47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjcmVhdG9yQXBwc1tuLl9pZF0gPSBuO1xuICAgIH1cbiAgfSk7XG4gIGNyZWF0b3JBcHBzLmFkbWluID0gYWRtaW5BcHA7XG4gIGlmIChhc3NpZ25lZF9hcHBzLmxlbmd0aCkge1xuICAgIF8uZWFjaChjcmVhdG9yQXBwcywgZnVuY3Rpb24oYXBwLCBrZXkpIHtcbiAgICAgIGlmIChhc3NpZ25lZF9hcHBzLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgICAgIGFwcC52aXNpYmxlID0gYXBwLmlzX2NyZWF0b3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcHAudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBjcmVhdG9yQXBwcztcbn07XG5cbkNyZWF0b3IudmlzaWJsZUFwcHNTZWxlY3RvciA9IGZ1bmN0aW9uKGNyZWF0b3JBcHBzLCBpbmNsdWRlQWRtaW4pIHtcbiAgdmFyIGFwcHM7XG4gIGlmIChpbmNsdWRlQWRtaW4gPT0gbnVsbCkge1xuICAgIGluY2x1ZGVBZG1pbiA9IHRydWU7XG4gIH1cbiAgYXBwcyA9IFtdO1xuICBfLmVhY2goY3JlYXRvckFwcHMsIGZ1bmN0aW9uKHYsIGspIHtcbiAgICBpZiAodi52aXNpYmxlICE9PSBmYWxzZSAmJiB2Ll9pZCAhPT0gJ2FkbWluJyB8fCBpbmNsdWRlQWRtaW4gJiYgdi5faWQgPT09ICdhZG1pbicpIHtcbiAgICAgIGFwcHMucHVzaCh2KTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYXBwcztcbn07XG5cbkNyZWF0b3IuZ2V0VmlzaWJsZUFwcHMgPSBmdW5jdGlvbihpbmNsdWRlQWRtaW4pIHtcbiAgdmFyIGNoYW5nZUFwcCwgY3JlYXRvckFwcHM7XG4gIGNoYW5nZUFwcCA9IENyZWF0b3IuX3N1YkFwcC5nZXQoKTtcbiAgY3JlYXRvckFwcHMgPSBPYmplY3QuYXNzaWduKHt9LCBDcmVhdG9yLkFwcHMsIHtcbiAgICBhcHBzOiBjaGFuZ2VBcHBcbiAgfSk7XG4gIHJldHVybiBDcmVhdG9yLnZpc2libGVBcHBzU2VsZWN0b3IoY3JlYXRvckFwcHMsIGluY2x1ZGVBZG1pbik7XG59O1xuXG5DcmVhdG9yLmdldFZpc2libGVBcHBzT2JqZWN0cyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgYXBwcywgb2JqZWN0cywgdmlzaWJsZU9iamVjdE5hbWVzO1xuICBhcHBzID0gQ3JlYXRvci5nZXRWaXNpYmxlQXBwcygpO1xuICB2aXNpYmxlT2JqZWN0TmFtZXMgPSBfLmZsYXR0ZW4oXy5wbHVjayhhcHBzLCAnb2JqZWN0cycpKTtcbiAgb2JqZWN0cyA9IF8uZmlsdGVyKENyZWF0b3IuT2JqZWN0cywgZnVuY3Rpb24ob2JqKSB7XG4gICAgaWYgKHZpc2libGVPYmplY3ROYW1lcy5pbmRleE9mKG9iai5uYW1lKSA8IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbiAgb2JqZWN0cyA9IG9iamVjdHMuc29ydChDcmVhdG9yLnNvcnRpbmdNZXRob2QuYmluZCh7XG4gICAga2V5OiBcImxhYmVsXCJcbiAgfSkpO1xuICBvYmplY3RzID0gXy5wbHVjayhvYmplY3RzLCAnbmFtZScpO1xuICByZXR1cm4gXy51bmlxKG9iamVjdHMpO1xufTtcblxuQ3JlYXRvci5nZXRBcHBzT2JqZWN0cyA9IGZ1bmN0aW9uKCkge1xuICB2YXIgb2JqZWN0cywgdGVtcE9iamVjdHM7XG4gIG9iamVjdHMgPSBbXTtcbiAgdGVtcE9iamVjdHMgPSBbXTtcbiAgXy5mb3JFYWNoKENyZWF0b3IuQXBwcywgZnVuY3Rpb24oYXBwKSB7XG4gICAgdGVtcE9iamVjdHMgPSBfLmZpbHRlcihhcHAub2JqZWN0cywgZnVuY3Rpb24ob2JqKSB7XG4gICAgICByZXR1cm4gIW9iai5oaWRkZW47XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iamVjdHMgPSBvYmplY3RzLmNvbmNhdCh0ZW1wT2JqZWN0cyk7XG4gIH0pO1xuICByZXR1cm4gXy51bmlxKG9iamVjdHMpO1xufTtcblxuQ3JlYXRvci52YWxpZGF0ZUZpbHRlcnMgPSBmdW5jdGlvbihmaWx0ZXJzLCBsb2dpYykge1xuICB2YXIgZSwgZXJyb3JNc2csIGZpbHRlcl9pdGVtcywgZmlsdGVyX2xlbmd0aCwgZmxhZywgaW5kZXgsIHdvcmQ7XG4gIGZpbHRlcl9pdGVtcyA9IF8ubWFwKGZpbHRlcnMsIGZ1bmN0aW9uKG9iaikge1xuICAgIGlmIChfLmlzRW1wdHkob2JqKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgfSk7XG4gIGZpbHRlcl9pdGVtcyA9IF8uY29tcGFjdChmaWx0ZXJfaXRlbXMpO1xuICBlcnJvck1zZyA9IFwiXCI7XG4gIGZpbHRlcl9sZW5ndGggPSBmaWx0ZXJfaXRlbXMubGVuZ3RoO1xuICBpZiAobG9naWMpIHtcbiAgICBsb2dpYyA9IGxvZ2ljLnJlcGxhY2UoL1xcbi9nLCBcIlwiKS5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKTtcbiAgICBpZiAoL1suX1xcLSErXSsvaWcudGVzdChsb2dpYykpIHtcbiAgICAgIGVycm9yTXNnID0gXCLlkKvmnInnibnmrorlrZfnrKbjgIJcIjtcbiAgICB9XG4gICAgaWYgKCFlcnJvck1zZykge1xuICAgICAgaW5kZXggPSBsb2dpYy5tYXRjaCgvXFxkKy9pZyk7XG4gICAgICBpZiAoIWluZGV4KSB7XG4gICAgICAgIGVycm9yTXNnID0gXCLmnInkupvnrZvpgInmnaHku7bov5vooYzkuoblrprkuYnvvIzkvYbmnKrlnKjpq5jnuqfnrZvpgInmnaHku7bkuK3ooqvlvJXnlKjjgIJcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4LmZvckVhY2goZnVuY3Rpb24oaSkge1xuICAgICAgICAgIGlmIChpIDwgMSB8fCBpID4gZmlsdGVyX2xlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yTXNnID0gXCLmgqjnmoTnrZvpgInmnaHku7blvJXnlKjkuobmnKrlrprkuYnnmoTnrZvpgInlmajvvJpcIiArIGkgKyBcIuOAglwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGZsYWcgPSAxO1xuICAgICAgICB3aGlsZSAoZmxhZyA8PSBmaWx0ZXJfbGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKCFpbmRleC5pbmNsdWRlcyhcIlwiICsgZmxhZykpIHtcbiAgICAgICAgICAgIGVycm9yTXNnID0gXCLmnInkupvnrZvpgInmnaHku7bov5vooYzkuoblrprkuYnvvIzkvYbmnKrlnKjpq5jnuqfnrZvpgInmnaHku7bkuK3ooqvlvJXnlKjjgIJcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxhZysrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghZXJyb3JNc2cpIHtcbiAgICAgIHdvcmQgPSBsb2dpYy5tYXRjaCgvW2EtekEtWl0rL2lnKTtcbiAgICAgIGlmICh3b3JkKSB7XG4gICAgICAgIHdvcmQuZm9yRWFjaChmdW5jdGlvbih3KSB7XG4gICAgICAgICAgaWYgKCEvXihhbmR8b3IpJC9pZy50ZXN0KHcpKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3JNc2cgPSBcIuajgOafpeaCqOeahOmrmOe6p+etm+mAieadoeS7tuS4reeahOaLvOWGmeOAglwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghZXJyb3JNc2cpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIENyZWF0b3JbXCJldmFsXCJdKGxvZ2ljLnJlcGxhY2UoL2FuZC9pZywgXCImJlwiKS5yZXBsYWNlKC9vci9pZywgXCJ8fFwiKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBlID0gZXJyb3I7XG4gICAgICAgIGVycm9yTXNnID0gXCLmgqjnmoTnrZvpgInlmajkuK3lkKvmnInnibnmrorlrZfnrKZcIjtcbiAgICAgIH1cbiAgICAgIGlmICgvKEFORClbXigpXSsoT1IpL2lnLnRlc3QobG9naWMpIHx8IC8oT1IpW14oKV0rKEFORCkvaWcudGVzdChsb2dpYykpIHtcbiAgICAgICAgZXJyb3JNc2cgPSBcIuaCqOeahOetm+mAieWZqOW/hemhu+WcqOi/nue7reaAp+eahCBBTkQg5ZKMIE9SIOihqOi+vuW8j+WJjeWQjuS9v+eUqOaLrOWPt+OAglwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoZXJyb3JNc2cpIHtcbiAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yTXNnKTtcbiAgICBpZiAoTWV0ZW9yLmlzQ2xpZW50KSB7XG4gICAgICB0b2FzdHIuZXJyb3IoZXJyb3JNc2cpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cblxuLypcbm9wdGlvbnPlj4LmlbDvvJpcblx0ZXh0ZW5kLS0g5piv5ZCm6ZyA6KaB5oqK5b2T5YmN55So5oi35Z+65pys5L+h5oGv5Yqg5YWl5YWs5byP77yM5Y2z6K6p5YWs5byP5pSv5oyBQ3JlYXRvci5VU0VSX0NPTlRFWFTkuK3nmoTlgLzvvIzpu5jorqTkuLp0cnVlXG5cdHVzZXJJZC0tIOW9k+WJjeeZu+W9leeUqOaIt1xuXHRzcGFjZUlkLS0g5b2T5YmN5omA5Zyo5bel5L2c5Yy6XG5leHRlbmTkuLp0cnVl5pe277yM5ZCO56uv6ZyA6KaB6aKd5aSW5Lyg5YWldXNlcklk5Y+Kc3BhY2VJZOeUqOS6juaKk+WPlkNyZWF0b3IuVVNFUl9DT05URVhU5a+55bqU55qE5YC8XG4gKi9cblxuQ3JlYXRvci5mb3JtYXRGaWx0ZXJzVG9Nb25nbyA9IGZ1bmN0aW9uKGZpbHRlcnMsIG9wdGlvbnMpIHtcbiAgdmFyIHNlbGVjdG9yO1xuICBpZiAoIShmaWx0ZXJzICE9IG51bGwgPyBmaWx0ZXJzLmxlbmd0aCA6IHZvaWQgMCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKCEoZmlsdGVyc1swXSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgIGZpbHRlcnMgPSBfLm1hcChmaWx0ZXJzLCBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBbb2JqLmZpZWxkLCBvYmoub3BlcmF0aW9uLCBvYmoudmFsdWVdO1xuICAgIH0pO1xuICB9XG4gIHNlbGVjdG9yID0gW107XG4gIF8uZWFjaChmaWx0ZXJzLCBmdW5jdGlvbihmaWx0ZXIpIHtcbiAgICB2YXIgZmllbGQsIG9wdGlvbiwgcmVnLCBzdWJfc2VsZWN0b3IsIHZhbHVlO1xuICAgIGZpZWxkID0gZmlsdGVyWzBdO1xuICAgIG9wdGlvbiA9IGZpbHRlclsxXTtcbiAgICBpZiAoTWV0ZW9yLmlzQ2xpZW50KSB7XG4gICAgICB2YWx1ZSA9IENyZWF0b3IuZXZhbHVhdGVGb3JtdWxhKGZpbHRlclsyXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gQ3JlYXRvci5ldmFsdWF0ZUZvcm11bGEoZmlsdGVyWzJdLCBudWxsLCBvcHRpb25zKTtcbiAgICB9XG4gICAgc3ViX3NlbGVjdG9yID0ge307XG4gICAgc3ViX3NlbGVjdG9yW2ZpZWxkXSA9IHt9O1xuICAgIGlmIChvcHRpb24gPT09IFwiPVwiKSB7XG4gICAgICBzdWJfc2VsZWN0b3JbZmllbGRdW1wiJGVxXCJdID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcHRpb24gPT09IFwiPD5cIikge1xuICAgICAgc3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRuZVwiXSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcIj5cIikge1xuICAgICAgc3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRndFwiXSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcIj49XCIpIHtcbiAgICAgIHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkZ3RlXCJdID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcHRpb24gPT09IFwiPFwiKSB7XG4gICAgICBzdWJfc2VsZWN0b3JbZmllbGRdW1wiJGx0XCJdID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcHRpb24gPT09IFwiPD1cIikge1xuICAgICAgc3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRsdGVcIl0gPSB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbiA9PT0gXCJzdGFydHN3aXRoXCIpIHtcbiAgICAgIHJlZyA9IG5ldyBSZWdFeHAoXCJeXCIgKyB2YWx1ZSwgXCJpXCIpO1xuICAgICAgc3ViX3NlbGVjdG9yW2ZpZWxkXVtcIiRyZWdleFwiXSA9IHJlZztcbiAgICB9IGVsc2UgaWYgKG9wdGlvbiA9PT0gXCJjb250YWluc1wiKSB7XG4gICAgICByZWcgPSBuZXcgUmVnRXhwKHZhbHVlLCBcImlcIik7XG4gICAgICBzdWJfc2VsZWN0b3JbZmllbGRdW1wiJHJlZ2V4XCJdID0gcmVnO1xuICAgIH0gZWxzZSBpZiAob3B0aW9uID09PSBcIm5vdGNvbnRhaW5zXCIpIHtcbiAgICAgIHJlZyA9IG5ldyBSZWdFeHAoXCJeKCg/IVwiICsgdmFsdWUgKyBcIikuKSokXCIsIFwiaVwiKTtcbiAgICAgIHN1Yl9zZWxlY3RvcltmaWVsZF1bXCIkcmVnZXhcIl0gPSByZWc7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3Rvci5wdXNoKHN1Yl9zZWxlY3Rvcik7XG4gIH0pO1xuICByZXR1cm4gc2VsZWN0b3I7XG59O1xuXG5DcmVhdG9yLmlzQmV0d2VlbkZpbHRlck9wZXJhdGlvbiA9IGZ1bmN0aW9uKG9wZXJhdGlvbikge1xuICB2YXIgcmVmO1xuICByZXR1cm4gb3BlcmF0aW9uID09PSBcImJldHdlZW5cIiB8fCAhISgocmVmID0gQ3JlYXRvci5nZXRCZXR3ZWVuVGltZUJ1aWx0aW5WYWx1ZXModHJ1ZSkpICE9IG51bGwgPyByZWZbb3BlcmF0aW9uXSA6IHZvaWQgMCk7XG59O1xuXG5cbi8qXG5vcHRpb25z5Y+C5pWw77yaXG5cdGV4dGVuZC0tIOaYr+WQpumcgOimgeaKiuW9k+WJjeeUqOaIt+WfuuacrOS/oeaBr+WKoOWFpeWFrOW8j++8jOWNs+iuqeWFrOW8j+aUr+aMgUNyZWF0b3IuVVNFUl9DT05URVhU5Lit55qE5YC877yM6buY6K6k5Li6dHJ1ZVxuXHR1c2VySWQtLSDlvZPliY3nmbvlvZXnlKjmiLdcblx0c3BhY2VJZC0tIOW9k+WJjeaJgOWcqOW3peS9nOWMulxuXHRleHRlbmTkuLp0cnVl5pe277yM5ZCO56uv6ZyA6KaB6aKd5aSW5Lyg5YWldXNlcklk5Y+Kc3BhY2VJZOeUqOS6juaKk+WPlkNyZWF0b3IuVVNFUl9DT05URVhU5a+55bqU55qE5YC8XG4gKi9cblxuQ3JlYXRvci5mb3JtYXRGaWx0ZXJzVG9EZXYgPSBmdW5jdGlvbihmaWx0ZXJzLCBvYmplY3RfbmFtZSwgb3B0aW9ucykge1xuICB2YXIgbG9naWNUZW1wRmlsdGVycywgc2VsZWN0b3I7XG4gIGlmICghZmlsdGVycy5sZW5ndGgpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG9wdGlvbnMgIT0gbnVsbCA/IG9wdGlvbnMuaXNfbG9naWNfb3IgOiB2b2lkIDApIHtcbiAgICBsb2dpY1RlbXBGaWx0ZXJzID0gW107XG4gICAgZmlsdGVycy5mb3JFYWNoKGZ1bmN0aW9uKG4pIHtcbiAgICAgIGxvZ2ljVGVtcEZpbHRlcnMucHVzaChuKTtcbiAgICAgIHJldHVybiBsb2dpY1RlbXBGaWx0ZXJzLnB1c2goXCJvclwiKTtcbiAgICB9KTtcbiAgICBsb2dpY1RlbXBGaWx0ZXJzLnBvcCgpO1xuICAgIGZpbHRlcnMgPSBsb2dpY1RlbXBGaWx0ZXJzO1xuICB9XG4gIHNlbGVjdG9yID0gU3RlZWRvc0ZpbHRlcnMuZm9ybWF0RmlsdGVyc1RvRGV2KGZpbHRlcnMsIENyZWF0b3IuVVNFUl9DT05URVhUKTtcbiAgcmV0dXJuIHNlbGVjdG9yO1xufTtcblxuXG4vKlxub3B0aW9uc+WPguaVsO+8mlxuXHRleHRlbmQtLSDmmK/lkKbpnIDopoHmiorlvZPliY3nlKjmiLfln7rmnKzkv6Hmga/liqDlhaXlhazlvI/vvIzljbPorqnlhazlvI/mlK/mjIFDcmVhdG9yLlVTRVJfQ09OVEVYVOS4reeahOWAvO+8jOm7mOiupOS4unRydWVcblx0dXNlcklkLS0g5b2T5YmN55m75b2V55So5oi3XG5cdHNwYWNlSWQtLSDlvZPliY3miYDlnKjlt6XkvZzljLpcbmV4dGVuZOS4unRydWXml7bvvIzlkI7nq6/pnIDopoHpop3lpJbkvKDlhaV1c2VySWTlj4pzcGFjZUlk55So5LqO5oqT5Y+WQ3JlYXRvci5VU0VSX0NPTlRFWFTlr7nlupTnmoTlgLxcbiAqL1xuXG5DcmVhdG9yLmZvcm1hdExvZ2ljRmlsdGVyc1RvRGV2ID0gZnVuY3Rpb24oZmlsdGVycywgZmlsdGVyX2xvZ2ljLCBvcHRpb25zKSB7XG4gIHZhciBmb3JtYXRfbG9naWM7XG4gIGZvcm1hdF9sb2dpYyA9IGZpbHRlcl9sb2dpYy5yZXBsYWNlKC9cXChcXHMrL2lnLCBcIihcIikucmVwbGFjZSgvXFxzK1xcKS9pZywgXCIpXCIpLnJlcGxhY2UoL1xcKC9nLCBcIltcIikucmVwbGFjZSgvXFwpL2csIFwiXVwiKS5yZXBsYWNlKC9cXHMrL2csIFwiLFwiKS5yZXBsYWNlKC8oYW5kfG9yKS9pZywgXCInJDEnXCIpO1xuICBmb3JtYXRfbG9naWMgPSBmb3JtYXRfbG9naWMucmVwbGFjZSgvKFxcZCkrL2lnLCBmdW5jdGlvbih4KSB7XG4gICAgdmFyIF9mLCBmaWVsZCwgb3B0aW9uLCBzdWJfc2VsZWN0b3IsIHZhbHVlO1xuICAgIF9mID0gZmlsdGVyc1t4IC0gMV07XG4gICAgZmllbGQgPSBfZi5maWVsZDtcbiAgICBvcHRpb24gPSBfZi5vcGVyYXRpb247XG4gICAgaWYgKE1ldGVvci5pc0NsaWVudCkge1xuICAgICAgdmFsdWUgPSBDcmVhdG9yLmV2YWx1YXRlRm9ybXVsYShfZi52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gQ3JlYXRvci5ldmFsdWF0ZUZvcm11bGEoX2YudmFsdWUsIG51bGwsIG9wdGlvbnMpO1xuICAgIH1cbiAgICBzdWJfc2VsZWN0b3IgPSBbXTtcbiAgICBpZiAoXy5pc0FycmF5KHZhbHVlKSA9PT0gdHJ1ZSkge1xuICAgICAgaWYgKG9wdGlvbiA9PT0gXCI9XCIpIHtcbiAgICAgICAgXy5lYWNoKHZhbHVlLCBmdW5jdGlvbih2KSB7XG4gICAgICAgICAgcmV0dXJuIHN1Yl9zZWxlY3Rvci5wdXNoKFtmaWVsZCwgb3B0aW9uLCB2XSwgXCJvclwiKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbiA9PT0gXCI8PlwiKSB7XG4gICAgICAgIF8uZWFjaCh2YWx1ZSwgZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiBzdWJfc2VsZWN0b3IucHVzaChbZmllbGQsIG9wdGlvbiwgdl0sIFwiYW5kXCIpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF8uZWFjaCh2YWx1ZSwgZnVuY3Rpb24odikge1xuICAgICAgICAgIHJldHVybiBzdWJfc2VsZWN0b3IucHVzaChbZmllbGQsIG9wdGlvbiwgdl0sIFwib3JcIik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHN1Yl9zZWxlY3RvcltzdWJfc2VsZWN0b3IubGVuZ3RoIC0gMV0gPT09IFwiYW5kXCIgfHwgc3ViX3NlbGVjdG9yW3N1Yl9zZWxlY3Rvci5sZW5ndGggLSAxXSA9PT0gXCJvclwiKSB7XG4gICAgICAgIHN1Yl9zZWxlY3Rvci5wb3AoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3ViX3NlbGVjdG9yID0gW2ZpZWxkLCBvcHRpb24sIHZhbHVlXTtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHN1Yl9zZWxlY3Rvcik7XG4gIH0pO1xuICBmb3JtYXRfbG9naWMgPSBcIltcIiArIGZvcm1hdF9sb2dpYyArIFwiXVwiO1xuICByZXR1cm4gQ3JlYXRvcltcImV2YWxcIl0oZm9ybWF0X2xvZ2ljKTtcbn07XG5cbkNyZWF0b3IuZ2V0UmVsYXRlZE9iamVjdHMgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKSB7XG4gIHZhciBfb2JqZWN0LCBwZXJtaXNzaW9ucywgcmVsYXRlZF9vYmplY3RfbmFtZXMsIHJlbGF0ZWRfb2JqZWN0cywgdW5yZWxhdGVkX29iamVjdHM7XG4gIGlmIChNZXRlb3IuaXNDbGllbnQpIHtcbiAgICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgICBvYmplY3RfbmFtZSA9IFNlc3Npb24uZ2V0KFwib2JqZWN0X25hbWVcIik7XG4gICAgfVxuICAgIGlmICghc3BhY2VJZCkge1xuICAgICAgc3BhY2VJZCA9IFNlc3Npb24uZ2V0KFwic3BhY2VJZFwiKTtcbiAgICB9XG4gICAgaWYgKCF1c2VySWQpIHtcbiAgICAgIHVzZXJJZCA9IE1ldGVvci51c2VySWQoKTtcbiAgICB9XG4gIH1cbiAgcmVsYXRlZF9vYmplY3RfbmFtZXMgPSBbXTtcbiAgX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKTtcbiAgaWYgKCFfb2JqZWN0KSB7XG4gICAgcmV0dXJuIHJlbGF0ZWRfb2JqZWN0X25hbWVzO1xuICB9XG4gIHJlbGF0ZWRfb2JqZWN0cyA9IENyZWF0b3IuZ2V0T2JqZWN0UmVsYXRlZHMoX29iamVjdC5fY29sbGVjdGlvbl9uYW1lKTtcbiAgcmVsYXRlZF9vYmplY3RfbmFtZXMgPSBfLnBsdWNrKHJlbGF0ZWRfb2JqZWN0cywgXCJvYmplY3RfbmFtZVwiKTtcbiAgaWYgKChyZWxhdGVkX29iamVjdF9uYW1lcyAhPSBudWxsID8gcmVsYXRlZF9vYmplY3RfbmFtZXMubGVuZ3RoIDogdm9pZCAwKSA9PT0gMCkge1xuICAgIHJldHVybiByZWxhdGVkX29iamVjdF9uYW1lcztcbiAgfVxuICBwZXJtaXNzaW9ucyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCk7XG4gIHVucmVsYXRlZF9vYmplY3RzID0gcGVybWlzc2lvbnMudW5yZWxhdGVkX29iamVjdHM7XG4gIHJlbGF0ZWRfb2JqZWN0X25hbWVzID0gXy5kaWZmZXJlbmNlKHJlbGF0ZWRfb2JqZWN0X25hbWVzLCB1bnJlbGF0ZWRfb2JqZWN0cyk7XG4gIHJldHVybiBfLmZpbHRlcihyZWxhdGVkX29iamVjdHMsIGZ1bmN0aW9uKHJlbGF0ZWRfb2JqZWN0KSB7XG4gICAgdmFyIGFsbG93UmVhZCwgaXNBY3RpdmUsIHJlZiwgcmVsYXRlZF9vYmplY3RfbmFtZTtcbiAgICByZWxhdGVkX29iamVjdF9uYW1lID0gcmVsYXRlZF9vYmplY3Qub2JqZWN0X25hbWU7XG4gICAgaXNBY3RpdmUgPSByZWxhdGVkX29iamVjdF9uYW1lcy5pbmRleE9mKHJlbGF0ZWRfb2JqZWN0X25hbWUpID4gLTE7XG4gICAgYWxsb3dSZWFkID0gKHJlZiA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMocmVsYXRlZF9vYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKSkgIT0gbnVsbCA/IHJlZi5hbGxvd1JlYWQgOiB2b2lkIDA7XG4gICAgaWYgKHJlbGF0ZWRfb2JqZWN0X25hbWUgPT09IFwiY21zX2ZpbGVzXCIpIHtcbiAgICAgIGFsbG93UmVhZCA9IGFsbG93UmVhZCAmJiBwZXJtaXNzaW9ucy5hbGxvd1JlYWRGaWxlcztcbiAgICB9XG4gICAgcmV0dXJuIGlzQWN0aXZlICYmIGFsbG93UmVhZDtcbiAgfSk7XG59O1xuXG5DcmVhdG9yLmdldFJlbGF0ZWRPYmplY3ROYW1lcyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpIHtcbiAgdmFyIHJlbGF0ZWRfb2JqZWN0cztcbiAgcmVsYXRlZF9vYmplY3RzID0gQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0cyhvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKTtcbiAgcmV0dXJuIF8ucGx1Y2socmVsYXRlZF9vYmplY3RzLCBcIm9iamVjdF9uYW1lXCIpO1xufTtcblxuQ3JlYXRvci5nZXRSZWxhdGVkT2JqZWN0TGlzdEFjdGlvbnMgPSBmdW5jdGlvbihyZWxhdGVkT2JqZWN0TmFtZSwgc3BhY2VJZCwgdXNlcklkKSB7XG4gIHZhciBhY3Rpb25zO1xuICBhY3Rpb25zID0gQ3JlYXRvci5nZXRBY3Rpb25zKHJlbGF0ZWRPYmplY3ROYW1lLCBzcGFjZUlkLCB1c2VySWQpO1xuICBhY3Rpb25zID0gXy5maWx0ZXIoYWN0aW9ucywgZnVuY3Rpb24oYWN0aW9uKSB7XG4gICAgaWYgKGFjdGlvbi5uYW1lID09PSBcInN0YW5kYXJkX2ZvbGxvd1wiKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhY3Rpb24ubmFtZSA9PT0gXCJzdGFuZGFyZF9xdWVyeVwiKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhY3Rpb24ub24gPT09IFwibGlzdFwiKSB7XG4gICAgICBpZiAodHlwZW9mIGFjdGlvbi52aXNpYmxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi52aXNpYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYWN0aW9uLnZpc2libGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gYWN0aW9ucztcbn07XG5cbkNyZWF0b3IuZ2V0QWN0aW9ucyA9IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBzcGFjZUlkLCB1c2VySWQpIHtcbiAgdmFyIGFjdGlvbnMsIGRpc2FibGVkX2FjdGlvbnMsIG9iaiwgcGVybWlzc2lvbnMsIHJlZiwgcmVmMTtcbiAgaWYgKE1ldGVvci5pc0NsaWVudCkge1xuICAgIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICAgIG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKTtcbiAgICB9XG4gICAgaWYgKCFzcGFjZUlkKSB7XG4gICAgICBzcGFjZUlkID0gU2Vzc2lvbi5nZXQoXCJzcGFjZUlkXCIpO1xuICAgIH1cbiAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgdXNlcklkID0gTWV0ZW9yLnVzZXJJZCgpO1xuICAgIH1cbiAgfVxuICBvYmogPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk7XG4gIGlmICghb2JqKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHBlcm1pc3Npb25zID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKTtcbiAgZGlzYWJsZWRfYWN0aW9ucyA9IHBlcm1pc3Npb25zLmRpc2FibGVkX2FjdGlvbnM7XG4gIGFjdGlvbnMgPSBfLnNvcnRCeShfLnZhbHVlcyhvYmouYWN0aW9ucyksICdzb3J0Jyk7XG4gIGlmIChfLmhhcyhvYmosICdhbGxvd19jdXN0b21BY3Rpb25zJykpIHtcbiAgICBhY3Rpb25zID0gXy5maWx0ZXIoYWN0aW9ucywgZnVuY3Rpb24oYWN0aW9uKSB7XG4gICAgICByZXR1cm4gXy5pbmNsdWRlKG9iai5hbGxvd19jdXN0b21BY3Rpb25zLCBhY3Rpb24ubmFtZSkgfHwgXy5pbmNsdWRlKF8ua2V5cyhDcmVhdG9yLmdldE9iamVjdCgnYmFzZScpLmFjdGlvbnMpIHx8IHt9LCBhY3Rpb24ubmFtZSk7XG4gICAgfSk7XG4gIH1cbiAgaWYgKF8uaGFzKG9iaiwgJ2V4Y2x1ZGVfYWN0aW9ucycpKSB7XG4gICAgYWN0aW9ucyA9IF8uZmlsdGVyKGFjdGlvbnMsIGZ1bmN0aW9uKGFjdGlvbikge1xuICAgICAgcmV0dXJuICFfLmluY2x1ZGUob2JqLmV4Y2x1ZGVfYWN0aW9ucywgYWN0aW9uLm5hbWUpO1xuICAgIH0pO1xuICB9XG4gIF8uZWFjaChhY3Rpb25zLCBmdW5jdGlvbihhY3Rpb24pIHtcbiAgICBpZiAoU3RlZWRvcy5pc01vYmlsZSgpICYmIFtcInJlY29yZFwiLCBcInJlY29yZF9vbmx5XCJdLmluZGV4T2YoYWN0aW9uLm9uKSA+IC0xICYmIGFjdGlvbi5uYW1lICE9PSAnc3RhbmRhcmRfZWRpdCcpIHtcbiAgICAgIGlmIChhY3Rpb24ub24gPT09IFwicmVjb3JkX29ubHlcIikge1xuICAgICAgICByZXR1cm4gYWN0aW9uLm9uID0gJ3JlY29yZF9vbmx5X21vcmUnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi5vbiA9ICdyZWNvcmRfbW9yZSc7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgaWYgKFN0ZWVkb3MuaXNNb2JpbGUoKSAmJiBbXCJjbXNfZmlsZXNcIiwgXCJjZnMuZmlsZXMuZmlsZXJlY29yZFwiXS5pbmRleE9mKG9iamVjdF9uYW1lKSA+IC0xKSB7XG4gICAgaWYgKChyZWYgPSBhY3Rpb25zLmZpbmQoZnVuY3Rpb24obikge1xuICAgICAgcmV0dXJuIG4ubmFtZSA9PT0gXCJzdGFuZGFyZF9lZGl0XCI7XG4gICAgfSkpICE9IG51bGwpIHtcbiAgICAgIHJlZi5vbiA9IFwicmVjb3JkX21vcmVcIjtcbiAgICB9XG4gICAgaWYgKChyZWYxID0gYWN0aW9ucy5maW5kKGZ1bmN0aW9uKG4pIHtcbiAgICAgIHJldHVybiBuLm5hbWUgPT09IFwiZG93bmxvYWRcIjtcbiAgICB9KSkgIT0gbnVsbCkge1xuICAgICAgcmVmMS5vbiA9IFwicmVjb3JkXCI7XG4gICAgfVxuICB9XG4gIGFjdGlvbnMgPSBfLmZpbHRlcihhY3Rpb25zLCBmdW5jdGlvbihhY3Rpb24pIHtcbiAgICByZXR1cm4gXy5pbmRleE9mKGRpc2FibGVkX2FjdGlvbnMsIGFjdGlvbi5uYW1lKSA8IDA7XG4gIH0pO1xuICByZXR1cm4gYWN0aW9ucztcbn07XG5cbi/ov5Tlm57lvZPliY3nlKjmiLfmnInmnYPpmZDorr/pl67nmoTmiYDmnIlsaXN0X3ZpZXfvvIzljIXmi6zliIbkuqvnmoTvvIznlKjmiLfoh6rlrprkuYnpnZ7liIbkuqvnmoTvvIjpmaTpnZ5vd25lcuWPmOS6hu+8ie+8jOS7peWPium7mOiupOeahOWFtuS7luinhuWbvuazqOaEj0NyZWF0b3IuZ2V0UGVybWlzc2lvbnPlh73mlbDkuK3mmK/kuI3kvJrmnInnlKjmiLfoh6rlrprkuYnpnZ7liIbkuqvnmoTop4blm77nmoTvvIzmiYDku6VDcmVhdG9yLmdldFBlcm1pc3Npb25z5Ye95pWw5Lit5ou/5Yiw55qE57uT5p6c5LiN5YWo77yM5bm25LiN5piv5b2T5YmN55So5oi36IO955yL5Yiw5omA5pyJ6KeG5Zu+LztcblxuQ3JlYXRvci5nZXRMaXN0Vmlld3MgPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKSB7XG4gIHZhciBkaXNhYmxlZF9saXN0X3ZpZXdzLCBpc01vYmlsZSwgbGlzdFZpZXdzLCBsaXN0X3ZpZXdzLCBvYmplY3QsIHJlZjtcbiAgaWYgKE1ldGVvci5pc0NsaWVudCkge1xuICAgIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICAgIG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKTtcbiAgICB9XG4gICAgaWYgKCFzcGFjZUlkKSB7XG4gICAgICBzcGFjZUlkID0gU2Vzc2lvbi5nZXQoXCJzcGFjZUlkXCIpO1xuICAgIH1cbiAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgdXNlcklkID0gTWV0ZW9yLnVzZXJJZCgpO1xuICAgIH1cbiAgfVxuICBpZiAoIW9iamVjdF9uYW1lKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIG9iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KG9iamVjdF9uYW1lKTtcbiAgaWYgKCFvYmplY3QpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZGlzYWJsZWRfbGlzdF92aWV3cyA9ICgocmVmID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKSkgIT0gbnVsbCA/IHJlZi5kaXNhYmxlZF9saXN0X3ZpZXdzIDogdm9pZCAwKSB8fCBbXTtcbiAgbGlzdF92aWV3cyA9IFtdO1xuICBpc01vYmlsZSA9IFN0ZWVkb3MuaXNNb2JpbGUoKTtcbiAgXy5lYWNoKG9iamVjdC5saXN0X3ZpZXdzLCBmdW5jdGlvbihpdGVtLCBpdGVtX25hbWUpIHtcbiAgICByZXR1cm4gaXRlbS5uYW1lID0gaXRlbV9uYW1lO1xuICB9KTtcbiAgbGlzdFZpZXdzID0gXy5zb3J0QnkoXy52YWx1ZXMob2JqZWN0Lmxpc3Rfdmlld3MpLCAnc29ydF9ubycpO1xuICBfLmVhY2gobGlzdFZpZXdzLCBmdW5jdGlvbihpdGVtKSB7XG4gICAgdmFyIGlzRGlzYWJsZWQ7XG4gICAgaWYgKGlzTW9iaWxlICYmIGl0ZW0udHlwZSA9PT0gXCJjYWxlbmRhclwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpdGVtLm5hbWUgIT09IFwiZGVmYXVsdFwiKSB7XG4gICAgICBpc0Rpc2FibGVkID0gXy5pbmRleE9mKGRpc2FibGVkX2xpc3Rfdmlld3MsIGl0ZW0ubmFtZSkgPiAtMSB8fCAoaXRlbS5faWQgJiYgXy5pbmRleE9mKGRpc2FibGVkX2xpc3Rfdmlld3MsIGl0ZW0uX2lkKSA+IC0xKTtcbiAgICAgIGlmICghaXNEaXNhYmxlZCB8fCBpdGVtLm93bmVyID09PSB1c2VySWQpIHtcbiAgICAgICAgcmV0dXJuIGxpc3Rfdmlld3MucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gbGlzdF92aWV3cztcbn07XG5cbkNyZWF0b3IuZ2V0RmllbGRzID0gZnVuY3Rpb24ob2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCkge1xuICB2YXIgZmllbGRzTmFtZSwgcmVmLCB1bnJlYWRhYmxlX2ZpZWxkcztcbiAgaWYgKE1ldGVvci5pc0NsaWVudCkge1xuICAgIGlmICghb2JqZWN0X25hbWUpIHtcbiAgICAgIG9iamVjdF9uYW1lID0gU2Vzc2lvbi5nZXQoXCJvYmplY3RfbmFtZVwiKTtcbiAgICB9XG4gICAgaWYgKCFzcGFjZUlkKSB7XG4gICAgICBzcGFjZUlkID0gU2Vzc2lvbi5nZXQoXCJzcGFjZUlkXCIpO1xuICAgIH1cbiAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgdXNlcklkID0gTWV0ZW9yLnVzZXJJZCgpO1xuICAgIH1cbiAgfVxuICBmaWVsZHNOYW1lID0gQ3JlYXRvci5nZXRPYmplY3RGaWVsZHNOYW1lKG9iamVjdF9uYW1lKTtcbiAgdW5yZWFkYWJsZV9maWVsZHMgPSAocmVmID0gQ3JlYXRvci5nZXRQZXJtaXNzaW9ucyhvYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKSkgIT0gbnVsbCA/IHJlZi51bnJlYWRhYmxlX2ZpZWxkcyA6IHZvaWQgMDtcbiAgcmV0dXJuIF8uZGlmZmVyZW5jZShmaWVsZHNOYW1lLCB1bnJlYWRhYmxlX2ZpZWxkcyk7XG59O1xuXG5DcmVhdG9yLmlzbG9hZGluZyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gIUNyZWF0b3IuYm9vdHN0cmFwTG9hZGVkLmdldCgpO1xufTtcblxuQ3JlYXRvci5jb252ZXJ0U3BlY2lhbENoYXJhY3RlciA9IGZ1bmN0aW9uKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbXFxeXFwkXFwoXFwpXFwqXFwrXFw/XFwuXFxcXFxcfFxcW1xcXVxce1xcfV0pL2csIFwiXFxcXCQxXCIpO1xufTtcblxuQ3JlYXRvci5nZXREaXNhYmxlZEZpZWxkcyA9IGZ1bmN0aW9uKHNjaGVtYSkge1xuICB2YXIgZmllbGRzO1xuICBmaWVsZHMgPSBfLm1hcChzY2hlbWEsIGZ1bmN0aW9uKGZpZWxkLCBmaWVsZE5hbWUpIHtcbiAgICByZXR1cm4gZmllbGQuYXV0b2Zvcm0gJiYgZmllbGQuYXV0b2Zvcm0uZGlzYWJsZWQgJiYgIWZpZWxkLmF1dG9mb3JtLm9taXQgJiYgZmllbGROYW1lO1xuICB9KTtcbiAgZmllbGRzID0gXy5jb21wYWN0KGZpZWxkcyk7XG4gIHJldHVybiBmaWVsZHM7XG59O1xuXG5DcmVhdG9yLmdldEhpZGRlbkZpZWxkcyA9IGZ1bmN0aW9uKHNjaGVtYSkge1xuICB2YXIgZmllbGRzO1xuICBmaWVsZHMgPSBfLm1hcChzY2hlbWEsIGZ1bmN0aW9uKGZpZWxkLCBmaWVsZE5hbWUpIHtcbiAgICByZXR1cm4gZmllbGQuYXV0b2Zvcm0gJiYgZmllbGQuYXV0b2Zvcm0udHlwZSA9PT0gXCJoaWRkZW5cIiAmJiAhZmllbGQuYXV0b2Zvcm0ub21pdCAmJiBmaWVsZE5hbWU7XG4gIH0pO1xuICBmaWVsZHMgPSBfLmNvbXBhY3QoZmllbGRzKTtcbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbkNyZWF0b3IuZ2V0RmllbGRzV2l0aE5vR3JvdXAgPSBmdW5jdGlvbihzY2hlbWEpIHtcbiAgdmFyIGZpZWxkcztcbiAgZmllbGRzID0gXy5tYXAoc2NoZW1hLCBmdW5jdGlvbihmaWVsZCwgZmllbGROYW1lKSB7XG4gICAgcmV0dXJuICghZmllbGQuYXV0b2Zvcm0gfHwgIWZpZWxkLmF1dG9mb3JtLmdyb3VwIHx8IGZpZWxkLmF1dG9mb3JtLmdyb3VwID09PSBcIi1cIikgJiYgKCFmaWVsZC5hdXRvZm9ybSB8fCBmaWVsZC5hdXRvZm9ybS50eXBlICE9PSBcImhpZGRlblwiKSAmJiBmaWVsZE5hbWU7XG4gIH0pO1xuICBmaWVsZHMgPSBfLmNvbXBhY3QoZmllbGRzKTtcbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbkNyZWF0b3IuZ2V0U29ydGVkRmllbGRHcm91cE5hbWVzID0gZnVuY3Rpb24oc2NoZW1hKSB7XG4gIHZhciBuYW1lcztcbiAgbmFtZXMgPSBfLm1hcChzY2hlbWEsIGZ1bmN0aW9uKGZpZWxkKSB7XG4gICAgcmV0dXJuIGZpZWxkLmF1dG9mb3JtICYmIGZpZWxkLmF1dG9mb3JtLmdyb3VwICE9PSBcIi1cIiAmJiBmaWVsZC5hdXRvZm9ybS5ncm91cDtcbiAgfSk7XG4gIG5hbWVzID0gXy5jb21wYWN0KG5hbWVzKTtcbiAgbmFtZXMgPSBfLnVuaXF1ZShuYW1lcyk7XG4gIHJldHVybiBuYW1lcztcbn07XG5cbkNyZWF0b3IuZ2V0RmllbGRzRm9yR3JvdXAgPSBmdW5jdGlvbihzY2hlbWEsIGdyb3VwTmFtZSkge1xuICB2YXIgZmllbGRzO1xuICBmaWVsZHMgPSBfLm1hcChzY2hlbWEsIGZ1bmN0aW9uKGZpZWxkLCBmaWVsZE5hbWUpIHtcbiAgICByZXR1cm4gZmllbGQuYXV0b2Zvcm0gJiYgZmllbGQuYXV0b2Zvcm0uZ3JvdXAgPT09IGdyb3VwTmFtZSAmJiBmaWVsZC5hdXRvZm9ybS50eXBlICE9PSBcImhpZGRlblwiICYmIGZpZWxkTmFtZTtcbiAgfSk7XG4gIGZpZWxkcyA9IF8uY29tcGFjdChmaWVsZHMpO1xuICByZXR1cm4gZmllbGRzO1xufTtcblxuQ3JlYXRvci5nZXRTeXN0ZW1CYXNlRmllbGRzID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBbXCJjcmVhdGVkXCIsIFwiY3JlYXRlZF9ieVwiLCBcIm1vZGlmaWVkXCIsIFwibW9kaWZpZWRfYnlcIl07XG59O1xuXG5DcmVhdG9yLmdldEZpZWxkc1dpdGhvdXRTeXN0ZW1CYXNlID0gZnVuY3Rpb24oa2V5cykge1xuICByZXR1cm4gXy5kaWZmZXJlbmNlKGtleXMsIENyZWF0b3IuZ2V0U3lzdGVtQmFzZUZpZWxkcygpKTtcbn07XG5cbkNyZWF0b3IuZ2V0RmllbGRzV2l0aG91dE9taXQgPSBmdW5jdGlvbihzY2hlbWEsIGtleXMpIHtcbiAga2V5cyA9IF8ubWFwKGtleXMsIGZ1bmN0aW9uKGtleSkge1xuICAgIHZhciBmaWVsZCwgcmVmO1xuICAgIGZpZWxkID0gXy5waWNrKHNjaGVtYSwga2V5KTtcbiAgICBpZiAoKHJlZiA9IGZpZWxkW2tleV0uYXV0b2Zvcm0pICE9IG51bGwgPyByZWYub21pdCA6IHZvaWQgMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH1cbiAgfSk7XG4gIGtleXMgPSBfLmNvbXBhY3Qoa2V5cyk7XG4gIHJldHVybiBrZXlzO1xufTtcblxuQ3JlYXRvci5nZXRGaWVsZHNJbkZpcnN0TGV2ZWwgPSBmdW5jdGlvbihmaXJzdExldmVsS2V5cywga2V5cykge1xuICBrZXlzID0gXy5tYXAoa2V5cywgZnVuY3Rpb24oa2V5KSB7XG4gICAgaWYgKF8uaW5kZXhPZihmaXJzdExldmVsS2V5cywga2V5KSA+IC0xKSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9KTtcbiAga2V5cyA9IF8uY29tcGFjdChrZXlzKTtcbiAgcmV0dXJuIGtleXM7XG59O1xuXG5DcmVhdG9yLmdldEZpZWxkc0ZvclJlb3JkZXIgPSBmdW5jdGlvbihzY2hlbWEsIGtleXMsIGlzU2luZ2xlKSB7XG4gIHZhciBfa2V5cywgY2hpbGRLZXlzLCBmaWVsZHMsIGksIGlzX3dpZGVfMSwgaXNfd2lkZV8yLCBzY18xLCBzY18yO1xuICBmaWVsZHMgPSBbXTtcbiAgaSA9IDA7XG4gIF9rZXlzID0gXy5maWx0ZXIoa2V5cywgZnVuY3Rpb24oa2V5KSB7XG4gICAgcmV0dXJuICFrZXkuZW5kc1dpdGgoJ19lbmRMaW5lJyk7XG4gIH0pO1xuICB3aGlsZSAoaSA8IF9rZXlzLmxlbmd0aCkge1xuICAgIHNjXzEgPSBfLnBpY2soc2NoZW1hLCBfa2V5c1tpXSk7XG4gICAgc2NfMiA9IF8ucGljayhzY2hlbWEsIF9rZXlzW2kgKyAxXSk7XG4gICAgaXNfd2lkZV8xID0gZmFsc2U7XG4gICAgaXNfd2lkZV8yID0gZmFsc2U7XG4gICAgXy5lYWNoKHNjXzEsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICB2YXIgcmVmLCByZWYxO1xuICAgICAgaWYgKCgocmVmID0gdmFsdWUuYXV0b2Zvcm0pICE9IG51bGwgPyByZWYuaXNfd2lkZSA6IHZvaWQgMCkgfHwgKChyZWYxID0gdmFsdWUuYXV0b2Zvcm0pICE9IG51bGwgPyByZWYxLnR5cGUgOiB2b2lkIDApID09PSBcInRhYmxlXCIpIHtcbiAgICAgICAgcmV0dXJuIGlzX3dpZGVfMSA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXy5lYWNoKHNjXzIsIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICB2YXIgcmVmLCByZWYxO1xuICAgICAgaWYgKCgocmVmID0gdmFsdWUuYXV0b2Zvcm0pICE9IG51bGwgPyByZWYuaXNfd2lkZSA6IHZvaWQgMCkgfHwgKChyZWYxID0gdmFsdWUuYXV0b2Zvcm0pICE9IG51bGwgPyByZWYxLnR5cGUgOiB2b2lkIDApID09PSBcInRhYmxlXCIpIHtcbiAgICAgICAgcmV0dXJuIGlzX3dpZGVfMiA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKFN0ZWVkb3MuaXNNb2JpbGUoKSkge1xuICAgICAgaXNfd2lkZV8xID0gdHJ1ZTtcbiAgICAgIGlzX3dpZGVfMiA9IHRydWU7XG4gICAgfVxuICAgIGlmIChpc1NpbmdsZSkge1xuICAgICAgZmllbGRzLnB1c2goX2tleXMuc2xpY2UoaSwgaSArIDEpKTtcbiAgICAgIGkgKz0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGlzX3dpZGVfMSkge1xuICAgICAgICBmaWVsZHMucHVzaChfa2V5cy5zbGljZShpLCBpICsgMSkpO1xuICAgICAgICBpICs9IDE7XG4gICAgICB9IGVsc2UgaWYgKCFpc193aWRlXzEgJiYgaXNfd2lkZV8yKSB7XG4gICAgICAgIGNoaWxkS2V5cyA9IF9rZXlzLnNsaWNlKGksIGkgKyAxKTtcbiAgICAgICAgY2hpbGRLZXlzLnB1c2godm9pZCAwKTtcbiAgICAgICAgZmllbGRzLnB1c2goY2hpbGRLZXlzKTtcbiAgICAgICAgaSArPSAxO1xuICAgICAgfSBlbHNlIGlmICghaXNfd2lkZV8xICYmICFpc193aWRlXzIpIHtcbiAgICAgICAgY2hpbGRLZXlzID0gX2tleXMuc2xpY2UoaSwgaSArIDEpO1xuICAgICAgICBpZiAoX2tleXNbaSArIDFdKSB7XG4gICAgICAgICAgY2hpbGRLZXlzLnB1c2goX2tleXNbaSArIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGlsZEtleXMucHVzaCh2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkcy5wdXNoKGNoaWxkS2V5cyk7XG4gICAgICAgIGkgKz0gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbkNyZWF0b3IuaXNGaWx0ZXJWYWx1ZUVtcHR5ID0gZnVuY3Rpb24odikge1xuICByZXR1cm4gdHlwZW9mIHYgPT09IFwidW5kZWZpbmVkXCIgfHwgdiA9PT0gbnVsbCB8fCBOdW1iZXIuaXNOYU4odikgfHwgdi5sZW5ndGggPT09IDA7XG59O1xuXG5DcmVhdG9yLmdldEZpZWxkRGF0YVR5cGUgPSBmdW5jdGlvbihvYmplY3RGaWVsZHMsIGtleSkge1xuICB2YXIgcmVmLCByZXN1bHQ7XG4gIGlmIChvYmplY3RGaWVsZHMgJiYga2V5KSB7XG4gICAgcmVzdWx0ID0gKHJlZiA9IG9iamVjdEZpZWxkc1trZXldKSAhPSBudWxsID8gcmVmLnR5cGUgOiB2b2lkIDA7XG4gICAgaWYgKFtcImZvcm11bGFcIiwgXCJzdW1tYXJ5XCJdLmluZGV4T2YocmVzdWx0KSA+IC0xKSB7XG4gICAgICByZXN1bHQgPSBvYmplY3RGaWVsZHNba2V5XS5kYXRhX3R5cGU7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFwidGV4dFwiO1xuICB9XG59O1xuXG5pZiAoTWV0ZW9yLmlzU2VydmVyKSB7XG4gIENyZWF0b3IuZ2V0QWxsUmVsYXRlZE9iamVjdHMgPSBmdW5jdGlvbihvYmplY3RfbmFtZSkge1xuICAgIHZhciByZWxhdGVkX29iamVjdF9uYW1lcztcbiAgICByZWxhdGVkX29iamVjdF9uYW1lcyA9IFtdO1xuICAgIF8uZWFjaChDcmVhdG9yLk9iamVjdHMsIGZ1bmN0aW9uKHJlbGF0ZWRfb2JqZWN0LCByZWxhdGVkX29iamVjdF9uYW1lKSB7XG4gICAgICByZXR1cm4gXy5lYWNoKHJlbGF0ZWRfb2JqZWN0LmZpZWxkcywgZnVuY3Rpb24ocmVsYXRlZF9maWVsZCwgcmVsYXRlZF9maWVsZF9uYW1lKSB7XG4gICAgICAgIGlmIChyZWxhdGVkX2ZpZWxkLnR5cGUgPT09IFwibWFzdGVyX2RldGFpbFwiICYmIHJlbGF0ZWRfZmllbGQucmVmZXJlbmNlX3RvICYmIHJlbGF0ZWRfZmllbGQucmVmZXJlbmNlX3RvID09PSBvYmplY3RfbmFtZSkge1xuICAgICAgICAgIHJldHVybiByZWxhdGVkX29iamVjdF9uYW1lcy5wdXNoKHJlbGF0ZWRfb2JqZWN0X25hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBpZiAoQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpLmVuYWJsZV9maWxlcykge1xuICAgICAgcmVsYXRlZF9vYmplY3RfbmFtZXMucHVzaChcImNtc19maWxlc1wiKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlbGF0ZWRfb2JqZWN0X25hbWVzO1xuICB9O1xufVxuXG5pZiAoTWV0ZW9yLmlzU2VydmVyKSB7XG4gIFN0ZWVkb3MuZm9ybWF0SW5kZXggPSBmdW5jdGlvbihhcnJheSkge1xuICAgIHZhciBpbmRleE5hbWUsIGlzZG9jdW1lbnREQiwgb2JqZWN0LCByZWYsIHJlZjEsIHJlZjI7XG4gICAgb2JqZWN0ID0ge1xuICAgICAgYmFja2dyb3VuZDogdHJ1ZVxuICAgIH07XG4gICAgaXNkb2N1bWVudERCID0gKChyZWYgPSBNZXRlb3Iuc2V0dGluZ3MpICE9IG51bGwgPyAocmVmMSA9IHJlZi5kYXRhc291cmNlcykgIT0gbnVsbCA/IChyZWYyID0gcmVmMVtcImRlZmF1bHRcIl0pICE9IG51bGwgPyByZWYyLmRvY3VtZW50REIgOiB2b2lkIDAgOiB2b2lkIDAgOiB2b2lkIDApIHx8IGZhbHNlO1xuICAgIGlmIChpc2RvY3VtZW50REIpIHtcbiAgICAgIGlmIChhcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGluZGV4TmFtZSA9IGFycmF5LmpvaW4oXCIuXCIpO1xuICAgICAgICBvYmplY3QubmFtZSA9IGluZGV4TmFtZTtcbiAgICAgICAgaWYgKGluZGV4TmFtZS5sZW5ndGggPiA1Mikge1xuICAgICAgICAgIG9iamVjdC5uYW1lID0gaW5kZXhOYW1lLnN1YnN0cmluZygwLCA1Mik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfTtcbn1cbiIsIkNyZWF0b3IuYXBwc0J5TmFtZSA9IHt9XG5cbiIsIk1ldGVvci5tZXRob2RzXG5cdFwib2JqZWN0X3JlY2VudF92aWV3ZWRcIjogKG9iamVjdF9uYW1lLCByZWNvcmRfaWQsIHNwYWNlX2lkKS0+XG5cdFx0aWYgIXRoaXMudXNlcklkXG5cdFx0XHRyZXR1cm4gbnVsbFxuXG5cdFx0aWYgb2JqZWN0X25hbWUgPT0gXCJvYmplY3RfcmVjZW50X3ZpZXdlZFwiXG5cdFx0XHRyZXR1cm5cblx0XHRpZiBvYmplY3RfbmFtZSBhbmQgcmVjb3JkX2lkXG5cdFx0XHRpZiAhc3BhY2VfaWRcblx0XHRcdFx0ZG9jID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdF9uYW1lKS5maW5kT25lKHtfaWQ6IHJlY29yZF9pZH0sIHtmaWVsZHM6IHtzcGFjZTogMX19KVxuXHRcdFx0XHRzcGFjZV9pZCA9IGRvYz8uc3BhY2VcblxuXHRcdFx0Y29sbGVjdGlvbl9yZWNlbnRfdmlld2VkID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKFwib2JqZWN0X3JlY2VudF92aWV3ZWRcIilcblx0XHRcdGZpbHRlcnMgPSB7IG93bmVyOiB0aGlzLnVzZXJJZCwgc3BhY2U6IHNwYWNlX2lkLCAncmVjb3JkLm8nOiBvYmplY3RfbmFtZSwgJ3JlY29yZC5pZHMnOiBbcmVjb3JkX2lkXX1cblx0XHRcdGN1cnJlbnRfcmVjZW50X3ZpZXdlZCA9IGNvbGxlY3Rpb25fcmVjZW50X3ZpZXdlZC5maW5kT25lKGZpbHRlcnMpXG5cdFx0XHRpZiBjdXJyZW50X3JlY2VudF92aWV3ZWRcblx0XHRcdFx0Y29sbGVjdGlvbl9yZWNlbnRfdmlld2VkLnVwZGF0ZShcblx0XHRcdFx0XHRjdXJyZW50X3JlY2VudF92aWV3ZWQuX2lkLFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdCRpbmM6IHtcblx0XHRcdFx0XHRcdFx0Y291bnQ6IDFcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHQkc2V0OiB7XG5cdFx0XHRcdFx0XHRcdG1vZGlmaWVkOiBuZXcgRGF0ZSgpXG5cdFx0XHRcdFx0XHRcdG1vZGlmaWVkX2J5OiB0aGlzLnVzZXJJZFxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0KVxuXHRcdFx0ZWxzZVxuXHRcdFx0XHRjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQuaW5zZXJ0KFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdF9pZDogY29sbGVjdGlvbl9yZWNlbnRfdmlld2VkLl9tYWtlTmV3SUQoKVxuXHRcdFx0XHRcdFx0b3duZXI6IHRoaXMudXNlcklkXG5cdFx0XHRcdFx0XHRzcGFjZTogc3BhY2VfaWRcblx0XHRcdFx0XHRcdHJlY29yZDoge286IG9iamVjdF9uYW1lLCBpZHM6IFtyZWNvcmRfaWRdfVxuXHRcdFx0XHRcdFx0Y291bnQ6IDFcblx0XHRcdFx0XHRcdGNyZWF0ZWQ6IG5ldyBEYXRlKClcblx0XHRcdFx0XHRcdGNyZWF0ZWRfYnk6IHRoaXMudXNlcklkXG5cdFx0XHRcdFx0XHRtb2RpZmllZDogbmV3IERhdGUoKVxuXHRcdFx0XHRcdFx0bW9kaWZpZWRfYnk6IHRoaXMudXNlcklkXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR2YWxpZGF0ZTogZmFsc2Vcblx0XHRcdFx0XHR9XG5cdFx0XHRcdClcblx0XHRcdHJldHVybiIsIk1ldGVvci5tZXRob2RzKHtcbiAgXCJvYmplY3RfcmVjZW50X3ZpZXdlZFwiOiBmdW5jdGlvbihvYmplY3RfbmFtZSwgcmVjb3JkX2lkLCBzcGFjZV9pZCkge1xuICAgIHZhciBjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQsIGN1cnJlbnRfcmVjZW50X3ZpZXdlZCwgZG9jLCBmaWx0ZXJzO1xuICAgIGlmICghdGhpcy51c2VySWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAob2JqZWN0X25hbWUgPT09IFwib2JqZWN0X3JlY2VudF92aWV3ZWRcIikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAob2JqZWN0X25hbWUgJiYgcmVjb3JkX2lkKSB7XG4gICAgICBpZiAoIXNwYWNlX2lkKSB7XG4gICAgICAgIGRvYyA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmplY3RfbmFtZSkuZmluZE9uZSh7XG4gICAgICAgICAgX2lkOiByZWNvcmRfaWRcbiAgICAgICAgfSwge1xuICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgc3BhY2U6IDFcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzcGFjZV9pZCA9IGRvYyAhPSBudWxsID8gZG9jLnNwYWNlIDogdm9pZCAwO1xuICAgICAgfVxuICAgICAgY29sbGVjdGlvbl9yZWNlbnRfdmlld2VkID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKFwib2JqZWN0X3JlY2VudF92aWV3ZWRcIik7XG4gICAgICBmaWx0ZXJzID0ge1xuICAgICAgICBvd25lcjogdGhpcy51c2VySWQsXG4gICAgICAgIHNwYWNlOiBzcGFjZV9pZCxcbiAgICAgICAgJ3JlY29yZC5vJzogb2JqZWN0X25hbWUsXG4gICAgICAgICdyZWNvcmQuaWRzJzogW3JlY29yZF9pZF1cbiAgICAgIH07XG4gICAgICBjdXJyZW50X3JlY2VudF92aWV3ZWQgPSBjb2xsZWN0aW9uX3JlY2VudF92aWV3ZWQuZmluZE9uZShmaWx0ZXJzKTtcbiAgICAgIGlmIChjdXJyZW50X3JlY2VudF92aWV3ZWQpIHtcbiAgICAgICAgY29sbGVjdGlvbl9yZWNlbnRfdmlld2VkLnVwZGF0ZShjdXJyZW50X3JlY2VudF92aWV3ZWQuX2lkLCB7XG4gICAgICAgICAgJGluYzoge1xuICAgICAgICAgICAgY291bnQ6IDFcbiAgICAgICAgICB9LFxuICAgICAgICAgICRzZXQ6IHtcbiAgICAgICAgICAgIG1vZGlmaWVkOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgbW9kaWZpZWRfYnk6IHRoaXMudXNlcklkXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbGxlY3Rpb25fcmVjZW50X3ZpZXdlZC5pbnNlcnQoe1xuICAgICAgICAgIF9pZDogY29sbGVjdGlvbl9yZWNlbnRfdmlld2VkLl9tYWtlTmV3SUQoKSxcbiAgICAgICAgICBvd25lcjogdGhpcy51c2VySWQsXG4gICAgICAgICAgc3BhY2U6IHNwYWNlX2lkLFxuICAgICAgICAgIHJlY29yZDoge1xuICAgICAgICAgICAgbzogb2JqZWN0X25hbWUsXG4gICAgICAgICAgICBpZHM6IFtyZWNvcmRfaWRdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICBjcmVhdGVkOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIGNyZWF0ZWRfYnk6IHRoaXMudXNlcklkLFxuICAgICAgICAgIG1vZGlmaWVkOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIG1vZGlmaWVkX2J5OiB0aGlzLnVzZXJJZFxuICAgICAgICB9LCB7XG4gICAgICAgICAgdmFsaWRhdGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG4iLCJyZWNlbnRfYWdncmVnYXRlID0gKGNyZWF0ZWRfYnksIHNwYWNlSWQsIF9yZWNvcmRzLCBjYWxsYmFjayktPlxuXHRDcmVhdG9yLkNvbGxlY3Rpb25zLm9iamVjdF9yZWNlbnRfdmlld2VkLnJhd0NvbGxlY3Rpb24oKS5hZ2dyZWdhdGUoW1xuXHRcdHskbWF0Y2g6IHtjcmVhdGVkX2J5OiBjcmVhdGVkX2J5LCBzcGFjZTogc3BhY2VJZH19LFxuXHRcdHskZ3JvdXA6IHtfaWQ6IHtvYmplY3RfbmFtZTogXCIkcmVjb3JkLm9cIiwgcmVjb3JkX2lkOiBcIiRyZWNvcmQuaWRzXCIsIHNwYWNlOiBcIiRzcGFjZVwifSwgbWF4Q3JlYXRlZDogeyRtYXg6IFwiJGNyZWF0ZWRcIn19fSxcblx0XHR7JHNvcnQ6IHttYXhDcmVhdGVkOiAtMX19LFxuXHRcdHskbGltaXQ6IDEwfVxuXHRdKS50b0FycmF5IChlcnIsIGRhdGEpLT5cblx0XHRpZiBlcnJcblx0XHRcdHRocm93IG5ldyBFcnJvcihlcnIpXG5cblx0XHRkYXRhLmZvckVhY2ggKGRvYykgLT5cblx0XHRcdF9yZWNvcmRzLnB1c2ggZG9jLl9pZFxuXG5cdFx0aWYgY2FsbGJhY2sgJiYgXy5pc0Z1bmN0aW9uKGNhbGxiYWNrKVxuXHRcdFx0Y2FsbGJhY2soKVxuXG5cdFx0cmV0dXJuXG5cbmFzeW5jX3JlY2VudF9hZ2dyZWdhdGUgPSBNZXRlb3Iud3JhcEFzeW5jKHJlY2VudF9hZ2dyZWdhdGUpXG5cbnNlYXJjaF9vYmplY3QgPSAoc3BhY2UsIG9iamVjdF9uYW1lLHVzZXJJZCwgc2VhcmNoVGV4dCktPlxuXHRkYXRhID0gbmV3IEFycmF5KClcblxuXHRpZiBzZWFyY2hUZXh0XG5cblx0XHRfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqZWN0X25hbWUpXG5cblx0XHRfb2JqZWN0X2NvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUpXG5cdFx0X29iamVjdF9uYW1lX2tleSA9IF9vYmplY3Q/Lk5BTUVfRklFTERfS0VZXG5cdFx0aWYgX29iamVjdCAmJiBfb2JqZWN0X2NvbGxlY3Rpb24gJiYgX29iamVjdF9uYW1lX2tleVxuXHRcdFx0cXVlcnkgPSB7fVxuXHRcdFx0c2VhcmNoX0tleXdvcmRzID0gc2VhcmNoVGV4dC5zcGxpdChcIiBcIilcblx0XHRcdHF1ZXJ5X2FuZCA9IFtdXG5cdFx0XHRzZWFyY2hfS2V5d29yZHMuZm9yRWFjaCAoa2V5d29yZCktPlxuXHRcdFx0XHRzdWJxdWVyeSA9IHt9XG5cdFx0XHRcdHN1YnF1ZXJ5W19vYmplY3RfbmFtZV9rZXldID0geyRyZWdleDoga2V5d29yZC50cmltKCl9XG5cdFx0XHRcdHF1ZXJ5X2FuZC5wdXNoIHN1YnF1ZXJ5XG5cblx0XHRcdHF1ZXJ5LiRhbmQgPSBxdWVyeV9hbmRcblx0XHRcdHF1ZXJ5LnNwYWNlID0geyRpbjogW3NwYWNlXX1cblxuXHRcdFx0ZmllbGRzID0ge19pZDogMX1cblx0XHRcdGZpZWxkc1tfb2JqZWN0X25hbWVfa2V5XSA9IDFcblxuXHRcdFx0cmVjb3JkcyA9IF9vYmplY3RfY29sbGVjdGlvbi5maW5kKHF1ZXJ5LCB7ZmllbGRzOiBmaWVsZHMsIHNvcnQ6IHttb2RpZmllZDogMX0sIGxpbWl0OiA1fSlcblxuXHRcdFx0cmVjb3Jkcy5mb3JFYWNoIChyZWNvcmQpLT5cblx0XHRcdFx0ZGF0YS5wdXNoIHtfaWQ6IHJlY29yZC5faWQsIF9uYW1lOiByZWNvcmRbX29iamVjdF9uYW1lX2tleV0sIF9vYmplY3RfbmFtZTogb2JqZWN0X25hbWV9XG5cdFxuXHRyZXR1cm4gZGF0YVxuXG5NZXRlb3IubWV0aG9kc1xuXHQnb2JqZWN0X3JlY2VudF9yZWNvcmQnOiAoc3BhY2VJZCktPlxuXHRcdGRhdGEgPSBuZXcgQXJyYXkoKVxuXHRcdHJlY29yZHMgPSBuZXcgQXJyYXkoKVxuXHRcdGFzeW5jX3JlY2VudF9hZ2dyZWdhdGUodGhpcy51c2VySWQsIHNwYWNlSWQsIHJlY29yZHMpXG5cdFx0cmVjb3Jkcy5mb3JFYWNoIChpdGVtKS0+XG5cdFx0XHRyZWNvcmRfb2JqZWN0ID0gQ3JlYXRvci5nZXRPYmplY3QoaXRlbS5vYmplY3RfbmFtZSwgaXRlbS5zcGFjZSlcblxuXHRcdFx0aWYgIXJlY29yZF9vYmplY3Rcblx0XHRcdFx0cmV0dXJuXG5cblx0XHRcdHJlY29yZF9vYmplY3RfY29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihpdGVtLm9iamVjdF9uYW1lLCBpdGVtLnNwYWNlKVxuXG5cdFx0XHRpZiByZWNvcmRfb2JqZWN0ICYmIHJlY29yZF9vYmplY3RfY29sbGVjdGlvblxuXHRcdFx0XHRmaWVsZHMgPSB7X2lkOiAxfVxuXG5cdFx0XHRcdGZpZWxkc1tyZWNvcmRfb2JqZWN0Lk5BTUVfRklFTERfS0VZXSA9IDFcblxuXHRcdFx0XHRyZWNvcmQgPSByZWNvcmRfb2JqZWN0X2NvbGxlY3Rpb24uZmluZE9uZShpdGVtLnJlY29yZF9pZFswXSwge2ZpZWxkczogZmllbGRzfSlcblx0XHRcdFx0aWYgcmVjb3JkXG5cdFx0XHRcdFx0ZGF0YS5wdXNoIHtfaWQ6IHJlY29yZC5faWQsIF9uYW1lOiByZWNvcmRbcmVjb3JkX29iamVjdC5OQU1FX0ZJRUxEX0tFWV0sIF9vYmplY3RfbmFtZTogaXRlbS5vYmplY3RfbmFtZX1cblxuXHRcdHJldHVybiBkYXRhXG5cblx0J29iamVjdF9yZWNvcmRfc2VhcmNoJzogKG9wdGlvbnMpLT5cblx0XHRzZWxmID0gdGhpc1xuXG5cdFx0ZGF0YSA9IG5ldyBBcnJheSgpXG5cblx0XHRzZWFyY2hUZXh0ID0gb3B0aW9ucy5zZWFyY2hUZXh0XG5cdFx0c3BhY2UgPSBvcHRpb25zLnNwYWNlXG5cblx0XHRfLmZvckVhY2ggQ3JlYXRvci5vYmplY3RzQnlOYW1lLCAoX29iamVjdCwgbmFtZSktPlxuXHRcdFx0aWYgX29iamVjdC5lbmFibGVfc2VhcmNoXG5cdFx0XHRcdG9iamVjdF9yZWNvcmQgPSBzZWFyY2hfb2JqZWN0KHNwYWNlLCBfb2JqZWN0Lm5hbWUsIHNlbGYudXNlcklkLCBzZWFyY2hUZXh0KVxuXHRcdFx0XHRkYXRhID0gZGF0YS5jb25jYXQob2JqZWN0X3JlY29yZClcblxuXHRcdHJldHVybiBkYXRhXG4iLCJ2YXIgYXN5bmNfcmVjZW50X2FnZ3JlZ2F0ZSwgcmVjZW50X2FnZ3JlZ2F0ZSwgc2VhcmNoX29iamVjdDtcblxucmVjZW50X2FnZ3JlZ2F0ZSA9IGZ1bmN0aW9uKGNyZWF0ZWRfYnksIHNwYWNlSWQsIF9yZWNvcmRzLCBjYWxsYmFjaykge1xuICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3RfcmVjZW50X3ZpZXdlZC5yYXdDb2xsZWN0aW9uKCkuYWdncmVnYXRlKFtcbiAgICB7XG4gICAgICAkbWF0Y2g6IHtcbiAgICAgICAgY3JlYXRlZF9ieTogY3JlYXRlZF9ieSxcbiAgICAgICAgc3BhY2U6IHNwYWNlSWRcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICAkZ3JvdXA6IHtcbiAgICAgICAgX2lkOiB7XG4gICAgICAgICAgb2JqZWN0X25hbWU6IFwiJHJlY29yZC5vXCIsXG4gICAgICAgICAgcmVjb3JkX2lkOiBcIiRyZWNvcmQuaWRzXCIsXG4gICAgICAgICAgc3BhY2U6IFwiJHNwYWNlXCJcbiAgICAgICAgfSxcbiAgICAgICAgbWF4Q3JlYXRlZDoge1xuICAgICAgICAgICRtYXg6IFwiJGNyZWF0ZWRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwge1xuICAgICAgJHNvcnQ6IHtcbiAgICAgICAgbWF4Q3JlYXRlZDogLTFcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICAkbGltaXQ6IDEwXG4gICAgfVxuICBdKS50b0FycmF5KGZ1bmN0aW9uKGVyciwgZGF0YSkge1xuICAgIGlmIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnIpO1xuICAgIH1cbiAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24oZG9jKSB7XG4gICAgICByZXR1cm4gX3JlY29yZHMucHVzaChkb2MuX2lkKTtcbiAgICB9KTtcbiAgICBpZiAoY2FsbGJhY2sgJiYgXy5pc0Z1bmN0aW9uKGNhbGxiYWNrKSkge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH0pO1xufTtcblxuYXN5bmNfcmVjZW50X2FnZ3JlZ2F0ZSA9IE1ldGVvci53cmFwQXN5bmMocmVjZW50X2FnZ3JlZ2F0ZSk7XG5cbnNlYXJjaF9vYmplY3QgPSBmdW5jdGlvbihzcGFjZSwgb2JqZWN0X25hbWUsIHVzZXJJZCwgc2VhcmNoVGV4dCkge1xuICB2YXIgX29iamVjdCwgX29iamVjdF9jb2xsZWN0aW9uLCBfb2JqZWN0X25hbWVfa2V5LCBkYXRhLCBmaWVsZHMsIHF1ZXJ5LCBxdWVyeV9hbmQsIHJlY29yZHMsIHNlYXJjaF9LZXl3b3JkcztcbiAgZGF0YSA9IG5ldyBBcnJheSgpO1xuICBpZiAoc2VhcmNoVGV4dCkge1xuICAgIF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk7XG4gICAgX29iamVjdF9jb2xsZWN0aW9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdF9uYW1lKTtcbiAgICBfb2JqZWN0X25hbWVfa2V5ID0gX29iamVjdCAhPSBudWxsID8gX29iamVjdC5OQU1FX0ZJRUxEX0tFWSA6IHZvaWQgMDtcbiAgICBpZiAoX29iamVjdCAmJiBfb2JqZWN0X2NvbGxlY3Rpb24gJiYgX29iamVjdF9uYW1lX2tleSkge1xuICAgICAgcXVlcnkgPSB7fTtcbiAgICAgIHNlYXJjaF9LZXl3b3JkcyA9IHNlYXJjaFRleHQuc3BsaXQoXCIgXCIpO1xuICAgICAgcXVlcnlfYW5kID0gW107XG4gICAgICBzZWFyY2hfS2V5d29yZHMuZm9yRWFjaChmdW5jdGlvbihrZXl3b3JkKSB7XG4gICAgICAgIHZhciBzdWJxdWVyeTtcbiAgICAgICAgc3VicXVlcnkgPSB7fTtcbiAgICAgICAgc3VicXVlcnlbX29iamVjdF9uYW1lX2tleV0gPSB7XG4gICAgICAgICAgJHJlZ2V4OiBrZXl3b3JkLnRyaW0oKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcXVlcnlfYW5kLnB1c2goc3VicXVlcnkpO1xuICAgICAgfSk7XG4gICAgICBxdWVyeS4kYW5kID0gcXVlcnlfYW5kO1xuICAgICAgcXVlcnkuc3BhY2UgPSB7XG4gICAgICAgICRpbjogW3NwYWNlXVxuICAgICAgfTtcbiAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgX2lkOiAxXG4gICAgICB9O1xuICAgICAgZmllbGRzW19vYmplY3RfbmFtZV9rZXldID0gMTtcbiAgICAgIHJlY29yZHMgPSBfb2JqZWN0X2NvbGxlY3Rpb24uZmluZChxdWVyeSwge1xuICAgICAgICBmaWVsZHM6IGZpZWxkcyxcbiAgICAgICAgc29ydDoge1xuICAgICAgICAgIG1vZGlmaWVkOiAxXG4gICAgICAgIH0sXG4gICAgICAgIGxpbWl0OiA1XG4gICAgICB9KTtcbiAgICAgIHJlY29yZHMuZm9yRWFjaChmdW5jdGlvbihyZWNvcmQpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEucHVzaCh7XG4gICAgICAgICAgX2lkOiByZWNvcmQuX2lkLFxuICAgICAgICAgIF9uYW1lOiByZWNvcmRbX29iamVjdF9uYW1lX2tleV0sXG4gICAgICAgICAgX29iamVjdF9uYW1lOiBvYmplY3RfbmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5cbk1ldGVvci5tZXRob2RzKHtcbiAgJ29iamVjdF9yZWNlbnRfcmVjb3JkJzogZnVuY3Rpb24oc3BhY2VJZCkge1xuICAgIHZhciBkYXRhLCByZWNvcmRzO1xuICAgIGRhdGEgPSBuZXcgQXJyYXkoKTtcbiAgICByZWNvcmRzID0gbmV3IEFycmF5KCk7XG4gICAgYXN5bmNfcmVjZW50X2FnZ3JlZ2F0ZSh0aGlzLnVzZXJJZCwgc3BhY2VJZCwgcmVjb3Jkcyk7XG4gICAgcmVjb3Jkcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgIHZhciBmaWVsZHMsIHJlY29yZCwgcmVjb3JkX29iamVjdCwgcmVjb3JkX29iamVjdF9jb2xsZWN0aW9uO1xuICAgICAgcmVjb3JkX29iamVjdCA9IENyZWF0b3IuZ2V0T2JqZWN0KGl0ZW0ub2JqZWN0X25hbWUsIGl0ZW0uc3BhY2UpO1xuICAgICAgaWYgKCFyZWNvcmRfb2JqZWN0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJlY29yZF9vYmplY3RfY29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihpdGVtLm9iamVjdF9uYW1lLCBpdGVtLnNwYWNlKTtcbiAgICAgIGlmIChyZWNvcmRfb2JqZWN0ICYmIHJlY29yZF9vYmplY3RfY29sbGVjdGlvbikge1xuICAgICAgICBmaWVsZHMgPSB7XG4gICAgICAgICAgX2lkOiAxXG4gICAgICAgIH07XG4gICAgICAgIGZpZWxkc1tyZWNvcmRfb2JqZWN0Lk5BTUVfRklFTERfS0VZXSA9IDE7XG4gICAgICAgIHJlY29yZCA9IHJlY29yZF9vYmplY3RfY29sbGVjdGlvbi5maW5kT25lKGl0ZW0ucmVjb3JkX2lkWzBdLCB7XG4gICAgICAgICAgZmllbGRzOiBmaWVsZHNcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZWNvcmQpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YS5wdXNoKHtcbiAgICAgICAgICAgIF9pZDogcmVjb3JkLl9pZCxcbiAgICAgICAgICAgIF9uYW1lOiByZWNvcmRbcmVjb3JkX29iamVjdC5OQU1FX0ZJRUxEX0tFWV0sXG4gICAgICAgICAgICBfb2JqZWN0X25hbWU6IGl0ZW0ub2JqZWN0X25hbWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9LFxuICAnb2JqZWN0X3JlY29yZF9zZWFyY2gnOiBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgdmFyIGRhdGEsIHNlYXJjaFRleHQsIHNlbGYsIHNwYWNlO1xuICAgIHNlbGYgPSB0aGlzO1xuICAgIGRhdGEgPSBuZXcgQXJyYXkoKTtcbiAgICBzZWFyY2hUZXh0ID0gb3B0aW9ucy5zZWFyY2hUZXh0O1xuICAgIHNwYWNlID0gb3B0aW9ucy5zcGFjZTtcbiAgICBfLmZvckVhY2goQ3JlYXRvci5vYmplY3RzQnlOYW1lLCBmdW5jdGlvbihfb2JqZWN0LCBuYW1lKSB7XG4gICAgICB2YXIgb2JqZWN0X3JlY29yZDtcbiAgICAgIGlmIChfb2JqZWN0LmVuYWJsZV9zZWFyY2gpIHtcbiAgICAgICAgb2JqZWN0X3JlY29yZCA9IHNlYXJjaF9vYmplY3Qoc3BhY2UsIF9vYmplY3QubmFtZSwgc2VsZi51c2VySWQsIHNlYXJjaFRleHQpO1xuICAgICAgICByZXR1cm4gZGF0YSA9IGRhdGEuY29uY2F0KG9iamVjdF9yZWNvcmQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG59KTtcbiIsIk1ldGVvci5tZXRob2RzXG4gICAgdXBkYXRlX2ZpbHRlcnM6IChsaXN0dmlld19pZCwgZmlsdGVycywgZmlsdGVyX3Njb3BlLCBmaWx0ZXJfbG9naWMpLT5cbiAgICAgICAgQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3RfbGlzdHZpZXdzLmRpcmVjdC51cGRhdGUoe19pZDogbGlzdHZpZXdfaWR9LCB7JHNldDoge2ZpbHRlcnM6IGZpbHRlcnMsIGZpbHRlcl9zY29wZTogZmlsdGVyX3Njb3BlLCBmaWx0ZXJfbG9naWM6IGZpbHRlcl9sb2dpY319KVxuXG4gICAgdXBkYXRlX2NvbHVtbnM6IChsaXN0dmlld19pZCwgY29sdW1ucyktPlxuICAgICAgICBjaGVjayhjb2x1bW5zLCBBcnJheSlcbiAgICAgICAgXG4gICAgICAgIGlmIGNvbHVtbnMubGVuZ3RoIDwgMVxuICAgICAgICAgICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvciA0MDAsIFwiU2VsZWN0IGF0IGxlYXN0IG9uZSBmaWVsZCB0byBkaXNwbGF5XCJcbiAgICAgICAgQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3RfbGlzdHZpZXdzLnVwZGF0ZSh7X2lkOiBsaXN0dmlld19pZH0sIHskc2V0OiB7Y29sdW1uczogY29sdW1uc319KVxuIiwiTWV0ZW9yLm1ldGhvZHMoe1xuICB1cGRhdGVfZmlsdGVyczogZnVuY3Rpb24obGlzdHZpZXdfaWQsIGZpbHRlcnMsIGZpbHRlcl9zY29wZSwgZmlsdGVyX2xvZ2ljKSB7XG4gICAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMub2JqZWN0X2xpc3R2aWV3cy5kaXJlY3QudXBkYXRlKHtcbiAgICAgIF9pZDogbGlzdHZpZXdfaWRcbiAgICB9LCB7XG4gICAgICAkc2V0OiB7XG4gICAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgICAgIGZpbHRlcl9zY29wZTogZmlsdGVyX3Njb3BlLFxuICAgICAgICBmaWx0ZXJfbG9naWM6IGZpbHRlcl9sb2dpY1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICB1cGRhdGVfY29sdW1uczogZnVuY3Rpb24obGlzdHZpZXdfaWQsIGNvbHVtbnMpIHtcbiAgICBjaGVjayhjb2x1bW5zLCBBcnJheSk7XG4gICAgaWYgKGNvbHVtbnMubGVuZ3RoIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcig0MDAsIFwiU2VsZWN0IGF0IGxlYXN0IG9uZSBmaWVsZCB0byBkaXNwbGF5XCIpO1xuICAgIH1cbiAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3RfbGlzdHZpZXdzLnVwZGF0ZSh7XG4gICAgICBfaWQ6IGxpc3R2aWV3X2lkXG4gICAgfSwge1xuICAgICAgJHNldDoge1xuICAgICAgICBjb2x1bW5zOiBjb2x1bW5zXG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0pO1xuIiwiTWV0ZW9yLm1ldGhvZHNcblx0J3JlcG9ydF9kYXRhJzogKG9wdGlvbnMpLT5cblx0XHRjaGVjayhvcHRpb25zLCBPYmplY3QpXG5cdFx0c3BhY2UgPSBvcHRpb25zLnNwYWNlXG5cdFx0ZmllbGRzID0gb3B0aW9ucy5maWVsZHNcblx0XHRvYmplY3RfbmFtZSA9IG9wdGlvbnMub2JqZWN0X25hbWVcblx0XHRmaWx0ZXJfc2NvcGUgPSBvcHRpb25zLmZpbHRlcl9zY29wZVxuXHRcdGZpbHRlcnMgPSBvcHRpb25zLmZpbHRlcnNcblx0XHRmaWx0ZXJGaWVsZHMgPSB7fVxuXHRcdGNvbXBvdW5kRmllbGRzID0gW11cblx0XHRvYmplY3RGaWVsZHMgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSk/LmZpZWxkc1xuXHRcdF8uZWFjaCBmaWVsZHMsIChpdGVtLCBpbmRleCktPlxuXHRcdFx0c3BsaXRzID0gaXRlbS5zcGxpdChcIi5cIilcblx0XHRcdG5hbWUgPSBzcGxpdHNbMF1cblx0XHRcdG9iamVjdEZpZWxkID0gb2JqZWN0RmllbGRzW25hbWVdXG5cdFx0XHRpZiBzcGxpdHMubGVuZ3RoID4gMSBhbmQgb2JqZWN0RmllbGRcblx0XHRcdFx0Y2hpbGRLZXkgPSBpdGVtLnJlcGxhY2UgbmFtZSArIFwiLlwiLCBcIlwiXG5cdFx0XHRcdGNvbXBvdW5kRmllbGRzLnB1c2goe25hbWU6IG5hbWUsIGNoaWxkS2V5OiBjaGlsZEtleSwgZmllbGQ6IG9iamVjdEZpZWxkfSlcblx0XHRcdGZpbHRlckZpZWxkc1tuYW1lXSA9IDFcblxuXHRcdHNlbGVjdG9yID0ge31cblx0XHR1c2VySWQgPSB0aGlzLnVzZXJJZFxuXHRcdHNlbGVjdG9yLnNwYWNlID0gc3BhY2Vcblx0XHRpZiBmaWx0ZXJfc2NvcGUgPT0gXCJzcGFjZXhcIlxuXHRcdFx0c2VsZWN0b3Iuc3BhY2UgPSBcblx0XHRcdFx0JGluOiBbbnVsbCxzcGFjZV1cblx0XHRlbHNlIGlmIGZpbHRlcl9zY29wZSA9PSBcIm1pbmVcIlxuXHRcdFx0c2VsZWN0b3Iub3duZXIgPSB1c2VySWRcblxuXHRcdGlmIENyZWF0b3IuaXNDb21tb25TcGFjZShzcGFjZSkgJiYgQ3JlYXRvci5pc1NwYWNlQWRtaW4oc3BhY2UsIEB1c2VySWQpXG5cdFx0XHRkZWxldGUgc2VsZWN0b3Iuc3BhY2VcblxuXHRcdGlmIGZpbHRlcnMgYW5kIGZpbHRlcnMubGVuZ3RoID4gMFxuXHRcdFx0c2VsZWN0b3JbXCIkYW5kXCJdID0gZmlsdGVyc1xuXG5cdFx0Y3Vyc29yID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdF9uYW1lKS5maW5kKHNlbGVjdG9yLCB7ZmllbGRzOiBmaWx0ZXJGaWVsZHMsIHNraXA6IDAsIGxpbWl0OiAxMDAwMH0pXG4jXHRcdGlmIGN1cnNvci5jb3VudCgpID4gMTAwMDBcbiNcdFx0XHRyZXR1cm4gW11cblx0XHRyZXN1bHQgPSBjdXJzb3IuZmV0Y2goKVxuXHRcdGlmIGNvbXBvdW5kRmllbGRzLmxlbmd0aFxuXHRcdFx0cmVzdWx0ID0gcmVzdWx0Lm1hcCAoaXRlbSxpbmRleCktPlxuXHRcdFx0XHRfLmVhY2ggY29tcG91bmRGaWVsZHMsIChjb21wb3VuZEZpZWxkSXRlbSwgaW5kZXgpLT5cblx0XHRcdFx0XHRpdGVtS2V5ID0gY29tcG91bmRGaWVsZEl0ZW0ubmFtZSArIFwiKiUqXCIgKyBjb21wb3VuZEZpZWxkSXRlbS5jaGlsZEtleS5yZXBsYWNlKC9cXC4vZywgXCIqJSpcIilcblx0XHRcdFx0XHRpdGVtVmFsdWUgPSBpdGVtW2NvbXBvdW5kRmllbGRJdGVtLm5hbWVdXG5cdFx0XHRcdFx0dHlwZSA9IGNvbXBvdW5kRmllbGRJdGVtLmZpZWxkLnR5cGVcblx0XHRcdFx0XHRpZiBbXCJsb29rdXBcIiwgXCJtYXN0ZXJfZGV0YWlsXCJdLmluZGV4T2YodHlwZSkgPiAtMVxuXHRcdFx0XHRcdFx0cmVmZXJlbmNlX3RvID0gY29tcG91bmRGaWVsZEl0ZW0uZmllbGQucmVmZXJlbmNlX3RvXG5cdFx0XHRcdFx0XHRjb21wb3VuZEZpbHRlckZpZWxkcyA9IHt9XG5cdFx0XHRcdFx0XHRjb21wb3VuZEZpbHRlckZpZWxkc1tjb21wb3VuZEZpZWxkSXRlbS5jaGlsZEtleV0gPSAxXG5cdFx0XHRcdFx0XHRyZWZlcmVuY2VJdGVtID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlZmVyZW5jZV90bykuZmluZE9uZSB7X2lkOiBpdGVtVmFsdWV9LCBmaWVsZHM6IGNvbXBvdW5kRmlsdGVyRmllbGRzXG5cdFx0XHRcdFx0XHRpZiByZWZlcmVuY2VJdGVtXG5cdFx0XHRcdFx0XHRcdGl0ZW1baXRlbUtleV0gPSByZWZlcmVuY2VJdGVtW2NvbXBvdW5kRmllbGRJdGVtLmNoaWxkS2V5XVxuXHRcdFx0XHRcdGVsc2UgaWYgdHlwZSA9PSBcInNlbGVjdFwiXG5cdFx0XHRcdFx0XHRvcHRpb25zID0gY29tcG91bmRGaWVsZEl0ZW0uZmllbGQub3B0aW9uc1xuXHRcdFx0XHRcdFx0aXRlbVtpdGVtS2V5XSA9IF8uZmluZFdoZXJlKG9wdGlvbnMsIHt2YWx1ZTogaXRlbVZhbHVlfSk/LmxhYmVsIG9yIGl0ZW1WYWx1ZVxuXHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdGl0ZW1baXRlbUtleV0gPSBpdGVtVmFsdWVcblx0XHRcdFx0XHR1bmxlc3MgaXRlbVtpdGVtS2V5XVxuXHRcdFx0XHRcdFx0aXRlbVtpdGVtS2V5XSA9IFwiLS1cIlxuXHRcdFx0XHRyZXR1cm4gaXRlbVxuXHRcdFx0cmV0dXJuIHJlc3VsdFxuXHRcdGVsc2Vcblx0XHRcdHJldHVybiByZXN1bHRcblxuIiwiTWV0ZW9yLm1ldGhvZHMoe1xuICAncmVwb3J0X2RhdGEnOiBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgdmFyIGNvbXBvdW5kRmllbGRzLCBjdXJzb3IsIGZpZWxkcywgZmlsdGVyRmllbGRzLCBmaWx0ZXJfc2NvcGUsIGZpbHRlcnMsIG9iamVjdEZpZWxkcywgb2JqZWN0X25hbWUsIHJlZiwgcmVzdWx0LCBzZWxlY3Rvciwgc3BhY2UsIHVzZXJJZDtcbiAgICBjaGVjayhvcHRpb25zLCBPYmplY3QpO1xuICAgIHNwYWNlID0gb3B0aW9ucy5zcGFjZTtcbiAgICBmaWVsZHMgPSBvcHRpb25zLmZpZWxkcztcbiAgICBvYmplY3RfbmFtZSA9IG9wdGlvbnMub2JqZWN0X25hbWU7XG4gICAgZmlsdGVyX3Njb3BlID0gb3B0aW9ucy5maWx0ZXJfc2NvcGU7XG4gICAgZmlsdGVycyA9IG9wdGlvbnMuZmlsdGVycztcbiAgICBmaWx0ZXJGaWVsZHMgPSB7fTtcbiAgICBjb21wb3VuZEZpZWxkcyA9IFtdO1xuICAgIG9iamVjdEZpZWxkcyA9IChyZWYgPSBDcmVhdG9yLmdldE9iamVjdChvYmplY3RfbmFtZSkpICE9IG51bGwgPyByZWYuZmllbGRzIDogdm9pZCAwO1xuICAgIF8uZWFjaChmaWVsZHMsIGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XG4gICAgICB2YXIgY2hpbGRLZXksIG5hbWUsIG9iamVjdEZpZWxkLCBzcGxpdHM7XG4gICAgICBzcGxpdHMgPSBpdGVtLnNwbGl0KFwiLlwiKTtcbiAgICAgIG5hbWUgPSBzcGxpdHNbMF07XG4gICAgICBvYmplY3RGaWVsZCA9IG9iamVjdEZpZWxkc1tuYW1lXTtcbiAgICAgIGlmIChzcGxpdHMubGVuZ3RoID4gMSAmJiBvYmplY3RGaWVsZCkge1xuICAgICAgICBjaGlsZEtleSA9IGl0ZW0ucmVwbGFjZShuYW1lICsgXCIuXCIsIFwiXCIpO1xuICAgICAgICBjb21wb3VuZEZpZWxkcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgIGNoaWxkS2V5OiBjaGlsZEtleSxcbiAgICAgICAgICBmaWVsZDogb2JqZWN0RmllbGRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyRmllbGRzW25hbWVdID0gMTtcbiAgICB9KTtcbiAgICBzZWxlY3RvciA9IHt9O1xuICAgIHVzZXJJZCA9IHRoaXMudXNlcklkO1xuICAgIHNlbGVjdG9yLnNwYWNlID0gc3BhY2U7XG4gICAgaWYgKGZpbHRlcl9zY29wZSA9PT0gXCJzcGFjZXhcIikge1xuICAgICAgc2VsZWN0b3Iuc3BhY2UgPSB7XG4gICAgICAgICRpbjogW251bGwsIHNwYWNlXVxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGZpbHRlcl9zY29wZSA9PT0gXCJtaW5lXCIpIHtcbiAgICAgIHNlbGVjdG9yLm93bmVyID0gdXNlcklkO1xuICAgIH1cbiAgICBpZiAoQ3JlYXRvci5pc0NvbW1vblNwYWNlKHNwYWNlKSAmJiBDcmVhdG9yLmlzU3BhY2VBZG1pbihzcGFjZSwgdGhpcy51c2VySWQpKSB7XG4gICAgICBkZWxldGUgc2VsZWN0b3Iuc3BhY2U7XG4gICAgfVxuICAgIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgc2VsZWN0b3JbXCIkYW5kXCJdID0gZmlsdGVycztcbiAgICB9XG4gICAgY3Vyc29yID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdF9uYW1lKS5maW5kKHNlbGVjdG9yLCB7XG4gICAgICBmaWVsZHM6IGZpbHRlckZpZWxkcyxcbiAgICAgIHNraXA6IDAsXG4gICAgICBsaW1pdDogMTAwMDBcbiAgICB9KTtcbiAgICByZXN1bHQgPSBjdXJzb3IuZmV0Y2goKTtcbiAgICBpZiAoY29tcG91bmRGaWVsZHMubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQubWFwKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIF8uZWFjaChjb21wb3VuZEZpZWxkcywgZnVuY3Rpb24oY29tcG91bmRGaWVsZEl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgdmFyIGNvbXBvdW5kRmlsdGVyRmllbGRzLCBpdGVtS2V5LCBpdGVtVmFsdWUsIHJlZjEsIHJlZmVyZW5jZUl0ZW0sIHJlZmVyZW5jZV90bywgdHlwZTtcbiAgICAgICAgICBpdGVtS2V5ID0gY29tcG91bmRGaWVsZEl0ZW0ubmFtZSArIFwiKiUqXCIgKyBjb21wb3VuZEZpZWxkSXRlbS5jaGlsZEtleS5yZXBsYWNlKC9cXC4vZywgXCIqJSpcIik7XG4gICAgICAgICAgaXRlbVZhbHVlID0gaXRlbVtjb21wb3VuZEZpZWxkSXRlbS5uYW1lXTtcbiAgICAgICAgICB0eXBlID0gY29tcG91bmRGaWVsZEl0ZW0uZmllbGQudHlwZTtcbiAgICAgICAgICBpZiAoW1wibG9va3VwXCIsIFwibWFzdGVyX2RldGFpbFwiXS5pbmRleE9mKHR5cGUpID4gLTEpIHtcbiAgICAgICAgICAgIHJlZmVyZW5jZV90byA9IGNvbXBvdW5kRmllbGRJdGVtLmZpZWxkLnJlZmVyZW5jZV90bztcbiAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyRmllbGRzID0ge307XG4gICAgICAgICAgICBjb21wb3VuZEZpbHRlckZpZWxkc1tjb21wb3VuZEZpZWxkSXRlbS5jaGlsZEtleV0gPSAxO1xuICAgICAgICAgICAgcmVmZXJlbmNlSXRlbSA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWZlcmVuY2VfdG8pLmZpbmRPbmUoe1xuICAgICAgICAgICAgICBfaWQ6IGl0ZW1WYWx1ZVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICBmaWVsZHM6IGNvbXBvdW5kRmlsdGVyRmllbGRzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChyZWZlcmVuY2VJdGVtKSB7XG4gICAgICAgICAgICAgIGl0ZW1baXRlbUtleV0gPSByZWZlcmVuY2VJdGVtW2NvbXBvdW5kRmllbGRJdGVtLmNoaWxkS2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBjb21wb3VuZEZpZWxkSXRlbS5maWVsZC5vcHRpb25zO1xuICAgICAgICAgICAgaXRlbVtpdGVtS2V5XSA9ICgocmVmMSA9IF8uZmluZFdoZXJlKG9wdGlvbnMsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1WYWx1ZVxuICAgICAgICAgICAgfSkpICE9IG51bGwgPyByZWYxLmxhYmVsIDogdm9pZCAwKSB8fCBpdGVtVmFsdWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW1baXRlbUtleV0gPSBpdGVtVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghaXRlbVtpdGVtS2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1baXRlbUtleV0gPSBcIi0tXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG59KTtcbiIsIiMjI1xuICAgIHR5cGU6IFwidXNlclwiXG4gICAgb2JqZWN0X25hbWU6IFwib2JqZWN0X2xpc3R2aWV3c1wiXG4gICAgcmVjb3JkX2lkOiBcIntvYmplY3RfbmFtZX0se2xpc3R2aWV3X2lkfVwiXG4gICAgc2V0dGluZ3M6XG4gICAgICAgIGNvbHVtbl93aWR0aDogeyBmaWVsZF9hOiAxMDAsIGZpZWxkXzI6IDE1MCB9XG4gICAgICAgIHNvcnQ6IFtbXCJmaWVsZF9hXCIsIFwiZGVzY1wiXV1cbiAgICBvd25lcjoge3VzZXJJZH1cbiMjI1xuXG5NZXRlb3IubWV0aG9kc1xuICAgIFwidGFidWxhcl9zb3J0X3NldHRpbmdzXCI6IChvYmplY3RfbmFtZSwgbGlzdF92aWV3X2lkLCBzb3J0KS0+XG4gICAgICAgIHVzZXJJZCA9IHRoaXMudXNlcklkXG4gICAgICAgIHNldHRpbmcgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmZpbmRPbmUoe29iamVjdF9uYW1lOiBvYmplY3RfbmFtZSwgcmVjb3JkX2lkOiBcIm9iamVjdF9saXN0dmlld3NcIiwgb3duZXI6IHVzZXJJZH0pXG4gICAgICAgIGlmIHNldHRpbmdcbiAgICAgICAgICAgIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MudXBkYXRlKHtfaWQ6IHNldHRpbmcuX2lkfSwgeyRzZXQ6IHtcInNldHRpbmdzLiN7bGlzdF92aWV3X2lkfS5zb3J0XCI6IHNvcnR9fSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZG9jID0gXG4gICAgICAgICAgICAgICAgdHlwZTogXCJ1c2VyXCJcbiAgICAgICAgICAgICAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWVcbiAgICAgICAgICAgICAgICByZWNvcmRfaWQ6IFwib2JqZWN0X2xpc3R2aWV3c1wiXG4gICAgICAgICAgICAgICAgc2V0dGluZ3M6IHt9XG4gICAgICAgICAgICAgICAgb3duZXI6IHVzZXJJZFxuXG4gICAgICAgICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXSA9IHt9XG4gICAgICAgICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXS5zb3J0ID0gc29ydFxuXG4gICAgICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmluc2VydChkb2MpXG5cbiAgICBcInRhYnVsYXJfY29sdW1uX3dpZHRoX3NldHRpbmdzXCI6IChvYmplY3RfbmFtZSwgbGlzdF92aWV3X2lkLCBjb2x1bW5fd2lkdGgpLT5cbiAgICAgICAgdXNlcklkID0gdGhpcy51c2VySWRcbiAgICAgICAgc2V0dGluZyA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuZmluZE9uZSh7b2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLCByZWNvcmRfaWQ6IFwib2JqZWN0X2xpc3R2aWV3c1wiLCBvd25lcjogdXNlcklkfSlcbiAgICAgICAgaWYgc2V0dGluZ1xuICAgICAgICAgICAgQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy51cGRhdGUoe19pZDogc2V0dGluZy5faWR9LCB7JHNldDoge1wic2V0dGluZ3MuI3tsaXN0X3ZpZXdfaWR9LmNvbHVtbl93aWR0aFwiOiBjb2x1bW5fd2lkdGh9fSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZG9jID0gXG4gICAgICAgICAgICAgICAgdHlwZTogXCJ1c2VyXCJcbiAgICAgICAgICAgICAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWVcbiAgICAgICAgICAgICAgICByZWNvcmRfaWQ6IFwib2JqZWN0X2xpc3R2aWV3c1wiXG4gICAgICAgICAgICAgICAgc2V0dGluZ3M6IHt9XG4gICAgICAgICAgICAgICAgb3duZXI6IHVzZXJJZFxuXG4gICAgICAgICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXSA9IHt9XG4gICAgICAgICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXS5jb2x1bW5fd2lkdGggPSBjb2x1bW5fd2lkdGhcblxuICAgICAgICAgICAgQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5pbnNlcnQoZG9jKVxuXG4gICAgXCJncmlkX3NldHRpbmdzXCI6IChvYmplY3RfbmFtZSwgbGlzdF92aWV3X2lkLCBjb2x1bW5fd2lkdGgsIHNvcnQpLT5cbiAgICAgICAgdXNlcklkID0gdGhpcy51c2VySWRcbiAgICAgICAgc2V0dGluZyA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuZmluZE9uZSh7b2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLCByZWNvcmRfaWQ6IFwib2JqZWN0X2dyaWR2aWV3c1wiLCBvd25lcjogdXNlcklkfSlcbiAgICAgICAgaWYgc2V0dGluZ1xuICAgICAgICAgICAgIyDmr4/mrKHpg73lvLrliLbmlLnlj5hfaWRfYWN0aW9uc+WIl+eahOWuveW6pu+8jOS7peino+WGs+W9k+eUqOaIt+WPquaUueWPmOWtl+auteasoeW6j+iAjOayoeacieaUueWPmOS7u+S9leWtl+auteWuveW6puaXtu+8jOWJjeerr+ayoeacieiuoumYheWIsOWtl+auteasoeW6j+WPmOabtOeahOaVsOaNrueahOmXrumimFxuICAgICAgICAgICAgY29sdW1uX3dpZHRoLl9pZF9hY3Rpb25zID0gaWYgc2V0dGluZy5zZXR0aW5nc1tcIiN7bGlzdF92aWV3X2lkfVwiXT8uY29sdW1uX3dpZHRoPy5faWRfYWN0aW9ucyA9PSA0NiB0aGVuIDQ3IGVsc2UgNDZcbiAgICAgICAgICAgIGlmIHNvcnRcbiAgICAgICAgICAgICAgICBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLnVwZGF0ZSh7X2lkOiBzZXR0aW5nLl9pZH0sIHskc2V0OiB7XCJzZXR0aW5ncy4je2xpc3Rfdmlld19pZH0uc29ydFwiOiBzb3J0LCBcInNldHRpbmdzLiN7bGlzdF92aWV3X2lkfS5jb2x1bW5fd2lkdGhcIjogY29sdW1uX3dpZHRofX0pXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy51cGRhdGUoe19pZDogc2V0dGluZy5faWR9LCB7JHNldDoge1wic2V0dGluZ3MuI3tsaXN0X3ZpZXdfaWR9LmNvbHVtbl93aWR0aFwiOiBjb2x1bW5fd2lkdGh9fSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZG9jID1cbiAgICAgICAgICAgICAgICB0eXBlOiBcInVzZXJcIlxuICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lOiBvYmplY3RfbmFtZVxuICAgICAgICAgICAgICAgIHJlY29yZF9pZDogXCJvYmplY3RfZ3JpZHZpZXdzXCJcbiAgICAgICAgICAgICAgICBzZXR0aW5nczoge31cbiAgICAgICAgICAgICAgICBvd25lcjogdXNlcklkXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdID0ge31cbiAgICAgICAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdLmNvbHVtbl93aWR0aCA9IGNvbHVtbl93aWR0aFxuICAgICAgICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0uc29ydCA9IHNvcnRcblxuICAgICAgICAgICAgQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5pbnNlcnQoZG9jKSIsIlxuLypcbiAgICB0eXBlOiBcInVzZXJcIlxuICAgIG9iamVjdF9uYW1lOiBcIm9iamVjdF9saXN0dmlld3NcIlxuICAgIHJlY29yZF9pZDogXCJ7b2JqZWN0X25hbWV9LHtsaXN0dmlld19pZH1cIlxuICAgIHNldHRpbmdzOlxuICAgICAgICBjb2x1bW5fd2lkdGg6IHsgZmllbGRfYTogMTAwLCBmaWVsZF8yOiAxNTAgfVxuICAgICAgICBzb3J0OiBbW1wiZmllbGRfYVwiLCBcImRlc2NcIl1dXG4gICAgb3duZXI6IHt1c2VySWR9XG4gKi9cbk1ldGVvci5tZXRob2RzKHtcbiAgXCJ0YWJ1bGFyX3NvcnRfc2V0dGluZ3NcIjogZnVuY3Rpb24ob2JqZWN0X25hbWUsIGxpc3Rfdmlld19pZCwgc29ydCkge1xuICAgIHZhciBkb2MsIG9iaiwgc2V0dGluZywgdXNlcklkO1xuICAgIHVzZXJJZCA9IHRoaXMudXNlcklkO1xuICAgIHNldHRpbmcgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmZpbmRPbmUoe1xuICAgICAgb2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLFxuICAgICAgcmVjb3JkX2lkOiBcIm9iamVjdF9saXN0dmlld3NcIixcbiAgICAgIG93bmVyOiB1c2VySWRcbiAgICB9KTtcbiAgICBpZiAoc2V0dGluZykge1xuICAgICAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MudXBkYXRlKHtcbiAgICAgICAgX2lkOiBzZXR0aW5nLl9pZFxuICAgICAgfSwge1xuICAgICAgICAkc2V0OiAoXG4gICAgICAgICAgb2JqID0ge30sXG4gICAgICAgICAgb2JqW1wic2V0dGluZ3MuXCIgKyBsaXN0X3ZpZXdfaWQgKyBcIi5zb3J0XCJdID0gc29ydCxcbiAgICAgICAgICBvYmpcbiAgICAgICAgKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRvYyA9IHtcbiAgICAgICAgdHlwZTogXCJ1c2VyXCIsXG4gICAgICAgIG9iamVjdF9uYW1lOiBvYmplY3RfbmFtZSxcbiAgICAgICAgcmVjb3JkX2lkOiBcIm9iamVjdF9saXN0dmlld3NcIixcbiAgICAgICAgc2V0dGluZ3M6IHt9LFxuICAgICAgICBvd25lcjogdXNlcklkXG4gICAgICB9O1xuICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0gPSB7fTtcbiAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdLnNvcnQgPSBzb3J0O1xuICAgICAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuaW5zZXJ0KGRvYyk7XG4gICAgfVxuICB9LFxuICBcInRhYnVsYXJfY29sdW1uX3dpZHRoX3NldHRpbmdzXCI6IGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBsaXN0X3ZpZXdfaWQsIGNvbHVtbl93aWR0aCkge1xuICAgIHZhciBkb2MsIG9iaiwgc2V0dGluZywgdXNlcklkO1xuICAgIHVzZXJJZCA9IHRoaXMudXNlcklkO1xuICAgIHNldHRpbmcgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmZpbmRPbmUoe1xuICAgICAgb2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLFxuICAgICAgcmVjb3JkX2lkOiBcIm9iamVjdF9saXN0dmlld3NcIixcbiAgICAgIG93bmVyOiB1c2VySWRcbiAgICB9KTtcbiAgICBpZiAoc2V0dGluZykge1xuICAgICAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MudXBkYXRlKHtcbiAgICAgICAgX2lkOiBzZXR0aW5nLl9pZFxuICAgICAgfSwge1xuICAgICAgICAkc2V0OiAoXG4gICAgICAgICAgb2JqID0ge30sXG4gICAgICAgICAgb2JqW1wic2V0dGluZ3MuXCIgKyBsaXN0X3ZpZXdfaWQgKyBcIi5jb2x1bW5fd2lkdGhcIl0gPSBjb2x1bW5fd2lkdGgsXG4gICAgICAgICAgb2JqXG4gICAgICAgIClcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkb2MgPSB7XG4gICAgICAgIHR5cGU6IFwidXNlclwiLFxuICAgICAgICBvYmplY3RfbmFtZTogb2JqZWN0X25hbWUsXG4gICAgICAgIHJlY29yZF9pZDogXCJvYmplY3RfbGlzdHZpZXdzXCIsXG4gICAgICAgIHNldHRpbmdzOiB7fSxcbiAgICAgICAgb3duZXI6IHVzZXJJZFxuICAgICAgfTtcbiAgICAgIGRvYy5zZXR0aW5nc1tsaXN0X3ZpZXdfaWRdID0ge307XG4gICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXS5jb2x1bW5fd2lkdGggPSBjb2x1bW5fd2lkdGg7XG4gICAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5pbnNlcnQoZG9jKTtcbiAgICB9XG4gIH0sXG4gIFwiZ3JpZF9zZXR0aW5nc1wiOiBmdW5jdGlvbihvYmplY3RfbmFtZSwgbGlzdF92aWV3X2lkLCBjb2x1bW5fd2lkdGgsIHNvcnQpIHtcbiAgICB2YXIgZG9jLCBvYmosIG9iajEsIHJlZiwgcmVmMSwgc2V0dGluZywgdXNlcklkO1xuICAgIHVzZXJJZCA9IHRoaXMudXNlcklkO1xuICAgIHNldHRpbmcgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLmZpbmRPbmUoe1xuICAgICAgb2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLFxuICAgICAgcmVjb3JkX2lkOiBcIm9iamVjdF9ncmlkdmlld3NcIixcbiAgICAgIG93bmVyOiB1c2VySWRcbiAgICB9KTtcbiAgICBpZiAoc2V0dGluZykge1xuICAgICAgY29sdW1uX3dpZHRoLl9pZF9hY3Rpb25zID0gKChyZWYgPSBzZXR0aW5nLnNldHRpbmdzW1wiXCIgKyBsaXN0X3ZpZXdfaWRdKSAhPSBudWxsID8gKHJlZjEgPSByZWYuY29sdW1uX3dpZHRoKSAhPSBudWxsID8gcmVmMS5faWRfYWN0aW9ucyA6IHZvaWQgMCA6IHZvaWQgMCkgPT09IDQ2ID8gNDcgOiA0NjtcbiAgICAgIGlmIChzb3J0KSB7XG4gICAgICAgIHJldHVybiBDcmVhdG9yLkNvbGxlY3Rpb25zLnNldHRpbmdzLnVwZGF0ZSh7XG4gICAgICAgICAgX2lkOiBzZXR0aW5nLl9pZFxuICAgICAgICB9LCB7XG4gICAgICAgICAgJHNldDogKFxuICAgICAgICAgICAgb2JqID0ge30sXG4gICAgICAgICAgICBvYmpbXCJzZXR0aW5ncy5cIiArIGxpc3Rfdmlld19pZCArIFwiLnNvcnRcIl0gPSBzb3J0LFxuICAgICAgICAgICAgb2JqW1wic2V0dGluZ3MuXCIgKyBsaXN0X3ZpZXdfaWQgKyBcIi5jb2x1bW5fd2lkdGhcIl0gPSBjb2x1bW5fd2lkdGgsXG4gICAgICAgICAgICBvYmpcbiAgICAgICAgICApXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MudXBkYXRlKHtcbiAgICAgICAgICBfaWQ6IHNldHRpbmcuX2lkXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAkc2V0OiAoXG4gICAgICAgICAgICBvYmoxID0ge30sXG4gICAgICAgICAgICBvYmoxW1wic2V0dGluZ3MuXCIgKyBsaXN0X3ZpZXdfaWQgKyBcIi5jb2x1bW5fd2lkdGhcIl0gPSBjb2x1bW5fd2lkdGgsXG4gICAgICAgICAgICBvYmoxXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZG9jID0ge1xuICAgICAgICB0eXBlOiBcInVzZXJcIixcbiAgICAgICAgb2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLFxuICAgICAgICByZWNvcmRfaWQ6IFwib2JqZWN0X2dyaWR2aWV3c1wiLFxuICAgICAgICBzZXR0aW5nczoge30sXG4gICAgICAgIG93bmVyOiB1c2VySWRcbiAgICAgIH07XG4gICAgICBkb2Muc2V0dGluZ3NbbGlzdF92aWV3X2lkXSA9IHt9O1xuICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0uY29sdW1uX3dpZHRoID0gY29sdW1uX3dpZHRoO1xuICAgICAgZG9jLnNldHRpbmdzW2xpc3Rfdmlld19pZF0uc29ydCA9IHNvcnQ7XG4gICAgICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5zZXR0aW5ncy5pbnNlcnQoZG9jKTtcbiAgICB9XG4gIH1cbn0pO1xuIiwieG1sMmpzID0gcmVxdWlyZSAneG1sMmpzJ1xuZnMgPSByZXF1aXJlICdmcydcbnBhdGggPSByZXF1aXJlICdwYXRoJ1xubWtkaXJwID0gcmVxdWlyZSAnbWtkaXJwJ1xuXG5sb2dnZXIgPSBuZXcgTG9nZ2VyICdFeHBvcnRfVE9fWE1MJ1xuXG5fd3JpdGVYbWxGaWxlID0gKGpzb25PYmosb2JqTmFtZSkgLT5cblx0IyDovax4bWxcblx0YnVpbGRlciA9IG5ldyB4bWwyanMuQnVpbGRlcigpXG5cdHhtbCA9IGJ1aWxkZXIuYnVpbGRPYmplY3QganNvbk9ialxuXG5cdCMg6L2s5Li6YnVmZmVyXG5cdHN0cmVhbSA9IG5ldyBCdWZmZXIgeG1sXG5cblx0IyDmoLnmja7lvZPlpKnml7bpl7TnmoTlubTmnIjml6XkvZzkuLrlrZjlgqjot6/lvoRcblx0bm93ID0gbmV3IERhdGVcblx0eWVhciA9IG5vdy5nZXRGdWxsWWVhcigpXG5cdG1vbnRoID0gbm93LmdldE1vbnRoKCkgKyAxXG5cdGRheSA9IG5vdy5nZXREYXRlKClcblxuXHQjIOaWh+S7tui3r+W+hFxuXHRmaWxlUGF0aCA9IHBhdGguam9pbihfX21ldGVvcl9ib290c3RyYXBfXy5zZXJ2ZXJEaXIsJy4uLy4uLy4uL2V4cG9ydC8nICsgeWVhciArICcvJyArIG1vbnRoICsgJy8nICsgZGF5ICsgJy8nICsgb2JqTmFtZSApXG5cdGZpbGVOYW1lID0ganNvbk9iaj8uX2lkICsgXCIueG1sXCJcblx0ZmlsZUFkZHJlc3MgPSBwYXRoLmpvaW4gZmlsZVBhdGgsIGZpbGVOYW1lXG5cblx0aWYgIWZzLmV4aXN0c1N5bmMgZmlsZVBhdGhcblx0XHRta2RpcnAuc3luYyBmaWxlUGF0aFxuXG5cdCMg5YaZ5YWl5paH5Lu2XG5cdGZzLndyaXRlRmlsZSBmaWxlQWRkcmVzcywgc3RyZWFtLCAoZXJyKSAtPlxuXHRcdGlmIGVyclxuXHRcdFx0bG9nZ2VyLmVycm9yIFwiI3tqc29uT2JqLl9pZH3lhpnlhaV4bWzmlofku7blpLHotKVcIixlcnJcblx0XG5cdHJldHVybiBmaWxlUGF0aFxuXG5cbiMg5pW055CGRmllbGRz55qEanNvbuaVsOaNrlxuX21peEZpZWxkc0RhdGEgPSAob2JqLG9iak5hbWUpIC0+XG5cdCMg5Yid5aeL5YyW5a+56LGh5pWw5o2uXG5cdGpzb25PYmogPSB7fVxuXHQjIOiOt+WPlmZpZWxkc1xuXHRvYmpGaWVsZHMgPSBDcmVhdG9yPy5nZXRPYmplY3Qob2JqTmFtZSk/LmZpZWxkc1xuXG5cdG1peERlZmF1bHQgPSAoZmllbGRfbmFtZSktPlxuXHRcdGpzb25PYmpbZmllbGRfbmFtZV0gPSBvYmpbZmllbGRfbmFtZV0gfHwgXCJcIlxuXG5cdG1peERhdGUgPSAoZmllbGRfbmFtZSx0eXBlKS0+XG5cdFx0ZGF0ZSA9IG9ialtmaWVsZF9uYW1lXVxuXHRcdGlmIHR5cGUgPT0gXCJkYXRlXCJcblx0XHRcdGZvcm1hdCA9IFwiWVlZWS1NTS1ERFwiXG5cdFx0ZWxzZVxuXHRcdFx0Zm9ybWF0ID0gXCJZWVlZLU1NLUREIEhIOm1tOnNzXCJcblx0XHRpZiBkYXRlPyBhbmQgZm9ybWF0P1xuXHRcdFx0ZGF0ZVN0ciA9IG1vbWVudChkYXRlKS5mb3JtYXQoZm9ybWF0KVxuXHRcdGpzb25PYmpbZmllbGRfbmFtZV0gPSBkYXRlU3RyIHx8IFwiXCJcblxuXHRtaXhCb29sID0gKGZpZWxkX25hbWUpLT5cblx0XHRpZiBvYmpbZmllbGRfbmFtZV0gPT0gdHJ1ZVxuXHRcdFx0anNvbk9ialtmaWVsZF9uYW1lXSA9IFwi5pivXCJcblx0XHRlbHNlIGlmIG9ialtmaWVsZF9uYW1lXSA9PSBmYWxzZVxuXHRcdFx0anNvbk9ialtmaWVsZF9uYW1lXSA9IFwi5ZCmXCJcblx0XHRlbHNlXG5cdFx0XHRqc29uT2JqW2ZpZWxkX25hbWVdID0gXCJcIlxuXG5cdCMg5b6q546v5q+P5LiqZmllbGRzLOW5tuWIpOaWreWPluWAvFxuXHRfLmVhY2ggb2JqRmllbGRzLCAoZmllbGQsIGZpZWxkX25hbWUpLT5cblx0XHRzd2l0Y2ggZmllbGQ/LnR5cGVcblx0XHRcdHdoZW4gXCJkYXRlXCIsXCJkYXRldGltZVwiIHRoZW4gbWl4RGF0ZSBmaWVsZF9uYW1lLGZpZWxkLnR5cGVcblx0XHRcdHdoZW4gXCJib29sZWFuXCIgdGhlbiBtaXhCb29sIGZpZWxkX25hbWVcblx0XHRcdGVsc2UgbWl4RGVmYXVsdCBmaWVsZF9uYW1lXG5cblx0cmV0dXJuIGpzb25PYmpcblxuIyDojrflj5blrZDooajmlbTnkIbmlbDmja5cbl9taXhSZWxhdGVkRGF0YSA9IChvYmosb2JqTmFtZSkgLT5cblx0IyDliJ3lp4vljJblr7nosaHmlbDmja5cblx0cmVsYXRlZF9vYmplY3RzID0ge31cblxuXHQjIOiOt+WPluebuOWFs+ihqFxuXHRyZWxhdGVkT2JqTmFtZXMgPSBDcmVhdG9yPy5nZXRBbGxSZWxhdGVkT2JqZWN0cyBvYmpOYW1lXG5cblx0IyDlvqrnjq/nm7jlhbPooahcblx0cmVsYXRlZE9iak5hbWVzLmZvckVhY2ggKHJlbGF0ZWRPYmpOYW1lKSAtPlxuXHRcdCMg5q+P5Liq6KGo5a6a5LmJ5LiA5Liq5a+56LGh5pWw57uEXG5cdFx0cmVsYXRlZFRhYmxlRGF0YSA9IFtdXG5cblx0XHQjICrorr7nva7lhbPogZTmkJzntKLmn6Xor6LnmoTlrZfmrrVcblx0XHQjIOmZhOS7tueahOWFs+iBlOaQnOe0ouWtl+auteaYr+Wumuatu+eahFxuXHRcdGlmIHJlbGF0ZWRPYmpOYW1lID09IFwiY21zX2ZpbGVzXCJcblx0XHRcdHJlbGF0ZWRfZmllbGRfbmFtZSA9IFwicGFyZW50Lmlkc1wiXG5cdFx0ZWxzZVxuXHRcdFx0IyDojrflj5ZmaWVsZHNcblx0XHRcdGZpZWxkcyA9IENyZWF0b3I/Lk9iamVjdHNbcmVsYXRlZE9iak5hbWVdPy5maWVsZHNcblx0XHRcdCMg5b6q546v5q+P5LiqZmllbGQs5om+5Ye6cmVmZXJlbmNlX3Rv55qE5YWz6IGU5a2X5q61XG5cdFx0XHRyZWxhdGVkX2ZpZWxkX25hbWUgPSBcIlwiXG5cdFx0XHRfLmVhY2ggZmllbGRzLCAoZmllbGQsIGZpZWxkX25hbWUpLT5cblx0XHRcdFx0aWYgZmllbGQ/LnJlZmVyZW5jZV90byA9PSBvYmpOYW1lXG5cdFx0XHRcdFx0cmVsYXRlZF9maWVsZF9uYW1lID0gZmllbGRfbmFtZVxuXG5cdFx0IyDmoLnmja7mib7lh7rnmoTlhbPogZTlrZfmrrXvvIzmn6XlrZDooajmlbDmja5cblx0XHRpZiByZWxhdGVkX2ZpZWxkX25hbWVcblx0XHRcdHJlbGF0ZWRDb2xsZWN0aW9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlbGF0ZWRPYmpOYW1lKVxuXHRcdFx0IyDojrflj5bliLDmiYDmnInnmoTmlbDmja5cblx0XHRcdHJlbGF0ZWRSZWNvcmRMaXN0ID0gcmVsYXRlZENvbGxlY3Rpb24uZmluZCh7XCIje3JlbGF0ZWRfZmllbGRfbmFtZX1cIjpvYmouX2lkfSkuZmV0Y2goKVxuXHRcdFx0IyDlvqrnjq/mr4/kuIDmnaHmlbDmja5cblx0XHRcdHJlbGF0ZWRSZWNvcmRMaXN0LmZvckVhY2ggKHJlbGF0ZWRPYmopLT5cblx0XHRcdFx0IyDmlbTlkIhmaWVsZHPmlbDmja5cblx0XHRcdFx0ZmllbGRzRGF0YSA9IF9taXhGaWVsZHNEYXRhIHJlbGF0ZWRPYmoscmVsYXRlZE9iak5hbWVcblx0XHRcdFx0IyDmiorkuIDmnaHorrDlvZXmj5LlhaXliLDlr7nosaHmlbDnu4TkuK1cblx0XHRcdFx0cmVsYXRlZFRhYmxlRGF0YS5wdXNoIGZpZWxkc0RhdGFcblxuXHRcdCMg5oqK5LiA5Liq5a2Q6KGo55qE5omA5pyJ5pWw5o2u5o+S5YWl5YiwcmVsYXRlZF9vYmplY3Rz5Lit77yM5YaN5b6q546v5LiL5LiA5LiqXG5cdFx0cmVsYXRlZF9vYmplY3RzW3JlbGF0ZWRPYmpOYW1lXSA9IHJlbGF0ZWRUYWJsZURhdGFcblxuXHRyZXR1cm4gcmVsYXRlZF9vYmplY3RzXG5cbiMgQ3JlYXRvci5FeHBvcnQyeG1sKClcbkNyZWF0b3IuRXhwb3J0MnhtbCA9IChvYmpOYW1lLCByZWNvcmRMaXN0KSAtPlxuXHRsb2dnZXIuaW5mbyBcIlJ1biBDcmVhdG9yLkV4cG9ydDJ4bWxcIlxuXG5cdGNvbnNvbGUudGltZSBcIkNyZWF0b3IuRXhwb3J0MnhtbFwiXG5cblx0IyDmtYvor5XmlbDmja5cblx0IyBvYmpOYW1lID0gXCJhcmNoaXZlX3JlY29yZHNcIlxuXG5cdCMg5p+l5om+5a+56LGh5pWw5o2uXG5cdGNvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqTmFtZSlcblx0IyDmtYvor5XmlbDmja5cblx0cmVjb3JkTGlzdCA9IGNvbGxlY3Rpb24uZmluZCh7fSkuZmV0Y2goKVxuXG5cdHJlY29yZExpc3QuZm9yRWFjaCAocmVjb3JkT2JqKS0+XG5cdFx0anNvbk9iaiA9IHt9XG5cdFx0anNvbk9iai5faWQgPSByZWNvcmRPYmouX2lkXG5cblx0XHQjIOaVtOeQhuS4u+ihqOeahEZpZWxkc+aVsOaNrlxuXHRcdGZpZWxkc0RhdGEgPSBfbWl4RmllbGRzRGF0YSByZWNvcmRPYmosb2JqTmFtZVxuXHRcdGpzb25PYmpbb2JqTmFtZV0gPSBmaWVsZHNEYXRhXG5cblx0XHQjIOaVtOeQhuebuOWFs+ihqOaVsOaNrlxuXHRcdHJlbGF0ZWRfb2JqZWN0cyA9IF9taXhSZWxhdGVkRGF0YSByZWNvcmRPYmosb2JqTmFtZVxuXG5cdFx0anNvbk9ialtcInJlbGF0ZWRfb2JqZWN0c1wiXSA9IHJlbGF0ZWRfb2JqZWN0c1xuXG5cdFx0IyDovazkuLp4bWzkv53lrZjmlofku7Zcblx0XHRmaWxlUGF0aCA9IF93cml0ZVhtbEZpbGUganNvbk9iaixvYmpOYW1lXG5cblx0Y29uc29sZS50aW1lRW5kIFwiQ3JlYXRvci5FeHBvcnQyeG1sXCJcblx0cmV0dXJuIGZpbGVQYXRoIiwidmFyIF9taXhGaWVsZHNEYXRhLCBfbWl4UmVsYXRlZERhdGEsIF93cml0ZVhtbEZpbGUsIGZzLCBsb2dnZXIsIG1rZGlycCwgcGF0aCwgeG1sMmpzO1xuXG54bWwyanMgPSByZXF1aXJlKCd4bWwyanMnKTtcblxuZnMgPSByZXF1aXJlKCdmcycpO1xuXG5wYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuXG5ta2RpcnAgPSByZXF1aXJlKCdta2RpcnAnKTtcblxubG9nZ2VyID0gbmV3IExvZ2dlcignRXhwb3J0X1RPX1hNTCcpO1xuXG5fd3JpdGVYbWxGaWxlID0gZnVuY3Rpb24oanNvbk9iaiwgb2JqTmFtZSkge1xuICB2YXIgYnVpbGRlciwgZGF5LCBmaWxlQWRkcmVzcywgZmlsZU5hbWUsIGZpbGVQYXRoLCBtb250aCwgbm93LCBzdHJlYW0sIHhtbCwgeWVhcjtcbiAgYnVpbGRlciA9IG5ldyB4bWwyanMuQnVpbGRlcigpO1xuICB4bWwgPSBidWlsZGVyLmJ1aWxkT2JqZWN0KGpzb25PYmopO1xuICBzdHJlYW0gPSBuZXcgQnVmZmVyKHhtbCk7XG4gIG5vdyA9IG5ldyBEYXRlO1xuICB5ZWFyID0gbm93LmdldEZ1bGxZZWFyKCk7XG4gIG1vbnRoID0gbm93LmdldE1vbnRoKCkgKyAxO1xuICBkYXkgPSBub3cuZ2V0RGF0ZSgpO1xuICBmaWxlUGF0aCA9IHBhdGguam9pbihfX21ldGVvcl9ib290c3RyYXBfXy5zZXJ2ZXJEaXIsICcuLi8uLi8uLi9leHBvcnQvJyArIHllYXIgKyAnLycgKyBtb250aCArICcvJyArIGRheSArICcvJyArIG9iak5hbWUpO1xuICBmaWxlTmFtZSA9IChqc29uT2JqICE9IG51bGwgPyBqc29uT2JqLl9pZCA6IHZvaWQgMCkgKyBcIi54bWxcIjtcbiAgZmlsZUFkZHJlc3MgPSBwYXRoLmpvaW4oZmlsZVBhdGgsIGZpbGVOYW1lKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIG1rZGlycC5zeW5jKGZpbGVQYXRoKTtcbiAgfVxuICBmcy53cml0ZUZpbGUoZmlsZUFkZHJlc3MsIHN0cmVhbSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgaWYgKGVycikge1xuICAgICAgcmV0dXJuIGxvZ2dlci5lcnJvcihqc29uT2JqLl9pZCArIFwi5YaZ5YWleG1s5paH5Lu25aSx6LSlXCIsIGVycik7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGZpbGVQYXRoO1xufTtcblxuX21peEZpZWxkc0RhdGEgPSBmdW5jdGlvbihvYmosIG9iak5hbWUpIHtcbiAgdmFyIGpzb25PYmosIG1peEJvb2wsIG1peERhdGUsIG1peERlZmF1bHQsIG9iakZpZWxkcywgcmVmO1xuICBqc29uT2JqID0ge307XG4gIG9iakZpZWxkcyA9IHR5cGVvZiBDcmVhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIENyZWF0b3IgIT09IG51bGwgPyAocmVmID0gQ3JlYXRvci5nZXRPYmplY3Qob2JqTmFtZSkpICE9IG51bGwgPyByZWYuZmllbGRzIDogdm9pZCAwIDogdm9pZCAwO1xuICBtaXhEZWZhdWx0ID0gZnVuY3Rpb24oZmllbGRfbmFtZSkge1xuICAgIHJldHVybiBqc29uT2JqW2ZpZWxkX25hbWVdID0gb2JqW2ZpZWxkX25hbWVdIHx8IFwiXCI7XG4gIH07XG4gIG1peERhdGUgPSBmdW5jdGlvbihmaWVsZF9uYW1lLCB0eXBlKSB7XG4gICAgdmFyIGRhdGUsIGRhdGVTdHIsIGZvcm1hdDtcbiAgICBkYXRlID0gb2JqW2ZpZWxkX25hbWVdO1xuICAgIGlmICh0eXBlID09PSBcImRhdGVcIikge1xuICAgICAgZm9ybWF0ID0gXCJZWVlZLU1NLUREXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdCA9IFwiWVlZWS1NTS1ERCBISDptbTpzc1wiO1xuICAgIH1cbiAgICBpZiAoKGRhdGUgIT0gbnVsbCkgJiYgKGZvcm1hdCAhPSBudWxsKSkge1xuICAgICAgZGF0ZVN0ciA9IG1vbWVudChkYXRlKS5mb3JtYXQoZm9ybWF0KTtcbiAgICB9XG4gICAgcmV0dXJuIGpzb25PYmpbZmllbGRfbmFtZV0gPSBkYXRlU3RyIHx8IFwiXCI7XG4gIH07XG4gIG1peEJvb2wgPSBmdW5jdGlvbihmaWVsZF9uYW1lKSB7XG4gICAgaWYgKG9ialtmaWVsZF9uYW1lXSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIGpzb25PYmpbZmllbGRfbmFtZV0gPSBcIuaYr1wiO1xuICAgIH0gZWxzZSBpZiAob2JqW2ZpZWxkX25hbWVdID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIGpzb25PYmpbZmllbGRfbmFtZV0gPSBcIuWQplwiO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ganNvbk9ialtmaWVsZF9uYW1lXSA9IFwiXCI7XG4gICAgfVxuICB9O1xuICBfLmVhY2gob2JqRmllbGRzLCBmdW5jdGlvbihmaWVsZCwgZmllbGRfbmFtZSkge1xuICAgIHN3aXRjaCAoZmllbGQgIT0gbnVsbCA/IGZpZWxkLnR5cGUgOiB2b2lkIDApIHtcbiAgICAgIGNhc2UgXCJkYXRlXCI6XG4gICAgICBjYXNlIFwiZGF0ZXRpbWVcIjpcbiAgICAgICAgcmV0dXJuIG1peERhdGUoZmllbGRfbmFtZSwgZmllbGQudHlwZSk7XG4gICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICByZXR1cm4gbWl4Qm9vbChmaWVsZF9uYW1lKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBtaXhEZWZhdWx0KGZpZWxkX25hbWUpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBqc29uT2JqO1xufTtcblxuX21peFJlbGF0ZWREYXRhID0gZnVuY3Rpb24ob2JqLCBvYmpOYW1lKSB7XG4gIHZhciByZWxhdGVkT2JqTmFtZXMsIHJlbGF0ZWRfb2JqZWN0cztcbiAgcmVsYXRlZF9vYmplY3RzID0ge307XG4gIHJlbGF0ZWRPYmpOYW1lcyA9IHR5cGVvZiBDcmVhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIENyZWF0b3IgIT09IG51bGwgPyBDcmVhdG9yLmdldEFsbFJlbGF0ZWRPYmplY3RzKG9iak5hbWUpIDogdm9pZCAwO1xuICByZWxhdGVkT2JqTmFtZXMuZm9yRWFjaChmdW5jdGlvbihyZWxhdGVkT2JqTmFtZSkge1xuICAgIHZhciBmaWVsZHMsIG9iajEsIHJlZiwgcmVsYXRlZENvbGxlY3Rpb24sIHJlbGF0ZWRSZWNvcmRMaXN0LCByZWxhdGVkVGFibGVEYXRhLCByZWxhdGVkX2ZpZWxkX25hbWU7XG4gICAgcmVsYXRlZFRhYmxlRGF0YSA9IFtdO1xuICAgIGlmIChyZWxhdGVkT2JqTmFtZSA9PT0gXCJjbXNfZmlsZXNcIikge1xuICAgICAgcmVsYXRlZF9maWVsZF9uYW1lID0gXCJwYXJlbnQuaWRzXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpZWxkcyA9IHR5cGVvZiBDcmVhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmIENyZWF0b3IgIT09IG51bGwgPyAocmVmID0gQ3JlYXRvci5PYmplY3RzW3JlbGF0ZWRPYmpOYW1lXSkgIT0gbnVsbCA/IHJlZi5maWVsZHMgOiB2b2lkIDAgOiB2b2lkIDA7XG4gICAgICByZWxhdGVkX2ZpZWxkX25hbWUgPSBcIlwiO1xuICAgICAgXy5lYWNoKGZpZWxkcywgZnVuY3Rpb24oZmllbGQsIGZpZWxkX25hbWUpIHtcbiAgICAgICAgaWYgKChmaWVsZCAhPSBudWxsID8gZmllbGQucmVmZXJlbmNlX3RvIDogdm9pZCAwKSA9PT0gb2JqTmFtZSkge1xuICAgICAgICAgIHJldHVybiByZWxhdGVkX2ZpZWxkX25hbWUgPSBmaWVsZF9uYW1lO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlbGF0ZWRfZmllbGRfbmFtZSkge1xuICAgICAgcmVsYXRlZENvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVsYXRlZE9iak5hbWUpO1xuICAgICAgcmVsYXRlZFJlY29yZExpc3QgPSByZWxhdGVkQ29sbGVjdGlvbi5maW5kKChcbiAgICAgICAgb2JqMSA9IHt9LFxuICAgICAgICBvYmoxW1wiXCIgKyByZWxhdGVkX2ZpZWxkX25hbWVdID0gb2JqLl9pZCxcbiAgICAgICAgb2JqMVxuICAgICAgKSkuZmV0Y2goKTtcbiAgICAgIHJlbGF0ZWRSZWNvcmRMaXN0LmZvckVhY2goZnVuY3Rpb24ocmVsYXRlZE9iaikge1xuICAgICAgICB2YXIgZmllbGRzRGF0YTtcbiAgICAgICAgZmllbGRzRGF0YSA9IF9taXhGaWVsZHNEYXRhKHJlbGF0ZWRPYmosIHJlbGF0ZWRPYmpOYW1lKTtcbiAgICAgICAgcmV0dXJuIHJlbGF0ZWRUYWJsZURhdGEucHVzaChmaWVsZHNEYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVsYXRlZF9vYmplY3RzW3JlbGF0ZWRPYmpOYW1lXSA9IHJlbGF0ZWRUYWJsZURhdGE7XG4gIH0pO1xuICByZXR1cm4gcmVsYXRlZF9vYmplY3RzO1xufTtcblxuQ3JlYXRvci5FeHBvcnQyeG1sID0gZnVuY3Rpb24ob2JqTmFtZSwgcmVjb3JkTGlzdCkge1xuICB2YXIgY29sbGVjdGlvbjtcbiAgbG9nZ2VyLmluZm8oXCJSdW4gQ3JlYXRvci5FeHBvcnQyeG1sXCIpO1xuICBjb25zb2xlLnRpbWUoXCJDcmVhdG9yLkV4cG9ydDJ4bWxcIik7XG4gIGNvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqTmFtZSk7XG4gIHJlY29yZExpc3QgPSBjb2xsZWN0aW9uLmZpbmQoe30pLmZldGNoKCk7XG4gIHJlY29yZExpc3QuZm9yRWFjaChmdW5jdGlvbihyZWNvcmRPYmopIHtcbiAgICB2YXIgZmllbGRzRGF0YSwgZmlsZVBhdGgsIGpzb25PYmosIHJlbGF0ZWRfb2JqZWN0cztcbiAgICBqc29uT2JqID0ge307XG4gICAganNvbk9iai5faWQgPSByZWNvcmRPYmouX2lkO1xuICAgIGZpZWxkc0RhdGEgPSBfbWl4RmllbGRzRGF0YShyZWNvcmRPYmosIG9iak5hbWUpO1xuICAgIGpzb25PYmpbb2JqTmFtZV0gPSBmaWVsZHNEYXRhO1xuICAgIHJlbGF0ZWRfb2JqZWN0cyA9IF9taXhSZWxhdGVkRGF0YShyZWNvcmRPYmosIG9iak5hbWUpO1xuICAgIGpzb25PYmpbXCJyZWxhdGVkX29iamVjdHNcIl0gPSByZWxhdGVkX29iamVjdHM7XG4gICAgcmV0dXJuIGZpbGVQYXRoID0gX3dyaXRlWG1sRmlsZShqc29uT2JqLCBvYmpOYW1lKTtcbiAgfSk7XG4gIGNvbnNvbGUudGltZUVuZChcIkNyZWF0b3IuRXhwb3J0MnhtbFwiKTtcbiAgcmV0dXJuIGZpbGVQYXRoO1xufTtcbiIsIk1ldGVvci5tZXRob2RzIFxuXHRyZWxhdGVkX29iamVjdHNfcmVjb3JkczogKG9iamVjdF9uYW1lLCByZWxhdGVkX29iamVjdF9uYW1lLCByZWxhdGVkX2ZpZWxkX25hbWUsIHJlY29yZF9pZCwgc3BhY2VJZCktPlxuXHRcdHVzZXJJZCA9IHRoaXMudXNlcklkXG5cdFx0aWYgcmVsYXRlZF9vYmplY3RfbmFtZSA9PSBcImNmcy5maWxlcy5maWxlcmVjb3JkXCJcblx0XHRcdHNlbGVjdG9yID0ge1wibWV0YWRhdGEuc3BhY2VcIjogc3BhY2VJZH1cblx0XHRlbHNlXG5cdFx0XHRzZWxlY3RvciA9IHtzcGFjZTogc3BhY2VJZH1cblx0XHRcblx0XHRpZiByZWxhdGVkX29iamVjdF9uYW1lID09IFwiY21zX2ZpbGVzXCJcblx0XHRcdCMg6ZmE5Lu255qE5YWz6IGU5pCc57Si5p2h5Lu25piv5a6a5q2755qEXG5cdFx0XHRzZWxlY3RvcltcInBhcmVudC5vXCJdID0gb2JqZWN0X25hbWVcblx0XHRcdHNlbGVjdG9yW1wicGFyZW50Lmlkc1wiXSA9IFtyZWNvcmRfaWRdXG5cdFx0ZWxzZVxuXHRcdFx0c2VsZWN0b3JbcmVsYXRlZF9maWVsZF9uYW1lXSA9IHJlY29yZF9pZFxuXG5cdFx0cGVybWlzc2lvbnMgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKHJlbGF0ZWRfb2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZClcblx0XHRpZiAhcGVybWlzc2lvbnMudmlld0FsbFJlY29yZHMgYW5kIHBlcm1pc3Npb25zLmFsbG93UmVhZFxuXHRcdFx0c2VsZWN0b3Iub3duZXIgPSB1c2VySWRcblx0XHRcblx0XHRyZWxhdGVkX3JlY29yZHMgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVsYXRlZF9vYmplY3RfbmFtZSkuZmluZChzZWxlY3Rvcilcblx0XHRyZXR1cm4gcmVsYXRlZF9yZWNvcmRzLmNvdW50KCkiLCJNZXRlb3IubWV0aG9kcyh7XG4gIHJlbGF0ZWRfb2JqZWN0c19yZWNvcmRzOiBmdW5jdGlvbihvYmplY3RfbmFtZSwgcmVsYXRlZF9vYmplY3RfbmFtZSwgcmVsYXRlZF9maWVsZF9uYW1lLCByZWNvcmRfaWQsIHNwYWNlSWQpIHtcbiAgICB2YXIgcGVybWlzc2lvbnMsIHJlbGF0ZWRfcmVjb3Jkcywgc2VsZWN0b3IsIHVzZXJJZDtcbiAgICB1c2VySWQgPSB0aGlzLnVzZXJJZDtcbiAgICBpZiAocmVsYXRlZF9vYmplY3RfbmFtZSA9PT0gXCJjZnMuZmlsZXMuZmlsZXJlY29yZFwiKSB7XG4gICAgICBzZWxlY3RvciA9IHtcbiAgICAgICAgXCJtZXRhZGF0YS5zcGFjZVwiOiBzcGFjZUlkXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RvciA9IHtcbiAgICAgICAgc3BhY2U6IHNwYWNlSWRcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChyZWxhdGVkX29iamVjdF9uYW1lID09PSBcImNtc19maWxlc1wiKSB7XG4gICAgICBzZWxlY3RvcltcInBhcmVudC5vXCJdID0gb2JqZWN0X25hbWU7XG4gICAgICBzZWxlY3RvcltcInBhcmVudC5pZHNcIl0gPSBbcmVjb3JkX2lkXTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0b3JbcmVsYXRlZF9maWVsZF9uYW1lXSA9IHJlY29yZF9pZDtcbiAgICB9XG4gICAgcGVybWlzc2lvbnMgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKHJlbGF0ZWRfb2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZCk7XG4gICAgaWYgKCFwZXJtaXNzaW9ucy52aWV3QWxsUmVjb3JkcyAmJiBwZXJtaXNzaW9ucy5hbGxvd1JlYWQpIHtcbiAgICAgIHNlbGVjdG9yLm93bmVyID0gdXNlcklkO1xuICAgIH1cbiAgICByZWxhdGVkX3JlY29yZHMgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVsYXRlZF9vYmplY3RfbmFtZSkuZmluZChzZWxlY3Rvcik7XG4gICAgcmV0dXJuIHJlbGF0ZWRfcmVjb3Jkcy5jb3VudCgpO1xuICB9XG59KTtcbiIsIk1ldGVvci5tZXRob2RzXG5cdGdldFBlbmRpbmdTcGFjZUluZm86IChpbnZpdGVySWQsIHNwYWNlSWQpLT5cblx0XHRpbnZpdGVyTmFtZSA9IGRiLnVzZXJzLmZpbmRPbmUoe19pZDogaW52aXRlcklkfSkubmFtZVxuXHRcdHNwYWNlTmFtZSA9IGRiLnNwYWNlcy5maW5kT25lKHtfaWQ6IHNwYWNlSWR9KS5uYW1lXG5cblx0XHRyZXR1cm4ge2ludml0ZXI6IGludml0ZXJOYW1lLCBzcGFjZTogc3BhY2VOYW1lfVxuXG5cdHJlZnVzZUpvaW5TcGFjZTogKF9pZCktPlxuXHRcdGRiLnNwYWNlX3VzZXJzLmRpcmVjdC51cGRhdGUoe19pZDogX2lkfSx7JHNldDoge2ludml0ZV9zdGF0ZTogXCJyZWZ1c2VkXCJ9fSlcblxuXHRhY2NlcHRKb2luU3BhY2U6IChfaWQpLT5cblx0XHRkYi5zcGFjZV91c2Vycy5kaXJlY3QudXBkYXRlKHtfaWQ6IF9pZH0seyRzZXQ6IHtpbnZpdGVfc3RhdGU6IFwiYWNjZXB0ZWRcIiwgdXNlcl9hY2NlcHRlZDogdHJ1ZX19KVxuXG4iLCJNZXRlb3IubWV0aG9kcyh7XG4gIGdldFBlbmRpbmdTcGFjZUluZm86IGZ1bmN0aW9uKGludml0ZXJJZCwgc3BhY2VJZCkge1xuICAgIHZhciBpbnZpdGVyTmFtZSwgc3BhY2VOYW1lO1xuICAgIGludml0ZXJOYW1lID0gZGIudXNlcnMuZmluZE9uZSh7XG4gICAgICBfaWQ6IGludml0ZXJJZFxuICAgIH0pLm5hbWU7XG4gICAgc3BhY2VOYW1lID0gZGIuc3BhY2VzLmZpbmRPbmUoe1xuICAgICAgX2lkOiBzcGFjZUlkXG4gICAgfSkubmFtZTtcbiAgICByZXR1cm4ge1xuICAgICAgaW52aXRlcjogaW52aXRlck5hbWUsXG4gICAgICBzcGFjZTogc3BhY2VOYW1lXG4gICAgfTtcbiAgfSxcbiAgcmVmdXNlSm9pblNwYWNlOiBmdW5jdGlvbihfaWQpIHtcbiAgICByZXR1cm4gZGIuc3BhY2VfdXNlcnMuZGlyZWN0LnVwZGF0ZSh7XG4gICAgICBfaWQ6IF9pZFxuICAgIH0sIHtcbiAgICAgICRzZXQ6IHtcbiAgICAgICAgaW52aXRlX3N0YXRlOiBcInJlZnVzZWRcIlxuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBhY2NlcHRKb2luU3BhY2U6IGZ1bmN0aW9uKF9pZCkge1xuICAgIHJldHVybiBkYi5zcGFjZV91c2Vycy5kaXJlY3QudXBkYXRlKHtcbiAgICAgIF9pZDogX2lkXG4gICAgfSwge1xuICAgICAgJHNldDoge1xuICAgICAgICBpbnZpdGVfc3RhdGU6IFwiYWNjZXB0ZWRcIixcbiAgICAgICAgdXNlcl9hY2NlcHRlZDogdHJ1ZVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59KTtcbiIsIk1ldGVvci5wdWJsaXNoIFwiY3JlYXRvcl9vYmplY3RfcmVjb3JkXCIsIChvYmplY3RfbmFtZSwgaWQsIHNwYWNlX2lkKS0+XG5cdGNvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUsIHNwYWNlX2lkKVxuXHRpZiBjb2xsZWN0aW9uXG5cdFx0cmV0dXJuIGNvbGxlY3Rpb24uZmluZCh7X2lkOiBpZH0pXG5cbiIsIk1ldGVvci5wdWJsaXNoKFwiY3JlYXRvcl9vYmplY3RfcmVjb3JkXCIsIGZ1bmN0aW9uKG9iamVjdF9uYW1lLCBpZCwgc3BhY2VfaWQpIHtcbiAgdmFyIGNvbGxlY3Rpb247XG4gIGNvbGxlY3Rpb24gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqZWN0X25hbWUsIHNwYWNlX2lkKTtcbiAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICByZXR1cm4gY29sbGVjdGlvbi5maW5kKHtcbiAgICAgIF9pZDogaWRcbiAgICB9KTtcbiAgfVxufSk7XG4iLCJNZXRlb3IucHVibGlzaENvbXBvc2l0ZSBcInN0ZWVkb3Nfb2JqZWN0X3RhYnVsYXJcIiwgKHRhYmxlTmFtZSwgaWRzLCBmaWVsZHMsIHNwYWNlSWQpLT5cblx0dW5sZXNzIHRoaXMudXNlcklkXG5cdFx0cmV0dXJuIHRoaXMucmVhZHkoKVxuXG5cdGNoZWNrKHRhYmxlTmFtZSwgU3RyaW5nKTtcblx0Y2hlY2soaWRzLCBBcnJheSk7XG5cdGNoZWNrKGZpZWxkcywgTWF0Y2guT3B0aW9uYWwoT2JqZWN0KSk7XG5cblx0X29iamVjdF9uYW1lID0gdGFibGVOYW1lLnJlcGxhY2UoXCJjcmVhdG9yX1wiLFwiXCIpXG5cdF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChfb2JqZWN0X25hbWUsIHNwYWNlSWQpXG5cblx0aWYgc3BhY2VJZFxuXHRcdF9vYmplY3RfbmFtZSA9IENyZWF0b3IuZ2V0T2JqZWN0TmFtZShfb2JqZWN0KVxuXG5cdG9iamVjdF9jb2xsZWNpdG9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKF9vYmplY3RfbmFtZSlcblxuXG5cdF9maWVsZHMgPSBfb2JqZWN0Py5maWVsZHNcblx0aWYgIV9maWVsZHMgfHwgIW9iamVjdF9jb2xsZWNpdG9uXG5cdFx0cmV0dXJuIHRoaXMucmVhZHkoKVxuXG5cdHJlZmVyZW5jZV9maWVsZHMgPSBfLmZpbHRlciBfZmllbGRzLCAoZiktPlxuXHRcdHJldHVybiBfLmlzRnVuY3Rpb24oZi5yZWZlcmVuY2VfdG8pIHx8ICFfLmlzRW1wdHkoZi5yZWZlcmVuY2VfdG8pXG5cblx0c2VsZiA9IHRoaXNcblxuXHRzZWxmLnVuYmxvY2soKTtcblxuXHRpZiByZWZlcmVuY2VfZmllbGRzLmxlbmd0aCA+IDBcblx0XHRkYXRhID0ge1xuXHRcdFx0ZmluZDogKCktPlxuXHRcdFx0XHRzZWxmLnVuYmxvY2soKTtcblx0XHRcdFx0ZmllbGRfa2V5cyA9IHt9XG5cdFx0XHRcdF8uZWFjaCBfLmtleXMoZmllbGRzKSwgKGYpLT5cblx0XHRcdFx0XHR1bmxlc3MgL1xcdysoXFwuXFwkKXsxfVxcdz8vLnRlc3QoZilcblx0XHRcdFx0XHRcdGZpZWxkX2tleXNbZl0gPSAxXG5cdFx0XHRcdFxuXHRcdFx0XHRyZXR1cm4gb2JqZWN0X2NvbGxlY2l0b24uZmluZCh7X2lkOiB7JGluOiBpZHN9fSwge2ZpZWxkczogZmllbGRfa2V5c30pO1xuXHRcdH1cblxuXHRcdGRhdGEuY2hpbGRyZW4gPSBbXVxuXG5cdFx0a2V5cyA9IF8ua2V5cyhmaWVsZHMpXG5cblx0XHRpZiBrZXlzLmxlbmd0aCA8IDFcblx0XHRcdGtleXMgPSBfLmtleXMoX2ZpZWxkcylcblxuXHRcdF9rZXlzID0gW11cblxuXHRcdGtleXMuZm9yRWFjaCAoa2V5KS0+XG5cdFx0XHRpZiBfb2JqZWN0LnNjaGVtYS5fb2JqZWN0S2V5c1trZXkgKyAnLiddXG5cdFx0XHRcdF9rZXlzID0gX2tleXMuY29uY2F0KF8ubWFwKF9vYmplY3Quc2NoZW1hLl9vYmplY3RLZXlzW2tleSArICcuJ10sIChrKS0+XG5cdFx0XHRcdFx0cmV0dXJuIGtleSArICcuJyArIGtcblx0XHRcdFx0KSlcblx0XHRcdF9rZXlzLnB1c2goa2V5KVxuXG5cdFx0X2tleXMuZm9yRWFjaCAoa2V5KS0+XG5cdFx0XHRyZWZlcmVuY2VfZmllbGQgPSBfZmllbGRzW2tleV1cblxuXHRcdFx0aWYgcmVmZXJlbmNlX2ZpZWxkICYmIChfLmlzRnVuY3Rpb24ocmVmZXJlbmNlX2ZpZWxkLnJlZmVyZW5jZV90bykgfHwgIV8uaXNFbXB0eShyZWZlcmVuY2VfZmllbGQucmVmZXJlbmNlX3RvKSkgICMgYW5kIENyZWF0b3IuQ29sbGVjdGlvbnNbcmVmZXJlbmNlX2ZpZWxkLnJlZmVyZW5jZV90b11cblx0XHRcdFx0ZGF0YS5jaGlsZHJlbi5wdXNoIHtcblx0XHRcdFx0XHRmaW5kOiAocGFyZW50KSAtPlxuXHRcdFx0XHRcdFx0dHJ5XG5cdFx0XHRcdFx0XHRcdHNlbGYudW5ibG9jaygpO1xuXG5cdFx0XHRcdFx0XHRcdHF1ZXJ5ID0ge31cblxuXHRcdFx0XHRcdFx0XHQjIOihqOagvOWtkOWtl+auteeJueauiuWkhOeQhlxuXHRcdFx0XHRcdFx0XHRpZiAvXFx3KyhcXC5cXCRcXC4pezF9XFx3Ky8udGVzdChrZXkpXG5cdFx0XHRcdFx0XHRcdFx0cF9rID0ga2V5LnJlcGxhY2UoLyhcXHcrKVxcLlxcJFxcLlxcdysvaWcsIFwiJDFcIilcblx0XHRcdFx0XHRcdFx0XHRzX2sgPSBrZXkucmVwbGFjZSgvXFx3K1xcLlxcJFxcLihcXHcrKS9pZywgXCIkMVwiKVxuXHRcdFx0XHRcdFx0XHRcdHJlZmVyZW5jZV9pZHMgPSBwYXJlbnRbcF9rXS5nZXRQcm9wZXJ0eShzX2spXG5cdFx0XHRcdFx0XHRcdGVsc2Vcblx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VfaWRzID0ga2V5LnNwbGl0KCcuJykucmVkdWNlIChvLCB4KSAtPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvP1t4XVxuXHRcdFx0XHRcdFx0XHRcdCwgcGFyZW50XG5cblx0XHRcdFx0XHRcdFx0cmVmZXJlbmNlX3RvID0gcmVmZXJlbmNlX2ZpZWxkLnJlZmVyZW5jZV90b1xuXG5cdFx0XHRcdFx0XHRcdGlmIF8uaXNGdW5jdGlvbihyZWZlcmVuY2VfdG8pXG5cdFx0XHRcdFx0XHRcdFx0cmVmZXJlbmNlX3RvID0gcmVmZXJlbmNlX3RvKClcblxuXHRcdFx0XHRcdFx0XHRpZiBfLmlzQXJyYXkocmVmZXJlbmNlX3RvKVxuXHRcdFx0XHRcdFx0XHRcdGlmIF8uaXNPYmplY3QocmVmZXJlbmNlX2lkcykgJiYgIV8uaXNBcnJheShyZWZlcmVuY2VfaWRzKVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVmZXJlbmNlX3RvID0gcmVmZXJlbmNlX2lkcy5vXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VfaWRzID0gcmVmZXJlbmNlX2lkcy5pZHMgfHwgW11cblx0XHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gW11cblxuXHRcdFx0XHRcdFx0XHRpZiBfLmlzQXJyYXkocmVmZXJlbmNlX2lkcylcblx0XHRcdFx0XHRcdFx0XHRxdWVyeS5faWQgPSB7JGluOiByZWZlcmVuY2VfaWRzfVxuXHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0cXVlcnkuX2lkID0gcmVmZXJlbmNlX2lkc1xuXG5cdFx0XHRcdFx0XHRcdHJlZmVyZW5jZV90b19vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChyZWZlcmVuY2VfdG8sIHNwYWNlSWQpXG5cblx0XHRcdFx0XHRcdFx0bmFtZV9maWVsZF9rZXkgPSByZWZlcmVuY2VfdG9fb2JqZWN0Lk5BTUVfRklFTERfS0VZXG5cblx0XHRcdFx0XHRcdFx0Y2hpbGRyZW5fZmllbGRzID0ge19pZDogMSwgc3BhY2U6IDF9XG5cblx0XHRcdFx0XHRcdFx0aWYgbmFtZV9maWVsZF9rZXlcblx0XHRcdFx0XHRcdFx0XHRjaGlsZHJlbl9maWVsZHNbbmFtZV9maWVsZF9rZXldID0gMVxuXG5cdFx0XHRcdFx0XHRcdHJldHVybiBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVmZXJlbmNlX3RvLCBzcGFjZUlkKS5maW5kKHF1ZXJ5LCB7XG5cdFx0XHRcdFx0XHRcdFx0ZmllbGRzOiBjaGlsZHJlbl9maWVsZHNcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRjYXRjaCBlXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKHJlZmVyZW5jZV90bywgcGFyZW50LCBlKVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW11cblx0XHRcdFx0fVxuXG5cdFx0cmV0dXJuIGRhdGFcblx0ZWxzZVxuXHRcdHJldHVybiB7XG5cdFx0XHRmaW5kOiAoKS0+XG5cdFx0XHRcdHNlbGYudW5ibG9jaygpO1xuXHRcdFx0XHRyZXR1cm4gb2JqZWN0X2NvbGxlY2l0b24uZmluZCh7X2lkOiB7JGluOiBpZHN9fSwge2ZpZWxkczogZmllbGRzfSlcblx0XHR9O1xuXG4iLCJNZXRlb3IucHVibGlzaENvbXBvc2l0ZShcInN0ZWVkb3Nfb2JqZWN0X3RhYnVsYXJcIiwgZnVuY3Rpb24odGFibGVOYW1lLCBpZHMsIGZpZWxkcywgc3BhY2VJZCkge1xuICB2YXIgX2ZpZWxkcywgX2tleXMsIF9vYmplY3QsIF9vYmplY3RfbmFtZSwgZGF0YSwga2V5cywgb2JqZWN0X2NvbGxlY2l0b24sIHJlZmVyZW5jZV9maWVsZHMsIHNlbGY7XG4gIGlmICghdGhpcy51c2VySWQpIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeSgpO1xuICB9XG4gIGNoZWNrKHRhYmxlTmFtZSwgU3RyaW5nKTtcbiAgY2hlY2soaWRzLCBBcnJheSk7XG4gIGNoZWNrKGZpZWxkcywgTWF0Y2guT3B0aW9uYWwoT2JqZWN0KSk7XG4gIF9vYmplY3RfbmFtZSA9IHRhYmxlTmFtZS5yZXBsYWNlKFwiY3JlYXRvcl9cIiwgXCJcIik7XG4gIF9vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChfb2JqZWN0X25hbWUsIHNwYWNlSWQpO1xuICBpZiAoc3BhY2VJZCkge1xuICAgIF9vYmplY3RfbmFtZSA9IENyZWF0b3IuZ2V0T2JqZWN0TmFtZShfb2JqZWN0KTtcbiAgfVxuICBvYmplY3RfY29sbGVjaXRvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihfb2JqZWN0X25hbWUpO1xuICBfZmllbGRzID0gX29iamVjdCAhPSBudWxsID8gX29iamVjdC5maWVsZHMgOiB2b2lkIDA7XG4gIGlmICghX2ZpZWxkcyB8fCAhb2JqZWN0X2NvbGxlY2l0b24pIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkeSgpO1xuICB9XG4gIHJlZmVyZW5jZV9maWVsZHMgPSBfLmZpbHRlcihfZmllbGRzLCBmdW5jdGlvbihmKSB7XG4gICAgcmV0dXJuIF8uaXNGdW5jdGlvbihmLnJlZmVyZW5jZV90bykgfHwgIV8uaXNFbXB0eShmLnJlZmVyZW5jZV90byk7XG4gIH0pO1xuICBzZWxmID0gdGhpcztcbiAgc2VsZi51bmJsb2NrKCk7XG4gIGlmIChyZWZlcmVuY2VfZmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICBkYXRhID0ge1xuICAgICAgZmluZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBmaWVsZF9rZXlzO1xuICAgICAgICBzZWxmLnVuYmxvY2soKTtcbiAgICAgICAgZmllbGRfa2V5cyA9IHt9O1xuICAgICAgICBfLmVhY2goXy5rZXlzKGZpZWxkcyksIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBpZiAoIS9cXHcrKFxcLlxcJCl7MX1cXHc/Ly50ZXN0KGYpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGRfa2V5c1tmXSA9IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG9iamVjdF9jb2xsZWNpdG9uLmZpbmQoe1xuICAgICAgICAgIF9pZDoge1xuICAgICAgICAgICAgJGluOiBpZHNcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkX2tleXNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkYXRhLmNoaWxkcmVuID0gW107XG4gICAga2V5cyA9IF8ua2V5cyhmaWVsZHMpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA8IDEpIHtcbiAgICAgIGtleXMgPSBfLmtleXMoX2ZpZWxkcyk7XG4gICAgfVxuICAgIF9rZXlzID0gW107XG4gICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgaWYgKF9vYmplY3Quc2NoZW1hLl9vYmplY3RLZXlzW2tleSArICcuJ10pIHtcbiAgICAgICAgX2tleXMgPSBfa2V5cy5jb25jYXQoXy5tYXAoX29iamVjdC5zY2hlbWEuX29iamVjdEtleXNba2V5ICsgJy4nXSwgZnVuY3Rpb24oaykge1xuICAgICAgICAgIHJldHVybiBrZXkgKyAnLicgKyBrO1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gX2tleXMucHVzaChrZXkpO1xuICAgIH0pO1xuICAgIF9rZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG4gICAgICB2YXIgcmVmZXJlbmNlX2ZpZWxkO1xuICAgICAgcmVmZXJlbmNlX2ZpZWxkID0gX2ZpZWxkc1trZXldO1xuICAgICAgaWYgKHJlZmVyZW5jZV9maWVsZCAmJiAoXy5pc0Z1bmN0aW9uKHJlZmVyZW5jZV9maWVsZC5yZWZlcmVuY2VfdG8pIHx8ICFfLmlzRW1wdHkocmVmZXJlbmNlX2ZpZWxkLnJlZmVyZW5jZV90bykpKSB7XG4gICAgICAgIHJldHVybiBkYXRhLmNoaWxkcmVuLnB1c2goe1xuICAgICAgICAgIGZpbmQ6IGZ1bmN0aW9uKHBhcmVudCkge1xuICAgICAgICAgICAgdmFyIGNoaWxkcmVuX2ZpZWxkcywgZSwgbmFtZV9maWVsZF9rZXksIHBfaywgcXVlcnksIHJlZmVyZW5jZV9pZHMsIHJlZmVyZW5jZV90bywgcmVmZXJlbmNlX3RvX29iamVjdCwgc19rO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgc2VsZi51bmJsb2NrKCk7XG4gICAgICAgICAgICAgIHF1ZXJ5ID0ge307XG4gICAgICAgICAgICAgIGlmICgvXFx3KyhcXC5cXCRcXC4pezF9XFx3Ky8udGVzdChrZXkpKSB7XG4gICAgICAgICAgICAgICAgcF9rID0ga2V5LnJlcGxhY2UoLyhcXHcrKVxcLlxcJFxcLlxcdysvaWcsIFwiJDFcIik7XG4gICAgICAgICAgICAgICAgc19rID0ga2V5LnJlcGxhY2UoL1xcdytcXC5cXCRcXC4oXFx3KykvaWcsIFwiJDFcIik7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlX2lkcyA9IHBhcmVudFtwX2tdLmdldFByb3BlcnR5KHNfayk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlX2lkcyA9IGtleS5zcGxpdCgnLicpLnJlZHVjZShmdW5jdGlvbihvLCB4KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gbyAhPSBudWxsID8gb1t4XSA6IHZvaWQgMDtcbiAgICAgICAgICAgICAgICB9LCBwYXJlbnQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlZmVyZW5jZV90byA9IHJlZmVyZW5jZV9maWVsZC5yZWZlcmVuY2VfdG87XG4gICAgICAgICAgICAgIGlmIChfLmlzRnVuY3Rpb24ocmVmZXJlbmNlX3RvKSkge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZV90byA9IHJlZmVyZW5jZV90bygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChfLmlzQXJyYXkocmVmZXJlbmNlX3RvKSkge1xuICAgICAgICAgICAgICAgIGlmIChfLmlzT2JqZWN0KHJlZmVyZW5jZV9pZHMpICYmICFfLmlzQXJyYXkocmVmZXJlbmNlX2lkcykpIHtcbiAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZV90byA9IHJlZmVyZW5jZV9pZHMubztcbiAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZV9pZHMgPSByZWZlcmVuY2VfaWRzLmlkcyB8fCBbXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoXy5pc0FycmF5KHJlZmVyZW5jZV9pZHMpKSB7XG4gICAgICAgICAgICAgICAgcXVlcnkuX2lkID0ge1xuICAgICAgICAgICAgICAgICAgJGluOiByZWZlcmVuY2VfaWRzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBxdWVyeS5faWQgPSByZWZlcmVuY2VfaWRzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlZmVyZW5jZV90b19vYmplY3QgPSBDcmVhdG9yLmdldE9iamVjdChyZWZlcmVuY2VfdG8sIHNwYWNlSWQpO1xuICAgICAgICAgICAgICBuYW1lX2ZpZWxkX2tleSA9IHJlZmVyZW5jZV90b19vYmplY3QuTkFNRV9GSUVMRF9LRVk7XG4gICAgICAgICAgICAgIGNoaWxkcmVuX2ZpZWxkcyA9IHtcbiAgICAgICAgICAgICAgICBfaWQ6IDEsXG4gICAgICAgICAgICAgICAgc3BhY2U6IDFcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgaWYgKG5hbWVfZmllbGRfa2V5KSB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5fZmllbGRzW25hbWVfZmllbGRfa2V5XSA9IDE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWZlcmVuY2VfdG8sIHNwYWNlSWQpLmZpbmQocXVlcnksIHtcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGNoaWxkcmVuX2ZpZWxkc1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGUgPSBlcnJvcjtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVmZXJlbmNlX3RvLCBwYXJlbnQsIGUpO1xuICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgZmluZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHNlbGYudW5ibG9jaygpO1xuICAgICAgICByZXR1cm4gb2JqZWN0X2NvbGxlY2l0b24uZmluZCh7XG4gICAgICAgICAgX2lkOiB7XG4gICAgICAgICAgICAkaW46IGlkc1xuICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgIGZpZWxkczogZmllbGRzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn0pO1xuIiwiTWV0ZW9yLnB1Ymxpc2ggXCJvYmplY3RfbGlzdHZpZXdzXCIsIChvYmplY3RfbmFtZSwgc3BhY2VJZCktPlxuICAgIHVzZXJJZCA9IHRoaXMudXNlcklkXG4gICAgcmV0dXJuIENyZWF0b3IuZ2V0Q29sbGVjdGlvbihcIm9iamVjdF9saXN0dmlld3NcIikuZmluZCh7b2JqZWN0X25hbWU6IG9iamVjdF9uYW1lLCBzcGFjZTogc3BhY2VJZCAsXCIkb3JcIjpbe293bmVyOiB1c2VySWR9LCB7c2hhcmVkOiB0cnVlfV19KSIsIk1ldGVvci5wdWJsaXNoIFwidXNlcl90YWJ1bGFyX3NldHRpbmdzXCIsIChvYmplY3RfbmFtZSktPlxuICAgIHVzZXJJZCA9IHRoaXMudXNlcklkXG4gICAgcmV0dXJuIENyZWF0b3IuQ29sbGVjdGlvbnMuc2V0dGluZ3MuZmluZCh7b2JqZWN0X25hbWU6IHskaW46IG9iamVjdF9uYW1lfSwgcmVjb3JkX2lkOiB7JGluOiBbXCJvYmplY3RfbGlzdHZpZXdzXCIsIFwib2JqZWN0X2dyaWR2aWV3c1wiXX0sIG93bmVyOiB1c2VySWR9KVxuIiwiTWV0ZW9yLnB1Ymxpc2ggXCJyZWxhdGVkX29iamVjdHNfcmVjb3Jkc1wiLCAob2JqZWN0X25hbWUsIHJlbGF0ZWRfb2JqZWN0X25hbWUsIHJlbGF0ZWRfZmllbGRfbmFtZSwgcmVjb3JkX2lkLCBzcGFjZUlkKS0+XG5cdHVzZXJJZCA9IHRoaXMudXNlcklkXG5cdGlmIHJlbGF0ZWRfb2JqZWN0X25hbWUgPT0gXCJjZnMuZmlsZXMuZmlsZXJlY29yZFwiXG5cdFx0c2VsZWN0b3IgPSB7XCJtZXRhZGF0YS5zcGFjZVwiOiBzcGFjZUlkfVxuXHRlbHNlXG5cdFx0c2VsZWN0b3IgPSB7c3BhY2U6IHNwYWNlSWR9XG5cdFxuXHRpZiByZWxhdGVkX29iamVjdF9uYW1lID09IFwiY21zX2ZpbGVzXCJcblx0XHQjIOmZhOS7tueahOWFs+iBlOaQnOe0ouadoeS7tuaYr+Wumuatu+eahFxuXHRcdHNlbGVjdG9yW1wicGFyZW50Lm9cIl0gPSBvYmplY3RfbmFtZVxuXHRcdHNlbGVjdG9yW1wicGFyZW50Lmlkc1wiXSA9IFtyZWNvcmRfaWRdXG5cdGVsc2Vcblx0XHRzZWxlY3RvcltyZWxhdGVkX2ZpZWxkX25hbWVdID0gcmVjb3JkX2lkXG5cblx0cGVybWlzc2lvbnMgPSBDcmVhdG9yLmdldFBlcm1pc3Npb25zKHJlbGF0ZWRfb2JqZWN0X25hbWUsIHNwYWNlSWQsIHVzZXJJZClcblx0aWYgIXBlcm1pc3Npb25zLnZpZXdBbGxSZWNvcmRzIGFuZCBwZXJtaXNzaW9ucy5hbGxvd1JlYWRcblx0XHRzZWxlY3Rvci5vd25lciA9IHVzZXJJZFxuXHRcblx0cmV0dXJuIENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWxhdGVkX29iamVjdF9uYW1lKS5maW5kKHNlbGVjdG9yKSIsIk1ldGVvci5wdWJsaXNoKFwicmVsYXRlZF9vYmplY3RzX3JlY29yZHNcIiwgZnVuY3Rpb24ob2JqZWN0X25hbWUsIHJlbGF0ZWRfb2JqZWN0X25hbWUsIHJlbGF0ZWRfZmllbGRfbmFtZSwgcmVjb3JkX2lkLCBzcGFjZUlkKSB7XG4gIHZhciBwZXJtaXNzaW9ucywgc2VsZWN0b3IsIHVzZXJJZDtcbiAgdXNlcklkID0gdGhpcy51c2VySWQ7XG4gIGlmIChyZWxhdGVkX29iamVjdF9uYW1lID09PSBcImNmcy5maWxlcy5maWxlcmVjb3JkXCIpIHtcbiAgICBzZWxlY3RvciA9IHtcbiAgICAgIFwibWV0YWRhdGEuc3BhY2VcIjogc3BhY2VJZFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgc2VsZWN0b3IgPSB7XG4gICAgICBzcGFjZTogc3BhY2VJZFxuICAgIH07XG4gIH1cbiAgaWYgKHJlbGF0ZWRfb2JqZWN0X25hbWUgPT09IFwiY21zX2ZpbGVzXCIpIHtcbiAgICBzZWxlY3RvcltcInBhcmVudC5vXCJdID0gb2JqZWN0X25hbWU7XG4gICAgc2VsZWN0b3JbXCJwYXJlbnQuaWRzXCJdID0gW3JlY29yZF9pZF07XG4gIH0gZWxzZSB7XG4gICAgc2VsZWN0b3JbcmVsYXRlZF9maWVsZF9uYW1lXSA9IHJlY29yZF9pZDtcbiAgfVxuICBwZXJtaXNzaW9ucyA9IENyZWF0b3IuZ2V0UGVybWlzc2lvbnMocmVsYXRlZF9vYmplY3RfbmFtZSwgc3BhY2VJZCwgdXNlcklkKTtcbiAgaWYgKCFwZXJtaXNzaW9ucy52aWV3QWxsUmVjb3JkcyAmJiBwZXJtaXNzaW9ucy5hbGxvd1JlYWQpIHtcbiAgICBzZWxlY3Rvci5vd25lciA9IHVzZXJJZDtcbiAgfVxuICByZXR1cm4gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlbGF0ZWRfb2JqZWN0X25hbWUpLmZpbmQoc2VsZWN0b3IpO1xufSk7XG4iLCJNZXRlb3IucHVibGlzaCAnc3BhY2VfdXNlcl9pbmZvJywgKHNwYWNlSWQsIHVzZXJJZCktPlxuXHRyZXR1cm4gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKFwic3BhY2VfdXNlcnNcIikuZmluZCh7c3BhY2U6IHNwYWNlSWQsIHVzZXI6IHVzZXJJZH0pIiwiXG5pZiBNZXRlb3IuaXNTZXJ2ZXJcblxuXHRNZXRlb3IucHVibGlzaCAnY29udGFjdHNfdmlld19saW1pdHMnLCAoc3BhY2VJZCktPlxuXG5cdFx0dW5sZXNzIHRoaXMudXNlcklkXG5cdFx0XHRyZXR1cm4gdGhpcy5yZWFkeSgpXG5cblx0XHR1bmxlc3Mgc3BhY2VJZFxuXHRcdFx0cmV0dXJuIHRoaXMucmVhZHkoKVxuXG5cdFx0c2VsZWN0b3IgPVxuXHRcdFx0c3BhY2U6IHNwYWNlSWRcblx0XHRcdGtleTogJ2NvbnRhY3RzX3ZpZXdfbGltaXRzJ1xuXG5cdFx0cmV0dXJuIGRiLnNwYWNlX3NldHRpbmdzLmZpbmQoc2VsZWN0b3IpIiwiaWYgKE1ldGVvci5pc1NlcnZlcikge1xuICBNZXRlb3IucHVibGlzaCgnY29udGFjdHNfdmlld19saW1pdHMnLCBmdW5jdGlvbihzcGFjZUlkKSB7XG4gICAgdmFyIHNlbGVjdG9yO1xuICAgIGlmICghdGhpcy51c2VySWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlYWR5KCk7XG4gICAgfVxuICAgIGlmICghc3BhY2VJZCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZHkoKTtcbiAgICB9XG4gICAgc2VsZWN0b3IgPSB7XG4gICAgICBzcGFjZTogc3BhY2VJZCxcbiAgICAgIGtleTogJ2NvbnRhY3RzX3ZpZXdfbGltaXRzJ1xuICAgIH07XG4gICAgcmV0dXJuIGRiLnNwYWNlX3NldHRpbmdzLmZpbmQoc2VsZWN0b3IpO1xuICB9KTtcbn1cbiIsIlxuaWYgTWV0ZW9yLmlzU2VydmVyXG5cblx0TWV0ZW9yLnB1Ymxpc2ggJ2NvbnRhY3RzX25vX2ZvcmNlX3Bob25lX3VzZXJzJywgKHNwYWNlSWQpLT5cblxuXHRcdHVubGVzcyB0aGlzLnVzZXJJZFxuXHRcdFx0cmV0dXJuIHRoaXMucmVhZHkoKVxuXG5cdFx0dW5sZXNzIHNwYWNlSWRcblx0XHRcdHJldHVybiB0aGlzLnJlYWR5KClcblxuXHRcdHNlbGVjdG9yID1cblx0XHRcdHNwYWNlOiBzcGFjZUlkXG5cdFx0XHRrZXk6ICdjb250YWN0c19ub19mb3JjZV9waG9uZV91c2VycydcblxuXHRcdHJldHVybiBkYi5zcGFjZV9zZXR0aW5ncy5maW5kKHNlbGVjdG9yKSIsImlmIChNZXRlb3IuaXNTZXJ2ZXIpIHtcbiAgTWV0ZW9yLnB1Ymxpc2goJ2NvbnRhY3RzX25vX2ZvcmNlX3Bob25lX3VzZXJzJywgZnVuY3Rpb24oc3BhY2VJZCkge1xuICAgIHZhciBzZWxlY3RvcjtcbiAgICBpZiAoIXRoaXMudXNlcklkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWFkeSgpO1xuICAgIH1cbiAgICBpZiAoIXNwYWNlSWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlYWR5KCk7XG4gICAgfVxuICAgIHNlbGVjdG9yID0ge1xuICAgICAgc3BhY2U6IHNwYWNlSWQsXG4gICAgICBrZXk6ICdjb250YWN0c19ub19mb3JjZV9waG9uZV91c2VycydcbiAgICB9O1xuICAgIHJldHVybiBkYi5zcGFjZV9zZXR0aW5ncy5maW5kKHNlbGVjdG9yKTtcbiAgfSk7XG59XG4iLCJpZiBNZXRlb3IuaXNTZXJ2ZXJcblx0TWV0ZW9yLnB1Ymxpc2ggJ3NwYWNlX25lZWRfdG9fY29uZmlybScsICgpLT5cblx0XHR1c2VySWQgPSB0aGlzLnVzZXJJZFxuXHRcdHJldHVybiBkYi5zcGFjZV91c2Vycy5maW5kKHt1c2VyOiB1c2VySWQsIGludml0ZV9zdGF0ZTogXCJwZW5kaW5nXCJ9KSIsImlmIChNZXRlb3IuaXNTZXJ2ZXIpIHtcbiAgTWV0ZW9yLnB1Ymxpc2goJ3NwYWNlX25lZWRfdG9fY29uZmlybScsIGZ1bmN0aW9uKCkge1xuICAgIHZhciB1c2VySWQ7XG4gICAgdXNlcklkID0gdGhpcy51c2VySWQ7XG4gICAgcmV0dXJuIGRiLnNwYWNlX3VzZXJzLmZpbmQoe1xuICAgICAgdXNlcjogdXNlcklkLFxuICAgICAgaW52aXRlX3N0YXRlOiBcInBlbmRpbmdcIlxuICAgIH0pO1xuICB9KTtcbn1cbiIsInBlcm1pc3Npb25NYW5hZ2VyRm9ySW5pdEFwcHJvdmFsID0ge31cblxucGVybWlzc2lvbk1hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Rmxvd1Blcm1pc3Npb25zID0gKGZsb3dfaWQsIHVzZXJfaWQpIC0+XG5cdCMg5qC55o2uOmZsb3dfaWTmn6XliLDlr7nlupTnmoRmbG93XG5cdGZsb3cgPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZsb3coZmxvd19pZClcblx0c3BhY2VfaWQgPSBmbG93LnNwYWNlXG5cdCMg5qC55o2uc3BhY2VfaWTlkow6dXNlcl9pZOWIsG9yZ2FuaXphdGlvbnPooajkuK3mn6XliLDnlKjmiLfmiYDlsZ7miYDmnInnmoRvcmdfaWTvvIjljIXmi6zkuIrnuqfnu4RJRO+8iVxuXHRvcmdfaWRzID0gbmV3IEFycmF5XG5cdG9yZ2FuaXphdGlvbnMgPSBkYi5vcmdhbml6YXRpb25zLmZpbmQoe1xuXHRcdHNwYWNlOiBzcGFjZV9pZCwgdXNlcnM6IHVzZXJfaWQgfSwgeyBmaWVsZHM6IHsgcGFyZW50czogMSB9IH0pLmZldGNoKClcblx0Xy5lYWNoKG9yZ2FuaXphdGlvbnMsIChvcmcpIC0+XG5cdFx0b3JnX2lkcy5wdXNoKG9yZy5faWQpXG5cdFx0aWYgb3JnLnBhcmVudHNcblx0XHRcdF8uZWFjaChvcmcucGFyZW50cywgKHBhcmVudF9pZCkgLT5cblx0XHRcdFx0b3JnX2lkcy5wdXNoKHBhcmVudF9pZClcblx0XHRcdClcblx0KVxuXHRvcmdfaWRzID0gXy51bmlxKG9yZ19pZHMpXG5cdG15X3Blcm1pc3Npb25zID0gbmV3IEFycmF5XG5cdGlmIGZsb3cucGVybXNcblx0XHQjIOWIpOaWrWZsb3cucGVybXMudXNlcnNfY2FuX2FkbWlu5Lit5piv5ZCm5YyF5ZCr5b2T5YmN55So5oi377yMXG5cdFx0IyDmiJbogIVmbG93LnBlcm1zLm9yZ3NfY2FuX2FkZOaYr+WQpuWMheWQqzTmraXlvpfliLDnmoRvcmdfaWTmlbDnu4TkuK3nmoTku7vkvZXkuIDkuKrvvIxcblx0XHQjIOiLpeaYr++8jOWImeWcqOi/lOWbnueahOaVsOe7hOS4reWKoOS4imFkZFxuXHRcdGlmIGZsb3cucGVybXMudXNlcnNfY2FuX2FkZFxuXHRcdFx0dXNlcnNfY2FuX2FkZCA9IGZsb3cucGVybXMudXNlcnNfY2FuX2FkZFxuXHRcdFx0aWYgdXNlcnNfY2FuX2FkZC5pbmNsdWRlcyh1c2VyX2lkKVxuXHRcdFx0XHRteV9wZXJtaXNzaW9ucy5wdXNoKFwiYWRkXCIpXG5cblx0XHRpZiBmbG93LnBlcm1zLm9yZ3NfY2FuX2FkZFxuXHRcdFx0b3Jnc19jYW5fYWRkID0gZmxvdy5wZXJtcy5vcmdzX2Nhbl9hZGRcblx0XHRcdF8uZWFjaChvcmdfaWRzLCAob3JnX2lkKSAtPlxuXHRcdFx0XHRpZiBvcmdzX2Nhbl9hZGQuaW5jbHVkZXMob3JnX2lkKVxuXHRcdFx0XHRcdG15X3Blcm1pc3Npb25zLnB1c2goXCJhZGRcIilcblx0XHRcdClcblx0XHQjIOWIpOaWrWZsb3cucGVybXMudXNlcnNfY2FuX21vbml0b3LkuK3mmK/lkKbljIXlkKvlvZPliY3nlKjmiLfvvIxcblx0XHQjIOaIluiAhWZsb3cucGVybXMub3Jnc19jYW5fbW9uaXRvcuaYr+WQpuWMheWQqzTmraXlvpfliLDnmoRvcmdfaWTmlbDnu4TkuK3nmoTku7vkvZXkuIDkuKrvvIxcblx0XHQjIOiLpeaYr++8jOWImeWcqOi/lOWbnueahOaVsOe7hOS4reWKoOS4im1vbml0b3Jcblx0XHRpZiBmbG93LnBlcm1zLnVzZXJzX2Nhbl9tb25pdG9yXG5cdFx0XHR1c2Vyc19jYW5fbW9uaXRvciA9IGZsb3cucGVybXMudXNlcnNfY2FuX21vbml0b3Jcblx0XHRcdGlmIHVzZXJzX2Nhbl9tb25pdG9yLmluY2x1ZGVzKHVzZXJfaWQpXG5cdFx0XHRcdG15X3Blcm1pc3Npb25zLnB1c2goXCJtb25pdG9yXCIpXG5cblx0XHRpZiBmbG93LnBlcm1zLm9yZ3NfY2FuX21vbml0b3Jcblx0XHRcdG9yZ3NfY2FuX21vbml0b3IgPSBmbG93LnBlcm1zLm9yZ3NfY2FuX21vbml0b3Jcblx0XHRcdF8uZWFjaChvcmdfaWRzLCAob3JnX2lkKSAtPlxuXHRcdFx0XHRpZiBvcmdzX2Nhbl9tb25pdG9yLmluY2x1ZGVzKG9yZ19pZClcblx0XHRcdFx0XHRteV9wZXJtaXNzaW9ucy5wdXNoKFwibW9uaXRvclwiKVxuXHRcdFx0KVxuXHRcdCMg5Yik5patZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRtaW7kuK3mmK/lkKbljIXlkKvlvZPliY3nlKjmiLfvvIxcblx0XHQjIOaIluiAhWZsb3cucGVybXMub3Jnc19jYW5fYWRtaW7mmK/lkKbljIXlkKs05q2l5b6X5Yiw55qEb3JnX2lk5pWw57uE5Lit55qE5Lu75L2V5LiA5Liq77yMXG5cdFx0IyDoi6XmmK/vvIzliJnlnKjov5Tlm57nmoTmlbDnu4TkuK3liqDkuIphZG1pblxuXHRcdGlmIGZsb3cucGVybXMudXNlcnNfY2FuX2FkbWluXG5cdFx0XHR1c2Vyc19jYW5fYWRtaW4gPSBmbG93LnBlcm1zLnVzZXJzX2Nhbl9hZG1pblxuXHRcdFx0aWYgdXNlcnNfY2FuX2FkbWluLmluY2x1ZGVzKHVzZXJfaWQpXG5cdFx0XHRcdG15X3Blcm1pc3Npb25zLnB1c2goXCJhZG1pblwiKVxuXG5cdFx0aWYgZmxvdy5wZXJtcy5vcmdzX2Nhbl9hZG1pblxuXHRcdFx0b3Jnc19jYW5fYWRtaW4gPSBmbG93LnBlcm1zLm9yZ3NfY2FuX2FkbWluXG5cdFx0XHRfLmVhY2gob3JnX2lkcywgKG9yZ19pZCkgLT5cblx0XHRcdFx0aWYgb3Jnc19jYW5fYWRtaW4uaW5jbHVkZXMob3JnX2lkKVxuXHRcdFx0XHRcdG15X3Blcm1pc3Npb25zLnB1c2goXCJhZG1pblwiKVxuXHRcdFx0KVxuXG5cdG15X3Blcm1pc3Npb25zID0gXy51bmlxKG15X3Blcm1pc3Npb25zKVxuXHRyZXR1cm4gbXlfcGVybWlzc2lvbnMiLCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbnBlcm1pc3Npb25NYW5hZ2VyRm9ySW5pdEFwcHJvdmFsID0ge307XG5cbnBlcm1pc3Npb25NYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZsb3dQZXJtaXNzaW9ucyA9IGZ1bmN0aW9uKGZsb3dfaWQsIHVzZXJfaWQpIHtcbiAgdmFyIGZsb3csIG15X3Blcm1pc3Npb25zLCBvcmdfaWRzLCBvcmdhbml6YXRpb25zLCBvcmdzX2Nhbl9hZGQsIG9yZ3NfY2FuX2FkbWluLCBvcmdzX2Nhbl9tb25pdG9yLCBzcGFjZV9pZCwgdXNlcnNfY2FuX2FkZCwgdXNlcnNfY2FuX2FkbWluLCB1c2Vyc19jYW5fbW9uaXRvcjtcbiAgZmxvdyA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0RmxvdyhmbG93X2lkKTtcbiAgc3BhY2VfaWQgPSBmbG93LnNwYWNlO1xuICBvcmdfaWRzID0gbmV3IEFycmF5O1xuICBvcmdhbml6YXRpb25zID0gZGIub3JnYW5pemF0aW9ucy5maW5kKHtcbiAgICBzcGFjZTogc3BhY2VfaWQsXG4gICAgdXNlcnM6IHVzZXJfaWRcbiAgfSwge1xuICAgIGZpZWxkczoge1xuICAgICAgcGFyZW50czogMVxuICAgIH1cbiAgfSkuZmV0Y2goKTtcbiAgXy5lYWNoKG9yZ2FuaXphdGlvbnMsIGZ1bmN0aW9uKG9yZykge1xuICAgIG9yZ19pZHMucHVzaChvcmcuX2lkKTtcbiAgICBpZiAob3JnLnBhcmVudHMpIHtcbiAgICAgIHJldHVybiBfLmVhY2gob3JnLnBhcmVudHMsIGZ1bmN0aW9uKHBhcmVudF9pZCkge1xuICAgICAgICByZXR1cm4gb3JnX2lkcy5wdXNoKHBhcmVudF9pZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuICBvcmdfaWRzID0gXy51bmlxKG9yZ19pZHMpO1xuICBteV9wZXJtaXNzaW9ucyA9IG5ldyBBcnJheTtcbiAgaWYgKGZsb3cucGVybXMpIHtcbiAgICBpZiAoZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRkKSB7XG4gICAgICB1c2Vyc19jYW5fYWRkID0gZmxvdy5wZXJtcy51c2Vyc19jYW5fYWRkO1xuICAgICAgaWYgKHVzZXJzX2Nhbl9hZGQuaW5jbHVkZXModXNlcl9pZCkpIHtcbiAgICAgICAgbXlfcGVybWlzc2lvbnMucHVzaChcImFkZFwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZsb3cucGVybXMub3Jnc19jYW5fYWRkKSB7XG4gICAgICBvcmdzX2Nhbl9hZGQgPSBmbG93LnBlcm1zLm9yZ3NfY2FuX2FkZDtcbiAgICAgIF8uZWFjaChvcmdfaWRzLCBmdW5jdGlvbihvcmdfaWQpIHtcbiAgICAgICAgaWYgKG9yZ3NfY2FuX2FkZC5pbmNsdWRlcyhvcmdfaWQpKSB7XG4gICAgICAgICAgcmV0dXJuIG15X3Blcm1pc3Npb25zLnB1c2goXCJhZGRcIik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZmxvdy5wZXJtcy51c2Vyc19jYW5fbW9uaXRvcikge1xuICAgICAgdXNlcnNfY2FuX21vbml0b3IgPSBmbG93LnBlcm1zLnVzZXJzX2Nhbl9tb25pdG9yO1xuICAgICAgaWYgKHVzZXJzX2Nhbl9tb25pdG9yLmluY2x1ZGVzKHVzZXJfaWQpKSB7XG4gICAgICAgIG15X3Blcm1pc3Npb25zLnB1c2goXCJtb25pdG9yXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZmxvdy5wZXJtcy5vcmdzX2Nhbl9tb25pdG9yKSB7XG4gICAgICBvcmdzX2Nhbl9tb25pdG9yID0gZmxvdy5wZXJtcy5vcmdzX2Nhbl9tb25pdG9yO1xuICAgICAgXy5lYWNoKG9yZ19pZHMsIGZ1bmN0aW9uKG9yZ19pZCkge1xuICAgICAgICBpZiAob3Jnc19jYW5fbW9uaXRvci5pbmNsdWRlcyhvcmdfaWQpKSB7XG4gICAgICAgICAgcmV0dXJuIG15X3Blcm1pc3Npb25zLnB1c2goXCJtb25pdG9yXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGZsb3cucGVybXMudXNlcnNfY2FuX2FkbWluKSB7XG4gICAgICB1c2Vyc19jYW5fYWRtaW4gPSBmbG93LnBlcm1zLnVzZXJzX2Nhbl9hZG1pbjtcbiAgICAgIGlmICh1c2Vyc19jYW5fYWRtaW4uaW5jbHVkZXModXNlcl9pZCkpIHtcbiAgICAgICAgbXlfcGVybWlzc2lvbnMucHVzaChcImFkbWluXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZmxvdy5wZXJtcy5vcmdzX2Nhbl9hZG1pbikge1xuICAgICAgb3Jnc19jYW5fYWRtaW4gPSBmbG93LnBlcm1zLm9yZ3NfY2FuX2FkbWluO1xuICAgICAgXy5lYWNoKG9yZ19pZHMsIGZ1bmN0aW9uKG9yZ19pZCkge1xuICAgICAgICBpZiAob3Jnc19jYW5fYWRtaW4uaW5jbHVkZXMob3JnX2lkKSkge1xuICAgICAgICAgIHJldHVybiBteV9wZXJtaXNzaW9ucy5wdXNoKFwiYWRtaW5cIik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBteV9wZXJtaXNzaW9ucyA9IF8udW5pcShteV9wZXJtaXNzaW9ucyk7XG4gIHJldHVybiBteV9wZXJtaXNzaW9ucztcbn07XG4iLCIjIOWPkei1t+WuoeaJuVxuX2V2YWwgPSByZXF1aXJlKCdldmFsJylcbm9iamVjdHFsID0gcmVxdWlyZSgnQHN0ZWVkb3Mvb2JqZWN0cWwnKTtcblxuZ2V0T2JqZWN0Q29uZmlnID0gKG9iamVjdEFwaU5hbWUpIC0+XG5cdHJldHVybiBvYmplY3RxbC5nZXRPYmplY3Qob2JqZWN0QXBpTmFtZSkudG9Db25maWcoKVxuXG5nZXRPYmplY3ROYW1lRmllbGRLZXkgPSAob2JqZWN0QXBpTmFtZSkgLT5cblx0cmV0dXJuIG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS5OQU1FX0ZJRUxEX0tFWVxuXG5nZXRSZWxhdGVkcyA9IChvYmplY3RBcGlOYW1lKSAtPlxuXHRyZXR1cm4gTWV0ZW9yLndyYXBBc3luYygob2JqZWN0QXBpTmFtZSwgY2IpIC0+XG5cdFx0b2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLmdldFJlbGF0ZWRzKCkudGhlbiAocmVzb2x2ZSwgcmVqZWN0KSAtPlxuXHRcdFx0Y2IocmVqZWN0LCByZXNvbHZlKVxuXHRcdCkob2JqZWN0QXBpTmFtZSlcblxub2JqZWN0RmluZE9uZSA9IChvYmplY3RBcGlOYW1lLCBxdWVyeSkgLT5cblx0cmV0dXJuIE1ldGVvci53cmFwQXN5bmMoKG9iamVjdEFwaU5hbWUsIHF1ZXJ5LCBjYikgLT5cblx0XHRxdWVyeS50b3AgPSAxXG5cdFx0b2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLmZpbmQocXVlcnkpLnRoZW4gKHJlc29sdmUsIHJlamVjdCkgLT5cblx0XHRcdGlmIChyZXNvbHZlICYmIHJlc29sdmUubGVuZ3RoID4gMClcblx0XHRcdFx0Y2IocmVqZWN0LCByZXNvbHZlWzBdKVxuXHRcdFx0ZWxzZVxuXHRcdFx0XHRjYihyZWplY3QsIG51bGwpXG5cdFx0KShvYmplY3RBcGlOYW1lLCBxdWVyeSlcblxub2JqZWN0RmluZCA9IChvYmplY3RBcGlOYW1lLCBxdWVyeSkgLT5cblx0cmV0dXJuIE1ldGVvci53cmFwQXN5bmMoKG9iamVjdEFwaU5hbWUsIHF1ZXJ5LCBjYikgLT5cblx0XHRvYmplY3RxbC5nZXRPYmplY3Qob2JqZWN0QXBpTmFtZSkuZmluZChxdWVyeSkudGhlbiAocmVzb2x2ZSwgcmVqZWN0KSAtPlxuXHRcdFx0Y2IocmVqZWN0LCByZXNvbHZlKVxuXHRcdCkob2JqZWN0QXBpTmFtZSwgcXVlcnkpXG5cbm9iamVjdFVwZGF0ZSA9IChvYmplY3RBcGlOYW1lLCBpZCwgZGF0YSkgLT5cblx0cmV0dXJuIE1ldGVvci53cmFwQXN5bmMoKG9iamVjdEFwaU5hbWUsIGlkLCBkYXRhLCBjYikgLT5cblx0XHRvYmplY3RxbC5nZXRPYmplY3Qob2JqZWN0QXBpTmFtZSkudXBkYXRlKGlkLCBkYXRhKS50aGVuIChyZXNvbHZlLCByZWplY3QpIC0+XG5cdFx0XHRjYihyZWplY3QsIHJlc29sdmUpXG5cdFx0KShvYmplY3RBcGlOYW1lLCBpZCwgZGF0YSlcblxuZ2V0UmVsYXRlZE9iamVjdEZpZWxkQ29kZSA9ICAocmVsYXRlZE9iamVjdHNLZXlzLCBrZXkpIC0+XG5cdHJldHVybiBfLmZpbmQgcmVsYXRlZE9iamVjdHNLZXlzLCAgKHJlbGF0ZWRPYmplY3RzS2V5KSAtPlxuXHRcdHJldHVybiBrZXkuc3RhcnRzV2l0aChyZWxhdGVkT2JqZWN0c0tleSArICcuJylcblxuZ2V0Rm9ybVRhYmxlRmllbGRDb2RlID0gKGZvcm1UYWJsZUZpZWxkc0NvZGUsIGtleSkgLT5cblx0cmV0dXJuIF8uZmluZCBmb3JtVGFibGVGaWVsZHNDb2RlLCAgKGZvcm1UYWJsZUZpZWxkQ29kZSkgLT5cblx0XHRyZXR1cm4ga2V5LnN0YXJ0c1dpdGgoZm9ybVRhYmxlRmllbGRDb2RlICsgJy4nKVxuXG5nZXRGb3JtVGFibGVGaWVsZCA9IChmb3JtVGFibGVGaWVsZHMsIGtleSkgLT5cblx0cmV0dXJuIF8uZmluZCBmb3JtVGFibGVGaWVsZHMsICAoZikgLT5cblx0XHRyZXR1cm4gZi5jb2RlID09IGtleVxuXG5nZXRGb3JtRmllbGQgPSAoZm9ybUZpZWxkcywga2V5KSAtPlxuXHRmZiA9IG51bGxcblx0Xy5mb3JFYWNoIGZvcm1GaWVsZHMsIChmKSAtPlxuXHRcdGlmIGZmXG5cdFx0XHRyZXR1cm5cblx0XHRpZiBmLnR5cGUgPT0gJ3NlY3Rpb24nXG5cdFx0XHRmZiA9IF8uZmluZCBmLmZpZWxkcywgIChzZikgLT5cblx0XHRcdFx0cmV0dXJuIHNmLmNvZGUgPT0ga2V5XG5cdFx0ZWxzZSBpZiBmLmNvZGUgPT0ga2V5XG5cdFx0XHRmZiA9IGZcblxuXHRyZXR1cm4gZmZcblxuZ2V0Rm9ybVRhYmxlU3ViRmllbGQgPSAodGFibGVGaWVsZCwgc3ViRmllbGRDb2RlKSAtPlxuXHRyZXR1cm4gXy5maW5kIHRhYmxlRmllbGQuZmllbGRzLCAgKGYpIC0+XG5cdFx0cmV0dXJuIGYuY29kZSA9PSBzdWJGaWVsZENvZGVcblxuZ2V0RmllbGRPZGF0YVZhbHVlID0gKG9iak5hbWUsIGlkLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSkgLT5cblx0IyBvYmogPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ob2JqTmFtZSlcblx0b2JqID0gb2JqZWN0cWwuZ2V0T2JqZWN0KG9iak5hbWUpXG5cdG5hbWVLZXkgPSBnZXRPYmplY3ROYW1lRmllbGRLZXkob2JqTmFtZSlcblx0aWYgIW9ialxuXHRcdHJldHVyblxuXHRpZiBfLmlzU3RyaW5nIGlkXG5cdFx0IyBfcmVjb3JkID0gb2JqLmZpbmRPbmUoaWQpXG5cdFx0X3JlY29yZCA9IG9iamVjdEZpbmRPbmUob2JqTmFtZSwgeyBmaWx0ZXJzOiBbW3JlZmVyZW5jZVRvRmllbGROYW1lLCAnPScsIGlkXV19KVxuXHRcdGlmIF9yZWNvcmRcblx0XHRcdF9yZWNvcmRbJ0BsYWJlbCddID0gX3JlY29yZFtuYW1lS2V5XVxuXHRcdFx0cmV0dXJuIF9yZWNvcmRcblx0ZWxzZSBpZiBfLmlzQXJyYXkgaWRcblx0XHRfcmVjb3JkcyA9IFtdXG5cdFx0IyBvYmouZmluZCh7IF9pZDogeyAkaW46IGlkIH0gfSlcblx0XHRvYmplY3RGaW5kKG9iak5hbWUsIHsgZmlsdGVyczogW1tyZWZlcmVuY2VUb0ZpZWxkTmFtZSwgJ2luJywgaWRdXX0pLmZvckVhY2ggKF9yZWNvcmQpIC0+XG5cdFx0XHRfcmVjb3JkWydAbGFiZWwnXSA9IF9yZWNvcmRbbmFtZUtleV1cblx0XHRcdF9yZWNvcmRzLnB1c2ggX3JlY29yZFxuXHRcdGlmICFfLmlzRW1wdHkgX3JlY29yZHNcblx0XHRcdHJldHVybiBfcmVjb3Jkc1xuXHRyZXR1cm5cblxuZ2V0U2VsZWN0VXNlclZhbHVlID0gKHVzZXJJZCwgc3BhY2VJZCkgLT5cblx0c3UgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oJ3NwYWNlX3VzZXJzJykuZmluZE9uZSh7IHNwYWNlOiBzcGFjZUlkLCB1c2VyOiB1c2VySWQgfSlcblx0c3UuaWQgPSB1c2VySWRcblx0cmV0dXJuIHN1XG5cbmdldFNlbGVjdFVzZXJWYWx1ZXMgPSAodXNlcklkcywgc3BhY2VJZCkgLT5cblx0c3VzID0gW11cblx0aWYgXy5pc0FycmF5IHVzZXJJZHNcblx0XHRfLmVhY2ggdXNlcklkcywgKHVzZXJJZCkgLT5cblx0XHRcdHN1ID0gZ2V0U2VsZWN0VXNlclZhbHVlKHVzZXJJZCwgc3BhY2VJZClcblx0XHRcdGlmIHN1XG5cdFx0XHRcdHN1cy5wdXNoKHN1KVxuXHRyZXR1cm4gc3VzXG5cbmdldFNlbGVjdE9yZ1ZhbHVlID0gKG9yZ0lkLCBzcGFjZUlkKSAtPlxuXHRvcmcgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oJ29yZ2FuaXphdGlvbnMnKS5maW5kT25lKG9yZ0lkLCB7IGZpZWxkczogeyBfaWQ6IDEsIG5hbWU6IDEsIGZ1bGxuYW1lOiAxIH0gfSlcblx0b3JnLmlkID0gb3JnSWRcblx0cmV0dXJuIG9yZ1xuXG5nZXRTZWxlY3RPcmdWYWx1ZXMgPSAob3JnSWRzLCBzcGFjZUlkKSAtPlxuXHRvcmdzID0gW11cblx0aWYgXy5pc0FycmF5IG9yZ0lkc1xuXHRcdF8uZWFjaCBvcmdJZHMsIChvcmdJZCkgLT5cblx0XHRcdG9yZyA9IGdldFNlbGVjdE9yZ1ZhbHVlKG9yZ0lkLCBzcGFjZUlkKVxuXHRcdFx0aWYgb3JnXG5cdFx0XHRcdG9yZ3MucHVzaChvcmcpXG5cdHJldHVybiBvcmdzXG5cbmdldEZpbGVGaWVsZFZhbHVlID0gKHJlY29yZEZpZWxkSWQsIGZUeXBlKS0+XG5cdGlmIF8uaXNFbXB0eShyZWNvcmRGaWVsZElkKVxuXHRcdHJldHVybiBcblx0aWYgZlR5cGUgPT0gJ2ltYWdlJ1xuXHRcdGNvbGxlY3Rpb24gPSAnaW1hZ2VzJ1xuXHRlbHNlIGlmIGZUeXBlID09ICdmaWxlJ1xuXHRcdGNvbGxlY3Rpb24gPSAnZmlsZXMnXG5cdGlmIF8uaXNTdHJpbmcocmVjb3JkRmllbGRJZClcblx0XHRxdWVyeSA9IHtfaWQ6IHskaW46IFtyZWNvcmRGaWVsZElkXX19XG5cdGVsc2Vcblx0XHRxdWVyeSA9IHtfaWQ6IHskaW46IHJlY29yZEZpZWxkSWR9fVxuXHRmaWxlcyA9IENyZWF0b3IuQ29sbGVjdGlvbnNbXCJjZnMuI3tjb2xsZWN0aW9ufS5maWxlcmVjb3JkXCJdLmZpbmQocXVlcnkpO1xuXHR2YWx1ZSA9IFtdXG5cdGZpbGVzLmZvckVhY2ggKGYpIC0+XG5cdFx0bmV3RmlsZSA9IG5ldyBGUy5GaWxlKClcblx0XHRuZXdGaWxlLmF0dGFjaERhdGEgZi5jcmVhdGVSZWFkU3RyZWFtKCdmaWxlcycpLCB7XG5cdFx0XHRcdHR5cGU6IGYub3JpZ2luYWwudHlwZVxuXHRcdH0sIChlcnIpIC0+XG5cdFx0XHRpZiAoZXJyKVxuXHRcdFx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKGVyci5lcnJvciwgZXJyLnJlYXNvbilcblxuXHRcdFx0bmV3RmlsZS5uYW1lKGYubmFtZSgpKVxuXHRcdFx0bmV3RmlsZS5zaXplKGYuc2l6ZSgpKVxuXHRcdFx0bWV0YWRhdGEgPSB7XG5cdFx0XHRcdG93bmVyOiBmLm1ldGFkYXRhLm93bmVyXG5cdFx0XHR9XG5cdFx0XHRuZXdGaWxlLm1ldGFkYXRhID0gbWV0YWRhdGE7XG5cdFx0XHRuZXdGaWxlLl9pZCA9IENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLl9tYWtlTmV3SUQoKTtcblx0XHRcdGNmc1tjb2xsZWN0aW9uXS5pbnNlcnQobmV3RmlsZSk7XG5cdFx0XHR2YWx1ZS5wdXNoKG5ld0ZpbGUuX2lkKVxuXHRpZiB2YWx1ZS5sZW5ndGggPiAwXG5cdFx0aWYgXy5pc1N0cmluZyhyZWNvcmRGaWVsZElkKVxuXHRcdFx0cmV0dXJuIHZhbHVlWzBdXG5cdFx0ZWxzZVxuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXG5nZXRJbnN0YW5jZUZpZWxkVmFsdWUgPSAob2JqRmllbGQsIGZvcm1GaWVsZCwgcmVjb3JkLCBvYmplY3RfZmllbGQsIHNwYWNlSWQpIC0+XG5cdHJlY29yZEZpZWxkVmFsdWUgPSByZWNvcmRbb2JqRmllbGQubmFtZV1cblx0dmFsdWVcblx0IyBsb29rdXDjgIFtYXN0ZXJfZGV0YWls5a2X5q615ZCM5q2l5Yiwb2RhdGHlrZfmrrVcblx0aWYgZm9ybUZpZWxkICYmIG9iakZpZWxkICYmIGZvcm1GaWVsZC50eXBlID09ICdvZGF0YScgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9iakZpZWxkLnR5cGUpICYmIF8uaXNTdHJpbmcob2JqRmllbGQucmVmZXJlbmNlX3RvKVxuXHRcdHJlZmVyZW5jZVRvRmllbGROYW1lID0gb2JqRmllbGQucmVmZXJlbmNlX3RvX2ZpZWxkIHx8ICdfaWQnXG5cdFx0cmVmZXJlbmNlVG9PYmplY3ROYW1lID0gb2JqRmllbGQucmVmZXJlbmNlX3RvXG5cdFx0b2RhdGFGaWVsZFZhbHVlXG5cdFx0aWYgb2JqRmllbGQubXVsdGlwbGUgJiYgZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0XG5cdFx0XHRvZGF0YUZpZWxkVmFsdWUgPSBnZXRGaWVsZE9kYXRhVmFsdWUocmVmZXJlbmNlVG9PYmplY3ROYW1lLCByZWNvcmRGaWVsZFZhbHVlLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSlcblx0XHRlbHNlIGlmICFvYmpGaWVsZC5tdWx0aXBsZSAmJiAhZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0XG5cdFx0XHRvZGF0YUZpZWxkVmFsdWUgPSBnZXRGaWVsZE9kYXRhVmFsdWUocmVmZXJlbmNlVG9PYmplY3ROYW1lLCByZWNvcmRGaWVsZFZhbHVlLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSlcblx0XHR2YWx1ZSA9IG9kYXRhRmllbGRWYWx1ZVxuXHRlbHNlIGlmIGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiBbJ3VzZXInLCAnZ3JvdXAnXS5pbmNsdWRlcyhmb3JtRmllbGQudHlwZSkgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9iakZpZWxkLnR5cGUpICYmIChbJ3VzZXJzJywgJ29yZ2FuaXphdGlvbnMnXS5pbmNsdWRlcyhvYmpGaWVsZC5yZWZlcmVuY2VfdG8pIHx8ICgnc3BhY2VfdXNlcnMnID09IG9iakZpZWxkLnJlZmVyZW5jZV90byAmJiAndXNlcicgPT0gb2JqRmllbGQucmVmZXJlbmNlX3RvX2ZpZWxkKSApXG5cdFx0aWYgIV8uaXNFbXB0eShyZWNvcmRGaWVsZFZhbHVlKVxuXHRcdFx0c2VsZWN0RmllbGRWYWx1ZVxuXHRcdFx0aWYgZm9ybUZpZWxkLnR5cGUgPT0gJ3VzZXInXG5cdFx0XHRcdGlmIG9iakZpZWxkLm11bHRpcGxlICYmIGZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdFxuXHRcdFx0XHRcdHNlbGVjdEZpZWxkVmFsdWUgPSBnZXRTZWxlY3RVc2VyVmFsdWVzKHJlY29yZEZpZWxkVmFsdWUsIHNwYWNlSWQpXG5cdFx0XHRcdGVsc2UgaWYgIW9iakZpZWxkLm11bHRpcGxlICYmICFmb3JtRmllbGQuaXNfbXVsdGlzZWxlY3Rcblx0XHRcdFx0XHRzZWxlY3RGaWVsZFZhbHVlID0gZ2V0U2VsZWN0VXNlclZhbHVlKHJlY29yZEZpZWxkVmFsdWUsIHNwYWNlSWQpXG5cdFx0XHRlbHNlIGlmIGZvcm1GaWVsZC50eXBlID09ICdncm91cCdcblx0XHRcdFx0aWYgb2JqRmllbGQubXVsdGlwbGUgJiYgZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0XG5cdFx0XHRcdFx0c2VsZWN0RmllbGRWYWx1ZSA9IGdldFNlbGVjdE9yZ1ZhbHVlcyhyZWNvcmRGaWVsZFZhbHVlLCBzcGFjZUlkKVxuXHRcdFx0XHRlbHNlIGlmICFvYmpGaWVsZC5tdWx0aXBsZSAmJiAhZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0XG5cdFx0XHRcdFx0c2VsZWN0RmllbGRWYWx1ZSA9IGdldFNlbGVjdE9yZ1ZhbHVlKHJlY29yZEZpZWxkVmFsdWUsIHNwYWNlSWQpXG5cdFx0XHRpZiBzZWxlY3RGaWVsZFZhbHVlXG5cdFx0XHRcdHZhbHVlID0gc2VsZWN0RmllbGRWYWx1ZVxuXHRlbHNlIGlmIGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiBmb3JtRmllbGQudHlwZSA9PSAnZGF0ZScgJiYgcmVjb3JkRmllbGRWYWx1ZVxuXHRcdHZhbHVlID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5mb3JtYXREYXRlKHJlY29yZEZpZWxkVmFsdWUpICMgRGF0Zei9rFN0cmluZ1xuXHRlbHNlIGlmIGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiByZWNvcmRGaWVsZFZhbHVlICYmIChmb3JtRmllbGQudHlwZSA9PSAnaW1hZ2UnIHx8IGZvcm1GaWVsZC50eXBlID09ICdmaWxlJylcblx0XHR2YWx1ZSA9IGdldEZpbGVGaWVsZFZhbHVlKHJlY29yZEZpZWxkVmFsdWUsIGZvcm1GaWVsZC50eXBlKVxuXHRlbHNlIGlmIGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiByZWNvcmRGaWVsZFZhbHVlICYmIGZvcm1GaWVsZC50eXBlID09ICdsb29rdXAnICYmIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhvYmpGaWVsZC50eXBlKSAmJiBfLmlzU3RyaW5nKG9iakZpZWxkLnJlZmVyZW5jZV90bylcblx0XHR2YWx1ZSA9IHJlY29yZEZpZWxkVmFsdWVcblx0ZWxzZSBpZiBmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgcmVjb3JkRmllbGRWYWx1ZSAmJiAoZm9ybUZpZWxkLnR5cGUgPT0gJ211bHRpU2VsZWN0Jylcblx0XHR2YWx1ZSA9IHJlY29yZEZpZWxkVmFsdWUuam9pbignLCcpXG5cdGVsc2UgaWYgcmVjb3JkLmhhc093blByb3BlcnR5KG9iamVjdF9maWVsZClcblx0XHR2YWx1ZSA9IHJlY29yZEZpZWxkVmFsdWVcblx0XG5cdHJldHVybiB2YWx1ZVxuXG4jIHJlcXVpcmVkRGV0YWlsc+e7k+aehFtcIuWtkOihqOWQjS7lrZDooajkuK1tYXN0ZXJfZGV0YWls5a2X5q615ZCNXCIsIC4uLl1cbmNoZWNrUmVxdWlyZWREZXRhaWxzID0gKHJlcXVpcmVkRGV0YWlscywgbWFzdGVyUmVjb3JkKSAtPlxuXHRpZiAhXy5pc0VtcHR5IHJlcXVpcmVkRGV0YWlsc1xuXHRcdCMg5qOA5p+l5a2Q6KGo5b+F5aGr77yM5Y2z5a2Q6KGo5b+F6aG75pyJ6K6w5b2VXG5cdFx0cmVxdWlyZWREZXRhaWxzLmZvckVhY2ggKHJkKSAtPlxuXHRcdFx0c3ViVGFibGVOYW1lID0gcmQuc3BsaXQoJy4nKVswXVxuXHRcdFx0c3ViVGFibGVNYXN0ZXJGaWVsZCA9IHJkLnNwbGl0KCcuJylbMV1cblx0XHRcdHN1Yk9iakNvbmZpZyA9IGdldE9iamVjdENvbmZpZyBzdWJUYWJsZU5hbWVcblx0XHRcdG1hc3RlckZpZWxkID0gc3ViT2JqQ29uZmlnLmZpZWxkc1tzdWJUYWJsZU1hc3RlckZpZWxkXVxuXHRcdFx0cmVmSWQgPSBtYXN0ZXJGaWVsZC5yZWZlcmVuY2VfdG9fZmllbGQgfHwgJ19pZCdcblx0XHRcdG1hc3RlckZpZWxkVmFsdWUgPSBtYXN0ZXJSZWNvcmRbcmVmSWRdXG5cdFx0XHQjIOafpeivouWtkOihqOiusOW9lVxuXHRcdFx0c3ViVGFibGVSZWNvcmQgPSBvYmplY3RGaW5kT25lKHN1YlRhYmxlTmFtZSwgeyBmaWx0ZXJzOiBbW3N1YlRhYmxlTWFzdGVyRmllbGQsICc9JywgbWFzdGVyRmllbGRWYWx1ZV1dLCBmaWVsZHM6IFtzdWJUYWJsZU1hc3RlckZpZWxkXSB9KVxuXHRcdFx0aWYgIXN1YlRhYmxlUmVjb3JkXG5cdFx0XHRcdHRocm93IG5ldyBFcnJvciBcIuivt+WFiOaWsOWiniN7c3ViT2JqQ29uZmlnLmxhYmVsfVwiXG5cdFx0cmV0dXJuXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwgPSB7fVxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmNoZWNrX2F1dGhvcml6YXRpb24gPSAocmVxKSAtPlxuXHRxdWVyeSA9IHJlcS5xdWVyeVxuXHR1c2VySWQgPSBxdWVyeVtcIlgtVXNlci1JZFwiXVxuXHRhdXRoVG9rZW4gPSBxdWVyeVtcIlgtQXV0aC1Ub2tlblwiXVxuXG5cdGlmIG5vdCB1c2VySWQgb3Igbm90IGF1dGhUb2tlblxuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IgNDAxLCAnVW5hdXRob3JpemVkJ1xuXG5cdGhhc2hlZFRva2VuID0gQWNjb3VudHMuX2hhc2hMb2dpblRva2VuKGF1dGhUb2tlbilcblx0dXNlciA9IE1ldGVvci51c2Vycy5maW5kT25lXG5cdFx0X2lkOiB1c2VySWQsXG5cdFx0XCJzZXJ2aWNlcy5yZXN1bWUubG9naW5Ub2tlbnMuaGFzaGVkVG9rZW5cIjogaGFzaGVkVG9rZW5cblxuXHRpZiBub3QgdXNlclxuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IgNDAxLCAnVW5hdXRob3JpemVkJ1xuXG5cdHJldHVybiB1c2VyXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0U3BhY2UgPSAoc3BhY2VfaWQpIC0+XG5cdHNwYWNlID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5zcGFjZXMuZmluZE9uZShzcGFjZV9pZClcblx0aWYgbm90IHNwYWNlXG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCJzcGFjZV9pZOacieivr+aIluatpHNwYWNl5bey57uP6KKr5Yig6ZmkXCIpXG5cdHJldHVybiBzcGFjZVxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZsb3cgPSAoZmxvd19pZCkgLT5cblx0ZmxvdyA9IENyZWF0b3IuQ29sbGVjdGlvbnMuZmxvd3MuZmluZE9uZShmbG93X2lkKVxuXHRpZiBub3QgZmxvd1xuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwiaWTmnInor6/miJbmraTmtYHnqIvlt7Lnu4/ooqvliKDpmaRcIilcblx0cmV0dXJuIGZsb3dcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZVVzZXIgPSAoc3BhY2VfaWQsIHVzZXJfaWQpIC0+XG5cdHNwYWNlX3VzZXIgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLnNwYWNlX3VzZXJzLmZpbmRPbmUoeyBzcGFjZTogc3BhY2VfaWQsIHVzZXI6IHVzZXJfaWQgfSlcblx0aWYgbm90IHNwYWNlX3VzZXJcblx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcInVzZXJfaWTlr7nlupTnmoTnlKjmiLfkuI3lsZ7kuo7lvZPliY1zcGFjZVwiKVxuXHRyZXR1cm4gc3BhY2VfdXNlclxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldFNwYWNlVXNlck9yZ0luZm8gPSAoc3BhY2VfdXNlcikgLT5cblx0aW5mbyA9IG5ldyBPYmplY3Rcblx0aW5mby5vcmdhbml6YXRpb24gPSBzcGFjZV91c2VyLm9yZ2FuaXphdGlvblxuXHRvcmcgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLm9yZ2FuaXphdGlvbnMuZmluZE9uZShzcGFjZV91c2VyLm9yZ2FuaXphdGlvbiwgeyBmaWVsZHM6IHsgbmFtZTogMSAsIGZ1bGxuYW1lOiAxIH0gfSlcblx0aW5mby5vcmdhbml6YXRpb25fbmFtZSA9IG9yZy5uYW1lXG5cdGluZm8ub3JnYW5pemF0aW9uX2Z1bGxuYW1lID0gb3JnLmZ1bGxuYW1lXG5cdHJldHVybiBpbmZvXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaXNGbG93RW5hYmxlZCA9IChmbG93KSAtPlxuXHRpZiBmbG93LnN0YXRlIGlzbnQgXCJlbmFibGVkXCJcblx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcIua1geeoi+acquWQr+eUqCzmk43kvZzlpLHotKVcIilcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pc0Zsb3dTcGFjZU1hdGNoZWQgPSAoZmxvdywgc3BhY2VfaWQpIC0+XG5cdGlmIGZsb3cuc3BhY2UgaXNudCBzcGFjZV9pZFxuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwi5rWB56iL5ZKM5bel5L2c5Yy6SUTkuI3ljLnphY1cIilcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRGb3JtID0gKGZvcm1faWQpIC0+XG5cdGZvcm0gPSBDcmVhdG9yLkNvbGxlY3Rpb25zLmZvcm1zLmZpbmRPbmUoZm9ybV9pZClcblx0aWYgbm90IGZvcm1cblx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCAn6KGo5Y2VSUTmnInor6/miJbmraTooajljZXlt7Lnu4/ooqvliKDpmaQnKVxuXG5cdHJldHVybiBmb3JtXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Q2F0ZWdvcnkgPSAoY2F0ZWdvcnlfaWQpIC0+XG5cdHJldHVybiBDcmVhdG9yLkNvbGxlY3Rpb25zLmNhdGVnb3JpZXMuZmluZE9uZShjYXRlZ29yeV9pZClcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jaGVja1N5bmNEaXJlY3Rpb24gPSAob2JqZWN0X25hbWUsIGZsb3dfaWQpIC0+XG5cdG93ID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3Rfd29ya2Zsb3dzLmZpbmRPbmUoe1xuXHRcdG9iamVjdF9uYW1lOiBvYmplY3RfbmFtZSxcblx0XHRmbG93X2lkOiBmbG93X2lkXG5cdH0pXG5cdGlmICFvd1xuXHRcdHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsICfmnKrmib7liLDlr7nosaHmtYHnqIvmmKDlsITorrDlvZXjgIInKVxuXHRzeW5jRGlyZWN0aW9uID0gb3cuc3luY19kaXJlY3Rpb24gfHwgJ2JvdGgnXG5cdGlmICFbJ2JvdGgnLCAnb2JqX3RvX2lucyddLmluY2x1ZGVzKHN5bmNEaXJlY3Rpb24pXG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgJ+S4jeaUr+aMgeeahOWQjOatpeaWueWQkeOAgicpXG5cblx0cmV0dXJuIFxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmNyZWF0ZV9pbnN0YW5jZSA9IChpbnN0YW5jZV9mcm9tX2NsaWVudCwgdXNlcl9pbmZvKSAtPlxuXHRjaGVjayBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudFwiXSwgU3RyaW5nXG5cdGNoZWNrIGluc3RhbmNlX2Zyb21fY2xpZW50W1wic3BhY2VcIl0sIFN0cmluZ1xuXHRjaGVjayBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImZsb3dcIl0sIFN0cmluZ1xuXHRjaGVjayBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl0sIFt7bzogU3RyaW5nLCBpZHM6IFtTdHJpbmddfV1cblxuXHQjIOagoemqjOWQjOatpeaWueWQkVxuXHR1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmNoZWNrU3luY0RpcmVjdGlvbihpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl1bMF0ubywgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJmbG93XCJdKVxuXG5cdCMg5qCh6aqM5piv5ZCmcmVjb3Jk5bey57uP5Y+R6LW355qE55Sz6K+36L+Y5Zyo5a6h5om55LitXG5cdHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY2hlY2tJc0luQXBwcm92YWwoaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJyZWNvcmRfaWRzXCJdWzBdLCBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInNwYWNlXCJdKVxuXG5cdHNwYWNlX2lkID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJzcGFjZVwiXVxuXHRmbG93X2lkID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJmbG93XCJdXG5cdHVzZXJfaWQgPSB1c2VyX2luZm8uX2lkXG5cdCMg6I635Y+W5YmN5Y+w5omA5Lyg55qEdHJhY2Vcblx0dHJhY2VfZnJvbV9jbGllbnQgPSBudWxsXG5cdCMg6I635Y+W5YmN5Y+w5omA5Lyg55qEYXBwcm92ZVxuXHRhcHByb3ZlX2Zyb21fY2xpZW50ID0gbnVsbFxuXHRpZiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInRyYWNlc1wiXSBhbmQgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJ0cmFjZXNcIl1bMF1cblx0XHR0cmFjZV9mcm9tX2NsaWVudCA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1widHJhY2VzXCJdWzBdXG5cdFx0aWYgdHJhY2VfZnJvbV9jbGllbnRbXCJhcHByb3Zlc1wiXSBhbmQgdHJhY2VfZnJvbV9jbGllbnRbXCJhcHByb3Zlc1wiXVswXVxuXHRcdFx0YXBwcm92ZV9mcm9tX2NsaWVudCA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1widHJhY2VzXCJdWzBdW1wiYXBwcm92ZXNcIl1bMF1cblxuXHQjIOiOt+WPluS4gOS4qnNwYWNlXG5cdHNwYWNlID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZShzcGFjZV9pZClcblx0IyDojrflj5bkuIDkuKpmbG93XG5cdGZsb3cgPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZsb3coZmxvd19pZClcblx0IyDojrflj5bkuIDkuKpzcGFjZeS4i+eahOS4gOS4qnVzZXJcblx0c3BhY2VfdXNlciA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0U3BhY2VVc2VyKHNwYWNlX2lkLCB1c2VyX2lkKVxuXHQjIOiOt+WPlnNwYWNlX3VzZXLmiYDlnKjnmoTpg6jpl6jkv6Hmga9cblx0c3BhY2VfdXNlcl9vcmdfaW5mbyA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0U3BhY2VVc2VyT3JnSW5mbyhzcGFjZV91c2VyKVxuXHQjIOWIpOaWreS4gOS4qmZsb3fmmK/lkKbkuLrlkK/nlKjnirbmgIFcblx0dXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pc0Zsb3dFbmFibGVkKGZsb3cpXG5cdCMg5Yik5pat5LiA5LiqZmxvd+WSjHNwYWNlX2lk5piv5ZCm5Yy56YWNXG5cdHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaXNGbG93U3BhY2VNYXRjaGVkKGZsb3csIHNwYWNlX2lkKVxuXG5cdGZvcm0gPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZvcm0oZmxvdy5mb3JtKVxuXG5cdHBlcm1pc3Npb25zID0gcGVybWlzc2lvbk1hbmFnZXIuZ2V0Rmxvd1Blcm1pc3Npb25zKGZsb3dfaWQsIHVzZXJfaWQpXG5cblx0aWYgbm90IHBlcm1pc3Npb25zLmluY2x1ZGVzKFwiYWRkXCIpXG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCLlvZPliY3nlKjmiLfmsqHmnInmraTmtYHnqIvnmoTmlrDlu7rmnYPpmZBcIilcblxuXHRub3cgPSBuZXcgRGF0ZVxuXHRpbnNfb2JqID0ge31cblx0aW5zX29iai5faWQgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLmluc3RhbmNlcy5fbWFrZU5ld0lEKClcblx0aW5zX29iai5zcGFjZSA9IHNwYWNlX2lkXG5cdGluc19vYmouZmxvdyA9IGZsb3dfaWRcblx0aW5zX29iai5mbG93X3ZlcnNpb24gPSBmbG93LmN1cnJlbnQuX2lkXG5cdGluc19vYmouZm9ybSA9IGZsb3cuZm9ybVxuXHRpbnNfb2JqLmZvcm1fdmVyc2lvbiA9IGZsb3cuY3VycmVudC5mb3JtX3ZlcnNpb25cblx0aW5zX29iai5uYW1lID0gZmxvdy5uYW1lXG5cdGluc19vYmouc3VibWl0dGVyID0gdXNlcl9pZFxuXHRpbnNfb2JqLnN1Ym1pdHRlcl9uYW1lID0gdXNlcl9pbmZvLm5hbWVcblx0aW5zX29iai5hcHBsaWNhbnQgPSBpZiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudFwiXSB0aGVuIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdIGVsc2UgdXNlcl9pZFxuXHRpbnNfb2JqLmFwcGxpY2FudF9uYW1lID0gaWYgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfbmFtZVwiXSB0aGVuIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X25hbWVcIl0gZWxzZSB1c2VyX2luZm8ubmFtZVxuXHRpbnNfb2JqLmFwcGxpY2FudF9vcmdhbml6YXRpb24gPSBpZiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9vcmdhbml6YXRpb25cIl0gdGhlbiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9vcmdhbml6YXRpb25cIl0gZWxzZSBzcGFjZV91c2VyLm9yZ2FuaXphdGlvblxuXHRpbnNfb2JqLmFwcGxpY2FudF9vcmdhbml6YXRpb25fbmFtZSA9IGlmIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvbl9uYW1lXCJdIHRoZW4gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uX25hbWVcIl0gZWxzZSBzcGFjZV91c2VyX29yZ19pbmZvLm9yZ2FuaXphdGlvbl9uYW1lXG5cdGluc19vYmouYXBwbGljYW50X29yZ2FuaXphdGlvbl9mdWxsbmFtZSA9IGlmIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvbl9mdWxsbmFtZVwiXSB0aGVuIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvbl9mdWxsbmFtZVwiXSBlbHNlICBzcGFjZV91c2VyX29yZ19pbmZvLm9yZ2FuaXphdGlvbl9mdWxsbmFtZVxuXHRpbnNfb2JqLmFwcGxpY2FudF9jb21wYW55ID0gaWYgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfY29tcGFueVwiXSB0aGVuIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X2NvbXBhbnlcIl0gZWxzZSBzcGFjZV91c2VyLmNvbXBhbnlfaWRcblx0aW5zX29iai5zdGF0ZSA9ICdkcmFmdCdcblx0aW5zX29iai5jb2RlID0gJydcblx0aW5zX29iai5pc19hcmNoaXZlZCA9IGZhbHNlXG5cdGluc19vYmouaXNfZGVsZXRlZCA9IGZhbHNlXG5cdGluc19vYmouY3JlYXRlZCA9IG5vd1xuXHRpbnNfb2JqLmNyZWF0ZWRfYnkgPSB1c2VyX2lkXG5cdGluc19vYmoubW9kaWZpZWQgPSBub3dcblx0aW5zX29iai5tb2RpZmllZF9ieSA9IHVzZXJfaWRcblxuXHRpbnNfb2JqLnJlY29yZF9pZHMgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl1cblxuXHRpZiBzcGFjZV91c2VyLmNvbXBhbnlfaWRcblx0XHRpbnNfb2JqLmNvbXBhbnlfaWQgPSBzcGFjZV91c2VyLmNvbXBhbnlfaWRcblxuXHQjIOaWsOW7ulRyYWNlXG5cdHRyYWNlX29iaiA9IHt9XG5cdHRyYWNlX29iai5faWQgPSBuZXcgTW9uZ28uT2JqZWN0SUQoKS5fc3RyXG5cdHRyYWNlX29iai5pbnN0YW5jZSA9IGluc19vYmouX2lkXG5cdHRyYWNlX29iai5pc19maW5pc2hlZCA9IGZhbHNlXG5cdCMg5b2T5YmN5pyA5paw54mIZmxvd+S4reW8gOWni+iKgueCuVxuXHRzdGFydF9zdGVwID0gXy5maW5kKGZsb3cuY3VycmVudC5zdGVwcywgKHN0ZXApIC0+XG5cdFx0cmV0dXJuIHN0ZXAuc3RlcF90eXBlIGlzICdzdGFydCdcblx0KVxuXHR0cmFjZV9vYmouc3RlcCA9IHN0YXJ0X3N0ZXAuX2lkXG5cdHRyYWNlX29iai5uYW1lID0gc3RhcnRfc3RlcC5uYW1lXG5cblx0dHJhY2Vfb2JqLnN0YXJ0X2RhdGUgPSBub3dcblx0IyDmlrDlu7pBcHByb3ZlXG5cdGFwcHJfb2JqID0ge31cblx0YXBwcl9vYmouX2lkID0gbmV3IE1vbmdvLk9iamVjdElEKCkuX3N0clxuXHRhcHByX29iai5pbnN0YW5jZSA9IGluc19vYmouX2lkXG5cdGFwcHJfb2JqLnRyYWNlID0gdHJhY2Vfb2JqLl9pZFxuXHRhcHByX29iai5pc19maW5pc2hlZCA9IGZhbHNlXG5cdGFwcHJfb2JqLnVzZXIgPSBpZiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudFwiXSB0aGVuIGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdIGVsc2UgdXNlcl9pZFxuXHRhcHByX29iai51c2VyX25hbWUgPSBpZiBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9uYW1lXCJdIHRoZW4gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfbmFtZVwiXSBlbHNlIHVzZXJfaW5mby5uYW1lXG5cdGFwcHJfb2JqLmhhbmRsZXIgPSB1c2VyX2lkXG5cdGFwcHJfb2JqLmhhbmRsZXJfbmFtZSA9IHVzZXJfaW5mby5uYW1lXG5cdGFwcHJfb2JqLmhhbmRsZXJfb3JnYW5pemF0aW9uID0gc3BhY2VfdXNlci5vcmdhbml6YXRpb25cblx0YXBwcl9vYmouaGFuZGxlcl9vcmdhbml6YXRpb25fbmFtZSA9IHNwYWNlX3VzZXJfb3JnX2luZm8ubmFtZVxuXHRhcHByX29iai5oYW5kbGVyX29yZ2FuaXphdGlvbl9mdWxsbmFtZSA9IHNwYWNlX3VzZXJfb3JnX2luZm8uZnVsbG5hbWVcblx0YXBwcl9vYmoudHlwZSA9ICdkcmFmdCdcblx0YXBwcl9vYmouc3RhcnRfZGF0ZSA9IG5vd1xuXHRhcHByX29iai5yZWFkX2RhdGUgPSBub3dcblx0YXBwcl9vYmouaXNfcmVhZCA9IHRydWVcblx0YXBwcl9vYmouaXNfZXJyb3IgPSBmYWxzZVxuXHRhcHByX29iai5kZXNjcmlwdGlvbiA9ICcnXG5cdHJlbGF0ZWRUYWJsZXNJbmZvID0ge31cblx0YXBwcl9vYmoudmFsdWVzID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZVZhbHVlcyhpbnNfb2JqLnJlY29yZF9pZHNbMF0sIGZsb3dfaWQsIHNwYWNlX2lkLCBmb3JtLmN1cnJlbnQuZmllbGRzLCByZWxhdGVkVGFibGVzSW5mbylcblxuXHR0cmFjZV9vYmouYXBwcm92ZXMgPSBbYXBwcl9vYmpdXG5cdGluc19vYmoudHJhY2VzID0gW3RyYWNlX29ial1cblxuXHRpbnNfb2JqLnZhbHVlcyA9IGFwcHJfb2JqLnZhbHVlc1xuXG5cdGluc19vYmouaW5ib3hfdXNlcnMgPSBpbnN0YW5jZV9mcm9tX2NsaWVudC5pbmJveF91c2VycyB8fCBbXVxuXG5cdGluc19vYmouY3VycmVudF9zdGVwX25hbWUgPSBzdGFydF9zdGVwLm5hbWVcblxuXHRpZiBmbG93LmF1dG9fcmVtaW5kIGlzIHRydWVcblx0XHRpbnNfb2JqLmF1dG9fcmVtaW5kID0gdHJ1ZVxuXG5cdCMg5paw5bu655Sz6K+35Y2V5pe277yMaW5zdGFuY2Vz6K6w5b2V5rWB56iL5ZCN56ew44CB5rWB56iL5YiG57G75ZCN56ewICMxMzEzXG5cdGluc19vYmouZmxvd19uYW1lID0gZmxvdy5uYW1lXG5cdGlmIGZvcm0uY2F0ZWdvcnlcblx0XHRjYXRlZ29yeSA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Q2F0ZWdvcnkoZm9ybS5jYXRlZ29yeSlcblx0XHRpZiBjYXRlZ29yeVxuXHRcdFx0aW5zX29iai5jYXRlZ29yeV9uYW1lID0gY2F0ZWdvcnkubmFtZVxuXHRcdFx0aW5zX29iai5jYXRlZ29yeSA9IGNhdGVnb3J5Ll9pZFxuXG5cdG5ld19pbnNfaWQgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLmluc3RhbmNlcy5pbnNlcnQoaW5zX29iailcblxuXHR1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlUmVjb3JkSW5zdGFuY2VJbmZvKGluc19vYmoucmVjb3JkX2lkc1swXSwgbmV3X2luc19pZCwgc3BhY2VfaWQpXG5cblx0IyB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlUmVsYXRlZFJlY29yZEluc3RhbmNlSW5mbyhyZWxhdGVkVGFibGVzSW5mbywgbmV3X2luc19pZCwgc3BhY2VfaWQpXG5cblx0dXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZUF0dGFjaChpbnNfb2JqLnJlY29yZF9pZHNbMF0sIHNwYWNlX2lkLCBpbnNfb2JqLl9pZCwgYXBwcl9vYmouX2lkKVxuXG5cdHJldHVybiBuZXdfaW5zX2lkXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaW5pdGlhdGVWYWx1ZXMgPSAocmVjb3JkSWRzLCBmbG93SWQsIHNwYWNlSWQsIGZpZWxkcywgcmVsYXRlZFRhYmxlc0luZm8pIC0+XG5cdGZpZWxkQ29kZXMgPSBbXVxuXHRfLmVhY2ggZmllbGRzLCAoZikgLT5cblx0XHRpZiBmLnR5cGUgPT0gJ3NlY3Rpb24nXG5cdFx0XHRfLmVhY2ggZi5maWVsZHMsIChmZikgLT5cblx0XHRcdFx0ZmllbGRDb2Rlcy5wdXNoIGZmLmNvZGVcblx0XHRlbHNlXG5cdFx0XHRmaWVsZENvZGVzLnB1c2ggZi5jb2RlXG5cblx0dmFsdWVzID0ge31cblx0b2JqZWN0TmFtZSA9IHJlY29yZElkcy5vXG5cdG9iamVjdCA9IGdldE9iamVjdENvbmZpZyhvYmplY3ROYW1lKVxuXHRyZWNvcmRJZCA9IHJlY29yZElkcy5pZHNbMF1cblx0b3cgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLm9iamVjdF93b3JrZmxvd3MuZmluZE9uZSh7XG5cdFx0b2JqZWN0X25hbWU6IG9iamVjdE5hbWUsXG5cdFx0Zmxvd19pZDogZmxvd0lkXG5cdH0pXG5cdCMgcmVjb3JkID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKG9iamVjdE5hbWUsIHNwYWNlSWQpLmZpbmRPbmUocmVjb3JkSWQpXG5cdHJlY29yZCA9IG9iamVjdEZpbmRPbmUob2JqZWN0TmFtZSwgeyBmaWx0ZXJzOiBbWydfaWQnLCAnPScsIHJlY29yZElkXV19KVxuXHRmbG93ID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKCdmbG93cycpLmZpbmRPbmUoZmxvd0lkLCB7IGZpZWxkczogeyBmb3JtOiAxIH0gfSlcblx0aWYgb3cgYW5kIHJlY29yZFxuXHRcdHJlcXVpcmVkRGV0YWlscyA9IG93LnJlcXVpcmVkX2RldGFpbHMgfHwgW11cblx0XHRjaGVja1JlcXVpcmVkRGV0YWlscyhyZXF1aXJlZERldGFpbHMsIHJlY29yZClcblxuXHRcdGZvcm0gPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oXCJmb3Jtc1wiKS5maW5kT25lKGZsb3cuZm9ybSlcblx0XHRmb3JtRmllbGRzID0gZm9ybS5jdXJyZW50LmZpZWxkcyB8fCBbXVxuXHRcdHJlbGF0ZWRPYmplY3RzID0gZ2V0UmVsYXRlZHMob2JqZWN0TmFtZSlcblx0XHRyZWxhdGVkT2JqZWN0c0tleXMgPSBfLnBsdWNrKHJlbGF0ZWRPYmplY3RzLCAnb2JqZWN0X25hbWUnKVxuXHRcdGZvcm1UYWJsZUZpZWxkcyA9IF8uZmlsdGVyIGZvcm1GaWVsZHMsIChmb3JtRmllbGQpIC0+XG5cdFx0XHRyZXR1cm4gZm9ybUZpZWxkLnR5cGUgPT0gJ3RhYmxlJ1xuXHRcdGZvcm1UYWJsZUZpZWxkc0NvZGUgPSBfLnBsdWNrKGZvcm1UYWJsZUZpZWxkcywgJ2NvZGUnKVxuXG5cdFx0dGFibGVGaWVsZENvZGVzID0gW11cblx0XHR0YWJsZUZpZWxkTWFwID0gW11cblx0XHR0YWJsZVRvUmVsYXRlZE1hcCA9IHt9XG5cblx0XHRvdy5maWVsZF9tYXA/LmZvckVhY2ggKGZtKSAtPlxuXHRcdFx0b2JqZWN0X2ZpZWxkID0gZm0ub2JqZWN0X2ZpZWxkXG5cdFx0XHR3b3JrZmxvd19maWVsZCA9IGZtLndvcmtmbG93X2ZpZWxkXG5cdFx0XHRpZiAhb2JqZWN0X2ZpZWxkIHx8ICF3b3JrZmxvd19maWVsZFxuXHRcdFx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKDQwMCwgJ+acquaJvuWIsOWtl+aute+8jOivt+ajgOafpeWvueixoea1geeoi+aYoOWwhOWtl+autemFjee9ricpXG5cdFx0XHRyZWxhdGVkT2JqZWN0RmllbGRDb2RlID0gZ2V0UmVsYXRlZE9iamVjdEZpZWxkQ29kZShyZWxhdGVkT2JqZWN0c0tleXMsIG9iamVjdF9maWVsZClcblx0XHRcdGZvcm1UYWJsZUZpZWxkQ29kZSA9IGdldEZvcm1UYWJsZUZpZWxkQ29kZShmb3JtVGFibGVGaWVsZHNDb2RlLCB3b3JrZmxvd19maWVsZClcblx0XHRcdG9iakZpZWxkID0gb2JqZWN0LmZpZWxkc1tvYmplY3RfZmllbGRdXG5cdFx0XHRmb3JtRmllbGQgPSBnZXRGb3JtRmllbGQoZm9ybUZpZWxkcywgd29ya2Zsb3dfZmllbGQpXG5cdFx0XHRyZWNvcmRGaWVsZFZhbHVlID0gcmVjb3JkW29iamVjdF9maWVsZF1cblx0XHRcdCMg5aSE55CG5a2Q6KGo5a2X5q61XG5cdFx0XHRpZiByZWxhdGVkT2JqZWN0RmllbGRDb2RlXG5cdFx0XHRcdFxuXHRcdFx0XHRvVGFibGVDb2RlID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMF1cblx0XHRcdFx0b1RhYmxlRmllbGRDb2RlID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMV1cblx0XHRcdFx0dGFibGVUb1JlbGF0ZWRNYXBLZXkgPSBvVGFibGVDb2RlXG5cdFx0XHRcdGlmICF0YWJsZVRvUmVsYXRlZE1hcFt0YWJsZVRvUmVsYXRlZE1hcEtleV1cblx0XHRcdFx0XHR0YWJsZVRvUmVsYXRlZE1hcFt0YWJsZVRvUmVsYXRlZE1hcEtleV0gPSB7fVxuXG5cdFx0XHRcdGlmIGZvcm1UYWJsZUZpZWxkQ29kZVxuXHRcdFx0XHRcdHdUYWJsZUNvZGUgPSB3b3JrZmxvd19maWVsZC5zcGxpdCgnLicpWzBdXG5cdFx0XHRcdFx0dGFibGVUb1JlbGF0ZWRNYXBbdGFibGVUb1JlbGF0ZWRNYXBLZXldWydfRlJPTV9UQUJMRV9DT0RFJ10gPSB3VGFibGVDb2RlXG5cblx0XHRcdFx0dGFibGVUb1JlbGF0ZWRNYXBbdGFibGVUb1JlbGF0ZWRNYXBLZXldW29UYWJsZUZpZWxkQ29kZV0gPSB3b3JrZmxvd19maWVsZFxuXHRcdFx0IyDliKTmlq3mmK/lkKbmmK/ooajmoLzlrZfmrrVcblx0XHRcdGVsc2UgaWYgd29ya2Zsb3dfZmllbGQuaW5kZXhPZignLicpID4gMCBhbmQgb2JqZWN0X2ZpZWxkLmluZGV4T2YoJy4kLicpID4gMFxuXHRcdFx0XHR3VGFibGVDb2RlID0gd29ya2Zsb3dfZmllbGQuc3BsaXQoJy4nKVswXVxuXHRcdFx0XHRvVGFibGVDb2RlID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJC4nKVswXVxuXHRcdFx0XHRpZiByZWNvcmQuaGFzT3duUHJvcGVydHkob1RhYmxlQ29kZSkgYW5kIF8uaXNBcnJheShyZWNvcmRbb1RhYmxlQ29kZV0pXG5cdFx0XHRcdFx0dGFibGVGaWVsZENvZGVzLnB1c2goSlNPTi5zdHJpbmdpZnkoe1xuXHRcdFx0XHRcdFx0d29ya2Zsb3dfdGFibGVfZmllbGRfY29kZTogd1RhYmxlQ29kZSxcblx0XHRcdFx0XHRcdG9iamVjdF90YWJsZV9maWVsZF9jb2RlOiBvVGFibGVDb2RlXG5cdFx0XHRcdFx0fSkpXG5cdFx0XHRcdFx0dGFibGVGaWVsZE1hcC5wdXNoKGZtKVxuXHRcdFx0XHRlbHNlIGlmIG9UYWJsZUNvZGUuaW5kZXhPZignLicpID4gMCAjIOivtOaYjuaYr+WFs+iBlOihqOeahGdyaWTlrZfmrrVcblx0XHRcdFx0XHRvVGFibGVDb2RlUmVmZXJlbmNlRmllbGRDb2RlID0gb1RhYmxlQ29kZS5zcGxpdCgnLicpWzBdO1xuXHRcdFx0XHRcdGdyaWRDb2RlID0gb1RhYmxlQ29kZS5zcGxpdCgnLicpWzFdO1xuXHRcdFx0XHRcdG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZCA9IG9iamVjdC5maWVsZHNbb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkQ29kZV07XG5cdFx0XHRcdFx0aWYgb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkICYmIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQudHlwZSkgJiYgXy5pc1N0cmluZyhvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQucmVmZXJlbmNlX3RvKVxuXHRcdFx0XHRcdFx0aWYgcmVjb3JkW29UYWJsZUNvZGVdXG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdHJlZmVyZW5jZVRvRmllbGROYW1lID0gb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkLnJlZmVyZW5jZV90b19maWVsZCB8fCAnX2lkJztcblx0XHRcdFx0XHRcdHJlZmVyZW5jZVRvT2JqZWN0TmFtZSA9IG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZC5yZWZlcmVuY2VfdG87XG5cdFx0XHRcdFx0XHRyZWZlcmVuY2VUb0ZpZWxkVmFsdWUgPSByZWNvcmRbb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkLm5hbWVdO1xuXHRcdFx0XHRcdFx0cmVmZXJlbmNlVG9Eb2MgPSBnZXRGaWVsZE9kYXRhVmFsdWUocmVmZXJlbmNlVG9PYmplY3ROYW1lLCByZWZlcmVuY2VUb0ZpZWxkVmFsdWUsIHJlZmVyZW5jZVRvRmllbGROYW1lKTtcblx0XHRcdFx0XHRcdGlmIHJlZmVyZW5jZVRvRG9jW2dyaWRDb2RlXVxuXHRcdFx0XHRcdFx0XHRyZWNvcmRbb1RhYmxlQ29kZV0gPSByZWZlcmVuY2VUb0RvY1tncmlkQ29kZV07XG5cdFx0XHRcdFx0XHRcdHRhYmxlRmllbGRDb2Rlcy5wdXNoKEpTT04uc3RyaW5naWZ5KHtcblx0XHRcdFx0XHRcdFx0XHR3b3JrZmxvd190YWJsZV9maWVsZF9jb2RlOiB3VGFibGVDb2RlLFxuXHRcdFx0XHRcdFx0XHRcdG9iamVjdF90YWJsZV9maWVsZF9jb2RlOiBvVGFibGVDb2RlXG5cdFx0XHRcdFx0XHRcdH0pKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRhYmxlRmllbGRNYXAucHVzaChmbSk7XG5cblx0XHRcdCMg5aSE55CGbG9va3Vw44CBbWFzdGVyX2RldGFpbOexu+Wei+Wtl+autVxuXHRcdFx0ZWxzZSBpZiBvYmplY3RfZmllbGQuaW5kZXhPZignLicpID4gMCBhbmQgb2JqZWN0X2ZpZWxkLmluZGV4T2YoJy4kLicpID09IC0xXG5cdFx0XHRcdG9iamVjdEZpZWxkTmFtZSA9IG9iamVjdF9maWVsZC5zcGxpdCgnLicpWzBdXG5cdFx0XHRcdGxvb2t1cEZpZWxkTmFtZSA9IG9iamVjdF9maWVsZC5zcGxpdCgnLicpWzFdXG5cdFx0XHRcdGlmIG9iamVjdFxuXHRcdFx0XHRcdG9iamVjdEZpZWxkID0gb2JqZWN0LmZpZWxkc1tvYmplY3RGaWVsZE5hbWVdXG5cdFx0XHRcdFx0aWYgb2JqZWN0RmllbGQgJiYgZm9ybUZpZWxkICYmIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhvYmplY3RGaWVsZC50eXBlKSAmJiBfLmlzU3RyaW5nKG9iamVjdEZpZWxkLnJlZmVyZW5jZV90bylcblx0XHRcdFx0XHRcdGxvb2t1cE9iamVjdFJlY29yZCA9IG9iamVjdEZpbmRPbmUob2JqZWN0RmllbGQucmVmZXJlbmNlX3RvLCB7IGZpbHRlcnM6IFtbJ19pZCcsICc9JywgcmVjb3JkW29iamVjdEZpZWxkTmFtZV1dXSwgZmllbGRzOiBbbG9va3VwRmllbGROYW1lXSB9KVxuXHRcdFx0XHRcdFx0aWYgIWxvb2t1cE9iamVjdFJlY29yZFxuXHRcdFx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0XHRcdG9iamVjdEZpZWxkT2JqZWN0TmFtZSA9IG9iamVjdEZpZWxkLnJlZmVyZW5jZV90b1xuXHRcdFx0XHRcdFx0bG9va3VwRmllbGRPYmogPSBnZXRPYmplY3RDb25maWcob2JqZWN0RmllbGRPYmplY3ROYW1lKVxuXHRcdFx0XHRcdFx0b2JqZWN0TG9va3VwRmllbGQgPSBsb29rdXBGaWVsZE9iai5maWVsZHNbbG9va3VwRmllbGROYW1lXVxuXG5cdFx0XHRcdFx0XHR2YWx1ZXNbd29ya2Zsb3dfZmllbGRdID0gZ2V0SW5zdGFuY2VGaWVsZFZhbHVlKG9iamVjdExvb2t1cEZpZWxkLCBmb3JtRmllbGQsIGxvb2t1cE9iamVjdFJlY29yZCwgbG9va3VwRmllbGROYW1lLCBzcGFjZUlkKVxuXHRcdFx0ZWxzZVxuXHRcdFx0XHR2YWx1ZXNbd29ya2Zsb3dfZmllbGRdID0gZ2V0SW5zdGFuY2VGaWVsZFZhbHVlKG9iakZpZWxkLCBmb3JtRmllbGQsIHJlY29yZCwgb2JqZWN0X2ZpZWxkLCBzcGFjZUlkKVxuXG5cdFx0IyDooajmoLzlrZfmrrVcblx0XHRfLnVuaXEodGFibGVGaWVsZENvZGVzKS5mb3JFYWNoICh0ZmMpIC0+XG5cdFx0XHRjID0gSlNPTi5wYXJzZSh0ZmMpXG5cdFx0XHR2YWx1ZXNbYy53b3JrZmxvd190YWJsZV9maWVsZF9jb2RlXSA9IFtdXG5cdFx0XHRyZWNvcmRbYy5vYmplY3RfdGFibGVfZmllbGRfY29kZV0uZm9yRWFjaCAodHIpIC0+XG5cdFx0XHRcdG5ld1RyID0ge31cblx0XHRcdFx0Xy5lYWNoIHRyLCAodiwgaykgLT5cblx0XHRcdFx0XHR0YWJsZUZpZWxkTWFwLmZvckVhY2ggKHRmbSkgLT5cblx0XHRcdFx0XHRcdGlmIHRmbS5vYmplY3RfZmllbGQgaXMgKGMub2JqZWN0X3RhYmxlX2ZpZWxkX2NvZGUgKyAnLiQuJyArIGspXG5cdFx0XHRcdFx0XHRcdHdUZENvZGUgPSB0Zm0ud29ya2Zsb3dfZmllbGQuc3BsaXQoJy4nKVsxXVxuXHRcdFx0XHRcdFx0XHRuZXdUclt3VGRDb2RlXSA9IHZcblx0XHRcdFx0aWYgbm90IF8uaXNFbXB0eShuZXdUcilcblx0XHRcdFx0XHR2YWx1ZXNbYy53b3JrZmxvd190YWJsZV9maWVsZF9jb2RlXS5wdXNoKG5ld1RyKVxuXG5cdFx0IyDlkIzmraXlrZDooajmlbDmja7oh7PooajljZXooajmoLxcblx0XHRfLmVhY2ggdGFibGVUb1JlbGF0ZWRNYXAsICAobWFwLCBrZXkpIC0+XG5cdFx0XHR0YWJsZUNvZGUgPSBtYXAuX0ZST01fVEFCTEVfQ09ERVxuXHRcdFx0Zm9ybVRhYmxlRmllbGQgPSBnZXRGb3JtVGFibGVGaWVsZChmb3JtVGFibGVGaWVsZHMsIHRhYmxlQ29kZSlcblx0XHRcdGlmICF0YWJsZUNvZGVcblx0XHRcdFx0Y29uc29sZS53YXJuKCd0YWJsZVRvUmVsYXRlZDogWycgKyBrZXkgKyAnXSBtaXNzaW5nIGNvcnJlc3BvbmRpbmcgdGFibGUuJylcblx0XHRcdGVsc2Vcblx0XHRcdFx0cmVsYXRlZE9iamVjdE5hbWUgPSBrZXlcblx0XHRcdFx0dGFibGVWYWx1ZXMgPSBbXVxuXHRcdFx0XHRyZWxhdGVkVGFibGVJdGVtcyA9IFtdXG5cdFx0XHRcdHJlbGF0ZWRPYmplY3QgPSBnZXRPYmplY3RDb25maWcocmVsYXRlZE9iamVjdE5hbWUpXG5cdFx0XHRcdHJlbGF0ZWRGaWVsZCA9IF8uZmluZCByZWxhdGVkT2JqZWN0LmZpZWxkcywgKGYpIC0+XG5cdFx0XHRcdFx0cmV0dXJuIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhmLnR5cGUpICYmIGYucmVmZXJlbmNlX3RvID09IG9iamVjdE5hbWVcblxuXHRcdFx0XHRyZWxhdGVkRmllbGROYW1lID0gcmVsYXRlZEZpZWxkLm5hbWVcblxuXHRcdFx0XHRyZWxhdGVkUmVjb3JkcyA9IG9iamVjdEZpbmQocmVsYXRlZE9iamVjdE5hbWUsIHtcblx0XHRcdFx0XHRmaWx0ZXJzOiBbXG5cdFx0XHRcdFx0XHRbcmVsYXRlZEZpZWxkTmFtZSwgJz0nLCByZWNvcmRJZF1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH0pXG5cblx0XHRcdFx0cmVsYXRlZFJlY29yZHMuZm9yRWFjaCAocnIpIC0+XG5cdFx0XHRcdFx0dGFibGVWYWx1ZUl0ZW0gPSB7fVxuXHRcdFx0XHRcdF8uZWFjaCBtYXAsICh2YWx1ZUtleSwgZmllbGRLZXkpIC0+XG5cdFx0XHRcdFx0XHRpZiBmaWVsZEtleSAhPSAnX0ZST01fVEFCTEVfQ09ERSdcblx0XHRcdFx0XHRcdFx0dGFibGVGaWVsZFZhbHVlXG5cdFx0XHRcdFx0XHRcdGZvcm1GaWVsZEtleVxuXHRcdFx0XHRcdFx0XHRpZiB2YWx1ZUtleS5zdGFydHNXaXRoKHRhYmxlQ29kZSArICcuJylcblx0XHRcdFx0XHRcdFx0XHRmb3JtRmllbGRLZXkgPSAodmFsdWVLZXkuc3BsaXQoXCIuXCIpWzFdKVxuXHRcdFx0XHRcdFx0XHRlbHNlXG5cdFx0XHRcdFx0XHRcdFx0Zm9ybUZpZWxkS2V5ID0gdmFsdWVLZXlcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdGZvcm1GaWVsZCA9IGdldEZvcm1UYWJsZVN1YkZpZWxkKGZvcm1UYWJsZUZpZWxkLCBmb3JtRmllbGRLZXkpXG5cdFx0XHRcdFx0XHRcdHJlbGF0ZWRPYmplY3RGaWVsZCA9IHJlbGF0ZWRPYmplY3QuZmllbGRzW2ZpZWxkS2V5XVxuXHRcdFx0XHRcdFx0XHRpZiAhZm9ybUZpZWxkIHx8ICFyZWxhdGVkT2JqZWN0RmllbGRcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0XHRcdFx0dGFibGVGaWVsZFZhbHVlID0gZ2V0SW5zdGFuY2VGaWVsZFZhbHVlKHJlbGF0ZWRPYmplY3RGaWVsZCwgZm9ybUZpZWxkLCByciwgZmllbGRLZXksIHNwYWNlSWQpXG5cdFx0XHRcdFx0XHRcdHRhYmxlVmFsdWVJdGVtW2Zvcm1GaWVsZEtleV0gPSB0YWJsZUZpZWxkVmFsdWVcblx0XHRcdFx0XHRpZiAhXy5pc0VtcHR5KHRhYmxlVmFsdWVJdGVtKVxuXHRcdFx0XHRcdFx0dGFibGVWYWx1ZUl0ZW0uX2lkID0gcnIuX2lkXG5cdFx0XHRcdFx0XHR0YWJsZVZhbHVlcy5wdXNoKHRhYmxlVmFsdWVJdGVtKVxuXHRcdFx0XHRcdFx0cmVsYXRlZFRhYmxlSXRlbXMucHVzaCh7IF90YWJsZTogeyBfaWQ6IHJyLl9pZCwgX2NvZGU6IHRhYmxlQ29kZSB9IH0gKVxuXG5cdFx0XHRcdHZhbHVlc1t0YWJsZUNvZGVdID0gdGFibGVWYWx1ZXNcblx0XHRcdFx0cmVsYXRlZFRhYmxlc0luZm9bcmVsYXRlZE9iamVjdE5hbWVdID0gcmVsYXRlZFRhYmxlSXRlbXNcblxuXHRcdCMg5aaC5p6c6YWN572u5LqG6ISa5pys5YiZ5omn6KGM6ISa5pysXG5cdFx0aWYgb3cuZmllbGRfbWFwX3NjcmlwdFxuXHRcdFx0Xy5leHRlbmQodmFsdWVzLCB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmV2YWxGaWVsZE1hcFNjcmlwdChvdy5maWVsZF9tYXBfc2NyaXB0LCBvYmplY3ROYW1lLCBzcGFjZUlkLCByZWNvcmRJZCkpXG5cblx0IyDov4fmu6Tmjol2YWx1ZXPkuK3nmoTpnZ7ms5VrZXlcblx0ZmlsdGVyVmFsdWVzID0ge31cblx0Xy5lYWNoIF8ua2V5cyh2YWx1ZXMpLCAoaykgLT5cblx0XHRpZiBmaWVsZENvZGVzLmluY2x1ZGVzKGspXG5cdFx0XHRmaWx0ZXJWYWx1ZXNba10gPSB2YWx1ZXNba11cblxuXHRyZXR1cm4gZmlsdGVyVmFsdWVzXG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZXZhbEZpZWxkTWFwU2NyaXB0ID0gKGZpZWxkX21hcF9zY3JpcHQsIG9iamVjdE5hbWUsIHNwYWNlSWQsIG9iamVjdElkKSAtPlxuXHQjIHJlY29yZCA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihvYmplY3ROYW1lLCBzcGFjZUlkKS5maW5kT25lKG9iamVjdElkKVxuXHRyZWNvcmQgPSBvYmplY3RGaW5kT25lKG9iamVjdE5hbWUsIHsgZmlsdGVyczogW1snX2lkJywgJz0nLCBvYmplY3RJZF1dIH0pXG5cdHNjcmlwdCA9IFwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocmVjb3JkKSB7IFwiICsgZmllbGRfbWFwX3NjcmlwdCArIFwiIH1cIlxuXHRmdW5jID0gX2V2YWwoc2NyaXB0LCBcImZpZWxkX21hcF9zY3JpcHRcIilcblx0dmFsdWVzID0gZnVuYyhyZWNvcmQpXG5cdGlmIF8uaXNPYmplY3QgdmFsdWVzXG5cdFx0cmV0dXJuIHZhbHVlc1xuXHRlbHNlXG5cdFx0Y29uc29sZS5lcnJvciBcImV2YWxGaWVsZE1hcFNjcmlwdDog6ISa5pys6L+U5Zue5YC857G75Z6L5LiN5piv5a+56LGhXCJcblx0cmV0dXJuIHt9XG5cblxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlQXR0YWNoID0gKHJlY29yZElkcywgc3BhY2VJZCwgaW5zSWQsIGFwcHJvdmVJZCkgLT5cblxuXHRDcmVhdG9yLkNvbGxlY3Rpb25zWydjbXNfZmlsZXMnXS5maW5kKHtcblx0XHRzcGFjZTogc3BhY2VJZCxcblx0XHRwYXJlbnQ6IHJlY29yZElkc1xuXHR9KS5mb3JFYWNoIChjZikgLT5cblx0XHRfLmVhY2ggY2YudmVyc2lvbnMsICh2ZXJzaW9uSWQsIGlkeCkgLT5cblx0XHRcdGYgPSBDcmVhdG9yLkNvbGxlY3Rpb25zWydjZnMuZmlsZXMuZmlsZXJlY29yZCddLmZpbmRPbmUodmVyc2lvbklkKVxuXHRcdFx0bmV3RmlsZSA9IG5ldyBGUy5GaWxlKClcblxuXHRcdFx0bmV3RmlsZS5hdHRhY2hEYXRhIGYuY3JlYXRlUmVhZFN0cmVhbSgnZmlsZXMnKSwge1xuXHRcdFx0XHRcdHR5cGU6IGYub3JpZ2luYWwudHlwZVxuXHRcdFx0fSwgKGVycikgLT5cblx0XHRcdFx0aWYgKGVycilcblx0XHRcdFx0XHR0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKGVyci5lcnJvciwgZXJyLnJlYXNvbilcblxuXHRcdFx0XHRuZXdGaWxlLm5hbWUoZi5uYW1lKCkpXG5cdFx0XHRcdG5ld0ZpbGUuc2l6ZShmLnNpemUoKSlcblx0XHRcdFx0bWV0YWRhdGEgPSB7XG5cdFx0XHRcdFx0b3duZXI6IGYubWV0YWRhdGEub3duZXIsXG5cdFx0XHRcdFx0b3duZXJfbmFtZTogZi5tZXRhZGF0YS5vd25lcl9uYW1lLFxuXHRcdFx0XHRcdHNwYWNlOiBzcGFjZUlkLFxuXHRcdFx0XHRcdGluc3RhbmNlOiBpbnNJZCxcblx0XHRcdFx0XHRhcHByb3ZlOiBhcHByb3ZlSWRcblx0XHRcdFx0XHRwYXJlbnQ6IGNmLl9pZFxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgaWR4IGlzIDBcblx0XHRcdFx0XHRtZXRhZGF0YS5jdXJyZW50ID0gdHJ1ZVxuXG5cdFx0XHRcdG5ld0ZpbGUubWV0YWRhdGEgPSBtZXRhZGF0YVxuXHRcdFx0XHRjZnMuaW5zdGFuY2VzLmluc2VydChuZXdGaWxlKVxuXG5cdHJldHVyblxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlUmVjb3JkSW5zdGFuY2VJbmZvID0gKHJlY29yZElkcywgaW5zSWQsIHNwYWNlSWQpIC0+XG5cdCMgQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlY29yZElkcy5vLCBzcGFjZUlkKS51cGRhdGUocmVjb3JkSWRzLmlkc1swXSwge1xuXHQjIFx0JHB1c2g6IHtcblx0IyBcdFx0aW5zdGFuY2VzOiB7XG5cdCMgXHRcdFx0JGVhY2g6IFt7XG5cdCMgXHRcdFx0XHRfaWQ6IGluc0lkLFxuXHQjIFx0XHRcdFx0c3RhdGU6ICdkcmFmdCdcblx0IyBcdFx0XHR9XSxcblx0IyBcdFx0XHQkcG9zaXRpb246IDBcblx0IyBcdFx0fVxuXHQjIFx0fSxcblx0IyBcdCRzZXQ6IHtcblx0IyBcdFx0bG9ja2VkOiB0cnVlXG5cdCMgXHRcdGluc3RhbmNlX3N0YXRlOiAnZHJhZnQnXG5cdCMgXHR9XG5cdCMgfSlcblx0b2JqZWN0VXBkYXRlKHJlY29yZElkcy5vLCByZWNvcmRJZHMuaWRzWzBdLCB7XG5cdFx0aW5zdGFuY2VzOiBbe1xuXHRcdFx0X2lkOiBpbnNJZCxcblx0XHRcdHN0YXRlOiAnZHJhZnQnXG5cdFx0fV0sXG5cdFx0bG9ja2VkOiB0cnVlLFxuXHRcdGluc3RhbmNlX3N0YXRlOiAnZHJhZnQnXG5cdH0pXG5cblx0cmV0dXJuXG5cblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZVJlbGF0ZWRSZWNvcmRJbnN0YW5jZUluZm8gPSAocmVsYXRlZFRhYmxlc0luZm8sIGluc0lkLCBzcGFjZUlkKSAtPlxuXHRfLmVhY2ggcmVsYXRlZFRhYmxlc0luZm8sICh0YWJsZUl0ZW1zLCByZWxhdGVkT2JqZWN0TmFtZSkgLT5cblx0XHRyZWxhdGVkQ29sbGVjdGlvbiA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbihyZWxhdGVkT2JqZWN0TmFtZSwgc3BhY2VJZClcblx0XHRfLmVhY2ggdGFibGVJdGVtcywgKGl0ZW0pIC0+XG5cdFx0XHRyZWxhdGVkQ29sbGVjdGlvbi5kaXJlY3QudXBkYXRlKGl0ZW0uX3RhYmxlLl9pZCwge1xuXHRcdFx0XHQkc2V0OiB7XG5cdFx0XHRcdFx0aW5zdGFuY2VzOiBbe1xuXHRcdFx0XHRcdFx0X2lkOiBpbnNJZCxcblx0XHRcdFx0XHRcdHN0YXRlOiAnZHJhZnQnXG5cdFx0XHRcdFx0fV0sXG5cdFx0XHRcdFx0X3RhYmxlOiBpdGVtLl90YWJsZVxuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXG5cdHJldHVyblxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmNoZWNrSXNJbkFwcHJvdmFsID0gKHJlY29yZElkcywgc3BhY2VJZCkgLT5cblx0IyByZWNvcmQgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24ocmVjb3JkSWRzLm8sIHNwYWNlSWQpLmZpbmRPbmUoe1xuXHQjIFx0X2lkOiByZWNvcmRJZHMuaWRzWzBdLCBpbnN0YW5jZXM6IHsgJGV4aXN0czogdHJ1ZSB9XG5cdCMgfSwgeyBmaWVsZHM6IHsgaW5zdGFuY2VzOiAxIH0gfSlcblx0cmVjb3JkID0gb2JqZWN0RmluZE9uZShyZWNvcmRJZHMubywgeyBmaWx0ZXJzOiBbWydfaWQnLCAnPScsIHJlY29yZElkcy5pZHNbMF1dXSwgZmllbGRzOiBbJ2luc3RhbmNlcyddIH0pXG5cblx0aWYgcmVjb3JkIGFuZCByZWNvcmQuaW5zdGFuY2VzIGFuZCByZWNvcmQuaW5zdGFuY2VzWzBdLnN0YXRlIGlzbnQgJ2NvbXBsZXRlZCcgYW5kIENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLmZpbmQocmVjb3JkLmluc3RhbmNlc1swXS5faWQpLmNvdW50KCkgPiAwXG5cdFx0dGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCLmraTorrDlvZXlt7Llj5HotbfmtYHnqIvmraPlnKjlrqHmibnkuK3vvIzlvoXlrqHmibnnu5PmnZ/mlrnlj6/lj5HotbfkuIvkuIDmrKHlrqHmibnvvIFcIilcblxuXHRyZXR1cm5cblxuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmZvcm1hdERhdGUgPSAoZGF0ZSkgLT5cblx0cmV0dXJuIG1vbWVudChkYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpIiwidmFyIF9ldmFsLCBjaGVja1JlcXVpcmVkRGV0YWlscywgZ2V0RmllbGRPZGF0YVZhbHVlLCBnZXRGaWxlRmllbGRWYWx1ZSwgZ2V0Rm9ybUZpZWxkLCBnZXRGb3JtVGFibGVGaWVsZCwgZ2V0Rm9ybVRhYmxlRmllbGRDb2RlLCBnZXRGb3JtVGFibGVTdWJGaWVsZCwgZ2V0SW5zdGFuY2VGaWVsZFZhbHVlLCBnZXRPYmplY3RDb25maWcsIGdldE9iamVjdE5hbWVGaWVsZEtleSwgZ2V0UmVsYXRlZE9iamVjdEZpZWxkQ29kZSwgZ2V0UmVsYXRlZHMsIGdldFNlbGVjdE9yZ1ZhbHVlLCBnZXRTZWxlY3RPcmdWYWx1ZXMsIGdldFNlbGVjdFVzZXJWYWx1ZSwgZ2V0U2VsZWN0VXNlclZhbHVlcywgb2JqZWN0RmluZCwgb2JqZWN0RmluZE9uZSwgb2JqZWN0VXBkYXRlLCBvYmplY3RxbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuX2V2YWwgPSByZXF1aXJlKCdldmFsJyk7XG5cbm9iamVjdHFsID0gcmVxdWlyZSgnQHN0ZWVkb3Mvb2JqZWN0cWwnKTtcblxuZ2V0T2JqZWN0Q29uZmlnID0gZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSkge1xuICByZXR1cm4gb2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLnRvQ29uZmlnKCk7XG59O1xuXG5nZXRPYmplY3ROYW1lRmllbGRLZXkgPSBmdW5jdGlvbihvYmplY3RBcGlOYW1lKSB7XG4gIHJldHVybiBvYmplY3RxbC5nZXRPYmplY3Qob2JqZWN0QXBpTmFtZSkuTkFNRV9GSUVMRF9LRVk7XG59O1xuXG5nZXRSZWxhdGVkcyA9IGZ1bmN0aW9uKG9iamVjdEFwaU5hbWUpIHtcbiAgcmV0dXJuIE1ldGVvci53cmFwQXN5bmMoZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSwgY2IpIHtcbiAgICByZXR1cm4gb2JqZWN0cWwuZ2V0T2JqZWN0KG9iamVjdEFwaU5hbWUpLmdldFJlbGF0ZWRzKCkudGhlbihmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHJldHVybiBjYihyZWplY3QsIHJlc29sdmUpO1xuICAgIH0pO1xuICB9KShvYmplY3RBcGlOYW1lKTtcbn07XG5cbm9iamVjdEZpbmRPbmUgPSBmdW5jdGlvbihvYmplY3RBcGlOYW1lLCBxdWVyeSkge1xuICByZXR1cm4gTWV0ZW9yLndyYXBBc3luYyhmdW5jdGlvbihvYmplY3RBcGlOYW1lLCBxdWVyeSwgY2IpIHtcbiAgICBxdWVyeS50b3AgPSAxO1xuICAgIHJldHVybiBvYmplY3RxbC5nZXRPYmplY3Qob2JqZWN0QXBpTmFtZSkuZmluZChxdWVyeSkudGhlbihmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIGlmIChyZXNvbHZlICYmIHJlc29sdmUubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gY2IocmVqZWN0LCByZXNvbHZlWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBjYihyZWplY3QsIG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KShvYmplY3RBcGlOYW1lLCBxdWVyeSk7XG59O1xuXG5vYmplY3RGaW5kID0gZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSwgcXVlcnkpIHtcbiAgcmV0dXJuIE1ldGVvci53cmFwQXN5bmMoZnVuY3Rpb24ob2JqZWN0QXBpTmFtZSwgcXVlcnksIGNiKSB7XG4gICAgcmV0dXJuIG9iamVjdHFsLmdldE9iamVjdChvYmplY3RBcGlOYW1lKS5maW5kKHF1ZXJ5KS50aGVuKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgcmV0dXJuIGNiKHJlamVjdCwgcmVzb2x2ZSk7XG4gICAgfSk7XG4gIH0pKG9iamVjdEFwaU5hbWUsIHF1ZXJ5KTtcbn07XG5cbm9iamVjdFVwZGF0ZSA9IGZ1bmN0aW9uKG9iamVjdEFwaU5hbWUsIGlkLCBkYXRhKSB7XG4gIHJldHVybiBNZXRlb3Iud3JhcEFzeW5jKGZ1bmN0aW9uKG9iamVjdEFwaU5hbWUsIGlkLCBkYXRhLCBjYikge1xuICAgIHJldHVybiBvYmplY3RxbC5nZXRPYmplY3Qob2JqZWN0QXBpTmFtZSkudXBkYXRlKGlkLCBkYXRhKS50aGVuKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgcmV0dXJuIGNiKHJlamVjdCwgcmVzb2x2ZSk7XG4gICAgfSk7XG4gIH0pKG9iamVjdEFwaU5hbWUsIGlkLCBkYXRhKTtcbn07XG5cbmdldFJlbGF0ZWRPYmplY3RGaWVsZENvZGUgPSBmdW5jdGlvbihyZWxhdGVkT2JqZWN0c0tleXMsIGtleSkge1xuICByZXR1cm4gXy5maW5kKHJlbGF0ZWRPYmplY3RzS2V5cywgZnVuY3Rpb24ocmVsYXRlZE9iamVjdHNLZXkpIHtcbiAgICByZXR1cm4ga2V5LnN0YXJ0c1dpdGgocmVsYXRlZE9iamVjdHNLZXkgKyAnLicpO1xuICB9KTtcbn07XG5cbmdldEZvcm1UYWJsZUZpZWxkQ29kZSA9IGZ1bmN0aW9uKGZvcm1UYWJsZUZpZWxkc0NvZGUsIGtleSkge1xuICByZXR1cm4gXy5maW5kKGZvcm1UYWJsZUZpZWxkc0NvZGUsIGZ1bmN0aW9uKGZvcm1UYWJsZUZpZWxkQ29kZSkge1xuICAgIHJldHVybiBrZXkuc3RhcnRzV2l0aChmb3JtVGFibGVGaWVsZENvZGUgKyAnLicpO1xuICB9KTtcbn07XG5cbmdldEZvcm1UYWJsZUZpZWxkID0gZnVuY3Rpb24oZm9ybVRhYmxlRmllbGRzLCBrZXkpIHtcbiAgcmV0dXJuIF8uZmluZChmb3JtVGFibGVGaWVsZHMsIGZ1bmN0aW9uKGYpIHtcbiAgICByZXR1cm4gZi5jb2RlID09PSBrZXk7XG4gIH0pO1xufTtcblxuZ2V0Rm9ybUZpZWxkID0gZnVuY3Rpb24oZm9ybUZpZWxkcywga2V5KSB7XG4gIHZhciBmZjtcbiAgZmYgPSBudWxsO1xuICBfLmZvckVhY2goZm9ybUZpZWxkcywgZnVuY3Rpb24oZikge1xuICAgIGlmIChmZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZi50eXBlID09PSAnc2VjdGlvbicpIHtcbiAgICAgIHJldHVybiBmZiA9IF8uZmluZChmLmZpZWxkcywgZnVuY3Rpb24oc2YpIHtcbiAgICAgICAgcmV0dXJuIHNmLmNvZGUgPT09IGtleTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZi5jb2RlID09PSBrZXkpIHtcbiAgICAgIHJldHVybiBmZiA9IGY7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGZmO1xufTtcblxuZ2V0Rm9ybVRhYmxlU3ViRmllbGQgPSBmdW5jdGlvbih0YWJsZUZpZWxkLCBzdWJGaWVsZENvZGUpIHtcbiAgcmV0dXJuIF8uZmluZCh0YWJsZUZpZWxkLmZpZWxkcywgZnVuY3Rpb24oZikge1xuICAgIHJldHVybiBmLmNvZGUgPT09IHN1YkZpZWxkQ29kZTtcbiAgfSk7XG59O1xuXG5nZXRGaWVsZE9kYXRhVmFsdWUgPSBmdW5jdGlvbihvYmpOYW1lLCBpZCwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpIHtcbiAgdmFyIF9yZWNvcmQsIF9yZWNvcmRzLCBuYW1lS2V5LCBvYmo7XG4gIG9iaiA9IG9iamVjdHFsLmdldE9iamVjdChvYmpOYW1lKTtcbiAgbmFtZUtleSA9IGdldE9iamVjdE5hbWVGaWVsZEtleShvYmpOYW1lKTtcbiAgaWYgKCFvYmopIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKF8uaXNTdHJpbmcoaWQpKSB7XG4gICAgX3JlY29yZCA9IG9iamVjdEZpbmRPbmUob2JqTmFtZSwge1xuICAgICAgZmlsdGVyczogW1tyZWZlcmVuY2VUb0ZpZWxkTmFtZSwgJz0nLCBpZF1dXG4gICAgfSk7XG4gICAgaWYgKF9yZWNvcmQpIHtcbiAgICAgIF9yZWNvcmRbJ0BsYWJlbCddID0gX3JlY29yZFtuYW1lS2V5XTtcbiAgICAgIHJldHVybiBfcmVjb3JkO1xuICAgIH1cbiAgfSBlbHNlIGlmIChfLmlzQXJyYXkoaWQpKSB7XG4gICAgX3JlY29yZHMgPSBbXTtcbiAgICBvYmplY3RGaW5kKG9iak5hbWUsIHtcbiAgICAgIGZpbHRlcnM6IFtbcmVmZXJlbmNlVG9GaWVsZE5hbWUsICdpbicsIGlkXV1cbiAgICB9KS5mb3JFYWNoKGZ1bmN0aW9uKF9yZWNvcmQpIHtcbiAgICAgIF9yZWNvcmRbJ0BsYWJlbCddID0gX3JlY29yZFtuYW1lS2V5XTtcbiAgICAgIHJldHVybiBfcmVjb3Jkcy5wdXNoKF9yZWNvcmQpO1xuICAgIH0pO1xuICAgIGlmICghXy5pc0VtcHR5KF9yZWNvcmRzKSkge1xuICAgICAgcmV0dXJuIF9yZWNvcmRzO1xuICAgIH1cbiAgfVxufTtcblxuZ2V0U2VsZWN0VXNlclZhbHVlID0gZnVuY3Rpb24odXNlcklkLCBzcGFjZUlkKSB7XG4gIHZhciBzdTtcbiAgc3UgPSBDcmVhdG9yLmdldENvbGxlY3Rpb24oJ3NwYWNlX3VzZXJzJykuZmluZE9uZSh7XG4gICAgc3BhY2U6IHNwYWNlSWQsXG4gICAgdXNlcjogdXNlcklkXG4gIH0pO1xuICBzdS5pZCA9IHVzZXJJZDtcbiAgcmV0dXJuIHN1O1xufTtcblxuZ2V0U2VsZWN0VXNlclZhbHVlcyA9IGZ1bmN0aW9uKHVzZXJJZHMsIHNwYWNlSWQpIHtcbiAgdmFyIHN1cztcbiAgc3VzID0gW107XG4gIGlmIChfLmlzQXJyYXkodXNlcklkcykpIHtcbiAgICBfLmVhY2godXNlcklkcywgZnVuY3Rpb24odXNlcklkKSB7XG4gICAgICB2YXIgc3U7XG4gICAgICBzdSA9IGdldFNlbGVjdFVzZXJWYWx1ZSh1c2VySWQsIHNwYWNlSWQpO1xuICAgICAgaWYgKHN1KSB7XG4gICAgICAgIHJldHVybiBzdXMucHVzaChzdSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHN1cztcbn07XG5cbmdldFNlbGVjdE9yZ1ZhbHVlID0gZnVuY3Rpb24ob3JnSWQsIHNwYWNlSWQpIHtcbiAgdmFyIG9yZztcbiAgb3JnID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKCdvcmdhbml6YXRpb25zJykuZmluZE9uZShvcmdJZCwge1xuICAgIGZpZWxkczoge1xuICAgICAgX2lkOiAxLFxuICAgICAgbmFtZTogMSxcbiAgICAgIGZ1bGxuYW1lOiAxXG4gICAgfVxuICB9KTtcbiAgb3JnLmlkID0gb3JnSWQ7XG4gIHJldHVybiBvcmc7XG59O1xuXG5nZXRTZWxlY3RPcmdWYWx1ZXMgPSBmdW5jdGlvbihvcmdJZHMsIHNwYWNlSWQpIHtcbiAgdmFyIG9yZ3M7XG4gIG9yZ3MgPSBbXTtcbiAgaWYgKF8uaXNBcnJheShvcmdJZHMpKSB7XG4gICAgXy5lYWNoKG9yZ0lkcywgZnVuY3Rpb24ob3JnSWQpIHtcbiAgICAgIHZhciBvcmc7XG4gICAgICBvcmcgPSBnZXRTZWxlY3RPcmdWYWx1ZShvcmdJZCwgc3BhY2VJZCk7XG4gICAgICBpZiAob3JnKSB7XG4gICAgICAgIHJldHVybiBvcmdzLnB1c2gob3JnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gb3Jncztcbn07XG5cbmdldEZpbGVGaWVsZFZhbHVlID0gZnVuY3Rpb24ocmVjb3JkRmllbGRJZCwgZlR5cGUpIHtcbiAgdmFyIGNvbGxlY3Rpb24sIGZpbGVzLCBxdWVyeSwgdmFsdWU7XG4gIGlmIChfLmlzRW1wdHkocmVjb3JkRmllbGRJZCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGZUeXBlID09PSAnaW1hZ2UnKSB7XG4gICAgY29sbGVjdGlvbiA9ICdpbWFnZXMnO1xuICB9IGVsc2UgaWYgKGZUeXBlID09PSAnZmlsZScpIHtcbiAgICBjb2xsZWN0aW9uID0gJ2ZpbGVzJztcbiAgfVxuICBpZiAoXy5pc1N0cmluZyhyZWNvcmRGaWVsZElkKSkge1xuICAgIHF1ZXJ5ID0ge1xuICAgICAgX2lkOiB7XG4gICAgICAgICRpbjogW3JlY29yZEZpZWxkSWRdXG4gICAgICB9XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBxdWVyeSA9IHtcbiAgICAgIF9pZDoge1xuICAgICAgICAkaW46IHJlY29yZEZpZWxkSWRcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIGZpbGVzID0gQ3JlYXRvci5Db2xsZWN0aW9uc1tcImNmcy5cIiArIGNvbGxlY3Rpb24gKyBcIi5maWxlcmVjb3JkXCJdLmZpbmQocXVlcnkpO1xuICB2YWx1ZSA9IFtdO1xuICBmaWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHtcbiAgICB2YXIgbmV3RmlsZTtcbiAgICBuZXdGaWxlID0gbmV3IEZTLkZpbGUoKTtcbiAgICByZXR1cm4gbmV3RmlsZS5hdHRhY2hEYXRhKGYuY3JlYXRlUmVhZFN0cmVhbSgnZmlsZXMnKSwge1xuICAgICAgdHlwZTogZi5vcmlnaW5hbC50eXBlXG4gICAgfSwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICB2YXIgbWV0YWRhdGE7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoZXJyLmVycm9yLCBlcnIucmVhc29uKTtcbiAgICAgIH1cbiAgICAgIG5ld0ZpbGUubmFtZShmLm5hbWUoKSk7XG4gICAgICBuZXdGaWxlLnNpemUoZi5zaXplKCkpO1xuICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgIG93bmVyOiBmLm1ldGFkYXRhLm93bmVyXG4gICAgICB9O1xuICAgICAgbmV3RmlsZS5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICAgICAgbmV3RmlsZS5faWQgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLmluc3RhbmNlcy5fbWFrZU5ld0lEKCk7XG4gICAgICBjZnNbY29sbGVjdGlvbl0uaW5zZXJ0KG5ld0ZpbGUpO1xuICAgICAgcmV0dXJuIHZhbHVlLnB1c2gobmV3RmlsZS5faWQpO1xuICAgIH0pO1xuICB9KTtcbiAgaWYgKHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICBpZiAoXy5pc1N0cmluZyhyZWNvcmRGaWVsZElkKSkge1xuICAgICAgcmV0dXJuIHZhbHVlWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG59O1xuXG5nZXRJbnN0YW5jZUZpZWxkVmFsdWUgPSBmdW5jdGlvbihvYmpGaWVsZCwgZm9ybUZpZWxkLCByZWNvcmQsIG9iamVjdF9maWVsZCwgc3BhY2VJZCkge1xuICB2YXIgb2RhdGFGaWVsZFZhbHVlLCByZWNvcmRGaWVsZFZhbHVlLCByZWZlcmVuY2VUb0ZpZWxkTmFtZSwgcmVmZXJlbmNlVG9PYmplY3ROYW1lLCBzZWxlY3RGaWVsZFZhbHVlLCB2YWx1ZTtcbiAgcmVjb3JkRmllbGRWYWx1ZSA9IHJlY29yZFtvYmpGaWVsZC5uYW1lXTtcbiAgdmFsdWU7XG4gIGlmIChmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgZm9ybUZpZWxkLnR5cGUgPT09ICdvZGF0YScgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9iakZpZWxkLnR5cGUpICYmIF8uaXNTdHJpbmcob2JqRmllbGQucmVmZXJlbmNlX3RvKSkge1xuICAgIHJlZmVyZW5jZVRvRmllbGROYW1lID0gb2JqRmllbGQucmVmZXJlbmNlX3RvX2ZpZWxkIHx8ICdfaWQnO1xuICAgIHJlZmVyZW5jZVRvT2JqZWN0TmFtZSA9IG9iakZpZWxkLnJlZmVyZW5jZV90bztcbiAgICBvZGF0YUZpZWxkVmFsdWU7XG4gICAgaWYgKG9iakZpZWxkLm11bHRpcGxlICYmIGZvcm1GaWVsZC5pc19tdWx0aXNlbGVjdCkge1xuICAgICAgb2RhdGFGaWVsZFZhbHVlID0gZ2V0RmllbGRPZGF0YVZhbHVlKHJlZmVyZW5jZVRvT2JqZWN0TmFtZSwgcmVjb3JkRmllbGRWYWx1ZSwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpO1xuICAgIH0gZWxzZSBpZiAoIW9iakZpZWxkLm11bHRpcGxlICYmICFmb3JtRmllbGQuaXNfbXVsdGlzZWxlY3QpIHtcbiAgICAgIG9kYXRhRmllbGRWYWx1ZSA9IGdldEZpZWxkT2RhdGFWYWx1ZShyZWZlcmVuY2VUb09iamVjdE5hbWUsIHJlY29yZEZpZWxkVmFsdWUsIHJlZmVyZW5jZVRvRmllbGROYW1lKTtcbiAgICB9XG4gICAgdmFsdWUgPSBvZGF0YUZpZWxkVmFsdWU7XG4gIH0gZWxzZSBpZiAoZm9ybUZpZWxkICYmIG9iakZpZWxkICYmIFsndXNlcicsICdncm91cCddLmluY2x1ZGVzKGZvcm1GaWVsZC50eXBlKSAmJiBbJ2xvb2t1cCcsICdtYXN0ZXJfZGV0YWlsJ10uaW5jbHVkZXMob2JqRmllbGQudHlwZSkgJiYgKFsndXNlcnMnLCAnb3JnYW5pemF0aW9ucyddLmluY2x1ZGVzKG9iakZpZWxkLnJlZmVyZW5jZV90bykgfHwgKCdzcGFjZV91c2VycycgPT09IG9iakZpZWxkLnJlZmVyZW5jZV90byAmJiAndXNlcicgPT09IG9iakZpZWxkLnJlZmVyZW5jZV90b19maWVsZCkpKSB7XG4gICAgaWYgKCFfLmlzRW1wdHkocmVjb3JkRmllbGRWYWx1ZSkpIHtcbiAgICAgIHNlbGVjdEZpZWxkVmFsdWU7XG4gICAgICBpZiAoZm9ybUZpZWxkLnR5cGUgPT09ICd1c2VyJykge1xuICAgICAgICBpZiAob2JqRmllbGQubXVsdGlwbGUgJiYgZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0KSB7XG4gICAgICAgICAgc2VsZWN0RmllbGRWYWx1ZSA9IGdldFNlbGVjdFVzZXJWYWx1ZXMocmVjb3JkRmllbGRWYWx1ZSwgc3BhY2VJZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9iakZpZWxkLm11bHRpcGxlICYmICFmb3JtRmllbGQuaXNfbXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICBzZWxlY3RGaWVsZFZhbHVlID0gZ2V0U2VsZWN0VXNlclZhbHVlKHJlY29yZEZpZWxkVmFsdWUsIHNwYWNlSWQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGZvcm1GaWVsZC50eXBlID09PSAnZ3JvdXAnKSB7XG4gICAgICAgIGlmIChvYmpGaWVsZC5tdWx0aXBsZSAmJiBmb3JtRmllbGQuaXNfbXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICBzZWxlY3RGaWVsZFZhbHVlID0gZ2V0U2VsZWN0T3JnVmFsdWVzKHJlY29yZEZpZWxkVmFsdWUsIHNwYWNlSWQpO1xuICAgICAgICB9IGVsc2UgaWYgKCFvYmpGaWVsZC5tdWx0aXBsZSAmJiAhZm9ybUZpZWxkLmlzX211bHRpc2VsZWN0KSB7XG4gICAgICAgICAgc2VsZWN0RmllbGRWYWx1ZSA9IGdldFNlbGVjdE9yZ1ZhbHVlKHJlY29yZEZpZWxkVmFsdWUsIHNwYWNlSWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VsZWN0RmllbGRWYWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IHNlbGVjdEZpZWxkVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGZvcm1GaWVsZCAmJiBvYmpGaWVsZCAmJiBmb3JtRmllbGQudHlwZSA9PT0gJ2RhdGUnICYmIHJlY29yZEZpZWxkVmFsdWUpIHtcbiAgICB2YWx1ZSA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZm9ybWF0RGF0ZShyZWNvcmRGaWVsZFZhbHVlKTtcbiAgfSBlbHNlIGlmIChmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgcmVjb3JkRmllbGRWYWx1ZSAmJiAoZm9ybUZpZWxkLnR5cGUgPT09ICdpbWFnZScgfHwgZm9ybUZpZWxkLnR5cGUgPT09ICdmaWxlJykpIHtcbiAgICB2YWx1ZSA9IGdldEZpbGVGaWVsZFZhbHVlKHJlY29yZEZpZWxkVmFsdWUsIGZvcm1GaWVsZC50eXBlKTtcbiAgfSBlbHNlIGlmIChmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgcmVjb3JkRmllbGRWYWx1ZSAmJiBmb3JtRmllbGQudHlwZSA9PT0gJ2xvb2t1cCcgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9iakZpZWxkLnR5cGUpICYmIF8uaXNTdHJpbmcob2JqRmllbGQucmVmZXJlbmNlX3RvKSkge1xuICAgIHZhbHVlID0gcmVjb3JkRmllbGRWYWx1ZTtcbiAgfSBlbHNlIGlmIChmb3JtRmllbGQgJiYgb2JqRmllbGQgJiYgcmVjb3JkRmllbGRWYWx1ZSAmJiAoZm9ybUZpZWxkLnR5cGUgPT09ICdtdWx0aVNlbGVjdCcpKSB7XG4gICAgdmFsdWUgPSByZWNvcmRGaWVsZFZhbHVlLmpvaW4oJywnKTtcbiAgfSBlbHNlIGlmIChyZWNvcmQuaGFzT3duUHJvcGVydHkob2JqZWN0X2ZpZWxkKSkge1xuICAgIHZhbHVlID0gcmVjb3JkRmllbGRWYWx1ZTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59O1xuXG5jaGVja1JlcXVpcmVkRGV0YWlscyA9IGZ1bmN0aW9uKHJlcXVpcmVkRGV0YWlscywgbWFzdGVyUmVjb3JkKSB7XG4gIGlmICghXy5pc0VtcHR5KHJlcXVpcmVkRGV0YWlscykpIHtcbiAgICByZXF1aXJlZERldGFpbHMuZm9yRWFjaChmdW5jdGlvbihyZCkge1xuICAgICAgdmFyIG1hc3RlckZpZWxkLCBtYXN0ZXJGaWVsZFZhbHVlLCByZWZJZCwgc3ViT2JqQ29uZmlnLCBzdWJUYWJsZU1hc3RlckZpZWxkLCBzdWJUYWJsZU5hbWUsIHN1YlRhYmxlUmVjb3JkO1xuICAgICAgc3ViVGFibGVOYW1lID0gcmQuc3BsaXQoJy4nKVswXTtcbiAgICAgIHN1YlRhYmxlTWFzdGVyRmllbGQgPSByZC5zcGxpdCgnLicpWzFdO1xuICAgICAgc3ViT2JqQ29uZmlnID0gZ2V0T2JqZWN0Q29uZmlnKHN1YlRhYmxlTmFtZSk7XG4gICAgICBtYXN0ZXJGaWVsZCA9IHN1Yk9iakNvbmZpZy5maWVsZHNbc3ViVGFibGVNYXN0ZXJGaWVsZF07XG4gICAgICByZWZJZCA9IG1hc3RlckZpZWxkLnJlZmVyZW5jZV90b19maWVsZCB8fCAnX2lkJztcbiAgICAgIG1hc3RlckZpZWxkVmFsdWUgPSBtYXN0ZXJSZWNvcmRbcmVmSWRdO1xuICAgICAgc3ViVGFibGVSZWNvcmQgPSBvYmplY3RGaW5kT25lKHN1YlRhYmxlTmFtZSwge1xuICAgICAgICBmaWx0ZXJzOiBbW3N1YlRhYmxlTWFzdGVyRmllbGQsICc9JywgbWFzdGVyRmllbGRWYWx1ZV1dLFxuICAgICAgICBmaWVsZHM6IFtzdWJUYWJsZU1hc3RlckZpZWxkXVxuICAgICAgfSk7XG4gICAgICBpZiAoIXN1YlRhYmxlUmVjb3JkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIuivt+WFiOaWsOWinlwiICsgc3ViT2JqQ29uZmlnLmxhYmVsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbCA9IHt9O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmNoZWNrX2F1dGhvcml6YXRpb24gPSBmdW5jdGlvbihyZXEpIHtcbiAgdmFyIGF1dGhUb2tlbiwgaGFzaGVkVG9rZW4sIHF1ZXJ5LCB1c2VyLCB1c2VySWQ7XG4gIHF1ZXJ5ID0gcmVxLnF1ZXJ5O1xuICB1c2VySWQgPSBxdWVyeVtcIlgtVXNlci1JZFwiXTtcbiAgYXV0aFRva2VuID0gcXVlcnlbXCJYLUF1dGgtVG9rZW5cIl07XG4gIGlmICghdXNlcklkIHx8ICFhdXRoVG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKDQwMSwgJ1VuYXV0aG9yaXplZCcpO1xuICB9XG4gIGhhc2hlZFRva2VuID0gQWNjb3VudHMuX2hhc2hMb2dpblRva2VuKGF1dGhUb2tlbik7XG4gIHVzZXIgPSBNZXRlb3IudXNlcnMuZmluZE9uZSh7XG4gICAgX2lkOiB1c2VySWQsXG4gICAgXCJzZXJ2aWNlcy5yZXN1bWUubG9naW5Ub2tlbnMuaGFzaGVkVG9rZW5cIjogaGFzaGVkVG9rZW5cbiAgfSk7XG4gIGlmICghdXNlcikge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoNDAxLCAnVW5hdXRob3JpemVkJyk7XG4gIH1cbiAgcmV0dXJuIHVzZXI7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldFNwYWNlID0gZnVuY3Rpb24oc3BhY2VfaWQpIHtcbiAgdmFyIHNwYWNlO1xuICBzcGFjZSA9IENyZWF0b3IuQ29sbGVjdGlvbnMuc3BhY2VzLmZpbmRPbmUoc3BhY2VfaWQpO1xuICBpZiAoIXNwYWNlKSB7XG4gICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCJzcGFjZV9pZOacieivr+aIluatpHNwYWNl5bey57uP6KKr5Yig6ZmkXCIpO1xuICB9XG4gIHJldHVybiBzcGFjZTtcbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0RmxvdyA9IGZ1bmN0aW9uKGZsb3dfaWQpIHtcbiAgdmFyIGZsb3c7XG4gIGZsb3cgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLmZsb3dzLmZpbmRPbmUoZmxvd19pZCk7XG4gIGlmICghZmxvdykge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwiaWTmnInor6/miJbmraTmtYHnqIvlt7Lnu4/ooqvliKDpmaRcIik7XG4gIH1cbiAgcmV0dXJuIGZsb3c7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldFNwYWNlVXNlciA9IGZ1bmN0aW9uKHNwYWNlX2lkLCB1c2VyX2lkKSB7XG4gIHZhciBzcGFjZV91c2VyO1xuICBzcGFjZV91c2VyID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5zcGFjZV91c2Vycy5maW5kT25lKHtcbiAgICBzcGFjZTogc3BhY2VfaWQsXG4gICAgdXNlcjogdXNlcl9pZFxuICB9KTtcbiAgaWYgKCFzcGFjZV91c2VyKSB7XG4gICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCJ1c2VyX2lk5a+55bqU55qE55So5oi35LiN5bGe5LqO5b2T5YmNc3BhY2VcIik7XG4gIH1cbiAgcmV0dXJuIHNwYWNlX3VzZXI7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldFNwYWNlVXNlck9yZ0luZm8gPSBmdW5jdGlvbihzcGFjZV91c2VyKSB7XG4gIHZhciBpbmZvLCBvcmc7XG4gIGluZm8gPSBuZXcgT2JqZWN0O1xuICBpbmZvLm9yZ2FuaXphdGlvbiA9IHNwYWNlX3VzZXIub3JnYW5pemF0aW9uO1xuICBvcmcgPSBDcmVhdG9yLkNvbGxlY3Rpb25zLm9yZ2FuaXphdGlvbnMuZmluZE9uZShzcGFjZV91c2VyLm9yZ2FuaXphdGlvbiwge1xuICAgIGZpZWxkczoge1xuICAgICAgbmFtZTogMSxcbiAgICAgIGZ1bGxuYW1lOiAxXG4gICAgfVxuICB9KTtcbiAgaW5mby5vcmdhbml6YXRpb25fbmFtZSA9IG9yZy5uYW1lO1xuICBpbmZvLm9yZ2FuaXphdGlvbl9mdWxsbmFtZSA9IG9yZy5mdWxsbmFtZTtcbiAgcmV0dXJuIGluZm87XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmlzRmxvd0VuYWJsZWQgPSBmdW5jdGlvbihmbG93KSB7XG4gIGlmIChmbG93LnN0YXRlICE9PSBcImVuYWJsZWRcIikge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwi5rWB56iL5pyq5ZCv55SoLOaTjeS9nOWksei0pVwiKTtcbiAgfVxufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pc0Zsb3dTcGFjZU1hdGNoZWQgPSBmdW5jdGlvbihmbG93LCBzcGFjZV9pZCkge1xuICBpZiAoZmxvdy5zcGFjZSAhPT0gc3BhY2VfaWQpIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCBcIua1geeoi+WSjOW3peS9nOWMuklE5LiN5Yy56YWNXCIpO1xuICB9XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmdldEZvcm0gPSBmdW5jdGlvbihmb3JtX2lkKSB7XG4gIHZhciBmb3JtO1xuICBmb3JtID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5mb3Jtcy5maW5kT25lKGZvcm1faWQpO1xuICBpZiAoIWZvcm0pIHtcbiAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKCdlcnJvciEnLCAn6KGo5Y2VSUTmnInor6/miJbmraTooajljZXlt7Lnu4/ooqvliKDpmaQnKTtcbiAgfVxuICByZXR1cm4gZm9ybTtcbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Q2F0ZWdvcnkgPSBmdW5jdGlvbihjYXRlZ29yeV9pZCkge1xuICByZXR1cm4gQ3JlYXRvci5Db2xsZWN0aW9ucy5jYXRlZ29yaWVzLmZpbmRPbmUoY2F0ZWdvcnlfaWQpO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jaGVja1N5bmNEaXJlY3Rpb24gPSBmdW5jdGlvbihvYmplY3RfbmFtZSwgZmxvd19pZCkge1xuICB2YXIgb3csIHN5bmNEaXJlY3Rpb247XG4gIG93ID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5vYmplY3Rfd29ya2Zsb3dzLmZpbmRPbmUoe1xuICAgIG9iamVjdF9uYW1lOiBvYmplY3RfbmFtZSxcbiAgICBmbG93X2lkOiBmbG93X2lkXG4gIH0pO1xuICBpZiAoIW93KSB7XG4gICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgJ+acquaJvuWIsOWvueixoea1geeoi+aYoOWwhOiusOW9leOAgicpO1xuICB9XG4gIHN5bmNEaXJlY3Rpb24gPSBvdy5zeW5jX2RpcmVjdGlvbiB8fCAnYm90aCc7XG4gIGlmICghWydib3RoJywgJ29ial90b19pbnMnXS5pbmNsdWRlcyhzeW5jRGlyZWN0aW9uKSkge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsICfkuI3mlK/mjIHnmoTlkIzmraXmlrnlkJHjgIInKTtcbiAgfVxufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jcmVhdGVfaW5zdGFuY2UgPSBmdW5jdGlvbihpbnN0YW5jZV9mcm9tX2NsaWVudCwgdXNlcl9pbmZvKSB7XG4gIHZhciBhcHByX29iaiwgYXBwcm92ZV9mcm9tX2NsaWVudCwgY2F0ZWdvcnksIGZsb3csIGZsb3dfaWQsIGZvcm0sIGluc19vYmosIG5ld19pbnNfaWQsIG5vdywgcGVybWlzc2lvbnMsIHJlbGF0ZWRUYWJsZXNJbmZvLCBzcGFjZSwgc3BhY2VfaWQsIHNwYWNlX3VzZXIsIHNwYWNlX3VzZXJfb3JnX2luZm8sIHN0YXJ0X3N0ZXAsIHRyYWNlX2Zyb21fY2xpZW50LCB0cmFjZV9vYmosIHVzZXJfaWQ7XG4gIGNoZWNrKGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdLCBTdHJpbmcpO1xuICBjaGVjayhpbnN0YW5jZV9mcm9tX2NsaWVudFtcInNwYWNlXCJdLCBTdHJpbmcpO1xuICBjaGVjayhpbnN0YW5jZV9mcm9tX2NsaWVudFtcImZsb3dcIl0sIFN0cmluZyk7XG4gIGNoZWNrKGluc3RhbmNlX2Zyb21fY2xpZW50W1wicmVjb3JkX2lkc1wiXSwgW1xuICAgIHtcbiAgICAgIG86IFN0cmluZyxcbiAgICAgIGlkczogW1N0cmluZ11cbiAgICB9XG4gIF0pO1xuICB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmNoZWNrU3luY0RpcmVjdGlvbihpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl1bMF0ubywgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJmbG93XCJdKTtcbiAgdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5jaGVja0lzSW5BcHByb3ZhbChpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl1bMF0sIGluc3RhbmNlX2Zyb21fY2xpZW50W1wic3BhY2VcIl0pO1xuICBzcGFjZV9pZCA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1wic3BhY2VcIl07XG4gIGZsb3dfaWQgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImZsb3dcIl07XG4gIHVzZXJfaWQgPSB1c2VyX2luZm8uX2lkO1xuICB0cmFjZV9mcm9tX2NsaWVudCA9IG51bGw7XG4gIGFwcHJvdmVfZnJvbV9jbGllbnQgPSBudWxsO1xuICBpZiAoaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJ0cmFjZXNcIl0gJiYgaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJ0cmFjZXNcIl1bMF0pIHtcbiAgICB0cmFjZV9mcm9tX2NsaWVudCA9IGluc3RhbmNlX2Zyb21fY2xpZW50W1widHJhY2VzXCJdWzBdO1xuICAgIGlmICh0cmFjZV9mcm9tX2NsaWVudFtcImFwcHJvdmVzXCJdICYmIHRyYWNlX2Zyb21fY2xpZW50W1wiYXBwcm92ZXNcIl1bMF0pIHtcbiAgICAgIGFwcHJvdmVfZnJvbV9jbGllbnQgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInRyYWNlc1wiXVswXVtcImFwcHJvdmVzXCJdWzBdO1xuICAgIH1cbiAgfVxuICBzcGFjZSA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0U3BhY2Uoc3BhY2VfaWQpO1xuICBmbG93ID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRGbG93KGZsb3dfaWQpO1xuICBzcGFjZV91c2VyID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZVVzZXIoc3BhY2VfaWQsIHVzZXJfaWQpO1xuICBzcGFjZV91c2VyX29yZ19pbmZvID0gdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5nZXRTcGFjZVVzZXJPcmdJbmZvKHNwYWNlX3VzZXIpO1xuICB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmlzRmxvd0VuYWJsZWQoZmxvdyk7XG4gIHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuaXNGbG93U3BhY2VNYXRjaGVkKGZsb3csIHNwYWNlX2lkKTtcbiAgZm9ybSA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Rm9ybShmbG93LmZvcm0pO1xuICBwZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25NYW5hZ2VyLmdldEZsb3dQZXJtaXNzaW9ucyhmbG93X2lkLCB1c2VyX2lkKTtcbiAgaWYgKCFwZXJtaXNzaW9ucy5pbmNsdWRlcyhcImFkZFwiKSkge1xuICAgIHRocm93IG5ldyBNZXRlb3IuRXJyb3IoJ2Vycm9yIScsIFwi5b2T5YmN55So5oi35rKh5pyJ5q2k5rWB56iL55qE5paw5bu65p2D6ZmQXCIpO1xuICB9XG4gIG5vdyA9IG5ldyBEYXRlO1xuICBpbnNfb2JqID0ge307XG4gIGluc19vYmouX2lkID0gQ3JlYXRvci5Db2xsZWN0aW9ucy5pbnN0YW5jZXMuX21ha2VOZXdJRCgpO1xuICBpbnNfb2JqLnNwYWNlID0gc3BhY2VfaWQ7XG4gIGluc19vYmouZmxvdyA9IGZsb3dfaWQ7XG4gIGluc19vYmouZmxvd192ZXJzaW9uID0gZmxvdy5jdXJyZW50Ll9pZDtcbiAgaW5zX29iai5mb3JtID0gZmxvdy5mb3JtO1xuICBpbnNfb2JqLmZvcm1fdmVyc2lvbiA9IGZsb3cuY3VycmVudC5mb3JtX3ZlcnNpb247XG4gIGluc19vYmoubmFtZSA9IGZsb3cubmFtZTtcbiAgaW5zX29iai5zdWJtaXR0ZXIgPSB1c2VyX2lkO1xuICBpbnNfb2JqLnN1Ym1pdHRlcl9uYW1lID0gdXNlcl9pbmZvLm5hbWU7XG4gIGluc19vYmouYXBwbGljYW50ID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRcIl0gPyBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudFwiXSA6IHVzZXJfaWQ7XG4gIGluc19vYmouYXBwbGljYW50X25hbWUgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9uYW1lXCJdID8gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfbmFtZVwiXSA6IHVzZXJfaW5mby5uYW1lO1xuICBpbnNfb2JqLmFwcGxpY2FudF9vcmdhbml6YXRpb24gPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9vcmdhbml6YXRpb25cIl0gPyBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9vcmdhbml6YXRpb25cIl0gOiBzcGFjZV91c2VyLm9yZ2FuaXphdGlvbjtcbiAgaW5zX29iai5hcHBsaWNhbnRfb3JnYW5pemF0aW9uX25hbWUgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9vcmdhbml6YXRpb25fbmFtZVwiXSA/IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X29yZ2FuaXphdGlvbl9uYW1lXCJdIDogc3BhY2VfdXNlcl9vcmdfaW5mby5vcmdhbml6YXRpb25fbmFtZTtcbiAgaW5zX29iai5hcHBsaWNhbnRfb3JnYW5pemF0aW9uX2Z1bGxuYW1lID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uX2Z1bGxuYW1lXCJdID8gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfb3JnYW5pemF0aW9uX2Z1bGxuYW1lXCJdIDogc3BhY2VfdXNlcl9vcmdfaW5mby5vcmdhbml6YXRpb25fZnVsbG5hbWU7XG4gIGluc19vYmouYXBwbGljYW50X2NvbXBhbnkgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudF9jb21wYW55XCJdID8gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfY29tcGFueVwiXSA6IHNwYWNlX3VzZXIuY29tcGFueV9pZDtcbiAgaW5zX29iai5zdGF0ZSA9ICdkcmFmdCc7XG4gIGluc19vYmouY29kZSA9ICcnO1xuICBpbnNfb2JqLmlzX2FyY2hpdmVkID0gZmFsc2U7XG4gIGluc19vYmouaXNfZGVsZXRlZCA9IGZhbHNlO1xuICBpbnNfb2JqLmNyZWF0ZWQgPSBub3c7XG4gIGluc19vYmouY3JlYXRlZF9ieSA9IHVzZXJfaWQ7XG4gIGluc19vYmoubW9kaWZpZWQgPSBub3c7XG4gIGluc19vYmoubW9kaWZpZWRfYnkgPSB1c2VyX2lkO1xuICBpbnNfb2JqLnJlY29yZF9pZHMgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcInJlY29yZF9pZHNcIl07XG4gIGlmIChzcGFjZV91c2VyLmNvbXBhbnlfaWQpIHtcbiAgICBpbnNfb2JqLmNvbXBhbnlfaWQgPSBzcGFjZV91c2VyLmNvbXBhbnlfaWQ7XG4gIH1cbiAgdHJhY2Vfb2JqID0ge307XG4gIHRyYWNlX29iai5faWQgPSBuZXcgTW9uZ28uT2JqZWN0SUQoKS5fc3RyO1xuICB0cmFjZV9vYmouaW5zdGFuY2UgPSBpbnNfb2JqLl9pZDtcbiAgdHJhY2Vfb2JqLmlzX2ZpbmlzaGVkID0gZmFsc2U7XG4gIHN0YXJ0X3N0ZXAgPSBfLmZpbmQoZmxvdy5jdXJyZW50LnN0ZXBzLCBmdW5jdGlvbihzdGVwKSB7XG4gICAgcmV0dXJuIHN0ZXAuc3RlcF90eXBlID09PSAnc3RhcnQnO1xuICB9KTtcbiAgdHJhY2Vfb2JqLnN0ZXAgPSBzdGFydF9zdGVwLl9pZDtcbiAgdHJhY2Vfb2JqLm5hbWUgPSBzdGFydF9zdGVwLm5hbWU7XG4gIHRyYWNlX29iai5zdGFydF9kYXRlID0gbm93O1xuICBhcHByX29iaiA9IHt9O1xuICBhcHByX29iai5faWQgPSBuZXcgTW9uZ28uT2JqZWN0SUQoKS5fc3RyO1xuICBhcHByX29iai5pbnN0YW5jZSA9IGluc19vYmouX2lkO1xuICBhcHByX29iai50cmFjZSA9IHRyYWNlX29iai5faWQ7XG4gIGFwcHJfb2JqLmlzX2ZpbmlzaGVkID0gZmFsc2U7XG4gIGFwcHJfb2JqLnVzZXIgPSBpbnN0YW5jZV9mcm9tX2NsaWVudFtcImFwcGxpY2FudFwiXSA/IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50XCJdIDogdXNlcl9pZDtcbiAgYXBwcl9vYmoudXNlcl9uYW1lID0gaW5zdGFuY2VfZnJvbV9jbGllbnRbXCJhcHBsaWNhbnRfbmFtZVwiXSA/IGluc3RhbmNlX2Zyb21fY2xpZW50W1wiYXBwbGljYW50X25hbWVcIl0gOiB1c2VyX2luZm8ubmFtZTtcbiAgYXBwcl9vYmouaGFuZGxlciA9IHVzZXJfaWQ7XG4gIGFwcHJfb2JqLmhhbmRsZXJfbmFtZSA9IHVzZXJfaW5mby5uYW1lO1xuICBhcHByX29iai5oYW5kbGVyX29yZ2FuaXphdGlvbiA9IHNwYWNlX3VzZXIub3JnYW5pemF0aW9uO1xuICBhcHByX29iai5oYW5kbGVyX29yZ2FuaXphdGlvbl9uYW1lID0gc3BhY2VfdXNlcl9vcmdfaW5mby5uYW1lO1xuICBhcHByX29iai5oYW5kbGVyX29yZ2FuaXphdGlvbl9mdWxsbmFtZSA9IHNwYWNlX3VzZXJfb3JnX2luZm8uZnVsbG5hbWU7XG4gIGFwcHJfb2JqLnR5cGUgPSAnZHJhZnQnO1xuICBhcHByX29iai5zdGFydF9kYXRlID0gbm93O1xuICBhcHByX29iai5yZWFkX2RhdGUgPSBub3c7XG4gIGFwcHJfb2JqLmlzX3JlYWQgPSB0cnVlO1xuICBhcHByX29iai5pc19lcnJvciA9IGZhbHNlO1xuICBhcHByX29iai5kZXNjcmlwdGlvbiA9ICcnO1xuICByZWxhdGVkVGFibGVzSW5mbyA9IHt9O1xuICBhcHByX29iai52YWx1ZXMgPSB1dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlVmFsdWVzKGluc19vYmoucmVjb3JkX2lkc1swXSwgZmxvd19pZCwgc3BhY2VfaWQsIGZvcm0uY3VycmVudC5maWVsZHMsIHJlbGF0ZWRUYWJsZXNJbmZvKTtcbiAgdHJhY2Vfb2JqLmFwcHJvdmVzID0gW2FwcHJfb2JqXTtcbiAgaW5zX29iai50cmFjZXMgPSBbdHJhY2Vfb2JqXTtcbiAgaW5zX29iai52YWx1ZXMgPSBhcHByX29iai52YWx1ZXM7XG4gIGluc19vYmouaW5ib3hfdXNlcnMgPSBpbnN0YW5jZV9mcm9tX2NsaWVudC5pbmJveF91c2VycyB8fCBbXTtcbiAgaW5zX29iai5jdXJyZW50X3N0ZXBfbmFtZSA9IHN0YXJ0X3N0ZXAubmFtZTtcbiAgaWYgKGZsb3cuYXV0b19yZW1pbmQgPT09IHRydWUpIHtcbiAgICBpbnNfb2JqLmF1dG9fcmVtaW5kID0gdHJ1ZTtcbiAgfVxuICBpbnNfb2JqLmZsb3dfbmFtZSA9IGZsb3cubmFtZTtcbiAgaWYgKGZvcm0uY2F0ZWdvcnkpIHtcbiAgICBjYXRlZ29yeSA9IHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZ2V0Q2F0ZWdvcnkoZm9ybS5jYXRlZ29yeSk7XG4gICAgaWYgKGNhdGVnb3J5KSB7XG4gICAgICBpbnNfb2JqLmNhdGVnb3J5X25hbWUgPSBjYXRlZ29yeS5uYW1lO1xuICAgICAgaW5zX29iai5jYXRlZ29yeSA9IGNhdGVnb3J5Ll9pZDtcbiAgICB9XG4gIH1cbiAgbmV3X2luc19pZCA9IENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLmluc2VydChpbnNfb2JqKTtcbiAgdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZVJlY29yZEluc3RhbmNlSW5mbyhpbnNfb2JqLnJlY29yZF9pZHNbMF0sIG5ld19pbnNfaWQsIHNwYWNlX2lkKTtcbiAgdXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZUF0dGFjaChpbnNfb2JqLnJlY29yZF9pZHNbMF0sIHNwYWNlX2lkLCBpbnNfb2JqLl9pZCwgYXBwcl9vYmouX2lkKTtcbiAgcmV0dXJuIG5ld19pbnNfaWQ7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlVmFsdWVzID0gZnVuY3Rpb24ocmVjb3JkSWRzLCBmbG93SWQsIHNwYWNlSWQsIGZpZWxkcywgcmVsYXRlZFRhYmxlc0luZm8pIHtcbiAgdmFyIGZpZWxkQ29kZXMsIGZpbHRlclZhbHVlcywgZmxvdywgZm9ybSwgZm9ybUZpZWxkcywgZm9ybVRhYmxlRmllbGRzLCBmb3JtVGFibGVGaWVsZHNDb2RlLCBvYmplY3QsIG9iamVjdE5hbWUsIG93LCByZWNvcmQsIHJlY29yZElkLCByZWYsIHJlbGF0ZWRPYmplY3RzLCByZWxhdGVkT2JqZWN0c0tleXMsIHJlcXVpcmVkRGV0YWlscywgdGFibGVGaWVsZENvZGVzLCB0YWJsZUZpZWxkTWFwLCB0YWJsZVRvUmVsYXRlZE1hcCwgdmFsdWVzO1xuICBmaWVsZENvZGVzID0gW107XG4gIF8uZWFjaChmaWVsZHMsIGZ1bmN0aW9uKGYpIHtcbiAgICBpZiAoZi50eXBlID09PSAnc2VjdGlvbicpIHtcbiAgICAgIHJldHVybiBfLmVhY2goZi5maWVsZHMsIGZ1bmN0aW9uKGZmKSB7XG4gICAgICAgIHJldHVybiBmaWVsZENvZGVzLnB1c2goZmYuY29kZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpZWxkQ29kZXMucHVzaChmLmNvZGUpO1xuICAgIH1cbiAgfSk7XG4gIHZhbHVlcyA9IHt9O1xuICBvYmplY3ROYW1lID0gcmVjb3JkSWRzLm87XG4gIG9iamVjdCA9IGdldE9iamVjdENvbmZpZyhvYmplY3ROYW1lKTtcbiAgcmVjb3JkSWQgPSByZWNvcmRJZHMuaWRzWzBdO1xuICBvdyA9IENyZWF0b3IuQ29sbGVjdGlvbnMub2JqZWN0X3dvcmtmbG93cy5maW5kT25lKHtcbiAgICBvYmplY3RfbmFtZTogb2JqZWN0TmFtZSxcbiAgICBmbG93X2lkOiBmbG93SWRcbiAgfSk7XG4gIHJlY29yZCA9IG9iamVjdEZpbmRPbmUob2JqZWN0TmFtZSwge1xuICAgIGZpbHRlcnM6IFtbJ19pZCcsICc9JywgcmVjb3JkSWRdXVxuICB9KTtcbiAgZmxvdyA9IENyZWF0b3IuZ2V0Q29sbGVjdGlvbignZmxvd3MnKS5maW5kT25lKGZsb3dJZCwge1xuICAgIGZpZWxkczoge1xuICAgICAgZm9ybTogMVxuICAgIH1cbiAgfSk7XG4gIGlmIChvdyAmJiByZWNvcmQpIHtcbiAgICByZXF1aXJlZERldGFpbHMgPSBvdy5yZXF1aXJlZF9kZXRhaWxzIHx8IFtdO1xuICAgIGNoZWNrUmVxdWlyZWREZXRhaWxzKHJlcXVpcmVkRGV0YWlscywgcmVjb3JkKTtcbiAgICBmb3JtID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKFwiZm9ybXNcIikuZmluZE9uZShmbG93LmZvcm0pO1xuICAgIGZvcm1GaWVsZHMgPSBmb3JtLmN1cnJlbnQuZmllbGRzIHx8IFtdO1xuICAgIHJlbGF0ZWRPYmplY3RzID0gZ2V0UmVsYXRlZHMob2JqZWN0TmFtZSk7XG4gICAgcmVsYXRlZE9iamVjdHNLZXlzID0gXy5wbHVjayhyZWxhdGVkT2JqZWN0cywgJ29iamVjdF9uYW1lJyk7XG4gICAgZm9ybVRhYmxlRmllbGRzID0gXy5maWx0ZXIoZm9ybUZpZWxkcywgZnVuY3Rpb24oZm9ybUZpZWxkKSB7XG4gICAgICByZXR1cm4gZm9ybUZpZWxkLnR5cGUgPT09ICd0YWJsZSc7XG4gICAgfSk7XG4gICAgZm9ybVRhYmxlRmllbGRzQ29kZSA9IF8ucGx1Y2soZm9ybVRhYmxlRmllbGRzLCAnY29kZScpO1xuICAgIHRhYmxlRmllbGRDb2RlcyA9IFtdO1xuICAgIHRhYmxlRmllbGRNYXAgPSBbXTtcbiAgICB0YWJsZVRvUmVsYXRlZE1hcCA9IHt9O1xuICAgIGlmICgocmVmID0gb3cuZmllbGRfbWFwKSAhPSBudWxsKSB7XG4gICAgICByZWYuZm9yRWFjaChmdW5jdGlvbihmbSkge1xuICAgICAgICB2YXIgZm9ybUZpZWxkLCBmb3JtVGFibGVGaWVsZENvZGUsIGdyaWRDb2RlLCBsb29rdXBGaWVsZE5hbWUsIGxvb2t1cEZpZWxkT2JqLCBsb29rdXBPYmplY3RSZWNvcmQsIG9UYWJsZUNvZGUsIG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZCwgb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkQ29kZSwgb1RhYmxlRmllbGRDb2RlLCBvYmpGaWVsZCwgb2JqZWN0RmllbGQsIG9iamVjdEZpZWxkTmFtZSwgb2JqZWN0RmllbGRPYmplY3ROYW1lLCBvYmplY3RMb29rdXBGaWVsZCwgb2JqZWN0X2ZpZWxkLCByZWNvcmRGaWVsZFZhbHVlLCByZWZlcmVuY2VUb0RvYywgcmVmZXJlbmNlVG9GaWVsZE5hbWUsIHJlZmVyZW5jZVRvRmllbGRWYWx1ZSwgcmVmZXJlbmNlVG9PYmplY3ROYW1lLCByZWxhdGVkT2JqZWN0RmllbGRDb2RlLCB0YWJsZVRvUmVsYXRlZE1hcEtleSwgd1RhYmxlQ29kZSwgd29ya2Zsb3dfZmllbGQ7XG4gICAgICAgIG9iamVjdF9maWVsZCA9IGZtLm9iamVjdF9maWVsZDtcbiAgICAgICAgd29ya2Zsb3dfZmllbGQgPSBmbS53b3JrZmxvd19maWVsZDtcbiAgICAgICAgaWYgKCFvYmplY3RfZmllbGQgfHwgIXdvcmtmbG93X2ZpZWxkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcig0MDAsICfmnKrmib7liLDlrZfmrrXvvIzor7fmo4Dmn6Xlr7nosaHmtYHnqIvmmKDlsITlrZfmrrXphY3nva4nKTtcbiAgICAgICAgfVxuICAgICAgICByZWxhdGVkT2JqZWN0RmllbGRDb2RlID0gZ2V0UmVsYXRlZE9iamVjdEZpZWxkQ29kZShyZWxhdGVkT2JqZWN0c0tleXMsIG9iamVjdF9maWVsZCk7XG4gICAgICAgIGZvcm1UYWJsZUZpZWxkQ29kZSA9IGdldEZvcm1UYWJsZUZpZWxkQ29kZShmb3JtVGFibGVGaWVsZHNDb2RlLCB3b3JrZmxvd19maWVsZCk7XG4gICAgICAgIG9iakZpZWxkID0gb2JqZWN0LmZpZWxkc1tvYmplY3RfZmllbGRdO1xuICAgICAgICBmb3JtRmllbGQgPSBnZXRGb3JtRmllbGQoZm9ybUZpZWxkcywgd29ya2Zsb3dfZmllbGQpO1xuICAgICAgICByZWNvcmRGaWVsZFZhbHVlID0gcmVjb3JkW29iamVjdF9maWVsZF07XG4gICAgICAgIGlmIChyZWxhdGVkT2JqZWN0RmllbGRDb2RlKSB7XG4gICAgICAgICAgb1RhYmxlQ29kZSA9IG9iamVjdF9maWVsZC5zcGxpdCgnLicpWzBdO1xuICAgICAgICAgIG9UYWJsZUZpZWxkQ29kZSA9IG9iamVjdF9maWVsZC5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgIHRhYmxlVG9SZWxhdGVkTWFwS2V5ID0gb1RhYmxlQ29kZTtcbiAgICAgICAgICBpZiAoIXRhYmxlVG9SZWxhdGVkTWFwW3RhYmxlVG9SZWxhdGVkTWFwS2V5XSkge1xuICAgICAgICAgICAgdGFibGVUb1JlbGF0ZWRNYXBbdGFibGVUb1JlbGF0ZWRNYXBLZXldID0ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmb3JtVGFibGVGaWVsZENvZGUpIHtcbiAgICAgICAgICAgIHdUYWJsZUNvZGUgPSB3b3JrZmxvd19maWVsZC5zcGxpdCgnLicpWzBdO1xuICAgICAgICAgICAgdGFibGVUb1JlbGF0ZWRNYXBbdGFibGVUb1JlbGF0ZWRNYXBLZXldWydfRlJPTV9UQUJMRV9DT0RFJ10gPSB3VGFibGVDb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGFibGVUb1JlbGF0ZWRNYXBbdGFibGVUb1JlbGF0ZWRNYXBLZXldW29UYWJsZUZpZWxkQ29kZV0gPSB3b3JrZmxvd19maWVsZDtcbiAgICAgICAgfSBlbHNlIGlmICh3b3JrZmxvd19maWVsZC5pbmRleE9mKCcuJykgPiAwICYmIG9iamVjdF9maWVsZC5pbmRleE9mKCcuJC4nKSA+IDApIHtcbiAgICAgICAgICB3VGFibGVDb2RlID0gd29ya2Zsb3dfZmllbGQuc3BsaXQoJy4nKVswXTtcbiAgICAgICAgICBvVGFibGVDb2RlID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJC4nKVswXTtcbiAgICAgICAgICBpZiAocmVjb3JkLmhhc093blByb3BlcnR5KG9UYWJsZUNvZGUpICYmIF8uaXNBcnJheShyZWNvcmRbb1RhYmxlQ29kZV0pKSB7XG4gICAgICAgICAgICB0YWJsZUZpZWxkQ29kZXMucHVzaChKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIHdvcmtmbG93X3RhYmxlX2ZpZWxkX2NvZGU6IHdUYWJsZUNvZGUsXG4gICAgICAgICAgICAgIG9iamVjdF90YWJsZV9maWVsZF9jb2RlOiBvVGFibGVDb2RlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICByZXR1cm4gdGFibGVGaWVsZE1hcC5wdXNoKGZtKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG9UYWJsZUNvZGUuaW5kZXhPZignLicpID4gMCkge1xuICAgICAgICAgICAgb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkQ29kZSA9IG9UYWJsZUNvZGUuc3BsaXQoJy4nKVswXTtcbiAgICAgICAgICAgIGdyaWRDb2RlID0gb1RhYmxlQ29kZS5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgICAgb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkID0gb2JqZWN0LmZpZWxkc1tvVGFibGVDb2RlUmVmZXJlbmNlRmllbGRDb2RlXTtcbiAgICAgICAgICAgIGlmIChvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQgJiYgWydsb29rdXAnLCAnbWFzdGVyX2RldGFpbCddLmluY2x1ZGVzKG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZC50eXBlKSAmJiBfLmlzU3RyaW5nKG9UYWJsZUNvZGVSZWZlcmVuY2VGaWVsZC5yZWZlcmVuY2VfdG8pKSB7XG4gICAgICAgICAgICAgIGlmIChyZWNvcmRbb1RhYmxlQ29kZV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVmZXJlbmNlVG9GaWVsZE5hbWUgPSBvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQucmVmZXJlbmNlX3RvX2ZpZWxkIHx8ICdfaWQnO1xuICAgICAgICAgICAgICByZWZlcmVuY2VUb09iamVjdE5hbWUgPSBvVGFibGVDb2RlUmVmZXJlbmNlRmllbGQucmVmZXJlbmNlX3RvO1xuICAgICAgICAgICAgICByZWZlcmVuY2VUb0ZpZWxkVmFsdWUgPSByZWNvcmRbb1RhYmxlQ29kZVJlZmVyZW5jZUZpZWxkLm5hbWVdO1xuICAgICAgICAgICAgICByZWZlcmVuY2VUb0RvYyA9IGdldEZpZWxkT2RhdGFWYWx1ZShyZWZlcmVuY2VUb09iamVjdE5hbWUsIHJlZmVyZW5jZVRvRmllbGRWYWx1ZSwgcmVmZXJlbmNlVG9GaWVsZE5hbWUpO1xuICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlVG9Eb2NbZ3JpZENvZGVdKSB7XG4gICAgICAgICAgICAgICAgcmVjb3JkW29UYWJsZUNvZGVdID0gcmVmZXJlbmNlVG9Eb2NbZ3JpZENvZGVdO1xuICAgICAgICAgICAgICAgIHRhYmxlRmllbGRDb2Rlcy5wdXNoKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgIHdvcmtmbG93X3RhYmxlX2ZpZWxkX2NvZGU6IHdUYWJsZUNvZGUsXG4gICAgICAgICAgICAgICAgICBvYmplY3RfdGFibGVfZmllbGRfY29kZTogb1RhYmxlQ29kZVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFibGVGaWVsZE1hcC5wdXNoKGZtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvYmplY3RfZmllbGQuaW5kZXhPZignLicpID4gMCAmJiBvYmplY3RfZmllbGQuaW5kZXhPZignLiQuJykgPT09IC0xKSB7XG4gICAgICAgICAgb2JqZWN0RmllbGROYW1lID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgbG9va3VwRmllbGROYW1lID0gb2JqZWN0X2ZpZWxkLnNwbGl0KCcuJylbMV07XG4gICAgICAgICAgaWYgKG9iamVjdCkge1xuICAgICAgICAgICAgb2JqZWN0RmllbGQgPSBvYmplY3QuZmllbGRzW29iamVjdEZpZWxkTmFtZV07XG4gICAgICAgICAgICBpZiAob2JqZWN0RmllbGQgJiYgZm9ybUZpZWxkICYmIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhvYmplY3RGaWVsZC50eXBlKSAmJiBfLmlzU3RyaW5nKG9iamVjdEZpZWxkLnJlZmVyZW5jZV90bykpIHtcbiAgICAgICAgICAgICAgbG9va3VwT2JqZWN0UmVjb3JkID0gb2JqZWN0RmluZE9uZShvYmplY3RGaWVsZC5yZWZlcmVuY2VfdG8sIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbWydfaWQnLCAnPScsIHJlY29yZFtvYmplY3RGaWVsZE5hbWVdXV0sXG4gICAgICAgICAgICAgICAgZmllbGRzOiBbbG9va3VwRmllbGROYW1lXVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgaWYgKCFsb29rdXBPYmplY3RSZWNvcmQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgb2JqZWN0RmllbGRPYmplY3ROYW1lID0gb2JqZWN0RmllbGQucmVmZXJlbmNlX3RvO1xuICAgICAgICAgICAgICBsb29rdXBGaWVsZE9iaiA9IGdldE9iamVjdENvbmZpZyhvYmplY3RGaWVsZE9iamVjdE5hbWUpO1xuICAgICAgICAgICAgICBvYmplY3RMb29rdXBGaWVsZCA9IGxvb2t1cEZpZWxkT2JqLmZpZWxkc1tsb29rdXBGaWVsZE5hbWVdO1xuICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzW3dvcmtmbG93X2ZpZWxkXSA9IGdldEluc3RhbmNlRmllbGRWYWx1ZShvYmplY3RMb29rdXBGaWVsZCwgZm9ybUZpZWxkLCBsb29rdXBPYmplY3RSZWNvcmQsIGxvb2t1cEZpZWxkTmFtZSwgc3BhY2VJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB2YWx1ZXNbd29ya2Zsb3dfZmllbGRdID0gZ2V0SW5zdGFuY2VGaWVsZFZhbHVlKG9iakZpZWxkLCBmb3JtRmllbGQsIHJlY29yZCwgb2JqZWN0X2ZpZWxkLCBzcGFjZUlkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIF8udW5pcSh0YWJsZUZpZWxkQ29kZXMpLmZvckVhY2goZnVuY3Rpb24odGZjKSB7XG4gICAgICB2YXIgYztcbiAgICAgIGMgPSBKU09OLnBhcnNlKHRmYyk7XG4gICAgICB2YWx1ZXNbYy53b3JrZmxvd190YWJsZV9maWVsZF9jb2RlXSA9IFtdO1xuICAgICAgcmV0dXJuIHJlY29yZFtjLm9iamVjdF90YWJsZV9maWVsZF9jb2RlXS5mb3JFYWNoKGZ1bmN0aW9uKHRyKSB7XG4gICAgICAgIHZhciBuZXdUcjtcbiAgICAgICAgbmV3VHIgPSB7fTtcbiAgICAgICAgXy5lYWNoKHRyLCBmdW5jdGlvbih2LCBrKSB7XG4gICAgICAgICAgcmV0dXJuIHRhYmxlRmllbGRNYXAuZm9yRWFjaChmdW5jdGlvbih0Zm0pIHtcbiAgICAgICAgICAgIHZhciB3VGRDb2RlO1xuICAgICAgICAgICAgaWYgKHRmbS5vYmplY3RfZmllbGQgPT09IChjLm9iamVjdF90YWJsZV9maWVsZF9jb2RlICsgJy4kLicgKyBrKSkge1xuICAgICAgICAgICAgICB3VGRDb2RlID0gdGZtLndvcmtmbG93X2ZpZWxkLnNwbGl0KCcuJylbMV07XG4gICAgICAgICAgICAgIHJldHVybiBuZXdUclt3VGRDb2RlXSA9IHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIV8uaXNFbXB0eShuZXdUcikpIHtcbiAgICAgICAgICByZXR1cm4gdmFsdWVzW2Mud29ya2Zsb3dfdGFibGVfZmllbGRfY29kZV0ucHVzaChuZXdUcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIF8uZWFjaCh0YWJsZVRvUmVsYXRlZE1hcCwgZnVuY3Rpb24obWFwLCBrZXkpIHtcbiAgICAgIHZhciBmb3JtVGFibGVGaWVsZCwgcmVsYXRlZEZpZWxkLCByZWxhdGVkRmllbGROYW1lLCByZWxhdGVkT2JqZWN0LCByZWxhdGVkT2JqZWN0TmFtZSwgcmVsYXRlZFJlY29yZHMsIHJlbGF0ZWRUYWJsZUl0ZW1zLCB0YWJsZUNvZGUsIHRhYmxlVmFsdWVzO1xuICAgICAgdGFibGVDb2RlID0gbWFwLl9GUk9NX1RBQkxFX0NPREU7XG4gICAgICBmb3JtVGFibGVGaWVsZCA9IGdldEZvcm1UYWJsZUZpZWxkKGZvcm1UYWJsZUZpZWxkcywgdGFibGVDb2RlKTtcbiAgICAgIGlmICghdGFibGVDb2RlKSB7XG4gICAgICAgIHJldHVybiBjb25zb2xlLndhcm4oJ3RhYmxlVG9SZWxhdGVkOiBbJyArIGtleSArICddIG1pc3NpbmcgY29ycmVzcG9uZGluZyB0YWJsZS4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbGF0ZWRPYmplY3ROYW1lID0ga2V5O1xuICAgICAgICB0YWJsZVZhbHVlcyA9IFtdO1xuICAgICAgICByZWxhdGVkVGFibGVJdGVtcyA9IFtdO1xuICAgICAgICByZWxhdGVkT2JqZWN0ID0gZ2V0T2JqZWN0Q29uZmlnKHJlbGF0ZWRPYmplY3ROYW1lKTtcbiAgICAgICAgcmVsYXRlZEZpZWxkID0gXy5maW5kKHJlbGF0ZWRPYmplY3QuZmllbGRzLCBmdW5jdGlvbihmKSB7XG4gICAgICAgICAgcmV0dXJuIFsnbG9va3VwJywgJ21hc3Rlcl9kZXRhaWwnXS5pbmNsdWRlcyhmLnR5cGUpICYmIGYucmVmZXJlbmNlX3RvID09PSBvYmplY3ROYW1lO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVsYXRlZEZpZWxkTmFtZSA9IHJlbGF0ZWRGaWVsZC5uYW1lO1xuICAgICAgICByZWxhdGVkUmVjb3JkcyA9IG9iamVjdEZpbmQocmVsYXRlZE9iamVjdE5hbWUsIHtcbiAgICAgICAgICBmaWx0ZXJzOiBbW3JlbGF0ZWRGaWVsZE5hbWUsICc9JywgcmVjb3JkSWRdXVxuICAgICAgICB9KTtcbiAgICAgICAgcmVsYXRlZFJlY29yZHMuZm9yRWFjaChmdW5jdGlvbihycikge1xuICAgICAgICAgIHZhciB0YWJsZVZhbHVlSXRlbTtcbiAgICAgICAgICB0YWJsZVZhbHVlSXRlbSA9IHt9O1xuICAgICAgICAgIF8uZWFjaChtYXAsIGZ1bmN0aW9uKHZhbHVlS2V5LCBmaWVsZEtleSkge1xuICAgICAgICAgICAgdmFyIGZvcm1GaWVsZCwgZm9ybUZpZWxkS2V5LCByZWxhdGVkT2JqZWN0RmllbGQsIHRhYmxlRmllbGRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChmaWVsZEtleSAhPT0gJ19GUk9NX1RBQkxFX0NPREUnKSB7XG4gICAgICAgICAgICAgIHRhYmxlRmllbGRWYWx1ZTtcbiAgICAgICAgICAgICAgZm9ybUZpZWxkS2V5O1xuICAgICAgICAgICAgICBpZiAodmFsdWVLZXkuc3RhcnRzV2l0aCh0YWJsZUNvZGUgKyAnLicpKSB7XG4gICAgICAgICAgICAgICAgZm9ybUZpZWxkS2V5ID0gKHZhbHVlS2V5LnNwbGl0KFwiLlwiKVsxXSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9ybUZpZWxkS2V5ID0gdmFsdWVLZXk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZm9ybUZpZWxkID0gZ2V0Rm9ybVRhYmxlU3ViRmllbGQoZm9ybVRhYmxlRmllbGQsIGZvcm1GaWVsZEtleSk7XG4gICAgICAgICAgICAgIHJlbGF0ZWRPYmplY3RGaWVsZCA9IHJlbGF0ZWRPYmplY3QuZmllbGRzW2ZpZWxkS2V5XTtcbiAgICAgICAgICAgICAgaWYgKCFmb3JtRmllbGQgfHwgIXJlbGF0ZWRPYmplY3RGaWVsZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0YWJsZUZpZWxkVmFsdWUgPSBnZXRJbnN0YW5jZUZpZWxkVmFsdWUocmVsYXRlZE9iamVjdEZpZWxkLCBmb3JtRmllbGQsIHJyLCBmaWVsZEtleSwgc3BhY2VJZCk7XG4gICAgICAgICAgICAgIHJldHVybiB0YWJsZVZhbHVlSXRlbVtmb3JtRmllbGRLZXldID0gdGFibGVGaWVsZFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICghXy5pc0VtcHR5KHRhYmxlVmFsdWVJdGVtKSkge1xuICAgICAgICAgICAgdGFibGVWYWx1ZUl0ZW0uX2lkID0gcnIuX2lkO1xuICAgICAgICAgICAgdGFibGVWYWx1ZXMucHVzaCh0YWJsZVZhbHVlSXRlbSk7XG4gICAgICAgICAgICByZXR1cm4gcmVsYXRlZFRhYmxlSXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgIF90YWJsZToge1xuICAgICAgICAgICAgICAgIF9pZDogcnIuX2lkLFxuICAgICAgICAgICAgICAgIF9jb2RlOiB0YWJsZUNvZGVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFsdWVzW3RhYmxlQ29kZV0gPSB0YWJsZVZhbHVlcztcbiAgICAgICAgcmV0dXJuIHJlbGF0ZWRUYWJsZXNJbmZvW3JlbGF0ZWRPYmplY3ROYW1lXSA9IHJlbGF0ZWRUYWJsZUl0ZW1zO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChvdy5maWVsZF9tYXBfc2NyaXB0KSB7XG4gICAgICBfLmV4dGVuZCh2YWx1ZXMsIHV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZXZhbEZpZWxkTWFwU2NyaXB0KG93LmZpZWxkX21hcF9zY3JpcHQsIG9iamVjdE5hbWUsIHNwYWNlSWQsIHJlY29yZElkKSk7XG4gICAgfVxuICB9XG4gIGZpbHRlclZhbHVlcyA9IHt9O1xuICBfLmVhY2goXy5rZXlzKHZhbHVlcyksIGZ1bmN0aW9uKGspIHtcbiAgICBpZiAoZmllbGRDb2Rlcy5pbmNsdWRlcyhrKSkge1xuICAgICAgcmV0dXJuIGZpbHRlclZhbHVlc1trXSA9IHZhbHVlc1trXTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZmlsdGVyVmFsdWVzO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5ldmFsRmllbGRNYXBTY3JpcHQgPSBmdW5jdGlvbihmaWVsZF9tYXBfc2NyaXB0LCBvYmplY3ROYW1lLCBzcGFjZUlkLCBvYmplY3RJZCkge1xuICB2YXIgZnVuYywgcmVjb3JkLCBzY3JpcHQsIHZhbHVlcztcbiAgcmVjb3JkID0gb2JqZWN0RmluZE9uZShvYmplY3ROYW1lLCB7XG4gICAgZmlsdGVyczogW1snX2lkJywgJz0nLCBvYmplY3RJZF1dXG4gIH0pO1xuICBzY3JpcHQgPSBcIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHJlY29yZCkgeyBcIiArIGZpZWxkX21hcF9zY3JpcHQgKyBcIiB9XCI7XG4gIGZ1bmMgPSBfZXZhbChzY3JpcHQsIFwiZmllbGRfbWFwX3NjcmlwdFwiKTtcbiAgdmFsdWVzID0gZnVuYyhyZWNvcmQpO1xuICBpZiAoXy5pc09iamVjdCh2YWx1ZXMpKSB7XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmVycm9yKFwiZXZhbEZpZWxkTWFwU2NyaXB0OiDohJrmnKzov5Tlm57lgLznsbvlnovkuI3mmK/lr7nosaFcIik7XG4gIH1cbiAgcmV0dXJuIHt9O1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZUF0dGFjaCA9IGZ1bmN0aW9uKHJlY29yZElkcywgc3BhY2VJZCwgaW5zSWQsIGFwcHJvdmVJZCkge1xuICBDcmVhdG9yLkNvbGxlY3Rpb25zWydjbXNfZmlsZXMnXS5maW5kKHtcbiAgICBzcGFjZTogc3BhY2VJZCxcbiAgICBwYXJlbnQ6IHJlY29yZElkc1xuICB9KS5mb3JFYWNoKGZ1bmN0aW9uKGNmKSB7XG4gICAgcmV0dXJuIF8uZWFjaChjZi52ZXJzaW9ucywgZnVuY3Rpb24odmVyc2lvbklkLCBpZHgpIHtcbiAgICAgIHZhciBmLCBuZXdGaWxlO1xuICAgICAgZiA9IENyZWF0b3IuQ29sbGVjdGlvbnNbJ2Nmcy5maWxlcy5maWxlcmVjb3JkJ10uZmluZE9uZSh2ZXJzaW9uSWQpO1xuICAgICAgbmV3RmlsZSA9IG5ldyBGUy5GaWxlKCk7XG4gICAgICByZXR1cm4gbmV3RmlsZS5hdHRhY2hEYXRhKGYuY3JlYXRlUmVhZFN0cmVhbSgnZmlsZXMnKSwge1xuICAgICAgICB0eXBlOiBmLm9yaWdpbmFsLnR5cGVcbiAgICAgIH0sIGZ1bmN0aW9uKGVycikge1xuICAgICAgICB2YXIgbWV0YWRhdGE7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTWV0ZW9yLkVycm9yKGVyci5lcnJvciwgZXJyLnJlYXNvbik7XG4gICAgICAgIH1cbiAgICAgICAgbmV3RmlsZS5uYW1lKGYubmFtZSgpKTtcbiAgICAgICAgbmV3RmlsZS5zaXplKGYuc2l6ZSgpKTtcbiAgICAgICAgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgb3duZXI6IGYubWV0YWRhdGEub3duZXIsXG4gICAgICAgICAgb3duZXJfbmFtZTogZi5tZXRhZGF0YS5vd25lcl9uYW1lLFxuICAgICAgICAgIHNwYWNlOiBzcGFjZUlkLFxuICAgICAgICAgIGluc3RhbmNlOiBpbnNJZCxcbiAgICAgICAgICBhcHByb3ZlOiBhcHByb3ZlSWQsXG4gICAgICAgICAgcGFyZW50OiBjZi5faWRcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGlkeCA9PT0gMCkge1xuICAgICAgICAgIG1ldGFkYXRhLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIG5ld0ZpbGUubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAgICAgcmV0dXJuIGNmcy5pbnN0YW5jZXMuaW5zZXJ0KG5ld0ZpbGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxudXVmbG93TWFuYWdlckZvckluaXRBcHByb3ZhbC5pbml0aWF0ZVJlY29yZEluc3RhbmNlSW5mbyA9IGZ1bmN0aW9uKHJlY29yZElkcywgaW5zSWQsIHNwYWNlSWQpIHtcbiAgb2JqZWN0VXBkYXRlKHJlY29yZElkcy5vLCByZWNvcmRJZHMuaWRzWzBdLCB7XG4gICAgaW5zdGFuY2VzOiBbXG4gICAgICB7XG4gICAgICAgIF9pZDogaW5zSWQsXG4gICAgICAgIHN0YXRlOiAnZHJhZnQnXG4gICAgICB9XG4gICAgXSxcbiAgICBsb2NrZWQ6IHRydWUsXG4gICAgaW5zdGFuY2Vfc3RhdGU6ICdkcmFmdCdcbiAgfSk7XG59O1xuXG51dWZsb3dNYW5hZ2VyRm9ySW5pdEFwcHJvdmFsLmluaXRpYXRlUmVsYXRlZFJlY29yZEluc3RhbmNlSW5mbyA9IGZ1bmN0aW9uKHJlbGF0ZWRUYWJsZXNJbmZvLCBpbnNJZCwgc3BhY2VJZCkge1xuICBfLmVhY2gocmVsYXRlZFRhYmxlc0luZm8sIGZ1bmN0aW9uKHRhYmxlSXRlbXMsIHJlbGF0ZWRPYmplY3ROYW1lKSB7XG4gICAgdmFyIHJlbGF0ZWRDb2xsZWN0aW9uO1xuICAgIHJlbGF0ZWRDb2xsZWN0aW9uID0gQ3JlYXRvci5nZXRDb2xsZWN0aW9uKHJlbGF0ZWRPYmplY3ROYW1lLCBzcGFjZUlkKTtcbiAgICByZXR1cm4gXy5lYWNoKHRhYmxlSXRlbXMsIGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgIHJldHVybiByZWxhdGVkQ29sbGVjdGlvbi5kaXJlY3QudXBkYXRlKGl0ZW0uX3RhYmxlLl9pZCwge1xuICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgaW5zdGFuY2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIF9pZDogaW5zSWQsXG4gICAgICAgICAgICAgIHN0YXRlOiAnZHJhZnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBfdGFibGU6IGl0ZW0uX3RhYmxlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuY2hlY2tJc0luQXBwcm92YWwgPSBmdW5jdGlvbihyZWNvcmRJZHMsIHNwYWNlSWQpIHtcbiAgdmFyIHJlY29yZDtcbiAgcmVjb3JkID0gb2JqZWN0RmluZE9uZShyZWNvcmRJZHMubywge1xuICAgIGZpbHRlcnM6IFtbJ19pZCcsICc9JywgcmVjb3JkSWRzLmlkc1swXV1dLFxuICAgIGZpZWxkczogWydpbnN0YW5jZXMnXVxuICB9KTtcbiAgaWYgKHJlY29yZCAmJiByZWNvcmQuaW5zdGFuY2VzICYmIHJlY29yZC5pbnN0YW5jZXNbMF0uc3RhdGUgIT09ICdjb21wbGV0ZWQnICYmIENyZWF0b3IuQ29sbGVjdGlvbnMuaW5zdGFuY2VzLmZpbmQocmVjb3JkLmluc3RhbmNlc1swXS5faWQpLmNvdW50KCkgPiAwKSB7XG4gICAgdGhyb3cgbmV3IE1ldGVvci5FcnJvcignZXJyb3IhJywgXCLmraTorrDlvZXlt7Llj5HotbfmtYHnqIvmraPlnKjlrqHmibnkuK3vvIzlvoXlrqHmibnnu5PmnZ/mlrnlj6/lj5HotbfkuIvkuIDmrKHlrqHmibnvvIFcIik7XG4gIH1cbn07XG5cbnV1Zmxvd01hbmFnZXJGb3JJbml0QXBwcm92YWwuZm9ybWF0RGF0ZSA9IGZ1bmN0aW9uKGRhdGUpIHtcbiAgcmV0dXJuIG1vbWVudChkYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xufTtcbiJdfQ== diff --git a/server/bundle/programs/server/packages/steedos_creator.js.map b/server/bundle/programs/server/packages/steedos_creator.js.map index 01d268b2fc..f3261ea4cd 100644 --- a/server/bundle/programs/server/packages/steedos_creator.js.map +++ b/server/bundle/programs/server/packages/steedos_creator.js.map @@ -1 +1 @@ -{"version":3,"sources":["meteor://💻app/packages/steedos:creator/checkNpm.js","meteor://💻app/packages/steedos_creator/core.coffee","meteor://💻app/core.coffee","meteor://💻app/packages/steedos_creator/lib/apps.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_recent_viewed.coffee","meteor://💻app/server/methods/object_recent_viewed.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_recent_record.coffee","meteor://💻app/server/methods/object_recent_record.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_listviews_options.coffee","meteor://💻app/server/methods/object_listviews_options.coffee","meteor://💻app/packages/steedos_creator/server/methods/report_data.coffee","meteor://💻app/server/methods/report_data.coffee","meteor://💻app/packages/steedos_creator/server/methods/user_tabular_settings.coffee","meteor://💻app/server/methods/user_tabular_settings.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_export2xml.coffee","meteor://💻app/server/methods/object_export2xml.coffee","meteor://💻app/packages/steedos_creator/server/methods/related_objects_records.coffee","meteor://💻app/server/methods/related_objects_records.coffee","meteor://💻app/packages/steedos_creator/server/methods/pending_space.coffee","meteor://💻app/server/methods/pending_space.coffee","meteor://💻app/packages/steedos_creator/server/publications/object.coffee","meteor://💻app/server/publications/object.coffee","meteor://💻app/packages/steedos_creator/server/publications/object_tabular.coffee","meteor://💻app/server/publications/object_tabular.coffee","meteor://💻app/packages/steedos_creator/server/publications/object_listviews.coffee","meteor://💻app/packages/steedos_creator/server/publications/user_tabular_settings.coffee","meteor://💻app/packages/steedos_creator/server/publications/related_objects_records.coffee","meteor://💻app/server/publications/related_objects_records.coffee","meteor://💻app/packages/steedos_creator/server/publications/space_user_info.coffee","meteor://💻app/packages/steedos_creator/server/publications/contacts_view_limits.coffee","meteor://💻app/server/publications/contacts_view_limits.coffee","meteor://💻app/packages/steedos_creator/server/publications/contacts_no_force_phone_users.coffee","meteor://💻app/server/publications/contacts_no_force_phone_users.coffee","meteor://💻app/packages/steedos_creator/server/publications/space_need_to_confirm.coffee","meteor://💻app/server/publications/space_need_to_confirm.coffee","meteor://💻app/packages/steedos_creator/server/lib/permission_manager.coffee","meteor://💻app/server/lib/permission_manager.coffee","meteor://💻app/packages/steedos_creator/server/lib/uuflowManagerForInitApproval.coffee","meteor://💻app/server/lib/uuflowManagerForInitApproval.coffee"],"names":["checkNpmVersions","module","link","v","busboy","Meteor","settings","cfs","aliyun","Creator","getSchema","object_name","ref","getObject","schema","getObjectHomeComponent","getObjectUrl","record_id","app_id","list_view","list_view_id","Session","get","getListView","_id","getRelativeUrl","getObjectAbsoluteUrl","Steedos","absoluteUrl","getObjectRouterUrl","getListViewUrl","url","getListViewRelativeUrl","getSwitchListUrl","getRelatedObjectUrl","related_object_name","related_field_name","getObjectLookupFieldOptions","is_deep","is_skip_hide","is_related","_object","_options","fields","icon","relatedObjects","_","forEach","f","k","hidden","type","push","label","value","r_object","reference_to","isString","f2","k2","getRelatedObjects","each","_this","_relatedObject","relatedObject","relatedOptions","relatedOption","foreign_key","name","getObjectFilterFieldOptions","permission_fields","getFields","include","test","indexOf","getObjectFieldOptions","getFiltersWithFilterFields","filters","filter_fields","length","n","field","required","findWhere","is_default","is_required","filterItem","matchField","find","getObjectRecord","select_fields","expand","collection","obj","record","ref1","ref2","isClient","Template","instance","odata","database_name","getCollection","findOne","getObjectRecordName","name_field_key","NAME_FIELD_KEY","getApp","appMenus","currentApp","menuItem","id","getAppDashboard","app","dashboard","Dashboards","apps","getAppDashboardComponent","getAppObjectNames","appObjects","isMobile","objects","mobile_objects","permissions","allowRead","getUrlWithToken","expressionFormData","hasQuerySymbol","linkStr","params","spaceId","userId","getUserCompanyIds","Accounts","_storedLoginToken","isExpression","parseSingleExpression","USER_CONTEXT","$","param","getAppMenu","menu_id","menus","getAppMenus","menu","getAppMenuUrlForInternet","path","getAppMenuUrl","target","curentAppMenus","children","loadAppsMenus","data","options","mobile","success","set","authRequest","creatorAppsSelector","assigned_apps","adminApp","creatorApps","sortedApps","key","is_creator","visible","sortBy","values","admin","visibleAppsSelector","includeAdmin","getVisibleApps","changeApp","_subApp","Object","assign","Apps","getVisibleAppsObjects","visibleObjectNames","flatten","pluck","filter","Objects","sort","sortingMethod","bind","uniq","getAppsObjects","tempObjects","concat","validateFilters","logic","e","errorMsg","filter_items","filter_length","flag","index","word","map","isEmpty","compact","replace","match","i","includes","w","error","console","log","toastr","formatFiltersToMongo","selector","Array","operation","option","reg","sub_selector","evaluateFormula","RegExp","isBetweenFilterOperation","getBetweenTimeBuiltinValues","formatFiltersToDev","logicTempFilters","is_logic_or","pop","SteedosFilters","formatLogicFiltersToDev","filter_logic","format_logic","x","_f","isArray","JSON","stringify","related_object_names","related_objects","unrelated_objects","getObjectRelateds","_collection_name","getPermissions","difference","related_object","isActive","allowReadFiles","getRelatedObjectNames","getRelatedObjectListActions","relatedObjectName","actions","getActions","action","on","disabled_actions","has","allow_customActions","keys","exclude_actions","getListViews","disabled_list_views","listViews","list_views","object","item","item_name","isDisabled","owner","fieldsName","unreadable_fields","getObjectFieldsName","isloading","bootstrapLoaded","convertSpecialCharacter","str","getDisabledFields","fieldName","autoform","disabled","omit","getHiddenFields","getFieldsWithNoGroup","group","getSortedFieldGroupNames","names","unique","getFieldsForGroup","groupName","getSystemBaseFields","getFieldsWithoutSystemBase","getFieldsWithoutOmit","pick","getFieldsInFirstLevel","firstLevelKeys","getFieldsForReorder","isSingle","_keys","childKeys","is_wide_1","is_wide_2","sc_1","sc_2","endsWith","is_wide","slice","isFilterValueEmpty","Number","isNaN","getFieldDataType","objectFields","result","data_type","isServer","getAllRelatedObjects","related_field","enable_files","formatIndex","array","indexName","isdocumentDB","background","datasources","documentDB","join","substring","appsByName","methods","space_id","collection_recent_viewed","current_recent_viewed","doc","space","update","$inc","count","$set","modified","Date","modified_by","insert","_makeNewID","o","ids","created","created_by","validate","async_recent_aggregate","recent_aggregate","search_object","_records","callback","Collections","object_recent_viewed","rawCollection","aggregate","$match","$group","maxCreated","$max","$sort","$limit","toArray","err","Error","isFunction","wrapAsync","searchText","_object_collection","_object_name_key","query","query_and","records","search_Keywords","split","keyword","subquery","$regex","trim","$and","$in","limit","_name","_object_name","record_object","record_object_collection","self","objectsByName","object_record","enable_search","update_filters","listview_id","filter_scope","object_listviews","direct","update_columns","columns","check","compoundFields","cursor","filterFields","childKey","objectField","splits","isCommonSpace","isSpaceAdmin","skip","fetch","compoundFieldItem","compoundFilterFields","itemKey","itemValue","referenceItem","setting","column_width","obj1","_id_actions","_mixFieldsData","_mixRelatedData","_writeXmlFile","fs","logger","mkdirp","xml2js","require","Logger","jsonObj","objName","builder","day","fileAddress","fileName","filePath","month","now","stream","xml","year","Builder","buildObject","Buffer","getFullYear","getMonth","getDate","__meteor_bootstrap__","serverDir","existsSync","sync","writeFile","mixBool","mixDate","mixDefault","objFields","field_name","date","dateStr","format","moment","relatedObjNames","relatedObjName","relatedCollection","relatedRecordList","relatedTableData","relatedObj","fieldsData","Export2xml","recordList","info","time","recordObj","timeEnd","related_objects_records","related_records","viewAllRecords","getPendingSpaceInfo","inviterId","inviterName","spaceName","db","users","spaces","inviter","refuseJoinSpace","space_users","invite_state","acceptJoinSpace","user_accepted","publish","publishComposite","tableName","_fields","object_colleciton","reference_fields","ready","String","Match","Optional","getObjectName","unblock","field_keys","_objectKeys","reference_field","parent","children_fields","p_k","reference_ids","reference_to_object","s_k","getProperty","reduce","isObject","shared","user","space_settings","permissionManagerForInitApproval","getFlowPermissions","flow_id","user_id","flow","my_permissions","org_ids","organizations","orgs_can_add","orgs_can_admin","orgs_can_monitor","users_can_add","users_can_admin","users_can_monitor","uuflowManagerForInitApproval","getFlow","parents","org","parent_id","perms","org_id","_eval","getFieldOdataValue","getFileFieldValue","getFormField","getFormTableField","getFormTableFieldCode","getFormTableSubField","getInstanceFieldValue","getObjectConfig","getObjectNameFieldKey","getRelatedObjectFieldCode","getRelateds","getSelectOrgValue","getSelectOrgValues","getSelectUserValue","getSelectUserValues","objectFind","objectFindOne","objectUpdate","objectql","objectApiName","toConfig","cb","then","resolve","reject","relatedObjectsKeys","relatedObjectsKey","startsWith","formTableFieldsCode","formTableFieldCode","formTableFields","code","formFields","ff","sf","tableField","subFieldCode","referenceToFieldName","_record","nameKey","su","userIds","sus","orgId","fullname","orgIds","orgs","recordFieldId","fType","files","newFile","FS","File","attachData","createReadStream","original","metadata","reason","size","instances","objField","formField","object_field","odataFieldValue","recordFieldValue","referenceToObjectName","selectFieldValue","reference_to_field","multiple","is_multiselect","formatDate","hasOwnProperty","check_authorization","req","authToken","hashedToken","_hashLoginToken","getSpace","flows","getSpaceUser","space_user","getSpaceUserOrgInfo","organization","organization_name","organization_fullname","isFlowEnabled","state","isFlowSpaceMatched","getForm","form_id","form","forms","getCategory","category_id","categories","checkSyncDirection","ow","syncDirection","object_workflows","sync_direction","create_instance","instance_from_client","user_info","appr_obj","approve_from_client","category","ins_obj","new_ins_id","relatedTablesInfo","space_user_org_info","start_step","trace_from_client","trace_obj","checkIsInApproval","permissionManager","flow_version","current","form_version","submitter","submitter_name","applicant","applicant_name","applicant_organization","applicant_organization_name","applicant_organization_fullname","applicant_company","company_id","is_archived","is_deleted","record_ids","Mongo","ObjectID","_str","is_finished","steps","step","step_type","start_date","trace","user_name","handler","handler_name","handler_organization","handler_organization_name","handler_organization_fullname","read_date","is_read","is_error","description","initiateValues","approves","traces","inbox_users","current_step_name","auto_remind","flow_name","category_name","initiateRecordInstanceInfo","initiateAttach","recordIds","flowId","fieldCodes","filterValues","objectName","recordId","tableFieldCodes","tableFieldMap","tableToRelatedMap","field_map","fm","gridCode","lookupFieldName","lookupFieldObj","lookupObjectRecord","oTableCode","oTableCodeReferenceField","oTableCodeReferenceFieldCode","oTableFieldCode","objectFieldName","objectFieldObjectName","objectLookupField","referenceToDoc","referenceToFieldValue","relatedObjectFieldCode","tableToRelatedMapKey","wTableCode","workflow_field","workflow_table_field_code","object_table_field_code","tfc","c","parse","tr","newTr","tfm","wTdCode","formTableField","relatedField","relatedFieldName","relatedRecords","relatedTableItems","tableCode","tableValues","_FROM_TABLE_CODE","warn","rr","tableValueItem","valueKey","fieldKey","formFieldKey","relatedObjectField","tableFieldValue","_table","_code","field_map_script","extend","evalFieldMapScript","objectId","func","script","insId","approveId","cf","versions","versionId","idx","owner_name","approve","locked","instance_state","initiateRelatedRecordInstanceInfo","tableItems"],"mappings":"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","file":"/packages/steedos_creator.js","sourcesContent":["import {\n\tcheckNpmVersions\n} from 'meteor/tmeasday:check-npm-versions';\ncheckNpmVersions({\n\tbusboy: \"^0.2.13\",\n\t\"xml2js\": \"^0.4.19\",\n}, 'steedos:creator');\n\nif (Meteor.settings && Meteor.settings.cfs && Meteor.settings.cfs.aliyun) {\n\tcheckNpmVersions({\n\t\t\"aliyun-sdk\": \"^1.11.12\"\n\t}, 'steedos:creator');\n}","\n\t# Creator.initApps()\n\n\n# Creator.initApps = ()->\n# \tif Meteor.isServer\n# \t\t_.each Creator.Apps, (app, app_id)->\n# \t\t\tdb_app = db.apps.findOne(app_id)\n# \t\t\tif !db_app\n# \t\t\t\tapp._id = app_id\n# \t\t\t\tdb.apps.insert(app)\n# else\n# \tapp._id = app_id\n# \tdb.apps.update({_id: app_id}, app)\n\nCreator.getSchema = (object_name)->\n\treturn Creator.getObject(object_name)?.schema\n\nCreator.getObjectHomeComponent = (object_name)->\n\t# if Meteor.isClient\n\t# \treturn BuilderCreator.pluginComponentSelector(BuilderCreator.store.getState(), \"ObjectHome\", object_name)\n\treturn false;\n\nCreator.getObjectUrl = (object_name, record_id, app_id) ->\n\tif !app_id\n\t\tapp_id = Session.get(\"app_id\")\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tlist_view = Creator.getListView(object_name, null)\n\tlist_view_id = list_view?._id\n\n\tif record_id\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id)\n\telse\n\t\tif Creator.getObjectHomeComponent(object_name)\n\t\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name)\n\t\telse\n\t\t\tif list_view_id\n\t\t\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id)\n\t\t\telse\n\t\t\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name)\n\nCreator.getObjectAbsoluteUrl = (object_name, record_id, app_id) ->\n\tif !app_id\n\t\tapp_id = Session.get(\"app_id\")\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tlist_view = Creator.getListView(object_name, null)\n\tlist_view_id = list_view?._id\n\n\tif record_id\n\t\treturn Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id, true)\n\telse\n\t\treturn Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id, true)\n\nCreator.getObjectRouterUrl = (object_name, record_id, app_id) ->\n\tif !app_id\n\t\tapp_id = Session.get(\"app_id\")\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tlist_view = Creator.getListView(object_name, null)\n\tlist_view_id = list_view?._id\n\n\tif record_id\n\t\treturn \"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id\n\telse\n\t\treturn \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id\n\nCreator.getListViewUrl = (object_name, app_id, list_view_id) ->\n\turl = Creator.getListViewRelativeUrl(object_name, app_id, list_view_id)\n\treturn Creator.getRelativeUrl(url)\n\nCreator.getListViewRelativeUrl = (object_name, app_id, list_view_id) ->\n\treturn \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id\n\nCreator.getSwitchListUrl = (object_name, app_id, list_view_id) ->\n\tif list_view_id\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + list_view_id + \"/list\")\n\telse\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/list/switch\")\n\nCreator.getRelatedObjectUrl = (object_name, app_id, record_id, related_object_name, related_field_name) ->\n\tif related_field_name\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid?related_field_name=\" + related_field_name)\n\telse\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid\")\n\nCreator.getObjectLookupFieldOptions = (object_name, is_deep, is_skip_hide, is_related)->\n\t_options = []\n\tunless object_name\n\t\treturn _options\n\t_object = Creator.getObject(object_name)\n\tfields = _object?.fields\n\ticon = _object?.icon\n\t_.forEach fields, (f, k)->\n\t\tif is_skip_hide and f.hidden\n\t\t\treturn\n\t\tif f.type == \"select\"\n\t\t\t_options.push {label: \"#{f.label || k}\", value: \"#{k}\", icon: icon}\n\t\telse\n\t\t\t_options.push {label: f.label || k, value: k, icon: icon}\n\tif is_deep\n\t\t_.forEach fields, (f, k)->\n\t\t\tif is_skip_hide and f.hidden\n\t\t\t\treturn\n\t\t\tif (f.type == \"lookup\" || f.type == \"master_detail\") && f.reference_to && _.isString(f.reference_to)\n\t\t\t\t# 不支持f.reference_to为function的情况,有需求再说\n\t\t\t\tr_object = Creator.getObject(f.reference_to)\n\t\t\t\tif r_object\n\t\t\t\t\t_.forEach r_object.fields, (f2, k2)->\n\t\t\t\t\t\t_options.push {label: \"#{f.label || k}=>#{f2.label || k2}\", value: \"#{k}.#{k2}\", icon: r_object?.icon}\n\tif is_related\n\t\trelatedObjects = Creator.getRelatedObjects(object_name)\n\t\t_.each relatedObjects, (_relatedObject)=>\n\t\t\trelatedOptions = Creator.getObjectLookupFieldOptions(_relatedObject.object_name, false, false, false)\n\t\t\trelatedObject = Creator.getObject(_relatedObject.object_name)\n\t\t\t_.each relatedOptions, (relatedOption)->\n\t\t\t\tif _relatedObject.foreign_key != relatedOption.value\n\t\t\t\t\t_options.push {label: \"#{relatedObject.label || relatedObject.name}=>#{relatedOption.label}\", value: \"#{relatedObject.name}.#{relatedOption.value}\", icon: relatedObject?.icon}\n\treturn _options\n\n# 统一为对象object_name提供可用于过虑器过虑字段\nCreator.getObjectFilterFieldOptions = (object_name)->\n\t_options = []\n\tunless object_name\n\t\treturn _options\n\t_object = Creator.getObject(object_name)\n\tfields = _object?.fields\n\tpermission_fields = Creator.getFields(object_name)\n\ticon = _object?.icon\n\t_.forEach fields, (f, k)->\n\t\t# hidden,grid等类型的字段,不需要过滤\n\t\tif !_.include([\"grid\",\"object\", \"[Object]\", \"[object]\", \"Object\", \"avatar\", \"image\", \"markdown\", \"html\"], f.type) and !f.hidden\n\t\t\t# filters.$.field及flow.current等子字段也不需要过滤\n\t\t\tif !/\\w+\\./.test(k) and _.indexOf(permission_fields, k) > -1\n\t\t\t\t_options.push {label: f.label || k, value: k, icon: icon}\n\n\treturn _options\n\nCreator.getObjectFieldOptions = (object_name)->\n\t_options = []\n\tunless object_name\n\t\treturn _options\n\t_object = Creator.getObject(object_name)\n\tfields = _object?.fields\n\tpermission_fields = Creator.getFields(object_name)\n\ticon = _object?.icon\n\t_.forEach fields, (f, k)->\n\t\tif !_.include([\"grid\",\"object\", \"[Object]\", \"[object]\", \"Object\", \"markdown\", \"html\"], f.type)\n\t\t\tif !/\\w+\\./.test(k) and _.indexOf(permission_fields, k) > -1\n\t\t\t\t_options.push {label: f.label || k, value: k, icon: icon}\n\treturn _options\n\n###\nfilters: 要转换的filters\nfields: 对象字段\nfilter_fields: 默认过滤字段,支持字符串数组和对象数组两种格式,如:['filed_name1','filed_name2'],[{field:'filed_name1',required:true}]\n处理逻辑: 把filters中存在于filter_fields的过滤条件增加每项的is_default、is_required属性,不存在于filter_fields的过滤条件对应的移除每项的相关属性\n返回结果: 处理后的filters\n###\nCreator.getFiltersWithFilterFields = (filters, fields, filter_fields)->\n\tunless filters\n\t\tfilters = []\n\tunless filter_fields\n\t\tfilter_fields = []\n\tif filter_fields?.length\n\t\tfilter_fields.forEach (n)->\n\t\t\tif _.isString(n)\n\t\t\t\tn = \n\t\t\t\t\tfield: n,\n\t\t\t\t\trequired: false\n\t\t\tif fields[n.field] and !_.findWhere(filters,{field:n.field})\n\t\t\t\tfilters.push\n\t\t\t\t\tfield: n.field,\n\t\t\t\t\tis_default: true,\n\t\t\t\t\tis_required: n.required\n\tfilters.forEach (filterItem)->\n\t\tmatchField = filter_fields.find (n)-> return n == filterItem.field or n.field == filterItem.field\n\t\tif _.isString(matchField)\n\t\t\tmatchField = \n\t\t\t\tfield: matchField,\n\t\t\t\trequired: false\n\t\tif matchField\n\t\t\tfilterItem.is_default = true\n\t\t\tfilterItem.is_required = matchField.required\n\t\telse\n\t\t\tdelete filterItem.is_default\n\t\t\tdelete filterItem.is_required\n\treturn filters\n\nCreator.getObjectRecord = (object_name, record_id, select_fields, expand)->\n\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tif !record_id\n\t\trecord_id = Session.get(\"record_id\")\n\tif Meteor.isClient\n\t\tif object_name == Session.get(\"object_name\") && record_id == Session.get(\"record_id\")\n\t\t\tif Template.instance()?.record\n\t\t\t\treturn Template.instance()?.record?.get()\n\t\telse\n\t\t\treturn Creator.odata.get(object_name, record_id, select_fields, expand)\n\n\tobj = Creator.getObject(object_name)\n\n\tif obj.database_name == \"meteor\" || !obj.database_name\n\t\tcollection = Creator.getCollection(object_name)\n\t\tif collection\n\t\t\trecord = collection.findOne(record_id)\n\t\t\treturn record\n\telse if object_name && record_id\n\t\treturn Creator.odata.get(object_name, record_id, select_fields, expand)\n\nCreator.getObjectRecordName = (record, object_name)->\n\tunless record\n\t\trecord = Creator.getObjectRecord()\n\tif record\n\t\t# 显示组织列表时,特殊处理name_field_key为name字段\n\t\tname_field_key = if object_name == \"organizations\" then \"name\" else Creator.getObject(object_name)?.NAME_FIELD_KEY\n\t\tif record and name_field_key\n\t\t\treturn record.label || record[name_field_key]\n\nCreator.getApp = (app_id)->\n\tappMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n\tunless appMenus\n\t\treturn {}\n\tcurrentApp = appMenus.find (menuItem) ->\n\t\treturn menuItem.id == app_id\n\treturn currentApp\n\nCreator.getAppDashboard = (app_id)->\n\tapp = Creator.getApp(app_id)\n\tif !app\n\t\treturn\n\tdashboard = null\n\t_.each Creator.Dashboards, (v, k)->\n\t\tif v.apps?.indexOf(app._id) > -1\n\t\t\tdashboard = v;\n\treturn dashboard;\n\nCreator.getAppDashboardComponent = (app_id)->\n\tapp = Creator.getApp(app_id)\n\tif !app || true\n\t\treturn\n\t# return BuilderCreator.pluginComponentSelector(BuilderCreator.store.getState(), \"Dashboard\", app._id);\n\nCreator.getAppObjectNames = (app_id)->\n\tapp = Creator.getApp(app_id)\n\tif !app\n\t\treturn\n\tisMobile = Steedos.isMobile()\n\tappObjects = if isMobile then app.mobile_objects else app.objects\n\tobjects = []\n\tif app\n\t\t_.each appObjects, (v)->\n\t\t\tobj = Creator.getObject(v)\n\t\t\tif obj?.permissions.get().allowRead\n\t\t\t\tobjects.push v\n\treturn objects\n\nCreator.getUrlWithToken = (url, expressionFormData) ->\n\t# 给url时拼接当前用户token相关信息用于登录验证,支持配置表达式\n\tparams = {};\n\tparams[\"X-Space-Id\"] = Steedos.spaceId()\n\tparams[\"X-User-Id\"] = Steedos.userId();\n\tparams[\"X-Company-Ids\"] = Steedos.getUserCompanyIds();\n\tparams[\"X-Auth-Token\"] = Accounts._storedLoginToken();\n\tif Steedos.isExpression(url)\n\t\turl = Steedos.parseSingleExpression(url, expressionFormData, \"#\", Creator.USER_CONTEXT)\n\t# 外部链接地址中可能会带有#号,比如/builder/?p_ids=619383545b2e9a72ec0558b3#/page/public/test\n\t# 此时url中已经在#号前面出现了一个?号,这个问号不可以被识别为url参数,只有#号后面的?号才应该被识别为url参数\n\thasQuerySymbol = /(\\#.+\\?)|(\\?[^#]*$)/g.test(url)\n\tlinkStr = if hasQuerySymbol then \"&\" else \"?\"\n\treturn \"#{url}#{linkStr}#{$.param(params)}\"\n\nCreator.getAppMenu = (app_id, menu_id)->\n\tmenus = Creator.getAppMenus(app_id)\n\treturn menus && menus.find (menu)-> return menu.id == menu_id\n\nCreator.getAppMenuUrlForInternet = (menu)->\n\t# 当tabs类型为url时,按外部链接处理,支持配置表达式并加上统一的url参数\n\treturn Creator.getUrlWithToken menu.path, menu\n\nCreator.getAppMenuUrl = (menu)->\n\turl = menu.path\n\tif menu.type == \"url\"\n\t\tif menu.target\n\t\t\treturn Creator.getAppMenuUrlForInternet(menu)\n\t\telse\n\t\t\t# 在iframe中显示url界面\n\t\t\treturn \"/app/-/tab_iframe/#{menu.id}\"\n\telse\n\t\treturn menu.path\n\nCreator.getAppMenus = (app_id)->\n\tappMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n\tunless appMenus\n\t\treturn []\n\tcurentAppMenus = appMenus.find (menuItem) ->\n\t\treturn menuItem.id == app_id\n\tif curentAppMenus\n\t\treturn curentAppMenus.children\n\nCreator.loadAppsMenus = ()->\n\tisMobile = Steedos.isMobile()\n\tdata = { }\n\tif isMobile\n\t\tdata.mobile = isMobile\n\toptions = { \n\t\ttype: 'get', \n\t\tdata: data, \n\t\tsuccess: (data)->\n\t\t\tSession.set(\"app_menus\", data);\n\t }\n\tSteedos?.authRequest \"/service/api/apps/menus\", options\n\nCreator.creatorAppsSelector = (apps, assigned_apps) ->\n\tadminApp = undefined\n\tsortedApps = undefined\n\t_.each apps, (app, key) ->\n\t\tif !app._id\n\t\t\tapp._id = key\n\t\tif app.is_creator\n\t\t\t# 不需要isSpaceAdmin逻辑\n\t\t\t# if (isSpaceAdmin) {\n\t\t\t#\t\t app.visible = true;\n\t\t\t# }\n\t\telse\n\t\t\t# 非creator应该一律不显示\n\t\t\tapp.visible = false\n\t\treturn\n\tsortedApps = _.sortBy(_.values(apps), 'sort')\n\tcreatorApps = {}\n\tadminApp = {}\n\t# 按钮sort排序次序设置Creator.Apps值\n\t_.each sortedApps, (n) ->\n\t\tif n._id == 'admin'\n\t\t\tadminApp = n\n\t\telse\n\t\t\tcreatorApps[n._id] = n\n\t# admin菜单显示在最后\n\tcreatorApps.admin = adminApp\n\tif assigned_apps.length\n\t\t_.each creatorApps, (app, key) ->\n\t\t\tif assigned_apps.indexOf(key) > -1\n\t\t\t\tapp.visible = app.is_creator\n\t\t\telse\n\t\t\t\tapp.visible = false\n\t\t\treturn\n\tcreatorApps\n\nCreator.visibleAppsSelector = (creatorApps, includeAdmin = true) ->\n\tapps = []\n\t_.each creatorApps, (v, k) ->\n\t\tif v.visible != false and v._id != 'admin' or includeAdmin and v._id == 'admin'\n\t\t\tapps.push v\n\t\treturn\n\tapps\n\nCreator.getVisibleApps = (includeAdmin)->\n\tchangeApp = Creator._subApp.get();\n\tcreatorApps = Object.assign({}, Creator.Apps, {apps: changeApp});\n\treturn Creator.visibleAppsSelector(creatorApps, includeAdmin)\n\nCreator.getVisibleAppsObjects = ()->\n\tapps = Creator.getVisibleApps()\n\tvisibleObjectNames = _.flatten(_.pluck(apps,'objects'))\n\tobjects = _.filter Creator.Objects, (obj)->\n\t\tif visibleObjectNames.indexOf(obj.name) < 0\n\t\t\treturn false\n\t\telse\n\t\t\treturn true\n\tobjects = objects.sort(Creator.sortingMethod.bind({key:\"label\"}))\n\tobjects = _.pluck(objects,'name')\n\treturn _.uniq objects\n\nCreator.getAppsObjects = ()->\n\tobjects = []\n\ttempObjects = []\n\t_.forEach Creator.Apps, (app)->\n\t\ttempObjects = _.filter app.objects, (obj)->\n\t\t\treturn !obj.hidden\n\t\tobjects = objects.concat(tempObjects)\n\treturn _.uniq objects\n\nCreator.validateFilters = (filters, logic)->\n\tfilter_items = _.map filters, (obj) ->\n\t\tif _.isEmpty(obj)\n\t\t\treturn false\n\t\telse\n\t\t\treturn obj\n\tfilter_items = _.compact(filter_items)\n\terrorMsg = \"\"\n\tfilter_length = filter_items.length\n\tif logic\n\t\t# 格式化filter\n\t\tlogic = logic.replace(/\\n/g, \"\").replace(/\\s+/g, \" \")\n\n\t\t# 判断特殊字符\n\t\tif /[._\\-!+]+/ig.test(logic)\n\t\t\terrorMsg = \"含有特殊字符。\"\n\n\t\tif !errorMsg\n\t\t\tindex = logic.match(/\\d+/ig)\n\t\t\tif !index\n\t\t\t\terrorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\"\n\t\t\telse\n\t\t\t\tindex.forEach (i)->\n\t\t\t\t\tif i < 1 or i > filter_length\n\t\t\t\t\t\terrorMsg = \"您的筛选条件引用了未定义的筛选器:#{i}。\"\n\n\t\t\t\tflag = 1\n\t\t\t\twhile flag <= filter_length\n\t\t\t\t\tif !index.includes(\"#{flag}\")\n\t\t\t\t\t\terrorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\"\n\t\t\t\t\tflag++;\n\n\t\tif !errorMsg\n\t\t\t# 判断是否有非法英文字符\n\t\t\tword = logic.match(/[a-zA-Z]+/ig)\n\t\t\tif word\n\t\t\t\tword.forEach (w)->\n\t\t\t\t\tif !/^(and|or)$/ig.test(w)\n\t\t\t\t\t\terrorMsg = \"检查您的高级筛选条件中的拼写。\"\n\n\t\tif !errorMsg\n\t\t\t# 判断格式是否正确\n\t\t\ttry\n\t\t\t\tCreator.eval(logic.replace(/and/ig, \"&&\").replace(/or/ig, \"||\"))\n\t\t\tcatch e\n\t\t\t\terrorMsg = \"您的筛选器中含有特殊字符\"\n\n\t\t\tif /(AND)[^()]+(OR)/ig.test(logic) || /(OR)[^()]+(AND)/ig.test(logic)\n\t\t\t\terrorMsg = \"您的筛选器必须在连续性的 AND 和 OR 表达式前后使用括号。\"\n\tif errorMsg\n\t\tconsole.log \"error\", errorMsg\n\t\tif Meteor.isClient\n\t\t\ttoastr.error(errorMsg)\n\t\treturn false\n\telse\n\t\treturn true\n\n# \"=\", \"<>\", \">\", \">=\", \"<\", \"<=\", \"startswith\", \"contains\", \"notcontains\".\n###\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n###\nCreator.formatFiltersToMongo = (filters, options)->\n\tunless filters?.length\n\t\treturn\n\t# 当filters不是[Array]类型而是[Object]类型时,进行格式转换\n\tunless filters[0] instanceof Array\n\t\tfilters = _.map filters, (obj)->\n\t\t\treturn [obj.field, obj.operation, obj.value]\n\tselector = []\n\t_.each filters, (filter)->\n\t\tfield = filter[0]\n\t\toption = filter[1]\n\t\tif Meteor.isClient\n\t\t\tvalue = Creator.evaluateFormula(filter[2])\n\t\telse\n\t\t\tvalue = Creator.evaluateFormula(filter[2], null, options)\n\t\tsub_selector = {}\n\t\tsub_selector[field] = {}\n\t\tif option == \"=\"\n\t\t\tsub_selector[field][\"$eq\"] = value\n\t\telse if option == \"<>\"\n\t\t\tsub_selector[field][\"$ne\"] = value\n\t\telse if option == \">\"\n\t\t\tsub_selector[field][\"$gt\"] = value\n\t\telse if option == \">=\"\n\t\t\tsub_selector[field][\"$gte\"] = value\n\t\telse if option == \"<\"\n\t\t\tsub_selector[field][\"$lt\"] = value\n\t\telse if option == \"<=\"\n\t\t\tsub_selector[field][\"$lte\"] = value\n\t\telse if option == \"startswith\"\n\t\t\treg = new RegExp(\"^\" + value, \"i\")\n\t\t\tsub_selector[field][\"$regex\"] = reg\n\t\telse if option == \"contains\"\n\t\t\treg = new RegExp(value, \"i\")\n\t\t\tsub_selector[field][\"$regex\"] = reg\n\t\telse if option == \"notcontains\"\n\t\t\treg = new RegExp(\"^((?!\" + value + \").)*$\", \"i\")\n\t\t\tsub_selector[field][\"$regex\"] = reg\n\t\tselector.push sub_selector\n\treturn selector\n\nCreator.isBetweenFilterOperation = (operation)->\n\treturn operation == \"between\" or !!Creator.getBetweenTimeBuiltinValues(true)?[operation]\n\n###\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\n\textend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n###\nCreator.formatFiltersToDev = (filters, object_name, options)->\n\tunless filters.length\n\t\treturn\n\tif options?.is_logic_or\n\t\t# 如果is_logic_or为true,为filters第一层元素增加or间隔\n\t\tlogicTempFilters = []\n\t\tfilters.forEach (n)->\n\t\t\tlogicTempFilters.push(n)\n\t\t\tlogicTempFilters.push(\"or\")\n\t\tlogicTempFilters.pop()\n\t\tfilters = logicTempFilters\n\tselector = SteedosFilters.formatFiltersToDev(filters, Creator.USER_CONTEXT)\n\treturn selector\n\n###\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n###\nCreator.formatLogicFiltersToDev = (filters, filter_logic, options)->\n\tformat_logic = filter_logic.replace(/\\(\\s+/ig, \"(\").replace(/\\s+\\)/ig, \")\").replace(/\\(/g, \"[\").replace(/\\)/g, \"]\").replace(/\\s+/g, \",\").replace(/(and|or)/ig, \"'$1'\")\n\tformat_logic = format_logic.replace(/(\\d)+/ig, (x)->\n\t\t_f = filters[x-1]\n\t\tfield = _f.field\n\t\toption = _f.operation\n\t\tif Meteor.isClient\n\t\t\tvalue = Creator.evaluateFormula(_f.value)\n\t\telse\n\t\t\tvalue = Creator.evaluateFormula(_f.value, null, options)\n\t\tsub_selector = []\n\t\tif _.isArray(value) == true\n\t\t\tif option == \"=\"\n\t\t\t\t_.each value, (v)->\n\t\t\t\t\tsub_selector.push [field, option, v], \"or\"\n\t\t\telse if option == \"<>\"\n\t\t\t\t_.each value, (v)->\n\t\t\t\t\tsub_selector.push [field, option, v], \"and\"\n\t\t\telse\n\t\t\t\t_.each value, (v)->\n\t\t\t\t\tsub_selector.push [field, option, v], \"or\"\n\t\t\tif sub_selector[sub_selector.length - 1] == \"and\" || sub_selector[sub_selector.length - 1] == \"or\"\n\t\t\t\tsub_selector.pop()\n\t\telse\n\t\t\tsub_selector = [field, option, value]\n\t\t# console.log \"sub_selector\", sub_selector\n\t\treturn JSON.stringify(sub_selector)\n\t)\n\tformat_logic = \"[#{format_logic}]\"\n\treturn Creator.eval(format_logic)\n\nCreator.getRelatedObjects = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\n\trelated_object_names = []\n\t_object = Creator.getObject(object_name)\n\n\tif !_object\n\t\treturn related_object_names\n\n#\trelated_object_names = _.pluck(_object.related_objects,\"object_name\")\n\n\trelated_objects = Creator.getObjectRelateds(_object._collection_name)\n\n\trelated_object_names = _.pluck(related_objects,\"object_name\")\n\tif related_object_names?.length == 0\n\t\treturn related_object_names\n\n\tpermissions = Creator.getPermissions(object_name, spaceId, userId)\n\tunrelated_objects = permissions.unrelated_objects\n\n\trelated_object_names = _.difference related_object_names, unrelated_objects\n\treturn _.filter related_objects, (related_object)->\n\t\trelated_object_name = related_object.object_name\n\t\tisActive = related_object_names.indexOf(related_object_name) > -1\n\t\t# related_object_name = if related_object_name == \"cfs_files_filerecord\" then \"cfs.files.filerecord\" else related_object_name\n\t\tallowRead = Creator.getPermissions(related_object_name, spaceId, userId)?.allowRead\n\t\tif related_object_name == \"cms_files\"\n\t\t\tallowRead = allowRead && permissions.allowReadFiles\n\t\treturn isActive and allowRead\n\nCreator.getRelatedObjectNames = (object_name, spaceId, userId)->\n\trelated_objects = Creator.getRelatedObjects(object_name, spaceId, userId)\n\treturn _.pluck(related_objects,\"object_name\")\n\nCreator.getRelatedObjectListActions = (relatedObjectName, spaceId, userId)->\n\tactions = Creator.getActions(relatedObjectName, spaceId, userId)\n\tactions = _.filter actions, (action)->\n\t\tif action.name == \"standard_follow\"\n\t\t\treturn false\n\t\tif action.name == \"standard_query\"\n\t\t\treturn false\n\t\tif action.on == \"list\"\n\t\t\tif typeof action.visible == \"function\"\n\t\t\t\treturn action.visible()\n\t\t\telse\n\t\t\t\treturn action.visible\n\t\telse\n\t\t\treturn false\n\treturn actions\n\nCreator.getActions = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\n\tobj = Creator.getObject(object_name)\n\n\tif !obj\n\t\treturn\n\n\tpermissions = Creator.getPermissions(object_name, spaceId, userId)\n\tdisabled_actions = permissions.disabled_actions\n\tactions = _.sortBy(_.values(obj.actions) , 'sort');\n\n\tif _.has(obj, 'allow_customActions')\n\t\tactions = _.filter actions, (action)->\n\t\t\treturn _.include(obj.allow_customActions, action.name) || _.include(_.keys(Creator.getObject('base').actions) || {}, action.name)\n\tif _.has(obj, 'exclude_actions')\n\t\tactions = _.filter actions, (action)->\n\t\t\treturn !_.include(obj.exclude_actions, action.name)\n\n\t_.each actions, (action)->\n\t\t# 手机上只显示编辑按钮,其他的放到折叠下拉菜单中\n\t\tif Steedos.isMobile() && [\"record\", \"record_only\"].indexOf(action.on) > -1 && action.name != 'standard_edit'\n\t\t\tif action.on == \"record_only\"\n\t\t\t\taction.on = 'record_only_more'\n\t\t\telse\n\t\t\t\taction.on = 'record_more'\n\n\tif Steedos.isMobile() && [\"cms_files\", \"cfs.files.filerecord\"].indexOf(object_name) > -1\n\t\t# 附件特殊处理,下载按钮放在主菜单,编辑按钮放到底下折叠下拉菜单中\n\t\tactions.find((n)-> return n.name == \"standard_edit\")?.on = \"record_more\"\n\t\tactions.find((n)-> return n.name == \"download\")?.on = \"record\"\n\n\tactions = _.filter actions, (action)->\n\t\treturn _.indexOf(disabled_actions, action.name) < 0\n\n\treturn actions\n\n///\n\t返回当前用户有权限访问的所有list_view,包括分享的,用户自定义非分享的(除非owner变了),以及默认的其他视图\n\t注意Creator.getPermissions函数中是不会有用户自定义非分享的视图的,所以Creator.getPermissions函数中拿到的结果不全,并不是当前用户能看到所有视图\n///\nCreator.getListViews = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\t\n\tunless object_name\n\t\treturn\n\n\tobject = Creator.getObject(object_name)\n\n\tif !object\n\t\treturn\n\n\tdisabled_list_views = Creator.getPermissions(object_name, spaceId, userId)?.disabled_list_views || []\n\n\tlist_views = []\n\n\tisMobile = Steedos.isMobile()\n\n\t_.each object.list_views, (item, item_name)->\n\t\titem.name = item_name\n\n\tlistViews = _.sortBy(_.values(object.list_views) , 'sort_no');\n\n\t_.each listViews, (item)->\n\t\tif isMobile and item.type == \"calendar\"\n\t\t\t# 手机上先不显示日历视图\n\t\t\treturn\n\t\tif item.name != \"default\"\n\t\t\tisDisabled = _.indexOf(disabled_list_views, item.name) > -1 || (item._id && _.indexOf(disabled_list_views, item._id) > -1)\n\t\t\tif !isDisabled || item.owner == userId\n\t\t\t\tlist_views.push item\n\treturn list_views\n\n# 前台理论上不应该调用该函数,因为字段的权限都在Creator.getObject(object_name).fields的相关属性中有标识了\nCreator.getFields = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\n\tfieldsName = Creator.getObjectFieldsName(object_name)\n\tunreadable_fields = Creator.getPermissions(object_name, spaceId, userId)?.unreadable_fields\n\treturn _.difference(fieldsName, unreadable_fields)\n\nCreator.isloading = ()->\n\treturn !Creator.bootstrapLoaded.get()\n\nCreator.convertSpecialCharacter = (str)->\n\treturn str.replace(/([\\^\\$\\(\\)\\*\\+\\?\\.\\\\\\|\\[\\]\\{\\}])/g, \"\\\\$1\")\n\n# 计算fields相关函数\n# START\nCreator.getDisabledFields = (schema)->\n\tfields = _.map(schema, (field, fieldName) ->\n\t\treturn field.autoform and field.autoform.disabled and !field.autoform.omit and fieldName\n\t)\n\tfields = _.compact(fields)\n\treturn fields\n\nCreator.getHiddenFields = (schema)->\n\tfields = _.map(schema, (field, fieldName) ->\n\t\treturn field.autoform and field.autoform.type == \"hidden\" and !field.autoform.omit and fieldName\n\t)\n\tfields = _.compact(fields)\n\treturn fields\n\nCreator.getFieldsWithNoGroup = (schema)->\n\tfields = _.map(schema, (field, fieldName) ->\n\t\treturn (!field.autoform or !field.autoform.group or field.autoform.group == \"-\") and (!field.autoform or field.autoform.type != \"hidden\") and fieldName\n\t)\n\tfields = _.compact(fields)\n\treturn fields\n\nCreator.getSortedFieldGroupNames = (schema)->\n\tnames = _.map(schema, (field) ->\n \t\treturn field.autoform and field.autoform.group != \"-\" and field.autoform.group\n\t)\n\tnames = _.compact(names)\n\tnames = _.unique(names)\n\treturn names\n\nCreator.getFieldsForGroup = (schema, groupName) ->\n \tfields = _.map(schema, (field, fieldName) ->\n \treturn field.autoform and field.autoform.group == groupName and field.autoform.type != \"hidden\" and fieldName\n \t)\n \tfields = _.compact(fields)\n \treturn fields\n\nCreator.getSystemBaseFields = () ->\n\treturn [\"created\", \"created_by\", \"modified\", \"modified_by\"]\n\nCreator.getFieldsWithoutSystemBase = (keys) ->\n\treturn _.difference(keys, Creator.getSystemBaseFields());\n\nCreator.getFieldsWithoutOmit = (schema, keys) ->\n\tkeys = _.map(keys, (key) ->\n\t\tfield = _.pick(schema, key)\n\t\tif field[key].autoform?.omit\n\t\t\treturn false\n\t\telse\n\t\t\treturn key\n\t)\n\tkeys = _.compact(keys)\n\treturn keys\n\nCreator.getFieldsInFirstLevel = (firstLevelKeys, keys) ->\n\tkeys = _.map(keys, (key) ->\n\t\tif _.indexOf(firstLevelKeys, key) > -1\n\t\t\treturn key\n\t\telse\n\t\t\treturn false\n\t)\n\tkeys = _.compact(keys)\n\treturn keys\n\nCreator.getFieldsForReorder = (schema, keys, isSingle) ->\n\tfields = []\n\ti = 0\n\t_keys = _.filter(keys, (key)->\n\t\treturn !key.endsWith('_endLine')\n\t);\n\twhile i < _keys.length\n\t\tsc_1 = _.pick(schema, _keys[i])\n\t\tsc_2 = _.pick(schema, _keys[i+1])\n\n\t\tis_wide_1 = false\n\t\tis_wide_2 = false\n\n#\t\tis_range_1 = false\n#\t\tis_range_2 = false\n\n\t\t_.each sc_1, (value) ->\n\t\t\tif value.autoform?.is_wide || value.autoform?.type == \"table\"\n\t\t\t\tis_wide_1 = true\n\n#\t\t\tif value.autoform?.is_range\n#\t\t\t\tis_range_1 = true\n\n\t\t_.each sc_2, (value) ->\n\t\t\tif value.autoform?.is_wide || value.autoform?.type == \"table\"\n\t\t\t\tis_wide_2 = true\n\n#\t\t\tif value.autoform?.is_range\n#\t\t\t\tis_range_2 = true\n\n\t\tif Steedos.isMobile()\n\t\t\tis_wide_1 = true\n\t\t\tis_wide_2 = true\n\n\t\tif isSingle\n\t\t\tfields.push _keys.slice(i, i+1)\n\t\t\ti += 1\n\t\telse\n#\t\t\tif !is_range_1 && is_range_2\n#\t\t\t\tchildKeys = _keys.slice(i, i+1)\n#\t\t\t\tchildKeys.push undefined\n#\t\t\t\tfields.push childKeys\n#\t\t\t\ti += 1\n#\t\t\telse\n\t\t\tif is_wide_1\n\t\t\t\tfields.push _keys.slice(i, i+1)\n\t\t\t\ti += 1\n\t\t\telse if !is_wide_1 and is_wide_2\n\t\t\t\tchildKeys = _keys.slice(i, i+1)\n\t\t\t\tchildKeys.push undefined\n\t\t\t\tfields.push childKeys\n\t\t\t\ti += 1\n\t\t\telse if !is_wide_1 and !is_wide_2\n\t\t\t\tchildKeys = _keys.slice(i, i+1)\n\t\t\t\tif _keys[i+1]\n\t\t\t\t\tchildKeys.push _keys[i+1]\n\t\t\t\telse\n\t\t\t\t\tchildKeys.push undefined\n\t\t\t\tfields.push childKeys\n\t\t\t\ti += 2\n\n\treturn fields\n\nCreator.isFilterValueEmpty = (v) ->\n\treturn typeof v == \"undefined\" || v == null || Number.isNaN(v) || v.length == 0\n\nCreator.getFieldDataType = (objectFields, key)->\n\tif objectFields and key\n\t\tresult = objectFields[key]?.type\n\t\tif [\"formula\", \"summary\"].indexOf(result) > -1\n\t\t\tresult = objectFields[key].data_type\n\t\t# else if result == \"select\" and objectFields[key]?.data_type and objectFields[key].data_type != \"text\"\n\t\t# \tresult = objectFields[key].data_type\n\t\treturn result\n\telse\n\t\treturn \"text\"\n\n# END\n\nif Meteor.isServer\n\tCreator.getAllRelatedObjects = (object_name)->\n\t\trelated_object_names = []\n\t\t_.each Creator.Objects, (related_object, related_object_name)->\n\t\t\t_.each related_object.fields, (related_field, related_field_name)->\n\t\t\t\tif related_field.type == \"master_detail\" and related_field.reference_to and related_field.reference_to == object_name\n\t\t\t\t\trelated_object_names.push related_object_name\n\n\t\tif Creator.getObject(object_name).enable_files\n\t\t\trelated_object_names.push \"cms_files\"\n\n\t\treturn related_object_names\n\nif Meteor.isServer\n\tSteedos.formatIndex = (array) ->\n\t\tobject = {\n \tbackground: true\n \t};\n\t\tisdocumentDB = Meteor.settings?.datasources?.default?.documentDB || false;\n\t\tif isdocumentDB\n\t\t\tif array.length > 0\n\t\t\t\tindexName = array.join(\".\");\n\t\t\t\tobject.name = indexName;\n\t\t\t\t\n\t\t\t\tif (indexName.length > 52)\n\t\t\t\t\tobject.name = indexName.substring(0,52);\n\n\t\treturn object;","Creator.getSchema = function(object_name) {\n var ref;\n return (ref = Creator.getObject(object_name)) != null ? ref.schema : void 0;\n};\n\nCreator.getObjectHomeComponent = function(object_name) {\n return false;\n};\n\nCreator.getObjectUrl = function(object_name, record_id, app_id) {\n var list_view, list_view_id;\n if (!app_id) {\n app_id = Session.get(\"app_id\");\n }\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n list_view = Creator.getListView(object_name, null);\n list_view_id = list_view != null ? list_view._id : void 0;\n if (record_id) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id);\n } else {\n if (Creator.getObjectHomeComponent(object_name)) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name);\n } else {\n if (list_view_id) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id);\n } else {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name);\n }\n }\n }\n};\n\nCreator.getObjectAbsoluteUrl = function(object_name, record_id, app_id) {\n var list_view, list_view_id;\n if (!app_id) {\n app_id = Session.get(\"app_id\");\n }\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n list_view = Creator.getListView(object_name, null);\n list_view_id = list_view != null ? list_view._id : void 0;\n if (record_id) {\n return Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id, true);\n } else {\n return Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id, true);\n }\n};\n\nCreator.getObjectRouterUrl = function(object_name, record_id, app_id) {\n var list_view, list_view_id;\n if (!app_id) {\n app_id = Session.get(\"app_id\");\n }\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n list_view = Creator.getListView(object_name, null);\n list_view_id = list_view != null ? list_view._id : void 0;\n if (record_id) {\n return \"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id;\n } else {\n return \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id;\n }\n};\n\nCreator.getListViewUrl = function(object_name, app_id, list_view_id) {\n var url;\n url = Creator.getListViewRelativeUrl(object_name, app_id, list_view_id);\n return Creator.getRelativeUrl(url);\n};\n\nCreator.getListViewRelativeUrl = function(object_name, app_id, list_view_id) {\n return \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id;\n};\n\nCreator.getSwitchListUrl = function(object_name, app_id, list_view_id) {\n if (list_view_id) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + list_view_id + \"/list\");\n } else {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/list/switch\");\n }\n};\n\nCreator.getRelatedObjectUrl = function(object_name, app_id, record_id, related_object_name, related_field_name) {\n if (related_field_name) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid?related_field_name=\" + related_field_name);\n } else {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid\");\n }\n};\n\nCreator.getObjectLookupFieldOptions = function(object_name, is_deep, is_skip_hide, is_related) {\n var _object, _options, fields, icon, relatedObjects;\n _options = [];\n if (!object_name) {\n return _options;\n }\n _object = Creator.getObject(object_name);\n fields = _object != null ? _object.fields : void 0;\n icon = _object != null ? _object.icon : void 0;\n _.forEach(fields, function(f, k) {\n if (is_skip_hide && f.hidden) {\n return;\n }\n if (f.type === \"select\") {\n return _options.push({\n label: \"\" + (f.label || k),\n value: \"\" + k,\n icon: icon\n });\n } else {\n return _options.push({\n label: f.label || k,\n value: k,\n icon: icon\n });\n }\n });\n if (is_deep) {\n _.forEach(fields, function(f, k) {\n var r_object;\n if (is_skip_hide && f.hidden) {\n return;\n }\n if ((f.type === \"lookup\" || f.type === \"master_detail\") && f.reference_to && _.isString(f.reference_to)) {\n r_object = Creator.getObject(f.reference_to);\n if (r_object) {\n return _.forEach(r_object.fields, function(f2, k2) {\n return _options.push({\n label: (f.label || k) + \"=>\" + (f2.label || k2),\n value: k + \".\" + k2,\n icon: r_object != null ? r_object.icon : void 0\n });\n });\n }\n }\n });\n }\n if (is_related) {\n relatedObjects = Creator.getRelatedObjects(object_name);\n _.each(relatedObjects, (function(_this) {\n return function(_relatedObject) {\n var relatedObject, relatedOptions;\n relatedOptions = Creator.getObjectLookupFieldOptions(_relatedObject.object_name, false, false, false);\n relatedObject = Creator.getObject(_relatedObject.object_name);\n return _.each(relatedOptions, function(relatedOption) {\n if (_relatedObject.foreign_key !== relatedOption.value) {\n return _options.push({\n label: (relatedObject.label || relatedObject.name) + \"=>\" + relatedOption.label,\n value: relatedObject.name + \".\" + relatedOption.value,\n icon: relatedObject != null ? relatedObject.icon : void 0\n });\n }\n });\n };\n })(this));\n }\n return _options;\n};\n\nCreator.getObjectFilterFieldOptions = function(object_name) {\n var _object, _options, fields, icon, permission_fields;\n _options = [];\n if (!object_name) {\n return _options;\n }\n _object = Creator.getObject(object_name);\n fields = _object != null ? _object.fields : void 0;\n permission_fields = Creator.getFields(object_name);\n icon = _object != null ? _object.icon : void 0;\n _.forEach(fields, function(f, k) {\n if (!_.include([\"grid\", \"object\", \"[Object]\", \"[object]\", \"Object\", \"avatar\", \"image\", \"markdown\", \"html\"], f.type) && !f.hidden) {\n if (!/\\w+\\./.test(k) && _.indexOf(permission_fields, k) > -1) {\n return _options.push({\n label: f.label || k,\n value: k,\n icon: icon\n });\n }\n }\n });\n return _options;\n};\n\nCreator.getObjectFieldOptions = function(object_name) {\n var _object, _options, fields, icon, permission_fields;\n _options = [];\n if (!object_name) {\n return _options;\n }\n _object = Creator.getObject(object_name);\n fields = _object != null ? _object.fields : void 0;\n permission_fields = Creator.getFields(object_name);\n icon = _object != null ? _object.icon : void 0;\n _.forEach(fields, function(f, k) {\n if (!_.include([\"grid\", \"object\", \"[Object]\", \"[object]\", \"Object\", \"markdown\", \"html\"], f.type)) {\n if (!/\\w+\\./.test(k) && _.indexOf(permission_fields, k) > -1) {\n return _options.push({\n label: f.label || k,\n value: k,\n icon: icon\n });\n }\n }\n });\n return _options;\n};\n\n\n/*\nfilters: 要转换的filters\nfields: 对象字段\nfilter_fields: 默认过滤字段,支持字符串数组和对象数组两种格式,如:['filed_name1','filed_name2'],[{field:'filed_name1',required:true}]\n处理逻辑: 把filters中存在于filter_fields的过滤条件增加每项的is_default、is_required属性,不存在于filter_fields的过滤条件对应的移除每项的相关属性\n返回结果: 处理后的filters\n */\n\nCreator.getFiltersWithFilterFields = function(filters, fields, filter_fields) {\n if (!filters) {\n filters = [];\n }\n if (!filter_fields) {\n filter_fields = [];\n }\n if (filter_fields != null ? filter_fields.length : void 0) {\n filter_fields.forEach(function(n) {\n if (_.isString(n)) {\n n = {\n field: n,\n required: false\n };\n }\n if (fields[n.field] && !_.findWhere(filters, {\n field: n.field\n })) {\n return filters.push({\n field: n.field,\n is_default: true,\n is_required: n.required\n });\n }\n });\n }\n filters.forEach(function(filterItem) {\n var matchField;\n matchField = filter_fields.find(function(n) {\n return n === filterItem.field || n.field === filterItem.field;\n });\n if (_.isString(matchField)) {\n matchField = {\n field: matchField,\n required: false\n };\n }\n if (matchField) {\n filterItem.is_default = true;\n return filterItem.is_required = matchField.required;\n } else {\n delete filterItem.is_default;\n return delete filterItem.is_required;\n }\n });\n return filters;\n};\n\nCreator.getObjectRecord = function(object_name, record_id, select_fields, expand) {\n var collection, obj, record, ref, ref1, ref2;\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!record_id) {\n record_id = Session.get(\"record_id\");\n }\n if (Meteor.isClient) {\n if (object_name === Session.get(\"object_name\") && record_id === Session.get(\"record_id\")) {\n if ((ref = Template.instance()) != null ? ref.record : void 0) {\n return (ref1 = Template.instance()) != null ? (ref2 = ref1.record) != null ? ref2.get() : void 0 : void 0;\n }\n } else {\n return Creator.odata.get(object_name, record_id, select_fields, expand);\n }\n }\n obj = Creator.getObject(object_name);\n if (obj.database_name === \"meteor\" || !obj.database_name) {\n collection = Creator.getCollection(object_name);\n if (collection) {\n record = collection.findOne(record_id);\n return record;\n }\n } else if (object_name && record_id) {\n return Creator.odata.get(object_name, record_id, select_fields, expand);\n }\n};\n\nCreator.getObjectRecordName = function(record, object_name) {\n var name_field_key, ref;\n if (!record) {\n record = Creator.getObjectRecord();\n }\n if (record) {\n name_field_key = object_name === \"organizations\" ? \"name\" : (ref = Creator.getObject(object_name)) != null ? ref.NAME_FIELD_KEY : void 0;\n if (record && name_field_key) {\n return record.label || record[name_field_key];\n }\n }\n};\n\nCreator.getApp = function(app_id) {\n var appMenus, currentApp;\n appMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n if (!appMenus) {\n return {};\n }\n currentApp = appMenus.find(function(menuItem) {\n return menuItem.id === app_id;\n });\n return currentApp;\n};\n\nCreator.getAppDashboard = function(app_id) {\n var app, dashboard;\n app = Creator.getApp(app_id);\n if (!app) {\n return;\n }\n dashboard = null;\n _.each(Creator.Dashboards, function(v, k) {\n var ref;\n if (((ref = v.apps) != null ? ref.indexOf(app._id) : void 0) > -1) {\n return dashboard = v;\n }\n });\n return dashboard;\n};\n\nCreator.getAppDashboardComponent = function(app_id) {\n var app;\n app = Creator.getApp(app_id);\n if (!app || true) {\n\n }\n};\n\nCreator.getAppObjectNames = function(app_id) {\n var app, appObjects, isMobile, objects;\n app = Creator.getApp(app_id);\n if (!app) {\n return;\n }\n isMobile = Steedos.isMobile();\n appObjects = isMobile ? app.mobile_objects : app.objects;\n objects = [];\n if (app) {\n _.each(appObjects, function(v) {\n var obj;\n obj = Creator.getObject(v);\n if (obj != null ? obj.permissions.get().allowRead : void 0) {\n return objects.push(v);\n }\n });\n }\n return objects;\n};\n\nCreator.getUrlWithToken = function(url, expressionFormData) {\n var hasQuerySymbol, linkStr, params;\n params = {};\n params[\"X-Space-Id\"] = Steedos.spaceId();\n params[\"X-User-Id\"] = Steedos.userId();\n params[\"X-Company-Ids\"] = Steedos.getUserCompanyIds();\n params[\"X-Auth-Token\"] = Accounts._storedLoginToken();\n if (Steedos.isExpression(url)) {\n url = Steedos.parseSingleExpression(url, expressionFormData, \"#\", Creator.USER_CONTEXT);\n }\n hasQuerySymbol = /(\\#.+\\?)|(\\?[^#]*$)/g.test(url);\n linkStr = hasQuerySymbol ? \"&\" : \"?\";\n return \"\" + url + linkStr + ($.param(params));\n};\n\nCreator.getAppMenu = function(app_id, menu_id) {\n var menus;\n menus = Creator.getAppMenus(app_id);\n return menus && menus.find(function(menu) {\n return menu.id === menu_id;\n });\n};\n\nCreator.getAppMenuUrlForInternet = function(menu) {\n return Creator.getUrlWithToken(menu.path, menu);\n};\n\nCreator.getAppMenuUrl = function(menu) {\n var url;\n url = menu.path;\n if (menu.type === \"url\") {\n if (menu.target) {\n return Creator.getAppMenuUrlForInternet(menu);\n } else {\n return \"/app/-/tab_iframe/\" + menu.id;\n }\n } else {\n return menu.path;\n }\n};\n\nCreator.getAppMenus = function(app_id) {\n var appMenus, curentAppMenus;\n appMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n if (!appMenus) {\n return [];\n }\n curentAppMenus = appMenus.find(function(menuItem) {\n return menuItem.id === app_id;\n });\n if (curentAppMenus) {\n return curentAppMenus.children;\n }\n};\n\nCreator.loadAppsMenus = function() {\n var data, isMobile, options;\n isMobile = Steedos.isMobile();\n data = {};\n if (isMobile) {\n data.mobile = isMobile;\n }\n options = {\n type: 'get',\n data: data,\n success: function(data) {\n return Session.set(\"app_menus\", data);\n }\n };\n return typeof Steedos !== \"undefined\" && Steedos !== null ? Steedos.authRequest(\"/service/api/apps/menus\", options) : void 0;\n};\n\nCreator.creatorAppsSelector = function(apps, assigned_apps) {\n var adminApp, creatorApps, sortedApps;\n adminApp = void 0;\n sortedApps = void 0;\n _.each(apps, function(app, key) {\n if (!app._id) {\n app._id = key;\n }\n if (app.is_creator) {\n\n } else {\n app.visible = false;\n }\n });\n sortedApps = _.sortBy(_.values(apps), 'sort');\n creatorApps = {};\n adminApp = {};\n _.each(sortedApps, function(n) {\n if (n._id === 'admin') {\n return adminApp = n;\n } else {\n return creatorApps[n._id] = n;\n }\n });\n creatorApps.admin = adminApp;\n if (assigned_apps.length) {\n _.each(creatorApps, function(app, key) {\n if (assigned_apps.indexOf(key) > -1) {\n app.visible = app.is_creator;\n } else {\n app.visible = false;\n }\n });\n }\n return creatorApps;\n};\n\nCreator.visibleAppsSelector = function(creatorApps, includeAdmin) {\n var apps;\n if (includeAdmin == null) {\n includeAdmin = true;\n }\n apps = [];\n _.each(creatorApps, function(v, k) {\n if (v.visible !== false && v._id !== 'admin' || includeAdmin && v._id === 'admin') {\n apps.push(v);\n }\n });\n return apps;\n};\n\nCreator.getVisibleApps = function(includeAdmin) {\n var changeApp, creatorApps;\n changeApp = Creator._subApp.get();\n creatorApps = Object.assign({}, Creator.Apps, {\n apps: changeApp\n });\n return Creator.visibleAppsSelector(creatorApps, includeAdmin);\n};\n\nCreator.getVisibleAppsObjects = function() {\n var apps, objects, visibleObjectNames;\n apps = Creator.getVisibleApps();\n visibleObjectNames = _.flatten(_.pluck(apps, 'objects'));\n objects = _.filter(Creator.Objects, function(obj) {\n if (visibleObjectNames.indexOf(obj.name) < 0) {\n return false;\n } else {\n return true;\n }\n });\n objects = objects.sort(Creator.sortingMethod.bind({\n key: \"label\"\n }));\n objects = _.pluck(objects, 'name');\n return _.uniq(objects);\n};\n\nCreator.getAppsObjects = function() {\n var objects, tempObjects;\n objects = [];\n tempObjects = [];\n _.forEach(Creator.Apps, function(app) {\n tempObjects = _.filter(app.objects, function(obj) {\n return !obj.hidden;\n });\n return objects = objects.concat(tempObjects);\n });\n return _.uniq(objects);\n};\n\nCreator.validateFilters = function(filters, logic) {\n var e, errorMsg, filter_items, filter_length, flag, index, word;\n filter_items = _.map(filters, function(obj) {\n if (_.isEmpty(obj)) {\n return false;\n } else {\n return obj;\n }\n });\n filter_items = _.compact(filter_items);\n errorMsg = \"\";\n filter_length = filter_items.length;\n if (logic) {\n logic = logic.replace(/\\n/g, \"\").replace(/\\s+/g, \" \");\n if (/[._\\-!+]+/ig.test(logic)) {\n errorMsg = \"含有特殊字符。\";\n }\n if (!errorMsg) {\n index = logic.match(/\\d+/ig);\n if (!index) {\n errorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\";\n } else {\n index.forEach(function(i) {\n if (i < 1 || i > filter_length) {\n return errorMsg = \"您的筛选条件引用了未定义的筛选器:\" + i + \"。\";\n }\n });\n flag = 1;\n while (flag <= filter_length) {\n if (!index.includes(\"\" + flag)) {\n errorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\";\n }\n flag++;\n }\n }\n }\n if (!errorMsg) {\n word = logic.match(/[a-zA-Z]+/ig);\n if (word) {\n word.forEach(function(w) {\n if (!/^(and|or)$/ig.test(w)) {\n return errorMsg = \"检查您的高级筛选条件中的拼写。\";\n }\n });\n }\n }\n if (!errorMsg) {\n try {\n Creator[\"eval\"](logic.replace(/and/ig, \"&&\").replace(/or/ig, \"||\"));\n } catch (error) {\n e = error;\n errorMsg = \"您的筛选器中含有特殊字符\";\n }\n if (/(AND)[^()]+(OR)/ig.test(logic) || /(OR)[^()]+(AND)/ig.test(logic)) {\n errorMsg = \"您的筛选器必须在连续性的 AND 和 OR 表达式前后使用括号。\";\n }\n }\n }\n if (errorMsg) {\n console.log(\"error\", errorMsg);\n if (Meteor.isClient) {\n toastr.error(errorMsg);\n }\n return false;\n } else {\n return true;\n }\n};\n\n\n/*\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n */\n\nCreator.formatFiltersToMongo = function(filters, options) {\n var selector;\n if (!(filters != null ? filters.length : void 0)) {\n return;\n }\n if (!(filters[0] instanceof Array)) {\n filters = _.map(filters, function(obj) {\n return [obj.field, obj.operation, obj.value];\n });\n }\n selector = [];\n _.each(filters, function(filter) {\n var field, option, reg, sub_selector, value;\n field = filter[0];\n option = filter[1];\n if (Meteor.isClient) {\n value = Creator.evaluateFormula(filter[2]);\n } else {\n value = Creator.evaluateFormula(filter[2], null, options);\n }\n sub_selector = {};\n sub_selector[field] = {};\n if (option === \"=\") {\n sub_selector[field][\"$eq\"] = value;\n } else if (option === \"<>\") {\n sub_selector[field][\"$ne\"] = value;\n } else if (option === \">\") {\n sub_selector[field][\"$gt\"] = value;\n } else if (option === \">=\") {\n sub_selector[field][\"$gte\"] = value;\n } else if (option === \"<\") {\n sub_selector[field][\"$lt\"] = value;\n } else if (option === \"<=\") {\n sub_selector[field][\"$lte\"] = value;\n } else if (option === \"startswith\") {\n reg = new RegExp(\"^\" + value, \"i\");\n sub_selector[field][\"$regex\"] = reg;\n } else if (option === \"contains\") {\n reg = new RegExp(value, \"i\");\n sub_selector[field][\"$regex\"] = reg;\n } else if (option === \"notcontains\") {\n reg = new RegExp(\"^((?!\" + value + \").)*$\", \"i\");\n sub_selector[field][\"$regex\"] = reg;\n }\n return selector.push(sub_selector);\n });\n return selector;\n};\n\nCreator.isBetweenFilterOperation = function(operation) {\n var ref;\n return operation === \"between\" || !!((ref = Creator.getBetweenTimeBuiltinValues(true)) != null ? ref[operation] : void 0);\n};\n\n\n/*\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\n\textend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n */\n\nCreator.formatFiltersToDev = function(filters, object_name, options) {\n var logicTempFilters, selector;\n if (!filters.length) {\n return;\n }\n if (options != null ? options.is_logic_or : void 0) {\n logicTempFilters = [];\n filters.forEach(function(n) {\n logicTempFilters.push(n);\n return logicTempFilters.push(\"or\");\n });\n logicTempFilters.pop();\n filters = logicTempFilters;\n }\n selector = SteedosFilters.formatFiltersToDev(filters, Creator.USER_CONTEXT);\n return selector;\n};\n\n\n/*\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n */\n\nCreator.formatLogicFiltersToDev = function(filters, filter_logic, options) {\n var format_logic;\n format_logic = filter_logic.replace(/\\(\\s+/ig, \"(\").replace(/\\s+\\)/ig, \")\").replace(/\\(/g, \"[\").replace(/\\)/g, \"]\").replace(/\\s+/g, \",\").replace(/(and|or)/ig, \"'$1'\");\n format_logic = format_logic.replace(/(\\d)+/ig, function(x) {\n var _f, field, option, sub_selector, value;\n _f = filters[x - 1];\n field = _f.field;\n option = _f.operation;\n if (Meteor.isClient) {\n value = Creator.evaluateFormula(_f.value);\n } else {\n value = Creator.evaluateFormula(_f.value, null, options);\n }\n sub_selector = [];\n if (_.isArray(value) === true) {\n if (option === \"=\") {\n _.each(value, function(v) {\n return sub_selector.push([field, option, v], \"or\");\n });\n } else if (option === \"<>\") {\n _.each(value, function(v) {\n return sub_selector.push([field, option, v], \"and\");\n });\n } else {\n _.each(value, function(v) {\n return sub_selector.push([field, option, v], \"or\");\n });\n }\n if (sub_selector[sub_selector.length - 1] === \"and\" || sub_selector[sub_selector.length - 1] === \"or\") {\n sub_selector.pop();\n }\n } else {\n sub_selector = [field, option, value];\n }\n return JSON.stringify(sub_selector);\n });\n format_logic = \"[\" + format_logic + \"]\";\n return Creator[\"eval\"](format_logic);\n};\n\nCreator.getRelatedObjects = function(object_name, spaceId, userId) {\n var _object, permissions, related_object_names, related_objects, unrelated_objects;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n related_object_names = [];\n _object = Creator.getObject(object_name);\n if (!_object) {\n return related_object_names;\n }\n related_objects = Creator.getObjectRelateds(_object._collection_name);\n related_object_names = _.pluck(related_objects, \"object_name\");\n if ((related_object_names != null ? related_object_names.length : void 0) === 0) {\n return related_object_names;\n }\n permissions = Creator.getPermissions(object_name, spaceId, userId);\n unrelated_objects = permissions.unrelated_objects;\n related_object_names = _.difference(related_object_names, unrelated_objects);\n return _.filter(related_objects, function(related_object) {\n var allowRead, isActive, ref, related_object_name;\n related_object_name = related_object.object_name;\n isActive = related_object_names.indexOf(related_object_name) > -1;\n allowRead = (ref = Creator.getPermissions(related_object_name, spaceId, userId)) != null ? ref.allowRead : void 0;\n if (related_object_name === \"cms_files\") {\n allowRead = allowRead && permissions.allowReadFiles;\n }\n return isActive && allowRead;\n });\n};\n\nCreator.getRelatedObjectNames = function(object_name, spaceId, userId) {\n var related_objects;\n related_objects = Creator.getRelatedObjects(object_name, spaceId, userId);\n return _.pluck(related_objects, \"object_name\");\n};\n\nCreator.getRelatedObjectListActions = function(relatedObjectName, spaceId, userId) {\n var actions;\n actions = Creator.getActions(relatedObjectName, spaceId, userId);\n actions = _.filter(actions, function(action) {\n if (action.name === \"standard_follow\") {\n return false;\n }\n if (action.name === \"standard_query\") {\n return false;\n }\n if (action.on === \"list\") {\n if (typeof action.visible === \"function\") {\n return action.visible();\n } else {\n return action.visible;\n }\n } else {\n return false;\n }\n });\n return actions;\n};\n\nCreator.getActions = function(object_name, spaceId, userId) {\n var actions, disabled_actions, obj, permissions, ref, ref1;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n obj = Creator.getObject(object_name);\n if (!obj) {\n return;\n }\n permissions = Creator.getPermissions(object_name, spaceId, userId);\n disabled_actions = permissions.disabled_actions;\n actions = _.sortBy(_.values(obj.actions), 'sort');\n if (_.has(obj, 'allow_customActions')) {\n actions = _.filter(actions, function(action) {\n return _.include(obj.allow_customActions, action.name) || _.include(_.keys(Creator.getObject('base').actions) || {}, action.name);\n });\n }\n if (_.has(obj, 'exclude_actions')) {\n actions = _.filter(actions, function(action) {\n return !_.include(obj.exclude_actions, action.name);\n });\n }\n _.each(actions, function(action) {\n if (Steedos.isMobile() && [\"record\", \"record_only\"].indexOf(action.on) > -1 && action.name !== 'standard_edit') {\n if (action.on === \"record_only\") {\n return action.on = 'record_only_more';\n } else {\n return action.on = 'record_more';\n }\n }\n });\n if (Steedos.isMobile() && [\"cms_files\", \"cfs.files.filerecord\"].indexOf(object_name) > -1) {\n if ((ref = actions.find(function(n) {\n return n.name === \"standard_edit\";\n })) != null) {\n ref.on = \"record_more\";\n }\n if ((ref1 = actions.find(function(n) {\n return n.name === \"download\";\n })) != null) {\n ref1.on = \"record\";\n }\n }\n actions = _.filter(actions, function(action) {\n return _.indexOf(disabled_actions, action.name) < 0;\n });\n return actions;\n};\n\n/返回当前用户有权限访问的所有list_view,包括分享的,用户自定义非分享的(除非owner变了),以及默认的其他视图注意Creator.getPermissions函数中是不会有用户自定义非分享的视图的,所以Creator.getPermissions函数中拿到的结果不全,并不是当前用户能看到所有视图/;\n\nCreator.getListViews = function(object_name, spaceId, userId) {\n var disabled_list_views, isMobile, listViews, list_views, object, ref;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n if (!object_name) {\n return;\n }\n object = Creator.getObject(object_name);\n if (!object) {\n return;\n }\n disabled_list_views = ((ref = Creator.getPermissions(object_name, spaceId, userId)) != null ? ref.disabled_list_views : void 0) || [];\n list_views = [];\n isMobile = Steedos.isMobile();\n _.each(object.list_views, function(item, item_name) {\n return item.name = item_name;\n });\n listViews = _.sortBy(_.values(object.list_views), 'sort_no');\n _.each(listViews, function(item) {\n var isDisabled;\n if (isMobile && item.type === \"calendar\") {\n return;\n }\n if (item.name !== \"default\") {\n isDisabled = _.indexOf(disabled_list_views, item.name) > -1 || (item._id && _.indexOf(disabled_list_views, item._id) > -1);\n if (!isDisabled || item.owner === userId) {\n return list_views.push(item);\n }\n }\n });\n return list_views;\n};\n\nCreator.getFields = function(object_name, spaceId, userId) {\n var fieldsName, ref, unreadable_fields;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n fieldsName = Creator.getObjectFieldsName(object_name);\n unreadable_fields = (ref = Creator.getPermissions(object_name, spaceId, userId)) != null ? ref.unreadable_fields : void 0;\n return _.difference(fieldsName, unreadable_fields);\n};\n\nCreator.isloading = function() {\n return !Creator.bootstrapLoaded.get();\n};\n\nCreator.convertSpecialCharacter = function(str) {\n return str.replace(/([\\^\\$\\(\\)\\*\\+\\?\\.\\\\\\|\\[\\]\\{\\}])/g, \"\\\\$1\");\n};\n\nCreator.getDisabledFields = function(schema) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return field.autoform && field.autoform.disabled && !field.autoform.omit && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getHiddenFields = function(schema) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return field.autoform && field.autoform.type === \"hidden\" && !field.autoform.omit && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getFieldsWithNoGroup = function(schema) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return (!field.autoform || !field.autoform.group || field.autoform.group === \"-\") && (!field.autoform || field.autoform.type !== \"hidden\") && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getSortedFieldGroupNames = function(schema) {\n var names;\n names = _.map(schema, function(field) {\n return field.autoform && field.autoform.group !== \"-\" && field.autoform.group;\n });\n names = _.compact(names);\n names = _.unique(names);\n return names;\n};\n\nCreator.getFieldsForGroup = function(schema, groupName) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return field.autoform && field.autoform.group === groupName && field.autoform.type !== \"hidden\" && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getSystemBaseFields = function() {\n return [\"created\", \"created_by\", \"modified\", \"modified_by\"];\n};\n\nCreator.getFieldsWithoutSystemBase = function(keys) {\n return _.difference(keys, Creator.getSystemBaseFields());\n};\n\nCreator.getFieldsWithoutOmit = function(schema, keys) {\n keys = _.map(keys, function(key) {\n var field, ref;\n field = _.pick(schema, key);\n if ((ref = field[key].autoform) != null ? ref.omit : void 0) {\n return false;\n } else {\n return key;\n }\n });\n keys = _.compact(keys);\n return keys;\n};\n\nCreator.getFieldsInFirstLevel = function(firstLevelKeys, keys) {\n keys = _.map(keys, function(key) {\n if (_.indexOf(firstLevelKeys, key) > -1) {\n return key;\n } else {\n return false;\n }\n });\n keys = _.compact(keys);\n return keys;\n};\n\nCreator.getFieldsForReorder = function(schema, keys, isSingle) {\n var _keys, childKeys, fields, i, is_wide_1, is_wide_2, sc_1, sc_2;\n fields = [];\n i = 0;\n _keys = _.filter(keys, function(key) {\n return !key.endsWith('_endLine');\n });\n while (i < _keys.length) {\n sc_1 = _.pick(schema, _keys[i]);\n sc_2 = _.pick(schema, _keys[i + 1]);\n is_wide_1 = false;\n is_wide_2 = false;\n _.each(sc_1, function(value) {\n var ref, ref1;\n if (((ref = value.autoform) != null ? ref.is_wide : void 0) || ((ref1 = value.autoform) != null ? ref1.type : void 0) === \"table\") {\n return is_wide_1 = true;\n }\n });\n _.each(sc_2, function(value) {\n var ref, ref1;\n if (((ref = value.autoform) != null ? ref.is_wide : void 0) || ((ref1 = value.autoform) != null ? ref1.type : void 0) === \"table\") {\n return is_wide_2 = true;\n }\n });\n if (Steedos.isMobile()) {\n is_wide_1 = true;\n is_wide_2 = true;\n }\n if (isSingle) {\n fields.push(_keys.slice(i, i + 1));\n i += 1;\n } else {\n if (is_wide_1) {\n fields.push(_keys.slice(i, i + 1));\n i += 1;\n } else if (!is_wide_1 && is_wide_2) {\n childKeys = _keys.slice(i, i + 1);\n childKeys.push(void 0);\n fields.push(childKeys);\n i += 1;\n } else if (!is_wide_1 && !is_wide_2) {\n childKeys = _keys.slice(i, i + 1);\n if (_keys[i + 1]) {\n childKeys.push(_keys[i + 1]);\n } else {\n childKeys.push(void 0);\n }\n fields.push(childKeys);\n i += 2;\n }\n }\n }\n return fields;\n};\n\nCreator.isFilterValueEmpty = function(v) {\n return typeof v === \"undefined\" || v === null || Number.isNaN(v) || v.length === 0;\n};\n\nCreator.getFieldDataType = function(objectFields, key) {\n var ref, result;\n if (objectFields && key) {\n result = (ref = objectFields[key]) != null ? ref.type : void 0;\n if ([\"formula\", \"summary\"].indexOf(result) > -1) {\n result = objectFields[key].data_type;\n }\n return result;\n } else {\n return \"text\";\n }\n};\n\nif (Meteor.isServer) {\n Creator.getAllRelatedObjects = function(object_name) {\n var related_object_names;\n related_object_names = [];\n _.each(Creator.Objects, function(related_object, related_object_name) {\n return _.each(related_object.fields, function(related_field, related_field_name) {\n if (related_field.type === \"master_detail\" && related_field.reference_to && related_field.reference_to === object_name) {\n return related_object_names.push(related_object_name);\n }\n });\n });\n if (Creator.getObject(object_name).enable_files) {\n related_object_names.push(\"cms_files\");\n }\n return related_object_names;\n };\n}\n\nif (Meteor.isServer) {\n Steedos.formatIndex = function(array) {\n var indexName, isdocumentDB, object, ref, ref1, ref2;\n object = {\n background: true\n };\n isdocumentDB = ((ref = Meteor.settings) != null ? (ref1 = ref.datasources) != null ? (ref2 = ref1[\"default\"]) != null ? ref2.documentDB : void 0 : void 0 : void 0) || false;\n if (isdocumentDB) {\n if (array.length > 0) {\n indexName = array.join(\".\");\n object.name = indexName;\n if (indexName.length > 52) {\n object.name = indexName.substring(0, 52);\n }\n }\n }\n return object;\n };\n}\n","Creator.appsByName = {}\n\n","Meteor.methods\n\t\"object_recent_viewed\": (object_name, record_id, space_id)->\n\t\tif !this.userId\n\t\t\treturn null\n\n\t\tif object_name == \"object_recent_viewed\"\n\t\t\treturn\n\t\tif object_name and record_id\n\t\t\tif !space_id\n\t\t\t\tdoc = Creator.getCollection(object_name).findOne({_id: record_id}, {fields: {space: 1}})\n\t\t\t\tspace_id = doc?.space\n\n\t\t\tcollection_recent_viewed = Creator.getCollection(\"object_recent_viewed\")\n\t\t\tfilters = { owner: this.userId, space: space_id, 'record.o': object_name, 'record.ids': [record_id]}\n\t\t\tcurrent_recent_viewed = collection_recent_viewed.findOne(filters)\n\t\t\tif current_recent_viewed\n\t\t\t\tcollection_recent_viewed.update(\n\t\t\t\t\tcurrent_recent_viewed._id,\n\t\t\t\t\t{\n\t\t\t\t\t\t$inc: {\n\t\t\t\t\t\t\tcount: 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\tmodified: new Date()\n\t\t\t\t\t\t\tmodified_by: this.userId\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\telse\n\t\t\t\tcollection_recent_viewed.insert(\n\t\t\t\t\t{\n\t\t\t\t\t\t_id: collection_recent_viewed._makeNewID()\n\t\t\t\t\t\towner: this.userId\n\t\t\t\t\t\tspace: space_id\n\t\t\t\t\t\trecord: {o: object_name, ids: [record_id]}\n\t\t\t\t\t\tcount: 1\n\t\t\t\t\t\tcreated: new Date()\n\t\t\t\t\t\tcreated_by: this.userId\n\t\t\t\t\t\tmodified: new Date()\n\t\t\t\t\t\tmodified_by: this.userId\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalidate: false\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\treturn","Meteor.methods({\n \"object_recent_viewed\": function(object_name, record_id, space_id) {\n var collection_recent_viewed, current_recent_viewed, doc, filters;\n if (!this.userId) {\n return null;\n }\n if (object_name === \"object_recent_viewed\") {\n return;\n }\n if (object_name && record_id) {\n if (!space_id) {\n doc = Creator.getCollection(object_name).findOne({\n _id: record_id\n }, {\n fields: {\n space: 1\n }\n });\n space_id = doc != null ? doc.space : void 0;\n }\n collection_recent_viewed = Creator.getCollection(\"object_recent_viewed\");\n filters = {\n owner: this.userId,\n space: space_id,\n 'record.o': object_name,\n 'record.ids': [record_id]\n };\n current_recent_viewed = collection_recent_viewed.findOne(filters);\n if (current_recent_viewed) {\n collection_recent_viewed.update(current_recent_viewed._id, {\n $inc: {\n count: 1\n },\n $set: {\n modified: new Date(),\n modified_by: this.userId\n }\n });\n } else {\n collection_recent_viewed.insert({\n _id: collection_recent_viewed._makeNewID(),\n owner: this.userId,\n space: space_id,\n record: {\n o: object_name,\n ids: [record_id]\n },\n count: 1,\n created: new Date(),\n created_by: this.userId,\n modified: new Date(),\n modified_by: this.userId\n }, {\n validate: false\n });\n }\n }\n }\n});\n","recent_aggregate = (created_by, spaceId, _records, callback)->\n\tCreator.Collections.object_recent_viewed.rawCollection().aggregate([\n\t\t{$match: {created_by: created_by, space: spaceId}},\n\t\t{$group: {_id: {object_name: \"$record.o\", record_id: \"$record.ids\", space: \"$space\"}, maxCreated: {$max: \"$created\"}}},\n\t\t{$sort: {maxCreated: -1}},\n\t\t{$limit: 10}\n\t]).toArray (err, data)->\n\t\tif err\n\t\t\tthrow new Error(err)\n\n\t\tdata.forEach (doc) ->\n\t\t\t_records.push doc._id\n\n\t\tif callback && _.isFunction(callback)\n\t\t\tcallback()\n\n\t\treturn\n\nasync_recent_aggregate = Meteor.wrapAsync(recent_aggregate)\n\nsearch_object = (space, object_name,userId, searchText)->\n\tdata = new Array()\n\n\tif searchText\n\n\t\t_object = Creator.getObject(object_name)\n\n\t\t_object_collection = Creator.getCollection(object_name)\n\t\t_object_name_key = _object?.NAME_FIELD_KEY\n\t\tif _object && _object_collection && _object_name_key\n\t\t\tquery = {}\n\t\t\tsearch_Keywords = searchText.split(\" \")\n\t\t\tquery_and = []\n\t\t\tsearch_Keywords.forEach (keyword)->\n\t\t\t\tsubquery = {}\n\t\t\t\tsubquery[_object_name_key] = {$regex: keyword.trim()}\n\t\t\t\tquery_and.push subquery\n\n\t\t\tquery.$and = query_and\n\t\t\tquery.space = {$in: [space]}\n\n\t\t\tfields = {_id: 1}\n\t\t\tfields[_object_name_key] = 1\n\n\t\t\trecords = _object_collection.find(query, {fields: fields, sort: {modified: 1}, limit: 5})\n\n\t\t\trecords.forEach (record)->\n\t\t\t\tdata.push {_id: record._id, _name: record[_object_name_key], _object_name: object_name}\n\t\n\treturn data\n\nMeteor.methods\n\t'object_recent_record': (spaceId)->\n\t\tdata = new Array()\n\t\trecords = new Array()\n\t\tasync_recent_aggregate(this.userId, spaceId, records)\n\t\trecords.forEach (item)->\n\t\t\trecord_object = Creator.getObject(item.object_name, item.space)\n\n\t\t\tif !record_object\n\t\t\t\treturn\n\n\t\t\trecord_object_collection = Creator.getCollection(item.object_name, item.space)\n\n\t\t\tif record_object && record_object_collection\n\t\t\t\tfields = {_id: 1}\n\n\t\t\t\tfields[record_object.NAME_FIELD_KEY] = 1\n\n\t\t\t\trecord = record_object_collection.findOne(item.record_id[0], {fields: fields})\n\t\t\t\tif record\n\t\t\t\t\tdata.push {_id: record._id, _name: record[record_object.NAME_FIELD_KEY], _object_name: item.object_name}\n\n\t\treturn data\n\n\t'object_record_search': (options)->\n\t\tself = this\n\n\t\tdata = new Array()\n\n\t\tsearchText = options.searchText\n\t\tspace = options.space\n\n\t\t_.forEach Creator.objectsByName, (_object, name)->\n\t\t\tif _object.enable_search\n\t\t\t\tobject_record = search_object(space, _object.name, self.userId, searchText)\n\t\t\t\tdata = data.concat(object_record)\n\n\t\treturn data\n","var async_recent_aggregate, recent_aggregate, search_object;\n\nrecent_aggregate = function(created_by, spaceId, _records, callback) {\n return Creator.Collections.object_recent_viewed.rawCollection().aggregate([\n {\n $match: {\n created_by: created_by,\n space: spaceId\n }\n }, {\n $group: {\n _id: {\n object_name: \"$record.o\",\n record_id: \"$record.ids\",\n space: \"$space\"\n },\n maxCreated: {\n $max: \"$created\"\n }\n }\n }, {\n $sort: {\n maxCreated: -1\n }\n }, {\n $limit: 10\n }\n ]).toArray(function(err, data) {\n if (err) {\n throw new Error(err);\n }\n data.forEach(function(doc) {\n return _records.push(doc._id);\n });\n if (callback && _.isFunction(callback)) {\n callback();\n }\n });\n};\n\nasync_recent_aggregate = Meteor.wrapAsync(recent_aggregate);\n\nsearch_object = function(space, object_name, userId, searchText) {\n var _object, _object_collection, _object_name_key, data, fields, query, query_and, records, search_Keywords;\n data = new Array();\n if (searchText) {\n _object = Creator.getObject(object_name);\n _object_collection = Creator.getCollection(object_name);\n _object_name_key = _object != null ? _object.NAME_FIELD_KEY : void 0;\n if (_object && _object_collection && _object_name_key) {\n query = {};\n search_Keywords = searchText.split(\" \");\n query_and = [];\n search_Keywords.forEach(function(keyword) {\n var subquery;\n subquery = {};\n subquery[_object_name_key] = {\n $regex: keyword.trim()\n };\n return query_and.push(subquery);\n });\n query.$and = query_and;\n query.space = {\n $in: [space]\n };\n fields = {\n _id: 1\n };\n fields[_object_name_key] = 1;\n records = _object_collection.find(query, {\n fields: fields,\n sort: {\n modified: 1\n },\n limit: 5\n });\n records.forEach(function(record) {\n return data.push({\n _id: record._id,\n _name: record[_object_name_key],\n _object_name: object_name\n });\n });\n }\n }\n return data;\n};\n\nMeteor.methods({\n 'object_recent_record': function(spaceId) {\n var data, records;\n data = new Array();\n records = new Array();\n async_recent_aggregate(this.userId, spaceId, records);\n records.forEach(function(item) {\n var fields, record, record_object, record_object_collection;\n record_object = Creator.getObject(item.object_name, item.space);\n if (!record_object) {\n return;\n }\n record_object_collection = Creator.getCollection(item.object_name, item.space);\n if (record_object && record_object_collection) {\n fields = {\n _id: 1\n };\n fields[record_object.NAME_FIELD_KEY] = 1;\n record = record_object_collection.findOne(item.record_id[0], {\n fields: fields\n });\n if (record) {\n return data.push({\n _id: record._id,\n _name: record[record_object.NAME_FIELD_KEY],\n _object_name: item.object_name\n });\n }\n }\n });\n return data;\n },\n 'object_record_search': function(options) {\n var data, searchText, self, space;\n self = this;\n data = new Array();\n searchText = options.searchText;\n space = options.space;\n _.forEach(Creator.objectsByName, function(_object, name) {\n var object_record;\n if (_object.enable_search) {\n object_record = search_object(space, _object.name, self.userId, searchText);\n return data = data.concat(object_record);\n }\n });\n return data;\n }\n});\n","Meteor.methods\n update_filters: (listview_id, filters, filter_scope, filter_logic)->\n Creator.Collections.object_listviews.direct.update({_id: listview_id}, {$set: {filters: filters, filter_scope: filter_scope, filter_logic: filter_logic}})\n\n update_columns: (listview_id, columns)->\n check(columns, Array)\n \n if columns.length < 1\n throw new Meteor.Error 400, \"Select at least one field to display\"\n Creator.Collections.object_listviews.update({_id: listview_id}, {$set: {columns: columns}})\n","Meteor.methods({\n update_filters: function(listview_id, filters, filter_scope, filter_logic) {\n return Creator.Collections.object_listviews.direct.update({\n _id: listview_id\n }, {\n $set: {\n filters: filters,\n filter_scope: filter_scope,\n filter_logic: filter_logic\n }\n });\n },\n update_columns: function(listview_id, columns) {\n check(columns, Array);\n if (columns.length < 1) {\n throw new Meteor.Error(400, \"Select at least one field to display\");\n }\n return Creator.Collections.object_listviews.update({\n _id: listview_id\n }, {\n $set: {\n columns: columns\n }\n });\n }\n});\n","Meteor.methods\n\t'report_data': (options)->\n\t\tcheck(options, Object)\n\t\tspace = options.space\n\t\tfields = options.fields\n\t\tobject_name = options.object_name\n\t\tfilter_scope = options.filter_scope\n\t\tfilters = options.filters\n\t\tfilterFields = {}\n\t\tcompoundFields = []\n\t\tobjectFields = Creator.getObject(object_name)?.fields\n\t\t_.each fields, (item, index)->\n\t\t\tsplits = item.split(\".\")\n\t\t\tname = splits[0]\n\t\t\tobjectField = objectFields[name]\n\t\t\tif splits.length > 1 and objectField\n\t\t\t\tchildKey = item.replace name + \".\", \"\"\n\t\t\t\tcompoundFields.push({name: name, childKey: childKey, field: objectField})\n\t\t\tfilterFields[name] = 1\n\n\t\tselector = {}\n\t\tuserId = this.userId\n\t\tselector.space = space\n\t\tif filter_scope == \"spacex\"\n\t\t\tselector.space = \n\t\t\t\t$in: [null,space]\n\t\telse if filter_scope == \"mine\"\n\t\t\tselector.owner = userId\n\n\t\tif Creator.isCommonSpace(space) && Creator.isSpaceAdmin(space, @userId)\n\t\t\tdelete selector.space\n\n\t\tif filters and filters.length > 0\n\t\t\tselector[\"$and\"] = filters\n\n\t\tcursor = Creator.getCollection(object_name).find(selector, {fields: filterFields, skip: 0, limit: 10000})\n#\t\tif cursor.count() > 10000\n#\t\t\treturn []\n\t\tresult = cursor.fetch()\n\t\tif compoundFields.length\n\t\t\tresult = result.map (item,index)->\n\t\t\t\t_.each compoundFields, (compoundFieldItem, index)->\n\t\t\t\t\titemKey = compoundFieldItem.name + \"*%*\" + compoundFieldItem.childKey.replace(/\\./g, \"*%*\")\n\t\t\t\t\titemValue = item[compoundFieldItem.name]\n\t\t\t\t\ttype = compoundFieldItem.field.type\n\t\t\t\t\tif [\"lookup\", \"master_detail\"].indexOf(type) > -1\n\t\t\t\t\t\treference_to = compoundFieldItem.field.reference_to\n\t\t\t\t\t\tcompoundFilterFields = {}\n\t\t\t\t\t\tcompoundFilterFields[compoundFieldItem.childKey] = 1\n\t\t\t\t\t\treferenceItem = Creator.getCollection(reference_to).findOne {_id: itemValue}, fields: compoundFilterFields\n\t\t\t\t\t\tif referenceItem\n\t\t\t\t\t\t\titem[itemKey] = referenceItem[compoundFieldItem.childKey]\n\t\t\t\t\telse if type == \"select\"\n\t\t\t\t\t\toptions = compoundFieldItem.field.options\n\t\t\t\t\t\titem[itemKey] = _.findWhere(options, {value: itemValue})?.label or itemValue\n\t\t\t\t\telse\n\t\t\t\t\t\titem[itemKey] = itemValue\n\t\t\t\t\tunless item[itemKey]\n\t\t\t\t\t\titem[itemKey] = \"--\"\n\t\t\t\treturn item\n\t\t\treturn result\n\t\telse\n\t\t\treturn result\n\n","Meteor.methods({\n 'report_data': function(options) {\n var compoundFields, cursor, fields, filterFields, filter_scope, filters, objectFields, object_name, ref, result, selector, space, userId;\n check(options, Object);\n space = options.space;\n fields = options.fields;\n object_name = options.object_name;\n filter_scope = options.filter_scope;\n filters = options.filters;\n filterFields = {};\n compoundFields = [];\n objectFields = (ref = Creator.getObject(object_name)) != null ? ref.fields : void 0;\n _.each(fields, function(item, index) {\n var childKey, name, objectField, splits;\n splits = item.split(\".\");\n name = splits[0];\n objectField = objectFields[name];\n if (splits.length > 1 && objectField) {\n childKey = item.replace(name + \".\", \"\");\n compoundFields.push({\n name: name,\n childKey: childKey,\n field: objectField\n });\n }\n return filterFields[name] = 1;\n });\n selector = {};\n userId = this.userId;\n selector.space = space;\n if (filter_scope === \"spacex\") {\n selector.space = {\n $in: [null, space]\n };\n } else if (filter_scope === \"mine\") {\n selector.owner = userId;\n }\n if (Creator.isCommonSpace(space) && Creator.isSpaceAdmin(space, this.userId)) {\n delete selector.space;\n }\n if (filters && filters.length > 0) {\n selector[\"$and\"] = filters;\n }\n cursor = Creator.getCollection(object_name).find(selector, {\n fields: filterFields,\n skip: 0,\n limit: 10000\n });\n result = cursor.fetch();\n if (compoundFields.length) {\n result = result.map(function(item, index) {\n _.each(compoundFields, function(compoundFieldItem, index) {\n var compoundFilterFields, itemKey, itemValue, ref1, referenceItem, reference_to, type;\n itemKey = compoundFieldItem.name + \"*%*\" + compoundFieldItem.childKey.replace(/\\./g, \"*%*\");\n itemValue = item[compoundFieldItem.name];\n type = compoundFieldItem.field.type;\n if ([\"lookup\", \"master_detail\"].indexOf(type) > -1) {\n reference_to = compoundFieldItem.field.reference_to;\n compoundFilterFields = {};\n compoundFilterFields[compoundFieldItem.childKey] = 1;\n referenceItem = Creator.getCollection(reference_to).findOne({\n _id: itemValue\n }, {\n fields: compoundFilterFields\n });\n if (referenceItem) {\n item[itemKey] = referenceItem[compoundFieldItem.childKey];\n }\n } else if (type === \"select\") {\n options = compoundFieldItem.field.options;\n item[itemKey] = ((ref1 = _.findWhere(options, {\n value: itemValue\n })) != null ? ref1.label : void 0) || itemValue;\n } else {\n item[itemKey] = itemValue;\n }\n if (!item[itemKey]) {\n return item[itemKey] = \"--\";\n }\n });\n return item;\n });\n return result;\n } else {\n return result;\n }\n }\n});\n","###\n type: \"user\"\n object_name: \"object_listviews\"\n record_id: \"{object_name},{listview_id}\"\n settings:\n column_width: { field_a: 100, field_2: 150 }\n sort: [[\"field_a\", \"desc\"]]\n owner: {userId}\n###\n\nMeteor.methods\n \"tabular_sort_settings\": (object_name, list_view_id, sort)->\n userId = this.userId\n setting = Creator.Collections.settings.findOne({object_name: object_name, record_id: \"object_listviews\", owner: userId})\n if setting\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.sort\": sort}})\n else\n doc = \n type: \"user\"\n object_name: object_name\n record_id: \"object_listviews\"\n settings: {}\n owner: userId\n\n doc.settings[list_view_id] = {}\n doc.settings[list_view_id].sort = sort\n\n Creator.Collections.settings.insert(doc)\n\n \"tabular_column_width_settings\": (object_name, list_view_id, column_width)->\n userId = this.userId\n setting = Creator.Collections.settings.findOne({object_name: object_name, record_id: \"object_listviews\", owner: userId})\n if setting\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.column_width\": column_width}})\n else\n doc = \n type: \"user\"\n object_name: object_name\n record_id: \"object_listviews\"\n settings: {}\n owner: userId\n\n doc.settings[list_view_id] = {}\n doc.settings[list_view_id].column_width = column_width\n\n Creator.Collections.settings.insert(doc)\n\n \"grid_settings\": (object_name, list_view_id, column_width, sort)->\n userId = this.userId\n setting = Creator.Collections.settings.findOne({object_name: object_name, record_id: \"object_gridviews\", owner: userId})\n if setting\n # 每次都强制改变_id_actions列的宽度,以解决当用户只改变字段次序而没有改变任何字段宽度时,前端没有订阅到字段次序变更的数据的问题\n column_width._id_actions = if setting.settings[\"#{list_view_id}\"]?.column_width?._id_actions == 46 then 47 else 46\n if sort\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.sort\": sort, \"settings.#{list_view_id}.column_width\": column_width}})\n else\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.column_width\": column_width}})\n else\n doc =\n type: \"user\"\n object_name: object_name\n record_id: \"object_gridviews\"\n settings: {}\n owner: userId\n \n doc.settings[list_view_id] = {}\n doc.settings[list_view_id].column_width = column_width\n doc.settings[list_view_id].sort = sort\n\n Creator.Collections.settings.insert(doc)","\n/*\n type: \"user\"\n object_name: \"object_listviews\"\n record_id: \"{object_name},{listview_id}\"\n settings:\n column_width: { field_a: 100, field_2: 150 }\n sort: [[\"field_a\", \"desc\"]]\n owner: {userId}\n */\nMeteor.methods({\n \"tabular_sort_settings\": function(object_name, list_view_id, sort) {\n var doc, obj, setting, userId;\n userId = this.userId;\n setting = Creator.Collections.settings.findOne({\n object_name: object_name,\n record_id: \"object_listviews\",\n owner: userId\n });\n if (setting) {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj = {},\n obj[\"settings.\" + list_view_id + \".sort\"] = sort,\n obj\n )\n });\n } else {\n doc = {\n type: \"user\",\n object_name: object_name,\n record_id: \"object_listviews\",\n settings: {},\n owner: userId\n };\n doc.settings[list_view_id] = {};\n doc.settings[list_view_id].sort = sort;\n return Creator.Collections.settings.insert(doc);\n }\n },\n \"tabular_column_width_settings\": function(object_name, list_view_id, column_width) {\n var doc, obj, setting, userId;\n userId = this.userId;\n setting = Creator.Collections.settings.findOne({\n object_name: object_name,\n record_id: \"object_listviews\",\n owner: userId\n });\n if (setting) {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj = {},\n obj[\"settings.\" + list_view_id + \".column_width\"] = column_width,\n obj\n )\n });\n } else {\n doc = {\n type: \"user\",\n object_name: object_name,\n record_id: \"object_listviews\",\n settings: {},\n owner: userId\n };\n doc.settings[list_view_id] = {};\n doc.settings[list_view_id].column_width = column_width;\n return Creator.Collections.settings.insert(doc);\n }\n },\n \"grid_settings\": function(object_name, list_view_id, column_width, sort) {\n var doc, obj, obj1, ref, ref1, setting, userId;\n userId = this.userId;\n setting = Creator.Collections.settings.findOne({\n object_name: object_name,\n record_id: \"object_gridviews\",\n owner: userId\n });\n if (setting) {\n column_width._id_actions = ((ref = setting.settings[\"\" + list_view_id]) != null ? (ref1 = ref.column_width) != null ? ref1._id_actions : void 0 : void 0) === 46 ? 47 : 46;\n if (sort) {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj = {},\n obj[\"settings.\" + list_view_id + \".sort\"] = sort,\n obj[\"settings.\" + list_view_id + \".column_width\"] = column_width,\n obj\n )\n });\n } else {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj1 = {},\n obj1[\"settings.\" + list_view_id + \".column_width\"] = column_width,\n obj1\n )\n });\n }\n } else {\n doc = {\n type: \"user\",\n object_name: object_name,\n record_id: \"object_gridviews\",\n settings: {},\n owner: userId\n };\n doc.settings[list_view_id] = {};\n doc.settings[list_view_id].column_width = column_width;\n doc.settings[list_view_id].sort = sort;\n return Creator.Collections.settings.insert(doc);\n }\n }\n});\n","xml2js = require 'xml2js'\nfs = require 'fs'\npath = require 'path'\nmkdirp = require 'mkdirp'\n\nlogger = new Logger 'Export_TO_XML'\n\n_writeXmlFile = (jsonObj,objName) ->\n\t# 转xml\n\tbuilder = new xml2js.Builder()\n\txml = builder.buildObject jsonObj\n\n\t# 转为buffer\n\tstream = new Buffer xml\n\n\t# 根据当天时间的年月日作为存储路径\n\tnow = new Date\n\tyear = now.getFullYear()\n\tmonth = now.getMonth() + 1\n\tday = now.getDate()\n\n\t# 文件路径\n\tfilePath = path.join(__meteor_bootstrap__.serverDir,'../../../export/' + year + '/' + month + '/' + day + '/' + objName )\n\tfileName = jsonObj?._id + \".xml\"\n\tfileAddress = path.join filePath, fileName\n\n\tif !fs.existsSync filePath\n\t\tmkdirp.sync filePath\n\n\t# 写入文件\n\tfs.writeFile fileAddress, stream, (err) ->\n\t\tif err\n\t\t\tlogger.error \"#{jsonObj._id}写入xml文件失败\",err\n\t\n\treturn filePath\n\n\n# 整理Fields的json数据\n_mixFieldsData = (obj,objName) ->\n\t# 初始化对象数据\n\tjsonObj = {}\n\t# 获取fields\n\tobjFields = Creator?.getObject(objName)?.fields\n\n\tmixDefault = (field_name)->\n\t\tjsonObj[field_name] = obj[field_name] || \"\"\n\n\tmixDate = (field_name,type)->\n\t\tdate = obj[field_name]\n\t\tif type == \"date\"\n\t\t\tformat = \"YYYY-MM-DD\"\n\t\telse\n\t\t\tformat = \"YYYY-MM-DD HH:mm:ss\"\n\t\tif date? and format?\n\t\t\tdateStr = moment(date).format(format)\n\t\tjsonObj[field_name] = dateStr || \"\"\n\n\tmixBool = (field_name)->\n\t\tif obj[field_name] == true\n\t\t\tjsonObj[field_name] = \"是\"\n\t\telse if obj[field_name] == false\n\t\t\tjsonObj[field_name] = \"否\"\n\t\telse\n\t\t\tjsonObj[field_name] = \"\"\n\n\t# 循环每个fields,并判断取值\n\t_.each objFields, (field, field_name)->\n\t\tswitch field?.type\n\t\t\twhen \"date\",\"datetime\" then mixDate field_name,field.type\n\t\t\twhen \"boolean\" then mixBool field_name\n\t\t\telse mixDefault field_name\n\n\treturn jsonObj\n\n# 获取子表整理数据\n_mixRelatedData = (obj,objName) ->\n\t# 初始化对象数据\n\trelated_objects = {}\n\n\t# 获取相关表\n\trelatedObjNames = Creator?.getAllRelatedObjects objName\n\n\t# 循环相关表\n\trelatedObjNames.forEach (relatedObjName) ->\n\t\t# 每个表定义一个对象数组\n\t\trelatedTableData = []\n\n\t\t# *设置关联搜索查询的字段\n\t\t# 附件的关联搜索字段是定死的\n\t\tif relatedObjName == \"cms_files\"\n\t\t\trelated_field_name = \"parent.ids\"\n\t\telse\n\t\t\t# 获取fields\n\t\t\tfields = Creator?.Objects[relatedObjName]?.fields\n\t\t\t# 循环每个field,找出reference_to的关联字段\n\t\t\trelated_field_name = \"\"\n\t\t\t_.each fields, (field, field_name)->\n\t\t\t\tif field?.reference_to == objName\n\t\t\t\t\trelated_field_name = field_name\n\n\t\t# 根据找出的关联字段,查子表数据\n\t\tif related_field_name\n\t\t\trelatedCollection = Creator.getCollection(relatedObjName)\n\t\t\t# 获取到所有的数据\n\t\t\trelatedRecordList = relatedCollection.find({\"#{related_field_name}\":obj._id}).fetch()\n\t\t\t# 循环每一条数据\n\t\t\trelatedRecordList.forEach (relatedObj)->\n\t\t\t\t# 整合fields数据\n\t\t\t\tfieldsData = _mixFieldsData relatedObj,relatedObjName\n\t\t\t\t# 把一条记录插入到对象数组中\n\t\t\t\trelatedTableData.push fieldsData\n\n\t\t# 把一个子表的所有数据插入到related_objects中,再循环下一个\n\t\trelated_objects[relatedObjName] = relatedTableData\n\n\treturn related_objects\n\n# Creator.Export2xml()\nCreator.Export2xml = (objName, recordList) ->\n\tlogger.info \"Run Creator.Export2xml\"\n\n\tconsole.time \"Creator.Export2xml\"\n\n\t# 测试数据\n\t# objName = \"archive_records\"\n\n\t# 查找对象数据\n\tcollection = Creator.getCollection(objName)\n\t# 测试数据\n\trecordList = collection.find({}).fetch()\n\n\trecordList.forEach (recordObj)->\n\t\tjsonObj = {}\n\t\tjsonObj._id = recordObj._id\n\n\t\t# 整理主表的Fields数据\n\t\tfieldsData = _mixFieldsData recordObj,objName\n\t\tjsonObj[objName] = fieldsData\n\n\t\t# 整理相关表数据\n\t\trelated_objects = _mixRelatedData recordObj,objName\n\n\t\tjsonObj[\"related_objects\"] = related_objects\n\n\t\t# 转为xml保存文件\n\t\tfilePath = _writeXmlFile jsonObj,objName\n\n\tconsole.timeEnd \"Creator.Export2xml\"\n\treturn filePath","var _mixFieldsData, _mixRelatedData, _writeXmlFile, fs, logger, mkdirp, path, xml2js;\n\nxml2js = require('xml2js');\n\nfs = require('fs');\n\npath = require('path');\n\nmkdirp = require('mkdirp');\n\nlogger = new Logger('Export_TO_XML');\n\n_writeXmlFile = function(jsonObj, objName) {\n var builder, day, fileAddress, fileName, filePath, month, now, stream, xml, year;\n builder = new xml2js.Builder();\n xml = builder.buildObject(jsonObj);\n stream = new Buffer(xml);\n now = new Date;\n year = now.getFullYear();\n month = now.getMonth() + 1;\n day = now.getDate();\n filePath = path.join(__meteor_bootstrap__.serverDir, '../../../export/' + year + '/' + month + '/' + day + '/' + objName);\n fileName = (jsonObj != null ? jsonObj._id : void 0) + \".xml\";\n fileAddress = path.join(filePath, fileName);\n if (!fs.existsSync(filePath)) {\n mkdirp.sync(filePath);\n }\n fs.writeFile(fileAddress, stream, function(err) {\n if (err) {\n return logger.error(jsonObj._id + \"写入xml文件失败\", err);\n }\n });\n return filePath;\n};\n\n_mixFieldsData = function(obj, objName) {\n var jsonObj, mixBool, mixDate, mixDefault, objFields, ref;\n jsonObj = {};\n objFields = typeof Creator !== \"undefined\" && Creator !== null ? (ref = Creator.getObject(objName)) != null ? ref.fields : void 0 : void 0;\n mixDefault = function(field_name) {\n return jsonObj[field_name] = obj[field_name] || \"\";\n };\n mixDate = function(field_name, type) {\n var date, dateStr, format;\n date = obj[field_name];\n if (type === \"date\") {\n format = \"YYYY-MM-DD\";\n } else {\n format = \"YYYY-MM-DD HH:mm:ss\";\n }\n if ((date != null) && (format != null)) {\n dateStr = moment(date).format(format);\n }\n return jsonObj[field_name] = dateStr || \"\";\n };\n mixBool = function(field_name) {\n if (obj[field_name] === true) {\n return jsonObj[field_name] = \"是\";\n } else if (obj[field_name] === false) {\n return jsonObj[field_name] = \"否\";\n } else {\n return jsonObj[field_name] = \"\";\n }\n };\n _.each(objFields, function(field, field_name) {\n switch (field != null ? field.type : void 0) {\n case \"date\":\n case \"datetime\":\n return mixDate(field_name, field.type);\n case \"boolean\":\n return mixBool(field_name);\n default:\n return mixDefault(field_name);\n }\n });\n return jsonObj;\n};\n\n_mixRelatedData = function(obj, objName) {\n var relatedObjNames, related_objects;\n related_objects = {};\n relatedObjNames = typeof Creator !== \"undefined\" && Creator !== null ? Creator.getAllRelatedObjects(objName) : void 0;\n relatedObjNames.forEach(function(relatedObjName) {\n var fields, obj1, ref, relatedCollection, relatedRecordList, relatedTableData, related_field_name;\n relatedTableData = [];\n if (relatedObjName === \"cms_files\") {\n related_field_name = \"parent.ids\";\n } else {\n fields = typeof Creator !== \"undefined\" && Creator !== null ? (ref = Creator.Objects[relatedObjName]) != null ? ref.fields : void 0 : void 0;\n related_field_name = \"\";\n _.each(fields, function(field, field_name) {\n if ((field != null ? field.reference_to : void 0) === objName) {\n return related_field_name = field_name;\n }\n });\n }\n if (related_field_name) {\n relatedCollection = Creator.getCollection(relatedObjName);\n relatedRecordList = relatedCollection.find((\n obj1 = {},\n obj1[\"\" + related_field_name] = obj._id,\n obj1\n )).fetch();\n relatedRecordList.forEach(function(relatedObj) {\n var fieldsData;\n fieldsData = _mixFieldsData(relatedObj, relatedObjName);\n return relatedTableData.push(fieldsData);\n });\n }\n return related_objects[relatedObjName] = relatedTableData;\n });\n return related_objects;\n};\n\nCreator.Export2xml = function(objName, recordList) {\n var collection;\n logger.info(\"Run Creator.Export2xml\");\n console.time(\"Creator.Export2xml\");\n collection = Creator.getCollection(objName);\n recordList = collection.find({}).fetch();\n recordList.forEach(function(recordObj) {\n var fieldsData, filePath, jsonObj, related_objects;\n jsonObj = {};\n jsonObj._id = recordObj._id;\n fieldsData = _mixFieldsData(recordObj, objName);\n jsonObj[objName] = fieldsData;\n related_objects = _mixRelatedData(recordObj, objName);\n jsonObj[\"related_objects\"] = related_objects;\n return filePath = _writeXmlFile(jsonObj, objName);\n });\n console.timeEnd(\"Creator.Export2xml\");\n return filePath;\n};\n","Meteor.methods \n\trelated_objects_records: (object_name, related_object_name, related_field_name, record_id, spaceId)->\n\t\tuserId = this.userId\n\t\tif related_object_name == \"cfs.files.filerecord\"\n\t\t\tselector = {\"metadata.space\": spaceId}\n\t\telse\n\t\t\tselector = {space: spaceId}\n\t\t\n\t\tif related_object_name == \"cms_files\"\n\t\t\t# 附件的关联搜索条件是定死的\n\t\t\tselector[\"parent.o\"] = object_name\n\t\t\tselector[\"parent.ids\"] = [record_id]\n\t\telse\n\t\t\tselector[related_field_name] = record_id\n\n\t\tpermissions = Creator.getPermissions(related_object_name, spaceId, userId)\n\t\tif !permissions.viewAllRecords and permissions.allowRead\n\t\t\tselector.owner = userId\n\t\t\n\t\trelated_records = Creator.getCollection(related_object_name).find(selector)\n\t\treturn related_records.count()","Meteor.methods({\n related_objects_records: function(object_name, related_object_name, related_field_name, record_id, spaceId) {\n var permissions, related_records, selector, userId;\n userId = this.userId;\n if (related_object_name === \"cfs.files.filerecord\") {\n selector = {\n \"metadata.space\": spaceId\n };\n } else {\n selector = {\n space: spaceId\n };\n }\n if (related_object_name === \"cms_files\") {\n selector[\"parent.o\"] = object_name;\n selector[\"parent.ids\"] = [record_id];\n } else {\n selector[related_field_name] = record_id;\n }\n permissions = Creator.getPermissions(related_object_name, spaceId, userId);\n if (!permissions.viewAllRecords && permissions.allowRead) {\n selector.owner = userId;\n }\n related_records = Creator.getCollection(related_object_name).find(selector);\n return related_records.count();\n }\n});\n","Meteor.methods\n\tgetPendingSpaceInfo: (inviterId, spaceId)->\n\t\tinviterName = db.users.findOne({_id: inviterId}).name\n\t\tspaceName = db.spaces.findOne({_id: spaceId}).name\n\n\t\treturn {inviter: inviterName, space: spaceName}\n\n\trefuseJoinSpace: (_id)->\n\t\tdb.space_users.direct.update({_id: _id},{$set: {invite_state: \"refused\"}})\n\n\tacceptJoinSpace: (_id)->\n\t\tdb.space_users.direct.update({_id: _id},{$set: {invite_state: \"accepted\", user_accepted: true}})\n\n","Meteor.methods({\n getPendingSpaceInfo: function(inviterId, spaceId) {\n var inviterName, spaceName;\n inviterName = db.users.findOne({\n _id: inviterId\n }).name;\n spaceName = db.spaces.findOne({\n _id: spaceId\n }).name;\n return {\n inviter: inviterName,\n space: spaceName\n };\n },\n refuseJoinSpace: function(_id) {\n return db.space_users.direct.update({\n _id: _id\n }, {\n $set: {\n invite_state: \"refused\"\n }\n });\n },\n acceptJoinSpace: function(_id) {\n return db.space_users.direct.update({\n _id: _id\n }, {\n $set: {\n invite_state: \"accepted\",\n user_accepted: true\n }\n });\n }\n});\n","Meteor.publish \"creator_object_record\", (object_name, id, space_id)->\n\tcollection = Creator.getCollection(object_name, space_id)\n\tif collection\n\t\treturn collection.find({_id: id})\n\n","Meteor.publish(\"creator_object_record\", function(object_name, id, space_id) {\n var collection;\n collection = Creator.getCollection(object_name, space_id);\n if (collection) {\n return collection.find({\n _id: id\n });\n }\n});\n","Meteor.publishComposite \"steedos_object_tabular\", (tableName, ids, fields, spaceId)->\n\tunless this.userId\n\t\treturn this.ready()\n\n\tcheck(tableName, String);\n\tcheck(ids, Array);\n\tcheck(fields, Match.Optional(Object));\n\n\t_object_name = tableName.replace(\"creator_\",\"\")\n\t_object = Creator.getObject(_object_name, spaceId)\n\n\tif spaceId\n\t\t_object_name = Creator.getObjectName(_object)\n\n\tobject_colleciton = Creator.getCollection(_object_name)\n\n\n\t_fields = _object?.fields\n\tif !_fields || !object_colleciton\n\t\treturn this.ready()\n\n\treference_fields = _.filter _fields, (f)->\n\t\treturn _.isFunction(f.reference_to) || !_.isEmpty(f.reference_to)\n\n\tself = this\n\n\tself.unblock();\n\n\tif reference_fields.length > 0\n\t\tdata = {\n\t\t\tfind: ()->\n\t\t\t\tself.unblock();\n\t\t\t\tfield_keys = {}\n\t\t\t\t_.each _.keys(fields), (f)->\n\t\t\t\t\tunless /\\w+(\\.\\$){1}\\w?/.test(f)\n\t\t\t\t\t\tfield_keys[f] = 1\n\t\t\t\t\n\t\t\t\treturn object_colleciton.find({_id: {$in: ids}}, {fields: field_keys});\n\t\t}\n\n\t\tdata.children = []\n\n\t\tkeys = _.keys(fields)\n\n\t\tif keys.length < 1\n\t\t\tkeys = _.keys(_fields)\n\n\t\t_keys = []\n\n\t\tkeys.forEach (key)->\n\t\t\tif _object.schema._objectKeys[key + '.']\n\t\t\t\t_keys = _keys.concat(_.map(_object.schema._objectKeys[key + '.'], (k)->\n\t\t\t\t\treturn key + '.' + k\n\t\t\t\t))\n\t\t\t_keys.push(key)\n\n\t\t_keys.forEach (key)->\n\t\t\treference_field = _fields[key]\n\n\t\t\tif reference_field && (_.isFunction(reference_field.reference_to) || !_.isEmpty(reference_field.reference_to)) # and Creator.Collections[reference_field.reference_to]\n\t\t\t\tdata.children.push {\n\t\t\t\t\tfind: (parent) ->\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t\tself.unblock();\n\n\t\t\t\t\t\t\tquery = {}\n\n\t\t\t\t\t\t\t# 表格子字段特殊处理\n\t\t\t\t\t\t\tif /\\w+(\\.\\$\\.){1}\\w+/.test(key)\n\t\t\t\t\t\t\t\tp_k = key.replace(/(\\w+)\\.\\$\\.\\w+/ig, \"$1\")\n\t\t\t\t\t\t\t\ts_k = key.replace(/\\w+\\.\\$\\.(\\w+)/ig, \"$1\")\n\t\t\t\t\t\t\t\treference_ids = parent[p_k].getProperty(s_k)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\treference_ids = key.split('.').reduce (o, x) ->\n\t\t\t\t\t\t\t\t\t\to?[x]\n\t\t\t\t\t\t\t\t, parent\n\n\t\t\t\t\t\t\treference_to = reference_field.reference_to\n\n\t\t\t\t\t\t\tif _.isFunction(reference_to)\n\t\t\t\t\t\t\t\treference_to = reference_to()\n\n\t\t\t\t\t\t\tif _.isArray(reference_to)\n\t\t\t\t\t\t\t\tif _.isObject(reference_ids) && !_.isArray(reference_ids)\n\t\t\t\t\t\t\t\t\treference_to = reference_ids.o\n\t\t\t\t\t\t\t\t\treference_ids = reference_ids.ids || []\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\treturn []\n\n\t\t\t\t\t\t\tif _.isArray(reference_ids)\n\t\t\t\t\t\t\t\tquery._id = {$in: reference_ids}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tquery._id = reference_ids\n\n\t\t\t\t\t\t\treference_to_object = Creator.getObject(reference_to, spaceId)\n\n\t\t\t\t\t\t\tname_field_key = reference_to_object.NAME_FIELD_KEY\n\n\t\t\t\t\t\t\tchildren_fields = {_id: 1, space: 1}\n\n\t\t\t\t\t\t\tif name_field_key\n\t\t\t\t\t\t\t\tchildren_fields[name_field_key] = 1\n\n\t\t\t\t\t\t\treturn Creator.getCollection(reference_to, spaceId).find(query, {\n\t\t\t\t\t\t\t\tfields: children_fields\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tcatch e\n\t\t\t\t\t\t\tconsole.log(reference_to, parent, e)\n\t\t\t\t\t\t\treturn []\n\t\t\t\t}\n\n\t\treturn data\n\telse\n\t\treturn {\n\t\t\tfind: ()->\n\t\t\t\tself.unblock();\n\t\t\t\treturn object_colleciton.find({_id: {$in: ids}}, {fields: fields})\n\t\t};\n\n","Meteor.publishComposite(\"steedos_object_tabular\", function(tableName, ids, fields, spaceId) {\n var _fields, _keys, _object, _object_name, data, keys, object_colleciton, reference_fields, self;\n if (!this.userId) {\n return this.ready();\n }\n check(tableName, String);\n check(ids, Array);\n check(fields, Match.Optional(Object));\n _object_name = tableName.replace(\"creator_\", \"\");\n _object = Creator.getObject(_object_name, spaceId);\n if (spaceId) {\n _object_name = Creator.getObjectName(_object);\n }\n object_colleciton = Creator.getCollection(_object_name);\n _fields = _object != null ? _object.fields : void 0;\n if (!_fields || !object_colleciton) {\n return this.ready();\n }\n reference_fields = _.filter(_fields, function(f) {\n return _.isFunction(f.reference_to) || !_.isEmpty(f.reference_to);\n });\n self = this;\n self.unblock();\n if (reference_fields.length > 0) {\n data = {\n find: function() {\n var field_keys;\n self.unblock();\n field_keys = {};\n _.each(_.keys(fields), function(f) {\n if (!/\\w+(\\.\\$){1}\\w?/.test(f)) {\n return field_keys[f] = 1;\n }\n });\n return object_colleciton.find({\n _id: {\n $in: ids\n }\n }, {\n fields: field_keys\n });\n }\n };\n data.children = [];\n keys = _.keys(fields);\n if (keys.length < 1) {\n keys = _.keys(_fields);\n }\n _keys = [];\n keys.forEach(function(key) {\n if (_object.schema._objectKeys[key + '.']) {\n _keys = _keys.concat(_.map(_object.schema._objectKeys[key + '.'], function(k) {\n return key + '.' + k;\n }));\n }\n return _keys.push(key);\n });\n _keys.forEach(function(key) {\n var reference_field;\n reference_field = _fields[key];\n if (reference_field && (_.isFunction(reference_field.reference_to) || !_.isEmpty(reference_field.reference_to))) {\n return data.children.push({\n find: function(parent) {\n var children_fields, e, name_field_key, p_k, query, reference_ids, reference_to, reference_to_object, s_k;\n try {\n self.unblock();\n query = {};\n if (/\\w+(\\.\\$\\.){1}\\w+/.test(key)) {\n p_k = key.replace(/(\\w+)\\.\\$\\.\\w+/ig, \"$1\");\n s_k = key.replace(/\\w+\\.\\$\\.(\\w+)/ig, \"$1\");\n reference_ids = parent[p_k].getProperty(s_k);\n } else {\n reference_ids = key.split('.').reduce(function(o, x) {\n return o != null ? o[x] : void 0;\n }, parent);\n }\n reference_to = reference_field.reference_to;\n if (_.isFunction(reference_to)) {\n reference_to = reference_to();\n }\n if (_.isArray(reference_to)) {\n if (_.isObject(reference_ids) && !_.isArray(reference_ids)) {\n reference_to = reference_ids.o;\n reference_ids = reference_ids.ids || [];\n } else {\n return [];\n }\n }\n if (_.isArray(reference_ids)) {\n query._id = {\n $in: reference_ids\n };\n } else {\n query._id = reference_ids;\n }\n reference_to_object = Creator.getObject(reference_to, spaceId);\n name_field_key = reference_to_object.NAME_FIELD_KEY;\n children_fields = {\n _id: 1,\n space: 1\n };\n if (name_field_key) {\n children_fields[name_field_key] = 1;\n }\n return Creator.getCollection(reference_to, spaceId).find(query, {\n fields: children_fields\n });\n } catch (error) {\n e = error;\n console.log(reference_to, parent, e);\n return [];\n }\n }\n });\n }\n });\n return data;\n } else {\n return {\n find: function() {\n self.unblock();\n return object_colleciton.find({\n _id: {\n $in: ids\n }\n }, {\n fields: fields\n });\n }\n };\n }\n});\n","Meteor.publish \"object_listviews\", (object_name, spaceId)->\n userId = this.userId\n return Creator.getCollection(\"object_listviews\").find({object_name: object_name, space: spaceId ,\"$or\":[{owner: userId}, {shared: true}]})","Meteor.publish \"user_tabular_settings\", (object_name)->\n userId = this.userId\n return Creator.Collections.settings.find({object_name: {$in: object_name}, record_id: {$in: [\"object_listviews\", \"object_gridviews\"]}, owner: userId})\n","Meteor.publish \"related_objects_records\", (object_name, related_object_name, related_field_name, record_id, spaceId)->\n\tuserId = this.userId\n\tif related_object_name == \"cfs.files.filerecord\"\n\t\tselector = {\"metadata.space\": spaceId}\n\telse\n\t\tselector = {space: spaceId}\n\t\n\tif related_object_name == \"cms_files\"\n\t\t# 附件的关联搜索条件是定死的\n\t\tselector[\"parent.o\"] = object_name\n\t\tselector[\"parent.ids\"] = [record_id]\n\telse\n\t\tselector[related_field_name] = record_id\n\n\tpermissions = Creator.getPermissions(related_object_name, spaceId, userId)\n\tif !permissions.viewAllRecords and permissions.allowRead\n\t\tselector.owner = userId\n\t\n\treturn Creator.getCollection(related_object_name).find(selector)","Meteor.publish(\"related_objects_records\", function(object_name, related_object_name, related_field_name, record_id, spaceId) {\n var permissions, selector, userId;\n userId = this.userId;\n if (related_object_name === \"cfs.files.filerecord\") {\n selector = {\n \"metadata.space\": spaceId\n };\n } else {\n selector = {\n space: spaceId\n };\n }\n if (related_object_name === \"cms_files\") {\n selector[\"parent.o\"] = object_name;\n selector[\"parent.ids\"] = [record_id];\n } else {\n selector[related_field_name] = record_id;\n }\n permissions = Creator.getPermissions(related_object_name, spaceId, userId);\n if (!permissions.viewAllRecords && permissions.allowRead) {\n selector.owner = userId;\n }\n return Creator.getCollection(related_object_name).find(selector);\n});\n","Meteor.publish 'space_user_info', (spaceId, userId)->\n\treturn Creator.getCollection(\"space_users\").find({space: spaceId, user: userId})","\nif Meteor.isServer\n\n\tMeteor.publish 'contacts_view_limits', (spaceId)->\n\n\t\tunless this.userId\n\t\t\treturn this.ready()\n\n\t\tunless spaceId\n\t\t\treturn this.ready()\n\n\t\tselector =\n\t\t\tspace: spaceId\n\t\t\tkey: 'contacts_view_limits'\n\n\t\treturn db.space_settings.find(selector)","if (Meteor.isServer) {\n Meteor.publish('contacts_view_limits', function(spaceId) {\n var selector;\n if (!this.userId) {\n return this.ready();\n }\n if (!spaceId) {\n return this.ready();\n }\n selector = {\n space: spaceId,\n key: 'contacts_view_limits'\n };\n return db.space_settings.find(selector);\n });\n}\n","\nif Meteor.isServer\n\n\tMeteor.publish 'contacts_no_force_phone_users', (spaceId)->\n\n\t\tunless this.userId\n\t\t\treturn this.ready()\n\n\t\tunless spaceId\n\t\t\treturn this.ready()\n\n\t\tselector =\n\t\t\tspace: spaceId\n\t\t\tkey: 'contacts_no_force_phone_users'\n\n\t\treturn db.space_settings.find(selector)","if (Meteor.isServer) {\n Meteor.publish('contacts_no_force_phone_users', function(spaceId) {\n var selector;\n if (!this.userId) {\n return this.ready();\n }\n if (!spaceId) {\n return this.ready();\n }\n selector = {\n space: spaceId,\n key: 'contacts_no_force_phone_users'\n };\n return db.space_settings.find(selector);\n });\n}\n","if Meteor.isServer\n\tMeteor.publish 'space_need_to_confirm', ()->\n\t\tuserId = this.userId\n\t\treturn db.space_users.find({user: userId, invite_state: \"pending\"})","if (Meteor.isServer) {\n Meteor.publish('space_need_to_confirm', function() {\n var userId;\n userId = this.userId;\n return db.space_users.find({\n user: userId,\n invite_state: \"pending\"\n });\n });\n}\n","permissionManagerForInitApproval = {}\n\npermissionManagerForInitApproval.getFlowPermissions = (flow_id, user_id) ->\n\t# 根据:flow_id查到对应的flow\n\tflow = uuflowManagerForInitApproval.getFlow(flow_id)\n\tspace_id = flow.space\n\t# 根据space_id和:user_id到organizations表中查到用户所属所有的org_id(包括上级组ID)\n\torg_ids = new Array\n\torganizations = db.organizations.find({\n\t\tspace: space_id, users: user_id }, { fields: { parents: 1 } }).fetch()\n\t_.each(organizations, (org) ->\n\t\torg_ids.push(org._id)\n\t\tif org.parents\n\t\t\t_.each(org.parents, (parent_id) ->\n\t\t\t\torg_ids.push(parent_id)\n\t\t\t)\n\t)\n\torg_ids = _.uniq(org_ids)\n\tmy_permissions = new Array\n\tif flow.perms\n\t\t# 判断flow.perms.users_can_admin中是否包含当前用户,\n\t\t# 或者flow.perms.orgs_can_add是否包含4步得到的org_id数组中的任何一个,\n\t\t# 若是,则在返回的数组中加上add\n\t\tif flow.perms.users_can_add\n\t\t\tusers_can_add = flow.perms.users_can_add\n\t\t\tif users_can_add.includes(user_id)\n\t\t\t\tmy_permissions.push(\"add\")\n\n\t\tif flow.perms.orgs_can_add\n\t\t\torgs_can_add = flow.perms.orgs_can_add\n\t\t\t_.each(org_ids, (org_id) ->\n\t\t\t\tif orgs_can_add.includes(org_id)\n\t\t\t\t\tmy_permissions.push(\"add\")\n\t\t\t)\n\t\t# 判断flow.perms.users_can_monitor中是否包含当前用户,\n\t\t# 或者flow.perms.orgs_can_monitor是否包含4步得到的org_id数组中的任何一个,\n\t\t# 若是,则在返回的数组中加上monitor\n\t\tif flow.perms.users_can_monitor\n\t\t\tusers_can_monitor = flow.perms.users_can_monitor\n\t\t\tif users_can_monitor.includes(user_id)\n\t\t\t\tmy_permissions.push(\"monitor\")\n\n\t\tif flow.perms.orgs_can_monitor\n\t\t\torgs_can_monitor = flow.perms.orgs_can_monitor\n\t\t\t_.each(org_ids, (org_id) ->\n\t\t\t\tif orgs_can_monitor.includes(org_id)\n\t\t\t\t\tmy_permissions.push(\"monitor\")\n\t\t\t)\n\t\t# 判断flow.perms.users_can_admin中是否包含当前用户,\n\t\t# 或者flow.perms.orgs_can_admin是否包含4步得到的org_id数组中的任何一个,\n\t\t# 若是,则在返回的数组中加上admin\n\t\tif flow.perms.users_can_admin\n\t\t\tusers_can_admin = flow.perms.users_can_admin\n\t\t\tif users_can_admin.includes(user_id)\n\t\t\t\tmy_permissions.push(\"admin\")\n\n\t\tif flow.perms.orgs_can_admin\n\t\t\torgs_can_admin = flow.perms.orgs_can_admin\n\t\t\t_.each(org_ids, (org_id) ->\n\t\t\t\tif orgs_can_admin.includes(org_id)\n\t\t\t\t\tmy_permissions.push(\"admin\")\n\t\t\t)\n\n\tmy_permissions = _.uniq(my_permissions)\n\treturn my_permissions"," \n\npermissionManagerForInitApproval = {};\n\npermissionManagerForInitApproval.getFlowPermissions = function(flow_id, user_id) {\n var flow, my_permissions, org_ids, organizations, orgs_can_add, orgs_can_admin, orgs_can_monitor, space_id, users_can_add, users_can_admin, users_can_monitor;\n flow = uuflowManagerForInitApproval.getFlow(flow_id);\n space_id = flow.space;\n org_ids = new Array;\n organizations = db.organizations.find({\n space: space_id,\n users: user_id\n }, {\n fields: {\n parents: 1\n }\n }).fetch();\n _.each(organizations, function(org) {\n org_ids.push(org._id);\n if (org.parents) {\n return _.each(org.parents, function(parent_id) {\n return org_ids.push(parent_id);\n });\n }\n });\n org_ids = _.uniq(org_ids);\n my_permissions = new Array;\n if (flow.perms) {\n if (flow.perms.users_can_add) {\n users_can_add = flow.perms.users_can_add;\n if (users_can_add.includes(user_id)) {\n my_permissions.push(\"add\");\n }\n }\n if (flow.perms.orgs_can_add) {\n orgs_can_add = flow.perms.orgs_can_add;\n _.each(org_ids, function(org_id) {\n if (orgs_can_add.includes(org_id)) {\n return my_permissions.push(\"add\");\n }\n });\n }\n if (flow.perms.users_can_monitor) {\n users_can_monitor = flow.perms.users_can_monitor;\n if (users_can_monitor.includes(user_id)) {\n my_permissions.push(\"monitor\");\n }\n }\n if (flow.perms.orgs_can_monitor) {\n orgs_can_monitor = flow.perms.orgs_can_monitor;\n _.each(org_ids, function(org_id) {\n if (orgs_can_monitor.includes(org_id)) {\n return my_permissions.push(\"monitor\");\n }\n });\n }\n if (flow.perms.users_can_admin) {\n users_can_admin = flow.perms.users_can_admin;\n if (users_can_admin.includes(user_id)) {\n my_permissions.push(\"admin\");\n }\n }\n if (flow.perms.orgs_can_admin) {\n orgs_can_admin = flow.perms.orgs_can_admin;\n _.each(org_ids, function(org_id) {\n if (orgs_can_admin.includes(org_id)) {\n return my_permissions.push(\"admin\");\n }\n });\n }\n }\n my_permissions = _.uniq(my_permissions);\n return my_permissions;\n};\n","# 发起审批\n_eval = require('eval')\nobjectql = require('@steedos/objectql');\n\ngetObjectConfig = (objectApiName) ->\n\treturn objectql.getObject(objectApiName).toConfig()\n\ngetObjectNameFieldKey = (objectApiName) ->\n\treturn objectql.getObject(objectApiName).NAME_FIELD_KEY\n\ngetRelateds = (objectApiName) ->\n\treturn Meteor.wrapAsync((objectApiName, cb) ->\n\t\tobjectql.getObject(objectApiName).getRelateds().then (resolve, reject) ->\n\t\t\tcb(reject, resolve)\n\t\t)(objectApiName)\n\nobjectFindOne = (objectApiName, query) ->\n\treturn Meteor.wrapAsync((objectApiName, query, cb) ->\n\t\tobjectql.getObject(objectApiName).find(query).then (resolve, reject) ->\n\t\t\tif (resolve && resolve.length > 0)\n\t\t\t\tcb(reject, resolve[0])\n\t\t\telse\n\t\t\t\tcb(reject, null)\n\t\t)(objectApiName, query)\n\nobjectFind = (objectApiName, query) ->\n\treturn Meteor.wrapAsync((objectApiName, query, cb) ->\n\t\tobjectql.getObject(objectApiName).find(query).then (resolve, reject) ->\n\t\t\tcb(reject, resolve)\n\t\t)(objectApiName, query)\n\nobjectUpdate = (objectApiName, id, data) ->\n\treturn Meteor.wrapAsync((objectApiName, id, data, cb) ->\n\t\tobjectql.getObject(objectApiName).update(id, data).then (resolve, reject) ->\n\t\t\tcb(reject, resolve)\n\t\t)(objectApiName, id, data)\n\ngetRelatedObjectFieldCode = (relatedObjectsKeys, key) ->\n\treturn _.find relatedObjectsKeys, (relatedObjectsKey) ->\n\t\treturn key.startsWith(relatedObjectsKey + '.')\n\ngetFormTableFieldCode = (formTableFieldsCode, key) ->\n\treturn _.find formTableFieldsCode, (formTableFieldCode) ->\n\t\treturn key.startsWith(formTableFieldCode + '.')\n\ngetFormTableField = (formTableFields, key) ->\n\treturn _.find formTableFields, (f) ->\n\t\treturn f.code == key\n\ngetFormField = (formFields, key) ->\n\tff = null\n\t_.forEach formFields, (f) ->\n\t\tif ff\n\t\t\treturn\n\t\tif f.type == 'section'\n\t\t\tff = _.find f.fields, (sf) ->\n\t\t\t\treturn sf.code == key\n\t\telse if f.code == key\n\t\t\tff = f\n\n\treturn ff\n\ngetFormTableSubField = (tableField, subFieldCode) ->\n\treturn _.find tableField.fields, (f) ->\n\t\treturn f.code == subFieldCode\n\ngetFieldOdataValue = (objName, id, referenceToFieldName) ->\n\t# obj = Creator.getCollection(objName)\n\tobj = objectql.getObject(objName)\n\tnameKey = getObjectNameFieldKey(objName)\n\tif !obj\n\t\treturn\n\tif _.isString id\n\t\t# _record = obj.findOne(id)\n\t\t_record = objectFindOne(objName, { filters: [[referenceToFieldName, '=', id]]})\n\t\tif _record\n\t\t\t_record['@label'] = _record[nameKey]\n\t\t\treturn _record\n\telse if _.isArray id\n\t\t_records = []\n\t\t# obj.find({ _id: { $in: id } })\n\t\tobjectFind(objName, { filters: [[referenceToFieldName, 'in', id]]}).forEach (_record) ->\n\t\t\t_record['@label'] = _record[nameKey]\n\t\t\t_records.push _record\n\t\tif !_.isEmpty _records\n\t\t\treturn _records\n\treturn\n\ngetSelectUserValue = (userId, spaceId) ->\n\tsu = Creator.getCollection('space_users').findOne({ space: spaceId, user: userId })\n\tsu.id = userId\n\treturn su\n\ngetSelectUserValues = (userIds, spaceId) ->\n\tsus = []\n\tif _.isArray userIds\n\t\t_.each userIds, (userId) ->\n\t\t\tsu = getSelectUserValue(userId, spaceId)\n\t\t\tif su\n\t\t\t\tsus.push(su)\n\treturn sus\n\ngetSelectOrgValue = (orgId, spaceId) ->\n\torg = Creator.getCollection('organizations').findOne(orgId, { fields: { _id: 1, name: 1, fullname: 1 } })\n\torg.id = orgId\n\treturn org\n\ngetSelectOrgValues = (orgIds, spaceId) ->\n\torgs = []\n\tif _.isArray orgIds\n\t\t_.each orgIds, (orgId) ->\n\t\t\torg = getSelectOrgValue(orgId, spaceId)\n\t\t\tif org\n\t\t\t\torgs.push(org)\n\treturn orgs\n\ngetFileFieldValue = (recordFieldId, fType)->\n\tif _.isEmpty(recordFieldId)\n\t\treturn \n\tif fType == 'image'\n\t\tcollection = 'images'\n\telse if fType == 'file'\n\t\tcollection = 'files'\n\tif _.isString(recordFieldId)\n\t\tquery = {_id: {$in: [recordFieldId]}}\n\telse\n\t\tquery = {_id: {$in: recordFieldId}}\n\tfiles = Creator.Collections[\"cfs.#{collection}.filerecord\"].find(query);\n\tvalue = []\n\tfiles.forEach (f) ->\n\t\tnewFile = new FS.File()\n\t\tnewFile.attachData f.createReadStream('files'), {\n\t\t\t\ttype: f.original.type\n\t\t}, (err) ->\n\t\t\tif (err)\n\t\t\t\tthrow new Meteor.Error(err.error, err.reason)\n\n\t\t\tnewFile.name(f.name())\n\t\t\tnewFile.size(f.size())\n\t\t\tmetadata = {\n\t\t\t\towner: f.metadata.owner\n\t\t\t}\n\t\t\tnewFile.metadata = metadata;\n\t\t\tnewFile._id = Creator.Collections.instances._makeNewID();\n\t\t\tcfs[collection].insert(newFile);\n\t\t\tvalue.push(newFile._id)\n\tif value.length > 0\n\t\tif _.isString(recordFieldId)\n\t\t\treturn value[0]\n\t\telse\n\t\t\treturn value;\n\ngetInstanceFieldValue = (objField, formField, record, object_field, spaceId) ->\n\trecordFieldValue = record[objField.name]\n\tvalue\n\t# lookup、master_detail字段同步到odata字段\n\tif formField && objField && formField.type == 'odata' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)\n\t\treferenceToFieldName = objField.reference_to_field || '_id'\n\t\treferenceToObjectName = objField.reference_to\n\t\todataFieldValue\n\t\tif objField.multiple && formField.is_multiselect\n\t\t\todataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName)\n\t\telse if !objField.multiple && !formField.is_multiselect\n\t\t\todataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName)\n\t\tvalue = odataFieldValue\n\telse if formField && objField && ['user', 'group'].includes(formField.type) && ['lookup', 'master_detail'].includes(objField.type) && (['users', 'organizations'].includes(objField.reference_to) || ('space_users' == objField.reference_to && 'user' == objField.reference_to_field) )\n\t\tif !_.isEmpty(recordFieldValue)\n\t\t\tselectFieldValue\n\t\t\tif formField.type == 'user'\n\t\t\t\tif objField.multiple && formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectUserValues(recordFieldValue, spaceId)\n\t\t\t\telse if !objField.multiple && !formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectUserValue(recordFieldValue, spaceId)\n\t\t\telse if formField.type == 'group'\n\t\t\t\tif objField.multiple && formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectOrgValues(recordFieldValue, spaceId)\n\t\t\t\telse if !objField.multiple && !formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectOrgValue(recordFieldValue, spaceId)\n\t\t\tif selectFieldValue\n\t\t\t\tvalue = selectFieldValue\n\telse if formField && objField && formField.type == 'date' && recordFieldValue\n\t\tvalue = uuflowManagerForInitApproval.formatDate(recordFieldValue) # Date转String\n\telse if formField && objField && recordFieldValue && (formField.type == 'image' || formField.type == 'file')\n\t\tvalue = getFileFieldValue(recordFieldValue, formField.type)\n\telse if formField && objField && recordFieldValue && formField.type == 'lookup' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)\n\t\tvalue = recordFieldValue\n\telse if formField && objField && recordFieldValue && (formField.type == 'multiSelect')\n\t\tvalue = recordFieldValue.join(',')\n\telse if record.hasOwnProperty(object_field)\n\t\tvalue = recordFieldValue\n\t\n\treturn value\n\nuuflowManagerForInitApproval = {}\n\nuuflowManagerForInitApproval.check_authorization = (req) ->\n\tquery = req.query\n\tuserId = query[\"X-User-Id\"]\n\tauthToken = query[\"X-Auth-Token\"]\n\n\tif not userId or not authToken\n\t\tthrow new Meteor.Error 401, 'Unauthorized'\n\n\thashedToken = Accounts._hashLoginToken(authToken)\n\tuser = Meteor.users.findOne\n\t\t_id: userId,\n\t\t\"services.resume.loginTokens.hashedToken\": hashedToken\n\n\tif not user\n\t\tthrow new Meteor.Error 401, 'Unauthorized'\n\n\treturn user\n\nuuflowManagerForInitApproval.getSpace = (space_id) ->\n\tspace = Creator.Collections.spaces.findOne(space_id)\n\tif not space\n\t\tthrow new Meteor.Error('error!', \"space_id有误或此space已经被删除\")\n\treturn space\n\nuuflowManagerForInitApproval.getFlow = (flow_id) ->\n\tflow = Creator.Collections.flows.findOne(flow_id)\n\tif not flow\n\t\tthrow new Meteor.Error('error!', \"id有误或此流程已经被删除\")\n\treturn flow\n\nuuflowManagerForInitApproval.getSpaceUser = (space_id, user_id) ->\n\tspace_user = Creator.Collections.space_users.findOne({ space: space_id, user: user_id })\n\tif not space_user\n\t\tthrow new Meteor.Error('error!', \"user_id对应的用户不属于当前space\")\n\treturn space_user\n\nuuflowManagerForInitApproval.getSpaceUserOrgInfo = (space_user) ->\n\tinfo = new Object\n\tinfo.organization = space_user.organization\n\torg = Creator.Collections.organizations.findOne(space_user.organization, { fields: { name: 1 , fullname: 1 } })\n\tinfo.organization_name = org.name\n\tinfo.organization_fullname = org.fullname\n\treturn info\n\nuuflowManagerForInitApproval.isFlowEnabled = (flow) ->\n\tif flow.state isnt \"enabled\"\n\t\tthrow new Meteor.Error('error!', \"流程未启用,操作失败\")\n\nuuflowManagerForInitApproval.isFlowSpaceMatched = (flow, space_id) ->\n\tif flow.space isnt space_id\n\t\tthrow new Meteor.Error('error!', \"流程和工作区ID不匹配\")\n\nuuflowManagerForInitApproval.getForm = (form_id) ->\n\tform = Creator.Collections.forms.findOne(form_id)\n\tif not form\n\t\tthrow new Meteor.Error('error!', '表单ID有误或此表单已经被删除')\n\n\treturn form\n\nuuflowManagerForInitApproval.getCategory = (category_id) ->\n\treturn Creator.Collections.categories.findOne(category_id)\n\nuuflowManagerForInitApproval.checkSyncDirection = (object_name, flow_id) ->\n\tow = Creator.Collections.object_workflows.findOne({\n\t\tobject_name: object_name,\n\t\tflow_id: flow_id\n\t})\n\tif !ow\n\t\tthrow new Meteor.Error('error!', '未找到对象流程映射记录。')\n\tsyncDirection = ow.sync_direction || 'both'\n\tif !['both', 'obj_to_ins'].includes(syncDirection)\n\t\tthrow new Meteor.Error('error!', '不支持的同步方向。')\n\n\treturn \n\nuuflowManagerForInitApproval.create_instance = (instance_from_client, user_info) ->\n\tcheck instance_from_client[\"applicant\"], String\n\tcheck instance_from_client[\"space\"], String\n\tcheck instance_from_client[\"flow\"], String\n\tcheck instance_from_client[\"record_ids\"], [{o: String, ids: [String]}]\n\n\t# 校验同步方向\n\tuuflowManagerForInitApproval.checkSyncDirection(instance_from_client[\"record_ids\"][0].o, instance_from_client[\"flow\"])\n\n\t# 校验是否record已经发起的申请还在审批中\n\tuuflowManagerForInitApproval.checkIsInApproval(instance_from_client[\"record_ids\"][0], instance_from_client[\"space\"])\n\n\tspace_id = instance_from_client[\"space\"]\n\tflow_id = instance_from_client[\"flow\"]\n\tuser_id = user_info._id\n\t# 获取前台所传的trace\n\ttrace_from_client = null\n\t# 获取前台所传的approve\n\tapprove_from_client = null\n\tif instance_from_client[\"traces\"] and instance_from_client[\"traces\"][0]\n\t\ttrace_from_client = instance_from_client[\"traces\"][0]\n\t\tif trace_from_client[\"approves\"] and trace_from_client[\"approves\"][0]\n\t\t\tapprove_from_client = instance_from_client[\"traces\"][0][\"approves\"][0]\n\n\t# 获取一个space\n\tspace = uuflowManagerForInitApproval.getSpace(space_id)\n\t# 获取一个flow\n\tflow = uuflowManagerForInitApproval.getFlow(flow_id)\n\t# 获取一个space下的一个user\n\tspace_user = uuflowManagerForInitApproval.getSpaceUser(space_id, user_id)\n\t# 获取space_user所在的部门信息\n\tspace_user_org_info = uuflowManagerForInitApproval.getSpaceUserOrgInfo(space_user)\n\t# 判断一个flow是否为启用状态\n\tuuflowManagerForInitApproval.isFlowEnabled(flow)\n\t# 判断一个flow和space_id是否匹配\n\tuuflowManagerForInitApproval.isFlowSpaceMatched(flow, space_id)\n\n\tform = uuflowManagerForInitApproval.getForm(flow.form)\n\n\tpermissions = permissionManager.getFlowPermissions(flow_id, user_id)\n\n\tif not permissions.includes(\"add\")\n\t\tthrow new Meteor.Error('error!', \"当前用户没有此流程的新建权限\")\n\n\tnow = new Date\n\tins_obj = {}\n\tins_obj._id = Creator.Collections.instances._makeNewID()\n\tins_obj.space = space_id\n\tins_obj.flow = flow_id\n\tins_obj.flow_version = flow.current._id\n\tins_obj.form = flow.form\n\tins_obj.form_version = flow.current.form_version\n\tins_obj.name = flow.name\n\tins_obj.submitter = user_id\n\tins_obj.submitter_name = user_info.name\n\tins_obj.applicant = if instance_from_client[\"applicant\"] then instance_from_client[\"applicant\"] else user_id\n\tins_obj.applicant_name = if instance_from_client[\"applicant_name\"] then instance_from_client[\"applicant_name\"] else user_info.name\n\tins_obj.applicant_organization = if instance_from_client[\"applicant_organization\"] then instance_from_client[\"applicant_organization\"] else space_user.organization\n\tins_obj.applicant_organization_name = if instance_from_client[\"applicant_organization_name\"] then instance_from_client[\"applicant_organization_name\"] else space_user_org_info.organization_name\n\tins_obj.applicant_organization_fullname = if instance_from_client[\"applicant_organization_fullname\"] then instance_from_client[\"applicant_organization_fullname\"] else space_user_org_info.organization_fullname\n\tins_obj.applicant_company = if instance_from_client[\"applicant_company\"] then instance_from_client[\"applicant_company\"] else space_user.company_id\n\tins_obj.state = 'draft'\n\tins_obj.code = ''\n\tins_obj.is_archived = false\n\tins_obj.is_deleted = false\n\tins_obj.created = now\n\tins_obj.created_by = user_id\n\tins_obj.modified = now\n\tins_obj.modified_by = user_id\n\n\tins_obj.record_ids = instance_from_client[\"record_ids\"]\n\n\tif space_user.company_id\n\t\tins_obj.company_id = space_user.company_id\n\n\t# 新建Trace\n\ttrace_obj = {}\n\ttrace_obj._id = new Mongo.ObjectID()._str\n\ttrace_obj.instance = ins_obj._id\n\ttrace_obj.is_finished = false\n\t# 当前最新版flow中开始节点\n\tstart_step = _.find(flow.current.steps, (step) ->\n\t\treturn step.step_type is 'start'\n\t)\n\ttrace_obj.step = start_step._id\n\ttrace_obj.name = start_step.name\n\n\ttrace_obj.start_date = now\n\t# 新建Approve\n\tappr_obj = {}\n\tappr_obj._id = new Mongo.ObjectID()._str\n\tappr_obj.instance = ins_obj._id\n\tappr_obj.trace = trace_obj._id\n\tappr_obj.is_finished = false\n\tappr_obj.user = if instance_from_client[\"applicant\"] then instance_from_client[\"applicant\"] else user_id\n\tappr_obj.user_name = if instance_from_client[\"applicant_name\"] then instance_from_client[\"applicant_name\"] else user_info.name\n\tappr_obj.handler = user_id\n\tappr_obj.handler_name = user_info.name\n\tappr_obj.handler_organization = space_user.organization\n\tappr_obj.handler_organization_name = space_user_org_info.name\n\tappr_obj.handler_organization_fullname = space_user_org_info.fullname\n\tappr_obj.type = 'draft'\n\tappr_obj.start_date = now\n\tappr_obj.read_date = now\n\tappr_obj.is_read = true\n\tappr_obj.is_error = false\n\tappr_obj.description = ''\n\trelatedTablesInfo = {}\n\tappr_obj.values = uuflowManagerForInitApproval.initiateValues(ins_obj.record_ids[0], flow_id, space_id, form.current.fields, relatedTablesInfo)\n\n\ttrace_obj.approves = [appr_obj]\n\tins_obj.traces = [trace_obj]\n\n\tins_obj.values = appr_obj.values\n\n\tins_obj.inbox_users = instance_from_client.inbox_users || []\n\n\tins_obj.current_step_name = start_step.name\n\n\tif flow.auto_remind is true\n\t\tins_obj.auto_remind = true\n\n\t# 新建申请单时,instances记录流程名称、流程分类名称 #1313\n\tins_obj.flow_name = flow.name\n\tif form.category\n\t\tcategory = uuflowManagerForInitApproval.getCategory(form.category)\n\t\tif category\n\t\t\tins_obj.category_name = category.name\n\t\t\tins_obj.category = category._id\n\n\tnew_ins_id = Creator.Collections.instances.insert(ins_obj)\n\n\tuuflowManagerForInitApproval.initiateRecordInstanceInfo(ins_obj.record_ids[0], new_ins_id, space_id)\n\n\t# uuflowManagerForInitApproval.initiateRelatedRecordInstanceInfo(relatedTablesInfo, new_ins_id, space_id)\n\n\tuuflowManagerForInitApproval.initiateAttach(ins_obj.record_ids[0], space_id, ins_obj._id, appr_obj._id)\n\n\treturn new_ins_id\n\nuuflowManagerForInitApproval.initiateValues = (recordIds, flowId, spaceId, fields, relatedTablesInfo) ->\n\tfieldCodes = []\n\t_.each fields, (f) ->\n\t\tif f.type == 'section'\n\t\t\t_.each f.fields, (ff) ->\n\t\t\t\tfieldCodes.push ff.code\n\t\telse\n\t\t\tfieldCodes.push f.code\n\n\tvalues = {}\n\tobjectName = recordIds.o\n\tobject = getObjectConfig(objectName)\n\trecordId = recordIds.ids[0]\n\tow = Creator.Collections.object_workflows.findOne({\n\t\tobject_name: objectName,\n\t\tflow_id: flowId\n\t})\n\t# record = Creator.getCollection(objectName, spaceId).findOne(recordId)\n\trecord = objectFindOne(objectName, { filters: [['_id', '=', recordId]]})\n\tflow = Creator.getCollection('flows').findOne(flowId, { fields: { form: 1 } })\n\tif ow and record\n\t\tform = Creator.getCollection(\"forms\").findOne(flow.form)\n\t\tformFields = form.current.fields || []\n\t\trelatedObjects = getRelateds(objectName)\n\t\trelatedObjectsKeys = _.pluck(relatedObjects, 'object_name')\n\t\tformTableFields = _.filter formFields, (formField) ->\n\t\t\treturn formField.type == 'table'\n\t\tformTableFieldsCode = _.pluck(formTableFields, 'code')\n\n\t\ttableFieldCodes = []\n\t\ttableFieldMap = []\n\t\ttableToRelatedMap = {}\n\n\t\tow.field_map?.forEach (fm) ->\n\t\t\tobject_field = fm.object_field\n\t\t\tworkflow_field = fm.workflow_field\n\t\t\tif !object_field || !workflow_field\n\t\t\t\tthrow new Meteor.Error(400, '未找到字段,请检查对象流程映射字段配置')\n\t\t\trelatedObjectFieldCode = getRelatedObjectFieldCode(relatedObjectsKeys, object_field)\n\t\t\tformTableFieldCode = getFormTableFieldCode(formTableFieldsCode, workflow_field)\n\t\t\tobjField = object.fields[object_field]\n\t\t\tformField = getFormField(formFields, workflow_field)\n\t\t\trecordFieldValue = record[object_field]\n\t\t\t# 处理子表字段\n\t\t\tif relatedObjectFieldCode\n\t\t\t\t\n\t\t\t\toTableCode = object_field.split('.')[0]\n\t\t\t\toTableFieldCode = object_field.split('.')[1]\n\t\t\t\ttableToRelatedMapKey = oTableCode\n\t\t\t\tif !tableToRelatedMap[tableToRelatedMapKey]\n\t\t\t\t\ttableToRelatedMap[tableToRelatedMapKey] = {}\n\n\t\t\t\tif formTableFieldCode\n\t\t\t\t\twTableCode = workflow_field.split('.')[0]\n\t\t\t\t\ttableToRelatedMap[tableToRelatedMapKey]['_FROM_TABLE_CODE'] = wTableCode\n\n\t\t\t\ttableToRelatedMap[tableToRelatedMapKey][oTableFieldCode] = workflow_field\n\t\t\t# 判断是否是表格字段\n\t\t\telse if workflow_field.indexOf('.') > 0 and object_field.indexOf('.$.') > 0\n\t\t\t\twTableCode = workflow_field.split('.')[0]\n\t\t\t\toTableCode = object_field.split('.$.')[0]\n\t\t\t\tif record.hasOwnProperty(oTableCode) and _.isArray(record[oTableCode])\n\t\t\t\t\ttableFieldCodes.push(JSON.stringify({\n\t\t\t\t\t\tworkflow_table_field_code: wTableCode,\n\t\t\t\t\t\tobject_table_field_code: oTableCode\n\t\t\t\t\t}))\n\t\t\t\t\ttableFieldMap.push(fm)\n\t\t\t\telse if oTableCode.indexOf('.') > 0 # 说明是关联表的grid字段\n\t\t\t\t\toTableCodeReferenceFieldCode = oTableCode.split('.')[0];\n\t\t\t\t\tgridCode = oTableCode.split('.')[1];\n\t\t\t\t\toTableCodeReferenceField = object.fields[oTableCodeReferenceFieldCode];\n\t\t\t\t\tif oTableCodeReferenceField && ['lookup', 'master_detail'].includes(oTableCodeReferenceField.type) && _.isString(oTableCodeReferenceField.reference_to)\n\t\t\t\t\t\tif record[oTableCode]\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\treferenceToFieldName = oTableCodeReferenceField.reference_to_field || '_id';\n\t\t\t\t\t\treferenceToObjectName = oTableCodeReferenceField.reference_to;\n\t\t\t\t\t\treferenceToFieldValue = record[oTableCodeReferenceField.name];\n\t\t\t\t\t\treferenceToDoc = getFieldOdataValue(referenceToObjectName, referenceToFieldValue, referenceToFieldName);\n\t\t\t\t\t\tif referenceToDoc[gridCode]\n\t\t\t\t\t\t\trecord[oTableCode] = referenceToDoc[gridCode];\n\t\t\t\t\t\t\ttableFieldCodes.push(JSON.stringify({\n\t\t\t\t\t\t\t\tworkflow_table_field_code: wTableCode,\n\t\t\t\t\t\t\t\tobject_table_field_code: oTableCode\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\treturn tableFieldMap.push(fm);\n\n\t\t\t# 处理lookup、master_detail类型字段\n\t\t\telse if object_field.indexOf('.') > 0 and object_field.indexOf('.$.') == -1\n\t\t\t\tobjectFieldName = object_field.split('.')[0]\n\t\t\t\tlookupFieldName = object_field.split('.')[1]\n\t\t\t\tif object\n\t\t\t\t\tobjectField = object.fields[objectFieldName]\n\t\t\t\t\tif objectField && formField && ['lookup', 'master_detail'].includes(objectField.type) && _.isString(objectField.reference_to)\n\t\t\t\t\t\tlookupObjectRecord = objectFindOne(objectField.reference_to, { filters: [['_id', '=', record[objectFieldName]]], fields: [lookupFieldName] })\n\t\t\t\t\t\tif !lookupObjectRecord\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\tobjectFieldObjectName = objectField.reference_to\n\t\t\t\t\t\tlookupFieldObj = getObjectConfig(objectFieldObjectName)\n\t\t\t\t\t\tobjectLookupField = lookupFieldObj.fields[lookupFieldName]\n\n\t\t\t\t\t\tvalues[workflow_field] = getInstanceFieldValue(objectLookupField, formField, lookupObjectRecord, lookupFieldName, spaceId)\n\t\t\telse\n\t\t\t\tvalues[workflow_field] = getInstanceFieldValue(objField, formField, record, object_field, spaceId)\n\n\t\t# 表格字段\n\t\t_.uniq(tableFieldCodes).forEach (tfc) ->\n\t\t\tc = JSON.parse(tfc)\n\t\t\tvalues[c.workflow_table_field_code] = []\n\t\t\trecord[c.object_table_field_code].forEach (tr) ->\n\t\t\t\tnewTr = {}\n\t\t\t\t_.each tr, (v, k) ->\n\t\t\t\t\ttableFieldMap.forEach (tfm) ->\n\t\t\t\t\t\tif tfm.object_field is (c.object_table_field_code + '.$.' + k)\n\t\t\t\t\t\t\twTdCode = tfm.workflow_field.split('.')[1]\n\t\t\t\t\t\t\tnewTr[wTdCode] = v\n\t\t\t\tif not _.isEmpty(newTr)\n\t\t\t\t\tvalues[c.workflow_table_field_code].push(newTr)\n\n\t\t# 同步子表数据至表单表格\n\t\t_.each tableToRelatedMap, (map, key) ->\n\t\t\ttableCode = map._FROM_TABLE_CODE\n\t\t\tformTableField = getFormTableField(formTableFields, tableCode)\n\t\t\tif !tableCode\n\t\t\t\tconsole.warn('tableToRelated: [' + key + '] missing corresponding table.')\n\t\t\telse\n\t\t\t\trelatedObjectName = key\n\t\t\t\ttableValues = []\n\t\t\t\trelatedTableItems = []\n\t\t\t\trelatedObject = getObjectConfig(relatedObjectName)\n\t\t\t\trelatedField = _.find relatedObject.fields, (f) ->\n\t\t\t\t\treturn ['lookup', 'master_detail'].includes(f.type) && f.reference_to == objectName\n\n\t\t\t\trelatedFieldName = relatedField.name\n\n\t\t\t\trelatedRecords = objectFind(relatedObjectName, {\n\t\t\t\t\tfilters: [\n\t\t\t\t\t\t[relatedFieldName, '=', recordId]\n\t\t\t\t\t]\n\t\t\t\t})\n\n\t\t\t\trelatedRecords.forEach (rr) ->\n\t\t\t\t\ttableValueItem = {}\n\t\t\t\t\t_.each map, (valueKey, fieldKey) ->\n\t\t\t\t\t\tif fieldKey != '_FROM_TABLE_CODE'\n\t\t\t\t\t\t\ttableFieldValue\n\t\t\t\t\t\t\tformFieldKey\n\t\t\t\t\t\t\tif valueKey.startsWith(tableCode + '.')\n\t\t\t\t\t\t\t\tformFieldKey = (valueKey.split(\".\")[1])\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tformFieldKey = valueKey\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tformField = getFormTableSubField(formTableField, formFieldKey)\n\t\t\t\t\t\t\trelatedObjectField = relatedObject.fields[fieldKey]\n\t\t\t\t\t\t\tif !formField || !relatedObjectField\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\ttableFieldValue = getInstanceFieldValue(relatedObjectField, formField, rr, fieldKey, spaceId)\n\t\t\t\t\t\t\ttableValueItem[formFieldKey] = tableFieldValue\n\t\t\t\t\tif !_.isEmpty(tableValueItem)\n\t\t\t\t\t\ttableValueItem._id = rr._id\n\t\t\t\t\t\ttableValues.push(tableValueItem)\n\t\t\t\t\t\trelatedTableItems.push({ _table: { _id: rr._id, _code: tableCode } } )\n\n\t\t\t\tvalues[tableCode] = tableValues\n\t\t\t\trelatedTablesInfo[relatedObjectName] = relatedTableItems\n\n\t\t# 如果配置了脚本则执行脚本\n\t\tif ow.field_map_script\n\t\t\t_.extend(values, uuflowManagerForInitApproval.evalFieldMapScript(ow.field_map_script, objectName, spaceId, recordId))\n\n\t# 过滤掉values中的非法key\n\tfilterValues = {}\n\t_.each _.keys(values), (k) ->\n\t\tif fieldCodes.includes(k)\n\t\t\tfilterValues[k] = values[k]\n\n\treturn filterValues\n\nuuflowManagerForInitApproval.evalFieldMapScript = (field_map_script, objectName, spaceId, objectId) ->\n\t# record = Creator.getCollection(objectName, spaceId).findOne(objectId)\n\trecord = objectFindOne(objectName, { filters: [['_id', '=', objectId]] })\n\tscript = \"module.exports = function (record) { \" + field_map_script + \" }\"\n\tfunc = _eval(script, \"field_map_script\")\n\tvalues = func(record)\n\tif _.isObject values\n\t\treturn values\n\telse\n\t\tconsole.error \"evalFieldMapScript: 脚本返回值类型不是对象\"\n\treturn {}\n\n\n\nuuflowManagerForInitApproval.initiateAttach = (recordIds, spaceId, insId, approveId) ->\n\n\tCreator.Collections['cms_files'].find({\n\t\tspace: spaceId,\n\t\tparent: recordIds\n\t}).forEach (cf) ->\n\t\t_.each cf.versions, (versionId, idx) ->\n\t\t\tf = Creator.Collections['cfs.files.filerecord'].findOne(versionId)\n\t\t\tnewFile = new FS.File()\n\n\t\t\tnewFile.attachData f.createReadStream('files'), {\n\t\t\t\t\ttype: f.original.type\n\t\t\t}, (err) ->\n\t\t\t\tif (err)\n\t\t\t\t\tthrow new Meteor.Error(err.error, err.reason)\n\n\t\t\t\tnewFile.name(f.name())\n\t\t\t\tnewFile.size(f.size())\n\t\t\t\tmetadata = {\n\t\t\t\t\towner: f.metadata.owner,\n\t\t\t\t\towner_name: f.metadata.owner_name,\n\t\t\t\t\tspace: spaceId,\n\t\t\t\t\tinstance: insId,\n\t\t\t\t\tapprove: approveId\n\t\t\t\t\tparent: cf._id\n\t\t\t\t}\n\n\t\t\t\tif idx is 0\n\t\t\t\t\tmetadata.current = true\n\n\t\t\t\tnewFile.metadata = metadata\n\t\t\t\tcfs.instances.insert(newFile)\n\n\treturn\n\nuuflowManagerForInitApproval.initiateRecordInstanceInfo = (recordIds, insId, spaceId) ->\n\t# Creator.getCollection(recordIds.o, spaceId).update(recordIds.ids[0], {\n\t# \t$push: {\n\t# \t\tinstances: {\n\t# \t\t\t$each: [{\n\t# \t\t\t\t_id: insId,\n\t# \t\t\t\tstate: 'draft'\n\t# \t\t\t}],\n\t# \t\t\t$position: 0\n\t# \t\t}\n\t# \t},\n\t# \t$set: {\n\t# \t\tlocked: true\n\t# \t\tinstance_state: 'draft'\n\t# \t}\n\t# })\n\tobjectUpdate(recordIds.o, recordIds.ids[0], {\n\t\tinstances: [{\n\t\t\t_id: insId,\n\t\t\tstate: 'draft'\n\t\t}],\n\t\tlocked: true,\n\t\tinstance_state: 'draft'\n\t})\n\n\treturn\n\n\nuuflowManagerForInitApproval.initiateRelatedRecordInstanceInfo = (relatedTablesInfo, insId, spaceId) ->\n\t_.each relatedTablesInfo, (tableItems, relatedObjectName) ->\n\t\trelatedCollection = Creator.getCollection(relatedObjectName, spaceId)\n\t\t_.each tableItems, (item) ->\n\t\t\trelatedCollection.direct.update(item._table._id, {\n\t\t\t\t$set: {\n\t\t\t\t\tinstances: [{\n\t\t\t\t\t\t_id: insId,\n\t\t\t\t\t\tstate: 'draft'\n\t\t\t\t\t}],\n\t\t\t\t\t_table: item._table\n\t\t\t\t}\n\t\t\t})\n\n\treturn\n\nuuflowManagerForInitApproval.checkIsInApproval = (recordIds, spaceId) ->\n\t# record = Creator.getCollection(recordIds.o, spaceId).findOne({\n\t# \t_id: recordIds.ids[0], instances: { $exists: true }\n\t# }, { fields: { instances: 1 } })\n\trecord = objectFindOne(recordIds.o, { filters: [['_id', '=', recordIds.ids[0]]], fields: ['instances'] })\n\n\tif record and record.instances and record.instances[0].state isnt 'completed' and Creator.Collections.instances.find(record.instances[0]._id).count() > 0\n\t\tthrow new Meteor.Error('error!', \"此记录已发起流程正在审批中,待审批结束方可发起下一次审批!\")\n\n\treturn\n\n\nuuflowManagerForInitApproval.formatDate = (date) ->\n\treturn moment(date).format(\"YYYY-MM-DD\")","var _eval, getFieldOdataValue, getFileFieldValue, getFormField, getFormTableField, getFormTableFieldCode, getFormTableSubField, getInstanceFieldValue, getObjectConfig, getObjectNameFieldKey, getRelatedObjectFieldCode, getRelateds, getSelectOrgValue, getSelectOrgValues, getSelectUserValue, getSelectUserValues, objectFind, objectFindOne, objectUpdate, objectql; \n\n_eval = require('eval');\n\nobjectql = require('@steedos/objectql');\n\ngetObjectConfig = function(objectApiName) {\n return objectql.getObject(objectApiName).toConfig();\n};\n\ngetObjectNameFieldKey = function(objectApiName) {\n return objectql.getObject(objectApiName).NAME_FIELD_KEY;\n};\n\ngetRelateds = function(objectApiName) {\n return Meteor.wrapAsync(function(objectApiName, cb) {\n return objectql.getObject(objectApiName).getRelateds().then(function(resolve, reject) {\n return cb(reject, resolve);\n });\n })(objectApiName);\n};\n\nobjectFindOne = function(objectApiName, query) {\n return Meteor.wrapAsync(function(objectApiName, query, cb) {\n return objectql.getObject(objectApiName).find(query).then(function(resolve, reject) {\n if (resolve && resolve.length > 0) {\n return cb(reject, resolve[0]);\n } else {\n return cb(reject, null);\n }\n });\n })(objectApiName, query);\n};\n\nobjectFind = function(objectApiName, query) {\n return Meteor.wrapAsync(function(objectApiName, query, cb) {\n return objectql.getObject(objectApiName).find(query).then(function(resolve, reject) {\n return cb(reject, resolve);\n });\n })(objectApiName, query);\n};\n\nobjectUpdate = function(objectApiName, id, data) {\n return Meteor.wrapAsync(function(objectApiName, id, data, cb) {\n return objectql.getObject(objectApiName).update(id, data).then(function(resolve, reject) {\n return cb(reject, resolve);\n });\n })(objectApiName, id, data);\n};\n\ngetRelatedObjectFieldCode = function(relatedObjectsKeys, key) {\n return _.find(relatedObjectsKeys, function(relatedObjectsKey) {\n return key.startsWith(relatedObjectsKey + '.');\n });\n};\n\ngetFormTableFieldCode = function(formTableFieldsCode, key) {\n return _.find(formTableFieldsCode, function(formTableFieldCode) {\n return key.startsWith(formTableFieldCode + '.');\n });\n};\n\ngetFormTableField = function(formTableFields, key) {\n return _.find(formTableFields, function(f) {\n return f.code === key;\n });\n};\n\ngetFormField = function(formFields, key) {\n var ff;\n ff = null;\n _.forEach(formFields, function(f) {\n if (ff) {\n return;\n }\n if (f.type === 'section') {\n return ff = _.find(f.fields, function(sf) {\n return sf.code === key;\n });\n } else if (f.code === key) {\n return ff = f;\n }\n });\n return ff;\n};\n\ngetFormTableSubField = function(tableField, subFieldCode) {\n return _.find(tableField.fields, function(f) {\n return f.code === subFieldCode;\n });\n};\n\ngetFieldOdataValue = function(objName, id, referenceToFieldName) {\n var _record, _records, nameKey, obj;\n obj = objectql.getObject(objName);\n nameKey = getObjectNameFieldKey(objName);\n if (!obj) {\n return;\n }\n if (_.isString(id)) {\n _record = objectFindOne(objName, {\n filters: [[referenceToFieldName, '=', id]]\n });\n if (_record) {\n _record['@label'] = _record[nameKey];\n return _record;\n }\n } else if (_.isArray(id)) {\n _records = [];\n objectFind(objName, {\n filters: [[referenceToFieldName, 'in', id]]\n }).forEach(function(_record) {\n _record['@label'] = _record[nameKey];\n return _records.push(_record);\n });\n if (!_.isEmpty(_records)) {\n return _records;\n }\n }\n};\n\ngetSelectUserValue = function(userId, spaceId) {\n var su;\n su = Creator.getCollection('space_users').findOne({\n space: spaceId,\n user: userId\n });\n su.id = userId;\n return su;\n};\n\ngetSelectUserValues = function(userIds, spaceId) {\n var sus;\n sus = [];\n if (_.isArray(userIds)) {\n _.each(userIds, function(userId) {\n var su;\n su = getSelectUserValue(userId, spaceId);\n if (su) {\n return sus.push(su);\n }\n });\n }\n return sus;\n};\n\ngetSelectOrgValue = function(orgId, spaceId) {\n var org;\n org = Creator.getCollection('organizations').findOne(orgId, {\n fields: {\n _id: 1,\n name: 1,\n fullname: 1\n }\n });\n org.id = orgId;\n return org;\n};\n\ngetSelectOrgValues = function(orgIds, spaceId) {\n var orgs;\n orgs = [];\n if (_.isArray(orgIds)) {\n _.each(orgIds, function(orgId) {\n var org;\n org = getSelectOrgValue(orgId, spaceId);\n if (org) {\n return orgs.push(org);\n }\n });\n }\n return orgs;\n};\n\ngetFileFieldValue = function(recordFieldId, fType) {\n var collection, files, query, value;\n if (_.isEmpty(recordFieldId)) {\n return;\n }\n if (fType === 'image') {\n collection = 'images';\n } else if (fType === 'file') {\n collection = 'files';\n }\n if (_.isString(recordFieldId)) {\n query = {\n _id: {\n $in: [recordFieldId]\n }\n };\n } else {\n query = {\n _id: {\n $in: recordFieldId\n }\n };\n }\n files = Creator.Collections[\"cfs.\" + collection + \".filerecord\"].find(query);\n value = [];\n files.forEach(function(f) {\n var newFile;\n newFile = new FS.File();\n return newFile.attachData(f.createReadStream('files'), {\n type: f.original.type\n }, function(err) {\n var metadata;\n if (err) {\n throw new Meteor.Error(err.error, err.reason);\n }\n newFile.name(f.name());\n newFile.size(f.size());\n metadata = {\n owner: f.metadata.owner\n };\n newFile.metadata = metadata;\n newFile._id = Creator.Collections.instances._makeNewID();\n cfs[collection].insert(newFile);\n return value.push(newFile._id);\n });\n });\n if (value.length > 0) {\n if (_.isString(recordFieldId)) {\n return value[0];\n } else {\n return value;\n }\n }\n};\n\ngetInstanceFieldValue = function(objField, formField, record, object_field, spaceId) {\n var odataFieldValue, recordFieldValue, referenceToFieldName, referenceToObjectName, selectFieldValue, value;\n recordFieldValue = record[objField.name];\n value;\n if (formField && objField && formField.type === 'odata' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)) {\n referenceToFieldName = objField.reference_to_field || '_id';\n referenceToObjectName = objField.reference_to;\n odataFieldValue;\n if (objField.multiple && formField.is_multiselect) {\n odataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName);\n } else if (!objField.multiple && !formField.is_multiselect) {\n odataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName);\n }\n value = odataFieldValue;\n } else if (formField && objField && ['user', 'group'].includes(formField.type) && ['lookup', 'master_detail'].includes(objField.type) && (['users', 'organizations'].includes(objField.reference_to) || ('space_users' === objField.reference_to && 'user' === objField.reference_to_field))) {\n if (!_.isEmpty(recordFieldValue)) {\n selectFieldValue;\n if (formField.type === 'user') {\n if (objField.multiple && formField.is_multiselect) {\n selectFieldValue = getSelectUserValues(recordFieldValue, spaceId);\n } else if (!objField.multiple && !formField.is_multiselect) {\n selectFieldValue = getSelectUserValue(recordFieldValue, spaceId);\n }\n } else if (formField.type === 'group') {\n if (objField.multiple && formField.is_multiselect) {\n selectFieldValue = getSelectOrgValues(recordFieldValue, spaceId);\n } else if (!objField.multiple && !formField.is_multiselect) {\n selectFieldValue = getSelectOrgValue(recordFieldValue, spaceId);\n }\n }\n if (selectFieldValue) {\n value = selectFieldValue;\n }\n }\n } else if (formField && objField && formField.type === 'date' && recordFieldValue) {\n value = uuflowManagerForInitApproval.formatDate(recordFieldValue);\n } else if (formField && objField && recordFieldValue && (formField.type === 'image' || formField.type === 'file')) {\n value = getFileFieldValue(recordFieldValue, formField.type);\n } else if (formField && objField && recordFieldValue && formField.type === 'lookup' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)) {\n value = recordFieldValue;\n } else if (formField && objField && recordFieldValue && (formField.type === 'multiSelect')) {\n value = recordFieldValue.join(',');\n } else if (record.hasOwnProperty(object_field)) {\n value = recordFieldValue;\n }\n return value;\n};\n\nuuflowManagerForInitApproval = {};\n\nuuflowManagerForInitApproval.check_authorization = function(req) {\n var authToken, hashedToken, query, user, userId;\n query = req.query;\n userId = query[\"X-User-Id\"];\n authToken = query[\"X-Auth-Token\"];\n if (!userId || !authToken) {\n throw new Meteor.Error(401, 'Unauthorized');\n }\n hashedToken = Accounts._hashLoginToken(authToken);\n user = Meteor.users.findOne({\n _id: userId,\n \"services.resume.loginTokens.hashedToken\": hashedToken\n });\n if (!user) {\n throw new Meteor.Error(401, 'Unauthorized');\n }\n return user;\n};\n\nuuflowManagerForInitApproval.getSpace = function(space_id) {\n var space;\n space = Creator.Collections.spaces.findOne(space_id);\n if (!space) {\n throw new Meteor.Error('error!', \"space_id有误或此space已经被删除\");\n }\n return space;\n};\n\nuuflowManagerForInitApproval.getFlow = function(flow_id) {\n var flow;\n flow = Creator.Collections.flows.findOne(flow_id);\n if (!flow) {\n throw new Meteor.Error('error!', \"id有误或此流程已经被删除\");\n }\n return flow;\n};\n\nuuflowManagerForInitApproval.getSpaceUser = function(space_id, user_id) {\n var space_user;\n space_user = Creator.Collections.space_users.findOne({\n space: space_id,\n user: user_id\n });\n if (!space_user) {\n throw new Meteor.Error('error!', \"user_id对应的用户不属于当前space\");\n }\n return space_user;\n};\n\nuuflowManagerForInitApproval.getSpaceUserOrgInfo = function(space_user) {\n var info, org;\n info = new Object;\n info.organization = space_user.organization;\n org = Creator.Collections.organizations.findOne(space_user.organization, {\n fields: {\n name: 1,\n fullname: 1\n }\n });\n info.organization_name = org.name;\n info.organization_fullname = org.fullname;\n return info;\n};\n\nuuflowManagerForInitApproval.isFlowEnabled = function(flow) {\n if (flow.state !== \"enabled\") {\n throw new Meteor.Error('error!', \"流程未启用,操作失败\");\n }\n};\n\nuuflowManagerForInitApproval.isFlowSpaceMatched = function(flow, space_id) {\n if (flow.space !== space_id) {\n throw new Meteor.Error('error!', \"流程和工作区ID不匹配\");\n }\n};\n\nuuflowManagerForInitApproval.getForm = function(form_id) {\n var form;\n form = Creator.Collections.forms.findOne(form_id);\n if (!form) {\n throw new Meteor.Error('error!', '表单ID有误或此表单已经被删除');\n }\n return form;\n};\n\nuuflowManagerForInitApproval.getCategory = function(category_id) {\n return Creator.Collections.categories.findOne(category_id);\n};\n\nuuflowManagerForInitApproval.checkSyncDirection = function(object_name, flow_id) {\n var ow, syncDirection;\n ow = Creator.Collections.object_workflows.findOne({\n object_name: object_name,\n flow_id: flow_id\n });\n if (!ow) {\n throw new Meteor.Error('error!', '未找到对象流程映射记录。');\n }\n syncDirection = ow.sync_direction || 'both';\n if (!['both', 'obj_to_ins'].includes(syncDirection)) {\n throw new Meteor.Error('error!', '不支持的同步方向。');\n }\n};\n\nuuflowManagerForInitApproval.create_instance = function(instance_from_client, user_info) {\n var appr_obj, approve_from_client, category, flow, flow_id, form, ins_obj, new_ins_id, now, permissions, relatedTablesInfo, space, space_id, space_user, space_user_org_info, start_step, trace_from_client, trace_obj, user_id;\n check(instance_from_client[\"applicant\"], String);\n check(instance_from_client[\"space\"], String);\n check(instance_from_client[\"flow\"], String);\n check(instance_from_client[\"record_ids\"], [\n {\n o: String,\n ids: [String]\n }\n ]);\n uuflowManagerForInitApproval.checkSyncDirection(instance_from_client[\"record_ids\"][0].o, instance_from_client[\"flow\"]);\n uuflowManagerForInitApproval.checkIsInApproval(instance_from_client[\"record_ids\"][0], instance_from_client[\"space\"]);\n space_id = instance_from_client[\"space\"];\n flow_id = instance_from_client[\"flow\"];\n user_id = user_info._id;\n trace_from_client = null;\n approve_from_client = null;\n if (instance_from_client[\"traces\"] && instance_from_client[\"traces\"][0]) {\n trace_from_client = instance_from_client[\"traces\"][0];\n if (trace_from_client[\"approves\"] && trace_from_client[\"approves\"][0]) {\n approve_from_client = instance_from_client[\"traces\"][0][\"approves\"][0];\n }\n }\n space = uuflowManagerForInitApproval.getSpace(space_id);\n flow = uuflowManagerForInitApproval.getFlow(flow_id);\n space_user = uuflowManagerForInitApproval.getSpaceUser(space_id, user_id);\n space_user_org_info = uuflowManagerForInitApproval.getSpaceUserOrgInfo(space_user);\n uuflowManagerForInitApproval.isFlowEnabled(flow);\n uuflowManagerForInitApproval.isFlowSpaceMatched(flow, space_id);\n form = uuflowManagerForInitApproval.getForm(flow.form);\n permissions = permissionManager.getFlowPermissions(flow_id, user_id);\n if (!permissions.includes(\"add\")) {\n throw new Meteor.Error('error!', \"当前用户没有此流程的新建权限\");\n }\n now = new Date;\n ins_obj = {};\n ins_obj._id = Creator.Collections.instances._makeNewID();\n ins_obj.space = space_id;\n ins_obj.flow = flow_id;\n ins_obj.flow_version = flow.current._id;\n ins_obj.form = flow.form;\n ins_obj.form_version = flow.current.form_version;\n ins_obj.name = flow.name;\n ins_obj.submitter = user_id;\n ins_obj.submitter_name = user_info.name;\n ins_obj.applicant = instance_from_client[\"applicant\"] ? instance_from_client[\"applicant\"] : user_id;\n ins_obj.applicant_name = instance_from_client[\"applicant_name\"] ? instance_from_client[\"applicant_name\"] : user_info.name;\n ins_obj.applicant_organization = instance_from_client[\"applicant_organization\"] ? instance_from_client[\"applicant_organization\"] : space_user.organization;\n ins_obj.applicant_organization_name = instance_from_client[\"applicant_organization_name\"] ? instance_from_client[\"applicant_organization_name\"] : space_user_org_info.organization_name;\n ins_obj.applicant_organization_fullname = instance_from_client[\"applicant_organization_fullname\"] ? instance_from_client[\"applicant_organization_fullname\"] : space_user_org_info.organization_fullname;\n ins_obj.applicant_company = instance_from_client[\"applicant_company\"] ? instance_from_client[\"applicant_company\"] : space_user.company_id;\n ins_obj.state = 'draft';\n ins_obj.code = '';\n ins_obj.is_archived = false;\n ins_obj.is_deleted = false;\n ins_obj.created = now;\n ins_obj.created_by = user_id;\n ins_obj.modified = now;\n ins_obj.modified_by = user_id;\n ins_obj.record_ids = instance_from_client[\"record_ids\"];\n if (space_user.company_id) {\n ins_obj.company_id = space_user.company_id;\n }\n trace_obj = {};\n trace_obj._id = new Mongo.ObjectID()._str;\n trace_obj.instance = ins_obj._id;\n trace_obj.is_finished = false;\n start_step = _.find(flow.current.steps, function(step) {\n return step.step_type === 'start';\n });\n trace_obj.step = start_step._id;\n trace_obj.name = start_step.name;\n trace_obj.start_date = now;\n appr_obj = {};\n appr_obj._id = new Mongo.ObjectID()._str;\n appr_obj.instance = ins_obj._id;\n appr_obj.trace = trace_obj._id;\n appr_obj.is_finished = false;\n appr_obj.user = instance_from_client[\"applicant\"] ? instance_from_client[\"applicant\"] : user_id;\n appr_obj.user_name = instance_from_client[\"applicant_name\"] ? instance_from_client[\"applicant_name\"] : user_info.name;\n appr_obj.handler = user_id;\n appr_obj.handler_name = user_info.name;\n appr_obj.handler_organization = space_user.organization;\n appr_obj.handler_organization_name = space_user_org_info.name;\n appr_obj.handler_organization_fullname = space_user_org_info.fullname;\n appr_obj.type = 'draft';\n appr_obj.start_date = now;\n appr_obj.read_date = now;\n appr_obj.is_read = true;\n appr_obj.is_error = false;\n appr_obj.description = '';\n relatedTablesInfo = {};\n appr_obj.values = uuflowManagerForInitApproval.initiateValues(ins_obj.record_ids[0], flow_id, space_id, form.current.fields, relatedTablesInfo);\n trace_obj.approves = [appr_obj];\n ins_obj.traces = [trace_obj];\n ins_obj.values = appr_obj.values;\n ins_obj.inbox_users = instance_from_client.inbox_users || [];\n ins_obj.current_step_name = start_step.name;\n if (flow.auto_remind === true) {\n ins_obj.auto_remind = true;\n }\n ins_obj.flow_name = flow.name;\n if (form.category) {\n category = uuflowManagerForInitApproval.getCategory(form.category);\n if (category) {\n ins_obj.category_name = category.name;\n ins_obj.category = category._id;\n }\n }\n new_ins_id = Creator.Collections.instances.insert(ins_obj);\n uuflowManagerForInitApproval.initiateRecordInstanceInfo(ins_obj.record_ids[0], new_ins_id, space_id);\n uuflowManagerForInitApproval.initiateAttach(ins_obj.record_ids[0], space_id, ins_obj._id, appr_obj._id);\n return new_ins_id;\n};\n\nuuflowManagerForInitApproval.initiateValues = function(recordIds, flowId, spaceId, fields, relatedTablesInfo) {\n var fieldCodes, filterValues, flow, form, formFields, formTableFields, formTableFieldsCode, object, objectName, ow, record, recordId, ref, relatedObjects, relatedObjectsKeys, tableFieldCodes, tableFieldMap, tableToRelatedMap, values;\n fieldCodes = [];\n _.each(fields, function(f) {\n if (f.type === 'section') {\n return _.each(f.fields, function(ff) {\n return fieldCodes.push(ff.code);\n });\n } else {\n return fieldCodes.push(f.code);\n }\n });\n values = {};\n objectName = recordIds.o;\n object = getObjectConfig(objectName);\n recordId = recordIds.ids[0];\n ow = Creator.Collections.object_workflows.findOne({\n object_name: objectName,\n flow_id: flowId\n });\n record = objectFindOne(objectName, {\n filters: [['_id', '=', recordId]]\n });\n flow = Creator.getCollection('flows').findOne(flowId, {\n fields: {\n form: 1\n }\n });\n if (ow && record) {\n form = Creator.getCollection(\"forms\").findOne(flow.form);\n formFields = form.current.fields || [];\n relatedObjects = getRelateds(objectName);\n relatedObjectsKeys = _.pluck(relatedObjects, 'object_name');\n formTableFields = _.filter(formFields, function(formField) {\n return formField.type === 'table';\n });\n formTableFieldsCode = _.pluck(formTableFields, 'code');\n tableFieldCodes = [];\n tableFieldMap = [];\n tableToRelatedMap = {};\n if ((ref = ow.field_map) != null) {\n ref.forEach(function(fm) {\n var formField, formTableFieldCode, gridCode, lookupFieldName, lookupFieldObj, lookupObjectRecord, oTableCode, oTableCodeReferenceField, oTableCodeReferenceFieldCode, oTableFieldCode, objField, objectField, objectFieldName, objectFieldObjectName, objectLookupField, object_field, recordFieldValue, referenceToDoc, referenceToFieldName, referenceToFieldValue, referenceToObjectName, relatedObjectFieldCode, tableToRelatedMapKey, wTableCode, workflow_field;\n object_field = fm.object_field;\n workflow_field = fm.workflow_field;\n if (!object_field || !workflow_field) {\n throw new Meteor.Error(400, '未找到字段,请检查对象流程映射字段配置');\n }\n relatedObjectFieldCode = getRelatedObjectFieldCode(relatedObjectsKeys, object_field);\n formTableFieldCode = getFormTableFieldCode(formTableFieldsCode, workflow_field);\n objField = object.fields[object_field];\n formField = getFormField(formFields, workflow_field);\n recordFieldValue = record[object_field];\n if (relatedObjectFieldCode) {\n oTableCode = object_field.split('.')[0];\n oTableFieldCode = object_field.split('.')[1];\n tableToRelatedMapKey = oTableCode;\n if (!tableToRelatedMap[tableToRelatedMapKey]) {\n tableToRelatedMap[tableToRelatedMapKey] = {};\n }\n if (formTableFieldCode) {\n wTableCode = workflow_field.split('.')[0];\n tableToRelatedMap[tableToRelatedMapKey]['_FROM_TABLE_CODE'] = wTableCode;\n }\n return tableToRelatedMap[tableToRelatedMapKey][oTableFieldCode] = workflow_field;\n } else if (workflow_field.indexOf('.') > 0 && object_field.indexOf('.$.') > 0) {\n wTableCode = workflow_field.split('.')[0];\n oTableCode = object_field.split('.$.')[0];\n if (record.hasOwnProperty(oTableCode) && _.isArray(record[oTableCode])) {\n tableFieldCodes.push(JSON.stringify({\n workflow_table_field_code: wTableCode,\n object_table_field_code: oTableCode\n }));\n return tableFieldMap.push(fm);\n } else if (oTableCode.indexOf('.') > 0) {\n oTableCodeReferenceFieldCode = oTableCode.split('.')[0];\n gridCode = oTableCode.split('.')[1];\n oTableCodeReferenceField = object.fields[oTableCodeReferenceFieldCode];\n if (oTableCodeReferenceField && ['lookup', 'master_detail'].includes(oTableCodeReferenceField.type) && _.isString(oTableCodeReferenceField.reference_to)) {\n if (record[oTableCode]) {\n return;\n }\n referenceToFieldName = oTableCodeReferenceField.reference_to_field || '_id';\n referenceToObjectName = oTableCodeReferenceField.reference_to;\n referenceToFieldValue = record[oTableCodeReferenceField.name];\n referenceToDoc = getFieldOdataValue(referenceToObjectName, referenceToFieldValue, referenceToFieldName);\n if (referenceToDoc[gridCode]) {\n record[oTableCode] = referenceToDoc[gridCode];\n tableFieldCodes.push(JSON.stringify({\n workflow_table_field_code: wTableCode,\n object_table_field_code: oTableCode\n }));\n return tableFieldMap.push(fm);\n }\n }\n }\n } else if (object_field.indexOf('.') > 0 && object_field.indexOf('.$.') === -1) {\n objectFieldName = object_field.split('.')[0];\n lookupFieldName = object_field.split('.')[1];\n if (object) {\n objectField = object.fields[objectFieldName];\n if (objectField && formField && ['lookup', 'master_detail'].includes(objectField.type) && _.isString(objectField.reference_to)) {\n lookupObjectRecord = objectFindOne(objectField.reference_to, {\n filters: [['_id', '=', record[objectFieldName]]],\n fields: [lookupFieldName]\n });\n if (!lookupObjectRecord) {\n return;\n }\n objectFieldObjectName = objectField.reference_to;\n lookupFieldObj = getObjectConfig(objectFieldObjectName);\n objectLookupField = lookupFieldObj.fields[lookupFieldName];\n return values[workflow_field] = getInstanceFieldValue(objectLookupField, formField, lookupObjectRecord, lookupFieldName, spaceId);\n }\n }\n } else {\n return values[workflow_field] = getInstanceFieldValue(objField, formField, record, object_field, spaceId);\n }\n });\n }\n _.uniq(tableFieldCodes).forEach(function(tfc) {\n var c;\n c = JSON.parse(tfc);\n values[c.workflow_table_field_code] = [];\n return record[c.object_table_field_code].forEach(function(tr) {\n var newTr;\n newTr = {};\n _.each(tr, function(v, k) {\n return tableFieldMap.forEach(function(tfm) {\n var wTdCode;\n if (tfm.object_field === (c.object_table_field_code + '.$.' + k)) {\n wTdCode = tfm.workflow_field.split('.')[1];\n return newTr[wTdCode] = v;\n }\n });\n });\n if (!_.isEmpty(newTr)) {\n return values[c.workflow_table_field_code].push(newTr);\n }\n });\n });\n _.each(tableToRelatedMap, function(map, key) {\n var formTableField, relatedField, relatedFieldName, relatedObject, relatedObjectName, relatedRecords, relatedTableItems, tableCode, tableValues;\n tableCode = map._FROM_TABLE_CODE;\n formTableField = getFormTableField(formTableFields, tableCode);\n if (!tableCode) {\n return console.warn('tableToRelated: [' + key + '] missing corresponding table.');\n } else {\n relatedObjectName = key;\n tableValues = [];\n relatedTableItems = [];\n relatedObject = getObjectConfig(relatedObjectName);\n relatedField = _.find(relatedObject.fields, function(f) {\n return ['lookup', 'master_detail'].includes(f.type) && f.reference_to === objectName;\n });\n relatedFieldName = relatedField.name;\n relatedRecords = objectFind(relatedObjectName, {\n filters: [[relatedFieldName, '=', recordId]]\n });\n relatedRecords.forEach(function(rr) {\n var tableValueItem;\n tableValueItem = {};\n _.each(map, function(valueKey, fieldKey) {\n var formField, formFieldKey, relatedObjectField, tableFieldValue;\n if (fieldKey !== '_FROM_TABLE_CODE') {\n tableFieldValue;\n formFieldKey;\n if (valueKey.startsWith(tableCode + '.')) {\n formFieldKey = (valueKey.split(\".\")[1]);\n } else {\n formFieldKey = valueKey;\n }\n formField = getFormTableSubField(formTableField, formFieldKey);\n relatedObjectField = relatedObject.fields[fieldKey];\n if (!formField || !relatedObjectField) {\n return;\n }\n tableFieldValue = getInstanceFieldValue(relatedObjectField, formField, rr, fieldKey, spaceId);\n return tableValueItem[formFieldKey] = tableFieldValue;\n }\n });\n if (!_.isEmpty(tableValueItem)) {\n tableValueItem._id = rr._id;\n tableValues.push(tableValueItem);\n return relatedTableItems.push({\n _table: {\n _id: rr._id,\n _code: tableCode\n }\n });\n }\n });\n values[tableCode] = tableValues;\n return relatedTablesInfo[relatedObjectName] = relatedTableItems;\n }\n });\n if (ow.field_map_script) {\n _.extend(values, uuflowManagerForInitApproval.evalFieldMapScript(ow.field_map_script, objectName, spaceId, recordId));\n }\n }\n filterValues = {};\n _.each(_.keys(values), function(k) {\n if (fieldCodes.includes(k)) {\n return filterValues[k] = values[k];\n }\n });\n return filterValues;\n};\n\nuuflowManagerForInitApproval.evalFieldMapScript = function(field_map_script, objectName, spaceId, objectId) {\n var func, record, script, values;\n record = objectFindOne(objectName, {\n filters: [['_id', '=', objectId]]\n });\n script = \"module.exports = function (record) { \" + field_map_script + \" }\";\n func = _eval(script, \"field_map_script\");\n values = func(record);\n if (_.isObject(values)) {\n return values;\n } else {\n console.error(\"evalFieldMapScript: 脚本返回值类型不是对象\");\n }\n return {};\n};\n\nuuflowManagerForInitApproval.initiateAttach = function(recordIds, spaceId, insId, approveId) {\n Creator.Collections['cms_files'].find({\n space: spaceId,\n parent: recordIds\n }).forEach(function(cf) {\n return _.each(cf.versions, function(versionId, idx) {\n var f, newFile;\n f = Creator.Collections['cfs.files.filerecord'].findOne(versionId);\n newFile = new FS.File();\n return newFile.attachData(f.createReadStream('files'), {\n type: f.original.type\n }, function(err) {\n var metadata;\n if (err) {\n throw new Meteor.Error(err.error, err.reason);\n }\n newFile.name(f.name());\n newFile.size(f.size());\n metadata = {\n owner: f.metadata.owner,\n owner_name: f.metadata.owner_name,\n space: spaceId,\n instance: insId,\n approve: approveId,\n parent: cf._id\n };\n if (idx === 0) {\n metadata.current = true;\n }\n newFile.metadata = metadata;\n return cfs.instances.insert(newFile);\n });\n });\n });\n};\n\nuuflowManagerForInitApproval.initiateRecordInstanceInfo = function(recordIds, insId, spaceId) {\n objectUpdate(recordIds.o, recordIds.ids[0], {\n instances: [\n {\n _id: insId,\n state: 'draft'\n }\n ],\n locked: true,\n instance_state: 'draft'\n });\n};\n\nuuflowManagerForInitApproval.initiateRelatedRecordInstanceInfo = function(relatedTablesInfo, insId, spaceId) {\n _.each(relatedTablesInfo, function(tableItems, relatedObjectName) {\n var relatedCollection;\n relatedCollection = Creator.getCollection(relatedObjectName, spaceId);\n return _.each(tableItems, function(item) {\n return relatedCollection.direct.update(item._table._id, {\n $set: {\n instances: [\n {\n _id: insId,\n state: 'draft'\n }\n ],\n _table: item._table\n }\n });\n });\n });\n};\n\nuuflowManagerForInitApproval.checkIsInApproval = function(recordIds, spaceId) {\n var record;\n record = objectFindOne(recordIds.o, {\n filters: [['_id', '=', recordIds.ids[0]]],\n fields: ['instances']\n });\n if (record && record.instances && record.instances[0].state !== 'completed' && Creator.Collections.instances.find(record.instances[0]._id).count() > 0) {\n throw new Meteor.Error('error!', \"此记录已发起流程正在审批中,待审批结束方可发起下一次审批!\");\n }\n};\n\nuuflowManagerForInitApproval.formatDate = function(date) {\n return moment(date).format(\"YYYY-MM-DD\");\n};\n"]} \ No newline at end of file +{"version":3,"sources":["meteor://💻app/packages/steedos:creator/checkNpm.js","meteor://💻app/packages/steedos_creator/core.coffee","meteor://💻app/core.coffee","meteor://💻app/packages/steedos_creator/lib/apps.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_recent_viewed.coffee","meteor://💻app/server/methods/object_recent_viewed.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_recent_record.coffee","meteor://💻app/server/methods/object_recent_record.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_listviews_options.coffee","meteor://💻app/server/methods/object_listviews_options.coffee","meteor://💻app/packages/steedos_creator/server/methods/report_data.coffee","meteor://💻app/server/methods/report_data.coffee","meteor://💻app/packages/steedos_creator/server/methods/user_tabular_settings.coffee","meteor://💻app/server/methods/user_tabular_settings.coffee","meteor://💻app/packages/steedos_creator/server/methods/object_export2xml.coffee","meteor://💻app/server/methods/object_export2xml.coffee","meteor://💻app/packages/steedos_creator/server/methods/related_objects_records.coffee","meteor://💻app/server/methods/related_objects_records.coffee","meteor://💻app/packages/steedos_creator/server/methods/pending_space.coffee","meteor://💻app/server/methods/pending_space.coffee","meteor://💻app/packages/steedos_creator/server/publications/object.coffee","meteor://💻app/server/publications/object.coffee","meteor://💻app/packages/steedos_creator/server/publications/object_tabular.coffee","meteor://💻app/server/publications/object_tabular.coffee","meteor://💻app/packages/steedos_creator/server/publications/object_listviews.coffee","meteor://💻app/packages/steedos_creator/server/publications/user_tabular_settings.coffee","meteor://💻app/packages/steedos_creator/server/publications/related_objects_records.coffee","meteor://💻app/server/publications/related_objects_records.coffee","meteor://💻app/packages/steedos_creator/server/publications/space_user_info.coffee","meteor://💻app/packages/steedos_creator/server/publications/contacts_view_limits.coffee","meteor://💻app/server/publications/contacts_view_limits.coffee","meteor://💻app/packages/steedos_creator/server/publications/contacts_no_force_phone_users.coffee","meteor://💻app/server/publications/contacts_no_force_phone_users.coffee","meteor://💻app/packages/steedos_creator/server/publications/space_need_to_confirm.coffee","meteor://💻app/server/publications/space_need_to_confirm.coffee","meteor://💻app/packages/steedos_creator/server/lib/permission_manager.coffee","meteor://💻app/server/lib/permission_manager.coffee","meteor://💻app/packages/steedos_creator/server/lib/uuflowManagerForInitApproval.coffee","meteor://💻app/server/lib/uuflowManagerForInitApproval.coffee"],"names":["checkNpmVersions","module","link","v","busboy","Meteor","settings","cfs","aliyun","Creator","getSchema","object_name","ref","getObject","schema","getObjectHomeComponent","getObjectUrl","record_id","app_id","list_view","list_view_id","Session","get","getListView","_id","getRelativeUrl","getObjectAbsoluteUrl","Steedos","absoluteUrl","getObjectRouterUrl","getListViewUrl","url","getListViewRelativeUrl","getSwitchListUrl","getRelatedObjectUrl","related_object_name","related_field_name","getObjectLookupFieldOptions","is_deep","is_skip_hide","is_related","_object","_options","fields","icon","relatedObjects","_","forEach","f","k","hidden","type","push","label","value","r_object","reference_to","isString","f2","k2","getRelatedObjects","each","_this","_relatedObject","relatedObject","relatedOptions","relatedOption","foreign_key","name","getObjectFilterFieldOptions","permission_fields","getFields","include","test","indexOf","getObjectFieldOptions","getFiltersWithFilterFields","filters","filter_fields","length","n","field","required","findWhere","is_default","is_required","filterItem","matchField","find","getObjectRecord","select_fields","expand","collection","obj","record","ref1","ref2","isClient","Template","instance","odata","database_name","getCollection","findOne","getObjectRecordName","name_field_key","NAME_FIELD_KEY","getApp","appMenus","currentApp","menuItem","id","getAppDashboard","app","dashboard","Dashboards","apps","getAppDashboardComponent","getAppObjectNames","appObjects","isMobile","objects","mobile_objects","permissions","allowRead","getUrlWithToken","expressionFormData","hasQuerySymbol","linkStr","params","spaceId","userId","getUserCompanyIds","Accounts","_storedLoginToken","isExpression","parseSingleExpression","USER_CONTEXT","$","param","getAppMenu","menu_id","menus","getAppMenus","menu","getAppMenuUrlForInternet","path","getAppMenuUrl","target","curentAppMenus","children","loadAppsMenus","data","options","mobile","success","set","authRequest","creatorAppsSelector","assigned_apps","adminApp","creatorApps","sortedApps","key","is_creator","visible","sortBy","values","admin","visibleAppsSelector","includeAdmin","getVisibleApps","changeApp","_subApp","Object","assign","Apps","getVisibleAppsObjects","visibleObjectNames","flatten","pluck","filter","Objects","sort","sortingMethod","bind","uniq","getAppsObjects","tempObjects","concat","validateFilters","logic","e","errorMsg","filter_items","filter_length","flag","index","word","map","isEmpty","compact","replace","match","i","includes","w","error","console","log","toastr","formatFiltersToMongo","selector","Array","operation","option","reg","sub_selector","evaluateFormula","RegExp","isBetweenFilterOperation","getBetweenTimeBuiltinValues","formatFiltersToDev","logicTempFilters","is_logic_or","pop","SteedosFilters","formatLogicFiltersToDev","filter_logic","format_logic","x","_f","isArray","JSON","stringify","related_object_names","related_objects","unrelated_objects","getObjectRelateds","_collection_name","getPermissions","difference","related_object","isActive","allowReadFiles","getRelatedObjectNames","getRelatedObjectListActions","relatedObjectName","actions","getActions","action","on","disabled_actions","has","allow_customActions","keys","exclude_actions","getListViews","disabled_list_views","listViews","list_views","object","item","item_name","isDisabled","owner","fieldsName","unreadable_fields","getObjectFieldsName","isloading","bootstrapLoaded","convertSpecialCharacter","str","getDisabledFields","fieldName","autoform","disabled","omit","getHiddenFields","getFieldsWithNoGroup","group","getSortedFieldGroupNames","names","unique","getFieldsForGroup","groupName","getSystemBaseFields","getFieldsWithoutSystemBase","getFieldsWithoutOmit","pick","getFieldsInFirstLevel","firstLevelKeys","getFieldsForReorder","isSingle","_keys","childKeys","is_wide_1","is_wide_2","sc_1","sc_2","endsWith","is_wide","slice","isFilterValueEmpty","Number","isNaN","getFieldDataType","objectFields","result","data_type","isServer","getAllRelatedObjects","related_field","enable_files","formatIndex","array","indexName","isdocumentDB","background","datasources","documentDB","join","substring","appsByName","methods","space_id","collection_recent_viewed","current_recent_viewed","doc","space","update","$inc","count","$set","modified","Date","modified_by","insert","_makeNewID","o","ids","created","created_by","validate","async_recent_aggregate","recent_aggregate","search_object","_records","callback","Collections","object_recent_viewed","rawCollection","aggregate","$match","$group","maxCreated","$max","$sort","$limit","toArray","err","Error","isFunction","wrapAsync","searchText","_object_collection","_object_name_key","query","query_and","records","search_Keywords","split","keyword","subquery","$regex","trim","$and","$in","limit","_name","_object_name","record_object","record_object_collection","self","objectsByName","object_record","enable_search","update_filters","listview_id","filter_scope","object_listviews","direct","update_columns","columns","check","compoundFields","cursor","filterFields","childKey","objectField","splits","isCommonSpace","isSpaceAdmin","skip","fetch","compoundFieldItem","compoundFilterFields","itemKey","itemValue","referenceItem","setting","column_width","obj1","_id_actions","_mixFieldsData","_mixRelatedData","_writeXmlFile","fs","logger","mkdirp","xml2js","require","Logger","jsonObj","objName","builder","day","fileAddress","fileName","filePath","month","now","stream","xml","year","Builder","buildObject","Buffer","getFullYear","getMonth","getDate","__meteor_bootstrap__","serverDir","existsSync","sync","writeFile","mixBool","mixDate","mixDefault","objFields","field_name","date","dateStr","format","moment","relatedObjNames","relatedObjName","relatedCollection","relatedRecordList","relatedTableData","relatedObj","fieldsData","Export2xml","recordList","info","time","recordObj","timeEnd","related_objects_records","related_records","viewAllRecords","getPendingSpaceInfo","inviterId","inviterName","spaceName","db","users","spaces","inviter","refuseJoinSpace","space_users","invite_state","acceptJoinSpace","user_accepted","publish","publishComposite","tableName","_fields","object_colleciton","reference_fields","ready","String","Match","Optional","getObjectName","unblock","field_keys","_objectKeys","reference_field","parent","children_fields","p_k","reference_ids","reference_to_object","s_k","getProperty","reduce","isObject","shared","user","space_settings","permissionManagerForInitApproval","getFlowPermissions","flow_id","user_id","flow","my_permissions","org_ids","organizations","orgs_can_add","orgs_can_admin","orgs_can_monitor","users_can_add","users_can_admin","users_can_monitor","uuflowManagerForInitApproval","getFlow","parents","org","parent_id","perms","org_id","_eval","checkRequiredDetails","getFieldOdataValue","getFileFieldValue","getFormField","getFormTableField","getFormTableFieldCode","getFormTableSubField","getInstanceFieldValue","getObjectConfig","getObjectNameFieldKey","getRelatedObjectFieldCode","getRelateds","getSelectOrgValue","getSelectOrgValues","getSelectUserValue","getSelectUserValues","objectFind","objectFindOne","objectUpdate","objectql","objectApiName","toConfig","cb","then","resolve","reject","top","relatedObjectsKeys","relatedObjectsKey","startsWith","formTableFieldsCode","formTableFieldCode","formTableFields","code","formFields","ff","sf","tableField","subFieldCode","referenceToFieldName","_record","nameKey","su","userIds","sus","orgId","fullname","orgIds","orgs","recordFieldId","fType","files","newFile","FS","File","attachData","createReadStream","original","metadata","reason","size","instances","objField","formField","object_field","odataFieldValue","recordFieldValue","referenceToObjectName","selectFieldValue","reference_to_field","multiple","is_multiselect","formatDate","hasOwnProperty","requiredDetails","masterRecord","rd","masterField","masterFieldValue","refId","subObjConfig","subTableMasterField","subTableName","subTableRecord","check_authorization","req","authToken","hashedToken","_hashLoginToken","getSpace","flows","getSpaceUser","space_user","getSpaceUserOrgInfo","organization","organization_name","organization_fullname","isFlowEnabled","state","isFlowSpaceMatched","getForm","form_id","form","forms","getCategory","category_id","categories","checkSyncDirection","ow","syncDirection","object_workflows","sync_direction","create_instance","instance_from_client","user_info","appr_obj","approve_from_client","category","ins_obj","new_ins_id","relatedTablesInfo","space_user_org_info","start_step","trace_from_client","trace_obj","checkIsInApproval","permissionManager","flow_version","current","form_version","submitter","submitter_name","applicant","applicant_name","applicant_organization","applicant_organization_name","applicant_organization_fullname","applicant_company","company_id","is_archived","is_deleted","record_ids","Mongo","ObjectID","_str","is_finished","steps","step","step_type","start_date","trace","user_name","handler","handler_name","handler_organization","handler_organization_name","handler_organization_fullname","read_date","is_read","is_error","description","initiateValues","approves","traces","inbox_users","current_step_name","auto_remind","flow_name","category_name","initiateRecordInstanceInfo","initiateAttach","recordIds","flowId","fieldCodes","filterValues","objectName","recordId","tableFieldCodes","tableFieldMap","tableToRelatedMap","required_details","field_map","fm","gridCode","lookupFieldName","lookupFieldObj","lookupObjectRecord","oTableCode","oTableCodeReferenceField","oTableCodeReferenceFieldCode","oTableFieldCode","objectFieldName","objectFieldObjectName","objectLookupField","referenceToDoc","referenceToFieldValue","relatedObjectFieldCode","tableToRelatedMapKey","wTableCode","workflow_field","workflow_table_field_code","object_table_field_code","tfc","c","parse","tr","newTr","tfm","wTdCode","formTableField","relatedField","relatedFieldName","relatedRecords","relatedTableItems","tableCode","tableValues","_FROM_TABLE_CODE","warn","rr","tableValueItem","valueKey","fieldKey","formFieldKey","relatedObjectField","tableFieldValue","_table","_code","field_map_script","extend","evalFieldMapScript","objectId","func","script","insId","approveId","cf","versions","versionId","idx","owner_name","approve","locked","instance_state","initiateRelatedRecordInstanceInfo","tableItems"],"mappings":"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","file":"/packages/steedos_creator.js","sourcesContent":["import {\n\tcheckNpmVersions\n} from 'meteor/tmeasday:check-npm-versions';\ncheckNpmVersions({\n\tbusboy: \"^0.2.13\",\n\t\"xml2js\": \"^0.4.19\",\n}, 'steedos:creator');\n\nif (Meteor.settings && Meteor.settings.cfs && Meteor.settings.cfs.aliyun) {\n\tcheckNpmVersions({\n\t\t\"aliyun-sdk\": \"^1.11.12\"\n\t}, 'steedos:creator');\n}","\n\t# Creator.initApps()\n\n\n# Creator.initApps = ()->\n# \tif Meteor.isServer\n# \t\t_.each Creator.Apps, (app, app_id)->\n# \t\t\tdb_app = db.apps.findOne(app_id)\n# \t\t\tif !db_app\n# \t\t\t\tapp._id = app_id\n# \t\t\t\tdb.apps.insert(app)\n# else\n# \tapp._id = app_id\n# \tdb.apps.update({_id: app_id}, app)\n\nCreator.getSchema = (object_name)->\n\treturn Creator.getObject(object_name)?.schema\n\nCreator.getObjectHomeComponent = (object_name)->\n\t# if Meteor.isClient\n\t# \treturn BuilderCreator.pluginComponentSelector(BuilderCreator.store.getState(), \"ObjectHome\", object_name)\n\treturn false;\n\nCreator.getObjectUrl = (object_name, record_id, app_id) ->\n\tif !app_id\n\t\tapp_id = Session.get(\"app_id\")\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tlist_view = Creator.getListView(object_name, null)\n\tlist_view_id = list_view?._id\n\n\tif record_id\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id)\n\telse\n\t\tif Creator.getObjectHomeComponent(object_name)\n\t\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name)\n\t\telse\n\t\t\tif list_view_id\n\t\t\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id)\n\t\t\telse\n\t\t\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name)\n\nCreator.getObjectAbsoluteUrl = (object_name, record_id, app_id) ->\n\tif !app_id\n\t\tapp_id = Session.get(\"app_id\")\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tlist_view = Creator.getListView(object_name, null)\n\tlist_view_id = list_view?._id\n\n\tif record_id\n\t\treturn Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id, true)\n\telse\n\t\treturn Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id, true)\n\nCreator.getObjectRouterUrl = (object_name, record_id, app_id) ->\n\tif !app_id\n\t\tapp_id = Session.get(\"app_id\")\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tlist_view = Creator.getListView(object_name, null)\n\tlist_view_id = list_view?._id\n\n\tif record_id\n\t\treturn \"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id\n\telse\n\t\treturn \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id\n\nCreator.getListViewUrl = (object_name, app_id, list_view_id) ->\n\turl = Creator.getListViewRelativeUrl(object_name, app_id, list_view_id)\n\treturn Creator.getRelativeUrl(url)\n\nCreator.getListViewRelativeUrl = (object_name, app_id, list_view_id) ->\n\treturn \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id\n\nCreator.getSwitchListUrl = (object_name, app_id, list_view_id) ->\n\tif list_view_id\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + list_view_id + \"/list\")\n\telse\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/list/switch\")\n\nCreator.getRelatedObjectUrl = (object_name, app_id, record_id, related_object_name, related_field_name) ->\n\tif related_field_name\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid?related_field_name=\" + related_field_name)\n\telse\n\t\treturn Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid\")\n\nCreator.getObjectLookupFieldOptions = (object_name, is_deep, is_skip_hide, is_related)->\n\t_options = []\n\tunless object_name\n\t\treturn _options\n\t_object = Creator.getObject(object_name)\n\tfields = _object?.fields\n\ticon = _object?.icon\n\t_.forEach fields, (f, k)->\n\t\tif is_skip_hide and f.hidden\n\t\t\treturn\n\t\tif f.type == \"select\"\n\t\t\t_options.push {label: \"#{f.label || k}\", value: \"#{k}\", icon: icon}\n\t\telse\n\t\t\t_options.push {label: f.label || k, value: k, icon: icon}\n\tif is_deep\n\t\t_.forEach fields, (f, k)->\n\t\t\tif is_skip_hide and f.hidden\n\t\t\t\treturn\n\t\t\tif (f.type == \"lookup\" || f.type == \"master_detail\") && f.reference_to && _.isString(f.reference_to)\n\t\t\t\t# 不支持f.reference_to为function的情况,有需求再说\n\t\t\t\tr_object = Creator.getObject(f.reference_to)\n\t\t\t\tif r_object\n\t\t\t\t\t_.forEach r_object.fields, (f2, k2)->\n\t\t\t\t\t\t_options.push {label: \"#{f.label || k}=>#{f2.label || k2}\", value: \"#{k}.#{k2}\", icon: r_object?.icon}\n\tif is_related\n\t\trelatedObjects = Creator.getRelatedObjects(object_name)\n\t\t_.each relatedObjects, (_relatedObject)=>\n\t\t\trelatedOptions = Creator.getObjectLookupFieldOptions(_relatedObject.object_name, false, false, false)\n\t\t\trelatedObject = Creator.getObject(_relatedObject.object_name)\n\t\t\t_.each relatedOptions, (relatedOption)->\n\t\t\t\tif _relatedObject.foreign_key != relatedOption.value\n\t\t\t\t\t_options.push {label: \"#{relatedObject.label || relatedObject.name}=>#{relatedOption.label}\", value: \"#{relatedObject.name}.#{relatedOption.value}\", icon: relatedObject?.icon}\n\treturn _options\n\n# 统一为对象object_name提供可用于过虑器过虑字段\nCreator.getObjectFilterFieldOptions = (object_name)->\n\t_options = []\n\tunless object_name\n\t\treturn _options\n\t_object = Creator.getObject(object_name)\n\tfields = _object?.fields\n\tpermission_fields = Creator.getFields(object_name)\n\ticon = _object?.icon\n\t_.forEach fields, (f, k)->\n\t\t# hidden,grid等类型的字段,不需要过滤\n\t\tif !_.include([\"grid\",\"object\", \"[Object]\", \"[object]\", \"Object\", \"avatar\", \"image\", \"markdown\", \"html\"], f.type) and !f.hidden\n\t\t\t# filters.$.field及flow.current等子字段也不需要过滤\n\t\t\tif !/\\w+\\./.test(k) and _.indexOf(permission_fields, k) > -1\n\t\t\t\t_options.push {label: f.label || k, value: k, icon: icon}\n\n\treturn _options\n\nCreator.getObjectFieldOptions = (object_name)->\n\t_options = []\n\tunless object_name\n\t\treturn _options\n\t_object = Creator.getObject(object_name)\n\tfields = _object?.fields\n\tpermission_fields = Creator.getFields(object_name)\n\ticon = _object?.icon\n\t_.forEach fields, (f, k)->\n\t\tif !_.include([\"grid\",\"object\", \"[Object]\", \"[object]\", \"Object\", \"markdown\", \"html\"], f.type)\n\t\t\tif !/\\w+\\./.test(k) and _.indexOf(permission_fields, k) > -1\n\t\t\t\t_options.push {label: f.label || k, value: k, icon: icon}\n\treturn _options\n\n###\nfilters: 要转换的filters\nfields: 对象字段\nfilter_fields: 默认过滤字段,支持字符串数组和对象数组两种格式,如:['filed_name1','filed_name2'],[{field:'filed_name1',required:true}]\n处理逻辑: 把filters中存在于filter_fields的过滤条件增加每项的is_default、is_required属性,不存在于filter_fields的过滤条件对应的移除每项的相关属性\n返回结果: 处理后的filters\n###\nCreator.getFiltersWithFilterFields = (filters, fields, filter_fields)->\n\tunless filters\n\t\tfilters = []\n\tunless filter_fields\n\t\tfilter_fields = []\n\tif filter_fields?.length\n\t\tfilter_fields.forEach (n)->\n\t\t\tif _.isString(n)\n\t\t\t\tn = \n\t\t\t\t\tfield: n,\n\t\t\t\t\trequired: false\n\t\t\tif fields[n.field] and !_.findWhere(filters,{field:n.field})\n\t\t\t\tfilters.push\n\t\t\t\t\tfield: n.field,\n\t\t\t\t\tis_default: true,\n\t\t\t\t\tis_required: n.required\n\tfilters.forEach (filterItem)->\n\t\tmatchField = filter_fields.find (n)-> return n == filterItem.field or n.field == filterItem.field\n\t\tif _.isString(matchField)\n\t\t\tmatchField = \n\t\t\t\tfield: matchField,\n\t\t\t\trequired: false\n\t\tif matchField\n\t\t\tfilterItem.is_default = true\n\t\t\tfilterItem.is_required = matchField.required\n\t\telse\n\t\t\tdelete filterItem.is_default\n\t\t\tdelete filterItem.is_required\n\treturn filters\n\nCreator.getObjectRecord = (object_name, record_id, select_fields, expand)->\n\n\tif !object_name\n\t\tobject_name = Session.get(\"object_name\")\n\n\tif !record_id\n\t\trecord_id = Session.get(\"record_id\")\n\tif Meteor.isClient\n\t\tif object_name == Session.get(\"object_name\") && record_id == Session.get(\"record_id\")\n\t\t\tif Template.instance()?.record\n\t\t\t\treturn Template.instance()?.record?.get()\n\t\telse\n\t\t\treturn Creator.odata.get(object_name, record_id, select_fields, expand)\n\n\tobj = Creator.getObject(object_name)\n\n\tif obj.database_name == \"meteor\" || !obj.database_name\n\t\tcollection = Creator.getCollection(object_name)\n\t\tif collection\n\t\t\trecord = collection.findOne(record_id)\n\t\t\treturn record\n\telse if object_name && record_id\n\t\treturn Creator.odata.get(object_name, record_id, select_fields, expand)\n\nCreator.getObjectRecordName = (record, object_name)->\n\tunless record\n\t\trecord = Creator.getObjectRecord()\n\tif record\n\t\t# 显示组织列表时,特殊处理name_field_key为name字段\n\t\tname_field_key = if object_name == \"organizations\" then \"name\" else Creator.getObject(object_name)?.NAME_FIELD_KEY\n\t\tif record and name_field_key\n\t\t\treturn record.label || record[name_field_key]\n\nCreator.getApp = (app_id)->\n\tappMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n\tunless appMenus\n\t\treturn {}\n\tcurrentApp = appMenus.find (menuItem) ->\n\t\treturn menuItem.id == app_id\n\treturn currentApp\n\nCreator.getAppDashboard = (app_id)->\n\tapp = Creator.getApp(app_id)\n\tif !app\n\t\treturn\n\tdashboard = null\n\t_.each Creator.Dashboards, (v, k)->\n\t\tif v.apps?.indexOf(app._id) > -1\n\t\t\tdashboard = v;\n\treturn dashboard;\n\nCreator.getAppDashboardComponent = (app_id)->\n\tapp = Creator.getApp(app_id)\n\tif !app || true\n\t\treturn\n\t# return BuilderCreator.pluginComponentSelector(BuilderCreator.store.getState(), \"Dashboard\", app._id);\n\nCreator.getAppObjectNames = (app_id)->\n\tapp = Creator.getApp(app_id)\n\tif !app\n\t\treturn\n\tisMobile = Steedos.isMobile()\n\tappObjects = if isMobile then app.mobile_objects else app.objects\n\tobjects = []\n\tif app\n\t\t_.each appObjects, (v)->\n\t\t\tobj = Creator.getObject(v)\n\t\t\tif obj?.permissions.get().allowRead\n\t\t\t\tobjects.push v\n\treturn objects\n\nCreator.getUrlWithToken = (url, expressionFormData) ->\n\t# 给url时拼接当前用户token相关信息用于登录验证,支持配置表达式\n\tparams = {};\n\tparams[\"X-Space-Id\"] = Steedos.spaceId()\n\tparams[\"X-User-Id\"] = Steedos.userId();\n\tparams[\"X-Company-Ids\"] = Steedos.getUserCompanyIds();\n\tparams[\"X-Auth-Token\"] = Accounts._storedLoginToken();\n\tif Steedos.isExpression(url)\n\t\turl = Steedos.parseSingleExpression(url, expressionFormData, \"#\", Creator.USER_CONTEXT)\n\t# 外部链接地址中可能会带有#号,比如/builder/?p_ids=619383545b2e9a72ec0558b3#/page/public/test\n\t# 此时url中已经在#号前面出现了一个?号,这个问号不可以被识别为url参数,只有#号后面的?号才应该被识别为url参数\n\thasQuerySymbol = /(\\#.+\\?)|(\\?[^#]*$)/g.test(url)\n\tlinkStr = if hasQuerySymbol then \"&\" else \"?\"\n\treturn \"#{url}#{linkStr}#{$.param(params)}\"\n\nCreator.getAppMenu = (app_id, menu_id)->\n\tmenus = Creator.getAppMenus(app_id)\n\treturn menus && menus.find (menu)-> return menu.id == menu_id\n\nCreator.getAppMenuUrlForInternet = (menu)->\n\t# 当tabs类型为url时,按外部链接处理,支持配置表达式并加上统一的url参数\n\treturn Creator.getUrlWithToken menu.path, menu\n\nCreator.getAppMenuUrl = (menu)->\n\turl = menu.path\n\tif menu.type == \"url\"\n\t\tif menu.target\n\t\t\treturn Creator.getAppMenuUrlForInternet(menu)\n\t\telse\n\t\t\t# 在iframe中显示url界面\n\t\t\treturn \"/app/-/tab_iframe/#{menu.id}\"\n\telse\n\t\treturn menu.path\n\nCreator.getAppMenus = (app_id)->\n\tappMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n\tunless appMenus\n\t\treturn []\n\tcurentAppMenus = appMenus.find (menuItem) ->\n\t\treturn menuItem.id == app_id\n\tif curentAppMenus\n\t\treturn curentAppMenus.children\n\nCreator.loadAppsMenus = ()->\n\tisMobile = Steedos.isMobile()\n\tdata = { }\n\tif isMobile\n\t\tdata.mobile = isMobile\n\toptions = { \n\t\ttype: 'get', \n\t\tdata: data, \n\t\tsuccess: (data)->\n\t\t\tSession.set(\"app_menus\", data);\n\t }\n\tSteedos?.authRequest \"/service/api/apps/menus\", options\n\nCreator.creatorAppsSelector = (apps, assigned_apps) ->\n\tadminApp = undefined\n\tsortedApps = undefined\n\t_.each apps, (app, key) ->\n\t\tif !app._id\n\t\t\tapp._id = key\n\t\tif app.is_creator\n\t\t\t# 不需要isSpaceAdmin逻辑\n\t\t\t# if (isSpaceAdmin) {\n\t\t\t#\t\t app.visible = true;\n\t\t\t# }\n\t\telse\n\t\t\t# 非creator应该一律不显示\n\t\t\tapp.visible = false\n\t\treturn\n\tsortedApps = _.sortBy(_.values(apps), 'sort')\n\tcreatorApps = {}\n\tadminApp = {}\n\t# 按钮sort排序次序设置Creator.Apps值\n\t_.each sortedApps, (n) ->\n\t\tif n._id == 'admin'\n\t\t\tadminApp = n\n\t\telse\n\t\t\tcreatorApps[n._id] = n\n\t# admin菜单显示在最后\n\tcreatorApps.admin = adminApp\n\tif assigned_apps.length\n\t\t_.each creatorApps, (app, key) ->\n\t\t\tif assigned_apps.indexOf(key) > -1\n\t\t\t\tapp.visible = app.is_creator\n\t\t\telse\n\t\t\t\tapp.visible = false\n\t\t\treturn\n\tcreatorApps\n\nCreator.visibleAppsSelector = (creatorApps, includeAdmin = true) ->\n\tapps = []\n\t_.each creatorApps, (v, k) ->\n\t\tif v.visible != false and v._id != 'admin' or includeAdmin and v._id == 'admin'\n\t\t\tapps.push v\n\t\treturn\n\tapps\n\nCreator.getVisibleApps = (includeAdmin)->\n\tchangeApp = Creator._subApp.get();\n\tcreatorApps = Object.assign({}, Creator.Apps, {apps: changeApp});\n\treturn Creator.visibleAppsSelector(creatorApps, includeAdmin)\n\nCreator.getVisibleAppsObjects = ()->\n\tapps = Creator.getVisibleApps()\n\tvisibleObjectNames = _.flatten(_.pluck(apps,'objects'))\n\tobjects = _.filter Creator.Objects, (obj)->\n\t\tif visibleObjectNames.indexOf(obj.name) < 0\n\t\t\treturn false\n\t\telse\n\t\t\treturn true\n\tobjects = objects.sort(Creator.sortingMethod.bind({key:\"label\"}))\n\tobjects = _.pluck(objects,'name')\n\treturn _.uniq objects\n\nCreator.getAppsObjects = ()->\n\tobjects = []\n\ttempObjects = []\n\t_.forEach Creator.Apps, (app)->\n\t\ttempObjects = _.filter app.objects, (obj)->\n\t\t\treturn !obj.hidden\n\t\tobjects = objects.concat(tempObjects)\n\treturn _.uniq objects\n\nCreator.validateFilters = (filters, logic)->\n\tfilter_items = _.map filters, (obj) ->\n\t\tif _.isEmpty(obj)\n\t\t\treturn false\n\t\telse\n\t\t\treturn obj\n\tfilter_items = _.compact(filter_items)\n\terrorMsg = \"\"\n\tfilter_length = filter_items.length\n\tif logic\n\t\t# 格式化filter\n\t\tlogic = logic.replace(/\\n/g, \"\").replace(/\\s+/g, \" \")\n\n\t\t# 判断特殊字符\n\t\tif /[._\\-!+]+/ig.test(logic)\n\t\t\terrorMsg = \"含有特殊字符。\"\n\n\t\tif !errorMsg\n\t\t\tindex = logic.match(/\\d+/ig)\n\t\t\tif !index\n\t\t\t\terrorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\"\n\t\t\telse\n\t\t\t\tindex.forEach (i)->\n\t\t\t\t\tif i < 1 or i > filter_length\n\t\t\t\t\t\terrorMsg = \"您的筛选条件引用了未定义的筛选器:#{i}。\"\n\n\t\t\t\tflag = 1\n\t\t\t\twhile flag <= filter_length\n\t\t\t\t\tif !index.includes(\"#{flag}\")\n\t\t\t\t\t\terrorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\"\n\t\t\t\t\tflag++;\n\n\t\tif !errorMsg\n\t\t\t# 判断是否有非法英文字符\n\t\t\tword = logic.match(/[a-zA-Z]+/ig)\n\t\t\tif word\n\t\t\t\tword.forEach (w)->\n\t\t\t\t\tif !/^(and|or)$/ig.test(w)\n\t\t\t\t\t\terrorMsg = \"检查您的高级筛选条件中的拼写。\"\n\n\t\tif !errorMsg\n\t\t\t# 判断格式是否正确\n\t\t\ttry\n\t\t\t\tCreator.eval(logic.replace(/and/ig, \"&&\").replace(/or/ig, \"||\"))\n\t\t\tcatch e\n\t\t\t\terrorMsg = \"您的筛选器中含有特殊字符\"\n\n\t\t\tif /(AND)[^()]+(OR)/ig.test(logic) || /(OR)[^()]+(AND)/ig.test(logic)\n\t\t\t\terrorMsg = \"您的筛选器必须在连续性的 AND 和 OR 表达式前后使用括号。\"\n\tif errorMsg\n\t\tconsole.log \"error\", errorMsg\n\t\tif Meteor.isClient\n\t\t\ttoastr.error(errorMsg)\n\t\treturn false\n\telse\n\t\treturn true\n\n# \"=\", \"<>\", \">\", \">=\", \"<\", \"<=\", \"startswith\", \"contains\", \"notcontains\".\n###\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n###\nCreator.formatFiltersToMongo = (filters, options)->\n\tunless filters?.length\n\t\treturn\n\t# 当filters不是[Array]类型而是[Object]类型时,进行格式转换\n\tunless filters[0] instanceof Array\n\t\tfilters = _.map filters, (obj)->\n\t\t\treturn [obj.field, obj.operation, obj.value]\n\tselector = []\n\t_.each filters, (filter)->\n\t\tfield = filter[0]\n\t\toption = filter[1]\n\t\tif Meteor.isClient\n\t\t\tvalue = Creator.evaluateFormula(filter[2])\n\t\telse\n\t\t\tvalue = Creator.evaluateFormula(filter[2], null, options)\n\t\tsub_selector = {}\n\t\tsub_selector[field] = {}\n\t\tif option == \"=\"\n\t\t\tsub_selector[field][\"$eq\"] = value\n\t\telse if option == \"<>\"\n\t\t\tsub_selector[field][\"$ne\"] = value\n\t\telse if option == \">\"\n\t\t\tsub_selector[field][\"$gt\"] = value\n\t\telse if option == \">=\"\n\t\t\tsub_selector[field][\"$gte\"] = value\n\t\telse if option == \"<\"\n\t\t\tsub_selector[field][\"$lt\"] = value\n\t\telse if option == \"<=\"\n\t\t\tsub_selector[field][\"$lte\"] = value\n\t\telse if option == \"startswith\"\n\t\t\treg = new RegExp(\"^\" + value, \"i\")\n\t\t\tsub_selector[field][\"$regex\"] = reg\n\t\telse if option == \"contains\"\n\t\t\treg = new RegExp(value, \"i\")\n\t\t\tsub_selector[field][\"$regex\"] = reg\n\t\telse if option == \"notcontains\"\n\t\t\treg = new RegExp(\"^((?!\" + value + \").)*$\", \"i\")\n\t\t\tsub_selector[field][\"$regex\"] = reg\n\t\tselector.push sub_selector\n\treturn selector\n\nCreator.isBetweenFilterOperation = (operation)->\n\treturn operation == \"between\" or !!Creator.getBetweenTimeBuiltinValues(true)?[operation]\n\n###\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\n\textend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n###\nCreator.formatFiltersToDev = (filters, object_name, options)->\n\tunless filters.length\n\t\treturn\n\tif options?.is_logic_or\n\t\t# 如果is_logic_or为true,为filters第一层元素增加or间隔\n\t\tlogicTempFilters = []\n\t\tfilters.forEach (n)->\n\t\t\tlogicTempFilters.push(n)\n\t\t\tlogicTempFilters.push(\"or\")\n\t\tlogicTempFilters.pop()\n\t\tfilters = logicTempFilters\n\tselector = SteedosFilters.formatFiltersToDev(filters, Creator.USER_CONTEXT)\n\treturn selector\n\n###\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n###\nCreator.formatLogicFiltersToDev = (filters, filter_logic, options)->\n\tformat_logic = filter_logic.replace(/\\(\\s+/ig, \"(\").replace(/\\s+\\)/ig, \")\").replace(/\\(/g, \"[\").replace(/\\)/g, \"]\").replace(/\\s+/g, \",\").replace(/(and|or)/ig, \"'$1'\")\n\tformat_logic = format_logic.replace(/(\\d)+/ig, (x)->\n\t\t_f = filters[x-1]\n\t\tfield = _f.field\n\t\toption = _f.operation\n\t\tif Meteor.isClient\n\t\t\tvalue = Creator.evaluateFormula(_f.value)\n\t\telse\n\t\t\tvalue = Creator.evaluateFormula(_f.value, null, options)\n\t\tsub_selector = []\n\t\tif _.isArray(value) == true\n\t\t\tif option == \"=\"\n\t\t\t\t_.each value, (v)->\n\t\t\t\t\tsub_selector.push [field, option, v], \"or\"\n\t\t\telse if option == \"<>\"\n\t\t\t\t_.each value, (v)->\n\t\t\t\t\tsub_selector.push [field, option, v], \"and\"\n\t\t\telse\n\t\t\t\t_.each value, (v)->\n\t\t\t\t\tsub_selector.push [field, option, v], \"or\"\n\t\t\tif sub_selector[sub_selector.length - 1] == \"and\" || sub_selector[sub_selector.length - 1] == \"or\"\n\t\t\t\tsub_selector.pop()\n\t\telse\n\t\t\tsub_selector = [field, option, value]\n\t\t# console.log \"sub_selector\", sub_selector\n\t\treturn JSON.stringify(sub_selector)\n\t)\n\tformat_logic = \"[#{format_logic}]\"\n\treturn Creator.eval(format_logic)\n\nCreator.getRelatedObjects = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\n\trelated_object_names = []\n\t_object = Creator.getObject(object_name)\n\n\tif !_object\n\t\treturn related_object_names\n\n#\trelated_object_names = _.pluck(_object.related_objects,\"object_name\")\n\n\trelated_objects = Creator.getObjectRelateds(_object._collection_name)\n\n\trelated_object_names = _.pluck(related_objects,\"object_name\")\n\tif related_object_names?.length == 0\n\t\treturn related_object_names\n\n\tpermissions = Creator.getPermissions(object_name, spaceId, userId)\n\tunrelated_objects = permissions.unrelated_objects\n\n\trelated_object_names = _.difference related_object_names, unrelated_objects\n\treturn _.filter related_objects, (related_object)->\n\t\trelated_object_name = related_object.object_name\n\t\tisActive = related_object_names.indexOf(related_object_name) > -1\n\t\t# related_object_name = if related_object_name == \"cfs_files_filerecord\" then \"cfs.files.filerecord\" else related_object_name\n\t\tallowRead = Creator.getPermissions(related_object_name, spaceId, userId)?.allowRead\n\t\tif related_object_name == \"cms_files\"\n\t\t\tallowRead = allowRead && permissions.allowReadFiles\n\t\treturn isActive and allowRead\n\nCreator.getRelatedObjectNames = (object_name, spaceId, userId)->\n\trelated_objects = Creator.getRelatedObjects(object_name, spaceId, userId)\n\treturn _.pluck(related_objects,\"object_name\")\n\nCreator.getRelatedObjectListActions = (relatedObjectName, spaceId, userId)->\n\tactions = Creator.getActions(relatedObjectName, spaceId, userId)\n\tactions = _.filter actions, (action)->\n\t\tif action.name == \"standard_follow\"\n\t\t\treturn false\n\t\tif action.name == \"standard_query\"\n\t\t\treturn false\n\t\tif action.on == \"list\"\n\t\t\tif typeof action.visible == \"function\"\n\t\t\t\treturn action.visible()\n\t\t\telse\n\t\t\t\treturn action.visible\n\t\telse\n\t\t\treturn false\n\treturn actions\n\nCreator.getActions = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\n\tobj = Creator.getObject(object_name)\n\n\tif !obj\n\t\treturn\n\n\tpermissions = Creator.getPermissions(object_name, spaceId, userId)\n\tdisabled_actions = permissions.disabled_actions\n\tactions = _.sortBy(_.values(obj.actions) , 'sort');\n\n\tif _.has(obj, 'allow_customActions')\n\t\tactions = _.filter actions, (action)->\n\t\t\treturn _.include(obj.allow_customActions, action.name) || _.include(_.keys(Creator.getObject('base').actions) || {}, action.name)\n\tif _.has(obj, 'exclude_actions')\n\t\tactions = _.filter actions, (action)->\n\t\t\treturn !_.include(obj.exclude_actions, action.name)\n\n\t_.each actions, (action)->\n\t\t# 手机上只显示编辑按钮,其他的放到折叠下拉菜单中\n\t\tif Steedos.isMobile() && [\"record\", \"record_only\"].indexOf(action.on) > -1 && action.name != 'standard_edit'\n\t\t\tif action.on == \"record_only\"\n\t\t\t\taction.on = 'record_only_more'\n\t\t\telse\n\t\t\t\taction.on = 'record_more'\n\n\tif Steedos.isMobile() && [\"cms_files\", \"cfs.files.filerecord\"].indexOf(object_name) > -1\n\t\t# 附件特殊处理,下载按钮放在主菜单,编辑按钮放到底下折叠下拉菜单中\n\t\tactions.find((n)-> return n.name == \"standard_edit\")?.on = \"record_more\"\n\t\tactions.find((n)-> return n.name == \"download\")?.on = \"record\"\n\n\tactions = _.filter actions, (action)->\n\t\treturn _.indexOf(disabled_actions, action.name) < 0\n\n\treturn actions\n\n///\n\t返回当前用户有权限访问的所有list_view,包括分享的,用户自定义非分享的(除非owner变了),以及默认的其他视图\n\t注意Creator.getPermissions函数中是不会有用户自定义非分享的视图的,所以Creator.getPermissions函数中拿到的结果不全,并不是当前用户能看到所有视图\n///\nCreator.getListViews = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\t\n\tunless object_name\n\t\treturn\n\n\tobject = Creator.getObject(object_name)\n\n\tif !object\n\t\treturn\n\n\tdisabled_list_views = Creator.getPermissions(object_name, spaceId, userId)?.disabled_list_views || []\n\n\tlist_views = []\n\n\tisMobile = Steedos.isMobile()\n\n\t_.each object.list_views, (item, item_name)->\n\t\titem.name = item_name\n\n\tlistViews = _.sortBy(_.values(object.list_views) , 'sort_no');\n\n\t_.each listViews, (item)->\n\t\tif isMobile and item.type == \"calendar\"\n\t\t\t# 手机上先不显示日历视图\n\t\t\treturn\n\t\tif item.name != \"default\"\n\t\t\tisDisabled = _.indexOf(disabled_list_views, item.name) > -1 || (item._id && _.indexOf(disabled_list_views, item._id) > -1)\n\t\t\tif !isDisabled || item.owner == userId\n\t\t\t\tlist_views.push item\n\treturn list_views\n\n# 前台理论上不应该调用该函数,因为字段的权限都在Creator.getObject(object_name).fields的相关属性中有标识了\nCreator.getFields = (object_name, spaceId, userId)->\n\tif Meteor.isClient\n\t\tif !object_name\n\t\t\tobject_name = Session.get(\"object_name\")\n\t\tif !spaceId\n\t\t\tspaceId = Session.get(\"spaceId\")\n\t\tif !userId\n\t\t\tuserId = Meteor.userId()\n\n\tfieldsName = Creator.getObjectFieldsName(object_name)\n\tunreadable_fields = Creator.getPermissions(object_name, spaceId, userId)?.unreadable_fields\n\treturn _.difference(fieldsName, unreadable_fields)\n\nCreator.isloading = ()->\n\treturn !Creator.bootstrapLoaded.get()\n\nCreator.convertSpecialCharacter = (str)->\n\treturn str.replace(/([\\^\\$\\(\\)\\*\\+\\?\\.\\\\\\|\\[\\]\\{\\}])/g, \"\\\\$1\")\n\n# 计算fields相关函数\n# START\nCreator.getDisabledFields = (schema)->\n\tfields = _.map(schema, (field, fieldName) ->\n\t\treturn field.autoform and field.autoform.disabled and !field.autoform.omit and fieldName\n\t)\n\tfields = _.compact(fields)\n\treturn fields\n\nCreator.getHiddenFields = (schema)->\n\tfields = _.map(schema, (field, fieldName) ->\n\t\treturn field.autoform and field.autoform.type == \"hidden\" and !field.autoform.omit and fieldName\n\t)\n\tfields = _.compact(fields)\n\treturn fields\n\nCreator.getFieldsWithNoGroup = (schema)->\n\tfields = _.map(schema, (field, fieldName) ->\n\t\treturn (!field.autoform or !field.autoform.group or field.autoform.group == \"-\") and (!field.autoform or field.autoform.type != \"hidden\") and fieldName\n\t)\n\tfields = _.compact(fields)\n\treturn fields\n\nCreator.getSortedFieldGroupNames = (schema)->\n\tnames = _.map(schema, (field) ->\n \t\treturn field.autoform and field.autoform.group != \"-\" and field.autoform.group\n\t)\n\tnames = _.compact(names)\n\tnames = _.unique(names)\n\treturn names\n\nCreator.getFieldsForGroup = (schema, groupName) ->\n \tfields = _.map(schema, (field, fieldName) ->\n \treturn field.autoform and field.autoform.group == groupName and field.autoform.type != \"hidden\" and fieldName\n \t)\n \tfields = _.compact(fields)\n \treturn fields\n\nCreator.getSystemBaseFields = () ->\n\treturn [\"created\", \"created_by\", \"modified\", \"modified_by\"]\n\nCreator.getFieldsWithoutSystemBase = (keys) ->\n\treturn _.difference(keys, Creator.getSystemBaseFields());\n\nCreator.getFieldsWithoutOmit = (schema, keys) ->\n\tkeys = _.map(keys, (key) ->\n\t\tfield = _.pick(schema, key)\n\t\tif field[key].autoform?.omit\n\t\t\treturn false\n\t\telse\n\t\t\treturn key\n\t)\n\tkeys = _.compact(keys)\n\treturn keys\n\nCreator.getFieldsInFirstLevel = (firstLevelKeys, keys) ->\n\tkeys = _.map(keys, (key) ->\n\t\tif _.indexOf(firstLevelKeys, key) > -1\n\t\t\treturn key\n\t\telse\n\t\t\treturn false\n\t)\n\tkeys = _.compact(keys)\n\treturn keys\n\nCreator.getFieldsForReorder = (schema, keys, isSingle) ->\n\tfields = []\n\ti = 0\n\t_keys = _.filter(keys, (key)->\n\t\treturn !key.endsWith('_endLine')\n\t);\n\twhile i < _keys.length\n\t\tsc_1 = _.pick(schema, _keys[i])\n\t\tsc_2 = _.pick(schema, _keys[i+1])\n\n\t\tis_wide_1 = false\n\t\tis_wide_2 = false\n\n#\t\tis_range_1 = false\n#\t\tis_range_2 = false\n\n\t\t_.each sc_1, (value) ->\n\t\t\tif value.autoform?.is_wide || value.autoform?.type == \"table\"\n\t\t\t\tis_wide_1 = true\n\n#\t\t\tif value.autoform?.is_range\n#\t\t\t\tis_range_1 = true\n\n\t\t_.each sc_2, (value) ->\n\t\t\tif value.autoform?.is_wide || value.autoform?.type == \"table\"\n\t\t\t\tis_wide_2 = true\n\n#\t\t\tif value.autoform?.is_range\n#\t\t\t\tis_range_2 = true\n\n\t\tif Steedos.isMobile()\n\t\t\tis_wide_1 = true\n\t\t\tis_wide_2 = true\n\n\t\tif isSingle\n\t\t\tfields.push _keys.slice(i, i+1)\n\t\t\ti += 1\n\t\telse\n#\t\t\tif !is_range_1 && is_range_2\n#\t\t\t\tchildKeys = _keys.slice(i, i+1)\n#\t\t\t\tchildKeys.push undefined\n#\t\t\t\tfields.push childKeys\n#\t\t\t\ti += 1\n#\t\t\telse\n\t\t\tif is_wide_1\n\t\t\t\tfields.push _keys.slice(i, i+1)\n\t\t\t\ti += 1\n\t\t\telse if !is_wide_1 and is_wide_2\n\t\t\t\tchildKeys = _keys.slice(i, i+1)\n\t\t\t\tchildKeys.push undefined\n\t\t\t\tfields.push childKeys\n\t\t\t\ti += 1\n\t\t\telse if !is_wide_1 and !is_wide_2\n\t\t\t\tchildKeys = _keys.slice(i, i+1)\n\t\t\t\tif _keys[i+1]\n\t\t\t\t\tchildKeys.push _keys[i+1]\n\t\t\t\telse\n\t\t\t\t\tchildKeys.push undefined\n\t\t\t\tfields.push childKeys\n\t\t\t\ti += 2\n\n\treturn fields\n\nCreator.isFilterValueEmpty = (v) ->\n\treturn typeof v == \"undefined\" || v == null || Number.isNaN(v) || v.length == 0\n\nCreator.getFieldDataType = (objectFields, key)->\n\tif objectFields and key\n\t\tresult = objectFields[key]?.type\n\t\tif [\"formula\", \"summary\"].indexOf(result) > -1\n\t\t\tresult = objectFields[key].data_type\n\t\t# else if result == \"select\" and objectFields[key]?.data_type and objectFields[key].data_type != \"text\"\n\t\t# \tresult = objectFields[key].data_type\n\t\treturn result\n\telse\n\t\treturn \"text\"\n\n# END\n\nif Meteor.isServer\n\tCreator.getAllRelatedObjects = (object_name)->\n\t\trelated_object_names = []\n\t\t_.each Creator.Objects, (related_object, related_object_name)->\n\t\t\t_.each related_object.fields, (related_field, related_field_name)->\n\t\t\t\tif related_field.type == \"master_detail\" and related_field.reference_to and related_field.reference_to == object_name\n\t\t\t\t\trelated_object_names.push related_object_name\n\n\t\tif Creator.getObject(object_name).enable_files\n\t\t\trelated_object_names.push \"cms_files\"\n\n\t\treturn related_object_names\n\nif Meteor.isServer\n\tSteedos.formatIndex = (array) ->\n\t\tobject = {\n \tbackground: true\n \t};\n\t\tisdocumentDB = Meteor.settings?.datasources?.default?.documentDB || false;\n\t\tif isdocumentDB\n\t\t\tif array.length > 0\n\t\t\t\tindexName = array.join(\".\");\n\t\t\t\tobject.name = indexName;\n\t\t\t\t\n\t\t\t\tif (indexName.length > 52)\n\t\t\t\t\tobject.name = indexName.substring(0,52);\n\n\t\treturn object;","Creator.getSchema = function(object_name) {\n var ref;\n return (ref = Creator.getObject(object_name)) != null ? ref.schema : void 0;\n};\n\nCreator.getObjectHomeComponent = function(object_name) {\n return false;\n};\n\nCreator.getObjectUrl = function(object_name, record_id, app_id) {\n var list_view, list_view_id;\n if (!app_id) {\n app_id = Session.get(\"app_id\");\n }\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n list_view = Creator.getListView(object_name, null);\n list_view_id = list_view != null ? list_view._id : void 0;\n if (record_id) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id);\n } else {\n if (Creator.getObjectHomeComponent(object_name)) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name);\n } else {\n if (list_view_id) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id);\n } else {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name);\n }\n }\n }\n};\n\nCreator.getObjectAbsoluteUrl = function(object_name, record_id, app_id) {\n var list_view, list_view_id;\n if (!app_id) {\n app_id = Session.get(\"app_id\");\n }\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n list_view = Creator.getListView(object_name, null);\n list_view_id = list_view != null ? list_view._id : void 0;\n if (record_id) {\n return Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id, true);\n } else {\n return Steedos.absoluteUrl(\"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id, true);\n }\n};\n\nCreator.getObjectRouterUrl = function(object_name, record_id, app_id) {\n var list_view, list_view_id;\n if (!app_id) {\n app_id = Session.get(\"app_id\");\n }\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n list_view = Creator.getListView(object_name, null);\n list_view_id = list_view != null ? list_view._id : void 0;\n if (record_id) {\n return \"/app/\" + app_id + \"/\" + object_name + \"/view/\" + record_id;\n } else {\n return \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id;\n }\n};\n\nCreator.getListViewUrl = function(object_name, app_id, list_view_id) {\n var url;\n url = Creator.getListViewRelativeUrl(object_name, app_id, list_view_id);\n return Creator.getRelativeUrl(url);\n};\n\nCreator.getListViewRelativeUrl = function(object_name, app_id, list_view_id) {\n return \"/app/\" + app_id + \"/\" + object_name + \"/grid/\" + list_view_id;\n};\n\nCreator.getSwitchListUrl = function(object_name, app_id, list_view_id) {\n if (list_view_id) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + list_view_id + \"/list\");\n } else {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/list/switch\");\n }\n};\n\nCreator.getRelatedObjectUrl = function(object_name, app_id, record_id, related_object_name, related_field_name) {\n if (related_field_name) {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid?related_field_name=\" + related_field_name);\n } else {\n return Creator.getRelativeUrl(\"/app/\" + app_id + \"/\" + object_name + \"/\" + record_id + \"/\" + related_object_name + \"/grid\");\n }\n};\n\nCreator.getObjectLookupFieldOptions = function(object_name, is_deep, is_skip_hide, is_related) {\n var _object, _options, fields, icon, relatedObjects;\n _options = [];\n if (!object_name) {\n return _options;\n }\n _object = Creator.getObject(object_name);\n fields = _object != null ? _object.fields : void 0;\n icon = _object != null ? _object.icon : void 0;\n _.forEach(fields, function(f, k) {\n if (is_skip_hide && f.hidden) {\n return;\n }\n if (f.type === \"select\") {\n return _options.push({\n label: \"\" + (f.label || k),\n value: \"\" + k,\n icon: icon\n });\n } else {\n return _options.push({\n label: f.label || k,\n value: k,\n icon: icon\n });\n }\n });\n if (is_deep) {\n _.forEach(fields, function(f, k) {\n var r_object;\n if (is_skip_hide && f.hidden) {\n return;\n }\n if ((f.type === \"lookup\" || f.type === \"master_detail\") && f.reference_to && _.isString(f.reference_to)) {\n r_object = Creator.getObject(f.reference_to);\n if (r_object) {\n return _.forEach(r_object.fields, function(f2, k2) {\n return _options.push({\n label: (f.label || k) + \"=>\" + (f2.label || k2),\n value: k + \".\" + k2,\n icon: r_object != null ? r_object.icon : void 0\n });\n });\n }\n }\n });\n }\n if (is_related) {\n relatedObjects = Creator.getRelatedObjects(object_name);\n _.each(relatedObjects, (function(_this) {\n return function(_relatedObject) {\n var relatedObject, relatedOptions;\n relatedOptions = Creator.getObjectLookupFieldOptions(_relatedObject.object_name, false, false, false);\n relatedObject = Creator.getObject(_relatedObject.object_name);\n return _.each(relatedOptions, function(relatedOption) {\n if (_relatedObject.foreign_key !== relatedOption.value) {\n return _options.push({\n label: (relatedObject.label || relatedObject.name) + \"=>\" + relatedOption.label,\n value: relatedObject.name + \".\" + relatedOption.value,\n icon: relatedObject != null ? relatedObject.icon : void 0\n });\n }\n });\n };\n })(this));\n }\n return _options;\n};\n\nCreator.getObjectFilterFieldOptions = function(object_name) {\n var _object, _options, fields, icon, permission_fields;\n _options = [];\n if (!object_name) {\n return _options;\n }\n _object = Creator.getObject(object_name);\n fields = _object != null ? _object.fields : void 0;\n permission_fields = Creator.getFields(object_name);\n icon = _object != null ? _object.icon : void 0;\n _.forEach(fields, function(f, k) {\n if (!_.include([\"grid\", \"object\", \"[Object]\", \"[object]\", \"Object\", \"avatar\", \"image\", \"markdown\", \"html\"], f.type) && !f.hidden) {\n if (!/\\w+\\./.test(k) && _.indexOf(permission_fields, k) > -1) {\n return _options.push({\n label: f.label || k,\n value: k,\n icon: icon\n });\n }\n }\n });\n return _options;\n};\n\nCreator.getObjectFieldOptions = function(object_name) {\n var _object, _options, fields, icon, permission_fields;\n _options = [];\n if (!object_name) {\n return _options;\n }\n _object = Creator.getObject(object_name);\n fields = _object != null ? _object.fields : void 0;\n permission_fields = Creator.getFields(object_name);\n icon = _object != null ? _object.icon : void 0;\n _.forEach(fields, function(f, k) {\n if (!_.include([\"grid\", \"object\", \"[Object]\", \"[object]\", \"Object\", \"markdown\", \"html\"], f.type)) {\n if (!/\\w+\\./.test(k) && _.indexOf(permission_fields, k) > -1) {\n return _options.push({\n label: f.label || k,\n value: k,\n icon: icon\n });\n }\n }\n });\n return _options;\n};\n\n\n/*\nfilters: 要转换的filters\nfields: 对象字段\nfilter_fields: 默认过滤字段,支持字符串数组和对象数组两种格式,如:['filed_name1','filed_name2'],[{field:'filed_name1',required:true}]\n处理逻辑: 把filters中存在于filter_fields的过滤条件增加每项的is_default、is_required属性,不存在于filter_fields的过滤条件对应的移除每项的相关属性\n返回结果: 处理后的filters\n */\n\nCreator.getFiltersWithFilterFields = function(filters, fields, filter_fields) {\n if (!filters) {\n filters = [];\n }\n if (!filter_fields) {\n filter_fields = [];\n }\n if (filter_fields != null ? filter_fields.length : void 0) {\n filter_fields.forEach(function(n) {\n if (_.isString(n)) {\n n = {\n field: n,\n required: false\n };\n }\n if (fields[n.field] && !_.findWhere(filters, {\n field: n.field\n })) {\n return filters.push({\n field: n.field,\n is_default: true,\n is_required: n.required\n });\n }\n });\n }\n filters.forEach(function(filterItem) {\n var matchField;\n matchField = filter_fields.find(function(n) {\n return n === filterItem.field || n.field === filterItem.field;\n });\n if (_.isString(matchField)) {\n matchField = {\n field: matchField,\n required: false\n };\n }\n if (matchField) {\n filterItem.is_default = true;\n return filterItem.is_required = matchField.required;\n } else {\n delete filterItem.is_default;\n return delete filterItem.is_required;\n }\n });\n return filters;\n};\n\nCreator.getObjectRecord = function(object_name, record_id, select_fields, expand) {\n var collection, obj, record, ref, ref1, ref2;\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!record_id) {\n record_id = Session.get(\"record_id\");\n }\n if (Meteor.isClient) {\n if (object_name === Session.get(\"object_name\") && record_id === Session.get(\"record_id\")) {\n if ((ref = Template.instance()) != null ? ref.record : void 0) {\n return (ref1 = Template.instance()) != null ? (ref2 = ref1.record) != null ? ref2.get() : void 0 : void 0;\n }\n } else {\n return Creator.odata.get(object_name, record_id, select_fields, expand);\n }\n }\n obj = Creator.getObject(object_name);\n if (obj.database_name === \"meteor\" || !obj.database_name) {\n collection = Creator.getCollection(object_name);\n if (collection) {\n record = collection.findOne(record_id);\n return record;\n }\n } else if (object_name && record_id) {\n return Creator.odata.get(object_name, record_id, select_fields, expand);\n }\n};\n\nCreator.getObjectRecordName = function(record, object_name) {\n var name_field_key, ref;\n if (!record) {\n record = Creator.getObjectRecord();\n }\n if (record) {\n name_field_key = object_name === \"organizations\" ? \"name\" : (ref = Creator.getObject(object_name)) != null ? ref.NAME_FIELD_KEY : void 0;\n if (record && name_field_key) {\n return record.label || record[name_field_key];\n }\n }\n};\n\nCreator.getApp = function(app_id) {\n var appMenus, currentApp;\n appMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n if (!appMenus) {\n return {};\n }\n currentApp = appMenus.find(function(menuItem) {\n return menuItem.id === app_id;\n });\n return currentApp;\n};\n\nCreator.getAppDashboard = function(app_id) {\n var app, dashboard;\n app = Creator.getApp(app_id);\n if (!app) {\n return;\n }\n dashboard = null;\n _.each(Creator.Dashboards, function(v, k) {\n var ref;\n if (((ref = v.apps) != null ? ref.indexOf(app._id) : void 0) > -1) {\n return dashboard = v;\n }\n });\n return dashboard;\n};\n\nCreator.getAppDashboardComponent = function(app_id) {\n var app;\n app = Creator.getApp(app_id);\n if (!app || true) {\n\n }\n};\n\nCreator.getAppObjectNames = function(app_id) {\n var app, appObjects, isMobile, objects;\n app = Creator.getApp(app_id);\n if (!app) {\n return;\n }\n isMobile = Steedos.isMobile();\n appObjects = isMobile ? app.mobile_objects : app.objects;\n objects = [];\n if (app) {\n _.each(appObjects, function(v) {\n var obj;\n obj = Creator.getObject(v);\n if (obj != null ? obj.permissions.get().allowRead : void 0) {\n return objects.push(v);\n }\n });\n }\n return objects;\n};\n\nCreator.getUrlWithToken = function(url, expressionFormData) {\n var hasQuerySymbol, linkStr, params;\n params = {};\n params[\"X-Space-Id\"] = Steedos.spaceId();\n params[\"X-User-Id\"] = Steedos.userId();\n params[\"X-Company-Ids\"] = Steedos.getUserCompanyIds();\n params[\"X-Auth-Token\"] = Accounts._storedLoginToken();\n if (Steedos.isExpression(url)) {\n url = Steedos.parseSingleExpression(url, expressionFormData, \"#\", Creator.USER_CONTEXT);\n }\n hasQuerySymbol = /(\\#.+\\?)|(\\?[^#]*$)/g.test(url);\n linkStr = hasQuerySymbol ? \"&\" : \"?\";\n return \"\" + url + linkStr + ($.param(params));\n};\n\nCreator.getAppMenu = function(app_id, menu_id) {\n var menus;\n menus = Creator.getAppMenus(app_id);\n return menus && menus.find(function(menu) {\n return menu.id === menu_id;\n });\n};\n\nCreator.getAppMenuUrlForInternet = function(menu) {\n return Creator.getUrlWithToken(menu.path, menu);\n};\n\nCreator.getAppMenuUrl = function(menu) {\n var url;\n url = menu.path;\n if (menu.type === \"url\") {\n if (menu.target) {\n return Creator.getAppMenuUrlForInternet(menu);\n } else {\n return \"/app/-/tab_iframe/\" + menu.id;\n }\n } else {\n return menu.path;\n }\n};\n\nCreator.getAppMenus = function(app_id) {\n var appMenus, curentAppMenus;\n appMenus = Session.get(\"_app_menus\") || Session.get(\"app_menus\");\n if (!appMenus) {\n return [];\n }\n curentAppMenus = appMenus.find(function(menuItem) {\n return menuItem.id === app_id;\n });\n if (curentAppMenus) {\n return curentAppMenus.children;\n }\n};\n\nCreator.loadAppsMenus = function() {\n var data, isMobile, options;\n isMobile = Steedos.isMobile();\n data = {};\n if (isMobile) {\n data.mobile = isMobile;\n }\n options = {\n type: 'get',\n data: data,\n success: function(data) {\n return Session.set(\"app_menus\", data);\n }\n };\n return typeof Steedos !== \"undefined\" && Steedos !== null ? Steedos.authRequest(\"/service/api/apps/menus\", options) : void 0;\n};\n\nCreator.creatorAppsSelector = function(apps, assigned_apps) {\n var adminApp, creatorApps, sortedApps;\n adminApp = void 0;\n sortedApps = void 0;\n _.each(apps, function(app, key) {\n if (!app._id) {\n app._id = key;\n }\n if (app.is_creator) {\n\n } else {\n app.visible = false;\n }\n });\n sortedApps = _.sortBy(_.values(apps), 'sort');\n creatorApps = {};\n adminApp = {};\n _.each(sortedApps, function(n) {\n if (n._id === 'admin') {\n return adminApp = n;\n } else {\n return creatorApps[n._id] = n;\n }\n });\n creatorApps.admin = adminApp;\n if (assigned_apps.length) {\n _.each(creatorApps, function(app, key) {\n if (assigned_apps.indexOf(key) > -1) {\n app.visible = app.is_creator;\n } else {\n app.visible = false;\n }\n });\n }\n return creatorApps;\n};\n\nCreator.visibleAppsSelector = function(creatorApps, includeAdmin) {\n var apps;\n if (includeAdmin == null) {\n includeAdmin = true;\n }\n apps = [];\n _.each(creatorApps, function(v, k) {\n if (v.visible !== false && v._id !== 'admin' || includeAdmin && v._id === 'admin') {\n apps.push(v);\n }\n });\n return apps;\n};\n\nCreator.getVisibleApps = function(includeAdmin) {\n var changeApp, creatorApps;\n changeApp = Creator._subApp.get();\n creatorApps = Object.assign({}, Creator.Apps, {\n apps: changeApp\n });\n return Creator.visibleAppsSelector(creatorApps, includeAdmin);\n};\n\nCreator.getVisibleAppsObjects = function() {\n var apps, objects, visibleObjectNames;\n apps = Creator.getVisibleApps();\n visibleObjectNames = _.flatten(_.pluck(apps, 'objects'));\n objects = _.filter(Creator.Objects, function(obj) {\n if (visibleObjectNames.indexOf(obj.name) < 0) {\n return false;\n } else {\n return true;\n }\n });\n objects = objects.sort(Creator.sortingMethod.bind({\n key: \"label\"\n }));\n objects = _.pluck(objects, 'name');\n return _.uniq(objects);\n};\n\nCreator.getAppsObjects = function() {\n var objects, tempObjects;\n objects = [];\n tempObjects = [];\n _.forEach(Creator.Apps, function(app) {\n tempObjects = _.filter(app.objects, function(obj) {\n return !obj.hidden;\n });\n return objects = objects.concat(tempObjects);\n });\n return _.uniq(objects);\n};\n\nCreator.validateFilters = function(filters, logic) {\n var e, errorMsg, filter_items, filter_length, flag, index, word;\n filter_items = _.map(filters, function(obj) {\n if (_.isEmpty(obj)) {\n return false;\n } else {\n return obj;\n }\n });\n filter_items = _.compact(filter_items);\n errorMsg = \"\";\n filter_length = filter_items.length;\n if (logic) {\n logic = logic.replace(/\\n/g, \"\").replace(/\\s+/g, \" \");\n if (/[._\\-!+]+/ig.test(logic)) {\n errorMsg = \"含有特殊字符。\";\n }\n if (!errorMsg) {\n index = logic.match(/\\d+/ig);\n if (!index) {\n errorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\";\n } else {\n index.forEach(function(i) {\n if (i < 1 || i > filter_length) {\n return errorMsg = \"您的筛选条件引用了未定义的筛选器:\" + i + \"。\";\n }\n });\n flag = 1;\n while (flag <= filter_length) {\n if (!index.includes(\"\" + flag)) {\n errorMsg = \"有些筛选条件进行了定义,但未在高级筛选条件中被引用。\";\n }\n flag++;\n }\n }\n }\n if (!errorMsg) {\n word = logic.match(/[a-zA-Z]+/ig);\n if (word) {\n word.forEach(function(w) {\n if (!/^(and|or)$/ig.test(w)) {\n return errorMsg = \"检查您的高级筛选条件中的拼写。\";\n }\n });\n }\n }\n if (!errorMsg) {\n try {\n Creator[\"eval\"](logic.replace(/and/ig, \"&&\").replace(/or/ig, \"||\"));\n } catch (error) {\n e = error;\n errorMsg = \"您的筛选器中含有特殊字符\";\n }\n if (/(AND)[^()]+(OR)/ig.test(logic) || /(OR)[^()]+(AND)/ig.test(logic)) {\n errorMsg = \"您的筛选器必须在连续性的 AND 和 OR 表达式前后使用括号。\";\n }\n }\n }\n if (errorMsg) {\n console.log(\"error\", errorMsg);\n if (Meteor.isClient) {\n toastr.error(errorMsg);\n }\n return false;\n } else {\n return true;\n }\n};\n\n\n/*\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n */\n\nCreator.formatFiltersToMongo = function(filters, options) {\n var selector;\n if (!(filters != null ? filters.length : void 0)) {\n return;\n }\n if (!(filters[0] instanceof Array)) {\n filters = _.map(filters, function(obj) {\n return [obj.field, obj.operation, obj.value];\n });\n }\n selector = [];\n _.each(filters, function(filter) {\n var field, option, reg, sub_selector, value;\n field = filter[0];\n option = filter[1];\n if (Meteor.isClient) {\n value = Creator.evaluateFormula(filter[2]);\n } else {\n value = Creator.evaluateFormula(filter[2], null, options);\n }\n sub_selector = {};\n sub_selector[field] = {};\n if (option === \"=\") {\n sub_selector[field][\"$eq\"] = value;\n } else if (option === \"<>\") {\n sub_selector[field][\"$ne\"] = value;\n } else if (option === \">\") {\n sub_selector[field][\"$gt\"] = value;\n } else if (option === \">=\") {\n sub_selector[field][\"$gte\"] = value;\n } else if (option === \"<\") {\n sub_selector[field][\"$lt\"] = value;\n } else if (option === \"<=\") {\n sub_selector[field][\"$lte\"] = value;\n } else if (option === \"startswith\") {\n reg = new RegExp(\"^\" + value, \"i\");\n sub_selector[field][\"$regex\"] = reg;\n } else if (option === \"contains\") {\n reg = new RegExp(value, \"i\");\n sub_selector[field][\"$regex\"] = reg;\n } else if (option === \"notcontains\") {\n reg = new RegExp(\"^((?!\" + value + \").)*$\", \"i\");\n sub_selector[field][\"$regex\"] = reg;\n }\n return selector.push(sub_selector);\n });\n return selector;\n};\n\nCreator.isBetweenFilterOperation = function(operation) {\n var ref;\n return operation === \"between\" || !!((ref = Creator.getBetweenTimeBuiltinValues(true)) != null ? ref[operation] : void 0);\n};\n\n\n/*\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\n\textend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n */\n\nCreator.formatFiltersToDev = function(filters, object_name, options) {\n var logicTempFilters, selector;\n if (!filters.length) {\n return;\n }\n if (options != null ? options.is_logic_or : void 0) {\n logicTempFilters = [];\n filters.forEach(function(n) {\n logicTempFilters.push(n);\n return logicTempFilters.push(\"or\");\n });\n logicTempFilters.pop();\n filters = logicTempFilters;\n }\n selector = SteedosFilters.formatFiltersToDev(filters, Creator.USER_CONTEXT);\n return selector;\n};\n\n\n/*\noptions参数:\n\textend-- 是否需要把当前用户基本信息加入公式,即让公式支持Creator.USER_CONTEXT中的值,默认为true\n\tuserId-- 当前登录用户\n\tspaceId-- 当前所在工作区\nextend为true时,后端需要额外传入userId及spaceId用于抓取Creator.USER_CONTEXT对应的值\n */\n\nCreator.formatLogicFiltersToDev = function(filters, filter_logic, options) {\n var format_logic;\n format_logic = filter_logic.replace(/\\(\\s+/ig, \"(\").replace(/\\s+\\)/ig, \")\").replace(/\\(/g, \"[\").replace(/\\)/g, \"]\").replace(/\\s+/g, \",\").replace(/(and|or)/ig, \"'$1'\");\n format_logic = format_logic.replace(/(\\d)+/ig, function(x) {\n var _f, field, option, sub_selector, value;\n _f = filters[x - 1];\n field = _f.field;\n option = _f.operation;\n if (Meteor.isClient) {\n value = Creator.evaluateFormula(_f.value);\n } else {\n value = Creator.evaluateFormula(_f.value, null, options);\n }\n sub_selector = [];\n if (_.isArray(value) === true) {\n if (option === \"=\") {\n _.each(value, function(v) {\n return sub_selector.push([field, option, v], \"or\");\n });\n } else if (option === \"<>\") {\n _.each(value, function(v) {\n return sub_selector.push([field, option, v], \"and\");\n });\n } else {\n _.each(value, function(v) {\n return sub_selector.push([field, option, v], \"or\");\n });\n }\n if (sub_selector[sub_selector.length - 1] === \"and\" || sub_selector[sub_selector.length - 1] === \"or\") {\n sub_selector.pop();\n }\n } else {\n sub_selector = [field, option, value];\n }\n return JSON.stringify(sub_selector);\n });\n format_logic = \"[\" + format_logic + \"]\";\n return Creator[\"eval\"](format_logic);\n};\n\nCreator.getRelatedObjects = function(object_name, spaceId, userId) {\n var _object, permissions, related_object_names, related_objects, unrelated_objects;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n related_object_names = [];\n _object = Creator.getObject(object_name);\n if (!_object) {\n return related_object_names;\n }\n related_objects = Creator.getObjectRelateds(_object._collection_name);\n related_object_names = _.pluck(related_objects, \"object_name\");\n if ((related_object_names != null ? related_object_names.length : void 0) === 0) {\n return related_object_names;\n }\n permissions = Creator.getPermissions(object_name, spaceId, userId);\n unrelated_objects = permissions.unrelated_objects;\n related_object_names = _.difference(related_object_names, unrelated_objects);\n return _.filter(related_objects, function(related_object) {\n var allowRead, isActive, ref, related_object_name;\n related_object_name = related_object.object_name;\n isActive = related_object_names.indexOf(related_object_name) > -1;\n allowRead = (ref = Creator.getPermissions(related_object_name, spaceId, userId)) != null ? ref.allowRead : void 0;\n if (related_object_name === \"cms_files\") {\n allowRead = allowRead && permissions.allowReadFiles;\n }\n return isActive && allowRead;\n });\n};\n\nCreator.getRelatedObjectNames = function(object_name, spaceId, userId) {\n var related_objects;\n related_objects = Creator.getRelatedObjects(object_name, spaceId, userId);\n return _.pluck(related_objects, \"object_name\");\n};\n\nCreator.getRelatedObjectListActions = function(relatedObjectName, spaceId, userId) {\n var actions;\n actions = Creator.getActions(relatedObjectName, spaceId, userId);\n actions = _.filter(actions, function(action) {\n if (action.name === \"standard_follow\") {\n return false;\n }\n if (action.name === \"standard_query\") {\n return false;\n }\n if (action.on === \"list\") {\n if (typeof action.visible === \"function\") {\n return action.visible();\n } else {\n return action.visible;\n }\n } else {\n return false;\n }\n });\n return actions;\n};\n\nCreator.getActions = function(object_name, spaceId, userId) {\n var actions, disabled_actions, obj, permissions, ref, ref1;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n obj = Creator.getObject(object_name);\n if (!obj) {\n return;\n }\n permissions = Creator.getPermissions(object_name, spaceId, userId);\n disabled_actions = permissions.disabled_actions;\n actions = _.sortBy(_.values(obj.actions), 'sort');\n if (_.has(obj, 'allow_customActions')) {\n actions = _.filter(actions, function(action) {\n return _.include(obj.allow_customActions, action.name) || _.include(_.keys(Creator.getObject('base').actions) || {}, action.name);\n });\n }\n if (_.has(obj, 'exclude_actions')) {\n actions = _.filter(actions, function(action) {\n return !_.include(obj.exclude_actions, action.name);\n });\n }\n _.each(actions, function(action) {\n if (Steedos.isMobile() && [\"record\", \"record_only\"].indexOf(action.on) > -1 && action.name !== 'standard_edit') {\n if (action.on === \"record_only\") {\n return action.on = 'record_only_more';\n } else {\n return action.on = 'record_more';\n }\n }\n });\n if (Steedos.isMobile() && [\"cms_files\", \"cfs.files.filerecord\"].indexOf(object_name) > -1) {\n if ((ref = actions.find(function(n) {\n return n.name === \"standard_edit\";\n })) != null) {\n ref.on = \"record_more\";\n }\n if ((ref1 = actions.find(function(n) {\n return n.name === \"download\";\n })) != null) {\n ref1.on = \"record\";\n }\n }\n actions = _.filter(actions, function(action) {\n return _.indexOf(disabled_actions, action.name) < 0;\n });\n return actions;\n};\n\n/返回当前用户有权限访问的所有list_view,包括分享的,用户自定义非分享的(除非owner变了),以及默认的其他视图注意Creator.getPermissions函数中是不会有用户自定义非分享的视图的,所以Creator.getPermissions函数中拿到的结果不全,并不是当前用户能看到所有视图/;\n\nCreator.getListViews = function(object_name, spaceId, userId) {\n var disabled_list_views, isMobile, listViews, list_views, object, ref;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n if (!object_name) {\n return;\n }\n object = Creator.getObject(object_name);\n if (!object) {\n return;\n }\n disabled_list_views = ((ref = Creator.getPermissions(object_name, spaceId, userId)) != null ? ref.disabled_list_views : void 0) || [];\n list_views = [];\n isMobile = Steedos.isMobile();\n _.each(object.list_views, function(item, item_name) {\n return item.name = item_name;\n });\n listViews = _.sortBy(_.values(object.list_views), 'sort_no');\n _.each(listViews, function(item) {\n var isDisabled;\n if (isMobile && item.type === \"calendar\") {\n return;\n }\n if (item.name !== \"default\") {\n isDisabled = _.indexOf(disabled_list_views, item.name) > -1 || (item._id && _.indexOf(disabled_list_views, item._id) > -1);\n if (!isDisabled || item.owner === userId) {\n return list_views.push(item);\n }\n }\n });\n return list_views;\n};\n\nCreator.getFields = function(object_name, spaceId, userId) {\n var fieldsName, ref, unreadable_fields;\n if (Meteor.isClient) {\n if (!object_name) {\n object_name = Session.get(\"object_name\");\n }\n if (!spaceId) {\n spaceId = Session.get(\"spaceId\");\n }\n if (!userId) {\n userId = Meteor.userId();\n }\n }\n fieldsName = Creator.getObjectFieldsName(object_name);\n unreadable_fields = (ref = Creator.getPermissions(object_name, spaceId, userId)) != null ? ref.unreadable_fields : void 0;\n return _.difference(fieldsName, unreadable_fields);\n};\n\nCreator.isloading = function() {\n return !Creator.bootstrapLoaded.get();\n};\n\nCreator.convertSpecialCharacter = function(str) {\n return str.replace(/([\\^\\$\\(\\)\\*\\+\\?\\.\\\\\\|\\[\\]\\{\\}])/g, \"\\\\$1\");\n};\n\nCreator.getDisabledFields = function(schema) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return field.autoform && field.autoform.disabled && !field.autoform.omit && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getHiddenFields = function(schema) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return field.autoform && field.autoform.type === \"hidden\" && !field.autoform.omit && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getFieldsWithNoGroup = function(schema) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return (!field.autoform || !field.autoform.group || field.autoform.group === \"-\") && (!field.autoform || field.autoform.type !== \"hidden\") && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getSortedFieldGroupNames = function(schema) {\n var names;\n names = _.map(schema, function(field) {\n return field.autoform && field.autoform.group !== \"-\" && field.autoform.group;\n });\n names = _.compact(names);\n names = _.unique(names);\n return names;\n};\n\nCreator.getFieldsForGroup = function(schema, groupName) {\n var fields;\n fields = _.map(schema, function(field, fieldName) {\n return field.autoform && field.autoform.group === groupName && field.autoform.type !== \"hidden\" && fieldName;\n });\n fields = _.compact(fields);\n return fields;\n};\n\nCreator.getSystemBaseFields = function() {\n return [\"created\", \"created_by\", \"modified\", \"modified_by\"];\n};\n\nCreator.getFieldsWithoutSystemBase = function(keys) {\n return _.difference(keys, Creator.getSystemBaseFields());\n};\n\nCreator.getFieldsWithoutOmit = function(schema, keys) {\n keys = _.map(keys, function(key) {\n var field, ref;\n field = _.pick(schema, key);\n if ((ref = field[key].autoform) != null ? ref.omit : void 0) {\n return false;\n } else {\n return key;\n }\n });\n keys = _.compact(keys);\n return keys;\n};\n\nCreator.getFieldsInFirstLevel = function(firstLevelKeys, keys) {\n keys = _.map(keys, function(key) {\n if (_.indexOf(firstLevelKeys, key) > -1) {\n return key;\n } else {\n return false;\n }\n });\n keys = _.compact(keys);\n return keys;\n};\n\nCreator.getFieldsForReorder = function(schema, keys, isSingle) {\n var _keys, childKeys, fields, i, is_wide_1, is_wide_2, sc_1, sc_2;\n fields = [];\n i = 0;\n _keys = _.filter(keys, function(key) {\n return !key.endsWith('_endLine');\n });\n while (i < _keys.length) {\n sc_1 = _.pick(schema, _keys[i]);\n sc_2 = _.pick(schema, _keys[i + 1]);\n is_wide_1 = false;\n is_wide_2 = false;\n _.each(sc_1, function(value) {\n var ref, ref1;\n if (((ref = value.autoform) != null ? ref.is_wide : void 0) || ((ref1 = value.autoform) != null ? ref1.type : void 0) === \"table\") {\n return is_wide_1 = true;\n }\n });\n _.each(sc_2, function(value) {\n var ref, ref1;\n if (((ref = value.autoform) != null ? ref.is_wide : void 0) || ((ref1 = value.autoform) != null ? ref1.type : void 0) === \"table\") {\n return is_wide_2 = true;\n }\n });\n if (Steedos.isMobile()) {\n is_wide_1 = true;\n is_wide_2 = true;\n }\n if (isSingle) {\n fields.push(_keys.slice(i, i + 1));\n i += 1;\n } else {\n if (is_wide_1) {\n fields.push(_keys.slice(i, i + 1));\n i += 1;\n } else if (!is_wide_1 && is_wide_2) {\n childKeys = _keys.slice(i, i + 1);\n childKeys.push(void 0);\n fields.push(childKeys);\n i += 1;\n } else if (!is_wide_1 && !is_wide_2) {\n childKeys = _keys.slice(i, i + 1);\n if (_keys[i + 1]) {\n childKeys.push(_keys[i + 1]);\n } else {\n childKeys.push(void 0);\n }\n fields.push(childKeys);\n i += 2;\n }\n }\n }\n return fields;\n};\n\nCreator.isFilterValueEmpty = function(v) {\n return typeof v === \"undefined\" || v === null || Number.isNaN(v) || v.length === 0;\n};\n\nCreator.getFieldDataType = function(objectFields, key) {\n var ref, result;\n if (objectFields && key) {\n result = (ref = objectFields[key]) != null ? ref.type : void 0;\n if ([\"formula\", \"summary\"].indexOf(result) > -1) {\n result = objectFields[key].data_type;\n }\n return result;\n } else {\n return \"text\";\n }\n};\n\nif (Meteor.isServer) {\n Creator.getAllRelatedObjects = function(object_name) {\n var related_object_names;\n related_object_names = [];\n _.each(Creator.Objects, function(related_object, related_object_name) {\n return _.each(related_object.fields, function(related_field, related_field_name) {\n if (related_field.type === \"master_detail\" && related_field.reference_to && related_field.reference_to === object_name) {\n return related_object_names.push(related_object_name);\n }\n });\n });\n if (Creator.getObject(object_name).enable_files) {\n related_object_names.push(\"cms_files\");\n }\n return related_object_names;\n };\n}\n\nif (Meteor.isServer) {\n Steedos.formatIndex = function(array) {\n var indexName, isdocumentDB, object, ref, ref1, ref2;\n object = {\n background: true\n };\n isdocumentDB = ((ref = Meteor.settings) != null ? (ref1 = ref.datasources) != null ? (ref2 = ref1[\"default\"]) != null ? ref2.documentDB : void 0 : void 0 : void 0) || false;\n if (isdocumentDB) {\n if (array.length > 0) {\n indexName = array.join(\".\");\n object.name = indexName;\n if (indexName.length > 52) {\n object.name = indexName.substring(0, 52);\n }\n }\n }\n return object;\n };\n}\n","Creator.appsByName = {}\n\n","Meteor.methods\n\t\"object_recent_viewed\": (object_name, record_id, space_id)->\n\t\tif !this.userId\n\t\t\treturn null\n\n\t\tif object_name == \"object_recent_viewed\"\n\t\t\treturn\n\t\tif object_name and record_id\n\t\t\tif !space_id\n\t\t\t\tdoc = Creator.getCollection(object_name).findOne({_id: record_id}, {fields: {space: 1}})\n\t\t\t\tspace_id = doc?.space\n\n\t\t\tcollection_recent_viewed = Creator.getCollection(\"object_recent_viewed\")\n\t\t\tfilters = { owner: this.userId, space: space_id, 'record.o': object_name, 'record.ids': [record_id]}\n\t\t\tcurrent_recent_viewed = collection_recent_viewed.findOne(filters)\n\t\t\tif current_recent_viewed\n\t\t\t\tcollection_recent_viewed.update(\n\t\t\t\t\tcurrent_recent_viewed._id,\n\t\t\t\t\t{\n\t\t\t\t\t\t$inc: {\n\t\t\t\t\t\t\tcount: 1\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\tmodified: new Date()\n\t\t\t\t\t\t\tmodified_by: this.userId\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\telse\n\t\t\t\tcollection_recent_viewed.insert(\n\t\t\t\t\t{\n\t\t\t\t\t\t_id: collection_recent_viewed._makeNewID()\n\t\t\t\t\t\towner: this.userId\n\t\t\t\t\t\tspace: space_id\n\t\t\t\t\t\trecord: {o: object_name, ids: [record_id]}\n\t\t\t\t\t\tcount: 1\n\t\t\t\t\t\tcreated: new Date()\n\t\t\t\t\t\tcreated_by: this.userId\n\t\t\t\t\t\tmodified: new Date()\n\t\t\t\t\t\tmodified_by: this.userId\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tvalidate: false\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\treturn","Meteor.methods({\n \"object_recent_viewed\": function(object_name, record_id, space_id) {\n var collection_recent_viewed, current_recent_viewed, doc, filters;\n if (!this.userId) {\n return null;\n }\n if (object_name === \"object_recent_viewed\") {\n return;\n }\n if (object_name && record_id) {\n if (!space_id) {\n doc = Creator.getCollection(object_name).findOne({\n _id: record_id\n }, {\n fields: {\n space: 1\n }\n });\n space_id = doc != null ? doc.space : void 0;\n }\n collection_recent_viewed = Creator.getCollection(\"object_recent_viewed\");\n filters = {\n owner: this.userId,\n space: space_id,\n 'record.o': object_name,\n 'record.ids': [record_id]\n };\n current_recent_viewed = collection_recent_viewed.findOne(filters);\n if (current_recent_viewed) {\n collection_recent_viewed.update(current_recent_viewed._id, {\n $inc: {\n count: 1\n },\n $set: {\n modified: new Date(),\n modified_by: this.userId\n }\n });\n } else {\n collection_recent_viewed.insert({\n _id: collection_recent_viewed._makeNewID(),\n owner: this.userId,\n space: space_id,\n record: {\n o: object_name,\n ids: [record_id]\n },\n count: 1,\n created: new Date(),\n created_by: this.userId,\n modified: new Date(),\n modified_by: this.userId\n }, {\n validate: false\n });\n }\n }\n }\n});\n","recent_aggregate = (created_by, spaceId, _records, callback)->\n\tCreator.Collections.object_recent_viewed.rawCollection().aggregate([\n\t\t{$match: {created_by: created_by, space: spaceId}},\n\t\t{$group: {_id: {object_name: \"$record.o\", record_id: \"$record.ids\", space: \"$space\"}, maxCreated: {$max: \"$created\"}}},\n\t\t{$sort: {maxCreated: -1}},\n\t\t{$limit: 10}\n\t]).toArray (err, data)->\n\t\tif err\n\t\t\tthrow new Error(err)\n\n\t\tdata.forEach (doc) ->\n\t\t\t_records.push doc._id\n\n\t\tif callback && _.isFunction(callback)\n\t\t\tcallback()\n\n\t\treturn\n\nasync_recent_aggregate = Meteor.wrapAsync(recent_aggregate)\n\nsearch_object = (space, object_name,userId, searchText)->\n\tdata = new Array()\n\n\tif searchText\n\n\t\t_object = Creator.getObject(object_name)\n\n\t\t_object_collection = Creator.getCollection(object_name)\n\t\t_object_name_key = _object?.NAME_FIELD_KEY\n\t\tif _object && _object_collection && _object_name_key\n\t\t\tquery = {}\n\t\t\tsearch_Keywords = searchText.split(\" \")\n\t\t\tquery_and = []\n\t\t\tsearch_Keywords.forEach (keyword)->\n\t\t\t\tsubquery = {}\n\t\t\t\tsubquery[_object_name_key] = {$regex: keyword.trim()}\n\t\t\t\tquery_and.push subquery\n\n\t\t\tquery.$and = query_and\n\t\t\tquery.space = {$in: [space]}\n\n\t\t\tfields = {_id: 1}\n\t\t\tfields[_object_name_key] = 1\n\n\t\t\trecords = _object_collection.find(query, {fields: fields, sort: {modified: 1}, limit: 5})\n\n\t\t\trecords.forEach (record)->\n\t\t\t\tdata.push {_id: record._id, _name: record[_object_name_key], _object_name: object_name}\n\t\n\treturn data\n\nMeteor.methods\n\t'object_recent_record': (spaceId)->\n\t\tdata = new Array()\n\t\trecords = new Array()\n\t\tasync_recent_aggregate(this.userId, spaceId, records)\n\t\trecords.forEach (item)->\n\t\t\trecord_object = Creator.getObject(item.object_name, item.space)\n\n\t\t\tif !record_object\n\t\t\t\treturn\n\n\t\t\trecord_object_collection = Creator.getCollection(item.object_name, item.space)\n\n\t\t\tif record_object && record_object_collection\n\t\t\t\tfields = {_id: 1}\n\n\t\t\t\tfields[record_object.NAME_FIELD_KEY] = 1\n\n\t\t\t\trecord = record_object_collection.findOne(item.record_id[0], {fields: fields})\n\t\t\t\tif record\n\t\t\t\t\tdata.push {_id: record._id, _name: record[record_object.NAME_FIELD_KEY], _object_name: item.object_name}\n\n\t\treturn data\n\n\t'object_record_search': (options)->\n\t\tself = this\n\n\t\tdata = new Array()\n\n\t\tsearchText = options.searchText\n\t\tspace = options.space\n\n\t\t_.forEach Creator.objectsByName, (_object, name)->\n\t\t\tif _object.enable_search\n\t\t\t\tobject_record = search_object(space, _object.name, self.userId, searchText)\n\t\t\t\tdata = data.concat(object_record)\n\n\t\treturn data\n","var async_recent_aggregate, recent_aggregate, search_object;\n\nrecent_aggregate = function(created_by, spaceId, _records, callback) {\n return Creator.Collections.object_recent_viewed.rawCollection().aggregate([\n {\n $match: {\n created_by: created_by,\n space: spaceId\n }\n }, {\n $group: {\n _id: {\n object_name: \"$record.o\",\n record_id: \"$record.ids\",\n space: \"$space\"\n },\n maxCreated: {\n $max: \"$created\"\n }\n }\n }, {\n $sort: {\n maxCreated: -1\n }\n }, {\n $limit: 10\n }\n ]).toArray(function(err, data) {\n if (err) {\n throw new Error(err);\n }\n data.forEach(function(doc) {\n return _records.push(doc._id);\n });\n if (callback && _.isFunction(callback)) {\n callback();\n }\n });\n};\n\nasync_recent_aggregate = Meteor.wrapAsync(recent_aggregate);\n\nsearch_object = function(space, object_name, userId, searchText) {\n var _object, _object_collection, _object_name_key, data, fields, query, query_and, records, search_Keywords;\n data = new Array();\n if (searchText) {\n _object = Creator.getObject(object_name);\n _object_collection = Creator.getCollection(object_name);\n _object_name_key = _object != null ? _object.NAME_FIELD_KEY : void 0;\n if (_object && _object_collection && _object_name_key) {\n query = {};\n search_Keywords = searchText.split(\" \");\n query_and = [];\n search_Keywords.forEach(function(keyword) {\n var subquery;\n subquery = {};\n subquery[_object_name_key] = {\n $regex: keyword.trim()\n };\n return query_and.push(subquery);\n });\n query.$and = query_and;\n query.space = {\n $in: [space]\n };\n fields = {\n _id: 1\n };\n fields[_object_name_key] = 1;\n records = _object_collection.find(query, {\n fields: fields,\n sort: {\n modified: 1\n },\n limit: 5\n });\n records.forEach(function(record) {\n return data.push({\n _id: record._id,\n _name: record[_object_name_key],\n _object_name: object_name\n });\n });\n }\n }\n return data;\n};\n\nMeteor.methods({\n 'object_recent_record': function(spaceId) {\n var data, records;\n data = new Array();\n records = new Array();\n async_recent_aggregate(this.userId, spaceId, records);\n records.forEach(function(item) {\n var fields, record, record_object, record_object_collection;\n record_object = Creator.getObject(item.object_name, item.space);\n if (!record_object) {\n return;\n }\n record_object_collection = Creator.getCollection(item.object_name, item.space);\n if (record_object && record_object_collection) {\n fields = {\n _id: 1\n };\n fields[record_object.NAME_FIELD_KEY] = 1;\n record = record_object_collection.findOne(item.record_id[0], {\n fields: fields\n });\n if (record) {\n return data.push({\n _id: record._id,\n _name: record[record_object.NAME_FIELD_KEY],\n _object_name: item.object_name\n });\n }\n }\n });\n return data;\n },\n 'object_record_search': function(options) {\n var data, searchText, self, space;\n self = this;\n data = new Array();\n searchText = options.searchText;\n space = options.space;\n _.forEach(Creator.objectsByName, function(_object, name) {\n var object_record;\n if (_object.enable_search) {\n object_record = search_object(space, _object.name, self.userId, searchText);\n return data = data.concat(object_record);\n }\n });\n return data;\n }\n});\n","Meteor.methods\n update_filters: (listview_id, filters, filter_scope, filter_logic)->\n Creator.Collections.object_listviews.direct.update({_id: listview_id}, {$set: {filters: filters, filter_scope: filter_scope, filter_logic: filter_logic}})\n\n update_columns: (listview_id, columns)->\n check(columns, Array)\n \n if columns.length < 1\n throw new Meteor.Error 400, \"Select at least one field to display\"\n Creator.Collections.object_listviews.update({_id: listview_id}, {$set: {columns: columns}})\n","Meteor.methods({\n update_filters: function(listview_id, filters, filter_scope, filter_logic) {\n return Creator.Collections.object_listviews.direct.update({\n _id: listview_id\n }, {\n $set: {\n filters: filters,\n filter_scope: filter_scope,\n filter_logic: filter_logic\n }\n });\n },\n update_columns: function(listview_id, columns) {\n check(columns, Array);\n if (columns.length < 1) {\n throw new Meteor.Error(400, \"Select at least one field to display\");\n }\n return Creator.Collections.object_listviews.update({\n _id: listview_id\n }, {\n $set: {\n columns: columns\n }\n });\n }\n});\n","Meteor.methods\n\t'report_data': (options)->\n\t\tcheck(options, Object)\n\t\tspace = options.space\n\t\tfields = options.fields\n\t\tobject_name = options.object_name\n\t\tfilter_scope = options.filter_scope\n\t\tfilters = options.filters\n\t\tfilterFields = {}\n\t\tcompoundFields = []\n\t\tobjectFields = Creator.getObject(object_name)?.fields\n\t\t_.each fields, (item, index)->\n\t\t\tsplits = item.split(\".\")\n\t\t\tname = splits[0]\n\t\t\tobjectField = objectFields[name]\n\t\t\tif splits.length > 1 and objectField\n\t\t\t\tchildKey = item.replace name + \".\", \"\"\n\t\t\t\tcompoundFields.push({name: name, childKey: childKey, field: objectField})\n\t\t\tfilterFields[name] = 1\n\n\t\tselector = {}\n\t\tuserId = this.userId\n\t\tselector.space = space\n\t\tif filter_scope == \"spacex\"\n\t\t\tselector.space = \n\t\t\t\t$in: [null,space]\n\t\telse if filter_scope == \"mine\"\n\t\t\tselector.owner = userId\n\n\t\tif Creator.isCommonSpace(space) && Creator.isSpaceAdmin(space, @userId)\n\t\t\tdelete selector.space\n\n\t\tif filters and filters.length > 0\n\t\t\tselector[\"$and\"] = filters\n\n\t\tcursor = Creator.getCollection(object_name).find(selector, {fields: filterFields, skip: 0, limit: 10000})\n#\t\tif cursor.count() > 10000\n#\t\t\treturn []\n\t\tresult = cursor.fetch()\n\t\tif compoundFields.length\n\t\t\tresult = result.map (item,index)->\n\t\t\t\t_.each compoundFields, (compoundFieldItem, index)->\n\t\t\t\t\titemKey = compoundFieldItem.name + \"*%*\" + compoundFieldItem.childKey.replace(/\\./g, \"*%*\")\n\t\t\t\t\titemValue = item[compoundFieldItem.name]\n\t\t\t\t\ttype = compoundFieldItem.field.type\n\t\t\t\t\tif [\"lookup\", \"master_detail\"].indexOf(type) > -1\n\t\t\t\t\t\treference_to = compoundFieldItem.field.reference_to\n\t\t\t\t\t\tcompoundFilterFields = {}\n\t\t\t\t\t\tcompoundFilterFields[compoundFieldItem.childKey] = 1\n\t\t\t\t\t\treferenceItem = Creator.getCollection(reference_to).findOne {_id: itemValue}, fields: compoundFilterFields\n\t\t\t\t\t\tif referenceItem\n\t\t\t\t\t\t\titem[itemKey] = referenceItem[compoundFieldItem.childKey]\n\t\t\t\t\telse if type == \"select\"\n\t\t\t\t\t\toptions = compoundFieldItem.field.options\n\t\t\t\t\t\titem[itemKey] = _.findWhere(options, {value: itemValue})?.label or itemValue\n\t\t\t\t\telse\n\t\t\t\t\t\titem[itemKey] = itemValue\n\t\t\t\t\tunless item[itemKey]\n\t\t\t\t\t\titem[itemKey] = \"--\"\n\t\t\t\treturn item\n\t\t\treturn result\n\t\telse\n\t\t\treturn result\n\n","Meteor.methods({\n 'report_data': function(options) {\n var compoundFields, cursor, fields, filterFields, filter_scope, filters, objectFields, object_name, ref, result, selector, space, userId;\n check(options, Object);\n space = options.space;\n fields = options.fields;\n object_name = options.object_name;\n filter_scope = options.filter_scope;\n filters = options.filters;\n filterFields = {};\n compoundFields = [];\n objectFields = (ref = Creator.getObject(object_name)) != null ? ref.fields : void 0;\n _.each(fields, function(item, index) {\n var childKey, name, objectField, splits;\n splits = item.split(\".\");\n name = splits[0];\n objectField = objectFields[name];\n if (splits.length > 1 && objectField) {\n childKey = item.replace(name + \".\", \"\");\n compoundFields.push({\n name: name,\n childKey: childKey,\n field: objectField\n });\n }\n return filterFields[name] = 1;\n });\n selector = {};\n userId = this.userId;\n selector.space = space;\n if (filter_scope === \"spacex\") {\n selector.space = {\n $in: [null, space]\n };\n } else if (filter_scope === \"mine\") {\n selector.owner = userId;\n }\n if (Creator.isCommonSpace(space) && Creator.isSpaceAdmin(space, this.userId)) {\n delete selector.space;\n }\n if (filters && filters.length > 0) {\n selector[\"$and\"] = filters;\n }\n cursor = Creator.getCollection(object_name).find(selector, {\n fields: filterFields,\n skip: 0,\n limit: 10000\n });\n result = cursor.fetch();\n if (compoundFields.length) {\n result = result.map(function(item, index) {\n _.each(compoundFields, function(compoundFieldItem, index) {\n var compoundFilterFields, itemKey, itemValue, ref1, referenceItem, reference_to, type;\n itemKey = compoundFieldItem.name + \"*%*\" + compoundFieldItem.childKey.replace(/\\./g, \"*%*\");\n itemValue = item[compoundFieldItem.name];\n type = compoundFieldItem.field.type;\n if ([\"lookup\", \"master_detail\"].indexOf(type) > -1) {\n reference_to = compoundFieldItem.field.reference_to;\n compoundFilterFields = {};\n compoundFilterFields[compoundFieldItem.childKey] = 1;\n referenceItem = Creator.getCollection(reference_to).findOne({\n _id: itemValue\n }, {\n fields: compoundFilterFields\n });\n if (referenceItem) {\n item[itemKey] = referenceItem[compoundFieldItem.childKey];\n }\n } else if (type === \"select\") {\n options = compoundFieldItem.field.options;\n item[itemKey] = ((ref1 = _.findWhere(options, {\n value: itemValue\n })) != null ? ref1.label : void 0) || itemValue;\n } else {\n item[itemKey] = itemValue;\n }\n if (!item[itemKey]) {\n return item[itemKey] = \"--\";\n }\n });\n return item;\n });\n return result;\n } else {\n return result;\n }\n }\n});\n","###\n type: \"user\"\n object_name: \"object_listviews\"\n record_id: \"{object_name},{listview_id}\"\n settings:\n column_width: { field_a: 100, field_2: 150 }\n sort: [[\"field_a\", \"desc\"]]\n owner: {userId}\n###\n\nMeteor.methods\n \"tabular_sort_settings\": (object_name, list_view_id, sort)->\n userId = this.userId\n setting = Creator.Collections.settings.findOne({object_name: object_name, record_id: \"object_listviews\", owner: userId})\n if setting\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.sort\": sort}})\n else\n doc = \n type: \"user\"\n object_name: object_name\n record_id: \"object_listviews\"\n settings: {}\n owner: userId\n\n doc.settings[list_view_id] = {}\n doc.settings[list_view_id].sort = sort\n\n Creator.Collections.settings.insert(doc)\n\n \"tabular_column_width_settings\": (object_name, list_view_id, column_width)->\n userId = this.userId\n setting = Creator.Collections.settings.findOne({object_name: object_name, record_id: \"object_listviews\", owner: userId})\n if setting\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.column_width\": column_width}})\n else\n doc = \n type: \"user\"\n object_name: object_name\n record_id: \"object_listviews\"\n settings: {}\n owner: userId\n\n doc.settings[list_view_id] = {}\n doc.settings[list_view_id].column_width = column_width\n\n Creator.Collections.settings.insert(doc)\n\n \"grid_settings\": (object_name, list_view_id, column_width, sort)->\n userId = this.userId\n setting = Creator.Collections.settings.findOne({object_name: object_name, record_id: \"object_gridviews\", owner: userId})\n if setting\n # 每次都强制改变_id_actions列的宽度,以解决当用户只改变字段次序而没有改变任何字段宽度时,前端没有订阅到字段次序变更的数据的问题\n column_width._id_actions = if setting.settings[\"#{list_view_id}\"]?.column_width?._id_actions == 46 then 47 else 46\n if sort\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.sort\": sort, \"settings.#{list_view_id}.column_width\": column_width}})\n else\n Creator.Collections.settings.update({_id: setting._id}, {$set: {\"settings.#{list_view_id}.column_width\": column_width}})\n else\n doc =\n type: \"user\"\n object_name: object_name\n record_id: \"object_gridviews\"\n settings: {}\n owner: userId\n \n doc.settings[list_view_id] = {}\n doc.settings[list_view_id].column_width = column_width\n doc.settings[list_view_id].sort = sort\n\n Creator.Collections.settings.insert(doc)","\n/*\n type: \"user\"\n object_name: \"object_listviews\"\n record_id: \"{object_name},{listview_id}\"\n settings:\n column_width: { field_a: 100, field_2: 150 }\n sort: [[\"field_a\", \"desc\"]]\n owner: {userId}\n */\nMeteor.methods({\n \"tabular_sort_settings\": function(object_name, list_view_id, sort) {\n var doc, obj, setting, userId;\n userId = this.userId;\n setting = Creator.Collections.settings.findOne({\n object_name: object_name,\n record_id: \"object_listviews\",\n owner: userId\n });\n if (setting) {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj = {},\n obj[\"settings.\" + list_view_id + \".sort\"] = sort,\n obj\n )\n });\n } else {\n doc = {\n type: \"user\",\n object_name: object_name,\n record_id: \"object_listviews\",\n settings: {},\n owner: userId\n };\n doc.settings[list_view_id] = {};\n doc.settings[list_view_id].sort = sort;\n return Creator.Collections.settings.insert(doc);\n }\n },\n \"tabular_column_width_settings\": function(object_name, list_view_id, column_width) {\n var doc, obj, setting, userId;\n userId = this.userId;\n setting = Creator.Collections.settings.findOne({\n object_name: object_name,\n record_id: \"object_listviews\",\n owner: userId\n });\n if (setting) {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj = {},\n obj[\"settings.\" + list_view_id + \".column_width\"] = column_width,\n obj\n )\n });\n } else {\n doc = {\n type: \"user\",\n object_name: object_name,\n record_id: \"object_listviews\",\n settings: {},\n owner: userId\n };\n doc.settings[list_view_id] = {};\n doc.settings[list_view_id].column_width = column_width;\n return Creator.Collections.settings.insert(doc);\n }\n },\n \"grid_settings\": function(object_name, list_view_id, column_width, sort) {\n var doc, obj, obj1, ref, ref1, setting, userId;\n userId = this.userId;\n setting = Creator.Collections.settings.findOne({\n object_name: object_name,\n record_id: \"object_gridviews\",\n owner: userId\n });\n if (setting) {\n column_width._id_actions = ((ref = setting.settings[\"\" + list_view_id]) != null ? (ref1 = ref.column_width) != null ? ref1._id_actions : void 0 : void 0) === 46 ? 47 : 46;\n if (sort) {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj = {},\n obj[\"settings.\" + list_view_id + \".sort\"] = sort,\n obj[\"settings.\" + list_view_id + \".column_width\"] = column_width,\n obj\n )\n });\n } else {\n return Creator.Collections.settings.update({\n _id: setting._id\n }, {\n $set: (\n obj1 = {},\n obj1[\"settings.\" + list_view_id + \".column_width\"] = column_width,\n obj1\n )\n });\n }\n } else {\n doc = {\n type: \"user\",\n object_name: object_name,\n record_id: \"object_gridviews\",\n settings: {},\n owner: userId\n };\n doc.settings[list_view_id] = {};\n doc.settings[list_view_id].column_width = column_width;\n doc.settings[list_view_id].sort = sort;\n return Creator.Collections.settings.insert(doc);\n }\n }\n});\n","xml2js = require 'xml2js'\nfs = require 'fs'\npath = require 'path'\nmkdirp = require 'mkdirp'\n\nlogger = new Logger 'Export_TO_XML'\n\n_writeXmlFile = (jsonObj,objName) ->\n\t# 转xml\n\tbuilder = new xml2js.Builder()\n\txml = builder.buildObject jsonObj\n\n\t# 转为buffer\n\tstream = new Buffer xml\n\n\t# 根据当天时间的年月日作为存储路径\n\tnow = new Date\n\tyear = now.getFullYear()\n\tmonth = now.getMonth() + 1\n\tday = now.getDate()\n\n\t# 文件路径\n\tfilePath = path.join(__meteor_bootstrap__.serverDir,'../../../export/' + year + '/' + month + '/' + day + '/' + objName )\n\tfileName = jsonObj?._id + \".xml\"\n\tfileAddress = path.join filePath, fileName\n\n\tif !fs.existsSync filePath\n\t\tmkdirp.sync filePath\n\n\t# 写入文件\n\tfs.writeFile fileAddress, stream, (err) ->\n\t\tif err\n\t\t\tlogger.error \"#{jsonObj._id}写入xml文件失败\",err\n\t\n\treturn filePath\n\n\n# 整理Fields的json数据\n_mixFieldsData = (obj,objName) ->\n\t# 初始化对象数据\n\tjsonObj = {}\n\t# 获取fields\n\tobjFields = Creator?.getObject(objName)?.fields\n\n\tmixDefault = (field_name)->\n\t\tjsonObj[field_name] = obj[field_name] || \"\"\n\n\tmixDate = (field_name,type)->\n\t\tdate = obj[field_name]\n\t\tif type == \"date\"\n\t\t\tformat = \"YYYY-MM-DD\"\n\t\telse\n\t\t\tformat = \"YYYY-MM-DD HH:mm:ss\"\n\t\tif date? and format?\n\t\t\tdateStr = moment(date).format(format)\n\t\tjsonObj[field_name] = dateStr || \"\"\n\n\tmixBool = (field_name)->\n\t\tif obj[field_name] == true\n\t\t\tjsonObj[field_name] = \"是\"\n\t\telse if obj[field_name] == false\n\t\t\tjsonObj[field_name] = \"否\"\n\t\telse\n\t\t\tjsonObj[field_name] = \"\"\n\n\t# 循环每个fields,并判断取值\n\t_.each objFields, (field, field_name)->\n\t\tswitch field?.type\n\t\t\twhen \"date\",\"datetime\" then mixDate field_name,field.type\n\t\t\twhen \"boolean\" then mixBool field_name\n\t\t\telse mixDefault field_name\n\n\treturn jsonObj\n\n# 获取子表整理数据\n_mixRelatedData = (obj,objName) ->\n\t# 初始化对象数据\n\trelated_objects = {}\n\n\t# 获取相关表\n\trelatedObjNames = Creator?.getAllRelatedObjects objName\n\n\t# 循环相关表\n\trelatedObjNames.forEach (relatedObjName) ->\n\t\t# 每个表定义一个对象数组\n\t\trelatedTableData = []\n\n\t\t# *设置关联搜索查询的字段\n\t\t# 附件的关联搜索字段是定死的\n\t\tif relatedObjName == \"cms_files\"\n\t\t\trelated_field_name = \"parent.ids\"\n\t\telse\n\t\t\t# 获取fields\n\t\t\tfields = Creator?.Objects[relatedObjName]?.fields\n\t\t\t# 循环每个field,找出reference_to的关联字段\n\t\t\trelated_field_name = \"\"\n\t\t\t_.each fields, (field, field_name)->\n\t\t\t\tif field?.reference_to == objName\n\t\t\t\t\trelated_field_name = field_name\n\n\t\t# 根据找出的关联字段,查子表数据\n\t\tif related_field_name\n\t\t\trelatedCollection = Creator.getCollection(relatedObjName)\n\t\t\t# 获取到所有的数据\n\t\t\trelatedRecordList = relatedCollection.find({\"#{related_field_name}\":obj._id}).fetch()\n\t\t\t# 循环每一条数据\n\t\t\trelatedRecordList.forEach (relatedObj)->\n\t\t\t\t# 整合fields数据\n\t\t\t\tfieldsData = _mixFieldsData relatedObj,relatedObjName\n\t\t\t\t# 把一条记录插入到对象数组中\n\t\t\t\trelatedTableData.push fieldsData\n\n\t\t# 把一个子表的所有数据插入到related_objects中,再循环下一个\n\t\trelated_objects[relatedObjName] = relatedTableData\n\n\treturn related_objects\n\n# Creator.Export2xml()\nCreator.Export2xml = (objName, recordList) ->\n\tlogger.info \"Run Creator.Export2xml\"\n\n\tconsole.time \"Creator.Export2xml\"\n\n\t# 测试数据\n\t# objName = \"archive_records\"\n\n\t# 查找对象数据\n\tcollection = Creator.getCollection(objName)\n\t# 测试数据\n\trecordList = collection.find({}).fetch()\n\n\trecordList.forEach (recordObj)->\n\t\tjsonObj = {}\n\t\tjsonObj._id = recordObj._id\n\n\t\t# 整理主表的Fields数据\n\t\tfieldsData = _mixFieldsData recordObj,objName\n\t\tjsonObj[objName] = fieldsData\n\n\t\t# 整理相关表数据\n\t\trelated_objects = _mixRelatedData recordObj,objName\n\n\t\tjsonObj[\"related_objects\"] = related_objects\n\n\t\t# 转为xml保存文件\n\t\tfilePath = _writeXmlFile jsonObj,objName\n\n\tconsole.timeEnd \"Creator.Export2xml\"\n\treturn filePath","var _mixFieldsData, _mixRelatedData, _writeXmlFile, fs, logger, mkdirp, path, xml2js;\n\nxml2js = require('xml2js');\n\nfs = require('fs');\n\npath = require('path');\n\nmkdirp = require('mkdirp');\n\nlogger = new Logger('Export_TO_XML');\n\n_writeXmlFile = function(jsonObj, objName) {\n var builder, day, fileAddress, fileName, filePath, month, now, stream, xml, year;\n builder = new xml2js.Builder();\n xml = builder.buildObject(jsonObj);\n stream = new Buffer(xml);\n now = new Date;\n year = now.getFullYear();\n month = now.getMonth() + 1;\n day = now.getDate();\n filePath = path.join(__meteor_bootstrap__.serverDir, '../../../export/' + year + '/' + month + '/' + day + '/' + objName);\n fileName = (jsonObj != null ? jsonObj._id : void 0) + \".xml\";\n fileAddress = path.join(filePath, fileName);\n if (!fs.existsSync(filePath)) {\n mkdirp.sync(filePath);\n }\n fs.writeFile(fileAddress, stream, function(err) {\n if (err) {\n return logger.error(jsonObj._id + \"写入xml文件失败\", err);\n }\n });\n return filePath;\n};\n\n_mixFieldsData = function(obj, objName) {\n var jsonObj, mixBool, mixDate, mixDefault, objFields, ref;\n jsonObj = {};\n objFields = typeof Creator !== \"undefined\" && Creator !== null ? (ref = Creator.getObject(objName)) != null ? ref.fields : void 0 : void 0;\n mixDefault = function(field_name) {\n return jsonObj[field_name] = obj[field_name] || \"\";\n };\n mixDate = function(field_name, type) {\n var date, dateStr, format;\n date = obj[field_name];\n if (type === \"date\") {\n format = \"YYYY-MM-DD\";\n } else {\n format = \"YYYY-MM-DD HH:mm:ss\";\n }\n if ((date != null) && (format != null)) {\n dateStr = moment(date).format(format);\n }\n return jsonObj[field_name] = dateStr || \"\";\n };\n mixBool = function(field_name) {\n if (obj[field_name] === true) {\n return jsonObj[field_name] = \"是\";\n } else if (obj[field_name] === false) {\n return jsonObj[field_name] = \"否\";\n } else {\n return jsonObj[field_name] = \"\";\n }\n };\n _.each(objFields, function(field, field_name) {\n switch (field != null ? field.type : void 0) {\n case \"date\":\n case \"datetime\":\n return mixDate(field_name, field.type);\n case \"boolean\":\n return mixBool(field_name);\n default:\n return mixDefault(field_name);\n }\n });\n return jsonObj;\n};\n\n_mixRelatedData = function(obj, objName) {\n var relatedObjNames, related_objects;\n related_objects = {};\n relatedObjNames = typeof Creator !== \"undefined\" && Creator !== null ? Creator.getAllRelatedObjects(objName) : void 0;\n relatedObjNames.forEach(function(relatedObjName) {\n var fields, obj1, ref, relatedCollection, relatedRecordList, relatedTableData, related_field_name;\n relatedTableData = [];\n if (relatedObjName === \"cms_files\") {\n related_field_name = \"parent.ids\";\n } else {\n fields = typeof Creator !== \"undefined\" && Creator !== null ? (ref = Creator.Objects[relatedObjName]) != null ? ref.fields : void 0 : void 0;\n related_field_name = \"\";\n _.each(fields, function(field, field_name) {\n if ((field != null ? field.reference_to : void 0) === objName) {\n return related_field_name = field_name;\n }\n });\n }\n if (related_field_name) {\n relatedCollection = Creator.getCollection(relatedObjName);\n relatedRecordList = relatedCollection.find((\n obj1 = {},\n obj1[\"\" + related_field_name] = obj._id,\n obj1\n )).fetch();\n relatedRecordList.forEach(function(relatedObj) {\n var fieldsData;\n fieldsData = _mixFieldsData(relatedObj, relatedObjName);\n return relatedTableData.push(fieldsData);\n });\n }\n return related_objects[relatedObjName] = relatedTableData;\n });\n return related_objects;\n};\n\nCreator.Export2xml = function(objName, recordList) {\n var collection;\n logger.info(\"Run Creator.Export2xml\");\n console.time(\"Creator.Export2xml\");\n collection = Creator.getCollection(objName);\n recordList = collection.find({}).fetch();\n recordList.forEach(function(recordObj) {\n var fieldsData, filePath, jsonObj, related_objects;\n jsonObj = {};\n jsonObj._id = recordObj._id;\n fieldsData = _mixFieldsData(recordObj, objName);\n jsonObj[objName] = fieldsData;\n related_objects = _mixRelatedData(recordObj, objName);\n jsonObj[\"related_objects\"] = related_objects;\n return filePath = _writeXmlFile(jsonObj, objName);\n });\n console.timeEnd(\"Creator.Export2xml\");\n return filePath;\n};\n","Meteor.methods \n\trelated_objects_records: (object_name, related_object_name, related_field_name, record_id, spaceId)->\n\t\tuserId = this.userId\n\t\tif related_object_name == \"cfs.files.filerecord\"\n\t\t\tselector = {\"metadata.space\": spaceId}\n\t\telse\n\t\t\tselector = {space: spaceId}\n\t\t\n\t\tif related_object_name == \"cms_files\"\n\t\t\t# 附件的关联搜索条件是定死的\n\t\t\tselector[\"parent.o\"] = object_name\n\t\t\tselector[\"parent.ids\"] = [record_id]\n\t\telse\n\t\t\tselector[related_field_name] = record_id\n\n\t\tpermissions = Creator.getPermissions(related_object_name, spaceId, userId)\n\t\tif !permissions.viewAllRecords and permissions.allowRead\n\t\t\tselector.owner = userId\n\t\t\n\t\trelated_records = Creator.getCollection(related_object_name).find(selector)\n\t\treturn related_records.count()","Meteor.methods({\n related_objects_records: function(object_name, related_object_name, related_field_name, record_id, spaceId) {\n var permissions, related_records, selector, userId;\n userId = this.userId;\n if (related_object_name === \"cfs.files.filerecord\") {\n selector = {\n \"metadata.space\": spaceId\n };\n } else {\n selector = {\n space: spaceId\n };\n }\n if (related_object_name === \"cms_files\") {\n selector[\"parent.o\"] = object_name;\n selector[\"parent.ids\"] = [record_id];\n } else {\n selector[related_field_name] = record_id;\n }\n permissions = Creator.getPermissions(related_object_name, spaceId, userId);\n if (!permissions.viewAllRecords && permissions.allowRead) {\n selector.owner = userId;\n }\n related_records = Creator.getCollection(related_object_name).find(selector);\n return related_records.count();\n }\n});\n","Meteor.methods\n\tgetPendingSpaceInfo: (inviterId, spaceId)->\n\t\tinviterName = db.users.findOne({_id: inviterId}).name\n\t\tspaceName = db.spaces.findOne({_id: spaceId}).name\n\n\t\treturn {inviter: inviterName, space: spaceName}\n\n\trefuseJoinSpace: (_id)->\n\t\tdb.space_users.direct.update({_id: _id},{$set: {invite_state: \"refused\"}})\n\n\tacceptJoinSpace: (_id)->\n\t\tdb.space_users.direct.update({_id: _id},{$set: {invite_state: \"accepted\", user_accepted: true}})\n\n","Meteor.methods({\n getPendingSpaceInfo: function(inviterId, spaceId) {\n var inviterName, spaceName;\n inviterName = db.users.findOne({\n _id: inviterId\n }).name;\n spaceName = db.spaces.findOne({\n _id: spaceId\n }).name;\n return {\n inviter: inviterName,\n space: spaceName\n };\n },\n refuseJoinSpace: function(_id) {\n return db.space_users.direct.update({\n _id: _id\n }, {\n $set: {\n invite_state: \"refused\"\n }\n });\n },\n acceptJoinSpace: function(_id) {\n return db.space_users.direct.update({\n _id: _id\n }, {\n $set: {\n invite_state: \"accepted\",\n user_accepted: true\n }\n });\n }\n});\n","Meteor.publish \"creator_object_record\", (object_name, id, space_id)->\n\tcollection = Creator.getCollection(object_name, space_id)\n\tif collection\n\t\treturn collection.find({_id: id})\n\n","Meteor.publish(\"creator_object_record\", function(object_name, id, space_id) {\n var collection;\n collection = Creator.getCollection(object_name, space_id);\n if (collection) {\n return collection.find({\n _id: id\n });\n }\n});\n","Meteor.publishComposite \"steedos_object_tabular\", (tableName, ids, fields, spaceId)->\n\tunless this.userId\n\t\treturn this.ready()\n\n\tcheck(tableName, String);\n\tcheck(ids, Array);\n\tcheck(fields, Match.Optional(Object));\n\n\t_object_name = tableName.replace(\"creator_\",\"\")\n\t_object = Creator.getObject(_object_name, spaceId)\n\n\tif spaceId\n\t\t_object_name = Creator.getObjectName(_object)\n\n\tobject_colleciton = Creator.getCollection(_object_name)\n\n\n\t_fields = _object?.fields\n\tif !_fields || !object_colleciton\n\t\treturn this.ready()\n\n\treference_fields = _.filter _fields, (f)->\n\t\treturn _.isFunction(f.reference_to) || !_.isEmpty(f.reference_to)\n\n\tself = this\n\n\tself.unblock();\n\n\tif reference_fields.length > 0\n\t\tdata = {\n\t\t\tfind: ()->\n\t\t\t\tself.unblock();\n\t\t\t\tfield_keys = {}\n\t\t\t\t_.each _.keys(fields), (f)->\n\t\t\t\t\tunless /\\w+(\\.\\$){1}\\w?/.test(f)\n\t\t\t\t\t\tfield_keys[f] = 1\n\t\t\t\t\n\t\t\t\treturn object_colleciton.find({_id: {$in: ids}}, {fields: field_keys});\n\t\t}\n\n\t\tdata.children = []\n\n\t\tkeys = _.keys(fields)\n\n\t\tif keys.length < 1\n\t\t\tkeys = _.keys(_fields)\n\n\t\t_keys = []\n\n\t\tkeys.forEach (key)->\n\t\t\tif _object.schema._objectKeys[key + '.']\n\t\t\t\t_keys = _keys.concat(_.map(_object.schema._objectKeys[key + '.'], (k)->\n\t\t\t\t\treturn key + '.' + k\n\t\t\t\t))\n\t\t\t_keys.push(key)\n\n\t\t_keys.forEach (key)->\n\t\t\treference_field = _fields[key]\n\n\t\t\tif reference_field && (_.isFunction(reference_field.reference_to) || !_.isEmpty(reference_field.reference_to)) # and Creator.Collections[reference_field.reference_to]\n\t\t\t\tdata.children.push {\n\t\t\t\t\tfind: (parent) ->\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t\tself.unblock();\n\n\t\t\t\t\t\t\tquery = {}\n\n\t\t\t\t\t\t\t# 表格子字段特殊处理\n\t\t\t\t\t\t\tif /\\w+(\\.\\$\\.){1}\\w+/.test(key)\n\t\t\t\t\t\t\t\tp_k = key.replace(/(\\w+)\\.\\$\\.\\w+/ig, \"$1\")\n\t\t\t\t\t\t\t\ts_k = key.replace(/\\w+\\.\\$\\.(\\w+)/ig, \"$1\")\n\t\t\t\t\t\t\t\treference_ids = parent[p_k].getProperty(s_k)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\treference_ids = key.split('.').reduce (o, x) ->\n\t\t\t\t\t\t\t\t\t\to?[x]\n\t\t\t\t\t\t\t\t, parent\n\n\t\t\t\t\t\t\treference_to = reference_field.reference_to\n\n\t\t\t\t\t\t\tif _.isFunction(reference_to)\n\t\t\t\t\t\t\t\treference_to = reference_to()\n\n\t\t\t\t\t\t\tif _.isArray(reference_to)\n\t\t\t\t\t\t\t\tif _.isObject(reference_ids) && !_.isArray(reference_ids)\n\t\t\t\t\t\t\t\t\treference_to = reference_ids.o\n\t\t\t\t\t\t\t\t\treference_ids = reference_ids.ids || []\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\treturn []\n\n\t\t\t\t\t\t\tif _.isArray(reference_ids)\n\t\t\t\t\t\t\t\tquery._id = {$in: reference_ids}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tquery._id = reference_ids\n\n\t\t\t\t\t\t\treference_to_object = Creator.getObject(reference_to, spaceId)\n\n\t\t\t\t\t\t\tname_field_key = reference_to_object.NAME_FIELD_KEY\n\n\t\t\t\t\t\t\tchildren_fields = {_id: 1, space: 1}\n\n\t\t\t\t\t\t\tif name_field_key\n\t\t\t\t\t\t\t\tchildren_fields[name_field_key] = 1\n\n\t\t\t\t\t\t\treturn Creator.getCollection(reference_to, spaceId).find(query, {\n\t\t\t\t\t\t\t\tfields: children_fields\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tcatch e\n\t\t\t\t\t\t\tconsole.log(reference_to, parent, e)\n\t\t\t\t\t\t\treturn []\n\t\t\t\t}\n\n\t\treturn data\n\telse\n\t\treturn {\n\t\t\tfind: ()->\n\t\t\t\tself.unblock();\n\t\t\t\treturn object_colleciton.find({_id: {$in: ids}}, {fields: fields})\n\t\t};\n\n","Meteor.publishComposite(\"steedos_object_tabular\", function(tableName, ids, fields, spaceId) {\n var _fields, _keys, _object, _object_name, data, keys, object_colleciton, reference_fields, self;\n if (!this.userId) {\n return this.ready();\n }\n check(tableName, String);\n check(ids, Array);\n check(fields, Match.Optional(Object));\n _object_name = tableName.replace(\"creator_\", \"\");\n _object = Creator.getObject(_object_name, spaceId);\n if (spaceId) {\n _object_name = Creator.getObjectName(_object);\n }\n object_colleciton = Creator.getCollection(_object_name);\n _fields = _object != null ? _object.fields : void 0;\n if (!_fields || !object_colleciton) {\n return this.ready();\n }\n reference_fields = _.filter(_fields, function(f) {\n return _.isFunction(f.reference_to) || !_.isEmpty(f.reference_to);\n });\n self = this;\n self.unblock();\n if (reference_fields.length > 0) {\n data = {\n find: function() {\n var field_keys;\n self.unblock();\n field_keys = {};\n _.each(_.keys(fields), function(f) {\n if (!/\\w+(\\.\\$){1}\\w?/.test(f)) {\n return field_keys[f] = 1;\n }\n });\n return object_colleciton.find({\n _id: {\n $in: ids\n }\n }, {\n fields: field_keys\n });\n }\n };\n data.children = [];\n keys = _.keys(fields);\n if (keys.length < 1) {\n keys = _.keys(_fields);\n }\n _keys = [];\n keys.forEach(function(key) {\n if (_object.schema._objectKeys[key + '.']) {\n _keys = _keys.concat(_.map(_object.schema._objectKeys[key + '.'], function(k) {\n return key + '.' + k;\n }));\n }\n return _keys.push(key);\n });\n _keys.forEach(function(key) {\n var reference_field;\n reference_field = _fields[key];\n if (reference_field && (_.isFunction(reference_field.reference_to) || !_.isEmpty(reference_field.reference_to))) {\n return data.children.push({\n find: function(parent) {\n var children_fields, e, name_field_key, p_k, query, reference_ids, reference_to, reference_to_object, s_k;\n try {\n self.unblock();\n query = {};\n if (/\\w+(\\.\\$\\.){1}\\w+/.test(key)) {\n p_k = key.replace(/(\\w+)\\.\\$\\.\\w+/ig, \"$1\");\n s_k = key.replace(/\\w+\\.\\$\\.(\\w+)/ig, \"$1\");\n reference_ids = parent[p_k].getProperty(s_k);\n } else {\n reference_ids = key.split('.').reduce(function(o, x) {\n return o != null ? o[x] : void 0;\n }, parent);\n }\n reference_to = reference_field.reference_to;\n if (_.isFunction(reference_to)) {\n reference_to = reference_to();\n }\n if (_.isArray(reference_to)) {\n if (_.isObject(reference_ids) && !_.isArray(reference_ids)) {\n reference_to = reference_ids.o;\n reference_ids = reference_ids.ids || [];\n } else {\n return [];\n }\n }\n if (_.isArray(reference_ids)) {\n query._id = {\n $in: reference_ids\n };\n } else {\n query._id = reference_ids;\n }\n reference_to_object = Creator.getObject(reference_to, spaceId);\n name_field_key = reference_to_object.NAME_FIELD_KEY;\n children_fields = {\n _id: 1,\n space: 1\n };\n if (name_field_key) {\n children_fields[name_field_key] = 1;\n }\n return Creator.getCollection(reference_to, spaceId).find(query, {\n fields: children_fields\n });\n } catch (error) {\n e = error;\n console.log(reference_to, parent, e);\n return [];\n }\n }\n });\n }\n });\n return data;\n } else {\n return {\n find: function() {\n self.unblock();\n return object_colleciton.find({\n _id: {\n $in: ids\n }\n }, {\n fields: fields\n });\n }\n };\n }\n});\n","Meteor.publish \"object_listviews\", (object_name, spaceId)->\n userId = this.userId\n return Creator.getCollection(\"object_listviews\").find({object_name: object_name, space: spaceId ,\"$or\":[{owner: userId}, {shared: true}]})","Meteor.publish \"user_tabular_settings\", (object_name)->\n userId = this.userId\n return Creator.Collections.settings.find({object_name: {$in: object_name}, record_id: {$in: [\"object_listviews\", \"object_gridviews\"]}, owner: userId})\n","Meteor.publish \"related_objects_records\", (object_name, related_object_name, related_field_name, record_id, spaceId)->\n\tuserId = this.userId\n\tif related_object_name == \"cfs.files.filerecord\"\n\t\tselector = {\"metadata.space\": spaceId}\n\telse\n\t\tselector = {space: spaceId}\n\t\n\tif related_object_name == \"cms_files\"\n\t\t# 附件的关联搜索条件是定死的\n\t\tselector[\"parent.o\"] = object_name\n\t\tselector[\"parent.ids\"] = [record_id]\n\telse\n\t\tselector[related_field_name] = record_id\n\n\tpermissions = Creator.getPermissions(related_object_name, spaceId, userId)\n\tif !permissions.viewAllRecords and permissions.allowRead\n\t\tselector.owner = userId\n\t\n\treturn Creator.getCollection(related_object_name).find(selector)","Meteor.publish(\"related_objects_records\", function(object_name, related_object_name, related_field_name, record_id, spaceId) {\n var permissions, selector, userId;\n userId = this.userId;\n if (related_object_name === \"cfs.files.filerecord\") {\n selector = {\n \"metadata.space\": spaceId\n };\n } else {\n selector = {\n space: spaceId\n };\n }\n if (related_object_name === \"cms_files\") {\n selector[\"parent.o\"] = object_name;\n selector[\"parent.ids\"] = [record_id];\n } else {\n selector[related_field_name] = record_id;\n }\n permissions = Creator.getPermissions(related_object_name, spaceId, userId);\n if (!permissions.viewAllRecords && permissions.allowRead) {\n selector.owner = userId;\n }\n return Creator.getCollection(related_object_name).find(selector);\n});\n","Meteor.publish 'space_user_info', (spaceId, userId)->\n\treturn Creator.getCollection(\"space_users\").find({space: spaceId, user: userId})","\nif Meteor.isServer\n\n\tMeteor.publish 'contacts_view_limits', (spaceId)->\n\n\t\tunless this.userId\n\t\t\treturn this.ready()\n\n\t\tunless spaceId\n\t\t\treturn this.ready()\n\n\t\tselector =\n\t\t\tspace: spaceId\n\t\t\tkey: 'contacts_view_limits'\n\n\t\treturn db.space_settings.find(selector)","if (Meteor.isServer) {\n Meteor.publish('contacts_view_limits', function(spaceId) {\n var selector;\n if (!this.userId) {\n return this.ready();\n }\n if (!spaceId) {\n return this.ready();\n }\n selector = {\n space: spaceId,\n key: 'contacts_view_limits'\n };\n return db.space_settings.find(selector);\n });\n}\n","\nif Meteor.isServer\n\n\tMeteor.publish 'contacts_no_force_phone_users', (spaceId)->\n\n\t\tunless this.userId\n\t\t\treturn this.ready()\n\n\t\tunless spaceId\n\t\t\treturn this.ready()\n\n\t\tselector =\n\t\t\tspace: spaceId\n\t\t\tkey: 'contacts_no_force_phone_users'\n\n\t\treturn db.space_settings.find(selector)","if (Meteor.isServer) {\n Meteor.publish('contacts_no_force_phone_users', function(spaceId) {\n var selector;\n if (!this.userId) {\n return this.ready();\n }\n if (!spaceId) {\n return this.ready();\n }\n selector = {\n space: spaceId,\n key: 'contacts_no_force_phone_users'\n };\n return db.space_settings.find(selector);\n });\n}\n","if Meteor.isServer\n\tMeteor.publish 'space_need_to_confirm', ()->\n\t\tuserId = this.userId\n\t\treturn db.space_users.find({user: userId, invite_state: \"pending\"})","if (Meteor.isServer) {\n Meteor.publish('space_need_to_confirm', function() {\n var userId;\n userId = this.userId;\n return db.space_users.find({\n user: userId,\n invite_state: \"pending\"\n });\n });\n}\n","permissionManagerForInitApproval = {}\n\npermissionManagerForInitApproval.getFlowPermissions = (flow_id, user_id) ->\n\t# 根据:flow_id查到对应的flow\n\tflow = uuflowManagerForInitApproval.getFlow(flow_id)\n\tspace_id = flow.space\n\t# 根据space_id和:user_id到organizations表中查到用户所属所有的org_id(包括上级组ID)\n\torg_ids = new Array\n\torganizations = db.organizations.find({\n\t\tspace: space_id, users: user_id }, { fields: { parents: 1 } }).fetch()\n\t_.each(organizations, (org) ->\n\t\torg_ids.push(org._id)\n\t\tif org.parents\n\t\t\t_.each(org.parents, (parent_id) ->\n\t\t\t\torg_ids.push(parent_id)\n\t\t\t)\n\t)\n\torg_ids = _.uniq(org_ids)\n\tmy_permissions = new Array\n\tif flow.perms\n\t\t# 判断flow.perms.users_can_admin中是否包含当前用户,\n\t\t# 或者flow.perms.orgs_can_add是否包含4步得到的org_id数组中的任何一个,\n\t\t# 若是,则在返回的数组中加上add\n\t\tif flow.perms.users_can_add\n\t\t\tusers_can_add = flow.perms.users_can_add\n\t\t\tif users_can_add.includes(user_id)\n\t\t\t\tmy_permissions.push(\"add\")\n\n\t\tif flow.perms.orgs_can_add\n\t\t\torgs_can_add = flow.perms.orgs_can_add\n\t\t\t_.each(org_ids, (org_id) ->\n\t\t\t\tif orgs_can_add.includes(org_id)\n\t\t\t\t\tmy_permissions.push(\"add\")\n\t\t\t)\n\t\t# 判断flow.perms.users_can_monitor中是否包含当前用户,\n\t\t# 或者flow.perms.orgs_can_monitor是否包含4步得到的org_id数组中的任何一个,\n\t\t# 若是,则在返回的数组中加上monitor\n\t\tif flow.perms.users_can_monitor\n\t\t\tusers_can_monitor = flow.perms.users_can_monitor\n\t\t\tif users_can_monitor.includes(user_id)\n\t\t\t\tmy_permissions.push(\"monitor\")\n\n\t\tif flow.perms.orgs_can_monitor\n\t\t\torgs_can_monitor = flow.perms.orgs_can_monitor\n\t\t\t_.each(org_ids, (org_id) ->\n\t\t\t\tif orgs_can_monitor.includes(org_id)\n\t\t\t\t\tmy_permissions.push(\"monitor\")\n\t\t\t)\n\t\t# 判断flow.perms.users_can_admin中是否包含当前用户,\n\t\t# 或者flow.perms.orgs_can_admin是否包含4步得到的org_id数组中的任何一个,\n\t\t# 若是,则在返回的数组中加上admin\n\t\tif flow.perms.users_can_admin\n\t\t\tusers_can_admin = flow.perms.users_can_admin\n\t\t\tif users_can_admin.includes(user_id)\n\t\t\t\tmy_permissions.push(\"admin\")\n\n\t\tif flow.perms.orgs_can_admin\n\t\t\torgs_can_admin = flow.perms.orgs_can_admin\n\t\t\t_.each(org_ids, (org_id) ->\n\t\t\t\tif orgs_can_admin.includes(org_id)\n\t\t\t\t\tmy_permissions.push(\"admin\")\n\t\t\t)\n\n\tmy_permissions = _.uniq(my_permissions)\n\treturn my_permissions"," \n\npermissionManagerForInitApproval = {};\n\npermissionManagerForInitApproval.getFlowPermissions = function(flow_id, user_id) {\n var flow, my_permissions, org_ids, organizations, orgs_can_add, orgs_can_admin, orgs_can_monitor, space_id, users_can_add, users_can_admin, users_can_monitor;\n flow = uuflowManagerForInitApproval.getFlow(flow_id);\n space_id = flow.space;\n org_ids = new Array;\n organizations = db.organizations.find({\n space: space_id,\n users: user_id\n }, {\n fields: {\n parents: 1\n }\n }).fetch();\n _.each(organizations, function(org) {\n org_ids.push(org._id);\n if (org.parents) {\n return _.each(org.parents, function(parent_id) {\n return org_ids.push(parent_id);\n });\n }\n });\n org_ids = _.uniq(org_ids);\n my_permissions = new Array;\n if (flow.perms) {\n if (flow.perms.users_can_add) {\n users_can_add = flow.perms.users_can_add;\n if (users_can_add.includes(user_id)) {\n my_permissions.push(\"add\");\n }\n }\n if (flow.perms.orgs_can_add) {\n orgs_can_add = flow.perms.orgs_can_add;\n _.each(org_ids, function(org_id) {\n if (orgs_can_add.includes(org_id)) {\n return my_permissions.push(\"add\");\n }\n });\n }\n if (flow.perms.users_can_monitor) {\n users_can_monitor = flow.perms.users_can_monitor;\n if (users_can_monitor.includes(user_id)) {\n my_permissions.push(\"monitor\");\n }\n }\n if (flow.perms.orgs_can_monitor) {\n orgs_can_monitor = flow.perms.orgs_can_monitor;\n _.each(org_ids, function(org_id) {\n if (orgs_can_monitor.includes(org_id)) {\n return my_permissions.push(\"monitor\");\n }\n });\n }\n if (flow.perms.users_can_admin) {\n users_can_admin = flow.perms.users_can_admin;\n if (users_can_admin.includes(user_id)) {\n my_permissions.push(\"admin\");\n }\n }\n if (flow.perms.orgs_can_admin) {\n orgs_can_admin = flow.perms.orgs_can_admin;\n _.each(org_ids, function(org_id) {\n if (orgs_can_admin.includes(org_id)) {\n return my_permissions.push(\"admin\");\n }\n });\n }\n }\n my_permissions = _.uniq(my_permissions);\n return my_permissions;\n};\n","# 发起审批\n_eval = require('eval')\nobjectql = require('@steedos/objectql');\n\ngetObjectConfig = (objectApiName) ->\n\treturn objectql.getObject(objectApiName).toConfig()\n\ngetObjectNameFieldKey = (objectApiName) ->\n\treturn objectql.getObject(objectApiName).NAME_FIELD_KEY\n\ngetRelateds = (objectApiName) ->\n\treturn Meteor.wrapAsync((objectApiName, cb) ->\n\t\tobjectql.getObject(objectApiName).getRelateds().then (resolve, reject) ->\n\t\t\tcb(reject, resolve)\n\t\t)(objectApiName)\n\nobjectFindOne = (objectApiName, query) ->\n\treturn Meteor.wrapAsync((objectApiName, query, cb) ->\n\t\tquery.top = 1\n\t\tobjectql.getObject(objectApiName).find(query).then (resolve, reject) ->\n\t\t\tif (resolve && resolve.length > 0)\n\t\t\t\tcb(reject, resolve[0])\n\t\t\telse\n\t\t\t\tcb(reject, null)\n\t\t)(objectApiName, query)\n\nobjectFind = (objectApiName, query) ->\n\treturn Meteor.wrapAsync((objectApiName, query, cb) ->\n\t\tobjectql.getObject(objectApiName).find(query).then (resolve, reject) ->\n\t\t\tcb(reject, resolve)\n\t\t)(objectApiName, query)\n\nobjectUpdate = (objectApiName, id, data) ->\n\treturn Meteor.wrapAsync((objectApiName, id, data, cb) ->\n\t\tobjectql.getObject(objectApiName).update(id, data).then (resolve, reject) ->\n\t\t\tcb(reject, resolve)\n\t\t)(objectApiName, id, data)\n\ngetRelatedObjectFieldCode = (relatedObjectsKeys, key) ->\n\treturn _.find relatedObjectsKeys, (relatedObjectsKey) ->\n\t\treturn key.startsWith(relatedObjectsKey + '.')\n\ngetFormTableFieldCode = (formTableFieldsCode, key) ->\n\treturn _.find formTableFieldsCode, (formTableFieldCode) ->\n\t\treturn key.startsWith(formTableFieldCode + '.')\n\ngetFormTableField = (formTableFields, key) ->\n\treturn _.find formTableFields, (f) ->\n\t\treturn f.code == key\n\ngetFormField = (formFields, key) ->\n\tff = null\n\t_.forEach formFields, (f) ->\n\t\tif ff\n\t\t\treturn\n\t\tif f.type == 'section'\n\t\t\tff = _.find f.fields, (sf) ->\n\t\t\t\treturn sf.code == key\n\t\telse if f.code == key\n\t\t\tff = f\n\n\treturn ff\n\ngetFormTableSubField = (tableField, subFieldCode) ->\n\treturn _.find tableField.fields, (f) ->\n\t\treturn f.code == subFieldCode\n\ngetFieldOdataValue = (objName, id, referenceToFieldName) ->\n\t# obj = Creator.getCollection(objName)\n\tobj = objectql.getObject(objName)\n\tnameKey = getObjectNameFieldKey(objName)\n\tif !obj\n\t\treturn\n\tif _.isString id\n\t\t# _record = obj.findOne(id)\n\t\t_record = objectFindOne(objName, { filters: [[referenceToFieldName, '=', id]]})\n\t\tif _record\n\t\t\t_record['@label'] = _record[nameKey]\n\t\t\treturn _record\n\telse if _.isArray id\n\t\t_records = []\n\t\t# obj.find({ _id: { $in: id } })\n\t\tobjectFind(objName, { filters: [[referenceToFieldName, 'in', id]]}).forEach (_record) ->\n\t\t\t_record['@label'] = _record[nameKey]\n\t\t\t_records.push _record\n\t\tif !_.isEmpty _records\n\t\t\treturn _records\n\treturn\n\ngetSelectUserValue = (userId, spaceId) ->\n\tsu = Creator.getCollection('space_users').findOne({ space: spaceId, user: userId })\n\tsu.id = userId\n\treturn su\n\ngetSelectUserValues = (userIds, spaceId) ->\n\tsus = []\n\tif _.isArray userIds\n\t\t_.each userIds, (userId) ->\n\t\t\tsu = getSelectUserValue(userId, spaceId)\n\t\t\tif su\n\t\t\t\tsus.push(su)\n\treturn sus\n\ngetSelectOrgValue = (orgId, spaceId) ->\n\torg = Creator.getCollection('organizations').findOne(orgId, { fields: { _id: 1, name: 1, fullname: 1 } })\n\torg.id = orgId\n\treturn org\n\ngetSelectOrgValues = (orgIds, spaceId) ->\n\torgs = []\n\tif _.isArray orgIds\n\t\t_.each orgIds, (orgId) ->\n\t\t\torg = getSelectOrgValue(orgId, spaceId)\n\t\t\tif org\n\t\t\t\torgs.push(org)\n\treturn orgs\n\ngetFileFieldValue = (recordFieldId, fType)->\n\tif _.isEmpty(recordFieldId)\n\t\treturn \n\tif fType == 'image'\n\t\tcollection = 'images'\n\telse if fType == 'file'\n\t\tcollection = 'files'\n\tif _.isString(recordFieldId)\n\t\tquery = {_id: {$in: [recordFieldId]}}\n\telse\n\t\tquery = {_id: {$in: recordFieldId}}\n\tfiles = Creator.Collections[\"cfs.#{collection}.filerecord\"].find(query);\n\tvalue = []\n\tfiles.forEach (f) ->\n\t\tnewFile = new FS.File()\n\t\tnewFile.attachData f.createReadStream('files'), {\n\t\t\t\ttype: f.original.type\n\t\t}, (err) ->\n\t\t\tif (err)\n\t\t\t\tthrow new Meteor.Error(err.error, err.reason)\n\n\t\t\tnewFile.name(f.name())\n\t\t\tnewFile.size(f.size())\n\t\t\tmetadata = {\n\t\t\t\towner: f.metadata.owner\n\t\t\t}\n\t\t\tnewFile.metadata = metadata;\n\t\t\tnewFile._id = Creator.Collections.instances._makeNewID();\n\t\t\tcfs[collection].insert(newFile);\n\t\t\tvalue.push(newFile._id)\n\tif value.length > 0\n\t\tif _.isString(recordFieldId)\n\t\t\treturn value[0]\n\t\telse\n\t\t\treturn value;\n\ngetInstanceFieldValue = (objField, formField, record, object_field, spaceId) ->\n\trecordFieldValue = record[objField.name]\n\tvalue\n\t# lookup、master_detail字段同步到odata字段\n\tif formField && objField && formField.type == 'odata' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)\n\t\treferenceToFieldName = objField.reference_to_field || '_id'\n\t\treferenceToObjectName = objField.reference_to\n\t\todataFieldValue\n\t\tif objField.multiple && formField.is_multiselect\n\t\t\todataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName)\n\t\telse if !objField.multiple && !formField.is_multiselect\n\t\t\todataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName)\n\t\tvalue = odataFieldValue\n\telse if formField && objField && ['user', 'group'].includes(formField.type) && ['lookup', 'master_detail'].includes(objField.type) && (['users', 'organizations'].includes(objField.reference_to) || ('space_users' == objField.reference_to && 'user' == objField.reference_to_field) )\n\t\tif !_.isEmpty(recordFieldValue)\n\t\t\tselectFieldValue\n\t\t\tif formField.type == 'user'\n\t\t\t\tif objField.multiple && formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectUserValues(recordFieldValue, spaceId)\n\t\t\t\telse if !objField.multiple && !formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectUserValue(recordFieldValue, spaceId)\n\t\t\telse if formField.type == 'group'\n\t\t\t\tif objField.multiple && formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectOrgValues(recordFieldValue, spaceId)\n\t\t\t\telse if !objField.multiple && !formField.is_multiselect\n\t\t\t\t\tselectFieldValue = getSelectOrgValue(recordFieldValue, spaceId)\n\t\t\tif selectFieldValue\n\t\t\t\tvalue = selectFieldValue\n\telse if formField && objField && formField.type == 'date' && recordFieldValue\n\t\tvalue = uuflowManagerForInitApproval.formatDate(recordFieldValue) # Date转String\n\telse if formField && objField && recordFieldValue && (formField.type == 'image' || formField.type == 'file')\n\t\tvalue = getFileFieldValue(recordFieldValue, formField.type)\n\telse if formField && objField && recordFieldValue && formField.type == 'lookup' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)\n\t\tvalue = recordFieldValue\n\telse if formField && objField && recordFieldValue && (formField.type == 'multiSelect')\n\t\tvalue = recordFieldValue.join(',')\n\telse if record.hasOwnProperty(object_field)\n\t\tvalue = recordFieldValue\n\t\n\treturn value\n\n# requiredDetails结构[\"子表名.子表中master_detail字段名\", ...]\ncheckRequiredDetails = (requiredDetails, masterRecord) ->\n\tif !_.isEmpty requiredDetails\n\t\t# 检查子表必填,即子表必须有记录\n\t\trequiredDetails.forEach (rd) ->\n\t\t\tsubTableName = rd.split('.')[0]\n\t\t\tsubTableMasterField = rd.split('.')[1]\n\t\t\tsubObjConfig = getObjectConfig subTableName\n\t\t\tmasterField = subObjConfig.fields[subTableMasterField]\n\t\t\trefId = masterField.reference_to_field || '_id'\n\t\t\tmasterFieldValue = masterRecord[refId]\n\t\t\t# 查询子表记录\n\t\t\tsubTableRecord = objectFindOne(subTableName, { filters: [[subTableMasterField, '=', masterFieldValue]], fields: [subTableMasterField] })\n\t\t\tif !subTableRecord\n\t\t\t\tthrow new Error \"请先新增#{subObjConfig.label}\"\n\t\treturn\n\nuuflowManagerForInitApproval = {}\n\nuuflowManagerForInitApproval.check_authorization = (req) ->\n\tquery = req.query\n\tuserId = query[\"X-User-Id\"]\n\tauthToken = query[\"X-Auth-Token\"]\n\n\tif not userId or not authToken\n\t\tthrow new Meteor.Error 401, 'Unauthorized'\n\n\thashedToken = Accounts._hashLoginToken(authToken)\n\tuser = Meteor.users.findOne\n\t\t_id: userId,\n\t\t\"services.resume.loginTokens.hashedToken\": hashedToken\n\n\tif not user\n\t\tthrow new Meteor.Error 401, 'Unauthorized'\n\n\treturn user\n\nuuflowManagerForInitApproval.getSpace = (space_id) ->\n\tspace = Creator.Collections.spaces.findOne(space_id)\n\tif not space\n\t\tthrow new Meteor.Error('error!', \"space_id有误或此space已经被删除\")\n\treturn space\n\nuuflowManagerForInitApproval.getFlow = (flow_id) ->\n\tflow = Creator.Collections.flows.findOne(flow_id)\n\tif not flow\n\t\tthrow new Meteor.Error('error!', \"id有误或此流程已经被删除\")\n\treturn flow\n\nuuflowManagerForInitApproval.getSpaceUser = (space_id, user_id) ->\n\tspace_user = Creator.Collections.space_users.findOne({ space: space_id, user: user_id })\n\tif not space_user\n\t\tthrow new Meteor.Error('error!', \"user_id对应的用户不属于当前space\")\n\treturn space_user\n\nuuflowManagerForInitApproval.getSpaceUserOrgInfo = (space_user) ->\n\tinfo = new Object\n\tinfo.organization = space_user.organization\n\torg = Creator.Collections.organizations.findOne(space_user.organization, { fields: { name: 1 , fullname: 1 } })\n\tinfo.organization_name = org.name\n\tinfo.organization_fullname = org.fullname\n\treturn info\n\nuuflowManagerForInitApproval.isFlowEnabled = (flow) ->\n\tif flow.state isnt \"enabled\"\n\t\tthrow new Meteor.Error('error!', \"流程未启用,操作失败\")\n\nuuflowManagerForInitApproval.isFlowSpaceMatched = (flow, space_id) ->\n\tif flow.space isnt space_id\n\t\tthrow new Meteor.Error('error!', \"流程和工作区ID不匹配\")\n\nuuflowManagerForInitApproval.getForm = (form_id) ->\n\tform = Creator.Collections.forms.findOne(form_id)\n\tif not form\n\t\tthrow new Meteor.Error('error!', '表单ID有误或此表单已经被删除')\n\n\treturn form\n\nuuflowManagerForInitApproval.getCategory = (category_id) ->\n\treturn Creator.Collections.categories.findOne(category_id)\n\nuuflowManagerForInitApproval.checkSyncDirection = (object_name, flow_id) ->\n\tow = Creator.Collections.object_workflows.findOne({\n\t\tobject_name: object_name,\n\t\tflow_id: flow_id\n\t})\n\tif !ow\n\t\tthrow new Meteor.Error('error!', '未找到对象流程映射记录。')\n\tsyncDirection = ow.sync_direction || 'both'\n\tif !['both', 'obj_to_ins'].includes(syncDirection)\n\t\tthrow new Meteor.Error('error!', '不支持的同步方向。')\n\n\treturn \n\nuuflowManagerForInitApproval.create_instance = (instance_from_client, user_info) ->\n\tcheck instance_from_client[\"applicant\"], String\n\tcheck instance_from_client[\"space\"], String\n\tcheck instance_from_client[\"flow\"], String\n\tcheck instance_from_client[\"record_ids\"], [{o: String, ids: [String]}]\n\n\t# 校验同步方向\n\tuuflowManagerForInitApproval.checkSyncDirection(instance_from_client[\"record_ids\"][0].o, instance_from_client[\"flow\"])\n\n\t# 校验是否record已经发起的申请还在审批中\n\tuuflowManagerForInitApproval.checkIsInApproval(instance_from_client[\"record_ids\"][0], instance_from_client[\"space\"])\n\n\tspace_id = instance_from_client[\"space\"]\n\tflow_id = instance_from_client[\"flow\"]\n\tuser_id = user_info._id\n\t# 获取前台所传的trace\n\ttrace_from_client = null\n\t# 获取前台所传的approve\n\tapprove_from_client = null\n\tif instance_from_client[\"traces\"] and instance_from_client[\"traces\"][0]\n\t\ttrace_from_client = instance_from_client[\"traces\"][0]\n\t\tif trace_from_client[\"approves\"] and trace_from_client[\"approves\"][0]\n\t\t\tapprove_from_client = instance_from_client[\"traces\"][0][\"approves\"][0]\n\n\t# 获取一个space\n\tspace = uuflowManagerForInitApproval.getSpace(space_id)\n\t# 获取一个flow\n\tflow = uuflowManagerForInitApproval.getFlow(flow_id)\n\t# 获取一个space下的一个user\n\tspace_user = uuflowManagerForInitApproval.getSpaceUser(space_id, user_id)\n\t# 获取space_user所在的部门信息\n\tspace_user_org_info = uuflowManagerForInitApproval.getSpaceUserOrgInfo(space_user)\n\t# 判断一个flow是否为启用状态\n\tuuflowManagerForInitApproval.isFlowEnabled(flow)\n\t# 判断一个flow和space_id是否匹配\n\tuuflowManagerForInitApproval.isFlowSpaceMatched(flow, space_id)\n\n\tform = uuflowManagerForInitApproval.getForm(flow.form)\n\n\tpermissions = permissionManager.getFlowPermissions(flow_id, user_id)\n\n\tif not permissions.includes(\"add\")\n\t\tthrow new Meteor.Error('error!', \"当前用户没有此流程的新建权限\")\n\n\tnow = new Date\n\tins_obj = {}\n\tins_obj._id = Creator.Collections.instances._makeNewID()\n\tins_obj.space = space_id\n\tins_obj.flow = flow_id\n\tins_obj.flow_version = flow.current._id\n\tins_obj.form = flow.form\n\tins_obj.form_version = flow.current.form_version\n\tins_obj.name = flow.name\n\tins_obj.submitter = user_id\n\tins_obj.submitter_name = user_info.name\n\tins_obj.applicant = if instance_from_client[\"applicant\"] then instance_from_client[\"applicant\"] else user_id\n\tins_obj.applicant_name = if instance_from_client[\"applicant_name\"] then instance_from_client[\"applicant_name\"] else user_info.name\n\tins_obj.applicant_organization = if instance_from_client[\"applicant_organization\"] then instance_from_client[\"applicant_organization\"] else space_user.organization\n\tins_obj.applicant_organization_name = if instance_from_client[\"applicant_organization_name\"] then instance_from_client[\"applicant_organization_name\"] else space_user_org_info.organization_name\n\tins_obj.applicant_organization_fullname = if instance_from_client[\"applicant_organization_fullname\"] then instance_from_client[\"applicant_organization_fullname\"] else space_user_org_info.organization_fullname\n\tins_obj.applicant_company = if instance_from_client[\"applicant_company\"] then instance_from_client[\"applicant_company\"] else space_user.company_id\n\tins_obj.state = 'draft'\n\tins_obj.code = ''\n\tins_obj.is_archived = false\n\tins_obj.is_deleted = false\n\tins_obj.created = now\n\tins_obj.created_by = user_id\n\tins_obj.modified = now\n\tins_obj.modified_by = user_id\n\n\tins_obj.record_ids = instance_from_client[\"record_ids\"]\n\n\tif space_user.company_id\n\t\tins_obj.company_id = space_user.company_id\n\n\t# 新建Trace\n\ttrace_obj = {}\n\ttrace_obj._id = new Mongo.ObjectID()._str\n\ttrace_obj.instance = ins_obj._id\n\ttrace_obj.is_finished = false\n\t# 当前最新版flow中开始节点\n\tstart_step = _.find(flow.current.steps, (step) ->\n\t\treturn step.step_type is 'start'\n\t)\n\ttrace_obj.step = start_step._id\n\ttrace_obj.name = start_step.name\n\n\ttrace_obj.start_date = now\n\t# 新建Approve\n\tappr_obj = {}\n\tappr_obj._id = new Mongo.ObjectID()._str\n\tappr_obj.instance = ins_obj._id\n\tappr_obj.trace = trace_obj._id\n\tappr_obj.is_finished = false\n\tappr_obj.user = if instance_from_client[\"applicant\"] then instance_from_client[\"applicant\"] else user_id\n\tappr_obj.user_name = if instance_from_client[\"applicant_name\"] then instance_from_client[\"applicant_name\"] else user_info.name\n\tappr_obj.handler = user_id\n\tappr_obj.handler_name = user_info.name\n\tappr_obj.handler_organization = space_user.organization\n\tappr_obj.handler_organization_name = space_user_org_info.name\n\tappr_obj.handler_organization_fullname = space_user_org_info.fullname\n\tappr_obj.type = 'draft'\n\tappr_obj.start_date = now\n\tappr_obj.read_date = now\n\tappr_obj.is_read = true\n\tappr_obj.is_error = false\n\tappr_obj.description = ''\n\trelatedTablesInfo = {}\n\tappr_obj.values = uuflowManagerForInitApproval.initiateValues(ins_obj.record_ids[0], flow_id, space_id, form.current.fields, relatedTablesInfo)\n\n\ttrace_obj.approves = [appr_obj]\n\tins_obj.traces = [trace_obj]\n\n\tins_obj.values = appr_obj.values\n\n\tins_obj.inbox_users = instance_from_client.inbox_users || []\n\n\tins_obj.current_step_name = start_step.name\n\n\tif flow.auto_remind is true\n\t\tins_obj.auto_remind = true\n\n\t# 新建申请单时,instances记录流程名称、流程分类名称 #1313\n\tins_obj.flow_name = flow.name\n\tif form.category\n\t\tcategory = uuflowManagerForInitApproval.getCategory(form.category)\n\t\tif category\n\t\t\tins_obj.category_name = category.name\n\t\t\tins_obj.category = category._id\n\n\tnew_ins_id = Creator.Collections.instances.insert(ins_obj)\n\n\tuuflowManagerForInitApproval.initiateRecordInstanceInfo(ins_obj.record_ids[0], new_ins_id, space_id)\n\n\t# uuflowManagerForInitApproval.initiateRelatedRecordInstanceInfo(relatedTablesInfo, new_ins_id, space_id)\n\n\tuuflowManagerForInitApproval.initiateAttach(ins_obj.record_ids[0], space_id, ins_obj._id, appr_obj._id)\n\n\treturn new_ins_id\n\nuuflowManagerForInitApproval.initiateValues = (recordIds, flowId, spaceId, fields, relatedTablesInfo) ->\n\tfieldCodes = []\n\t_.each fields, (f) ->\n\t\tif f.type == 'section'\n\t\t\t_.each f.fields, (ff) ->\n\t\t\t\tfieldCodes.push ff.code\n\t\telse\n\t\t\tfieldCodes.push f.code\n\n\tvalues = {}\n\tobjectName = recordIds.o\n\tobject = getObjectConfig(objectName)\n\trecordId = recordIds.ids[0]\n\tow = Creator.Collections.object_workflows.findOne({\n\t\tobject_name: objectName,\n\t\tflow_id: flowId\n\t})\n\t# record = Creator.getCollection(objectName, spaceId).findOne(recordId)\n\trecord = objectFindOne(objectName, { filters: [['_id', '=', recordId]]})\n\tflow = Creator.getCollection('flows').findOne(flowId, { fields: { form: 1 } })\n\tif ow and record\n\t\trequiredDetails = ow.required_details || []\n\t\tcheckRequiredDetails(requiredDetails, record)\n\n\t\tform = Creator.getCollection(\"forms\").findOne(flow.form)\n\t\tformFields = form.current.fields || []\n\t\trelatedObjects = getRelateds(objectName)\n\t\trelatedObjectsKeys = _.pluck(relatedObjects, 'object_name')\n\t\tformTableFields = _.filter formFields, (formField) ->\n\t\t\treturn formField.type == 'table'\n\t\tformTableFieldsCode = _.pluck(formTableFields, 'code')\n\n\t\ttableFieldCodes = []\n\t\ttableFieldMap = []\n\t\ttableToRelatedMap = {}\n\n\t\tow.field_map?.forEach (fm) ->\n\t\t\tobject_field = fm.object_field\n\t\t\tworkflow_field = fm.workflow_field\n\t\t\tif !object_field || !workflow_field\n\t\t\t\tthrow new Meteor.Error(400, '未找到字段,请检查对象流程映射字段配置')\n\t\t\trelatedObjectFieldCode = getRelatedObjectFieldCode(relatedObjectsKeys, object_field)\n\t\t\tformTableFieldCode = getFormTableFieldCode(formTableFieldsCode, workflow_field)\n\t\t\tobjField = object.fields[object_field]\n\t\t\tformField = getFormField(formFields, workflow_field)\n\t\t\trecordFieldValue = record[object_field]\n\t\t\t# 处理子表字段\n\t\t\tif relatedObjectFieldCode\n\t\t\t\t\n\t\t\t\toTableCode = object_field.split('.')[0]\n\t\t\t\toTableFieldCode = object_field.split('.')[1]\n\t\t\t\ttableToRelatedMapKey = oTableCode\n\t\t\t\tif !tableToRelatedMap[tableToRelatedMapKey]\n\t\t\t\t\ttableToRelatedMap[tableToRelatedMapKey] = {}\n\n\t\t\t\tif formTableFieldCode\n\t\t\t\t\twTableCode = workflow_field.split('.')[0]\n\t\t\t\t\ttableToRelatedMap[tableToRelatedMapKey]['_FROM_TABLE_CODE'] = wTableCode\n\n\t\t\t\ttableToRelatedMap[tableToRelatedMapKey][oTableFieldCode] = workflow_field\n\t\t\t# 判断是否是表格字段\n\t\t\telse if workflow_field.indexOf('.') > 0 and object_field.indexOf('.$.') > 0\n\t\t\t\twTableCode = workflow_field.split('.')[0]\n\t\t\t\toTableCode = object_field.split('.$.')[0]\n\t\t\t\tif record.hasOwnProperty(oTableCode) and _.isArray(record[oTableCode])\n\t\t\t\t\ttableFieldCodes.push(JSON.stringify({\n\t\t\t\t\t\tworkflow_table_field_code: wTableCode,\n\t\t\t\t\t\tobject_table_field_code: oTableCode\n\t\t\t\t\t}))\n\t\t\t\t\ttableFieldMap.push(fm)\n\t\t\t\telse if oTableCode.indexOf('.') > 0 # 说明是关联表的grid字段\n\t\t\t\t\toTableCodeReferenceFieldCode = oTableCode.split('.')[0];\n\t\t\t\t\tgridCode = oTableCode.split('.')[1];\n\t\t\t\t\toTableCodeReferenceField = object.fields[oTableCodeReferenceFieldCode];\n\t\t\t\t\tif oTableCodeReferenceField && ['lookup', 'master_detail'].includes(oTableCodeReferenceField.type) && _.isString(oTableCodeReferenceField.reference_to)\n\t\t\t\t\t\tif record[oTableCode]\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\treferenceToFieldName = oTableCodeReferenceField.reference_to_field || '_id';\n\t\t\t\t\t\treferenceToObjectName = oTableCodeReferenceField.reference_to;\n\t\t\t\t\t\treferenceToFieldValue = record[oTableCodeReferenceField.name];\n\t\t\t\t\t\treferenceToDoc = getFieldOdataValue(referenceToObjectName, referenceToFieldValue, referenceToFieldName);\n\t\t\t\t\t\tif referenceToDoc[gridCode]\n\t\t\t\t\t\t\trecord[oTableCode] = referenceToDoc[gridCode];\n\t\t\t\t\t\t\ttableFieldCodes.push(JSON.stringify({\n\t\t\t\t\t\t\t\tworkflow_table_field_code: wTableCode,\n\t\t\t\t\t\t\t\tobject_table_field_code: oTableCode\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\treturn tableFieldMap.push(fm);\n\n\t\t\t# 处理lookup、master_detail类型字段\n\t\t\telse if object_field.indexOf('.') > 0 and object_field.indexOf('.$.') == -1\n\t\t\t\tobjectFieldName = object_field.split('.')[0]\n\t\t\t\tlookupFieldName = object_field.split('.')[1]\n\t\t\t\tif object\n\t\t\t\t\tobjectField = object.fields[objectFieldName]\n\t\t\t\t\tif objectField && formField && ['lookup', 'master_detail'].includes(objectField.type) && _.isString(objectField.reference_to)\n\t\t\t\t\t\tlookupObjectRecord = objectFindOne(objectField.reference_to, { filters: [['_id', '=', record[objectFieldName]]], fields: [lookupFieldName] })\n\t\t\t\t\t\tif !lookupObjectRecord\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\tobjectFieldObjectName = objectField.reference_to\n\t\t\t\t\t\tlookupFieldObj = getObjectConfig(objectFieldObjectName)\n\t\t\t\t\t\tobjectLookupField = lookupFieldObj.fields[lookupFieldName]\n\n\t\t\t\t\t\tvalues[workflow_field] = getInstanceFieldValue(objectLookupField, formField, lookupObjectRecord, lookupFieldName, spaceId)\n\t\t\telse\n\t\t\t\tvalues[workflow_field] = getInstanceFieldValue(objField, formField, record, object_field, spaceId)\n\n\t\t# 表格字段\n\t\t_.uniq(tableFieldCodes).forEach (tfc) ->\n\t\t\tc = JSON.parse(tfc)\n\t\t\tvalues[c.workflow_table_field_code] = []\n\t\t\trecord[c.object_table_field_code].forEach (tr) ->\n\t\t\t\tnewTr = {}\n\t\t\t\t_.each tr, (v, k) ->\n\t\t\t\t\ttableFieldMap.forEach (tfm) ->\n\t\t\t\t\t\tif tfm.object_field is (c.object_table_field_code + '.$.' + k)\n\t\t\t\t\t\t\twTdCode = tfm.workflow_field.split('.')[1]\n\t\t\t\t\t\t\tnewTr[wTdCode] = v\n\t\t\t\tif not _.isEmpty(newTr)\n\t\t\t\t\tvalues[c.workflow_table_field_code].push(newTr)\n\n\t\t# 同步子表数据至表单表格\n\t\t_.each tableToRelatedMap, (map, key) ->\n\t\t\ttableCode = map._FROM_TABLE_CODE\n\t\t\tformTableField = getFormTableField(formTableFields, tableCode)\n\t\t\tif !tableCode\n\t\t\t\tconsole.warn('tableToRelated: [' + key + '] missing corresponding table.')\n\t\t\telse\n\t\t\t\trelatedObjectName = key\n\t\t\t\ttableValues = []\n\t\t\t\trelatedTableItems = []\n\t\t\t\trelatedObject = getObjectConfig(relatedObjectName)\n\t\t\t\trelatedField = _.find relatedObject.fields, (f) ->\n\t\t\t\t\treturn ['lookup', 'master_detail'].includes(f.type) && f.reference_to == objectName\n\n\t\t\t\trelatedFieldName = relatedField.name\n\n\t\t\t\trelatedRecords = objectFind(relatedObjectName, {\n\t\t\t\t\tfilters: [\n\t\t\t\t\t\t[relatedFieldName, '=', recordId]\n\t\t\t\t\t]\n\t\t\t\t})\n\n\t\t\t\trelatedRecords.forEach (rr) ->\n\t\t\t\t\ttableValueItem = {}\n\t\t\t\t\t_.each map, (valueKey, fieldKey) ->\n\t\t\t\t\t\tif fieldKey != '_FROM_TABLE_CODE'\n\t\t\t\t\t\t\ttableFieldValue\n\t\t\t\t\t\t\tformFieldKey\n\t\t\t\t\t\t\tif valueKey.startsWith(tableCode + '.')\n\t\t\t\t\t\t\t\tformFieldKey = (valueKey.split(\".\")[1])\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tformFieldKey = valueKey\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tformField = getFormTableSubField(formTableField, formFieldKey)\n\t\t\t\t\t\t\trelatedObjectField = relatedObject.fields[fieldKey]\n\t\t\t\t\t\t\tif !formField || !relatedObjectField\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\ttableFieldValue = getInstanceFieldValue(relatedObjectField, formField, rr, fieldKey, spaceId)\n\t\t\t\t\t\t\ttableValueItem[formFieldKey] = tableFieldValue\n\t\t\t\t\tif !_.isEmpty(tableValueItem)\n\t\t\t\t\t\ttableValueItem._id = rr._id\n\t\t\t\t\t\ttableValues.push(tableValueItem)\n\t\t\t\t\t\trelatedTableItems.push({ _table: { _id: rr._id, _code: tableCode } } )\n\n\t\t\t\tvalues[tableCode] = tableValues\n\t\t\t\trelatedTablesInfo[relatedObjectName] = relatedTableItems\n\n\t\t# 如果配置了脚本则执行脚本\n\t\tif ow.field_map_script\n\t\t\t_.extend(values, uuflowManagerForInitApproval.evalFieldMapScript(ow.field_map_script, objectName, spaceId, recordId))\n\n\t# 过滤掉values中的非法key\n\tfilterValues = {}\n\t_.each _.keys(values), (k) ->\n\t\tif fieldCodes.includes(k)\n\t\t\tfilterValues[k] = values[k]\n\n\treturn filterValues\n\nuuflowManagerForInitApproval.evalFieldMapScript = (field_map_script, objectName, spaceId, objectId) ->\n\t# record = Creator.getCollection(objectName, spaceId).findOne(objectId)\n\trecord = objectFindOne(objectName, { filters: [['_id', '=', objectId]] })\n\tscript = \"module.exports = function (record) { \" + field_map_script + \" }\"\n\tfunc = _eval(script, \"field_map_script\")\n\tvalues = func(record)\n\tif _.isObject values\n\t\treturn values\n\telse\n\t\tconsole.error \"evalFieldMapScript: 脚本返回值类型不是对象\"\n\treturn {}\n\n\n\nuuflowManagerForInitApproval.initiateAttach = (recordIds, spaceId, insId, approveId) ->\n\n\tCreator.Collections['cms_files'].find({\n\t\tspace: spaceId,\n\t\tparent: recordIds\n\t}).forEach (cf) ->\n\t\t_.each cf.versions, (versionId, idx) ->\n\t\t\tf = Creator.Collections['cfs.files.filerecord'].findOne(versionId)\n\t\t\tnewFile = new FS.File()\n\n\t\t\tnewFile.attachData f.createReadStream('files'), {\n\t\t\t\t\ttype: f.original.type\n\t\t\t}, (err) ->\n\t\t\t\tif (err)\n\t\t\t\t\tthrow new Meteor.Error(err.error, err.reason)\n\n\t\t\t\tnewFile.name(f.name())\n\t\t\t\tnewFile.size(f.size())\n\t\t\t\tmetadata = {\n\t\t\t\t\towner: f.metadata.owner,\n\t\t\t\t\towner_name: f.metadata.owner_name,\n\t\t\t\t\tspace: spaceId,\n\t\t\t\t\tinstance: insId,\n\t\t\t\t\tapprove: approveId\n\t\t\t\t\tparent: cf._id\n\t\t\t\t}\n\n\t\t\t\tif idx is 0\n\t\t\t\t\tmetadata.current = true\n\n\t\t\t\tnewFile.metadata = metadata\n\t\t\t\tcfs.instances.insert(newFile)\n\n\treturn\n\nuuflowManagerForInitApproval.initiateRecordInstanceInfo = (recordIds, insId, spaceId) ->\n\t# Creator.getCollection(recordIds.o, spaceId).update(recordIds.ids[0], {\n\t# \t$push: {\n\t# \t\tinstances: {\n\t# \t\t\t$each: [{\n\t# \t\t\t\t_id: insId,\n\t# \t\t\t\tstate: 'draft'\n\t# \t\t\t}],\n\t# \t\t\t$position: 0\n\t# \t\t}\n\t# \t},\n\t# \t$set: {\n\t# \t\tlocked: true\n\t# \t\tinstance_state: 'draft'\n\t# \t}\n\t# })\n\tobjectUpdate(recordIds.o, recordIds.ids[0], {\n\t\tinstances: [{\n\t\t\t_id: insId,\n\t\t\tstate: 'draft'\n\t\t}],\n\t\tlocked: true,\n\t\tinstance_state: 'draft'\n\t})\n\n\treturn\n\n\nuuflowManagerForInitApproval.initiateRelatedRecordInstanceInfo = (relatedTablesInfo, insId, spaceId) ->\n\t_.each relatedTablesInfo, (tableItems, relatedObjectName) ->\n\t\trelatedCollection = Creator.getCollection(relatedObjectName, spaceId)\n\t\t_.each tableItems, (item) ->\n\t\t\trelatedCollection.direct.update(item._table._id, {\n\t\t\t\t$set: {\n\t\t\t\t\tinstances: [{\n\t\t\t\t\t\t_id: insId,\n\t\t\t\t\t\tstate: 'draft'\n\t\t\t\t\t}],\n\t\t\t\t\t_table: item._table\n\t\t\t\t}\n\t\t\t})\n\n\treturn\n\nuuflowManagerForInitApproval.checkIsInApproval = (recordIds, spaceId) ->\n\t# record = Creator.getCollection(recordIds.o, spaceId).findOne({\n\t# \t_id: recordIds.ids[0], instances: { $exists: true }\n\t# }, { fields: { instances: 1 } })\n\trecord = objectFindOne(recordIds.o, { filters: [['_id', '=', recordIds.ids[0]]], fields: ['instances'] })\n\n\tif record and record.instances and record.instances[0].state isnt 'completed' and Creator.Collections.instances.find(record.instances[0]._id).count() > 0\n\t\tthrow new Meteor.Error('error!', \"此记录已发起流程正在审批中,待审批结束方可发起下一次审批!\")\n\n\treturn\n\n\nuuflowManagerForInitApproval.formatDate = (date) ->\n\treturn moment(date).format(\"YYYY-MM-DD\")","var _eval, checkRequiredDetails, getFieldOdataValue, getFileFieldValue, getFormField, getFormTableField, getFormTableFieldCode, getFormTableSubField, getInstanceFieldValue, getObjectConfig, getObjectNameFieldKey, getRelatedObjectFieldCode, getRelateds, getSelectOrgValue, getSelectOrgValues, getSelectUserValue, getSelectUserValues, objectFind, objectFindOne, objectUpdate, objectql; \n\n_eval = require('eval');\n\nobjectql = require('@steedos/objectql');\n\ngetObjectConfig = function(objectApiName) {\n return objectql.getObject(objectApiName).toConfig();\n};\n\ngetObjectNameFieldKey = function(objectApiName) {\n return objectql.getObject(objectApiName).NAME_FIELD_KEY;\n};\n\ngetRelateds = function(objectApiName) {\n return Meteor.wrapAsync(function(objectApiName, cb) {\n return objectql.getObject(objectApiName).getRelateds().then(function(resolve, reject) {\n return cb(reject, resolve);\n });\n })(objectApiName);\n};\n\nobjectFindOne = function(objectApiName, query) {\n return Meteor.wrapAsync(function(objectApiName, query, cb) {\n query.top = 1;\n return objectql.getObject(objectApiName).find(query).then(function(resolve, reject) {\n if (resolve && resolve.length > 0) {\n return cb(reject, resolve[0]);\n } else {\n return cb(reject, null);\n }\n });\n })(objectApiName, query);\n};\n\nobjectFind = function(objectApiName, query) {\n return Meteor.wrapAsync(function(objectApiName, query, cb) {\n return objectql.getObject(objectApiName).find(query).then(function(resolve, reject) {\n return cb(reject, resolve);\n });\n })(objectApiName, query);\n};\n\nobjectUpdate = function(objectApiName, id, data) {\n return Meteor.wrapAsync(function(objectApiName, id, data, cb) {\n return objectql.getObject(objectApiName).update(id, data).then(function(resolve, reject) {\n return cb(reject, resolve);\n });\n })(objectApiName, id, data);\n};\n\ngetRelatedObjectFieldCode = function(relatedObjectsKeys, key) {\n return _.find(relatedObjectsKeys, function(relatedObjectsKey) {\n return key.startsWith(relatedObjectsKey + '.');\n });\n};\n\ngetFormTableFieldCode = function(formTableFieldsCode, key) {\n return _.find(formTableFieldsCode, function(formTableFieldCode) {\n return key.startsWith(formTableFieldCode + '.');\n });\n};\n\ngetFormTableField = function(formTableFields, key) {\n return _.find(formTableFields, function(f) {\n return f.code === key;\n });\n};\n\ngetFormField = function(formFields, key) {\n var ff;\n ff = null;\n _.forEach(formFields, function(f) {\n if (ff) {\n return;\n }\n if (f.type === 'section') {\n return ff = _.find(f.fields, function(sf) {\n return sf.code === key;\n });\n } else if (f.code === key) {\n return ff = f;\n }\n });\n return ff;\n};\n\ngetFormTableSubField = function(tableField, subFieldCode) {\n return _.find(tableField.fields, function(f) {\n return f.code === subFieldCode;\n });\n};\n\ngetFieldOdataValue = function(objName, id, referenceToFieldName) {\n var _record, _records, nameKey, obj;\n obj = objectql.getObject(objName);\n nameKey = getObjectNameFieldKey(objName);\n if (!obj) {\n return;\n }\n if (_.isString(id)) {\n _record = objectFindOne(objName, {\n filters: [[referenceToFieldName, '=', id]]\n });\n if (_record) {\n _record['@label'] = _record[nameKey];\n return _record;\n }\n } else if (_.isArray(id)) {\n _records = [];\n objectFind(objName, {\n filters: [[referenceToFieldName, 'in', id]]\n }).forEach(function(_record) {\n _record['@label'] = _record[nameKey];\n return _records.push(_record);\n });\n if (!_.isEmpty(_records)) {\n return _records;\n }\n }\n};\n\ngetSelectUserValue = function(userId, spaceId) {\n var su;\n su = Creator.getCollection('space_users').findOne({\n space: spaceId,\n user: userId\n });\n su.id = userId;\n return su;\n};\n\ngetSelectUserValues = function(userIds, spaceId) {\n var sus;\n sus = [];\n if (_.isArray(userIds)) {\n _.each(userIds, function(userId) {\n var su;\n su = getSelectUserValue(userId, spaceId);\n if (su) {\n return sus.push(su);\n }\n });\n }\n return sus;\n};\n\ngetSelectOrgValue = function(orgId, spaceId) {\n var org;\n org = Creator.getCollection('organizations').findOne(orgId, {\n fields: {\n _id: 1,\n name: 1,\n fullname: 1\n }\n });\n org.id = orgId;\n return org;\n};\n\ngetSelectOrgValues = function(orgIds, spaceId) {\n var orgs;\n orgs = [];\n if (_.isArray(orgIds)) {\n _.each(orgIds, function(orgId) {\n var org;\n org = getSelectOrgValue(orgId, spaceId);\n if (org) {\n return orgs.push(org);\n }\n });\n }\n return orgs;\n};\n\ngetFileFieldValue = function(recordFieldId, fType) {\n var collection, files, query, value;\n if (_.isEmpty(recordFieldId)) {\n return;\n }\n if (fType === 'image') {\n collection = 'images';\n } else if (fType === 'file') {\n collection = 'files';\n }\n if (_.isString(recordFieldId)) {\n query = {\n _id: {\n $in: [recordFieldId]\n }\n };\n } else {\n query = {\n _id: {\n $in: recordFieldId\n }\n };\n }\n files = Creator.Collections[\"cfs.\" + collection + \".filerecord\"].find(query);\n value = [];\n files.forEach(function(f) {\n var newFile;\n newFile = new FS.File();\n return newFile.attachData(f.createReadStream('files'), {\n type: f.original.type\n }, function(err) {\n var metadata;\n if (err) {\n throw new Meteor.Error(err.error, err.reason);\n }\n newFile.name(f.name());\n newFile.size(f.size());\n metadata = {\n owner: f.metadata.owner\n };\n newFile.metadata = metadata;\n newFile._id = Creator.Collections.instances._makeNewID();\n cfs[collection].insert(newFile);\n return value.push(newFile._id);\n });\n });\n if (value.length > 0) {\n if (_.isString(recordFieldId)) {\n return value[0];\n } else {\n return value;\n }\n }\n};\n\ngetInstanceFieldValue = function(objField, formField, record, object_field, spaceId) {\n var odataFieldValue, recordFieldValue, referenceToFieldName, referenceToObjectName, selectFieldValue, value;\n recordFieldValue = record[objField.name];\n value;\n if (formField && objField && formField.type === 'odata' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)) {\n referenceToFieldName = objField.reference_to_field || '_id';\n referenceToObjectName = objField.reference_to;\n odataFieldValue;\n if (objField.multiple && formField.is_multiselect) {\n odataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName);\n } else if (!objField.multiple && !formField.is_multiselect) {\n odataFieldValue = getFieldOdataValue(referenceToObjectName, recordFieldValue, referenceToFieldName);\n }\n value = odataFieldValue;\n } else if (formField && objField && ['user', 'group'].includes(formField.type) && ['lookup', 'master_detail'].includes(objField.type) && (['users', 'organizations'].includes(objField.reference_to) || ('space_users' === objField.reference_to && 'user' === objField.reference_to_field))) {\n if (!_.isEmpty(recordFieldValue)) {\n selectFieldValue;\n if (formField.type === 'user') {\n if (objField.multiple && formField.is_multiselect) {\n selectFieldValue = getSelectUserValues(recordFieldValue, spaceId);\n } else if (!objField.multiple && !formField.is_multiselect) {\n selectFieldValue = getSelectUserValue(recordFieldValue, spaceId);\n }\n } else if (formField.type === 'group') {\n if (objField.multiple && formField.is_multiselect) {\n selectFieldValue = getSelectOrgValues(recordFieldValue, spaceId);\n } else if (!objField.multiple && !formField.is_multiselect) {\n selectFieldValue = getSelectOrgValue(recordFieldValue, spaceId);\n }\n }\n if (selectFieldValue) {\n value = selectFieldValue;\n }\n }\n } else if (formField && objField && formField.type === 'date' && recordFieldValue) {\n value = uuflowManagerForInitApproval.formatDate(recordFieldValue);\n } else if (formField && objField && recordFieldValue && (formField.type === 'image' || formField.type === 'file')) {\n value = getFileFieldValue(recordFieldValue, formField.type);\n } else if (formField && objField && recordFieldValue && formField.type === 'lookup' && ['lookup', 'master_detail'].includes(objField.type) && _.isString(objField.reference_to)) {\n value = recordFieldValue;\n } else if (formField && objField && recordFieldValue && (formField.type === 'multiSelect')) {\n value = recordFieldValue.join(',');\n } else if (record.hasOwnProperty(object_field)) {\n value = recordFieldValue;\n }\n return value;\n};\n\ncheckRequiredDetails = function(requiredDetails, masterRecord) {\n if (!_.isEmpty(requiredDetails)) {\n requiredDetails.forEach(function(rd) {\n var masterField, masterFieldValue, refId, subObjConfig, subTableMasterField, subTableName, subTableRecord;\n subTableName = rd.split('.')[0];\n subTableMasterField = rd.split('.')[1];\n subObjConfig = getObjectConfig(subTableName);\n masterField = subObjConfig.fields[subTableMasterField];\n refId = masterField.reference_to_field || '_id';\n masterFieldValue = masterRecord[refId];\n subTableRecord = objectFindOne(subTableName, {\n filters: [[subTableMasterField, '=', masterFieldValue]],\n fields: [subTableMasterField]\n });\n if (!subTableRecord) {\n throw new Error(\"请先新增\" + subObjConfig.label);\n }\n });\n }\n};\n\nuuflowManagerForInitApproval = {};\n\nuuflowManagerForInitApproval.check_authorization = function(req) {\n var authToken, hashedToken, query, user, userId;\n query = req.query;\n userId = query[\"X-User-Id\"];\n authToken = query[\"X-Auth-Token\"];\n if (!userId || !authToken) {\n throw new Meteor.Error(401, 'Unauthorized');\n }\n hashedToken = Accounts._hashLoginToken(authToken);\n user = Meteor.users.findOne({\n _id: userId,\n \"services.resume.loginTokens.hashedToken\": hashedToken\n });\n if (!user) {\n throw new Meteor.Error(401, 'Unauthorized');\n }\n return user;\n};\n\nuuflowManagerForInitApproval.getSpace = function(space_id) {\n var space;\n space = Creator.Collections.spaces.findOne(space_id);\n if (!space) {\n throw new Meteor.Error('error!', \"space_id有误或此space已经被删除\");\n }\n return space;\n};\n\nuuflowManagerForInitApproval.getFlow = function(flow_id) {\n var flow;\n flow = Creator.Collections.flows.findOne(flow_id);\n if (!flow) {\n throw new Meteor.Error('error!', \"id有误或此流程已经被删除\");\n }\n return flow;\n};\n\nuuflowManagerForInitApproval.getSpaceUser = function(space_id, user_id) {\n var space_user;\n space_user = Creator.Collections.space_users.findOne({\n space: space_id,\n user: user_id\n });\n if (!space_user) {\n throw new Meteor.Error('error!', \"user_id对应的用户不属于当前space\");\n }\n return space_user;\n};\n\nuuflowManagerForInitApproval.getSpaceUserOrgInfo = function(space_user) {\n var info, org;\n info = new Object;\n info.organization = space_user.organization;\n org = Creator.Collections.organizations.findOne(space_user.organization, {\n fields: {\n name: 1,\n fullname: 1\n }\n });\n info.organization_name = org.name;\n info.organization_fullname = org.fullname;\n return info;\n};\n\nuuflowManagerForInitApproval.isFlowEnabled = function(flow) {\n if (flow.state !== \"enabled\") {\n throw new Meteor.Error('error!', \"流程未启用,操作失败\");\n }\n};\n\nuuflowManagerForInitApproval.isFlowSpaceMatched = function(flow, space_id) {\n if (flow.space !== space_id) {\n throw new Meteor.Error('error!', \"流程和工作区ID不匹配\");\n }\n};\n\nuuflowManagerForInitApproval.getForm = function(form_id) {\n var form;\n form = Creator.Collections.forms.findOne(form_id);\n if (!form) {\n throw new Meteor.Error('error!', '表单ID有误或此表单已经被删除');\n }\n return form;\n};\n\nuuflowManagerForInitApproval.getCategory = function(category_id) {\n return Creator.Collections.categories.findOne(category_id);\n};\n\nuuflowManagerForInitApproval.checkSyncDirection = function(object_name, flow_id) {\n var ow, syncDirection;\n ow = Creator.Collections.object_workflows.findOne({\n object_name: object_name,\n flow_id: flow_id\n });\n if (!ow) {\n throw new Meteor.Error('error!', '未找到对象流程映射记录。');\n }\n syncDirection = ow.sync_direction || 'both';\n if (!['both', 'obj_to_ins'].includes(syncDirection)) {\n throw new Meteor.Error('error!', '不支持的同步方向。');\n }\n};\n\nuuflowManagerForInitApproval.create_instance = function(instance_from_client, user_info) {\n var appr_obj, approve_from_client, category, flow, flow_id, form, ins_obj, new_ins_id, now, permissions, relatedTablesInfo, space, space_id, space_user, space_user_org_info, start_step, trace_from_client, trace_obj, user_id;\n check(instance_from_client[\"applicant\"], String);\n check(instance_from_client[\"space\"], String);\n check(instance_from_client[\"flow\"], String);\n check(instance_from_client[\"record_ids\"], [\n {\n o: String,\n ids: [String]\n }\n ]);\n uuflowManagerForInitApproval.checkSyncDirection(instance_from_client[\"record_ids\"][0].o, instance_from_client[\"flow\"]);\n uuflowManagerForInitApproval.checkIsInApproval(instance_from_client[\"record_ids\"][0], instance_from_client[\"space\"]);\n space_id = instance_from_client[\"space\"];\n flow_id = instance_from_client[\"flow\"];\n user_id = user_info._id;\n trace_from_client = null;\n approve_from_client = null;\n if (instance_from_client[\"traces\"] && instance_from_client[\"traces\"][0]) {\n trace_from_client = instance_from_client[\"traces\"][0];\n if (trace_from_client[\"approves\"] && trace_from_client[\"approves\"][0]) {\n approve_from_client = instance_from_client[\"traces\"][0][\"approves\"][0];\n }\n }\n space = uuflowManagerForInitApproval.getSpace(space_id);\n flow = uuflowManagerForInitApproval.getFlow(flow_id);\n space_user = uuflowManagerForInitApproval.getSpaceUser(space_id, user_id);\n space_user_org_info = uuflowManagerForInitApproval.getSpaceUserOrgInfo(space_user);\n uuflowManagerForInitApproval.isFlowEnabled(flow);\n uuflowManagerForInitApproval.isFlowSpaceMatched(flow, space_id);\n form = uuflowManagerForInitApproval.getForm(flow.form);\n permissions = permissionManager.getFlowPermissions(flow_id, user_id);\n if (!permissions.includes(\"add\")) {\n throw new Meteor.Error('error!', \"当前用户没有此流程的新建权限\");\n }\n now = new Date;\n ins_obj = {};\n ins_obj._id = Creator.Collections.instances._makeNewID();\n ins_obj.space = space_id;\n ins_obj.flow = flow_id;\n ins_obj.flow_version = flow.current._id;\n ins_obj.form = flow.form;\n ins_obj.form_version = flow.current.form_version;\n ins_obj.name = flow.name;\n ins_obj.submitter = user_id;\n ins_obj.submitter_name = user_info.name;\n ins_obj.applicant = instance_from_client[\"applicant\"] ? instance_from_client[\"applicant\"] : user_id;\n ins_obj.applicant_name = instance_from_client[\"applicant_name\"] ? instance_from_client[\"applicant_name\"] : user_info.name;\n ins_obj.applicant_organization = instance_from_client[\"applicant_organization\"] ? instance_from_client[\"applicant_organization\"] : space_user.organization;\n ins_obj.applicant_organization_name = instance_from_client[\"applicant_organization_name\"] ? instance_from_client[\"applicant_organization_name\"] : space_user_org_info.organization_name;\n ins_obj.applicant_organization_fullname = instance_from_client[\"applicant_organization_fullname\"] ? instance_from_client[\"applicant_organization_fullname\"] : space_user_org_info.organization_fullname;\n ins_obj.applicant_company = instance_from_client[\"applicant_company\"] ? instance_from_client[\"applicant_company\"] : space_user.company_id;\n ins_obj.state = 'draft';\n ins_obj.code = '';\n ins_obj.is_archived = false;\n ins_obj.is_deleted = false;\n ins_obj.created = now;\n ins_obj.created_by = user_id;\n ins_obj.modified = now;\n ins_obj.modified_by = user_id;\n ins_obj.record_ids = instance_from_client[\"record_ids\"];\n if (space_user.company_id) {\n ins_obj.company_id = space_user.company_id;\n }\n trace_obj = {};\n trace_obj._id = new Mongo.ObjectID()._str;\n trace_obj.instance = ins_obj._id;\n trace_obj.is_finished = false;\n start_step = _.find(flow.current.steps, function(step) {\n return step.step_type === 'start';\n });\n trace_obj.step = start_step._id;\n trace_obj.name = start_step.name;\n trace_obj.start_date = now;\n appr_obj = {};\n appr_obj._id = new Mongo.ObjectID()._str;\n appr_obj.instance = ins_obj._id;\n appr_obj.trace = trace_obj._id;\n appr_obj.is_finished = false;\n appr_obj.user = instance_from_client[\"applicant\"] ? instance_from_client[\"applicant\"] : user_id;\n appr_obj.user_name = instance_from_client[\"applicant_name\"] ? instance_from_client[\"applicant_name\"] : user_info.name;\n appr_obj.handler = user_id;\n appr_obj.handler_name = user_info.name;\n appr_obj.handler_organization = space_user.organization;\n appr_obj.handler_organization_name = space_user_org_info.name;\n appr_obj.handler_organization_fullname = space_user_org_info.fullname;\n appr_obj.type = 'draft';\n appr_obj.start_date = now;\n appr_obj.read_date = now;\n appr_obj.is_read = true;\n appr_obj.is_error = false;\n appr_obj.description = '';\n relatedTablesInfo = {};\n appr_obj.values = uuflowManagerForInitApproval.initiateValues(ins_obj.record_ids[0], flow_id, space_id, form.current.fields, relatedTablesInfo);\n trace_obj.approves = [appr_obj];\n ins_obj.traces = [trace_obj];\n ins_obj.values = appr_obj.values;\n ins_obj.inbox_users = instance_from_client.inbox_users || [];\n ins_obj.current_step_name = start_step.name;\n if (flow.auto_remind === true) {\n ins_obj.auto_remind = true;\n }\n ins_obj.flow_name = flow.name;\n if (form.category) {\n category = uuflowManagerForInitApproval.getCategory(form.category);\n if (category) {\n ins_obj.category_name = category.name;\n ins_obj.category = category._id;\n }\n }\n new_ins_id = Creator.Collections.instances.insert(ins_obj);\n uuflowManagerForInitApproval.initiateRecordInstanceInfo(ins_obj.record_ids[0], new_ins_id, space_id);\n uuflowManagerForInitApproval.initiateAttach(ins_obj.record_ids[0], space_id, ins_obj._id, appr_obj._id);\n return new_ins_id;\n};\n\nuuflowManagerForInitApproval.initiateValues = function(recordIds, flowId, spaceId, fields, relatedTablesInfo) {\n var fieldCodes, filterValues, flow, form, formFields, formTableFields, formTableFieldsCode, object, objectName, ow, record, recordId, ref, relatedObjects, relatedObjectsKeys, requiredDetails, tableFieldCodes, tableFieldMap, tableToRelatedMap, values;\n fieldCodes = [];\n _.each(fields, function(f) {\n if (f.type === 'section') {\n return _.each(f.fields, function(ff) {\n return fieldCodes.push(ff.code);\n });\n } else {\n return fieldCodes.push(f.code);\n }\n });\n values = {};\n objectName = recordIds.o;\n object = getObjectConfig(objectName);\n recordId = recordIds.ids[0];\n ow = Creator.Collections.object_workflows.findOne({\n object_name: objectName,\n flow_id: flowId\n });\n record = objectFindOne(objectName, {\n filters: [['_id', '=', recordId]]\n });\n flow = Creator.getCollection('flows').findOne(flowId, {\n fields: {\n form: 1\n }\n });\n if (ow && record) {\n requiredDetails = ow.required_details || [];\n checkRequiredDetails(requiredDetails, record);\n form = Creator.getCollection(\"forms\").findOne(flow.form);\n formFields = form.current.fields || [];\n relatedObjects = getRelateds(objectName);\n relatedObjectsKeys = _.pluck(relatedObjects, 'object_name');\n formTableFields = _.filter(formFields, function(formField) {\n return formField.type === 'table';\n });\n formTableFieldsCode = _.pluck(formTableFields, 'code');\n tableFieldCodes = [];\n tableFieldMap = [];\n tableToRelatedMap = {};\n if ((ref = ow.field_map) != null) {\n ref.forEach(function(fm) {\n var formField, formTableFieldCode, gridCode, lookupFieldName, lookupFieldObj, lookupObjectRecord, oTableCode, oTableCodeReferenceField, oTableCodeReferenceFieldCode, oTableFieldCode, objField, objectField, objectFieldName, objectFieldObjectName, objectLookupField, object_field, recordFieldValue, referenceToDoc, referenceToFieldName, referenceToFieldValue, referenceToObjectName, relatedObjectFieldCode, tableToRelatedMapKey, wTableCode, workflow_field;\n object_field = fm.object_field;\n workflow_field = fm.workflow_field;\n if (!object_field || !workflow_field) {\n throw new Meteor.Error(400, '未找到字段,请检查对象流程映射字段配置');\n }\n relatedObjectFieldCode = getRelatedObjectFieldCode(relatedObjectsKeys, object_field);\n formTableFieldCode = getFormTableFieldCode(formTableFieldsCode, workflow_field);\n objField = object.fields[object_field];\n formField = getFormField(formFields, workflow_field);\n recordFieldValue = record[object_field];\n if (relatedObjectFieldCode) {\n oTableCode = object_field.split('.')[0];\n oTableFieldCode = object_field.split('.')[1];\n tableToRelatedMapKey = oTableCode;\n if (!tableToRelatedMap[tableToRelatedMapKey]) {\n tableToRelatedMap[tableToRelatedMapKey] = {};\n }\n if (formTableFieldCode) {\n wTableCode = workflow_field.split('.')[0];\n tableToRelatedMap[tableToRelatedMapKey]['_FROM_TABLE_CODE'] = wTableCode;\n }\n return tableToRelatedMap[tableToRelatedMapKey][oTableFieldCode] = workflow_field;\n } else if (workflow_field.indexOf('.') > 0 && object_field.indexOf('.$.') > 0) {\n wTableCode = workflow_field.split('.')[0];\n oTableCode = object_field.split('.$.')[0];\n if (record.hasOwnProperty(oTableCode) && _.isArray(record[oTableCode])) {\n tableFieldCodes.push(JSON.stringify({\n workflow_table_field_code: wTableCode,\n object_table_field_code: oTableCode\n }));\n return tableFieldMap.push(fm);\n } else if (oTableCode.indexOf('.') > 0) {\n oTableCodeReferenceFieldCode = oTableCode.split('.')[0];\n gridCode = oTableCode.split('.')[1];\n oTableCodeReferenceField = object.fields[oTableCodeReferenceFieldCode];\n if (oTableCodeReferenceField && ['lookup', 'master_detail'].includes(oTableCodeReferenceField.type) && _.isString(oTableCodeReferenceField.reference_to)) {\n if (record[oTableCode]) {\n return;\n }\n referenceToFieldName = oTableCodeReferenceField.reference_to_field || '_id';\n referenceToObjectName = oTableCodeReferenceField.reference_to;\n referenceToFieldValue = record[oTableCodeReferenceField.name];\n referenceToDoc = getFieldOdataValue(referenceToObjectName, referenceToFieldValue, referenceToFieldName);\n if (referenceToDoc[gridCode]) {\n record[oTableCode] = referenceToDoc[gridCode];\n tableFieldCodes.push(JSON.stringify({\n workflow_table_field_code: wTableCode,\n object_table_field_code: oTableCode\n }));\n return tableFieldMap.push(fm);\n }\n }\n }\n } else if (object_field.indexOf('.') > 0 && object_field.indexOf('.$.') === -1) {\n objectFieldName = object_field.split('.')[0];\n lookupFieldName = object_field.split('.')[1];\n if (object) {\n objectField = object.fields[objectFieldName];\n if (objectField && formField && ['lookup', 'master_detail'].includes(objectField.type) && _.isString(objectField.reference_to)) {\n lookupObjectRecord = objectFindOne(objectField.reference_to, {\n filters: [['_id', '=', record[objectFieldName]]],\n fields: [lookupFieldName]\n });\n if (!lookupObjectRecord) {\n return;\n }\n objectFieldObjectName = objectField.reference_to;\n lookupFieldObj = getObjectConfig(objectFieldObjectName);\n objectLookupField = lookupFieldObj.fields[lookupFieldName];\n return values[workflow_field] = getInstanceFieldValue(objectLookupField, formField, lookupObjectRecord, lookupFieldName, spaceId);\n }\n }\n } else {\n return values[workflow_field] = getInstanceFieldValue(objField, formField, record, object_field, spaceId);\n }\n });\n }\n _.uniq(tableFieldCodes).forEach(function(tfc) {\n var c;\n c = JSON.parse(tfc);\n values[c.workflow_table_field_code] = [];\n return record[c.object_table_field_code].forEach(function(tr) {\n var newTr;\n newTr = {};\n _.each(tr, function(v, k) {\n return tableFieldMap.forEach(function(tfm) {\n var wTdCode;\n if (tfm.object_field === (c.object_table_field_code + '.$.' + k)) {\n wTdCode = tfm.workflow_field.split('.')[1];\n return newTr[wTdCode] = v;\n }\n });\n });\n if (!_.isEmpty(newTr)) {\n return values[c.workflow_table_field_code].push(newTr);\n }\n });\n });\n _.each(tableToRelatedMap, function(map, key) {\n var formTableField, relatedField, relatedFieldName, relatedObject, relatedObjectName, relatedRecords, relatedTableItems, tableCode, tableValues;\n tableCode = map._FROM_TABLE_CODE;\n formTableField = getFormTableField(formTableFields, tableCode);\n if (!tableCode) {\n return console.warn('tableToRelated: [' + key + '] missing corresponding table.');\n } else {\n relatedObjectName = key;\n tableValues = [];\n relatedTableItems = [];\n relatedObject = getObjectConfig(relatedObjectName);\n relatedField = _.find(relatedObject.fields, function(f) {\n return ['lookup', 'master_detail'].includes(f.type) && f.reference_to === objectName;\n });\n relatedFieldName = relatedField.name;\n relatedRecords = objectFind(relatedObjectName, {\n filters: [[relatedFieldName, '=', recordId]]\n });\n relatedRecords.forEach(function(rr) {\n var tableValueItem;\n tableValueItem = {};\n _.each(map, function(valueKey, fieldKey) {\n var formField, formFieldKey, relatedObjectField, tableFieldValue;\n if (fieldKey !== '_FROM_TABLE_CODE') {\n tableFieldValue;\n formFieldKey;\n if (valueKey.startsWith(tableCode + '.')) {\n formFieldKey = (valueKey.split(\".\")[1]);\n } else {\n formFieldKey = valueKey;\n }\n formField = getFormTableSubField(formTableField, formFieldKey);\n relatedObjectField = relatedObject.fields[fieldKey];\n if (!formField || !relatedObjectField) {\n return;\n }\n tableFieldValue = getInstanceFieldValue(relatedObjectField, formField, rr, fieldKey, spaceId);\n return tableValueItem[formFieldKey] = tableFieldValue;\n }\n });\n if (!_.isEmpty(tableValueItem)) {\n tableValueItem._id = rr._id;\n tableValues.push(tableValueItem);\n return relatedTableItems.push({\n _table: {\n _id: rr._id,\n _code: tableCode\n }\n });\n }\n });\n values[tableCode] = tableValues;\n return relatedTablesInfo[relatedObjectName] = relatedTableItems;\n }\n });\n if (ow.field_map_script) {\n _.extend(values, uuflowManagerForInitApproval.evalFieldMapScript(ow.field_map_script, objectName, spaceId, recordId));\n }\n }\n filterValues = {};\n _.each(_.keys(values), function(k) {\n if (fieldCodes.includes(k)) {\n return filterValues[k] = values[k];\n }\n });\n return filterValues;\n};\n\nuuflowManagerForInitApproval.evalFieldMapScript = function(field_map_script, objectName, spaceId, objectId) {\n var func, record, script, values;\n record = objectFindOne(objectName, {\n filters: [['_id', '=', objectId]]\n });\n script = \"module.exports = function (record) { \" + field_map_script + \" }\";\n func = _eval(script, \"field_map_script\");\n values = func(record);\n if (_.isObject(values)) {\n return values;\n } else {\n console.error(\"evalFieldMapScript: 脚本返回值类型不是对象\");\n }\n return {};\n};\n\nuuflowManagerForInitApproval.initiateAttach = function(recordIds, spaceId, insId, approveId) {\n Creator.Collections['cms_files'].find({\n space: spaceId,\n parent: recordIds\n }).forEach(function(cf) {\n return _.each(cf.versions, function(versionId, idx) {\n var f, newFile;\n f = Creator.Collections['cfs.files.filerecord'].findOne(versionId);\n newFile = new FS.File();\n return newFile.attachData(f.createReadStream('files'), {\n type: f.original.type\n }, function(err) {\n var metadata;\n if (err) {\n throw new Meteor.Error(err.error, err.reason);\n }\n newFile.name(f.name());\n newFile.size(f.size());\n metadata = {\n owner: f.metadata.owner,\n owner_name: f.metadata.owner_name,\n space: spaceId,\n instance: insId,\n approve: approveId,\n parent: cf._id\n };\n if (idx === 0) {\n metadata.current = true;\n }\n newFile.metadata = metadata;\n return cfs.instances.insert(newFile);\n });\n });\n });\n};\n\nuuflowManagerForInitApproval.initiateRecordInstanceInfo = function(recordIds, insId, spaceId) {\n objectUpdate(recordIds.o, recordIds.ids[0], {\n instances: [\n {\n _id: insId,\n state: 'draft'\n }\n ],\n locked: true,\n instance_state: 'draft'\n });\n};\n\nuuflowManagerForInitApproval.initiateRelatedRecordInstanceInfo = function(relatedTablesInfo, insId, spaceId) {\n _.each(relatedTablesInfo, function(tableItems, relatedObjectName) {\n var relatedCollection;\n relatedCollection = Creator.getCollection(relatedObjectName, spaceId);\n return _.each(tableItems, function(item) {\n return relatedCollection.direct.update(item._table._id, {\n $set: {\n instances: [\n {\n _id: insId,\n state: 'draft'\n }\n ],\n _table: item._table\n }\n });\n });\n });\n};\n\nuuflowManagerForInitApproval.checkIsInApproval = function(recordIds, spaceId) {\n var record;\n record = objectFindOne(recordIds.o, {\n filters: [['_id', '=', recordIds.ids[0]]],\n fields: ['instances']\n });\n if (record && record.instances && record.instances[0].state !== 'completed' && Creator.Collections.instances.find(record.instances[0]._id).count() > 0) {\n throw new Meteor.Error('error!', \"此记录已发起流程正在审批中,待审批结束方可发起下一次审批!\");\n }\n};\n\nuuflowManagerForInitApproval.formatDate = function(date) {\n return moment(date).format(\"YYYY-MM-DD\");\n};\n"]} \ No newline at end of file diff --git a/server/bundle/programs/web.browser.legacy/18b1573e16dfb893209907100a4090bccecb75e9.js b/server/bundle/programs/web.browser.legacy/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js similarity index 99% rename from server/bundle/programs/web.browser.legacy/18b1573e16dfb893209907100a4090bccecb75e9.js rename to server/bundle/programs/web.browser.legacy/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js index 22c20b4d5c..40f2726338 100644 --- a/server/bundle/programs/web.browser.legacy/18b1573e16dfb893209907100a4090bccecb75e9.js +++ b/server/bundle/programs/web.browser.legacy/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js @@ -68,7 +68,7 @@ object-assign * Copyright 2011-2019 Twitter, Inc. * Licensed under the MIT license */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1||t[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,r=this,i;return e(this).one("bsTransitionEnd",(function(){n=!0})),setTimeout((function(){n||e(r).trigger(e.support.transition.end)}),t),this},e((function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})}))}(jQuery),function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};function r(t){return this.each((function(){var r=e(this),i=r.data("bs.alert");i||r.data("bs.alert",i=new n(this)),"string"==typeof t&&i[t].call(r)}))}n.VERSION="3.4.1",n.TRANSITION_DURATION=150,n.prototype.close=function(t){var r=e(this),i=r.attr("data-target");i||(i=(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=e(document).find(i);function s(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=r.closest(".alert")),o.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",s).emulateTransitionEnd(n.TRANSITION_DURATION):s())};var i=e.fn.alert;e.fn.alert=r,e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=i,this},e(document).on("click.bs.alert.data-api",t,n.prototype.close)}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.isLoading=!1};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.button"),o="object"==typeof n&&n;i||r.data("bs.button",i=new t(this,o)),"toggle"==n?i.toggle():n&&i.setState(n)}))}t.VERSION="3.4.1",t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(t){var n="disabled",r=this.$element,i=r.is("input")?"val":"html",o=r.data();t+="Text",null==o.resetText&&r.data("resetText",r[i]()),setTimeout(e.proxy((function(){r[i](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,r.addClass(n).attr(n,n).prop(n,!0)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n).prop(n,!1))}),this),0)},t.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var r=e.fn.button;e.fn.button=n,e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=r,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var r=e(t.target).closest(".btn");n.call(r,"toggle"),e(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),r.is("input,button")?r.trigger("focus"):r.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))}))}(jQuery),function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.carousel"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n),s="string"==typeof n?n:o.slide;i||r.data("bs.carousel",i=new t(this,o)),"number"==typeof n?i.to(n):s?i[s]():o.interval&&i.pause().cycle()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=600,t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},t.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},t.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t),r;if(("prev"==e&&0===n||"next"==e&&n==this.$items.length-1)&&!this.options.wrap)return t;var i,o=(n+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(o)},t.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){t.to(e)})):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(!this.sliding)return this.slide("next")},t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},t.prototype.slide=function(n,r){var i=this.$element.find(".item.active"),o=r||this.getItemForDirection(n,i),s=this.interval,a="next"==n?"left":"right",u=this;if(o.hasClass("active"))return this.sliding=!1;var f=o[0],c=e.Event("slide.bs.carousel",{relatedTarget:f,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=e(this.$indicators.children()[this.getItemIndex(o)]);l&&l.addClass("active")}var h=e.Event("slid.bs.carousel",{relatedTarget:f,direction:a});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(n),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(a),o.addClass(a),i.one("bsTransitionEnd",(function(){o.removeClass([n,a].join(" ")).addClass("active"),i.removeClass(["active",a].join(" ")),u.sliding=!1,setTimeout((function(){u.$element.trigger(h)}),0)})).emulateTransitionEnd(t.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(h)),s&&this.cycle(),this}};var r=e.fn.carousel;e.fn.carousel=n,e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=r,this};var i=function(t){var r=e(this),i=r.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=r.attr("data-target")||i,s=e(document).find(o);if(s.hasClass("carousel")){var a=e.extend({},s.data(),r.data()),u=r.attr("data-slide-to");u&&(a.interval=!1),n.call(s,a),u&&s.data("bs.carousel").to(u),t.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",i).on("click.bs.carousel.data-api","[data-slide-to]",i),e(window).on("load",(function(){e('[data-ride="carousel"]').each((function(){var t=e(this);n.call(t,t.data())}))}))}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.$trigger=e('[data-toggle="collapse"][href="#'+n.id+'"],[data-toggle="collapse"][data-target="#'+n.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var n,r=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(document).find(r)}function r(n){return this.each((function(){var r=e(this),i=r.data("bs.collapse"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n);!i&&o.toggle&&/show|hide/.test(n)&&(o.toggle=!1),i||r.data("bs.collapse",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=350,t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e;return this.$element.hasClass("width")?"width":"height"},t.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(n=i.data("bs.collapse"))&&n.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){i&&i.length&&(r.call(i,"hide"),n||i.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return a.call(this);var u=e.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",e.proxy(a,this)).emulateTransitionEnd(t.TRANSITION_DURATION)[s](this.$element[0][u])}}}},t.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var n=e.Event("hide.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.dimension();this.$element[r](this.$element[r]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return i.call(this);this.$element[r](0).one("bsTransitionEnd",e.proxy(i,this)).emulateTransitionEnd(t.TRANSITION_DURATION)}}},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},t.prototype.getParent=function(){return e(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy((function(t,r){var i=e(r);this.addAriaAndCollapsedClass(n(i),i)}),this)).end()},t.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var i=e.fn.collapse;e.fn.collapse=r,e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=i,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){var i=e(this);i.attr("data-target")||t.preventDefault();var o=n(i),s,a=o.data("bs.collapse")?"toggle":i.data();r.call(o,a)}))}(jQuery),function(e){"use strict";var t=".dropdown-backdrop",n='[data-toggle="dropdown"]',r=function(t){e(t).on("click.bs.dropdown",this.toggle)};function i(t){var n=t.attr("data-target");n||(n=(n=t.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r="#"!==n?e(document).find(n):null;return r&&r.length?r:t.parent()}function o(r){r&&3===r.which||(e(t).remove(),e(n).each((function(){var t=e(this),n=i(t),o={relatedTarget:this};n.hasClass("open")&&(r&&"click"==r.type&&/input|textarea/i.test(r.target.tagName)&&e.contains(n[0],r.target)||(n.trigger(r=e.Event("hide.bs.dropdown",o)),r.isDefaultPrevented()||(t.attr("aria-expanded","false"),n.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))})))}function s(t){return this.each((function(){var n=e(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new r(this)),"string"==typeof t&&i[t].call(n)}))}r.VERSION="3.4.1",r.prototype.toggle=function(t){var n=e(this);if(!n.is(".disabled, :disabled")){var r=i(n),s=r.hasClass("open");if(o(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",o);var a={relatedTarget:this};if(r.trigger(t=e.Event("show.bs.dropdown",a)),t.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger(e.Event("shown.bs.dropdown",a))}return!1}},r.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var r=e(this);if(t.preventDefault(),t.stopPropagation(),!r.is(".disabled, :disabled")){var o=i(r),s=o.hasClass("open");if(!s&&27!=t.which||s&&27==t.which)return 27==t.which&&o.find(n).trigger("focus"),r.trigger("click");var a=" li:not(.disabled):visible a",u=o.find(".dropdown-menu"+a);if(u.length){var f=u.index(t.target);38==t.which&&f>0&&f--,40==t.which&&fdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},t.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},t.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:i},f.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var s=i[o];if("click"==s)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",u="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},f.prototype.getDefaults=function(){return f.DEFAULTS},f.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete r[i];return(n=e.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=u(n.template,n.whiteList,n.sanitizeFn)),n},f.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,(function(e,r){n[e]!=r&&(t[e]=r)})),t},f.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},f.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},f.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},f.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var n=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,u=a.test(s);u&&(s=s.replace(a,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),l=i[0].offsetWidth,h=i[0].offsetHeight;if(u){var d=s,p=this.getPosition(this.$viewport);s="bottom"==s&&c.bottom+h>p.bottom?"top":"top"==s&&c.top-hp.width?"left":"left"==s&&c.left-ls.top+s.height&&(i.top=s.top+s.height-u)}else{var f=t.left-o,c=t.left+o+n;fs.right&&(i.left=s.left+s.width-c)}return i},f.prototype.getTitle=function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)},f.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},f.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},f.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},f.prototype.enable=function(){this.enabled=!0},f.prototype.disable=function(){this.enabled=!1},f.prototype.toggleEnabled=function(){this.enabled=!this.enabled},f.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},f.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},f.prototype.sanitizeHtml=function(e){return u(e,this.options.whiteList,this.options.sanitizeFn)};var l=e.fn.tooltip;e.fn.tooltip=c,e.fn.tooltip.Constructor=f,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=l,this}}(jQuery),function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");function n(n){return this.each((function(){var r=e(this),i=r.data("bs.popover"),o="object"==typeof n&&n;!i&&/destroy|hide/.test(n)||(i||r.data("bs.popover",i=new t(this,o)),"string"==typeof n&&i[n]())}))}t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),t.prototype.constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();if(this.options.html){var r=typeof n;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===r&&(n=this.sanitizeHtml(n))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===r?"html":"append"](n)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(n);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var r=e.fn.popover;e.fn.popover=n,e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=r,this}}(jQuery),function(e){"use strict";function t(n,r){this.$body=e(document.body),this.$scrollElement=e(n).is(document.body)?e(window):e(n),this.options=e.extend({},t.DEFAULTS,r),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each((function(){var r=e(this),i=r.data("bs.scrollspy"),o="object"==typeof n&&n;i||r.data("bs.scrollspy",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,n="offset",r=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",r=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var t=e(this),i=t.data("target")||t.attr("href"),o=/^#./.test(i)&&e(i);return o&&o.length&&o.is(":visible")&&[[o[n]().top+r,i]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},t.prototype.process=function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.getScrollHeight(),n=this.options.offset+t-this.$scrollElement.height(),r=this.offsets,i=this.targets,o=this.activeTarget,s;if(this.scrollHeight!=t&&this.refresh(),e>=n)return o!=(s=i[i.length-1])&&this.activate(s);if(o&&e=r[s]&&(void 0===r[s+1]||e .active"),s=i&&e.support.transition&&(o.length&&o.hasClass("fade")||!!r.find("> .fade").length);function a(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(n[0].offsetWidth,n.addClass("in")):n.removeClass("fade"),n.parent(".dropdown-menu").length&&n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&s?o.one("bsTransitionEnd",a).emulateTransitionEnd(t.TRANSITION_DURATION):a(),o.removeClass("in")};var r=e.fn.tab;e.fn.tab=n,e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=r,this};var i=function(t){t.preventDefault(),n.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(e){"use strict";var t=function(n,r){this.options=e.extend({},t.DEFAULTS,r);var i=this.options.target===t.DEFAULTS.target?e(this.options.target):e(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(n),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.affix"),o="object"==typeof n&&n;i||r.data("bs.affix",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.RESET="affix affix-top affix-bottom",t.DEFAULTS={offset:0,target:window},t.prototype.getState=function(e,t,n,r){var i=this.$target.scrollTop(),o=this.$element.offset(),s=this.$target.height();if(null!=n&&"top"==this.affixed)return i=e-r&&"bottom"},t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var e=this.$target.scrollTop(),n=this.$element.offset();return this.pinnedOffset=n.top-e},t.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var n=this.$element.height(),r=this.options.offset,i=r.top,o=r.bottom,s=Math.max(e(document).height(),e(document.body).height());"object"!=typeof r&&(o=i=r),"function"==typeof i&&(i=r.top(this.$element)),"function"==typeof o&&(o=r.bottom(this.$element));var a=this.getState(s,n,i,o);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var u="affix"+(a?"-"+a:""),f=e.Event(u+".bs.affix");if(this.$element.trigger(f),f.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-n-o})}};var r=e.fn.affix;e.fn.affix=n,e.fn.affix.Constructor=t,e.fn.affix.noConflict=function(){return e.fn.affix=r,this},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),r=t.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),n.call(t,r)}))}))}(jQuery)}}}},fibers:{"package.json":function e(t,n,e){e.exports={name:"fibers",version:"5.0.3",main:"fibers"}},"fibers.js":function e(t,n,e,r,i){if(process.fiberLib)e.exports=process.fiberLib;else{var o=t("fs"),s=t("path"),a=t("detect-libc");Math.random();var u=s.join(i,"bin",process.platform+"-"+process.arch+"-"+process.versions.modules+("linux"===process.platform?"-"+a.family:""),"fibers");try{process.fiberLib=e.exports=t(u).Fiber}catch(c){throw console.error("## There is an issue with `node-fibers` ##\n`"+u+".node` is missing.\n\nTry running this to fix the issue: "+process.execPath+" "+i.replace(" ","\\ ")+"/build"),console.error(c.stack||c.message||c),new Error("Missing binary. See message above.")}f(e.exports)}function f(e){try{var t=process.binding("async_wrap"),n;if(t.asyncIdStackSize instanceof Function)n=t.asyncIdStackSize;else{if(void 0===t.constants.kStackLength)throw new Error("Couldn't figure out how to get async stack size");l=t.constants.kStackLength,n=function(){return t.async_hook_fields[l]}}var r=t.popAsyncContext||t.popAsyncIds,i=t.pushAsyncContext||t.pushAsyncIds,o,s;if(!r||!i)throw new Error("Push/pop do not exist");o=void 0===t.constants.kExecutionAsyncId?t.constants.kCurrentAsyncId:t.constants.kExecutionAsyncId,s=void 0===t.constants.kTriggerAsyncId?t.constants.kCurrentTriggerId:t.constants.kTriggerAsyncId;var a=t.async_id_fields||t.async_uid_fields;function u(){for(var e=n(),t=new Array(e);e>0;--e){var i=a[o];t[e-1]={asyncId:i,triggerId:a[s]},r(i)}return t}function f(e){for(var t=0;t0)i.changeLanguage(e,r);else if(0!=a[u]){a[u]=0;var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",u,!1),f.send(null),200===f.status?a[u]=1:a[u]=-1,n.addResourceBundle(e,s,JSON.parse(f.response)||{}),i.changeLanguage(e,r)}};n.changeLanguage=p;var g=function(e,t,n){return i.format(e,t,n)};n.format=g;var b=function(){return i.languages};n.getLanguages=b;var m=function(e,t){return i.loadLanguages(e,t)};n.loadLanguages=m;var v=function(e,t){return i.loadNamespaces(e,t)};n.loadNamespaces=v;var y=function(e,t){return i.on(e,t)};n.on=y;var _=function(e,t){return i.off(e,t)};n.off=_,r.__exportStar(t("./i18n/i18n"),n),r.__exportStar(t("./i18n/i18n.app"),n),r.__exportStar(t("./translations"),n)},i18n:{"i18n.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.fallbackKeys=n.getObjectI18nTemplate=n.translationI18nObjects=n.addObjectsI18n=n.translationI18nObject=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="_",a="base",u="core",f="translation",c=function(e,t){var n={lng:t,ns:f};if((0,r.exists)(e,n))return(0,r._t)(e,n)},l=function(e){return"".concat(e,"__object")},h=function(e,t){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t)},d=function(e,t){var n=h(e,t);return"".concat(n).concat("_","inlineHelpText")},p=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","group").concat("_").concat(n)},g=function(e,t,n){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t).concat("_","options").concat("_").concat(n)},b=function(e,t){return"".concat(e).concat("_","action").concat("_").concat(t)},m=function(e,t){return"".concat(e).concat("_","listview").concat("_").concat(t)},v=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},y=function(e,t,n){var r=l(t);return c(r,e)||n||""},_=function(e,t,n,r,i){var o=h(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=_(e,a,n,r,i))}return s||r||""},w=function(e,t,n,r,i){var o=d(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=w(e,a,n,r,i))}return s||r||""},k=function(e,t,n,r){var i=p(t,n);return c(i,e)||r||""},j=function(e,t,n,r,i,o){var s=g(t,n,r),a=c(s,e);if(!a){var u=v(o);u&&"base"!=t&&"core"!=t&&(a=j(e,u,n,r,i,o))}return a||i||""},x=function(e,t,n,r,i){var o=b(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=x(e,a,n,r,i))}return s||r||""},S=function(e,t,n,r,i){var o=m(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=S(e,a,n,r,i))}return s||r||""},D=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},E=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;return e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(D(e))}))):n.push(D(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},A=function(e,t,n){n.label=y(e,t,n.label),i.each(n.fields,(function(r,o){if(r.label=_(e,t,o,r.label,n.datasource),r.inlineHelpText&&(r.inlineHelpText=w(e,t,o,r.inlineHelpText,n.datasource)),r.group&&(r.group=k(e,t,r.group,r.group)),r.options){var s=[];i.each(r.options,(function(r){if(i.has(r,"value")){var a=j(e,t,o,r.value,r.label,n.datasource);s.push(i.extend({},r,{label:a}))}else s.push(r)})),r.options=s}})),i.each(n.actions,(function(r,i){r.label=x(e,t,i,r.label,n.datasource)})),i.each(n.list_views,(function(r,i){r.label=S(e,t,i,r.label,n.datasource)}))};n.translationI18nObject=A;var C=function(e){i.each(e,(function(e){(0,r.addResourceBundle)(e.lng,f,e.data,!0,!0)}))};n.addObjectsI18n=C;var M=function(e,t){i.each(t,(function(t,r){(0,n.translationI18nObject)(e,r,t)}))};n.translationI18nObjects=M;var O=function(e,t,n){var r=o(n);E(r);var s={};return s[l(t)]=y(e,t,r.label),i.each(r.fields,(function(n,o){s[h(t,o)]=_(e,t,o,n.label),n.inlineHelpText&&(s[d(t,o)]=w(e,t,o,n.inlineHelpText,r.datasource)),n.group&&(s[p(t,n.group)]=k(e,t,n.group,n.group)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[g(t,o,n.value)]=j(e,t,o,n.value,n.label))}))})),i.each(r.actions,(function(n,r){s[b(t,r)]=x(e,t,r,n.label)})),i.each(r.list_views,(function(n,r){s[m(t,r)]=S(e,t,r,n.label)})),s};n.getObjectI18nTemplate=O,n.fallbackKeys={getObjectLabelKey:l,getObjectFieldLabelKey:h,getObjectFieldInlineHelpTextLabelKey:d,getObjectFieldGroupKey:p,getObjectFieldOptionsLabelKey:g,getObjectActionLabelKey:b,getObjectListviewLabelKey:m}},"i18n.app.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.appFallbackKeys=n.getAppI18nTemplate=n.translationI18nApps=n.translationI18nMenus=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="translation",a="_",u=function(e,t){var n={lng:t,ns:s};if((0,r.exists)(e,n))return(0,r._t)(e,n)},f=function(e){return"app".concat("_").concat(e).concat("_","name")},c=function(e){return"app".concat("_").concat(e).concat("_","description")},l=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","tab_group").concat("_").concat(n)},h=function(e){return"menu".concat("_").concat(e)},d=function(e){return"tab".concat("_").concat(e)},p=function(e,t,n){var r=f(t);return u(r,e)||n||""},g=function(e,t,n){var r=c(t);return u(r,e)||n||""},b=function(e,t,n){var r=h(t);return u(r,e)||n||""},m=function(e,t,r){r.label=p(e,t,r.label||r.name),r.description=g(e,t,r.description),(0,n.translationI18nMenus)(e,r.admin_menus)},v=function(e,t){i.each(t,(function(t){var n=b(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationI18nMenus=v;var y=function(e,t){i.each(t,(function(t,n){m(e,n,t)}))};n.translationI18nApps=y;var _=function(e,t,n){var r=o(n),s={};return s[f(t)]=p(e,t,r.label||r.name),s[c(t)]=g(e,t,r.description),i.each(r.admin_menus,(function(t){s[h(t._id)]=b(e,t._id,t.label||t.name)})),s};n.getAppI18nTemplate=_,n.appFallbackKeys={getAppLabelKey:f,getAppDescriptionKey:c,getAppGroupKey:l,getMenuLabelKey:h,getTabKey:d}}},translations:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SteedosTranslationPrefixKeys=n.convertObject=void 0;var r=t("tslib"),i=t("underscore");r.__exportStar(t("./objectTranslation"),n),r.__exportStar(t("./translation"),n),r.__exportStar(t("./templates/objectTranslation"),n),r.__exportStar(t("./templates/translation"),n);var o=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},s=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(o(e))}))):n.push(o(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else if(e.options&&i.isArray(e.options))try{i.forEach(e.options,(function(e){i.isString(e)?n.push(o(e)):n.push(e)})),e.options=n}catch(r){console.error("Creator.convertFieldsOptions",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},a;n.convertObject=s,function(e){e.Object="CustomObject",e.Field="CustomField",e.Action="CustomAction",e.Listview="CustomListview",e.Permission="CustomPermission",e.ValidationRule="CustomValidationRule",e.Application="CustomApplication",e.Tab="CustomTabs",e.Permissionset="CustomPermissionset",e.Profile="CustomProfile",e.Report="CustomReport",e.Workflow="Workflow",e.Layout="Layout",e.Client="Client",e.Server="Server",e.Function="Function",e.Router="Router",e.Trigger="Trigger"}(a=n.SteedosTranslationPrefixKeys||(n.SteedosTranslationPrefixKeys={}))},"objectTranslation.js":function e(t,n,e,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addObjectsTranslation=n.getObjectTranslationTemplate=n.translationObjects=n.translationObject=n.translationObjectLabel=void 0;var i=t("underscore"),o=t("./"),s=t("../index"),a=t("./index"),u=t("../i18n/i18n"),f=t("lodash"),c=t("crypto"),l,h=(0,t("@steedos/cachers").getCacher)("lru.translations.objects");function d(e){var t;return c.createHash("md5").update(e).digest("hex")}var p=function(e,t){return"".concat(e,"_").concat(t.name,"_").concat(d(JSON.stringify(t)))},g=t("clone"),b=".",m="base",v="core",y="translation",_="object",w="field",k="listview",j="action",x=function(e,t){var n={lng:t,ns:y,keySeparator:!1};if((0,s.exists)(e,n))return(0,s._t)(e,n)},S=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},D=function(e){switch(e){case"object":return o.SteedosTranslationPrefixKeys.Object;case"field":return o.SteedosTranslationPrefixKeys.Field;case"listview":return o.SteedosTranslationPrefixKeys.Listview;case"action":return o.SteedosTranslationPrefixKeys.Action;default:return"CustomLabels"}},E=function(e){var t;return[D(),e].join(".")},A=function(e){var t;return[D("object"),e,"label"].join(".")},C=function(e){var t;return[D("object"),e,"description"].join(".")},M=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"label"].join(".")},O=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"help"].join(".")},T=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"description"].join(".")},B=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_"),r;return[D("field"),e,"group",n].join(".")},I=function(e,t,n){var r;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"options",n].join(".")},R=function(e,t){var n;return[D("action"),e,t].join(".")},F=function(e,t){var n;return[D("listview"),e,t].join(".")},P=function(e,t,n){var r,i=[A(t)],o=u.fallbackKeys.getObjectLabelKey(t);return o&&i.push(o),x(i,e)||n||""};n.translationObjectLabel=P;var N=function(e,t,n){var r=C(t);return x(r,e)||n||""},L=function(e,t,n,r,i,o){var s,a=[M(t,n)],f=u.fallbackKeys.getObjectFieldLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=L(e,l,n,r,i))}return c||r||""},z=function(e,t,n,r,i,o){var s,a=[O(t,n)],f=u.fallbackKeys.getObjectFieldInlineHelpTextLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=z(e,l,n,r,i))}return c||r||""},U=function(e,t,n,r,i,o){var s=T(t,n),a,u=x([s],e);if(1!=o&&!u){var f=S(i);f&&"base"!=t&&"core"!=t&&(u=U(e,f,n,r,i))}return u||r||""},q=function(e,t,n,r,i,o){var s,a=[B(t,n)],f=u.fallbackKeys.getObjectFieldGroupKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=q(e,l,n,r,i))}return c||r||""},$=function(e,t,n,r,i,o,s){var a,f=[I(t,n,r)],c=u.fallbackKeys.getObjectFieldOptionsLabelKey(t,n,r);c&&f.push(c);var l=x(f,e);if(1!=s&&!l){var h=S(o);h&&"base"!=t&&"core"!=t&&(l=$(e,h,n,r,i,o))}return l||i||""},H=function(e,t,n,r,i,o){var s,a=[R(t,n)],f=u.fallbackKeys.getObjectActionLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=H(e,l,n,r,i))}return c||r||""},W=function(e,t,n,r,i,o){var s,a=[F(t,n)],f=u.fallbackKeys.getObjectListviewLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=W(e,l,n,r,i))}return c||r||""},Y=function(e,t,r,o,s){void 0===s&&(s=!1);var u=p(e,r);"test_obj_layout1"===t&&console.log("translationObject",t,u);var c=h.get(u);if(c)return Object.assign(r,(0,f.cloneDeep)(c));o&&(0,a.convertObject)(r),r.label=(0,n.translationObjectLabel)(e,t,r.label),r.description=N(e,t,r.description),i.each(r.fields,(function(n,o){if(n.label=L(e,t,o,n.label,r.datasource,s),n.inlineHelpText&&(n.inlineHelpText=z(e,t,o,n.inlineHelpText,r.datasource,s)),n.group&&(n.group=q(e,t,n.group,n.group,r.datasource,s)),n.options){var a=[];i.each(n.options,(function(n){if(i.has(n,"value")){var u=$(e,t,o,n.value,n.label,r.datasource,s);a.push(i.extend({},n,{label:u}))}else a.push(n)})),n.options=a}})),i.each(r.actions,(function(n,i){n.label=H(e,t,i,n.label,r.datasource,s)})),i.each(r.list_views,(function(n,i){n.label=W(e,t,i,n.label,r.datasource,s)})),h.set(u,(0,f.cloneDeep)(r))};n.translationObject=Y;var V=function(e,t){i.each(t,(function(t,r){(0,n.translationObject)(e,r,t)}))};n.translationObjects=V;var K=function(e,t,r){var o=g(r);(0,a.convertObject)(o);var s={};return s[A(t)]=(0,n.translationObjectLabel)(e,t,o.label),s[C(t)]=N(e,t,o.description),i.each(o.fields,(function(n,r){s[M(t,r)]=L(e,t,r,n.label),n.inlineHelpText&&(s[O(t,r)]=z(e,t,r,n.inlineHelpText,o.datasource)),n.description&&(s[T(t,r)]=U(e,t,r,n.description,o.datasource)),n.group&&(s[B(t,n.group)]=q(e,t,n.group,n.group,o.datasource)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[I(t,r,n.value)]=$(e,t,r,n.value,n.label))}))})),i.each(o.actions,(function(n,r){s[R(t,r)]=H(e,t,r,n.label)})),i.each(o.list_views,(function(n,r){s[F(t,r)]=W(e,t,r,n.label)})),s};function G(e,t){var n=g(e);(0,a.convertObject)(n);var r={},o=n.name;return o||console.error("Error: Invalid objectTranslation:"+t),r[A(o)]=n.label,r[C(o)]=n.description,i.each(n.fields,(function(e,t){r[M(o,t)]=e.label,e.help&&(r[O(o,t)]=e.help),e.description&&(r[T(o,t)]=e.description),e.options&&i.each(e.options,(function(e){i.has(e,"value")&&(r[I(o,t,e.value)]=e.label)}))})),i.each(n.groups,(function(e,t){r[B(o,t)]=e})),i.each(n.actions,(function(e,t){r[R(o,t)]=e.label})),i.each(n.listviews,(function(e,t){r[F(o,t)]=e.label})),i.each(n.CustomLabels,(function(e,t){r[E(t)]=e})),r}n.getObjectTranslationTemplate=K;var X=function(e){i.each(e,(function(e){var t=G(e.data,e.__filename);(0,s.addResourceBundle)(e.lng,y,t,!0,!0)}))};n.addObjectsTranslation=X},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addTranslations=n.convertTranslation=n.convertTranslationData=n.getAppTranslationTemplate=n.translationApps=n.translationMenus=n.translationApp=n.translationTabLabel=n.translationTabGroup=void 0;var r=t("../index"),i=t("underscore"),o=t("./"),s=t("../i18n/i18n.app"),a=t("clone"),u="translation",f=".",c="app",l="menu",h="tab",d=function(e){switch(e){case"app":return o.SteedosTranslationPrefixKeys.Application;case"tab":return o.SteedosTranslationPrefixKeys.Tab;default:return"CustomLabels"}},p=function(e){var t;return[d(),e].join(".")},g=function(e,t){var n={lng:t,ns:u,keySeparator:!1};if((0,r.exists)(e,n))return(0,r._t)(e,n)},b=function(e){var t;return[d("app"),e,"name"].join(".")},m=function(e){var t;return[d("app"),e,"description"].join(".")},v=function(e,t){var n,r;return[d("app"),e,"groups",t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_")].join(".")},y=function(e){var t;return[d("menu"),"menu_".concat(e)].join(".")},_=function(e){var t;return[d("tab"),e].join(".")},w=function(e,t,n){var r,i=[b(t)],o=s.appFallbackKeys.getAppLabelKey(t);return o&&i.push(o),g(i,e)||n||""},k=function(e,t,n){var r,i=[m(t)],o=s.appFallbackKeys.getAppDescriptionKey(t);return o&&i.push(o),g(i,e)||n||""},j=function(e,t,n,r){var i,o=[v(t,n)],a=s.appFallbackKeys.getAppGroupKey(t,n);return a&&o.push(a),g(o,e)||r||""};n.translationTabGroup=j;var x=function(e,t,n){var r,i=[y(t)],o=s.appFallbackKeys.getMenuLabelKey(t);return o&&i.push(o),g(i,e)||n||""},S=function(e,t,n){var r,i=[_(t)],o=s.appFallbackKeys.getTabKey(t);return o&&i.push(o),g(i,e)||n||""};n.translationTabLabel=S;var D=function(e,t,r){r.label=w(e,t,r.label||r.name),r.description=k(e,t,r.description),i.each(r.tab_groups,(function(i,o){r.tab_groups[o].id=i.id||i.group_name,r.tab_groups[o].group_name=(0,n.translationTabGroup)(e,t,i.group_name,i.group_name)})),(0,n.translationMenus)(e,r.admin_menus)};n.translationApp=D;var E=function(e,t){i.each(t,(function(t){var n=x(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationMenus=E;var A=function(e,t){i.each(t,(function(t,r){(0,n.translationApp)(e,r,t)}))};n.translationApps=A;var C=function(e,t,n){var r=a(n),o={};return o[b(t)]=w(e,t,r.label||r.name),o[m(t)]=k(e,t,r.description),i.each(r.admin_menus,(function(t){o[y(t._id)]=x(e,t._id,t.label||t.name)})),o};n.getAppTranslationTemplate=C;var M=function(e,t,n){i.isArray(n)?i.each(n,(function(e){M(e,"",e)})):n&&i.each(i.keys(n),(function(r){var o=t?"".concat(t,".").concat(r):r,s=n[r];"object"==typeof s?i.isArray(s)?i.each(s,(function(e){M(e,o,s)})):M(e,o,s):e[o]=s}))};function O(e){for(var t in e)"object"==typeof e[t]&&M(e,t,e[t]);return e}n.convertTranslationData=O;var T=function(e){var t=a(e),n={};return i.each(t.CustomApplications,(function(e,t){n[b(t)]=e.name,n[m(t)]=e.description,i.each(e.groups,(function(e,r){n[v(t,r)]=e}))})),i.each(t.CustomTabs,(function(e,t){n[_(t)]=e})),i.each(t.CustomLabels,(function(e,t){var r;if("simpleschema"!=t&&i.isObject(e)){var o=O(((r={})[t]=e,r));i.each(o,(function(e,t){i.isObject(e)||(n[p(t)]=e)}))}else n[p(t)]=e})),n};n.convertTranslation=T;var B=function(e){i.each(e,(function(e){var t=(0,n.convertTranslation)(e.data);(0,r.addResourceBundle)(e.lng,u,t,!0,!0)}))};n.addTranslations=B},templates:{"objectTranslation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getObjectMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]="help"===e?t.inlineHelpText||"":t[e]||""})),n}function a(e){return s(["label","description"],e)}function u(e){switch(e.type){case"select":return s(["label","help","options","description"],e);default:return s(["label","help","description"],e)}}function f(e){return s(["label"],e)}function c(e){return s(["label"],e)}function l(e){var t={};return r.each(e,(function(e,n){t[n]=u(e)})),t}function h(e){var t={};return r.each(e,(function(e,n){t[n]=c(e)})),t}function d(e){var t={};return r.each(e,(function(e,n){t[n]=f(e)})),t}function p(e,t){var n={};return r.each(e,(function(e,r){if(e.group){var i=e.group.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");n[i]=t[r].group}})),n}var g=function(e,t,n,s){void 0===s&&(s=!1);var u=o(n);1!=s&&(0,i.translationObject)(e,t,u,!0,s);var f=Object.assign({},a(u));f=Object.assign({},f,{fields:l(u.fields)});var c=p(n.fields,u.fields);r.isEmpty(c)||(f=Object.assign({},f,{groups:c}));var g=d(u.list_views);r.isEmpty(g)||(f=Object.assign({},f,{listviews:g}));var b=h(u.actions);return r.isEmpty(b)||(f=Object.assign({},f,{actions:b})),Object.assign({name:t},f)};n.getObjectMetadataTranslationTemplate=g},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getAppMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]=t[e]||""})),n}function a(e){var t={groups:{}};return e?(r.each(e,(function(e){var n=e.group_name.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t.groups[n]=e.group_name})),t):{}}var u=function(e){return Object.assign({},s(["name","description"],e),a(e.tab_groups))},f=function(e){var t={};return r.each(e,(function(e,n){t[n]=n})),t},c=function(e){var t={};return r.each(e,(function(e){var n=e.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t[n]=e})),t},l=function(e,t,n){var r,s=o(n);(0,i.translationApp)(e,t,s);var a={},l;return s.tab_items?a=f(s.tab_items):s.tabs&&(a=c(s.tabs)),Object.assign({},{CustomApplications:(r={},r[t]=u(s),r)},{CustomTabs:a})};n.getAppMetadataTranslationTemplate=l}}}},node_modules:{i18next:{"package.json":function e(t,n,e){e.exports={name:"i18next",version:"19.9.2",module:"./dist/esm/i18next.js",main:"./dist/cjs/i18next.js"}},dist:{esm:{"i18next.js":function e(t,n,e){let r,i,o,s,a,u,f,c;e.link("@babel/runtime/helpers/esm/typeof",{default(e){r=e}},0),e.link("@babel/runtime/helpers/esm/objectSpread",{default(e){i=e}},1),e.link("@babel/runtime/helpers/esm/classCallCheck",{default(e){o=e}},2),e.link("@babel/runtime/helpers/esm/createClass",{default(e){s=e}},3),e.link("@babel/runtime/helpers/esm/possibleConstructorReturn",{default(e){a=e}},4),e.link("@babel/runtime/helpers/esm/getPrototypeOf",{default(e){u=e}},5),e.link("@babel/runtime/helpers/esm/assertThisInitialized",{default(e){f=e}},6),e.link("@babel/runtime/helpers/esm/inherits",{default(e){c=e}},7);var l={type:"logger",log:function e(t){this.output("log",t)},warn:function e(t){this.output("warn",t)},error:function e(t){this.output("error",t)},output:function e(t,n){console&&console[t]&&console[t].apply(console,n)}},h,d=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.init(t,n)}return s(e,[{key:"init",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||l,this.options=n,this.debug=n.debug}},{key:"setDebug",value:function e(t){this.debug=t}},{key:"log",value:function e(){for(var t=arguments.length,n=new Array(t),r=0;r1?n-1:0),i=1;i-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(i())return{};var s=r(o.shift());!e[s]&&n&&(e[s]=new n),e=Object.prototype.hasOwnProperty.call(e,s)?e[s]:{}}return i()?{}:{obj:e,k:r(o.shift())}}function y(e,t,n){var r=v(e,t,Object),i,o;r.obj[r.k]=n}function _(e,t,n,r){var i=v(e,t,Object),o=i.obj,s=i.k;o[s]=o[s]||[],r&&(o[s]=o[s].concat(n)),r||o[s].push(n)}function w(e,t){var n=v(e,t),r=n.obj,i=n.k;if(r)return r[i]}function k(e,t,n){var r=w(e,n);return void 0!==r?r:w(t,n)}function j(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):j(e[r],t[r],n):e[r]=t[r]);return e}function x(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var S={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function D(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return S[e]})):e}var E="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,A=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n}return c(t,e),s(t,[{key:"addNamespaces",value:function e(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function e(t){var n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,s=[t,n];return r&&"string"!=typeof r&&(s=s.concat(r)),r&&"string"==typeof r&&(s=s.concat(o?r.split(o):r)),t.indexOf(".")>-1&&(s=t.split(".")),w(this.data,s)}},{key:"addResource",value:function e(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},s=this.options.keySeparator;void 0===s&&(s=".");var a=[t,n];r&&(a=a.concat(s?r.split(s):r)),t.indexOf(".")>-1&&(i=n,n=(a=t.split("."))[1]),this.addNamespaces(n),y(this.data,a,i),o.silent||this.emit("added",t,n,r,i)}},{key:"addResources",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in r)"string"!=typeof r[o]&&"[object Array]"!==Object.prototype.toString.apply(r[o])||this.addResource(t,n,o,r[o],{silent:!0});i.silent||this.emit("added",t,n,r)}},{key:"addResourceBundle",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},u=[t,n];t.indexOf(".")>-1&&(o=r,r=n,n=(u=t.split("."))[1]),this.addNamespaces(n);var f=w(this.data,u)||{};o?j(f,r,s):f=i({},f,r),y(this.data,u,f),a.silent||this.emit("added",t,n,r)}},{key:"removeResourceBundle",value:function e(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}},{key:"hasResourceBundle",value:function e(t,n){return void 0!==this.getResource(t,n)}},{key:"getResourceBundle",value:function e(t,n){return n||(n=this.options.defaultNS),"v1"===this.options.compatibilityAPI?i({},{},this.getResource(t,n)):this.getResource(t,n)}},{key:"getDataByLanguage",value:function e(t){return this.data[t]}},{key:"toJSON",value:function e(){return this.data}}]),t}(p),C={processors:{},addPostProcessor:function e(t){this.processors[t.name]=t},handle:function e(t,n,r,i,o){var s=this;return t.forEach((function(e){s.processors[e]&&(n=s.processors[e].process(n,r,i,o))})),n}},M={},O=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),m(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,f(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=d.create("translator"),n}return c(t,e),s(t,[{key:"changeLanguage",value:function e(t){t&&(this.language=t)}},{key:"exists",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},r=this.resolve(t,n);return r&&void 0!==r.res}},{key:"extractFromKey",value:function e(t,n){var r=void 0!==n.nsSeparator?n.nsSeparator:this.options.nsSeparator;void 0===r&&(r=":");var i=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,o=n.ns||this.options.defaultNS;if(r&&t.indexOf(r)>-1){var s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:o};var a=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),t=a.join(i)}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}}},{key:"translate",value:function e(n,o,s){var a=this;if("object"!==r(o)&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),o||(o={}),null==n)return"";Array.isArray(n)||(n=[String(n)]);var u=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,f=this.extractFromKey(n[n.length-1],o),c=f.key,l=f.namespaces,h=l[l.length-1],d=o.lng||this.language,p=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var g=o.nsSeparator||this.options.nsSeparator;return h+g+c}return c}var b=this.resolve(n,o),m=b&&b.res,v=b&&b.usedKey||c,y=b&&b.exactUsedKey||c,_=Object.prototype.toString.apply(m),w=["[object Number]","[object Function]","[object RegExp]"],k=void 0!==o.joinArrays?o.joinArrays:this.options.joinArrays,j=!this.i18nFormat||this.i18nFormat.handleAsObject,x="string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m;if(j&&m&&x&&w.indexOf(_)<0&&("string"!=typeof k||"[object Array]"!==_)){if(!o.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,m,o):"key '".concat(c," (").concat(this.language,")' returned an object instead of string.");if(u){var S="[object Array]"===_,D=S?[]:{},E=S?y:v;for(var A in m)if(Object.prototype.hasOwnProperty.call(m,A)){var C="".concat(E).concat(u).concat(A);D[A]=this.translate(C,i({},o,{joinArrays:!1,ns:l})),D[A]===C&&(D[A]=m[A])}m=D}}else if(j&&"string"==typeof k&&"[object Array]"===_)(m=m.join(k))&&(m=this.extendTranslation(m,n,o,s));else{var M=!1,O=!1,T=void 0!==o.count&&"string"!=typeof o.count,B=t.hasDefaultValue(o),I=T?this.pluralResolver.getSuffix(d,o.count):"",R=o["defaultValue".concat(I)]||o.defaultValue;!this.isValidLookup(m)&&B&&(M=!0,m=R),this.isValidLookup(m)||(O=!0,m=c);var F=B&&R!==m&&this.options.updateMissing;if(O||M||F){if(this.logger.log(F?"updateKey":"missingKey",d,h,c,F?R:m),u){var P=this.resolve(c,i({},o,{keySeparator:!1}));P&&P.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var N=[],L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if("fallback"===this.options.saveMissingTo&&L&&L[0])for(var z=0;z1&&void 0!==arguments[1]?arguments[1]:{},i,o,s,a,u;return"string"==typeof t&&(t=[t]),t.forEach((function(e){if(!n.isValidLookup(i)){var t=n.extractFromKey(e,r),f=t.key;o=f;var c=t.namespaces;n.options.fallbackNS&&(c=c.concat(n.options.fallbackNS));var l=void 0!==r.count&&"string"!=typeof r.count,h=void 0!==r.context&&"string"==typeof r.context&&""!==r.context,d=r.lngs?r.lngs:n.languageUtils.toResolveHierarchy(r.lng||n.language,r.fallbackLng);c.forEach((function(e){n.isValidLookup(i)||(u=e,!M["".concat(d[0],"-").concat(e)]&&n.utils&&n.utils.hasLoadedNamespace&&!n.utils.hasLoadedNamespace(u)&&(M["".concat(d[0],"-").concat(e)]=!0,n.logger.warn('key "'.concat(o,'" for languages "').concat(d.join(", "),'" won\'t get resolved as namespace "').concat(u,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),d.forEach((function(t){if(!n.isValidLookup(i)){a=t;var o=f,u=[o],c,d;if(n.i18nFormat&&n.i18nFormat.addLookupKeys)n.i18nFormat.addLookupKeys(u,f,t,e,r);else l&&(c=n.pluralResolver.getSuffix(t,r.count)),l&&h&&u.push(o+c),h&&u.push(o+="".concat(n.options.contextSeparator).concat(r.context)),l&&u.push(o+=c);for(;d=u.pop();)n.isValidLookup(i)||(s=d,i=n.getResource(t,e,d,r))}})))}))}})),{res:i,usedKey:o,exactUsedKey:s,usedLng:a,usedNS:u}}},{key:"isValidLookup",value:function e(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}}],[{key:"hasDefaultValue",value:function e(t){var n="defaultValue";for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&void 0!==t[r])return!0;return!1}}]),t}(p);function T(e){return e.charAt(0).toUpperCase()+e.slice(1)}var B=function(){function e(t){o(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=d.create("languageUtils")}return s(e,[{key:"getScriptPartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return null;var n=t.split("-");return 2===n.length?null:(n.pop(),"x"===n[n.length-1].toLowerCase()?null:this.formatLanguageCode(n.join("-")))}},{key:"getLanguagePartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return t;var n=t.split("-");return this.formatLanguageCode(n[0])}},{key:"formatLanguageCode",value:function e(t){if("string"==typeof t&&t.indexOf("-")>-1){var n=["hans","hant","latn","cyrl","cans","mong","arab"],r=t.split("-");return this.options.lowerCaseLng?r=r.map((function(e){return e.toLowerCase()})):2===r.length?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase()))):3===r.length&&(r[0]=r[0].toLowerCase(),2===r[1].length&&(r[1]=r[1].toUpperCase()),"sgn"!==r[0]&&2===r[2].length&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=T(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function e(t){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(t)}},{key:"isSupportedCode",value:function e(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}},{key:"getBestMatchFromCodes",value:function e(t){var n=this,r;return t?(t.forEach((function(e){if(!r){var t=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(t)||(r=t)}})),!r&&this.options.supportedLngs&&t.forEach((function(e){if(!r){var t=n.getLanguagePartFromCode(e);if(n.isSupportedCode(t))return r=t;r=n.options.supportedLngs.find((function(e){if(0===e.indexOf(t))return e}))}})),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r):null}},{key:"getFallbackCodes",value:function e(t,n){if(!t)return[];if("function"==typeof t&&(t=t(n)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!n)return t.default||[];var r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}},{key:"toResolveHierarchy",value:function e(t,n){var r=this,i=this.getFallbackCodes(n||this.options.fallbackLng||[],t),o=[],s=function e(t){t&&(r.isSupportedCode(t)?o.push(t):r.logger.warn("rejecting language code not found in supportedLngs: ".concat(t)))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&s(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&s(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&s(this.getLanguagePartFromCode(t))):"string"==typeof t&&s(this.formatLanguageCode(t)),i.forEach((function(e){o.indexOf(e)<0&&s(r.formatLanguageCode(e))})),o}}]),e}(),I=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],R={1:function e(t){return Number(t>1)},2:function e(t){return Number(1!=t)},3:function e(t){return 0},4:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function e(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function e(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function e(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function e(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function e(t){return Number(t>=2)},10:function e(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function e(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function e(t){return Number(t%10!=1||t%100==11)},13:function e(t){return Number(0!==t)},14:function e(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function e(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function e(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function e(t){return Number(0==t?0:1==t?1:2)},19:function e(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function e(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function e(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function e(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}};function F(){var e={};return I.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:R[t.fc]}}))})),e}var P=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.languageUtils=t,this.options=n,this.logger=d.create("pluralResolver"),this.rules=F()}return s(e,[{key:"addRule",value:function e(t,n){this.rules[t]=n}},{key:"getRule",value:function e(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function e(t){var n=this.getRule(t);return n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function e(t,n){return this.getSuffixes(t).map((function(e){return n+e}))}},{key:"getSuffixes",value:function e(t){var n=this,r=this.getRule(t);return r?r.numbers.map((function(e){return n.getSuffix(t,e)})):[]}},{key:"getSuffix",value:function e(t,n){var r=this,i=this.getRule(t);if(i){var o=i.noAbs?i.plurals(n):i.plurals(Math.abs(n)),s=i.numbers[o];this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]&&(2===s?s="plural":1===s&&(s=""));var a=function e(){return r.options.prepend&&s.toString()?r.options.prepend+s.toString():s.toString()};return"v1"===this.options.compatibilityJSON?1===s?"":"number"==typeof s?"_plural_".concat(s.toString()):a():"v2"===this.options.compatibilityJSON?a():this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),""}}]),e}(),N=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,e),this.logger=d.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return s(e,[{key:"init",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escape=void 0!==n.escape?n.escape:D,this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.useRawValueToEscape=void 0!==n.useRawValueToEscape&&n.useRawValueToEscape,this.prefix=n.prefix?x(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?x(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?x(n.nestingPrefix):n.nestingPrefixEscaped||x("$t("),this.nestingSuffix=n.nestingSuffix?x(n.nestingSuffix):n.nestingSuffixEscaped||x(")"),this.nestingOptionsSeparator=n.nestingOptionsSeparator?n.nestingOptionsSeparator:n.nestingOptionsSeparator||",",this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.alwaysFormat=void 0!==n.alwaysFormat&&n.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function e(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function e(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,"g");var n="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(n,"g");var r="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(r,"g")}},{key:"interpolate",value:function e(t,n,r,i){var o=this,s,a,u,f=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var l=function e(t){if(t.indexOf(o.formatSeparator)<0){var s=k(n,f,t);return o.alwaysFormat?o.format(s,void 0,r):s}var a=t.split(o.formatSeparator),u=a.shift().trim(),c=a.join(o.formatSeparator).trim();return o.format(k(n,f,u),c,r,i)};this.resetRegExp();var h=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&i.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,p;return[{regex:this.regexpUnescape,safeValue:function e(t){return c(t)}},{regex:this.regexp,safeValue:function e(t){return o.escapeValue?c(o.escape(t)):c(t)}}].forEach((function(e){for(u=0;s=e.regex.exec(t);){if(void 0===(a=l(s[1].trim())))if("function"==typeof h){var n=h(t,s,i);a="string"==typeof n?n:""}else{if(d){a=s[0];continue}o.logger.warn("missed to pass in variable ".concat(s[1]," for interpolating ").concat(t)),a=""}else"string"==typeof a||o.useRawValueToEscape||(a=b(a));if(t=t.replace(s[0],e.safeValue(a)),e.regex.lastIndex=0,++u>=o.maxReplaces)break}})),t}},{key:"nest",value:function e(t,n){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s,a,u=i({},o);function f(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),o="{".concat(r[1]);e=r[0],o=(o=this.interpolate(o,u)).replace(/'/g,'"');try{u=JSON.parse(o),t&&(u=i({},t,u))}catch(s){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),s),"".concat(e).concat(n).concat(o)}return delete u.defaultValue,e}for(u.applyPostProcessor=!1,delete u.defaultValue;s=this.nestingRegexp.exec(t);){var c=[],l=!1;if(s[0].includes(this.formatSeparator)&&!/{.*}/.test(s[1])){var h=s[1].split(this.formatSeparator).map((function(e){return e.trim()}));s[1]=h.shift(),c=h,l=!0}if((a=n(f.call(this,s[1].trim(),u),u))&&s[0]===t&&"string"!=typeof a)return a;"string"!=typeof a&&(a=b(a)),a||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(t)),a=""),l&&(a=c.reduce((function(e,t){return r.format(e,t,o.lng,o)}),a.trim())),t=t.replace(s[0],a),this.regexp.lastIndex=0}return t}}]),e}();function L(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}var z=function(e){function t(e,n,r){var i,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return o(this,t),i=a(this,u(t).call(this)),E&&p.call(f(i)),i.backend=e,i.store=n,i.services=r,i.languageUtils=r.languageUtils,i.options=s,i.logger=d.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(r,s.backend,s),i}return c(t,e),s(t,[{key:"queueLoad",value:function e(t,n,r,i){var o=this,s=[],a=[],u=[],f=[];return t.forEach((function(e){var t=!0;n.forEach((function(n){var i="".concat(e,"|").concat(n);!r.reload&&o.store.hasResourceBundle(e,n)?o.state[i]=2:o.state[i]<0||(1===o.state[i]?a.indexOf(i)<0&&a.push(i):(o.state[i]=1,t=!1,a.indexOf(i)<0&&a.push(i),s.indexOf(i)<0&&s.push(i),f.indexOf(n)<0&&f.push(n)))})),t||u.push(e)})),(s.length||a.length)&&this.queue.push({pending:a,loaded:{},errors:[],callback:i}),{toLoad:s,pending:a,toLoadLanguages:u,toLoadNamespaces:f}}},{key:"loaded",value:function e(t,n,r){var i=t.split("|"),o=i[0],s=i[1];n&&this.emit("failedLoading",o,s,n),r&&this.store.addResourceBundle(o,s,r),this.state[t]=n?-1:2;var e={};this.queue.forEach((function(r){_(r.loaded,[o],s),L(r.pending,t),n&&r.errors.push(n),0!==r.pending.length||r.done||(Object.keys(r.loaded).forEach((function(t){e[t]||(e[t]=[]),r.loaded[t].length&&r.loaded[t].forEach((function(n){e[t].indexOf(n)<0&&e[t].push(n)}))})),r.done=!0,r.errors.length?r.callback(r.errors):r.callback())})),this.emit("loaded",e),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function e(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[r](t,n,(function(e,u){e&&u&&o<5?setTimeout((function(){i.read.call(i,t,n,r,o+1,2*s,a)}),s):a(e,u)})):a(null,{})}},{key:"prepareLoading",value:function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof n&&(n=[n]);var s=this.queueLoad(t,n,i,o);if(!s.toLoad.length)return s.pending.length||o(),null;s.toLoad.forEach((function(e){r.loadOne(e)}))}},{key:"load",value:function e(t,n,r){this.prepareLoading(t,n,{},r)}},{key:"reload",value:function e(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}},{key:"loadOne",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=t.split("|"),o=i[0],s=i[1];this.read(o,s,"read",void 0,void 0,(function(e,i){e&&n.logger.warn("".concat(r,"loading namespace ").concat(s," for language ").concat(o," failed"),e),!e&&i&&n.logger.log("".concat(r,"loaded namespace ").concat(s," for language ").concat(o),i),n.loaded(t,e,i)}))}},{key:"saveMissing",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)?this.logger.warn('did not save key "'.concat(r,'" as the namespace "').concat(n,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=r&&""!==r&&(this.backend&&this.backend.create&&this.backend.create(t,n,r,o,null,i({},a,{isUpdate:s})),t&&t[0]&&this.store.addResource(t[0],n,r,o))}}]),t}(p);function U(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function e(t){var n={};if("object"===r(t[1])&&(n=t[1]),"string"==typeof t[1]&&(n.defaultValue=t[1]),"string"==typeof t[2]&&(n.tDescription=t[2]),"object"===r(t[2])||"object"===r(t[3])){var i=t[3]||t[2];Object.keys(i).forEach((function(e){n[e]=i[e]}))}return n},interpolation:{escapeValue:!0,format:function e(t,n,r,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function q(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function $(){}var H,W=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(o(this,t),e=a(this,u(t).call(this)),E&&p.call(f(e)),e.options=q(n),e.services={},e.logger=d,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),a(e,f(e));setTimeout((function(){e.init(n,r)}),0)}return e}return c(t,e),s(t,[{key:"init",value:function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;function o(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof n&&(r=n,n={}),n.whitelist&&!n.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),n.nonExplicitWhitelist&&!n.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=i({},U(),this.options,q(n)),this.format=this.options.interpolation.format,r||(r=$),!this.options.isClone){this.modules.logger?d.init(o(this.modules.logger),this.options):d.init(null,this.options);var s=new B(this.options);this.store=new A(this.options.resources,this.options);var a=this.services;a.logger=d,a.resourceStore=this.store,a.languageUtils=s,a.pluralResolver=new P(s,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new N(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new z(o(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1?n-1:0),i=1;i0&&"dev"!==u[0]&&(this.options.lng=u[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var f=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];f.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments)}}));var c=["addResource","addResources","addResourceBundle","removeResourceBundle"];c.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments),t}}));var l=g(),h=function e(){var n=function e(n,i){t.isInitialized&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(i),r(n,i)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return n(null,t.t.bind(t));t.changeLanguage(t.options.lng,n)};return this.options.resources||!this.options.initImmediate?h():setTimeout(h,0),l}},{key:"loadResources",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,i=r,o="string"==typeof t?t:this.language;if("function"==typeof t&&(i=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return i();var s=[],a=function e(t){var r;t&&n.services.languageUtils.toResolveHierarchy(t).forEach((function(e){s.indexOf(e)<0&&s.push(e)}))};if(o)a(o);else{var u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(s,this.options.ns,i)}else i(null)}},{key:"reloadResources",value:function e(t,n,r){var i=g();return t||(t=this.languages),n||(n=this.options.ns),r||(r=$),this.services.backendConnector.reload(t,n,(function(e){i.resolve(),r(e)})),i}},{key:"use",value:function e(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&C.addPostProcessor(t),"3rdParty"===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function e(t,n){var r=this;this.isLanguageChangingTo=t;var i=g();this.emit("languageChanging",t);var o=function e(t,o){o?(r.language=o,r.languages=r.services.languageUtils.toResolveHierarchy(o),r.translator.changeLanguage(o),r.isLanguageChangingTo=void 0,r.emit("languageChanged",o),r.logger.log("languageChanged",o)):r.isLanguageChangingTo=void 0,i.resolve((function(){return r.t.apply(r,arguments)})),n&&n(t,(function(){return r.t.apply(r,arguments)}))},s=function e(t){var n="string"==typeof t?t:r.services.languageUtils.getBestMatchFromCodes(t);n&&(r.language||(r.language=n,r.languages=r.services.languageUtils.toResolveHierarchy(n)),r.translator.language||r.translator.changeLanguage(n),r.services.languageDetector&&r.services.languageDetector.cacheUserLanguage(n)),r.loadResources(n,(function(e){o(e,n)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(s):s(t):s(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function e(t,n){var o=this,s=function e(t,n){var s;if("object"!==r(n)){for(var a=arguments.length,u=new Array(a>2?a-2:0),f=2;f1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.languages[0],o=!!this.options&&this.options.fallbackLng,s=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var a=function e(t,r){var i=n.services.backendConnector.state["".concat(t,"|").concat(r)];return-1===i||2===i};if(r.precheck){var u=r.precheck(this,a);if(void 0!==u)return u}return!!this.hasResourceBundle(i,t)||(!this.services.backendConnector.backend||!(!a(i,t)||o&&!a(s,t)))}},{key:"loadNamespaces",value:function e(t,n){var r=this,i=g();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((function(e){r.options.ns.indexOf(e)<0&&r.options.ns.push(e)})),this.loadResources((function(e){i.resolve(),n&&n(e)})),i):(n&&n(),Promise.resolve())}},{key:"loadLanguages",value:function e(t,n){var r=g();"string"==typeof t&&(t=[t]);var i=this.options.preload||[],o=t.filter((function(e){return i.indexOf(e)<0}));return o.length?(this.options.preload=i.concat(o),this.loadResources((function(e){r.resolve(),n&&n(e)})),r):(n&&n(),Promise.resolve())}},{key:"dir",value:function e(t){return t||(t=this.languages&&this.languages.length>0?this.languages[0]:this.language),t?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr":"rtl";var n}},{key:"createInstance",value:function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new t(n,r)}},{key:"cloneInstance",value:function e(){var n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,s=i({},this.options,r,{isClone:!0}),a=new t(s),u=["store","services","language"];return u.forEach((function(e){a[e]=n[e]})),a.services=i({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new O(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;rr,root:()=>i,ArrayProto:()=>o,ObjProto:()=>s,SymbolProto:()=>a,push:()=>u,slice:()=>f,toString:()=>c,hasOwnProperty:()=>l,supportsArrayBuffer:()=>h,supportsDataView:()=>d,nativeIsArray:()=>p,nativeKeys:()=>g,nativeCreate:()=>b,nativeIsView:()=>m,_isNaN:()=>v,_isFinite:()=>y,hasEnumBug:()=>_,nonEnumerableProps:()=>w,MAX_ARRAY_INDEX:()=>k});var r="1.13.4",i="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},o=Array.prototype,s=Object.prototype,a="undefined"!=typeof Symbol?Symbol.prototype:null,u=o.push,f=o.slice,c=s.toString,l=s.hasOwnProperty,h="undefined"!=typeof ArrayBuffer,d="undefined"!=typeof DataView,p=Array.isArray,g=Object.keys,b=Object.create,m=h&&ArrayBuffer.isView,v=isNaN,y=isFinite,_=!{toString:null}.propertyIsEnumerable("toString"),w=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],k=Math.pow(2,53)-1},"restArguments.js":function e(t,n,e){function r(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;ir})},"isObject.js":function e(t,n,e){function r(e){var t=typeof e;return"function"===t||"object"===t&&!!e}e.export({default:()=>r})},"isNull.js":function e(t,n,e){function r(e){return null===e}e.export({default:()=>r})},"isUndefined.js":function e(t,n,e){function r(e){return void 0===e}e.export({default:()=>r})},"isBoolean.js":function e(t,n,e){let r;function i(e){return!0===e||!1===e||"[object Boolean]"===r.call(e)}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isElement.js":function e(t,n,e){function r(e){return!(!e||1!==e.nodeType)}e.export({default:()=>r})},"isString.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("String"))},"_tagTester.js":function e(t,n,e){let r;function i(e){var t="[object "+e+"]";return function(e){return r.call(e)===t}}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isNumber.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Number"))},"isDate.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Date"))},"isRegExp.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("RegExp"))},"isError.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Error"))},"isSymbol.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Symbol"))},"isArrayBuffer.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("ArrayBuffer"))},"isDataView.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isArrayBuffer.js",{default(e){o=e}},2),e.link("./_stringTagBug.js",{hasStringTagBug(e){s=e}},3);var a=r("DataView");function u(e){return null!=e&&i(e.getInt8)&&o(e.buffer)}e.exportDefault(s?u:a)},"isFunction.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_setup.js",{root(e){i=e}},1);var o=r("Function"),s=i.document&&i.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof s&&(o=function(e){return"function"==typeof e||!1}),e.exportDefault(o)},"_stringTagBug.js":function e(t,n,e){let r,i;e.export({hasStringTagBug:()=>o,isIE11:()=>s}),e.link("./_setup.js",{supportsDataView(e){r=e}},0),e.link("./_hasObjectTag.js",{default(e){i=e}},1);var o=r&&i(new DataView(new ArrayBuffer(8))),s="undefined"!=typeof Map&&i(new Map)},"_hasObjectTag.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Object"))},"isArray.js":function e(t,n,e){let r,i;e.link("./_setup.js",{nativeIsArray(e){r=e}},0),e.link("./_tagTester.js",{default(e){i=e}},1),e.exportDefault(r||i("Array"))},"isArguments.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1);var o=r("Arguments");!function(){o(arguments)||(o=function(e){return i(e,"callee")})}(),e.exportDefault(o)},"_has.js":function e(t,n,e){let r;function i(e,t){return null!=e&&r.call(e,t)}e.export({default:()=>i}),e.link("./_setup.js",{hasOwnProperty(e){r=e}},0)},"isFinite.js":function e(t,n,e){let r,i;function o(e){return!i(e)&&r(e)&&!isNaN(parseFloat(e))}e.export({default:()=>o}),e.link("./_setup.js",{_isFinite(e){r=e}},0),e.link("./isSymbol.js",{default(e){i=e}},1)},"isNaN.js":function e(t,n,e){let r,i;function o(e){return i(e)&&r(e)}e.export({default:()=>o}),e.link("./_setup.js",{_isNaN(e){r=e}},0),e.link("./isNumber.js",{default(e){i=e}},1)},"isTypedArray.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./_setup.js",{supportsArrayBuffer(e){r=e},nativeIsView(e){i=e},toString(e){o=e}},0),e.link("./isDataView.js",{default(e){s=e}},1),e.link("./constant.js",{default(e){a=e}},2),e.link("./_isBufferLike.js",{default(e){u=e}},3);var f=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function c(e){return i?i(e)&&!s(e):u(e)&&f.test(o.call(e))}e.exportDefault(r?c:a(!1))},"constant.js":function e(t,n,e){function r(e){return function(){return e}}e.export({default:()=>r})},"_isBufferLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getByteLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createSizePropertyCheck.js":function e(t,n,e){let r;function i(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=r}}e.export({default:()=>i}),e.link("./_setup.js",{MAX_ARRAY_INDEX(e){r=e}},0)},"_getByteLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("byteLength"))},"_shallowProperty.js":function e(t,n,e){function r(e){return function(t){return null==t?void 0:t[e]}}e.export({default:()=>r})},"isEmpty.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(null==e)return!0;var t=r(e);return"number"==typeof t&&(i(e)||o(e)||s(e))?0===t:0===r(a(e))}e.export({default:()=>u}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3),e.link("./keys.js",{default(e){a=e}},4)},"_getLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("length"))},"keys.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(!r(e))return[];if(i)return i(e);var t=[];for(var n in e)s(e,n)&&t.push(n);return o&&a(e,t),t}e.export({default:()=>u}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeKeys(e){i=e},hasEnumBug(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2),e.link("./_collectNonEnumProps.js",{default(e){a=e}},3)},"_collectNonEnumProps.js":function e(t,n,e){let r,i,o,s;function a(e){for(var t={},n=e.length,r=0;ru}),e.link("./_setup.js",{nonEnumerableProps(e){r=e},ObjProto(e){i=e}},0),e.link("./isFunction.js",{default(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2)},"isMatch.js":function e(t,n,e){let r;function i(e,t){var n=r(t),i=n.length;if(null==e)return!i;for(var o=Object(e),s=0;si}),e.link("./keys.js",{default(e){r=e}},0)},"isEqual.js":function e(t,n,e){let r,i,o,s,a,u,f,c,l,h,d;e.export({default:()=>m}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_setup.js",{toString(e){i=e},SymbolProto(e){o=e}},1),e.link("./_getByteLength.js",{default(e){s=e}},2),e.link("./isTypedArray.js",{default(e){a=e}},3),e.link("./isFunction.js",{default(e){u=e}},4),e.link("./_stringTagBug.js",{hasStringTagBug(e){f=e}},5),e.link("./isDataView.js",{default(e){c=e}},6),e.link("./keys.js",{default(e){l=e}},7),e.link("./_has.js",{default(e){h=e}},8),e.link("./_toBufferView.js",{default(e){d=e}},9);var p="[object DataView]";function g(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var i=typeof e;return("function"===i||"object"===i||"object"==typeof t)&&b(e,t,n,r)}function b(e,t,n,m){e instanceof r&&(e=e._wrapped),t instanceof r&&(t=t._wrapped);var v=i.call(e);if(v!==i.call(t))return!1;if(f&&"[object Object]"==v&&c(e)){if(!c(t))return!1;v=p}switch(v){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return o.valueOf.call(e)===o.valueOf.call(t);case"[object ArrayBuffer]":case p:return b(d(e),d(t),n,m)}var y="[object Array]"===v;if(!y&&a(e)){var _;if(s(e)!==s(t))return!1;if(e.buffer===t.buffer&&e.byteOffset===t.byteOffset)return!0;y=!0}if(!y){if("object"!=typeof e||"object"!=typeof t)return!1;var w=e.constructor,k=t.constructor;if(w!==k&&!(u(w)&&w instanceof w&&u(k)&&k instanceof k)&&"constructor"in e&&"constructor"in t)return!1}m=m||[];for(var j=(n=n||[]).length;j--;)if(n[j]===e)return m[j]===t;if(n.push(e),m.push(t),y){if((j=e.length)!==t.length)return!1;for(;j--;)if(!g(e[j],t[j],n,m))return!1}else{var x=l(e),S;if(j=x.length,l(t).length!==j)return!1;for(;j--;)if(S=x[j],!h(t,S)||!g(e[S],t[S],n,m))return!1}return n.pop(),m.pop(),!0}function m(e,t){return g(e,t)}},"underscore.js":function e(t,n,e){let r;function i(e){return e instanceof i?e:this instanceof i?void(this._wrapped=e):new i(e)}e.export({default:()=>i}),e.link("./_setup.js",{VERSION(e){r=e}},0),i.VERSION=r,i.prototype.value=function(){return this._wrapped},i.prototype.valueOf=i.prototype.toJSON=i.prototype.value,i.prototype.toString=function(){return String(this._wrapped)}},"_toBufferView.js":function e(t,n,e){let r;function i(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,r(e))}e.export({default:()=>i}),e.link("./_getByteLength.js",{default(e){r=e}},0)},"isMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},mapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Map"))},"_methodFingerprint.js":function e(t,n,e){let r,i,o;function s(e){var t=r(e);return function(n){if(null==n)return!1;var s=o(n);if(r(s))return!1;for(var u=0;us,mapMethods:()=>l,weakMapMethods:()=>h,setMethods:()=>d}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./allKeys.js",{default(e){o=e}},2);var a="forEach",u="has",f=["clear","delete"],c=["get","has","set"],l=f.concat(a,c),h=f.concat(c),d=["add"].concat(f,a,"has")},"allKeys.js":function e(t,n,e){let r,i,o;function s(e){if(!r(e))return[];var t=[];for(var n in e)t.push(n);return i&&o(e,t),t}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{hasEnumBug(e){i=e}},1),e.link("./_collectNonEnumProps.js",{default(e){o=e}},2)},"isWeakMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},weakMapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("WeakMap"))},"isSet.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},setMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Set"))},"isWeakSet.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("WeakSet"))},"values.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"pairs.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"invert.js":function e(t,n,e){let r;function i(e){for(var t={},n=r(e),i=0,o=n.length;ii}),e.link("./keys.js",{default(e){r=e}},0)},"functions.js":function e(t,n,e){let r;function i(e){var t=[];for(var n in e)r(e[n])&&t.push(n);return t.sort()}e.export({default:()=>i}),e.link("./isFunction.js",{default(e){r=e}},0)},"extend.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createAssigner.js":function e(t,n,e){function r(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var i=1;ir})},"extendOwn.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"defaults.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i,!0))},"create.js":function e(t,n,e){let r,i;function o(e,t){var n=r(e);return t&&i(n,t),n}e.export({default:()=>o}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./extendOwn.js",{default(e){i=e}},1)},"_baseCreate.js":function e(t,n,e){let r,i;function o(){return function(){}}function s(e){if(!r(e))return{};if(i)return i(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeCreate(e){i=e}},1)},"clone.js":function e(t,n,e){let r,i,o;function s(e){return r(e)?i(e)?e.slice():o({},e):e}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./extend.js",{default(e){o=e}},2)},"tap.js":function e(t,n,e){function r(e,t){return t(e),e}e.export({default:()=>r})},"get.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=i(e,r(t));return o(s)?n:s}e.export({default:()=>s}),e.link("./_toPath.js",{default(e){r=e}},0),e.link("./_deepGet.js",{default(e){i=e}},1),e.link("./isUndefined.js",{default(e){o=e}},2)},"_toPath.js":function e(t,n,e){let r;function i(e){return r.toPath(e)}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./toPath.js")},"toPath.js":function e(t,n,e){let r,i;function o(e){return i(e)?e:[e]}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),r.toPath=o},"_deepGet.js":function e(t,n,e){function r(e,t){for(var n=t.length,r=0;rr})},"has.js":function e(t,n,e){let r,i;function o(e,t){for(var n=(t=i(t)).length,o=0;oo}),e.link("./_has.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"mapObject.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s=o.length,a={},u=0;uo}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"_cb.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r.iteratee!==o?r.iteratee(e,t):i(e,t,n)}e.export({default:()=>s}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),e.link("./iteratee.js",{default(e){o=e}},2)},"_baseIteratee.js":function e(t,n,e){let r,i,o,s,a,u,f;function c(e,t,n){return null==e?r:i(e)?f(e,t,n):o(e)&&!s(e)?a(e):u(e)}e.export({default:()=>c}),e.link("./identity.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isObject.js",{default(e){o=e}},2),e.link("./isArray.js",{default(e){s=e}},3),e.link("./matcher.js",{default(e){a=e}},4),e.link("./property.js",{default(e){u=e}},5),e.link("./_optimizeCb.js",{default(e){f=e}},6)},"identity.js":function e(t,n,e){function r(e){return e}e.export({default:()=>r})},"matcher.js":function e(t,n,e){let r,i;function o(e){return e=r({},e),function(t){return i(t,e)}}e.export({default:()=>o}),e.link("./extendOwn.js",{default(e){r=e}},0),e.link("./isMatch.js",{default(e){i=e}},1)},"property.js":function e(t,n,e){let r,i;function o(e){return e=i(e),function(t){return r(t,e)}}e.export({default:()=>o}),e.link("./_deepGet.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"_optimizeCb.js":function e(t,n,e){function r(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}}e.export({default:()=>r})},"iteratee.js":function e(t,n,e){let r,i;function o(e,t){return i(e,t,1/0)}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),r.iteratee=o},"noop.js":function e(t,n,e){function r(){}e.export({default:()=>r})},"propertyOf.js":function e(t,n,e){let r,i;function o(e){return null==e?r:function(t){return i(e,t)}}e.export({default:()=>o}),e.link("./noop.js",{default(e){r=e}},0),e.link("./get.js",{default(e){i=e}},1)},"times.js":function e(t,n,e){let r;function i(e,t,n){var i=Array(Math.max(0,e));t=r(t,n,1);for(var o=0;oi}),e.link("./_optimizeCb.js",{default(e){r=e}},0)},"random.js":function e(t,n,e){function r(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}e.export({default:()=>r})},"now.js":function e(t,n,e){e.exportDefault(Date.now||function(){return(new Date).getTime()})},"escape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createEscaper.js":function e(t,n,e){let r;function i(e){var t=function(t){return e[t]},n="(?:"+r(e).join("|")+")",i=RegExp(n),o=RegExp(n,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(o,t):e}}e.export({default:()=>i}),e.link("./keys.js",{default(e){r=e}},0)},"_escapeMap.js":function e(t,n,e){e.exportDefault({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"})},"unescape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_unescapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_unescapeMap.js":function e(t,n,e){let r,i;e.link("./invert.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"templateSettings.js":function e(t,n,e){let r;e.link("./underscore.js",{default(e){r=e}},0),e.exportDefault(r.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g})},"template.js":function e(t,n,e){let r,i;e.export({default:()=>c}),e.link("./defaults.js",{default(e){r=e}},0),e.link("./underscore.js",{default(e){i=e}},1),e.link("./templateSettings.js");var o=/(.)^/,s={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},a=/\\|'|\r|\n|\u2028|\u2029/g;function u(e){return"\\"+s[e]}var f=/^\s*(\w|\$)+\s*$/;function c(e,t,n){!t&&n&&(t=n),t=r({},t,i.templateSettings);var s=RegExp([(t.escape||o).source,(t.interpolate||o).source,(t.evaluate||o).source].join("|")+"|$","g"),c=0,l="__p+='";e.replace(s,(function(t,n,r,i,o){return l+=e.slice(c,o).replace(a,u),c=o+t.length,n?l+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?l+="'+\n((__t=("+r+"))==null?'':__t)+\n'":i&&(l+="';\n"+i+"\n__p+='"),t})),l+="';\n";var h=t.variable,d;if(h){if(!f.test(h))throw new Error("variable is not a bare identifier: "+h)}else l="with(obj||{}){\n"+l+"}\n",h="obj";l="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+l+"return __p;\n";try{d=new Function(h,"_",l)}catch(g){throw g.source=l,g}var p=function(e){return d.call(this,e,i)};return p.source="function("+h+"){\n"+l+"}",p}},"result.js":function e(t,n,e){let r,i;function o(e,t,n){var o=(t=i(t)).length;if(!o)return r(n)?n.call(e):n;for(var s=0;so}),e.link("./isFunction.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"uniqueId.js":function e(t,n,e){e.export({default:()=>i});var r=0;function i(e){var t=++r+"";return e?e+t:t}},"chain.js":function e(t,n,e){let r;function i(e){var t=r(e);return t._chain=!0,t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"partial.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_executeBound.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2);var s=r((function(e,t){var n=s.placeholder,r=function(){for(var o=0,s=t.length,a=Array(s),u=0;uo}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./isObject.js",{default(e){i=e}},1)},"bind.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_executeBound.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t,n){if(!i(e))throw new TypeError("Bind must be called on a function");var s=r((function(r){return o(e,s,t,this,n.concat(r))}));return s})))},"bindAll.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./bind.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t){var n=(t=i(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=o(e[r],e)}return e})))},"_flatten.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,u){if(u=u||[],t||0===t){if(t<=0)return u.concat(e)}else t=1/0;for(var f=u.length,c=0,l=r(e);c1)a(h,t-1,n,u),f=u.length;else for(var d=0,p=h.length;da}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./isArray.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3)},"_isArrayLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"memoize.js":function e(t,n,e){let r;function i(e,t){var n=function(i){var o=n.cache,s=""+(t?t.apply(this,arguments):i);return r(o,s)||(o[s]=e.apply(this,arguments)),o[s]};return n.cache={},n}e.export({default:()=>i}),e.link("./_has.js",{default(e){r=e}},0)},"delay.js":function e(t,n,e){let r;e.link("./restArguments.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})))},"defer.js":function e(t,n,e){let r,i,o;e.link("./partial.js",{default(e){r=e}},0),e.link("./delay.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2),e.exportDefault(r(i,o,1))},"throttle.js":function e(t,n,e){let r;function i(e,t,n){var i,o,s,a,u=0;n||(n={});var f=function(){u=!1===n.leading?0:r(),i=null,a=e.apply(o,s),i||(o=s=null)},c=function(){var c=r();u||!1!==n.leading||(u=c);var l=t-(c-u);return o=this,s=arguments,l<=0||l>t?(i&&(clearTimeout(i),i=null),u=c,a=e.apply(o,s),i||(o=s=null)):i||!1===n.trailing||(i=setTimeout(f,l)),a};return c.cancel=function(){clearTimeout(i),u=0,i=o=s=null},c}e.export({default:()=>i}),e.link("./now.js",{default(e){r=e}},0)},"debounce.js":function e(t,n,e){let r,i;function o(e,t,n){var o,s,a,u,f,c=function(){var r=i()-s;t>r?o=setTimeout(c,t-r):(o=null,n||(u=e.apply(f,a)),o||(a=f=null))},l=r((function(r){return f=this,a=r,s=i(),o||(o=setTimeout(c,t),n&&(u=e.apply(f,a))),u}));return l.cancel=function(){clearTimeout(o),o=a=f=null},l}e.export({default:()=>o}),e.link("./restArguments.js",{default(e){r=e}},0),e.link("./now.js",{default(e){i=e}},1)},"wrap.js":function e(t,n,e){let r;function i(e,t){return r(t,e)}e.export({default:()=>i}),e.link("./partial.js",{default(e){r=e}},0)},"negate.js":function e(t,n,e){function r(e){return function(){return!e.apply(this,arguments)}}e.export({default:()=>r})},"compose.js":function e(t,n,e){function r(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}e.export({default:()=>r})},"after.js":function e(t,n,e){function r(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}e.export({default:()=>r})},"before.js":function e(t,n,e){function r(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}e.export({default:()=>r})},"once.js":function e(t,n,e){let r,i;e.link("./partial.js",{default(e){r=e}},0),e.link("./before.js",{default(e){i=e}},1),e.exportDefault(r(i,2))},"findKey.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s,a=0,u=o.length;ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"findIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createPredicateIndexFinder.js":function e(t,n,e){let r,i;function o(e){return function(t,n,o){n=r(n,o);for(var s=i(t),a=e>0?0:s-1;a>=0&&ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"findLastIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"sortedIndex.js":function e(t,n,e){let r,i;function o(e,t,n,o){for(var s=(n=r(n,o,1))(t),a=0,u=i(e);ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"indexOf.js":function e(t,n,e){let r,i,o;e.link("./sortedIndex.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./_createIndexFinder.js",{default(e){o=e}},2),e.exportDefault(o(1,i,r))},"_createIndexFinder.js":function e(t,n,e){let r,i,o;function s(e,t,n){return function(s,a,u){var f=0,c=r(s);if("number"==typeof u)e>0?f=u>=0?u:Math.max(u+c,f):c=u>=0?Math.min(u+1,c):u+c+1;else if(n&&u&&c)return s[u=n(s,a)]===a?u:-1;if(a!=a)return(u=t(i.call(s,f,c),o))>=0?u+f:-1;for(u=e>0?f:c-1;u>=0&&us}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isNaN.js",{default(e){o=e}},2)},"lastIndexOf.js":function e(t,n,e){let r,i;e.link("./findLastIndex.js",{default(e){r=e}},0),e.link("./_createIndexFinder.js",{default(e){i=e}},1),e.exportDefault(i(-1,r))},"find.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a=(r(e)?i:o)(e,t,n);if(void 0!==a&&-1!==a)return e[a]}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./findKey.js",{default(e){o=e}},2)},"findWhere.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./find.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"each.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a;if(t=r(t,n),i(e))for(s=0,a=e.length;ss}),e.link("./_optimizeCb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"map.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=Array(a),f=0;fs}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"reduce.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createReduce.js":function e(t,n,e){let r,i,o;function s(e){var t=function(t,n,o,s){var a=!r(t)&&i(t),u=(a||t).length,f=e>0?0:u-1;for(s||(o=t[a?a[f]:f],f+=e);f>=0&&f=3;return t(e,o(n,i,4),r,s)}}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2)},"reduceRight.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"filter.js":function e(t,n,e){let r,i;function o(e,t,n){var o=[];return t=r(t,n),i(e,(function(e,n,r){t(e,n,r)&&o.push(e)})),o}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"reject.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r(e,i(o(t)),n)}e.export({default:()=>s}),e.link("./filter.js",{default(e){r=e}},0),e.link("./negate.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2)},"every.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"some.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"contains.js":function e(t,n,e){let r,i,o;function s(e,t,n,s){return r(e)||(e=i(e)),("number"!=typeof n||s)&&(n=0),o(e,t,n)>=0}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./indexOf.js",{default(e){o=e}},2)},"invoke.js":function e(t,n,e){let r,i,o,s,a;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2),e.link("./_deepGet.js",{default(e){s=e}},3),e.link("./_toPath.js",{default(e){a=e}},4),e.exportDefault(r((function(e,t,n){var r,u;return i(t)?u=t:(t=a(t),r=t.slice(0,-1),t=t[t.length-1]),o(e,(function(e){var i=u;if(!i){if(r&&r.length&&(e=s(e,r)),null==e)return;i=e[t]}return null==i?i:i.apply(e,n)}))})))},"pluck.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./map.js",{default(e){r=e}},0),e.link("./property.js",{default(e){i=e}},1)},"where.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./filter.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"max.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=-1/0,u=-1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la&&(a=f);else t=o(t,n),s(e,(function(e,n,r){((c=t(e,n,r))>u||c===-1/0&&a===-1/0)&&(a=e,u=c)}));return a}e.export({default:()=>a}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"min.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=1/0,u=1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"shuffle.js":function e(t,n,e){let r;function i(e){return r(e,1/0)}e.export({default:()=>i}),e.link("./sample.js",{default(e){r=e}},0)},"sample.js":function e(t,n,e){let r,i,o,s,a;function u(e,t,n){if(null==t||n)return r(e)||(e=i(e)),e[s(e.length-1)];var u=a(e),f=o(u);t=Math.max(Math.min(t,f),0);for(var c=f-1,l=0;lu}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./random.js",{default(e){s=e}},3),e.link("./toArray.js",{default(e){a=e}},4)},"toArray.js":function e(t,n,e){let r,i,o,s,a,u,f;e.export({default:()=>l}),e.link("./isArray.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./_isArrayLike.js",{default(e){s=e}},3),e.link("./map.js",{default(e){a=e}},4),e.link("./identity.js",{default(e){u=e}},5),e.link("./values.js",{default(e){f=e}},6);var c=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function l(e){return e?r(e)?i.call(e):o(e)?e.match(c):s(e)?a(e,u):f(e):[]}},"sortBy.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=0;return t=r(t,n),i(o(e,(function(e,n,r){return{value:e,index:s++,criteria:t(e,n,r)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(ns}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./pluck.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2)},"groupBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n].push(t):e[n]=[t]})))},"_group.js":function e(t,n,e){let r,i;function o(e,t){return function(n,o,s){var a=t?[[],[]]:{};return o=r(o,s),i(n,(function(t,r){var i=o(t,r,n);e(a,t,i)})),a}}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"indexBy.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n]=t})))},"countBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n]++:e[n]=1})))},"partition.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n?0:1].push(t)}),!0))},"size.js":function e(t,n,e){let r,i;function o(e){return null==e?0:r(e)?e.length:i(e).length}e.export({default:()=>o}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"pick.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2),e.link("./allKeys.js",{default(e){s=e}},3),e.link("./_keyInObj.js",{default(e){a=e}},4),e.link("./_flatten.js",{default(e){u=e}},5),e.exportDefault(r((function(e,t){var n={},r=t[0];if(null==e)return n;i(r)?(t.length>1&&(r=o(r,t[1])),t=s(e)):(r=a,t=u(t,!1,!1),e=Object(e));for(var f=0,c=t.length;fr})},"omit.js":function e(t,n,e){let r,i,o,s,a,u,f;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./negate.js",{default(e){o=e}},2),e.link("./map.js",{default(e){s=e}},3),e.link("./_flatten.js",{default(e){a=e}},4),e.link("./contains.js",{default(e){u=e}},5),e.link("./pick.js",{default(e){f=e}},6),e.exportDefault(r((function(e,t){var n=t[0],r;return i(n)?(n=o(n),t.length>1&&(r=t[1])):(t=s(a(t,!1,!1),String),n=function(e,n){return!u(t,n)}),f(e,n,r)})))},"first.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:r(e,e.length-t)}e.export({default:()=>i}),e.link("./initial.js",{default(e){r=e}},0)},"initial.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"last.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:r(e,Math.max(0,e.length-t))}e.export({default:()=>i}),e.link("./rest.js",{default(e){r=e}},0)},"rest.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,null==t||n?1:t)}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"compact.js":function e(t,n,e){let r;function i(e){return r(e,Boolean)}e.export({default:()=>i}),e.link("./filter.js",{default(e){r=e}},0)},"flatten.js":function e(t,n,e){let r;function i(e,t){return r(e,t,!1)}e.export({default:()=>i}),e.link("./_flatten.js",{default(e){r=e}},0)},"without.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./difference.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t){return i(e,t)})))},"difference.js":function e(t,n,e){let r,i,o,s;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./filter.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3),e.exportDefault(r((function(e,t){return t=i(t,!0,!0),o(e,(function(e){return!s(t,e)}))})))},"uniq.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,a){r(t)||(a=n,n=t,t=!1),null!=n&&(n=i(n,a));for(var u=[],f=[],c=0,l=o(e);ca}),e.link("./isBoolean.js",{default(e){r=e}},0),e.link("./_cb.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3)},"union.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./uniq.js",{default(e){i=e}},1),e.link("./_flatten.js",{default(e){o=e}},2),e.exportDefault(r((function(e){return i(o(e,!0,!0))})))},"intersection.js":function e(t,n,e){let r,i;function o(e){for(var t=[],n=arguments.length,o=0,s=r(e);oo}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./contains.js",{default(e){i=e}},1)},"unzip.js":function e(t,n,e){let r,i,o;function s(e){for(var t=e&&r(e,i).length||0,n=Array(t),s=0;ss}),e.link("./max.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.link("./pluck.js",{default(e){o=e}},2)},"zip.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./unzip.js",{default(e){i=e}},1),e.exportDefault(r(i))},"object.js":function e(t,n,e){let r;function i(e,t){for(var n={},i=0,o=r(e);ii}),e.link("./_getLength.js",{default(e){r=e}},0)},"range.js":function e(t,n,e){function r(e,t,n){null==t&&(t=e||0,e=0),n||(n=tr})},"chunk.js":function e(t,n,e){let r;function i(e,t){if(null==t||t<1)return[];for(var n=[],i=0,o=e.length;ii}),e.link("./_setup.js",{slice(e){r=e}},0)},"mixin.js":function e(t,n,e){let r,i,o,s,a;function u(e){return i(o(e),(function(t){var n=r[t]=e[t];r.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),a(this,n.apply(r,e))}})),r}e.export({default:()=>u}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./functions.js",{default(e){o=e}},2),e.link("./_setup.js",{push(e){s=e}},3),e.link("./_chainResult.js",{default(e){a=e}},4)},"_chainResult.js":function e(t,n,e){let r;function i(e,t){return e._chain?r(t).chain():t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"underscore-array-methods.js":function e(t,n,e){let r,i,o,s;e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./_setup.js",{ArrayProto(e){o=e}},2),e.link("./_chainResult.js",{default(e){s=e}},3),i(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];r.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),s(this,n)}})),i(["concat","join","slice"],(function(e){var t=o[e];r.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),s(this,e)}})),e.exportDefault(r)}}}}},cachers:{"package.json":function e(t,n,e){e.exports={name:"@steedos/cachers",version:"2.6.4-beta.1",main:"lib/index.js"}},lib:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getCacherNames=n.clearCacher=n.getCacher=void 0;var r={},i=t("./memory"),o=t("./memory-lru"),s=function(e,t){return r[e]||(e.startsWith("lru.")?r[e]=new o.MemoryLRUCacher(t):r[e]=new i.MemoryCacher),r[e]};n.getCacher=s;var a=function(e){r[e]&&r[e].clear()};n.clearCacher=a;var u=function(){return Object.keys(r)};n.getCacherNames=u},"memory.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryCacher=void 0;var r=t("lodash"),i=function(){function e(){this.cache={}}return e.prototype.get=function(e){return this.cache[e]},e.prototype.delete=function(e){delete this.cache[e]},e.prototype.set=function(e,t){this.cache[e]=t},e.prototype.clear=function(){this.cache={}},e.prototype.keys=function(){return(0,r.keys)(this.cache)},e.prototype.values=function(){return(0,r.values)(this.cache)},e}();n.MemoryCacher=i},"memory-lru.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryLRUCacher=void 0;var r=t("lodash"),i=t("lru-cache"),o={max:5e3,ttl:null,keygen:null,maxParamsLength:null},s=function(){function e(e){this.opts=(0,r.defaultsDeep)(e,o),this.cache=new i({max:this.opts.max,maxAge:this.opts.ttl?1e3*this.opts.ttl:null,updateAgeOnGet:!!this.opts.ttl})}return e.prototype.get=function(e){return this.cache.get(e)},e.prototype.set=function(e,t,n){return this.cache.set(e,t,n)},e.prototype.delete=function(e){return this.cache.delete(e)},e.prototype.clear=function(){return this.cache.clear()},e.prototype.keys=function(){return this.cache.keys()},e.prototype.values=function(){return this.cache.values()},e}();n.MemoryLRUCacher=s}},node_modules:{"lru-cache":{"package.json":function e(t,n,e){e.exports={name:"lru-cache",version:"7.14.1",main:"index.js"}},"index.js":function e(t,n,e){const r="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,i="function"==typeof AbortController,o=i?AbortController:class e{constructor(){this.signal=new u}abort(){this.signal.dispatchEvent("abort")}},s="function"==typeof AbortSignal,a="function"==typeof o.AbortSignal,u=s?AbortSignal:a?o.AbortController:class e{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(e){if("abort"===e){this.aborted=!0;const t={type:e,target:this};this.onabort(t),this._listeners.forEach(e=>e(t),this)}}onabort(){}addEventListener(e,t){"abort"===e&&this._listeners.push(t)}removeEventListener(e,t){"abort"===e&&(this._listeners=this._listeners.filter(e=>e!==t))}},f=new Set,c=(e,t)=>{const n=`LRU_CACHE_OPTION_${e}`;p(n)&&g(n,`${e} option`,`options.${t}`,_)},l=(e,t)=>{const n=`LRU_CACHE_METHOD_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} method`,`cache.${t}()`,i)}},h=(e,t)=>{const n=`LRU_CACHE_PROPERTY_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} property`,`cache.${t}`,i)}},d=(...e)=>{"object"==typeof process&&process&&"function"==typeof process.emitWarning?process.emitWarning(...e):console.error(...e)},p=e=>!f.has(e),g=(e,t,n,r)=>{f.add(e);const i=`The ${t} is deprecated. Please use ${n} instead.`;d(i,"DeprecationWarning",e,r)},b=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),m=e=>b(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?v:null:null;class v extends Array{constructor(e){super(e),this.fill(0)}}class y{constructor(e){if(0===e)return[];const t=m(e);this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class _{constructor(e={}){const{max:t=0,ttl:n,ttlResolution:r=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:s,allowStale:a,dispose:u,disposeAfter:l,noDisposeOnSet:h,noUpdateTTL:g,maxSize:v=0,maxEntrySize:w=0,sizeCalculation:k,fetchMethod:j,fetchContext:x,noDeleteOnFetchRejection:S,noDeleteOnStaleGet:D}=e,{length:E,maxAge:A,stale:C}=e instanceof _?{}:e;if(0!==t&&!b(t))throw new TypeError("max option must be a nonnegative integer");const M=t?m(t):Array;if(!M)throw new Error("invalid max value: "+t);if(this.max=t,this.maxSize=v,this.maxEntrySize=w||this.maxSize,this.sizeCalculation=k||E,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=j||null,this.fetchMethod&&"function"!=typeof this.fetchMethod)throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=x,!this.fetchMethod&&void 0!==x)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(t).fill(null),this.valList=new Array(t).fill(null),this.next=new M(t),this.prev=new M(t),this.head=0,this.tail=0,this.free=new y(t),this.initialFill=1,this.size=0,"function"==typeof u&&(this.dispose=u),"function"==typeof l?(this.disposeAfter=l,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!h,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!S,0!==this.maxEntrySize){if(0!==this.maxSize&&!b(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!b(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!a||!!C,this.noDeleteOnStaleGet=!!D,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!s,this.ttlResolution=b(r)||0===r?r:1,this.ttlAutopurge=!!i,this.ttl=n||A||0,this.ttl){if(!b(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(0===this.max&&0===this.ttl&&0===this.maxSize)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const e="LRU_CACHE_UNBOUNDED";if(p(e)){f.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";d(t,"UnboundedCacheWarning",e,_)}}C&&c("stale","allowStale"),A&&c("maxAge","ttl"),E&&c("length","sizeCalculation")}getRemainingTTL(e){return this.has(e,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new v(this.max),this.starts=new v(this.max),this.setItemTTL=(e,t,n=r.now())=>{if(this.starts[e]=0!==t?n:0,this.ttls[e]=t,0!==t&&this.ttlAutopurge){const n=setTimeout(()=>{this.isStale(e)&&this.delete(this.keyList[e])},t+1);n.unref&&n.unref()}},this.updateItemAge=e=>{this.starts[e]=0!==this.ttls[e]?r.now():0};let e=0;const t=()=>{const t=r.now();if(this.ttlResolution>0){e=t;const n=setTimeout(()=>e=0,this.ttlResolution);n.unref&&n.unref()}return t};this.getRemainingTTL=n=>{const r=this.keyMap.get(n);return void 0===r?0:0===this.ttls[r]||0===this.starts[r]?1/0:this.starts[r]+this.ttls[r]-(e||t())},this.isStale=n=>0!==this.ttls[n]&&0!==this.starts[n]&&(e||t())-this.starts[n]>this.ttls[n]}updateItemAge(e){}setItemTTL(e,t,n){}isStale(e){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new v(this.max),this.removeItemSize=e=>{this.calculatedSize-=this.sizes[e],this.sizes[e]=0},this.requireSize=(e,t,n,r)=>{if(this.isBackgroundFetch(t))return 0;if(!b(n)){if(!r)throw new TypeError("invalid size value (must be positive integer)");if("function"!=typeof r)throw new TypeError("sizeCalculation must be a function");if(n=r(t,e),!b(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return n},this.addItemSize=(e,t)=>{if(this.sizes[e]=t,this.maxSize){const t=this.maxSize-this.sizes[e];for(;this.calculatedSize>t;)this.evict(!0)}this.calculatedSize+=this.sizes[e]}}removeItemSize(e){}addItemSize(e,t){}requireSize(e,t,n,r){if(n||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.tail;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.head);)t=this.prev[t]}*rindexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.head;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.tail);)t=this.next[t]}isValidIndex(e){return this.keyMap.get(this.keyList[e])===e}*entries(){for(const e of this.indexes())yield[this.keyList[e],this.valList[e]]}*rentries(){for(const e of this.rindexes())yield[this.keyList[e],this.valList[e]]}*keys(){for(const e of this.indexes())yield this.keyList[e]}*rkeys(){for(const e of this.rindexes())yield this.keyList[e]}*values(){for(const e of this.indexes())yield this.valList[e]}*rvalues(){for(const e of this.rindexes())yield this.valList[e]}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const n of this.indexes())if(e(this.valList[n],this.keyList[n],this))return this.get(this.keyList[n],t)}forEach(e,t=this){for(const n of this.indexes())e.call(t,this.valList[n],this.keyList[n],this)}rforEach(e,t=this){for(const n of this.rindexes())e.call(t,this.valList[n],this.keyList[n],this)}get prune(){return l("prune","purgeStale"),this.purgeStale}purgeStale(){let e=!1;for(const t of this.rindexes({allowStale:!0}))this.isStale(t)&&(this.delete(this.keyList[t]),e=!0);return e}dump(){const e=[];for(const t of this.indexes({allowStale:!0})){const n=this.keyList[t],i=this.valList[t],o=this.isBackgroundFetch(i)?i.__staleWhileFetching:i,s={value:o};if(this.ttls){s.ttl=this.ttls[t];const e=r.now()-this.starts[t];s.start=Math.floor(Date.now()-e)}this.sizes&&(s.size=this.sizes[t]),e.unshift([n,s])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const e=Date.now()-n.start;n.start=r.now()-e}this.set(t,n.value,n)}}dispose(e,t,n){}set(e,t,{ttl:n=this.ttl,start:r,noDisposeOnSet:i=this.noDisposeOnSet,size:o=0,sizeCalculation:s=this.sizeCalculation,noUpdateTTL:a=this.noUpdateTTL}={}){if(o=this.requireSize(e,t,o,s),this.maxEntrySize&&o>this.maxEntrySize)return this.delete(e),this;let u=0===this.size?void 0:this.keyMap.get(e);if(void 0===u)u=this.newIndex(),this.keyList[u]=e,this.valList[u]=t,this.keyMap.set(e,u),this.next[this.tail]=u,this.prev[u]=this.tail,this.tail=u,this.size++,this.addItemSize(u,o),a=!1;else{const n=this.valList[u];t!==n&&(this.isBackgroundFetch(n)?n.__abortController.abort():i||(this.dispose(n,e,"set"),this.disposeAfter&&this.disposed.push([n,e,"set"])),this.removeItemSize(u),this.valList[u]=t,this.addItemSize(u,o)),this.moveToTail(u)}if(0===n||0!==this.ttl||this.ttls||this.initializeTTLTracking(),a||this.setItemTTL(u,n,r),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return 0===this.size?this.tail:this.size===this.max&&0!==this.max?this.evict(!1):0!==this.free.length?this.free.pop():this.initialFill++}pop(){if(this.size){const e=this.valList[this.head];return this.evict(!0),e}}evict(e){const t=this.head,n=this.keyList[t],r=this.valList[t];return this.isBackgroundFetch(r)?r.__abortController.abort():(this.dispose(r,n,"evict"),this.disposeAfter&&this.disposed.push([r,n,"evict"])),this.removeItemSize(t),e&&(this.keyList[t]=null,this.valList[t]=null,this.free.push(t)),this.head=this.next[t],this.keyMap.delete(n),this.size--,t}has(e,{updateAgeOnHas:t=this.updateAgeOnHas}={}){const n=this.keyMap.get(e);return void 0!==n&&!this.isStale(n)&&(t&&this.updateItemAge(n),!0)}peek(e,{allowStale:t=this.allowStale}={}){const n=this.keyMap.get(e);if(void 0!==n&&(t||!this.isStale(n))){const e=this.valList[n];return this.isBackgroundFetch(e)?e.__staleWhileFetching:e}}backgroundFetch(e,t,n,r){const i=void 0===t?void 0:this.valList[t];if(this.isBackgroundFetch(i))return i;const s=new o,a={signal:s.signal,options:n,context:r},u=t=>(s.signal.aborted||this.set(e,t,a.options),t),f=r=>{if(this.valList[t]===l){const r=!n.noDeleteOnFetchRejection||void 0===l.__staleWhileFetching;r?this.delete(e):this.valList[t]=l.__staleWhileFetching}if(l.__returned===l)throw r},c=t=>t(this.fetchMethod(e,i,a)),l=new Promise(c).then(u,f);return l.__abortController=s,l.__staleWhileFetching=i,l.__returned=null,void 0===t?(this.set(e,l,a.options),t=this.keyMap.get(e)):this.valList[t]=l,l}isBackgroundFetch(e){return e&&"object"==typeof e&&"function"==typeof e.then&&Object.prototype.hasOwnProperty.call(e,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(e,"__returned")&&(e.__returned===e||null===e.__returned)}async fetch(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:s=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,fetchContext:c=this.fetchContext,forceRefresh:l=!1}={}){if(!this.fetchMethod)return this.get(e,{allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r});const h={allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r,ttl:i,noDisposeOnSet:o,size:s,sizeCalculation:a,noUpdateTTL:u,noDeleteOnFetchRejection:f};let d=this.keyMap.get(e);if(void 0===d){const t=this.backgroundFetch(e,d,h,c);return t.__returned=t}{const r=this.valList[d];if(this.isBackgroundFetch(r))return t&&void 0!==r.__staleWhileFetching?r.__staleWhileFetching:r.__returned=r;if(!l&&!this.isStale(d))return this.moveToTail(d),n&&this.updateItemAge(d),r;const i=this.backgroundFetch(e,d,h,c);return t&&void 0!==i.__staleWhileFetching?i.__staleWhileFetching:i.__returned=i}}get(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet}={}){const i=this.keyMap.get(e);if(void 0!==i){const o=this.valList[i],s=this.isBackgroundFetch(o);if(this.isStale(i))return s?t?o.__staleWhileFetching:void 0:(r||this.delete(e),t?o:void 0);if(s)return;return this.moveToTail(i),n&&this.updateItemAge(i),o}}connect(e,t){this.prev[t]=e,this.next[e]=t}moveToTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.connect(this.prev[e],this.next[e]),this.connect(this.tail,e),this.tail=e)}get del(){return l("del","delete"),this.delete}delete(e){let t=!1;if(0!==this.size){const n=this.keyMap.get(e);if(void 0!==n)if(t=!0,1===this.size)this.clear();else{this.removeItemSize(n);const t=this.valList[n];this.isBackgroundFetch(t)?t.__abortController.abort():(this.dispose(t,e,"delete"),this.disposeAfter&&this.disposed.push([t,e,"delete"])),this.keyMap.delete(e),this.keyList[n]=null,this.valList[n]=null,n===this.tail?this.tail=this.prev[n]:n===this.head?this.head=this.next[n]:(this.next[this.prev[n]]=this.next[n],this.prev[this.next[n]]=this.prev[n]),this.size--,this.free.push(n)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return t}clear(){for(const e of this.rindexes({allowStale:!0})){const t=this.valList[e];if(this.isBackgroundFetch(t))t.__abortController.abort();else{const n=this.keyList[e];this.dispose(t,n,"delete"),this.disposeAfter&&this.disposed.push([t,n,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return l("reset","clear"),this.clear}get length(){return h("length","size"),this.size}static get AbortController(){return o}static get AbortSignal(){return u}}e.exports=_}}}}},tslib:{"package.json":function e(t,n,e){e.exports={name:"tslib",version:"2.3.1",module:"tslib.es6.js",main:"tslib.js"}},"tslib.es6.js":function e(t,n,e){e.export({__extends:()=>i,__assign:()=>o,__rest:()=>s,__decorate:()=>a,__param:()=>u,__metadata:()=>f,__awaiter:()=>c,__generator:()=>l,__createBinding:()=>h,__exportStar:()=>d,__values:()=>p,__read:()=>g,__spread:()=>b,__spreadArrays:()=>m,__spreadArray:()=>v,__await:()=>y,__asyncGenerator:()=>_,__asyncDelegator:()=>w,__asyncValues:()=>k,__makeTemplateObject:()=>j,__importStar:()=>S,__importDefault:()=>D,__classPrivateFieldGet:()=>E,__classPrivateFieldSet:()=>A}); +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1||t[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,r=this,i;return e(this).one("bsTransitionEnd",(function(){n=!0})),setTimeout((function(){n||e(r).trigger(e.support.transition.end)}),t),this},e((function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})}))}(jQuery),function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};function r(t){return this.each((function(){var r=e(this),i=r.data("bs.alert");i||r.data("bs.alert",i=new n(this)),"string"==typeof t&&i[t].call(r)}))}n.VERSION="3.4.1",n.TRANSITION_DURATION=150,n.prototype.close=function(t){var r=e(this),i=r.attr("data-target");i||(i=(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=e(document).find(i);function s(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=r.closest(".alert")),o.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",s).emulateTransitionEnd(n.TRANSITION_DURATION):s())};var i=e.fn.alert;e.fn.alert=r,e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=i,this},e(document).on("click.bs.alert.data-api",t,n.prototype.close)}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.isLoading=!1};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.button"),o="object"==typeof n&&n;i||r.data("bs.button",i=new t(this,o)),"toggle"==n?i.toggle():n&&i.setState(n)}))}t.VERSION="3.4.1",t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(t){var n="disabled",r=this.$element,i=r.is("input")?"val":"html",o=r.data();t+="Text",null==o.resetText&&r.data("resetText",r[i]()),setTimeout(e.proxy((function(){r[i](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,r.addClass(n).attr(n,n).prop(n,!0)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n).prop(n,!1))}),this),0)},t.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var r=e.fn.button;e.fn.button=n,e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=r,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var r=e(t.target).closest(".btn");n.call(r,"toggle"),e(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),r.is("input,button")?r.trigger("focus"):r.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))}))}(jQuery),function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.carousel"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n),s="string"==typeof n?n:o.slide;i||r.data("bs.carousel",i=new t(this,o)),"number"==typeof n?i.to(n):s?i[s]():o.interval&&i.pause().cycle()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=600,t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},t.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},t.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t),r;if(("prev"==e&&0===n||"next"==e&&n==this.$items.length-1)&&!this.options.wrap)return t;var i,o=(n+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(o)},t.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){t.to(e)})):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(!this.sliding)return this.slide("next")},t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},t.prototype.slide=function(n,r){var i=this.$element.find(".item.active"),o=r||this.getItemForDirection(n,i),s=this.interval,a="next"==n?"left":"right",u=this;if(o.hasClass("active"))return this.sliding=!1;var f=o[0],c=e.Event("slide.bs.carousel",{relatedTarget:f,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=e(this.$indicators.children()[this.getItemIndex(o)]);l&&l.addClass("active")}var h=e.Event("slid.bs.carousel",{relatedTarget:f,direction:a});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(n),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(a),o.addClass(a),i.one("bsTransitionEnd",(function(){o.removeClass([n,a].join(" ")).addClass("active"),i.removeClass(["active",a].join(" ")),u.sliding=!1,setTimeout((function(){u.$element.trigger(h)}),0)})).emulateTransitionEnd(t.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(h)),s&&this.cycle(),this}};var r=e.fn.carousel;e.fn.carousel=n,e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=r,this};var i=function(t){var r=e(this),i=r.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=r.attr("data-target")||i,s=e(document).find(o);if(s.hasClass("carousel")){var a=e.extend({},s.data(),r.data()),u=r.attr("data-slide-to");u&&(a.interval=!1),n.call(s,a),u&&s.data("bs.carousel").to(u),t.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",i).on("click.bs.carousel.data-api","[data-slide-to]",i),e(window).on("load",(function(){e('[data-ride="carousel"]').each((function(){var t=e(this);n.call(t,t.data())}))}))}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.$trigger=e('[data-toggle="collapse"][href="#'+n.id+'"],[data-toggle="collapse"][data-target="#'+n.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var n,r=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(document).find(r)}function r(n){return this.each((function(){var r=e(this),i=r.data("bs.collapse"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n);!i&&o.toggle&&/show|hide/.test(n)&&(o.toggle=!1),i||r.data("bs.collapse",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=350,t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e;return this.$element.hasClass("width")?"width":"height"},t.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(n=i.data("bs.collapse"))&&n.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){i&&i.length&&(r.call(i,"hide"),n||i.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return a.call(this);var u=e.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",e.proxy(a,this)).emulateTransitionEnd(t.TRANSITION_DURATION)[s](this.$element[0][u])}}}},t.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var n=e.Event("hide.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.dimension();this.$element[r](this.$element[r]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return i.call(this);this.$element[r](0).one("bsTransitionEnd",e.proxy(i,this)).emulateTransitionEnd(t.TRANSITION_DURATION)}}},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},t.prototype.getParent=function(){return e(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy((function(t,r){var i=e(r);this.addAriaAndCollapsedClass(n(i),i)}),this)).end()},t.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var i=e.fn.collapse;e.fn.collapse=r,e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=i,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){var i=e(this);i.attr("data-target")||t.preventDefault();var o=n(i),s,a=o.data("bs.collapse")?"toggle":i.data();r.call(o,a)}))}(jQuery),function(e){"use strict";var t=".dropdown-backdrop",n='[data-toggle="dropdown"]',r=function(t){e(t).on("click.bs.dropdown",this.toggle)};function i(t){var n=t.attr("data-target");n||(n=(n=t.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r="#"!==n?e(document).find(n):null;return r&&r.length?r:t.parent()}function o(r){r&&3===r.which||(e(t).remove(),e(n).each((function(){var t=e(this),n=i(t),o={relatedTarget:this};n.hasClass("open")&&(r&&"click"==r.type&&/input|textarea/i.test(r.target.tagName)&&e.contains(n[0],r.target)||(n.trigger(r=e.Event("hide.bs.dropdown",o)),r.isDefaultPrevented()||(t.attr("aria-expanded","false"),n.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))})))}function s(t){return this.each((function(){var n=e(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new r(this)),"string"==typeof t&&i[t].call(n)}))}r.VERSION="3.4.1",r.prototype.toggle=function(t){var n=e(this);if(!n.is(".disabled, :disabled")){var r=i(n),s=r.hasClass("open");if(o(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",o);var a={relatedTarget:this};if(r.trigger(t=e.Event("show.bs.dropdown",a)),t.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger(e.Event("shown.bs.dropdown",a))}return!1}},r.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var r=e(this);if(t.preventDefault(),t.stopPropagation(),!r.is(".disabled, :disabled")){var o=i(r),s=o.hasClass("open");if(!s&&27!=t.which||s&&27==t.which)return 27==t.which&&o.find(n).trigger("focus"),r.trigger("click");var a=" li:not(.disabled):visible a",u=o.find(".dropdown-menu"+a);if(u.length){var f=u.index(t.target);38==t.which&&f>0&&f--,40==t.which&&fdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},t.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},t.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:i},f.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var s=i[o];if("click"==s)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",u="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},f.prototype.getDefaults=function(){return f.DEFAULTS},f.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete r[i];return(n=e.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=u(n.template,n.whiteList,n.sanitizeFn)),n},f.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,(function(e,r){n[e]!=r&&(t[e]=r)})),t},f.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},f.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},f.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},f.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var n=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,u=a.test(s);u&&(s=s.replace(a,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),l=i[0].offsetWidth,h=i[0].offsetHeight;if(u){var d=s,p=this.getPosition(this.$viewport);s="bottom"==s&&c.bottom+h>p.bottom?"top":"top"==s&&c.top-hp.width?"left":"left"==s&&c.left-ls.top+s.height&&(i.top=s.top+s.height-u)}else{var f=t.left-o,c=t.left+o+n;fs.right&&(i.left=s.left+s.width-c)}return i},f.prototype.getTitle=function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)},f.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},f.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},f.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},f.prototype.enable=function(){this.enabled=!0},f.prototype.disable=function(){this.enabled=!1},f.prototype.toggleEnabled=function(){this.enabled=!this.enabled},f.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},f.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},f.prototype.sanitizeHtml=function(e){return u(e,this.options.whiteList,this.options.sanitizeFn)};var l=e.fn.tooltip;e.fn.tooltip=c,e.fn.tooltip.Constructor=f,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=l,this}}(jQuery),function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");function n(n){return this.each((function(){var r=e(this),i=r.data("bs.popover"),o="object"==typeof n&&n;!i&&/destroy|hide/.test(n)||(i||r.data("bs.popover",i=new t(this,o)),"string"==typeof n&&i[n]())}))}t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),t.prototype.constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();if(this.options.html){var r=typeof n;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===r&&(n=this.sanitizeHtml(n))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===r?"html":"append"](n)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(n);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var r=e.fn.popover;e.fn.popover=n,e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=r,this}}(jQuery),function(e){"use strict";function t(n,r){this.$body=e(document.body),this.$scrollElement=e(n).is(document.body)?e(window):e(n),this.options=e.extend({},t.DEFAULTS,r),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each((function(){var r=e(this),i=r.data("bs.scrollspy"),o="object"==typeof n&&n;i||r.data("bs.scrollspy",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,n="offset",r=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",r=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var t=e(this),i=t.data("target")||t.attr("href"),o=/^#./.test(i)&&e(i);return o&&o.length&&o.is(":visible")&&[[o[n]().top+r,i]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},t.prototype.process=function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.getScrollHeight(),n=this.options.offset+t-this.$scrollElement.height(),r=this.offsets,i=this.targets,o=this.activeTarget,s;if(this.scrollHeight!=t&&this.refresh(),e>=n)return o!=(s=i[i.length-1])&&this.activate(s);if(o&&e=r[s]&&(void 0===r[s+1]||e .active"),s=i&&e.support.transition&&(o.length&&o.hasClass("fade")||!!r.find("> .fade").length);function a(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(n[0].offsetWidth,n.addClass("in")):n.removeClass("fade"),n.parent(".dropdown-menu").length&&n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&s?o.one("bsTransitionEnd",a).emulateTransitionEnd(t.TRANSITION_DURATION):a(),o.removeClass("in")};var r=e.fn.tab;e.fn.tab=n,e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=r,this};var i=function(t){t.preventDefault(),n.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(e){"use strict";var t=function(n,r){this.options=e.extend({},t.DEFAULTS,r);var i=this.options.target===t.DEFAULTS.target?e(this.options.target):e(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(n),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.affix"),o="object"==typeof n&&n;i||r.data("bs.affix",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.RESET="affix affix-top affix-bottom",t.DEFAULTS={offset:0,target:window},t.prototype.getState=function(e,t,n,r){var i=this.$target.scrollTop(),o=this.$element.offset(),s=this.$target.height();if(null!=n&&"top"==this.affixed)return i=e-r&&"bottom"},t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var e=this.$target.scrollTop(),n=this.$element.offset();return this.pinnedOffset=n.top-e},t.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var n=this.$element.height(),r=this.options.offset,i=r.top,o=r.bottom,s=Math.max(e(document).height(),e(document.body).height());"object"!=typeof r&&(o=i=r),"function"==typeof i&&(i=r.top(this.$element)),"function"==typeof o&&(o=r.bottom(this.$element));var a=this.getState(s,n,i,o);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var u="affix"+(a?"-"+a:""),f=e.Event(u+".bs.affix");if(this.$element.trigger(f),f.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-n-o})}};var r=e.fn.affix;e.fn.affix=n,e.fn.affix.Constructor=t,e.fn.affix.noConflict=function(){return e.fn.affix=r,this},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),r=t.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),n.call(t,r)}))}))}(jQuery)}}}},fibers:{"package.json":function e(t,n,e){e.exports={name:"fibers",version:"5.0.3",main:"fibers"}},"fibers.js":function e(t,n,e,r,i){if(process.fiberLib)e.exports=process.fiberLib;else{var o=t("fs"),s=t("path"),a=t("detect-libc");Math.random();var u=s.join(i,"bin",process.platform+"-"+process.arch+"-"+process.versions.modules+("linux"===process.platform?"-"+a.family:""),"fibers");try{process.fiberLib=e.exports=t(u).Fiber}catch(c){throw console.error("## There is an issue with `node-fibers` ##\n`"+u+".node` is missing.\n\nTry running this to fix the issue: "+process.execPath+" "+i.replace(" ","\\ ")+"/build"),console.error(c.stack||c.message||c),new Error("Missing binary. See message above.")}f(e.exports)}function f(e){try{var t=process.binding("async_wrap"),n;if(t.asyncIdStackSize instanceof Function)n=t.asyncIdStackSize;else{if(void 0===t.constants.kStackLength)throw new Error("Couldn't figure out how to get async stack size");l=t.constants.kStackLength,n=function(){return t.async_hook_fields[l]}}var r=t.popAsyncContext||t.popAsyncIds,i=t.pushAsyncContext||t.pushAsyncIds,o,s;if(!r||!i)throw new Error("Push/pop do not exist");o=void 0===t.constants.kExecutionAsyncId?t.constants.kCurrentAsyncId:t.constants.kExecutionAsyncId,s=void 0===t.constants.kTriggerAsyncId?t.constants.kCurrentTriggerId:t.constants.kTriggerAsyncId;var a=t.async_id_fields||t.async_uid_fields;function u(){for(var e=n(),t=new Array(e);e>0;--e){var i=a[o];t[e-1]={asyncId:i,triggerId:a[s]},r(i)}return t}function f(e){for(var t=0;t0)i.changeLanguage(e,r);else if(0!=a[u]){a[u]=0;var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",u,!1),f.send(null),200===f.status?a[u]=1:a[u]=-1,n.addResourceBundle(e,s,JSON.parse(f.response)||{}),i.changeLanguage(e,r)}};n.changeLanguage=p;var g=function(e,t,n){return i.format(e,t,n)};n.format=g;var b=function(){return i.languages};n.getLanguages=b;var m=function(e,t){return i.loadLanguages(e,t)};n.loadLanguages=m;var v=function(e,t){return i.loadNamespaces(e,t)};n.loadNamespaces=v;var y=function(e,t){return i.on(e,t)};n.on=y;var _=function(e,t){return i.off(e,t)};n.off=_,r.__exportStar(t("./i18n/i18n"),n),r.__exportStar(t("./i18n/i18n.app"),n),r.__exportStar(t("./translations"),n)},i18n:{"i18n.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.fallbackKeys=n.getObjectI18nTemplate=n.translationI18nObjects=n.addObjectsI18n=n.translationI18nObject=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="_",a="base",u="core",f="translation",c=function(e,t){var n={lng:t,ns:f};if((0,r.exists)(e,n))return(0,r._t)(e,n)},l=function(e){return"".concat(e,"__object")},h=function(e,t){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t)},d=function(e,t){var n=h(e,t);return"".concat(n).concat("_","inlineHelpText")},p=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","group").concat("_").concat(n)},g=function(e,t,n){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t).concat("_","options").concat("_").concat(n)},b=function(e,t){return"".concat(e).concat("_","action").concat("_").concat(t)},m=function(e,t){return"".concat(e).concat("_","listview").concat("_").concat(t)},v=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},y=function(e,t,n){var r=l(t);return c(r,e)||n||""},_=function(e,t,n,r,i){var o=h(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=_(e,a,n,r,i))}return s||r||""},w=function(e,t,n,r,i){var o=d(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=w(e,a,n,r,i))}return s||r||""},k=function(e,t,n,r){var i=p(t,n);return c(i,e)||r||""},j=function(e,t,n,r,i,o){var s=g(t,n,r),a=c(s,e);if(!a){var u=v(o);u&&"base"!=t&&"core"!=t&&(a=j(e,u,n,r,i,o))}return a||i||""},x=function(e,t,n,r,i){var o=b(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=x(e,a,n,r,i))}return s||r||""},S=function(e,t,n,r,i){var o=m(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=S(e,a,n,r,i))}return s||r||""},D=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},E=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;return e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(D(e))}))):n.push(D(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},A=function(e,t,n){n.label=y(e,t,n.label),i.each(n.fields,(function(r,o){if(r.label=_(e,t,o,r.label,n.datasource),r.inlineHelpText&&(r.inlineHelpText=w(e,t,o,r.inlineHelpText,n.datasource)),r.group&&(r.group=k(e,t,r.group,r.group)),r.options){var s=[];i.each(r.options,(function(r){if(i.has(r,"value")){var a=j(e,t,o,r.value,r.label,n.datasource);s.push(i.extend({},r,{label:a}))}else s.push(r)})),r.options=s}})),i.each(n.actions,(function(r,i){r.label=x(e,t,i,r.label,n.datasource)})),i.each(n.list_views,(function(r,i){r.label=S(e,t,i,r.label,n.datasource)}))};n.translationI18nObject=A;var C=function(e){i.each(e,(function(e){(0,r.addResourceBundle)(e.lng,f,e.data,!0,!0)}))};n.addObjectsI18n=C;var M=function(e,t){i.each(t,(function(t,r){(0,n.translationI18nObject)(e,r,t)}))};n.translationI18nObjects=M;var O=function(e,t,n){var r=o(n);E(r);var s={};return s[l(t)]=y(e,t,r.label),i.each(r.fields,(function(n,o){s[h(t,o)]=_(e,t,o,n.label),n.inlineHelpText&&(s[d(t,o)]=w(e,t,o,n.inlineHelpText,r.datasource)),n.group&&(s[p(t,n.group)]=k(e,t,n.group,n.group)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[g(t,o,n.value)]=j(e,t,o,n.value,n.label))}))})),i.each(r.actions,(function(n,r){s[b(t,r)]=x(e,t,r,n.label)})),i.each(r.list_views,(function(n,r){s[m(t,r)]=S(e,t,r,n.label)})),s};n.getObjectI18nTemplate=O,n.fallbackKeys={getObjectLabelKey:l,getObjectFieldLabelKey:h,getObjectFieldInlineHelpTextLabelKey:d,getObjectFieldGroupKey:p,getObjectFieldOptionsLabelKey:g,getObjectActionLabelKey:b,getObjectListviewLabelKey:m}},"i18n.app.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.appFallbackKeys=n.getAppI18nTemplate=n.translationI18nApps=n.translationI18nMenus=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="translation",a="_",u=function(e,t){var n={lng:t,ns:s};if((0,r.exists)(e,n))return(0,r._t)(e,n)},f=function(e){return"app".concat("_").concat(e).concat("_","name")},c=function(e){return"app".concat("_").concat(e).concat("_","description")},l=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","tab_group").concat("_").concat(n)},h=function(e){return"menu".concat("_").concat(e)},d=function(e){return"tab".concat("_").concat(e)},p=function(e,t,n){var r=f(t);return u(r,e)||n||""},g=function(e,t,n){var r=c(t);return u(r,e)||n||""},b=function(e,t,n){var r=h(t);return u(r,e)||n||""},m=function(e,t,r){r.label=p(e,t,r.label||r.name),r.description=g(e,t,r.description),(0,n.translationI18nMenus)(e,r.admin_menus)},v=function(e,t){i.each(t,(function(t){var n=b(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationI18nMenus=v;var y=function(e,t){i.each(t,(function(t,n){m(e,n,t)}))};n.translationI18nApps=y;var _=function(e,t,n){var r=o(n),s={};return s[f(t)]=p(e,t,r.label||r.name),s[c(t)]=g(e,t,r.description),i.each(r.admin_menus,(function(t){s[h(t._id)]=b(e,t._id,t.label||t.name)})),s};n.getAppI18nTemplate=_,n.appFallbackKeys={getAppLabelKey:f,getAppDescriptionKey:c,getAppGroupKey:l,getMenuLabelKey:h,getTabKey:d}}},translations:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SteedosTranslationPrefixKeys=n.convertObject=void 0;var r=t("tslib"),i=t("underscore");r.__exportStar(t("./objectTranslation"),n),r.__exportStar(t("./translation"),n),r.__exportStar(t("./templates/objectTranslation"),n),r.__exportStar(t("./templates/translation"),n);var o=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},s=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(o(e))}))):n.push(o(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else if(e.options&&i.isArray(e.options))try{i.forEach(e.options,(function(e){i.isString(e)?n.push(o(e)):n.push(e)})),e.options=n}catch(r){console.error("Creator.convertFieldsOptions",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},a;n.convertObject=s,function(e){e.Object="CustomObject",e.Field="CustomField",e.Action="CustomAction",e.Listview="CustomListview",e.Permission="CustomPermission",e.ValidationRule="CustomValidationRule",e.Application="CustomApplication",e.Tab="CustomTabs",e.Permissionset="CustomPermissionset",e.Profile="CustomProfile",e.Report="CustomReport",e.Workflow="Workflow",e.Layout="Layout",e.Client="Client",e.Server="Server",e.Function="Function",e.Router="Router",e.Trigger="Trigger"}(a=n.SteedosTranslationPrefixKeys||(n.SteedosTranslationPrefixKeys={}))},"objectTranslation.js":function e(t,n,e,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addObjectsTranslation=n.getObjectTranslationTemplate=n.translationObjects=n.translationObject=n.translationObjectLabel=void 0;var i=t("underscore"),o=t("./"),s=t("../index"),a=t("./index"),u=t("../i18n/i18n"),f=t("lodash"),c=t("crypto"),l,h=(0,t("@steedos/cachers").getCacher)("lru.translations.objects");function d(e){var t;return c.createHash("md5").update(e).digest("hex")}var p=function(e,t){return"".concat(e,"_").concat(t.name,"_").concat(d(JSON.stringify(t)))},g=t("clone"),b=".",m="base",v="core",y="translation",_="object",w="field",k="listview",j="action",x=function(e,t){var n={lng:t,ns:y,keySeparator:!1};if((0,s.exists)(e,n))return(0,s._t)(e,n)},S=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},D=function(e){switch(e){case"object":return o.SteedosTranslationPrefixKeys.Object;case"field":return o.SteedosTranslationPrefixKeys.Field;case"listview":return o.SteedosTranslationPrefixKeys.Listview;case"action":return o.SteedosTranslationPrefixKeys.Action;default:return"CustomLabels"}},E=function(e){var t;return[D(),e].join(".")},A=function(e){var t;return[D("object"),e,"label"].join(".")},C=function(e){var t;return[D("object"),e,"description"].join(".")},M=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"label"].join(".")},O=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"help"].join(".")},T=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"description"].join(".")},B=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_"),r;return[D("field"),e,"group",n].join(".")},I=function(e,t,n){var r;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"options",n].join(".")},R=function(e,t){var n;return[D("action"),e,t].join(".")},F=function(e,t){var n;return[D("listview"),e,t].join(".")},P=function(e,t,n){var r,i=[A(t)],o=u.fallbackKeys.getObjectLabelKey(t);return o&&i.push(o),x(i,e)||n||""};n.translationObjectLabel=P;var N=function(e,t,n){var r=C(t);return x(r,e)||n||""},L=function(e,t,n,r,i,o){var s,a=[M(t,n)],f=u.fallbackKeys.getObjectFieldLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=L(e,l,n,r,i))}return c||r||""},z=function(e,t,n,r,i,o){var s,a=[O(t,n)],f=u.fallbackKeys.getObjectFieldInlineHelpTextLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=z(e,l,n,r,i))}return c||r||""},U=function(e,t,n,r,i,o){var s=T(t,n),a,u=x([s],e);if(1!=o&&!u){var f=S(i);f&&"base"!=t&&"core"!=t&&(u=U(e,f,n,r,i))}return u||r||""},q=function(e,t,n,r,i,o){var s,a=[B(t,n)],f=u.fallbackKeys.getObjectFieldGroupKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=q(e,l,n,r,i))}return c||r||""},$=function(e,t,n,r,i,o,s){var a,f=[I(t,n,r)],c=u.fallbackKeys.getObjectFieldOptionsLabelKey(t,n,r);c&&f.push(c);var l=x(f,e);if(1!=s&&!l){var h=S(o);h&&"base"!=t&&"core"!=t&&(l=$(e,h,n,r,i,o))}return l||i||""},H=function(e,t,n,r,i,o){var s,a=[R(t,n)],f=u.fallbackKeys.getObjectActionLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=H(e,l,n,r,i))}return c||r||""},W=function(e,t,n,r,i,o){var s,a=[F(t,n)],f=u.fallbackKeys.getObjectListviewLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=W(e,l,n,r,i))}return c||r||""},Y=function(e,t,r,o,s){void 0===s&&(s=!1);var u=p(e,r);"test_obj_layout1"===t&&console.log("translationObject",t,u);var c=h.get(u);if(c)return Object.assign(r,(0,f.cloneDeep)(c));o&&(0,a.convertObject)(r),r.label=(0,n.translationObjectLabel)(e,t,r.label),r.description=N(e,t,r.description),i.each(r.fields,(function(n,o){if(n.label=L(e,t,o,n.label,r.datasource,s),n.inlineHelpText&&(n.inlineHelpText=z(e,t,o,n.inlineHelpText,r.datasource,s)),n.group&&(n.group=q(e,t,n.group,n.group,r.datasource,s)),n.options){var a=[];i.each(n.options,(function(n){if(i.has(n,"value")){var u=$(e,t,o,n.value,n.label,r.datasource,s);a.push(i.extend({},n,{label:u}))}else a.push(n)})),n.options=a}})),i.each(r.actions,(function(n,i){n.label=H(e,t,i,n.label,r.datasource,s)})),i.each(r.list_views,(function(n,i){n.label=W(e,t,i,n.label,r.datasource,s)})),h.set(u,(0,f.cloneDeep)(r))};n.translationObject=Y;var V=function(e,t){i.each(t,(function(t,r){(0,n.translationObject)(e,r,t)}))};n.translationObjects=V;var K=function(e,t,r){var o=g(r);(0,a.convertObject)(o);var s={};return s[A(t)]=(0,n.translationObjectLabel)(e,t,o.label),s[C(t)]=N(e,t,o.description),i.each(o.fields,(function(n,r){s[M(t,r)]=L(e,t,r,n.label),n.inlineHelpText&&(s[O(t,r)]=z(e,t,r,n.inlineHelpText,o.datasource)),n.description&&(s[T(t,r)]=U(e,t,r,n.description,o.datasource)),n.group&&(s[B(t,n.group)]=q(e,t,n.group,n.group,o.datasource)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[I(t,r,n.value)]=$(e,t,r,n.value,n.label))}))})),i.each(o.actions,(function(n,r){s[R(t,r)]=H(e,t,r,n.label)})),i.each(o.list_views,(function(n,r){s[F(t,r)]=W(e,t,r,n.label)})),s};function G(e,t){var n=g(e);(0,a.convertObject)(n);var r={},o=n.name;return o||console.error("Error: Invalid objectTranslation:"+t),r[A(o)]=n.label,r[C(o)]=n.description,i.each(n.fields,(function(e,t){r[M(o,t)]=e.label,e.help&&(r[O(o,t)]=e.help),e.description&&(r[T(o,t)]=e.description),e.options&&i.each(e.options,(function(e){i.has(e,"value")&&(r[I(o,t,e.value)]=e.label)}))})),i.each(n.groups,(function(e,t){r[B(o,t)]=e})),i.each(n.actions,(function(e,t){r[R(o,t)]=e.label})),i.each(n.listviews,(function(e,t){r[F(o,t)]=e.label})),i.each(n.CustomLabels,(function(e,t){r[E(t)]=e})),r}n.getObjectTranslationTemplate=K;var X=function(e){i.each(e,(function(e){var t=G(e.data,e.__filename);(0,s.addResourceBundle)(e.lng,y,t,!0,!0)}))};n.addObjectsTranslation=X},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addTranslations=n.convertTranslation=n.convertTranslationData=n.getAppTranslationTemplate=n.translationApps=n.translationMenus=n.translationApp=n.translationTabLabel=n.translationTabGroup=void 0;var r=t("../index"),i=t("underscore"),o=t("./"),s=t("../i18n/i18n.app"),a=t("clone"),u="translation",f=".",c="app",l="menu",h="tab",d=function(e){switch(e){case"app":return o.SteedosTranslationPrefixKeys.Application;case"tab":return o.SteedosTranslationPrefixKeys.Tab;default:return"CustomLabels"}},p=function(e){var t;return[d(),e].join(".")},g=function(e,t){var n={lng:t,ns:u,keySeparator:!1};if((0,r.exists)(e,n))return(0,r._t)(e,n)},b=function(e){var t;return[d("app"),e,"name"].join(".")},m=function(e){var t;return[d("app"),e,"description"].join(".")},v=function(e,t){var n,r;return[d("app"),e,"groups",t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_")].join(".")},y=function(e){var t;return[d("menu"),"menu_".concat(e)].join(".")},_=function(e){var t;return[d("tab"),e].join(".")},w=function(e,t,n){var r,i=[b(t)],o=s.appFallbackKeys.getAppLabelKey(t);return o&&i.push(o),g(i,e)||n||""},k=function(e,t,n){var r,i=[m(t)],o=s.appFallbackKeys.getAppDescriptionKey(t);return o&&i.push(o),g(i,e)||n||""},j=function(e,t,n,r){var i,o=[v(t,n)],a=s.appFallbackKeys.getAppGroupKey(t,n);return a&&o.push(a),g(o,e)||r||""};n.translationTabGroup=j;var x=function(e,t,n){var r,i=[y(t)],o=s.appFallbackKeys.getMenuLabelKey(t);return o&&i.push(o),g(i,e)||n||""},S=function(e,t,n){var r,i=[_(t)],o=s.appFallbackKeys.getTabKey(t);return o&&i.push(o),g(i,e)||n||""};n.translationTabLabel=S;var D=function(e,t,r){r.label=w(e,t,r.label||r.name),r.description=k(e,t,r.description),i.each(r.tab_groups,(function(i,o){r.tab_groups[o].id=i.id||i.group_name,r.tab_groups[o].group_name=(0,n.translationTabGroup)(e,t,i.group_name,i.group_name)})),(0,n.translationMenus)(e,r.admin_menus)};n.translationApp=D;var E=function(e,t){i.each(t,(function(t){var n=x(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationMenus=E;var A=function(e,t){i.each(t,(function(t,r){(0,n.translationApp)(e,r,t)}))};n.translationApps=A;var C=function(e,t,n){var r=a(n),o={};return o[b(t)]=w(e,t,r.label||r.name),o[m(t)]=k(e,t,r.description),i.each(r.admin_menus,(function(t){o[y(t._id)]=x(e,t._id,t.label||t.name)})),o};n.getAppTranslationTemplate=C;var M=function(e,t,n){i.isArray(n)?i.each(n,(function(e){M(e,"",e)})):n&&i.each(i.keys(n),(function(r){var o=t?"".concat(t,".").concat(r):r,s=n[r];"object"==typeof s?i.isArray(s)?i.each(s,(function(e){M(e,o,s)})):M(e,o,s):e[o]=s}))};function O(e){for(var t in e)"object"==typeof e[t]&&M(e,t,e[t]);return e}n.convertTranslationData=O;var T=function(e){var t=a(e),n={};return i.each(t.CustomApplications,(function(e,t){n[b(t)]=e.name,n[m(t)]=e.description,i.each(e.groups,(function(e,r){n[v(t,r)]=e}))})),i.each(t.CustomTabs,(function(e,t){n[_(t)]=e})),i.each(t.CustomLabels,(function(e,t){var r;if("simpleschema"!=t&&i.isObject(e)){var o=O(((r={})[t]=e,r));i.each(o,(function(e,t){i.isObject(e)||(n[p(t)]=e)}))}else n[p(t)]=e})),n};n.convertTranslation=T;var B=function(e){i.each(e,(function(e){var t=(0,n.convertTranslation)(e.data);(0,r.addResourceBundle)(e.lng,u,t,!0,!0)}))};n.addTranslations=B},templates:{"objectTranslation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getObjectMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]="help"===e?t.inlineHelpText||"":t[e]||""})),n}function a(e){return s(["label","description"],e)}function u(e){switch(e.type){case"select":return s(["label","help","options","description"],e);default:return s(["label","help","description"],e)}}function f(e){return s(["label"],e)}function c(e){return s(["label"],e)}function l(e){var t={};return r.each(e,(function(e,n){t[n]=u(e)})),t}function h(e){var t={};return r.each(e,(function(e,n){t[n]=c(e)})),t}function d(e){var t={};return r.each(e,(function(e,n){t[n]=f(e)})),t}function p(e,t){var n={};return r.each(e,(function(e,r){if(e.group){var i=e.group.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");n[i]=t[r].group}})),n}var g=function(e,t,n,s){void 0===s&&(s=!1);var u=o(n);1!=s&&(0,i.translationObject)(e,t,u,!0,s);var f=Object.assign({},a(u));f=Object.assign({},f,{fields:l(u.fields)});var c=p(n.fields,u.fields);r.isEmpty(c)||(f=Object.assign({},f,{groups:c}));var g=d(u.list_views);r.isEmpty(g)||(f=Object.assign({},f,{listviews:g}));var b=h(u.actions);return r.isEmpty(b)||(f=Object.assign({},f,{actions:b})),Object.assign({name:t},f)};n.getObjectMetadataTranslationTemplate=g},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getAppMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]=t[e]||""})),n}function a(e){var t={groups:{}};return e?(r.each(e,(function(e){var n=e.group_name.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t.groups[n]=e.group_name})),t):{}}var u=function(e){return Object.assign({},s(["name","description"],e),a(e.tab_groups))},f=function(e){var t={};return r.each(e,(function(e,n){t[n]=n})),t},c=function(e){var t={};return r.each(e,(function(e){var n=e.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t[n]=e})),t},l=function(e,t,n){var r,s=o(n);(0,i.translationApp)(e,t,s);var a={},l;return s.tab_items?a=f(s.tab_items):s.tabs&&(a=c(s.tabs)),Object.assign({},{CustomApplications:(r={},r[t]=u(s),r)},{CustomTabs:a})};n.getAppMetadataTranslationTemplate=l}}}},node_modules:{i18next:{"package.json":function e(t,n,e){e.exports={name:"i18next",version:"19.9.2",module:"./dist/esm/i18next.js",main:"./dist/cjs/i18next.js"}},dist:{esm:{"i18next.js":function e(t,n,e){let r,i,o,s,a,u,f,c;e.link("@babel/runtime/helpers/esm/typeof",{default(e){r=e}},0),e.link("@babel/runtime/helpers/esm/objectSpread",{default(e){i=e}},1),e.link("@babel/runtime/helpers/esm/classCallCheck",{default(e){o=e}},2),e.link("@babel/runtime/helpers/esm/createClass",{default(e){s=e}},3),e.link("@babel/runtime/helpers/esm/possibleConstructorReturn",{default(e){a=e}},4),e.link("@babel/runtime/helpers/esm/getPrototypeOf",{default(e){u=e}},5),e.link("@babel/runtime/helpers/esm/assertThisInitialized",{default(e){f=e}},6),e.link("@babel/runtime/helpers/esm/inherits",{default(e){c=e}},7);var l={type:"logger",log:function e(t){this.output("log",t)},warn:function e(t){this.output("warn",t)},error:function e(t){this.output("error",t)},output:function e(t,n){console&&console[t]&&console[t].apply(console,n)}},h,d=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.init(t,n)}return s(e,[{key:"init",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||l,this.options=n,this.debug=n.debug}},{key:"setDebug",value:function e(t){this.debug=t}},{key:"log",value:function e(){for(var t=arguments.length,n=new Array(t),r=0;r1?n-1:0),i=1;i-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(i())return{};var s=r(o.shift());!e[s]&&n&&(e[s]=new n),e=Object.prototype.hasOwnProperty.call(e,s)?e[s]:{}}return i()?{}:{obj:e,k:r(o.shift())}}function y(e,t,n){var r=v(e,t,Object),i,o;r.obj[r.k]=n}function _(e,t,n,r){var i=v(e,t,Object),o=i.obj,s=i.k;o[s]=o[s]||[],r&&(o[s]=o[s].concat(n)),r||o[s].push(n)}function w(e,t){var n=v(e,t),r=n.obj,i=n.k;if(r)return r[i]}function k(e,t,n){var r=w(e,n);return void 0!==r?r:w(t,n)}function j(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):j(e[r],t[r],n):e[r]=t[r]);return e}function x(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var S={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function D(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return S[e]})):e}var E="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,A=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n}return c(t,e),s(t,[{key:"addNamespaces",value:function e(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function e(t){var n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,s=[t,n];return r&&"string"!=typeof r&&(s=s.concat(r)),r&&"string"==typeof r&&(s=s.concat(o?r.split(o):r)),t.indexOf(".")>-1&&(s=t.split(".")),w(this.data,s)}},{key:"addResource",value:function e(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},s=this.options.keySeparator;void 0===s&&(s=".");var a=[t,n];r&&(a=a.concat(s?r.split(s):r)),t.indexOf(".")>-1&&(i=n,n=(a=t.split("."))[1]),this.addNamespaces(n),y(this.data,a,i),o.silent||this.emit("added",t,n,r,i)}},{key:"addResources",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in r)"string"!=typeof r[o]&&"[object Array]"!==Object.prototype.toString.apply(r[o])||this.addResource(t,n,o,r[o],{silent:!0});i.silent||this.emit("added",t,n,r)}},{key:"addResourceBundle",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},u=[t,n];t.indexOf(".")>-1&&(o=r,r=n,n=(u=t.split("."))[1]),this.addNamespaces(n);var f=w(this.data,u)||{};o?j(f,r,s):f=i({},f,r),y(this.data,u,f),a.silent||this.emit("added",t,n,r)}},{key:"removeResourceBundle",value:function e(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}},{key:"hasResourceBundle",value:function e(t,n){return void 0!==this.getResource(t,n)}},{key:"getResourceBundle",value:function e(t,n){return n||(n=this.options.defaultNS),"v1"===this.options.compatibilityAPI?i({},{},this.getResource(t,n)):this.getResource(t,n)}},{key:"getDataByLanguage",value:function e(t){return this.data[t]}},{key:"toJSON",value:function e(){return this.data}}]),t}(p),C={processors:{},addPostProcessor:function e(t){this.processors[t.name]=t},handle:function e(t,n,r,i,o){var s=this;return t.forEach((function(e){s.processors[e]&&(n=s.processors[e].process(n,r,i,o))})),n}},M={},O=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),m(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,f(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=d.create("translator"),n}return c(t,e),s(t,[{key:"changeLanguage",value:function e(t){t&&(this.language=t)}},{key:"exists",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},r=this.resolve(t,n);return r&&void 0!==r.res}},{key:"extractFromKey",value:function e(t,n){var r=void 0!==n.nsSeparator?n.nsSeparator:this.options.nsSeparator;void 0===r&&(r=":");var i=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,o=n.ns||this.options.defaultNS;if(r&&t.indexOf(r)>-1){var s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:o};var a=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),t=a.join(i)}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}}},{key:"translate",value:function e(n,o,s){var a=this;if("object"!==r(o)&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),o||(o={}),null==n)return"";Array.isArray(n)||(n=[String(n)]);var u=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,f=this.extractFromKey(n[n.length-1],o),c=f.key,l=f.namespaces,h=l[l.length-1],d=o.lng||this.language,p=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var g=o.nsSeparator||this.options.nsSeparator;return h+g+c}return c}var b=this.resolve(n,o),m=b&&b.res,v=b&&b.usedKey||c,y=b&&b.exactUsedKey||c,_=Object.prototype.toString.apply(m),w=["[object Number]","[object Function]","[object RegExp]"],k=void 0!==o.joinArrays?o.joinArrays:this.options.joinArrays,j=!this.i18nFormat||this.i18nFormat.handleAsObject,x="string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m;if(j&&m&&x&&w.indexOf(_)<0&&("string"!=typeof k||"[object Array]"!==_)){if(!o.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,m,o):"key '".concat(c," (").concat(this.language,")' returned an object instead of string.");if(u){var S="[object Array]"===_,D=S?[]:{},E=S?y:v;for(var A in m)if(Object.prototype.hasOwnProperty.call(m,A)){var C="".concat(E).concat(u).concat(A);D[A]=this.translate(C,i({},o,{joinArrays:!1,ns:l})),D[A]===C&&(D[A]=m[A])}m=D}}else if(j&&"string"==typeof k&&"[object Array]"===_)(m=m.join(k))&&(m=this.extendTranslation(m,n,o,s));else{var M=!1,O=!1,T=void 0!==o.count&&"string"!=typeof o.count,B=t.hasDefaultValue(o),I=T?this.pluralResolver.getSuffix(d,o.count):"",R=o["defaultValue".concat(I)]||o.defaultValue;!this.isValidLookup(m)&&B&&(M=!0,m=R),this.isValidLookup(m)||(O=!0,m=c);var F=B&&R!==m&&this.options.updateMissing;if(O||M||F){if(this.logger.log(F?"updateKey":"missingKey",d,h,c,F?R:m),u){var P=this.resolve(c,i({},o,{keySeparator:!1}));P&&P.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var N=[],L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if("fallback"===this.options.saveMissingTo&&L&&L[0])for(var z=0;z1&&void 0!==arguments[1]?arguments[1]:{},i,o,s,a,u;return"string"==typeof t&&(t=[t]),t.forEach((function(e){if(!n.isValidLookup(i)){var t=n.extractFromKey(e,r),f=t.key;o=f;var c=t.namespaces;n.options.fallbackNS&&(c=c.concat(n.options.fallbackNS));var l=void 0!==r.count&&"string"!=typeof r.count,h=void 0!==r.context&&"string"==typeof r.context&&""!==r.context,d=r.lngs?r.lngs:n.languageUtils.toResolveHierarchy(r.lng||n.language,r.fallbackLng);c.forEach((function(e){n.isValidLookup(i)||(u=e,!M["".concat(d[0],"-").concat(e)]&&n.utils&&n.utils.hasLoadedNamespace&&!n.utils.hasLoadedNamespace(u)&&(M["".concat(d[0],"-").concat(e)]=!0,n.logger.warn('key "'.concat(o,'" for languages "').concat(d.join(", "),'" won\'t get resolved as namespace "').concat(u,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),d.forEach((function(t){if(!n.isValidLookup(i)){a=t;var o=f,u=[o],c,d;if(n.i18nFormat&&n.i18nFormat.addLookupKeys)n.i18nFormat.addLookupKeys(u,f,t,e,r);else l&&(c=n.pluralResolver.getSuffix(t,r.count)),l&&h&&u.push(o+c),h&&u.push(o+="".concat(n.options.contextSeparator).concat(r.context)),l&&u.push(o+=c);for(;d=u.pop();)n.isValidLookup(i)||(s=d,i=n.getResource(t,e,d,r))}})))}))}})),{res:i,usedKey:o,exactUsedKey:s,usedLng:a,usedNS:u}}},{key:"isValidLookup",value:function e(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}}],[{key:"hasDefaultValue",value:function e(t){var n="defaultValue";for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&void 0!==t[r])return!0;return!1}}]),t}(p);function T(e){return e.charAt(0).toUpperCase()+e.slice(1)}var B=function(){function e(t){o(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=d.create("languageUtils")}return s(e,[{key:"getScriptPartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return null;var n=t.split("-");return 2===n.length?null:(n.pop(),"x"===n[n.length-1].toLowerCase()?null:this.formatLanguageCode(n.join("-")))}},{key:"getLanguagePartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return t;var n=t.split("-");return this.formatLanguageCode(n[0])}},{key:"formatLanguageCode",value:function e(t){if("string"==typeof t&&t.indexOf("-")>-1){var n=["hans","hant","latn","cyrl","cans","mong","arab"],r=t.split("-");return this.options.lowerCaseLng?r=r.map((function(e){return e.toLowerCase()})):2===r.length?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase()))):3===r.length&&(r[0]=r[0].toLowerCase(),2===r[1].length&&(r[1]=r[1].toUpperCase()),"sgn"!==r[0]&&2===r[2].length&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=T(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function e(t){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(t)}},{key:"isSupportedCode",value:function e(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}},{key:"getBestMatchFromCodes",value:function e(t){var n=this,r;return t?(t.forEach((function(e){if(!r){var t=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(t)||(r=t)}})),!r&&this.options.supportedLngs&&t.forEach((function(e){if(!r){var t=n.getLanguagePartFromCode(e);if(n.isSupportedCode(t))return r=t;r=n.options.supportedLngs.find((function(e){if(0===e.indexOf(t))return e}))}})),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r):null}},{key:"getFallbackCodes",value:function e(t,n){if(!t)return[];if("function"==typeof t&&(t=t(n)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!n)return t.default||[];var r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}},{key:"toResolveHierarchy",value:function e(t,n){var r=this,i=this.getFallbackCodes(n||this.options.fallbackLng||[],t),o=[],s=function e(t){t&&(r.isSupportedCode(t)?o.push(t):r.logger.warn("rejecting language code not found in supportedLngs: ".concat(t)))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&s(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&s(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&s(this.getLanguagePartFromCode(t))):"string"==typeof t&&s(this.formatLanguageCode(t)),i.forEach((function(e){o.indexOf(e)<0&&s(r.formatLanguageCode(e))})),o}}]),e}(),I=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],R={1:function e(t){return Number(t>1)},2:function e(t){return Number(1!=t)},3:function e(t){return 0},4:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function e(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function e(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function e(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function e(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function e(t){return Number(t>=2)},10:function e(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function e(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function e(t){return Number(t%10!=1||t%100==11)},13:function e(t){return Number(0!==t)},14:function e(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function e(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function e(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function e(t){return Number(0==t?0:1==t?1:2)},19:function e(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function e(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function e(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function e(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}};function F(){var e={};return I.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:R[t.fc]}}))})),e}var P=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.languageUtils=t,this.options=n,this.logger=d.create("pluralResolver"),this.rules=F()}return s(e,[{key:"addRule",value:function e(t,n){this.rules[t]=n}},{key:"getRule",value:function e(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function e(t){var n=this.getRule(t);return n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function e(t,n){return this.getSuffixes(t).map((function(e){return n+e}))}},{key:"getSuffixes",value:function e(t){var n=this,r=this.getRule(t);return r?r.numbers.map((function(e){return n.getSuffix(t,e)})):[]}},{key:"getSuffix",value:function e(t,n){var r=this,i=this.getRule(t);if(i){var o=i.noAbs?i.plurals(n):i.plurals(Math.abs(n)),s=i.numbers[o];this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]&&(2===s?s="plural":1===s&&(s=""));var a=function e(){return r.options.prepend&&s.toString()?r.options.prepend+s.toString():s.toString()};return"v1"===this.options.compatibilityJSON?1===s?"":"number"==typeof s?"_plural_".concat(s.toString()):a():"v2"===this.options.compatibilityJSON?a():this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),""}}]),e}(),N=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,e),this.logger=d.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return s(e,[{key:"init",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escape=void 0!==n.escape?n.escape:D,this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.useRawValueToEscape=void 0!==n.useRawValueToEscape&&n.useRawValueToEscape,this.prefix=n.prefix?x(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?x(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?x(n.nestingPrefix):n.nestingPrefixEscaped||x("$t("),this.nestingSuffix=n.nestingSuffix?x(n.nestingSuffix):n.nestingSuffixEscaped||x(")"),this.nestingOptionsSeparator=n.nestingOptionsSeparator?n.nestingOptionsSeparator:n.nestingOptionsSeparator||",",this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.alwaysFormat=void 0!==n.alwaysFormat&&n.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function e(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function e(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,"g");var n="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(n,"g");var r="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(r,"g")}},{key:"interpolate",value:function e(t,n,r,i){var o=this,s,a,u,f=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var l=function e(t){if(t.indexOf(o.formatSeparator)<0){var s=k(n,f,t);return o.alwaysFormat?o.format(s,void 0,r):s}var a=t.split(o.formatSeparator),u=a.shift().trim(),c=a.join(o.formatSeparator).trim();return o.format(k(n,f,u),c,r,i)};this.resetRegExp();var h=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&i.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,p;return[{regex:this.regexpUnescape,safeValue:function e(t){return c(t)}},{regex:this.regexp,safeValue:function e(t){return o.escapeValue?c(o.escape(t)):c(t)}}].forEach((function(e){for(u=0;s=e.regex.exec(t);){if(void 0===(a=l(s[1].trim())))if("function"==typeof h){var n=h(t,s,i);a="string"==typeof n?n:""}else{if(d){a=s[0];continue}o.logger.warn("missed to pass in variable ".concat(s[1]," for interpolating ").concat(t)),a=""}else"string"==typeof a||o.useRawValueToEscape||(a=b(a));if(t=t.replace(s[0],e.safeValue(a)),e.regex.lastIndex=0,++u>=o.maxReplaces)break}})),t}},{key:"nest",value:function e(t,n){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s,a,u=i({},o);function f(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),o="{".concat(r[1]);e=r[0],o=(o=this.interpolate(o,u)).replace(/'/g,'"');try{u=JSON.parse(o),t&&(u=i({},t,u))}catch(s){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),s),"".concat(e).concat(n).concat(o)}return delete u.defaultValue,e}for(u.applyPostProcessor=!1,delete u.defaultValue;s=this.nestingRegexp.exec(t);){var c=[],l=!1;if(s[0].includes(this.formatSeparator)&&!/{.*}/.test(s[1])){var h=s[1].split(this.formatSeparator).map((function(e){return e.trim()}));s[1]=h.shift(),c=h,l=!0}if((a=n(f.call(this,s[1].trim(),u),u))&&s[0]===t&&"string"!=typeof a)return a;"string"!=typeof a&&(a=b(a)),a||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(t)),a=""),l&&(a=c.reduce((function(e,t){return r.format(e,t,o.lng,o)}),a.trim())),t=t.replace(s[0],a),this.regexp.lastIndex=0}return t}}]),e}();function L(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}var z=function(e){function t(e,n,r){var i,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return o(this,t),i=a(this,u(t).call(this)),E&&p.call(f(i)),i.backend=e,i.store=n,i.services=r,i.languageUtils=r.languageUtils,i.options=s,i.logger=d.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(r,s.backend,s),i}return c(t,e),s(t,[{key:"queueLoad",value:function e(t,n,r,i){var o=this,s=[],a=[],u=[],f=[];return t.forEach((function(e){var t=!0;n.forEach((function(n){var i="".concat(e,"|").concat(n);!r.reload&&o.store.hasResourceBundle(e,n)?o.state[i]=2:o.state[i]<0||(1===o.state[i]?a.indexOf(i)<0&&a.push(i):(o.state[i]=1,t=!1,a.indexOf(i)<0&&a.push(i),s.indexOf(i)<0&&s.push(i),f.indexOf(n)<0&&f.push(n)))})),t||u.push(e)})),(s.length||a.length)&&this.queue.push({pending:a,loaded:{},errors:[],callback:i}),{toLoad:s,pending:a,toLoadLanguages:u,toLoadNamespaces:f}}},{key:"loaded",value:function e(t,n,r){var i=t.split("|"),o=i[0],s=i[1];n&&this.emit("failedLoading",o,s,n),r&&this.store.addResourceBundle(o,s,r),this.state[t]=n?-1:2;var e={};this.queue.forEach((function(r){_(r.loaded,[o],s),L(r.pending,t),n&&r.errors.push(n),0!==r.pending.length||r.done||(Object.keys(r.loaded).forEach((function(t){e[t]||(e[t]=[]),r.loaded[t].length&&r.loaded[t].forEach((function(n){e[t].indexOf(n)<0&&e[t].push(n)}))})),r.done=!0,r.errors.length?r.callback(r.errors):r.callback())})),this.emit("loaded",e),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function e(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[r](t,n,(function(e,u){e&&u&&o<5?setTimeout((function(){i.read.call(i,t,n,r,o+1,2*s,a)}),s):a(e,u)})):a(null,{})}},{key:"prepareLoading",value:function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof n&&(n=[n]);var s=this.queueLoad(t,n,i,o);if(!s.toLoad.length)return s.pending.length||o(),null;s.toLoad.forEach((function(e){r.loadOne(e)}))}},{key:"load",value:function e(t,n,r){this.prepareLoading(t,n,{},r)}},{key:"reload",value:function e(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}},{key:"loadOne",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=t.split("|"),o=i[0],s=i[1];this.read(o,s,"read",void 0,void 0,(function(e,i){e&&n.logger.warn("".concat(r,"loading namespace ").concat(s," for language ").concat(o," failed"),e),!e&&i&&n.logger.log("".concat(r,"loaded namespace ").concat(s," for language ").concat(o),i),n.loaded(t,e,i)}))}},{key:"saveMissing",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)?this.logger.warn('did not save key "'.concat(r,'" as the namespace "').concat(n,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=r&&""!==r&&(this.backend&&this.backend.create&&this.backend.create(t,n,r,o,null,i({},a,{isUpdate:s})),t&&t[0]&&this.store.addResource(t[0],n,r,o))}}]),t}(p);function U(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function e(t){var n={};if("object"===r(t[1])&&(n=t[1]),"string"==typeof t[1]&&(n.defaultValue=t[1]),"string"==typeof t[2]&&(n.tDescription=t[2]),"object"===r(t[2])||"object"===r(t[3])){var i=t[3]||t[2];Object.keys(i).forEach((function(e){n[e]=i[e]}))}return n},interpolation:{escapeValue:!0,format:function e(t,n,r,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function q(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function $(){}var H,W=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(o(this,t),e=a(this,u(t).call(this)),E&&p.call(f(e)),e.options=q(n),e.services={},e.logger=d,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),a(e,f(e));setTimeout((function(){e.init(n,r)}),0)}return e}return c(t,e),s(t,[{key:"init",value:function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;function o(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof n&&(r=n,n={}),n.whitelist&&!n.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),n.nonExplicitWhitelist&&!n.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=i({},U(),this.options,q(n)),this.format=this.options.interpolation.format,r||(r=$),!this.options.isClone){this.modules.logger?d.init(o(this.modules.logger),this.options):d.init(null,this.options);var s=new B(this.options);this.store=new A(this.options.resources,this.options);var a=this.services;a.logger=d,a.resourceStore=this.store,a.languageUtils=s,a.pluralResolver=new P(s,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new N(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new z(o(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1?n-1:0),i=1;i0&&"dev"!==u[0]&&(this.options.lng=u[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var f=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];f.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments)}}));var c=["addResource","addResources","addResourceBundle","removeResourceBundle"];c.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments),t}}));var l=g(),h=function e(){var n=function e(n,i){t.isInitialized&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(i),r(n,i)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return n(null,t.t.bind(t));t.changeLanguage(t.options.lng,n)};return this.options.resources||!this.options.initImmediate?h():setTimeout(h,0),l}},{key:"loadResources",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,i=r,o="string"==typeof t?t:this.language;if("function"==typeof t&&(i=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return i();var s=[],a=function e(t){var r;t&&n.services.languageUtils.toResolveHierarchy(t).forEach((function(e){s.indexOf(e)<0&&s.push(e)}))};if(o)a(o);else{var u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(s,this.options.ns,i)}else i(null)}},{key:"reloadResources",value:function e(t,n,r){var i=g();return t||(t=this.languages),n||(n=this.options.ns),r||(r=$),this.services.backendConnector.reload(t,n,(function(e){i.resolve(),r(e)})),i}},{key:"use",value:function e(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&C.addPostProcessor(t),"3rdParty"===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function e(t,n){var r=this;this.isLanguageChangingTo=t;var i=g();this.emit("languageChanging",t);var o=function e(t,o){o?(r.language=o,r.languages=r.services.languageUtils.toResolveHierarchy(o),r.translator.changeLanguage(o),r.isLanguageChangingTo=void 0,r.emit("languageChanged",o),r.logger.log("languageChanged",o)):r.isLanguageChangingTo=void 0,i.resolve((function(){return r.t.apply(r,arguments)})),n&&n(t,(function(){return r.t.apply(r,arguments)}))},s=function e(t){var n="string"==typeof t?t:r.services.languageUtils.getBestMatchFromCodes(t);n&&(r.language||(r.language=n,r.languages=r.services.languageUtils.toResolveHierarchy(n)),r.translator.language||r.translator.changeLanguage(n),r.services.languageDetector&&r.services.languageDetector.cacheUserLanguage(n)),r.loadResources(n,(function(e){o(e,n)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(s):s(t):s(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function e(t,n){var o=this,s=function e(t,n){var s;if("object"!==r(n)){for(var a=arguments.length,u=new Array(a>2?a-2:0),f=2;f1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.languages[0],o=!!this.options&&this.options.fallbackLng,s=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var a=function e(t,r){var i=n.services.backendConnector.state["".concat(t,"|").concat(r)];return-1===i||2===i};if(r.precheck){var u=r.precheck(this,a);if(void 0!==u)return u}return!!this.hasResourceBundle(i,t)||(!this.services.backendConnector.backend||!(!a(i,t)||o&&!a(s,t)))}},{key:"loadNamespaces",value:function e(t,n){var r=this,i=g();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((function(e){r.options.ns.indexOf(e)<0&&r.options.ns.push(e)})),this.loadResources((function(e){i.resolve(),n&&n(e)})),i):(n&&n(),Promise.resolve())}},{key:"loadLanguages",value:function e(t,n){var r=g();"string"==typeof t&&(t=[t]);var i=this.options.preload||[],o=t.filter((function(e){return i.indexOf(e)<0}));return o.length?(this.options.preload=i.concat(o),this.loadResources((function(e){r.resolve(),n&&n(e)})),r):(n&&n(),Promise.resolve())}},{key:"dir",value:function e(t){return t||(t=this.languages&&this.languages.length>0?this.languages[0]:this.language),t?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr":"rtl";var n}},{key:"createInstance",value:function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new t(n,r)}},{key:"cloneInstance",value:function e(){var n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,s=i({},this.options,r,{isClone:!0}),a=new t(s),u=["store","services","language"];return u.forEach((function(e){a[e]=n[e]})),a.services=i({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new O(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;rr,root:()=>i,ArrayProto:()=>o,ObjProto:()=>s,SymbolProto:()=>a,push:()=>u,slice:()=>f,toString:()=>c,hasOwnProperty:()=>l,supportsArrayBuffer:()=>h,supportsDataView:()=>d,nativeIsArray:()=>p,nativeKeys:()=>g,nativeCreate:()=>b,nativeIsView:()=>m,_isNaN:()=>v,_isFinite:()=>y,hasEnumBug:()=>_,nonEnumerableProps:()=>w,MAX_ARRAY_INDEX:()=>k});var r="1.13.4",i="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},o=Array.prototype,s=Object.prototype,a="undefined"!=typeof Symbol?Symbol.prototype:null,u=o.push,f=o.slice,c=s.toString,l=s.hasOwnProperty,h="undefined"!=typeof ArrayBuffer,d="undefined"!=typeof DataView,p=Array.isArray,g=Object.keys,b=Object.create,m=h&&ArrayBuffer.isView,v=isNaN,y=isFinite,_=!{toString:null}.propertyIsEnumerable("toString"),w=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],k=Math.pow(2,53)-1},"restArguments.js":function e(t,n,e){function r(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;ir})},"isObject.js":function e(t,n,e){function r(e){var t=typeof e;return"function"===t||"object"===t&&!!e}e.export({default:()=>r})},"isNull.js":function e(t,n,e){function r(e){return null===e}e.export({default:()=>r})},"isUndefined.js":function e(t,n,e){function r(e){return void 0===e}e.export({default:()=>r})},"isBoolean.js":function e(t,n,e){let r;function i(e){return!0===e||!1===e||"[object Boolean]"===r.call(e)}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isElement.js":function e(t,n,e){function r(e){return!(!e||1!==e.nodeType)}e.export({default:()=>r})},"isString.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("String"))},"_tagTester.js":function e(t,n,e){let r;function i(e){var t="[object "+e+"]";return function(e){return r.call(e)===t}}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isNumber.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Number"))},"isDate.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Date"))},"isRegExp.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("RegExp"))},"isError.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Error"))},"isSymbol.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Symbol"))},"isArrayBuffer.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("ArrayBuffer"))},"isDataView.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isArrayBuffer.js",{default(e){o=e}},2),e.link("./_stringTagBug.js",{hasStringTagBug(e){s=e}},3);var a=r("DataView");function u(e){return null!=e&&i(e.getInt8)&&o(e.buffer)}e.exportDefault(s?u:a)},"isFunction.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_setup.js",{root(e){i=e}},1);var o=r("Function"),s=i.document&&i.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof s&&(o=function(e){return"function"==typeof e||!1}),e.exportDefault(o)},"_stringTagBug.js":function e(t,n,e){let r,i;e.export({hasStringTagBug:()=>o,isIE11:()=>s}),e.link("./_setup.js",{supportsDataView(e){r=e}},0),e.link("./_hasObjectTag.js",{default(e){i=e}},1);var o=r&&i(new DataView(new ArrayBuffer(8))),s="undefined"!=typeof Map&&i(new Map)},"_hasObjectTag.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Object"))},"isArray.js":function e(t,n,e){let r,i;e.link("./_setup.js",{nativeIsArray(e){r=e}},0),e.link("./_tagTester.js",{default(e){i=e}},1),e.exportDefault(r||i("Array"))},"isArguments.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1);var o=r("Arguments");!function(){o(arguments)||(o=function(e){return i(e,"callee")})}(),e.exportDefault(o)},"_has.js":function e(t,n,e){let r;function i(e,t){return null!=e&&r.call(e,t)}e.export({default:()=>i}),e.link("./_setup.js",{hasOwnProperty(e){r=e}},0)},"isFinite.js":function e(t,n,e){let r,i;function o(e){return!i(e)&&r(e)&&!isNaN(parseFloat(e))}e.export({default:()=>o}),e.link("./_setup.js",{_isFinite(e){r=e}},0),e.link("./isSymbol.js",{default(e){i=e}},1)},"isNaN.js":function e(t,n,e){let r,i;function o(e){return i(e)&&r(e)}e.export({default:()=>o}),e.link("./_setup.js",{_isNaN(e){r=e}},0),e.link("./isNumber.js",{default(e){i=e}},1)},"isTypedArray.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./_setup.js",{supportsArrayBuffer(e){r=e},nativeIsView(e){i=e},toString(e){o=e}},0),e.link("./isDataView.js",{default(e){s=e}},1),e.link("./constant.js",{default(e){a=e}},2),e.link("./_isBufferLike.js",{default(e){u=e}},3);var f=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function c(e){return i?i(e)&&!s(e):u(e)&&f.test(o.call(e))}e.exportDefault(r?c:a(!1))},"constant.js":function e(t,n,e){function r(e){return function(){return e}}e.export({default:()=>r})},"_isBufferLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getByteLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createSizePropertyCheck.js":function e(t,n,e){let r;function i(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=r}}e.export({default:()=>i}),e.link("./_setup.js",{MAX_ARRAY_INDEX(e){r=e}},0)},"_getByteLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("byteLength"))},"_shallowProperty.js":function e(t,n,e){function r(e){return function(t){return null==t?void 0:t[e]}}e.export({default:()=>r})},"isEmpty.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(null==e)return!0;var t=r(e);return"number"==typeof t&&(i(e)||o(e)||s(e))?0===t:0===r(a(e))}e.export({default:()=>u}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3),e.link("./keys.js",{default(e){a=e}},4)},"_getLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("length"))},"keys.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(!r(e))return[];if(i)return i(e);var t=[];for(var n in e)s(e,n)&&t.push(n);return o&&a(e,t),t}e.export({default:()=>u}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeKeys(e){i=e},hasEnumBug(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2),e.link("./_collectNonEnumProps.js",{default(e){a=e}},3)},"_collectNonEnumProps.js":function e(t,n,e){let r,i,o,s;function a(e){for(var t={},n=e.length,r=0;ru}),e.link("./_setup.js",{nonEnumerableProps(e){r=e},ObjProto(e){i=e}},0),e.link("./isFunction.js",{default(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2)},"isMatch.js":function e(t,n,e){let r;function i(e,t){var n=r(t),i=n.length;if(null==e)return!i;for(var o=Object(e),s=0;si}),e.link("./keys.js",{default(e){r=e}},0)},"isEqual.js":function e(t,n,e){let r,i,o,s,a,u,f,c,l,h,d;e.export({default:()=>m}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_setup.js",{toString(e){i=e},SymbolProto(e){o=e}},1),e.link("./_getByteLength.js",{default(e){s=e}},2),e.link("./isTypedArray.js",{default(e){a=e}},3),e.link("./isFunction.js",{default(e){u=e}},4),e.link("./_stringTagBug.js",{hasStringTagBug(e){f=e}},5),e.link("./isDataView.js",{default(e){c=e}},6),e.link("./keys.js",{default(e){l=e}},7),e.link("./_has.js",{default(e){h=e}},8),e.link("./_toBufferView.js",{default(e){d=e}},9);var p="[object DataView]";function g(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var i=typeof e;return("function"===i||"object"===i||"object"==typeof t)&&b(e,t,n,r)}function b(e,t,n,m){e instanceof r&&(e=e._wrapped),t instanceof r&&(t=t._wrapped);var v=i.call(e);if(v!==i.call(t))return!1;if(f&&"[object Object]"==v&&c(e)){if(!c(t))return!1;v=p}switch(v){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return o.valueOf.call(e)===o.valueOf.call(t);case"[object ArrayBuffer]":case p:return b(d(e),d(t),n,m)}var y="[object Array]"===v;if(!y&&a(e)){var _;if(s(e)!==s(t))return!1;if(e.buffer===t.buffer&&e.byteOffset===t.byteOffset)return!0;y=!0}if(!y){if("object"!=typeof e||"object"!=typeof t)return!1;var w=e.constructor,k=t.constructor;if(w!==k&&!(u(w)&&w instanceof w&&u(k)&&k instanceof k)&&"constructor"in e&&"constructor"in t)return!1}m=m||[];for(var j=(n=n||[]).length;j--;)if(n[j]===e)return m[j]===t;if(n.push(e),m.push(t),y){if((j=e.length)!==t.length)return!1;for(;j--;)if(!g(e[j],t[j],n,m))return!1}else{var x=l(e),S;if(j=x.length,l(t).length!==j)return!1;for(;j--;)if(S=x[j],!h(t,S)||!g(e[S],t[S],n,m))return!1}return n.pop(),m.pop(),!0}function m(e,t){return g(e,t)}},"underscore.js":function e(t,n,e){let r;function i(e){return e instanceof i?e:this instanceof i?void(this._wrapped=e):new i(e)}e.export({default:()=>i}),e.link("./_setup.js",{VERSION(e){r=e}},0),i.VERSION=r,i.prototype.value=function(){return this._wrapped},i.prototype.valueOf=i.prototype.toJSON=i.prototype.value,i.prototype.toString=function(){return String(this._wrapped)}},"_toBufferView.js":function e(t,n,e){let r;function i(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,r(e))}e.export({default:()=>i}),e.link("./_getByteLength.js",{default(e){r=e}},0)},"isMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},mapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Map"))},"_methodFingerprint.js":function e(t,n,e){let r,i,o;function s(e){var t=r(e);return function(n){if(null==n)return!1;var s=o(n);if(r(s))return!1;for(var u=0;us,mapMethods:()=>l,weakMapMethods:()=>h,setMethods:()=>d}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./allKeys.js",{default(e){o=e}},2);var a="forEach",u="has",f=["clear","delete"],c=["get","has","set"],l=f.concat(a,c),h=f.concat(c),d=["add"].concat(f,a,"has")},"allKeys.js":function e(t,n,e){let r,i,o;function s(e){if(!r(e))return[];var t=[];for(var n in e)t.push(n);return i&&o(e,t),t}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{hasEnumBug(e){i=e}},1),e.link("./_collectNonEnumProps.js",{default(e){o=e}},2)},"isWeakMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},weakMapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("WeakMap"))},"isSet.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},setMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Set"))},"isWeakSet.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("WeakSet"))},"values.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"pairs.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"invert.js":function e(t,n,e){let r;function i(e){for(var t={},n=r(e),i=0,o=n.length;ii}),e.link("./keys.js",{default(e){r=e}},0)},"functions.js":function e(t,n,e){let r;function i(e){var t=[];for(var n in e)r(e[n])&&t.push(n);return t.sort()}e.export({default:()=>i}),e.link("./isFunction.js",{default(e){r=e}},0)},"extend.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createAssigner.js":function e(t,n,e){function r(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var i=1;ir})},"extendOwn.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"defaults.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i,!0))},"create.js":function e(t,n,e){let r,i;function o(e,t){var n=r(e);return t&&i(n,t),n}e.export({default:()=>o}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./extendOwn.js",{default(e){i=e}},1)},"_baseCreate.js":function e(t,n,e){let r,i;function o(){return function(){}}function s(e){if(!r(e))return{};if(i)return i(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeCreate(e){i=e}},1)},"clone.js":function e(t,n,e){let r,i,o;function s(e){return r(e)?i(e)?e.slice():o({},e):e}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./extend.js",{default(e){o=e}},2)},"tap.js":function e(t,n,e){function r(e,t){return t(e),e}e.export({default:()=>r})},"get.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=i(e,r(t));return o(s)?n:s}e.export({default:()=>s}),e.link("./_toPath.js",{default(e){r=e}},0),e.link("./_deepGet.js",{default(e){i=e}},1),e.link("./isUndefined.js",{default(e){o=e}},2)},"_toPath.js":function e(t,n,e){let r;function i(e){return r.toPath(e)}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./toPath.js")},"toPath.js":function e(t,n,e){let r,i;function o(e){return i(e)?e:[e]}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),r.toPath=o},"_deepGet.js":function e(t,n,e){function r(e,t){for(var n=t.length,r=0;rr})},"has.js":function e(t,n,e){let r,i;function o(e,t){for(var n=(t=i(t)).length,o=0;oo}),e.link("./_has.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"mapObject.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s=o.length,a={},u=0;uo}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"_cb.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r.iteratee!==o?r.iteratee(e,t):i(e,t,n)}e.export({default:()=>s}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),e.link("./iteratee.js",{default(e){o=e}},2)},"_baseIteratee.js":function e(t,n,e){let r,i,o,s,a,u,f;function c(e,t,n){return null==e?r:i(e)?f(e,t,n):o(e)&&!s(e)?a(e):u(e)}e.export({default:()=>c}),e.link("./identity.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isObject.js",{default(e){o=e}},2),e.link("./isArray.js",{default(e){s=e}},3),e.link("./matcher.js",{default(e){a=e}},4),e.link("./property.js",{default(e){u=e}},5),e.link("./_optimizeCb.js",{default(e){f=e}},6)},"identity.js":function e(t,n,e){function r(e){return e}e.export({default:()=>r})},"matcher.js":function e(t,n,e){let r,i;function o(e){return e=r({},e),function(t){return i(t,e)}}e.export({default:()=>o}),e.link("./extendOwn.js",{default(e){r=e}},0),e.link("./isMatch.js",{default(e){i=e}},1)},"property.js":function e(t,n,e){let r,i;function o(e){return e=i(e),function(t){return r(t,e)}}e.export({default:()=>o}),e.link("./_deepGet.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"_optimizeCb.js":function e(t,n,e){function r(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}}e.export({default:()=>r})},"iteratee.js":function e(t,n,e){let r,i;function o(e,t){return i(e,t,1/0)}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),r.iteratee=o},"noop.js":function e(t,n,e){function r(){}e.export({default:()=>r})},"propertyOf.js":function e(t,n,e){let r,i;function o(e){return null==e?r:function(t){return i(e,t)}}e.export({default:()=>o}),e.link("./noop.js",{default(e){r=e}},0),e.link("./get.js",{default(e){i=e}},1)},"times.js":function e(t,n,e){let r;function i(e,t,n){var i=Array(Math.max(0,e));t=r(t,n,1);for(var o=0;oi}),e.link("./_optimizeCb.js",{default(e){r=e}},0)},"random.js":function e(t,n,e){function r(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}e.export({default:()=>r})},"now.js":function e(t,n,e){e.exportDefault(Date.now||function(){return(new Date).getTime()})},"escape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createEscaper.js":function e(t,n,e){let r;function i(e){var t=function(t){return e[t]},n="(?:"+r(e).join("|")+")",i=RegExp(n),o=RegExp(n,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(o,t):e}}e.export({default:()=>i}),e.link("./keys.js",{default(e){r=e}},0)},"_escapeMap.js":function e(t,n,e){e.exportDefault({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"})},"unescape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_unescapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_unescapeMap.js":function e(t,n,e){let r,i;e.link("./invert.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"templateSettings.js":function e(t,n,e){let r;e.link("./underscore.js",{default(e){r=e}},0),e.exportDefault(r.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g})},"template.js":function e(t,n,e){let r,i;e.export({default:()=>c}),e.link("./defaults.js",{default(e){r=e}},0),e.link("./underscore.js",{default(e){i=e}},1),e.link("./templateSettings.js");var o=/(.)^/,s={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},a=/\\|'|\r|\n|\u2028|\u2029/g;function u(e){return"\\"+s[e]}var f=/^\s*(\w|\$)+\s*$/;function c(e,t,n){!t&&n&&(t=n),t=r({},t,i.templateSettings);var s=RegExp([(t.escape||o).source,(t.interpolate||o).source,(t.evaluate||o).source].join("|")+"|$","g"),c=0,l="__p+='";e.replace(s,(function(t,n,r,i,o){return l+=e.slice(c,o).replace(a,u),c=o+t.length,n?l+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?l+="'+\n((__t=("+r+"))==null?'':__t)+\n'":i&&(l+="';\n"+i+"\n__p+='"),t})),l+="';\n";var h=t.variable,d;if(h){if(!f.test(h))throw new Error("variable is not a bare identifier: "+h)}else l="with(obj||{}){\n"+l+"}\n",h="obj";l="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+l+"return __p;\n";try{d=new Function(h,"_",l)}catch(g){throw g.source=l,g}var p=function(e){return d.call(this,e,i)};return p.source="function("+h+"){\n"+l+"}",p}},"result.js":function e(t,n,e){let r,i;function o(e,t,n){var o=(t=i(t)).length;if(!o)return r(n)?n.call(e):n;for(var s=0;so}),e.link("./isFunction.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"uniqueId.js":function e(t,n,e){e.export({default:()=>i});var r=0;function i(e){var t=++r+"";return e?e+t:t}},"chain.js":function e(t,n,e){let r;function i(e){var t=r(e);return t._chain=!0,t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"partial.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_executeBound.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2);var s=r((function(e,t){var n=s.placeholder,r=function(){for(var o=0,s=t.length,a=Array(s),u=0;uo}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./isObject.js",{default(e){i=e}},1)},"bind.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_executeBound.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t,n){if(!i(e))throw new TypeError("Bind must be called on a function");var s=r((function(r){return o(e,s,t,this,n.concat(r))}));return s})))},"bindAll.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./bind.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t){var n=(t=i(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=o(e[r],e)}return e})))},"_flatten.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,u){if(u=u||[],t||0===t){if(t<=0)return u.concat(e)}else t=1/0;for(var f=u.length,c=0,l=r(e);c1)a(h,t-1,n,u),f=u.length;else for(var d=0,p=h.length;da}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./isArray.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3)},"_isArrayLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"memoize.js":function e(t,n,e){let r;function i(e,t){var n=function(i){var o=n.cache,s=""+(t?t.apply(this,arguments):i);return r(o,s)||(o[s]=e.apply(this,arguments)),o[s]};return n.cache={},n}e.export({default:()=>i}),e.link("./_has.js",{default(e){r=e}},0)},"delay.js":function e(t,n,e){let r;e.link("./restArguments.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})))},"defer.js":function e(t,n,e){let r,i,o;e.link("./partial.js",{default(e){r=e}},0),e.link("./delay.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2),e.exportDefault(r(i,o,1))},"throttle.js":function e(t,n,e){let r;function i(e,t,n){var i,o,s,a,u=0;n||(n={});var f=function(){u=!1===n.leading?0:r(),i=null,a=e.apply(o,s),i||(o=s=null)},c=function(){var c=r();u||!1!==n.leading||(u=c);var l=t-(c-u);return o=this,s=arguments,l<=0||l>t?(i&&(clearTimeout(i),i=null),u=c,a=e.apply(o,s),i||(o=s=null)):i||!1===n.trailing||(i=setTimeout(f,l)),a};return c.cancel=function(){clearTimeout(i),u=0,i=o=s=null},c}e.export({default:()=>i}),e.link("./now.js",{default(e){r=e}},0)},"debounce.js":function e(t,n,e){let r,i;function o(e,t,n){var o,s,a,u,f,c=function(){var r=i()-s;t>r?o=setTimeout(c,t-r):(o=null,n||(u=e.apply(f,a)),o||(a=f=null))},l=r((function(r){return f=this,a=r,s=i(),o||(o=setTimeout(c,t),n&&(u=e.apply(f,a))),u}));return l.cancel=function(){clearTimeout(o),o=a=f=null},l}e.export({default:()=>o}),e.link("./restArguments.js",{default(e){r=e}},0),e.link("./now.js",{default(e){i=e}},1)},"wrap.js":function e(t,n,e){let r;function i(e,t){return r(t,e)}e.export({default:()=>i}),e.link("./partial.js",{default(e){r=e}},0)},"negate.js":function e(t,n,e){function r(e){return function(){return!e.apply(this,arguments)}}e.export({default:()=>r})},"compose.js":function e(t,n,e){function r(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}e.export({default:()=>r})},"after.js":function e(t,n,e){function r(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}e.export({default:()=>r})},"before.js":function e(t,n,e){function r(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}e.export({default:()=>r})},"once.js":function e(t,n,e){let r,i;e.link("./partial.js",{default(e){r=e}},0),e.link("./before.js",{default(e){i=e}},1),e.exportDefault(r(i,2))},"findKey.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s,a=0,u=o.length;ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"findIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createPredicateIndexFinder.js":function e(t,n,e){let r,i;function o(e){return function(t,n,o){n=r(n,o);for(var s=i(t),a=e>0?0:s-1;a>=0&&ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"findLastIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"sortedIndex.js":function e(t,n,e){let r,i;function o(e,t,n,o){for(var s=(n=r(n,o,1))(t),a=0,u=i(e);ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"indexOf.js":function e(t,n,e){let r,i,o;e.link("./sortedIndex.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./_createIndexFinder.js",{default(e){o=e}},2),e.exportDefault(o(1,i,r))},"_createIndexFinder.js":function e(t,n,e){let r,i,o;function s(e,t,n){return function(s,a,u){var f=0,c=r(s);if("number"==typeof u)e>0?f=u>=0?u:Math.max(u+c,f):c=u>=0?Math.min(u+1,c):u+c+1;else if(n&&u&&c)return s[u=n(s,a)]===a?u:-1;if(a!=a)return(u=t(i.call(s,f,c),o))>=0?u+f:-1;for(u=e>0?f:c-1;u>=0&&us}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isNaN.js",{default(e){o=e}},2)},"lastIndexOf.js":function e(t,n,e){let r,i;e.link("./findLastIndex.js",{default(e){r=e}},0),e.link("./_createIndexFinder.js",{default(e){i=e}},1),e.exportDefault(i(-1,r))},"find.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a=(r(e)?i:o)(e,t,n);if(void 0!==a&&-1!==a)return e[a]}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./findKey.js",{default(e){o=e}},2)},"findWhere.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./find.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"each.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a;if(t=r(t,n),i(e))for(s=0,a=e.length;ss}),e.link("./_optimizeCb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"map.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=Array(a),f=0;fs}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"reduce.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createReduce.js":function e(t,n,e){let r,i,o;function s(e){var t=function(t,n,o,s){var a=!r(t)&&i(t),u=(a||t).length,f=e>0?0:u-1;for(s||(o=t[a?a[f]:f],f+=e);f>=0&&f=3;return t(e,o(n,i,4),r,s)}}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2)},"reduceRight.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"filter.js":function e(t,n,e){let r,i;function o(e,t,n){var o=[];return t=r(t,n),i(e,(function(e,n,r){t(e,n,r)&&o.push(e)})),o}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"reject.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r(e,i(o(t)),n)}e.export({default:()=>s}),e.link("./filter.js",{default(e){r=e}},0),e.link("./negate.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2)},"every.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"some.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"contains.js":function e(t,n,e){let r,i,o;function s(e,t,n,s){return r(e)||(e=i(e)),("number"!=typeof n||s)&&(n=0),o(e,t,n)>=0}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./indexOf.js",{default(e){o=e}},2)},"invoke.js":function e(t,n,e){let r,i,o,s,a;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2),e.link("./_deepGet.js",{default(e){s=e}},3),e.link("./_toPath.js",{default(e){a=e}},4),e.exportDefault(r((function(e,t,n){var r,u;return i(t)?u=t:(t=a(t),r=t.slice(0,-1),t=t[t.length-1]),o(e,(function(e){var i=u;if(!i){if(r&&r.length&&(e=s(e,r)),null==e)return;i=e[t]}return null==i?i:i.apply(e,n)}))})))},"pluck.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./map.js",{default(e){r=e}},0),e.link("./property.js",{default(e){i=e}},1)},"where.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./filter.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"max.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=-1/0,u=-1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la&&(a=f);else t=o(t,n),s(e,(function(e,n,r){((c=t(e,n,r))>u||c===-1/0&&a===-1/0)&&(a=e,u=c)}));return a}e.export({default:()=>a}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"min.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=1/0,u=1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"shuffle.js":function e(t,n,e){let r;function i(e){return r(e,1/0)}e.export({default:()=>i}),e.link("./sample.js",{default(e){r=e}},0)},"sample.js":function e(t,n,e){let r,i,o,s,a;function u(e,t,n){if(null==t||n)return r(e)||(e=i(e)),e[s(e.length-1)];var u=a(e),f=o(u);t=Math.max(Math.min(t,f),0);for(var c=f-1,l=0;lu}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./random.js",{default(e){s=e}},3),e.link("./toArray.js",{default(e){a=e}},4)},"toArray.js":function e(t,n,e){let r,i,o,s,a,u,f;e.export({default:()=>l}),e.link("./isArray.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./_isArrayLike.js",{default(e){s=e}},3),e.link("./map.js",{default(e){a=e}},4),e.link("./identity.js",{default(e){u=e}},5),e.link("./values.js",{default(e){f=e}},6);var c=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function l(e){return e?r(e)?i.call(e):o(e)?e.match(c):s(e)?a(e,u):f(e):[]}},"sortBy.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=0;return t=r(t,n),i(o(e,(function(e,n,r){return{value:e,index:s++,criteria:t(e,n,r)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(ns}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./pluck.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2)},"groupBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n].push(t):e[n]=[t]})))},"_group.js":function e(t,n,e){let r,i;function o(e,t){return function(n,o,s){var a=t?[[],[]]:{};return o=r(o,s),i(n,(function(t,r){var i=o(t,r,n);e(a,t,i)})),a}}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"indexBy.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n]=t})))},"countBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n]++:e[n]=1})))},"partition.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n?0:1].push(t)}),!0))},"size.js":function e(t,n,e){let r,i;function o(e){return null==e?0:r(e)?e.length:i(e).length}e.export({default:()=>o}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"pick.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2),e.link("./allKeys.js",{default(e){s=e}},3),e.link("./_keyInObj.js",{default(e){a=e}},4),e.link("./_flatten.js",{default(e){u=e}},5),e.exportDefault(r((function(e,t){var n={},r=t[0];if(null==e)return n;i(r)?(t.length>1&&(r=o(r,t[1])),t=s(e)):(r=a,t=u(t,!1,!1),e=Object(e));for(var f=0,c=t.length;fr})},"omit.js":function e(t,n,e){let r,i,o,s,a,u,f;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./negate.js",{default(e){o=e}},2),e.link("./map.js",{default(e){s=e}},3),e.link("./_flatten.js",{default(e){a=e}},4),e.link("./contains.js",{default(e){u=e}},5),e.link("./pick.js",{default(e){f=e}},6),e.exportDefault(r((function(e,t){var n=t[0],r;return i(n)?(n=o(n),t.length>1&&(r=t[1])):(t=s(a(t,!1,!1),String),n=function(e,n){return!u(t,n)}),f(e,n,r)})))},"first.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:r(e,e.length-t)}e.export({default:()=>i}),e.link("./initial.js",{default(e){r=e}},0)},"initial.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"last.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:r(e,Math.max(0,e.length-t))}e.export({default:()=>i}),e.link("./rest.js",{default(e){r=e}},0)},"rest.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,null==t||n?1:t)}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"compact.js":function e(t,n,e){let r;function i(e){return r(e,Boolean)}e.export({default:()=>i}),e.link("./filter.js",{default(e){r=e}},0)},"flatten.js":function e(t,n,e){let r;function i(e,t){return r(e,t,!1)}e.export({default:()=>i}),e.link("./_flatten.js",{default(e){r=e}},0)},"without.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./difference.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t){return i(e,t)})))},"difference.js":function e(t,n,e){let r,i,o,s;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./filter.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3),e.exportDefault(r((function(e,t){return t=i(t,!0,!0),o(e,(function(e){return!s(t,e)}))})))},"uniq.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,a){r(t)||(a=n,n=t,t=!1),null!=n&&(n=i(n,a));for(var u=[],f=[],c=0,l=o(e);ca}),e.link("./isBoolean.js",{default(e){r=e}},0),e.link("./_cb.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3)},"union.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./uniq.js",{default(e){i=e}},1),e.link("./_flatten.js",{default(e){o=e}},2),e.exportDefault(r((function(e){return i(o(e,!0,!0))})))},"intersection.js":function e(t,n,e){let r,i;function o(e){for(var t=[],n=arguments.length,o=0,s=r(e);oo}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./contains.js",{default(e){i=e}},1)},"unzip.js":function e(t,n,e){let r,i,o;function s(e){for(var t=e&&r(e,i).length||0,n=Array(t),s=0;ss}),e.link("./max.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.link("./pluck.js",{default(e){o=e}},2)},"zip.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./unzip.js",{default(e){i=e}},1),e.exportDefault(r(i))},"object.js":function e(t,n,e){let r;function i(e,t){for(var n={},i=0,o=r(e);ii}),e.link("./_getLength.js",{default(e){r=e}},0)},"range.js":function e(t,n,e){function r(e,t,n){null==t&&(t=e||0,e=0),n||(n=tr})},"chunk.js":function e(t,n,e){let r;function i(e,t){if(null==t||t<1)return[];for(var n=[],i=0,o=e.length;ii}),e.link("./_setup.js",{slice(e){r=e}},0)},"mixin.js":function e(t,n,e){let r,i,o,s,a;function u(e){return i(o(e),(function(t){var n=r[t]=e[t];r.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),a(this,n.apply(r,e))}})),r}e.export({default:()=>u}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./functions.js",{default(e){o=e}},2),e.link("./_setup.js",{push(e){s=e}},3),e.link("./_chainResult.js",{default(e){a=e}},4)},"_chainResult.js":function e(t,n,e){let r;function i(e,t){return e._chain?r(t).chain():t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"underscore-array-methods.js":function e(t,n,e){let r,i,o,s;e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./_setup.js",{ArrayProto(e){o=e}},2),e.link("./_chainResult.js",{default(e){s=e}},3),i(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];r.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),s(this,n)}})),i(["concat","join","slice"],(function(e){var t=o[e];r.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),s(this,e)}})),e.exportDefault(r)}}}}},cachers:{"package.json":function e(t,n,e){e.exports={name:"@steedos/cachers",version:"2.6.4-beta.2",main:"lib/index.js"}},lib:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getCacherNames=n.clearCacher=n.getCacher=void 0;var r={},i=t("./memory"),o=t("./memory-lru"),s=function(e,t){return r[e]||(e.startsWith("lru.")?r[e]=new o.MemoryLRUCacher(t):r[e]=new i.MemoryCacher),r[e]};n.getCacher=s;var a=function(e){r[e]&&r[e].clear()};n.clearCacher=a;var u=function(){return Object.keys(r)};n.getCacherNames=u},"memory.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryCacher=void 0;var r=t("lodash"),i=function(){function e(){this.cache={}}return e.prototype.get=function(e){return this.cache[e]},e.prototype.delete=function(e){delete this.cache[e]},e.prototype.set=function(e,t){this.cache[e]=t},e.prototype.clear=function(){this.cache={}},e.prototype.keys=function(){return(0,r.keys)(this.cache)},e.prototype.values=function(){return(0,r.values)(this.cache)},e}();n.MemoryCacher=i},"memory-lru.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryLRUCacher=void 0;var r=t("lodash"),i=t("lru-cache"),o={max:5e3,ttl:null,keygen:null,maxParamsLength:null},s=function(){function e(e){this.opts=(0,r.defaultsDeep)(e,o),this.cache=new i({max:this.opts.max,maxAge:this.opts.ttl?1e3*this.opts.ttl:null,updateAgeOnGet:!!this.opts.ttl})}return e.prototype.get=function(e){return this.cache.get(e)},e.prototype.set=function(e,t,n){return this.cache.set(e,t,n)},e.prototype.delete=function(e){return this.cache.delete(e)},e.prototype.clear=function(){return this.cache.clear()},e.prototype.keys=function(){return this.cache.keys()},e.prototype.values=function(){return this.cache.values()},e}();n.MemoryLRUCacher=s}},node_modules:{"lru-cache":{"package.json":function e(t,n,e){e.exports={name:"lru-cache",version:"7.14.1",main:"index.js"}},"index.js":function e(t,n,e){const r="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,i="function"==typeof AbortController,o=i?AbortController:class e{constructor(){this.signal=new u}abort(){this.signal.dispatchEvent("abort")}},s="function"==typeof AbortSignal,a="function"==typeof o.AbortSignal,u=s?AbortSignal:a?o.AbortController:class e{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(e){if("abort"===e){this.aborted=!0;const t={type:e,target:this};this.onabort(t),this._listeners.forEach(e=>e(t),this)}}onabort(){}addEventListener(e,t){"abort"===e&&this._listeners.push(t)}removeEventListener(e,t){"abort"===e&&(this._listeners=this._listeners.filter(e=>e!==t))}},f=new Set,c=(e,t)=>{const n=`LRU_CACHE_OPTION_${e}`;p(n)&&g(n,`${e} option`,`options.${t}`,_)},l=(e,t)=>{const n=`LRU_CACHE_METHOD_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} method`,`cache.${t}()`,i)}},h=(e,t)=>{const n=`LRU_CACHE_PROPERTY_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} property`,`cache.${t}`,i)}},d=(...e)=>{"object"==typeof process&&process&&"function"==typeof process.emitWarning?process.emitWarning(...e):console.error(...e)},p=e=>!f.has(e),g=(e,t,n,r)=>{f.add(e);const i=`The ${t} is deprecated. Please use ${n} instead.`;d(i,"DeprecationWarning",e,r)},b=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),m=e=>b(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?v:null:null;class v extends Array{constructor(e){super(e),this.fill(0)}}class y{constructor(e){if(0===e)return[];const t=m(e);this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class _{constructor(e={}){const{max:t=0,ttl:n,ttlResolution:r=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:s,allowStale:a,dispose:u,disposeAfter:l,noDisposeOnSet:h,noUpdateTTL:g,maxSize:v=0,maxEntrySize:w=0,sizeCalculation:k,fetchMethod:j,fetchContext:x,noDeleteOnFetchRejection:S,noDeleteOnStaleGet:D}=e,{length:E,maxAge:A,stale:C}=e instanceof _?{}:e;if(0!==t&&!b(t))throw new TypeError("max option must be a nonnegative integer");const M=t?m(t):Array;if(!M)throw new Error("invalid max value: "+t);if(this.max=t,this.maxSize=v,this.maxEntrySize=w||this.maxSize,this.sizeCalculation=k||E,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=j||null,this.fetchMethod&&"function"!=typeof this.fetchMethod)throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=x,!this.fetchMethod&&void 0!==x)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(t).fill(null),this.valList=new Array(t).fill(null),this.next=new M(t),this.prev=new M(t),this.head=0,this.tail=0,this.free=new y(t),this.initialFill=1,this.size=0,"function"==typeof u&&(this.dispose=u),"function"==typeof l?(this.disposeAfter=l,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!h,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!S,0!==this.maxEntrySize){if(0!==this.maxSize&&!b(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!b(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!a||!!C,this.noDeleteOnStaleGet=!!D,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!s,this.ttlResolution=b(r)||0===r?r:1,this.ttlAutopurge=!!i,this.ttl=n||A||0,this.ttl){if(!b(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(0===this.max&&0===this.ttl&&0===this.maxSize)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const e="LRU_CACHE_UNBOUNDED";if(p(e)){f.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";d(t,"UnboundedCacheWarning",e,_)}}C&&c("stale","allowStale"),A&&c("maxAge","ttl"),E&&c("length","sizeCalculation")}getRemainingTTL(e){return this.has(e,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new v(this.max),this.starts=new v(this.max),this.setItemTTL=(e,t,n=r.now())=>{if(this.starts[e]=0!==t?n:0,this.ttls[e]=t,0!==t&&this.ttlAutopurge){const n=setTimeout(()=>{this.isStale(e)&&this.delete(this.keyList[e])},t+1);n.unref&&n.unref()}},this.updateItemAge=e=>{this.starts[e]=0!==this.ttls[e]?r.now():0};let e=0;const t=()=>{const t=r.now();if(this.ttlResolution>0){e=t;const n=setTimeout(()=>e=0,this.ttlResolution);n.unref&&n.unref()}return t};this.getRemainingTTL=n=>{const r=this.keyMap.get(n);return void 0===r?0:0===this.ttls[r]||0===this.starts[r]?1/0:this.starts[r]+this.ttls[r]-(e||t())},this.isStale=n=>0!==this.ttls[n]&&0!==this.starts[n]&&(e||t())-this.starts[n]>this.ttls[n]}updateItemAge(e){}setItemTTL(e,t,n){}isStale(e){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new v(this.max),this.removeItemSize=e=>{this.calculatedSize-=this.sizes[e],this.sizes[e]=0},this.requireSize=(e,t,n,r)=>{if(this.isBackgroundFetch(t))return 0;if(!b(n)){if(!r)throw new TypeError("invalid size value (must be positive integer)");if("function"!=typeof r)throw new TypeError("sizeCalculation must be a function");if(n=r(t,e),!b(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return n},this.addItemSize=(e,t)=>{if(this.sizes[e]=t,this.maxSize){const t=this.maxSize-this.sizes[e];for(;this.calculatedSize>t;)this.evict(!0)}this.calculatedSize+=this.sizes[e]}}removeItemSize(e){}addItemSize(e,t){}requireSize(e,t,n,r){if(n||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.tail;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.head);)t=this.prev[t]}*rindexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.head;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.tail);)t=this.next[t]}isValidIndex(e){return this.keyMap.get(this.keyList[e])===e}*entries(){for(const e of this.indexes())yield[this.keyList[e],this.valList[e]]}*rentries(){for(const e of this.rindexes())yield[this.keyList[e],this.valList[e]]}*keys(){for(const e of this.indexes())yield this.keyList[e]}*rkeys(){for(const e of this.rindexes())yield this.keyList[e]}*values(){for(const e of this.indexes())yield this.valList[e]}*rvalues(){for(const e of this.rindexes())yield this.valList[e]}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const n of this.indexes())if(e(this.valList[n],this.keyList[n],this))return this.get(this.keyList[n],t)}forEach(e,t=this){for(const n of this.indexes())e.call(t,this.valList[n],this.keyList[n],this)}rforEach(e,t=this){for(const n of this.rindexes())e.call(t,this.valList[n],this.keyList[n],this)}get prune(){return l("prune","purgeStale"),this.purgeStale}purgeStale(){let e=!1;for(const t of this.rindexes({allowStale:!0}))this.isStale(t)&&(this.delete(this.keyList[t]),e=!0);return e}dump(){const e=[];for(const t of this.indexes({allowStale:!0})){const n=this.keyList[t],i=this.valList[t],o=this.isBackgroundFetch(i)?i.__staleWhileFetching:i,s={value:o};if(this.ttls){s.ttl=this.ttls[t];const e=r.now()-this.starts[t];s.start=Math.floor(Date.now()-e)}this.sizes&&(s.size=this.sizes[t]),e.unshift([n,s])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const e=Date.now()-n.start;n.start=r.now()-e}this.set(t,n.value,n)}}dispose(e,t,n){}set(e,t,{ttl:n=this.ttl,start:r,noDisposeOnSet:i=this.noDisposeOnSet,size:o=0,sizeCalculation:s=this.sizeCalculation,noUpdateTTL:a=this.noUpdateTTL}={}){if(o=this.requireSize(e,t,o,s),this.maxEntrySize&&o>this.maxEntrySize)return this.delete(e),this;let u=0===this.size?void 0:this.keyMap.get(e);if(void 0===u)u=this.newIndex(),this.keyList[u]=e,this.valList[u]=t,this.keyMap.set(e,u),this.next[this.tail]=u,this.prev[u]=this.tail,this.tail=u,this.size++,this.addItemSize(u,o),a=!1;else{const n=this.valList[u];t!==n&&(this.isBackgroundFetch(n)?n.__abortController.abort():i||(this.dispose(n,e,"set"),this.disposeAfter&&this.disposed.push([n,e,"set"])),this.removeItemSize(u),this.valList[u]=t,this.addItemSize(u,o)),this.moveToTail(u)}if(0===n||0!==this.ttl||this.ttls||this.initializeTTLTracking(),a||this.setItemTTL(u,n,r),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return 0===this.size?this.tail:this.size===this.max&&0!==this.max?this.evict(!1):0!==this.free.length?this.free.pop():this.initialFill++}pop(){if(this.size){const e=this.valList[this.head];return this.evict(!0),e}}evict(e){const t=this.head,n=this.keyList[t],r=this.valList[t];return this.isBackgroundFetch(r)?r.__abortController.abort():(this.dispose(r,n,"evict"),this.disposeAfter&&this.disposed.push([r,n,"evict"])),this.removeItemSize(t),e&&(this.keyList[t]=null,this.valList[t]=null,this.free.push(t)),this.head=this.next[t],this.keyMap.delete(n),this.size--,t}has(e,{updateAgeOnHas:t=this.updateAgeOnHas}={}){const n=this.keyMap.get(e);return void 0!==n&&!this.isStale(n)&&(t&&this.updateItemAge(n),!0)}peek(e,{allowStale:t=this.allowStale}={}){const n=this.keyMap.get(e);if(void 0!==n&&(t||!this.isStale(n))){const e=this.valList[n];return this.isBackgroundFetch(e)?e.__staleWhileFetching:e}}backgroundFetch(e,t,n,r){const i=void 0===t?void 0:this.valList[t];if(this.isBackgroundFetch(i))return i;const s=new o,a={signal:s.signal,options:n,context:r},u=t=>(s.signal.aborted||this.set(e,t,a.options),t),f=r=>{if(this.valList[t]===l){const r=!n.noDeleteOnFetchRejection||void 0===l.__staleWhileFetching;r?this.delete(e):this.valList[t]=l.__staleWhileFetching}if(l.__returned===l)throw r},c=t=>t(this.fetchMethod(e,i,a)),l=new Promise(c).then(u,f);return l.__abortController=s,l.__staleWhileFetching=i,l.__returned=null,void 0===t?(this.set(e,l,a.options),t=this.keyMap.get(e)):this.valList[t]=l,l}isBackgroundFetch(e){return e&&"object"==typeof e&&"function"==typeof e.then&&Object.prototype.hasOwnProperty.call(e,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(e,"__returned")&&(e.__returned===e||null===e.__returned)}async fetch(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:s=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,fetchContext:c=this.fetchContext,forceRefresh:l=!1}={}){if(!this.fetchMethod)return this.get(e,{allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r});const h={allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r,ttl:i,noDisposeOnSet:o,size:s,sizeCalculation:a,noUpdateTTL:u,noDeleteOnFetchRejection:f};let d=this.keyMap.get(e);if(void 0===d){const t=this.backgroundFetch(e,d,h,c);return t.__returned=t}{const r=this.valList[d];if(this.isBackgroundFetch(r))return t&&void 0!==r.__staleWhileFetching?r.__staleWhileFetching:r.__returned=r;if(!l&&!this.isStale(d))return this.moveToTail(d),n&&this.updateItemAge(d),r;const i=this.backgroundFetch(e,d,h,c);return t&&void 0!==i.__staleWhileFetching?i.__staleWhileFetching:i.__returned=i}}get(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet}={}){const i=this.keyMap.get(e);if(void 0!==i){const o=this.valList[i],s=this.isBackgroundFetch(o);if(this.isStale(i))return s?t?o.__staleWhileFetching:void 0:(r||this.delete(e),t?o:void 0);if(s)return;return this.moveToTail(i),n&&this.updateItemAge(i),o}}connect(e,t){this.prev[t]=e,this.next[e]=t}moveToTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.connect(this.prev[e],this.next[e]),this.connect(this.tail,e),this.tail=e)}get del(){return l("del","delete"),this.delete}delete(e){let t=!1;if(0!==this.size){const n=this.keyMap.get(e);if(void 0!==n)if(t=!0,1===this.size)this.clear();else{this.removeItemSize(n);const t=this.valList[n];this.isBackgroundFetch(t)?t.__abortController.abort():(this.dispose(t,e,"delete"),this.disposeAfter&&this.disposed.push([t,e,"delete"])),this.keyMap.delete(e),this.keyList[n]=null,this.valList[n]=null,n===this.tail?this.tail=this.prev[n]:n===this.head?this.head=this.next[n]:(this.next[this.prev[n]]=this.next[n],this.prev[this.next[n]]=this.prev[n]),this.size--,this.free.push(n)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return t}clear(){for(const e of this.rindexes({allowStale:!0})){const t=this.valList[e];if(this.isBackgroundFetch(t))t.__abortController.abort();else{const n=this.keyList[e];this.dispose(t,n,"delete"),this.disposeAfter&&this.disposed.push([t,n,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return l("reset","clear"),this.clear}get length(){return h("length","size"),this.size}static get AbortController(){return o}static get AbortSignal(){return u}}e.exports=_}}}}},tslib:{"package.json":function e(t,n,e){e.exports={name:"tslib",version:"2.3.1",module:"tslib.es6.js",main:"tslib.js"}},"tslib.es6.js":function e(t,n,e){e.export({__extends:()=>i,__assign:()=>o,__rest:()=>s,__decorate:()=>a,__param:()=>u,__metadata:()=>f,__awaiter:()=>c,__generator:()=>l,__createBinding:()=>h,__exportStar:()=>d,__values:()=>p,__read:()=>g,__spread:()=>b,__spreadArrays:()=>m,__spreadArray:()=>v,__await:()=>y,__asyncGenerator:()=>_,__asyncDelegator:()=>w,__asyncValues:()=>k,__makeTemplateObject:()=>j,__importStar:()=>S,__importDefault:()=>D,__classPrivateFieldGet:()=>E,__classPrivateFieldSet:()=>A}); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. diff --git a/server/bundle/programs/web.browser.legacy/18b1573e16dfb893209907100a4090bccecb75e9.stats.json b/server/bundle/programs/web.browser.legacy/1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json similarity index 100% rename from server/bundle/programs/web.browser.legacy/18b1573e16dfb893209907100a4090bccecb75e9.stats.json rename to server/bundle/programs/web.browser.legacy/1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json diff --git a/server/bundle/programs/web.cordova/5766f147e314187665f8cf23620c00b20d7a2c90.css b/server/bundle/programs/web.browser.legacy/22b72a003d0bc555f97724324e85cd5b0fb7287b.css similarity index 92% rename from server/bundle/programs/web.cordova/5766f147e314187665f8cf23620c00b20d7a2c90.css rename to server/bundle/programs/web.browser.legacy/22b72a003d0bc555f97724324e85cd5b0fb7287b.css index 4dc97ec493..a0be76a43b 100644 --- a/server/bundle/programs/web.cordova/5766f147e314187665f8cf23620c00b20d7a2c90.css +++ b/server/bundle/programs/web.browser.legacy/22b72a003d0bc555f97724324e85cd5b0fb7287b.css @@ -45,7 +45,7 @@ * Licensed under the MIT license - http://opensource.org/licenses/MIT * * Copyright (c) 2018 Daniel Eden - */.animated{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}.rotate{animation-name:rotate;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-name:rotate}.view-page-section-row .view-page-block-item{padding:0 .75rem}.view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;width:100%!important}.view-page-section-row .uiInput .form-control:active,.view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}.view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.view-page-section-row .uiInput .form-control[disabled]:active,.view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}@media (max-width:599px){.view-page-section-row{display:block}}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item{cursor:pointer}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content{height:26px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .dx-icon{height:18px;font-size:18px;line-height:18px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.creator-table-actions,.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.pull-right-container{-webkit-box-flex:0.12;-webkit-flex:0.12;-ms-flex:0.12;flex:0.12;text-align:right;margin-top:-3px;display:inline-block}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content>span{padding:1px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility{line-height:32px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{line-height:34px}.gridSidebarContainer.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:20px}@media (max-width:767px){body,html{position:fixed;overflow:hidden}}body{background-size:cover;zoom:1!important}body button{margin-right:0}.steedos label{margin-bottom:5px}.steedos .steedos-brand-band{display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;position:relative;height:100%;width:100%}.steedos .steedos-brand-band .slds-page-header .crm-header-icon{display:block;border-radius:.125rem}.steedos .steedos-brand-band .slds-page-header .crm-header-icon .uiImage{display:inherit}.steedos .steedos-brand-band .slds-page-header h1.crm-header-title{font-size:16px;position:relative}.steedos .steedos-brand-band .slds-page-header .crm-breadcrumb-item span{font-size:13px}.steedos .steedos-brand-band .slds-page-header .crm-header-menu{font-size:.8125rem;font-weight:400}.steedos .steedos-brand-band .listViewManager{height:100%;border-radius:.25rem;background-clip:padding-box}.steedos .steedos-brand-band .listViewManager .slds-page-header{border-top:none;border-left:none;border-right:none}.steedos .steedos-brand-band .listViewManager .forceListViewManagerHeader .slds-button{cursor:pointer}.steedos .steedos-brand-band .listViewManager .list-view-controls .slds-text-title--caps{font-size:12px}.steedos .steedos-brand-band .listViewManager .table-grid-content{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content{width:100%;height:100%;min-height:200px;padding-top:0;padding-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;overflow:hidden}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content>div{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable{width:auto;margin-top:0!important;border-top:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable td:not(:first-child){padding:5px 8px 4px}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable .creator_table_cell{line-height:1.25rem}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable .slds-is-sortable__icon{display:inline-block;fill-opacity:0}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:focus .slds-is-sortable__icon,.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:hover .slds-is-sortable__icon{fill-opacity:1}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .gridContainer .dx-datagrid .dx-scrollable-wrapper .dx-scrollable-container .dx-row.dx-freespace-row{display:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .table-creator{margin-top:0!important}.steedos .slds-card .slds-table tr:last-child .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(2) .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(3) .dropdown-menu{bottom:100%;top:auto}.steedos .slds-table+.dataTables_paginate{text-align:left;margin-left:1.5rem}.steedos .list-table-container .dataTables_wrapper .dataTable{table-layout:fixed}.steedos .list-table-container .dataTables_wrapper .JCLRgrip .JColResizer{top:1px;height:70vh}.steedos .list-table-container .dataTable thead>tr>td.sorting,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc,.steedos .list-table-container .dataTable thead>tr>th.sorting,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc{padding-right:0}.steedos .list-table-container .dataTable thead>tr>td.sorting>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc>a{padding-right:30px}.steedos .list-table-container .dataTable thead .sorting:after,.steedos .list-table-container .dataTable thead .sorting_asc:after,.steedos .list-table-container .dataTable thead .sorting_asc_disabled:after,.steedos .list-table-container .dataTable thead .sorting_desc:after,.steedos .list-table-container .dataTable thead .sorting_desc_disabled:after{display:none;bottom:4px}.steedos .list-table-container .dataTable thead>tr>th{position:relative}.steedos .list-table-container .dataTable thead>tr>th .slds-th__action{margin-bottom:1px}.td-cell-wrap table td{white-space:normal}.steedos.fixed #sidebar-menu{background:#fff;position:fixed;top:90px;width:250px;height:calc(100% - 90px);padding:0}.steedos.fixed .slds-form-element .control-label{font-weight:400;color:#706e6b}.steedos.fixed .dx-datagrid{background:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-rowsview{border-top:0}.steedos.fixed .dx-datagrid .dx-freespace-row td,.steedos.fixed .dx-datagrid .dx-freespace-row td:hover,.steedos.fixed .dx-datagrid .dx-row{background-color:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget{padding:3px;font-size:12px;border-top:1px solid #ddd}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-page-sizes .dx-page-size,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-page{padding:3px 8px}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-next-button,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-prev-button{padding:3px 8px;line-height:25px}.steedos.fixed .slds-tabs--default__nav,.steedos.fixed .slds-tabs_default__nav{border-bottom:1px solid #e7e7eb}.steedos.fixed .slds-modal__header{background-color:#f4f4f4;border-bottom:1px solid #d5d5da;color:#878687}.steedos.fixed .slds-modal__footer{border-top:1px solid #d5d5d5}.steedos.fixed .forceEntityIcon.extraSmall{width:1.5rem;height:1.5rem}.steedos.fixed .forceEntityIcon{display:block;border-radius:.125rem}.steedos.fixed .creator_view #creator-tabular .slds-card+.slds-card{margin-top:.75rem}.steedos.fixed .modal-dialog{margin:0 auto}.steedos.fixed .modal,.steedos.fixed .modal-body,.steedos.fixed .modal-footer,.steedos.fixed .modal-header{zoom:1!important}.flexipageBaseRecordHomeTemplateDesktop{height:100%}.flexipageBaseRecordHomeTemplateDesktop .row-main{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin:.75rem 0 0}.flexipageBaseRecordHomeTemplateDesktop .region-subheader{margin-top:.75rem}.flexipageBaseRecordHomeTemplateDesktop .region-main{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;max-width:70%;min-width:564px}.flexipageBaseRecordHomeTemplateDesktop .region-full-width{max-width:100%}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333%;min-width:404px}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{padding-left:.75rem;padding-right:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left{padding-left:0;padding-right:.75rem}@media only screen and (max-width:47.9375em){.flexipageBaseRecordHomeTemplateDesktop{min-width:auto}.flexipageBaseRecordHomeTemplateDesktop .row-main{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flexipageBaseRecordHomeTemplateDesktop .region-main{min-width:auto;max-width:none}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{min-width:auto;width:100%;padding:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{margin-top:.75rem}}.dx-scheduler-header{position:absolute;top:3px;left:calc(50% - 140px);right:100px;background:transparent;border:none;width:auto}.dx-scheduler-work-space{padding-top:0;margin-top:0}.dx-scheduler-all-day-title{margin-top:-64px}.dx-scheduler-header-panel-cell .dx-scheduler-header-panel-cell-date:last-child{font-size:16px}.dx-scheduler-navigator-caption{max-width:unset;width:auto}.slds-form_horizontal .slds-form-element__control{line-height:24px}.dx-treeview-item{padding:8px;min-height:32px;line-height:inherit}.dx-treeview-toggle-item-visibility{height:34px}.dx-treelist-headers .dx-treelist-table .dx-row>td,.dx-treelist .dx-row>td{padding-top:6px;padding-bottom:6px}.dx-treelist .dx-row>td{line-height:unset}.dx-treeview-with-search .dx-placeholder{font-size:13px}.slds-card{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border:.1px solid transparent}.dx-treeview [role=treeitem][aria-selected=true]>.dx-treeview-item{background:rgba(21,137,238,.1);box-shadow:inset 4px 0 0 #1589ee}.dx-treeview-node{padding-left:0}.dx-treeview-search{margin:8px 6px}.dx-treeview-item.dx-state-hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.87)}.dx-treeview-item-without-checkbox.dx-state-focused>.dx-treeview-item{background-color:rgba(0,0,0,.05)}.dx-treeview-toggle-item-visibility,.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{font-size:18px}.dx-treeview .dx-treeview-item-with-checkbox>.dx-checkbox{margin-top:-6px}.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:24px}.dx-treeview [aria-level="1"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:68px}.dx-treeview [aria-level="2"]>.dx-treeview-item{padding-left:48px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:30px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:98px}.dx-treeview [aria-level="3"]>.dx-treeview-item{padding-left:72px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:60px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:128px}.dx-treeview [aria-level="4"]>.dx-treeview-item{padding-left:96px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:90px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:158px}.dx-treeview [aria-level="5"]>.dx-treeview-item{padding-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:188px}.dx-treeview [aria-level="6"]>.dx-treeview-item{padding-left:144px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:150px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:218px}.dx-treeview [aria-level="7"]>.dx-treeview-item{padding-left:168px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:180px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:248px}.dx-treeview [aria-level="8"]>.dx-treeview-item{padding-left:192px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:210px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:278px}.dx-treeview [aria-level="9"]>.dx-treeview-item{padding-left:216px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:240px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:308px}.dx-treeview [aria-level="10"]>.dx-treeview-item{padding-left:240px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:270px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:338px}.dx-treeview [aria-level="2"]>.dx-treeview-toggle-item-visibility{margin-left:24px}.dx-treeview [aria-level="3"]>.dx-treeview-toggle-item-visibility{margin-left:48px}.dx-treeview [aria-level="4"]>.dx-treeview-toggle-item-visibility{margin-left:72px}.dx-treeview [aria-level="5"]>.dx-treeview-toggle-item-visibility{margin-left:96px}.dx-treeview [aria-level="6"]>.dx-treeview-toggle-item-visibility{margin-left:120px}.dx-treeview [aria-level="7"]>.dx-treeview-toggle-item-visibility{margin-left:144px}.dx-treeview [aria-level="8"]>.dx-treeview-toggle-item-visibility{margin-left:168px}.dx-treeview [aria-level="9"]>.dx-treeview-toggle-item-visibility{margin-left:192px}.dx-treeview [aria-level="10"]>.dx-treeview-toggle-item-visibility{margin-left:216px}.dx-scrollbar-vertical.dx-scrollbar-hoverable{width:12px}.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{width:16px}.dx-scrollbar-vertical .dx-scrollable-scroll{width:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable{height:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover{height:16px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{height:18px}.dx-scrollbar-horizontal .dx-scrollable-scroll{height:14px}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a{color:#777}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a .slds-truncate .slds-button__icon{visibility:hidden;margin-right:.2rem}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a{color:#333}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a .slds-truncate .slds-button__icon{visibility:visible}.steedos .dx-button-text{text-transform:unset}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content{border:1px solid #ddd;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);border-radius:6px;min-width:10rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content{padding:1rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content .dx-actionsheet-item .dx-button{border-radius:4px;background-color:#fff;border:1px solid #ddd;color:#333;box-shadow:none}.steedos .navigation-bar{width:100%;padding:9px;height:51px;border-bottom:1px solid #dddbda;background-color:#f3f2f2}.object-form label{font-weight:400}.steedos-amis-button{line-height:inherit!important}.steedos-amis-button button,.steedos-amis-button span{background-color:transparent!important;border:none!important}.steedos-amis-button span:active,.steedos-amis-button span:focus,.steedos-amis-button span:focus-visible,.steedos-amis-button span:hover{background-color:transparent!important;border:none!important;outline:none!important}.steedos-amis-button .slds-dropdown__item span{position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding:.5rem .75rem;color:#181818;white-space:nowrap;cursor:pointer}.creator-form-builder ._id-wrap{display:none}.creator-form-builder .className-wrap{display:none!important}.creator-form-builder .fields-wrap{display:none}.creator-form-builder .code-wrap label:after,.creator-form-builder [type=odata] .code-wrap label:after,.creator-form-builder [type=odata] .formula-wrap label:after,.creator-form-builder [type=odata] .search_field-wrap label:after,.creator-form-builder [type=odata] .url-wrap label:after{content:" *";color:red}.creator-form-builder .form-wrap.form-builder .frmb .prev-holder input[type=number]{width:100%}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options .option-value{display:none}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options input[type=text]{width:72%!important}.creator-form-builder #fbEditorForm .form-group .control-label{display:none!important}.form-wrap.form-builder .frmb .prev-holder .form-group>label:not([class=fb-checkbox-label]){display:none}.form-elements .form-group label{display:block!important}.section-field .form-group,.table-field .form-group{margin-left:0!important;margin-bottom:15px!important}.flow-modal .modal-lg{width:992px}.copy-flow-modal [data-required=true] label:after,.new-flow-modal [data-required=true] label:after{content:" *";color:red}#distribute_edit_flow_modal .selectize-input .item{color:#fff;background-color:#1b9dec!important;padding-right:24px!important;padding-left:3px!important;background-image:-webkit-linear-gradient(top,#1da7ee,#178ee9)!important;background-image:linear-gradient(180deg,#1da7ee,#178ee9)!important;background-repeat:repeat-x!important;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 1px hsla(0,0%,100%,.03)!important}#distribute_edit_flow_modal .selectize-input .remove{padding-top:4px!important}.creator-modal{zoom:1!important}#collectionModal .modal-body #cmForm>div:last-child{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#collectionModal .modal-footer form{display:inline-block}#cmForm.form-horizontal .control-label{text-align:left}#afModal .slds-modal__container{width:auto;max-width:100%}#afModal .slds-modal__container .slds-modal__content .remove-prompt{font-size:16px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox{margin-left:-10px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .slds-checkbox--faux{margin-top:-3px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .label-multiple-update{color:#706e6b;font-size:14px;font-weight:400}#afModal .slds-modal__container .slds-modal__footer .slds-button_destructive.btn-remove{float:left}#afModal [data-required=true] label:after{content:" *";color:red}#afModal .group-section .slds-section__title{font-size:.9rem;font-weight:inherit}#afModal .group-section .slds-section__title .slds-button__icon{width:.8rem;height:.8rem}#afModal .view-page-section-row .view-page-block-item{padding:0 .75rem}#afModal .view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;width:100%;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;padding:0 1rem 0 .75rem;line-height:34px;width:100%!important}#afModal .view-page-section-row .uiInput .form-control:active,#afModal .view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}#afModal .view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#afModal .view-page-section-row .uiInput .form-control[disabled]:active,#afModal .view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}#afModal .view-page-section-row .uiInput textarea.form-control{overflow:hidden}@media (max-width:599px){#afModal .view-page-section-row{display:block}}.slip-reordering{box-shadow:0 2px 10px rgba(0,0,0,.45)}.slip-swiping-container{overflow-x:hidden}.slippylist .slippylist-item{user-select:none;-moz-user-select:none;-webkit-user-select:none}.slippylist .slippylist-item.slip-allow-select{user-select:text;-moz-user-select:text;-webkit-user-select:text}.slippylist .slippylist-item.slip-allow-select span{cursor:text}.slippylist{clear:left}.slippylist input{vertical-align:middle}.skewed{transform:rotate(2deg) scale(.99);-webkit-transform:rotate(2deg) scale(.99)}.slip-no-swipe.slip-no-reorder{opacity:.5}@media print{body,html{position:static!important}.instance-print *{color:inherit!important}.instance-print .table-page-body .form-group,.instance-print .table-page-body .instance-sign,.instance-print .table-page-footer .form-group,.instance-print .table-page-footer .instance-sign{color:#000!important}.instance-print .instance-table .form-table .td-title.is-required:after{color:red!important}.box-tools button{display:none}.instance-traces .box-body{display:block!important}.no-print{display:none!important}a[href]:after{content:""!important}a,a:visited{text-decoration:none!important}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #000!important}.table-bordered th{border-bottom:1px solid #000!important}.steedos-table .checkbox,.steedos-table .radio{display:table-cell!important;position:static!important}.steedos-table table{border-bottom:none!important}.steedos-table .table{border-left:0!important;border-right:0!important;border-collapse:separate!important}.ins_attach_version{display:none!important}table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}}.instance-print{font-size:14px}.instance-print table{margin:auto}.instance-print .hidden-xs,.instance-print .instance-view .instance-name{display:inline!important}.instance-print .wrapper{overflow:visible;background:silver!important;position:inherit!important}.instance-print .content-wrapper{top:0!important}.instance-print .btn{border-radius:0}.instance-print .box{border-radius:0;border-top:0;margin-bottom:0;padding-bottom:10px;box-shadow:none}.instance-print .box .box-body{padding:10px 0 0}.instance-print .content-wrapper{margin-left:auto!important;width:700px;margin:0 auto;-webkit-transition:all .3s;transition:all .3s}.instance-print .instance-table .instance-template,.instance-print .traces_table_modal .instance-template{-webkit-transition:all .3s;transition:all .3s;max-width:none}.instance-print .instance-table .instance-traces,.instance-print .traces_table_modal .instance-traces{-webkit-transition:all .3s;transition:all .3s;max-width:none;padding-bottom:10px}.instance-print .instance-table .instance-traces>.pull-left,.instance-print .traces_table_modal .instance-traces>.pull-left{padding:10px 0 4px;font-size:15px}.instance-print .instance-table .steedos-table table thead .title,.instance-print .traces_table_modal .steedos-table table thead .title{min-width:auto;white-space:normal}.instance-print .navigation-bar .print-tool{padding:6px 12px;float:left}.instance-print .navigation-bar .print-tool .cbx-label{cursor:pointer;margin-right:8px}.instance-print .navigation-bar .print-tool .cbx-label .cbx-print{margin-right:4px}.instance-print .navigation-bar .print-tool .cbx-label span{position:relative;top:-1px}.instance-print .instance_attachments{margin-top:0!important}.instance-print .instance-traces{padding-left:15px;padding-right:15px}.instance-print .form-control{min-height:22px!important;text-align:left}.instance-print .td-padding{padding:5px 10px!important}.section .control-label{color:#333;font-weight:700;font-size:15px}.instance.instance-default .section.callout.callout-default{padding:2px 0;border:none;background:#fff;border-radius:0;margin-top:5px;margin-bottom:-5px}.instance.instance-default .section .control-label{color:#795548;font-weight:700;font-size:16px;width:100%;border-bottom:1px dashed #d2d6de;padding-bottom:3px}.instance.instance-default .section p{color:#777}.steedos-table .item-readonly{cursor:pointer}.steedos-table table .removed{min-width:31px;width:31px;text-align:center}.steedos-table table tbody .edit{cursor:pointer}.steedos-table table .number{text-align:right}.steedos-table table thead .title{min-width:50px;white-space:nowrap}.steedos-table .checkbox,.steedos-table .radio{margin-top:0;margin-bottom:0;display:table-cell;border-radius:0}.steedos-table .steedosTable-add-item{padding:3px 8px}.steedos-table .panel-body .panel-heading{background-color:#f5f5f5;border-color:#ddd}.steedos-table .panel-body .panel-heading .description{display:inherit}.steedos-table .panel-body .panel-heading .control-label{font-weight:700;font-size:15px}.instance-table .form-table .form-group .steedos-table .autoform-table tr td{border-top:1px solid #000!important;border-bottom:0!important}.instance-table .form-table .form-group .steedos-table .autoform-table td:last-child{border-right:none!important}.steedos-table .add-item-tr{background:rgba(255,255,0,.03);cursor:pointer}.steedos-table .add-item-tr td{border-bottom:0!important}.steedos-table .add-item-tr .ion{height:20px;line-height:20px;margin-right:6px}.steedos-table .panel-body{padding:0}.steedos-table .panel-body .panel-content{padding:0;overflow-x:auto}.steedos-table .panel-body .panel-content .table{margin-bottom:0}.instance-default .steedos-table{border-radius:0;border:none}.instance-default .steedos-table .panel-body .panel-heading{border:none;padding:2px 0;margin-bottom:-5px;margin-top:5px;background:none}.instance-default .steedos-table .panel-body .panel-heading .control-label{width:100%;color:#795548;font-size:16px}.instance-default .steedos-table .panel-body .panel-heading .description{margin-top:-10px;margin-bottom:10px;color:#777;padding-top:5px}.instance-default .steedos-table .panel-body .panel-content{padding-bottom:1px;border:1px solid #d2d6de}.instance-default .steedos-table .panel-body .panel-content .table-bordered{border:none}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead{background:#f9f9f9}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td{border:1px solid #eee;border-top:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:last-child{border-right:0}.steedos-table-modal .steedos-table-modal-body{overflow-y:auto;padding:0}.steedos-table-modal .steedos-table-modal-body .panel{border:none;box-shadow:none;margin-bottom:0}.steedos-table-modal .steedos-table-modal-body .panel .panel-body{padding:5px 15px;border:none;position:relative}.steedos-table-modal .steedos-table-modal-body .panel .panel-body .dx-widget.form-control{padding:6px 12px}.steedos-table-modal .steedos-table-modal-body .panel .panel-heading{display:none}.steedosTable-item-add{padding:2px 7px}#steedos-table-modal .steedos-selectize .selectize-dropdown{position:fixed;top:auto!important;left:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input [data-value]{padding:2px!important;min-height:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input .slds-pill .slds-pill__action{line-height:24px}.steedos-selectize .selectize-input{border-radius:0!important;background-image:none!important;border-color:#d2d6de!important;box-shadow:none!important;height:auto}.steedos-selectize .selectize-dropdown{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;height:200px!important}.steedos-selectize .selectize-dropdown-content{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;max-height:none!important;height:auto!important}.steedos-selectize .selectize-control.multi .selectize-input.has-items{padding:0!important}.steedos-selectize .selectize-control .selectize-input.disabled{opacity:1!important}.steedos-selectize .selectize-control.multi .selectize-input.disabled [data-value]{color:inherit!important}.steedos-selectize .disabled .slds-pill__remove{display:none}.slds-pill{display:inline-flex;align-items:center;justify-content:space-between;line-height:1.5;max-width:100%;padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff;position:relative;min-height:1.625rem}@media (pointer:coarse) and (hover:none){.slds-pill{line-height:1.875rem;padding:0 .75rem}}.slds-pill+.slds-pill{margin-left:.125rem}@media (pointer:coarse) and (hover:none){.slds-pill+.slds-pill{margin-left:.25rem}}.slds-pill:hover{background-color:#f4f6f9}.slds-pill:focus{outline:0;border-radius:.25rem;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.slds-pill a{text-decoration:none}.slds-pill--bare,.slds-pill_bare{background-color:transparent;border:0}.slds-pill--bare:hover,.slds-pill_bare:hover{background-color:transparent}.slds-pill-container,.slds-pill__container,.slds-pill_container{display:flex;min-height:calc(1.875rem + 2px);padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff}@media (pointer:coarse) and (hover:none){.slds-pill-container,.slds-pill__container,.slds-pill_container{padding:.25rem}}.slds-pill-container .slds-listbox_inline,.slds-pill__container .slds-listbox_inline,.slds-pill_container .slds-listbox_inline{margin-left:0;margin-right:0}.slds-pill__container--bare,.slds-pill__container_bare,.slds-pill_container--bare,.slds-pill_container_bare{display:flex;padding:.125rem;border:0;border-radius:0;background-color:transparent}.slds-pill__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (pointer:coarse) and (hover:none){.slds-pill__label{font-size:.875rem}}.slds-pill__label:focus{outline:0;border-radius:.25rem;box-shadow:0 0 3px #0070d2}.slds-pill__icon,.slds-pill__icon_container{width:1.25rem;height:1.25rem;margin-right:.25rem}.slds-pill__icon .slds-avatar,.slds-pill__icon .slds-icon,.slds-pill__icon_container .slds-avatar,.slds-pill__icon_container .slds-icon{width:1.25rem;height:1.25rem;display:block;font-size:.625rem}.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:calc(1.5rem + 2px)}@media (pointer:coarse) and (hover:none){.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:2.25rem}}.slds-pill__remove{width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.25rem;border-radius:.125rem}.slds-pill__remove svg{width:.875rem;height:.875rem}.slds-pill--link,.slds-pill_link{border:0;padding:0}.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{display:inline-block;position:absolute;top:50%;left:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{left:.75rem}}.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{position:absolute;top:50%;right:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{right:.75rem}}.slds-pill__action{padding:.125rem calc(1.25rem + 2px) .125rem .125rem;border:1px solid #dddbda;border-radius:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1;color:inherit!important}@media (pointer:coarse) and (hover:none){.slds-pill__action{padding:0 calc(1.75rem + 2px) 0 .75rem}}.slds-pill__action:focus{outline:0;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.selectize-control.multi .selectize-input [data-value]{background:none!important;box-shadow:none!important;border-radius:.25rem!important;display:inline-flex!important;align-items:center!important;justify-content:space-between!important;line-height:1.5!important;max-width:100%!important;padding:0!important;border:none!important;background-color:#fff!important;position:relative!important;min-height:1.625rem!important;text-shadow:none!important}.instance_new{cursor:pointer}.sidebar .treeview-menu .ion{float:left}.sidebar .treeview-menu .inbox-flow .flow-name{width:135px;vertical-align:bottom}.sidebar .treeview-menu .category-name{width:125px;vertical-align:bottom}.sidebar-collapse .sidebar .treeview-menu{max-height:350px;overflow-y:auto}.sidebar-collapse .sidebar .treeview-menu .inbxo-flow .flow-name{width:115px}.workflow .main-sidebar .sidebar-menu ul .active a{color:#0078d7!important}.workflow .main-sidebar .box-space-name{width:140px!important;vertical-align:bottom}.instanceContent{background:#fff}.callout.callout-default{border-color:#d2d6de;color:grey;background-color:#f1f1f1}.callout.callout-default h4{color:#333}.callout-default a{color:grey}.callout-default a:hover{color:#333}.panel-controls{float:right;display:block;cursor:pointer}.autoform-table{text-align:left;width:100%;max-width:100%}.autoform-table td.field.number{text-align:right}.font-size-h3{font-size:24px;margin-top:20px!important;margin-bottom:10px!important}.bg-info{padding:15px}.instance-traces>.heading{font-size:17px}.traces{font-size:14px}.traces td{border:none}.trace-item{height:30px;background-color:#eee;font-weight:700;font-size:14px;color:#404040}.trace-item .trace-approve-talbe .approve-item a.btn-link{display:inline-block}.approve-item,.approve-item-distribute{height:30px;font-size:13px;cursor:pointer}.approve-item-distribute .name,.approve-item .name{font-weight:700}.approve-item-distribute{cursor:auto!important}.approve-item .red{color:red}.approve-item .blue{color:#00f}.approve-description{border:none;height:auto}.approve-description .description{padding-top:0;border:none}.approve-description .description p{margin:0}.approve-description .red{color:red}.approve-description{cursor:pointer}.approve-item>.name{font-weight:700}.approve-item>.approved,.instance-trace-detail-modal .approved{color:green}.approve-item>.rejected,.instance-trace-detail-modal .rejected{color:red}.approve-item>.autoSubmitted,.instance-trace-detail-modal .autoSubmitted{color:orange}.approve-item>.description{border-top:0;font-size:14px;white-space:pre-line;color:#000}textarea.suggestion-control{height:auto;padding-right:30px;font-size:14px}.button-group{margin-bottom:15px}.button-group>.glyphicon{padding-left:15px;font-size:18px}.suggestion-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #d2d6de;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.suggestion-control:focus{border-color:#3c8dbc;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.suggestion-control::-moz-placeholder{color:#999;opacity:1}.suggestion-control:-ms-input-placeholder{color:#999}.suggestion-control::-webkit-input-placeholder{color:#999}.suggestion-control::-ms-expand{background-color:transparent;border:0}.form-group.has-error .suggestion-control{border-color:#dd4b39;box-shadow:none}.suggestion-control.select2-container{height:auto!important;padding:0}.suggestion-control .select2-choice{border:0;border-radius:2px}.suggestion-control:not(select){-webkit-appearance:none}.suggestion-control.select2-container.select2-dropdown-open{border-color:#5897fb;border-radius:3px 3px 0 0}textarea{resize:none}@media (min-width:768px){.container{width:760px}}[data-required] label:after{content:" *";color:red}.instance-attachments>.heading{font-size:17px}.ins-upload{display:inline-block;position:relative}.ins-upload .ins-file-icon{padding-left:15px;font-size:18px}.ins-upload .ins-file-input{display:inline-block;top:0;left:0;overflow:hidden}.ins-upload .ins-file-input,.ins-upload .ins-file-version-input{position:absolute;width:100%;height:100%;opacity:0;z-index:100;cursor:pointer}.ins-upload .ins-file-version-input{top:1px}.ins-applicant-selector{display:inline-block;width:160px}.ins-modal{-webkit-border-radius:4px}.ins-attach-view .delete,.ins-attach-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-view a{color:#3c8dbc}.ins-attach-view a:hover{text-decoration:underline}.ins-attach-view:hover .delete,.ins-attach-view:hover .mouse-hover{display:inline-block}.ins-attach-version-view{padding:8px}.ins-attach-version-view .delete,.ins-attach-version-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-version-view a:hover{text-decoration:underline}.ins-attach-version-view:hover .delete,.ins-attach-version-view:hover .mouse-hover{display:inline-block}.form-group .select2{width:100%!important}.selectOrg[readonly],.selectUser[readonly]{background-color:#fff!important}.draft .selectOrg[readonly],.draft .selectUser[readonly],.inbox .selectOrg[readonly],.inbox .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.draft .selectOrg[disabled],.draft .selectUser[disabled],.inbox .selectOrg[disabled],.inbox .selectUser[disabled],.selectOrg[disabled],.selectUser[disabled]{background-color:#fff!important}.cfTextarea[disabled],.cfTextarea[readonly]{height:100%;min-height:60px;word-wrap:break-word;word-break:keep-all}.steedos-table-modal-body .form-control{background-color:rgba(255,255,0,.03)!important}.steedos-table-modal-body .form-control[disabled],.steedos-table-modal-body .form-control[readonly],.steedos-table-modal-body fieldset[disabled] .form-control{background-color:#fff;opacity:1;color:#000}.instance-default .instance-form .form-control[disabled],.instance-default .instance-form .form-control[readonly],.instance-default .instance-form fieldset[disabled] .form-control{background-color:#fff!important;opacity:1;color:#000}.instance-default .instance-form .selectOrg[readonly],.instance-default .instance-form .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .selectOrg[disabled],.instance-default .instance-form .selectUser[disabled]{background-color:#fff!important}.instance-default .instance-form.draft .form-control,.instance-default .instance-form.inbox .form-control{background-color:rgba(255,255,0,.03)}.instance-default .instance-form .field-editable{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .readonly-table{border:1px solid #d2d6de}.instance-default .instance-form .readonly-table table{border:none}.instance-default .instance-form .readonly-table table tr td:first-of-type{border-left:none}.instance-default .instance-form .readonly-table table tr td:last-of-type{border-right:none}.instance p{margin:0}.instance .instance-header{margin-left:15px;margin-bottom:0!important}.instance .instance-header>div{padding-top:6px;padding-bottom:6px;text-align:left;font-weight:400}.instance .instance-form .box-body>.col-md-12{padding-right:0}.instance .instance-form .box-body form>.col-md-6:nth-child(2n){clear:both}@media (max-width:768px){.instance .instance-form .box-body .form-group.opinion-field{margin-bottom:10px}}.instance .instance-form .box-header{padding:0;margin-bottom:10px;margin-right:15px}.instance .instance-form .applicant-wrapper .input-group-addon{padding-left:0;border:none}.instance .instance-form .applicant-wrapper input{cursor:pointer}.instance .instance-form .ins_applicant{padding:6px 12px;width:100%;display:inline-block}.instance .instance-form #instanceform .col-md-6,.instance .instance-form #instanceform .col-md-12{padding-left:0}.instance-sign{border:1px solid #d2d6de;padding:5px 10px;color:#000}.instance-sign .instance-sign-content{min-height:20px;margin-bottom:10px}.instance-sign .instance-sign-content .not-finished{color:#888}.instance-sign .instance-sign-content .my-approve{border-left:3px solid #3c8dbc;padding-left:4px}.instance-sign .instance-sign-text{clear:both}.instance-traces{padding-right:15px}.instance-table .instance-traces{max-width:700px;padding-right:0}.instance-table .instance-template,.traces_table_modal .instance-template{max-width:700px}.instance-table .instance .form-group .form-control,.traces_table_modal .instance .form-group .form-control{min-height:34px}.instance-table .bootstrap-datetimepicker-widget table td,.traces_table_modal .bootstrap-datetimepicker-widget table td{border:none!important}.instance-table .instance-form .box-body>.col-md-12,.traces_table_modal .instance-form .box-body>.col-md-12{padding-right:15px}.instance-table .instance-form .box-header,.traces_table_modal .instance-form .box-header{padding:0;margin-bottom:0}.instance-table .instance-form .table-page-footer td,.traces_table_modal .instance-form .table-page-footer td{padding-left:0;padding-right:0}.instance-table .instance-sign,.traces_table_modal .instance-sign{border:0!important;padding:0}.instance-table .opinion-field,.traces_table_modal .opinion-field{padding:5px 10px;background:inherit!important}.instance-table .cfTextarea[disabled],.instance-table .cfTextarea[readonly],.traces_table_modal .cfTextarea[disabled],.traces_table_modal .cfTextarea[readonly]{min-height:auto}.instance-table .cfTextarea[disabled] p,.instance-table .cfTextarea[readonly] p,.traces_table_modal .cfTextarea[disabled] p,.traces_table_modal .cfTextarea[readonly] p{margin:0}.instance-table .attachments-list .attachments,.traces_table_modal .attachments-list .attachments{margin-bottom:0}.instance-table .box-header,.traces_table_modal .box-header{text-align:center;font-weight:bolder}.instance-table .applicant-wrapper,.traces_table_modal .applicant-wrapper{margin:0;text-align:left}.instance-table .applicant-wrapper .form-control.ins_applicant,.traces_table_modal .applicant-wrapper .form-control.ins_applicant{padding:0!important;height:100%;display:inline;background:transparent!important;border:none;min-height:20px!important}.instance-table .help-block,.traces_table_modal .help-block{display:none}.instance-table .form-table,.traces_table_modal .form-table{width:100%;border-collapse:collapse;border:2px solid #000;table-layout:fixed}.instance-table .form-table tbody,.instance-table .form-table tr,.traces_table_modal .form-table tbody,.traces_table_modal .form-table tr{border-color:inherit}.instance-table .form-table tr>td,.traces_table_modal .form-table tr>td{position:relative}.instance-table .form-table tr>td .instance-sign-text,.traces_table_modal .form-table tr>td .instance-sign-text{position:absolute;right:5px;bottom:2px}.instance-table .form-table .td-title,.traces_table_modal .form-table .td-title{width:16%;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field,.traces_table_modal .form-table .td-field{text-align:left;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field .form-group,.traces_table_modal .form-table .td-field .form-group{color:#000}.instance-table .form-table .td-field.readonly,.traces_table_modal .form-table .td-field.readonly{background:#fff}.instance-table .form-table .td-field .form-control,.traces_table_modal .form-table .td-field .form-control{padding:0}.instance-table .form-table .td-childfield,.traces_table_modal .form-table .td-childfield{border-top:1px solid #000;border-top-color:inherit!important;border-right:1px solid #000;border-right-color:inherit!important;border-bottom:1px solid #000;border-bottom-color:inherit!important;padding:0!important}.instance-table .form-table .tr-child-table+.td-childfield,.traces_table_modal .form-table .tr-child-table+.td-childfield{border-top:1px solid #000}.instance-table .form-table input,.instance-table .form-table select,.instance-table .form-table textarea,.traces_table_modal .form-table input,.traces_table_modal .form-table select,.traces_table_modal .form-table textarea{border-width:0 0 1px;border-bottom-color:#fff}.instance-table .form-table input:disabled,.instance-table .form-table select:disabled,.instance-table .form-table textarea:disabled,.traces_table_modal .form-table input:disabled,.traces_table_modal .form-table select:disabled,.traces_table_modal .form-table textarea:disabled{border-bottom:none}.instance-table .form-table select.form-control,.traces_table_modal .form-table select.form-control{padding:0}.instance-table .form-table .form-group,.traces_table_modal .form-table .form-group{margin-bottom:0}.instance-table .form-table .form-group .callout,.traces_table_modal .form-table .form-group .callout{margin:0;padding:4px 6px;border-radius:0;border-left:none}.instance-table .form-table .form-group .callout h4,.traces_table_modal .form-table .form-group .callout h4{margin:0;padding:0;height:26px;line-height:26px;font-size:14px;font-weight:700}.instance-table .form-table .form-group .form-control,.traces_table_modal .form-table .form-group .form-control{border:none;min-height:22px}.instance-table .form-table .form-group.has-error .form-control,.traces_table_modal .form-table .form-group.has-error .form-control{border-bottom:1px solid #dd4b39}.instance-table .form-table .form-group .steedos-table,.traces_table_modal .form-table .form-group .steedos-table{border:0;margin-bottom:0}.instance-table .form-table .form-group .steedos-table table,.instance-table .form-table .form-group .steedos-table td,.instance-table .form-table .form-group .steedos-table th,.traces_table_modal .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table td,.traces_table_modal .form-table .form-group .steedos-table th{border:1px solid #000}.instance-table .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table table{border-left:none;border-right:none;border-bottom:none!important}.instance-table .form-table .form-group .steedos-table td:first-child,.instance-table .form-table .form-group .steedos-table th:first-child,.traces_table_modal .form-table .form-group .steedos-table td:first-child,.traces_table_modal .form-table .form-group .steedos-table th:first-child{border-left:0!important}.instance-table .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.instance-table .form-table .form-group .steedos-table th:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table th:nth-last-child(-1n+2){border-right:0!important}.instance-table .form-table .form-group .steedos-table .panel-heading,.traces_table_modal .form-table .form-group .steedos-table .panel-heading{padding:4px 6px;border:none}.instance-table .form-table .form-group .steedos-table .panel-heading .pull-right,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .pull-right{height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .panel-heading .control-label,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .control-label{margin-bottom:0;height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .table-bordered,.traces_table_modal .form-table .form-group .steedos-table .table-bordered{border-bottom:none}.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td{border-bottom:none!important}@-moz-document url-prefix(){.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child th,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child th{border-bottom:1px solid #000!important}}.instance-table .form-table .af-checkbox-group,.instance-table .form-table .af-radio-group,.instance-table .form-table .checkbox,.traces_table_modal .form-table .af-checkbox-group,.traces_table_modal .form-table .af-radio-group,.traces_table_modal .form-table .checkbox{padding-left:12px;padding-top:6px}.instance-table .form-table .form-group>.checkbox,.traces_table_modal .form-table .form-group>.checkbox{vertical-align:middle;margin:0 0 -4px}.instance-table .form-table .form-group>.checkbox label,.traces_table_modal .form-table .form-group>.checkbox label{margin:0;min-height:20px;line-height:20px}.instance-table .form-table .form-group>.checkbox label input,.traces_table_modal .form-table .form-group>.checkbox label input{margin-top:0}.safari .instance-table .form-table .form-group>.checkbox label input,.safari .traces_table_modal .form-table .form-group>.checkbox label input{margin-top:4px}.instance-table .form-table .form-group>.af-checkbox-group label input,.instance-table .form-table .form-group>.af-radio-group label input,.traces_table_modal .form-table .form-group>.af-checkbox-group label input,.traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:0}.safari .instance-table .form-table .form-group>.af-checkbox-group label input,.safari .instance-table .form-table .form-group>.af-radio-group label input,.safari .traces_table_modal .form-table .form-group>.af-checkbox-group label input,.safari .traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:4px}.instance-table .instance-traces,.traces_table_modal .instance-traces{background:#fff}.instance-table .instance-traces .box-header,.traces_table_modal .instance-traces .box-header{padding-left:14px;margin-bottom:-10px;font-size:18px}.instance-table .instance-traces table.traces,.traces_table_modal .instance-traces table.traces{margin:15px auto;background:transparent;border:2px solid #000}.instance-table .instance-traces table.traces tr,.traces_table_modal .instance-traces table.traces tr{background:#fff}.instance-table .instance-traces table.traces td,.traces_table_modal .instance-traces table.traces td{background:transparent;border:1px solid #000;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-table .instance-traces table.traces td.td-stepname,.traces_table_modal .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-table .instance-traces table.traces td.td-approve,.traces_table_modal .instance-traces table.traces td.td-approve{padding:0}.instance-table .instance-traces table.traces td table,.traces_table_modal .instance-traces table.traces td table{width:100%}.instance-table .instance-traces table.traces td table tr,.traces_table_modal .instance-traces table.traces td table tr{width:100%;border:none}.instance-table .instance-traces table.traces td table tr.approve-item,.traces_table_modal .instance-traces table.traces td table tr.approve-item{border-bottom:1px solid #000}.instance-table .instance-traces table.traces td table tr.approve-item.description,.instance-table .instance-traces table.traces td table tr.approve-item:last-child,.traces_table_modal .instance-traces table.traces td table tr.approve-item.description,.traces_table_modal .instance-traces table.traces td table tr.approve-item:last-child{border-bottom:none}.instance-table .instance-traces table.traces td table tr td,.traces_table_modal .instance-traces table.traces td table tr td{text-align:left;border:none}.instance-table .instance-traces table.traces td table tr td.name,.traces_table_modal .instance-traces table.traces td table tr td.name{width:40%;color:#333}.instance-table .instance-traces table.traces td table tr td.finish-date,.traces_table_modal .instance-traces table.traces td table tr td.finish-date{width:35%;min-width:140px;color:#333}.instance-table .instance-traces table.traces td table tr td.description,.traces_table_modal .instance-traces table.traces td table tr td.description{padding-top:6px;padding-bottom:0;height:100%}.instance-table .instance-traces .image-sign,.traces_table_modal .instance-traces .image-sign{max-width:90px;max-height:60px}.instance-view .instance-table .draft .form-table .td-title.title-editable.is-required:after,.instance-view .instance-table .inbox .form-table .td-title.title-editable.is-required:after{content:"*";color:red}.instance-view .instance-table .draft .form-table .td-field.field-editable,.instance-view .instance-table .inbox .form-table .td-field.field-editable{background-color:rgba(255,255,0,.1)!important}.instance-print .navigation-bar #font-minus,.instance-print .navigation-bar #font-plus{padding:6px 8px}.instance-print .navigation-bar #printWidth{width:42px}.instance-print .content-wrapper{width:210mm}.instance-print .instance-traces{background:#fff}.instance-print .instance-traces .box-title{padding:10px 0}.instance-print .instance-table .instance-traces{padding-right:15px}.instance-print .instance-table .instance-traces .box-header{font-size:15px;padding-left:0;border-bottom:0}.instance-print .instance-table .instance-traces .box-header .box-tools{top:10px}.instance-print .instance-table .instance-traces .box-header .box-tools .btn-box-tool{padding:2px 5px 1px}.instance-print .instance-table .instance-traces .box-body{padding-top:0}.instance-print .instance-table .instance-traces .box-body table.traces{margin-top:5px}.af-checkbox-group .readonly,.af-radio-group .readonly,.checkbox .readonly,.radio .readonly{padding-left:0}.instance-form{margin-bottom:0;border-radius:0}.instance-traces{margin-bottom:5px;border-radius:0}.instance-traces .box-header .box-title{margin-left:5px}.touch .instance-traces table.traces{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-traces .cc-label{color:#333;font-weight:400;display:initial;border-radius:12px;margin-left:4px}.instance-traces .cc-label .cc-approve-remove{margin-left:4px}.instance-traces .selected .cc-label{color:#fff;font-weight:400;padding-left:5px;display:initial}.instance-traces .cc-approve-remove{padding:0;color:#97a0b3!important;cursor:pointer}.instance-traces .cc-approve-remove .ion{font-size:90%}.instance-traces .cc-approve-remove:hover{color:#606c84!important}.instance .form-group .form-control{height:100%;min-height:32px;word-break:break-all;padding-top:5px;padding-bottom:6px;vertical-align:middle}.instance .form-group .form-control.dx-date-box{width:100%!important;padding:0 0 0 12px}.instance .form-group .form-control.dx-date-box.dx-texteditor.dx-state-disabled:after{display:none}:root .instance .form-group .form-control,_:-ms-fullscreen{padding-top:6px}.instance .form-group .form-control,_:-ms-lang(x),_:-webkit-full-screen{padding-top:6px}.instance-table.instance .form-group .form-control{padding-top:0;padding-bottom:0}.instance-table.instance .form-group .form-control.dx-date-box{padding-left:0;margin:-3px 0}.instance-table.instance .form-group .form-control.dx-date-box .dx-texteditor-container .dx-texteditor-input{padding-right:20px}.instance .form-group input[type=date].form-control,.instance .form-group input[type=datetime-local].form-control{height:32px}.af-checkbox-group,.instance .form-group .af-radio-group{min-height:22px}.instance .form-group>.checkbox{min-height:22px;line-height:22px;padding-left:0;padding-top:0;margin-top:6px}.instance .form-group>.af-checkbox-group,.instance .form-group>.af-radio-group{padding-left:0;padding-top:0}.android .steedos-table-modal .form-group>.checkbox label,.mobile-safari .instance .form-group>.af-checkbox-group label,.mobile-safari .instance .form-group>.af-radio-group label,.mobile-safari .instance .form-group>.checkbox label,.mobile-safari .steedos-table-modal .form-group>.af-checkbox-group label,.mobile-safari .steedos-table-modal .form-group>.af-radio-group label,.mobile-safari .steedos-table-modal .form-group>.checkbox label{line-height:25px}.instance.instance-table .form-group>.af-checkbox-group label,.instance.instance-table .form-group>.af-radio-group label,.instance.instance-table .form-group>.checkbox label,_:-ms-lang(x) label,_:-webkit-full-screen label{line-height:22px}:root .instance .form-group>.checkbox label,_:-ms-fullscreen label{line-height:20px}.instance .instance_attachments{padding-left:0;padding-right:15px}.instance .instance_attachments .attachments-btns,.instance .instance_attachments .attachments-list{margin-bottom:10px}.instance .instance_attachments .ins-upload .steedos-icon-wrap svg.slds-button__icon{fill:#0070d2}.instance-table .instance_attachments{padding-left:0;padding-right:0}.instance-to-attachment label{font-weight:400;cursor:pointer}.image-sign{max-width:180px;max-height:90px}.instance-sign-text{text-align:right}.instance-sign-text .instance-sign-opinion-btn,.instance-sign-text .instance-sign-text-btn,.instance-suggestion #instance_flow_opinions,.instance-suggestion .instance-sign-opinion-btn{text-decoration:underline;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-suggestion #instance_next .instance-suggestion-next-steps{min-height:36px}.instance-suggestion #instance_next .instance-suggestion-next-steps .ion-ios-paperplane-outline{padding-left:5px}.instance-view .instance-name{text-align:center;margin-bottom:15px}.instance-view .instance-name .box-title{font-size:20px}.instance-view .instance-table-name-td{padding-bottom:10px}.no-border,.no-border td{border:0!important}.border-right{border-right:1px solid red!important;border-color:inherit!important}.border-right-none,.border-right-none td:last-child{border-right:0!important}.border-left{border-left:1px solid red!important;border-color:inherit!important}.border-left-none,.border-left-none td:first-child{border-left:0!important}.border-top{border-top:1px solid red!important;border-color:inherit!important}.border-top-none,.border-top-none tr:first-child td{border-top:0!important}.border-bottom{border-bottom:1px solid red!important;border-color:inherit!important}.border-bottom-none,.border-bottom-none tr:last-child td{border-bottom:0!important}.nowrap{white-space:nowrap}.verticle-mode{writing-mode:tb-lr;letter-spacing:12px;padding-top:12px!important;height:140px}.verticle-mode,.verticle-mode label{-webkit-writing-mode:vertical-lr;writing-mode:vertical-lr}.verticle-mode label{display:inline}.td-center{vertical-align:middle!important;text-align:center}.inline-left{display:inline;float:left}.inline-right{display:inline;float:right}.font-color-red{color:red!important}.font-color-black{color:#000!important}.border-color-red{border-color:red!important}.border-color-black{border-color:#000!important}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.font-weight-bold{font-weight:700}.instance-template tr:nth-child(2) td{border-top:0!important}.instance-template .section,.instance-template .section .control-label{color:inherit!important}.instance-template .form-table td{border-width:1px;border-style:solid!important;border-color:inherit!important}.instance-template td{vertical-align:top;padding:5px 10px}.instance-template td label{color:inherit;margin-bottom:0;font-weight:400}.instance-template .form-control[disabled],.instance-template .form-group[disabled]{width:100%;height:100%;background-color:transparent!important;border:none;padding:0}.instance-template input{font-size:inherit;padding:0;min-height:22px!important;font-weight:inherit}.instance-template textarea{font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}.instance-template select{font-family:inherit;color:inherit;font-weight:inherit}.instance-template .td-childfield>.form-group{color:inherit}.instance-template .form-group{color:#000}.instance-template .applicant-wrapper .form-control{color:#000!important}.instance-template .instance-title,.instance-template .instance-title .form-group,.instance-template .page-title,.instance-template .page-title .form-group{color:inherit;text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-control,.instance-template .instance-title .form-group .form-control,.instance-template .page-title .form-control,.instance-template .page-title .form-group .form-control{text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-group,.instance-template .instance-title .form-group .form-group,.instance-template .page-title .form-group,.instance-template .page-title .form-group .form-group{text-align:center;text-align:-webkit-center}.instance-template .instance-title .form-group select,.instance-template .instance-title select,.instance-template .page-title .form-group select,.instance-template .page-title select{height:41px!important;max-width:600px;margin:0 auto}.instance-template .instance-title .form-group input,.instance-template .instance-title input,.instance-template .page-title .form-group input,.instance-template .page-title input{min-height:41px!important}.instance-template .form-control{font-size:inherit;color:inherit!important;background-color:transparent!important}.ins-opinion-modal .btn-new-opinion{cursor:pointer;background:#fff}.ins-opinion-modal .btn-new-opinion:focus,.ins-opinion-modal .btn-new-opinion:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.ins-opinion-modal .list-group{margin-bottom:15px}.ins-opinion-modal .list-group .list-group-item{-ms-user-select:none;user-select:none;-moz-user-select:none;-webkit-user-select:none}.ins-opinion-modal .list-group .list-group-item .btn-sm{margin:-5px -2px}.ins-opinion-modal .list-group .list-group-item .pull-right{margin-right:-8px}.ins-opinion-modal .list-group:last-child .list-group-item:last-child{border-bottom:1px solid #ddd;border-bottom-left-radius:0;border-bottom-right-radius:0}.related-instances .related-instances-item a{color:#3c8dbc;cursor:pointer}.related-instances .related-instances-item .ins-related-delete{margin-left:10px}.related-instances .related-instances-item a:hover{text-decoration:underline}.steedos-html.steedos-html-table-only{margin:-6px -12px -6px -13px}.steedos-html.steedos-html-table-only table{border:none;width:100%!important}.instance-table .steedos-html.steedos-html-table-only{margin:-6px}.instance-table .steedos-html.steedos-html-table-only table tr:first-child td{border-top-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr:last-child td{border-bottom-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:first-child{border-left-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:last-child{border-right-width:0!important}.instance-form .slds-select_container:before{display:none}.traces_table_modal .modal-body{border-top:0}.traces_table_modal .modal-body .modal-header{display:none}.traces_table_modal .box{border:0;box-shadow:none}.traces_table_modal .box .box-header{display:none}.traces_table_modal .box .box-body{padding:0}.traces_table_modal .box .box-body table{margin:0 auto}.traces_modal .modal-body{padding:0}.traces_modal .modal-body .box{border-top:0}.traces_modal .modal-body .box .box-header{display:none}.instance-traces ol,.instance-traces ul{list-style:decimal;list-style-position:inside}.instance-trace-detail-modal .modal-header .modal-title{font-size:18px;font-weight:700}.instance-sign-modal #instance_flow_opinions{text-decoration:underline;cursor:pointer}.instance-sign-modal .suggestion-control{min-height:120px;font-size:17px}.instance-sign-modal .instance-sign-history{text-decoration:underline;cursor:pointer}.instance-sign-modal .instance-suggestion{font-size:15px}.instance-sign-modal .instance-suggestion .instance-sign-opinion-btn{display:inline-block;line-height:30px;margin-right:15px;vertical-align:bottom;font-size:17px;max-width:100%}.instance-sign-modal .instance-suggestion #instance_flow_opinions{line-height:30px;display:inline-block;font-size:17px}.history-sign-approve a{color:inherit}.history-sign-approve a.finish-date{float:right}.history-sign-approve .select-suggestion-td{width:10px}.history-sign-approve .select-suggestion-td .select-suggestion{display:inline-block;float:right}.history-sign-approve tr{cursor:pointer}.history-sign-approve .sign-approves{margin-top:0}.history-sign-approve .sign-approves .use-suggestion{margin-right:10px}.history-sign-approve .sign-approves .use-suggestion .weui-media-box__title{overflow:auto;text-overflow:unset;white-space:normal;font-size:15px!important;font-weight:400!important}.history-sign-approve .sign-approves .select-suggestion .weui-switch{outline:none;zoom:.78;cursor:pointer}.instance-pick_approve_users .title th{font-weight:700;border:1px solid #d2d6de}.instance-pick_approve_users .title .step{text-align:center}.instance-pick_approve_users .title .approves{padding-left:13px}.instance-pick_approve_users .step-item .td-step-approves .form-group{margin-bottom:0}.instance-pick_approve_users .step-item .td-step-approves .form-group .control-label{display:none}.instance-pick_approve_users .stepName{text-align:center}.instance-pick_approve_users .action{width:50px;text-align:center}.instance-pick_approve_users .td-step-check{width:80px;text-align:center}.instance-pick_approve_users .td-step-approves{background-color:rgba(255,255,0,.1)!important}.instance-pick_approve_users .td-step-approves .checkbox-inline label,.instance-pick_approve_users .td-step-approves .radio-inline label{font-weight:400}.instance-pick_approve_users .selectUser-box{line-height:28px!important;border:none!important;background-color:inherit!important}.instance-pick_approve_users .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-pick_approve_users .instance-traces table.traces{background:transparent;border:2px solid #d2d6de}.instance-pick_approve_users .instance-traces table.traces tr{background:#fff}.instance-pick_approve_users .instance-traces table.traces td{background:transparent;border:1px solid #d2d6de;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-pick_approve_users .instance-traces table.traces td.td-approve{padding:0}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:auto}.instance-pick_approve_users .instance-traces table.traces td.td-step-check{width:50px}.instance-pick_approve_users .instance-traces table.traces td.td-step-approves .radio-inline{display:block;margin:0;white-space:nowrap}}.instance-pick_approve_users .instance-traces table.traces th{white-space:nowrap}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces th.approves{text-align:center;padding-left:0}}.instance-table .instance-pick_approve_users .instance-traces table.traces,.instance-table .instance-pick_approve_users .instance-traces table.traces td,.instance-table .instance-pick_approve_users .instance-traces table.traces th{border-color:#000}.flow_list_box a{cursor:pointer;color:#000}.flow_list_box .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box .weui-cell .ion{font-size:20px}.flow_list_box .weui-cell.checked{background-color:#00a65a;color:#fff}.flow_list_box .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box .box{box-shadow:none}.flow_list_box .box .weui-cells{margin-top:0}.flow_list_box .weui-cell__bd,.flow_list_box .weui-cell__ft{cursor:pointer}.flow_list_box .ion-ios-star{color:#f39c12}.flow_list_box_org a{cursor:pointer;color:#000}.flow_list_box_org .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box_org .weui-cell{padding:6px 15px}.flow_list_box_org .weui-cell .ion{font-size:20px}.flow_list_box_org .weui-cell.checked{background:#beebff}.flow_list_box_org .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box_org .box{box-shadow:none}.flow_list_box_org .box .weui-cells{margin-top:0}.flow_list_box_org .weui-cell__bd,.flow_list_box_org .weui-cell__ft{cursor:pointer}.flow_list_box_org .ion-ios-star{color:#f39c12}.flow-list-box-org-modal{z-index:1050}.flow-list-box-org-modal .modal-body .box-header{padding:10px}.flow-list-box-org-modal .modal-body .contacts-list-wrapper{overflow-y:auto}.flow-list-box-modal-body{padding-top:5px}.forward-select-flow-modal input[readonly]{background-color:#fff!important}.instance-list-wrapper .slds-page-header--object-home{border-radius:0;border-left:0;border-right:0;height:100px}@media (max-width:768px){.instance-list-wrapper .slds-page-header--object-home{height:65px}}.instance-list-wrapper .slds-page-header--object-home .slds-media__figure{margin-top:-2px}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow{width:140%}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow ul{background:#fff!important}.instance-list-wrapper .slds-page-header--object-home .slds-button{cursor:pointer}.instance-list-wrapper .instance-list table.dataTable thead .sorting_asc:after{font:14px/1 DXIcons;content:"\f051";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting_desc:after{font:14px/1 DXIcons;content:"\f052";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting:after{font:14px/1 DXIcons;content:"\f055";opacity:0;bottom:10px}.instance-list-wrapper .instance-list-body .instance-list-sidebar{position:absolute;left:0;top:99px;bottom:0;width:260px;border-right:1px solid #e0e5ee}.instance-list-wrapper .instance-list-body .instance-list-content{position:absolute;left:0;right:0;top:99px;bottom:0}@media (max-width:768px){.instance-list-wrapper .instance-list-body .instance-list-content{top:64px}}@media (min-width:768px){.instance-list-wrapper{background:red}.instance-list-wrapper .dropdown-menu{min-width:260px;max-width:300px}}.instance-list{margin-top:1px}.instance-list .datatable-instances{border-right:none}.instance-list .dataTables_paginate{float:right;width:65%}.instance-list .dataTables_length{float:left;width:35%}@media (max-width:768px){.instance-list .dataTables_paginate{width:100%}}.instance-list>div:nth-child(3){overflow-x:auto}.instance-list .dataTables_container{position:relative}.instance-list .dataTables_container .ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail,.instance-list .dataTables_container .ps-container:hover>.ps-scrollbar-x-rail:hover{background:#fff}.instance-list .dataTables_wrapper tbody tr td{position:relative}.instance-list .flow-name{padding-left:15px;width:69%;color:#777}.instance-list.instance-list-empty .dataTables_wrapper{display:none}.instance-list.instance-list-empty .slds-illustration .slds-illustration__svg{margin-bottom:-.6rem}.instance-list .dataTables_wrapper thead th:first-child{padding-left:20px!important}.instance-list .dataTables_wrapper thead th{white-space:nowrap;min-width:115px}.instance-list .dataTables_wrapper thead th:nth-child(3){min-width:115px}.instance-list .color-priority{color:#00f;display:none}.instance-list .color-priority.instance-name{display:inline-block}.instance-list .color-priority.color-priority-danger{color:red;display:inline-block}.instance-list .color-priority.color-priority-warning{color:purple;display:inline-block}.instance-list .color-priority.color-priority-muted{color:#00f;display:inline-block}.instance-list .step-current-state.terminated{color:grey}.instance-list .step-current-state.approved{color:green}.instance-list .step-current-state.rejected{color:red}.instance-list .instance-priority-bar{position:absolute;width:20px;left:1px;top:22px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-name span{color:#333;display:inline-block;float:right;font-weight:400;margin-right:10px}.instance-list .instance-name .color-priority{margin-left:8px}.instance-list .selected .flow-name,.instance-list .selected .instance-modified,.instance-list .selected .instance-name span{color:#fff}.instance-list .instance-modified{color:#777}.instance-list .selected .step-current-state{color:#fff}.instance-list .instance-read-bar{position:absolute;width:20px;left:1px;top:4px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-read-bar .ion.instance-favorite-selected{color:#666}.instance-list .selected .instance-read-bar .ion.instance-favorite-selected{color:#fff}.instance-list .unread{color:#1f95ec;position:absolute;top:9px;left:5px;font-size:90%}.instance-list .instance-step-current-name{color:#999;font-weight:400;padding-left:5px;display:initial}.instance-list .selected .instance-step-current-name{color:#fff}.instance-list .toolbar{min-height:51px}.instance-list .search-tip-bar{border-bottom:1px solid #eee;padding:10px 20px}.instance-list [aria-label=Title],.instance-list [aria-label=标题]{min-width:400px!important}.instance-list th.flow-filter{position:relative;padding-right:30px;cursor:pointer}.instance-list th.flow-filter:after{font-family:Ionicons;content:"\f31b";right:0;position:absolute;bottom:8px;right:8px;display:block;opacity:.5}.batch_instances_view{position:absolute;width:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);bottom:120px;right:20px}.batch_instances_view button{z-index:999;position:fixed;right:20px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:57px;height:57px;border-radius:57px;font-size:16px}.instance-list-wrapper .tabular-filter-by-flow{margin-right:5px}.instance-list-wrapper .tabular-filter-by-flow .caret{margin-left:5px}.instance-list-wrapper .search-tip-bar .label{margin-right:5px;border-radius:0;font-size:12px}.instance-list-wrapper .search-tip-bar .breadcrumb{display:inline-block;margin-bottom:0;padding:0;background-color:#fff}#instance_more_search_modal .submit-date-icon{border-right:none}#instance_more_search_modal .submit_date_end{padding-top:5px}.instance-priority-danger .td-field-文件标题 .form-group,.instance-priority-danger input[name=文件标题]{color:red!important}.instance-priority-warning .td-field-文件标题 .form-group,.instance-priority-warning input[name=文件标题]{color:purple!important}.instance-priority-muted .td-field-文件标题 .form-group,.instance-priority-muted input[name=文件标题]{color:#00f!important}.workflow-menu{width:300px;left:50%;margin-left:-150px;padding:0}.workflow-menu .weui-navbar{bottom:0;top:auto;display:block}.workflow-menu .weui-navbar__item{cursor:pointer;padding:8px 0}.workflow-menu .weui-bar__item_on{background-color:#08c!important;color:#fff}.workflow-menu-by-flow{overflow-y:auto}.workflow-menu-by-flow .weui_cells_title{font-weight:400;margin-top:0;margin-bottom:0}.workflow-menu-by-flow .weui_cells{margin-top:0}.workflow-menu-by-flow .selected{background-color:#08c;color:#fff!important}.workflow-menu-by-flow .active{color:#0078d7!important}.workflow-menu-by-flow .fa-angle-left{display:none}.workflow-menu-by-flow>li>.treeview-menu{margin-left:10px}.workflow-menu-by-flow .treeview-menu .treeview-menu{padding-left:20px}.creator-content-wrapper .main-sidebar .workflow-menu-by-flow li>.treeview-menu{display:block!important}@media (max-width:767px){.creator-content-wrapper .main-sidebar{background:#fff!important;display:none;width:100%;margin-top:66px!important}.creator-content-wrapper .main-sidebar .top-sidebar,.creator-content-wrapper .main-sidebar .workflow-menu-by-flow .header-app{display:none}.creator-content-wrapper .main-sidebar>.sidebar{box-shadow:0 1px 3px rgba(0,0,0,.5);border-radius:4px;left:10px;right:10px;bottom:10px;border-top-left-radius:unset;border-top-right-radius:unset;padding-bottom:10px}.creator-content-wrapper .content-wrapper{-webkit-transform:none;-ms-transform:none;transform:none}.creator-content-wrapper .content-wrapper.content-wrapper-shadow{display:none}.sidebar-open .creator-content-wrapper .main-sidebar{display:block}}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node.other-inbox-node.first-other-inbox-node{border-top:1px solid rgba(0,0,0,.1);margin-top:1.5rem;padding:.25rem 0}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container{-webkit-box-flex:0.22;-webkit-flex:0.22;-ms-flex:0.22;flex:0.22;min-width:36px}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container .bg-special{color:#333}.steedos .content-wrapper{margin-left:0}.steedos .chooseFlow .chooseFlow-header-close{display:none!important}.steedos #chooseFlow-modal-content{overflow:hidden!important;overflow-y:auto!important}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .slds-button{padding:0;margin:0;background:none;border:0;line-height:inherit;text-align:left;color:#080707}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .all-flow-label-icon,.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .flow-label-icon{top:-2px;position:relative;color:rgba(51,51,51,.71)}.steedos #chooseFlow-modal-content .slds-input{border-top:0;border-left:0;border-right:0}@media screen and (max-width:647px){.steedos #chooseFlow-modal-content{overflow-y:hidden!important}.steedos .ReactModalPortal .slds-modal__container{margin:0;padding:0}.steedos .ReactModalPortal .slds-modal__container .chooseFlow-header-close{display:block!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header{height:49px;border-radius:0;padding:.5rem}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-modal__close{display:none}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-text-heading_medium{font-size:18px;color:#080707;line-height:30px}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content{height:100%;border-radius:0!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div,.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div>div{height:100%}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content .slds-tree_container{overflow:hidden;overflow-y:auto;height:calc(100% - 32px)!important;max-height:calc(100% - 32px)!important}}.workflow-main{position:absolute;top:0;left:0;right:0;bottom:0}.workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.instance-list-wrapper{right:-1px;left:0;float:left;padding-left:0;padding-right:0;overflow-y:hidden;position:absolute;top:0;bottom:0;background:#fff}.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:38px}.instance-list-wrapper .navigation-bar .btn-offcanvas .inbox-pending-icon{font-size:75%;position:relative;left:-8px;top:-6px}@media (max-width:767px){.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:42px;position:relative;left:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new{position:relative;right:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new .ion-plus{position:relative;top:1px}}.instance-list-wrapper .toolbar{height:51px;background:#f3f3f3}.instance-list-wrapper .toolbar .instance-search-box{margin-right:5px}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:235px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search{padding-right:35px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search_button{padding:6px 10px;margin-left:-35px;border-top-right-radius:6px;border-bottom-right-radius:6px;height:34px;z-index:4}.instance-list-wrapper .toolbar .instance-search-box .input-group .form-control{border-radius:6px}@media screen and (max-width:767px){.instance-list-wrapper .toolbar .instance-search-box{position:absolute;left:8px;right:8px;margin-right:0!important}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:100%}}.instance-list-wrapper .search-tip-bar{background:#fff;border-bottom:1px solid #eee;padding:10px 20px;height:40px;margin-top:2px}.instance-list-wrapper .search-tip-bar .result-container{width:calc(100% - 30px)}.instance-list-wrapper .search-tip-bar #instance_search_tip_close_btn{width:30px}.instance-list-wrapper .instance-list{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;bottom:0;right:0;left:0;position:absolute;background-color:#fff}.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}@media (max-width:767px){.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}}.instance-list-wrapper .instance-list .instance-name{padding-left:15px;font-weight:700;word-break:break-all;width:100%}.instance-list-wrapper .instance-list .flow-name{float:left}.instance-list-wrapper .instance-list .instance-modified{padding-right:10px;display:inline-block;float:right}.instance-list-wrapper .instance-list .instance-applicant{padding-left:15px}.instance-list-wrapper .navigation-title{overflow:visible!important}.instance-list-wrapper .dataTables_wrapper .dataTable{background:#fff;border-top:0;margin-top:0!important}.instance-list-wrapper .dataTables_wrapper .dataTable thead{display:none}.instance-list-wrapper .dataTables_wrapper .table-bordered{border-left:none}.instance-list-wrapper .dataTables_wrapper .table>tbody>tr>td{border-bottom:1px solid #e8e8e8;border-top:0}.instance-list-wrapper .dataTables_wrapper tbody tr:hover{cursor:pointer}.instance-list-wrapper .dataTables_wrapper tbody tr:hover td.dataTables_empty{cursor:default}.instance-wrapper{position:absolute;top:0;bottom:0;overflow:hidden}.instance-wrapper .pull-right .dropdown-menu{right:0;left:auto}.instance-wrapper .instance-left-buttons .steedos-amis-button .antd-Button{height:30px;line-height:30px}.instance-wrapper .instance-left-buttons .slds-dropdown-trigger .steedos-amis-button .antd-Button{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:#181818;font-size:12px}.instance-wrapper .navigation-bar .instance-left-buttons{height:38px;position:relative;top:-2px;min-width:50px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-submit,.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group{vertical-align:middle;margin-left:10px}@media (min-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group .dropdown-menu-right{left:0}}.instance-wrapper .navigation-bar .instance-left-buttons .btn{margin-right:-6px;padding-right:8px;padding-left:8px;margin-top:2px}@media (max-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons{top:1px;left:-6px}.instance-wrapper .navigation-bar .instance-left-buttons .btn{padding:8px;margin-top:1px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-back{padding:14px}.instance-wrapper .navigation-bar .pull-right .btn{position:relative;top:-9px;padding:14px;right:-9px}}.instance-wrapper .instance-view{background:#fff;position:absolute;bottom:0;left:0;right:0}.instance-wrapper .instance-view .instance-suggestion-close{position:absolute;right:5px;z-index:666}.instance-wrapper .instance-view .instance-suggestion-close .btn{color:#999;font-size:21px}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion-close{display:none}}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step{padding:3px 0 3px 12px;margin-bottom:0;font-weight:400;font-size:14px}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step input{display:none}.instance-wrapper .instance-view .suggestion-radio-box label{height:22px;line-height:22px;margin-right:10px;font-size:14px}.instance-wrapper .instance-view .suggestion-radio-box .radio-inline+.radio-inline{margin-left:0}.instance-wrapper .instance-view .btn-suggestion-toggle{z-index:999;position:absolute;bottom:20px;right:20px;border-radius:48px;font-size:24px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:48px;height:48px}.instance-wrapper .instance-view .btn-suggestion-toggle i.ion{float:left;height:36px;line-height:36px}.instance-wrapper .instance-view .btn-suggestion-toggle span{font-size:16px;float:left;margin-left:2px;height:36px;line-height:36px}.instance-wrapper .instance-view .txt-suggestion-toggle{width:57px;height:57px;border-radius:57px;font-size:16px}.instance-wrapper .instance-view .instance-suggestion{position:absolute;right:0;bottom:0;left:0;z-index:99;border-radius:0;display:none;padding:4px 4px 0;margin-bottom:0;overflow-y:auto;overflow-x:hidden;max-height:100%}.instance-wrapper .instance-view .instance-suggestion .form-group{margin-bottom:8px}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{word-wrap:break-word;width:calc(100% - 20px)}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box label{margin-right:3px;margin-bottom:0}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{width:100%}}.instance-wrapper .instance-view .instance-suggestion .input-group-addon{background-color:#f5f5f5;min-width:50px;text-align:left}.instance-wrapper .instance-view .instance-suggestion .help-block{margin:0}.instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions{border:none;padding:4px 8px;position:absolute;top:3px;right:25px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .btn-mobile{top:15px!important}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps{border:1px solid #ccc;background:#fff;padding:4px 0}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{cursor:pointer;padding:2px 0 2px 30px;font-weight:400;margin:0;line-height:20px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio:hover{background:#eee}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{line-height:25px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .mobile-safari{line-height:24px}}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .safari{line-height:24px}.instance-wrapper .instance-view .instance-suggestion .nextStepUsers{background:#fff!important;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .has-error .instance-suggestion-next-steps{border-color:#dd4b39}.instance-wrapper .instance-view.suggestion-active .instance-suggestion{display:block}.instance-wrapper .instance-view.suggestion-active .btn-suggestion-toggle{display:none}.instance-wrapper .instance-view .instance{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;top:0;bottom:0;right:0;left:0;position:absolute;background-color:#fff;padding:0 0 20px}body.dx-date-box-opened .instance-wrapper .instance-view .instance{overflow:hidden!important}.instance-wrapper .instance-view .instance .row{margin-right:0;margin-left:0}.instance-wrapper .instance-view .instance.instance-default .form-group{margin-bottom:5px}.instance-wrapper .instance-view .instance.instance-default .form-group .control-label{margin-bottom:3px;font-size:.875rem}.instance-wrapper .instance-view .instance .box-body{padding-left:15px;padding-right:15px}.instance-wrapper .instance-view .instance .instance-form .box-body,.instance-wrapper .instance-view .instance .instance-suggestion .box-body{padding-left:0;padding-right:0}.instance-wrapper .instance-view .instance .instance-suggestion{display:block;position:relative;box-shadow:none;z-index:auto;margin-bottom:-20px}.instance-wrapper .instance-view .instance .instance-suggestion .btn-remove{display:none}.instance-wrapper .instance-view .instance .instance-traces{margin-bottom:0;margin-top:10px;padding-top:10px;clear:both}.instance-wrapper .instance-view .instance .instance-traces .box-title{font-size:18px;margin:10px 0}.instance-wrapper .instance-view .instance.instance-table .instance-traces,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces{padding-bottom:10px}.instance-wrapper .instance-view .instance.instance-table .instance-traces>.pull-left,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-wrapper .select-approve-in-all-users .selectUser-box{border-right:none!important}.instance-wrapper .select-approve-in-all-users .select-all-users-btn{border-left:none!important;background-color:#fff!important;min-width:auto!important;cursor:pointer}.instance-wrapper .select-approve-in-all-users .selectNextStepUsersInAllUsers{display:none!important}:root .instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions,_:-ms-fullscreen #instance_flow_opinions{top:-2px;right:15px}.mobile-safari .instance-wrapper .instance-view .instance{padding-top:1px!important}.steedos .toggle-columns-box{margin:0 -6px}.steedos .toggle-columns-box .btn-toggle-columns i{margin-top:6px}.steedos .toggle-columns-box{display:none}@media (min-width:1441px){.steedos .toggle-columns-box{display:block}}.workflow-main .instance-list-wrapper{display:block;margin:0;border-radius:0;width:auto;left:0;right:0;border-right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-list-wrapper .instance-list{overflow:auto}.workflow-main .instance-wrapper{display:none;width:auto;left:0;right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-wrapper .instance{margin-bottom:1px}.workflow-main.instance-show .instance-list-wrapper{display:none}.workflow-main.instance-show .instance-wrapper{display:block;width:auto;left:0;right:0}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}@media (min-width:768px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:60%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:230px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:230px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:60%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:40%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:54%}}@media (min-width:1280px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:54%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:260px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:54%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:46%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:50%}}@media (max-width:767px){.steedos .workflow-main .instance-list-wrapper{margin:0;border-radius:0;background-color:transparent}.steedos .workflow-main .instance-list-wrapper .instance-list{border-top:1px solid #fff}.steedos .workflow-menu{width:250px;left:50%;margin-left:-125px;overflow-y:auto}}@media (min-width:768px){.workflow-main .instance-list-wrapper,.workflow-main .instance-wrapper{margin:.75rem .75rem 0;border-radius:.25rem}.three-columns .workflow-main .instance-wrapper{margin:.75rem .75rem 0 0}}.toast-top-right{top:52px;right:12px}@-webkit-keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}@keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}.no-columns .instance-wrapper{left:inherit!important;margin:0!important}.instance table{border-spacing:0;border-collapse:collapse}.related_instances_modal .modal-body{min-height:300px}.related_instances_modal .selectize-control.multi .selectize-input [data-value]{color:#fff;background-color:#1b9dec!important;padding-right:25px!important;padding-left:3px!important}.related_instances_modal .instance-state-group{line-height:34px}.related_instances_modal .radio-inline input{line-height:34px;height:34px;margin-top:0}.related_instances_modal .related_instances_list_search_btn{cursor:pointer}.related_instances_modal .pull-right{padding-left:15px}.related_instances_modal tbody tr{cursor:pointer}.related_instances_modal th:not(:first-child){min-width:60px}.related_instances_modal .box-tools{width:35%}.related-instances .title{padding:6px 0 0}.instance .related-instances{padding-left:0;padding-right:15px}.batch-instances-modal .modal-body{padding:0}.batch-instances-modal .modal-body .weui-cells{margin-top:0}.batch-instances-modal .modal-body .weui-cells span{font-size:13px;color:#888}.batch-instances-modal .modal-body .weui-cells:after,.batch-instances-modal .modal-body .weui-cells:before{display:none}.cancel_distribute_modal table th{padding:8px}.cancel_distribute_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_distribute_modal .th-width{width:10px}.cancel_distribute_modal .table-header{background-color:#eee}.cancel_cc_modal table th{padding:8px}.cancel_cc_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_cc_modal .th-width{width:10px}.cancel_cc_modal .table-header{background-color:#eee}.ps-container{-ms-touch-action:none;overflow:hidden!important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px}.ps-container>.ps-scrollbar-x-rail,.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0}.ps-container>.ps-scrollbar-y-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px}.ps-container>.ps-scrollbar-y-rail,.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder:after{content:"!";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.selectize-dropdown-header{position:relative;padding:3px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0;border-left:1px solid transparent;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;-webkit-font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 12px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#efefef;color:#333;border:0 solid transparent}.selectize-control.multi .selectize-input>div.active{background:#428bca;color:#fff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:grey;background:#fff;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input:after{content:" ";display:block;clear:left}.selectize-input.dropdown-active:before{content:" ";display:block;position:absolute;background:#fff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;background:#fff;margin:-1px 0 0;border:1px solid #d0d0d0;border-top:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .optgroup-header,.selectize-dropdown [data-selectable]{padding:3px 12px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5f5f5;color:#262626}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .create{color:rgba(51,51,51,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:" ";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-color:#333 transparent transparent;border-style:solid;border-width:5px 5px 0}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #333}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.42857143}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:" ";display:block;height:1px;overflow:hidden;background-color:#e5e5e5;margin:9px -12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 12px}.selectize-input{min-height:34px}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active:before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.has-error .selectize-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .selectize-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:9px;padding-right:9px}.selectize-control.multi .selectize-input>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:none;background:none;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-control>.selectize-input{-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.qhd-sync-archive,.qhd-sync-contracts{height:100%}.qhd-sync-archive .progress,.qhd-sync-contracts .progress{margin-bottom:0!important}.qhd-sync-archive .submit-date-icon,.qhd-sync-contracts .submit-date-icon{border-right:none}.qhd-sync-archive .box,.qhd-sync-contracts .box{height:100%;margin-bottom:0!important}.qhd-sync-archive .box .box-header.with-border,.qhd-sync-contracts .box .box-header.with-border{height:auto}.qhd-sync-archive .box .box-body,.qhd-sync-contracts .box .box-body{height:calc(100% - 51px);overflow-x:auto}.qhd-sync-archive .row,.qhd-sync-contracts .row{margin-right:0;margin-left:0}.qhd-sync-archive .label-error,.qhd-sync-contracts .label-error{background-color:red}.btn,.form-control{font-size:1rem}label{font-weight:.875rem}.btn-primary{background-color:#0070d2;border-color:#0070d2}@media (min-width:48em){.steedos .slds-form-element_horizontal .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__control{padding-left:18%;clear:none}.steedos .slds-form-element_horizontal .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__label{max-width:16.75%;-ms-flex-preferred-size:16.75%;flex-basis:16.75%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control{padding-left:8.73%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label{width:8.73%}}.steedos .slds-split-view__list-item-action{padding:.35rem 1rem}/*! + */.animated{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}.rotate{animation-name:rotate;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-name:rotate}.view-page-section-row .view-page-block-item{padding:0 .75rem}.view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;width:100%!important}.view-page-section-row .uiInput .form-control:active,.view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}.view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.view-page-section-row .uiInput .form-control[disabled]:active,.view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}@media (max-width:599px){.view-page-section-row{display:block}}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item{cursor:pointer}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content{height:26px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .dx-icon{height:18px;font-size:18px;line-height:18px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.creator-table-actions,.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.pull-right-container{-webkit-box-flex:0.12;-webkit-flex:0.12;-ms-flex:0.12;flex:0.12;text-align:right;margin-top:-3px;display:inline-block}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content>span{padding:1px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility{line-height:32px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{line-height:34px}.gridSidebarContainer.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:20px}@media (max-width:767px){body,html{position:fixed;overflow:hidden}}body{background-size:cover;zoom:1!important}body button{margin-right:0}.steedos label{margin-bottom:5px}.steedos .steedos-brand-band{display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;position:relative;height:100%;width:100%}.steedos .steedos-brand-band .slds-page-header .crm-header-icon{display:block;border-radius:.125rem}.steedos .steedos-brand-band .slds-page-header .crm-header-icon .uiImage{display:inherit}.steedos .steedos-brand-band .slds-page-header h1.crm-header-title{font-size:16px;position:relative}.steedos .steedos-brand-band .slds-page-header .crm-breadcrumb-item span{font-size:13px}.steedos .steedos-brand-band .slds-page-header .crm-header-menu{font-size:.8125rem;font-weight:400}.steedos .steedos-brand-band .listViewManager{height:100%;border-radius:.25rem;background-clip:padding-box}.steedos .steedos-brand-band .listViewManager .slds-page-header{border-top:none;border-left:none;border-right:none}.steedos .steedos-brand-band .listViewManager .forceListViewManagerHeader .slds-button{cursor:pointer}.steedos .steedos-brand-band .listViewManager .list-view-controls .slds-text-title--caps{font-size:12px}.steedos .steedos-brand-band .listViewManager .table-grid-content{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content{width:100%;height:100%;min-height:200px;padding-top:0;padding-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;overflow:hidden}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content>div{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable{width:auto;margin-top:0!important;border-top:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable td:not(:first-child){padding:5px 8px 4px}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable .creator_table_cell{line-height:1.25rem}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable .slds-is-sortable__icon{display:inline-block;fill-opacity:0}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:focus .slds-is-sortable__icon,.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:hover .slds-is-sortable__icon{fill-opacity:1}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .gridContainer .dx-datagrid .dx-scrollable-wrapper .dx-scrollable-container .dx-row.dx-freespace-row{display:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .table-creator{margin-top:0!important}.steedos .slds-card .slds-table tr:last-child .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(2) .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(3) .dropdown-menu{bottom:100%;top:auto}.steedos .slds-table+.dataTables_paginate{text-align:left;margin-left:1.5rem}.steedos .list-table-container .dataTables_wrapper .dataTable{table-layout:fixed}.steedos .list-table-container .dataTables_wrapper .JCLRgrip .JColResizer{top:1px;height:70vh}.steedos .list-table-container .dataTable thead>tr>td.sorting,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc,.steedos .list-table-container .dataTable thead>tr>th.sorting,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc{padding-right:0}.steedos .list-table-container .dataTable thead>tr>td.sorting>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc>a{padding-right:30px}.steedos .list-table-container .dataTable thead .sorting:after,.steedos .list-table-container .dataTable thead .sorting_asc:after,.steedos .list-table-container .dataTable thead .sorting_asc_disabled:after,.steedos .list-table-container .dataTable thead .sorting_desc:after,.steedos .list-table-container .dataTable thead .sorting_desc_disabled:after{display:none;bottom:4px}.steedos .list-table-container .dataTable thead>tr>th{position:relative}.steedos .list-table-container .dataTable thead>tr>th .slds-th__action{margin-bottom:1px}.td-cell-wrap table td{white-space:normal}.steedos.fixed #sidebar-menu{background:#fff;position:fixed;top:90px;width:250px;height:calc(100% - 90px);padding:0}.steedos.fixed .slds-form-element .control-label{font-weight:400;color:#706e6b}.steedos.fixed .dx-datagrid{background:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-rowsview{border-top:0}.steedos.fixed .dx-datagrid .dx-freespace-row td,.steedos.fixed .dx-datagrid .dx-freespace-row td:hover,.steedos.fixed .dx-datagrid .dx-row{background-color:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget{padding:3px;font-size:12px;border-top:1px solid #ddd}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-page-sizes .dx-page-size,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-page{padding:3px 8px}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-next-button,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-prev-button{padding:3px 8px;line-height:25px}.steedos.fixed .slds-tabs--default__nav,.steedos.fixed .slds-tabs_default__nav{border-bottom:1px solid #e7e7eb}.steedos.fixed .slds-modal__header{background-color:#f4f4f4;border-bottom:1px solid #d5d5da;color:#878687}.steedos.fixed .slds-modal__footer{border-top:1px solid #d5d5d5}.steedos.fixed .forceEntityIcon.extraSmall{width:1.5rem;height:1.5rem}.steedos.fixed .forceEntityIcon{display:block;border-radius:.125rem}.steedos.fixed .creator_view #creator-tabular .slds-card+.slds-card{margin-top:.75rem}.steedos.fixed .modal-dialog{margin:0 auto}.steedos.fixed .modal,.steedos.fixed .modal-body,.steedos.fixed .modal-footer,.steedos.fixed .modal-header{zoom:1!important}.flexipageBaseRecordHomeTemplateDesktop{height:100%}.flexipageBaseRecordHomeTemplateDesktop .row-main{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin:.75rem 0 0}.flexipageBaseRecordHomeTemplateDesktop .region-subheader{margin-top:.75rem}.flexipageBaseRecordHomeTemplateDesktop .region-main{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;max-width:70%;min-width:564px}.flexipageBaseRecordHomeTemplateDesktop .region-full-width{max-width:100%}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333%;min-width:404px}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{padding-left:.75rem;padding-right:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left{padding-left:0;padding-right:.75rem}@media only screen and (max-width:47.9375em){.flexipageBaseRecordHomeTemplateDesktop{min-width:auto}.flexipageBaseRecordHomeTemplateDesktop .row-main{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flexipageBaseRecordHomeTemplateDesktop .region-main{min-width:auto;max-width:none}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{min-width:auto;width:100%;padding:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{margin-top:.75rem}}.dx-scheduler-header{position:absolute;top:3px;left:calc(50% - 140px);right:100px;background:transparent;border:none;width:auto}.dx-scheduler-work-space{padding-top:0;margin-top:0}.dx-scheduler-all-day-title{margin-top:-64px}.dx-scheduler-header-panel-cell .dx-scheduler-header-panel-cell-date:last-child{font-size:16px}.dx-scheduler-navigator-caption{max-width:unset;width:auto}.slds-form_horizontal .slds-form-element__control{line-height:24px}.dx-treeview-item{padding:8px;min-height:32px;line-height:inherit}.dx-treeview-toggle-item-visibility{height:34px}.dx-treelist-headers .dx-treelist-table .dx-row>td,.dx-treelist .dx-row>td{padding-top:6px;padding-bottom:6px}.dx-treelist .dx-row>td{line-height:unset}.dx-treeview-with-search .dx-placeholder{font-size:13px}.slds-card{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border:.1px solid transparent}.dx-treeview [role=treeitem][aria-selected=true]>.dx-treeview-item{background:rgba(21,137,238,.1);box-shadow:inset 4px 0 0 #1589ee}.dx-treeview-node{padding-left:0}.dx-treeview-search{margin:8px 6px}.dx-treeview-item.dx-state-hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.87)}.dx-treeview-item-without-checkbox.dx-state-focused>.dx-treeview-item{background-color:rgba(0,0,0,.05)}.dx-treeview-toggle-item-visibility,.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{font-size:18px}.dx-treeview .dx-treeview-item-with-checkbox>.dx-checkbox{margin-top:-6px}.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:24px}.dx-treeview [aria-level="1"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:68px}.dx-treeview [aria-level="2"]>.dx-treeview-item{padding-left:48px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:30px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:98px}.dx-treeview [aria-level="3"]>.dx-treeview-item{padding-left:72px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:60px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:128px}.dx-treeview [aria-level="4"]>.dx-treeview-item{padding-left:96px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:90px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:158px}.dx-treeview [aria-level="5"]>.dx-treeview-item{padding-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:188px}.dx-treeview [aria-level="6"]>.dx-treeview-item{padding-left:144px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:150px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:218px}.dx-treeview [aria-level="7"]>.dx-treeview-item{padding-left:168px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:180px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:248px}.dx-treeview [aria-level="8"]>.dx-treeview-item{padding-left:192px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:210px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:278px}.dx-treeview [aria-level="9"]>.dx-treeview-item{padding-left:216px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:240px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:308px}.dx-treeview [aria-level="10"]>.dx-treeview-item{padding-left:240px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:270px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:338px}.dx-treeview [aria-level="2"]>.dx-treeview-toggle-item-visibility{margin-left:24px}.dx-treeview [aria-level="3"]>.dx-treeview-toggle-item-visibility{margin-left:48px}.dx-treeview [aria-level="4"]>.dx-treeview-toggle-item-visibility{margin-left:72px}.dx-treeview [aria-level="5"]>.dx-treeview-toggle-item-visibility{margin-left:96px}.dx-treeview [aria-level="6"]>.dx-treeview-toggle-item-visibility{margin-left:120px}.dx-treeview [aria-level="7"]>.dx-treeview-toggle-item-visibility{margin-left:144px}.dx-treeview [aria-level="8"]>.dx-treeview-toggle-item-visibility{margin-left:168px}.dx-treeview [aria-level="9"]>.dx-treeview-toggle-item-visibility{margin-left:192px}.dx-treeview [aria-level="10"]>.dx-treeview-toggle-item-visibility{margin-left:216px}.dx-scrollbar-vertical.dx-scrollbar-hoverable{width:12px}.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{width:16px}.dx-scrollbar-vertical .dx-scrollable-scroll{width:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable{height:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover{height:16px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{height:18px}.dx-scrollbar-horizontal .dx-scrollable-scroll{height:14px}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a{color:#777}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a .slds-truncate .slds-button__icon{visibility:hidden;margin-right:.2rem}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a{color:#333}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a .slds-truncate .slds-button__icon{visibility:visible}.steedos .dx-button-text{text-transform:unset}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content{border:1px solid #ddd;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);border-radius:6px;min-width:10rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content{padding:1rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content .dx-actionsheet-item .dx-button{border-radius:4px;background-color:#fff;border:1px solid #ddd;color:#333;box-shadow:none}.steedos .navigation-bar{width:100%;padding:9px;height:51px;border-bottom:1px solid #dddbda;background-color:#f3f2f2}.object-form label{font-weight:400}.steedos-amis-button{line-height:inherit!important}.steedos-amis-button button,.steedos-amis-button span{background-color:transparent!important;border:none!important}.steedos-amis-button span:active,.steedos-amis-button span:focus,.steedos-amis-button span:focus-visible,.steedos-amis-button span:hover{background-color:transparent!important;border:none!important;outline:none!important}.steedos-amis-button .slds-dropdown__item span{position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding:.5rem .75rem;color:#181818;white-space:nowrap;cursor:pointer}.creator-form-builder ._id-wrap{display:none}.creator-form-builder .className-wrap{display:none!important}.creator-form-builder .fields-wrap{display:none}.creator-form-builder .code-wrap label:after,.creator-form-builder [type=odata] .code-wrap label:after,.creator-form-builder [type=odata] .formula-wrap label:after,.creator-form-builder [type=odata] .search_field-wrap label:after,.creator-form-builder [type=odata] .url-wrap label:after{content:" *";color:red}.creator-form-builder .form-wrap.form-builder .frmb .prev-holder input[type=number]{width:100%}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options .option-value{display:none}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options input[type=text]{width:72%!important}.creator-form-builder #fbEditorForm .form-group .control-label{display:none!important}.form-wrap.form-builder .frmb .prev-holder .form-group>label:not([class=fb-checkbox-label]){display:none}.form-elements .form-group label{display:block!important}.section-field .form-group,.table-field .form-group{margin-left:0!important;margin-bottom:15px!important}.flow-modal .modal-lg{width:992px}.copy-flow-modal [data-required=true] label:after,.new-flow-modal [data-required=true] label:after{content:" *";color:red}#distribute_edit_flow_modal .selectize-input .item{color:#fff;background-color:#1b9dec!important;padding-right:24px!important;padding-left:3px!important;background-image:-webkit-linear-gradient(top,#1da7ee,#178ee9)!important;background-image:linear-gradient(180deg,#1da7ee,#178ee9)!important;background-repeat:repeat-x!important;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 1px hsla(0,0%,100%,.03)!important}#distribute_edit_flow_modal .selectize-input .remove{padding-top:4px!important}.creator-modal{zoom:1!important}#collectionModal .modal-body #cmForm>div:last-child{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#collectionModal .modal-footer form{display:inline-block}#cmForm.form-horizontal .control-label{text-align:left}#afModal .slds-modal__container{width:auto;max-width:100%}#afModal .slds-modal__container .slds-modal__content .remove-prompt{font-size:16px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox{margin-left:-10px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .slds-checkbox--faux{margin-top:-3px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .label-multiple-update{color:#706e6b;font-size:14px;font-weight:400}#afModal .slds-modal__container .slds-modal__footer .slds-button_destructive.btn-remove{float:left}#afModal [data-required=true] label:after{content:" *";color:red}#afModal .group-section .slds-section__title{font-size:.9rem;font-weight:inherit}#afModal .group-section .slds-section__title .slds-button__icon{width:.8rem;height:.8rem}#afModal .view-page-section-row .view-page-block-item{padding:0 .75rem}#afModal .view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;width:100%;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;padding:0 1rem 0 .75rem;line-height:34px;width:100%!important}#afModal .view-page-section-row .uiInput .form-control:active,#afModal .view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}#afModal .view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#afModal .view-page-section-row .uiInput .form-control[disabled]:active,#afModal .view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}#afModal .view-page-section-row .uiInput textarea.form-control{overflow:hidden}@media (max-width:599px){#afModal .view-page-section-row{display:block}}.slip-reordering{box-shadow:0 2px 10px rgba(0,0,0,.45)}.slip-swiping-container{overflow-x:hidden}.slippylist .slippylist-item{user-select:none;-moz-user-select:none;-webkit-user-select:none}.slippylist .slippylist-item.slip-allow-select{user-select:text;-moz-user-select:text;-webkit-user-select:text}.slippylist .slippylist-item.slip-allow-select span{cursor:text}.slippylist{clear:left}.slippylist input{vertical-align:middle}.skewed{transform:rotate(2deg) scale(.99);-webkit-transform:rotate(2deg) scale(.99)}.slip-no-swipe.slip-no-reorder{opacity:.5}@media print{body,html{position:static!important}.instance-print *{color:inherit!important}.instance-print .table-page-body .form-group,.instance-print .table-page-body .instance-sign,.instance-print .table-page-footer .form-group,.instance-print .table-page-footer .instance-sign{color:#000!important}.instance-print .instance-table .form-table .td-title.is-required:after{color:red!important}.box-tools button{display:none}.instance-traces .box-body{display:block!important}.no-print{display:none!important}a[href]:after{content:""!important}a,a:visited{text-decoration:none!important}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #000!important}.table-bordered th{border-bottom:1px solid #000!important}.steedos-table .checkbox,.steedos-table .radio{display:table-cell!important;position:static!important}.steedos-table table{border-bottom:none!important}.steedos-table .table{border-left:0!important;border-right:0!important;border-collapse:separate!important}.ins_attach_version{display:none!important}table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}}.instance-print{font-size:14px}.instance-print table{margin:auto}.instance-print .hidden-xs,.instance-print .instance-view .instance-name{display:inline!important}.instance-print .wrapper{overflow:visible;background:silver!important;position:inherit!important}.instance-print .content-wrapper{top:0!important}.instance-print .btn{border-radius:0}.instance-print .box{border-radius:0;border-top:0;margin-bottom:0;padding-bottom:10px;box-shadow:none}.instance-print .box .box-body{padding:10px 0 0}.instance-print .content-wrapper{margin-left:auto!important;width:700px;margin:0 auto;-webkit-transition:all .3s;transition:all .3s}.instance-print .instance-table .instance-template,.instance-print .traces_table_modal .instance-template{-webkit-transition:all .3s;transition:all .3s;max-width:none}.instance-print .instance-table .instance-traces,.instance-print .traces_table_modal .instance-traces{-webkit-transition:all .3s;transition:all .3s;max-width:none;padding-bottom:10px}.instance-print .instance-table .instance-traces>.pull-left,.instance-print .traces_table_modal .instance-traces>.pull-left{padding:10px 0 4px;font-size:15px}.instance-print .instance-table .steedos-table table thead .title,.instance-print .traces_table_modal .steedos-table table thead .title{min-width:auto;white-space:normal}.instance-print .navigation-bar .print-tool{padding:6px 12px;float:left}.instance-print .navigation-bar .print-tool .cbx-label{cursor:pointer;margin-right:8px}.instance-print .navigation-bar .print-tool .cbx-label .cbx-print{margin-right:4px}.instance-print .navigation-bar .print-tool .cbx-label span{position:relative;top:-1px}.instance-print .instance_attachments{margin-top:0!important}.instance-print .instance-traces{padding-left:15px;padding-right:15px}.instance-print .form-control{min-height:22px!important;text-align:left}.instance-print .td-padding{padding:5px 10px!important}.section .control-label{color:#333;font-weight:700;font-size:15px}.instance.instance-default .section.callout.callout-default{padding:2px 0;border:none;background:#fff;border-radius:0;margin-top:5px;margin-bottom:-5px}.instance.instance-default .section .control-label{color:#795548;font-weight:700;font-size:16px;width:100%;border-bottom:1px dashed #d2d6de;padding-bottom:3px}.instance.instance-default .section p{color:#777}.steedos-table .item-readonly{cursor:pointer}.steedos-table table .removed{min-width:31px;width:31px;text-align:center}.steedos-table table tbody .edit{cursor:pointer}.steedos-table table .number{text-align:right}.steedos-table table thead .title{min-width:50px;white-space:nowrap}.steedos-table .checkbox,.steedos-table .radio{margin-top:0;margin-bottom:0;display:table-cell;border-radius:0}.steedos-table .steedosTable-add-item{padding:3px 8px}.steedos-table .panel-body .panel-heading{background-color:#f5f5f5;border-color:#ddd}.steedos-table .panel-body .panel-heading .description{display:inherit}.steedos-table .panel-body .panel-heading .control-label{font-weight:700;font-size:15px}.instance-table .form-table .form-group .steedos-table .autoform-table tr td{border-top:1px solid #000!important;border-bottom:0!important}.instance-table .form-table .form-group .steedos-table .autoform-table td:last-child{border-right:none!important}.steedos-table .add-item-tr{background:rgba(255,255,0,.03);cursor:pointer}.steedos-table .add-item-tr td{border-bottom:0!important}.steedos-table .add-item-tr .ion{height:20px;line-height:20px;margin-right:6px}.steedos-table .panel-body{padding:0}.steedos-table .panel-body .panel-content{padding:0;overflow-x:auto}.steedos-table .panel-body .panel-content .table{margin-bottom:0}.instance-default .steedos-table{border-radius:0;border:none}.instance-default .steedos-table .panel-body .panel-heading{border:none;padding:2px 0;margin-bottom:-5px;margin-top:5px;background:none}.instance-default .steedos-table .panel-body .panel-heading .control-label{width:100%;color:#795548;font-size:16px}.instance-default .steedos-table .panel-body .panel-heading .description{margin-top:-10px;margin-bottom:10px;color:#777;padding-top:5px}.instance-default .steedos-table .panel-body .panel-content{padding-bottom:1px;border:1px solid #d2d6de}.instance-default .steedos-table .panel-body .panel-content .table-bordered{border:none}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead{background:#f9f9f9}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td{border:1px solid #eee;border-top:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:last-child{border-right:0}.steedos-table-modal .steedos-table-modal-body{overflow-y:auto;padding:0}.steedos-table-modal .steedos-table-modal-body .panel{border:none;box-shadow:none;margin-bottom:0}.steedos-table-modal .steedos-table-modal-body .panel .panel-body{padding:5px 15px;border:none;position:relative}.steedos-table-modal .steedos-table-modal-body .panel .panel-body .dx-widget.form-control{padding:6px 12px}.steedos-table-modal .steedos-table-modal-body .panel .panel-heading{display:none}.steedosTable-item-add{padding:2px 7px}#steedos-table-modal .steedos-selectize .selectize-dropdown{position:fixed;top:auto!important;left:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input [data-value]{padding:2px!important;min-height:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input .slds-pill .slds-pill__action{line-height:24px}.steedos-selectize .selectize-input{border-radius:0!important;background-image:none!important;border-color:#d2d6de!important;box-shadow:none!important;height:auto}.steedos-selectize .selectize-dropdown{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;height:200px!important}.steedos-selectize .selectize-dropdown-content{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;max-height:none!important;height:auto!important}.steedos-selectize .selectize-control.multi .selectize-input.has-items{padding:0!important}.steedos-selectize .selectize-control .selectize-input.disabled{opacity:1!important}.steedos-selectize .selectize-control.multi .selectize-input.disabled [data-value]{color:inherit!important}.steedos-selectize .disabled .slds-pill__remove{display:none}.slds-pill{display:inline-flex;align-items:center;justify-content:space-between;line-height:1.5;max-width:100%;padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff;position:relative;min-height:1.625rem}@media (pointer:coarse) and (hover:none){.slds-pill{line-height:1.875rem;padding:0 .75rem}}.slds-pill+.slds-pill{margin-left:.125rem}@media (pointer:coarse) and (hover:none){.slds-pill+.slds-pill{margin-left:.25rem}}.slds-pill:hover{background-color:#f4f6f9}.slds-pill:focus{outline:0;border-radius:.25rem;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.slds-pill a{text-decoration:none}.slds-pill--bare,.slds-pill_bare{background-color:transparent;border:0}.slds-pill--bare:hover,.slds-pill_bare:hover{background-color:transparent}.slds-pill-container,.slds-pill__container,.slds-pill_container{display:flex;min-height:calc(1.875rem + 2px);padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff}@media (pointer:coarse) and (hover:none){.slds-pill-container,.slds-pill__container,.slds-pill_container{padding:.25rem}}.slds-pill-container .slds-listbox_inline,.slds-pill__container .slds-listbox_inline,.slds-pill_container .slds-listbox_inline{margin-left:0;margin-right:0}.slds-pill__container--bare,.slds-pill__container_bare,.slds-pill_container--bare,.slds-pill_container_bare{display:flex;padding:.125rem;border:0;border-radius:0;background-color:transparent}.slds-pill__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (pointer:coarse) and (hover:none){.slds-pill__label{font-size:.875rem}}.slds-pill__label:focus{outline:0;border-radius:.25rem;box-shadow:0 0 3px #0070d2}.slds-pill__icon,.slds-pill__icon_container{width:1.25rem;height:1.25rem;margin-right:.25rem}.slds-pill__icon .slds-avatar,.slds-pill__icon .slds-icon,.slds-pill__icon_container .slds-avatar,.slds-pill__icon_container .slds-icon{width:1.25rem;height:1.25rem;display:block;font-size:.625rem}.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:calc(1.5rem + 2px)}@media (pointer:coarse) and (hover:none){.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:2.25rem}}.slds-pill__remove{width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.25rem;border-radius:.125rem}.slds-pill__remove svg{width:.875rem;height:.875rem}.slds-pill--link,.slds-pill_link{border:0;padding:0}.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{display:inline-block;position:absolute;top:50%;left:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{left:.75rem}}.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{position:absolute;top:50%;right:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{right:.75rem}}.slds-pill__action{padding:.125rem calc(1.25rem + 2px) .125rem .125rem;border:1px solid #dddbda;border-radius:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1;color:inherit!important}@media (pointer:coarse) and (hover:none){.slds-pill__action{padding:0 calc(1.75rem + 2px) 0 .75rem}}.slds-pill__action:focus{outline:0;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.selectize-control.multi .selectize-input [data-value]{background:none!important;box-shadow:none!important;border-radius:.25rem!important;display:inline-flex!important;align-items:center!important;justify-content:space-between!important;line-height:1.5!important;max-width:100%!important;padding:0!important;border:none!important;background-color:#fff!important;position:relative!important;min-height:1.625rem!important;text-shadow:none!important}.instance_new{cursor:pointer}.sidebar .treeview-menu .ion{float:left}.sidebar .treeview-menu .inbox-flow .flow-name{width:135px;vertical-align:bottom}.sidebar .treeview-menu .category-name{width:125px;vertical-align:bottom}.sidebar-collapse .sidebar .treeview-menu{max-height:350px;overflow-y:auto}.sidebar-collapse .sidebar .treeview-menu .inbxo-flow .flow-name{width:115px}.workflow .main-sidebar .sidebar-menu ul .active a{color:#0078d7!important}.workflow .main-sidebar .box-space-name{width:140px!important;vertical-align:bottom}.instanceContent{background:#fff}.callout.callout-default{border-color:#d2d6de;color:grey;background-color:#f1f1f1}.callout.callout-default h4{color:#333}.callout-default a{color:grey}.callout-default a:hover{color:#333}.panel-controls{float:right;display:block;cursor:pointer}.autoform-table{text-align:left;width:100%;max-width:100%}.autoform-table td.field.number{text-align:right}.font-size-h3{font-size:24px;margin-top:20px!important;margin-bottom:10px!important}.bg-info{padding:15px}.instance-traces>.heading{font-size:17px}.traces{font-size:14px}.traces td{border:none}.trace-item{height:30px;background-color:#eee;font-weight:700;font-size:14px;color:#404040}.trace-item .trace-approve-talbe .approve-item a.btn-link{display:inline-block}.approve-item,.approve-item-distribute{height:30px;font-size:13px;cursor:pointer}.approve-item-distribute .name,.approve-item .name{font-weight:700}.approve-item-distribute{cursor:auto!important}.approve-item .red{color:red}.approve-item .blue{color:#00f}.approve-description{border:none;height:auto}.approve-description .description{padding-top:0;border:none}.approve-description .description p{margin:0}.approve-description .red{color:red}.approve-description{cursor:pointer}.approve-item>.name{font-weight:700}.approve-item>.approved,.instance-trace-detail-modal .approved{color:green}.approve-item>.rejected,.instance-trace-detail-modal .rejected{color:red}.approve-item>.autoSubmitted,.instance-trace-detail-modal .autoSubmitted{color:orange}.approve-item>.description{border-top:0;font-size:14px;white-space:pre-line;color:#000}textarea.suggestion-control{height:auto;padding-right:30px;font-size:14px}.button-group{margin-bottom:15px}.button-group>.glyphicon{padding-left:15px;font-size:18px}.suggestion-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #d2d6de;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.suggestion-control:focus{border-color:#3c8dbc;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.suggestion-control::-moz-placeholder{color:#999;opacity:1}.suggestion-control:-ms-input-placeholder{color:#999}.suggestion-control::-webkit-input-placeholder{color:#999}.suggestion-control::-ms-expand{background-color:transparent;border:0}.form-group.has-error .suggestion-control{border-color:#dd4b39;box-shadow:none}.suggestion-control.select2-container{height:auto!important;padding:0}.suggestion-control .select2-choice{border:0;border-radius:2px}.suggestion-control:not(select){-webkit-appearance:none}.suggestion-control.select2-container.select2-dropdown-open{border-color:#5897fb;border-radius:3px 3px 0 0}textarea{resize:none}@media (min-width:768px){.container{width:760px}}[data-required] label:after{content:" *";color:red}.instance-attachments>.heading{font-size:17px}.ins-upload{display:inline-block;position:relative}.ins-upload .ins-file-icon{padding-left:15px;font-size:18px}.ins-upload .ins-file-input{display:inline-block;top:0;left:0;overflow:hidden}.ins-upload .ins-file-input,.ins-upload .ins-file-version-input{position:absolute;width:100%;height:100%;opacity:0;z-index:100;cursor:pointer}.ins-upload .ins-file-version-input{top:1px}.ins-applicant-selector{display:inline-block;width:160px}.ins-modal{-webkit-border-radius:4px}.ins-attach-view .delete,.ins-attach-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-view a{color:#3c8dbc}.ins-attach-view a:hover{text-decoration:underline}.ins-attach-view:hover .delete,.ins-attach-view:hover .mouse-hover{display:inline-block}.ins-attach-version-view{padding:8px}.ins-attach-version-view .delete,.ins-attach-version-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-version-view a:hover{text-decoration:underline}.ins-attach-version-view:hover .delete,.ins-attach-version-view:hover .mouse-hover{display:inline-block}.form-group .select2{width:100%!important}.selectOrg[readonly],.selectUser[readonly]{background-color:#fff!important}.draft .selectOrg[readonly],.draft .selectUser[readonly],.inbox .selectOrg[readonly],.inbox .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.draft .selectOrg[disabled],.draft .selectUser[disabled],.inbox .selectOrg[disabled],.inbox .selectUser[disabled],.selectOrg[disabled],.selectUser[disabled]{background-color:#fff!important}.cfTextarea[disabled],.cfTextarea[readonly]{height:100%;min-height:60px;word-wrap:break-word;word-break:keep-all}.steedos-table-modal-body .form-control{background-color:rgba(255,255,0,.03)!important}.steedos-table-modal-body .form-control[disabled],.steedos-table-modal-body .form-control[readonly],.steedos-table-modal-body fieldset[disabled] .form-control{background-color:#fff;opacity:1;color:#000}.instance-default .instance-form .form-control[disabled],.instance-default .instance-form .form-control[readonly],.instance-default .instance-form fieldset[disabled] .form-control{background-color:#fff!important;opacity:1;color:#000}.instance-default .instance-form .selectOrg[readonly],.instance-default .instance-form .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .selectOrg[disabled],.instance-default .instance-form .selectUser[disabled]{background-color:#fff!important}.instance-default .instance-form.draft .form-control,.instance-default .instance-form.inbox .form-control{background-color:rgba(255,255,0,.03)}.instance-default .instance-form .field-editable{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .readonly-table{border:1px solid #d2d6de}.instance-default .instance-form .readonly-table table{border:none}.instance-default .instance-form .readonly-table table tr td:first-of-type{border-left:none}.instance-default .instance-form .readonly-table table tr td:last-of-type{border-right:none}.instance p{margin:0}.instance .instance-header{margin-left:15px;margin-bottom:0!important}.instance .instance-header>div{padding-top:6px;padding-bottom:6px;text-align:left;font-weight:400}.instance .instance-form .box-body>.col-md-12{padding-right:0}.instance .instance-form .box-body form>.col-md-6:nth-child(2n){clear:both}@media (max-width:768px){.instance .instance-form .box-body .form-group.opinion-field{margin-bottom:10px}}.instance .instance-form .box-header{padding:0;margin-bottom:10px;margin-right:15px}.instance .instance-form .applicant-wrapper .input-group-addon{padding-left:0;border:none}.instance .instance-form .applicant-wrapper input{cursor:pointer}.instance .instance-form .ins_applicant{padding:6px 12px;width:100%;display:inline-block}.instance .instance-form #instanceform .col-md-6,.instance .instance-form #instanceform .col-md-12{padding-left:0}.instance .instance-form #instanceform .td-field p{white-space:pre-line}.instance-sign{border:1px solid #d2d6de;padding:5px 10px;color:#000}.instance-sign .instance-sign-content{min-height:20px;margin-bottom:10px}.instance-sign .instance-sign-content .not-finished{color:#888}.instance-sign .instance-sign-content .my-approve{border-left:3px solid #3c8dbc;padding-left:4px}.instance-sign .instance-sign-text{clear:both}.instance-traces{padding-right:15px}.instance-table .instance-traces{max-width:700px;padding-right:0}.instance-table .instance-template,.traces_table_modal .instance-template{max-width:700px}.instance-table .instance .form-group .form-control,.traces_table_modal .instance .form-group .form-control{min-height:34px}.instance-table .bootstrap-datetimepicker-widget table td,.traces_table_modal .bootstrap-datetimepicker-widget table td{border:none!important}.instance-table .instance-form .box-body>.col-md-12,.traces_table_modal .instance-form .box-body>.col-md-12{padding-right:15px}.instance-table .instance-form .box-header,.traces_table_modal .instance-form .box-header{padding:0;margin-bottom:0}.instance-table .instance-form .table-page-footer td,.traces_table_modal .instance-form .table-page-footer td{padding-left:0;padding-right:0}.instance-table .instance-sign,.traces_table_modal .instance-sign{border:0!important;padding:0}.instance-table .opinion-field,.traces_table_modal .opinion-field{padding:5px 10px;background:inherit!important}.instance-table .cfTextarea[disabled],.instance-table .cfTextarea[readonly],.traces_table_modal .cfTextarea[disabled],.traces_table_modal .cfTextarea[readonly]{min-height:auto}.instance-table .cfTextarea[disabled] p,.instance-table .cfTextarea[readonly] p,.traces_table_modal .cfTextarea[disabled] p,.traces_table_modal .cfTextarea[readonly] p{margin:0}.instance-table .attachments-list .attachments,.traces_table_modal .attachments-list .attachments{margin-bottom:0}.instance-table .box-header,.traces_table_modal .box-header{text-align:center;font-weight:bolder}.instance-table .applicant-wrapper,.traces_table_modal .applicant-wrapper{margin:0;text-align:left}.instance-table .applicant-wrapper .form-control.ins_applicant,.traces_table_modal .applicant-wrapper .form-control.ins_applicant{padding:0!important;height:100%;display:inline;background:transparent!important;border:none;min-height:20px!important}.instance-table .help-block,.traces_table_modal .help-block{display:none}.instance-table .form-table,.traces_table_modal .form-table{width:100%;border-collapse:collapse;border:2px solid #000;table-layout:fixed}.instance-table .form-table tbody,.instance-table .form-table tr,.traces_table_modal .form-table tbody,.traces_table_modal .form-table tr{border-color:inherit}.instance-table .form-table tr>td,.traces_table_modal .form-table tr>td{position:relative}.instance-table .form-table tr>td .instance-sign-text,.traces_table_modal .form-table tr>td .instance-sign-text{position:absolute;right:5px;bottom:2px}.instance-table .form-table .td-title,.traces_table_modal .form-table .td-title{width:16%;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field,.traces_table_modal .form-table .td-field{text-align:left;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field .form-group,.traces_table_modal .form-table .td-field .form-group{color:#000}.instance-table .form-table .td-field.readonly,.traces_table_modal .form-table .td-field.readonly{background:#fff}.instance-table .form-table .td-field .form-control,.traces_table_modal .form-table .td-field .form-control{padding:0}.instance-table .form-table .td-childfield,.traces_table_modal .form-table .td-childfield{border-top:1px solid #000;border-top-color:inherit!important;border-right:1px solid #000;border-right-color:inherit!important;border-bottom:1px solid #000;border-bottom-color:inherit!important;padding:0!important}.instance-table .form-table .tr-child-table+.td-childfield,.traces_table_modal .form-table .tr-child-table+.td-childfield{border-top:1px solid #000}.instance-table .form-table input,.instance-table .form-table select,.instance-table .form-table textarea,.traces_table_modal .form-table input,.traces_table_modal .form-table select,.traces_table_modal .form-table textarea{border-width:0 0 1px;border-bottom-color:#fff}.instance-table .form-table input:disabled,.instance-table .form-table select:disabled,.instance-table .form-table textarea:disabled,.traces_table_modal .form-table input:disabled,.traces_table_modal .form-table select:disabled,.traces_table_modal .form-table textarea:disabled{border-bottom:none}.instance-table .form-table select.form-control,.traces_table_modal .form-table select.form-control{padding:0}.instance-table .form-table .form-group,.traces_table_modal .form-table .form-group{margin-bottom:0}.instance-table .form-table .form-group .callout,.traces_table_modal .form-table .form-group .callout{margin:0;padding:4px 6px;border-radius:0;border-left:none}.instance-table .form-table .form-group .callout h4,.traces_table_modal .form-table .form-group .callout h4{margin:0;padding:0;height:26px;line-height:26px;font-size:14px;font-weight:700}.instance-table .form-table .form-group .form-control,.traces_table_modal .form-table .form-group .form-control{border:none;min-height:22px}.instance-table .form-table .form-group.has-error .form-control,.traces_table_modal .form-table .form-group.has-error .form-control{border-bottom:1px solid #dd4b39}.instance-table .form-table .form-group .steedos-table,.traces_table_modal .form-table .form-group .steedos-table{border:0;margin-bottom:0}.instance-table .form-table .form-group .steedos-table table,.instance-table .form-table .form-group .steedos-table td,.instance-table .form-table .form-group .steedos-table th,.traces_table_modal .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table td,.traces_table_modal .form-table .form-group .steedos-table th{border:1px solid #000}.instance-table .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table table{border-left:none;border-right:none;border-bottom:none!important}.instance-table .form-table .form-group .steedos-table td:first-child,.instance-table .form-table .form-group .steedos-table th:first-child,.traces_table_modal .form-table .form-group .steedos-table td:first-child,.traces_table_modal .form-table .form-group .steedos-table th:first-child{border-left:0!important}.instance-table .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.instance-table .form-table .form-group .steedos-table th:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table th:nth-last-child(-1n+2){border-right:0!important}.instance-table .form-table .form-group .steedos-table .panel-heading,.traces_table_modal .form-table .form-group .steedos-table .panel-heading{padding:4px 6px;border:none}.instance-table .form-table .form-group .steedos-table .panel-heading .pull-right,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .pull-right{height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .panel-heading .control-label,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .control-label{margin-bottom:0;height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .table-bordered,.traces_table_modal .form-table .form-group .steedos-table .table-bordered{border-bottom:none}.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td{border-bottom:none!important}@-moz-document url-prefix(){.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child th,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child th{border-bottom:1px solid #000!important}}.instance-table .form-table .af-checkbox-group,.instance-table .form-table .af-radio-group,.instance-table .form-table .checkbox,.traces_table_modal .form-table .af-checkbox-group,.traces_table_modal .form-table .af-radio-group,.traces_table_modal .form-table .checkbox{padding-left:12px;padding-top:6px}.instance-table .form-table .form-group>.checkbox,.traces_table_modal .form-table .form-group>.checkbox{vertical-align:middle;margin:0 0 -4px}.instance-table .form-table .form-group>.checkbox label,.traces_table_modal .form-table .form-group>.checkbox label{margin:0;min-height:20px;line-height:20px}.instance-table .form-table .form-group>.checkbox label input,.traces_table_modal .form-table .form-group>.checkbox label input{margin-top:0}.safari .instance-table .form-table .form-group>.checkbox label input,.safari .traces_table_modal .form-table .form-group>.checkbox label input{margin-top:4px}.instance-table .form-table .form-group>.af-checkbox-group label input,.instance-table .form-table .form-group>.af-radio-group label input,.traces_table_modal .form-table .form-group>.af-checkbox-group label input,.traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:0}.safari .instance-table .form-table .form-group>.af-checkbox-group label input,.safari .instance-table .form-table .form-group>.af-radio-group label input,.safari .traces_table_modal .form-table .form-group>.af-checkbox-group label input,.safari .traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:4px}.instance-table .instance-traces,.traces_table_modal .instance-traces{background:#fff}.instance-table .instance-traces .box-header,.traces_table_modal .instance-traces .box-header{padding-left:14px;margin-bottom:-10px;font-size:18px}.instance-table .instance-traces table.traces,.traces_table_modal .instance-traces table.traces{margin:15px auto;background:transparent;border:2px solid #000}.instance-table .instance-traces table.traces tr,.traces_table_modal .instance-traces table.traces tr{background:#fff}.instance-table .instance-traces table.traces td,.traces_table_modal .instance-traces table.traces td{background:transparent;border:1px solid #000;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-table .instance-traces table.traces td.td-stepname,.traces_table_modal .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-table .instance-traces table.traces td.td-approve,.traces_table_modal .instance-traces table.traces td.td-approve{padding:0}.instance-table .instance-traces table.traces td table,.traces_table_modal .instance-traces table.traces td table{width:100%}.instance-table .instance-traces table.traces td table tr,.traces_table_modal .instance-traces table.traces td table tr{width:100%;border:none}.instance-table .instance-traces table.traces td table tr.approve-item,.traces_table_modal .instance-traces table.traces td table tr.approve-item{border-bottom:1px solid #000}.instance-table .instance-traces table.traces td table tr.approve-item.description,.instance-table .instance-traces table.traces td table tr.approve-item:last-child,.traces_table_modal .instance-traces table.traces td table tr.approve-item.description,.traces_table_modal .instance-traces table.traces td table tr.approve-item:last-child{border-bottom:none}.instance-table .instance-traces table.traces td table tr td,.traces_table_modal .instance-traces table.traces td table tr td{text-align:left;border:none}.instance-table .instance-traces table.traces td table tr td.name,.traces_table_modal .instance-traces table.traces td table tr td.name{width:40%;color:#333}.instance-table .instance-traces table.traces td table tr td.finish-date,.traces_table_modal .instance-traces table.traces td table tr td.finish-date{width:35%;min-width:140px;color:#333}.instance-table .instance-traces table.traces td table tr td.description,.traces_table_modal .instance-traces table.traces td table tr td.description{padding-top:6px;padding-bottom:0;height:100%}.instance-table .instance-traces .image-sign,.traces_table_modal .instance-traces .image-sign{max-width:90px;max-height:60px}.instance-view .instance-table .draft .form-table .td-title.title-editable.is-required:after,.instance-view .instance-table .inbox .form-table .td-title.title-editable.is-required:after{content:"*";color:red}.instance-view .instance-table .draft .form-table .td-field.field-editable,.instance-view .instance-table .inbox .form-table .td-field.field-editable{background-color:rgba(255,255,0,.1)!important}.instance-print .navigation-bar #font-minus,.instance-print .navigation-bar #font-plus{padding:6px 8px}.instance-print .navigation-bar #printWidth{width:42px}.instance-print .content-wrapper{width:210mm}.instance-print .instance-traces{background:#fff}.instance-print .instance-traces .box-title{padding:10px 0}.instance-print .instance-table .instance-traces{padding-right:15px}.instance-print .instance-table .instance-traces .box-header{font-size:15px;padding-left:0;border-bottom:0}.instance-print .instance-table .instance-traces .box-header .box-tools{top:10px}.instance-print .instance-table .instance-traces .box-header .box-tools .btn-box-tool{padding:2px 5px 1px}.instance-print .instance-table .instance-traces .box-body{padding-top:0}.instance-print .instance-table .instance-traces .box-body table.traces{margin-top:5px}.af-checkbox-group .readonly,.af-radio-group .readonly,.checkbox .readonly,.radio .readonly{padding-left:0}.instance-form{margin-bottom:0;border-radius:0}.instance-traces{margin-bottom:5px;border-radius:0}.instance-traces .box-header .box-title{margin-left:5px}.touch .instance-traces table.traces{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-traces .cc-label{color:#333;font-weight:400;display:initial;border-radius:12px;margin-left:4px}.instance-traces .cc-label .cc-approve-remove{margin-left:4px}.instance-traces .selected .cc-label{color:#fff;font-weight:400;padding-left:5px;display:initial}.instance-traces .cc-approve-remove{padding:0;color:#97a0b3!important;cursor:pointer}.instance-traces .cc-approve-remove .ion{font-size:90%}.instance-traces .cc-approve-remove:hover{color:#606c84!important}.instance .form-group .form-control{height:100%;min-height:32px;word-break:break-all;padding-top:5px;padding-bottom:6px;vertical-align:middle}.instance .form-group .form-control.dx-date-box{width:100%!important;padding:0 0 0 12px}.instance .form-group .form-control.dx-date-box.dx-texteditor.dx-state-disabled:after{display:none}:root .instance .form-group .form-control,_:-ms-fullscreen{padding-top:6px}.instance .form-group .form-control,_:-ms-lang(x),_:-webkit-full-screen{padding-top:6px}.instance-table.instance .form-group .form-control{padding-top:0;padding-bottom:0}.instance-table.instance .form-group .form-control.dx-date-box{padding-left:0;margin:-3px 0}.instance-table.instance .form-group .form-control.dx-date-box .dx-texteditor-container .dx-texteditor-input{padding-right:20px}.instance .form-group input[type=date].form-control,.instance .form-group input[type=datetime-local].form-control{height:32px}.af-checkbox-group,.instance .form-group .af-radio-group{min-height:22px}.instance .form-group>.checkbox{min-height:22px;line-height:22px;padding-left:0;padding-top:0;margin-top:6px}.instance .form-group>.af-checkbox-group,.instance .form-group>.af-radio-group{padding-left:0;padding-top:0}.android .steedos-table-modal .form-group>.checkbox label,.mobile-safari .instance .form-group>.af-checkbox-group label,.mobile-safari .instance .form-group>.af-radio-group label,.mobile-safari .instance .form-group>.checkbox label,.mobile-safari .steedos-table-modal .form-group>.af-checkbox-group label,.mobile-safari .steedos-table-modal .form-group>.af-radio-group label,.mobile-safari .steedos-table-modal .form-group>.checkbox label{line-height:25px}.instance.instance-table .form-group>.af-checkbox-group label,.instance.instance-table .form-group>.af-radio-group label,.instance.instance-table .form-group>.checkbox label,_:-ms-lang(x) label,_:-webkit-full-screen label{line-height:22px}:root .instance .form-group>.checkbox label,_:-ms-fullscreen label{line-height:20px}.instance .instance_attachments{padding-left:0;padding-right:15px}.instance .instance_attachments .attachments-btns,.instance .instance_attachments .attachments-list{margin-bottom:10px}.instance .instance_attachments .ins-upload .steedos-icon-wrap svg.slds-button__icon{fill:#0070d2}.instance-table .instance_attachments{padding-left:0;padding-right:0}.instance-to-attachment label{font-weight:400;cursor:pointer}.image-sign{max-width:180px;max-height:90px}.instance-sign-text{text-align:right}.instance-sign-text .instance-sign-opinion-btn,.instance-sign-text .instance-sign-text-btn,.instance-suggestion #instance_flow_opinions,.instance-suggestion .instance-sign-opinion-btn{text-decoration:underline;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-suggestion #instance_next .instance-suggestion-next-steps{min-height:36px}.instance-suggestion #instance_next .instance-suggestion-next-steps .ion-ios-paperplane-outline{padding-left:5px}.instance-view .instance-name{text-align:center;margin-bottom:15px}.instance-view .instance-name .box-title{font-size:20px}.instance-view .instance-table-name-td{padding-bottom:10px}.no-border,.no-border td{border:0!important}.border-right{border-right:1px solid red!important;border-color:inherit!important}.border-right-none,.border-right-none td:last-child{border-right:0!important}.border-left{border-left:1px solid red!important;border-color:inherit!important}.border-left-none,.border-left-none td:first-child{border-left:0!important}.border-top{border-top:1px solid red!important;border-color:inherit!important}.border-top-none,.border-top-none tr:first-child td{border-top:0!important}.border-bottom{border-bottom:1px solid red!important;border-color:inherit!important}.border-bottom-none,.border-bottom-none tr:last-child td{border-bottom:0!important}.nowrap{white-space:nowrap}.verticle-mode{writing-mode:tb-lr;letter-spacing:12px;padding-top:12px!important;height:140px}.verticle-mode,.verticle-mode label{-webkit-writing-mode:vertical-lr;writing-mode:vertical-lr}.verticle-mode label{display:inline}.td-center{vertical-align:middle!important;text-align:center}.inline-left{display:inline;float:left}.inline-right{display:inline;float:right}.font-color-red{color:red!important}.font-color-black{color:#000!important}.border-color-red{border-color:red!important}.border-color-black{border-color:#000!important}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.font-weight-bold{font-weight:700}.instance-template tr:nth-child(2) td{border-top:0!important}.instance-template .section,.instance-template .section .control-label{color:inherit!important}.instance-template .form-table td{border-width:1px;border-style:solid!important;border-color:inherit!important}.instance-template td{vertical-align:top;padding:5px 10px}.instance-template td label{color:inherit;margin-bottom:0;font-weight:400}.instance-template .form-control[disabled],.instance-template .form-group[disabled]{width:100%;height:100%;background-color:transparent!important;border:none;padding:0}.instance-template input{font-size:inherit;padding:0;min-height:22px!important;font-weight:inherit}.instance-template textarea{font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}.instance-template select{font-family:inherit;color:inherit;font-weight:inherit}.instance-template .td-childfield>.form-group{color:inherit}.instance-template .form-group{color:#000}.instance-template .applicant-wrapper .form-control{color:#000!important}.instance-template .instance-title,.instance-template .instance-title .form-group,.instance-template .page-title,.instance-template .page-title .form-group{color:inherit;text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-control,.instance-template .instance-title .form-group .form-control,.instance-template .page-title .form-control,.instance-template .page-title .form-group .form-control{text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-group,.instance-template .instance-title .form-group .form-group,.instance-template .page-title .form-group,.instance-template .page-title .form-group .form-group{text-align:center;text-align:-webkit-center}.instance-template .instance-title .form-group select,.instance-template .instance-title select,.instance-template .page-title .form-group select,.instance-template .page-title select{height:41px!important;max-width:600px;margin:0 auto}.instance-template .instance-title .form-group input,.instance-template .instance-title input,.instance-template .page-title .form-group input,.instance-template .page-title input{min-height:41px!important}.instance-template .form-control{font-size:inherit;color:inherit!important;background-color:transparent!important}.ins-opinion-modal .btn-new-opinion{cursor:pointer;background:#fff}.ins-opinion-modal .btn-new-opinion:focus,.ins-opinion-modal .btn-new-opinion:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.ins-opinion-modal .list-group{margin-bottom:15px}.ins-opinion-modal .list-group .list-group-item{-ms-user-select:none;user-select:none;-moz-user-select:none;-webkit-user-select:none}.ins-opinion-modal .list-group .list-group-item .btn-sm{margin:-5px -2px}.ins-opinion-modal .list-group .list-group-item .pull-right{margin-right:-8px}.ins-opinion-modal .list-group:last-child .list-group-item:last-child{border-bottom:1px solid #ddd;border-bottom-left-radius:0;border-bottom-right-radius:0}.related-instances .related-instances-item a{color:#3c8dbc;cursor:pointer}.related-instances .related-instances-item .ins-related-delete{margin-left:10px}.related-instances .related-instances-item a:hover{text-decoration:underline}.steedos-html.steedos-html-table-only{margin:-6px -12px -6px -13px}.steedos-html.steedos-html-table-only table{border:none;width:100%!important}.instance-table .steedos-html.steedos-html-table-only{margin:-6px}.instance-table .steedos-html.steedos-html-table-only table tr:first-child td{border-top-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr:last-child td{border-bottom-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:first-child{border-left-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:last-child{border-right-width:0!important}.instance-form .slds-select_container:before{display:none}.traces_table_modal .modal-body{border-top:0}.traces_table_modal .modal-body .modal-header{display:none}.traces_table_modal .box{border:0;box-shadow:none}.traces_table_modal .box .box-header{display:none}.traces_table_modal .box .box-body{padding:0}.traces_table_modal .box .box-body table{margin:0 auto}.traces_modal .modal-body{padding:0}.traces_modal .modal-body .box{border-top:0}.traces_modal .modal-body .box .box-header{display:none}.instance-traces ol,.instance-traces ul{list-style:decimal;list-style-position:inside}.instance-trace-detail-modal .modal-header .modal-title{font-size:18px;font-weight:700}.instance-sign-modal #instance_flow_opinions{text-decoration:underline;cursor:pointer}.instance-sign-modal .suggestion-control{min-height:120px;font-size:17px}.instance-sign-modal .instance-sign-history{text-decoration:underline;cursor:pointer}.instance-sign-modal .instance-suggestion{font-size:15px}.instance-sign-modal .instance-suggestion .instance-sign-opinion-btn{display:inline-block;line-height:30px;margin-right:15px;vertical-align:bottom;font-size:17px;max-width:100%}.instance-sign-modal .instance-suggestion #instance_flow_opinions{line-height:30px;display:inline-block;font-size:17px}.history-sign-approve a{color:inherit}.history-sign-approve a.finish-date{float:right}.history-sign-approve .select-suggestion-td{width:10px}.history-sign-approve .select-suggestion-td .select-suggestion{display:inline-block;float:right}.history-sign-approve tr{cursor:pointer}.history-sign-approve .sign-approves{margin-top:0}.history-sign-approve .sign-approves .use-suggestion{margin-right:10px}.history-sign-approve .sign-approves .use-suggestion .weui-media-box__title{overflow:auto;text-overflow:unset;white-space:normal;font-size:15px!important;font-weight:400!important}.history-sign-approve .sign-approves .select-suggestion .weui-switch{outline:none;zoom:.78;cursor:pointer}.instance-pick_approve_users .title th{font-weight:700;border:1px solid #d2d6de}.instance-pick_approve_users .title .step{text-align:center}.instance-pick_approve_users .title .approves{padding-left:13px}.instance-pick_approve_users .step-item .td-step-approves .form-group{margin-bottom:0}.instance-pick_approve_users .step-item .td-step-approves .form-group .control-label{display:none}.instance-pick_approve_users .stepName{text-align:center}.instance-pick_approve_users .action{width:50px;text-align:center}.instance-pick_approve_users .td-step-check{width:80px;text-align:center}.instance-pick_approve_users .td-step-approves{background-color:rgba(255,255,0,.1)!important}.instance-pick_approve_users .td-step-approves .checkbox-inline label,.instance-pick_approve_users .td-step-approves .radio-inline label{font-weight:400}.instance-pick_approve_users .selectUser-box{line-height:28px!important;border:none!important;background-color:inherit!important}.instance-pick_approve_users .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-pick_approve_users .instance-traces table.traces{background:transparent;border:2px solid #d2d6de}.instance-pick_approve_users .instance-traces table.traces tr{background:#fff}.instance-pick_approve_users .instance-traces table.traces td{background:transparent;border:1px solid #d2d6de;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-pick_approve_users .instance-traces table.traces td.td-approve{padding:0}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:auto}.instance-pick_approve_users .instance-traces table.traces td.td-step-check{width:50px}.instance-pick_approve_users .instance-traces table.traces td.td-step-approves .radio-inline{display:block;margin:0;white-space:nowrap}}.instance-pick_approve_users .instance-traces table.traces th{white-space:nowrap}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces th.approves{text-align:center;padding-left:0}}.instance-table .instance-pick_approve_users .instance-traces table.traces,.instance-table .instance-pick_approve_users .instance-traces table.traces td,.instance-table .instance-pick_approve_users .instance-traces table.traces th{border-color:#000}.flow_list_box a{cursor:pointer;color:#000}.flow_list_box .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box .weui-cell .ion{font-size:20px}.flow_list_box .weui-cell.checked{background-color:#00a65a;color:#fff}.flow_list_box .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box .box{box-shadow:none}.flow_list_box .box .weui-cells{margin-top:0}.flow_list_box .weui-cell__bd,.flow_list_box .weui-cell__ft{cursor:pointer}.flow_list_box .ion-ios-star{color:#f39c12}.flow_list_box_org a{cursor:pointer;color:#000}.flow_list_box_org .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box_org .weui-cell{padding:6px 15px}.flow_list_box_org .weui-cell .ion{font-size:20px}.flow_list_box_org .weui-cell.checked{background:#beebff}.flow_list_box_org .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box_org .box{box-shadow:none}.flow_list_box_org .box .weui-cells{margin-top:0}.flow_list_box_org .weui-cell__bd,.flow_list_box_org .weui-cell__ft{cursor:pointer}.flow_list_box_org .ion-ios-star{color:#f39c12}.flow-list-box-org-modal{z-index:1050}.flow-list-box-org-modal .modal-body .box-header{padding:10px}.flow-list-box-org-modal .modal-body .contacts-list-wrapper{overflow-y:auto}.flow-list-box-modal-body{padding-top:5px}.forward-select-flow-modal input[readonly]{background-color:#fff!important}.instance-list-wrapper .slds-page-header--object-home{border-radius:0;border-left:0;border-right:0;height:100px}@media (max-width:768px){.instance-list-wrapper .slds-page-header--object-home{height:65px}}.instance-list-wrapper .slds-page-header--object-home .slds-media__figure{margin-top:-2px}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow{width:140%}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow ul{background:#fff!important}.instance-list-wrapper .slds-page-header--object-home .slds-button{cursor:pointer}.instance-list-wrapper .instance-list table.dataTable thead .sorting_asc:after{font:14px/1 DXIcons;content:"\f051";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting_desc:after{font:14px/1 DXIcons;content:"\f052";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting:after{font:14px/1 DXIcons;content:"\f055";opacity:0;bottom:10px}.instance-list-wrapper .instance-list-body .instance-list-sidebar{position:absolute;left:0;top:99px;bottom:0;width:260px;border-right:1px solid #e0e5ee}.instance-list-wrapper .instance-list-body .instance-list-content{position:absolute;left:0;right:0;top:99px;bottom:0}@media (max-width:768px){.instance-list-wrapper .instance-list-body .instance-list-content{top:64px}}@media (min-width:768px){.instance-list-wrapper{background:red}.instance-list-wrapper .dropdown-menu{min-width:260px;max-width:300px}}.instance-list{margin-top:1px}.instance-list .datatable-instances{border-right:none}.instance-list .dataTables_paginate{float:right;width:65%}.instance-list .dataTables_length{float:left;width:35%}@media (max-width:768px){.instance-list .dataTables_paginate{width:100%}}.instance-list>div:nth-child(3){overflow-x:auto}.instance-list .dataTables_container{position:relative}.instance-list .dataTables_container .ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail,.instance-list .dataTables_container .ps-container:hover>.ps-scrollbar-x-rail:hover{background:#fff}.instance-list .dataTables_wrapper tbody tr td{position:relative}.instance-list .flow-name{padding-left:15px;width:69%;color:#777}.instance-list.instance-list-empty .dataTables_wrapper{display:none}.instance-list.instance-list-empty .slds-illustration .slds-illustration__svg{margin-bottom:-.6rem}.instance-list .dataTables_wrapper thead th:first-child{padding-left:20px!important}.instance-list .dataTables_wrapper thead th{white-space:nowrap;min-width:115px}.instance-list .dataTables_wrapper thead th:nth-child(3){min-width:115px}.instance-list .color-priority{color:#00f;display:none}.instance-list .color-priority.instance-name{display:inline-block}.instance-list .color-priority.color-priority-danger{color:red;display:inline-block}.instance-list .color-priority.color-priority-warning{color:purple;display:inline-block}.instance-list .color-priority.color-priority-muted{color:#00f;display:inline-block}.instance-list .step-current-state.terminated{color:grey}.instance-list .step-current-state.approved{color:green}.instance-list .step-current-state.rejected{color:red}.instance-list .instance-priority-bar{position:absolute;width:20px;left:1px;top:22px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-name span{color:#333;display:inline-block;float:right;font-weight:400;margin-right:10px}.instance-list .instance-name .color-priority{margin-left:8px}.instance-list .selected .flow-name,.instance-list .selected .instance-modified,.instance-list .selected .instance-name span{color:#fff}.instance-list .instance-modified{color:#777}.instance-list .selected .step-current-state{color:#fff}.instance-list .instance-read-bar{position:absolute;width:20px;left:1px;top:4px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-read-bar .ion.instance-favorite-selected{color:#666}.instance-list .selected .instance-read-bar .ion.instance-favorite-selected{color:#fff}.instance-list .unread{color:#1f95ec;position:absolute;top:9px;left:5px;font-size:90%}.instance-list .instance-step-current-name{color:#999;font-weight:400;padding-left:5px;display:initial}.instance-list .selected .instance-step-current-name{color:#fff}.instance-list .toolbar{min-height:51px}.instance-list .search-tip-bar{border-bottom:1px solid #eee;padding:10px 20px}.instance-list [aria-label=Title],.instance-list [aria-label=标题]{min-width:400px!important}.instance-list th.flow-filter{position:relative;padding-right:30px;cursor:pointer}.instance-list th.flow-filter:after{font-family:Ionicons;content:"\f31b";right:0;position:absolute;bottom:8px;right:8px;display:block;opacity:.5}.batch_instances_view{position:absolute;width:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);bottom:120px;right:20px}.batch_instances_view button{z-index:999;position:fixed;right:20px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:57px;height:57px;border-radius:57px;font-size:16px}.instance-list-wrapper .tabular-filter-by-flow{margin-right:5px}.instance-list-wrapper .tabular-filter-by-flow .caret{margin-left:5px}.instance-list-wrapper .search-tip-bar .label{margin-right:5px;border-radius:0;font-size:12px}.instance-list-wrapper .search-tip-bar .breadcrumb{display:inline-block;margin-bottom:0;padding:0;background-color:#fff}#instance_more_search_modal .submit-date-icon{border-right:none}#instance_more_search_modal .submit_date_end{padding-top:5px}.instance-priority-danger .td-field-文件标题 .form-group,.instance-priority-danger input[name=文件标题]{color:red!important}.instance-priority-warning .td-field-文件标题 .form-group,.instance-priority-warning input[name=文件标题]{color:purple!important}.instance-priority-muted .td-field-文件标题 .form-group,.instance-priority-muted input[name=文件标题]{color:#00f!important}.workflow-menu{width:300px;left:50%;margin-left:-150px;padding:0}.workflow-menu .weui-navbar{bottom:0;top:auto;display:block}.workflow-menu .weui-navbar__item{cursor:pointer;padding:8px 0}.workflow-menu .weui-bar__item_on{background-color:#08c!important;color:#fff}.workflow-menu-by-flow{overflow-y:auto}.workflow-menu-by-flow .weui_cells_title{font-weight:400;margin-top:0;margin-bottom:0}.workflow-menu-by-flow .weui_cells{margin-top:0}.workflow-menu-by-flow .selected{background-color:#08c;color:#fff!important}.workflow-menu-by-flow .active{color:#0078d7!important}.workflow-menu-by-flow .fa-angle-left{display:none}.workflow-menu-by-flow>li>.treeview-menu{margin-left:10px}.workflow-menu-by-flow .treeview-menu .treeview-menu{padding-left:20px}.creator-content-wrapper .main-sidebar .workflow-menu-by-flow li>.treeview-menu{display:block!important}@media (max-width:767px){.creator-content-wrapper .main-sidebar{background:#fff!important;display:none;width:100%;margin-top:66px!important}.creator-content-wrapper .main-sidebar .top-sidebar,.creator-content-wrapper .main-sidebar .workflow-menu-by-flow .header-app{display:none}.creator-content-wrapper .main-sidebar>.sidebar{box-shadow:0 1px 3px rgba(0,0,0,.5);border-radius:4px;left:10px;right:10px;bottom:10px;border-top-left-radius:unset;border-top-right-radius:unset;padding-bottom:10px}.creator-content-wrapper .content-wrapper{-webkit-transform:none;-ms-transform:none;transform:none}.creator-content-wrapper .content-wrapper.content-wrapper-shadow{display:none}.sidebar-open .creator-content-wrapper .main-sidebar{display:block}}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node.other-inbox-node.first-other-inbox-node{border-top:1px solid rgba(0,0,0,.1);margin-top:1.5rem;padding:.25rem 0}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container{-webkit-box-flex:0.22;-webkit-flex:0.22;-ms-flex:0.22;flex:0.22;min-width:36px}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container .bg-special{color:#333}.steedos .content-wrapper{margin-left:0}.steedos .chooseFlow .chooseFlow-header-close{display:none!important}.steedos #chooseFlow-modal-content{overflow:hidden!important;overflow-y:auto!important}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .slds-button{padding:0;margin:0;background:none;border:0;line-height:inherit;text-align:left;color:#080707}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .all-flow-label-icon,.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .flow-label-icon{top:-2px;position:relative;color:rgba(51,51,51,.71)}.steedos #chooseFlow-modal-content .slds-input{border-top:0;border-left:0;border-right:0}@media screen and (max-width:647px){.steedos #chooseFlow-modal-content{overflow-y:hidden!important}.steedos .ReactModalPortal .slds-modal__container{margin:0;padding:0}.steedos .ReactModalPortal .slds-modal__container .chooseFlow-header-close{display:block!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header{height:49px;border-radius:0;padding:.5rem}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-modal__close{display:none}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-text-heading_medium{font-size:18px;color:#080707;line-height:30px}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content{height:100%;border-radius:0!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div,.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div>div{height:100%}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content .slds-tree_container{overflow:hidden;overflow-y:auto;height:calc(100% - 32px)!important;max-height:calc(100% - 32px)!important}}.workflow-main{position:absolute;top:0;left:0;right:0;bottom:0}.workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.instance-list-wrapper{right:-1px;left:0;float:left;padding-left:0;padding-right:0;overflow-y:hidden;position:absolute;top:0;bottom:0;background:#fff}.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:38px}.instance-list-wrapper .navigation-bar .btn-offcanvas .inbox-pending-icon{font-size:75%;position:relative;left:-8px;top:-6px}@media (max-width:767px){.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:42px;position:relative;left:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new{position:relative;right:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new .ion-plus{position:relative;top:1px}}.instance-list-wrapper .toolbar{height:51px;background:#f3f3f3}.instance-list-wrapper .toolbar .instance-search-box{margin-right:5px}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:235px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search{padding-right:35px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search_button{padding:6px 10px;margin-left:-35px;border-top-right-radius:6px;border-bottom-right-radius:6px;height:34px;z-index:4}.instance-list-wrapper .toolbar .instance-search-box .input-group .form-control{border-radius:6px}@media screen and (max-width:767px){.instance-list-wrapper .toolbar .instance-search-box{position:absolute;left:8px;right:8px;margin-right:0!important}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:100%}}.instance-list-wrapper .search-tip-bar{background:#fff;border-bottom:1px solid #eee;padding:10px 20px;height:40px;margin-top:2px}.instance-list-wrapper .search-tip-bar .result-container{width:calc(100% - 30px)}.instance-list-wrapper .search-tip-bar #instance_search_tip_close_btn{width:30px}.instance-list-wrapper .instance-list{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;bottom:0;right:0;left:0;position:absolute;background-color:#fff}.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}@media (max-width:767px){.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}}.instance-list-wrapper .instance-list .instance-name{padding-left:15px;font-weight:700;word-break:break-all;width:100%}.instance-list-wrapper .instance-list .flow-name{float:left}.instance-list-wrapper .instance-list .instance-modified{padding-right:10px;display:inline-block;float:right}.instance-list-wrapper .instance-list .instance-applicant{padding-left:15px}.instance-list-wrapper .navigation-title{overflow:visible!important}.instance-list-wrapper .dataTables_wrapper .dataTable{background:#fff;border-top:0;margin-top:0!important}.instance-list-wrapper .dataTables_wrapper .dataTable thead{display:none}.instance-list-wrapper .dataTables_wrapper .table-bordered{border-left:none}.instance-list-wrapper .dataTables_wrapper .table>tbody>tr>td{border-bottom:1px solid #e8e8e8;border-top:0}.instance-list-wrapper .dataTables_wrapper tbody tr:hover{cursor:pointer}.instance-list-wrapper .dataTables_wrapper tbody tr:hover td.dataTables_empty{cursor:default}.instance-wrapper{position:absolute;top:0;bottom:0;overflow:hidden}.instance-wrapper .pull-right .dropdown-menu{right:0;left:auto}.instance-wrapper .instance-left-buttons .steedos-amis-button .antd-Button{height:30px;line-height:30px}.instance-wrapper .instance-left-buttons .slds-dropdown-trigger .steedos-amis-button .antd-Button{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:#181818;font-size:12px}.instance-wrapper .navigation-bar .instance-left-buttons{height:38px;position:relative;top:-2px;min-width:50px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-submit,.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group{vertical-align:middle;margin-left:10px}@media (min-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group .dropdown-menu-right{left:0}}.instance-wrapper .navigation-bar .instance-left-buttons .btn{margin-right:-6px;padding-right:8px;padding-left:8px;margin-top:2px}@media (max-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons{top:1px;left:-6px}.instance-wrapper .navigation-bar .instance-left-buttons .btn{padding:8px;margin-top:1px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-back{padding:14px}.instance-wrapper .navigation-bar .pull-right .btn{position:relative;top:-9px;padding:14px;right:-9px}}.instance-wrapper .instance-view{background:#fff;position:absolute;bottom:0;left:0;right:0}.instance-wrapper .instance-view .instance-suggestion-close{position:absolute;right:5px;z-index:666}.instance-wrapper .instance-view .instance-suggestion-close .btn{color:#999;font-size:21px}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion-close{display:none}}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step{padding:3px 0 3px 12px;margin-bottom:0;font-weight:400;font-size:14px}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step input{display:none}.instance-wrapper .instance-view .suggestion-radio-box label{height:22px;line-height:22px;margin-right:10px;font-size:14px}.instance-wrapper .instance-view .suggestion-radio-box .radio-inline+.radio-inline{margin-left:0}.instance-wrapper .instance-view .btn-suggestion-toggle{z-index:999;position:absolute;bottom:20px;right:20px;border-radius:48px;font-size:24px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:48px;height:48px}.instance-wrapper .instance-view .btn-suggestion-toggle i.ion{float:left;height:36px;line-height:36px}.instance-wrapper .instance-view .btn-suggestion-toggle span{font-size:16px;float:left;margin-left:2px;height:36px;line-height:36px}.instance-wrapper .instance-view .txt-suggestion-toggle{width:57px;height:57px;border-radius:57px;font-size:16px}.instance-wrapper .instance-view .instance-suggestion{position:absolute;right:0;bottom:0;left:0;z-index:99;border-radius:0;display:none;padding:4px 4px 0;margin-bottom:0;overflow-y:auto;overflow-x:hidden;max-height:100%}.instance-wrapper .instance-view .instance-suggestion .form-group{margin-bottom:8px}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{word-wrap:break-word;width:calc(100% - 20px)}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box label{margin-right:3px;margin-bottom:0}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{width:100%}}.instance-wrapper .instance-view .instance-suggestion .input-group-addon{background-color:#f5f5f5;min-width:50px;text-align:left}.instance-wrapper .instance-view .instance-suggestion .help-block{margin:0}.instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions{border:none;padding:4px 8px;position:absolute;top:3px;right:25px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .btn-mobile{top:15px!important}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps{border:1px solid #ccc;background:#fff;padding:4px 0}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{cursor:pointer;padding:2px 0 2px 30px;font-weight:400;margin:0;line-height:20px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio:hover{background:#eee}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{line-height:25px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .mobile-safari{line-height:24px}}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .safari{line-height:24px}.instance-wrapper .instance-view .instance-suggestion .nextStepUsers{background:#fff!important;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .has-error .instance-suggestion-next-steps{border-color:#dd4b39}.instance-wrapper .instance-view.suggestion-active .instance-suggestion{display:block}.instance-wrapper .instance-view.suggestion-active .btn-suggestion-toggle{display:none}.instance-wrapper .instance-view .instance{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;top:0;bottom:0;right:0;left:0;position:absolute;background-color:#fff;padding:0 0 20px}body.dx-date-box-opened .instance-wrapper .instance-view .instance{overflow:hidden!important}.instance-wrapper .instance-view .instance .row{margin-right:0;margin-left:0}.instance-wrapper .instance-view .instance.instance-default .form-group{margin-bottom:5px}.instance-wrapper .instance-view .instance.instance-default .form-group .control-label{margin-bottom:3px;font-size:.875rem}.instance-wrapper .instance-view .instance .box-body{padding-left:15px;padding-right:15px}.instance-wrapper .instance-view .instance .instance-form .box-body,.instance-wrapper .instance-view .instance .instance-suggestion .box-body{padding-left:0;padding-right:0}.instance-wrapper .instance-view .instance .instance-suggestion{display:block;position:relative;box-shadow:none;z-index:auto;margin-bottom:-20px}.instance-wrapper .instance-view .instance .instance-suggestion .btn-remove{display:none}.instance-wrapper .instance-view .instance .instance-traces{margin-bottom:0;margin-top:10px;padding-top:10px;clear:both}.instance-wrapper .instance-view .instance .instance-traces .box-title{font-size:18px;margin:10px 0}.instance-wrapper .instance-view .instance.instance-table .instance-traces,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces{padding-bottom:10px}.instance-wrapper .instance-view .instance.instance-table .instance-traces>.pull-left,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-wrapper .select-approve-in-all-users .selectUser-box{border-right:none!important}.instance-wrapper .select-approve-in-all-users .select-all-users-btn{border-left:none!important;background-color:#fff!important;min-width:auto!important;cursor:pointer}.instance-wrapper .select-approve-in-all-users .selectNextStepUsersInAllUsers{display:none!important}:root .instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions,_:-ms-fullscreen #instance_flow_opinions{top:-2px;right:15px}.mobile-safari .instance-wrapper .instance-view .instance{padding-top:1px!important}.steedos .toggle-columns-box{margin:0 -6px}.steedos .toggle-columns-box .btn-toggle-columns i{margin-top:6px}.steedos .toggle-columns-box{display:none}@media (min-width:1441px){.steedos .toggle-columns-box{display:block}}.workflow-main .instance-list-wrapper{display:block;margin:0;border-radius:0;width:auto;left:0;right:0;border-right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-list-wrapper .instance-list{overflow:auto}.workflow-main .instance-wrapper{display:none;width:auto;left:0;right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-wrapper .instance{margin-bottom:1px}.workflow-main.instance-show .instance-list-wrapper{display:none}.workflow-main.instance-show .instance-wrapper{display:block;width:auto;left:0;right:0}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}@media (min-width:768px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:60%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:230px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:230px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:60%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:40%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:54%}}@media (min-width:1280px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:54%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:260px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:54%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:46%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:50%}}@media (max-width:767px){.steedos .workflow-main .instance-list-wrapper{margin:0;border-radius:0;background-color:transparent}.steedos .workflow-main .instance-list-wrapper .instance-list{border-top:1px solid #fff}.steedos .workflow-menu{width:250px;left:50%;margin-left:-125px;overflow-y:auto}}@media (min-width:768px){.workflow-main .instance-list-wrapper,.workflow-main .instance-wrapper{margin:.75rem .75rem 0;border-radius:.25rem}.three-columns .workflow-main .instance-wrapper{margin:.75rem .75rem 0 0}}.toast-top-right{top:52px;right:12px}@-webkit-keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}@keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}.no-columns .instance-wrapper{left:inherit!important;margin:0!important}.instance table{border-spacing:0;border-collapse:collapse}.related_instances_modal .modal-body{min-height:300px}.related_instances_modal .selectize-control.multi .selectize-input [data-value]{color:#fff;background-color:#1b9dec!important;padding-right:25px!important;padding-left:3px!important}.related_instances_modal .instance-state-group{line-height:34px}.related_instances_modal .radio-inline input{line-height:34px;height:34px;margin-top:0}.related_instances_modal .related_instances_list_search_btn{cursor:pointer}.related_instances_modal .pull-right{padding-left:15px}.related_instances_modal tbody tr{cursor:pointer}.related_instances_modal th:not(:first-child){min-width:60px}.related_instances_modal .box-tools{width:35%}.related-instances .title{padding:6px 0 0}.instance .related-instances{padding-left:0;padding-right:15px}.batch-instances-modal .modal-body{padding:0}.batch-instances-modal .modal-body .weui-cells{margin-top:0}.batch-instances-modal .modal-body .weui-cells span{font-size:13px;color:#888}.batch-instances-modal .modal-body .weui-cells:after,.batch-instances-modal .modal-body .weui-cells:before{display:none}.cancel_distribute_modal table th{padding:8px}.cancel_distribute_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_distribute_modal .th-width{width:10px}.cancel_distribute_modal .table-header{background-color:#eee}.cancel_cc_modal table th{padding:8px}.cancel_cc_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_cc_modal .th-width{width:10px}.cancel_cc_modal .table-header{background-color:#eee}.ps-container{-ms-touch-action:none;overflow:hidden!important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px}.ps-container>.ps-scrollbar-x-rail,.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0}.ps-container>.ps-scrollbar-y-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px}.ps-container>.ps-scrollbar-y-rail,.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder:after{content:"!";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.selectize-dropdown-header{position:relative;padding:3px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0;border-left:1px solid transparent;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;-webkit-font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 12px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#efefef;color:#333;border:0 solid transparent}.selectize-control.multi .selectize-input>div.active{background:#428bca;color:#fff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:grey;background:#fff;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input:after{content:" ";display:block;clear:left}.selectize-input.dropdown-active:before{content:" ";display:block;position:absolute;background:#fff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;background:#fff;margin:-1px 0 0;border:1px solid #d0d0d0;border-top:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .optgroup-header,.selectize-dropdown [data-selectable]{padding:3px 12px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5f5f5;color:#262626}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .create{color:rgba(51,51,51,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:" ";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-color:#333 transparent transparent;border-style:solid;border-width:5px 5px 0}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #333}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.42857143}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:" ";display:block;height:1px;overflow:hidden;background-color:#e5e5e5;margin:9px -12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 12px}.selectize-input{min-height:34px}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active:before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.has-error .selectize-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .selectize-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:9px;padding-right:9px}.selectize-control.multi .selectize-input>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:none;background:none;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-control>.selectize-input{-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.qhd-sync-archive,.qhd-sync-contracts{height:100%}.qhd-sync-archive .progress,.qhd-sync-contracts .progress{margin-bottom:0!important}.qhd-sync-archive .submit-date-icon,.qhd-sync-contracts .submit-date-icon{border-right:none}.qhd-sync-archive .box,.qhd-sync-contracts .box{height:100%;margin-bottom:0!important}.qhd-sync-archive .box .box-header.with-border,.qhd-sync-contracts .box .box-header.with-border{height:auto}.qhd-sync-archive .box .box-body,.qhd-sync-contracts .box .box-body{height:calc(100% - 51px);overflow-x:auto}.qhd-sync-archive .row,.qhd-sync-contracts .row{margin-right:0;margin-left:0}.qhd-sync-archive .label-error,.qhd-sync-contracts .label-error{background-color:red}.btn,.form-control{font-size:1rem}label{font-weight:.875rem}.btn-primary{background-color:#0070d2;border-color:#0070d2}@media (min-width:48em){.steedos .slds-form-element_horizontal .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__control{padding-left:18%;clear:none}.steedos .slds-form-element_horizontal .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__label{max-width:16.75%;-ms-flex-preferred-size:16.75%;flex-basis:16.75%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control{padding-left:8.73%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label{width:8.73%}}.steedos .slds-split-view__list-item-action{padding:.35rem 1rem}/*! * Datetimepicker for Bootstrap 3 * version : 4.17.37 * https://github.com/Eonasdan/bootstrap-datetimepicker/ diff --git a/server/bundle/programs/web.browser.legacy/program.json b/server/bundle/programs/web.browser.legacy/program.json index d0e696c447..619200c56a 100644 --- a/server/bundle/programs/web.browser.legacy/program.json +++ b/server/bundle/programs/web.browser.legacy/program.json @@ -2,21 +2,21 @@ "format": "web-program-pre1", "manifest": [ { - "path": "18b1573e16dfb893209907100a4090bccecb75e9.js", + "path": "1a16ea9413b8cd85ada717cd3a6934cf722fa935.js", "where": "client", "type": "js", "cacheable": true, - "url": "/18b1573e16dfb893209907100a4090bccecb75e9.js?meteor_js_resource=true", + "url": "/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js?meteor_js_resource=true", "size": 4302481, - "hash": "18b1573e16dfb893209907100a4090bccecb75e9", - "sri": "SuXtfjarbKHPx2NiS4FW89bNt71E+Pm7TZQDYuEIf3fqq+yusOxXOX6YOD87GsenbLB1fj0NGDl0zEDfvlEB+w==" + "hash": "1a16ea9413b8cd85ada717cd3a6934cf722fa935", + "sri": "muK5RV31jcSgpHtLED18GxuLNQFSX/ICVrs7oxKV2psvZ67IGvTLoQm6nFzTFNVMzhtOg+yy6RNosObTdx02ug==" }, { - "path": "18b1573e16dfb893209907100a4090bccecb75e9.stats.json", + "path": "1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json", "where": "client", "type": "json", "cacheable": true, - "url": "/18b1573e16dfb893209907100a4090bccecb75e9.stats.json?meteor_js_resource=true", + "url": "/1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json?meteor_js_resource=true", "size": 92670, "hash": "7eca662c8e09a0ad2573af244f494b13b3943849", "sri": "+G6+Fq3I6ht/yNAzH4ivctmpGDZOG07suirhLk6OOyRlKXNe8WUib+qoe+CCOa27dKG27Ge2c+x+0cEGvTEhxQ==" @@ -42,14 +42,14 @@ "sri": "QHoD3eBWtoB0O5iCxYBCVvUIiHJ/4DDM/ojXZdmSFEEM+8kcGAQ3eaB2wpOenTLldZ9XhfIGTBaNisipdwarxA==" }, { - "path": "5766f147e314187665f8cf23620c00b20d7a2c90.css", + "path": "22b72a003d0bc555f97724324e85cd5b0fb7287b.css", "where": "client", "type": "css", "cacheable": true, - "url": "/5766f147e314187665f8cf23620c00b20d7a2c90.css?meteor_css_resource=true", - "size": 894156, - "hash": "5766f147e314187665f8cf23620c00b20d7a2c90", - "sri": "KGJ7pjBMB8roj1/XGmvKR6VRiKoXCGFOo1YWb2RmIHSVtW5aZBX8aakXhuu10JSEIi/E2mwKnWozQGfHx3MgfQ==" + "url": "/22b72a003d0bc555f97724324e85cd5b0fb7287b.css?meteor_css_resource=true", + "size": 894228, + "hash": "22b72a003d0bc555f97724324e85cd5b0fb7287b", + "sri": "JT7GK9fCVO4m5f6C+tWdHywBr57Bgb3gvTKPYhgR1nePtq8yRtjOdxdT4zssDA1n5Cm4dxVP3DeOo/DzSh8AFQ==" }, { "path": "packages/aldeed_tabular/images/sort_asc.png", diff --git a/server/bundle/programs/web.browser/18b1573e16dfb893209907100a4090bccecb75e9.js b/server/bundle/programs/web.browser/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js similarity index 99% rename from server/bundle/programs/web.browser/18b1573e16dfb893209907100a4090bccecb75e9.js rename to server/bundle/programs/web.browser/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js index 22c20b4d5c..40f2726338 100644 --- a/server/bundle/programs/web.browser/18b1573e16dfb893209907100a4090bccecb75e9.js +++ b/server/bundle/programs/web.browser/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js @@ -68,7 +68,7 @@ object-assign * Copyright 2011-2019 Twitter, Inc. * Licensed under the MIT license */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1||t[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,r=this,i;return e(this).one("bsTransitionEnd",(function(){n=!0})),setTimeout((function(){n||e(r).trigger(e.support.transition.end)}),t),this},e((function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})}))}(jQuery),function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};function r(t){return this.each((function(){var r=e(this),i=r.data("bs.alert");i||r.data("bs.alert",i=new n(this)),"string"==typeof t&&i[t].call(r)}))}n.VERSION="3.4.1",n.TRANSITION_DURATION=150,n.prototype.close=function(t){var r=e(this),i=r.attr("data-target");i||(i=(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=e(document).find(i);function s(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=r.closest(".alert")),o.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",s).emulateTransitionEnd(n.TRANSITION_DURATION):s())};var i=e.fn.alert;e.fn.alert=r,e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=i,this},e(document).on("click.bs.alert.data-api",t,n.prototype.close)}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.isLoading=!1};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.button"),o="object"==typeof n&&n;i||r.data("bs.button",i=new t(this,o)),"toggle"==n?i.toggle():n&&i.setState(n)}))}t.VERSION="3.4.1",t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(t){var n="disabled",r=this.$element,i=r.is("input")?"val":"html",o=r.data();t+="Text",null==o.resetText&&r.data("resetText",r[i]()),setTimeout(e.proxy((function(){r[i](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,r.addClass(n).attr(n,n).prop(n,!0)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n).prop(n,!1))}),this),0)},t.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var r=e.fn.button;e.fn.button=n,e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=r,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var r=e(t.target).closest(".btn");n.call(r,"toggle"),e(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),r.is("input,button")?r.trigger("focus"):r.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))}))}(jQuery),function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.carousel"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n),s="string"==typeof n?n:o.slide;i||r.data("bs.carousel",i=new t(this,o)),"number"==typeof n?i.to(n):s?i[s]():o.interval&&i.pause().cycle()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=600,t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},t.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},t.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t),r;if(("prev"==e&&0===n||"next"==e&&n==this.$items.length-1)&&!this.options.wrap)return t;var i,o=(n+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(o)},t.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){t.to(e)})):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(!this.sliding)return this.slide("next")},t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},t.prototype.slide=function(n,r){var i=this.$element.find(".item.active"),o=r||this.getItemForDirection(n,i),s=this.interval,a="next"==n?"left":"right",u=this;if(o.hasClass("active"))return this.sliding=!1;var f=o[0],c=e.Event("slide.bs.carousel",{relatedTarget:f,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=e(this.$indicators.children()[this.getItemIndex(o)]);l&&l.addClass("active")}var h=e.Event("slid.bs.carousel",{relatedTarget:f,direction:a});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(n),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(a),o.addClass(a),i.one("bsTransitionEnd",(function(){o.removeClass([n,a].join(" ")).addClass("active"),i.removeClass(["active",a].join(" ")),u.sliding=!1,setTimeout((function(){u.$element.trigger(h)}),0)})).emulateTransitionEnd(t.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(h)),s&&this.cycle(),this}};var r=e.fn.carousel;e.fn.carousel=n,e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=r,this};var i=function(t){var r=e(this),i=r.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=r.attr("data-target")||i,s=e(document).find(o);if(s.hasClass("carousel")){var a=e.extend({},s.data(),r.data()),u=r.attr("data-slide-to");u&&(a.interval=!1),n.call(s,a),u&&s.data("bs.carousel").to(u),t.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",i).on("click.bs.carousel.data-api","[data-slide-to]",i),e(window).on("load",(function(){e('[data-ride="carousel"]').each((function(){var t=e(this);n.call(t,t.data())}))}))}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.$trigger=e('[data-toggle="collapse"][href="#'+n.id+'"],[data-toggle="collapse"][data-target="#'+n.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var n,r=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(document).find(r)}function r(n){return this.each((function(){var r=e(this),i=r.data("bs.collapse"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n);!i&&o.toggle&&/show|hide/.test(n)&&(o.toggle=!1),i||r.data("bs.collapse",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=350,t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e;return this.$element.hasClass("width")?"width":"height"},t.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(n=i.data("bs.collapse"))&&n.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){i&&i.length&&(r.call(i,"hide"),n||i.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return a.call(this);var u=e.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",e.proxy(a,this)).emulateTransitionEnd(t.TRANSITION_DURATION)[s](this.$element[0][u])}}}},t.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var n=e.Event("hide.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.dimension();this.$element[r](this.$element[r]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return i.call(this);this.$element[r](0).one("bsTransitionEnd",e.proxy(i,this)).emulateTransitionEnd(t.TRANSITION_DURATION)}}},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},t.prototype.getParent=function(){return e(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy((function(t,r){var i=e(r);this.addAriaAndCollapsedClass(n(i),i)}),this)).end()},t.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var i=e.fn.collapse;e.fn.collapse=r,e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=i,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){var i=e(this);i.attr("data-target")||t.preventDefault();var o=n(i),s,a=o.data("bs.collapse")?"toggle":i.data();r.call(o,a)}))}(jQuery),function(e){"use strict";var t=".dropdown-backdrop",n='[data-toggle="dropdown"]',r=function(t){e(t).on("click.bs.dropdown",this.toggle)};function i(t){var n=t.attr("data-target");n||(n=(n=t.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r="#"!==n?e(document).find(n):null;return r&&r.length?r:t.parent()}function o(r){r&&3===r.which||(e(t).remove(),e(n).each((function(){var t=e(this),n=i(t),o={relatedTarget:this};n.hasClass("open")&&(r&&"click"==r.type&&/input|textarea/i.test(r.target.tagName)&&e.contains(n[0],r.target)||(n.trigger(r=e.Event("hide.bs.dropdown",o)),r.isDefaultPrevented()||(t.attr("aria-expanded","false"),n.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))})))}function s(t){return this.each((function(){var n=e(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new r(this)),"string"==typeof t&&i[t].call(n)}))}r.VERSION="3.4.1",r.prototype.toggle=function(t){var n=e(this);if(!n.is(".disabled, :disabled")){var r=i(n),s=r.hasClass("open");if(o(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",o);var a={relatedTarget:this};if(r.trigger(t=e.Event("show.bs.dropdown",a)),t.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger(e.Event("shown.bs.dropdown",a))}return!1}},r.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var r=e(this);if(t.preventDefault(),t.stopPropagation(),!r.is(".disabled, :disabled")){var o=i(r),s=o.hasClass("open");if(!s&&27!=t.which||s&&27==t.which)return 27==t.which&&o.find(n).trigger("focus"),r.trigger("click");var a=" li:not(.disabled):visible a",u=o.find(".dropdown-menu"+a);if(u.length){var f=u.index(t.target);38==t.which&&f>0&&f--,40==t.which&&fdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},t.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},t.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:i},f.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var s=i[o];if("click"==s)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",u="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},f.prototype.getDefaults=function(){return f.DEFAULTS},f.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete r[i];return(n=e.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=u(n.template,n.whiteList,n.sanitizeFn)),n},f.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,(function(e,r){n[e]!=r&&(t[e]=r)})),t},f.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},f.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},f.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},f.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var n=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,u=a.test(s);u&&(s=s.replace(a,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),l=i[0].offsetWidth,h=i[0].offsetHeight;if(u){var d=s,p=this.getPosition(this.$viewport);s="bottom"==s&&c.bottom+h>p.bottom?"top":"top"==s&&c.top-hp.width?"left":"left"==s&&c.left-ls.top+s.height&&(i.top=s.top+s.height-u)}else{var f=t.left-o,c=t.left+o+n;fs.right&&(i.left=s.left+s.width-c)}return i},f.prototype.getTitle=function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)},f.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},f.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},f.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},f.prototype.enable=function(){this.enabled=!0},f.prototype.disable=function(){this.enabled=!1},f.prototype.toggleEnabled=function(){this.enabled=!this.enabled},f.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},f.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},f.prototype.sanitizeHtml=function(e){return u(e,this.options.whiteList,this.options.sanitizeFn)};var l=e.fn.tooltip;e.fn.tooltip=c,e.fn.tooltip.Constructor=f,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=l,this}}(jQuery),function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");function n(n){return this.each((function(){var r=e(this),i=r.data("bs.popover"),o="object"==typeof n&&n;!i&&/destroy|hide/.test(n)||(i||r.data("bs.popover",i=new t(this,o)),"string"==typeof n&&i[n]())}))}t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),t.prototype.constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();if(this.options.html){var r=typeof n;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===r&&(n=this.sanitizeHtml(n))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===r?"html":"append"](n)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(n);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var r=e.fn.popover;e.fn.popover=n,e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=r,this}}(jQuery),function(e){"use strict";function t(n,r){this.$body=e(document.body),this.$scrollElement=e(n).is(document.body)?e(window):e(n),this.options=e.extend({},t.DEFAULTS,r),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each((function(){var r=e(this),i=r.data("bs.scrollspy"),o="object"==typeof n&&n;i||r.data("bs.scrollspy",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,n="offset",r=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",r=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var t=e(this),i=t.data("target")||t.attr("href"),o=/^#./.test(i)&&e(i);return o&&o.length&&o.is(":visible")&&[[o[n]().top+r,i]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},t.prototype.process=function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.getScrollHeight(),n=this.options.offset+t-this.$scrollElement.height(),r=this.offsets,i=this.targets,o=this.activeTarget,s;if(this.scrollHeight!=t&&this.refresh(),e>=n)return o!=(s=i[i.length-1])&&this.activate(s);if(o&&e=r[s]&&(void 0===r[s+1]||e .active"),s=i&&e.support.transition&&(o.length&&o.hasClass("fade")||!!r.find("> .fade").length);function a(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(n[0].offsetWidth,n.addClass("in")):n.removeClass("fade"),n.parent(".dropdown-menu").length&&n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&s?o.one("bsTransitionEnd",a).emulateTransitionEnd(t.TRANSITION_DURATION):a(),o.removeClass("in")};var r=e.fn.tab;e.fn.tab=n,e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=r,this};var i=function(t){t.preventDefault(),n.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(e){"use strict";var t=function(n,r){this.options=e.extend({},t.DEFAULTS,r);var i=this.options.target===t.DEFAULTS.target?e(this.options.target):e(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(n),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.affix"),o="object"==typeof n&&n;i||r.data("bs.affix",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.RESET="affix affix-top affix-bottom",t.DEFAULTS={offset:0,target:window},t.prototype.getState=function(e,t,n,r){var i=this.$target.scrollTop(),o=this.$element.offset(),s=this.$target.height();if(null!=n&&"top"==this.affixed)return i=e-r&&"bottom"},t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var e=this.$target.scrollTop(),n=this.$element.offset();return this.pinnedOffset=n.top-e},t.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var n=this.$element.height(),r=this.options.offset,i=r.top,o=r.bottom,s=Math.max(e(document).height(),e(document.body).height());"object"!=typeof r&&(o=i=r),"function"==typeof i&&(i=r.top(this.$element)),"function"==typeof o&&(o=r.bottom(this.$element));var a=this.getState(s,n,i,o);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var u="affix"+(a?"-"+a:""),f=e.Event(u+".bs.affix");if(this.$element.trigger(f),f.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-n-o})}};var r=e.fn.affix;e.fn.affix=n,e.fn.affix.Constructor=t,e.fn.affix.noConflict=function(){return e.fn.affix=r,this},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),r=t.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),n.call(t,r)}))}))}(jQuery)}}}},fibers:{"package.json":function e(t,n,e){e.exports={name:"fibers",version:"5.0.3",main:"fibers"}},"fibers.js":function e(t,n,e,r,i){if(process.fiberLib)e.exports=process.fiberLib;else{var o=t("fs"),s=t("path"),a=t("detect-libc");Math.random();var u=s.join(i,"bin",process.platform+"-"+process.arch+"-"+process.versions.modules+("linux"===process.platform?"-"+a.family:""),"fibers");try{process.fiberLib=e.exports=t(u).Fiber}catch(c){throw console.error("## There is an issue with `node-fibers` ##\n`"+u+".node` is missing.\n\nTry running this to fix the issue: "+process.execPath+" "+i.replace(" ","\\ ")+"/build"),console.error(c.stack||c.message||c),new Error("Missing binary. See message above.")}f(e.exports)}function f(e){try{var t=process.binding("async_wrap"),n;if(t.asyncIdStackSize instanceof Function)n=t.asyncIdStackSize;else{if(void 0===t.constants.kStackLength)throw new Error("Couldn't figure out how to get async stack size");l=t.constants.kStackLength,n=function(){return t.async_hook_fields[l]}}var r=t.popAsyncContext||t.popAsyncIds,i=t.pushAsyncContext||t.pushAsyncIds,o,s;if(!r||!i)throw new Error("Push/pop do not exist");o=void 0===t.constants.kExecutionAsyncId?t.constants.kCurrentAsyncId:t.constants.kExecutionAsyncId,s=void 0===t.constants.kTriggerAsyncId?t.constants.kCurrentTriggerId:t.constants.kTriggerAsyncId;var a=t.async_id_fields||t.async_uid_fields;function u(){for(var e=n(),t=new Array(e);e>0;--e){var i=a[o];t[e-1]={asyncId:i,triggerId:a[s]},r(i)}return t}function f(e){for(var t=0;t0)i.changeLanguage(e,r);else if(0!=a[u]){a[u]=0;var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",u,!1),f.send(null),200===f.status?a[u]=1:a[u]=-1,n.addResourceBundle(e,s,JSON.parse(f.response)||{}),i.changeLanguage(e,r)}};n.changeLanguage=p;var g=function(e,t,n){return i.format(e,t,n)};n.format=g;var b=function(){return i.languages};n.getLanguages=b;var m=function(e,t){return i.loadLanguages(e,t)};n.loadLanguages=m;var v=function(e,t){return i.loadNamespaces(e,t)};n.loadNamespaces=v;var y=function(e,t){return i.on(e,t)};n.on=y;var _=function(e,t){return i.off(e,t)};n.off=_,r.__exportStar(t("./i18n/i18n"),n),r.__exportStar(t("./i18n/i18n.app"),n),r.__exportStar(t("./translations"),n)},i18n:{"i18n.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.fallbackKeys=n.getObjectI18nTemplate=n.translationI18nObjects=n.addObjectsI18n=n.translationI18nObject=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="_",a="base",u="core",f="translation",c=function(e,t){var n={lng:t,ns:f};if((0,r.exists)(e,n))return(0,r._t)(e,n)},l=function(e){return"".concat(e,"__object")},h=function(e,t){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t)},d=function(e,t){var n=h(e,t);return"".concat(n).concat("_","inlineHelpText")},p=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","group").concat("_").concat(n)},g=function(e,t,n){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t).concat("_","options").concat("_").concat(n)},b=function(e,t){return"".concat(e).concat("_","action").concat("_").concat(t)},m=function(e,t){return"".concat(e).concat("_","listview").concat("_").concat(t)},v=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},y=function(e,t,n){var r=l(t);return c(r,e)||n||""},_=function(e,t,n,r,i){var o=h(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=_(e,a,n,r,i))}return s||r||""},w=function(e,t,n,r,i){var o=d(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=w(e,a,n,r,i))}return s||r||""},k=function(e,t,n,r){var i=p(t,n);return c(i,e)||r||""},j=function(e,t,n,r,i,o){var s=g(t,n,r),a=c(s,e);if(!a){var u=v(o);u&&"base"!=t&&"core"!=t&&(a=j(e,u,n,r,i,o))}return a||i||""},x=function(e,t,n,r,i){var o=b(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=x(e,a,n,r,i))}return s||r||""},S=function(e,t,n,r,i){var o=m(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=S(e,a,n,r,i))}return s||r||""},D=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},E=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;return e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(D(e))}))):n.push(D(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},A=function(e,t,n){n.label=y(e,t,n.label),i.each(n.fields,(function(r,o){if(r.label=_(e,t,o,r.label,n.datasource),r.inlineHelpText&&(r.inlineHelpText=w(e,t,o,r.inlineHelpText,n.datasource)),r.group&&(r.group=k(e,t,r.group,r.group)),r.options){var s=[];i.each(r.options,(function(r){if(i.has(r,"value")){var a=j(e,t,o,r.value,r.label,n.datasource);s.push(i.extend({},r,{label:a}))}else s.push(r)})),r.options=s}})),i.each(n.actions,(function(r,i){r.label=x(e,t,i,r.label,n.datasource)})),i.each(n.list_views,(function(r,i){r.label=S(e,t,i,r.label,n.datasource)}))};n.translationI18nObject=A;var C=function(e){i.each(e,(function(e){(0,r.addResourceBundle)(e.lng,f,e.data,!0,!0)}))};n.addObjectsI18n=C;var M=function(e,t){i.each(t,(function(t,r){(0,n.translationI18nObject)(e,r,t)}))};n.translationI18nObjects=M;var O=function(e,t,n){var r=o(n);E(r);var s={};return s[l(t)]=y(e,t,r.label),i.each(r.fields,(function(n,o){s[h(t,o)]=_(e,t,o,n.label),n.inlineHelpText&&(s[d(t,o)]=w(e,t,o,n.inlineHelpText,r.datasource)),n.group&&(s[p(t,n.group)]=k(e,t,n.group,n.group)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[g(t,o,n.value)]=j(e,t,o,n.value,n.label))}))})),i.each(r.actions,(function(n,r){s[b(t,r)]=x(e,t,r,n.label)})),i.each(r.list_views,(function(n,r){s[m(t,r)]=S(e,t,r,n.label)})),s};n.getObjectI18nTemplate=O,n.fallbackKeys={getObjectLabelKey:l,getObjectFieldLabelKey:h,getObjectFieldInlineHelpTextLabelKey:d,getObjectFieldGroupKey:p,getObjectFieldOptionsLabelKey:g,getObjectActionLabelKey:b,getObjectListviewLabelKey:m}},"i18n.app.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.appFallbackKeys=n.getAppI18nTemplate=n.translationI18nApps=n.translationI18nMenus=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="translation",a="_",u=function(e,t){var n={lng:t,ns:s};if((0,r.exists)(e,n))return(0,r._t)(e,n)},f=function(e){return"app".concat("_").concat(e).concat("_","name")},c=function(e){return"app".concat("_").concat(e).concat("_","description")},l=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","tab_group").concat("_").concat(n)},h=function(e){return"menu".concat("_").concat(e)},d=function(e){return"tab".concat("_").concat(e)},p=function(e,t,n){var r=f(t);return u(r,e)||n||""},g=function(e,t,n){var r=c(t);return u(r,e)||n||""},b=function(e,t,n){var r=h(t);return u(r,e)||n||""},m=function(e,t,r){r.label=p(e,t,r.label||r.name),r.description=g(e,t,r.description),(0,n.translationI18nMenus)(e,r.admin_menus)},v=function(e,t){i.each(t,(function(t){var n=b(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationI18nMenus=v;var y=function(e,t){i.each(t,(function(t,n){m(e,n,t)}))};n.translationI18nApps=y;var _=function(e,t,n){var r=o(n),s={};return s[f(t)]=p(e,t,r.label||r.name),s[c(t)]=g(e,t,r.description),i.each(r.admin_menus,(function(t){s[h(t._id)]=b(e,t._id,t.label||t.name)})),s};n.getAppI18nTemplate=_,n.appFallbackKeys={getAppLabelKey:f,getAppDescriptionKey:c,getAppGroupKey:l,getMenuLabelKey:h,getTabKey:d}}},translations:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SteedosTranslationPrefixKeys=n.convertObject=void 0;var r=t("tslib"),i=t("underscore");r.__exportStar(t("./objectTranslation"),n),r.__exportStar(t("./translation"),n),r.__exportStar(t("./templates/objectTranslation"),n),r.__exportStar(t("./templates/translation"),n);var o=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},s=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(o(e))}))):n.push(o(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else if(e.options&&i.isArray(e.options))try{i.forEach(e.options,(function(e){i.isString(e)?n.push(o(e)):n.push(e)})),e.options=n}catch(r){console.error("Creator.convertFieldsOptions",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},a;n.convertObject=s,function(e){e.Object="CustomObject",e.Field="CustomField",e.Action="CustomAction",e.Listview="CustomListview",e.Permission="CustomPermission",e.ValidationRule="CustomValidationRule",e.Application="CustomApplication",e.Tab="CustomTabs",e.Permissionset="CustomPermissionset",e.Profile="CustomProfile",e.Report="CustomReport",e.Workflow="Workflow",e.Layout="Layout",e.Client="Client",e.Server="Server",e.Function="Function",e.Router="Router",e.Trigger="Trigger"}(a=n.SteedosTranslationPrefixKeys||(n.SteedosTranslationPrefixKeys={}))},"objectTranslation.js":function e(t,n,e,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addObjectsTranslation=n.getObjectTranslationTemplate=n.translationObjects=n.translationObject=n.translationObjectLabel=void 0;var i=t("underscore"),o=t("./"),s=t("../index"),a=t("./index"),u=t("../i18n/i18n"),f=t("lodash"),c=t("crypto"),l,h=(0,t("@steedos/cachers").getCacher)("lru.translations.objects");function d(e){var t;return c.createHash("md5").update(e).digest("hex")}var p=function(e,t){return"".concat(e,"_").concat(t.name,"_").concat(d(JSON.stringify(t)))},g=t("clone"),b=".",m="base",v="core",y="translation",_="object",w="field",k="listview",j="action",x=function(e,t){var n={lng:t,ns:y,keySeparator:!1};if((0,s.exists)(e,n))return(0,s._t)(e,n)},S=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},D=function(e){switch(e){case"object":return o.SteedosTranslationPrefixKeys.Object;case"field":return o.SteedosTranslationPrefixKeys.Field;case"listview":return o.SteedosTranslationPrefixKeys.Listview;case"action":return o.SteedosTranslationPrefixKeys.Action;default:return"CustomLabels"}},E=function(e){var t;return[D(),e].join(".")},A=function(e){var t;return[D("object"),e,"label"].join(".")},C=function(e){var t;return[D("object"),e,"description"].join(".")},M=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"label"].join(".")},O=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"help"].join(".")},T=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"description"].join(".")},B=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_"),r;return[D("field"),e,"group",n].join(".")},I=function(e,t,n){var r;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"options",n].join(".")},R=function(e,t){var n;return[D("action"),e,t].join(".")},F=function(e,t){var n;return[D("listview"),e,t].join(".")},P=function(e,t,n){var r,i=[A(t)],o=u.fallbackKeys.getObjectLabelKey(t);return o&&i.push(o),x(i,e)||n||""};n.translationObjectLabel=P;var N=function(e,t,n){var r=C(t);return x(r,e)||n||""},L=function(e,t,n,r,i,o){var s,a=[M(t,n)],f=u.fallbackKeys.getObjectFieldLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=L(e,l,n,r,i))}return c||r||""},z=function(e,t,n,r,i,o){var s,a=[O(t,n)],f=u.fallbackKeys.getObjectFieldInlineHelpTextLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=z(e,l,n,r,i))}return c||r||""},U=function(e,t,n,r,i,o){var s=T(t,n),a,u=x([s],e);if(1!=o&&!u){var f=S(i);f&&"base"!=t&&"core"!=t&&(u=U(e,f,n,r,i))}return u||r||""},q=function(e,t,n,r,i,o){var s,a=[B(t,n)],f=u.fallbackKeys.getObjectFieldGroupKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=q(e,l,n,r,i))}return c||r||""},$=function(e,t,n,r,i,o,s){var a,f=[I(t,n,r)],c=u.fallbackKeys.getObjectFieldOptionsLabelKey(t,n,r);c&&f.push(c);var l=x(f,e);if(1!=s&&!l){var h=S(o);h&&"base"!=t&&"core"!=t&&(l=$(e,h,n,r,i,o))}return l||i||""},H=function(e,t,n,r,i,o){var s,a=[R(t,n)],f=u.fallbackKeys.getObjectActionLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=H(e,l,n,r,i))}return c||r||""},W=function(e,t,n,r,i,o){var s,a=[F(t,n)],f=u.fallbackKeys.getObjectListviewLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=W(e,l,n,r,i))}return c||r||""},Y=function(e,t,r,o,s){void 0===s&&(s=!1);var u=p(e,r);"test_obj_layout1"===t&&console.log("translationObject",t,u);var c=h.get(u);if(c)return Object.assign(r,(0,f.cloneDeep)(c));o&&(0,a.convertObject)(r),r.label=(0,n.translationObjectLabel)(e,t,r.label),r.description=N(e,t,r.description),i.each(r.fields,(function(n,o){if(n.label=L(e,t,o,n.label,r.datasource,s),n.inlineHelpText&&(n.inlineHelpText=z(e,t,o,n.inlineHelpText,r.datasource,s)),n.group&&(n.group=q(e,t,n.group,n.group,r.datasource,s)),n.options){var a=[];i.each(n.options,(function(n){if(i.has(n,"value")){var u=$(e,t,o,n.value,n.label,r.datasource,s);a.push(i.extend({},n,{label:u}))}else a.push(n)})),n.options=a}})),i.each(r.actions,(function(n,i){n.label=H(e,t,i,n.label,r.datasource,s)})),i.each(r.list_views,(function(n,i){n.label=W(e,t,i,n.label,r.datasource,s)})),h.set(u,(0,f.cloneDeep)(r))};n.translationObject=Y;var V=function(e,t){i.each(t,(function(t,r){(0,n.translationObject)(e,r,t)}))};n.translationObjects=V;var K=function(e,t,r){var o=g(r);(0,a.convertObject)(o);var s={};return s[A(t)]=(0,n.translationObjectLabel)(e,t,o.label),s[C(t)]=N(e,t,o.description),i.each(o.fields,(function(n,r){s[M(t,r)]=L(e,t,r,n.label),n.inlineHelpText&&(s[O(t,r)]=z(e,t,r,n.inlineHelpText,o.datasource)),n.description&&(s[T(t,r)]=U(e,t,r,n.description,o.datasource)),n.group&&(s[B(t,n.group)]=q(e,t,n.group,n.group,o.datasource)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[I(t,r,n.value)]=$(e,t,r,n.value,n.label))}))})),i.each(o.actions,(function(n,r){s[R(t,r)]=H(e,t,r,n.label)})),i.each(o.list_views,(function(n,r){s[F(t,r)]=W(e,t,r,n.label)})),s};function G(e,t){var n=g(e);(0,a.convertObject)(n);var r={},o=n.name;return o||console.error("Error: Invalid objectTranslation:"+t),r[A(o)]=n.label,r[C(o)]=n.description,i.each(n.fields,(function(e,t){r[M(o,t)]=e.label,e.help&&(r[O(o,t)]=e.help),e.description&&(r[T(o,t)]=e.description),e.options&&i.each(e.options,(function(e){i.has(e,"value")&&(r[I(o,t,e.value)]=e.label)}))})),i.each(n.groups,(function(e,t){r[B(o,t)]=e})),i.each(n.actions,(function(e,t){r[R(o,t)]=e.label})),i.each(n.listviews,(function(e,t){r[F(o,t)]=e.label})),i.each(n.CustomLabels,(function(e,t){r[E(t)]=e})),r}n.getObjectTranslationTemplate=K;var X=function(e){i.each(e,(function(e){var t=G(e.data,e.__filename);(0,s.addResourceBundle)(e.lng,y,t,!0,!0)}))};n.addObjectsTranslation=X},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addTranslations=n.convertTranslation=n.convertTranslationData=n.getAppTranslationTemplate=n.translationApps=n.translationMenus=n.translationApp=n.translationTabLabel=n.translationTabGroup=void 0;var r=t("../index"),i=t("underscore"),o=t("./"),s=t("../i18n/i18n.app"),a=t("clone"),u="translation",f=".",c="app",l="menu",h="tab",d=function(e){switch(e){case"app":return o.SteedosTranslationPrefixKeys.Application;case"tab":return o.SteedosTranslationPrefixKeys.Tab;default:return"CustomLabels"}},p=function(e){var t;return[d(),e].join(".")},g=function(e,t){var n={lng:t,ns:u,keySeparator:!1};if((0,r.exists)(e,n))return(0,r._t)(e,n)},b=function(e){var t;return[d("app"),e,"name"].join(".")},m=function(e){var t;return[d("app"),e,"description"].join(".")},v=function(e,t){var n,r;return[d("app"),e,"groups",t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_")].join(".")},y=function(e){var t;return[d("menu"),"menu_".concat(e)].join(".")},_=function(e){var t;return[d("tab"),e].join(".")},w=function(e,t,n){var r,i=[b(t)],o=s.appFallbackKeys.getAppLabelKey(t);return o&&i.push(o),g(i,e)||n||""},k=function(e,t,n){var r,i=[m(t)],o=s.appFallbackKeys.getAppDescriptionKey(t);return o&&i.push(o),g(i,e)||n||""},j=function(e,t,n,r){var i,o=[v(t,n)],a=s.appFallbackKeys.getAppGroupKey(t,n);return a&&o.push(a),g(o,e)||r||""};n.translationTabGroup=j;var x=function(e,t,n){var r,i=[y(t)],o=s.appFallbackKeys.getMenuLabelKey(t);return o&&i.push(o),g(i,e)||n||""},S=function(e,t,n){var r,i=[_(t)],o=s.appFallbackKeys.getTabKey(t);return o&&i.push(o),g(i,e)||n||""};n.translationTabLabel=S;var D=function(e,t,r){r.label=w(e,t,r.label||r.name),r.description=k(e,t,r.description),i.each(r.tab_groups,(function(i,o){r.tab_groups[o].id=i.id||i.group_name,r.tab_groups[o].group_name=(0,n.translationTabGroup)(e,t,i.group_name,i.group_name)})),(0,n.translationMenus)(e,r.admin_menus)};n.translationApp=D;var E=function(e,t){i.each(t,(function(t){var n=x(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationMenus=E;var A=function(e,t){i.each(t,(function(t,r){(0,n.translationApp)(e,r,t)}))};n.translationApps=A;var C=function(e,t,n){var r=a(n),o={};return o[b(t)]=w(e,t,r.label||r.name),o[m(t)]=k(e,t,r.description),i.each(r.admin_menus,(function(t){o[y(t._id)]=x(e,t._id,t.label||t.name)})),o};n.getAppTranslationTemplate=C;var M=function(e,t,n){i.isArray(n)?i.each(n,(function(e){M(e,"",e)})):n&&i.each(i.keys(n),(function(r){var o=t?"".concat(t,".").concat(r):r,s=n[r];"object"==typeof s?i.isArray(s)?i.each(s,(function(e){M(e,o,s)})):M(e,o,s):e[o]=s}))};function O(e){for(var t in e)"object"==typeof e[t]&&M(e,t,e[t]);return e}n.convertTranslationData=O;var T=function(e){var t=a(e),n={};return i.each(t.CustomApplications,(function(e,t){n[b(t)]=e.name,n[m(t)]=e.description,i.each(e.groups,(function(e,r){n[v(t,r)]=e}))})),i.each(t.CustomTabs,(function(e,t){n[_(t)]=e})),i.each(t.CustomLabels,(function(e,t){var r;if("simpleschema"!=t&&i.isObject(e)){var o=O(((r={})[t]=e,r));i.each(o,(function(e,t){i.isObject(e)||(n[p(t)]=e)}))}else n[p(t)]=e})),n};n.convertTranslation=T;var B=function(e){i.each(e,(function(e){var t=(0,n.convertTranslation)(e.data);(0,r.addResourceBundle)(e.lng,u,t,!0,!0)}))};n.addTranslations=B},templates:{"objectTranslation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getObjectMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]="help"===e?t.inlineHelpText||"":t[e]||""})),n}function a(e){return s(["label","description"],e)}function u(e){switch(e.type){case"select":return s(["label","help","options","description"],e);default:return s(["label","help","description"],e)}}function f(e){return s(["label"],e)}function c(e){return s(["label"],e)}function l(e){var t={};return r.each(e,(function(e,n){t[n]=u(e)})),t}function h(e){var t={};return r.each(e,(function(e,n){t[n]=c(e)})),t}function d(e){var t={};return r.each(e,(function(e,n){t[n]=f(e)})),t}function p(e,t){var n={};return r.each(e,(function(e,r){if(e.group){var i=e.group.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");n[i]=t[r].group}})),n}var g=function(e,t,n,s){void 0===s&&(s=!1);var u=o(n);1!=s&&(0,i.translationObject)(e,t,u,!0,s);var f=Object.assign({},a(u));f=Object.assign({},f,{fields:l(u.fields)});var c=p(n.fields,u.fields);r.isEmpty(c)||(f=Object.assign({},f,{groups:c}));var g=d(u.list_views);r.isEmpty(g)||(f=Object.assign({},f,{listviews:g}));var b=h(u.actions);return r.isEmpty(b)||(f=Object.assign({},f,{actions:b})),Object.assign({name:t},f)};n.getObjectMetadataTranslationTemplate=g},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getAppMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]=t[e]||""})),n}function a(e){var t={groups:{}};return e?(r.each(e,(function(e){var n=e.group_name.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t.groups[n]=e.group_name})),t):{}}var u=function(e){return Object.assign({},s(["name","description"],e),a(e.tab_groups))},f=function(e){var t={};return r.each(e,(function(e,n){t[n]=n})),t},c=function(e){var t={};return r.each(e,(function(e){var n=e.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t[n]=e})),t},l=function(e,t,n){var r,s=o(n);(0,i.translationApp)(e,t,s);var a={},l;return s.tab_items?a=f(s.tab_items):s.tabs&&(a=c(s.tabs)),Object.assign({},{CustomApplications:(r={},r[t]=u(s),r)},{CustomTabs:a})};n.getAppMetadataTranslationTemplate=l}}}},node_modules:{i18next:{"package.json":function e(t,n,e){e.exports={name:"i18next",version:"19.9.2",module:"./dist/esm/i18next.js",main:"./dist/cjs/i18next.js"}},dist:{esm:{"i18next.js":function e(t,n,e){let r,i,o,s,a,u,f,c;e.link("@babel/runtime/helpers/esm/typeof",{default(e){r=e}},0),e.link("@babel/runtime/helpers/esm/objectSpread",{default(e){i=e}},1),e.link("@babel/runtime/helpers/esm/classCallCheck",{default(e){o=e}},2),e.link("@babel/runtime/helpers/esm/createClass",{default(e){s=e}},3),e.link("@babel/runtime/helpers/esm/possibleConstructorReturn",{default(e){a=e}},4),e.link("@babel/runtime/helpers/esm/getPrototypeOf",{default(e){u=e}},5),e.link("@babel/runtime/helpers/esm/assertThisInitialized",{default(e){f=e}},6),e.link("@babel/runtime/helpers/esm/inherits",{default(e){c=e}},7);var l={type:"logger",log:function e(t){this.output("log",t)},warn:function e(t){this.output("warn",t)},error:function e(t){this.output("error",t)},output:function e(t,n){console&&console[t]&&console[t].apply(console,n)}},h,d=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.init(t,n)}return s(e,[{key:"init",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||l,this.options=n,this.debug=n.debug}},{key:"setDebug",value:function e(t){this.debug=t}},{key:"log",value:function e(){for(var t=arguments.length,n=new Array(t),r=0;r1?n-1:0),i=1;i-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(i())return{};var s=r(o.shift());!e[s]&&n&&(e[s]=new n),e=Object.prototype.hasOwnProperty.call(e,s)?e[s]:{}}return i()?{}:{obj:e,k:r(o.shift())}}function y(e,t,n){var r=v(e,t,Object),i,o;r.obj[r.k]=n}function _(e,t,n,r){var i=v(e,t,Object),o=i.obj,s=i.k;o[s]=o[s]||[],r&&(o[s]=o[s].concat(n)),r||o[s].push(n)}function w(e,t){var n=v(e,t),r=n.obj,i=n.k;if(r)return r[i]}function k(e,t,n){var r=w(e,n);return void 0!==r?r:w(t,n)}function j(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):j(e[r],t[r],n):e[r]=t[r]);return e}function x(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var S={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function D(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return S[e]})):e}var E="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,A=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n}return c(t,e),s(t,[{key:"addNamespaces",value:function e(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function e(t){var n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,s=[t,n];return r&&"string"!=typeof r&&(s=s.concat(r)),r&&"string"==typeof r&&(s=s.concat(o?r.split(o):r)),t.indexOf(".")>-1&&(s=t.split(".")),w(this.data,s)}},{key:"addResource",value:function e(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},s=this.options.keySeparator;void 0===s&&(s=".");var a=[t,n];r&&(a=a.concat(s?r.split(s):r)),t.indexOf(".")>-1&&(i=n,n=(a=t.split("."))[1]),this.addNamespaces(n),y(this.data,a,i),o.silent||this.emit("added",t,n,r,i)}},{key:"addResources",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in r)"string"!=typeof r[o]&&"[object Array]"!==Object.prototype.toString.apply(r[o])||this.addResource(t,n,o,r[o],{silent:!0});i.silent||this.emit("added",t,n,r)}},{key:"addResourceBundle",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},u=[t,n];t.indexOf(".")>-1&&(o=r,r=n,n=(u=t.split("."))[1]),this.addNamespaces(n);var f=w(this.data,u)||{};o?j(f,r,s):f=i({},f,r),y(this.data,u,f),a.silent||this.emit("added",t,n,r)}},{key:"removeResourceBundle",value:function e(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}},{key:"hasResourceBundle",value:function e(t,n){return void 0!==this.getResource(t,n)}},{key:"getResourceBundle",value:function e(t,n){return n||(n=this.options.defaultNS),"v1"===this.options.compatibilityAPI?i({},{},this.getResource(t,n)):this.getResource(t,n)}},{key:"getDataByLanguage",value:function e(t){return this.data[t]}},{key:"toJSON",value:function e(){return this.data}}]),t}(p),C={processors:{},addPostProcessor:function e(t){this.processors[t.name]=t},handle:function e(t,n,r,i,o){var s=this;return t.forEach((function(e){s.processors[e]&&(n=s.processors[e].process(n,r,i,o))})),n}},M={},O=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),m(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,f(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=d.create("translator"),n}return c(t,e),s(t,[{key:"changeLanguage",value:function e(t){t&&(this.language=t)}},{key:"exists",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},r=this.resolve(t,n);return r&&void 0!==r.res}},{key:"extractFromKey",value:function e(t,n){var r=void 0!==n.nsSeparator?n.nsSeparator:this.options.nsSeparator;void 0===r&&(r=":");var i=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,o=n.ns||this.options.defaultNS;if(r&&t.indexOf(r)>-1){var s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:o};var a=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),t=a.join(i)}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}}},{key:"translate",value:function e(n,o,s){var a=this;if("object"!==r(o)&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),o||(o={}),null==n)return"";Array.isArray(n)||(n=[String(n)]);var u=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,f=this.extractFromKey(n[n.length-1],o),c=f.key,l=f.namespaces,h=l[l.length-1],d=o.lng||this.language,p=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var g=o.nsSeparator||this.options.nsSeparator;return h+g+c}return c}var b=this.resolve(n,o),m=b&&b.res,v=b&&b.usedKey||c,y=b&&b.exactUsedKey||c,_=Object.prototype.toString.apply(m),w=["[object Number]","[object Function]","[object RegExp]"],k=void 0!==o.joinArrays?o.joinArrays:this.options.joinArrays,j=!this.i18nFormat||this.i18nFormat.handleAsObject,x="string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m;if(j&&m&&x&&w.indexOf(_)<0&&("string"!=typeof k||"[object Array]"!==_)){if(!o.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,m,o):"key '".concat(c," (").concat(this.language,")' returned an object instead of string.");if(u){var S="[object Array]"===_,D=S?[]:{},E=S?y:v;for(var A in m)if(Object.prototype.hasOwnProperty.call(m,A)){var C="".concat(E).concat(u).concat(A);D[A]=this.translate(C,i({},o,{joinArrays:!1,ns:l})),D[A]===C&&(D[A]=m[A])}m=D}}else if(j&&"string"==typeof k&&"[object Array]"===_)(m=m.join(k))&&(m=this.extendTranslation(m,n,o,s));else{var M=!1,O=!1,T=void 0!==o.count&&"string"!=typeof o.count,B=t.hasDefaultValue(o),I=T?this.pluralResolver.getSuffix(d,o.count):"",R=o["defaultValue".concat(I)]||o.defaultValue;!this.isValidLookup(m)&&B&&(M=!0,m=R),this.isValidLookup(m)||(O=!0,m=c);var F=B&&R!==m&&this.options.updateMissing;if(O||M||F){if(this.logger.log(F?"updateKey":"missingKey",d,h,c,F?R:m),u){var P=this.resolve(c,i({},o,{keySeparator:!1}));P&&P.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var N=[],L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if("fallback"===this.options.saveMissingTo&&L&&L[0])for(var z=0;z1&&void 0!==arguments[1]?arguments[1]:{},i,o,s,a,u;return"string"==typeof t&&(t=[t]),t.forEach((function(e){if(!n.isValidLookup(i)){var t=n.extractFromKey(e,r),f=t.key;o=f;var c=t.namespaces;n.options.fallbackNS&&(c=c.concat(n.options.fallbackNS));var l=void 0!==r.count&&"string"!=typeof r.count,h=void 0!==r.context&&"string"==typeof r.context&&""!==r.context,d=r.lngs?r.lngs:n.languageUtils.toResolveHierarchy(r.lng||n.language,r.fallbackLng);c.forEach((function(e){n.isValidLookup(i)||(u=e,!M["".concat(d[0],"-").concat(e)]&&n.utils&&n.utils.hasLoadedNamespace&&!n.utils.hasLoadedNamespace(u)&&(M["".concat(d[0],"-").concat(e)]=!0,n.logger.warn('key "'.concat(o,'" for languages "').concat(d.join(", "),'" won\'t get resolved as namespace "').concat(u,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),d.forEach((function(t){if(!n.isValidLookup(i)){a=t;var o=f,u=[o],c,d;if(n.i18nFormat&&n.i18nFormat.addLookupKeys)n.i18nFormat.addLookupKeys(u,f,t,e,r);else l&&(c=n.pluralResolver.getSuffix(t,r.count)),l&&h&&u.push(o+c),h&&u.push(o+="".concat(n.options.contextSeparator).concat(r.context)),l&&u.push(o+=c);for(;d=u.pop();)n.isValidLookup(i)||(s=d,i=n.getResource(t,e,d,r))}})))}))}})),{res:i,usedKey:o,exactUsedKey:s,usedLng:a,usedNS:u}}},{key:"isValidLookup",value:function e(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}}],[{key:"hasDefaultValue",value:function e(t){var n="defaultValue";for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&void 0!==t[r])return!0;return!1}}]),t}(p);function T(e){return e.charAt(0).toUpperCase()+e.slice(1)}var B=function(){function e(t){o(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=d.create("languageUtils")}return s(e,[{key:"getScriptPartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return null;var n=t.split("-");return 2===n.length?null:(n.pop(),"x"===n[n.length-1].toLowerCase()?null:this.formatLanguageCode(n.join("-")))}},{key:"getLanguagePartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return t;var n=t.split("-");return this.formatLanguageCode(n[0])}},{key:"formatLanguageCode",value:function e(t){if("string"==typeof t&&t.indexOf("-")>-1){var n=["hans","hant","latn","cyrl","cans","mong","arab"],r=t.split("-");return this.options.lowerCaseLng?r=r.map((function(e){return e.toLowerCase()})):2===r.length?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase()))):3===r.length&&(r[0]=r[0].toLowerCase(),2===r[1].length&&(r[1]=r[1].toUpperCase()),"sgn"!==r[0]&&2===r[2].length&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=T(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function e(t){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(t)}},{key:"isSupportedCode",value:function e(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}},{key:"getBestMatchFromCodes",value:function e(t){var n=this,r;return t?(t.forEach((function(e){if(!r){var t=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(t)||(r=t)}})),!r&&this.options.supportedLngs&&t.forEach((function(e){if(!r){var t=n.getLanguagePartFromCode(e);if(n.isSupportedCode(t))return r=t;r=n.options.supportedLngs.find((function(e){if(0===e.indexOf(t))return e}))}})),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r):null}},{key:"getFallbackCodes",value:function e(t,n){if(!t)return[];if("function"==typeof t&&(t=t(n)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!n)return t.default||[];var r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}},{key:"toResolveHierarchy",value:function e(t,n){var r=this,i=this.getFallbackCodes(n||this.options.fallbackLng||[],t),o=[],s=function e(t){t&&(r.isSupportedCode(t)?o.push(t):r.logger.warn("rejecting language code not found in supportedLngs: ".concat(t)))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&s(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&s(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&s(this.getLanguagePartFromCode(t))):"string"==typeof t&&s(this.formatLanguageCode(t)),i.forEach((function(e){o.indexOf(e)<0&&s(r.formatLanguageCode(e))})),o}}]),e}(),I=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],R={1:function e(t){return Number(t>1)},2:function e(t){return Number(1!=t)},3:function e(t){return 0},4:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function e(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function e(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function e(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function e(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function e(t){return Number(t>=2)},10:function e(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function e(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function e(t){return Number(t%10!=1||t%100==11)},13:function e(t){return Number(0!==t)},14:function e(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function e(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function e(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function e(t){return Number(0==t?0:1==t?1:2)},19:function e(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function e(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function e(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function e(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}};function F(){var e={};return I.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:R[t.fc]}}))})),e}var P=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.languageUtils=t,this.options=n,this.logger=d.create("pluralResolver"),this.rules=F()}return s(e,[{key:"addRule",value:function e(t,n){this.rules[t]=n}},{key:"getRule",value:function e(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function e(t){var n=this.getRule(t);return n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function e(t,n){return this.getSuffixes(t).map((function(e){return n+e}))}},{key:"getSuffixes",value:function e(t){var n=this,r=this.getRule(t);return r?r.numbers.map((function(e){return n.getSuffix(t,e)})):[]}},{key:"getSuffix",value:function e(t,n){var r=this,i=this.getRule(t);if(i){var o=i.noAbs?i.plurals(n):i.plurals(Math.abs(n)),s=i.numbers[o];this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]&&(2===s?s="plural":1===s&&(s=""));var a=function e(){return r.options.prepend&&s.toString()?r.options.prepend+s.toString():s.toString()};return"v1"===this.options.compatibilityJSON?1===s?"":"number"==typeof s?"_plural_".concat(s.toString()):a():"v2"===this.options.compatibilityJSON?a():this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),""}}]),e}(),N=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,e),this.logger=d.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return s(e,[{key:"init",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escape=void 0!==n.escape?n.escape:D,this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.useRawValueToEscape=void 0!==n.useRawValueToEscape&&n.useRawValueToEscape,this.prefix=n.prefix?x(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?x(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?x(n.nestingPrefix):n.nestingPrefixEscaped||x("$t("),this.nestingSuffix=n.nestingSuffix?x(n.nestingSuffix):n.nestingSuffixEscaped||x(")"),this.nestingOptionsSeparator=n.nestingOptionsSeparator?n.nestingOptionsSeparator:n.nestingOptionsSeparator||",",this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.alwaysFormat=void 0!==n.alwaysFormat&&n.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function e(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function e(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,"g");var n="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(n,"g");var r="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(r,"g")}},{key:"interpolate",value:function e(t,n,r,i){var o=this,s,a,u,f=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var l=function e(t){if(t.indexOf(o.formatSeparator)<0){var s=k(n,f,t);return o.alwaysFormat?o.format(s,void 0,r):s}var a=t.split(o.formatSeparator),u=a.shift().trim(),c=a.join(o.formatSeparator).trim();return o.format(k(n,f,u),c,r,i)};this.resetRegExp();var h=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&i.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,p;return[{regex:this.regexpUnescape,safeValue:function e(t){return c(t)}},{regex:this.regexp,safeValue:function e(t){return o.escapeValue?c(o.escape(t)):c(t)}}].forEach((function(e){for(u=0;s=e.regex.exec(t);){if(void 0===(a=l(s[1].trim())))if("function"==typeof h){var n=h(t,s,i);a="string"==typeof n?n:""}else{if(d){a=s[0];continue}o.logger.warn("missed to pass in variable ".concat(s[1]," for interpolating ").concat(t)),a=""}else"string"==typeof a||o.useRawValueToEscape||(a=b(a));if(t=t.replace(s[0],e.safeValue(a)),e.regex.lastIndex=0,++u>=o.maxReplaces)break}})),t}},{key:"nest",value:function e(t,n){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s,a,u=i({},o);function f(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),o="{".concat(r[1]);e=r[0],o=(o=this.interpolate(o,u)).replace(/'/g,'"');try{u=JSON.parse(o),t&&(u=i({},t,u))}catch(s){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),s),"".concat(e).concat(n).concat(o)}return delete u.defaultValue,e}for(u.applyPostProcessor=!1,delete u.defaultValue;s=this.nestingRegexp.exec(t);){var c=[],l=!1;if(s[0].includes(this.formatSeparator)&&!/{.*}/.test(s[1])){var h=s[1].split(this.formatSeparator).map((function(e){return e.trim()}));s[1]=h.shift(),c=h,l=!0}if((a=n(f.call(this,s[1].trim(),u),u))&&s[0]===t&&"string"!=typeof a)return a;"string"!=typeof a&&(a=b(a)),a||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(t)),a=""),l&&(a=c.reduce((function(e,t){return r.format(e,t,o.lng,o)}),a.trim())),t=t.replace(s[0],a),this.regexp.lastIndex=0}return t}}]),e}();function L(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}var z=function(e){function t(e,n,r){var i,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return o(this,t),i=a(this,u(t).call(this)),E&&p.call(f(i)),i.backend=e,i.store=n,i.services=r,i.languageUtils=r.languageUtils,i.options=s,i.logger=d.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(r,s.backend,s),i}return c(t,e),s(t,[{key:"queueLoad",value:function e(t,n,r,i){var o=this,s=[],a=[],u=[],f=[];return t.forEach((function(e){var t=!0;n.forEach((function(n){var i="".concat(e,"|").concat(n);!r.reload&&o.store.hasResourceBundle(e,n)?o.state[i]=2:o.state[i]<0||(1===o.state[i]?a.indexOf(i)<0&&a.push(i):(o.state[i]=1,t=!1,a.indexOf(i)<0&&a.push(i),s.indexOf(i)<0&&s.push(i),f.indexOf(n)<0&&f.push(n)))})),t||u.push(e)})),(s.length||a.length)&&this.queue.push({pending:a,loaded:{},errors:[],callback:i}),{toLoad:s,pending:a,toLoadLanguages:u,toLoadNamespaces:f}}},{key:"loaded",value:function e(t,n,r){var i=t.split("|"),o=i[0],s=i[1];n&&this.emit("failedLoading",o,s,n),r&&this.store.addResourceBundle(o,s,r),this.state[t]=n?-1:2;var e={};this.queue.forEach((function(r){_(r.loaded,[o],s),L(r.pending,t),n&&r.errors.push(n),0!==r.pending.length||r.done||(Object.keys(r.loaded).forEach((function(t){e[t]||(e[t]=[]),r.loaded[t].length&&r.loaded[t].forEach((function(n){e[t].indexOf(n)<0&&e[t].push(n)}))})),r.done=!0,r.errors.length?r.callback(r.errors):r.callback())})),this.emit("loaded",e),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function e(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[r](t,n,(function(e,u){e&&u&&o<5?setTimeout((function(){i.read.call(i,t,n,r,o+1,2*s,a)}),s):a(e,u)})):a(null,{})}},{key:"prepareLoading",value:function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof n&&(n=[n]);var s=this.queueLoad(t,n,i,o);if(!s.toLoad.length)return s.pending.length||o(),null;s.toLoad.forEach((function(e){r.loadOne(e)}))}},{key:"load",value:function e(t,n,r){this.prepareLoading(t,n,{},r)}},{key:"reload",value:function e(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}},{key:"loadOne",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=t.split("|"),o=i[0],s=i[1];this.read(o,s,"read",void 0,void 0,(function(e,i){e&&n.logger.warn("".concat(r,"loading namespace ").concat(s," for language ").concat(o," failed"),e),!e&&i&&n.logger.log("".concat(r,"loaded namespace ").concat(s," for language ").concat(o),i),n.loaded(t,e,i)}))}},{key:"saveMissing",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)?this.logger.warn('did not save key "'.concat(r,'" as the namespace "').concat(n,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=r&&""!==r&&(this.backend&&this.backend.create&&this.backend.create(t,n,r,o,null,i({},a,{isUpdate:s})),t&&t[0]&&this.store.addResource(t[0],n,r,o))}}]),t}(p);function U(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function e(t){var n={};if("object"===r(t[1])&&(n=t[1]),"string"==typeof t[1]&&(n.defaultValue=t[1]),"string"==typeof t[2]&&(n.tDescription=t[2]),"object"===r(t[2])||"object"===r(t[3])){var i=t[3]||t[2];Object.keys(i).forEach((function(e){n[e]=i[e]}))}return n},interpolation:{escapeValue:!0,format:function e(t,n,r,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function q(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function $(){}var H,W=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(o(this,t),e=a(this,u(t).call(this)),E&&p.call(f(e)),e.options=q(n),e.services={},e.logger=d,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),a(e,f(e));setTimeout((function(){e.init(n,r)}),0)}return e}return c(t,e),s(t,[{key:"init",value:function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;function o(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof n&&(r=n,n={}),n.whitelist&&!n.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),n.nonExplicitWhitelist&&!n.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=i({},U(),this.options,q(n)),this.format=this.options.interpolation.format,r||(r=$),!this.options.isClone){this.modules.logger?d.init(o(this.modules.logger),this.options):d.init(null,this.options);var s=new B(this.options);this.store=new A(this.options.resources,this.options);var a=this.services;a.logger=d,a.resourceStore=this.store,a.languageUtils=s,a.pluralResolver=new P(s,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new N(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new z(o(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1?n-1:0),i=1;i0&&"dev"!==u[0]&&(this.options.lng=u[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var f=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];f.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments)}}));var c=["addResource","addResources","addResourceBundle","removeResourceBundle"];c.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments),t}}));var l=g(),h=function e(){var n=function e(n,i){t.isInitialized&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(i),r(n,i)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return n(null,t.t.bind(t));t.changeLanguage(t.options.lng,n)};return this.options.resources||!this.options.initImmediate?h():setTimeout(h,0),l}},{key:"loadResources",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,i=r,o="string"==typeof t?t:this.language;if("function"==typeof t&&(i=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return i();var s=[],a=function e(t){var r;t&&n.services.languageUtils.toResolveHierarchy(t).forEach((function(e){s.indexOf(e)<0&&s.push(e)}))};if(o)a(o);else{var u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(s,this.options.ns,i)}else i(null)}},{key:"reloadResources",value:function e(t,n,r){var i=g();return t||(t=this.languages),n||(n=this.options.ns),r||(r=$),this.services.backendConnector.reload(t,n,(function(e){i.resolve(),r(e)})),i}},{key:"use",value:function e(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&C.addPostProcessor(t),"3rdParty"===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function e(t,n){var r=this;this.isLanguageChangingTo=t;var i=g();this.emit("languageChanging",t);var o=function e(t,o){o?(r.language=o,r.languages=r.services.languageUtils.toResolveHierarchy(o),r.translator.changeLanguage(o),r.isLanguageChangingTo=void 0,r.emit("languageChanged",o),r.logger.log("languageChanged",o)):r.isLanguageChangingTo=void 0,i.resolve((function(){return r.t.apply(r,arguments)})),n&&n(t,(function(){return r.t.apply(r,arguments)}))},s=function e(t){var n="string"==typeof t?t:r.services.languageUtils.getBestMatchFromCodes(t);n&&(r.language||(r.language=n,r.languages=r.services.languageUtils.toResolveHierarchy(n)),r.translator.language||r.translator.changeLanguage(n),r.services.languageDetector&&r.services.languageDetector.cacheUserLanguage(n)),r.loadResources(n,(function(e){o(e,n)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(s):s(t):s(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function e(t,n){var o=this,s=function e(t,n){var s;if("object"!==r(n)){for(var a=arguments.length,u=new Array(a>2?a-2:0),f=2;f1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.languages[0],o=!!this.options&&this.options.fallbackLng,s=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var a=function e(t,r){var i=n.services.backendConnector.state["".concat(t,"|").concat(r)];return-1===i||2===i};if(r.precheck){var u=r.precheck(this,a);if(void 0!==u)return u}return!!this.hasResourceBundle(i,t)||(!this.services.backendConnector.backend||!(!a(i,t)||o&&!a(s,t)))}},{key:"loadNamespaces",value:function e(t,n){var r=this,i=g();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((function(e){r.options.ns.indexOf(e)<0&&r.options.ns.push(e)})),this.loadResources((function(e){i.resolve(),n&&n(e)})),i):(n&&n(),Promise.resolve())}},{key:"loadLanguages",value:function e(t,n){var r=g();"string"==typeof t&&(t=[t]);var i=this.options.preload||[],o=t.filter((function(e){return i.indexOf(e)<0}));return o.length?(this.options.preload=i.concat(o),this.loadResources((function(e){r.resolve(),n&&n(e)})),r):(n&&n(),Promise.resolve())}},{key:"dir",value:function e(t){return t||(t=this.languages&&this.languages.length>0?this.languages[0]:this.language),t?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr":"rtl";var n}},{key:"createInstance",value:function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new t(n,r)}},{key:"cloneInstance",value:function e(){var n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,s=i({},this.options,r,{isClone:!0}),a=new t(s),u=["store","services","language"];return u.forEach((function(e){a[e]=n[e]})),a.services=i({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new O(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;rr,root:()=>i,ArrayProto:()=>o,ObjProto:()=>s,SymbolProto:()=>a,push:()=>u,slice:()=>f,toString:()=>c,hasOwnProperty:()=>l,supportsArrayBuffer:()=>h,supportsDataView:()=>d,nativeIsArray:()=>p,nativeKeys:()=>g,nativeCreate:()=>b,nativeIsView:()=>m,_isNaN:()=>v,_isFinite:()=>y,hasEnumBug:()=>_,nonEnumerableProps:()=>w,MAX_ARRAY_INDEX:()=>k});var r="1.13.4",i="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},o=Array.prototype,s=Object.prototype,a="undefined"!=typeof Symbol?Symbol.prototype:null,u=o.push,f=o.slice,c=s.toString,l=s.hasOwnProperty,h="undefined"!=typeof ArrayBuffer,d="undefined"!=typeof DataView,p=Array.isArray,g=Object.keys,b=Object.create,m=h&&ArrayBuffer.isView,v=isNaN,y=isFinite,_=!{toString:null}.propertyIsEnumerable("toString"),w=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],k=Math.pow(2,53)-1},"restArguments.js":function e(t,n,e){function r(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;ir})},"isObject.js":function e(t,n,e){function r(e){var t=typeof e;return"function"===t||"object"===t&&!!e}e.export({default:()=>r})},"isNull.js":function e(t,n,e){function r(e){return null===e}e.export({default:()=>r})},"isUndefined.js":function e(t,n,e){function r(e){return void 0===e}e.export({default:()=>r})},"isBoolean.js":function e(t,n,e){let r;function i(e){return!0===e||!1===e||"[object Boolean]"===r.call(e)}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isElement.js":function e(t,n,e){function r(e){return!(!e||1!==e.nodeType)}e.export({default:()=>r})},"isString.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("String"))},"_tagTester.js":function e(t,n,e){let r;function i(e){var t="[object "+e+"]";return function(e){return r.call(e)===t}}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isNumber.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Number"))},"isDate.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Date"))},"isRegExp.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("RegExp"))},"isError.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Error"))},"isSymbol.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Symbol"))},"isArrayBuffer.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("ArrayBuffer"))},"isDataView.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isArrayBuffer.js",{default(e){o=e}},2),e.link("./_stringTagBug.js",{hasStringTagBug(e){s=e}},3);var a=r("DataView");function u(e){return null!=e&&i(e.getInt8)&&o(e.buffer)}e.exportDefault(s?u:a)},"isFunction.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_setup.js",{root(e){i=e}},1);var o=r("Function"),s=i.document&&i.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof s&&(o=function(e){return"function"==typeof e||!1}),e.exportDefault(o)},"_stringTagBug.js":function e(t,n,e){let r,i;e.export({hasStringTagBug:()=>o,isIE11:()=>s}),e.link("./_setup.js",{supportsDataView(e){r=e}},0),e.link("./_hasObjectTag.js",{default(e){i=e}},1);var o=r&&i(new DataView(new ArrayBuffer(8))),s="undefined"!=typeof Map&&i(new Map)},"_hasObjectTag.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Object"))},"isArray.js":function e(t,n,e){let r,i;e.link("./_setup.js",{nativeIsArray(e){r=e}},0),e.link("./_tagTester.js",{default(e){i=e}},1),e.exportDefault(r||i("Array"))},"isArguments.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1);var o=r("Arguments");!function(){o(arguments)||(o=function(e){return i(e,"callee")})}(),e.exportDefault(o)},"_has.js":function e(t,n,e){let r;function i(e,t){return null!=e&&r.call(e,t)}e.export({default:()=>i}),e.link("./_setup.js",{hasOwnProperty(e){r=e}},0)},"isFinite.js":function e(t,n,e){let r,i;function o(e){return!i(e)&&r(e)&&!isNaN(parseFloat(e))}e.export({default:()=>o}),e.link("./_setup.js",{_isFinite(e){r=e}},0),e.link("./isSymbol.js",{default(e){i=e}},1)},"isNaN.js":function e(t,n,e){let r,i;function o(e){return i(e)&&r(e)}e.export({default:()=>o}),e.link("./_setup.js",{_isNaN(e){r=e}},0),e.link("./isNumber.js",{default(e){i=e}},1)},"isTypedArray.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./_setup.js",{supportsArrayBuffer(e){r=e},nativeIsView(e){i=e},toString(e){o=e}},0),e.link("./isDataView.js",{default(e){s=e}},1),e.link("./constant.js",{default(e){a=e}},2),e.link("./_isBufferLike.js",{default(e){u=e}},3);var f=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function c(e){return i?i(e)&&!s(e):u(e)&&f.test(o.call(e))}e.exportDefault(r?c:a(!1))},"constant.js":function e(t,n,e){function r(e){return function(){return e}}e.export({default:()=>r})},"_isBufferLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getByteLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createSizePropertyCheck.js":function e(t,n,e){let r;function i(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=r}}e.export({default:()=>i}),e.link("./_setup.js",{MAX_ARRAY_INDEX(e){r=e}},0)},"_getByteLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("byteLength"))},"_shallowProperty.js":function e(t,n,e){function r(e){return function(t){return null==t?void 0:t[e]}}e.export({default:()=>r})},"isEmpty.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(null==e)return!0;var t=r(e);return"number"==typeof t&&(i(e)||o(e)||s(e))?0===t:0===r(a(e))}e.export({default:()=>u}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3),e.link("./keys.js",{default(e){a=e}},4)},"_getLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("length"))},"keys.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(!r(e))return[];if(i)return i(e);var t=[];for(var n in e)s(e,n)&&t.push(n);return o&&a(e,t),t}e.export({default:()=>u}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeKeys(e){i=e},hasEnumBug(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2),e.link("./_collectNonEnumProps.js",{default(e){a=e}},3)},"_collectNonEnumProps.js":function e(t,n,e){let r,i,o,s;function a(e){for(var t={},n=e.length,r=0;ru}),e.link("./_setup.js",{nonEnumerableProps(e){r=e},ObjProto(e){i=e}},0),e.link("./isFunction.js",{default(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2)},"isMatch.js":function e(t,n,e){let r;function i(e,t){var n=r(t),i=n.length;if(null==e)return!i;for(var o=Object(e),s=0;si}),e.link("./keys.js",{default(e){r=e}},0)},"isEqual.js":function e(t,n,e){let r,i,o,s,a,u,f,c,l,h,d;e.export({default:()=>m}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_setup.js",{toString(e){i=e},SymbolProto(e){o=e}},1),e.link("./_getByteLength.js",{default(e){s=e}},2),e.link("./isTypedArray.js",{default(e){a=e}},3),e.link("./isFunction.js",{default(e){u=e}},4),e.link("./_stringTagBug.js",{hasStringTagBug(e){f=e}},5),e.link("./isDataView.js",{default(e){c=e}},6),e.link("./keys.js",{default(e){l=e}},7),e.link("./_has.js",{default(e){h=e}},8),e.link("./_toBufferView.js",{default(e){d=e}},9);var p="[object DataView]";function g(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var i=typeof e;return("function"===i||"object"===i||"object"==typeof t)&&b(e,t,n,r)}function b(e,t,n,m){e instanceof r&&(e=e._wrapped),t instanceof r&&(t=t._wrapped);var v=i.call(e);if(v!==i.call(t))return!1;if(f&&"[object Object]"==v&&c(e)){if(!c(t))return!1;v=p}switch(v){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return o.valueOf.call(e)===o.valueOf.call(t);case"[object ArrayBuffer]":case p:return b(d(e),d(t),n,m)}var y="[object Array]"===v;if(!y&&a(e)){var _;if(s(e)!==s(t))return!1;if(e.buffer===t.buffer&&e.byteOffset===t.byteOffset)return!0;y=!0}if(!y){if("object"!=typeof e||"object"!=typeof t)return!1;var w=e.constructor,k=t.constructor;if(w!==k&&!(u(w)&&w instanceof w&&u(k)&&k instanceof k)&&"constructor"in e&&"constructor"in t)return!1}m=m||[];for(var j=(n=n||[]).length;j--;)if(n[j]===e)return m[j]===t;if(n.push(e),m.push(t),y){if((j=e.length)!==t.length)return!1;for(;j--;)if(!g(e[j],t[j],n,m))return!1}else{var x=l(e),S;if(j=x.length,l(t).length!==j)return!1;for(;j--;)if(S=x[j],!h(t,S)||!g(e[S],t[S],n,m))return!1}return n.pop(),m.pop(),!0}function m(e,t){return g(e,t)}},"underscore.js":function e(t,n,e){let r;function i(e){return e instanceof i?e:this instanceof i?void(this._wrapped=e):new i(e)}e.export({default:()=>i}),e.link("./_setup.js",{VERSION(e){r=e}},0),i.VERSION=r,i.prototype.value=function(){return this._wrapped},i.prototype.valueOf=i.prototype.toJSON=i.prototype.value,i.prototype.toString=function(){return String(this._wrapped)}},"_toBufferView.js":function e(t,n,e){let r;function i(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,r(e))}e.export({default:()=>i}),e.link("./_getByteLength.js",{default(e){r=e}},0)},"isMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},mapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Map"))},"_methodFingerprint.js":function e(t,n,e){let r,i,o;function s(e){var t=r(e);return function(n){if(null==n)return!1;var s=o(n);if(r(s))return!1;for(var u=0;us,mapMethods:()=>l,weakMapMethods:()=>h,setMethods:()=>d}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./allKeys.js",{default(e){o=e}},2);var a="forEach",u="has",f=["clear","delete"],c=["get","has","set"],l=f.concat(a,c),h=f.concat(c),d=["add"].concat(f,a,"has")},"allKeys.js":function e(t,n,e){let r,i,o;function s(e){if(!r(e))return[];var t=[];for(var n in e)t.push(n);return i&&o(e,t),t}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{hasEnumBug(e){i=e}},1),e.link("./_collectNonEnumProps.js",{default(e){o=e}},2)},"isWeakMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},weakMapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("WeakMap"))},"isSet.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},setMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Set"))},"isWeakSet.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("WeakSet"))},"values.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"pairs.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"invert.js":function e(t,n,e){let r;function i(e){for(var t={},n=r(e),i=0,o=n.length;ii}),e.link("./keys.js",{default(e){r=e}},0)},"functions.js":function e(t,n,e){let r;function i(e){var t=[];for(var n in e)r(e[n])&&t.push(n);return t.sort()}e.export({default:()=>i}),e.link("./isFunction.js",{default(e){r=e}},0)},"extend.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createAssigner.js":function e(t,n,e){function r(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var i=1;ir})},"extendOwn.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"defaults.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i,!0))},"create.js":function e(t,n,e){let r,i;function o(e,t){var n=r(e);return t&&i(n,t),n}e.export({default:()=>o}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./extendOwn.js",{default(e){i=e}},1)},"_baseCreate.js":function e(t,n,e){let r,i;function o(){return function(){}}function s(e){if(!r(e))return{};if(i)return i(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeCreate(e){i=e}},1)},"clone.js":function e(t,n,e){let r,i,o;function s(e){return r(e)?i(e)?e.slice():o({},e):e}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./extend.js",{default(e){o=e}},2)},"tap.js":function e(t,n,e){function r(e,t){return t(e),e}e.export({default:()=>r})},"get.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=i(e,r(t));return o(s)?n:s}e.export({default:()=>s}),e.link("./_toPath.js",{default(e){r=e}},0),e.link("./_deepGet.js",{default(e){i=e}},1),e.link("./isUndefined.js",{default(e){o=e}},2)},"_toPath.js":function e(t,n,e){let r;function i(e){return r.toPath(e)}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./toPath.js")},"toPath.js":function e(t,n,e){let r,i;function o(e){return i(e)?e:[e]}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),r.toPath=o},"_deepGet.js":function e(t,n,e){function r(e,t){for(var n=t.length,r=0;rr})},"has.js":function e(t,n,e){let r,i;function o(e,t){for(var n=(t=i(t)).length,o=0;oo}),e.link("./_has.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"mapObject.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s=o.length,a={},u=0;uo}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"_cb.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r.iteratee!==o?r.iteratee(e,t):i(e,t,n)}e.export({default:()=>s}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),e.link("./iteratee.js",{default(e){o=e}},2)},"_baseIteratee.js":function e(t,n,e){let r,i,o,s,a,u,f;function c(e,t,n){return null==e?r:i(e)?f(e,t,n):o(e)&&!s(e)?a(e):u(e)}e.export({default:()=>c}),e.link("./identity.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isObject.js",{default(e){o=e}},2),e.link("./isArray.js",{default(e){s=e}},3),e.link("./matcher.js",{default(e){a=e}},4),e.link("./property.js",{default(e){u=e}},5),e.link("./_optimizeCb.js",{default(e){f=e}},6)},"identity.js":function e(t,n,e){function r(e){return e}e.export({default:()=>r})},"matcher.js":function e(t,n,e){let r,i;function o(e){return e=r({},e),function(t){return i(t,e)}}e.export({default:()=>o}),e.link("./extendOwn.js",{default(e){r=e}},0),e.link("./isMatch.js",{default(e){i=e}},1)},"property.js":function e(t,n,e){let r,i;function o(e){return e=i(e),function(t){return r(t,e)}}e.export({default:()=>o}),e.link("./_deepGet.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"_optimizeCb.js":function e(t,n,e){function r(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}}e.export({default:()=>r})},"iteratee.js":function e(t,n,e){let r,i;function o(e,t){return i(e,t,1/0)}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),r.iteratee=o},"noop.js":function e(t,n,e){function r(){}e.export({default:()=>r})},"propertyOf.js":function e(t,n,e){let r,i;function o(e){return null==e?r:function(t){return i(e,t)}}e.export({default:()=>o}),e.link("./noop.js",{default(e){r=e}},0),e.link("./get.js",{default(e){i=e}},1)},"times.js":function e(t,n,e){let r;function i(e,t,n){var i=Array(Math.max(0,e));t=r(t,n,1);for(var o=0;oi}),e.link("./_optimizeCb.js",{default(e){r=e}},0)},"random.js":function e(t,n,e){function r(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}e.export({default:()=>r})},"now.js":function e(t,n,e){e.exportDefault(Date.now||function(){return(new Date).getTime()})},"escape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createEscaper.js":function e(t,n,e){let r;function i(e){var t=function(t){return e[t]},n="(?:"+r(e).join("|")+")",i=RegExp(n),o=RegExp(n,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(o,t):e}}e.export({default:()=>i}),e.link("./keys.js",{default(e){r=e}},0)},"_escapeMap.js":function e(t,n,e){e.exportDefault({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"})},"unescape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_unescapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_unescapeMap.js":function e(t,n,e){let r,i;e.link("./invert.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"templateSettings.js":function e(t,n,e){let r;e.link("./underscore.js",{default(e){r=e}},0),e.exportDefault(r.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g})},"template.js":function e(t,n,e){let r,i;e.export({default:()=>c}),e.link("./defaults.js",{default(e){r=e}},0),e.link("./underscore.js",{default(e){i=e}},1),e.link("./templateSettings.js");var o=/(.)^/,s={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},a=/\\|'|\r|\n|\u2028|\u2029/g;function u(e){return"\\"+s[e]}var f=/^\s*(\w|\$)+\s*$/;function c(e,t,n){!t&&n&&(t=n),t=r({},t,i.templateSettings);var s=RegExp([(t.escape||o).source,(t.interpolate||o).source,(t.evaluate||o).source].join("|")+"|$","g"),c=0,l="__p+='";e.replace(s,(function(t,n,r,i,o){return l+=e.slice(c,o).replace(a,u),c=o+t.length,n?l+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?l+="'+\n((__t=("+r+"))==null?'':__t)+\n'":i&&(l+="';\n"+i+"\n__p+='"),t})),l+="';\n";var h=t.variable,d;if(h){if(!f.test(h))throw new Error("variable is not a bare identifier: "+h)}else l="with(obj||{}){\n"+l+"}\n",h="obj";l="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+l+"return __p;\n";try{d=new Function(h,"_",l)}catch(g){throw g.source=l,g}var p=function(e){return d.call(this,e,i)};return p.source="function("+h+"){\n"+l+"}",p}},"result.js":function e(t,n,e){let r,i;function o(e,t,n){var o=(t=i(t)).length;if(!o)return r(n)?n.call(e):n;for(var s=0;so}),e.link("./isFunction.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"uniqueId.js":function e(t,n,e){e.export({default:()=>i});var r=0;function i(e){var t=++r+"";return e?e+t:t}},"chain.js":function e(t,n,e){let r;function i(e){var t=r(e);return t._chain=!0,t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"partial.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_executeBound.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2);var s=r((function(e,t){var n=s.placeholder,r=function(){for(var o=0,s=t.length,a=Array(s),u=0;uo}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./isObject.js",{default(e){i=e}},1)},"bind.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_executeBound.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t,n){if(!i(e))throw new TypeError("Bind must be called on a function");var s=r((function(r){return o(e,s,t,this,n.concat(r))}));return s})))},"bindAll.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./bind.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t){var n=(t=i(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=o(e[r],e)}return e})))},"_flatten.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,u){if(u=u||[],t||0===t){if(t<=0)return u.concat(e)}else t=1/0;for(var f=u.length,c=0,l=r(e);c1)a(h,t-1,n,u),f=u.length;else for(var d=0,p=h.length;da}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./isArray.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3)},"_isArrayLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"memoize.js":function e(t,n,e){let r;function i(e,t){var n=function(i){var o=n.cache,s=""+(t?t.apply(this,arguments):i);return r(o,s)||(o[s]=e.apply(this,arguments)),o[s]};return n.cache={},n}e.export({default:()=>i}),e.link("./_has.js",{default(e){r=e}},0)},"delay.js":function e(t,n,e){let r;e.link("./restArguments.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})))},"defer.js":function e(t,n,e){let r,i,o;e.link("./partial.js",{default(e){r=e}},0),e.link("./delay.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2),e.exportDefault(r(i,o,1))},"throttle.js":function e(t,n,e){let r;function i(e,t,n){var i,o,s,a,u=0;n||(n={});var f=function(){u=!1===n.leading?0:r(),i=null,a=e.apply(o,s),i||(o=s=null)},c=function(){var c=r();u||!1!==n.leading||(u=c);var l=t-(c-u);return o=this,s=arguments,l<=0||l>t?(i&&(clearTimeout(i),i=null),u=c,a=e.apply(o,s),i||(o=s=null)):i||!1===n.trailing||(i=setTimeout(f,l)),a};return c.cancel=function(){clearTimeout(i),u=0,i=o=s=null},c}e.export({default:()=>i}),e.link("./now.js",{default(e){r=e}},0)},"debounce.js":function e(t,n,e){let r,i;function o(e,t,n){var o,s,a,u,f,c=function(){var r=i()-s;t>r?o=setTimeout(c,t-r):(o=null,n||(u=e.apply(f,a)),o||(a=f=null))},l=r((function(r){return f=this,a=r,s=i(),o||(o=setTimeout(c,t),n&&(u=e.apply(f,a))),u}));return l.cancel=function(){clearTimeout(o),o=a=f=null},l}e.export({default:()=>o}),e.link("./restArguments.js",{default(e){r=e}},0),e.link("./now.js",{default(e){i=e}},1)},"wrap.js":function e(t,n,e){let r;function i(e,t){return r(t,e)}e.export({default:()=>i}),e.link("./partial.js",{default(e){r=e}},0)},"negate.js":function e(t,n,e){function r(e){return function(){return!e.apply(this,arguments)}}e.export({default:()=>r})},"compose.js":function e(t,n,e){function r(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}e.export({default:()=>r})},"after.js":function e(t,n,e){function r(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}e.export({default:()=>r})},"before.js":function e(t,n,e){function r(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}e.export({default:()=>r})},"once.js":function e(t,n,e){let r,i;e.link("./partial.js",{default(e){r=e}},0),e.link("./before.js",{default(e){i=e}},1),e.exportDefault(r(i,2))},"findKey.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s,a=0,u=o.length;ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"findIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createPredicateIndexFinder.js":function e(t,n,e){let r,i;function o(e){return function(t,n,o){n=r(n,o);for(var s=i(t),a=e>0?0:s-1;a>=0&&ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"findLastIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"sortedIndex.js":function e(t,n,e){let r,i;function o(e,t,n,o){for(var s=(n=r(n,o,1))(t),a=0,u=i(e);ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"indexOf.js":function e(t,n,e){let r,i,o;e.link("./sortedIndex.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./_createIndexFinder.js",{default(e){o=e}},2),e.exportDefault(o(1,i,r))},"_createIndexFinder.js":function e(t,n,e){let r,i,o;function s(e,t,n){return function(s,a,u){var f=0,c=r(s);if("number"==typeof u)e>0?f=u>=0?u:Math.max(u+c,f):c=u>=0?Math.min(u+1,c):u+c+1;else if(n&&u&&c)return s[u=n(s,a)]===a?u:-1;if(a!=a)return(u=t(i.call(s,f,c),o))>=0?u+f:-1;for(u=e>0?f:c-1;u>=0&&us}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isNaN.js",{default(e){o=e}},2)},"lastIndexOf.js":function e(t,n,e){let r,i;e.link("./findLastIndex.js",{default(e){r=e}},0),e.link("./_createIndexFinder.js",{default(e){i=e}},1),e.exportDefault(i(-1,r))},"find.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a=(r(e)?i:o)(e,t,n);if(void 0!==a&&-1!==a)return e[a]}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./findKey.js",{default(e){o=e}},2)},"findWhere.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./find.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"each.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a;if(t=r(t,n),i(e))for(s=0,a=e.length;ss}),e.link("./_optimizeCb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"map.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=Array(a),f=0;fs}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"reduce.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createReduce.js":function e(t,n,e){let r,i,o;function s(e){var t=function(t,n,o,s){var a=!r(t)&&i(t),u=(a||t).length,f=e>0?0:u-1;for(s||(o=t[a?a[f]:f],f+=e);f>=0&&f=3;return t(e,o(n,i,4),r,s)}}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2)},"reduceRight.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"filter.js":function e(t,n,e){let r,i;function o(e,t,n){var o=[];return t=r(t,n),i(e,(function(e,n,r){t(e,n,r)&&o.push(e)})),o}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"reject.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r(e,i(o(t)),n)}e.export({default:()=>s}),e.link("./filter.js",{default(e){r=e}},0),e.link("./negate.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2)},"every.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"some.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"contains.js":function e(t,n,e){let r,i,o;function s(e,t,n,s){return r(e)||(e=i(e)),("number"!=typeof n||s)&&(n=0),o(e,t,n)>=0}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./indexOf.js",{default(e){o=e}},2)},"invoke.js":function e(t,n,e){let r,i,o,s,a;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2),e.link("./_deepGet.js",{default(e){s=e}},3),e.link("./_toPath.js",{default(e){a=e}},4),e.exportDefault(r((function(e,t,n){var r,u;return i(t)?u=t:(t=a(t),r=t.slice(0,-1),t=t[t.length-1]),o(e,(function(e){var i=u;if(!i){if(r&&r.length&&(e=s(e,r)),null==e)return;i=e[t]}return null==i?i:i.apply(e,n)}))})))},"pluck.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./map.js",{default(e){r=e}},0),e.link("./property.js",{default(e){i=e}},1)},"where.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./filter.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"max.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=-1/0,u=-1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la&&(a=f);else t=o(t,n),s(e,(function(e,n,r){((c=t(e,n,r))>u||c===-1/0&&a===-1/0)&&(a=e,u=c)}));return a}e.export({default:()=>a}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"min.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=1/0,u=1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"shuffle.js":function e(t,n,e){let r;function i(e){return r(e,1/0)}e.export({default:()=>i}),e.link("./sample.js",{default(e){r=e}},0)},"sample.js":function e(t,n,e){let r,i,o,s,a;function u(e,t,n){if(null==t||n)return r(e)||(e=i(e)),e[s(e.length-1)];var u=a(e),f=o(u);t=Math.max(Math.min(t,f),0);for(var c=f-1,l=0;lu}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./random.js",{default(e){s=e}},3),e.link("./toArray.js",{default(e){a=e}},4)},"toArray.js":function e(t,n,e){let r,i,o,s,a,u,f;e.export({default:()=>l}),e.link("./isArray.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./_isArrayLike.js",{default(e){s=e}},3),e.link("./map.js",{default(e){a=e}},4),e.link("./identity.js",{default(e){u=e}},5),e.link("./values.js",{default(e){f=e}},6);var c=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function l(e){return e?r(e)?i.call(e):o(e)?e.match(c):s(e)?a(e,u):f(e):[]}},"sortBy.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=0;return t=r(t,n),i(o(e,(function(e,n,r){return{value:e,index:s++,criteria:t(e,n,r)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(ns}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./pluck.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2)},"groupBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n].push(t):e[n]=[t]})))},"_group.js":function e(t,n,e){let r,i;function o(e,t){return function(n,o,s){var a=t?[[],[]]:{};return o=r(o,s),i(n,(function(t,r){var i=o(t,r,n);e(a,t,i)})),a}}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"indexBy.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n]=t})))},"countBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n]++:e[n]=1})))},"partition.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n?0:1].push(t)}),!0))},"size.js":function e(t,n,e){let r,i;function o(e){return null==e?0:r(e)?e.length:i(e).length}e.export({default:()=>o}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"pick.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2),e.link("./allKeys.js",{default(e){s=e}},3),e.link("./_keyInObj.js",{default(e){a=e}},4),e.link("./_flatten.js",{default(e){u=e}},5),e.exportDefault(r((function(e,t){var n={},r=t[0];if(null==e)return n;i(r)?(t.length>1&&(r=o(r,t[1])),t=s(e)):(r=a,t=u(t,!1,!1),e=Object(e));for(var f=0,c=t.length;fr})},"omit.js":function e(t,n,e){let r,i,o,s,a,u,f;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./negate.js",{default(e){o=e}},2),e.link("./map.js",{default(e){s=e}},3),e.link("./_flatten.js",{default(e){a=e}},4),e.link("./contains.js",{default(e){u=e}},5),e.link("./pick.js",{default(e){f=e}},6),e.exportDefault(r((function(e,t){var n=t[0],r;return i(n)?(n=o(n),t.length>1&&(r=t[1])):(t=s(a(t,!1,!1),String),n=function(e,n){return!u(t,n)}),f(e,n,r)})))},"first.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:r(e,e.length-t)}e.export({default:()=>i}),e.link("./initial.js",{default(e){r=e}},0)},"initial.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"last.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:r(e,Math.max(0,e.length-t))}e.export({default:()=>i}),e.link("./rest.js",{default(e){r=e}},0)},"rest.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,null==t||n?1:t)}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"compact.js":function e(t,n,e){let r;function i(e){return r(e,Boolean)}e.export({default:()=>i}),e.link("./filter.js",{default(e){r=e}},0)},"flatten.js":function e(t,n,e){let r;function i(e,t){return r(e,t,!1)}e.export({default:()=>i}),e.link("./_flatten.js",{default(e){r=e}},0)},"without.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./difference.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t){return i(e,t)})))},"difference.js":function e(t,n,e){let r,i,o,s;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./filter.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3),e.exportDefault(r((function(e,t){return t=i(t,!0,!0),o(e,(function(e){return!s(t,e)}))})))},"uniq.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,a){r(t)||(a=n,n=t,t=!1),null!=n&&(n=i(n,a));for(var u=[],f=[],c=0,l=o(e);ca}),e.link("./isBoolean.js",{default(e){r=e}},0),e.link("./_cb.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3)},"union.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./uniq.js",{default(e){i=e}},1),e.link("./_flatten.js",{default(e){o=e}},2),e.exportDefault(r((function(e){return i(o(e,!0,!0))})))},"intersection.js":function e(t,n,e){let r,i;function o(e){for(var t=[],n=arguments.length,o=0,s=r(e);oo}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./contains.js",{default(e){i=e}},1)},"unzip.js":function e(t,n,e){let r,i,o;function s(e){for(var t=e&&r(e,i).length||0,n=Array(t),s=0;ss}),e.link("./max.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.link("./pluck.js",{default(e){o=e}},2)},"zip.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./unzip.js",{default(e){i=e}},1),e.exportDefault(r(i))},"object.js":function e(t,n,e){let r;function i(e,t){for(var n={},i=0,o=r(e);ii}),e.link("./_getLength.js",{default(e){r=e}},0)},"range.js":function e(t,n,e){function r(e,t,n){null==t&&(t=e||0,e=0),n||(n=tr})},"chunk.js":function e(t,n,e){let r;function i(e,t){if(null==t||t<1)return[];for(var n=[],i=0,o=e.length;ii}),e.link("./_setup.js",{slice(e){r=e}},0)},"mixin.js":function e(t,n,e){let r,i,o,s,a;function u(e){return i(o(e),(function(t){var n=r[t]=e[t];r.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),a(this,n.apply(r,e))}})),r}e.export({default:()=>u}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./functions.js",{default(e){o=e}},2),e.link("./_setup.js",{push(e){s=e}},3),e.link("./_chainResult.js",{default(e){a=e}},4)},"_chainResult.js":function e(t,n,e){let r;function i(e,t){return e._chain?r(t).chain():t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"underscore-array-methods.js":function e(t,n,e){let r,i,o,s;e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./_setup.js",{ArrayProto(e){o=e}},2),e.link("./_chainResult.js",{default(e){s=e}},3),i(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];r.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),s(this,n)}})),i(["concat","join","slice"],(function(e){var t=o[e];r.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),s(this,e)}})),e.exportDefault(r)}}}}},cachers:{"package.json":function e(t,n,e){e.exports={name:"@steedos/cachers",version:"2.6.4-beta.1",main:"lib/index.js"}},lib:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getCacherNames=n.clearCacher=n.getCacher=void 0;var r={},i=t("./memory"),o=t("./memory-lru"),s=function(e,t){return r[e]||(e.startsWith("lru.")?r[e]=new o.MemoryLRUCacher(t):r[e]=new i.MemoryCacher),r[e]};n.getCacher=s;var a=function(e){r[e]&&r[e].clear()};n.clearCacher=a;var u=function(){return Object.keys(r)};n.getCacherNames=u},"memory.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryCacher=void 0;var r=t("lodash"),i=function(){function e(){this.cache={}}return e.prototype.get=function(e){return this.cache[e]},e.prototype.delete=function(e){delete this.cache[e]},e.prototype.set=function(e,t){this.cache[e]=t},e.prototype.clear=function(){this.cache={}},e.prototype.keys=function(){return(0,r.keys)(this.cache)},e.prototype.values=function(){return(0,r.values)(this.cache)},e}();n.MemoryCacher=i},"memory-lru.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryLRUCacher=void 0;var r=t("lodash"),i=t("lru-cache"),o={max:5e3,ttl:null,keygen:null,maxParamsLength:null},s=function(){function e(e){this.opts=(0,r.defaultsDeep)(e,o),this.cache=new i({max:this.opts.max,maxAge:this.opts.ttl?1e3*this.opts.ttl:null,updateAgeOnGet:!!this.opts.ttl})}return e.prototype.get=function(e){return this.cache.get(e)},e.prototype.set=function(e,t,n){return this.cache.set(e,t,n)},e.prototype.delete=function(e){return this.cache.delete(e)},e.prototype.clear=function(){return this.cache.clear()},e.prototype.keys=function(){return this.cache.keys()},e.prototype.values=function(){return this.cache.values()},e}();n.MemoryLRUCacher=s}},node_modules:{"lru-cache":{"package.json":function e(t,n,e){e.exports={name:"lru-cache",version:"7.14.1",main:"index.js"}},"index.js":function e(t,n,e){const r="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,i="function"==typeof AbortController,o=i?AbortController:class e{constructor(){this.signal=new u}abort(){this.signal.dispatchEvent("abort")}},s="function"==typeof AbortSignal,a="function"==typeof o.AbortSignal,u=s?AbortSignal:a?o.AbortController:class e{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(e){if("abort"===e){this.aborted=!0;const t={type:e,target:this};this.onabort(t),this._listeners.forEach(e=>e(t),this)}}onabort(){}addEventListener(e,t){"abort"===e&&this._listeners.push(t)}removeEventListener(e,t){"abort"===e&&(this._listeners=this._listeners.filter(e=>e!==t))}},f=new Set,c=(e,t)=>{const n=`LRU_CACHE_OPTION_${e}`;p(n)&&g(n,`${e} option`,`options.${t}`,_)},l=(e,t)=>{const n=`LRU_CACHE_METHOD_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} method`,`cache.${t}()`,i)}},h=(e,t)=>{const n=`LRU_CACHE_PROPERTY_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} property`,`cache.${t}`,i)}},d=(...e)=>{"object"==typeof process&&process&&"function"==typeof process.emitWarning?process.emitWarning(...e):console.error(...e)},p=e=>!f.has(e),g=(e,t,n,r)=>{f.add(e);const i=`The ${t} is deprecated. Please use ${n} instead.`;d(i,"DeprecationWarning",e,r)},b=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),m=e=>b(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?v:null:null;class v extends Array{constructor(e){super(e),this.fill(0)}}class y{constructor(e){if(0===e)return[];const t=m(e);this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class _{constructor(e={}){const{max:t=0,ttl:n,ttlResolution:r=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:s,allowStale:a,dispose:u,disposeAfter:l,noDisposeOnSet:h,noUpdateTTL:g,maxSize:v=0,maxEntrySize:w=0,sizeCalculation:k,fetchMethod:j,fetchContext:x,noDeleteOnFetchRejection:S,noDeleteOnStaleGet:D}=e,{length:E,maxAge:A,stale:C}=e instanceof _?{}:e;if(0!==t&&!b(t))throw new TypeError("max option must be a nonnegative integer");const M=t?m(t):Array;if(!M)throw new Error("invalid max value: "+t);if(this.max=t,this.maxSize=v,this.maxEntrySize=w||this.maxSize,this.sizeCalculation=k||E,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=j||null,this.fetchMethod&&"function"!=typeof this.fetchMethod)throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=x,!this.fetchMethod&&void 0!==x)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(t).fill(null),this.valList=new Array(t).fill(null),this.next=new M(t),this.prev=new M(t),this.head=0,this.tail=0,this.free=new y(t),this.initialFill=1,this.size=0,"function"==typeof u&&(this.dispose=u),"function"==typeof l?(this.disposeAfter=l,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!h,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!S,0!==this.maxEntrySize){if(0!==this.maxSize&&!b(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!b(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!a||!!C,this.noDeleteOnStaleGet=!!D,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!s,this.ttlResolution=b(r)||0===r?r:1,this.ttlAutopurge=!!i,this.ttl=n||A||0,this.ttl){if(!b(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(0===this.max&&0===this.ttl&&0===this.maxSize)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const e="LRU_CACHE_UNBOUNDED";if(p(e)){f.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";d(t,"UnboundedCacheWarning",e,_)}}C&&c("stale","allowStale"),A&&c("maxAge","ttl"),E&&c("length","sizeCalculation")}getRemainingTTL(e){return this.has(e,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new v(this.max),this.starts=new v(this.max),this.setItemTTL=(e,t,n=r.now())=>{if(this.starts[e]=0!==t?n:0,this.ttls[e]=t,0!==t&&this.ttlAutopurge){const n=setTimeout(()=>{this.isStale(e)&&this.delete(this.keyList[e])},t+1);n.unref&&n.unref()}},this.updateItemAge=e=>{this.starts[e]=0!==this.ttls[e]?r.now():0};let e=0;const t=()=>{const t=r.now();if(this.ttlResolution>0){e=t;const n=setTimeout(()=>e=0,this.ttlResolution);n.unref&&n.unref()}return t};this.getRemainingTTL=n=>{const r=this.keyMap.get(n);return void 0===r?0:0===this.ttls[r]||0===this.starts[r]?1/0:this.starts[r]+this.ttls[r]-(e||t())},this.isStale=n=>0!==this.ttls[n]&&0!==this.starts[n]&&(e||t())-this.starts[n]>this.ttls[n]}updateItemAge(e){}setItemTTL(e,t,n){}isStale(e){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new v(this.max),this.removeItemSize=e=>{this.calculatedSize-=this.sizes[e],this.sizes[e]=0},this.requireSize=(e,t,n,r)=>{if(this.isBackgroundFetch(t))return 0;if(!b(n)){if(!r)throw new TypeError("invalid size value (must be positive integer)");if("function"!=typeof r)throw new TypeError("sizeCalculation must be a function");if(n=r(t,e),!b(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return n},this.addItemSize=(e,t)=>{if(this.sizes[e]=t,this.maxSize){const t=this.maxSize-this.sizes[e];for(;this.calculatedSize>t;)this.evict(!0)}this.calculatedSize+=this.sizes[e]}}removeItemSize(e){}addItemSize(e,t){}requireSize(e,t,n,r){if(n||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.tail;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.head);)t=this.prev[t]}*rindexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.head;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.tail);)t=this.next[t]}isValidIndex(e){return this.keyMap.get(this.keyList[e])===e}*entries(){for(const e of this.indexes())yield[this.keyList[e],this.valList[e]]}*rentries(){for(const e of this.rindexes())yield[this.keyList[e],this.valList[e]]}*keys(){for(const e of this.indexes())yield this.keyList[e]}*rkeys(){for(const e of this.rindexes())yield this.keyList[e]}*values(){for(const e of this.indexes())yield this.valList[e]}*rvalues(){for(const e of this.rindexes())yield this.valList[e]}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const n of this.indexes())if(e(this.valList[n],this.keyList[n],this))return this.get(this.keyList[n],t)}forEach(e,t=this){for(const n of this.indexes())e.call(t,this.valList[n],this.keyList[n],this)}rforEach(e,t=this){for(const n of this.rindexes())e.call(t,this.valList[n],this.keyList[n],this)}get prune(){return l("prune","purgeStale"),this.purgeStale}purgeStale(){let e=!1;for(const t of this.rindexes({allowStale:!0}))this.isStale(t)&&(this.delete(this.keyList[t]),e=!0);return e}dump(){const e=[];for(const t of this.indexes({allowStale:!0})){const n=this.keyList[t],i=this.valList[t],o=this.isBackgroundFetch(i)?i.__staleWhileFetching:i,s={value:o};if(this.ttls){s.ttl=this.ttls[t];const e=r.now()-this.starts[t];s.start=Math.floor(Date.now()-e)}this.sizes&&(s.size=this.sizes[t]),e.unshift([n,s])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const e=Date.now()-n.start;n.start=r.now()-e}this.set(t,n.value,n)}}dispose(e,t,n){}set(e,t,{ttl:n=this.ttl,start:r,noDisposeOnSet:i=this.noDisposeOnSet,size:o=0,sizeCalculation:s=this.sizeCalculation,noUpdateTTL:a=this.noUpdateTTL}={}){if(o=this.requireSize(e,t,o,s),this.maxEntrySize&&o>this.maxEntrySize)return this.delete(e),this;let u=0===this.size?void 0:this.keyMap.get(e);if(void 0===u)u=this.newIndex(),this.keyList[u]=e,this.valList[u]=t,this.keyMap.set(e,u),this.next[this.tail]=u,this.prev[u]=this.tail,this.tail=u,this.size++,this.addItemSize(u,o),a=!1;else{const n=this.valList[u];t!==n&&(this.isBackgroundFetch(n)?n.__abortController.abort():i||(this.dispose(n,e,"set"),this.disposeAfter&&this.disposed.push([n,e,"set"])),this.removeItemSize(u),this.valList[u]=t,this.addItemSize(u,o)),this.moveToTail(u)}if(0===n||0!==this.ttl||this.ttls||this.initializeTTLTracking(),a||this.setItemTTL(u,n,r),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return 0===this.size?this.tail:this.size===this.max&&0!==this.max?this.evict(!1):0!==this.free.length?this.free.pop():this.initialFill++}pop(){if(this.size){const e=this.valList[this.head];return this.evict(!0),e}}evict(e){const t=this.head,n=this.keyList[t],r=this.valList[t];return this.isBackgroundFetch(r)?r.__abortController.abort():(this.dispose(r,n,"evict"),this.disposeAfter&&this.disposed.push([r,n,"evict"])),this.removeItemSize(t),e&&(this.keyList[t]=null,this.valList[t]=null,this.free.push(t)),this.head=this.next[t],this.keyMap.delete(n),this.size--,t}has(e,{updateAgeOnHas:t=this.updateAgeOnHas}={}){const n=this.keyMap.get(e);return void 0!==n&&!this.isStale(n)&&(t&&this.updateItemAge(n),!0)}peek(e,{allowStale:t=this.allowStale}={}){const n=this.keyMap.get(e);if(void 0!==n&&(t||!this.isStale(n))){const e=this.valList[n];return this.isBackgroundFetch(e)?e.__staleWhileFetching:e}}backgroundFetch(e,t,n,r){const i=void 0===t?void 0:this.valList[t];if(this.isBackgroundFetch(i))return i;const s=new o,a={signal:s.signal,options:n,context:r},u=t=>(s.signal.aborted||this.set(e,t,a.options),t),f=r=>{if(this.valList[t]===l){const r=!n.noDeleteOnFetchRejection||void 0===l.__staleWhileFetching;r?this.delete(e):this.valList[t]=l.__staleWhileFetching}if(l.__returned===l)throw r},c=t=>t(this.fetchMethod(e,i,a)),l=new Promise(c).then(u,f);return l.__abortController=s,l.__staleWhileFetching=i,l.__returned=null,void 0===t?(this.set(e,l,a.options),t=this.keyMap.get(e)):this.valList[t]=l,l}isBackgroundFetch(e){return e&&"object"==typeof e&&"function"==typeof e.then&&Object.prototype.hasOwnProperty.call(e,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(e,"__returned")&&(e.__returned===e||null===e.__returned)}async fetch(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:s=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,fetchContext:c=this.fetchContext,forceRefresh:l=!1}={}){if(!this.fetchMethod)return this.get(e,{allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r});const h={allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r,ttl:i,noDisposeOnSet:o,size:s,sizeCalculation:a,noUpdateTTL:u,noDeleteOnFetchRejection:f};let d=this.keyMap.get(e);if(void 0===d){const t=this.backgroundFetch(e,d,h,c);return t.__returned=t}{const r=this.valList[d];if(this.isBackgroundFetch(r))return t&&void 0!==r.__staleWhileFetching?r.__staleWhileFetching:r.__returned=r;if(!l&&!this.isStale(d))return this.moveToTail(d),n&&this.updateItemAge(d),r;const i=this.backgroundFetch(e,d,h,c);return t&&void 0!==i.__staleWhileFetching?i.__staleWhileFetching:i.__returned=i}}get(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet}={}){const i=this.keyMap.get(e);if(void 0!==i){const o=this.valList[i],s=this.isBackgroundFetch(o);if(this.isStale(i))return s?t?o.__staleWhileFetching:void 0:(r||this.delete(e),t?o:void 0);if(s)return;return this.moveToTail(i),n&&this.updateItemAge(i),o}}connect(e,t){this.prev[t]=e,this.next[e]=t}moveToTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.connect(this.prev[e],this.next[e]),this.connect(this.tail,e),this.tail=e)}get del(){return l("del","delete"),this.delete}delete(e){let t=!1;if(0!==this.size){const n=this.keyMap.get(e);if(void 0!==n)if(t=!0,1===this.size)this.clear();else{this.removeItemSize(n);const t=this.valList[n];this.isBackgroundFetch(t)?t.__abortController.abort():(this.dispose(t,e,"delete"),this.disposeAfter&&this.disposed.push([t,e,"delete"])),this.keyMap.delete(e),this.keyList[n]=null,this.valList[n]=null,n===this.tail?this.tail=this.prev[n]:n===this.head?this.head=this.next[n]:(this.next[this.prev[n]]=this.next[n],this.prev[this.next[n]]=this.prev[n]),this.size--,this.free.push(n)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return t}clear(){for(const e of this.rindexes({allowStale:!0})){const t=this.valList[e];if(this.isBackgroundFetch(t))t.__abortController.abort();else{const n=this.keyList[e];this.dispose(t,n,"delete"),this.disposeAfter&&this.disposed.push([t,n,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return l("reset","clear"),this.clear}get length(){return h("length","size"),this.size}static get AbortController(){return o}static get AbortSignal(){return u}}e.exports=_}}}}},tslib:{"package.json":function e(t,n,e){e.exports={name:"tslib",version:"2.3.1",module:"tslib.es6.js",main:"tslib.js"}},"tslib.es6.js":function e(t,n,e){e.export({__extends:()=>i,__assign:()=>o,__rest:()=>s,__decorate:()=>a,__param:()=>u,__metadata:()=>f,__awaiter:()=>c,__generator:()=>l,__createBinding:()=>h,__exportStar:()=>d,__values:()=>p,__read:()=>g,__spread:()=>b,__spreadArrays:()=>m,__spreadArray:()=>v,__await:()=>y,__asyncGenerator:()=>_,__asyncDelegator:()=>w,__asyncValues:()=>k,__makeTemplateObject:()=>j,__importStar:()=>S,__importDefault:()=>D,__classPrivateFieldGet:()=>E,__classPrivateFieldSet:()=>A}); +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1||t[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,r=this,i;return e(this).one("bsTransitionEnd",(function(){n=!0})),setTimeout((function(){n||e(r).trigger(e.support.transition.end)}),t),this},e((function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})}))}(jQuery),function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};function r(t){return this.each((function(){var r=e(this),i=r.data("bs.alert");i||r.data("bs.alert",i=new n(this)),"string"==typeof t&&i[t].call(r)}))}n.VERSION="3.4.1",n.TRANSITION_DURATION=150,n.prototype.close=function(t){var r=e(this),i=r.attr("data-target");i||(i=(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=e(document).find(i);function s(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=r.closest(".alert")),o.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",s).emulateTransitionEnd(n.TRANSITION_DURATION):s())};var i=e.fn.alert;e.fn.alert=r,e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=i,this},e(document).on("click.bs.alert.data-api",t,n.prototype.close)}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.isLoading=!1};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.button"),o="object"==typeof n&&n;i||r.data("bs.button",i=new t(this,o)),"toggle"==n?i.toggle():n&&i.setState(n)}))}t.VERSION="3.4.1",t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(t){var n="disabled",r=this.$element,i=r.is("input")?"val":"html",o=r.data();t+="Text",null==o.resetText&&r.data("resetText",r[i]()),setTimeout(e.proxy((function(){r[i](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,r.addClass(n).attr(n,n).prop(n,!0)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n).prop(n,!1))}),this),0)},t.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var r=e.fn.button;e.fn.button=n,e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=r,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var r=e(t.target).closest(".btn");n.call(r,"toggle"),e(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),r.is("input,button")?r.trigger("focus"):r.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))}))}(jQuery),function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.carousel"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n),s="string"==typeof n?n:o.slide;i||r.data("bs.carousel",i=new t(this,o)),"number"==typeof n?i.to(n):s?i[s]():o.interval&&i.pause().cycle()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=600,t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},t.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},t.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t),r;if(("prev"==e&&0===n||"next"==e&&n==this.$items.length-1)&&!this.options.wrap)return t;var i,o=(n+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(o)},t.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){t.to(e)})):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(!this.sliding)return this.slide("next")},t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},t.prototype.slide=function(n,r){var i=this.$element.find(".item.active"),o=r||this.getItemForDirection(n,i),s=this.interval,a="next"==n?"left":"right",u=this;if(o.hasClass("active"))return this.sliding=!1;var f=o[0],c=e.Event("slide.bs.carousel",{relatedTarget:f,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=e(this.$indicators.children()[this.getItemIndex(o)]);l&&l.addClass("active")}var h=e.Event("slid.bs.carousel",{relatedTarget:f,direction:a});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(n),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(a),o.addClass(a),i.one("bsTransitionEnd",(function(){o.removeClass([n,a].join(" ")).addClass("active"),i.removeClass(["active",a].join(" ")),u.sliding=!1,setTimeout((function(){u.$element.trigger(h)}),0)})).emulateTransitionEnd(t.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(h)),s&&this.cycle(),this}};var r=e.fn.carousel;e.fn.carousel=n,e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=r,this};var i=function(t){var r=e(this),i=r.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=r.attr("data-target")||i,s=e(document).find(o);if(s.hasClass("carousel")){var a=e.extend({},s.data(),r.data()),u=r.attr("data-slide-to");u&&(a.interval=!1),n.call(s,a),u&&s.data("bs.carousel").to(u),t.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",i).on("click.bs.carousel.data-api","[data-slide-to]",i),e(window).on("load",(function(){e('[data-ride="carousel"]').each((function(){var t=e(this);n.call(t,t.data())}))}))}(jQuery),function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.$trigger=e('[data-toggle="collapse"][href="#'+n.id+'"],[data-toggle="collapse"][data-target="#'+n.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var n,r=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(document).find(r)}function r(n){return this.each((function(){var r=e(this),i=r.data("bs.collapse"),o=e.extend({},t.DEFAULTS,r.data(),"object"==typeof n&&n);!i&&o.toggle&&/show|hide/.test(n)&&(o.toggle=!1),i||r.data("bs.collapse",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=350,t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e;return this.$element.hasClass("width")?"width":"height"},t.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var n,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(n=i.data("bs.collapse"))&&n.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){i&&i.length&&(r.call(i,"hide"),n||i.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return a.call(this);var u=e.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",e.proxy(a,this)).emulateTransitionEnd(t.TRANSITION_DURATION)[s](this.$element[0][u])}}}},t.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var n=e.Event("hide.bs.collapse");if(this.$element.trigger(n),!n.isDefaultPrevented()){var r=this.dimension();this.$element[r](this.$element[r]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return i.call(this);this.$element[r](0).one("bsTransitionEnd",e.proxy(i,this)).emulateTransitionEnd(t.TRANSITION_DURATION)}}},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},t.prototype.getParent=function(){return e(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy((function(t,r){var i=e(r);this.addAriaAndCollapsedClass(n(i),i)}),this)).end()},t.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var i=e.fn.collapse;e.fn.collapse=r,e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=i,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){var i=e(this);i.attr("data-target")||t.preventDefault();var o=n(i),s,a=o.data("bs.collapse")?"toggle":i.data();r.call(o,a)}))}(jQuery),function(e){"use strict";var t=".dropdown-backdrop",n='[data-toggle="dropdown"]',r=function(t){e(t).on("click.bs.dropdown",this.toggle)};function i(t){var n=t.attr("data-target");n||(n=(n=t.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r="#"!==n?e(document).find(n):null;return r&&r.length?r:t.parent()}function o(r){r&&3===r.which||(e(t).remove(),e(n).each((function(){var t=e(this),n=i(t),o={relatedTarget:this};n.hasClass("open")&&(r&&"click"==r.type&&/input|textarea/i.test(r.target.tagName)&&e.contains(n[0],r.target)||(n.trigger(r=e.Event("hide.bs.dropdown",o)),r.isDefaultPrevented()||(t.attr("aria-expanded","false"),n.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))})))}function s(t){return this.each((function(){var n=e(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new r(this)),"string"==typeof t&&i[t].call(n)}))}r.VERSION="3.4.1",r.prototype.toggle=function(t){var n=e(this);if(!n.is(".disabled, :disabled")){var r=i(n),s=r.hasClass("open");if(o(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",o);var a={relatedTarget:this};if(r.trigger(t=e.Event("show.bs.dropdown",a)),t.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger(e.Event("shown.bs.dropdown",a))}return!1}},r.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var r=e(this);if(t.preventDefault(),t.stopPropagation(),!r.is(".disabled, :disabled")){var o=i(r),s=o.hasClass("open");if(!s&&27!=t.which||s&&27==t.which)return 27==t.which&&o.find(n).trigger("focus"),r.trigger("click");var a=" li:not(.disabled):visible a",u=o.find(".dropdown-menu"+a);if(u.length){var f=u.index(t.target);38==t.which&&f>0&&f--,40==t.which&&fdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},t.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},t.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:i},f.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var s=i[o];if("click"==s)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",u="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},f.prototype.getDefaults=function(){return f.DEFAULTS},f.prototype.getOptions=function(n){var r=this.$element.data();for(var i in r)r.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete r[i];return(n=e.extend({},this.getDefaults(),r,n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.sanitize&&(n.template=u(n.template,n.whiteList,n.sanitizeFn)),n},f.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,(function(e,r){n[e]!=r&&(t[e]=r)})),t},f.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)}},f.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},f.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)}},f.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var n=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!n)return;var r=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,u=a.test(s);u&&(s=s.replace(a,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),l=i[0].offsetWidth,h=i[0].offsetHeight;if(u){var d=s,p=this.getPosition(this.$viewport);s="bottom"==s&&c.bottom+h>p.bottom?"top":"top"==s&&c.top-hp.width?"left":"left"==s&&c.left-ls.top+s.height&&(i.top=s.top+s.height-u)}else{var f=t.left-o,c=t.left+o+n;fs.right&&(i.left=s.left+s.width-c)}return i},f.prototype.getTitle=function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)},f.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},f.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},f.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},f.prototype.enable=function(){this.enabled=!0},f.prototype.disable=function(){this.enabled=!1},f.prototype.toggleEnabled=function(){this.enabled=!this.enabled},f.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},f.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},f.prototype.sanitizeHtml=function(e){return u(e,this.options.whiteList,this.options.sanitizeFn)};var l=e.fn.tooltip;e.fn.tooltip=c,e.fn.tooltip.Constructor=f,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=l,this}}(jQuery),function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");function n(n){return this.each((function(){var r=e(this),i=r.data("bs.popover"),o="object"==typeof n&&n;!i&&/destroy|hide/.test(n)||(i||r.data("bs.popover",i=new t(this,o)),"string"==typeof n&&i[n]())}))}t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),t.prototype.constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();if(this.options.html){var r=typeof n;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===r&&(n=this.sanitizeHtml(n))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===r?"html":"append"](n)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(n);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var r=e.fn.popover;e.fn.popover=n,e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=r,this}}(jQuery),function(e){"use strict";function t(n,r){this.$body=e(document.body),this.$scrollElement=e(n).is(document.body)?e(window):e(n),this.options=e.extend({},t.DEFAULTS,r),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each((function(){var r=e(this),i=r.data("bs.scrollspy"),o="object"==typeof n&&n;i||r.data("bs.scrollspy",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,n="offset",r=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",r=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var t=e(this),i=t.data("target")||t.attr("href"),o=/^#./.test(i)&&e(i);return o&&o.length&&o.is(":visible")&&[[o[n]().top+r,i]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},t.prototype.process=function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.getScrollHeight(),n=this.options.offset+t-this.$scrollElement.height(),r=this.offsets,i=this.targets,o=this.activeTarget,s;if(this.scrollHeight!=t&&this.refresh(),e>=n)return o!=(s=i[i.length-1])&&this.activate(s);if(o&&e=r[s]&&(void 0===r[s+1]||e .active"),s=i&&e.support.transition&&(o.length&&o.hasClass("fade")||!!r.find("> .fade").length);function a(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),n.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(n[0].offsetWidth,n.addClass("in")):n.removeClass("fade"),n.parent(".dropdown-menu").length&&n.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&s?o.one("bsTransitionEnd",a).emulateTransitionEnd(t.TRANSITION_DURATION):a(),o.removeClass("in")};var r=e.fn.tab;e.fn.tab=n,e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=r,this};var i=function(t){t.preventDefault(),n.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(e){"use strict";var t=function(n,r){this.options=e.extend({},t.DEFAULTS,r);var i=this.options.target===t.DEFAULTS.target?e(this.options.target):e(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(n),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function n(n){return this.each((function(){var r=e(this),i=r.data("bs.affix"),o="object"==typeof n&&n;i||r.data("bs.affix",i=new t(this,o)),"string"==typeof n&&i[n]()}))}t.VERSION="3.4.1",t.RESET="affix affix-top affix-bottom",t.DEFAULTS={offset:0,target:window},t.prototype.getState=function(e,t,n,r){var i=this.$target.scrollTop(),o=this.$element.offset(),s=this.$target.height();if(null!=n&&"top"==this.affixed)return i=e-r&&"bottom"},t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var e=this.$target.scrollTop(),n=this.$element.offset();return this.pinnedOffset=n.top-e},t.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var n=this.$element.height(),r=this.options.offset,i=r.top,o=r.bottom,s=Math.max(e(document).height(),e(document.body).height());"object"!=typeof r&&(o=i=r),"function"==typeof i&&(i=r.top(this.$element)),"function"==typeof o&&(o=r.bottom(this.$element));var a=this.getState(s,n,i,o);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var u="affix"+(a?"-"+a:""),f=e.Event(u+".bs.affix");if(this.$element.trigger(f),f.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-n-o})}};var r=e.fn.affix;e.fn.affix=n,e.fn.affix.Constructor=t,e.fn.affix.noConflict=function(){return e.fn.affix=r,this},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),r=t.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),n.call(t,r)}))}))}(jQuery)}}}},fibers:{"package.json":function e(t,n,e){e.exports={name:"fibers",version:"5.0.3",main:"fibers"}},"fibers.js":function e(t,n,e,r,i){if(process.fiberLib)e.exports=process.fiberLib;else{var o=t("fs"),s=t("path"),a=t("detect-libc");Math.random();var u=s.join(i,"bin",process.platform+"-"+process.arch+"-"+process.versions.modules+("linux"===process.platform?"-"+a.family:""),"fibers");try{process.fiberLib=e.exports=t(u).Fiber}catch(c){throw console.error("## There is an issue with `node-fibers` ##\n`"+u+".node` is missing.\n\nTry running this to fix the issue: "+process.execPath+" "+i.replace(" ","\\ ")+"/build"),console.error(c.stack||c.message||c),new Error("Missing binary. See message above.")}f(e.exports)}function f(e){try{var t=process.binding("async_wrap"),n;if(t.asyncIdStackSize instanceof Function)n=t.asyncIdStackSize;else{if(void 0===t.constants.kStackLength)throw new Error("Couldn't figure out how to get async stack size");l=t.constants.kStackLength,n=function(){return t.async_hook_fields[l]}}var r=t.popAsyncContext||t.popAsyncIds,i=t.pushAsyncContext||t.pushAsyncIds,o,s;if(!r||!i)throw new Error("Push/pop do not exist");o=void 0===t.constants.kExecutionAsyncId?t.constants.kCurrentAsyncId:t.constants.kExecutionAsyncId,s=void 0===t.constants.kTriggerAsyncId?t.constants.kCurrentTriggerId:t.constants.kTriggerAsyncId;var a=t.async_id_fields||t.async_uid_fields;function u(){for(var e=n(),t=new Array(e);e>0;--e){var i=a[o];t[e-1]={asyncId:i,triggerId:a[s]},r(i)}return t}function f(e){for(var t=0;t0)i.changeLanguage(e,r);else if(0!=a[u]){a[u]=0;var f=new XMLHttpRequest;f.overrideMimeType("application/json"),f.open("GET",u,!1),f.send(null),200===f.status?a[u]=1:a[u]=-1,n.addResourceBundle(e,s,JSON.parse(f.response)||{}),i.changeLanguage(e,r)}};n.changeLanguage=p;var g=function(e,t,n){return i.format(e,t,n)};n.format=g;var b=function(){return i.languages};n.getLanguages=b;var m=function(e,t){return i.loadLanguages(e,t)};n.loadLanguages=m;var v=function(e,t){return i.loadNamespaces(e,t)};n.loadNamespaces=v;var y=function(e,t){return i.on(e,t)};n.on=y;var _=function(e,t){return i.off(e,t)};n.off=_,r.__exportStar(t("./i18n/i18n"),n),r.__exportStar(t("./i18n/i18n.app"),n),r.__exportStar(t("./translations"),n)},i18n:{"i18n.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.fallbackKeys=n.getObjectI18nTemplate=n.translationI18nObjects=n.addObjectsI18n=n.translationI18nObject=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="_",a="base",u="core",f="translation",c=function(e,t){var n={lng:t,ns:f};if((0,r.exists)(e,n))return(0,r._t)(e,n)},l=function(e){return"".concat(e,"__object")},h=function(e,t){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t)},d=function(e,t){var n=h(e,t);return"".concat(n).concat("_","inlineHelpText")},p=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","group").concat("_").concat(n)},g=function(e,t,n){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t).concat("_","options").concat("_").concat(n)},b=function(e,t){return"".concat(e).concat("_","action").concat("_").concat(t)},m=function(e,t){return"".concat(e).concat("_","listview").concat("_").concat(t)},v=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},y=function(e,t,n){var r=l(t);return c(r,e)||n||""},_=function(e,t,n,r,i){var o=h(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=_(e,a,n,r,i))}return s||r||""},w=function(e,t,n,r,i){var o=d(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=w(e,a,n,r,i))}return s||r||""},k=function(e,t,n,r){var i=p(t,n);return c(i,e)||r||""},j=function(e,t,n,r,i,o){var s=g(t,n,r),a=c(s,e);if(!a){var u=v(o);u&&"base"!=t&&"core"!=t&&(a=j(e,u,n,r,i,o))}return a||i||""},x=function(e,t,n,r,i){var o=b(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=x(e,a,n,r,i))}return s||r||""},S=function(e,t,n,r,i){var o=m(t,n),s=c(o,e);if(!s){var a=v(i);a&&"base"!=t&&"core"!=t&&(s=S(e,a,n,r,i))}return s||r||""},D=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},E=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;return e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(D(e))}))):n.push(D(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},A=function(e,t,n){n.label=y(e,t,n.label),i.each(n.fields,(function(r,o){if(r.label=_(e,t,o,r.label,n.datasource),r.inlineHelpText&&(r.inlineHelpText=w(e,t,o,r.inlineHelpText,n.datasource)),r.group&&(r.group=k(e,t,r.group,r.group)),r.options){var s=[];i.each(r.options,(function(r){if(i.has(r,"value")){var a=j(e,t,o,r.value,r.label,n.datasource);s.push(i.extend({},r,{label:a}))}else s.push(r)})),r.options=s}})),i.each(n.actions,(function(r,i){r.label=x(e,t,i,r.label,n.datasource)})),i.each(n.list_views,(function(r,i){r.label=S(e,t,i,r.label,n.datasource)}))};n.translationI18nObject=A;var C=function(e){i.each(e,(function(e){(0,r.addResourceBundle)(e.lng,f,e.data,!0,!0)}))};n.addObjectsI18n=C;var M=function(e,t){i.each(t,(function(t,r){(0,n.translationI18nObject)(e,r,t)}))};n.translationI18nObjects=M;var O=function(e,t,n){var r=o(n);E(r);var s={};return s[l(t)]=y(e,t,r.label),i.each(r.fields,(function(n,o){s[h(t,o)]=_(e,t,o,n.label),n.inlineHelpText&&(s[d(t,o)]=w(e,t,o,n.inlineHelpText,r.datasource)),n.group&&(s[p(t,n.group)]=k(e,t,n.group,n.group)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[g(t,o,n.value)]=j(e,t,o,n.value,n.label))}))})),i.each(r.actions,(function(n,r){s[b(t,r)]=x(e,t,r,n.label)})),i.each(r.list_views,(function(n,r){s[m(t,r)]=S(e,t,r,n.label)})),s};n.getObjectI18nTemplate=O,n.fallbackKeys={getObjectLabelKey:l,getObjectFieldLabelKey:h,getObjectFieldInlineHelpTextLabelKey:d,getObjectFieldGroupKey:p,getObjectFieldOptionsLabelKey:g,getObjectActionLabelKey:b,getObjectListviewLabelKey:m}},"i18n.app.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.appFallbackKeys=n.getAppI18nTemplate=n.translationI18nApps=n.translationI18nMenus=void 0;var r=t("../index"),i=t("underscore"),o=t("clone"),s="translation",a="_",u=function(e,t){var n={lng:t,ns:s};if((0,r.exists)(e,n))return(0,r._t)(e,n)},f=function(e){return"app".concat("_").concat(e).concat("_","name")},c=function(e){return"app".concat("_").concat(e).concat("_","description")},l=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","tab_group").concat("_").concat(n)},h=function(e){return"menu".concat("_").concat(e)},d=function(e){return"tab".concat("_").concat(e)},p=function(e,t,n){var r=f(t);return u(r,e)||n||""},g=function(e,t,n){var r=c(t);return u(r,e)||n||""},b=function(e,t,n){var r=h(t);return u(r,e)||n||""},m=function(e,t,r){r.label=p(e,t,r.label||r.name),r.description=g(e,t,r.description),(0,n.translationI18nMenus)(e,r.admin_menus)},v=function(e,t){i.each(t,(function(t){var n=b(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationI18nMenus=v;var y=function(e,t){i.each(t,(function(t,n){m(e,n,t)}))};n.translationI18nApps=y;var _=function(e,t,n){var r=o(n),s={};return s[f(t)]=p(e,t,r.label||r.name),s[c(t)]=g(e,t,r.description),i.each(r.admin_menus,(function(t){s[h(t._id)]=b(e,t._id,t.label||t.name)})),s};n.getAppI18nTemplate=_,n.appFallbackKeys={getAppLabelKey:f,getAppDescriptionKey:c,getAppGroupKey:l,getMenuLabelKey:h,getTabKey:d}}},translations:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SteedosTranslationPrefixKeys=n.convertObject=void 0;var r=t("tslib"),i=t("underscore");r.__exportStar(t("./objectTranslation"),n),r.__exportStar(t("./translation"),n),r.__exportStar(t("./templates/objectTranslation"),n),r.__exportStar(t("./templates/translation"),n);var o=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},s=function(e){i.forEach(e.fields,(function(e,t){var n=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return n.push(o(e))}))):n.push(o(e))})),e.options=n}catch(r){console.error("convertFieldsOptions error: ",e.options,r)}else if(e.options&&i.isArray(e.options))try{i.forEach(e.options,(function(e){i.isString(e)?n.push(o(e)):n.push(e)})),e.options=n}catch(r){console.error("Creator.convertFieldsOptions",e.options,r)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return n.push({label:e,value:t})})),e.options=n)}))},a;n.convertObject=s,function(e){e.Object="CustomObject",e.Field="CustomField",e.Action="CustomAction",e.Listview="CustomListview",e.Permission="CustomPermission",e.ValidationRule="CustomValidationRule",e.Application="CustomApplication",e.Tab="CustomTabs",e.Permissionset="CustomPermissionset",e.Profile="CustomProfile",e.Report="CustomReport",e.Workflow="Workflow",e.Layout="Layout",e.Client="Client",e.Server="Server",e.Function="Function",e.Router="Router",e.Trigger="Trigger"}(a=n.SteedosTranslationPrefixKeys||(n.SteedosTranslationPrefixKeys={}))},"objectTranslation.js":function e(t,n,e,r){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addObjectsTranslation=n.getObjectTranslationTemplate=n.translationObjects=n.translationObject=n.translationObjectLabel=void 0;var i=t("underscore"),o=t("./"),s=t("../index"),a=t("./index"),u=t("../i18n/i18n"),f=t("lodash"),c=t("crypto"),l,h=(0,t("@steedos/cachers").getCacher)("lru.translations.objects");function d(e){var t;return c.createHash("md5").update(e).digest("hex")}var p=function(e,t){return"".concat(e,"_").concat(t.name,"_").concat(d(JSON.stringify(t)))},g=t("clone"),b=".",m="base",v="core",y="translation",_="object",w="field",k="listview",j="action",x=function(e,t){var n={lng:t,ns:y,keySeparator:!1};if((0,s.exists)(e,n))return(0,s._t)(e,n)},S=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},D=function(e){switch(e){case"object":return o.SteedosTranslationPrefixKeys.Object;case"field":return o.SteedosTranslationPrefixKeys.Field;case"listview":return o.SteedosTranslationPrefixKeys.Listview;case"action":return o.SteedosTranslationPrefixKeys.Action;default:return"CustomLabels"}},E=function(e){var t;return[D(),e].join(".")},A=function(e){var t;return[D("object"),e,"label"].join(".")},C=function(e){var t;return[D("object"),e,"description"].join(".")},M=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"label"].join(".")},O=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"help"].join(".")},T=function(e,t){var n;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"description"].join(".")},B=function(e,t){var n=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_"),r;return[D("field"),e,"group",n].join(".")},I=function(e,t,n){var r;return t&&(t=t.replace(/\./g,"_")),[D("field"),e,t,"options",n].join(".")},R=function(e,t){var n;return[D("action"),e,t].join(".")},F=function(e,t){var n;return[D("listview"),e,t].join(".")},P=function(e,t,n){var r,i=[A(t)],o=u.fallbackKeys.getObjectLabelKey(t);return o&&i.push(o),x(i,e)||n||""};n.translationObjectLabel=P;var N=function(e,t,n){var r=C(t);return x(r,e)||n||""},L=function(e,t,n,r,i,o){var s,a=[M(t,n)],f=u.fallbackKeys.getObjectFieldLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=L(e,l,n,r,i))}return c||r||""},z=function(e,t,n,r,i,o){var s,a=[O(t,n)],f=u.fallbackKeys.getObjectFieldInlineHelpTextLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=z(e,l,n,r,i))}return c||r||""},U=function(e,t,n,r,i,o){var s=T(t,n),a,u=x([s],e);if(1!=o&&!u){var f=S(i);f&&"base"!=t&&"core"!=t&&(u=U(e,f,n,r,i))}return u||r||""},q=function(e,t,n,r,i,o){var s,a=[B(t,n)],f=u.fallbackKeys.getObjectFieldGroupKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=q(e,l,n,r,i))}return c||r||""},$=function(e,t,n,r,i,o,s){var a,f=[I(t,n,r)],c=u.fallbackKeys.getObjectFieldOptionsLabelKey(t,n,r);c&&f.push(c);var l=x(f,e);if(1!=s&&!l){var h=S(o);h&&"base"!=t&&"core"!=t&&(l=$(e,h,n,r,i,o))}return l||i||""},H=function(e,t,n,r,i,o){var s,a=[R(t,n)],f=u.fallbackKeys.getObjectActionLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=H(e,l,n,r,i))}return c||r||""},W=function(e,t,n,r,i,o){var s,a=[F(t,n)],f=u.fallbackKeys.getObjectListviewLabelKey(t,n);f&&a.push(f);var c=x(a,e);if(1!=o&&!c){var l=S(i);l&&"base"!=t&&"core"!=t&&(c=W(e,l,n,r,i))}return c||r||""},Y=function(e,t,r,o,s){void 0===s&&(s=!1);var u=p(e,r);"test_obj_layout1"===t&&console.log("translationObject",t,u);var c=h.get(u);if(c)return Object.assign(r,(0,f.cloneDeep)(c));o&&(0,a.convertObject)(r),r.label=(0,n.translationObjectLabel)(e,t,r.label),r.description=N(e,t,r.description),i.each(r.fields,(function(n,o){if(n.label=L(e,t,o,n.label,r.datasource,s),n.inlineHelpText&&(n.inlineHelpText=z(e,t,o,n.inlineHelpText,r.datasource,s)),n.group&&(n.group=q(e,t,n.group,n.group,r.datasource,s)),n.options){var a=[];i.each(n.options,(function(n){if(i.has(n,"value")){var u=$(e,t,o,n.value,n.label,r.datasource,s);a.push(i.extend({},n,{label:u}))}else a.push(n)})),n.options=a}})),i.each(r.actions,(function(n,i){n.label=H(e,t,i,n.label,r.datasource,s)})),i.each(r.list_views,(function(n,i){n.label=W(e,t,i,n.label,r.datasource,s)})),h.set(u,(0,f.cloneDeep)(r))};n.translationObject=Y;var V=function(e,t){i.each(t,(function(t,r){(0,n.translationObject)(e,r,t)}))};n.translationObjects=V;var K=function(e,t,r){var o=g(r);(0,a.convertObject)(o);var s={};return s[A(t)]=(0,n.translationObjectLabel)(e,t,o.label),s[C(t)]=N(e,t,o.description),i.each(o.fields,(function(n,r){s[M(t,r)]=L(e,t,r,n.label),n.inlineHelpText&&(s[O(t,r)]=z(e,t,r,n.inlineHelpText,o.datasource)),n.description&&(s[T(t,r)]=U(e,t,r,n.description,o.datasource)),n.group&&(s[B(t,n.group)]=q(e,t,n.group,n.group,o.datasource)),n.options&&i.each(n.options,(function(n){i.has(n,"value")&&(s[I(t,r,n.value)]=$(e,t,r,n.value,n.label))}))})),i.each(o.actions,(function(n,r){s[R(t,r)]=H(e,t,r,n.label)})),i.each(o.list_views,(function(n,r){s[F(t,r)]=W(e,t,r,n.label)})),s};function G(e,t){var n=g(e);(0,a.convertObject)(n);var r={},o=n.name;return o||console.error("Error: Invalid objectTranslation:"+t),r[A(o)]=n.label,r[C(o)]=n.description,i.each(n.fields,(function(e,t){r[M(o,t)]=e.label,e.help&&(r[O(o,t)]=e.help),e.description&&(r[T(o,t)]=e.description),e.options&&i.each(e.options,(function(e){i.has(e,"value")&&(r[I(o,t,e.value)]=e.label)}))})),i.each(n.groups,(function(e,t){r[B(o,t)]=e})),i.each(n.actions,(function(e,t){r[R(o,t)]=e.label})),i.each(n.listviews,(function(e,t){r[F(o,t)]=e.label})),i.each(n.CustomLabels,(function(e,t){r[E(t)]=e})),r}n.getObjectTranslationTemplate=K;var X=function(e){i.each(e,(function(e){var t=G(e.data,e.__filename);(0,s.addResourceBundle)(e.lng,y,t,!0,!0)}))};n.addObjectsTranslation=X},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addTranslations=n.convertTranslation=n.convertTranslationData=n.getAppTranslationTemplate=n.translationApps=n.translationMenus=n.translationApp=n.translationTabLabel=n.translationTabGroup=void 0;var r=t("../index"),i=t("underscore"),o=t("./"),s=t("../i18n/i18n.app"),a=t("clone"),u="translation",f=".",c="app",l="menu",h="tab",d=function(e){switch(e){case"app":return o.SteedosTranslationPrefixKeys.Application;case"tab":return o.SteedosTranslationPrefixKeys.Tab;default:return"CustomLabels"}},p=function(e){var t;return[d(),e].join(".")},g=function(e,t){var n={lng:t,ns:u,keySeparator:!1};if((0,r.exists)(e,n))return(0,r._t)(e,n)},b=function(e){var t;return[d("app"),e,"name"].join(".")},m=function(e){var t;return[d("app"),e,"description"].join(".")},v=function(e,t){var n,r;return[d("app"),e,"groups",t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_")].join(".")},y=function(e){var t;return[d("menu"),"menu_".concat(e)].join(".")},_=function(e){var t;return[d("tab"),e].join(".")},w=function(e,t,n){var r,i=[b(t)],o=s.appFallbackKeys.getAppLabelKey(t);return o&&i.push(o),g(i,e)||n||""},k=function(e,t,n){var r,i=[m(t)],o=s.appFallbackKeys.getAppDescriptionKey(t);return o&&i.push(o),g(i,e)||n||""},j=function(e,t,n,r){var i,o=[v(t,n)],a=s.appFallbackKeys.getAppGroupKey(t,n);return a&&o.push(a),g(o,e)||r||""};n.translationTabGroup=j;var x=function(e,t,n){var r,i=[y(t)],o=s.appFallbackKeys.getMenuLabelKey(t);return o&&i.push(o),g(i,e)||n||""},S=function(e,t,n){var r,i=[_(t)],o=s.appFallbackKeys.getTabKey(t);return o&&i.push(o),g(i,e)||n||""};n.translationTabLabel=S;var D=function(e,t,r){r.label=w(e,t,r.label||r.name),r.description=k(e,t,r.description),i.each(r.tab_groups,(function(i,o){r.tab_groups[o].id=i.id||i.group_name,r.tab_groups[o].group_name=(0,n.translationTabGroup)(e,t,i.group_name,i.group_name)})),(0,n.translationMenus)(e,r.admin_menus)};n.translationApp=D;var E=function(e,t){i.each(t,(function(t){var n=x(e,t._id,t.label||t.name);t.label=n,t.name=n}))};n.translationMenus=E;var A=function(e,t){i.each(t,(function(t,r){(0,n.translationApp)(e,r,t)}))};n.translationApps=A;var C=function(e,t,n){var r=a(n),o={};return o[b(t)]=w(e,t,r.label||r.name),o[m(t)]=k(e,t,r.description),i.each(r.admin_menus,(function(t){o[y(t._id)]=x(e,t._id,t.label||t.name)})),o};n.getAppTranslationTemplate=C;var M=function(e,t,n){i.isArray(n)?i.each(n,(function(e){M(e,"",e)})):n&&i.each(i.keys(n),(function(r){var o=t?"".concat(t,".").concat(r):r,s=n[r];"object"==typeof s?i.isArray(s)?i.each(s,(function(e){M(e,o,s)})):M(e,o,s):e[o]=s}))};function O(e){for(var t in e)"object"==typeof e[t]&&M(e,t,e[t]);return e}n.convertTranslationData=O;var T=function(e){var t=a(e),n={};return i.each(t.CustomApplications,(function(e,t){n[b(t)]=e.name,n[m(t)]=e.description,i.each(e.groups,(function(e,r){n[v(t,r)]=e}))})),i.each(t.CustomTabs,(function(e,t){n[_(t)]=e})),i.each(t.CustomLabels,(function(e,t){var r;if("simpleschema"!=t&&i.isObject(e)){var o=O(((r={})[t]=e,r));i.each(o,(function(e,t){i.isObject(e)||(n[p(t)]=e)}))}else n[p(t)]=e})),n};n.convertTranslation=T;var B=function(e){i.each(e,(function(e){var t=(0,n.convertTranslation)(e.data);(0,r.addResourceBundle)(e.lng,u,t,!0,!0)}))};n.addTranslations=B},templates:{"objectTranslation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getObjectMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]="help"===e?t.inlineHelpText||"":t[e]||""})),n}function a(e){return s(["label","description"],e)}function u(e){switch(e.type){case"select":return s(["label","help","options","description"],e);default:return s(["label","help","description"],e)}}function f(e){return s(["label"],e)}function c(e){return s(["label"],e)}function l(e){var t={};return r.each(e,(function(e,n){t[n]=u(e)})),t}function h(e){var t={};return r.each(e,(function(e,n){t[n]=c(e)})),t}function d(e){var t={};return r.each(e,(function(e,n){t[n]=f(e)})),t}function p(e,t){var n={};return r.each(e,(function(e,r){if(e.group){var i=e.group.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");n[i]=t[r].group}})),n}var g=function(e,t,n,s){void 0===s&&(s=!1);var u=o(n);1!=s&&(0,i.translationObject)(e,t,u,!0,s);var f=Object.assign({},a(u));f=Object.assign({},f,{fields:l(u.fields)});var c=p(n.fields,u.fields);r.isEmpty(c)||(f=Object.assign({},f,{groups:c}));var g=d(u.list_views);r.isEmpty(g)||(f=Object.assign({},f,{listviews:g}));var b=h(u.actions);return r.isEmpty(b)||(f=Object.assign({},f,{actions:b})),Object.assign({name:t},f)};n.getObjectMetadataTranslationTemplate=g},"translation.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getAppMetadataTranslationTemplate=void 0;var r=t("underscore"),i=t("../index"),o=t("clone");function s(e,t){var n={};return r.each(e,(function(e){n[e]=t[e]||""})),n}function a(e){var t={groups:{}};return e?(r.each(e,(function(e){var n=e.group_name.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t.groups[n]=e.group_name})),t):{}}var u=function(e){return Object.assign({},s(["name","description"],e),a(e.tab_groups))},f=function(e){var t={};return r.each(e,(function(e,n){t[n]=n})),t},c=function(e){var t={};return r.each(e,(function(e){var n=e.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t[n]=e})),t},l=function(e,t,n){var r,s=o(n);(0,i.translationApp)(e,t,s);var a={},l;return s.tab_items?a=f(s.tab_items):s.tabs&&(a=c(s.tabs)),Object.assign({},{CustomApplications:(r={},r[t]=u(s),r)},{CustomTabs:a})};n.getAppMetadataTranslationTemplate=l}}}},node_modules:{i18next:{"package.json":function e(t,n,e){e.exports={name:"i18next",version:"19.9.2",module:"./dist/esm/i18next.js",main:"./dist/cjs/i18next.js"}},dist:{esm:{"i18next.js":function e(t,n,e){let r,i,o,s,a,u,f,c;e.link("@babel/runtime/helpers/esm/typeof",{default(e){r=e}},0),e.link("@babel/runtime/helpers/esm/objectSpread",{default(e){i=e}},1),e.link("@babel/runtime/helpers/esm/classCallCheck",{default(e){o=e}},2),e.link("@babel/runtime/helpers/esm/createClass",{default(e){s=e}},3),e.link("@babel/runtime/helpers/esm/possibleConstructorReturn",{default(e){a=e}},4),e.link("@babel/runtime/helpers/esm/getPrototypeOf",{default(e){u=e}},5),e.link("@babel/runtime/helpers/esm/assertThisInitialized",{default(e){f=e}},6),e.link("@babel/runtime/helpers/esm/inherits",{default(e){c=e}},7);var l={type:"logger",log:function e(t){this.output("log",t)},warn:function e(t){this.output("warn",t)},error:function e(t){this.output("error",t)},output:function e(t,n){console&&console[t]&&console[t].apply(console,n)}},h,d=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.init(t,n)}return s(e,[{key:"init",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||l,this.options=n,this.debug=n.debug}},{key:"setDebug",value:function e(t){this.debug=t}},{key:"log",value:function e(){for(var t=arguments.length,n=new Array(t),r=0;r1?n-1:0),i=1;i-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(i())return{};var s=r(o.shift());!e[s]&&n&&(e[s]=new n),e=Object.prototype.hasOwnProperty.call(e,s)?e[s]:{}}return i()?{}:{obj:e,k:r(o.shift())}}function y(e,t,n){var r=v(e,t,Object),i,o;r.obj[r.k]=n}function _(e,t,n,r){var i=v(e,t,Object),o=i.obj,s=i.k;o[s]=o[s]||[],r&&(o[s]=o[s].concat(n)),r||o[s].push(n)}function w(e,t){var n=v(e,t),r=n.obj,i=n.k;if(r)return r[i]}function k(e,t,n){var r=w(e,n);return void 0!==r?r:w(t,n)}function j(e,t,n){for(var r in t)"__proto__"!==r&&"constructor"!==r&&(r in e?"string"==typeof e[r]||e[r]instanceof String||"string"==typeof t[r]||t[r]instanceof String?n&&(e[r]=t[r]):j(e[r],t[r],n):e[r]=t[r]);return e}function x(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var S={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function D(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return S[e]})):e}var E="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,A=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),n.data=e||{},n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n}return c(t,e),s(t,[{key:"addNamespaces",value:function e(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function e(t){var n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,s=[t,n];return r&&"string"!=typeof r&&(s=s.concat(r)),r&&"string"==typeof r&&(s=s.concat(o?r.split(o):r)),t.indexOf(".")>-1&&(s=t.split(".")),w(this.data,s)}},{key:"addResource",value:function e(t,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},s=this.options.keySeparator;void 0===s&&(s=".");var a=[t,n];r&&(a=a.concat(s?r.split(s):r)),t.indexOf(".")>-1&&(i=n,n=(a=t.split("."))[1]),this.addNamespaces(n),y(this.data,a,i),o.silent||this.emit("added",t,n,r,i)}},{key:"addResources",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in r)"string"!=typeof r[o]&&"[object Array]"!==Object.prototype.toString.apply(r[o])||this.addResource(t,n,o,r[o],{silent:!0});i.silent||this.emit("added",t,n,r)}},{key:"addResourceBundle",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},u=[t,n];t.indexOf(".")>-1&&(o=r,r=n,n=(u=t.split("."))[1]),this.addNamespaces(n);var f=w(this.data,u)||{};o?j(f,r,s):f=i({},f,r),y(this.data,u,f),a.silent||this.emit("added",t,n,r)}},{key:"removeResourceBundle",value:function e(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}},{key:"hasResourceBundle",value:function e(t,n){return void 0!==this.getResource(t,n)}},{key:"getResourceBundle",value:function e(t,n){return n||(n=this.options.defaultNS),"v1"===this.options.compatibilityAPI?i({},{},this.getResource(t,n)):this.getResource(t,n)}},{key:"getDataByLanguage",value:function e(t){return this.data[t]}},{key:"toJSON",value:function e(){return this.data}}]),t}(p),C={processors:{},addPostProcessor:function e(t){this.processors[t.name]=t},handle:function e(t,n,r,i,o){var s=this;return t.forEach((function(e){s.processors[e]&&(n=s.processors[e].process(n,r,i,o))})),n}},M={},O=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o(this,t),n=a(this,u(t).call(this)),E&&p.call(f(n)),m(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,f(n)),n.options=r,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n.logger=d.create("translator"),n}return c(t,e),s(t,[{key:"changeLanguage",value:function e(t){t&&(this.language=t)}},{key:"exists",value:function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},r=this.resolve(t,n);return r&&void 0!==r.res}},{key:"extractFromKey",value:function e(t,n){var r=void 0!==n.nsSeparator?n.nsSeparator:this.options.nsSeparator;void 0===r&&(r=":");var i=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,o=n.ns||this.options.defaultNS;if(r&&t.indexOf(r)>-1){var s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:o};var a=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),t=a.join(i)}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}}},{key:"translate",value:function e(n,o,s){var a=this;if("object"!==r(o)&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),o||(o={}),null==n)return"";Array.isArray(n)||(n=[String(n)]);var u=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,f=this.extractFromKey(n[n.length-1],o),c=f.key,l=f.namespaces,h=l[l.length-1],d=o.lng||this.language,p=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d&&"cimode"===d.toLowerCase()){if(p){var g=o.nsSeparator||this.options.nsSeparator;return h+g+c}return c}var b=this.resolve(n,o),m=b&&b.res,v=b&&b.usedKey||c,y=b&&b.exactUsedKey||c,_=Object.prototype.toString.apply(m),w=["[object Number]","[object Function]","[object RegExp]"],k=void 0!==o.joinArrays?o.joinArrays:this.options.joinArrays,j=!this.i18nFormat||this.i18nFormat.handleAsObject,x="string"!=typeof m&&"boolean"!=typeof m&&"number"!=typeof m;if(j&&m&&x&&w.indexOf(_)<0&&("string"!=typeof k||"[object Array]"!==_)){if(!o.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,m,o):"key '".concat(c," (").concat(this.language,")' returned an object instead of string.");if(u){var S="[object Array]"===_,D=S?[]:{},E=S?y:v;for(var A in m)if(Object.prototype.hasOwnProperty.call(m,A)){var C="".concat(E).concat(u).concat(A);D[A]=this.translate(C,i({},o,{joinArrays:!1,ns:l})),D[A]===C&&(D[A]=m[A])}m=D}}else if(j&&"string"==typeof k&&"[object Array]"===_)(m=m.join(k))&&(m=this.extendTranslation(m,n,o,s));else{var M=!1,O=!1,T=void 0!==o.count&&"string"!=typeof o.count,B=t.hasDefaultValue(o),I=T?this.pluralResolver.getSuffix(d,o.count):"",R=o["defaultValue".concat(I)]||o.defaultValue;!this.isValidLookup(m)&&B&&(M=!0,m=R),this.isValidLookup(m)||(O=!0,m=c);var F=B&&R!==m&&this.options.updateMissing;if(O||M||F){if(this.logger.log(F?"updateKey":"missingKey",d,h,c,F?R:m),u){var P=this.resolve(c,i({},o,{keySeparator:!1}));P&&P.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var N=[],L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if("fallback"===this.options.saveMissingTo&&L&&L[0])for(var z=0;z1&&void 0!==arguments[1]?arguments[1]:{},i,o,s,a,u;return"string"==typeof t&&(t=[t]),t.forEach((function(e){if(!n.isValidLookup(i)){var t=n.extractFromKey(e,r),f=t.key;o=f;var c=t.namespaces;n.options.fallbackNS&&(c=c.concat(n.options.fallbackNS));var l=void 0!==r.count&&"string"!=typeof r.count,h=void 0!==r.context&&"string"==typeof r.context&&""!==r.context,d=r.lngs?r.lngs:n.languageUtils.toResolveHierarchy(r.lng||n.language,r.fallbackLng);c.forEach((function(e){n.isValidLookup(i)||(u=e,!M["".concat(d[0],"-").concat(e)]&&n.utils&&n.utils.hasLoadedNamespace&&!n.utils.hasLoadedNamespace(u)&&(M["".concat(d[0],"-").concat(e)]=!0,n.logger.warn('key "'.concat(o,'" for languages "').concat(d.join(", "),'" won\'t get resolved as namespace "').concat(u,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),d.forEach((function(t){if(!n.isValidLookup(i)){a=t;var o=f,u=[o],c,d;if(n.i18nFormat&&n.i18nFormat.addLookupKeys)n.i18nFormat.addLookupKeys(u,f,t,e,r);else l&&(c=n.pluralResolver.getSuffix(t,r.count)),l&&h&&u.push(o+c),h&&u.push(o+="".concat(n.options.contextSeparator).concat(r.context)),l&&u.push(o+=c);for(;d=u.pop();)n.isValidLookup(i)||(s=d,i=n.getResource(t,e,d,r))}})))}))}})),{res:i,usedKey:o,exactUsedKey:s,usedLng:a,usedNS:u}}},{key:"isValidLookup",value:function e(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}},{key:"getResource",value:function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}}],[{key:"hasDefaultValue",value:function e(t){var n="defaultValue";for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&void 0!==t[r])return!0;return!1}}]),t}(p);function T(e){return e.charAt(0).toUpperCase()+e.slice(1)}var B=function(){function e(t){o(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=d.create("languageUtils")}return s(e,[{key:"getScriptPartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return null;var n=t.split("-");return 2===n.length?null:(n.pop(),"x"===n[n.length-1].toLowerCase()?null:this.formatLanguageCode(n.join("-")))}},{key:"getLanguagePartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return t;var n=t.split("-");return this.formatLanguageCode(n[0])}},{key:"formatLanguageCode",value:function e(t){if("string"==typeof t&&t.indexOf("-")>-1){var n=["hans","hant","latn","cyrl","cans","mong","arab"],r=t.split("-");return this.options.lowerCaseLng?r=r.map((function(e){return e.toLowerCase()})):2===r.length?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase()))):3===r.length&&(r[0]=r[0].toLowerCase(),2===r[1].length&&(r[1]=r[1].toUpperCase()),"sgn"!==r[0]&&2===r[2].length&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=T(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=T(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function e(t){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(t)}},{key:"isSupportedCode",value:function e(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}},{key:"getBestMatchFromCodes",value:function e(t){var n=this,r;return t?(t.forEach((function(e){if(!r){var t=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(t)||(r=t)}})),!r&&this.options.supportedLngs&&t.forEach((function(e){if(!r){var t=n.getLanguagePartFromCode(e);if(n.isSupportedCode(t))return r=t;r=n.options.supportedLngs.find((function(e){if(0===e.indexOf(t))return e}))}})),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r):null}},{key:"getFallbackCodes",value:function e(t,n){if(!t)return[];if("function"==typeof t&&(t=t(n)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!n)return t.default||[];var r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}},{key:"toResolveHierarchy",value:function e(t,n){var r=this,i=this.getFallbackCodes(n||this.options.fallbackLng||[],t),o=[],s=function e(t){t&&(r.isSupportedCode(t)?o.push(t):r.logger.warn("rejecting language code not found in supportedLngs: ".concat(t)))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&s(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&s(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&s(this.getLanguagePartFromCode(t))):"string"==typeof t&&s(this.formatLanguageCode(t)),i.forEach((function(e){o.indexOf(e)<0&&s(r.formatLanguageCode(e))})),o}}]),e}(),I=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],R={1:function e(t){return Number(t>1)},2:function e(t){return Number(1!=t)},3:function e(t){return 0},4:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function e(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function e(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function e(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function e(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function e(t){return Number(t>=2)},10:function e(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function e(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function e(t){return Number(t%10!=1||t%100==11)},13:function e(t){return Number(0!==t)},14:function e(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function e(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function e(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function e(t){return Number(0==t?0:1==t?1:2)},19:function e(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function e(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function e(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function e(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}};function F(){var e={};return I.forEach((function(t){t.lngs.forEach((function(n){e[n]={numbers:t.nr,plurals:R[t.fc]}}))})),e}var P=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.languageUtils=t,this.options=n,this.logger=d.create("pluralResolver"),this.rules=F()}return s(e,[{key:"addRule",value:function e(t,n){this.rules[t]=n}},{key:"getRule",value:function e(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function e(t){var n=this.getRule(t);return n&&n.numbers.length>1}},{key:"getPluralFormsOfKey",value:function e(t,n){return this.getSuffixes(t).map((function(e){return n+e}))}},{key:"getSuffixes",value:function e(t){var n=this,r=this.getRule(t);return r?r.numbers.map((function(e){return n.getSuffix(t,e)})):[]}},{key:"getSuffix",value:function e(t,n){var r=this,i=this.getRule(t);if(i){var o=i.noAbs?i.plurals(n):i.plurals(Math.abs(n)),s=i.numbers[o];this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]&&(2===s?s="plural":1===s&&(s=""));var a=function e(){return r.options.prepend&&s.toString()?r.options.prepend+s.toString():s.toString()};return"v1"===this.options.compatibilityJSON?1===s?"":"number"==typeof s?"_plural_".concat(s.toString()):a():"v2"===this.options.compatibilityJSON?a():this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),""}}]),e}(),N=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o(this,e),this.logger=d.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return s(e,[{key:"init",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escape=void 0!==n.escape?n.escape:D,this.escapeValue=void 0===n.escapeValue||n.escapeValue,this.useRawValueToEscape=void 0!==n.useRawValueToEscape&&n.useRawValueToEscape,this.prefix=n.prefix?x(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?x(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?x(n.nestingPrefix):n.nestingPrefixEscaped||x("$t("),this.nestingSuffix=n.nestingSuffix?x(n.nestingSuffix):n.nestingSuffixEscaped||x(")"),this.nestingOptionsSeparator=n.nestingOptionsSeparator?n.nestingOptionsSeparator:n.nestingOptionsSeparator||",",this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.alwaysFormat=void 0!==n.alwaysFormat&&n.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function e(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function e(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,"g");var n="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(n,"g");var r="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(r,"g")}},{key:"interpolate",value:function e(t,n,r,i){var o=this,s,a,u,f=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var l=function e(t){if(t.indexOf(o.formatSeparator)<0){var s=k(n,f,t);return o.alwaysFormat?o.format(s,void 0,r):s}var a=t.split(o.formatSeparator),u=a.shift().trim(),c=a.join(o.formatSeparator).trim();return o.format(k(n,f,u),c,r,i)};this.resetRegExp();var h=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&i.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,p;return[{regex:this.regexpUnescape,safeValue:function e(t){return c(t)}},{regex:this.regexp,safeValue:function e(t){return o.escapeValue?c(o.escape(t)):c(t)}}].forEach((function(e){for(u=0;s=e.regex.exec(t);){if(void 0===(a=l(s[1].trim())))if("function"==typeof h){var n=h(t,s,i);a="string"==typeof n?n:""}else{if(d){a=s[0];continue}o.logger.warn("missed to pass in variable ".concat(s[1]," for interpolating ").concat(t)),a=""}else"string"==typeof a||o.useRawValueToEscape||(a=b(a));if(t=t.replace(s[0],e.safeValue(a)),e.regex.lastIndex=0,++u>=o.maxReplaces)break}})),t}},{key:"nest",value:function e(t,n){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s,a,u=i({},o);function f(e,t){var n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;var r=e.split(new RegExp("".concat(n,"[ ]*{"))),o="{".concat(r[1]);e=r[0],o=(o=this.interpolate(o,u)).replace(/'/g,'"');try{u=JSON.parse(o),t&&(u=i({},t,u))}catch(s){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),s),"".concat(e).concat(n).concat(o)}return delete u.defaultValue,e}for(u.applyPostProcessor=!1,delete u.defaultValue;s=this.nestingRegexp.exec(t);){var c=[],l=!1;if(s[0].includes(this.formatSeparator)&&!/{.*}/.test(s[1])){var h=s[1].split(this.formatSeparator).map((function(e){return e.trim()}));s[1]=h.shift(),c=h,l=!0}if((a=n(f.call(this,s[1].trim(),u),u))&&s[0]===t&&"string"!=typeof a)return a;"string"!=typeof a&&(a=b(a)),a||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(t)),a=""),l&&(a=c.reduce((function(e,t){return r.format(e,t,o.lng,o)}),a.trim())),t=t.replace(s[0],a),this.regexp.lastIndex=0}return t}}]),e}();function L(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}var z=function(e){function t(e,n,r){var i,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return o(this,t),i=a(this,u(t).call(this)),E&&p.call(f(i)),i.backend=e,i.store=n,i.services=r,i.languageUtils=r.languageUtils,i.options=s,i.logger=d.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(r,s.backend,s),i}return c(t,e),s(t,[{key:"queueLoad",value:function e(t,n,r,i){var o=this,s=[],a=[],u=[],f=[];return t.forEach((function(e){var t=!0;n.forEach((function(n){var i="".concat(e,"|").concat(n);!r.reload&&o.store.hasResourceBundle(e,n)?o.state[i]=2:o.state[i]<0||(1===o.state[i]?a.indexOf(i)<0&&a.push(i):(o.state[i]=1,t=!1,a.indexOf(i)<0&&a.push(i),s.indexOf(i)<0&&s.push(i),f.indexOf(n)<0&&f.push(n)))})),t||u.push(e)})),(s.length||a.length)&&this.queue.push({pending:a,loaded:{},errors:[],callback:i}),{toLoad:s,pending:a,toLoadLanguages:u,toLoadNamespaces:f}}},{key:"loaded",value:function e(t,n,r){var i=t.split("|"),o=i[0],s=i[1];n&&this.emit("failedLoading",o,s,n),r&&this.store.addResourceBundle(o,s,r),this.state[t]=n?-1:2;var e={};this.queue.forEach((function(r){_(r.loaded,[o],s),L(r.pending,t),n&&r.errors.push(n),0!==r.pending.length||r.done||(Object.keys(r.loaded).forEach((function(t){e[t]||(e[t]=[]),r.loaded[t].length&&r.loaded[t].forEach((function(n){e[t].indexOf(n)<0&&e[t].push(n)}))})),r.done=!0,r.errors.length?r.callback(r.errors):r.callback())})),this.emit("loaded",e),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function e(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[r](t,n,(function(e,u){e&&u&&o<5?setTimeout((function(){i.read.call(i,t,n,r,o+1,2*s,a)}),s):a(e,u)})):a(null,{})}},{key:"prepareLoading",value:function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof n&&(n=[n]);var s=this.queueLoad(t,n,i,o);if(!s.toLoad.length)return s.pending.length||o(),null;s.toLoad.forEach((function(e){r.loadOne(e)}))}},{key:"load",value:function e(t,n,r){this.prepareLoading(t,n,{},r)}},{key:"reload",value:function e(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}},{key:"loadOne",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=t.split("|"),o=i[0],s=i[1];this.read(o,s,"read",void 0,void 0,(function(e,i){e&&n.logger.warn("".concat(r,"loading namespace ").concat(s," for language ").concat(o," failed"),e),!e&&i&&n.logger.log("".concat(r,"loaded namespace ").concat(s," for language ").concat(o),i),n.loaded(t,e,i)}))}},{key:"saveMissing",value:function e(t,n,r,o,s){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)?this.logger.warn('did not save key "'.concat(r,'" as the namespace "').concat(n,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=r&&""!==r&&(this.backend&&this.backend.create&&this.backend.create(t,n,r,o,null,i({},a,{isUpdate:s})),t&&t[0]&&this.store.addResource(t[0],n,r,o))}}]),t}(p);function U(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function e(t){var n={};if("object"===r(t[1])&&(n=t[1]),"string"==typeof t[1]&&(n.defaultValue=t[1]),"string"==typeof t[2]&&(n.tDescription=t[2]),"object"===r(t[2])||"object"===r(t[3])){var i=t[3]||t[2];Object.keys(i).forEach((function(e){n[e]=i[e]}))}return n},interpolation:{escapeValue:!0,format:function e(t,n,r,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function q(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function $(){}var H,W=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(o(this,t),e=a(this,u(t).call(this)),E&&p.call(f(e)),e.options=q(n),e.services={},e.logger=d,e.modules={external:[]},r&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,r),a(e,f(e));setTimeout((function(){e.init(n,r)}),0)}return e}return c(t,e),s(t,[{key:"init",value:function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;function o(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof n&&(r=n,n={}),n.whitelist&&!n.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),n.nonExplicitWhitelist&&!n.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=i({},U(),this.options,q(n)),this.format=this.options.interpolation.format,r||(r=$),!this.options.isClone){this.modules.logger?d.init(o(this.modules.logger),this.options):d.init(null,this.options);var s=new B(this.options);this.store=new A(this.options.resources,this.options);var a=this.services;a.logger=d,a.resourceStore=this.store,a.languageUtils=s,a.pluralResolver=new P(s,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new N(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new z(o(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1?n-1:0),i=1;i0&&"dev"!==u[0]&&(this.options.lng=u[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var f=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];f.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments)}}));var c=["addResource","addResources","addResourceBundle","removeResourceBundle"];c.forEach((function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments),t}}));var l=g(),h=function e(){var n=function e(n,i){t.isInitialized&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(i),r(n,i)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return n(null,t.t.bind(t));t.changeLanguage(t.options.lng,n)};return this.options.resources||!this.options.initImmediate?h():setTimeout(h,0),l}},{key:"loadResources",value:function e(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,i=r,o="string"==typeof t?t:this.language;if("function"==typeof t&&(i=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return i();var s=[],a=function e(t){var r;t&&n.services.languageUtils.toResolveHierarchy(t).forEach((function(e){s.indexOf(e)<0&&s.push(e)}))};if(o)a(o);else{var u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.forEach((function(e){return a(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return a(e)})),this.services.backendConnector.load(s,this.options.ns,i)}else i(null)}},{key:"reloadResources",value:function e(t,n,r){var i=g();return t||(t=this.languages),n||(n=this.options.ns),r||(r=$),this.services.backendConnector.reload(t,n,(function(e){i.resolve(),r(e)})),i}},{key:"use",value:function e(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&C.addPostProcessor(t),"3rdParty"===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function e(t,n){var r=this;this.isLanguageChangingTo=t;var i=g();this.emit("languageChanging",t);var o=function e(t,o){o?(r.language=o,r.languages=r.services.languageUtils.toResolveHierarchy(o),r.translator.changeLanguage(o),r.isLanguageChangingTo=void 0,r.emit("languageChanged",o),r.logger.log("languageChanged",o)):r.isLanguageChangingTo=void 0,i.resolve((function(){return r.t.apply(r,arguments)})),n&&n(t,(function(){return r.t.apply(r,arguments)}))},s=function e(t){var n="string"==typeof t?t:r.services.languageUtils.getBestMatchFromCodes(t);n&&(r.language||(r.language=n,r.languages=r.services.languageUtils.toResolveHierarchy(n)),r.translator.language||r.translator.changeLanguage(n),r.services.languageDetector&&r.services.languageDetector.cacheUserLanguage(n)),r.loadResources(n,(function(e){o(e,n)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(s):s(t):s(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function e(t,n){var o=this,s=function e(t,n){var s;if("object"!==r(n)){for(var a=arguments.length,u=new Array(a>2?a-2:0),f=2;f1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.languages[0],o=!!this.options&&this.options.fallbackLng,s=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var a=function e(t,r){var i=n.services.backendConnector.state["".concat(t,"|").concat(r)];return-1===i||2===i};if(r.precheck){var u=r.precheck(this,a);if(void 0!==u)return u}return!!this.hasResourceBundle(i,t)||(!this.services.backendConnector.backend||!(!a(i,t)||o&&!a(s,t)))}},{key:"loadNamespaces",value:function e(t,n){var r=this,i=g();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((function(e){r.options.ns.indexOf(e)<0&&r.options.ns.push(e)})),this.loadResources((function(e){i.resolve(),n&&n(e)})),i):(n&&n(),Promise.resolve())}},{key:"loadLanguages",value:function e(t,n){var r=g();"string"==typeof t&&(t=[t]);var i=this.options.preload||[],o=t.filter((function(e){return i.indexOf(e)<0}));return o.length?(this.options.preload=i.concat(o),this.loadResources((function(e){r.resolve(),n&&n(e)})),r):(n&&n(),Promise.resolve())}},{key:"dir",value:function e(t){return t||(t=this.languages&&this.languages.length>0?this.languages[0]:this.language),t?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr":"rtl";var n}},{key:"createInstance",value:function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new t(n,r)}},{key:"cloneInstance",value:function e(){var n=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$,s=i({},this.options,r,{isClone:!0}),a=new t(s),u=["store","services","language"];return u.forEach((function(e){a[e]=n[e]})),a.services=i({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new O(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;rr,root:()=>i,ArrayProto:()=>o,ObjProto:()=>s,SymbolProto:()=>a,push:()=>u,slice:()=>f,toString:()=>c,hasOwnProperty:()=>l,supportsArrayBuffer:()=>h,supportsDataView:()=>d,nativeIsArray:()=>p,nativeKeys:()=>g,nativeCreate:()=>b,nativeIsView:()=>m,_isNaN:()=>v,_isFinite:()=>y,hasEnumBug:()=>_,nonEnumerableProps:()=>w,MAX_ARRAY_INDEX:()=>k});var r="1.13.4",i="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},o=Array.prototype,s=Object.prototype,a="undefined"!=typeof Symbol?Symbol.prototype:null,u=o.push,f=o.slice,c=s.toString,l=s.hasOwnProperty,h="undefined"!=typeof ArrayBuffer,d="undefined"!=typeof DataView,p=Array.isArray,g=Object.keys,b=Object.create,m=h&&ArrayBuffer.isView,v=isNaN,y=isFinite,_=!{toString:null}.propertyIsEnumerable("toString"),w=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],k=Math.pow(2,53)-1},"restArguments.js":function e(t,n,e){function r(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;ir})},"isObject.js":function e(t,n,e){function r(e){var t=typeof e;return"function"===t||"object"===t&&!!e}e.export({default:()=>r})},"isNull.js":function e(t,n,e){function r(e){return null===e}e.export({default:()=>r})},"isUndefined.js":function e(t,n,e){function r(e){return void 0===e}e.export({default:()=>r})},"isBoolean.js":function e(t,n,e){let r;function i(e){return!0===e||!1===e||"[object Boolean]"===r.call(e)}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isElement.js":function e(t,n,e){function r(e){return!(!e||1!==e.nodeType)}e.export({default:()=>r})},"isString.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("String"))},"_tagTester.js":function e(t,n,e){let r;function i(e){var t="[object "+e+"]";return function(e){return r.call(e)===t}}e.export({default:()=>i}),e.link("./_setup.js",{toString(e){r=e}},0)},"isNumber.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Number"))},"isDate.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Date"))},"isRegExp.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("RegExp"))},"isError.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Error"))},"isSymbol.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Symbol"))},"isArrayBuffer.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("ArrayBuffer"))},"isDataView.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isArrayBuffer.js",{default(e){o=e}},2),e.link("./_stringTagBug.js",{hasStringTagBug(e){s=e}},3);var a=r("DataView");function u(e){return null!=e&&i(e.getInt8)&&o(e.buffer)}e.exportDefault(s?u:a)},"isFunction.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_setup.js",{root(e){i=e}},1);var o=r("Function"),s=i.document&&i.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof s&&(o=function(e){return"function"==typeof e||!1}),e.exportDefault(o)},"_stringTagBug.js":function e(t,n,e){let r,i;e.export({hasStringTagBug:()=>o,isIE11:()=>s}),e.link("./_setup.js",{supportsDataView(e){r=e}},0),e.link("./_hasObjectTag.js",{default(e){i=e}},1);var o=r&&i(new DataView(new ArrayBuffer(8))),s="undefined"!=typeof Map&&i(new Map)},"_hasObjectTag.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("Object"))},"isArray.js":function e(t,n,e){let r,i;e.link("./_setup.js",{nativeIsArray(e){r=e}},0),e.link("./_tagTester.js",{default(e){i=e}},1),e.exportDefault(r||i("Array"))},"isArguments.js":function e(t,n,e){let r,i;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1);var o=r("Arguments");!function(){o(arguments)||(o=function(e){return i(e,"callee")})}(),e.exportDefault(o)},"_has.js":function e(t,n,e){let r;function i(e,t){return null!=e&&r.call(e,t)}e.export({default:()=>i}),e.link("./_setup.js",{hasOwnProperty(e){r=e}},0)},"isFinite.js":function e(t,n,e){let r,i;function o(e){return!i(e)&&r(e)&&!isNaN(parseFloat(e))}e.export({default:()=>o}),e.link("./_setup.js",{_isFinite(e){r=e}},0),e.link("./isSymbol.js",{default(e){i=e}},1)},"isNaN.js":function e(t,n,e){let r,i;function o(e){return i(e)&&r(e)}e.export({default:()=>o}),e.link("./_setup.js",{_isNaN(e){r=e}},0),e.link("./isNumber.js",{default(e){i=e}},1)},"isTypedArray.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./_setup.js",{supportsArrayBuffer(e){r=e},nativeIsView(e){i=e},toString(e){o=e}},0),e.link("./isDataView.js",{default(e){s=e}},1),e.link("./constant.js",{default(e){a=e}},2),e.link("./_isBufferLike.js",{default(e){u=e}},3);var f=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function c(e){return i?i(e)&&!s(e):u(e)&&f.test(o.call(e))}e.exportDefault(r?c:a(!1))},"constant.js":function e(t,n,e){function r(e){return function(){return e}}e.export({default:()=>r})},"_isBufferLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getByteLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createSizePropertyCheck.js":function e(t,n,e){let r;function i(e){return function(t){var n=e(t);return"number"==typeof n&&n>=0&&n<=r}}e.export({default:()=>i}),e.link("./_setup.js",{MAX_ARRAY_INDEX(e){r=e}},0)},"_getByteLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("byteLength"))},"_shallowProperty.js":function e(t,n,e){function r(e){return function(t){return null==t?void 0:t[e]}}e.export({default:()=>r})},"isEmpty.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(null==e)return!0;var t=r(e);return"number"==typeof t&&(i(e)||o(e)||s(e))?0===t:0===r(a(e))}e.export({default:()=>u}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3),e.link("./keys.js",{default(e){a=e}},4)},"_getLength.js":function e(t,n,e){let r;e.link("./_shallowProperty.js",{default(e){r=e}},0),e.exportDefault(r("length"))},"keys.js":function e(t,n,e){let r,i,o,s,a;function u(e){if(!r(e))return[];if(i)return i(e);var t=[];for(var n in e)s(e,n)&&t.push(n);return o&&a(e,t),t}e.export({default:()=>u}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeKeys(e){i=e},hasEnumBug(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2),e.link("./_collectNonEnumProps.js",{default(e){a=e}},3)},"_collectNonEnumProps.js":function e(t,n,e){let r,i,o,s;function a(e){for(var t={},n=e.length,r=0;ru}),e.link("./_setup.js",{nonEnumerableProps(e){r=e},ObjProto(e){i=e}},0),e.link("./isFunction.js",{default(e){o=e}},1),e.link("./_has.js",{default(e){s=e}},2)},"isMatch.js":function e(t,n,e){let r;function i(e,t){var n=r(t),i=n.length;if(null==e)return!i;for(var o=Object(e),s=0;si}),e.link("./keys.js",{default(e){r=e}},0)},"isEqual.js":function e(t,n,e){let r,i,o,s,a,u,f,c,l,h,d;e.export({default:()=>m}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_setup.js",{toString(e){i=e},SymbolProto(e){o=e}},1),e.link("./_getByteLength.js",{default(e){s=e}},2),e.link("./isTypedArray.js",{default(e){a=e}},3),e.link("./isFunction.js",{default(e){u=e}},4),e.link("./_stringTagBug.js",{hasStringTagBug(e){f=e}},5),e.link("./isDataView.js",{default(e){c=e}},6),e.link("./keys.js",{default(e){l=e}},7),e.link("./_has.js",{default(e){h=e}},8),e.link("./_toBufferView.js",{default(e){d=e}},9);var p="[object DataView]";function g(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var i=typeof e;return("function"===i||"object"===i||"object"==typeof t)&&b(e,t,n,r)}function b(e,t,n,m){e instanceof r&&(e=e._wrapped),t instanceof r&&(t=t._wrapped);var v=i.call(e);if(v!==i.call(t))return!1;if(f&&"[object Object]"==v&&c(e)){if(!c(t))return!1;v=p}switch(v){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return o.valueOf.call(e)===o.valueOf.call(t);case"[object ArrayBuffer]":case p:return b(d(e),d(t),n,m)}var y="[object Array]"===v;if(!y&&a(e)){var _;if(s(e)!==s(t))return!1;if(e.buffer===t.buffer&&e.byteOffset===t.byteOffset)return!0;y=!0}if(!y){if("object"!=typeof e||"object"!=typeof t)return!1;var w=e.constructor,k=t.constructor;if(w!==k&&!(u(w)&&w instanceof w&&u(k)&&k instanceof k)&&"constructor"in e&&"constructor"in t)return!1}m=m||[];for(var j=(n=n||[]).length;j--;)if(n[j]===e)return m[j]===t;if(n.push(e),m.push(t),y){if((j=e.length)!==t.length)return!1;for(;j--;)if(!g(e[j],t[j],n,m))return!1}else{var x=l(e),S;if(j=x.length,l(t).length!==j)return!1;for(;j--;)if(S=x[j],!h(t,S)||!g(e[S],t[S],n,m))return!1}return n.pop(),m.pop(),!0}function m(e,t){return g(e,t)}},"underscore.js":function e(t,n,e){let r;function i(e){return e instanceof i?e:this instanceof i?void(this._wrapped=e):new i(e)}e.export({default:()=>i}),e.link("./_setup.js",{VERSION(e){r=e}},0),i.VERSION=r,i.prototype.value=function(){return this._wrapped},i.prototype.valueOf=i.prototype.toJSON=i.prototype.value,i.prototype.toString=function(){return String(this._wrapped)}},"_toBufferView.js":function e(t,n,e){let r;function i(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,r(e))}e.export({default:()=>i}),e.link("./_getByteLength.js",{default(e){r=e}},0)},"isMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},mapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Map"))},"_methodFingerprint.js":function e(t,n,e){let r,i,o;function s(e){var t=r(e);return function(n){if(null==n)return!1;var s=o(n);if(r(s))return!1;for(var u=0;us,mapMethods:()=>l,weakMapMethods:()=>h,setMethods:()=>d}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./allKeys.js",{default(e){o=e}},2);var a="forEach",u="has",f=["clear","delete"],c=["get","has","set"],l=f.concat(a,c),h=f.concat(c),d=["add"].concat(f,a,"has")},"allKeys.js":function e(t,n,e){let r,i,o;function s(e){if(!r(e))return[];var t=[];for(var n in e)t.push(n);return i&&o(e,t),t}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{hasEnumBug(e){i=e}},1),e.link("./_collectNonEnumProps.js",{default(e){o=e}},2)},"isWeakMap.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},weakMapMethods(e){s=e}},2),e.exportDefault(i?o(s):r("WeakMap"))},"isSet.js":function e(t,n,e){let r,i,o,s;e.link("./_tagTester.js",{default(e){r=e}},0),e.link("./_stringTagBug.js",{isIE11(e){i=e}},1),e.link("./_methodFingerprint.js",{ie11fingerprint(e){o=e},setMethods(e){s=e}},2),e.exportDefault(i?o(s):r("Set"))},"isWeakSet.js":function e(t,n,e){let r;e.link("./_tagTester.js",{default(e){r=e}},0),e.exportDefault(r("WeakSet"))},"values.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"pairs.js":function e(t,n,e){let r;function i(e){for(var t=r(e),n=t.length,i=Array(n),o=0;oi}),e.link("./keys.js",{default(e){r=e}},0)},"invert.js":function e(t,n,e){let r;function i(e){for(var t={},n=r(e),i=0,o=n.length;ii}),e.link("./keys.js",{default(e){r=e}},0)},"functions.js":function e(t,n,e){let r;function i(e){var t=[];for(var n in e)r(e[n])&&t.push(n);return t.sort()}e.export({default:()=>i}),e.link("./isFunction.js",{default(e){r=e}},0)},"extend.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createAssigner.js":function e(t,n,e){function r(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var i=1;ir})},"extendOwn.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.exportDefault(r(i))},"defaults.js":function e(t,n,e){let r,i;e.link("./_createAssigner.js",{default(e){r=e}},0),e.link("./allKeys.js",{default(e){i=e}},1),e.exportDefault(r(i,!0))},"create.js":function e(t,n,e){let r,i;function o(e,t){var n=r(e);return t&&i(n,t),n}e.export({default:()=>o}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./extendOwn.js",{default(e){i=e}},1)},"_baseCreate.js":function e(t,n,e){let r,i;function o(){return function(){}}function s(e){if(!r(e))return{};if(i)return i(e);var t=function(){};t.prototype=e;var n=new t;return t.prototype=null,n}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./_setup.js",{nativeCreate(e){i=e}},1)},"clone.js":function e(t,n,e){let r,i,o;function s(e){return r(e)?i(e)?e.slice():o({},e):e}e.export({default:()=>s}),e.link("./isObject.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),e.link("./extend.js",{default(e){o=e}},2)},"tap.js":function e(t,n,e){function r(e,t){return t(e),e}e.export({default:()=>r})},"get.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=i(e,r(t));return o(s)?n:s}e.export({default:()=>s}),e.link("./_toPath.js",{default(e){r=e}},0),e.link("./_deepGet.js",{default(e){i=e}},1),e.link("./isUndefined.js",{default(e){o=e}},2)},"_toPath.js":function e(t,n,e){let r;function i(e){return r.toPath(e)}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./toPath.js")},"toPath.js":function e(t,n,e){let r,i;function o(e){return i(e)?e:[e]}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./isArray.js",{default(e){i=e}},1),r.toPath=o},"_deepGet.js":function e(t,n,e){function r(e,t){for(var n=t.length,r=0;rr})},"has.js":function e(t,n,e){let r,i;function o(e,t){for(var n=(t=i(t)).length,o=0;oo}),e.link("./_has.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"mapObject.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s=o.length,a={},u=0;uo}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"_cb.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r.iteratee!==o?r.iteratee(e,t):i(e,t,n)}e.export({default:()=>s}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),e.link("./iteratee.js",{default(e){o=e}},2)},"_baseIteratee.js":function e(t,n,e){let r,i,o,s,a,u,f;function c(e,t,n){return null==e?r:i(e)?f(e,t,n):o(e)&&!s(e)?a(e):u(e)}e.export({default:()=>c}),e.link("./identity.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./isObject.js",{default(e){o=e}},2),e.link("./isArray.js",{default(e){s=e}},3),e.link("./matcher.js",{default(e){a=e}},4),e.link("./property.js",{default(e){u=e}},5),e.link("./_optimizeCb.js",{default(e){f=e}},6)},"identity.js":function e(t,n,e){function r(e){return e}e.export({default:()=>r})},"matcher.js":function e(t,n,e){let r,i;function o(e){return e=r({},e),function(t){return i(t,e)}}e.export({default:()=>o}),e.link("./extendOwn.js",{default(e){r=e}},0),e.link("./isMatch.js",{default(e){i=e}},1)},"property.js":function e(t,n,e){let r,i;function o(e){return e=i(e),function(t){return r(t,e)}}e.export({default:()=>o}),e.link("./_deepGet.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"_optimizeCb.js":function e(t,n,e){function r(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}}e.export({default:()=>r})},"iteratee.js":function e(t,n,e){let r,i;function o(e,t){return i(e,t,1/0)}e.export({default:()=>o}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./_baseIteratee.js",{default(e){i=e}},1),r.iteratee=o},"noop.js":function e(t,n,e){function r(){}e.export({default:()=>r})},"propertyOf.js":function e(t,n,e){let r,i;function o(e){return null==e?r:function(t){return i(e,t)}}e.export({default:()=>o}),e.link("./noop.js",{default(e){r=e}},0),e.link("./get.js",{default(e){i=e}},1)},"times.js":function e(t,n,e){let r;function i(e,t,n){var i=Array(Math.max(0,e));t=r(t,n,1);for(var o=0;oi}),e.link("./_optimizeCb.js",{default(e){r=e}},0)},"random.js":function e(t,n,e){function r(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}e.export({default:()=>r})},"now.js":function e(t,n,e){e.exportDefault(Date.now||function(){return(new Date).getTime()})},"escape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_createEscaper.js":function e(t,n,e){let r;function i(e){var t=function(t){return e[t]},n="(?:"+r(e).join("|")+")",i=RegExp(n),o=RegExp(n,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(o,t):e}}e.export({default:()=>i}),e.link("./keys.js",{default(e){r=e}},0)},"_escapeMap.js":function e(t,n,e){e.exportDefault({"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"})},"unescape.js":function e(t,n,e){let r,i;e.link("./_createEscaper.js",{default(e){r=e}},0),e.link("./_unescapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"_unescapeMap.js":function e(t,n,e){let r,i;e.link("./invert.js",{default(e){r=e}},0),e.link("./_escapeMap.js",{default(e){i=e}},1),e.exportDefault(r(i))},"templateSettings.js":function e(t,n,e){let r;e.link("./underscore.js",{default(e){r=e}},0),e.exportDefault(r.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g})},"template.js":function e(t,n,e){let r,i;e.export({default:()=>c}),e.link("./defaults.js",{default(e){r=e}},0),e.link("./underscore.js",{default(e){i=e}},1),e.link("./templateSettings.js");var o=/(.)^/,s={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},a=/\\|'|\r|\n|\u2028|\u2029/g;function u(e){return"\\"+s[e]}var f=/^\s*(\w|\$)+\s*$/;function c(e,t,n){!t&&n&&(t=n),t=r({},t,i.templateSettings);var s=RegExp([(t.escape||o).source,(t.interpolate||o).source,(t.evaluate||o).source].join("|")+"|$","g"),c=0,l="__p+='";e.replace(s,(function(t,n,r,i,o){return l+=e.slice(c,o).replace(a,u),c=o+t.length,n?l+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?l+="'+\n((__t=("+r+"))==null?'':__t)+\n'":i&&(l+="';\n"+i+"\n__p+='"),t})),l+="';\n";var h=t.variable,d;if(h){if(!f.test(h))throw new Error("variable is not a bare identifier: "+h)}else l="with(obj||{}){\n"+l+"}\n",h="obj";l="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+l+"return __p;\n";try{d=new Function(h,"_",l)}catch(g){throw g.source=l,g}var p=function(e){return d.call(this,e,i)};return p.source="function("+h+"){\n"+l+"}",p}},"result.js":function e(t,n,e){let r,i;function o(e,t,n){var o=(t=i(t)).length;if(!o)return r(n)?n.call(e):n;for(var s=0;so}),e.link("./isFunction.js",{default(e){r=e}},0),e.link("./_toPath.js",{default(e){i=e}},1)},"uniqueId.js":function e(t,n,e){e.export({default:()=>i});var r=0;function i(e){var t=++r+"";return e?e+t:t}},"chain.js":function e(t,n,e){let r;function i(e){var t=r(e);return t._chain=!0,t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"partial.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_executeBound.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2);var s=r((function(e,t){var n=s.placeholder,r=function(){for(var o=0,s=t.length,a=Array(s),u=0;uo}),e.link("./_baseCreate.js",{default(e){r=e}},0),e.link("./isObject.js",{default(e){i=e}},1)},"bind.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_executeBound.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t,n){if(!i(e))throw new TypeError("Bind must be called on a function");var s=r((function(r){return o(e,s,t,this,n.concat(r))}));return s})))},"bindAll.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./bind.js",{default(e){o=e}},2),e.exportDefault(r((function(e,t){var n=(t=i(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=o(e[r],e)}return e})))},"_flatten.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,u){if(u=u||[],t||0===t){if(t<=0)return u.concat(e)}else t=1/0;for(var f=u.length,c=0,l=r(e);c1)a(h,t-1,n,u),f=u.length;else for(var d=0,p=h.length;da}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./isArray.js",{default(e){o=e}},2),e.link("./isArguments.js",{default(e){s=e}},3)},"_isArrayLike.js":function e(t,n,e){let r,i;e.link("./_createSizePropertyCheck.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.exportDefault(r(i))},"memoize.js":function e(t,n,e){let r;function i(e,t){var n=function(i){var o=n.cache,s=""+(t?t.apply(this,arguments):i);return r(o,s)||(o[s]=e.apply(this,arguments)),o[s]};return n.cache={},n}e.export({default:()=>i}),e.link("./_has.js",{default(e){r=e}},0)},"delay.js":function e(t,n,e){let r;e.link("./restArguments.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})))},"defer.js":function e(t,n,e){let r,i,o;e.link("./partial.js",{default(e){r=e}},0),e.link("./delay.js",{default(e){i=e}},1),e.link("./underscore.js",{default(e){o=e}},2),e.exportDefault(r(i,o,1))},"throttle.js":function e(t,n,e){let r;function i(e,t,n){var i,o,s,a,u=0;n||(n={});var f=function(){u=!1===n.leading?0:r(),i=null,a=e.apply(o,s),i||(o=s=null)},c=function(){var c=r();u||!1!==n.leading||(u=c);var l=t-(c-u);return o=this,s=arguments,l<=0||l>t?(i&&(clearTimeout(i),i=null),u=c,a=e.apply(o,s),i||(o=s=null)):i||!1===n.trailing||(i=setTimeout(f,l)),a};return c.cancel=function(){clearTimeout(i),u=0,i=o=s=null},c}e.export({default:()=>i}),e.link("./now.js",{default(e){r=e}},0)},"debounce.js":function e(t,n,e){let r,i;function o(e,t,n){var o,s,a,u,f,c=function(){var r=i()-s;t>r?o=setTimeout(c,t-r):(o=null,n||(u=e.apply(f,a)),o||(a=f=null))},l=r((function(r){return f=this,a=r,s=i(),o||(o=setTimeout(c,t),n&&(u=e.apply(f,a))),u}));return l.cancel=function(){clearTimeout(o),o=a=f=null},l}e.export({default:()=>o}),e.link("./restArguments.js",{default(e){r=e}},0),e.link("./now.js",{default(e){i=e}},1)},"wrap.js":function e(t,n,e){let r;function i(e,t){return r(t,e)}e.export({default:()=>i}),e.link("./partial.js",{default(e){r=e}},0)},"negate.js":function e(t,n,e){function r(e){return function(){return!e.apply(this,arguments)}}e.export({default:()=>r})},"compose.js":function e(t,n,e){function r(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}}e.export({default:()=>r})},"after.js":function e(t,n,e){function r(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}e.export({default:()=>r})},"before.js":function e(t,n,e){function r(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}e.export({default:()=>r})},"once.js":function e(t,n,e){let r,i;e.link("./partial.js",{default(e){r=e}},0),e.link("./before.js",{default(e){i=e}},1),e.exportDefault(r(i,2))},"findKey.js":function e(t,n,e){let r,i;function o(e,t,n){t=r(t,n);for(var o=i(e),s,a=0,u=o.length;ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"findIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createPredicateIndexFinder.js":function e(t,n,e){let r,i;function o(e){return function(t,n,o){n=r(n,o);for(var s=i(t),a=e>0?0:s-1;a>=0&&ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"findLastIndex.js":function e(t,n,e){let r;e.link("./_createPredicateIndexFinder.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"sortedIndex.js":function e(t,n,e){let r,i;function o(e,t,n,o){for(var s=(n=r(n,o,1))(t),a=0,u=i(e);ao}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1)},"indexOf.js":function e(t,n,e){let r,i,o;e.link("./sortedIndex.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./_createIndexFinder.js",{default(e){o=e}},2),e.exportDefault(o(1,i,r))},"_createIndexFinder.js":function e(t,n,e){let r,i,o;function s(e,t,n){return function(s,a,u){var f=0,c=r(s);if("number"==typeof u)e>0?f=u>=0?u:Math.max(u+c,f):c=u>=0?Math.min(u+1,c):u+c+1;else if(n&&u&&c)return s[u=n(s,a)]===a?u:-1;if(a!=a)return(u=t(i.call(s,f,c),o))>=0?u+f:-1;for(u=e>0?f:c-1;u>=0&&us}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isNaN.js",{default(e){o=e}},2)},"lastIndexOf.js":function e(t,n,e){let r,i;e.link("./findLastIndex.js",{default(e){r=e}},0),e.link("./_createIndexFinder.js",{default(e){i=e}},1),e.exportDefault(i(-1,r))},"find.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a=(r(e)?i:o)(e,t,n);if(void 0!==a&&-1!==a)return e[a]}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./findIndex.js",{default(e){i=e}},1),e.link("./findKey.js",{default(e){o=e}},2)},"findWhere.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./find.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"each.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s,a;if(t=r(t,n),i(e))for(s=0,a=e.length;ss}),e.link("./_optimizeCb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"map.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=Array(a),f=0;fs}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"reduce.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(1))},"_createReduce.js":function e(t,n,e){let r,i,o;function s(e){var t=function(t,n,o,s){var a=!r(t)&&i(t),u=(a||t).length,f=e>0?0:u-1;for(s||(o=t[a?a[f]:f],f+=e);f>=0&&f=3;return t(e,o(n,i,4),r,s)}}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2)},"reduceRight.js":function e(t,n,e){let r;e.link("./_createReduce.js",{default(e){r=e}},0),e.exportDefault(r(-1))},"filter.js":function e(t,n,e){let r,i;function o(e,t,n){var o=[];return t=r(t,n),i(e,(function(e,n,r){t(e,n,r)&&o.push(e)})),o}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"reject.js":function e(t,n,e){let r,i,o;function s(e,t,n){return r(e,i(o(t)),n)}e.export({default:()=>s}),e.link("./filter.js",{default(e){r=e}},0),e.link("./negate.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2)},"every.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"some.js":function e(t,n,e){let r,i,o;function s(e,t,n){t=r(t,n);for(var s=!i(e)&&o(e),a=(s||e).length,u=0;us}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./_isArrayLike.js",{default(e){i=e}},1),e.link("./keys.js",{default(e){o=e}},2)},"contains.js":function e(t,n,e){let r,i,o;function s(e,t,n,s){return r(e)||(e=i(e)),("number"!=typeof n||s)&&(n=0),o(e,t,n)>=0}e.export({default:()=>s}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./indexOf.js",{default(e){o=e}},2)},"invoke.js":function e(t,n,e){let r,i,o,s,a;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2),e.link("./_deepGet.js",{default(e){s=e}},3),e.link("./_toPath.js",{default(e){a=e}},4),e.exportDefault(r((function(e,t,n){var r,u;return i(t)?u=t:(t=a(t),r=t.slice(0,-1),t=t[t.length-1]),o(e,(function(e){var i=u;if(!i){if(r&&r.length&&(e=s(e,r)),null==e)return;i=e[t]}return null==i?i:i.apply(e,n)}))})))},"pluck.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./map.js",{default(e){r=e}},0),e.link("./property.js",{default(e){i=e}},1)},"where.js":function e(t,n,e){let r,i;function o(e,t){return r(e,i(t))}e.export({default:()=>o}),e.link("./filter.js",{default(e){r=e}},0),e.link("./matcher.js",{default(e){i=e}},1)},"max.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=-1/0,u=-1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la&&(a=f);else t=o(t,n),s(e,(function(e,n,r){((c=t(e,n,r))>u||c===-1/0&&a===-1/0)&&(a=e,u=c)}));return a}e.export({default:()=>a}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"min.js":function e(t,n,e){let r,i,o,s;function a(e,t,n){var a=1/0,u=1/0,f,c;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var l=0,h=(e=r(e)?e:i(e)).length;la}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_cb.js",{default(e){o=e}},2),e.link("./each.js",{default(e){s=e}},3)},"shuffle.js":function e(t,n,e){let r;function i(e){return r(e,1/0)}e.export({default:()=>i}),e.link("./sample.js",{default(e){r=e}},0)},"sample.js":function e(t,n,e){let r,i,o,s,a;function u(e,t,n){if(null==t||n)return r(e)||(e=i(e)),e[s(e.length-1)];var u=a(e),f=o(u);t=Math.max(Math.min(t,f),0);for(var c=f-1,l=0;lu}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./values.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./random.js",{default(e){s=e}},3),e.link("./toArray.js",{default(e){a=e}},4)},"toArray.js":function e(t,n,e){let r,i,o,s,a,u,f;e.export({default:()=>l}),e.link("./isArray.js",{default(e){r=e}},0),e.link("./_setup.js",{slice(e){i=e}},1),e.link("./isString.js",{default(e){o=e}},2),e.link("./_isArrayLike.js",{default(e){s=e}},3),e.link("./map.js",{default(e){a=e}},4),e.link("./identity.js",{default(e){u=e}},5),e.link("./values.js",{default(e){f=e}},6);var c=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function l(e){return e?r(e)?i.call(e):o(e)?e.match(c):s(e)?a(e,u):f(e):[]}},"sortBy.js":function e(t,n,e){let r,i,o;function s(e,t,n){var s=0;return t=r(t,n),i(o(e,(function(e,n,r){return{value:e,index:s++,criteria:t(e,n,r)}})).sort((function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||void 0===n)return 1;if(ns}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./pluck.js",{default(e){i=e}},1),e.link("./map.js",{default(e){o=e}},2)},"groupBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n].push(t):e[n]=[t]})))},"_group.js":function e(t,n,e){let r,i;function o(e,t){return function(n,o,s){var a=t?[[],[]]:{};return o=r(o,s),i(n,(function(t,r){var i=o(t,r,n);e(a,t,i)})),a}}e.export({default:()=>o}),e.link("./_cb.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1)},"indexBy.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n]=t})))},"countBy.js":function e(t,n,e){let r,i;e.link("./_group.js",{default(e){r=e}},0),e.link("./_has.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t,n){i(e,n)?e[n]++:e[n]=1})))},"partition.js":function e(t,n,e){let r;e.link("./_group.js",{default(e){r=e}},0),e.exportDefault(r((function(e,t,n){e[n?0:1].push(t)}),!0))},"size.js":function e(t,n,e){let r,i;function o(e){return null==e?0:r(e)?e.length:i(e).length}e.export({default:()=>o}),e.link("./_isArrayLike.js",{default(e){r=e}},0),e.link("./keys.js",{default(e){i=e}},1)},"pick.js":function e(t,n,e){let r,i,o,s,a,u;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./_optimizeCb.js",{default(e){o=e}},2),e.link("./allKeys.js",{default(e){s=e}},3),e.link("./_keyInObj.js",{default(e){a=e}},4),e.link("./_flatten.js",{default(e){u=e}},5),e.exportDefault(r((function(e,t){var n={},r=t[0];if(null==e)return n;i(r)?(t.length>1&&(r=o(r,t[1])),t=s(e)):(r=a,t=u(t,!1,!1),e=Object(e));for(var f=0,c=t.length;fr})},"omit.js":function e(t,n,e){let r,i,o,s,a,u,f;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./isFunction.js",{default(e){i=e}},1),e.link("./negate.js",{default(e){o=e}},2),e.link("./map.js",{default(e){s=e}},3),e.link("./_flatten.js",{default(e){a=e}},4),e.link("./contains.js",{default(e){u=e}},5),e.link("./pick.js",{default(e){f=e}},6),e.exportDefault(r((function(e,t){var n=t[0],r;return i(n)?(n=o(n),t.length>1&&(r=t[1])):(t=s(a(t,!1,!1),String),n=function(e,n){return!u(t,n)}),f(e,n,r)})))},"first.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[0]:r(e,e.length-t)}e.export({default:()=>i}),e.link("./initial.js",{default(e){r=e}},0)},"initial.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"last.js":function e(t,n,e){let r;function i(e,t,n){return null==e||e.length<1?null==t||n?void 0:[]:null==t||n?e[e.length-1]:r(e,Math.max(0,e.length-t))}e.export({default:()=>i}),e.link("./rest.js",{default(e){r=e}},0)},"rest.js":function e(t,n,e){let r;function i(e,t,n){return r.call(e,null==t||n?1:t)}e.export({default:()=>i}),e.link("./_setup.js",{slice(e){r=e}},0)},"compact.js":function e(t,n,e){let r;function i(e){return r(e,Boolean)}e.export({default:()=>i}),e.link("./filter.js",{default(e){r=e}},0)},"flatten.js":function e(t,n,e){let r;function i(e,t){return r(e,t,!1)}e.export({default:()=>i}),e.link("./_flatten.js",{default(e){r=e}},0)},"without.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./difference.js",{default(e){i=e}},1),e.exportDefault(r((function(e,t){return i(e,t)})))},"difference.js":function e(t,n,e){let r,i,o,s;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./_flatten.js",{default(e){i=e}},1),e.link("./filter.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3),e.exportDefault(r((function(e,t){return t=i(t,!0,!0),o(e,(function(e){return!s(t,e)}))})))},"uniq.js":function e(t,n,e){let r,i,o,s;function a(e,t,n,a){r(t)||(a=n,n=t,t=!1),null!=n&&(n=i(n,a));for(var u=[],f=[],c=0,l=o(e);ca}),e.link("./isBoolean.js",{default(e){r=e}},0),e.link("./_cb.js",{default(e){i=e}},1),e.link("./_getLength.js",{default(e){o=e}},2),e.link("./contains.js",{default(e){s=e}},3)},"union.js":function e(t,n,e){let r,i,o;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./uniq.js",{default(e){i=e}},1),e.link("./_flatten.js",{default(e){o=e}},2),e.exportDefault(r((function(e){return i(o(e,!0,!0))})))},"intersection.js":function e(t,n,e){let r,i;function o(e){for(var t=[],n=arguments.length,o=0,s=r(e);oo}),e.link("./_getLength.js",{default(e){r=e}},0),e.link("./contains.js",{default(e){i=e}},1)},"unzip.js":function e(t,n,e){let r,i,o;function s(e){for(var t=e&&r(e,i).length||0,n=Array(t),s=0;ss}),e.link("./max.js",{default(e){r=e}},0),e.link("./_getLength.js",{default(e){i=e}},1),e.link("./pluck.js",{default(e){o=e}},2)},"zip.js":function e(t,n,e){let r,i;e.link("./restArguments.js",{default(e){r=e}},0),e.link("./unzip.js",{default(e){i=e}},1),e.exportDefault(r(i))},"object.js":function e(t,n,e){let r;function i(e,t){for(var n={},i=0,o=r(e);ii}),e.link("./_getLength.js",{default(e){r=e}},0)},"range.js":function e(t,n,e){function r(e,t,n){null==t&&(t=e||0,e=0),n||(n=tr})},"chunk.js":function e(t,n,e){let r;function i(e,t){if(null==t||t<1)return[];for(var n=[],i=0,o=e.length;ii}),e.link("./_setup.js",{slice(e){r=e}},0)},"mixin.js":function e(t,n,e){let r,i,o,s,a;function u(e){return i(o(e),(function(t){var n=r[t]=e[t];r.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),a(this,n.apply(r,e))}})),r}e.export({default:()=>u}),e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./functions.js",{default(e){o=e}},2),e.link("./_setup.js",{push(e){s=e}},3),e.link("./_chainResult.js",{default(e){a=e}},4)},"_chainResult.js":function e(t,n,e){let r;function i(e,t){return e._chain?r(t).chain():t}e.export({default:()=>i}),e.link("./underscore.js",{default(e){r=e}},0)},"underscore-array-methods.js":function e(t,n,e){let r,i,o,s;e.link("./underscore.js",{default(e){r=e}},0),e.link("./each.js",{default(e){i=e}},1),e.link("./_setup.js",{ArrayProto(e){o=e}},2),e.link("./_chainResult.js",{default(e){s=e}},3),i(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=o[e];r.prototype[e]=function(){var n=this._wrapped;return null!=n&&(t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0]),s(this,n)}})),i(["concat","join","slice"],(function(e){var t=o[e];r.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=t.apply(e,arguments)),s(this,e)}})),e.exportDefault(r)}}}}},cachers:{"package.json":function e(t,n,e){e.exports={name:"@steedos/cachers",version:"2.6.4-beta.2",main:"lib/index.js"}},lib:{"index.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getCacherNames=n.clearCacher=n.getCacher=void 0;var r={},i=t("./memory"),o=t("./memory-lru"),s=function(e,t){return r[e]||(e.startsWith("lru.")?r[e]=new o.MemoryLRUCacher(t):r[e]=new i.MemoryCacher),r[e]};n.getCacher=s;var a=function(e){r[e]&&r[e].clear()};n.clearCacher=a;var u=function(){return Object.keys(r)};n.getCacherNames=u},"memory.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryCacher=void 0;var r=t("lodash"),i=function(){function e(){this.cache={}}return e.prototype.get=function(e){return this.cache[e]},e.prototype.delete=function(e){delete this.cache[e]},e.prototype.set=function(e,t){this.cache[e]=t},e.prototype.clear=function(){this.cache={}},e.prototype.keys=function(){return(0,r.keys)(this.cache)},e.prototype.values=function(){return(0,r.values)(this.cache)},e}();n.MemoryCacher=i},"memory-lru.js":function e(t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MemoryLRUCacher=void 0;var r=t("lodash"),i=t("lru-cache"),o={max:5e3,ttl:null,keygen:null,maxParamsLength:null},s=function(){function e(e){this.opts=(0,r.defaultsDeep)(e,o),this.cache=new i({max:this.opts.max,maxAge:this.opts.ttl?1e3*this.opts.ttl:null,updateAgeOnGet:!!this.opts.ttl})}return e.prototype.get=function(e){return this.cache.get(e)},e.prototype.set=function(e,t,n){return this.cache.set(e,t,n)},e.prototype.delete=function(e){return this.cache.delete(e)},e.prototype.clear=function(){return this.cache.clear()},e.prototype.keys=function(){return this.cache.keys()},e.prototype.values=function(){return this.cache.values()},e}();n.MemoryLRUCacher=s}},node_modules:{"lru-cache":{"package.json":function e(t,n,e){e.exports={name:"lru-cache",version:"7.14.1",main:"index.js"}},"index.js":function e(t,n,e){const r="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,i="function"==typeof AbortController,o=i?AbortController:class e{constructor(){this.signal=new u}abort(){this.signal.dispatchEvent("abort")}},s="function"==typeof AbortSignal,a="function"==typeof o.AbortSignal,u=s?AbortSignal:a?o.AbortController:class e{constructor(){this.aborted=!1,this._listeners=[]}dispatchEvent(e){if("abort"===e){this.aborted=!0;const t={type:e,target:this};this.onabort(t),this._listeners.forEach(e=>e(t),this)}}onabort(){}addEventListener(e,t){"abort"===e&&this._listeners.push(t)}removeEventListener(e,t){"abort"===e&&(this._listeners=this._listeners.filter(e=>e!==t))}},f=new Set,c=(e,t)=>{const n=`LRU_CACHE_OPTION_${e}`;p(n)&&g(n,`${e} option`,`options.${t}`,_)},l=(e,t)=>{const n=`LRU_CACHE_METHOD_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} method`,`cache.${t}()`,i)}},h=(e,t)=>{const n=`LRU_CACHE_PROPERTY_${e}`;if(p(n)){const{prototype:r}=_,{get:i}=Object.getOwnPropertyDescriptor(r,e);g(n,`${e} property`,`cache.${t}`,i)}},d=(...e)=>{"object"==typeof process&&process&&"function"==typeof process.emitWarning?process.emitWarning(...e):console.error(...e)},p=e=>!f.has(e),g=(e,t,n,r)=>{f.add(e);const i=`The ${t} is deprecated. Please use ${n} instead.`;d(i,"DeprecationWarning",e,r)},b=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),m=e=>b(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?v:null:null;class v extends Array{constructor(e){super(e),this.fill(0)}}class y{constructor(e){if(0===e)return[];const t=m(e);this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class _{constructor(e={}){const{max:t=0,ttl:n,ttlResolution:r=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:s,allowStale:a,dispose:u,disposeAfter:l,noDisposeOnSet:h,noUpdateTTL:g,maxSize:v=0,maxEntrySize:w=0,sizeCalculation:k,fetchMethod:j,fetchContext:x,noDeleteOnFetchRejection:S,noDeleteOnStaleGet:D}=e,{length:E,maxAge:A,stale:C}=e instanceof _?{}:e;if(0!==t&&!b(t))throw new TypeError("max option must be a nonnegative integer");const M=t?m(t):Array;if(!M)throw new Error("invalid max value: "+t);if(this.max=t,this.maxSize=v,this.maxEntrySize=w||this.maxSize,this.sizeCalculation=k||E,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=j||null,this.fetchMethod&&"function"!=typeof this.fetchMethod)throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=x,!this.fetchMethod&&void 0!==x)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(t).fill(null),this.valList=new Array(t).fill(null),this.next=new M(t),this.prev=new M(t),this.head=0,this.tail=0,this.free=new y(t),this.initialFill=1,this.size=0,"function"==typeof u&&(this.dispose=u),"function"==typeof l?(this.disposeAfter=l,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!h,this.noUpdateTTL=!!g,this.noDeleteOnFetchRejection=!!S,0!==this.maxEntrySize){if(0!==this.maxSize&&!b(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!b(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!a||!!C,this.noDeleteOnStaleGet=!!D,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!s,this.ttlResolution=b(r)||0===r?r:1,this.ttlAutopurge=!!i,this.ttl=n||A||0,this.ttl){if(!b(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(0===this.max&&0===this.ttl&&0===this.maxSize)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const e="LRU_CACHE_UNBOUNDED";if(p(e)){f.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";d(t,"UnboundedCacheWarning",e,_)}}C&&c("stale","allowStale"),A&&c("maxAge","ttl"),E&&c("length","sizeCalculation")}getRemainingTTL(e){return this.has(e,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new v(this.max),this.starts=new v(this.max),this.setItemTTL=(e,t,n=r.now())=>{if(this.starts[e]=0!==t?n:0,this.ttls[e]=t,0!==t&&this.ttlAutopurge){const n=setTimeout(()=>{this.isStale(e)&&this.delete(this.keyList[e])},t+1);n.unref&&n.unref()}},this.updateItemAge=e=>{this.starts[e]=0!==this.ttls[e]?r.now():0};let e=0;const t=()=>{const t=r.now();if(this.ttlResolution>0){e=t;const n=setTimeout(()=>e=0,this.ttlResolution);n.unref&&n.unref()}return t};this.getRemainingTTL=n=>{const r=this.keyMap.get(n);return void 0===r?0:0===this.ttls[r]||0===this.starts[r]?1/0:this.starts[r]+this.ttls[r]-(e||t())},this.isStale=n=>0!==this.ttls[n]&&0!==this.starts[n]&&(e||t())-this.starts[n]>this.ttls[n]}updateItemAge(e){}setItemTTL(e,t,n){}isStale(e){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new v(this.max),this.removeItemSize=e=>{this.calculatedSize-=this.sizes[e],this.sizes[e]=0},this.requireSize=(e,t,n,r)=>{if(this.isBackgroundFetch(t))return 0;if(!b(n)){if(!r)throw new TypeError("invalid size value (must be positive integer)");if("function"!=typeof r)throw new TypeError("sizeCalculation must be a function");if(n=r(t,e),!b(n))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return n},this.addItemSize=(e,t)=>{if(this.sizes[e]=t,this.maxSize){const t=this.maxSize-this.sizes[e];for(;this.calculatedSize>t;)this.evict(!0)}this.calculatedSize+=this.sizes[e]}}removeItemSize(e){}addItemSize(e,t){}requireSize(e,t,n,r){if(n||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.tail;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.head);)t=this.prev[t]}*rindexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.head;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.tail);)t=this.next[t]}isValidIndex(e){return this.keyMap.get(this.keyList[e])===e}*entries(){for(const e of this.indexes())yield[this.keyList[e],this.valList[e]]}*rentries(){for(const e of this.rindexes())yield[this.keyList[e],this.valList[e]]}*keys(){for(const e of this.indexes())yield this.keyList[e]}*rkeys(){for(const e of this.rindexes())yield this.keyList[e]}*values(){for(const e of this.indexes())yield this.valList[e]}*rvalues(){for(const e of this.rindexes())yield this.valList[e]}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const n of this.indexes())if(e(this.valList[n],this.keyList[n],this))return this.get(this.keyList[n],t)}forEach(e,t=this){for(const n of this.indexes())e.call(t,this.valList[n],this.keyList[n],this)}rforEach(e,t=this){for(const n of this.rindexes())e.call(t,this.valList[n],this.keyList[n],this)}get prune(){return l("prune","purgeStale"),this.purgeStale}purgeStale(){let e=!1;for(const t of this.rindexes({allowStale:!0}))this.isStale(t)&&(this.delete(this.keyList[t]),e=!0);return e}dump(){const e=[];for(const t of this.indexes({allowStale:!0})){const n=this.keyList[t],i=this.valList[t],o=this.isBackgroundFetch(i)?i.__staleWhileFetching:i,s={value:o};if(this.ttls){s.ttl=this.ttls[t];const e=r.now()-this.starts[t];s.start=Math.floor(Date.now()-e)}this.sizes&&(s.size=this.sizes[t]),e.unshift([n,s])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const e=Date.now()-n.start;n.start=r.now()-e}this.set(t,n.value,n)}}dispose(e,t,n){}set(e,t,{ttl:n=this.ttl,start:r,noDisposeOnSet:i=this.noDisposeOnSet,size:o=0,sizeCalculation:s=this.sizeCalculation,noUpdateTTL:a=this.noUpdateTTL}={}){if(o=this.requireSize(e,t,o,s),this.maxEntrySize&&o>this.maxEntrySize)return this.delete(e),this;let u=0===this.size?void 0:this.keyMap.get(e);if(void 0===u)u=this.newIndex(),this.keyList[u]=e,this.valList[u]=t,this.keyMap.set(e,u),this.next[this.tail]=u,this.prev[u]=this.tail,this.tail=u,this.size++,this.addItemSize(u,o),a=!1;else{const n=this.valList[u];t!==n&&(this.isBackgroundFetch(n)?n.__abortController.abort():i||(this.dispose(n,e,"set"),this.disposeAfter&&this.disposed.push([n,e,"set"])),this.removeItemSize(u),this.valList[u]=t,this.addItemSize(u,o)),this.moveToTail(u)}if(0===n||0!==this.ttl||this.ttls||this.initializeTTLTracking(),a||this.setItemTTL(u,n,r),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return 0===this.size?this.tail:this.size===this.max&&0!==this.max?this.evict(!1):0!==this.free.length?this.free.pop():this.initialFill++}pop(){if(this.size){const e=this.valList[this.head];return this.evict(!0),e}}evict(e){const t=this.head,n=this.keyList[t],r=this.valList[t];return this.isBackgroundFetch(r)?r.__abortController.abort():(this.dispose(r,n,"evict"),this.disposeAfter&&this.disposed.push([r,n,"evict"])),this.removeItemSize(t),e&&(this.keyList[t]=null,this.valList[t]=null,this.free.push(t)),this.head=this.next[t],this.keyMap.delete(n),this.size--,t}has(e,{updateAgeOnHas:t=this.updateAgeOnHas}={}){const n=this.keyMap.get(e);return void 0!==n&&!this.isStale(n)&&(t&&this.updateItemAge(n),!0)}peek(e,{allowStale:t=this.allowStale}={}){const n=this.keyMap.get(e);if(void 0!==n&&(t||!this.isStale(n))){const e=this.valList[n];return this.isBackgroundFetch(e)?e.__staleWhileFetching:e}}backgroundFetch(e,t,n,r){const i=void 0===t?void 0:this.valList[t];if(this.isBackgroundFetch(i))return i;const s=new o,a={signal:s.signal,options:n,context:r},u=t=>(s.signal.aborted||this.set(e,t,a.options),t),f=r=>{if(this.valList[t]===l){const r=!n.noDeleteOnFetchRejection||void 0===l.__staleWhileFetching;r?this.delete(e):this.valList[t]=l.__staleWhileFetching}if(l.__returned===l)throw r},c=t=>t(this.fetchMethod(e,i,a)),l=new Promise(c).then(u,f);return l.__abortController=s,l.__staleWhileFetching=i,l.__returned=null,void 0===t?(this.set(e,l,a.options),t=this.keyMap.get(e)):this.valList[t]=l,l}isBackgroundFetch(e){return e&&"object"==typeof e&&"function"==typeof e.then&&Object.prototype.hasOwnProperty.call(e,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(e,"__returned")&&(e.__returned===e||null===e.__returned)}async fetch(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:s=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,fetchContext:c=this.fetchContext,forceRefresh:l=!1}={}){if(!this.fetchMethod)return this.get(e,{allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r});const h={allowStale:t,updateAgeOnGet:n,noDeleteOnStaleGet:r,ttl:i,noDisposeOnSet:o,size:s,sizeCalculation:a,noUpdateTTL:u,noDeleteOnFetchRejection:f};let d=this.keyMap.get(e);if(void 0===d){const t=this.backgroundFetch(e,d,h,c);return t.__returned=t}{const r=this.valList[d];if(this.isBackgroundFetch(r))return t&&void 0!==r.__staleWhileFetching?r.__staleWhileFetching:r.__returned=r;if(!l&&!this.isStale(d))return this.moveToTail(d),n&&this.updateItemAge(d),r;const i=this.backgroundFetch(e,d,h,c);return t&&void 0!==i.__staleWhileFetching?i.__staleWhileFetching:i.__returned=i}}get(e,{allowStale:t=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet}={}){const i=this.keyMap.get(e);if(void 0!==i){const o=this.valList[i],s=this.isBackgroundFetch(o);if(this.isStale(i))return s?t?o.__staleWhileFetching:void 0:(r||this.delete(e),t?o:void 0);if(s)return;return this.moveToTail(i),n&&this.updateItemAge(i),o}}connect(e,t){this.prev[t]=e,this.next[e]=t}moveToTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.connect(this.prev[e],this.next[e]),this.connect(this.tail,e),this.tail=e)}get del(){return l("del","delete"),this.delete}delete(e){let t=!1;if(0!==this.size){const n=this.keyMap.get(e);if(void 0!==n)if(t=!0,1===this.size)this.clear();else{this.removeItemSize(n);const t=this.valList[n];this.isBackgroundFetch(t)?t.__abortController.abort():(this.dispose(t,e,"delete"),this.disposeAfter&&this.disposed.push([t,e,"delete"])),this.keyMap.delete(e),this.keyList[n]=null,this.valList[n]=null,n===this.tail?this.tail=this.prev[n]:n===this.head?this.head=this.next[n]:(this.next[this.prev[n]]=this.next[n],this.prev[this.next[n]]=this.prev[n]),this.size--,this.free.push(n)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return t}clear(){for(const e of this.rindexes({allowStale:!0})){const t=this.valList[e];if(this.isBackgroundFetch(t))t.__abortController.abort();else{const n=this.keyList[e];this.dispose(t,n,"delete"),this.disposeAfter&&this.disposed.push([t,n,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return l("reset","clear"),this.clear}get length(){return h("length","size"),this.size}static get AbortController(){return o}static get AbortSignal(){return u}}e.exports=_}}}}},tslib:{"package.json":function e(t,n,e){e.exports={name:"tslib",version:"2.3.1",module:"tslib.es6.js",main:"tslib.js"}},"tslib.es6.js":function e(t,n,e){e.export({__extends:()=>i,__assign:()=>o,__rest:()=>s,__decorate:()=>a,__param:()=>u,__metadata:()=>f,__awaiter:()=>c,__generator:()=>l,__createBinding:()=>h,__exportStar:()=>d,__values:()=>p,__read:()=>g,__spread:()=>b,__spreadArrays:()=>m,__spreadArray:()=>v,__await:()=>y,__asyncGenerator:()=>_,__asyncDelegator:()=>w,__asyncValues:()=>k,__makeTemplateObject:()=>j,__importStar:()=>S,__importDefault:()=>D,__classPrivateFieldGet:()=>E,__classPrivateFieldSet:()=>A}); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. diff --git a/server/bundle/programs/web.browser/18b1573e16dfb893209907100a4090bccecb75e9.stats.json b/server/bundle/programs/web.browser/1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json similarity index 100% rename from server/bundle/programs/web.browser/18b1573e16dfb893209907100a4090bccecb75e9.stats.json rename to server/bundle/programs/web.browser/1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json diff --git a/server/bundle/programs/web.browser.legacy/5766f147e314187665f8cf23620c00b20d7a2c90.css b/server/bundle/programs/web.browser/22b72a003d0bc555f97724324e85cd5b0fb7287b.css similarity index 92% rename from server/bundle/programs/web.browser.legacy/5766f147e314187665f8cf23620c00b20d7a2c90.css rename to server/bundle/programs/web.browser/22b72a003d0bc555f97724324e85cd5b0fb7287b.css index 4dc97ec493..a0be76a43b 100644 --- a/server/bundle/programs/web.browser.legacy/5766f147e314187665f8cf23620c00b20d7a2c90.css +++ b/server/bundle/programs/web.browser/22b72a003d0bc555f97724324e85cd5b0fb7287b.css @@ -45,7 +45,7 @@ * Licensed under the MIT license - http://opensource.org/licenses/MIT * * Copyright (c) 2018 Daniel Eden - */.animated{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}.rotate{animation-name:rotate;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-name:rotate}.view-page-section-row .view-page-block-item{padding:0 .75rem}.view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;width:100%!important}.view-page-section-row .uiInput .form-control:active,.view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}.view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.view-page-section-row .uiInput .form-control[disabled]:active,.view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}@media (max-width:599px){.view-page-section-row{display:block}}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item{cursor:pointer}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content{height:26px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .dx-icon{height:18px;font-size:18px;line-height:18px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.creator-table-actions,.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.pull-right-container{-webkit-box-flex:0.12;-webkit-flex:0.12;-ms-flex:0.12;flex:0.12;text-align:right;margin-top:-3px;display:inline-block}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content>span{padding:1px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility{line-height:32px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{line-height:34px}.gridSidebarContainer.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:20px}@media (max-width:767px){body,html{position:fixed;overflow:hidden}}body{background-size:cover;zoom:1!important}body button{margin-right:0}.steedos label{margin-bottom:5px}.steedos .steedos-brand-band{display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;position:relative;height:100%;width:100%}.steedos .steedos-brand-band .slds-page-header .crm-header-icon{display:block;border-radius:.125rem}.steedos .steedos-brand-band .slds-page-header .crm-header-icon .uiImage{display:inherit}.steedos .steedos-brand-band .slds-page-header h1.crm-header-title{font-size:16px;position:relative}.steedos .steedos-brand-band .slds-page-header .crm-breadcrumb-item span{font-size:13px}.steedos .steedos-brand-band .slds-page-header .crm-header-menu{font-size:.8125rem;font-weight:400}.steedos .steedos-brand-band .listViewManager{height:100%;border-radius:.25rem;background-clip:padding-box}.steedos .steedos-brand-band .listViewManager .slds-page-header{border-top:none;border-left:none;border-right:none}.steedos .steedos-brand-band .listViewManager .forceListViewManagerHeader .slds-button{cursor:pointer}.steedos .steedos-brand-band .listViewManager .list-view-controls .slds-text-title--caps{font-size:12px}.steedos .steedos-brand-band .listViewManager .table-grid-content{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content{width:100%;height:100%;min-height:200px;padding-top:0;padding-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;overflow:hidden}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content>div{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable{width:auto;margin-top:0!important;border-top:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable td:not(:first-child){padding:5px 8px 4px}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable .creator_table_cell{line-height:1.25rem}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable .slds-is-sortable__icon{display:inline-block;fill-opacity:0}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:focus .slds-is-sortable__icon,.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:hover .slds-is-sortable__icon{fill-opacity:1}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .gridContainer .dx-datagrid .dx-scrollable-wrapper .dx-scrollable-container .dx-row.dx-freespace-row{display:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .table-creator{margin-top:0!important}.steedos .slds-card .slds-table tr:last-child .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(2) .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(3) .dropdown-menu{bottom:100%;top:auto}.steedos .slds-table+.dataTables_paginate{text-align:left;margin-left:1.5rem}.steedos .list-table-container .dataTables_wrapper .dataTable{table-layout:fixed}.steedos .list-table-container .dataTables_wrapper .JCLRgrip .JColResizer{top:1px;height:70vh}.steedos .list-table-container .dataTable thead>tr>td.sorting,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc,.steedos .list-table-container .dataTable thead>tr>th.sorting,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc{padding-right:0}.steedos .list-table-container .dataTable thead>tr>td.sorting>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc>a{padding-right:30px}.steedos .list-table-container .dataTable thead .sorting:after,.steedos .list-table-container .dataTable thead .sorting_asc:after,.steedos .list-table-container .dataTable thead .sorting_asc_disabled:after,.steedos .list-table-container .dataTable thead .sorting_desc:after,.steedos .list-table-container .dataTable thead .sorting_desc_disabled:after{display:none;bottom:4px}.steedos .list-table-container .dataTable thead>tr>th{position:relative}.steedos .list-table-container .dataTable thead>tr>th .slds-th__action{margin-bottom:1px}.td-cell-wrap table td{white-space:normal}.steedos.fixed #sidebar-menu{background:#fff;position:fixed;top:90px;width:250px;height:calc(100% - 90px);padding:0}.steedos.fixed .slds-form-element .control-label{font-weight:400;color:#706e6b}.steedos.fixed .dx-datagrid{background:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-rowsview{border-top:0}.steedos.fixed .dx-datagrid .dx-freespace-row td,.steedos.fixed .dx-datagrid .dx-freespace-row td:hover,.steedos.fixed .dx-datagrid .dx-row{background-color:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget{padding:3px;font-size:12px;border-top:1px solid #ddd}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-page-sizes .dx-page-size,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-page{padding:3px 8px}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-next-button,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-prev-button{padding:3px 8px;line-height:25px}.steedos.fixed .slds-tabs--default__nav,.steedos.fixed .slds-tabs_default__nav{border-bottom:1px solid #e7e7eb}.steedos.fixed .slds-modal__header{background-color:#f4f4f4;border-bottom:1px solid #d5d5da;color:#878687}.steedos.fixed .slds-modal__footer{border-top:1px solid #d5d5d5}.steedos.fixed .forceEntityIcon.extraSmall{width:1.5rem;height:1.5rem}.steedos.fixed .forceEntityIcon{display:block;border-radius:.125rem}.steedos.fixed .creator_view #creator-tabular .slds-card+.slds-card{margin-top:.75rem}.steedos.fixed .modal-dialog{margin:0 auto}.steedos.fixed .modal,.steedos.fixed .modal-body,.steedos.fixed .modal-footer,.steedos.fixed .modal-header{zoom:1!important}.flexipageBaseRecordHomeTemplateDesktop{height:100%}.flexipageBaseRecordHomeTemplateDesktop .row-main{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin:.75rem 0 0}.flexipageBaseRecordHomeTemplateDesktop .region-subheader{margin-top:.75rem}.flexipageBaseRecordHomeTemplateDesktop .region-main{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;max-width:70%;min-width:564px}.flexipageBaseRecordHomeTemplateDesktop .region-full-width{max-width:100%}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333%;min-width:404px}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{padding-left:.75rem;padding-right:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left{padding-left:0;padding-right:.75rem}@media only screen and (max-width:47.9375em){.flexipageBaseRecordHomeTemplateDesktop{min-width:auto}.flexipageBaseRecordHomeTemplateDesktop .row-main{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flexipageBaseRecordHomeTemplateDesktop .region-main{min-width:auto;max-width:none}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{min-width:auto;width:100%;padding:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{margin-top:.75rem}}.dx-scheduler-header{position:absolute;top:3px;left:calc(50% - 140px);right:100px;background:transparent;border:none;width:auto}.dx-scheduler-work-space{padding-top:0;margin-top:0}.dx-scheduler-all-day-title{margin-top:-64px}.dx-scheduler-header-panel-cell .dx-scheduler-header-panel-cell-date:last-child{font-size:16px}.dx-scheduler-navigator-caption{max-width:unset;width:auto}.slds-form_horizontal .slds-form-element__control{line-height:24px}.dx-treeview-item{padding:8px;min-height:32px;line-height:inherit}.dx-treeview-toggle-item-visibility{height:34px}.dx-treelist-headers .dx-treelist-table .dx-row>td,.dx-treelist .dx-row>td{padding-top:6px;padding-bottom:6px}.dx-treelist .dx-row>td{line-height:unset}.dx-treeview-with-search .dx-placeholder{font-size:13px}.slds-card{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border:.1px solid transparent}.dx-treeview [role=treeitem][aria-selected=true]>.dx-treeview-item{background:rgba(21,137,238,.1);box-shadow:inset 4px 0 0 #1589ee}.dx-treeview-node{padding-left:0}.dx-treeview-search{margin:8px 6px}.dx-treeview-item.dx-state-hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.87)}.dx-treeview-item-without-checkbox.dx-state-focused>.dx-treeview-item{background-color:rgba(0,0,0,.05)}.dx-treeview-toggle-item-visibility,.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{font-size:18px}.dx-treeview .dx-treeview-item-with-checkbox>.dx-checkbox{margin-top:-6px}.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:24px}.dx-treeview [aria-level="1"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:68px}.dx-treeview [aria-level="2"]>.dx-treeview-item{padding-left:48px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:30px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:98px}.dx-treeview [aria-level="3"]>.dx-treeview-item{padding-left:72px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:60px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:128px}.dx-treeview [aria-level="4"]>.dx-treeview-item{padding-left:96px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:90px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:158px}.dx-treeview [aria-level="5"]>.dx-treeview-item{padding-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:188px}.dx-treeview [aria-level="6"]>.dx-treeview-item{padding-left:144px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:150px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:218px}.dx-treeview [aria-level="7"]>.dx-treeview-item{padding-left:168px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:180px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:248px}.dx-treeview [aria-level="8"]>.dx-treeview-item{padding-left:192px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:210px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:278px}.dx-treeview [aria-level="9"]>.dx-treeview-item{padding-left:216px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:240px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:308px}.dx-treeview [aria-level="10"]>.dx-treeview-item{padding-left:240px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:270px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:338px}.dx-treeview [aria-level="2"]>.dx-treeview-toggle-item-visibility{margin-left:24px}.dx-treeview [aria-level="3"]>.dx-treeview-toggle-item-visibility{margin-left:48px}.dx-treeview [aria-level="4"]>.dx-treeview-toggle-item-visibility{margin-left:72px}.dx-treeview [aria-level="5"]>.dx-treeview-toggle-item-visibility{margin-left:96px}.dx-treeview [aria-level="6"]>.dx-treeview-toggle-item-visibility{margin-left:120px}.dx-treeview [aria-level="7"]>.dx-treeview-toggle-item-visibility{margin-left:144px}.dx-treeview [aria-level="8"]>.dx-treeview-toggle-item-visibility{margin-left:168px}.dx-treeview [aria-level="9"]>.dx-treeview-toggle-item-visibility{margin-left:192px}.dx-treeview [aria-level="10"]>.dx-treeview-toggle-item-visibility{margin-left:216px}.dx-scrollbar-vertical.dx-scrollbar-hoverable{width:12px}.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{width:16px}.dx-scrollbar-vertical .dx-scrollable-scroll{width:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable{height:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover{height:16px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{height:18px}.dx-scrollbar-horizontal .dx-scrollable-scroll{height:14px}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a{color:#777}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a .slds-truncate .slds-button__icon{visibility:hidden;margin-right:.2rem}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a{color:#333}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a .slds-truncate .slds-button__icon{visibility:visible}.steedos .dx-button-text{text-transform:unset}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content{border:1px solid #ddd;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);border-radius:6px;min-width:10rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content{padding:1rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content .dx-actionsheet-item .dx-button{border-radius:4px;background-color:#fff;border:1px solid #ddd;color:#333;box-shadow:none}.steedos .navigation-bar{width:100%;padding:9px;height:51px;border-bottom:1px solid #dddbda;background-color:#f3f2f2}.object-form label{font-weight:400}.steedos-amis-button{line-height:inherit!important}.steedos-amis-button button,.steedos-amis-button span{background-color:transparent!important;border:none!important}.steedos-amis-button span:active,.steedos-amis-button span:focus,.steedos-amis-button span:focus-visible,.steedos-amis-button span:hover{background-color:transparent!important;border:none!important;outline:none!important}.steedos-amis-button .slds-dropdown__item span{position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding:.5rem .75rem;color:#181818;white-space:nowrap;cursor:pointer}.creator-form-builder ._id-wrap{display:none}.creator-form-builder .className-wrap{display:none!important}.creator-form-builder .fields-wrap{display:none}.creator-form-builder .code-wrap label:after,.creator-form-builder [type=odata] .code-wrap label:after,.creator-form-builder [type=odata] .formula-wrap label:after,.creator-form-builder [type=odata] .search_field-wrap label:after,.creator-form-builder [type=odata] .url-wrap label:after{content:" *";color:red}.creator-form-builder .form-wrap.form-builder .frmb .prev-holder input[type=number]{width:100%}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options .option-value{display:none}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options input[type=text]{width:72%!important}.creator-form-builder #fbEditorForm .form-group .control-label{display:none!important}.form-wrap.form-builder .frmb .prev-holder .form-group>label:not([class=fb-checkbox-label]){display:none}.form-elements .form-group label{display:block!important}.section-field .form-group,.table-field .form-group{margin-left:0!important;margin-bottom:15px!important}.flow-modal .modal-lg{width:992px}.copy-flow-modal [data-required=true] label:after,.new-flow-modal [data-required=true] label:after{content:" *";color:red}#distribute_edit_flow_modal .selectize-input .item{color:#fff;background-color:#1b9dec!important;padding-right:24px!important;padding-left:3px!important;background-image:-webkit-linear-gradient(top,#1da7ee,#178ee9)!important;background-image:linear-gradient(180deg,#1da7ee,#178ee9)!important;background-repeat:repeat-x!important;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 1px hsla(0,0%,100%,.03)!important}#distribute_edit_flow_modal .selectize-input .remove{padding-top:4px!important}.creator-modal{zoom:1!important}#collectionModal .modal-body #cmForm>div:last-child{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#collectionModal .modal-footer form{display:inline-block}#cmForm.form-horizontal .control-label{text-align:left}#afModal .slds-modal__container{width:auto;max-width:100%}#afModal .slds-modal__container .slds-modal__content .remove-prompt{font-size:16px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox{margin-left:-10px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .slds-checkbox--faux{margin-top:-3px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .label-multiple-update{color:#706e6b;font-size:14px;font-weight:400}#afModal .slds-modal__container .slds-modal__footer .slds-button_destructive.btn-remove{float:left}#afModal [data-required=true] label:after{content:" *";color:red}#afModal .group-section .slds-section__title{font-size:.9rem;font-weight:inherit}#afModal .group-section .slds-section__title .slds-button__icon{width:.8rem;height:.8rem}#afModal .view-page-section-row .view-page-block-item{padding:0 .75rem}#afModal .view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;width:100%;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;padding:0 1rem 0 .75rem;line-height:34px;width:100%!important}#afModal .view-page-section-row .uiInput .form-control:active,#afModal .view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}#afModal .view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#afModal .view-page-section-row .uiInput .form-control[disabled]:active,#afModal .view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}#afModal .view-page-section-row .uiInput textarea.form-control{overflow:hidden}@media (max-width:599px){#afModal .view-page-section-row{display:block}}.slip-reordering{box-shadow:0 2px 10px rgba(0,0,0,.45)}.slip-swiping-container{overflow-x:hidden}.slippylist .slippylist-item{user-select:none;-moz-user-select:none;-webkit-user-select:none}.slippylist .slippylist-item.slip-allow-select{user-select:text;-moz-user-select:text;-webkit-user-select:text}.slippylist .slippylist-item.slip-allow-select span{cursor:text}.slippylist{clear:left}.slippylist input{vertical-align:middle}.skewed{transform:rotate(2deg) scale(.99);-webkit-transform:rotate(2deg) scale(.99)}.slip-no-swipe.slip-no-reorder{opacity:.5}@media print{body,html{position:static!important}.instance-print *{color:inherit!important}.instance-print .table-page-body .form-group,.instance-print .table-page-body .instance-sign,.instance-print .table-page-footer .form-group,.instance-print .table-page-footer .instance-sign{color:#000!important}.instance-print .instance-table .form-table .td-title.is-required:after{color:red!important}.box-tools button{display:none}.instance-traces .box-body{display:block!important}.no-print{display:none!important}a[href]:after{content:""!important}a,a:visited{text-decoration:none!important}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #000!important}.table-bordered th{border-bottom:1px solid #000!important}.steedos-table .checkbox,.steedos-table .radio{display:table-cell!important;position:static!important}.steedos-table table{border-bottom:none!important}.steedos-table .table{border-left:0!important;border-right:0!important;border-collapse:separate!important}.ins_attach_version{display:none!important}table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}}.instance-print{font-size:14px}.instance-print table{margin:auto}.instance-print .hidden-xs,.instance-print .instance-view .instance-name{display:inline!important}.instance-print .wrapper{overflow:visible;background:silver!important;position:inherit!important}.instance-print .content-wrapper{top:0!important}.instance-print .btn{border-radius:0}.instance-print .box{border-radius:0;border-top:0;margin-bottom:0;padding-bottom:10px;box-shadow:none}.instance-print .box .box-body{padding:10px 0 0}.instance-print .content-wrapper{margin-left:auto!important;width:700px;margin:0 auto;-webkit-transition:all .3s;transition:all .3s}.instance-print .instance-table .instance-template,.instance-print .traces_table_modal .instance-template{-webkit-transition:all .3s;transition:all .3s;max-width:none}.instance-print .instance-table .instance-traces,.instance-print .traces_table_modal .instance-traces{-webkit-transition:all .3s;transition:all .3s;max-width:none;padding-bottom:10px}.instance-print .instance-table .instance-traces>.pull-left,.instance-print .traces_table_modal .instance-traces>.pull-left{padding:10px 0 4px;font-size:15px}.instance-print .instance-table .steedos-table table thead .title,.instance-print .traces_table_modal .steedos-table table thead .title{min-width:auto;white-space:normal}.instance-print .navigation-bar .print-tool{padding:6px 12px;float:left}.instance-print .navigation-bar .print-tool .cbx-label{cursor:pointer;margin-right:8px}.instance-print .navigation-bar .print-tool .cbx-label .cbx-print{margin-right:4px}.instance-print .navigation-bar .print-tool .cbx-label span{position:relative;top:-1px}.instance-print .instance_attachments{margin-top:0!important}.instance-print .instance-traces{padding-left:15px;padding-right:15px}.instance-print .form-control{min-height:22px!important;text-align:left}.instance-print .td-padding{padding:5px 10px!important}.section .control-label{color:#333;font-weight:700;font-size:15px}.instance.instance-default .section.callout.callout-default{padding:2px 0;border:none;background:#fff;border-radius:0;margin-top:5px;margin-bottom:-5px}.instance.instance-default .section .control-label{color:#795548;font-weight:700;font-size:16px;width:100%;border-bottom:1px dashed #d2d6de;padding-bottom:3px}.instance.instance-default .section p{color:#777}.steedos-table .item-readonly{cursor:pointer}.steedos-table table .removed{min-width:31px;width:31px;text-align:center}.steedos-table table tbody .edit{cursor:pointer}.steedos-table table .number{text-align:right}.steedos-table table thead .title{min-width:50px;white-space:nowrap}.steedos-table .checkbox,.steedos-table .radio{margin-top:0;margin-bottom:0;display:table-cell;border-radius:0}.steedos-table .steedosTable-add-item{padding:3px 8px}.steedos-table .panel-body .panel-heading{background-color:#f5f5f5;border-color:#ddd}.steedos-table .panel-body .panel-heading .description{display:inherit}.steedos-table .panel-body .panel-heading .control-label{font-weight:700;font-size:15px}.instance-table .form-table .form-group .steedos-table .autoform-table tr td{border-top:1px solid #000!important;border-bottom:0!important}.instance-table .form-table .form-group .steedos-table .autoform-table td:last-child{border-right:none!important}.steedos-table .add-item-tr{background:rgba(255,255,0,.03);cursor:pointer}.steedos-table .add-item-tr td{border-bottom:0!important}.steedos-table .add-item-tr .ion{height:20px;line-height:20px;margin-right:6px}.steedos-table .panel-body{padding:0}.steedos-table .panel-body .panel-content{padding:0;overflow-x:auto}.steedos-table .panel-body .panel-content .table{margin-bottom:0}.instance-default .steedos-table{border-radius:0;border:none}.instance-default .steedos-table .panel-body .panel-heading{border:none;padding:2px 0;margin-bottom:-5px;margin-top:5px;background:none}.instance-default .steedos-table .panel-body .panel-heading .control-label{width:100%;color:#795548;font-size:16px}.instance-default .steedos-table .panel-body .panel-heading .description{margin-top:-10px;margin-bottom:10px;color:#777;padding-top:5px}.instance-default .steedos-table .panel-body .panel-content{padding-bottom:1px;border:1px solid #d2d6de}.instance-default .steedos-table .panel-body .panel-content .table-bordered{border:none}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead{background:#f9f9f9}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td{border:1px solid #eee;border-top:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:last-child{border-right:0}.steedos-table-modal .steedos-table-modal-body{overflow-y:auto;padding:0}.steedos-table-modal .steedos-table-modal-body .panel{border:none;box-shadow:none;margin-bottom:0}.steedos-table-modal .steedos-table-modal-body .panel .panel-body{padding:5px 15px;border:none;position:relative}.steedos-table-modal .steedos-table-modal-body .panel .panel-body .dx-widget.form-control{padding:6px 12px}.steedos-table-modal .steedos-table-modal-body .panel .panel-heading{display:none}.steedosTable-item-add{padding:2px 7px}#steedos-table-modal .steedos-selectize .selectize-dropdown{position:fixed;top:auto!important;left:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input [data-value]{padding:2px!important;min-height:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input .slds-pill .slds-pill__action{line-height:24px}.steedos-selectize .selectize-input{border-radius:0!important;background-image:none!important;border-color:#d2d6de!important;box-shadow:none!important;height:auto}.steedos-selectize .selectize-dropdown{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;height:200px!important}.steedos-selectize .selectize-dropdown-content{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;max-height:none!important;height:auto!important}.steedos-selectize .selectize-control.multi .selectize-input.has-items{padding:0!important}.steedos-selectize .selectize-control .selectize-input.disabled{opacity:1!important}.steedos-selectize .selectize-control.multi .selectize-input.disabled [data-value]{color:inherit!important}.steedos-selectize .disabled .slds-pill__remove{display:none}.slds-pill{display:inline-flex;align-items:center;justify-content:space-between;line-height:1.5;max-width:100%;padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff;position:relative;min-height:1.625rem}@media (pointer:coarse) and (hover:none){.slds-pill{line-height:1.875rem;padding:0 .75rem}}.slds-pill+.slds-pill{margin-left:.125rem}@media (pointer:coarse) and (hover:none){.slds-pill+.slds-pill{margin-left:.25rem}}.slds-pill:hover{background-color:#f4f6f9}.slds-pill:focus{outline:0;border-radius:.25rem;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.slds-pill a{text-decoration:none}.slds-pill--bare,.slds-pill_bare{background-color:transparent;border:0}.slds-pill--bare:hover,.slds-pill_bare:hover{background-color:transparent}.slds-pill-container,.slds-pill__container,.slds-pill_container{display:flex;min-height:calc(1.875rem + 2px);padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff}@media (pointer:coarse) and (hover:none){.slds-pill-container,.slds-pill__container,.slds-pill_container{padding:.25rem}}.slds-pill-container .slds-listbox_inline,.slds-pill__container .slds-listbox_inline,.slds-pill_container .slds-listbox_inline{margin-left:0;margin-right:0}.slds-pill__container--bare,.slds-pill__container_bare,.slds-pill_container--bare,.slds-pill_container_bare{display:flex;padding:.125rem;border:0;border-radius:0;background-color:transparent}.slds-pill__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (pointer:coarse) and (hover:none){.slds-pill__label{font-size:.875rem}}.slds-pill__label:focus{outline:0;border-radius:.25rem;box-shadow:0 0 3px #0070d2}.slds-pill__icon,.slds-pill__icon_container{width:1.25rem;height:1.25rem;margin-right:.25rem}.slds-pill__icon .slds-avatar,.slds-pill__icon .slds-icon,.slds-pill__icon_container .slds-avatar,.slds-pill__icon_container .slds-icon{width:1.25rem;height:1.25rem;display:block;font-size:.625rem}.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:calc(1.5rem + 2px)}@media (pointer:coarse) and (hover:none){.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:2.25rem}}.slds-pill__remove{width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.25rem;border-radius:.125rem}.slds-pill__remove svg{width:.875rem;height:.875rem}.slds-pill--link,.slds-pill_link{border:0;padding:0}.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{display:inline-block;position:absolute;top:50%;left:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{left:.75rem}}.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{position:absolute;top:50%;right:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{right:.75rem}}.slds-pill__action{padding:.125rem calc(1.25rem + 2px) .125rem .125rem;border:1px solid #dddbda;border-radius:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1;color:inherit!important}@media (pointer:coarse) and (hover:none){.slds-pill__action{padding:0 calc(1.75rem + 2px) 0 .75rem}}.slds-pill__action:focus{outline:0;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.selectize-control.multi .selectize-input [data-value]{background:none!important;box-shadow:none!important;border-radius:.25rem!important;display:inline-flex!important;align-items:center!important;justify-content:space-between!important;line-height:1.5!important;max-width:100%!important;padding:0!important;border:none!important;background-color:#fff!important;position:relative!important;min-height:1.625rem!important;text-shadow:none!important}.instance_new{cursor:pointer}.sidebar .treeview-menu .ion{float:left}.sidebar .treeview-menu .inbox-flow .flow-name{width:135px;vertical-align:bottom}.sidebar .treeview-menu .category-name{width:125px;vertical-align:bottom}.sidebar-collapse .sidebar .treeview-menu{max-height:350px;overflow-y:auto}.sidebar-collapse .sidebar .treeview-menu .inbxo-flow .flow-name{width:115px}.workflow .main-sidebar .sidebar-menu ul .active a{color:#0078d7!important}.workflow .main-sidebar .box-space-name{width:140px!important;vertical-align:bottom}.instanceContent{background:#fff}.callout.callout-default{border-color:#d2d6de;color:grey;background-color:#f1f1f1}.callout.callout-default h4{color:#333}.callout-default a{color:grey}.callout-default a:hover{color:#333}.panel-controls{float:right;display:block;cursor:pointer}.autoform-table{text-align:left;width:100%;max-width:100%}.autoform-table td.field.number{text-align:right}.font-size-h3{font-size:24px;margin-top:20px!important;margin-bottom:10px!important}.bg-info{padding:15px}.instance-traces>.heading{font-size:17px}.traces{font-size:14px}.traces td{border:none}.trace-item{height:30px;background-color:#eee;font-weight:700;font-size:14px;color:#404040}.trace-item .trace-approve-talbe .approve-item a.btn-link{display:inline-block}.approve-item,.approve-item-distribute{height:30px;font-size:13px;cursor:pointer}.approve-item-distribute .name,.approve-item .name{font-weight:700}.approve-item-distribute{cursor:auto!important}.approve-item .red{color:red}.approve-item .blue{color:#00f}.approve-description{border:none;height:auto}.approve-description .description{padding-top:0;border:none}.approve-description .description p{margin:0}.approve-description .red{color:red}.approve-description{cursor:pointer}.approve-item>.name{font-weight:700}.approve-item>.approved,.instance-trace-detail-modal .approved{color:green}.approve-item>.rejected,.instance-trace-detail-modal .rejected{color:red}.approve-item>.autoSubmitted,.instance-trace-detail-modal .autoSubmitted{color:orange}.approve-item>.description{border-top:0;font-size:14px;white-space:pre-line;color:#000}textarea.suggestion-control{height:auto;padding-right:30px;font-size:14px}.button-group{margin-bottom:15px}.button-group>.glyphicon{padding-left:15px;font-size:18px}.suggestion-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #d2d6de;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.suggestion-control:focus{border-color:#3c8dbc;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.suggestion-control::-moz-placeholder{color:#999;opacity:1}.suggestion-control:-ms-input-placeholder{color:#999}.suggestion-control::-webkit-input-placeholder{color:#999}.suggestion-control::-ms-expand{background-color:transparent;border:0}.form-group.has-error .suggestion-control{border-color:#dd4b39;box-shadow:none}.suggestion-control.select2-container{height:auto!important;padding:0}.suggestion-control .select2-choice{border:0;border-radius:2px}.suggestion-control:not(select){-webkit-appearance:none}.suggestion-control.select2-container.select2-dropdown-open{border-color:#5897fb;border-radius:3px 3px 0 0}textarea{resize:none}@media (min-width:768px){.container{width:760px}}[data-required] label:after{content:" *";color:red}.instance-attachments>.heading{font-size:17px}.ins-upload{display:inline-block;position:relative}.ins-upload .ins-file-icon{padding-left:15px;font-size:18px}.ins-upload .ins-file-input{display:inline-block;top:0;left:0;overflow:hidden}.ins-upload .ins-file-input,.ins-upload .ins-file-version-input{position:absolute;width:100%;height:100%;opacity:0;z-index:100;cursor:pointer}.ins-upload .ins-file-version-input{top:1px}.ins-applicant-selector{display:inline-block;width:160px}.ins-modal{-webkit-border-radius:4px}.ins-attach-view .delete,.ins-attach-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-view a{color:#3c8dbc}.ins-attach-view a:hover{text-decoration:underline}.ins-attach-view:hover .delete,.ins-attach-view:hover .mouse-hover{display:inline-block}.ins-attach-version-view{padding:8px}.ins-attach-version-view .delete,.ins-attach-version-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-version-view a:hover{text-decoration:underline}.ins-attach-version-view:hover .delete,.ins-attach-version-view:hover .mouse-hover{display:inline-block}.form-group .select2{width:100%!important}.selectOrg[readonly],.selectUser[readonly]{background-color:#fff!important}.draft .selectOrg[readonly],.draft .selectUser[readonly],.inbox .selectOrg[readonly],.inbox .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.draft .selectOrg[disabled],.draft .selectUser[disabled],.inbox .selectOrg[disabled],.inbox .selectUser[disabled],.selectOrg[disabled],.selectUser[disabled]{background-color:#fff!important}.cfTextarea[disabled],.cfTextarea[readonly]{height:100%;min-height:60px;word-wrap:break-word;word-break:keep-all}.steedos-table-modal-body .form-control{background-color:rgba(255,255,0,.03)!important}.steedos-table-modal-body .form-control[disabled],.steedos-table-modal-body .form-control[readonly],.steedos-table-modal-body fieldset[disabled] .form-control{background-color:#fff;opacity:1;color:#000}.instance-default .instance-form .form-control[disabled],.instance-default .instance-form .form-control[readonly],.instance-default .instance-form fieldset[disabled] .form-control{background-color:#fff!important;opacity:1;color:#000}.instance-default .instance-form .selectOrg[readonly],.instance-default .instance-form .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .selectOrg[disabled],.instance-default .instance-form .selectUser[disabled]{background-color:#fff!important}.instance-default .instance-form.draft .form-control,.instance-default .instance-form.inbox .form-control{background-color:rgba(255,255,0,.03)}.instance-default .instance-form .field-editable{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .readonly-table{border:1px solid #d2d6de}.instance-default .instance-form .readonly-table table{border:none}.instance-default .instance-form .readonly-table table tr td:first-of-type{border-left:none}.instance-default .instance-form .readonly-table table tr td:last-of-type{border-right:none}.instance p{margin:0}.instance .instance-header{margin-left:15px;margin-bottom:0!important}.instance .instance-header>div{padding-top:6px;padding-bottom:6px;text-align:left;font-weight:400}.instance .instance-form .box-body>.col-md-12{padding-right:0}.instance .instance-form .box-body form>.col-md-6:nth-child(2n){clear:both}@media (max-width:768px){.instance .instance-form .box-body .form-group.opinion-field{margin-bottom:10px}}.instance .instance-form .box-header{padding:0;margin-bottom:10px;margin-right:15px}.instance .instance-form .applicant-wrapper .input-group-addon{padding-left:0;border:none}.instance .instance-form .applicant-wrapper input{cursor:pointer}.instance .instance-form .ins_applicant{padding:6px 12px;width:100%;display:inline-block}.instance .instance-form #instanceform .col-md-6,.instance .instance-form #instanceform .col-md-12{padding-left:0}.instance-sign{border:1px solid #d2d6de;padding:5px 10px;color:#000}.instance-sign .instance-sign-content{min-height:20px;margin-bottom:10px}.instance-sign .instance-sign-content .not-finished{color:#888}.instance-sign .instance-sign-content .my-approve{border-left:3px solid #3c8dbc;padding-left:4px}.instance-sign .instance-sign-text{clear:both}.instance-traces{padding-right:15px}.instance-table .instance-traces{max-width:700px;padding-right:0}.instance-table .instance-template,.traces_table_modal .instance-template{max-width:700px}.instance-table .instance .form-group .form-control,.traces_table_modal .instance .form-group .form-control{min-height:34px}.instance-table .bootstrap-datetimepicker-widget table td,.traces_table_modal .bootstrap-datetimepicker-widget table td{border:none!important}.instance-table .instance-form .box-body>.col-md-12,.traces_table_modal .instance-form .box-body>.col-md-12{padding-right:15px}.instance-table .instance-form .box-header,.traces_table_modal .instance-form .box-header{padding:0;margin-bottom:0}.instance-table .instance-form .table-page-footer td,.traces_table_modal .instance-form .table-page-footer td{padding-left:0;padding-right:0}.instance-table .instance-sign,.traces_table_modal .instance-sign{border:0!important;padding:0}.instance-table .opinion-field,.traces_table_modal .opinion-field{padding:5px 10px;background:inherit!important}.instance-table .cfTextarea[disabled],.instance-table .cfTextarea[readonly],.traces_table_modal .cfTextarea[disabled],.traces_table_modal .cfTextarea[readonly]{min-height:auto}.instance-table .cfTextarea[disabled] p,.instance-table .cfTextarea[readonly] p,.traces_table_modal .cfTextarea[disabled] p,.traces_table_modal .cfTextarea[readonly] p{margin:0}.instance-table .attachments-list .attachments,.traces_table_modal .attachments-list .attachments{margin-bottom:0}.instance-table .box-header,.traces_table_modal .box-header{text-align:center;font-weight:bolder}.instance-table .applicant-wrapper,.traces_table_modal .applicant-wrapper{margin:0;text-align:left}.instance-table .applicant-wrapper .form-control.ins_applicant,.traces_table_modal .applicant-wrapper .form-control.ins_applicant{padding:0!important;height:100%;display:inline;background:transparent!important;border:none;min-height:20px!important}.instance-table .help-block,.traces_table_modal .help-block{display:none}.instance-table .form-table,.traces_table_modal .form-table{width:100%;border-collapse:collapse;border:2px solid #000;table-layout:fixed}.instance-table .form-table tbody,.instance-table .form-table tr,.traces_table_modal .form-table tbody,.traces_table_modal .form-table tr{border-color:inherit}.instance-table .form-table tr>td,.traces_table_modal .form-table tr>td{position:relative}.instance-table .form-table tr>td .instance-sign-text,.traces_table_modal .form-table tr>td .instance-sign-text{position:absolute;right:5px;bottom:2px}.instance-table .form-table .td-title,.traces_table_modal .form-table .td-title{width:16%;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field,.traces_table_modal .form-table .td-field{text-align:left;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field .form-group,.traces_table_modal .form-table .td-field .form-group{color:#000}.instance-table .form-table .td-field.readonly,.traces_table_modal .form-table .td-field.readonly{background:#fff}.instance-table .form-table .td-field .form-control,.traces_table_modal .form-table .td-field .form-control{padding:0}.instance-table .form-table .td-childfield,.traces_table_modal .form-table .td-childfield{border-top:1px solid #000;border-top-color:inherit!important;border-right:1px solid #000;border-right-color:inherit!important;border-bottom:1px solid #000;border-bottom-color:inherit!important;padding:0!important}.instance-table .form-table .tr-child-table+.td-childfield,.traces_table_modal .form-table .tr-child-table+.td-childfield{border-top:1px solid #000}.instance-table .form-table input,.instance-table .form-table select,.instance-table .form-table textarea,.traces_table_modal .form-table input,.traces_table_modal .form-table select,.traces_table_modal .form-table textarea{border-width:0 0 1px;border-bottom-color:#fff}.instance-table .form-table input:disabled,.instance-table .form-table select:disabled,.instance-table .form-table textarea:disabled,.traces_table_modal .form-table input:disabled,.traces_table_modal .form-table select:disabled,.traces_table_modal .form-table textarea:disabled{border-bottom:none}.instance-table .form-table select.form-control,.traces_table_modal .form-table select.form-control{padding:0}.instance-table .form-table .form-group,.traces_table_modal .form-table .form-group{margin-bottom:0}.instance-table .form-table .form-group .callout,.traces_table_modal .form-table .form-group .callout{margin:0;padding:4px 6px;border-radius:0;border-left:none}.instance-table .form-table .form-group .callout h4,.traces_table_modal .form-table .form-group .callout h4{margin:0;padding:0;height:26px;line-height:26px;font-size:14px;font-weight:700}.instance-table .form-table .form-group .form-control,.traces_table_modal .form-table .form-group .form-control{border:none;min-height:22px}.instance-table .form-table .form-group.has-error .form-control,.traces_table_modal .form-table .form-group.has-error .form-control{border-bottom:1px solid #dd4b39}.instance-table .form-table .form-group .steedos-table,.traces_table_modal .form-table .form-group .steedos-table{border:0;margin-bottom:0}.instance-table .form-table .form-group .steedos-table table,.instance-table .form-table .form-group .steedos-table td,.instance-table .form-table .form-group .steedos-table th,.traces_table_modal .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table td,.traces_table_modal .form-table .form-group .steedos-table th{border:1px solid #000}.instance-table .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table table{border-left:none;border-right:none;border-bottom:none!important}.instance-table .form-table .form-group .steedos-table td:first-child,.instance-table .form-table .form-group .steedos-table th:first-child,.traces_table_modal .form-table .form-group .steedos-table td:first-child,.traces_table_modal .form-table .form-group .steedos-table th:first-child{border-left:0!important}.instance-table .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.instance-table .form-table .form-group .steedos-table th:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table th:nth-last-child(-1n+2){border-right:0!important}.instance-table .form-table .form-group .steedos-table .panel-heading,.traces_table_modal .form-table .form-group .steedos-table .panel-heading{padding:4px 6px;border:none}.instance-table .form-table .form-group .steedos-table .panel-heading .pull-right,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .pull-right{height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .panel-heading .control-label,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .control-label{margin-bottom:0;height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .table-bordered,.traces_table_modal .form-table .form-group .steedos-table .table-bordered{border-bottom:none}.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td{border-bottom:none!important}@-moz-document url-prefix(){.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child th,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child th{border-bottom:1px solid #000!important}}.instance-table .form-table .af-checkbox-group,.instance-table .form-table .af-radio-group,.instance-table .form-table .checkbox,.traces_table_modal .form-table .af-checkbox-group,.traces_table_modal .form-table .af-radio-group,.traces_table_modal .form-table .checkbox{padding-left:12px;padding-top:6px}.instance-table .form-table .form-group>.checkbox,.traces_table_modal .form-table .form-group>.checkbox{vertical-align:middle;margin:0 0 -4px}.instance-table .form-table .form-group>.checkbox label,.traces_table_modal .form-table .form-group>.checkbox label{margin:0;min-height:20px;line-height:20px}.instance-table .form-table .form-group>.checkbox label input,.traces_table_modal .form-table .form-group>.checkbox label input{margin-top:0}.safari .instance-table .form-table .form-group>.checkbox label input,.safari .traces_table_modal .form-table .form-group>.checkbox label input{margin-top:4px}.instance-table .form-table .form-group>.af-checkbox-group label input,.instance-table .form-table .form-group>.af-radio-group label input,.traces_table_modal .form-table .form-group>.af-checkbox-group label input,.traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:0}.safari .instance-table .form-table .form-group>.af-checkbox-group label input,.safari .instance-table .form-table .form-group>.af-radio-group label input,.safari .traces_table_modal .form-table .form-group>.af-checkbox-group label input,.safari .traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:4px}.instance-table .instance-traces,.traces_table_modal .instance-traces{background:#fff}.instance-table .instance-traces .box-header,.traces_table_modal .instance-traces .box-header{padding-left:14px;margin-bottom:-10px;font-size:18px}.instance-table .instance-traces table.traces,.traces_table_modal .instance-traces table.traces{margin:15px auto;background:transparent;border:2px solid #000}.instance-table .instance-traces table.traces tr,.traces_table_modal .instance-traces table.traces tr{background:#fff}.instance-table .instance-traces table.traces td,.traces_table_modal .instance-traces table.traces td{background:transparent;border:1px solid #000;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-table .instance-traces table.traces td.td-stepname,.traces_table_modal .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-table .instance-traces table.traces td.td-approve,.traces_table_modal .instance-traces table.traces td.td-approve{padding:0}.instance-table .instance-traces table.traces td table,.traces_table_modal .instance-traces table.traces td table{width:100%}.instance-table .instance-traces table.traces td table tr,.traces_table_modal .instance-traces table.traces td table tr{width:100%;border:none}.instance-table .instance-traces table.traces td table tr.approve-item,.traces_table_modal .instance-traces table.traces td table tr.approve-item{border-bottom:1px solid #000}.instance-table .instance-traces table.traces td table tr.approve-item.description,.instance-table .instance-traces table.traces td table tr.approve-item:last-child,.traces_table_modal .instance-traces table.traces td table tr.approve-item.description,.traces_table_modal .instance-traces table.traces td table tr.approve-item:last-child{border-bottom:none}.instance-table .instance-traces table.traces td table tr td,.traces_table_modal .instance-traces table.traces td table tr td{text-align:left;border:none}.instance-table .instance-traces table.traces td table tr td.name,.traces_table_modal .instance-traces table.traces td table tr td.name{width:40%;color:#333}.instance-table .instance-traces table.traces td table tr td.finish-date,.traces_table_modal .instance-traces table.traces td table tr td.finish-date{width:35%;min-width:140px;color:#333}.instance-table .instance-traces table.traces td table tr td.description,.traces_table_modal .instance-traces table.traces td table tr td.description{padding-top:6px;padding-bottom:0;height:100%}.instance-table .instance-traces .image-sign,.traces_table_modal .instance-traces .image-sign{max-width:90px;max-height:60px}.instance-view .instance-table .draft .form-table .td-title.title-editable.is-required:after,.instance-view .instance-table .inbox .form-table .td-title.title-editable.is-required:after{content:"*";color:red}.instance-view .instance-table .draft .form-table .td-field.field-editable,.instance-view .instance-table .inbox .form-table .td-field.field-editable{background-color:rgba(255,255,0,.1)!important}.instance-print .navigation-bar #font-minus,.instance-print .navigation-bar #font-plus{padding:6px 8px}.instance-print .navigation-bar #printWidth{width:42px}.instance-print .content-wrapper{width:210mm}.instance-print .instance-traces{background:#fff}.instance-print .instance-traces .box-title{padding:10px 0}.instance-print .instance-table .instance-traces{padding-right:15px}.instance-print .instance-table .instance-traces .box-header{font-size:15px;padding-left:0;border-bottom:0}.instance-print .instance-table .instance-traces .box-header .box-tools{top:10px}.instance-print .instance-table .instance-traces .box-header .box-tools .btn-box-tool{padding:2px 5px 1px}.instance-print .instance-table .instance-traces .box-body{padding-top:0}.instance-print .instance-table .instance-traces .box-body table.traces{margin-top:5px}.af-checkbox-group .readonly,.af-radio-group .readonly,.checkbox .readonly,.radio .readonly{padding-left:0}.instance-form{margin-bottom:0;border-radius:0}.instance-traces{margin-bottom:5px;border-radius:0}.instance-traces .box-header .box-title{margin-left:5px}.touch .instance-traces table.traces{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-traces .cc-label{color:#333;font-weight:400;display:initial;border-radius:12px;margin-left:4px}.instance-traces .cc-label .cc-approve-remove{margin-left:4px}.instance-traces .selected .cc-label{color:#fff;font-weight:400;padding-left:5px;display:initial}.instance-traces .cc-approve-remove{padding:0;color:#97a0b3!important;cursor:pointer}.instance-traces .cc-approve-remove .ion{font-size:90%}.instance-traces .cc-approve-remove:hover{color:#606c84!important}.instance .form-group .form-control{height:100%;min-height:32px;word-break:break-all;padding-top:5px;padding-bottom:6px;vertical-align:middle}.instance .form-group .form-control.dx-date-box{width:100%!important;padding:0 0 0 12px}.instance .form-group .form-control.dx-date-box.dx-texteditor.dx-state-disabled:after{display:none}:root .instance .form-group .form-control,_:-ms-fullscreen{padding-top:6px}.instance .form-group .form-control,_:-ms-lang(x),_:-webkit-full-screen{padding-top:6px}.instance-table.instance .form-group .form-control{padding-top:0;padding-bottom:0}.instance-table.instance .form-group .form-control.dx-date-box{padding-left:0;margin:-3px 0}.instance-table.instance .form-group .form-control.dx-date-box .dx-texteditor-container .dx-texteditor-input{padding-right:20px}.instance .form-group input[type=date].form-control,.instance .form-group input[type=datetime-local].form-control{height:32px}.af-checkbox-group,.instance .form-group .af-radio-group{min-height:22px}.instance .form-group>.checkbox{min-height:22px;line-height:22px;padding-left:0;padding-top:0;margin-top:6px}.instance .form-group>.af-checkbox-group,.instance .form-group>.af-radio-group{padding-left:0;padding-top:0}.android .steedos-table-modal .form-group>.checkbox label,.mobile-safari .instance .form-group>.af-checkbox-group label,.mobile-safari .instance .form-group>.af-radio-group label,.mobile-safari .instance .form-group>.checkbox label,.mobile-safari .steedos-table-modal .form-group>.af-checkbox-group label,.mobile-safari .steedos-table-modal .form-group>.af-radio-group label,.mobile-safari .steedos-table-modal .form-group>.checkbox label{line-height:25px}.instance.instance-table .form-group>.af-checkbox-group label,.instance.instance-table .form-group>.af-radio-group label,.instance.instance-table .form-group>.checkbox label,_:-ms-lang(x) label,_:-webkit-full-screen label{line-height:22px}:root .instance .form-group>.checkbox label,_:-ms-fullscreen label{line-height:20px}.instance .instance_attachments{padding-left:0;padding-right:15px}.instance .instance_attachments .attachments-btns,.instance .instance_attachments .attachments-list{margin-bottom:10px}.instance .instance_attachments .ins-upload .steedos-icon-wrap svg.slds-button__icon{fill:#0070d2}.instance-table .instance_attachments{padding-left:0;padding-right:0}.instance-to-attachment label{font-weight:400;cursor:pointer}.image-sign{max-width:180px;max-height:90px}.instance-sign-text{text-align:right}.instance-sign-text .instance-sign-opinion-btn,.instance-sign-text .instance-sign-text-btn,.instance-suggestion #instance_flow_opinions,.instance-suggestion .instance-sign-opinion-btn{text-decoration:underline;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-suggestion #instance_next .instance-suggestion-next-steps{min-height:36px}.instance-suggestion #instance_next .instance-suggestion-next-steps .ion-ios-paperplane-outline{padding-left:5px}.instance-view .instance-name{text-align:center;margin-bottom:15px}.instance-view .instance-name .box-title{font-size:20px}.instance-view .instance-table-name-td{padding-bottom:10px}.no-border,.no-border td{border:0!important}.border-right{border-right:1px solid red!important;border-color:inherit!important}.border-right-none,.border-right-none td:last-child{border-right:0!important}.border-left{border-left:1px solid red!important;border-color:inherit!important}.border-left-none,.border-left-none td:first-child{border-left:0!important}.border-top{border-top:1px solid red!important;border-color:inherit!important}.border-top-none,.border-top-none tr:first-child td{border-top:0!important}.border-bottom{border-bottom:1px solid red!important;border-color:inherit!important}.border-bottom-none,.border-bottom-none tr:last-child td{border-bottom:0!important}.nowrap{white-space:nowrap}.verticle-mode{writing-mode:tb-lr;letter-spacing:12px;padding-top:12px!important;height:140px}.verticle-mode,.verticle-mode label{-webkit-writing-mode:vertical-lr;writing-mode:vertical-lr}.verticle-mode label{display:inline}.td-center{vertical-align:middle!important;text-align:center}.inline-left{display:inline;float:left}.inline-right{display:inline;float:right}.font-color-red{color:red!important}.font-color-black{color:#000!important}.border-color-red{border-color:red!important}.border-color-black{border-color:#000!important}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.font-weight-bold{font-weight:700}.instance-template tr:nth-child(2) td{border-top:0!important}.instance-template .section,.instance-template .section .control-label{color:inherit!important}.instance-template .form-table td{border-width:1px;border-style:solid!important;border-color:inherit!important}.instance-template td{vertical-align:top;padding:5px 10px}.instance-template td label{color:inherit;margin-bottom:0;font-weight:400}.instance-template .form-control[disabled],.instance-template .form-group[disabled]{width:100%;height:100%;background-color:transparent!important;border:none;padding:0}.instance-template input{font-size:inherit;padding:0;min-height:22px!important;font-weight:inherit}.instance-template textarea{font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}.instance-template select{font-family:inherit;color:inherit;font-weight:inherit}.instance-template .td-childfield>.form-group{color:inherit}.instance-template .form-group{color:#000}.instance-template .applicant-wrapper .form-control{color:#000!important}.instance-template .instance-title,.instance-template .instance-title .form-group,.instance-template .page-title,.instance-template .page-title .form-group{color:inherit;text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-control,.instance-template .instance-title .form-group .form-control,.instance-template .page-title .form-control,.instance-template .page-title .form-group .form-control{text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-group,.instance-template .instance-title .form-group .form-group,.instance-template .page-title .form-group,.instance-template .page-title .form-group .form-group{text-align:center;text-align:-webkit-center}.instance-template .instance-title .form-group select,.instance-template .instance-title select,.instance-template .page-title .form-group select,.instance-template .page-title select{height:41px!important;max-width:600px;margin:0 auto}.instance-template .instance-title .form-group input,.instance-template .instance-title input,.instance-template .page-title .form-group input,.instance-template .page-title input{min-height:41px!important}.instance-template .form-control{font-size:inherit;color:inherit!important;background-color:transparent!important}.ins-opinion-modal .btn-new-opinion{cursor:pointer;background:#fff}.ins-opinion-modal .btn-new-opinion:focus,.ins-opinion-modal .btn-new-opinion:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.ins-opinion-modal .list-group{margin-bottom:15px}.ins-opinion-modal .list-group .list-group-item{-ms-user-select:none;user-select:none;-moz-user-select:none;-webkit-user-select:none}.ins-opinion-modal .list-group .list-group-item .btn-sm{margin:-5px -2px}.ins-opinion-modal .list-group .list-group-item .pull-right{margin-right:-8px}.ins-opinion-modal .list-group:last-child .list-group-item:last-child{border-bottom:1px solid #ddd;border-bottom-left-radius:0;border-bottom-right-radius:0}.related-instances .related-instances-item a{color:#3c8dbc;cursor:pointer}.related-instances .related-instances-item .ins-related-delete{margin-left:10px}.related-instances .related-instances-item a:hover{text-decoration:underline}.steedos-html.steedos-html-table-only{margin:-6px -12px -6px -13px}.steedos-html.steedos-html-table-only table{border:none;width:100%!important}.instance-table .steedos-html.steedos-html-table-only{margin:-6px}.instance-table .steedos-html.steedos-html-table-only table tr:first-child td{border-top-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr:last-child td{border-bottom-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:first-child{border-left-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:last-child{border-right-width:0!important}.instance-form .slds-select_container:before{display:none}.traces_table_modal .modal-body{border-top:0}.traces_table_modal .modal-body .modal-header{display:none}.traces_table_modal .box{border:0;box-shadow:none}.traces_table_modal .box .box-header{display:none}.traces_table_modal .box .box-body{padding:0}.traces_table_modal .box .box-body table{margin:0 auto}.traces_modal .modal-body{padding:0}.traces_modal .modal-body .box{border-top:0}.traces_modal .modal-body .box .box-header{display:none}.instance-traces ol,.instance-traces ul{list-style:decimal;list-style-position:inside}.instance-trace-detail-modal .modal-header .modal-title{font-size:18px;font-weight:700}.instance-sign-modal #instance_flow_opinions{text-decoration:underline;cursor:pointer}.instance-sign-modal .suggestion-control{min-height:120px;font-size:17px}.instance-sign-modal .instance-sign-history{text-decoration:underline;cursor:pointer}.instance-sign-modal .instance-suggestion{font-size:15px}.instance-sign-modal .instance-suggestion .instance-sign-opinion-btn{display:inline-block;line-height:30px;margin-right:15px;vertical-align:bottom;font-size:17px;max-width:100%}.instance-sign-modal .instance-suggestion #instance_flow_opinions{line-height:30px;display:inline-block;font-size:17px}.history-sign-approve a{color:inherit}.history-sign-approve a.finish-date{float:right}.history-sign-approve .select-suggestion-td{width:10px}.history-sign-approve .select-suggestion-td .select-suggestion{display:inline-block;float:right}.history-sign-approve tr{cursor:pointer}.history-sign-approve .sign-approves{margin-top:0}.history-sign-approve .sign-approves .use-suggestion{margin-right:10px}.history-sign-approve .sign-approves .use-suggestion .weui-media-box__title{overflow:auto;text-overflow:unset;white-space:normal;font-size:15px!important;font-weight:400!important}.history-sign-approve .sign-approves .select-suggestion .weui-switch{outline:none;zoom:.78;cursor:pointer}.instance-pick_approve_users .title th{font-weight:700;border:1px solid #d2d6de}.instance-pick_approve_users .title .step{text-align:center}.instance-pick_approve_users .title .approves{padding-left:13px}.instance-pick_approve_users .step-item .td-step-approves .form-group{margin-bottom:0}.instance-pick_approve_users .step-item .td-step-approves .form-group .control-label{display:none}.instance-pick_approve_users .stepName{text-align:center}.instance-pick_approve_users .action{width:50px;text-align:center}.instance-pick_approve_users .td-step-check{width:80px;text-align:center}.instance-pick_approve_users .td-step-approves{background-color:rgba(255,255,0,.1)!important}.instance-pick_approve_users .td-step-approves .checkbox-inline label,.instance-pick_approve_users .td-step-approves .radio-inline label{font-weight:400}.instance-pick_approve_users .selectUser-box{line-height:28px!important;border:none!important;background-color:inherit!important}.instance-pick_approve_users .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-pick_approve_users .instance-traces table.traces{background:transparent;border:2px solid #d2d6de}.instance-pick_approve_users .instance-traces table.traces tr{background:#fff}.instance-pick_approve_users .instance-traces table.traces td{background:transparent;border:1px solid #d2d6de;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-pick_approve_users .instance-traces table.traces td.td-approve{padding:0}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:auto}.instance-pick_approve_users .instance-traces table.traces td.td-step-check{width:50px}.instance-pick_approve_users .instance-traces table.traces td.td-step-approves .radio-inline{display:block;margin:0;white-space:nowrap}}.instance-pick_approve_users .instance-traces table.traces th{white-space:nowrap}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces th.approves{text-align:center;padding-left:0}}.instance-table .instance-pick_approve_users .instance-traces table.traces,.instance-table .instance-pick_approve_users .instance-traces table.traces td,.instance-table .instance-pick_approve_users .instance-traces table.traces th{border-color:#000}.flow_list_box a{cursor:pointer;color:#000}.flow_list_box .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box .weui-cell .ion{font-size:20px}.flow_list_box .weui-cell.checked{background-color:#00a65a;color:#fff}.flow_list_box .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box .box{box-shadow:none}.flow_list_box .box .weui-cells{margin-top:0}.flow_list_box .weui-cell__bd,.flow_list_box .weui-cell__ft{cursor:pointer}.flow_list_box .ion-ios-star{color:#f39c12}.flow_list_box_org a{cursor:pointer;color:#000}.flow_list_box_org .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box_org .weui-cell{padding:6px 15px}.flow_list_box_org .weui-cell .ion{font-size:20px}.flow_list_box_org .weui-cell.checked{background:#beebff}.flow_list_box_org .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box_org .box{box-shadow:none}.flow_list_box_org .box .weui-cells{margin-top:0}.flow_list_box_org .weui-cell__bd,.flow_list_box_org .weui-cell__ft{cursor:pointer}.flow_list_box_org .ion-ios-star{color:#f39c12}.flow-list-box-org-modal{z-index:1050}.flow-list-box-org-modal .modal-body .box-header{padding:10px}.flow-list-box-org-modal .modal-body .contacts-list-wrapper{overflow-y:auto}.flow-list-box-modal-body{padding-top:5px}.forward-select-flow-modal input[readonly]{background-color:#fff!important}.instance-list-wrapper .slds-page-header--object-home{border-radius:0;border-left:0;border-right:0;height:100px}@media (max-width:768px){.instance-list-wrapper .slds-page-header--object-home{height:65px}}.instance-list-wrapper .slds-page-header--object-home .slds-media__figure{margin-top:-2px}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow{width:140%}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow ul{background:#fff!important}.instance-list-wrapper .slds-page-header--object-home .slds-button{cursor:pointer}.instance-list-wrapper .instance-list table.dataTable thead .sorting_asc:after{font:14px/1 DXIcons;content:"\f051";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting_desc:after{font:14px/1 DXIcons;content:"\f052";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting:after{font:14px/1 DXIcons;content:"\f055";opacity:0;bottom:10px}.instance-list-wrapper .instance-list-body .instance-list-sidebar{position:absolute;left:0;top:99px;bottom:0;width:260px;border-right:1px solid #e0e5ee}.instance-list-wrapper .instance-list-body .instance-list-content{position:absolute;left:0;right:0;top:99px;bottom:0}@media (max-width:768px){.instance-list-wrapper .instance-list-body .instance-list-content{top:64px}}@media (min-width:768px){.instance-list-wrapper{background:red}.instance-list-wrapper .dropdown-menu{min-width:260px;max-width:300px}}.instance-list{margin-top:1px}.instance-list .datatable-instances{border-right:none}.instance-list .dataTables_paginate{float:right;width:65%}.instance-list .dataTables_length{float:left;width:35%}@media (max-width:768px){.instance-list .dataTables_paginate{width:100%}}.instance-list>div:nth-child(3){overflow-x:auto}.instance-list .dataTables_container{position:relative}.instance-list .dataTables_container .ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail,.instance-list .dataTables_container .ps-container:hover>.ps-scrollbar-x-rail:hover{background:#fff}.instance-list .dataTables_wrapper tbody tr td{position:relative}.instance-list .flow-name{padding-left:15px;width:69%;color:#777}.instance-list.instance-list-empty .dataTables_wrapper{display:none}.instance-list.instance-list-empty .slds-illustration .slds-illustration__svg{margin-bottom:-.6rem}.instance-list .dataTables_wrapper thead th:first-child{padding-left:20px!important}.instance-list .dataTables_wrapper thead th{white-space:nowrap;min-width:115px}.instance-list .dataTables_wrapper thead th:nth-child(3){min-width:115px}.instance-list .color-priority{color:#00f;display:none}.instance-list .color-priority.instance-name{display:inline-block}.instance-list .color-priority.color-priority-danger{color:red;display:inline-block}.instance-list .color-priority.color-priority-warning{color:purple;display:inline-block}.instance-list .color-priority.color-priority-muted{color:#00f;display:inline-block}.instance-list .step-current-state.terminated{color:grey}.instance-list .step-current-state.approved{color:green}.instance-list .step-current-state.rejected{color:red}.instance-list .instance-priority-bar{position:absolute;width:20px;left:1px;top:22px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-name span{color:#333;display:inline-block;float:right;font-weight:400;margin-right:10px}.instance-list .instance-name .color-priority{margin-left:8px}.instance-list .selected .flow-name,.instance-list .selected .instance-modified,.instance-list .selected .instance-name span{color:#fff}.instance-list .instance-modified{color:#777}.instance-list .selected .step-current-state{color:#fff}.instance-list .instance-read-bar{position:absolute;width:20px;left:1px;top:4px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-read-bar .ion.instance-favorite-selected{color:#666}.instance-list .selected .instance-read-bar .ion.instance-favorite-selected{color:#fff}.instance-list .unread{color:#1f95ec;position:absolute;top:9px;left:5px;font-size:90%}.instance-list .instance-step-current-name{color:#999;font-weight:400;padding-left:5px;display:initial}.instance-list .selected .instance-step-current-name{color:#fff}.instance-list .toolbar{min-height:51px}.instance-list .search-tip-bar{border-bottom:1px solid #eee;padding:10px 20px}.instance-list [aria-label=Title],.instance-list [aria-label=标题]{min-width:400px!important}.instance-list th.flow-filter{position:relative;padding-right:30px;cursor:pointer}.instance-list th.flow-filter:after{font-family:Ionicons;content:"\f31b";right:0;position:absolute;bottom:8px;right:8px;display:block;opacity:.5}.batch_instances_view{position:absolute;width:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);bottom:120px;right:20px}.batch_instances_view button{z-index:999;position:fixed;right:20px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:57px;height:57px;border-radius:57px;font-size:16px}.instance-list-wrapper .tabular-filter-by-flow{margin-right:5px}.instance-list-wrapper .tabular-filter-by-flow .caret{margin-left:5px}.instance-list-wrapper .search-tip-bar .label{margin-right:5px;border-radius:0;font-size:12px}.instance-list-wrapper .search-tip-bar .breadcrumb{display:inline-block;margin-bottom:0;padding:0;background-color:#fff}#instance_more_search_modal .submit-date-icon{border-right:none}#instance_more_search_modal .submit_date_end{padding-top:5px}.instance-priority-danger .td-field-文件标题 .form-group,.instance-priority-danger input[name=文件标题]{color:red!important}.instance-priority-warning .td-field-文件标题 .form-group,.instance-priority-warning input[name=文件标题]{color:purple!important}.instance-priority-muted .td-field-文件标题 .form-group,.instance-priority-muted input[name=文件标题]{color:#00f!important}.workflow-menu{width:300px;left:50%;margin-left:-150px;padding:0}.workflow-menu .weui-navbar{bottom:0;top:auto;display:block}.workflow-menu .weui-navbar__item{cursor:pointer;padding:8px 0}.workflow-menu .weui-bar__item_on{background-color:#08c!important;color:#fff}.workflow-menu-by-flow{overflow-y:auto}.workflow-menu-by-flow .weui_cells_title{font-weight:400;margin-top:0;margin-bottom:0}.workflow-menu-by-flow .weui_cells{margin-top:0}.workflow-menu-by-flow .selected{background-color:#08c;color:#fff!important}.workflow-menu-by-flow .active{color:#0078d7!important}.workflow-menu-by-flow .fa-angle-left{display:none}.workflow-menu-by-flow>li>.treeview-menu{margin-left:10px}.workflow-menu-by-flow .treeview-menu .treeview-menu{padding-left:20px}.creator-content-wrapper .main-sidebar .workflow-menu-by-flow li>.treeview-menu{display:block!important}@media (max-width:767px){.creator-content-wrapper .main-sidebar{background:#fff!important;display:none;width:100%;margin-top:66px!important}.creator-content-wrapper .main-sidebar .top-sidebar,.creator-content-wrapper .main-sidebar .workflow-menu-by-flow .header-app{display:none}.creator-content-wrapper .main-sidebar>.sidebar{box-shadow:0 1px 3px rgba(0,0,0,.5);border-radius:4px;left:10px;right:10px;bottom:10px;border-top-left-radius:unset;border-top-right-radius:unset;padding-bottom:10px}.creator-content-wrapper .content-wrapper{-webkit-transform:none;-ms-transform:none;transform:none}.creator-content-wrapper .content-wrapper.content-wrapper-shadow{display:none}.sidebar-open .creator-content-wrapper .main-sidebar{display:block}}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node.other-inbox-node.first-other-inbox-node{border-top:1px solid rgba(0,0,0,.1);margin-top:1.5rem;padding:.25rem 0}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container{-webkit-box-flex:0.22;-webkit-flex:0.22;-ms-flex:0.22;flex:0.22;min-width:36px}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container .bg-special{color:#333}.steedos .content-wrapper{margin-left:0}.steedos .chooseFlow .chooseFlow-header-close{display:none!important}.steedos #chooseFlow-modal-content{overflow:hidden!important;overflow-y:auto!important}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .slds-button{padding:0;margin:0;background:none;border:0;line-height:inherit;text-align:left;color:#080707}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .all-flow-label-icon,.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .flow-label-icon{top:-2px;position:relative;color:rgba(51,51,51,.71)}.steedos #chooseFlow-modal-content .slds-input{border-top:0;border-left:0;border-right:0}@media screen and (max-width:647px){.steedos #chooseFlow-modal-content{overflow-y:hidden!important}.steedos .ReactModalPortal .slds-modal__container{margin:0;padding:0}.steedos .ReactModalPortal .slds-modal__container .chooseFlow-header-close{display:block!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header{height:49px;border-radius:0;padding:.5rem}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-modal__close{display:none}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-text-heading_medium{font-size:18px;color:#080707;line-height:30px}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content{height:100%;border-radius:0!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div,.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div>div{height:100%}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content .slds-tree_container{overflow:hidden;overflow-y:auto;height:calc(100% - 32px)!important;max-height:calc(100% - 32px)!important}}.workflow-main{position:absolute;top:0;left:0;right:0;bottom:0}.workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.instance-list-wrapper{right:-1px;left:0;float:left;padding-left:0;padding-right:0;overflow-y:hidden;position:absolute;top:0;bottom:0;background:#fff}.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:38px}.instance-list-wrapper .navigation-bar .btn-offcanvas .inbox-pending-icon{font-size:75%;position:relative;left:-8px;top:-6px}@media (max-width:767px){.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:42px;position:relative;left:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new{position:relative;right:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new .ion-plus{position:relative;top:1px}}.instance-list-wrapper .toolbar{height:51px;background:#f3f3f3}.instance-list-wrapper .toolbar .instance-search-box{margin-right:5px}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:235px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search{padding-right:35px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search_button{padding:6px 10px;margin-left:-35px;border-top-right-radius:6px;border-bottom-right-radius:6px;height:34px;z-index:4}.instance-list-wrapper .toolbar .instance-search-box .input-group .form-control{border-radius:6px}@media screen and (max-width:767px){.instance-list-wrapper .toolbar .instance-search-box{position:absolute;left:8px;right:8px;margin-right:0!important}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:100%}}.instance-list-wrapper .search-tip-bar{background:#fff;border-bottom:1px solid #eee;padding:10px 20px;height:40px;margin-top:2px}.instance-list-wrapper .search-tip-bar .result-container{width:calc(100% - 30px)}.instance-list-wrapper .search-tip-bar #instance_search_tip_close_btn{width:30px}.instance-list-wrapper .instance-list{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;bottom:0;right:0;left:0;position:absolute;background-color:#fff}.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}@media (max-width:767px){.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}}.instance-list-wrapper .instance-list .instance-name{padding-left:15px;font-weight:700;word-break:break-all;width:100%}.instance-list-wrapper .instance-list .flow-name{float:left}.instance-list-wrapper .instance-list .instance-modified{padding-right:10px;display:inline-block;float:right}.instance-list-wrapper .instance-list .instance-applicant{padding-left:15px}.instance-list-wrapper .navigation-title{overflow:visible!important}.instance-list-wrapper .dataTables_wrapper .dataTable{background:#fff;border-top:0;margin-top:0!important}.instance-list-wrapper .dataTables_wrapper .dataTable thead{display:none}.instance-list-wrapper .dataTables_wrapper .table-bordered{border-left:none}.instance-list-wrapper .dataTables_wrapper .table>tbody>tr>td{border-bottom:1px solid #e8e8e8;border-top:0}.instance-list-wrapper .dataTables_wrapper tbody tr:hover{cursor:pointer}.instance-list-wrapper .dataTables_wrapper tbody tr:hover td.dataTables_empty{cursor:default}.instance-wrapper{position:absolute;top:0;bottom:0;overflow:hidden}.instance-wrapper .pull-right .dropdown-menu{right:0;left:auto}.instance-wrapper .instance-left-buttons .steedos-amis-button .antd-Button{height:30px;line-height:30px}.instance-wrapper .instance-left-buttons .slds-dropdown-trigger .steedos-amis-button .antd-Button{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:#181818;font-size:12px}.instance-wrapper .navigation-bar .instance-left-buttons{height:38px;position:relative;top:-2px;min-width:50px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-submit,.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group{vertical-align:middle;margin-left:10px}@media (min-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group .dropdown-menu-right{left:0}}.instance-wrapper .navigation-bar .instance-left-buttons .btn{margin-right:-6px;padding-right:8px;padding-left:8px;margin-top:2px}@media (max-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons{top:1px;left:-6px}.instance-wrapper .navigation-bar .instance-left-buttons .btn{padding:8px;margin-top:1px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-back{padding:14px}.instance-wrapper .navigation-bar .pull-right .btn{position:relative;top:-9px;padding:14px;right:-9px}}.instance-wrapper .instance-view{background:#fff;position:absolute;bottom:0;left:0;right:0}.instance-wrapper .instance-view .instance-suggestion-close{position:absolute;right:5px;z-index:666}.instance-wrapper .instance-view .instance-suggestion-close .btn{color:#999;font-size:21px}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion-close{display:none}}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step{padding:3px 0 3px 12px;margin-bottom:0;font-weight:400;font-size:14px}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step input{display:none}.instance-wrapper .instance-view .suggestion-radio-box label{height:22px;line-height:22px;margin-right:10px;font-size:14px}.instance-wrapper .instance-view .suggestion-radio-box .radio-inline+.radio-inline{margin-left:0}.instance-wrapper .instance-view .btn-suggestion-toggle{z-index:999;position:absolute;bottom:20px;right:20px;border-radius:48px;font-size:24px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:48px;height:48px}.instance-wrapper .instance-view .btn-suggestion-toggle i.ion{float:left;height:36px;line-height:36px}.instance-wrapper .instance-view .btn-suggestion-toggle span{font-size:16px;float:left;margin-left:2px;height:36px;line-height:36px}.instance-wrapper .instance-view .txt-suggestion-toggle{width:57px;height:57px;border-radius:57px;font-size:16px}.instance-wrapper .instance-view .instance-suggestion{position:absolute;right:0;bottom:0;left:0;z-index:99;border-radius:0;display:none;padding:4px 4px 0;margin-bottom:0;overflow-y:auto;overflow-x:hidden;max-height:100%}.instance-wrapper .instance-view .instance-suggestion .form-group{margin-bottom:8px}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{word-wrap:break-word;width:calc(100% - 20px)}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box label{margin-right:3px;margin-bottom:0}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{width:100%}}.instance-wrapper .instance-view .instance-suggestion .input-group-addon{background-color:#f5f5f5;min-width:50px;text-align:left}.instance-wrapper .instance-view .instance-suggestion .help-block{margin:0}.instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions{border:none;padding:4px 8px;position:absolute;top:3px;right:25px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .btn-mobile{top:15px!important}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps{border:1px solid #ccc;background:#fff;padding:4px 0}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{cursor:pointer;padding:2px 0 2px 30px;font-weight:400;margin:0;line-height:20px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio:hover{background:#eee}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{line-height:25px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .mobile-safari{line-height:24px}}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .safari{line-height:24px}.instance-wrapper .instance-view .instance-suggestion .nextStepUsers{background:#fff!important;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .has-error .instance-suggestion-next-steps{border-color:#dd4b39}.instance-wrapper .instance-view.suggestion-active .instance-suggestion{display:block}.instance-wrapper .instance-view.suggestion-active .btn-suggestion-toggle{display:none}.instance-wrapper .instance-view .instance{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;top:0;bottom:0;right:0;left:0;position:absolute;background-color:#fff;padding:0 0 20px}body.dx-date-box-opened .instance-wrapper .instance-view .instance{overflow:hidden!important}.instance-wrapper .instance-view .instance .row{margin-right:0;margin-left:0}.instance-wrapper .instance-view .instance.instance-default .form-group{margin-bottom:5px}.instance-wrapper .instance-view .instance.instance-default .form-group .control-label{margin-bottom:3px;font-size:.875rem}.instance-wrapper .instance-view .instance .box-body{padding-left:15px;padding-right:15px}.instance-wrapper .instance-view .instance .instance-form .box-body,.instance-wrapper .instance-view .instance .instance-suggestion .box-body{padding-left:0;padding-right:0}.instance-wrapper .instance-view .instance .instance-suggestion{display:block;position:relative;box-shadow:none;z-index:auto;margin-bottom:-20px}.instance-wrapper .instance-view .instance .instance-suggestion .btn-remove{display:none}.instance-wrapper .instance-view .instance .instance-traces{margin-bottom:0;margin-top:10px;padding-top:10px;clear:both}.instance-wrapper .instance-view .instance .instance-traces .box-title{font-size:18px;margin:10px 0}.instance-wrapper .instance-view .instance.instance-table .instance-traces,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces{padding-bottom:10px}.instance-wrapper .instance-view .instance.instance-table .instance-traces>.pull-left,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-wrapper .select-approve-in-all-users .selectUser-box{border-right:none!important}.instance-wrapper .select-approve-in-all-users .select-all-users-btn{border-left:none!important;background-color:#fff!important;min-width:auto!important;cursor:pointer}.instance-wrapper .select-approve-in-all-users .selectNextStepUsersInAllUsers{display:none!important}:root .instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions,_:-ms-fullscreen #instance_flow_opinions{top:-2px;right:15px}.mobile-safari .instance-wrapper .instance-view .instance{padding-top:1px!important}.steedos .toggle-columns-box{margin:0 -6px}.steedos .toggle-columns-box .btn-toggle-columns i{margin-top:6px}.steedos .toggle-columns-box{display:none}@media (min-width:1441px){.steedos .toggle-columns-box{display:block}}.workflow-main .instance-list-wrapper{display:block;margin:0;border-radius:0;width:auto;left:0;right:0;border-right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-list-wrapper .instance-list{overflow:auto}.workflow-main .instance-wrapper{display:none;width:auto;left:0;right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-wrapper .instance{margin-bottom:1px}.workflow-main.instance-show .instance-list-wrapper{display:none}.workflow-main.instance-show .instance-wrapper{display:block;width:auto;left:0;right:0}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}@media (min-width:768px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:60%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:230px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:230px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:60%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:40%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:54%}}@media (min-width:1280px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:54%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:260px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:54%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:46%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:50%}}@media (max-width:767px){.steedos .workflow-main .instance-list-wrapper{margin:0;border-radius:0;background-color:transparent}.steedos .workflow-main .instance-list-wrapper .instance-list{border-top:1px solid #fff}.steedos .workflow-menu{width:250px;left:50%;margin-left:-125px;overflow-y:auto}}@media (min-width:768px){.workflow-main .instance-list-wrapper,.workflow-main .instance-wrapper{margin:.75rem .75rem 0;border-radius:.25rem}.three-columns .workflow-main .instance-wrapper{margin:.75rem .75rem 0 0}}.toast-top-right{top:52px;right:12px}@-webkit-keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}@keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}.no-columns .instance-wrapper{left:inherit!important;margin:0!important}.instance table{border-spacing:0;border-collapse:collapse}.related_instances_modal .modal-body{min-height:300px}.related_instances_modal .selectize-control.multi .selectize-input [data-value]{color:#fff;background-color:#1b9dec!important;padding-right:25px!important;padding-left:3px!important}.related_instances_modal .instance-state-group{line-height:34px}.related_instances_modal .radio-inline input{line-height:34px;height:34px;margin-top:0}.related_instances_modal .related_instances_list_search_btn{cursor:pointer}.related_instances_modal .pull-right{padding-left:15px}.related_instances_modal tbody tr{cursor:pointer}.related_instances_modal th:not(:first-child){min-width:60px}.related_instances_modal .box-tools{width:35%}.related-instances .title{padding:6px 0 0}.instance .related-instances{padding-left:0;padding-right:15px}.batch-instances-modal .modal-body{padding:0}.batch-instances-modal .modal-body .weui-cells{margin-top:0}.batch-instances-modal .modal-body .weui-cells span{font-size:13px;color:#888}.batch-instances-modal .modal-body .weui-cells:after,.batch-instances-modal .modal-body .weui-cells:before{display:none}.cancel_distribute_modal table th{padding:8px}.cancel_distribute_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_distribute_modal .th-width{width:10px}.cancel_distribute_modal .table-header{background-color:#eee}.cancel_cc_modal table th{padding:8px}.cancel_cc_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_cc_modal .th-width{width:10px}.cancel_cc_modal .table-header{background-color:#eee}.ps-container{-ms-touch-action:none;overflow:hidden!important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px}.ps-container>.ps-scrollbar-x-rail,.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0}.ps-container>.ps-scrollbar-y-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px}.ps-container>.ps-scrollbar-y-rail,.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder:after{content:"!";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.selectize-dropdown-header{position:relative;padding:3px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0;border-left:1px solid transparent;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;-webkit-font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 12px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#efefef;color:#333;border:0 solid transparent}.selectize-control.multi .selectize-input>div.active{background:#428bca;color:#fff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:grey;background:#fff;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input:after{content:" ";display:block;clear:left}.selectize-input.dropdown-active:before{content:" ";display:block;position:absolute;background:#fff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;background:#fff;margin:-1px 0 0;border:1px solid #d0d0d0;border-top:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .optgroup-header,.selectize-dropdown [data-selectable]{padding:3px 12px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5f5f5;color:#262626}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .create{color:rgba(51,51,51,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:" ";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-color:#333 transparent transparent;border-style:solid;border-width:5px 5px 0}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #333}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.42857143}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:" ";display:block;height:1px;overflow:hidden;background-color:#e5e5e5;margin:9px -12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 12px}.selectize-input{min-height:34px}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active:before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.has-error .selectize-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .selectize-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:9px;padding-right:9px}.selectize-control.multi .selectize-input>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:none;background:none;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-control>.selectize-input{-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.qhd-sync-archive,.qhd-sync-contracts{height:100%}.qhd-sync-archive .progress,.qhd-sync-contracts .progress{margin-bottom:0!important}.qhd-sync-archive .submit-date-icon,.qhd-sync-contracts .submit-date-icon{border-right:none}.qhd-sync-archive .box,.qhd-sync-contracts .box{height:100%;margin-bottom:0!important}.qhd-sync-archive .box .box-header.with-border,.qhd-sync-contracts .box .box-header.with-border{height:auto}.qhd-sync-archive .box .box-body,.qhd-sync-contracts .box .box-body{height:calc(100% - 51px);overflow-x:auto}.qhd-sync-archive .row,.qhd-sync-contracts .row{margin-right:0;margin-left:0}.qhd-sync-archive .label-error,.qhd-sync-contracts .label-error{background-color:red}.btn,.form-control{font-size:1rem}label{font-weight:.875rem}.btn-primary{background-color:#0070d2;border-color:#0070d2}@media (min-width:48em){.steedos .slds-form-element_horizontal .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__control{padding-left:18%;clear:none}.steedos .slds-form-element_horizontal .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__label{max-width:16.75%;-ms-flex-preferred-size:16.75%;flex-basis:16.75%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control{padding-left:8.73%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label{width:8.73%}}.steedos .slds-split-view__list-item-action{padding:.35rem 1rem}/*! + */.animated{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}.rotate{animation-name:rotate;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-name:rotate}.view-page-section-row .view-page-block-item{padding:0 .75rem}.view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;width:100%!important}.view-page-section-row .uiInput .form-control:active,.view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}.view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.view-page-section-row .uiInput .form-control[disabled]:active,.view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}@media (max-width:599px){.view-page-section-row{display:block}}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item{cursor:pointer}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content{height:26px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .dx-icon{height:18px;font-size:18px;line-height:18px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.creator-table-actions,.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.pull-right-container{-webkit-box-flex:0.12;-webkit-flex:0.12;-ms-flex:0.12;flex:0.12;text-align:right;margin-top:-3px;display:inline-block}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content>span{padding:1px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility{line-height:32px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{line-height:34px}.gridSidebarContainer.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:20px}@media (max-width:767px){body,html{position:fixed;overflow:hidden}}body{background-size:cover;zoom:1!important}body button{margin-right:0}.steedos label{margin-bottom:5px}.steedos .steedos-brand-band{display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;position:relative;height:100%;width:100%}.steedos .steedos-brand-band .slds-page-header .crm-header-icon{display:block;border-radius:.125rem}.steedos .steedos-brand-band .slds-page-header .crm-header-icon .uiImage{display:inherit}.steedos .steedos-brand-band .slds-page-header h1.crm-header-title{font-size:16px;position:relative}.steedos .steedos-brand-band .slds-page-header .crm-breadcrumb-item span{font-size:13px}.steedos .steedos-brand-band .slds-page-header .crm-header-menu{font-size:.8125rem;font-weight:400}.steedos .steedos-brand-band .listViewManager{height:100%;border-radius:.25rem;background-clip:padding-box}.steedos .steedos-brand-band .listViewManager .slds-page-header{border-top:none;border-left:none;border-right:none}.steedos .steedos-brand-band .listViewManager .forceListViewManagerHeader .slds-button{cursor:pointer}.steedos .steedos-brand-band .listViewManager .list-view-controls .slds-text-title--caps{font-size:12px}.steedos .steedos-brand-band .listViewManager .table-grid-content{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content{width:100%;height:100%;min-height:200px;padding-top:0;padding-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;overflow:hidden}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content>div{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable{width:auto;margin-top:0!important;border-top:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable td:not(:first-child){padding:5px 8px 4px}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable .creator_table_cell{line-height:1.25rem}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable .slds-is-sortable__icon{display:inline-block;fill-opacity:0}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:focus .slds-is-sortable__icon,.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:hover .slds-is-sortable__icon{fill-opacity:1}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .gridContainer .dx-datagrid .dx-scrollable-wrapper .dx-scrollable-container .dx-row.dx-freespace-row{display:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .table-creator{margin-top:0!important}.steedos .slds-card .slds-table tr:last-child .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(2) .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(3) .dropdown-menu{bottom:100%;top:auto}.steedos .slds-table+.dataTables_paginate{text-align:left;margin-left:1.5rem}.steedos .list-table-container .dataTables_wrapper .dataTable{table-layout:fixed}.steedos .list-table-container .dataTables_wrapper .JCLRgrip .JColResizer{top:1px;height:70vh}.steedos .list-table-container .dataTable thead>tr>td.sorting,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc,.steedos .list-table-container .dataTable thead>tr>th.sorting,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc{padding-right:0}.steedos .list-table-container .dataTable thead>tr>td.sorting>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc>a{padding-right:30px}.steedos .list-table-container .dataTable thead .sorting:after,.steedos .list-table-container .dataTable thead .sorting_asc:after,.steedos .list-table-container .dataTable thead .sorting_asc_disabled:after,.steedos .list-table-container .dataTable thead .sorting_desc:after,.steedos .list-table-container .dataTable thead .sorting_desc_disabled:after{display:none;bottom:4px}.steedos .list-table-container .dataTable thead>tr>th{position:relative}.steedos .list-table-container .dataTable thead>tr>th .slds-th__action{margin-bottom:1px}.td-cell-wrap table td{white-space:normal}.steedos.fixed #sidebar-menu{background:#fff;position:fixed;top:90px;width:250px;height:calc(100% - 90px);padding:0}.steedos.fixed .slds-form-element .control-label{font-weight:400;color:#706e6b}.steedos.fixed .dx-datagrid{background:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-rowsview{border-top:0}.steedos.fixed .dx-datagrid .dx-freespace-row td,.steedos.fixed .dx-datagrid .dx-freespace-row td:hover,.steedos.fixed .dx-datagrid .dx-row{background-color:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget{padding:3px;font-size:12px;border-top:1px solid #ddd}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-page-sizes .dx-page-size,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-page{padding:3px 8px}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-next-button,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-prev-button{padding:3px 8px;line-height:25px}.steedos.fixed .slds-tabs--default__nav,.steedos.fixed .slds-tabs_default__nav{border-bottom:1px solid #e7e7eb}.steedos.fixed .slds-modal__header{background-color:#f4f4f4;border-bottom:1px solid #d5d5da;color:#878687}.steedos.fixed .slds-modal__footer{border-top:1px solid #d5d5d5}.steedos.fixed .forceEntityIcon.extraSmall{width:1.5rem;height:1.5rem}.steedos.fixed .forceEntityIcon{display:block;border-radius:.125rem}.steedos.fixed .creator_view #creator-tabular .slds-card+.slds-card{margin-top:.75rem}.steedos.fixed .modal-dialog{margin:0 auto}.steedos.fixed .modal,.steedos.fixed .modal-body,.steedos.fixed .modal-footer,.steedos.fixed .modal-header{zoom:1!important}.flexipageBaseRecordHomeTemplateDesktop{height:100%}.flexipageBaseRecordHomeTemplateDesktop .row-main{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin:.75rem 0 0}.flexipageBaseRecordHomeTemplateDesktop .region-subheader{margin-top:.75rem}.flexipageBaseRecordHomeTemplateDesktop .region-main{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;max-width:70%;min-width:564px}.flexipageBaseRecordHomeTemplateDesktop .region-full-width{max-width:100%}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333%;min-width:404px}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{padding-left:.75rem;padding-right:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left{padding-left:0;padding-right:.75rem}@media only screen and (max-width:47.9375em){.flexipageBaseRecordHomeTemplateDesktop{min-width:auto}.flexipageBaseRecordHomeTemplateDesktop .row-main{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flexipageBaseRecordHomeTemplateDesktop .region-main{min-width:auto;max-width:none}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{min-width:auto;width:100%;padding:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{margin-top:.75rem}}.dx-scheduler-header{position:absolute;top:3px;left:calc(50% - 140px);right:100px;background:transparent;border:none;width:auto}.dx-scheduler-work-space{padding-top:0;margin-top:0}.dx-scheduler-all-day-title{margin-top:-64px}.dx-scheduler-header-panel-cell .dx-scheduler-header-panel-cell-date:last-child{font-size:16px}.dx-scheduler-navigator-caption{max-width:unset;width:auto}.slds-form_horizontal .slds-form-element__control{line-height:24px}.dx-treeview-item{padding:8px;min-height:32px;line-height:inherit}.dx-treeview-toggle-item-visibility{height:34px}.dx-treelist-headers .dx-treelist-table .dx-row>td,.dx-treelist .dx-row>td{padding-top:6px;padding-bottom:6px}.dx-treelist .dx-row>td{line-height:unset}.dx-treeview-with-search .dx-placeholder{font-size:13px}.slds-card{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border:.1px solid transparent}.dx-treeview [role=treeitem][aria-selected=true]>.dx-treeview-item{background:rgba(21,137,238,.1);box-shadow:inset 4px 0 0 #1589ee}.dx-treeview-node{padding-left:0}.dx-treeview-search{margin:8px 6px}.dx-treeview-item.dx-state-hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.87)}.dx-treeview-item-without-checkbox.dx-state-focused>.dx-treeview-item{background-color:rgba(0,0,0,.05)}.dx-treeview-toggle-item-visibility,.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{font-size:18px}.dx-treeview .dx-treeview-item-with-checkbox>.dx-checkbox{margin-top:-6px}.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:24px}.dx-treeview [aria-level="1"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:68px}.dx-treeview [aria-level="2"]>.dx-treeview-item{padding-left:48px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:30px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:98px}.dx-treeview [aria-level="3"]>.dx-treeview-item{padding-left:72px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:60px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:128px}.dx-treeview [aria-level="4"]>.dx-treeview-item{padding-left:96px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:90px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:158px}.dx-treeview [aria-level="5"]>.dx-treeview-item{padding-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:188px}.dx-treeview [aria-level="6"]>.dx-treeview-item{padding-left:144px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:150px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:218px}.dx-treeview [aria-level="7"]>.dx-treeview-item{padding-left:168px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:180px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:248px}.dx-treeview [aria-level="8"]>.dx-treeview-item{padding-left:192px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:210px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:278px}.dx-treeview [aria-level="9"]>.dx-treeview-item{padding-left:216px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:240px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:308px}.dx-treeview [aria-level="10"]>.dx-treeview-item{padding-left:240px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:270px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:338px}.dx-treeview [aria-level="2"]>.dx-treeview-toggle-item-visibility{margin-left:24px}.dx-treeview [aria-level="3"]>.dx-treeview-toggle-item-visibility{margin-left:48px}.dx-treeview [aria-level="4"]>.dx-treeview-toggle-item-visibility{margin-left:72px}.dx-treeview [aria-level="5"]>.dx-treeview-toggle-item-visibility{margin-left:96px}.dx-treeview [aria-level="6"]>.dx-treeview-toggle-item-visibility{margin-left:120px}.dx-treeview [aria-level="7"]>.dx-treeview-toggle-item-visibility{margin-left:144px}.dx-treeview [aria-level="8"]>.dx-treeview-toggle-item-visibility{margin-left:168px}.dx-treeview [aria-level="9"]>.dx-treeview-toggle-item-visibility{margin-left:192px}.dx-treeview [aria-level="10"]>.dx-treeview-toggle-item-visibility{margin-left:216px}.dx-scrollbar-vertical.dx-scrollbar-hoverable{width:12px}.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{width:16px}.dx-scrollbar-vertical .dx-scrollable-scroll{width:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable{height:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover{height:16px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{height:18px}.dx-scrollbar-horizontal .dx-scrollable-scroll{height:14px}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a{color:#777}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a .slds-truncate .slds-button__icon{visibility:hidden;margin-right:.2rem}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a{color:#333}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a .slds-truncate .slds-button__icon{visibility:visible}.steedos .dx-button-text{text-transform:unset}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content{border:1px solid #ddd;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);border-radius:6px;min-width:10rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content{padding:1rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content .dx-actionsheet-item .dx-button{border-radius:4px;background-color:#fff;border:1px solid #ddd;color:#333;box-shadow:none}.steedos .navigation-bar{width:100%;padding:9px;height:51px;border-bottom:1px solid #dddbda;background-color:#f3f2f2}.object-form label{font-weight:400}.steedos-amis-button{line-height:inherit!important}.steedos-amis-button button,.steedos-amis-button span{background-color:transparent!important;border:none!important}.steedos-amis-button span:active,.steedos-amis-button span:focus,.steedos-amis-button span:focus-visible,.steedos-amis-button span:hover{background-color:transparent!important;border:none!important;outline:none!important}.steedos-amis-button .slds-dropdown__item span{position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding:.5rem .75rem;color:#181818;white-space:nowrap;cursor:pointer}.creator-form-builder ._id-wrap{display:none}.creator-form-builder .className-wrap{display:none!important}.creator-form-builder .fields-wrap{display:none}.creator-form-builder .code-wrap label:after,.creator-form-builder [type=odata] .code-wrap label:after,.creator-form-builder [type=odata] .formula-wrap label:after,.creator-form-builder [type=odata] .search_field-wrap label:after,.creator-form-builder [type=odata] .url-wrap label:after{content:" *";color:red}.creator-form-builder .form-wrap.form-builder .frmb .prev-holder input[type=number]{width:100%}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options .option-value{display:none}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options input[type=text]{width:72%!important}.creator-form-builder #fbEditorForm .form-group .control-label{display:none!important}.form-wrap.form-builder .frmb .prev-holder .form-group>label:not([class=fb-checkbox-label]){display:none}.form-elements .form-group label{display:block!important}.section-field .form-group,.table-field .form-group{margin-left:0!important;margin-bottom:15px!important}.flow-modal .modal-lg{width:992px}.copy-flow-modal [data-required=true] label:after,.new-flow-modal [data-required=true] label:after{content:" *";color:red}#distribute_edit_flow_modal .selectize-input .item{color:#fff;background-color:#1b9dec!important;padding-right:24px!important;padding-left:3px!important;background-image:-webkit-linear-gradient(top,#1da7ee,#178ee9)!important;background-image:linear-gradient(180deg,#1da7ee,#178ee9)!important;background-repeat:repeat-x!important;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 1px hsla(0,0%,100%,.03)!important}#distribute_edit_flow_modal .selectize-input .remove{padding-top:4px!important}.creator-modal{zoom:1!important}#collectionModal .modal-body #cmForm>div:last-child{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#collectionModal .modal-footer form{display:inline-block}#cmForm.form-horizontal .control-label{text-align:left}#afModal .slds-modal__container{width:auto;max-width:100%}#afModal .slds-modal__container .slds-modal__content .remove-prompt{font-size:16px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox{margin-left:-10px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .slds-checkbox--faux{margin-top:-3px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .label-multiple-update{color:#706e6b;font-size:14px;font-weight:400}#afModal .slds-modal__container .slds-modal__footer .slds-button_destructive.btn-remove{float:left}#afModal [data-required=true] label:after{content:" *";color:red}#afModal .group-section .slds-section__title{font-size:.9rem;font-weight:inherit}#afModal .group-section .slds-section__title .slds-button__icon{width:.8rem;height:.8rem}#afModal .view-page-section-row .view-page-block-item{padding:0 .75rem}#afModal .view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;width:100%;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;padding:0 1rem 0 .75rem;line-height:34px;width:100%!important}#afModal .view-page-section-row .uiInput .form-control:active,#afModal .view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}#afModal .view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#afModal .view-page-section-row .uiInput .form-control[disabled]:active,#afModal .view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}#afModal .view-page-section-row .uiInput textarea.form-control{overflow:hidden}@media (max-width:599px){#afModal .view-page-section-row{display:block}}.slip-reordering{box-shadow:0 2px 10px rgba(0,0,0,.45)}.slip-swiping-container{overflow-x:hidden}.slippylist .slippylist-item{user-select:none;-moz-user-select:none;-webkit-user-select:none}.slippylist .slippylist-item.slip-allow-select{user-select:text;-moz-user-select:text;-webkit-user-select:text}.slippylist .slippylist-item.slip-allow-select span{cursor:text}.slippylist{clear:left}.slippylist input{vertical-align:middle}.skewed{transform:rotate(2deg) scale(.99);-webkit-transform:rotate(2deg) scale(.99)}.slip-no-swipe.slip-no-reorder{opacity:.5}@media print{body,html{position:static!important}.instance-print *{color:inherit!important}.instance-print .table-page-body .form-group,.instance-print .table-page-body .instance-sign,.instance-print .table-page-footer .form-group,.instance-print .table-page-footer .instance-sign{color:#000!important}.instance-print .instance-table .form-table .td-title.is-required:after{color:red!important}.box-tools button{display:none}.instance-traces .box-body{display:block!important}.no-print{display:none!important}a[href]:after{content:""!important}a,a:visited{text-decoration:none!important}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #000!important}.table-bordered th{border-bottom:1px solid #000!important}.steedos-table .checkbox,.steedos-table .radio{display:table-cell!important;position:static!important}.steedos-table table{border-bottom:none!important}.steedos-table .table{border-left:0!important;border-right:0!important;border-collapse:separate!important}.ins_attach_version{display:none!important}table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}}.instance-print{font-size:14px}.instance-print table{margin:auto}.instance-print .hidden-xs,.instance-print .instance-view .instance-name{display:inline!important}.instance-print .wrapper{overflow:visible;background:silver!important;position:inherit!important}.instance-print .content-wrapper{top:0!important}.instance-print .btn{border-radius:0}.instance-print .box{border-radius:0;border-top:0;margin-bottom:0;padding-bottom:10px;box-shadow:none}.instance-print .box .box-body{padding:10px 0 0}.instance-print .content-wrapper{margin-left:auto!important;width:700px;margin:0 auto;-webkit-transition:all .3s;transition:all .3s}.instance-print .instance-table .instance-template,.instance-print .traces_table_modal .instance-template{-webkit-transition:all .3s;transition:all .3s;max-width:none}.instance-print .instance-table .instance-traces,.instance-print .traces_table_modal .instance-traces{-webkit-transition:all .3s;transition:all .3s;max-width:none;padding-bottom:10px}.instance-print .instance-table .instance-traces>.pull-left,.instance-print .traces_table_modal .instance-traces>.pull-left{padding:10px 0 4px;font-size:15px}.instance-print .instance-table .steedos-table table thead .title,.instance-print .traces_table_modal .steedos-table table thead .title{min-width:auto;white-space:normal}.instance-print .navigation-bar .print-tool{padding:6px 12px;float:left}.instance-print .navigation-bar .print-tool .cbx-label{cursor:pointer;margin-right:8px}.instance-print .navigation-bar .print-tool .cbx-label .cbx-print{margin-right:4px}.instance-print .navigation-bar .print-tool .cbx-label span{position:relative;top:-1px}.instance-print .instance_attachments{margin-top:0!important}.instance-print .instance-traces{padding-left:15px;padding-right:15px}.instance-print .form-control{min-height:22px!important;text-align:left}.instance-print .td-padding{padding:5px 10px!important}.section .control-label{color:#333;font-weight:700;font-size:15px}.instance.instance-default .section.callout.callout-default{padding:2px 0;border:none;background:#fff;border-radius:0;margin-top:5px;margin-bottom:-5px}.instance.instance-default .section .control-label{color:#795548;font-weight:700;font-size:16px;width:100%;border-bottom:1px dashed #d2d6de;padding-bottom:3px}.instance.instance-default .section p{color:#777}.steedos-table .item-readonly{cursor:pointer}.steedos-table table .removed{min-width:31px;width:31px;text-align:center}.steedos-table table tbody .edit{cursor:pointer}.steedos-table table .number{text-align:right}.steedos-table table thead .title{min-width:50px;white-space:nowrap}.steedos-table .checkbox,.steedos-table .radio{margin-top:0;margin-bottom:0;display:table-cell;border-radius:0}.steedos-table .steedosTable-add-item{padding:3px 8px}.steedos-table .panel-body .panel-heading{background-color:#f5f5f5;border-color:#ddd}.steedos-table .panel-body .panel-heading .description{display:inherit}.steedos-table .panel-body .panel-heading .control-label{font-weight:700;font-size:15px}.instance-table .form-table .form-group .steedos-table .autoform-table tr td{border-top:1px solid #000!important;border-bottom:0!important}.instance-table .form-table .form-group .steedos-table .autoform-table td:last-child{border-right:none!important}.steedos-table .add-item-tr{background:rgba(255,255,0,.03);cursor:pointer}.steedos-table .add-item-tr td{border-bottom:0!important}.steedos-table .add-item-tr .ion{height:20px;line-height:20px;margin-right:6px}.steedos-table .panel-body{padding:0}.steedos-table .panel-body .panel-content{padding:0;overflow-x:auto}.steedos-table .panel-body .panel-content .table{margin-bottom:0}.instance-default .steedos-table{border-radius:0;border:none}.instance-default .steedos-table .panel-body .panel-heading{border:none;padding:2px 0;margin-bottom:-5px;margin-top:5px;background:none}.instance-default .steedos-table .panel-body .panel-heading .control-label{width:100%;color:#795548;font-size:16px}.instance-default .steedos-table .panel-body .panel-heading .description{margin-top:-10px;margin-bottom:10px;color:#777;padding-top:5px}.instance-default .steedos-table .panel-body .panel-content{padding-bottom:1px;border:1px solid #d2d6de}.instance-default .steedos-table .panel-body .panel-content .table-bordered{border:none}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead{background:#f9f9f9}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td{border:1px solid #eee;border-top:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:last-child{border-right:0}.steedos-table-modal .steedos-table-modal-body{overflow-y:auto;padding:0}.steedos-table-modal .steedos-table-modal-body .panel{border:none;box-shadow:none;margin-bottom:0}.steedos-table-modal .steedos-table-modal-body .panel .panel-body{padding:5px 15px;border:none;position:relative}.steedos-table-modal .steedos-table-modal-body .panel .panel-body .dx-widget.form-control{padding:6px 12px}.steedos-table-modal .steedos-table-modal-body .panel .panel-heading{display:none}.steedosTable-item-add{padding:2px 7px}#steedos-table-modal .steedos-selectize .selectize-dropdown{position:fixed;top:auto!important;left:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input [data-value]{padding:2px!important;min-height:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input .slds-pill .slds-pill__action{line-height:24px}.steedos-selectize .selectize-input{border-radius:0!important;background-image:none!important;border-color:#d2d6de!important;box-shadow:none!important;height:auto}.steedos-selectize .selectize-dropdown{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;height:200px!important}.steedos-selectize .selectize-dropdown-content{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;max-height:none!important;height:auto!important}.steedos-selectize .selectize-control.multi .selectize-input.has-items{padding:0!important}.steedos-selectize .selectize-control .selectize-input.disabled{opacity:1!important}.steedos-selectize .selectize-control.multi .selectize-input.disabled [data-value]{color:inherit!important}.steedos-selectize .disabled .slds-pill__remove{display:none}.slds-pill{display:inline-flex;align-items:center;justify-content:space-between;line-height:1.5;max-width:100%;padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff;position:relative;min-height:1.625rem}@media (pointer:coarse) and (hover:none){.slds-pill{line-height:1.875rem;padding:0 .75rem}}.slds-pill+.slds-pill{margin-left:.125rem}@media (pointer:coarse) and (hover:none){.slds-pill+.slds-pill{margin-left:.25rem}}.slds-pill:hover{background-color:#f4f6f9}.slds-pill:focus{outline:0;border-radius:.25rem;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.slds-pill a{text-decoration:none}.slds-pill--bare,.slds-pill_bare{background-color:transparent;border:0}.slds-pill--bare:hover,.slds-pill_bare:hover{background-color:transparent}.slds-pill-container,.slds-pill__container,.slds-pill_container{display:flex;min-height:calc(1.875rem + 2px);padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff}@media (pointer:coarse) and (hover:none){.slds-pill-container,.slds-pill__container,.slds-pill_container{padding:.25rem}}.slds-pill-container .slds-listbox_inline,.slds-pill__container .slds-listbox_inline,.slds-pill_container .slds-listbox_inline{margin-left:0;margin-right:0}.slds-pill__container--bare,.slds-pill__container_bare,.slds-pill_container--bare,.slds-pill_container_bare{display:flex;padding:.125rem;border:0;border-radius:0;background-color:transparent}.slds-pill__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (pointer:coarse) and (hover:none){.slds-pill__label{font-size:.875rem}}.slds-pill__label:focus{outline:0;border-radius:.25rem;box-shadow:0 0 3px #0070d2}.slds-pill__icon,.slds-pill__icon_container{width:1.25rem;height:1.25rem;margin-right:.25rem}.slds-pill__icon .slds-avatar,.slds-pill__icon .slds-icon,.slds-pill__icon_container .slds-avatar,.slds-pill__icon_container .slds-icon{width:1.25rem;height:1.25rem;display:block;font-size:.625rem}.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:calc(1.5rem + 2px)}@media (pointer:coarse) and (hover:none){.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:2.25rem}}.slds-pill__remove{width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.25rem;border-radius:.125rem}.slds-pill__remove svg{width:.875rem;height:.875rem}.slds-pill--link,.slds-pill_link{border:0;padding:0}.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{display:inline-block;position:absolute;top:50%;left:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{left:.75rem}}.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{position:absolute;top:50%;right:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{right:.75rem}}.slds-pill__action{padding:.125rem calc(1.25rem + 2px) .125rem .125rem;border:1px solid #dddbda;border-radius:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1;color:inherit!important}@media (pointer:coarse) and (hover:none){.slds-pill__action{padding:0 calc(1.75rem + 2px) 0 .75rem}}.slds-pill__action:focus{outline:0;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.selectize-control.multi .selectize-input [data-value]{background:none!important;box-shadow:none!important;border-radius:.25rem!important;display:inline-flex!important;align-items:center!important;justify-content:space-between!important;line-height:1.5!important;max-width:100%!important;padding:0!important;border:none!important;background-color:#fff!important;position:relative!important;min-height:1.625rem!important;text-shadow:none!important}.instance_new{cursor:pointer}.sidebar .treeview-menu .ion{float:left}.sidebar .treeview-menu .inbox-flow .flow-name{width:135px;vertical-align:bottom}.sidebar .treeview-menu .category-name{width:125px;vertical-align:bottom}.sidebar-collapse .sidebar .treeview-menu{max-height:350px;overflow-y:auto}.sidebar-collapse .sidebar .treeview-menu .inbxo-flow .flow-name{width:115px}.workflow .main-sidebar .sidebar-menu ul .active a{color:#0078d7!important}.workflow .main-sidebar .box-space-name{width:140px!important;vertical-align:bottom}.instanceContent{background:#fff}.callout.callout-default{border-color:#d2d6de;color:grey;background-color:#f1f1f1}.callout.callout-default h4{color:#333}.callout-default a{color:grey}.callout-default a:hover{color:#333}.panel-controls{float:right;display:block;cursor:pointer}.autoform-table{text-align:left;width:100%;max-width:100%}.autoform-table td.field.number{text-align:right}.font-size-h3{font-size:24px;margin-top:20px!important;margin-bottom:10px!important}.bg-info{padding:15px}.instance-traces>.heading{font-size:17px}.traces{font-size:14px}.traces td{border:none}.trace-item{height:30px;background-color:#eee;font-weight:700;font-size:14px;color:#404040}.trace-item .trace-approve-talbe .approve-item a.btn-link{display:inline-block}.approve-item,.approve-item-distribute{height:30px;font-size:13px;cursor:pointer}.approve-item-distribute .name,.approve-item .name{font-weight:700}.approve-item-distribute{cursor:auto!important}.approve-item .red{color:red}.approve-item .blue{color:#00f}.approve-description{border:none;height:auto}.approve-description .description{padding-top:0;border:none}.approve-description .description p{margin:0}.approve-description .red{color:red}.approve-description{cursor:pointer}.approve-item>.name{font-weight:700}.approve-item>.approved,.instance-trace-detail-modal .approved{color:green}.approve-item>.rejected,.instance-trace-detail-modal .rejected{color:red}.approve-item>.autoSubmitted,.instance-trace-detail-modal .autoSubmitted{color:orange}.approve-item>.description{border-top:0;font-size:14px;white-space:pre-line;color:#000}textarea.suggestion-control{height:auto;padding-right:30px;font-size:14px}.button-group{margin-bottom:15px}.button-group>.glyphicon{padding-left:15px;font-size:18px}.suggestion-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #d2d6de;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.suggestion-control:focus{border-color:#3c8dbc;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.suggestion-control::-moz-placeholder{color:#999;opacity:1}.suggestion-control:-ms-input-placeholder{color:#999}.suggestion-control::-webkit-input-placeholder{color:#999}.suggestion-control::-ms-expand{background-color:transparent;border:0}.form-group.has-error .suggestion-control{border-color:#dd4b39;box-shadow:none}.suggestion-control.select2-container{height:auto!important;padding:0}.suggestion-control .select2-choice{border:0;border-radius:2px}.suggestion-control:not(select){-webkit-appearance:none}.suggestion-control.select2-container.select2-dropdown-open{border-color:#5897fb;border-radius:3px 3px 0 0}textarea{resize:none}@media (min-width:768px){.container{width:760px}}[data-required] label:after{content:" *";color:red}.instance-attachments>.heading{font-size:17px}.ins-upload{display:inline-block;position:relative}.ins-upload .ins-file-icon{padding-left:15px;font-size:18px}.ins-upload .ins-file-input{display:inline-block;top:0;left:0;overflow:hidden}.ins-upload .ins-file-input,.ins-upload .ins-file-version-input{position:absolute;width:100%;height:100%;opacity:0;z-index:100;cursor:pointer}.ins-upload .ins-file-version-input{top:1px}.ins-applicant-selector{display:inline-block;width:160px}.ins-modal{-webkit-border-radius:4px}.ins-attach-view .delete,.ins-attach-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-view a{color:#3c8dbc}.ins-attach-view a:hover{text-decoration:underline}.ins-attach-view:hover .delete,.ins-attach-view:hover .mouse-hover{display:inline-block}.ins-attach-version-view{padding:8px}.ins-attach-version-view .delete,.ins-attach-version-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-version-view a:hover{text-decoration:underline}.ins-attach-version-view:hover .delete,.ins-attach-version-view:hover .mouse-hover{display:inline-block}.form-group .select2{width:100%!important}.selectOrg[readonly],.selectUser[readonly]{background-color:#fff!important}.draft .selectOrg[readonly],.draft .selectUser[readonly],.inbox .selectOrg[readonly],.inbox .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.draft .selectOrg[disabled],.draft .selectUser[disabled],.inbox .selectOrg[disabled],.inbox .selectUser[disabled],.selectOrg[disabled],.selectUser[disabled]{background-color:#fff!important}.cfTextarea[disabled],.cfTextarea[readonly]{height:100%;min-height:60px;word-wrap:break-word;word-break:keep-all}.steedos-table-modal-body .form-control{background-color:rgba(255,255,0,.03)!important}.steedos-table-modal-body .form-control[disabled],.steedos-table-modal-body .form-control[readonly],.steedos-table-modal-body fieldset[disabled] .form-control{background-color:#fff;opacity:1;color:#000}.instance-default .instance-form .form-control[disabled],.instance-default .instance-form .form-control[readonly],.instance-default .instance-form fieldset[disabled] .form-control{background-color:#fff!important;opacity:1;color:#000}.instance-default .instance-form .selectOrg[readonly],.instance-default .instance-form .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .selectOrg[disabled],.instance-default .instance-form .selectUser[disabled]{background-color:#fff!important}.instance-default .instance-form.draft .form-control,.instance-default .instance-form.inbox .form-control{background-color:rgba(255,255,0,.03)}.instance-default .instance-form .field-editable{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .readonly-table{border:1px solid #d2d6de}.instance-default .instance-form .readonly-table table{border:none}.instance-default .instance-form .readonly-table table tr td:first-of-type{border-left:none}.instance-default .instance-form .readonly-table table tr td:last-of-type{border-right:none}.instance p{margin:0}.instance .instance-header{margin-left:15px;margin-bottom:0!important}.instance .instance-header>div{padding-top:6px;padding-bottom:6px;text-align:left;font-weight:400}.instance .instance-form .box-body>.col-md-12{padding-right:0}.instance .instance-form .box-body form>.col-md-6:nth-child(2n){clear:both}@media (max-width:768px){.instance .instance-form .box-body .form-group.opinion-field{margin-bottom:10px}}.instance .instance-form .box-header{padding:0;margin-bottom:10px;margin-right:15px}.instance .instance-form .applicant-wrapper .input-group-addon{padding-left:0;border:none}.instance .instance-form .applicant-wrapper input{cursor:pointer}.instance .instance-form .ins_applicant{padding:6px 12px;width:100%;display:inline-block}.instance .instance-form #instanceform .col-md-6,.instance .instance-form #instanceform .col-md-12{padding-left:0}.instance .instance-form #instanceform .td-field p{white-space:pre-line}.instance-sign{border:1px solid #d2d6de;padding:5px 10px;color:#000}.instance-sign .instance-sign-content{min-height:20px;margin-bottom:10px}.instance-sign .instance-sign-content .not-finished{color:#888}.instance-sign .instance-sign-content .my-approve{border-left:3px solid #3c8dbc;padding-left:4px}.instance-sign .instance-sign-text{clear:both}.instance-traces{padding-right:15px}.instance-table .instance-traces{max-width:700px;padding-right:0}.instance-table .instance-template,.traces_table_modal .instance-template{max-width:700px}.instance-table .instance .form-group .form-control,.traces_table_modal .instance .form-group .form-control{min-height:34px}.instance-table .bootstrap-datetimepicker-widget table td,.traces_table_modal .bootstrap-datetimepicker-widget table td{border:none!important}.instance-table .instance-form .box-body>.col-md-12,.traces_table_modal .instance-form .box-body>.col-md-12{padding-right:15px}.instance-table .instance-form .box-header,.traces_table_modal .instance-form .box-header{padding:0;margin-bottom:0}.instance-table .instance-form .table-page-footer td,.traces_table_modal .instance-form .table-page-footer td{padding-left:0;padding-right:0}.instance-table .instance-sign,.traces_table_modal .instance-sign{border:0!important;padding:0}.instance-table .opinion-field,.traces_table_modal .opinion-field{padding:5px 10px;background:inherit!important}.instance-table .cfTextarea[disabled],.instance-table .cfTextarea[readonly],.traces_table_modal .cfTextarea[disabled],.traces_table_modal .cfTextarea[readonly]{min-height:auto}.instance-table .cfTextarea[disabled] p,.instance-table .cfTextarea[readonly] p,.traces_table_modal .cfTextarea[disabled] p,.traces_table_modal .cfTextarea[readonly] p{margin:0}.instance-table .attachments-list .attachments,.traces_table_modal .attachments-list .attachments{margin-bottom:0}.instance-table .box-header,.traces_table_modal .box-header{text-align:center;font-weight:bolder}.instance-table .applicant-wrapper,.traces_table_modal .applicant-wrapper{margin:0;text-align:left}.instance-table .applicant-wrapper .form-control.ins_applicant,.traces_table_modal .applicant-wrapper .form-control.ins_applicant{padding:0!important;height:100%;display:inline;background:transparent!important;border:none;min-height:20px!important}.instance-table .help-block,.traces_table_modal .help-block{display:none}.instance-table .form-table,.traces_table_modal .form-table{width:100%;border-collapse:collapse;border:2px solid #000;table-layout:fixed}.instance-table .form-table tbody,.instance-table .form-table tr,.traces_table_modal .form-table tbody,.traces_table_modal .form-table tr{border-color:inherit}.instance-table .form-table tr>td,.traces_table_modal .form-table tr>td{position:relative}.instance-table .form-table tr>td .instance-sign-text,.traces_table_modal .form-table tr>td .instance-sign-text{position:absolute;right:5px;bottom:2px}.instance-table .form-table .td-title,.traces_table_modal .form-table .td-title{width:16%;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field,.traces_table_modal .form-table .td-field{text-align:left;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field .form-group,.traces_table_modal .form-table .td-field .form-group{color:#000}.instance-table .form-table .td-field.readonly,.traces_table_modal .form-table .td-field.readonly{background:#fff}.instance-table .form-table .td-field .form-control,.traces_table_modal .form-table .td-field .form-control{padding:0}.instance-table .form-table .td-childfield,.traces_table_modal .form-table .td-childfield{border-top:1px solid #000;border-top-color:inherit!important;border-right:1px solid #000;border-right-color:inherit!important;border-bottom:1px solid #000;border-bottom-color:inherit!important;padding:0!important}.instance-table .form-table .tr-child-table+.td-childfield,.traces_table_modal .form-table .tr-child-table+.td-childfield{border-top:1px solid #000}.instance-table .form-table input,.instance-table .form-table select,.instance-table .form-table textarea,.traces_table_modal .form-table input,.traces_table_modal .form-table select,.traces_table_modal .form-table textarea{border-width:0 0 1px;border-bottom-color:#fff}.instance-table .form-table input:disabled,.instance-table .form-table select:disabled,.instance-table .form-table textarea:disabled,.traces_table_modal .form-table input:disabled,.traces_table_modal .form-table select:disabled,.traces_table_modal .form-table textarea:disabled{border-bottom:none}.instance-table .form-table select.form-control,.traces_table_modal .form-table select.form-control{padding:0}.instance-table .form-table .form-group,.traces_table_modal .form-table .form-group{margin-bottom:0}.instance-table .form-table .form-group .callout,.traces_table_modal .form-table .form-group .callout{margin:0;padding:4px 6px;border-radius:0;border-left:none}.instance-table .form-table .form-group .callout h4,.traces_table_modal .form-table .form-group .callout h4{margin:0;padding:0;height:26px;line-height:26px;font-size:14px;font-weight:700}.instance-table .form-table .form-group .form-control,.traces_table_modal .form-table .form-group .form-control{border:none;min-height:22px}.instance-table .form-table .form-group.has-error .form-control,.traces_table_modal .form-table .form-group.has-error .form-control{border-bottom:1px solid #dd4b39}.instance-table .form-table .form-group .steedos-table,.traces_table_modal .form-table .form-group .steedos-table{border:0;margin-bottom:0}.instance-table .form-table .form-group .steedos-table table,.instance-table .form-table .form-group .steedos-table td,.instance-table .form-table .form-group .steedos-table th,.traces_table_modal .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table td,.traces_table_modal .form-table .form-group .steedos-table th{border:1px solid #000}.instance-table .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table table{border-left:none;border-right:none;border-bottom:none!important}.instance-table .form-table .form-group .steedos-table td:first-child,.instance-table .form-table .form-group .steedos-table th:first-child,.traces_table_modal .form-table .form-group .steedos-table td:first-child,.traces_table_modal .form-table .form-group .steedos-table th:first-child{border-left:0!important}.instance-table .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.instance-table .form-table .form-group .steedos-table th:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table th:nth-last-child(-1n+2){border-right:0!important}.instance-table .form-table .form-group .steedos-table .panel-heading,.traces_table_modal .form-table .form-group .steedos-table .panel-heading{padding:4px 6px;border:none}.instance-table .form-table .form-group .steedos-table .panel-heading .pull-right,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .pull-right{height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .panel-heading .control-label,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .control-label{margin-bottom:0;height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .table-bordered,.traces_table_modal .form-table .form-group .steedos-table .table-bordered{border-bottom:none}.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td{border-bottom:none!important}@-moz-document url-prefix(){.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child th,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child th{border-bottom:1px solid #000!important}}.instance-table .form-table .af-checkbox-group,.instance-table .form-table .af-radio-group,.instance-table .form-table .checkbox,.traces_table_modal .form-table .af-checkbox-group,.traces_table_modal .form-table .af-radio-group,.traces_table_modal .form-table .checkbox{padding-left:12px;padding-top:6px}.instance-table .form-table .form-group>.checkbox,.traces_table_modal .form-table .form-group>.checkbox{vertical-align:middle;margin:0 0 -4px}.instance-table .form-table .form-group>.checkbox label,.traces_table_modal .form-table .form-group>.checkbox label{margin:0;min-height:20px;line-height:20px}.instance-table .form-table .form-group>.checkbox label input,.traces_table_modal .form-table .form-group>.checkbox label input{margin-top:0}.safari .instance-table .form-table .form-group>.checkbox label input,.safari .traces_table_modal .form-table .form-group>.checkbox label input{margin-top:4px}.instance-table .form-table .form-group>.af-checkbox-group label input,.instance-table .form-table .form-group>.af-radio-group label input,.traces_table_modal .form-table .form-group>.af-checkbox-group label input,.traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:0}.safari .instance-table .form-table .form-group>.af-checkbox-group label input,.safari .instance-table .form-table .form-group>.af-radio-group label input,.safari .traces_table_modal .form-table .form-group>.af-checkbox-group label input,.safari .traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:4px}.instance-table .instance-traces,.traces_table_modal .instance-traces{background:#fff}.instance-table .instance-traces .box-header,.traces_table_modal .instance-traces .box-header{padding-left:14px;margin-bottom:-10px;font-size:18px}.instance-table .instance-traces table.traces,.traces_table_modal .instance-traces table.traces{margin:15px auto;background:transparent;border:2px solid #000}.instance-table .instance-traces table.traces tr,.traces_table_modal .instance-traces table.traces tr{background:#fff}.instance-table .instance-traces table.traces td,.traces_table_modal .instance-traces table.traces td{background:transparent;border:1px solid #000;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-table .instance-traces table.traces td.td-stepname,.traces_table_modal .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-table .instance-traces table.traces td.td-approve,.traces_table_modal .instance-traces table.traces td.td-approve{padding:0}.instance-table .instance-traces table.traces td table,.traces_table_modal .instance-traces table.traces td table{width:100%}.instance-table .instance-traces table.traces td table tr,.traces_table_modal .instance-traces table.traces td table tr{width:100%;border:none}.instance-table .instance-traces table.traces td table tr.approve-item,.traces_table_modal .instance-traces table.traces td table tr.approve-item{border-bottom:1px solid #000}.instance-table .instance-traces table.traces td table tr.approve-item.description,.instance-table .instance-traces table.traces td table tr.approve-item:last-child,.traces_table_modal .instance-traces table.traces td table tr.approve-item.description,.traces_table_modal .instance-traces table.traces td table tr.approve-item:last-child{border-bottom:none}.instance-table .instance-traces table.traces td table tr td,.traces_table_modal .instance-traces table.traces td table tr td{text-align:left;border:none}.instance-table .instance-traces table.traces td table tr td.name,.traces_table_modal .instance-traces table.traces td table tr td.name{width:40%;color:#333}.instance-table .instance-traces table.traces td table tr td.finish-date,.traces_table_modal .instance-traces table.traces td table tr td.finish-date{width:35%;min-width:140px;color:#333}.instance-table .instance-traces table.traces td table tr td.description,.traces_table_modal .instance-traces table.traces td table tr td.description{padding-top:6px;padding-bottom:0;height:100%}.instance-table .instance-traces .image-sign,.traces_table_modal .instance-traces .image-sign{max-width:90px;max-height:60px}.instance-view .instance-table .draft .form-table .td-title.title-editable.is-required:after,.instance-view .instance-table .inbox .form-table .td-title.title-editable.is-required:after{content:"*";color:red}.instance-view .instance-table .draft .form-table .td-field.field-editable,.instance-view .instance-table .inbox .form-table .td-field.field-editable{background-color:rgba(255,255,0,.1)!important}.instance-print .navigation-bar #font-minus,.instance-print .navigation-bar #font-plus{padding:6px 8px}.instance-print .navigation-bar #printWidth{width:42px}.instance-print .content-wrapper{width:210mm}.instance-print .instance-traces{background:#fff}.instance-print .instance-traces .box-title{padding:10px 0}.instance-print .instance-table .instance-traces{padding-right:15px}.instance-print .instance-table .instance-traces .box-header{font-size:15px;padding-left:0;border-bottom:0}.instance-print .instance-table .instance-traces .box-header .box-tools{top:10px}.instance-print .instance-table .instance-traces .box-header .box-tools .btn-box-tool{padding:2px 5px 1px}.instance-print .instance-table .instance-traces .box-body{padding-top:0}.instance-print .instance-table .instance-traces .box-body table.traces{margin-top:5px}.af-checkbox-group .readonly,.af-radio-group .readonly,.checkbox .readonly,.radio .readonly{padding-left:0}.instance-form{margin-bottom:0;border-radius:0}.instance-traces{margin-bottom:5px;border-radius:0}.instance-traces .box-header .box-title{margin-left:5px}.touch .instance-traces table.traces{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-traces .cc-label{color:#333;font-weight:400;display:initial;border-radius:12px;margin-left:4px}.instance-traces .cc-label .cc-approve-remove{margin-left:4px}.instance-traces .selected .cc-label{color:#fff;font-weight:400;padding-left:5px;display:initial}.instance-traces .cc-approve-remove{padding:0;color:#97a0b3!important;cursor:pointer}.instance-traces .cc-approve-remove .ion{font-size:90%}.instance-traces .cc-approve-remove:hover{color:#606c84!important}.instance .form-group .form-control{height:100%;min-height:32px;word-break:break-all;padding-top:5px;padding-bottom:6px;vertical-align:middle}.instance .form-group .form-control.dx-date-box{width:100%!important;padding:0 0 0 12px}.instance .form-group .form-control.dx-date-box.dx-texteditor.dx-state-disabled:after{display:none}:root .instance .form-group .form-control,_:-ms-fullscreen{padding-top:6px}.instance .form-group .form-control,_:-ms-lang(x),_:-webkit-full-screen{padding-top:6px}.instance-table.instance .form-group .form-control{padding-top:0;padding-bottom:0}.instance-table.instance .form-group .form-control.dx-date-box{padding-left:0;margin:-3px 0}.instance-table.instance .form-group .form-control.dx-date-box .dx-texteditor-container .dx-texteditor-input{padding-right:20px}.instance .form-group input[type=date].form-control,.instance .form-group input[type=datetime-local].form-control{height:32px}.af-checkbox-group,.instance .form-group .af-radio-group{min-height:22px}.instance .form-group>.checkbox{min-height:22px;line-height:22px;padding-left:0;padding-top:0;margin-top:6px}.instance .form-group>.af-checkbox-group,.instance .form-group>.af-radio-group{padding-left:0;padding-top:0}.android .steedos-table-modal .form-group>.checkbox label,.mobile-safari .instance .form-group>.af-checkbox-group label,.mobile-safari .instance .form-group>.af-radio-group label,.mobile-safari .instance .form-group>.checkbox label,.mobile-safari .steedos-table-modal .form-group>.af-checkbox-group label,.mobile-safari .steedos-table-modal .form-group>.af-radio-group label,.mobile-safari .steedos-table-modal .form-group>.checkbox label{line-height:25px}.instance.instance-table .form-group>.af-checkbox-group label,.instance.instance-table .form-group>.af-radio-group label,.instance.instance-table .form-group>.checkbox label,_:-ms-lang(x) label,_:-webkit-full-screen label{line-height:22px}:root .instance .form-group>.checkbox label,_:-ms-fullscreen label{line-height:20px}.instance .instance_attachments{padding-left:0;padding-right:15px}.instance .instance_attachments .attachments-btns,.instance .instance_attachments .attachments-list{margin-bottom:10px}.instance .instance_attachments .ins-upload .steedos-icon-wrap svg.slds-button__icon{fill:#0070d2}.instance-table .instance_attachments{padding-left:0;padding-right:0}.instance-to-attachment label{font-weight:400;cursor:pointer}.image-sign{max-width:180px;max-height:90px}.instance-sign-text{text-align:right}.instance-sign-text .instance-sign-opinion-btn,.instance-sign-text .instance-sign-text-btn,.instance-suggestion #instance_flow_opinions,.instance-suggestion .instance-sign-opinion-btn{text-decoration:underline;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-suggestion #instance_next .instance-suggestion-next-steps{min-height:36px}.instance-suggestion #instance_next .instance-suggestion-next-steps .ion-ios-paperplane-outline{padding-left:5px}.instance-view .instance-name{text-align:center;margin-bottom:15px}.instance-view .instance-name .box-title{font-size:20px}.instance-view .instance-table-name-td{padding-bottom:10px}.no-border,.no-border td{border:0!important}.border-right{border-right:1px solid red!important;border-color:inherit!important}.border-right-none,.border-right-none td:last-child{border-right:0!important}.border-left{border-left:1px solid red!important;border-color:inherit!important}.border-left-none,.border-left-none td:first-child{border-left:0!important}.border-top{border-top:1px solid red!important;border-color:inherit!important}.border-top-none,.border-top-none tr:first-child td{border-top:0!important}.border-bottom{border-bottom:1px solid red!important;border-color:inherit!important}.border-bottom-none,.border-bottom-none tr:last-child td{border-bottom:0!important}.nowrap{white-space:nowrap}.verticle-mode{writing-mode:tb-lr;letter-spacing:12px;padding-top:12px!important;height:140px}.verticle-mode,.verticle-mode label{-webkit-writing-mode:vertical-lr;writing-mode:vertical-lr}.verticle-mode label{display:inline}.td-center{vertical-align:middle!important;text-align:center}.inline-left{display:inline;float:left}.inline-right{display:inline;float:right}.font-color-red{color:red!important}.font-color-black{color:#000!important}.border-color-red{border-color:red!important}.border-color-black{border-color:#000!important}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.font-weight-bold{font-weight:700}.instance-template tr:nth-child(2) td{border-top:0!important}.instance-template .section,.instance-template .section .control-label{color:inherit!important}.instance-template .form-table td{border-width:1px;border-style:solid!important;border-color:inherit!important}.instance-template td{vertical-align:top;padding:5px 10px}.instance-template td label{color:inherit;margin-bottom:0;font-weight:400}.instance-template .form-control[disabled],.instance-template .form-group[disabled]{width:100%;height:100%;background-color:transparent!important;border:none;padding:0}.instance-template input{font-size:inherit;padding:0;min-height:22px!important;font-weight:inherit}.instance-template textarea{font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}.instance-template select{font-family:inherit;color:inherit;font-weight:inherit}.instance-template .td-childfield>.form-group{color:inherit}.instance-template .form-group{color:#000}.instance-template .applicant-wrapper .form-control{color:#000!important}.instance-template .instance-title,.instance-template .instance-title .form-group,.instance-template .page-title,.instance-template .page-title .form-group{color:inherit;text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-control,.instance-template .instance-title .form-group .form-control,.instance-template .page-title .form-control,.instance-template .page-title .form-group .form-control{text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-group,.instance-template .instance-title .form-group .form-group,.instance-template .page-title .form-group,.instance-template .page-title .form-group .form-group{text-align:center;text-align:-webkit-center}.instance-template .instance-title .form-group select,.instance-template .instance-title select,.instance-template .page-title .form-group select,.instance-template .page-title select{height:41px!important;max-width:600px;margin:0 auto}.instance-template .instance-title .form-group input,.instance-template .instance-title input,.instance-template .page-title .form-group input,.instance-template .page-title input{min-height:41px!important}.instance-template .form-control{font-size:inherit;color:inherit!important;background-color:transparent!important}.ins-opinion-modal .btn-new-opinion{cursor:pointer;background:#fff}.ins-opinion-modal .btn-new-opinion:focus,.ins-opinion-modal .btn-new-opinion:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.ins-opinion-modal .list-group{margin-bottom:15px}.ins-opinion-modal .list-group .list-group-item{-ms-user-select:none;user-select:none;-moz-user-select:none;-webkit-user-select:none}.ins-opinion-modal .list-group .list-group-item .btn-sm{margin:-5px -2px}.ins-opinion-modal .list-group .list-group-item .pull-right{margin-right:-8px}.ins-opinion-modal .list-group:last-child .list-group-item:last-child{border-bottom:1px solid #ddd;border-bottom-left-radius:0;border-bottom-right-radius:0}.related-instances .related-instances-item a{color:#3c8dbc;cursor:pointer}.related-instances .related-instances-item .ins-related-delete{margin-left:10px}.related-instances .related-instances-item a:hover{text-decoration:underline}.steedos-html.steedos-html-table-only{margin:-6px -12px -6px -13px}.steedos-html.steedos-html-table-only table{border:none;width:100%!important}.instance-table .steedos-html.steedos-html-table-only{margin:-6px}.instance-table .steedos-html.steedos-html-table-only table tr:first-child td{border-top-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr:last-child td{border-bottom-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:first-child{border-left-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:last-child{border-right-width:0!important}.instance-form .slds-select_container:before{display:none}.traces_table_modal .modal-body{border-top:0}.traces_table_modal .modal-body .modal-header{display:none}.traces_table_modal .box{border:0;box-shadow:none}.traces_table_modal .box .box-header{display:none}.traces_table_modal .box .box-body{padding:0}.traces_table_modal .box .box-body table{margin:0 auto}.traces_modal .modal-body{padding:0}.traces_modal .modal-body .box{border-top:0}.traces_modal .modal-body .box .box-header{display:none}.instance-traces ol,.instance-traces ul{list-style:decimal;list-style-position:inside}.instance-trace-detail-modal .modal-header .modal-title{font-size:18px;font-weight:700}.instance-sign-modal #instance_flow_opinions{text-decoration:underline;cursor:pointer}.instance-sign-modal .suggestion-control{min-height:120px;font-size:17px}.instance-sign-modal .instance-sign-history{text-decoration:underline;cursor:pointer}.instance-sign-modal .instance-suggestion{font-size:15px}.instance-sign-modal .instance-suggestion .instance-sign-opinion-btn{display:inline-block;line-height:30px;margin-right:15px;vertical-align:bottom;font-size:17px;max-width:100%}.instance-sign-modal .instance-suggestion #instance_flow_opinions{line-height:30px;display:inline-block;font-size:17px}.history-sign-approve a{color:inherit}.history-sign-approve a.finish-date{float:right}.history-sign-approve .select-suggestion-td{width:10px}.history-sign-approve .select-suggestion-td .select-suggestion{display:inline-block;float:right}.history-sign-approve tr{cursor:pointer}.history-sign-approve .sign-approves{margin-top:0}.history-sign-approve .sign-approves .use-suggestion{margin-right:10px}.history-sign-approve .sign-approves .use-suggestion .weui-media-box__title{overflow:auto;text-overflow:unset;white-space:normal;font-size:15px!important;font-weight:400!important}.history-sign-approve .sign-approves .select-suggestion .weui-switch{outline:none;zoom:.78;cursor:pointer}.instance-pick_approve_users .title th{font-weight:700;border:1px solid #d2d6de}.instance-pick_approve_users .title .step{text-align:center}.instance-pick_approve_users .title .approves{padding-left:13px}.instance-pick_approve_users .step-item .td-step-approves .form-group{margin-bottom:0}.instance-pick_approve_users .step-item .td-step-approves .form-group .control-label{display:none}.instance-pick_approve_users .stepName{text-align:center}.instance-pick_approve_users .action{width:50px;text-align:center}.instance-pick_approve_users .td-step-check{width:80px;text-align:center}.instance-pick_approve_users .td-step-approves{background-color:rgba(255,255,0,.1)!important}.instance-pick_approve_users .td-step-approves .checkbox-inline label,.instance-pick_approve_users .td-step-approves .radio-inline label{font-weight:400}.instance-pick_approve_users .selectUser-box{line-height:28px!important;border:none!important;background-color:inherit!important}.instance-pick_approve_users .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-pick_approve_users .instance-traces table.traces{background:transparent;border:2px solid #d2d6de}.instance-pick_approve_users .instance-traces table.traces tr{background:#fff}.instance-pick_approve_users .instance-traces table.traces td{background:transparent;border:1px solid #d2d6de;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-pick_approve_users .instance-traces table.traces td.td-approve{padding:0}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:auto}.instance-pick_approve_users .instance-traces table.traces td.td-step-check{width:50px}.instance-pick_approve_users .instance-traces table.traces td.td-step-approves .radio-inline{display:block;margin:0;white-space:nowrap}}.instance-pick_approve_users .instance-traces table.traces th{white-space:nowrap}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces th.approves{text-align:center;padding-left:0}}.instance-table .instance-pick_approve_users .instance-traces table.traces,.instance-table .instance-pick_approve_users .instance-traces table.traces td,.instance-table .instance-pick_approve_users .instance-traces table.traces th{border-color:#000}.flow_list_box a{cursor:pointer;color:#000}.flow_list_box .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box .weui-cell .ion{font-size:20px}.flow_list_box .weui-cell.checked{background-color:#00a65a;color:#fff}.flow_list_box .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box .box{box-shadow:none}.flow_list_box .box .weui-cells{margin-top:0}.flow_list_box .weui-cell__bd,.flow_list_box .weui-cell__ft{cursor:pointer}.flow_list_box .ion-ios-star{color:#f39c12}.flow_list_box_org a{cursor:pointer;color:#000}.flow_list_box_org .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box_org .weui-cell{padding:6px 15px}.flow_list_box_org .weui-cell .ion{font-size:20px}.flow_list_box_org .weui-cell.checked{background:#beebff}.flow_list_box_org .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box_org .box{box-shadow:none}.flow_list_box_org .box .weui-cells{margin-top:0}.flow_list_box_org .weui-cell__bd,.flow_list_box_org .weui-cell__ft{cursor:pointer}.flow_list_box_org .ion-ios-star{color:#f39c12}.flow-list-box-org-modal{z-index:1050}.flow-list-box-org-modal .modal-body .box-header{padding:10px}.flow-list-box-org-modal .modal-body .contacts-list-wrapper{overflow-y:auto}.flow-list-box-modal-body{padding-top:5px}.forward-select-flow-modal input[readonly]{background-color:#fff!important}.instance-list-wrapper .slds-page-header--object-home{border-radius:0;border-left:0;border-right:0;height:100px}@media (max-width:768px){.instance-list-wrapper .slds-page-header--object-home{height:65px}}.instance-list-wrapper .slds-page-header--object-home .slds-media__figure{margin-top:-2px}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow{width:140%}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow ul{background:#fff!important}.instance-list-wrapper .slds-page-header--object-home .slds-button{cursor:pointer}.instance-list-wrapper .instance-list table.dataTable thead .sorting_asc:after{font:14px/1 DXIcons;content:"\f051";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting_desc:after{font:14px/1 DXIcons;content:"\f052";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting:after{font:14px/1 DXIcons;content:"\f055";opacity:0;bottom:10px}.instance-list-wrapper .instance-list-body .instance-list-sidebar{position:absolute;left:0;top:99px;bottom:0;width:260px;border-right:1px solid #e0e5ee}.instance-list-wrapper .instance-list-body .instance-list-content{position:absolute;left:0;right:0;top:99px;bottom:0}@media (max-width:768px){.instance-list-wrapper .instance-list-body .instance-list-content{top:64px}}@media (min-width:768px){.instance-list-wrapper{background:red}.instance-list-wrapper .dropdown-menu{min-width:260px;max-width:300px}}.instance-list{margin-top:1px}.instance-list .datatable-instances{border-right:none}.instance-list .dataTables_paginate{float:right;width:65%}.instance-list .dataTables_length{float:left;width:35%}@media (max-width:768px){.instance-list .dataTables_paginate{width:100%}}.instance-list>div:nth-child(3){overflow-x:auto}.instance-list .dataTables_container{position:relative}.instance-list .dataTables_container .ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail,.instance-list .dataTables_container .ps-container:hover>.ps-scrollbar-x-rail:hover{background:#fff}.instance-list .dataTables_wrapper tbody tr td{position:relative}.instance-list .flow-name{padding-left:15px;width:69%;color:#777}.instance-list.instance-list-empty .dataTables_wrapper{display:none}.instance-list.instance-list-empty .slds-illustration .slds-illustration__svg{margin-bottom:-.6rem}.instance-list .dataTables_wrapper thead th:first-child{padding-left:20px!important}.instance-list .dataTables_wrapper thead th{white-space:nowrap;min-width:115px}.instance-list .dataTables_wrapper thead th:nth-child(3){min-width:115px}.instance-list .color-priority{color:#00f;display:none}.instance-list .color-priority.instance-name{display:inline-block}.instance-list .color-priority.color-priority-danger{color:red;display:inline-block}.instance-list .color-priority.color-priority-warning{color:purple;display:inline-block}.instance-list .color-priority.color-priority-muted{color:#00f;display:inline-block}.instance-list .step-current-state.terminated{color:grey}.instance-list .step-current-state.approved{color:green}.instance-list .step-current-state.rejected{color:red}.instance-list .instance-priority-bar{position:absolute;width:20px;left:1px;top:22px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-name span{color:#333;display:inline-block;float:right;font-weight:400;margin-right:10px}.instance-list .instance-name .color-priority{margin-left:8px}.instance-list .selected .flow-name,.instance-list .selected .instance-modified,.instance-list .selected .instance-name span{color:#fff}.instance-list .instance-modified{color:#777}.instance-list .selected .step-current-state{color:#fff}.instance-list .instance-read-bar{position:absolute;width:20px;left:1px;top:4px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-read-bar .ion.instance-favorite-selected{color:#666}.instance-list .selected .instance-read-bar .ion.instance-favorite-selected{color:#fff}.instance-list .unread{color:#1f95ec;position:absolute;top:9px;left:5px;font-size:90%}.instance-list .instance-step-current-name{color:#999;font-weight:400;padding-left:5px;display:initial}.instance-list .selected .instance-step-current-name{color:#fff}.instance-list .toolbar{min-height:51px}.instance-list .search-tip-bar{border-bottom:1px solid #eee;padding:10px 20px}.instance-list [aria-label=Title],.instance-list [aria-label=标题]{min-width:400px!important}.instance-list th.flow-filter{position:relative;padding-right:30px;cursor:pointer}.instance-list th.flow-filter:after{font-family:Ionicons;content:"\f31b";right:0;position:absolute;bottom:8px;right:8px;display:block;opacity:.5}.batch_instances_view{position:absolute;width:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);bottom:120px;right:20px}.batch_instances_view button{z-index:999;position:fixed;right:20px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:57px;height:57px;border-radius:57px;font-size:16px}.instance-list-wrapper .tabular-filter-by-flow{margin-right:5px}.instance-list-wrapper .tabular-filter-by-flow .caret{margin-left:5px}.instance-list-wrapper .search-tip-bar .label{margin-right:5px;border-radius:0;font-size:12px}.instance-list-wrapper .search-tip-bar .breadcrumb{display:inline-block;margin-bottom:0;padding:0;background-color:#fff}#instance_more_search_modal .submit-date-icon{border-right:none}#instance_more_search_modal .submit_date_end{padding-top:5px}.instance-priority-danger .td-field-文件标题 .form-group,.instance-priority-danger input[name=文件标题]{color:red!important}.instance-priority-warning .td-field-文件标题 .form-group,.instance-priority-warning input[name=文件标题]{color:purple!important}.instance-priority-muted .td-field-文件标题 .form-group,.instance-priority-muted input[name=文件标题]{color:#00f!important}.workflow-menu{width:300px;left:50%;margin-left:-150px;padding:0}.workflow-menu .weui-navbar{bottom:0;top:auto;display:block}.workflow-menu .weui-navbar__item{cursor:pointer;padding:8px 0}.workflow-menu .weui-bar__item_on{background-color:#08c!important;color:#fff}.workflow-menu-by-flow{overflow-y:auto}.workflow-menu-by-flow .weui_cells_title{font-weight:400;margin-top:0;margin-bottom:0}.workflow-menu-by-flow .weui_cells{margin-top:0}.workflow-menu-by-flow .selected{background-color:#08c;color:#fff!important}.workflow-menu-by-flow .active{color:#0078d7!important}.workflow-menu-by-flow .fa-angle-left{display:none}.workflow-menu-by-flow>li>.treeview-menu{margin-left:10px}.workflow-menu-by-flow .treeview-menu .treeview-menu{padding-left:20px}.creator-content-wrapper .main-sidebar .workflow-menu-by-flow li>.treeview-menu{display:block!important}@media (max-width:767px){.creator-content-wrapper .main-sidebar{background:#fff!important;display:none;width:100%;margin-top:66px!important}.creator-content-wrapper .main-sidebar .top-sidebar,.creator-content-wrapper .main-sidebar .workflow-menu-by-flow .header-app{display:none}.creator-content-wrapper .main-sidebar>.sidebar{box-shadow:0 1px 3px rgba(0,0,0,.5);border-radius:4px;left:10px;right:10px;bottom:10px;border-top-left-radius:unset;border-top-right-radius:unset;padding-bottom:10px}.creator-content-wrapper .content-wrapper{-webkit-transform:none;-ms-transform:none;transform:none}.creator-content-wrapper .content-wrapper.content-wrapper-shadow{display:none}.sidebar-open .creator-content-wrapper .main-sidebar{display:block}}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node.other-inbox-node.first-other-inbox-node{border-top:1px solid rgba(0,0,0,.1);margin-top:1.5rem;padding:.25rem 0}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container{-webkit-box-flex:0.22;-webkit-flex:0.22;-ms-flex:0.22;flex:0.22;min-width:36px}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container .bg-special{color:#333}.steedos .content-wrapper{margin-left:0}.steedos .chooseFlow .chooseFlow-header-close{display:none!important}.steedos #chooseFlow-modal-content{overflow:hidden!important;overflow-y:auto!important}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .slds-button{padding:0;margin:0;background:none;border:0;line-height:inherit;text-align:left;color:#080707}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .all-flow-label-icon,.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .flow-label-icon{top:-2px;position:relative;color:rgba(51,51,51,.71)}.steedos #chooseFlow-modal-content .slds-input{border-top:0;border-left:0;border-right:0}@media screen and (max-width:647px){.steedos #chooseFlow-modal-content{overflow-y:hidden!important}.steedos .ReactModalPortal .slds-modal__container{margin:0;padding:0}.steedos .ReactModalPortal .slds-modal__container .chooseFlow-header-close{display:block!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header{height:49px;border-radius:0;padding:.5rem}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-modal__close{display:none}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-text-heading_medium{font-size:18px;color:#080707;line-height:30px}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content{height:100%;border-radius:0!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div,.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div>div{height:100%}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content .slds-tree_container{overflow:hidden;overflow-y:auto;height:calc(100% - 32px)!important;max-height:calc(100% - 32px)!important}}.workflow-main{position:absolute;top:0;left:0;right:0;bottom:0}.workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.instance-list-wrapper{right:-1px;left:0;float:left;padding-left:0;padding-right:0;overflow-y:hidden;position:absolute;top:0;bottom:0;background:#fff}.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:38px}.instance-list-wrapper .navigation-bar .btn-offcanvas .inbox-pending-icon{font-size:75%;position:relative;left:-8px;top:-6px}@media (max-width:767px){.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:42px;position:relative;left:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new{position:relative;right:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new .ion-plus{position:relative;top:1px}}.instance-list-wrapper .toolbar{height:51px;background:#f3f3f3}.instance-list-wrapper .toolbar .instance-search-box{margin-right:5px}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:235px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search{padding-right:35px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search_button{padding:6px 10px;margin-left:-35px;border-top-right-radius:6px;border-bottom-right-radius:6px;height:34px;z-index:4}.instance-list-wrapper .toolbar .instance-search-box .input-group .form-control{border-radius:6px}@media screen and (max-width:767px){.instance-list-wrapper .toolbar .instance-search-box{position:absolute;left:8px;right:8px;margin-right:0!important}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:100%}}.instance-list-wrapper .search-tip-bar{background:#fff;border-bottom:1px solid #eee;padding:10px 20px;height:40px;margin-top:2px}.instance-list-wrapper .search-tip-bar .result-container{width:calc(100% - 30px)}.instance-list-wrapper .search-tip-bar #instance_search_tip_close_btn{width:30px}.instance-list-wrapper .instance-list{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;bottom:0;right:0;left:0;position:absolute;background-color:#fff}.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}@media (max-width:767px){.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}}.instance-list-wrapper .instance-list .instance-name{padding-left:15px;font-weight:700;word-break:break-all;width:100%}.instance-list-wrapper .instance-list .flow-name{float:left}.instance-list-wrapper .instance-list .instance-modified{padding-right:10px;display:inline-block;float:right}.instance-list-wrapper .instance-list .instance-applicant{padding-left:15px}.instance-list-wrapper .navigation-title{overflow:visible!important}.instance-list-wrapper .dataTables_wrapper .dataTable{background:#fff;border-top:0;margin-top:0!important}.instance-list-wrapper .dataTables_wrapper .dataTable thead{display:none}.instance-list-wrapper .dataTables_wrapper .table-bordered{border-left:none}.instance-list-wrapper .dataTables_wrapper .table>tbody>tr>td{border-bottom:1px solid #e8e8e8;border-top:0}.instance-list-wrapper .dataTables_wrapper tbody tr:hover{cursor:pointer}.instance-list-wrapper .dataTables_wrapper tbody tr:hover td.dataTables_empty{cursor:default}.instance-wrapper{position:absolute;top:0;bottom:0;overflow:hidden}.instance-wrapper .pull-right .dropdown-menu{right:0;left:auto}.instance-wrapper .instance-left-buttons .steedos-amis-button .antd-Button{height:30px;line-height:30px}.instance-wrapper .instance-left-buttons .slds-dropdown-trigger .steedos-amis-button .antd-Button{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:#181818;font-size:12px}.instance-wrapper .navigation-bar .instance-left-buttons{height:38px;position:relative;top:-2px;min-width:50px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-submit,.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group{vertical-align:middle;margin-left:10px}@media (min-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group .dropdown-menu-right{left:0}}.instance-wrapper .navigation-bar .instance-left-buttons .btn{margin-right:-6px;padding-right:8px;padding-left:8px;margin-top:2px}@media (max-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons{top:1px;left:-6px}.instance-wrapper .navigation-bar .instance-left-buttons .btn{padding:8px;margin-top:1px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-back{padding:14px}.instance-wrapper .navigation-bar .pull-right .btn{position:relative;top:-9px;padding:14px;right:-9px}}.instance-wrapper .instance-view{background:#fff;position:absolute;bottom:0;left:0;right:0}.instance-wrapper .instance-view .instance-suggestion-close{position:absolute;right:5px;z-index:666}.instance-wrapper .instance-view .instance-suggestion-close .btn{color:#999;font-size:21px}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion-close{display:none}}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step{padding:3px 0 3px 12px;margin-bottom:0;font-weight:400;font-size:14px}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step input{display:none}.instance-wrapper .instance-view .suggestion-radio-box label{height:22px;line-height:22px;margin-right:10px;font-size:14px}.instance-wrapper .instance-view .suggestion-radio-box .radio-inline+.radio-inline{margin-left:0}.instance-wrapper .instance-view .btn-suggestion-toggle{z-index:999;position:absolute;bottom:20px;right:20px;border-radius:48px;font-size:24px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:48px;height:48px}.instance-wrapper .instance-view .btn-suggestion-toggle i.ion{float:left;height:36px;line-height:36px}.instance-wrapper .instance-view .btn-suggestion-toggle span{font-size:16px;float:left;margin-left:2px;height:36px;line-height:36px}.instance-wrapper .instance-view .txt-suggestion-toggle{width:57px;height:57px;border-radius:57px;font-size:16px}.instance-wrapper .instance-view .instance-suggestion{position:absolute;right:0;bottom:0;left:0;z-index:99;border-radius:0;display:none;padding:4px 4px 0;margin-bottom:0;overflow-y:auto;overflow-x:hidden;max-height:100%}.instance-wrapper .instance-view .instance-suggestion .form-group{margin-bottom:8px}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{word-wrap:break-word;width:calc(100% - 20px)}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box label{margin-right:3px;margin-bottom:0}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{width:100%}}.instance-wrapper .instance-view .instance-suggestion .input-group-addon{background-color:#f5f5f5;min-width:50px;text-align:left}.instance-wrapper .instance-view .instance-suggestion .help-block{margin:0}.instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions{border:none;padding:4px 8px;position:absolute;top:3px;right:25px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .btn-mobile{top:15px!important}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps{border:1px solid #ccc;background:#fff;padding:4px 0}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{cursor:pointer;padding:2px 0 2px 30px;font-weight:400;margin:0;line-height:20px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio:hover{background:#eee}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{line-height:25px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .mobile-safari{line-height:24px}}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .safari{line-height:24px}.instance-wrapper .instance-view .instance-suggestion .nextStepUsers{background:#fff!important;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .has-error .instance-suggestion-next-steps{border-color:#dd4b39}.instance-wrapper .instance-view.suggestion-active .instance-suggestion{display:block}.instance-wrapper .instance-view.suggestion-active .btn-suggestion-toggle{display:none}.instance-wrapper .instance-view .instance{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;top:0;bottom:0;right:0;left:0;position:absolute;background-color:#fff;padding:0 0 20px}body.dx-date-box-opened .instance-wrapper .instance-view .instance{overflow:hidden!important}.instance-wrapper .instance-view .instance .row{margin-right:0;margin-left:0}.instance-wrapper .instance-view .instance.instance-default .form-group{margin-bottom:5px}.instance-wrapper .instance-view .instance.instance-default .form-group .control-label{margin-bottom:3px;font-size:.875rem}.instance-wrapper .instance-view .instance .box-body{padding-left:15px;padding-right:15px}.instance-wrapper .instance-view .instance .instance-form .box-body,.instance-wrapper .instance-view .instance .instance-suggestion .box-body{padding-left:0;padding-right:0}.instance-wrapper .instance-view .instance .instance-suggestion{display:block;position:relative;box-shadow:none;z-index:auto;margin-bottom:-20px}.instance-wrapper .instance-view .instance .instance-suggestion .btn-remove{display:none}.instance-wrapper .instance-view .instance .instance-traces{margin-bottom:0;margin-top:10px;padding-top:10px;clear:both}.instance-wrapper .instance-view .instance .instance-traces .box-title{font-size:18px;margin:10px 0}.instance-wrapper .instance-view .instance.instance-table .instance-traces,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces{padding-bottom:10px}.instance-wrapper .instance-view .instance.instance-table .instance-traces>.pull-left,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-wrapper .select-approve-in-all-users .selectUser-box{border-right:none!important}.instance-wrapper .select-approve-in-all-users .select-all-users-btn{border-left:none!important;background-color:#fff!important;min-width:auto!important;cursor:pointer}.instance-wrapper .select-approve-in-all-users .selectNextStepUsersInAllUsers{display:none!important}:root .instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions,_:-ms-fullscreen #instance_flow_opinions{top:-2px;right:15px}.mobile-safari .instance-wrapper .instance-view .instance{padding-top:1px!important}.steedos .toggle-columns-box{margin:0 -6px}.steedos .toggle-columns-box .btn-toggle-columns i{margin-top:6px}.steedos .toggle-columns-box{display:none}@media (min-width:1441px){.steedos .toggle-columns-box{display:block}}.workflow-main .instance-list-wrapper{display:block;margin:0;border-radius:0;width:auto;left:0;right:0;border-right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-list-wrapper .instance-list{overflow:auto}.workflow-main .instance-wrapper{display:none;width:auto;left:0;right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-wrapper .instance{margin-bottom:1px}.workflow-main.instance-show .instance-list-wrapper{display:none}.workflow-main.instance-show .instance-wrapper{display:block;width:auto;left:0;right:0}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}@media (min-width:768px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:60%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:230px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:230px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:60%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:40%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:54%}}@media (min-width:1280px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:54%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:260px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:54%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:46%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:50%}}@media (max-width:767px){.steedos .workflow-main .instance-list-wrapper{margin:0;border-radius:0;background-color:transparent}.steedos .workflow-main .instance-list-wrapper .instance-list{border-top:1px solid #fff}.steedos .workflow-menu{width:250px;left:50%;margin-left:-125px;overflow-y:auto}}@media (min-width:768px){.workflow-main .instance-list-wrapper,.workflow-main .instance-wrapper{margin:.75rem .75rem 0;border-radius:.25rem}.three-columns .workflow-main .instance-wrapper{margin:.75rem .75rem 0 0}}.toast-top-right{top:52px;right:12px}@-webkit-keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}@keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}.no-columns .instance-wrapper{left:inherit!important;margin:0!important}.instance table{border-spacing:0;border-collapse:collapse}.related_instances_modal .modal-body{min-height:300px}.related_instances_modal .selectize-control.multi .selectize-input [data-value]{color:#fff;background-color:#1b9dec!important;padding-right:25px!important;padding-left:3px!important}.related_instances_modal .instance-state-group{line-height:34px}.related_instances_modal .radio-inline input{line-height:34px;height:34px;margin-top:0}.related_instances_modal .related_instances_list_search_btn{cursor:pointer}.related_instances_modal .pull-right{padding-left:15px}.related_instances_modal tbody tr{cursor:pointer}.related_instances_modal th:not(:first-child){min-width:60px}.related_instances_modal .box-tools{width:35%}.related-instances .title{padding:6px 0 0}.instance .related-instances{padding-left:0;padding-right:15px}.batch-instances-modal .modal-body{padding:0}.batch-instances-modal .modal-body .weui-cells{margin-top:0}.batch-instances-modal .modal-body .weui-cells span{font-size:13px;color:#888}.batch-instances-modal .modal-body .weui-cells:after,.batch-instances-modal .modal-body .weui-cells:before{display:none}.cancel_distribute_modal table th{padding:8px}.cancel_distribute_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_distribute_modal .th-width{width:10px}.cancel_distribute_modal .table-header{background-color:#eee}.cancel_cc_modal table th{padding:8px}.cancel_cc_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_cc_modal .th-width{width:10px}.cancel_cc_modal .table-header{background-color:#eee}.ps-container{-ms-touch-action:none;overflow:hidden!important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px}.ps-container>.ps-scrollbar-x-rail,.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0}.ps-container>.ps-scrollbar-y-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px}.ps-container>.ps-scrollbar-y-rail,.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder:after{content:"!";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.selectize-dropdown-header{position:relative;padding:3px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0;border-left:1px solid transparent;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;-webkit-font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 12px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#efefef;color:#333;border:0 solid transparent}.selectize-control.multi .selectize-input>div.active{background:#428bca;color:#fff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:grey;background:#fff;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input:after{content:" ";display:block;clear:left}.selectize-input.dropdown-active:before{content:" ";display:block;position:absolute;background:#fff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;background:#fff;margin:-1px 0 0;border:1px solid #d0d0d0;border-top:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .optgroup-header,.selectize-dropdown [data-selectable]{padding:3px 12px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5f5f5;color:#262626}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .create{color:rgba(51,51,51,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:" ";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-color:#333 transparent transparent;border-style:solid;border-width:5px 5px 0}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #333}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.42857143}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:" ";display:block;height:1px;overflow:hidden;background-color:#e5e5e5;margin:9px -12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 12px}.selectize-input{min-height:34px}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active:before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.has-error .selectize-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .selectize-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:9px;padding-right:9px}.selectize-control.multi .selectize-input>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:none;background:none;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-control>.selectize-input{-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.qhd-sync-archive,.qhd-sync-contracts{height:100%}.qhd-sync-archive .progress,.qhd-sync-contracts .progress{margin-bottom:0!important}.qhd-sync-archive .submit-date-icon,.qhd-sync-contracts .submit-date-icon{border-right:none}.qhd-sync-archive .box,.qhd-sync-contracts .box{height:100%;margin-bottom:0!important}.qhd-sync-archive .box .box-header.with-border,.qhd-sync-contracts .box .box-header.with-border{height:auto}.qhd-sync-archive .box .box-body,.qhd-sync-contracts .box .box-body{height:calc(100% - 51px);overflow-x:auto}.qhd-sync-archive .row,.qhd-sync-contracts .row{margin-right:0;margin-left:0}.qhd-sync-archive .label-error,.qhd-sync-contracts .label-error{background-color:red}.btn,.form-control{font-size:1rem}label{font-weight:.875rem}.btn-primary{background-color:#0070d2;border-color:#0070d2}@media (min-width:48em){.steedos .slds-form-element_horizontal .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__control{padding-left:18%;clear:none}.steedos .slds-form-element_horizontal .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__label{max-width:16.75%;-ms-flex-preferred-size:16.75%;flex-basis:16.75%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control{padding-left:8.73%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label{width:8.73%}}.steedos .slds-split-view__list-item-action{padding:.35rem 1rem}/*! * Datetimepicker for Bootstrap 3 * version : 4.17.37 * https://github.com/Eonasdan/bootstrap-datetimepicker/ diff --git a/server/bundle/programs/web.browser/program.json b/server/bundle/programs/web.browser/program.json index d0e696c447..619200c56a 100644 --- a/server/bundle/programs/web.browser/program.json +++ b/server/bundle/programs/web.browser/program.json @@ -2,21 +2,21 @@ "format": "web-program-pre1", "manifest": [ { - "path": "18b1573e16dfb893209907100a4090bccecb75e9.js", + "path": "1a16ea9413b8cd85ada717cd3a6934cf722fa935.js", "where": "client", "type": "js", "cacheable": true, - "url": "/18b1573e16dfb893209907100a4090bccecb75e9.js?meteor_js_resource=true", + "url": "/1a16ea9413b8cd85ada717cd3a6934cf722fa935.js?meteor_js_resource=true", "size": 4302481, - "hash": "18b1573e16dfb893209907100a4090bccecb75e9", - "sri": "SuXtfjarbKHPx2NiS4FW89bNt71E+Pm7TZQDYuEIf3fqq+yusOxXOX6YOD87GsenbLB1fj0NGDl0zEDfvlEB+w==" + "hash": "1a16ea9413b8cd85ada717cd3a6934cf722fa935", + "sri": "muK5RV31jcSgpHtLED18GxuLNQFSX/ICVrs7oxKV2psvZ67IGvTLoQm6nFzTFNVMzhtOg+yy6RNosObTdx02ug==" }, { - "path": "18b1573e16dfb893209907100a4090bccecb75e9.stats.json", + "path": "1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json", "where": "client", "type": "json", "cacheable": true, - "url": "/18b1573e16dfb893209907100a4090bccecb75e9.stats.json?meteor_js_resource=true", + "url": "/1a16ea9413b8cd85ada717cd3a6934cf722fa935.stats.json?meteor_js_resource=true", "size": 92670, "hash": "7eca662c8e09a0ad2573af244f494b13b3943849", "sri": "+G6+Fq3I6ht/yNAzH4ivctmpGDZOG07suirhLk6OOyRlKXNe8WUib+qoe+CCOa27dKG27Ge2c+x+0cEGvTEhxQ==" @@ -42,14 +42,14 @@ "sri": "QHoD3eBWtoB0O5iCxYBCVvUIiHJ/4DDM/ojXZdmSFEEM+8kcGAQ3eaB2wpOenTLldZ9XhfIGTBaNisipdwarxA==" }, { - "path": "5766f147e314187665f8cf23620c00b20d7a2c90.css", + "path": "22b72a003d0bc555f97724324e85cd5b0fb7287b.css", "where": "client", "type": "css", "cacheable": true, - "url": "/5766f147e314187665f8cf23620c00b20d7a2c90.css?meteor_css_resource=true", - "size": 894156, - "hash": "5766f147e314187665f8cf23620c00b20d7a2c90", - "sri": "KGJ7pjBMB8roj1/XGmvKR6VRiKoXCGFOo1YWb2RmIHSVtW5aZBX8aakXhuu10JSEIi/E2mwKnWozQGfHx3MgfQ==" + "url": "/22b72a003d0bc555f97724324e85cd5b0fb7287b.css?meteor_css_resource=true", + "size": 894228, + "hash": "22b72a003d0bc555f97724324e85cd5b0fb7287b", + "sri": "JT7GK9fCVO4m5f6C+tWdHywBr57Bgb3gvTKPYhgR1nePtq8yRtjOdxdT4zssDA1n5Cm4dxVP3DeOo/DzSh8AFQ==" }, { "path": "packages/aldeed_tabular/images/sort_asc.png", diff --git a/server/bundle/programs/web.browser/5766f147e314187665f8cf23620c00b20d7a2c90.css b/server/bundle/programs/web.cordova/22b72a003d0bc555f97724324e85cd5b0fb7287b.css similarity index 92% rename from server/bundle/programs/web.browser/5766f147e314187665f8cf23620c00b20d7a2c90.css rename to server/bundle/programs/web.cordova/22b72a003d0bc555f97724324e85cd5b0fb7287b.css index 4dc97ec493..a0be76a43b 100644 --- a/server/bundle/programs/web.browser/5766f147e314187665f8cf23620c00b20d7a2c90.css +++ b/server/bundle/programs/web.cordova/22b72a003d0bc555f97724324e85cd5b0fb7287b.css @@ -45,7 +45,7 @@ * Licensed under the MIT license - http://opensource.org/licenses/MIT * * Copyright (c) 2018 Daniel Eden - */.animated{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}.rotate{animation-name:rotate;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-name:rotate}.view-page-section-row .view-page-block-item{padding:0 .75rem}.view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;width:100%!important}.view-page-section-row .uiInput .form-control:active,.view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}.view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.view-page-section-row .uiInput .form-control[disabled]:active,.view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}@media (max-width:599px){.view-page-section-row{display:block}}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item{cursor:pointer}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content{height:26px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .dx-icon{height:18px;font-size:18px;line-height:18px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.creator-table-actions,.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.pull-right-container{-webkit-box-flex:0.12;-webkit-flex:0.12;-ms-flex:0.12;flex:0.12;text-align:right;margin-top:-3px;display:inline-block}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content>span{padding:1px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility{line-height:32px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{line-height:34px}.gridSidebarContainer.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:20px}@media (max-width:767px){body,html{position:fixed;overflow:hidden}}body{background-size:cover;zoom:1!important}body button{margin-right:0}.steedos label{margin-bottom:5px}.steedos .steedos-brand-band{display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;position:relative;height:100%;width:100%}.steedos .steedos-brand-band .slds-page-header .crm-header-icon{display:block;border-radius:.125rem}.steedos .steedos-brand-band .slds-page-header .crm-header-icon .uiImage{display:inherit}.steedos .steedos-brand-band .slds-page-header h1.crm-header-title{font-size:16px;position:relative}.steedos .steedos-brand-band .slds-page-header .crm-breadcrumb-item span{font-size:13px}.steedos .steedos-brand-band .slds-page-header .crm-header-menu{font-size:.8125rem;font-weight:400}.steedos .steedos-brand-band .listViewManager{height:100%;border-radius:.25rem;background-clip:padding-box}.steedos .steedos-brand-band .listViewManager .slds-page-header{border-top:none;border-left:none;border-right:none}.steedos .steedos-brand-band .listViewManager .forceListViewManagerHeader .slds-button{cursor:pointer}.steedos .steedos-brand-band .listViewManager .list-view-controls .slds-text-title--caps{font-size:12px}.steedos .steedos-brand-band .listViewManager .table-grid-content{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content{width:100%;height:100%;min-height:200px;padding-top:0;padding-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;overflow:hidden}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content>div{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable{width:auto;margin-top:0!important;border-top:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable td:not(:first-child){padding:5px 8px 4px}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable .creator_table_cell{line-height:1.25rem}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable .slds-is-sortable__icon{display:inline-block;fill-opacity:0}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:focus .slds-is-sortable__icon,.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:hover .slds-is-sortable__icon{fill-opacity:1}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .gridContainer .dx-datagrid .dx-scrollable-wrapper .dx-scrollable-container .dx-row.dx-freespace-row{display:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .table-creator{margin-top:0!important}.steedos .slds-card .slds-table tr:last-child .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(2) .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(3) .dropdown-menu{bottom:100%;top:auto}.steedos .slds-table+.dataTables_paginate{text-align:left;margin-left:1.5rem}.steedos .list-table-container .dataTables_wrapper .dataTable{table-layout:fixed}.steedos .list-table-container .dataTables_wrapper .JCLRgrip .JColResizer{top:1px;height:70vh}.steedos .list-table-container .dataTable thead>tr>td.sorting,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc,.steedos .list-table-container .dataTable thead>tr>th.sorting,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc{padding-right:0}.steedos .list-table-container .dataTable thead>tr>td.sorting>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc>a{padding-right:30px}.steedos .list-table-container .dataTable thead .sorting:after,.steedos .list-table-container .dataTable thead .sorting_asc:after,.steedos .list-table-container .dataTable thead .sorting_asc_disabled:after,.steedos .list-table-container .dataTable thead .sorting_desc:after,.steedos .list-table-container .dataTable thead .sorting_desc_disabled:after{display:none;bottom:4px}.steedos .list-table-container .dataTable thead>tr>th{position:relative}.steedos .list-table-container .dataTable thead>tr>th .slds-th__action{margin-bottom:1px}.td-cell-wrap table td{white-space:normal}.steedos.fixed #sidebar-menu{background:#fff;position:fixed;top:90px;width:250px;height:calc(100% - 90px);padding:0}.steedos.fixed .slds-form-element .control-label{font-weight:400;color:#706e6b}.steedos.fixed .dx-datagrid{background:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-rowsview{border-top:0}.steedos.fixed .dx-datagrid .dx-freespace-row td,.steedos.fixed .dx-datagrid .dx-freespace-row td:hover,.steedos.fixed .dx-datagrid .dx-row{background-color:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget{padding:3px;font-size:12px;border-top:1px solid #ddd}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-page-sizes .dx-page-size,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-page{padding:3px 8px}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-next-button,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-prev-button{padding:3px 8px;line-height:25px}.steedos.fixed .slds-tabs--default__nav,.steedos.fixed .slds-tabs_default__nav{border-bottom:1px solid #e7e7eb}.steedos.fixed .slds-modal__header{background-color:#f4f4f4;border-bottom:1px solid #d5d5da;color:#878687}.steedos.fixed .slds-modal__footer{border-top:1px solid #d5d5d5}.steedos.fixed .forceEntityIcon.extraSmall{width:1.5rem;height:1.5rem}.steedos.fixed .forceEntityIcon{display:block;border-radius:.125rem}.steedos.fixed .creator_view #creator-tabular .slds-card+.slds-card{margin-top:.75rem}.steedos.fixed .modal-dialog{margin:0 auto}.steedos.fixed .modal,.steedos.fixed .modal-body,.steedos.fixed .modal-footer,.steedos.fixed .modal-header{zoom:1!important}.flexipageBaseRecordHomeTemplateDesktop{height:100%}.flexipageBaseRecordHomeTemplateDesktop .row-main{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin:.75rem 0 0}.flexipageBaseRecordHomeTemplateDesktop .region-subheader{margin-top:.75rem}.flexipageBaseRecordHomeTemplateDesktop .region-main{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;max-width:70%;min-width:564px}.flexipageBaseRecordHomeTemplateDesktop .region-full-width{max-width:100%}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333%;min-width:404px}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{padding-left:.75rem;padding-right:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left{padding-left:0;padding-right:.75rem}@media only screen and (max-width:47.9375em){.flexipageBaseRecordHomeTemplateDesktop{min-width:auto}.flexipageBaseRecordHomeTemplateDesktop .row-main{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flexipageBaseRecordHomeTemplateDesktop .region-main{min-width:auto;max-width:none}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{min-width:auto;width:100%;padding:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{margin-top:.75rem}}.dx-scheduler-header{position:absolute;top:3px;left:calc(50% - 140px);right:100px;background:transparent;border:none;width:auto}.dx-scheduler-work-space{padding-top:0;margin-top:0}.dx-scheduler-all-day-title{margin-top:-64px}.dx-scheduler-header-panel-cell .dx-scheduler-header-panel-cell-date:last-child{font-size:16px}.dx-scheduler-navigator-caption{max-width:unset;width:auto}.slds-form_horizontal .slds-form-element__control{line-height:24px}.dx-treeview-item{padding:8px;min-height:32px;line-height:inherit}.dx-treeview-toggle-item-visibility{height:34px}.dx-treelist-headers .dx-treelist-table .dx-row>td,.dx-treelist .dx-row>td{padding-top:6px;padding-bottom:6px}.dx-treelist .dx-row>td{line-height:unset}.dx-treeview-with-search .dx-placeholder{font-size:13px}.slds-card{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border:.1px solid transparent}.dx-treeview [role=treeitem][aria-selected=true]>.dx-treeview-item{background:rgba(21,137,238,.1);box-shadow:inset 4px 0 0 #1589ee}.dx-treeview-node{padding-left:0}.dx-treeview-search{margin:8px 6px}.dx-treeview-item.dx-state-hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.87)}.dx-treeview-item-without-checkbox.dx-state-focused>.dx-treeview-item{background-color:rgba(0,0,0,.05)}.dx-treeview-toggle-item-visibility,.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{font-size:18px}.dx-treeview .dx-treeview-item-with-checkbox>.dx-checkbox{margin-top:-6px}.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:24px}.dx-treeview [aria-level="1"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:68px}.dx-treeview [aria-level="2"]>.dx-treeview-item{padding-left:48px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:30px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:98px}.dx-treeview [aria-level="3"]>.dx-treeview-item{padding-left:72px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:60px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:128px}.dx-treeview [aria-level="4"]>.dx-treeview-item{padding-left:96px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:90px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:158px}.dx-treeview [aria-level="5"]>.dx-treeview-item{padding-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:188px}.dx-treeview [aria-level="6"]>.dx-treeview-item{padding-left:144px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:150px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:218px}.dx-treeview [aria-level="7"]>.dx-treeview-item{padding-left:168px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:180px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:248px}.dx-treeview [aria-level="8"]>.dx-treeview-item{padding-left:192px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:210px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:278px}.dx-treeview [aria-level="9"]>.dx-treeview-item{padding-left:216px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:240px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:308px}.dx-treeview [aria-level="10"]>.dx-treeview-item{padding-left:240px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:270px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:338px}.dx-treeview [aria-level="2"]>.dx-treeview-toggle-item-visibility{margin-left:24px}.dx-treeview [aria-level="3"]>.dx-treeview-toggle-item-visibility{margin-left:48px}.dx-treeview [aria-level="4"]>.dx-treeview-toggle-item-visibility{margin-left:72px}.dx-treeview [aria-level="5"]>.dx-treeview-toggle-item-visibility{margin-left:96px}.dx-treeview [aria-level="6"]>.dx-treeview-toggle-item-visibility{margin-left:120px}.dx-treeview [aria-level="7"]>.dx-treeview-toggle-item-visibility{margin-left:144px}.dx-treeview [aria-level="8"]>.dx-treeview-toggle-item-visibility{margin-left:168px}.dx-treeview [aria-level="9"]>.dx-treeview-toggle-item-visibility{margin-left:192px}.dx-treeview [aria-level="10"]>.dx-treeview-toggle-item-visibility{margin-left:216px}.dx-scrollbar-vertical.dx-scrollbar-hoverable{width:12px}.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{width:16px}.dx-scrollbar-vertical .dx-scrollable-scroll{width:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable{height:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover{height:16px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{height:18px}.dx-scrollbar-horizontal .dx-scrollable-scroll{height:14px}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a{color:#777}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a .slds-truncate .slds-button__icon{visibility:hidden;margin-right:.2rem}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a{color:#333}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a .slds-truncate .slds-button__icon{visibility:visible}.steedos .dx-button-text{text-transform:unset}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content{border:1px solid #ddd;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);border-radius:6px;min-width:10rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content{padding:1rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content .dx-actionsheet-item .dx-button{border-radius:4px;background-color:#fff;border:1px solid #ddd;color:#333;box-shadow:none}.steedos .navigation-bar{width:100%;padding:9px;height:51px;border-bottom:1px solid #dddbda;background-color:#f3f2f2}.object-form label{font-weight:400}.steedos-amis-button{line-height:inherit!important}.steedos-amis-button button,.steedos-amis-button span{background-color:transparent!important;border:none!important}.steedos-amis-button span:active,.steedos-amis-button span:focus,.steedos-amis-button span:focus-visible,.steedos-amis-button span:hover{background-color:transparent!important;border:none!important;outline:none!important}.steedos-amis-button .slds-dropdown__item span{position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding:.5rem .75rem;color:#181818;white-space:nowrap;cursor:pointer}.creator-form-builder ._id-wrap{display:none}.creator-form-builder .className-wrap{display:none!important}.creator-form-builder .fields-wrap{display:none}.creator-form-builder .code-wrap label:after,.creator-form-builder [type=odata] .code-wrap label:after,.creator-form-builder [type=odata] .formula-wrap label:after,.creator-form-builder [type=odata] .search_field-wrap label:after,.creator-form-builder [type=odata] .url-wrap label:after{content:" *";color:red}.creator-form-builder .form-wrap.form-builder .frmb .prev-holder input[type=number]{width:100%}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options .option-value{display:none}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options input[type=text]{width:72%!important}.creator-form-builder #fbEditorForm .form-group .control-label{display:none!important}.form-wrap.form-builder .frmb .prev-holder .form-group>label:not([class=fb-checkbox-label]){display:none}.form-elements .form-group label{display:block!important}.section-field .form-group,.table-field .form-group{margin-left:0!important;margin-bottom:15px!important}.flow-modal .modal-lg{width:992px}.copy-flow-modal [data-required=true] label:after,.new-flow-modal [data-required=true] label:after{content:" *";color:red}#distribute_edit_flow_modal .selectize-input .item{color:#fff;background-color:#1b9dec!important;padding-right:24px!important;padding-left:3px!important;background-image:-webkit-linear-gradient(top,#1da7ee,#178ee9)!important;background-image:linear-gradient(180deg,#1da7ee,#178ee9)!important;background-repeat:repeat-x!important;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 1px hsla(0,0%,100%,.03)!important}#distribute_edit_flow_modal .selectize-input .remove{padding-top:4px!important}.creator-modal{zoom:1!important}#collectionModal .modal-body #cmForm>div:last-child{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#collectionModal .modal-footer form{display:inline-block}#cmForm.form-horizontal .control-label{text-align:left}#afModal .slds-modal__container{width:auto;max-width:100%}#afModal .slds-modal__container .slds-modal__content .remove-prompt{font-size:16px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox{margin-left:-10px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .slds-checkbox--faux{margin-top:-3px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .label-multiple-update{color:#706e6b;font-size:14px;font-weight:400}#afModal .slds-modal__container .slds-modal__footer .slds-button_destructive.btn-remove{float:left}#afModal [data-required=true] label:after{content:" *";color:red}#afModal .group-section .slds-section__title{font-size:.9rem;font-weight:inherit}#afModal .group-section .slds-section__title .slds-button__icon{width:.8rem;height:.8rem}#afModal .view-page-section-row .view-page-block-item{padding:0 .75rem}#afModal .view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;width:100%;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;padding:0 1rem 0 .75rem;line-height:34px;width:100%!important}#afModal .view-page-section-row .uiInput .form-control:active,#afModal .view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}#afModal .view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#afModal .view-page-section-row .uiInput .form-control[disabled]:active,#afModal .view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}#afModal .view-page-section-row .uiInput textarea.form-control{overflow:hidden}@media (max-width:599px){#afModal .view-page-section-row{display:block}}.slip-reordering{box-shadow:0 2px 10px rgba(0,0,0,.45)}.slip-swiping-container{overflow-x:hidden}.slippylist .slippylist-item{user-select:none;-moz-user-select:none;-webkit-user-select:none}.slippylist .slippylist-item.slip-allow-select{user-select:text;-moz-user-select:text;-webkit-user-select:text}.slippylist .slippylist-item.slip-allow-select span{cursor:text}.slippylist{clear:left}.slippylist input{vertical-align:middle}.skewed{transform:rotate(2deg) scale(.99);-webkit-transform:rotate(2deg) scale(.99)}.slip-no-swipe.slip-no-reorder{opacity:.5}@media print{body,html{position:static!important}.instance-print *{color:inherit!important}.instance-print .table-page-body .form-group,.instance-print .table-page-body .instance-sign,.instance-print .table-page-footer .form-group,.instance-print .table-page-footer .instance-sign{color:#000!important}.instance-print .instance-table .form-table .td-title.is-required:after{color:red!important}.box-tools button{display:none}.instance-traces .box-body{display:block!important}.no-print{display:none!important}a[href]:after{content:""!important}a,a:visited{text-decoration:none!important}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #000!important}.table-bordered th{border-bottom:1px solid #000!important}.steedos-table .checkbox,.steedos-table .radio{display:table-cell!important;position:static!important}.steedos-table table{border-bottom:none!important}.steedos-table .table{border-left:0!important;border-right:0!important;border-collapse:separate!important}.ins_attach_version{display:none!important}table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}}.instance-print{font-size:14px}.instance-print table{margin:auto}.instance-print .hidden-xs,.instance-print .instance-view .instance-name{display:inline!important}.instance-print .wrapper{overflow:visible;background:silver!important;position:inherit!important}.instance-print .content-wrapper{top:0!important}.instance-print .btn{border-radius:0}.instance-print .box{border-radius:0;border-top:0;margin-bottom:0;padding-bottom:10px;box-shadow:none}.instance-print .box .box-body{padding:10px 0 0}.instance-print .content-wrapper{margin-left:auto!important;width:700px;margin:0 auto;-webkit-transition:all .3s;transition:all .3s}.instance-print .instance-table .instance-template,.instance-print .traces_table_modal .instance-template{-webkit-transition:all .3s;transition:all .3s;max-width:none}.instance-print .instance-table .instance-traces,.instance-print .traces_table_modal .instance-traces{-webkit-transition:all .3s;transition:all .3s;max-width:none;padding-bottom:10px}.instance-print .instance-table .instance-traces>.pull-left,.instance-print .traces_table_modal .instance-traces>.pull-left{padding:10px 0 4px;font-size:15px}.instance-print .instance-table .steedos-table table thead .title,.instance-print .traces_table_modal .steedos-table table thead .title{min-width:auto;white-space:normal}.instance-print .navigation-bar .print-tool{padding:6px 12px;float:left}.instance-print .navigation-bar .print-tool .cbx-label{cursor:pointer;margin-right:8px}.instance-print .navigation-bar .print-tool .cbx-label .cbx-print{margin-right:4px}.instance-print .navigation-bar .print-tool .cbx-label span{position:relative;top:-1px}.instance-print .instance_attachments{margin-top:0!important}.instance-print .instance-traces{padding-left:15px;padding-right:15px}.instance-print .form-control{min-height:22px!important;text-align:left}.instance-print .td-padding{padding:5px 10px!important}.section .control-label{color:#333;font-weight:700;font-size:15px}.instance.instance-default .section.callout.callout-default{padding:2px 0;border:none;background:#fff;border-radius:0;margin-top:5px;margin-bottom:-5px}.instance.instance-default .section .control-label{color:#795548;font-weight:700;font-size:16px;width:100%;border-bottom:1px dashed #d2d6de;padding-bottom:3px}.instance.instance-default .section p{color:#777}.steedos-table .item-readonly{cursor:pointer}.steedos-table table .removed{min-width:31px;width:31px;text-align:center}.steedos-table table tbody .edit{cursor:pointer}.steedos-table table .number{text-align:right}.steedos-table table thead .title{min-width:50px;white-space:nowrap}.steedos-table .checkbox,.steedos-table .radio{margin-top:0;margin-bottom:0;display:table-cell;border-radius:0}.steedos-table .steedosTable-add-item{padding:3px 8px}.steedos-table .panel-body .panel-heading{background-color:#f5f5f5;border-color:#ddd}.steedos-table .panel-body .panel-heading .description{display:inherit}.steedos-table .panel-body .panel-heading .control-label{font-weight:700;font-size:15px}.instance-table .form-table .form-group .steedos-table .autoform-table tr td{border-top:1px solid #000!important;border-bottom:0!important}.instance-table .form-table .form-group .steedos-table .autoform-table td:last-child{border-right:none!important}.steedos-table .add-item-tr{background:rgba(255,255,0,.03);cursor:pointer}.steedos-table .add-item-tr td{border-bottom:0!important}.steedos-table .add-item-tr .ion{height:20px;line-height:20px;margin-right:6px}.steedos-table .panel-body{padding:0}.steedos-table .panel-body .panel-content{padding:0;overflow-x:auto}.steedos-table .panel-body .panel-content .table{margin-bottom:0}.instance-default .steedos-table{border-radius:0;border:none}.instance-default .steedos-table .panel-body .panel-heading{border:none;padding:2px 0;margin-bottom:-5px;margin-top:5px;background:none}.instance-default .steedos-table .panel-body .panel-heading .control-label{width:100%;color:#795548;font-size:16px}.instance-default .steedos-table .panel-body .panel-heading .description{margin-top:-10px;margin-bottom:10px;color:#777;padding-top:5px}.instance-default .steedos-table .panel-body .panel-content{padding-bottom:1px;border:1px solid #d2d6de}.instance-default .steedos-table .panel-body .panel-content .table-bordered{border:none}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead{background:#f9f9f9}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td{border:1px solid #eee;border-top:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:last-child{border-right:0}.steedos-table-modal .steedos-table-modal-body{overflow-y:auto;padding:0}.steedos-table-modal .steedos-table-modal-body .panel{border:none;box-shadow:none;margin-bottom:0}.steedos-table-modal .steedos-table-modal-body .panel .panel-body{padding:5px 15px;border:none;position:relative}.steedos-table-modal .steedos-table-modal-body .panel .panel-body .dx-widget.form-control{padding:6px 12px}.steedos-table-modal .steedos-table-modal-body .panel .panel-heading{display:none}.steedosTable-item-add{padding:2px 7px}#steedos-table-modal .steedos-selectize .selectize-dropdown{position:fixed;top:auto!important;left:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input [data-value]{padding:2px!important;min-height:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input .slds-pill .slds-pill__action{line-height:24px}.steedos-selectize .selectize-input{border-radius:0!important;background-image:none!important;border-color:#d2d6de!important;box-shadow:none!important;height:auto}.steedos-selectize .selectize-dropdown{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;height:200px!important}.steedos-selectize .selectize-dropdown-content{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;max-height:none!important;height:auto!important}.steedos-selectize .selectize-control.multi .selectize-input.has-items{padding:0!important}.steedos-selectize .selectize-control .selectize-input.disabled{opacity:1!important}.steedos-selectize .selectize-control.multi .selectize-input.disabled [data-value]{color:inherit!important}.steedos-selectize .disabled .slds-pill__remove{display:none}.slds-pill{display:inline-flex;align-items:center;justify-content:space-between;line-height:1.5;max-width:100%;padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff;position:relative;min-height:1.625rem}@media (pointer:coarse) and (hover:none){.slds-pill{line-height:1.875rem;padding:0 .75rem}}.slds-pill+.slds-pill{margin-left:.125rem}@media (pointer:coarse) and (hover:none){.slds-pill+.slds-pill{margin-left:.25rem}}.slds-pill:hover{background-color:#f4f6f9}.slds-pill:focus{outline:0;border-radius:.25rem;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.slds-pill a{text-decoration:none}.slds-pill--bare,.slds-pill_bare{background-color:transparent;border:0}.slds-pill--bare:hover,.slds-pill_bare:hover{background-color:transparent}.slds-pill-container,.slds-pill__container,.slds-pill_container{display:flex;min-height:calc(1.875rem + 2px);padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff}@media (pointer:coarse) and (hover:none){.slds-pill-container,.slds-pill__container,.slds-pill_container{padding:.25rem}}.slds-pill-container .slds-listbox_inline,.slds-pill__container .slds-listbox_inline,.slds-pill_container .slds-listbox_inline{margin-left:0;margin-right:0}.slds-pill__container--bare,.slds-pill__container_bare,.slds-pill_container--bare,.slds-pill_container_bare{display:flex;padding:.125rem;border:0;border-radius:0;background-color:transparent}.slds-pill__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (pointer:coarse) and (hover:none){.slds-pill__label{font-size:.875rem}}.slds-pill__label:focus{outline:0;border-radius:.25rem;box-shadow:0 0 3px #0070d2}.slds-pill__icon,.slds-pill__icon_container{width:1.25rem;height:1.25rem;margin-right:.25rem}.slds-pill__icon .slds-avatar,.slds-pill__icon .slds-icon,.slds-pill__icon_container .slds-avatar,.slds-pill__icon_container .slds-icon{width:1.25rem;height:1.25rem;display:block;font-size:.625rem}.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:calc(1.5rem + 2px)}@media (pointer:coarse) and (hover:none){.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:2.25rem}}.slds-pill__remove{width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.25rem;border-radius:.125rem}.slds-pill__remove svg{width:.875rem;height:.875rem}.slds-pill--link,.slds-pill_link{border:0;padding:0}.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{display:inline-block;position:absolute;top:50%;left:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{left:.75rem}}.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{position:absolute;top:50%;right:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{right:.75rem}}.slds-pill__action{padding:.125rem calc(1.25rem + 2px) .125rem .125rem;border:1px solid #dddbda;border-radius:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1;color:inherit!important}@media (pointer:coarse) and (hover:none){.slds-pill__action{padding:0 calc(1.75rem + 2px) 0 .75rem}}.slds-pill__action:focus{outline:0;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.selectize-control.multi .selectize-input [data-value]{background:none!important;box-shadow:none!important;border-radius:.25rem!important;display:inline-flex!important;align-items:center!important;justify-content:space-between!important;line-height:1.5!important;max-width:100%!important;padding:0!important;border:none!important;background-color:#fff!important;position:relative!important;min-height:1.625rem!important;text-shadow:none!important}.instance_new{cursor:pointer}.sidebar .treeview-menu .ion{float:left}.sidebar .treeview-menu .inbox-flow .flow-name{width:135px;vertical-align:bottom}.sidebar .treeview-menu .category-name{width:125px;vertical-align:bottom}.sidebar-collapse .sidebar .treeview-menu{max-height:350px;overflow-y:auto}.sidebar-collapse .sidebar .treeview-menu .inbxo-flow .flow-name{width:115px}.workflow .main-sidebar .sidebar-menu ul .active a{color:#0078d7!important}.workflow .main-sidebar .box-space-name{width:140px!important;vertical-align:bottom}.instanceContent{background:#fff}.callout.callout-default{border-color:#d2d6de;color:grey;background-color:#f1f1f1}.callout.callout-default h4{color:#333}.callout-default a{color:grey}.callout-default a:hover{color:#333}.panel-controls{float:right;display:block;cursor:pointer}.autoform-table{text-align:left;width:100%;max-width:100%}.autoform-table td.field.number{text-align:right}.font-size-h3{font-size:24px;margin-top:20px!important;margin-bottom:10px!important}.bg-info{padding:15px}.instance-traces>.heading{font-size:17px}.traces{font-size:14px}.traces td{border:none}.trace-item{height:30px;background-color:#eee;font-weight:700;font-size:14px;color:#404040}.trace-item .trace-approve-talbe .approve-item a.btn-link{display:inline-block}.approve-item,.approve-item-distribute{height:30px;font-size:13px;cursor:pointer}.approve-item-distribute .name,.approve-item .name{font-weight:700}.approve-item-distribute{cursor:auto!important}.approve-item .red{color:red}.approve-item .blue{color:#00f}.approve-description{border:none;height:auto}.approve-description .description{padding-top:0;border:none}.approve-description .description p{margin:0}.approve-description .red{color:red}.approve-description{cursor:pointer}.approve-item>.name{font-weight:700}.approve-item>.approved,.instance-trace-detail-modal .approved{color:green}.approve-item>.rejected,.instance-trace-detail-modal .rejected{color:red}.approve-item>.autoSubmitted,.instance-trace-detail-modal .autoSubmitted{color:orange}.approve-item>.description{border-top:0;font-size:14px;white-space:pre-line;color:#000}textarea.suggestion-control{height:auto;padding-right:30px;font-size:14px}.button-group{margin-bottom:15px}.button-group>.glyphicon{padding-left:15px;font-size:18px}.suggestion-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #d2d6de;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.suggestion-control:focus{border-color:#3c8dbc;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.suggestion-control::-moz-placeholder{color:#999;opacity:1}.suggestion-control:-ms-input-placeholder{color:#999}.suggestion-control::-webkit-input-placeholder{color:#999}.suggestion-control::-ms-expand{background-color:transparent;border:0}.form-group.has-error .suggestion-control{border-color:#dd4b39;box-shadow:none}.suggestion-control.select2-container{height:auto!important;padding:0}.suggestion-control .select2-choice{border:0;border-radius:2px}.suggestion-control:not(select){-webkit-appearance:none}.suggestion-control.select2-container.select2-dropdown-open{border-color:#5897fb;border-radius:3px 3px 0 0}textarea{resize:none}@media (min-width:768px){.container{width:760px}}[data-required] label:after{content:" *";color:red}.instance-attachments>.heading{font-size:17px}.ins-upload{display:inline-block;position:relative}.ins-upload .ins-file-icon{padding-left:15px;font-size:18px}.ins-upload .ins-file-input{display:inline-block;top:0;left:0;overflow:hidden}.ins-upload .ins-file-input,.ins-upload .ins-file-version-input{position:absolute;width:100%;height:100%;opacity:0;z-index:100;cursor:pointer}.ins-upload .ins-file-version-input{top:1px}.ins-applicant-selector{display:inline-block;width:160px}.ins-modal{-webkit-border-radius:4px}.ins-attach-view .delete,.ins-attach-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-view a{color:#3c8dbc}.ins-attach-view a:hover{text-decoration:underline}.ins-attach-view:hover .delete,.ins-attach-view:hover .mouse-hover{display:inline-block}.ins-attach-version-view{padding:8px}.ins-attach-version-view .delete,.ins-attach-version-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-version-view a:hover{text-decoration:underline}.ins-attach-version-view:hover .delete,.ins-attach-version-view:hover .mouse-hover{display:inline-block}.form-group .select2{width:100%!important}.selectOrg[readonly],.selectUser[readonly]{background-color:#fff!important}.draft .selectOrg[readonly],.draft .selectUser[readonly],.inbox .selectOrg[readonly],.inbox .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.draft .selectOrg[disabled],.draft .selectUser[disabled],.inbox .selectOrg[disabled],.inbox .selectUser[disabled],.selectOrg[disabled],.selectUser[disabled]{background-color:#fff!important}.cfTextarea[disabled],.cfTextarea[readonly]{height:100%;min-height:60px;word-wrap:break-word;word-break:keep-all}.steedos-table-modal-body .form-control{background-color:rgba(255,255,0,.03)!important}.steedos-table-modal-body .form-control[disabled],.steedos-table-modal-body .form-control[readonly],.steedos-table-modal-body fieldset[disabled] .form-control{background-color:#fff;opacity:1;color:#000}.instance-default .instance-form .form-control[disabled],.instance-default .instance-form .form-control[readonly],.instance-default .instance-form fieldset[disabled] .form-control{background-color:#fff!important;opacity:1;color:#000}.instance-default .instance-form .selectOrg[readonly],.instance-default .instance-form .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .selectOrg[disabled],.instance-default .instance-form .selectUser[disabled]{background-color:#fff!important}.instance-default .instance-form.draft .form-control,.instance-default .instance-form.inbox .form-control{background-color:rgba(255,255,0,.03)}.instance-default .instance-form .field-editable{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .readonly-table{border:1px solid #d2d6de}.instance-default .instance-form .readonly-table table{border:none}.instance-default .instance-form .readonly-table table tr td:first-of-type{border-left:none}.instance-default .instance-form .readonly-table table tr td:last-of-type{border-right:none}.instance p{margin:0}.instance .instance-header{margin-left:15px;margin-bottom:0!important}.instance .instance-header>div{padding-top:6px;padding-bottom:6px;text-align:left;font-weight:400}.instance .instance-form .box-body>.col-md-12{padding-right:0}.instance .instance-form .box-body form>.col-md-6:nth-child(2n){clear:both}@media (max-width:768px){.instance .instance-form .box-body .form-group.opinion-field{margin-bottom:10px}}.instance .instance-form .box-header{padding:0;margin-bottom:10px;margin-right:15px}.instance .instance-form .applicant-wrapper .input-group-addon{padding-left:0;border:none}.instance .instance-form .applicant-wrapper input{cursor:pointer}.instance .instance-form .ins_applicant{padding:6px 12px;width:100%;display:inline-block}.instance .instance-form #instanceform .col-md-6,.instance .instance-form #instanceform .col-md-12{padding-left:0}.instance-sign{border:1px solid #d2d6de;padding:5px 10px;color:#000}.instance-sign .instance-sign-content{min-height:20px;margin-bottom:10px}.instance-sign .instance-sign-content .not-finished{color:#888}.instance-sign .instance-sign-content .my-approve{border-left:3px solid #3c8dbc;padding-left:4px}.instance-sign .instance-sign-text{clear:both}.instance-traces{padding-right:15px}.instance-table .instance-traces{max-width:700px;padding-right:0}.instance-table .instance-template,.traces_table_modal .instance-template{max-width:700px}.instance-table .instance .form-group .form-control,.traces_table_modal .instance .form-group .form-control{min-height:34px}.instance-table .bootstrap-datetimepicker-widget table td,.traces_table_modal .bootstrap-datetimepicker-widget table td{border:none!important}.instance-table .instance-form .box-body>.col-md-12,.traces_table_modal .instance-form .box-body>.col-md-12{padding-right:15px}.instance-table .instance-form .box-header,.traces_table_modal .instance-form .box-header{padding:0;margin-bottom:0}.instance-table .instance-form .table-page-footer td,.traces_table_modal .instance-form .table-page-footer td{padding-left:0;padding-right:0}.instance-table .instance-sign,.traces_table_modal .instance-sign{border:0!important;padding:0}.instance-table .opinion-field,.traces_table_modal .opinion-field{padding:5px 10px;background:inherit!important}.instance-table .cfTextarea[disabled],.instance-table .cfTextarea[readonly],.traces_table_modal .cfTextarea[disabled],.traces_table_modal .cfTextarea[readonly]{min-height:auto}.instance-table .cfTextarea[disabled] p,.instance-table .cfTextarea[readonly] p,.traces_table_modal .cfTextarea[disabled] p,.traces_table_modal .cfTextarea[readonly] p{margin:0}.instance-table .attachments-list .attachments,.traces_table_modal .attachments-list .attachments{margin-bottom:0}.instance-table .box-header,.traces_table_modal .box-header{text-align:center;font-weight:bolder}.instance-table .applicant-wrapper,.traces_table_modal .applicant-wrapper{margin:0;text-align:left}.instance-table .applicant-wrapper .form-control.ins_applicant,.traces_table_modal .applicant-wrapper .form-control.ins_applicant{padding:0!important;height:100%;display:inline;background:transparent!important;border:none;min-height:20px!important}.instance-table .help-block,.traces_table_modal .help-block{display:none}.instance-table .form-table,.traces_table_modal .form-table{width:100%;border-collapse:collapse;border:2px solid #000;table-layout:fixed}.instance-table .form-table tbody,.instance-table .form-table tr,.traces_table_modal .form-table tbody,.traces_table_modal .form-table tr{border-color:inherit}.instance-table .form-table tr>td,.traces_table_modal .form-table tr>td{position:relative}.instance-table .form-table tr>td .instance-sign-text,.traces_table_modal .form-table tr>td .instance-sign-text{position:absolute;right:5px;bottom:2px}.instance-table .form-table .td-title,.traces_table_modal .form-table .td-title{width:16%;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field,.traces_table_modal .form-table .td-field{text-align:left;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field .form-group,.traces_table_modal .form-table .td-field .form-group{color:#000}.instance-table .form-table .td-field.readonly,.traces_table_modal .form-table .td-field.readonly{background:#fff}.instance-table .form-table .td-field .form-control,.traces_table_modal .form-table .td-field .form-control{padding:0}.instance-table .form-table .td-childfield,.traces_table_modal .form-table .td-childfield{border-top:1px solid #000;border-top-color:inherit!important;border-right:1px solid #000;border-right-color:inherit!important;border-bottom:1px solid #000;border-bottom-color:inherit!important;padding:0!important}.instance-table .form-table .tr-child-table+.td-childfield,.traces_table_modal .form-table .tr-child-table+.td-childfield{border-top:1px solid #000}.instance-table .form-table input,.instance-table .form-table select,.instance-table .form-table textarea,.traces_table_modal .form-table input,.traces_table_modal .form-table select,.traces_table_modal .form-table textarea{border-width:0 0 1px;border-bottom-color:#fff}.instance-table .form-table input:disabled,.instance-table .form-table select:disabled,.instance-table .form-table textarea:disabled,.traces_table_modal .form-table input:disabled,.traces_table_modal .form-table select:disabled,.traces_table_modal .form-table textarea:disabled{border-bottom:none}.instance-table .form-table select.form-control,.traces_table_modal .form-table select.form-control{padding:0}.instance-table .form-table .form-group,.traces_table_modal .form-table .form-group{margin-bottom:0}.instance-table .form-table .form-group .callout,.traces_table_modal .form-table .form-group .callout{margin:0;padding:4px 6px;border-radius:0;border-left:none}.instance-table .form-table .form-group .callout h4,.traces_table_modal .form-table .form-group .callout h4{margin:0;padding:0;height:26px;line-height:26px;font-size:14px;font-weight:700}.instance-table .form-table .form-group .form-control,.traces_table_modal .form-table .form-group .form-control{border:none;min-height:22px}.instance-table .form-table .form-group.has-error .form-control,.traces_table_modal .form-table .form-group.has-error .form-control{border-bottom:1px solid #dd4b39}.instance-table .form-table .form-group .steedos-table,.traces_table_modal .form-table .form-group .steedos-table{border:0;margin-bottom:0}.instance-table .form-table .form-group .steedos-table table,.instance-table .form-table .form-group .steedos-table td,.instance-table .form-table .form-group .steedos-table th,.traces_table_modal .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table td,.traces_table_modal .form-table .form-group .steedos-table th{border:1px solid #000}.instance-table .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table table{border-left:none;border-right:none;border-bottom:none!important}.instance-table .form-table .form-group .steedos-table td:first-child,.instance-table .form-table .form-group .steedos-table th:first-child,.traces_table_modal .form-table .form-group .steedos-table td:first-child,.traces_table_modal .form-table .form-group .steedos-table th:first-child{border-left:0!important}.instance-table .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.instance-table .form-table .form-group .steedos-table th:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table th:nth-last-child(-1n+2){border-right:0!important}.instance-table .form-table .form-group .steedos-table .panel-heading,.traces_table_modal .form-table .form-group .steedos-table .panel-heading{padding:4px 6px;border:none}.instance-table .form-table .form-group .steedos-table .panel-heading .pull-right,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .pull-right{height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .panel-heading .control-label,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .control-label{margin-bottom:0;height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .table-bordered,.traces_table_modal .form-table .form-group .steedos-table .table-bordered{border-bottom:none}.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td{border-bottom:none!important}@-moz-document url-prefix(){.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child th,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child th{border-bottom:1px solid #000!important}}.instance-table .form-table .af-checkbox-group,.instance-table .form-table .af-radio-group,.instance-table .form-table .checkbox,.traces_table_modal .form-table .af-checkbox-group,.traces_table_modal .form-table .af-radio-group,.traces_table_modal .form-table .checkbox{padding-left:12px;padding-top:6px}.instance-table .form-table .form-group>.checkbox,.traces_table_modal .form-table .form-group>.checkbox{vertical-align:middle;margin:0 0 -4px}.instance-table .form-table .form-group>.checkbox label,.traces_table_modal .form-table .form-group>.checkbox label{margin:0;min-height:20px;line-height:20px}.instance-table .form-table .form-group>.checkbox label input,.traces_table_modal .form-table .form-group>.checkbox label input{margin-top:0}.safari .instance-table .form-table .form-group>.checkbox label input,.safari .traces_table_modal .form-table .form-group>.checkbox label input{margin-top:4px}.instance-table .form-table .form-group>.af-checkbox-group label input,.instance-table .form-table .form-group>.af-radio-group label input,.traces_table_modal .form-table .form-group>.af-checkbox-group label input,.traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:0}.safari .instance-table .form-table .form-group>.af-checkbox-group label input,.safari .instance-table .form-table .form-group>.af-radio-group label input,.safari .traces_table_modal .form-table .form-group>.af-checkbox-group label input,.safari .traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:4px}.instance-table .instance-traces,.traces_table_modal .instance-traces{background:#fff}.instance-table .instance-traces .box-header,.traces_table_modal .instance-traces .box-header{padding-left:14px;margin-bottom:-10px;font-size:18px}.instance-table .instance-traces table.traces,.traces_table_modal .instance-traces table.traces{margin:15px auto;background:transparent;border:2px solid #000}.instance-table .instance-traces table.traces tr,.traces_table_modal .instance-traces table.traces tr{background:#fff}.instance-table .instance-traces table.traces td,.traces_table_modal .instance-traces table.traces td{background:transparent;border:1px solid #000;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-table .instance-traces table.traces td.td-stepname,.traces_table_modal .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-table .instance-traces table.traces td.td-approve,.traces_table_modal .instance-traces table.traces td.td-approve{padding:0}.instance-table .instance-traces table.traces td table,.traces_table_modal .instance-traces table.traces td table{width:100%}.instance-table .instance-traces table.traces td table tr,.traces_table_modal .instance-traces table.traces td table tr{width:100%;border:none}.instance-table .instance-traces table.traces td table tr.approve-item,.traces_table_modal .instance-traces table.traces td table tr.approve-item{border-bottom:1px solid #000}.instance-table .instance-traces table.traces td table tr.approve-item.description,.instance-table .instance-traces table.traces td table tr.approve-item:last-child,.traces_table_modal .instance-traces table.traces td table tr.approve-item.description,.traces_table_modal .instance-traces table.traces td table tr.approve-item:last-child{border-bottom:none}.instance-table .instance-traces table.traces td table tr td,.traces_table_modal .instance-traces table.traces td table tr td{text-align:left;border:none}.instance-table .instance-traces table.traces td table tr td.name,.traces_table_modal .instance-traces table.traces td table tr td.name{width:40%;color:#333}.instance-table .instance-traces table.traces td table tr td.finish-date,.traces_table_modal .instance-traces table.traces td table tr td.finish-date{width:35%;min-width:140px;color:#333}.instance-table .instance-traces table.traces td table tr td.description,.traces_table_modal .instance-traces table.traces td table tr td.description{padding-top:6px;padding-bottom:0;height:100%}.instance-table .instance-traces .image-sign,.traces_table_modal .instance-traces .image-sign{max-width:90px;max-height:60px}.instance-view .instance-table .draft .form-table .td-title.title-editable.is-required:after,.instance-view .instance-table .inbox .form-table .td-title.title-editable.is-required:after{content:"*";color:red}.instance-view .instance-table .draft .form-table .td-field.field-editable,.instance-view .instance-table .inbox .form-table .td-field.field-editable{background-color:rgba(255,255,0,.1)!important}.instance-print .navigation-bar #font-minus,.instance-print .navigation-bar #font-plus{padding:6px 8px}.instance-print .navigation-bar #printWidth{width:42px}.instance-print .content-wrapper{width:210mm}.instance-print .instance-traces{background:#fff}.instance-print .instance-traces .box-title{padding:10px 0}.instance-print .instance-table .instance-traces{padding-right:15px}.instance-print .instance-table .instance-traces .box-header{font-size:15px;padding-left:0;border-bottom:0}.instance-print .instance-table .instance-traces .box-header .box-tools{top:10px}.instance-print .instance-table .instance-traces .box-header .box-tools .btn-box-tool{padding:2px 5px 1px}.instance-print .instance-table .instance-traces .box-body{padding-top:0}.instance-print .instance-table .instance-traces .box-body table.traces{margin-top:5px}.af-checkbox-group .readonly,.af-radio-group .readonly,.checkbox .readonly,.radio .readonly{padding-left:0}.instance-form{margin-bottom:0;border-radius:0}.instance-traces{margin-bottom:5px;border-radius:0}.instance-traces .box-header .box-title{margin-left:5px}.touch .instance-traces table.traces{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-traces .cc-label{color:#333;font-weight:400;display:initial;border-radius:12px;margin-left:4px}.instance-traces .cc-label .cc-approve-remove{margin-left:4px}.instance-traces .selected .cc-label{color:#fff;font-weight:400;padding-left:5px;display:initial}.instance-traces .cc-approve-remove{padding:0;color:#97a0b3!important;cursor:pointer}.instance-traces .cc-approve-remove .ion{font-size:90%}.instance-traces .cc-approve-remove:hover{color:#606c84!important}.instance .form-group .form-control{height:100%;min-height:32px;word-break:break-all;padding-top:5px;padding-bottom:6px;vertical-align:middle}.instance .form-group .form-control.dx-date-box{width:100%!important;padding:0 0 0 12px}.instance .form-group .form-control.dx-date-box.dx-texteditor.dx-state-disabled:after{display:none}:root .instance .form-group .form-control,_:-ms-fullscreen{padding-top:6px}.instance .form-group .form-control,_:-ms-lang(x),_:-webkit-full-screen{padding-top:6px}.instance-table.instance .form-group .form-control{padding-top:0;padding-bottom:0}.instance-table.instance .form-group .form-control.dx-date-box{padding-left:0;margin:-3px 0}.instance-table.instance .form-group .form-control.dx-date-box .dx-texteditor-container .dx-texteditor-input{padding-right:20px}.instance .form-group input[type=date].form-control,.instance .form-group input[type=datetime-local].form-control{height:32px}.af-checkbox-group,.instance .form-group .af-radio-group{min-height:22px}.instance .form-group>.checkbox{min-height:22px;line-height:22px;padding-left:0;padding-top:0;margin-top:6px}.instance .form-group>.af-checkbox-group,.instance .form-group>.af-radio-group{padding-left:0;padding-top:0}.android .steedos-table-modal .form-group>.checkbox label,.mobile-safari .instance .form-group>.af-checkbox-group label,.mobile-safari .instance .form-group>.af-radio-group label,.mobile-safari .instance .form-group>.checkbox label,.mobile-safari .steedos-table-modal .form-group>.af-checkbox-group label,.mobile-safari .steedos-table-modal .form-group>.af-radio-group label,.mobile-safari .steedos-table-modal .form-group>.checkbox label{line-height:25px}.instance.instance-table .form-group>.af-checkbox-group label,.instance.instance-table .form-group>.af-radio-group label,.instance.instance-table .form-group>.checkbox label,_:-ms-lang(x) label,_:-webkit-full-screen label{line-height:22px}:root .instance .form-group>.checkbox label,_:-ms-fullscreen label{line-height:20px}.instance .instance_attachments{padding-left:0;padding-right:15px}.instance .instance_attachments .attachments-btns,.instance .instance_attachments .attachments-list{margin-bottom:10px}.instance .instance_attachments .ins-upload .steedos-icon-wrap svg.slds-button__icon{fill:#0070d2}.instance-table .instance_attachments{padding-left:0;padding-right:0}.instance-to-attachment label{font-weight:400;cursor:pointer}.image-sign{max-width:180px;max-height:90px}.instance-sign-text{text-align:right}.instance-sign-text .instance-sign-opinion-btn,.instance-sign-text .instance-sign-text-btn,.instance-suggestion #instance_flow_opinions,.instance-suggestion .instance-sign-opinion-btn{text-decoration:underline;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-suggestion #instance_next .instance-suggestion-next-steps{min-height:36px}.instance-suggestion #instance_next .instance-suggestion-next-steps .ion-ios-paperplane-outline{padding-left:5px}.instance-view .instance-name{text-align:center;margin-bottom:15px}.instance-view .instance-name .box-title{font-size:20px}.instance-view .instance-table-name-td{padding-bottom:10px}.no-border,.no-border td{border:0!important}.border-right{border-right:1px solid red!important;border-color:inherit!important}.border-right-none,.border-right-none td:last-child{border-right:0!important}.border-left{border-left:1px solid red!important;border-color:inherit!important}.border-left-none,.border-left-none td:first-child{border-left:0!important}.border-top{border-top:1px solid red!important;border-color:inherit!important}.border-top-none,.border-top-none tr:first-child td{border-top:0!important}.border-bottom{border-bottom:1px solid red!important;border-color:inherit!important}.border-bottom-none,.border-bottom-none tr:last-child td{border-bottom:0!important}.nowrap{white-space:nowrap}.verticle-mode{writing-mode:tb-lr;letter-spacing:12px;padding-top:12px!important;height:140px}.verticle-mode,.verticle-mode label{-webkit-writing-mode:vertical-lr;writing-mode:vertical-lr}.verticle-mode label{display:inline}.td-center{vertical-align:middle!important;text-align:center}.inline-left{display:inline;float:left}.inline-right{display:inline;float:right}.font-color-red{color:red!important}.font-color-black{color:#000!important}.border-color-red{border-color:red!important}.border-color-black{border-color:#000!important}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.font-weight-bold{font-weight:700}.instance-template tr:nth-child(2) td{border-top:0!important}.instance-template .section,.instance-template .section .control-label{color:inherit!important}.instance-template .form-table td{border-width:1px;border-style:solid!important;border-color:inherit!important}.instance-template td{vertical-align:top;padding:5px 10px}.instance-template td label{color:inherit;margin-bottom:0;font-weight:400}.instance-template .form-control[disabled],.instance-template .form-group[disabled]{width:100%;height:100%;background-color:transparent!important;border:none;padding:0}.instance-template input{font-size:inherit;padding:0;min-height:22px!important;font-weight:inherit}.instance-template textarea{font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}.instance-template select{font-family:inherit;color:inherit;font-weight:inherit}.instance-template .td-childfield>.form-group{color:inherit}.instance-template .form-group{color:#000}.instance-template .applicant-wrapper .form-control{color:#000!important}.instance-template .instance-title,.instance-template .instance-title .form-group,.instance-template .page-title,.instance-template .page-title .form-group{color:inherit;text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-control,.instance-template .instance-title .form-group .form-control,.instance-template .page-title .form-control,.instance-template .page-title .form-group .form-control{text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-group,.instance-template .instance-title .form-group .form-group,.instance-template .page-title .form-group,.instance-template .page-title .form-group .form-group{text-align:center;text-align:-webkit-center}.instance-template .instance-title .form-group select,.instance-template .instance-title select,.instance-template .page-title .form-group select,.instance-template .page-title select{height:41px!important;max-width:600px;margin:0 auto}.instance-template .instance-title .form-group input,.instance-template .instance-title input,.instance-template .page-title .form-group input,.instance-template .page-title input{min-height:41px!important}.instance-template .form-control{font-size:inherit;color:inherit!important;background-color:transparent!important}.ins-opinion-modal .btn-new-opinion{cursor:pointer;background:#fff}.ins-opinion-modal .btn-new-opinion:focus,.ins-opinion-modal .btn-new-opinion:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.ins-opinion-modal .list-group{margin-bottom:15px}.ins-opinion-modal .list-group .list-group-item{-ms-user-select:none;user-select:none;-moz-user-select:none;-webkit-user-select:none}.ins-opinion-modal .list-group .list-group-item .btn-sm{margin:-5px -2px}.ins-opinion-modal .list-group .list-group-item .pull-right{margin-right:-8px}.ins-opinion-modal .list-group:last-child .list-group-item:last-child{border-bottom:1px solid #ddd;border-bottom-left-radius:0;border-bottom-right-radius:0}.related-instances .related-instances-item a{color:#3c8dbc;cursor:pointer}.related-instances .related-instances-item .ins-related-delete{margin-left:10px}.related-instances .related-instances-item a:hover{text-decoration:underline}.steedos-html.steedos-html-table-only{margin:-6px -12px -6px -13px}.steedos-html.steedos-html-table-only table{border:none;width:100%!important}.instance-table .steedos-html.steedos-html-table-only{margin:-6px}.instance-table .steedos-html.steedos-html-table-only table tr:first-child td{border-top-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr:last-child td{border-bottom-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:first-child{border-left-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:last-child{border-right-width:0!important}.instance-form .slds-select_container:before{display:none}.traces_table_modal .modal-body{border-top:0}.traces_table_modal .modal-body .modal-header{display:none}.traces_table_modal .box{border:0;box-shadow:none}.traces_table_modal .box .box-header{display:none}.traces_table_modal .box .box-body{padding:0}.traces_table_modal .box .box-body table{margin:0 auto}.traces_modal .modal-body{padding:0}.traces_modal .modal-body .box{border-top:0}.traces_modal .modal-body .box .box-header{display:none}.instance-traces ol,.instance-traces ul{list-style:decimal;list-style-position:inside}.instance-trace-detail-modal .modal-header .modal-title{font-size:18px;font-weight:700}.instance-sign-modal #instance_flow_opinions{text-decoration:underline;cursor:pointer}.instance-sign-modal .suggestion-control{min-height:120px;font-size:17px}.instance-sign-modal .instance-sign-history{text-decoration:underline;cursor:pointer}.instance-sign-modal .instance-suggestion{font-size:15px}.instance-sign-modal .instance-suggestion .instance-sign-opinion-btn{display:inline-block;line-height:30px;margin-right:15px;vertical-align:bottom;font-size:17px;max-width:100%}.instance-sign-modal .instance-suggestion #instance_flow_opinions{line-height:30px;display:inline-block;font-size:17px}.history-sign-approve a{color:inherit}.history-sign-approve a.finish-date{float:right}.history-sign-approve .select-suggestion-td{width:10px}.history-sign-approve .select-suggestion-td .select-suggestion{display:inline-block;float:right}.history-sign-approve tr{cursor:pointer}.history-sign-approve .sign-approves{margin-top:0}.history-sign-approve .sign-approves .use-suggestion{margin-right:10px}.history-sign-approve .sign-approves .use-suggestion .weui-media-box__title{overflow:auto;text-overflow:unset;white-space:normal;font-size:15px!important;font-weight:400!important}.history-sign-approve .sign-approves .select-suggestion .weui-switch{outline:none;zoom:.78;cursor:pointer}.instance-pick_approve_users .title th{font-weight:700;border:1px solid #d2d6de}.instance-pick_approve_users .title .step{text-align:center}.instance-pick_approve_users .title .approves{padding-left:13px}.instance-pick_approve_users .step-item .td-step-approves .form-group{margin-bottom:0}.instance-pick_approve_users .step-item .td-step-approves .form-group .control-label{display:none}.instance-pick_approve_users .stepName{text-align:center}.instance-pick_approve_users .action{width:50px;text-align:center}.instance-pick_approve_users .td-step-check{width:80px;text-align:center}.instance-pick_approve_users .td-step-approves{background-color:rgba(255,255,0,.1)!important}.instance-pick_approve_users .td-step-approves .checkbox-inline label,.instance-pick_approve_users .td-step-approves .radio-inline label{font-weight:400}.instance-pick_approve_users .selectUser-box{line-height:28px!important;border:none!important;background-color:inherit!important}.instance-pick_approve_users .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-pick_approve_users .instance-traces table.traces{background:transparent;border:2px solid #d2d6de}.instance-pick_approve_users .instance-traces table.traces tr{background:#fff}.instance-pick_approve_users .instance-traces table.traces td{background:transparent;border:1px solid #d2d6de;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-pick_approve_users .instance-traces table.traces td.td-approve{padding:0}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:auto}.instance-pick_approve_users .instance-traces table.traces td.td-step-check{width:50px}.instance-pick_approve_users .instance-traces table.traces td.td-step-approves .radio-inline{display:block;margin:0;white-space:nowrap}}.instance-pick_approve_users .instance-traces table.traces th{white-space:nowrap}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces th.approves{text-align:center;padding-left:0}}.instance-table .instance-pick_approve_users .instance-traces table.traces,.instance-table .instance-pick_approve_users .instance-traces table.traces td,.instance-table .instance-pick_approve_users .instance-traces table.traces th{border-color:#000}.flow_list_box a{cursor:pointer;color:#000}.flow_list_box .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box .weui-cell .ion{font-size:20px}.flow_list_box .weui-cell.checked{background-color:#00a65a;color:#fff}.flow_list_box .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box .box{box-shadow:none}.flow_list_box .box .weui-cells{margin-top:0}.flow_list_box .weui-cell__bd,.flow_list_box .weui-cell__ft{cursor:pointer}.flow_list_box .ion-ios-star{color:#f39c12}.flow_list_box_org a{cursor:pointer;color:#000}.flow_list_box_org .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box_org .weui-cell{padding:6px 15px}.flow_list_box_org .weui-cell .ion{font-size:20px}.flow_list_box_org .weui-cell.checked{background:#beebff}.flow_list_box_org .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box_org .box{box-shadow:none}.flow_list_box_org .box .weui-cells{margin-top:0}.flow_list_box_org .weui-cell__bd,.flow_list_box_org .weui-cell__ft{cursor:pointer}.flow_list_box_org .ion-ios-star{color:#f39c12}.flow-list-box-org-modal{z-index:1050}.flow-list-box-org-modal .modal-body .box-header{padding:10px}.flow-list-box-org-modal .modal-body .contacts-list-wrapper{overflow-y:auto}.flow-list-box-modal-body{padding-top:5px}.forward-select-flow-modal input[readonly]{background-color:#fff!important}.instance-list-wrapper .slds-page-header--object-home{border-radius:0;border-left:0;border-right:0;height:100px}@media (max-width:768px){.instance-list-wrapper .slds-page-header--object-home{height:65px}}.instance-list-wrapper .slds-page-header--object-home .slds-media__figure{margin-top:-2px}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow{width:140%}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow ul{background:#fff!important}.instance-list-wrapper .slds-page-header--object-home .slds-button{cursor:pointer}.instance-list-wrapper .instance-list table.dataTable thead .sorting_asc:after{font:14px/1 DXIcons;content:"\f051";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting_desc:after{font:14px/1 DXIcons;content:"\f052";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting:after{font:14px/1 DXIcons;content:"\f055";opacity:0;bottom:10px}.instance-list-wrapper .instance-list-body .instance-list-sidebar{position:absolute;left:0;top:99px;bottom:0;width:260px;border-right:1px solid #e0e5ee}.instance-list-wrapper .instance-list-body .instance-list-content{position:absolute;left:0;right:0;top:99px;bottom:0}@media (max-width:768px){.instance-list-wrapper .instance-list-body .instance-list-content{top:64px}}@media (min-width:768px){.instance-list-wrapper{background:red}.instance-list-wrapper .dropdown-menu{min-width:260px;max-width:300px}}.instance-list{margin-top:1px}.instance-list .datatable-instances{border-right:none}.instance-list .dataTables_paginate{float:right;width:65%}.instance-list .dataTables_length{float:left;width:35%}@media (max-width:768px){.instance-list .dataTables_paginate{width:100%}}.instance-list>div:nth-child(3){overflow-x:auto}.instance-list .dataTables_container{position:relative}.instance-list .dataTables_container .ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail,.instance-list .dataTables_container .ps-container:hover>.ps-scrollbar-x-rail:hover{background:#fff}.instance-list .dataTables_wrapper tbody tr td{position:relative}.instance-list .flow-name{padding-left:15px;width:69%;color:#777}.instance-list.instance-list-empty .dataTables_wrapper{display:none}.instance-list.instance-list-empty .slds-illustration .slds-illustration__svg{margin-bottom:-.6rem}.instance-list .dataTables_wrapper thead th:first-child{padding-left:20px!important}.instance-list .dataTables_wrapper thead th{white-space:nowrap;min-width:115px}.instance-list .dataTables_wrapper thead th:nth-child(3){min-width:115px}.instance-list .color-priority{color:#00f;display:none}.instance-list .color-priority.instance-name{display:inline-block}.instance-list .color-priority.color-priority-danger{color:red;display:inline-block}.instance-list .color-priority.color-priority-warning{color:purple;display:inline-block}.instance-list .color-priority.color-priority-muted{color:#00f;display:inline-block}.instance-list .step-current-state.terminated{color:grey}.instance-list .step-current-state.approved{color:green}.instance-list .step-current-state.rejected{color:red}.instance-list .instance-priority-bar{position:absolute;width:20px;left:1px;top:22px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-name span{color:#333;display:inline-block;float:right;font-weight:400;margin-right:10px}.instance-list .instance-name .color-priority{margin-left:8px}.instance-list .selected .flow-name,.instance-list .selected .instance-modified,.instance-list .selected .instance-name span{color:#fff}.instance-list .instance-modified{color:#777}.instance-list .selected .step-current-state{color:#fff}.instance-list .instance-read-bar{position:absolute;width:20px;left:1px;top:4px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-read-bar .ion.instance-favorite-selected{color:#666}.instance-list .selected .instance-read-bar .ion.instance-favorite-selected{color:#fff}.instance-list .unread{color:#1f95ec;position:absolute;top:9px;left:5px;font-size:90%}.instance-list .instance-step-current-name{color:#999;font-weight:400;padding-left:5px;display:initial}.instance-list .selected .instance-step-current-name{color:#fff}.instance-list .toolbar{min-height:51px}.instance-list .search-tip-bar{border-bottom:1px solid #eee;padding:10px 20px}.instance-list [aria-label=Title],.instance-list [aria-label=标题]{min-width:400px!important}.instance-list th.flow-filter{position:relative;padding-right:30px;cursor:pointer}.instance-list th.flow-filter:after{font-family:Ionicons;content:"\f31b";right:0;position:absolute;bottom:8px;right:8px;display:block;opacity:.5}.batch_instances_view{position:absolute;width:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);bottom:120px;right:20px}.batch_instances_view button{z-index:999;position:fixed;right:20px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:57px;height:57px;border-radius:57px;font-size:16px}.instance-list-wrapper .tabular-filter-by-flow{margin-right:5px}.instance-list-wrapper .tabular-filter-by-flow .caret{margin-left:5px}.instance-list-wrapper .search-tip-bar .label{margin-right:5px;border-radius:0;font-size:12px}.instance-list-wrapper .search-tip-bar .breadcrumb{display:inline-block;margin-bottom:0;padding:0;background-color:#fff}#instance_more_search_modal .submit-date-icon{border-right:none}#instance_more_search_modal .submit_date_end{padding-top:5px}.instance-priority-danger .td-field-文件标题 .form-group,.instance-priority-danger input[name=文件标题]{color:red!important}.instance-priority-warning .td-field-文件标题 .form-group,.instance-priority-warning input[name=文件标题]{color:purple!important}.instance-priority-muted .td-field-文件标题 .form-group,.instance-priority-muted input[name=文件标题]{color:#00f!important}.workflow-menu{width:300px;left:50%;margin-left:-150px;padding:0}.workflow-menu .weui-navbar{bottom:0;top:auto;display:block}.workflow-menu .weui-navbar__item{cursor:pointer;padding:8px 0}.workflow-menu .weui-bar__item_on{background-color:#08c!important;color:#fff}.workflow-menu-by-flow{overflow-y:auto}.workflow-menu-by-flow .weui_cells_title{font-weight:400;margin-top:0;margin-bottom:0}.workflow-menu-by-flow .weui_cells{margin-top:0}.workflow-menu-by-flow .selected{background-color:#08c;color:#fff!important}.workflow-menu-by-flow .active{color:#0078d7!important}.workflow-menu-by-flow .fa-angle-left{display:none}.workflow-menu-by-flow>li>.treeview-menu{margin-left:10px}.workflow-menu-by-flow .treeview-menu .treeview-menu{padding-left:20px}.creator-content-wrapper .main-sidebar .workflow-menu-by-flow li>.treeview-menu{display:block!important}@media (max-width:767px){.creator-content-wrapper .main-sidebar{background:#fff!important;display:none;width:100%;margin-top:66px!important}.creator-content-wrapper .main-sidebar .top-sidebar,.creator-content-wrapper .main-sidebar .workflow-menu-by-flow .header-app{display:none}.creator-content-wrapper .main-sidebar>.sidebar{box-shadow:0 1px 3px rgba(0,0,0,.5);border-radius:4px;left:10px;right:10px;bottom:10px;border-top-left-radius:unset;border-top-right-radius:unset;padding-bottom:10px}.creator-content-wrapper .content-wrapper{-webkit-transform:none;-ms-transform:none;transform:none}.creator-content-wrapper .content-wrapper.content-wrapper-shadow{display:none}.sidebar-open .creator-content-wrapper .main-sidebar{display:block}}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node.other-inbox-node.first-other-inbox-node{border-top:1px solid rgba(0,0,0,.1);margin-top:1.5rem;padding:.25rem 0}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container{-webkit-box-flex:0.22;-webkit-flex:0.22;-ms-flex:0.22;flex:0.22;min-width:36px}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container .bg-special{color:#333}.steedos .content-wrapper{margin-left:0}.steedos .chooseFlow .chooseFlow-header-close{display:none!important}.steedos #chooseFlow-modal-content{overflow:hidden!important;overflow-y:auto!important}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .slds-button{padding:0;margin:0;background:none;border:0;line-height:inherit;text-align:left;color:#080707}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .all-flow-label-icon,.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .flow-label-icon{top:-2px;position:relative;color:rgba(51,51,51,.71)}.steedos #chooseFlow-modal-content .slds-input{border-top:0;border-left:0;border-right:0}@media screen and (max-width:647px){.steedos #chooseFlow-modal-content{overflow-y:hidden!important}.steedos .ReactModalPortal .slds-modal__container{margin:0;padding:0}.steedos .ReactModalPortal .slds-modal__container .chooseFlow-header-close{display:block!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header{height:49px;border-radius:0;padding:.5rem}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-modal__close{display:none}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-text-heading_medium{font-size:18px;color:#080707;line-height:30px}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content{height:100%;border-radius:0!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div,.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div>div{height:100%}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content .slds-tree_container{overflow:hidden;overflow-y:auto;height:calc(100% - 32px)!important;max-height:calc(100% - 32px)!important}}.workflow-main{position:absolute;top:0;left:0;right:0;bottom:0}.workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.instance-list-wrapper{right:-1px;left:0;float:left;padding-left:0;padding-right:0;overflow-y:hidden;position:absolute;top:0;bottom:0;background:#fff}.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:38px}.instance-list-wrapper .navigation-bar .btn-offcanvas .inbox-pending-icon{font-size:75%;position:relative;left:-8px;top:-6px}@media (max-width:767px){.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:42px;position:relative;left:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new{position:relative;right:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new .ion-plus{position:relative;top:1px}}.instance-list-wrapper .toolbar{height:51px;background:#f3f3f3}.instance-list-wrapper .toolbar .instance-search-box{margin-right:5px}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:235px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search{padding-right:35px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search_button{padding:6px 10px;margin-left:-35px;border-top-right-radius:6px;border-bottom-right-radius:6px;height:34px;z-index:4}.instance-list-wrapper .toolbar .instance-search-box .input-group .form-control{border-radius:6px}@media screen and (max-width:767px){.instance-list-wrapper .toolbar .instance-search-box{position:absolute;left:8px;right:8px;margin-right:0!important}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:100%}}.instance-list-wrapper .search-tip-bar{background:#fff;border-bottom:1px solid #eee;padding:10px 20px;height:40px;margin-top:2px}.instance-list-wrapper .search-tip-bar .result-container{width:calc(100% - 30px)}.instance-list-wrapper .search-tip-bar #instance_search_tip_close_btn{width:30px}.instance-list-wrapper .instance-list{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;bottom:0;right:0;left:0;position:absolute;background-color:#fff}.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}@media (max-width:767px){.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}}.instance-list-wrapper .instance-list .instance-name{padding-left:15px;font-weight:700;word-break:break-all;width:100%}.instance-list-wrapper .instance-list .flow-name{float:left}.instance-list-wrapper .instance-list .instance-modified{padding-right:10px;display:inline-block;float:right}.instance-list-wrapper .instance-list .instance-applicant{padding-left:15px}.instance-list-wrapper .navigation-title{overflow:visible!important}.instance-list-wrapper .dataTables_wrapper .dataTable{background:#fff;border-top:0;margin-top:0!important}.instance-list-wrapper .dataTables_wrapper .dataTable thead{display:none}.instance-list-wrapper .dataTables_wrapper .table-bordered{border-left:none}.instance-list-wrapper .dataTables_wrapper .table>tbody>tr>td{border-bottom:1px solid #e8e8e8;border-top:0}.instance-list-wrapper .dataTables_wrapper tbody tr:hover{cursor:pointer}.instance-list-wrapper .dataTables_wrapper tbody tr:hover td.dataTables_empty{cursor:default}.instance-wrapper{position:absolute;top:0;bottom:0;overflow:hidden}.instance-wrapper .pull-right .dropdown-menu{right:0;left:auto}.instance-wrapper .instance-left-buttons .steedos-amis-button .antd-Button{height:30px;line-height:30px}.instance-wrapper .instance-left-buttons .slds-dropdown-trigger .steedos-amis-button .antd-Button{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:#181818;font-size:12px}.instance-wrapper .navigation-bar .instance-left-buttons{height:38px;position:relative;top:-2px;min-width:50px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-submit,.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group{vertical-align:middle;margin-left:10px}@media (min-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group .dropdown-menu-right{left:0}}.instance-wrapper .navigation-bar .instance-left-buttons .btn{margin-right:-6px;padding-right:8px;padding-left:8px;margin-top:2px}@media (max-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons{top:1px;left:-6px}.instance-wrapper .navigation-bar .instance-left-buttons .btn{padding:8px;margin-top:1px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-back{padding:14px}.instance-wrapper .navigation-bar .pull-right .btn{position:relative;top:-9px;padding:14px;right:-9px}}.instance-wrapper .instance-view{background:#fff;position:absolute;bottom:0;left:0;right:0}.instance-wrapper .instance-view .instance-suggestion-close{position:absolute;right:5px;z-index:666}.instance-wrapper .instance-view .instance-suggestion-close .btn{color:#999;font-size:21px}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion-close{display:none}}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step{padding:3px 0 3px 12px;margin-bottom:0;font-weight:400;font-size:14px}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step input{display:none}.instance-wrapper .instance-view .suggestion-radio-box label{height:22px;line-height:22px;margin-right:10px;font-size:14px}.instance-wrapper .instance-view .suggestion-radio-box .radio-inline+.radio-inline{margin-left:0}.instance-wrapper .instance-view .btn-suggestion-toggle{z-index:999;position:absolute;bottom:20px;right:20px;border-radius:48px;font-size:24px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:48px;height:48px}.instance-wrapper .instance-view .btn-suggestion-toggle i.ion{float:left;height:36px;line-height:36px}.instance-wrapper .instance-view .btn-suggestion-toggle span{font-size:16px;float:left;margin-left:2px;height:36px;line-height:36px}.instance-wrapper .instance-view .txt-suggestion-toggle{width:57px;height:57px;border-radius:57px;font-size:16px}.instance-wrapper .instance-view .instance-suggestion{position:absolute;right:0;bottom:0;left:0;z-index:99;border-radius:0;display:none;padding:4px 4px 0;margin-bottom:0;overflow-y:auto;overflow-x:hidden;max-height:100%}.instance-wrapper .instance-view .instance-suggestion .form-group{margin-bottom:8px}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{word-wrap:break-word;width:calc(100% - 20px)}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box label{margin-right:3px;margin-bottom:0}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{width:100%}}.instance-wrapper .instance-view .instance-suggestion .input-group-addon{background-color:#f5f5f5;min-width:50px;text-align:left}.instance-wrapper .instance-view .instance-suggestion .help-block{margin:0}.instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions{border:none;padding:4px 8px;position:absolute;top:3px;right:25px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .btn-mobile{top:15px!important}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps{border:1px solid #ccc;background:#fff;padding:4px 0}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{cursor:pointer;padding:2px 0 2px 30px;font-weight:400;margin:0;line-height:20px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio:hover{background:#eee}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{line-height:25px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .mobile-safari{line-height:24px}}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .safari{line-height:24px}.instance-wrapper .instance-view .instance-suggestion .nextStepUsers{background:#fff!important;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .has-error .instance-suggestion-next-steps{border-color:#dd4b39}.instance-wrapper .instance-view.suggestion-active .instance-suggestion{display:block}.instance-wrapper .instance-view.suggestion-active .btn-suggestion-toggle{display:none}.instance-wrapper .instance-view .instance{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;top:0;bottom:0;right:0;left:0;position:absolute;background-color:#fff;padding:0 0 20px}body.dx-date-box-opened .instance-wrapper .instance-view .instance{overflow:hidden!important}.instance-wrapper .instance-view .instance .row{margin-right:0;margin-left:0}.instance-wrapper .instance-view .instance.instance-default .form-group{margin-bottom:5px}.instance-wrapper .instance-view .instance.instance-default .form-group .control-label{margin-bottom:3px;font-size:.875rem}.instance-wrapper .instance-view .instance .box-body{padding-left:15px;padding-right:15px}.instance-wrapper .instance-view .instance .instance-form .box-body,.instance-wrapper .instance-view .instance .instance-suggestion .box-body{padding-left:0;padding-right:0}.instance-wrapper .instance-view .instance .instance-suggestion{display:block;position:relative;box-shadow:none;z-index:auto;margin-bottom:-20px}.instance-wrapper .instance-view .instance .instance-suggestion .btn-remove{display:none}.instance-wrapper .instance-view .instance .instance-traces{margin-bottom:0;margin-top:10px;padding-top:10px;clear:both}.instance-wrapper .instance-view .instance .instance-traces .box-title{font-size:18px;margin:10px 0}.instance-wrapper .instance-view .instance.instance-table .instance-traces,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces{padding-bottom:10px}.instance-wrapper .instance-view .instance.instance-table .instance-traces>.pull-left,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-wrapper .select-approve-in-all-users .selectUser-box{border-right:none!important}.instance-wrapper .select-approve-in-all-users .select-all-users-btn{border-left:none!important;background-color:#fff!important;min-width:auto!important;cursor:pointer}.instance-wrapper .select-approve-in-all-users .selectNextStepUsersInAllUsers{display:none!important}:root .instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions,_:-ms-fullscreen #instance_flow_opinions{top:-2px;right:15px}.mobile-safari .instance-wrapper .instance-view .instance{padding-top:1px!important}.steedos .toggle-columns-box{margin:0 -6px}.steedos .toggle-columns-box .btn-toggle-columns i{margin-top:6px}.steedos .toggle-columns-box{display:none}@media (min-width:1441px){.steedos .toggle-columns-box{display:block}}.workflow-main .instance-list-wrapper{display:block;margin:0;border-radius:0;width:auto;left:0;right:0;border-right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-list-wrapper .instance-list{overflow:auto}.workflow-main .instance-wrapper{display:none;width:auto;left:0;right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-wrapper .instance{margin-bottom:1px}.workflow-main.instance-show .instance-list-wrapper{display:none}.workflow-main.instance-show .instance-wrapper{display:block;width:auto;left:0;right:0}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}@media (min-width:768px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:60%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:230px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:230px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:60%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:40%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:54%}}@media (min-width:1280px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:54%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:260px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:54%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:46%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:50%}}@media (max-width:767px){.steedos .workflow-main .instance-list-wrapper{margin:0;border-radius:0;background-color:transparent}.steedos .workflow-main .instance-list-wrapper .instance-list{border-top:1px solid #fff}.steedos .workflow-menu{width:250px;left:50%;margin-left:-125px;overflow-y:auto}}@media (min-width:768px){.workflow-main .instance-list-wrapper,.workflow-main .instance-wrapper{margin:.75rem .75rem 0;border-radius:.25rem}.three-columns .workflow-main .instance-wrapper{margin:.75rem .75rem 0 0}}.toast-top-right{top:52px;right:12px}@-webkit-keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}@keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}.no-columns .instance-wrapper{left:inherit!important;margin:0!important}.instance table{border-spacing:0;border-collapse:collapse}.related_instances_modal .modal-body{min-height:300px}.related_instances_modal .selectize-control.multi .selectize-input [data-value]{color:#fff;background-color:#1b9dec!important;padding-right:25px!important;padding-left:3px!important}.related_instances_modal .instance-state-group{line-height:34px}.related_instances_modal .radio-inline input{line-height:34px;height:34px;margin-top:0}.related_instances_modal .related_instances_list_search_btn{cursor:pointer}.related_instances_modal .pull-right{padding-left:15px}.related_instances_modal tbody tr{cursor:pointer}.related_instances_modal th:not(:first-child){min-width:60px}.related_instances_modal .box-tools{width:35%}.related-instances .title{padding:6px 0 0}.instance .related-instances{padding-left:0;padding-right:15px}.batch-instances-modal .modal-body{padding:0}.batch-instances-modal .modal-body .weui-cells{margin-top:0}.batch-instances-modal .modal-body .weui-cells span{font-size:13px;color:#888}.batch-instances-modal .modal-body .weui-cells:after,.batch-instances-modal .modal-body .weui-cells:before{display:none}.cancel_distribute_modal table th{padding:8px}.cancel_distribute_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_distribute_modal .th-width{width:10px}.cancel_distribute_modal .table-header{background-color:#eee}.cancel_cc_modal table th{padding:8px}.cancel_cc_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_cc_modal .th-width{width:10px}.cancel_cc_modal .table-header{background-color:#eee}.ps-container{-ms-touch-action:none;overflow:hidden!important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px}.ps-container>.ps-scrollbar-x-rail,.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0}.ps-container>.ps-scrollbar-y-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px}.ps-container>.ps-scrollbar-y-rail,.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder:after{content:"!";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.selectize-dropdown-header{position:relative;padding:3px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0;border-left:1px solid transparent;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;-webkit-font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 12px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#efefef;color:#333;border:0 solid transparent}.selectize-control.multi .selectize-input>div.active{background:#428bca;color:#fff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:grey;background:#fff;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input:after{content:" ";display:block;clear:left}.selectize-input.dropdown-active:before{content:" ";display:block;position:absolute;background:#fff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;background:#fff;margin:-1px 0 0;border:1px solid #d0d0d0;border-top:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .optgroup-header,.selectize-dropdown [data-selectable]{padding:3px 12px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5f5f5;color:#262626}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .create{color:rgba(51,51,51,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:" ";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-color:#333 transparent transparent;border-style:solid;border-width:5px 5px 0}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #333}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.42857143}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:" ";display:block;height:1px;overflow:hidden;background-color:#e5e5e5;margin:9px -12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 12px}.selectize-input{min-height:34px}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active:before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.has-error .selectize-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .selectize-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:9px;padding-right:9px}.selectize-control.multi .selectize-input>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:none;background:none;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-control>.selectize-input{-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.qhd-sync-archive,.qhd-sync-contracts{height:100%}.qhd-sync-archive .progress,.qhd-sync-contracts .progress{margin-bottom:0!important}.qhd-sync-archive .submit-date-icon,.qhd-sync-contracts .submit-date-icon{border-right:none}.qhd-sync-archive .box,.qhd-sync-contracts .box{height:100%;margin-bottom:0!important}.qhd-sync-archive .box .box-header.with-border,.qhd-sync-contracts .box .box-header.with-border{height:auto}.qhd-sync-archive .box .box-body,.qhd-sync-contracts .box .box-body{height:calc(100% - 51px);overflow-x:auto}.qhd-sync-archive .row,.qhd-sync-contracts .row{margin-right:0;margin-left:0}.qhd-sync-archive .label-error,.qhd-sync-contracts .label-error{background-color:red}.btn,.form-control{font-size:1rem}label{font-weight:.875rem}.btn-primary{background-color:#0070d2;border-color:#0070d2}@media (min-width:48em){.steedos .slds-form-element_horizontal .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__control{padding-left:18%;clear:none}.steedos .slds-form-element_horizontal .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__label{max-width:16.75%;-ms-flex-preferred-size:16.75%;flex-basis:16.75%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control{padding-left:8.73%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label{width:8.73%}}.steedos .slds-split-view__list-item-action{padding:.35rem 1rem}/*! + */.animated{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}20%{opacity:.8}30%{opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}80%{opacity:.8}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{webkit-transform:rotate(0);transform:rotate(0)}to{webkit-transform:rotate(1turn);transform:rotate(1turn)}}.rotate{animation-name:rotate;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-name:rotate}.view-page-section-row .view-page-block-item{padding:0 .75rem}.view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;width:100%!important}.view-page-section-row .uiInput .form-control:active,.view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}.view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.view-page-section-row .uiInput .form-control[disabled]:active,.view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}@media (max-width:599px){.view-page-section-row{display:block}}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item{cursor:pointer}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content{height:26px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .dx-icon{height:18px;font-size:18px;line-height:18px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.creator-table-actions,.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content span.pull-right-container{-webkit-box-flex:0.12;-webkit-flex:0.12;-ms-flex:0.12;flex:0.12;text-align:right;margin-top:-3px;display:inline-block}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-item .dx-treeview-item-content>span{padding:1px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility{line-height:32px}.gridSidebarContainer.dx-treeview .dx-treeview-node .dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{line-height:34px}.gridSidebarContainer.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:20px}@media (max-width:767px){body,html{position:fixed;overflow:hidden}}body{background-size:cover;zoom:1!important}body button{margin-right:0}.steedos label{margin-bottom:5px}.steedos .steedos-brand-band{display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;position:relative;height:100%;width:100%}.steedos .steedos-brand-band .slds-page-header .crm-header-icon{display:block;border-radius:.125rem}.steedos .steedos-brand-band .slds-page-header .crm-header-icon .uiImage{display:inherit}.steedos .steedos-brand-band .slds-page-header h1.crm-header-title{font-size:16px;position:relative}.steedos .steedos-brand-band .slds-page-header .crm-breadcrumb-item span{font-size:13px}.steedos .steedos-brand-band .slds-page-header .crm-header-menu{font-size:.8125rem;font-weight:400}.steedos .steedos-brand-band .listViewManager{height:100%;border-radius:.25rem;background-clip:padding-box}.steedos .steedos-brand-band .listViewManager .slds-page-header{border-top:none;border-left:none;border-right:none}.steedos .steedos-brand-band .listViewManager .forceListViewManagerHeader .slds-button{cursor:pointer}.steedos .steedos-brand-band .listViewManager .list-view-controls .slds-text-title--caps{font-size:12px}.steedos .steedos-brand-band .listViewManager .table-grid-content{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content{width:100%;height:100%;min-height:200px;padding-top:0;padding-bottom:0;border-bottom-right-radius:6px;border-bottom-left-radius:6px;overflow:hidden}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content>div{height:100%}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable{width:auto;margin-top:0!important;border-top:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable td:not(:first-child){padding:5px 8px 4px}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable .creator_table_cell{line-height:1.25rem}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable .slds-is-sortable__icon{display:inline-block;fill-opacity:0}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:focus .slds-is-sortable__icon,.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .dataTable th.slds-is-sortable:hover .slds-is-sortable__icon{fill-opacity:1}.steedos .steedos-brand-band .listViewManager .table-grid-content .tale-content .gridContainer .dx-datagrid .dx-scrollable-wrapper .dx-scrollable-container .dx-row.dx-freespace-row{display:none!important}.steedos .steedos-brand-band .listViewManager .table-grid-content .table-creator{margin-top:0!important}.steedos .slds-card .slds-table tr:last-child .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(2) .dropdown-menu,.steedos .slds-card .slds-table tr:nth-last-child(3) .dropdown-menu{bottom:100%;top:auto}.steedos .slds-table+.dataTables_paginate{text-align:left;margin-left:1.5rem}.steedos .list-table-container .dataTables_wrapper .dataTable{table-layout:fixed}.steedos .list-table-container .dataTables_wrapper .JCLRgrip .JColResizer{top:1px;height:70vh}.steedos .list-table-container .dataTable thead>tr>td.sorting,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc,.steedos .list-table-container .dataTable thead>tr>th.sorting,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc{padding-right:0}.steedos .list-table-container .dataTable thead>tr>td.sorting>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>td.sorting_desc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_asc>a,.steedos .list-table-container .dataTable thead>tr>th.sorting_desc>a{padding-right:30px}.steedos .list-table-container .dataTable thead .sorting:after,.steedos .list-table-container .dataTable thead .sorting_asc:after,.steedos .list-table-container .dataTable thead .sorting_asc_disabled:after,.steedos .list-table-container .dataTable thead .sorting_desc:after,.steedos .list-table-container .dataTable thead .sorting_desc_disabled:after{display:none;bottom:4px}.steedos .list-table-container .dataTable thead>tr>th{position:relative}.steedos .list-table-container .dataTable thead>tr>th .slds-th__action{margin-bottom:1px}.td-cell-wrap table td{white-space:normal}.steedos.fixed #sidebar-menu{background:#fff;position:fixed;top:90px;width:250px;height:calc(100% - 90px);padding:0}.steedos.fixed .slds-form-element .control-label{font-weight:400;color:#706e6b}.steedos.fixed .dx-datagrid{background:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-rowsview{border-top:0}.steedos.fixed .dx-datagrid .dx-freespace-row td,.steedos.fixed .dx-datagrid .dx-freespace-row td:hover,.steedos.fixed .dx-datagrid .dx-row{background-color:transparent}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget{padding:3px;font-size:12px;border-top:1px solid #ddd}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-page-sizes .dx-page-size,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-page{padding:3px 8px}.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-next-button,.steedos.fixed .dx-datagrid .dx-datagrid-pager.dx-widget .dx-pages .dx-prev-button{padding:3px 8px;line-height:25px}.steedos.fixed .slds-tabs--default__nav,.steedos.fixed .slds-tabs_default__nav{border-bottom:1px solid #e7e7eb}.steedos.fixed .slds-modal__header{background-color:#f4f4f4;border-bottom:1px solid #d5d5da;color:#878687}.steedos.fixed .slds-modal__footer{border-top:1px solid #d5d5d5}.steedos.fixed .forceEntityIcon.extraSmall{width:1.5rem;height:1.5rem}.steedos.fixed .forceEntityIcon{display:block;border-radius:.125rem}.steedos.fixed .creator_view #creator-tabular .slds-card+.slds-card{margin-top:.75rem}.steedos.fixed .modal-dialog{margin:0 auto}.steedos.fixed .modal,.steedos.fixed .modal-body,.steedos.fixed .modal-footer,.steedos.fixed .modal-header{zoom:1!important}.flexipageBaseRecordHomeTemplateDesktop{height:100%}.flexipageBaseRecordHomeTemplateDesktop .row-main{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin:.75rem 0 0}.flexipageBaseRecordHomeTemplateDesktop .region-subheader{margin-top:.75rem}.flexipageBaseRecordHomeTemplateDesktop .region-main{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;max-width:70%;min-width:564px}.flexipageBaseRecordHomeTemplateDesktop .region-full-width{max-width:100%}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:33.33333%;min-width:404px}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{padding-left:.75rem;padding-right:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left{padding-left:0;padding-right:.75rem}@media only screen and (max-width:47.9375em){.flexipageBaseRecordHomeTemplateDesktop{min-width:auto}.flexipageBaseRecordHomeTemplateDesktop .row-main{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flexipageBaseRecordHomeTemplateDesktop .region-main{min-width:auto;max-width:none}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-left,.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{min-width:auto;width:100%;padding:0}.flexipageBaseRecordHomeTemplateDesktop .region-sidebar-right{margin-top:.75rem}}.dx-scheduler-header{position:absolute;top:3px;left:calc(50% - 140px);right:100px;background:transparent;border:none;width:auto}.dx-scheduler-work-space{padding-top:0;margin-top:0}.dx-scheduler-all-day-title{margin-top:-64px}.dx-scheduler-header-panel-cell .dx-scheduler-header-panel-cell-date:last-child{font-size:16px}.dx-scheduler-navigator-caption{max-width:unset;width:auto}.slds-form_horizontal .slds-form-element__control{line-height:24px}.dx-treeview-item{padding:8px;min-height:32px;line-height:inherit}.dx-treeview-toggle-item-visibility{height:34px}.dx-treelist-headers .dx-treelist-table .dx-row>td,.dx-treelist .dx-row>td{padding-top:6px;padding-bottom:6px}.dx-treelist .dx-row>td{line-height:unset}.dx-treeview-with-search .dx-placeholder{font-size:13px}.slds-card{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border:.1px solid transparent}.dx-treeview [role=treeitem][aria-selected=true]>.dx-treeview-item{background:rgba(21,137,238,.1);box-shadow:inset 4px 0 0 #1589ee}.dx-treeview-node{padding-left:0}.dx-treeview-search{margin:8px 6px}.dx-treeview-item.dx-state-hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.87)}.dx-treeview-item-without-checkbox.dx-state-focused>.dx-treeview-item{background-color:rgba(0,0,0,.05)}.dx-treeview-toggle-item-visibility,.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{font-size:18px}.dx-treeview .dx-treeview-item-with-checkbox>.dx-checkbox{margin-top:-6px}.dx-treeview [aria-level="1"]>.dx-treeview-item{padding-left:24px}.dx-treeview [aria-level="1"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:68px}.dx-treeview [aria-level="2"]>.dx-treeview-item{padding-left:48px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:30px}.dx-treeview [aria-level="2"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:98px}.dx-treeview [aria-level="3"]>.dx-treeview-item{padding-left:72px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:60px}.dx-treeview [aria-level="3"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:128px}.dx-treeview [aria-level="4"]>.dx-treeview-item{padding-left:96px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:90px}.dx-treeview [aria-level="4"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:158px}.dx-treeview [aria-level="5"]>.dx-treeview-item{padding-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:120px}.dx-treeview [aria-level="5"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:188px}.dx-treeview [aria-level="6"]>.dx-treeview-item{padding-left:144px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:150px}.dx-treeview [aria-level="6"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:218px}.dx-treeview [aria-level="7"]>.dx-treeview-item{padding-left:168px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:180px}.dx-treeview [aria-level="7"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:248px}.dx-treeview [aria-level="8"]>.dx-treeview-item{padding-left:192px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:210px}.dx-treeview [aria-level="8"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:278px}.dx-treeview [aria-level="9"]>.dx-treeview-item{padding-left:216px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:240px}.dx-treeview [aria-level="9"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:308px}.dx-treeview [aria-level="10"]>.dx-treeview-item{padding-left:240px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-checkbox{margin-left:270px}.dx-treeview [aria-level="10"].dx-treeview-item-with-checkbox>.dx-treeview-item{padding-left:338px}.dx-treeview [aria-level="2"]>.dx-treeview-toggle-item-visibility{margin-left:24px}.dx-treeview [aria-level="3"]>.dx-treeview-toggle-item-visibility{margin-left:48px}.dx-treeview [aria-level="4"]>.dx-treeview-toggle-item-visibility{margin-left:72px}.dx-treeview [aria-level="5"]>.dx-treeview-toggle-item-visibility{margin-left:96px}.dx-treeview [aria-level="6"]>.dx-treeview-toggle-item-visibility{margin-left:120px}.dx-treeview [aria-level="7"]>.dx-treeview-toggle-item-visibility{margin-left:144px}.dx-treeview [aria-level="8"]>.dx-treeview-toggle-item-visibility{margin-left:168px}.dx-treeview [aria-level="9"]>.dx-treeview-toggle-item-visibility{margin-left:192px}.dx-treeview [aria-level="10"]>.dx-treeview-toggle-item-visibility{margin-left:216px}.dx-scrollbar-vertical.dx-scrollbar-hoverable{width:12px}.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{width:16px}.dx-scrollbar-vertical .dx-scrollable-scroll{width:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable{height:12px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover{height:16px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{height:18px}.dx-scrollbar-horizontal .dx-scrollable-scroll{height:14px}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a{color:#777}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item>a .slds-truncate .slds-button__icon{visibility:hidden;margin-right:.2rem}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a{color:#333}.dropdown-menu.dropdown-menu-redio .slds-dropdown__item.slds-is-selected>a .slds-truncate .slds-button__icon{visibility:visible}.steedos .dx-button-text{text-transform:unset}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content{border:1px solid #ddd;background:#fff;box-shadow:0 6px 12px rgba(0,0,0,.175);border-radius:6px;min-width:10rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content{padding:1rem}.steedos .dx-actionsheet-popover-wrapper .dx-overlay-content .dx-popup-content .dx-actionsheet-item .dx-button{border-radius:4px;background-color:#fff;border:1px solid #ddd;color:#333;box-shadow:none}.steedos .navigation-bar{width:100%;padding:9px;height:51px;border-bottom:1px solid #dddbda;background-color:#f3f2f2}.object-form label{font-weight:400}.steedos-amis-button{line-height:inherit!important}.steedos-amis-button button,.steedos-amis-button span{background-color:transparent!important;border:none!important}.steedos-amis-button span:active,.steedos-amis-button span:focus,.steedos-amis-button span:focus-visible,.steedos-amis-button span:hover{background-color:transparent!important;border:none!important;outline:none!important}.steedos-amis-button .slds-dropdown__item span{position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding:.5rem .75rem;color:#181818;white-space:nowrap;cursor:pointer}.creator-form-builder ._id-wrap{display:none}.creator-form-builder .className-wrap{display:none!important}.creator-form-builder .fields-wrap{display:none}.creator-form-builder .code-wrap label:after,.creator-form-builder [type=odata] .code-wrap label:after,.creator-form-builder [type=odata] .formula-wrap label:after,.creator-form-builder [type=odata] .search_field-wrap label:after,.creator-form-builder [type=odata] .url-wrap label:after{content:" *";color:red}.creator-form-builder .form-wrap.form-builder .frmb .prev-holder input[type=number]{width:100%}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options .option-value{display:none}.creator-form-builder .form-wrap.form-builder .frmb .sortable-options input[type=text]{width:72%!important}.creator-form-builder #fbEditorForm .form-group .control-label{display:none!important}.form-wrap.form-builder .frmb .prev-holder .form-group>label:not([class=fb-checkbox-label]){display:none}.form-elements .form-group label{display:block!important}.section-field .form-group,.table-field .form-group{margin-left:0!important;margin-bottom:15px!important}.flow-modal .modal-lg{width:992px}.copy-flow-modal [data-required=true] label:after,.new-flow-modal [data-required=true] label:after{content:" *";color:red}#distribute_edit_flow_modal .selectize-input .item{color:#fff;background-color:#1b9dec!important;padding-right:24px!important;padding-left:3px!important;background-image:-webkit-linear-gradient(top,#1da7ee,#178ee9)!important;background-image:linear-gradient(180deg,#1da7ee,#178ee9)!important;background-repeat:repeat-x!important;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 1px hsla(0,0%,100%,.03)!important}#distribute_edit_flow_modal .selectize-input .remove{padding-top:4px!important}.creator-modal{zoom:1!important}#collectionModal .modal-body #cmForm>div:last-child{padding:15px;text-align:right;border-top:1px solid #e5e5e5}#collectionModal .modal-footer form{display:inline-block}#cmForm.form-horizontal .control-label{text-align:left}#afModal .slds-modal__container{width:auto;max-width:100%}#afModal .slds-modal__container .slds-modal__content .remove-prompt{font-size:16px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox{margin-left:-10px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .slds-checkbox--faux{margin-top:-3px}#afModal .slds-modal__container .slds-modal__content .form-group.multiple-box .slds-checkbox .label-multiple-update{color:#706e6b;font-size:14px;font-weight:400}#afModal .slds-modal__container .slds-modal__footer .slds-button_destructive.btn-remove{float:left}#afModal [data-required=true] label:after{content:" *";color:red}#afModal .group-section .slds-section__title{font-size:.9rem;font-weight:inherit}#afModal .group-section .slds-section__title .slds-button__icon{width:.8rem;height:.8rem}#afModal .view-page-section-row .view-page-block-item{padding:0 .75rem}#afModal .view-page-section-row .uiInput .form-control{background-color:#fff;color:#16325c;border:1px solid #dddbda;border-radius:.25rem;width:100%;-webkit-transition:border .1s linear,background-color .1s linear;transition:border .1s linear,background-color .1s linear;display:inline-block;padding:0 1rem 0 .75rem;line-height:34px;width:100%!important}#afModal .view-page-section-row .uiInput .form-control:active,#afModal .view-page-section-row .uiInput .form-control:focus{outline:0;border-color:#1589ee;background-color:#fff;box-shadow:0 0 3px #0070d2}#afModal .view-page-section-row .uiInput .form-control[disabled]{background-color:#ecebea;border-color:#a8b7c7;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#afModal .view-page-section-row .uiInput .form-control[disabled]:active,#afModal .view-page-section-row .uiInput .form-control[disabled]:focus{box-shadow:none}#afModal .view-page-section-row .uiInput textarea.form-control{overflow:hidden}@media (max-width:599px){#afModal .view-page-section-row{display:block}}.slip-reordering{box-shadow:0 2px 10px rgba(0,0,0,.45)}.slip-swiping-container{overflow-x:hidden}.slippylist .slippylist-item{user-select:none;-moz-user-select:none;-webkit-user-select:none}.slippylist .slippylist-item.slip-allow-select{user-select:text;-moz-user-select:text;-webkit-user-select:text}.slippylist .slippylist-item.slip-allow-select span{cursor:text}.slippylist{clear:left}.slippylist input{vertical-align:middle}.skewed{transform:rotate(2deg) scale(.99);-webkit-transform:rotate(2deg) scale(.99)}.slip-no-swipe.slip-no-reorder{opacity:.5}@media print{body,html{position:static!important}.instance-print *{color:inherit!important}.instance-print .table-page-body .form-group,.instance-print .table-page-body .instance-sign,.instance-print .table-page-footer .form-group,.instance-print .table-page-footer .instance-sign{color:#000!important}.instance-print .instance-table .form-table .td-title.is-required:after{color:red!important}.box-tools button{display:none}.instance-traces .box-body{display:block!important}.no-print{display:none!important}a[href]:after{content:""!important}a,a:visited{text-decoration:none!important}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #000!important}.table-bordered th{border-bottom:1px solid #000!important}.steedos-table .checkbox,.steedos-table .radio{display:table-cell!important;position:static!important}.steedos-table table{border-bottom:none!important}.steedos-table .table{border-left:0!important;border-right:0!important;border-collapse:separate!important}.ins_attach_version{display:none!important}table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}}.instance-print{font-size:14px}.instance-print table{margin:auto}.instance-print .hidden-xs,.instance-print .instance-view .instance-name{display:inline!important}.instance-print .wrapper{overflow:visible;background:silver!important;position:inherit!important}.instance-print .content-wrapper{top:0!important}.instance-print .btn{border-radius:0}.instance-print .box{border-radius:0;border-top:0;margin-bottom:0;padding-bottom:10px;box-shadow:none}.instance-print .box .box-body{padding:10px 0 0}.instance-print .content-wrapper{margin-left:auto!important;width:700px;margin:0 auto;-webkit-transition:all .3s;transition:all .3s}.instance-print .instance-table .instance-template,.instance-print .traces_table_modal .instance-template{-webkit-transition:all .3s;transition:all .3s;max-width:none}.instance-print .instance-table .instance-traces,.instance-print .traces_table_modal .instance-traces{-webkit-transition:all .3s;transition:all .3s;max-width:none;padding-bottom:10px}.instance-print .instance-table .instance-traces>.pull-left,.instance-print .traces_table_modal .instance-traces>.pull-left{padding:10px 0 4px;font-size:15px}.instance-print .instance-table .steedos-table table thead .title,.instance-print .traces_table_modal .steedos-table table thead .title{min-width:auto;white-space:normal}.instance-print .navigation-bar .print-tool{padding:6px 12px;float:left}.instance-print .navigation-bar .print-tool .cbx-label{cursor:pointer;margin-right:8px}.instance-print .navigation-bar .print-tool .cbx-label .cbx-print{margin-right:4px}.instance-print .navigation-bar .print-tool .cbx-label span{position:relative;top:-1px}.instance-print .instance_attachments{margin-top:0!important}.instance-print .instance-traces{padding-left:15px;padding-right:15px}.instance-print .form-control{min-height:22px!important;text-align:left}.instance-print .td-padding{padding:5px 10px!important}.section .control-label{color:#333;font-weight:700;font-size:15px}.instance.instance-default .section.callout.callout-default{padding:2px 0;border:none;background:#fff;border-radius:0;margin-top:5px;margin-bottom:-5px}.instance.instance-default .section .control-label{color:#795548;font-weight:700;font-size:16px;width:100%;border-bottom:1px dashed #d2d6de;padding-bottom:3px}.instance.instance-default .section p{color:#777}.steedos-table .item-readonly{cursor:pointer}.steedos-table table .removed{min-width:31px;width:31px;text-align:center}.steedos-table table tbody .edit{cursor:pointer}.steedos-table table .number{text-align:right}.steedos-table table thead .title{min-width:50px;white-space:nowrap}.steedos-table .checkbox,.steedos-table .radio{margin-top:0;margin-bottom:0;display:table-cell;border-radius:0}.steedos-table .steedosTable-add-item{padding:3px 8px}.steedos-table .panel-body .panel-heading{background-color:#f5f5f5;border-color:#ddd}.steedos-table .panel-body .panel-heading .description{display:inherit}.steedos-table .panel-body .panel-heading .control-label{font-weight:700;font-size:15px}.instance-table .form-table .form-group .steedos-table .autoform-table tr td{border-top:1px solid #000!important;border-bottom:0!important}.instance-table .form-table .form-group .steedos-table .autoform-table td:last-child{border-right:none!important}.steedos-table .add-item-tr{background:rgba(255,255,0,.03);cursor:pointer}.steedos-table .add-item-tr td{border-bottom:0!important}.steedos-table .add-item-tr .ion{height:20px;line-height:20px;margin-right:6px}.steedos-table .panel-body{padding:0}.steedos-table .panel-body .panel-content{padding:0;overflow-x:auto}.steedos-table .panel-body .panel-content .table{margin-bottom:0}.instance-default .steedos-table{border-radius:0;border:none}.instance-default .steedos-table .panel-body .panel-heading{border:none;padding:2px 0;margin-bottom:-5px;margin-top:5px;background:none}.instance-default .steedos-table .panel-body .panel-heading .control-label{width:100%;color:#795548;font-size:16px}.instance-default .steedos-table .panel-body .panel-heading .description{margin-top:-10px;margin-bottom:10px;color:#777;padding-top:5px}.instance-default .steedos-table .panel-body .panel-content{padding-bottom:1px;border:1px solid #d2d6de}.instance-default .steedos-table .panel-body .panel-content .table-bordered{border:none}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead{background:#f9f9f9}.instance-default .steedos-table .panel-body .panel-content .table-bordered thead td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td{border:1px solid #eee;border-top:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:first-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:first-child{border-left:0}.instance-default .steedos-table .panel-body .panel-content .table-bordered tbody>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered tfoot>tr>td:last-child,.instance-default .steedos-table .panel-body .panel-content .table-bordered thead>tr>td:last-child{border-right:0}.steedos-table-modal .steedos-table-modal-body{overflow-y:auto;padding:0}.steedos-table-modal .steedos-table-modal-body .panel{border:none;box-shadow:none;margin-bottom:0}.steedos-table-modal .steedos-table-modal-body .panel .panel-body{padding:5px 15px;border:none;position:relative}.steedos-table-modal .steedos-table-modal-body .panel .panel-body .dx-widget.form-control{padding:6px 12px}.steedos-table-modal .steedos-table-modal-body .panel .panel-heading{display:none}.steedosTable-item-add{padding:2px 7px}#steedos-table-modal .steedos-selectize .selectize-dropdown{position:fixed;top:auto!important;left:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input [data-value]{padding:2px!important;min-height:auto!important}#steedos-table-modal .steedos-selectize .selectize-control.multi .selectize-input .slds-pill .slds-pill__action{line-height:24px}.steedos-selectize .selectize-input{border-radius:0!important;background-image:none!important;border-color:#d2d6de!important;box-shadow:none!important;height:auto}.steedos-selectize .selectize-dropdown{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;height:200px!important}.steedos-selectize .selectize-dropdown-content{border-radius:0!important;background-color:#fff!important;overflow-y:hidden!important;max-height:none!important;height:auto!important}.steedos-selectize .selectize-control.multi .selectize-input.has-items{padding:0!important}.steedos-selectize .selectize-control .selectize-input.disabled{opacity:1!important}.steedos-selectize .selectize-control.multi .selectize-input.disabled [data-value]{color:inherit!important}.steedos-selectize .disabled .slds-pill__remove{display:none}.slds-pill{display:inline-flex;align-items:center;justify-content:space-between;line-height:1.5;max-width:100%;padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff;position:relative;min-height:1.625rem}@media (pointer:coarse) and (hover:none){.slds-pill{line-height:1.875rem;padding:0 .75rem}}.slds-pill+.slds-pill{margin-left:.125rem}@media (pointer:coarse) and (hover:none){.slds-pill+.slds-pill{margin-left:.25rem}}.slds-pill:hover{background-color:#f4f6f9}.slds-pill:focus{outline:0;border-radius:.25rem;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.slds-pill a{text-decoration:none}.slds-pill--bare,.slds-pill_bare{background-color:transparent;border:0}.slds-pill--bare:hover,.slds-pill_bare:hover{background-color:transparent}.slds-pill-container,.slds-pill__container,.slds-pill_container{display:flex;min-height:calc(1.875rem + 2px);padding:.125rem;border:1px solid #dddbda;border-radius:.25rem;background-color:#fff}@media (pointer:coarse) and (hover:none){.slds-pill-container,.slds-pill__container,.slds-pill_container{padding:.25rem}}.slds-pill-container .slds-listbox_inline,.slds-pill__container .slds-listbox_inline,.slds-pill_container .slds-listbox_inline{margin-left:0;margin-right:0}.slds-pill__container--bare,.slds-pill__container_bare,.slds-pill_container--bare,.slds-pill_container_bare{display:flex;padding:.125rem;border:0;border-radius:0;background-color:transparent}.slds-pill__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (pointer:coarse) and (hover:none){.slds-pill__label{font-size:.875rem}}.slds-pill__label:focus{outline:0;border-radius:.25rem;box-shadow:0 0 3px #0070d2}.slds-pill__icon,.slds-pill__icon_container{width:1.25rem;height:1.25rem;margin-right:.25rem}.slds-pill__icon .slds-avatar,.slds-pill__icon .slds-icon,.slds-pill__icon_container .slds-avatar,.slds-pill__icon_container .slds-icon{width:1.25rem;height:1.25rem;display:block;font-size:.625rem}.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:calc(1.5rem + 2px)}@media (pointer:coarse) and (hover:none){.slds-pill__icon_container~.slds-pill__action,.slds-pill__icon~.slds-pill__action{padding-left:2.25rem}}.slds-pill__remove{width:1rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;margin-left:.25rem;border-radius:.125rem}.slds-pill__remove svg{width:.875rem;height:.875rem}.slds-pill--link,.slds-pill_link{border:0;padding:0}.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{display:inline-block;position:absolute;top:50%;left:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__icon_container,.slds-pill_link .slds-pill__icon_container{left:.75rem}}.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{position:absolute;top:50%;right:.125rem;transform:translateY(-50%)}@media (pointer:coarse) and (hover:none){.slds-pill--link .slds-pill__remove,.slds-pill_link .slds-pill__remove{right:.75rem}}.slds-pill__action{padding:.125rem calc(1.25rem + 2px) .125rem .125rem;border:1px solid #dddbda;border-radius:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-grow:1;color:inherit!important}@media (pointer:coarse) and (hover:none){.slds-pill__action{padding:0 calc(1.75rem + 2px) 0 .75rem}}.slds-pill__action:focus{outline:0;border-color:#1589ee;box-shadow:0 0 3px #0070d2}.selectize-control.multi .selectize-input [data-value]{background:none!important;box-shadow:none!important;border-radius:.25rem!important;display:inline-flex!important;align-items:center!important;justify-content:space-between!important;line-height:1.5!important;max-width:100%!important;padding:0!important;border:none!important;background-color:#fff!important;position:relative!important;min-height:1.625rem!important;text-shadow:none!important}.instance_new{cursor:pointer}.sidebar .treeview-menu .ion{float:left}.sidebar .treeview-menu .inbox-flow .flow-name{width:135px;vertical-align:bottom}.sidebar .treeview-menu .category-name{width:125px;vertical-align:bottom}.sidebar-collapse .sidebar .treeview-menu{max-height:350px;overflow-y:auto}.sidebar-collapse .sidebar .treeview-menu .inbxo-flow .flow-name{width:115px}.workflow .main-sidebar .sidebar-menu ul .active a{color:#0078d7!important}.workflow .main-sidebar .box-space-name{width:140px!important;vertical-align:bottom}.instanceContent{background:#fff}.callout.callout-default{border-color:#d2d6de;color:grey;background-color:#f1f1f1}.callout.callout-default h4{color:#333}.callout-default a{color:grey}.callout-default a:hover{color:#333}.panel-controls{float:right;display:block;cursor:pointer}.autoform-table{text-align:left;width:100%;max-width:100%}.autoform-table td.field.number{text-align:right}.font-size-h3{font-size:24px;margin-top:20px!important;margin-bottom:10px!important}.bg-info{padding:15px}.instance-traces>.heading{font-size:17px}.traces{font-size:14px}.traces td{border:none}.trace-item{height:30px;background-color:#eee;font-weight:700;font-size:14px;color:#404040}.trace-item .trace-approve-talbe .approve-item a.btn-link{display:inline-block}.approve-item,.approve-item-distribute{height:30px;font-size:13px;cursor:pointer}.approve-item-distribute .name,.approve-item .name{font-weight:700}.approve-item-distribute{cursor:auto!important}.approve-item .red{color:red}.approve-item .blue{color:#00f}.approve-description{border:none;height:auto}.approve-description .description{padding-top:0;border:none}.approve-description .description p{margin:0}.approve-description .red{color:red}.approve-description{cursor:pointer}.approve-item>.name{font-weight:700}.approve-item>.approved,.instance-trace-detail-modal .approved{color:green}.approve-item>.rejected,.instance-trace-detail-modal .rejected{color:red}.approve-item>.autoSubmitted,.instance-trace-detail-modal .autoSubmitted{color:orange}.approve-item>.description{border-top:0;font-size:14px;white-space:pre-line;color:#000}textarea.suggestion-control{height:auto;padding-right:30px;font-size:14px}.button-group{margin-bottom:15px}.button-group>.glyphicon{padding-left:15px;font-size:18px}.suggestion-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #d2d6de;border-radius:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.suggestion-control:focus{border-color:#3c8dbc;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.suggestion-control::-moz-placeholder{color:#999;opacity:1}.suggestion-control:-ms-input-placeholder{color:#999}.suggestion-control::-webkit-input-placeholder{color:#999}.suggestion-control::-ms-expand{background-color:transparent;border:0}.form-group.has-error .suggestion-control{border-color:#dd4b39;box-shadow:none}.suggestion-control.select2-container{height:auto!important;padding:0}.suggestion-control .select2-choice{border:0;border-radius:2px}.suggestion-control:not(select){-webkit-appearance:none}.suggestion-control.select2-container.select2-dropdown-open{border-color:#5897fb;border-radius:3px 3px 0 0}textarea{resize:none}@media (min-width:768px){.container{width:760px}}[data-required] label:after{content:" *";color:red}.instance-attachments>.heading{font-size:17px}.ins-upload{display:inline-block;position:relative}.ins-upload .ins-file-icon{padding-left:15px;font-size:18px}.ins-upload .ins-file-input{display:inline-block;top:0;left:0;overflow:hidden}.ins-upload .ins-file-input,.ins-upload .ins-file-version-input{position:absolute;width:100%;height:100%;opacity:0;z-index:100;cursor:pointer}.ins-upload .ins-file-version-input{top:1px}.ins-applicant-selector{display:inline-block;width:160px}.ins-modal{-webkit-border-radius:4px}.ins-attach-view .delete,.ins-attach-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-view a{color:#3c8dbc}.ins-attach-view a:hover{text-decoration:underline}.ins-attach-view:hover .delete,.ins-attach-view:hover .mouse-hover{display:inline-block}.ins-attach-version-view{padding:8px}.ins-attach-version-view .delete,.ins-attach-version-view .mouse-hover{cursor:pointer;display:none;margin-left:10px}.ins-attach-version-view a:hover{text-decoration:underline}.ins-attach-version-view:hover .delete,.ins-attach-version-view:hover .mouse-hover{display:inline-block}.form-group .select2{width:100%!important}.selectOrg[readonly],.selectUser[readonly]{background-color:#fff!important}.draft .selectOrg[readonly],.draft .selectUser[readonly],.inbox .selectOrg[readonly],.inbox .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.draft .selectOrg[disabled],.draft .selectUser[disabled],.inbox .selectOrg[disabled],.inbox .selectUser[disabled],.selectOrg[disabled],.selectUser[disabled]{background-color:#fff!important}.cfTextarea[disabled],.cfTextarea[readonly]{height:100%;min-height:60px;word-wrap:break-word;word-break:keep-all}.steedos-table-modal-body .form-control{background-color:rgba(255,255,0,.03)!important}.steedos-table-modal-body .form-control[disabled],.steedos-table-modal-body .form-control[readonly],.steedos-table-modal-body fieldset[disabled] .form-control{background-color:#fff;opacity:1;color:#000}.instance-default .instance-form .form-control[disabled],.instance-default .instance-form .form-control[readonly],.instance-default .instance-form fieldset[disabled] .form-control{background-color:#fff!important;opacity:1;color:#000}.instance-default .instance-form .selectOrg[readonly],.instance-default .instance-form .selectUser[readonly]{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .selectOrg[disabled],.instance-default .instance-form .selectUser[disabled]{background-color:#fff!important}.instance-default .instance-form.draft .form-control,.instance-default .instance-form.inbox .form-control{background-color:rgba(255,255,0,.03)}.instance-default .instance-form .field-editable{background-color:rgba(255,255,0,.1)!important}.instance-default .instance-form .readonly-table{border:1px solid #d2d6de}.instance-default .instance-form .readonly-table table{border:none}.instance-default .instance-form .readonly-table table tr td:first-of-type{border-left:none}.instance-default .instance-form .readonly-table table tr td:last-of-type{border-right:none}.instance p{margin:0}.instance .instance-header{margin-left:15px;margin-bottom:0!important}.instance .instance-header>div{padding-top:6px;padding-bottom:6px;text-align:left;font-weight:400}.instance .instance-form .box-body>.col-md-12{padding-right:0}.instance .instance-form .box-body form>.col-md-6:nth-child(2n){clear:both}@media (max-width:768px){.instance .instance-form .box-body .form-group.opinion-field{margin-bottom:10px}}.instance .instance-form .box-header{padding:0;margin-bottom:10px;margin-right:15px}.instance .instance-form .applicant-wrapper .input-group-addon{padding-left:0;border:none}.instance .instance-form .applicant-wrapper input{cursor:pointer}.instance .instance-form .ins_applicant{padding:6px 12px;width:100%;display:inline-block}.instance .instance-form #instanceform .col-md-6,.instance .instance-form #instanceform .col-md-12{padding-left:0}.instance .instance-form #instanceform .td-field p{white-space:pre-line}.instance-sign{border:1px solid #d2d6de;padding:5px 10px;color:#000}.instance-sign .instance-sign-content{min-height:20px;margin-bottom:10px}.instance-sign .instance-sign-content .not-finished{color:#888}.instance-sign .instance-sign-content .my-approve{border-left:3px solid #3c8dbc;padding-left:4px}.instance-sign .instance-sign-text{clear:both}.instance-traces{padding-right:15px}.instance-table .instance-traces{max-width:700px;padding-right:0}.instance-table .instance-template,.traces_table_modal .instance-template{max-width:700px}.instance-table .instance .form-group .form-control,.traces_table_modal .instance .form-group .form-control{min-height:34px}.instance-table .bootstrap-datetimepicker-widget table td,.traces_table_modal .bootstrap-datetimepicker-widget table td{border:none!important}.instance-table .instance-form .box-body>.col-md-12,.traces_table_modal .instance-form .box-body>.col-md-12{padding-right:15px}.instance-table .instance-form .box-header,.traces_table_modal .instance-form .box-header{padding:0;margin-bottom:0}.instance-table .instance-form .table-page-footer td,.traces_table_modal .instance-form .table-page-footer td{padding-left:0;padding-right:0}.instance-table .instance-sign,.traces_table_modal .instance-sign{border:0!important;padding:0}.instance-table .opinion-field,.traces_table_modal .opinion-field{padding:5px 10px;background:inherit!important}.instance-table .cfTextarea[disabled],.instance-table .cfTextarea[readonly],.traces_table_modal .cfTextarea[disabled],.traces_table_modal .cfTextarea[readonly]{min-height:auto}.instance-table .cfTextarea[disabled] p,.instance-table .cfTextarea[readonly] p,.traces_table_modal .cfTextarea[disabled] p,.traces_table_modal .cfTextarea[readonly] p{margin:0}.instance-table .attachments-list .attachments,.traces_table_modal .attachments-list .attachments{margin-bottom:0}.instance-table .box-header,.traces_table_modal .box-header{text-align:center;font-weight:bolder}.instance-table .applicant-wrapper,.traces_table_modal .applicant-wrapper{margin:0;text-align:left}.instance-table .applicant-wrapper .form-control.ins_applicant,.traces_table_modal .applicant-wrapper .form-control.ins_applicant{padding:0!important;height:100%;display:inline;background:transparent!important;border:none;min-height:20px!important}.instance-table .help-block,.traces_table_modal .help-block{display:none}.instance-table .form-table,.traces_table_modal .form-table{width:100%;border-collapse:collapse;border:2px solid #000;table-layout:fixed}.instance-table .form-table tbody,.instance-table .form-table tr,.traces_table_modal .form-table tbody,.traces_table_modal .form-table tr{border-color:inherit}.instance-table .form-table tr>td,.traces_table_modal .form-table tr>td{position:relative}.instance-table .form-table tr>td .instance-sign-text,.traces_table_modal .form-table tr>td .instance-sign-text{position:absolute;right:5px;bottom:2px}.instance-table .form-table .td-title,.traces_table_modal .form-table .td-title{width:16%;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field,.traces_table_modal .form-table .td-field{text-align:left;border:1px solid #000;border-color:inherit!important;padding:6px;vertical-align:middle}.instance-table .form-table .td-field .form-group,.traces_table_modal .form-table .td-field .form-group{color:#000}.instance-table .form-table .td-field.readonly,.traces_table_modal .form-table .td-field.readonly{background:#fff}.instance-table .form-table .td-field .form-control,.traces_table_modal .form-table .td-field .form-control{padding:0}.instance-table .form-table .td-childfield,.traces_table_modal .form-table .td-childfield{border-top:1px solid #000;border-top-color:inherit!important;border-right:1px solid #000;border-right-color:inherit!important;border-bottom:1px solid #000;border-bottom-color:inherit!important;padding:0!important}.instance-table .form-table .tr-child-table+.td-childfield,.traces_table_modal .form-table .tr-child-table+.td-childfield{border-top:1px solid #000}.instance-table .form-table input,.instance-table .form-table select,.instance-table .form-table textarea,.traces_table_modal .form-table input,.traces_table_modal .form-table select,.traces_table_modal .form-table textarea{border-width:0 0 1px;border-bottom-color:#fff}.instance-table .form-table input:disabled,.instance-table .form-table select:disabled,.instance-table .form-table textarea:disabled,.traces_table_modal .form-table input:disabled,.traces_table_modal .form-table select:disabled,.traces_table_modal .form-table textarea:disabled{border-bottom:none}.instance-table .form-table select.form-control,.traces_table_modal .form-table select.form-control{padding:0}.instance-table .form-table .form-group,.traces_table_modal .form-table .form-group{margin-bottom:0}.instance-table .form-table .form-group .callout,.traces_table_modal .form-table .form-group .callout{margin:0;padding:4px 6px;border-radius:0;border-left:none}.instance-table .form-table .form-group .callout h4,.traces_table_modal .form-table .form-group .callout h4{margin:0;padding:0;height:26px;line-height:26px;font-size:14px;font-weight:700}.instance-table .form-table .form-group .form-control,.traces_table_modal .form-table .form-group .form-control{border:none;min-height:22px}.instance-table .form-table .form-group.has-error .form-control,.traces_table_modal .form-table .form-group.has-error .form-control{border-bottom:1px solid #dd4b39}.instance-table .form-table .form-group .steedos-table,.traces_table_modal .form-table .form-group .steedos-table{border:0;margin-bottom:0}.instance-table .form-table .form-group .steedos-table table,.instance-table .form-table .form-group .steedos-table td,.instance-table .form-table .form-group .steedos-table th,.traces_table_modal .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table td,.traces_table_modal .form-table .form-group .steedos-table th{border:1px solid #000}.instance-table .form-table .form-group .steedos-table table,.traces_table_modal .form-table .form-group .steedos-table table{border-left:none;border-right:none;border-bottom:none!important}.instance-table .form-table .form-group .steedos-table td:first-child,.instance-table .form-table .form-group .steedos-table th:first-child,.traces_table_modal .form-table .form-group .steedos-table td:first-child,.traces_table_modal .form-table .form-group .steedos-table th:first-child{border-left:0!important}.instance-table .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.instance-table .form-table .form-group .steedos-table th:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table td:nth-last-child(-1n+2),.traces_table_modal .form-table .form-group .steedos-table th:nth-last-child(-1n+2){border-right:0!important}.instance-table .form-table .form-group .steedos-table .panel-heading,.traces_table_modal .form-table .form-group .steedos-table .panel-heading{padding:4px 6px;border:none}.instance-table .form-table .form-group .steedos-table .panel-heading .pull-right,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .pull-right{height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .panel-heading .control-label,.traces_table_modal .form-table .form-group .steedos-table .panel-heading .control-label{margin-bottom:0;height:26px;line-height:26px}.instance-table .form-table .form-group .steedos-table .table-bordered,.traces_table_modal .form-table .form-group .steedos-table .table-bordered{border-bottom:none}.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td{border-bottom:none!important}@-moz-document url-prefix(){.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child td,.instance-table .form-table .form-group .steedos-table .table-bordered tr:last-child th,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child td,.traces_table_modal .form-table .form-group .steedos-table .table-bordered tr:last-child th{border-bottom:1px solid #000!important}}.instance-table .form-table .af-checkbox-group,.instance-table .form-table .af-radio-group,.instance-table .form-table .checkbox,.traces_table_modal .form-table .af-checkbox-group,.traces_table_modal .form-table .af-radio-group,.traces_table_modal .form-table .checkbox{padding-left:12px;padding-top:6px}.instance-table .form-table .form-group>.checkbox,.traces_table_modal .form-table .form-group>.checkbox{vertical-align:middle;margin:0 0 -4px}.instance-table .form-table .form-group>.checkbox label,.traces_table_modal .form-table .form-group>.checkbox label{margin:0;min-height:20px;line-height:20px}.instance-table .form-table .form-group>.checkbox label input,.traces_table_modal .form-table .form-group>.checkbox label input{margin-top:0}.safari .instance-table .form-table .form-group>.checkbox label input,.safari .traces_table_modal .form-table .form-group>.checkbox label input{margin-top:4px}.instance-table .form-table .form-group>.af-checkbox-group label input,.instance-table .form-table .form-group>.af-radio-group label input,.traces_table_modal .form-table .form-group>.af-checkbox-group label input,.traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:0}.safari .instance-table .form-table .form-group>.af-checkbox-group label input,.safari .instance-table .form-table .form-group>.af-radio-group label input,.safari .traces_table_modal .form-table .form-group>.af-checkbox-group label input,.safari .traces_table_modal .form-table .form-group>.af-radio-group label input{margin-top:4px}.instance-table .instance-traces,.traces_table_modal .instance-traces{background:#fff}.instance-table .instance-traces .box-header,.traces_table_modal .instance-traces .box-header{padding-left:14px;margin-bottom:-10px;font-size:18px}.instance-table .instance-traces table.traces,.traces_table_modal .instance-traces table.traces{margin:15px auto;background:transparent;border:2px solid #000}.instance-table .instance-traces table.traces tr,.traces_table_modal .instance-traces table.traces tr{background:#fff}.instance-table .instance-traces table.traces td,.traces_table_modal .instance-traces table.traces td{background:transparent;border:1px solid #000;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-table .instance-traces table.traces td.td-stepname,.traces_table_modal .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-table .instance-traces table.traces td.td-approve,.traces_table_modal .instance-traces table.traces td.td-approve{padding:0}.instance-table .instance-traces table.traces td table,.traces_table_modal .instance-traces table.traces td table{width:100%}.instance-table .instance-traces table.traces td table tr,.traces_table_modal .instance-traces table.traces td table tr{width:100%;border:none}.instance-table .instance-traces table.traces td table tr.approve-item,.traces_table_modal .instance-traces table.traces td table tr.approve-item{border-bottom:1px solid #000}.instance-table .instance-traces table.traces td table tr.approve-item.description,.instance-table .instance-traces table.traces td table tr.approve-item:last-child,.traces_table_modal .instance-traces table.traces td table tr.approve-item.description,.traces_table_modal .instance-traces table.traces td table tr.approve-item:last-child{border-bottom:none}.instance-table .instance-traces table.traces td table tr td,.traces_table_modal .instance-traces table.traces td table tr td{text-align:left;border:none}.instance-table .instance-traces table.traces td table tr td.name,.traces_table_modal .instance-traces table.traces td table tr td.name{width:40%;color:#333}.instance-table .instance-traces table.traces td table tr td.finish-date,.traces_table_modal .instance-traces table.traces td table tr td.finish-date{width:35%;min-width:140px;color:#333}.instance-table .instance-traces table.traces td table tr td.description,.traces_table_modal .instance-traces table.traces td table tr td.description{padding-top:6px;padding-bottom:0;height:100%}.instance-table .instance-traces .image-sign,.traces_table_modal .instance-traces .image-sign{max-width:90px;max-height:60px}.instance-view .instance-table .draft .form-table .td-title.title-editable.is-required:after,.instance-view .instance-table .inbox .form-table .td-title.title-editable.is-required:after{content:"*";color:red}.instance-view .instance-table .draft .form-table .td-field.field-editable,.instance-view .instance-table .inbox .form-table .td-field.field-editable{background-color:rgba(255,255,0,.1)!important}.instance-print .navigation-bar #font-minus,.instance-print .navigation-bar #font-plus{padding:6px 8px}.instance-print .navigation-bar #printWidth{width:42px}.instance-print .content-wrapper{width:210mm}.instance-print .instance-traces{background:#fff}.instance-print .instance-traces .box-title{padding:10px 0}.instance-print .instance-table .instance-traces{padding-right:15px}.instance-print .instance-table .instance-traces .box-header{font-size:15px;padding-left:0;border-bottom:0}.instance-print .instance-table .instance-traces .box-header .box-tools{top:10px}.instance-print .instance-table .instance-traces .box-header .box-tools .btn-box-tool{padding:2px 5px 1px}.instance-print .instance-table .instance-traces .box-body{padding-top:0}.instance-print .instance-table .instance-traces .box-body table.traces{margin-top:5px}.af-checkbox-group .readonly,.af-radio-group .readonly,.checkbox .readonly,.radio .readonly{padding-left:0}.instance-form{margin-bottom:0;border-radius:0}.instance-traces{margin-bottom:5px;border-radius:0}.instance-traces .box-header .box-title{margin-left:5px}.touch .instance-traces table.traces{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-traces .cc-label{color:#333;font-weight:400;display:initial;border-radius:12px;margin-left:4px}.instance-traces .cc-label .cc-approve-remove{margin-left:4px}.instance-traces .selected .cc-label{color:#fff;font-weight:400;padding-left:5px;display:initial}.instance-traces .cc-approve-remove{padding:0;color:#97a0b3!important;cursor:pointer}.instance-traces .cc-approve-remove .ion{font-size:90%}.instance-traces .cc-approve-remove:hover{color:#606c84!important}.instance .form-group .form-control{height:100%;min-height:32px;word-break:break-all;padding-top:5px;padding-bottom:6px;vertical-align:middle}.instance .form-group .form-control.dx-date-box{width:100%!important;padding:0 0 0 12px}.instance .form-group .form-control.dx-date-box.dx-texteditor.dx-state-disabled:after{display:none}:root .instance .form-group .form-control,_:-ms-fullscreen{padding-top:6px}.instance .form-group .form-control,_:-ms-lang(x),_:-webkit-full-screen{padding-top:6px}.instance-table.instance .form-group .form-control{padding-top:0;padding-bottom:0}.instance-table.instance .form-group .form-control.dx-date-box{padding-left:0;margin:-3px 0}.instance-table.instance .form-group .form-control.dx-date-box .dx-texteditor-container .dx-texteditor-input{padding-right:20px}.instance .form-group input[type=date].form-control,.instance .form-group input[type=datetime-local].form-control{height:32px}.af-checkbox-group,.instance .form-group .af-radio-group{min-height:22px}.instance .form-group>.checkbox{min-height:22px;line-height:22px;padding-left:0;padding-top:0;margin-top:6px}.instance .form-group>.af-checkbox-group,.instance .form-group>.af-radio-group{padding-left:0;padding-top:0}.android .steedos-table-modal .form-group>.checkbox label,.mobile-safari .instance .form-group>.af-checkbox-group label,.mobile-safari .instance .form-group>.af-radio-group label,.mobile-safari .instance .form-group>.checkbox label,.mobile-safari .steedos-table-modal .form-group>.af-checkbox-group label,.mobile-safari .steedos-table-modal .form-group>.af-radio-group label,.mobile-safari .steedos-table-modal .form-group>.checkbox label{line-height:25px}.instance.instance-table .form-group>.af-checkbox-group label,.instance.instance-table .form-group>.af-radio-group label,.instance.instance-table .form-group>.checkbox label,_:-ms-lang(x) label,_:-webkit-full-screen label{line-height:22px}:root .instance .form-group>.checkbox label,_:-ms-fullscreen label{line-height:20px}.instance .instance_attachments{padding-left:0;padding-right:15px}.instance .instance_attachments .attachments-btns,.instance .instance_attachments .attachments-list{margin-bottom:10px}.instance .instance_attachments .ins-upload .steedos-icon-wrap svg.slds-button__icon{fill:#0070d2}.instance-table .instance_attachments{padding-left:0;padding-right:0}.instance-to-attachment label{font-weight:400;cursor:pointer}.image-sign{max-width:180px;max-height:90px}.instance-sign-text{text-align:right}.instance-sign-text .instance-sign-opinion-btn,.instance-sign-text .instance-sign-text-btn,.instance-suggestion #instance_flow_opinions,.instance-suggestion .instance-sign-opinion-btn{text-decoration:underline;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.instance-suggestion #instance_next .instance-suggestion-next-steps{min-height:36px}.instance-suggestion #instance_next .instance-suggestion-next-steps .ion-ios-paperplane-outline{padding-left:5px}.instance-view .instance-name{text-align:center;margin-bottom:15px}.instance-view .instance-name .box-title{font-size:20px}.instance-view .instance-table-name-td{padding-bottom:10px}.no-border,.no-border td{border:0!important}.border-right{border-right:1px solid red!important;border-color:inherit!important}.border-right-none,.border-right-none td:last-child{border-right:0!important}.border-left{border-left:1px solid red!important;border-color:inherit!important}.border-left-none,.border-left-none td:first-child{border-left:0!important}.border-top{border-top:1px solid red!important;border-color:inherit!important}.border-top-none,.border-top-none tr:first-child td{border-top:0!important}.border-bottom{border-bottom:1px solid red!important;border-color:inherit!important}.border-bottom-none,.border-bottom-none tr:last-child td{border-bottom:0!important}.nowrap{white-space:nowrap}.verticle-mode{writing-mode:tb-lr;letter-spacing:12px;padding-top:12px!important;height:140px}.verticle-mode,.verticle-mode label{-webkit-writing-mode:vertical-lr;writing-mode:vertical-lr}.verticle-mode label{display:inline}.td-center{vertical-align:middle!important;text-align:center}.inline-left{display:inline;float:left}.inline-right{display:inline;float:right}.font-color-red{color:red!important}.font-color-black{color:#000!important}.border-color-red{border-color:red!important}.border-color-black{border-color:#000!important}.text-align-center{text-align:center}.text-align-left{text-align:left}.text-align-right{text-align:right}.font-weight-bold{font-weight:700}.instance-template tr:nth-child(2) td{border-top:0!important}.instance-template .section,.instance-template .section .control-label{color:inherit!important}.instance-template .form-table td{border-width:1px;border-style:solid!important;border-color:inherit!important}.instance-template td{vertical-align:top;padding:5px 10px}.instance-template td label{color:inherit;margin-bottom:0;font-weight:400}.instance-template .form-control[disabled],.instance-template .form-group[disabled]{width:100%;height:100%;background-color:transparent!important;border:none;padding:0}.instance-template input{font-size:inherit;padding:0;min-height:22px!important;font-weight:inherit}.instance-template textarea{font-family:inherit;font-size:inherit;font-weight:inherit;padding:0}.instance-template select{font-family:inherit;color:inherit;font-weight:inherit}.instance-template .td-childfield>.form-group{color:inherit}.instance-template .form-group{color:#000}.instance-template .applicant-wrapper .form-control{color:#000!important}.instance-template .instance-title,.instance-template .instance-title .form-group,.instance-template .page-title,.instance-template .page-title .form-group{color:inherit;text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-control,.instance-template .instance-title .form-group .form-control,.instance-template .page-title .form-control,.instance-template .page-title .form-group .form-control{text-align:inherit;font-weight:700;font-size:20px}.instance-template .instance-title .form-group,.instance-template .instance-title .form-group .form-group,.instance-template .page-title .form-group,.instance-template .page-title .form-group .form-group{text-align:center;text-align:-webkit-center}.instance-template .instance-title .form-group select,.instance-template .instance-title select,.instance-template .page-title .form-group select,.instance-template .page-title select{height:41px!important;max-width:600px;margin:0 auto}.instance-template .instance-title .form-group input,.instance-template .instance-title input,.instance-template .page-title .form-group input,.instance-template .page-title input{min-height:41px!important}.instance-template .form-control{font-size:inherit;color:inherit!important;background-color:transparent!important}.ins-opinion-modal .btn-new-opinion{cursor:pointer;background:#fff}.ins-opinion-modal .btn-new-opinion:focus,.ins-opinion-modal .btn-new-opinion:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.ins-opinion-modal .list-group{margin-bottom:15px}.ins-opinion-modal .list-group .list-group-item{-ms-user-select:none;user-select:none;-moz-user-select:none;-webkit-user-select:none}.ins-opinion-modal .list-group .list-group-item .btn-sm{margin:-5px -2px}.ins-opinion-modal .list-group .list-group-item .pull-right{margin-right:-8px}.ins-opinion-modal .list-group:last-child .list-group-item:last-child{border-bottom:1px solid #ddd;border-bottom-left-radius:0;border-bottom-right-radius:0}.related-instances .related-instances-item a{color:#3c8dbc;cursor:pointer}.related-instances .related-instances-item .ins-related-delete{margin-left:10px}.related-instances .related-instances-item a:hover{text-decoration:underline}.steedos-html.steedos-html-table-only{margin:-6px -12px -6px -13px}.steedos-html.steedos-html-table-only table{border:none;width:100%!important}.instance-table .steedos-html.steedos-html-table-only{margin:-6px}.instance-table .steedos-html.steedos-html-table-only table tr:first-child td{border-top-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr:last-child td{border-bottom-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:first-child{border-left-width:0!important}.instance-table .steedos-html.steedos-html-table-only table tr td:last-child{border-right-width:0!important}.instance-form .slds-select_container:before{display:none}.traces_table_modal .modal-body{border-top:0}.traces_table_modal .modal-body .modal-header{display:none}.traces_table_modal .box{border:0;box-shadow:none}.traces_table_modal .box .box-header{display:none}.traces_table_modal .box .box-body{padding:0}.traces_table_modal .box .box-body table{margin:0 auto}.traces_modal .modal-body{padding:0}.traces_modal .modal-body .box{border-top:0}.traces_modal .modal-body .box .box-header{display:none}.instance-traces ol,.instance-traces ul{list-style:decimal;list-style-position:inside}.instance-trace-detail-modal .modal-header .modal-title{font-size:18px;font-weight:700}.instance-sign-modal #instance_flow_opinions{text-decoration:underline;cursor:pointer}.instance-sign-modal .suggestion-control{min-height:120px;font-size:17px}.instance-sign-modal .instance-sign-history{text-decoration:underline;cursor:pointer}.instance-sign-modal .instance-suggestion{font-size:15px}.instance-sign-modal .instance-suggestion .instance-sign-opinion-btn{display:inline-block;line-height:30px;margin-right:15px;vertical-align:bottom;font-size:17px;max-width:100%}.instance-sign-modal .instance-suggestion #instance_flow_opinions{line-height:30px;display:inline-block;font-size:17px}.history-sign-approve a{color:inherit}.history-sign-approve a.finish-date{float:right}.history-sign-approve .select-suggestion-td{width:10px}.history-sign-approve .select-suggestion-td .select-suggestion{display:inline-block;float:right}.history-sign-approve tr{cursor:pointer}.history-sign-approve .sign-approves{margin-top:0}.history-sign-approve .sign-approves .use-suggestion{margin-right:10px}.history-sign-approve .sign-approves .use-suggestion .weui-media-box__title{overflow:auto;text-overflow:unset;white-space:normal;font-size:15px!important;font-weight:400!important}.history-sign-approve .sign-approves .select-suggestion .weui-switch{outline:none;zoom:.78;cursor:pointer}.instance-pick_approve_users .title th{font-weight:700;border:1px solid #d2d6de}.instance-pick_approve_users .title .step{text-align:center}.instance-pick_approve_users .title .approves{padding-left:13px}.instance-pick_approve_users .step-item .td-step-approves .form-group{margin-bottom:0}.instance-pick_approve_users .step-item .td-step-approves .form-group .control-label{display:none}.instance-pick_approve_users .stepName{text-align:center}.instance-pick_approve_users .action{width:50px;text-align:center}.instance-pick_approve_users .td-step-check{width:80px;text-align:center}.instance-pick_approve_users .td-step-approves{background-color:rgba(255,255,0,.1)!important}.instance-pick_approve_users .td-step-approves .checkbox-inline label,.instance-pick_approve_users .td-step-approves .radio-inline label{font-weight:400}.instance-pick_approve_users .selectUser-box{line-height:28px!important;border:none!important;background-color:inherit!important}.instance-pick_approve_users .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-pick_approve_users .instance-traces table.traces{background:transparent;border:2px solid #d2d6de}.instance-pick_approve_users .instance-traces table.traces tr{background:#fff}.instance-pick_approve_users .instance-traces table.traces td{background:transparent;border:1px solid #d2d6de;vertical-align:middle;padding:6px;font-weight:400;font-size:14px}.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:16%;text-align:center}.instance-pick_approve_users .instance-traces table.traces td.td-approve{padding:0}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces td.td-stepname{width:auto}.instance-pick_approve_users .instance-traces table.traces td.td-step-check{width:50px}.instance-pick_approve_users .instance-traces table.traces td.td-step-approves .radio-inline{display:block;margin:0;white-space:nowrap}}.instance-pick_approve_users .instance-traces table.traces th{white-space:nowrap}@media (max-width:768px){.instance-pick_approve_users .instance-traces table.traces th.approves{text-align:center;padding-left:0}}.instance-table .instance-pick_approve_users .instance-traces table.traces,.instance-table .instance-pick_approve_users .instance-traces table.traces td,.instance-table .instance-pick_approve_users .instance-traces table.traces th{border-color:#000}.flow_list_box a{cursor:pointer;color:#000}.flow_list_box .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box .weui-cell .ion{font-size:20px}.flow_list_box .weui-cell.checked{background-color:#00a65a;color:#fff}.flow_list_box .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box .box{box-shadow:none}.flow_list_box .box .weui-cells{margin-top:0}.flow_list_box .weui-cell__bd,.flow_list_box .weui-cell__ft{cursor:pointer}.flow_list_box .ion-ios-star{color:#f39c12}.flow_list_box_org a{cursor:pointer;color:#000}.flow_list_box_org .box.box-success{overflow:hidden;box-shadow:0 0 0}.flow_list_box_org .weui-cell{padding:6px 15px}.flow_list_box_org .weui-cell .ion{font-size:20px}.flow_list_box_org .weui-cell.checked{background:#beebff}.flow_list_box_org .form-subtitle{font-size:16px;margin-bottom:9px;margin-top:9px}.flow_list_box_org .box{box-shadow:none}.flow_list_box_org .box .weui-cells{margin-top:0}.flow_list_box_org .weui-cell__bd,.flow_list_box_org .weui-cell__ft{cursor:pointer}.flow_list_box_org .ion-ios-star{color:#f39c12}.flow-list-box-org-modal{z-index:1050}.flow-list-box-org-modal .modal-body .box-header{padding:10px}.flow-list-box-org-modal .modal-body .contacts-list-wrapper{overflow-y:auto}.flow-list-box-modal-body{padding-top:5px}.forward-select-flow-modal input[readonly]{background-color:#fff!important}.instance-list-wrapper .slds-page-header--object-home{border-radius:0;border-left:0;border-right:0;height:100px}@media (max-width:768px){.instance-list-wrapper .slds-page-header--object-home{height:65px}}.instance-list-wrapper .slds-page-header--object-home .slds-media__figure{margin-top:-2px}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow{width:140%}.instance-list-wrapper .slds-page-header--object-home .dropdown-workflow-menu-by-flow ul{background:#fff!important}.instance-list-wrapper .slds-page-header--object-home .slds-button{cursor:pointer}.instance-list-wrapper .instance-list table.dataTable thead .sorting_asc:after{font:14px/1 DXIcons;content:"\f051";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting_desc:after{font:14px/1 DXIcons;content:"\f052";opacity:.6;bottom:10px}.instance-list-wrapper .instance-list table.dataTable thead .sorting:after{font:14px/1 DXIcons;content:"\f055";opacity:0;bottom:10px}.instance-list-wrapper .instance-list-body .instance-list-sidebar{position:absolute;left:0;top:99px;bottom:0;width:260px;border-right:1px solid #e0e5ee}.instance-list-wrapper .instance-list-body .instance-list-content{position:absolute;left:0;right:0;top:99px;bottom:0}@media (max-width:768px){.instance-list-wrapper .instance-list-body .instance-list-content{top:64px}}@media (min-width:768px){.instance-list-wrapper{background:red}.instance-list-wrapper .dropdown-menu{min-width:260px;max-width:300px}}.instance-list{margin-top:1px}.instance-list .datatable-instances{border-right:none}.instance-list .dataTables_paginate{float:right;width:65%}.instance-list .dataTables_length{float:left;width:35%}@media (max-width:768px){.instance-list .dataTables_paginate{width:100%}}.instance-list>div:nth-child(3){overflow-x:auto}.instance-list .dataTables_container{position:relative}.instance-list .dataTables_container .ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail,.instance-list .dataTables_container .ps-container:hover>.ps-scrollbar-x-rail:hover{background:#fff}.instance-list .dataTables_wrapper tbody tr td{position:relative}.instance-list .flow-name{padding-left:15px;width:69%;color:#777}.instance-list.instance-list-empty .dataTables_wrapper{display:none}.instance-list.instance-list-empty .slds-illustration .slds-illustration__svg{margin-bottom:-.6rem}.instance-list .dataTables_wrapper thead th:first-child{padding-left:20px!important}.instance-list .dataTables_wrapper thead th{white-space:nowrap;min-width:115px}.instance-list .dataTables_wrapper thead th:nth-child(3){min-width:115px}.instance-list .color-priority{color:#00f;display:none}.instance-list .color-priority.instance-name{display:inline-block}.instance-list .color-priority.color-priority-danger{color:red;display:inline-block}.instance-list .color-priority.color-priority-warning{color:purple;display:inline-block}.instance-list .color-priority.color-priority-muted{color:#00f;display:inline-block}.instance-list .step-current-state.terminated{color:grey}.instance-list .step-current-state.approved{color:green}.instance-list .step-current-state.rejected{color:red}.instance-list .instance-priority-bar{position:absolute;width:20px;left:1px;top:22px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-name span{color:#333;display:inline-block;float:right;font-weight:400;margin-right:10px}.instance-list .instance-name .color-priority{margin-left:8px}.instance-list .selected .flow-name,.instance-list .selected .instance-modified,.instance-list .selected .instance-name span{color:#fff}.instance-list .instance-modified{color:#777}.instance-list .selected .step-current-state{color:#fff}.instance-list .instance-read-bar{position:absolute;width:20px;left:1px;top:4px;bottom:0;line-height:35px;text-align:center}.instance-list .instance-read-bar .ion.instance-favorite-selected{color:#666}.instance-list .selected .instance-read-bar .ion.instance-favorite-selected{color:#fff}.instance-list .unread{color:#1f95ec;position:absolute;top:9px;left:5px;font-size:90%}.instance-list .instance-step-current-name{color:#999;font-weight:400;padding-left:5px;display:initial}.instance-list .selected .instance-step-current-name{color:#fff}.instance-list .toolbar{min-height:51px}.instance-list .search-tip-bar{border-bottom:1px solid #eee;padding:10px 20px}.instance-list [aria-label=Title],.instance-list [aria-label=标题]{min-width:400px!important}.instance-list th.flow-filter{position:relative;padding-right:30px;cursor:pointer}.instance-list th.flow-filter:after{font-family:Ionicons;content:"\f31b";right:0;position:absolute;bottom:8px;right:8px;display:block;opacity:.5}.batch_instances_view{position:absolute;width:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0);bottom:120px;right:20px}.batch_instances_view button{z-index:999;position:fixed;right:20px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:57px;height:57px;border-radius:57px;font-size:16px}.instance-list-wrapper .tabular-filter-by-flow{margin-right:5px}.instance-list-wrapper .tabular-filter-by-flow .caret{margin-left:5px}.instance-list-wrapper .search-tip-bar .label{margin-right:5px;border-radius:0;font-size:12px}.instance-list-wrapper .search-tip-bar .breadcrumb{display:inline-block;margin-bottom:0;padding:0;background-color:#fff}#instance_more_search_modal .submit-date-icon{border-right:none}#instance_more_search_modal .submit_date_end{padding-top:5px}.instance-priority-danger .td-field-文件标题 .form-group,.instance-priority-danger input[name=文件标题]{color:red!important}.instance-priority-warning .td-field-文件标题 .form-group,.instance-priority-warning input[name=文件标题]{color:purple!important}.instance-priority-muted .td-field-文件标题 .form-group,.instance-priority-muted input[name=文件标题]{color:#00f!important}.workflow-menu{width:300px;left:50%;margin-left:-150px;padding:0}.workflow-menu .weui-navbar{bottom:0;top:auto;display:block}.workflow-menu .weui-navbar__item{cursor:pointer;padding:8px 0}.workflow-menu .weui-bar__item_on{background-color:#08c!important;color:#fff}.workflow-menu-by-flow{overflow-y:auto}.workflow-menu-by-flow .weui_cells_title{font-weight:400;margin-top:0;margin-bottom:0}.workflow-menu-by-flow .weui_cells{margin-top:0}.workflow-menu-by-flow .selected{background-color:#08c;color:#fff!important}.workflow-menu-by-flow .active{color:#0078d7!important}.workflow-menu-by-flow .fa-angle-left{display:none}.workflow-menu-by-flow>li>.treeview-menu{margin-left:10px}.workflow-menu-by-flow .treeview-menu .treeview-menu{padding-left:20px}.creator-content-wrapper .main-sidebar .workflow-menu-by-flow li>.treeview-menu{display:block!important}@media (max-width:767px){.creator-content-wrapper .main-sidebar{background:#fff!important;display:none;width:100%;margin-top:66px!important}.creator-content-wrapper .main-sidebar .top-sidebar,.creator-content-wrapper .main-sidebar .workflow-menu-by-flow .header-app{display:none}.creator-content-wrapper .main-sidebar>.sidebar{box-shadow:0 1px 3px rgba(0,0,0,.5);border-radius:4px;left:10px;right:10px;bottom:10px;border-top-left-radius:unset;border-top-right-radius:unset;padding-bottom:10px}.creator-content-wrapper .content-wrapper{-webkit-transform:none;-ms-transform:none;transform:none}.creator-content-wrapper .content-wrapper.content-wrapper-shadow{display:none}.sidebar-open .creator-content-wrapper .main-sidebar{display:block}}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node.other-inbox-node.first-other-inbox-node{border-top:1px solid rgba(0,0,0,.1);margin-top:1.5rem;padding:.25rem 0}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container{-webkit-box-flex:0.22;-webkit-flex:0.22;-ms-flex:0.22;flex:0.22;min-width:36px}.creator-grid-sidebar-workflow-container.gridSidebarContainer.dx-treeview .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content .pull-right-container .bg-special{color:#333}.steedos .content-wrapper{margin-left:0}.steedos .chooseFlow .chooseFlow-header-close{display:none!important}.steedos #chooseFlow-modal-content{overflow:hidden!important;overflow-y:auto!important}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .slds-button{padding:0;margin:0;background:none;border:0;line-height:inherit;text-align:left;color:#080707}.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .all-flow-label-icon,.steedos #chooseFlow-modal-content .slds-tree_container .slds-tree .slds-tree__item .slds-tree__item-label .flow-label-icon{top:-2px;position:relative;color:rgba(51,51,51,.71)}.steedos #chooseFlow-modal-content .slds-input{border-top:0;border-left:0;border-right:0}@media screen and (max-width:647px){.steedos #chooseFlow-modal-content{overflow-y:hidden!important}.steedos .ReactModalPortal .slds-modal__container{margin:0;padding:0}.steedos .ReactModalPortal .slds-modal__container .chooseFlow-header-close{display:block!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header{height:49px;border-radius:0;padding:.5rem}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-modal__close{display:none}.steedos .ReactModalPortal .slds-modal__container .slds-modal__header .slds-text-heading_medium{font-size:18px;color:#080707;line-height:30px}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content{height:100%;border-radius:0!important}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div,.steedos .ReactModalPortal .slds-modal__container .slds-modal__content>div>div{height:100%}.steedos .ReactModalPortal .slds-modal__container .slds-modal__content .slds-tree_container{overflow:hidden;overflow-y:auto;height:calc(100% - 32px)!important;max-height:calc(100% - 32px)!important}}.workflow-main{position:absolute;top:0;left:0;right:0;bottom:0}.workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.instance-list-wrapper{right:-1px;left:0;float:left;padding-left:0;padding-right:0;overflow-y:hidden;position:absolute;top:0;bottom:0;background:#fff}.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:38px}.instance-list-wrapper .navigation-bar .btn-offcanvas .inbox-pending-icon{font-size:75%;position:relative;left:-8px;top:-6px}@media (max-width:767px){.instance-list-wrapper .navigation-bar .btn-offcanvas{max-width:42px;position:relative;left:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new{position:relative;right:-9px;padding:14px;top:-9px}.instance-list-wrapper .navigation-bar .pull-right .instance_new .ion-plus{position:relative;top:1px}}.instance-list-wrapper .toolbar{height:51px;background:#f3f3f3}.instance-list-wrapper .toolbar .instance-search-box{margin-right:5px}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:235px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search{padding-right:35px}.instance-list-wrapper .toolbar .instance-search-box .input-group #instance_search_button{padding:6px 10px;margin-left:-35px;border-top-right-radius:6px;border-bottom-right-radius:6px;height:34px;z-index:4}.instance-list-wrapper .toolbar .instance-search-box .input-group .form-control{border-radius:6px}@media screen and (max-width:767px){.instance-list-wrapper .toolbar .instance-search-box{position:absolute;left:8px;right:8px;margin-right:0!important}.instance-list-wrapper .toolbar .instance-search-box .input-group{width:100%}}.instance-list-wrapper .search-tip-bar{background:#fff;border-bottom:1px solid #eee;padding:10px 20px;height:40px;margin-top:2px}.instance-list-wrapper .search-tip-bar .result-container{width:calc(100% - 30px)}.instance-list-wrapper .search-tip-bar #instance_search_tip_close_btn{width:30px}.instance-list-wrapper .instance-list{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;bottom:0;right:0;left:0;position:absolute;background-color:#fff}.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}@media (max-width:767px){.instance-list-wrapper .instance-list.selectbar-is-show{top:40px}.instance-list-wrapper .instance-list.selectbar-is-hide{top:0}}.instance-list-wrapper .instance-list .instance-name{padding-left:15px;font-weight:700;word-break:break-all;width:100%}.instance-list-wrapper .instance-list .flow-name{float:left}.instance-list-wrapper .instance-list .instance-modified{padding-right:10px;display:inline-block;float:right}.instance-list-wrapper .instance-list .instance-applicant{padding-left:15px}.instance-list-wrapper .navigation-title{overflow:visible!important}.instance-list-wrapper .dataTables_wrapper .dataTable{background:#fff;border-top:0;margin-top:0!important}.instance-list-wrapper .dataTables_wrapper .dataTable thead{display:none}.instance-list-wrapper .dataTables_wrapper .table-bordered{border-left:none}.instance-list-wrapper .dataTables_wrapper .table>tbody>tr>td{border-bottom:1px solid #e8e8e8;border-top:0}.instance-list-wrapper .dataTables_wrapper tbody tr:hover{cursor:pointer}.instance-list-wrapper .dataTables_wrapper tbody tr:hover td.dataTables_empty{cursor:default}.instance-wrapper{position:absolute;top:0;bottom:0;overflow:hidden}.instance-wrapper .pull-right .dropdown-menu{right:0;left:auto}.instance-wrapper .instance-left-buttons .steedos-amis-button .antd-Button{height:30px;line-height:30px}.instance-wrapper .instance-left-buttons .slds-dropdown-trigger .steedos-amis-button .antd-Button{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:#181818;font-size:12px}.instance-wrapper .navigation-bar .instance-left-buttons{height:38px;position:relative;top:-2px;min-width:50px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-submit,.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group{vertical-align:middle;margin-left:10px}@media (min-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons .slds-button-group .dropdown-menu-right{left:0}}.instance-wrapper .navigation-bar .instance-left-buttons .btn{margin-right:-6px;padding-right:8px;padding-left:8px;margin-top:2px}@media (max-width:767px){.instance-wrapper .navigation-bar .instance-left-buttons{top:1px;left:-6px}.instance-wrapper .navigation-bar .instance-left-buttons .btn{padding:8px;margin-top:1px}.instance-wrapper .navigation-bar .instance-left-buttons .btn-instance-back{padding:14px}.instance-wrapper .navigation-bar .pull-right .btn{position:relative;top:-9px;padding:14px;right:-9px}}.instance-wrapper .instance-view{background:#fff;position:absolute;bottom:0;left:0;right:0}.instance-wrapper .instance-view .instance-suggestion-close{position:absolute;right:5px;z-index:666}.instance-wrapper .instance-view .instance-suggestion-close .btn{color:#999;font-size:21px}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion-close{display:none}}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step{padding:3px 0 3px 12px;margin-bottom:0;font-weight:400;font-size:14px}.instance-wrapper .instance-view .instance-suggestion-next-steps .only-one-next-step input{display:none}.instance-wrapper .instance-view .suggestion-radio-box label{height:22px;line-height:22px;margin-right:10px;font-size:14px}.instance-wrapper .instance-view .suggestion-radio-box .radio-inline+.radio-inline{margin-left:0}.instance-wrapper .instance-view .btn-suggestion-toggle{z-index:999;position:absolute;bottom:20px;right:20px;border-radius:48px;font-size:24px;box-shadow:1px 1px 8px rgba(0,0,0,.5);border:1px solid #08c;outline:none!important;width:48px;height:48px}.instance-wrapper .instance-view .btn-suggestion-toggle i.ion{float:left;height:36px;line-height:36px}.instance-wrapper .instance-view .btn-suggestion-toggle span{font-size:16px;float:left;margin-left:2px;height:36px;line-height:36px}.instance-wrapper .instance-view .txt-suggestion-toggle{width:57px;height:57px;border-radius:57px;font-size:16px}.instance-wrapper .instance-view .instance-suggestion{position:absolute;right:0;bottom:0;left:0;z-index:99;border-radius:0;display:none;padding:4px 4px 0;margin-bottom:0;overflow-y:auto;overflow-x:hidden;max-height:100%}.instance-wrapper .instance-view .instance-suggestion .form-group{margin-bottom:8px}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{word-wrap:break-word;width:calc(100% - 20px)}.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box label{margin-right:3px;margin-bottom:0}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .form-group .cc-description-box{width:100%}}.instance-wrapper .instance-view .instance-suggestion .input-group-addon{background-color:#f5f5f5;min-width:50px;text-align:left}.instance-wrapper .instance-view .instance-suggestion .help-block{margin:0}.instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions{border:none;padding:4px 8px;position:absolute;top:3px;right:25px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .btn-mobile{top:15px!important}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps{border:1px solid #ccc;background:#fff;padding:4px 0}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{cursor:pointer;padding:2px 0 2px 30px;font-weight:400;margin:0;line-height:20px;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio:hover{background:#eee}@media (max-width:767px){.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio{line-height:25px}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .mobile-safari{line-height:24px}}.instance-wrapper .instance-view .instance-suggestion .instance-suggestion-next-steps .radio .safari{line-height:24px}.instance-wrapper .instance-view .instance-suggestion .nextStepUsers{background:#fff!important;font-size:14px}.instance-wrapper .instance-view .instance-suggestion .has-error .instance-suggestion-next-steps{border-color:#dd4b39}.instance-wrapper .instance-view.suggestion-active .instance-suggestion{display:block}.instance-wrapper .instance-view.suggestion-active .btn-suggestion-toggle{display:none}.instance-wrapper .instance-view .instance{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;top:0;bottom:0;right:0;left:0;position:absolute;background-color:#fff;padding:0 0 20px}body.dx-date-box-opened .instance-wrapper .instance-view .instance{overflow:hidden!important}.instance-wrapper .instance-view .instance .row{margin-right:0;margin-left:0}.instance-wrapper .instance-view .instance.instance-default .form-group{margin-bottom:5px}.instance-wrapper .instance-view .instance.instance-default .form-group .control-label{margin-bottom:3px;font-size:.875rem}.instance-wrapper .instance-view .instance .box-body{padding-left:15px;padding-right:15px}.instance-wrapper .instance-view .instance .instance-form .box-body,.instance-wrapper .instance-view .instance .instance-suggestion .box-body{padding-left:0;padding-right:0}.instance-wrapper .instance-view .instance .instance-suggestion{display:block;position:relative;box-shadow:none;z-index:auto;margin-bottom:-20px}.instance-wrapper .instance-view .instance .instance-suggestion .btn-remove{display:none}.instance-wrapper .instance-view .instance .instance-traces{margin-bottom:0;margin-top:10px;padding-top:10px;clear:both}.instance-wrapper .instance-view .instance .instance-traces .box-title{font-size:18px;margin:10px 0}.instance-wrapper .instance-view .instance.instance-table .instance-traces,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces{padding-bottom:10px}.instance-wrapper .instance-view .instance.instance-table .instance-traces>.pull-left,.instance-wrapper .instance-view .instance.traces_table_modal .instance-traces>.pull-left{padding-bottom:4px;font-size:15px}.instance-wrapper .select-approve-in-all-users .selectUser-box{border-right:none!important}.instance-wrapper .select-approve-in-all-users .select-all-users-btn{border-left:none!important;background-color:#fff!important;min-width:auto!important;cursor:pointer}.instance-wrapper .select-approve-in-all-users .selectNextStepUsersInAllUsers{display:none!important}:root .instance-wrapper .instance-view .instance-suggestion #instance_flow_opinions,_:-ms-fullscreen #instance_flow_opinions{top:-2px;right:15px}.mobile-safari .instance-wrapper .instance-view .instance{padding-top:1px!important}.steedos .toggle-columns-box{margin:0 -6px}.steedos .toggle-columns-box .btn-toggle-columns i{margin-top:6px}.steedos .toggle-columns-box{display:none}@media (min-width:1441px){.steedos .toggle-columns-box{display:block}}.workflow-main .instance-list-wrapper{display:block;margin:0;border-radius:0;width:auto;left:0;right:0;border-right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-list-wrapper .instance-list{overflow:auto}.workflow-main .instance-wrapper{display:none;width:auto;left:0;right:0;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out}.workflow-main .instance-wrapper .instance{margin-bottom:1px}.workflow-main.instance-show .instance-list-wrapper{display:none}.workflow-main.instance-show .instance-wrapper{display:block;width:auto;left:0;right:0}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.workflow-main.instance-show .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}@media (min-width:768px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:60%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:230px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:230px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:60%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:40%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:46%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:54%}}@media (min-width:1280px){.three-columns .workflow-main .instance-list-wrapper{display:block;right:54%;box-shadow:0 1px 3px rgba(0,0,0,.5);background-color:#fff;z-index:2}.three-columns .workflow-main .instance-wrapper{left:100%;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back{display:inline-block!important}.three-columns .workflow-main .instance-wrapper .navigation-bar .btn-instance-back.visible-xs-inline-block{display:none!important}.three-columns .workflow-main.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-sidebar{width:260px}.three-columns .workflow-main.sidebar-open .instance-list-wrapper .instance-list-body .instance-list-content{margin-left:260px}.three-columns .workflow-main.instance-show .instance-list-wrapper{display:block;right:54%;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show .instance-wrapper{left:46%;background:#fff;-webkit-transition:.3s ease-in-out,width .3s ease-in-out;transition:.3s ease-in-out,width .3s ease-in-out}.three-columns .workflow-main.instance-show.sidebar-open .instance-list-wrapper{right:50%}.three-columns .workflow-main.instance-show.sidebar-open .instance-wrapper{left:50%}}@media (max-width:767px){.steedos .workflow-main .instance-list-wrapper{margin:0;border-radius:0;background-color:transparent}.steedos .workflow-main .instance-list-wrapper .instance-list{border-top:1px solid #fff}.steedos .workflow-menu{width:250px;left:50%;margin-left:-125px;overflow-y:auto}}@media (min-width:768px){.workflow-main .instance-list-wrapper,.workflow-main .instance-wrapper{margin:.75rem .75rem 0;border-radius:.25rem}.three-columns .workflow-main .instance-wrapper{margin:.75rem .75rem 0 0}}.toast-top-right{top:52px;right:12px}@-webkit-keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}@keyframes bs{0%{background-color:#749a02;box-shadow:0 0 9px #333}50%{background-color:#00a65a;box-shadow:0 0 18px #00a65a;color:#ddd}to{background-color:#749a02;box-shadow:0 0 9px #333}}.no-columns .instance-wrapper{left:inherit!important;margin:0!important}.instance table{border-spacing:0;border-collapse:collapse}.related_instances_modal .modal-body{min-height:300px}.related_instances_modal .selectize-control.multi .selectize-input [data-value]{color:#fff;background-color:#1b9dec!important;padding-right:25px!important;padding-left:3px!important}.related_instances_modal .instance-state-group{line-height:34px}.related_instances_modal .radio-inline input{line-height:34px;height:34px;margin-top:0}.related_instances_modal .related_instances_list_search_btn{cursor:pointer}.related_instances_modal .pull-right{padding-left:15px}.related_instances_modal tbody tr{cursor:pointer}.related_instances_modal th:not(:first-child){min-width:60px}.related_instances_modal .box-tools{width:35%}.related-instances .title{padding:6px 0 0}.instance .related-instances{padding-left:0;padding-right:15px}.batch-instances-modal .modal-body{padding:0}.batch-instances-modal .modal-body .weui-cells{margin-top:0}.batch-instances-modal .modal-body .weui-cells span{font-size:13px;color:#888}.batch-instances-modal .modal-body .weui-cells:after,.batch-instances-modal .modal-body .weui-cells:before{display:none}.cancel_distribute_modal table th{padding:8px}.cancel_distribute_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_distribute_modal .th-width{width:10px}.cancel_distribute_modal .table-header{background-color:#eee}.cancel_cc_modal table th{padding:8px}.cancel_cc_modal .handler-name{cursor:pointer;font-weight:700;width:50%}.cancel_cc_modal .th-width{width:10px}.cancel_cc_modal .table-header{background-color:#eee}.ps-container{-ms-touch-action:none;overflow:hidden!important}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px}.ps-container>.ps-scrollbar-x-rail,.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0}.ps-container>.ps-scrollbar-y-rail{display:none;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px}.ps-container>.ps-scrollbar-y-rail,.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;border-radius:4px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#aaa;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder:after{content:"!";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.selectize-dropdown-header{position:relative;padding:3px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0;border-left:1px solid transparent;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333;font-family:inherit;font-size:inherit;line-height:20px;-webkit-font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ccc;padding:6px 12px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 12px 2px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#efefef;color:#333;border:0 solid transparent}.selectize-control.multi .selectize-input>div.active{background:#428bca;color:#fff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:grey;background:#fff;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none!important}.selectize-input:after{content:" ";display:block;clear:left}.selectize-input.dropdown-active:before{content:" ";display:block;position:absolute;background:#fff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;background:#fff;margin:-1px 0 0;border:1px solid #d0d0d0;border-top:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .optgroup-header,.selectize-dropdown [data-selectable]{padding:3px 12px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0}.selectize-dropdown .optgroup-header{color:#777;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5f5f5;color:#262626}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .create{color:rgba(51,51,51,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:" ";display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-color:#333 transparent transparent;border-style:solid;border-width:5px 5px 0}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent #333}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0;z-index:1000;background:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.42857143}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:" ";display:block;height:1px;overflow:hidden;background-color:#e5e5e5;margin:9px -12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 12px}.selectize-input{min-height:34px}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active:before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.has-error .selectize-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .selectize-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:9px;padding-right:9px}.selectize-control.multi .selectize-input>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:none;background:none;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-control>.selectize-input{-webkit-transition:inherit;-moz-transition:inherit;-o-transition:inherit;transition:inherit}.qhd-sync-archive,.qhd-sync-contracts{height:100%}.qhd-sync-archive .progress,.qhd-sync-contracts .progress{margin-bottom:0!important}.qhd-sync-archive .submit-date-icon,.qhd-sync-contracts .submit-date-icon{border-right:none}.qhd-sync-archive .box,.qhd-sync-contracts .box{height:100%;margin-bottom:0!important}.qhd-sync-archive .box .box-header.with-border,.qhd-sync-contracts .box .box-header.with-border{height:auto}.qhd-sync-archive .box .box-body,.qhd-sync-contracts .box .box-body{height:calc(100% - 51px);overflow-x:auto}.qhd-sync-archive .row,.qhd-sync-contracts .row{margin-right:0;margin-left:0}.qhd-sync-archive .label-error,.qhd-sync-contracts .label-error{background-color:red}.btn,.form-control{font-size:1rem}label{font-weight:.875rem}.btn-primary{background-color:#0070d2;border-color:#0070d2}@media (min-width:48em){.steedos .slds-form-element_horizontal .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__control{padding-left:18%;clear:none}.steedos .slds-form-element_horizontal .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal .slds-form-element__label{max-width:16.75%;-ms-flex-preferred-size:16.75%;flex-basis:16.75%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__control,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__control{padding-left:8.73%}.steedos .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_horizontal .slds-form-element.slds-form-element_1-col .slds-form-element__label,.steedos .slds-form_stacked .slds-form-element_horizontal.slds-form-element_1-col .slds-form-element__label{width:8.73%}}.steedos .slds-split-view__list-item-action{padding:.35rem 1rem}/*! * Datetimepicker for Bootstrap 3 * version : 4.17.37 * https://github.com/Eonasdan/bootstrap-datetimepicker/ diff --git a/server/bundle/programs/web.cordova/743c48204b93359a72631ab7ac17c3c7603be02f.js b/server/bundle/programs/web.cordova/b6724487e5ec390de10b5accba2a48355ab84c81.js similarity index 99% rename from server/bundle/programs/web.cordova/743c48204b93359a72631ab7ac17c3c7603be02f.js rename to server/bundle/programs/web.cordova/b6724487e5ec390de10b5accba2a48355ab84c81.js index 0ecfdf7070..301f6d72da 100644 --- a/server/bundle/programs/web.cordova/743c48204b93359a72631ab7ac17c3c7603be02f.js +++ b/server/bundle/programs/web.cordova/b6724487e5ec390de10b5accba2a48355ab84c81.js @@ -68,7 +68,7 @@ object-assign * Copyright 2011-2019 Twitter, Inc. * Licensed under the MIT license */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1||t[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var r in t)if(void 0!==e.style[r])return{end:t[r]};return!1}e.fn.emulateTransitionEnd=function(t){var r=!1,n=this,i;return e(this).one("bsTransitionEnd",(function(){r=!0})),setTimeout((function(){r||e(n).trigger(e.support.transition.end)}),t),this},e((function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})}))}(jQuery),function(e){"use strict";var t='[data-dismiss="alert"]',r=function(r){e(r).on("click",t,this.close)};function n(t){return this.each((function(){var n=e(this),i=n.data("bs.alert");i||n.data("bs.alert",i=new r(this)),"string"==typeof t&&i[t].call(n)}))}r.VERSION="3.4.1",r.TRANSITION_DURATION=150,r.prototype.close=function(t){var n=e(this),i=n.attr("data-target");i||(i=(i=n.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=e(document).find(i);function a(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=n.closest(".alert")),o.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",a).emulateTransitionEnd(r.TRANSITION_DURATION):a())};var i=e.fn.alert;e.fn.alert=n,e.fn.alert.Constructor=r,e.fn.alert.noConflict=function(){return e.fn.alert=i,this},e(document).on("click.bs.alert.data-api",t,r.prototype.close)}(jQuery),function(e){"use strict";var t=function(r,n){this.$element=e(r),this.options=e.extend({},t.DEFAULTS,n),this.isLoading=!1};function r(r){return this.each((function(){var n=e(this),i=n.data("bs.button"),o="object"==typeof r&&r;i||n.data("bs.button",i=new t(this,o)),"toggle"==r?i.toggle():r&&i.setState(r)}))}t.VERSION="3.4.1",t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(t){var r="disabled",n=this.$element,i=n.is("input")?"val":"html",o=n.data();t+="Text",null==o.resetText&&n.data("resetText",n[i]()),setTimeout(e.proxy((function(){n[i](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,n.addClass(r).attr(r,r).prop(r,!0)):this.isLoading&&(this.isLoading=!1,n.removeClass(r).removeAttr(r).prop(r,!1))}),this),0)},t.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var r=this.$element.find("input");"radio"==r.prop("type")?(r.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==r.prop("type")&&(r.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),r.prop("checked",this.$element.hasClass("active")),e&&r.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=r,e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=e(t.target).closest(".btn");r.call(n,"toggle"),e(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),n.is("input,button")?n.trigger("focus"):n.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))}))}(jQuery),function(e){"use strict";var t=function(t,r){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=r,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};function r(r){return this.each((function(){var n=e(this),i=n.data("bs.carousel"),o=e.extend({},t.DEFAULTS,n.data(),"object"==typeof r&&r),a="string"==typeof r?r:o.slide;i||n.data("bs.carousel",i=new t(this,o)),"number"==typeof r?i.to(r):a?i[a]():o.interval&&i.pause().cycle()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=600,t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},t.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},t.prototype.getItemForDirection=function(e,t){var r=this.getItemIndex(t),n;if(("prev"==e&&0===r||"next"==e&&r==this.$items.length-1)&&!this.options.wrap)return t;var i,o=(r+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(o)},t.prototype.to=function(e){var t=this,r=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){t.to(e)})):r==e?this.pause().cycle():this.slide(e>r?"next":"prev",this.$items.eq(e))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(!this.sliding)return this.slide("next")},t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},t.prototype.slide=function(r,n){var i=this.$element.find(".item.active"),o=n||this.getItemForDirection(r,i),a=this.interval,s="next"==r?"left":"right",u=this;if(o.hasClass("active"))return this.sliding=!1;var c=o[0],l=e.Event("slide.bs.carousel",{relatedTarget:c,direction:s});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var f=e(this.$indicators.children()[this.getItemIndex(o)]);f&&f.addClass("active")}var d=e.Event("slid.bs.carousel",{relatedTarget:c,direction:s});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(r),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(s),o.addClass(s),i.one("bsTransitionEnd",(function(){o.removeClass([r,s].join(" ")).addClass("active"),i.removeClass(["active",s].join(" ")),u.sliding=!1,setTimeout((function(){u.$element.trigger(d)}),0)})).emulateTransitionEnd(t.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(d)),a&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=r,e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this};var i=function(t){var n=e(this),i=n.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=n.attr("data-target")||i,a=e(document).find(o);if(a.hasClass("carousel")){var s=e.extend({},a.data(),n.data()),u=n.attr("data-slide-to");u&&(s.interval=!1),r.call(a,s),u&&a.data("bs.carousel").to(u),t.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",i).on("click.bs.carousel.data-api","[data-slide-to]",i),e(window).on("load",(function(){e('[data-ride="carousel"]').each((function(){var t=e(this);r.call(t,t.data())}))}))}(jQuery),function(e){"use strict";var t=function(r,n){this.$element=e(r),this.options=e.extend({},t.DEFAULTS,n),this.$trigger=e('[data-toggle="collapse"][href="#'+r.id+'"],[data-toggle="collapse"][data-target="#'+r.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function r(t){var r,n=t.attr("data-target")||(r=t.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"");return e(document).find(n)}function n(r){return this.each((function(){var n=e(this),i=n.data("bs.collapse"),o=e.extend({},t.DEFAULTS,n.data(),"object"==typeof r&&r);!i&&o.toggle&&/show|hide/.test(r)&&(o.toggle=!1),i||n.data("bs.collapse",i=new t(this,o)),"string"==typeof r&&i[r]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=350,t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e;return this.$element.hasClass("width")?"width":"height"},t.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var r,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(r=i.data("bs.collapse"))&&r.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){i&&i.length&&(n.call(i,"hide"),r||i.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return s.call(this);var u=e.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",e.proxy(s,this)).emulateTransitionEnd(t.TRANSITION_DURATION)[a](this.$element[0][u])}}}},t.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var r=e.Event("hide.bs.collapse");if(this.$element.trigger(r),!r.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return i.call(this);this.$element[n](0).one("bsTransitionEnd",e.proxy(i,this)).emulateTransitionEnd(t.TRANSITION_DURATION)}}},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},t.prototype.getParent=function(){return e(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy((function(t,n){var i=e(n);this.addAriaAndCollapsedClass(r(i),i)}),this)).end()},t.prototype.addAriaAndCollapsedClass=function(e,t){var r=e.hasClass("in");e.attr("aria-expanded",r),t.toggleClass("collapsed",!r).attr("aria-expanded",r)};var i=e.fn.collapse;e.fn.collapse=n,e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=i,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){var i=e(this);i.attr("data-target")||t.preventDefault();var o=r(i),a,s=o.data("bs.collapse")?"toggle":i.data();n.call(o,s)}))}(jQuery),function(e){"use strict";var t=".dropdown-backdrop",r='[data-toggle="dropdown"]',n=function(t){e(t).on("click.bs.dropdown",this.toggle)};function i(t){var r=t.attr("data-target");r||(r=(r=t.attr("href"))&&/#[A-Za-z]/.test(r)&&r.replace(/.*(?=#[^\s]*$)/,""));var n="#"!==r?e(document).find(r):null;return n&&n.length?n:t.parent()}function o(n){n&&3===n.which||(e(t).remove(),e(r).each((function(){var t=e(this),r=i(t),o={relatedTarget:this};r.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&e.contains(r[0],n.target)||(r.trigger(n=e.Event("hide.bs.dropdown",o)),n.isDefaultPrevented()||(t.attr("aria-expanded","false"),r.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))})))}function a(t){return this.each((function(){var r=e(this),i=r.data("bs.dropdown");i||r.data("bs.dropdown",i=new n(this)),"string"==typeof t&&i[t].call(r)}))}n.VERSION="3.4.1",n.prototype.toggle=function(t){var r=e(this);if(!r.is(".disabled, :disabled")){var n=i(r),a=n.hasClass("open");if(o(),!a){"ontouchstart"in document.documentElement&&!n.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",o);var s={relatedTarget:this};if(n.trigger(t=e.Event("show.bs.dropdown",s)),t.isDefaultPrevented())return;r.trigger("focus").attr("aria-expanded","true"),n.toggleClass("open").trigger(e.Event("shown.bs.dropdown",s))}return!1}},n.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var n=e(this);if(t.preventDefault(),t.stopPropagation(),!n.is(".disabled, :disabled")){var o=i(n),a=o.hasClass("open");if(!a&&27!=t.which||a&&27==t.which)return 27==t.which&&o.find(r).trigger("focus"),n.trigger("click");var s=" li:not(.disabled):visible a",u=o.find(".dropdown-menu"+s);if(u.length){var c=u.index(t.target);38==t.which&&c>0&&c--,40==t.which&&cdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},t.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},t.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:i},c.prototype.init=function(t,r,n){if(this.enabled=!0,this.type=t,this.$element=e(r),this.options=this.getOptions(n),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var a=i[o];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",u="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(r){var n=this.$element.data();for(var i in n)n.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete n[i];return(r=e.extend({},this.getDefaults(),n,r)).delay&&"number"==typeof r.delay&&(r.delay={show:r.delay,hide:r.delay}),r.sanitize&&(r.template=u(r.template,r.whiteList,r.sanitizeFn)),r},c.prototype.getDelegateOptions=function(){var t={},r=this.getDefaults();return this._options&&e.each(this._options,(function(e,n){r[e]!=n&&(t[e]=n)})),t},c.prototype.enter=function(t){var r=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(r||(r=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,r)),t instanceof e.Event&&(r.inState["focusin"==t.type?"focus":"hover"]=!0),r.tip().hasClass("in")||"in"==r.hoverState)r.hoverState="in";else{if(clearTimeout(r.timeout),r.hoverState="in",!r.options.delay||!r.options.delay.show)return r.show();r.timeout=setTimeout((function(){"in"==r.hoverState&&r.show()}),r.options.delay.show)}},c.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},c.prototype.leave=function(t){var r=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(r||(r=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,r)),t instanceof e.Event&&(r.inState["focusout"==t.type?"focus":"hover"]=!1),!r.isInStateTrue()){if(clearTimeout(r.timeout),r.hoverState="out",!r.options.delay||!r.options.delay.hide)return r.hide();r.timeout=setTimeout((function(){"out"==r.hoverState&&r.hide()}),r.options.delay.hide)}},c.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var r=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!r)return;var n=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,s=/\s?auto?\s?/i,u=s.test(a);u&&(a=a.replace(s,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var l=this.getPosition(),f=i[0].offsetWidth,d=i[0].offsetHeight;if(u){var h=a,p=this.getPosition(this.$viewport);a="bottom"==a&&l.bottom+d>p.bottom?"top":"top"==a&&l.top-dp.width?"left":"left"==a&&l.left-fa.top+a.height&&(i.top=a.top+a.height-u)}else{var c=t.left-o,l=t.left+o+r;ca.right&&(i.left=a.left+a.width-l)}return i},c.prototype.getTitle=function(){var e,t=this.$element,r=this.options;return e=t.attr("data-original-title")||("function"==typeof r.title?r.title.call(t[0]):r.title)},c.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(t){var r=this;t&&((r=e(t.currentTarget).data("bs."+this.type))||(r=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,r))),t?(r.inState.click=!r.inState.click,r.isInStateTrue()?r.enter(r):r.leave(r)):r.tip().hasClass("in")?r.leave(r):r.enter(r)},c.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},c.prototype.sanitizeHtml=function(e){return u(e,this.options.whiteList,this.options.sanitizeFn)};var f=e.fn.tooltip;e.fn.tooltip=l,e.fn.tooltip.Constructor=c,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=f,this}}(jQuery),function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");function r(r){return this.each((function(){var n=e(this),i=n.data("bs.popover"),o="object"==typeof r&&r;!i&&/destroy|hide/.test(r)||(i||n.data("bs.popover",i=new t(this,o)),"string"==typeof r&&i[r]())}))}t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),t.prototype.constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),r=this.getContent();if(this.options.html){var n=typeof r;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===n&&(r=this.sanitizeHtml(r))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===n?"html":"append"](r)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(r);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var n=e.fn.popover;e.fn.popover=r,e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(jQuery),function(e){"use strict";function t(r,n){this.$body=e(document.body),this.$scrollElement=e(r).is(document.body)?e(window):e(r),this.options=e.extend({},t.DEFAULTS,n),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function r(r){return this.each((function(){var n=e(this),i=n.data("bs.scrollspy"),o="object"==typeof r&&r;i||n.data("bs.scrollspy",i=new t(this,o)),"string"==typeof r&&i[r]()}))}t.VERSION="3.4.1",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,r="offset",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(r="position",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var t=e(this),i=t.data("target")||t.attr("href"),o=/^#./.test(i)&&e(i);return o&&o.length&&o.is(":visible")&&[[o[r]().top+n,i]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},t.prototype.process=function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.getScrollHeight(),r=this.options.offset+t-this.$scrollElement.height(),n=this.offsets,i=this.targets,o=this.activeTarget,a;if(this.scrollHeight!=t&&this.refresh(),e>=r)return o!=(a=i[i.length-1])&&this.activate(a);if(o&&e=n[a]&&(void 0===n[a+1]||e .active"),a=i&&e.support.transition&&(o.length&&o.hasClass("fade")||!!n.find("> .fade").length);function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),r.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(r[0].offsetWidth,r.addClass("in")):r.removeClass("fade"),r.parent(".dropdown-menu").length&&r.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&a?o.one("bsTransitionEnd",s).emulateTransitionEnd(t.TRANSITION_DURATION):s(),o.removeClass("in")};var n=e.fn.tab;e.fn.tab=r,e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this};var i=function(t){t.preventDefault(),r.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(e){"use strict";var t=function(r,n){this.options=e.extend({},t.DEFAULTS,n);var i=this.options.target===t.DEFAULTS.target?e(this.options.target):e(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(r),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function r(r){return this.each((function(){var n=e(this),i=n.data("bs.affix"),o="object"==typeof r&&r;i||n.data("bs.affix",i=new t(this,o)),"string"==typeof r&&i[r]()}))}t.VERSION="3.4.1",t.RESET="affix affix-top affix-bottom",t.DEFAULTS={offset:0,target:window},t.prototype.getState=function(e,t,r,n){var i=this.$target.scrollTop(),o=this.$element.offset(),a=this.$target.height();if(null!=r&&"top"==this.affixed)return i=e-n&&"bottom"},t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var e=this.$target.scrollTop(),r=this.$element.offset();return this.pinnedOffset=r.top-e},t.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var r=this.$element.height(),n=this.options.offset,i=n.top,o=n.bottom,a=Math.max(e(document).height(),e(document.body).height());"object"!=typeof n&&(o=i=n),"function"==typeof i&&(i=n.top(this.$element)),"function"==typeof o&&(o=n.bottom(this.$element));var s=this.getState(a,r,i,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var u="affix"+(s?"-"+s:""),c=e.Event(u+".bs.affix");if(this.$element.trigger(c),c.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-r-o})}};var n=e.fn.affix;e.fn.affix=r,e.fn.affix.Constructor=t,e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),n=t.data();n.offset=n.offset||{},null!=n.offsetBottom&&(n.offset.bottom=n.offsetBottom),null!=n.offsetTop&&(n.offset.top=n.offsetTop),r.call(t,n)}))}))}(jQuery)}}}},fibers:{"package.json":function e(t,r,e){e.exports={name:"fibers",version:"5.0.3",main:"fibers"}},"fibers.js":function e(t,r,e,n,i){if(process.fiberLib)e.exports=process.fiberLib;else{var o=t("fs"),a=t("path"),s=t("detect-libc");Math.random();var u=a.join(i,"bin",process.platform+"-"+process.arch+"-"+process.versions.modules+("linux"===process.platform?"-"+s.family:""),"fibers");try{process.fiberLib=e.exports=t(u).Fiber}catch(l){throw console.error("## There is an issue with `node-fibers` ##\n`"+u+".node` is missing.\n\nTry running this to fix the issue: "+process.execPath+" "+i.replace(" ","\\ ")+"/build"),console.error(l.stack||l.message||l),new Error("Missing binary. See message above.")}c(e.exports)}function c(e){try{var t=process.binding("async_wrap"),r;if(t.asyncIdStackSize instanceof Function)r=t.asyncIdStackSize;else{if(void 0===t.constants.kStackLength)throw new Error("Couldn't figure out how to get async stack size");f=t.constants.kStackLength,r=function(){return t.async_hook_fields[f]}}var n=t.popAsyncContext||t.popAsyncIds,i=t.pushAsyncContext||t.pushAsyncIds,o,a;if(!n||!i)throw new Error("Push/pop do not exist");o=void 0===t.constants.kExecutionAsyncId?t.constants.kCurrentAsyncId:t.constants.kExecutionAsyncId,a=void 0===t.constants.kTriggerAsyncId?t.constants.kCurrentTriggerId:t.constants.kTriggerAsyncId;var s=t.async_id_fields||t.async_uid_fields;function u(){for(var e=r(),t=new Array(e);e>0;--e){var i=s[o];t[e-1]={asyncId:i,triggerId:s[a]},n(i)}return t}function c(e){for(var t=0;t0)i.changeLanguage(e,n);else if(0!=s[u]){s[u]=0;var c=new XMLHttpRequest;c.overrideMimeType("application/json"),c.open("GET",u,!1),c.send(null),200===c.status?s[u]=1:s[u]=-1,r.addResourceBundle(e,a,JSON.parse(c.response)||{}),i.changeLanguage(e,n)}};r.changeLanguage=p;var b=function(e,t,r){return i.format(e,t,r)};r.format=b;var m=function(){return i.languages};r.getLanguages=m;var g=function(e,t){return i.loadLanguages(e,t)};r.loadLanguages=g;var v=function(e,t){return i.loadNamespaces(e,t)};r.loadNamespaces=v;var y=function(e,t){return i.on(e,t)};r.on=y;var w=function(e,t){return i.off(e,t)};r.off=w,n.__exportStar(t("./i18n/i18n"),r),n.__exportStar(t("./i18n/i18n.app"),r),n.__exportStar(t("./translations"),r)},i18n:{"i18n.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.fallbackKeys=r.getObjectI18nTemplate=r.translationI18nObjects=r.addObjectsI18n=r.translationI18nObject=void 0;var n=t("../index"),i=t("underscore"),o=t("clone"),a="_",s="base",u="core",c="translation",l=function(e,t){var r={lng:t,ns:c};if((0,n.exists)(e,r))return(0,n._t)(e,r)},f=function(e){return"".concat(e,"__object")},d=function(e,t){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t)},h=function(e,t){var r=d(e,t);return"".concat(r).concat("_","inlineHelpText")},p=function(e,t){var r=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","group").concat("_").concat(r)},b=function(e,t,r){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t).concat("_","options").concat("_").concat(r)},m=function(e,t){return"".concat(e).concat("_","action").concat("_").concat(t)},g=function(e,t){return"".concat(e).concat("_","listview").concat("_").concat(t)},v=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},y=function(e,t,r){var n=f(t);return l(n,e)||r||""},w=function(e,t,r,n,i){var o=d(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=w(e,s,r,n,i))}return a||n||""},_=function(e,t,r,n,i){var o=h(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=_(e,s,r,n,i))}return a||n||""},x=function(e,t,r,n){var i=p(t,r);return l(i,e)||n||""},k=function(e,t,r,n,i,o){var a=b(t,r,n),s=l(a,e);if(!s){var u=v(o);u&&"base"!=t&&"core"!=t&&(s=k(e,u,r,n,i,o))}return s||i||""},S=function(e,t,r,n,i){var o=m(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=S(e,s,r,n,i))}return a||n||""},j=function(e,t,r,n,i){var o=g(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=j(e,s,r,n,i))}return a||n||""},A=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},D=function(e){i.forEach(e.fields,(function(e,t){var r=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;return e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return r.push(A(e))}))):r.push(A(e))})),e.options=r}catch(n){console.error("convertFieldsOptions error: ",e.options,n)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return r.push({label:e,value:t})})),e.options=r)}))},E=function(e,t,r){r.label=y(e,t,r.label),i.each(r.fields,(function(n,o){if(n.label=w(e,t,o,n.label,r.datasource),n.inlineHelpText&&(n.inlineHelpText=_(e,t,o,n.inlineHelpText,r.datasource)),n.group&&(n.group=x(e,t,n.group,n.group)),n.options){var a=[];i.each(n.options,(function(n){if(i.has(n,"value")){var s=k(e,t,o,n.value,n.label,r.datasource);a.push(i.extend({},n,{label:s}))}else a.push(n)})),n.options=a}})),i.each(r.actions,(function(n,i){n.label=S(e,t,i,n.label,r.datasource)})),i.each(r.list_views,(function(n,i){n.label=j(e,t,i,n.label,r.datasource)}))};r.translationI18nObject=E;var C=function(e){i.each(e,(function(e){(0,n.addResourceBundle)(e.lng,c,e.data,!0,!0)}))};r.addObjectsI18n=C;var O=function(e,t){i.each(t,(function(t,n){(0,r.translationI18nObject)(e,n,t)}))};r.translationI18nObjects=O;var T=function(e,t,r){var n=o(r);D(n);var a={};return a[f(t)]=y(e,t,n.label),i.each(n.fields,(function(r,o){a[d(t,o)]=w(e,t,o,r.label),r.inlineHelpText&&(a[h(t,o)]=_(e,t,o,r.inlineHelpText,n.datasource)),r.group&&(a[p(t,r.group)]=x(e,t,r.group,r.group)),r.options&&i.each(r.options,(function(r){i.has(r,"value")&&(a[b(t,o,r.value)]=k(e,t,o,r.value,r.label))}))})),i.each(n.actions,(function(r,n){a[m(t,n)]=S(e,t,n,r.label)})),i.each(n.list_views,(function(r,n){a[g(t,n)]=j(e,t,n,r.label)})),a};r.getObjectI18nTemplate=T,r.fallbackKeys={getObjectLabelKey:f,getObjectFieldLabelKey:d,getObjectFieldInlineHelpTextLabelKey:h,getObjectFieldGroupKey:p,getObjectFieldOptionsLabelKey:b,getObjectActionLabelKey:m,getObjectListviewLabelKey:g}},"i18n.app.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.appFallbackKeys=r.getAppI18nTemplate=r.translationI18nApps=r.translationI18nMenus=void 0;var n=t("../index"),i=t("underscore"),o=t("clone"),a="translation",s="_",u=function(e,t){var r={lng:t,ns:a};if((0,n.exists)(e,r))return(0,n._t)(e,r)},c=function(e){return"app".concat("_").concat(e).concat("_","name")},l=function(e){return"app".concat("_").concat(e).concat("_","description")},f=function(e,t){var r=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","tab_group").concat("_").concat(r)},d=function(e){return"menu".concat("_").concat(e)},h=function(e){return"tab".concat("_").concat(e)},p=function(e,t,r){var n=c(t);return u(n,e)||r||""},b=function(e,t,r){var n=l(t);return u(n,e)||r||""},m=function(e,t,r){var n=d(t);return u(n,e)||r||""},g=function(e,t,n){n.label=p(e,t,n.label||n.name),n.description=b(e,t,n.description),(0,r.translationI18nMenus)(e,n.admin_menus)},v=function(e,t){i.each(t,(function(t){var r=m(e,t._id,t.label||t.name);t.label=r,t.name=r}))};r.translationI18nMenus=v;var y=function(e,t){i.each(t,(function(t,r){g(e,r,t)}))};r.translationI18nApps=y;var w=function(e,t,r){var n=o(r),a={};return a[c(t)]=p(e,t,n.label||n.name),a[l(t)]=b(e,t,n.description),i.each(n.admin_menus,(function(t){a[d(t._id)]=m(e,t._id,t.label||t.name)})),a};r.getAppI18nTemplate=w,r.appFallbackKeys={getAppLabelKey:c,getAppDescriptionKey:l,getAppGroupKey:f,getMenuLabelKey:d,getTabKey:h}}},translations:{"index.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.SteedosTranslationPrefixKeys=r.convertObject=void 0;var n=t("tslib"),i=t("underscore");n.__exportStar(t("./objectTranslation"),r),n.__exportStar(t("./translation"),r),n.__exportStar(t("./templates/objectTranslation"),r),n.__exportStar(t("./templates/translation"),r);var o=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},a=function(e){i.forEach(e.fields,(function(e,t){var r=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return r.push(o(e))}))):r.push(o(e))})),e.options=r}catch(n){console.error("convertFieldsOptions error: ",e.options,n)}else if(e.options&&i.isArray(e.options))try{i.forEach(e.options,(function(e){i.isString(e)?r.push(o(e)):r.push(e)})),e.options=r}catch(n){console.error("Creator.convertFieldsOptions",e.options,n)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return r.push({label:e,value:t})})),e.options=r)}))},s;r.convertObject=a,function(e){e.Object="CustomObject",e.Field="CustomField",e.Action="CustomAction",e.Listview="CustomListview",e.Permission="CustomPermission",e.ValidationRule="CustomValidationRule",e.Application="CustomApplication",e.Tab="CustomTabs",e.Permissionset="CustomPermissionset",e.Profile="CustomProfile",e.Report="CustomReport",e.Workflow="Workflow",e.Layout="Layout",e.Client="Client",e.Server="Server",e.Function="Function",e.Router="Router",e.Trigger="Trigger"}(s=r.SteedosTranslationPrefixKeys||(r.SteedosTranslationPrefixKeys={}))},"objectTranslation.js":function e(t,r,e,n){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.addObjectsTranslation=r.getObjectTranslationTemplate=r.translationObjects=r.translationObject=r.translationObjectLabel=void 0;var i=t("underscore"),o=t("./"),a=t("../index"),s=t("./index"),u=t("../i18n/i18n"),c=t("lodash"),l=t("crypto"),f,d=(0,t("@steedos/cachers").getCacher)("lru.translations.objects");function h(e){var t;return l.createHash("md5").update(e).digest("hex")}var p=function(e,t){return"".concat(e,"_").concat(t.name,"_").concat(h(JSON.stringify(t)))},b=t("clone"),m=".",g="base",v="core",y="translation",w="object",_="field",x="listview",k="action",S=function(e,t){var r={lng:t,ns:y,keySeparator:!1};if((0,a.exists)(e,r))return(0,a._t)(e,r)},j=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},A=function(e){switch(e){case"object":return o.SteedosTranslationPrefixKeys.Object;case"field":return o.SteedosTranslationPrefixKeys.Field;case"listview":return o.SteedosTranslationPrefixKeys.Listview;case"action":return o.SteedosTranslationPrefixKeys.Action;default:return"CustomLabels"}},D=function(e){var t;return[A(),e].join(".")},E=function(e){var t;return[A("object"),e,"label"].join(".")},C=function(e){var t;return[A("object"),e,"description"].join(".")},O=function(e,t){var r;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"label"].join(".")},T=function(e,t){var r;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"help"].join(".")},M=function(e,t){var r;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"description"].join(".")},B=function(e,t){var r=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_"),n;return[A("field"),e,"group",r].join(".")},I=function(e,t,r){var n;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"options",r].join(".")},R=function(e,t){var r;return[A("action"),e,t].join(".")},N=function(e,t){var r;return[A("listview"),e,t].join(".")},F=function(e,t,r){var n,i=[E(t)],o=u.fallbackKeys.getObjectLabelKey(t);return o&&i.push(o),S(i,e)||r||""};r.translationObjectLabel=F;var P=function(e,t,r){var n=C(t);return S(n,e)||r||""},L=function(e,t,r,n,i,o){var a,s=[O(t,r)],c=u.fallbackKeys.getObjectFieldLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=L(e,f,r,n,i))}return l||n||""},q=function(e,t,r,n,i,o){var a,s=[T(t,r)],c=u.fallbackKeys.getObjectFieldInlineHelpTextLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=q(e,f,r,n,i))}return l||n||""},z=function(e,t,r,n,i,o){var a=M(t,r),s,u=S([a],e);if(1!=o&&!u){var c=j(i);c&&"base"!=t&&"core"!=t&&(u=z(e,c,r,n,i))}return u||n||""},U=function(e,t,r,n,i,o){var a,s=[B(t,r)],c=u.fallbackKeys.getObjectFieldGroupKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=U(e,f,r,n,i))}return l||n||""},H=function(e,t,r,n,i,o,a){var s,c=[I(t,r,n)],l=u.fallbackKeys.getObjectFieldOptionsLabelKey(t,r,n);l&&c.push(l);var f=S(c,e);if(1!=a&&!f){var d=j(o);d&&"base"!=t&&"core"!=t&&(f=H(e,d,r,n,i,o))}return f||i||""},W=function(e,t,r,n,i,o){var a,s=[R(t,r)],c=u.fallbackKeys.getObjectActionLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=W(e,f,r,n,i))}return l||n||""},$=function(e,t,r,n,i,o){var a,s=[N(t,r)],c=u.fallbackKeys.getObjectListviewLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=$(e,f,r,n,i))}return l||n||""},Y=function(e,t,n,o,a){void 0===a&&(a=!1);var u=p(e,n);"test_obj_layout1"===t&&console.log("translationObject",t,u);var l=d.get(u);if(l)return Object.assign(n,(0,c.cloneDeep)(l));o&&(0,s.convertObject)(n),n.label=(0,r.translationObjectLabel)(e,t,n.label),n.description=P(e,t,n.description),i.each(n.fields,(function(r,o){if(r.label=L(e,t,o,r.label,n.datasource,a),r.inlineHelpText&&(r.inlineHelpText=q(e,t,o,r.inlineHelpText,n.datasource,a)),r.group&&(r.group=U(e,t,r.group,r.group,n.datasource,a)),r.options){var s=[];i.each(r.options,(function(r){if(i.has(r,"value")){var u=H(e,t,o,r.value,r.label,n.datasource,a);s.push(i.extend({},r,{label:u}))}else s.push(r)})),r.options=s}})),i.each(n.actions,(function(r,i){r.label=W(e,t,i,r.label,n.datasource,a)})),i.each(n.list_views,(function(r,i){r.label=$(e,t,i,r.label,n.datasource,a)})),d.set(u,(0,c.cloneDeep)(n))};r.translationObject=Y;var V=function(e,t){i.each(t,(function(t,n){(0,r.translationObject)(e,n,t)}))};r.translationObjects=V;var K=function(e,t,n){var o=b(n);(0,s.convertObject)(o);var a={};return a[E(t)]=(0,r.translationObjectLabel)(e,t,o.label),a[C(t)]=P(e,t,o.description),i.each(o.fields,(function(r,n){a[O(t,n)]=L(e,t,n,r.label),r.inlineHelpText&&(a[T(t,n)]=q(e,t,n,r.inlineHelpText,o.datasource)),r.description&&(a[M(t,n)]=z(e,t,n,r.description,o.datasource)),r.group&&(a[B(t,r.group)]=U(e,t,r.group,r.group,o.datasource)),r.options&&i.each(r.options,(function(r){i.has(r,"value")&&(a[I(t,n,r.value)]=H(e,t,n,r.value,r.label))}))})),i.each(o.actions,(function(r,n){a[R(t,n)]=W(e,t,n,r.label)})),i.each(o.list_views,(function(r,n){a[N(t,n)]=$(e,t,n,r.label)})),a};function G(e,t){var r=b(e);(0,s.convertObject)(r);var n={},o=r.name;return o||console.error("Error: Invalid objectTranslation:"+t),n[E(o)]=r.label,n[C(o)]=r.description,i.each(r.fields,(function(e,t){n[O(o,t)]=e.label,e.help&&(n[T(o,t)]=e.help),e.description&&(n[M(o,t)]=e.description),e.options&&i.each(e.options,(function(e){i.has(e,"value")&&(n[I(o,t,e.value)]=e.label)}))})),i.each(r.groups,(function(e,t){n[B(o,t)]=e})),i.each(r.actions,(function(e,t){n[R(o,t)]=e.label})),i.each(r.listviews,(function(e,t){n[N(o,t)]=e.label})),i.each(r.CustomLabels,(function(e,t){n[D(t)]=e})),n}r.getObjectTranslationTemplate=K;var X=function(e){i.each(e,(function(e){var t=G(e.data,e.__filename);(0,a.addResourceBundle)(e.lng,y,t,!0,!0)}))};r.addObjectsTranslation=X},"translation.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.addTranslations=r.convertTranslation=r.convertTranslationData=r.getAppTranslationTemplate=r.translationApps=r.translationMenus=r.translationApp=r.translationTabLabel=r.translationTabGroup=void 0;var n=t("../index"),i=t("underscore"),o=t("./"),a=t("../i18n/i18n.app"),s=t("clone"),u="translation",c=".",l="app",f="menu",d="tab",h=function(e){switch(e){case"app":return o.SteedosTranslationPrefixKeys.Application;case"tab":return o.SteedosTranslationPrefixKeys.Tab;default:return"CustomLabels"}},p=function(e){var t;return[h(),e].join(".")},b=function(e,t){var r={lng:t,ns:u,keySeparator:!1};if((0,n.exists)(e,r))return(0,n._t)(e,r)},m=function(e){var t;return[h("app"),e,"name"].join(".")},g=function(e){var t;return[h("app"),e,"description"].join(".")},v=function(e,t){var r,n;return[h("app"),e,"groups",t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_")].join(".")},y=function(e){var t;return[h("menu"),"menu_".concat(e)].join(".")},w=function(e){var t;return[h("tab"),e].join(".")},_=function(e,t,r){var n,i=[m(t)],o=a.appFallbackKeys.getAppLabelKey(t);return o&&i.push(o),b(i,e)||r||""},x=function(e,t,r){var n,i=[g(t)],o=a.appFallbackKeys.getAppDescriptionKey(t);return o&&i.push(o),b(i,e)||r||""},k=function(e,t,r,n){var i,o=[v(t,r)],s=a.appFallbackKeys.getAppGroupKey(t,r);return s&&o.push(s),b(o,e)||n||""};r.translationTabGroup=k;var S=function(e,t,r){var n,i=[y(t)],o=a.appFallbackKeys.getMenuLabelKey(t);return o&&i.push(o),b(i,e)||r||""},j=function(e,t,r){var n,i=[w(t)],o=a.appFallbackKeys.getTabKey(t);return o&&i.push(o),b(i,e)||r||""};r.translationTabLabel=j;var A=function(e,t,n){n.label=_(e,t,n.label||n.name),n.description=x(e,t,n.description),i.each(n.tab_groups,(function(i,o){n.tab_groups[o].id=i.id||i.group_name,n.tab_groups[o].group_name=(0,r.translationTabGroup)(e,t,i.group_name,i.group_name)})),(0,r.translationMenus)(e,n.admin_menus)};r.translationApp=A;var D=function(e,t){i.each(t,(function(t){var r=S(e,t._id,t.label||t.name);t.label=r,t.name=r}))};r.translationMenus=D;var E=function(e,t){i.each(t,(function(t,n){(0,r.translationApp)(e,n,t)}))};r.translationApps=E;var C=function(e,t,r){var n=s(r),o={};return o[m(t)]=_(e,t,n.label||n.name),o[g(t)]=x(e,t,n.description),i.each(n.admin_menus,(function(t){o[y(t._id)]=S(e,t._id,t.label||t.name)})),o};r.getAppTranslationTemplate=C;var O=function(e,t,r){i.isArray(r)?i.each(r,(function(e){O(e,"",e)})):r&&i.each(i.keys(r),(function(n){var o=t?"".concat(t,".").concat(n):n,a=r[n];"object"==typeof a?i.isArray(a)?i.each(a,(function(e){O(e,o,a)})):O(e,o,a):e[o]=a}))};function T(e){for(var t in e)"object"==typeof e[t]&&O(e,t,e[t]);return e}r.convertTranslationData=T;var M=function(e){var t=s(e),r={};return i.each(t.CustomApplications,(function(e,t){r[m(t)]=e.name,r[g(t)]=e.description,i.each(e.groups,(function(e,n){r[v(t,n)]=e}))})),i.each(t.CustomTabs,(function(e,t){r[w(t)]=e})),i.each(t.CustomLabels,(function(e,t){var n;if("simpleschema"!=t&&i.isObject(e)){var o=T(((n={})[t]=e,n));i.each(o,(function(e,t){i.isObject(e)||(r[p(t)]=e)}))}else r[p(t)]=e})),r};r.convertTranslation=M;var B=function(e){i.each(e,(function(e){var t=(0,r.convertTranslation)(e.data);(0,n.addResourceBundle)(e.lng,u,t,!0,!0)}))};r.addTranslations=B},templates:{"objectTranslation.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getObjectMetadataTranslationTemplate=void 0;var n=t("underscore"),i=t("../index"),o=t("clone");function a(e,t){var r={};return n.each(e,(function(e){r[e]="help"===e?t.inlineHelpText||"":t[e]||""})),r}function s(e){return a(["label","description"],e)}function u(e){switch(e.type){case"select":return a(["label","help","options","description"],e);default:return a(["label","help","description"],e)}}function c(e){return a(["label"],e)}function l(e){return a(["label"],e)}function f(e){var t={};return n.each(e,(function(e,r){t[r]=u(e)})),t}function d(e){var t={};return n.each(e,(function(e,r){t[r]=l(e)})),t}function h(e){var t={};return n.each(e,(function(e,r){t[r]=c(e)})),t}function p(e,t){var r={};return n.each(e,(function(e,n){if(e.group){var i=e.group.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");r[i]=t[n].group}})),r}var b=function(e,t,r,a){void 0===a&&(a=!1);var u=o(r);1!=a&&(0,i.translationObject)(e,t,u,!0,a);var c=Object.assign({},s(u));c=Object.assign({},c,{fields:f(u.fields)});var l=p(r.fields,u.fields);n.isEmpty(l)||(c=Object.assign({},c,{groups:l}));var b=h(u.list_views);n.isEmpty(b)||(c=Object.assign({},c,{listviews:b}));var m=d(u.actions);return n.isEmpty(m)||(c=Object.assign({},c,{actions:m})),Object.assign({name:t},c)};r.getObjectMetadataTranslationTemplate=b},"translation.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getAppMetadataTranslationTemplate=void 0;var n=t("underscore"),i=t("../index"),o=t("clone");function a(e,t){var r={};return n.each(e,(function(e){r[e]=t[e]||""})),r}function s(e){var t={groups:{}};return e?(n.each(e,(function(e){var r=e.group_name.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t.groups[r]=e.group_name})),t):{}}var u=function(e){return Object.assign({},a(["name","description"],e),s(e.tab_groups))},c=function(e){var t={};return n.each(e,(function(e,r){t[r]=r})),t},l=function(e){var t={};return n.each(e,(function(e){var r=e.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t[r]=e})),t},f=function(e,t,r){var n,a=o(r);(0,i.translationApp)(e,t,a);var s={},f;return a.tab_items?s=c(a.tab_items):a.tabs&&(s=l(a.tabs)),Object.assign({},{CustomApplications:(n={},n[t]=u(a),n)},{CustomTabs:s})};r.getAppMetadataTranslationTemplate=f}}}},node_modules:{i18next:{"package.json":function e(t,r,e){e.exports={name:"i18next",version:"19.9.2",main:"./dist/cjs/i18next.js",module:"./dist/esm/i18next.js"}},dist:{cjs:{"i18next.js":function e(t,r,e){"use strict";var n=t("@babel/runtime/helpers/typeof"),i=t("@babel/runtime/helpers/objectSpread"),o=t("@babel/runtime/helpers/classCallCheck"),a=t("@babel/runtime/helpers/createClass"),s=t("@babel/runtime/helpers/possibleConstructorReturn"),u=t("@babel/runtime/helpers/getPrototypeOf"),c=t("@babel/runtime/helpers/assertThisInitialized"),l=t("@babel/runtime/helpers/inherits");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=f(n),h=f(i),p=f(o),b=f(a),m=f(s),g=f(u),v=f(c),y=f(l),w={type:"logger",log:function e(t){this.output("log",t)},warn:function e(t){this.output("warn",t)},error:function e(t){this.output("error",t)},output:function e(t,r){console&&console[t]&&console[t].apply(console,r)}},_,x=new(function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};p.default(this,e),this.init(t,r)}return b.default(e,[{key:"init",value:function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=t||w,this.options=r,this.debug=r.debug}},{key:"setDebug",value:function e(t){this.debug=t}},{key:"log",value:function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?r-1:0),i=1;i-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(i())return{};var a=n(o.shift());!e[a]&&r&&(e[a]=new r),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return i()?{}:{obj:e,k:n(o.shift())}}function E(e,t,r){var n=D(e,t,Object),i,o;n.obj[n.k]=r}function C(e,t,r,n){var i=D(e,t,Object),o=i.obj,a=i.k;o[a]=o[a]||[],n&&(o[a]=o[a].concat(r)),n||o[a].push(r)}function O(e,t){var r=D(e,t),n=r.obj,i=r.k;if(n)return n[i]}function T(e,t,r){var n=O(e,r);return void 0!==n?n:O(t,r)}function M(e,t,r){for(var n in t)"__proto__"!==n&&"constructor"!==n&&(n in e?"string"==typeof e[n]||e[n]instanceof String||"string"==typeof t[n]||t[n]instanceof String?r&&(e[n]=t[n]):M(e[n],t[n],r):e[n]=t[n]);return e}function B(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var I={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function R(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return I[e]})):e}var N="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,F=function(e){function t(e){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return p.default(this,t),r=m.default(this,g.default(t).call(this)),N&&k.call(v.default(r)),r.data=e||{},r.options=n,void 0===r.options.keySeparator&&(r.options.keySeparator="."),r}return y.default(t,e),b.default(t,[{key:"addNamespaces",value:function e(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function e(t){var r=this.options.ns.indexOf(t);r>-1&&this.options.ns.splice(r,1)}},{key:"getResource",value:function e(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,a=[t,r];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(o?n.split(o):n)),t.indexOf(".")>-1&&(a=t.split(".")),O(this.data,a)}},{key:"addResource",value:function e(t,r,n,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,r];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(i=r,r=(s=t.split("."))[1]),this.addNamespaces(r),E(this.data,s,i),o.silent||this.emit("added",t,r,n,i)}},{key:"addResources",value:function e(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)"string"!=typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(t,r,o,n[o],{silent:!0});i.silent||this.emit("added",t,r,n)}},{key:"addResourceBundle",value:function e(t,r,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},s=[t,r];t.indexOf(".")>-1&&(i=n,n=r,r=(s=t.split("."))[1]),this.addNamespaces(r);var u=O(this.data,s)||{};i?M(u,n,o):u=h.default({},u,n),E(this.data,s,u),a.silent||this.emit("added",t,r,n)}},{key:"removeResourceBundle",value:function e(t,r){this.hasResourceBundle(t,r)&&delete this.data[t][r],this.removeNamespaces(r),this.emit("removed",t,r)}},{key:"hasResourceBundle",value:function e(t,r){return void 0!==this.getResource(t,r)}},{key:"getResourceBundle",value:function e(t,r){return r||(r=this.options.defaultNS),"v1"===this.options.compatibilityAPI?h.default({},{},this.getResource(t,r)):this.getResource(t,r)}},{key:"getDataByLanguage",value:function e(t){return this.data[t]}},{key:"toJSON",value:function e(){return this.data}}]),t}(k),P={processors:{},addPostProcessor:function e(t){this.processors[t.name]=t},handle:function e(t,r,n,i,o){var a=this;return t.forEach((function(e){a.processors[e]&&(r=a.processors[e].process(r,n,i,o))})),r}},L={},q=function(e){function t(e){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return p.default(this,t),r=m.default(this,g.default(t).call(this)),N&&k.call(v.default(r)),A(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,v.default(r)),r.options=n,void 0===r.options.keySeparator&&(r.options.keySeparator="."),r.logger=x.create("translator"),r}return y.default(t,e),b.default(t,[{key:"changeLanguage",value:function e(t){t&&(this.language=t)}},{key:"exists",value:function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=this.resolve(t,r);return n&&void 0!==n.res}},{key:"extractFromKey",value:function e(t,r){var n=void 0!==r.nsSeparator?r.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var i=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,o=r.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var a=t.match(this.interpolator.nestingRegexp);if(a&&a.length>0)return{key:t,namespaces:o};var s=t.split(n);(n!==i||n===i&&this.options.ns.indexOf(s[0])>-1)&&(o=s.shift()),t=s.join(i)}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}}},{key:"translate",value:function e(r,n,i){var o=this;if("object"!==d.default(n)&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),n||(n={}),null==r)return"";Array.isArray(r)||(r=[String(r)]);var a=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,s=this.extractFromKey(r[r.length-1],n),u=s.key,c=s.namespaces,l=c[c.length-1],f=n.lng||this.language,p=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f&&"cimode"===f.toLowerCase()){if(p){var b=n.nsSeparator||this.options.nsSeparator;return l+b+u}return u}var m=this.resolve(r,n),g=m&&m.res,v=m&&m.usedKey||u,y=m&&m.exactUsedKey||u,w=Object.prototype.toString.apply(g),_=["[object Number]","[object Function]","[object RegExp]"],x=void 0!==n.joinArrays?n.joinArrays:this.options.joinArrays,k=!this.i18nFormat||this.i18nFormat.handleAsObject,S="string"!=typeof g&&"boolean"!=typeof g&&"number"!=typeof g;if(k&&g&&S&&_.indexOf(w)<0&&("string"!=typeof x||"[object Array]"!==w)){if(!n.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,g,n):"key '".concat(u," (").concat(this.language,")' returned an object instead of string.");if(a){var j="[object Array]"===w,A=j?[]:{},D=j?y:v;for(var E in g)if(Object.prototype.hasOwnProperty.call(g,E)){var C="".concat(D).concat(a).concat(E);A[E]=this.translate(C,h.default({},n,{joinArrays:!1,ns:c})),A[E]===C&&(A[E]=g[E])}g=A}}else if(k&&"string"==typeof x&&"[object Array]"===w)(g=g.join(x))&&(g=this.extendTranslation(g,r,n,i));else{var O=!1,T=!1,M=void 0!==n.count&&"string"!=typeof n.count,B=t.hasDefaultValue(n),I=M?this.pluralResolver.getSuffix(f,n.count):"",R=n["defaultValue".concat(I)]||n.defaultValue;!this.isValidLookup(g)&&B&&(O=!0,g=R),this.isValidLookup(g)||(T=!0,g=u);var N=B&&R!==g&&this.options.updateMissing;if(T||O||N){if(this.logger.log(N?"updateKey":"missingKey",f,l,u,N?R:g),a){var F=this.resolve(u,h.default({},n,{keySeparator:!1}));F&&F.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var P=[],L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if("fallback"===this.options.saveMissingTo&&L&&L[0])for(var q=0;q1&&void 0!==arguments[1]?arguments[1]:{},i,o,a,s,u;return"string"==typeof t&&(t=[t]),t.forEach((function(e){if(!r.isValidLookup(i)){var t=r.extractFromKey(e,n),c=t.key;o=c;var l=t.namespaces;r.options.fallbackNS&&(l=l.concat(r.options.fallbackNS));var f=void 0!==n.count&&"string"!=typeof n.count,d=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,h=n.lngs?n.lngs:r.languageUtils.toResolveHierarchy(n.lng||r.language,n.fallbackLng);l.forEach((function(e){r.isValidLookup(i)||(u=e,!L["".concat(h[0],"-").concat(e)]&&r.utils&&r.utils.hasLoadedNamespace&&!r.utils.hasLoadedNamespace(u)&&(L["".concat(h[0],"-").concat(e)]=!0,r.logger.warn('key "'.concat(o,'" for languages "').concat(h.join(", "),'" won\'t get resolved as namespace "').concat(u,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),h.forEach((function(t){if(!r.isValidLookup(i)){s=t;var o=c,u=[o],l,h;if(r.i18nFormat&&r.i18nFormat.addLookupKeys)r.i18nFormat.addLookupKeys(u,c,t,e,n);else f&&(l=r.pluralResolver.getSuffix(t,n.count)),f&&d&&u.push(o+l),d&&u.push(o+="".concat(r.options.contextSeparator).concat(n.context)),f&&u.push(o+=l);for(;h=u.pop();)r.isValidLookup(i)||(a=h,i=r.getResource(t,e,h,n))}})))}))}})),{res:i,usedKey:o,exactUsedKey:a,usedLng:s,usedNS:u}}},{key:"isValidLookup",value:function e(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}},{key:"getResource",value:function e(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,r,n,i):this.resourceStore.getResource(t,r,n,i)}}],[{key:"hasDefaultValue",value:function e(t){var r="defaultValue";for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&r===n.substring(0,r.length)&&void 0!==t[n])return!0;return!1}}]),t}(k);function z(e){return e.charAt(0).toUpperCase()+e.slice(1)}var U=function(){function e(t){p.default(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=x.create("languageUtils")}return b.default(e,[{key:"getScriptPartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return null;var r=t.split("-");return 2===r.length?null:(r.pop(),"x"===r[r.length-1].toLowerCase()?null:this.formatLanguageCode(r.join("-")))}},{key:"getLanguagePartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return t;var r=t.split("-");return this.formatLanguageCode(r[0])}},{key:"formatLanguageCode",value:function e(t){if("string"==typeof t&&t.indexOf("-")>-1){var r=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),r.indexOf(n[1].toLowerCase())>-1&&(n[1]=z(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),r.indexOf(n[1].toLowerCase())>-1&&(n[1]=z(n[1].toLowerCase())),r.indexOf(n[2].toLowerCase())>-1&&(n[2]=z(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function e(t){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(t)}},{key:"isSupportedCode",value:function e(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}},{key:"getBestMatchFromCodes",value:function e(t){var r=this,n;return t?(t.forEach((function(e){if(!n){var t=r.formatLanguageCode(e);r.options.supportedLngs&&!r.isSupportedCode(t)||(n=t)}})),!n&&this.options.supportedLngs&&t.forEach((function(e){if(!n){var t=r.getLanguagePartFromCode(e);if(r.isSupportedCode(t))return n=t;n=r.options.supportedLngs.find((function(e){if(0===e.indexOf(t))return e}))}})),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n):null}},{key:"getFallbackCodes",value:function e(t,r){if(!t)return[];if("function"==typeof t&&(t=t(r)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!r)return t.default||[];var n=t[r];return n||(n=t[this.getScriptPartFromCode(r)]),n||(n=t[this.formatLanguageCode(r)]),n||(n=t[this.getLanguagePartFromCode(r)]),n||(n=t.default),n||[]}},{key:"toResolveHierarchy",value:function e(t,r){var n=this,i=this.getFallbackCodes(r||this.options.fallbackLng||[],t),o=[],a=function e(t){t&&(n.isSupportedCode(t)?o.push(t):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(t)))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(t))):"string"==typeof t&&a(this.formatLanguageCode(t)),i.forEach((function(e){o.indexOf(e)<0&&a(n.formatLanguageCode(e))})),o}}]),e}(),H=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],W={1:function e(t){return Number(t>1)},2:function e(t){return Number(1!=t)},3:function e(t){return 0},4:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function e(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function e(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function e(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function e(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function e(t){return Number(t>=2)},10:function e(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function e(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function e(t){return Number(t%10!=1||t%100==11)},13:function e(t){return Number(0!==t)},14:function e(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function e(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function e(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function e(t){return Number(0==t?0:1==t?1:2)},19:function e(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function e(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function e(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function e(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}};function $(){var e={};return H.forEach((function(t){t.lngs.forEach((function(r){e[r]={numbers:t.nr,plurals:W[t.fc]}}))})),e}var Y=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};p.default(this,e),this.languageUtils=t,this.options=r,this.logger=x.create("pluralResolver"),this.rules=$()}return b.default(e,[{key:"addRule",value:function e(t,r){this.rules[t]=r}},{key:"getRule",value:function e(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function e(t){var r=this.getRule(t);return r&&r.numbers.length>1}},{key:"getPluralFormsOfKey",value:function e(t,r){return this.getSuffixes(t).map((function(e){return r+e}))}},{key:"getSuffixes",value:function e(t){var r=this,n=this.getRule(t);return n?n.numbers.map((function(e){return r.getSuffix(t,e)})):[]}},{key:"getSuffix",value:function e(t,r){var n=this,i=this.getRule(t);if(i){var o=i.noAbs?i.plurals(r):i.plurals(Math.abs(r)),a=i.numbers[o];this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]&&(2===a?a="plural":1===a&&(a=""));var s=function e(){return n.options.prepend&&a.toString()?n.options.prepend+a.toString():a.toString()};return"v1"===this.options.compatibilityJSON?1===a?"":"number"==typeof a?"_plural_".concat(a.toString()):s():"v2"===this.options.compatibilityJSON?s():this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]?s():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),""}}]),e}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};p.default(this,e),this.logger=x.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return b.default(e,[{key:"init",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});var r=t.interpolation;this.escape=void 0!==r.escape?r.escape:R,this.escapeValue=void 0===r.escapeValue||r.escapeValue,this.useRawValueToEscape=void 0!==r.useRawValueToEscape&&r.useRawValueToEscape,this.prefix=r.prefix?B(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?B(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?B(r.nestingPrefix):r.nestingPrefixEscaped||B("$t("),this.nestingSuffix=r.nestingSuffix?B(r.nestingSuffix):r.nestingSuffixEscaped||B(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=void 0!==r.alwaysFormat&&r.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function e(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function e(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,"g");var r="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(r,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function e(t,r,n,i){var o=this,a,s,u,c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function l(e){return e.replace(/\$/g,"$$$$")}var f=function e(t){if(t.indexOf(o.formatSeparator)<0){var a=T(r,c,t);return o.alwaysFormat?o.format(a,void 0,n):a}var s=t.split(o.formatSeparator),u=s.shift().trim(),l=s.join(o.formatSeparator).trim();return o.format(T(r,c,u),l,n,i)};this.resetRegExp();var d=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,h=i&&i.interpolation&&i.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,p;return[{regex:this.regexpUnescape,safeValue:function e(t){return l(t)}},{regex:this.regexp,safeValue:function e(t){return o.escapeValue?l(o.escape(t)):l(t)}}].forEach((function(e){for(u=0;a=e.regex.exec(t);){if(void 0===(s=f(a[1].trim())))if("function"==typeof d){var r=d(t,a,i);s="string"==typeof r?r:""}else{if(h){s=a[0];continue}o.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(t)),s=""}else"string"==typeof s||o.useRawValueToEscape||(s=j(s));if(t=t.replace(a[0],e.safeValue(s)),e.regex.lastIndex=0,++u>=o.maxReplaces)break}})),t}},{key:"nest",value:function e(t,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o,a,s=h.default({},i);function u(e,t){var r=this.nestingOptionsSeparator;if(e.indexOf(r)<0)return e;var n=e.split(new RegExp("".concat(r,"[ ]*{"))),i="{".concat(n[1]);e=n[0],i=(i=this.interpolate(i,s)).replace(/'/g,'"');try{s=JSON.parse(i),t&&(s=h.default({},t,s))}catch(o){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),o),"".concat(e).concat(r).concat(i)}return delete s.defaultValue,e}for(s.applyPostProcessor=!1,delete s.defaultValue;o=this.nestingRegexp.exec(t);){var c=[],l=!1;if(o[0].includes(this.formatSeparator)&&!/{.*}/.test(o[1])){var f=o[1].split(this.formatSeparator).map((function(e){return e.trim()}));o[1]=f.shift(),c=f,l=!0}if((a=r(u.call(this,o[1].trim(),s),s))&&o[0]===t&&"string"!=typeof a)return a;"string"!=typeof a&&(a=j(a)),a||(this.logger.warn("missed to resolve ".concat(o[1]," for nesting ").concat(t)),a=""),l&&(a=c.reduce((function(e,t){return n.format(e,t,i.lng,i)}),a.trim())),t=t.replace(o[0],a),this.regexp.lastIndex=0}return t}}]),e}();function K(e,t){for(var r=e.indexOf(t);-1!==r;)e.splice(r,1),r=e.indexOf(t)}var G=function(e){function t(e,r,n){var i,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return p.default(this,t),i=m.default(this,g.default(t).call(this)),N&&k.call(v.default(i)),i.backend=e,i.store=r,i.services=n,i.languageUtils=n.languageUtils,i.options=o,i.logger=x.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(n,o.backend,o),i}return y.default(t,e),b.default(t,[{key:"queueLoad",value:function e(t,r,n,i){var o=this,a=[],s=[],u=[],c=[];return t.forEach((function(e){var t=!0;r.forEach((function(r){var i="".concat(e,"|").concat(r);!n.reload&&o.store.hasResourceBundle(e,r)?o.state[i]=2:o.state[i]<0||(1===o.state[i]?s.indexOf(i)<0&&s.push(i):(o.state[i]=1,t=!1,s.indexOf(i)<0&&s.push(i),a.indexOf(i)<0&&a.push(i),c.indexOf(r)<0&&c.push(r)))})),t||u.push(e)})),(a.length||s.length)&&this.queue.push({pending:s,loaded:{},errors:[],callback:i}),{toLoad:a,pending:s,toLoadLanguages:u,toLoadNamespaces:c}}},{key:"loaded",value:function e(t,r,n){var i=t.split("|"),o=i[0],a=i[1];r&&this.emit("failedLoading",o,a,r),n&&this.store.addResourceBundle(o,a,n),this.state[t]=r?-1:2;var e={};this.queue.forEach((function(n){C(n.loaded,[o],a),K(n.pending,t),r&&n.errors.push(r),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach((function(t){e[t]||(e[t]=[]),n.loaded[t].length&&n.loaded[t].forEach((function(r){e[t].indexOf(r)<0&&e[t].push(r)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",e),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function e(t,r,n){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,s=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[n](t,r,(function(e,u){e&&u&&o<5?setTimeout((function(){i.read.call(i,t,r,n,o+1,2*a,s)}),a):s(e,u)})):s(null,{})}},{key:"prepareLoading",value:function e(t,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof r&&(r=[r]);var a=this.queueLoad(t,r,i,o);if(!a.toLoad.length)return a.pending.length||o(),null;a.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function e(t,r,n){this.prepareLoading(t,r,{},n)}},{key:"reload",value:function e(t,r,n){this.prepareLoading(t,r,{reload:!0},n)}},{key:"loadOne",value:function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=t.split("|"),o=i[0],a=i[1];this.read(o,a,"read",void 0,void 0,(function(e,i){e&&r.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(o," failed"),e),!e&&i&&r.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(o),i),r.loaded(t,e,i)}))}},{key:"saveMissing",value:function e(t,r,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(r)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(r,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(t,r,n,i,null,h.default({},a,{isUpdate:o})),t&&t[0]&&this.store.addResource(t[0],r,n,i))}}]),t}(k);function X(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function e(t){var r={};if("object"===d.default(t[1])&&(r=t[1]),"string"==typeof t[1]&&(r.defaultValue=t[1]),"string"==typeof t[2]&&(r.tDescription=t[2]),"object"===d.default(t[2])||"object"===d.default(t[3])){var n=t[3]||t[2];Object.keys(n).forEach((function(e){r[e]=n[e]}))}return r},interpolation:{escapeValue:!0,format:function e(t,r,n,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function Z(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function J(){}var Q,ee=new(function(e){function t(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(p.default(this,t),e=m.default(this,g.default(t).call(this)),N&&k.call(v.default(e)),e.options=Z(r),e.services={},e.logger=x,e.modules={external:[]},n&&!e.isInitialized&&!r.isClone){if(!e.options.initImmediate)return e.init(r,n),m.default(e,v.default(e));setTimeout((function(){e.init(r,n)}),0)}return e}return y.default(t,e),b.default(t,[{key:"init",value:function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;function i(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof r&&(n=r,r={}),r.whitelist&&!r.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),r.nonExplicitWhitelist&&!r.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=h.default({},X(),this.options,Z(r)),this.format=this.options.interpolation.format,n||(n=J),!this.options.isClone){this.modules.logger?x.init(i(this.modules.logger),this.options):x.init(null,this.options);var o=new U(this.options);this.store=new F(this.options.resources,this.options);var a=this.services;a.logger=x,a.resourceStore=this.store,a.languageUtils=o,a.pluralResolver=new Y(o,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new V(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new G(i(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?r-1:0),i=1;i0&&"dev"!==s[0]&&(this.options.lng=s[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var u=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];u.forEach((function(e){t[e]=function(){var r;return(r=t.store)[e].apply(r,arguments)}}));var c=["addResource","addResources","addResourceBundle","removeResourceBundle"];c.forEach((function(e){t[e]=function(){var r;return(r=t.store)[e].apply(r,arguments),t}}));var l=S(),f=function e(){var r=function e(r,i){t.isInitialized&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(i),n(r,i)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return r(null,t.t.bind(t));t.changeLanguage(t.options.lng,r)};return this.options.resources||!this.options.initImmediate?f():setTimeout(f,0),l}},{key:"loadResources",value:function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J,i=n,o="string"==typeof t?t:this.language;if("function"==typeof t&&(i=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return i();var a=[],s=function e(t){var n;t&&r.services.languageUtils.toResolveHierarchy(t).forEach((function(e){a.indexOf(e)<0&&a.push(e)}))};if(o)s(o);else{var u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.forEach((function(e){return s(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return s(e)})),this.services.backendConnector.load(a,this.options.ns,i)}else i(null)}},{key:"reloadResources",value:function e(t,r,n){var i=S();return t||(t=this.languages),r||(r=this.options.ns),n||(n=J),this.services.backendConnector.reload(t,r,(function(e){i.resolve(),n(e)})),i}},{key:"use",value:function e(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&P.addPostProcessor(t),"3rdParty"===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function e(t,r){var n=this;this.isLanguageChangingTo=t;var i=S();this.emit("languageChanging",t);var o=function e(t,o){o?(n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o),n.translator.changeLanguage(o),n.isLanguageChangingTo=void 0,n.emit("languageChanged",o),n.logger.log("languageChanged",o)):n.isLanguageChangingTo=void 0,i.resolve((function(){return n.t.apply(n,arguments)})),r&&r(t,(function(){return n.t.apply(n,arguments)}))},a=function e(t){var r="string"==typeof t?t:n.services.languageUtils.getBestMatchFromCodes(t);r&&(n.language||(n.language=r,n.languages=n.services.languageUtils.toResolveHierarchy(r)),n.translator.language||n.translator.changeLanguage(r),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(r)),n.loadResources(r,(function(e){o(e,r)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(a):a(t):a(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function e(t,r){var n=this,i=function e(t,r){var i;if("object"!==d.default(r)){for(var o=arguments.length,a=new Array(o>2?o-2:0),s=2;s1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.languages[0],o=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var s=function e(t,n){var i=r.services.backendConnector.state["".concat(t,"|").concat(n)];return-1===i||2===i};if(n.precheck){var u=n.precheck(this,s);if(void 0!==u)return u}return!!this.hasResourceBundle(i,t)||(!this.services.backendConnector.backend||!(!s(i,t)||o&&!s(a,t)))}},{key:"loadNamespaces",value:function e(t,r){var n=this,i=S();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){i.resolve(),r&&r(e)})),i):(r&&r(),Promise.resolve())}},{key:"loadLanguages",value:function e(t,r){var n=S();"string"==typeof t&&(t=[t]);var i=this.options.preload||[],o=t.filter((function(e){return i.indexOf(e)<0}));return o.length?(this.options.preload=i.concat(o),this.loadResources((function(e){n.resolve(),r&&r(e)})),n):(r&&r(),Promise.resolve())}},{key:"dir",value:function e(t){return t||(t=this.languages&&this.languages.length>0?this.languages[0]:this.language),t?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr":"rtl";var r}},{key:"createInstance",value:function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(r,n)}},{key:"cloneInstance",value:function e(){var r=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J,o=h.default({},this.options,n,{isClone:!0}),a=new t(o),s=["store","services","language"];return s.forEach((function(e){a[e]=r[e]})),a.services=h.default({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new q(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=0&&r<=y}}function Z(e){return function(t){return null==t?void 0:t[e]}}var J=Z("byteLength"),Q=X(J),ee=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function te(e){return p?p(e)&&!U(e):Q(e)&&ee.test(s.call(e))}var re=c?te:G(!1),ne=Z("length");function ie(e){for(var t={},r=e.length,n=0;n":">",'"':""","'":"'","`":"`"},st=ot(at),ut,ct=ot(Oe(at)),lt=ce.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},ft=/(.)^/,dt={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},ht=/\\|'|\r|\n|\u2028|\u2029/g;function pt(e){return"\\"+dt[e]}var bt=/^\s*(\w|\$)+\s*$/;function mt(e,t,r){!t&&r&&(t=r),t=Re({},t,ce.templateSettings);var n=RegExp([(t.escape||ft).source,(t.interpolate||ft).source,(t.evaluate||ft).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(n,(function(t,r,n,a,s){return o+=e.slice(i,s).replace(ht,pt),i=s+t.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),t})),o+="';\n";var a=t.variable,s;if(a){if(!bt.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{s=new Function(a,"_",o)}catch(c){throw c.source=o,c}var u=function(e){return s.call(this,e,ce)};return u.source="function("+a+"){\n"+o+"}",u}function gt(e,t,r){var n=(t=Ue(t)).length;if(!n)return N(r)?r.call(e):r;for(var i=0;i1)jt(s,t-1,r,n),i=n.length;else for(var u=0,c=s.length;ut?(n&&(clearTimeout(n),n=null),s=c,a=e.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(u,l)),a};return c.cancel=function(){clearTimeout(n),s=0,n=i=o=null},c}function Tt(e,t,r){var n,i,o,a,s,u=function(){var c=it()-i;t>c?n=setTimeout(u,t-c):(n=null,r||(a=e.apply(s,o)),n||(o=s=null))},c=w((function(c){return s=this,o=c,i=it(),n||(n=setTimeout(u,t),r&&(a=e.apply(s,o))),a}));return c.cancel=function(){clearTimeout(n),n=o=s=null},c}function Mt(e,t){return xt(t,e)}function Bt(e){return function(){return!e.apply(this,arguments)}}function It(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}}function Rt(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}function Nt(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}}var Ft=xt(Nt,2);function Pt(e,t,r){t=Je(t,r);for(var n=ae(e),i,o=0,a=n.length;o0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+u,s):u=o>=0?Math.min(o+1,u):o+u+1;else if(r&&o&&u)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=t(a.call(n,s,u),K))>=0?o+s:-1;for(o=e>0?s:u-1;o>=0&&o0?0:a-1;for(i||(n=t[o?o[s]:s],s+=e);s>=0&&s=3;return t(e,Ge(r,i,4),n,o)}}var Zt=Xt(1),Jt=Xt(-1);function Qt(e,t,r){var n=[];return t=Je(t,r),Kt(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n}function er(e,t,r){return Qt(e,Bt(Je(t)),r)}function tr(e,t,r){t=Je(t,r);for(var n=!St(e)&&ae(e),i=(n||e).length,o=0;o=0}var ir=w((function(e,t,r){var n,i;return N(t)?i=t:(t=Ue(t),n=t.slice(0,-1),t=t[t.length-1]),Gt(e,(function(e){var o=i;if(!o){if(n&&n.length&&(e=He(e,n)),null==e)return;o=e[t]}return null==o?o:o.apply(e,r)}))}));function or(e,t){return Gt(e,Ke(t))}function ar(e,t){return Qt(e,Ve(t))}function sr(e,t,r){var n=-1/0,i=-1/0,o,a;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,u=(e=St(e)?e:Ee(e)).length;sn&&(n=o);else t=Je(t,r),Kt(e,(function(e,r,o){((a=t(e,r,o))>i||a===-1/0&&n===-1/0)&&(n=e,i=a)}));return n}function ur(e,t,r){var n=1/0,i=1/0,o,a;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,u=(e=St(e)?e:Ee(e)).length;sn||void 0===r)return 1;if(r1&&(n=Ge(n,t[1])),t=be(e)):(n=wr,t=jt(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i1&&(n=t[1])):(t=Gt(jt(t,!1,!1),String),r=function(e,r){return!nr(t,r)}),_r(e,r,n)}));function kr(e,t,r){return a.call(e,0,Math.max(0,e.length-(null==t||r?1:t)))}function Sr(e,t,r){return null==e||e.length<1?null==t||r?void 0:[]:null==t||r?e[0]:kr(e,e.length-t)}function jr(e,t,r){return a.call(e,null==t||r?1:t)}function Ar(e,t,r){return null==e||e.length<1?null==t||r?void 0:[]:null==t||r?e[e.length-1]:jr(e,Math.max(0,e.length-t))}function Dr(e){return Qt(e,Boolean)}function Er(e,t){return jt(e,t,!1)}var Cr=w((function(e,t){return t=jt(t,!0,!0),Qt(e,(function(e){return!nr(t,e)}))})),Or=w((function(e,t){return Cr(e,t)}));function Tr(e,t,r,n){S(t)||(n=r,r=t,t=!1),null!=r&&(r=Je(r,n));for(var i=[],o=[],a=0,s=ne(e);ae(t),this)}}onabort(){}addEventListener(e,t){"abort"===e&&this._listeners.push(t)}removeEventListener(e,t){"abort"===e&&(this._listeners=this._listeners.filter(e=>e!==t))}},c=new Set,l=(e,t)=>{const r=`LRU_CACHE_OPTION_${e}`;p(r)&&b(r,`${e} option`,`options.${t}`,w)},f=(e,t)=>{const r=`LRU_CACHE_METHOD_${e}`;if(p(r)){const{prototype:n}=w,{get:i}=Object.getOwnPropertyDescriptor(n,e);b(r,`${e} method`,`cache.${t}()`,i)}},d=(e,t)=>{const r=`LRU_CACHE_PROPERTY_${e}`;if(p(r)){const{prototype:n}=w,{get:i}=Object.getOwnPropertyDescriptor(n,e);b(r,`${e} property`,`cache.${t}`,i)}},h=(...e)=>{"object"==typeof process&&process&&"function"==typeof process.emitWarning?process.emitWarning(...e):console.error(...e)},p=e=>!c.has(e),b=(e,t,r,n)=>{c.add(e);const i=`The ${t} is deprecated. Please use ${r} instead.`;h(i,"DeprecationWarning",e,n)},m=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),g=e=>m(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?v:null:null;class v extends Array{constructor(e){super(e),this.fill(0)}}class y{constructor(e){if(0===e)return[];const t=g(e);this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class w{constructor(e={}){const{max:t=0,ttl:r,ttlResolution:n=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:s,dispose:u,disposeAfter:f,noDisposeOnSet:d,noUpdateTTL:b,maxSize:v=0,maxEntrySize:_=0,sizeCalculation:x,fetchMethod:k,fetchContext:S,noDeleteOnFetchRejection:j,noDeleteOnStaleGet:A}=e,{length:D,maxAge:E,stale:C}=e instanceof w?{}:e;if(0!==t&&!m(t))throw new TypeError("max option must be a nonnegative integer");const O=t?g(t):Array;if(!O)throw new Error("invalid max value: "+t);if(this.max=t,this.maxSize=v,this.maxEntrySize=_||this.maxSize,this.sizeCalculation=x||D,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=k||null,this.fetchMethod&&"function"!=typeof this.fetchMethod)throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=S,!this.fetchMethod&&void 0!==S)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(t).fill(null),this.valList=new Array(t).fill(null),this.next=new O(t),this.prev=new O(t),this.head=0,this.tail=0,this.free=new y(t),this.initialFill=1,this.size=0,"function"==typeof u&&(this.dispose=u),"function"==typeof f?(this.disposeAfter=f,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!d,this.noUpdateTTL=!!b,this.noDeleteOnFetchRejection=!!j,0!==this.maxEntrySize){if(0!==this.maxSize&&!m(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!m(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!s||!!C,this.noDeleteOnStaleGet=!!A,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=m(n)||0===n?n:1,this.ttlAutopurge=!!i,this.ttl=r||E||0,this.ttl){if(!m(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(0===this.max&&0===this.ttl&&0===this.maxSize)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const e="LRU_CACHE_UNBOUNDED";if(p(e)){c.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";h(t,"UnboundedCacheWarning",e,w)}}C&&l("stale","allowStale"),E&&l("maxAge","ttl"),D&&l("length","sizeCalculation")}getRemainingTTL(e){return this.has(e,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new v(this.max),this.starts=new v(this.max),this.setItemTTL=(e,t,r=n.now())=>{if(this.starts[e]=0!==t?r:0,this.ttls[e]=t,0!==t&&this.ttlAutopurge){const r=setTimeout(()=>{this.isStale(e)&&this.delete(this.keyList[e])},t+1);r.unref&&r.unref()}},this.updateItemAge=e=>{this.starts[e]=0!==this.ttls[e]?n.now():0};let e=0;const t=()=>{const t=n.now();if(this.ttlResolution>0){e=t;const r=setTimeout(()=>e=0,this.ttlResolution);r.unref&&r.unref()}return t};this.getRemainingTTL=r=>{const n=this.keyMap.get(r);return void 0===n?0:0===this.ttls[n]||0===this.starts[n]?1/0:this.starts[n]+this.ttls[n]-(e||t())},this.isStale=r=>0!==this.ttls[r]&&0!==this.starts[r]&&(e||t())-this.starts[r]>this.ttls[r]}updateItemAge(e){}setItemTTL(e,t,r){}isStale(e){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new v(this.max),this.removeItemSize=e=>{this.calculatedSize-=this.sizes[e],this.sizes[e]=0},this.requireSize=(e,t,r,n)=>{if(this.isBackgroundFetch(t))return 0;if(!m(r)){if(!n)throw new TypeError("invalid size value (must be positive integer)");if("function"!=typeof n)throw new TypeError("sizeCalculation must be a function");if(r=n(t,e),!m(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return r},this.addItemSize=(e,t)=>{if(this.sizes[e]=t,this.maxSize){const t=this.maxSize-this.sizes[e];for(;this.calculatedSize>t;)this.evict(!0)}this.calculatedSize+=this.sizes[e]}}removeItemSize(e){}addItemSize(e,t){}requireSize(e,t,r,n){if(r||n)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.tail;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.head);)t=this.prev[t]}*rindexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.head;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.tail);)t=this.next[t]}isValidIndex(e){return this.keyMap.get(this.keyList[e])===e}*entries(){for(const e of this.indexes())yield[this.keyList[e],this.valList[e]]}*rentries(){for(const e of this.rindexes())yield[this.keyList[e],this.valList[e]]}*keys(){for(const e of this.indexes())yield this.keyList[e]}*rkeys(){for(const e of this.rindexes())yield this.keyList[e]}*values(){for(const e of this.indexes())yield this.valList[e]}*rvalues(){for(const e of this.rindexes())yield this.valList[e]}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of this.indexes())if(e(this.valList[r],this.keyList[r],this))return this.get(this.keyList[r],t)}forEach(e,t=this){for(const r of this.indexes())e.call(t,this.valList[r],this.keyList[r],this)}rforEach(e,t=this){for(const r of this.rindexes())e.call(t,this.valList[r],this.keyList[r],this)}get prune(){return f("prune","purgeStale"),this.purgeStale}purgeStale(){let e=!1;for(const t of this.rindexes({allowStale:!0}))this.isStale(t)&&(this.delete(this.keyList[t]),e=!0);return e}dump(){const e=[];for(const t of this.indexes({allowStale:!0})){const r=this.keyList[t],i=this.valList[t],o=this.isBackgroundFetch(i)?i.__staleWhileFetching:i,a={value:o};if(this.ttls){a.ttl=this.ttls[t];const e=n.now()-this.starts[t];a.start=Math.floor(Date.now()-e)}this.sizes&&(a.size=this.sizes[t]),e.unshift([r,a])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const e=Date.now()-r.start;r.start=n.now()-e}this.set(t,r.value,r)}}dispose(e,t,r){}set(e,t,{ttl:r=this.ttl,start:n,noDisposeOnSet:i=this.noDisposeOnSet,size:o=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:s=this.noUpdateTTL}={}){if(o=this.requireSize(e,t,o,a),this.maxEntrySize&&o>this.maxEntrySize)return this.delete(e),this;let u=0===this.size?void 0:this.keyMap.get(e);if(void 0===u)u=this.newIndex(),this.keyList[u]=e,this.valList[u]=t,this.keyMap.set(e,u),this.next[this.tail]=u,this.prev[u]=this.tail,this.tail=u,this.size++,this.addItemSize(u,o),s=!1;else{const r=this.valList[u];t!==r&&(this.isBackgroundFetch(r)?r.__abortController.abort():i||(this.dispose(r,e,"set"),this.disposeAfter&&this.disposed.push([r,e,"set"])),this.removeItemSize(u),this.valList[u]=t,this.addItemSize(u,o)),this.moveToTail(u)}if(0===r||0!==this.ttl||this.ttls||this.initializeTTLTracking(),s||this.setItemTTL(u,r,n),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return 0===this.size?this.tail:this.size===this.max&&0!==this.max?this.evict(!1):0!==this.free.length?this.free.pop():this.initialFill++}pop(){if(this.size){const e=this.valList[this.head];return this.evict(!0),e}}evict(e){const t=this.head,r=this.keyList[t],n=this.valList[t];return this.isBackgroundFetch(n)?n.__abortController.abort():(this.dispose(n,r,"evict"),this.disposeAfter&&this.disposed.push([n,r,"evict"])),this.removeItemSize(t),e&&(this.keyList[t]=null,this.valList[t]=null,this.free.push(t)),this.head=this.next[t],this.keyMap.delete(r),this.size--,t}has(e,{updateAgeOnHas:t=this.updateAgeOnHas}={}){const r=this.keyMap.get(e);return void 0!==r&&!this.isStale(r)&&(t&&this.updateItemAge(r),!0)}peek(e,{allowStale:t=this.allowStale}={}){const r=this.keyMap.get(e);if(void 0!==r&&(t||!this.isStale(r))){const e=this.valList[r];return this.isBackgroundFetch(e)?e.__staleWhileFetching:e}}backgroundFetch(e,t,r,n){const i=void 0===t?void 0:this.valList[t];if(this.isBackgroundFetch(i))return i;const a=new o,s={signal:a.signal,options:r,context:n},u=t=>(a.signal.aborted||this.set(e,t,s.options),t),c=n=>{if(this.valList[t]===f){const n=!r.noDeleteOnFetchRejection||void 0===f.__staleWhileFetching;n?this.delete(e):this.valList[t]=f.__staleWhileFetching}if(f.__returned===f)throw n},l=t=>t(this.fetchMethod(e,i,s)),f=new Promise(l).then(u,c);return f.__abortController=a,f.__staleWhileFetching=i,f.__returned=null,void 0===t?(this.set(e,f,s.options),t=this.keyMap.get(e)):this.valList[t]=f,f}isBackgroundFetch(e){return e&&"object"==typeof e&&"function"==typeof e.then&&Object.prototype.hasOwnProperty.call(e,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(e,"__returned")&&(e.__returned===e||null===e.__returned)}async fetch(e,{allowStale:t=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:a=0,sizeCalculation:s=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:c=this.noDeleteOnFetchRejection,fetchContext:l=this.fetchContext,forceRefresh:f=!1}={}){if(!this.fetchMethod)return this.get(e,{allowStale:t,updateAgeOnGet:r,noDeleteOnStaleGet:n});const d={allowStale:t,updateAgeOnGet:r,noDeleteOnStaleGet:n,ttl:i,noDisposeOnSet:o,size:a,sizeCalculation:s,noUpdateTTL:u,noDeleteOnFetchRejection:c};let h=this.keyMap.get(e);if(void 0===h){const t=this.backgroundFetch(e,h,d,l);return t.__returned=t}{const n=this.valList[h];if(this.isBackgroundFetch(n))return t&&void 0!==n.__staleWhileFetching?n.__staleWhileFetching:n.__returned=n;if(!f&&!this.isStale(h))return this.moveToTail(h),r&&this.updateItemAge(h),n;const i=this.backgroundFetch(e,h,d,l);return t&&void 0!==i.__staleWhileFetching?i.__staleWhileFetching:i.__returned=i}}get(e,{allowStale:t=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet}={}){const i=this.keyMap.get(e);if(void 0!==i){const o=this.valList[i],a=this.isBackgroundFetch(o);if(this.isStale(i))return a?t?o.__staleWhileFetching:void 0:(n||this.delete(e),t?o:void 0);if(a)return;return this.moveToTail(i),r&&this.updateItemAge(i),o}}connect(e,t){this.prev[t]=e,this.next[e]=t}moveToTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.connect(this.prev[e],this.next[e]),this.connect(this.tail,e),this.tail=e)}get del(){return f("del","delete"),this.delete}delete(e){let t=!1;if(0!==this.size){const r=this.keyMap.get(e);if(void 0!==r)if(t=!0,1===this.size)this.clear();else{this.removeItemSize(r);const t=this.valList[r];this.isBackgroundFetch(t)?t.__abortController.abort():(this.dispose(t,e,"delete"),this.disposeAfter&&this.disposed.push([t,e,"delete"])),this.keyMap.delete(e),this.keyList[r]=null,this.valList[r]=null,r===this.tail?this.tail=this.prev[r]:r===this.head?this.head=this.next[r]:(this.next[this.prev[r]]=this.next[r],this.prev[this.next[r]]=this.prev[r]),this.size--,this.free.push(r)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return t}clear(){for(const e of this.rindexes({allowStale:!0})){const t=this.valList[e];if(this.isBackgroundFetch(t))t.__abortController.abort();else{const r=this.keyList[e];this.dispose(t,r,"delete"),this.disposeAfter&&this.disposed.push([t,r,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return f("reset","clear"),this.clear}get length(){return d("length","size"),this.size}static get AbortController(){return o}static get AbortSignal(){return u}}e.exports=w}}}}},tslib:{"package.json":function e(t,r,e){e.exports={name:"tslib",version:"2.3.1",main:"tslib.js",module:"tslib.es6.js"}},"tslib.js":function e(t,r,e){ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1||t[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var r in t)if(void 0!==e.style[r])return{end:t[r]};return!1}e.fn.emulateTransitionEnd=function(t){var r=!1,n=this,i;return e(this).one("bsTransitionEnd",(function(){r=!0})),setTimeout((function(){r||e(n).trigger(e.support.transition.end)}),t),this},e((function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})}))}(jQuery),function(e){"use strict";var t='[data-dismiss="alert"]',r=function(r){e(r).on("click",t,this.close)};function n(t){return this.each((function(){var n=e(this),i=n.data("bs.alert");i||n.data("bs.alert",i=new r(this)),"string"==typeof t&&i[t].call(n)}))}r.VERSION="3.4.1",r.TRANSITION_DURATION=150,r.prototype.close=function(t){var n=e(this),i=n.attr("data-target");i||(i=(i=n.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=e(document).find(i);function a(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=n.closest(".alert")),o.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",a).emulateTransitionEnd(r.TRANSITION_DURATION):a())};var i=e.fn.alert;e.fn.alert=n,e.fn.alert.Constructor=r,e.fn.alert.noConflict=function(){return e.fn.alert=i,this},e(document).on("click.bs.alert.data-api",t,r.prototype.close)}(jQuery),function(e){"use strict";var t=function(r,n){this.$element=e(r),this.options=e.extend({},t.DEFAULTS,n),this.isLoading=!1};function r(r){return this.each((function(){var n=e(this),i=n.data("bs.button"),o="object"==typeof r&&r;i||n.data("bs.button",i=new t(this,o)),"toggle"==r?i.toggle():r&&i.setState(r)}))}t.VERSION="3.4.1",t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(t){var r="disabled",n=this.$element,i=n.is("input")?"val":"html",o=n.data();t+="Text",null==o.resetText&&n.data("resetText",n[i]()),setTimeout(e.proxy((function(){n[i](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,n.addClass(r).attr(r,r).prop(r,!0)):this.isLoading&&(this.isLoading=!1,n.removeClass(r).removeAttr(r).prop(r,!1))}),this),0)},t.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var r=this.$element.find("input");"radio"==r.prop("type")?(r.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==r.prop("type")&&(r.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),r.prop("checked",this.$element.hasClass("active")),e&&r.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=r,e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',(function(t){var n=e(t.target).closest(".btn");r.call(n,"toggle"),e(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),n.is("input,button")?n.trigger("focus"):n.find("input:visible,button:visible").first().trigger("focus"))})).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))}))}(jQuery),function(e){"use strict";var t=function(t,r){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=r,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};function r(r){return this.each((function(){var n=e(this),i=n.data("bs.carousel"),o=e.extend({},t.DEFAULTS,n.data(),"object"==typeof r&&r),a="string"==typeof r?r:o.slide;i||n.data("bs.carousel",i=new t(this,o)),"number"==typeof r?i.to(r):a?i[a]():o.interval&&i.pause().cycle()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=600,t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},t.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},t.prototype.getItemForDirection=function(e,t){var r=this.getItemIndex(t),n;if(("prev"==e&&0===r||"next"==e&&r==this.$items.length-1)&&!this.options.wrap)return t;var i,o=(r+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(o)},t.prototype.to=function(e){var t=this,r=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",(function(){t.to(e)})):r==e?this.pause().cycle():this.slide(e>r?"next":"prev",this.$items.eq(e))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(!this.sliding)return this.slide("next")},t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},t.prototype.slide=function(r,n){var i=this.$element.find(".item.active"),o=n||this.getItemForDirection(r,i),a=this.interval,s="next"==r?"left":"right",u=this;if(o.hasClass("active"))return this.sliding=!1;var c=o[0],l=e.Event("slide.bs.carousel",{relatedTarget:c,direction:s});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var f=e(this.$indicators.children()[this.getItemIndex(o)]);f&&f.addClass("active")}var d=e.Event("slid.bs.carousel",{relatedTarget:c,direction:s});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(r),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(s),o.addClass(s),i.one("bsTransitionEnd",(function(){o.removeClass([r,s].join(" ")).addClass("active"),i.removeClass(["active",s].join(" ")),u.sliding=!1,setTimeout((function(){u.$element.trigger(d)}),0)})).emulateTransitionEnd(t.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(d)),a&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=r,e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this};var i=function(t){var n=e(this),i=n.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=n.attr("data-target")||i,a=e(document).find(o);if(a.hasClass("carousel")){var s=e.extend({},a.data(),n.data()),u=n.attr("data-slide-to");u&&(s.interval=!1),r.call(a,s),u&&a.data("bs.carousel").to(u),t.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",i).on("click.bs.carousel.data-api","[data-slide-to]",i),e(window).on("load",(function(){e('[data-ride="carousel"]').each((function(){var t=e(this);r.call(t,t.data())}))}))}(jQuery),function(e){"use strict";var t=function(r,n){this.$element=e(r),this.options=e.extend({},t.DEFAULTS,n),this.$trigger=e('[data-toggle="collapse"][href="#'+r.id+'"],[data-toggle="collapse"][data-target="#'+r.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function r(t){var r,n=t.attr("data-target")||(r=t.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"");return e(document).find(n)}function n(r){return this.each((function(){var n=e(this),i=n.data("bs.collapse"),o=e.extend({},t.DEFAULTS,n.data(),"object"==typeof r&&r);!i&&o.toggle&&/show|hide/.test(r)&&(o.toggle=!1),i||n.data("bs.collapse",i=new t(this,o)),"string"==typeof r&&i[r]()}))}t.VERSION="3.4.1",t.TRANSITION_DURATION=350,t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e;return this.$element.hasClass("width")?"width":"height"},t.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var r,i=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(i&&i.length&&(r=i.data("bs.collapse"))&&r.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){i&&i.length&&(n.call(i,"hide"),r||i.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return s.call(this);var u=e.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",e.proxy(s,this)).emulateTransitionEnd(t.TRANSITION_DURATION)[a](this.$element[0][u])}}}},t.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var r=e.Event("hide.bs.collapse");if(this.$element.trigger(r),!r.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return i.call(this);this.$element[n](0).one("bsTransitionEnd",e.proxy(i,this)).emulateTransitionEnd(t.TRANSITION_DURATION)}}},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},t.prototype.getParent=function(){return e(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy((function(t,n){var i=e(n);this.addAriaAndCollapsedClass(r(i),i)}),this)).end()},t.prototype.addAriaAndCollapsedClass=function(e,t){var r=e.hasClass("in");e.attr("aria-expanded",r),t.toggleClass("collapsed",!r).attr("aria-expanded",r)};var i=e.fn.collapse;e.fn.collapse=n,e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=i,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){var i=e(this);i.attr("data-target")||t.preventDefault();var o=r(i),a,s=o.data("bs.collapse")?"toggle":i.data();n.call(o,s)}))}(jQuery),function(e){"use strict";var t=".dropdown-backdrop",r='[data-toggle="dropdown"]',n=function(t){e(t).on("click.bs.dropdown",this.toggle)};function i(t){var r=t.attr("data-target");r||(r=(r=t.attr("href"))&&/#[A-Za-z]/.test(r)&&r.replace(/.*(?=#[^\s]*$)/,""));var n="#"!==r?e(document).find(r):null;return n&&n.length?n:t.parent()}function o(n){n&&3===n.which||(e(t).remove(),e(r).each((function(){var t=e(this),r=i(t),o={relatedTarget:this};r.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&e.contains(r[0],n.target)||(r.trigger(n=e.Event("hide.bs.dropdown",o)),n.isDefaultPrevented()||(t.attr("aria-expanded","false"),r.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))})))}function a(t){return this.each((function(){var r=e(this),i=r.data("bs.dropdown");i||r.data("bs.dropdown",i=new n(this)),"string"==typeof t&&i[t].call(r)}))}n.VERSION="3.4.1",n.prototype.toggle=function(t){var r=e(this);if(!r.is(".disabled, :disabled")){var n=i(r),a=n.hasClass("open");if(o(),!a){"ontouchstart"in document.documentElement&&!n.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",o);var s={relatedTarget:this};if(n.trigger(t=e.Event("show.bs.dropdown",s)),t.isDefaultPrevented())return;r.trigger("focus").attr("aria-expanded","true"),n.toggleClass("open").trigger(e.Event("shown.bs.dropdown",s))}return!1}},n.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var n=e(this);if(t.preventDefault(),t.stopPropagation(),!n.is(".disabled, :disabled")){var o=i(n),a=o.hasClass("open");if(!a&&27!=t.which||a&&27==t.which)return 27==t.which&&o.find(r).trigger("focus"),n.trigger("click");var s=" li:not(.disabled):visible a",u=o.find(".dropdown-menu"+s);if(u.length){var c=u.index(t.target);38==t.which&&c>0&&c--,40==t.which&&cdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},t.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},t.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:i},c.prototype.init=function(t,r,n){if(this.enabled=!0,this.type=t,this.$element=e(r),this.options=this.getOptions(n),this.$viewport=this.options.viewport&&e(document).find(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var i=this.options.trigger.split(" "),o=i.length;o--;){var a=i[o];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",u="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(u+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(r){var n=this.$element.data();for(var i in n)n.hasOwnProperty(i)&&-1!==e.inArray(i,t)&&delete n[i];return(r=e.extend({},this.getDefaults(),n,r)).delay&&"number"==typeof r.delay&&(r.delay={show:r.delay,hide:r.delay}),r.sanitize&&(r.template=u(r.template,r.whiteList,r.sanitizeFn)),r},c.prototype.getDelegateOptions=function(){var t={},r=this.getDefaults();return this._options&&e.each(this._options,(function(e,n){r[e]!=n&&(t[e]=n)})),t},c.prototype.enter=function(t){var r=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(r||(r=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,r)),t instanceof e.Event&&(r.inState["focusin"==t.type?"focus":"hover"]=!0),r.tip().hasClass("in")||"in"==r.hoverState)r.hoverState="in";else{if(clearTimeout(r.timeout),r.hoverState="in",!r.options.delay||!r.options.delay.show)return r.show();r.timeout=setTimeout((function(){"in"==r.hoverState&&r.show()}),r.options.delay.show)}},c.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},c.prototype.leave=function(t){var r=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(r||(r=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,r)),t instanceof e.Event&&(r.inState["focusout"==t.type?"focus":"hover"]=!1),!r.isInStateTrue()){if(clearTimeout(r.timeout),r.hoverState="out",!r.options.delay||!r.options.delay.hide)return r.hide();r.timeout=setTimeout((function(){"out"==r.hoverState&&r.hide()}),r.options.delay.hide)}},c.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var r=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!r)return;var n=this,i=this.tip(),o=this.getUID(this.type);this.setContent(),i.attr("id",o),this.$element.attr("aria-describedby",o),this.options.animation&&i.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,s=/\s?auto?\s?/i,u=s.test(a);u&&(a=a.replace(s,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?i.appendTo(e(document).find(this.options.container)):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var l=this.getPosition(),f=i[0].offsetWidth,d=i[0].offsetHeight;if(u){var h=a,p=this.getPosition(this.$viewport);a="bottom"==a&&l.bottom+d>p.bottom?"top":"top"==a&&l.top-dp.width?"left":"left"==a&&l.left-fa.top+a.height&&(i.top=a.top+a.height-u)}else{var c=t.left-o,l=t.left+o+r;ca.right&&(i.left=a.left+a.width-l)}return i},c.prototype.getTitle=function(){var e,t=this.$element,r=this.options;return e=t.attr("data-original-title")||("function"==typeof r.title?r.title.call(t[0]):r.title)},c.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(t){var r=this;t&&((r=e(t.currentTarget).data("bs."+this.type))||(r=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,r))),t?(r.inState.click=!r.inState.click,r.isInStateTrue()?r.enter(r):r.leave(r)):r.tip().hasClass("in")?r.leave(r):r.enter(r)},c.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide((function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null}))},c.prototype.sanitizeHtml=function(e){return u(e,this.options.whiteList,this.options.sanitizeFn)};var f=e.fn.tooltip;e.fn.tooltip=l,e.fn.tooltip.Constructor=c,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=f,this}}(jQuery),function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");function r(r){return this.each((function(){var n=e(this),i=n.data("bs.popover"),o="object"==typeof r&&r;!i&&/destroy|hide/.test(r)||(i||n.data("bs.popover",i=new t(this,o)),"string"==typeof r&&i[r]())}))}t.VERSION="3.4.1",t.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),t.prototype.constructor=t,t.prototype.getDefaults=function(){return t.DEFAULTS},t.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),r=this.getContent();if(this.options.html){var n=typeof r;this.options.sanitize&&(t=this.sanitizeHtml(t),"string"===n&&(r=this.sanitizeHtml(r))),e.find(".popover-title").html(t),e.find(".popover-content").children().detach().end()["string"===n?"html":"append"](r)}else e.find(".popover-title").text(t),e.find(".popover-content").children().detach().end().text(r);e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},t.prototype.hasContent=function(){return this.getTitle()||this.getContent()},t.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var n=e.fn.popover;e.fn.popover=r,e.fn.popover.Constructor=t,e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(jQuery),function(e){"use strict";function t(r,n){this.$body=e(document.body),this.$scrollElement=e(r).is(document.body)?e(window):e(r),this.options=e.extend({},t.DEFAULTS,n),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function r(r){return this.each((function(){var n=e(this),i=n.data("bs.scrollspy"),o="object"==typeof r&&r;i||n.data("bs.scrollspy",i=new t(this,o)),"string"==typeof r&&i[r]()}))}t.VERSION="3.4.1",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,r="offset",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(r="position",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map((function(){var t=e(this),i=t.data("target")||t.attr("href"),o=/^#./.test(i)&&e(i);return o&&o.length&&o.is(":visible")&&[[o[r]().top+n,i]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},t.prototype.process=function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.getScrollHeight(),r=this.options.offset+t-this.$scrollElement.height(),n=this.offsets,i=this.targets,o=this.activeTarget,a;if(this.scrollHeight!=t&&this.refresh(),e>=r)return o!=(a=i[i.length-1])&&this.activate(a);if(o&&e=n[a]&&(void 0===n[a+1]||e .active"),a=i&&e.support.transition&&(o.length&&o.hasClass("fade")||!!n.find("> .fade").length);function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),r.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(r[0].offsetWidth,r.addClass("in")):r.removeClass("fade"),r.parent(".dropdown-menu").length&&r.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&a?o.one("bsTransitionEnd",s).emulateTransitionEnd(t.TRANSITION_DURATION):s(),o.removeClass("in")};var n=e.fn.tab;e.fn.tab=r,e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this};var i=function(t){t.preventDefault(),r.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(e){"use strict";var t=function(r,n){this.options=e.extend({},t.DEFAULTS,n);var i=this.options.target===t.DEFAULTS.target?e(this.options.target):e(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(r),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function r(r){return this.each((function(){var n=e(this),i=n.data("bs.affix"),o="object"==typeof r&&r;i||n.data("bs.affix",i=new t(this,o)),"string"==typeof r&&i[r]()}))}t.VERSION="3.4.1",t.RESET="affix affix-top affix-bottom",t.DEFAULTS={offset:0,target:window},t.prototype.getState=function(e,t,r,n){var i=this.$target.scrollTop(),o=this.$element.offset(),a=this.$target.height();if(null!=r&&"top"==this.affixed)return i=e-n&&"bottom"},t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var e=this.$target.scrollTop(),r=this.$element.offset();return this.pinnedOffset=r.top-e},t.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var r=this.$element.height(),n=this.options.offset,i=n.top,o=n.bottom,a=Math.max(e(document).height(),e(document.body).height());"object"!=typeof n&&(o=i=n),"function"==typeof i&&(i=n.top(this.$element)),"function"==typeof o&&(o=n.bottom(this.$element));var s=this.getState(a,r,i,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var u="affix"+(s?"-"+s:""),c=e.Event(u+".bs.affix");if(this.$element.trigger(c),c.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(u).trigger(u.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-r-o})}};var n=e.fn.affix;e.fn.affix=r,e.fn.affix.Constructor=t,e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),n=t.data();n.offset=n.offset||{},null!=n.offsetBottom&&(n.offset.bottom=n.offsetBottom),null!=n.offsetTop&&(n.offset.top=n.offsetTop),r.call(t,n)}))}))}(jQuery)}}}},fibers:{"package.json":function e(t,r,e){e.exports={name:"fibers",version:"5.0.3",main:"fibers"}},"fibers.js":function e(t,r,e,n,i){if(process.fiberLib)e.exports=process.fiberLib;else{var o=t("fs"),a=t("path"),s=t("detect-libc");Math.random();var u=a.join(i,"bin",process.platform+"-"+process.arch+"-"+process.versions.modules+("linux"===process.platform?"-"+s.family:""),"fibers");try{process.fiberLib=e.exports=t(u).Fiber}catch(l){throw console.error("## There is an issue with `node-fibers` ##\n`"+u+".node` is missing.\n\nTry running this to fix the issue: "+process.execPath+" "+i.replace(" ","\\ ")+"/build"),console.error(l.stack||l.message||l),new Error("Missing binary. See message above.")}c(e.exports)}function c(e){try{var t=process.binding("async_wrap"),r;if(t.asyncIdStackSize instanceof Function)r=t.asyncIdStackSize;else{if(void 0===t.constants.kStackLength)throw new Error("Couldn't figure out how to get async stack size");f=t.constants.kStackLength,r=function(){return t.async_hook_fields[f]}}var n=t.popAsyncContext||t.popAsyncIds,i=t.pushAsyncContext||t.pushAsyncIds,o,a;if(!n||!i)throw new Error("Push/pop do not exist");o=void 0===t.constants.kExecutionAsyncId?t.constants.kCurrentAsyncId:t.constants.kExecutionAsyncId,a=void 0===t.constants.kTriggerAsyncId?t.constants.kCurrentTriggerId:t.constants.kTriggerAsyncId;var s=t.async_id_fields||t.async_uid_fields;function u(){for(var e=r(),t=new Array(e);e>0;--e){var i=s[o];t[e-1]={asyncId:i,triggerId:s[a]},n(i)}return t}function c(e){for(var t=0;t0)i.changeLanguage(e,n);else if(0!=s[u]){s[u]=0;var c=new XMLHttpRequest;c.overrideMimeType("application/json"),c.open("GET",u,!1),c.send(null),200===c.status?s[u]=1:s[u]=-1,r.addResourceBundle(e,a,JSON.parse(c.response)||{}),i.changeLanguage(e,n)}};r.changeLanguage=p;var b=function(e,t,r){return i.format(e,t,r)};r.format=b;var m=function(){return i.languages};r.getLanguages=m;var g=function(e,t){return i.loadLanguages(e,t)};r.loadLanguages=g;var v=function(e,t){return i.loadNamespaces(e,t)};r.loadNamespaces=v;var y=function(e,t){return i.on(e,t)};r.on=y;var w=function(e,t){return i.off(e,t)};r.off=w,n.__exportStar(t("./i18n/i18n"),r),n.__exportStar(t("./i18n/i18n.app"),r),n.__exportStar(t("./translations"),r)},i18n:{"i18n.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.fallbackKeys=r.getObjectI18nTemplate=r.translationI18nObjects=r.addObjectsI18n=r.translationI18nObject=void 0;var n=t("../index"),i=t("underscore"),o=t("clone"),a="_",s="base",u="core",c="translation",l=function(e,t){var r={lng:t,ns:c};if((0,n.exists)(e,r))return(0,n._t)(e,r)},f=function(e){return"".concat(e,"__object")},d=function(e,t){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t)},h=function(e,t){var r=d(e,t);return"".concat(r).concat("_","inlineHelpText")},p=function(e,t){var r=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","group").concat("_").concat(r)},b=function(e,t,r){return t&&(t=t.replace(/\./g,"_")),"".concat(e).concat("_","field").concat("_").concat(t).concat("_","options").concat("_").concat(r)},m=function(e,t){return"".concat(e).concat("_","action").concat("_").concat(t)},g=function(e,t){return"".concat(e).concat("_","listview").concat("_").concat(t)},v=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},y=function(e,t,r){var n=f(t);return l(n,e)||r||""},w=function(e,t,r,n,i){var o=d(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=w(e,s,r,n,i))}return a||n||""},_=function(e,t,r,n,i){var o=h(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=_(e,s,r,n,i))}return a||n||""},x=function(e,t,r,n){var i=p(t,r);return l(i,e)||n||""},k=function(e,t,r,n,i,o){var a=b(t,r,n),s=l(a,e);if(!s){var u=v(o);u&&"base"!=t&&"core"!=t&&(s=k(e,u,r,n,i,o))}return s||i||""},S=function(e,t,r,n,i){var o=m(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=S(e,s,r,n,i))}return a||n||""},j=function(e,t,r,n,i){var o=g(t,r),a=l(o,e);if(!a){var s=v(i);s&&"base"!=t&&"core"!=t&&(a=j(e,s,r,n,i))}return a||n||""},A=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},D=function(e){i.forEach(e.fields,(function(e,t){var r=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;return e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return r.push(A(e))}))):r.push(A(e))})),e.options=r}catch(n){console.error("convertFieldsOptions error: ",e.options,n)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return r.push({label:e,value:t})})),e.options=r)}))},E=function(e,t,r){r.label=y(e,t,r.label),i.each(r.fields,(function(n,o){if(n.label=w(e,t,o,n.label,r.datasource),n.inlineHelpText&&(n.inlineHelpText=_(e,t,o,n.inlineHelpText,r.datasource)),n.group&&(n.group=x(e,t,n.group,n.group)),n.options){var a=[];i.each(n.options,(function(n){if(i.has(n,"value")){var s=k(e,t,o,n.value,n.label,r.datasource);a.push(i.extend({},n,{label:s}))}else a.push(n)})),n.options=a}})),i.each(r.actions,(function(n,i){n.label=S(e,t,i,n.label,r.datasource)})),i.each(r.list_views,(function(n,i){n.label=j(e,t,i,n.label,r.datasource)}))};r.translationI18nObject=E;var C=function(e){i.each(e,(function(e){(0,n.addResourceBundle)(e.lng,c,e.data,!0,!0)}))};r.addObjectsI18n=C;var O=function(e,t){i.each(t,(function(t,n){(0,r.translationI18nObject)(e,n,t)}))};r.translationI18nObjects=O;var T=function(e,t,r){var n=o(r);D(n);var a={};return a[f(t)]=y(e,t,n.label),i.each(n.fields,(function(r,o){a[d(t,o)]=w(e,t,o,r.label),r.inlineHelpText&&(a[h(t,o)]=_(e,t,o,r.inlineHelpText,n.datasource)),r.group&&(a[p(t,r.group)]=x(e,t,r.group,r.group)),r.options&&i.each(r.options,(function(r){i.has(r,"value")&&(a[b(t,o,r.value)]=k(e,t,o,r.value,r.label))}))})),i.each(n.actions,(function(r,n){a[m(t,n)]=S(e,t,n,r.label)})),i.each(n.list_views,(function(r,n){a[g(t,n)]=j(e,t,n,r.label)})),a};r.getObjectI18nTemplate=T,r.fallbackKeys={getObjectLabelKey:f,getObjectFieldLabelKey:d,getObjectFieldInlineHelpTextLabelKey:h,getObjectFieldGroupKey:p,getObjectFieldOptionsLabelKey:b,getObjectActionLabelKey:m,getObjectListviewLabelKey:g}},"i18n.app.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.appFallbackKeys=r.getAppI18nTemplate=r.translationI18nApps=r.translationI18nMenus=void 0;var n=t("../index"),i=t("underscore"),o=t("clone"),a="translation",s="_",u=function(e,t){var r={lng:t,ns:a};if((0,n.exists)(e,r))return(0,n._t)(e,r)},c=function(e){return"app".concat("_").concat(e).concat("_","name")},l=function(e){return"app".concat("_").concat(e).concat("_","description")},f=function(e,t){var r=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");return"".concat(e).concat("_","tab_group").concat("_").concat(r)},d=function(e){return"menu".concat("_").concat(e)},h=function(e){return"tab".concat("_").concat(e)},p=function(e,t,r){var n=c(t);return u(n,e)||r||""},b=function(e,t,r){var n=l(t);return u(n,e)||r||""},m=function(e,t,r){var n=d(t);return u(n,e)||r||""},g=function(e,t,n){n.label=p(e,t,n.label||n.name),n.description=b(e,t,n.description),(0,r.translationI18nMenus)(e,n.admin_menus)},v=function(e,t){i.each(t,(function(t){var r=m(e,t._id,t.label||t.name);t.label=r,t.name=r}))};r.translationI18nMenus=v;var y=function(e,t){i.each(t,(function(t,r){g(e,r,t)}))};r.translationI18nApps=y;var w=function(e,t,r){var n=o(r),a={};return a[c(t)]=p(e,t,n.label||n.name),a[l(t)]=b(e,t,n.description),i.each(n.admin_menus,(function(t){a[d(t._id)]=m(e,t._id,t.label||t.name)})),a};r.getAppI18nTemplate=w,r.appFallbackKeys={getAppLabelKey:c,getAppDescriptionKey:l,getAppGroupKey:f,getMenuLabelKey:d,getTabKey:h}}},translations:{"index.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.SteedosTranslationPrefixKeys=r.convertObject=void 0;var n=t("tslib"),i=t("underscore");n.__exportStar(t("./objectTranslation"),r),n.__exportStar(t("./translation"),r),n.__exportStar(t("./templates/objectTranslation"),r),n.__exportStar(t("./templates/translation"),r);var o=function(e){var t;return(t=e.split(":")).length>1?{label:t[0],value:t[1]}:{label:t[0],value:t[0]}},a=function(e){i.forEach(e.fields,(function(e,t){var r=[];if(e.options&&i.isString(e.options))try{i.forEach(e.options.split("\n"),(function(e){var t;e.indexOf(",")?(t=e.split(","),i.forEach(t,(function(e){return r.push(o(e))}))):r.push(o(e))})),e.options=r}catch(n){console.error("convertFieldsOptions error: ",e.options,n)}else if(e.options&&i.isArray(e.options))try{i.forEach(e.options,(function(e){i.isString(e)?r.push(o(e)):r.push(e)})),e.options=r}catch(n){console.error("Creator.convertFieldsOptions",e.options,n)}else e.options&&!i.isFunction(e.options)&&!i.isArray(e.options)&&i.isObject(e.options)&&(i.each(e.options,(function(e,t){return r.push({label:e,value:t})})),e.options=r)}))},s;r.convertObject=a,function(e){e.Object="CustomObject",e.Field="CustomField",e.Action="CustomAction",e.Listview="CustomListview",e.Permission="CustomPermission",e.ValidationRule="CustomValidationRule",e.Application="CustomApplication",e.Tab="CustomTabs",e.Permissionset="CustomPermissionset",e.Profile="CustomProfile",e.Report="CustomReport",e.Workflow="Workflow",e.Layout="Layout",e.Client="Client",e.Server="Server",e.Function="Function",e.Router="Router",e.Trigger="Trigger"}(s=r.SteedosTranslationPrefixKeys||(r.SteedosTranslationPrefixKeys={}))},"objectTranslation.js":function e(t,r,e,n){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.addObjectsTranslation=r.getObjectTranslationTemplate=r.translationObjects=r.translationObject=r.translationObjectLabel=void 0;var i=t("underscore"),o=t("./"),a=t("../index"),s=t("./index"),u=t("../i18n/i18n"),c=t("lodash"),l=t("crypto"),f,d=(0,t("@steedos/cachers").getCacher)("lru.translations.objects");function h(e){var t;return l.createHash("md5").update(e).digest("hex")}var p=function(e,t){return"".concat(e,"_").concat(t.name,"_").concat(h(JSON.stringify(t)))},b=t("clone"),m=".",g="base",v="core",y="translation",w="object",_="field",x="listview",k="action",S=function(e,t){var r={lng:t,ns:y,keySeparator:!1};if((0,a.exists)(e,r))return(0,a._t)(e,r)},j=function(e){if(!e)return"";var t="core";return"default"!==e&&"meteor"!==e||(t="base"),t},A=function(e){switch(e){case"object":return o.SteedosTranslationPrefixKeys.Object;case"field":return o.SteedosTranslationPrefixKeys.Field;case"listview":return o.SteedosTranslationPrefixKeys.Listview;case"action":return o.SteedosTranslationPrefixKeys.Action;default:return"CustomLabels"}},D=function(e){var t;return[A(),e].join(".")},E=function(e){var t;return[A("object"),e,"label"].join(".")},C=function(e){var t;return[A("object"),e,"description"].join(".")},O=function(e,t){var r;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"label"].join(".")},T=function(e,t){var r;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"help"].join(".")},M=function(e,t){var r;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"description"].join(".")},B=function(e,t){var r=t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_"),n;return[A("field"),e,"group",r].join(".")},I=function(e,t,r){var n;return t&&(t=t.replace(/\./g,"_")),[A("field"),e,t,"options",r].join(".")},R=function(e,t){var r;return[A("action"),e,t].join(".")},N=function(e,t){var r;return[A("listview"),e,t].join(".")},F=function(e,t,r){var n,i=[E(t)],o=u.fallbackKeys.getObjectLabelKey(t);return o&&i.push(o),S(i,e)||r||""};r.translationObjectLabel=F;var P=function(e,t,r){var n=C(t);return S(n,e)||r||""},L=function(e,t,r,n,i,o){var a,s=[O(t,r)],c=u.fallbackKeys.getObjectFieldLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=L(e,f,r,n,i))}return l||n||""},q=function(e,t,r,n,i,o){var a,s=[T(t,r)],c=u.fallbackKeys.getObjectFieldInlineHelpTextLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=q(e,f,r,n,i))}return l||n||""},z=function(e,t,r,n,i,o){var a=M(t,r),s,u=S([a],e);if(1!=o&&!u){var c=j(i);c&&"base"!=t&&"core"!=t&&(u=z(e,c,r,n,i))}return u||n||""},U=function(e,t,r,n,i,o){var a,s=[B(t,r)],c=u.fallbackKeys.getObjectFieldGroupKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=U(e,f,r,n,i))}return l||n||""},H=function(e,t,r,n,i,o,a){var s,c=[I(t,r,n)],l=u.fallbackKeys.getObjectFieldOptionsLabelKey(t,r,n);l&&c.push(l);var f=S(c,e);if(1!=a&&!f){var d=j(o);d&&"base"!=t&&"core"!=t&&(f=H(e,d,r,n,i,o))}return f||i||""},W=function(e,t,r,n,i,o){var a,s=[R(t,r)],c=u.fallbackKeys.getObjectActionLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=W(e,f,r,n,i))}return l||n||""},$=function(e,t,r,n,i,o){var a,s=[N(t,r)],c=u.fallbackKeys.getObjectListviewLabelKey(t,r);c&&s.push(c);var l=S(s,e);if(1!=o&&!l){var f=j(i);f&&"base"!=t&&"core"!=t&&(l=$(e,f,r,n,i))}return l||n||""},Y=function(e,t,n,o,a){void 0===a&&(a=!1);var u=p(e,n);"test_obj_layout1"===t&&console.log("translationObject",t,u);var l=d.get(u);if(l)return Object.assign(n,(0,c.cloneDeep)(l));o&&(0,s.convertObject)(n),n.label=(0,r.translationObjectLabel)(e,t,n.label),n.description=P(e,t,n.description),i.each(n.fields,(function(r,o){if(r.label=L(e,t,o,r.label,n.datasource,a),r.inlineHelpText&&(r.inlineHelpText=q(e,t,o,r.inlineHelpText,n.datasource,a)),r.group&&(r.group=U(e,t,r.group,r.group,n.datasource,a)),r.options){var s=[];i.each(r.options,(function(r){if(i.has(r,"value")){var u=H(e,t,o,r.value,r.label,n.datasource,a);s.push(i.extend({},r,{label:u}))}else s.push(r)})),r.options=s}})),i.each(n.actions,(function(r,i){r.label=W(e,t,i,r.label,n.datasource,a)})),i.each(n.list_views,(function(r,i){r.label=$(e,t,i,r.label,n.datasource,a)})),d.set(u,(0,c.cloneDeep)(n))};r.translationObject=Y;var V=function(e,t){i.each(t,(function(t,n){(0,r.translationObject)(e,n,t)}))};r.translationObjects=V;var K=function(e,t,n){var o=b(n);(0,s.convertObject)(o);var a={};return a[E(t)]=(0,r.translationObjectLabel)(e,t,o.label),a[C(t)]=P(e,t,o.description),i.each(o.fields,(function(r,n){a[O(t,n)]=L(e,t,n,r.label),r.inlineHelpText&&(a[T(t,n)]=q(e,t,n,r.inlineHelpText,o.datasource)),r.description&&(a[M(t,n)]=z(e,t,n,r.description,o.datasource)),r.group&&(a[B(t,r.group)]=U(e,t,r.group,r.group,o.datasource)),r.options&&i.each(r.options,(function(r){i.has(r,"value")&&(a[I(t,n,r.value)]=H(e,t,n,r.value,r.label))}))})),i.each(o.actions,(function(r,n){a[R(t,n)]=W(e,t,n,r.label)})),i.each(o.list_views,(function(r,n){a[N(t,n)]=$(e,t,n,r.label)})),a};function G(e,t){var r=b(e);(0,s.convertObject)(r);var n={},o=r.name;return o||console.error("Error: Invalid objectTranslation:"+t),n[E(o)]=r.label,n[C(o)]=r.description,i.each(r.fields,(function(e,t){n[O(o,t)]=e.label,e.help&&(n[T(o,t)]=e.help),e.description&&(n[M(o,t)]=e.description),e.options&&i.each(e.options,(function(e){i.has(e,"value")&&(n[I(o,t,e.value)]=e.label)}))})),i.each(r.groups,(function(e,t){n[B(o,t)]=e})),i.each(r.actions,(function(e,t){n[R(o,t)]=e.label})),i.each(r.listviews,(function(e,t){n[N(o,t)]=e.label})),i.each(r.CustomLabels,(function(e,t){n[D(t)]=e})),n}r.getObjectTranslationTemplate=K;var X=function(e){i.each(e,(function(e){var t=G(e.data,e.__filename);(0,a.addResourceBundle)(e.lng,y,t,!0,!0)}))};r.addObjectsTranslation=X},"translation.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.addTranslations=r.convertTranslation=r.convertTranslationData=r.getAppTranslationTemplate=r.translationApps=r.translationMenus=r.translationApp=r.translationTabLabel=r.translationTabGroup=void 0;var n=t("../index"),i=t("underscore"),o=t("./"),a=t("../i18n/i18n.app"),s=t("clone"),u="translation",c=".",l="app",f="menu",d="tab",h=function(e){switch(e){case"app":return o.SteedosTranslationPrefixKeys.Application;case"tab":return o.SteedosTranslationPrefixKeys.Tab;default:return"CustomLabels"}},p=function(e){var t;return[h(),e].join(".")},b=function(e,t){var r={lng:t,ns:u,keySeparator:!1};if((0,n.exists)(e,r))return(0,n._t)(e,r)},m=function(e){var t;return[h("app"),e,"name"].join(".")},g=function(e){var t;return[h("app"),e,"description"].join(".")},v=function(e,t){var r,n;return[h("app"),e,"groups",t.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_")].join(".")},y=function(e){var t;return[h("menu"),"menu_".concat(e)].join(".")},w=function(e){var t;return[h("tab"),e].join(".")},_=function(e,t,r){var n,i=[m(t)],o=a.appFallbackKeys.getAppLabelKey(t);return o&&i.push(o),b(i,e)||r||""},x=function(e,t,r){var n,i=[g(t)],o=a.appFallbackKeys.getAppDescriptionKey(t);return o&&i.push(o),b(i,e)||r||""},k=function(e,t,r,n){var i,o=[v(t,r)],s=a.appFallbackKeys.getAppGroupKey(t,r);return s&&o.push(s),b(o,e)||n||""};r.translationTabGroup=k;var S=function(e,t,r){var n,i=[y(t)],o=a.appFallbackKeys.getMenuLabelKey(t);return o&&i.push(o),b(i,e)||r||""},j=function(e,t,r){var n,i=[w(t)],o=a.appFallbackKeys.getTabKey(t);return o&&i.push(o),b(i,e)||r||""};r.translationTabLabel=j;var A=function(e,t,n){n.label=_(e,t,n.label||n.name),n.description=x(e,t,n.description),i.each(n.tab_groups,(function(i,o){n.tab_groups[o].id=i.id||i.group_name,n.tab_groups[o].group_name=(0,r.translationTabGroup)(e,t,i.group_name,i.group_name)})),(0,r.translationMenus)(e,n.admin_menus)};r.translationApp=A;var D=function(e,t){i.each(t,(function(t){var r=S(e,t._id,t.label||t.name);t.label=r,t.name=r}))};r.translationMenus=D;var E=function(e,t){i.each(t,(function(t,n){(0,r.translationApp)(e,n,t)}))};r.translationApps=E;var C=function(e,t,r){var n=s(r),o={};return o[m(t)]=_(e,t,n.label||n.name),o[g(t)]=x(e,t,n.description),i.each(n.admin_menus,(function(t){o[y(t._id)]=S(e,t._id,t.label||t.name)})),o};r.getAppTranslationTemplate=C;var O=function(e,t,r){i.isArray(r)?i.each(r,(function(e){O(e,"",e)})):r&&i.each(i.keys(r),(function(n){var o=t?"".concat(t,".").concat(n):n,a=r[n];"object"==typeof a?i.isArray(a)?i.each(a,(function(e){O(e,o,a)})):O(e,o,a):e[o]=a}))};function T(e){for(var t in e)"object"==typeof e[t]&&O(e,t,e[t]);return e}r.convertTranslationData=T;var M=function(e){var t=s(e),r={};return i.each(t.CustomApplications,(function(e,t){r[m(t)]=e.name,r[g(t)]=e.description,i.each(e.groups,(function(e,n){r[v(t,n)]=e}))})),i.each(t.CustomTabs,(function(e,t){r[w(t)]=e})),i.each(t.CustomLabels,(function(e,t){var n;if("simpleschema"!=t&&i.isObject(e)){var o=T(((n={})[t]=e,n));i.each(o,(function(e,t){i.isObject(e)||(r[p(t)]=e)}))}else r[p(t)]=e})),r};r.convertTranslation=M;var B=function(e){i.each(e,(function(e){var t=(0,r.convertTranslation)(e.data);(0,n.addResourceBundle)(e.lng,u,t,!0,!0)}))};r.addTranslations=B},templates:{"objectTranslation.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getObjectMetadataTranslationTemplate=void 0;var n=t("underscore"),i=t("../index"),o=t("clone");function a(e,t){var r={};return n.each(e,(function(e){r[e]="help"===e?t.inlineHelpText||"":t[e]||""})),r}function s(e){return a(["label","description"],e)}function u(e){switch(e.type){case"select":return a(["label","help","options","description"],e);default:return a(["label","help","description"],e)}}function c(e){return a(["label"],e)}function l(e){return a(["label"],e)}function f(e){var t={};return n.each(e,(function(e,r){t[r]=u(e)})),t}function d(e){var t={};return n.each(e,(function(e,r){t[r]=l(e)})),t}function h(e){var t={};return n.each(e,(function(e,r){t[r]=c(e)})),t}function p(e,t){var r={};return n.each(e,(function(e,n){if(e.group){var i=e.group.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");r[i]=t[n].group}})),r}var b=function(e,t,r,a){void 0===a&&(a=!1);var u=o(r);1!=a&&(0,i.translationObject)(e,t,u,!0,a);var c=Object.assign({},s(u));c=Object.assign({},c,{fields:f(u.fields)});var l=p(r.fields,u.fields);n.isEmpty(l)||(c=Object.assign({},c,{groups:l}));var b=h(u.list_views);n.isEmpty(b)||(c=Object.assign({},c,{listviews:b}));var m=d(u.actions);return n.isEmpty(m)||(c=Object.assign({},c,{actions:m})),Object.assign({name:t},c)};r.getObjectMetadataTranslationTemplate=b},"translation.js":function e(t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getAppMetadataTranslationTemplate=void 0;var n=t("underscore"),i=t("../index"),o=t("clone");function a(e,t){var r={};return n.each(e,(function(e){r[e]=t[e]||""})),r}function s(e){var t={groups:{}};return e?(n.each(e,(function(e){var r=e.group_name.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t.groups[r]=e.group_name})),t):{}}var u=function(e){return Object.assign({},a(["name","description"],e),s(e.tab_groups))},c=function(e){var t={};return n.each(e,(function(e,r){t[r]=r})),t},l=function(e){var t={};return n.each(e,(function(e){var r=e.toLocaleLowerCase().replace(/\%/g,"_").replace(/\./g,"_").replace(/\ /g,"_");t[r]=e})),t},f=function(e,t,r){var n,a=o(r);(0,i.translationApp)(e,t,a);var s={},f;return a.tab_items?s=c(a.tab_items):a.tabs&&(s=l(a.tabs)),Object.assign({},{CustomApplications:(n={},n[t]=u(a),n)},{CustomTabs:s})};r.getAppMetadataTranslationTemplate=f}}}},node_modules:{i18next:{"package.json":function e(t,r,e){e.exports={name:"i18next",version:"19.9.2",main:"./dist/cjs/i18next.js",module:"./dist/esm/i18next.js"}},dist:{cjs:{"i18next.js":function e(t,r,e){"use strict";var n=t("@babel/runtime/helpers/typeof"),i=t("@babel/runtime/helpers/objectSpread"),o=t("@babel/runtime/helpers/classCallCheck"),a=t("@babel/runtime/helpers/createClass"),s=t("@babel/runtime/helpers/possibleConstructorReturn"),u=t("@babel/runtime/helpers/getPrototypeOf"),c=t("@babel/runtime/helpers/assertThisInitialized"),l=t("@babel/runtime/helpers/inherits");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=f(n),h=f(i),p=f(o),b=f(a),m=f(s),g=f(u),v=f(c),y=f(l),w={type:"logger",log:function e(t){this.output("log",t)},warn:function e(t){this.output("warn",t)},error:function e(t){this.output("error",t)},output:function e(t,r){console&&console[t]&&console[t].apply(console,r)}},_,x=new(function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};p.default(this,e),this.init(t,r)}return b.default(e,[{key:"init",value:function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=t||w,this.options=r,this.debug=r.debug}},{key:"setDebug",value:function e(t){this.debug=t}},{key:"log",value:function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?r-1:0),i=1;i-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var o="string"!=typeof t?[].concat(t):t.split(".");o.length>1;){if(i())return{};var a=n(o.shift());!e[a]&&r&&(e[a]=new r),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return i()?{}:{obj:e,k:n(o.shift())}}function E(e,t,r){var n=D(e,t,Object),i,o;n.obj[n.k]=r}function C(e,t,r,n){var i=D(e,t,Object),o=i.obj,a=i.k;o[a]=o[a]||[],n&&(o[a]=o[a].concat(r)),n||o[a].push(r)}function O(e,t){var r=D(e,t),n=r.obj,i=r.k;if(n)return n[i]}function T(e,t,r){var n=O(e,r);return void 0!==n?n:O(t,r)}function M(e,t,r){for(var n in t)"__proto__"!==n&&"constructor"!==n&&(n in e?"string"==typeof e[n]||e[n]instanceof String||"string"==typeof t[n]||t[n]instanceof String?r&&(e[n]=t[n]):M(e[n],t[n],r):e[n]=t[n]);return e}function B(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var I={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function R(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,(function(e){return I[e]})):e}var N="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,F=function(e){function t(e){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return p.default(this,t),r=m.default(this,g.default(t).call(this)),N&&k.call(v.default(r)),r.data=e||{},r.options=n,void 0===r.options.keySeparator&&(r.options.keySeparator="."),r}return y.default(t,e),b.default(t,[{key:"addNamespaces",value:function e(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}},{key:"removeNamespaces",value:function e(t){var r=this.options.ns.indexOf(t);r>-1&&this.options.ns.splice(r,1)}},{key:"getResource",value:function e(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,a=[t,r];return n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(o?n.split(o):n)),t.indexOf(".")>-1&&(a=t.split(".")),O(this.data,a)}},{key:"addResource",value:function e(t,r,n,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var s=[t,r];n&&(s=s.concat(a?n.split(a):n)),t.indexOf(".")>-1&&(i=r,r=(s=t.split("."))[1]),this.addNamespaces(r),E(this.data,s,i),o.silent||this.emit("added",t,r,n,i)}},{key:"addResources",value:function e(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)"string"!=typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(t,r,o,n[o],{silent:!0});i.silent||this.emit("added",t,r,n)}},{key:"addResourceBundle",value:function e(t,r,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},s=[t,r];t.indexOf(".")>-1&&(i=n,n=r,r=(s=t.split("."))[1]),this.addNamespaces(r);var u=O(this.data,s)||{};i?M(u,n,o):u=h.default({},u,n),E(this.data,s,u),a.silent||this.emit("added",t,r,n)}},{key:"removeResourceBundle",value:function e(t,r){this.hasResourceBundle(t,r)&&delete this.data[t][r],this.removeNamespaces(r),this.emit("removed",t,r)}},{key:"hasResourceBundle",value:function e(t,r){return void 0!==this.getResource(t,r)}},{key:"getResourceBundle",value:function e(t,r){return r||(r=this.options.defaultNS),"v1"===this.options.compatibilityAPI?h.default({},{},this.getResource(t,r)):this.getResource(t,r)}},{key:"getDataByLanguage",value:function e(t){return this.data[t]}},{key:"toJSON",value:function e(){return this.data}}]),t}(k),P={processors:{},addPostProcessor:function e(t){this.processors[t.name]=t},handle:function e(t,r,n,i,o){var a=this;return t.forEach((function(e){a.processors[e]&&(r=a.processors[e].process(r,n,i,o))})),r}},L={},q=function(e){function t(e){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return p.default(this,t),r=m.default(this,g.default(t).call(this)),N&&k.call(v.default(r)),A(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,v.default(r)),r.options=n,void 0===r.options.keySeparator&&(r.options.keySeparator="."),r.logger=x.create("translator"),r}return y.default(t,e),b.default(t,[{key:"changeLanguage",value:function e(t){t&&(this.language=t)}},{key:"exists",value:function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=this.resolve(t,r);return n&&void 0!==n.res}},{key:"extractFromKey",value:function e(t,r){var n=void 0!==r.nsSeparator?r.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var i=void 0!==r.keySeparator?r.keySeparator:this.options.keySeparator,o=r.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var a=t.match(this.interpolator.nestingRegexp);if(a&&a.length>0)return{key:t,namespaces:o};var s=t.split(n);(n!==i||n===i&&this.options.ns.indexOf(s[0])>-1)&&(o=s.shift()),t=s.join(i)}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}}},{key:"translate",value:function e(r,n,i){var o=this;if("object"!==d.default(n)&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),n||(n={}),null==r)return"";Array.isArray(r)||(r=[String(r)]);var a=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,s=this.extractFromKey(r[r.length-1],n),u=s.key,c=s.namespaces,l=c[c.length-1],f=n.lng||this.language,p=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f&&"cimode"===f.toLowerCase()){if(p){var b=n.nsSeparator||this.options.nsSeparator;return l+b+u}return u}var m=this.resolve(r,n),g=m&&m.res,v=m&&m.usedKey||u,y=m&&m.exactUsedKey||u,w=Object.prototype.toString.apply(g),_=["[object Number]","[object Function]","[object RegExp]"],x=void 0!==n.joinArrays?n.joinArrays:this.options.joinArrays,k=!this.i18nFormat||this.i18nFormat.handleAsObject,S="string"!=typeof g&&"boolean"!=typeof g&&"number"!=typeof g;if(k&&g&&S&&_.indexOf(w)<0&&("string"!=typeof x||"[object Array]"!==w)){if(!n.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(v,g,n):"key '".concat(u," (").concat(this.language,")' returned an object instead of string.");if(a){var j="[object Array]"===w,A=j?[]:{},D=j?y:v;for(var E in g)if(Object.prototype.hasOwnProperty.call(g,E)){var C="".concat(D).concat(a).concat(E);A[E]=this.translate(C,h.default({},n,{joinArrays:!1,ns:c})),A[E]===C&&(A[E]=g[E])}g=A}}else if(k&&"string"==typeof x&&"[object Array]"===w)(g=g.join(x))&&(g=this.extendTranslation(g,r,n,i));else{var O=!1,T=!1,M=void 0!==n.count&&"string"!=typeof n.count,B=t.hasDefaultValue(n),I=M?this.pluralResolver.getSuffix(f,n.count):"",R=n["defaultValue".concat(I)]||n.defaultValue;!this.isValidLookup(g)&&B&&(O=!0,g=R),this.isValidLookup(g)||(T=!0,g=u);var N=B&&R!==g&&this.options.updateMissing;if(T||O||N){if(this.logger.log(N?"updateKey":"missingKey",f,l,u,N?R:g),a){var F=this.resolve(u,h.default({},n,{keySeparator:!1}));F&&F.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var P=[],L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if("fallback"===this.options.saveMissingTo&&L&&L[0])for(var q=0;q1&&void 0!==arguments[1]?arguments[1]:{},i,o,a,s,u;return"string"==typeof t&&(t=[t]),t.forEach((function(e){if(!r.isValidLookup(i)){var t=r.extractFromKey(e,n),c=t.key;o=c;var l=t.namespaces;r.options.fallbackNS&&(l=l.concat(r.options.fallbackNS));var f=void 0!==n.count&&"string"!=typeof n.count,d=void 0!==n.context&&"string"==typeof n.context&&""!==n.context,h=n.lngs?n.lngs:r.languageUtils.toResolveHierarchy(n.lng||r.language,n.fallbackLng);l.forEach((function(e){r.isValidLookup(i)||(u=e,!L["".concat(h[0],"-").concat(e)]&&r.utils&&r.utils.hasLoadedNamespace&&!r.utils.hasLoadedNamespace(u)&&(L["".concat(h[0],"-").concat(e)]=!0,r.logger.warn('key "'.concat(o,'" for languages "').concat(h.join(", "),'" won\'t get resolved as namespace "').concat(u,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),h.forEach((function(t){if(!r.isValidLookup(i)){s=t;var o=c,u=[o],l,h;if(r.i18nFormat&&r.i18nFormat.addLookupKeys)r.i18nFormat.addLookupKeys(u,c,t,e,n);else f&&(l=r.pluralResolver.getSuffix(t,n.count)),f&&d&&u.push(o+l),d&&u.push(o+="".concat(r.options.contextSeparator).concat(n.context)),f&&u.push(o+=l);for(;h=u.pop();)r.isValidLookup(i)||(a=h,i=r.getResource(t,e,h,n))}})))}))}})),{res:i,usedKey:o,exactUsedKey:a,usedLng:s,usedNS:u}}},{key:"isValidLookup",value:function e(t){return!(void 0===t||!this.options.returnNull&&null===t||!this.options.returnEmptyString&&""===t)}},{key:"getResource",value:function e(t,r,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,r,n,i):this.resourceStore.getResource(t,r,n,i)}}],[{key:"hasDefaultValue",value:function e(t){var r="defaultValue";for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&r===n.substring(0,r.length)&&void 0!==t[n])return!0;return!1}}]),t}(k);function z(e){return e.charAt(0).toUpperCase()+e.slice(1)}var U=function(){function e(t){p.default(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=x.create("languageUtils")}return b.default(e,[{key:"getScriptPartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return null;var r=t.split("-");return 2===r.length?null:(r.pop(),"x"===r[r.length-1].toLowerCase()?null:this.formatLanguageCode(r.join("-")))}},{key:"getLanguagePartFromCode",value:function e(t){if(!t||t.indexOf("-")<0)return t;var r=t.split("-");return this.formatLanguageCode(r[0])}},{key:"formatLanguageCode",value:function e(t){if("string"==typeof t&&t.indexOf("-")>-1){var r=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map((function(e){return e.toLowerCase()})):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),r.indexOf(n[1].toLowerCase())>-1&&(n[1]=z(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),r.indexOf(n[1].toLowerCase())>-1&&(n[1]=z(n[1].toLowerCase())),r.indexOf(n[2].toLowerCase())>-1&&(n[2]=z(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}},{key:"isWhitelisted",value:function e(t){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(t)}},{key:"isSupportedCode",value:function e(t){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}},{key:"getBestMatchFromCodes",value:function e(t){var r=this,n;return t?(t.forEach((function(e){if(!n){var t=r.formatLanguageCode(e);r.options.supportedLngs&&!r.isSupportedCode(t)||(n=t)}})),!n&&this.options.supportedLngs&&t.forEach((function(e){if(!n){var t=r.getLanguagePartFromCode(e);if(r.isSupportedCode(t))return n=t;n=r.options.supportedLngs.find((function(e){if(0===e.indexOf(t))return e}))}})),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n):null}},{key:"getFallbackCodes",value:function e(t,r){if(!t)return[];if("function"==typeof t&&(t=t(r)),"string"==typeof t&&(t=[t]),"[object Array]"===Object.prototype.toString.apply(t))return t;if(!r)return t.default||[];var n=t[r];return n||(n=t[this.getScriptPartFromCode(r)]),n||(n=t[this.formatLanguageCode(r)]),n||(n=t[this.getLanguagePartFromCode(r)]),n||(n=t.default),n||[]}},{key:"toResolveHierarchy",value:function e(t,r){var n=this,i=this.getFallbackCodes(r||this.options.fallbackLng||[],t),o=[],a=function e(t){t&&(n.isSupportedCode(t)?o.push(t):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(t)))};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(t)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(t)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(t))):"string"==typeof t&&a(this.formatLanguageCode(t)),i.forEach((function(e){o.indexOf(e)<0&&a(n.formatLanguageCode(e))})),o}}]),e}(),H=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],W={1:function e(t){return Number(t>1)},2:function e(t){return Number(1!=t)},3:function e(t){return 0},4:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function e(t){return Number(0==t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function e(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function e(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function e(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function e(t){return Number(t>=2)},10:function e(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function e(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function e(t){return Number(t%10!=1||t%100==11)},13:function e(t){return Number(0!==t)},14:function e(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function e(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function e(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function e(t){return Number(1==t||t%10==1&&t%100!=11?0:1)},18:function e(t){return Number(0==t?0:1==t?1:2)},19:function e(t){return Number(1==t?0:0==t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function e(t){return Number(1==t?0:0==t||t%100>0&&t%100<20?1:2)},21:function e(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)},22:function e(t){return Number(1==t?0:2==t?1:(t<0||t>10)&&t%10==0?2:3)}};function $(){var e={};return H.forEach((function(t){t.lngs.forEach((function(r){e[r]={numbers:t.nr,plurals:W[t.fc]}}))})),e}var Y=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};p.default(this,e),this.languageUtils=t,this.options=r,this.logger=x.create("pluralResolver"),this.rules=$()}return b.default(e,[{key:"addRule",value:function e(t,r){this.rules[t]=r}},{key:"getRule",value:function e(t){return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}},{key:"needsPlural",value:function e(t){var r=this.getRule(t);return r&&r.numbers.length>1}},{key:"getPluralFormsOfKey",value:function e(t,r){return this.getSuffixes(t).map((function(e){return r+e}))}},{key:"getSuffixes",value:function e(t){var r=this,n=this.getRule(t);return n?n.numbers.map((function(e){return r.getSuffix(t,e)})):[]}},{key:"getSuffix",value:function e(t,r){var n=this,i=this.getRule(t);if(i){var o=i.noAbs?i.plurals(r):i.plurals(Math.abs(r)),a=i.numbers[o];this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]&&(2===a?a="plural":1===a&&(a=""));var s=function e(){return n.options.prepend&&a.toString()?n.options.prepend+a.toString():a.toString()};return"v1"===this.options.compatibilityJSON?1===a?"":"number"==typeof a?"_plural_".concat(a.toString()):s():"v2"===this.options.compatibilityJSON?s():this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]?s():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(t)),""}}]),e}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};p.default(this,e),this.logger=x.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return b.default(e,[{key:"init",value:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});var r=t.interpolation;this.escape=void 0!==r.escape?r.escape:R,this.escapeValue=void 0===r.escapeValue||r.escapeValue,this.useRawValueToEscape=void 0!==r.useRawValueToEscape&&r.useRawValueToEscape,this.prefix=r.prefix?B(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?B(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?B(r.nestingPrefix):r.nestingPrefixEscaped||B("$t("),this.nestingSuffix=r.nestingSuffix?B(r.nestingSuffix):r.nestingSuffixEscaped||B(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=void 0!==r.alwaysFormat&&r.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function e(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function e(){var t="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(t,"g");var r="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(r,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function e(t,r,n,i){var o=this,a,s,u,c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function l(e){return e.replace(/\$/g,"$$$$")}var f=function e(t){if(t.indexOf(o.formatSeparator)<0){var a=T(r,c,t);return o.alwaysFormat?o.format(a,void 0,n):a}var s=t.split(o.formatSeparator),u=s.shift().trim(),l=s.join(o.formatSeparator).trim();return o.format(T(r,c,u),l,n,i)};this.resetRegExp();var d=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,h=i&&i.interpolation&&i.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,p;return[{regex:this.regexpUnescape,safeValue:function e(t){return l(t)}},{regex:this.regexp,safeValue:function e(t){return o.escapeValue?l(o.escape(t)):l(t)}}].forEach((function(e){for(u=0;a=e.regex.exec(t);){if(void 0===(s=f(a[1].trim())))if("function"==typeof d){var r=d(t,a,i);s="string"==typeof r?r:""}else{if(h){s=a[0];continue}o.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(t)),s=""}else"string"==typeof s||o.useRawValueToEscape||(s=j(s));if(t=t.replace(a[0],e.safeValue(s)),e.regex.lastIndex=0,++u>=o.maxReplaces)break}})),t}},{key:"nest",value:function e(t,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o,a,s=h.default({},i);function u(e,t){var r=this.nestingOptionsSeparator;if(e.indexOf(r)<0)return e;var n=e.split(new RegExp("".concat(r,"[ ]*{"))),i="{".concat(n[1]);e=n[0],i=(i=this.interpolate(i,s)).replace(/'/g,'"');try{s=JSON.parse(i),t&&(s=h.default({},t,s))}catch(o){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),o),"".concat(e).concat(r).concat(i)}return delete s.defaultValue,e}for(s.applyPostProcessor=!1,delete s.defaultValue;o=this.nestingRegexp.exec(t);){var c=[],l=!1;if(o[0].includes(this.formatSeparator)&&!/{.*}/.test(o[1])){var f=o[1].split(this.formatSeparator).map((function(e){return e.trim()}));o[1]=f.shift(),c=f,l=!0}if((a=r(u.call(this,o[1].trim(),s),s))&&o[0]===t&&"string"!=typeof a)return a;"string"!=typeof a&&(a=j(a)),a||(this.logger.warn("missed to resolve ".concat(o[1]," for nesting ").concat(t)),a=""),l&&(a=c.reduce((function(e,t){return n.format(e,t,i.lng,i)}),a.trim())),t=t.replace(o[0],a),this.regexp.lastIndex=0}return t}}]),e}();function K(e,t){for(var r=e.indexOf(t);-1!==r;)e.splice(r,1),r=e.indexOf(t)}var G=function(e){function t(e,r,n){var i,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return p.default(this,t),i=m.default(this,g.default(t).call(this)),N&&k.call(v.default(i)),i.backend=e,i.store=r,i.services=n,i.languageUtils=n.languageUtils,i.options=o,i.logger=x.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(n,o.backend,o),i}return y.default(t,e),b.default(t,[{key:"queueLoad",value:function e(t,r,n,i){var o=this,a=[],s=[],u=[],c=[];return t.forEach((function(e){var t=!0;r.forEach((function(r){var i="".concat(e,"|").concat(r);!n.reload&&o.store.hasResourceBundle(e,r)?o.state[i]=2:o.state[i]<0||(1===o.state[i]?s.indexOf(i)<0&&s.push(i):(o.state[i]=1,t=!1,s.indexOf(i)<0&&s.push(i),a.indexOf(i)<0&&a.push(i),c.indexOf(r)<0&&c.push(r)))})),t||u.push(e)})),(a.length||s.length)&&this.queue.push({pending:s,loaded:{},errors:[],callback:i}),{toLoad:a,pending:s,toLoadLanguages:u,toLoadNamespaces:c}}},{key:"loaded",value:function e(t,r,n){var i=t.split("|"),o=i[0],a=i[1];r&&this.emit("failedLoading",o,a,r),n&&this.store.addResourceBundle(o,a,n),this.state[t]=r?-1:2;var e={};this.queue.forEach((function(n){C(n.loaded,[o],a),K(n.pending,t),r&&n.errors.push(r),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach((function(t){e[t]||(e[t]=[]),n.loaded[t].length&&n.loaded[t].forEach((function(r){e[t].indexOf(r)<0&&e[t].push(r)}))})),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())})),this.emit("loaded",e),this.queue=this.queue.filter((function(e){return!e.done}))}},{key:"read",value:function e(t,r,n){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,s=arguments.length>5?arguments[5]:void 0;return t.length?this.backend[n](t,r,(function(e,u){e&&u&&o<5?setTimeout((function(){i.read.call(i,t,r,n,o+1,2*a,s)}),a):s(e,u)})):s(null,{})}},{key:"prepareLoading",value:function e(t,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof t&&(t=this.languageUtils.toResolveHierarchy(t)),"string"==typeof r&&(r=[r]);var a=this.queueLoad(t,r,i,o);if(!a.toLoad.length)return a.pending.length||o(),null;a.toLoad.forEach((function(e){n.loadOne(e)}))}},{key:"load",value:function e(t,r,n){this.prepareLoading(t,r,{},n)}},{key:"reload",value:function e(t,r,n){this.prepareLoading(t,r,{reload:!0},n)}},{key:"loadOne",value:function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=t.split("|"),o=i[0],a=i[1];this.read(o,a,"read",void 0,void 0,(function(e,i){e&&r.logger.warn("".concat(n,"loading namespace ").concat(a," for language ").concat(o," failed"),e),!e&&i&&r.logger.log("".concat(n,"loaded namespace ").concat(a," for language ").concat(o),i),r.loaded(t,e,i)}))}},{key:"saveMissing",value:function e(t,r,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(r)?this.logger.warn('did not save key "'.concat(n,'" as the namespace "').concat(r,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=n&&""!==n&&(this.backend&&this.backend.create&&this.backend.create(t,r,n,i,null,h.default({},a,{isUpdate:o})),t&&t[0]&&this.store.addResource(t[0],r,n,i))}}]),t}(k);function X(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function e(t){var r={};if("object"===d.default(t[1])&&(r=t[1]),"string"==typeof t[1]&&(r.defaultValue=t[1]),"string"==typeof t[2]&&(r.tDescription=t[2]),"object"===d.default(t[2])||"object"===d.default(t[3])){var n=t[3]||t[2];Object.keys(n).forEach((function(e){r[e]=n[e]}))}return r},interpolation:{escapeValue:!0,format:function e(t,r,n,i){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}}}function Z(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function J(){}var Q,ee=new(function(e){function t(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(p.default(this,t),e=m.default(this,g.default(t).call(this)),N&&k.call(v.default(e)),e.options=Z(r),e.services={},e.logger=x,e.modules={external:[]},n&&!e.isInitialized&&!r.isClone){if(!e.options.initImmediate)return e.init(r,n),m.default(e,v.default(e));setTimeout((function(){e.init(r,n)}),0)}return e}return y.default(t,e),b.default(t,[{key:"init",value:function e(){var t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;function i(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof r&&(n=r,r={}),r.whitelist&&!r.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),r.nonExplicitWhitelist&&!r.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=h.default({},X(),this.options,Z(r)),this.format=this.options.interpolation.format,n||(n=J),!this.options.isClone){this.modules.logger?x.init(i(this.modules.logger),this.options):x.init(null,this.options);var o=new U(this.options);this.store=new F(this.options.resources,this.options);var a=this.services;a.logger=x,a.resourceStore=this.store,a.languageUtils=o,a.pluralResolver=new Y(o,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new V(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new G(i(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",(function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1?r-1:0),i=1;i0&&"dev"!==s[0]&&(this.options.lng=s[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");var u=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];u.forEach((function(e){t[e]=function(){var r;return(r=t.store)[e].apply(r,arguments)}}));var c=["addResource","addResources","addResourceBundle","removeResourceBundle"];c.forEach((function(e){t[e]=function(){var r;return(r=t.store)[e].apply(r,arguments),t}}));var l=S(),f=function e(){var r=function e(r,i){t.isInitialized&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(i),n(r,i)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return r(null,t.t.bind(t));t.changeLanguage(t.options.lng,r)};return this.options.resources||!this.options.initImmediate?f():setTimeout(f,0),l}},{key:"loadResources",value:function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J,i=n,o="string"==typeof t?t:this.language;if("function"==typeof t&&(i=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&"cimode"===o.toLowerCase())return i();var a=[],s=function e(t){var n;t&&r.services.languageUtils.toResolveHierarchy(t).forEach((function(e){a.indexOf(e)<0&&a.push(e)}))};if(o)s(o);else{var u=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);u.forEach((function(e){return s(e)}))}this.options.preload&&this.options.preload.forEach((function(e){return s(e)})),this.services.backendConnector.load(a,this.options.ns,i)}else i(null)}},{key:"reloadResources",value:function e(t,r,n){var i=S();return t||(t=this.languages),r||(r=this.options.ns),n||(n=J),this.services.backendConnector.reload(t,r,(function(e){i.resolve(),n(e)})),i}},{key:"use",value:function e(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===t.type&&(this.modules.backend=t),("logger"===t.type||t.log&&t.warn&&t.error)&&(this.modules.logger=t),"languageDetector"===t.type&&(this.modules.languageDetector=t),"i18nFormat"===t.type&&(this.modules.i18nFormat=t),"postProcessor"===t.type&&P.addPostProcessor(t),"3rdParty"===t.type&&this.modules.external.push(t),this}},{key:"changeLanguage",value:function e(t,r){var n=this;this.isLanguageChangingTo=t;var i=S();this.emit("languageChanging",t);var o=function e(t,o){o?(n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o),n.translator.changeLanguage(o),n.isLanguageChangingTo=void 0,n.emit("languageChanged",o),n.logger.log("languageChanged",o)):n.isLanguageChangingTo=void 0,i.resolve((function(){return n.t.apply(n,arguments)})),r&&r(t,(function(){return n.t.apply(n,arguments)}))},a=function e(t){var r="string"==typeof t?t:n.services.languageUtils.getBestMatchFromCodes(t);r&&(n.language||(n.language=r,n.languages=n.services.languageUtils.toResolveHierarchy(r)),n.translator.language||n.translator.changeLanguage(r),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(r)),n.loadResources(r,(function(e){o(e,r)}))};return t||!this.services.languageDetector||this.services.languageDetector.async?!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(a):a(t):a(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function e(t,r){var n=this,i=function e(t,r){var i;if("object"!==d.default(r)){for(var o=arguments.length,a=new Array(o>2?o-2:0),s=2;s1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.languages[0],o=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var s=function e(t,n){var i=r.services.backendConnector.state["".concat(t,"|").concat(n)];return-1===i||2===i};if(n.precheck){var u=n.precheck(this,s);if(void 0!==u)return u}return!!this.hasResourceBundle(i,t)||(!this.services.backendConnector.backend||!(!s(i,t)||o&&!s(a,t)))}},{key:"loadNamespaces",value:function e(t,r){var n=this,i=S();return this.options.ns?("string"==typeof t&&(t=[t]),t.forEach((function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)})),this.loadResources((function(e){i.resolve(),r&&r(e)})),i):(r&&r(),Promise.resolve())}},{key:"loadLanguages",value:function e(t,r){var n=S();"string"==typeof t&&(t=[t]);var i=this.options.preload||[],o=t.filter((function(e){return i.indexOf(e)<0}));return o.length?(this.options.preload=i.concat(o),this.loadResources((function(e){n.resolve(),r&&r(e)})),n):(r&&r(),Promise.resolve())}},{key:"dir",value:function e(t){return t||(t=this.languages&&this.languages.length>0?this.languages[0]:this.language),t?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(t))>=0?"rtl":"ltr":"rtl";var r}},{key:"createInstance",value:function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(r,n)}},{key:"cloneInstance",value:function e(){var r=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J,o=h.default({},this.options,n,{isClone:!0}),a=new t(o),s=["store","services","language"];return s.forEach((function(e){a[e]=r[e]})),a.services=h.default({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new q(a.services,a.options),a.translator.on("*",(function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=0&&r<=y}}function Z(e){return function(t){return null==t?void 0:t[e]}}var J=Z("byteLength"),Q=X(J),ee=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function te(e){return p?p(e)&&!U(e):Q(e)&&ee.test(s.call(e))}var re=c?te:G(!1),ne=Z("length");function ie(e){for(var t={},r=e.length,n=0;n":">",'"':""","'":"'","`":"`"},st=ot(at),ut,ct=ot(Oe(at)),lt=ce.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},ft=/(.)^/,dt={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},ht=/\\|'|\r|\n|\u2028|\u2029/g;function pt(e){return"\\"+dt[e]}var bt=/^\s*(\w|\$)+\s*$/;function mt(e,t,r){!t&&r&&(t=r),t=Re({},t,ce.templateSettings);var n=RegExp([(t.escape||ft).source,(t.interpolate||ft).source,(t.evaluate||ft).source].join("|")+"|$","g"),i=0,o="__p+='";e.replace(n,(function(t,r,n,a,s){return o+=e.slice(i,s).replace(ht,pt),i=s+t.length,r?o+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":n?o+="'+\n((__t=("+n+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),t})),o+="';\n";var a=t.variable,s;if(a){if(!bt.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{s=new Function(a,"_",o)}catch(c){throw c.source=o,c}var u=function(e){return s.call(this,e,ce)};return u.source="function("+a+"){\n"+o+"}",u}function gt(e,t,r){var n=(t=Ue(t)).length;if(!n)return N(r)?r.call(e):r;for(var i=0;i1)jt(s,t-1,r,n),i=n.length;else for(var u=0,c=s.length;ut?(n&&(clearTimeout(n),n=null),s=c,a=e.apply(i,o),n||(i=o=null)):n||!1===r.trailing||(n=setTimeout(u,l)),a};return c.cancel=function(){clearTimeout(n),s=0,n=i=o=null},c}function Tt(e,t,r){var n,i,o,a,s,u=function(){var c=it()-i;t>c?n=setTimeout(u,t-c):(n=null,r||(a=e.apply(s,o)),n||(o=s=null))},c=w((function(c){return s=this,o=c,i=it(),n||(n=setTimeout(u,t),r&&(a=e.apply(s,o))),a}));return c.cancel=function(){clearTimeout(n),n=o=s=null},c}function Mt(e,t){return xt(t,e)}function Bt(e){return function(){return!e.apply(this,arguments)}}function It(){var e=arguments,t=e.length-1;return function(){for(var r=t,n=e[t].apply(this,arguments);r--;)n=e[r].call(this,n);return n}}function Rt(e,t){return function(){if(--e<1)return t.apply(this,arguments)}}function Nt(e,t){var r;return function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=null),r}}var Ft=xt(Nt,2);function Pt(e,t,r){t=Je(t,r);for(var n=ae(e),i,o=0,a=n.length;o0?0:i-1;o>=0&&o0?s=o>=0?o:Math.max(o+u,s):u=o>=0?Math.min(o+1,u):o+u+1;else if(r&&o&&u)return n[o=r(n,i)]===i?o:-1;if(i!=i)return(o=t(a.call(n,s,u),K))>=0?o+s:-1;for(o=e>0?s:u-1;o>=0&&o0?0:a-1;for(i||(n=t[o?o[s]:s],s+=e);s>=0&&s=3;return t(e,Ge(r,i,4),n,o)}}var Zt=Xt(1),Jt=Xt(-1);function Qt(e,t,r){var n=[];return t=Je(t,r),Kt(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n}function er(e,t,r){return Qt(e,Bt(Je(t)),r)}function tr(e,t,r){t=Je(t,r);for(var n=!St(e)&&ae(e),i=(n||e).length,o=0;o=0}var ir=w((function(e,t,r){var n,i;return N(t)?i=t:(t=Ue(t),n=t.slice(0,-1),t=t[t.length-1]),Gt(e,(function(e){var o=i;if(!o){if(n&&n.length&&(e=He(e,n)),null==e)return;o=e[t]}return null==o?o:o.apply(e,r)}))}));function or(e,t){return Gt(e,Ke(t))}function ar(e,t){return Qt(e,Ve(t))}function sr(e,t,r){var n=-1/0,i=-1/0,o,a;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,u=(e=St(e)?e:Ee(e)).length;sn&&(n=o);else t=Je(t,r),Kt(e,(function(e,r,o){((a=t(e,r,o))>i||a===-1/0&&n===-1/0)&&(n=e,i=a)}));return n}function ur(e,t,r){var n=1/0,i=1/0,o,a;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,u=(e=St(e)?e:Ee(e)).length;sn||void 0===r)return 1;if(r1&&(n=Ge(n,t[1])),t=be(e)):(n=wr,t=jt(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i1&&(n=t[1])):(t=Gt(jt(t,!1,!1),String),r=function(e,r){return!nr(t,r)}),_r(e,r,n)}));function kr(e,t,r){return a.call(e,0,Math.max(0,e.length-(null==t||r?1:t)))}function Sr(e,t,r){return null==e||e.length<1?null==t||r?void 0:[]:null==t||r?e[0]:kr(e,e.length-t)}function jr(e,t,r){return a.call(e,null==t||r?1:t)}function Ar(e,t,r){return null==e||e.length<1?null==t||r?void 0:[]:null==t||r?e[e.length-1]:jr(e,Math.max(0,e.length-t))}function Dr(e){return Qt(e,Boolean)}function Er(e,t){return jt(e,t,!1)}var Cr=w((function(e,t){return t=jt(t,!0,!0),Qt(e,(function(e){return!nr(t,e)}))})),Or=w((function(e,t){return Cr(e,t)}));function Tr(e,t,r,n){S(t)||(n=r,r=t,t=!1),null!=r&&(r=Je(r,n));for(var i=[],o=[],a=0,s=ne(e);ae(t),this)}}onabort(){}addEventListener(e,t){"abort"===e&&this._listeners.push(t)}removeEventListener(e,t){"abort"===e&&(this._listeners=this._listeners.filter(e=>e!==t))}},c=new Set,l=(e,t)=>{const r=`LRU_CACHE_OPTION_${e}`;p(r)&&b(r,`${e} option`,`options.${t}`,w)},f=(e,t)=>{const r=`LRU_CACHE_METHOD_${e}`;if(p(r)){const{prototype:n}=w,{get:i}=Object.getOwnPropertyDescriptor(n,e);b(r,`${e} method`,`cache.${t}()`,i)}},d=(e,t)=>{const r=`LRU_CACHE_PROPERTY_${e}`;if(p(r)){const{prototype:n}=w,{get:i}=Object.getOwnPropertyDescriptor(n,e);b(r,`${e} property`,`cache.${t}`,i)}},h=(...e)=>{"object"==typeof process&&process&&"function"==typeof process.emitWarning?process.emitWarning(...e):console.error(...e)},p=e=>!c.has(e),b=(e,t,r,n)=>{c.add(e);const i=`The ${t} is deprecated. Please use ${r} instead.`;h(i,"DeprecationWarning",e,n)},m=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),g=e=>m(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?v:null:null;class v extends Array{constructor(e){super(e),this.fill(0)}}class y{constructor(e){if(0===e)return[];const t=g(e);this.heap=new t(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class w{constructor(e={}){const{max:t=0,ttl:r,ttlResolution:n=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:s,dispose:u,disposeAfter:f,noDisposeOnSet:d,noUpdateTTL:b,maxSize:v=0,maxEntrySize:_=0,sizeCalculation:x,fetchMethod:k,fetchContext:S,noDeleteOnFetchRejection:j,noDeleteOnStaleGet:A}=e,{length:D,maxAge:E,stale:C}=e instanceof w?{}:e;if(0!==t&&!m(t))throw new TypeError("max option must be a nonnegative integer");const O=t?g(t):Array;if(!O)throw new Error("invalid max value: "+t);if(this.max=t,this.maxSize=v,this.maxEntrySize=_||this.maxSize,this.sizeCalculation=x||D,this.sizeCalculation){if(!this.maxSize&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(this.fetchMethod=k||null,this.fetchMethod&&"function"!=typeof this.fetchMethod)throw new TypeError("fetchMethod must be a function if specified");if(this.fetchContext=S,!this.fetchMethod&&void 0!==S)throw new TypeError("cannot set fetchContext without fetchMethod");if(this.keyMap=new Map,this.keyList=new Array(t).fill(null),this.valList=new Array(t).fill(null),this.next=new O(t),this.prev=new O(t),this.head=0,this.tail=0,this.free=new y(t),this.initialFill=1,this.size=0,"function"==typeof u&&(this.dispose=u),"function"==typeof f?(this.disposeAfter=f,this.disposed=[]):(this.disposeAfter=null,this.disposed=null),this.noDisposeOnSet=!!d,this.noUpdateTTL=!!b,this.noDeleteOnFetchRejection=!!j,0!==this.maxEntrySize){if(0!==this.maxSize&&!m(this.maxSize))throw new TypeError("maxSize must be a positive integer if specified");if(!m(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.initializeSizeTracking()}if(this.allowStale=!!s||!!C,this.noDeleteOnStaleGet=!!A,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=m(n)||0===n?n:1,this.ttlAutopurge=!!i,this.ttl=r||E||0,this.ttl){if(!m(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.initializeTTLTracking()}if(0===this.max&&0===this.ttl&&0===this.maxSize)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.max&&!this.maxSize){const e="LRU_CACHE_UNBOUNDED";if(p(e)){c.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";h(t,"UnboundedCacheWarning",e,w)}}C&&l("stale","allowStale"),E&&l("maxAge","ttl"),D&&l("length","sizeCalculation")}getRemainingTTL(e){return this.has(e,{updateAgeOnHas:!1})?1/0:0}initializeTTLTracking(){this.ttls=new v(this.max),this.starts=new v(this.max),this.setItemTTL=(e,t,r=n.now())=>{if(this.starts[e]=0!==t?r:0,this.ttls[e]=t,0!==t&&this.ttlAutopurge){const r=setTimeout(()=>{this.isStale(e)&&this.delete(this.keyList[e])},t+1);r.unref&&r.unref()}},this.updateItemAge=e=>{this.starts[e]=0!==this.ttls[e]?n.now():0};let e=0;const t=()=>{const t=n.now();if(this.ttlResolution>0){e=t;const r=setTimeout(()=>e=0,this.ttlResolution);r.unref&&r.unref()}return t};this.getRemainingTTL=r=>{const n=this.keyMap.get(r);return void 0===n?0:0===this.ttls[n]||0===this.starts[n]?1/0:this.starts[n]+this.ttls[n]-(e||t())},this.isStale=r=>0!==this.ttls[r]&&0!==this.starts[r]&&(e||t())-this.starts[r]>this.ttls[r]}updateItemAge(e){}setItemTTL(e,t,r){}isStale(e){return!1}initializeSizeTracking(){this.calculatedSize=0,this.sizes=new v(this.max),this.removeItemSize=e=>{this.calculatedSize-=this.sizes[e],this.sizes[e]=0},this.requireSize=(e,t,r,n)=>{if(this.isBackgroundFetch(t))return 0;if(!m(r)){if(!n)throw new TypeError("invalid size value (must be positive integer)");if("function"!=typeof n)throw new TypeError("sizeCalculation must be a function");if(r=n(t,e),!m(r))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return r},this.addItemSize=(e,t)=>{if(this.sizes[e]=t,this.maxSize){const t=this.maxSize-this.sizes[e];for(;this.calculatedSize>t;)this.evict(!0)}this.calculatedSize+=this.sizes[e]}}removeItemSize(e){}addItemSize(e,t){}requireSize(e,t,r,n){if(r||n)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}*indexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.tail;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.head);)t=this.prev[t]}*rindexes({allowStale:e=this.allowStale}={}){if(this.size)for(let t=this.head;this.isValidIndex(t)&&(!e&&this.isStale(t)||(yield t),t!==this.tail);)t=this.next[t]}isValidIndex(e){return this.keyMap.get(this.keyList[e])===e}*entries(){for(const e of this.indexes())yield[this.keyList[e],this.valList[e]]}*rentries(){for(const e of this.rindexes())yield[this.keyList[e],this.valList[e]]}*keys(){for(const e of this.indexes())yield this.keyList[e]}*rkeys(){for(const e of this.rindexes())yield this.keyList[e]}*values(){for(const e of this.indexes())yield this.valList[e]}*rvalues(){for(const e of this.rindexes())yield this.valList[e]}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const r of this.indexes())if(e(this.valList[r],this.keyList[r],this))return this.get(this.keyList[r],t)}forEach(e,t=this){for(const r of this.indexes())e.call(t,this.valList[r],this.keyList[r],this)}rforEach(e,t=this){for(const r of this.rindexes())e.call(t,this.valList[r],this.keyList[r],this)}get prune(){return f("prune","purgeStale"),this.purgeStale}purgeStale(){let e=!1;for(const t of this.rindexes({allowStale:!0}))this.isStale(t)&&(this.delete(this.keyList[t]),e=!0);return e}dump(){const e=[];for(const t of this.indexes({allowStale:!0})){const r=this.keyList[t],i=this.valList[t],o=this.isBackgroundFetch(i)?i.__staleWhileFetching:i,a={value:o};if(this.ttls){a.ttl=this.ttls[t];const e=n.now()-this.starts[t];a.start=Math.floor(Date.now()-e)}this.sizes&&(a.size=this.sizes[t]),e.unshift([r,a])}return e}load(e){this.clear();for(const[t,r]of e){if(r.start){const e=Date.now()-r.start;r.start=n.now()-e}this.set(t,r.value,r)}}dispose(e,t,r){}set(e,t,{ttl:r=this.ttl,start:n,noDisposeOnSet:i=this.noDisposeOnSet,size:o=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:s=this.noUpdateTTL}={}){if(o=this.requireSize(e,t,o,a),this.maxEntrySize&&o>this.maxEntrySize)return this.delete(e),this;let u=0===this.size?void 0:this.keyMap.get(e);if(void 0===u)u=this.newIndex(),this.keyList[u]=e,this.valList[u]=t,this.keyMap.set(e,u),this.next[this.tail]=u,this.prev[u]=this.tail,this.tail=u,this.size++,this.addItemSize(u,o),s=!1;else{const r=this.valList[u];t!==r&&(this.isBackgroundFetch(r)?r.__abortController.abort():i||(this.dispose(r,e,"set"),this.disposeAfter&&this.disposed.push([r,e,"set"])),this.removeItemSize(u),this.valList[u]=t,this.addItemSize(u,o)),this.moveToTail(u)}if(0===r||0!==this.ttl||this.ttls||this.initializeTTLTracking(),s||this.setItemTTL(u,r,n),this.disposeAfter)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return this}newIndex(){return 0===this.size?this.tail:this.size===this.max&&0!==this.max?this.evict(!1):0!==this.free.length?this.free.pop():this.initialFill++}pop(){if(this.size){const e=this.valList[this.head];return this.evict(!0),e}}evict(e){const t=this.head,r=this.keyList[t],n=this.valList[t];return this.isBackgroundFetch(n)?n.__abortController.abort():(this.dispose(n,r,"evict"),this.disposeAfter&&this.disposed.push([n,r,"evict"])),this.removeItemSize(t),e&&(this.keyList[t]=null,this.valList[t]=null,this.free.push(t)),this.head=this.next[t],this.keyMap.delete(r),this.size--,t}has(e,{updateAgeOnHas:t=this.updateAgeOnHas}={}){const r=this.keyMap.get(e);return void 0!==r&&!this.isStale(r)&&(t&&this.updateItemAge(r),!0)}peek(e,{allowStale:t=this.allowStale}={}){const r=this.keyMap.get(e);if(void 0!==r&&(t||!this.isStale(r))){const e=this.valList[r];return this.isBackgroundFetch(e)?e.__staleWhileFetching:e}}backgroundFetch(e,t,r,n){const i=void 0===t?void 0:this.valList[t];if(this.isBackgroundFetch(i))return i;const a=new o,s={signal:a.signal,options:r,context:n},u=t=>(a.signal.aborted||this.set(e,t,s.options),t),c=n=>{if(this.valList[t]===f){const n=!r.noDeleteOnFetchRejection||void 0===f.__staleWhileFetching;n?this.delete(e):this.valList[t]=f.__staleWhileFetching}if(f.__returned===f)throw n},l=t=>t(this.fetchMethod(e,i,s)),f=new Promise(l).then(u,c);return f.__abortController=a,f.__staleWhileFetching=i,f.__returned=null,void 0===t?(this.set(e,f,s.options),t=this.keyMap.get(e)):this.valList[t]=f,f}isBackgroundFetch(e){return e&&"object"==typeof e&&"function"==typeof e.then&&Object.prototype.hasOwnProperty.call(e,"__staleWhileFetching")&&Object.prototype.hasOwnProperty.call(e,"__returned")&&(e.__returned===e||null===e.__returned)}async fetch(e,{allowStale:t=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:a=0,sizeCalculation:s=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:c=this.noDeleteOnFetchRejection,fetchContext:l=this.fetchContext,forceRefresh:f=!1}={}){if(!this.fetchMethod)return this.get(e,{allowStale:t,updateAgeOnGet:r,noDeleteOnStaleGet:n});const d={allowStale:t,updateAgeOnGet:r,noDeleteOnStaleGet:n,ttl:i,noDisposeOnSet:o,size:a,sizeCalculation:s,noUpdateTTL:u,noDeleteOnFetchRejection:c};let h=this.keyMap.get(e);if(void 0===h){const t=this.backgroundFetch(e,h,d,l);return t.__returned=t}{const n=this.valList[h];if(this.isBackgroundFetch(n))return t&&void 0!==n.__staleWhileFetching?n.__staleWhileFetching:n.__returned=n;if(!f&&!this.isStale(h))return this.moveToTail(h),r&&this.updateItemAge(h),n;const i=this.backgroundFetch(e,h,d,l);return t&&void 0!==i.__staleWhileFetching?i.__staleWhileFetching:i.__returned=i}}get(e,{allowStale:t=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet}={}){const i=this.keyMap.get(e);if(void 0!==i){const o=this.valList[i],a=this.isBackgroundFetch(o);if(this.isStale(i))return a?t?o.__staleWhileFetching:void 0:(n||this.delete(e),t?o:void 0);if(a)return;return this.moveToTail(i),r&&this.updateItemAge(i),o}}connect(e,t){this.prev[t]=e,this.next[e]=t}moveToTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.connect(this.prev[e],this.next[e]),this.connect(this.tail,e),this.tail=e)}get del(){return f("del","delete"),this.delete}delete(e){let t=!1;if(0!==this.size){const r=this.keyMap.get(e);if(void 0!==r)if(t=!0,1===this.size)this.clear();else{this.removeItemSize(r);const t=this.valList[r];this.isBackgroundFetch(t)?t.__abortController.abort():(this.dispose(t,e,"delete"),this.disposeAfter&&this.disposed.push([t,e,"delete"])),this.keyMap.delete(e),this.keyList[r]=null,this.valList[r]=null,r===this.tail?this.tail=this.prev[r]:r===this.head?this.head=this.next[r]:(this.next[this.prev[r]]=this.next[r],this.prev[this.next[r]]=this.prev[r]),this.size--,this.free.push(r)}}if(this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift());return t}clear(){for(const e of this.rindexes({allowStale:!0})){const t=this.valList[e];if(this.isBackgroundFetch(t))t.__abortController.abort();else{const r=this.keyList[e];this.dispose(t,r,"delete"),this.disposeAfter&&this.disposed.push([t,r,"delete"])}}if(this.keyMap.clear(),this.valList.fill(null),this.keyList.fill(null),this.ttls&&(this.ttls.fill(0),this.starts.fill(0)),this.sizes&&this.sizes.fill(0),this.head=0,this.tail=0,this.initialFill=1,this.free.length=0,this.calculatedSize=0,this.size=0,this.disposed)for(;this.disposed.length;)this.disposeAfter(...this.disposed.shift())}get reset(){return f("reset","clear"),this.clear}get length(){return d("length","size"),this.size}static get AbortController(){return o}static get AbortSignal(){return u}}e.exports=w}}}}},tslib:{"package.json":function e(t,r,e){e.exports={name:"tslib",version:"2.3.1",main:"tslib.js",module:"tslib.es6.js"}},"tslib.js":function e(t,r,e){ /*! ***************************************************************************** Copyright (c) Microsoft Corporation. diff --git a/server/bundle/programs/web.cordova/743c48204b93359a72631ab7ac17c3c7603be02f.stats.json b/server/bundle/programs/web.cordova/b6724487e5ec390de10b5accba2a48355ab84c81.stats.json similarity index 99% rename from server/bundle/programs/web.cordova/743c48204b93359a72631ab7ac17c3c7603be02f.stats.json rename to server/bundle/programs/web.cordova/b6724487e5ec390de10b5accba2a48355ab84c81.stats.json index 9ad16d305b..da603febc5 100644 --- a/server/bundle/programs/web.cordova/743c48204b93359a72631ab7ac17c3c7603be02f.stats.json +++ b/server/bundle/programs/web.cordova/b6724487e5ec390de10b5accba2a48355ab84c81.stats.json @@ -4,7 +4,7 @@ "version": "2.6.0" }, "totalMinifiedBytes": 4480697, - "totalMinifiedGzipBytes": 1141645, + "totalMinifiedGzipBytes": 1141641, "minifiedBytesByPackage": { "packages/meteor.js": 9639, "packages/coffeescript.js": 32, diff --git a/server/bundle/programs/web.cordova/program.json b/server/bundle/programs/web.cordova/program.json index c811cd0803..a302af3015 100644 --- a/server/bundle/programs/web.cordova/program.json +++ b/server/bundle/programs/web.cordova/program.json @@ -2,34 +2,34 @@ "format": "web-program-pre1", "manifest": [ { - "path": "743c48204b93359a72631ab7ac17c3c7603be02f.js", + "path": "b6724487e5ec390de10b5accba2a48355ab84c81.js", "where": "client", "type": "js", "cacheable": true, - "url": "/__cordova/743c48204b93359a72631ab7ac17c3c7603be02f.js?meteor_js_resource=true", + "url": "/__cordova/b6724487e5ec390de10b5accba2a48355ab84c81.js?meteor_js_resource=true", "size": 4480697, - "hash": "743c48204b93359a72631ab7ac17c3c7603be02f", - "sri": "GJu3LEPzBCjCUuHTf+obex/dcXWazeG+onDGfsGVXV1uXITyUrAUvQ2YjCzalJkBBtN5mDyYFocBzLcp6UqrbQ==" + "hash": "b6724487e5ec390de10b5accba2a48355ab84c81", + "sri": "XESGDoYtRWiZyathtHG+NMie9VEvpYd44nKgDFPFWFRvnk/2Po/Vis3CTOW2KprEuEVyT7ByX8ZQcxk/BoFVGg==" }, { - "path": "743c48204b93359a72631ab7ac17c3c7603be02f.stats.json", + "path": "b6724487e5ec390de10b5accba2a48355ab84c81.stats.json", "where": "client", "type": "json", "cacheable": true, - "url": "/__cordova/743c48204b93359a72631ab7ac17c3c7603be02f.stats.json?meteor_js_resource=true", + "url": "/__cordova/b6724487e5ec390de10b5accba2a48355ab84c81.stats.json?meteor_js_resource=true", "size": 82382, - "hash": "0365c5c51e056f6d48e442833fbd6270a0edab0e", - "sri": "PPl/ctw1abu1mW90pN7IYRfPuXrTKlG3u9woQ2POlHtcdlSOs7r1Sw7fM3cHwZ54U33FlvFTUnVY0ipVUlJr8A==" + "hash": "4bbbde37e81039f6d9020ac2edda495f60d98c91", + "sri": "CrG1SkcyxM/+Jds12E6/c4uFblhAxxYbWMuLeDWzSIhivzLRHzuu8SyCGf1T9YD2IjgWPbiifUxZPco2rVVwPA==" }, { - "path": "5766f147e314187665f8cf23620c00b20d7a2c90.css", + "path": "22b72a003d0bc555f97724324e85cd5b0fb7287b.css", "where": "client", "type": "css", "cacheable": true, - "url": "/__cordova/5766f147e314187665f8cf23620c00b20d7a2c90.css?meteor_css_resource=true", - "size": 894156, - "hash": "5766f147e314187665f8cf23620c00b20d7a2c90", - "sri": "KGJ7pjBMB8roj1/XGmvKR6VRiKoXCGFOo1YWb2RmIHSVtW5aZBX8aakXhuu10JSEIi/E2mwKnWozQGfHx3MgfQ==" + "url": "/__cordova/22b72a003d0bc555f97724324e85cd5b0fb7287b.css?meteor_css_resource=true", + "size": 894228, + "hash": "22b72a003d0bc555f97724324e85cd5b0fb7287b", + "sri": "JT7GK9fCVO4m5f6C+tWdHywBr57Bgb3gvTKPYhgR1nePtq8yRtjOdxdT4zssDA1n5Cm4dxVP3DeOo/DzSh8AFQ==" }, { "path": "packages/aldeed_tabular/images/sort_asc.png", diff --git a/server/bundle/star.json b/server/bundle/star.json index 79b8fa3907..9193848fcd 100644 --- a/server/bundle/star.json +++ b/server/bundle/star.json @@ -36,5 +36,5 @@ "meteorRelease": "METEOR@1.9.3", "nodeVersion": "12.16.1", "npmVersion": "6.13.4", - "gitCommitHash": "654874b7c7a820108fc2a72ec7d53658ea983029" + "gitCommitHash": "76971db930b48d6545a9f31af035af766a98914a" } \ No newline at end of file