-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path4144.19567631.iframe.bundle.js
2 lines (2 loc) · 129 KB
/
4144.19567631.iframe.bundle.js
1
2
"use strict";(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[4144],{"./src/code-studio/hiddenLessonRedux.js":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.STUDENT_SECTION_ID=void 0,exports.default=function reducer(){var state=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new HiddenState,action=arguments.length>1?arguments[1]:void 0;if(action.type===SET_HIDDEN_LESSONS){var hiddenLessonsPerSection=action.hiddenLessonsPerSection,hideableLessonsAllowed=action.hideableLessonsAllowed,sectionIds=Object.keys(hiddenLessonsPerSection),nextState=state;return sectionIds.forEach((function(sectionId){hiddenLessonsPerSection[sectionId].forEach((function(lessonId){nextState=nextState.setIn(["lessonsBySection",sectionId,lessonId.toString()],!0)}))})),validateSectionIds(nextState),nextState.merge({hiddenLessonsInitialized:!0,hideableLessonsAllowed})}if(action.type===UPDATE_HIDDEN_LESSON){var sectionId=action.sectionId,lessonId=action.lessonId,hidden=action.hidden,_nextState=state.setIn(["lessonsBySection",sectionId,lessonId.toString()],hidden);return validateSectionIds(_nextState),_nextState}if(action.type===UPDATE_HIDDEN_SCRIPT){var _sectionId=action.sectionId,scriptId=action.scriptId,_hidden=action.hidden,_nextState2=state.setIn(["scriptsBySection",_sectionId.toString(),scriptId.toString()],_hidden);return validateSectionIds(_nextState2),_nextState2}return state},exports.getHiddenLessons=function getHiddenLessons(scriptName,canHideLessons){return function(dispatch){_jquery.default.ajax({type:"GET",url:"/s/".concat(scriptName,"/hidden_lessons"),dataType:"json",contentType:"application/json"}).done((function(response){return dispatch(function initializeHiddenLessons(data,canHideLessons){return function(dispatch){Array.isArray(data)&&(data=_defineProperty({},STUDENT_SECTION_ID,data)),dispatch(setHiddenLessons(data,!!canHideLessons))}}(response,canHideLessons))})).fail((function(err){return console.error(err)}))}},exports.initializeHiddenScripts=function initializeHiddenScripts(data){return function(dispatch){data&&(Array.isArray(data)&&(data=_defineProperty({},STUDENT_SECTION_ID,data)),Object.keys(data).forEach((function(sectionId){data[sectionId].forEach((function(scriptId){dispatch(updateHiddenScript(sectionId,scriptId,!0))}))})))}},exports.isLessonHiddenForSection=function isLessonHiddenForSection(state,sectionId,lessonId){return isHiddenForSection(state,sectionId,lessonId,"lessonsBySection")},exports.isScriptHiddenForSection=function isScriptHiddenForSection(state,sectionId,scriptId){return isHiddenForSection(state,sectionId,scriptId,"scriptsBySection")},exports.setHiddenLessons=setHiddenLessons,exports.toggleHiddenLesson=function toggleHiddenLesson(scriptName,sectionId,lessonId,hidden){return function(dispatch){dispatch(updateHiddenLesson(sectionId,lessonId,hidden)),postToggleHidden(scriptName,sectionId,lessonId,hidden)}},exports.toggleHiddenScript=function toggleHiddenScript(scriptName,sectionId,scriptId,hidden){return function(dispatch){dispatch(updateHiddenScript(sectionId,scriptId,hidden)),postToggleHidden(scriptName,sectionId,null,hidden)}},exports.updateHiddenLesson=updateHiddenLesson,exports.updateHiddenScript=updateHiddenScript;var _immutable=_interopRequireDefault(__webpack_require__("./node_modules/immutable/dist/immutable.js")),_jquery=_interopRequireDefault(__webpack_require__("./node_modules/jquery/dist/jquery.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}function _defineProperty(e,r,t){return(r=function _toPropertyKey(t){var i=function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==_typeof(i)?i:i+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}var SET_HIDDEN_LESSONS="hiddenLesson/SET_HIDDEN_LESSONS",UPDATE_HIDDEN_LESSON="hiddenLesson/UPDATE_HIDDEN_LESSON",UPDATE_HIDDEN_SCRIPT="hiddenLesson/UPDATE_HIDDEN_SCRIPT",STUDENT_SECTION_ID=exports.STUDENT_SECTION_ID="STUDENT",HiddenState=_immutable.default.Record({hiddenLessonsInitialized:!1,hideableLessonsAllowed:!1,lessonsBySection:_immutable.default.Map({}),scriptsBySection:_immutable.default.Map({})});function validateSectionIds(state){if(state.getIn(["lessonsBySection",STUDENT_SECTION_ID])&&state.get("lessonsBySection").size>1)throw new Error("Should never have STUDENT_SECTION_ID alongside other sectionIds")}function setHiddenLessons(hiddenLessonsPerSection,hideableLessonsAllowed){return{type:SET_HIDDEN_LESSONS,hiddenLessonsPerSection,hideableLessonsAllowed}}function updateHiddenLesson(sectionId,lessonId,hidden){return{type:UPDATE_HIDDEN_LESSON,sectionId,lessonId,hidden}}function updateHiddenScript(sectionId,scriptId,hidden){return{type:UPDATE_HIDDEN_SCRIPT,sectionId,scriptId,hidden}}function postToggleHidden(scriptName,sectionId,lessonId,hidden){var data={section_id:sectionId,hidden};lessonId&&(data.stage_id=lessonId),_jquery.default.ajax({type:"POST",url:"/s/".concat(scriptName,"/toggle_hidden"),dataType:"json",contentType:"application/json",data:JSON.stringify(data)}).success((function(){window.__TestInterface=window.__TestInterface||{},window.__TestInterface.toggleHiddenUnitComplete=!0}))}function isHiddenForSection(state,sectionId,itemId,bySectionKey){return!!itemId&&(sectionId||(sectionId=STUDENT_SECTION_ID),!!state.get(bySectionKey).getIn([sectionId.toString(),itemId.toString()]))}},"./src/sharedComponents/AccessibleDialog.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _closeButton=_interopRequireDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/closeButton/index.js")),_classnames=_interopRequireDefault(__webpack_require__("./node_modules/classnames/index.js")),_focusTrapReact=_interopRequireDefault(__webpack_require__("./node_modules/focus-trap-react/dist/focus-trap-react.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_CloseOnEscape=_interopRequireDefault(__webpack_require__("./src/templates/CloseOnEscape.jsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_accessibleDialogueModule=_interopRequireDefault(__webpack_require__("./src/sharedComponents/accessible-dialogue.module.scss"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function AccessibleDialog(_ref){var id=_ref.id,styles=_ref.styles,onClose=_ref.onClose,onDismiss=_ref.onDismiss,children=_ref.children,className=_ref.className,fallbackFocus=_ref.fallbackFocus,_ref$initialFocus=_ref.initialFocus,initialFocus=void 0===_ref$initialFocus||_ref$initialFocus,_ref$closeOnClickBack=_ref.closeOnClickBackdrop,closeOnClickBackdrop=void 0!==_ref$closeOnClickBack&&_ref$closeOnClickBack,_ref$onDeactivate=_ref.onDeactivate,onDeactivate=void 0===_ref$onDeactivate?onClose:_ref$onDeactivate,_ref$noMC=_ref.noMC,noMC=void 0!==_ref$noMC&&_ref$noMC,modalStyle=(null==styles?void 0:styles.modal)||_accessibleDialogueModule.default.modal,backdropStyle=(null==styles?void 0:styles.modalBackdrop)||_accessibleDialogueModule.default.modalBackdrop,closeIconStyle=(null==styles?void 0:styles.xCloseButton)||_accessibleDialogueModule.default.xCloseButton;closeIconStyle=noMC?[closeIconStyle,"no-mc"]:closeIconStyle;var xIconOnClick=onDismiss||onClose;return _react.default.createElement("div",null,_react.default.createElement("div",{className:backdropStyle}),_react.default.createElement(_CloseOnEscape.default,{handleClose:onClose},_react.default.createElement(_focusTrapReact.default,{focusTrapOptions:{initialFocus,onDeactivate,clickOutsideDeactivates:closeOnClickBackdrop,fallbackFocus}},_react.default.createElement("div",{id,"aria-modal":!0,"aria-labelledby":"".concat(id,"-title"),className:(0,_classnames.default)(modalStyle,className),role:"dialog"},_react.default.createElement(_closeButton.default,{id:"ui-close-dialog",className:closeIconStyle,"aria-label":_locale.default.closeDialog(),onClick:xIconOnClick}),children))))}AccessibleDialog.propTypes={id:_propTypes.default.string,styles:_propTypes.default.object,onClose:_propTypes.default.func.isRequired,onDismiss:_propTypes.default.func,children:_propTypes.default.node,className:_propTypes.default.string,fallbackFocus:_propTypes.default.string,initialFocus:_propTypes.default.bool,closeOnClickBackdrop:_propTypes.default.bool,onDeactivate:_propTypes.default.func,noMC:_propTypes.default.bool};exports.default=AccessibleDialog;module.exports=exports.default},"./src/templates/CloseOnEscape.jsx":(module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var CloseOnEscape=function CloseOnEscape(_ref){var handleClose=_ref.handleClose,className=_ref.className,children=_ref.children;return _react.default.createElement("div",{className,onKeyDown:function handleKeyDown(event){"Escape"===event.key&&handleClose(event)}},children)};CloseOnEscape.propTypes={handleClose:_propTypes.default.func.isRequired,children:_propTypes.default.node,className:_propTypes.default.string};exports.default=CloseOnEscape;module.exports=exports.default},"./src/templates/MultipleSectionsAssigner.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{function _typeof(o){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedMultipleSectionsAssigner=void 0;var _checkbox=_interopRequireDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/checkbox/index.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_hiddenLessonRedux=__webpack_require__("./src/code-studio/hiddenLessonRedux.js"),_typography=__webpack_require__("./src/componentLibrary/typography/index.ts"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_AccessibleDialog=_interopRequireDefault(__webpack_require__("./src/sharedComponents/AccessibleDialog.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_multipleSectionsAssignerModule=_interopRequireDefault(__webpack_require__("./src/templates/multiple-sections-assigner.module.scss"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(r){return function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}(r)||function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||_unsupportedIterableToArray(r)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _slicedToArray(r,e){return function _arrayWithHoles(r){if(Array.isArray(r))return r}(r)||function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}(r,e)||_unsupportedIterableToArray(r,e)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}var MultipleSectionsAssigner=function MultipleSectionsAssigner(_ref){var courseId=_ref.courseId,assignmentName=_ref.assignmentName,onClose=_ref.onClose,courseOfferingId=_ref.courseOfferingId,courseVersionId=_ref.courseVersionId,scriptId=_ref.scriptId,_ref$reassignConfirm=_ref.reassignConfirm,reassignConfirm=void 0===_ref$reassignConfirm?function(){}:_ref$reassignConfirm,isAssigningCourse=_ref.isAssigningCourse,isStandAloneUnit=_ref.isStandAloneUnit,participantAudience=_ref.participantAudience,onAssignSuccess=_ref.onAssignSuccess,_ref$sectionDirection=_ref.sectionDirections,sectionDirections=void 0===_ref$sectionDirection?_locale.default.chooseSectionsDirections():_ref$sectionDirection,sections=_ref.sections,unassignSection=_ref.unassignSection,assignToSection=_ref.assignToSection,updateHiddenScript=_ref.updateHiddenScript,sectionHasNewData=_ref.sectionHasNewData,_useState2=_slicedToArray((0,_react.useState)([]),2),currentSectionsAssigned=_useState2[0],setCurrentSectionsAssigned=_useState2[1],initialSectionsAssigned=_react.default.useMemo((function(){var initialSectionsAssigned=[];if(isAssigningCourse){if(isAssigningCourse)for(var _i2=0;_i2<sections.length;_i2++)courseId===sections[_i2].courseId&&initialSectionsAssigned.push(sections[_i2])}else if(isStandAloneUnit)for(var i=0;i<sections.length;i++)courseVersionId===sections[i].courseVersionId&&initialSectionsAssigned.push(sections[i]);else for(var _i=0;_i<sections.length;_i++)scriptId===sections[_i].unitId&&initialSectionsAssigned.push(sections[_i]);return setCurrentSectionsAssigned(initialSectionsAssigned),initialSectionsAssigned}),[isAssigningCourse,isStandAloneUnit,sections,courseId,scriptId,courseVersionId]),unhideAndAssignUnit=function unhideAndAssignUnit(section){var sectionId=section.id;updateHiddenScript(sectionId,scriptId,!1),assignToSectionWithConfirmation(sectionId,courseId,courseOfferingId,courseVersionId,scriptId)},assignCourseWithoutUnit=function assignCourseWithoutUnit(section){var sectionId=section.id;assignToSectionWithConfirmation(sectionId,courseId,courseOfferingId,courseVersionId,null)},assignToSectionWithConfirmation=function assignToSectionWithConfirmation(sectionId,courseId,courseOfferingId,courseVersionId,scriptId){onAssignSuccess?assignToSection(sectionId,courseId,courseOfferingId,courseVersionId,scriptId).then(onAssignSuccess):assignToSection(sectionId,courseId,courseOfferingId,courseVersionId,scriptId)};return _react.default.createElement(_AccessibleDialog.default,{className:_multipleSectionsAssignerModule.default.popUpContainer,onClose},_react.default.createElement("div",{role:"region","aria-label":_locale.default.directionsForAssigningSections(),className:_multipleSectionsAssignerModule.default.information},_react.default.createElement("div",{className:_multipleSectionsAssignerModule.default.modalHeader},_react.default.createElement(_typography.Heading3,null,_locale.default.chooseSectionsPrompt({assignmentName}))),_react.default.createElement("div",{className:_multipleSectionsAssignerModule.default.sectionsDirections},_react.default.createElement(_typography.BodyTwoText,null,sectionDirections)),_react.default.createElement("div",{className:_multipleSectionsAssignerModule.default.sectionList},_react.default.createElement(_typography.Heading5,null,_locale.default.yourSectionsList()),_react.default.createElement("div",{className:_multipleSectionsAssignerModule.default.sectionListOptionsContainer},sections&§ions.map((function(section){return function isAssignableToSection(sectionParticipantType){return sectionParticipantType===participantAudience}(section.participantType)&&_react.default.createElement(_checkbox.default,{key:section.id,checked:!!currentSectionsAssigned.some((function(s){return s.code===section.code})),onChange:function onChange(){return function handleChangedCheckbox(currentSection){if(currentSectionsAssigned.some((function(s){return s.code===currentSection.code}))){var newList=currentSectionsAssigned.filter((function(s){return s.code!==currentSection.code}));setCurrentSectionsAssigned(newList)}else{var _newList=_toConsumableArray(currentSectionsAssigned);_newList.push(currentSection),setCurrentSectionsAssigned(_newList)}}(section)},name:section.id,label:section.name})}))),_react.default.createElement(_Button.default,{id:"select-all-sections",text:_locale.default.selectAll(),onClick:function selectAllHandler(){for(var newSectionsAssigned=_toConsumableArray(currentSectionsAssigned),_loop3=function _loop3(i){!currentSectionsAssigned.some((function(s){return s.code===sections[i].code}))&&newSectionsAssigned.push(sections[i])},i=0;i<sections.length;i++)_loop3(i);setCurrentSectionsAssigned(newSectionsAssigned)},styleAsText:!0,color:_Button.default.ButtonColor.brandSecondaryDefault}))),_react.default.createElement("div",{className:_multipleSectionsAssignerModule.default.buttonContainer},_react.default.createElement(_Button.default,{text:_locale.default.dialogCancel(),onClick:onClose,color:_Button.default.ButtonColor.neutralDark}),_react.default.createElement(_Button.default,{id:"confirm-assign",text:_locale.default.confirmAssignment(),onClick:function reassignSections(){for(var _loop=function _loop(i){if(!initialSectionsAssigned.some((function(s){return s.code===currentSectionsAssigned[i].code}))){if(isAssigningCourse){var sectionId=currentSectionsAssigned[i].id;assignToSectionWithConfirmation(sectionId,courseId,courseOfferingId,courseVersionId,scriptId)}else unhideAndAssignUnit(currentSectionsAssigned[i]);sectionHasNewData()}},i=0;i<currentSectionsAssigned.length;i++)_loop(i);for(var _loop2=function _loop2(_i3){!currentSectionsAssigned.some((function(s){return s.code===initialSectionsAssigned[_i3].code}))&&(isAssigningCourse||isStandAloneUnit?unassignSection(initialSectionsAssigned[_i3].id,""):assignCourseWithoutUnit(initialSectionsAssigned[_i3]))},_i3=0;_i3<initialSectionsAssigned.length;_i3++)_loop2(_i3);reassignConfirm(),onClose()},color:_Button.default.ButtonColor.brandSecondaryDefault})))};MultipleSectionsAssigner.propTypes={courseId:_propTypes.default.number,assignmentName:_propTypes.default.string.isRequired,onClose:_propTypes.default.func.isRequired,courseOfferingId:_propTypes.default.number,courseVersionId:_propTypes.default.number,scriptId:_propTypes.default.number,reassignConfirm:_propTypes.default.func,isAssigningCourse:_propTypes.default.bool.isRequired,isStandAloneUnit:_propTypes.default.bool,participantAudience:_propTypes.default.string,onAssignSuccess:_propTypes.default.func,sectionDirections:_propTypes.default.string,sections:_propTypes.default.arrayOf(_shapes.sectionForDropdownShape).isRequired,unassignSection:_propTypes.default.func.isRequired,assignToSection:_propTypes.default.func.isRequired,updateHiddenScript:_propTypes.default.func.isRequired,sectionHasNewData:_propTypes.default.func.isRequired};exports.UnconnectedMultipleSectionsAssigner=MultipleSectionsAssigner,exports.default=(0,_reactRedux.connect)((function(state){return{}}),{assignToSection:_teacherSectionsRedux.assignToSection,updateHiddenScript:_hiddenLessonRedux.updateHiddenScript,unassignSection:_teacherSectionsRedux.unassignSection,sectionHasNewData:_teacherSectionsRedux.sectionHasNewData})(MultipleSectionsAssigner)},"./src/templates/teacherDashboard/shapes.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.sortableSectionShape=exports.sectionShape=exports.sectionForDropdownShape=exports.loadErrorShape=exports.classroomShape=exports.assignmentUnitShape=exports.assignmentCourseVersionShape=exports.assignmentCourseOfferingShape=void 0;var _propTypes=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(__webpack_require__("./node_modules/prop-types/index.js")),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts");exports.sectionShape=_propTypes.default.shape({id:_propTypes.default.number.isRequired,name:_propTypes.default.string.isRequired,createdAt:_propTypes.default.string,loginType:_propTypes.default.oneOf(Object.keys(_sharedConstants.SectionLoginType)),lessonExtras:_propTypes.default.bool.isRequired,pairingAllowed:_propTypes.default.bool.isRequired,ttsAutoplayEnabled:_propTypes.default.bool.isRequired,studentCount:_propTypes.default.number.isRequired,code:_propTypes.default.string.isRequired,courseOfferingId:_propTypes.default.number,courseVersionId:_propTypes.default.number,unitId:_propTypes.default.number,courseId:_propTypes.default.number,scriptId:_propTypes.default.number,grades:_propTypes.default.arrayOf(_propTypes.default.string),providerManaged:_propTypes.default.bool.isRequired,restrictSection:_propTypes.default.bool,postMilestoneDisabled:_propTypes.default.bool,syncEnabled:_propTypes.default.bool}),exports.assignmentUnitShape=_propTypes.default.shape({id:_propTypes.default.number.isRequired,name:_propTypes.default.string.isRequired,path:_propTypes.default.string.isRequired,lesson_extras_available:_propTypes.default.bool.isRequired,text_to_speech_enabled:_propTypes.default.bool.isRequired,position:_propTypes.default.number}),exports.assignmentCourseVersionShape=_propTypes.default.shape({id:_propTypes.default.number.isRequired,key:_propTypes.default.string.isRequired,version_year:_propTypes.default.string.isRequired,content_root_id:_propTypes.default.number.isRequired,name:_propTypes.default.string.isRequired,path:_propTypes.default.string.isRequired,type:_propTypes.default.string.isRequired,is_stable:_propTypes.default.bool.isRequired,is_recommended:_propTypes.default.bool.isRequired,locales:_propTypes.default.array,units:_propTypes.default.object.isRequired}),exports.assignmentCourseOfferingShape=_propTypes.default.shape({elementary:_propTypes.default.object,high:_propTypes.default.object,hoc:_propTypes.default.object,middle:_propTypes.default.object}),exports.classroomShape=_propTypes.default.shape({id:_propTypes.default.string.isRequired,name:_propTypes.default.string.isRequired,section:_propTypes.default.string,enrollment_code:_propTypes.default.string.isRequired,course_state:_propTypes.default.string}),exports.loadErrorShape=_propTypes.default.shape({status:_propTypes.default.number.isRequired,message:_propTypes.default.string.isRequired}),exports.sortableSectionShape=_propTypes.default.shape({id:_propTypes.default.number.isRequired,name:_propTypes.default.string.isRequired,courseVersionName:_propTypes.default.string,courseDisplayName:_propTypes.default.string,loginType:_propTypes.default.oneOf(Object.keys(_sharedConstants.SectionLoginType)).isRequired,studentCount:_propTypes.default.number.isRequired,code:_propTypes.default.string.isRequired,grades:_propTypes.default.arrayOf(_propTypes.default.string),providerManaged:_propTypes.default.bool.isRequired,hidden:_propTypes.default.bool.isRequired,assignmentName:_propTypes.default.arrayOf(_propTypes.default.string),assignmentPath:_propTypes.default.arrayOf(_propTypes.default.string)}),exports.sectionForDropdownShape=_propTypes.default.shape({id:_propTypes.default.number.isRequired,name:_propTypes.default.string.isRequired,isAssigned:_propTypes.default.bool.isRequired})},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/sharedComponents/accessible-dialogue.module.scss":(module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".tNW_TQi0C3Lql6uKCWdt{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;opacity:.6;z-index:1250}.wN65B8UBIENjR7G7wzwd{position:fixed;top:10%;left:50%;transform:translateX(-50%);z-index:1350;width:70%;max-width:600px;background-color:#fff;border-radius:4px;padding:1rem;overflow:auto}.krwikY2iwGe_cXQHRFBK{background:none;color:inherit;border:none;padding:0;font:inherit;cursor:pointer;outline:inherit;box-shadow:none;position:absolute;top:1rem;inset-inline-end:1rem}.krwikY2iwGe_cXQHRFBK i{color:#bec2c7;font-size:1.1875rem;line-height:1.4844rem;width:1.4844rem}.krwikY2iwGe_cXQHRFBK:hover{box-shadow:none;background:none;color:inherit;border:none;padding:0;font:inherit;cursor:pointer;outline:inherit}.krwikY2iwGe_cXQHRFBK:hover i{color:#989ea5}.krwikY2iwGe_cXQHRFBK:focus{outline:#009eb0 solid 2px;outline-offset:2px}","",{version:3,sources:["webpack://./src/sharedComponents/accessible-dialogue.module.scss","webpack://./../shared/css/color.scss"],names:[],mappings:"AAEA,sBACE,cAAA,CACA,KAAA,CACA,OAAA,CACA,QAAA,CACA,MAAA,CACA,qBAAA,CACA,UAAA,CACA,YAAA,CAGF,sBACE,cAAA,CACA,OAAA,CACA,QAAA,CACA,0BAAA,CACA,YAAA,CACA,SAAA,CACA,eAAA,CACA,qBAAA,CACA,iBAAA,CACA,YAAA,CACA,aAAA,CAGF,sBAEE,eAAA,CACA,aAAA,CACA,WAAA,CACA,SAAA,CACA,YAAA,CACA,cAAA,CACA,eAAA,CACA,eAAA,CAEA,iBAAA,CACA,QAAA,CACA,qBAAA,CAEA,wBACE,aC+Ja,CD9Jb,mBAAA,CACA,qBAAA,CACA,eAAA,CAGF,4BAEE,eAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,SAAA,CACA,YAAA,CACA,cAAA,CACA,eAAA,CAEA,8BACE,aC+IW,CD3If,4BACE,yBAAA,CACA,kBAAA",sourcesContent:["@import 'color.scss';\n\n.modalBackdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #000;\n opacity: 0.6;\n z-index: 1250;\n}\n\n.modal {\n position: fixed;\n top: 10%;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1350;\n width: 70%;\n max-width: 600px;\n background-color: #fff;\n border-radius: 4px;\n padding: 1rem;\n overflow: auto;\n}\n\n.xCloseButton {\n // Clear default button styles\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n outline: inherit;\n box-shadow: none;\n\n position: absolute;\n top: 1rem;\n inset-inline-end: 1rem; // Logical property for right in LTR, left in RTL\n\n i {\n color: $light_gray_300;\n font-size: 1.1875rem;\n line-height: 1.4844rem;\n width: 1.4844rem;\n }\n\n &:hover {\n // Clear default button styles\n box-shadow: none;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n cursor: pointer;\n outline: inherit;\n\n i {\n color: $light_gray_500;\n }\n }\n\n &:focus {\n outline: $brand_primary_default solid 2px;\n outline-offset: 2px;\n }\n}\n","// colors from https://www.dropbox.com/s/ycjiwt8vxlmv2ih/Code.org_stylesheet_v2_09.05.13.pdf\n\n// Please keep this file simple; it should only contain color definitions\n// and aliases. Variables defined in this file are exported to\n// apps/src/util/color.js during the apps build process.\n\n$black: #000;\n$background_black: #121416;\n$dark_gray: #2D3139;\n$darkest_gray: #292F36;\n$dark_slate_gray: #282c34;\n$darkest_slate_gray: #25292d;\n$dark_charcoal: #4d575f;\n$charcoal: #5b6770;\n$light_gray: #949ca2;\n$lighter_gray: #c6cacd;\n$lightest_gray: #e7e8ea;\n$background_gray: #f2f2f2;\n$dimgray: #696969;\n$white: #fff;\n$default_blue: #3670b3;\n\n$dark_teal: #0094a3;\n$teal: #0093a4;\n$applab_button_teal: #1abc9c;\n$light_teal: #59cad3;\n$lightish_teal: #80d6de;\n$lighter_teal: #a6e3e8;\n$lightest_teal: #d9f3f5;\n$ai_rubric_cyan: #3cfff8;\n\n$purple: #8c52ba;\n$light_purple: #a69bc1;\n$lighter_purple: #cfc9de;\n$lightest_purple: #ebe8f1;\n\n$cyan: #0094ca;\n$light_cyan: #59b9dc;\n$lighter_cyan: #a6daed;\n$lightest_cyan: #d9eff7;\n$almost_white_cyan: #f5fcff;\n\n$orange: #ffa400;\n$light_orange: #ffc459;\n$lighter_orange: #ffe0a6;\n$lightest_orange: #fff2d9;\n$dark_orange: #ff8600;\n\n$green: #b9bf15;\n$light_green: #d1d567;\n$lighter_green: #e7e9ad;\n$lightest_green: #f5f5dc;\n$highlight_green: #8afc9b;\n\n$yellow: #ffb81d;\n$light_yellow: #ffdb74;\n$lighter_yellow: #ffebb5;\n$lightest_yellow: #fff7df;\n\n$goldenrod: #daa520;\n\n$header_text: $white;\n$bkgnd_color: $teal;\n$inset_color: $lighter_gray;\n$dark_color: $purple;\n$hdr_color: $purple;\n\n// Some extra colors.\n$red: #c00;\n$lightest_red: #fcc;\n$dark_red: #d62911;\n$realgreen: #008000;\n$realyellow: #ff0;\n$mustardyellow: #efcd1c;\n$twitter_blue: #00aced;\n$facebook_blue: #3b5998;\n$linkedin_blue: #0077B5;\n$dark_blue: #00647f;\n$blockly_flyout_gray: #ddd;\n$default_text: #333;\n$border_gray: #bbb;\n$border_light_gray: #d8d8d8;\n$table_header: #ececec;\n$table_light_row: #fcfcfc;\n$table_dark_row: #f4f4f4;\n\n// Progress colors.\n$level_submitted: $purple;\n$level_perfect: rgb(14, 190, 14);\n$level_passed: rgb(159, 212, 159);\n$level_attempted: $realyellow;\n$level_not_tried: #fefefe;\n$level_current: $orange;\n$level_review_rejected: $red;\n$level_review_accepted: rgb(11, 142, 11); // TODO: $level_passed;\n$assessment: $cyan;\n$workspace_running_background: #e5e5e5;\n\n// Experimental Sprite Lab validation colors.\n$dark_purple: #682A77;\n$bright_green: #0ebe0e;\n$neon_pink: #e9118f;\n\n// Links (used in apps).\n$link_color: #0596ce;\n\n// Shadow.\n$shadow: rgba(0, 0, 0, 0.3);\n\n// Colors that are taken from bootstrap, and not necessarily part of our core theme.\n$bootstrap_button_blue: #337ab7;\n$bootstrap_button_red: #d9534f;\n$bootstrap_error_background: #f2dede;\n$bootstrap_error_text: #b94a48;\n$bootstrap_v3_error_text: #a94442;\n$bootstrap_error_border: #ebccd1;\n$bootstrap_warning_background: #fcf8e3;\n$bootstrap_warning_text: #c09853;\n$bootstrap_warning_border: #faebcc;\n$bootstrap_border_color: #cccccc;\n$bootstrap_success_background: #dff0d8;\n$bootstrap_success_text: #468847;\n$bootstrap_success_border: #d6e9c6;\n\n// Colors taken from droplet, not part of our core theme.\n$droplet_light_green: #d3e965;\n$droplet_blue: #64b5f6;\n$droplet_bright_blue: #19c3e1;\n$droplet_yellow: #fff176;\n$droplet_orange: #ffb74d;\n$droplet_red: #f78183;\n$droplet_cyan: #4dd0e1;\n$droplet_pink: #f57ac6;\n$droplet_purple: #bb77c7;\n$droplet_green: #68d995;\n$droplet_white: $white;\n\n// Oceans: deep blue background.\n$oceans_deep_blue: rgb(2, 0, 28);\n\n// Dark theme background (used by default in Music Lab)\n$dark_black: #121212;\n\n// ===----===----===---- Phase 1 Colors: ----===----===----===\n// Brand\n$brand_primary_light: #E0F8F9;\n$brand_primary_default: #009EB0;\n$brand_primary_dark: #007785;\n\n$brand_secondary_light: #E0D1EC;\n$brand_secondary_default: #8C52BA;\n$brand_secondary_dark: #6C468A;\n\n$brand_accent_default: #ED6060;\n\n$brand_teal_5: #DFF2F4;\n\n//Product\n$product_affirmative_default: #3EA33E;\n\n$product_negative_light: #FDEBE9;\n$product_negative_default: #E5311A;\n$product_negative_dark: #AA2513;\n\n$product_caution_default: #F9CB28;\n\n$product_information_default: #007ACC;\n\n// Neutral\n$neutral_white: #FFFFFF;\n$neutral_light: #F7F8FA;\n$neutral_gray10: #EAEBEB;\n$neutral_dark10: #EAECEF;\n$neutral_dark20: #D1D4D8;\n$neutral_dark30: #BEC2C7;\n$neutral_dark40: #ABB0B6;\n$neutral_dark50: #989EA5;\n$neutral_dark60: #858C94;\n$neutral_dark70: #727A83;\n$neutral_dark80: #5F6872;\n$neutral_dark90: #4C5661;\n$neutral_dark: #292F36;\n\n//Brands\n$google_brand_color: #0F9D58;\n$microsoft_brand_color: #FFB900;\n$facebook_brand_color: #3B5998;\n$clever_brand_color: #1464FF;\n\n// ===----===----===---- Design system colors: ----===----===----===\n\n$light_primary_100: #BFE4E8;\n$light_primary_500: #0093A4;\n$light_primary_700: #007785;\n\n$light_secondary_100: #E2D4EE;\n$light_secondary_500: #8C52BA;\n$light_secondary_700: #6C468A;\n\n$light_gray_50: #F7F8FA;\n$light_gray_100: #EAECEF;\n$light_gray_200: #D1D4D8;\n$light_gray_300: #BEC2C7;\n$light_gray_400: #ABB0B6;\n$light_gray_500: #989EA5;\n$light_gray_600: #858C94;\n$light_gray_700: #727A83;\n$light_gray_800: #5F6872;\n$light_gray_900: #4C5661;\n$light_gray_950: #394450;\n\n$light_affirmative_100: #E2F1E2;\n$light_affirmative_500: #3EA33E;\n$light_affirmative_700: #2D742D;\n\n$light_negative_100: #FBE0DD;\n$light_negative_500: #E5311A;\n$light_negative_700: #B24949;\n\n$light_caution_100: #FEF7DF;\n$light_caution_500: #F9CB28;\n$light_caution_700: #C7A220;\n\n$light_accent_100: #FAD7D7;\n$light_accent_500: #ED6060;\n$light_accent_700: #D84C4C;\n\n$light_aqua_100: #CEFFFD;\n$light_aqua_500: #3CFFF8;\n$light_aqua_700: #30CCC6;\n\n$light_orange_100: #FFEDCC;\n$light_orange_500: #FFA400;\n$light_orange_700: #CC8300;\n\n$light_info_100: #DCEFFB;\n$light_info_500: #1892E3;\n$light_info_700: #1375B6;\n\n$light_white: #FFFFFF;\n\n$light_black: #292F36;\n\n$light_black_opacity_90: rgba(41, 47, 54, 0.90);\n$light_black_opacity-80: rgba(41, 47, 54, 0.80);\n$light_black_opacity-70: rgba(41, 47, 54, 0.70);\n$light_black_opacity-60: rgba(41, 47, 54, 0.60);\n$light_black_opacity-50: rgba(41, 47, 54, 0.50);\n$light_black_opacity-40: rgba(41, 47, 54, 0.40);\n$light_black_opacity-30: rgba(41, 47, 54, 0.30);\n$light_black_opacity-20: rgba(41, 47, 54, 0.20);\n$light_black_opacity-10: rgba(41, 47, 54, 0.10);\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={modalBackdrop:"tNW_TQi0C3Lql6uKCWdt",modal:"wN65B8UBIENjR7G7wzwd",xCloseButton:"krwikY2iwGe_cXQHRFBK"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/multiple-sections-assigner.module.scss":(module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/css-loader/dist/runtime/sourceMaps.js"),_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js"),___CSS_LOADER_EXPORT___=__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__)()(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());___CSS_LOADER_EXPORT___.push([module.id,".qgcL7GkURajv9sTPRu00{max-height:80vh !important;overflow:visible !important;padding:30px;padding-bottom:25px}.funQWk3VG3SoQ8c9JEoC{overflow-y:scroll;max-height:70vh}.vi1ZbL5sorsAsEna06hy{font-size:14px;margin:12px 0;padding:12px 0;border:1px solid #989ea5;border-left-width:0;border-right-width:0}.vi1ZbL5sorsAsEna06hy p{margin:0}.KFKkmjS0smsul6UVsVwf{margin:24px 0 12px 0;padding:0 0 5px 5px}.KFKkmjS0smsul6UVsVwf h5{margin-bottom:0}.KFKkmjS0smsul6UVsVwf .iMGH2KDTTulrEXlmP255{display:flex;flex-wrap:wrap;justify-content:space-between;margin:12px 0 4px 0}.KFKkmjS0smsul6UVsVwf .iMGH2KDTTulrEXlmP255 label{width:280px;margin-bottom:8px}.fXlR037_fLeOxLi1uxoc h3{margin-bottom:0}.lEhcsrRpv41eQ25NRAHv{display:flex;justify-content:space-between;border-top:1px solid #989ea5;padding-top:10px}","",{version:3,sources:["webpack://./src/templates/multiple-sections-assigner.module.scss"],names:[],mappings:"AAEA,sBACE,0BAAA,CACA,2BAAA,CACA,YAAA,CACA,mBAAA,CAGF,sBACE,iBAAA,CACA,eAAA,CAGF,sBACE,cAAA,CACA,aAAA,CACA,cAAA,CACA,wBAAA,CACA,mBAAA,CACA,oBAAA,CAEA,wBACE,QAAA,CAIJ,sBACE,oBAAA,CACA,mBAAA,CAEA,yBACE,eAAA,CAGF,4CACE,YAAA,CACA,cAAA,CACA,6BAAA,CACA,mBAAA,CAEA,kDACE,WAAA,CACA,iBAAA,CAKN,yBACE,eAAA,CAGF,sBACE,YAAA,CACA,6BAAA,CACA,4BAAA,CACA,gBAAA",sourcesContent:['@import "color";\n\n.popUpContainer{\n max-height: 80vh !important;\n overflow: visible !important;\n padding: 30px;\n padding-bottom: 25px\n}\n\n.information{\n overflow-y: scroll;\n max-height: 70vh;\n}\n\n.sectionsDirections {\n font-size: 14px;\n margin: 12px 0;\n padding: 12px 0;\n border: 1px solid $neutral_dark50;\n border-left-width: 0;\n border-right-width: 0;\n\n p {\n margin: 0;\n }\n}\n\n.sectionList {\n margin: 24px 0 12px 0;\n padding: 0 0 5px 5px;\n\n h5 {\n margin-bottom: 0;\n }\n\n .sectionListOptionsContainer {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin: 12px 0 4px 0;\n\n label {\n width: 280px;\n margin-bottom: 8px;\n }\n }\n}\n \n.modalHeader h3 {\n margin-bottom: 0;\n}\n\n.buttonContainer {\n display: flex;\n justify-content: space-between;\n border-top: 1px solid $neutral_dark50;\n padding-top: 10px;\n}\n'],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={popUpContainer:"qgcL7GkURajv9sTPRu00",information:"funQWk3VG3SoQ8c9JEoC",sectionsDirections:"vi1ZbL5sorsAsEna06hy",sectionList:"KFKkmjS0smsul6UVsVwf",sectionListOptionsContainer:"iMGH2KDTTulrEXlmP255",modalHeader:"fXlR037_fLeOxLi1uxoc",buttonContainer:"lEhcsrRpv41eQ25NRAHv"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./src/sharedComponents/accessible-dialogue.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_accessible_dialogue_module_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/sharedComponents/accessible-dialogue.module.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_accessible_dialogue_module_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_accessible_dialogue_module_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_accessible_dialogue_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_accessible_dialogue_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/multiple-sections-assigner.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:()=>__WEBPACK_DEFAULT_EXPORT__});var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertBySelector.js"),_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__),_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_multiple_sections_assigner_module_scss__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./src/templates/multiple-sections-assigner.module.scss"),options={};options.styleTagTransform=_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default(),options.setAttributes=_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default(),options.insert=_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null,"head"),options.domAPI=_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default(),options.insertStyleElement=_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default();_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_multiple_sections_assigner_module_scss__WEBPACK_IMPORTED_MODULE_6__.A,options);const __WEBPACK_DEFAULT_EXPORT__=_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_multiple_sections_assigner_module_scss__WEBPACK_IMPORTED_MODULE_6__.A&&_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_multiple_sections_assigner_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals?_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_4_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_4_use_2_multiple_sections_assigner_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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R0FFaEIsMkdBQUkseUxBQVNMLFNBS25CLGlDQUFlLDBMQUFXLHlMQUFRRCxPQUFTLHlMQUFRQSxZQUFTNVQsQyx1OUZDZi9ENlQsUUFBVSxDQUFDLEVBRWZBLFFBQVFDLGtCQUFvQixvR0FDNUJELFFBQVFFLGNBQWdCLGlIQUVsQkYsUUFBUUcsT0FBUyx3R0FBYyxLQUFNLFFBRTNDSCxRQUFRSSxPQUFTLDhGQUNqQkosUUFBUUssbUJBQXFCLHFHQUVoQiwyR0FBSSxnTUFBU0wsU0FLbkIsaUNBQWUsaU1BQVcsZ01BQVFELE9BQVMsZ01BQVFBLFlBQVM1VCxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL2NvZGUtc3R1ZGlvL2hpZGRlbkxlc3NvblJlZHV4LmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL0FjY2Vzc2libGVEaWFsb2cuanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvQ2xvc2VPbkVzY2FwZS5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9NdWx0aXBsZVNlY3Rpb25zQXNzaWduZXIuanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC9zaGFwZXMuanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL2FjY2Vzc2libGUtZGlhbG9ndWUubW9kdWxlLnNjc3MiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9tdWx0aXBsZS1zZWN0aW9ucy1hc3NpZ25lci5tb2R1bGUuc2NzcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2hhcmVkQ29tcG9uZW50cy9hY2Nlc3NpYmxlLWRpYWxvZ3VlLm1vZHVsZS5zY3NzP2YwYjQiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9tdWx0aXBsZS1zZWN0aW9ucy1hc3NpZ25lci5tb2R1bGUuc2Nzcz80OWYxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVkdWNlciBhbmQgYWN0aW9ucyB1c2VkIHRvIHRyYWNrIHdoYXQgc2VjdGlvbnMvc2NyaXB0cyBhcmUgYXJlIGhpZGRlbiBvbiBhXG4gKiBwZXIgc2VjdGlvbiBiYXNpcy5cbiAqL1xuaW1wb3J0IEltbXV0YWJsZSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuY29uc3QgU0VUX0hJRERFTl9MRVNTT05TID0gJ2hpZGRlbkxlc3Nvbi9TRVRfSElEREVOX0xFU1NPTlMnO1xuY29uc3QgVVBEQVRFX0hJRERFTl9MRVNTT04gPSAnaGlkZGVuTGVzc29uL1VQREFURV9ISURERU5fTEVTU09OJztcbmNvbnN0IFVQREFURV9ISURERU5fU0NSSVBUID0gJ2hpZGRlbkxlc3Nvbi9VUERBVEVfSElEREVOX1NDUklQVCc7XG5cbmV4cG9ydCBjb25zdCBTVFVERU5UX1NFQ1RJT05fSUQgPSAnU1RVREVOVCc7XG5cbmNvbnN0IEhpZGRlblN0YXRlID0gSW1tdXRhYmxlLlJlY29yZCh7XG4gIGhpZGRlbkxlc3NvbnNJbml0aWFsaXplZDogZmFsc2UsXG4gIGhpZGVhYmxlTGVzc29uc0FsbG93ZWQ6IGZhbHNlLFxuICAvLyBBIG1hcHBpbmcsIHdoZXJlIHRoZSBrZXkgaXMgdGhlIHNlY3Rpb25JZCwgYW5kIHRoZSB2YWx1ZSBpcyBhIG1hcHBpbmcgZnJvbVxuICAvLyBsZXNzb25JZCB0byBhIGJvb2wgaW5kaWNhdGluZyB3aGV0aGVyIHRoYXQgbGVzc29uIGlzIGhpZGRlbiAodHJ1ZSkgb3Igbm90IChmYWxzZSlcbiAgLy8gVGVhY2hlcnMgd2lsbCBwb3RlbnRpYWxseSBoYXZlIGEgbnVtYmVyIG9mIHNlY3Rpb24gaWRzLiBGb3Igc3R1ZGVudHMgd2VcbiAgLy8gdXNlIGEgc2VjdGlvbklkIG9mIFNUVURFTlRfU0VDVElPTl9JRCwgd2hpY2ggcmVwcmVzZW50cyB0aGUgaGlkZGVuIHN0YXRlXG4gIC8vIGZvciB0aGUgc3R1ZGVudCBiYXNlZCBvbiB0aGUgc2VjdGlvbnMgdGhleSBhcmUgaW4uXG4gIGxlc3NvbnNCeVNlY3Rpb246IEltbXV0YWJsZS5NYXAoe1xuICAgIC8vIFtzZWN0aW9uSWRdOiB7XG4gICAgLy8gICBbbGVzc29uSWRdOiB0cnVlXG4gICAgLy8gfVxuICB9KSxcbiAgLy8gU2FtZSBhcyBhYm92ZSBidXQgZm9yIGhpZGluZyBzY3JpcHRzIGluIGEgc2VjdGlvbiBpbnN0ZWFkIG9mIGxlc3NvbnNcbiAgc2NyaXB0c0J5U2VjdGlvbjogSW1tdXRhYmxlLk1hcCh7XG4gICAgLy8gW3NlY3Rpb25JZF06IHtcbiAgICAvLyAgIFtzY3JpcHRJZF06IHRydWVcbiAgICAvLyB9XG4gIH0pLFxufSk7XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoYXQgd2UgbmV2ZXIgaGF2ZSBtdWx0aXBsZSBsZXNzb25zQnlTZWN0aW9uIGlmIHdlIGhhdmUgU1RVREVOVF9TRUNUSU9OX0lEXG4gKiBAdGhyb3dzIElmIG5ldyBzdGF0ZSBpcyBpbnZhbGlkXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlU2VjdGlvbklkcyhzdGF0ZSkge1xuICBpZiAoXG4gICAgc3RhdGUuZ2V0SW4oWydsZXNzb25zQnlTZWN0aW9uJywgU1RVREVOVF9TRUNUSU9OX0lEXSkgJiZcbiAgICBzdGF0ZS5nZXQoJ2xlc3NvbnNCeVNlY3Rpb24nKS5zaXplID4gMVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnU2hvdWxkIG5ldmVyIGhhdmUgU1RVREVOVF9TRUNUSU9OX0lEIGFsb25nc2lkZSBvdGhlciBzZWN0aW9uSWRzJ1xuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBIaWRkZW4gbGVzc29uIHJlZHVjZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVkdWNlcihzdGF0ZSA9IG5ldyBIaWRkZW5TdGF0ZSgpLCBhY3Rpb24pIHtcbiAgaWYgKGFjdGlvbi50eXBlID09PSBTRVRfSElEREVOX0xFU1NPTlMpIHtcbiAgICBjb25zdCB7aGlkZGVuTGVzc29uc1BlclNlY3Rpb24sIGhpZGVhYmxlTGVzc29uc0FsbG93ZWR9ID0gYWN0aW9uO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2ggc2VjdGlvblxuICAgIGNvbnN0IHNlY3Rpb25JZHMgPSBPYmplY3Qua2V5cyhoaWRkZW5MZXNzb25zUGVyU2VjdGlvbik7XG4gICAgbGV0IG5leHRTdGF0ZSA9IHN0YXRlO1xuICAgIHNlY3Rpb25JZHMuZm9yRWFjaChzZWN0aW9uSWQgPT4ge1xuICAgICAgLy8gQW5kIGl0ZXJhdGUgdGhyb3VnaCBlYWNoIGhpZGRlbiBsZXNzb24gd2l0aGluIHRoYXQgc2VjdGlvblxuICAgICAgY29uc3QgaGlkZGVuTGVzc29uSWRzID0gaGlkZGVuTGVzc29uc1BlclNlY3Rpb25bc2VjdGlvbklkXTtcbiAgICAgIGhpZGRlbkxlc3Nvbklkcy5mb3JFYWNoKGxlc3NvbklkID0+IHtcbiAgICAgICAgbmV4dFN0YXRlID0gbmV4dFN0YXRlLnNldEluKFxuICAgICAgICAgIFsnbGVzc29uc0J5U2VjdGlvbicsIHNlY3Rpb25JZCwgbGVzc29uSWQudG9TdHJpbmcoKV0sXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdmFsaWRhdGVTZWN0aW9uSWRzKG5leHRTdGF0ZSk7XG5cbiAgICByZXR1cm4gbmV4dFN0YXRlLm1lcmdlKHtcbiAgICAgIGhpZGRlbkxlc3NvbnNJbml0aWFsaXplZDogdHJ1ZSxcbiAgICAgIGhpZGVhYmxlTGVzc29uc0FsbG93ZWQsXG4gICAgfSk7XG4gIH1cblxuICBpZiAoYWN0aW9uLnR5cGUgPT09IFVQREFURV9ISURERU5fTEVTU09OKSB7XG4gICAgY29uc3Qge3NlY3Rpb25JZCwgbGVzc29uSWQsIGhpZGRlbn0gPSBhY3Rpb247XG4gICAgY29uc3QgbmV4dFN0YXRlID0gc3RhdGUuc2V0SW4oXG4gICAgICBbJ2xlc3NvbnNCeVNlY3Rpb24nLCBzZWN0aW9uSWQsIGxlc3NvbklkLnRvU3RyaW5nKCldLFxuICAgICAgaGlkZGVuXG4gICAgKTtcbiAgICB2YWxpZGF0ZVNlY3Rpb25JZHMobmV4dFN0YXRlKTtcbiAgICByZXR1cm4gbmV4dFN0YXRlO1xuICB9XG5cbiAgaWYgKGFjdGlvbi50eXBlID09PSBVUERBVEVfSElEREVOX1NDUklQVCkge1xuICAgIGNvbnN0IHtzZWN0aW9uSWQsIHNjcmlwdElkLCBoaWRkZW59ID0gYWN0aW9uO1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9IHN0YXRlLnNldEluKFxuICAgICAgWydzY3JpcHRzQnlTZWN0aW9uJywgc2VjdGlvbklkLnRvU3RyaW5nKCksIHNjcmlwdElkLnRvU3RyaW5nKCldLFxuICAgICAgaGlkZGVuXG4gICAgKTtcbiAgICB2YWxpZGF0ZVNlY3Rpb25JZHMobmV4dFN0YXRlKTtcbiAgICByZXR1cm4gbmV4dFN0YXRlO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG4vLyBhY3Rpb24gY3JlYXRvcnNcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gaGlkZGVuTGVzc29uc1BlclNlY3Rpb24gLSBNYXBwaW5nIGZyb20gc2VjdGlvbklkIHRvIGEgbGlzdCBvZiBsZXNzb25JZHNcbiAqICAgdGhhdCBhcmUgaGlkZGVuIGZvciB0aGF0IHNlY3Rpb24uXG4gKiBAcGFyYW0ge2Jvb2x9IGhpZGVhYmxlTGVzc29uc0FsbG93ZWQgLSBUcnVlIGlmIHdlJ3JlIGFibGUgdG8gdG9nZ2xlIGhpZGRlbiBsZXNzb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRIaWRkZW5MZXNzb25zKFxuICBoaWRkZW5MZXNzb25zUGVyU2VjdGlvbixcbiAgaGlkZWFibGVMZXNzb25zQWxsb3dlZFxuKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogU0VUX0hJRERFTl9MRVNTT05TLFxuICAgIGhpZGRlbkxlc3NvbnNQZXJTZWN0aW9uLFxuICAgIGhpZGVhYmxlTGVzc29uc0FsbG93ZWQsXG4gIH07XG59XG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlSGlkZGVuTGVzc29uKHNlY3Rpb25JZCwgbGVzc29uSWQsIGhpZGRlbikge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9ISURERU5fTEVTU09OLFxuICAgIHNlY3Rpb25JZCxcbiAgICBsZXNzb25JZCxcbiAgICBoaWRkZW4sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVIaWRkZW5TY3JpcHQoc2VjdGlvbklkLCBzY3JpcHRJZCwgaGlkZGVuKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX0hJRERFTl9TQ1JJUFQsXG4gICAgc2VjdGlvbklkLFxuICAgIHNjcmlwdElkLFxuICAgIGhpZGRlbixcbiAgfTtcbn1cblxuLyoqXG4gKiBUb2dnbGUgdGhlIGhpZGRlbiBzdGF0ZSBvZiBhIHBhcnRpY3VsYXIgbGVzc29uIGluIGEgc2VjdGlvbiwgdXBkYXRpbmcgb3VyIGxvY2FsXG4gKiBzdGF0ZSB0byByZWZsZWN0IHRoZSBjaGFuZ2UsIGFuZCBwb3N0aW5nIHRvIHRoZSBzZXJ2ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVIaWRkZW5MZXNzb24oc2NyaXB0TmFtZSwgc2VjdGlvbklkLCBsZXNzb25JZCwgaGlkZGVuKSB7XG4gIHJldHVybiBkaXNwYXRjaCA9PiB7XG4gICAgLy8gdXBkYXRlIGxvY2FsIHN0YXRlXG4gICAgZGlzcGF0Y2godXBkYXRlSGlkZGVuTGVzc29uKHNlY3Rpb25JZCwgbGVzc29uSWQsIGhpZGRlbikpO1xuICAgIHBvc3RUb2dnbGVIaWRkZW4oc2NyaXB0TmFtZSwgc2VjdGlvbklkLCBsZXNzb25JZCwgaGlkZGVuKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBUb2dnbGUgdGhlIGhpZGRlbiBzdGF0ZSBvZiBhIHBhcnRpY3VsYXIgc2NyaXB0IGluIGEgc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUhpZGRlblNjcmlwdChzY3JpcHROYW1lLCBzZWN0aW9uSWQsIHNjcmlwdElkLCBoaWRkZW4pIHtcbiAgcmV0dXJuIGRpc3BhdGNoID0+IHtcbiAgICBkaXNwYXRjaCh1cGRhdGVIaWRkZW5TY3JpcHQoc2VjdGlvbklkLCBzY3JpcHRJZCwgaGlkZGVuKSk7XG4gICAgcG9zdFRvZ2dsZUhpZGRlbihzY3JpcHROYW1lLCBzZWN0aW9uSWQsIG51bGwsIGhpZGRlbik7XG4gIH07XG59XG5cbi8qKlxuICogUG9zdCB0byB0aGUgc2VydmVyIHRvIHRvZ2dsZSB0aGUgaGlkZGVuIHN0YXRlIG9mIGEgbGVzc29uIG9yIHNjcmlwdC4gbGVzc29uSWRcbiAqIHNob3VsZCBiZSBudWxsIGlmIHdlJ3JlIGhpZGluZyB0aGUgc2NyaXB0IHJhdGhlciB0aGFuIGEgcGFydGljdWxhciBsZXNzb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBzY3JpcHROYW1lXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VjdGlvbklkXG4gKiBAcGFyYW0ge3N0cmluZ30gbGVzc29uSWRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaGlkZGVuXG4gKi9cbmZ1bmN0aW9uIHBvc3RUb2dnbGVIaWRkZW4oc2NyaXB0TmFtZSwgc2VjdGlvbklkLCBsZXNzb25JZCwgaGlkZGVuKSB7XG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgc2VjdGlvbl9pZDogc2VjdGlvbklkLFxuICAgIGhpZGRlbixcbiAgfTtcbiAgaWYgKGxlc3NvbklkKSB7XG4gICAgZGF0YS5zdGFnZV9pZCA9IGxlc3NvbklkO1xuICB9XG5cbiAgJC5hamF4KHtcbiAgICB0eXBlOiAnUE9TVCcsXG4gICAgdXJsOiBgL3MvJHtzY3JpcHROYW1lfS90b2dnbGVfaGlkZGVuYCxcbiAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gIH0pLnN1Y2Nlc3MoKCkgPT4ge1xuICAgIHdpbmRvdy5fX1Rlc3RJbnRlcmZhY2UgPSB3aW5kb3cuX19UZXN0SW50ZXJmYWNlIHx8IHt9O1xuICAgIHdpbmRvdy5fX1Rlc3RJbnRlcmZhY2UudG9nZ2xlSGlkZGVuVW5pdENvbXBsZXRlID0gdHJ1ZTtcbiAgfSk7XG59XG5cbi8qKlxuICogUXVlcnkgc2VydmVyIGZvciBoaWRkZW4gbGVzc29uIGlkcywgYW5kIChwb3RlbnRpYWxseSkgdG9nZ2xlIHdoZXRoZXIgb3Igbm90IHdlXG4gKiBhcmUgYWJsZSB0byBtYXJrIGxlc3NvbnMgYXMgaGlkZWFibGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2NyaXB0TmFtZVxuICogQHBhcmFtIHtib29sZWFufSBjYW5IaWRlTGVzc29ucyBJZiB0cnVlLCBpbmZvcm0gcmVkdXggdGhhdCB3ZSdyZSBhYmxlIHRvIHRvZ2dsZVxuICogICB3aGV0aGVyIG9yIG5vdCBsZXNzb25zIGFyZSBoaWRkZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIaWRkZW5MZXNzb25zKHNjcmlwdE5hbWUsIGNhbkhpZGVMZXNzb25zKSB7XG4gIHJldHVybiBkaXNwYXRjaCA9PiB7XG4gICAgJC5hamF4KHtcbiAgICAgIHR5cGU6ICdHRVQnLFxuICAgICAgdXJsOiBgL3MvJHtzY3JpcHROYW1lfS9oaWRkZW5fbGVzc29uc2AsXG4gICAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB9KVxuICAgICAgLmRvbmUocmVzcG9uc2UgPT5cbiAgICAgICAgZGlzcGF0Y2goaW5pdGlhbGl6ZUhpZGRlbkxlc3NvbnMocmVzcG9uc2UsIGNhbkhpZGVMZXNzb25zKSlcbiAgICAgIClcbiAgICAgIC5mYWlsKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuICB9O1xufVxuXG4vKipcbiAqIEluaXRpYWxpemUgaGlkZGVuIGxlc3NvbnMgYmFzZWQgb24gc2VydmVyIGRhdGEuIEluIHRoZSBjYXNlIG9mIGEgc3R1ZGVudCwgdGhpc1xuICogd2lsbCBiZSBhIGxpc3Qgb2YgaGlkZGVuIGxlc3NvbiBpZHMuIEluIHRoZSBjYXNlIG9mIGEgdGVhY2hlciwgaXQgd2lsbCBiZVxuICogYSBtYXBwaW5nIGZyb20gc2VjdGlvbiBpZCB0byBhIGxpc3Qgb2YgaGlkZGVuIGxlc3NvbiBpZHMgZm9yIHRoYXQgc2VjdGlvblxuICogQHBhcmFtIHtzdHJpbmdbXXxPYmplY3Q8c3RyaW5nLCBzdHJpbmdbXT59IGRhdGFcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gY2FuSGlkZUxlc3NvbnMgLSBUcnVlIGlmIHdlJ3JlIGFibGUgdG8gdG9nZ2xlIGhpZGRlbiBsZXNzb25zXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVIaWRkZW5MZXNzb25zKGRhdGEsIGNhbkhpZGVMZXNzb25zKSB7XG4gIHJldHVybiBkaXNwYXRjaCA9PiB7XG4gICAgLy8gRm9yIGEgaW5zdHJ1Y3Rvciwgd2UgZ2V0IGJhY2sgYSBtYXAgb2Ygc2VjdGlvbiBpZCB0byBoaWRkZW4gbGVzc29uIGlkc1xuICAgIC8vIEZvciBhIHBhcnRpY2lwYW50LCB3ZSBqdXN0IGdldCBiYWNrIGEgbGlzdCBvZiBoaWRkZW4gbGVzc29uIGlkcy4gVHVybiB0aGF0XG4gICAgLy8gaW50byBhbiBvYmplY3QsIHVuZGVyIHRoZSAnc2VjdGlvbklkJyBvZiBTVFVERU5UX1NFQ1RJT05fSURcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgZGF0YSA9IHtbU1RVREVOVF9TRUNUSU9OX0lEXTogZGF0YX07XG4gICAgfVxuXG4gICAgZGlzcGF0Y2goc2V0SGlkZGVuTGVzc29ucyhkYXRhLCAhIWNhbkhpZGVMZXNzb25zKSk7XG4gIH07XG59XG5cbi8qKlxuICogR2l2ZW4gc2VydmVyIGRhdGEgZm9yIHRoZSBzZXQgb2Ygc2NyaXB0cyB0aGF0IGFyZSBoaWRkZW4gZm9yIHRoaXMgdXNlcixcbiAqIHBvcHVsYXRlIG91ciByZWR1eCBzdG9yZS5cbiAqIEBwYXJhbSB7c3RyaW5nW118T2JqZWN0PHN0cmluZywgc3RyaW5nW10+fSBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplSGlkZGVuU2NyaXB0cyhkYXRhKSB7XG4gIHJldHVybiBkaXNwYXRjaCA9PiB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRm9yIGEgdGVhY2hlciwgd2UgZ2V0IGJhY2sgYSBtYXAgb2Ygc2VjdGlvbiBpZCB0byBoaWRkZW4gc2NyaXB0IGlkc1xuICAgIC8vIEZvciBhIHN0dWRlbnQsIHdlIGp1c3QgZ2V0IGJhY2sgYSBsaXN0IG9mIGhpZGRlbiBzY3JpcHQgaWRzLiBUdXJuIHRoYXRcbiAgICAvLyBpbnRvIGFuIG9iamVjdCwgdW5kZXIgdGhlICdzZWN0aW9uSWQnIG9mIFNUVURFTlRfU0VDVElPTl9JRFxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgICBkYXRhID0ge1tTVFVERU5UX1NFQ1RJT05fSURdOiBkYXRhfTtcbiAgICB9XG5cbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKHNlY3Rpb25JZCA9PiB7XG4gICAgICBjb25zdCBoaWRkZW5TY3JpcHRJZHMgPSBkYXRhW3NlY3Rpb25JZF07XG4gICAgICBoaWRkZW5TY3JpcHRJZHMuZm9yRWFjaChzY3JpcHRJZCA9PiB7XG4gICAgICAgIGRpc3BhdGNoKHVwZGF0ZUhpZGRlblNjcmlwdChzZWN0aW9uSWQsIHNjcmlwdElkLCB0cnVlKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuLy8gdXRpbHNcblxuLyoqXG4gKiBIZWxwZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBsZXNzb24gaXMgaGlkZGVuIGZvciBhIGdpdmVuIHNlY3Rpb24uIElmIG5vXG4gKiBzZWN0aW9uIGlzIGdpdmVuLCB3ZSBhc3N1bWUgdGhpcyBpcyBhIHN0dWRlbnQgYW5kIHVzZSBTVFVERU5UX1NFQ1RJT05fSURcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGVzc29uSGlkZGVuRm9yU2VjdGlvbihzdGF0ZSwgc2VjdGlvbklkLCBsZXNzb25JZCkge1xuICByZXR1cm4gaXNIaWRkZW5Gb3JTZWN0aW9uKHN0YXRlLCBzZWN0aW9uSWQsIGxlc3NvbklkLCAnbGVzc29uc0J5U2VjdGlvbicpO1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBkZXRlcm1pbmUgd2hldGhlciBhIHNjcmlwdCBpcyBoaWRkZW4gZm9yIGEgZ2l2ZW4gc2VjdGlvbi4gSWYgbm9cbiAqIHNlY3Rpb24gaXMgZ2l2ZW4sIHdlIGFzc3VtZSB0aGlzIGlzIGEgc3R1ZGVudCBhbmQgdXNlIFNUVURFTlRfU0VDVElPTl9JRFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTY3JpcHRIaWRkZW5Gb3JTZWN0aW9uKHN0YXRlLCBzZWN0aW9uSWQsIHNjcmlwdElkKSB7XG4gIHJldHVybiBpc0hpZGRlbkZvclNlY3Rpb24oc3RhdGUsIHNlY3Rpb25JZCwgc2NyaXB0SWQsICdzY3JpcHRzQnlTZWN0aW9uJyk7XG59XG5cbi8qKlxuICogSGVscGVyIHVzZWQgYnkgdGhlIGFib3ZlIHR3byBtZXRob2RzIHNvIHRoYXQgd2UgYmVoYXZlIHRoZSBzYW1lIHdoZW4gbG9va2luZ1xuICogZm9yIGhpZGRlbiBsZXNzb25zL3NjcmlwdHNcbiAqL1xuZnVuY3Rpb24gaXNIaWRkZW5Gb3JTZWN0aW9uKHN0YXRlLCBzZWN0aW9uSWQsIGl0ZW1JZCwgYnlTZWN0aW9uS2V5KSB7XG4gIGlmICghaXRlbUlkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIGlmIHdlIGRvbid0IGhhdmUgYSBzZWN0aW9uSWQsIHdlIG11c3QgYmUgYSBzdHVkZW50XG4gIGlmICghc2VjdGlvbklkKSB7XG4gICAgc2VjdGlvbklkID0gU1RVREVOVF9TRUNUSU9OX0lEO1xuICB9XG4gIGNvbnN0IGJ5U2VjdGlvbiA9IHN0YXRlLmdldChieVNlY3Rpb25LZXkpO1xuICByZXR1cm4gISFieVNlY3Rpb24uZ2V0SW4oW3NlY3Rpb25JZC50b1N0cmluZygpLCBpdGVtSWQudG9TdHJpbmcoKV0pO1xufVxuIiwiaW1wb3J0IENsb3NlQnV0dG9uIGZyb20gJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnkvY2xvc2VCdXR0b24nO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgRm9jdXNUcmFwIGZyb20gJ2ZvY3VzLXRyYXAtcmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBDbG9zZU9uRXNjYXBlIGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvQ2xvc2VPbkVzY2FwZSc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBkZWZhdWx0U3R5bGUgZnJvbSAnLi9hY2Nlc3NpYmxlLWRpYWxvZ3VlLm1vZHVsZS5zY3NzJztcblxuZnVuY3Rpb24gQWNjZXNzaWJsZURpYWxvZyh7XG4gIGlkLFxuICBzdHlsZXMsXG4gIG9uQ2xvc2UsXG4gIG9uRGlzbWlzcyxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgZmFsbGJhY2tGb2N1cyxcbiAgaW5pdGlhbEZvY3VzID0gdHJ1ZSxcbiAgY2xvc2VPbkNsaWNrQmFja2Ryb3AgPSBmYWxzZSxcbiAgb25EZWFjdGl2YXRlID0gb25DbG9zZSxcbiAgbm9NQyA9IGZhbHNlLCAvLyBleGNsdWRlIE1pbmVDcmFmdCBidXR0b24gc3R5bGVzXG59KSB7XG4gIC8vIElmIHRoZXNlIHN0eWxlcyBhcmUgcHJvdmlkZWQgYnkgdGhlIGdpdmVuIHN0eWxlc2hlZXQsIHVzZSB0aGVtXG4gIGNvbnN0IG1vZGFsU3R5bGUgPSBzdHlsZXM/Lm1vZGFsIHx8IGRlZmF1bHRTdHlsZS5tb2RhbDtcbiAgY29uc3QgYmFja2Ryb3BTdHlsZSA9IHN0eWxlcz8ubW9kYWxCYWNrZHJvcCB8fCBkZWZhdWx0U3R5bGUubW9kYWxCYWNrZHJvcDtcbiAgbGV0IGNsb3NlSWNvblN0eWxlID0gc3R5bGVzPy54Q2xvc2VCdXR0b24gfHwgZGVmYXVsdFN0eWxlLnhDbG9zZUJ1dHRvbjtcbiAgY2xvc2VJY29uU3R5bGUgPSBub01DID8gW2Nsb3NlSWNvblN0eWxlLCAnbm8tbWMnXSA6IGNsb3NlSWNvblN0eWxlO1xuXG4gIC8vIFRoaXMgcHJvdmlkZXMgdGhlIG9wdGlvbiBmb3IgdGhlcmUgdG8gYmUgZGlmZmVyZW50IGJlaGF2aW9ycyBiZXR3ZWVuIGNsb3NpbmcgdGhlIGRpYWxvZ1xuICAvLyBhbmQgZXhwbGljaXRseSBkaXNtaXNzaW5nIGl0LCBmb3IgZXhhbXBsZSB3aGVuIHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBcInJlbWluZCBtZSBsYXRlclwiLlxuICBjb25zdCB4SWNvbk9uQ2xpY2sgPSBvbkRpc21pc3MgPyBvbkRpc21pc3MgOiBvbkNsb3NlO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtiYWNrZHJvcFN0eWxlfSAvPlxuICAgICAgPENsb3NlT25Fc2NhcGUgaGFuZGxlQ2xvc2U9e29uQ2xvc2V9PlxuICAgICAgICA8Rm9jdXNUcmFwXG4gICAgICAgICAgZm9jdXNUcmFwT3B0aW9ucz17e1xuICAgICAgICAgICAgaW5pdGlhbEZvY3VzOiBpbml0aWFsRm9jdXMsXG4gICAgICAgICAgICBvbkRlYWN0aXZhdGU6IG9uRGVhY3RpdmF0ZSxcbiAgICAgICAgICAgIGNsaWNrT3V0c2lkZURlYWN0aXZhdGVzOiBjbG9zZU9uQ2xpY2tCYWNrZHJvcCxcbiAgICAgICAgICAgIGZhbGxiYWNrRm9jdXM6IGZhbGxiYWNrRm9jdXMsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgIGFyaWEtbW9kYWxcbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17YCR7aWR9LXRpdGxlYH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhtb2RhbFN0eWxlLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENsb3NlQnV0dG9uXG4gICAgICAgICAgICAgIGlkPVwidWktY2xvc2UtZGlhbG9nXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbG9zZUljb25TdHlsZX1cbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aTE4bi5jbG9zZURpYWxvZygpfVxuICAgICAgICAgICAgICBvbkNsaWNrPXt4SWNvbk9uQ2xpY2t9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0ZvY3VzVHJhcD5cbiAgICAgIDwvQ2xvc2VPbkVzY2FwZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuQWNjZXNzaWJsZURpYWxvZy5wcm9wVHlwZXMgPSB7XG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdHlsZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uRGlzbWlzczogUHJvcFR5cGVzLmZ1bmMsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBmYWxsYmFja0ZvY3VzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbml0aWFsRm9jdXM6IFByb3BUeXBlcy5ib29sLFxuICBjbG9zZU9uQ2xpY2tCYWNrZHJvcDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uRGVhY3RpdmF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG5vTUM6IFByb3BUeXBlcy5ib29sLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQWNjZXNzaWJsZURpYWxvZztcbiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG4vKipcbiAqIFV0aWxpdHkgd3JhcHBlciBjb21wb25lbnQgdGhhdCBjYWxscyBhIGNsb3NlIGZ1bmN0aW9uIHdoZW4gdGhlIEVzY2FwZSBrZXkgaXMgcHJlc3NlZFxuICovXG5jb25zdCBDbG9zZU9uRXNjYXBlID0gKHtoYW5kbGVDbG9zZSwgY2xhc3NOYW1lLCBjaGlsZHJlbn0pID0+IHtcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IGV2ZW50ID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgaGFuZGxlQ2xvc2UoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWV9IG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5DbG9zZU9uRXNjYXBlLnByb3BUeXBlcyA9IHtcbiAgaGFuZGxlQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvc2VPbkVzY2FwZTtcbiIsImltcG9ydCBDaGVja2JveCBmcm9tICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5L2NoZWNrYm94JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtjb25uZWN0fSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB7dXBkYXRlSGlkZGVuU2NyaXB0fSBmcm9tICdAY2RvL2FwcHMvY29kZS1zdHVkaW8vaGlkZGVuTGVzc29uUmVkdXgnO1xuaW1wb3J0IHtcbiAgSGVhZGluZzMsXG4gIEhlYWRpbmc1LFxuICBCb2R5VHdvVGV4dCxcbn0gZnJvbSAnQGNkby9hcHBzL2NvbXBvbmVudExpYnJhcnkvdHlwb2dyYXBoeSc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BjZG8vYXBwcy9sZWdhY3lTaGFyZWRDb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQgQWNjZXNzaWJsZURpYWxvZyBmcm9tICdAY2RvL2FwcHMvc2hhcmVkQ29tcG9uZW50cy9BY2Nlc3NpYmxlRGlhbG9nJztcbmltcG9ydCB7c2VjdGlvbkZvckRyb3Bkb3duU2hhcGV9IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC9zaGFwZXMnO1xuaW1wb3J0IHtcbiAgYXNzaWduVG9TZWN0aW9uLFxuICB1bmFzc2lnblNlY3Rpb24sXG4gIHNlY3Rpb25IYXNOZXdEYXRhLFxufSBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvdGVhY2hlclNlY3Rpb25zUmVkdXgnO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQgbW9kdWxlU3R5bGUgZnJvbSAnLi9tdWx0aXBsZS1zZWN0aW9ucy1hc3NpZ25lci5tb2R1bGUuc2Nzcyc7XG5cbmNvbnN0IE11bHRpcGxlU2VjdGlvbnNBc3NpZ25lciA9ICh7XG4gIGNvdXJzZUlkLFxuICBhc3NpZ25tZW50TmFtZSxcbiAgb25DbG9zZSxcbiAgY291cnNlT2ZmZXJpbmdJZCxcbiAgY291cnNlVmVyc2lvbklkLFxuICBzY3JpcHRJZCxcbiAgcmVhc3NpZ25Db25maXJtID0gKCkgPT4ge30sXG4gIGlzQXNzaWduaW5nQ291cnNlLFxuICBpc1N0YW5kQWxvbmVVbml0LFxuICBwYXJ0aWNpcGFudEF1ZGllbmNlLFxuICBvbkFzc2lnblN1Y2Nlc3MsXG4gIHNlY3Rpb25EaXJlY3Rpb25zID0gaTE4bi5jaG9vc2VTZWN0aW9uc0RpcmVjdGlvbnMoKSxcbiAgLy8gUmVkdXhcbiAgc2VjdGlvbnMsXG4gIHVuYXNzaWduU2VjdGlvbixcbiAgYXNzaWduVG9TZWN0aW9uLFxuICB1cGRhdGVIaWRkZW5TY3JpcHQsXG4gIHNlY3Rpb25IYXNOZXdEYXRhLFxufSkgPT4ge1xuICBjb25zdCBbY3VycmVudFNlY3Rpb25zQXNzaWduZWQsIHNldEN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkXSA9IHVzZVN0YXRlKFtdKTtcblxuICBjb25zdCBpbml0aWFsU2VjdGlvbnNBc3NpZ25lZCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBpbml0aWFsU2VjdGlvbnNBc3NpZ25lZCA9IFtdO1xuICAgIC8vIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIGNvbWluZyBmcm9tIHRoZSBVTklUIGxhbmRpbmcgcGFnZSAtIGlmIHNvIGFkZCBjb3Vyc2VzIGZlYXR1cmluZyB0aGlzIHVuaXRcbiAgICBpZiAoIWlzQXNzaWduaW5nQ291cnNlKSB7XG4gICAgICBpZiAoaXNTdGFuZEFsb25lVW5pdCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGNvdXJzZVZlcnNpb25JZCA9PT0gc2VjdGlvbnNbaV0uY291cnNlVmVyc2lvbklkKSB7XG4gICAgICAgICAgICBpbml0aWFsU2VjdGlvbnNBc3NpZ25lZC5wdXNoKHNlY3Rpb25zW2ldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoc2NyaXB0SWQgPT09IHNlY3Rpb25zW2ldLnVuaXRJZCkge1xuICAgICAgICAgICAgaW5pdGlhbFNlY3Rpb25zQXNzaWduZWQucHVzaChzZWN0aW9uc1tpXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0Fzc2lnbmluZ0NvdXJzZSkge1xuICAgICAgLy8gY2hlY2tzIHRvIHNlZSBpZiB0aGlzIGlzIGNvbWluZyBmcm9tIHRoZSBDT1VSU0UgbGFuZGluZyBwYWdlXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChjb3Vyc2VJZCA9PT0gc2VjdGlvbnNbaV0uY291cnNlSWQpIHtcbiAgICAgICAgICBpbml0aWFsU2VjdGlvbnNBc3NpZ25lZC5wdXNoKHNlY3Rpb25zW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBzZXRDdXJyZW50U2VjdGlvbnNBc3NpZ25lZChpbml0aWFsU2VjdGlvbnNBc3NpZ25lZCk7XG4gICAgcmV0dXJuIGluaXRpYWxTZWN0aW9uc0Fzc2lnbmVkO1xuICB9LCBbXG4gICAgaXNBc3NpZ25pbmdDb3Vyc2UsXG4gICAgaXNTdGFuZEFsb25lVW5pdCxcbiAgICBzZWN0aW9ucyxcbiAgICBjb3Vyc2VJZCxcbiAgICBzY3JpcHRJZCxcbiAgICBjb3Vyc2VWZXJzaW9uSWQsXG4gIF0pO1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZWRDaGVja2JveCA9IGN1cnJlbnRTZWN0aW9uID0+IHtcbiAgICBjb25zdCBpc1VuY2hlY2tlZCA9IGN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkLnNvbWUoXG4gICAgICBzID0+IHMuY29kZSA9PT0gY3VycmVudFNlY3Rpb24uY29kZVxuICAgICk7XG4gICAgaWYgKGlzVW5jaGVja2VkKSB7XG4gICAgICBjb25zdCBuZXdMaXN0ID0gY3VycmVudFNlY3Rpb25zQXNzaWduZWQuZmlsdGVyKFxuICAgICAgICBzID0+IHMuY29kZSAhPT0gY3VycmVudFNlY3Rpb24uY29kZVxuICAgICAgKTtcbiAgICAgIHNldEN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkKG5ld0xpc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkXTtcbiAgICAgIG5ld0xpc3QucHVzaChjdXJyZW50U2VjdGlvbik7XG4gICAgICBzZXRDdXJyZW50U2VjdGlvbnNBc3NpZ25lZChuZXdMaXN0KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcmVhc3NpZ25TZWN0aW9ucyA9ICgpID0+IHtcbiAgICAvLyBBc3NpZ24gYW55IGNvdXJzZXMgdGhhdCBuZWVkIHRvIGJlIGFzc2lnbmVkXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50U2VjdGlvbnNBc3NpZ25lZC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgbmVlZHNUb0JlQXNzaWduZWQgPSAhaW5pdGlhbFNlY3Rpb25zQXNzaWduZWQuc29tZShcbiAgICAgICAgcyA9PiBzLmNvZGUgPT09IGN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkW2ldLmNvZGVcbiAgICAgICk7XG4gICAgICBpZiAobmVlZHNUb0JlQXNzaWduZWQpIHtcbiAgICAgICAgaWYgKGlzQXNzaWduaW5nQ291cnNlKSB7XG4gICAgICAgICAgY29uc3Qgc2VjdGlvbklkID0gY3VycmVudFNlY3Rpb25zQXNzaWduZWRbaV0uaWQ7XG4gICAgICAgICAgYXNzaWduVG9TZWN0aW9uV2l0aENvbmZpcm1hdGlvbihcbiAgICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICAgIGNvdXJzZUlkLFxuICAgICAgICAgICAgY291cnNlT2ZmZXJpbmdJZCxcbiAgICAgICAgICAgIGNvdXJzZVZlcnNpb25JZCxcbiAgICAgICAgICAgIHNjcmlwdElkXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1bmhpZGVBbmRBc3NpZ25Vbml0KGN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBzZWN0aW9uSGFzTmV3RGF0YSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIGFueSBzZWN0aW9ucyBuZWVkIHRvIGJlIHJlbW92ZWQgZnJvbSBiZWluZyBhc3NpZ25lZCwgcmVtb3ZlIHRoZW1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluaXRpYWxTZWN0aW9uc0Fzc2lnbmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpc1NlY3Rpb25Ub0JlUmVtb3ZlZCA9ICFjdXJyZW50U2VjdGlvbnNBc3NpZ25lZC5zb21lKFxuICAgICAgICBzID0+IHMuY29kZSA9PT0gaW5pdGlhbFNlY3Rpb25zQXNzaWduZWRbaV0uY29kZVxuICAgICAgKTtcblxuICAgICAgaWYgKGlzU2VjdGlvblRvQmVSZW1vdmVkKSB7XG4gICAgICAgIC8vIGlmIG9uIENPVVJTRSBsYW5kaW5nIHBhZ2Ugb3IgYSBTVEFOREFMT05FIFVOSVQsIHVuYXNzaWduIGVudGlyZWx5XG4gICAgICAgIGlzQXNzaWduaW5nQ291cnNlIHx8IGlzU3RhbmRBbG9uZVVuaXRcbiAgICAgICAgICA/IHVuYXNzaWduU2VjdGlvbihpbml0aWFsU2VjdGlvbnNBc3NpZ25lZFtpXS5pZCwgJycpXG4gICAgICAgICAgOiBhc3NpZ25Db3Vyc2VXaXRob3V0VW5pdChpbml0aWFsU2VjdGlvbnNBc3NpZ25lZFtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGNsb3NlIGRpYWxvZ3VlXG4gICAgcmVhc3NpZ25Db25maXJtKCk7XG4gICAgb25DbG9zZSgpO1xuICB9O1xuXG4gIGNvbnN0IHNlbGVjdEFsbEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgbGV0IG5ld1NlY3Rpb25zQXNzaWduZWQgPSBbLi4uY3VycmVudFNlY3Rpb25zQXNzaWduZWRdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIGlmIHRoZSBzZWN0aW9uIGlzIE5PVCBpbiBjdXJyZW50U2VjdGlvbnMgYXNzaWduZWQsIGFzc2lnbiBpdFxuICAgICAgY29uc3QgaXNTZWN0aW9uVG9CZUFzc2lnbmVkID0gIWN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkLnNvbWUoXG4gICAgICAgIHMgPT4gcy5jb2RlID09PSBzZWN0aW9uc1tpXS5jb2RlXG4gICAgICApO1xuICAgICAgaWYgKGlzU2VjdGlvblRvQmVBc3NpZ25lZCkge1xuICAgICAgICBuZXdTZWN0aW9uc0Fzc2lnbmVkLnB1c2goc2VjdGlvbnNbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICBzZXRDdXJyZW50U2VjdGlvbnNBc3NpZ25lZChuZXdTZWN0aW9uc0Fzc2lnbmVkKTtcbiAgfTtcblxuICBjb25zdCB1bmhpZGVBbmRBc3NpZ25Vbml0ID0gc2VjdGlvbiA9PiB7XG4gICAgY29uc3Qgc2VjdGlvbklkID0gc2VjdGlvbi5pZDtcbiAgICB1cGRhdGVIaWRkZW5TY3JpcHQoc2VjdGlvbklkLCBzY3JpcHRJZCwgZmFsc2UpO1xuICAgIGFzc2lnblRvU2VjdGlvbldpdGhDb25maXJtYXRpb24oXG4gICAgICBzZWN0aW9uSWQsXG4gICAgICBjb3Vyc2VJZCxcbiAgICAgIGNvdXJzZU9mZmVyaW5nSWQsXG4gICAgICBjb3Vyc2VWZXJzaW9uSWQsXG4gICAgICBzY3JpcHRJZFxuICAgICk7XG4gIH07XG5cbiAgLy8gdGhpcyBpcyBpZGVudGljYWwgdG8gdW5oaWRlQW5kQXNzaWduVW5pdCBhYm92ZSBidXQganVzdCBoYXMgbnVsbCBhcyB0aGUgc2NyaXB0SWRcbiAgY29uc3QgYXNzaWduQ291cnNlV2l0aG91dFVuaXQgPSBzZWN0aW9uID0+IHtcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBzZWN0aW9uLmlkO1xuICAgIGFzc2lnblRvU2VjdGlvbldpdGhDb25maXJtYXRpb24oXG4gICAgICBzZWN0aW9uSWQsXG4gICAgICBjb3Vyc2VJZCxcbiAgICAgIGNvdXJzZU9mZmVyaW5nSWQsXG4gICAgICBjb3Vyc2VWZXJzaW9uSWQsXG4gICAgICBudWxsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBhc3NpZ25Ub1NlY3Rpb25XaXRoQ29uZmlybWF0aW9uID0gKFxuICAgIHNlY3Rpb25JZCxcbiAgICBjb3Vyc2VJZCxcbiAgICBjb3Vyc2VPZmZlcmluZ0lkLFxuICAgIGNvdXJzZVZlcnNpb25JZCxcbiAgICBzY3JpcHRJZFxuICApID0+IHtcbiAgICBvbkFzc2lnblN1Y2Nlc3NcbiAgICAgID8gYXNzaWduVG9TZWN0aW9uKFxuICAgICAgICAgIHNlY3Rpb25JZCxcbiAgICAgICAgICBjb3Vyc2VJZCxcbiAgICAgICAgICBjb3Vyc2VPZmZlcmluZ0lkLFxuICAgICAgICAgIGNvdXJzZVZlcnNpb25JZCxcbiAgICAgICAgICBzY3JpcHRJZFxuICAgICAgICApLnRoZW4ob25Bc3NpZ25TdWNjZXNzKVxuICAgICAgOiBhc3NpZ25Ub1NlY3Rpb24oXG4gICAgICAgICAgc2VjdGlvbklkLFxuICAgICAgICAgIGNvdXJzZUlkLFxuICAgICAgICAgIGNvdXJzZU9mZmVyaW5nSWQsXG4gICAgICAgICAgY291cnNlVmVyc2lvbklkLFxuICAgICAgICAgIHNjcmlwdElkXG4gICAgICAgICk7XG4gIH07XG5cbiAgY29uc3QgaXNBc3NpZ25hYmxlVG9TZWN0aW9uID0gc2VjdGlvblBhcnRpY2lwYW50VHlwZSA9PiB7XG4gICAgcmV0dXJuIHNlY3Rpb25QYXJ0aWNpcGFudFR5cGUgPT09IHBhcnRpY2lwYW50QXVkaWVuY2U7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8QWNjZXNzaWJsZURpYWxvZyBjbGFzc05hbWU9e21vZHVsZVN0eWxlLnBvcFVwQ29udGFpbmVyfSBvbkNsb3NlPXtvbkNsb3NlfT5cbiAgICAgIDxkaXZcbiAgICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2kxOG4uZGlyZWN0aW9uc0ZvckFzc2lnbmluZ1NlY3Rpb25zKCl9XG4gICAgICAgIGNsYXNzTmFtZT17bW9kdWxlU3R5bGUuaW5mb3JtYXRpb259XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXttb2R1bGVTdHlsZS5tb2RhbEhlYWRlcn0+XG4gICAgICAgICAgPEhlYWRpbmczPntpMThuLmNob29zZVNlY3Rpb25zUHJvbXB0KHthc3NpZ25tZW50TmFtZX0pfTwvSGVhZGluZzM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17bW9kdWxlU3R5bGUuc2VjdGlvbnNEaXJlY3Rpb25zfT5cbiAgICAgICAgICA8Qm9keVR3b1RleHQ+e3NlY3Rpb25EaXJlY3Rpb25zfTwvQm9keVR3b1RleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17bW9kdWxlU3R5bGUuc2VjdGlvbkxpc3R9PlxuICAgICAgICAgIDxIZWFkaW5nNT57aTE4bi55b3VyU2VjdGlvbnNMaXN0KCl9PC9IZWFkaW5nNT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17bW9kdWxlU3R5bGUuc2VjdGlvbkxpc3RPcHRpb25zQ29udGFpbmVyfT5cbiAgICAgICAgICAgIHtzZWN0aW9ucyAmJlxuICAgICAgICAgICAgICBzZWN0aW9ucy5tYXAoXG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9PlxuICAgICAgICAgICAgICAgICAgaXNBc3NpZ25hYmxlVG9TZWN0aW9uKHNlY3Rpb24ucGFydGljaXBhbnRUeXBlKSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgIGtleT17c2VjdGlvbi5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICEhY3VycmVudFNlY3Rpb25zQXNzaWduZWQuc29tZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9PiBzLmNvZGUgPT09IHNlY3Rpb24uY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gaGFuZGxlQ2hhbmdlZENoZWNrYm94KHNlY3Rpb24pfSAvLyB0aGlzIGZ1bmN0aW9uIHNob3VsZCB1cGRhdGUgdGhlIHN0YXRlIG9mIG11bHRpcGxlIHNlY3Rpb24gYXNzaWduZXJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtzZWN0aW9uLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtzZWN0aW9uLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJzZWxlY3QtYWxsLXNlY3Rpb25zXCJcbiAgICAgICAgICAgIHRleHQ9e2kxOG4uc2VsZWN0QWxsKCl9XG4gICAgICAgICAgICBvbkNsaWNrPXtzZWxlY3RBbGxIYW5kbGVyfVxuICAgICAgICAgICAgc3R5bGVBc1RleHRcbiAgICAgICAgICAgIGNvbG9yPXtCdXR0b24uQnV0dG9uQ29sb3IuYnJhbmRTZWNvbmRhcnlEZWZhdWx0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17bW9kdWxlU3R5bGUuYnV0dG9uQ29udGFpbmVyfT5cbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIHRleHQ9e2kxOG4uZGlhbG9nQ2FuY2VsKCl9XG4gICAgICAgICAgb25DbGljaz17b25DbG9zZX1cbiAgICAgICAgICBjb2xvcj17QnV0dG9uLkJ1dHRvbkNvbG9yLm5ldXRyYWxEYXJrfVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJjb25maXJtLWFzc2lnblwiXG4gICAgICAgICAgdGV4dD17aTE4bi5jb25maXJtQXNzaWdubWVudCgpfVxuICAgICAgICAgIG9uQ2xpY2s9e3JlYXNzaWduU2VjdGlvbnN9XG4gICAgICAgICAgY29sb3I9e0J1dHRvbi5CdXR0b25Db2xvci5icmFuZFNlY29uZGFyeURlZmF1bHR9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L0FjY2Vzc2libGVEaWFsb2c+XG4gICk7XG59O1xuXG5NdWx0aXBsZVNlY3Rpb25zQXNzaWduZXIucHJvcFR5cGVzID0ge1xuICBjb3Vyc2VJZDogUHJvcFR5cGVzLm51bWJlcixcbiAgYXNzaWdubWVudE5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY291cnNlT2ZmZXJpbmdJZDogUHJvcFR5cGVzLm51bWJlcixcbiAgY291cnNlVmVyc2lvbklkOiBQcm9wVHlwZXMubnVtYmVyLFxuICBzY3JpcHRJZDogUHJvcFR5cGVzLm51bWJlcixcbiAgcmVhc3NpZ25Db25maXJtOiBQcm9wVHlwZXMuZnVuYyxcbiAgaXNBc3NpZ25pbmdDb3Vyc2U6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzU3RhbmRBbG9uZVVuaXQ6IFByb3BUeXBlcy5ib29sLFxuICBwYXJ0aWNpcGFudEF1ZGllbmNlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkFzc2lnblN1Y2Nlc3M6IFByb3BUeXBlcy5mdW5jLFxuICBzZWN0aW9uRGlyZWN0aW9uczogUHJvcFR5cGVzLnN0cmluZyxcbiAgLy8gUmVkdXhcbiAgc2VjdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKHNlY3Rpb25Gb3JEcm9wZG93blNoYXBlKS5pc1JlcXVpcmVkLFxuICB1bmFzc2lnblNlY3Rpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGFzc2lnblRvU2VjdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdXBkYXRlSGlkZGVuU2NyaXB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzZWN0aW9uSGFzTmV3RGF0YTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZE11bHRpcGxlU2VjdGlvbnNBc3NpZ25lciA9IE11bHRpcGxlU2VjdGlvbnNBc3NpZ25lcjtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChzdGF0ZSA9PiAoe30pLCB7XG4gIGFzc2lnblRvU2VjdGlvbixcbiAgdXBkYXRlSGlkZGVuU2NyaXB0LFxuICB1bmFzc2lnblNlY3Rpb24sXG4gIHNlY3Rpb25IYXNOZXdEYXRhLFxufSkoTXVsdGlwbGVTZWN0aW9uc0Fzc2lnbmVyKTtcbiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7U2VjdGlvbkxvZ2luVHlwZX0gZnJvbSAnQGNkby9nZW5lcmF0ZWQtc2NyaXB0cy9zaGFyZWRDb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3Qgc2VjdGlvblNoYXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjcmVhdGVkQXQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxvZ2luVHlwZTogUHJvcFR5cGVzLm9uZU9mKE9iamVjdC5rZXlzKFNlY3Rpb25Mb2dpblR5cGUpKSxcbiAgbGVzc29uRXh0cmFzOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBwYWlyaW5nQWxsb3dlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgdHRzQXV0b3BsYXlFbmFibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBzdHVkZW50Q291bnQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgY29kZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjb3Vyc2VPZmZlcmluZ0lkOiBQcm9wVHlwZXMubnVtYmVyLFxuICBjb3Vyc2VWZXJzaW9uSWQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIHVuaXRJZDogUHJvcFR5cGVzLm51bWJlcixcbiAgY291cnNlSWQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIHNjcmlwdElkOiBQcm9wVHlwZXMubnVtYmVyLFxuICBncmFkZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICBwcm92aWRlck1hbmFnZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHJlc3RyaWN0U2VjdGlvbjogUHJvcFR5cGVzLmJvb2wsXG4gIHBvc3RNaWxlc3RvbmVEaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIHN5bmNFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbn0pO1xuXG5leHBvcnQgY29uc3QgYXNzaWdubWVudFVuaXRTaGFwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIGlkOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBsZXNzb25fZXh0cmFzX2F2YWlsYWJsZTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgdGV4dF90b19zcGVlY2hfZW5hYmxlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgcG9zaXRpb246IFByb3BUeXBlcy5udW1iZXIsXG59KTtcblxuZXhwb3J0IGNvbnN0IGFzc2lnbm1lbnRDb3Vyc2VWZXJzaW9uU2hhcGUgPSBQcm9wVHlwZXMuc2hhcGUoe1xuICBpZDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBrZXk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgdmVyc2lvbl95ZWFyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNvbnRlbnRfcm9vdF9pZDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHBhdGg6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc19zdGFibGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzX3JlY29tbWVuZGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBsb2NhbGVzOiBQcm9wVHlwZXMuYXJyYXksXG4gIHVuaXRzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IGFzc2lnbm1lbnRDb3Vyc2VPZmZlcmluZ1NoYXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgZWxlbWVudGFyeTogUHJvcFR5cGVzLm9iamVjdCxcbiAgaGlnaDogUHJvcFR5cGVzLm9iamVjdCxcbiAgaG9jOiBQcm9wVHlwZXMub2JqZWN0LFxuICBtaWRkbGU6IFByb3BUeXBlcy5vYmplY3QsXG59KTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzcm9vbVNoYXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZWN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBlbnJvbGxtZW50X2NvZGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY291cnNlX3N0YXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxufSk7XG5cbmV4cG9ydCBjb25zdCBsb2FkRXJyb3JTaGFwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIHN0YXR1czogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBtZXNzYWdlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNvcnRhYmxlU2VjdGlvblNoYXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjb3Vyc2VWZXJzaW9uTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY291cnNlRGlzcGxheU5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxvZ2luVHlwZTogUHJvcFR5cGVzLm9uZU9mKE9iamVjdC5rZXlzKFNlY3Rpb25Mb2dpblR5cGUpKS5pc1JlcXVpcmVkLFxuICBzdHVkZW50Q291bnQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgY29kZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBncmFkZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICBwcm92aWRlck1hbmFnZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGhpZGRlbjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgYXNzaWdubWVudE5hbWU6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICBhc3NpZ25tZW50UGF0aDogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlY3Rpb25Gb3JEcm9wZG93blNoYXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc0Fzc2lnbmVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxufSk7XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi50TldfVFFpMEMzTHFsNnVLQ1dkdHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTouNjt6LWluZGV4OjEyNTB9LndONjVCOFVCSUVOalI3Rzd3endke3Bvc2l0aW9uOmZpeGVkO3RvcDoxMCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7ei1pbmRleDoxMzUwO3dpZHRoOjcwJTttYXgtd2lkdGg6NjAwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4O3BhZGRpbmc6MXJlbTtvdmVyZmxvdzphdXRvfS5rcndpa1kyaXdHZV9jWFFIUkZCS3tiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtib3JkZXI6bm9uZTtwYWRkaW5nOjA7Zm9udDppbmhlcml0O2N1cnNvcjpwb2ludGVyO291dGxpbmU6aW5oZXJpdDtib3gtc2hhZG93Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjFyZW07aW5zZXQtaW5saW5lLWVuZDoxcmVtfS5rcndpa1kyaXdHZV9jWFFIUkZCSyBpe2NvbG9yOiNiZWMyYzc7Zm9udC1zaXplOjEuMTg3NXJlbTtsaW5lLWhlaWdodDoxLjQ4NDRyZW07d2lkdGg6MS40ODQ0cmVtfS5rcndpa1kyaXdHZV9jWFFIUkZCSzpob3Zlcntib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDpub25lO2NvbG9yOmluaGVyaXQ7Ym9yZGVyOm5vbmU7cGFkZGluZzowO2ZvbnQ6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOmluaGVyaXR9Lmtyd2lrWTJpd0dlX2NYUUhSRkJLOmhvdmVyIGl7Y29sb3I6Izk4OWVhNX0ua3J3aWtZMml3R2VfY1hRSFJGQks6Zm9jdXN7b3V0bGluZTojMDA5ZWIwIHNvbGlkIDJweDtvdXRsaW5lLW9mZnNldDoycHh9XCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3NoYXJlZENvbXBvbmVudHMvYWNjZXNzaWJsZS1kaWFsb2d1ZS5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vc2hhcmVkL2Nzcy9jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUVBLHNCQUNFLGNBQUEsQ0FDQSxLQUFBLENBQ0EsT0FBQSxDQUNBLFFBQUEsQ0FDQSxNQUFBLENBQ0EscUJBQUEsQ0FDQSxVQUFBLENBQ0EsWUFBQSxDQUdGLHNCQUNFLGNBQUEsQ0FDQSxPQUFBLENBQ0EsUUFBQSxDQUNBLDBCQUFBLENBQ0EsWUFBQSxDQUNBLFNBQUEsQ0FDQSxlQUFBLENBQ0EscUJBQUEsQ0FDQSxpQkFBQSxDQUNBLFlBQUEsQ0FDQSxhQUFBLENBR0Ysc0JBRUUsZUFBQSxDQUNBLGFBQUEsQ0FDQSxXQUFBLENBQ0EsU0FBQSxDQUNBLFlBQUEsQ0FDQSxjQUFBLENBQ0EsZUFBQSxDQUNBLGVBQUEsQ0FFQSxpQkFBQSxDQUNBLFFBQUEsQ0FDQSxxQkFBQSxDQUVBLHdCQUNFLGFDK0phLENEOUpiLG1CQUFBLENBQ0EscUJBQUEsQ0FDQSxlQUFBLENBR0YsNEJBRUUsZUFBQSxDQUNBLGVBQUEsQ0FDQSxhQUFBLENBQ0EsV0FBQSxDQUNBLFNBQUEsQ0FDQSxZQUFBLENBQ0EsY0FBQSxDQUNBLGVBQUEsQ0FFQSw4QkFDRSxhQytJVyxDRDNJZiw0QkFDRSx5QkFBQSxDQUNBLGtCQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgJ2NvbG9yLnNjc3MnO1xcblxcbi5tb2RhbEJhY2tkcm9wIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XFxuICBvcGFjaXR5OiAwLjY7XFxuICB6LWluZGV4OiAxMjUwO1xcbn1cXG5cXG4ubW9kYWwge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAxMCU7XFxuICBsZWZ0OiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XFxuICB6LWluZGV4OiAxMzUwO1xcbiAgd2lkdGg6IDcwJTtcXG4gIG1heC13aWR0aDogNjAwcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgcGFkZGluZzogMXJlbTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG5cXG4ueENsb3NlQnV0dG9uIHtcXG4gIC8vIENsZWFyIGRlZmF1bHQgYnV0dG9uIHN0eWxlc1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgcGFkZGluZzogMDtcXG4gIGZvbnQ6IGluaGVyaXQ7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBvdXRsaW5lOiBpbmhlcml0O1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG5cXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMXJlbTtcXG4gIGluc2V0LWlubGluZS1lbmQ6IDFyZW07IC8vIExvZ2ljYWwgcHJvcGVydHkgZm9yIHJpZ2h0IGluIExUUiwgbGVmdCBpbiBSVExcXG5cXG4gIGkge1xcbiAgICBjb2xvcjogJGxpZ2h0X2dyYXlfMzAwO1xcbiAgICBmb250LXNpemU6IDEuMTg3NXJlbTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNDg0NHJlbTtcXG4gICAgd2lkdGg6IDEuNDg0NHJlbTtcXG4gIH1cXG5cXG4gICY6aG92ZXIge1xcbiAgICAvLyBDbGVhciBkZWZhdWx0IGJ1dHRvbiBzdHlsZXNcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgZm9udDogaW5oZXJpdDtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBvdXRsaW5lOiBpbmhlcml0O1xcblxcbiAgICBpIHtcXG4gICAgICBjb2xvcjogJGxpZ2h0X2dyYXlfNTAwO1xcbiAgICB9XFxuICB9XFxuXFxuICAmOmZvY3VzIHtcXG4gICAgb3V0bGluZTogJGJyYW5kX3ByaW1hcnlfZGVmYXVsdCBzb2xpZCAycHg7XFxuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XFxuICB9XFxufVxcblwiLFwiLy8gY29sb3JzIGZyb20gaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy95Y2ppd3Q4dnhsbXYyaWgvQ29kZS5vcmdfc3R5bGVzaGVldF92Ml8wOS4wNS4xMy5wZGZcXG5cXG4vLyBQbGVhc2Uga2VlcCB0aGlzIGZpbGUgc2ltcGxlOyBpdCBzaG91bGQgb25seSBjb250YWluIGNvbG9yIGRlZmluaXRpb25zXFxuLy8gICBhbmQgYWxpYXNlcy4gIFZhcmlhYmxlcyBkZWZpbmVkIGluIHRoaXMgZmlsZSBhcmUgZXhwb3J0ZWQgdG9cXG4vLyAgIGFwcHMvc3JjL3V0aWwvY29sb3IuanMgZHVyaW5nIHRoZSBhcHBzIGJ1aWxkIHByb2Nlc3MuXFxuXFxuJGJsYWNrOiAjMDAwO1xcbiRiYWNrZ3JvdW5kX2JsYWNrOiAjMTIxNDE2O1xcbiRkYXJrX2dyYXk6ICMyRDMxMzk7XFxuJGRhcmtlc3RfZ3JheTogIzI5MkYzNjtcXG4kZGFya19zbGF0ZV9ncmF5OiAjMjgyYzM0O1xcbiRkYXJrZXN0X3NsYXRlX2dyYXk6ICMyNTI5MmQ7XFxuJGRhcmtfY2hhcmNvYWw6ICM0ZDU3NWY7XFxuJGNoYXJjb2FsOiAjNWI2NzcwO1xcbiRsaWdodF9ncmF5OiAjOTQ5Y2EyO1xcbiRsaWdodGVyX2dyYXk6ICNjNmNhY2Q7XFxuJGxpZ2h0ZXN0X2dyYXk6ICNlN2U4ZWE7XFxuJGJhY2tncm91bmRfZ3JheTogI2YyZjJmMjtcXG4kZGltZ3JheTogIzY5Njk2OTtcXG4kd2hpdGU6ICNmZmY7XFxuJGRlZmF1bHRfYmx1ZTogIzM2NzBiMztcXG5cXG4kZGFya190ZWFsOiAjMDA5NGEzO1xcbiR0ZWFsOiAjMDA5M2E0O1xcbiRhcHBsYWJfYnV0dG9uX3RlYWw6ICMxYWJjOWM7XFxuJGxpZ2h0X3RlYWw6ICM1OWNhZDM7XFxuJGxpZ2h0aXNoX3RlYWw6ICM4MGQ2ZGU7XFxuJGxpZ2h0ZXJfdGVhbDogI2E2ZTNlODtcXG4kbGlnaHRlc3RfdGVhbDogI2Q5ZjNmNTtcXG4kYWlfcnVicmljX2N5YW46ICMzY2ZmZjg7XFxuXFxuJHB1cnBsZTogIzhjNTJiYTtcXG4kbGlnaHRfcHVycGxlOiAjYTY5YmMxO1xcbiRsaWdodGVyX3B1cnBsZTogI2NmYzlkZTtcXG4kbGlnaHRlc3RfcHVycGxlOiAjZWJlOGYxO1xcblxcbiRjeWFuOiAjMDA5NGNhO1xcbiRsaWdodF9jeWFuOiAjNTliOWRjO1xcbiRsaWdodGVyX2N5YW46ICNhNmRhZWQ7XFxuJGxpZ2h0ZXN0X2N5YW46ICNkOWVmZjc7XFxuJGFsbW9zdF93aGl0ZV9jeWFuOiAjZjVmY2ZmO1xcblxcbiRvcmFuZ2U6ICNmZmE0MDA7XFxuJGxpZ2h0X29yYW5nZTogI2ZmYzQ1OTtcXG4kbGlnaHRlcl9vcmFuZ2U6ICNmZmUwYTY7XFxuJGxpZ2h0ZXN0X29yYW5nZTogI2ZmZjJkOTtcXG4kZGFya19vcmFuZ2U6ICNmZjg2MDA7XFxuXFxuJGdyZWVuOiAjYjliZjE1O1xcbiRsaWdodF9ncmVlbjogI2QxZDU2NztcXG4kbGlnaHRlcl9ncmVlbjogI2U3ZTlhZDtcXG4kbGlnaHRlc3RfZ3JlZW46ICNmNWY1ZGM7XFxuJGhpZ2hsaWdodF9ncmVlbjogIzhhZmM5YjtcXG5cXG4keWVsbG93OiAjZmZiODFkO1xcbiRsaWdodF95ZWxsb3c6ICNmZmRiNzQ7XFxuJGxpZ2h0ZXJfeWVsbG93OiAjZmZlYmI1O1xcbiRsaWdodGVzdF95ZWxsb3c6ICNmZmY3ZGY7XFxuXFxuJGdvbGRlbnJvZDogI2RhYTUyMDtcXG5cXG4kaGVhZGVyX3RleHQ6ICR3aGl0ZTtcXG4kYmtnbmRfY29sb3I6ICR0ZWFsO1xcbiRpbnNldF9jb2xvcjogJGxpZ2h0ZXJfZ3JheTtcXG4kZGFya19jb2xvcjogJHB1cnBsZTtcXG4kaGRyX2NvbG9yOiAkcHVycGxlO1xcblxcbi8vIFNvbWUgZXh0cmEgY29sb3JzLlxcbiRyZWQ6ICNjMDA7XFxuJGxpZ2h0ZXN0X3JlZDogI2ZjYztcXG4kZGFya19yZWQ6ICNkNjI5MTE7XFxuJHJlYWxncmVlbjogIzAwODAwMDtcXG4kcmVhbHllbGxvdzogI2ZmMDtcXG4kbXVzdGFyZHllbGxvdzogI2VmY2QxYztcXG4kdHdpdHRlcl9ibHVlOiAjMDBhY2VkO1xcbiRmYWNlYm9va19ibHVlOiAjM2I1OTk4O1xcbiRsaW5rZWRpbl9ibHVlOiAjMDA3N0I1O1xcbiRkYXJrX2JsdWU6ICMwMDY0N2Y7XFxuJGJsb2NrbHlfZmx5b3V0X2dyYXk6ICNkZGQ7XFxuJGRlZmF1bHRfdGV4dDogIzMzMztcXG4kYm9yZGVyX2dyYXk6ICNiYmI7XFxuJGJvcmRlcl9saWdodF9ncmF5OiAjZDhkOGQ4O1xcbiR0YWJsZV9oZWFkZXI6ICNlY2VjZWM7XFxuJHRhYmxlX2xpZ2h0X3JvdzogI2ZjZmNmYztcXG4kdGFibGVfZGFya19yb3c6ICNmNGY0ZjQ7XFxuXFxuLy8gUHJvZ3Jlc3MgY29sb3JzLlxcbiRsZXZlbF9zdWJtaXR0ZWQ6ICRwdXJwbGU7XFxuJGxldmVsX3BlcmZlY3Q6IHJnYigxNCwgMTkwLCAxNCk7XFxuJGxldmVsX3Bhc3NlZDogcmdiKDE1OSwgMjEyLCAxNTkpO1xcbiRsZXZlbF9hdHRlbXB0ZWQ6ICRyZWFseWVsbG93O1xcbiRsZXZlbF9ub3RfdHJpZWQ6ICNmZWZlZmU7XFxuJGxldmVsX2N1cnJlbnQ6ICRvcmFuZ2U7XFxuJGxldmVsX3Jldmlld19yZWplY3RlZDogJHJlZDtcXG4kbGV2ZWxfcmV2aWV3X2FjY2VwdGVkOiByZ2IoMTEsIDE0MiwgMTEpOyAvLyBUT0RPOiAkbGV2ZWxfcGFzc2VkO1xcbiRhc3Nlc3NtZW50OiAkY3lhbjtcXG4kd29ya3NwYWNlX3J1bm5pbmdfYmFja2dyb3VuZDogI2U1ZTVlNTtcXG5cXG4vLyBFeHBlcmltZW50YWwgU3ByaXRlIExhYiB2YWxpZGF0aW9uIGNvbG9ycy5cXG4kZGFya19wdXJwbGU6ICM2ODJBNzc7XFxuJGJyaWdodF9ncmVlbjogIzBlYmUwZTtcXG4kbmVvbl9waW5rOiAjZTkxMThmO1xcblxcbi8vIExpbmtzICh1c2VkIGluIGFwcHMpLlxcbiRsaW5rX2NvbG9yOiAjMDU5NmNlO1xcblxcbi8vIFNoYWRvdy5cXG4kc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuXFxuLy8gQ29sb3JzIHRoYXQgYXJlIHRha2VuIGZyb20gYm9vdHN0cmFwLCBhbmQgbm90IG5lY2Vzc2FyaWx5IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGJvb3RzdHJhcF9idXR0b25fYmx1ZTogIzMzN2FiNztcXG4kYm9vdHN0cmFwX2J1dHRvbl9yZWQ6ICNkOTUzNGY7XFxuJGJvb3RzdHJhcF9lcnJvcl9iYWNrZ3JvdW5kOiAjZjJkZWRlO1xcbiRib290c3RyYXBfZXJyb3JfdGV4dDogI2I5NGE0ODtcXG4kYm9vdHN0cmFwX3YzX2Vycm9yX3RleHQ6ICNhOTQ0NDI7XFxuJGJvb3RzdHJhcF9lcnJvcl9ib3JkZXI6ICNlYmNjZDE7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JhY2tncm91bmQ6ICNmY2Y4ZTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX3RleHQ6ICNjMDk4NTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JvcmRlcjogI2ZhZWJjYztcXG4kYm9vdHN0cmFwX2JvcmRlcl9jb2xvcjogI2NjY2NjYztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYmFja2dyb3VuZDogI2RmZjBkODtcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfdGV4dDogIzQ2ODg0NztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYm9yZGVyOiAjZDZlOWM2O1xcblxcbi8vIENvbG9ycyB0YWtlbiBmcm9tIGRyb3BsZXQsIG5vdCBwYXJ0IG9mIG91ciBjb3JlIHRoZW1lLlxcbiRkcm9wbGV0X2xpZ2h0X2dyZWVuOiAjZDNlOTY1O1xcbiRkcm9wbGV0X2JsdWU6ICM2NGI1ZjY7XFxuJGRyb3BsZXRfYnJpZ2h0X2JsdWU6ICMxOWMzZTE7XFxuJGRyb3BsZXRfeWVsbG93OiAjZmZmMTc2O1xcbiRkcm9wbGV0X29yYW5nZTogI2ZmYjc0ZDtcXG4kZHJvcGxldF9yZWQ6ICNmNzgxODM7XFxuJGRyb3BsZXRfY3lhbjogIzRkZDBlMTtcXG4kZHJvcGxldF9waW5rOiAjZjU3YWM2O1xcbiRkcm9wbGV0X3B1cnBsZTogI2JiNzdjNztcXG4kZHJvcGxldF9ncmVlbjogIzY4ZDk5NTtcXG4kZHJvcGxldF93aGl0ZTogJHdoaXRlO1xcblxcbi8vIE9jZWFuczogZGVlcCBibHVlIGJhY2tncm91bmQuXFxuJG9jZWFuc19kZWVwX2JsdWU6IHJnYigyLCAwLCAyOCk7XFxuXFxuLy8gRGFyayB0aGVtZSBiYWNrZ3JvdW5kICh1c2VkIGJ5IGRlZmF1bHQgaW4gTXVzaWMgTGFiKVxcbiRkYXJrX2JsYWNrOiAjMTIxMjEyO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBQaGFzZSAxIENvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuLy8gQnJhbmRcXG4kYnJhbmRfcHJpbWFyeV9saWdodDogI0UwRjhGOTtcXG4kYnJhbmRfcHJpbWFyeV9kZWZhdWx0OiAjMDA5RUIwO1xcbiRicmFuZF9wcmltYXJ5X2Rhcms6ICMwMDc3ODU7XFxuXFxuJGJyYW5kX3NlY29uZGFyeV9saWdodDogI0UwRDFFQztcXG4kYnJhbmRfc2Vjb25kYXJ5X2RlZmF1bHQ6ICM4QzUyQkE7XFxuJGJyYW5kX3NlY29uZGFyeV9kYXJrOiAjNkM0NjhBO1xcblxcbiRicmFuZF9hY2NlbnRfZGVmYXVsdDogI0VENjA2MDtcXG5cXG4kYnJhbmRfdGVhbF81OiAjREZGMkY0O1xcblxcbi8vUHJvZHVjdFxcbiRwcm9kdWN0X2FmZmlybWF0aXZlX2RlZmF1bHQ6ICMzRUEzM0U7XFxuXFxuJHByb2R1Y3RfbmVnYXRpdmVfbGlnaHQ6ICNGREVCRTk7XFxuJHByb2R1Y3RfbmVnYXRpdmVfZGVmYXVsdDogI0U1MzExQTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kYXJrOiAjQUEyNTEzO1xcblxcbiRwcm9kdWN0X2NhdXRpb25fZGVmYXVsdDogI0Y5Q0IyODtcXG5cXG4kcHJvZHVjdF9pbmZvcm1hdGlvbl9kZWZhdWx0OiAjMDA3QUNDO1xcblxcbi8vIE5ldXRyYWxcXG4kbmV1dHJhbF93aGl0ZTogI0ZGRkZGRjtcXG4kbmV1dHJhbF9saWdodDogI0Y3RjhGQTtcXG4kbmV1dHJhbF9ncmF5MTA6ICNFQUVCRUI7XFxuJG5ldXRyYWxfZGFyazEwOiAjRUFFQ0VGO1xcbiRuZXV0cmFsX2RhcmsyMDogI0QxRDREODtcXG4kbmV1dHJhbF9kYXJrMzA6ICNCRUMyQzc7XFxuJG5ldXRyYWxfZGFyazQwOiAjQUJCMEI2O1xcbiRuZXV0cmFsX2Rhcms1MDogIzk4OUVBNTtcXG4kbmV1dHJhbF9kYXJrNjA6ICM4NThDOTQ7XFxuJG5ldXRyYWxfZGFyazcwOiAjNzI3QTgzO1xcbiRuZXV0cmFsX2Rhcms4MDogIzVGNjg3MjtcXG4kbmV1dHJhbF9kYXJrOTA6ICM0QzU2NjE7XFxuJG5ldXRyYWxfZGFyazogIzI5MkYzNjtcXG5cXG4vL0JyYW5kc1xcbiRnb29nbGVfYnJhbmRfY29sb3I6ICMwRjlENTg7XFxuJG1pY3Jvc29mdF9icmFuZF9jb2xvcjogI0ZGQjkwMDtcXG4kZmFjZWJvb2tfYnJhbmRfY29sb3I6ICMzQjU5OTg7XFxuJGNsZXZlcl9icmFuZF9jb2xvcjogIzE0NjRGRjtcXG5cXG4vLyA9PT0tLS0tPT09LS0tLT09PS0tLS0gRGVzaWduIHN5c3RlbSBjb2xvcnM6IC0tLS09PT0tLS0tPT09LS0tLT09PVxcblxcbiRsaWdodF9wcmltYXJ5XzEwMDogI0JGRTRFODtcXG4kbGlnaHRfcHJpbWFyeV81MDA6ICMwMDkzQTQ7XFxuJGxpZ2h0X3ByaW1hcnlfNzAwOiAjMDA3Nzg1O1xcblxcbiRsaWdodF9zZWNvbmRhcnlfMTAwOiAjRTJENEVFO1xcbiRsaWdodF9zZWNvbmRhcnlfNTAwOiAjOEM1MkJBO1xcbiRsaWdodF9zZWNvbmRhcnlfNzAwOiAjNkM0NjhBO1xcblxcbiRsaWdodF9ncmF5XzUwOiAjRjdGOEZBO1xcbiRsaWdodF9ncmF5XzEwMDogI0VBRUNFRjtcXG4kbGlnaHRfZ3JheV8yMDA6ICNEMUQ0RDg7XFxuJGxpZ2h0X2dyYXlfMzAwOiAjQkVDMkM3O1xcbiRsaWdodF9ncmF5XzQwMDogI0FCQjBCNjtcXG4kbGlnaHRfZ3JheV81MDA6ICM5ODlFQTU7XFxuJGxpZ2h0X2dyYXlfNjAwOiAjODU4Qzk0O1xcbiRsaWdodF9ncmF5XzcwMDogIzcyN0E4MztcXG4kbGlnaHRfZ3JheV84MDA6ICM1RjY4NzI7XFxuJGxpZ2h0X2dyYXlfOTAwOiAjNEM1NjYxO1xcbiRsaWdodF9ncmF5Xzk1MDogIzM5NDQ1MDtcXG5cXG4kbGlnaHRfYWZmaXJtYXRpdmVfMTAwOiAjRTJGMUUyO1xcbiRsaWdodF9hZmZpcm1hdGl2ZV81MDA6ICMzRUEzM0U7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzcwMDogIzJENzQyRDtcXG5cXG4kbGlnaHRfbmVnYXRpdmVfMTAwOiAjRkJFMEREO1xcbiRsaWdodF9uZWdhdGl2ZV81MDA6ICNFNTMxMUE7XFxuJGxpZ2h0X25lZ2F0aXZlXzcwMDogI0IyNDk0OTtcXG5cXG4kbGlnaHRfY2F1dGlvbl8xMDA6ICNGRUY3REY7XFxuJGxpZ2h0X2NhdXRpb25fNTAwOiAjRjlDQjI4O1xcbiRsaWdodF9jYXV0aW9uXzcwMDogI0M3QTIyMDtcXG5cXG4kbGlnaHRfYWNjZW50XzEwMDogI0ZBRDdENztcXG4kbGlnaHRfYWNjZW50XzUwMDogI0VENjA2MDtcXG4kbGlnaHRfYWNjZW50XzcwMDogI0Q4NEM0QztcXG5cXG4kbGlnaHRfYXF1YV8xMDA6ICNDRUZGRkQ7XFxuJGxpZ2h0X2FxdWFfNTAwOiAjM0NGRkY4O1xcbiRsaWdodF9hcXVhXzcwMDogIzMwQ0NDNjtcXG5cXG4kbGlnaHRfb3JhbmdlXzEwMDogI0ZGRURDQztcXG4kbGlnaHRfb3JhbmdlXzUwMDogI0ZGQTQwMDtcXG4kbGlnaHRfb3JhbmdlXzcwMDogI0NDODMwMDtcXG5cXG4kbGlnaHRfaW5mb18xMDA6ICNEQ0VGRkI7XFxuJGxpZ2h0X2luZm9fNTAwOiAjMTg5MkUzO1xcbiRsaWdodF9pbmZvXzcwMDogIzEzNzVCNjtcXG5cXG4kbGlnaHRfd2hpdGU6ICNGRkZGRkY7XFxuXFxuJGxpZ2h0X2JsYWNrOiAjMjkyRjM2O1xcblxcbiRsaWdodF9ibGFja19vcGFjaXR5XzkwOiByZ2JhKDQxLCA0NywgNTQsIDAuOTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTgwOiByZ2JhKDQxLCA0NywgNTQsIDAuODApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTcwOiByZ2JhKDQxLCA0NywgNTQsIDAuNzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTYwOiByZ2JhKDQxLCA0NywgNTQsIDAuNjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTUwOiByZ2JhKDQxLCA0NywgNTQsIDAuNTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTQwOiByZ2JhKDQxLCA0NywgNTQsIDAuNDApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTMwOiByZ2JhKDQxLCA0NywgNTQsIDAuMzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTIwOiByZ2JhKDQxLCA0NywgNTQsIDAuMjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTEwOiByZ2JhKDQxLCA0NywgNTQsIDAuMTApO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ubG9jYWxzID0ge1xuXHRcIm1vZGFsQmFja2Ryb3BcIjogXCJ0TldfVFFpMEMzTHFsNnVLQ1dkdFwiLFxuXHRcIm1vZGFsXCI6IFwid042NUI4VUJJRU5qUjdHN3d6d2RcIixcblx0XCJ4Q2xvc2VCdXR0b25cIjogXCJrcndpa1kyaXdHZV9jWFFIUkZCS1wiXG59O1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5xZ2NMN0drVVJhanY5c1RQUnUwMHttYXgtaGVpZ2h0OjgwdmggIWltcG9ydGFudDtvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7cGFkZGluZzozMHB4O3BhZGRpbmctYm90dG9tOjI1cHh9LmZ1blFXazNWRzNTb1E4YzlKRW9De292ZXJmbG93LXk6c2Nyb2xsO21heC1oZWlnaHQ6NzB2aH0udmkxWmJMNXNvcnNBc0VuYTA2aHl7Zm9udC1zaXplOjE0cHg7bWFyZ2luOjEycHggMDtwYWRkaW5nOjEycHggMDtib3JkZXI6MXB4IHNvbGlkICM5ODllYTU7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MH0udmkxWmJMNXNvcnNBc0VuYTA2aHkgcHttYXJnaW46MH0uS0ZLa21qUzBzbXN1bDZVVnNWd2Z7bWFyZ2luOjI0cHggMCAxMnB4IDA7cGFkZGluZzowIDAgNXB4IDVweH0uS0ZLa21qUzBzbXN1bDZVVnNWd2YgaDV7bWFyZ2luLWJvdHRvbTowfS5LRktrbWpTMHNtc3VsNlVWc1Z3ZiAuaU1HSDJLRFRUdWxyRVhsbVAyNTV7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbjoxMnB4IDAgNHB4IDB9LktGS2ttalMwc21zdWw2VVZzVndmIC5pTUdIMktEVFR1bHJFWGxtUDI1NSBsYWJlbHt3aWR0aDoyODBweDttYXJnaW4tYm90dG9tOjhweH0uZlhsUjAzN19mTGVPeExpMXV4b2MgaDN7bWFyZ2luLWJvdHRvbTowfS5sRWhjc3JScHY0MWVRMjVOUkFIdntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ym9yZGVyLXRvcDoxcHggc29saWQgIzk4OWVhNTtwYWRkaW5nLXRvcDoxMHB4fVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy90ZW1wbGF0ZXMvbXVsdGlwbGUtc2VjdGlvbnMtYXNzaWduZXIubW9kdWxlLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBRUEsc0JBQ0UsMEJBQUEsQ0FDQSwyQkFBQSxDQUNBLFlBQUEsQ0FDQSxtQkFBQSxDQUdGLHNCQUNFLGlCQUFBLENBQ0EsZUFBQSxDQUdGLHNCQUNFLGNBQUEsQ0FDQSxhQUFBLENBQ0EsY0FBQSxDQUNBLHdCQUFBLENBQ0EsbUJBQUEsQ0FDQSxvQkFBQSxDQUVBLHdCQUNFLFFBQUEsQ0FJSixzQkFDRSxvQkFBQSxDQUNBLG1CQUFBLENBRUEseUJBQ0UsZUFBQSxDQUdGLDRDQUNFLFlBQUEsQ0FDQSxjQUFBLENBQ0EsNkJBQUEsQ0FDQSxtQkFBQSxDQUVBLGtEQUNFLFdBQUEsQ0FDQSxpQkFBQSxDQUtOLHlCQUNFLGVBQUEsQ0FHRixzQkFDRSxZQUFBLENBQ0EsNkJBQUEsQ0FDQSw0QkFBQSxDQUNBLGdCQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcImNvbG9yXFxcIjtcXG5cXG4ucG9wVXBDb250YWluZXJ7XFxuICBtYXgtaGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xcbiAgcGFkZGluZzogMzBweDtcXG4gIHBhZGRpbmctYm90dG9tOiAyNXB4XFxufVxcblxcbi5pbmZvcm1hdGlvbntcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG4gIG1heC1oZWlnaHQ6IDcwdmg7XFxufVxcblxcbi5zZWN0aW9uc0RpcmVjdGlvbnMge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgbWFyZ2luOiAxMnB4IDA7XFxuICBwYWRkaW5nOiAxMnB4IDA7XFxuICBib3JkZXI6IDFweCBzb2xpZCAkbmV1dHJhbF9kYXJrNTA7XFxuICBib3JkZXItbGVmdC13aWR0aDogMDtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcXG5cXG4gIHAge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxufVxcblxcbi5zZWN0aW9uTGlzdCB7XFxuICBtYXJnaW46IDI0cHggMCAxMnB4IDA7XFxuICBwYWRkaW5nOiAwIDAgNXB4IDVweDtcXG5cXG4gIGg1IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gIH1cXG5cXG4gIC5zZWN0aW9uTGlzdE9wdGlvbnNDb250YWluZXIge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LXdyYXA6IHdyYXA7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgbWFyZ2luOiAxMnB4IDAgNHB4IDA7XFxuXFxuICAgIGxhYmVsIHtcXG4gICAgICB3aWR0aDogMjgwcHg7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICB9XFxuICB9XFxufVxcbiAgXFxuLm1vZGFsSGVhZGVyIGgzIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcblxcbi5idXR0b25Db250YWluZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbmV1dHJhbF9kYXJrNTA7XFxuICBwYWRkaW5nLXRvcDogMTBweDtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5sb2NhbHMgPSB7XG5cdFwicG9wVXBDb250YWluZXJcIjogXCJxZ2NMN0drVVJhanY5c1RQUnUwMFwiLFxuXHRcImluZm9ybWF0aW9uXCI6IFwiZnVuUVdrM1ZHM1NvUThjOUpFb0NcIixcblx0XCJzZWN0aW9uc0RpcmVjdGlvbnNcIjogXCJ2aTFaYkw1c29yc0FzRW5hMDZoeVwiLFxuXHRcInNlY3Rpb25MaXN0XCI6IFwiS0ZLa21qUzBzbXN1bDZVVnNWd2ZcIixcblx0XCJzZWN0aW9uTGlzdE9wdGlvbnNDb250YWluZXJcIjogXCJpTUdIMktEVFR1bHJFWGxtUDI1NVwiLFxuXHRcIm1vZGFsSGVhZGVyXCI6IFwiZlhsUjAzN19mTGVPeExpMXV4b2NcIixcblx0XCJidXR0b25Db250YWluZXJcIjogXCJsRWhjc3JScHY0MWVRMjVOUkFIdlwiXG59O1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vYWNjZXNzaWJsZS1kaWFsb2d1ZS5tb2R1bGUuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vYWNjZXNzaWJsZS1kaWFsb2d1ZS5tb2R1bGUuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzFdIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMl0hLi9tdWx0aXBsZS1zZWN0aW9ucy1hc3NpZ25lci5tb2R1bGUuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vbXVsdGlwbGUtc2VjdGlvbnMtYXNzaWduZXIubW9kdWxlLnNjc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iXSwibmFtZXMiOlsicmVkdWNlciIsInN0YXRlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiSGlkZGVuU3RhdGUiLCJhY3Rpb24iLCJ0eXBlIiwiU0VUX0hJRERFTl9MRVNTT05TIiwiaGlkZGVuTGVzc29uc1BlclNlY3Rpb24iLCJoaWRlYWJsZUxlc3NvbnNBbGxvd2VkIiwic2VjdGlvbklkcyIsIk9iamVjdCIsImtleXMiLCJuZXh0U3RhdGUiLCJmb3JFYWNoIiwic2VjdGlvbklkIiwibGVzc29uSWQiLCJzZXRJbiIsInRvU3RyaW5nIiwidmFsaWRhdGVTZWN0aW9uSWRzIiwibWVyZ2UiLCJoaWRkZW5MZXNzb25zSW5pdGlhbGl6ZWQiLCJVUERBVEVfSElEREVOX0xFU1NPTiIsImhpZGRlbiIsIlVQREFURV9ISURERU5fU0NSSVBUIiwic2NyaXB0SWQiLCJnZXRIaWRkZW5MZXNzb25zIiwic2NyaXB0TmFtZSIsImNhbkhpZGVMZXNzb25zIiwiZGlzcGF0Y2giLCIkIiwiYWpheCIsInVybCIsImNvbmNhdCIsImRhdGFUeXBlIiwiY29udGVudFR5cGUiLCJkb25lIiwicmVzcG9uc2UiLCJpbml0aWFsaXplSGlkZGVuTGVzc29ucyIsImRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJfZGVmaW5lUHJvcGVydHkiLCJTVFVERU5UX1NFQ1RJT05fSUQiLCJzZXRIaWRkZW5MZXNzb25zIiwiZmFpbCIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImluaXRpYWxpemVIaWRkZW5TY3JpcHRzIiwidXBkYXRlSGlkZGVuU2NyaXB0IiwiaXNMZXNzb25IaWRkZW5Gb3JTZWN0aW9uIiwiaXNIaWRkZW5Gb3JTZWN0aW9uIiwiaXNTY3JpcHRIaWRkZW5Gb3JTZWN0aW9uIiwidG9nZ2xlSGlkZGVuTGVzc29uIiwidXBkYXRlSGlkZGVuTGVzc29uIiwicG9zdFRvZ2dsZUhpZGRlbiIsInRvZ2dsZUhpZGRlblNjcmlwdCIsIl9pbW11dGFibGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9qcXVlcnkiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsInIiLCJ0IiwiX3RvUHJvcGVydHlLZXkiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImV4cG9ydHMiLCJJbW11dGFibGUiLCJSZWNvcmQiLCJsZXNzb25zQnlTZWN0aW9uIiwiTWFwIiwic2NyaXB0c0J5U2VjdGlvbiIsImdldEluIiwiZ2V0Iiwic2l6ZSIsIkVycm9yIiwic2VjdGlvbl9pZCIsInN0YWdlX2lkIiwiSlNPTiIsInN0cmluZ2lmeSIsInN1Y2Nlc3MiLCJ3aW5kb3ciLCJfX1Rlc3RJbnRlcmZhY2UiLCJ0b2dnbGVIaWRkZW5Vbml0Q29tcGxldGUiLCJpdGVtSWQiLCJieVNlY3Rpb25LZXkiLCJfY2xvc2VCdXR0b24iLCJfY2xhc3NuYW1lcyIsIl9mb2N1c1RyYXBSZWFjdCIsIl9wcm9wVHlwZXMiLCJfcmVhY3QiLCJfQ2xvc2VPbkVzY2FwZSIsIl9sb2NhbGUiLCJfYWNjZXNzaWJsZURpYWxvZ3VlTW9kdWxlIiwiQWNjZXNzaWJsZURpYWxvZyIsIl9yZWYiLCJpZCIsInN0eWxlcyIsIm9uQ2xvc2UiLCJvbkRpc21pc3MiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImZhbGxiYWNrRm9jdXMiLCJfcmVmJGluaXRpYWxGb2N1cyIsImluaXRpYWxGb2N1cyIsIl9yZWYkY2xvc2VPbkNsaWNrQmFjayIsImNsb3NlT25DbGlja0JhY2tkcm9wIiwiX3JlZiRvbkRlYWN0aXZhdGUiLCJvbkRlYWN0aXZhdGUiLCJfcmVmJG5vTUMiLCJub01DIiwibW9kYWxTdHlsZSIsIm1vZGFsIiwiZGVmYXVsdFN0eWxlIiwiYmFja2Ryb3BTdHlsZSIsIm1vZGFsQmFja2Ryb3AiLCJjbG9zZUljb25TdHlsZSIsInhDbG9zZUJ1dHRvbiIsInhJY29uT25DbGljayIsImNyZWF0ZUVsZW1lbnQiLCJoYW5kbGVDbG9zZSIsImZvY3VzVHJhcE9wdGlvbnMiLCJjbGlja091dHNpZGVEZWFjdGl2YXRlcyIsImNsYXNzbmFtZXMiLCJyb2xlIiwiaTE4biIsImNsb3NlRGlhbG9nIiwib25DbGljayIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwibm9kZSIsImJvb2wiLCJtb2R1bGUiLCJkZWZhdWx0IiwiQ2xvc2VPbkVzY2FwZSIsIm9uS2V5RG93biIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsIl9jaGVja2JveCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiaGFzIiwibiIsIl9fcHJvdG9fXyIsImEiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJzZXQiLCJfcmVhY3RSZWR1eCIsIl9oaWRkZW5MZXNzb25SZWR1eCIsIl90eXBvZ3JhcGh5IiwiX0J1dHRvbiIsIl9BY2Nlc3NpYmxlRGlhbG9nIiwiX3NoYXBlcyIsIl90ZWFjaGVyU2VjdGlvbnNSZWR1eCIsIl9tdWx0aXBsZVNlY3Rpb25zQXNzaWduZXJNb2R1bGUiLCJXZWFrTWFwIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5IiwiZnJvbSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibCIsImYiLCJuZXh0IiwicHVzaCIsIl9ub25JdGVyYWJsZVJlc3QiLCJzbGljZSIsIm5hbWUiLCJ0ZXN0IiwiTXVsdGlwbGVTZWN0aW9uc0Fzc2lnbmVyIiwiY291cnNlSWQiLCJhc3NpZ25tZW50TmFtZSIsImNvdXJzZU9mZmVyaW5nSWQiLCJjb3Vyc2VWZXJzaW9uSWQiLCJfcmVmJHJlYXNzaWduQ29uZmlybSIsInJlYXNzaWduQ29uZmlybSIsImlzQXNzaWduaW5nQ291cnNlIiwiaXNTdGFuZEFsb25lVW5pdCIsInBhcnRpY2lwYW50QXVkaWVuY2UiLCJvbkFzc2lnblN1Y2Nlc3MiLCJfcmVmJHNlY3Rpb25EaXJlY3Rpb24iLCJzZWN0aW9uRGlyZWN0aW9ucyIsImNob29zZVNlY3Rpb25zRGlyZWN0aW9ucyIsInNlY3Rpb25zIiwidW5hc3NpZ25TZWN0aW9uIiwiYXNzaWduVG9TZWN0aW9uIiwic2VjdGlvbkhhc05ld0RhdGEiLCJfdXNlU3RhdGUyIiwidXNlU3RhdGUiLCJjdXJyZW50U2VjdGlvbnNBc3NpZ25lZCIsInNldEN1cnJlbnRTZWN0aW9uc0Fzc2lnbmVkIiwiaW5pdGlhbFNlY3Rpb25zQXNzaWduZWQiLCJSZWFjdCIsInVzZU1lbW8iLCJ1bml0SWQiLCJ1bmhpZGVBbmRBc3NpZ25Vbml0Iiwic2VjdGlvbiIsImFzc2lnblRvU2VjdGlvbldpdGhDb25maXJtYXRpb24iLCJhc3NpZ25Db3Vyc2VXaXRob3V0VW5pdCIsInRoZW4iLCJtb2R1bGVTdHlsZSIsInBvcFVwQ29udGFpbmVyIiwiZGlyZWN0aW9uc0ZvckFzc2lnbmluZ1NlY3Rpb25zIiwiaW5mb3JtYXRpb24iLCJtb2RhbEhlYWRlciIsIkhlYWRpbmczIiwiY2hvb3NlU2VjdGlvbnNQcm9tcHQiLCJzZWN0aW9uc0RpcmVjdGlvbnMiLCJCb2R5VHdvVGV4dCIsInNlY3Rpb25MaXN0IiwiSGVhZGluZzUiLCJ5b3VyU2VjdGlvbnNMaXN0Iiwic2VjdGlvbkxpc3RPcHRpb25zQ29udGFpbmVyIiwibWFwIiwiaXNBc3NpZ25hYmxlVG9TZWN0aW9uIiwic2VjdGlvblBhcnRpY2lwYW50VHlwZSIsInBhcnRpY2lwYW50VHlwZSIsImNoZWNrZWQiLCJzb21lIiwicyIsImNvZGUiLCJvbkNoYW5nZSIsImhhbmRsZUNoYW5nZWRDaGVja2JveCIsImN1cnJlbnRTZWN0aW9uIiwibmV3TGlzdCIsImZpbHRlciIsImxhYmVsIiwidGV4dCIsInNlbGVjdEFsbCIsInNlbGVjdEFsbEhhbmRsZXIiLCJuZXdTZWN0aW9uc0Fzc2lnbmVkIiwiX2xvb3AzIiwic3R5bGVBc1RleHQiLCJjb2xvciIsIkJ1dHRvbiIsIkJ1dHRvbkNvbG9yIiwiYnJhbmRTZWNvbmRhcnlEZWZhdWx0IiwiYnV0dG9uQ29udGFpbmVyIiwiZGlhbG9nQ2FuY2VsIiwibmV1dHJhbERhcmsiLCJjb25maXJtQXNzaWdubWVudCIsInJlYXNzaWduU2VjdGlvbnMiLCJfbG9vcCIsIl9sb29wMiIsIl9pMyIsIm51bWJlciIsImFycmF5T2YiLCJzZWN0aW9uRm9yRHJvcGRvd25TaGFwZSIsImNvbm5lY3QiLCJfc2hhcmVkQ29uc3RhbnRzIiwic2hhcGUiLCJjcmVhdGVkQXQiLCJsb2dpblR5cGUiLCJvbmVPZiIsIlNlY3Rpb25Mb2dpblR5cGUiLCJsZXNzb25FeHRyYXMiLCJwYWlyaW5nQWxsb3dlZCIsInR0c0F1dG9wbGF5RW5hYmxlZCIsInN0dWRlbnRDb3VudCIsImdyYWRlcyIsInByb3ZpZGVyTWFuYWdlZCIsInJlc3RyaWN0U2VjdGlvbiIsInBvc3RNaWxlc3RvbmVEaXNhYmxlZCIsInN5bmNFbmFibGVkIiwicGF0aCIsImxlc3Nvbl9leHRyYXNfYXZhaWxhYmxlIiwidGV4dF90b19zcGVlY2hfZW5hYmxlZCIsInBvc2l0aW9uIiwidmVyc2lvbl95ZWFyIiwiY29udGVudF9yb290X2lkIiwiaXNfc3RhYmxlIiwiaXNfcmVjb21tZW5kZWQiLCJsb2NhbGVzIiwiYXJyYXkiLCJ1bml0cyIsImVsZW1lbnRhcnkiLCJoaWdoIiwiaG9jIiwibWlkZGxlIiwiZW5yb2xsbWVudF9jb2RlIiwiY291cnNlX3N0YXRlIiwic3RhdHVzIiwibWVzc2FnZSIsImNvdXJzZVZlcnNpb25OYW1lIiwiY291cnNlRGlzcGxheU5hbWUiLCJhc3NpZ25tZW50UGF0aCIsImlzQXNzaWduZWQiLCJfX19DU1NfTE9BREVSX0VYUE9SVF9fXyIsImxvY2FscyIsIm9wdGlvbnMiLCJzdHlsZVRhZ1RyYW5zZm9ybSIsInNldEF0dHJpYnV0ZXMiLCJpbnNlcnQiLCJkb21BUEkiLCJpbnNlcnRTdHlsZUVsZW1lbnQiXSwic291cmNlUm9vdCI6IiJ9