/**
 * CyberChef - The Cyber Swiss Army Knife
 *
 * @copyright Crown Copyright 2016
 * @license Apache-2.0
 *
 *   Copyright 2016 Crown Copyright
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1523)}({0:function(e,t){function r(t){return e.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(t)}e.exports=r},1:function(e,t,r){"use strict";(function(e,n,i){r.d(t,"c",(function(){return w})),r.d(t,"d",(function(){return A})),r.d(t,"e",(function(){return B})),r.d(t,"a",(function(){return E}));var o=r(8),a=r.n(o),s=r(11),u=r.n(s),c=r(2),l=r.n(c),f=r(3),h=r.n(f),p=r(26),d=r.n(p),m=r(16),v=r(21),y=r(29),g=r(28),b=function(){function t(){l()(this,t)}var r;return h()(t,null,[{key:"chr",value:function(e){if(e>65535){e-=65536;var t=String.fromCharCode(e>>>10&1023|55296);return e=56320|1023&e,t+String.fromCharCode(e)}return String.fromCharCode(e)}},{key:"ord",value:function(e){if(2===e.length){var t=e.charCodeAt(0),r=e.charCodeAt(1);if(t>=55296&&t<56320&&r>=56320&&r<57344)return 1024*(t-55296)+r-56320+65536}return e.charCodeAt(0)}},{key:"padBytesRight",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=new Array(t);return n.fill(r),[...e].forEach((function(e,t){n[t]=e})),n}},{key:"truncate",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"...";return e.length>t&&(e=e.slice(0,t-r.length)+r),e}},{key:"hex",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return(e="string"==typeof e?t.ord(e):e).toString(16).padStart(r,"0")}},{key:"bin",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return(e="string"==typeof e?t.ord(e):e).toString(2).padStart(r,"0")}},{key:"printable",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];x()&&window.app&&!window.app.options.treatAsUtf8&&(e=t.byteArrayToChars(t.strToByteArray(e)));var n=/[\0-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g,i=/[\x09-\x10\x0D\u2028\u2029]/g;return e=e.replace(n,"."),r||(e=e.replace(i,".")),e}},{key:"parseEscapedChars",value:function(e){return e.replace(/\\([bfnrtv'"]|[0-3][0-7]{2}|[0-7]{1,2}|x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]{1,6}\}|\\)/g,(function(e,t){switch(t[0]){case"\\":return"\\";case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":return String.fromCharCode(parseInt(t,8));case"b":return"\b";case"t":return"\t";case"n":return"\n";case"v":return"\v";case"f":return"\f";case"r":return"\r";case'"':return'"';case"'":return"'";case"x":return String.fromCharCode(parseInt(t.substr(1),16));case"u":return"{"===t[1]?String.fromCodePoint(parseInt(t.slice(2,-1),16)):String.fromCharCode(parseInt(t.substr(1),16))}}))}},{key:"escapeRegex",value:function(e){return e.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}},{key:"expandAlphRange",value:function(e){for(var r=[],n=0;n<e.length;n++)if(n<e.length-2&&"-"===e[n+1]&&"\\"!==e[n]){for(var i=t.ord(e[n]),o=t.ord(e[n+2]),a=i;a<=o;a++)r.push(t.chr(a));n+=2}else n<e.length-2&&"\\"===e[n]&&"-"===e[n+1]?(r.push("-"),n++):r.push(e[n]);return r}},{key:"convertToByteArray",value:function(e,r){switch(r.toLowerCase()){case"binary":return Object(g.a)(e);case"hex":return Object(v.a)(e);case"decimal":return Object(y.a)(e);case"base64":return Object(m.a)(e,null,"byteArray");case"utf8":return t.strToUtf8ByteArray(e);case"latin1":default:return t.strToByteArray(e)}}},{key:"convertToByteString",value:function(e,r){switch(r.toLowerCase()){case"binary":return t.byteArrayToChars(Object(g.a)(e));case"hex":return t.byteArrayToChars(Object(v.a)(e));case"decimal":return t.byteArrayToChars(Object(y.a)(e));case"base64":return t.byteArrayToChars(Object(m.a)(e,null,"byteArray"));case"utf8":return d.a.encode(e);case"latin1":default:return e}}},{key:"strToArrayBuffer",value:function(e){for(var r,n=new Uint8Array(e.length),i=e.length;i--;)if(r=e.charCodeAt(i),n[i]=r,r>255)return t.strToUtf8ArrayBuffer(e);return n.buffer}},{key:"strToUtf8ArrayBuffer",value:function(e){var r=d.a.encode(e);return e.length!==r.length&&(A()?self.setOption("attemptHighlight",!1):x()&&(window.app.options.attemptHighlight=!1)),t.strToArrayBuffer(r)}},{key:"strToByteArray",value:function(e){for(var r,n=new Array(e.length),i=e.length;i--;)if(r=e.charCodeAt(i),n[i]=r,r>255)return t.strToUtf8ByteArray(e);return n}},{key:"strToUtf8ByteArray",value:function(e){var r=d.a.encode(e);return e.length!==r.length&&(A()?self.setOption("attemptHighlight",!1):x()&&(window.app.options.attemptHighlight=!1)),t.strToByteArray(r)}},{key:"strToCharcode",value:function(e){for(var r=[],n=0;n<e.length;n++){var i=e.charCodeAt(n);if(n<e.length-1&&i>=55296&&i<56320){var o=e[n+1].charCodeAt(0);o>=56320&&o<57344&&(i=t.ord(e[n]+e[++n]))}r.push(i)}return r}},{key:"byteArrayToUtf8",value:function(e){var r=t.byteArrayToChars(e);try{var n=d.a.decode(r);return r.length!==n.length&&(A()?self.setOption("attemptHighlight",!1):x()&&(window.app.options.attemptHighlight=!1)),n}catch(e){return r}}},{key:"byteArrayToChars",value:function(e){if(!e)return"";for(var t="",r=0;r<e.length;)t+=String.fromCharCode(e[r++]);return t}},{key:"arrayBufferToStr",value:function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=new Uint8Array(e);return r?t.byteArrayToUtf8(n):t.byteArrayToChars(n)}},{key:"calculateShannonEntropy",value:function(e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var t,r=[],n=new Array(256).fill(0);for(t=0;t<e.length;t++)n[e[t]]++;for(t=0;t<n.length;t++)n[t]>0&&r.push(n[t]/e.length);var i,o=0;for(t=0;t<r.length;t++)o+=(i=r[t])*Math.log(i)/Math.log(2);return-o}},{key:"parseCSV",value:function(e){var t,r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[","],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:["\n","\r"],o=!1,a=!1,s="",u=[],c=[];e.length&&"\ufeff"===e[0]&&(e=e.substr(1));for(var l=0;l<e.length;l++)t=e[l],r=e[l+1]||"",o?(s+=t,o=!1):'"'!==t||a?'"'===t&&a?'"'===r?o=!0:a=!1:!a&&n.indexOf(t)>=0?(u.push(s),s=""):!a&&i.indexOf(t)>=0?(u.push(s),s="",c.push(u),u=[],i.indexOf(r)>=0&&r!==t&&l++):s+=t:a=!0;return u.length&&(u.push(s),c.push(u)),c}},{key:"stripHtmlTags",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t&&(e=e.replace(/<(script|style)[^>]*>.*<\/(script|style)>/gim,"")),e.replace(/<[^>]+>/g,"")}},{key:"escapeHtml",value:function(e){var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;","`":"&#x60;"};return e.replace(/[&<>"'/`]/g,(function(e){return t[e]}))}},{key:"unescapeHtml",value:function(e){var t={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x2F;":"/","&#x60;":"`"};return e.replace(/&#?x?[a-z0-9]{2,4};/gi,(function(e){return t[e]||e}))}},{key:"encodeURIFragment",value:function(e){var t={"%2D":"-","%2E":".","%5F":"_","%7E":"~","%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2C":",","%3B":";","%3A":":","%40":"@","%2F":"/","%3F":"?"};return(e=encodeURIComponent(e)).replace(/%[0-9A-F]{2}/g,(function(e){return t[e]||e}))}},{key:"generatePrettyRecipe",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r="",n="",i="",o="",a="";return e.forEach((function(e){n=e.op.replace(/ /g,"_"),i=JSON.stringify(e.args).slice(1,-1).replace(/'/g,"\\'").replace(/"((?:[^"\\]|\\.)*)"/g,"'$1'").replace(/\\"/g,'"'),o=e.disabled?"/disabled":"",a=e.breakpoint?"/breakpoint":"",r+=`${n}(${i}${o}${a})`,t&&(r+="\n")})),r}},{key:"parseRecipeConfig",value:function(e){if(0===(e=e.trim()).length)return[];if("["===e[0])return JSON.parse(e);var t,r;e=e.replace(/\n/g,"");for(var n=/([^(]+)\(((?:'[^'\\]*(?:\\.[^'\\]*)*'|[^)/'])*)(\/[^)]+)?\)/g,i=[];t=n.exec(e);){r="["+(r=t[2].replace(/"/g,'\\"').replace(/(^|,|{|:)'/g,'$1"').replace(/([^\\]|(?:\\\\)+)'(,|:|}|$)/g,'$1"$2').replace(/\\'/g,"'"))+"]";var o={op:t[1].replace(/_/g," "),args:JSON.parse(r)};t[3]&&t[3].indexOf("disabled")>0&&(o.disabled=!0),t[3]&&t[3].indexOf("breakpoint")>0&&(o.breakpoint=!0),i.push(o)}return i}},{key:"displayFilesAsHTML",value:(r=u()(a.a.mark((function e(r){var n,i,o,s,c;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){return`<div class='card' style='white-space: normal;'>\n                    <div class='card-header'>\n                        <h6 class="mb-0">\n                            ${t.escapeHtml(e.name)}\n                        </h6>\n                    </div>\n                </div>`},i=function(e,r){if(r.startsWith("image")){var n="data:";return n+=r+";","<img style='max-width: 100%;' src='"+(n+="base64,"+Object(m.b)(e))+"'>"}return`<pre>${t.escapeHtml(t.arrayBufferToStr(e.buffer))}</pre>`},o=function(){var e=u()(a.a.mark((function e(r,n){var o,s,u,c;return a.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.readFile(r);case 2:return o=e.sent,s=new Blob([o],{type:r.type||"octet/stream"}),u=URL.createObjectURL(s),c=`<div class='card' style='white-space: normal;'>\n                    <div class='card-header' id='heading${n}'>\n                        <h6 class='mb-0'>\n                            <a class='collapsed'\n                                data-toggle='collapse'\n                                href='#collapse${n}'\n                                aria-expanded='false'\n                                aria-controls='collapse${n}'\n                                title="Show/hide contents of '${t.escapeHtml(r.name)}'">\n                                ${t.escapeHtml(r.name)}</a>\n                            <span class='float-right' style="margin-top: -3px">\n                                ${r.size.toLocaleString()} bytes\n                                <a title="Download ${t.escapeHtml(r.name)}"\n                                    href="${u}"\n                                    download="${t.escapeHtml(r.name)}"\n                                    data-toggle="tooltip">\n                                    <i class="material-icons" style="vertical-align: bottom">save</i>\n                                </a>\n                                <a title="Move to input"\n                                    href="#"\n                                    blob-url="${u}"\n                                    file-name="${t.escapeHtml(r.name)}"\n                                    class="extract-file"\n                                    data-toggle="tooltip">\n                                    <i class="material-icons" style="vertical-align: bottom">open_in_browser</i>\n                                </a>\n                            </span>\n                        </h6>\n                    </div>\n                    <div id='collapse${n}' class='collapse' aria-labelledby='heading${n}' data-parent="#files">\n                        <div class='card-body'>\n                            ${i(o,r.type)}\n                        </div>\n                    </div>\n                </div>`,e.abrupt("return",c);case 7:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),s=`<div style='padding: 5px; white-space: normal;'>\n                ${r.length} file(s) found\n            </div><div id="files" style="padding: 20px">`,c=0;case 5:if(!(c<r.length)){e.next=17;break}if(!r[c].name.endsWith("/")){e.next=10;break}s+=n(r[c]),e.next=14;break;case 10:return e.t0=s,e.next=13,o(r[c],c);case 13:s=e.t0+=e.sent;case 14:c++,e.next=5;break;case 17:return e.abrupt("return",s+="</div>");case 18:case"end":return e.stop()}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"parseURIParams",value:function(e){if(""===e)return{};"?"!==e[0]&&"#"!==e[0]||(e=e.substr(1));for(var t=e.split("&"),r={},n=0;n<t.length;n++){var i=t[n].split("=");2!==i.length?r[t[n]]=!0:r[i[0]]=decodeURIComponent(i[1].replace(/\+/g," "))}return r}},{key:"readFile",value:function(t){return w()?e.from(t).buffer:new Promise((function(e,r){var n=new FileReader,i=new Uint8Array(t.size),o=0,a=function(){if(o>=t.size)e(i);else{var r=t.slice(o,o+10485760);n.readAsArrayBuffer(r)}};n.onload=function(e){i.set(new Uint8Array(n.result),o),o+=10485760,a()},n.onerror=function(e){r(n.error.message)},a()}))}},{key:"readFileSync",value:function(e){if(!w())throw new TypeError("Browser environment cannot support readFileSync");return Uint8Array.from(e.data).buffer}},{key:"mod",value:function(e,t){return(e%t+t)%t}},{key:"gcd",value:function(e,r){return r?t.gcd(r,e%r):e}},{key:"modInv",value:function(e,t){e%=t;for(var r=1;r<t;r++)if(e*r%26==1)return r}},{key:"charRep",value:function(e){return{Space:" ",Percent:"%",Comma:",","Semi-colon":";",Colon:":",Tab:"\t","Line feed":"\n",CRLF:"\r\n","Forward slash":"/",Backslash:"\\","0x":"0x","\\x":"\\x","Nothing (separate chars)":"",None:""}[e]}},{key:"regexRep",value:function(e){return{Space:/\s+/g,Percent:/%/g,Comma:/,/g,"Semi-colon":/;/g,Colon:/:/g,"Line feed":/\n/g,CRLF:/\r\n/g,"Forward slash":/\//g,Backslash:/\\/g,"0x with comma":/,?0x/g,"0x":/0x/g,"\\x":/\\x/g,None:/\s+/g}[e]}}]),t}();function w(){return void 0!==n&&null!=n.versions&&null!=n.versions.node}function x(){return"object"==typeof window}function A(){return"function"==typeof importScripts}function B(e){A()?self.sendStatusMessage(e):x()?app.alert(e,1e4):w()&&!i.TESTING&&console.debug(e)}t.b=b,Array.prototype.unique=function(){for(var e={},t=[],r=0,n=this.length;r<n;r++)Object.prototype.hasOwnProperty.call(e,this[r])||(t.push(this[r]),e[this[r]]=1);return t},Array.prototype.max=function(){return Math.max.apply(null,this)},Array.prototype.min=function(){return Math.min.apply(null,this)},Array.prototype.sum=function(){return this.reduce((function(e,t){return e+t}),0)},Array.prototype.equals=function(e){if(!e)return!1;var t=this.length;if(t!==e.length)return!1;for(;t--;)if(this[t]!==e[t])return!1;return!0},String.prototype.count=function(e){return this.split(e).length-1};var F={};function E(e,t,r,n,i){return function(){clearTimeout(F[r]),F[r]=setTimeout((function(){e.apply(n,i)}),t)}}String.prototype.padStart||(String.prototype.padStart=function(e,t){return e>>=0,t=String(void 0!==t?t:" "),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),t.slice(0,e)+String(this))}),String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:" "),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})}).call(this,r(12).Buffer,r(19),r(24))},11:function(e,t){function r(e,t,r,n,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,i)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,u,"next",e)}function u(e){r(a,i,o,s,u,"throw",e)}s(void 0)}))}}},12:function(e,t,r){"use strict";(function(e){
/*!
 * The buffer module from node.js, for the browser.
 *
 * @author   Feross Aboukhadijeh <http://feross.org>
 * @license  MIT
 */
