{"version":3,"sources":["corp.js"],"sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 45);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 45:\n/***/ (function(module, exports) {\n\nvar Page = {\r\n hasEmailBox: false,\r\n init: function() {\r\n Page.slidingEventPlus();\r\n Page.bingEmail();\r\n },\r\n slidingEventPlus: function() {\r\n var IndustrySTabs = $(\"#IndustrySTabs\");\r\n IndustrySTabs.on('click', 'li', function() {\r\n $(this).addClass('c').siblings().removeClass('c');\r\n })\r\n $(\"#content\").keyup(function(e) {\r\n var _val = $(this).val();\r\n if (_val.length > 0) {\r\n $(\"#btnSubmit\").removeAttr(\"disabled\");\r\n $(\"#btnReset\").removeAttr(\"disabled\");\r\n } else {\r\n $(\"#btnSubmit\").attr(\"disabled\", \"disabled\");\r\n $(\"#btnReset\").attr(\"disabled\", \"disabled\");\r\n }\r\n })\r\n },\r\n showEmailBox: function(list) {\r\n if (!Page.hasEmailBox) {\r\n $(\"body\").append('

请选择您的邮箱类型:

');\r\n $(\"#reg-keyword\").on('click', 'li', function() {\r\n $(\".emailInput\").val($(this).html());\r\n $('#reg-keyword').remove();\r\n Page.hasEmailBox = false;\r\n })\r\n }\r\n Page.hasEmailBox = true;\r\n if (list.length > 0) {\r\n widthVaule = ((list[0].length - 8) * 6.3) + 75;\r\n if (widthVaule < 240) {\r\n widthVaule = 240;\r\n } else {\r\n $(\"#reg-keyword\").width(widthVaule);\r\n }\r\n }\r\n $(\"#reg-keyword\").show();\r\n $(\"#reg-keyword\").css(\"top\", $(\".emailInput\").offset().top + 35);\r\n $(\"#reg-keyword\").css(\"left\", $(\".emailInput\").offset().left);\r\n var displayText = \"\";\r\n $.each(list, function(i, n) {\r\n displayText = displayText + \"
  • \" + list[i] + \"
  • \";\r\n });\r\n $(\"#reg-keyword ul\").empty();\r\n $(\"#reg-keyword ul\").append(displayText);\r\n $(\"#reg-keyword li\").mouseover(function() {\r\n $(this).siblings().removeClass(\"reg-keyahover\");\r\n $(this).addClass(\"reg-keyahover\");\r\n\r\n }).mouseout(function() {\r\n $(this).removeClass(\"reg-keyahover\");\r\n\r\n });\r\n },\r\n fillText: function(textId, selectObj) {\r\n _txtemail__suffix = \"\";\r\n $(selectObj).parent().parent().remove();\r\n $(\".\" + textId).val(selectObj.innerHTML);\r\n $(\".\" + textId).focus();\r\n Page.hasEmailBox = false;\r\n },\r\n fillEmail: function() {\r\n $(\".reg-keyword\").val(email);\r\n $(\".reg-keyword\").focus();\r\n //clearSug(\"email\");\r\n },\r\n bingEmail: function() {\r\n $(\"#email\").blur(function() {\r\n setTimeout(function() {\r\n $(\"#reg-keyword\").remove();\r\n Page.hasEmailBox = false;\r\n }, 800)\r\n\r\n });\r\n\r\n $(\"#email\").keyup(function(e) {\r\n if (e.keyCode == 40 || e.keyCode == 38 || e.keyCode == 13) { return; }\r\n var sugEmail = [\"@163.com\", \"@qq.com\", \"@126.com\", \"@hotmail.com\", \"@gmail.com\", \"@sohu.com\", \"@sina.com\", \"@sina.cn\", \"@yahoo.com\", \"@139.com.cn\", \"@189.cn\"];\r\n var email = $(\"#email\").val();\r\n //clearSug();\r\n if (email.indexOf(\"@\") == 0 || email.length == 0 || email.indexOf(\"<\") > -1 || email.indexOf(\">\") > -1) {\r\n return;\r\n }\r\n var sugEmail1 = [];\r\n var perfix = (email.indexOf(\"@\") == -1) ? email : email.substring(0, email.indexOf(\"@\"));\r\n $.each(sugEmail, function(i, n) {\r\n if ((perfix + sugEmail[i]).indexOf(email) == 0) {\r\n sugEmail1[sugEmail1.length] = perfix + sugEmail[i];\r\n }\r\n });\r\n if (sugEmail1.length > 0) {\r\n Page.showEmailBox(sugEmail1);\r\n }\r\n }).keydown(function(e) {\r\n var $regkeylist = $(\"#reg-keyword\");\r\n\r\n if ($regkeylist && $regkeylist.is(\":visible\")) {\r\n\r\n if (e.keyCode == 40) { //向下\r\n var $list = $regkeylist.find(\"li.reg-keyahover\");\r\n if ($list && $list.length > 0) {\r\n if ($list.next()) {\r\n $list.removeClass(\"reg-keyahover\");\r\n $list.next().addClass(\"reg-keyahover\");\r\n } else {\r\n $list.removeClass(\"reg-keyahover\");\r\n $($regkeylist.find(\"li\")[0]).addClass(\"reg-keyahover\");\r\n }\r\n\r\n } else {\r\n $($regkeylist.find(\"li\")[0]).addClass(\"reg-keyahover\");\r\n\r\n }\r\n\r\n e.stopPropagation();\r\n return false;\r\n } else if (e.keyCode == 38) { //向上\r\n var $list = $regkeylist.find(\"li.reg-keyahover\");\r\n if ($list && $list.length > 0) {\r\n if ($list.prev()) {\r\n $list.removeClass(\"reg-keyahover\");\r\n $list.prev().addClass(\"reg-keyahover\");\r\n } else {\r\n $list.removeClass(\"reg-keyahover\");\r\n $regkeylist.find(\"li:last\").addClass(\"reg-keyahover\");\r\n }\r\n\r\n } else {\r\n $regkeylist.find(\"li:last\").addClass(\"reg-keyahover\");\r\n\r\n }\r\n e.stopPropagation();\r\n return false;\r\n } else if (e.keyCode == 13) { //回车\r\n var $list = $regkeylist.find(\"li.reg-keyahover\");\r\n if ($list && $list.length > 0) {\r\n Page.fillText('emailInput', $list[0])\r\n }\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n }\r\n\r\n\r\n \r\n });\r\n\r\n }\r\n}\r\n\r\n\r\n\r\n// Page.init();\r\nfunction checkEmail(mailAddress) {\r\n if (mailAddress.length > 0) {\r\n var reg = /^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$/;\r\n if (!reg.test(mailAddress)) {\r\n $(\"#promptMsgEmail\").show();\r\n return false;\r\n }\r\n }\r\n\r\n $(\"#promptMsgEmail\").hide();\r\n return true;\r\n}\r\n\r\n\r\nfunction cheackPhone(tel) {\r\n var reg=/^[1][2,3,4,5,6,7,8,9][0-9]{9}$/;\r\n\r\n if (!reg.test(tel)) { \r\n return false; \r\n } else { \r\n return true; \r\n } \r\n}\r\nvar checkword = function(t) {\r\n if (typeof(filter) == \"undefined\") {\r\n return true;\r\n }\r\n var r = true;\r\n var c = filter.split(\",\");\r\n for (var i = 0; i < c.length; i++) {\r\n if (t.indexOf(c[i]) > -1) {\r\n r = false;\r\n break;\r\n }\r\n }\r\n if (!r) {\r\n tb_show('', '#TB_inline?height=150&width=400&inlineId=msgshow;r=' + Math.random(), true);\r\n $(\"#msgContent\").html($MSG.E001);\r\n }\r\n return r;\r\n};\r\nvar getCookie = function(key) {\r\n var cookieArray = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieArray.length; i++) {\r\n var arr = cookieArray[i].split(\"=\");\r\n if (arr[0].replace(\" \", \"\") == key)\r\n return unescape(decodeURI(arr[1]));\r\n }\r\n return \"\";\r\n};\r\n\r\nfunction getFlashVersion() {\r\n var flashVer = NaN;\r\n\r\n //ie浏览器\r\n var agent = navigator.userAgent.toLowerCase();\r\n var regStr_ie = /msie [\\d.]+;/gi;\r\n if (agent.indexOf(\"msie\") > 0) {\r\n return flashVer;\r\n //var vers = agent.match(regStr_ie);\r\n //if (/6.0/.test(vers) || /7.0/.test(vers) || /8.0/.test(vers)) {\r\n // return flashVer;\r\n //}\r\n }\r\n\r\n if (window.ActiveXObject) {\r\n var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');\r\n\r\n if (swf) {\r\n flashVer = Number(swf.GetVariable('$version').split(' ')[1].replace(/,/g, '.').replace(/^(d+.d+).*$/, \"$1\"));\r\n }\r\n } else {\r\n if (navigator.plugins && navigator.plugins.length > 0) {\r\n var swf = navigator.plugins['Shockwave Flash'];\r\n\r\n if (swf) {\r\n var arr = swf.description.split(' ');\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n var ver = Number(arr[i]);\r\n\r\n if (!isNaN(ver)) {\r\n flashVer = ver;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return flashVer;\r\n}\r\n\r\nfunction checkCookie() {\r\n var cookieEnabled = (navigator.cookieEnabled) ? true : false\r\n\r\n //if not ie4+ or ns6+ \r\n if (typeof navigator.cookieEnabled == \"undefined\" && !cookieEnabled) {\r\n document.cookie = \"testcookie\"\r\n cookieEnabled = (document.cookie == \"testcookie\") ? true : false\r\n document.cookie = \"\" //erase dummy value \r\n }\r\n return cookieEnabled;\r\n}\r\n\r\nvar canUploadImage = true;\r\nvar hasShow = false;\r\nvar isShowLoading = false;\r\n\r\nfunction showUploadLoading(){\r\n if(!isShowLoading){\r\n $('#uploadLoading').show();\r\n isShowLoading = true;\r\n }\r\n}\r\n\r\nfunction hideUploadLoading(){\r\n if(isShowLoading){\r\n $('#uploadLoading').hide();\r\n isShowLoading = false;\r\n }\r\n}\r\n\r\nfunction uploadOne(){ //上传图片\r\n new AjaxUpload('uploadOne', { \r\n action: \"/ajax/upfile.aspx\",\r\n name: \"uploadfile\",\r\n responseType:\"json\",\r\n onSubmit: function (file, ext) {\r\n if (ext && /^(jpg|jpeg|png|gif)$/.test(ext)) { //ext是后缀名\t\t\t\t\t\r\n showUploadLoading();\r\n } else {\r\n alert(\"不支持上传非图片格式文件!\");\r\n return false;\r\n }\r\n },\r\n onComplete: function (filename, json) {\r\n if(json && json.message=== \"success\" && json.data && json.data.length){\r\n $('#insertimgdiv .step1').hide();\r\n $('#insertimgdiv .step2').show();\r\n\r\n var html = $('
  • 删除

  • ')\r\n\r\n $('#preview_list .uploadTwoLi').before(html);\r\n uploadTwo();\r\n hideUploadLoading();\r\n }else{\r\n alert(json.message);\r\n hideUploadLoading();\r\n }\r\n \r\n }\r\n });\r\n}\r\n\r\nfunction uploadTwo(){ //上传图片\r\n new AjaxUpload('uploadTwo', { \r\n action: \"/ajax/upfile.aspx\",\r\n name: \"uploadfile\",\r\n responseType:\"json\",\r\n onSubmit: function (file, ext) {\r\n console.log(file, ext,123)\r\n if (ext && /^(jpg|jpeg|png|gif)$/.test(ext)) { //ext是后缀名\t\t\t\t\t\r\n showUploadLoading();\r\n } else {\r\n alert(\"不支持上传非图片格式文件!\");\r\n return false;\r\n }\r\n },\r\n onComplete: function (filename, json) {\r\n \r\n if(json && json.message=== \"success\" && json.data && json.data.length){\r\n \r\n\r\n var html = $('
  • 删除

  • ')\r\n\r\n $('#preview_list .uploadTwoLi').before(html);\r\n if($(\"#preview_list>li\").length>=4){\r\n $('#preview_list .uploadTwoLi').hide();\r\n }\r\n hideUploadLoading();\r\n }else{\r\n alert(json.message);\r\n hideUploadLoading();\r\n }\r\n \r\n }\r\n });\r\n}\r\n\r\n$(function() {\r\n Page.init();\r\n var $MSG = {\r\n 'R000': '感谢您对我们提出了宝贵的意见,我们将及时进行处理。',\r\n 'R001': '您的留言速度过快,请稍候再提交!',\r\n 'R002': '对不起,提交失败!',\r\n 'R003': '该IP已被屏蔽!',\r\n 'M001': '您留下的每个字都将被用来改善我们的服务。',\r\n 'M002': '如果您留下联系方式,将有助于我们帮您更快地解决问题。',\r\n 'E001': '您的留言中含有非法信息,请修改后再次提交!',\r\n 'E002': '请填写内容',\r\n 'E003': '邮箱格式不合法,请确认您的邮箱!'\r\n\r\n };\r\n\r\n $('#btnSubmit').on('click', function() {\r\n var content = $(\"#content\").val();\r\n var email = $('#email').val();\r\n var userName = 'guest';\r\n var userId = 'guest';\r\n var isGuest = true;\r\n var cVal = getCookie(\"pi\");\r\n // var feedbackType = $(\"#IndustrySTabs li.c span\").attr(\"data-value\");\r\n var feedbackType = 4;\r\n var tel = $(\"#phoneNumber\").val() == null ? 'null' : $(\"#phoneNumber\").val();\r\n var email = $(\"#email\").val() == null ? 'null' : $(\"#email\").val();\r\n var sourceFrom = document.referrer;\r\n var sourceId;\r\n var jsoninfo = '';\r\n var attachmentArr = [];\r\n if (cVal && cVal != null && cVal != \"\") {\r\n var cVals = cVal.split(\";\");\r\n uId = cVals[0];\r\n uName = cVals[1];\r\n if (uId != \"\") {\r\n isGuest = false;\r\n }\r\n }\r\n\r\n if ($.trim(content).length <= 0) {\r\n alert($MSG.E002);\r\n return;\r\n }\r\n\r\n if ($.trim(content).length > 800) {\r\n alert(\"输入的内容过长\");\r\n return;\r\n }\r\n\r\n if (!checkword($(\"#content\").val())) {\r\n return;\r\n }\r\n\r\n if (!cheackPhone(tel)) {\r\n alert(\"请输入正确的手机号\");\r\n return;\r\n }\r\n\r\n\r\n if (!checkEmail(email)) {\r\n alert($MSG.E003);\r\n return;\r\n }\r\n\r\n if(!!sourceFrom){\r\n if(sourceFrom.indexOf(\"finance\")>0){\r\n sourceId = 5;\r\n }else if(sourceFrom.indexOf(\"stock\")>0){\r\n sourceId = 6;\r\n }else{\r\n sourceId = 1;\r\n }\r\n }\r\n\r\n $('#preview_list img').each(function(){\r\n attachmentArr.push($(this).attr(\"src\") || \"\")\r\n })\r\n \r\n var dPost = {\r\n \"action\": 'post',\r\n \"userId\": userId,\r\n \"userName\": userName,\r\n \"isGuest\": isGuest,\r\n \"feedbackType\": feedbackType,\r\n \"tbContent\": escape($(\"#content\").val()),\r\n \"tel\": tel,\r\n \"email\": email,\r\n \"sourceFrom\": sourceFrom,\r\n \"sourceId\": !!sourceId ? sourceId : 1,\r\n \"jsoninfo\": jsoninfo,\r\n \"userAgent\": escape(navigator.userAgent),\r\n \"flashVersion\": getFlashVersion(),\r\n \"screenWidth\": screen.width,\r\n \"screenHeight\": screen.height,\r\n \"isCookieSupported\": checkCookie(),\r\n \"attachment\":attachmentArr.join(\",\"),\r\n \"createSystem\": \"东方财富网站留言反馈系统\"\r\n };\r\n $.ajax({\r\n url: \"/Handler/FeedbackHandlerWithoutFiles.ashx?r=\" + Math.random(),\r\n type: 'post',\r\n // dataType:'json',\r\n data: dPost,\r\n success: function(data) {\r\n $('#btnReset').trigger(\"click\");\r\n\r\n // if(data && data.data === true){\r\n // $(\".modle-success\").show();\r\n // }else{\r\n // alert(data.data)\r\n // }\r\n if (data == \"R000\") {\r\n // alert($MSG.R000);\r\n $(\".modle-success\").show();\r\n } else if (data == \"R001\") {\r\n alert($MSG.R001);\r\n } else if (data == \"E001\") {\r\n alert($MSG.E001);\r\n } else {\r\n alert($MSG.R002);\r\n }\r\n\r\n },\r\n error: function(err) {\r\n console && console.log(err)\r\n alert(\"对不起,提交失败!\");\r\n }\r\n });\r\n\r\n });\r\n\r\n $('#btnReset').click(function() {\r\n $(\"#content\").val('');\r\n $(\"#email\").val('');\r\n $(\"#phoneNumber\").val('');\r\n $(\"#btnSubmit\").attr(\"disabled\", \"disabled\");\r\n $(\"#btnReset\").attr(\"disabled\", \"disabled\");\r\n $(\"#preview_list .imgUp\").remove();\r\n $('#insertimgdiv .step2').hide();\r\n $('#insertimgdiv .step1').show();\r\n });\r\n $(\".btn-success\").click(function() {\r\n $(\".modle-success\").hide();\r\n })\r\n\r\n\r\n $('.modle-success').on('click','.modle-container',function(){\r\n $(\".modle-success\").hide();\r\n })\r\n \r\n \r\n\r\n $(document).on('click',function(e){\r\n var target = $(e.target);\r\n\r\n if(target.is('#iconImg')){\r\n if(!hasShow){\r\n hasShow = true;\r\n $('#insertimgdiv').show();\r\n uploadOne();\r\n }else{\r\n $('#insertimgdiv').hide();\r\n hasShow = false;\r\n }\r\n }else if(target.is('p.delete')){\r\n\r\n var li = target.parent(\"li\");\r\n li.remove();\r\n\r\n $('#preview_list .uploadTwoLi').show();\r\n if($('#preview_list li').length <= 1){\r\n $('#insertimgdiv .step2').hide();\r\n $('#insertimgdiv .step1').show();\r\n }\r\n\r\n\r\n }else if(!target.is('#insertimgdiv') && !target.parents().is('#insertimgdiv') && !target.is(\"#absFileInput\")){\r\n if(hasShow){\r\n $('#insertimgdiv').hide();\r\n hasShow = false;\r\n }\r\n }\r\n })\r\n window.onerror = function (message, source) {\r\n console && console.log(message, source)\r\n // hideUploadLoading();\r\n // alert(\"页面发生错误!\");\r\n // location.reload(true);\r\n }\r\n \r\n})\r\n\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgNmI1NTQ3MjQ2ODI3OWNjZWQ5MTUiLCJ3ZWJwYWNrOi8vLy4vanMvY29ycC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO1FBQUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7OztRQUdBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBLDJDQUEyQyxjQUFjOztRQUV6RDtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLEtBQUs7UUFDTDtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDJCQUEyQiwwQkFBMEIsRUFBRTtRQUN2RCxpQ0FBaUMsZUFBZTtRQUNoRDtRQUNBO1FBQ0E7O1FBRUE7UUFDQSxzREFBc0QsK0RBQStEOztRQUVySDtRQUNBOztRQUVBO1FBQ0E7Ozs7Ozs7O0FDaEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQSwrRkFBK0YsZ0JBQWdCLGFBQWE7QUFDNUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFNBQVM7QUFDVDs7QUFFQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTs7QUFFYixTQUFTOztBQUVUO0FBQ0Esd0VBQXdFLFFBQVE7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTs7QUFFQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCO0FBQ3JCOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUIsNEJBQTRCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBOztBQUVBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsNEJBQTRCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7O0FBSUEsU0FBUzs7QUFFVDtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQSx3Q0FBd0MsRUFBRTs7QUFFMUMseUI7QUFDQSxxQjtBQUNBLEtBQUssTztBQUNMLG9CO0FBQ0EsSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGNBQWM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLGNBQWMsaUJBQWlCO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUMsbUJBQW1CLHdCQUF3QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlEQUFpRCxTQUFTO0FBQzFEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUI7QUFDckIsaUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSxxQkFBcUI7QUFDckIsaUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBEO0FBQzFEO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBOztBQUVBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7OztBQUdMO0FBQ0E7QUFDQSxLQUFLOzs7O0FBSUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsQ0FBQyIsImZpbGUiOiJjb3JwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pID0gZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuIHZhbHVlOyB9O1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA0NSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgNmI1NTQ3MjQ2ODI3OWNjZWQ5MTUiLCJ2YXIgUGFnZSA9IHtcclxuICAgIGhhc0VtYWlsQm94OiBmYWxzZSxcclxuICAgIGluaXQ6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIFBhZ2Uuc2xpZGluZ0V2ZW50UGx1cygpO1xyXG4gICAgICAgIFBhZ2UuYmluZ0VtYWlsKCk7XHJcbiAgICB9LFxyXG4gICAgc2xpZGluZ0V2ZW50UGx1czogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgdmFyIEluZHVzdHJ5U1RhYnMgPSAkKFwiI0luZHVzdHJ5U1RhYnNcIik7XHJcbiAgICAgICAgSW5kdXN0cnlTVGFicy5vbignY2xpY2snLCAnbGknLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYycpLnNpYmxpbmdzKCkucmVtb3ZlQ2xhc3MoJ2MnKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgICQoXCIjY29udGVudFwiKS5rZXl1cChmdW5jdGlvbihlKSB7XHJcbiAgICAgICAgICAgIHZhciBfdmFsID0gJCh0aGlzKS52YWwoKTtcclxuICAgICAgICAgICAgaWYgKF92YWwubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgJChcIiNidG5TdWJtaXRcIikucmVtb3ZlQXR0cihcImRpc2FibGVkXCIpO1xyXG4gICAgICAgICAgICAgICAgJChcIiNidG5SZXNldFwiKS5yZW1vdmVBdHRyKFwiZGlzYWJsZWRcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkKFwiI2J0blN1Ym1pdFwiKS5hdHRyKFwiZGlzYWJsZWRcIiwgXCJkaXNhYmxlZFwiKTtcclxuICAgICAgICAgICAgICAgICQoXCIjYnRuUmVzZXRcIikuYXR0cihcImRpc2FibGVkXCIsIFwiZGlzYWJsZWRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSxcclxuICAgIHNob3dFbWFpbEJveDogZnVuY3Rpb24obGlzdCkge1xyXG4gICAgICAgIGlmICghUGFnZS5oYXNFbWFpbEJveCkge1xyXG4gICAgICAgICAgICAkKFwiYm9keVwiKS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJ3MjM0LXVpMlwiIGlkPVwicmVnLWtleXdvcmRcIiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogNjU1MzU7ZGlzcGxheTpub25lOyB3aWR0aDoyNDBweFwiPjxwPuivt+mAieaLqeaCqOeahOmCrueuseexu+Wei++8mjwvcD48dWw+PC91bD48L2Rpdj4nKTtcclxuICAgICAgICAgICAgJChcIiNyZWcta2V5d29yZFwiKS5vbignY2xpY2snLCAnbGknLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICQoXCIuZW1haWxJbnB1dFwiKS52YWwoJCh0aGlzKS5odG1sKCkpO1xyXG4gICAgICAgICAgICAgICAgJCgnI3JlZy1rZXl3b3JkJykucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICBQYWdlLmhhc0VtYWlsQm94ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIFBhZ2UuaGFzRW1haWxCb3ggPSB0cnVlO1xyXG4gICAgICAgIGlmIChsaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgd2lkdGhWYXVsZSA9ICgobGlzdFswXS5sZW5ndGggLSA4KSAqIDYuMykgKyA3NTtcclxuICAgICAgICAgICAgaWYgKHdpZHRoVmF1bGUgPCAyNDApIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoVmF1bGUgPSAyNDA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAkKFwiI3JlZy1rZXl3b3JkXCIpLndpZHRoKHdpZHRoVmF1bGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoXCIjcmVnLWtleXdvcmRcIikuc2hvdygpO1xyXG4gICAgICAgICQoXCIjcmVnLWtleXdvcmRcIikuY3NzKFwidG9wXCIsICQoXCIuZW1haWxJbnB1dFwiKS5vZmZzZXQoKS50b3AgKyAzNSk7XHJcbiAgICAgICAgJChcIiNyZWcta2V5d29yZFwiKS5jc3MoXCJsZWZ0XCIsICQoXCIuZW1haWxJbnB1dFwiKS5vZmZzZXQoKS5sZWZ0KTtcclxuICAgICAgICB2YXIgZGlzcGxheVRleHQgPSBcIlwiO1xyXG4gICAgICAgICQuZWFjaChsaXN0LCBmdW5jdGlvbihpLCBuKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXlUZXh0ID0gZGlzcGxheVRleHQgKyBcIjxsaT5cIiArIGxpc3RbaV0gKyBcIjwvbGk+XCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgJChcIiNyZWcta2V5d29yZCB1bFwiKS5lbXB0eSgpO1xyXG4gICAgICAgICQoXCIjcmVnLWtleXdvcmQgdWxcIikuYXBwZW5kKGRpc3BsYXlUZXh0KTtcclxuICAgICAgICAkKFwiI3JlZy1rZXl3b3JkIGxpXCIpLm1vdXNlb3ZlcihmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcInJlZy1rZXlhaG92ZXJcIik7XHJcblxyXG4gICAgICAgIH0pLm1vdXNlb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgZmlsbFRleHQ6IGZ1bmN0aW9uKHRleHRJZCwgc2VsZWN0T2JqKSB7XHJcbiAgICAgICAgX3R4dGVtYWlsX19zdWZmaXggPSBcIlwiO1xyXG4gICAgICAgICQoc2VsZWN0T2JqKS5wYXJlbnQoKS5wYXJlbnQoKS5yZW1vdmUoKTtcclxuICAgICAgICAkKFwiLlwiICsgdGV4dElkKS52YWwoc2VsZWN0T2JqLmlubmVySFRNTCk7XHJcbiAgICAgICAgJChcIi5cIiArIHRleHRJZCkuZm9jdXMoKTtcclxuICAgICAgICBQYWdlLmhhc0VtYWlsQm94ID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgZmlsbEVtYWlsOiBmdW5jdGlvbigpIHtcclxuICAgICAgICAkKFwiLnJlZy1rZXl3b3JkXCIpLnZhbChlbWFpbCk7XHJcbiAgICAgICAgJChcIi5yZWcta2V5d29yZFwiKS5mb2N1cygpO1xyXG4gICAgICAgIC8vY2xlYXJTdWcoXCJlbWFpbFwiKTtcclxuICAgIH0sXHJcbiAgICBiaW5nRW1haWw6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICQoXCIjZW1haWxcIikuYmx1cihmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgICAgICQoXCIjcmVnLWtleXdvcmRcIikucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgICBQYWdlLmhhc0VtYWlsQm94ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sIDgwMClcclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQoXCIjZW1haWxcIikua2V5dXAoZnVuY3Rpb24oZSkge1xyXG4gICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09IDQwIHx8IGUua2V5Q29kZSA9PSAzOCB8fCBlLmtleUNvZGUgPT0gMTMpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIHZhciBzdWdFbWFpbCA9IFtcIkAxNjMuY29tXCIsIFwiQHFxLmNvbVwiLCBcIkAxMjYuY29tXCIsIFwiQGhvdG1haWwuY29tXCIsIFwiQGdtYWlsLmNvbVwiLCBcIkBzb2h1LmNvbVwiLCBcIkBzaW5hLmNvbVwiLCBcIkBzaW5hLmNuXCIsIFwiQHlhaG9vLmNvbVwiLCBcIkAxMzkuY29tLmNuXCIsIFwiQDE4OS5jblwiXTtcclxuICAgICAgICAgICAgdmFyIGVtYWlsID0gJChcIiNlbWFpbFwiKS52YWwoKTtcclxuICAgICAgICAgICAgLy9jbGVhclN1ZygpO1xyXG4gICAgICAgICAgICBpZiAoZW1haWwuaW5kZXhPZihcIkBcIikgPT0gMCB8fCBlbWFpbC5sZW5ndGggPT0gMCB8fCBlbWFpbC5pbmRleE9mKFwiPFwiKSA+IC0xIHx8IGVtYWlsLmluZGV4T2YoXCI+XCIpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgc3VnRW1haWwxID0gW107XHJcbiAgICAgICAgICAgIHZhciBwZXJmaXggPSAoZW1haWwuaW5kZXhPZihcIkBcIikgPT0gLTEpID8gZW1haWwgOiBlbWFpbC5zdWJzdHJpbmcoMCwgZW1haWwuaW5kZXhPZihcIkBcIikpO1xyXG4gICAgICAgICAgICAkLmVhY2goc3VnRW1haWwsIGZ1bmN0aW9uKGksIG4pIHtcclxuICAgICAgICAgICAgICAgIGlmICgocGVyZml4ICsgc3VnRW1haWxbaV0pLmluZGV4T2YoZW1haWwpID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBzdWdFbWFpbDFbc3VnRW1haWwxLmxlbmd0aF0gPSBwZXJmaXggKyBzdWdFbWFpbFtpXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChzdWdFbWFpbDEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgUGFnZS5zaG93RW1haWxCb3goc3VnRW1haWwxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pLmtleWRvd24oZnVuY3Rpb24oZSkge1xyXG4gICAgICAgICAgICB2YXIgJHJlZ2tleWxpc3QgPSAkKFwiI3JlZy1rZXl3b3JkXCIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCRyZWdrZXlsaXN0ICYmICRyZWdrZXlsaXN0LmlzKFwiOnZpc2libGVcIikpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09IDQwKSB7IC8v5ZCR5LiLXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyICRsaXN0ID0gJHJlZ2tleWxpc3QuZmluZChcImxpLnJlZy1rZXlhaG92ZXJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaXN0ICYmICRsaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaXN0Lm5leHQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3QucmVtb3ZlQ2xhc3MoXCJyZWcta2V5YWhvdmVyXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3QubmV4dCgpLmFkZENsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaXN0LnJlbW92ZUNsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJHJlZ2tleWxpc3QuZmluZChcImxpXCIpWzBdKS5hZGRDbGFzcyhcInJlZy1rZXlhaG92ZXJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgkcmVna2V5bGlzdC5maW5kKFwibGlcIilbMF0pLmFkZENsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09IDM4KSB7IC8v5ZCR5LiKXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyICRsaXN0ID0gJHJlZ2tleWxpc3QuZmluZChcImxpLnJlZy1rZXlhaG92ZXJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaXN0ICYmICRsaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaXN0LnByZXYoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3QucmVtb3ZlQ2xhc3MoXCJyZWcta2V5YWhvdmVyXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpc3QucHJldigpLmFkZENsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaXN0LnJlbW92ZUNsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWdrZXlsaXN0LmZpbmQoXCJsaTpsYXN0XCIpLmFkZENsYXNzKFwicmVnLWtleWFob3ZlclwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkcmVna2V5bGlzdC5maW5kKFwibGk6bGFzdFwiKS5hZGRDbGFzcyhcInJlZy1rZXlhaG92ZXJcIik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09IDEzKSB7IC8v5Zue6L2mXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyICRsaXN0ID0gJHJlZ2tleWxpc3QuZmluZChcImxpLnJlZy1rZXlhaG92ZXJcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaXN0ICYmICRsaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgUGFnZS5maWxsVGV4dCgnZW1haWxJbnB1dCcsICRsaXN0WzBdKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuLy8gUGFnZS5pbml0KCk7XHJcbmZ1bmN0aW9uIGNoZWNrRW1haWwobWFpbEFkZHJlc3MpIHtcclxuICAgIGlmIChtYWlsQWRkcmVzcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdmFyIHJlZyA9IC9eXFx3KygoLVxcdyspfChcXC5cXHcrKSkqXFxAW0EtWmEtejAtOV0rKChcXC58LSlbQS1aYS16MC05XSspKlxcLltBLVphLXowLTldKyQvO1xyXG4gICAgICAgIGlmICghcmVnLnRlc3QobWFpbEFkZHJlc3MpKSB7XHJcbiAgICAgICAgICAgICQoXCIjcHJvbXB0TXNnRW1haWxcIikuc2hvdygpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICQoXCIjcHJvbXB0TXNnRW1haWxcIikuaGlkZSgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiBjaGVhY2tQaG9uZSh0ZWwpIHtcclxuICAgIHZhciByZWc9L15bMV1bMiwzLDQsNSw2LDcsOCw5XVswLTldezl9JC87XHJcblxyXG4gICAgaWYgKCFyZWcudGVzdCh0ZWwpKSB7ICBcclxuICAgICAgICByZXR1cm4gZmFsc2U7ICBcclxuICAgIH0gZWxzZSB7ICBcclxuICAgICAgICByZXR1cm4gdHJ1ZTsgIFxyXG4gICAgfSAgXHJcbn1cclxudmFyIGNoZWNrd29yZCA9IGZ1bmN0aW9uKHQpIHtcclxuICAgIGlmICh0eXBlb2YoZmlsdGVyKSA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICB2YXIgciA9IHRydWU7XHJcbiAgICB2YXIgYyA9IGZpbHRlci5zcGxpdChcIixcIik7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodC5pbmRleE9mKGNbaV0pID4gLTEpIHtcclxuICAgICAgICAgICAgciA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXIpIHtcclxuICAgICAgICB0Yl9zaG93KCcnLCAnI1RCX2lubGluZT9oZWlnaHQ9MTUwJmFtcDt3aWR0aD00MDAmYW1wO2lubGluZUlkPW1zZ3Nob3c7cj0nICsgTWF0aC5yYW5kb20oKSwgdHJ1ZSk7XHJcbiAgICAgICAgJChcIiNtc2dDb250ZW50XCIpLmh0bWwoJE1TRy5FMDAxKTtcclxuICAgIH1cclxuICAgIHJldHVybiByO1xyXG59O1xyXG52YXIgZ2V0Q29va2llID0gZnVuY3Rpb24oa2V5KSB7XHJcbiAgICB2YXIgY29va2llQXJyYXkgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoXCI7XCIpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb29raWVBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBhcnIgPSBjb29raWVBcnJheVtpXS5zcGxpdChcIj1cIik7XHJcbiAgICAgICAgaWYgKGFyclswXS5yZXBsYWNlKFwiIFwiLCBcIlwiKSA9PSBrZXkpXHJcbiAgICAgICAgICAgIHJldHVybiB1bmVzY2FwZShkZWNvZGVVUkkoYXJyWzFdKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIGdldEZsYXNoVmVyc2lvbigpIHtcclxuICAgIHZhciBmbGFzaFZlciA9IE5hTjtcclxuXHJcbiAgICAvL2ll5rWP6KeI5ZmoXHJcbiAgICB2YXIgYWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB2YXIgcmVnU3RyX2llID0gL21zaWUgW1xcZC5dKzsvZ2k7XHJcbiAgICBpZiAoYWdlbnQuaW5kZXhPZihcIm1zaWVcIikgPiAwKSB7XHJcbiAgICAgICAgcmV0dXJuIGZsYXNoVmVyO1xyXG4gICAgICAgIC8vdmFyIHZlcnMgPSBhZ2VudC5tYXRjaChyZWdTdHJfaWUpO1xyXG4gICAgICAgIC8vaWYgKC82LjAvLnRlc3QodmVycykgfHwgLzcuMC8udGVzdCh2ZXJzKSB8fCAvOC4wLy50ZXN0KHZlcnMpKSB7XHJcbiAgICAgICAgLy8gICAgcmV0dXJuIGZsYXNoVmVyO1xyXG4gICAgICAgIC8vfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkge1xyXG4gICAgICAgIHZhciBzd2YgPSBuZXcgQWN0aXZlWE9iamVjdCgnU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2gnKTtcclxuXHJcbiAgICAgICAgaWYgKHN3Zikge1xyXG4gICAgICAgICAgICBmbGFzaFZlciA9IE51bWJlcihzd2YuR2V0VmFyaWFibGUoJyR2ZXJzaW9uJykuc3BsaXQoJyAnKVsxXS5yZXBsYWNlKC8sL2csICcuJykucmVwbGFjZSgvXihkKy5kKykuKiQvLCBcIiQxXCIpKTtcclxuICAgICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChuYXZpZ2F0b3IucGx1Z2lucyAmJiBuYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHZhciBzd2YgPSBuYXZpZ2F0b3IucGx1Z2luc1snU2hvY2t3YXZlIEZsYXNoJ107XHJcblxyXG4gICAgICAgICAgICBpZiAoc3dmKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYXJyID0gc3dmLmRlc2NyaXB0aW9uLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYXJyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZlciA9IE51bWJlcihhcnJbaV0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKHZlcikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmxhc2hWZXIgPSB2ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmbGFzaFZlcjtcclxufVxyXG5cclxuZnVuY3Rpb24gY2hlY2tDb29raWUoKSB7XHJcbiAgICB2YXIgY29va2llRW5hYmxlZCA9IChuYXZpZ2F0b3IuY29va2llRW5hYmxlZCkgPyB0cnVlIDogZmFsc2VcclxuXHJcbiAgICAvL2lmIG5vdCBpZTQrIG9yIG5zNisgIFxyXG4gICAgaWYgKHR5cGVvZiBuYXZpZ2F0b3IuY29va2llRW5hYmxlZCA9PSBcInVuZGVmaW5lZFwiICYmICFjb29raWVFbmFibGVkKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuY29va2llID0gXCJ0ZXN0Y29va2llXCJcclxuICAgICAgICBjb29raWVFbmFibGVkID0gKGRvY3VtZW50LmNvb2tpZSA9PSBcInRlc3Rjb29raWVcIikgPyB0cnVlIDogZmFsc2VcclxuICAgICAgICBkb2N1bWVudC5jb29raWUgPSBcIlwiIC8vZXJhc2UgZHVtbXkgdmFsdWUgIFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvb2tpZUVuYWJsZWQ7XHJcbn1cclxuXHJcbnZhciBjYW5VcGxvYWRJbWFnZSA9IHRydWU7XHJcbnZhciBoYXNTaG93ID0gZmFsc2U7XHJcbnZhciBpc1Nob3dMb2FkaW5nID0gZmFsc2U7XHJcblxyXG5mdW5jdGlvbiBzaG93VXBsb2FkTG9hZGluZygpe1xyXG4gICAgaWYoIWlzU2hvd0xvYWRpbmcpe1xyXG4gICAgICAgICQoJyN1cGxvYWRMb2FkaW5nJykuc2hvdygpO1xyXG4gICAgICAgIGlzU2hvd0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBoaWRlVXBsb2FkTG9hZGluZygpe1xyXG4gICAgaWYoaXNTaG93TG9hZGluZyl7XHJcbiAgICAgICAgJCgnI3VwbG9hZExvYWRpbmcnKS5oaWRlKCk7XHJcbiAgICAgICAgaXNTaG93TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB1cGxvYWRPbmUoKXsgLy/kuIrkvKDlm77niYdcclxuICAgIG5ldyBBamF4VXBsb2FkKCd1cGxvYWRPbmUnLCB7IFxyXG4gICAgICAgIGFjdGlvbjogXCIvYWpheC91cGZpbGUuYXNweFwiLFxyXG4gICAgICAgIG5hbWU6IFwidXBsb2FkZmlsZVwiLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTpcImpzb25cIixcclxuICAgICAgICBvblN1Ym1pdDogZnVuY3Rpb24gKGZpbGUsIGV4dCkge1xyXG4gICAgICAgICAgICBpZiAoZXh0ICYmIC9eKGpwZ3xqcGVnfHBuZ3xnaWYpJC8udGVzdChleHQpKSB7IC8vZXh05piv5ZCO57yA5ZCNXHRcdFx0XHRcdFxyXG4gICAgICAgICAgICAgICAgc2hvd1VwbG9hZExvYWRpbmcoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KFwi5LiN5pSv5oyB5LiK5Lyg6Z2e5Zu+54mH5qC85byP5paH5Lu277yBXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvbkNvbXBsZXRlOiBmdW5jdGlvbiAoZmlsZW5hbWUsIGpzb24pIHtcclxuICAgICAgICAgICAgaWYoanNvbiAmJiBqc29uLm1lc3NhZ2U9PT0gXCJzdWNjZXNzXCIgJiYganNvbi5kYXRhICYmIGpzb24uZGF0YS5sZW5ndGgpe1xyXG4gICAgICAgICAgICAgICAgJCgnI2luc2VydGltZ2RpdiAuc3RlcDEnKS5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAkKCcjaW5zZXJ0aW1nZGl2IC5zdGVwMicpLnNob3coKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgaHRtbCA9ICQoJzxsaSBjbGFzcz1cImltZ1VwXCI+IDxwIGNsYXNzPVwiZGVsZXRlXCI+5Yig6ZmkPC9wPjxpbWcgc3JjPVwiJytqc29uLmRhdGFbMF0rJ1wiPjwvbGk+JylcclxuXHJcbiAgICAgICAgICAgICAgICAkKCcjcHJldmlld19saXN0IC51cGxvYWRUd29MaScpLmJlZm9yZShodG1sKTtcclxuICAgICAgICAgICAgICAgIHVwbG9hZFR3bygpO1xyXG4gICAgICAgICAgICAgICAgaGlkZVVwbG9hZExvYWRpbmcoKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBhbGVydChqc29uLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgaGlkZVVwbG9hZExvYWRpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gdXBsb2FkVHdvKCl7IC8v5LiK5Lyg5Zu+54mHXHJcbiAgICBuZXcgQWpheFVwbG9hZCgndXBsb2FkVHdvJywgeyBcclxuICAgICAgICBhY3Rpb246IFwiL2FqYXgvdXBmaWxlLmFzcHhcIixcclxuICAgICAgICBuYW1lOiBcInVwbG9hZGZpbGVcIixcclxuICAgICAgICByZXNwb25zZVR5cGU6XCJqc29uXCIsXHJcbiAgICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uIChmaWxlLCBleHQpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZmlsZSwgZXh0LDEyMylcclxuICAgICAgICAgICAgaWYgKGV4dCAmJiAvXihqcGd8anBlZ3xwbmd8Z2lmKSQvLnRlc3QoZXh0KSkgeyAvL2V4dOaYr+WQjue8gOWQjVx0XHRcdFx0XHRcclxuICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMb2FkaW5nKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhbGVydChcIuS4jeaUr+aMgeS4iuS8oOmdnuWbvueJh+agvOW8j+aWh+S7tu+8gVwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25Db21wbGV0ZTogZnVuY3Rpb24gKGZpbGVuYW1lLCBqc29uKSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZihqc29uICYmIGpzb24ubWVzc2FnZT09PSBcInN1Y2Nlc3NcIiAmJiBqc29uLmRhdGEgJiYganNvbi5kYXRhLmxlbmd0aCl7XHJcbiAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICAgIHZhciBodG1sID0gJCgnPGxpIGNsYXNzPVwiaW1nVXBcIj4gPHAgY2xhc3M9XCJkZWxldGVcIj7liKDpmaQ8L3A+PGltZyBzcmM9XCInK2pzb24uZGF0YVswXSsnXCI+PC9saT4nKVxyXG5cclxuICAgICAgICAgICAgICAgICQoJyNwcmV2aWV3X2xpc3QgLnVwbG9hZFR3b0xpJykuYmVmb3JlKGh0bWwpO1xyXG4gICAgICAgICAgICAgICAgaWYoJChcIiNwcmV2aWV3X2xpc3Q+bGlcIikubGVuZ3RoPj00KXtcclxuICAgICAgICAgICAgICAgICAgICAkKCcjcHJldmlld19saXN0IC51cGxvYWRUd29MaScpLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGhpZGVVcGxvYWRMb2FkaW5nKCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoanNvbi5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIGhpZGVVcGxvYWRMb2FkaW5nKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbn1cclxuXHJcbiQoZnVuY3Rpb24oKSB7XHJcbiAgICBQYWdlLmluaXQoKTtcclxuICAgIHZhciAkTVNHID0ge1xyXG4gICAgICAgICdSMDAwJzogJ+aEn+iwouaCqOWvueaIkeS7rOaPkOWHuuS6huWunei0teeahOaEj+inge+8jOaIkeS7rOWwhuWPiuaXtui/m+ihjOWkhOeQhuOAgicsXHJcbiAgICAgICAgJ1IwMDEnOiAn5oKo55qE55WZ6KiA6YCf5bqm6L+H5b+r77yM6K+356iN5YCZ5YaN5o+Q5Lqk77yBJyxcclxuICAgICAgICAnUjAwMic6ICflr7nkuI3otbfvvIzmj5DkuqTlpLHotKXvvIEnLFxyXG4gICAgICAgICdSMDAzJzogJ+ivpUlQ5bey6KKr5bGP6JS977yBJyxcclxuICAgICAgICAnTTAwMSc6ICfmgqjnlZnkuIvnmoTmr4/kuKrlrZfpg73lsIbooqvnlKjmnaXmlLnlloTmiJHku6znmoTmnI3liqHjgIInLFxyXG4gICAgICAgICdNMDAyJzogJ+WmguaenOaCqOeVmeS4i+iBlOezu+aWueW8j++8jOWwhuacieWKqeS6juaIkeS7rOW4ruaCqOabtOW/q+WcsOino+WGs+mXrumimOOAgicsXHJcbiAgICAgICAgJ0UwMDEnOiAn5oKo55qE55WZ6KiA5Lit5ZCr5pyJ6Z2e5rOV5L+h5oGv77yM6K+35L+u5pS55ZCO5YaN5qyh5o+Q5Lqk77yBJyxcclxuICAgICAgICAnRTAwMic6ICfor7floavlhpnlhoXlrrknLFxyXG4gICAgICAgICdFMDAzJzogJ+mCrueuseagvOW8j+S4jeWQiOazle+8jOivt+ehruiupOaCqOeahOmCrueuse+8gSdcclxuXHJcbiAgICB9O1xyXG5cclxuICAgICQoJyNidG5TdWJtaXQnKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcclxuICAgICAgICB2YXIgY29udGVudCA9ICQoXCIjY29udGVudFwiKS52YWwoKTtcclxuICAgICAgICB2YXIgZW1haWwgPSAkKCcjZW1haWwnKS52YWwoKTtcclxuICAgICAgICB2YXIgdXNlck5hbWUgPSAnZ3Vlc3QnO1xyXG4gICAgICAgIHZhciB1c2VySWQgPSAnZ3Vlc3QnO1xyXG4gICAgICAgIHZhciBpc0d1ZXN0ID0gdHJ1ZTtcclxuICAgICAgICB2YXIgY1ZhbCA9IGdldENvb2tpZShcInBpXCIpO1xyXG4gICAgICAgIC8vIHZhciBmZWVkYmFja1R5cGUgPSAkKFwiI0luZHVzdHJ5U1RhYnMgbGkuYyBzcGFuXCIpLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xyXG4gICAgICAgIHZhciBmZWVkYmFja1R5cGUgPSA0O1xyXG4gICAgICAgIHZhciB0ZWwgPSAkKFwiI3Bob25lTnVtYmVyXCIpLnZhbCgpID09IG51bGwgPyAnbnVsbCcgOiAkKFwiI3Bob25lTnVtYmVyXCIpLnZhbCgpO1xyXG4gICAgICAgIHZhciBlbWFpbCA9ICQoXCIjZW1haWxcIikudmFsKCkgPT0gbnVsbCA/ICdudWxsJyA6ICQoXCIjZW1haWxcIikudmFsKCk7XHJcbiAgICAgICAgdmFyIHNvdXJjZUZyb20gPSBkb2N1bWVudC5yZWZlcnJlcjtcclxuICAgICAgICB2YXIgc291cmNlSWQ7XHJcbiAgICAgICAgdmFyIGpzb25pbmZvID0gJyc7XHJcbiAgICAgICAgdmFyIGF0dGFjaG1lbnRBcnIgPSBbXTtcclxuICAgICAgICBpZiAoY1ZhbCAmJiBjVmFsICE9IG51bGwgJiYgY1ZhbCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgIHZhciBjVmFscyA9IGNWYWwuc3BsaXQoXCI7XCIpO1xyXG4gICAgICAgICAgICB1SWQgPSBjVmFsc1swXTtcclxuICAgICAgICAgICAgdU5hbWUgPSBjVmFsc1sxXTtcclxuICAgICAgICAgICAgaWYgKHVJZCAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICBpc0d1ZXN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICgkLnRyaW0oY29udGVudCkubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgYWxlcnQoJE1TRy5FMDAyKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCQudHJpbShjb250ZW50KS5sZW5ndGggPiA4MDApIHtcclxuICAgICAgICAgICAgYWxlcnQoXCLovpPlhaXnmoTlhoXlrrnov4fplb9cIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghY2hlY2t3b3JkKCQoXCIjY29udGVudFwiKS52YWwoKSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFjaGVhY2tQaG9uZSh0ZWwpKSB7XHJcbiAgICAgICAgICAgIGFsZXJ0KFwi6K+36L6T5YWl5q2j56Gu55qE5omL5py65Y+3XCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgaWYgKCFjaGVja0VtYWlsKGVtYWlsKSkge1xyXG4gICAgICAgICAgICBhbGVydCgkTVNHLkUwMDMpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighIXNvdXJjZUZyb20pe1xyXG4gICAgICAgICAgICBpZihzb3VyY2VGcm9tLmluZGV4T2YoXCJmaW5hbmNlXCIpPjApe1xyXG4gICAgICAgICAgICAgICAgc291cmNlSWQgPSA1O1xyXG4gICAgICAgICAgICB9ZWxzZSBpZihzb3VyY2VGcm9tLmluZGV4T2YoXCJzdG9ja1wiKT4wKXtcclxuICAgICAgICAgICAgICAgIHNvdXJjZUlkID0gNjtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBzb3VyY2VJZCA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICQoJyNwcmV2aWV3X2xpc3QgaW1nJykuZWFjaChmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBhdHRhY2htZW50QXJyLnB1c2goJCh0aGlzKS5hdHRyKFwic3JjXCIpIHx8IFwiXCIpXHJcbiAgICAgICAgfSlcclxuICAgICAgICBcclxuICAgICAgICB2YXIgZFBvc3QgPSB7XHJcbiAgICAgICAgICAgIFwiYWN0aW9uXCI6ICdwb3N0JyxcclxuICAgICAgICAgICAgXCJ1c2VySWRcIjogdXNlcklkLFxyXG4gICAgICAgICAgICBcInVzZXJOYW1lXCI6IHVzZXJOYW1lLFxyXG4gICAgICAgICAgICBcImlzR3Vlc3RcIjogaXNHdWVzdCxcclxuICAgICAgICAgICAgXCJmZWVkYmFja1R5cGVcIjogZmVlZGJhY2tUeXBlLFxyXG4gICAgICAgICAgICBcInRiQ29udGVudFwiOiBlc2NhcGUoJChcIiNjb250ZW50XCIpLnZhbCgpKSxcclxuICAgICAgICAgICAgXCJ0ZWxcIjogdGVsLFxyXG4gICAgICAgICAgICBcImVtYWlsXCI6IGVtYWlsLFxyXG4gICAgICAgICAgICBcInNvdXJjZUZyb21cIjogc291cmNlRnJvbSxcclxuICAgICAgICAgICAgXCJzb3VyY2VJZFwiOiAhIXNvdXJjZUlkID8gc291cmNlSWQgOiAxLFxyXG4gICAgICAgICAgICBcImpzb25pbmZvXCI6IGpzb25pbmZvLFxyXG4gICAgICAgICAgICBcInVzZXJBZ2VudFwiOiBlc2NhcGUobmF2aWdhdG9yLnVzZXJBZ2VudCksXHJcbiAgICAgICAgICAgIFwiZmxhc2hWZXJzaW9uXCI6IGdldEZsYXNoVmVyc2lvbigpLFxyXG4gICAgICAgICAgICBcInNjcmVlbldpZHRoXCI6IHNjcmVlbi53aWR0aCxcclxuICAgICAgICAgICAgXCJzY3JlZW5IZWlnaHRcIjogc2NyZWVuLmhlaWdodCxcclxuICAgICAgICAgICAgXCJpc0Nvb2tpZVN1cHBvcnRlZFwiOiBjaGVja0Nvb2tpZSgpLFxyXG4gICAgICAgICAgICBcImF0dGFjaG1lbnRcIjphdHRhY2htZW50QXJyLmpvaW4oXCIsXCIpLFxyXG4gICAgICAgICAgICBcImNyZWF0ZVN5c3RlbVwiOiBcIuS4nOaWuei0ouWvjOe9keermeeVmeiogOWPjemmiOezu+e7n1wiXHJcbiAgICAgICAgfTtcclxuICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICB1cmw6IFwiL0hhbmRsZXIvRmVlZGJhY2tIYW5kbGVyV2l0aG91dEZpbGVzLmFzaHg/cj1cIiArIE1hdGgucmFuZG9tKCksXHJcbiAgICAgICAgICAgIHR5cGU6ICdwb3N0JyxcclxuICAgICAgICAgICAgLy8gZGF0YVR5cGU6J2pzb24nLFxyXG4gICAgICAgICAgICBkYXRhOiBkUG9zdCxcclxuICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgJCgnI2J0blJlc2V0JykudHJpZ2dlcihcImNsaWNrXCIpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIGlmKGRhdGEgJiYgZGF0YS5kYXRhID09PSB0cnVlKXtcclxuICAgICAgICAgICAgICAgIC8vICAgICAkKFwiLm1vZGxlLXN1Y2Nlc3NcIikuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgLy8gfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgYWxlcnQoZGF0YS5kYXRhKVxyXG4gICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEgPT0gXCJSMDAwXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBhbGVydCgkTVNHLlIwMDApO1xyXG4gICAgICAgICAgICAgICAgICAgICQoXCIubW9kbGUtc3VjY2Vzc1wiKS5zaG93KCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEgPT0gXCJSMDAxXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydCgkTVNHLlIwMDEpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhID09IFwiRTAwMVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoJE1TRy5FMDAxKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoJE1TRy5SMDAyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUgJiYgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgICAgICAgICAgYWxlcnQoXCLlr7nkuI3otbfvvIzmj5DkuqTlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9KTtcclxuXHJcbiAgICAkKCcjYnRuUmVzZXQnKS5jbGljayhmdW5jdGlvbigpIHtcclxuICAgICAgICAkKFwiI2NvbnRlbnRcIikudmFsKCcnKTtcclxuICAgICAgICAkKFwiI2VtYWlsXCIpLnZhbCgnJyk7XHJcbiAgICAgICAgJChcIiNwaG9uZU51bWJlclwiKS52YWwoJycpO1xyXG4gICAgICAgICQoXCIjYnRuU3VibWl0XCIpLmF0dHIoXCJkaXNhYmxlZFwiLCBcImRpc2FibGVkXCIpO1xyXG4gICAgICAgICQoXCIjYnRuUmVzZXRcIikuYXR0cihcImRpc2FibGVkXCIsIFwiZGlzYWJsZWRcIik7XHJcbiAgICAgICAgJChcIiNwcmV2aWV3X2xpc3QgLmltZ1VwXCIpLnJlbW92ZSgpO1xyXG4gICAgICAgICQoJyNpbnNlcnRpbWdkaXYgLnN0ZXAyJykuaGlkZSgpO1xyXG4gICAgICAgICQoJyNpbnNlcnRpbWdkaXYgLnN0ZXAxJykuc2hvdygpO1xyXG4gICAgfSk7XHJcbiAgICAkKFwiLmJ0bi1zdWNjZXNzXCIpLmNsaWNrKGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICQoXCIubW9kbGUtc3VjY2Vzc1wiKS5oaWRlKCk7XHJcbiAgICB9KVxyXG5cclxuXHJcbiAgICAkKCcubW9kbGUtc3VjY2VzcycpLm9uKCdjbGljaycsJy5tb2RsZS1jb250YWluZXInLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgJChcIi5tb2RsZS1zdWNjZXNzXCIpLmhpZGUoKTtcclxuICAgIH0pXHJcbiBcclxuICBcclxuXHJcbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLGZ1bmN0aW9uKGUpe1xyXG4gICAgICAgIHZhciB0YXJnZXQgPSAkKGUudGFyZ2V0KTtcclxuXHJcbiAgICAgICAgaWYodGFyZ2V0LmlzKCcjaWNvbkltZycpKXtcclxuICAgICAgICAgICAgaWYoIWhhc1Nob3cpe1xyXG4gICAgICAgICAgICAgICAgaGFzU2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAkKCcjaW5zZXJ0aW1nZGl2Jykuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgdXBsb2FkT25lKCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgJCgnI2luc2VydGltZ2RpdicpLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIGhhc1Nob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNlIGlmKHRhcmdldC5pcygncC5kZWxldGUnKSl7XHJcblxyXG4gICAgICAgICAgICB2YXIgbGkgPSB0YXJnZXQucGFyZW50KFwibGlcIik7XHJcbiAgICAgICAgICAgIGxpLnJlbW92ZSgpO1xyXG5cclxuICAgICAgICAgICAgJCgnI3ByZXZpZXdfbGlzdCAudXBsb2FkVHdvTGknKS5zaG93KCk7XHJcbiAgICAgICAgICAgIGlmKCQoJyNwcmV2aWV3X2xpc3QgbGknKS5sZW5ndGggPD0gMSl7XHJcbiAgICAgICAgICAgICAgICAkKCcjaW5zZXJ0aW1nZGl2IC5zdGVwMicpLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgICQoJyNpbnNlcnRpbWdkaXYgLnN0ZXAxJykuc2hvdygpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9ZWxzZSBpZighdGFyZ2V0LmlzKCcjaW5zZXJ0aW1nZGl2JykgJiYgIXRhcmdldC5wYXJlbnRzKCkuaXMoJyNpbnNlcnRpbWdkaXYnKSAmJiAhdGFyZ2V0LmlzKFwiI2Fic0ZpbGVJbnB1dFwiKSl7XHJcbiAgICAgICAgICAgIGlmKGhhc1Nob3cpe1xyXG4gICAgICAgICAgICAgICAgJCgnI2luc2VydGltZ2RpdicpLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIGhhc1Nob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0pXHJcbiAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uIChtZXNzYWdlLCBzb3VyY2UpIHtcclxuICAgICAgIGNvbnNvbGUgJiYgIGNvbnNvbGUubG9nKG1lc3NhZ2UsIHNvdXJjZSlcclxuICAgIC8vICAgIGhpZGVVcGxvYWRMb2FkaW5nKCk7XHJcbiAgICAvLyAgICBhbGVydChcIumhtemdouWPkeeUn+mUmeivryFcIik7XHJcbiAgICAvLyAgICBsb2NhdGlvbi5yZWxvYWQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBcclxufSlcclxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9qcy9jb3JwLmpzXG4vLyBtb2R1bGUgaWQgPSA0NVxuLy8gbW9kdWxlIGNodW5rcyA9IDQzIl0sInNvdXJjZVJvb3QiOiIifQ=="],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","45","Page","hasEmailBox","init","slidingEventPlus","bingEmail","$","on","this","addClass","siblings","removeClass","keyup","e","val","length","removeAttr","attr","showEmailBox","list","append","html","remove","widthVaule","width","show","css","offset","top","left","displayText","each","empty","mouseover","mouseout","fillText","textId","selectObj","_txtemail__suffix","parent","innerHTML","focus","fillEmail","email","blur","setTimeout","sugEmail","sugEmail1","perfix","keyCode","indexOf","substring","keydown","$list","$regkeylist","is","find","next","stopPropagation","prev","hasShow","isShowLoading","showUploadLoading","hideUploadLoading","hide","uploadOne","AjaxUpload","action","responseType","onSubmit","file","ext","test","alert","onComplete","filename","json","message","data","before","$MSG","sourceId","cVals","dPost","cookieEnabled","content","isGuest","cVal","key","cookieArray","document","cookie","split","arr","replace","unescape","decodeURI","getCookie","tel","sourceFrom","referrer","attachmentArr","uId","uName","trim","t","r","filter","tb_show","Math","random","E001","checkword","mailAddress","checkEmail","push","userId","userName","feedbackType","tbContent","escape","jsoninfo","userAgent","navigator","flashVersion","swf","flashVer","NaN","toLowerCase","window","ActiveXObject","Number","GetVariable","plugins","description","len","ver","isNaN","getFlashVersion","screenWidth","screen","screenHeight","height","isCookieSupported","attachment","join","createSystem","ajax","url","type","success","trigger","error","err","console","click","target","parents","onerror","source"],"mappings":"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"}