-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path2312.b27ea56d.iframe.bundle.js
2 lines (2 loc) · 553 KB
/
2312.b27ea56d.iframe.bundle.js
1
2
(self.webpackChunkblockly_mooc=self.webpackChunkblockly_mooc||[]).push([[2312,7873],{"./src/sharedComponents/Notification.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";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.NotificationType=exports.NotificationResponsive=void 0;var _lodash=_interopRequireDefault(__webpack_require__("./node_modules/lodash/lodash.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"),_reactTooltip=_interopRequireDefault(__webpack_require__("./node_modules/react-tooltip/dist/index.js")),_fontConstants=_interopRequireDefault(__webpack_require__("./src/fontConstants.js")),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_FontAwesome=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx")),_firehose=_interopRequireDefault(__webpack_require__("./src/metrics/firehose.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js"));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 ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}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}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)||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}}(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 _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 NotificationType=exports.NotificationType={default:"default",information:"information",success:"success",failure:"failure",warning:"warning",course:"course",bullhorn:"bullhorn",feedback:"feedback",bullhorn_yellow:"bullhorn_yellow",collaborate:"collaborate"},Notification=function Notification(_ref){var buttonClassName=_ref.buttonClassName,buttonLink=_ref.buttonLink,buttons=_ref.buttons,buttonsStyles=_ref.buttonsStyles,buttonText=_ref.buttonText,buttonColor=_ref.buttonColor,children=_ref.children,details=_ref.details,detailsLink=_ref.detailsLink,detailsLinkNewWindow=_ref.detailsLinkNewWindow,detailsLinkText=_ref.detailsLinkText,dismissible=_ref.dismissible,firehoseAnalyticsData=_ref.firehoseAnalyticsData,iconStyles=_ref.iconStyles,isRtl=_ref.isRtl,newWindow=_ref.newWindow,notice=_ref.notice,onDismiss=_ref.onDismiss,onButtonClick=_ref.onButtonClick,responsiveSize=_ref.responsiveSize,type=_ref.type,tooltipText=_ref.tooltipText,width=_ref.width,colors=_ref.colors,_useState2=_slicedToArray((0,_react.useState)(!0),2),open=_useState2[0],setOpen=_useState2[1],desktop=void 0===responsiveSize||"lg"===responsiveSize,icons={information:"info-circle",success:"check-circle",failure:"exclamation-triangle",warning:"exclamation-triangle",bullhorn:"bullhorn",bullhorn_yellow:"bullhorn",feedback:"envelope",collaborate:"users"},mainStyle=_objectSpread(_objectSpread({},styles.main),{},{direction:isRtl?"rtl":"ltr",width:width||styles.main.width});if(!open)return null;var colorStyles=_objectSpread(_objectSpread({},styles.colors[type]),colors),tooltipId=_lodash.default.uniqueId();return _react.default.createElement("div",{className:"announcement-notification"},_react.default.createElement("div",{style:_objectSpread(_objectSpread({},colorStyles),mainStyle)},type!==NotificationType.course&&_react.default.createElement("div",{style:_objectSpread(_objectSpread(_objectSpread({},styles.iconBox),colorStyles),iconStyles)},icons[type]&&_react.default.createElement(_FontAwesome.default,{icon:icons[type],style:styles.icon})),_react.default.createElement("div",{style:styles.contentBox},_react.default.createElement("div",{style:styles.wordBox},_react.default.createElement("div",{style:_objectSpread(_objectSpread({},colorStyles),styles.notice)},notice,tooltipText?_react.default.createElement("span",null,_react.default.createElement("span",{"data-tip":!0,"data-for":tooltipId,style:styles.tooltip},_react.default.createElement(_FontAwesome.default,{icon:"info-circle"})),_react.default.createElement(_reactTooltip.default,{id:tooltipId,effect:"solid"},_react.default.createElement("p",{style:styles.tooltipText},tooltipText))):null),_react.default.createElement("div",{style:styles.details},details,detailsLinkText&&detailsLink&&_react.default.createElement("span",null," ",_react.default.createElement("a",{href:detailsLink,style:styles.detailsLink,target:detailsLinkNewWindow?"_blank":null,rel:detailsLinkNewWindow?"noreferrer":void 0},detailsLinkText)))),_react.default.createElement("div",{style:desktop?buttonsStyles:_objectSpread(_objectSpread({},styles.buttonsMobile),{},{buttonsStyles})},buttonText&&buttonLink&&_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,href:buttonLink,color:buttonColor||_Button.default.ButtonColor.gray,text:buttonText,style:styles.button,target:newWindow?"_blank":null,onClick:function onAnnouncementClick(){firehoseAnalyticsData&&function logAnnouncementClickToFirehose(){var record={};["user_id","script_id","lesson_id"].forEach((function(firehoseMetadataKey){firehoseMetadataKey in firehoseAnalyticsData&&(record[firehoseMetadataKey]=firehoseAnalyticsData[firehoseMetadataKey])})),record=_objectSpread(_objectSpread({},record),{},{study:"notification_engagement",event:"notification_click",data_json:JSON.stringify(_objectSpread(_objectSpread({},firehoseAnalyticsData),{},{notice,details,buttonLink}))}),_firehose.default.putRecord(record,{includeUserId:!0})}(),onButtonClick&&onButtonClick()},className:buttonClassName}),buttons&&buttons.map((function(button,index){return _react.default.createElement(_Button.default,{key:index,href:button.link,color:button.color||_Button.default.ButtonColor.gray,text:button.text,style:_objectSpread(_objectSpread({},styles.button),button.style),onClick:button.onClick,className:button.className})})),children)),dismissible&&_react.default.createElement("div",{style:styles.dismiss},_react.default.createElement(_FontAwesome.default,{icon:"times",onClick:function handleDismiss(){setOpen(!1),onDismiss&&onDismiss()}}))),_react.default.createElement("div",{style:styles.clear}))};Notification.propTypes={type:_propTypes.default.oneOf(Object.keys(NotificationType)).isRequired,notice:_propTypes.default.string.isRequired,details:_propTypes.default.oneOfType([_propTypes.default.string,_propTypes.default.object]).isRequired,detailsLinkText:_propTypes.default.string,detailsLink:_propTypes.default.string,detailsLinkNewWindow:_propTypes.default.bool,buttonText:_propTypes.default.string,buttonLink:_propTypes.default.string,buttonColor:_propTypes.default.string,dismissible:_propTypes.default.bool.isRequired,iconStyles:_propTypes.default.object,onDismiss:_propTypes.default.func,newWindow:_propTypes.default.bool,firehoseAnalyticsData:_propTypes.default.object,responsiveSize:_propTypes.default.oneOf(["lg","md","sm","xs"]),isRtl:_propTypes.default.bool.isRequired,onButtonClick:_propTypes.default.func,buttonClassName:_propTypes.default.string,tooltipText:_propTypes.default.string,buttonsStyles:_propTypes.default.object,buttons:_propTypes.default.arrayOf(_propTypes.default.shape({text:_propTypes.default.string,link:_propTypes.default.string,onClick:_propTypes.default.func,className:_propTypes.default.string,color:_propTypes.default.oneOf(Object.keys(_Button.default.ButtonColor)),style:_propTypes.default.object})),children:_propTypes.default.node,width:_propTypes.default.oneOfType([_propTypes.default.number,_propTypes.default.string]),colors:_propTypes.default.shape({backgroundColor:_propTypes.default.string,borderColor:_propTypes.default.string,color:_propTypes.default.string})},Notification.defaultProps={type:NotificationType.default,colors:{}};var styles={main:{borderWidth:1,borderStyle:"solid",minHeight:72,width:"100%",backgroundColor:_color.default.white,marginBottom:20,display:"flex",flexFlow:"wrap",boxSizing:"border-box"},notice:_objectSpread(_objectSpread({},_fontConstants.default["main-font-regular"]),{},{fontSize:18,letterSpacing:-.2,lineHeight:1.5,marginTop:16,backgroundColor:_color.default.white}),details:_objectSpread(_objectSpread({},_fontConstants.default["main-font-regular"]),{},{fontSize:14,lineHeight:1.5,paddingTop:6,paddingBottom:16,color:_color.default.charcoal}),detailsLink:_objectSpread(_objectSpread({},_fontConstants.default["main-font-semi-bold"]),{},{color:_color.default.teal}),wordBox:{flex:1,marginLeft:25,marginRight:25},dismiss:{color:_color.default.lighter_gray,marginTop:5,marginRight:0,marginLeft:10,cursor:"pointer"},iconBox:{width:72,backgroundColor:_color.default.lightest_gray,textAlign:"center",float:"left"},contentBox:{width:"calc(100% - 100px)",display:"flex",flexFlow:"wrap"},icon:{color:"rgba(255,255,255, .8)",fontSize:38,lineHeight:2},buttonsMobile:{width:"100%"},button:{marginLeft:25,marginRight:25,marginTop:18,marginBottom:18},colors:_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},NotificationType.default,{borderColor:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.information,{borderColor:_color.default.teal,color:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.success,{borderColor:_color.default.level_perfect,color:_color.default.level_perfect,backgroundColor:_color.default.level_perfect}),NotificationType.failure,{borderColor:_color.default.red,color:_color.default.red,backgroundColor:_color.default.red}),NotificationType.warning,{borderColor:_color.default.mustardyellow,color:_color.default.charcoal,backgroundColor:_color.default.mustardyellow}),NotificationType.course,{borderColor:_color.default.border_gray,color:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.bullhorn,{borderColor:_color.default.teal,color:_color.default.teal,backgroundColor:_color.default.teal}),NotificationType.bullhorn_yellow,{borderColor:_color.default.yellow,color:_color.default.yellow,backgroundColor:_color.default.yellow}),NotificationType.feedback,{borderColor:_color.default.purple,color:_color.default.purple,backgroundColor:_color.default.purple}),NotificationType.collaborate,{borderColor:_color.default.light_secondary_500,color:_color.default.light_secondary_500,backgroundColor:_color.default.light_secondary_500}),clear:{clear:"both"},tooltip:{cursor:"pointer",marginLeft:"5px",marginRight:"5px",fontSize:"14px",verticalAlign:"middle",color:_color.default.light_gray_500},tooltipText:{color:_color.default.white,margin:0}};exports.default=(0,_reactRedux.connect)((function(state){return{isRtl:state.isRtl}}))(Notification),exports.NotificationResponsive=(0,_reactRedux.connect)((function(state){return{isRtl:state.isRtl,responsiveSize:state.responsive.responsiveSize}}))(Notification)},"./src/sharedComponents/Spinner.jsx":(module,exports,__webpack_require__)=>{"use strict";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")),_FontAwesome=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}!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}(exports.default=function(_React$Component){function Spinner(){return _React$Component.apply(this,arguments)||this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(Spinner,_React$Component),Spinner.prototype.render=function render(){var _this$props=this.props,size=_this$props.size,style=_this$props.style,displaySize="small"===size?"":"medium"===size?"fa-2x":"fa-3x";return _react.default.createElement(_FontAwesome.default,{style,icon:"spinner",className:"fa-pulse ".concat(displaySize),title:_locale.default.loading(),id:"uitest-spinner"})},Spinner}(_react.default.Component),"propTypes",{size:_propTypes.default.oneOf(["small","medium","large"]),style:_propTypes.default.object}),module.exports=exports.default},"./src/templates/ContentContainer.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_radium=_interopRequireDefault(__webpack_require__("./node_modules/radium/es/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"),_fontConstants=_interopRequireDefault(__webpack_require__("./src/fontConstants.js")),_FontAwesome=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx")),_styleConstants=_interopRequireDefault(__webpack_require__("./src/styleConstants.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_contentContainerModule=_interopRequireDefault(__webpack_require__("./src/templates/content-container.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 _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 ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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 contentWidth=_styleConstants.default["content-width"],ContentContainer=function(_Component){function ContentContainer(){return _Component.apply(this,arguments)||this}return _inheritsLoose(ContentContainer,_Component),ContentContainer.prototype.render=function render(){var _this$props=this.props,heading=_this$props.heading,link=_this$props.link,linkText=_this$props.linkText,description=_this$props.description,isRtl=_this$props.isRtl,responsiveSize=_this$props.responsiveSize,hideBottomMargin=_this$props.hideBottomMargin,showLinkTop="lg"===responsiveSize&&link&&linkText,showLinkBottom="lg"!==responsiveSize&&link&&linkText,boxStyles=styles.boxResponsive,bottomMargin=hideBottomMargin?"":styles.bottomMargin;return _react.default.createElement("div",{style:[boxStyles,bottomMargin]},(heading||link&&linkText)&&_react.default.createElement("div",{className:_contentContainerModule.default.contentContainerHeading,style:styles.headingBox},_react.default.createElement("h4",{style:isRtl?styles.headingTextRtl:styles.headingText},heading),showLinkTop&&_react.default.createElement(Link,{link,linkText,isRtl})),description&&_react.default.createElement("div",{style:styles.description},description),_react.default.createElement("div",{style:styles.children},_react.default.Children.map(this.props.children,(function(child,index){return _react.default.createElement("div",{key:index},child)}))),showLinkBottom&&_react.default.createElement("div",{style:styles.standaloneLinkBox},_react.default.createElement(Link,{link,linkText,isRtl,bottom:!0})),_react.default.createElement("div",{style:styles.clear}))},ContentContainer}(_react.Component);_defineProperty(ContentContainer,"propTypes",{children:_propTypes.default.oneOfType([_propTypes.default.node,_propTypes.default.arrayOf(_propTypes.default.node)]),heading:_propTypes.default.string,linkText:_propTypes.default.string,link:_propTypes.default.string,isRtl:_propTypes.default.bool.isRequired,description:_propTypes.default.string,responsiveSize:_propTypes.default.oneOf(["lg","md","sm","xs"]).isRequired,hideBottomMargin:_propTypes.default.bool});var Link=function(_Component2){function Link(){return _Component2.apply(this,arguments)||this}return _inheritsLoose(Link,_Component2),Link.prototype.render=function render(){var linkBoxStyle,_this$props2=this.props,link=_this$props2.link,linkText=_this$props2.linkText,isRtl=_this$props2.isRtl,bottom=_this$props2.bottom;linkBoxStyle=isRtl?bottom?styles.linkBoxRtlBottom:styles.linkBoxRtl:bottom?styles.linkBoxBottom:styles.linkBox;var icon=isRtl?"chevron-left":"chevron-right";return _react.default.createElement("div",{style:linkBoxStyle},_react.default.createElement("a",{style:styles.linkTag,href:link},_react.default.createElement("span",{style:{display:"inline-block"}},isRtl&&_react.default.createElement(_FontAwesome.default,{icon,style:styles.chevronRtl})),_react.default.createElement("div",{style:styles.linkToViewAll},linkText),_react.default.createElement("span",{style:{display:"inline-block"}},!isRtl&&_react.default.createElement(_FontAwesome.default,{icon,style:styles.chevron}))))},Link}(_react.Component);_defineProperty(Link,"propTypes",{linkText:_propTypes.default.string.isRequired,link:_propTypes.default.string.isRequired,isRtl:_propTypes.default.bool.isRequired,bottom:_propTypes.default.bool});var styles={box:{width:contentWidth},boxResponsive:{width:"100%"},bottomMargin:{marginBottom:60},headingBox:{paddingRight:10,paddingTop:10,overflow:"hidden",zIndex:2,position:"relative"},headingText:{fontSize:24,lineHeight:"26px",color:_color.default.neutral_dark,float:"left",paddingRight:20},headingTextRtl:{fontSize:24,lineHeight:"26px",color:_color.default.neutral_dark,float:"right",paddingLeft:20},standaloneLinkBox:{paddingTop:10,position:"relative",clear:"both"},linkBox:{display:"inline",position:"absolute",bottom:20,right:0,lineHeight:"26 px"},linkBoxRtl:{display:"inline",float:"left",paddingLeft:10,position:"absolute",bottom:20,left:0,lineHeight:"26 px"},linkBoxBottom:{display:"inline",left:0},linkBoxRtlBottom:{display:"inline",right:0},description:_objectSpread(_objectSpread({fontSize:14,lineHeight:"22px"},_fontConstants.default["main-font-regular"]),{},{zIndex:2,color:_color.default.neutral_dark,width:"100%",marginTop:-10,marginBottom:10,clear:"both"}),linkTag:{textDecoration:"none"},linkToViewAll:_objectSpread(_objectSpread({fontSize:14},_fontConstants.default["main-font-semi-bold"]),{},{marginTop:-2,display:"inline"}),chevron:{display:"inline",fontSize:10,fontWeight:"bold",marginLeft:15},chevronRtl:{display:"inline",color:_color.default.neutral_dark,fontSize:10,fontWeight:"bold",marginRight:15},children:{justifyContent:"space-between",flexWrap:"wrap"},clear:{clear:"both"}};exports.default=(0,_reactRedux.connect)((function(state){return{responsiveSize:state.responsive.responsiveSize,isRtl:state.isRtl}}))((0,_radium.default)(ContentContainer));module.exports=exports.default},"./src/templates/studioHomepages/BorderedCallToAction.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _button=__webpack_require__("../frontend/packages/component-library/dist/cjs/button/index.js"),_typography=__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_borderedCallToActionModule=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/borderedCallToAction.module.scss"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var BorderedCallToAction=function BorderedCallToAction(_ref){var headingText=_ref.headingText,descriptionText=_ref.descriptionText,className=_ref.className,buttonType=_ref.buttonType,buttonText=_ref.buttonText,buttonUrl=_ref.buttonUrl,buttonClass=_ref.buttonClass,buttonColor=_ref.buttonColor,_ref$buttonDisabled=_ref.buttonDisabled,buttonDisabled=void 0!==_ref$buttonDisabled&&_ref$buttonDisabled,onClick=_ref.onClick,solidBorder=_ref.solidBorder;if(!buttonUrl&&!onClick)throw new Error("Expect at least one of buttonUrl / onClick");var borderStyle=solidBorder?_borderedCallToActionModule.default.solidBorder:_borderedCallToActionModule.default.dashedBorder;return _react.default.createElement("div",{className:"".concat(_borderedCallToActionModule.default.outerBox," ").concat(borderStyle," ").concat(className)},_react.default.createElement("div",{className:_borderedCallToActionModule.default.textWrapper},_react.default.createElement(_typography.Heading3,{visualAppearance:"heading-sm"},headingText),_react.default.createElement(_typography.BodyThreeText,null,descriptionText)),_react.default.createElement(_button.Button,{onClick,className:buttonClass,color:buttonColor,size:"s",type:buttonType,text:buttonText,href:buttonUrl,useAsLink:!!buttonUrl,disabled:buttonDisabled}))};BorderedCallToAction.propTypes={headingText:_propTypes.default.string.isRequired,descriptionText:_propTypes.default.string.isRequired,className:_propTypes.default.string,buttonType:_propTypes.default.string,buttonText:_propTypes.default.string.isRequired,buttonUrl:_propTypes.default.string,buttonClass:_propTypes.default.string,buttonColor:_propTypes.default.string,onClick:_propTypes.default.func,solidBorder:_propTypes.default.bool,buttonDisabled:_propTypes.default.bool};exports.default=BorderedCallToAction;module.exports=exports.default},"./src/templates/studioHomepages/CoteacherInviteNotification.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";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.UnconnectedCoteacherInviteNotification=void 0;var _typography=__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireWildcard(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_AnalyticsConstants=__webpack_require__("./src/metrics/AnalyticsConstants.js"),_AnalyticsReporter=_interopRequireDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),_Notification=_interopRequireWildcard(__webpack_require__("./src/sharedComponents/Notification.jsx")),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_HttpClient=_interopRequireDefault(__webpack_require__("./src/util/HttpClient.ts")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js"));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 _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}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var CoteacherInviteNotification=function CoteacherInviteNotification(_ref){var isForPl=_ref.isForPl,asyncLoadCoteacherInvite=_ref.asyncLoadCoteacherInvite,asyncLoadSectionData=_ref.asyncLoadSectionData,coteacherInvite=_ref.coteacherInvite,coteacherInviteForPl=_ref.coteacherInviteForPl,invite=(0,_react.useMemo)((function(){return coteacherInviteForPl&&isForPl?coteacherInviteForPl:coteacherInvite&&!isForPl?coteacherInvite:null}),[coteacherInvite,coteacherInviteForPl,isForPl]),buttonAction=function buttonAction(api){_HttpClient.default.put(api,"",!0).then((function(){asyncLoadCoteacherInvite(),asyncLoadSectionData()})).catch((function(err){return console.error(err)}))};return invite?_react.default.createElement(_Notification.default,{dismissible:!1,type:_Notification.NotificationType.collaborate,iconStyles:styles.icon,notice:_locale.default.coteacherInvite({invitedByName:invite.invited_by_name}),details:_react.default.createElement(_typography.BodyTwoText,{style:{marginBottom:0}},_locale.default.coteacherInviteDescription({invitedByEmail:invite.invited_by_email}),_react.default.createElement("br",null),_react.default.createElement(_typography.StrongText,null,invite.section_name)),tooltipText:_locale.default.coteacherTooltip(),buttonsStyles:styles.buttons,buttons:[{text:"Decline",onClick:function onClick(){return function declineCoteacherInvite(id,sectionId){_AnalyticsReporter.default.sendEvent(_AnalyticsConstants.EVENTS.COTEACHER_INVITE_DECLINED,{sectionId}),buttonAction("/api/v1/section_instructors/".concat(id,"/decline"))}(invite.id,invite.section_id)},color:_Button.default.ButtonColor.neutralDark,style:styles.declineButton},{text:"Accept",onClick:function onClick(){return function acceptCoteacherInvite(id,sectionId){_AnalyticsReporter.default.sendEvent(_AnalyticsConstants.EVENTS.COTEACHER_INVITE_ACCEPTED,{sectionId}),buttonAction("/api/v1/section_instructors/".concat(id,"/accept"))}(invite.id,invite.section_id)},color:_Button.default.ButtonColor.brandSecondaryDefault,style:styles.acceptButton}]}):null};exports.UnconnectedCoteacherInviteNotification=CoteacherInviteNotification,exports.default=(0,_reactRedux.connect)((function(state){return{coteacherInvite:state.teacherSections.coteacherInvite,coteacherInviteForPl:state.teacherSections.coteacherInviteForPl}}),{asyncLoadCoteacherInvite:_teacherSectionsRedux.asyncLoadCoteacherInvite,asyncLoadSectionData:_teacherSectionsRedux.asyncLoadSectionData})(CoteacherInviteNotification);CoteacherInviteNotification.propTypes={isForPl:_propTypes.default.bool,asyncLoadCoteacherInvite:_propTypes.default.func.isRequired,asyncLoadSectionData:_propTypes.default.func.isRequired,coteacherInvite:_propTypes.default.object,coteacherInviteForPl:_propTypes.default.object};var styles={acceptButton:{marginLeft:"20px",marginRight:"0px",lineHeight:"100%",display:"flex",alignItems:"center"},declineButton:{marginRight:0,display:"flex",alignItems:"center"},buttons:{display:"flex",alignItems:"center"},icon:{display:"flex",alignItems:"center",justifyContent:"center"}}},"./src/templates/studioHomepages/SetUpSections.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedSetUpSections=void 0;var _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"),_AnalyticsConstants=__webpack_require__("./src/metrics/AnalyticsConstants.js"),_AnalyticsReporter=_interopRequireDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_BorderedCallToAction=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/BorderedCallToAction.jsx"));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 _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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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 SetUpSections=function(_Component){function SetUpSections(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_Component.call.apply(_Component,[this].concat(args))||this,"beginEditingSection",(function(){_this.recordSectionSetupStartedEvent(),_this.props.beginEditingSection()})),_defineProperty(_this,"recordSectionSetupStartedEvent",(function(){_AnalyticsReporter.default.sendEvent(_AnalyticsConstants.EVENTS.SECTION_SETUP_STARTED,{},_AnalyticsConstants.PLATFORMS.BOTH)})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(SetUpSections,_Component),SetUpSections.prototype.render=function render(){return _react.default.createElement(_BorderedCallToAction.default,{type:"sections",headingText:this.props.headingText||_locale.default.newSectionAdd(),descriptionText:this.props.descriptionText||_locale.default.createNewClassroom(),buttonText:_locale.default.createSection(),className:"uitest-set-up-sections",buttonClass:"uitest-newsection",buttonDisabled:!this.props.asyncLoadComplete,onClick:this.beginEditingSection,solidBorder:this.props.solidBorder||!1})},SetUpSections}(_react.Component);_defineProperty(SetUpSections,"propTypes",{beginEditingSection:_propTypes.default.func.isRequired,headingText:_propTypes.default.string,descriptionText:_propTypes.default.string,solidBorder:_propTypes.default.bool,asyncLoadComplete:_propTypes.default.bool});exports.UnconnectedSetUpSections=SetUpSections,exports.default=(0,_reactRedux.connect)((function(state){return{asyncLoadComplete:state.teacherSections.asyncLoadComplete}}),{beginEditingSection:_teacherSectionsRedux.beginEditingSection})(SetUpSections)},"./src/templates/studioHomepages/TeacherSections.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";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.UnconnectedTeacherSections=void 0;var _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"),_Spinner=_interopRequireDefault(__webpack_require__("./src/sharedComponents/Spinner.jsx")),_AgeGatedSectionsBanner=__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_ContentContainer=_interopRequireDefault(__webpack_require__("./src/templates/ContentContainer.jsx")),_AddSectionDialog=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/AddSectionDialog.jsx")),_OwnedSections=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/OwnedSections.jsx")),_RosterDialog=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/RosterDialog.jsx")),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js"),_CoteacherInviteNotification=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/CoteacherInviteNotification.jsx")),_SetUpSections=_interopRequireDefault(__webpack_require__("./src/templates/studioHomepages/SetUpSections.jsx"));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 _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)||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}}(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 _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}function TeacherSections(_ref){var asyncLoadSectionData=_ref.asyncLoadSectionData,asyncLoadCoteacherInvite=_ref.asyncLoadCoteacherInvite,coteacherInvite=_ref.coteacherInvite,ageGatedSections=_ref.ageGatedSections,studentSectionIds=_ref.studentSectionIds,hiddenStudentSectionIds=_ref.hiddenStudentSectionIds,sectionsAreLoaded=_ref.sectionsAreLoaded,_useState2=_slicedToArray((0,_react.useState)(!1),2),modalOpen=_useState2[0],setModalOpen=_useState2[1];(0,_react.useEffect)((function(){asyncLoadSectionData(),asyncLoadCoteacherInvite()}),[asyncLoadSectionData,asyncLoadCoteacherInvite]);return _react.default.createElement("div",{id:"classroom-sections"},_react.default.createElement(_ContentContainer.default,{heading:_locale.default.createSection()},_react.default.createElement(_SetUpSections.default,null),!sectionsAreLoaded&&_react.default.createElement(_Spinner.default,{size:"large",style:styles.spinner})),function shouldRenderSections(){return(null==studentSectionIds?void 0:studentSectionIds.length)>0||!!coteacherInvite}()&&_react.default.createElement(_ContentContainer.default,{heading:_locale.default.sectionsTitle()},_react.default.createElement(_CoteacherInviteNotification.default,{isForPl:!1}),function shouldDisplayAtRiskAgeGatedWarning(){return(null==ageGatedSections?void 0:ageGatedSections.length)>0}()&&_react.default.createElement(_AgeGatedSectionsBanner.AgeGatedSectionsBanner,{toggleModal:function toggleModal(){setModalOpen(!modalOpen)},modalOpen,ageGatedSections}),_react.default.createElement(_OwnedSections.default,{sectionIds:studentSectionIds,hiddenSectionIds:hiddenStudentSectionIds})),_react.default.createElement(_RosterDialog.default,null),_react.default.createElement(_AddSectionDialog.default,null))}TeacherSections.propTypes={asyncLoadSectionData:_propTypes.default.func.isRequired,asyncLoadCoteacherInvite:_propTypes.default.func.isRequired,coteacherInvite:_propTypes.default.object,coteacherInviteForPl:_propTypes.default.object,ageGatedSections:_propTypes.default.array,studentSectionIds:_propTypes.default.array,plSectionIds:_propTypes.default.array,hiddenStudentSectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,sectionsAreLoaded:_propTypes.default.bool};exports.UnconnectedTeacherSections=TeacherSections,exports.default=(0,_reactRedux.connect)((function(state){return{coteacherInvite:state.teacherSections.coteacherInvite,ageGatedSections:(0,_teacherSectionsReduxSelectors.atRiskAgeGatedSections)(state),studentSectionIds:state.teacherSections.studentSectionIds,hiddenStudentSectionIds:(0,_teacherSectionsReduxSelectors.hiddenStudentSectionIds)(state),sectionsAreLoaded:state.teacherSections.sectionsAreLoaded}}),{asyncLoadCoteacherInvite:_teacherSectionsRedux.asyncLoadCoteacherInvite,asyncLoadSectionData:_teacherSectionsRedux.asyncLoadSectionData})(TeacherSections);var styles={spinner:{marginTop:"10px"}}},"./src/templates/teacherDashboard/AddSectionDialog.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";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.UnconnectedAddSectionDialog=void 0;var _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"),_Spinner=_interopRequireDefault(__webpack_require__("./src/sharedComponents/Spinner.jsx")),_utils=__webpack_require__("./src/utils.js"),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_BaseDialog=_interopRequireDefault(__webpack_require__("./src/templates/BaseDialog.jsx")),_LoginTypePicker=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/LoginTypePicker.jsx")),_PadAndCenter=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/PadAndCenter.jsx")),_ParticipantTypePicker=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/ParticipantTypePicker.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js");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}}var redirectToNewSectionPage=function redirectToNewSectionPage(participantType,loginType){if(participantType&&loginType){var createSectionFromMyPl="student"!==participantType,hrefNav="/sections/new?participantType=".concat(participantType,"&loginType=").concat(loginType)+(createSectionFromMyPl?"&redirectToPage=my-professional-learning":"");(0,_utils.navigateToHref)(hrefNav)}},AddSectionDialog=function AddSectionDialog(_ref){var isOpen=_ref.isOpen,section=_ref.section,beginImportRosterFlow=_ref.beginImportRosterFlow,setRosterProvider=_ref.setRosterProvider,setLoginType=_ref.setLoginType,setParticipantType=_ref.setParticipantType,handleCancel=_ref.handleCancel,availableParticipantTypes=_ref.availableParticipantTypes,assignedCourseOffering=_ref.assignedCourseOffering,asyncLoadComplete=_ref.asyncLoadComplete;(0,_react.useEffect)((function(){!assignedCourseOffering||!asyncLoadComplete||null!=section&§ion.participantType||setParticipantType(assignedCourseOffering.participant_audience)}),[assignedCourseOffering,asyncLoadComplete,null==section?void 0:section.participantType]);var _ref2=section||{},loginType=_ref2.loginType,participantType=_ref2.participantType,title=_locale.default.newSectionUpdated(),onParticipantTypeSelection=function onParticipantTypeSelection(participantType){"student"!==participantType&&redirectToNewSectionPage(participantType,_sharedConstants.SectionLoginType.email),setParticipantType(participantType)},onLoginTypeSelection=function onLoginTypeSelection(loginType){[_sharedConstants.SectionLoginType.picture,_sharedConstants.SectionLoginType.word,_sharedConstants.SectionLoginType.email].includes(loginType)&&redirectToNewSectionPage(participantType,loginType),setLoginType(loginType)};return participantType&&loginType?null:_react.default.createElement(_BaseDialog.default,{useUpdatedStyles:!0,fixedWidth:1010,isOpen,overflow:"auto",uncloseable:!0,style:{overflow:"hidden"}},_react.default.createElement(_PadAndCenter.default,null,function getDialogContent(){return asyncLoadComplete?participantType?loginType?void 0:_react.default.createElement(_LoginTypePicker.default,{title,handleImportOpen:beginImportRosterFlow,setRosterProvider,setLoginType:onLoginTypeSelection,handleCancel}):_react.default.createElement(_ParticipantTypePicker.default,{title,setParticipantType:onParticipantTypeSelection,handleCancel,availableParticipantTypes}):_react.default.createElement(_Spinner.default,{size:"large",style:{padding:50}})}()))};AddSectionDialog.propTypes={isOpen:_propTypes.default.bool.isRequired,section:_shapes.sectionShape,beginImportRosterFlow:_propTypes.default.func.isRequired,setRosterProvider:_propTypes.default.func.isRequired,setLoginType:_propTypes.default.func.isRequired,setParticipantType:_propTypes.default.func.isRequired,handleCancel:_propTypes.default.func.isRequired,availableParticipantTypes:_propTypes.default.arrayOf(_propTypes.default.string).isRequired,assignedCourseOffering:_propTypes.default.object,asyncLoadComplete:_propTypes.default.bool};exports.UnconnectedAddSectionDialog=AddSectionDialog,exports.default=(0,_reactRedux.connect)((function(state){return{isOpen:(0,_teacherSectionsReduxSelectors.isAddingSection)(state.teacherSections),section:state.teacherSections.sectionBeingEdited,availableParticipantTypes:state.teacherSections.availableParticipantTypes,assignedCourseOffering:(0,_teacherSectionsReduxSelectors.assignedCourseOffering)(state),asyncLoadComplete:state.teacherSections.asyncLoadComplete}}),(function(dispatch){return{beginImportRosterFlow:function beginImportRosterFlow(){return dispatch((0,_teacherSectionsRedux.beginImportRosterFlow)())},setRosterProvider:function setRosterProvider(provider){return dispatch((0,_teacherSectionsRedux.setRosterProvider)(provider))},setLoginType:function setLoginType(loginType){return dispatch((0,_teacherSectionsRedux.editSectionProperties)({loginType}))},setParticipantType:function setParticipantType(participantType){return dispatch((0,_teacherSectionsRedux.editSectionProperties)({participantType}))},handleCancel:function handleCancel(){return dispatch((0,_teacherSectionsRedux.cancelEditingSection)())}}}))(AddSectionDialog)},"./src/templates/teacherDashboard/OwnedPlSectionsTable.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.studentsFormatter=exports.sectionLinkFormatter=exports.loginInfoFormatter=exports.default=exports.courseLinkFormatter=exports.UnconnectedOwnedPlSectionsTable=exports.COLUMNS=void 0;var _lodash=__webpack_require__("./node_modules/lodash/lodash.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireWildcard(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),Table=_interopRequireWildcard(__webpack_require__("./node_modules/reactabular-table/dist/index.js")),sort=_interopRequireWildcard(__webpack_require__("./node_modules/sortabular/dist/index.js")),_constants=__webpack_require__("./src/accounts/constants.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_urlHelpers=__webpack_require__("./src/templates/teacherDashboard/urlHelpers.js"),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_utils=__webpack_require__("./src/utils.js"),_tableConstants=__webpack_require__("./src/templates/tables/tableConstants.js"),_wrapped_sortable=_interopRequireDefault(__webpack_require__("./src/templates/tables/wrapped_sortable.js")),_SectionActionDropdown=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/SectionActionDropdown.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js"),_skeletonizeContentModule=_interopRequireDefault(__webpack_require__("./src/sharedComponents/skeletonize-content.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 _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}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 ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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 COLUMNS=exports.COLUMNS={ID:0,SECTION_NAME:1,GRADE:2,COURSE:3,STUDENTS:4,LOGIN_INFO:5,EDIT_DELETE:6},participantNames={facilitator:_locale.default.participantTypeFacilitatorTitle(),teacher:_locale.default.participantTypeTeacherTitle()},sectionLinkFormatter=exports.sectionLinkFormatter=function sectionLinkFormatter(name,_ref){var rowData=_ref.rowData;return _react.default.createElement("a",{style:_tableConstants.plTableLayoutStyles.link,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id)},rowData.name)},courseLinkFormatter=exports.courseLinkFormatter=function courseLinkFormatter(course,_ref2){var rowData=_ref2.rowData,assignmentNames=rowData.assignmentNames,assignmentPaths=rowData.assignmentPaths,courseOfferingsAreLoaded=rowData.courseOfferingsAreLoaded,isAssignedSingleUnitCourse=rowData.isAssignedSingleUnitCourse;return _react.default.createElement("div",null,courseOfferingsAreLoaded?_react.default.createElement(_react.default.Fragment,null,_react.default.createElement("a",{href:"".concat(assignmentPaths[0]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.plTableLayoutStyles.link},assignmentNames[0]),assignmentPaths.length>1&&!isAssignedSingleUnitCourse&&_react.default.createElement("div",{style:_tableConstants.plTableLayoutStyles.currentUnit},_react.default.createElement("div",null,_locale.default.currentUnit()),_react.default.createElement("a",{href:"".concat(assignmentPaths[1]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.plTableLayoutStyles.link},assignmentNames[1])),assignmentPaths.length<1&&_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.coursesCardAction(),href:"/catalog",color:_Button.default.ButtonColor.neutralDark})):_react.default.createElement("span",{className:_skeletonizeContentModule.default.skeletonizeContent,style:{width:(0,_lodash.random)(30,90)+"%"}}))},loginInfoFormatter=exports.loginInfoFormatter=function loginInfoFormatter(loginType,_ref3){var rowData=_ref3.rowData,sectionCode="";return sectionCode=rowData.loginType===_constants.OAuthSectionTypes.clever?_locale.default.loginTypeClever():rowData.loginType===_constants.OAuthSectionTypes.google_classroom?_locale.default.loginTypeGoogleClassroom():rowData.loginType===_sharedConstants.SectionLoginType.lti_v1?rowData.loginTypeName:rowData.code,_react.default.createElement("a",{style:_tableConstants.plTableLayoutStyles.sectionCodeLink,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/login_info")},sectionCode)},studentsFormatter=exports.studentsFormatter=function studentsFormatter(studentCount,_ref4){var rowData=_ref4.rowData,manageStudentsUrl=(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/manage_students");return rowData.studentCount<=0?_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.addStudents(),href:manageStudentsUrl,color:_Button.default.ButtonColor.neutralDark}):_react.default.createElement("a",{style:_tableConstants.plTableLayoutStyles.link,href:manageStudentsUrl,"aria-label":_locale.default.manageStudentsAriaLabel({numStudents:studentCount})},rowData.studentCount)},OwnedPlSectionsTable=function(_Component){function OwnedPlSectionsTable(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_Component.call.apply(_Component,[this].concat(args))||this,"state",{sortingColumns:_defineProperty({},COLUMNS.ID,{direction:"desc",position:0})}),_defineProperty(_this,"participantNameFormatter",(function(participantType,_ref5){var rowData=_ref5.rowData;return _react.default.createElement("div",null,participantNames[rowData.participantType])})),_defineProperty(_this,"actionCellFormatter",(function(temp,_ref6){var rowData=_ref6.rowData;return _react.default.createElement(_SectionActionDropdown.default,{sectionData:rowData,handleEdit:_this.props.onEdit})})),_defineProperty(_this,"onSort",(function(selectedColumn){_this.setState({sortingColumns:sort.byColumn({sortingColumns:_this.state.sortingColumns,sortingOrder:{FIRST:"asc",asc:"desc",desc:"asc"},selectedColumn})})})),_defineProperty(_this,"getSortingColumns",(function(){return _this.state.sortingColumns||{}})),_defineProperty(_this,"getColumns",(function(sortable){return[{property:"name",header:{label:_locale.default.section(),transforms:[sortable]},cell:{formatters:[sectionLinkFormatter]}},{property:"participantType",header:{label:_locale.default.participants(),props:{className:"uitest-participant-type-header"},transforms:[sortable]},cell:{formatters:[_this.participantNameFormatter],props:{style:_tableConstants.plTableLayoutStyles.participantTypeCell}}},{property:"course",header:{label:_locale.default.course()},cell:{formatters:[courseLinkFormatter]}},{property:"studentCount",header:{label:_locale.default.students(),transforms:[sortable]},cell:{formatters:[studentsFormatter]}},{property:"loginType",header:{label:_locale.default.loginInfo()},cell:{formatters:[loginInfoFormatter]}},{property:"actions",cell:{formatters:[_this.actionCellFormatter],props:{style:_objectSpread({},_tableConstants.plTableLayoutStyles.colButton)}}}]})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(OwnedPlSectionsTable,_Component),OwnedPlSectionsTable.prototype.render=function render(){var sortable=(0,_wrapped_sortable.default)(this.getSortingColumns,this.onSort,_tableConstants.sortableOptions),columns=this.getColumns(sortable),sortingColumns=this.getSortingColumns(),sortedRows=sort.sorter({columns,sortingColumns,sort:function sort(x,y,z){return(0,_lodash.orderBy)(x,y,z)}})(this.props.sectionRows);return _react.default.createElement(Table.Provider,{className:"uitest-owned-pl-sections",columns},_react.default.createElement(Table.Header,null),_react.default.createElement(Table.Body,{className:"uitest-sorted-rows",rows:sortedRows,rowKey:"id"}))},OwnedPlSectionsTable}(_react.Component);_defineProperty(OwnedPlSectionsTable,"propTypes",{sectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,onEdit:_propTypes.default.func.isRequired,sectionRows:_propTypes.default.arrayOf(_shapes.sortableSectionShape).isRequired,isRtl:_propTypes.default.bool});exports.UnconnectedOwnedPlSectionsTable=OwnedPlSectionsTable,exports.default=(0,_reactRedux.connect)((function(state,ownProps){return{sectionRows:(0,_teacherSectionsReduxSelectors.getSectionRows)(state,ownProps.sectionIds),isRtl:state.isRtl}}))(OwnedPlSectionsTable)},"./src/templates/teacherDashboard/OwnedSections.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedOwnedSections=void 0;var _lodash=_interopRequireDefault(__webpack_require__("./node_modules/lodash/lodash.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_LtiFeedbackBanner=_interopRequireDefault(__webpack_require__("./src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx")),_styleConstants=_interopRequireDefault(__webpack_require__("./src/styleConstants.js")),_GlobalEditionWrapper=_interopRequireDefault(__webpack_require__("./src/templates/GlobalEditionWrapper.tsx")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_experiments=_interopRequireDefault(__webpack_require__("./src/util/experiments.js")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_impressionHelpers=__webpack_require__("./src/templates/teacherDashboard/impressionHelpers.js"),_OwnedPlSectionsTable=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/OwnedPlSectionsTable.jsx")),_OwnedSectionsTable=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/OwnedSectionsTable.jsx")),_sectionHelpers=__webpack_require__("./src/templates/teacherDashboard/sectionHelpers.js"),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts");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 _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)||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}}(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 _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}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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 OwnedSections=function(_React$Component){function OwnedSections(props){var _this;return _defineProperty(_this=_React$Component.call(this,props)||this,"state",{viewHidden:!1}),_defineProperty(_this,"beginEditingSection",(function(){return _this.props.beginEditingSection()})),_defineProperty(_this,"toggleViewHidden",(function(){_this.setState({viewHidden:!_this.state.viewHidden})})),_defineProperty(_this,"ownedSectionsTable",(function(showHidden){var _this$props=_this.props,isPlSections=_this$props.isPlSections,sectionIds=_this$props.sectionIds,hiddenSectionIds=_this$props.hiddenSectionIds,sectionsToShow=showHidden?hiddenSectionIds:_lodash.default.without.apply(_lodash.default,[sectionIds].concat(_toConsumableArray(hiddenSectionIds)));return isPlSections?_react.default.createElement(_OwnedPlSectionsTable.default,{sectionIds:sectionsToShow,onEdit:_this.onEditSection}):_react.default.createElement(_OwnedSectionsTable.default,{sectionIds:sectionsToShow,onEdit:_this.onEditSection})})),_this.onEditSection=_this.onEditSection.bind(_this),_experiments.default.isEnabled(_experiments.default.TEACHER_DASHBOARD_SECTION_BUTTONS)?(0,_impressionHelpers.recordImpression)("owned_sections_table_with_dashboard_header_buttons"):(0,_impressionHelpers.recordImpression)("owned_sections_table_without_dashboard_header_buttons"),_this}!function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(OwnedSections,_React$Component);var _proto=OwnedSections.prototype;return _proto.onEditSection=function onEditSection(id){this.props.beginEditingSection(id),_experiments.default.isEnabled(_experiments.default.TEACHER_DASHBOARD_SECTION_BUTTONS)?(0,_sectionHelpers.recordOpenEditSectionDetails)(id,"owned_sections_table_with_dashboard_header_buttons"):(0,_sectionHelpers.recordOpenEditSectionDetails)(id,"owned_sections_table_without_dashboard_header_buttons")},_proto.render=function render(){var _this$props2=this.props,sectionIds=_this$props2.sectionIds,hiddenSectionIds=_this$props2.hiddenSectionIds,viewHidden=this.state.viewHidden,hasSections=sectionIds.length>0;return _react.default.createElement("div",null,hasSections&&_react.default.createElement("div",null,_react.default.createElement(_GlobalEditionWrapper.default,{component:_LtiFeedbackBanner.default,componentId:"LtiFeedbackBanner"}),this.ownedSectionsTable(!1),_react.default.createElement("div",{style:styles.buttonContainer},hiddenSectionIds.length>0&&_react.default.createElement(_Button.default,{className:"ui-test-show-hide",onClick:this.toggleViewHidden,icon:viewHidden?"caret-up":"caret-down",text:viewHidden?_locale.default.hideArchivedSections():_locale.default.viewArchivedSections(),color:_Button.default.ButtonColor.gray})),viewHidden&&hiddenSectionIds.length>0&&_react.default.createElement("div",null,_react.default.createElement("div",{style:styles.hiddenSectionLabel},_locale.default.archivedSections()),_react.default.createElement("div",{style:styles.hiddenSectionDesc},_locale.default.archivedSectionsTeacherDescription()),this.ownedSectionsTable(!0))))},OwnedSections}(_react.default.Component);_defineProperty(OwnedSections,"propTypes",{isPlSections:_propTypes.default.bool,sectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,hiddenSectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,beginEditingSection:_propTypes.default.func.isRequired});var styles={button:{marginBottom:20,float:"right"},buttonContainer:{width:_styleConstants.default["content-width"],textAlign:"right",paddingTop:10,paddingBottom:10},hiddenSectionLabel:{fontSize:18,paddingBottom:10,color:_color.default.charcoal},hiddenSectionDesc:{fontSize:14,lineHeight:"22px",paddingBottom:10,color:_color.default.charcoal}};exports.UnconnectedOwnedSections=OwnedSections,exports.default=(0,_reactRedux.connect)((function(){return{}}),{beginEditingSection:_teacherSectionsRedux.beginEditingSection})(OwnedSections)},"./src/templates/teacherDashboard/OwnedSectionsTable.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.studentsFormatter=exports.sectionLinkFormatter=exports.loginInfoFormatter=exports.default=exports.courseLinkFormatter=exports.UnconnectedOwnedSectionsTable=exports.COLUMNS=void 0;var _lodash=__webpack_require__("./node_modules/lodash/lodash.js"),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireWildcard(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),Table=_interopRequireWildcard(__webpack_require__("./node_modules/reactabular-table/dist/index.js")),sort=_interopRequireWildcard(__webpack_require__("./node_modules/sortabular/dist/index.js")),_constants=__webpack_require__("./src/accounts/constants.js"),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_urlHelpers=__webpack_require__("./src/templates/teacherDashboard/urlHelpers.js"),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_sharedConstants=__webpack_require__("./generated-scripts/sharedConstants.ts"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_utils=__webpack_require__("./src/utils.js"),_tableConstants=__webpack_require__("./src/templates/tables/tableConstants.js"),_wrapped_sortable=_interopRequireDefault(__webpack_require__("./src/templates/tables/wrapped_sortable.js")),_TeacherNavFlagUtils=__webpack_require__("./src/templates/teacherNavigation/TeacherNavFlagUtils.ts"),_SectionActionDropdown=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/SectionActionDropdown.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.js"),_skeletonizeContentModule=_interopRequireDefault(__webpack_require__("./src/sharedComponents/skeletonize-content.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 _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}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 ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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 COLUMNS=exports.COLUMNS={ID:0,SECTION_NAME:1,GRADE:2,COURSE:3,STUDENTS:4,LOGIN_INFO:5,EDIT_DELETE:6},sectionLinkFormatter=exports.sectionLinkFormatter=function sectionLinkFormatter(name,_ref){var rowData=_ref.rowData;return _react.default.createElement("a",{style:_tableConstants.tableLayoutStyles.link,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id)},rowData.name)},courseLinkFormatter=exports.courseLinkFormatter=function courseLinkFormatter(course,_ref2){var rowData=_ref2.rowData,assignmentNames=rowData.assignmentNames,assignmentPaths=rowData.assignmentPaths,courseOfferingsAreLoaded=rowData.courseOfferingsAreLoaded,isAssignedSingleUnitCourse=rowData.isAssignedSingleUnitCourse;return _react.default.createElement("div",null,courseOfferingsAreLoaded?_react.default.createElement(_react.default.Fragment,null,_react.default.createElement("a",{href:(0,_TeacherNavFlagUtils.showV2TeacherDashboard)()?assignmentPaths.length>0&&assignmentPaths[0].includes("/s/")?(0,_urlHelpers.teacherDashboardUrl)(rowData.id,assignmentPaths[0].replace("/s/","/unit/")):(0,_urlHelpers.teacherDashboardUrl)(rowData.id,assignmentPaths[0]):"".concat(assignmentPaths[0]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.tableLayoutStyles.link},assignmentNames[0]),assignmentPaths.length>1&&!isAssignedSingleUnitCourse&&_react.default.createElement("div",{style:styles.currentUnit},_react.default.createElement("div",null,_locale.default.currentUnit()),_react.default.createElement("a",{href:(0,_TeacherNavFlagUtils.showV2TeacherDashboard)()?(0,_urlHelpers.teacherDashboardUrl)(rowData.id,assignmentPaths[1].replace("/s/","/unit/")):"".concat(assignmentPaths[1]).concat((0,_utils.stringifyQueryParams)({section_id:rowData.id})),style:_tableConstants.tableLayoutStyles.link},assignmentNames[1])),assignmentPaths.length<1&&_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.coursesCardAction(),href:"/catalog",color:_Button.default.ButtonColor.neutralDark})):_react.default.createElement("span",{className:_skeletonizeContentModule.default.skeletonizeContent,"data-testid":"skeletonize-content",style:{width:(0,_lodash.random)(30,90)+"%"}}))},loginInfoFormatter=exports.loginInfoFormatter=function loginInfoFormatter(loginType,_ref3){var rowData=_ref3.rowData,sectionCode="";return sectionCode=rowData.loginType===_constants.OAuthSectionTypes.clever?_locale.default.loginTypeClever():rowData.loginType===_constants.OAuthSectionTypes.google_classroom?_locale.default.loginTypeGoogleClassroom():rowData.loginType===_sharedConstants.SectionLoginType.lti_v1?rowData.loginTypeName:rowData.code,_react.default.createElement("a",{style:_tableConstants.tableLayoutStyles.link,href:(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/login_info")},sectionCode)},studentsFormatter=exports.studentsFormatter=function studentsFormatter(studentCount,_ref4){var rowData=_ref4.rowData,manageStudentsUrl=(0,_TeacherNavFlagUtils.showV2TeacherDashboard)()?(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/roster"):(0,_urlHelpers.teacherDashboardUrl)(rowData.id,"/manage_students");return rowData.studentCount<=0?_react.default.createElement(_Button.default,{__useDeprecatedTag:!0,text:_locale.default.addStudents(),href:manageStudentsUrl,color:_Button.default.ButtonColor.neutralDark}):_react.default.createElement("a",{style:_tableConstants.tableLayoutStyles.link,href:manageStudentsUrl,"aria-label":_locale.default.manageStudentsAriaLabel({numStudents:studentCount})},rowData.studentCount)},hiddenFormatter=function hiddenFormatter(id){return null},OwnedSectionsTable=function(_Component){function OwnedSectionsTable(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_Component.call.apply(_Component,[this].concat(args))||this,"state",{sortingColumns:_defineProperty({},COLUMNS.ID,{direction:"desc",position:0})}),_defineProperty(_this,"determineSorter",(function(data,activeColumn,directionArray){var gradeCol=COLUMNS.GRADE.toString();if(_this.state.sortingColumns[gradeCol]){var mult="asc"===directionArray[0]?1:-1;return(0,_lodash.sortBy)(data,(function(obj){return mult*_sharedConstants.StudentGradeLevels.concat(null).indexOf(obj.grades?obj.grades[0]:null)}))}return(0,_lodash.orderBy)(data,activeColumn,directionArray)})),_defineProperty(_this,"gradeFormatter",(function(grades,_ref5){var rowData=_ref5.rowData,formattedGrades=rowData.grades?rowData.grades.join(", "):null;return _react.default.createElement("div",null,formattedGrades)})),_defineProperty(_this,"actionCellFormatter",(function(temp,_ref6){var rowData=_ref6.rowData;return _react.default.createElement(_SectionActionDropdown.default,{sectionData:rowData,handleEdit:_this.props.onEdit})})),_defineProperty(_this,"onSort",(function(selectedColumn){_this.setState({sortingColumns:sort.byColumn({sortingColumns:_this.state.sortingColumns,sortingOrder:{FIRST:"asc",asc:"desc",desc:"asc"},selectedColumn})})})),_defineProperty(_this,"getSortingColumns",(function(){return _this.state.sortingColumns||{}})),_defineProperty(_this,"getColumns",(function(sortable){var colStyle=_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.cell),styles.sectionCol),unsortableHeaderStyle=_this.props.isRtl?styles.unsortableHeaderRTL:styles.unsortableHeader;return[{property:"id",header:{props:{style:styles.hiddenCol}},cell:{formatters:[hiddenFormatter],props:{style:styles.hiddenCol}}},{property:"name",header:{label:_locale.default.section(),props:{style:_tableConstants.tableLayoutStyles.headerCell},transforms:[sortable]},cell:{formatters:[sectionLinkFormatter],props:{style:_objectSpread(_objectSpread({},colStyle),styles.leftHiddenCol)}}},{property:"grades",header:{label:_locale.default.grade(),props:{className:"uitest-grade-header",style:_tableConstants.tableLayoutStyles.headerCell},transforms:[sortable]},cell:{formatters:[_this.gradeFormatter],props:{style:colStyle}}},{property:"course",header:{label:_locale.default.course(),props:{style:_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.headerCell),unsortableHeaderStyle)}},cell:{formatters:[courseLinkFormatter],props:{style:colStyle}}},{property:"studentCount",header:{label:_locale.default.students(),props:{style:_tableConstants.tableLayoutStyles.headerCell},transforms:[sortable]},cell:{formatters:[studentsFormatter],props:{style:colStyle}}},{property:"loginType",header:{label:_locale.default.loginInfo(),props:{style:_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.headerCell),unsortableHeaderStyle)}},cell:{formatters:[loginInfoFormatter],props:{style:colStyle}}},{property:"actions",header:{props:{style:_tableConstants.tableLayoutStyles.headerCell}},cell:{formatters:[_this.actionCellFormatter],props:{style:_objectSpread(_objectSpread({},_tableConstants.tableLayoutStyles.cell),styles.colButton)}}}]})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(OwnedSectionsTable,_Component),OwnedSectionsTable.prototype.render=function render(){var _this2=this,sortable=(0,_wrapped_sortable.default)(this.getSortingColumns,this.onSort,_tableConstants.sortableOptions),columns=this.getColumns(sortable),sortingColumns=this.getSortingColumns(),sortedRows=sort.sorter({columns,sortingColumns,sort:function sort(x,y,z){return _this2.determineSorter(x,y,z)}})(this.props.sectionRows);return _react.default.createElement(Table.Provider,{className:"uitest-owned-sections",columns,style:_tableConstants.tableLayoutStyles.table},_react.default.createElement(Table.Header,null),_react.default.createElement(Table.Body,{className:"uitest-sorted-rows",rows:sortedRows,rowKey:"id"}))},OwnedSectionsTable}(_react.Component);_defineProperty(OwnedSectionsTable,"propTypes",{sectionIds:_propTypes.default.arrayOf(_propTypes.default.number).isRequired,onEdit:_propTypes.default.func.isRequired,sectionRows:_propTypes.default.arrayOf(_shapes.sortableSectionShape).isRequired,isRtl:_propTypes.default.bool});var styles={currentUnit:{marginTop:10},hiddenCol:{width:0,padding:0,border:0},leftHiddenCol:{borderLeft:0},unsortableHeader:_tableConstants.tableLayoutStyles.unsortableHeader,unsortableHeaderRTL:_tableConstants.tableLayoutStyles.unsortableHeaderRTL,colButton:{paddingTop:20,paddingLeft:20,paddingBottom:20,width:40},sectionCol:{paddingLeft:20},sectionCodeNone:{color:_color.default.light_gray,fontSize:16}};exports.UnconnectedOwnedSectionsTable=OwnedSectionsTable,exports.default=(0,_reactRedux.connect)((function(state,ownProps){return{sectionRows:(0,_teacherSectionsReduxSelectors.getSectionRows)(state,ownProps.sectionIds),isRtl:state.isRtl}}))(OwnedSectionsTable)},"./src/templates/teacherDashboard/PadAndCenter.jsx":(module,exports,__webpack_require__)=>{"use strict";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 PadAndCenter=function PadAndCenter(_ref){var children=_ref.children;return _react.default.createElement("div",{style:{display:"flex",flexFlow:"row",justifyContent:"center",marginTop:20,marginBottom:20}},children)};PadAndCenter.propTypes={children:_propTypes.default.any};exports.default=PadAndCenter;module.exports=exports.default},"./src/templates/teacherDashboard/ParticipantTypePicker.jsx":(module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _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")),_Button=_interopRequireDefault(__webpack_require__("./src/legacySharedComponents/Button.jsx")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_Headings=__webpack_require__("./src/legacySharedComponents/Headings.jsx"),_styleConstants=_interopRequireDefault(__webpack_require__("./src/styleConstants.js")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_CardContainer=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/CardContainer.jsx")),_LoginTypeCard=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/LoginTypeCard.jsx"));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 _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 _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}var cardInfoByAudience={student:{title:_locale.default.participantTypeStudentTitle(),description:_locale.default.participantTypeStudentDescription()},teacher:{title:_locale.default.participantTypeTeacherTitle(),description:_locale.default.participantTypeTeacherDescription()},facilitator:{title:_locale.default.participantTypeFacilitatorTitle(),description:_locale.default.participantTypeFacilitatorDescription()}};!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}(exports.default=function(_Component){function ParticipantTypePicker(){return _Component.apply(this,arguments)||this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(ParticipantTypePicker,_Component),ParticipantTypePicker.prototype.render=function render(){var _this$props=this.props,title=_this$props.title,setParticipantType=_this$props.setParticipantType,handleCancel=_this$props.handleCancel;return _react.default.createElement("div",{style:style.container,className:"uitest-participant-type-picker"},_react.default.createElement(_Headings.Heading3,{isRebranded:!0},title),_react.default.createElement("p",{style:style.bodyText},_locale.default.professionalLearningParticipantQuestion()),_react.default.createElement("div",{style:style.scroll},_react.default.createElement(_CardContainer.default,null,this.props.availableParticipantTypes.map((function(type){return _react.default.createElement(ParticipantTypeCard,{onClick:setParticipantType,key:type,type})})))),_react.default.createElement("div",{style:style.footer},_react.default.createElement(_Button.default,{onClick:handleCancel,text:_locale.default.dialogCancel(),color:_Button.default.ButtonColor.neutralDark,style:{margin:0}})))},ParticipantTypePicker}(_react.Component),"propTypes",{title:_propTypes.default.string.isRequired,setParticipantType:_propTypes.default.func.isRequired,handleCancel:_propTypes.default.func.isRequired,availableParticipantTypes:_propTypes.default.arrayOf(_propTypes.default.string).isRequired});var ParticipantTypeCard=function ParticipantTypeCard(props){return _react.default.createElement(_LoginTypeCard.default,{className:"uitest-".concat(props.type,"-type"),title:cardInfoByAudience[props.type].title,subtitle:cardInfoByAudience[props.type].description,onClick:function onClick(){return props.onClick(props.type)}})};ParticipantTypeCard.propTypes={onClick:_propTypes.default.func.isRequired,type:_propTypes.default.string};var style={container:{width:_styleConstants.default["content-width"],color:_color.default.neutral_dark,height:"300px",left:"20px",right:"20px"},bodyText:{fontSize:"1em"},scroll:{overflowX:"hidden",overflowY:"auto",height:"calc(80vh - 200px)"},footer:{position:"absolute",width:_styleConstants.default["content-width"],height:"50px",left:0,bottom:"-23px",padding:"0px 20px 20px 20px",backgroundColor:"#fff",borderRadius:"5px"}};module.exports=exports.default},"./src/templates/teacherDashboard/RosterDialog.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.UnconnectedRosterDialog=void 0;var _propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_reactRedux=__webpack_require__("./node_modules/react-redux/es/index.js"),_constants=__webpack_require__("./src/accounts/constants.js"),_AnalyticsConstants=__webpack_require__("./src/metrics/AnalyticsConstants.js"),_AnalyticsReporter=_interopRequireDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_RailsAuthenticityToken=_interopRequireDefault(__webpack_require__("./src/lib/util/RailsAuthenticityToken.jsx")),_color=_interopRequireDefault(__webpack_require__("./src/util/color.js")),_BaseDialog=_interopRequireDefault(__webpack_require__("./src/templates/BaseDialog.jsx")),_shapes=__webpack_require__("./src/templates/teacherDashboard/shapes.jsx"),_teacherSectionsRedux=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsRedux.ts"),_teacherSectionsReduxSelectors=__webpack_require__("./src/templates/teacherDashboard/teacherSectionsReduxSelectors.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 _extends(){return _extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},_extends.apply(null,arguments)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){_defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}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 ctaButtonStyle={background:_color.default.orange,color:_color.default.white,border:"1px solid #b07202",borderRadius:3,boxShadow:"inset 0 1px 0 0 rgba(255, 255, 255, 0.63)",fontSize:14,padding:"8px 20px"},ClassroomList=function ClassroomList(_ref){var classrooms=_ref.classrooms,onSelect=_ref.onSelect,selectedId=_ref.selectedId,rosterProvider=_ref.rosterProvider;return classrooms.length?_react.default.createElement("div",null,classrooms.map((function(classroom){return _react.default.createElement("div",{style:Object.assign({},styles.classroomRow,selectedId===classroom.id&&styles.highlightRow),key:classroom.id,onClick:onSelect.bind(null,classroom.id)},classroom.name,classroom.section&&_react.default.createElement("span",{style:{color:"#aaa"}}," (",classroom.section,")"),"ARCHIVED"===classroom.course_state&&_react.default.createElement("span",{id:"course-state",style:{color:_color.default.bootstrap_error_text}}," ","- ",classroom.course_state),_react.default.createElement("span",{style:{float:"right"}},_locale.default.code(),_react.default.createElement("span",{style:{fontFamily:"monospace"}}," ",classroom.enrollment_code)))}))):_react.default.createElement(NoClassroomsFound,{rosterProvider})};ClassroomList.propTypes={classrooms:_propTypes.default.array.isRequired,onSelect:_propTypes.default.func.isRequired,selectedId:_propTypes.default.string,rosterProvider:_propTypes.default.oneOf(Object.keys(_constants.OAuthSectionTypes))};var NoClassroomsFound=function NoClassroomsFound(_ref2){switch(_ref2.rosterProvider){case _constants.OAuthSectionTypes.google_classroom:return _react.default.createElement("div",null,_react.default.createElement("p",null,_locale.default.noClassroomsFound()),_react.default.createElement("a",{href:"https://classroom.google.com/"},_locale.default.addRemoveGoogleClassrooms()));case _constants.OAuthSectionTypes.clever:return _react.default.createElement("div",null,_react.default.createElement("p",null,_locale.default.noClassroomsFound()),_react.default.createElement("a",{href:"https://clever.com/"},_locale.default.addRemoveCleverClassrooms()))}};NoClassroomsFound.propTypes={rosterProvider:_propTypes.default.oneOf(Object.keys(_constants.OAuthSectionTypes))};var LoadError=function LoadError(_ref3){var rosterProvider=_ref3.rosterProvider,loginType=_ref3.loginType;return rosterProvider===_constants.OAuthSectionTypes.google_classroom?_react.default.createElement("div",null,_react.default.createElement("p",null,_locale.default.authorizeGoogleClassroomsText()),_react.default.createElement(ReauthorizeGoogleClassroom,null),_react.default.createElement("p",null,_react.default.createElement("a",{href:"https://support.code.org/hc/en-us/articles/115001319312",target:"_blank",rel:"noopener noreferrer"},_locale.default.errorLoadingRosteredSectionsSupport()))):_react.default.createElement("p",null,_locale.default.errorLoadingRosteredSections({type:loginType})," ",_react.default.createElement("a",{href:"https://support.code.org/hc/en-us/articles/6496495212557",target:"_blank",rel:"noopener noreferrer"},_locale.default.errorLoadingRosteredSectionsSupport()))};LoadError.propTypes={rosterProvider:_propTypes.default.string,loginType:_propTypes.default.string};var REAUTHORIZE_URL="/users/auth/google_oauth2?scope=userinfo.email,userinfo.profile,classroom.courses.readonly,classroom.rosters.readonly";function ReauthorizeGoogleClassroom(){return _react.default.createElement("form",{method:"POST",action:REAUTHORIZE_URL},_react.default.createElement(_RailsAuthenticityToken.default,null),_react.default.createElement("button",{type:"submit",style:ctaButtonStyle},_locale.default.authorizeGoogleClassrooms()))}var RosterDialog=function(_React$Component){function RosterDialog(){for(var _this,_len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return _defineProperty(_this=_React$Component.call.apply(_React$Component,[this].concat(args))||this,"state",{selectedId:null}),_defineProperty(_this,"importClassroom",(function(){_this.recordSectionSetupExitEvent("Section Setup Completed");var classrooms=_this.props.classrooms,selectedName=classrooms&&classrooms.find((function(classroom){return classroom.id===_this.state.selectedId})).name;_this.props.handleImport(_this.state.selectedId,selectedName),_this.setState({selectedId:null})})),_defineProperty(_this,"redirectToEditSectionPage",(function(sectionId){var redirectUrl="/sections/"+sectionId+"/edit";window.location.href=redirectUrl})),_defineProperty(_this,"handleRedirect",(function(){_this.recordSectionSetupExitEvent("Section Setup Completed");var classrooms=_this.props.classrooms,courseName=classrooms&&classrooms.find((function(classroom){return classroom.id===_this.state.selectedId})).name,importSectionUrl=_this.props.rosterProvider===_constants.OAuthSectionTypes.google_classroom?"/dashboardapi/import_google_classroom":"/dashboardapi/import_clever_classroom",courseId=_this.state.selectedId;return new Promise((function(resolve,reject){$.getJSON(importSectionUrl,{courseId,courseName}).done(resolve).fail((function(jqxhr){_this.props.handleImportFailure(jqxhr),reject(new Error("\n url: ".concat(importSectionUrl,"\n status: ").concat(jqxhr.status,"\n statusText: ").concat(jqxhr.statusText,"\n responseText: ").concat(jqxhr.responseText,"\n ")))}))})).then((function(newSection){return _this.redirectToEditSectionPage(newSection.id)}))})),_defineProperty(_this,"cancel",(function(){_this.recordSectionSetupExitEvent("Section Setup Cancelled"),_this.props.handleCancel()})),_defineProperty(_this,"onClassroomSelected",(function(id){_this.setState({selectedId:id})})),_defineProperty(_this,"recordSectionSetupExitEvent",(function(eventName){var rosterProvider=_this.props.rosterProvider;_AnalyticsReporter.default.sendEvent(eventName,{oauthSource:rosterProvider},_AnalyticsConstants.PLATFORMS.BOTH)})),_this}return function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,_setPrototypeOf(t,o)}(RosterDialog,_React$Component),RosterDialog.prototype.render=function render(){var title="",loginType="";switch(this.props.rosterProvider){case _constants.OAuthSectionTypes.google_classroom:title=_locale.default.selectGoogleClassroom(),loginType=_locale.default.loginTypeGoogleClassroom();break;case _constants.OAuthSectionTypes.clever:title=_locale.default.selectCleverSection(),loginType=_locale.default.loginTypeClever()}return _react.default.createElement(_BaseDialog.default,_extends({useUpdatedStyles:!0,fixedHeight:480,isOpen:this.props.isOpen,handleClose:this.cancel},this.props),_react.default.createElement("h2",{style:styles.title},title),_react.default.createElement("div",{style:styles.content},this.props.loadError?_react.default.createElement(LoadError,{rosterProvider:this.props.rosterProvider,loginType}):this.props.classrooms?_react.default.createElement(ClassroomList,{classrooms:this.props.classrooms,onSelect:this.onClassroomSelected,selectedId:this.state.selectedId,rosterProvider:this.props.rosterProvider}):_locale.default.loading()),_react.default.createElement("div",{style:styles.footer},_react.default.createElement("button",{id:"cancel-button",type:"button",onClick:this.cancel,style:_objectSpread(_objectSpread({},styles.buttonPrimary),styles.buttonSecondary)},_locale.default.dialogCancel()),_react.default.createElement("button",{id:"import-button-and-redirect",type:"button",onClick:this.handleRedirect,style:Object.assign({},styles.buttonPrimary,!this.state.selectedId&&{opacity:.5}),disabled:!this.state.selectedId},_locale.default.chooseSection())))},RosterDialog}(_react.default.Component);_defineProperty(RosterDialog,"propTypes",{handleImport:_propTypes.default.func,handleCancel:_propTypes.default.func,handleImportFailure:_propTypes.default.func,isOpen:_propTypes.default.bool,classrooms:_propTypes.default.arrayOf(_shapes.classroomShape),loadError:_shapes.loadErrorShape,rosterProvider:_propTypes.default.oneOf(Object.keys(_constants.OAuthSectionTypes))});var styles={title:{position:"absolute",left:20,color:_color.default.dark_charcoal,margin:"15px 0"},content:{position:"absolute",left:20,top:50,right:20,bottom:70,overflowY:"scroll"},classroomRow:{padding:10,cursor:"pointer"},highlightRow:{backgroundColor:_color.default.default_blue,color:_color.default.white},footer:{position:"absolute",bottom:15,right:20,left:20},buttonPrimary:_objectSpread(_objectSpread({},ctaButtonStyle),{},{float:"right"}),buttonSecondary:{float:"left",background:"#eee",color:"#5b6770",border:"1px solid #c5c5c5"}};exports.UnconnectedRosterDialog=RosterDialog,exports.default=(0,_reactRedux.connect)((function(state){return{isOpen:(0,_teacherSectionsReduxSelectors.isRosterDialogOpen)(state),classrooms:state.teacherSections.classrooms,loadError:state.teacherSections.loadError,rosterProvider:state.teacherSections.rosterProvider}}),{handleImport:_teacherSectionsRedux.importOrUpdateRoster,handleCancel:_teacherSectionsRedux.cancelImportRosterFlow,handleImportFailure:_teacherSectionsRedux.rosterImportFailed})(RosterDialog)},"./src/templates/teacherDashboard/TeacherDashboardNavigation.jsx":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TEACHER_DASHBOARD_PATHS=exports.LABELED_TEACHER_DASHBOARD_PATHS=void 0,exports.default=TeacherDashboardNavigation;var _classnames=_interopRequireDefault(__webpack_require__("./node_modules/classnames/index.js")),_propTypes=_interopRequireDefault(__webpack_require__("./node_modules/prop-types/index.js")),_react=_interopRequireDefault(__webpack_require__("./node_modules/react/index.js")),_reactRouterDom=__webpack_require__("./node_modules/react-router-dom/dist/index.js"),_locale=_interopRequireDefault(__webpack_require__("./src/util/locale-do-not-import.js")),_teacherDashboardModule=_interopRequireDefault(__webpack_require__("./src/templates/teacherDashboard/teacher-dashboard.module.scss"));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)||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}}(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 _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 TEACHER_DASHBOARD_PATHS=exports.TEACHER_DASHBOARD_PATHS={progress:"/progress",textResponses:"/text_responses",assessments:"/assessments",projects:"/projects",stats:"/stats",manageStudents:"/manage_students",loginInfo:"/login_info",standardsReport:"/standards_report",aiTutorChatMessages:"/ai_tutor"},LABELED_TEACHER_DASHBOARD_PATHS=exports.LABELED_TEACHER_DASHBOARD_PATHS=[{label:_locale.default.teacherTabProgress(),url:TEACHER_DASHBOARD_PATHS.progress},{label:_locale.default.teacherTabStatsTextResponses(),url:TEACHER_DASHBOARD_PATHS.textResponses},{label:_locale.default.teacherTabAssessments(),url:TEACHER_DASHBOARD_PATHS.assessments},{label:_locale.default.teacherTabProjects(),url:TEACHER_DASHBOARD_PATHS.projects},{label:_locale.default.teacherTabStats(),url:TEACHER_DASHBOARD_PATHS.stats},{label:_locale.default.teacherTabManageStudents(),url:TEACHER_DASHBOARD_PATHS.manageStudents}];function TeacherDashboardNavigation(_ref){var links=_ref.links,aiTutorLinks=_ref.showAITutorTab?[{label:_locale.default.aiTutor(),url:TEACHER_DASHBOARD_PATHS.aiTutorChatMessages}]:[],renderedLinks=[].concat(_toConsumableArray(links||LABELED_TEACHER_DASHBOARD_PATHS),aiTutorLinks);return _react.default.createElement("div",{id:"uitest-teacher-dashboard-nav",className:_teacherDashboardModule.default.navContainer},renderedLinks.map((function(link){return _react.default.createElement(_reactRouterDom.NavLink,{key:link.url,to:link.url,className:function className(_ref2){var isActive=_ref2.isActive;return(0,_classnames.default)(_teacherDashboardModule.default.linkContainer,isActive&&_teacherDashboardModule.default.activeLinkContainer)}},_react.default.createElement("div",{className:_teacherDashboardModule.default.link},link.label))})))}TeacherDashboardNavigation.propTypes={showAITutorTab:_propTypes.default.bool,links:_propTypes.default.arrayOf(_propTypes.default.shape({label:_propTypes.default.string.isRequired,url:_propTypes.default.string.isRequired}))}},"./src/templates/teacherDashboard/impressionHelpers.js":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.recordImpression=function recordImpression(study_group){_firehose.default.putRecord({study:"teacher_dashboard_actions",study_group,event:"load_feature",data_json:"{}"})};var _firehose=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(__webpack_require__("./src/metrics/firehose.js"))},"./src/templates/teacherDashboard/sectionHelpers.js":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.recordOpenEditSectionDetails=function recordOpenEditSectionDetails(sectionId,studyGroup){_firehose.default.putRecord({study:"teacher_dashboard_actions",study_group:studyGroup,event:"open_edit_section_dashboard_header",data_json:JSON.stringify({section_id:sectionId})},{includeUserId:!0})},exports.recordSwitchToSection=function recordSwitchToSection(toSectionId,fromSectionId,studyGroup){_firehose.default.putRecord({study:"teacher_dashboard_actions",study_group:studyGroup,event:"change_section",data_json:JSON.stringify({section_id:fromSectionId,old_section_id:fromSectionId,new_section_id:toSectionId})},{includeUserId:!0})},exports.switchToSection=function switchToSection(toSectionId,fromSectionId){var baseUrl="/teacher_dashboard/sections/".concat(toSectionId,"/"),currentTab=_lodash.default.last(_lodash.default.split(window.location.pathname,"/")),sectionUrl=_lodash.default.values(_TeacherDashboardNavigation.TEACHER_DASHBOARD_PATHS).includes("/".concat(currentTab))?baseUrl.concat(currentTab):baseUrl;(0,_utils.navigateToHref)(sectionUrl)};var _lodash=_interopRequireDefault(__webpack_require__("./node_modules/lodash/lodash.js")),_utils=__webpack_require__("./src/utils.js"),_firehose=_interopRequireDefault(__webpack_require__("./src/metrics/firehose.js")),_TeacherDashboardNavigation=__webpack_require__("./src/templates/teacherDashboard/TeacherDashboardNavigation.jsx");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},"./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/userFeedback/FeedbackBanner.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__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,".feedback-banner{background-color:#dceffb;border-color:#dceffb;color:#4d575f;line-height:2rem}.feedback-banner .share-more,.feedback-banner .feedback-title{font-size:16px}.feedback-banner .feedback-banner-greeting{display:inline-block;margin-right:1rem;animation-name:wave-animation;animation-timing-function:linear;animation-duration:.75s;transform-origin:70% 70%;animation-iteration-count:2}@keyframes wave-animation{0%{transform:rotate(0deg)}25%{transform:rotate(-10deg)}75%{transform:rotate(12deg)}100%{transform:rotate(0deg)}}.feedback-banner .feedback-banner-greeting .fa-hand-wave{font-weight:400;vertical-align:middle}.feedback-banner .feedback-banner-greeting .fa-hand-wave:hover{animation-name:high-five-animation;animation-timing-function:ease-in-out;animation-duration:.5s}@keyframes high-five-animation{0%{cursor:grab;transform:rotate(0) scale(1)}25%{cursor:grab;transform:rotate(50deg) scale(1)}50%{cursor:grab;transform:rotate(50deg) scale(1.5)}75%{cursor:grab;transform:rotate(50deg) scale(1)}100%{cursor:initial;transform:rotate(0) scale(1)}}.feedback-banner i{color:#0f0f0f;font-size:1.3rem}.feedback-banner #feedback-banner-share-more-link{font-weight:normal}.feedback-banner button.close{border:unset !important;box-shadow:none;font-size:1.6rem;font-weight:normal;line-height:unset;margin:0;top:0}.feedback-banner .feedback{margin-left:1rem}.feedback-banner .feedback button{all:unset;border:unset !important;box-shadow:none;cursor:pointer}.feedback-banner .feedback button:not(:last-child){margin-right:.5rem}.feedback-banner .feedback button:has(.fa-thumbs-o-down){transform:scaleX(-1)}.feedback-banner .feedback button i:hover{animation-name:approval-animation;animation-timing-function:ease-in-out;animation-duration:.75s;transform-origin:-10% 100%;color:rgba(0,0,0,.6)}@keyframes approval-animation{0%{transform:rotate(0deg)}25%{transform:rotate(-10deg)}50%{transform:rotate(5deg)}100%{transform:rotate(0deg)}}","",{version:3,sources:["webpack://./src/sharedComponents/userFeedback/FeedbackBanner.scss","webpack://./../shared/css/color.scss","webpack://./../shared/css/animations.scss"],names:[],mappings:"AAIA,iBAGE,wBCoOe,CDnOf,oBCmOe,CDlOf,aCGc,CDFd,gBAAA,CAEA,8DAEE,cAAA,CAGF,2CACE,oBAAA,CACA,iBAdO,CEiBT,6BAAA,CACA,gCAAA,CACA,uBAAA,CACA,wBAAA,CFHE,2BAAA,CEPF,0BACE,GAAA,sBAAA,CACA,IAAA,wBAAA,CACA,IAAA,uBAAA,CACA,KAAA,sBAAA,CAAA,CFKA,yDACE,eAAA,CACA,qBAAA,CAEA,+DESJ,kCAAA,CACA,qCAAA,CACA,sBAAA,CAVA,+BACE,GAAA,WAAA,CAAA,4BAAA,CACA,IAAA,WAAA,CAAA,gCAAA,CACA,IAAA,WAAA,CAAA,kCAAA,CACA,IAAA,WAAA,CAAA,gCAAA,CACA,KAAA,cAAA,CAAA,4BAAA,CAAA,CAAA,mBFCA,aAAA,CACA,gBAAA,CAGF,kDACE,kBAAA,CAGF,8BACE,uBAAA,CACA,eAAA,CACA,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,QAAA,CACA,KAAA,CAGF,2BACE,gBAjDO,CAmDP,kCACE,SAAA,CACA,uBAAA,CACA,eAAA,CACA,cAAA,CAEA,mDACE,kBAAA,CAGF,yDACE,oBAAA,CAIA,0CE/DN,iCAAA,CACA,qCAAA,CACA,uBAAA,CACA,0BAAA,CF8DQ,oBAAA,CExER,8BACE,GAAA,sBAAA,CACA,IAAA,wBAAA,CACA,IAAA,sBAAA,CACA,KAAA,sBAAA,CAAA",sourcesContent:["@import 'animations';\n@import 'color';\n@import '@code-dot-org/component-library-styles/font';\n\n.feedback-banner {\n $indent: 1rem;\n\n background-color: $light_info_100;\n border-color: $light_info_100;\n color: $dark_charcoal;\n line-height: 2rem;\n\n & .share-more,\n & .feedback-title {\n font-size: 16px;\n }\n\n & .feedback-banner-greeting {\n display: inline-block;\n margin-right: $indent;\n\n @include wave-animation;\n animation-iteration-count: 2;\n\n & .fa-hand-wave {\n font-weight: 400;\n vertical-align: middle;\n\n &:hover {\n @include high-five-animation;\n }\n }\n }\n\n & i {\n color: #0f0f0f;\n font-size: 1.3rem;\n }\n\n & #feedback-banner-share-more-link {\n font-weight: normal;\n }\n\n & button.close {\n border: unset !important;\n box-shadow: none;\n font-size: 1.6rem;\n font-weight: normal;\n line-height: unset;\n margin: 0;\n top: 0;\n }\n\n & .feedback {\n margin-left: $indent;\n\n & button {\n all: unset;\n border: unset !important;\n box-shadow: none;\n cursor: pointer;\n\n &:not(:last-child) {\n margin-right: 0.5rem;\n }\n\n &:has(.fa-thumbs-o-down) {\n transform: scaleX(-1);\n }\n\n & i {\n &:hover {\n @include approval-animation;\n color: rgb(0 0 0 / 0.6);\n }\n }\n }\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","@mixin approval-animation {\n @keyframes approval-animation {\n 0% { transform: rotate(0deg) }\n 25% { transform: rotate(-10deg) }\n 50% { transform: rotate(5deg) }\n 100% { transform: rotate(0deg) }\n }\n\n animation-name: approval-animation;\n animation-timing-function: ease-in-out;\n animation-duration: .75s;\n transform-origin: -10% 100%;\n}\n\n@mixin wave-animation {\n @keyframes wave-animation {\n 0% { transform: rotate(0deg) }\n 25% { transform: rotate(-10deg) }\n 75% { transform: rotate(12deg) }\n 100% { transform: rotate(0deg) }\n }\n\n animation-name: wave-animation;\n animation-timing-function: linear;\n animation-duration: .75s;\n transform-origin: 70% 70%;\n}\n\n@mixin high-five-animation {\n @keyframes high-five-animation {\n 0% { cursor: grab; transform: rotate(0) scale(1); }\n 25% { cursor: grab; transform: rotate(50deg) scale(1); }\n 50% { cursor: grab; transform: rotate(50deg) scale(1.5); }\n 75% { cursor: grab; transform: rotate(50deg) scale(1); }\n 100% { cursor: initial; transform: rotate(0) scale(1); }\n }\n\n animation-name: high-five-animation;\n animation-timing-function: ease-in-out;\n animation-duration: .5s;\n}\n"],sourceRoot:""}]);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/content-container.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__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,".iG_U7133clrJGp9EvJu0 a:hover{text-decoration:underline !important}","",{version:3,sources:["webpack://./src/templates/content-container.module.scss"],names:[],mappings:"AACE,8BAEE,oCAAA",sourcesContent:[".contentContainerHeading {\n a:hover {\n //We need !important to overwrite the default state inline style (inline hover state is not working, unfortunately)\n text-decoration: underline !important;\n }\n}\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={contentContainerHeading:"iG_U7133clrJGp9EvJu0"};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/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__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,".m8cwhnOmvuUNyvUAMcF3{padding:20px}.m8cwhnOmvuUNyvUAMcF3 hr{border-color:#c6cacd}.RgPr8TwstTtXpzw5riJw{color:#000;font-weight:600}.IRUPgw9jZMG5BwGTv0VJ{text-align:end}.IRUPgw9jZMG5BwGTv0VJ button{background-color:#8c52ba;border-color:#8c52ba;color:#fff}","",{version:3,sources:["webpack://./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss","webpack://./../shared/css/color.scss"],names:[],mappings:"AAGA,sBACE,YAAA,CAEA,yBACE,oBCQW,CDJf,sBACE,UCNM,CDON,eAAA,CAGF,sBACE,cAAA,CAEA,6BACE,wBCkIsB,CDjItB,oBCiIsB,CDhItB,UCmJY",sourcesContent:["@use 'sass:math';\n@import 'color.scss';\n\n.modalContainer {\n padding: 20px;\n\n hr {\n border-color: $lighter_gray;\n }\n}\n\n.modalHeader {\n color: $black;\n font-weight: 600;\n}\n\n.modalButton {\n text-align: end;\n\n button {\n background-color: $brand_secondary_default;\n border-color: $brand_secondary_default;\n color: $neutral_white;\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={modalContainer:"m8cwhnOmvuUNyvUAMcF3",modalHeader:"RgPr8TwstTtXpzw5riJw",modalButton:"IRUPgw9jZMG5BwGTv0VJ"};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/studioHomepages/borderedCallToAction.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__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,".jeQElweAU_GtNeIy9K9G{background-color:#fff;border-color:#d1d4d8;box-sizing:border-box;margin-bottom:20px;padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-flow:row wrap;gap:1rem}@media(max-width: 768px){.jeQElweAU_GtNeIy9K9G{flex-direction:column;align-items:start}}.X_k8CN8v6FKWMe7h0QZY{flex:2}.X_k8CN8v6FKWMe7h0QZY p{margin-bottom:.25rem}.CXirVuIL7JddB4BjhWwk{border-style:solid;border-width:1px}.dLR1CRqRrtuCZaoNdxpw{border-style:dashed;border-width:5px}","",{version:3,sources:["webpack://./src/templates/studioHomepages/borderedCallToAction.module.scss","webpack://./../shared/css/color.scss"],names:[],mappings:"AAEA,sBACE,qBC4OY,CD3OZ,oBCqMe,CDpMf,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,YAAA,CACA,6BAAA,CACA,kBAAA,CACA,kBAAA,CACA,QAAA,CAEA,yBAZF,sBAaI,qBAAA,CACA,iBAAA,CAAA,CAIJ,sBACE,MAAA,CAEA,wBACE,oBAAA,CAIJ,sBACE,kBAAA,CACA,gBAAA,CAGF,sBACE,mBAAA,CACA,gBAAA",sourcesContent:["@import 'color';\n\n.outerBox {\n background-color: $light_white;\n border-color: $light_gray_200;\n box-sizing: border-box;\n margin-bottom: 20px;\n padding: 1.25rem 1.5rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-flow: row wrap;\n gap: 1rem;\n\n @media (max-width: 768px) {\n flex-direction: column;\n align-items: start;\n }\n}\n\n.textWrapper {\n flex: 2;\n\n p {\n margin-bottom: 0.25rem;\n }\n}\n\n.solidBorder {\n border-style: solid;\n border-width: 1px;\n}\n\n.dashedBorder {\n border-style: dashed;\n border-width: 5px;\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={outerBox:"jeQElweAU_GtNeIy9K9G",textWrapper:"X_k8CN8v6FKWMe7h0QZY",solidBorder:"CXirVuIL7JddB4BjhWwk",dashedBorder:"dLR1CRqRrtuCZaoNdxpw"};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/teacherDashboard/teacher-dashboard.module.scss":(module,__webpack_exports__,__webpack_require__)=>{"use strict";__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,'.r148GL9rctMi8ic2Rxza{display:flex;flex-direction:row;min-height:100%}.vjcqcsC5UHnHu5fNdCXN{flex-grow:1;padding:20px;overflow-y:auto}._ufMiRT2rImClZHTHXsY{background-color:#292f36;display:flex;position:relative;padding-left:64px;overflow-x:auto}._ufMiRT2rImClZHTHXsY a.K4bOcbHynyN6DM_4XxwR{white-space:nowrap;text-decoration:none;background-color:#727a83;color:#fff;font-size:16px;font-weight:600;margin:10px 8px 0 0;padding:0 10px;border-radius:4px 4px 0 0}._ufMiRT2rImClZHTHXsY a.iFFFlUnwt7wjku1AH9l8{background-color:#fff;color:#007785}._ufMiRT2rImClZHTHXsY ._DQzQuZMqTQ4AaDj6ieA{height:40px;display:flex;align-items:center;text-align:center}.XhiG1LHSFBpFTYIFpEDO{max-width:970px;padding:10px 64px 64px 64px}.dZ1cN21ftqwdzRMxDKWJ{font-style:italic;text-align:center;padding-top:10px}.RRKm8HObqgvgLIDRnrnH{text-align:center;max-width:538px;margin:104px auto 82px auto}.L2s7SrfstbuNPJP2R5Eg{text-align:center;max-width:538px;margin:auto}.MAwG_rhRKPg2Qr3Aq48_{margin:24px 64px 82px 64px;text-align:center}.TB231FCuQzi61ewVP13q{height:200px;align-items:end;display:flex;justify-content:center}.OfTGsPghs6k9isqTaBNW{display:flex;justify-content:space-between}.d0KdEv8rn7naofB9JwqY{padding:0 64px}.d0KdEv8rn7naofB9JwqY h1{font-family:"Barlow Semi Condensed Medium","Noto Sans","Noto Sans Math","Noto Sans Arabic","Noto Sans Armenian","Noto Sans Bengali","Noto Sans SC","Noto Sans TC","Noto Sans Devanagari","Noto Sans Georgian","Noto Sans Hebrew","Noto Sans JP","Noto Sans Kannada","Noto Sans Khmer","Noto Sans KR","Noto Sans Myanmar","Noto Sans Sinhala","Noto Sans Tamil","Noto Sans Telugu","Noto Sans Thai","Noto Sans Thaana",sans-serif;font-weight:600;font-size:34px;color:#292f36;line-height:42px;margin-top:18px}.n7rpdhnG6mIZfM70nNjU{margin-top:12px}.l8gYGLAH5fYSyauaGD6j{margin-inline-end:8px;color:#8c52ba}.l8gYGLAH5fYSyauaGD6j:hover,.l8gYGLAH5fYSyauaGD6j :active,.l8gYGLAH5fYSyauaGD6j :visited,.l8gYGLAH5fYSyauaGD6j :focus-visible{color:#8c52ba}._VkciawW6i8aF2Krqekv{margin-bottom:8px}.r5TWkKyCpKGzB7lR2OQi{display:flex;flex-direction:column-reverse}.l1ZcMn86WVEtMfMtwzB8{display:flex;margin-bottom:5px}.GstPHhi_pXMjWq6OgTwb{display:inline-block;background-color:#8c52ba;color:#fff;text-align:center;padding:10px 20px;border-radius:5px;text-decoration:none;height:auto;line-height:24px;font-weight:600}.GstPHhi_pXMjWq6OgTwb:hover{background-color:#6c468a;color:#fff;text-decoration:none}.GstPHhi_pXMjWq6OgTwb:focus{outline:#009eb0 solid 2px;outline-offset:2px;color:#fff;text-decoration:none}.nOQrendyXUo0K9rMKg74{padding-top:24px}.PoYjg6Og_fERdeAt26oG{text-align:left}',"",{version:3,sources:["webpack://./src/templates/teacherDashboard/teacher-dashboard.module.scss","webpack://./../shared/css/color.scss","webpack://./../shared/css/style-constants.scss","webpack://./../frontend/packages/component-library-styles/font.scss"],names:[],mappings:"AAIA,sBACE,YAAA,CACA,kBAAA,CACA,eAAA,CAGF,sBACE,WAAA,CACA,YAAA,CACA,eAAA,CAGF,sBACE,wBCoKa,CDnKb,YAAA,CACA,iBAAA,CACA,iBAAA,CACA,eAAA,CAEA,6CACE,kBAAA,CACA,oBAAA,CACA,wBCwJa,CDvJb,UC8IY,CD7IZ,cAAA,CACA,eAAA,CACA,mBAAA,CACA,cAAA,CACA,yBAAA,CAGF,6CACE,qBCqIY,CDpIZ,aAAA,CAGF,4CACE,WAAA,CACA,YAAA,CACA,kBAAA,CACA,iBAAA,CAIJ,sBACE,eEpCc,CFqCd,2BAAA,CAGF,sBACE,iBAAA,CACA,iBAAA,CACA,gBAAA,CAGF,sBACE,iBAAA,CACA,eAAA,CACA,2BAAA,CAGF,sBACE,iBAAA,CACA,eAAA,CACA,WAAA,CAGF,sBACE,0BAAA,CACA,iBAAA,CAGF,sBACE,YAAA,CACA,eAAA,CACA,YAAA,CACA,sBAAA,CAGF,sBACE,YAAA,CACA,6BAAA,CAEA,sBACE,cAAA,CAEA,yBACE,gaGsCuB,CHrCvB,eAAA,CACA,cAAA,CACA,aCrFS,CDsFT,gBAAA,CACA,eAAA,CAIJ,sBACE,eAAA,CAEA,sBACE,qBAAA,CACA,aC2FgB,CDzFhB,8HAIE,aCqFc,CDhFpB,sBACE,iBAAA,CAGF,sBACE,YAAA,CACA,6BAAA,CAGF,sBACE,YAAA,CACA,iBAAA,CAIJ,sBACE,oBAAA,CACA,wBCtGO,CDuGP,UCnHM,CDoHN,iBAAA,CACA,iBAAA,CACA,iBAAA,CACA,oBAAA,CACA,WAAA,CACA,gBAAA,CACA,eAAA,CAEA,4BACE,wBCOmB,CDNnB,UC9HI,CD+HJ,oBAAA,CAGF,4BACE,yBAAA,CACA,kBAAA,CACA,UCrII,CDsIJ,oBAAA,CAIJ,sBACE,gBAAA,CAGF,sBACE,eAAA",sourcesContent:["@import 'color.scss';\n@import '@code-dot-org/component-library-styles/font';\n@import 'style-constants';\n\n.pageContainer {\n display: flex;\n flex-direction: row;\n min-height: 100%;\n}\n\n.content {\n flex-grow: 1;\n padding: 20px;\n overflow-y: auto;\n}\n\n.navContainer {\n background-color: $neutral_dark;\n display: flex;\n position: relative;\n padding-left: 64px;\n overflow-x: auto;\n\n a.linkContainer {\n white-space: nowrap;\n text-decoration: none;\n background-color: $neutral_dark70;\n color: $neutral_white;\n font-size: 16px;\n font-weight: 600;\n margin: 10px 8px 0 0;\n padding: 0 10px;\n border-radius: 4px 4px 0 0;\n }\n\n a.activeLinkContainer {\n background-color: $neutral_white;\n color: #007785;\n }\n\n .link {\n height: 40px;\n display: flex;\n align-items: center;\n text-align: center;\n }\n}\n\n.dashboardPage {\n max-width: $content-width;\n padding: 10px 64px 64px 64px;\n}\n\n.text {\n font-style: italic;\n text-align: center;\n padding-top: 10px;\n}\n\n.emptyClassroom {\n text-align: center;\n max-width: 538px;\n margin: 104px auto 82px auto;\n}\n\n.emptyClassroomProgress {\n text-align: center;\n max-width: 538px;\n margin: auto;\n}\n\n.emptyClassroomDiv {\n margin: 24px 64px 82px 64px;\n text-align: center;\n}\n\n.emptyClassroomImage {\n height: 200px;\n align-items: end;\n display: flex;\n justify-content: center;\n}\n\n.header {\n display: flex;\n justify-content: space-between;\n\n &Container {\n padding: 0 64px;\n\n & h1 {\n font-family: $barlowSemiCondensed-medium;\n font-weight: 600;\n font-size: 34px;\n color: $darkest_gray;\n line-height: 42px;\n margin-top: 18px;\n }\n }\n\n &Link {\n margin-top: 12px;\n\n &Chevron {\n margin-inline-end: 8px;\n color: $light_secondary_500;\n\n &:hover,\n :active,\n :visited,\n :focus-visible {\n color: $light_secondary_500;\n }\n }\n }\n\n &Curriculum {\n margin-bottom: 8px;\n }\n\n &RightColumn {\n display: flex;\n flex-direction: column-reverse;\n }\n\n &ButtonSection {\n display: flex;\n margin-bottom: 5px;\n }\n}\n\n.navLink {\n display: inline-block;\n background-color: $purple;\n color: $white;\n text-align: center;\n padding: 10px 20px;\n border-radius: 5px;\n text-decoration: none;\n height: auto;\n line-height: 24px;\n font-weight: 600;\n\n &:hover {\n background-color: $brand_secondary_dark;\n color: $white;\n text-decoration: none;\n }\n\n &:focus {\n outline: $brand_primary_default solid 2px;\n outline-offset: 2px;\n color: $white;\n text-decoration: none;\n }\n}\n\n.topPadding {\n padding-top: 24px;\n}\n\n.progressHeaderV1 {\n text-align: left;\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","// Common styles and measures accessible from all stylesheets\n\n// Height of workspace headers (above actual blockly/droplet space, beneath\n// site header)\n$workspace-headers-height: 30px;\n\n// Width of horizontal and vertical resize bars\n$resize-bar-width: 13px;\n\n// Opacity of elements that are dragged out to be deleted\n$delete-opacity: 0.5;\n\n// Width of pegasus content as of 2017 redesign\n$content-width: 970px;\n","// Common site-wide fonts, put here for easy access from all scss files\n\n// Please note (!): use only single quotes (' ') for strings (!) to allow our custom converter to work properly.\n// This file is being transpiled to js object.\n// (So it can be used in jsx/tsx files for inline styles. This is made mostly for legacy.\n// Try to avoid use of inline styles if you're creating new component).\n// Keeping that in mind -\n\n/* stylelint-disable import-notation */\n\n$figtree-font: 'Figtree';\n$noto-sans-fonts: 'Noto Sans', 'Noto Sans Math', 'Noto Sans Arabic',\n 'Noto Sans Armenian', 'Noto Sans Bengali', 'Noto Sans SC', 'Noto Sans TC',\n 'Noto Sans Devanagari', 'Noto Sans Georgian', 'Noto Sans Hebrew',\n 'Noto Sans JP', 'Noto Sans Kannada', 'Noto Sans Khmer', 'Noto Sans KR',\n 'Noto Sans Myanmar', 'Noto Sans Sinhala', 'Noto Sans Tamil',\n 'Noto Sans Telugu', 'Noto Sans Thai', 'Noto Sans Thaana';\n$main-font: $figtree-font, $noto-sans-fonts, sans-serif;\n$thin-font-weight: 100;\n$extra-light-font-weight: 200;\n$light-font-weight: 300;\n$regular-font-weight: 400;\n$medium-font-weight: 500;\n$semi-bold-font-weight: 600;\n$bold-font-weight: 700;\n$extra-bold-font-weight: 800;\n$black-font-weight: 900;\n\n@mixin main-font-thin {\n font-family: $main-font;\n font-weight: $thin-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-thin-italic {\n @include main-font-thin;\n font-style: italic;\n}\n\n@mixin main-font-extra-light {\n font-family: $main-font;\n font-weight: $extra-light-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-extra-light-italic {\n @include main-font-extra-light;\n font-style: italic;\n}\n\n@mixin main-font-light {\n font-family: $main-font;\n font-weight: $light-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-light-italic {\n @include main-font-light;\n font-style: italic;\n}\n\n@mixin main-font-regular {\n font-family: $main-font;\n font-weight: $regular-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-regular-italic {\n @include main-font-regular;\n font-style: italic;\n}\n\n@mixin main-font-medium {\n font-family: $main-font;\n font-weight: $medium-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-medium-italic {\n @include main-font-medium;\n font-style: italic;\n}\n\n@mixin main-font-semi-bold {\n font-family: $main-font;\n font-weight: $semi-bold-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-semi-bold-italic {\n @include main-font-semi-bold;\n font-style: italic;\n}\n\n@mixin main-font-bold {\n font-family: $main-font;\n font-weight: $bold-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-bold-italic {\n @include main-font-bold;\n font-style: italic;\n}\n\n@mixin main-font-extra-bold {\n font-family: $main-font;\n font-weight: $extra-bold-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-extra-bold-italic {\n @include main-font-extra-bold;\n font-style: italic;\n}\n\n@mixin main-font-black {\n font-family: $main-font;\n font-weight: $black-font-weight;\n font-style: normal;\n}\n\n@mixin main-font-black-italic {\n @include main-font-black;\n font-style: italic;\n}\n\n$barlowSemiCondensed-semibold: 'Barlow Semi Condensed Semibold',\n $noto-sans-fonts, sans-serif;\n$barlowSemiCondensed-medium: 'Barlow Semi Condensed Medium', $noto-sans-fonts,\n sans-serif;\n\n/*\n Font Awesome S3 Bucket URLs\n Current version: 6.6.0\n If you are changing the location of these files,\n see the readme in this directory for more detail on manual steps to take when uploading new files.\n */\n$font-awesome-core-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/fontawesome.min.css';\n$font-awesome-brands-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/brands.min.css';\n$font-awesome-solid-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/solid.min.css';\n$font-awesome-regular-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/regular.min.css';\n$font-awesome-v4-fonts-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/v4-font-face.min.css';\n$font-awesome-v4-shims-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/v4-shims.min.css';\n$font-awesome-v4-shims-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/v4-shims.min.css';\n$font-awesome-duotone-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/duotone.min.css';\n$font-awesome-custom-icons-url: 'https://dsco.code.org/assets/font-awesome-pro/1728421354/css/custom-icons.min.css';\n"],sourceRoot:""}]),___CSS_LOADER_EXPORT___.locals={pageContainer:"r148GL9rctMi8ic2Rxza",content:"vjcqcsC5UHnHu5fNdCXN",navContainer:"_ufMiRT2rImClZHTHXsY",linkContainer:"K4bOcbHynyN6DM_4XxwR",activeLinkContainer:"iFFFlUnwt7wjku1AH9l8",link:"_DQzQuZMqTQ4AaDj6ieA",dashboardPage:"XhiG1LHSFBpFTYIFpEDO",text:"dZ1cN21ftqwdzRMxDKWJ",emptyClassroom:"RRKm8HObqgvgLIDRnrnH",emptyClassroomProgress:"L2s7SrfstbuNPJP2R5Eg",emptyClassroomDiv:"MAwG_rhRKPg2Qr3Aq48_",emptyClassroomImage:"TB231FCuQzi61ewVP13q",header:"OfTGsPghs6k9isqTaBNW",headerContainer:"d0KdEv8rn7naofB9JwqY",headerLink:"n7rpdhnG6mIZfM70nNjU",headerLinkChevron:"l8gYGLAH5fYSyauaGD6j",headerCurriculum:"_VkciawW6i8aF2Krqekv",headerRightColumn:"r5TWkKyCpKGzB7lR2OQi",headerButtonSection:"l1ZcMn86WVEtMfMtwzB8",navLink:"GstPHhi_pXMjWq6OgTwb",topPadding:"nOQrendyXUo0K9rMKg74",progressHeaderV1:"PoYjg6Og_fERdeAt26oG"};const __WEBPACK_DEFAULT_EXPORT__=___CSS_LOADER_EXPORT___},"./node_modules/nise sync recursive":module=>{function webpackEmptyContext(req){var e=new Error("Cannot find module '"+req+"'");throw e.code="MODULE_NOT_FOUND",e}webpackEmptyContext.keys=()=>[],webpackEmptyContext.resolve=webpackEmptyContext,webpackEmptyContext.id="./node_modules/nise sync recursive",module.exports=webpackEmptyContext},"./src/sharedComponents/userFeedback/FeedbackBanner.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__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_FeedbackBanner_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/userFeedback/FeedbackBanner.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_FeedbackBanner_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_FeedbackBanner_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_FeedbackBanner_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_FeedbackBanner_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/content-container.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__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_content_container_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/content-container.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_content_container_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_content_container_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_content_container_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_content_container_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__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_age_gated_sections_modal_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/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.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_age_gated_sections_modal_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_age_gated_sections_modal_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_age_gated_sections_modal_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_age_gated_sections_modal_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/studioHomepages/borderedCallToAction.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__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_borderedCallToAction_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/studioHomepages/borderedCallToAction.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_borderedCallToAction_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_borderedCallToAction_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_borderedCallToAction_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_borderedCallToAction_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/templates/teacherDashboard/teacher-dashboard.module.scss":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__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_teacher_dashboard_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/teacherDashboard/teacher-dashboard.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_teacher_dashboard_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_teacher_dashboard_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_teacher_dashboard_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_teacher_dashboard_module_scss__WEBPACK_IMPORTED_MODULE_6__.A.locals:void 0},"./src/redux/lti/ltiFeedbackReducer.ts":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__assign.apply(this,arguments)},__awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))((function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator.throw(value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):function adopt(value){return value instanceof P?value:new P((function(resolve){resolve(value)}))}(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())}))},__generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function step(op){if(f)throw new TypeError("Generator is already executing.");for(;g&&(g=0,op[0]&&(_=0)),_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=_.trys,(t=t.length>0&&t[t.length-1])||6!==op[0]&&2!==op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createLtiFeedback=exports.fetchLtiFeedback=void 0,exports.ltiFeedbackReducer=function ltiFeedbackReducer(state,action){switch(action.type){case LTI_FEEDBACK_FETCH_REQUEST:return __assign(__assign({},state),{isLoading:!0});case LTI_FEEDBACK_FETCH_SUCCESS:return __assign(__assign({},state),{isLoading:!1,ltiFeedback:action.ltiFeedback});case LTI_FEEDBACK_FETCH_FAILURE:return __assign(__assign({},state),{isLoading:!1,error:action.error});case LTI_FEEDBACK_CREATE_REQUEST:return __assign(__assign({},state),{isLoading:!0});case LTI_FEEDBACK_CREATE_SUCCESS:return __assign(__assign({},state),{isLoading:!1,ltiFeedback:action.ltiFeedback});case LTI_FEEDBACK_CREATE_FAILURE:return __assign(__assign({},state),{isLoading:!1,error:action.error});default:return state}};var AuthenticityTokenStore_1=__webpack_require__("./src/util/AuthenticityTokenStore.ts"),LTI_FEEDBACK_FETCH_REQUEST="lti/feedback/fetchRequest",LTI_FEEDBACK_FETCH_SUCCESS="lti/feedback/fetchSuccess",LTI_FEEDBACK_FETCH_FAILURE="lti/feedback/fetchFailure",LTI_FEEDBACK_CREATE_REQUEST="lti/feedback/createRequest",LTI_FEEDBACK_CREATE_SUCCESS="lti/feedback/createSuccess",LTI_FEEDBACK_CREATE_FAILURE="lti/feedback/createFailure";exports.fetchLtiFeedback=function(dispatch){dispatch({type:LTI_FEEDBACK_FETCH_REQUEST}),fetch("/lti/v1/feedback",{method:"GET",headers:{"Content-Type":"application/json"}}).then((function(response){if(!response.ok)throw new Error("Failed to fetch feedback");return response.json()})).then((function(ltiFeedback){dispatch({type:LTI_FEEDBACK_FETCH_SUCCESS,ltiFeedback})})).catch((function(error){dispatch({type:LTI_FEEDBACK_FETCH_FAILURE,error:error instanceof Error?error.message:"An error occurred"})}))};exports.createLtiFeedback=function(dispatch,ltiFeedback){return __awaiter(void 0,void 0,void 0,(function(){var _a,_b,_c,_d,_e;return __generator(this,(function(_f){switch(_f.label){case 0:return dispatch({type:LTI_FEEDBACK_CREATE_REQUEST}),_a=fetch,_b=["/lti/v1/feedback"],_d={method:"POST"},_e={"Content-Type":"application/json"},_c="X-CSRF-Token",[4,(0,AuthenticityTokenStore_1.getAuthenticityToken)()];case 1:return _a.apply(void 0,_b.concat([(_d.headers=(_e[_c]=_f.sent(),_e),_d.body=JSON.stringify({lti_feedback:ltiFeedback}),_d)])).then((function(response){if(!response.ok)throw new Error("Failed to create feedback");return response.json()})).then((function(ltiFeedback){dispatch({type:LTI_FEEDBACK_CREATE_SUCCESS,ltiFeedback})})).catch((function(error){dispatch({type:LTI_FEEDBACK_CREATE_FAILURE,error:error instanceof Error?error.message:"An error occurred"})})),[2]}}))}))}},"./src/sharedComponents/userFeedback/FeedbackBanner.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.BANNER_STATUS=void 0;var react_1=__importDefault(__webpack_require__("./node_modules/react/index.js")),react_bootstrap_1=__webpack_require__("./node_modules/react-bootstrap/es/index.js"),FontAwesome_1=__importDefault(__webpack_require__("./src/legacySharedComponents/FontAwesome.jsx"));__webpack_require__("./src/sharedComponents/userFeedback/FeedbackBanner.scss"),exports.BANNER_STATUS=Object.freeze({UNSET:"",UNAVAILABLE:"unavailable",UNANSWERED:"unanswered",ANSWERED:"answered",PREVIOUSLY_ANSWERED:"previously_answered",CLOSED:"closed"});var FeedbackBanner=function(_a){var alertKey=_a.alertKey,answerStatus=_a.answerStatus,answer=_a.answer,close=_a.close,isLoading=_a.isLoading,closeLabel=_a.closeLabel,question=_a.question,positiveAnswer=_a.positiveAnswer,negativeAnswer=_a.negativeAnswer,shareMore=_a.shareMore,shareMoreLink=_a.shareMoreLink,shareMoreLinkText=_a.shareMoreLinkText,isBannerVisible=react_1.default.useMemo((function(){return[exports.BANNER_STATUS.UNANSWERED,exports.BANNER_STATUS.ANSWERED].includes(answerStatus)}),[answerStatus]);return react_1.default.createElement(react_bootstrap_1.Fade,{in:isBannerVisible,unmountOnExit:!0},react_1.default.createElement(react_bootstrap_1.Alert,{key:alertKey,bsStyle:"info",className:"feedback-banner","aria-labelledby":"feedback-banner-title",closeLabel,onDismiss:answerStatus===exports.BANNER_STATUS.ANSWERED?close:void 0},react_1.default.createElement("span",{className:"feedback-banner-greeting"},react_1.default.createElement(FontAwesome_1.default,{icon:"hand-wave",className:"fa-fw",title:"","aria-hidden":"true"})),react_1.default.createElement(react_bootstrap_1.Fade,{in:!isLoading},answerStatus===exports.BANNER_STATUS.UNANSWERED?react_1.default.createElement("span",null,react_1.default.createElement("span",{id:"feedback-banner-title",className:"feedback-title","aria-hidden":"true"},question),react_1.default.createElement("span",{className:"feedback"},react_1.default.createElement("button",{type:"button",title:positiveAnswer,onClick:function(){return answer(!0)}},react_1.default.createElement(FontAwesome_1.default,{icon:"thumbs-o-up",className:"fa-fw",title:"","aria-hidden":"true"})),react_1.default.createElement("button",{type:"button",title:negativeAnswer,onClick:function(){return answer(!1)}},react_1.default.createElement(FontAwesome_1.default,{icon:"thumbs-o-down",className:"fa-fw",title:"","aria-hidden":"true"})))):react_1.default.createElement("span",{className:"share-more"},react_1.default.createElement("span",{id:"feedback-banner-title","aria-hidden":"true"},shareMore),react_1.default.createElement("span",{"aria-hidden":"true"}," "),react_1.default.createElement("a",{id:"feedback-banner-share-more-link",href:shareMoreLink,target:"_blank",rel:"noreferrer"},shareMoreLinkText)))))};exports.default=FeedbackBanner;try{FeedbackBanner.displayName="FeedbackBanner",FeedbackBanner.__docgenInfo={description:"",displayName:"FeedbackBanner",props:{alertKey:{defaultValue:null,description:"",name:"alertKey",required:!0,type:{name:"string"}},answerStatus:{defaultValue:null,description:"",name:"answerStatus",required:!0,type:{name:"string"}},answer:{defaultValue:null,description:"",name:"answer",required:!0,type:{name:"(satisfied: boolean) => void"}},close:{defaultValue:null,description:"",name:"close",required:!0,type:{name:"() => void"}},isLoading:{defaultValue:null,description:"",name:"isLoading",required:!0,type:{name:"boolean"}},closeLabel:{defaultValue:null,description:"",name:"closeLabel",required:!0,type:{name:"string"}},question:{defaultValue:null,description:"",name:"question",required:!0,type:{name:"string"}},positiveAnswer:{defaultValue:null,description:"",name:"positiveAnswer",required:!0,type:{name:"string"}},negativeAnswer:{defaultValue:null,description:"",name:"negativeAnswer",required:!0,type:{name:"string"}},shareMore:{defaultValue:null,description:"",name:"shareMore",required:!0,type:{name:"string"}},shareMoreLink:{defaultValue:null,description:"",name:"shareMoreLink",required:!0,type:{name:"string"}},shareMoreLinkText:{defaultValue:null,description:"",name:"shareMoreLinkText",required:!0,type:{name:"string"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/sharedComponents/userFeedback/FeedbackBanner.tsx#FeedbackBanner"]={docgenInfo:FeedbackBanner.__docgenInfo,name:"FeedbackBanner",path:"src/sharedComponents/userFeedback/FeedbackBanner.tsx#FeedbackBanner"})}catch(__react_docgen_typescript_loader_error){}},"./src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__read=this&&this.__read||function(o,n){var m="function"==typeof Symbol&&o[Symbol.iterator];if(!m)return o;var r,e,i=m.call(o),ar=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)ar.push(r.value)}catch(error){e={error}}finally{try{r&&!r.done&&(m=i.return)&&m.call(i)}finally{if(e)throw e.error}}return ar},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__importStar(__webpack_require__("./node_modules/react/index.js")),react_redux_1=__webpack_require__("./node_modules/react-redux/es/index.js"),ltiFeedbackReducer_1=__webpack_require__("./src/redux/lti/ltiFeedbackReducer.ts"),utils_1=__webpack_require__("./src/utils.js"),sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts"),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),FeedbackBanner_1=__importStar(__webpack_require__("./src/sharedComponents/userFeedback/FeedbackBanner.tsx")),LtiFeedbackBanner=function(){var currentUser=(0,react_redux_1.useSelector)((function(state){return state.currentUser})),key=(0,react_1.useMemo)((function(){return currentUser?"lti-fb-".concat(currentUser.uuid):""}),[currentUser]),_a=__read((0,react_1.useReducer)(ltiFeedbackReducer_1.ltiFeedbackReducer,{isLoading:!1}),2),_b=_a[0],isLoading=_b.isLoading,error=_b.error,ltiFeedback=_b.ltiFeedback,ltiFeedbackAction=_a[1],_c=__read((0,react_1.useState)((function(){return FeedbackBanner_1.BANNER_STATUS.UNSET})),2),status=_c[0],setStatus=_c[1];(0,react_1.useEffect)((function(){currentUser&¤tUser.isLti&¤tUser.isTeacher||setStatus(FeedbackBanner_1.BANNER_STATUS.UNAVAILABLE);var status=(0,utils_1.tryGetLocalStorage)(key,FeedbackBanner_1.BANNER_STATUS.UNSET);status===FeedbackBanner_1.BANNER_STATUS.UNAVAILABLE&&(status=FeedbackBanner_1.BANNER_STATUS.UNSET),!status&&(0,ltiFeedbackReducer_1.fetchLtiFeedback)(ltiFeedbackAction),setStatus(status)}),[currentUser,key]),(0,react_1.useEffect)((function(){key&&(0,utils_1.trySetLocalStorage)(key,status)}),[key,status]),(0,react_1.useEffect)((function(){null===ltiFeedback?setStatus(FeedbackBanner_1.BANNER_STATUS.UNANSWERED):ltiFeedback&&setStatus(FeedbackBanner_1.BANNER_STATUS.ANSWERED)}),[ltiFeedback]),(0,react_1.useEffect)((function(){error&&setStatus(FeedbackBanner_1.BANNER_STATUS.UNSET)}),[error]);return react_1.default.createElement(FeedbackBanner_1.default,{alertKey:key,answerStatus:status,answer:function(satisfied){return(0,ltiFeedbackReducer_1.createLtiFeedback)(ltiFeedbackAction,{satisfied})},close:function(){return setStatus(FeedbackBanner_1.BANNER_STATUS.CLOSED)},isLoading,closeLabel:locale_1.default.closeDialog(),question:locale_1.default.lti_feedbackBanner_question(),positiveAnswer:locale_1.default.lti_feedbackBanner_answer_positive(),negativeAnswer:locale_1.default.lti_feedbackBanner_answer_negative(),shareMore:locale_1.default.lti_feedbackBanner_shareMore_text(),shareMoreLink:sharedConstants_1.LmsLinks.ADDITIONAL_FEEDBACK_URL,shareMoreLinkText:locale_1.default.lti_feedbackBanner_shareMore_link()})};exports.default=LtiFeedbackBanner;try{LtiFeedbackBanner.displayName="LtiFeedbackBanner",LtiFeedbackBanner.__docgenInfo={description:"LtiFeedbackBanner component\nThis component is responsible for displaying the LMS Feedback banner for LTI teachers.\nThe banner asks the teacher for feedback and provides options to respond.\nThe banner's visibility and state are managed through local storage and state variables.",displayName:"LtiFeedbackBanner",props:{}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx#LtiFeedbackBanner"]={docgenInfo:LtiFeedbackBanner.__docgenInfo,name:"LtiFeedbackBanner",path:"src/simpleSignUp/lti/feedback/LtiFeedbackBanner.tsx#LtiFeedbackBanner"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/GlobalEditionWrapper.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__assign.apply(this,arguments)},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.GlobalEditionWrapper=void 0;var react_1=__importDefault(__webpack_require__("./node_modules/react/index.js")),globalEdition_1=__webpack_require__("./src/util/globalEdition.ts"),GlobalEditionWrapper=function(_a){var component=_a.component,componentId=_a.componentId,_b=_a.props,props=void 0===_b?{}:_b,pageConfig=((0,globalEdition_1.currentGlobalConfiguration)().pages||[]).filter((function(filterInfo){return RegExp("^/global/.*"+filterInfo.path+"(?:/.*)?").test(window.location.pathname)&&componentId in filterInfo.components})).slice(-1)[0],visible=!pageConfig||!1!==pageConfig.components[componentId],GlobalWrappedComponent=visible?component:function(){return null},wrappedProps=visible?pageConfig&&pageConfig.components[componentId]?__assign(__assign({},props),pageConfig.components[componentId]):props:{};return react_1.default.createElement(GlobalWrappedComponent,__assign({},wrappedProps))};exports.GlobalEditionWrapper=GlobalEditionWrapper,exports.default=exports.GlobalEditionWrapper;try{GlobalEditionWrapper.displayName="GlobalEditionWrapper",GlobalEditionWrapper.__docgenInfo={description:'Provides a wrapper around an existing component that allows it to be\nconfigured via a Global Edition configuration.\n\nThe global edition configurations are in the config directory at the\nroot of the repository. For instance: config/global_editions/fa.yml\n\nEssentially you can take an existing component like <Foo> and then wrap it\nas such:\n\n<GlobalEditionWrapper\n component={Foo}\n componentId="Foo"\n props={{\n bar: "baz",\n }}\n/>\n\nWhere the props go into the props property of the wrapper. The `componentId`\nis the name of the component which is then used to refer to it in the\nregional configuration.\n\nFor instance, in the config/global_editions/india.yml (let\'s say) we could\nhave:\n\n```\n pages:\n - path: /\n components:\n Foo: false\n```\n\nWhich will render an "EmptyComponent" and essentially hide the component when\nviewing any page in the "india" region.\n\nWe can, instead, just override properties:\n\n```\n pages:\n - path: /\n components:\n Foo:\n bar: chaz\n```\n\nThis means, in this region (as opposed to any other), the component will be\nrendered and visible, but with the \'bar\' property overriden.\n\nSee the \'pages\' section of an existing configuration for more information\non the format of the configuration and its use here.',displayName:"GlobalEditionWrapper",props:{component:{defaultValue:null,description:"",name:"component",required:!0,type:{name:"FunctionComponent<{}>"}},componentId:{defaultValue:null,description:"",name:"componentId",required:!0,type:{name:"string"}},props:{defaultValue:{value:"{}"},description:"",name:"props",required:!1,type:{name:"object"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/GlobalEditionWrapper.tsx#GlobalEditionWrapper"]={docgenInfo:GlobalEditionWrapper.__docgenInfo,name:"GlobalEditionWrapper",path:"src/templates/GlobalEditionWrapper.tsx#GlobalEditionWrapper"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgeGatedSectionsBanner=void 0;var react_1=__importStar(__webpack_require__("./node_modules/react/index.js")),react_redux_1=__webpack_require__("./node_modules/react-redux/es/index.js"),AnalyticsConstants_1=__webpack_require__("./src/metrics/AnalyticsConstants.js"),AnalyticsReporter_1=__importDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),Notification_1=__importStar(__webpack_require__("./src/sharedComponents/Notification.jsx")),AgeGatedSectionsModal_1=__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx"),AgeGatedSectionsBanner=function(_a){var _b,_c,toggleModal=_a.toggleModal,modalOpen=_a.modalOpen,ageGatedSections=_a.ageGatedSections,currentUser=(0,react_redux_1.useSelector)((function(state){return state.currentUser})),userId=currentUser.userId,usState=null===(_b=ageGatedSections[0])||void 0===_b?void 0:_b.atRiskAgeGatedUsState,numberOfAgeGatedSections=ageGatedSections.length;(0,react_1.useEffect)((function(){var eventName,payload;eventName=AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_BANNER_SHOWN,void 0===(payload={user_id:userId,number_of_age_gated_sections:numberOfAgeGatedSections,us_state:usState})&&(payload={}),AnalyticsReporter_1.default.sendEvent(eventName,payload)}),[userId,numberOfAgeGatedSections,usState]);var startDate=null===(_c=ageGatedSections[0])||void 0===_c?void 0:_c.atRiskAgeGatedDate,startDateText=(null==startDate?void 0:startDate.toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}))||"???";return react_1.default.createElement("div",{id:"uitest-age-gated-sections-banner"},react_1.default.createElement(Notification_1.default,{type:Notification_1.NotificationType.warning,notice:locale_1.default.headsUp(),details:locale_1.default.childAccountPolicy_ageGatedSectionsWarning({startDate:startDateText}),buttonText:locale_1.default.childAccountPolicy_ageGatedSectionsWarning_button(),buttonLink:"#",onButtonClick:toggleModal,dismissible:!1}),modalOpen&&react_1.default.createElement(AgeGatedSectionsModal_1.AgeGatedSectionsModal,{isOpen:modalOpen,onClose:toggleModal,ageGatedSections}))};exports.AgeGatedSectionsBanner=AgeGatedSectionsBanner;try{AgeGatedSectionsBanner.displayName="AgeGatedSectionsBanner",AgeGatedSectionsBanner.__docgenInfo={description:"",displayName:"AgeGatedSectionsBanner",props:{toggleModal:{defaultValue:null,description:"",name:"toggleModal",required:!0,type:{name:"() => void"}},modalOpen:{defaultValue:null,description:"",name:"modalOpen",required:!0,type:{name:"boolean"}},ageGatedSections:{defaultValue:null,description:"",name:"ageGatedSections",required:!0,type:{name:"Section[]"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx#AgeGatedSectionsBanner"]={docgenInfo:AgeGatedSectionsBanner.__docgenInfo,name:"AgeGatedSectionsBanner",path:"src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsBanner.tsx#AgeGatedSectionsBanner"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgeGatedSectionsModal=void 0;var link_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/link/index.js")),typography_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js")),react_1=__importStar(__webpack_require__("./node_modules/react/index.js")),react_redux_1=__webpack_require__("./node_modules/react-redux/es/index.js"),AnalyticsConstants_1=__webpack_require__("./src/metrics/AnalyticsConstants.js"),AnalyticsReporter_1=__importDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),AgeGatedSectionsTable_1=__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx"),sharedConstants_1=__webpack_require__("./generated-scripts/sharedConstants.ts"),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),BaseDialog_1=__importDefault(__webpack_require__("./src/templates/BaseDialog.jsx")),age_gated_sections_modal_module_scss_1=__importDefault(__webpack_require__("./src/templates/policy_compliance/AgeGatedSectionsModal/age-gated-sections-modal.module.scss")),AgeGatedSectionsModal=function(_a){var _b,_c,isOpen=_a.isOpen,onClose=_a.onClose,ageGatedSections=_a.ageGatedSections,currentUser=(0,react_redux_1.useSelector)((function(state){return state.currentUser})),reportEvent=function(eventName,payload){void 0===payload&&(payload={}),AnalyticsReporter_1.default.sendEvent(eventName,payload)},helpDocsUrl=sharedConstants_1.CapLinks.PARENTAL_CONSENT_GUIDE_URL,userId=currentUser.userId,usState=null===(_b=ageGatedSections[0])||void 0===_b?void 0:_b.atRiskAgeGatedUsState,modalClosed=function(){reportEvent(AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_MODAL_CLOSED,{user_id:userId,us_state:usState}),onClose()};(0,react_1.useEffect)((function(){reportEvent(AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_MODAL_SHOWN,{user_id:userId,us_state:usState})}),[userId,usState]);var startDate=null===(_c=ageGatedSections.find((function(section){return section.atRiskAgeGatedDate})))||void 0===_c?void 0:_c.atRiskAgeGatedDate,startDateText=(null==startDate?void 0:startDate.toLocaleDateString("en-US",{year:"numeric",month:"2-digit",day:"2-digit"}))||"???";return react_1.default.createElement(BaseDialog_1.default,{isOpen,handleClose:modalClosed,useUpdatedStyles:!0,fixedWidth:800},react_1.default.createElement("div",{className:age_gated_sections_modal_module_scss_1.default.modalContainer,"data-testid":"age-gated-sections-modal",id:"uitest-age-gated-sections-modal"},react_1.default.createElement("div",null,react_1.default.createElement(typography_1.default,{semanticTag:"h2",visualAppearance:"heading-md",className:age_gated_sections_modal_module_scss_1.default.modalHeader},locale_1.default.childAccountPolicy_ageGatedSectionsModal_header()),react_1.default.createElement("hr",null),react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},locale_1.default.childAccountPolicy_ageGatedSectionsModal_notice({startDate:startDateText})),react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},react_1.default.createElement("strong",null,locale_1.default.childAccountPolicy_ageGatedSectionsModal_action())),react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},react_1.default.createElement(link_1.default,{href:helpDocsUrl,onClick:function(){reportEvent(AnalyticsConstants_1.EVENTS.CAP_STUDENT_WARNING_LINK_CLICKED,{user_id:userId,us_state:usState})},openInNewTab:!0},locale_1.default.childAccountPolicy_ageGatedSectionsModal_readMore())),react_1.default.createElement(AgeGatedSectionsTable_1.AgeGatedSectionsTable,{ageGatedSections}),react_1.default.createElement("hr",null),react_1.default.createElement("div",{className:age_gated_sections_modal_module_scss_1.default.modalButton},react_1.default.createElement("button",{type:"button",onClick:modalClosed},locale_1.default.closeDialog())))))};exports.AgeGatedSectionsModal=AgeGatedSectionsModal;try{AgeGatedSectionsModal.displayName="AgeGatedSectionsModal",AgeGatedSectionsModal.__docgenInfo={description:"",displayName:"AgeGatedSectionsModal",props:{onClose:{defaultValue:null,description:"",name:"onClose",required:!0,type:{name:"() => void"}},isOpen:{defaultValue:null,description:"",name:"isOpen",required:!0,type:{name:"boolean"}},ageGatedSections:{defaultValue:null,description:"",name:"ageGatedSections",required:!0,type:{name:"Section[]"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx#AgeGatedSectionsModal"]={docgenInfo:AgeGatedSectionsModal.__docgenInfo,name:"AgeGatedSectionsModal",path:"src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsModal.tsx#AgeGatedSectionsModal"})}catch(__react_docgen_typescript_loader_error){}},"./src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx":function(__unused_webpack_module,exports,__webpack_require__){"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++)for(var p in s=arguments[i])Object.prototype.hasOwnProperty.call(s,p)&&(t[p]=s[p]);return t},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}:function(o,v){o.default=v}),__importStar=this&&this.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(null!=mod)for(var k in mod)"default"!==k&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result},__read=this&&this.__read||function(o,n){var m="function"==typeof Symbol&&o[Symbol.iterator];if(!m)return o;var r,e,i=m.call(o),ar=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)ar.push(r.value)}catch(error){e={error}}finally{try{r&&!r.done&&(m=i.return)&&m.call(i)}finally{if(e)throw e.error}}return ar},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.AgeGatedSectionsTable=void 0;var link_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/link/index.js")),typography_1=__importDefault(__webpack_require__("../frontend/packages/component-library/dist/cjs/typography/index.js")),lodash_1=__webpack_require__("./node_modules/lodash/lodash.js"),react_1=__importDefault(__webpack_require__("./node_modules/react/index.js")),Table=__importStar(__webpack_require__("./node_modules/reactabular-table/dist/index.js")),sort=__importStar(__webpack_require__("./node_modules/sortabular/dist/index.js")),AnalyticsConstants_1=__webpack_require__("./src/metrics/AnalyticsConstants.js"),AnalyticsReporter_1=__importDefault(__webpack_require__("./src/metrics/AnalyticsReporter.js")),tableConstants_1=__webpack_require__("./src/templates/tables/tableConstants.js"),wrapped_sortable_1=__importDefault(__webpack_require__("./src/templates/tables/wrapped_sortable.js")),urlHelpers_1=__webpack_require__("./src/templates/teacherDashboard/urlHelpers.js"),locale_1=__importDefault(__webpack_require__("./src/util/locale-do-not-import.js")),AgeGatedSectionsTable=function(_a){var ageGatedSections=_a.ageGatedSections,_b=__read(react_1.default.useState({0:{direction:"asc",position:0}}),2),sortingColumns=_b[0],setSortingColumns=_b[1],sortable=(0,wrapped_sortable_1.default)((function(){return sortingColumns}),(function(selectedColumn){setSortingColumns(sort.byColumn({sortingColumns,sortingOrder:{FIRST:"asc",asc:"desc",desc:"asc"},selectedColumn}))}),tableConstants_1.sortableOptions),sectionFormatter=function(name,_a){var rowData=_a.rowData;return react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},react_1.default.createElement(link_1.default,{href:(0,urlHelpers_1.teacherDashboardUrl)(rowData.section.id),onClick:function(){var eventName,payload;eventName=AnalyticsConstants_1.EVENTS.CAP_AGE_GATED_SECTIONS_TABLE_SECTION_NAME_LINK_CLICKED,void 0===(payload={section_id:rowData.section.id,us_state:rowData.section.atRiskAgeGatedUsState})&&(payload={}),AnalyticsReporter_1.default.sendEvent(eventName,payload)},openInNewTab:!0},name))},gradesFormatter=function(grades){return react_1.default.createElement(typography_1.default,{semanticTag:"p",visualAppearance:"body-two"},grades&&grades.join(", "))},gradesColumn=function(){return{property:"grades",header:{label:locale_1.default.childAccountPolicy_ageGatedSectionsTable_gradesHeader(),props:{style:__assign({},tableConstants_1.tableLayoutStyles.headerCell)}},cell:{formatters:[gradesFormatter],props:{style:__assign({},tableConstants_1.tableLayoutStyles.cell)}}}},columns=[function(){return{property:"name",header:{label:locale_1.default.childAccountPolicy_ageGatedSectionsTable_sectionHeader(),props:{style:__assign({},tableConstants_1.tableLayoutStyles.headerCell)},transforms:[sortable]},cell:{formatters:[sectionFormatter],props:{style:__assign({},tableConstants_1.tableLayoutStyles.cell)}}}}(),gradesColumn()],sectionData=ageGatedSections.map((function(section){return{id:section.id,section,grades:section.grades,name:section.name}})),sortedData=sort.sorter({columns,sortingColumns,sort:lodash_1.orderBy})(sectionData);return react_1.default.createElement("div",null,sortedData&&0!==sortedData.length&&react_1.default.createElement(Table.Provider,{columns,style:tableConstants_1.tableLayoutStyles.table,"data-testid":"uitest-age-gated-sections-table"},react_1.default.createElement(Table.Header,null),react_1.default.createElement(Table.Body,{rows:sortedData,rowKey:"id"})))};exports.AgeGatedSectionsTable=AgeGatedSectionsTable;try{AgeGatedSectionsTable.displayName="AgeGatedSectionsTable",AgeGatedSectionsTable.__docgenInfo={description:"",displayName:"AgeGatedSectionsTable",props:{ageGatedSections:{defaultValue:null,description:"",name:"ageGatedSections",required:!0,type:{name:"Section[]"}}}},"undefined"!=typeof STORYBOOK_REACT_CLASSES&&(STORYBOOK_REACT_CLASSES["src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx#AgeGatedSectionsTable"]={docgenInfo:AgeGatedSectionsTable.__docgenInfo,name:"AgeGatedSectionsTable",path:"src/templates/policy_compliance/AgeGatedSectionsModal/AgeGatedSectionsTable.tsx#AgeGatedSectionsTable"})}catch(__react_docgen_typescript_loader_error){}}}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFNBQUYsR0FDQSxpQkFBQStjLGtCQUFrQnVCLGNBSTNCM0YsS0FBTSxDQUNKQyxXQUFZLENBQUNpWSxpQkFDYnBxQixNQUFPLENBQ0x6RyxNQUFPLFNBQUYsR0FDQSxpQkFBQStjLGtCQUFrQnBFLFFBSy9CLEVBRU1hLFFBckdHLENBbURhLFdBQ3BCLE1BQU8sQ0FDTGpCLFNBQVUsT0FDVkMsT0FBUSxDQUNOQyxNQUFPLGlCQUFLdVkseURBQ1p2cUIsTUFBTyxDQUNMekcsTUFBTyxTQUFGLEdBQ0EsaUJBQUErYyxrQkFBa0J1QixhQUd6QjVGLFdBQVksQ0FBQ0osV0FFZkssS0FBTSxDQUNKQyxXQUFZLENBQUMrWCxrQkFDYmxxQixNQUFPLENBQ0x6RyxNQUFPLFNBQUYsR0FDQSxpQkFBQStjLGtCQUFrQnBFLFFBSy9CLENBeEVVc1ksR0FBaUJILGdCQXNHckJsWixZQUF5QjVILGlCQUFpQmhPLEtBQUksU0FBQWlRLFNBQ2xELE1BQU8sQ0FDTDNSLEdBQUkyUixRQUFRM1IsR0FDWjJSLFFBQ0E0TCxPQUFRNUwsUUFBUTRMLE9BQ2hCeGhCLEtBQU00VixRQUFRNVYsS0FFbEIsSUFDTTYwQixXQUFhamQsS0FBSzBGLE9BQU8sQ0FDN0JILFFBQ0FoQyxlQUNBdkQsS0FBTSxTQUFBOEYsU0FIVzlGLENBSWhCMkQsYUFDSCxPQUNFLHlDQUNHc1osWUFBb0MsSUFBdEJBLFdBQVczMkIsUUFDeEIsOEJBQUN5WixNQUFNaUcsU0FBUSxDQUNiVCxRQUNBeFosTUFBTyxpQkFBQStjLGtCQUFrQjZCLE1BQUssY0FFbEIsbUNBRVosOEJBQUM1SyxNQUFNa0csT0FBTSxNQUNiLDhCQUFDbEcsTUFBTW1HLEtBQUksQ0FBQ0MsS0FBTThXLFdBQVk3VyxPQUFPLFFBSy9DLEVBdklhLFFBQUFtVyxzQkFBcUIsc0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2hhcmVkQ29tcG9uZW50cy9Ob3RpZmljYXRpb24uanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL1NwaW5uZXIuanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvQ29udGVudENvbnRhaW5lci5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zdHVkaW9Ib21lcGFnZXMvQm9yZGVyZWRDYWxsVG9BY3Rpb24uanN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvc3R1ZGlvSG9tZXBhZ2VzL0NvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbi5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zdHVkaW9Ib21lcGFnZXMvU2V0VXBTZWN0aW9ucy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9zdHVkaW9Ib21lcGFnZXMvVGVhY2hlclNlY3Rpb25zLmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvQWRkU2VjdGlvbkRpYWxvZy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL093bmVkUGxTZWN0aW9uc1RhYmxlLmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvT3duZWRTZWN0aW9ucy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL093bmVkU2VjdGlvbnNUYWJsZS5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1BhZEFuZENlbnRlci5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1BhcnRpY2lwYW50VHlwZVBpY2tlci5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1Jvc3RlckRpYWxvZy5qc3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL1RlYWNoZXJEYXNoYm9hcmROYXZpZ2F0aW9uLmpzeCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvaW1wcmVzc2lvbkhlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL3NlY3Rpb25IZWxwZXJzLmpzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL3VzZXJGZWVkYmFjay9GZWVkYmFja0Jhbm5lci5zY3NzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3MiLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsLm1vZHVsZS5zY3NzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvc3R1ZGlvSG9tZXBhZ2VzL2JvcmRlcmVkQ2FsbFRvQWN0aW9uLm1vZHVsZS5zY3NzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyLWRhc2hib2FyZC5tb2R1bGUuc2NzcyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9ub2RlX21vZHVsZXMvbmlzZS8gc3luYyIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvc2hhcmVkQ29tcG9uZW50cy91c2VyRmVlZGJhY2svRmVlZGJhY2tCYW5uZXIuc2Nzcz9iZDc5Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3M/M2EzZCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3BvbGljeV9jb21wbGlhbmNlL0FnZUdhdGVkU2VjdGlvbnNNb2RhbC9hZ2UtZ2F0ZWQtc2VjdGlvbnMtbW9kYWwubW9kdWxlLnNjc3M/MGQ5NCIsIndlYnBhY2s6Ly9ibG9ja2x5LW1vb2MvLi9zcmMvdGVtcGxhdGVzL3N0dWRpb0hvbWVwYWdlcy9ib3JkZXJlZENhbGxUb0FjdGlvbi5tb2R1bGUuc2Nzcz80ODkxIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyLWRhc2hib2FyZC5tb2R1bGUuc2Nzcz9jOGM2Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9yZWR1eC9sdGkvbHRpRmVlZGJhY2tSZWR1Y2VyLnRzIiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy9zaGFyZWRDb21wb25lbnRzL3VzZXJGZWVkYmFjay9GZWVkYmFja0Jhbm5lci50c3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3NpbXBsZVNpZ25VcC9sdGkvZmVlZGJhY2svTHRpRmVlZGJhY2tCYW5uZXIudHN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvR2xvYmFsRWRpdGlvbldyYXBwZXIudHN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvcG9saWN5X2NvbXBsaWFuY2UvQWdlR2F0ZWRTZWN0aW9uc01vZGFsL0FnZUdhdGVkU2VjdGlvbnNCYW5uZXIudHN4Iiwid2VicGFjazovL2Jsb2NrbHktbW9vYy8uL3NyYy90ZW1wbGF0ZXMvcG9saWN5X2NvbXBsaWFuY2UvQWdlR2F0ZWRTZWN0aW9uc01vZGFsL0FnZUdhdGVkU2VjdGlvbnNNb2RhbC50c3giLCJ3ZWJwYWNrOi8vYmxvY2tseS1tb29jLy4vc3JjL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvQWdlR2F0ZWRTZWN0aW9uc1RhYmxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBSZWFjdFRvb2x0aXAgZnJvbSAncmVhY3QtdG9vbHRpcCc7XG5cbmltcG9ydCBmb250Q29uc3RhbnRzIGZyb20gJ0BjZG8vYXBwcy9mb250Q29uc3RhbnRzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQGNkby9hcHBzL2xlZ2FjeVNoYXJlZENvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCBGb250QXdlc29tZSBmcm9tICdAY2RvL2FwcHMvbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9Gb250QXdlc29tZSc7XG5pbXBvcnQgZmlyZWhvc2VDbGllbnQgZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvZmlyZWhvc2UnO1xuaW1wb3J0IGNvbG9yIGZyb20gJ0BjZG8vYXBwcy91dGlsL2NvbG9yJztcblxuZXhwb3J0IGNvbnN0IE5vdGlmaWNhdGlvblR5cGUgPSB7XG4gIGRlZmF1bHQ6ICdkZWZhdWx0JyxcbiAgaW5mb3JtYXRpb246ICdpbmZvcm1hdGlvbicsXG4gIHN1Y2Nlc3M6ICdzdWNjZXNzJyxcbiAgZmFpbHVyZTogJ2ZhaWx1cmUnLFxuICB3YXJuaW5nOiAnd2FybmluZycsXG4gIGNvdXJzZTogJ2NvdXJzZScsXG4gIGJ1bGxob3JuOiAnYnVsbGhvcm4nLFxuICBmZWVkYmFjazogJ2ZlZWRiYWNrJyxcbiAgYnVsbGhvcm5feWVsbG93OiAnYnVsbGhvcm5feWVsbG93JyxcbiAgY29sbGFib3JhdGU6ICdjb2xsYWJvcmF0ZScsXG59O1xuXG5jb25zdCBOb3RpZmljYXRpb24gPSAoe1xuICBidXR0b25DbGFzc05hbWUsXG4gIGJ1dHRvbkxpbmssXG4gIGJ1dHRvbnMsXG4gIGJ1dHRvbnNTdHlsZXMsXG4gIGJ1dHRvblRleHQsXG4gIGJ1dHRvbkNvbG9yLFxuICBjaGlsZHJlbixcbiAgZGV0YWlscyxcbiAgZGV0YWlsc0xpbmssXG4gIGRldGFpbHNMaW5rTmV3V2luZG93LFxuICBkZXRhaWxzTGlua1RleHQsXG4gIGRpc21pc3NpYmxlLFxuICBmaXJlaG9zZUFuYWx5dGljc0RhdGEsXG4gIGljb25TdHlsZXMsXG4gIGlzUnRsLFxuICBuZXdXaW5kb3csXG4gIG5vdGljZSxcbiAgb25EaXNtaXNzLFxuICBvbkJ1dHRvbkNsaWNrLFxuICByZXNwb25zaXZlU2l6ZSxcbiAgdHlwZSxcbiAgdG9vbHRpcFRleHQsXG4gIHdpZHRoLFxuICBjb2xvcnMsXG59KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuXG4gIGNvbnN0IGhhbmRsZURpc21pc3MgPSAoKSA9PiB7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgaWYgKG9uRGlzbWlzcykge1xuICAgICAgb25EaXNtaXNzKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGxvZ0Fubm91bmNlbWVudENsaWNrVG9GaXJlaG9zZSA9ICgpID0+IHtcbiAgICBsZXQgcmVjb3JkID0ge307XG5cbiAgICAvLyBPdXIgZmlyZWhvc2UgbG9nZ2luZyBzeXN0ZW0gaGFzIHN0YW5kYWxvbmUgZmllbGRzIGZvciBjb21tb25seSB1c2VkIG1ldGFkYXRhIChlZywgdXNlcl9pZCkuXG4gICAgLy8gSGVyZSwgd2Ugc2VwYXJhdGUgb3V0IHRob3NlIGZpZWxkcyBmcm9tIGFueSBvdGhlciBhbmFseXRpY3MgZGF0YSBwcm92aWRlZCBpbiB0aGUgZmlyZWhvc2VBbmFseXRpY3NEYXRhIHByb3AuXG4gICAgLy8gV2UgaW5jbHVkZSB0aGVzZSBwcm9wZXJ0aWVzIGluIHRoZSBkYXRhX2pzb24gb2JqZWN0IGFzIHdlbGwsIGluIGNhc2UgdGhhdCBpcyBlYXNpZXIgZm9yIG91ciBwcm9kdWN0IHRlYW0gdG8gdXNlLlxuICAgIFsndXNlcl9pZCcsICdzY3JpcHRfaWQnLCAnbGVzc29uX2lkJ10uZm9yRWFjaChmaXJlaG9zZU1ldGFkYXRhS2V5ID0+IHtcbiAgICAgIGlmIChmaXJlaG9zZU1ldGFkYXRhS2V5IGluIGZpcmVob3NlQW5hbHl0aWNzRGF0YSkge1xuICAgICAgICByZWNvcmRbZmlyZWhvc2VNZXRhZGF0YUtleV0gPVxuICAgICAgICAgIGZpcmVob3NlQW5hbHl0aWNzRGF0YVtmaXJlaG9zZU1ldGFkYXRhS2V5XTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlY29yZCA9IHtcbiAgICAgIC4uLnJlY29yZCxcbiAgICAgIHN0dWR5OiAnbm90aWZpY2F0aW9uX2VuZ2FnZW1lbnQnLFxuICAgICAgZXZlbnQ6ICdub3RpZmljYXRpb25fY2xpY2snLFxuICAgICAgZGF0YV9qc29uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIC4uLmZpcmVob3NlQW5hbHl0aWNzRGF0YSxcbiAgICAgICAgbm90aWNlOiBub3RpY2UsXG4gICAgICAgIGRldGFpbHM6IGRldGFpbHMsXG4gICAgICAgIGJ1dHRvbkxpbms6IGJ1dHRvbkxpbmssXG4gICAgICB9KSxcbiAgICB9O1xuXG4gICAgZmlyZWhvc2VDbGllbnQucHV0UmVjb3JkKHJlY29yZCwge2luY2x1ZGVVc2VySWQ6IHRydWV9KTtcbiAgfTtcblxuICBjb25zdCBvbkFubm91bmNlbWVudENsaWNrID0gKCkgPT4ge1xuICAgIC8vIExvZyB0byBGaXJlaG9zZVxuICAgIGlmIChmaXJlaG9zZUFuYWx5dGljc0RhdGEpIHtcbiAgICAgIGxvZ0Fubm91bmNlbWVudENsaWNrVG9GaXJlaG9zZSgpO1xuICAgIH1cblxuICAgIGlmIChvbkJ1dHRvbkNsaWNrKSB7XG4gICAgICBvbkJ1dHRvbkNsaWNrKCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRlc2t0b3AgPSByZXNwb25zaXZlU2l6ZSA9PT0gdW5kZWZpbmVkIHx8IHJlc3BvbnNpdmVTaXplID09PSAnbGcnO1xuXG4gIGNvbnN0IGljb25zID0ge1xuICAgIGluZm9ybWF0aW9uOiAnaW5mby1jaXJjbGUnLFxuICAgIHN1Y2Nlc3M6ICdjaGVjay1jaXJjbGUnLFxuICAgIGZhaWx1cmU6ICdleGNsYW1hdGlvbi10cmlhbmdsZScsXG4gICAgd2FybmluZzogJ2V4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICBidWxsaG9ybjogJ2J1bGxob3JuJyxcbiAgICBidWxsaG9ybl95ZWxsb3c6ICdidWxsaG9ybicsXG4gICAgZmVlZGJhY2s6ICdlbnZlbG9wZScsXG4gICAgY29sbGFib3JhdGU6ICd1c2VycycsXG4gIH07XG5cbiAgY29uc3QgbWFpblN0eWxlID0ge1xuICAgIC4uLnN0eWxlcy5tYWluLFxuICAgIGRpcmVjdGlvbjogaXNSdGwgPyAncnRsJyA6ICdsdHInLFxuICAgIHdpZHRoOiB3aWR0aCB8fCBzdHlsZXMubWFpbi53aWR0aCxcbiAgfTtcblxuICBpZiAoIW9wZW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbG9yU3R5bGVzID0gey4uLnN0eWxlcy5jb2xvcnNbdHlwZV0sIC4uLmNvbG9yc307XG5cbiAgY29uc3QgdG9vbHRpcElkID0gXy51bmlxdWVJZCgpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJhbm5vdW5jZW1lbnQtbm90aWZpY2F0aW9uXCI+XG4gICAgICA8ZGl2IHN0eWxlPXt7Li4uY29sb3JTdHlsZXMsIC4uLm1haW5TdHlsZX19PlxuICAgICAgICB7dHlwZSAhPT0gTm90aWZpY2F0aW9uVHlwZS5jb3Vyc2UgJiYgKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3suLi5zdHlsZXMuaWNvbkJveCwgLi4uY29sb3JTdHlsZXMsIC4uLmljb25TdHlsZXN9fT5cbiAgICAgICAgICAgIHtpY29uc1t0eXBlXSAmJiAoXG4gICAgICAgICAgICAgIDxGb250QXdlc29tZSBpY29uPXtpY29uc1t0eXBlXX0gc3R5bGU9e3N0eWxlcy5pY29ufSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmNvbnRlbnRCb3h9PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy53b3JkQm94fT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3suLi5jb2xvclN0eWxlcywgLi4uc3R5bGVzLm5vdGljZX19PlxuICAgICAgICAgICAgICB7bm90aWNlfVxuICAgICAgICAgICAgICB7dG9vbHRpcFRleHQgPyAoXG4gICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLXRpcCBkYXRhLWZvcj17dG9vbHRpcElkfSBzdHlsZT17c3R5bGVzLnRvb2x0aXB9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9udEF3ZXNvbWUgaWNvbj1cImluZm8tY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxSZWFjdFRvb2x0aXAgaWQ9e3Rvb2x0aXBJZH0gZWZmZWN0PVwic29saWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9e3N0eWxlcy50b29sdGlwVGV4dH0+e3Rvb2x0aXBUZXh0fTwvcD5cbiAgICAgICAgICAgICAgICAgIDwvUmVhY3RUb29sdGlwPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kZXRhaWxzfT5cbiAgICAgICAgICAgICAge2RldGFpbHN9XG4gICAgICAgICAgICAgIHtkZXRhaWxzTGlua1RleHQgJiYgZGV0YWlsc0xpbmsgJiYgKFxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBocmVmPXtkZXRhaWxzTGlua31cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5kZXRhaWxzTGlua31cbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PXtkZXRhaWxzTGlua05ld1dpbmRvdyA/ICdfYmxhbmsnIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgcmVsPXtkZXRhaWxzTGlua05ld1dpbmRvdyA/ICdub3JlZmVycmVyJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2RldGFpbHNMaW5rVGV4dH1cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgIGRlc2t0b3AgPyBidXR0b25zU3R5bGVzIDogey4uLnN0eWxlcy5idXR0b25zTW9iaWxlLCBidXR0b25zU3R5bGVzfVxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtidXR0b25UZXh0ICYmIGJ1dHRvbkxpbmsgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgX191c2VEZXByZWNhdGVkVGFnXG4gICAgICAgICAgICAgICAgaHJlZj17YnV0dG9uTGlua31cbiAgICAgICAgICAgICAgICBjb2xvcj17YnV0dG9uQ29sb3IgfHwgQnV0dG9uLkJ1dHRvbkNvbG9yLmdyYXl9XG4gICAgICAgICAgICAgICAgdGV4dD17YnV0dG9uVGV4dH1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9e25ld1dpbmRvdyA/ICdfYmxhbmsnIDogbnVsbH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkFubm91bmNlbWVudENsaWNrfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3NOYW1lfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtidXR0b25zICYmXG4gICAgICAgICAgICAgIGJ1dHRvbnMubWFwKChidXR0b24sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGhyZWY9e2J1dHRvbi5saW5rfVxuICAgICAgICAgICAgICAgICAgY29sb3I9e2J1dHRvbi5jb2xvciB8fCBCdXR0b24uQnV0dG9uQ29sb3IuZ3JheX1cbiAgICAgICAgICAgICAgICAgIHRleHQ9e2J1dHRvbi50ZXh0fVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3suLi5zdHlsZXMuYnV0dG9uLCAuLi5idXR0b24uc3R5bGV9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17YnV0dG9uLm9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2J1dHRvbi5jbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7ZGlzbWlzc2libGUgJiYgKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kaXNtaXNzfT5cbiAgICAgICAgICAgIDxGb250QXdlc29tZSBpY29uPVwidGltZXNcIiBvbkNsaWNrPXtoYW5kbGVEaXNtaXNzfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuY2xlYXJ9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5Ob3RpZmljYXRpb24ucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMub25lT2YoT2JqZWN0LmtleXMoTm90aWZpY2F0aW9uVHlwZSkpLmlzUmVxdWlyZWQsXG4gIG5vdGljZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBkZXRhaWxzOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMub2JqZWN0XSkuaXNSZXF1aXJlZCxcbiAgZGV0YWlsc0xpbmtUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkZXRhaWxzTGluazogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGV0YWlsc0xpbmtOZXdXaW5kb3c6IFByb3BUeXBlcy5ib29sLFxuICBidXR0b25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBidXR0b25MaW5rOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBidXR0b25Db2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlzbWlzc2libGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGljb25TdHlsZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uRGlzbWlzczogUHJvcFR5cGVzLmZ1bmMsXG4gIG5ld1dpbmRvdzogUHJvcFR5cGVzLmJvb2wsXG4gIC8vIGZpcmVob3NlQW5hbHl0aWNzRGF0YSBhcmUgb25seSB1c2VkIHdoZW4gYSBwcmltYXJ5IGJ1dHRvbiBpcyBwcm92aWRlZC5cbiAgLy8gSXQncyBub3QgdXNlZCBieSB0aGUgYXJyYXkgb2YgYnV0dG9ucy5cbiAgZmlyZWhvc2VBbmFseXRpY3NEYXRhOiBQcm9wVHlwZXMub2JqZWN0LFxuICByZXNwb25zaXZlU2l6ZTogUHJvcFR5cGVzLm9uZU9mKFsnbGcnLCAnbWQnLCAnc20nLCAneHMnXSksXG4gIGlzUnRsOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkJ1dHRvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgYnV0dG9uQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8vIE9wdGlvbmFsbHkgY2FuIHByb3ZpZGUgYSB0b29sdGlwIGFmdGVyIHRoZSB0aXRsZSB3aXRoIHRleHQgb24gaG92ZXIuXG4gIHRvb2x0aXBUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8vIE9wdGlvbmFsbHkgY2FuIHByb3ZpZGUgYW4gYXJyYXkgb2YgYnV0dG9ucy5cbiAgYnV0dG9uc1N0eWxlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgYnV0dG9uczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBsaW5rOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBjb2xvcjogUHJvcFR5cGVzLm9uZU9mKE9iamVjdC5rZXlzKEJ1dHRvbi5CdXR0b25Db2xvcikpLFxuICAgICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgfSlcbiAgKSxcblxuICAvLyBPcHRpb25hbGx5IGNhbiBwcm92aWRlIGNoaWxkcmVuLCBzdWNoIGFzIG9uZSBvciBtb3JlIGJ1dHRvbnMuXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvLyBDYW4gYmUgc3BlY2lmaWVkIHRvIG92ZXJyaWRlIGRlZmF1bHQgd2lkdGhcbiAgd2lkdGg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKSxcblxuICBjb2xvcnM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYmFja2dyb3VuZENvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGJvcmRlckNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvbG9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KSxcbn07XG5cbk5vdGlmaWNhdGlvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuZGVmYXVsdCxcbiAgY29sb3JzOiB7fSxcbn07XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgbWFpbjoge1xuICAgIGJvcmRlcldpZHRoOiAxLFxuICAgIGJvcmRlclN0eWxlOiAnc29saWQnLFxuICAgIG1pbkhlaWdodDogNzIsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLndoaXRlLFxuICAgIG1hcmdpbkJvdHRvbTogMjAsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhGbG93OiAnd3JhcCcsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gIH0sXG4gIG5vdGljZToge1xuICAgIC4uLmZvbnRDb25zdGFudHNbJ21haW4tZm9udC1yZWd1bGFyJ10sXG4gICAgZm9udFNpemU6IDE4LFxuICAgIGxldHRlclNwYWNpbmc6IC0wLjIsXG4gICAgbGluZUhlaWdodDogMS41LFxuICAgIG1hcmdpblRvcDogMTYsXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci53aGl0ZSxcbiAgfSxcbiAgZGV0YWlsczoge1xuICAgIC4uLmZvbnRDb25zdGFudHNbJ21haW4tZm9udC1yZWd1bGFyJ10sXG4gICAgZm9udFNpemU6IDE0LFxuICAgIGxpbmVIZWlnaHQ6IDEuNSxcbiAgICBwYWRkaW5nVG9wOiA2LFxuICAgIHBhZGRpbmdCb3R0b206IDE2LFxuICAgIGNvbG9yOiBjb2xvci5jaGFyY29hbCxcbiAgfSxcbiAgZGV0YWlsc0xpbms6IHtcbiAgICAuLi5mb250Q29uc3RhbnRzWydtYWluLWZvbnQtc2VtaS1ib2xkJ10sXG4gICAgY29sb3I6IGNvbG9yLnRlYWwsXG4gIH0sXG4gIHdvcmRCb3g6IHtcbiAgICAvLyBmbGV4IHByaW9yaXR5XG4gICAgZmxleDogMSxcbiAgICBtYXJnaW5MZWZ0OiAyNSxcbiAgICBtYXJnaW5SaWdodDogMjUsXG4gIH0sXG4gIGRpc21pc3M6IHtcbiAgICBjb2xvcjogY29sb3IubGlnaHRlcl9ncmF5LFxuICAgIG1hcmdpblRvcDogNSxcbiAgICBtYXJnaW5SaWdodDogMCxcbiAgICBtYXJnaW5MZWZ0OiAxMCxcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgfSxcbiAgaWNvbkJveDoge1xuICAgIHdpZHRoOiA3MixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmxpZ2h0ZXN0X2dyYXksXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBmbG9hdDogJ2xlZnQnLFxuICB9LFxuICBjb250ZW50Qm94OiB7XG4gICAgLy8gVGhlIHN1YnRyYWN0ZWQgMTAwcHggbGVhdmVzIHJvb20gZm9yIGJvdGggdGhlIGljb24gY29sdW1uIG9uIHRoZSBsZWZ0IGFuZFxuICAgIC8vIHRoZSBkaXNtaXNzIFggaWNvbiBjb2x1bW4gb24gdGhlIHJpZ2h0LlxuICAgIHdpZHRoOiAnY2FsYygxMDAlIC0gMTAwcHgpJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleEZsb3c6ICd3cmFwJyxcbiAgfSxcbiAgaWNvbjoge1xuICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwgLjgpJyxcbiAgICBmb250U2l6ZTogMzgsXG4gICAgbGluZUhlaWdodDogMixcbiAgfSxcbiAgYnV0dG9uc01vYmlsZToge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGJ1dHRvbjoge1xuICAgIG1hcmdpbkxlZnQ6IDI1LFxuICAgIG1hcmdpblJpZ2h0OiAyNSxcbiAgICBtYXJnaW5Ub3A6IDE4LFxuICAgIG1hcmdpbkJvdHRvbTogMTgsXG4gIH0sXG4gIGNvbG9yczoge1xuICAgIFtOb3RpZmljYXRpb25UeXBlLmRlZmF1bHRdOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLmluZm9ybWF0aW9uXToge1xuICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLnRlYWwsXG4gICAgICBjb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLnN1Y2Nlc3NdOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IubGV2ZWxfcGVyZmVjdCxcbiAgICAgIGNvbG9yOiBjb2xvci5sZXZlbF9wZXJmZWN0LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5sZXZlbF9wZXJmZWN0LFxuICAgIH0sXG4gICAgW05vdGlmaWNhdGlvblR5cGUuZmFpbHVyZV06IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci5yZWQsXG4gICAgICBjb2xvcjogY29sb3IucmVkLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5yZWQsXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS53YXJuaW5nXToge1xuICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLm11c3RhcmR5ZWxsb3csXG4gICAgICBjb2xvcjogY29sb3IuY2hhcmNvYWwsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLm11c3RhcmR5ZWxsb3csXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS5jb3Vyc2VdOiB7XG4gICAgICBib3JkZXJDb2xvcjogY29sb3IuYm9yZGVyX2dyYXksXG4gICAgICBjb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLmJ1bGxob3JuXToge1xuICAgICAgYm9yZGVyQ29sb3I6IGNvbG9yLnRlYWwsXG4gICAgICBjb2xvcjogY29sb3IudGVhbCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IudGVhbCxcbiAgICB9LFxuICAgIFtOb3RpZmljYXRpb25UeXBlLmJ1bGxob3JuX3llbGxvd106IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci55ZWxsb3csXG4gICAgICBjb2xvcjogY29sb3IueWVsbG93LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci55ZWxsb3csXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS5mZWVkYmFja106IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci5wdXJwbGUsXG4gICAgICBjb2xvcjogY29sb3IucHVycGxlLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5wdXJwbGUsXG4gICAgfSxcbiAgICBbTm90aWZpY2F0aW9uVHlwZS5jb2xsYWJvcmF0ZV06IHtcbiAgICAgIGJvcmRlckNvbG9yOiBjb2xvci5saWdodF9zZWNvbmRhcnlfNTAwLFxuICAgICAgY29sb3I6IGNvbG9yLmxpZ2h0X3NlY29uZGFyeV81MDAsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmxpZ2h0X3NlY29uZGFyeV81MDAsXG4gICAgfSxcbiAgfSxcbiAgY2xlYXI6IHtcbiAgICBjbGVhcjogJ2JvdGgnLFxuICB9LFxuICB0b29sdGlwOiB7XG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgbWFyZ2luTGVmdDogJzVweCcsXG4gICAgbWFyZ2luUmlnaHQ6ICc1cHgnLFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gICAgY29sb3I6IGNvbG9yLmxpZ2h0X2dyYXlfNTAwLFxuICB9LFxuICB0b29sdGlwVGV4dDoge1xuICAgIGNvbG9yOiBjb2xvci53aGl0ZSxcbiAgICBtYXJnaW46IDAsXG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KHN0YXRlID0+ICh7XG4gIGlzUnRsOiBzdGF0ZS5pc1J0bCxcbn0pKShOb3RpZmljYXRpb24pO1xuXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uUmVzcG9uc2l2ZSA9IGNvbm5lY3Qoc3RhdGUgPT4gKHtcbiAgaXNSdGw6IHN0YXRlLmlzUnRsLFxuICByZXNwb25zaXZlU2l6ZTogc3RhdGUucmVzcG9uc2l2ZS5yZXNwb25zaXZlU2l6ZSxcbn0pKShOb3RpZmljYXRpb24pO1xuIiwiLyoqXG4gKiBMb2FkaW5nIHNwaW5uZXIuXG4gKi9cblxuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBGb250QXdlc29tZSBmcm9tICdAY2RvL2FwcHMvbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9Gb250QXdlc29tZSc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNwaW5uZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHNpemU6IFByb3BUeXBlcy5vbmVPZihbJ3NtYWxsJywgJ21lZGl1bScsICdsYXJnZSddKSxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3NpemUsIHN0eWxlfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IGRpc3BsYXlTaXplID1cbiAgICAgIHNpemUgPT09ICdzbWFsbCcgPyAnJyA6IHNpemUgPT09ICdtZWRpdW0nID8gJ2ZhLTJ4JyA6ICdmYS0zeCc7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGb250QXdlc29tZVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIGljb249XCJzcGlubmVyXCJcbiAgICAgICAgY2xhc3NOYW1lPXtgZmEtcHVsc2UgJHtkaXNwbGF5U2l6ZX1gfVxuICAgICAgICB0aXRsZT17aTE4bi5sb2FkaW5nKCl9XG4gICAgICAgIGlkPVwidWl0ZXN0LXNwaW5uZXJcIlxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJhZGl1bSBmcm9tICdyYWRpdW0nOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IGZvbnRDb25zdGFudHMgZnJvbSAnQGNkby9hcHBzL2ZvbnRDb25zdGFudHMnO1xuXG5pbXBvcnQgRm9udEF3ZXNvbWUgZnJvbSAnLi4vbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9Gb250QXdlc29tZSc7XG5pbXBvcnQgc3R5bGVDb25zdGFudHMgZnJvbSAnLi4vc3R5bGVDb25zdGFudHMnO1xuaW1wb3J0IGNvbG9yIGZyb20gJy4uL3V0aWwvY29sb3InO1xuXG5pbXBvcnQgbW9kdWxlU3R5bGVzIGZyb20gJy4vY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3MnO1xuXG4vLyBDb250ZW50Q29udGFpbmVyIHByb3ZpZGVzIGEgZnVsbC13aWR0aCBjb250YWluZXIgd2hpY2ggd2lsbCByZW5kZXIgd2hhdGV2ZXJcbi8vIGNoaWxkcmVuIGFyZSBwYXNzZWQgdG8gaXQuIFRoZSBjb21wb25lbnQgaXMgdXNlZnVsIGZvciBjcmVhdGluZyBjbGVhcixcbi8vIHN1Yi1zZWN0aW9ucyBvbiBhIHBhZ2UgYmVjYXVzZSBpdCB3YXMgYnVpbHQgdG8gcmV1c2UgdGhlIHN0eWxpbmcgYW5kXG4vLyBmdW5jdGlvbmFsaXR5IG9mIGEgaGVhZGluZyBhbmQgdGhlIG9wdGlvbiB0byBzaG93IGEgbGluay4gWW91IGNhbiBmaW5kIGFuXG4vLyBleGFtcGxlIG9mIGl0cyB1c2Ugb24gc3R1ZGlvLmNvZGUub3JnL2hvbWUuXG5cbmNvbnN0IGNvbnRlbnRXaWR0aCA9IHN0eWxlQ29uc3RhbnRzWydjb250ZW50LXdpZHRoJ107XG5jb25zdCBsaW5rQm94TGluZUhlaWdodCA9ICcyNiBweCc7XG5cbmNsYXNzIENvbnRlbnRDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5ub2RlLFxuICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLFxuICAgIF0pLFxuICAgIGhlYWRpbmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGlua1RleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGluazogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpc1J0bDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBkZXNjcmlwdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZXNwb25zaXZlU2l6ZTogUHJvcFR5cGVzLm9uZU9mKFsnbGcnLCAnbWQnLCAnc20nLCAneHMnXSkuaXNSZXF1aXJlZCxcbiAgICBoaWRlQm90dG9tTWFyZ2luOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgaGVhZGluZyxcbiAgICAgIGxpbmssXG4gICAgICBsaW5rVGV4dCxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgaXNSdGwsXG4gICAgICByZXNwb25zaXZlU2l6ZSxcbiAgICAgIGhpZGVCb3R0b21NYXJnaW4sXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBzaG93TGlua1RvcCA9IHJlc3BvbnNpdmVTaXplID09PSAnbGcnICYmIGxpbmsgJiYgbGlua1RleHQ7XG4gICAgY29uc3Qgc2hvd0xpbmtCb3R0b20gPSByZXNwb25zaXZlU2l6ZSAhPT0gJ2xnJyAmJiBsaW5rICYmIGxpbmtUZXh0O1xuICAgIGNvbnN0IGJveFN0eWxlcyA9IHN0eWxlcy5ib3hSZXNwb25zaXZlO1xuICAgIGNvbnN0IGJvdHRvbU1hcmdpbiA9IGhpZGVCb3R0b21NYXJnaW4gPyAnJyA6IHN0eWxlcy5ib3R0b21NYXJnaW47XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17W2JveFN0eWxlcywgYm90dG9tTWFyZ2luXX0+XG4gICAgICAgIHsoaGVhZGluZyB8fCAobGluayAmJiBsaW5rVGV4dCkpICYmIChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e21vZHVsZVN0eWxlcy5jb250ZW50Q29udGFpbmVySGVhZGluZ31cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZXMuaGVhZGluZ0JveH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aDQgc3R5bGU9e2lzUnRsID8gc3R5bGVzLmhlYWRpbmdUZXh0UnRsIDogc3R5bGVzLmhlYWRpbmdUZXh0fT5cbiAgICAgICAgICAgICAge2hlYWRpbmd9XG4gICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAge3Nob3dMaW5rVG9wICYmIChcbiAgICAgICAgICAgICAgPExpbmsgbGluaz17bGlua30gbGlua1RleHQ9e2xpbmtUZXh0fSBpc1J0bD17aXNSdGx9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7ZGVzY3JpcHRpb24gJiYgPGRpdiBzdHlsZT17c3R5bGVzLmRlc2NyaXB0aW9ufT57ZGVzY3JpcHRpb259PC9kaXY+fVxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuY2hpbGRyZW59PlxuICAgICAgICAgIHtSZWFjdC5DaGlsZHJlbi5tYXAodGhpcy5wcm9wcy5jaGlsZHJlbiwgKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2NoaWxkfTwvZGl2PjtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtzaG93TGlua0JvdHRvbSAmJiAoXG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnN0YW5kYWxvbmVMaW5rQm94fT5cbiAgICAgICAgICAgIDxMaW5rIGxpbms9e2xpbmt9IGxpbmtUZXh0PXtsaW5rVGV4dH0gaXNSdGw9e2lzUnRsfSBib3R0b209e3RydWV9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5jbGVhcn0gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY2xhc3MgTGluayBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbGlua1RleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBsaW5rOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgaXNSdGw6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgYm90dG9tOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2xpbmssIGxpbmtUZXh0LCBpc1J0bCwgYm90dG9tfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IGxpbmtCb3hTdHlsZTtcbiAgICBpZiAoaXNSdGwpIHtcbiAgICAgIGxpbmtCb3hTdHlsZSA9IGJvdHRvbSA/IHN0eWxlcy5saW5rQm94UnRsQm90dG9tIDogc3R5bGVzLmxpbmtCb3hSdGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmtCb3hTdHlsZSA9IGJvdHRvbSA/IHN0eWxlcy5saW5rQm94Qm90dG9tIDogc3R5bGVzLmxpbmtCb3g7XG4gICAgfVxuICAgIGNvbnN0IGljb24gPSBpc1J0bCA/ICdjaGV2cm9uLWxlZnQnIDogJ2NoZXZyb24tcmlnaHQnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgc3R5bGU9e2xpbmtCb3hTdHlsZX0+XG4gICAgICAgIDxhIHN0eWxlPXtzdHlsZXMubGlua1RhZ30gaHJlZj17bGlua30+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9e3tkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ319PlxuICAgICAgICAgICAge2lzUnRsICYmIDxGb250QXdlc29tZSBpY29uPXtpY29ufSBzdHlsZT17c3R5bGVzLmNoZXZyb25SdGx9IC8+fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMubGlua1RvVmlld0FsbH0+e2xpbmtUZXh0fTwvZGl2PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7ZGlzcGxheTogJ2lubGluZS1ibG9jayd9fT5cbiAgICAgICAgICAgIHshaXNSdGwgJiYgPEZvbnRBd2Vzb21lIGljb249e2ljb259IHN0eWxlPXtzdHlsZXMuY2hldnJvbn0gLz59XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYm94OiB7XG4gICAgd2lkdGg6IGNvbnRlbnRXaWR0aCxcbiAgfSxcbiAgYm94UmVzcG9uc2l2ZToge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gIH0sXG4gIGJvdHRvbU1hcmdpbjoge1xuICAgIG1hcmdpbkJvdHRvbTogNjAsXG4gIH0sXG4gIGhlYWRpbmdCb3g6IHtcbiAgICBwYWRkaW5nUmlnaHQ6IDEwLFxuICAgIHBhZGRpbmdUb3A6IDEwLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICB6SW5kZXg6IDIsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIH0sXG4gIGhlYWRpbmdUZXh0OiB7XG4gICAgZm9udFNpemU6IDI0LFxuICAgIGxpbmVIZWlnaHQ6ICcyNnB4JyxcbiAgICBjb2xvcjogY29sb3IubmV1dHJhbF9kYXJrLFxuICAgIGZsb2F0OiAnbGVmdCcsXG4gICAgcGFkZGluZ1JpZ2h0OiAyMCxcbiAgfSxcbiAgaGVhZGluZ1RleHRSdGw6IHtcbiAgICBmb250U2l6ZTogMjQsXG4gICAgbGluZUhlaWdodDogJzI2cHgnLFxuICAgIGNvbG9yOiBjb2xvci5uZXV0cmFsX2RhcmssXG4gICAgZmxvYXQ6ICdyaWdodCcsXG4gICAgcGFkZGluZ0xlZnQ6IDIwLFxuICB9LFxuICBzdGFuZGFsb25lTGlua0JveDoge1xuICAgIHBhZGRpbmdUb3A6IDEwLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGNsZWFyOiAnYm90aCcsXG4gIH0sXG4gIGxpbmtCb3g6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBib3R0b206IDIwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGxpbmVIZWlnaHQ6IGxpbmtCb3hMaW5lSGVpZ2h0LFxuICB9LFxuICBsaW5rQm94UnRsOiB7XG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICBwYWRkaW5nTGVmdDogMTAsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgYm90dG9tOiAyMCxcbiAgICBsZWZ0OiAwLFxuICAgIGxpbmVIZWlnaHQ6IGxpbmtCb3hMaW5lSGVpZ2h0LFxuICB9LFxuICBsaW5rQm94Qm90dG9tOiB7XG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgbGVmdDogMCxcbiAgfSxcbiAgbGlua0JveFJ0bEJvdHRvbToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICAgIHJpZ2h0OiAwLFxuICB9LFxuICBkZXNjcmlwdGlvbjoge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBsaW5lSGVpZ2h0OiAnMjJweCcsXG4gICAgLi4uZm9udENvbnN0YW50c1snbWFpbi1mb250LXJlZ3VsYXInXSxcbiAgICB6SW5kZXg6IDIsXG4gICAgY29sb3I6IGNvbG9yLm5ldXRyYWxfZGFyayxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIG1hcmdpblRvcDogLTEwLFxuICAgIG1hcmdpbkJvdHRvbTogMTAsXG4gICAgY2xlYXI6ICdib3RoJyxcbiAgfSxcbiAgbGlua1RhZzoge1xuICAgIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gIH0sXG4gIGxpbmtUb1ZpZXdBbGw6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgLi4uZm9udENvbnN0YW50c1snbWFpbi1mb250LXNlbWktYm9sZCddLFxuICAgIG1hcmdpblRvcDogLTIsXG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gIH0sXG4gIGNoZXZyb246IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgICBmb250U2l6ZTogMTAsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIG1hcmdpbkxlZnQ6IDE1LFxuICB9LFxuICBjaGV2cm9uUnRsOiB7XG4gICAgZGlzcGxheTogJ2lubGluZScsXG4gICAgY29sb3I6IGNvbG9yLm5ldXRyYWxfZGFyayxcbiAgICBmb250U2l6ZTogMTAsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIG1hcmdpblJpZ2h0OiAxNSxcbiAgfSxcbiAgY2hpbGRyZW46IHtcbiAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gIH0sXG4gIGNsZWFyOiB7XG4gICAgY2xlYXI6ICdib3RoJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3Qoc3RhdGUgPT4gKHtcbiAgcmVzcG9uc2l2ZVNpemU6IHN0YXRlLnJlc3BvbnNpdmUucmVzcG9uc2l2ZVNpemUsXG4gIGlzUnRsOiBzdGF0ZS5pc1J0bCxcbn0pKShSYWRpdW0oQ29udGVudENvbnRhaW5lcikpO1xuIiwiaW1wb3J0IHtCdXR0b259IGZyb20gJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnkvYnV0dG9uJztcbmltcG9ydCB7XG4gIEhlYWRpbmczLFxuICBCb2R5VGhyZWVUZXh0LFxufSBmcm9tICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5L3R5cG9ncmFwaHknO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9ib3JkZXJlZENhbGxUb0FjdGlvbi5tb2R1bGUuc2Nzcyc7XG5cbmNvbnN0IEJvcmRlcmVkQ2FsbFRvQWN0aW9uID0gKHtcbiAgaGVhZGluZ1RleHQsXG4gIGRlc2NyaXB0aW9uVGV4dCxcbiAgY2xhc3NOYW1lLFxuICBidXR0b25UeXBlLFxuICBidXR0b25UZXh0LFxuICBidXR0b25VcmwsXG4gIGJ1dHRvbkNsYXNzLFxuICBidXR0b25Db2xvcixcbiAgYnV0dG9uRGlzYWJsZWQgPSBmYWxzZSxcbiAgb25DbGljayxcbiAgc29saWRCb3JkZXIsXG59KSA9PiB7XG4gIGlmICghYnV0dG9uVXJsICYmICFvbkNsaWNrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3QgYXQgbGVhc3Qgb25lIG9mIGJ1dHRvblVybCAvIG9uQ2xpY2snKTtcbiAgfVxuXG4gIGNvbnN0IGJvcmRlclN0eWxlID0gc29saWRCb3JkZXIgPyBzdHlsZXMuc29saWRCb3JkZXIgOiBzdHlsZXMuZGFzaGVkQm9yZGVyO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Ake3N0eWxlcy5vdXRlckJveH0gJHtib3JkZXJTdHlsZX0gJHtjbGFzc05hbWV9YH0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRleHRXcmFwcGVyfT5cbiAgICAgICAgPEhlYWRpbmczIHZpc3VhbEFwcGVhcmFuY2U9XCJoZWFkaW5nLXNtXCI+e2hlYWRpbmdUZXh0fTwvSGVhZGluZzM+XG4gICAgICAgIDxCb2R5VGhyZWVUZXh0PntkZXNjcmlwdGlvblRleHR9PC9Cb2R5VGhyZWVUZXh0PlxuICAgICAgPC9kaXY+XG4gICAgICA8QnV0dG9uXG4gICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3N9XG4gICAgICAgIGNvbG9yPXtidXR0b25Db2xvcn1cbiAgICAgICAgc2l6ZT17J3MnfVxuICAgICAgICB0eXBlPXtidXR0b25UeXBlfVxuICAgICAgICB0ZXh0PXtidXR0b25UZXh0fVxuICAgICAgICBocmVmPXtidXR0b25Vcmx9XG4gICAgICAgIHVzZUFzTGluaz17ISFidXR0b25Vcmx9XG4gICAgICAgIGRpc2FibGVkPXtidXR0b25EaXNhYmxlZH1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5Cb3JkZXJlZENhbGxUb0FjdGlvbi5wcm9wVHlwZXMgPSB7XG4gIGhlYWRpbmdUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGRlc2NyaXB0aW9uVGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGJ1dHRvblR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGJ1dHRvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgYnV0dG9uVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBidXR0b25DbGFzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgYnV0dG9uQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBzb2xpZEJvcmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIGJ1dHRvbkRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJvcmRlcmVkQ2FsbFRvQWN0aW9uO1xuIiwiaW1wb3J0IHtcbiAgQm9keVR3b1RleHQsXG4gIFN0cm9uZ1RleHQsXG59IGZyb20gJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnkvdHlwb2dyYXBoeSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtjb25uZWN0fSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAnQGNkby9hcHBzL2xlZ2FjeVNoYXJlZENvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCB7RVZFTlRTfSBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NDb25zdGFudHMnO1xuaW1wb3J0IGFuYWx5dGljc1JlcG9ydGVyIGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc1JlcG9ydGVyJztcbmltcG9ydCBOb3RpZmljYXRpb24sIHtcbiAgTm90aWZpY2F0aW9uVHlwZSxcbn0gZnJvbSAnQGNkby9hcHBzL3NoYXJlZENvbXBvbmVudHMvTm90aWZpY2F0aW9uJztcbmltcG9ydCB7XG4gIGFzeW5jTG9hZENvdGVhY2hlckludml0ZSxcbiAgYXN5bmNMb2FkU2VjdGlvbkRhdGEsXG59IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyU2VjdGlvbnNSZWR1eCc7XG5pbXBvcnQgSHR0cENsaWVudCBmcm9tICdAY2RvL2FwcHMvdXRpbC9IdHRwQ2xpZW50JztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuY29uc3QgQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uID0gKHtcbiAgaXNGb3JQbCxcbiAgYXN5bmNMb2FkQ290ZWFjaGVySW52aXRlLFxuICBhc3luY0xvYWRTZWN0aW9uRGF0YSxcbiAgY290ZWFjaGVySW52aXRlLFxuICBjb3RlYWNoZXJJbnZpdGVGb3JQbCxcbn0pID0+IHtcbiAgY29uc3QgaW52aXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCEhY290ZWFjaGVySW52aXRlRm9yUGwgJiYgaXNGb3JQbCkge1xuICAgICAgcmV0dXJuIGNvdGVhY2hlckludml0ZUZvclBsO1xuICAgIH0gZWxzZSBpZiAoISFjb3RlYWNoZXJJbnZpdGUgJiYgIWlzRm9yUGwpIHtcbiAgICAgIHJldHVybiBjb3RlYWNoZXJJbnZpdGU7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9LCBbY290ZWFjaGVySW52aXRlLCBjb3RlYWNoZXJJbnZpdGVGb3JQbCwgaXNGb3JQbF0pO1xuXG4gIGNvbnN0IGJ1dHRvbkFjdGlvbiA9IGFwaSA9PiB7XG4gICAgSHR0cENsaWVudC5wdXQoYXBpLCAnJywgdHJ1ZSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgYXN5bmNMb2FkQ290ZWFjaGVySW52aXRlKCk7XG4gICAgICAgIGFzeW5jTG9hZFNlY3Rpb25EYXRhKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuICB9O1xuXG4gIGNvbnN0IGFjY2VwdENvdGVhY2hlckludml0ZSA9IChpZCwgc2VjdGlvbklkKSA9PiB7XG4gICAgYW5hbHl0aWNzUmVwb3J0ZXIuc2VuZEV2ZW50KEVWRU5UUy5DT1RFQUNIRVJfSU5WSVRFX0FDQ0VQVEVELCB7XG4gICAgICBzZWN0aW9uSWQ6IHNlY3Rpb25JZCxcbiAgICB9KTtcbiAgICBidXR0b25BY3Rpb24oYC9hcGkvdjEvc2VjdGlvbl9pbnN0cnVjdG9ycy8ke2lkfS9hY2NlcHRgKTtcbiAgfTtcblxuICBjb25zdCBkZWNsaW5lQ290ZWFjaGVySW52aXRlID0gKGlkLCBzZWN0aW9uSWQpID0+IHtcbiAgICBhbmFseXRpY3NSZXBvcnRlci5zZW5kRXZlbnQoRVZFTlRTLkNPVEVBQ0hFUl9JTlZJVEVfREVDTElORUQsIHtcbiAgICAgIHNlY3Rpb25JZDogc2VjdGlvbklkLFxuICAgIH0pO1xuICAgIGJ1dHRvbkFjdGlvbihgL2FwaS92MS9zZWN0aW9uX2luc3RydWN0b3JzLyR7aWR9L2RlY2xpbmVgKTtcbiAgfTtcblxuICBpZiAoIWludml0ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiAoXG4gICAgPE5vdGlmaWNhdGlvblxuICAgICAgZGlzbWlzc2libGU9e2ZhbHNlfVxuICAgICAgdHlwZT17Tm90aWZpY2F0aW9uVHlwZS5jb2xsYWJvcmF0ZX1cbiAgICAgIGljb25TdHlsZXM9e3N0eWxlcy5pY29ufVxuICAgICAgbm90aWNlPXtpMThuLmNvdGVhY2hlckludml0ZSh7XG4gICAgICAgIGludml0ZWRCeU5hbWU6IGludml0ZS5pbnZpdGVkX2J5X25hbWUsXG4gICAgICB9KX1cbiAgICAgIGRldGFpbHM9e1xuICAgICAgICA8Qm9keVR3b1RleHQgc3R5bGU9e3ttYXJnaW5Cb3R0b206IDB9fT5cbiAgICAgICAgICB7aTE4bi5jb3RlYWNoZXJJbnZpdGVEZXNjcmlwdGlvbih7XG4gICAgICAgICAgICBpbnZpdGVkQnlFbWFpbDogaW52aXRlLmludml0ZWRfYnlfZW1haWwsXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPFN0cm9uZ1RleHQ+e2ludml0ZS5zZWN0aW9uX25hbWV9PC9TdHJvbmdUZXh0PlxuICAgICAgICA8L0JvZHlUd29UZXh0PlxuICAgICAgfVxuICAgICAgdG9vbHRpcFRleHQ9e2kxOG4uY290ZWFjaGVyVG9vbHRpcCgpfVxuICAgICAgYnV0dG9uc1N0eWxlcz17c3R5bGVzLmJ1dHRvbnN9XG4gICAgICBidXR0b25zPXtbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnRGVjbGluZScsXG4gICAgICAgICAgb25DbGljazogKCkgPT4gZGVjbGluZUNvdGVhY2hlckludml0ZShpbnZpdGUuaWQsIGludml0ZS5zZWN0aW9uX2lkKSxcbiAgICAgICAgICBjb2xvcjogQnV0dG9uLkJ1dHRvbkNvbG9yLm5ldXRyYWxEYXJrLFxuICAgICAgICAgIHN0eWxlOiBzdHlsZXMuZGVjbGluZUJ1dHRvbixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdBY2NlcHQnLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IGFjY2VwdENvdGVhY2hlckludml0ZShpbnZpdGUuaWQsIGludml0ZS5zZWN0aW9uX2lkKSxcbiAgICAgICAgICBjb2xvcjogQnV0dG9uLkJ1dHRvbkNvbG9yLmJyYW5kU2Vjb25kYXJ5RGVmYXVsdCxcbiAgICAgICAgICBzdHlsZTogc3R5bGVzLmFjY2VwdEJ1dHRvbixcbiAgICAgICAgfSxcbiAgICAgIF19XG4gICAgLz5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZENvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbiA9XG4gIENvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbjtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChcbiAgc3RhdGUgPT4gKHtcbiAgICBjb3RlYWNoZXJJbnZpdGU6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5jb3RlYWNoZXJJbnZpdGUsXG4gICAgY290ZWFjaGVySW52aXRlRm9yUGw6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5jb3RlYWNoZXJJbnZpdGVGb3JQbCxcbiAgfSksXG4gIHtcbiAgICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGUsXG4gICAgYXN5bmNMb2FkU2VjdGlvbkRhdGEsXG4gIH1cbikoQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uKTtcblxuQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uLnByb3BUeXBlcyA9IHtcbiAgaXNGb3JQbDogUHJvcFR5cGVzLmJvb2wsXG4gIGFzeW5jTG9hZENvdGVhY2hlckludml0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgYXN5bmNMb2FkU2VjdGlvbkRhdGE6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNvdGVhY2hlckludml0ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgY290ZWFjaGVySW52aXRlRm9yUGw6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG4vLyBUaGUgTm90aWZpY2F0aW9uIG9iamVjdCB1c2VzIHN0eWxlcyBpbnN0ZWFkIG9mIGNsYXNzTmFtZSBmb3IgbGVnYWN5IHJlYXNvbnMuXG5jb25zdCBzdHlsZXMgPSB7XG4gIGFjY2VwdEJ1dHRvbjoge1xuICAgIG1hcmdpbkxlZnQ6ICcyMHB4JyxcbiAgICBtYXJnaW5SaWdodDogJzBweCcsXG4gICAgbGluZUhlaWdodDogJzEwMCUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbiAgZGVjbGluZUJ1dHRvbjoge1xuICAgIG1hcmdpblJpZ2h0OiAwLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgfSxcbiAgYnV0dG9uczoge1xuICAgIC8vIGNlbnRlciB2ZXJ0aWNhbGx5XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9LFxuICBpY29uOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbn07XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IHtFVkVOVFMsIFBMQVRGT1JNU30gZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvQW5hbHl0aWNzQ29uc3RhbnRzLmpzJztcbmltcG9ydCBhbmFseXRpY3NSZXBvcnRlciBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NSZXBvcnRlcic7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCB7YmVnaW5FZGl0aW5nU2VjdGlvbn0gZnJvbSAnLi4vdGVhY2hlckRhc2hib2FyZC90ZWFjaGVyU2VjdGlvbnNSZWR1eCc7XG5cbmltcG9ydCBCb3JkZXJlZENhbGxUb0FjdGlvbiBmcm9tICcuL0JvcmRlcmVkQ2FsbFRvQWN0aW9uJztcblxuY2xhc3MgU2V0VXBTZWN0aW9ucyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgYmVnaW5FZGl0aW5nU2VjdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBoZWFkaW5nVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkZXNjcmlwdGlvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc29saWRCb3JkZXI6IFByb3BUeXBlcy5ib29sLFxuICAgIGFzeW5jTG9hZENvbXBsZXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgfTtcblxuICAvLyBXcmFwcGVkIHRvIGF2b2lkIHBhc3NpbmcgZXZlbnQgYXJnc1xuICBiZWdpbkVkaXRpbmdTZWN0aW9uID0gKCkgPT4ge1xuICAgIHRoaXMucmVjb3JkU2VjdGlvblNldHVwU3RhcnRlZEV2ZW50KCk7XG4gICAgdGhpcy5wcm9wcy5iZWdpbkVkaXRpbmdTZWN0aW9uKCk7XG4gIH07XG5cbiAgcmVjb3JkU2VjdGlvblNldHVwU3RhcnRlZEV2ZW50ID0gKCkgPT4ge1xuICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChcbiAgICAgIEVWRU5UUy5TRUNUSU9OX1NFVFVQX1NUQVJURUQsXG4gICAgICB7fSxcbiAgICAgIFBMQVRGT1JNUy5CT1RIXG4gICAgKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxCb3JkZXJlZENhbGxUb0FjdGlvblxuICAgICAgICB0eXBlPVwic2VjdGlvbnNcIlxuICAgICAgICBoZWFkaW5nVGV4dD17dGhpcy5wcm9wcy5oZWFkaW5nVGV4dCB8fCBpMThuLm5ld1NlY3Rpb25BZGQoKX1cbiAgICAgICAgZGVzY3JpcHRpb25UZXh0PXtcbiAgICAgICAgICB0aGlzLnByb3BzLmRlc2NyaXB0aW9uVGV4dCB8fCBpMThuLmNyZWF0ZU5ld0NsYXNzcm9vbSgpXG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uVGV4dD17aTE4bi5jcmVhdGVTZWN0aW9uKCl9XG4gICAgICAgIGNsYXNzTmFtZT1cInVpdGVzdC1zZXQtdXAtc2VjdGlvbnNcIlxuICAgICAgICBidXR0b25DbGFzcz1cInVpdGVzdC1uZXdzZWN0aW9uXCJcbiAgICAgICAgYnV0dG9uRGlzYWJsZWQ9eyF0aGlzLnByb3BzLmFzeW5jTG9hZENvbXBsZXRlfVxuICAgICAgICBvbkNsaWNrPXt0aGlzLmJlZ2luRWRpdGluZ1NlY3Rpb259XG4gICAgICAgIHNvbGlkQm9yZGVyPXt0aGlzLnByb3BzLnNvbGlkQm9yZGVyIHx8IGZhbHNlfVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG5leHBvcnQgY29uc3QgVW5jb25uZWN0ZWRTZXRVcFNlY3Rpb25zID0gU2V0VXBTZWN0aW9ucztcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QoXG4gIHN0YXRlID0+ICh7XG4gICAgYXN5bmNMb2FkQ29tcGxldGU6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5hc3luY0xvYWRDb21wbGV0ZSxcbiAgfSksXG4gIHtcbiAgICBiZWdpbkVkaXRpbmdTZWN0aW9uLFxuICB9XG4pKFNldFVwU2VjdGlvbnMpO1xuIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgU3Bpbm5lciBmcm9tICdAY2RvL2FwcHMvc2hhcmVkQ29tcG9uZW50cy9TcGlubmVyJztcbmltcG9ydCB7QWdlR2F0ZWRTZWN0aW9uc0Jhbm5lcn0gZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvQWdlR2F0ZWRTZWN0aW9uc0Jhbm5lcic7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBDb250ZW50Q29udGFpbmVyIGZyb20gJy4uL0NvbnRlbnRDb250YWluZXInO1xuaW1wb3J0IEFkZFNlY3Rpb25EaWFsb2cgZnJvbSAnLi4vdGVhY2hlckRhc2hib2FyZC9BZGRTZWN0aW9uRGlhbG9nJztcbmltcG9ydCBPd25lZFNlY3Rpb25zIGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvT3duZWRTZWN0aW9ucyc7XG5pbXBvcnQgUm9zdGVyRGlhbG9nIGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvUm9zdGVyRGlhbG9nJztcbmltcG9ydCB7XG4gIGFzeW5jTG9hZENvdGVhY2hlckludml0ZSxcbiAgYXN5bmNMb2FkU2VjdGlvbkRhdGEsXG59IGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvdGVhY2hlclNlY3Rpb25zUmVkdXgnO1xuaW1wb3J0IHtcbiAgYXRSaXNrQWdlR2F0ZWRTZWN0aW9ucyxcbiAgaGlkZGVuU3R1ZGVudFNlY3Rpb25JZHMsXG59IGZyb20gJy4uL3RlYWNoZXJEYXNoYm9hcmQvdGVhY2hlclNlY3Rpb25zUmVkdXhTZWxlY3RvcnMnO1xuXG5pbXBvcnQgQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uIGZyb20gJy4vQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uJztcbmltcG9ydCBTZXRVcFNlY3Rpb25zIGZyb20gJy4vU2V0VXBTZWN0aW9ucyc7XG5cbmZ1bmN0aW9uIFRlYWNoZXJTZWN0aW9ucyh7XG4gIGFzeW5jTG9hZFNlY3Rpb25EYXRhLFxuICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGUsXG4gIGNvdGVhY2hlckludml0ZSxcbiAgYWdlR2F0ZWRTZWN0aW9ucyxcbiAgc3R1ZGVudFNlY3Rpb25JZHMsXG4gIGhpZGRlblN0dWRlbnRTZWN0aW9uSWRzLFxuICBzZWN0aW9uc0FyZUxvYWRlZCxcbn0pIHtcbiAgY29uc3QgW21vZGFsT3Blbiwgc2V0TW9kYWxPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgdG9nZ2xlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0TW9kYWxPcGVuKCFtb2RhbE9wZW4pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXN5bmNMb2FkU2VjdGlvbkRhdGEoKTtcbiAgICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGUoKTtcbiAgfSwgW2FzeW5jTG9hZFNlY3Rpb25EYXRhLCBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGVdKTtcblxuICBjb25zdCBzaG91bGRSZW5kZXJTZWN0aW9ucyA9ICgpID0+IHtcbiAgICByZXR1cm4gc3R1ZGVudFNlY3Rpb25JZHM/Lmxlbmd0aCA+IDAgfHwgISFjb3RlYWNoZXJJbnZpdGU7XG4gIH07XG5cbiAgY29uc3Qgc2hvdWxkRGlzcGxheUF0Umlza0FnZUdhdGVkV2FybmluZyA9ICgpID0+IHtcbiAgICByZXR1cm4gYWdlR2F0ZWRTZWN0aW9ucz8ubGVuZ3RoID4gMDtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgaWQ9XCJjbGFzc3Jvb20tc2VjdGlvbnNcIj5cbiAgICAgIDxDb250ZW50Q29udGFpbmVyIGhlYWRpbmc9e2kxOG4uY3JlYXRlU2VjdGlvbigpfT5cbiAgICAgICAgPFNldFVwU2VjdGlvbnMgLz5cbiAgICAgICAgeyFzZWN0aW9uc0FyZUxvYWRlZCAmJiA8U3Bpbm5lciBzaXplPVwibGFyZ2VcIiBzdHlsZT17c3R5bGVzLnNwaW5uZXJ9IC8+fVxuICAgICAgPC9Db250ZW50Q29udGFpbmVyPlxuICAgICAge3Nob3VsZFJlbmRlclNlY3Rpb25zKCkgJiYgKFxuICAgICAgICA8Q29udGVudENvbnRhaW5lciBoZWFkaW5nPXtpMThuLnNlY3Rpb25zVGl0bGUoKX0+XG4gICAgICAgICAgPENvdGVhY2hlckludml0ZU5vdGlmaWNhdGlvbiBpc0ZvclBsPXtmYWxzZX0gLz5cbiAgICAgICAgICB7c2hvdWxkRGlzcGxheUF0Umlza0FnZUdhdGVkV2FybmluZygpICYmIChcbiAgICAgICAgICAgIDxBZ2VHYXRlZFNlY3Rpb25zQmFubmVyXG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsPXt0b2dnbGVNb2RhbH1cbiAgICAgICAgICAgICAgbW9kYWxPcGVuPXttb2RhbE9wZW59XG4gICAgICAgICAgICAgIGFnZUdhdGVkU2VjdGlvbnM9e2FnZUdhdGVkU2VjdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPE93bmVkU2VjdGlvbnNcbiAgICAgICAgICAgIHNlY3Rpb25JZHM9e3N0dWRlbnRTZWN0aW9uSWRzfVxuICAgICAgICAgICAgaGlkZGVuU2VjdGlvbklkcz17aGlkZGVuU3R1ZGVudFNlY3Rpb25JZHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db250ZW50Q29udGFpbmVyPlxuICAgICAgKX1cbiAgICAgIDxSb3N0ZXJEaWFsb2cgLz5cbiAgICAgIDxBZGRTZWN0aW9uRGlhbG9nIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cblRlYWNoZXJTZWN0aW9ucy5wcm9wVHlwZXMgPSB7XG4gIGFzeW5jTG9hZFNlY3Rpb25EYXRhOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBhc3luY0xvYWRDb3RlYWNoZXJJbnZpdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNvdGVhY2hlckludml0ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgY290ZWFjaGVySW52aXRlRm9yUGw6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFnZUdhdGVkU2VjdGlvbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgc3R1ZGVudFNlY3Rpb25JZHM6IFByb3BUeXBlcy5hcnJheSxcbiAgcGxTZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXksXG4gIGhpZGRlblN0dWRlbnRTZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKS5pc1JlcXVpcmVkLFxuICBzZWN0aW9uc0FyZUxvYWRlZDogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgY29uc3QgVW5jb25uZWN0ZWRUZWFjaGVyU2VjdGlvbnMgPSBUZWFjaGVyU2VjdGlvbnM7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QoXG4gIHN0YXRlID0+ICh7XG4gICAgY290ZWFjaGVySW52aXRlOiBzdGF0ZS50ZWFjaGVyU2VjdGlvbnMuY290ZWFjaGVySW52aXRlLFxuICAgIGFnZUdhdGVkU2VjdGlvbnM6IGF0Umlza0FnZUdhdGVkU2VjdGlvbnMoc3RhdGUpLFxuICAgIHN0dWRlbnRTZWN0aW9uSWRzOiBzdGF0ZS50ZWFjaGVyU2VjdGlvbnMuc3R1ZGVudFNlY3Rpb25JZHMsXG4gICAgaGlkZGVuU3R1ZGVudFNlY3Rpb25JZHM6IGhpZGRlblN0dWRlbnRTZWN0aW9uSWRzKHN0YXRlKSxcbiAgICBzZWN0aW9uc0FyZUxvYWRlZDogc3RhdGUudGVhY2hlclNlY3Rpb25zLnNlY3Rpb25zQXJlTG9hZGVkLFxuICB9KSxcbiAge1xuICAgIGFzeW5jTG9hZENvdGVhY2hlckludml0ZSxcbiAgICBhc3luY0xvYWRTZWN0aW9uRGF0YSxcbiAgfVxuKShUZWFjaGVyU2VjdGlvbnMpO1xuXG5jb25zdCBzdHlsZXMgPSB7XG4gIHNwaW5uZXI6IHtcbiAgICBtYXJnaW5Ub3A6ICcxMHB4JyxcbiAgfSxcbn07XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IFNwaW5uZXIgZnJvbSAnQGNkby9hcHBzL3NoYXJlZENvbXBvbmVudHMvU3Bpbm5lcic7XG5pbXBvcnQge25hdmlnYXRlVG9IcmVmfSBmcm9tICdAY2RvL2FwcHMvdXRpbHMnO1xuaW1wb3J0IHtTZWN0aW9uTG9naW5UeXBlfSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBCYXNlRGlhbG9nIGZyb20gJy4uL0Jhc2VEaWFsb2cnO1xuXG5pbXBvcnQgTG9naW5UeXBlUGlja2VyIGZyb20gJy4vTG9naW5UeXBlUGlja2VyJztcbmltcG9ydCBQYWRBbmRDZW50ZXIgZnJvbSAnLi9QYWRBbmRDZW50ZXInO1xuaW1wb3J0IFBhcnRpY2lwYW50VHlwZVBpY2tlciBmcm9tICcuL1BhcnRpY2lwYW50VHlwZVBpY2tlcic7XG5pbXBvcnQge3NlY3Rpb25TaGFwZX0gZnJvbSAnLi9zaGFwZXMnO1xuaW1wb3J0IHtcbiAgYmVnaW5JbXBvcnRSb3N0ZXJGbG93LFxuICBzZXRSb3N0ZXJQcm92aWRlcixcbiAgZWRpdFNlY3Rpb25Qcm9wZXJ0aWVzLFxuICBjYW5jZWxFZGl0aW5nU2VjdGlvbixcbn0gZnJvbSAnLi90ZWFjaGVyU2VjdGlvbnNSZWR1eCc7XG5pbXBvcnQge1xuICBpc0FkZGluZ1NlY3Rpb24sXG4gIGFzc2lnbmVkQ291cnNlT2ZmZXJpbmcsXG59IGZyb20gJy4vdGVhY2hlclNlY3Rpb25zUmVkdXhTZWxlY3RvcnMnO1xuXG4vLyBOYXZpZ2F0ZXMgdG8gdGhlIG5ldyBzZWN0aW9uIHNldHVwIHBhZ2UgaWYgYm90aCBwYXJhbXMgYXJlIG5vbi1udWxsLlxuY29uc3QgcmVkaXJlY3RUb05ld1NlY3Rpb25QYWdlID0gKHBhcnRpY2lwYW50VHlwZSwgbG9naW5UeXBlKSA9PiB7XG4gIGlmICghIXBhcnRpY2lwYW50VHlwZSAmJiAhIWxvZ2luVHlwZSkge1xuICAgIGNvbnN0IGNyZWF0ZVNlY3Rpb25Gcm9tTXlQbCA9IHBhcnRpY2lwYW50VHlwZSAhPT0gJ3N0dWRlbnQnO1xuICAgIGNvbnN0IGhyZWZOYXYgPVxuICAgICAgYC9zZWN0aW9ucy9uZXc/cGFydGljaXBhbnRUeXBlPSR7cGFydGljaXBhbnRUeXBlfSZsb2dpblR5cGU9JHtsb2dpblR5cGV9YCArXG4gICAgICAoY3JlYXRlU2VjdGlvbkZyb21NeVBsID8gJyZyZWRpcmVjdFRvUGFnZT1teS1wcm9mZXNzaW9uYWwtbGVhcm5pbmcnIDogJycpO1xuICAgIG5hdmlnYXRlVG9IcmVmKGhyZWZOYXYpO1xuICB9XG59O1xuXG4vKipcbiAqIFVJIGZvciBhIHRlYWNoZXIgdG8gYWRkIGEgbmV3IGNsYXNzIHNlY3Rpb24uXG4gKi9cbmNvbnN0IEFkZFNlY3Rpb25EaWFsb2cgPSAoe1xuICBpc09wZW4sXG4gIHNlY3Rpb24sXG4gIGJlZ2luSW1wb3J0Um9zdGVyRmxvdyxcbiAgc2V0Um9zdGVyUHJvdmlkZXIsXG4gIHNldExvZ2luVHlwZSxcbiAgc2V0UGFydGljaXBhbnRUeXBlLFxuICBoYW5kbGVDYW5jZWwsXG4gIGF2YWlsYWJsZVBhcnRpY2lwYW50VHlwZXMsXG4gIGFzc2lnbmVkQ291cnNlT2ZmZXJpbmcsXG4gIGFzeW5jTG9hZENvbXBsZXRlLFxufSkgPT4ge1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIGFzc2lnbmVkQ291cnNlT2ZmZXJpbmcgJiZcbiAgICAgIGFzeW5jTG9hZENvbXBsZXRlICYmXG4gICAgICAhc2VjdGlvbj8ucGFydGljaXBhbnRUeXBlXG4gICAgKSB7XG4gICAgICBzZXRQYXJ0aWNpcGFudFR5cGUoYXNzaWduZWRDb3Vyc2VPZmZlcmluZy5wYXJ0aWNpcGFudF9hdWRpZW5jZSk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2Fzc2lnbmVkQ291cnNlT2ZmZXJpbmcsIGFzeW5jTG9hZENvbXBsZXRlLCBzZWN0aW9uPy5wYXJ0aWNpcGFudFR5cGVdKTtcblxuICBjb25zdCB7bG9naW5UeXBlLCBwYXJ0aWNpcGFudFR5cGV9ID0gc2VjdGlvbiB8fCB7fTtcbiAgY29uc3QgdGl0bGUgPSBpMThuLm5ld1NlY3Rpb25VcGRhdGVkKCk7XG5cbiAgY29uc3Qgb25QYXJ0aWNpcGFudFR5cGVTZWxlY3Rpb24gPSBwYXJ0aWNpcGFudFR5cGUgPT4ge1xuICAgIGlmIChwYXJ0aWNpcGFudFR5cGUgIT09ICdzdHVkZW50Jykge1xuICAgICAgcmVkaXJlY3RUb05ld1NlY3Rpb25QYWdlKHBhcnRpY2lwYW50VHlwZSwgU2VjdGlvbkxvZ2luVHlwZS5lbWFpbCk7XG4gICAgfVxuICAgIHNldFBhcnRpY2lwYW50VHlwZShwYXJ0aWNpcGFudFR5cGUpO1xuICB9O1xuXG4gIGNvbnN0IG9uTG9naW5UeXBlU2VsZWN0aW9uID0gbG9naW5UeXBlID0+IHtcbiAgICAvLyBPYXV0aCBzZWN0aW9uIHR5cGVzIHNob3VsZCB1c2UgdGhlIHJvc3RlciBkaWFsb2csIG5vdCB0aGUgc2VjdGlvbiBzZXR1cCBwYWdlXG4gICAgaWYgKFxuICAgICAgW1xuICAgICAgICBTZWN0aW9uTG9naW5UeXBlLnBpY3R1cmUsXG4gICAgICAgIFNlY3Rpb25Mb2dpblR5cGUud29yZCxcbiAgICAgICAgU2VjdGlvbkxvZ2luVHlwZS5lbWFpbCxcbiAgICAgIF0uaW5jbHVkZXMobG9naW5UeXBlKVxuICAgICkge1xuICAgICAgcmVkaXJlY3RUb05ld1NlY3Rpb25QYWdlKHBhcnRpY2lwYW50VHlwZSwgbG9naW5UeXBlKTtcbiAgICB9XG4gICAgc2V0TG9naW5UeXBlKGxvZ2luVHlwZSk7XG4gIH07XG5cbiAgY29uc3QgZ2V0RGlhbG9nQ29udGVudCA9ICgpID0+IHtcbiAgICBpZiAoIWFzeW5jTG9hZENvbXBsZXRlKSB7XG4gICAgICByZXR1cm4gPFNwaW5uZXIgc2l6ZT1cImxhcmdlXCIgc3R5bGU9e3twYWRkaW5nOiA1MH19IC8+O1xuICAgIH1cbiAgICAvKlxuICAgIFRoZSBQYXJ0aWNpcGFudCBUeXBlIFBpY2tlciB3aWxsIGJlIHNraXBwZWQgaWYgc29tZW9uZSBvbmx5IGhhdmUgcGVybWlzc2lvbnMgdG8gY3JlYXRlIHNlY3Rpb25zIGZvciBvbmVcbiAgICB0eXBlIG9mIHBhcnRpY2lwYW50cy4gU2VlIHRlYWNoZXJTZWN0aW9uc1JlZHV4IGZvciBtb3JlIGRldGFpbHMgb24gaG93IHRoaXMgaXMgc2V0IHVwLlxuICAgICovXG4gICAgaWYgKCFwYXJ0aWNpcGFudFR5cGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxQYXJ0aWNpcGFudFR5cGVQaWNrZXJcbiAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgICAgc2V0UGFydGljaXBhbnRUeXBlPXtvblBhcnRpY2lwYW50VHlwZVNlbGVjdGlvbn1cbiAgICAgICAgICBoYW5kbGVDYW5jZWw9e2hhbmRsZUNhbmNlbH1cbiAgICAgICAgICBhdmFpbGFibGVQYXJ0aWNpcGFudFR5cGVzPXthdmFpbGFibGVQYXJ0aWNpcGFudFR5cGVzfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCFsb2dpblR5cGUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxMb2dpblR5cGVQaWNrZXJcbiAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgICAgaGFuZGxlSW1wb3J0T3Blbj17YmVnaW5JbXBvcnRSb3N0ZXJGbG93fVxuICAgICAgICAgIHNldFJvc3RlclByb3ZpZGVyPXtzZXRSb3N0ZXJQcm92aWRlcn1cbiAgICAgICAgICBzZXRMb2dpblR5cGU9e29uTG9naW5UeXBlU2VsZWN0aW9ufVxuICAgICAgICAgIGhhbmRsZUNhbmNlbD17aGFuZGxlQ2FuY2VsfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgaWYgKHBhcnRpY2lwYW50VHlwZSAmJiBsb2dpblR5cGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEJhc2VEaWFsb2dcbiAgICAgICAgdXNlVXBkYXRlZFN0eWxlc1xuICAgICAgICBmaXhlZFdpZHRoPXsxMDEwfVxuICAgICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgdW5jbG9zZWFibGVcbiAgICAgICAgc3R5bGU9e3tvdmVyZmxvdzogJ2hpZGRlbid9fVxuICAgICAgPlxuICAgICAgICA8UGFkQW5kQ2VudGVyPntnZXREaWFsb2dDb250ZW50KCl9PC9QYWRBbmRDZW50ZXI+XG4gICAgICA8L0Jhc2VEaWFsb2c+XG4gICAgKTtcbiAgfVxufTtcblxuQWRkU2VjdGlvbkRpYWxvZy5wcm9wVHlwZXMgPSB7XG4gIC8vIFByb3ZpZGVkIGJ5IFJlZHV4XG4gIGlzT3BlbjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgc2VjdGlvbjogc2VjdGlvblNoYXBlLFxuICBiZWdpbkltcG9ydFJvc3RlckZsb3c6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNldFJvc3RlclByb3ZpZGVyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzZXRMb2dpblR5cGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNldFBhcnRpY2lwYW50VHlwZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBhdmFpbGFibGVQYXJ0aWNpcGFudFR5cGVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKS5pc1JlcXVpcmVkLFxuICBhc3NpZ25lZENvdXJzZU9mZmVyaW5nOiBQcm9wVHlwZXMub2JqZWN0LFxuICBhc3luY0xvYWRDb21wbGV0ZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgY29uc3QgVW5jb25uZWN0ZWRBZGRTZWN0aW9uRGlhbG9nID0gQWRkU2VjdGlvbkRpYWxvZztcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChcbiAgc3RhdGUgPT4gKHtcbiAgICBpc09wZW46IGlzQWRkaW5nU2VjdGlvbihzdGF0ZS50ZWFjaGVyU2VjdGlvbnMpLFxuICAgIHNlY3Rpb246IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5zZWN0aW9uQmVpbmdFZGl0ZWQsXG4gICAgYXZhaWxhYmxlUGFydGljaXBhbnRUeXBlczogc3RhdGUudGVhY2hlclNlY3Rpb25zLmF2YWlsYWJsZVBhcnRpY2lwYW50VHlwZXMsXG4gICAgYXNzaWduZWRDb3Vyc2VPZmZlcmluZzogYXNzaWduZWRDb3Vyc2VPZmZlcmluZyhzdGF0ZSksXG4gICAgYXN5bmNMb2FkQ29tcGxldGU6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5hc3luY0xvYWRDb21wbGV0ZSxcbiAgfSksXG4gIGRpc3BhdGNoID0+ICh7XG4gICAgYmVnaW5JbXBvcnRSb3N0ZXJGbG93OiAoKSA9PiBkaXNwYXRjaChiZWdpbkltcG9ydFJvc3RlckZsb3coKSksXG4gICAgc2V0Um9zdGVyUHJvdmlkZXI6IHByb3ZpZGVyID0+IGRpc3BhdGNoKHNldFJvc3RlclByb3ZpZGVyKHByb3ZpZGVyKSksXG4gICAgc2V0TG9naW5UeXBlOiBsb2dpblR5cGUgPT4gZGlzcGF0Y2goZWRpdFNlY3Rpb25Qcm9wZXJ0aWVzKHtsb2dpblR5cGV9KSksXG4gICAgc2V0UGFydGljaXBhbnRUeXBlOiBwYXJ0aWNpcGFudFR5cGUgPT5cbiAgICAgIGRpc3BhdGNoKGVkaXRTZWN0aW9uUHJvcGVydGllcyh7cGFydGljaXBhbnRUeXBlfSkpLFxuICAgIGhhbmRsZUNhbmNlbDogKCkgPT4gZGlzcGF0Y2goY2FuY2VsRWRpdGluZ1NlY3Rpb24oKSksXG4gIH0pXG4pKEFkZFNlY3Rpb25EaWFsb2cpO1xuIiwiaW1wb3J0IHtvcmRlckJ5LCByYW5kb219IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCAqIGFzIFRhYmxlIGZyb20gJ3JlYWN0YWJ1bGFyLXRhYmxlJztcbmltcG9ydCAqIGFzIHNvcnQgZnJvbSAnc29ydGFidWxhcic7XG5cbmltcG9ydCB7T0F1dGhTZWN0aW9uVHlwZXN9IGZyb20gJ0BjZG8vYXBwcy9hY2NvdW50cy9jb25zdGFudHMnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAY2RvL2FwcHMvbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9CdXR0b24nO1xuaW1wb3J0IHt0ZWFjaGVyRGFzaGJvYXJkVXJsfSBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvdXJsSGVscGVycyc7XG5pbXBvcnQge1NlY3Rpb25Mb2dpblR5cGV9IGZyb20gJ0BjZG8vZ2VuZXJhdGVkLXNjcmlwdHMvc2hhcmVkQ29uc3RhbnRzJztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IHtzdHJpbmdpZnlRdWVyeVBhcmFtc30gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtwbFRhYmxlTGF5b3V0U3R5bGVzLCBzb3J0YWJsZU9wdGlvbnN9IGZyb20gJy4uL3RhYmxlcy90YWJsZUNvbnN0YW50cyc7XG5pbXBvcnQgd3JhcHBlZFNvcnRhYmxlIGZyb20gJy4uL3RhYmxlcy93cmFwcGVkX3NvcnRhYmxlJztcblxuaW1wb3J0IFNlY3Rpb25BY3Rpb25Ecm9wZG93biBmcm9tICcuL1NlY3Rpb25BY3Rpb25Ecm9wZG93bic7XG5pbXBvcnQge3NvcnRhYmxlU2VjdGlvblNoYXBlfSBmcm9tICcuL3NoYXBlcyc7XG5pbXBvcnQge2dldFNlY3Rpb25Sb3dzfSBmcm9tICcuL3RlYWNoZXJTZWN0aW9uc1JlZHV4U2VsZWN0b3JzJztcblxuaW1wb3J0IHNrZWxldG9uaXplQ29udGVudCBmcm9tICdAY2RvL2FwcHMvc2hhcmVkQ29tcG9uZW50cy9za2VsZXRvbml6ZS1jb250ZW50Lm1vZHVsZS5zY3NzJztcblxuLyoqIEBlbnVtIHtudW1iZXJ9ICovXG5leHBvcnQgY29uc3QgQ09MVU1OUyA9IHtcbiAgSUQ6IDAsXG4gIFNFQ1RJT05fTkFNRTogMSxcbiAgR1JBREU6IDIsXG4gIENPVVJTRTogMyxcbiAgU1RVREVOVFM6IDQsXG4gIExPR0lOX0lORk86IDUsXG4gIEVESVRfREVMRVRFOiA2LFxufTtcblxuY29uc3QgcGFydGljaXBhbnROYW1lcyA9IHtcbiAgZmFjaWxpdGF0b3I6IGkxOG4ucGFydGljaXBhbnRUeXBlRmFjaWxpdGF0b3JUaXRsZSgpLFxuICB0ZWFjaGVyOiBpMThuLnBhcnRpY2lwYW50VHlwZVRlYWNoZXJUaXRsZSgpLFxufTtcblxuLy8gQ2VsbCBmb3JtYXR0ZXJzIGZvciBzb3J0YWJsZSBPd25lZFBsU2VjdGlvbnNUYWJsZS5cbmV4cG9ydCBjb25zdCBzZWN0aW9uTGlua0Zvcm1hdHRlciA9IGZ1bmN0aW9uIChuYW1lLCB7cm93RGF0YX0pIHtcbiAgcmV0dXJuIChcbiAgICA8YSBzdHlsZT17cGxUYWJsZUxheW91dFN0eWxlcy5saW5rfSBocmVmPXt0ZWFjaGVyRGFzaGJvYXJkVXJsKHJvd0RhdGEuaWQpfT5cbiAgICAgIHtyb3dEYXRhLm5hbWV9XG4gICAgPC9hPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvdXJzZUxpbmtGb3JtYXR0ZXIgPSBmdW5jdGlvbiAoY291cnNlLCB7cm93RGF0YX0pIHtcbiAgY29uc3Qge1xuICAgIGFzc2lnbm1lbnROYW1lcyxcbiAgICBhc3NpZ25tZW50UGF0aHMsXG4gICAgY291cnNlT2ZmZXJpbmdzQXJlTG9hZGVkLFxuICAgIGlzQXNzaWduZWRTaW5nbGVVbml0Q291cnNlLFxuICB9ID0gcm93RGF0YTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAge2NvdXJzZU9mZmVyaW5nc0FyZUxvYWRlZCA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj17YCR7YXNzaWdubWVudFBhdGhzWzBdfSR7c3RyaW5naWZ5UXVlcnlQYXJhbXMoe1xuICAgICAgICAgICAgICBzZWN0aW9uX2lkOiByb3dEYXRhLmlkLFxuICAgICAgICAgICAgfSl9YH1cbiAgICAgICAgICAgIHN0eWxlPXtwbFRhYmxlTGF5b3V0U3R5bGVzLmxpbmt9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Fzc2lnbm1lbnROYW1lc1swXX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAge2Fzc2lnbm1lbnRQYXRocy5sZW5ndGggPiAxICYmICFpc0Fzc2lnbmVkU2luZ2xlVW5pdENvdXJzZSAmJiAoXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtwbFRhYmxlTGF5b3V0U3R5bGVzLmN1cnJlbnRVbml0fT5cbiAgICAgICAgICAgICAgPGRpdj57aTE4bi5jdXJyZW50VW5pdCgpfTwvZGl2PlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9e2Ake2Fzc2lnbm1lbnRQYXRoc1sxXX0ke3N0cmluZ2lmeVF1ZXJ5UGFyYW1zKHtcbiAgICAgICAgICAgICAgICAgIHNlY3Rpb25faWQ6IHJvd0RhdGEuaWQsXG4gICAgICAgICAgICAgICAgfSl9YH1cbiAgICAgICAgICAgICAgICBzdHlsZT17cGxUYWJsZUxheW91dFN0eWxlcy5saW5rfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2Fzc2lnbm1lbnROYW1lc1sxXX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7YXNzaWdubWVudFBhdGhzLmxlbmd0aCA8IDEgJiYgKFxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBfX3VzZURlcHJlY2F0ZWRUYWdcbiAgICAgICAgICAgICAgdGV4dD17aTE4bi5jb3Vyc2VzQ2FyZEFjdGlvbigpfVxuICAgICAgICAgICAgICBocmVmPXsnL2NhdGFsb2cnfVxuICAgICAgICAgICAgICBjb2xvcj17QnV0dG9uLkJ1dHRvbkNvbG9yLm5ldXRyYWxEYXJrfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3NOYW1lPXtza2VsZXRvbml6ZUNvbnRlbnQuc2tlbGV0b25pemVDb250ZW50fVxuICAgICAgICAgIHN0eWxlPXt7d2lkdGg6IHJhbmRvbSgzMCwgOTApICsgJyUnfX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgbG9naW5JbmZvRm9ybWF0dGVyID0gZnVuY3Rpb24gKGxvZ2luVHlwZSwge3Jvd0RhdGF9KSB7XG4gIGxldCBzZWN0aW9uQ29kZSA9ICcnO1xuXG4gIC8vIEZvciBtYW5hZ2VkIGxvZ2lucywganVzdCBzaG93IHRoZSBwcm92aWRlciBuYW1lIHJhdGhlciB0aGFuIHRoZSBsb2dpbiBjb2RlLlxuICBpZiAocm93RGF0YS5sb2dpblR5cGUgPT09IE9BdXRoU2VjdGlvblR5cGVzLmNsZXZlcikge1xuICAgIHNlY3Rpb25Db2RlID0gaTE4bi5sb2dpblR5cGVDbGV2ZXIoKTtcbiAgfSBlbHNlIGlmIChyb3dEYXRhLmxvZ2luVHlwZSA9PT0gT0F1dGhTZWN0aW9uVHlwZXMuZ29vZ2xlX2NsYXNzcm9vbSkge1xuICAgIHNlY3Rpb25Db2RlID0gaTE4bi5sb2dpblR5cGVHb29nbGVDbGFzc3Jvb20oKTtcbiAgfSBlbHNlIGlmIChyb3dEYXRhLmxvZ2luVHlwZSA9PT0gU2VjdGlvbkxvZ2luVHlwZS5sdGlfdjEpIHtcbiAgICBzZWN0aW9uQ29kZSA9IHJvd0RhdGEubG9naW5UeXBlTmFtZTtcbiAgfSBlbHNlIHtcbiAgICBzZWN0aW9uQ29kZSA9IHJvd0RhdGEuY29kZTtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxhXG4gICAgICBzdHlsZT17cGxUYWJsZUxheW91dFN0eWxlcy5zZWN0aW9uQ29kZUxpbmt9XG4gICAgICBocmVmPXt0ZWFjaGVyRGFzaGJvYXJkVXJsKHJvd0RhdGEuaWQsICcvbG9naW5faW5mbycpfVxuICAgID5cbiAgICAgIHtzZWN0aW9uQ29kZX1cbiAgICA8L2E+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc3R1ZGVudHNGb3JtYXR0ZXIgPSBmdW5jdGlvbiAoc3R1ZGVudENvdW50LCB7cm93RGF0YX0pIHtcbiAgY29uc3QgbWFuYWdlU3R1ZGVudHNVcmwgPSB0ZWFjaGVyRGFzaGJvYXJkVXJsKHJvd0RhdGEuaWQsICcvbWFuYWdlX3N0dWRlbnRzJyk7XG4gIGNvbnN0IHN0dWRlbnRIdG1sID1cbiAgICByb3dEYXRhLnN0dWRlbnRDb3VudCA8PSAwID8gKFxuICAgICAgPEJ1dHRvblxuICAgICAgICBfX3VzZURlcHJlY2F0ZWRUYWdcbiAgICAgICAgdGV4dD17aTE4bi5hZGRTdHVkZW50cygpfVxuICAgICAgICBocmVmPXttYW5hZ2VTdHVkZW50c1VybH1cbiAgICAgICAgY29sb3I9e0J1dHRvbi5CdXR0b25Db2xvci5uZXV0cmFsRGFya31cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIDxhXG4gICAgICAgIHN0eWxlPXtwbFRhYmxlTGF5b3V0U3R5bGVzLmxpbmt9XG4gICAgICAgIGhyZWY9e21hbmFnZVN0dWRlbnRzVXJsfVxuICAgICAgICBhcmlhLWxhYmVsPXtpMThuLm1hbmFnZVN0dWRlbnRzQXJpYUxhYmVsKHtcbiAgICAgICAgICBudW1TdHVkZW50czogc3R1ZGVudENvdW50LFxuICAgICAgICB9KX1cbiAgICAgID5cbiAgICAgICAge3Jvd0RhdGEuc3R1ZGVudENvdW50fVxuICAgICAgPC9hPlxuICAgICk7XG4gIHJldHVybiBzdHVkZW50SHRtbDtcbn07XG5cbi8qKlxuICogVGhpcyBpcyBhIGNvbXBvbmVudCB0aGF0IHNob3dzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBQcm9mZXNzaW9uYWwgTGVhcm5pbmcgc2VjdGlvbnMgdGhhdFxuICogYSB0ZWFjaGVyIG93bnMsIGFuZCBhbGxvd3MgZm9yIGVkaXRpbmcsIGRlbGV0aW5nIGFuZCBzb3J0aW5nIHRoZW0uXG4gKiBJdCBzaG93cyBzb21lIG9mIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIHRoZSBTZWN0aW9uc0FzU3R1ZGVudFRhYmxlIHVzZWQgb24gdGhlIHRlYWNoZXJcbiAqIGhvbWVwYWdlLiBIb3dldmVyLCBmb3IgaGlzdG9yaWNhbCByZWFzb25zIGl0IHVuZm9ydHVuYXRlbHkgaGFzIGEgc29tZXdoYXRcbiAqIGRpZmZlcmVudCBzZXQvc2hhcGUgb2YgaW5wdXQgZGF0YS4gVGhpcyBjb21wb25lbnQgZ2V0cyBpdHMgZGF0YSBmcm9tXG4gKiBzZWN0aW9uX2FwaV9oZWxwZXJzIGluIHBlZ2FzdXMgdmlhIGFuIEFKQVggY2FsbCwgd2hlcmVhcyB0aGF0IGNvbXBvbmVudCBnZXRzXG4gKiBpdHMgZGF0YSBmcm9tIHNlY3Rpb24uc3VtbWFyaXplIG9uIHBhZ2UgbG9hZC5cbiAqIEJvdGggdWx0aW1hdGVseSBzb3VyY2UgZGF0YSBmcm9tIHRoZSBkYXNoYm9hcmQgZGIuXG4gKiBMb25nIHRlcm0gaXQgd291bGQgYmUgaWRlYWwgaWYgc2VjdGlvbl9hcGlfaGVscGVycyB3ZW50IGF3YXkgYW5kIGJvdGggY29tcG9uZW50c1xuICogdXNlZCBkYXNoYm9hcmQuXG4gKi9cbmNsYXNzIE93bmVkUGxTZWN0aW9uc1RhYmxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKS5pc1JlcXVpcmVkLFxuICAgIG9uRWRpdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcblxuICAgIC8vUHJvdmlkZWQgYnkgcmVkdXhcbiAgICBzZWN0aW9uUm93czogUHJvcFR5cGVzLmFycmF5T2Yoc29ydGFibGVTZWN0aW9uU2hhcGUpLmlzUmVxdWlyZWQsXG4gICAgaXNSdGw6IFByb3BUeXBlcy5ib29sLFxuICB9O1xuXG4gIHN0YXRlID0ge1xuICAgIHNvcnRpbmdDb2x1bW5zOiB7XG4gICAgICBbQ09MVU1OUy5JRF06IHtcbiAgICAgICAgZGlyZWN0aW9uOiAnZGVzYycsXG4gICAgICAgIHBvc2l0aW9uOiAwLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIHBhcnRpY2lwYW50TmFtZUZvcm1hdHRlciA9IChwYXJ0aWNpcGFudFR5cGUsIHtyb3dEYXRhfSkgPT4ge1xuICAgIHJldHVybiA8ZGl2PntwYXJ0aWNpcGFudE5hbWVzW3Jvd0RhdGEucGFydGljaXBhbnRUeXBlXX08L2Rpdj47XG4gIH07XG5cbiAgYWN0aW9uQ2VsbEZvcm1hdHRlciA9ICh0ZW1wLCB7cm93RGF0YX0pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPFNlY3Rpb25BY3Rpb25Ecm9wZG93blxuICAgICAgICBzZWN0aW9uRGF0YT17cm93RGF0YX1cbiAgICAgICAgaGFuZGxlRWRpdD17dGhpcy5wcm9wcy5vbkVkaXR9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgLy8gVGhlIHVzZXIgcmVxdWVzdGVkIGEgbmV3IHNvcnRpbmcgY29sdW1uLiBBZGp1c3QgdGhlIHN0YXRlIGFjY29yZGluZ2x5LlxuICBvblNvcnQgPSBzZWxlY3RlZENvbHVtbiA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzb3J0aW5nQ29sdW1uczogc29ydC5ieUNvbHVtbih7XG4gICAgICAgIHNvcnRpbmdDb2x1bW5zOiB0aGlzLnN0YXRlLnNvcnRpbmdDb2x1bW5zLFxuICAgICAgICAvLyBDdXN0b20gc29ydGluZ09yZGVyIHJlbW92ZXMgJ25vLXNvcnQnIGZyb20gdGhlIGN5Y2xlXG4gICAgICAgIHNvcnRpbmdPcmRlcjoge1xuICAgICAgICAgIEZJUlNUOiAnYXNjJyxcbiAgICAgICAgICBhc2M6ICdkZXNjJyxcbiAgICAgICAgICBkZXNjOiAnYXNjJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0ZWRDb2x1bW4sXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfTtcblxuICBnZXRTb3J0aW5nQ29sdW1ucyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zb3J0aW5nQ29sdW1ucyB8fCB7fTtcbiAgfTtcblxuICBnZXRDb2x1bW5zID0gc29ydGFibGUgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnbmFtZScsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGxhYmVsOiBpMThuLnNlY3Rpb24oKSxcbiAgICAgICAgICB0cmFuc2Zvcm1zOiBbc29ydGFibGVdLFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW3NlY3Rpb25MaW5rRm9ybWF0dGVyXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAncGFydGljaXBhbnRUeXBlJyxcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgbGFiZWw6IGkxOG4ucGFydGljaXBhbnRzKCksXG4gICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3VpdGVzdC1wYXJ0aWNpcGFudC10eXBlLWhlYWRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmFuc2Zvcm1zOiBbc29ydGFibGVdLFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW3RoaXMucGFydGljaXBhbnROYW1lRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiBwbFRhYmxlTGF5b3V0U3R5bGVzLnBhcnRpY2lwYW50VHlwZUNlbGx9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICdjb3Vyc2UnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5jb3Vyc2UoKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFtjb3Vyc2VMaW5rRm9ybWF0dGVyXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnc3R1ZGVudENvdW50JyxcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgbGFiZWw6IGkxOG4uc3R1ZGVudHMoKSxcbiAgICAgICAgICB0cmFuc2Zvcm1zOiBbc29ydGFibGVdLFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW3N0dWRlbnRzRm9ybWF0dGVyXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnbG9naW5UeXBlJyxcbiAgICAgICAgaGVhZGVyOiB7XG4gICAgICAgICAgbGFiZWw6IGkxOG4ubG9naW5JbmZvKCksXG4gICAgICAgIH0sXG4gICAgICAgIGNlbGw6IHtcbiAgICAgICAgICBmb3JtYXR0ZXJzOiBbbG9naW5JbmZvRm9ybWF0dGVyXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3BlcnR5OiAnYWN0aW9ucycsXG4gICAgICAgIGNlbGw6IHtcbiAgICAgICAgICBmb3JtYXR0ZXJzOiBbdGhpcy5hY3Rpb25DZWxsRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiB7Li4ucGxUYWJsZUxheW91dFN0eWxlcy5jb2xCdXR0b259fSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgc29ydGFibGUgPSB3cmFwcGVkU29ydGFibGUoXG4gICAgICB0aGlzLmdldFNvcnRpbmdDb2x1bW5zLFxuICAgICAgdGhpcy5vblNvcnQsXG4gICAgICBzb3J0YWJsZU9wdGlvbnNcbiAgICApO1xuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmdldENvbHVtbnMoc29ydGFibGUpO1xuICAgIGNvbnN0IHNvcnRpbmdDb2x1bW5zID0gdGhpcy5nZXRTb3J0aW5nQ29sdW1ucygpO1xuXG4gICAgY29uc3Qgc29ydGVkUm93cyA9IHNvcnQuc29ydGVyKHtcbiAgICAgIGNvbHVtbnMsXG4gICAgICBzb3J0aW5nQ29sdW1ucyxcbiAgICAgIHNvcnQ6ICh4LCB5LCB6KSA9PiB7XG4gICAgICAgIHJldHVybiBvcmRlckJ5KHgsIHksIHopO1xuICAgICAgfSxcbiAgICB9KSh0aGlzLnByb3BzLnNlY3Rpb25Sb3dzKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8VGFibGUuUHJvdmlkZXIgY2xhc3NOYW1lPVwidWl0ZXN0LW93bmVkLXBsLXNlY3Rpb25zXCIgY29sdW1ucz17Y29sdW1uc30+XG4gICAgICAgIDxUYWJsZS5IZWFkZXIgLz5cbiAgICAgICAgPFRhYmxlLkJvZHlcbiAgICAgICAgICBjbGFzc05hbWU9XCJ1aXRlc3Qtc29ydGVkLXJvd3NcIlxuICAgICAgICAgIHJvd3M9e3NvcnRlZFJvd3N9XG4gICAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZS5Qcm92aWRlcj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZE93bmVkUGxTZWN0aW9uc1RhYmxlID0gT3duZWRQbFNlY3Rpb25zVGFibGU7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QoKHN0YXRlLCBvd25Qcm9wcykgPT4gKHtcbiAgc2VjdGlvblJvd3M6IGdldFNlY3Rpb25Sb3dzKHN0YXRlLCBvd25Qcm9wcy5zZWN0aW9uSWRzKSxcbiAgaXNSdGw6IHN0YXRlLmlzUnRsLFxufSkpKE93bmVkUGxTZWN0aW9uc1RhYmxlKTtcbiIsIi8qKiBAZmlsZSBSZXVzYWJsZSB3aWRnZXQgdG8gZGlzcGxheSBhbmQgbWFuYWdlIHNlY3Rpb25zIG93bmVkIGJ5IHRoZVxuICogICAgICAgIGN1cnJlbnQgdXNlci4gKi9cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BjZG8vYXBwcy9sZWdhY3lTaGFyZWRDb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQgTHRpRmVlZGJhY2tCYW5uZXIgZnJvbSAnQGNkby9hcHBzL3NpbXBsZVNpZ25VcC9sdGkvZmVlZGJhY2svTHRpRmVlZGJhY2tCYW5uZXInO1xuaW1wb3J0IHN0eWxlQ29uc3RhbnRzIGZyb20gJ0BjZG8vYXBwcy9zdHlsZUNvbnN0YW50cyc7XG5pbXBvcnQgR2xvYmFsRWRpdGlvbldyYXBwZXIgZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy9HbG9iYWxFZGl0aW9uV3JhcHBlcic7XG5pbXBvcnQgY29sb3IgZnJvbSAnQGNkby9hcHBzL3V0aWwvY29sb3InO1xuaW1wb3J0IGV4cGVyaW1lbnRzIGZyb20gJ0BjZG8vYXBwcy91dGlsL2V4cGVyaW1lbnRzJztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IHtyZWNvcmRJbXByZXNzaW9ufSBmcm9tICcuL2ltcHJlc3Npb25IZWxwZXJzJztcbmltcG9ydCBPd25lZFBsU2VjdGlvbnNUYWJsZSBmcm9tICcuL093bmVkUGxTZWN0aW9uc1RhYmxlJztcbmltcG9ydCBPd25lZFNlY3Rpb25zVGFibGUgZnJvbSAnLi9Pd25lZFNlY3Rpb25zVGFibGUnO1xuaW1wb3J0IHtyZWNvcmRPcGVuRWRpdFNlY3Rpb25EZXRhaWxzfSBmcm9tICcuL3NlY3Rpb25IZWxwZXJzJztcbmltcG9ydCB7YmVnaW5FZGl0aW5nU2VjdGlvbn0gZnJvbSAnLi90ZWFjaGVyU2VjdGlvbnNSZWR1eCc7XG5cbmNsYXNzIE93bmVkU2VjdGlvbnMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGlzUGxTZWN0aW9uczogUHJvcFR5cGVzLmJvb2wsXG4gICAgc2VjdGlvbklkczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm51bWJlcikuaXNSZXF1aXJlZCxcbiAgICBoaWRkZW5TZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKS5pc1JlcXVpcmVkLFxuXG4gICAgLy8gcmVkdXggcHJvdmlkZWRcbiAgICBiZWdpbkVkaXRpbmdTZWN0aW9uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIHN0YXRlID0ge1xuICAgIHZpZXdIaWRkZW46IGZhbHNlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMub25FZGl0U2VjdGlvbiA9IHRoaXMub25FZGl0U2VjdGlvbi5iaW5kKHRoaXMpO1xuICAgIGlmIChleHBlcmltZW50cy5pc0VuYWJsZWQoZXhwZXJpbWVudHMuVEVBQ0hFUl9EQVNIQk9BUkRfU0VDVElPTl9CVVRUT05TKSkge1xuICAgICAgcmVjb3JkSW1wcmVzc2lvbignb3duZWRfc2VjdGlvbnNfdGFibGVfd2l0aF9kYXNoYm9hcmRfaGVhZGVyX2J1dHRvbnMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVjb3JkSW1wcmVzc2lvbignb3duZWRfc2VjdGlvbnNfdGFibGVfd2l0aG91dF9kYXNoYm9hcmRfaGVhZGVyX2J1dHRvbnMnKTtcbiAgICB9XG4gIH1cblxuICBvbkVkaXRTZWN0aW9uKGlkKSB7XG4gICAgdGhpcy5wcm9wcy5iZWdpbkVkaXRpbmdTZWN0aW9uKGlkKTtcbiAgICBpZiAoZXhwZXJpbWVudHMuaXNFbmFibGVkKGV4cGVyaW1lbnRzLlRFQUNIRVJfREFTSEJPQVJEX1NFQ1RJT05fQlVUVE9OUykpIHtcbiAgICAgIHJlY29yZE9wZW5FZGl0U2VjdGlvbkRldGFpbHMoXG4gICAgICAgIGlkLFxuICAgICAgICAnb3duZWRfc2VjdGlvbnNfdGFibGVfd2l0aF9kYXNoYm9hcmRfaGVhZGVyX2J1dHRvbnMnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWNvcmRPcGVuRWRpdFNlY3Rpb25EZXRhaWxzKFxuICAgICAgICBpZCxcbiAgICAgICAgJ293bmVkX3NlY3Rpb25zX3RhYmxlX3dpdGhvdXRfZGFzaGJvYXJkX2hlYWRlcl9idXR0b25zJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBXcmFwcGVkIHRvIGF2b2lkIHBhc3NpbmcgZXZlbnQgYXJnc1xuICBiZWdpbkVkaXRpbmdTZWN0aW9uID0gKCkgPT4gdGhpcy5wcm9wcy5iZWdpbkVkaXRpbmdTZWN0aW9uKCk7XG5cbiAgdG9nZ2xlVmlld0hpZGRlbiA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHZpZXdIaWRkZW46ICF0aGlzLnN0YXRlLnZpZXdIaWRkZW4sXG4gICAgfSk7XG4gIH07XG5cbiAgb3duZWRTZWN0aW9uc1RhYmxlID0gc2hvd0hpZGRlbiA9PiB7XG4gICAgY29uc3Qge2lzUGxTZWN0aW9ucywgc2VjdGlvbklkcywgaGlkZGVuU2VjdGlvbklkc30gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHNlY3Rpb25zVG9TaG93ID0gc2hvd0hpZGRlblxuICAgICAgPyBoaWRkZW5TZWN0aW9uSWRzXG4gICAgICA6IF8ud2l0aG91dChzZWN0aW9uSWRzLCAuLi5oaWRkZW5TZWN0aW9uSWRzKTtcblxuICAgIHJldHVybiBpc1BsU2VjdGlvbnMgPyAoXG4gICAgICA8T3duZWRQbFNlY3Rpb25zVGFibGVcbiAgICAgICAgc2VjdGlvbklkcz17c2VjdGlvbnNUb1Nob3d9XG4gICAgICAgIG9uRWRpdD17dGhpcy5vbkVkaXRTZWN0aW9ufVxuICAgICAgLz5cbiAgICApIDogKFxuICAgICAgPE93bmVkU2VjdGlvbnNUYWJsZVxuICAgICAgICBzZWN0aW9uSWRzPXtzZWN0aW9uc1RvU2hvd31cbiAgICAgICAgb25FZGl0PXt0aGlzLm9uRWRpdFNlY3Rpb259XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtzZWN0aW9uSWRzLCBoaWRkZW5TZWN0aW9uSWRzfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZpZXdIaWRkZW59ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IGhhc1NlY3Rpb25zID0gc2VjdGlvbklkcy5sZW5ndGggPiAwO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIHtoYXNTZWN0aW9ucyAmJiAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxHbG9iYWxFZGl0aW9uV3JhcHBlclxuICAgICAgICAgICAgICBjb21wb25lbnQ9e0x0aUZlZWRiYWNrQmFubmVyfVxuICAgICAgICAgICAgICBjb21wb25lbnRJZD1cIkx0aUZlZWRiYWNrQmFubmVyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7dGhpcy5vd25lZFNlY3Rpb25zVGFibGUoZmFsc2UpfVxuICAgICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmJ1dHRvbkNvbnRhaW5lcn0+XG4gICAgICAgICAgICAgIHtoaWRkZW5TZWN0aW9uSWRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVpLXRlc3Qtc2hvdy1oaWRlXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMudG9nZ2xlVmlld0hpZGRlbn1cbiAgICAgICAgICAgICAgICAgIGljb249e3ZpZXdIaWRkZW4gPyAnY2FyZXQtdXAnIDogJ2NhcmV0LWRvd24nfVxuICAgICAgICAgICAgICAgICAgdGV4dD17XG4gICAgICAgICAgICAgICAgICAgIHZpZXdIaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICA/IGkxOG4uaGlkZUFyY2hpdmVkU2VjdGlvbnMoKVxuICAgICAgICAgICAgICAgICAgICAgIDogaTE4bi52aWV3QXJjaGl2ZWRTZWN0aW9ucygpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb2xvcj17QnV0dG9uLkJ1dHRvbkNvbG9yLmdyYXl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge3ZpZXdIaWRkZW4gJiYgaGlkZGVuU2VjdGlvbklkcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuaGlkZGVuU2VjdGlvbkxhYmVsfT5cbiAgICAgICAgICAgICAgICAgIHtpMThuLmFyY2hpdmVkU2VjdGlvbnMoKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuaGlkZGVuU2VjdGlvbkRlc2N9PlxuICAgICAgICAgICAgICAgICAge2kxOG4uYXJjaGl2ZWRTZWN0aW9uc1RlYWNoZXJEZXNjcmlwdGlvbigpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHt0aGlzLm93bmVkU2VjdGlvbnNUYWJsZSh0cnVlKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBzdHlsZXMgPSB7XG4gIGJ1dHRvbjoge1xuICAgIG1hcmdpbkJvdHRvbTogMjAsXG4gICAgZmxvYXQ6ICdyaWdodCcsXG4gIH0sXG4gIGJ1dHRvbkNvbnRhaW5lcjoge1xuICAgIHdpZHRoOiBzdHlsZUNvbnN0YW50c1snY29udGVudC13aWR0aCddLFxuICAgIHRleHRBbGlnbjogJ3JpZ2h0JyxcbiAgICBwYWRkaW5nVG9wOiAxMCxcbiAgICBwYWRkaW5nQm90dG9tOiAxMCxcbiAgfSxcbiAgaGlkZGVuU2VjdGlvbkxhYmVsOiB7XG4gICAgZm9udFNpemU6IDE4LFxuICAgIHBhZGRpbmdCb3R0b206IDEwLFxuICAgIGNvbG9yOiBjb2xvci5jaGFyY29hbCxcbiAgfSxcbiAgaGlkZGVuU2VjdGlvbkRlc2M6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgbGluZUhlaWdodDogJzIycHgnLFxuICAgIHBhZGRpbmdCb3R0b206IDEwLFxuICAgIGNvbG9yOiBjb2xvci5jaGFyY29hbCxcbiAgfSxcbn07XG5leHBvcnQgY29uc3QgVW5jb25uZWN0ZWRPd25lZFNlY3Rpb25zID0gT3duZWRTZWN0aW9ucztcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdCgoKSA9PiAoe30pLCB7XG4gIGJlZ2luRWRpdGluZ1NlY3Rpb24sXG59KShPd25lZFNlY3Rpb25zKTtcbiIsImltcG9ydCB7b3JkZXJCeSwgc29ydEJ5LCByYW5kb219IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCAqIGFzIFRhYmxlIGZyb20gJ3JlYWN0YWJ1bGFyLXRhYmxlJztcbmltcG9ydCAqIGFzIHNvcnQgZnJvbSAnc29ydGFidWxhcic7XG5cbmltcG9ydCB7T0F1dGhTZWN0aW9uVHlwZXN9IGZyb20gJ0BjZG8vYXBwcy9hY2NvdW50cy9jb25zdGFudHMnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAY2RvL2FwcHMvbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9CdXR0b24nO1xuaW1wb3J0IHt0ZWFjaGVyRGFzaGJvYXJkVXJsfSBmcm9tICdAY2RvL2FwcHMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvdXJsSGVscGVycyc7XG5pbXBvcnQgY29sb3IgZnJvbSAnQGNkby9hcHBzL3V0aWwvY29sb3InO1xuaW1wb3J0IHtcbiAgU3R1ZGVudEdyYWRlTGV2ZWxzLFxuICBTZWN0aW9uTG9naW5UeXBlLFxufSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCB7c3RyaW5naWZ5UXVlcnlQYXJhbXN9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7dGFibGVMYXlvdXRTdHlsZXMsIHNvcnRhYmxlT3B0aW9uc30gZnJvbSAnLi4vdGFibGVzL3RhYmxlQ29uc3RhbnRzJztcbmltcG9ydCB3cmFwcGVkU29ydGFibGUgZnJvbSAnLi4vdGFibGVzL3dyYXBwZWRfc29ydGFibGUnO1xuaW1wb3J0IHtzaG93VjJUZWFjaGVyRGFzaGJvYXJkfSBmcm9tICcuLi90ZWFjaGVyTmF2aWdhdGlvbi9UZWFjaGVyTmF2RmxhZ1V0aWxzJztcblxuaW1wb3J0IFNlY3Rpb25BY3Rpb25Ecm9wZG93biBmcm9tICcuL1NlY3Rpb25BY3Rpb25Ecm9wZG93bic7XG5pbXBvcnQge3NvcnRhYmxlU2VjdGlvblNoYXBlfSBmcm9tICcuL3NoYXBlcyc7XG5pbXBvcnQge2dldFNlY3Rpb25Sb3dzfSBmcm9tICcuL3RlYWNoZXJTZWN0aW9uc1JlZHV4U2VsZWN0b3JzJztcblxuaW1wb3J0IHNrZWxldG9uaXplQ29udGVudCBmcm9tICdAY2RvL2FwcHMvc2hhcmVkQ29tcG9uZW50cy9za2VsZXRvbml6ZS1jb250ZW50Lm1vZHVsZS5zY3NzJztcblxuLyoqIEBlbnVtIHtudW1iZXJ9ICovXG5leHBvcnQgY29uc3QgQ09MVU1OUyA9IHtcbiAgSUQ6IDAsXG4gIFNFQ1RJT05fTkFNRTogMSxcbiAgR1JBREU6IDIsXG4gIENPVVJTRTogMyxcbiAgU1RVREVOVFM6IDQsXG4gIExPR0lOX0lORk86IDUsXG4gIEVESVRfREVMRVRFOiA2LFxufTtcblxuLy8gQ2VsbCBmb3JtYXR0ZXJzIGZvciBzb3J0YWJsZSBPd25lZFNlY3Rpb25zVGFibGUuXG5leHBvcnQgY29uc3Qgc2VjdGlvbkxpbmtGb3JtYXR0ZXIgPSBmdW5jdGlvbiAobmFtZSwge3Jvd0RhdGF9KSB7XG4gIHJldHVybiAoXG4gICAgPGEgc3R5bGU9e3RhYmxlTGF5b3V0U3R5bGVzLmxpbmt9IGhyZWY9e3RlYWNoZXJEYXNoYm9hcmRVcmwocm93RGF0YS5pZCl9PlxuICAgICAge3Jvd0RhdGEubmFtZX1cbiAgICA8L2E+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY291cnNlTGlua0Zvcm1hdHRlciA9IGZ1bmN0aW9uIChjb3Vyc2UsIHtyb3dEYXRhfSkge1xuICBjb25zdCB7XG4gICAgYXNzaWdubWVudE5hbWVzLFxuICAgIGFzc2lnbm1lbnRQYXRocyxcbiAgICBjb3Vyc2VPZmZlcmluZ3NBcmVMb2FkZWQsXG4gICAgaXNBc3NpZ25lZFNpbmdsZVVuaXRDb3Vyc2UsXG4gIH0gPSByb3dEYXRhO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtjb3Vyc2VPZmZlcmluZ3NBcmVMb2FkZWQgPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9e1xuICAgICAgICAgICAgICBzaG93VjJUZWFjaGVyRGFzaGJvYXJkKClcbiAgICAgICAgICAgICAgICA/IGFzc2lnbm1lbnRQYXRocy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgICBhc3NpZ25tZW50UGF0aHNbMF0uaW5jbHVkZXMoJy9zLycpXG4gICAgICAgICAgICAgICAgICA/IHRlYWNoZXJEYXNoYm9hcmRVcmwoXG4gICAgICAgICAgICAgICAgICAgICAgcm93RGF0YS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICBhc3NpZ25tZW50UGF0aHNbMF0ucmVwbGFjZSgnL3MvJywgJy91bml0LycpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogdGVhY2hlckRhc2hib2FyZFVybChyb3dEYXRhLmlkLCBhc3NpZ25tZW50UGF0aHNbMF0pXG4gICAgICAgICAgICAgICAgOiBgJHthc3NpZ25tZW50UGF0aHNbMF19JHtzdHJpbmdpZnlRdWVyeVBhcmFtcyh7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25faWQ6IHJvd0RhdGEuaWQsXG4gICAgICAgICAgICAgICAgICB9KX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdHlsZT17dGFibGVMYXlvdXRTdHlsZXMubGlua31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YXNzaWdubWVudE5hbWVzWzBdfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICB7YXNzaWdubWVudFBhdGhzLmxlbmd0aCA+IDEgJiYgIWlzQXNzaWduZWRTaW5nbGVVbml0Q291cnNlICYmIChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5jdXJyZW50VW5pdH0+XG4gICAgICAgICAgICAgIDxkaXY+e2kxOG4uY3VycmVudFVuaXQoKX08L2Rpdj5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtcbiAgICAgICAgICAgICAgICAgIHNob3dWMlRlYWNoZXJEYXNoYm9hcmQoKVxuICAgICAgICAgICAgICAgICAgICA/IHRlYWNoZXJEYXNoYm9hcmRVcmwoXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dEYXRhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudFBhdGhzWzFdLnJlcGxhY2UoJy9zLycsICcvdW5pdC8nKVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgOiBgJHthc3NpZ25tZW50UGF0aHNbMV19JHtzdHJpbmdpZnlRdWVyeVBhcmFtcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uX2lkOiByb3dEYXRhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgIH0pfWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3RhYmxlTGF5b3V0U3R5bGVzLmxpbmt9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YXNzaWdubWVudE5hbWVzWzFdfVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHthc3NpZ25tZW50UGF0aHMubGVuZ3RoIDwgMSAmJiAoXG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIF9fdXNlRGVwcmVjYXRlZFRhZ1xuICAgICAgICAgICAgICB0ZXh0PXtpMThuLmNvdXJzZXNDYXJkQWN0aW9uKCl9XG4gICAgICAgICAgICAgIGhyZWY9eycvY2F0YWxvZyd9XG4gICAgICAgICAgICAgIGNvbG9yPXtCdXR0b24uQnV0dG9uQ29sb3IubmV1dHJhbERhcmt9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IChcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzc05hbWU9e3NrZWxldG9uaXplQ29udGVudC5za2VsZXRvbml6ZUNvbnRlbnR9XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2ZvcmJpZC1kb20tcHJvcHNcbiAgICAgICAgICBkYXRhLXRlc3RpZD17J3NrZWxldG9uaXplLWNvbnRlbnQnfVxuICAgICAgICAgIHN0eWxlPXt7d2lkdGg6IHJhbmRvbSgzMCwgOTApICsgJyUnfX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgbG9naW5JbmZvRm9ybWF0dGVyID0gZnVuY3Rpb24gKGxvZ2luVHlwZSwge3Jvd0RhdGF9KSB7XG4gIGxldCBzZWN0aW9uQ29kZSA9ICcnO1xuXG4gIC8vIEZvciBtYW5hZ2VkIGxvZ2lucywganVzdCBzaG93IHRoZSBwcm92aWRlciBuYW1lIHJhdGhlciB0aGFuIHRoZSBsb2dpbiBjb2RlLlxuICBpZiAocm93RGF0YS5sb2dpblR5cGUgPT09IE9BdXRoU2VjdGlvblR5cGVzLmNsZXZlcikge1xuICAgIHNlY3Rpb25Db2RlID0gaTE4bi5sb2dpblR5cGVDbGV2ZXIoKTtcbiAgfSBlbHNlIGlmIChyb3dEYXRhLmxvZ2luVHlwZSA9PT0gT0F1dGhTZWN0aW9uVHlwZXMuZ29vZ2xlX2NsYXNzcm9vbSkge1xuICAgIHNlY3Rpb25Db2RlID0gaTE4bi5sb2dpblR5cGVHb29nbGVDbGFzc3Jvb20oKTtcbiAgfSBlbHNlIGlmIChyb3dEYXRhLmxvZ2luVHlwZSA9PT0gU2VjdGlvbkxvZ2luVHlwZS5sdGlfdjEpIHtcbiAgICBzZWN0aW9uQ29kZSA9IHJvd0RhdGEubG9naW5UeXBlTmFtZTtcbiAgfSBlbHNlIHtcbiAgICBzZWN0aW9uQ29kZSA9IHJvd0RhdGEuY29kZTtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxhXG4gICAgICBzdHlsZT17dGFibGVMYXlvdXRTdHlsZXMubGlua31cbiAgICAgIGhyZWY9e3RlYWNoZXJEYXNoYm9hcmRVcmwocm93RGF0YS5pZCwgJy9sb2dpbl9pbmZvJyl9XG4gICAgPlxuICAgICAge3NlY3Rpb25Db2RlfVxuICAgIDwvYT5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzdHVkZW50c0Zvcm1hdHRlciA9IGZ1bmN0aW9uIChzdHVkZW50Q291bnQsIHtyb3dEYXRhfSkge1xuICBjb25zdCBtYW5hZ2VTdHVkZW50c1VybCA9IHNob3dWMlRlYWNoZXJEYXNoYm9hcmQoKVxuICAgID8gdGVhY2hlckRhc2hib2FyZFVybChyb3dEYXRhLmlkLCAnL3Jvc3RlcicpXG4gICAgOiB0ZWFjaGVyRGFzaGJvYXJkVXJsKHJvd0RhdGEuaWQsICcvbWFuYWdlX3N0dWRlbnRzJyk7XG4gIGNvbnN0IHN0dWRlbnRIdG1sID1cbiAgICByb3dEYXRhLnN0dWRlbnRDb3VudCA8PSAwID8gKFxuICAgICAgPEJ1dHRvblxuICAgICAgICBfX3VzZURlcHJlY2F0ZWRUYWdcbiAgICAgICAgdGV4dD17aTE4bi5hZGRTdHVkZW50cygpfVxuICAgICAgICBocmVmPXttYW5hZ2VTdHVkZW50c1VybH1cbiAgICAgICAgY29sb3I9e0J1dHRvbi5CdXR0b25Db2xvci5uZXV0cmFsRGFya31cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIDxhXG4gICAgICAgIHN0eWxlPXt0YWJsZUxheW91dFN0eWxlcy5saW5rfVxuICAgICAgICBocmVmPXttYW5hZ2VTdHVkZW50c1VybH1cbiAgICAgICAgYXJpYS1sYWJlbD17aTE4bi5tYW5hZ2VTdHVkZW50c0FyaWFMYWJlbCh7XG4gICAgICAgICAgbnVtU3R1ZGVudHM6IHN0dWRlbnRDb3VudCxcbiAgICAgICAgfSl9XG4gICAgICA+XG4gICAgICAgIHtyb3dEYXRhLnN0dWRlbnRDb3VudH1cbiAgICAgIDwvYT5cbiAgICApO1xuICByZXR1cm4gc3R1ZGVudEh0bWw7XG59O1xuXG4vL0Rpc3BsYXlzIG5vdGhpbmcgZm9yIGhpZGRlbiBjb2x1bW5cbmNvbnN0IGhpZGRlbkZvcm1hdHRlciA9IGZ1bmN0aW9uIChpZCkge1xuICByZXR1cm4gbnVsbDtcbn07XG5cbi8qKlxuICogVGhpcyBpcyBhIGNvbXBvbmVudCB0aGF0IHNob3dzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzZWN0aW9ucyB0aGF0IGEgdGVhY2hlclxuICogb3ducywgYW5kIGFsbG93cyBmb3IgZWRpdGluZywgZGVsZXRpbmcgYW5kIHNvcnRpbmcgdGhlbS5cbiAqIEl0IHNob3dzIHNvbWUgb2YgdGhlIHNhbWUgaW5mb3JtYXRpb24gYXMgdGhlIFNlY3Rpb25zQXNTdHVkZW50VGFibGUgdXNlZCBvbiB0aGUgdGVhY2hlclxuICogaG9tZXBhZ2UuIEhvd2V2ZXIsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMgaXQgdW5mb3J0dW5hdGVseSBoYXMgYSBzb21ld2hhdFxuICogZGlmZmVyZW50IHNldC9zaGFwZSBvZiBpbnB1dCBkYXRhLiBUaGlzIGNvbXBvbmVudCBnZXRzIGl0cyBkYXRhIGZyb21cbiAqIHNlY3Rpb25fYXBpX2hlbHBlcnMgaW4gcGVnYXN1cyB2aWEgYW4gQUpBWCBjYWxsLCB3aGVyZWFzIHRoYXQgY29tcG9uZW50IGdldHNcbiAqIGl0cyBkYXRhIGZyb20gc2VjdGlvbi5zdW1tYXJpemUgb24gcGFnZSBsb2FkLlxuICogQm90aCB1bHRpbWF0ZWx5IHNvdXJjZSBkYXRhIGZyb20gdGhlIGRhc2hib2FyZCBkYi5cbiAqIExvbmcgdGVybSBpdCB3b3VsZCBiZSBpZGVhbCBpZiBzZWN0aW9uX2FwaV9oZWxwZXJzIHdlbnQgYXdheSBhbmQgYm90aCBjb21wb25lbnRzXG4gKiB1c2VkIGRhc2hib2FyZC5cbiAqL1xuY2xhc3MgT3duZWRTZWN0aW9uc1RhYmxlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBzZWN0aW9uSWRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubnVtYmVyKS5pc1JlcXVpcmVkLFxuICAgIG9uRWRpdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcblxuICAgIC8vUHJvdmlkZWQgYnkgcmVkdXhcbiAgICBzZWN0aW9uUm93czogUHJvcFR5cGVzLmFycmF5T2Yoc29ydGFibGVTZWN0aW9uU2hhcGUpLmlzUmVxdWlyZWQsXG4gICAgaXNSdGw6IFByb3BUeXBlcy5ib29sLFxuICB9O1xuXG4gIHN0YXRlID0ge1xuICAgIHNvcnRpbmdDb2x1bW5zOiB7XG4gICAgICBbQ09MVU1OUy5JRF06IHtcbiAgICAgICAgZGlyZWN0aW9uOiAnZGVzYycsXG4gICAgICAgIHBvc2l0aW9uOiAwLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGRldGVybWluZVNvcnRlciA9IChkYXRhLCBhY3RpdmVDb2x1bW4sIGRpcmVjdGlvbkFycmF5KSA9PiB7XG4gICAgLy8gSWYgd2UgYXJlIHNvcnRpbmcgb24gZ3JhZGVcbiAgICBjb25zdCBncmFkZUNvbCA9IENPTFVNTlMuR1JBREUudG9TdHJpbmcoKTtcbiAgICBpZiAodGhpcy5zdGF0ZS5zb3J0aW5nQ29sdW1uc1tncmFkZUNvbF0pIHtcbiAgICAgIGNvbnN0IG11bHQgPSBkaXJlY3Rpb25BcnJheVswXSA9PT0gJ2FzYycgPyAxIDogLTE7XG4gICAgICByZXR1cm4gc29ydEJ5KGRhdGEsIGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtdWx0ICpcbiAgICAgICAgICBTdHVkZW50R3JhZGVMZXZlbHMuY29uY2F0KG51bGwpLmluZGV4T2YoXG4gICAgICAgICAgICBvYmouZ3JhZGVzID8gb2JqLmdyYWRlc1swXSA6IG51bGxcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9yZGVyQnkoZGF0YSwgYWN0aXZlQ29sdW1uLCBkaXJlY3Rpb25BcnJheSk7XG4gICAgfVxuICB9O1xuXG4gIGdyYWRlRm9ybWF0dGVyID0gKGdyYWRlcywge3Jvd0RhdGF9KSA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkR3JhZGVzID0gcm93RGF0YS5ncmFkZXMgPyByb3dEYXRhLmdyYWRlcy5qb2luKCcsICcpIDogbnVsbDtcbiAgICByZXR1cm4gPGRpdj57Zm9ybWF0dGVkR3JhZGVzfTwvZGl2PjtcbiAgfTtcblxuICBhY3Rpb25DZWxsRm9ybWF0dGVyID0gKHRlbXAsIHtyb3dEYXRhfSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8U2VjdGlvbkFjdGlvbkRyb3Bkb3duXG4gICAgICAgIHNlY3Rpb25EYXRhPXtyb3dEYXRhfVxuICAgICAgICBoYW5kbGVFZGl0PXt0aGlzLnByb3BzLm9uRWRpdH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICAvLyBUaGUgdXNlciByZXF1ZXN0ZWQgYSBuZXcgc29ydGluZyBjb2x1bW4uIEFkanVzdCB0aGUgc3RhdGUgYWNjb3JkaW5nbHkuXG4gIG9uU29ydCA9IHNlbGVjdGVkQ29sdW1uID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNvcnRpbmdDb2x1bW5zOiBzb3J0LmJ5Q29sdW1uKHtcbiAgICAgICAgc29ydGluZ0NvbHVtbnM6IHRoaXMuc3RhdGUuc29ydGluZ0NvbHVtbnMsXG4gICAgICAgIC8vIEN1c3RvbSBzb3J0aW5nT3JkZXIgcmVtb3ZlcyAnbm8tc29ydCcgZnJvbSB0aGUgY3ljbGVcbiAgICAgICAgc29ydGluZ09yZGVyOiB7XG4gICAgICAgICAgRklSU1Q6ICdhc2MnLFxuICAgICAgICAgIGFzYzogJ2Rlc2MnLFxuICAgICAgICAgIGRlc2M6ICdhc2MnLFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RlZENvbHVtbixcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9O1xuXG4gIGdldFNvcnRpbmdDb2x1bW5zID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNvcnRpbmdDb2x1bW5zIHx8IHt9O1xuICB9O1xuXG4gIGdldENvbHVtbnMgPSBzb3J0YWJsZSA9PiB7XG4gICAgY29uc3QgY29sU3R5bGUgPSB7Li4udGFibGVMYXlvdXRTdHlsZXMuY2VsbCwgLi4uc3R5bGVzLnNlY3Rpb25Db2x9O1xuICAgIGNvbnN0IHVuc29ydGFibGVIZWFkZXJTdHlsZSA9IHRoaXMucHJvcHMuaXNSdGxcbiAgICAgID8gc3R5bGVzLnVuc29ydGFibGVIZWFkZXJSVExcbiAgICAgIDogc3R5bGVzLnVuc29ydGFibGVIZWFkZXI7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgLy9kaXNwbGF5cyBub3RoaW5nLCBidXQgdXNlZCBhcyBpbml0aWFsIHNvcnRcbiAgICAgICAgcHJvcGVydHk6ICdpZCcsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IHN0eWxlcy5oaWRkZW5Db2x9LFxuICAgICAgICB9LFxuICAgICAgICBjZWxsOiB7XG4gICAgICAgICAgZm9ybWF0dGVyczogW2hpZGRlbkZvcm1hdHRlcl0sXG4gICAgICAgICAgcHJvcHM6IHtzdHlsZTogc3R5bGVzLmhpZGRlbkNvbH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm9wZXJ0eTogJ25hbWUnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5zZWN0aW9uKCksXG4gICAgICAgICAgcHJvcHM6IHtzdHlsZTogdGFibGVMYXlvdXRTdHlsZXMuaGVhZGVyQ2VsbH0sXG4gICAgICAgICAgdHJhbnNmb3JtczogW3NvcnRhYmxlXSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFtzZWN0aW9uTGlua0Zvcm1hdHRlcl0sXG4gICAgICAgICAgcHJvcHM6IHtzdHlsZTogey4uLmNvbFN0eWxlLCAuLi5zdHlsZXMubGVmdEhpZGRlbkNvbH19LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICdncmFkZXMnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5ncmFkZSgpLFxuICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd1aXRlc3QtZ3JhZGUtaGVhZGVyJyxcbiAgICAgICAgICAgIHN0eWxlOiB0YWJsZUxheW91dFN0eWxlcy5oZWFkZXJDZWxsLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdHJhbnNmb3JtczogW3NvcnRhYmxlXSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFt0aGlzLmdyYWRlRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiBjb2xTdHlsZX0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm9wZXJ0eTogJ2NvdXJzZScsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGxhYmVsOiBpMThuLmNvdXJzZSgpLFxuICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBzdHlsZTogey4uLnRhYmxlTGF5b3V0U3R5bGVzLmhlYWRlckNlbGwsIC4uLnVuc29ydGFibGVIZWFkZXJTdHlsZX0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFtjb3Vyc2VMaW5rRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiBjb2xTdHlsZX0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm9wZXJ0eTogJ3N0dWRlbnRDb3VudCcsXG4gICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgIGxhYmVsOiBpMThuLnN0dWRlbnRzKCksXG4gICAgICAgICAgcHJvcHM6IHtzdHlsZTogdGFibGVMYXlvdXRTdHlsZXMuaGVhZGVyQ2VsbH0sXG4gICAgICAgICAgdHJhbnNmb3JtczogW3NvcnRhYmxlXSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFtzdHVkZW50c0Zvcm1hdHRlcl0sXG4gICAgICAgICAgcHJvcHM6IHtzdHlsZTogY29sU3R5bGV9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvcGVydHk6ICdsb2dpblR5cGUnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5sb2dpbkluZm8oKSxcbiAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgc3R5bGU6IHsuLi50YWJsZUxheW91dFN0eWxlcy5oZWFkZXJDZWxsLCAuLi51bnNvcnRhYmxlSGVhZGVyU3R5bGV9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNlbGw6IHtcbiAgICAgICAgICBmb3JtYXR0ZXJzOiBbbG9naW5JbmZvRm9ybWF0dGVyXSxcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiBjb2xTdHlsZX0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm9wZXJ0eTogJ2FjdGlvbnMnLFxuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBwcm9wczoge3N0eWxlOiB0YWJsZUxheW91dFN0eWxlcy5oZWFkZXJDZWxsfSxcbiAgICAgICAgfSxcbiAgICAgICAgY2VsbDoge1xuICAgICAgICAgIGZvcm1hdHRlcnM6IFt0aGlzLmFjdGlvbkNlbGxGb3JtYXR0ZXJdLFxuICAgICAgICAgIHByb3BzOiB7c3R5bGU6IHsuLi50YWJsZUxheW91dFN0eWxlcy5jZWxsLCAuLi5zdHlsZXMuY29sQnV0dG9ufX0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHNvcnRhYmxlID0gd3JhcHBlZFNvcnRhYmxlKFxuICAgICAgdGhpcy5nZXRTb3J0aW5nQ29sdW1ucyxcbiAgICAgIHRoaXMub25Tb3J0LFxuICAgICAgc29ydGFibGVPcHRpb25zXG4gICAgKTtcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5nZXRDb2x1bW5zKHNvcnRhYmxlKTtcbiAgICBjb25zdCBzb3J0aW5nQ29sdW1ucyA9IHRoaXMuZ2V0U29ydGluZ0NvbHVtbnMoKTtcblxuICAgIGNvbnN0IHNvcnRlZFJvd3MgPSBzb3J0LnNvcnRlcih7XG4gICAgICBjb2x1bW5zLFxuICAgICAgc29ydGluZ0NvbHVtbnMsXG4gICAgICBzb3J0OiAoeCwgeSwgeikgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kZXRlcm1pbmVTb3J0ZXIoeCwgeSwgeik7XG4gICAgICB9LFxuICAgIH0pKHRoaXMucHJvcHMuc2VjdGlvblJvd3MpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYWJsZS5Qcm92aWRlclxuICAgICAgICBjbGFzc05hbWU9XCJ1aXRlc3Qtb3duZWQtc2VjdGlvbnNcIlxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBzdHlsZT17dGFibGVMYXlvdXRTdHlsZXMudGFibGV9XG4gICAgICA+XG4gICAgICAgIDxUYWJsZS5IZWFkZXIgLz5cbiAgICAgICAgPFRhYmxlLkJvZHlcbiAgICAgICAgICBjbGFzc05hbWU9XCJ1aXRlc3Qtc29ydGVkLXJvd3NcIlxuICAgICAgICAgIHJvd3M9e3NvcnRlZFJvd3N9XG4gICAgICAgICAgcm93S2V5PVwiaWRcIlxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZS5Qcm92aWRlcj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgY3VycmVudFVuaXQ6IHtcbiAgICBtYXJnaW5Ub3A6IDEwLFxuICB9LFxuICAvL0hpZGVzIGEgY29sdW1uIHNvIHRoYXQgd2UgY2FuIHNvcnQgYnkgYSB2YWx1ZSBub3QgZGlzcGxheWVkXG4gIGhpZGRlbkNvbDoge1xuICAgIHdpZHRoOiAwLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgYm9yZGVyOiAwLFxuICB9LFxuICAvL0Fzc2lnbmVkIHRvIGEgY29sdW1uIHdpdGggdGhlIGhpZGRlbiBjb2x1bW4gdG8gdGhlIGxlZnRcbiAgbGVmdEhpZGRlbkNvbDoge1xuICAgIGJvcmRlckxlZnQ6IDAsXG4gIH0sXG4gIHVuc29ydGFibGVIZWFkZXI6IHRhYmxlTGF5b3V0U3R5bGVzLnVuc29ydGFibGVIZWFkZXIsXG4gIHVuc29ydGFibGVIZWFkZXJSVEw6IHRhYmxlTGF5b3V0U3R5bGVzLnVuc29ydGFibGVIZWFkZXJSVEwsXG4gIGNvbEJ1dHRvbjoge1xuICAgIHBhZGRpbmdUb3A6IDIwLFxuICAgIHBhZGRpbmdMZWZ0OiAyMCxcbiAgICBwYWRkaW5nQm90dG9tOiAyMCxcbiAgICB3aWR0aDogNDAsXG4gIH0sXG4gIHNlY3Rpb25Db2w6IHtcbiAgICBwYWRkaW5nTGVmdDogMjAsXG4gIH0sXG4gIHNlY3Rpb25Db2RlTm9uZToge1xuICAgIGNvbG9yOiBjb2xvci5saWdodF9ncmF5LFxuICAgIGZvbnRTaXplOiAxNixcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZE93bmVkU2VjdGlvbnNUYWJsZSA9IE93bmVkU2VjdGlvbnNUYWJsZTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdCgoc3RhdGUsIG93blByb3BzKSA9PiAoe1xuICBzZWN0aW9uUm93czogZ2V0U2VjdGlvblJvd3Moc3RhdGUsIG93blByb3BzLnNlY3Rpb25JZHMpLFxuICBpc1J0bDogc3RhdGUuaXNSdGwsXG59KSkoT3duZWRTZWN0aW9uc1RhYmxlKTtcbiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG4vKipcbiAqIEEgc2ltcGxlIGNvbXBvbmVudCBmb3IgY2VudGVyaW5nIGNvbnRlbnQgd2l0aGluIGEgZGlhbG9nLlxuICovXG5jb25zdCBQYWRBbmRDZW50ZXIgPSAoe2NoaWxkcmVufSkgPT4gKFxuICA8ZGl2XG4gICAgc3R5bGU9e3tcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGZsZXhGbG93OiAncm93JyxcbiAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgIG1hcmdpblRvcDogMjAsXG4gICAgICBtYXJnaW5Cb3R0b206IDIwLFxuICAgIH19XG4gID5cbiAgICB7Y2hpbGRyZW59XG4gIDwvZGl2PlxuKTtcblBhZEFuZENlbnRlci5wcm9wVHlwZXMgPSB7Y2hpbGRyZW46IFByb3BUeXBlcy5hbnl9O1xuZXhwb3J0IGRlZmF1bHQgUGFkQW5kQ2VudGVyO1xuIiwiLyoqXG4gKiBWaWV3IHNob3duIHRvIGFuIGluc3RydWN0b3IgaWYgdGhleSBjYW4gY3JlYXRlIHNlY3Rpb25zIHdpdGggZGlmZmVyZW50IHBhcnRpY2lwYW50IHR5cGVzXG4gKiAoc3R1ZGVudHMsIHRlYWNoZXJzLCBmYWNpbGl0YXRvcnMpLiBBbGxvd3MgdXNlciB0byBwaWNrIHBhcnRpY2lwYW50IHR5cGUgZm9yIHRoaXMgc2VjdGlvblxuICovXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBCdXR0b24gZnJvbSAnQGNkby9hcHBzL2xlZ2FjeVNoYXJlZENvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IHtIZWFkaW5nM30gZnJvbSAnLi4vLi4vbGVnYWN5U2hhcmVkQ29tcG9uZW50cy9IZWFkaW5ncyc7XG5pbXBvcnQgc3R5bGVDb25zdGFudHMgZnJvbSAnLi4vLi4vc3R5bGVDb25zdGFudHMnO1xuaW1wb3J0IGNvbG9yIGZyb20gJy4uLy4uL3V0aWwvY29sb3InO1xuXG5pbXBvcnQgQ2FyZENvbnRhaW5lciBmcm9tICcuL0NhcmRDb250YWluZXInO1xuaW1wb3J0IExvZ2luVHlwZUNhcmQgZnJvbSAnLi9Mb2dpblR5cGVDYXJkJztcblxuY29uc3QgY2FyZEluZm9CeUF1ZGllbmNlID0ge1xuICBzdHVkZW50OiB7XG4gICAgdGl0bGU6IGkxOG4ucGFydGljaXBhbnRUeXBlU3R1ZGVudFRpdGxlKCksXG4gICAgZGVzY3JpcHRpb246IGkxOG4ucGFydGljaXBhbnRUeXBlU3R1ZGVudERlc2NyaXB0aW9uKCksXG4gIH0sXG4gIHRlYWNoZXI6IHtcbiAgICB0aXRsZTogaTE4bi5wYXJ0aWNpcGFudFR5cGVUZWFjaGVyVGl0bGUoKSxcbiAgICBkZXNjcmlwdGlvbjogaTE4bi5wYXJ0aWNpcGFudFR5cGVUZWFjaGVyRGVzY3JpcHRpb24oKSxcbiAgfSxcbiAgZmFjaWxpdGF0b3I6IHtcbiAgICB0aXRsZTogaTE4bi5wYXJ0aWNpcGFudFR5cGVGYWNpbGl0YXRvclRpdGxlKCksXG4gICAgZGVzY3JpcHRpb246IGkxOG4ucGFydGljaXBhbnRUeXBlRmFjaWxpdGF0b3JEZXNjcmlwdGlvbigpLFxuICB9LFxufTtcblxuLyoqXG4gKiBVSSBmb3Igc2VsZWN0aW5nIHRoZSBwYXJ0aWNpcGFudCB0eXBlIG9mIGEgY2xhc3Mgc2VjdGlvbjpcbiAqIFN0dWRlbnQsIFRlYWNoZXIgb3IgRmFjaWxpdGF0b3JcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFydGljaXBhbnRUeXBlUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIHNldFBhcnRpY2lwYW50VHlwZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBoYW5kbGVDYW5jZWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgYXZhaWxhYmxlUGFydGljaXBhbnRUeXBlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZykuaXNSZXF1aXJlZCxcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3RpdGxlLCBzZXRQYXJ0aWNpcGFudFR5cGUsIGhhbmRsZUNhbmNlbH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgc3R5bGU9e3N0eWxlLmNvbnRhaW5lcn0gY2xhc3NOYW1lPVwidWl0ZXN0LXBhcnRpY2lwYW50LXR5cGUtcGlja2VyXCI+XG4gICAgICAgIDxIZWFkaW5nMyBpc1JlYnJhbmRlZD57dGl0bGV9PC9IZWFkaW5nMz5cbiAgICAgICAgPHAgc3R5bGU9e3N0eWxlLmJvZHlUZXh0fT5cbiAgICAgICAgICB7aTE4bi5wcm9mZXNzaW9uYWxMZWFybmluZ1BhcnRpY2lwYW50UXVlc3Rpb24oKX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZS5zY3JvbGx9PlxuICAgICAgICAgIDxDYXJkQ29udGFpbmVyPlxuICAgICAgICAgICAge3RoaXMucHJvcHMuYXZhaWxhYmxlUGFydGljaXBhbnRUeXBlcy5tYXAodHlwZSA9PiAoXG4gICAgICAgICAgICAgIDxQYXJ0aWNpcGFudFR5cGVDYXJkXG4gICAgICAgICAgICAgICAgb25DbGljaz17c2V0UGFydGljaXBhbnRUeXBlfVxuICAgICAgICAgICAgICAgIGtleT17dHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9DYXJkQ29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGUuZm9vdGVyfT5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDYW5jZWx9XG4gICAgICAgICAgICB0ZXh0PXtpMThuLmRpYWxvZ0NhbmNlbCgpfVxuICAgICAgICAgICAgY29sb3I9e0J1dHRvbi5CdXR0b25Db2xvci5uZXV0cmFsRGFya31cbiAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luOiAwfX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgUGFydGljaXBhbnRUeXBlQ2FyZCA9IHByb3BzID0+IChcbiAgPExvZ2luVHlwZUNhcmRcbiAgICBjbGFzc05hbWU9e2B1aXRlc3QtJHtwcm9wcy50eXBlfS10eXBlYH1cbiAgICB0aXRsZT17Y2FyZEluZm9CeUF1ZGllbmNlW3Byb3BzLnR5cGVdLnRpdGxlfVxuICAgIHN1YnRpdGxlPXtjYXJkSW5mb0J5QXVkaWVuY2VbcHJvcHMudHlwZV0uZGVzY3JpcHRpb259XG4gICAgb25DbGljaz17KCkgPT4gcHJvcHMub25DbGljayhwcm9wcy50eXBlKX1cbiAgLz5cbik7XG5QYXJ0aWNpcGFudFR5cGVDYXJkLnByb3BUeXBlcyA9IHtcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmNvbnN0IHN0eWxlID0ge1xuICBjb250YWluZXI6IHtcbiAgICB3aWR0aDogc3R5bGVDb25zdGFudHNbJ2NvbnRlbnQtd2lkdGgnXSxcbiAgICBjb2xvcjogY29sb3IubmV1dHJhbF9kYXJrLFxuICAgIGhlaWdodDogJzMwMHB4JyxcbiAgICBsZWZ0OiAnMjBweCcsXG4gICAgcmlnaHQ6ICcyMHB4JyxcbiAgfSxcbiAgYm9keVRleHQ6IHtcbiAgICBmb250U2l6ZTogJzFlbScsXG4gIH0sXG4gIHNjcm9sbDoge1xuICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgaGVpZ2h0OiAnY2FsYyg4MHZoIC0gMjAwcHgpJyxcbiAgfSxcbiAgZm9vdGVyOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgd2lkdGg6IHN0eWxlQ29uc3RhbnRzWydjb250ZW50LXdpZHRoJ10sXG4gICAgaGVpZ2h0OiAnNTBweCcsXG4gICAgbGVmdDogMCxcbiAgICBib3R0b206ICctMjNweCcsXG4gICAgcGFkZGluZzogJzBweCAyMHB4IDIwcHggMjBweCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZicsXG4gICAgYm9yZGVyUmFkaXVzOiAnNXB4JyxcbiAgfSxcbn07XG4iLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQge09BdXRoU2VjdGlvblR5cGVzfSBmcm9tICdAY2RvL2FwcHMvYWNjb3VudHMvY29uc3RhbnRzJztcbmltcG9ydCB7UExBVEZPUk1TfSBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NDb25zdGFudHMuanMnO1xuaW1wb3J0IGFuYWx5dGljc1JlcG9ydGVyIGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc1JlcG9ydGVyJztcbmltcG9ydCBsb2NhbGUgZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbXBvcnQgUmFpbHNBdXRoZW50aWNpdHlUb2tlbiBmcm9tICcuLi8uLi9saWIvdXRpbC9SYWlsc0F1dGhlbnRpY2l0eVRva2VuJztcbmltcG9ydCBjb2xvciBmcm9tICcuLi8uLi91dGlsL2NvbG9yJztcbmltcG9ydCBCYXNlRGlhbG9nIGZyb20gJy4uL0Jhc2VEaWFsb2cnO1xuXG5pbXBvcnQge2NsYXNzcm9vbVNoYXBlLCBsb2FkRXJyb3JTaGFwZX0gZnJvbSAnLi9zaGFwZXMnO1xuaW1wb3J0IHtcbiAgY2FuY2VsSW1wb3J0Um9zdGVyRmxvdyxcbiAgaW1wb3J0T3JVcGRhdGVSb3N0ZXIsXG4gIHJvc3RlckltcG9ydEZhaWxlZCxcbn0gZnJvbSAnLi90ZWFjaGVyU2VjdGlvbnNSZWR1eCc7XG5pbXBvcnQge2lzUm9zdGVyRGlhbG9nT3Blbn0gZnJvbSAnLi90ZWFjaGVyU2VjdGlvbnNSZWR1eFNlbGVjdG9ycyc7XG5cbmNvbnN0IENPTVBMRVRFRF9FVkVOVCA9ICdTZWN0aW9uIFNldHVwIENvbXBsZXRlZCc7XG5jb25zdCBDQU5DRUxMRURfRVZFTlQgPSAnU2VjdGlvbiBTZXR1cCBDYW5jZWxsZWQnO1xuXG5jb25zdCBBUkNISVZFRF9TVEFURSA9ICdBUkNISVZFRCc7XG5cbmNvbnN0IGN0YUJ1dHRvblN0eWxlID0ge1xuICBiYWNrZ3JvdW5kOiBjb2xvci5vcmFuZ2UsXG4gIGNvbG9yOiBjb2xvci53aGl0ZSxcbiAgYm9yZGVyOiAnMXB4IHNvbGlkICNiMDcyMDInLFxuICBib3JkZXJSYWRpdXM6IDMsXG4gIGJveFNoYWRvdzogJ2luc2V0IDAgMXB4IDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjMpJyxcbiAgZm9udFNpemU6IDE0LFxuICBwYWRkaW5nOiAnOHB4IDIwcHgnLFxufTtcblxuY29uc3QgQ2xhc3Nyb29tTGlzdCA9ICh7Y2xhc3Nyb29tcywgb25TZWxlY3QsIHNlbGVjdGVkSWQsIHJvc3RlclByb3ZpZGVyfSkgPT5cbiAgY2xhc3Nyb29tcy5sZW5ndGggPyAoXG4gICAgPGRpdj5cbiAgICAgIHtjbGFzc3Jvb21zLm1hcChjbGFzc3Jvb20gPT4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgc3R5bGU9e09iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHN0eWxlcy5jbGFzc3Jvb21Sb3csXG4gICAgICAgICAgICBzZWxlY3RlZElkID09PSBjbGFzc3Jvb20uaWQgJiYgc3R5bGVzLmhpZ2hsaWdodFJvd1xuICAgICAgICAgICl9XG4gICAgICAgICAga2V5PXtjbGFzc3Jvb20uaWR9XG4gICAgICAgICAgb25DbGljaz17b25TZWxlY3QuYmluZChudWxsLCBjbGFzc3Jvb20uaWQpfVxuICAgICAgICA+XG4gICAgICAgICAge2NsYXNzcm9vbS5uYW1lfVxuICAgICAgICAgIHtjbGFzc3Jvb20uc2VjdGlvbiAmJiAoXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT17e2NvbG9yOiAnI2FhYSd9fT4gKHtjbGFzc3Jvb20uc2VjdGlvbn0pPC9zcGFuPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2NsYXNzcm9vbS5jb3Vyc2Vfc3RhdGUgPT09IEFSQ0hJVkVEX1NUQVRFICYmIChcbiAgICAgICAgICAgIDxzcGFuIGlkPVwiY291cnNlLXN0YXRlXCIgc3R5bGU9e3tjb2xvcjogY29sb3IuYm9vdHN0cmFwX2Vycm9yX3RleHR9fT5cbiAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgLSB7Y2xhc3Nyb29tLmNvdXJzZV9zdGF0ZX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7ZmxvYXQ6ICdyaWdodCd9fT5cbiAgICAgICAgICAgIHtsb2NhbGUuY29kZSgpfVxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3tmb250RmFtaWx5OiAnbW9ub3NwYWNlJ319PlxuICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICB7Y2xhc3Nyb29tLmVucm9sbG1lbnRfY29kZX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gICkgOiAoXG4gICAgPE5vQ2xhc3Nyb29tc0ZvdW5kIHJvc3RlclByb3ZpZGVyPXtyb3N0ZXJQcm92aWRlcn0gLz5cbiAgKTtcbkNsYXNzcm9vbUxpc3QucHJvcFR5cGVzID0ge1xuICBjbGFzc3Jvb21zOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgb25TZWxlY3Q6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNlbGVjdGVkSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHJvc3RlclByb3ZpZGVyOiBQcm9wVHlwZXMub25lT2YoT2JqZWN0LmtleXMoT0F1dGhTZWN0aW9uVHlwZXMpKSxcbn07XG5cbmNvbnN0IE5vQ2xhc3Nyb29tc0ZvdW5kID0gKHtyb3N0ZXJQcm92aWRlcn0pID0+IHtcbiAgc3dpdGNoIChyb3N0ZXJQcm92aWRlcikge1xuICAgIGNhc2UgT0F1dGhTZWN0aW9uVHlwZXMuZ29vZ2xlX2NsYXNzcm9vbTpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+e2xvY2FsZS5ub0NsYXNzcm9vbXNGb3VuZCgpfTwvcD5cbiAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9jbGFzc3Jvb20uZ29vZ2xlLmNvbS9cIj5cbiAgICAgICAgICAgIHtsb2NhbGUuYWRkUmVtb3ZlR29vZ2xlQ2xhc3Nyb29tcygpfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIGNhc2UgT0F1dGhTZWN0aW9uVHlwZXMuY2xldmVyOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cD57bG9jYWxlLm5vQ2xhc3Nyb29tc0ZvdW5kKCl9PC9wPlxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2NsZXZlci5jb20vXCI+e2xvY2FsZS5hZGRSZW1vdmVDbGV2ZXJDbGFzc3Jvb21zKCl9PC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gIH1cbn07XG5Ob0NsYXNzcm9vbXNGb3VuZC5wcm9wVHlwZXMgPSB7XG4gIHJvc3RlclByb3ZpZGVyOiBQcm9wVHlwZXMub25lT2YoT2JqZWN0LmtleXMoT0F1dGhTZWN0aW9uVHlwZXMpKSxcbn07XG5cbmNvbnN0IEdPT0dMRV9DTEFTU1JPT01TX1NZTkNfU1VQUE9SVF9VUkwgPVxuICAnaHR0cHM6Ly9zdXBwb3J0LmNvZGUub3JnL2hjL2VuLXVzL2FydGljbGVzLzExNTAwMTMxOTMxMic7XG5jb25zdCBST1NURVJFRF9TRUNUSU9OU19TVVBQT1JUX1VSTCA9XG4gICdodHRwczovL3N1cHBvcnQuY29kZS5vcmcvaGMvZW4tdXMvYXJ0aWNsZXMvNjQ5NjQ5NTIxMjU1Nyc7XG5cbmNvbnN0IExvYWRFcnJvciA9ICh7cm9zdGVyUHJvdmlkZXIsIGxvZ2luVHlwZX0pID0+IHtcbiAgc3dpdGNoIChyb3N0ZXJQcm92aWRlcikge1xuICAgIGNhc2UgT0F1dGhTZWN0aW9uVHlwZXMuZ29vZ2xlX2NsYXNzcm9vbTpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+e2xvY2FsZS5hdXRob3JpemVHb29nbGVDbGFzc3Jvb21zVGV4dCgpfTwvcD5cbiAgICAgICAgICA8UmVhdXRob3JpemVHb29nbGVDbGFzc3Jvb20gLz5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGhyZWY9e0dPT0dMRV9DTEFTU1JPT01TX1NZTkNfU1VQUE9SVF9VUkx9XG4gICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bG9jYWxlLmVycm9yTG9hZGluZ1Jvc3RlcmVkU2VjdGlvbnNTdXBwb3J0KCl9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxwPlxuICAgICAgICAgIHtsb2NhbGUuZXJyb3JMb2FkaW5nUm9zdGVyZWRTZWN0aW9ucyh7dHlwZTogbG9naW5UeXBlfSl9eycgJ31cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgaHJlZj17Uk9TVEVSRURfU0VDVElPTlNfU1VQUE9SVF9VUkx9XG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xvY2FsZS5lcnJvckxvYWRpbmdSb3N0ZXJlZFNlY3Rpb25zU3VwcG9ydCgpfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9wPlxuICAgICAgKTtcbiAgfVxufTtcbkxvYWRFcnJvci5wcm9wVHlwZXMgPSB7XG4gIHJvc3RlclByb3ZpZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsb2dpblR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5jb25zdCBSRUFVVEhPUklaRV9VUkwgPVxuICAnL3VzZXJzL2F1dGgvZ29vZ2xlX29hdXRoMj9zY29wZT11c2VyaW5mby5lbWFpbCx1c2VyaW5mby5wcm9maWxlLGNsYXNzcm9vbS5jb3Vyc2VzLnJlYWRvbmx5LGNsYXNzcm9vbS5yb3N0ZXJzLnJlYWRvbmx5JztcbmZ1bmN0aW9uIFJlYXV0aG9yaXplR29vZ2xlQ2xhc3Nyb29tKCkge1xuICByZXR1cm4gKFxuICAgIDxmb3JtIG1ldGhvZD1cIlBPU1RcIiBhY3Rpb249e1JFQVVUSE9SSVpFX1VSTH0+XG4gICAgICA8UmFpbHNBdXRoZW50aWNpdHlUb2tlbiAvPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9e2N0YUJ1dHRvblN0eWxlfT5cbiAgICAgICAge2xvY2FsZS5hdXRob3JpemVHb29nbGVDbGFzc3Jvb21zKCl9XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Zvcm0+XG4gICk7XG59XG5cbmNsYXNzIFJvc3RlckRpYWxvZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgLy8gUHJvdmlkZWQgYnkgUmVkdXhcbiAgICBoYW5kbGVJbXBvcnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGhhbmRsZUNhbmNlbDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaGFuZGxlSW1wb3J0RmFpbHVyZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgaXNPcGVuOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjbGFzc3Jvb21zOiBQcm9wVHlwZXMuYXJyYXlPZihjbGFzc3Jvb21TaGFwZSksXG4gICAgbG9hZEVycm9yOiBsb2FkRXJyb3JTaGFwZSxcbiAgICByb3N0ZXJQcm92aWRlcjogUHJvcFR5cGVzLm9uZU9mKE9iamVjdC5rZXlzKE9BdXRoU2VjdGlvblR5cGVzKSksXG4gIH07XG5cbiAgc3RhdGUgPSB7c2VsZWN0ZWRJZDogbnVsbH07XG5cbiAgaW1wb3J0Q2xhc3Nyb29tID0gKCkgPT4ge1xuICAgIHRoaXMucmVjb3JkU2VjdGlvblNldHVwRXhpdEV2ZW50KENPTVBMRVRFRF9FVkVOVCk7XG4gICAgY29uc3QgY2xhc3Nyb29tcyA9IHRoaXMucHJvcHMuY2xhc3Nyb29tcztcbiAgICBjb25zdCBzZWxlY3RlZE5hbWUgPVxuICAgICAgY2xhc3Nyb29tcyAmJlxuICAgICAgY2xhc3Nyb29tcy5maW5kKGNsYXNzcm9vbSA9PiB7XG4gICAgICAgIHJldHVybiBjbGFzc3Jvb20uaWQgPT09IHRoaXMuc3RhdGUuc2VsZWN0ZWRJZDtcbiAgICAgIH0pLm5hbWU7XG4gICAgdGhpcy5wcm9wcy5oYW5kbGVJbXBvcnQodGhpcy5zdGF0ZS5zZWxlY3RlZElkLCBzZWxlY3RlZE5hbWUpO1xuICAgIHRoaXMuc2V0U3RhdGUoe3NlbGVjdGVkSWQ6IG51bGx9KTtcbiAgfTtcblxuICAvLyBjcmVhdGUgbmV3IGZ1bmN0aW9uIGZvciByZWRpcmVjdCB0byBOZXdFZGl0UGFnZVxuICByZWRpcmVjdFRvRWRpdFNlY3Rpb25QYWdlID0gc2VjdGlvbklkID0+IHtcbiAgICBjb25zdCByZWRpcmVjdFVybCA9ICcvc2VjdGlvbnMvJyArIHNlY3Rpb25JZCArICcvZWRpdCc7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSByZWRpcmVjdFVybDtcbiAgfTtcblxuICAvLyBDcmVhdGVzIHRoZSBzZWN0aW9uIGFuZCByZWRpcmVjdHMgdG8gdGhlIGVkaXQgcGFnZVxuICBoYW5kbGVSZWRpcmVjdCA9ICgpID0+IHtcbiAgICB0aGlzLnJlY29yZFNlY3Rpb25TZXR1cEV4aXRFdmVudChDT01QTEVURURfRVZFTlQpO1xuICAgIGNvbnN0IGNsYXNzcm9vbXMgPSB0aGlzLnByb3BzLmNsYXNzcm9vbXM7XG4gICAgY29uc3QgY291cnNlTmFtZSA9XG4gICAgICBjbGFzc3Jvb21zICYmXG4gICAgICBjbGFzc3Jvb21zLmZpbmQoY2xhc3Nyb29tID0+IHtcbiAgICAgICAgcmV0dXJuIGNsYXNzcm9vbS5pZCA9PT0gdGhpcy5zdGF0ZS5zZWxlY3RlZElkO1xuICAgICAgfSkubmFtZTtcblxuICAgIGNvbnN0IGltcG9ydFNlY3Rpb25VcmwgPVxuICAgICAgdGhpcy5wcm9wcy5yb3N0ZXJQcm92aWRlciA9PT0gT0F1dGhTZWN0aW9uVHlwZXMuZ29vZ2xlX2NsYXNzcm9vbVxuICAgICAgICA/ICcvZGFzaGJvYXJkYXBpL2ltcG9ydF9nb29nbGVfY2xhc3Nyb29tJ1xuICAgICAgICA6ICcvZGFzaGJvYXJkYXBpL2ltcG9ydF9jbGV2ZXJfY2xhc3Nyb29tJztcbiAgICBjb25zdCBjb3Vyc2VJZCA9IHRoaXMuc3RhdGUuc2VsZWN0ZWRJZDtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAkLmdldEpTT04oaW1wb3J0U2VjdGlvblVybCwge1xuICAgICAgICBjb3Vyc2VJZCxcbiAgICAgICAgY291cnNlTmFtZSxcbiAgICAgIH0pXG4gICAgICAgIC5kb25lKHJlc29sdmUpXG4gICAgICAgIC5mYWlsKGpxeGhyID0+IHtcbiAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUltcG9ydEZhaWx1cmUoanF4aHIpO1xuICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgIG5ldyBFcnJvcihgXG4gICAgICAgICAgICB1cmw6ICR7aW1wb3J0U2VjdGlvblVybH1cbiAgICAgICAgICAgIHN0YXR1czogJHtqcXhoci5zdGF0dXN9XG4gICAgICAgICAgICBzdGF0dXNUZXh0OiAke2pxeGhyLnN0YXR1c1RleHR9XG4gICAgICAgICAgICByZXNwb25zZVRleHQ6ICR7anF4aHIucmVzcG9uc2VUZXh0fVxuICAgICAgICAgIGApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfSkudGhlbihuZXdTZWN0aW9uID0+IHRoaXMucmVkaXJlY3RUb0VkaXRTZWN0aW9uUGFnZShuZXdTZWN0aW9uLmlkKSk7XG4gIH07XG5cbiAgY2FuY2VsID0gKCkgPT4ge1xuICAgIHRoaXMucmVjb3JkU2VjdGlvblNldHVwRXhpdEV2ZW50KENBTkNFTExFRF9FVkVOVCk7XG4gICAgdGhpcy5wcm9wcy5oYW5kbGVDYW5jZWwoKTtcbiAgfTtcblxuICBvbkNsYXNzcm9vbVNlbGVjdGVkID0gaWQgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe3NlbGVjdGVkSWQ6IGlkfSk7XG4gIH07XG5cbiAgLy8gdmFsaWQgZXZlbnQgbmFtZXM6ICdTZWN0aW9uIFNldHVwIENvbXBsZXRlZCcsICdTZWN0aW9uIFNldHVwIENhbmNlbGxlZCcuXG4gIHJlY29yZFNlY3Rpb25TZXR1cEV4aXRFdmVudCA9IGV2ZW50TmFtZSA9PiB7XG4gICAgY29uc3Qge3Jvc3RlclByb3ZpZGVyfSA9IHRoaXMucHJvcHM7XG5cbiAgICBhbmFseXRpY3NSZXBvcnRlci5zZW5kRXZlbnQoXG4gICAgICBldmVudE5hbWUsXG4gICAgICB7XG4gICAgICAgIG9hdXRoU291cmNlOiByb3N0ZXJQcm92aWRlcixcbiAgICAgIH0sXG4gICAgICBQTEFURk9STVMuQk9USFxuICAgICk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB0aXRsZSA9ICcnO1xuICAgIGxldCBsb2dpblR5cGUgPSAnJztcbiAgICBzd2l0Y2ggKHRoaXMucHJvcHMucm9zdGVyUHJvdmlkZXIpIHtcbiAgICAgIGNhc2UgT0F1dGhTZWN0aW9uVHlwZXMuZ29vZ2xlX2NsYXNzcm9vbTpcbiAgICAgICAgdGl0bGUgPSBsb2NhbGUuc2VsZWN0R29vZ2xlQ2xhc3Nyb29tKCk7XG4gICAgICAgIGxvZ2luVHlwZSA9IGxvY2FsZS5sb2dpblR5cGVHb29nbGVDbGFzc3Jvb20oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9BdXRoU2VjdGlvblR5cGVzLmNsZXZlcjpcbiAgICAgICAgdGl0bGUgPSBsb2NhbGUuc2VsZWN0Q2xldmVyU2VjdGlvbigpO1xuICAgICAgICBsb2dpblR5cGUgPSBsb2NhbGUubG9naW5UeXBlQ2xldmVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8QmFzZURpYWxvZ1xuICAgICAgICB1c2VVcGRhdGVkU3R5bGVzXG4gICAgICAgIGZpeGVkSGVpZ2h0PXs0ODB9XG4gICAgICAgIGlzT3Blbj17dGhpcy5wcm9wcy5pc09wZW59XG4gICAgICAgIGhhbmRsZUNsb3NlPXt0aGlzLmNhbmNlbH1cbiAgICAgICAgey4uLnRoaXMucHJvcHN9XG4gICAgICA+XG4gICAgICAgIDxoMiBzdHlsZT17c3R5bGVzLnRpdGxlfT57dGl0bGV9PC9oMj5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmNvbnRlbnR9PlxuICAgICAgICAgIHt0aGlzLnByb3BzLmxvYWRFcnJvciA/IChcbiAgICAgICAgICAgIDxMb2FkRXJyb3JcbiAgICAgICAgICAgICAgcm9zdGVyUHJvdmlkZXI9e3RoaXMucHJvcHMucm9zdGVyUHJvdmlkZXJ9XG4gICAgICAgICAgICAgIGxvZ2luVHlwZT17bG9naW5UeXBlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogdGhpcy5wcm9wcy5jbGFzc3Jvb21zID8gKFxuICAgICAgICAgICAgPENsYXNzcm9vbUxpc3RcbiAgICAgICAgICAgICAgY2xhc3Nyb29tcz17dGhpcy5wcm9wcy5jbGFzc3Jvb21zfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5vbkNsYXNzcm9vbVNlbGVjdGVkfVxuICAgICAgICAgICAgICBzZWxlY3RlZElkPXt0aGlzLnN0YXRlLnNlbGVjdGVkSWR9XG4gICAgICAgICAgICAgIHJvc3RlclByb3ZpZGVyPXt0aGlzLnByb3BzLnJvc3RlclByb3ZpZGVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgbG9jYWxlLmxvYWRpbmcoKVxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZm9vdGVyfT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cImNhbmNlbC1idXR0b25cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNhbmNlbH1cbiAgICAgICAgICAgIHN0eWxlPXt7Li4uc3R5bGVzLmJ1dHRvblByaW1hcnksIC4uLnN0eWxlcy5idXR0b25TZWNvbmRhcnl9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsb2NhbGUuZGlhbG9nQ2FuY2VsKCl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJpbXBvcnQtYnV0dG9uLWFuZC1yZWRpcmVjdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlUmVkaXJlY3R9XG4gICAgICAgICAgICBzdHlsZT17T2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgIHN0eWxlcy5idXR0b25QcmltYXJ5LFxuICAgICAgICAgICAgICAhdGhpcy5zdGF0ZS5zZWxlY3RlZElkICYmIHtvcGFjaXR5OiAwLjV9XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgZGlzYWJsZWQ9eyF0aGlzLnN0YXRlLnNlbGVjdGVkSWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xvY2FsZS5jaG9vc2VTZWN0aW9uKCl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9CYXNlRGlhbG9nPlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0ge1xuICB0aXRsZToge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGxlZnQ6IDIwLFxuICAgIGNvbG9yOiBjb2xvci5kYXJrX2NoYXJjb2FsLFxuICAgIG1hcmdpbjogJzE1cHggMCcsXG4gIH0sXG4gIGNvbnRlbnQ6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBsZWZ0OiAyMCxcbiAgICB0b3A6IDUwLFxuICAgIHJpZ2h0OiAyMCxcbiAgICBib3R0b206IDcwLFxuICAgIG92ZXJmbG93WTogJ3Njcm9sbCcsXG4gIH0sXG4gIGNsYXNzcm9vbVJvdzoge1xuICAgIHBhZGRpbmc6IDEwLFxuICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICB9LFxuICBoaWdobGlnaHRSb3c6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRlZmF1bHRfYmx1ZSxcbiAgICBjb2xvcjogY29sb3Iud2hpdGUsXG4gIH0sXG4gIGZvb3Rlcjoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGJvdHRvbTogMTUsXG4gICAgcmlnaHQ6IDIwLFxuICAgIGxlZnQ6IDIwLFxuICB9LFxuICBidXR0b25QcmltYXJ5OiB7XG4gICAgLi4uY3RhQnV0dG9uU3R5bGUsXG4gICAgZmxvYXQ6ICdyaWdodCcsXG4gIH0sXG4gIGJ1dHRvblNlY29uZGFyeToge1xuICAgIGZsb2F0OiAnbGVmdCcsXG4gICAgYmFja2dyb3VuZDogJyNlZWUnLFxuICAgIGNvbG9yOiAnIzViNjc3MCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNjNWM1YzUnLFxuICB9LFxufTtcbmV4cG9ydCBjb25zdCBVbmNvbm5lY3RlZFJvc3RlckRpYWxvZyA9IFJvc3RlckRpYWxvZztcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QoXG4gIHN0YXRlID0+ICh7XG4gICAgaXNPcGVuOiBpc1Jvc3RlckRpYWxvZ09wZW4oc3RhdGUpLFxuICAgIGNsYXNzcm9vbXM6IHN0YXRlLnRlYWNoZXJTZWN0aW9ucy5jbGFzc3Jvb21zLFxuICAgIGxvYWRFcnJvcjogc3RhdGUudGVhY2hlclNlY3Rpb25zLmxvYWRFcnJvcixcbiAgICByb3N0ZXJQcm92aWRlcjogc3RhdGUudGVhY2hlclNlY3Rpb25zLnJvc3RlclByb3ZpZGVyLFxuICB9KSxcbiAge1xuICAgIGhhbmRsZUltcG9ydDogaW1wb3J0T3JVcGRhdGVSb3N0ZXIsXG4gICAgaGFuZGxlQ2FuY2VsOiBjYW5jZWxJbXBvcnRSb3N0ZXJGbG93LFxuICAgIGhhbmRsZUltcG9ydEZhaWx1cmU6IHJvc3RlckltcG9ydEZhaWxlZCxcbiAgfVxuKShSb3N0ZXJEaWFsb2cpO1xuIiwiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7TmF2TGlua30gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IHN0eWxlcyBmcm9tICcuL3RlYWNoZXItZGFzaGJvYXJkLm1vZHVsZS5zY3NzJztcblxuZXhwb3J0IGNvbnN0IFRFQUNIRVJfREFTSEJPQVJEX1BBVEhTID0ge1xuICBwcm9ncmVzczogJy9wcm9ncmVzcycsXG4gIHRleHRSZXNwb25zZXM6ICcvdGV4dF9yZXNwb25zZXMnLFxuICBhc3Nlc3NtZW50czogJy9hc3Nlc3NtZW50cycsXG4gIHByb2plY3RzOiAnL3Byb2plY3RzJyxcbiAgc3RhdHM6ICcvc3RhdHMnLFxuICBtYW5hZ2VTdHVkZW50czogJy9tYW5hZ2Vfc3R1ZGVudHMnLFxuICBsb2dpbkluZm86ICcvbG9naW5faW5mbycsXG4gIHN0YW5kYXJkc1JlcG9ydDogJy9zdGFuZGFyZHNfcmVwb3J0JyxcbiAgYWlUdXRvckNoYXRNZXNzYWdlczogJy9haV90dXRvcicsXG59O1xuXG5leHBvcnQgY29uc3QgTEFCRUxFRF9URUFDSEVSX0RBU0hCT0FSRF9QQVRIUyA9IFtcbiAge1xuICAgIGxhYmVsOiBpMThuLnRlYWNoZXJUYWJQcm9ncmVzcygpLFxuICAgIHVybDogVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMucHJvZ3Jlc3MsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogaTE4bi50ZWFjaGVyVGFiU3RhdHNUZXh0UmVzcG9uc2VzKCksXG4gICAgdXJsOiBURUFDSEVSX0RBU0hCT0FSRF9QQVRIUy50ZXh0UmVzcG9uc2VzLFxuICB9LFxuICB7XG4gICAgbGFiZWw6IGkxOG4udGVhY2hlclRhYkFzc2Vzc21lbnRzKCksXG4gICAgdXJsOiBURUFDSEVSX0RBU0hCT0FSRF9QQVRIUy5hc3Nlc3NtZW50cyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBpMThuLnRlYWNoZXJUYWJQcm9qZWN0cygpLFxuICAgIHVybDogVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMucHJvamVjdHMsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogaTE4bi50ZWFjaGVyVGFiU3RhdHMoKSxcbiAgICB1cmw6IFRFQUNIRVJfREFTSEJPQVJEX1BBVEhTLnN0YXRzLFxuICB9LFxuICB7XG4gICAgbGFiZWw6IGkxOG4udGVhY2hlclRhYk1hbmFnZVN0dWRlbnRzKCksXG4gICAgdXJsOiBURUFDSEVSX0RBU0hCT0FSRF9QQVRIUy5tYW5hZ2VTdHVkZW50cyxcbiAgfSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRlYWNoZXJEYXNoYm9hcmROYXZpZ2F0aW9uKHtsaW5rcywgc2hvd0FJVHV0b3JUYWJ9KSB7XG4gIGNvbnN0IGFpVHV0b3JMaW5rcyA9IHNob3dBSVR1dG9yVGFiXG4gICAgPyBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogaTE4bi5haVR1dG9yKCksXG4gICAgICAgICAgdXJsOiBURUFDSEVSX0RBU0hCT0FSRF9QQVRIUy5haVR1dG9yQ2hhdE1lc3NhZ2VzLFxuICAgICAgICB9LFxuICAgICAgXVxuICAgIDogW107XG4gIGNvbnN0IHJlbmRlcmVkTGlua3MgPSBbXG4gICAgLi4uKGxpbmtzIHx8IExBQkVMRURfVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMpLFxuICAgIC4uLmFpVHV0b3JMaW5rcyxcbiAgXTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgaWQ9XCJ1aXRlc3QtdGVhY2hlci1kYXNoYm9hcmQtbmF2XCIgY2xhc3NOYW1lPXtzdHlsZXMubmF2Q29udGFpbmVyfT5cbiAgICAgIHtyZW5kZXJlZExpbmtzLm1hcChsaW5rID0+IChcbiAgICAgICAgPE5hdkxpbmtcbiAgICAgICAgICBrZXk9e2xpbmsudXJsfVxuICAgICAgICAgIHRvPXtsaW5rLnVybH1cbiAgICAgICAgICBjbGFzc05hbWU9eyh7aXNBY3RpdmV9KSA9PlxuICAgICAgICAgICAgY2xhc3NOYW1lcyhcbiAgICAgICAgICAgICAgc3R5bGVzLmxpbmtDb250YWluZXIsXG4gICAgICAgICAgICAgIGlzQWN0aXZlICYmIHN0eWxlcy5hY3RpdmVMaW5rQ29udGFpbmVyXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5saW5rfT57bGluay5sYWJlbH08L2Rpdj5cbiAgICAgICAgPC9OYXZMaW5rPlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cblRlYWNoZXJEYXNoYm9hcmROYXZpZ2F0aW9uLnByb3BUeXBlcyA9IHtcbiAgc2hvd0FJVHV0b3JUYWI6IFByb3BUeXBlcy5ib29sLFxuICBsaW5rczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICB9KVxuICApLFxufTtcbiIsImltcG9ydCBmaXJlaG9zZUNsaWVudCBmcm9tICcuLi8uLi9tZXRyaWNzL2ZpcmVob3NlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlY29yZEltcHJlc3Npb24oc3R1ZHlfZ3JvdXApIHtcbiAgZmlyZWhvc2VDbGllbnQucHV0UmVjb3JkKHtcbiAgICBzdHVkeTogJ3RlYWNoZXJfZGFzaGJvYXJkX2FjdGlvbnMnLFxuICAgIHN0dWR5X2dyb3VwOiBzdHVkeV9ncm91cCxcbiAgICBldmVudDogJ2xvYWRfZmVhdHVyZScsXG4gICAgZGF0YV9qc29uOiAne30nLFxuICB9KTtcbn1cbiIsImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7bmF2aWdhdGVUb0hyZWZ9IGZyb20gJ0BjZG8vYXBwcy91dGlscyc7XG5cbmltcG9ydCBmaXJlaG9zZUNsaWVudCBmcm9tICcuLi8uLi9tZXRyaWNzL2ZpcmVob3NlJztcblxuaW1wb3J0IHtURUFDSEVSX0RBU0hCT0FSRF9QQVRIU30gZnJvbSAnLi9UZWFjaGVyRGFzaGJvYXJkTmF2aWdhdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hUb1NlY3Rpb24odG9TZWN0aW9uSWQsIGZyb21TZWN0aW9uSWQpIHtcbiAgY29uc3QgYmFzZVVybCA9IGAvdGVhY2hlcl9kYXNoYm9hcmQvc2VjdGlvbnMvJHt0b1NlY3Rpb25JZH0vYDtcbiAgY29uc3QgY3VycmVudFRhYiA9IF8ubGFzdChfLnNwbGl0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwgJy8nKSk7XG4gIGNvbnN0IHRlYWNoZXJOYXZpZ2F0aW9uVGFicyA9IF8udmFsdWVzKFRFQUNIRVJfREFTSEJPQVJEX1BBVEhTKTtcbiAgY29uc3Qgc2VjdGlvblVybCA9IHRlYWNoZXJOYXZpZ2F0aW9uVGFicy5pbmNsdWRlcyhgLyR7Y3VycmVudFRhYn1gKVxuICAgID8gYmFzZVVybC5jb25jYXQoY3VycmVudFRhYilcbiAgICA6IGJhc2VVcmw7XG4gIG5hdmlnYXRlVG9IcmVmKHNlY3Rpb25VcmwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkU3dpdGNoVG9TZWN0aW9uKHRvU2VjdGlvbklkLCBmcm9tU2VjdGlvbklkLCBzdHVkeUdyb3VwKSB7XG4gIGZpcmVob3NlQ2xpZW50LnB1dFJlY29yZChcbiAgICB7XG4gICAgICBzdHVkeTogJ3RlYWNoZXJfZGFzaGJvYXJkX2FjdGlvbnMnLFxuICAgICAgc3R1ZHlfZ3JvdXA6IHN0dWR5R3JvdXAsXG4gICAgICBldmVudDogJ2NoYW5nZV9zZWN0aW9uJyxcbiAgICAgIGRhdGFfanNvbjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBzZWN0aW9uX2lkOiBmcm9tU2VjdGlvbklkLFxuICAgICAgICBvbGRfc2VjdGlvbl9pZDogZnJvbVNlY3Rpb25JZCxcbiAgICAgICAgbmV3X3NlY3Rpb25faWQ6IHRvU2VjdGlvbklkLFxuICAgICAgfSksXG4gICAgfSxcbiAgICB7aW5jbHVkZVVzZXJJZDogdHJ1ZX1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlY29yZE9wZW5FZGl0U2VjdGlvbkRldGFpbHMoc2VjdGlvbklkLCBzdHVkeUdyb3VwKSB7XG4gIGZpcmVob3NlQ2xpZW50LnB1dFJlY29yZChcbiAgICB7XG4gICAgICBzdHVkeTogJ3RlYWNoZXJfZGFzaGJvYXJkX2FjdGlvbnMnLFxuICAgICAgc3R1ZHlfZ3JvdXA6IHN0dWR5R3JvdXAsXG4gICAgICBldmVudDogJ29wZW5fZWRpdF9zZWN0aW9uX2Rhc2hib2FyZF9oZWFkZXInLFxuICAgICAgZGF0YV9qc29uOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHNlY3Rpb25faWQ6IHNlY3Rpb25JZCxcbiAgICAgIH0pLFxuICAgIH0sXG4gICAge2luY2x1ZGVVc2VySWQ6IHRydWV9XG4gICk7XG59XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5mZWVkYmFjay1iYW5uZXJ7YmFja2dyb3VuZC1jb2xvcjojZGNlZmZiO2JvcmRlci1jb2xvcjojZGNlZmZiO2NvbG9yOiM0ZDU3NWY7bGluZS1oZWlnaHQ6MnJlbX0uZmVlZGJhY2stYmFubmVyIC5zaGFyZS1tb3JlLC5mZWVkYmFjay1iYW5uZXIgLmZlZWRiYWNrLXRpdGxle2ZvbnQtc2l6ZToxNnB4fS5mZWVkYmFjay1iYW5uZXIgLmZlZWRiYWNrLWJhbm5lci1ncmVldGluZ3tkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6MXJlbTthbmltYXRpb24tbmFtZTp3YXZlLWFuaW1hdGlvbjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjthbmltYXRpb24tZHVyYXRpb246Ljc1czt0cmFuc2Zvcm0tb3JpZ2luOjcwJSA3MCU7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoyfUBrZXlmcmFtZXMgd2F2ZS1hbmltYXRpb257MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0yNSV7dHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpfTc1JXt0cmFuc2Zvcm06cm90YXRlKDEyZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fS5mZWVkYmFjay1iYW5uZXIgLmZlZWRiYWNrLWJhbm5lci1ncmVldGluZyAuZmEtaGFuZC13YXZle2ZvbnQtd2VpZ2h0OjQwMDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2stYmFubmVyLWdyZWV0aW5nIC5mYS1oYW5kLXdhdmU6aG92ZXJ7YW5pbWF0aW9uLW5hbWU6aGlnaC1maXZlLWFuaW1hdGlvbjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi1kdXJhdGlvbjouNXN9QGtleWZyYW1lcyBoaWdoLWZpdmUtYW5pbWF0aW9uezAle2N1cnNvcjpncmFiO3RyYW5zZm9ybTpyb3RhdGUoMCkgc2NhbGUoMSl9MjUle2N1cnNvcjpncmFiO3RyYW5zZm9ybTpyb3RhdGUoNTBkZWcpIHNjYWxlKDEpfTUwJXtjdXJzb3I6Z3JhYjt0cmFuc2Zvcm06cm90YXRlKDUwZGVnKSBzY2FsZSgxLjUpfTc1JXtjdXJzb3I6Z3JhYjt0cmFuc2Zvcm06cm90YXRlKDUwZGVnKSBzY2FsZSgxKX0xMDAle2N1cnNvcjppbml0aWFsO3RyYW5zZm9ybTpyb3RhdGUoMCkgc2NhbGUoMSl9fS5mZWVkYmFjay1iYW5uZXIgaXtjb2xvcjojMGYwZjBmO2ZvbnQtc2l6ZToxLjNyZW19LmZlZWRiYWNrLWJhbm5lciAjZmVlZGJhY2stYmFubmVyLXNoYXJlLW1vcmUtbGlua3tmb250LXdlaWdodDpub3JtYWx9LmZlZWRiYWNrLWJhbm5lciBidXR0b24uY2xvc2V7Ym9yZGVyOnVuc2V0ICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lO2ZvbnQtc2l6ZToxLjZyZW07Zm9udC13ZWlnaHQ6bm9ybWFsO2xpbmUtaGVpZ2h0OnVuc2V0O21hcmdpbjowO3RvcDowfS5mZWVkYmFjay1iYW5uZXIgLmZlZWRiYWNre21hcmdpbi1sZWZ0OjFyZW19LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2sgYnV0dG9ue2FsbDp1bnNldDtib3JkZXI6dW5zZXQgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmU7Y3Vyc29yOnBvaW50ZXJ9LmZlZWRiYWNrLWJhbm5lciAuZmVlZGJhY2sgYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLXJpZ2h0Oi41cmVtfS5mZWVkYmFjay1iYW5uZXIgLmZlZWRiYWNrIGJ1dHRvbjpoYXMoLmZhLXRodW1icy1vLWRvd24pe3RyYW5zZm9ybTpzY2FsZVgoLTEpfS5mZWVkYmFjay1iYW5uZXIgLmZlZWRiYWNrIGJ1dHRvbiBpOmhvdmVye2FuaW1hdGlvbi1uYW1lOmFwcHJvdmFsLWFuaW1hdGlvbjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi1kdXJhdGlvbjouNzVzO3RyYW5zZm9ybS1vcmlnaW46LTEwJSAxMDAlO2NvbG9yOnJnYmEoMCwwLDAsLjYpfUBrZXlmcmFtZXMgYXBwcm92YWwtYW5pbWF0aW9uezAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MjUle3RyYW5zZm9ybTpyb3RhdGUoLTEwZGVnKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy9zaGFyZWRDb21wb25lbnRzL3VzZXJGZWVkYmFjay9GZWVkYmFja0Jhbm5lci5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi9zaGFyZWQvY3NzL2NvbG9yLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uL3NoYXJlZC9jc3MvYW5pbWF0aW9ucy5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUlBLGlCQUdFLHdCQ29PZSxDRG5PZixvQkNtT2UsQ0RsT2YsYUNHYyxDREZkLGdCQUFBLENBRUEsOERBRUUsY0FBQSxDQUdGLDJDQUNFLG9CQUFBLENBQ0EsaUJBZE8sQ0VpQlQsNkJBQUEsQ0FDQSxnQ0FBQSxDQUNBLHVCQUFBLENBQ0Esd0JBQUEsQ0ZIRSwyQkFBQSxDRVBGLDBCQUNFLEdBQUEsc0JBQUEsQ0FDQSxJQUFBLHdCQUFBLENBQ0EsSUFBQSx1QkFBQSxDQUNBLEtBQUEsc0JBQUEsQ0FBQSxDRktBLHlEQUNFLGVBQUEsQ0FDQSxxQkFBQSxDQUVBLCtERVNKLGtDQUFBLENBQ0EscUNBQUEsQ0FDQSxzQkFBQSxDQVZBLCtCQUNFLEdBQUEsV0FBQSxDQUFBLDRCQUFBLENBQ0EsSUFBQSxXQUFBLENBQUEsZ0NBQUEsQ0FDQSxJQUFBLFdBQUEsQ0FBQSxrQ0FBQSxDQUNBLElBQUEsV0FBQSxDQUFBLGdDQUFBLENBQ0EsS0FBQSxjQUFBLENBQUEsNEJBQUEsQ0FBQSxDQUFBLG1CRkNBLGFBQUEsQ0FDQSxnQkFBQSxDQUdGLGtEQUNFLGtCQUFBLENBR0YsOEJBQ0UsdUJBQUEsQ0FDQSxlQUFBLENBQ0EsZ0JBQUEsQ0FDQSxrQkFBQSxDQUNBLGlCQUFBLENBQ0EsUUFBQSxDQUNBLEtBQUEsQ0FHRiwyQkFDRSxnQkFqRE8sQ0FtRFAsa0NBQ0UsU0FBQSxDQUNBLHVCQUFBLENBQ0EsZUFBQSxDQUNBLGNBQUEsQ0FFQSxtREFDRSxrQkFBQSxDQUdGLHlEQUNFLG9CQUFBLENBSUEsMENFL0ROLGlDQUFBLENBQ0EscUNBQUEsQ0FDQSx1QkFBQSxDQUNBLDBCQUFBLENGOERRLG9CQUFBLENFeEVSLDhCQUNFLEdBQUEsc0JBQUEsQ0FDQSxJQUFBLHdCQUFBLENBQ0EsSUFBQSxzQkFBQSxDQUNBLEtBQUEsc0JBQUEsQ0FBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0ICdhbmltYXRpb25zJztcXG5AaW1wb3J0ICdjb2xvcic7XFxuQGltcG9ydCAnQGNvZGUtZG90LW9yZy9jb21wb25lbnQtbGlicmFyeS1zdHlsZXMvZm9udCc7XFxuXFxuLmZlZWRiYWNrLWJhbm5lciB7XFxuICAkaW5kZW50OiAxcmVtO1xcblxcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0X2luZm9fMTAwO1xcbiAgYm9yZGVyLWNvbG9yOiAkbGlnaHRfaW5mb18xMDA7XFxuICBjb2xvcjogJGRhcmtfY2hhcmNvYWw7XFxuICBsaW5lLWhlaWdodDogMnJlbTtcXG5cXG4gICYgLnNoYXJlLW1vcmUsXFxuICAmIC5mZWVkYmFjay10aXRsZSB7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gIH1cXG5cXG4gICYgLmZlZWRiYWNrLWJhbm5lci1ncmVldGluZyB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgbWFyZ2luLXJpZ2h0OiAkaW5kZW50O1xcblxcbiAgICBAaW5jbHVkZSB3YXZlLWFuaW1hdGlvbjtcXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMjtcXG5cXG4gICAgJiAuZmEtaGFuZC13YXZlIHtcXG4gICAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBAaW5jbHVkZSBoaWdoLWZpdmUtYW5pbWF0aW9uO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgJiBpIHtcXG4gICAgY29sb3I6ICMwZjBmMGY7XFxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xcbiAgfVxcblxcbiAgJiAjZmVlZGJhY2stYmFubmVyLXNoYXJlLW1vcmUtbGluayB7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICB9XFxuXFxuICAmIGJ1dHRvbi5jbG9zZSB7XFxuICAgIGJvcmRlcjogdW5zZXQgIWltcG9ydGFudDtcXG4gICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgZm9udC1zaXplOiAxLjZyZW07XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGxpbmUtaGVpZ2h0OiB1bnNldDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICB0b3A6IDA7XFxuICB9XFxuXFxuICAmIC5mZWVkYmFjayB7XFxuICAgIG1hcmdpbi1sZWZ0OiAkaW5kZW50O1xcblxcbiAgICAmIGJ1dHRvbiB7XFxuICAgICAgYWxsOiB1bnNldDtcXG4gICAgICBib3JkZXI6IHVuc2V0ICFpbXBvcnRhbnQ7XFxuICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuXFxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xcbiAgICAgIH1cXG5cXG4gICAgICAmOmhhcyguZmEtdGh1bWJzLW8tZG93bikge1xcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xcbiAgICAgIH1cXG5cXG4gICAgICAmIGkge1xcbiAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgIEBpbmNsdWRlIGFwcHJvdmFsLWFuaW1hdGlvbjtcXG4gICAgICAgICAgY29sb3I6IHJnYigwIDAgMCAvIDAuNik7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxufVxcblwiLFwiLy8gY29sb3JzIGZyb20gaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy95Y2ppd3Q4dnhsbXYyaWgvQ29kZS5vcmdfc3R5bGVzaGVldF92Ml8wOS4wNS4xMy5wZGZcXG5cXG4vLyBQbGVhc2Uga2VlcCB0aGlzIGZpbGUgc2ltcGxlOyBpdCBzaG91bGQgb25seSBjb250YWluIGNvbG9yIGRlZmluaXRpb25zXFxuLy8gICBhbmQgYWxpYXNlcy4gIFZhcmlhYmxlcyBkZWZpbmVkIGluIHRoaXMgZmlsZSBhcmUgZXhwb3J0ZWQgdG9cXG4vLyAgIGFwcHMvc3JjL3V0aWwvY29sb3IuanMgZHVyaW5nIHRoZSBhcHBzIGJ1aWxkIHByb2Nlc3MuXFxuXFxuJGJsYWNrOiAjMDAwO1xcbiRiYWNrZ3JvdW5kX2JsYWNrOiAjMTIxNDE2O1xcbiRkYXJrX2dyYXk6ICMyRDMxMzk7XFxuJGRhcmtlc3RfZ3JheTogIzI5MkYzNjtcXG4kZGFya19zbGF0ZV9ncmF5OiAjMjgyYzM0O1xcbiRkYXJrZXN0X3NsYXRlX2dyYXk6ICMyNTI5MmQ7XFxuJGRhcmtfY2hhcmNvYWw6ICM0ZDU3NWY7XFxuJGNoYXJjb2FsOiAjNWI2NzcwO1xcbiRsaWdodF9ncmF5OiAjOTQ5Y2EyO1xcbiRsaWdodGVyX2dyYXk6ICNjNmNhY2Q7XFxuJGxpZ2h0ZXN0X2dyYXk6ICNlN2U4ZWE7XFxuJGJhY2tncm91bmRfZ3JheTogI2YyZjJmMjtcXG4kZGltZ3JheTogIzY5Njk2OTtcXG4kd2hpdGU6ICNmZmY7XFxuJGRlZmF1bHRfYmx1ZTogIzM2NzBiMztcXG5cXG4kZGFya190ZWFsOiAjMDA5NGEzO1xcbiR0ZWFsOiAjMDA5M2E0O1xcbiRhcHBsYWJfYnV0dG9uX3RlYWw6ICMxYWJjOWM7XFxuJGxpZ2h0X3RlYWw6ICM1OWNhZDM7XFxuJGxpZ2h0aXNoX3RlYWw6ICM4MGQ2ZGU7XFxuJGxpZ2h0ZXJfdGVhbDogI2E2ZTNlODtcXG4kbGlnaHRlc3RfdGVhbDogI2Q5ZjNmNTtcXG4kYWlfcnVicmljX2N5YW46ICMzY2ZmZjg7XFxuXFxuJHB1cnBsZTogIzhjNTJiYTtcXG4kbGlnaHRfcHVycGxlOiAjYTY5YmMxO1xcbiRsaWdodGVyX3B1cnBsZTogI2NmYzlkZTtcXG4kbGlnaHRlc3RfcHVycGxlOiAjZWJlOGYxO1xcblxcbiRjeWFuOiAjMDA5NGNhO1xcbiRsaWdodF9jeWFuOiAjNTliOWRjO1xcbiRsaWdodGVyX2N5YW46ICNhNmRhZWQ7XFxuJGxpZ2h0ZXN0X2N5YW46ICNkOWVmZjc7XFxuJGFsbW9zdF93aGl0ZV9jeWFuOiAjZjVmY2ZmO1xcblxcbiRvcmFuZ2U6ICNmZmE0MDA7XFxuJGxpZ2h0X29yYW5nZTogI2ZmYzQ1OTtcXG4kbGlnaHRlcl9vcmFuZ2U6ICNmZmUwYTY7XFxuJGxpZ2h0ZXN0X29yYW5nZTogI2ZmZjJkOTtcXG4kZGFya19vcmFuZ2U6ICNmZjg2MDA7XFxuXFxuJGdyZWVuOiAjYjliZjE1O1xcbiRsaWdodF9ncmVlbjogI2QxZDU2NztcXG4kbGlnaHRlcl9ncmVlbjogI2U3ZTlhZDtcXG4kbGlnaHRlc3RfZ3JlZW46ICNmNWY1ZGM7XFxuJGhpZ2hsaWdodF9ncmVlbjogIzhhZmM5YjtcXG5cXG4keWVsbG93OiAjZmZiODFkO1xcbiRsaWdodF95ZWxsb3c6ICNmZmRiNzQ7XFxuJGxpZ2h0ZXJfeWVsbG93OiAjZmZlYmI1O1xcbiRsaWdodGVzdF95ZWxsb3c6ICNmZmY3ZGY7XFxuXFxuJGdvbGRlbnJvZDogI2RhYTUyMDtcXG5cXG4kaGVhZGVyX3RleHQ6ICR3aGl0ZTtcXG4kYmtnbmRfY29sb3I6ICR0ZWFsO1xcbiRpbnNldF9jb2xvcjogJGxpZ2h0ZXJfZ3JheTtcXG4kZGFya19jb2xvcjogJHB1cnBsZTtcXG4kaGRyX2NvbG9yOiAkcHVycGxlO1xcblxcbi8vIFNvbWUgZXh0cmEgY29sb3JzLlxcbiRyZWQ6ICNjMDA7XFxuJGxpZ2h0ZXN0X3JlZDogI2ZjYztcXG4kZGFya19yZWQ6ICNkNjI5MTE7XFxuJHJlYWxncmVlbjogIzAwODAwMDtcXG4kcmVhbHllbGxvdzogI2ZmMDtcXG4kbXVzdGFyZHllbGxvdzogI2VmY2QxYztcXG4kdHdpdHRlcl9ibHVlOiAjMDBhY2VkO1xcbiRmYWNlYm9va19ibHVlOiAjM2I1OTk4O1xcbiRsaW5rZWRpbl9ibHVlOiAjMDA3N0I1O1xcbiRkYXJrX2JsdWU6ICMwMDY0N2Y7XFxuJGJsb2NrbHlfZmx5b3V0X2dyYXk6ICNkZGQ7XFxuJGRlZmF1bHRfdGV4dDogIzMzMztcXG4kYm9yZGVyX2dyYXk6ICNiYmI7XFxuJGJvcmRlcl9saWdodF9ncmF5OiAjZDhkOGQ4O1xcbiR0YWJsZV9oZWFkZXI6ICNlY2VjZWM7XFxuJHRhYmxlX2xpZ2h0X3JvdzogI2ZjZmNmYztcXG4kdGFibGVfZGFya19yb3c6ICNmNGY0ZjQ7XFxuXFxuLy8gUHJvZ3Jlc3MgY29sb3JzLlxcbiRsZXZlbF9zdWJtaXR0ZWQ6ICRwdXJwbGU7XFxuJGxldmVsX3BlcmZlY3Q6IHJnYigxNCwgMTkwLCAxNCk7XFxuJGxldmVsX3Bhc3NlZDogcmdiKDE1OSwgMjEyLCAxNTkpO1xcbiRsZXZlbF9hdHRlbXB0ZWQ6ICRyZWFseWVsbG93O1xcbiRsZXZlbF9ub3RfdHJpZWQ6ICNmZWZlZmU7XFxuJGxldmVsX2N1cnJlbnQ6ICRvcmFuZ2U7XFxuJGxldmVsX3Jldmlld19yZWplY3RlZDogJHJlZDtcXG4kbGV2ZWxfcmV2aWV3X2FjY2VwdGVkOiByZ2IoMTEsIDE0MiwgMTEpOyAvLyBUT0RPOiAkbGV2ZWxfcGFzc2VkO1xcbiRhc3Nlc3NtZW50OiAkY3lhbjtcXG4kd29ya3NwYWNlX3J1bm5pbmdfYmFja2dyb3VuZDogI2U1ZTVlNTtcXG5cXG4vLyBFeHBlcmltZW50YWwgU3ByaXRlIExhYiB2YWxpZGF0aW9uIGNvbG9ycy5cXG4kZGFya19wdXJwbGU6ICM2ODJBNzc7XFxuJGJyaWdodF9ncmVlbjogIzBlYmUwZTtcXG4kbmVvbl9waW5rOiAjZTkxMThmO1xcblxcbi8vIExpbmtzICh1c2VkIGluIGFwcHMpLlxcbiRsaW5rX2NvbG9yOiAjMDU5NmNlO1xcblxcbi8vIFNoYWRvdy5cXG4kc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuXFxuLy8gQ29sb3JzIHRoYXQgYXJlIHRha2VuIGZyb20gYm9vdHN0cmFwLCBhbmQgbm90IG5lY2Vzc2FyaWx5IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGJvb3RzdHJhcF9idXR0b25fYmx1ZTogIzMzN2FiNztcXG4kYm9vdHN0cmFwX2J1dHRvbl9yZWQ6ICNkOTUzNGY7XFxuJGJvb3RzdHJhcF9lcnJvcl9iYWNrZ3JvdW5kOiAjZjJkZWRlO1xcbiRib290c3RyYXBfZXJyb3JfdGV4dDogI2I5NGE0ODtcXG4kYm9vdHN0cmFwX3YzX2Vycm9yX3RleHQ6ICNhOTQ0NDI7XFxuJGJvb3RzdHJhcF9lcnJvcl9ib3JkZXI6ICNlYmNjZDE7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JhY2tncm91bmQ6ICNmY2Y4ZTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX3RleHQ6ICNjMDk4NTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JvcmRlcjogI2ZhZWJjYztcXG4kYm9vdHN0cmFwX2JvcmRlcl9jb2xvcjogI2NjY2NjYztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYmFja2dyb3VuZDogI2RmZjBkODtcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfdGV4dDogIzQ2ODg0NztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYm9yZGVyOiAjZDZlOWM2O1xcblxcbi8vIENvbG9ycyB0YWtlbiBmcm9tIGRyb3BsZXQsIG5vdCBwYXJ0IG9mIG91ciBjb3JlIHRoZW1lLlxcbiRkcm9wbGV0X2xpZ2h0X2dyZWVuOiAjZDNlOTY1O1xcbiRkcm9wbGV0X2JsdWU6ICM2NGI1ZjY7XFxuJGRyb3BsZXRfYnJpZ2h0X2JsdWU6ICMxOWMzZTE7XFxuJGRyb3BsZXRfeWVsbG93OiAjZmZmMTc2O1xcbiRkcm9wbGV0X29yYW5nZTogI2ZmYjc0ZDtcXG4kZHJvcGxldF9yZWQ6ICNmNzgxODM7XFxuJGRyb3BsZXRfY3lhbjogIzRkZDBlMTtcXG4kZHJvcGxldF9waW5rOiAjZjU3YWM2O1xcbiRkcm9wbGV0X3B1cnBsZTogI2JiNzdjNztcXG4kZHJvcGxldF9ncmVlbjogIzY4ZDk5NTtcXG4kZHJvcGxldF93aGl0ZTogJHdoaXRlO1xcblxcbi8vIE9jZWFuczogZGVlcCBibHVlIGJhY2tncm91bmQuXFxuJG9jZWFuc19kZWVwX2JsdWU6IHJnYigyLCAwLCAyOCk7XFxuXFxuLy8gRGFyayB0aGVtZSBiYWNrZ3JvdW5kICh1c2VkIGJ5IGRlZmF1bHQgaW4gTXVzaWMgTGFiKVxcbiRkYXJrX2JsYWNrOiAjMTIxMjEyO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBQaGFzZSAxIENvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuLy8gQnJhbmRcXG4kYnJhbmRfcHJpbWFyeV9saWdodDogI0UwRjhGOTtcXG4kYnJhbmRfcHJpbWFyeV9kZWZhdWx0OiAjMDA5RUIwO1xcbiRicmFuZF9wcmltYXJ5X2Rhcms6ICMwMDc3ODU7XFxuXFxuJGJyYW5kX3NlY29uZGFyeV9saWdodDogI0UwRDFFQztcXG4kYnJhbmRfc2Vjb25kYXJ5X2RlZmF1bHQ6ICM4QzUyQkE7XFxuJGJyYW5kX3NlY29uZGFyeV9kYXJrOiAjNkM0NjhBO1xcblxcbiRicmFuZF9hY2NlbnRfZGVmYXVsdDogI0VENjA2MDtcXG5cXG4kYnJhbmRfdGVhbF81OiAjREZGMkY0O1xcblxcbi8vUHJvZHVjdFxcbiRwcm9kdWN0X2FmZmlybWF0aXZlX2RlZmF1bHQ6ICMzRUEzM0U7XFxuXFxuJHByb2R1Y3RfbmVnYXRpdmVfbGlnaHQ6ICNGREVCRTk7XFxuJHByb2R1Y3RfbmVnYXRpdmVfZGVmYXVsdDogI0U1MzExQTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kYXJrOiAjQUEyNTEzO1xcblxcbiRwcm9kdWN0X2NhdXRpb25fZGVmYXVsdDogI0Y5Q0IyODtcXG5cXG4kcHJvZHVjdF9pbmZvcm1hdGlvbl9kZWZhdWx0OiAjMDA3QUNDO1xcblxcbi8vIE5ldXRyYWxcXG4kbmV1dHJhbF93aGl0ZTogI0ZGRkZGRjtcXG4kbmV1dHJhbF9saWdodDogI0Y3RjhGQTtcXG4kbmV1dHJhbF9ncmF5MTA6ICNFQUVCRUI7XFxuJG5ldXRyYWxfZGFyazEwOiAjRUFFQ0VGO1xcbiRuZXV0cmFsX2RhcmsyMDogI0QxRDREODtcXG4kbmV1dHJhbF9kYXJrMzA6ICNCRUMyQzc7XFxuJG5ldXRyYWxfZGFyazQwOiAjQUJCMEI2O1xcbiRuZXV0cmFsX2Rhcms1MDogIzk4OUVBNTtcXG4kbmV1dHJhbF9kYXJrNjA6ICM4NThDOTQ7XFxuJG5ldXRyYWxfZGFyazcwOiAjNzI3QTgzO1xcbiRuZXV0cmFsX2Rhcms4MDogIzVGNjg3MjtcXG4kbmV1dHJhbF9kYXJrOTA6ICM0QzU2NjE7XFxuJG5ldXRyYWxfZGFyazogIzI5MkYzNjtcXG5cXG4vL0JyYW5kc1xcbiRnb29nbGVfYnJhbmRfY29sb3I6ICMwRjlENTg7XFxuJG1pY3Jvc29mdF9icmFuZF9jb2xvcjogI0ZGQjkwMDtcXG4kZmFjZWJvb2tfYnJhbmRfY29sb3I6ICMzQjU5OTg7XFxuJGNsZXZlcl9icmFuZF9jb2xvcjogIzE0NjRGRjtcXG5cXG4vLyA9PT0tLS0tPT09LS0tLT09PS0tLS0gRGVzaWduIHN5c3RlbSBjb2xvcnM6IC0tLS09PT0tLS0tPT09LS0tLT09PVxcblxcbiRsaWdodF9wcmltYXJ5XzEwMDogI0JGRTRFODtcXG4kbGlnaHRfcHJpbWFyeV81MDA6ICMwMDkzQTQ7XFxuJGxpZ2h0X3ByaW1hcnlfNzAwOiAjMDA3Nzg1O1xcblxcbiRsaWdodF9zZWNvbmRhcnlfMTAwOiAjRTJENEVFO1xcbiRsaWdodF9zZWNvbmRhcnlfNTAwOiAjOEM1MkJBO1xcbiRsaWdodF9zZWNvbmRhcnlfNzAwOiAjNkM0NjhBO1xcblxcbiRsaWdodF9ncmF5XzUwOiAjRjdGOEZBO1xcbiRsaWdodF9ncmF5XzEwMDogI0VBRUNFRjtcXG4kbGlnaHRfZ3JheV8yMDA6ICNEMUQ0RDg7XFxuJGxpZ2h0X2dyYXlfMzAwOiAjQkVDMkM3O1xcbiRsaWdodF9ncmF5XzQwMDogI0FCQjBCNjtcXG4kbGlnaHRfZ3JheV81MDA6ICM5ODlFQTU7XFxuJGxpZ2h0X2dyYXlfNjAwOiAjODU4Qzk0O1xcbiRsaWdodF9ncmF5XzcwMDogIzcyN0E4MztcXG4kbGlnaHRfZ3JheV84MDA6ICM1RjY4NzI7XFxuJGxpZ2h0X2dyYXlfOTAwOiAjNEM1NjYxO1xcbiRsaWdodF9ncmF5Xzk1MDogIzM5NDQ1MDtcXG5cXG4kbGlnaHRfYWZmaXJtYXRpdmVfMTAwOiAjRTJGMUUyO1xcbiRsaWdodF9hZmZpcm1hdGl2ZV81MDA6ICMzRUEzM0U7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzcwMDogIzJENzQyRDtcXG5cXG4kbGlnaHRfbmVnYXRpdmVfMTAwOiAjRkJFMEREO1xcbiRsaWdodF9uZWdhdGl2ZV81MDA6ICNFNTMxMUE7XFxuJGxpZ2h0X25lZ2F0aXZlXzcwMDogI0IyNDk0OTtcXG5cXG4kbGlnaHRfY2F1dGlvbl8xMDA6ICNGRUY3REY7XFxuJGxpZ2h0X2NhdXRpb25fNTAwOiAjRjlDQjI4O1xcbiRsaWdodF9jYXV0aW9uXzcwMDogI0M3QTIyMDtcXG5cXG4kbGlnaHRfYWNjZW50XzEwMDogI0ZBRDdENztcXG4kbGlnaHRfYWNjZW50XzUwMDogI0VENjA2MDtcXG4kbGlnaHRfYWNjZW50XzcwMDogI0Q4NEM0QztcXG5cXG4kbGlnaHRfYXF1YV8xMDA6ICNDRUZGRkQ7XFxuJGxpZ2h0X2FxdWFfNTAwOiAjM0NGRkY4O1xcbiRsaWdodF9hcXVhXzcwMDogIzMwQ0NDNjtcXG5cXG4kbGlnaHRfb3JhbmdlXzEwMDogI0ZGRURDQztcXG4kbGlnaHRfb3JhbmdlXzUwMDogI0ZGQTQwMDtcXG4kbGlnaHRfb3JhbmdlXzcwMDogI0NDODMwMDtcXG5cXG4kbGlnaHRfaW5mb18xMDA6ICNEQ0VGRkI7XFxuJGxpZ2h0X2luZm9fNTAwOiAjMTg5MkUzO1xcbiRsaWdodF9pbmZvXzcwMDogIzEzNzVCNjtcXG5cXG4kbGlnaHRfd2hpdGU6ICNGRkZGRkY7XFxuXFxuJGxpZ2h0X2JsYWNrOiAjMjkyRjM2O1xcblxcbiRsaWdodF9ibGFja19vcGFjaXR5XzkwOiByZ2JhKDQxLCA0NywgNTQsIDAuOTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTgwOiByZ2JhKDQxLCA0NywgNTQsIDAuODApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTcwOiByZ2JhKDQxLCA0NywgNTQsIDAuNzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTYwOiByZ2JhKDQxLCA0NywgNTQsIDAuNjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTUwOiByZ2JhKDQxLCA0NywgNTQsIDAuNTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTQwOiByZ2JhKDQxLCA0NywgNTQsIDAuNDApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTMwOiByZ2JhKDQxLCA0NywgNTQsIDAuMzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTIwOiByZ2JhKDQxLCA0NywgNTQsIDAuMjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTEwOiByZ2JhKDQxLCA0NywgNTQsIDAuMTApO1xcblwiLFwiQG1peGluIGFwcHJvdmFsLWFuaW1hdGlvbiB7XFxuICBAa2V5ZnJhbWVzIGFwcHJvdmFsLWFuaW1hdGlvbiB7XFxuICAgIDAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB9XFxuICAgIDI1JSAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpIH1cXG4gICAgNTAlICB7IHRyYW5zZm9ybTogcm90YXRlKDVkZWcpIH1cXG4gICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIH1cXG4gIH1cXG5cXG4gIGFuaW1hdGlvbi1uYW1lOiBhcHByb3ZhbC1hbmltYXRpb247XFxuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogLjc1cztcXG4gIHRyYW5zZm9ybS1vcmlnaW46IC0xMCUgMTAwJTtcXG59XFxuXFxuQG1peGluIHdhdmUtYW5pbWF0aW9uIHtcXG4gIEBrZXlmcmFtZXMgd2F2ZS1hbmltYXRpb24ge1xcbiAgICAwJSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgfVxcbiAgICAyNSUgIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEwZGVnKSB9XFxuICAgIDc1JSAgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZykgfVxcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgfVxcbiAgfVxcblxcbiAgYW5pbWF0aW9uLW5hbWU6IHdhdmUtYW5pbWF0aW9uO1xcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xcbiAgdHJhbnNmb3JtLW9yaWdpbjogNzAlIDcwJTtcXG59XFxuXFxuQG1peGluIGhpZ2gtZml2ZS1hbmltYXRpb24ge1xcbiAgQGtleWZyYW1lcyBoaWdoLWZpdmUtYW5pbWF0aW9uIHtcXG4gICAgMCUgICB7IGN1cnNvcjogZ3JhYjsgICAgdHJhbnNmb3JtOiByb3RhdGUoMCkgICAgIHNjYWxlKDEpOyB9XFxuICAgIDI1JSAgeyBjdXJzb3I6IGdyYWI7ICAgIHRyYW5zZm9ybTogcm90YXRlKDUwZGVnKSBzY2FsZSgxKTsgfVxcbiAgICA1MCUgIHsgY3Vyc29yOiBncmFiOyAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1MGRlZykgc2NhbGUoMS41KTsgfVxcbiAgICA3NSUgIHsgY3Vyc29yOiBncmFiOyAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1MGRlZykgc2NhbGUoMSk7IH1cXG4gICAgMTAwJSB7IGN1cnNvcjogaW5pdGlhbDsgdHJhbnNmb3JtOiByb3RhdGUoMCkgICAgIHNjYWxlKDEpOyB9XFxuICB9XFxuXFxuICBhbmltYXRpb24tbmFtZTogaGlnaC1maXZlLWFuaW1hdGlvbjtcXG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNXM7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5pR19VNzEzM2NsckpHcDlFdkp1MCBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgIWltcG9ydGFudH1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvdGVtcGxhdGVzL2NvbnRlbnQtY29udGFpbmVyLm1vZHVsZS5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUNFLDhCQUVFLG9DQUFBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5jb250ZW50Q29udGFpbmVySGVhZGluZyB7XFxuICBhOmhvdmVyIHtcXG4gICAgLy9XZSBuZWVkICFpbXBvcnRhbnQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IHN0YXRlIGlubGluZSBzdHlsZSAoaW5saW5lIGhvdmVyIHN0YXRlIGlzIG5vdCB3b3JraW5nLCB1bmZvcnR1bmF0ZWx5KVxcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmxvY2FscyA9IHtcblx0XCJjb250ZW50Q29udGFpbmVySGVhZGluZ1wiOiBcImlHX1U3MTMzY2xySkdwOUV2SnUwXCJcbn07XG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLm04Y3dobk9tdnVVTnl2VUFNY0Yze3BhZGRpbmc6MjBweH0ubThjd2huT212dVVOeXZVQU1jRjMgaHJ7Ym9yZGVyLWNvbG9yOiNjNmNhY2R9LlJnUHI4VHdzdFR0WHB6dzVyaUp3e2NvbG9yOiMwMDA7Zm9udC13ZWlnaHQ6NjAwfS5JUlVQZ3c5alpNRzVCd0dUdjBWSnt0ZXh0LWFsaWduOmVuZH0uSVJVUGd3OWpaTUc1QndHVHYwVkogYnV0dG9ue2JhY2tncm91bmQtY29sb3I6IzhjNTJiYTtib3JkZXItY29sb3I6IzhjNTJiYTtjb2xvcjojZmZmfVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3NyYy90ZW1wbGF0ZXMvcG9saWN5X2NvbXBsaWFuY2UvQWdlR2F0ZWRTZWN0aW9uc01vZGFsL2FnZS1nYXRlZC1zZWN0aW9ucy1tb2RhbC5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vc2hhcmVkL2Nzcy9jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUdBLHNCQUNFLFlBQUEsQ0FFQSx5QkFDRSxvQkNRVyxDREpmLHNCQUNFLFVDTk0sQ0RPTixlQUFBLENBR0Ysc0JBQ0UsY0FBQSxDQUVBLDZCQUNFLHdCQ2tJc0IsQ0RqSXRCLG9CQ2lJc0IsQ0RoSXRCLFVDbUpZXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkB1c2UgJ3Nhc3M6bWF0aCc7XFxuQGltcG9ydCAnY29sb3Iuc2Nzcyc7XFxuXFxuLm1vZGFsQ29udGFpbmVyIHtcXG4gIHBhZGRpbmc6IDIwcHg7XFxuXFxuICBociB7XFxuICAgIGJvcmRlci1jb2xvcjogJGxpZ2h0ZXJfZ3JheTtcXG4gIH1cXG59XFxuXFxuLm1vZGFsSGVhZGVyIHtcXG4gIGNvbG9yOiAkYmxhY2s7XFxuICBmb250LXdlaWdodDogNjAwO1xcbn1cXG5cXG4ubW9kYWxCdXR0b24ge1xcbiAgdGV4dC1hbGlnbjogZW5kO1xcblxcbiAgYnV0dG9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kX3NlY29uZGFyeV9kZWZhdWx0O1xcbiAgICBib3JkZXItY29sb3I6ICRicmFuZF9zZWNvbmRhcnlfZGVmYXVsdDtcXG4gICAgY29sb3I6ICRuZXV0cmFsX3doaXRlO1xcbiAgfVxcbn1cXG5cIixcIi8vIGNvbG9ycyBmcm9tIGh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3MveWNqaXd0OHZ4bG12MmloL0NvZGUub3JnX3N0eWxlc2hlZXRfdjJfMDkuMDUuMTMucGRmXFxuXFxuLy8gUGxlYXNlIGtlZXAgdGhpcyBmaWxlIHNpbXBsZTsgaXQgc2hvdWxkIG9ubHkgY29udGFpbiBjb2xvciBkZWZpbml0aW9uc1xcbi8vICAgYW5kIGFsaWFzZXMuICBWYXJpYWJsZXMgZGVmaW5lZCBpbiB0aGlzIGZpbGUgYXJlIGV4cG9ydGVkIHRvXFxuLy8gICBhcHBzL3NyYy91dGlsL2NvbG9yLmpzIGR1cmluZyB0aGUgYXBwcyBidWlsZCBwcm9jZXNzLlxcblxcbiRibGFjazogIzAwMDtcXG4kYmFja2dyb3VuZF9ibGFjazogIzEyMTQxNjtcXG4kZGFya19ncmF5OiAjMkQzMTM5O1xcbiRkYXJrZXN0X2dyYXk6ICMyOTJGMzY7XFxuJGRhcmtfc2xhdGVfZ3JheTogIzI4MmMzNDtcXG4kZGFya2VzdF9zbGF0ZV9ncmF5OiAjMjUyOTJkO1xcbiRkYXJrX2NoYXJjb2FsOiAjNGQ1NzVmO1xcbiRjaGFyY29hbDogIzViNjc3MDtcXG4kbGlnaHRfZ3JheTogIzk0OWNhMjtcXG4kbGlnaHRlcl9ncmF5OiAjYzZjYWNkO1xcbiRsaWdodGVzdF9ncmF5OiAjZTdlOGVhO1xcbiRiYWNrZ3JvdW5kX2dyYXk6ICNmMmYyZjI7XFxuJGRpbWdyYXk6ICM2OTY5Njk7XFxuJHdoaXRlOiAjZmZmO1xcbiRkZWZhdWx0X2JsdWU6ICMzNjcwYjM7XFxuXFxuJGRhcmtfdGVhbDogIzAwOTRhMztcXG4kdGVhbDogIzAwOTNhNDtcXG4kYXBwbGFiX2J1dHRvbl90ZWFsOiAjMWFiYzljO1xcbiRsaWdodF90ZWFsOiAjNTljYWQzO1xcbiRsaWdodGlzaF90ZWFsOiAjODBkNmRlO1xcbiRsaWdodGVyX3RlYWw6ICNhNmUzZTg7XFxuJGxpZ2h0ZXN0X3RlYWw6ICNkOWYzZjU7XFxuJGFpX3J1YnJpY19jeWFuOiAjM2NmZmY4O1xcblxcbiRwdXJwbGU6ICM4YzUyYmE7XFxuJGxpZ2h0X3B1cnBsZTogI2E2OWJjMTtcXG4kbGlnaHRlcl9wdXJwbGU6ICNjZmM5ZGU7XFxuJGxpZ2h0ZXN0X3B1cnBsZTogI2ViZThmMTtcXG5cXG4kY3lhbjogIzAwOTRjYTtcXG4kbGlnaHRfY3lhbjogIzU5YjlkYztcXG4kbGlnaHRlcl9jeWFuOiAjYTZkYWVkO1xcbiRsaWdodGVzdF9jeWFuOiAjZDllZmY3O1xcbiRhbG1vc3Rfd2hpdGVfY3lhbjogI2Y1ZmNmZjtcXG5cXG4kb3JhbmdlOiAjZmZhNDAwO1xcbiRsaWdodF9vcmFuZ2U6ICNmZmM0NTk7XFxuJGxpZ2h0ZXJfb3JhbmdlOiAjZmZlMGE2O1xcbiRsaWdodGVzdF9vcmFuZ2U6ICNmZmYyZDk7XFxuJGRhcmtfb3JhbmdlOiAjZmY4NjAwO1xcblxcbiRncmVlbjogI2I5YmYxNTtcXG4kbGlnaHRfZ3JlZW46ICNkMWQ1Njc7XFxuJGxpZ2h0ZXJfZ3JlZW46ICNlN2U5YWQ7XFxuJGxpZ2h0ZXN0X2dyZWVuOiAjZjVmNWRjO1xcbiRoaWdobGlnaHRfZ3JlZW46ICM4YWZjOWI7XFxuXFxuJHllbGxvdzogI2ZmYjgxZDtcXG4kbGlnaHRfeWVsbG93OiAjZmZkYjc0O1xcbiRsaWdodGVyX3llbGxvdzogI2ZmZWJiNTtcXG4kbGlnaHRlc3RfeWVsbG93OiAjZmZmN2RmO1xcblxcbiRnb2xkZW5yb2Q6ICNkYWE1MjA7XFxuXFxuJGhlYWRlcl90ZXh0OiAkd2hpdGU7XFxuJGJrZ25kX2NvbG9yOiAkdGVhbDtcXG4kaW5zZXRfY29sb3I6ICRsaWdodGVyX2dyYXk7XFxuJGRhcmtfY29sb3I6ICRwdXJwbGU7XFxuJGhkcl9jb2xvcjogJHB1cnBsZTtcXG5cXG4vLyBTb21lIGV4dHJhIGNvbG9ycy5cXG4kcmVkOiAjYzAwO1xcbiRsaWdodGVzdF9yZWQ6ICNmY2M7XFxuJGRhcmtfcmVkOiAjZDYyOTExO1xcbiRyZWFsZ3JlZW46ICMwMDgwMDA7XFxuJHJlYWx5ZWxsb3c6ICNmZjA7XFxuJG11c3RhcmR5ZWxsb3c6ICNlZmNkMWM7XFxuJHR3aXR0ZXJfYmx1ZTogIzAwYWNlZDtcXG4kZmFjZWJvb2tfYmx1ZTogIzNiNTk5ODtcXG4kbGlua2VkaW5fYmx1ZTogIzAwNzdCNTtcXG4kZGFya19ibHVlOiAjMDA2NDdmO1xcbiRibG9ja2x5X2ZseW91dF9ncmF5OiAjZGRkO1xcbiRkZWZhdWx0X3RleHQ6ICMzMzM7XFxuJGJvcmRlcl9ncmF5OiAjYmJiO1xcbiRib3JkZXJfbGlnaHRfZ3JheTogI2Q4ZDhkODtcXG4kdGFibGVfaGVhZGVyOiAjZWNlY2VjO1xcbiR0YWJsZV9saWdodF9yb3c6ICNmY2ZjZmM7XFxuJHRhYmxlX2Rhcmtfcm93OiAjZjRmNGY0O1xcblxcbi8vIFByb2dyZXNzIGNvbG9ycy5cXG4kbGV2ZWxfc3VibWl0dGVkOiAkcHVycGxlO1xcbiRsZXZlbF9wZXJmZWN0OiByZ2IoMTQsIDE5MCwgMTQpO1xcbiRsZXZlbF9wYXNzZWQ6IHJnYigxNTksIDIxMiwgMTU5KTtcXG4kbGV2ZWxfYXR0ZW1wdGVkOiAkcmVhbHllbGxvdztcXG4kbGV2ZWxfbm90X3RyaWVkOiAjZmVmZWZlO1xcbiRsZXZlbF9jdXJyZW50OiAkb3JhbmdlO1xcbiRsZXZlbF9yZXZpZXdfcmVqZWN0ZWQ6ICRyZWQ7XFxuJGxldmVsX3Jldmlld19hY2NlcHRlZDogcmdiKDExLCAxNDIsIDExKTsgLy8gVE9ETzogJGxldmVsX3Bhc3NlZDtcXG4kYXNzZXNzbWVudDogJGN5YW47XFxuJHdvcmtzcGFjZV9ydW5uaW5nX2JhY2tncm91bmQ6ICNlNWU1ZTU7XFxuXFxuLy8gRXhwZXJpbWVudGFsIFNwcml0ZSBMYWIgdmFsaWRhdGlvbiBjb2xvcnMuXFxuJGRhcmtfcHVycGxlOiAjNjgyQTc3O1xcbiRicmlnaHRfZ3JlZW46ICMwZWJlMGU7XFxuJG5lb25fcGluazogI2U5MTE4ZjtcXG5cXG4vLyBMaW5rcyAodXNlZCBpbiBhcHBzKS5cXG4kbGlua19jb2xvcjogIzA1OTZjZTtcXG5cXG4vLyBTaGFkb3cuXFxuJHNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjMpO1xcblxcbi8vIENvbG9ycyB0aGF0IGFyZSB0YWtlbiBmcm9tIGJvb3RzdHJhcCwgYW5kIG5vdCBuZWNlc3NhcmlseSBwYXJ0IG9mIG91ciBjb3JlIHRoZW1lLlxcbiRib290c3RyYXBfYnV0dG9uX2JsdWU6ICMzMzdhYjc7XFxuJGJvb3RzdHJhcF9idXR0b25fcmVkOiAjZDk1MzRmO1xcbiRib290c3RyYXBfZXJyb3JfYmFja2dyb3VuZDogI2YyZGVkZTtcXG4kYm9vdHN0cmFwX2Vycm9yX3RleHQ6ICNiOTRhNDg7XFxuJGJvb3RzdHJhcF92M19lcnJvcl90ZXh0OiAjYTk0NDQyO1xcbiRib290c3RyYXBfZXJyb3JfYm9yZGVyOiAjZWJjY2QxO1xcbiRib290c3RyYXBfd2FybmluZ19iYWNrZ3JvdW5kOiAjZmNmOGUzO1xcbiRib290c3RyYXBfd2FybmluZ190ZXh0OiAjYzA5ODUzO1xcbiRib290c3RyYXBfd2FybmluZ19ib3JkZXI6ICNmYWViY2M7XFxuJGJvb3RzdHJhcF9ib3JkZXJfY29sb3I6ICNjY2NjY2M7XFxuJGJvb3RzdHJhcF9zdWNjZXNzX2JhY2tncm91bmQ6ICNkZmYwZDg7XFxuJGJvb3RzdHJhcF9zdWNjZXNzX3RleHQ6ICM0Njg4NDc7XFxuJGJvb3RzdHJhcF9zdWNjZXNzX2JvcmRlcjogI2Q2ZTljNjtcXG5cXG4vLyBDb2xvcnMgdGFrZW4gZnJvbSBkcm9wbGV0LCBub3QgcGFydCBvZiBvdXIgY29yZSB0aGVtZS5cXG4kZHJvcGxldF9saWdodF9ncmVlbjogI2QzZTk2NTtcXG4kZHJvcGxldF9ibHVlOiAjNjRiNWY2O1xcbiRkcm9wbGV0X2JyaWdodF9ibHVlOiAjMTljM2UxO1xcbiRkcm9wbGV0X3llbGxvdzogI2ZmZjE3NjtcXG4kZHJvcGxldF9vcmFuZ2U6ICNmZmI3NGQ7XFxuJGRyb3BsZXRfcmVkOiAjZjc4MTgzO1xcbiRkcm9wbGV0X2N5YW46ICM0ZGQwZTE7XFxuJGRyb3BsZXRfcGluazogI2Y1N2FjNjtcXG4kZHJvcGxldF9wdXJwbGU6ICNiYjc3Yzc7XFxuJGRyb3BsZXRfZ3JlZW46ICM2OGQ5OTU7XFxuJGRyb3BsZXRfd2hpdGU6ICR3aGl0ZTtcXG5cXG4vLyBPY2VhbnM6IGRlZXAgYmx1ZSBiYWNrZ3JvdW5kLlxcbiRvY2VhbnNfZGVlcF9ibHVlOiByZ2IoMiwgMCwgMjgpO1xcblxcbi8vIERhcmsgdGhlbWUgYmFja2dyb3VuZCAodXNlZCBieSBkZWZhdWx0IGluIE11c2ljIExhYilcXG4kZGFya19ibGFjazogIzEyMTIxMjtcXG5cXG4vLyA9PT0tLS0tPT09LS0tLT09PS0tLS0gUGhhc2UgMSBDb2xvcnM6IC0tLS09PT0tLS0tPT09LS0tLT09PVxcbi8vIEJyYW5kXFxuJGJyYW5kX3ByaW1hcnlfbGlnaHQ6ICNFMEY4Rjk7XFxuJGJyYW5kX3ByaW1hcnlfZGVmYXVsdDogIzAwOUVCMDtcXG4kYnJhbmRfcHJpbWFyeV9kYXJrOiAjMDA3Nzg1O1xcblxcbiRicmFuZF9zZWNvbmRhcnlfbGlnaHQ6ICNFMEQxRUM7XFxuJGJyYW5kX3NlY29uZGFyeV9kZWZhdWx0OiAjOEM1MkJBO1xcbiRicmFuZF9zZWNvbmRhcnlfZGFyazogIzZDNDY4QTtcXG5cXG4kYnJhbmRfYWNjZW50X2RlZmF1bHQ6ICNFRDYwNjA7XFxuXFxuJGJyYW5kX3RlYWxfNTogI0RGRjJGNDtcXG5cXG4vL1Byb2R1Y3RcXG4kcHJvZHVjdF9hZmZpcm1hdGl2ZV9kZWZhdWx0OiAjM0VBMzNFO1xcblxcbiRwcm9kdWN0X25lZ2F0aXZlX2xpZ2h0OiAjRkRFQkU5O1xcbiRwcm9kdWN0X25lZ2F0aXZlX2RlZmF1bHQ6ICNFNTMxMUE7XFxuJHByb2R1Y3RfbmVnYXRpdmVfZGFyazogI0FBMjUxMztcXG5cXG4kcHJvZHVjdF9jYXV0aW9uX2RlZmF1bHQ6ICNGOUNCMjg7XFxuXFxuJHByb2R1Y3RfaW5mb3JtYXRpb25fZGVmYXVsdDogIzAwN0FDQztcXG5cXG4vLyBOZXV0cmFsXFxuJG5ldXRyYWxfd2hpdGU6ICNGRkZGRkY7XFxuJG5ldXRyYWxfbGlnaHQ6ICNGN0Y4RkE7XFxuJG5ldXRyYWxfZ3JheTEwOiAjRUFFQkVCO1xcbiRuZXV0cmFsX2RhcmsxMDogI0VBRUNFRjtcXG4kbmV1dHJhbF9kYXJrMjA6ICNEMUQ0RDg7XFxuJG5ldXRyYWxfZGFyazMwOiAjQkVDMkM3O1xcbiRuZXV0cmFsX2Rhcms0MDogI0FCQjBCNjtcXG4kbmV1dHJhbF9kYXJrNTA6ICM5ODlFQTU7XFxuJG5ldXRyYWxfZGFyazYwOiAjODU4Qzk0O1xcbiRuZXV0cmFsX2Rhcms3MDogIzcyN0E4MztcXG4kbmV1dHJhbF9kYXJrODA6ICM1RjY4NzI7XFxuJG5ldXRyYWxfZGFyazkwOiAjNEM1NjYxO1xcbiRuZXV0cmFsX2Rhcms6ICMyOTJGMzY7XFxuXFxuLy9CcmFuZHNcXG4kZ29vZ2xlX2JyYW5kX2NvbG9yOiAjMEY5RDU4O1xcbiRtaWNyb3NvZnRfYnJhbmRfY29sb3I6ICNGRkI5MDA7XFxuJGZhY2Vib29rX2JyYW5kX2NvbG9yOiAjM0I1OTk4O1xcbiRjbGV2ZXJfYnJhbmRfY29sb3I6ICMxNDY0RkY7XFxuXFxuLy8gPT09LS0tLT09PS0tLS09PT0tLS0tIERlc2lnbiBzeXN0ZW0gY29sb3JzOiAtLS0tPT09LS0tLT09PS0tLS09PT1cXG5cXG4kbGlnaHRfcHJpbWFyeV8xMDA6ICNCRkU0RTg7XFxuJGxpZ2h0X3ByaW1hcnlfNTAwOiAjMDA5M0E0O1xcbiRsaWdodF9wcmltYXJ5XzcwMDogIzAwNzc4NTtcXG5cXG4kbGlnaHRfc2Vjb25kYXJ5XzEwMDogI0UyRDRFRTtcXG4kbGlnaHRfc2Vjb25kYXJ5XzUwMDogIzhDNTJCQTtcXG4kbGlnaHRfc2Vjb25kYXJ5XzcwMDogIzZDNDY4QTtcXG5cXG4kbGlnaHRfZ3JheV81MDogI0Y3RjhGQTtcXG4kbGlnaHRfZ3JheV8xMDA6ICNFQUVDRUY7XFxuJGxpZ2h0X2dyYXlfMjAwOiAjRDFENEQ4O1xcbiRsaWdodF9ncmF5XzMwMDogI0JFQzJDNztcXG4kbGlnaHRfZ3JheV80MDA6ICNBQkIwQjY7XFxuJGxpZ2h0X2dyYXlfNTAwOiAjOTg5RUE1O1xcbiRsaWdodF9ncmF5XzYwMDogIzg1OEM5NDtcXG4kbGlnaHRfZ3JheV83MDA6ICM3MjdBODM7XFxuJGxpZ2h0X2dyYXlfODAwOiAjNUY2ODcyO1xcbiRsaWdodF9ncmF5XzkwMDogIzRDNTY2MTtcXG4kbGlnaHRfZ3JheV85NTA6ICMzOTQ0NTA7XFxuXFxuJGxpZ2h0X2FmZmlybWF0aXZlXzEwMDogI0UyRjFFMjtcXG4kbGlnaHRfYWZmaXJtYXRpdmVfNTAwOiAjM0VBMzNFO1xcbiRsaWdodF9hZmZpcm1hdGl2ZV83MDA6ICMyRDc0MkQ7XFxuXFxuJGxpZ2h0X25lZ2F0aXZlXzEwMDogI0ZCRTBERDtcXG4kbGlnaHRfbmVnYXRpdmVfNTAwOiAjRTUzMTFBO1xcbiRsaWdodF9uZWdhdGl2ZV83MDA6ICNCMjQ5NDk7XFxuXFxuJGxpZ2h0X2NhdXRpb25fMTAwOiAjRkVGN0RGO1xcbiRsaWdodF9jYXV0aW9uXzUwMDogI0Y5Q0IyODtcXG4kbGlnaHRfY2F1dGlvbl83MDA6ICNDN0EyMjA7XFxuXFxuJGxpZ2h0X2FjY2VudF8xMDA6ICNGQUQ3RDc7XFxuJGxpZ2h0X2FjY2VudF81MDA6ICNFRDYwNjA7XFxuJGxpZ2h0X2FjY2VudF83MDA6ICNEODRDNEM7XFxuXFxuJGxpZ2h0X2FxdWFfMTAwOiAjQ0VGRkZEO1xcbiRsaWdodF9hcXVhXzUwMDogIzNDRkZGODtcXG4kbGlnaHRfYXF1YV83MDA6ICMzMENDQzY7XFxuXFxuJGxpZ2h0X29yYW5nZV8xMDA6ICNGRkVEQ0M7XFxuJGxpZ2h0X29yYW5nZV81MDA6ICNGRkE0MDA7XFxuJGxpZ2h0X29yYW5nZV83MDA6ICNDQzgzMDA7XFxuXFxuJGxpZ2h0X2luZm9fMTAwOiAjRENFRkZCO1xcbiRsaWdodF9pbmZvXzUwMDogIzE4OTJFMztcXG4kbGlnaHRfaW5mb183MDA6ICMxMzc1QjY7XFxuXFxuJGxpZ2h0X3doaXRlOiAjRkZGRkZGO1xcblxcbiRsaWdodF9ibGFjazogIzI5MkYzNjtcXG5cXG4kbGlnaHRfYmxhY2tfb3BhY2l0eV85MDogcmdiYSg0MSwgNDcsIDU0LCAwLjkwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS04MDogcmdiYSg0MSwgNDcsIDU0LCAwLjgwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS03MDogcmdiYSg0MSwgNDcsIDU0LCAwLjcwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS02MDogcmdiYSg0MSwgNDcsIDU0LCAwLjYwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS01MDogcmdiYSg0MSwgNDcsIDU0LCAwLjUwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS00MDogcmdiYSg0MSwgNDcsIDU0LCAwLjQwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS0zMDogcmdiYSg0MSwgNDcsIDU0LCAwLjMwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS0yMDogcmdiYSg0MSwgNDcsIDU0LCAwLjIwKTtcXG4kbGlnaHRfYmxhY2tfb3BhY2l0eS0xMDogcmdiYSg0MSwgNDcsIDU0LCAwLjEwKTtcXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmxvY2FscyA9IHtcblx0XCJtb2RhbENvbnRhaW5lclwiOiBcIm04Y3dobk9tdnVVTnl2VUFNY0YzXCIsXG5cdFwibW9kYWxIZWFkZXJcIjogXCJSZ1ByOFR3c3RUdFhwenc1cmlKd1wiLFxuXHRcIm1vZGFsQnV0dG9uXCI6IFwiSVJVUGd3OWpaTUc1QndHVHYwVkpcIlxufTtcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuamVRRWx3ZUFVX0d0TmVJeTlLOUd7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZDFkNGQ4O2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW4tYm90dG9tOjIwcHg7cGFkZGluZzoxLjI1cmVtIDEuNXJlbTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtZmxvdzpyb3cgd3JhcDtnYXA6MXJlbX1AbWVkaWEobWF4LXdpZHRoOiA3NjhweCl7LmplUUVsd2VBVV9HdE5lSXk5SzlHe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdGFydH19LlhfazhDTjh2NkZLV01lN2gwUVpZe2ZsZXg6Mn0uWF9rOENOOHY2RktXTWU3aDBRWlkgcHttYXJnaW4tYm90dG9tOi4yNXJlbX0uQ1hpclZ1SUw3SmRkQjRCamhXd2t7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHh9LmRMUjFDUnFScnR1Q1phb05keHB3e2JvcmRlci1zdHlsZTpkYXNoZWQ7Ym9yZGVyLXdpZHRoOjVweH1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvdGVtcGxhdGVzL3N0dWRpb0hvbWVwYWdlcy9ib3JkZXJlZENhbGxUb0FjdGlvbi5tb2R1bGUuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vc2hhcmVkL2Nzcy9jb2xvci5zY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUVBLHNCQUNFLHFCQzRPWSxDRDNPWixvQkNxTWUsQ0RwTWYscUJBQUEsQ0FDQSxrQkFBQSxDQUNBLHNCQUFBLENBQ0EsWUFBQSxDQUNBLDZCQUFBLENBQ0Esa0JBQUEsQ0FDQSxrQkFBQSxDQUNBLFFBQUEsQ0FFQSx5QkFaRixzQkFhSSxxQkFBQSxDQUNBLGlCQUFBLENBQUEsQ0FJSixzQkFDRSxNQUFBLENBRUEsd0JBQ0Usb0JBQUEsQ0FJSixzQkFDRSxrQkFBQSxDQUNBLGdCQUFBLENBR0Ysc0JBQ0UsbUJBQUEsQ0FDQSxnQkFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0ICdjb2xvcic7XFxuXFxuLm91dGVyQm94IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodF93aGl0ZTtcXG4gIGJvcmRlci1jb2xvcjogJGxpZ2h0X2dyYXlfMjAwO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XFxuICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcXG4gIGdhcDogMXJlbTtcXG5cXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBhbGlnbi1pdGVtczogc3RhcnQ7XFxuICB9XFxufVxcblxcbi50ZXh0V3JhcHBlciB7XFxuICBmbGV4OiAyO1xcblxcbiAgcCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XFxuICB9XFxufVxcblxcbi5zb2xpZEJvcmRlciB7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxufVxcblxcbi5kYXNoZWRCb3JkZXIge1xcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XFxuICBib3JkZXItd2lkdGg6IDVweDtcXG59XFxuXCIsXCIvLyBjb2xvcnMgZnJvbSBodHRwczovL3d3dy5kcm9wYm94LmNvbS9zL3ljaml3dDh2eGxtdjJpaC9Db2RlLm9yZ19zdHlsZXNoZWV0X3YyXzA5LjA1LjEzLnBkZlxcblxcbi8vIFBsZWFzZSBrZWVwIHRoaXMgZmlsZSBzaW1wbGU7IGl0IHNob3VsZCBvbmx5IGNvbnRhaW4gY29sb3IgZGVmaW5pdGlvbnNcXG4vLyAgIGFuZCBhbGlhc2VzLiAgVmFyaWFibGVzIGRlZmluZWQgaW4gdGhpcyBmaWxlIGFyZSBleHBvcnRlZCB0b1xcbi8vICAgYXBwcy9zcmMvdXRpbC9jb2xvci5qcyBkdXJpbmcgdGhlIGFwcHMgYnVpbGQgcHJvY2Vzcy5cXG5cXG4kYmxhY2s6ICMwMDA7XFxuJGJhY2tncm91bmRfYmxhY2s6ICMxMjE0MTY7XFxuJGRhcmtfZ3JheTogIzJEMzEzOTtcXG4kZGFya2VzdF9ncmF5OiAjMjkyRjM2O1xcbiRkYXJrX3NsYXRlX2dyYXk6ICMyODJjMzQ7XFxuJGRhcmtlc3Rfc2xhdGVfZ3JheTogIzI1MjkyZDtcXG4kZGFya19jaGFyY29hbDogIzRkNTc1ZjtcXG4kY2hhcmNvYWw6ICM1YjY3NzA7XFxuJGxpZ2h0X2dyYXk6ICM5NDljYTI7XFxuJGxpZ2h0ZXJfZ3JheTogI2M2Y2FjZDtcXG4kbGlnaHRlc3RfZ3JheTogI2U3ZThlYTtcXG4kYmFja2dyb3VuZF9ncmF5OiAjZjJmMmYyO1xcbiRkaW1ncmF5OiAjNjk2OTY5O1xcbiR3aGl0ZTogI2ZmZjtcXG4kZGVmYXVsdF9ibHVlOiAjMzY3MGIzO1xcblxcbiRkYXJrX3RlYWw6ICMwMDk0YTM7XFxuJHRlYWw6ICMwMDkzYTQ7XFxuJGFwcGxhYl9idXR0b25fdGVhbDogIzFhYmM5YztcXG4kbGlnaHRfdGVhbDogIzU5Y2FkMztcXG4kbGlnaHRpc2hfdGVhbDogIzgwZDZkZTtcXG4kbGlnaHRlcl90ZWFsOiAjYTZlM2U4O1xcbiRsaWdodGVzdF90ZWFsOiAjZDlmM2Y1O1xcbiRhaV9ydWJyaWNfY3lhbjogIzNjZmZmODtcXG5cXG4kcHVycGxlOiAjOGM1MmJhO1xcbiRsaWdodF9wdXJwbGU6ICNhNjliYzE7XFxuJGxpZ2h0ZXJfcHVycGxlOiAjY2ZjOWRlO1xcbiRsaWdodGVzdF9wdXJwbGU6ICNlYmU4ZjE7XFxuXFxuJGN5YW46ICMwMDk0Y2E7XFxuJGxpZ2h0X2N5YW46ICM1OWI5ZGM7XFxuJGxpZ2h0ZXJfY3lhbjogI2E2ZGFlZDtcXG4kbGlnaHRlc3RfY3lhbjogI2Q5ZWZmNztcXG4kYWxtb3N0X3doaXRlX2N5YW46ICNmNWZjZmY7XFxuXFxuJG9yYW5nZTogI2ZmYTQwMDtcXG4kbGlnaHRfb3JhbmdlOiAjZmZjNDU5O1xcbiRsaWdodGVyX29yYW5nZTogI2ZmZTBhNjtcXG4kbGlnaHRlc3Rfb3JhbmdlOiAjZmZmMmQ5O1xcbiRkYXJrX29yYW5nZTogI2ZmODYwMDtcXG5cXG4kZ3JlZW46ICNiOWJmMTU7XFxuJGxpZ2h0X2dyZWVuOiAjZDFkNTY3O1xcbiRsaWdodGVyX2dyZWVuOiAjZTdlOWFkO1xcbiRsaWdodGVzdF9ncmVlbjogI2Y1ZjVkYztcXG4kaGlnaGxpZ2h0X2dyZWVuOiAjOGFmYzliO1xcblxcbiR5ZWxsb3c6ICNmZmI4MWQ7XFxuJGxpZ2h0X3llbGxvdzogI2ZmZGI3NDtcXG4kbGlnaHRlcl95ZWxsb3c6ICNmZmViYjU7XFxuJGxpZ2h0ZXN0X3llbGxvdzogI2ZmZjdkZjtcXG5cXG4kZ29sZGVucm9kOiAjZGFhNTIwO1xcblxcbiRoZWFkZXJfdGV4dDogJHdoaXRlO1xcbiRia2duZF9jb2xvcjogJHRlYWw7XFxuJGluc2V0X2NvbG9yOiAkbGlnaHRlcl9ncmF5O1xcbiRkYXJrX2NvbG9yOiAkcHVycGxlO1xcbiRoZHJfY29sb3I6ICRwdXJwbGU7XFxuXFxuLy8gU29tZSBleHRyYSBjb2xvcnMuXFxuJHJlZDogI2MwMDtcXG4kbGlnaHRlc3RfcmVkOiAjZmNjO1xcbiRkYXJrX3JlZDogI2Q2MjkxMTtcXG4kcmVhbGdyZWVuOiAjMDA4MDAwO1xcbiRyZWFseWVsbG93OiAjZmYwO1xcbiRtdXN0YXJkeWVsbG93OiAjZWZjZDFjO1xcbiR0d2l0dGVyX2JsdWU6ICMwMGFjZWQ7XFxuJGZhY2Vib29rX2JsdWU6ICMzYjU5OTg7XFxuJGxpbmtlZGluX2JsdWU6ICMwMDc3QjU7XFxuJGRhcmtfYmx1ZTogIzAwNjQ3ZjtcXG4kYmxvY2tseV9mbHlvdXRfZ3JheTogI2RkZDtcXG4kZGVmYXVsdF90ZXh0OiAjMzMzO1xcbiRib3JkZXJfZ3JheTogI2JiYjtcXG4kYm9yZGVyX2xpZ2h0X2dyYXk6ICNkOGQ4ZDg7XFxuJHRhYmxlX2hlYWRlcjogI2VjZWNlYztcXG4kdGFibGVfbGlnaHRfcm93OiAjZmNmY2ZjO1xcbiR0YWJsZV9kYXJrX3JvdzogI2Y0ZjRmNDtcXG5cXG4vLyBQcm9ncmVzcyBjb2xvcnMuXFxuJGxldmVsX3N1Ym1pdHRlZDogJHB1cnBsZTtcXG4kbGV2ZWxfcGVyZmVjdDogcmdiKDE0LCAxOTAsIDE0KTtcXG4kbGV2ZWxfcGFzc2VkOiByZ2IoMTU5LCAyMTIsIDE1OSk7XFxuJGxldmVsX2F0dGVtcHRlZDogJHJlYWx5ZWxsb3c7XFxuJGxldmVsX25vdF90cmllZDogI2ZlZmVmZTtcXG4kbGV2ZWxfY3VycmVudDogJG9yYW5nZTtcXG4kbGV2ZWxfcmV2aWV3X3JlamVjdGVkOiAkcmVkO1xcbiRsZXZlbF9yZXZpZXdfYWNjZXB0ZWQ6IHJnYigxMSwgMTQyLCAxMSk7IC8vIFRPRE86ICRsZXZlbF9wYXNzZWQ7XFxuJGFzc2Vzc21lbnQ6ICRjeWFuO1xcbiR3b3Jrc3BhY2VfcnVubmluZ19iYWNrZ3JvdW5kOiAjZTVlNWU1O1xcblxcbi8vIEV4cGVyaW1lbnRhbCBTcHJpdGUgTGFiIHZhbGlkYXRpb24gY29sb3JzLlxcbiRkYXJrX3B1cnBsZTogIzY4MkE3NztcXG4kYnJpZ2h0X2dyZWVuOiAjMGViZTBlO1xcbiRuZW9uX3Bpbms6ICNlOTExOGY7XFxuXFxuLy8gTGlua3MgKHVzZWQgaW4gYXBwcykuXFxuJGxpbmtfY29sb3I6ICMwNTk2Y2U7XFxuXFxuLy8gU2hhZG93LlxcbiRzaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG5cXG4vLyBDb2xvcnMgdGhhdCBhcmUgdGFrZW4gZnJvbSBib290c3RyYXAsIGFuZCBub3QgbmVjZXNzYXJpbHkgcGFydCBvZiBvdXIgY29yZSB0aGVtZS5cXG4kYm9vdHN0cmFwX2J1dHRvbl9ibHVlOiAjMzM3YWI3O1xcbiRib290c3RyYXBfYnV0dG9uX3JlZDogI2Q5NTM0ZjtcXG4kYm9vdHN0cmFwX2Vycm9yX2JhY2tncm91bmQ6ICNmMmRlZGU7XFxuJGJvb3RzdHJhcF9lcnJvcl90ZXh0OiAjYjk0YTQ4O1xcbiRib290c3RyYXBfdjNfZXJyb3JfdGV4dDogI2E5NDQ0MjtcXG4kYm9vdHN0cmFwX2Vycm9yX2JvcmRlcjogI2ViY2NkMTtcXG4kYm9vdHN0cmFwX3dhcm5pbmdfYmFja2dyb3VuZDogI2ZjZjhlMztcXG4kYm9vdHN0cmFwX3dhcm5pbmdfdGV4dDogI2MwOTg1MztcXG4kYm9vdHN0cmFwX3dhcm5pbmdfYm9yZGVyOiAjZmFlYmNjO1xcbiRib290c3RyYXBfYm9yZGVyX2NvbG9yOiAjY2NjY2NjO1xcbiRib290c3RyYXBfc3VjY2Vzc19iYWNrZ3JvdW5kOiAjZGZmMGQ4O1xcbiRib290c3RyYXBfc3VjY2Vzc190ZXh0OiAjNDY4ODQ3O1xcbiRib290c3RyYXBfc3VjY2Vzc19ib3JkZXI6ICNkNmU5YzY7XFxuXFxuLy8gQ29sb3JzIHRha2VuIGZyb20gZHJvcGxldCwgbm90IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGRyb3BsZXRfbGlnaHRfZ3JlZW46ICNkM2U5NjU7XFxuJGRyb3BsZXRfYmx1ZTogIzY0YjVmNjtcXG4kZHJvcGxldF9icmlnaHRfYmx1ZTogIzE5YzNlMTtcXG4kZHJvcGxldF95ZWxsb3c6ICNmZmYxNzY7XFxuJGRyb3BsZXRfb3JhbmdlOiAjZmZiNzRkO1xcbiRkcm9wbGV0X3JlZDogI2Y3ODE4MztcXG4kZHJvcGxldF9jeWFuOiAjNGRkMGUxO1xcbiRkcm9wbGV0X3Bpbms6ICNmNTdhYzY7XFxuJGRyb3BsZXRfcHVycGxlOiAjYmI3N2M3O1xcbiRkcm9wbGV0X2dyZWVuOiAjNjhkOTk1O1xcbiRkcm9wbGV0X3doaXRlOiAkd2hpdGU7XFxuXFxuLy8gT2NlYW5zOiBkZWVwIGJsdWUgYmFja2dyb3VuZC5cXG4kb2NlYW5zX2RlZXBfYmx1ZTogcmdiKDIsIDAsIDI4KTtcXG5cXG4vLyBEYXJrIHRoZW1lIGJhY2tncm91bmQgKHVzZWQgYnkgZGVmYXVsdCBpbiBNdXNpYyBMYWIpXFxuJGRhcmtfYmxhY2s6ICMxMjEyMTI7XFxuXFxuLy8gPT09LS0tLT09PS0tLS09PT0tLS0tIFBoYXNlIDEgQ29sb3JzOiAtLS0tPT09LS0tLT09PS0tLS09PT1cXG4vLyBCcmFuZFxcbiRicmFuZF9wcmltYXJ5X2xpZ2h0OiAjRTBGOEY5O1xcbiRicmFuZF9wcmltYXJ5X2RlZmF1bHQ6ICMwMDlFQjA7XFxuJGJyYW5kX3ByaW1hcnlfZGFyazogIzAwNzc4NTtcXG5cXG4kYnJhbmRfc2Vjb25kYXJ5X2xpZ2h0OiAjRTBEMUVDO1xcbiRicmFuZF9zZWNvbmRhcnlfZGVmYXVsdDogIzhDNTJCQTtcXG4kYnJhbmRfc2Vjb25kYXJ5X2Rhcms6ICM2QzQ2OEE7XFxuXFxuJGJyYW5kX2FjY2VudF9kZWZhdWx0OiAjRUQ2MDYwO1xcblxcbiRicmFuZF90ZWFsXzU6ICNERkYyRjQ7XFxuXFxuLy9Qcm9kdWN0XFxuJHByb2R1Y3RfYWZmaXJtYXRpdmVfZGVmYXVsdDogIzNFQTMzRTtcXG5cXG4kcHJvZHVjdF9uZWdhdGl2ZV9saWdodDogI0ZERUJFOTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kZWZhdWx0OiAjRTUzMTFBO1xcbiRwcm9kdWN0X25lZ2F0aXZlX2Rhcms6ICNBQTI1MTM7XFxuXFxuJHByb2R1Y3RfY2F1dGlvbl9kZWZhdWx0OiAjRjlDQjI4O1xcblxcbiRwcm9kdWN0X2luZm9ybWF0aW9uX2RlZmF1bHQ6ICMwMDdBQ0M7XFxuXFxuLy8gTmV1dHJhbFxcbiRuZXV0cmFsX3doaXRlOiAjRkZGRkZGO1xcbiRuZXV0cmFsX2xpZ2h0OiAjRjdGOEZBO1xcbiRuZXV0cmFsX2dyYXkxMDogI0VBRUJFQjtcXG4kbmV1dHJhbF9kYXJrMTA6ICNFQUVDRUY7XFxuJG5ldXRyYWxfZGFyazIwOiAjRDFENEQ4O1xcbiRuZXV0cmFsX2RhcmszMDogI0JFQzJDNztcXG4kbmV1dHJhbF9kYXJrNDA6ICNBQkIwQjY7XFxuJG5ldXRyYWxfZGFyazUwOiAjOTg5RUE1O1xcbiRuZXV0cmFsX2Rhcms2MDogIzg1OEM5NDtcXG4kbmV1dHJhbF9kYXJrNzA6ICM3MjdBODM7XFxuJG5ldXRyYWxfZGFyazgwOiAjNUY2ODcyO1xcbiRuZXV0cmFsX2Rhcms5MDogIzRDNTY2MTtcXG4kbmV1dHJhbF9kYXJrOiAjMjkyRjM2O1xcblxcbi8vQnJhbmRzXFxuJGdvb2dsZV9icmFuZF9jb2xvcjogIzBGOUQ1ODtcXG4kbWljcm9zb2Z0X2JyYW5kX2NvbG9yOiAjRkZCOTAwO1xcbiRmYWNlYm9va19icmFuZF9jb2xvcjogIzNCNTk5ODtcXG4kY2xldmVyX2JyYW5kX2NvbG9yOiAjMTQ2NEZGO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBEZXNpZ24gc3lzdGVtIGNvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuXFxuJGxpZ2h0X3ByaW1hcnlfMTAwOiAjQkZFNEU4O1xcbiRsaWdodF9wcmltYXJ5XzUwMDogIzAwOTNBNDtcXG4kbGlnaHRfcHJpbWFyeV83MDA6ICMwMDc3ODU7XFxuXFxuJGxpZ2h0X3NlY29uZGFyeV8xMDA6ICNFMkQ0RUU7XFxuJGxpZ2h0X3NlY29uZGFyeV81MDA6ICM4QzUyQkE7XFxuJGxpZ2h0X3NlY29uZGFyeV83MDA6ICM2QzQ2OEE7XFxuXFxuJGxpZ2h0X2dyYXlfNTA6ICNGN0Y4RkE7XFxuJGxpZ2h0X2dyYXlfMTAwOiAjRUFFQ0VGO1xcbiRsaWdodF9ncmF5XzIwMDogI0QxRDREODtcXG4kbGlnaHRfZ3JheV8zMDA6ICNCRUMyQzc7XFxuJGxpZ2h0X2dyYXlfNDAwOiAjQUJCMEI2O1xcbiRsaWdodF9ncmF5XzUwMDogIzk4OUVBNTtcXG4kbGlnaHRfZ3JheV82MDA6ICM4NThDOTQ7XFxuJGxpZ2h0X2dyYXlfNzAwOiAjNzI3QTgzO1xcbiRsaWdodF9ncmF5XzgwMDogIzVGNjg3MjtcXG4kbGlnaHRfZ3JheV85MDA6ICM0QzU2NjE7XFxuJGxpZ2h0X2dyYXlfOTUwOiAjMzk0NDUwO1xcblxcbiRsaWdodF9hZmZpcm1hdGl2ZV8xMDA6ICNFMkYxRTI7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzUwMDogIzNFQTMzRTtcXG4kbGlnaHRfYWZmaXJtYXRpdmVfNzAwOiAjMkQ3NDJEO1xcblxcbiRsaWdodF9uZWdhdGl2ZV8xMDA6ICNGQkUwREQ7XFxuJGxpZ2h0X25lZ2F0aXZlXzUwMDogI0U1MzExQTtcXG4kbGlnaHRfbmVnYXRpdmVfNzAwOiAjQjI0OTQ5O1xcblxcbiRsaWdodF9jYXV0aW9uXzEwMDogI0ZFRjdERjtcXG4kbGlnaHRfY2F1dGlvbl81MDA6ICNGOUNCMjg7XFxuJGxpZ2h0X2NhdXRpb25fNzAwOiAjQzdBMjIwO1xcblxcbiRsaWdodF9hY2NlbnRfMTAwOiAjRkFEN0Q3O1xcbiRsaWdodF9hY2NlbnRfNTAwOiAjRUQ2MDYwO1xcbiRsaWdodF9hY2NlbnRfNzAwOiAjRDg0QzRDO1xcblxcbiRsaWdodF9hcXVhXzEwMDogI0NFRkZGRDtcXG4kbGlnaHRfYXF1YV81MDA6ICMzQ0ZGRjg7XFxuJGxpZ2h0X2FxdWFfNzAwOiAjMzBDQ0M2O1xcblxcbiRsaWdodF9vcmFuZ2VfMTAwOiAjRkZFRENDO1xcbiRsaWdodF9vcmFuZ2VfNTAwOiAjRkZBNDAwO1xcbiRsaWdodF9vcmFuZ2VfNzAwOiAjQ0M4MzAwO1xcblxcbiRsaWdodF9pbmZvXzEwMDogI0RDRUZGQjtcXG4kbGlnaHRfaW5mb181MDA6ICMxODkyRTM7XFxuJGxpZ2h0X2luZm9fNzAwOiAjMTM3NUI2O1xcblxcbiRsaWdodF93aGl0ZTogI0ZGRkZGRjtcXG5cXG4kbGlnaHRfYmxhY2s6ICMyOTJGMzY7XFxuXFxuJGxpZ2h0X2JsYWNrX29wYWNpdHlfOTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC45MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktODA6IHJnYmEoNDEsIDQ3LCA1NCwgMC44MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNzA6IHJnYmEoNDEsIDQ3LCA1NCwgMC43MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNjA6IHJnYmEoNDEsIDQ3LCA1NCwgMC42MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC41MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktNDA6IHJnYmEoNDEsIDQ3LCA1NCwgMC40MCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMzA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4zMCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMjA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4yMCk7XFxuJGxpZ2h0X2JsYWNrX29wYWNpdHktMTA6IHJnYmEoNDEsIDQ3LCA1NCwgMC4xMCk7XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5sb2NhbHMgPSB7XG5cdFwib3V0ZXJCb3hcIjogXCJqZVFFbHdlQVVfR3ROZUl5OUs5R1wiLFxuXHRcInRleHRXcmFwcGVyXCI6IFwiWF9rOENOOHY2RktXTWU3aDBRWllcIixcblx0XCJzb2xpZEJvcmRlclwiOiBcIkNYaXJWdUlMN0pkZEI0QmpoV3drXCIsXG5cdFwiZGFzaGVkQm9yZGVyXCI6IFwiZExSMUNScVJydHVDWmFvTmR4cHdcIlxufTtcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIucjE0OEdMOXJjdE1pOGljMlJ4emF7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzttaW4taGVpZ2h0OjEwMCV9LnZqY3Fjc0M1VUhuSHU1Zk5kQ1hOe2ZsZXgtZ3JvdzoxO3BhZGRpbmc6MjBweDtvdmVyZmxvdy15OmF1dG99Ll91Zk1pUlQyckltQ2xaSFRIWHNZe2JhY2tncm91bmQtY29sb3I6IzI5MmYzNjtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjY0cHg7b3ZlcmZsb3cteDphdXRvfS5fdWZNaVJUMnJJbUNsWkhUSFhzWSBhLks0Yk9jYkh5bnlONkRNXzRYeHdSe3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiM3MjdhODM7Y29sb3I6I2ZmZjtmb250LXNpemU6MTZweDtmb250LXdlaWdodDo2MDA7bWFyZ2luOjEwcHggOHB4IDAgMDtwYWRkaW5nOjAgMTBweDtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwfS5fdWZNaVJUMnJJbUNsWkhUSFhzWSBhLmlGRkZsVW53dDd3amt1MUFIOWw4e2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMDA3Nzg1fS5fdWZNaVJUMnJJbUNsWkhUSFhzWSAuX0RRelF1Wk1xVFE0QWFEajZpZUF7aGVpZ2h0OjQwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0uWGhpRzFMSFNGQnBGVFlJRnBFRE97bWF4LXdpZHRoOjk3MHB4O3BhZGRpbmc6MTBweCA2NHB4IDY0cHggNjRweH0uZFoxY04yMWZ0cXdkelJNeERLV0p7Zm9udC1zdHlsZTppdGFsaWM7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6MTBweH0uUlJLbThIT2JxZ3ZnTElEUm5ybkh7dGV4dC1hbGlnbjpjZW50ZXI7bWF4LXdpZHRoOjUzOHB4O21hcmdpbjoxMDRweCBhdXRvIDgycHggYXV0b30uTDJzN1NyZnN0YnVOUEpQMlI1RWd7dGV4dC1hbGlnbjpjZW50ZXI7bWF4LXdpZHRoOjUzOHB4O21hcmdpbjphdXRvfS5NQXdHX3JoUktQZzJRcjNBcTQ4X3ttYXJnaW46MjRweCA2NHB4IDgycHggNjRweDt0ZXh0LWFsaWduOmNlbnRlcn0uVEIyMzFGQ3VRemk2MWV3VlAxM3F7aGVpZ2h0OjIwMHB4O2FsaWduLWl0ZW1zOmVuZDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uT2ZUR3NQZ2hzNms5aXNxVGFCTld7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5kMEtkRXY4cm43bmFvZkI5SndxWXtwYWRkaW5nOjAgNjRweH0uZDBLZEV2OHJuN25hb2ZCOUp3cVkgaDF7Zm9udC1mYW1pbHk6XFxcIkJhcmxvdyBTZW1pIENvbmRlbnNlZCBNZWRpdW1cXFwiLFxcXCJOb3RvIFNhbnNcXFwiLFxcXCJOb3RvIFNhbnMgTWF0aFxcXCIsXFxcIk5vdG8gU2FucyBBcmFiaWNcXFwiLFxcXCJOb3RvIFNhbnMgQXJtZW5pYW5cXFwiLFxcXCJOb3RvIFNhbnMgQmVuZ2FsaVxcXCIsXFxcIk5vdG8gU2FucyBTQ1xcXCIsXFxcIk5vdG8gU2FucyBUQ1xcXCIsXFxcIk5vdG8gU2FucyBEZXZhbmFnYXJpXFxcIixcXFwiTm90byBTYW5zIEdlb3JnaWFuXFxcIixcXFwiTm90byBTYW5zIEhlYnJld1xcXCIsXFxcIk5vdG8gU2FucyBKUFxcXCIsXFxcIk5vdG8gU2FucyBLYW5uYWRhXFxcIixcXFwiTm90byBTYW5zIEtobWVyXFxcIixcXFwiTm90byBTYW5zIEtSXFxcIixcXFwiTm90byBTYW5zIE15YW5tYXJcXFwiLFxcXCJOb3RvIFNhbnMgU2luaGFsYVxcXCIsXFxcIk5vdG8gU2FucyBUYW1pbFxcXCIsXFxcIk5vdG8gU2FucyBUZWx1Z3VcXFwiLFxcXCJOb3RvIFNhbnMgVGhhaVxcXCIsXFxcIk5vdG8gU2FucyBUaGFhbmFcXFwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTozNHB4O2NvbG9yOiMyOTJmMzY7bGluZS1oZWlnaHQ6NDJweDttYXJnaW4tdG9wOjE4cHh9Lm43cnBkaG5HNm1JWmZNNzBuTmpVe21hcmdpbi10b3A6MTJweH0ubDhnWUdMQUg1ZllTeWF1YUdENmp7bWFyZ2luLWlubGluZS1lbmQ6OHB4O2NvbG9yOiM4YzUyYmF9Lmw4Z1lHTEFINWZZU3lhdWFHRDZqOmhvdmVyLC5sOGdZR0xBSDVmWVN5YXVhR0Q2aiA6YWN0aXZlLC5sOGdZR0xBSDVmWVN5YXVhR0Q2aiA6dmlzaXRlZCwubDhnWUdMQUg1ZllTeWF1YUdENmogOmZvY3VzLXZpc2libGV7Y29sb3I6IzhjNTJiYX0uX1ZrY2lhd1c2aThhRjJLcnFla3Z7bWFyZ2luLWJvdHRvbTo4cHh9LnI1VFdrS3lDcEtHekI3bFIyT1Fpe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0ubDFaY01uODZXVkV0TWZNdHd6Qjh7ZGlzcGxheTpmbGV4O21hcmdpbi1ib3R0b206NXB4fS5Hc3RQSGhpX3BYTWpXcTZPZ1R3YntkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiM4YzUyYmE7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjEwcHggMjBweDtib3JkZXItcmFkaXVzOjVweDt0ZXh0LWRlY29yYXRpb246bm9uZTtoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDoyNHB4O2ZvbnQtd2VpZ2h0OjYwMH0uR3N0UEhoaV9wWE1qV3E2T2dUd2I6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNmM0NjhhO2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LkdzdFBIaGlfcFhNaldxNk9nVHdiOmZvY3Vze291dGxpbmU6IzAwOWViMCBzb2xpZCAycHg7b3V0bGluZS1vZmZzZXQ6MnB4O2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5PUXJlbmR5WFVvMEs5ck1LZzc0e3BhZGRpbmctdG9wOjI0cHh9LlBvWWpnNk9nX2ZFUmRlQXQyNm9He3RleHQtYWxpZ246bGVmdH1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zcmMvdGVtcGxhdGVzL3RlYWNoZXJEYXNoYm9hcmQvdGVhY2hlci1kYXNoYm9hcmQubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uL3NoYXJlZC9jc3MvY29sb3Iuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vc2hhcmVkL2Nzcy9zdHlsZS1jb25zdGFudHMuc2Nzc1wiLFwid2VicGFjazovLy4vLi4vZnJvbnRlbmQvcGFja2FnZXMvY29tcG9uZW50LWxpYnJhcnktc3R5bGVzL2ZvbnQuc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFJQSxzQkFDRSxZQUFBLENBQ0Esa0JBQUEsQ0FDQSxlQUFBLENBR0Ysc0JBQ0UsV0FBQSxDQUNBLFlBQUEsQ0FDQSxlQUFBLENBR0Ysc0JBQ0Usd0JDb0thLENEbktiLFlBQUEsQ0FDQSxpQkFBQSxDQUNBLGlCQUFBLENBQ0EsZUFBQSxDQUVBLDZDQUNFLGtCQUFBLENBQ0Esb0JBQUEsQ0FDQSx3QkN3SmEsQ0R2SmIsVUM4SVksQ0Q3SVosY0FBQSxDQUNBLGVBQUEsQ0FDQSxtQkFBQSxDQUNBLGNBQUEsQ0FDQSx5QkFBQSxDQUdGLDZDQUNFLHFCQ3FJWSxDRHBJWixhQUFBLENBR0YsNENBQ0UsV0FBQSxDQUNBLFlBQUEsQ0FDQSxrQkFBQSxDQUNBLGlCQUFBLENBSUosc0JBQ0UsZUVwQ2MsQ0ZxQ2QsMkJBQUEsQ0FHRixzQkFDRSxpQkFBQSxDQUNBLGlCQUFBLENBQ0EsZ0JBQUEsQ0FHRixzQkFDRSxpQkFBQSxDQUNBLGVBQUEsQ0FDQSwyQkFBQSxDQUdGLHNCQUNFLGlCQUFBLENBQ0EsZUFBQSxDQUNBLFdBQUEsQ0FHRixzQkFDRSwwQkFBQSxDQUNBLGlCQUFBLENBR0Ysc0JBQ0UsWUFBQSxDQUNBLGVBQUEsQ0FDQSxZQUFBLENBQ0Esc0JBQUEsQ0FHRixzQkFDRSxZQUFBLENBQ0EsNkJBQUEsQ0FFQSxzQkFDRSxjQUFBLENBRUEseUJBQ0UsZ2FHc0N1QixDSHJDdkIsZUFBQSxDQUNBLGNBQUEsQ0FDQSxhQ3JGUyxDRHNGVCxnQkFBQSxDQUNBLGVBQUEsQ0FJSixzQkFDRSxlQUFBLENBRUEsc0JBQ0UscUJBQUEsQ0FDQSxhQzJGZ0IsQ0R6RmhCLDhIQUlFLGFDcUZjLENEaEZwQixzQkFDRSxpQkFBQSxDQUdGLHNCQUNFLFlBQUEsQ0FDQSw2QkFBQSxDQUdGLHNCQUNFLFlBQUEsQ0FDQSxpQkFBQSxDQUlKLHNCQUNFLG9CQUFBLENBQ0Esd0JDdEdPLENEdUdQLFVDbkhNLENEb0hOLGlCQUFBLENBQ0EsaUJBQUEsQ0FDQSxpQkFBQSxDQUNBLG9CQUFBLENBQ0EsV0FBQSxDQUNBLGdCQUFBLENBQ0EsZUFBQSxDQUVBLDRCQUNFLHdCQ09tQixDRE5uQixVQzlISSxDRCtISixvQkFBQSxDQUdGLDRCQUNFLHlCQUFBLENBQ0Esa0JBQUEsQ0FDQSxVQ3JJSSxDRHNJSixvQkFBQSxDQUlKLHNCQUNFLGdCQUFBLENBR0Ysc0JBQ0UsZUFBQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0ICdjb2xvci5zY3NzJztcXG5AaW1wb3J0ICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5LXN0eWxlcy9mb250JztcXG5AaW1wb3J0ICdzdHlsZS1jb25zdGFudHMnO1xcblxcbi5wYWdlQ29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgbWluLWhlaWdodDogMTAwJTtcXG59XFxuXFxuLmNvbnRlbnQge1xcbiAgZmxleC1ncm93OiAxO1xcbiAgcGFkZGluZzogMjBweDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcblxcbi5uYXZDb250YWluZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJG5ldXRyYWxfZGFyaztcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nLWxlZnQ6IDY0cHg7XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcblxcbiAgYS5saW5rQ29udGFpbmVyIHtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmV1dHJhbF9kYXJrNzA7XFxuICAgIGNvbG9yOiAkbmV1dHJhbF93aGl0ZTtcXG4gICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBtYXJnaW46IDEwcHggOHB4IDAgMDtcXG4gICAgcGFkZGluZzogMCAxMHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcXG4gIH1cXG5cXG4gIGEuYWN0aXZlTGlua0NvbnRhaW5lciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuZXV0cmFsX3doaXRlO1xcbiAgICBjb2xvcjogIzAwNzc4NTtcXG4gIH1cXG5cXG4gIC5saW5rIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB9XFxufVxcblxcbi5kYXNoYm9hcmRQYWdlIHtcXG4gIG1heC13aWR0aDogJGNvbnRlbnQtd2lkdGg7XFxuICBwYWRkaW5nOiAxMHB4IDY0cHggNjRweCA2NHB4O1xcbn1cXG5cXG4udGV4dCB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nLXRvcDogMTBweDtcXG59XFxuXFxuLmVtcHR5Q2xhc3Nyb29tIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIG1heC13aWR0aDogNTM4cHg7XFxuICBtYXJnaW46IDEwNHB4IGF1dG8gODJweCBhdXRvO1xcbn1cXG5cXG4uZW1wdHlDbGFzc3Jvb21Qcm9ncmVzcyB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBtYXgtd2lkdGg6IDUzOHB4O1xcbiAgbWFyZ2luOiBhdXRvO1xcbn1cXG5cXG4uZW1wdHlDbGFzc3Jvb21EaXYge1xcbiAgbWFyZ2luOiAyNHB4IDY0cHggODJweCA2NHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4uZW1wdHlDbGFzc3Jvb21JbWFnZSB7XFxuICBoZWlnaHQ6IDIwMHB4O1xcbiAgYWxpZ24taXRlbXM6IGVuZDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLmhlYWRlciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcblxcbiAgJkNvbnRhaW5lciB7XFxuICAgIHBhZGRpbmc6IDAgNjRweDtcXG5cXG4gICAgJiBoMSB7XFxuICAgICAgZm9udC1mYW1pbHk6ICRiYXJsb3dTZW1pQ29uZGVuc2VkLW1lZGl1bTtcXG4gICAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICAgIGZvbnQtc2l6ZTogMzRweDtcXG4gICAgICBjb2xvcjogJGRhcmtlc3RfZ3JheTtcXG4gICAgICBsaW5lLWhlaWdodDogNDJweDtcXG4gICAgICBtYXJnaW4tdG9wOiAxOHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAmTGluayB7XFxuICAgIG1hcmdpbi10b3A6IDEycHg7XFxuXFxuICAgICZDaGV2cm9uIHtcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogOHB4O1xcbiAgICAgIGNvbG9yOiAkbGlnaHRfc2Vjb25kYXJ5XzUwMDtcXG5cXG4gICAgICAmOmhvdmVyLFxcbiAgICAgIDphY3RpdmUsXFxuICAgICAgOnZpc2l0ZWQsXFxuICAgICAgOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgY29sb3I6ICRsaWdodF9zZWNvbmRhcnlfNTAwO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgJkN1cnJpY3VsdW0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICB9XFxuXFxuICAmUmlnaHRDb2x1bW4ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICB9XFxuXFxuICAmQnV0dG9uU2VjdGlvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcXG4gIH1cXG59XFxuXFxuLm5hdkxpbmsge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogJHB1cnBsZTtcXG4gIGNvbG9yOiAkd2hpdGU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XFxuXFxuICAmOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kX3NlY29uZGFyeV9kYXJrO1xcbiAgICBjb2xvcjogJHdoaXRlO1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICB9XFxuXFxuICAmOmZvY3VzIHtcXG4gICAgb3V0bGluZTogJGJyYW5kX3ByaW1hcnlfZGVmYXVsdCBzb2xpZCAycHg7XFxuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XFxuICAgIGNvbG9yOiAkd2hpdGU7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIH1cXG59XFxuXFxuLnRvcFBhZGRpbmcge1xcbiAgcGFkZGluZy10b3A6IDI0cHg7XFxufVxcblxcbi5wcm9ncmVzc0hlYWRlclYxIHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcblwiLFwiLy8gY29sb3JzIGZyb20gaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy95Y2ppd3Q4dnhsbXYyaWgvQ29kZS5vcmdfc3R5bGVzaGVldF92Ml8wOS4wNS4xMy5wZGZcXG5cXG4vLyBQbGVhc2Uga2VlcCB0aGlzIGZpbGUgc2ltcGxlOyBpdCBzaG91bGQgb25seSBjb250YWluIGNvbG9yIGRlZmluaXRpb25zXFxuLy8gICBhbmQgYWxpYXNlcy4gIFZhcmlhYmxlcyBkZWZpbmVkIGluIHRoaXMgZmlsZSBhcmUgZXhwb3J0ZWQgdG9cXG4vLyAgIGFwcHMvc3JjL3V0aWwvY29sb3IuanMgZHVyaW5nIHRoZSBhcHBzIGJ1aWxkIHByb2Nlc3MuXFxuXFxuJGJsYWNrOiAjMDAwO1xcbiRiYWNrZ3JvdW5kX2JsYWNrOiAjMTIxNDE2O1xcbiRkYXJrX2dyYXk6ICMyRDMxMzk7XFxuJGRhcmtlc3RfZ3JheTogIzI5MkYzNjtcXG4kZGFya19zbGF0ZV9ncmF5OiAjMjgyYzM0O1xcbiRkYXJrZXN0X3NsYXRlX2dyYXk6ICMyNTI5MmQ7XFxuJGRhcmtfY2hhcmNvYWw6ICM0ZDU3NWY7XFxuJGNoYXJjb2FsOiAjNWI2NzcwO1xcbiRsaWdodF9ncmF5OiAjOTQ5Y2EyO1xcbiRsaWdodGVyX2dyYXk6ICNjNmNhY2Q7XFxuJGxpZ2h0ZXN0X2dyYXk6ICNlN2U4ZWE7XFxuJGJhY2tncm91bmRfZ3JheTogI2YyZjJmMjtcXG4kZGltZ3JheTogIzY5Njk2OTtcXG4kd2hpdGU6ICNmZmY7XFxuJGRlZmF1bHRfYmx1ZTogIzM2NzBiMztcXG5cXG4kZGFya190ZWFsOiAjMDA5NGEzO1xcbiR0ZWFsOiAjMDA5M2E0O1xcbiRhcHBsYWJfYnV0dG9uX3RlYWw6ICMxYWJjOWM7XFxuJGxpZ2h0X3RlYWw6ICM1OWNhZDM7XFxuJGxpZ2h0aXNoX3RlYWw6ICM4MGQ2ZGU7XFxuJGxpZ2h0ZXJfdGVhbDogI2E2ZTNlODtcXG4kbGlnaHRlc3RfdGVhbDogI2Q5ZjNmNTtcXG4kYWlfcnVicmljX2N5YW46ICMzY2ZmZjg7XFxuXFxuJHB1cnBsZTogIzhjNTJiYTtcXG4kbGlnaHRfcHVycGxlOiAjYTY5YmMxO1xcbiRsaWdodGVyX3B1cnBsZTogI2NmYzlkZTtcXG4kbGlnaHRlc3RfcHVycGxlOiAjZWJlOGYxO1xcblxcbiRjeWFuOiAjMDA5NGNhO1xcbiRsaWdodF9jeWFuOiAjNTliOWRjO1xcbiRsaWdodGVyX2N5YW46ICNhNmRhZWQ7XFxuJGxpZ2h0ZXN0X2N5YW46ICNkOWVmZjc7XFxuJGFsbW9zdF93aGl0ZV9jeWFuOiAjZjVmY2ZmO1xcblxcbiRvcmFuZ2U6ICNmZmE0MDA7XFxuJGxpZ2h0X29yYW5nZTogI2ZmYzQ1OTtcXG4kbGlnaHRlcl9vcmFuZ2U6ICNmZmUwYTY7XFxuJGxpZ2h0ZXN0X29yYW5nZTogI2ZmZjJkOTtcXG4kZGFya19vcmFuZ2U6ICNmZjg2MDA7XFxuXFxuJGdyZWVuOiAjYjliZjE1O1xcbiRsaWdodF9ncmVlbjogI2QxZDU2NztcXG4kbGlnaHRlcl9ncmVlbjogI2U3ZTlhZDtcXG4kbGlnaHRlc3RfZ3JlZW46ICNmNWY1ZGM7XFxuJGhpZ2hsaWdodF9ncmVlbjogIzhhZmM5YjtcXG5cXG4keWVsbG93OiAjZmZiODFkO1xcbiRsaWdodF95ZWxsb3c6ICNmZmRiNzQ7XFxuJGxpZ2h0ZXJfeWVsbG93OiAjZmZlYmI1O1xcbiRsaWdodGVzdF95ZWxsb3c6ICNmZmY3ZGY7XFxuXFxuJGdvbGRlbnJvZDogI2RhYTUyMDtcXG5cXG4kaGVhZGVyX3RleHQ6ICR3aGl0ZTtcXG4kYmtnbmRfY29sb3I6ICR0ZWFsO1xcbiRpbnNldF9jb2xvcjogJGxpZ2h0ZXJfZ3JheTtcXG4kZGFya19jb2xvcjogJHB1cnBsZTtcXG4kaGRyX2NvbG9yOiAkcHVycGxlO1xcblxcbi8vIFNvbWUgZXh0cmEgY29sb3JzLlxcbiRyZWQ6ICNjMDA7XFxuJGxpZ2h0ZXN0X3JlZDogI2ZjYztcXG4kZGFya19yZWQ6ICNkNjI5MTE7XFxuJHJlYWxncmVlbjogIzAwODAwMDtcXG4kcmVhbHllbGxvdzogI2ZmMDtcXG4kbXVzdGFyZHllbGxvdzogI2VmY2QxYztcXG4kdHdpdHRlcl9ibHVlOiAjMDBhY2VkO1xcbiRmYWNlYm9va19ibHVlOiAjM2I1OTk4O1xcbiRsaW5rZWRpbl9ibHVlOiAjMDA3N0I1O1xcbiRkYXJrX2JsdWU6ICMwMDY0N2Y7XFxuJGJsb2NrbHlfZmx5b3V0X2dyYXk6ICNkZGQ7XFxuJGRlZmF1bHRfdGV4dDogIzMzMztcXG4kYm9yZGVyX2dyYXk6ICNiYmI7XFxuJGJvcmRlcl9saWdodF9ncmF5OiAjZDhkOGQ4O1xcbiR0YWJsZV9oZWFkZXI6ICNlY2VjZWM7XFxuJHRhYmxlX2xpZ2h0X3JvdzogI2ZjZmNmYztcXG4kdGFibGVfZGFya19yb3c6ICNmNGY0ZjQ7XFxuXFxuLy8gUHJvZ3Jlc3MgY29sb3JzLlxcbiRsZXZlbF9zdWJtaXR0ZWQ6ICRwdXJwbGU7XFxuJGxldmVsX3BlcmZlY3Q6IHJnYigxNCwgMTkwLCAxNCk7XFxuJGxldmVsX3Bhc3NlZDogcmdiKDE1OSwgMjEyLCAxNTkpO1xcbiRsZXZlbF9hdHRlbXB0ZWQ6ICRyZWFseWVsbG93O1xcbiRsZXZlbF9ub3RfdHJpZWQ6ICNmZWZlZmU7XFxuJGxldmVsX2N1cnJlbnQ6ICRvcmFuZ2U7XFxuJGxldmVsX3Jldmlld19yZWplY3RlZDogJHJlZDtcXG4kbGV2ZWxfcmV2aWV3X2FjY2VwdGVkOiByZ2IoMTEsIDE0MiwgMTEpOyAvLyBUT0RPOiAkbGV2ZWxfcGFzc2VkO1xcbiRhc3Nlc3NtZW50OiAkY3lhbjtcXG4kd29ya3NwYWNlX3J1bm5pbmdfYmFja2dyb3VuZDogI2U1ZTVlNTtcXG5cXG4vLyBFeHBlcmltZW50YWwgU3ByaXRlIExhYiB2YWxpZGF0aW9uIGNvbG9ycy5cXG4kZGFya19wdXJwbGU6ICM2ODJBNzc7XFxuJGJyaWdodF9ncmVlbjogIzBlYmUwZTtcXG4kbmVvbl9waW5rOiAjZTkxMThmO1xcblxcbi8vIExpbmtzICh1c2VkIGluIGFwcHMpLlxcbiRsaW5rX2NvbG9yOiAjMDU5NmNlO1xcblxcbi8vIFNoYWRvdy5cXG4kc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMyk7XFxuXFxuLy8gQ29sb3JzIHRoYXQgYXJlIHRha2VuIGZyb20gYm9vdHN0cmFwLCBhbmQgbm90IG5lY2Vzc2FyaWx5IHBhcnQgb2Ygb3VyIGNvcmUgdGhlbWUuXFxuJGJvb3RzdHJhcF9idXR0b25fYmx1ZTogIzMzN2FiNztcXG4kYm9vdHN0cmFwX2J1dHRvbl9yZWQ6ICNkOTUzNGY7XFxuJGJvb3RzdHJhcF9lcnJvcl9iYWNrZ3JvdW5kOiAjZjJkZWRlO1xcbiRib290c3RyYXBfZXJyb3JfdGV4dDogI2I5NGE0ODtcXG4kYm9vdHN0cmFwX3YzX2Vycm9yX3RleHQ6ICNhOTQ0NDI7XFxuJGJvb3RzdHJhcF9lcnJvcl9ib3JkZXI6ICNlYmNjZDE7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JhY2tncm91bmQ6ICNmY2Y4ZTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX3RleHQ6ICNjMDk4NTM7XFxuJGJvb3RzdHJhcF93YXJuaW5nX2JvcmRlcjogI2ZhZWJjYztcXG4kYm9vdHN0cmFwX2JvcmRlcl9jb2xvcjogI2NjY2NjYztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYmFja2dyb3VuZDogI2RmZjBkODtcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfdGV4dDogIzQ2ODg0NztcXG4kYm9vdHN0cmFwX3N1Y2Nlc3NfYm9yZGVyOiAjZDZlOWM2O1xcblxcbi8vIENvbG9ycyB0YWtlbiBmcm9tIGRyb3BsZXQsIG5vdCBwYXJ0IG9mIG91ciBjb3JlIHRoZW1lLlxcbiRkcm9wbGV0X2xpZ2h0X2dyZWVuOiAjZDNlOTY1O1xcbiRkcm9wbGV0X2JsdWU6ICM2NGI1ZjY7XFxuJGRyb3BsZXRfYnJpZ2h0X2JsdWU6ICMxOWMzZTE7XFxuJGRyb3BsZXRfeWVsbG93OiAjZmZmMTc2O1xcbiRkcm9wbGV0X29yYW5nZTogI2ZmYjc0ZDtcXG4kZHJvcGxldF9yZWQ6ICNmNzgxODM7XFxuJGRyb3BsZXRfY3lhbjogIzRkZDBlMTtcXG4kZHJvcGxldF9waW5rOiAjZjU3YWM2O1xcbiRkcm9wbGV0X3B1cnBsZTogI2JiNzdjNztcXG4kZHJvcGxldF9ncmVlbjogIzY4ZDk5NTtcXG4kZHJvcGxldF93aGl0ZTogJHdoaXRlO1xcblxcbi8vIE9jZWFuczogZGVlcCBibHVlIGJhY2tncm91bmQuXFxuJG9jZWFuc19kZWVwX2JsdWU6IHJnYigyLCAwLCAyOCk7XFxuXFxuLy8gRGFyayB0aGVtZSBiYWNrZ3JvdW5kICh1c2VkIGJ5IGRlZmF1bHQgaW4gTXVzaWMgTGFiKVxcbiRkYXJrX2JsYWNrOiAjMTIxMjEyO1xcblxcbi8vID09PS0tLS09PT0tLS0tPT09LS0tLSBQaGFzZSAxIENvbG9yczogLS0tLT09PS0tLS09PT0tLS0tPT09XFxuLy8gQnJhbmRcXG4kYnJhbmRfcHJpbWFyeV9saWdodDogI0UwRjhGOTtcXG4kYnJhbmRfcHJpbWFyeV9kZWZhdWx0OiAjMDA5RUIwO1xcbiRicmFuZF9wcmltYXJ5X2Rhcms6ICMwMDc3ODU7XFxuXFxuJGJyYW5kX3NlY29uZGFyeV9saWdodDogI0UwRDFFQztcXG4kYnJhbmRfc2Vjb25kYXJ5X2RlZmF1bHQ6ICM4QzUyQkE7XFxuJGJyYW5kX3NlY29uZGFyeV9kYXJrOiAjNkM0NjhBO1xcblxcbiRicmFuZF9hY2NlbnRfZGVmYXVsdDogI0VENjA2MDtcXG5cXG4kYnJhbmRfdGVhbF81OiAjREZGMkY0O1xcblxcbi8vUHJvZHVjdFxcbiRwcm9kdWN0X2FmZmlybWF0aXZlX2RlZmF1bHQ6ICMzRUEzM0U7XFxuXFxuJHByb2R1Y3RfbmVnYXRpdmVfbGlnaHQ6ICNGREVCRTk7XFxuJHByb2R1Y3RfbmVnYXRpdmVfZGVmYXVsdDogI0U1MzExQTtcXG4kcHJvZHVjdF9uZWdhdGl2ZV9kYXJrOiAjQUEyNTEzO1xcblxcbiRwcm9kdWN0X2NhdXRpb25fZGVmYXVsdDogI0Y5Q0IyODtcXG5cXG4kcHJvZHVjdF9pbmZvcm1hdGlvbl9kZWZhdWx0OiAjMDA3QUNDO1xcblxcbi8vIE5ldXRyYWxcXG4kbmV1dHJhbF93aGl0ZTogI0ZGRkZGRjtcXG4kbmV1dHJhbF9saWdodDogI0Y3RjhGQTtcXG4kbmV1dHJhbF9ncmF5MTA6ICNFQUVCRUI7XFxuJG5ldXRyYWxfZGFyazEwOiAjRUFFQ0VGO1xcbiRuZXV0cmFsX2RhcmsyMDogI0QxRDREODtcXG4kbmV1dHJhbF9kYXJrMzA6ICNCRUMyQzc7XFxuJG5ldXRyYWxfZGFyazQwOiAjQUJCMEI2O1xcbiRuZXV0cmFsX2Rhcms1MDogIzk4OUVBNTtcXG4kbmV1dHJhbF9kYXJrNjA6ICM4NThDOTQ7XFxuJG5ldXRyYWxfZGFyazcwOiAjNzI3QTgzO1xcbiRuZXV0cmFsX2Rhcms4MDogIzVGNjg3MjtcXG4kbmV1dHJhbF9kYXJrOTA6ICM0QzU2NjE7XFxuJG5ldXRyYWxfZGFyazogIzI5MkYzNjtcXG5cXG4vL0JyYW5kc1xcbiRnb29nbGVfYnJhbmRfY29sb3I6ICMwRjlENTg7XFxuJG1pY3Jvc29mdF9icmFuZF9jb2xvcjogI0ZGQjkwMDtcXG4kZmFjZWJvb2tfYnJhbmRfY29sb3I6ICMzQjU5OTg7XFxuJGNsZXZlcl9icmFuZF9jb2xvcjogIzE0NjRGRjtcXG5cXG4vLyA9PT0tLS0tPT09LS0tLT09PS0tLS0gRGVzaWduIHN5c3RlbSBjb2xvcnM6IC0tLS09PT0tLS0tPT09LS0tLT09PVxcblxcbiRsaWdodF9wcmltYXJ5XzEwMDogI0JGRTRFODtcXG4kbGlnaHRfcHJpbWFyeV81MDA6ICMwMDkzQTQ7XFxuJGxpZ2h0X3ByaW1hcnlfNzAwOiAjMDA3Nzg1O1xcblxcbiRsaWdodF9zZWNvbmRhcnlfMTAwOiAjRTJENEVFO1xcbiRsaWdodF9zZWNvbmRhcnlfNTAwOiAjOEM1MkJBO1xcbiRsaWdodF9zZWNvbmRhcnlfNzAwOiAjNkM0NjhBO1xcblxcbiRsaWdodF9ncmF5XzUwOiAjRjdGOEZBO1xcbiRsaWdodF9ncmF5XzEwMDogI0VBRUNFRjtcXG4kbGlnaHRfZ3JheV8yMDA6ICNEMUQ0RDg7XFxuJGxpZ2h0X2dyYXlfMzAwOiAjQkVDMkM3O1xcbiRsaWdodF9ncmF5XzQwMDogI0FCQjBCNjtcXG4kbGlnaHRfZ3JheV81MDA6ICM5ODlFQTU7XFxuJGxpZ2h0X2dyYXlfNjAwOiAjODU4Qzk0O1xcbiRsaWdodF9ncmF5XzcwMDogIzcyN0E4MztcXG4kbGlnaHRfZ3JheV84MDA6ICM1RjY4NzI7XFxuJGxpZ2h0X2dyYXlfOTAwOiAjNEM1NjYxO1xcbiRsaWdodF9ncmF5Xzk1MDogIzM5NDQ1MDtcXG5cXG4kbGlnaHRfYWZmaXJtYXRpdmVfMTAwOiAjRTJGMUUyO1xcbiRsaWdodF9hZmZpcm1hdGl2ZV81MDA6ICMzRUEzM0U7XFxuJGxpZ2h0X2FmZmlybWF0aXZlXzcwMDogIzJENzQyRDtcXG5cXG4kbGlnaHRfbmVnYXRpdmVfMTAwOiAjRkJFMEREO1xcbiRsaWdodF9uZWdhdGl2ZV81MDA6ICNFNTMxMUE7XFxuJGxpZ2h0X25lZ2F0aXZlXzcwMDogI0IyNDk0OTtcXG5cXG4kbGlnaHRfY2F1dGlvbl8xMDA6ICNGRUY3REY7XFxuJGxpZ2h0X2NhdXRpb25fNTAwOiAjRjlDQjI4O1xcbiRsaWdodF9jYXV0aW9uXzcwMDogI0M3QTIyMDtcXG5cXG4kbGlnaHRfYWNjZW50XzEwMDogI0ZBRDdENztcXG4kbGlnaHRfYWNjZW50XzUwMDogI0VENjA2MDtcXG4kbGlnaHRfYWNjZW50XzcwMDogI0Q4NEM0QztcXG5cXG4kbGlnaHRfYXF1YV8xMDA6ICNDRUZGRkQ7XFxuJGxpZ2h0X2FxdWFfNTAwOiAjM0NGRkY4O1xcbiRsaWdodF9hcXVhXzcwMDogIzMwQ0NDNjtcXG5cXG4kbGlnaHRfb3JhbmdlXzEwMDogI0ZGRURDQztcXG4kbGlnaHRfb3JhbmdlXzUwMDogI0ZGQTQwMDtcXG4kbGlnaHRfb3JhbmdlXzcwMDogI0NDODMwMDtcXG5cXG4kbGlnaHRfaW5mb18xMDA6ICNEQ0VGRkI7XFxuJGxpZ2h0X2luZm9fNTAwOiAjMTg5MkUzO1xcbiRsaWdodF9pbmZvXzcwMDogIzEzNzVCNjtcXG5cXG4kbGlnaHRfd2hpdGU6ICNGRkZGRkY7XFxuXFxuJGxpZ2h0X2JsYWNrOiAjMjkyRjM2O1xcblxcbiRsaWdodF9ibGFja19vcGFjaXR5XzkwOiByZ2JhKDQxLCA0NywgNTQsIDAuOTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTgwOiByZ2JhKDQxLCA0NywgNTQsIDAuODApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTcwOiByZ2JhKDQxLCA0NywgNTQsIDAuNzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTYwOiByZ2JhKDQxLCA0NywgNTQsIDAuNjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTUwOiByZ2JhKDQxLCA0NywgNTQsIDAuNTApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTQwOiByZ2JhKDQxLCA0NywgNTQsIDAuNDApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTMwOiByZ2JhKDQxLCA0NywgNTQsIDAuMzApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTIwOiByZ2JhKDQxLCA0NywgNTQsIDAuMjApO1xcbiRsaWdodF9ibGFja19vcGFjaXR5LTEwOiByZ2JhKDQxLCA0NywgNTQsIDAuMTApO1xcblwiLFwiLy8gQ29tbW9uIHN0eWxlcyBhbmQgbWVhc3VyZXMgYWNjZXNzaWJsZSBmcm9tIGFsbCBzdHlsZXNoZWV0c1xcblxcbi8vIEhlaWdodCBvZiB3b3Jrc3BhY2UgaGVhZGVycyAoYWJvdmUgYWN0dWFsIGJsb2NrbHkvZHJvcGxldCBzcGFjZSwgYmVuZWF0aFxcbi8vIHNpdGUgaGVhZGVyKVxcbiR3b3Jrc3BhY2UtaGVhZGVycy1oZWlnaHQ6IDMwcHg7XFxuXFxuLy8gV2lkdGggb2YgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgcmVzaXplIGJhcnNcXG4kcmVzaXplLWJhci13aWR0aDogMTNweDtcXG5cXG4vLyBPcGFjaXR5IG9mIGVsZW1lbnRzIHRoYXQgYXJlIGRyYWdnZWQgb3V0IHRvIGJlIGRlbGV0ZWRcXG4kZGVsZXRlLW9wYWNpdHk6IDAuNTtcXG5cXG4vLyBXaWR0aCBvZiBwZWdhc3VzIGNvbnRlbnQgYXMgb2YgMjAxNyByZWRlc2lnblxcbiRjb250ZW50LXdpZHRoOiA5NzBweDtcXG5cIixcIi8vIENvbW1vbiBzaXRlLXdpZGUgZm9udHMsIHB1dCBoZXJlIGZvciBlYXN5IGFjY2VzcyBmcm9tIGFsbCBzY3NzIGZpbGVzXFxuXFxuLy8gUGxlYXNlIG5vdGUgKCEpOiB1c2Ugb25seSBzaW5nbGUgcXVvdGVzICgnICcpIGZvciBzdHJpbmdzICghKSB0byBhbGxvdyBvdXIgY3VzdG9tIGNvbnZlcnRlciB0byB3b3JrIHByb3Blcmx5Llxcbi8vIFRoaXMgZmlsZSBpcyBiZWluZyB0cmFuc3BpbGVkIHRvIGpzIG9iamVjdC5cXG4vLyAoU28gaXQgY2FuIGJlIHVzZWQgaW4ganN4L3RzeCBmaWxlcyBmb3IgaW5saW5lIHN0eWxlcy4gVGhpcyBpcyBtYWRlIG1vc3RseSBmb3IgbGVnYWN5Llxcbi8vIFRyeSB0byBhdm9pZCB1c2Ugb2YgaW5saW5lIHN0eWxlcyBpZiB5b3UncmUgY3JlYXRpbmcgbmV3IGNvbXBvbmVudCkuXFxuLy8gS2VlcGluZyB0aGF0IGluIG1pbmQgLVxcblxcbi8qIHN0eWxlbGludC1kaXNhYmxlIGltcG9ydC1ub3RhdGlvbiAqL1xcblxcbiRmaWd0cmVlLWZvbnQ6ICdGaWd0cmVlJztcXG4kbm90by1zYW5zLWZvbnRzOiAnTm90byBTYW5zJywgJ05vdG8gU2FucyBNYXRoJywgJ05vdG8gU2FucyBBcmFiaWMnLFxcbiAgJ05vdG8gU2FucyBBcm1lbmlhbicsICdOb3RvIFNhbnMgQmVuZ2FsaScsICdOb3RvIFNhbnMgU0MnLCAnTm90byBTYW5zIFRDJyxcXG4gICdOb3RvIFNhbnMgRGV2YW5hZ2FyaScsICdOb3RvIFNhbnMgR2VvcmdpYW4nLCAnTm90byBTYW5zIEhlYnJldycsXFxuICAnTm90byBTYW5zIEpQJywgJ05vdG8gU2FucyBLYW5uYWRhJywgJ05vdG8gU2FucyBLaG1lcicsICdOb3RvIFNhbnMgS1InLFxcbiAgJ05vdG8gU2FucyBNeWFubWFyJywgJ05vdG8gU2FucyBTaW5oYWxhJywgJ05vdG8gU2FucyBUYW1pbCcsXFxuICAnTm90byBTYW5zIFRlbHVndScsICdOb3RvIFNhbnMgVGhhaScsICdOb3RvIFNhbnMgVGhhYW5hJztcXG4kbWFpbi1mb250OiAkZmlndHJlZS1mb250LCAkbm90by1zYW5zLWZvbnRzLCBzYW5zLXNlcmlmO1xcbiR0aGluLWZvbnQtd2VpZ2h0OiAxMDA7XFxuJGV4dHJhLWxpZ2h0LWZvbnQtd2VpZ2h0OiAyMDA7XFxuJGxpZ2h0LWZvbnQtd2VpZ2h0OiAzMDA7XFxuJHJlZ3VsYXItZm9udC13ZWlnaHQ6IDQwMDtcXG4kbWVkaXVtLWZvbnQtd2VpZ2h0OiA1MDA7XFxuJHNlbWktYm9sZC1mb250LXdlaWdodDogNjAwO1xcbiRib2xkLWZvbnQtd2VpZ2h0OiA3MDA7XFxuJGV4dHJhLWJvbGQtZm9udC13ZWlnaHQ6IDgwMDtcXG4kYmxhY2stZm9udC13ZWlnaHQ6IDkwMDtcXG5cXG5AbWl4aW4gbWFpbi1mb250LXRoaW4ge1xcbiAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XFxuICBmb250LXdlaWdodDogJHRoaW4tZm9udC13ZWlnaHQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtdGhpbi1pdGFsaWMge1xcbiAgQGluY2x1ZGUgbWFpbi1mb250LXRoaW47XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtZXh0cmEtbGlnaHQge1xcbiAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XFxuICBmb250LXdlaWdodDogJGV4dHJhLWxpZ2h0LWZvbnQtd2VpZ2h0O1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LWV4dHJhLWxpZ2h0LWl0YWxpYyB7XFxuICBAaW5jbHVkZSBtYWluLWZvbnQtZXh0cmEtbGlnaHQ7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtbGlnaHQge1xcbiAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XFxuICBmb250LXdlaWdodDogJGxpZ2h0LWZvbnQtd2VpZ2h0O1xcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LWxpZ2h0LWl0YWxpYyB7XFxuICBAaW5jbHVkZSBtYWluLWZvbnQtbGlnaHQ7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtcmVndWxhciB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkcmVndWxhci1mb250LXdlaWdodDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1yZWd1bGFyLWl0YWxpYyB7XFxuICBAaW5jbHVkZSBtYWluLWZvbnQtcmVndWxhcjtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1tZWRpdW0ge1xcbiAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XFxuICBmb250LXdlaWdodDogJG1lZGl1bS1mb250LXdlaWdodDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1tZWRpdW0taXRhbGljIHtcXG4gIEBpbmNsdWRlIG1haW4tZm9udC1tZWRpdW07XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtc2VtaS1ib2xkIHtcXG4gIGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xcbiAgZm9udC13ZWlnaHQ6ICRzZW1pLWJvbGQtZm9udC13ZWlnaHQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtc2VtaS1ib2xkLWl0YWxpYyB7XFxuICBAaW5jbHVkZSBtYWluLWZvbnQtc2VtaS1ib2xkO1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG5cXG5AbWl4aW4gbWFpbi1mb250LWJvbGQge1xcbiAgZm9udC1mYW1pbHk6ICRtYWluLWZvbnQ7XFxuICBmb250LXdlaWdodDogJGJvbGQtZm9udC13ZWlnaHQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtYm9sZC1pdGFsaWMge1xcbiAgQGluY2x1ZGUgbWFpbi1mb250LWJvbGQ7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtZXh0cmEtYm9sZCB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkZXh0cmEtYm9sZC1mb250LXdlaWdodDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1leHRyYS1ib2xkLWl0YWxpYyB7XFxuICBAaW5jbHVkZSBtYWluLWZvbnQtZXh0cmEtYm9sZDtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuQG1peGluIG1haW4tZm9udC1ibGFjayB7XFxuICBmb250LWZhbWlseTogJG1haW4tZm9udDtcXG4gIGZvbnQtd2VpZ2h0OiAkYmxhY2stZm9udC13ZWlnaHQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxufVxcblxcbkBtaXhpbiBtYWluLWZvbnQtYmxhY2staXRhbGljIHtcXG4gIEBpbmNsdWRlIG1haW4tZm9udC1ibGFjaztcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuXFxuJGJhcmxvd1NlbWlDb25kZW5zZWQtc2VtaWJvbGQ6ICdCYXJsb3cgU2VtaSBDb25kZW5zZWQgU2VtaWJvbGQnLFxcbiAgJG5vdG8tc2Fucy1mb250cywgc2Fucy1zZXJpZjtcXG4kYmFybG93U2VtaUNvbmRlbnNlZC1tZWRpdW06ICdCYXJsb3cgU2VtaSBDb25kZW5zZWQgTWVkaXVtJywgJG5vdG8tc2Fucy1mb250cyxcXG4gIHNhbnMtc2VyaWY7XFxuXFxuLypcXG4gICBGb250IEF3ZXNvbWUgUzMgQnVja2V0IFVSTHNcXG4gICBDdXJyZW50IHZlcnNpb246IDYuNi4wXFxuICAgSWYgeW91IGFyZSBjaGFuZ2luZyB0aGUgbG9jYXRpb24gb2YgdGhlc2UgZmlsZXMsXFxuICAgc2VlIHRoZSByZWFkbWUgaW4gdGhpcyBkaXJlY3RvcnkgZm9yIG1vcmUgZGV0YWlsIG9uIG1hbnVhbCBzdGVwcyB0byB0YWtlIHdoZW4gdXBsb2FkaW5nIG5ldyBmaWxlcy5cXG4gKi9cXG4kZm9udC1hd2Vzb21lLWNvcmUtdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL2ZvbnRhd2Vzb21lLm1pbi5jc3MnO1xcbiRmb250LWF3ZXNvbWUtYnJhbmRzLXVybDogJ2h0dHBzOi8vZHNjby5jb2RlLm9yZy9hc3NldHMvZm9udC1hd2Vzb21lLXByby8xNzI4NDIxMzU0L2Nzcy9icmFuZHMubWluLmNzcyc7XFxuJGZvbnQtYXdlc29tZS1zb2xpZC11cmw6ICdodHRwczovL2RzY28uY29kZS5vcmcvYXNzZXRzL2ZvbnQtYXdlc29tZS1wcm8vMTcyODQyMTM1NC9jc3Mvc29saWQubWluLmNzcyc7XFxuJGZvbnQtYXdlc29tZS1yZWd1bGFyLXVybDogJ2h0dHBzOi8vZHNjby5jb2RlLm9yZy9hc3NldHMvZm9udC1hd2Vzb21lLXByby8xNzI4NDIxMzU0L2Nzcy9yZWd1bGFyLm1pbi5jc3MnO1xcbiRmb250LWF3ZXNvbWUtdjQtZm9udHMtdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL3Y0LWZvbnQtZmFjZS5taW4uY3NzJztcXG4kZm9udC1hd2Vzb21lLXY0LXNoaW1zLXVybDogJ2h0dHBzOi8vZHNjby5jb2RlLm9yZy9hc3NldHMvZm9udC1hd2Vzb21lLXByby8xNzI4NDIxMzU0L2Nzcy92NC1zaGltcy5taW4uY3NzJztcXG4kZm9udC1hd2Vzb21lLXY0LXNoaW1zLXVybDogJ2h0dHBzOi8vZHNjby5jb2RlLm9yZy9hc3NldHMvZm9udC1hd2Vzb21lLXByby8xNzI4NDIxMzU0L2Nzcy92NC1zaGltcy5taW4uY3NzJztcXG4kZm9udC1hd2Vzb21lLWR1b3RvbmUtdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL2R1b3RvbmUubWluLmNzcyc7XFxuJGZvbnQtYXdlc29tZS1jdXN0b20taWNvbnMtdXJsOiAnaHR0cHM6Ly9kc2NvLmNvZGUub3JnL2Fzc2V0cy9mb250LWF3ZXNvbWUtcHJvLzE3Mjg0MjEzNTQvY3NzL2N1c3RvbS1pY29ucy5taW4uY3NzJztcXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmxvY2FscyA9IHtcblx0XCJwYWdlQ29udGFpbmVyXCI6IFwicjE0OEdMOXJjdE1pOGljMlJ4emFcIixcblx0XCJjb250ZW50XCI6IFwidmpjcWNzQzVVSG5IdTVmTmRDWE5cIixcblx0XCJuYXZDb250YWluZXJcIjogXCJfdWZNaVJUMnJJbUNsWkhUSFhzWVwiLFxuXHRcImxpbmtDb250YWluZXJcIjogXCJLNGJPY2JIeW55TjZETV80WHh3UlwiLFxuXHRcImFjdGl2ZUxpbmtDb250YWluZXJcIjogXCJpRkZGbFVud3Q3d2prdTFBSDlsOFwiLFxuXHRcImxpbmtcIjogXCJfRFF6UXVaTXFUUTRBYURqNmllQVwiLFxuXHRcImRhc2hib2FyZFBhZ2VcIjogXCJYaGlHMUxIU0ZCcEZUWUlGcEVET1wiLFxuXHRcInRleHRcIjogXCJkWjFjTjIxZnRxd2R6Uk14REtXSlwiLFxuXHRcImVtcHR5Q2xhc3Nyb29tXCI6IFwiUlJLbThIT2JxZ3ZnTElEUm5ybkhcIixcblx0XCJlbXB0eUNsYXNzcm9vbVByb2dyZXNzXCI6IFwiTDJzN1NyZnN0YnVOUEpQMlI1RWdcIixcblx0XCJlbXB0eUNsYXNzcm9vbURpdlwiOiBcIk1Bd0dfcmhSS1BnMlFyM0FxNDhfXCIsXG5cdFwiZW1wdHlDbGFzc3Jvb21JbWFnZVwiOiBcIlRCMjMxRkN1UXppNjFld1ZQMTNxXCIsXG5cdFwiaGVhZGVyXCI6IFwiT2ZUR3NQZ2hzNms5aXNxVGFCTldcIixcblx0XCJoZWFkZXJDb250YWluZXJcIjogXCJkMEtkRXY4cm43bmFvZkI5SndxWVwiLFxuXHRcImhlYWRlckxpbmtcIjogXCJuN3JwZGhuRzZtSVpmTTcwbk5qVVwiLFxuXHRcImhlYWRlckxpbmtDaGV2cm9uXCI6IFwibDhnWUdMQUg1ZllTeWF1YUdENmpcIixcblx0XCJoZWFkZXJDdXJyaWN1bHVtXCI6IFwiX1ZrY2lhd1c2aThhRjJLcnFla3ZcIixcblx0XCJoZWFkZXJSaWdodENvbHVtblwiOiBcInI1VFdrS3lDcEtHekI3bFIyT1FpXCIsXG5cdFwiaGVhZGVyQnV0dG9uU2VjdGlvblwiOiBcImwxWmNNbjg2V1ZFdE1mTXR3ekI4XCIsXG5cdFwibmF2TGlua1wiOiBcIkdzdFBIaGlfcFhNaldxNk9nVHdiXCIsXG5cdFwidG9wUGFkZGluZ1wiOiBcIm5PUXJlbmR5WFVvMEs5ck1LZzc0XCIsXG5cdFwicHJvZ3Jlc3NIZWFkZXJWMVwiOiBcIlBvWWpnNk9nX2ZFUmRlQXQyNm9HXCJcbn07XG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsImZ1bmN0aW9uIHdlYnBhY2tFbXB0eUNvbnRleHQocmVxKSB7XG5cdHZhciBlID0gbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIiArIHJlcSArIFwiJ1wiKTtcblx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHR0aHJvdyBlO1xufVxud2VicGFja0VtcHR5Q29udGV4dC5rZXlzID0gKCkgPT4gKFtdKTtcbndlYnBhY2tFbXB0eUNvbnRleHQucmVzb2x2ZSA9IHdlYnBhY2tFbXB0eUNvbnRleHQ7XG53ZWJwYWNrRW1wdHlDb250ZXh0LmlkID0gXCIuL25vZGVfbW9kdWxlcy9uaXNlIHN5bmMgcmVjdXJzaXZlXCI7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tFbXB0eUNvbnRleHQ7IiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL0ZlZWRiYWNrQmFubmVyLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL0ZlZWRiYWNrQmFubmVyLnNjc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vY29udGVudC1jb250YWluZXIubW9kdWxlLnNjc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL2NvbnRlbnQtY29udGFpbmVyLm1vZHVsZS5zY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL2FnZS1nYXRlZC1zZWN0aW9ucy1tb2RhbC5tb2R1bGUuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsLm1vZHVsZS5zY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMV0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsyXSEuL2JvcmRlcmVkQ2FsbFRvQWN0aW9uLm1vZHVsZS5zY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5cbiAgICAgIG9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG4gICAgXG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzFdIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMl0hLi9ib3JkZXJlZENhbGxUb0FjdGlvbi5tb2R1bGUuc2Nzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzFdIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1s0XS51c2VbMl0hLi90ZWFjaGVyLWRhc2hib2FyZC5tb2R1bGUuc2Nzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzRdLnVzZVsxXSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbNF0udXNlWzJdIS4vdGVhY2hlci1kYXNoYm9hcmQubW9kdWxlLnNjc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQge0Rpc3BhdGNofSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7Z2V0QXV0aGVudGljaXR5VG9rZW59IGZyb20gJ0BjZG8vYXBwcy91dGlsL0F1dGhlbnRpY2l0eVRva2VuU3RvcmUnO1xuXG5jb25zdCBMVElfRkVFREJBQ0tfVVJMID0gJy9sdGkvdjEvZmVlZGJhY2snO1xuY29uc3QgTFRJX0ZFRURCQUNLX0ZFVENIX1JFUVVFU1QgPSAnbHRpL2ZlZWRiYWNrL2ZldGNoUmVxdWVzdCc7XG5jb25zdCBMVElfRkVFREJBQ0tfRkVUQ0hfU1VDQ0VTUyA9ICdsdGkvZmVlZGJhY2svZmV0Y2hTdWNjZXNzJztcbmNvbnN0IExUSV9GRUVEQkFDS19GRVRDSF9GQUlMVVJFID0gJ2x0aS9mZWVkYmFjay9mZXRjaEZhaWx1cmUnO1xuY29uc3QgTFRJX0ZFRURCQUNLX0NSRUFURV9SRVFVRVNUID0gJ2x0aS9mZWVkYmFjay9jcmVhdGVSZXF1ZXN0JztcbmNvbnN0IExUSV9GRUVEQkFDS19DUkVBVEVfU1VDQ0VTUyA9ICdsdGkvZmVlZGJhY2svY3JlYXRlU3VjY2Vzcyc7XG5jb25zdCBMVElfRkVFREJBQ0tfQ1JFQVRFX0ZBSUxVUkUgPSAnbHRpL2ZlZWRiYWNrL2NyZWF0ZUZhaWx1cmUnO1xuXG50eXBlIEx0aUZlZWRiYWNrQWN0aW9uID1cbiAgfCB7dHlwZTogdHlwZW9mIExUSV9GRUVEQkFDS19GRVRDSF9SRVFVRVNUfVxuICB8IHt0eXBlOiB0eXBlb2YgTFRJX0ZFRURCQUNLX0ZFVENIX1NVQ0NFU1M7IGx0aUZlZWRiYWNrOiBMdGlGZWVkYmFjayB8IG51bGx9XG4gIHwge3R5cGU6IHR5cGVvZiBMVElfRkVFREJBQ0tfRkVUQ0hfRkFJTFVSRTsgZXJyb3I6IHN0cmluZ31cbiAgfCB7dHlwZTogdHlwZW9mIExUSV9GRUVEQkFDS19DUkVBVEVfUkVRVUVTVH1cbiAgfCB7dHlwZTogdHlwZW9mIExUSV9GRUVEQkFDS19DUkVBVEVfU1VDQ0VTUzsgbHRpRmVlZGJhY2s6IEx0aUZlZWRiYWNrfVxuICB8IHt0eXBlOiB0eXBlb2YgTFRJX0ZFRURCQUNLX0NSRUFURV9GQUlMVVJFOyBlcnJvcjogc3RyaW5nfTtcblxuaW50ZXJmYWNlIEx0aUZlZWRiYWNrIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHNhdGlzZmllZDogYm9vbGVhbjtcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBlYXJseV9hY2Nlc3M/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgTHRpRmVlZGJhY2tTdGF0ZSB7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgbHRpRmVlZGJhY2s/OiBMdGlGZWVkYmFjayB8IG51bGw7XG4gIGVycm9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbHRpRmVlZGJhY2tSZWR1Y2VyKFxuICBzdGF0ZTogTHRpRmVlZGJhY2tTdGF0ZSxcbiAgYWN0aW9uOiBMdGlGZWVkYmFja0FjdGlvblxuKTogTHRpRmVlZGJhY2tTdGF0ZSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIExUSV9GRUVEQkFDS19GRVRDSF9SRVFVRVNUOlxuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiB0cnVlfTtcbiAgICBjYXNlIExUSV9GRUVEQkFDS19GRVRDSF9TVUNDRVNTOlxuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiBmYWxzZSwgbHRpRmVlZGJhY2s6IGFjdGlvbi5sdGlGZWVkYmFja307XG4gICAgY2FzZSBMVElfRkVFREJBQ0tfRkVUQ0hfRkFJTFVSRTpcbiAgICAgIHJldHVybiB7Li4uc3RhdGUsIGlzTG9hZGluZzogZmFsc2UsIGVycm9yOiBhY3Rpb24uZXJyb3J9O1xuICAgIGNhc2UgTFRJX0ZFRURCQUNLX0NSRUFURV9SRVFVRVNUOlxuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiB0cnVlfTtcbiAgICBjYXNlIExUSV9GRUVEQkFDS19DUkVBVEVfU1VDQ0VTUzpcbiAgICAgIHJldHVybiB7Li4uc3RhdGUsIGlzTG9hZGluZzogZmFsc2UsIGx0aUZlZWRiYWNrOiBhY3Rpb24ubHRpRmVlZGJhY2t9O1xuICAgIGNhc2UgTFRJX0ZFRURCQUNLX0NSRUFURV9GQUlMVVJFOlxuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgaXNMb2FkaW5nOiBmYWxzZSwgZXJyb3I6IGFjdGlvbi5lcnJvcn07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZmV0Y2hMdGlGZWVkYmFjayA9IChkaXNwYXRjaDogRGlzcGF0Y2g8THRpRmVlZGJhY2tBY3Rpb24+KSA9PiB7XG4gIGRpc3BhdGNoKHt0eXBlOiBMVElfRkVFREJBQ0tfRkVUQ0hfUkVRVUVTVH0pO1xuXG4gIGZldGNoKExUSV9GRUVEQkFDS19VUkwsIHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSxcbiAgfSlcbiAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBmZWVkYmFjaycpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbiAgICB9KVxuICAgIC50aGVuKGx0aUZlZWRiYWNrID0+IHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogTFRJX0ZFRURCQUNLX0ZFVENIX1NVQ0NFU1MsXG4gICAgICAgIGx0aUZlZWRiYWNrLFxuICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBMVElfRkVFREJBQ0tfRkVUQ0hfRkFJTFVSRSxcbiAgICAgICAgZXJyb3I6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0FuIGVycm9yIG9jY3VycmVkJyxcbiAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUx0aUZlZWRiYWNrID0gYXN5bmMgKFxuICBkaXNwYXRjaDogRGlzcGF0Y2g8THRpRmVlZGJhY2tBY3Rpb24+LFxuICBsdGlGZWVkYmFjazogTHRpRmVlZGJhY2tcbikgPT4ge1xuICBkaXNwYXRjaCh7dHlwZTogTFRJX0ZFRURCQUNLX0NSRUFURV9SRVFVRVNUfSk7XG5cbiAgZmV0Y2goTFRJX0ZFRURCQUNLX1VSTCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnWC1DU1JGLVRva2VuJzogYXdhaXQgZ2V0QXV0aGVudGljaXR5VG9rZW4oKSxcbiAgICB9LFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtsdGlfZmVlZGJhY2s6IGx0aUZlZWRiYWNrfSksXG4gIH0pXG4gICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGZlZWRiYWNrJyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgIH0pXG4gICAgLnRoZW4obHRpRmVlZGJhY2sgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBMVElfRkVFREJBQ0tfQ1JFQVRFX1NVQ0NFU1MsXG4gICAgICAgIGx0aUZlZWRiYWNrLFxuICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBMVElfRkVFREJBQ0tfQ1JFQVRFX0ZBSUxVUkUsXG4gICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdBbiBlcnJvciBvY2N1cnJlZCcsXG4gICAgICB9KTtcbiAgICB9KTtcbn07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtBbGVydCwgRmFkZX0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1yZXN0cmljdGVkLWltcG9ydHNcblxuaW1wb3J0IEZvbnRBd2Vzb21lIGZyb20gJ0BjZG8vYXBwcy9sZWdhY3lTaGFyZWRDb21wb25lbnRzL0ZvbnRBd2Vzb21lJztcblxuaW1wb3J0ICcuL0ZlZWRiYWNrQmFubmVyLnNjc3MnO1xuXG5leHBvcnQgY29uc3QgQkFOTkVSX1NUQVRVUyA9IE9iamVjdC5mcmVlemUoe1xuICAvLyBUaGUgaW5pdGlhbCBzdGF0dXMgb2YgdGhlIGJhbm5lci4gSXQgbWVhbnMgdGhhdCB0aGUgc3RhdHVzIGhhcyBub3QgYmVlbiBzZXQgeWV0LlxuICBVTlNFVDogJycsXG4gIC8vIFRoZSBzdGF0dXMgd2hlbiB0aGUgYmFubmVyIGlzIG5vdCBhdmFpbGFibGUuIFRoaXMgaXMgdHlwaWNhbGx5IHdoZW4gdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZlYXR1cmUuXG4gIC8vIGUuZy4gdGhlIHRlYWNoZXIgaXMgbm90IGFuIExUSSB0ZWFjaGVyLlxuICBVTkFWQUlMQUJMRTogJ3VuYXZhaWxhYmxlJyxcbiAgLy8gVGhlIHN0YXR1cyB3aGVuIHRoZSBiYW5uZXIgaXMgZGlzcGxheWVkIGJ1dCB0aGUgdXNlciBoYXMgbm90IHlldCBwcm92aWRlZCBmZWVkYmFjay5cbiAgVU5BTlNXRVJFRDogJ3VuYW5zd2VyZWQnLFxuICAvLyBUaGUgc3RhdHVzIHdoZW4gdGhlIHVzZXIgaGFzIHByb3ZpZGVkIGZlZWRiYWNrLlxuICBBTlNXRVJFRDogJ2Fuc3dlcmVkJyxcbiAgLy8gVGhlIHN0YXR1cyB3aGVuIHRoZSB1c2VyIGhhcyBwcmV2aW91c2x5IHN1Ym1pdHRlZCBmZWVkYmFjayBhbmQgdGhlIGJhbm5lciBpcyBub3Qgc2hvd24uXG4gIFBSRVZJT1VTTFlfQU5TV0VSRUQ6ICdwcmV2aW91c2x5X2Fuc3dlcmVkJyxcbiAgLy8gVGhlIHN0YXR1cyB3aGVuIHRoZSBiYW5uZXIgaGFzIGJlZW4gY2xvc2VkIGJ5IHRoZSB1c2VyLlxuICBDTE9TRUQ6ICdjbG9zZWQnLFxufSk7XG5cbmludGVyZmFjZSBGZWVkYmFja0Jhbm5lclByb3BzIHtcbiAgYWxlcnRLZXk6IHN0cmluZztcbiAgYW5zd2VyU3RhdHVzOiBzdHJpbmc7XG4gIGFuc3dlcjogKHNhdGlzZmllZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgY2xvc2U6ICgpID0+IHZvaWQ7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgY2xvc2VMYWJlbDogc3RyaW5nO1xuICBxdWVzdGlvbjogc3RyaW5nO1xuICBwb3NpdGl2ZUFuc3dlcjogc3RyaW5nO1xuICBuZWdhdGl2ZUFuc3dlcjogc3RyaW5nO1xuICBzaGFyZU1vcmU6IHN0cmluZztcbiAgc2hhcmVNb3JlTGluazogc3RyaW5nO1xuICBzaGFyZU1vcmVMaW5rVGV4dDogc3RyaW5nO1xufVxuXG5jb25zdCBGZWVkYmFja0Jhbm5lcjogUmVhY3QuRkM8RmVlZGJhY2tCYW5uZXJQcm9wcz4gPSAoe1xuICBhbGVydEtleSxcbiAgYW5zd2VyU3RhdHVzLFxuICBhbnN3ZXIsXG4gIGNsb3NlLFxuICBpc0xvYWRpbmcsXG4gIGNsb3NlTGFiZWwsXG4gIHF1ZXN0aW9uLFxuICBwb3NpdGl2ZUFuc3dlcixcbiAgbmVnYXRpdmVBbnN3ZXIsXG4gIHNoYXJlTW9yZSxcbiAgc2hhcmVNb3JlTGluayxcbiAgc2hhcmVNb3JlTGlua1RleHQsXG59KSA9PiB7XG4gIGNvbnN0IGlzQmFubmVyVmlzaWJsZSA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIChbQkFOTkVSX1NUQVRVUy5VTkFOU1dFUkVELCBCQU5ORVJfU1RBVFVTLkFOU1dFUkVEXSBhcyBzdHJpbmdbXSkuaW5jbHVkZXMoXG4gICAgICAgIGFuc3dlclN0YXR1c1xuICAgICAgKSxcbiAgICBbYW5zd2VyU3RhdHVzXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZhZGUgaW49e2lzQmFubmVyVmlzaWJsZX0gdW5tb3VudE9uRXhpdD17dHJ1ZX0+XG4gICAgICA8QWxlcnRcbiAgICAgICAga2V5PXthbGVydEtleX1cbiAgICAgICAgYnNTdHlsZT1cImluZm9cIlxuICAgICAgICBjbGFzc05hbWU9eydmZWVkYmFjay1iYW5uZXInfVxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJmZWVkYmFjay1iYW5uZXItdGl0bGVcIlxuICAgICAgICBjbG9zZUxhYmVsPXtjbG9zZUxhYmVsfVxuICAgICAgICBvbkRpc21pc3M9e2Fuc3dlclN0YXR1cyA9PT0gQkFOTkVSX1NUQVRVUy5BTlNXRVJFRCA/IGNsb3NlIDogdW5kZWZpbmVkfVxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmZWVkYmFjay1iYW5uZXItZ3JlZXRpbmdcIj5cbiAgICAgICAgICA8Rm9udEF3ZXNvbWVcbiAgICAgICAgICAgIGljb249XCJoYW5kLXdhdmVcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmEtZndcIlxuICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPEZhZGUgaW49eyFpc0xvYWRpbmd9PlxuICAgICAgICAgIHthbnN3ZXJTdGF0dXMgPT09IEJBTk5FUl9TVEFUVVMuVU5BTlNXRVJFRCA/IChcbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGlkPVwiZmVlZGJhY2stYmFubmVyLXRpdGxlXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmZWVkYmFjay10aXRsZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtxdWVzdGlvbn1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZlZWRiYWNrXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICB0aXRsZT17cG9zaXRpdmVBbnN3ZXJ9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBhbnN3ZXIodHJ1ZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEZvbnRBd2Vzb21lXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJ0aHVtYnMtby11cFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZhLWZ3XCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgdGl0bGU9e25lZ2F0aXZlQW5zd2VyfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYW5zd2VyKGZhbHNlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Rm9udEF3ZXNvbWVcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInRodW1icy1vLWRvd25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmYS1md1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic2hhcmUtbW9yZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBpZD1cImZlZWRiYWNrLWJhbm5lci10aXRsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIHtzaGFyZU1vcmV9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4gPC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaWQ9XCJmZWVkYmFjay1iYW5uZXItc2hhcmUtbW9yZS1saW5rXCJcbiAgICAgICAgICAgICAgICBocmVmPXtzaGFyZU1vcmVMaW5rfVxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c2hhcmVNb3JlTGlua1RleHR9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L0ZhZGU+XG4gICAgICA8L0FsZXJ0PlxuICAgIDwvRmFkZT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZlZWRiYWNrQmFubmVyO1xuIiwiaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVkdWNlciwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHt1c2VTZWxlY3Rvcn0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQge1xuICBsdGlGZWVkYmFja1JlZHVjZXIsXG4gIGZldGNoTHRpRmVlZGJhY2ssXG4gIGNyZWF0ZUx0aUZlZWRiYWNrLFxufSBmcm9tICdAY2RvL2FwcHMvcmVkdXgvbHRpL2x0aUZlZWRiYWNrUmVkdWNlcic7XG5pbXBvcnQge1Jvb3RTdGF0ZX0gZnJvbSAnQGNkby9hcHBzL3R5cGVzL3JlZHV4JztcbmltcG9ydCB7dHJ5U2V0TG9jYWxTdG9yYWdlLCB0cnlHZXRMb2NhbFN0b3JhZ2V9IGZyb20gJ0BjZG8vYXBwcy91dGlscyc7XG5pbXBvcnQge0xtc0xpbmtzfSBmcm9tICdAY2RvL2dlbmVyYXRlZC1zY3JpcHRzL3NoYXJlZENvbnN0YW50cyc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBGZWVkYmFja0Jhbm5lciwge1xuICBCQU5ORVJfU1RBVFVTLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWRDb21wb25lbnRzL3VzZXJGZWVkYmFjay9GZWVkYmFja0Jhbm5lcic7XG5cbi8qKlxuICogTHRpRmVlZGJhY2tCYW5uZXIgY29tcG9uZW50XG4gKiBUaGlzIGNvbXBvbmVudCBpcyByZXNwb25zaWJsZSBmb3IgZGlzcGxheWluZyB0aGUgTE1TIEZlZWRiYWNrIGJhbm5lciBmb3IgTFRJIHRlYWNoZXJzLlxuICogVGhlIGJhbm5lciBhc2tzIHRoZSB0ZWFjaGVyIGZvciBmZWVkYmFjayBhbmQgcHJvdmlkZXMgb3B0aW9ucyB0byByZXNwb25kLlxuICogVGhlIGJhbm5lcidzIHZpc2liaWxpdHkgYW5kIHN0YXRlIGFyZSBtYW5hZ2VkIHRocm91Z2ggbG9jYWwgc3RvcmFnZSBhbmQgc3RhdGUgdmFyaWFibGVzLlxuICpcbiAqIEBjb21wb25lbnRcbiAqL1xuY29uc3QgTHRpRmVlZGJhY2tCYW5uZXI6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50VXNlcik7XG4gIGNvbnN0IGtleSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGN1cnJlbnRVc2VyID8gYGx0aS1mYi0ke2N1cnJlbnRVc2VyLnV1aWR9YCA6ICcnKSxcbiAgICBbY3VycmVudFVzZXJdXG4gICk7XG5cbiAgLyoqXG4gICAqIFJlZHVjZXIgZm9yIG1hbmFnaW5nIHRoZSBzdGF0ZSBvZiB0aGUgTFRJIGZlZWRiYWNrLlxuICAgKi9cbiAgY29uc3QgW3tpc0xvYWRpbmcsIGVycm9yLCBsdGlGZWVkYmFja30sIGx0aUZlZWRiYWNrQWN0aW9uXSA9IHVzZVJlZHVjZXIoXG4gICAgbHRpRmVlZGJhY2tSZWR1Y2VyLFxuICAgIHtcbiAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgfVxuICApO1xuXG4gIC8qKlxuICAgKiBTdGF0ZSB2YXJpYWJsZSBmb3IgbWFuYWdpbmcgdGhlIHN0YXR1cyBvZiB0aGUgYmFubmVyLlxuICAgKiBUaGUgc3RhdHVzIGlzIHN0b3JlZCBpbiBsb2NhbCBzdG9yYWdlIHRvIHBlcnNpc3QgYWNyb3NzIHNlc3Npb25zLlxuICAgKi9cbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiBCQU5ORVJfU1RBVFVTLlVOU0VUO1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY3VycmVudFVzZXIgfHwgIWN1cnJlbnRVc2VyLmlzTHRpIHx8ICFjdXJyZW50VXNlci5pc1RlYWNoZXIpXG4gICAgICBzZXRTdGF0dXMoQkFOTkVSX1NUQVRVUy5VTkFWQUlMQUJMRSk7XG5cbiAgICBsZXQgc3RhdHVzID0gdHJ5R2V0TG9jYWxTdG9yYWdlKGtleSwgQkFOTkVSX1NUQVRVUy5VTlNFVCk7XG4gICAgaWYgKHN0YXR1cyA9PT0gQkFOTkVSX1NUQVRVUy5VTkFWQUlMQUJMRSkgc3RhdHVzID0gQkFOTkVSX1NUQVRVUy5VTlNFVDtcblxuICAgICFzdGF0dXMgJiYgZmV0Y2hMdGlGZWVkYmFjayhsdGlGZWVkYmFja0FjdGlvbik7XG5cbiAgICBzZXRTdGF0dXMoc3RhdHVzKTtcbiAgfSwgW2N1cnJlbnRVc2VyLCBrZXldKTtcblxuICAvKipcbiAgICogRWZmZWN0IGZvciB1cGRhdGluZyB0aGUgbG9jYWwgc3RvcmFnZSB3aGVuZXZlciB0aGUgc3RhdHVzIGNoYW5nZXMuXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChrZXkpIHtcbiAgICAgIHRyeVNldExvY2FsU3RvcmFnZShrZXksIHN0YXR1cyk7XG4gICAgfVxuICB9LCBba2V5LCBzdGF0dXNdKTtcblxuICAvKipcbiAgICogRWZmZWN0IGZvciB1cGRhdGluZyB0aGUgc3RhdHVzIGJhc2VkIG9uIHRoZSBMVEkgZmVlZGJhY2suXG4gICAqL1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsdGlGZWVkYmFjayA9PT0gbnVsbCkge1xuICAgICAgc2V0U3RhdHVzKEJBTk5FUl9TVEFUVVMuVU5BTlNXRVJFRCk7XG4gICAgfSBlbHNlIGlmIChsdGlGZWVkYmFjaykge1xuICAgICAgc2V0U3RhdHVzKEJBTk5FUl9TVEFUVVMuQU5TV0VSRUQpO1xuICAgIH1cbiAgfSwgW2x0aUZlZWRiYWNrXSk7XG5cbiAgLyoqXG4gICAqIEVmZmVjdCBmb3IgaGFuZGxpbmcgZXJyb3JzLlxuICAgKi9cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlcnJvciAmJiBzZXRTdGF0dXMoQkFOTkVSX1NUQVRVUy5VTlNFVCk7XG4gIH0sIFtlcnJvcl0pO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBmb3IgaGFuZGxpbmcgdXNlciBmZWVkYmFjay5cbiAgICovXG4gIGNvbnN0IGFuc3dlciA9IChzYXRpc2ZpZWQ6IGJvb2xlYW4pID0+XG4gICAgY3JlYXRlTHRpRmVlZGJhY2sobHRpRmVlZGJhY2tBY3Rpb24sIHtzYXRpc2ZpZWR9KTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gZm9yIGNsb3NpbmcgdGhlIGJhbm5lci5cbiAgICovXG4gIGNvbnN0IGNsb3NlID0gKCkgPT4gc2V0U3RhdHVzKEJBTk5FUl9TVEFUVVMuQ0xPU0VEKTtcblxuICByZXR1cm4gKFxuICAgIDxGZWVkYmFja0Jhbm5lclxuICAgICAgYWxlcnRLZXk9e2tleX1cbiAgICAgIGFuc3dlclN0YXR1cz17c3RhdHVzfVxuICAgICAgYW5zd2VyPXthbnN3ZXJ9XG4gICAgICBjbG9zZT17Y2xvc2V9XG4gICAgICBpc0xvYWRpbmc9e2lzTG9hZGluZ31cbiAgICAgIGNsb3NlTGFiZWw9e2kxOG4uY2xvc2VEaWFsb2coKX1cbiAgICAgIHF1ZXN0aW9uPXtpMThuLmx0aV9mZWVkYmFja0Jhbm5lcl9xdWVzdGlvbigpfVxuICAgICAgcG9zaXRpdmVBbnN3ZXI9e2kxOG4ubHRpX2ZlZWRiYWNrQmFubmVyX2Fuc3dlcl9wb3NpdGl2ZSgpfVxuICAgICAgbmVnYXRpdmVBbnN3ZXI9e2kxOG4ubHRpX2ZlZWRiYWNrQmFubmVyX2Fuc3dlcl9uZWdhdGl2ZSgpfVxuICAgICAgc2hhcmVNb3JlPXtpMThuLmx0aV9mZWVkYmFja0Jhbm5lcl9zaGFyZU1vcmVfdGV4dCgpfVxuICAgICAgc2hhcmVNb3JlTGluaz17TG1zTGlua3MuQURESVRJT05BTF9GRUVEQkFDS19VUkx9XG4gICAgICBzaGFyZU1vcmVMaW5rVGV4dD17aTE4bi5sdGlfZmVlZGJhY2tCYW5uZXJfc2hhcmVNb3JlX2xpbmsoKX1cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTHRpRmVlZGJhY2tCYW5uZXI7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge1xuICBjdXJyZW50R2xvYmFsQ29uZmlndXJhdGlvbixcbiAgUmVnaW9uQ29uZmlndXJhdGlvblBhZ2VPYmplY3QsXG59IGZyb20gJ0BjZG8vYXBwcy91dGlsL2dsb2JhbEVkaXRpb24nO1xuXG5pbnRlcmZhY2UgR2xvYmFsRWRpdGlvbldyYXBwZXJQcm9wcyB7XG4gIGNvbXBvbmVudDogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ7XG4gIGNvbXBvbmVudElkOiBzdHJpbmc7XG4gIHByb3BzOiBvYmplY3Q7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgYSB3cmFwcGVyIGFyb3VuZCBhbiBleGlzdGluZyBjb21wb25lbnQgdGhhdCBhbGxvd3MgaXQgdG8gYmVcbiAqIGNvbmZpZ3VyZWQgdmlhIGEgR2xvYmFsIEVkaXRpb24gY29uZmlndXJhdGlvbi5cbiAqXG4gKiBUaGUgZ2xvYmFsIGVkaXRpb24gY29uZmlndXJhdGlvbnMgYXJlIGluIHRoZSBjb25maWcgZGlyZWN0b3J5IGF0IHRoZVxuICogcm9vdCBvZiB0aGUgcmVwb3NpdG9yeS4gRm9yIGluc3RhbmNlOiBjb25maWcvZ2xvYmFsX2VkaXRpb25zL2ZhLnltbFxuICpcbiAqIEVzc2VudGlhbGx5IHlvdSBjYW4gdGFrZSBhbiBleGlzdGluZyBjb21wb25lbnQgbGlrZSA8Rm9vPiBhbmQgdGhlbiB3cmFwIGl0XG4gKiBhcyBzdWNoOlxuICpcbiAqIDxHbG9iYWxFZGl0aW9uV3JhcHBlclxuICogICBjb21wb25lbnQ9e0Zvb31cbiAqICAgY29tcG9uZW50SWQ9XCJGb29cIlxuICogICBwcm9wcz17e1xuICogICAgIGJhcjogXCJiYXpcIixcbiAqICAgfX1cbiAqIC8+XG4gKlxuICogV2hlcmUgdGhlIHByb3BzIGdvIGludG8gdGhlIHByb3BzIHByb3BlcnR5IG9mIHRoZSB3cmFwcGVyLiBUaGUgYGNvbXBvbmVudElkYFxuICogaXMgdGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCB3aGljaCBpcyB0aGVuIHVzZWQgdG8gcmVmZXIgdG8gaXQgaW4gdGhlXG4gKiByZWdpb25hbCBjb25maWd1cmF0aW9uLlxuICpcbiAqIEZvciBpbnN0YW5jZSwgaW4gdGhlIGNvbmZpZy9nbG9iYWxfZWRpdGlvbnMvaW5kaWEueW1sIChsZXQncyBzYXkpIHdlIGNvdWxkXG4gKiBoYXZlOlxuICpcbiAqIGBgYFxuICogICBwYWdlczpcbiAqICAgICAtIHBhdGg6IC9cbiAqICAgICAgIGNvbXBvbmVudHM6XG4gKiAgICAgICAgIEZvbzogZmFsc2VcbiAqIGBgYFxuICpcbiAqIFdoaWNoIHdpbGwgcmVuZGVyIGFuIFwiRW1wdHlDb21wb25lbnRcIiBhbmQgZXNzZW50aWFsbHkgaGlkZSB0aGUgY29tcG9uZW50IHdoZW5cbiAqIHZpZXdpbmcgYW55IHBhZ2UgaW4gdGhlIFwiaW5kaWFcIiByZWdpb24uXG4gKlxuICogV2UgY2FuLCBpbnN0ZWFkLCBqdXN0IG92ZXJyaWRlIHByb3BlcnRpZXM6XG4gKlxuICogYGBgXG4gKiAgIHBhZ2VzOlxuICogICAgIC0gcGF0aDogL1xuICogICAgICAgY29tcG9uZW50czpcbiAqICAgICAgICAgRm9vOlxuICogICAgICAgICAgIGJhcjogY2hhelxuICogYGBgXG4gKlxuICogVGhpcyBtZWFucywgaW4gdGhpcyByZWdpb24gKGFzIG9wcG9zZWQgdG8gYW55IG90aGVyKSwgdGhlIGNvbXBvbmVudCB3aWxsIGJlXG4gKiByZW5kZXJlZCBhbmQgdmlzaWJsZSwgYnV0IHdpdGggdGhlICdiYXInIHByb3BlcnR5IG92ZXJyaWRlbi5cbiAqXG4gKiBTZWUgdGhlICdwYWdlcycgc2VjdGlvbiBvZiBhbiBleGlzdGluZyBjb25maWd1cmF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uXG4gKiBvbiB0aGUgZm9ybWF0IG9mIHRoZSBjb25maWd1cmF0aW9uIGFuZCBpdHMgdXNlIGhlcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBHbG9iYWxFZGl0aW9uV3JhcHBlcjogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8XG4gIEdsb2JhbEVkaXRpb25XcmFwcGVyUHJvcHNcbj4gPSAoe2NvbXBvbmVudCwgY29tcG9uZW50SWQsIHByb3BzID0ge319KSA9PiB7XG4gIGNvbnN0IEVtcHR5Q29tcG9uZW50ID0gKCkgPT4gbnVsbDtcblxuICAvLyBHZXQgdGhlICdwYWdlcycgb2JqZWN0IGZyb20gdGhlIGN1cnJlbnQgZ2xvYmFsIHJlZ2lvbiBjb25maWd1cmF0aW9uXG4gIGNvbnN0IHBhZ2VzID0gY3VycmVudEdsb2JhbENvbmZpZ3VyYXRpb24oKS5wYWdlcyB8fCBbXTtcblxuICAvLyBGaWx0ZXJzIHRoZSBjb25maWcgZG93biB0byB0aGUgZmlyc3QgbWF0Y2hpbmcgcGFnZSB3aXRoIGEgc2V0dGluZyBmb3JcbiAgLy8gdGhlIGdpdmVuIGNvbXBvbmVudFxuICBjb25zdCBwYWdlQ29uZmlnOiBSZWdpb25Db25maWd1cmF0aW9uUGFnZU9iamVjdCB8IHVuZGVmaW5lZCA9IHBhZ2VzXG4gICAgLmZpbHRlcihcbiAgICAgIGZpbHRlckluZm8gPT5cbiAgICAgICAgUmVnRXhwKCdeL2dsb2JhbC8uKicgKyBmaWx0ZXJJbmZvLnBhdGggKyAnKD86Ly4qKT8nKS50ZXN0KFxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZVxuICAgICAgICApICYmIGNvbXBvbmVudElkIGluIGZpbHRlckluZm8uY29tcG9uZW50c1xuICAgIClcbiAgICAuc2xpY2UoLTEpWzBdO1xuXG4gIC8vIFRoZSBjb21wb25lbnQgaXMgdmlzaWJsZSBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0IG9yIHRoZSB2YWx1ZSBmb3IgdGhhdFxuICAvLyBjb21wb25lbnQgaXMgTk9UIGV4cGxpY2l0bHkgc2V0IHRvICdmYWxzZSdcbiAgY29uc3QgdmlzaWJsZTogYm9vbGVhbiA9XG4gICAgIXBhZ2VDb25maWcgfHwgcGFnZUNvbmZpZy5jb21wb25lbnRzW2NvbXBvbmVudElkXSAhPT0gZmFsc2U7XG5cbiAgLy8gSWYgaXQgaXMgbm90IHZpc2libGUsIHdlIHVzZSBhbiBcIkVtcHR5Q29tcG9uZW50XCIgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIG9uZVxuICAvLyBhbmQgaWdub3JlIHRoZSBnaXZlbiBwcm9wZXJ0aWVzLlxuICBjb25zdCBHbG9iYWxXcmFwcGVkQ29tcG9uZW50OiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudCA9IHZpc2libGVcbiAgICA/IGNvbXBvbmVudFxuICAgIDogRW1wdHlDb21wb25lbnQ7XG5cbiAgLy8gV2UgdGhlbiBhbGxvdyBvdmVycmlkaW5nIHByb3BlcnRpZXMgd2l0aCB0aGUgb25lcyBnaXZlbiBpbiB0aGUgcmVnaW9uXG4gIC8vIGNvbmZpZ3VyYXRpb24gaWYgaXQgaXMgZ2l2ZW5cbiAgY29uc3Qgd3JhcHBlZFByb3BzID0gdmlzaWJsZVxuICAgID8gcGFnZUNvbmZpZyAmJiBwYWdlQ29uZmlnLmNvbXBvbmVudHNbY29tcG9uZW50SWRdXG4gICAgICA/IHsuLi5wcm9wcywgLi4uKHBhZ2VDb25maWcuY29tcG9uZW50c1tjb21wb25lbnRJZF0gYXMgb2JqZWN0KX1cbiAgICAgIDogcHJvcHNcbiAgICA6IHt9O1xuXG4gIC8vIFJldHVybiB0aGUgY29tcG9uZW50XG4gIHJldHVybiA8R2xvYmFsV3JhcHBlZENvbXBvbmVudCB7Li4ud3JhcHBlZFByb3BzfSAvPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEdsb2JhbEVkaXRpb25XcmFwcGVyO1xuIiwiaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3VzZVNlbGVjdG9yfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB7RVZFTlRTfSBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NDb25zdGFudHMnO1xuaW1wb3J0IGFuYWx5dGljc1JlcG9ydGVyIGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc1JlcG9ydGVyJztcbmltcG9ydCB7U2VjdGlvbn0gZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL3R5cGVzL3RlYWNoZXJTZWN0aW9uVHlwZXMnO1xuaW1wb3J0IHtSb290U3RhdGV9IGZyb20gJ0BjZG8vYXBwcy90eXBlcy9yZWR1eCc7XG5pbXBvcnQgaTE4biBmcm9tICdAY2RvL2xvY2FsZSc7XG5cbmltcG9ydCBOb3RpZmljYXRpb24sIHtcbiAgTm90aWZpY2F0aW9uVHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkQ29tcG9uZW50cy9Ob3RpZmljYXRpb24nO1xuXG5pbXBvcnQge0FnZUdhdGVkU2VjdGlvbnNNb2RhbH0gZnJvbSAnLi9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwnO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICB0b2dnbGVNb2RhbDogKCkgPT4gdm9pZDtcbiAgbW9kYWxPcGVuOiBib29sZWFuO1xuICBhZ2VHYXRlZFNlY3Rpb25zOiBTZWN0aW9uW107XG59XG5cbmV4cG9ydCBjb25zdCBBZ2VHYXRlZFNlY3Rpb25zQmFubmVyOiBSZWFjdC5GQzxQcm9wcz4gPSAoe1xuICB0b2dnbGVNb2RhbCxcbiAgbW9kYWxPcGVuLFxuICBhZ2VHYXRlZFNlY3Rpb25zLFxufSkgPT4ge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50VXNlcik7XG4gIGNvbnN0IHJlcG9ydEV2ZW50ID0gKGV2ZW50TmFtZTogc3RyaW5nLCBwYXlsb2FkOiBvYmplY3QgPSB7fSkgPT4ge1xuICAgIGFuYWx5dGljc1JlcG9ydGVyLnNlbmRFdmVudChldmVudE5hbWUsIHBheWxvYWQpO1xuICB9O1xuXG4gIGNvbnN0IHVzZXJJZCA9IGN1cnJlbnRVc2VyLnVzZXJJZDtcbiAgY29uc3QgdXNTdGF0ZSA9IGFnZUdhdGVkU2VjdGlvbnNbMF0/LmF0Umlza0FnZUdhdGVkVXNTdGF0ZTtcbiAgY29uc3QgbnVtYmVyT2ZBZ2VHYXRlZFNlY3Rpb25zID0gYWdlR2F0ZWRTZWN0aW9ucy5sZW5ndGg7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmVwb3J0RXZlbnQoRVZFTlRTLkNBUF9BR0VfR0FURURfU0VDVElPTlNfQkFOTkVSX1NIT1dOLCB7XG4gICAgICB1c2VyX2lkOiB1c2VySWQsXG4gICAgICBudW1iZXJfb2ZfYWdlX2dhdGVkX3NlY3Rpb25zOiBudW1iZXJPZkFnZUdhdGVkU2VjdGlvbnMsXG4gICAgICB1c19zdGF0ZTogdXNTdGF0ZSxcbiAgICB9KTtcbiAgfSwgW3VzZXJJZCwgbnVtYmVyT2ZBZ2VHYXRlZFNlY3Rpb25zLCB1c1N0YXRlXSk7XG5cbiAgY29uc3Qgc3RhcnREYXRlID0gYWdlR2F0ZWRTZWN0aW9uc1swXT8uYXRSaXNrQWdlR2F0ZWREYXRlO1xuICBjb25zdCBkYXRlT3B0aW9uczogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMgPSB7XG4gICAgeWVhcjogJ251bWVyaWMnLFxuICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgZGF5OiAnMi1kaWdpdCcsXG4gIH07XG4gIGNvbnN0IHN0YXJ0RGF0ZVRleHQgPVxuICAgIHN0YXJ0RGF0ZT8udG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycsIGRhdGVPcHRpb25zKSB8fCAnPz8/JztcblxuICByZXR1cm4gKFxuICAgIDxkaXYgaWQ9XCJ1aXRlc3QtYWdlLWdhdGVkLXNlY3Rpb25zLWJhbm5lclwiPlxuICAgICAgPE5vdGlmaWNhdGlvblxuICAgICAgICB0eXBlPXtOb3RpZmljYXRpb25UeXBlLndhcm5pbmd9XG4gICAgICAgIG5vdGljZT17aTE4bi5oZWFkc1VwKCl9XG4gICAgICAgIGRldGFpbHM9e2kxOG4uY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNXYXJuaW5nKHtcbiAgICAgICAgICBzdGFydERhdGU6IHN0YXJ0RGF0ZVRleHQsXG4gICAgICAgIH0pfVxuICAgICAgICBidXR0b25UZXh0PXtpMThuLmNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zV2FybmluZ19idXR0b24oKX1cbiAgICAgICAgYnV0dG9uTGluaz17JyMnfVxuICAgICAgICBvbkJ1dHRvbkNsaWNrPXt0b2dnbGVNb2RhbH1cbiAgICAgICAgZGlzbWlzc2libGU9e2ZhbHNlfVxuICAgICAgLz5cbiAgICAgIHttb2RhbE9wZW4gJiYgKFxuICAgICAgICA8QWdlR2F0ZWRTZWN0aW9uc01vZGFsXG4gICAgICAgICAgaXNPcGVuPXttb2RhbE9wZW59XG4gICAgICAgICAgb25DbG9zZT17dG9nZ2xlTW9kYWx9XG4gICAgICAgICAgYWdlR2F0ZWRTZWN0aW9ucz17YWdlR2F0ZWRTZWN0aW9uc31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIiwiaW1wb3J0IExpbmsgZnJvbSAnQGNvZGUtZG90LW9yZy9jb21wb25lbnQtbGlicmFyeS9saW5rJztcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gJ0Bjb2RlLWRvdC1vcmcvY29tcG9uZW50LWxpYnJhcnkvdHlwb2dyYXBoeSc7XG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlU2VsZWN0b3J9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IHtFVkVOVFN9IGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc0NvbnN0YW50cyc7XG5pbXBvcnQgYW5hbHl0aWNzUmVwb3J0ZXIgZnJvbSAnQGNkby9hcHBzL21ldHJpY3MvQW5hbHl0aWNzUmVwb3J0ZXInO1xuaW1wb3J0IHtBZ2VHYXRlZFNlY3Rpb25zVGFibGV9IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvcG9saWN5X2NvbXBsaWFuY2UvQWdlR2F0ZWRTZWN0aW9uc01vZGFsL0FnZUdhdGVkU2VjdGlvbnNUYWJsZSc7XG5pbXBvcnQge1Jvb3RTdGF0ZX0gZnJvbSAnQGNkby9hcHBzL3R5cGVzL3JlZHV4JztcbmltcG9ydCB7Q2FwTGlua3N9IGZyb20gJ0BjZG8vZ2VuZXJhdGVkLXNjcmlwdHMvc2hhcmVkQ29uc3RhbnRzJztcbmltcG9ydCBpMThuIGZyb20gJ0BjZG8vbG9jYWxlJztcblxuaW1wb3J0IEJhc2VEaWFsb2cgZnJvbSAnLi4vLi4vQmFzZURpYWxvZyc7XG5pbXBvcnQge1NlY3Rpb259IGZyb20gJy4uLy4uL3RlYWNoZXJEYXNoYm9hcmQvdHlwZXMvdGVhY2hlclNlY3Rpb25UeXBlcyc7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy9wb2xpY3lfY29tcGxpYW5jZS9BZ2VHYXRlZFNlY3Rpb25zTW9kYWwvYWdlLWdhdGVkLXNlY3Rpb25zLW1vZGFsLm1vZHVsZS5zY3NzJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBhZ2VHYXRlZFNlY3Rpb25zOiBTZWN0aW9uW107XG59XG5cbmV4cG9ydCBjb25zdCBBZ2VHYXRlZFNlY3Rpb25zTW9kYWw6IFJlYWN0LkZDPFByb3BzPiA9ICh7XG4gIGlzT3BlbixcbiAgb25DbG9zZSxcbiAgYWdlR2F0ZWRTZWN0aW9ucyxcbn0pID0+IHtcbiAgY29uc3QgY3VycmVudFVzZXIgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuY3VycmVudFVzZXIpO1xuICBjb25zdCByZXBvcnRFdmVudCA9IChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogb2JqZWN0ID0ge30pID0+IHtcbiAgICBhbmFseXRpY3NSZXBvcnRlci5zZW5kRXZlbnQoZXZlbnROYW1lLCBwYXlsb2FkKTtcbiAgfTtcblxuICBjb25zdCBoZWxwRG9jc1VybCA9IENhcExpbmtzLlBBUkVOVEFMX0NPTlNFTlRfR1VJREVfVVJMO1xuXG4gIGNvbnN0IHVzZXJJZCA9IGN1cnJlbnRVc2VyLnVzZXJJZDtcbiAgY29uc3QgdXNTdGF0ZSA9IGFnZUdhdGVkU2VjdGlvbnNbMF0/LmF0Umlza0FnZUdhdGVkVXNTdGF0ZTtcbiAgY29uc3QgbW9kYWxEb2N1bWVudGF0aW9uQ2xpY2tlZCA9ICgpID0+IHtcbiAgICByZXBvcnRFdmVudChFVkVOVFMuQ0FQX1NUVURFTlRfV0FSTklOR19MSU5LX0NMSUNLRUQsIHtcbiAgICAgIHVzZXJfaWQ6IHVzZXJJZCxcbiAgICAgIHVzX3N0YXRlOiB1c1N0YXRlLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IG1vZGFsQ2xvc2VkID0gKCkgPT4ge1xuICAgIHJlcG9ydEV2ZW50KEVWRU5UUy5DQVBfQUdFX0dBVEVEX1NFQ1RJT05TX01PREFMX0NMT1NFRCwge1xuICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgICAgdXNfc3RhdGU6IHVzU3RhdGUsXG4gICAgfSk7XG4gICAgb25DbG9zZSgpO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmVwb3J0RXZlbnQoRVZFTlRTLkNBUF9BR0VfR0FURURfU0VDVElPTlNfTU9EQUxfU0hPV04sIHtcbiAgICAgIHVzZXJfaWQ6IHVzZXJJZCxcbiAgICAgIHVzX3N0YXRlOiB1c1N0YXRlLFxuICAgIH0pO1xuICB9LCBbdXNlcklkLCB1c1N0YXRlXSk7XG5cbiAgY29uc3Qgc3RhcnREYXRlID0gYWdlR2F0ZWRTZWN0aW9ucy5maW5kKFxuICAgIHNlY3Rpb24gPT4gc2VjdGlvbi5hdFJpc2tBZ2VHYXRlZERhdGVcbiAgKT8uYXRSaXNrQWdlR2F0ZWREYXRlO1xuXG4gIGNvbnN0IGRhdGVPcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgfTtcbiAgY29uc3Qgc3RhcnREYXRlVGV4dCA9XG4gICAgc3RhcnREYXRlPy50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgZGF0ZU9wdGlvbnMpIHx8ICc/Pz8nO1xuXG4gIHJldHVybiAoXG4gICAgPEJhc2VEaWFsb2dcbiAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgaGFuZGxlQ2xvc2U9e21vZGFsQ2xvc2VkfVxuICAgICAgdXNlVXBkYXRlZFN0eWxlcz17dHJ1ZX1cbiAgICAgIGZpeGVkV2lkdGg9ezgwMH1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQ29udGFpbmVyfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZm9yYmlkLWRvbS1wcm9wc1xuICAgICAgICBkYXRhLXRlc3RpZD1cImFnZS1nYXRlZC1zZWN0aW9ucy1tb2RhbFwiXG4gICAgICAgIGlkPVwidWl0ZXN0LWFnZS1nYXRlZC1zZWN0aW9ucy1tb2RhbFwiXG4gICAgICA+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFR5cG9ncmFwaHlcbiAgICAgICAgICAgIHNlbWFudGljVGFnPVwiaDJcIlxuICAgICAgICAgICAgdmlzdWFsQXBwZWFyYW5jZT1cImhlYWRpbmctbWRcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxIZWFkZXJ9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2kxOG4uY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNNb2RhbF9oZWFkZXIoKX1cbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgPGhyIC8+XG4gICAgICAgICAgPFR5cG9ncmFwaHkgc2VtYW50aWNUYWc9XCJwXCIgdmlzdWFsQXBwZWFyYW5jZT1cImJvZHktdHdvXCI+XG4gICAgICAgICAgICB7aTE4bi5jaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc01vZGFsX25vdGljZSh7XG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlVGV4dCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICA8VHlwb2dyYXBoeSBzZW1hbnRpY1RhZz1cInBcIiB2aXN1YWxBcHBlYXJhbmNlPVwiYm9keS10d29cIj5cbiAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgIHtpMThuLmNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zTW9kYWxfYWN0aW9uKCl9XG4gICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgPFR5cG9ncmFwaHkgc2VtYW50aWNUYWc9XCJwXCIgdmlzdWFsQXBwZWFyYW5jZT1cImJvZHktdHdvXCI+XG4gICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICBocmVmPXtoZWxwRG9jc1VybH1cbiAgICAgICAgICAgICAgb25DbGljaz17bW9kYWxEb2N1bWVudGF0aW9uQ2xpY2tlZH1cbiAgICAgICAgICAgICAgb3BlbkluTmV3VGFiPXt0cnVlfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aTE4bi5jaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc01vZGFsX3JlYWRNb3JlKCl9XG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgIDxBZ2VHYXRlZFNlY3Rpb25zVGFibGUgYWdlR2F0ZWRTZWN0aW9ucz17YWdlR2F0ZWRTZWN0aW9uc30gLz5cbiAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9ufT5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e21vZGFsQ2xvc2VkfT5cbiAgICAgICAgICAgICAge2kxOG4uY2xvc2VEaWFsb2coKX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvQmFzZURpYWxvZz5cbiAgKTtcbn07XG4iLCJpbXBvcnQgTGluayBmcm9tICdAY29kZS1kb3Qtb3JnL2NvbXBvbmVudC1saWJyYXJ5L2xpbmsnO1xuaW1wb3J0IFR5cG9ncmFwaHkgZnJvbSAnQGNvZGUtZG90LW9yZy9jb21wb25lbnQtbGlicmFyeS90eXBvZ3JhcGh5JztcbmltcG9ydCB7b3JkZXJCeX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBUYWJsZSBmcm9tICdyZWFjdGFidWxhci10YWJsZSc7XG4vLyBAdHMtZXhwZWN0LWVycm9yIHNvcnRhYnVsYXIgZG9lc24ndCBkZWZpbmUgaXQncyB0eXBlcy5cbmltcG9ydCAqIGFzIHNvcnQgZnJvbSAnc29ydGFidWxhcic7XG5cbmltcG9ydCB7RVZFTlRTfSBmcm9tICdAY2RvL2FwcHMvbWV0cmljcy9BbmFseXRpY3NDb25zdGFudHMnO1xuaW1wb3J0IGFuYWx5dGljc1JlcG9ydGVyIGZyb20gJ0BjZG8vYXBwcy9tZXRyaWNzL0FuYWx5dGljc1JlcG9ydGVyJztcbmltcG9ydCB7XG4gIHNvcnRhYmxlT3B0aW9ucyxcbiAgdGFibGVMYXlvdXRTdHlsZXMsXG59IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvdGFibGVzL3RhYmxlQ29uc3RhbnRzJztcbmltcG9ydCB3cmFwcGVkU29ydGFibGUgZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy90YWJsZXMvd3JhcHBlZF9zb3J0YWJsZSc7XG5pbXBvcnQge1NlY3Rpb259IGZyb20gJ0BjZG8vYXBwcy90ZW1wbGF0ZXMvdGVhY2hlckRhc2hib2FyZC90eXBlcy90ZWFjaGVyU2VjdGlvblR5cGVzJztcbmltcG9ydCB7dGVhY2hlckRhc2hib2FyZFVybH0gZnJvbSAnQGNkby9hcHBzL3RlbXBsYXRlcy90ZWFjaGVyRGFzaGJvYXJkL3VybEhlbHBlcnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnQGNkby9sb2NhbGUnO1xuXG5pbnRlcmZhY2UgUm93RGF0YSB7XG4gIHNlY3Rpb246IFNlY3Rpb247XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGFnZUdhdGVkU2VjdGlvbnM6IFNlY3Rpb25bXTtcbn1cblxuZXhwb3J0IGNvbnN0IEFnZUdhdGVkU2VjdGlvbnNUYWJsZTogUmVhY3QuRkM8UHJvcHM+ID0gKHthZ2VHYXRlZFNlY3Rpb25zfSkgPT4ge1xuICBjb25zdCByZXBvcnRFdmVudCA9IChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogb2JqZWN0ID0ge30pID0+IHtcbiAgICBhbmFseXRpY3NSZXBvcnRlci5zZW5kRXZlbnQoZXZlbnROYW1lLCBwYXlsb2FkKTtcbiAgfTtcbiAgY29uc3QgZ2V0Q29sdW1ucyA9ICgpID0+IHtcbiAgICByZXR1cm4gW3NlY3Rpb25Db2x1bW4oKSwgZ3JhZGVzQ29sdW1uKCldO1xuICB9O1xuXG4gIGNvbnN0IGluaXRpYWxTb3J0aW5nQ29sdW1ucyA9IHtcbiAgICAwOiB7XG4gICAgICBkaXJlY3Rpb246ICdhc2MnLFxuICAgICAgcG9zaXRpb246IDAsXG4gICAgfSxcbiAgfTtcbiAgY29uc3QgW3NvcnRpbmdDb2x1bW5zLCBzZXRTb3J0aW5nQ29sdW1uc10gPSBSZWFjdC51c2VTdGF0ZShcbiAgICBpbml0aWFsU29ydGluZ0NvbHVtbnNcbiAgKTtcbiAgY29uc3Qgb25Tb3J0ID0gKHNlbGVjdGVkQ29sdW1uOiBudW1iZXIpID0+IHtcbiAgICBzZXRTb3J0aW5nQ29sdW1ucyhcbiAgICAgIHNvcnQuYnlDb2x1bW4oe1xuICAgICAgICBzb3J0aW5nQ29sdW1uczogc29ydGluZ0NvbHVtbnMsXG4gICAgICAgIC8vIEN1c3RvbSBzb3J0aW5nT3JkZXIgcmVtb3ZlcyAnbm8tc29ydCcgZnJvbSB0aGUgY3ljbGVcbiAgICAgICAgc29ydGluZ09yZGVyOiB7XG4gICAgICAgICAgRklSU1Q6ICdhc2MnLFxuICAgICAgICAgIGFzYzogJ2Rlc2MnLFxuICAgICAgICAgIGRlc2M6ICdhc2MnLFxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RlZENvbHVtbixcbiAgICAgIH0pXG4gICAgKTtcbiAgfTtcbiAgY29uc3Qgc29ydGFibGUgPSB3cmFwcGVkU29ydGFibGUoXG4gICAgKCkgPT4gc29ydGluZ0NvbHVtbnMsXG4gICAgb25Tb3J0LFxuICAgIHNvcnRhYmxlT3B0aW9uc1xuICApO1xuICBjb25zdCBzZWN0aW9uRm9ybWF0dGVyID0gKG5hbWU6IHN0cmluZywge3Jvd0RhdGF9OiB7cm93RGF0YTogUm93RGF0YX0pID0+IChcbiAgICA8VHlwb2dyYXBoeSBzZW1hbnRpY1RhZz1cInBcIiB2aXN1YWxBcHBlYXJhbmNlPVwiYm9keS10d29cIj5cbiAgICAgIDxMaW5rXG4gICAgICAgIGhyZWY9e3RlYWNoZXJEYXNoYm9hcmRVcmwocm93RGF0YS5zZWN0aW9uLmlkKX1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIHJlcG9ydEV2ZW50KFxuICAgICAgICAgICAgRVZFTlRTLkNBUF9BR0VfR0FURURfU0VDVElPTlNfVEFCTEVfU0VDVElPTl9OQU1FX0xJTktfQ0xJQ0tFRCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2VjdGlvbl9pZDogcm93RGF0YS5zZWN0aW9uLmlkLFxuICAgICAgICAgICAgICB1c19zdGF0ZTogcm93RGF0YS5zZWN0aW9uLmF0Umlza0FnZUdhdGVkVXNTdGF0ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9fVxuICAgICAgICBvcGVuSW5OZXdUYWI9e3RydWV9XG4gICAgICA+XG4gICAgICAgIHtuYW1lfVxuICAgICAgPC9MaW5rPlxuICAgIDwvVHlwb2dyYXBoeT5cbiAgKTtcblxuICBjb25zdCBzZWN0aW9uQ29sdW1uID0gKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBwcm9wZXJ0eTogJ25hbWUnLFxuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIGxhYmVsOiBpMThuLmNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zVGFibGVfc2VjdGlvbkhlYWRlcigpLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAuLi50YWJsZUxheW91dFN0eWxlcy5oZWFkZXJDZWxsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zZm9ybXM6IFtzb3J0YWJsZV0sXG4gICAgICB9LFxuICAgICAgY2VsbDoge1xuICAgICAgICBmb3JtYXR0ZXJzOiBbc2VjdGlvbkZvcm1hdHRlcl0sXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIC4uLnRhYmxlTGF5b3V0U3R5bGVzLmNlbGwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfTtcbiAgY29uc3QgZ3JhZGVzRm9ybWF0dGVyID0gKGdyYWRlczogc3RyaW5nW10pID0+IChcbiAgICA8VHlwb2dyYXBoeSBzZW1hbnRpY1RhZz1cInBcIiB2aXN1YWxBcHBlYXJhbmNlPVwiYm9keS10d29cIj5cbiAgICAgIHtncmFkZXMgJiYgZ3JhZGVzLmpvaW4oJywgJyl9XG4gICAgPC9UeXBvZ3JhcGh5PlxuICApO1xuXG4gIGNvbnN0IGdyYWRlc0NvbHVtbiA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydHk6ICdncmFkZXMnLFxuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIGxhYmVsOiBpMThuLmNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zVGFibGVfZ3JhZGVzSGVhZGVyKCksXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIC4uLnRhYmxlTGF5b3V0U3R5bGVzLmhlYWRlckNlbGwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjZWxsOiB7XG4gICAgICAgIGZvcm1hdHRlcnM6IFtncmFkZXNGb3JtYXR0ZXJdLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAuLi50YWJsZUxheW91dFN0eWxlcy5jZWxsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgY29sdW1ucyA9IGdldENvbHVtbnMoKTtcbiAgY29uc3Qgc2VjdGlvbkRhdGE6IFJvd0RhdGFbXSA9IGFnZUdhdGVkU2VjdGlvbnMubWFwKHNlY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogc2VjdGlvbi5pZCxcbiAgICAgIHNlY3Rpb246IHNlY3Rpb24sXG4gICAgICBncmFkZXM6IHNlY3Rpb24uZ3JhZGVzLFxuICAgICAgbmFtZTogc2VjdGlvbi5uYW1lLFxuICAgIH07XG4gIH0pO1xuICBjb25zdCBzb3J0ZWREYXRhID0gc29ydC5zb3J0ZXIoe1xuICAgIGNvbHVtbnMsXG4gICAgc29ydGluZ0NvbHVtbnMsXG4gICAgc29ydDogb3JkZXJCeSxcbiAgfSkoc2VjdGlvbkRhdGEpO1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICB7c29ydGVkRGF0YSAmJiBzb3J0ZWREYXRhLmxlbmd0aCAhPT0gMCAmJiAoXG4gICAgICAgIDxUYWJsZS5Qcm92aWRlclxuICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgc3R5bGU9e3RhYmxlTGF5b3V0U3R5bGVzLnRhYmxlfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9mb3JiaWQtY29tcG9uZW50LXByb3BzXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJ1aXRlc3QtYWdlLWdhdGVkLXNlY3Rpb25zLXRhYmxlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxUYWJsZS5IZWFkZXIgLz5cbiAgICAgICAgICA8VGFibGUuQm9keSByb3dzPXtzb3J0ZWREYXRhfSByb3dLZXk9XCJpZFwiIC8+XG4gICAgICAgIDwvVGFibGUuUHJvdmlkZXI+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwiciIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwidCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9yZWFjdFJlZHV4IiwiX3JlYWN0VG9vbHRpcCIsIl9mb250Q29uc3RhbnRzIiwiX0J1dHRvbiIsIl9Gb250QXdlc29tZSIsIl9maXJlaG9zZSIsIl9jb2xvciIsIldlYWtNYXAiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJBcnJheSIsImlzQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJsIiwiaXRlcmF0b3IiLCJmIiwibmV4dCIsImRvbmUiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJOb3RpZmljYXRpb25UeXBlIiwiZXhwb3J0cyIsImRlZmF1bHQiLCJpbmZvcm1hdGlvbiIsInN1Y2Nlc3MiLCJmYWlsdXJlIiwid2FybmluZyIsImNvdXJzZSIsImJ1bGxob3JuIiwiZmVlZGJhY2siLCJidWxsaG9ybl95ZWxsb3ciLCJjb2xsYWJvcmF0ZSIsIk5vdGlmaWNhdGlvbiIsIl9yZWYiLCJidXR0b25DbGFzc05hbWUiLCJidXR0b25MaW5rIiwiYnV0dG9ucyIsImJ1dHRvbnNTdHlsZXMiLCJidXR0b25UZXh0IiwiYnV0dG9uQ29sb3IiLCJjaGlsZHJlbiIsImRldGFpbHMiLCJkZXRhaWxzTGluayIsImRldGFpbHNMaW5rTmV3V2luZG93IiwiZGV0YWlsc0xpbmtUZXh0IiwiZGlzbWlzc2libGUiLCJmaXJlaG9zZUFuYWx5dGljc0RhdGEiLCJpY29uU3R5bGVzIiwiaXNSdGwiLCJuZXdXaW5kb3ciLCJub3RpY2UiLCJvbkRpc21pc3MiLCJvbkJ1dHRvbkNsaWNrIiwicmVzcG9uc2l2ZVNpemUiLCJ0eXBlIiwidG9vbHRpcFRleHQiLCJ3aWR0aCIsImNvbG9ycyIsIl91c2VTdGF0ZTIiLCJ1c2VTdGF0ZSIsIm9wZW4iLCJzZXRPcGVuIiwiZGVza3RvcCIsInVuZGVmaW5lZCIsImljb25zIiwibWFpblN0eWxlIiwic3R5bGVzIiwibWFpbiIsImRpcmVjdGlvbiIsImNvbG9yU3R5bGVzIiwidG9vbHRpcElkIiwiXyIsInVuaXF1ZUlkIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwiaWNvbkJveCIsImljb24iLCJjb250ZW50Qm94Iiwid29yZEJveCIsInRvb2x0aXAiLCJpZCIsImVmZmVjdCIsImhyZWYiLCJ0YXJnZXQiLCJyZWwiLCJidXR0b25zTW9iaWxlIiwiX191c2VEZXByZWNhdGVkVGFnIiwiY29sb3IiLCJCdXR0b24iLCJCdXR0b25Db2xvciIsImdyYXkiLCJ0ZXh0IiwiYnV0dG9uIiwib25DbGljayIsIm9uQW5ub3VuY2VtZW50Q2xpY2siLCJsb2dBbm5vdW5jZW1lbnRDbGlja1RvRmlyZWhvc2UiLCJyZWNvcmQiLCJmaXJlaG9zZU1ldGFkYXRhS2V5Iiwic3R1ZHkiLCJldmVudCIsImRhdGFfanNvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJmaXJlaG9zZUNsaWVudCIsInB1dFJlY29yZCIsImluY2x1ZGVVc2VySWQiLCJtYXAiLCJpbmRleCIsImtleSIsImxpbmsiLCJkaXNtaXNzIiwiaGFuZGxlRGlzbWlzcyIsImNsZWFyIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib25lT2YiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwib25lT2ZUeXBlIiwib2JqZWN0IiwiYm9vbCIsImZ1bmMiLCJhcnJheU9mIiwic2hhcGUiLCJub2RlIiwibnVtYmVyIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyQ29sb3IiLCJkZWZhdWx0UHJvcHMiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwibWluSGVpZ2h0Iiwid2hpdGUiLCJtYXJnaW5Cb3R0b20iLCJkaXNwbGF5IiwiZmxleEZsb3ciLCJib3hTaXppbmciLCJmb250Q29uc3RhbnRzIiwiZm9udFNpemUiLCJsZXR0ZXJTcGFjaW5nIiwibGluZUhlaWdodCIsIm1hcmdpblRvcCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiY2hhcmNvYWwiLCJ0ZWFsIiwiZmxleCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImxpZ2h0ZXJfZ3JheSIsImN1cnNvciIsImxpZ2h0ZXN0X2dyYXkiLCJ0ZXh0QWxpZ24iLCJmbG9hdCIsImxldmVsX3BlcmZlY3QiLCJyZWQiLCJtdXN0YXJkeWVsbG93IiwiYm9yZGVyX2dyYXkiLCJ5ZWxsb3ciLCJwdXJwbGUiLCJsaWdodF9zZWNvbmRhcnlfNTAwIiwidmVydGljYWxBbGlnbiIsImxpZ2h0X2dyYXlfNTAwIiwibWFyZ2luIiwiY29ubmVjdCIsInN0YXRlIiwicmVzcG9uc2l2ZSIsIl9sb2NhbGUiLCJwcm90b3R5cGUiLCJfc2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfUmVhY3QkQ29tcG9uZW50IiwiU3Bpbm5lciIsIl9pbmhlcml0c0xvb3NlIiwiY3JlYXRlIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJ0aGlzIiwicHJvcHMiLCJzaXplIiwiZGlzcGxheVNpemUiLCJjb25jYXQiLCJ0aXRsZSIsImkxOG4iLCJsb2FkaW5nIiwiUmVhY3QiLCJDb21wb25lbnQiLCJtb2R1bGUiLCJfcmFkaXVtIiwiX3N0eWxlQ29uc3RhbnRzIiwiX2NvbnRlbnRDb250YWluZXJNb2R1bGUiLCJjb250ZW50V2lkdGgiLCJzdHlsZUNvbnN0YW50cyIsIkNvbnRlbnRDb250YWluZXIiLCJfQ29tcG9uZW50IiwiaGVhZGluZyIsImxpbmtUZXh0IiwiZGVzY3JpcHRpb24iLCJoaWRlQm90dG9tTWFyZ2luIiwic2hvd0xpbmtUb3AiLCJzaG93TGlua0JvdHRvbSIsImJveFN0eWxlcyIsImJveFJlc3BvbnNpdmUiLCJib3R0b21NYXJnaW4iLCJtb2R1bGVTdHlsZXMiLCJjb250ZW50Q29udGFpbmVySGVhZGluZyIsImhlYWRpbmdCb3giLCJoZWFkaW5nVGV4dFJ0bCIsImhlYWRpbmdUZXh0IiwiTGluayIsIkNoaWxkcmVuIiwiY2hpbGQiLCJzdGFuZGFsb25lTGlua0JveCIsImJvdHRvbSIsIl9Db21wb25lbnQyIiwibGlua0JveFN0eWxlIiwiX3RoaXMkcHJvcHMyIiwibGlua0JveFJ0bEJvdHRvbSIsImxpbmtCb3hSdGwiLCJsaW5rQm94Qm90dG9tIiwibGlua0JveCIsImxpbmtUYWciLCJjaGV2cm9uUnRsIiwibGlua1RvVmlld0FsbCIsImNoZXZyb24iLCJib3giLCJwYWRkaW5nUmlnaHQiLCJvdmVyZmxvdyIsInpJbmRleCIsInBvc2l0aW9uIiwibmV1dHJhbF9kYXJrIiwicGFkZGluZ0xlZnQiLCJyaWdodCIsImxlZnQiLCJ0ZXh0RGVjb3JhdGlvbiIsImZvbnRXZWlnaHQiLCJqdXN0aWZ5Q29udGVudCIsImZsZXhXcmFwIiwiUmFkaXVtIiwiX2J1dHRvbiIsIl90eXBvZ3JhcGh5IiwiX2JvcmRlcmVkQ2FsbFRvQWN0aW9uTW9kdWxlIiwiQm9yZGVyZWRDYWxsVG9BY3Rpb24iLCJkZXNjcmlwdGlvblRleHQiLCJidXR0b25UeXBlIiwiYnV0dG9uVXJsIiwiYnV0dG9uQ2xhc3MiLCJfcmVmJGJ1dHRvbkRpc2FibGVkIiwiYnV0dG9uRGlzYWJsZWQiLCJzb2xpZEJvcmRlciIsIkVycm9yIiwiZGFzaGVkQm9yZGVyIiwib3V0ZXJCb3giLCJ0ZXh0V3JhcHBlciIsIkhlYWRpbmczIiwidmlzdWFsQXBwZWFyYW5jZSIsIkJvZHlUaHJlZVRleHQiLCJ1c2VBc0xpbmsiLCJkaXNhYmxlZCIsIl9BbmFseXRpY3NDb25zdGFudHMiLCJfQW5hbHl0aWNzUmVwb3J0ZXIiLCJfTm90aWZpY2F0aW9uIiwiX3RlYWNoZXJTZWN0aW9uc1JlZHV4IiwiX0h0dHBDbGllbnQiLCJDb3RlYWNoZXJJbnZpdGVOb3RpZmljYXRpb24iLCJpc0ZvclBsIiwiYXN5bmNMb2FkQ290ZWFjaGVySW52aXRlIiwiYXN5bmNMb2FkU2VjdGlvbkRhdGEiLCJjb3RlYWNoZXJJbnZpdGUiLCJjb3RlYWNoZXJJbnZpdGVGb3JQbCIsImludml0ZSIsInVzZU1lbW8iLCJidXR0b25BY3Rpb24iLCJhcGkiLCJIdHRwQ2xpZW50IiwicHV0IiwidGhlbiIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImludml0ZWRCeU5hbWUiLCJpbnZpdGVkX2J5X25hbWUiLCJCb2R5VHdvVGV4dCIsImNvdGVhY2hlckludml0ZURlc2NyaXB0aW9uIiwiaW52aXRlZEJ5RW1haWwiLCJpbnZpdGVkX2J5X2VtYWlsIiwiU3Ryb25nVGV4dCIsInNlY3Rpb25fbmFtZSIsImNvdGVhY2hlclRvb2x0aXAiLCJkZWNsaW5lQ290ZWFjaGVySW52aXRlIiwic2VjdGlvbklkIiwiYW5hbHl0aWNzUmVwb3J0ZXIiLCJzZW5kRXZlbnQiLCJFVkVOVFMiLCJDT1RFQUNIRVJfSU5WSVRFX0RFQ0xJTkVEIiwic2VjdGlvbl9pZCIsIm5ldXRyYWxEYXJrIiwiZGVjbGluZUJ1dHRvbiIsImFjY2VwdENvdGVhY2hlckludml0ZSIsIkNPVEVBQ0hFUl9JTlZJVEVfQUNDRVBURUQiLCJicmFuZFNlY29uZGFyeURlZmF1bHQiLCJhY2NlcHRCdXR0b24iLCJ0ZWFjaGVyU2VjdGlvbnMiLCJhbGlnbkl0ZW1zIiwiX0JvcmRlcmVkQ2FsbFRvQWN0aW9uIiwiU2V0VXBTZWN0aW9ucyIsIl90aGlzIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwicmVjb3JkU2VjdGlvblNldHVwU3RhcnRlZEV2ZW50IiwiYmVnaW5FZGl0aW5nU2VjdGlvbiIsIlNFQ1RJT05fU0VUVVBfU1RBUlRFRCIsIlBMQVRGT1JNUyIsIkJPVEgiLCJuZXdTZWN0aW9uQWRkIiwiY3JlYXRlTmV3Q2xhc3Nyb29tIiwiY3JlYXRlU2VjdGlvbiIsImFzeW5jTG9hZENvbXBsZXRlIiwiX1NwaW5uZXIiLCJfQWdlR2F0ZWRTZWN0aW9uc0Jhbm5lciIsIl9Db250ZW50Q29udGFpbmVyIiwiX0FkZFNlY3Rpb25EaWFsb2ciLCJfT3duZWRTZWN0aW9ucyIsIl9Sb3N0ZXJEaWFsb2ciLCJfdGVhY2hlclNlY3Rpb25zUmVkdXhTZWxlY3RvcnMiLCJfQ290ZWFjaGVySW52aXRlTm90aWZpY2F0aW9uIiwiX1NldFVwU2VjdGlvbnMiLCJUZWFjaGVyU2VjdGlvbnMiLCJhZ2VHYXRlZFNlY3Rpb25zIiwic3R1ZGVudFNlY3Rpb25JZHMiLCJoaWRkZW5TdHVkZW50U2VjdGlvbklkcyIsInNlY3Rpb25zQXJlTG9hZGVkIiwibW9kYWxPcGVuIiwic2V0TW9kYWxPcGVuIiwidXNlRWZmZWN0Iiwic3Bpbm5lciIsInNob3VsZFJlbmRlclNlY3Rpb25zIiwic2VjdGlvbnNUaXRsZSIsInNob3VsZERpc3BsYXlBdFJpc2tBZ2VHYXRlZFdhcm5pbmciLCJBZ2VHYXRlZFNlY3Rpb25zQmFubmVyIiwidG9nZ2xlTW9kYWwiLCJzZWN0aW9uSWRzIiwiaGlkZGVuU2VjdGlvbklkcyIsImFycmF5IiwicGxTZWN0aW9uSWRzIiwiYXRSaXNrQWdlR2F0ZWRTZWN0aW9ucyIsIl91dGlscyIsIl9zaGFyZWRDb25zdGFudHMiLCJfQmFzZURpYWxvZyIsIl9Mb2dpblR5cGVQaWNrZXIiLCJfUGFkQW5kQ2VudGVyIiwiX1BhcnRpY2lwYW50VHlwZVBpY2tlciIsIl9zaGFwZXMiLCJyZWRpcmVjdFRvTmV3U2VjdGlvblBhZ2UiLCJwYXJ0aWNpcGFudFR5cGUiLCJsb2dpblR5cGUiLCJjcmVhdGVTZWN0aW9uRnJvbU15UGwiLCJocmVmTmF2IiwibmF2aWdhdGVUb0hyZWYiLCJBZGRTZWN0aW9uRGlhbG9nIiwiaXNPcGVuIiwic2VjdGlvbiIsImJlZ2luSW1wb3J0Um9zdGVyRmxvdyIsInNldFJvc3RlclByb3ZpZGVyIiwic2V0TG9naW5UeXBlIiwic2V0UGFydGljaXBhbnRUeXBlIiwiaGFuZGxlQ2FuY2VsIiwiYXZhaWxhYmxlUGFydGljaXBhbnRUeXBlcyIsImFzc2lnbmVkQ291cnNlT2ZmZXJpbmciLCJwYXJ0aWNpcGFudF9hdWRpZW5jZSIsIl9yZWYyIiwibmV3U2VjdGlvblVwZGF0ZWQiLCJvblBhcnRpY2lwYW50VHlwZVNlbGVjdGlvbiIsIlNlY3Rpb25Mb2dpblR5cGUiLCJlbWFpbCIsIm9uTG9naW5UeXBlU2VsZWN0aW9uIiwicGljdHVyZSIsIndvcmQiLCJpbmNsdWRlcyIsInVzZVVwZGF0ZWRTdHlsZXMiLCJmaXhlZFdpZHRoIiwidW5jbG9zZWFibGUiLCJnZXREaWFsb2dDb250ZW50IiwiaGFuZGxlSW1wb3J0T3BlbiIsInBhZGRpbmciLCJzZWN0aW9uU2hhcGUiLCJpc0FkZGluZ1NlY3Rpb24iLCJzZWN0aW9uQmVpbmdFZGl0ZWQiLCJkaXNwYXRjaCIsInByb3ZpZGVyIiwiZWRpdFNlY3Rpb25Qcm9wZXJ0aWVzIiwiY2FuY2VsRWRpdGluZ1NlY3Rpb24iLCJUYWJsZSIsInNvcnQiLCJfY29uc3RhbnRzIiwiX3VybEhlbHBlcnMiLCJfdGFibGVDb25zdGFudHMiLCJfd3JhcHBlZF9zb3J0YWJsZSIsIl9TZWN0aW9uQWN0aW9uRHJvcGRvd24iLCJfc2tlbGV0b25pemVDb250ZW50TW9kdWxlIiwiQ09MVU1OUyIsIklEIiwiU0VDVElPTl9OQU1FIiwiR1JBREUiLCJDT1VSU0UiLCJTVFVERU5UUyIsIkxPR0lOX0lORk8iLCJFRElUX0RFTEVURSIsInBhcnRpY2lwYW50TmFtZXMiLCJmYWNpbGl0YXRvciIsInBhcnRpY2lwYW50VHlwZUZhY2lsaXRhdG9yVGl0bGUiLCJ0ZWFjaGVyIiwicGFydGljaXBhbnRUeXBlVGVhY2hlclRpdGxlIiwic2VjdGlvbkxpbmtGb3JtYXR0ZXIiLCJyb3dEYXRhIiwicGxUYWJsZUxheW91dFN0eWxlcyIsInRlYWNoZXJEYXNoYm9hcmRVcmwiLCJjb3Vyc2VMaW5rRm9ybWF0dGVyIiwiYXNzaWdubWVudE5hbWVzIiwiYXNzaWdubWVudFBhdGhzIiwiY291cnNlT2ZmZXJpbmdzQXJlTG9hZGVkIiwiaXNBc3NpZ25lZFNpbmdsZVVuaXRDb3Vyc2UiLCJGcmFnbWVudCIsInN0cmluZ2lmeVF1ZXJ5UGFyYW1zIiwiY3VycmVudFVuaXQiLCJjb3Vyc2VzQ2FyZEFjdGlvbiIsInNrZWxldG9uaXplQ29udGVudCIsInJhbmRvbSIsImxvZ2luSW5mb0Zvcm1hdHRlciIsIl9yZWYzIiwic2VjdGlvbkNvZGUiLCJPQXV0aFNlY3Rpb25UeXBlcyIsImNsZXZlciIsImxvZ2luVHlwZUNsZXZlciIsImdvb2dsZV9jbGFzc3Jvb20iLCJsb2dpblR5cGVHb29nbGVDbGFzc3Jvb20iLCJsdGlfdjEiLCJsb2dpblR5cGVOYW1lIiwiY29kZSIsInNlY3Rpb25Db2RlTGluayIsInN0dWRlbnRzRm9ybWF0dGVyIiwic3R1ZGVudENvdW50IiwiX3JlZjQiLCJtYW5hZ2VTdHVkZW50c1VybCIsImFkZFN0dWRlbnRzIiwibWFuYWdlU3R1ZGVudHNBcmlhTGFiZWwiLCJudW1TdHVkZW50cyIsIk93bmVkUGxTZWN0aW9uc1RhYmxlIiwic29ydGluZ0NvbHVtbnMiLCJfcmVmNSIsInRlbXAiLCJfcmVmNiIsInNlY3Rpb25EYXRhIiwiaGFuZGxlRWRpdCIsIm9uRWRpdCIsInNlbGVjdGVkQ29sdW1uIiwic2V0U3RhdGUiLCJieUNvbHVtbiIsInNvcnRpbmdPcmRlciIsIkZJUlNUIiwiYXNjIiwiZGVzYyIsInNvcnRhYmxlIiwicHJvcGVydHkiLCJoZWFkZXIiLCJsYWJlbCIsInRyYW5zZm9ybXMiLCJjZWxsIiwiZm9ybWF0dGVycyIsInBhcnRpY2lwYW50cyIsInBhcnRpY2lwYW50TmFtZUZvcm1hdHRlciIsInBhcnRpY2lwYW50VHlwZUNlbGwiLCJzdHVkZW50cyIsImxvZ2luSW5mbyIsImFjdGlvbkNlbGxGb3JtYXR0ZXIiLCJjb2xCdXR0b24iLCJ3cmFwcGVkU29ydGFibGUiLCJnZXRTb3J0aW5nQ29sdW1ucyIsIm9uU29ydCIsInNvcnRhYmxlT3B0aW9ucyIsImNvbHVtbnMiLCJnZXRDb2x1bW5zIiwic29ydGVkUm93cyIsInNvcnRlciIsIngiLCJ5IiwieiIsIm9yZGVyQnkiLCJzZWN0aW9uUm93cyIsIlByb3ZpZGVyIiwiSGVhZGVyIiwiQm9keSIsInJvd3MiLCJyb3dLZXkiLCJzb3J0YWJsZVNlY3Rpb25TaGFwZSIsIm93blByb3BzIiwiZ2V0U2VjdGlvblJvd3MiLCJfTHRpRmVlZGJhY2tCYW5uZXIiLCJfR2xvYmFsRWRpdGlvbldyYXBwZXIiLCJfZXhwZXJpbWVudHMiLCJfaW1wcmVzc2lvbkhlbHBlcnMiLCJfT3duZWRQbFNlY3Rpb25zVGFibGUiLCJfT3duZWRTZWN0aW9uc1RhYmxlIiwiX3NlY3Rpb25IZWxwZXJzIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIk93bmVkU2VjdGlvbnMiLCJ2aWV3SGlkZGVuIiwic2hvd0hpZGRlbiIsImlzUGxTZWN0aW9ucyIsInNlY3Rpb25zVG9TaG93Iiwid2l0aG91dCIsIm9uRWRpdFNlY3Rpb24iLCJleHBlcmltZW50cyIsImlzRW5hYmxlZCIsIlRFQUNIRVJfREFTSEJPQVJEX1NFQ1RJT05fQlVUVE9OUyIsInJlY29yZEltcHJlc3Npb24iLCJfcHJvdG8iLCJyZWNvcmRPcGVuRWRpdFNlY3Rpb25EZXRhaWxzIiwiaGFzU2VjdGlvbnMiLCJjb21wb25lbnQiLCJMdGlGZWVkYmFja0Jhbm5lciIsImNvbXBvbmVudElkIiwib3duZWRTZWN0aW9uc1RhYmxlIiwiYnV0dG9uQ29udGFpbmVyIiwidG9nZ2xlVmlld0hpZGRlbiIsImhpZGVBcmNoaXZlZFNlY3Rpb25zIiwidmlld0FyY2hpdmVkU2VjdGlvbnMiLCJoaWRkZW5TZWN0aW9uTGFiZWwiLCJhcmNoaXZlZFNlY3Rpb25zIiwiaGlkZGVuU2VjdGlvbkRlc2MiLCJhcmNoaXZlZFNlY3Rpb25zVGVhY2hlckRlc2NyaXB0aW9uIiwiX1RlYWNoZXJOYXZGbGFnVXRpbHMiLCJ0YWJsZUxheW91dFN0eWxlcyIsInNob3dWMlRlYWNoZXJEYXNoYm9hcmQiLCJyZXBsYWNlIiwiaGlkZGVuRm9ybWF0dGVyIiwiT3duZWRTZWN0aW9uc1RhYmxlIiwiZGF0YSIsImFjdGl2ZUNvbHVtbiIsImRpcmVjdGlvbkFycmF5IiwiZ3JhZGVDb2wiLCJtdWx0Iiwic29ydEJ5Iiwib2JqIiwiU3R1ZGVudEdyYWRlTGV2ZWxzIiwiaW5kZXhPZiIsImdyYWRlcyIsImZvcm1hdHRlZEdyYWRlcyIsImpvaW4iLCJjb2xTdHlsZSIsInNlY3Rpb25Db2wiLCJ1bnNvcnRhYmxlSGVhZGVyU3R5bGUiLCJ1bnNvcnRhYmxlSGVhZGVyUlRMIiwidW5zb3J0YWJsZUhlYWRlciIsImhpZGRlbkNvbCIsImhlYWRlckNlbGwiLCJsZWZ0SGlkZGVuQ29sIiwiZ3JhZGUiLCJncmFkZUZvcm1hdHRlciIsIl90aGlzMiIsImRldGVybWluZVNvcnRlciIsInRhYmxlIiwiYm9yZGVyIiwiYm9yZGVyTGVmdCIsInNlY3Rpb25Db2RlTm9uZSIsImxpZ2h0X2dyYXkiLCJQYWRBbmRDZW50ZXIiLCJhbnkiLCJfSGVhZGluZ3MiLCJfQ2FyZENvbnRhaW5lciIsIl9Mb2dpblR5cGVDYXJkIiwiY2FyZEluZm9CeUF1ZGllbmNlIiwic3R1ZGVudCIsInBhcnRpY2lwYW50VHlwZVN0dWRlbnRUaXRsZSIsInBhcnRpY2lwYW50VHlwZVN0dWRlbnREZXNjcmlwdGlvbiIsInBhcnRpY2lwYW50VHlwZVRlYWNoZXJEZXNjcmlwdGlvbiIsInBhcnRpY2lwYW50VHlwZUZhY2lsaXRhdG9yRGVzY3JpcHRpb24iLCJQYXJ0aWNpcGFudFR5cGVQaWNrZXIiLCJjb250YWluZXIiLCJpc1JlYnJhbmRlZCIsImJvZHlUZXh0IiwicHJvZmVzc2lvbmFsTGVhcm5pbmdQYXJ0aWNpcGFudFF1ZXN0aW9uIiwic2Nyb2xsIiwiUGFydGljaXBhbnRUeXBlQ2FyZCIsImZvb3RlciIsImRpYWxvZ0NhbmNlbCIsInN1YnRpdGxlIiwiaGVpZ2h0Iiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIiwiYm9yZGVyUmFkaXVzIiwiX1JhaWxzQXV0aGVudGljaXR5VG9rZW4iLCJfZXh0ZW5kcyIsImFzc2lnbiIsImN0YUJ1dHRvblN0eWxlIiwiYmFja2dyb3VuZCIsIm9yYW5nZSIsImJveFNoYWRvdyIsIkNsYXNzcm9vbUxpc3QiLCJjbGFzc3Jvb21zIiwib25TZWxlY3QiLCJzZWxlY3RlZElkIiwicm9zdGVyUHJvdmlkZXIiLCJjbGFzc3Jvb20iLCJjbGFzc3Jvb21Sb3ciLCJoaWdobGlnaHRSb3ciLCJjb3Vyc2Vfc3RhdGUiLCJib290c3RyYXBfZXJyb3JfdGV4dCIsImxvY2FsZSIsImZvbnRGYW1pbHkiLCJlbnJvbGxtZW50X2NvZGUiLCJOb0NsYXNzcm9vbXNGb3VuZCIsIm5vQ2xhc3Nyb29tc0ZvdW5kIiwiYWRkUmVtb3ZlR29vZ2xlQ2xhc3Nyb29tcyIsImFkZFJlbW92ZUNsZXZlckNsYXNzcm9vbXMiLCJMb2FkRXJyb3IiLCJhdXRob3JpemVHb29nbGVDbGFzc3Jvb21zVGV4dCIsIlJlYXV0aG9yaXplR29vZ2xlQ2xhc3Nyb29tIiwiZXJyb3JMb2FkaW5nUm9zdGVyZWRTZWN0aW9uc1N1cHBvcnQiLCJlcnJvckxvYWRpbmdSb3N0ZXJlZFNlY3Rpb25zIiwiUkVBVVRIT1JJWkVfVVJMIiwibWV0aG9kIiwiYWN0aW9uIiwiYXV0aG9yaXplR29vZ2xlQ2xhc3Nyb29tcyIsIlJvc3RlckRpYWxvZyIsInJlY29yZFNlY3Rpb25TZXR1cEV4aXRFdmVudCIsInNlbGVjdGVkTmFtZSIsImZpbmQiLCJoYW5kbGVJbXBvcnQiLCJyZWRpcmVjdFVybCIsIndpbmRvdyIsImxvY2F0aW9uIiwiY291cnNlTmFtZSIsImltcG9ydFNlY3Rpb25VcmwiLCJjb3Vyc2VJZCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiJCIsImdldEpTT04iLCJmYWlsIiwianF4aHIiLCJoYW5kbGVJbXBvcnRGYWlsdXJlIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInJlc3BvbnNlVGV4dCIsIm5ld1NlY3Rpb24iLCJyZWRpcmVjdFRvRWRpdFNlY3Rpb25QYWdlIiwiZXZlbnROYW1lIiwib2F1dGhTb3VyY2UiLCJzZWxlY3RHb29nbGVDbGFzc3Jvb20iLCJzZWxlY3RDbGV2ZXJTZWN0aW9uIiwiZml4ZWRIZWlnaHQiLCJoYW5kbGVDbG9zZSIsImNhbmNlbCIsImNvbnRlbnQiLCJsb2FkRXJyb3IiLCJvbkNsYXNzcm9vbVNlbGVjdGVkIiwiYnV0dG9uUHJpbWFyeSIsImJ1dHRvblNlY29uZGFyeSIsImhhbmRsZVJlZGlyZWN0Iiwib3BhY2l0eSIsImNob29zZVNlY3Rpb24iLCJjbGFzc3Jvb21TaGFwZSIsImxvYWRFcnJvclNoYXBlIiwiZGFya19jaGFyY29hbCIsInRvcCIsImRlZmF1bHRfYmx1ZSIsImlzUm9zdGVyRGlhbG9nT3BlbiIsImltcG9ydE9yVXBkYXRlUm9zdGVyIiwiY2FuY2VsSW1wb3J0Um9zdGVyRmxvdyIsInJvc3RlckltcG9ydEZhaWxlZCIsIl9jbGFzc25hbWVzIiwiX3JlYWN0Um91dGVyRG9tIiwiX3RlYWNoZXJEYXNoYm9hcmRNb2R1bGUiLCJURUFDSEVSX0RBU0hCT0FSRF9QQVRIUyIsInByb2dyZXNzIiwidGV4dFJlc3BvbnNlcyIsImFzc2Vzc21lbnRzIiwicHJvamVjdHMiLCJzdGF0cyIsIm1hbmFnZVN0dWRlbnRzIiwic3RhbmRhcmRzUmVwb3J0IiwiYWlUdXRvckNoYXRNZXNzYWdlcyIsIkxBQkVMRURfVEVBQ0hFUl9EQVNIQk9BUkRfUEFUSFMiLCJ0ZWFjaGVyVGFiUHJvZ3Jlc3MiLCJ1cmwiLCJ0ZWFjaGVyVGFiU3RhdHNUZXh0UmVzcG9uc2VzIiwidGVhY2hlclRhYkFzc2Vzc21lbnRzIiwidGVhY2hlclRhYlByb2plY3RzIiwidGVhY2hlclRhYlN0YXRzIiwidGVhY2hlclRhYk1hbmFnZVN0dWRlbnRzIiwiVGVhY2hlckRhc2hib2FyZE5hdmlnYXRpb24iLCJsaW5rcyIsImFpVHV0b3JMaW5rcyIsInNob3dBSVR1dG9yVGFiIiwiYWlUdXRvciIsInJlbmRlcmVkTGlua3MiLCJuYXZDb250YWluZXIiLCJOYXZMaW5rIiwidG8iLCJpc0FjdGl2ZSIsImNsYXNzTmFtZXMiLCJsaW5rQ29udGFpbmVyIiwiYWN0aXZlTGlua0NvbnRhaW5lciIsInN0dWR5X2dyb3VwIiwic3R1ZHlHcm91cCIsInJlY29yZFN3aXRjaFRvU2VjdGlvbiIsInRvU2VjdGlvbklkIiwiZnJvbVNlY3Rpb25JZCIsIm9sZF9zZWN0aW9uX2lkIiwibmV3X3NlY3Rpb25faWQiLCJzd2l0Y2hUb1NlY3Rpb24iLCJiYXNlVXJsIiwiY3VycmVudFRhYiIsImxhc3QiLCJzcGxpdCIsInBhdGhuYW1lIiwic2VjdGlvblVybCIsInZhbHVlcyIsIl9UZWFjaGVyRGFzaGJvYXJkTmF2aWdhdGlvbiIsIl9fX0NTU19MT0FERVJfRVhQT1JUX19fIiwibG9jYWxzIiwid2VicGFja0VtcHR5Q29udGV4dCIsInJlcSIsIm9wdGlvbnMiLCJzdHlsZVRhZ1RyYW5zZm9ybSIsInNldEF0dHJpYnV0ZXMiLCJpbnNlcnQiLCJkb21BUEkiLCJpbnNlcnRTdHlsZUVsZW1lbnQiLCJsdGlGZWVkYmFja1JlZHVjZXIiLCJMVElfRkVFREJBQ0tfRkVUQ0hfUkVRVUVTVCIsImlzTG9hZGluZyIsIkxUSV9GRUVEQkFDS19GRVRDSF9TVUNDRVNTIiwibHRpRmVlZGJhY2siLCJMVElfRkVFREJBQ0tfRkVUQ0hfRkFJTFVSRSIsIkxUSV9GRUVEQkFDS19DUkVBVEVfUkVRVUVTVCIsIkxUSV9GRUVEQkFDS19DUkVBVEVfU1VDQ0VTUyIsIkxUSV9GRUVEQkFDS19DUkVBVEVfRkFJTFVSRSIsImZldGNoTHRpRmVlZGJhY2siLCJmZXRjaCIsImhlYWRlcnMiLCJyZXNwb25zZSIsIm9rIiwianNvbiIsImNhdGNoIiwibWVzc2FnZSIsImNyZWF0ZUx0aUZlZWRiYWNrIiwiZ2V0QXV0aGVudGljaXR5VG9rZW4iLCJib2R5IiwibHRpX2ZlZWRiYWNrIiwiQkFOTkVSX1NUQVRVUyIsImZyZWV6ZSIsIlVOU0VUIiwiVU5BVkFJTEFCTEUiLCJVTkFOU1dFUkVEIiwiQU5TV0VSRUQiLCJQUkVWSU9VU0xZX0FOU1dFUkVEIiwiQ0xPU0VEIiwiRmVlZGJhY2tCYW5uZXIiLCJhbGVydEtleSIsImFuc3dlclN0YXR1cyIsImFuc3dlciIsImNsb3NlIiwiY2xvc2VMYWJlbCIsInF1ZXN0aW9uIiwicG9zaXRpdmVBbnN3ZXIiLCJuZWdhdGl2ZUFuc3dlciIsInNoYXJlTW9yZSIsInNoYXJlTW9yZUxpbmsiLCJzaGFyZU1vcmVMaW5rVGV4dCIsImlzQmFubmVyVmlzaWJsZSIsIkZhZGUiLCJpbiIsInVubW91bnRPbkV4aXQiLCJBbGVydCIsImJzU3R5bGUiLCJjdXJyZW50VXNlciIsInVzZVNlbGVjdG9yIiwidXVpZCIsInVzZVJlZHVjZXIiLCJsdGlGZWVkYmFja0FjdGlvbiIsInNldFN0YXR1cyIsImlzTHRpIiwiaXNUZWFjaGVyIiwidHJ5R2V0TG9jYWxTdG9yYWdlIiwidHJ5U2V0TG9jYWxTdG9yYWdlIiwic2F0aXNmaWVkIiwiY2xvc2VEaWFsb2ciLCJsdGlfZmVlZGJhY2tCYW5uZXJfcXVlc3Rpb24iLCJsdGlfZmVlZGJhY2tCYW5uZXJfYW5zd2VyX3Bvc2l0aXZlIiwibHRpX2ZlZWRiYWNrQmFubmVyX2Fuc3dlcl9uZWdhdGl2ZSIsImx0aV9mZWVkYmFja0Jhbm5lcl9zaGFyZU1vcmVfdGV4dCIsIkxtc0xpbmtzIiwiQURESVRJT05BTF9GRUVEQkFDS19VUkwiLCJsdGlfZmVlZGJhY2tCYW5uZXJfc2hhcmVNb3JlX2xpbmsiLCJHbG9iYWxFZGl0aW9uV3JhcHBlciIsInBhZ2VDb25maWciLCJjdXJyZW50R2xvYmFsQ29uZmlndXJhdGlvbiIsInBhZ2VzIiwiZmlsdGVySW5mbyIsIlJlZ0V4cCIsInBhdGgiLCJjb21wb25lbnRzIiwidmlzaWJsZSIsIkdsb2JhbFdyYXBwZWRDb21wb25lbnQiLCJ3cmFwcGVkUHJvcHMiLCJ1c2VySWQiLCJ1c1N0YXRlIiwiYXRSaXNrQWdlR2F0ZWRVc1N0YXRlIiwibnVtYmVyT2ZBZ2VHYXRlZFNlY3Rpb25zIiwicGF5bG9hZCIsIkNBUF9BR0VfR0FURURfU0VDVElPTlNfQkFOTkVSX1NIT1dOIiwidXNlcl9pZCIsIm51bWJlcl9vZl9hZ2VfZ2F0ZWRfc2VjdGlvbnMiLCJ1c19zdGF0ZSIsInN0YXJ0RGF0ZSIsImF0Umlza0FnZUdhdGVkRGF0ZSIsInN0YXJ0RGF0ZVRleHQiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJoZWFkc1VwIiwiY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNXYXJuaW5nIiwiY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNXYXJuaW5nX2J1dHRvbiIsIkFnZUdhdGVkU2VjdGlvbnNNb2RhbCIsIm9uQ2xvc2UiLCJyZXBvcnRFdmVudCIsImhlbHBEb2NzVXJsIiwiQ2FwTGlua3MiLCJQQVJFTlRBTF9DT05TRU5UX0dVSURFX1VSTCIsIm1vZGFsQ2xvc2VkIiwiQ0FQX0FHRV9HQVRFRF9TRUNUSU9OU19NT0RBTF9DTE9TRUQiLCJDQVBfQUdFX0dBVEVEX1NFQ1RJT05TX01PREFMX1NIT1dOIiwibW9kYWxDb250YWluZXIiLCJzZW1hbnRpY1RhZyIsIm1vZGFsSGVhZGVyIiwiY2hpbGRBY2NvdW50UG9saWN5X2FnZUdhdGVkU2VjdGlvbnNNb2RhbF9oZWFkZXIiLCJjaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc01vZGFsX25vdGljZSIsImNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zTW9kYWxfYWN0aW9uIiwiQ0FQX1NUVURFTlRfV0FSTklOR19MSU5LX0NMSUNLRUQiLCJvcGVuSW5OZXdUYWIiLCJjaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc01vZGFsX3JlYWRNb3JlIiwiQWdlR2F0ZWRTZWN0aW9uc1RhYmxlIiwibW9kYWxCdXR0b24iLCJzZXRTb3J0aW5nQ29sdW1ucyIsInNlY3Rpb25Gb3JtYXR0ZXIiLCJDQVBfQUdFX0dBVEVEX1NFQ1RJT05TX1RBQkxFX1NFQ1RJT05fTkFNRV9MSU5LX0NMSUNLRUQiLCJncmFkZXNGb3JtYXR0ZXIiLCJncmFkZXNDb2x1bW4iLCJjaGlsZEFjY291bnRQb2xpY3lfYWdlR2F0ZWRTZWN0aW9uc1RhYmxlX2dyYWRlc0hlYWRlciIsImNoaWxkQWNjb3VudFBvbGljeV9hZ2VHYXRlZFNlY3Rpb25zVGFibGVfc2VjdGlvbkhlYWRlciIsInNlY3Rpb25Db2x1bW4iLCJzb3J0ZWREYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==