var n=r(48),i=r(49),o=r(39);function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=u.prototype:(null===e&&(e=new u(t)),e.length=t),e}function u(e,t,r){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return c(this,e,t,r)}function c(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);u.TYPED_ARRAY_SUPPORT?(e=t).__proto__=u.prototype:e=h(e,t);return e}(e,t,r,n):"string"==typeof t?function(e,t,r){"string"==typeof r&&""!==r||(r="utf8");if(!u.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|d(t,r),i=(e=s(e,n)).write(t,r);i!==n&&(e=e.slice(0,i));return e}(e,t,r):function(e,t){if(u.isBuffer(t)){var r=0|p(t.length);return 0===(e=s(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?s(e,0):h(e,t);if("Buffer"===t.type&&o(t.data))return h(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(l(t),e=s(e,t<0?0:0|p(t)),!u.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function h(e,t){var r=t.length<0?0:0|p(t.length);e=s(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function p(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return j(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return X(e).length;default:if(n)return j(e).length;t=(""+t).toLowerCase(),n=!0}}function m(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,r);case"utf8":case"utf-8":return S(this,t,r);case"ascii":return R(this,t,r);case"latin1":case"binary":return k(this,t,r);case"base64":return E(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function v(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function y(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=u.from(t,n)),u.isBuffer(t))return 0===t.length?-1:g(e,t,r,n,i);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):g(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function g(e,t,r,n,i){var o,a=1,s=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var l=-1;for(o=r;o<s;o++)if(c(e,o)===c(t,-1===l?0:o-l)){if(-1===l&&(l=o),o-l+1===u)return l*a}else-1!==l&&(o-=o-l),l=-1}else for(r+u>s&&(r=s-u),o=r;o>=0;o--){for(var f=!0,h=0;h<u;h++)if(c(e,o+h)!==c(t,h)){f=!1;break}if(f)return o}return-1}function b(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a<n;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[r+a]=s}return a}function w(e,t,r,n){return G(j(t,e.length-r),e,r,n)}function x(e,t,r,n){return G(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function A(e,t,r,n){return x(e,t,r,n)}function B(e,t,r,n){return G(X(t),e,r,n)}function F(e,t,r,n){return G(function(e,t){for(var r,n,i,o=[],a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function E(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function S(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var o,a,s,u,c=e[i],l=null,f=c>239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(o=e[i+1]))&&(u=(31&c)<<6|63&o)>127&&(l=u);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(u=(15&c)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return r}(n)}t.Buffer=u,t.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},t.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,r){return c(null,e,t,r)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,r){return function(e,t,r,n){return l(t),t<=0?s(e,t):void 0!==r?"string"==typeof n?s(e,t).fill(r,n):s(e,t).fill(r):s(e,t)}(null,e,t,r)},u.allocUnsafe=function(e){return f(null,e)},u.allocUnsafeSlow=function(e){return f(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i<o;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!o(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=u.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var a=e[r];if(!u.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},u.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},u.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},u.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?S(this,0,e):m.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},u.prototype.compare=function(e,t,r,n,i){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),c=this.slice(n,i),l=e.slice(t,r),f=0;f<s;++f)if(c[f]!==l[f]){o=c[f],a=l[f];break}return o<a?-1:a<o?1:0},u.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},u.prototype.indexOf=function(e,t,r){return y(this,e,t,r,!0)},u.prototype.lastIndexOf=function(e,t,r){return y(this,e,t,r,!1)},u.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return w(this,e,t,r);case"ascii":return x(this,e,t,r);case"latin1":case"binary":return A(this,e,t,r);case"base64":return B(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function R(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function k(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function T(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",o=t;o<r;++o)i+=N(e[o]);return i}function C(e,t,r){for(var n=e.slice(t,r),i="",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}function I(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function O(e,t,r,n,i,o){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function P(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i<o;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function D(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i<o;++i)e[r+i]=t>>>8*(n?i:3-i)&255}function M(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function L(e,t,r,n,o){return o||M(e,0,r,4),i.write(e,t,r,n,23,4),r+4}function _(e,t,r,n,o){return o||M(e,0,r,8),i.write(e,t,r,n,52,8),r+8}u.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),u.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=u.prototype;else{var i=t-e;r=new u(i,void 0);for(var o=0;o<i;++o)r[o]=this[o+e]}return r},u.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return n},u.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},u.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=this[e],i=1,o=0;++o<t&&(i*=256);)n+=this[e+o]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*t)),n},u.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||I(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||O(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o<r&&(i*=256);)this[t+o]=e/i&255;return t+r},u.prototype.writeUIntBE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||O(this,e,t,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r},u.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);O(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o<r&&(a*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},u.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);O(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},u.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||O(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,r){return L(this,e,t,!0,r)},u.prototype.writeFloatBE=function(e,t,r){return L(this,e,t,!1,r)},u.prototype.writeDoubleLE=function(e,t,r){return _(this,e,t,!0,r)},u.prototype.writeDoubleBE=function(e,t,r){return _(this,e,t,!1,r)},u.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,o=n-r;if(this===e&&r<t&&t<n)for(i=o-1;i>=0;--i)e[i+t]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+o),t);return o},u.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!u.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var o;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o<r;++o)this[o]=e;else{var a=u.isBuffer(e)?e:j(new u(e,n).toString()),s=a.length;for(o=0;o<r-t;++o)this[o+t]=a[o%s]}return this};var U=/[^+\/0-9A-Za-z-_]/g;function N(e){return e<16?"0"+e.toString(16):e.toString(16)}function j(e,t){var r;t=t||1/0;for(var n=e.length,i=null,o=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}}).call(this,r(24))},14:function(e,t,r){var n=r(50),i=r(51),o=r(52),a=r(54);e.exports=function(e,t){return n(e)||i(e,t)||o(e,t)||a()}},15:function(e,t,r){"use strict";var n=r(8),i=r.n(n),o=r(11),a=r.n(o),s=r(2),u=r.n(s),c=r(3),l=r.n(c),f=r(1),h=r(25),p=r.n(h),d=r(4),m=r.n(d),v=r(5),y=r.n(v),g=r(0),b=r.n(g);function w(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}
/**
 * Custom error type for handling Dish type errors.
 * i.e. where the Dish cannot be successfully translated between types
 *
 * @author n1474335 [n1474335@gmail.com]
 * @copyright Crown Copyright 2018
 * @license Apache-2.0
 */
var x=function(e){m()(r,e);var t=w(r);function r(){var e;u()(this,r);for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return(e=t.call(this,...i)).type="DishError",Error.captureStackTrace&&Error.captureStackTrace(p()(e),r),e}return r}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Error)),A=r(17),B=r.n(A),F=r(20),E=r(27),S=r.n(E),R=function(){function e(){u()(this,e)}return l()(e,null,[{key:"checkForValue",value:function(e){if(void 0===e)throw new Error("only use translation methods with .bind")}},{key:"toArrayBuffer",value:function(){throw new Error("toArrayBuffer has not been implemented")}},{key:"fromArrayBuffer",value:function(){throw new Error("fromArrayBuffer has not been implemented")}}]),e}();function k(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var T=function(e){m()(r,e);var t=k(r);function r(){return u()(this,r),t.apply(this,arguments)}return l()(r,null,[{key:"toArrayBuffer",value:function(){r.checkForValue(this.value),this.value=new Uint8Array(this.value).buffer}},{key:"fromArrayBuffer",value:function(){r.checkForValue(this.value),this.value=Array.prototype.slice.call(new Uint8Array(this.value))}}]),r}(R);function C(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var I=function(e){m()(r,e);var t=C(r);function r(){return u()(this,r),t.apply(this,arguments)}return l()(r,null,[{key:"toArrayBuffer",value:function(){r.checkForValue(this.value),this.value=B.a.isBigNumber(this.value)?f.b.strToArrayBuffer(this.value.toFixed()):new ArrayBuffer}},{key:"fromArrayBuffer",value:function(e){r.checkForValue(this.value);try{this.value=new B.a(f.b.arrayBufferToStr(this.value,!e))}catch(e){this.value=new B.a(NaN)}}}]),r}(R);function O(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var P=function(e){m()(r,e);var t=O(r);function r(){return u()(this,r),t.apply(this,arguments)}return l()(r,null,[{key:"toArrayBuffer",value:function(){var e=this;if(r.checkForValue(this.value),!Object(f.c)())return new Promise((function(t,r){f.b.readFile(e.value).then((function(t){return e.value=t.buffer})).then(t).catch(r)}));this.value=f.b.readFileSync(this.value)}},{key:"fromArrayBuffer",value:function(){r.checkForValue(this.value),this.value=new File(this.value,"unknown")}}]),r}(R);function D(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var M=function(e){m()(r,e);var t=D(r);function r(){return u()(this,r),t.apply(this,arguments)}return l()(r,null,[{key:"toArrayBuffer",value:function(){r.checkForValue(this.value),this.value=this.value?f.b.strToArrayBuffer(this.value):new ArrayBuffer}},{key:"fromArrayBuffer",value:function(e){r.checkForValue(this.value),this.value=this.value?f.b.arrayBufferToStr(this.value,!e):""}}]),r}(R);function L(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var _=function(e){m()(r,e);var t=L(r);function r(){return u()(this,r),t.apply(this,arguments)}return l()(r,null,[{key:"toArrayBuffer",value:function(){r.checkForValue(this.value),this.value=this.value?f.b.strToArrayBuffer(f.b.unescapeHtml(f.b.stripHtmlTags(this.value,!0))):new ArrayBuffer}}]),r}(M);function U(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var N=function(e){m()(r,e);var t=U(r);function r(){return u()(this,r),t.apply(this,arguments)}return l()(r,null,[{key:"toArrayBuffer",value:function(){r.checkForValue(this.value),this.value=void 0!==this.value?f.b.strToArrayBuffer(JSON.stringify(this.value,null,4)):new ArrayBuffer}},{key:"fromArrayBuffer",value:function(e){r.checkForValue(this.value),this.value=JSON.parse(f.b.arrayBufferToStr(this.value,!e))}}]),r}(R);function j(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var X=function(e){m()(o,e);var t,r,n=j(o);function o(){return u()(this,o),n.apply(this,arguments)}return l()(o,null,[{key:"toArrayBuffer",value:(r=a()(i.a.mark((function e(){return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o.checkForValue(this.value),!Object(f.c)()){e.next=5;break}this.value=this.value.map((function(e){return Uint8Array.from(e.data)})),e.next=8;break;case 5:return e.next=7,o.concatenateTypedArraysWithTypedElements(...this.value);case 7:this.value=e.sent;case 8:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"fromArrayBuffer",value:function(){o.checkForValue(this.value),this.value=[new File(this.value,"unknown")]}},{key:"concatenateTypedArraysWithTypedElements",value:(t=a()(i.a.mark((function e(){var t,r,n,o,a,s,u,c,l,h,p,d,m,v=arguments;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(t=0,r=v.length,n=new Array(r),o=0;o<r;o++)n[o]=v[o];for(a=0,s=n;a<s.length;a++)u=s[a],t+=u.size;c=new Uint8Array(t),l=0,h=0,p=n;case 6:if(!(h<p.length)){e.next=16;break}return d=p[h],e.next=10,f.b.readFile(d);case 10:m=e.sent,c.set(m,l),l+=m.length;case 13:h++,e.next=6;break;case 16:return e.abrupt("return",c);case 17:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"concatenateTypedArrays",value:function(){for(var e=0,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];for(var i=0,o=r;i<o.length;i++){var a=o[i];e+=a.length}for(var s=new Uint8Array(e),u=0,c=0,l=r;c<l.length;c++){var f=l[c];s.set(f,u),u+=f.length}return s}}]),o}(R);function G(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=b()(e);if(t){var i=b()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return y()(this,r)}}var $=function(e){m()(r,e);var t=G(r);function r(){return u()(this,r),t.apply(this,arguments)}return l()(r,null,[{key:"toArrayBuffer",value:function(){r.checkForValue(this.value),this.value="number"==typeof this.value?f.b.strToArrayBuffer(this.value.toString()):new ArrayBuffer}},{key:"fromArrayBuffer",value:function(e){r.checkForValue(this.value),this.value=this.value?parseFloat(f.b.arrayBufferToStr(this.value,!e)):0}}]),r}(R),Y=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(u()(this,e),this.value=new ArrayBuffer(0),this.type=e.ARRAY_BUFFER,t&&Object.prototype.hasOwnProperty.call(t,"value")&&Object.prototype.hasOwnProperty.call(t,"type"))this.set(t.value,t.type);else if(t&&null!==r)this.set(t,r);else if(t){var n=e.typeEnum(t.constructor.name);this.set(t,n)}}var t;return l()(e,[{key:"get",value:function(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"string"==typeof t&&(t=e.typeEnum(t)),this.type!==t?Object(f.c)()?(this._translate(t,n),this.value):new Promise((function(e,i){r._translate(t,n).then((function(){e(r.value)})).catch(i)})):this.value}},{key:"set",value:function(t,r){if("string"==typeof r&&(r=e.typeEnum(r)),S.a.debug("Dish type: "+e.enumLookup(r)),this.value=t,this.type=r,!this.valid()){var n=f.b.truncate(JSON.stringify(this.value),25);throw new x(`Data is not a valid ${e.enumLookup(r)}: ${n}`)}}},{key:"presentAs",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.clone();return r.get(e,t)}},{key:"detectDishType",value:function(){var e=new Uint8Array(this.value.slice(0,2048)),t=Object(F.a)(e);return t.length&&t[0].mime&&"text/plain"!==!t[0].mime?t[0].mime:null}},{key:"getTitle",value:(t=a()(i.a.mark((function t(r){var n,o;return i.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n="",t.t0=this.type,t.next=t.t0===e.FILE?4:t.t0===e.LIST_FILE?6:t.t0===e.JSON?8:t.t0===e.NUMBER||t.t0===e.BIG_NUMBER?10:t.t0===e.ARRAY_BUFFER||t.t0===e.BYTE_ARRAY?12:15;break;case 4:return n=this.value.name,t.abrupt("break",26);case 6:return n=this.value.length+" file(s)",t.abrupt("break",26);case 8:return n="application/json",t.abrupt("break",26);case 10:return n=this.value.toString(),t.abrupt("break",26);case 12:if(null===(n=this.detectDishType())){t.next=15;break}return t.abrupt("break",26);case 15:return t.prev=15,(o=this.clone()).value=o.value.slice(0,256),t.next=20,o.get(e.STRING);case 20:n=t.sent,t.next=26;break;case 23:t.prev=23,t.t1=t.catch(15),S.a.error(`${e.enumLookup(this.type)} cannot be sliced. ${t.t1}`);case 26:return t.abrupt("return",n.slice(0,r));case 27:case"end":return t.stop()}}),t,this,[[15,23]])}))),function(e){return t.apply(this,arguments)})},{key:"valid",value:function(){switch(this.type){case e.BYTE_ARRAY:if(!(this.value instanceof Uint8Array||this.value instanceof Array))return!1;for(var t=0;t<this.value.length;t++)if("number"!=typeof this.value[t]||this.value[t]<0||this.value[t]>255)return!1;return!0;case e.STRING:case e.HTML:return"string"==typeof this.value;case e.NUMBER:return"number"==typeof this.value;case e.ARRAY_BUFFER:return this.value instanceof ArrayBuffer;case e.BIG_NUMBER:if(B.a.isBigNumber(this.value))return!0;if(Object.keys(this.value).sort().equals(["c","e","s"])){var r=new B.a;return r.c=this.value.c,r.e=this.value.e,r.s=this.value.s,this.value=r,!0}return!1;case e.JSON:return!0;case e.FILE:return this.value instanceof File;case e.LIST_FILE:return this.value instanceof Array&&this.value.reduce((function(e,t){return e&&t instanceof File}),!0);default:return!1}}},{key:"clone",value:function(){var t=new e;switch(this.type){case e.STRING:case e.HTML:case e.NUMBER:case e.BIG_NUMBER:t.set(this.value,this.type);break;case e.BYTE_ARRAY:case e.JSON:t.set(JSON.parse(JSON.stringify(this.value)),this.type);break;case e.ARRAY_BUFFER:t.set(this.value.slice(0),this.type);break;case e.FILE:t.set(new File([this.value],this.value.name,{type:this.value.type,lastModified:this.value.lastModified}),this.type);break;case e.LIST_FILE:t.set(this.value.map((function(e){return new File([e],e.name,{type:e.type,lastModified:e.lastModified})})),this.type);break;default:throw new x("Cannot clone Dish, unknown type")}return t}},{key:"_translate",value:function(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(S.a.debug(`Translating Dish from ${e.enumLookup(this.type)} to ${e.enumLookup(t)}`),!Object(f.c)())return new Promise((function(n,i){r._toArrayBuffer().then((function(){return r.type=e.ARRAY_BUFFER})).then((function(){r._fromArrayBuffer(t),n()})).catch(i)}));this._toArrayBuffer(),this.type=e.ARRAY_BUFFER,this._fromArrayBuffer(t,n)}},{key:"_toArrayBuffer",value:function(){var t=this,r={browser:{[e.STRING]:function(){return Promise.resolve(M.toArrayBuffer.bind(t)())},[e.NUMBER]:function(){return Promise.resolve($.toArrayBuffer.bind(t)())},[e.HTML]:function(){return Promise.resolve(_.toArrayBuffer.bind(t)())},[e.ARRAY_BUFFER]:function(){return Promise.resolve()},[e.BIG_NUMBER]:function(){return Promise.resolve(I.toArrayBuffer.bind(t)())},[e.JSON]:function(){return Promise.resolve(N.toArrayBuffer.bind(t)())},[e.FILE]:function(){return P.toArrayBuffer.bind(t)()},[e.LIST_FILE]:function(){return Promise.resolve(X.toArrayBuffer.bind(t)())},[e.BYTE_ARRAY]:function(){return Promise.resolve(T.toArrayBuffer.bind(t)())}},node:{[e.STRING]:function(){return M.toArrayBuffer.bind(t)()},[e.NUMBER]:function(){return $.toArrayBuffer.bind(t)()},[e.HTML]:function(){return _.toArrayBuffer.bind(t)()},[e.ARRAY_BUFFER]:function(){},[e.BIG_NUMBER]:function(){return I.toArrayBuffer.bind(t)()},[e.JSON]:function(){return N.toArrayBuffer.bind(t)()},[e.FILE]:function(){return P.toArrayBuffer.bind(t)()},[e.LIST_FILE]:function(){return X.toArrayBuffer.bind(t)()},[e.BYTE_ARRAY]:function(){return T.toArrayBuffer.bind(t)()}}};try{return r[Object(f.c)()?"node":"browser"][this.type]()}catch(t){throw new x(`Error translating from ${e.enumLookup(this.type)} to ArrayBuffer: ${t}`)}}},{key:"_fromArrayBuffer",value:function(t,r){var n=this,i={[e.STRING]:function(){return M.fromArrayBuffer.bind(n)(r)},[e.NUMBER]:function(){return $.fromArrayBuffer.bind(n)(r)},[e.HTML]:function(){return _.fromArrayBuffer.bind(n)(r)},[e.ARRAY_BUFFER]:function(){},[e.BIG_NUMBER]:function(){return I.fromArrayBuffer.bind(n)(r)},[e.JSON]:function(){return N.fromArrayBuffer.bind(n)(r)},[e.FILE]:function(){return P.fromArrayBuffer.bind(n)()},[e.LIST_FILE]:function(){return X.fromArrayBuffer.bind(n)()},[e.BYTE_ARRAY]:function(){return T.fromArrayBuffer.bind(n)()}};try{i[t](),this.type=t}catch(r){throw new x(`Error translating from ArrayBuffer to ${e.enumLookup(t)}: ${r}`)}}},{key:"size",get:function(){switch(this.type){case e.BYTE_ARRAY:case e.STRING:case e.HTML:return this.value.length;case e.NUMBER:case e.BIG_NUMBER:return this.value.toString().length;case e.ARRAY_BUFFER:return this.value.byteLength;case e.JSON:return JSON.stringify(this.value).length;case e.FILE:return this.value.size;case e.LIST_FILE:return this.value.reduce((function(e,t){return e+t.size}),0);default:return-1}}}],[{key:"typeEnum",value:function(t){switch(t.toLowerCase()){case"bytearray":case"byte array":return e.BYTE_ARRAY;case"string":return e.STRING;case"number":return e.NUMBER;case"html":return e.HTML;case"arraybuffer":case"array buffer":return e.ARRAY_BUFFER;case"bignumber":case"big number":return e.BIG_NUMBER;case"json":case"object":return e.JSON;case"file":return e.FILE;case"list<file>":return e.LIST_FILE;default:throw new x("Invalid data type string. No matching enum.")}}},{key:"enumLookup",value:function(t){switch(t){case e.BYTE_ARRAY:return"byteArray";case e.STRING:return"string";case e.NUMBER:return"number";case e.HTML:return"html";case e.ARRAY_BUFFER:return"ArrayBuffer";case e.BIG_NUMBER:return"BigNumber";case e.JSON:return"JSON";case e.FILE:return"File";case e.LIST_FILE:return"List<File>";default:throw new x("Invalid data type enum. No matching type.")}}}]),e}();Y.BYTE_ARRAY=0,Y.STRING=1,Y.NUMBER=2,Y.HTML=3,Y.ARRAY_BUFFER=4,Y.BIG_NUMBER=5,Y.JSON=6,Y.FILE=7,Y.LIST_FILE=8;t.a=Y},1523:function(e,t,r){"use strict";r.r(t);var n=r(14),i=r.n(n),o=r(2),a=r.n(o),s=r(3),u=r.n(s),c=r(4),l=r.n(c),f=r(5),h=r.n(f),p=r(0),d=r.n(p),m=r(9),v=r(7),y=r(1);function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}function b(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return w(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}
/**
 * Emulation of the Enigma machine.
 *
 * @author s2224834
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */var x=[{name:"I",value:"EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"},{name:"II",value:"AJDKSIRUXBLHWTMCQGZNPYFVOE<F"},{name:"III",value:"BDFHJLCPRTXVZNYEIWGAKMUSQO<W"},{name:"IV",value:"ESOVPZJAYQUIRHXLNFTGKDCMWB<K"},{name:"V",value:"VZBRGITYUPSDNHLXAWMJQOFECK<A"},{name:"VI",value:"JPGVOUMFYQBENHZRDKASXLICTW<AN"},{name:"VII",value:"NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"},{name:"VIII",value:"FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"}],A=[{name:"Beta",value:"LEYJVCNIXWPBQMDRTAKZGFUHOS"},{name:"Gamma",value:"FSOKANUERHMBTIYCWLQPZXVGJD"}],B=[{name:"B",value:"AY BR CU DH EQ FS GL IP JX KN MO TZ VW"},{name:"C",value:"AF BV CP DJ EI GO HY KR LZ MX NW TQ SU"},{name:"B Thin",value:"AE BN CK DQ FU GY HW IJ LO MP RX SZ TV"},{name:"C Thin",value:"AR BD CO EJ FN GT HK IV LM PW QZ SX UY"}],F="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");function E(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=y.b.ord(e);if(r>=65&&r<=90)return r-65;if(t)return r>=97&&r<=122?r-97:-1;throw new v.a("a2i called on non-uppercase ASCII character")}function S(e){if(e>=0&&e<26)return y.b.chr(e+65);throw new v.a("i2a called on value outside 0..25")}var R=function(){function e(t,r,n,i){if(a()(this,e),!/^[A-Z]{26}$/.test(t))throw new v.a("Rotor wiring must be 26 unique uppercase letters");if(!/^[A-Z]{0,26}$/.test(r))throw new v.a("Rotor steps must be 0-26 unique uppercase letters");if(!/^[A-Z]$/.test(n))throw new v.a("Rotor ring setting must be exactly one uppercase letter");if(!/^[A-Z]$/.test(i))throw new v.a("Rotor initial position must be exactly one uppercase letter");this.map=new Array(26),this.revMap=new Array(26);for(var o={},s=0;s<F.length;s++){var u=E(F[s]),c=E(t[s]);this.map[u]=c,this.revMap[c]=u,o[c]=!0}if(Object.keys(o).length!==F.length)throw new v.a("Rotor wiring must have each letter exactly once");var l=E(n);this.steps=new Set;var f,h=b(r);try{for(h.s();!(f=h.n()).done;){var p=f.value;this.steps.add(y.b.mod(E(p)-l,26))}}catch(e){h.e(e)}finally{h.f()}if(this.steps.size!==r.length)throw new v.a("Rotor steps must be unique");this.pos=y.b.mod(E(i)-l,26)}return u()(e,[{key:"step",value:function(){return this.pos=y.b.mod(this.pos+1,26),this.pos}},{key:"transform",value:function(e){return y.b.mod(this.map[y.b.mod(e+this.pos,26)]-this.pos,26)}},{key:"revTransform",value:function(e){return y.b.mod(this.revMap[y.b.mod(e+this.pos,26)]-this.pos,26)}}]),e}(),k=function(){function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"PairMapBase";a()(this,e),this.pairs=t,this.map={},""!==t&&t.split(/\s+/).forEach((function(e){if(!/^[A-Z]{2}$/.test(e))throw new v.a(n+" must be a whitespace-separated list of uppercase letter pairs");var t=E(e[0]),i=E(e[1]);if(t!==i){if(Object.prototype.hasOwnProperty.call(r.map,t))throw new v.a(`${n} connects ${e[0]} more than once`);if(Object.prototype.hasOwnProperty.call(r.map,i))throw new v.a(`${n} connects ${e[1]} more than once`);r.map[t]=i,r.map[i]=t}}))}return u()(e,[{key:"transform",value:function(e){return Object.prototype.hasOwnProperty.call(this.map,e)?this.map[e]:e}},{key:"revTransform",value:function(e){return this.transform(e)}}]),e}(),T=function(e){l()(r,e);var t=g(r);function r(e){var n;if(a()(this,r),n=t.call(this,e,"Reflector"),26!==Object.keys(n.map).length)throw new v.a("Reflector must have exactly 13 pairs covering every letter");for(var i=new Array(26),o=0,s=Object.keys(n.map);o<s.length;o++){var u=s[o];i[u]=n.map[u]}return n.map=i,n}return u()(r,[{key:"transform",value:function(e){return this.map[e]}}]),r}(k),C=function(e){l()(r,e);var t=g(r);function r(e){return a()(this,r),t.call(this,e,"Plugboard")}return r}(k),I=function(){function e(t,r,n){a()(this,e),this.rotors=t,this.rotorsRev=[].concat(t).reverse(),this.reflector=r,this.plugboard=n}return u()(e,[{key:"step",value:function(){var e=this.rotors[0],t=this.rotors[1];(e.step(),e.steps.has(e.pos)||t.steps.has(y.b.mod(t.pos+1,26)))&&(t.step(),t.steps.has(t.pos)&&this.rotors[2].step())}},{key:"crypt",value:function(e){var t,r="",n=b(e);try{for(n.s();!(t=n.n()).done;){var i=t.value,o=E(i,!0);if(-1!==o){this.step(),o=this.plugboard.transform(o);var a,s=b(this.rotors);try{for(s.s();!(a=s.n()).done;){o=a.value.transform(o)}}catch(e){s.e(e)}finally{s.f()}o=this.reflector.transform(o);var u,c=b(this.rotorsRev);try{for(c.s();!(u=c.n()).done;){o=u.value.revTransform(o)}}catch(e){c.e(e)}finally{c.f()}r+=S(o=this.plugboard.revTransform(o))}else r+=i}}catch(e){n.e(e)}finally{n.f()}return r}}]),e}(),O=function(e){l()(r,e);var t=g(r);function r(e,n,i){var o;if(a()(this,r),o=t.call(this,e,n,i),3!==e.length&&4!==e.length)throw new v.a("Enigma must have 3 or 4 rotors");return o}return r}(I);function P(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return D(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return D(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function D(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function M(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * Emulation of the Bombe machine.
 *
 * @author s2224834
 * @author The National Museum of Computing - Bombe Rebuild Project
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}var L=function(e){l()(r,e);var t=M(r);function r(){return a()(this,r),t.apply(this,arguments)}return u()(r,[{key:"copy",value:function(){return{map:this.map,revMap:this.revMap,pos:this.pos,step:this.step,transform:this.transform,revTransform:this.revTransform}}}]),r}(R),_=function e(t){a()(this,e),this.letter=t,this.edges=new Set,this.visited=!1},U=function(){function e(t,r,n){a()(this,e),this.pos=t,this.node1=r,this.node2=n,r.edges.add(this),n.edges.add(this),this.visited=!1}return u()(e,[{key:"getOther",value:function(e){return this.node1===e?this.node2:this.node1}}]),e}(),N=function(){function e(t,r){a()(this,e),this.lowerCache=new Array(26),this.higherCache=new Array(26);for(var n=0;n<26;n++)this.higherCache[n]=new Array(26);this.changeRotors(t,r)}return u()(e,[{key:"changeRotors",value:function(e,t){this.reflector=t,this.rotors=e,this.rotorsRev=[].concat(e).reverse(),this.cacheGen()}},{key:"step",value:function(e){for(var t=0;t<e-1;t++)this.rotors[t].step();this.cacheGen()}},{key:"cacheGen",value:function(){for(var e=0;e<26;e++){this.lowerCache[e]=void 0;for(var t=0;t<26;t++)this.higherCache[e][t]=void 0}for(var r=0;r<26;r++)if(void 0===this.lowerCache[r]){var n,i=r,o=P(this.rotors);try{for(o.s();!(n=o.n()).done;){i=n.value.transform(i)}}catch(e){o.e(e)}finally{o.f()}i=this.reflector.transform(i);var a,s=P(this.rotorsRev);try{for(s.s();!(a=s.n()).done;){i=a.value.revTransform(i)}}catch(e){s.e(e)}finally{s.f()}this.lowerCache[r]=i,this.lowerCache[i]=r}}},{key:"transform",value:function(e){return this.lowerCache[e]}}]),e}(),j=function(){function e(t,r,n,i,o){a()(this,e),this.baseScrambler=t,this.initialPos=n,this.changeRotor(r),this.end1=i,this.end2=o,this.cache=this.baseScrambler.higherCache[n]}return u()(e,[{key:"changeRotor",value:function(e){this.rotor=e,this.rotor.pos+=this.initialPos}},{key:"step",value:function(){this.rotor.step(),this.cache=this.baseScrambler.higherCache[this.rotor.pos]}},{key:"transform",value:function(e){var t=e,r=this.cache[e];return void 0!==r?r:(t=this.rotor.transform(t),t=this.baseScrambler.transform(t),t=this.rotor.revTransform(t),this.cache[e]=t,this.cache[t]=e,t)}},{key:"getOtherEnd",value:function(e){return this.end1===e?this.end2:this.end1}},{key:"getPos",value:function(){var e="",t=y.b.mod(this.rotor.pos-1,26);e+=S(t);for(var r=0;r<this.baseScrambler.rotors.length;r++)e+=S(t=this.baseScrambler.rotors[r].pos);return e.split("").reverse().join("")}}]),e}(),X=function(){function e(t,r,n,o,s){var u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:void 0;if(a()(this,e),n.length<o.length)throw new v.a("Crib overruns supplied ciphertext");if(o.length<2)throw new v.a("Crib is too short");if(o.length>25)throw new v.a("Crib is too long");for(var c=0;c<o.length;c++)if(n[c]===o[c])throw new v.a(`Invalid crib: character ${n[c]} at pos ${c} in both ciphertext and crib`);this.ciphertext=n,this.crib=o,this.initRotors(t),this.check=s,this.updateFn=u;var l=this.makeMenu(),f=i()(l,2),h=f[0],p=f[1];this.wires=new Array(676),this.scramblers=new Array;for(var d=0;d<26;d++)this.scramblers.push(new Array);this.sharedScrambler=new N(this.baseRotors.slice(1),r),this.allScramblers=new Array,this.indicator=void 0;var m,y=P(p);try{for(y.s();!(m=y.n()).done;){var g=m.value,b=this.baseRotors[0].copy(),w=E(g.node1.letter),x=E(g.node2.letter),A=new j(this.sharedScrambler,b,g.pos,w,x);0===g.pos&&(this.indicator=A),this.scramblers[w].push(A),this.scramblers[x].push(A),this.allScramblers.push(A)}}catch(e){y.e(e)}finally{y.f()}void 0===this.indicator&&(this.indicator=new j(this.sharedScrambler,this.baseRotors[0].copy(),0,void 0,void 0),this.allScramblers.push(this.indicator)),this.testRegister=E(h.letter);var B,F=P(h.edges);try{for(F.s();!(B=F.n()).done;){var S=B.value;this.testInput=[this.testRegister,E(S.getOther(h).letter)];break}}catch(e){F.e(e)}finally{F.f()}}return u()(e,[{key:"initRotors",value:function(e){this.baseRotors=[];var t,r=P(e);try{for(r.s();!(t=r.n()).done;){var n=t.value,i=new L(n,"","A","A");this.baseRotors.push(i)}}catch(e){r.e(e)}finally{r.f()}}},{key:"changeRotors",value:function(e,t){this.initRotors(e),this.sharedScrambler.changeRotors(this.baseRotors.slice(1),t);var r,n=P(this.allScramblers);try{for(n.s();!(r=n.n()).done;){r.value.changeRotor(this.baseRotors[0].copy())}}catch(e){n.e(e)}finally{n.f()}}},{key:"update",value:function(){void 0!==this.updateFn&&this.updateFn(...arguments)}},{key:"dfs",value:function(e){var t=0,r=1,n=e,o=n.edges.size,a=new Set;e.visited=!0;var s,u=P(e.edges);try{for(u.s();!(s=u.n()).done;){var c=s.value;if(!c.visited){c.visited=!0,a.add(c);var l=c.getOther(e);if(l.visited)t+=1;else{var f=this.dfs(l),h=i()(f,5),p=h[0],d=h[1],m=h[2],v=h[3],y=h[4];t+=p,r+=d,a=new Set([...a,...y]),v>o&&(n=m,o=v)}}}}catch(e){u.e(e)}finally{u.f()}return[t,r,n,o,a]}},{key:"makeMenu",value:function(){var e,t=new Map,r=P(this.ciphertext+this.crib);try{for(r.s();!(e=r.n()).done;){var n=e.value;if(!t.has(n)){var i=new _(n);t.set(n,i)}}}catch(e){r.e(e)}finally{r.f()}for(var o=0;o<this.crib.length;o++){var a=this.crib[o],s=this.ciphertext[o];new U(o,t.get(a),t.get(s))}var u,c=[],l=P(t.keys());try{for(l.s();!(u=l.n()).done;){var f=u.value;if(!t.get(f).visited){var h=this.dfs(t.get(f));c.push(h)}}}catch(e){l.e(e)}finally{l.f()}return c.sort((function(e,t){var r=t[0]-e[0];return 0===r&&(r=t[1]-e[1]),r})),this.nLoops=c[0][0],[c[0][2],c[0][4]]}},{key:"energise",value:function(e,t){var r=26*e+t;if(!this.wires[r]){this.wires[r]=!0;var n=26*t+e;if(this.wires[n]=!0,e!==this.testRegister&&t!==this.testRegister||(this.energiseCount++,26!==this.energiseCount)){for(var i=0;i<this.scramblers[e].length;i++){var o=this.scramblers[e][i],a=o.transform(t),s=o.getOtherEnd(e),u=26*s+a;if(!this.wires[u]&&(this.energise(s,a),26===this.energiseCount))return}if(e!==t)for(var c=0;c<this.scramblers[t].length;c++){var l=this.scramblers[t][c],f=l.transform(e),h=l.getOtherEnd(t),p=26*h+f;if(!this.wires[p]&&(this.energise(h,f),26===this.energiseCount))return}}}}},{key:"tryDecrypt",value:function(e){for(var t=this.indicator.rotor,r=t.pos,n=[],i=new C(e),o=0;o<Math.min(26,this.ciphertext.length);o++){var a=this.indicator.transform(i.transform(E(this.ciphertext[o])));n.push(S(i.transform(a))),this.indicator.step(1)}return t.pos=r,n.join("")}},{key:"formatPair",value:function(e,t){return e<t?`${S(e)}${S(t)}`:`${S(t)}${S(e)}`}},{key:"checkingMachine",value:function(e){if(e!==this.testInput[1]){for(var t=0;t<this.wires.length;t++)this.wires[t]=!1;this.energiseCount=0,this.energise(this.testRegister,e)}var r=new Set;r.add(this.formatPair(this.testRegister,e));for(var n=0;n<26;n++){for(var i=0,o=void 0,a=0;a<26;a++)this.wires[26*n+a]&&(i++,o=a);if(i>1)return"";0!==i&&r.add(this.formatPair(n,o))}return[...r].join(" ")}},{key:"checkStop",value:function(){var e=this.energiseCount;if(26!==e){var t,r;if(25===e){for(var n=0;n<26;n++)if(!this.wires[26*this.testRegister+n]){t=n;break}}else{if(1!==e){if(!this.check)return[this.indicator.getPos(),"??",this.tryDecrypt("")];for(var i=void 0,o=0;o<26;o++){var a=this.checkingMachine(o);if(""!==a){if(void 0!==i)return[this.indicator.getPos(),"??",this.tryDecrypt("")];i=a}}if(void 0===i)return;return[this.indicator.getPos(),i,this.tryDecrypt(i)]}t=this.testInput[1]}if(this.check){if(""===(r=this.checkingMachine(t)))return}else r=`${S(this.testRegister)}${S(t)}`;var s=this.tryDecrypt(r);return[this.indicator.getPos(),r,s]}}},{key:"run",value:function(){for(var e=0,t=[],r=Math.pow(26,this.baseRotors.length),n=1;n<=r;n++){for(var i=0;i<this.wires.length;i++)this.wires[i]=!1;this.energiseCount=0,this.energise(...this.testInput);var o=this.checkStop();void 0!==o&&(e++,t.push(o));for(var a=1,s=1;s<this.baseRotors.length&&n%Math.pow(26,s)==0;s++)a++;a>1&&this.sharedScrambler.step(a);var u,c=P(this.allScramblers);try{for(c.s();!(u=c.n()).done;){u.value.step()}}catch(e){c.e(e)}finally{c.f()}a>3&&this.update(this.nLoops,e,n/r)}return t}}]),e}();function G(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return $(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return $(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function $(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * Emulation of the Bombe machine.
 *
 * @author s2224834
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}var Z=function(e){l()(r,e);var t=Y(r);function r(){var e;return a()(this,r),(e=t.call(this)).name="Bombe",e.module="Bletchley",e.description="Emulation of the Bombe machine used at Bletchley Park to attack Enigma, based on work by Polish and British cryptanalysts.<br><br>To run this you need to have a 'crib', which is some known plaintext for a chunk of the target ciphertext, and know the rotors used. (See the 'Bombe (multiple runs)' operation if you don't know the rotors.) The machine will suggest possible configurations of the Enigma. Each suggestion has the rotor start positions (left to right) and known plugboard pairs.<br><br>Choosing a crib: First, note that Enigma cannot encrypt a letter to itself, which allows you to rule out some positions for possible cribs. Secondly, the Bombe does not simulate the Enigma's middle rotor stepping. The longer your crib, the more likely a step happened within it, which will prevent the attack working. However, other than that, longer cribs are generally better. The attack produces a 'menu' which maps ciphertext letters to plaintext, and the goal is to produce 'loops': for example, with ciphertext ABC and crib CAB, we have the mappings A&lt;-&gt;C, B&lt;-&gt;A, and C&lt;-&gt;B, which produces a loop A-B-C-A. The more loops, the better the crib. The operation will output this: if your menu has too few loops or is too short, a large number of incorrect outputs will usually be produced. Try a different crib. If the menu seems good but the right answer isn't produced, your crib may be wrong, or you may have overlapped the middle rotor stepping - try a different crib.<br><br>Output is not sufficient to fully decrypt the data. You will have to recover the rest of the plugboard settings by inspection. And the ring position is not taken into account: this affects when the middle rotor steps. If your output is correct for a bit, and then goes wrong, adjust the ring and start position on the right-hand rotor together until the output improves. If necessary, repeat for the middle rotor.<br><br>By default this operation runs the checking machine, a manual process to verify the quality of Bombe stops, on each stop, discarding stops which fail. If you want to see how many times the hardware actually stops for a given input, disable the checking machine.<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",e.infoURL="https://wikipedia.org/wiki/Bombe",e.inputType="string",e.outputType="JSON",e.presentType="html",e.args=[{name:"Model",type:"argSelector",value:[{name:"3-rotor",off:[1]},{name:"4-rotor",on:[1]}]},{name:"Left-most (4th) rotor",type:"editableOption",value:A,defaultIndex:0},{name:"Left-hand rotor",type:"editableOption",value:x,defaultIndex:0},{name:"Middle rotor",type:"editableOption",value:x,defaultIndex:1},{name:"Right-hand rotor",type:"editableOption",value:x,defaultIndex:2},{name:"Reflector",type:"editableOption",value:B},{name:"Crib",type:"string",value:""},{name:"Crib offset",type:"number",value:0},{name:"Use checking machine",type:"boolean",value:!0}],e}return u()(r,[{key:"updateStatus",value:function(e,t,r){var n=`Bombe run with ${e} loop${1===e?"":"s"} in menu (2+ desirable): ${t} stops, ${Math.floor(100*r)}% done`;self.sendStatusMessage(n)}},{key:"run",value:function(e,t){for(var r=t[0],n=t[5],i=t[6],o=t[7],a=t[8],s=[],u=0;u<4;u++)if(0!==u||"3-rotor"!==r){var c=t[u+1];c.includes("<")&&(c=c.split("<",2)[0]),s.push(c)}if(s.reverse(),0===i.length)throw new v.a("Crib cannot be empty");if(o<0)throw new v.a("Offset cannot be negative");e=e.replace(/[^A-Za-z]/g,"").toUpperCase(),i=i.replace(/[^A-Za-z]/g,"").toUpperCase();var l,f=e.slice(o),h=new T(n);l=Object(y.d)()?this.updateStatus:void 0;var p=new X(s,h,f,i,a,l),d=p.run();return{nLoops:p.nLoops,result:d}}},{key:"present",value:function(e){var t=`Bombe run on menu with ${e.nLoops} loop${1===e.nLoops?"":"s"} (2+ desirable). Note: Rotor positions are listed left to right and start at the beginning of the crib, and ignore stepping and the ring setting. Some plugboard settings are determined. A decryption preview starting at the beginning of the crib and ignoring stepping is also provided.\n\n`;t+="<table class='table table-hover table-sm table-bordered table-nonfluid'><tr><th>Rotor stops</th>  <th>Partial plugboard</th>  <th>Decryption preview</th></tr>\n";var r,n=G(e.result);try{for(n.s();!(r=n.n()).done;){var o=i()(r.value,3);t+=`<tr><td>${o[0]}</td>  <td>${o[1]}</td>  <td>${o[2]}</td></tr>\n`}}catch(e){n.e(e)}finally{n.f()}return t+="</table>"}}]),r}(m.a),Q=[{name:"Up (.)",value:"."},{name:"Centre",value:""},{name:"Down (x)",value:"x"}],H={A:"11000",B:"10011",C:"01110",D:"10010",E:"10000",F:"10110",G:"01011",H:"00101",I:"01100",J:"11010",K:"11110",L:"01001",M:"00111",N:"00110",O:"00011",P:"01101",Q:"11101",R:"01010",S:"10100",T:"00001",U:"11100",V:"01111",W:"11001",X:"10111",Y:"10101",Z:"10001",3:"00010",4:"01000",9:"00100","/":"00000"," ":"00100",".":"00100",8:"11111",5:"11011","-":"11111","+":"11011"},V={S1:43,S2:47,S3:51,S4:53,S5:59,M37:37,M61:61,X1:41,X2:31,X3:29,X4:26,X5:23},W={"No Pattern":{X:{1:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],2:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],4:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],5:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},S:{1:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],2:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],4:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],5:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},M:{1:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],2:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},"KH Pattern":{X:{1:[0,1,0,0,0,1,1,1,0,1,0,1,1,1,1,0,1,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,0],2:[1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0],3:[0,0,1,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,0],4:[1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,0,1,1,1,0,0,0,0,1,0,0],5:[1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,0,1,0,0]},S:{1:[0,1,0,0,0,1,1,0,1,0,1,0,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,1,0,1],2:[0,1,1,0,1,0,1,1,1,0,0,1,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,0,1],3:[0,1,0,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1],4:[0,1,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0],5:[1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,0]},M:{1:[0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0],2:[1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0]}},"ZMUG Pattern":{X:{1:[0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0],2:[1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,0,1,1,0,0,0],3:[0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0],4:[1,0,1,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1],5:[0,1,0,0,1,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,1,0,1]},S:{1:[1,1,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,0],2:[0,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,1],3:[0,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1],4:[0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1],5:[1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0]},M:{1:[1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,0,1],2:[0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1]}},"BREAM Pattern":{X:{1:[0,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0],2:[0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,0,1,1],3:[1,1,0,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,0,0,1,1,0,1,1,1,0,0],4:[1,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,0],5:[0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0]},S:{1:[0,0,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0],2:[1,1,0,1,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0],3:[1,0,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1],4:[0,1,0,0,0,0,1,0,0,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1],5:[1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0]},M:{1:[1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1],2:[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,1,1,0,1]}}},z=function(){function e(t,r,n,i,o,s,u,c){for(var l in a()(this,e),this.ITAlookup=H,this.ReverseITAlookup={},this.ITAlookup){var f=this.ITAlookup[l];this.ReverseITAlookup[f]=l}this.initThyratrons(r),this.ciphertext=t,this.qbusin=n,this.qbusswitches=i,this.control=o,this.starts=s,this.settotal=u,this.limitations=c,this.allCounters=[0,0,0,0,0],this.Zbits=[0,0,0,0,0],this.ZbitsOneBack=[0,0,0,0,0],this.Qbits=[0,0,0,0,0],this.Xbits=[0,0,0,0,0],this.Xptr=[0,0,0,0,0],this.XbitsOneBack=[0,0,0,0,0],this.Sbits=[0,0,0,0,0],this.Sptr=[0,0,0,0,0],this.SbitsOneBack=[0,0,0,0,0],this.Mptr=[0,0],this.rotorPtrs={},this.totalmotor=0,this.P5Zbit=[0,0]}return u()(e,[{key:"run",value:function(){var e={printout:""};this.rotorPtrs={X1:this.starts.X1,X2:this.starts.X2,X3:this.starts.X3,X4:this.starts.X4,X5:this.starts.X5,M61:this.starts.M61,M37:this.starts.M37,S1:this.starts.S1,S2:this.starts.S2,S3:this.starts.S3,S4:this.starts.S4,S5:this.starts.S5};var t=1,r=this.control.fast,n=this.control.slow;e.printout+=r+" "+n+"\n";do{this.allCounters=[0,0,0,0,0],this.ZbitsOneBack=[0,0,0,0,0],this.XbitsOneBack=[0,0,0,0,0],this.runTape();var i="00",o="00";""!==r&&(i=this.rotorPtrs[r].toString().padStart(2,"0")),""!==n&&(o=this.rotorPtrs[n].toString().padStart(2,"0"));for(var a="",s=0;s<5;s++)this.allCounters[s]>this.settotal&&(a+=String.fromCharCode(s+97)+this.allCounters[s]+" ");""!==a&&(e.printout+=i+" "+o+" : ",e.printout+=a,e.printout+="\n"),""!==r&&(this.rotorPtrs[r]++,this.rotorPtrs[r]>V[r]&&(this.rotorPtrs[r]=1)),""!==n&&this.rotorPtrs[r]===this.starts[r]&&(this.rotorPtrs[n]++,this.rotorPtrs[n]>V[n]&&(this.rotorPtrs[n]=1)),t++}while(JSON.stringify(this.rotorPtrs)!==JSON.stringify(this.starts));return e.counters=this.allCounters,e.runcount=t,e}},{key:"runTape",value:function(){var e="";this.Xptr=[this.rotorPtrs.X1,this.rotorPtrs.X2,this.rotorPtrs.X3,this.rotorPtrs.X4,this.rotorPtrs.X5],this.Mptr=[this.rotorPtrs.M37,this.rotorPtrs.M61],this.Sptr=[this.rotorPtrs.S1,this.rotorPtrs.S2,this.rotorPtrs.S3,this.rotorPtrs.S4,this.rotorPtrs.S5];for(var t=0;t<this.ciphertext.length;t++){e=this.ciphertext.charAt(t),this.getQbusInputs(e);var r=this.runQbusProcessingConditional();this.runQbusProcessingAddition(r),this.P5Zbit[1]=this.P5Zbit[0],this.P5Zbit[0]=this.ITAlookup[e].split("")[4],this.stepThyratrons()}}},{key:"stepThyratrons",value:function(){var e=this.Xptr[1]-1;0===e&&(e=V.X2);var t=this.Sptr[0]-1;0===t&&(t=V.S1);var r=this.Xptr[4]-1;0===r&&(r=V.X5),0===(r-=1)&&(r=V.X5);var n=this.Sptr[4]-1;0===n&&(n=V.S5),0===(n-=1)&&(n=V.S5);var i=this.limitations.X2,o=this.limitations.S1,a=this.limitations.P5,s=1;if(i&&(s=this.rings.X[2][e-1]),o&&(s^=this.rings.S[1][t-1]),a){var u=this.P5Zbit[1];u^=this.rings.X[5][r-1],s^=u^=this.rings.S[5][n-1]}var c=this.rings.M[2][this.Mptr[0]-1];this.totalmotor=c,(i||o)&&(this.totalmotor=0===c&&1===s?0:1);for(var l=0;l<5;l++)this.Xptr[l]++,this.Xptr[l]>V["X"+(l+1)]&&(this.Xptr[l]=1);if(this.totalmotor)for(var f=0;f<5;f++)this.Sptr[f]++,this.Sptr[f]>V["S"+(f+1)]&&(this.Sptr[f]=1);1===this.rings.M[1][this.Mptr[1]-1]&&this.Mptr[0]++,this.Mptr[0]>V.M37&&(this.Mptr[0]=1),this.Mptr[1]++,this.Mptr[1]>V.M61&&(this.Mptr[1]=1)}},{key:"getQbusInputs",value:function(e){if(this.Zbits=this.ITAlookup[e].split(""),"Z"===this.qbusin.Z)this.Qbits=this.Zbits;else if("ΔZ"===this.qbusin.Z)for(var t=0;t<5;t++)this.Qbits[t]=this.Zbits[t]^this.ZbitsOneBack[t];this.ZbitsOneBack=this.Zbits.slice();for(var r=0;r<5;r++)this.Xbits[r]=this.rings.X[r+1][this.Xptr[r]-1];if(""!==this.qbusin.Chi)if("Χ"===this.qbusin.Chi)for(var n=0;n<5;n++)this.Qbits[n]=this.Qbits[n]^this.Xbits[n];else if("ΔΧ"===this.qbusin.Chi)for(var i=0;i<5;i++)this.Qbits[i]=this.Qbits[i]^this.Xbits[i],this.Qbits[i]=this.Qbits[i]^this.XbitsOneBack[i];this.XbitsOneBack=this.Xbits.slice();for(var o=0;o<5;o++)this.Sbits[o]=this.rings.S[o+1][this.Sptr[o]-1];if(""!==this.qbusin.Psi)if("Ψ"===this.qbusin.Psi)for(var a=0;a<5;a++)this.Qbits[a]=this.Qbits[a]^this.Sbits[a];else if("ΔΨ"===this.qbusin.Psi)for(var s=0;s<5;s++)this.Qbits[s]=this.Qbits[s]^this.Sbits[s],this.Qbits[s]=this.Qbits[s]^this.SbitsOneBack[s];this.SbitsOneBack=this.Sbits.slice()}},{key:"runQbusProcessingConditional",value:function(){for(var e=[-1,-1,-1,-1,-1],t=this.qbusswitches.condition.length,r=0;r<t;r++){var n=this.qbusswitches.condition[r];if(""!==n.Counter){for(var i=!0,o=n.Counter-1,a=this.readBusSwitches(n.Qswitches),s=0;s<5;s++)a[s]>=0&&a[s]!==parseInt(this.Qbits[s],10)&&(i=!1);n.Negate&&(i=!i),-1===e[o]?e[o]=i:i||(e[o]=!1)}}for(var u=0;u<5;u++)this.qbusswitches.condNegateAll&&-1!==e[u]&&(e[u]=!e[u]);return e}},{key:"runQbusProcessingAddition",value:function(e){var t=this.qbusswitches.addition[0],r=t.Qswitches.slice();if(t.C1){for(var n=0,i=0;i<5;i++)r[i]&&(n^=this.Qbits[i]);n===(""===t.Equals?-1:"."===t.Equals?0:1)?-1===e[0]&&(e[0]=!0):e[0]=!1}for(var o=0;o<5;o++)this.qbusswitches.addNegateAll&&-1!==e[o]&&(e[o]=!e[o]),(""===this.qbusswitches.totalMotor||"x"===this.qbusswitches.totalMotor&&0===this.totalmotor||"."===this.qbusswitches.totalMotor&&1===this.totalmotor)&&!0===e[o]&&this.allCounters[o]++}},{key:"initThyratrons",value:function(e){this.rings={X:{1:W[e].X[1].slice().reverse(),2:W[e].X[2].slice().reverse(),3:W[e].X[3].slice().reverse(),4:W[e].X[4].slice().reverse(),5:W[e].X[5].slice().reverse()},M:{1:W[e].M[1].slice().reverse(),2:W[e].M[2].slice().reverse()},S:{1:W[e].S[1].slice().reverse(),2:W[e].S[2].slice().reverse(),3:W[e].S[3].slice().reverse(),4:W[e].S[4].slice().reverse(),5:W[e].S[5].slice().reverse()}}}},{key:"readBusSwitches",value:function(e){for(var t=[-1,-1,-1,-1,-1],r=0;r<5;r++)"."===e[r]&&(t[r]=0),"x"===e[r]&&(t[r]=1);return t}}]),e}();function J(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return q(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return q(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function K(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * Emulation of Colossus.
 *
 * @author VirtualColossus [martin@virtualcolossus.co.uk]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}var ee=function(e){l()(r,e);var t=K(r);function r(){var e;return a()(this,r),(e=t.call(this)).name="Colossus",e.module="Bletchley",e.description="Colossus is the name of the world's first electronic computer. Ten Colossi were designed by Tommy Flowers and built at the Post Office Research Labs at Dollis Hill in 1943 during World War 2. They assisted with the breaking of the German Lorenz cipher attachment, a machine created to encipher communications between Hitler and his generals on the front lines.<br><br>To learn more, Virtual Colossus, an online, browser based simulation of a Colossus computer is available at <a href='https://virtualcolossus.co.uk' target='_blank'>virtualcolossus.co.uk</a>.<br><br>A more detailed description of this operation can be found <a href='https://github.com/gchq/CyberChef/wiki/Colossus' target='_blank'>here</a>.",e.infoURL="https://wikipedia.org/wiki/Colossus_computer",e.inputType="string",e.outputType="JSON",e.presentType="html",e.args=[{name:"Input",type:"label"},{name:"Pattern",type:"option",value:["KH Pattern","ZMUG Pattern","BREAM Pattern"]},{name:"QBusZ",type:"option",value:["","Z","ΔZ"]},{name:"QBusΧ",type:"option",value:["","Χ","ΔΧ"]},{name:"QBusΨ",type:"option",value:["","Ψ","ΔΨ"]},{name:"Limitation",type:"option",value:["None","Χ2","Χ2 + P5","X2 + Ψ1","X2 + Ψ1 + P5"]},{name:"K Rack Option",type:"argSelector",value:[{name:"Select Program",on:[7],off:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]},{name:"Top Section - Conditional",on:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],off:[7,31,32,33,34,35,36,37,38,39,40]},{name:"Bottom Section - Addition",on:[31,32,33,34,35,36,37,38,39,40],off:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]},{name:"Advanced",on:[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],off:[7]}]},{name:"Program to run",type:"option",value:["","Letter Count","1+2=. (1+2 Break In, Find X1,X2)","4=5=/1=2 (Given X1,X2 find X4,X5)","/,5,U (Count chars to find X3)"]},{name:"K Rack: Conditional",type:"label"},{name:"R1-Q1",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R1-Q2",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R1-Q3",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R1-Q4",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R1-Q5",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R1-Negate",type:"boolean"},{name:"R1-Counter",type:"option",value:["","1","2","3","4","5"]},{name:"R2-Q1",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R2-Q2",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R2-Q3",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R2-Q4",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R2-Q5",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R2-Negate",type:"boolean"},{name:"R2-Counter",type:"option",value:["","1","2","3","4","5"]},{name:"R3-Q1",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R3-Q2",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R3-Q3",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R3-Q4",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R3-Q5",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"R3-Negate",type:"boolean"},{name:"R3-Counter",type:"option",value:["","1","2","3","4","5"]},{name:"Negate All",type:"boolean"},{name:"K Rack: Addition",type:"label"},{name:"Add-Q1",type:"boolean"},{name:"Add-Q2",type:"boolean"},{name:"Add-Q3",type:"boolean"},{name:"Add-Q4",type:"boolean"},{name:"Add-Q5",type:"boolean"},{name:"Add-Equals",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"Add-Counter1",type:"boolean"},{name:"Add Negate All",type:"boolean"},{name:"Total Motor",type:"editableOptionShort",value:Q,defaultIndex:1},{name:"Master Control Panel",type:"label"},{name:"Set Total",type:"number",value:0},{name:"Fast Step",type:"option",value:["","X1","X2","X3","X4","X5","M37","M61","S1","S2","S3","S4","S5"]},{name:"Slow Step",type:"option",value:["","X1","X2","X3","X4","X5","M37","M61","S1","S2","S3","S4","S5"]},{name:"Start Χ1",type:"number",value:1},{name:"Start Χ2",type:"number",value:1},{name:"Start Χ3",type:"number",value:1},{name:"Start Χ4",type:"number",value:1},{name:"Start Χ5",type:"number",value:1},{name:"Start M61",type:"number",value:1},{name:"Start M37",type:"number",value:1},{name:"Start Ψ1",type:"number",value:1},{name:"Start Ψ2",type:"number",value:1},{name:"Start Ψ3",type:"number",value:1},{name:"Start Ψ4",type:"number",value:1},{name:"Start Ψ5",type:"number",value:1}],e}return u()(r,[{key:"run",value:function(e,t){var r,n=J(e=e.toUpperCase());try{for(n.s();!(r=n.n()).done;){var i=r.value;if(-1==="ABCDEFGHIJKLMNOPQRSTUVWXYZ34589+-./".indexOf(i)){var o=i;throw"\n"===o&&(o="Carriage Return")," "===o&&(o="Space"),new v.a("Invalid ITA2 character : "+o)}}}catch(e){n.e(e)}finally{n.f()}var a=t[1],s={Z:t[2],Chi:t[3],Psi:t[4]},u=t[5],c=[!1,!1,!1];u.includes("Χ2")&&(c[0]=!0),u.includes("Ψ1")&&(c[1]=!0),u.includes("P5")&&(c[2]=!0);var l={X2:c[0],S1:c[1],P5:c[2]},f=t[6],h=t[7];"Select Program"===f&&""!==h&&(t=this.selectProgram(h,t));for(var p=new RegExp("^$|^[.x]$"),d=0;d<3;d++)for(var m=0;m<5;m++)if(!p.test(t[7*d+(m+9)]))throw new v.a("Switch R"+(d+1)+"-Q"+(m+1)+" can only be set to blank, . or x");if(!p.test(t[37]))throw new v.a("Switch Add-Equals can only be set to blank, . or x");if(!p.test(t[40]))throw new v.a("Switch Total Motor can only be set to blank, . or x");var y={condition:[{Qswitches:[t[9],t[10],t[11],t[12],t[13]],Negate:t[14],Counter:t[15]},{Qswitches:[t[16],t[17],t[18],t[19],t[20]],Negate:t[21],Counter:t[22]},{Qswitches:[t[23],t[24],t[25],t[26],t[27]],Negate:t[28],Counter:t[29]}],condNegateAll:t[30],addition:[{Qswitches:[t[32],t[33],t[34],t[35],t[36]],Equals:t[37],C1:t[38]}],addNegateAll:t[39],totalMotor:t[40]},g=parseInt(t[42],10);if(g<0||g>9999)throw new v.a("Set Total must be between 0000 and 9999");var b={fast:t[43],slow:t[44]};if(t[52]<1||t[52]>43)throw new v.a("Ψ1 start must be between 1 and 43");if(t[53]<1||t[53]>47)throw new v.a("Ψ2 start must be between 1 and 47");if(t[54]<1||t[54]>51)throw new v.a("Ψ3 start must be between 1 and 51");if(t[55]<1||t[55]>53)throw new v.a("Ψ4 start must be between 1 and 53");if(t[56]<1||t[57]>59)throw new v.a("Ψ5 start must be between 1 and 59");if(t[51]<1||t[51]>37)throw new v.a("Μ37 start must be between 1 and 37");if(t[50]<1||t[50]>61)throw new v.a("Μ61 start must be between 1 and 61");if(t[45]<1||t[45]>41)throw new v.a("Χ1 start must be between 1 and 41");if(t[46]<1||t[46]>31)throw new v.a("Χ2 start must be between 1 and 31");if(t[47]<1||t[47]>29)throw new v.a("Χ3 start must be between 1 and 29");if(t[48]<1||t[48]>26)throw new v.a("Χ4 start must be between 1 and 26");if(t[49]<1||t[49]>23)throw new v.a("Χ5 start must be between 1 and 23");var w={X1:t[45],X2:t[46],X3:t[47],X4:t[48],X5:t[49],M61:t[50],M37:t[51],S1:t[52],S2:t[53],S3:t[54],S4:t[55],S5:t[56]};return new z(e,a,s,y,b,w,g,l).run()}},{key:"selectProgram",value:function(e,t){return"Letter Count"===e&&(t[9]="",t[10]="",t[11]="",t[12]="",t[13]="",t[14]=!1,t[15]="1",t[22]="",t[29]="",t[30]=!1,t[38]=!1),"1+2=. (1+2 Break In, Find X1,X2)"===e&&(t[15]="",t[22]="",t[29]="",t[32]=!0,t[33]=!0,t[34]=!1,t[35]=!1,t[36]=!1,t[37]=".",t[38]=!0),"4=5=/1=2 (Given X1,X2 find X4,X5)"===e&&(t[9]=".",t[10]=".",t[11]="",t[12]=".",t[13]=".",t[14]=!0,t[15]="1",t[16]="x",t[17]="x",t[18]="",t[19]="x",t[20]="x",t[21]=!0,t[22]="1",t[29]="",t[30]=!0,t[38]=!1),"/,5,U (Count chars to find X3)"===e&&(t[9]=".",t[10]=".",t[11]=".",t[12]=".",t[13]=".",t[14]=!1,t[15]="1",t[16]="x",t[17]="x",t[18]=".",t[19]="x",t[20]="x",t[21]=!1,t[22]="2",t[23]="x",t[24]="x",t[25]="x",t[26]=".",t[27]=".",t[28]=!1,t[29]="3",t[30]=!1,t[38]=!1),t}},{key:"present",value:function(e){var t="Colossus Printer\n\n";t+=e.printout+"\n\n",t+="Colossus Counters\n\n",t+="<table class='table table-hover table-sm table-bordered table-nonfluid'><tr><th>C1</th>  <th>C2</th>  <th>C3</th>  <th>C4</th>  <th>C5</th></tr>\n",t+="<tr>";var r,n=J(e.counters);try{for(n.s();!(r=n.n()).done;){t+=`<td>${r.value}</td>\n`}}catch(e){n.e(e)}finally{n.f()}return t+="</tr>",t+="</table>"}}]),r}(m.a);function te(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * Emulation of the Enigma machine.
 *
 * @author s2224834
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}var re=function(e){l()(r,e);var t=te(r);function r(){var e;return a()(this,r),(e=t.call(this)).name="Enigma",e.module="Bletchley",e.description="Encipher/decipher with the WW2 Enigma machine.<br><br>Enigma was used by the German military, among others, around the WW2 era as a portable cipher machine to protect sensitive military, diplomatic and commercial communications.<br><br>The standard set of German military rotors and reflectors are provided. To configure the plugboard, enter a string of connected pairs of letters, e.g. <code>AB CD EF</code> connects A to B, C to D, and E to F. This is also used to create your own reflectors. To create your own rotor, enter the letters that the rotor maps A to Z to, in order, optionally followed by <code>&lt;</code> then a list of stepping points.<br>This is deliberately fairly permissive with rotor placements etc compared to a real Enigma (on which, for example, a four-rotor Enigma uses only the thin reflectors and the beta or gamma rotor in the 4th slot).<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",e.infoURL="https://wikipedia.org/wiki/Enigma_machine",e.inputType="string",e.outputType="string",e.args=[{name:"Model",type:"argSelector",value:[{name:"3-rotor",off:[1,2,3]},{name:"4-rotor",on:[1,2,3]}]},{name:"Left-most (4th) rotor",type:"editableOption",value:A,defaultIndex:0},{name:"Left-most rotor ring setting",type:"option",value:F},{name:"Left-most rotor initial value",type:"option",value:F},{name:"Left-hand rotor",type:"editableOption",value:x,defaultIndex:0},{name:"Left-hand rotor ring setting",type:"option",value:F},{name:"Left-hand rotor initial value",type:"option",value:F},{name:"Middle rotor",type:"editableOption",value:x,defaultIndex:1},{name:"Middle rotor ring setting",type:"option",value:F},{name:"Middle rotor initial value",type:"option",value:F},{name:"Right-hand rotor",type:"editableOption",value:x,defaultIndex:2},{name:"Right-hand rotor ring setting",type:"option",value:F},{name:"Right-hand rotor initial value",type:"option",value:F},{name:"Reflector",type:"editableOption",value:B},{name:"Plugboard",type:"string",value:""},{name:"Strict output",hint:"Remove non-alphabet letters and group output",type:"boolean",value:!0}],e}return u()(r,[{key:"parseRotorStr",value:function(e,t){if(""===e)throw new v.a(`Rotor ${t} must be provided.`);return e.includes("<")?e.split("<",2):[e,""]}},{key:"run",value:function(e,t){for(var r=t[0],n=t[13],o=t[14],a=t[15],s=[],u=0;u<4;u++)if(0!==u||"3-rotor"!==r){var c=this.parseRotorStr(t[3*u+1],1),l=i()(c,2),f=l[0],h=l[1];s.push(new R(f,h,t[3*u+2],t[3*u+3]))}s.reverse();var p=new T(n),d=new C(o);a&&(e=e.replace(/[^A-Za-z]/g,""));var m=new O(s,p,d).crypt(e);return a&&(m=m.replace(/([A-Z]{5})(?!$)/g,"$1 ")),m}},{key:"highlight",value:function(e,t){if(!1===t[13])return e}},{key:"highlightReverse",value:function(e,t){if(!1===t[13])return e}}]),r}(m.a);function ne(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return ie(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ie(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function oe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * Emulation of the Lorenz SZ40/42a/42b cipher attachment.
 *
 * @author VirtualColossus [martin@virtualcolossus.co.uk]
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}var ae=function(e){l()(r,e);var t=oe(r);function r(){var e;return a()(this,r),(e=t.call(this)).name="Lorenz",e.module="Bletchley",e.description="The Lorenz SZ40/42 cipher attachment was a WW2 German rotor cipher machine with twelve rotors which attached in-line between remote teleprinters.<br><br>It used the Vernam cipher with two groups of five rotors (named the psi(ψ) wheels and chi(χ) wheels at Bletchley Park) to create two pseudorandom streams of five bits, encoded in ITA2, which were XOR added to the plaintext. Two other rotors, dubbed the mu(μ) or motor wheels, could hold up the stepping of the psi wheels meaning they stepped intermittently.<br><br>Each rotor has a different number of cams/lugs around their circumference which could be set active or inactive changing the key stream.<br><br>Three models of the Lorenz are emulated, SZ40, SZ42a and SZ42b and three example wheel patterns (the lug settings) are included (KH, ZMUG & BREAM) with the option to set a custom set using the letter 'x' for active or '.' for an inactive lug.<br><br>The input can either be plaintext or ITA2 when sending and ITA2 when receiving.<br><br>To learn more, Virtual Lorenz, an online, browser based simulation of the Lorenz SZ40/42 is available at <a href='https://lorenz.virtualcolossus.co.uk' target='_blank'>lorenz.virtualcolossus.co.uk</a>.<br><br>A more detailed description of this operation can be found <a href='https://github.com/gchq/CyberChef/wiki/Lorenz-SZ' target='_blank'>here</a>.",e.infoURL="https://wikipedia.org/wiki/Lorenz_cipher",e.inputType="string",e.outputType="string",e.args=[{name:"Model",type:"option",value:["SZ40","SZ42a","SZ42b"]},{name:"Wheel Pattern",type:"argSelector",value:[{name:"KH Pattern",off:[19,20,21,22,23,24,25,26,27,28,29,30]},{name:"ZMUG Pattern",off:[19,20,21,22,23,24,25,26,27,28,29,30]},{name:"BREAM Pattern",off:[19,20,21,22,23,24,25,26,27,28,29,30]},{name:"No Pattern",off:[19,20,21,22,23,24,25,26,27,28,29,30]},{name:"Custom",on:[19,20,21,22,23,24,25,26,27,28,29,30]}]},{name:"KT-Schalter",type:"boolean"},{name:"Mode",type:"argSelector",value:[{name:"Send",on:[4],off:[5]},{name:"Receive",off:[4],on:[5]}]},{name:"Input Type",type:"option",value:["Plaintext","ITA2"]},{name:"Output Type",type:"option",value:["Plaintext","ITA2"]},{name:"ITA2 Format",type:"option",value:["5/8/9","+/-/."]},{name:"Ψ1 start (1-43)",type:"number",value:1},{name:"Ψ2 start (1-47)",type:"number",value:1},{name:"Ψ3 start (1-51)",type:"number",value:1},{name:"Ψ4 start (1-53)",type:"number",value:1},{name:"Ψ5 start (1-59)",type:"number",value:1},{name:"Μ37 start (1-37)",type:"number",value:1},{name:"Μ61 start (1-61)",type:"number",value:1},{name:"Χ1 start (1-41)",type:"number",value:1},{name:"Χ2 start (1-31)",type:"number",value:1},{name:"Χ3 start (1-29)",type:"number",value:1},{name:"Χ4 start (1-26)",type:"number",value:1},{name:"Χ5 start (1-23)",type:"number",value:1},{name:"Ψ1 lugs (43)",type:"string",value:".x...xx.x.x..xxx.x.x.xxxx.x.x.x.x.x..x.xx.x"},{name:"Ψ2 lugs (47)",type:"string",value:".xx.x.xxx..x.x.x..x.xx.x.xxx.x....x.xx.x.x.x..x"},{name:"Ψ3 lugs (51)",type:"string",value:".x.x.x..xxx....x.x.xx.x.x.x..xxx.x.x..x.x.xx..x.x.x"},{name:"Ψ4 lugs (53)",type:"string",value:".xx...xxxxx.x.x.xx...x.xx.x.x..x.x.xx.x..x.x.x.x.x.x."},{name:"Ψ5 lugs (59)",type:"string",value:"xx...xx.x..x.xx.x...x.x.x.x.x.x.x.x.xx..xxxx.x.x...xx.x..x."},{name:"Μ37 lugs (37)",type:"string",value:"x.x.x.x.x.x...x.x.x...x.x.x...x.x...."},{name:"Μ61 lugs (61)",type:"string",value:".xxxx.xxxx.xxx.xxxx.xx....xxx.xxxx.xxxx.xxxx.xxxx.xxx.xxxx..."},{name:"Χ1 lugs (41)",type:"string",value:".x...xxx.x.xxxx.x...x.x..xxx....xx.xxxx.."},{name:"Χ2 lugs (31)",type:"string",value:"x..xxx...x.xxxx..xx..x..xx.xx.."},{name:"Χ3 lugs (29)",type:"string",value:"..xx..x.xxx...xx...xx..xx.xx."},{name:"Χ4 lugs (26)",type:"string",value:"xx..x..xxxx..xx.xxx....x.."},{name:"Χ5 lugs (23)",type:"string",value:"xx..xx....xxxx.x..x.x.."}],e}return u()(r,[{key:"run",value:function(e,t){var r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],u=t[6],c=t[19],l=t[20],f=t[21],h=t[22],p=t[23],d=t[24],m=t[25],y=t[26],g=t[27],b=t[28],w=t[29],x=t[30],A=t[7],B=t[8],F=t[9],E=t[10],S=t[11],R=t[12],k=t[13],T=t[14],C=t[15],I=t[16],O=t[17],P=t[18];if(this.reverseTable(),A<1||A>43)throw new v.a("Ψ1 start must be between 1 and 43");if(B<1||B>47)throw new v.a("Ψ2 start must be between 1 and 47");if(F<1||F>51)throw new v.a("Ψ3 start must be between 1 and 51");if(E<1||E>53)throw new v.a("Ψ4 start must be between 1 and 53");if(S<1||S>59)throw new v.a("Ψ5 start must be between 1 and 59");if(R<1||R>37)throw new v.a("Μ37 start must be between 1 and 37");if(k<1||k>61)throw new v.a("Μ61 start must be between 1 and 61");if(T<1||T>41)throw new v.a("Χ1 start must be between 1 and 41");if(C<1||C>31)throw new v.a("Χ2 start must be between 1 and 31");if(I<1||I>29)throw new v.a("Χ3 start must be between 1 and 29");if(O<1||O>26)throw new v.a("Χ4 start must be between 1 and 26");if(P<1||P>23)throw new v.a("Χ5 start must be between 1 and 23");var D="";if("Custom"===n){var M=new RegExp("^[.xX]*$");if(43!==c.length||!M.test(c))throw new v.a("Ψ1 custom lugs must be 43 long and can only include . or x ");if(47!==l.length||!M.test(l))throw new v.a("Ψ2 custom lugs must be 47 long and can only include . or x");if(51!==f.length||!M.test(f))throw new v.a("Ψ3 custom lugs must be 51 long and can only include . or x");if(53!==h.length||!M.test(h))throw new v.a("Ψ4 custom lugs must be 53 long and can only include . or x");if(59!==p.length||!M.test(p))throw new v.a("Ψ5 custom lugs must be 59 long and can only include . or x");if(37!==d.length||!M.test(d))throw new v.a("M37 custom lugs must be 37 long and can only include . or x");if(61!==m.length||!M.test(m))throw new v.a("M61 custom lugs must be 61 long and can only include . or x");if(41!==y.length||!M.test(y))throw new v.a("Χ1 custom lugs must be 41 long and can only include . or x");if(31!==g.length||!M.test(g))throw new v.a("Χ2 custom lugs must be 31 long and can only include . or x");if(29!==b.length||!M.test(b))throw new v.a("Χ3 custom lugs must be 29 long and can only include . or x");if(26!==w.length||!M.test(w))throw new v.a("Χ4 custom lugs must be 26 long and can only include . or x");if(23!==x.length||!M.test(x))throw new v.a("Χ5 custom lugs must be 23 long and can only include . or x");(D=he["No Pattern"]).S[1]=this.readLugs(c),D.S[2]=this.readLugs(l),D.S[3]=this.readLugs(f),D.S[4]=this.readLugs(h),D.S[5]=this.readLugs(p),D.M[1]=this.readLugs(m),D.M[2]=this.readLugs(d),D.X[1]=this.readLugs(y),D.X[2]=this.readLugs(g),D.X[3]=this.readLugs(b),D.X[4]=this.readLugs(w),D.X[5]=this.readLugs(x)}else D=he[n];var L=D.X,_=D.S,U=D.M,N=this.convertToITA2(e,a,o),j=[],X=[],G=U[1][k-1],$=U[2][R-1],Y=[0,0,0],Z=this,Q=Array.prototype.map.call(N,(function(e){var t=e.toUpperCase(),n=C+1;32===n&&(n=1);var a=A+1;if(44===a&&(a=1),X=[L[1][T-1],L[2][C-1],L[3][I-1],L[4][O-1],L[5][P-1]],j=[_[1][A-1],_[2][B-1],_[3][F-1],_[4][E-1],_[5][S-1]],void 0===se[t])return"";for(var s=[],c=0;c<=4;c++)s[c]=se[t][c]^j[c]^X[c];var l=s.join("");--T<1&&(T=41),--C<1&&(C=31),--I<1&&(I=29),--O<1&&(O=26),--P<1&&(P=23),--k<1&&(k=61),1===G&&--R<1&&(R=37);var f=$,h=f,p=0;if(Y[2]=Y[1],Y[1]=Y[0],Y[0]="Send"===o?parseInt(se[t][4],10):parseInt(s[4],10),"SZ42a"===r)p=parseInt(L[2][n-1],10),i&&(p=p===Y[2]?0:1),h=0===f&&1===p?0:1;else if("SZ42b"===r){p=1,parseInt(L[2][n-1],10)===parseInt(_[1][a-1],10)&&(p=0),i&&(p=p===Y[2]?0:1),h=0===f&&1===p?0:1}else{if("SZ40"!==r)throw new v.a("Lorenz model type not recognised");h=f}1===h&&(--A<1&&(A=43),--B<1&&(B=47),--F<1&&(F=51),--E<1&&(E=53),--S<1&&(S=59)),G=U[1][k-1],$=U[2][R-1];var d=Z.REVERSE_ITA2_TABLE[l];return"5/8/9"===u&&("+"===d&&(d="5"),"-"===d&&(d="8"),"."===d&&(d="9")),d})).join("");return this.convertFromITA2(Q,s,o)}},{key:"reverseTable",value:function(){for(var e in this.REVERSE_ITA2_TABLE={},this.REVERSE_FIGSHIFT_TABLE={},se){var t=se[e];this.REVERSE_ITA2_TABLE[t]=e}for(var r in fe){var n=fe[r];this.REVERSE_FIGSHIFT_TABLE[n]=r}}},{key:"readLugs",value:function(e){return Array.prototype.map.call(e,(function(e){return"."===e?0:1}))}},{key:"convertToITA2",value:function(e,t,r){var n,i="",o=!1,a=ne(e);try{for(a.s();!(n=a.n()).done;){var s=n.value.toUpperCase();if("ITA2"===t||"Receive"===r){if(-1===ce.indexOf(s)){var u=s;throw"\n"===u&&(u="Carriage Return")," "===u&&(u="Space"),new v.a("Invalid ITA2 character : "+u)}i+=s}else{if(-1===ue.indexOf(s))throw new v.a("Invalid Plaintext character : "+s);o||-1===le.indexOf(s)?o?"\n"===s?i+="34":"\r"===s?i+="4":-1===le.indexOf(s)?(o=!1,i+="88"+s):i+=fe[s]:i+="\n"===s?"34":"\r"===s?"4":s:(o=!0,i+="55"+fe[s])}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"convertFromITA2",value:function(e,t,r){var n,i="",o=!1,a=ne(e);try{for(a.s();!(n=a.n()).done;){var s=n.value;"Receive"===r&&"Plaintext"===t?"5"===s||"+"===s?o=!0:"8"===s||"-"===s?o=!1:i+="9"===s?" ":"3"===s?"\n":"4"===s?"":"/"===s?"/":o?this.REVERSE_FIGSHIFT_TABLE[s]:s:i+=s}}catch(e){a.e(e)}finally{a.f()}return i}}]),r}(m.a),se={A:"11000",B:"10011",C:"01110",D:"10010",E:"10000",F:"10110",G:"01011",H:"00101",I:"01100",J:"11010",K:"11110",L:"01001",M:"00111",N:"00110",O:"00011",P:"01101",Q:"11101",R:"01010",S:"10100",T:"00001",U:"11100",V:"01111",W:"11001",X:"10111",Y:"10101",Z:"10001",3:"00010",4:"01000",9:"00100","/":"00000"," ":"00100",".":"00100",8:"11111",5:"11011","-":"11111","+":"11011"},ue="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890+-'()/:=?,. \n\r",ce="ABCDEFGHIJKLMNOPQRSTUVWXYZ34589+-./",le="1234567890+-'()/:=?,.",fe={1:"Q",2:"W",3:"E",4:"R",5:"T",6:"Y",7:"U",8:"I",9:"O",0:"P"," ":"9","-":"A","?":"B",":":"C","#":"D","%":"F","@":"G","£":"H","":"J","(":"K",")":"L",".":"M",",":"N","'":"S","=":"V","/":"X","+":"Z","\n":"3","\r":"4"},he={"No Pattern":{X:{1:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],2:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],4:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],5:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},S:{1:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],2:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],3:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],4:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],5:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},M:{1:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],2:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},"KH Pattern":{X:{1:[0,1,0,0,0,1,1,1,0,1,0,1,1,1,1,0,1,0,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,0,1,1,1,1,0,0],2:[1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,1,1,0,1,1,0,0],3:[0,0,1,1,0,0,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,0],4:[1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,0,1,1,1,0,0,0,0,1,0,0],5:[1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,0,1,0,0]},S:{1:[0,1,0,0,0,1,1,0,1,0,1,0,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,1,0,1],2:[0,1,1,0,1,0,1,1,1,0,0,1,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,0,1],3:[0,1,0,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1],4:[0,1,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0],5:[1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,1,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,1,0]},M:{1:[0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0],2:[1,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0]}},"ZMUG Pattern":{X:{1:[0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0],2:[1,1,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,0,1,1,0,0,0],3:[0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0],4:[1,0,1,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,1,1,1,0,0,1,0,1],5:[0,1,0,0,1,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,1,0,1]},S:{1:[1,1,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,0],2:[0,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,1],3:[0,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1],4:[0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1],5:[1,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0]},M:{1:[1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,0,1],2:[0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1]}},"BREAM Pattern":{X:{1:[0,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0],2:[0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,1,1,0,1,1,1,0,0,1,1],3:[1,1,0,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,0,0,1,1,0,1,1,1,0,0],4:[1,1,1,1,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,0],5:[0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0]},S:{1:[0,0,0,1,1,1,0,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0],2:[1,1,0,1,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,0,0],3:[1,0,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1],4:[0,1,0,0,0,0,1,0,0,1,0,1,1,1,1,1,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1],5:[1,0,1,0,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,0,1,1,0,1,0,1,0,1,0,1,0]},M:{1:[1,0,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,1,0,1,1,1],2:[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,1,1,0,1]}}},pe=ae;function de(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}function me(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return ve(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ve(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}
/**
 * Emulation of the Bombe machine.
 * This version carries out multiple Bombe runs to handle unknown rotor configurations.
 *
 * @author s2224834
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */function ye(e,t,r){var n,i=[],o=me(e.slice(t,r));try{for(o.s();!(n=o.n()).done;){var a=n.value;i.push(a.value)}}catch(e){o.e(e)}finally{o.f()}return i.join("\n")}var ge=function(e){l()(r,e);var t=de(r);function r(){var e;return a()(this,r),(e=t.call(this)).name="Multiple Bombe",e.module="Bletchley",e.description="Emulation of the Bombe machine used to attack Enigma. This version carries out multiple Bombe runs to handle unknown rotor configurations.<br><br>You should test your menu on the single Bombe operation before running it here. See the description of the Bombe operation for instructions on choosing a crib.<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",e.infoURL="https://wikipedia.org/wiki/Bombe",e.inputType="string",e.outputType="JSON",e.presentType="html",e.args=[{name:"Standard Enigmas",type:"populateMultiOption",value:[{name:"German Service Enigma (First - 3 rotor)",value:[ye(x,0,5),"",ye(B,0,1)]},{name:"German Service Enigma (Second - 3 rotor)",value:[ye(x,0,8),"",ye(B,0,2)]},{name:"German Service Enigma (Third - 4 rotor)",value:[ye(x,0,8),ye(A,1,2),ye(B,2,3)]},{name:"German Service Enigma (Fourth - 4 rotor)",value:[ye(x,0,8),ye(A,1,3),ye(B,2,4)]},{name:"User defined",value:["","",""]}],target:[1,2,3]},{name:"Main rotors",type:"text",value:""},{name:"4th rotor",type:"text",value:""},{name:"Reflectors",type:"text",value:""},{name:"Crib",type:"string",value:""},{name:"Crib offset",type:"number",value:0},{name:"Use checking machine",type:"boolean",value:!0}],e}return u()(r,[{key:"updateStatus",value:function(e,t,r,n){var i=(Date.now()-n)/r*(1-r)/1e3,o=Math.floor(i/3600),a=("0"+Math.floor(i%3600/60)).slice(-2),s=("0"+Math.floor(i%60)).slice(-2),u=`Bombe run with ${e} loop${1===e?"":"s"} in menu (2+ desirable): ${t} stops, ${Math.floor(100*r)}% done, ${o}:${a}:${s} remaining`;self.sendStatusMessage(u)}},{key:"validateRotor",value:function(e){if(e.includes("<")&&(e=e.split("<",2)[0]),!/^[A-Z]{26}$/.test(e))throw new v.a("Rotor wiring must be 26 unique uppercase letters");if(26!==new Set(e).size)throw new v.a("Rotor wiring must be 26 unique uppercase letters");return e}},{key:"run",value:function(e,t){var r,n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],u=t[6],c=[],l=[],f=[],h=me(n.split("\n"));try{for(h.s();!(r=h.n()).done;){var p=r.value;p=this.validateRotor(p),c.push(p)}}catch(e){h.e(e)}finally{h.f()}if(c.length<3)throw new v.a("A minimum of three rotors must be supplied");if(""!==i){var d,m=me(i.split("\n"));try{for(m.s();!(d=m.n()).done;){var g=d.value;g=this.validateRotor(g),l.push(g)}}catch(e){m.e(e)}finally{m.f()}}0===l.length&&l.push("");var b,w=me(o.split("\n"));try{for(w.s();!(b=w.n()).done;){var x=b.value,A=new T(x);f.push(A)}}catch(e){w.e(e)}finally{w.f()}if(0===f.length)throw new v.a("A minimum of one reflector must be supplied");if(0===a.length)throw new v.a("Crib cannot be empty");if(s<0)throw new v.a("Offset cannot be negative");e=e.replace(/[^A-Za-z]/g,"").toUpperCase(),a=a.replace(/[^A-Za-z]/g,"").toUpperCase();var B,F=e.slice(s);B=Object(y.d)()?this.updateStatus:void 0;for(var E=void 0,S={bombeRuns:[]},R=6*function(e,t){for(var r=1,n=1;n<=t;n++)r*=(e+1-n)/n;return r}(c.length,3)*l.length*f.length,k=0,C=0,I=Date.now(),O=0,P=c;O<P.length;O++){var D,M=P[O],L=me(c);try{for(L.s();!(D=L.n()).done;){var _=D.value;if(_!==M){var U,N=me(c);try{for(N.s();!(U=N.n()).done;){var j=U.value;if(j!==_&&j!==M){var G,$=me(l);try{for($.s();!(G=$.n()).done;){var Y,Z=G.value,Q=me(f);try{for(Q.s();!(Y=Q.n()).done;){var H=Y.value;k++;var V=[M,_,j];""!==Z&&V.push(Z),void 0===E?(E=new X(V,H,F,a,u),S.nLoops=E.nLoops):E.changeRotors(V,H);var W=E.run();C+=W.length,void 0!==B&&B(E.nLoops,C,k/R,I),W.length>0&&S.bombeRuns.push({rotors:V,reflector:H.pairs,result:W})}}catch(e){Q.e(e)}finally{Q.f()}}}catch(e){$.e(e)}finally{$.f()}}}}catch(e){N.e(e)}finally{N.f()}}}}catch(e){L.e(e)}finally{L.f()}}return S}},{key:"present",value:function(e){var t,r=`Bombe run on menu with ${e.nLoops} loop${1===e.nLoops?"":"s"} (2+ desirable). Note: Rotors and rotor positions are listed left to right, ignore stepping and the ring setting, and positions start at the beginning of the crib. Some plugboard settings are determined. A decryption preview starting at the beginning of the crib and ignoring stepping is also provided.\n`,n=me(e.bombeRuns);try{for(n.s();!(t=n.n()).done;){var o=t.value;r+=`\nRotors: ${o.rotors.slice().reverse().join(", ")}\nReflector: ${o.reflector}\n`,r+="<table class='table table-hover table-sm table-bordered table-nonfluid'><tr><th>Rotor stops</th>  <th>Partial plugboard</th>  <th>Decryption preview</th></tr>\n";var a,s=me(o.result);try{for(s.s();!(a=s.n()).done;){var u=i()(a.value,3);r+=`<tr><td>${u[0]}</td>  <td>${u[1]}</td>  <td>${u[2]}</td></tr>\n`}}catch(e){s.e(e)}finally{s.f()}r+="</table>\n"}}catch(e){n.e(e)}finally{n.f()}return r}}]),r}(m.a),be=r(30),we=r.n(be);function xe(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Ae(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ae(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function Ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Be(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * Emulation of the Typex machine.
 *
 * @author s2224834
 * @author The National Museum of Computing - Bombe Rebuild Project
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}for(var Fe=[{name:"Example 1",value:"MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW"},{name:"Example 2",value:"KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW"},{name:"Example 3",value:"BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW"},{name:"Example 4",value:"ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW"},{name:"Example 5",value:"QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW"},{name:"Example 6",value:"BDCNWUEIQVFTSXALOGZJYMHKPR<BFHNQUW"},{name:"Example 7",value:"WJUKEIABMSGFTQZVCNPHORDXYL<BFHNQUW"},{name:"Example 8",value:"TNVCZXDIPFWQKHSJMAOYLEURGB<BFHNQUW"}],Ee=[{name:"Example",value:"AN BC FG IE KD LU MH OR TS VZ WQ XJ YP"}],Se={Q:"1",W:"2",E:"3",R:"4",T:"5",Y:"6",U:"7",I:"8",O:"9",P:"0",A:"-",S:"/",D:"Z",F:"%",G:"X",H:"£",K:"(",L:")",C:"V",B:"'",N:",",M:"."},Re={},ke=0,Te=Object.keys(Se);ke<Te.length;ke++){var Ce=Te[ke];Re[Se[Ce]]=Ce}var Ie=function(e){l()(r,e);var t=Be(r);function r(e,n,i,o){var s;if(a()(this,r),s=t.call(this,e,n,i),5!==e.length)throw new v.a("Typex must have 5 rotors");return s.keyboard=o,s}return u()(r,[{key:"step",value:function(){var e=this.rotors[2],t=this.rotors[3];(e.step(),e.steps.has(e.pos)||t.steps.has(y.b.mod(t.pos+1,26)))&&(t.step(),t.steps.has(t.pos)&&this.rotors[4].step())}},{key:"crypt",value:function(e){var t=e;if("Encrypt"===this.keyboard){t="";var n,i=!1,o=xe(e);try{for(o.s();!(n=o.n()).done;){var a=n.value;" "===a?t+="X":i?Object.prototype.hasOwnProperty.call(Re,a)?t+=Re[a]:(i=!1,t+="V"+a):Object.prototype.hasOwnProperty.call(Re,a)?(i=!0,t+="Z"+Re[a]):t+=a}}catch(e){o.e(e)}finally{o.f()}}var s=we()(d()(r.prototype),"crypt",this).call(this,t),u=s;if("Decrypt"===this.keyboard){u="";var c,l=!1,f=xe(s);try{for(f.s();!(c=f.n()).done;){var h=c.value;"X"===h?u+=" ":"V"===h?l=!1:"Z"===h?l=!0:u+=l?Se[h]:h}}catch(e){f.e(e)}finally{f.f()}}return u}}]),r}(I),Oe=function(e){l()(r,e);var t=Be(r);function r(e,n,i,o,s){a()(this,r);var u=e;if(i){for(var c=new Array(26),l=0;l<26;l++){var f=y.b.mod(26-E(e[l]),26),h=S(y.b.mod(26-E(F[l]),26));c[f]=h}u=c.join("")}return t.call(this,u,n,o,s)}return r}(R),Pe=function(e){l()(r,e);var t=Be(r);function r(e){var n;if(a()(this,r),!/^[A-Z]{26}$/.test(e))throw new v.a("Plugboard wiring must be 26 unique uppercase letters");e=e.replace(/./g,(function(e){return"AZYXWVUTSRQPONMLKJIHGFEDCB"[E(e)]}));try{n=t.call(this,e,"","A","A")}catch(e){throw new v.a(e.message.replace("Rotor","Plugboard"))}return n}return u()(r,[{key:"transform",value:function(e){return y.b.mod(this.map[y.b.mod(e+this.pos,26)]-this.pos,26)}},{key:"revTransform",value:function(e){return y.b.mod(this.revMap[y.b.mod(e+this.pos,26)]-this.pos,26)}}]),r}(R);function De(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}
/**
 * Emulation of the Typex machine.
 *
 * @author s2224834
 * @copyright Crown Copyright 2019
 * @license Apache-2.0
 */();return function(){var r,n=d()(e);if(t){var i=d()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h()(this,r)}}var Me=function(e){l()(r,e);var t=De(r);function r(){var e;return a()(this,r),(e=t.call(this)).name="Typex",e.module="Bletchley",e.description="Encipher/decipher with the WW2 Typex machine.<br><br>Typex was originally built by the British Royal Air Force prior to WW2, and is based on the Enigma machine with some improvements made, including using five rotors with more stepping points and interchangeable wiring cores. It was used across the British and Commonwealth militaries. A number of later variants were produced; here we simulate a WW2 era Mark 22 Typex with plugboards for the reflector and input. Typex rotors were changed regularly and none are public: a random example set are provided.<br><br>To configure the reflector plugboard, enter a string of connected pairs of letters in the reflector box, e.g. <code>AB CD EF</code> connects A to B, C to D, and E to F (you'll need to connect every letter). There is also an input plugboard: unlike Enigma's plugboard, it's not restricted to pairs, so it's entered like a rotor (without stepping). To create your own rotor, enter the letters that the rotor maps A to Z to, in order, optionally followed by <code>&lt;</code> then a list of stepping points.<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",e.infoURL="https://wikipedia.org/wiki/Typex",e.inputType="string",e.outputType="string",e.args=[{name:"1st (left-hand) rotor",type:"editableOption",value:Fe,defaultIndex:0},{name:"1st rotor reversed",type:"boolean",value:!1},{name:"1st rotor ring setting",type:"option",value:F},{name:"1st rotor initial value",type:"option",value:F},{name:"2nd rotor",type:"editableOption",value:Fe,defaultIndex:1},{name:"2nd rotor reversed",type:"boolean",value:!1},{name:"2nd rotor ring setting",type:"option",value:F},{name:"2nd rotor initial value",type:"option",value:F},{name:"3rd (middle) rotor",type:"editableOption",value:Fe,defaultIndex:2},{name:"3rd rotor reversed",type:"boolean",value:!1},{name:"3rd rotor ring setting",type:"option",value:F},{name:"3rd rotor initial value",type:"option",value:F},{name:"4th (static) rotor",type:"editableOption",value:Fe,defaultIndex:3},{name:"4th rotor reversed",type:"boolean",value:!1},{name:"4th rotor ring setting",type:"option",value:F},{name:"4th rotor initial value",type:"option",value:F},{name:"5th (right-hand, static) rotor",type:"editableOption",value:Fe,defaultIndex:4},{name:"5th rotor reversed",type:"boolean",value:!1},{name:"5th rotor ring setting",type:"option",value:F},{name:"5th rotor initial value",type:"option",value:F},{name:"Reflector",type:"editableOption",value:Ee},{name:"Plugboard",type:"string",value:""},{name:"Typex keyboard emulation",type:"option",value:["None","Encrypt","Decrypt"]},{name:"Strict output",hint:"Remove non-alphabet letters and group output",type:"boolean",value:!0}],e}return u()(r,[{key:"parseRotorStr",value:function(e,t){if(""===e)throw new v.a(`Rotor ${t} must be provided.`);return e.includes("<")?e.split("<",2):[e,""]}},{key:"run",value:function(e,t){for(var r=t[20],n=t[21],o=t[22],a=t[23],s=[],u=0;u<5;u++){var c=this.parseRotorStr(t[4*u]),l=i()(c,2),f=l[0],h=l[1];s.push(new Oe(f,h,t[4*u+1],t[4*u+2],t[4*u+3]))}s.reverse();var p=new T(r),d=n;""===d&&(d="ABCDEFGHIJKLMNOPQRSTUVWXYZ");var m=new Pe(d);a&&(e="Encrypt"===o?e.replace(/[^A-Za-z0-9 /%£()',.-]/g,""):e.replace(/[^A-Za-z]/g,""));var v=new Ie(s,p,m,o).crypt(e);return a&&"Decrypt"!==o&&(v=v.replace(/([A-Z]{5})(?!$)/g,"$1 ")),v}},{key:"highlight",value:function(e,t){if(!1===t[18])return e}},{key:"highlightReverse",value:function(e,t){if(!1===t[18])return e}}]),r}(m.a),Le="undefined"==typeof self?{}:self.OpModules||{};Le.Bletchley={Bombe:Z,Colossus:ee,Enigma:re,Lorenz:pe,"Multiple Bombe":ge,Typex:Me};t.default=Le},16:function(e,t,r){"use strict";r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return a}));var n=r(1),i=r(7);
/**
 * Base64 functions.
 *
 * @author n1474335 [n1474335@gmail.com]
 * @copyright Crown Copyright 2016
 * @license Apache-2.0
 */
function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"A-Za-z0-9+/=";if(!e)return"";if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),"string"==typeof e&&(e=n.b.strToByteArray(e)),64!==(t=n.b.expandAlphRange(t).join("")).length&&65!==t.length)throw new i.a(`Invalid Base64 alphabet length (${t.length}): ${t}`);for(var r,o,a,s,u,c,l,f="",h=0;h<e.length;)s=(r=e[h++])>>2,u=(3&r)<<4|(o=e[h++])>>4,c=(15&o)<<2|(a=e[h++])>>6,l=63&a,isNaN(o)?c=l=64:isNaN(a)&&(l=64),f+=t.charAt(s)+t.charAt(u)+t.charAt(c)+t.charAt(l);return f}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"A-Za-z0-9+/=",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"string",o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(!e)return"string"===r?"":[];if(t=t||"A-Za-z0-9+/=",64!==(t=n.b.expandAlphRange(t).join("")).length&&65!==t.length)throw new i.a(`Invalid Base64 alphabet length (${t.length}): ${t}`);var a,s,u,c,l,f,h=[],p=0;if(o){var d=new RegExp("[^"+t.replace(/[[\]\\\-^$]/g,"\\$&")+"]","g");e=e.replace(d,"")}for(;p<e.length;)a=t.indexOf(e.charAt(p++))<<2|(c=-1===(c=t.indexOf(e.charAt(p++)||"="))?64:c)>>4,s=(15&c)<<4|(l=-1===(l=t.indexOf(e.charAt(p++)||"="))?64:l)>>2,u=(3&l)<<6|(f=-1===(f=t.indexOf(e.charAt(p++)||"="))?64:f),h.push(a),64!==l&&h.push(s),64!==f&&h.push(u);return"string"===r?n.b.byteArrayToUtf8(h):h}},17:function(e,t,r){var n;!function(i){"use strict";var o,a=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,s=Math.ceil,u=Math.floor,c="[BigNumber Error] ",l=c+"Number primitive has more than 15 significant digits: ",f=1e14,h=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],p=1e9;function d(e){var t=0|e;return e>0||e===t?t:t-1}function m(e){for(var t,r,n=1,i=e.length,o=e[0]+"";n<i;){for(r=14-(t=e[n++]+"").length;r--;t="0"+t);o+=t}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function v(e,t){var r,n,i=e.c,o=t.c,a=e.s,s=t.s,u=e.e,c=t.e;if(!a||!s)return null;if(r=i&&!i[0],n=o&&!o[0],r||n)return r?n?0:-s:a;if(a!=s)return a;if(r=a<0,n=u==c,!i||!o)return n?0:!i^r?1:-1;if(!n)return u>c^r?1:-1;for(s=(u=i.length)<(c=o.length)?u:c,a=0;a<s;a++)if(i[a]!=o[a])return i[a]>o[a]^r?1:-1;return u==c?0:u>c^r?1:-1}function y(e,t,r,n){if(e<t||e>r||e!==u(e))throw Error(c+(n||"Argument")+("number"==typeof e?e<t||e>r?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function g(e){var t=e.c.length-1;return d(e.e/14)==t&&e.c[t]%2!=0}function b(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function w(e,t,r){var n,i;if(t<0){for(i=r+".";++t;i+=r);e=i+e}else if(++t>(n=e.length)){for(i=r,t-=n;--t;i+=r);e+=i}else t<n&&(e=e.slice(0,t)+"."+e.slice(t));return e}(o=function e(t){var r,n,i,o,x,A,B,F,E,S=N.prototype={constructor:N,toString:null,valueOf:null},R=new N(1),k=20,T=4,C=-7,I=21,O=-1e7,P=1e7,D=!1,M=1,L=0,_={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:" ",suffix:""},U="0123456789abcdefghijklmnopqrstuvwxyz";function N(e,t){var r,o,s,c,f,h,p,d,m=this;if(!(m instanceof N))return new N(e,t);if(null==t){if(e&&!0===e._isBigNumber)return m.s=e.s,void(!e.c||e.e>P?m.c=m.e=null:e.e<O?m.c=[m.e=0]:(m.e=e.e,m.c=e.c.slice()));if((h="number"==typeof e)&&0*e==0){if(m.s=1/e<0?(e=-e,-1):1,e===~~e){for(c=0,f=e;f>=10;f/=10,c++);return void(c>P?m.c=m.e=null:(m.e=c,m.c=[e]))}d=String(e)}else{if(!a.test(d=String(e)))return i(m,d,h);m.s=45==d.charCodeAt(0)?(d=d.slice(1),-1):1}(c=d.indexOf("."))>-1&&(d=d.replace(".","")),(f=d.search(/e/i))>0?(c<0&&(c=f),c+=+d.slice(f+1),d=d.substring(0,f)):c<0&&(c=d.length)}else{if(y(t,2,U.length,"Base"),10==t)return $(m=new N(e),k+m.e+1,T);if(d=String(e),h="number"==typeof e){if(0*e!=0)return i(m,d,h,t);if(m.s=1/e<0?(d=d.slice(1),-1):1,N.DEBUG&&d.replace(/^0\.0*|\./,"").length>15)throw Error(l+e)}else m.s=45===d.charCodeAt(0)?(d=d.slice(1),-1):1;for(r=U.slice(0,t),c=f=0,p=d.length;f<p;f++)if(r.indexOf(o=d.charAt(f))<0){if("."==o){if(f>c){c=p;continue}}else if(!s&&(d==d.toUpperCase()&&(d=d.toLowerCase())||d==d.toLowerCase()&&(d=d.toUpperCase()))){s=!0,f=-1,c=0;continue}return i(m,String(e),h,t)}h=!1,(c=(d=n(d,t,10,m.s)).indexOf("."))>-1?d=d.replace(".",""):c=d.length}for(f=0;48===d.charCodeAt(f);f++);for(p=d.length;48===d.charCodeAt(--p););if(d=d.slice(f,++p)){if(p-=f,h&&N.DEBUG&&p>15&&(e>9007199254740991||e!==u(e)))throw Error(l+m.s*e);if((c=c-f-1)>P)m.c=m.e=null;else if(c<O)m.c=[m.e=0];else{if(m.e=c,m.c=[],f=(c+1)%14,c<0&&(f+=14),f<p){for(f&&m.c.push(+d.slice(0,f)),p-=14;f<p;)m.c.push(+d.slice(f,f+=14));f=14-(d=d.slice(f)).length}else f-=p;for(;f--;d+="0");m.c.push(+d)}}else m.c=[m.e=0]}function j(e,t,r,n){var i,o,a,s,u;if(null==r?r=T:y(r,0,8),!e.c)return e.toString();if(i=e.c[0],a=e.e,null==t)u=m(e.c),u=1==n||2==n&&(a<=C||a>=I)?b(u,a):w(u,a,"0");else if(o=(e=$(new N(e),t,r)).e,s=(u=m(e.c)).length,1==n||2==n&&(t<=o||o<=C)){for(;s<t;u+="0",s++);u=b(u,o)}else if(t-=a,u=w(u,o,"0"),o+1>s){if(--t>0)for(u+=".";t--;u+="0");}else if((t+=o-s)>0)for(o+1==s&&(u+=".");t--;u+="0");return e.s<0&&i?"-"+u:u}function X(e,t){for(var r,n=1,i=new N(e[0]);n<e.length;n++){if(!(r=new N(e[n])).s){i=r;break}t.call(i,r)&&(i=r)}return i}function G(e,t,r){for(var n=1,i=t.length;!t[--i];t.pop());for(i=t[0];i>=10;i/=10,n++);return(r=n+14*r-1)>P?e.c=e.e=null:r<O?e.c=[e.e=0]:(e.e=r,e.c=t),e}function $(e,t,r,n){var i,o,a,c,l,p,d,m=e.c,v=h;if(m){e:{for(i=1,c=m[0];c>=10;c/=10,i++);if((o=t-i)<0)o+=14,a=t,d=(l=m[p=0])/v[i-a-1]%10|0;else if((p=s((o+1)/14))>=m.length){if(!n)break e;for(;m.length<=p;m.push(0));l=d=0,i=1,a=(o%=14)-14+1}else{for(l=c=m[p],i=1;c>=10;c/=10,i++);d=(a=(o%=14)-14+i)<0?0:l/v[i-a-1]%10|0}if(n=n||t<0||null!=m[p+1]||(a<0?l:l%v[i-a-1]),n=r<4?(d||n)&&(0==r||r==(e.s<0?3:2)):d>5||5==d&&(4==r||n||6==r&&(o>0?a>0?l/v[i-a]:0:m[p-1])%10&1||r==(e.s<0?8:7)),t<1||!m[0])return m.length=0,n?(t-=e.e+1,m[0]=v[(14-t%14)%14],e.e=-t||0):m[0]=e.e=0,e;if(0==o?(m.length=p,c=1,p--):(m.length=p+1,c=v[14-o],m[p]=a>0?u(l/v[i-a]%v[a])*c:0),n)for(;;){if(0==p){for(o=1,a=m[0];a>=10;a/=10,o++);for(a=m[0]+=c,c=1;a>=10;a/=10,c++);o!=c&&(e.e++,m[0]==f&&(m[0]=1));break}if(m[p]+=c,m[p]!=f)break;m[p--]=0,c=1}for(o=m.length;0===m[--o];m.pop());}e.e>P?e.c=e.e=null:e.e<O&&(e.c=[e.e=0])}return e}function Y(e){var t,r=e.e;return null===r?e.toString():(t=m(e.c),t=r<=C||r>=I?b(t,r):w(t,r,"0"),e.s<0?"-"+t:t)}return N.clone=e,N.ROUND_UP=0,N.ROUND_DOWN=1,N.ROUND_CEIL=2,N.ROUND_FLOOR=3,N.ROUND_HALF_UP=4,N.ROUND_HALF_DOWN=5,N.ROUND_HALF_EVEN=6,N.ROUND_HALF_CEIL=7,N.ROUND_HALF_FLOOR=8,N.EUCLID=9,N.config=N.set=function(e){var t,r;if(null!=e){if("object"!=typeof e)throw Error(c+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(y(r=e[t],0,p,t),k=r),e.hasOwnProperty(t="ROUNDING_MODE")&&(y(r=e[t],0,8,t),T=r),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((r=e[t])&&r.pop?(y(r[0],-p,0,t),y(r[1],0,p,t),C=r[0],I=r[1]):(y(r,-p,p,t),C=-(I=r<0?-r:r))),e.hasOwnProperty(t="RANGE"))if((r=e[t])&&r.pop)y(r[0],-p,-1,t),y(r[1],1,p,t),O=r[0],P=r[1];else{if(y(r,-p,p,t),!r)throw Error(c+t+" cannot be zero: "+r);O=-(P=r<0?-r:r)}if(e.hasOwnProperty(t="CRYPTO")){if((r=e[t])!==!!r)throw Error(c+t+" not true or false: "+r);if(r){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw D=!r,Error(c+"crypto unavailable");D=r}else D=r}if(e.hasOwnProperty(t="MODULO_MODE")&&(y(r=e[t],0,9,t),M=r),e.hasOwnProperty(t="POW_PRECISION")&&(y(r=e[t],0,p,t),L=r),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(r=e[t]))throw Error(c+t+" not an object: "+r);_=r}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(r=e[t])||/^.$|[+-.\s]|(.).*\1/.test(r))throw Error(c+t+" invalid: "+r);U=r}}return{DECIMAL_PLACES:k,ROUNDING_MODE:T,EXPONENTIAL_AT:[C,I],RANGE:[O,P],CRYPTO:D,MODULO_MODE:M,POW_PRECISION:L,FORMAT:_,ALPHABET:U}},N.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!N.DEBUG)return!0;var t,r,n=e.c,i=e.e,o=e.s;e:if("[object Array]"=={}.toString.call(n)){if((1===o||-1===o)&&i>=-p&&i<=p&&i===u(i)){if(0===n[0]){if(0===i&&1===n.length)return!0;break e}if((t=(i+1)%14)<1&&(t+=14),String(n[0]).length==t){for(t=0;t<n.length;t++)if((r=n[t])<0||r>=f||r!==u(r))break e;if(0!==r)return!0}}}else if(null===n&&null===i&&(null===o||1===o||-1===o))return!0;throw Error(c+"Invalid BigNumber: "+e)},N.maximum=N.max=function(){return X(arguments,S.lt)},N.minimum=N.min=function(){return X(arguments,S.gt)},N.random=(o=9007199254740992*Math.random()&2097151?function(){return u(9007199254740992*Math.random())}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,r,n,i,a,l=0,f=[],d=new N(R);if(null==e?e=k:y(e,0,p),i=s(e/14),D)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(i*=2));l<i;)(a=131072*t[l]+(t[l+1]>>>11))>=9e15?(r=crypto.getRandomValues(new Uint32Array(2)),t[l]=r[0],t[l+1]=r[1]):(f.push(a%1e14),l+=2);l=i/2}else{if(!crypto.randomBytes)throw D=!1,Error(c+"crypto unavailable");for(t=crypto.randomBytes(i*=7);l<i;)(a=281474976710656*(31&t[l])+1099511627776*t[l+1]+4294967296*t[l+2]+16777216*t[l+3]+(t[l+4]<<16)+(t[l+5]<<8)+t[l+6])>=9e15?crypto.randomBytes(7).copy(t,l):(f.push(a%1e14),l+=7);l=i/7}if(!D)for(;l<i;)(a=o())<9e15&&(f[l++]=a%1e14);for(e%=14,(i=f[--l])&&e&&(a=h[14-e],f[l]=u(i/a)*a);0===f[l];f.pop(),l--);if(l<0)f=[n=0];else{for(n=-1;0===f[0];f.splice(0,1),n-=14);for(l=1,a=f[0];a>=10;a/=10,l++);l<14&&(n-=14-l)}return d.e=n,d.c=f,d}),N.sum=function(){for(var e=1,t=arguments,r=new N(t[0]);e<t.length;)r=r.plus(t[e++]);return r},n=function(){function e(e,t,r,n){for(var i,o,a=[0],s=0,u=e.length;s<u;){for(o=a.length;o--;a[o]*=t);for(a[0]+=n.indexOf(e.charAt(s++)),i=0;i<a.length;i++)a[i]>r-1&&(null==a[i+1]&&(a[i+1]=0),a[i+1]+=a[i]/r|0,a[i]%=r)}return a.reverse()}return function(t,n,i,o,a){var s,u,c,l,f,h,p,d,v=t.indexOf("."),y=k,g=T;for(v>=0&&(l=L,L=0,t=t.replace(".",""),h=(d=new N(n)).pow(t.length-v),L=l,d.c=e(w(m(h.c),h.e,"0"),10,i,"0123456789"),d.e=d.c.length),c=l=(p=e(t,n,i,a?(s=U,"0123456789"):(s="0123456789",U))).length;0==p[--l];p.pop());if(!p[0])return s.charAt(0);if(v<0?--c:(h.c=p,h.e=c,h.s=o,p=(h=r(h,d,y,g,i)).c,f=h.r,c=h.e),v=p[u=c+y+1],l=i/2,f=f||u<0||null!=p[u+1],f=g<4?(null!=v||f)&&(0==g||g==(h.s<0?3:2)):v>l||v==l&&(4==g||f||6==g&&1&p[u-1]||g==(h.s<0?8:7)),u<1||!p[0])t=f?w(s.charAt(1),-y,s.charAt(0)):s.charAt(0);else{if(p.length=u,f)for(--i;++p[--u]>i;)p[u]=0,u||(++c,p=[1].concat(p));for(l=p.length;!p[--l];);for(v=0,t="";v<=l;t+=s.charAt(p[v++]));t=w(t,c,s.charAt(0))}return t}}(),r=function(){function e(e,t,r){var n,i,o,a,s=0,u=e.length,c=t%1e7,l=t/1e7|0;for(e=e.slice();u--;)s=((i=c*(o=e[u]%1e7)+(n=l*o+(a=e[u]/1e7|0)*c)%1e7*1e7+s)/r|0)+(n/1e7|0)+l*a,e[u]=i%r;return s&&(e=[s].concat(e)),e}function t(e,t,r,n){var i,o;if(r!=n)o=r>n?1:-1;else for(i=o=0;i<r;i++)if(e[i]!=t[i]){o=e[i]>t[i]?1:-1;break}return o}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=e[r]<t[r]?1:0,e[r]=i*n+e[r]-t[r];for(;!e[0]&&e.length>1;e.splice(0,1));}return function(n,i,o,a,s){var c,l,h,p,m,v,y,g,b,w,x,A,B,F,E,S,R,k=n.s==i.s?1:-1,T=n.c,C=i.c;if(!(T&&T[0]&&C&&C[0]))return new N(n.s&&i.s&&(T?!C||T[0]!=C[0]:C)?T&&0==T[0]||!C?0*k:k/0:NaN);for(b=(g=new N(k)).c=[],k=o+(l=n.e-i.e)+1,s||(s=f,l=d(n.e/14)-d(i.e/14),k=k/14|0),h=0;C[h]==(T[h]||0);h++);if(C[h]>(T[h]||0)&&l--,k<0)b.push(1),p=!0;else{for(F=T.length,S=C.length,h=0,k+=2,(m=u(s/(C[0]+1)))>1&&(C=e(C,m,s),T=e(T,m,s),S=C.length,F=T.length),B=S,x=(w=T.slice(0,S)).length;x<S;w[x++]=0);R=C.slice(),R=[0].concat(R),E=C[0],C[1]>=s/2&&E++;do{if(m=0,(c=t(C,w,S,x))<0){if(A=w[0],S!=x&&(A=A*s+(w[1]||0)),(m=u(A/E))>1)for(m>=s&&(m=s-1),y=(v=e(C,m,s)).length,x=w.length;1==t(v,w,y,x);)m--,r(v,S<y?R:C,y,s),y=v.length,c=1;else 0==m&&(c=m=1),y=(v=C.slice()).length;if(y<x&&(v=[0].concat(v)),r(w,v,x,s),x=w.length,-1==c)for(;t(C,w,S,x)<1;)m++,r(w,S<x?R:C,x,s),x=w.length}else 0===c&&(m++,w=[0]);b[h++]=m,w[0]?w[x++]=T[B]||0:(w=[T[B]],x=1)}while((B++<F||null!=w[0])&&k--);p=null!=w[0],b[0]||b.splice(0,1)}if(s==f){for(h=1,k=b[0];k>=10;k/=10,h++);$(g,o+(g.e=h+14*l-1)+1,a,p)}else g.e=l,g.r=+p;return g}}(),x=/^(-?)0([xbo])(?=\w[\w.]*$)/i,A=/^([^.]+)\.$/,B=/^\.([^.]+)$/,F=/^-?(Infinity|NaN)$/,E=/^\s*\+(?=[\w.])|^\s+|\s+$/g,i=function(e,t,r,n){var i,o=r?t:t.replace(E,"");if(F.test(o))e.s=isNaN(o)?null:o<0?-1:1;else{if(!r&&(o=o.replace(x,(function(e,t,r){return i="x"==(r=r.toLowerCase())?16:"b"==r?2:8,n&&n!=i?e:t})),n&&(i=n,o=o.replace(A,"$1").replace(B,"0.$1")),t!=o))return new N(o,i);if(N.DEBUG)throw Error(c+"Not a"+(n?" base "+n:"")+" number: "+t);e.s=null}e.c=e.e=null},S.absoluteValue=S.abs=function(){var e=new N(this);return e.s<0&&(e.s=1),e},S.comparedTo=function(e,t){return v(this,new N(e,t))},S.decimalPlaces=S.dp=function(e,t){var r,n,i,o=this;if(null!=e)return y(e,0,p),null==t?t=T:y(t,0,8),$(new N(o),e+o.e+1,t);if(!(r=o.c))return null;if(n=14*((i=r.length-1)-d(this.e/14)),i=r[i])for(;i%10==0;i/=10,n--);return n<0&&(n=0),n},S.dividedBy=S.div=function(e,t){return r(this,new N(e,t),k,T)},S.dividedToIntegerBy=S.idiv=function(e,t){return r(this,new N(e,t),0,1)},S.exponentiatedBy=S.pow=function(e,t){var r,n,i,o,a,l,f,h,p=this;if((e=new N(e)).c&&!e.isInteger())throw Error(c+"Exponent not an integer: "+Y(e));if(null!=t&&(t=new N(t)),a=e.e>14,!p.c||!p.c[0]||1==p.c[0]&&!p.e&&1==p.c.length||!e.c||!e.c[0])return h=new N(Math.pow(+Y(p),a?2-g(e):+Y(e))),t?h.mod(t):h;if(l=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new N(NaN);(n=!l&&p.isInteger()&&t.isInteger())&&(p=p.mod(t))}else{if(e.e>9&&(p.e>0||p.e<-1||(0==p.e?p.c[0]>1||a&&p.c[1]>=24e7:p.c[0]<8e13||a&&p.c[0]<=9999975e7)))return o=p.s<0&&g(e)?-0:0,p.e>-1&&(o=1/o),new N(l?1/o:o);L&&(o=s(L/14+2))}for(a?(r=new N(.5),l&&(e.s=1),f=g(e)):f=(i=Math.abs(+Y(e)))%2,h=new N(R);;){if(f){if(!(h=h.times(p)).c)break;o?h.c.length>o&&(h.c.length=o):n&&(h=h.mod(t))}if(i){if(0===(i=u(i/2)))break;f=i%2}else if($(e=e.times(r),e.e+1,1),e.e>14)f=g(e);else{if(0===(i=+Y(e)))break;f=i%2}p=p.times(p),o?p.c&&p.c.length>o&&(p.c.length=o):n&&(p=p.mod(t))}return n?h:(l&&(h=R.div(h)),t?h.mod(t):o?$(h,L,T,void 0):h)},S.integerValue=function(e){var t=new N(this);return null==e?e=T:y(e,0,8),$(t,t.e+1,e)},S.isEqualTo=S.eq=function(e,t){return 0===v(this,new N(e,t))},S.isFinite=function(){return!!this.c},S.isGreaterThan=S.gt=function(e,t){return v(this,new N(e,t))>0},S.isGreaterThanOrEqualTo=S.gte=function(e,t){return 1===(t=v(this,new N(e,t)))||0===t},S.isInteger=function(){return!!this.c&&d(this.e/14)>this.c.length-2},S.isLessThan=S.lt=function(e,t){return v(this,new N(e,t))<0},S.isLessThanOrEqualTo=S.lte=function(e,t){return-1===(t=v(this,new N(e,t)))||0===t},S.isNaN=function(){return!this.s},S.isNegative=function(){return this.s<0},S.isPositive=function(){return this.s>0},S.isZero=function(){return!!this.c&&0==this.c[0]},S.minus=function(e,t){var r,n,i,o,a=this,s=a.s;if(t=(e=new N(e,t)).s,!s||!t)return new N(NaN);if(s!=t)return e.s=-t,a.plus(e);var u=a.e/14,c=e.e/14,l=a.c,h=e.c;if(!u||!c){if(!l||!h)return l?(e.s=-t,e):new N(h?a:NaN);if(!l[0]||!h[0])return h[0]?(e.s=-t,e):new N(l[0]?a:3==T?-0:0)}if(u=d(u),c=d(c),l=l.slice(),s=u-c){for((o=s<0)?(s=-s,i=l):(c=u,i=h),i.reverse(),t=s;t--;i.push(0));i.reverse()}else for(n=(o=(s=l.length)<(t=h.length))?s:t,s=t=0;t<n;t++)if(l[t]!=h[t]){o=l[t]<h[t];break}if(o&&(i=l,l=h,h=i,e.s=-e.s),(t=(n=h.length)-(r=l.length))>0)for(;t--;l[r++]=0);for(t=f-1;n>s;){if(l[--n]<h[n]){for(r=n;r&&!l[--r];l[r]=t);--l[r],l[n]+=f}l[n]-=h[n]}for(;0==l[0];l.splice(0,1),--c);return l[0]?G(e,l,c):(e.s=3==T?-1:1,e.c=[e.e=0],e)},S.modulo=S.mod=function(e,t){var n,i,o=this;return e=new N(e,t),!o.c||!e.s||e.c&&!e.c[0]?new N(NaN):!e.c||o.c&&!o.c[0]?new N(o):(9==M?(i=e.s,e.s=1,n=r(o,e,0,3),e.s=i,n.s*=i):n=r(o,e,0,M),(e=o.minus(n.times(e))).c[0]||1!=M||(e.s=o.s),e)},S.multipliedBy=S.times=function(e,t){var r,n,i,o,a,s,u,c,l,h,p,m,v,y,g=this,b=g.c,w=(e=new N(e,t)).c;if(!(b&&w&&b[0]&&w[0]))return!g.s||!e.s||b&&!b[0]&&!w||w&&!w[0]&&!b?e.c=e.e=e.s=null:(e.s*=g.s,b&&w?(e.c=[0],e.e=0):e.c=e.e=null),e;for(n=d(g.e/14)+d(e.e/14),e.s*=g.s,(u=b.length)<(h=w.length)&&(v=b,b=w,w=v,i=u,u=h,h=i),i=u+h,v=[];i--;v.push(0));for(y=f,1e7,i=h;--i>=0;){for(r=0,p=w[i]%1e7,m=w[i]/1e7|0,o=i+(a=u);o>i;)r=((c=p*(c=b[--a]%1e7)+(s=m*c+(l=b[a]/1e7|0)*p)%1e7*1e7+v[o]+r)/y|0)+(s/1e7|0)+m*l,v[o--]=c%y;v[o]=r}return r?++n:v.splice(0,1),G(e,v,n)},S.negated=function(){var e=new N(this);return e.s=-e.s||null,e},S.plus=function(e,t){var r,n=this,i=n.s;if(t=(e=new N(e,t)).s,!i||!t)return new N(NaN);if(i!=t)return e.s=-t,n.minus(e);var o=n.e/14,a=e.e/14,s=n.c,u=e.c;if(!o||!a){if(!s||!u)return new N(i/0);if(!s[0]||!u[0])return u[0]?e:new N(s[0]?n:0*i)}if(o=d(o),a=d(a),s=s.slice(),i=o-a){for(i>0?(a=o,r=u):(i=-i,r=s),r.reverse();i--;r.push(0));r.reverse()}for((i=s.length)-(t=u.length)<0&&(r=u,u=s,s=r,t=i),i=0;t;)i=(s[--t]=s[t]+u[t]+i)/f|0,s[t]=f===s[t]?0:s[t]%f;return i&&(s=[i].concat(s),++a),G(e,s,a)},S.precision=S.sd=function(e,t){var r,n,i,o=this;if(null!=e&&e!==!!e)return y(e,1,p),null==t?t=T:y(t,0,8),$(new N(o),e,t);if(!(r=o.c))return null;if(n=14*(i=r.length-1)+1,i=r[i]){for(;i%10==0;i/=10,n--);for(i=r[0];i>=10;i/=10,n++);}return e&&o.e+1>n&&(n=o.e+1),n},S.shiftedBy=function(e){return y(e,-9007199254740991,9007199254740991),this.times("1e"+e)},S.squareRoot=S.sqrt=function(){var e,t,n,i,o,a=this,s=a.c,u=a.s,c=a.e,l=k+4,f=new N("0.5");if(1!==u||!s||!s[0])return new N(!u||u<0&&(!s||s[0])?NaN:s?a:1/0);if(0==(u=Math.sqrt(+Y(a)))||u==1/0?(((t=m(s)).length+c)%2==0&&(t+="0"),u=Math.sqrt(+t),c=d((c+1)/2)-(c<0||c%2),n=new N(t=u==1/0?"1e"+c:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+c)):n=new N(u+""),n.c[0])for((u=(c=n.e)+l)<3&&(u=0);;)if(o=n,n=f.times(o.plus(r(a,o,l,1))),m(o.c).slice(0,u)===(t=m(n.c)).slice(0,u)){if(n.e<c&&--u,"9999"!=(t=t.slice(u-3,u+1))&&(i||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||($(n,n.e+k+2,1),e=!n.times(n).eq(a));break}if(!i&&($(o,o.e+k+2,0),o.times(o).eq(a))){n=o;break}l+=4,u+=4,i=1}return $(n,n.e+k+1,T,e)},S.toExponential=function(e,t){return null!=e&&(y(e,0,p),e++),j(this,e,t,1)},S.toFixed=function(e,t){return null!=e&&(y(e,0,p),e=e+this.e+1),j(this,e,t)},S.toFormat=function(e,t,r){var n,i=this;if(null==r)null!=e&&t&&"object"==typeof t?(r=t,t=null):e&&"object"==typeof e?(r=e,e=t=null):r=_;else if("object"!=typeof r)throw Error(c+"Argument not an object: "+r);if(n=i.toFixed(e,t),i.c){var o,a=n.split("."),s=+r.groupSize,u=+r.secondaryGroupSize,l=r.groupSeparator||"",f=a[0],h=a[1],p=i.s<0,d=p?f.slice(1):f,m=d.length;if(u&&(o=s,s=u,u=o,m-=o),s>0&&m>0){for(o=m%s||s,f=d.substr(0,o);o<m;o+=s)f+=l+d.substr(o,s);u>0&&(f+=l+d.slice(o)),p&&(f="-"+f)}n=h?f+(r.decimalSeparator||"")+((u=+r.fractionGroupSize)?h.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):h):f}return(r.prefix||"")+n+(r.suffix||"")},S.toFraction=function(e){var t,n,i,o,a,s,u,l,f,p,d,v,y=this,g=y.c;if(null!=e&&(!(u=new N(e)).isInteger()&&(u.c||1!==u.s)||u.lt(R)))throw Error(c+"Argument "+(u.isInteger()?"out of range: ":"not an integer: ")+Y(u));if(!g)return new N(y);for(t=new N(R),f=n=new N(R),i=l=new N(R),v=m(g),a=t.e=v.length-y.e-1,t.c[0]=h[(s=a%14)<0?14+s:s],e=!e||u.comparedTo(t)>0?a>0?t:f:u,s=P,P=1/0,u=new N(v),l.c[0]=0;p=r(u,t,0,1),1!=(o=n.plus(p.times(i))).comparedTo(e);)n=i,i=o,f=l.plus(p.times(o=f)),l=o,t=u.minus(p.times(o=t)),u=o;return o=r(e.minus(n),i,0,1),l=l.plus(o.times(f)),n=n.plus(o.times(i)),l.s=f.s=y.s,d=r(f,i,a*=2,T).minus(y).abs().comparedTo(r(l,n,a,T).minus(y).abs())<1?[f,i]:[l,n],P=s,d},S.toNumber=function(){return+Y(this)},S.toPrecision=function(e,t){return null!=e&&y(e,1,p),j(this,e,t,2)},S.toString=function(e){var t,r=this,i=r.s,o=r.e;return null===o?i?(t="Infinity",i<0&&(t="-"+t)):t="NaN":(null==e?t=o<=C||o>=I?b(m(r.c),o):w(m(r.c),o,"0"):10===e?t=w(m((r=$(new N(r),k+o+1,T)).c),r.e,"0"):(y(e,2,U.length,"Base"),t=n(w(m(r.c),o,"0"),10,e,i,!0)),i<0&&r.c[0]&&(t="-"+t)),t},S.valueOf=S.toJSON=function(){return Y(this)},S._isBigNumber=!0,null!=t&&N.set(t),N}()).default=o.BigNumber=o,void 0===(n=function(){return o}.call(t,r,t,e))||(e.exports=n)}()},19:function(e,t){var r,n,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&p())}function p(){if(!l){var e=s(h);l=!0;for(var t=c.length;t;){for(u=c,c=[];++f<t;)u&&u[f].run();f=-1,t=c.length}u=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function m(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new d(e,t)),1!==c.length||l||s(p)},d.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},2:function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},20:function(e,t,r){"use strict";r.d(t,"a",(function(){return F})),r.d(t,"b",(function(){return E}));var n=r(14),i=r.n(n),o=r(6);function a(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}
/**
 * File signatures and extractor functions
 *
 * @author n1474335 [n1474335@gmail.com]
 * @copyright Crown Copyright 2018
 * @license Apache-2.0
 *
 */var u={Images:[{name:"Joint Photographic Experts Group image",extension:"jpg,jpeg,jpe,thm,mpo",mime:"image/jpeg",description:"",signature:{0:255,1:216,2:255,3:[192,196,219,221,224,225,226,227,228,229,231,232,234,235,236,237,238,254]},extractor:function(e,t){var r=new o.a(e.slice(t));for(;r.hasMore();){var n=r.getBytes(2);if(255!==n[0])throw new Error(`Invalid marker while parsing JPEG at pos ${r.position}: ${n}`);var i=0;switch(n[1]){case 216:case 1:break;case 217:return r.carve();case 192:case 193:case 194:case 195:case 196:case 197:case 198:case 199:case 200:case 201:case 202:case 203:case 204:case 205:case 206:case 207:case 219:case 222:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:i=r.readInt(2,"be"),r.position+=i-2;break;case 223:r.position++;break;case 220:case 221:r.position+=2;break;case 218:i=r.readInt(2,"be"),r.position+=i-2,r.continueUntil(255);break;case 0:case 208:case 209:case 210:case 211:case 212:case 213:case 214:case 215:default:r.continueUntil(255)}}throw new Error("Unable to parse JPEG successfully")}},{name:"Graphics Interchange Format image",extension:"gif",mime:"image/gif",description:"",signature:{0:71,1:73,2:70,3:56,4:[55,57],5:97},extractor:function(e,t){var r=new o.a(e.slice(t));r.continueUntil([33,255]),r.continueUntil([33,249]),r.moveForwardsBy(2);for(;r.hasMore();){for(r.moveForwardsBy(r.readInt(1)+1),r.moveForwardsBy(11);r.getBytes(2)!==[33,249]&&(r.moveBackwardsBy(2),r.moveForwardsBy(r.readInt(1)),r.readInt(1));)r.moveBackwardsBy(1);if(59===r.readInt(1))break;r.moveForwardsBy(1)}return r.carve()}},{name:"Portable Network Graphics image",extension:"png",mime:"image/png",description:"",signature:{0:137,1:80,2:78,3:71,4:13,5:10,6:26,7:10},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveForwardsBy(8);var n=0,i="";for(;"IEND"!==i;)n=r.readInt(4,"be"),i=r.readString(4),r.moveForwardsBy(n+4);return r.carve()}},{name:"WEBP Image",extension:"webp",mime:"image/webp",description:"",signature:{8:87,9:69,10:66,11:80},extractor:null},{name:"Camera Image File Format",extension:"crw",mime:"image/x-canon-crw",description:"",signature:{6:72,7:69,8:65,9:80,10:67,11:67,12:68,13:82},extractor:null},{name:"Canon CR2 raw image",extension:"cr2",mime:"image/x-canon-cr2",description:"",signature:[{0:73,1:73,2:42,3:0,8:67,9:82},{0:77,1:77,2:0,3:42,8:67,9:82}],extractor:null},{name:"Tagged Image File Format image",extension:"tif",mime:"image/tiff",description:"",signature:[{0:73,1:73,2:42,3:0},{0:77,1:77,2:0,3:42}],extractor:null},{name:"Bitmap image",extension:"bmp",mime:"image/bmp",description:"",signature:{0:66,1:77,7:0,9:0,14:[12,40,56,64,108,124],15:0,16:0,17:0},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveForwardsBy(2);var n=r.readInt(4,"le");return r.moveForwardsBy(n-6),r.carve()}},{name:"JPEG Extended Range image",extension:"jxr",mime:"image/vnd.ms-photo",description:"",signature:{0:73,1:73,2:188},extractor:null},{name:"Photoshop image",extension:"psd",mime:"image/vnd.adobe.photoshop",description:"",signature:{0:56,1:66,2:80,3:83,4:0,5:1,6:0,7:0,8:0,9:0,10:0,11:0},extractor:null},{name:"Photoshop Large Document",extension:"psb",mime:"application/x-photoshop",description:"",signature:{0:56,1:66,2:80,3:83,4:0,5:2,6:0,7:0,8:0,9:0,10:0,11:0,12:0},extractor:null},{name:"Paint Shop Pro image",extension:"psp",mime:"image/psp",description:"",signature:[{0:80,1:97,2:105,3:110,4:116,5:32,6:83,7:104,8:111,9:112,10:32,11:80,12:114,13:111,14:32,15:73,16:109},{0:126,1:66,2:75,3:0}],extractor:null},{name:"The GIMP image",extension:"xcf",mime:"image/x-xcf",description:"",signature:{0:103,1:105,2:109,3:112,4:32,5:120,6:99,7:102,8:32,9:[102,118],10:[105,48],11:[108,48],12:[101,49,50,51]},extractor:null},{name:"Icon image",extension:"ico",mime:"image/x-icon",description:"",signature:{0:0,1:0,2:1,3:0,4:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],5:0,6:[16,32,48,64,128],7:[16,32,48,64,128],9:0,10:[0,1]},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveTo(4);var n=r.readInt(2,"le");r.moveForwardsBy(8+16*(n-1));var i=r.readInt(4,"le"),a=r.readInt(4,"le");return r.moveTo(a+i),r.carve()}},{name:"Radiance High Dynamic Range image",extension:"hdr",mime:"image/vnd.radiance",description:"",signature:{0:35,1:63,2:82,3:65,4:68,5:73,6:65,7:78,8:67,9:69,10:10},extractor:null},{name:"Sony ARW image",extension:"arw",mime:"image/x-raw",description:"",signature:{0:5,1:0,2:0,3:0,4:65,5:87,6:49,7:46},extractor:null},{name:"Fujifilm Raw Image",extension:"raf",mime:"image/x-raw",description:"",signature:{0:70,1:85,2:74,3:73,4:70,5:73,6:76,7:77,8:67,9:67,10:68,11:45,12:82,13:65,14:87},extractor:null},{name:"Minolta RAW image",extension:"mrw",mime:"image/x-raw",description:"",signature:{0:0,1:77,2:82,3:77},extractor:null},{name:"Adobe Bridge Thumbnail Cache",extension:"bct",mime:"application/octet-stream",description:"",signature:{0:108,1:110,2:98,3:116,4:2,5:0,6:0,7:0},extractor:null},{name:"Microsoft Document Imaging",extension:"mdi",mime:"image/vnd.ms-modi",description:"",signature:{0:69,1:80,2:42,3:0},extractor:null},{name:"Joint Photographic Experts Group image (under Base64)",extension:"B64",mime:"application/octet-stream",description:"",signature:{0:47,1:57,2:106,3:47,4:52},extractor:null},{name:"Portable Network Graphics image (under Base64)",extension:"B64",mime:"application/octet-stream",description:"",signature:{0:105,1:86,2:66,3:79,4:82,5:119,6:48},extractor:null},{name:"AutoCAD Drawing",extension:"dwg,123d",mime:"application/acad",description:"",signature:{0:65,1:67,2:49,3:48,4:[48,49],5:[48,49,50,51,52,53],6:0},extractor:null},{name:"AutoCAD Drawing",extension:"dwg,dwt",mime:"application/acad",description:"",signature:[{0:65,1:67,2:49,3:48,4:49,5:56,6:0},{0:65,1:67,2:49,3:48,4:50,5:52,6:0},{0:65,1:67,2:49,3:48,4:50,5:55,6:0}],extractor:null},{name:"Targa Image",extension:"tga",mime:"image/x-targa",description:"",signature:[{0:84,1:82,2:85,3:69,4:86,5:73,6:83,7:73,8:79,9:78,10:45,11:88,12:70,13:73,14:76,15:69,16:46}],extractor:function(e,t){var r=new o.a(e);r.moveTo(t-8);var n=r.readInt(4,"le"),i=r.readInt(4,"le");function a(e,t){for(var n=0;n<e;n++){r.moveBackwardsBy(1);var i=r.readInt(t,"le")-1;if(r.moveBackwardsBy(t),i===n)break}}r.moveBackwardsBy(8),n||i?n?(a(65535,2),r.moveBackwardsBy(n)):i&&(a(4294967295,4),r.moveBackwardsBy(6),r.moveBackwardsBy(i)):(!function(){r.moveBackwardsBy(5);for(var e=0;e<1048576;e++){if(r.readInt(2,"le")*r.readInt(2,"le")*r.readInt(1)/8===e-1)break;r.moveBackwardsBy(6)}}(),r.moveBackwardsBy(17));return r.carve(r.position,t+18)}}],Video:[{name:"Matroska Multimedia Container",extension:"mkv",mime:"video/x-matroska",description:"",signature:{31:109,32:97,33:116,34:114,35:111,36:115,37:107,38:97},extractor:null},{name:"WEBM video",extension:"webm",mime:"video/webm",description:"",signature:{0:26,1:69,2:223,3:163},extractor:null},{name:"Flash MP4 video",extension:"f4v",mime:"video/mp4",description:"",signature:{4:102,5:116,6:121,7:112,8:[102,70],9:52,10:[118,86],11:32},extractor:null},{name:"MPEG-4 video",extension:"mp4",mime:"video/mp4",description:"",signature:[{0:0,1:0,2:0,3:[24,32],4:102,5:116,6:121,7:112},{0:51,1:103,2:112,3:53},{0:0,1:0,2:0,3:28,4:102,5:116,6:121,7:112,8:109,9:112,10:52,11:50,16:109,17:112,18:52,19:49,20:109,21:112,22:52,23:50,24:105,25:115,26:111,27:109}],extractor:null},{name:"M4V video",extension:"m4v",mime:"video/x-m4v",description:"",signature:{0:0,1:0,2:0,3:28,4:102,5:116,6:121,7:112,8:77,9:52,10:86},extractor:null},{name:"Quicktime video",extension:"mov",mime:"video/quicktime",description:"",signature:{0:0,1:0,2:0,3:20,4:102,5:116,6:121,7:112},extractor:null},{name:"Audio Video Interleave",extension:"avi",mime:"video/x-msvideo",description:"",signature:{0:82,1:73,2:70,3:70,8:65,9:86,10:73},extractor:null},{name:"Windows Media Video",extension:"wmv",mime:"video/x-ms-wmv",description:"",signature:{0:48,1:38,2:178,3:117,4:142,5:102,6:207,7:17,8:166,9:217},extractor:null},{name:"MPEG video",extension:"mpg",mime:"video/mpeg",description:"",signature:{0:0,1:0,2:1,3:186},extractor:null},{name:"Flash Video",extension:"flv",mime:"video/x-flv",description:"",signature:{0:70,1:76,2:86,3:1},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveForwardsBy(5);var n=r.readInt(4,"be");r.moveForwardsBy(n-9);var i=-11;for(;r.hasMore();){var a=r.readInt(4,"be"),s=r.readInt(1);if([8,9,18].indexOf(s)<0){r.moveBackwardsBy(1);break}if(a!==i+11){r.moveBackwardsBy(i+11+5);break}i=r.readInt(3,"be"),r.moveForwardsBy(7+i)}return r.carve()}},{name:"OGG Video",extension:"ogv,ogm,opus,ogx",mime:"video/ogg",description:"",signature:[{0:79,1:103,2:103,3:83,4:0,5:2,28:1,29:118,30:105,31:100,32:101,33:111},{0:79,1:103,2:103,3:83,4:0,5:2,28:128,29:116,30:104,31:101,32:111,33:114,34:97},{0:79,1:103,2:103,3:83,4:0,5:2,28:102,29:105,30:115,31:104,32:101,33:97,34:100}],extractor:null}],Audio:[{name:"Waveform Audio",extension:"wav",mime:"audio/x-wav",description:"",signature:{0:82,1:73,2:70,3:70,8:87,9:65,10:86,11:69},extractor:function(e,t){var r=new o.a(e.slice(t));return r.moveTo(4),r.moveTo(r.readInt(4,"le")+8),r.carve()}},{name:"OGG audio",extension:"ogg",mime:"audio/ogg",description:"",signature:{0:79,1:103,2:103,3:83},extractor:null},{name:"Musical Instrument Digital Interface audio",extension:"midi",mime:"audio/midi",description:"",signature:{0:77,1:84,2:104,3:100},extractor:null},{name:"MPEG-3 audio",extension:"mp3",mime:"audio/mpeg",description:"",signature:[{0:73,1:68,2:51},{0:255,1:251}],extractor:function(e,t){var r=new o.a(e.slice(t)),n=["free",32e3,4e4,48e3,56e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4,"bad"],i=[44100,48e3,32e3,"reserved"];if(r.getBytes(3).toString()===[73,68,51].toString()){r.moveTo(6);var a=r.readInt(1)<<21|r.readInt(1)<<14|r.readInt(1)<<7|r.readInt(1);r.moveForwardsBy(a)}else r.moveTo(0);for(;r.hasMore();){if(r.getBytes(3)===[84,65,71].toString()){r.moveForwardsBy(125);break}if(r.getBytes(2).toString()!==[255,251].toString()){r.moveBackwardsBy(2);break}var s=r.readInt(1),u=n[s>>4],c=i[(15&s)>>2],l=(2&s)>>1;if("free"===u||"bad"===u||"reserved"===c){r.moveBackwardsBy(1);break}var f=Math.floor(144*u/c+l);if(r.position+f>r.length){r.moveTo(r.length);break}r.moveForwardsBy(f-3)}return r.carve()}},{name:"MPEG-4 Part 14 audio",extension:"m4a",mime:"audio/m4a",description:"",signature:[{4:102,5:116,6:121,7:112,8:77,9:52,10:65},{0:77,1:52,2:65,3:32}],extractor:null},{name:"Free Lossless Audio Codec",extension:"flac",mime:"audio/x-flac",description:"",signature:{0:102,1:76,2:97,3:67},extractor:null},{name:"Adaptive Multi-Rate audio codec",extension:"amr",mime:"audio/amr",description:"",signature:{0:35,1:33,2:65,3:77,4:82,5:10},extractor:null},{name:"Audacity",extension:"au",mime:"audio/x-au",description:"",signature:{0:100,1:110,2:115,3:46,24:65,25:117,26:100,27:97,28:99,29:105,30:116,31:121,32:66,33:108,34:111,35:99,36:107,37:70,38:105,39:108,40:101},extractor:null},{name:"Audacity Block",extension:"auf",mime:"application/octet-stream",description:"",signature:{0:65,1:117,2:100,3:97,4:99,5:105,6:116,7:121,8:66,9:108,10:111,11:99,12:107,13:70,14:105,15:108,16:101},extractor:null},{name:"Audio Interchange File",extension:"aif",mime:"audio/x-aiff",description:"",signature:{0:70,1:79,2:82,3:77,8:65,9:73,10:70,11:70},extractor:null},{name:"Audio Interchange File (compressed)",extension:"aifc",mime:"audio/x-aifc",description:"",signature:{0:70,1:79,2:82,3:77,8:65,9:73,10:70,11:67},extractor:null}],Documents:[{name:"Portable Document Format",extension:"pdf",mime:"application/pdf",description:"",signature:{0:37,1:80,2:68,3:70},extractor:function(e,t){var r=new o.a(e.slice(t));return r.continueUntil([37,37,69,79,70]),r.moveForwardsBy(5),r.consumeIf(13),r.consumeIf(10),r.carve()}},{name:"Portable Document Format (under Base64)",extension:"B64",mime:"application/octet-stream",description:"",signature:{0:65,1:74,2:86,3:66,4:69,5:82,6:105},extractor:null},{name:"Adobe PostScript",extension:"ps,eps,ai,pfa",mime:"application/postscript",description:"",signature:{0:37,1:33,2:80,3:83,4:45,5:65,6:100,7:111,8:98,9:101},extractor:null},{name:"PostScript",extension:"ps",mime:"application/postscript",description:"",signature:{0:37,1:33},extractor:null},{name:"Encapsulated PostScript",extension:"eps,ai",mime:"application/eps",description:"",signature:{0:197,1:208,2:211,3:198},extractor:null},{name:"Rich Text Format",extension:"rtf",mime:"application/rtf",description:"",signature:{0:123,1:92,2:114,3:116},extractor:function(e,t){var r=new o.a(e.slice(t)),n=0;if(123!==r.readInt(1))throw new Error("Not a valid RTF file");n++;for(;n>0&&r.hasMore();)switch(r.readInt(1)){case 123:n++;break;case 125:n--;break;case 92:r.consumeIf(92),r.position++}return r.carve()}},{name:"Microsoft Office document/OLE2",extension:"ole2,doc,xls,dot,ppt,xla,ppa,pps,pot,msi,sdw,db,vsd,msg",mime:"application/msword,application/vnd.ms-excel,application/vnd.ms-powerpoint",description:"Microsoft Office documents",signature:{0:208,1:207,2:17,3:224,4:161,5:177,6:26,7:225},extractor:null},{name:"Microsoft Office document/OLE2 (under Base64)",extension:"B64",mime:"application/octet-stream",description:"",signature:{0:48,1:77,2:56,3:82,4:52,5:75,6:71,7:120},extractor:null},{name:"Microsoft Office 2007+ document",extension:"docx,xlsx,pptx",mime:"application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.openxmlformats-officedocument.presentationml.presentation",description:"",signature:{38:95,39:84,40:121,41:112,42:101,43:115,44:93,45:46,46:120,47:109,48:108},extractor:c},{name:"Microsoft Access database",extension:"mdb,mda,mde,mdt,fdb,psa",mime:"application/msaccess",description:"",signature:{0:0,1:1,2:0,3:0,4:83,5:116,6:97,7:110,8:100,9:97,10:114,11:100,12:32,13:74,14:101,15:116},extractor:null},{name:"Microsoft Access 2007+ database",extension:"accdb,accde,accda,accdu",mime:"application/msaccess",description:"",signature:{0:0,1:1,2:0,3:0,4:83,5:116,6:97,7:110,8:100,9:97,10:114,11:100,12:32,13:65,14:67,15:69,16:32},extractor:null},{name:"Microsoft OneNote document",extension:"one",mime:"application/onenote",description:"",signature:{0:228,1:82,2:92,3:123,4:140,5:216,6:167,7:77,8:174,9:177,10:83,11:120,12:208,13:41,14:150,15:211},extractor:null},{name:"Outlook Express database",extension:"dbx",mime:"application/octet-stream",description:"",signature:{0:207,1:173,2:18,3:254,4:[48,197,198,199],11:17},extractor:null},{name:"Personal Storage Table (Outlook)",extension:"pst,ost,fdb,pab",mime:"application/octet-stream",description:"",signature:{0:33,1:66,2:68,3:78},extractor:null},{name:"Microsoft Exchange Database",extension:"edb",mime:"application/octet-stream",description:"",signature:{4:239,5:205,6:171,7:137,8:[32,35],9:6,10:0,11:0,12:[0,1],13:0,14:0,15:0},extractor:null},{name:"WordPerfect document",extension:"wpd,wp,wp5,wp6,wpp,bk!,wcm",mime:"application/wordperfect",description:"",signature:{0:255,1:87,2:80,3:67,7:[0,1,2],8:1,9:10},extractor:null},{name:"EPUB e-book",extension:"epub",mime:"application/epub+zip",description:"",signature:{0:80,1:75,2:3,3:4,30:109,31:105,32:109,33:101,34:116,35:121,36:112,37:101,38:97,39:112,40:112,41:108,42:105,43:99,44:97,45:116,46:105,47:111,48:110,49:47,50:101,51:112,52:117,53:98,54:43,55:122,56:105,57:112},extractor:c}],Applications:[{name:"Windows Portable Executable",extension:"exe,dll,drv,vxd,sys,ocx,vbx,com,fon,scr",mime:"application/vnd.microsoft.portable-executable",description:"",signature:{0:77,1:90,3:[0,1,2],5:[0,1,2]},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveTo(60);var n=r.readInt(4,"le");r.moveTo(n),r.moveForwardsBy(6);var i=r.readInt(2,"le");r.moveForwardsBy(16);var a=523===r.readInt(2,"le")?112:96;r.moveForwardsBy(a-2),r.moveForwardsBy(32);var s=r.readInt(4,"le"),u=r.readInt(4,"le");if(s>0)return r.moveTo(s+u),r.carve();r.moveForwardsBy(88),r.moveForwardsBy(40*(i-1)),r.moveForwardsBy(16);var c=r.readInt(4,"le"),l=r.readInt(4,"le");return r.moveTo(l+c),r.carve()}},{name:"Executable and Linkable Format",extension:"elf,bin,axf,o,prx,so",mime:"application/x-executable",description:"Executable and Linkable Format file. No standard file extension.",signature:{0:127,1:69,2:76,3:70},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveForwardsBy(4);var n=1===r.readInt(1),i=1===r.readInt(1)?"le":"be";r.moveForwardsBy(n?26:34);var a=n?r.readInt(4,i):r.readInt(8,i);r.moveForwardsBy(10);var s=r.readInt(2,i),u=r.readInt(2,i);return r.moveTo(a),r.moveForwardsBy(s*u),r.carve()}},{name:"MacOS Mach-O object",extension:"dylib",mime:"application/octet-stream",description:"",signature:[{0:202,1:254,2:186,3:190,4:0,5:0,6:0,7:[1,2,3]},{0:206,1:250,2:237,3:254,4:7,5:0,6:0,7:0,8:[1,2,3]}],extractor:l},{name:"MacOS Mach-O 64-bit object",extension:"dylib",mime:"application/octet-stream",description:"",signature:{0:207,1:250,2:237,3:254},extractor:l},{name:"Adobe Flash",extension:"swf",mime:"application/x-shockwave-flash",description:"",signature:{0:[67,70],1:87,2:83},extractor:null},{name:"Java Class",extension:"class",mime:"application/java-vm",description:"",signature:{0:202,1:254,2:186,3:190},extractor:null},{name:"Dalvik Executable",extension:"dex",mime:"application/octet-stream",description:"Dalvik Executable as used by Android",signature:{0:100,1:101,2:120,3:10,4:48,5:51,6:53,7:0},extractor:null},{name:"Google Chrome Extension",extension:"crx",mime:"application/crx",description:"Google Chrome extension or packaged app",signature:{0:67,1:114,2:50,3:52},extractor:null}],Archives:[{name:"PKZIP archive",extension:"zip",mime:"application/zip",description:"",signature:{0:80,1:75,2:[3,5,7],3:[4,6,8]},extractor:c},{name:"PKZIP archive (under Base64)",extension:"B64",mime:"application/octet-stream",description:"",signature:{0:85,1:69,2:115,3:68,4:66,5:66},extractor:null},{name:"TAR archive",extension:"tar",mime:"application/x-tar",description:"",signature:{257:117,258:115,259:116,260:97,261:114},extractor:function(e,t){var r=new o.a(e.slice(t));for(;r.hasMore();){if(r.moveForwardsBy(257),r.getBytes(5).join("")!==[117,115,116,97,114].join("")){r.moveBackwardsBy(262);break}r.moveBackwardsBy(138);var n=0;r.getBytes(11).forEach((function(e,t){n+=(e-48).toString()})),n=512*Math.ceil(parseInt(n,8)/512),r.moveForwardsBy(n+377)}return r.consumeWhile(0),r.carve()}},{name:"Roshal Archive",extension:"rar",mime:"application/x-rar-compressed",description:"",signature:{0:82,1:97,2:114,3:33,4:26,5:7,6:[0,1]},extractor:null},{name:"Gzip",extension:"gz",mime:"application/gzip",description:"",signature:{0:31,1:139,2:8},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveForwardsBy(3);var n=r.readInt(1);if(r.moveForwardsBy(4),r.readInt(1),r.moveForwardsBy(1),4&n){var i=r.readInt(2,"le");r.moveForwardsby(i)}8&n&&(r.continueUntil(0),r.moveForwardsBy(1));16&n&&(r.continueUntil(0),r.moveForwardsBy(1));2&n&&r.moveForwardsBy(2);return v(r),r.moveForwardsBy(8),r.carve()}},{name:"Bzip2",extension:"bz2",mime:"application/x-bzip2",description:"",signature:{0:66,1:90,2:104},extractor:function(e,t){for(var r=new o.a(e.slice(t)),n=[[119,36,83,133,9],[238,72,167,10,18],[220,145,78,20,36],[185,34,156,40,72],[114,69,56,80,144],[187,146,41,194,132],[93,201,20,225,66],[46,228,138,112,161],[23,114,69,56,80]],i=0;i<n.length&&(r.continueUntil(n[i]),r.getBytes(5).join("")!==n[i].join(""));i++)r.moveTo(0);return r.moveForwardsBy(4),r.carve()}},{name:"7zip",extension:"7z",mime:"application/x-7z-compressed",description:"",signature:{0:55,1:122,2:188,3:175,4:39,5:28},extractor:null},{name:"Zlib Deflate",extension:"zlib",mime:"application/x-deflate",description:"",signature:{0:120,1:[1,156,218,94]},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveForwardsBy(1),32&r.readInt(1)&&r.moveForwardsBy(4);return v(r),r.moveForwardsBy(4),r.carve()}},{name:"xz compression",extension:"xz",mime:"application/x-xz",description:"",signature:{0:253,1:55,2:122,3:88,4:90,5:0},extractor:function(e,t){var r=new o.a(e.slice(t));return r.continueUntil([0,0,0,0,4,89,90]),r.moveForwardsBy(7),r.carve()}},{name:"Tarball",extension:"tar.z",mime:"application/x-gtar",description:"",signature:{0:31,1:[157,160]},extractor:null},{name:"ISO disk image",extension:"iso",mime:"application/octet-stream",description:"ISO 9660 CD/DVD image file",signature:[{32769:67,32770:68,32771:48,32772:48,32773:49},{34817:67,34818:68,34819:48,34820:48,34821:49},{36865:67,36866:68,36867:48,36868:48,36869:49}],extractor:null},{name:"Virtual Machine Disk",extension:"vmdk",mime:"application/vmdk,application/x-virtualbox-vmdk",description:"",signature:{0:75,1:68,2:77,3:86,5:0,6:0,7:0},extractor:null},{name:"Virtual Hard Drive",extension:"vhd",mime:"application/x-vhd",description:"",signature:{0:99,1:111,2:110,3:101,4:99,5:116,6:105,7:120},extractor:null},{name:"Macintosh disk image",extension:"dmf,dmg",mime:"application/octet-stream",description:"",signature:{0:120,1:1,2:115,3:13,4:98,5:98,6:96,7:96},extractor:null},{name:"ARJ Archive",extension:"arj",mime:"application/x-arj-compressed",description:"",signature:{0:96,1:234,8:[0,16,20],9:0,10:2},extractor:null},{name:"WinAce Archive",extension:"ace",mime:"application/x-ace-compressed",description:"",signature:{7:42,8:42,9:65,10:67,11:69,12:42,13:42},extractor:null},{name:"Macintosh BinHex Encoded File",extension:"hqx",mime:"application/mac-binhex",description:"",signature:{11:109,12:117,13:115,14:116,15:32,16:98,17:101,18:32,19:99,20:111,21:110,22:118,23:101,24:114,25:116,26:101,27:100,28:32,29:119,30:105,31:116,32:104,33:32,34:66,35:105,36:110,37:72,38:101,39:120},extractor:null},{name:"ALZip Archive",extension:"alz",mime:"application/octet-stream",description:"",signature:{0:65,1:76,2:90,3:1,4:10,5:0,6:0,7:0},extractor:null},{name:"KGB Compressed Archive",extension:"kgb",mime:"application/x-kgb-compressed",description:"",signature:{0:75,1:71,2:66,3:95,4:97,5:114,6:99,7:104,8:32,9:45},extractor:null},{name:"Microsoft Cabinet",extension:"cab",mime:"vnd.ms-cab-compressed",description:"",signature:{0:77,1:83,2:67,3:70,4:0,5:0,6:0,7:0},extractor:null},{name:"Jar Archive",extension:"jar",mime:"application/java-archive",description:"",signature:{0:95,1:39,2:168,3:137},extractor:null},{name:"Jar Archive",extension:"jar",mime:"application/java-archive",description:"",signature:{0:80,1:75,2:3,3:4,4:20,5:0,6:8,7:0,8:8,9:0},extractor:c},{name:"lzop compressed",extension:"lzop,lzo",mime:"application/x-lzop",description:"",signature:{0:137,1:76,2:90,3:79,4:0,5:13,6:10,7:26},extractor:function(e,t){var r=new o.a(e.slice(t)),n=0,i=0;r.moveForwardsBy(9);var a=r.readInt(2,"be");r.moveForwardsBy(6);var s=r.readInt(4,"be");2048&a&&r.moveForwardsBy(4);2&s&&n++;512&s&&n++;1&s&&i++;256&s&&i++;r.moveForwardsBy(8),a>=2368&&r.moveForwardsBy(4);var u=r.readInt(1,"be");if(r.moveForwardsBy(u),64&s){var c=r.readInt(4,"be");r.moveForwardsBy(c)}r.moveForwardsBy(4);for(;r.hasMore();){var l=r.readInt(4,"be");if(0===l)break;var f=r.readInt(4,"be"),h=l===f?i:i+n;r.moveForwardsBy(f+4*h)}return r.carve()}},{name:"Linux deb package",extension:"deb",mime:"application/vnd.debian.binary-package",description:"",signature:{0:33,1:60,2:97,3:114,4:99,5:104,6:62},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveForwardsBy(8);for(;r.hasMore();){r.moveForwardsBy(48);var n,i="",s=a(r.getBytes(10));try{for(s.s();!(n=s.n()).done;){var u=n.value;i+=String.fromCharCode(u)}}catch(e){s.e(e)}finally{s.f()}i=parseInt(i.trim(),10),r.moveForwardsBy(2),r.moveForwardsBy(i)}return r.carve()}},{name:"Apple Disk Image",extension:"dmg",mime:"application/x-apple-diskimage",description:"",signature:{0:120,1:1,2:115,3:13,4:98,5:98,6:96},extractor:null}],Miscellaneous:[{name:"UTF-8 text",extension:"txt",mime:"text/plain",description:"UTF-8 encoded Unicode byte order mark, commonly but not exclusively seen in text files.",signature:{0:239,1:187,2:191},extractor:null},{name:"UTF-32 LE text",extension:"utf32le",mime:"charset/utf32le",description:"Little-endian UTF-32 encoded Unicode byte order mark.",signature:{0:255,1:254,2:0,3:0},extractor:null},{name:"UTF-16 LE text",extension:"utf16le",mime:"charset/utf16le",description:"Little-endian UTF-16 encoded Unicode byte order mark.",signature:{0:255,1:254},extractor:null},{name:"Web Open Font Format",extension:"woff",mime:"application/font-woff",description:"",signature:{0:119,1:79,2:70,3:70,4:0,5:1,6:0,7:0},extractor:null},{name:"Web Open Font Format 2",extension:"woff2",mime:"application/font-woff",description:"",signature:{0:119,1:79,2:70,3:50,4:0,5:1,6:0,7:0},extractor:null},{name:"Embedded OpenType font",extension:"eot",mime:"application/octet-stream",description:"",signature:[{8:2,9:0,10:1,34:76,35:80},{8:1,9:0,10:0,34:76,35:80},{8:2,9:0,10:2,34:76,35:80}],extractor:null},{name:"TrueType Font",extension:"ttf",mime:"application/font-sfnt",description:"",signature:{0:0,1:1,2:0,3:0,4:0},extractor:null},{name:"OpenType Font",extension:"otf",mime:"application/font-sfnt",description:"",signature:{0:79,1:84,2:84,3:79,4:0},extractor:null},{name:"SQLite",extension:"sqlite",mime:"application/x-sqlite3",description:"",signature:{0:83,1:81,2:76,3:105},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveTo(16);var n=r.readInt(2);r.moveTo(28);var i=r.readInt(4);return r.moveTo(n*i),r.carve()}},{name:"BitTorrent link",extension:"torrent",mime:"application/x-bittorrent",description:"",signature:[{0:100,1:56,2:58,3:97,4:110,5:110,6:111,7:117,8:110,9:99,10:101,11:35,12:35,13:58},{0:100,1:52,2:58,3:105,4:110,5:102,6:111,7:100,8:[52,53,54],9:58}],extractor:null},{name:"Cryptocurrency wallet",extension:"wallet",mime:"application/octet-stream",description:"",signature:{0:0,1:0,2:0,3:0,4:1,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:98,13:49,14:5,15:0},extractor:null},{name:"Registry fragment",extension:"hbin",mime:"application/octet-stream",description:"",signature:{0:104,1:98,2:105,3:110,4:0},extractor:null},{name:"Registry script",extension:"rgs",mime:"application/octet-stream",description:"",signature:{0:72,1:75,2:67,3:82,4:13,5:10,6:92,7:123},extractor:null},{name:"WinNT Registry Hive",extension:"registry",mime:"application/octet-stream",description:"",signature:{0:114,1:101,2:103,3:102},extractor:null},{name:"Windows Event Log",extension:"evt",mime:"application/octet-stream",description:"",signature:{0:48,1:0,2:0,3:0,4:76,5:102,6:76,7:101},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveTo(20);var n=r.readInt(4,"le");r.moveTo(n);var i=r.readInt(4,"le");return r.moveForwardsBy(i-4),r.carve()}},{name:"Windows Event Log",extension:"evtx",mime:"application/octet-stream",description:"",signature:{0:69,1:108,2:102,3:70,4:105,5:108,6:101},extractor:function(e,t){var r=new o.a(e.slice(t));r.moveTo(40);var n=r.readInt(4,"le")-44;r.moveForwardsBy(n);for(;r.hasMore()&&r.getBytes(7).join("")===[69,108,102,67,104,110,107].join("");)r.moveForwardsBy(65529);return r.consumeWhile(0),r.carve()}},{name:"Windows Pagedump",extension:"dmp",mime:"application/octet-stream",description:"",signature:{0:80,1:65,2:71,3:69,4:68,5:85,6:[77,54],7:[80,52]},extractor:function(e,t){var r=new o.a(e.slice(t));return r.moveTo(112),r.moveTo(4096*(r.readInt(4,"le")+1)),r.carve()}},{name:"Windows Prefetch",extension:"pf",mime:"application/x-pf",description:"",signature:{0:[17,23,26],1:0,2:0,3:0,4:83,5:67,6:67,7:65},extractor:function(e,t){var r=new o.a(e.slice(t));return r.moveTo(12),r.moveTo(r.readInt(4,"be")),r.carve()}},{name:"Windows Prefetch (Win 10)",extension:"pf",mime:"application/x-pf",description:"",signature:{0:77,1:65,2:77,3:4,7:0},extractor:function(e,t){var r=new o.a(e.slice(t));return r.moveTo(r.readInt(4,"be")),r.carve()}},{name:"PList (XML)",extension:"plist",mime:"application/xml",description:"",signature:{39:60,40:33,41:68,42:79,43:67,44:84,45:89,46:80,47:69,48:32,49:112,50:108,51:105,52:115,53:116},extractor:function(e,t){var r=new o.a(e.slice(t)),n=0;r.continueUntil([60,112,108,105,115,116]),r.moveForwardsBy(6),n++;for(;n>0&&r.hasMore();)60===r.readInt(1)&&(r.getBytes(5).join("")===[112,108,105,115,116].join("")?n++:r.moveBackwardsBy(5),r.getBytes(7).join("")===[47,112,108,105,115,116,62].join("")?n--:r.moveBackwardsBy(7));return r.consumeIf(10),r.carve()}},{name:"PList (binary)",extension:"bplist,plist,ipmeta,abcdp,mdbackup,mdinfo,strings,nib,ichat,qtz,webbookmark,webhistory",mime:"application/x-plist",description:"",signature:{0:98,1:112,2:108,3:105,4:115,5:116,6:48,7:48},extractor:null},{name:"MacOS X Keychain",extension:"keychain",mime:"application/octet-stream",description:"",signature:{0:107,1:121,2:99,3:104,4:0,5:1},extractor:null},{name:"TCP Packet",extension:"tcp",mime:"application/tcp",description:"",signature:{12:8,13:0,14:69,15:0,21:0,22:function(e){return e>=1&&e<=128},23:6},extractor:null},{name:"UDP Packet",extension:"udp",mime:"application/udp",description:"",signature:{12:8,13:0,14:69,15:0,16:[0,1,2,3,4,5],22:function(e){return e>=1&&e<=128},23:17},extractor:null},{name:"Compiled HTML",extension:"chm,chw,chi",mime:"application/vnd.ms-htmlhelp",description:"",signature:{0:73,1:84,2:83,3:70,4:3,5:0,6:0,7:0},extractor:null},{name:"Windows Password",extension:"pwl",mime:"application/octet-stream",description:"",signature:{0:227,1:130,2:133,3:150},extractor:null},{name:"Bitlocker recovery key",extension:"bitlocker",mime:"application/octet-stream",description:"",signature:{0:255,1:254,2:66,3:0,4:105,5:0,6:116,7:0,8:76,9:0,10:111,11:0,12:99,13:0,14:107,15:0,16:101,17:0,18:114,19:0,20:32,21:0},extractor:null},{name:"Certificate",extension:"cer,cat,p7b,p7c,p7m,p7s,swz,rsa,crl,crt,der",mime:"application/pkix-cert",description:"",signature:{0:48,1:130,4:[6,10,48]},extractor:null},{name:"Certificate",extension:"cat,swz,p7m",mime:"application/vnd.ms-pki.seccat",description:"",signature:{0:48,1:131,2:function(e){return 0!==e},5:6,6:9},extractor:null},{name:"PGP pubring",extension:"pkr,gpg",mime:"application/pgp-keys",description:"",signature:{0:153,1:1,2:[13,162],3:4},extractor:null},{name:"PGP secring",extension:"skr",mime:"application/pgp-keys",description:"",signature:[{0:149,1:1,2:207,3:4},{0:149,1:3,2:198,3:4}],extractor:null},{name:"PGP Safe",extension:"pgd",mime:"application/pgp-keys",description:"",signature:{0:80,1:71,2:80,3:100,4:77,5:65,6:73,7:78,8:96,9:1,10:0},extractor:null},{name:"Task Scheduler",extension:"job",mime:"application/octet-stream",description:"",signature:{0:[0,1,2,3],1:[5,6],2:1,3:0,20:70,21:0},extractor:null},{name:"Windows Shortcut",extension:"lnk",mime:"application/x-ms-shortcut",description:"",signature:{0:76,1:0,2:0,3:0,4:1,5:20,6:2,7:0,8:0,9:0,10:0,11:0,12:192,13:0,14:0,15:0,16:0,17:0,18:0,19:70},extractor:function(e,t){var r=new o.a(e.slice(t));return r.moveTo(52),r.moveTo(r.readInt(4,"le")),r.carve()}},{name:"Bash",extension:"bash",mime:"application/bash",description:"",signature:{0:35,1:33,2:47,3:98,4:105,5:110,6:47,7:98,8:97,9:115,10:104},extractor:null},{name:"Shell",extension:"sh",mime:"application/sh",description:"",signature:{0:35,1:33,2:47,3:98,4:105,5:110,6:47,7:115,8:104},extractor:null},{name:"Python",extension:"py,pyc,pyd,pyo,pyw,pyz",mime:"application/python",description:"",signature:{0:35,1:33,2:47,3:117,4:115,5:114,6:47,7:98,8:105,9:110,10:47,11:112,12:121,13:116,14:104,15:111,16:110,17:[50,51,10,13]},extractor:null},{name:"Ruby",extension:"rb",mime:"application/ruby",description:"",signature:{0:35,1:33,2:47,3:117,4:115,5:114,6:47,7:98,8:105,9:110,10:47,11:114,12:117,13:98,14:121},extractor:null},{name:"perl",extension:"pl,pm,t,pod",mime:"application/perl",description:"",signature:{0:35,1:33,2:47,3:117,4:115,5:114,6:47,7:98,8:105,9:110,10:47,11:112,12:101,13:114,14:108},extractor:null},{name:"php",extension:"php,phtml,php3,php4,php5,php7,phps,php-s,pht,phar",mime:"application/php",description:"",signature:{0:60,1:63,2:112,3:104,4:112},extractor:null},{name:"Smile",extension:"sml",mime:"\tapplication/x-jackson-smile",description:"",signature:{0:58,1:41,2:10},extractor:null},{name:"Lua Bytecode",extension:"luac",mime:"application/x-lua",description:"",signature:{0:27,1:76,2:117,3:97},extractor:null},{name:"WebAssembly binary",extension:"wasm",mime:"application/octet-stream",description:"",signature:{0:0,1:97,2:115,3:109},extractor:null}]};function c(e,t){var r=new o.a(e.slice(t));r.continueUntil([80,75,5,6]),r.moveForwardsBy(20);var n=r.readInt(2,"le");return r.moveForwardsBy(n),r.carve()}function l(e,t){var r=new o.a(e.slice(t)),n=r.getBytes(4).join("");return r.moveTo(function(e,t,r){var n=28;t&&(n+=4),e.moveTo(16);var i=e.readInt(4,r);return function(e,t,r,n){for(var i=0,o=0;o<n;o++){e.moveTo(t);var a=e.readInt(4,r);25===a?(e.moveTo(t+48),i+=e.readInt(8,r),e.moveTo(t+4),t+=e.readInt(4,r)):1===a&&(e.moveTo(t+36),i+=e.readInt(4,r),e.moveTo(t+4),t+=e.readInt(4,r))}return i}(e,n,r,i)}(r,function(e){return"207250237254"===e||"254237250207"===e}(n),function(e){return"206250237254"===e||"207250237254"===e}(n)?"le":"be")),r.carve()}for(var f=new Array(288),h=0;h<f.length;h++)f[h]=h<=143?8:h<=255?9:h<=279?7:8;var p=w(f),d=w(new Array(30).fill(5)),m=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function v(e){for(var t=0;!t;){t=e.readBits(1);var r=e.readBits(2);if(0===r){e.moveForwardsBy(1);var n=e.readInt(2,"le");e.moveForwardsBy(2+n)}else if(1===r)b(e,p,d);else{if(2!==r)throw new Error("Invalid block type while parsing DEFLATE stream at pos "+e.position);for(var i=e.readBits(5)+257,o=e.readBits(5)+1,a=e.readBits(4)+4,s=new Uint8Array(m.length),u=0;u<a;u++)s[m[u]]=e.readBits(3);for(var c=w(s),l=new Uint8Array(i+o),f=void 0,h=void 0,v=void 0,y=0;y<i+o;)switch(f=x(e,c)){case 16:for(h=3+e.readBits(2);h--;)l[y++]=v;break;case 17:for(h=3+e.readBits(3);h--;)l[y++]=0;v=0;break;case 18:for(h=11+e.readBits(7);h--;)l[y++]=0;v=0;break;default:l[y++]=f,v=f}b(e,w(l.subarray(0,i)),w(l.subarray(i)))}}e.bitPos>0&&e.moveForwardsBy(1)}var y=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],g=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];function b(e,t,r){for(var n,i=0;(n=x(e,t))&&256!==n;){if(++i>1e4)throw new Error("Caught in probable infinite loop while parsing Huffman Block");n<256||(e.readBits(y[n-257]),n=x(e,r),e.readBits(g[n]))}}function w(e){for(var t=Math.max.apply(Math,e),r=Math.min.apply(Math,e),n=1<<t,i=new Uint32Array(n),o=1,a=0,s=2;o<=t;){for(var u=0;u<e.length;u++)if(e[u]===o){var c=void 0,l=void 0,f=void 0;for(c=0,l=a,f=0;f<o;f++)c=c<<1|1&l,l>>=1;for(var h=o<<16|u,p=c;p<n;p+=s)i[p]=h;a++}o++,a<<=1,s<<=1}return[i,t,r]}function x(e,t){var r=i()(t,2),n=r[0],o=r[1],a=n[e.readBits(o)&(1<<o)-1],s=a>>>16;if(s>o)throw new Error(`Invalid Huffman Code length while parsing DEFLATE block at pos ${e.position}: ${s}`);return e.moveBackwardsByBits(o-s),65535&a}r(1);
/**
 * File type functions
 *
 * @author n1474335 [n1474335@gmail.com]
 * @copyright Crown Copyright 2018
 * @license Apache-2.0
 *
 */function A(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(e.length){for(var n=0;n<e.length;n++)if(B(e[n],t,r))return!0;return!1}return B(e,t,r)}function B(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;for(var n in e){var i=parseInt(n,10)+r;switch(typeof e[n]){case"number":if(t[i]!==e[n])return!1;break;case"object":if(e[n].indexOf(t[i])<0)return!1;break;case"function":if(!e[n](t[i]))return!1;break;default:throw new Error("Unrecognised signature type at offset "+n)}}return!0}function F(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object.keys(u);if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),!(e&&e.length>1))return[];var r=[],n={};for(var i in u)t.includes(i)&&(n[i]=u[i]);for(var o in n){var a=n[o];a.forEach((function(t){A(t.signature,e)&&r.push(t)}))}return r}function E(e){return function(e,t){var r=F(t);if(!r||!r.length)return!1;if("string"==typeof e)return r.reduce((function(t,r){var n=!!r.mime.startsWith(e)&&r.mime;return t||n}),!1);if(e instanceof RegExp)return r.reduce((function(t,r){var n=!!e.test(r.mime)&&r.mime;return t||n}),!1);throw new Error("Invalid type input.")}("image",e)}},21:function(e,t,r){"use strict";r.d(t,"b",(function(){return i})),r.d(t,"c",(function(){return o})),r.d(t,"a",(function(){return a}));var n=r(1);
/**
 * Hexadecimal functions.
 *
 * @author n1474335 [n1474335@gmail.com]
 * @copyright Crown Copyright 2016
 * @license Apache-2.0
 */function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(!e)return"";e instanceof ArrayBuffer&&(e=new Uint8Array(e));for(var o="",a="0x"===t||"\\x"===t,s=0;s<e.length;s++){var u=e[s].toString(16).padStart(r,"0");o+=a?t+u:u+t,n&&(o+=n),s!==e.length-1&&(s+1)%i==0&&(o+="\n")}var c=n.length+(a?0:t.length);return c?o.slice(0,-c):o}function o(e){if(!e)return"";e instanceof ArrayBuffer&&(e=new Uint8Array(e));for(var t=[],r=0;r<e.length;r++)t.push((e[r]>>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Auto",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2;if("None"!==t){var i="Auto"===t?/[^a-f\d]|(0x)/gi:n.b.regexRep(t);e=e.replace(i,"")}for(var o=[],a=0;a<e.length;a+=r)o.push(parseInt(e.substr(a,r),16));return o}["Auto"].concat(["Space","Percent","Comma","Semi-colon","Colon","Line feed","CRLF","0x","0x with comma","\\x","None"])},24:function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},25:function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},250:function(e,t,r){var n=r(0);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=n(e)););return e}},26:function(e,t,r){!function(e){var t,r,n,i=String.fromCharCode;function o(e){for(var t,r,n=[],i=0,o=e.length;i<o;)(t=e.charCodeAt(i++))>=55296&&t<=56319&&i<o?56320==(64512&(r=e.charCodeAt(i++)))?n.push(((1023&t)<<10)+(1023&r)+65536):(n.push(t),i--):n.push(t);return n}function a(e){if(e>=55296&&e<=57343)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")}function s(e,t){return i(e>>t&63|128)}function u(e){if(0==(4294967168&e))return i(e);var t="";return 0==(4294965248&e)?t=i(e>>6&31|192):0==(4294901760&e)?(a(e),t=i(e>>12&15|224),t+=s(e,6)):0==(4292870144&e)&&(t=i(e>>18&7|240),t+=s(e,12),t+=s(e,6)),t+=i(63&e|128)}function c(){if(n>=r)throw Error("Invalid byte index");var e=255&t[n];if(n++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function l(){var e,i;if(n>r)throw Error("Invalid byte index");if(n==r)return!1;if(e=255&t[n],n++,0==(128&e))return e;if(192==(224&e)){if((i=(31&e)<<6|c())>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if((i=(15&e)<<12|c()<<6|c())>=2048)return a(i),i;throw Error("Invalid continuation byte")}if(240==(248&e)&&(i=(7&e)<<18|c()<<12|c()<<6|c())>=65536&&i<=1114111)return i;throw Error("Invalid UTF-8 detected")}e.version="3.0.0",e.encode=function(e){for(var t=o(e),r=t.length,n=-1,i="";++n<r;)i+=u(t[n]);return i},e.decode=function(e){t=o(e),r=t.length,n=0;for(var a,s=[];!1!==(a=l());)s.push(a);return function(e){for(var t,r=e.length,n=-1,o="";++n<r;)(t=e[n])>65535&&(o+=i((t-=65536)>>>10&1023|55296),t=56320|1023&t),o+=i(t);return o}(s)}}(t)},27:function(e,t,r){var n,i;!function(o,a){"use strict";void 0===(i="function"==typeof(n=function(){var e=function(){},t="undefined"!=typeof window&&void 0!==window.navigator&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"];function n(e,t){var r=e[t];if("function"==typeof r.bind)return r.bind(e);try{return Function.prototype.bind.call(r,e)}catch(t){return function(){return Function.prototype.apply.apply(r,[e,arguments])}}}function i(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function o(r){return"debug"===r&&(r="log"),"undefined"!=typeof console&&("trace"===r&&t?i:void 0!==console[r]?n(console,r):void 0!==console.log?n(console,"log"):e)}function a(t,n){for(var i=0;i<r.length;i++){var o=r[i];this[o]=i<t?e:this.methodFactory(o,t,n)}this.log=this.debug}function s(e,t,r){return function(){"undefined"!=typeof console&&(a.call(this,t,r),this[e].apply(this,arguments))}}function u(e,t,r){return o(e)||s.apply(this,arguments)}function c(e,t,n){var i,o=this,s="loglevel";function c(){var e;if("undefined"!=typeof window){try{e=window.localStorage[s]}catch(e){}if(void 0===e)try{var t=window.document.cookie,r=t.indexOf(encodeURIComponent(s)+"=");-1!==r&&(e=/^([^;]+)/.exec(t.slice(r))[1])}catch(e){}return void 0===o.levels[e]&&(e=void 0),e}}e&&(s+=":"+e),o.name=e,o.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},o.methodFactory=n||u,o.getLevel=function(){return i},o.setLevel=function(t,n){if("string"==typeof t&&void 0!==o.levels[t.toUpperCase()]&&(t=o.levels[t.toUpperCase()]),!("number"==typeof t&&t>=0&&t<=o.levels.SILENT))throw"log.setLevel() called with invalid level: "+t;if(i=t,!1!==n&&function(e){var t=(r[e]||"silent").toUpperCase();if("undefined"!=typeof window){try{return void(window.localStorage[s]=t)}catch(e){}try{window.document.cookie=encodeURIComponent(s)+"="+t+";"}catch(e){}}}(t),a.call(o,t,e),"undefined"==typeof console&&t<o.levels.SILENT)return"No console available for logging"},o.setDefaultLevel=function(e){c()||o.setLevel(e,!1)},o.enableAll=function(e){o.setLevel(o.levels.TRACE,e)},o.disableAll=function(e){o.setLevel(o.levels.SILENT,e)};var l=c();null==l&&(l=null==t?"WARN":t),o.setLevel(l,!1)}var l=new c,f={};l.getLogger=function(e){if("string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=f[e];return t||(t=f[e]=new c(e,l.getLevel(),l.methodFactory)),t};var h="undefined"!=typeof window?window.log:void 0;return l.noConflict=function(){return"undefined"!=typeof window&&window.log===l&&(window.log=h),l},l.getLoggers=function(){return f},l})?n.call(t,r,t,e):n)||(e.exports=i)}()},28:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(1);
/**
 * Binary functions.
 *
 * @author n1474335 [n1474335@gmail.com]
 * @copyright Crown Copyright 2018
 * @license Apache-2.0
 */function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Space",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8,i=n.b.regexRep(t);e=e.replace(i,"");for(var o=[],a=0;a<e.length;a+=r)o.push(parseInt(e.substr(a,r),2));return o}},29:function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=r(1);
/**
 * Decimal functions.
 *
 * @author n1474335 [n1474335@gmail.com]
 * @copyright Crown Copyright 2018
 * @license Apache-2.0
 */function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Auto";t=n.b.charRep(t);var r=[],i=e.split(t);""===i[i.length-1]&&(i=i.slice(0,i.length-1));for(var o=0;o<i.length;o++)r[o]=parseInt(i[o],10);return r}},3:function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},30:function(e,t,r){var n=r(250);function i(t,r,o){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=i=Reflect.get:e.exports=i=function(e,t,r){var i=n(e,t);if(i){var o=Object.getOwnPropertyDescriptor(i,t);return o.get?o.get.call(r):o.value}},i(t,r,o||t)}e.exports=i},39:function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},4:function(e,t,r){var n=r(47);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}},44:function(e,t){function r(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=r=function(e){return typeof e}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(t)}e.exports=r},45:function(e,t,r){var n=function(e){"use strict";var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",o=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag";function s(e,t,r,n){var i=t&&t.prototype instanceof l?t:l,o=Object.create(i.prototype),a=new A(n||[]);return o._invoke=function(e,t,r){var n="suspendedStart";return function(i,o){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw o;return F()}for(r.method=i,r.arg=o;;){var a=r.delegate;if(a){var s=b(a,r);if(s){if(s===c)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=u(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===c)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}(e,r,a),o}function u(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var c={};function l(){}function f(){}function h(){}var p={};p[i]=function(){return this};var d=Object.getPrototypeOf,m=d&&d(d(B([])));m&&m!==t&&r.call(m,i)&&(p=m);var v=h.prototype=l.prototype=Object.create(p);function y(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function g(e,t){var n;this._invoke=function(i,o){function a(){return new t((function(n,a){!function n(i,o,a,s){var c=u(e[i],e,o);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}(i,o,n,a)}))}return n=n?n.then(a,a):a()}}function b(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,b(e,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var n=u(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,c;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,c):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function B(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:F}}function F(){return{value:void 0,done:!0}}return f.prototype=v.constructor=h,h.constructor=f,h[a]=f.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===f||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,a in e||(e[a]="GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},y(g.prototype),g.prototype[o]=function(){return this},e.AsyncIterator=g,e.async=function(t,r,n,i,o){void 0===o&&(o=Promise);var a=new g(s(t,r,n,i),o);return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},y(v),v[a]="Generator",v[i]=function(){return this},v.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=B,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),u=r.call(o,"finallyLoc");if(s&&u){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,c):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),c},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),x(r),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;x(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:B(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),c}},e}(e.exports);try{regeneratorRuntime=n}catch(e){Function("r","regeneratorRuntime = r")(n)}},47:function(e,t){function r(t,n){return e.exports=r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(t,n)}e.exports=r},48:function(e,t,r){"use strict";t.byteLength=function(e){var t=c(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,n=c(e),a=n[0],s=n[1],u=new o(function(e,t,r){return 3*(t+r)/4-r}(0,a,s)),l=0,f=s>0?a-4:a;for(r=0;r<f;r+=4)t=i[e.charCodeAt(r)]<<18|i[e.charCodeAt(r+1)]<<12|i[e.charCodeAt(r+2)]<<6|i[e.charCodeAt(r+3)],u[l++]=t>>16&255,u[l++]=t>>8&255,u[l++]=255&t;2===s&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,u[l++]=255&t);1===s&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,u[l++]=t>>8&255,u[l++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],a=0,s=r-i;a<s;a+=16383)o.push(l(e,a,a+16383>s?s:a+16383));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s<u;++s)n[s]=a[s],i[a.charCodeAt(s)]=s;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function l(e,t,r){for(var i,o,a=[],s=t;s<r;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(n[(o=i)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},49:function(e,t){t.read=function(e,t,r,n,i){var o,a,s=8*i-n-1,u=(1<<s)-1,c=u>>1,l=-7,f=r?i-1:0,h=r?-1:1,p=e[t+f];for(f+=h,o=p&(1<<-l)-1,p>>=-l,l+=s;l>0;o=256*o+e[t+f],f+=h,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=n;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),o-=c}return(p?-1:1)*a*Math.pow(2,o-n)},t.write=function(e,t,r,n,i,o){var a,s,u,c=8*o-i-1,l=(1<<c)-1,f=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(a++,u/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*u-1)*Math.pow(2,i),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[r+p]=255&s,p+=d,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;e[r+p]=255&a,p+=d,a/=256,c-=8);e[r+p-d]|=128*m}},5:function(e,t,r){var n=r(44),i=r(25);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?i(e):t}},50:function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},51:function(e,t){e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}}},52:function(e,t,r){var n=r(53);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}},53:function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}},54:function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},6:function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(2),i=r.n(n),o=r(3),a=r.n(o),s=function(){function e(t){i()(this,e),this.bytes=t,this.length=this.bytes.length,this.position=0,this.bitPos=0}return a()(e,[{key:"getBytes",value:function(e){if(!(this.position>this.length)){var t=this.position+e,r=this.bytes.slice(this.position,t);return this.position=t,this.bitPos=0,r}}},{key:"readString",value:function(e){if(!(this.position>this.length)){for(var t="",r=this.position;r<this.position+e;r++){var n=this.bytes[r];if(0===n)break;t+=String.fromCharCode(n)}return this.position+=e,this.bitPos=0,t}}},{key:"readInt",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"be";if(!(this.position>this.length)){var r=0;if("be"===t)for(var n=this.position;n<this.position+e;n++)r<<=8,r|=this.bytes[n];else for(var i=this.position+e-1;i>=this.position;i--)r<<=8,r|=this.bytes[i];return this.position+=e,this.bitPos=0,r}}},{key:"readBits",value:function(e){if(!(this.position>this.length)){var t=0,r=0;for(t=(this.bytes[this.position++]&256-(1<<this.bitPos))>>>this.bitPos,r=8-this.bitPos,this.bitPos=0;r<e;)t|=this.bytes[this.position++]<<r,r+=8;if(r>e){var n=r-e;t&=(1<<e)-1,r-=n,this.position--,this.bitPos=8-n}return t}}},{key:"continueUntil",value:function(e){if(!(this.position>this.length))if(this.bitPos=0,"number"!=typeof e){var t=e.length,r=e[t-1];this.position=t;for(var n=function(e,t){var r=new Array;return e.forEach((function(e,n){r[e]=t-n})),r}(e,t),i=!0;this.position<this.length;){for(;this.position<this.length&&this.bytes[this.position++]!==r;);i=!0;for(var o=t-1;o>=0;o--)if(this.bytes[this.position-t+o]!==e[o]){i=!1,this.position+=n[e[o]];break}if(i){this.position-=t;break}}}else for(;++this.position<this.length&&this.bytes[this.position]!==e;);}},{key:"consumeWhile",value:function(e){for(;this.position<this.length&&this.bytes[this.position]===e;)this.position++;this.bitPos=0}},{key:"consumeIf",value:function(e){this.bytes[this.position]===e&&(this.position++,this.bitPos=0)}},{key:"moveForwardsBy",value:function(e){var t=this.position+e;if(t<0||t>this.length)throw new Error("Cannot move to position "+t+" in stream. Out of bounds.");this.position=t,this.bitPos=0}},{key:"moveBackwardsBy",value:function(e){var t=this.position-e;if(t<0||t>this.length)throw new Error("Cannot move to position "+t+" in stream. Out of bounds.");this.position=t,this.bitPos=0}},{key:"moveBackwardsByBits",value:function(e){if(e<=this.bitPos)this.bitPos-=e;else for(this.bitPos>0&&(e-=this.bitPos,this.bitPos=0);e>0;)this.moveBackwardsBy(1),this.bitPos=8,this.moveBackwardsByBits(e),e-=8}},{key:"moveTo",value:function(e){if(e<0||e>this.length)throw new Error("Cannot move to position "+e+" in stream. Out of bounds.");this.position=e,this.bitPos=0}},{key:"hasMore",value:function(){return this.position<this.length}},{key:"carve",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.position;return this.bitPos>0&&t++,this.bytes.slice(e,t)}}]),e}()},7:function(e,t,r){"use strict";var n=r(2),i=r.n(n),o=r(25),a=r.n(o),s=r(4),u=r.n(s),c=r(5),l=r.n(c),f=r(0),h=r.n(f);function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=h()(e);if(t){var i=h()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return l()(this,r)}}
/**
 * Custom error type for handling operation input errors.
 * i.e. where the operation can handle the error and print a message to the screen.
 *
 * @author d98762625 [d98762625@gmail.com]
 * @copyright Crown Copyright 2018
 * @license Apache-2.0
 */
var d=function(e){u()(r,e);var t=p(r);function r(){var e;i()(this,r);for(var n=arguments.length,o=new Array(n),s=0;s<n;s++)o[s]=arguments[s];return(e=t.call(this,...o)).type="OperationError",Error.captureStackTrace&&Error.captureStackTrace(a()(e),r),e}return r}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Error));t.a=d},8:function(e,t,r){e.exports=r(45)},9:function(e,t,r){"use strict";var n=r(2),i=r.n(n),o=r(3),a=r.n(o),s=r(15),u=r(1),c=r(21),l=function(){function e(t){i()(this,e),this.name="",this.type="",this._value=null,this.disabled=!1,this.hint="",this.rows=0,this.toggleValues=[],this.target=null,this.defaultIndex=0,this.min=null,this.max=null,this.step=1,t&&this._parseConfig(t)}return a()(e,[{key:"_parseConfig",value:function(e){this.name=e.name,this.type=e.type,this.defaultValue=e.value,this.disabled=!!e.disabled,this.hint=e.hint||!1,this.rows=e.rows||!1,this.toggleValues=e.toggleValues,this.target=void 0!==e.target?e.target:null,this.defaultIndex=void 0!==e.defaultIndex?e.defaultIndex:0,this.min=e.min,this.max=e.max,this.step=e.step}},{key:"config",get:function(){return this._value}},{key:"value",set:function(t){this._value=e.prepare(t,this.type)},get:function(){return this._value}}],[{key:"prepare",value:function(e,t){var r;switch(t){case"binaryString":case"binaryShortString":case"editableOption":case"editableOptionShort":return u.b.parseEscapedChars(e);case"byteArray":return"string"==typeof e?(e=e.replace(/\s+/g,""),Object(c.a)(e)):e;case"number":if(null===e)return e;if(r=parseFloat(e),isNaN(r))throw"Invalid ingredient value. Not a number: "+u.b.truncate(e.toString(),10);return r;default:return e}}}]),e}(),f=function(){function e(){i()(this,e),this._inputType=-1,this._outputType=-1,this._presentType=-1,this._breakpoint=!1,this._disabled=!1,this._flowControl=!1,this._manualBake=!1,this._ingList=[],this.name="",this.module="",this.description="",this.infoURL=null}return a()(e,[{key:"run",value:function(e,t){return e}},{key:"highlight",value:function(e,t){return!1}},{key:"highlightReverse",value:function(e,t){return!1}},{key:"present",value:function(e,t){return e}},{key:"addIngredient",value:function(e){this._ingList.push(e)}},{key:"inputType",set:function(e){this._inputType=s.a.typeEnum(e)},get:function(){return s.a.enumLookup(this._inputType)}},{key:"outputType",set:function(e){this._outputType=s.a.typeEnum(e),this._presentType<0&&(this._presentType=this._outputType)},get:function(){return s.a.enumLookup(this._outputType)}},{key:"presentType",set:function(e){this._presentType=s.a.typeEnum(e)},get:function(){return s.a.enumLookup(this._presentType)}},{key:"args",set:function(e){var t=this;e.forEach((function(e){var r=new l(e);t.addIngredient(r)}))},get:function(){return this._ingList.map((function(e){var t={name:e.name,type:e.type,value:e.defaultValue};return e.toggleValues&&(t.toggleValues=e.toggleValues),e.hint&&(t.hint=e.hint),e.rows&&(t.rows=e.rows),e.disabled&&(t.disabled=e.disabled),e.target&&(t.target=e.target),e.defaultIndex&&(t.defaultIndex=e.defaultIndex),"number"==typeof e.min&&(t.min=e.min),"number"==typeof e.max&&(t.max=e.max),e.step&&(t.step=e.step),t}))}},{key:"config",get:function(){return{op:this.name,args:this._ingList.map((function(e){return e.config}))}}},{key:"ingValues",set:function(e){var t=this;e.forEach((function(e,r){t._ingList[r].value=e}))},get:function(){return this._ingList.map((function(e){return e.value}))}},{key:"breakpoint",set:function(e){this._breakpoint=!!e},get:function(){return this._breakpoint}},{key:"disabled",set:function(e){this._disabled=!!e},get:function(){return this._disabled}},{key:"flowControl",get:function(){return this._flowControl},set:function(e){this._flowControl=!!e}},{key:"manualBake",get:function(){return this._manualBake},set:function(e){this._manualBake=!!e}}]),e}();t.a=f}});