25 lines
133 KiB
JavaScript
25 lines
133 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
exports.id = "vendor-chunks/spacetime";
|
|
exports.ids = ["vendor-chunks/spacetime"];
|
|
exports.modules = {
|
|
|
|
/***/ "(ssr)/./node_modules/spacetime/builds/spacetime.mjs":
|
|
/*!*****************************************************!*\
|
|
!*** ./node_modules/spacetime/builds/spacetime.mjs ***!
|
|
\*****************************************************/
|
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ft)\n/* harmony export */ });\nconst e=(e,t,n)=>{const[r,a]=e.split(\"/\"),[o,s]=a.split(\":\");return Date.UTC(n,r-1,o,s)-36e5*t},t=(t,n,r,a,o)=>{const s=new Date(t).getUTCFullYear(),i=e(n,o,s),u=e(r,a,s);return t>=i&&t<u};var n={\"9|s\":\"2/dili,2/jayapura\",\"9|n\":\"2/chita,2/khandyga,2/pyongyang,2/seoul,2/tokyo,2/yakutsk,11/palau,japan,rok\",\"9.5|s|04/05:03->10/04:02\":\"4/adelaide,4/broken_hill,4/south,4/yancowinna\",\"9.5|s\":\"4/darwin,4/north\",\"8|s|03/13:01->10/02:00\":\"12/casey\",\"8|s\":\"2/kuala_lumpur,2/makassar,2/singapore,4/perth,2/ujung_pandang,4/west,singapore\",\"8|n\":\"2/brunei,2/hong_kong,2/irkutsk,2/kuching,2/macau,2/manila,2/shanghai,2/taipei,2/ulaanbaatar,2/chongqing,2/chungking,2/harbin,2/macao,2/ulan_bator,2/choibalsan,hongkong,prc,roc\",\"8.75|s\":\"4/eucla\",\"7|s\":\"12/davis,2/jakarta,9/christmas\",\"7|n\":\"2/bangkok,2/barnaul,2/hovd,2/krasnoyarsk,2/novokuznetsk,2/novosibirsk,2/phnom_penh,2/pontianak,2/ho_chi_minh,2/tomsk,2/vientiane,2/saigon\",\"6|s\":\"12/vostok\",\"6|n\":\"2/bishkek,2/dhaka,2/omsk,2/thimphu,2/urumqi,9/chagos,2/dacca,2/kashgar,2/thimbu\",\"6.5|n\":\"2/yangon,9/cocos,2/rangoon\",\"5|s\":\"12/mawson,9/kerguelen\",\"5|n\":\"2/almaty,2/aqtau,2/aqtobe,2/ashgabat,2/atyrau,2/dushanbe,2/karachi,2/oral,2/qyzylorda,2/qostanay,2/samarkand,2/tashkent,2/yekaterinburg,9/maldives,2/ashkhabad\",\"5.75|n\":\"2/kathmandu,2/katmandu\",\"5.5|n\":\"2/kolkata,2/colombo,2/calcutta\",\"4|s\":\"9/reunion\",\"4|n\":\"2/baku,2/dubai,2/muscat,2/tbilisi,2/yerevan,8/astrakhan,8/samara,8/saratov,8/ulyanovsk,8/volgograd,9/mahe,9/mauritius,2/volgograd\",\"4.5|n\":\"2/kabul\",\"3|s\":\"12/syowa,9/antananarivo\",\"3|n|04/24:00->10/29:24\":\"0/cairo,egypt\",\"3|n|03/29:03->10/25:04\":\"2/famagusta,2/nicosia,8/athens,8/bucharest,8/chisinau,8/helsinki,8/kyiv,8/mariehamn,8/riga,8/sofia,8/tallinn,8/uzhgorod,8/vilnius,8/zaporozhye,8/nicosia,8/tiraspol,8/kiev,eet\",\"3|n|03/29:00->10/24:24\":\"2/beirut\",\"3|n|03/28:02->10/24:02\":\"2/gaza,2/hebron\",\"3|n|03/27:02->10/25:02\":\"2/jerusalem,2/tel_aviv,israel\",\"3|n\":\"0/addis_ababa,0/asmara,0/asmera,0/dar_es_salaam,0/djibouti,0/juba,0/kampala,0/mogadishu,0/nairobi,2/aden,2/amman,2/baghdad,2/bahrain,2/damascus,2/kuwait,2/qatar,2/riyadh,8/istanbul,8/kirov,8/minsk,8/moscow,8/simferopol,9/comoro,9/mayotte,2/istanbul,turkey,w-su\",\"3.5|n\":\"2/tehran,iran\",\"2|s|03/29:02->10/25:02\":\"12/troll\",\"2|s\":\"0/gaborone,0/harare,0/johannesburg,0/lubumbashi,0/lusaka,0/maputo,0/maseru,0/mbabane\",\"2|n|03/29:02->10/25:03\":\"0/ceuta,arctic/longyearbyen,8/amsterdam,8/andorra,8/belgrade,8/berlin,8/bratislava,8/brussels,8/budapest,8/busingen,8/copenhagen,8/gibraltar,8/ljubljana,8/luxembourg,8/madrid,8/malta,8/monaco,8/oslo,8/paris,8/podgorica,8/prague,8/rome,8/san_marino,8/sarajevo,8/skopje,8/stockholm,8/tirane,8/vaduz,8/vatican,8/vienna,8/warsaw,8/zagreb,8/zurich,3/jan_mayen,poland,cet,met\",\"2|n\":\"0/blantyre,0/bujumbura,0/khartoum,0/kigali,0/tripoli,8/kaliningrad,libya\",\"1|s\":\"0/brazzaville,0/kinshasa,0/luanda,0/windhoek\",\"1|n|03/29:01->10/25:02\":\"3/canary,3/faroe,3/madeira,8/dublin,8/guernsey,8/isle_of_man,8/jersey,8/lisbon,8/london,3/faeroe,eire,8/belfast,gb-eire,gb,portugal,wet\",\"1|n\":\"0/algiers,0/bangui,0/douala,0/lagos,0/libreville,0/malabo,0/ndjamena,0/niamey,0/porto-novo,0/tunis\",\"14|n\":\"11/kiritimati\",\"13|s\":\"11/apia,11/tongatapu\",\"13|n\":\"11/enderbury,11/kanton,11/fakaofo\",\"12|s|04/05:03->09/27:02\":\"12/mcmurdo,11/auckland,12/south_pole,nz\",\"12|s\":\"11/fiji\",\"12|n\":\"2/anadyr,2/kamchatka,2/srednekolymsk,11/funafuti,11/kwajalein,11/majuro,11/nauru,11/tarawa,11/wake,11/wallis,kwajalein\",\"12.75|s|04/05:03->04/05:02\":\"11/chatham,nz-chat\",\"11|s|04/05:03->10/04:02\":\"12/macquarie\",\"11|s\":\"11/bougainville\",\"11|n\":\"2/magadan,2/sakhalin,11/efate,11/guadalcanal,11/kosrae,11/noumea,11/pohnpei,11/ponape\",\"11.5|n|04/05:03->10/04:02\":\"11/norfolk\",\"10|s|04/05:03->10/04:02\":\"4/currie,4/hobart,4/melbourne,4/sydney,4/act,4/canberra,4/nsw,4/tasmania,4/victoria\",\"10|s\":\"12/dumontdurville,4/brisbane,4/lindeman,11/port_moresby,4/queensland\",\"10|n\":\"2/ust-nera,2/vladivostok,11/guam,11/saipan,11/chuuk,11/truk,11/yap\",\"10.5|s|04/05:01->10/04:02\":\"4/lord_howe,4/lhi\",\"0|s|02/15:03->03/22:02\":\"0/casablanca,0/el_aaiun\",\"0|n|03/29:00->10/25:01\":\"3/azores\",\"0|n|03/29:00->10/24:24\":\"1/scoresbysund\",\"0|n\":\"0/abidjan,0/accra,0/bamako,0/banjul,0/bissau,0/conakry,0/dakar,0/freetown,0/lome,0/monrovia,0/nouakchott,0/ouagadougou,0/sao_tome,1/danmarkshavn,3/reykjavik,3/st_helena,13/gmt,13/utc,0/timbuktu,13/greenwich,13/uct,13/universal,13/zulu,gmt-0,gmt+0,gmt0,greenwich,iceland,uct,universal,utc,zulu,13/unknown,factory\",\"-9|n|03/08:02->11/01:02\":\"1/adak,1/atka,us/aleutian\",\"-9|n\":\"11/gambier\",\"-9.5|n\":\"11/marquesas\",\"-8|n|03/08:02->11/01:02\":\"1/anchorage,1/juneau,1/metlakatla,1/nome,1/sitka,1/yakutat,us/alaska\",\"-8|n\":\"11/pitcairn\",\"-7|n|03/08:02->11/01:03\":\"1/vancouver,6/pacific\",\"-7|n|03/08:02->11/01:02\":\"1/los_angeles,1/santa_isabel,1/tijuana,1/ensenada,10/bajanorte,us/pacific-new,us/pacific\",\"-7|n\":\"1/creston,1/dawson,1/dawson_creek,1/fort_nelson,1/hermosillo,1/mazatlan,1/phoenix,1/whitehorse,6/yukon,10/bajasur,us/arizona,mst\",\"-6|s|04/04:22->09/05:22\":\"11/easter,7/easterisland\",\"-6|n|04/07:02->10/27:02\":\"1/merida\",\"-6|n|03/08:02->11/01:02\":\"1/boise,1/cambridge_bay,1/denver,1/edmonton,1/inuvik,1/north_dakota,1/ojinaga,1/ciudad_juarez,1/yellowknife,1/shiprock,6/mountain,navajo,us/mountain\",\"-6|n\":\"1/bahia_banderas,1/belize,1/chihuahua,1/costa_rica,1/el_salvador,1/guatemala,1/managua,1/mexico_city,1/monterrey,1/regina,1/swift_current,1/tegucigalpa,11/galapagos,6/east-saskatchewan,6/saskatchewan,10/general\",\"-5|s\":\"1/lima,1/rio_branco,1/porto_acre,5/acre\",\"-5|n|03/08:02->11/01:02\":\"1/chicago,1/matamoros,1/menominee,1/rainy_river,1/rankin_inlet,1/resolute,1/winnipeg,1/indiana/knox,1/indiana/tell_city,1/north_dakota/beulah,1/north_dakota/center,1/north_dakota/new_salem,1/knox_in,6/central,us/central,us/indiana-starke\",\"-5|n\":\"1/bogota,1/cancun,1/cayman,1/coral_harbour,1/eirunepe,1/guayaquil,1/jamaica,1/panama,1/atikokan,jamaica,est\",\"-4|s|04/04:24->09/06:00\":\"1/santiago,7/continental\",\"-4|s|03/22:24->10/05:00\":\"1/asuncion\",\"-4|s\":\"1/campo_grande,1/cuiaba,1/la_paz,1/manaus,5/west\",\"-4|n|03/08:02->11/01:02\":\"1/detroit,1/grand_turk,1/indiana,1/indianapolis,1/iqaluit,1/kentucky,1/louisville,1/montreal,1/nassau,1/new_york,1/nipigon,1/pangnirtung,1/port-au-prince,1/thunder_bay,1/toronto,1/indiana/marengo,1/indiana/petersburg,1/indiana/vevay,1/indiana/vincennes,1/indiana/winamac,1/kentucky/monticello,1/fort_wayne,1/indiana/indianapolis,1/kentucky/louisville,6/eastern,us/east-indiana,us/eastern,us/michigan\",\"-4|n|03/08:00->11/01:01\":\"1/havana,cuba\",\"-4|n\":\"1/anguilla,1/antigua,1/aruba,1/barbados,1/blanc-sablon,1/boa_vista,1/caracas,1/curacao,1/dominica,1/grenada,1/guadeloupe,1/guyana,1/kralendijk,1/lower_princes,1/marigot,1/martinique,1/montserrat,1/port_of_spain,1/porto_velho,1/puerto_rico,1/santo_domingo,1/st_barthelemy,1/st_kitts,1/st_lucia,1/st_thomas,1/st_vincent,1/tortola,1/virgin\",\"-3|s\":\"1/argentina,1/buenos_aires,1/catamarca,1/cordoba,1/coyhaique,1/fortaleza,1/jujuy,1/mendoza,1/montevideo,1/punta_arenas,1/sao_paulo,12/palmer,12/rothera,3/stanley,1/argentina/la_rioja,1/argentina/rio_gallegos,1/argentina/salta,1/argentina/san_juan,1/argentina/san_luis,1/argentina/tucuman,1/argentina/ushuaia,1/argentina/comodrivadavia,1/argentina/buenos_aires,1/argentina/catamarca,1/argentina/cordoba,1/argentina/jujuy,1/argentina/mendoza,1/argentina/rosario,1/rosario,5/east\",\"-3|n|03/08:02->11/01:02\":\"1/glace_bay,1/goose_bay,1/halifax,1/moncton,1/thule,3/bermuda,6/atlantic\",\"-3|n\":\"1/araguaina,1/bahia,1/belem,1/cayenne,1/maceio,1/paramaribo,1/recife,1/santarem\",\"-2|n|03/08:02->11/01:02\":\"1/miquelon\",\"-2|n\":\"1/noronha,3/south_georgia,5/denoronha\",\"-2.5|n|03/08:02->11/01:02\":\"1/st_johns,6/newfoundland\",\"-1|n|03/29:00->10/24:24\":\"1/nuuk,1/godthab\",\"-1|n\":\"3/cape_verde\",\"-11|n\":\"11/midway,11/niue,11/pago_pago,11/samoa,us/samoa\",\"-10|n\":\"11/honolulu,11/johnston,11/rarotonga,11/tahiti,us/hawaii,hst\"},r=[\"africa\",\"america\",\"asia\",\"atlantic\",\"australia\",\"brazil\",\"canada\",\"chile\",\"europe\",\"indian\",\"mexico\",\"pacific\",\"antarctica\",\"etc\"];const a={};Object.keys(n).forEach(e=>{const t=e.split(\"|\"),o={offset:Number(t[0]),hem:t[1]};t[2]&&(o.dst=t[2]);n[e].split(\",\").forEach(e=>{e=e.replace(/(^[0-9]+)\\//,(e,t)=>(t=Number(t),r[t]+\"/\")),a[e]=o})}),a.utc={offset:0,hem:\"n\"};for(let e=-14;e<=14;e+=.5){let t=e;t>0&&(t=\"+\"+t);let n=\"etc/gmt\"+t;a[n]={offset:-1*e,hem:\"n\"},n=\"utc/gmt\"+t,a[n]={offset:-1*e,hem:\"n\"}}const o=/(-?[0-9]+)h(rs)?/i,s=/(-?[0-9]+)/,i=/utc([\\-+]?[0-9]+)/i,u=/gmt([\\-+]?[0-9]+)/i,c=function(e){return(e=Number(e))>=-13&&e<=13?\"etc/gmt\"+(e=((e*=-1)>0?\"+\":\"\")+e):null};let h=(()=>{const e=(()=>{if(\"undefined\"==typeof Intl||void 0===Intl.DateTimeFormat)return null;const e=Intl.DateTimeFormat();if(void 0===e||void 0===e.resolvedOptions)return null;const t=e.resolvedOptions().timeZone;return t?t.toLowerCase():null})();return null===e?\"utc\":e})();const l=Object.keys(a).reduce((e,t)=>{let n=t.split(\"/\")[1]||\"\";return n=n.replace(/_/g,\" \"),e[n]=t,e},{}),m=(e,t)=>{if(!e)return t.hasOwnProperty(h)||(console.warn(`Unrecognized IANA id '${h}'. Setting fallback tz to UTC.`),h=\"utc\"),h;\"string\"!=typeof e&&console.error(\"Timezone must be a string - recieved: '\",e,\"'\\n\");let n=e.trim();if(n=n.toLowerCase(),!0===t.hasOwnProperty(n))return n;if(n=(e=>(e=(e=(e=(e=(e=e.replace(/ time/g,\"\")).replace(/ (standard|daylight|summer)/g,\"\")).replace(/\\b(east|west|north|south)ern/g,\"$1\")).replace(/\\b(africa|america|australia)n/g,\"$1\")).replace(/\\beuropean/g,\"europe\")).replace(/islands/g,\"island\"))(n),!0===t.hasOwnProperty(n))return n;if(!0===l.hasOwnProperty(n))return l[n];if(!0===/[0-9]/.test(n)){const e=function(e){let t=e.match(o);if(null!==t)return c(t[1]);if(t=e.match(i),null!==t)return c(t[1]);if(t=e.match(u),null!==t){const e=-1*Number(t[1]);return c(e)}return t=e.match(s),null!==t?c(t[1]):null}(n);if(e)return e}throw new Error(\"Spacetime: Cannot find timezone named: '\"+e+\"'. Please enter an IANA timezone id.\")};function d(e){return e%4==0&&e%100!=0||e%400==0}function f(e){return\"[object Date]\"===Object.prototype.toString.call(e)&&!isNaN(e.valueOf())}function p(e){return\"[object Object]\"===Object.prototype.toString.call(e)}function y(e,t=2){return(e+=\"\").length>=t?e:new Array(t-e.length+1).join(\"0\")+e}function g(e){const t=e%10,n=e%100;return 1===t&&11!==n?e+\"st\":2===t&&12!==n?e+\"nd\":3===t&&13!==n?e+\"rd\":e+\"th\"}function b(e){return e=(e=String(e)).replace(/([0-9])(st|nd|rd|th)$/i,\"$1\"),parseInt(e,10)}function k(e=\"\"){return\"day\"===(e=(e=(e=(e=e.toLowerCase().trim()).replace(/ies$/,\"y\")).replace(/s$/,\"\")).replace(/-/g,\"\"))||\"days\"===e?\"date\":\"min\"===e||\"mins\"===e?\"minute\":e}function w(e){return\"number\"==typeof e?e:f(e)?e.getTime():e.epoch||0===e.epoch?e.epoch:null}function v(e,t){return!1===p(e)?t.clone().set(e):e}function z(e,t=\"\"){const n=e>0?\"+\":\"-\",r=Math.abs(e);return`${n}${y(parseInt(\"\"+r,10))}${t}${y(r%1*60)}`}const _={year:(new Date).getFullYear(),month:0,date:1},$=[\"year\",\"month\",\"date\",\"hour\",\"minute\",\"second\",\"millisecond\"];var j={parseArray:(e,t,n)=>{if(0===t.length)return e;for(let r=0;r<$.length;r++){const a=t[r]||n[$[r]]||_[$[r]]||0;e=e[$[r]](a)}return e},parseObject:(e,t)=>{if(0===Object.keys(t).length)return e;(t=Object.assign({},_,t)).timezone&&(e.tz=t.timezone);for(let n=0;n<$.length;n++){const r=$[n];void 0!==t[r]&&(e=e[r](t[r]))}return e},parseNumber:function(e,t){return t>0&&t<25e8&&!1===e.silent&&(console.warn(\" - Warning: You are setting the date to January 1970.\"),console.warn(\" - did input seconds instead of milliseconds?\")),e.epoch=t,e}};const O=function(e){return e.epoch=Date.now(),Object.keys(e._today||{}).forEach(t=>{\"function\"==typeof e[t]&&(e=e[t](e._today[t]))}),e},D={now:e=>O(e),today:e=>O(e),tonight:e=>e=(e=O(e)).hour(18),tomorrow:e=>e=(e=(e=O(e)).add(1,\"day\")).startOf(\"day\"),yesterday:e=>e=(e=(e=O(e)).subtract(1,\"day\")).startOf(\"day\"),christmas:e=>{const t=O(e).year();return e=e.set([t,11,25,18,0,0])},\"new years\":e=>{const t=O(e).year();return e=e.set([t,11,31,18,0,0])}};D[\"new years eve\"]=D[\"new years\"];const M={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5};M.date=M.day,M.month=25488e5,M.week=6048e5,M.year=3154e7,Object.keys(M).forEach(e=>{M[e+\"s\"]=M[e]});const S=(e,t,n,r,a)=>{const o=e.d[n]();if(o===t)return;const s=null===a?null:e.d[a](),i=e.epoch,u=t-o;e.epoch+=M[r]*u,\"day\"===r&&Math.abs(u)>28&&t<28&&(e.epoch+=M.hour),null!==a&&s!==e.d[a]()&&(e.epoch=i);const c=M[r]/2;for(;e.d[n]()<t;)e.epoch+=c;for(;e.d[n]()>t;)e.epoch-=c;null!==a&&s!==e.d[a]()&&(e.epoch=i)},q={year:{valid:e=>e>-4e3&&e<4e3,walkTo:(e,t)=>S(e,t,\"getFullYear\",\"year\",null)},month:{valid:e=>e>=0&&e<=11,walkTo:(e,t)=>{const n=e.d,r=n.getMonth(),a=e.epoch,o=n.getFullYear();if(r===t)return;const s=t-r;for(e.epoch+=M.day*(28*s),o!==e.d.getFullYear()&&(e.epoch=a);e.d.getMonth()<t;)e.epoch+=M.day;for(;e.d.getMonth()>t;)e.epoch-=M.day}},date:{valid:e=>e>0&&e<=31,walkTo:(e,t)=>S(e,t,\"getDate\",\"day\",\"getMonth\")},hour:{valid:e=>e>=0&&e<24,walkTo:(e,t)=>S(e,t,\"getHours\",\"hour\",\"getDate\")},minute:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>S(e,t,\"getMinutes\",\"minute\",\"getHours\")},second:{valid:e=>e>=0&&e<60,walkTo:(e,t)=>{e.epoch=e.seconds(t).epoch}},millisecond:{valid:e=>e>=0&&e<1e3,walkTo:(e,t)=>{e.epoch=e.milliseconds(t).epoch}}},N=(e,t)=>{const n=Object.keys(q),r=e.clone();for(let a=0;a<n.length;a++){const o=n[a];let s=t[o];if(void 0===s&&(s=r[o]()),\"string\"==typeof s&&(s=parseInt(s,10)),!q[o].valid(s))return e.epoch=null,void(!1===e.silent&&console.warn(\"invalid \"+o+\": \"+s));q[o].walkTo(e,s)}},I=[31,28,31,30,31,30,31,31,30,31,30,31];let T=[\"jan\",\"feb\",\"mar\",\"apr\",\"may\",\"jun\",\"jul\",\"aug\",\"sep\",\"oct\",\"nov\",\"dec\"],C=[\"january\",\"february\",\"march\",\"april\",\"may\",\"june\",\"july\",\"august\",\"september\",\"october\",\"november\",\"december\"];function E(){return T}function A(){return function(){const e={sep:8};for(let t=0;t<T.length;t++)e[T[t]]=t;for(let t=0;t<C.length;t++)e[C[t]]=t;return e}()}const x=(e,t)=>{if(!t)return e;t=t.trim().toLowerCase();let n=0;if(/^[+-]?[0-9]{2}:[0-9]{2}$/.test(t)&&(!0===/:00/.test(t)&&(t=t.replace(/:00/,\"\")),!0===/:30/.test(t)&&(t=t.replace(/:30/,\".5\"))),/^[+-]?[0-9]{4}$/.test(t)&&(t=t.replace(/30$/,\".5\")),n=parseFloat(t),Math.abs(n)>100&&(n/=100),0===n||\"Z\"===t||\"z\"===t)return e.tz=\"etc/gmt\",e;n*=-1,n>=0&&(n=\"+\"+n);const r=\"etc/gmt\"+n;return e.timezones[r]&&(e.tz=r),e},Y=(e,t=\"\")=>{let n=(t=t.replace(/^\\s+/,\"\").toLowerCase()).match(/([0-9]{1,2}):([0-9]{1,2}):?([0-9]{1,2})?[:.]?([0-9]{1,4})?/);if(null!==n){let[,r,a,o,s]=n;if(r=Number(r),r<0||r>24)return e.startOf(\"day\");if(a=Number(a),n[2].length<2||a<0||a>59)return e.startOf(\"day\");e=(e=(e=(e=e.hour(r)).minute(a)).seconds(o||0)).millisecond(function(e=\"\"){return(e=String(e)).length>3?e=e.substring(0,3):1===e.length?e+=\"00\":2===e.length&&(e+=\"0\"),Number(e)||0}(s));const i=t.match(/[0-9] ?(am|pm)\\b/);return null!==i&&i[1]&&(e=e.ampm(i[1])),e}if(n=t.match(/([0-9]+) ?(am|pm)/),null!==n&&n[1]){const t=Number(n[1]);return t>12||t<1?e.startOf(\"day\"):e=(e=(e=e.hour(n[1]||0)).ampm(n[2])).startOf(\"hour\")}return e=e.startOf(\"day\")},F=A(),P=e=>{if(!0!==I.hasOwnProperty(e.month))return!1;if(1===e.month)return!!(d(e.year)&&e.date<=29)||e.date<=28;const t=I[e.month]||0;return e.date<=t},L=(e=\"\",t)=>{if(e=e.trim(),!0===/^'[0-9][0-9]$/.test(e)){const t=Number(e.replace(/'/,\"\"));return t>50?1900+t:2e3+t}let n=parseInt(e,10);return!n&&t&&(n=t.year),n=n||(new Date).getFullYear(),n},U=function(e){return\"sept\"===(e=e.toLowerCase().trim())?F.sep:F[e]};var B=[{reg:/^([0-9]{1,2})[-/.]([0-9]{1,2})[\\-/.]?([0-9]{4})?( [0-9]{1,2}:[0-9]{2}:?[0-9]{0,2} ?(am|pm|gmt))?$/i,parse:(e,t)=>{let n=parseInt(t[1],10)-1,r=parseInt(t[2],10);(e.british||n>=12)&&(r=parseInt(t[1],10),n=parseInt(t[2],10)-1);const a={date:r,month:n,year:L(t[3],e._today)||(new Date).getFullYear()};return!1===P(a)?(e.epoch=null,e):(N(e,a),e=Y(e,t[4]))}},{reg:/^([a-z]+)[\\-/. ]([0-9]{1,2})[\\-/. ]?([0-9]{4}|'[0-9]{2})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{const n={year:L(t[3],e._today),month:U(t[1]),date:b(t[2]||\"\")};return!1===P(n)?(e.epoch=null,e):(N(e,n),e=Y(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2})( [0-9]{4})?( ([0-9:]+( ?am| ?pm| ?gmt)?))?$/i,parse:(e,t)=>{const n={year:L(t[3],e._today),month:U(t[1]),date:b(t[2]||\"\")};return!1===P(n)?(e.epoch=null,e):(N(e,n),e=Y(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{1,2}) ([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2})( \\+[0-9]{4})?( [0-9]{4})?$/i,parse:(e,t)=>{const[,n,r,a,o,s]=t,i={year:L(s,e._today),month:U(n),date:b(r||\"\")};return!1===P(i)?(e.epoch=null,e):(N(e,i),e=x(e,o),e=Y(e,a))}}],H=[{reg:/^([0-9]{4})[\\-/]([0-9]{2})$/,parse:(e,t)=>{const n={year:t[1],month:parseInt(t[2],10)-1,date:1};return!1===P(n)?(e.epoch=null,e):(N(e,n),e=Y(e,t[4]))}},{reg:/^([a-z]+) ([0-9]{4})$/i,parse:(e,t)=>{const n={year:L(t[2],e._today),month:U(t[1]),date:e._today.date||1};return!1===P(n)?(e.epoch=null,e):(N(e,n),e=Y(e,t[4]))}},{reg:/^(q[0-9])( of)?( [0-9]{4})?/i,parse:(e,t)=>{const n=t[1]||\"\";e=e.quarter(n);let r=t[3]||\"\";return r&&(r=r.trim(),e=e.year(r)),e}},{reg:/^(spring|summer|winter|fall|autumn)( of)?( [0-9]{4})?/i,parse:(e,t)=>{const n=t[1]||\"\";e=e.season(n);let r=t[3]||\"\";return r&&(r=r.trim(),e=e.year(r)),e}},{reg:/^[0-9,]+ ?b\\.?c\\.?$/i,parse:(e,t)=>{let n=t[0]||\"\";n=n.replace(/^([0-9,]+) ?b\\.?c\\.?$/i,\"-$1\");const r=new Date,a={year:parseInt(n.trim(),10),month:r.getMonth(),date:r.getDate()};return!1===P(a)?(e.epoch=null,e):(N(e,a),e=Y(e))}},{reg:/^[0-9,]+ ?(a\\.?d\\.?|c\\.?e\\.?)$/i,parse:(e,t)=>{let n=t[0]||\"\";n=n.replace(/,/g,\"\");const r=new Date,a={year:parseInt(n.trim(),10),month:r.getMonth(),date:r.getDate()};return!1===P(a)?(e.epoch=null,e):(N(e,a),e=Y(e))}},{reg:/^[0-9]{4}( ?a\\.?d\\.?)?$/i,parse:(e,t)=>{const n=e._today;n.month&&!n.date&&(n.date=1);const r=new Date,a={year:L(t[0],n),month:n.month||r.getMonth(),date:n.date||r.getDate()};return!1===P(a)?(e.epoch=null,e):(N(e,a),e=Y(e))}}],Z=[].concat([{reg:/^(-?0{0,2}[0-9]{3,4})-([0-9]{1,2})-([0-9]{1,2})[T| ]([0-9.:]+)(Z|[0-9-+:]+)?(\\[.*?\\])?(\\[.*?\\])?$/i,parse:(e,t)=>{const n={year:t[1],month:parseInt(t[2],10)-1,date:t[3]};if(!1===P(n))return e.epoch=null,e;if(t[6]){const n=t[6].trim().replace(/[[\\]]/g,\"\");n&&(e=e.timezone(n))}else x(e,t[5]);return N(e,n),e=Y(e,t[4])}},{reg:/^([0-9]{4})[\\-/. ]([0-9]{1,2})[\\-/. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{const n={year:t[1],month:parseInt(t[2],10)-1,date:parseInt(t[3],10)};return n.month>=12&&(n.date=parseInt(t[2],10),n.month=parseInt(t[3],10)-1),!1===P(n)?(e.epoch=null,e):(N(e,n),e=Y(e,t[4]))}},{reg:/^([0-9]{4})[\\-/. ]([a-z]+)[\\-/. ]([0-9]{1,2})( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{const n={year:L(t[1],e._today),month:U(t[2]),date:b(t[3]||\"\")};return!1===P(n)?(e.epoch=null,e):(N(e,n),e=Y(e,t[4]))}}],B,[{reg:/^([0-9]{1,2})[-/]([a-z]+)[\\-/]?([0-9]{4})?$/i,parse:(e,t)=>{const n={year:L(t[3],e._today),month:U(t[2]),date:b(t[1]||\"\")};return!1===P(n)?(e.epoch=null,e):(N(e,n),e=Y(e,t[4]))}},{reg:/^([0-9]{1,2})( [a-z]+)( [0-9]{4}| '[0-9]{2})? ?([0-9]{1,2}:[0-9]{2}:?[0-9]{0,2} ?(am|pm|gmt))?$/i,parse:(e,t)=>{const n={year:L(t[3],e._today),month:U(t[2]),date:b(t[1])};return n.month&&!1!==P(n)?(N(e,n),e=Y(e,t[4])):(e.epoch=null,e)}},{reg:/^([0-9]{1,2})[. \\-/]([a-z]+)[. \\-/]([0-9]{4})?( [0-9]{1,2}(:[0-9]{0,2})?(:[0-9]{0,3})? ?(am|pm)?)?$/i,parse:(e,t)=>{const n={date:Number(t[1]),month:U(t[2]),year:Number(t[3])};return!1===P(n)?(e.epoch=null,e):(N(e,n),e=e.startOf(\"day\"),e=Y(e,t[4]))}}],H);const{parseArray:Q,parseObject:G,parseNumber:V}=j,W={year:(new Date).getFullYear(),month:0,date:1},J=(e,t)=>{const n=e._today||W;if(\"number\"==typeof t)return V(e,t);if(e.epoch=Date.now(),e._today&&p(e._today)&&Object.keys(e._today).length>0){const t=G(e,n);t.isValid()&&(e.epoch=t.epoch)}if(null==t||\"\"===t)return e;if(!0===f(t))return e.epoch=t.getTime(),e;if(!0===function(e){return\"[object Array]\"===Object.prototype.toString.call(e)}(t))return e=Q(e,t,n);if(!0===p(t)){if(t.epoch)return e.epoch=t.epoch,e.tz=t.tz,e;const r=Object.assign({},n,t);return e=G(e,r)}return\"string\"!=typeof t?e:(t=t.replace(/\\b(mon|tues?|wed|wednes|thur?s?|fri|sat|satur|sun)(day)?\\b/i,\"\").replace(/([0-9])(th|rd|st|nd)/,\"$1\").replace(/,/g,\"\").replace(/ +/g,\" \").trim(),!0===D.hasOwnProperty(t)?e=D[t](e):function(e,t,n){for(let r=0;r<Z.length;r++){const a=t.match(Z[r].reg);if(a){const t=Z[r].parse(e,a,n);if(null!==t&&t.isValid())return t}}return!1===e.silent&&console.warn(\"Warning: couldn't parse date-string: '\"+t+\"'\"),e.epoch=null,e}(e,t))};let K=[\"sun\",\"mon\",\"tue\",\"wed\",\"thu\",\"fri\",\"sat\"],R=[\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"];function X(){return K}function ee(){return R}const te={mo:1,tu:2,we:3,th:4,fr:5,sa:6,su:7,tues:2,weds:3,wedn:3,thur:4,thurs:4};let ne=!0;const re=e=>{const t=e.timezone().current.offset;return t?z(t,\":\"):\"Z\"},ae=e=>ne?function(e){return e?e[0].toUpperCase()+e.substr(1):\"\"}(e):e,oe={day:e=>ae(e.dayName()),\"day-short\":e=>ae(X()[e.day()]),\"day-number\":e=>e.day(),\"day-ordinal\":e=>g(e.day()),\"day-pad\":e=>y(e.day()),date:e=>e.date(),\"date-ordinal\":e=>g(e.date()),\"date-pad\":e=>y(e.date()),month:e=>ae(e.monthName()),\"month-short\":e=>ae(E()[e.month()]),\"month-number\":e=>e.month(),\"month-ordinal\":e=>g(e.month()),\"month-pad\":e=>y(e.month()),\"iso-month\":e=>y(e.month()+1),year:e=>{let t=e.year();return t>0?t:(t=Math.abs(t),t+\" BC\")},\"year-short\":e=>{let t=e.year();return t>0?`'${String(e.year()).substr(2,4)}`:(t=Math.abs(t),t+\" BC\")},\"iso-year\":e=>{const t=e.year(),n=t<0;let r=y(Math.abs(t),4);return n&&(r=y(r,6),r=\"-\"+r),r},time:e=>e.time(),\"time-24\":e=>`${e.hour24()}:${y(e.minute())}`,hour:e=>e.hour12(),\"hour-pad\":e=>y(e.hour12()),\"hour-24\":e=>e.hour24(),\"hour-24-pad\":e=>y(e.hour24()),minute:e=>e.minute(),\"minute-pad\":e=>y(e.minute()),second:e=>e.second(),\"second-pad\":e=>y(e.second()),millisecond:e=>e.millisecond(),\"millisecond-pad\":e=>y(e.millisecond(),3),ampm:e=>e.ampm(),AMPM:e=>e.ampm().toUpperCase(),quarter:e=>\"Q\"+e.quarter(),season:e=>e.season(),era:e=>e.era(),json:e=>e.json(),timezone:e=>e.timezone().name,offset:e=>re(e),numeric:e=>`${e.year()}/${y(e.month()+1)}/${y(e.date())}`,\"numeric-us\":e=>`${y(e.month()+1)}/${y(e.date())}/${e.year()}`,\"numeric-uk\":e=>`${y(e.date())}/${y(e.month()+1)}/${e.year()}`,\"mm/dd\":e=>`${y(e.month()+1)}/${y(e.date())}`,iso:e=>`${e.format(\"iso-year\")}-${y(e.month()+1)}-${y(e.date())}T${y(e.h24())}:${y(e.minute())}:${y(e.second())}.${y(e.millisecond(),3)}${re(e)}`,\"iso-short\":e=>{const t=y(e.month()+1),n=y(e.date());var r;return`${(r=e.year())>=0?y(r,4):\"-\"+y(r=Math.abs(r),4)}-${t}-${n}`},\"iso-utc\":e=>new Date(e.epoch).toISOString(),\"iso-full\":e=>{let t=e.format(\"iso\");const n=e.timezone().name;return n&&(t+=`[${n}]`),t},sql:e=>`${e.format(\"iso-year\")}-${y(e.month()+1)}-${y(e.date())} ${y(e.h24())}:${y(e.minute())}:${y(e.second())}`,nice:e=>`${E()[e.month()]} ${g(e.date())}, ${e.time()}`,\"nice-24\":e=>`${E()[e.month()]} ${g(e.date())}, ${e.hour24()}:${y(e.minute())}`,\"nice-year\":e=>`${E()[e.month()]} ${g(e.date())}, ${e.year()}`,\"nice-day\":e=>`${X()[e.day()]} ${ae(E()[e.month()])} ${g(e.date())}`,\"nice-full\":e=>`${e.dayName()} ${ae(e.monthName())} ${g(e.date())}, ${e.time()}`,\"nice-full-24\":e=>`${e.dayName()} ${ae(e.monthName())} ${g(e.date())}, ${e.hour24()}:${y(e.minute())}`},se={\"day-name\":\"day\",\"month-name\":\"month\",\"iso 8601\":\"iso\",\"iso 9075\":\"sql\",\"time-h24\":\"time-24\",\"time-12\":\"time\",\"time-h12\":\"time\",tz:\"timezone\",iana:\"timezone\",\"day-num\":\"day-number\",\"month-num\":\"month-number\",\"month-iso\":\"iso-month\",\"year-iso\":\"iso-year\",\"nice-short\":\"nice\",\"nice-short-24\":\"nice-24\",mdy:\"numeric-us\",dmy:\"numeric-uk\",ymd:\"numeric\",\"yyyy/mm/dd\":\"numeric\",\"mm/dd/yyyy\":\"numeric-us\",\"dd/mm/yyyy\":\"numeric-us\",\"little-endian\":\"numeric-uk\",\"big-endian\":\"numeric\",\"day-nice\":\"nice-day\"};Object.keys(se).forEach(e=>oe[e]=oe[se[e]]);const ie=(e,t=\"\")=>{if(!0!==e.isValid())return\"\";if(oe.hasOwnProperty(t)){let n=oe[t](e)||\"\";return\"json\"!==t&&(n=String(n),\"ampm\"!==t.toLowerCase()&&(n=ae(n))),n}if(-1!==t.indexOf(\"{\")){const n=/\\{(.+?)\\}/g;return t=t.replace(n,(t,n)=>{if(\"AMPM\"!==(n=n.trim())&&(n=n.toLowerCase()),oe.hasOwnProperty(n)){const t=String(oe[n](e));return\"ampm\"!==n.toLowerCase()?ae(t):t}return\"\"}),t}return e.format(\"iso-short\")},ue={G:e=>e.era(),GG:e=>e.era(),GGG:e=>e.era(),GGGG:e=>\"AD\"===e.era()?\"Anno Domini\":\"Before Christ\",y:e=>e.year(),yy:e=>y(Number(String(e.year()).substr(2,4))),yyy:e=>e.year(),yyyy:e=>e.year(),yyyyy:e=>\"0\"+e.year(),Q:e=>e.quarter(),QQ:e=>e.quarter(),QQQ:e=>e.quarter(),QQQQ:e=>e.quarter(),M:e=>e.month()+1,MM:e=>y(e.month()+1),MMM:e=>e.format(\"month-short\"),MMMM:e=>e.format(\"month\"),w:e=>e.week(),ww:e=>y(e.week()),d:e=>e.date(),dd:e=>y(e.date()),D:e=>e.dayOfYear(),DD:e=>y(e.dayOfYear()),DDD:e=>y(e.dayOfYear(),3),E:e=>e.format(\"day-short\"),EE:e=>e.format(\"day-short\"),EEE:e=>e.format(\"day-short\"),EEEE:e=>e.format(\"day\"),EEEEE:e=>e.format(\"day\")[0],e:e=>e.day(),ee:e=>e.day(),eee:e=>e.format(\"day-short\"),eeee:e=>e.format(\"day\"),eeeee:e=>e.format(\"day\")[0],a:e=>e.ampm().toUpperCase(),aa:e=>e.ampm().toUpperCase(),aaa:e=>e.ampm().toUpperCase(),aaaa:e=>e.ampm().toUpperCase(),h:e=>e.h12(),hh:e=>y(e.h12()),H:e=>e.hour(),HH:e=>y(e.hour()),m:e=>e.minute(),mm:e=>y(e.minute()),s:e=>e.second(),ss:e=>y(e.second()),SSS:e=>y(e.millisecond(),3),A:e=>e.epoch-e.startOf(\"day\").epoch,z:e=>e.timezone().name,zz:e=>e.timezone().name,zzz:e=>e.timezone().name,zzzz:e=>e.timezone().name,Z:e=>z(e.timezone().current.offset),ZZ:e=>z(e.timezone().current.offset),ZZZ:e=>z(e.timezone().current.offset),ZZZZ:e=>z(e.timezone().current.offset,\":\")},ce=(e,t,n)=>{let r=e,a=t;for(let o=0;o<n;o+=1)ue[r]=ue[a],r+=e,a+=t};ce(\"q\",\"Q\",4),ce(\"L\",\"M\",4),ce(\"Y\",\"y\",4),ce(\"c\",\"e\",4),ce(\"k\",\"H\",2),ce(\"K\",\"h\",2),ce(\"S\",\"s\",2),ce(\"v\",\"z\",4),ce(\"V\",\"Z\",4);const he=[\"year\",\"season\",\"quarter\",\"month\",\"week\",\"day\",\"quarterHour\",\"hour\",\"minute\"],le=function(e,t){const n=e.clone().startOf(t),r=e.clone().endOf(t).epoch-n.epoch,a=(e.epoch-n.epoch)/r;return parseFloat(a.toFixed(2))},me=(e,t,n)=>{let r=0;for(e=e.clone();e.isBefore(t);)e=e.add(1,n),r+=1;return e.isAfter(t,n)&&(r-=1),r},de=(e,t,n)=>e.isBefore(t)?me(e,t,n):-1*me(t,e,n),fe=function(e,t,n){t=v(t,e);let r=!1;if(e.isAfter(t)){const n=e;e=t,t=n,r=!0}let a=function(e,t){const n=t.epoch-e.epoch,r={milliseconds:n,seconds:parseInt(n/1e3,10)};r.minutes=parseInt(r.seconds/60,10),r.hours=parseInt(r.minutes/60,10);let a=e.clone();return r.years=((e,t)=>{let n=t.year()-e.year();return(e=e.year(t.year())).isAfter(t)&&(n-=1),n})(a,t),a=e.add(r.years,\"year\"),r.months=12*r.years,a=e.add(r.months,\"month\"),r.months+=de(a,t,\"month\"),r.quarters=4*r.years,r.quarters+=parseInt(r.months%12/3,10),r.weeks=52*r.years,a=e.add(r.weeks,\"week\"),r.weeks+=de(a,t,\"week\"),r.days=7*r.weeks,a=e.add(r.days,\"day\"),r.days+=de(a,t,\"day\"),r}(e,t);return r&&(a=function(e){return Object.keys(e).forEach(t=>{e[t]*=-1}),e}(a)),n?(n=k(n),!0!==/s$/.test(n)&&(n+=\"s\"),\"dates\"===n&&(n=\"days\"),a[n]):a},pe=e=>Math.abs(e)||0;let ye={second:\"second\",seconds:\"seconds\",minute:\"minute\",minutes:\"minutes\",hour:\"hour\",hours:\"hours\",day:\"day\",days:\"days\",month:\"month\",months:\"months\",year:\"year\",years:\"years\"};function ge(e){return ye[e]||\"\"}let be=\"past\",ke=\"future\",we=\"present\",ve=\"now\",ze=\"almost\",_e=\"over\",$e=e=>`${e} ago`,je=e=>`in ${e}`;function Oe(e){return $e(e)}function De(e){return je(e)}function Me(){return ve}const Se={months:{almost:10,over:4},days:{almost:25,over:10},hours:{almost:20,over:8},minutes:{almost:50,over:20},seconds:{almost:50,over:20}};function qe(e,t){return 1===e?e+\" \"+ge(t.slice(0,-1)):e+\" \"+ge(t)}const Ne=function(e){let t=null,n=null;const r=[],a=[];return Object.keys(e).forEach((o,s,i)=>{const u=Math.abs(e[o]);if(0===u)return;r.push(u+o[0]);const c=qe(u,o);if(a.push(c),!t){if(t=c,n=c,s>4)return;const r=i[s+1],a=Math.abs(e[r]);a>Se[r].almost?(t=qe(u+1,o),n=ze+\" \"+t):a>Se[r].over&&(n=_e+\" \"+c)}}),{qualified:n,rounded:t,abbreviated:r,englishValues:a}},Ie=(e,t)=>{const n=function(e,t){const n=e.isBefore(t),r=n?t:e;let a=n?e:t;a=a.clone();const o={years:0,months:0,days:0,hours:0,minutes:0,seconds:0};return Object.keys(o).forEach(e=>{if(a.isSame(r,e))return;const t=a.diff(r,e);a=a.add(t,e),o[e]=t}),n&&Object.keys(o).forEach(e=>{0!==o[e]&&(o[e]*=-1)}),o}(e,t=v(t,e));if(!0===Object.keys(n).every(e=>!n[e]))return{diff:n,rounded:Me(),qualified:Me(),precise:Me(),abbreviated:[],iso:\"P0Y0M0DT0H0M0S\",direction:we};let r,a=ke,{rounded:o,qualified:s}=Ne(n);const{englishValues:i,abbreviated:u}=Ne(n);r=i.splice(0,2).join(\", \"),!0===e.isAfter(t)?(o=Oe(o),s=Oe(s),r=Oe(r),a=be):(o=De(o),s=De(s),r=De(r));const c=function(e){let t=\"P\";return t+=pe(e.years)+\"Y\",t+=pe(e.months)+\"M\",t+=pe(e.days)+\"DT\",t+=pe(e.hours)+\"H\",t+=pe(e.minutes)+\"M\",t+=pe(e.seconds)+\"S\",t}(n);return{diff:n,rounded:o,qualified:s,precise:r,abbreviated:u,iso:c,direction:a}};var Te={north:[[\"spring\",2,1],[\"summer\",5,1],[\"fall\",8,1],[\"autumn\",8,1],[\"winter\",11,1]],south:[[\"fall\",2,1],[\"autumn\",2,1],[\"winter\",5,1],[\"spring\",8,1],[\"summer\",11,1]]},Ce=[null,[0,1],[3,1],[6,1],[9,1]];const Ee={second:e=>(N(e,{millisecond:0}),e),minute:e=>(N(e,{second:0,millisecond:0}),e),quarterhour:e=>{const t=e.minutes();return e=t>=45?e.minutes(45):t>=30?e.minutes(30):t>=15?e.minutes(15):e.minutes(0),N(e,{second:0,millisecond:0}),e},hour:e=>(N(e,{minute:0,second:0,millisecond:0}),e),day:e=>(N(e,{hour:0,minute:0,second:0,millisecond:0}),e),week:e=>{const t=e.clone();return(e=e.day(e._weekStart)).isAfter(t)&&(e=e.subtract(1,\"week\")),N(e,{hour:0,minute:0,second:0,millisecond:0}),e},month:e=>(N(e,{date:1,hour:0,minute:0,second:0,millisecond:0}),e),quarter:e=>{const t=e.quarter();return Ce[t]&&N(e,{month:Ce[t][0],date:Ce[t][1],hour:0,minute:0,second:0,millisecond:0}),e},season:e=>{const t=e.season();let n=\"north\";\"South\"===e.hemisphere()&&(n=\"south\");for(let r=0;r<Te[n].length;r++)if(Te[n][r][0]===t){let a=e.year();return\"winter\"===t&&e.month()<3&&(a-=1),N(e,{year:a,month:Te[n][r][1],date:Te[n][r][2],hour:0,minute:0,second:0,millisecond:0}),e}return e},year:e=>(N(e,{month:0,date:1,hour:0,minute:0,second:0,millisecond:0}),e),decade:e=>{const t=(e=e.startOf(\"year\")).year(),n=10*parseInt(t/10,10);return e=e.year(n)},century:e=>{const t=(e=e.startOf(\"year\")).year(),n=100*parseInt(t/100,10);return e=e.year(n)}};Ee.date=Ee.day;const Ae=function(e,t,n,r=1){if(!t||!n)return[];if(t=k(t),n=e.clone().set(n),e.isAfter(n)){const t=e;e=n,n=t}if(e.diff(n,t)<r)return[];let a=e.clone();if(function(e){return!!X().find(t=>t===e)||!!ee().find(t=>t===e)}(t))a=a.next(t),t=\"week\";else{a.startOf(t).isBefore(e)&&(a=a.next(t))}const o=[];for(;a.isBefore(n);)o.push(a),a=a.add(r,t);return o},xe=e=>{const n=e.timezones;let r=e.tz;if(!1===n.hasOwnProperty(r)&&(r=m(e.tz,n)),null===r)return!1===e.silent&&console.warn(\"Warn: could not find given or local timezone - '\"+e.tz+\"'\"),{current:{epochShift:0}};const a=n[r],o={name:(s=r,\"Utc\"===(s=(s=(s=(s=(s=(s=(s=(s=s[0].toUpperCase()+s.substr(1)).replace(/[/_-]([a-z])/gi,e=>e.toUpperCase())).replace(/_(of|es)_/i,e=>e.toLowerCase())).replace(/\\/gmt/i,\"/GMT\")).replace(/\\/utc/i,\"/UTC\")).replace(/\\/Dumontdurville$/i,\"/DumontDUrville\")).replace(/\\/Mcmurdo$/i,\"/McMurdo\")).replace(/\\/Port-au-prince$/i,\"/Port-au-Prince\"))&&(s=\"UTC\"),s),hasDst:Boolean(a.dst),default_offset:a.offset,hemisphere:\"s\"===a.hem?\"South\":\"North\",current:{}};var s,i;if(o.hasDst){const e=(i=a.dst)?i.split(\"->\"):[];o.change={start:e[0],back:e[1]}}const u=a.offset;let c=u;return!0===o.hasDst&&(c=\"North\"===o.hemisphere?u-1:a.offset+1),!1===o.hasDst?(o.current.offset=u,o.current.isDST=!1):!0===t(e.epoch,o.change.start,o.change.back,u,c)?(o.current.offset=u,o.current.isDST=\"North\"===o.hemisphere):(o.current.offset=c,o.current.isDST=\"South\"===o.hemisphere),o},Ye=[\"century\",\"decade\",\"year\",\"month\",\"date\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"],Fe={set:function(e,t){let n=this.clone();return n=J(n,e),t&&(n.tz=m(t,n.timezones)),n},timezone:function(e){if(void 0!==e){const t=this.json();return t.timezone=e,this.set(t,e)}return xe(this)},isDST:function(){return xe(this).current.isDST},hasDST:function(){return xe(this).hasDst},offset:function(){return 60*xe(this).current.offset},hemisphere:function(){return xe(this).hemisphere},format:function(e){return ie(this,e)},unixFmt:function(e){return((e,t)=>{let n=t.split(\"\");return n=function(e){for(let t=0;t<e.length;t+=1)if(\"'\"===e[t])for(let n=t+1;n<e.length;n+=1){if(e[n]&&(e[t]+=e[n]),\"'\"===e[n]){e[n]=null;break}e[n]=null}return e.filter(e=>e)}(n),n=function(e){for(let t=0;t<e.length;t+=1){const n=e[t];for(let r=t+1;r<e.length&&e[r]===n;r+=1)e[t]+=e[r],e[r]=null}return(e=e.filter(e=>e)).map(e=>(\"''\"===e&&(e=\"'\"),e))}(n),n.reduce((t,n)=>(void 0!==ue[n]?t+=ue[n](e)||\"\":(/^'.+'$/.test(n)&&(n=n.replace(/'/g,\"\")),t+=n),t),\"\")})(this,e)},startOf:function(e){return((e,t)=>{let n=e.clone();return t=k(t),Ee[t]?Ee[t](n):\"summer\"===t||\"winter\"===t?(n=n.season(t),Ee.season(n)):n})(this,e)},endOf:function(e){return((e,t)=>{let n=e.clone();return t=k(t),Ee[t]?(n=Ee[t](n),n=n.add(1,t),n=n.subtract(1,\"millisecond\"),n):n})(this,e)},leapYear:function(){return d(this.year())},progress:function(e){return((e,t)=>{if(t)return t=k(t),le(e,t);const n={};return he.forEach(t=>{n[t]=le(e,t)}),n})(this,e)},nearest:function(e){return((e,t)=>{const n=e.progress();return\"quarterhour\"===(t=k(t))&&(t=\"quarterHour\"),void 0!==n[t]?(n[t]>.5&&(e=e.add(1,t)),e=e.startOf(t)):!1===e.silent&&console.warn(\"no known unit '\"+t+\"'\"),e})(this,e)},diff:function(e,t){return fe(this,e,t)},since:function(e){return e||(e=this.clone().set()),Ie(this,e)},next:function(e){return this.add(1,e).startOf(e)},last:function(e){return this.subtract(1,e).startOf(e)},isValid:function(){return!(!this.epoch&&0!==this.epoch)&&!isNaN(this.d.getTime())},goto:function(e){const t=this.clone();return t.tz=m(e,t.timezones),t},every:function(e,t,n){if(\"object\"==typeof e&&\"string\"==typeof t){const n=t;t=e,e=n}return Ae(this,e,t,n)},isAwake:function(){const e=this.hour();return!(e<8||e>22)},isAsleep:function(){return!this.isAwake()},daysInMonth:function(){switch(this.month()){case 0:case 2:case 4:case 6:case 7:case 9:case 11:return 31;case 1:return this.leapYear()?29:28;case 3:case 5:case 8:case 10:return 30;default:throw new Error(\"Invalid Month state.\")}},log:function(){return console.log(\"\"),console.log(ie(this,\"nice-short\")),this},logYear:function(){return console.log(\"\"),console.log(ie(this,\"full-short\")),this},json:function(e){if(void 0!==e){let t=this.clone();e.timezone&&(t.tz=e.timezone);for(let n=0;n<Ye.length;n++){const r=Ye[n];void 0!==e[r]&&(t=t[r](e[r]))}return t}const t=Ye.reduce((e,t)=>(e[t]=this[t](),e),{});return t.offset=this.timezone().current.offset,t.timezone=this.tz,t},debug:function(){const e=this.timezone();let t=this.format(\"MM\")+\" \"+this.format(\"date-ordinal\")+\" \"+this.year();return t+=\"\\n - \"+this.format(\"time\"),console.log(\"\\n\\n\",t+\"\\n - \"+e.name+\" (\"+e.current.offset+\")\"),this},from:function(e){return(e=this.clone().set(e)).since(this)},fromNow:function(){return this.clone().set(Date.now()).since(this)},weekStart:function(e){if(\"number\"==typeof e)return this._weekStart=e,this;if(\"string\"==typeof e){e=e.toLowerCase().trim();let t=X().indexOf(e);-1===t&&(t=ee().indexOf(e)),-1===t&&(t=1),this._weekStart=t}else console.warn(\"Spacetime Error: Cannot understand .weekStart() input:\",e);return this}};Fe.inDST=Fe.isDST,Fe.round=Fe.nearest,Fe.each=Fe.every;const Pe=e=>(\"string\"==typeof e&&(e=parseInt(e,10)),e),Le=[\"year\",\"month\",\"date\",\"hour\",\"minute\",\"second\",\"millisecond\"],Ue=(e,t,n)=>{const r=Le.indexOf(n),a=Le.slice(r,Le.length);for(let n=0;n<a.length;n++){const r=t[a[n]]();e[a[n]](r)}return e},Be=function(e,t,n,r){return!0===n&&e.isBefore(t)?e=e.add(1,r):!1===n&&e.isAfter(t)&&(e=e.minus(1,r)),e},He=function(e,t,n){t=Pe(t);const r=e.clone(),a=(e.minute()-t)*M.minute;return e.epoch-=a,Ue(e,r,\"second\"),(e=Be(e,r,n,\"hour\")).epoch},Ze=function(e,t,n){(t=Pe(t))>=24?t=24:t<0&&(t=0);const r=e.clone();let a=e.hour()-t,o=a*M.hour;return e.epoch-=o,e.date()!==r.date()&&(e=r.clone(),a>1&&(a-=1),a<1&&(a+=1),o=a*M.hour,e.epoch-=o),N(e,{hour:t}),Ue(e,r,\"minute\"),(e=Be(e,r,n,\"day\")).epoch},Qe=function(e,t){return\"string\"==typeof t&&/^'[0-9]{2}$/.test(t)&&(t=t.replace(/'/,\"\").trim(),t=(t=Number(t))>30?1900+t:2e3+t),t=Pe(t),N(e,{year:t}),e.epoch},Ge=function(e,t,n){const r=e.clone();return 1===(t=Pe(t))&&\"december\"===e.monthName()&&e.date()>=29&&1===e.week()?e:(\"december\"===(e=(e=(e=e.month(0)).date(1)).day(\"monday\",!1)).monthName()&&e.date()<29&&(e=e.add(1,\"week\")),t-=1,e=e.add(t,\"weeks\"),e=Be(e,r,n,\"year\"))};let Ve=\"am\",We=\"pm\";const Je={millisecond:function(e){if(void 0!==e){const t=this.clone();return t.epoch=function(e,t){t=Pe(t);const n=e.millisecond()-t;return e.epoch-n}(t,e),t}return this.d.getMilliseconds()},second:function(e,t){if(void 0!==e){const n=this.clone();return n.epoch=function(e,t,n){t=Pe(t);const r=e.clone(),a=(e.second()-t)*M.second;return e.epoch=e.epoch-a,(e=Be(e,r,n,\"minute\")).epoch}(n,e,t),n}return this.d.getSeconds()},minute:function(e,t){if(void 0!==e){const n=this.clone();return n.epoch=He(n,e,t),n}return this.d.getMinutes()},hour:function(e,t){const n=this.d;if(void 0!==e){const n=this.clone();return n.epoch=Ze(n,e,t),n}return n.getHours()},hourFloat:function(e,t){if(void 0!==e){const n=this.clone();let r=e%1;r*=60;const a=parseInt(e,10);return n.epoch=Ze(n,a,t),n.epoch=He(n,r,t),n}const n=this.d,r=n.getHours();let a=n.getMinutes();return a/=60,r+a},hour12:function(e,t){const n=this.d;if(void 0!==e){const n=this.clone(),r=(e=\"\"+e).match(/^([0-9]+)(am|pm)$/);if(r){let e=parseInt(r[1],10);\"pm\"===r[2]&&(e+=12),n.epoch=Ze(n,e,t)}return n}let r=n.getHours();return r>12&&(r-=12),0===r&&(r=12),r},time:function(e,t){if(void 0!==e){const n=this.clone();return e=e.toLowerCase().trim(),n.epoch=function(e,t,n){let r=t.match(/([0-9]{1,2})[:h]([0-9]{1,2})(:[0-9]{1,2})? ?(am|pm)?/);if(!r){if(r=t.match(/([0-9]{1,2}) ?(am|pm)/),!r)return null;r.splice(2,0,\"0\"),r.splice(3,0,\"\")}let a=!1,o=parseInt(r[1],10),s=parseInt(r[2],10);s>=60&&(s=59),o>12&&(a=!0),!1===a&&(\"am\"===r[4]&&12===o&&(o=0),\"pm\"===r[4]&&o<12&&(o+=12)),r[3]=r[3]||\"\",r[3]=r[3].replace(/:/,\"\");const i=parseInt(r[3],10)||0,u=e.clone();return e=(e=(e=(e=e.hour(o)).minute(s)).second(i)).millisecond(0),(e=Be(e,u,n,\"day\")).epoch}(n,e,t),n}return`${this.h12()}:${y(this.minute())}${this.ampm()}`},ampm:function(e,t){let n=Ve,r=this.hour();if(r>=12&&(n=We),\"string\"!=typeof e)return n;const a=this.clone();return e=e.toLowerCase().trim(),r>=12&&\"am\"===e?(r-=12,a.hour(r,t)):r<12&&\"pm\"===e?(r+=12,a.hour(r,t)):a},dayTime:function(e,t){if(void 0!==e){const n={morning:\"7:00\",breakfast:\"7:00\",noon:\"12:00\",lunch:\"12:00\",afternoon:\"14:00\",evening:\"18:00\",dinner:\"18:00\",night:\"23:00\",midnight:\"00:00\"};let r=this.clone();return e=(e=e||\"\").toLowerCase(),!0===n.hasOwnProperty(e)&&(r=r.time(n[e],t)),r}const n=this.hour();return n<6?\"night\":n<12?\"morning\":n<17?\"afternoon\":n<22?\"evening\":\"night\"},iso:function(e){return void 0!==e?this.set(e):this.format(\"iso\")},isoFull:function(e){return void 0!==e?this.set(e):this.format(\"iso-full\")},epochSeconds:function(e){return void 0!==e?(this.epoch=1e3*e,this):Math.floor(this.epoch/1e3)}},Ke={date:function(e,t){if(void 0!==e){const n=this.clone();return(e=parseInt(e,10))&&(n.epoch=function(e,t,n){if((t=Pe(t))>28){const n=e.month();let r=I[n];1===n&&29===t&&d(e.year())&&(r=29),t>r&&(t=r)}t<=0&&(t=1);const r=e.clone();return N(e,{date:t}),(e=Be(e,r,n,\"month\")).epoch}(n,e,t)),n}return this.d.getDate()},day:function(e,t){if(void 0===e)return this.d.getDay();const n=this.clone();let r=e;\"string\"==typeof e&&(e=e.toLowerCase(),te.hasOwnProperty(e)?r=te[e]:(r=X().indexOf(e),-1===r&&(r=ee().indexOf(e))));let a=this.d.getDay()-r;!0===t&&a>0&&(a-=7),!1===t&&a<0&&(a+=7);const o=this.subtract(a,\"days\");return N(o,{hour:n.hour(),minute:n.minute(),second:n.second()}),o},dayName:function(e,t){if(void 0===e)return ee()[this.day()];let n=this.clone();return n=n.day(e,t),n}},Re=e=>e=(e=(e=e.minute(0)).second(0)).millisecond(1),Xe=function(e){if(void 0!==e){if(\"string\"==typeof e&&(e=e.replace(/([0-9])(th|rd|st|nd)/,\"$1\"),e=Number(e),isNaN(e)))return console.warn(\"Spacetime: Invalid millennium input\"),this;e>0&&(e-=1);let t=1e3*e;return 0===t&&(t=1),this.year(t)}let t=Math.floor(this.year()/1e3);return t>=0&&(t+=1),t},et={dayOfYear:function(e,t){if(void 0!==e){const n=this.clone();return n.epoch=function(e,t,n){t=Pe(t);const r=e.clone();return(t-=1)<=0?t=0:t>=365&&(t=d(e.year())?365:364),e=(e=e.startOf(\"year\")).add(t,\"day\"),Ue(e,r,\"hour\"),(e=Be(e,r,n,\"year\")).epoch}(n,e,t),n}let n=0;const r=this.d.getMonth();let a;for(let e=1;e<=r;e++)a=new Date,a.setDate(1),a.setFullYear(this.d.getFullYear()),a.setHours(1),a.setMinutes(1),a.setMonth(e),a.setHours(-2),n+=a.getDate();return n+this.d.getDate()},week:function(e,t){if(void 0!==e){let n=this.clone();return n=Ge(n,e,t),n=Re(n),n}const n=this.epoch;let r=this.clone();if(\"december\"===r.monthName()&&r.date()>=29){if(Ge(r.add(15,\"days\"),1,!1).epoch<=r.epoch)return 1}if(r=r.month(0),r=r.date(1),r=Re(r),r=r.day(\"monday\",!1),\"december\"===r.monthName()&&r.date()<29&&(r=r.add(1,\"week\")),r=r.minus(2,\"hours\"),r.epoch>n)return 1;let a=0;const o=4*this.month();for(r.epoch+=M.week*o,a+=o;a<=52;a++){if(r.epoch>n)return a;r=r.add(1,\"week\")}return 52},month:function(e,t){if(void 0!==e){const n=this.clone();return n.epoch=function(e,t,n){\"string\"==typeof t&&(\"sept\"===t&&(t=\"sep\"),t=A()[t.toLowerCase()]),(t=Pe(t))>=12&&(t=11),t<=0&&(t=0);let r=e.date();r>I[t]&&(r=I[t]);const a=e.clone();return N(e,{month:t,d:r}),(e=Be(e,a,n,\"year\")).epoch}(n,e,t),n}return this.d.getMonth()},monthName:function(e,t){if(void 0!==e){let n=this.clone();return n=n.month(e,t),n}return C[this.month()]},quarter:function(e,t){if(void 0!==e&&(\"string\"==typeof e&&(e=e.replace(/^q/i,\"\"),e=parseInt(e,10)),Ce[e])){let n=this.clone();const r=Ce[e][0];return n=n.month(r,t),n=n.date(1,t),n=n.startOf(\"day\"),n}const n=this.d.getMonth();for(let e=1;e<Ce.length;e++)if(n<Ce[e][0])return e-1;return 4},season:function(e,t){let n=\"north\";if(\"South\"===this.hemisphere()&&(n=\"south\"),void 0!==e){let r=this.clone();for(let a=0;a<Te[n].length;a++)e===Te[n][a][0]&&(r=r.month(Te[n][a][1],t),r=r.date(1),r=r.startOf(\"day\"));return r}const r=this.d.getMonth();for(let e=0;e<Te[n].length-1;e++)if(r>=Te[n][e][1]&&r<Te[n][e+1][1])return Te[n][e][0];return\"north\"===n?\"winter\":\"summer\"},year:function(e){if(void 0!==e){const t=this.clone();return t.epoch=Qe(t,e),t}return this.d.getFullYear()},era:function(e){if(void 0!==e){const t=this.clone();e=e.toLowerCase();const n=t.d.getFullYear();return\"bc\"===e&&n>0&&(t.epoch=Qe(t,-1*n)),\"ad\"===e&&n<0&&(t.epoch=Qe(t,-1*n)),t}return this.d.getFullYear()<0?\"BC\":\"AD\"},decade:function(e){if(void 0!==e){if(!(e=(e=(e=String(e)).replace(/([0-9])'?s$/,\"$1\")).replace(/([0-9])(th|rd|st|nd)/,\"$1\")))return console.warn(\"Spacetime: Invalid decade input\"),this;2===e.length&&/[0-9][0-9]/.test(e)&&(e=\"19\"+e);let t=Number(e);return isNaN(t)?this:(t=10*Math.floor(t/10),this.year(t))}return this.startOf(\"decade\").year()},century:function(e){if(void 0!==e){\"string\"==typeof e&&(e=(e=(e=e.replace(/([0-9])(th|rd|st|nd)/,\"$1\")).replace(/([0-9]+) ?(b\\.?c\\.?|a\\.?d\\.?)/i,(e,t,n)=>(n.match(/b\\.?c\\.?/i)&&(t=\"-\"+t),t))).replace(/c$/,\"\"));let t=Number(e);return isNaN(e)?(console.warn(\"Spacetime: Invalid century input\"),this):(0===t&&(t=1),t=t>=0?100*(t-1):100*(t+1),this.year(t))}let t=this.startOf(\"century\").year();return t=Math.floor(t/100),t<0?t-1:t+1},millenium:Xe,millennium:Xe},tt=Object.assign({},Je,Ke,et);tt.milliseconds=tt.millisecond,tt.seconds=tt.second,tt.minutes=tt.minute,tt.hours=tt.hour,tt.hour24=tt.hour,tt.h12=tt.hour12,tt.h24=tt.hour24,tt.days=tt.day;const nt=function(e,t){return 1===e&&d(t)?29:I[e]},rt=(e,t)=>{if(e.month>0){const n=parseInt(e.month/12,10);e.year=t.year()+n,e.month=e.month%12}else if(e.month<0){const n=Math.abs(e.month);let r=parseInt(n/12,10);n%12!=0&&(r+=1),e.year=t.year()-r,e.month=e.month%12,e.month=e.month+12,12===e.month&&(e.month=0)}return e},at=(e,t,n)=>{let r=t.year(),a=t.month(),o=nt(a,r);for(;n>o;)n-=o,a+=1,a>=12&&(a-=12,r+=1),o=nt(a,r);return e.month=a,e.date=n,e},ot=(e,t,n)=>{e.year=t.year(),e.month=t.month();const r=t.date();for(e.date=r-Math.abs(n);e.date<1;){e.month-=1,e.month<0&&(e.month=11,e.year-=1);const t=nt(e.month,e.year);e.date+=t}return e},st=[\"millisecond\",\"second\",\"minute\",\"hour\",\"date\",\"month\"],it={second:st.slice(0,1),minute:st.slice(0,2),quarterhour:st.slice(0,2),hour:st.slice(0,3),date:st.slice(0,4),month:st.slice(0,4),quarter:st.slice(0,4),season:st.slice(0,4),year:st,decade:st,century:st};it.week=it.hour,it.season=it.date,it.quarter=it.date;const ut={year:!0,quarter:!0,season:!0,month:!0,week:!0,date:!0},ct={month:!0,quarter:!0,season:!0,year:!0},ht={millisecond:e=>e.epoch,second:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second()].join(\"-\"),minute:e=>[e.year(),e.month(),e.date(),e.hour(),e.minute()].join(\"-\"),hour:e=>[e.year(),e.month(),e.date(),e.hour()].join(\"-\"),day:e=>[e.year(),e.month(),e.date()].join(\"-\"),week:e=>[e.year(),e.week()].join(\"-\"),month:e=>[e.year(),e.month()].join(\"-\"),quarter:e=>[e.year(),e.quarter()].join(\"-\"),year:e=>e.year()};ht.date=ht.day;let lt=a;const mt=function(e,n,r={}){this.epoch=null,this.tz=m(n,lt),this.silent=void 0===r.silent||r.silent,this.british=r.dmy||r.british,this._weekStart=1,void 0!==r.weekStart&&(this._weekStart=r.weekStart),this._today={},void 0!==r.today&&(this._today=r.today),Object.defineProperty(this,\"d\",{get:function(){const e=(e=>{const n=e.timezones[e.tz];if(void 0===n)return console.warn(\"Warning: couldn't find timezone \"+e.tz),0;if(void 0===n.dst)return n.offset;const r=n.offset;let a=n.offset+1;\"n\"===n.hem&&(a=r-1);const o=n.dst.split(\"->\");return!0===t(e.epoch,o[0],o[1],r,a)?r:a})(this);let n=(new Date(this.epoch).getTimezoneOffset()||0)+60*e;n=60*n*1e3;const r=this.epoch+n;return new Date(r)}}),Object.defineProperty(this,\"timezones\",{get:()=>lt,set:e=>(lt=e,e)});const a=J(this,e);this.epoch=a.epoch,a.tz&&(this.tz=a.tz)};var dt;Object.keys(Fe).forEach(e=>{mt.prototype[e]=Fe[e]}),mt.prototype.clone=function(){return new mt(this.epoch,this.tz,{silent:this.silent,weekStart:this._weekStart,today:this._today,parsers:this.parsers})},mt.prototype.toLocalDate=function(){return this.toNativeDate()},mt.prototype.toNativeDate=function(){return new Date(this.epoch)},dt=mt,Object.keys(tt).forEach(e=>{dt.prototype[e]=tt[e]}),(e=>{e.prototype.add=function(e,t){let n=this.clone();if(!t||0===e)return n;const r=this.clone();if(\"millisecond\"===(t=k(t)))return n.epoch+=e,n;\"fortnight\"===t&&(e*=2,t=\"week\"),M[t]?n.epoch+=M[t]*e:\"week\"===t||\"weekend\"===t?n.epoch+=M.day*(7*e):\"quarter\"===t||\"season\"===t?n.epoch+=M.month*(3*e):\"quarterhour\"===t&&(n.epoch+=15*M.minute*e);let a={};if(it[t]&&it[t].forEach(e=>{a[e]=r[e]()}),ut[t]){const e=r.timezone().current.offset-n.timezone().current.offset;n.epoch+=3600*e*1e3}if(\"month\"===t&&(a.month=r.month()+e,a=rt(a,r)),\"week\"===t){const t=r.date()+7*e;t<=28&&t>1&&(a.date=t)}if(\"weekend\"===t&&\"saturday\"!==n.dayName())n=n.day(\"saturday\",!0);else if(\"date\"===t){if(e<0)a=ot(a,r,e);else{const t=r.date()+e;a=at(a,r,t)}0!==e&&r.isSame(n,\"day\")&&(a.date=r.date()+e)}else if(\"quarter\"===t){if(a.month=r.month()+3*e,a.year=r.year(),a.month<0){const e=Math.floor(a.month/12),t=a.month+12*Math.abs(e);a.month=t,a.year+=e}else if(a.month>=12){const e=Math.floor(a.month/12);a.month=a.month%12,a.year+=e}a.date=r.date()}else if(\"year\"===t){const t=r.year()+e,a=n.year();if(a<t){const t=Math.floor(e/4)||1;n.epoch+=Math.abs(M.day*t)}else if(a>t){const t=Math.floor(e/4)||1;n.epoch+=M.day*t}}else\"decade\"===t?a.year=n.year()+10:\"century\"===t&&(a.year=n.year()+100);if(ct[t]){const e=void 0!==a.year?a.year:r.year(),t=nt(a.month,e);a.date=r.date(),a.date>t&&(a.date=t)}return Object.keys(a).length>1&&N(n,a),n},e.prototype.subtract=function(e,t){return this.clone().add(-1*e,t)},e.prototype.minus=e.prototype.subtract,e.prototype.plus=e.prototype.add})(mt),(e=>{e.prototype.isSame=function(t,n,r=!0){const a=this;if(!n)return null;if(\"string\"==typeof t&&\"object\"==typeof n){const e=t;t=n,n=e}return\"string\"!=typeof t&&\"number\"!=typeof t||(t=new e(t,this.timezone.name)),n=n.replace(/s$/,\"\"),!0===r&&a.tz!==t.tz&&((t=t.clone()).tz=a.tz),ht[n]?ht[n](a)===ht[n](t):null}})(mt),(e=>{const t={isAfter:function(e){const t=w(e=v(e,this));return null===t?null:this.epoch>t},isBefore:function(e){const t=w(e=v(e,this));return null===t?null:this.epoch<t},isEqual:function(e){const t=w(e=v(e,this));return null===t?null:this.epoch===t},isBetween:function(e,t,n=!1){e=v(e,this),t=v(t,this);const r=w(e);if(null===r)return null;const a=w(t);return null===a?null:n?this.isBetween(e,t)||this.isEqual(e)||this.isEqual(t):r<this.epoch&&this.epoch<a}};Object.keys(t).forEach(n=>{e.prototype[n]=t[n]})})(mt),(e=>{const t={i18n:function(e){var t,n,r;return p(e.days)&&(t=e.days,K=t.short||K,R=t.long||R),p(e.months)&&function(e){T=e.short||T,C=e.long||C}(e.months),r=e.useTitleCase,\"[object Boolean]\"===Object.prototype.toString.call(r)&&(n=e.useTitleCase,ne=n),p(e.ampm)&&function(e){Ve=e.am||Ve,We=e.pm||We}(e.ampm),p(e.distance)&&function(e){$e=e.pastDistance||$e,je=e.futureDistance||je,be=e.past||be,ke=e.future||ke,we=e.present||we,ve=e.now||ve,ze=e.almost||ze,_e=e.over||_e}(e.distance),p(e.units)&&function(e={}){ye={second:e.second||ye.second,seconds:e.seconds||ye.seconds,minute:e.minute||ye.minute,minutes:e.minutes||ye.minutes,hour:e.hour||ye.hour,hours:e.hours||ye.hours,day:e.day||ye.day,days:e.days||ye.days,month:e.month||ye.month,months:e.months||ye.months,year:e.year||ye.year,years:e.years||ye.years}}(e.units),this}};Object.keys(t).forEach(n=>{e.prototype[n]=t[n]})})(mt);const ft=(e,t,n)=>new mt(e,t,n),pt=function(e){const t=e._today||{};return Object.keys(t).forEach(n=>{e=e[n](t[n])}),e};ft.now=(e,t)=>{let n=new mt((new Date).getTime(),e,t);return n=pt(n),n},ft.today=(e,t)=>{let n=new mt((new Date).getTime(),e,t);return n=pt(n),n.startOf(\"day\")},ft.tomorrow=(e,t)=>{let n=new mt((new Date).getTime(),e,t);return n=pt(n),n.add(1,\"day\").startOf(\"day\")},ft.yesterday=(e,t)=>{let n=new mt((new Date).getTime(),e,t);return n=pt(n),n.subtract(1,\"day\").startOf(\"day\")},ft.fromUnixSeconds=(e,t,n)=>new mt(1e3*e,t,n),ft.extend=function(e={}){return Object.keys(e).forEach(t=>{mt.prototype[t]=e[t]}),this},ft.timezones=function(){return(new mt).timezones},ft.max=function(e,t){const n=new mt(null,e,t);return n.epoch=864e13,n},ft.min=function(e,t){const n=new mt(null,e,t);return n.epoch=-864e13,n},ft.whereIts=(e,t)=>{let n=new mt(null),r=new mt(null);n=n.time(e),r=t?r.time(t):n.add(59,\"minutes\");const a=n.hour(),o=r.hour();return Object.keys(n.timezones).filter(e=>{if(-1===e.indexOf(\"/\"))return!1;const t=new mt(null,e),s=t.hour();return s>=a&&s<=o&&(!(s===a&&t.minute()<n.minute())&&!(s===o&&t.minute()>r.minute()))})},ft.version=\"7.13.0\",ft.plugin=ft.extend;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvc3BhY2V0aW1lL2J1aWxkcy9zcGFjZXRpbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxrQkFBa0IsMkNBQTJDLGtDQUFrQyxpQkFBaUIsMkRBQTJELGtCQUFrQixPQUFPLDJnUEFBMmdQLHdJQUF3SSxXQUFXLDJCQUEyQix3QkFBd0IsOEJBQThCLG1CQUFtQiw0QkFBNEIsZ0VBQWdFLEVBQUUsU0FBUyxrQkFBa0IsY0FBYyxNQUFNLE9BQU8sUUFBUSxlQUFlLGtCQUFrQixNQUFNLG9CQUFvQixxQkFBcUIscUJBQXFCLHVHQUF1Ryx5RUFBeUUsWUFBWSxjQUFjLHNFQUFzRSw4QkFBOEIsc0RBQXNELHFDQUFxQyw4QkFBOEIsSUFBSSx3QkFBd0IsSUFBSSxzQ0FBc0MsMEJBQTBCLHNDQUFzQyxHQUFHLFlBQVkseUVBQXlFLEVBQUUsNENBQTRDLHFGQUFxRixlQUFlLHVEQUF1RCwrUkFBK1Isd0NBQXdDLHlCQUF5QixvQkFBb0IsaUJBQWlCLDJCQUEyQix3Q0FBd0MsMEJBQTBCLHdCQUF3QixZQUFZLDBDQUEwQyxJQUFJLGNBQWMsc0dBQXNHLGNBQWMsa0NBQWtDLGNBQWMsK0VBQStFLGNBQWMsNERBQTRELGtCQUFrQiw4REFBOEQsY0FBYyxxQkFBcUIsNkVBQTZFLGNBQWMsNkVBQTZFLGlCQUFpQiwrSkFBK0osY0FBYyw4RUFBOEUsZ0JBQWdCLG1DQUFtQyxtQkFBbUIsa0NBQWtDLFNBQVMsRUFBRSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsU0FBUyw2Q0FBNkMsa0VBQWtFLE9BQU8scUJBQXFCLHlCQUF5QixZQUFZLFdBQVcsS0FBSyxrQ0FBa0MsYUFBYSxTQUFTLHFCQUFxQixzQ0FBc0MsbUJBQW1CLG1DQUFtQyxZQUFZLFdBQVcsS0FBSyxhQUFhLDhCQUE4QixTQUFTLDJCQUEyQixnTUFBZ00sb0JBQW9CLGtEQUFrRCxjQUFjLCtDQUErQyxJQUFJLElBQUksMkxBQTJMLG9CQUFvQixpQ0FBaUMs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a0NBQWtDLDhDQUE4Qyw0QkFBNEIsMkNBQTJDLGdDQUFnQyxrQ0FBa0Msc0ZBQXNGLEVBQUUseUNBQStEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdmVyaWZ5cGFjay1mcm9udGVuZC8uL25vZGVfbW9kdWxlcy9zcGFjZXRpbWUvYnVpbGRzL3NwYWNldGltZS5tanM/YTE2MiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlPShlLHQsbik9Pntjb25zdFtyLGFdPWUuc3BsaXQoXCIvXCIpLFtvLHNdPWEuc3BsaXQoXCI6XCIpO3JldHVybiBEYXRlLlVUQyhuLHItMSxvLHMpLTM2ZTUqdH0sdD0odCxuLHIsYSxvKT0+e2NvbnN0IHM9bmV3IERhdGUodCkuZ2V0VVRDRnVsbFllYXIoKSxpPWUobixvLHMpLHU9ZShyLGEscyk7cmV0dXJuIHQ+PWkmJnQ8dX07dmFyIG49e1wiOXxzXCI6XCIyL2RpbGksMi9qYXlhcHVyYVwiLFwiOXxuXCI6XCIyL2NoaXRhLDIva2hhbmR5Z2EsMi9weW9uZ3lhbmcsMi9zZW91bCwyL3Rva3lvLDIveWFrdXRzaywxMS9wYWxhdSxqYXBhbixyb2tcIixcIjkuNXxzfDA0LzA1OjAzLT4xMC8wNDowMlwiOlwiNC9hZGVsYWlkZSw0L2Jyb2tlbl9oaWxsLDQvc291dGgsNC95YW5jb3dpbm5hXCIsXCI5LjV8c1wiOlwiNC9kYXJ3aW4sNC9ub3J0aFwiLFwiOHxzfDAzLzEzOjAxLT4xMC8wMjowMFwiOlwiMTIvY2FzZXlcIixcIjh8c1wiOlwiMi9rdWFsYV9sdW1wdXIsMi9tYWthc3NhciwyL3NpbmdhcG9yZSw0L3BlcnRoLDIvdWp1bmdfcGFuZGFuZyw0L3dlc3Qsc2luZ2Fwb3JlXCIsXCI4fG5cIjpcIjIvYnJ1bmVpLDIvaG9uZ19rb25nLDIvaXJrdXRzaywyL2t1Y2hpbmcsMi9tYWNhdSwyL21hbmlsYSwyL3NoYW5naGFpLDIvdGFpcGVpLDIvdWxhYW5iYWF0YXIsMi9jaG9uZ3FpbmcsMi9jaHVuZ2tpbmcsMi9oYXJiaW4sMi9tYWNhbywyL3VsYW5fYmF0b3IsMi9jaG9pYmFsc2FuLGhvbmdrb25nLHByYyxyb2NcIixcIjguNzV8c1wiOlwiNC9ldWNsYVwiLFwiN3xzXCI6XCIxMi9kYXZpcywyL2pha2FydGEsOS9jaHJpc3RtYXNcIixcIjd8blwiOlwiMi9iYW5na29rLDIvYmFybmF1bCwyL2hvdmQsMi9rcmFzbm95YXJzaywyL25vdm9rdXpuZXRzaywyL25vdm9zaWJpcnNrLDIvcGhub21fcGVuaCwyL3BvbnRpYW5haywyL2hvX2NoaV9taW5oLDIvdG9tc2ssMi92aWVudGlhbmUsMi9zYWlnb25cIixcIjZ8c1wiOlwiMTIvdm9zdG9rXCIsXCI2fG5cIjpcIjIvYmlzaGtlaywyL2RoYWthLDIvb21zaywyL3RoaW1waHUsMi91cnVtcWksOS9jaGFnb3MsMi9kYWNjYSwyL2thc2hnYXIsMi90aGltYnVcIixcIjYuNXxuXCI6XCIyL3lhbmdvbiw5L2NvY29zLDIvcmFuZ29vblwiLFwiNXxzXCI6XCIxMi9tYXdzb24sOS9rZXJndWVsZW5cIixcIjV8blwiOlwiMi9hbG1hdHksMi9hcXRhdSwyL2FxdG9iZSwyL2FzaGdhYmF0LDIvYXR5cmF1LDIvZHVzaGFuYmUsMi9rYXJhY2hpLDIvb3JhbCwyL3F5enlsb3JkYSwyL3Fvc3RhbmF5LDIvc2FtYXJrYW5kLDIvdGFzaGtlbnQsMi95ZWthdGVyaW5idXJnLDkvbWFsZGl2ZXMsMi9hc2hraGFiYWRcIixcIjUuNzV8blwiOlwiMi9rYXRobWFuZHUsMi9rYXRtYW5kdVwiLFwiNS41fG5cIjpcIjIva29sa2F0YSwyL2NvbG9tYm8sMi9jYWxjdXR0YVwiLFwiNHxzXCI6XCI5L3JldW5pb25cIixcIjR8blwiOlwiMi9iYWt1LDIvZHViYWksMi9tdXNjYXQsMi90YmlsaXNpLDIveWVyZXZhbiw4L2FzdHJha2hhbiw4L3NhbWFyYSw4L3NhcmF0b3YsOC91bHlhbm92c2ssOC92b2xnb2dyYWQsOS9tYWhlLDkvbWF1cml0aXVzLDIvdm9sZ29ncmFkXCIsXCI0LjV8blwiOlwiMi9rYWJ1bFwiLFwiM3xzXCI6XCIxMi9zeW93YSw5L2FudGFuYW5hcml2b1wiLFwiM3xufDA0LzI0OjAwLT4xMC8yOToyNFwiOlwiMC9jYWlybyxlZ3lwdFwiLFwiM3xufDAzLzI5OjAzLT4xMC8yNTowNFwiOlwiMi9mYW1hZ3VzdGEsMi9uaWNvc2lhLDgvYXRoZW5zLDgvYnVjaGFyZXN0LDgvY2hpc2luYXUsOC9oZWxzaW5raSw4L2t5aXYsOC9tYXJpZWhhbW4sOC9yaWdhLDgvc29maWEsOC90YWxsaW5uLDgvdXpoZ29yb2QsOC92aWxuaXVzLDgvemFwb3Jvemh5ZSw4L25pY29zaWEsOC90aXJhc3BvbCw4L2tpZXYsZWV0XCIsXCIzfG58MDMvMjk6MDAtPjEwLzI0OjI0XCI6XCIyL2JlaXJ1dFwiLFwiM3xufDAzLzI4OjAyLT4xMC8yNDowMlwiOlwiMi9nYXphLDIvaGVicm9uXCIsXCIzfG58MDMvMjc6MDItPjEwLzI1OjAyXCI6XCIyL2plcnVzYWxlbSwyL3RlbF9hdml2LGlzcmFlbFwiLFwiM3xuXCI6XCIwL2FkZGlzX2FiYWJhLDAvYXNtYXJhLDAvYXNtZXJhLDAvZGFyX2VzX3NhbGFhbSwwL2RqaWJvdXRpLDAvanViYSwwL2thbXBhbGEsMC9tb2dhZGlzaHUsMC9uYWlyb2JpLDIvYWRlbiwyL2FtbWFuLDIvYmFnaGRhZCwyL2JhaHJhaW4sMi9kYW1hc2N1cywyL2t1d2FpdCwyL3FhdGFyLDIvcml5YWRoLDgvaXN0YW5idWwsOC9raXJvdiw4L21pbnNrLDgvbW9zY293LDgvc2ltZmVyb3BvbCw5L2NvbW9ybyw5L21heW90dGUsMi9pc3RhbmJ1bCx0dXJrZXksdy1zdVwiLFwiMy41fG5cIjpcIjIvdGVocmFuLGlyYW5cIixcIjJ8c3wwMy8yOTowMi0+MTAvMjU6MDJcIjpcIjEyL3Ryb2xsXCIsXCIyfHNcIjpcIjAvZ2Fib3JvbmUsMC9oYXJhcmUsMC9qb2hhbm5lc2J1cmcsMC9sdWJ1bWJhc2hpLDAvbHVzYWthLDAvbWFwdXRvLDAvbWFzZXJ1LDAvbWJhYmFuZVwiLFwiMnxufDAzLzI5OjAyLT4xMC8yNTowM1wiOlwiMC9jZXV0YSxhcmN0aWMvbG9uZ3llYXJieWVuLDgvYW1zdGVyZGFtLDgvYW5kb3JyYSw4L2JlbGdyYWRlLDgvYmVybGluLDgvYnJhdGlzbGF2YSw4L2JydXNzZWxzLDgvYnVkYXBlc3QsOC9idXNpbmdlbiw4L2NvcGVuaGFnZW4sOC9naWJyYWx0YXIsOC9sanVibGphbmEsOC9sdXhlbWJvdXJnLDgvbWFkcmlkLDgvbWFsdGEsOC9tb25hY28sOC9vc2xvLDgvcGFyaXMsOC9wb2Rnb3JpY2EsOC9wcmFndWUsOC9yb21lLDgvc2FuX21hcmlubyw4L3NhcmFqZXZvLDgvc2tvcGplLDgvc3RvY2tob2xtLDgvdGlyYW5lLDgvdmFkdXosOC92YXRpY2FuLDgvdmllbm5hLDgvd2Fyc2F3LDgvemFncmViLDgvenVyaWNoLDMvamFuX21heWVuLHBvbGFuZCxjZXQsbWV0XCIsXCIyfG5cIjpcIjAvYmxhbnR5cmUsMC9idWp1bWJ1cmEsMC9raGFydG91bSwwL2tpZ2FsaSwwL3RyaXBvbGksOC9rYWxpbmluZ3JhZCxsaWJ5YVwiLFwiMXxzXCI6XCIwL2JyYXp6YXZpbGxlLDAva2luc2hhc2EsMC9sdWFuZGEsMC93aW5kaG9la1wiLFwiMXxufDAzLzI5OjAxLT4xMC8yNTowMlwiOlwiMy9jYW5hcnksMy9mYXJvZSwzL21hZGVpcmEsOC9kdWJsaW4sOC9ndWVybnNleSw4L2lzbGVfb2ZfbWFuLDgvamVyc2V5LDgvbGlzYm9uLDgvbG9uZG9uLDMvZmFlcm9lLGVpcmUsOC9iZWxmYXN0LGdiLWVpcmUsZ2IscG9ydHVnYWwsd2V0XCIsXCIxfG5cIjpcIjAvYWxnaWVycywwL2Jhbmd1aSwwL2RvdWFsYSwwL2xhZ29zLDAvbGlicmV2aWxsZSwwL21hbGFibywwL25kamFtZW5hLDAvbmlhbWV5LDAvcG9ydG8tbm92bywwL3R1bmlzXCIsXCIxNHxuXCI6XCIxMS9raXJpdGltYXRpXCIsXCIxM3xzXCI6XCIxMS9hcGlhLDExL3RvbmdhdGFwdVwiLFwiMTN8blwiOlwiMTEvZW5kZXJidXJ5LDExL2thbnRvbiwxMS9mYWthb2ZvXCIsXCIxMnxzfDA0LzA1OjAzLT4wOS8yNzowMlwiOlwiMTIvbWNtdXJkbywxMS9hdWNrbGFuZCwxMi9zb3V0aF9wb2xlLG56XCIsXCIxMnxzXCI6XCIxMS9maWppXCIsXCIxMnxuXCI6XCIyL2FuYWR5ciwyL2thbWNoYXRrYSwyL3NyZWRuZWtvbHltc2ssMTEvZnVuYWZ1dGksMTEva3dhamFsZWluLDExL21hanVybywxMS9uYXVydSwxMS90YXJhd2EsMTEvd2FrZSwxMS93YWxsaXMsa3dhamFsZWluXCIsXCIxMi43NXxzfDA0LzA1OjAzLT4wNC8wNTowMlwiOlwiMTEvY2hhdGhhbSxuei1jaGF0XCIsXCIxMXxzfDA0LzA1OjAzLT4xMC8wNDowMlwiOlwiMTIvbWFjcXVhcmllXCIsXCIxMXxzXCI6XCIxMS9ib3VnYWludmlsbGVcIixcIjExfG5cIjpcIjIvbWFnYWRhbiwyL3Nha2hhbGluLDExL2VmYXRlLDExL2d1YWRhbGNhbmFsLDExL2tvc3JhZSwxMS9ub3VtZWEsMTEvcG9obnBlaSwxMS9wb25hcGVcIixcIjExLjV8bnwwNC8wNTowMy0+MTAvMDQ6MDJcIjpcIjExL25vcmZvbGtcIixcIjEwfHN8MDQvMDU6MDMtPjEwLzA0OjAyXCI6XCI0L2N1cnJpZSw0L2hvYmFydCw0L21lbGJvdXJuZSw0L3N5ZG5leSw0L2FjdCw0L2NhbmJlcnJhLDQvbnN3LDQvdGFzbWFuaWEsNC92aWN0b3JpYVwiLFwiMTB8c1wiOlwiMTIvZHVtb250ZHVydmlsbGUsNC9icmlzYmFuZSw0L2xpbmRlbWFuLDExL3BvcnRfbW9yZXNieSw0L3F1ZWVuc2xhbmRcIixcIjEwfG5cIjpcIjIvdXN0LW5lcmEsMi92bGFkaXZvc3RvaywxMS9ndWFtLDExL3NhaXBhbiwxMS9jaHV1aywxMS90cnVrLDExL3lhcFwiLFwiMTAuNXxzfDA0LzA1OjAxLT4xMC8wNDowMlwiOlwiNC9sb3JkX2hvd2UsNC9saGlcIixcIjB8c3wwMi8xNTowMy0+MDMvMjI6MDJcIjpcIjAvY2FzYWJsYW5jYSwwL2VsX2FhaXVuXCIsXCIwfG58MDMvMjk6MDAtPjEwLzI1OjAxXCI6XCIzL2F6b3Jlc1wiLFwiMHxufDAzLzI5OjAwLT4xMC8yNDoyNFwiOlwiMS9zY29yZXNieXN1bmRcIixcIjB8blwiOlwiMC9hYmlkamFuLDAvYWNjcmEsMC9iYW1ha28sMC9iYW5qdWwsMC9iaXNzYXUsMC9jb25ha3J5LDAvZGFrYXIsMC9mcmVldG93biwwL2xvbWUsMC9tb25yb3ZpYSwwL25vdWFrY2hvdHQsMC9vdWFnYWRvdWdvdSwwL3Nhb190b21lLDEvZGFubWFya3NoYXZuLDMvcmV5a2phdmlrLDMvc3RfaGVsZW5hLDEzL2dtdCwxMy91dGMsMC90aW1idWt0dSwxMy9ncmVlbndpY2gsMTMvdWN0LDEzL3VuaXZlcnNhbCwxMy96dWx1LGdtdC0wLGdtdCswLGdtdDAsZ3JlZW53aWNoLGljZWxhbmQsdWN0LHVuaXZlcnNhbCx1dGMsenVsdSwxMy91bmtub3duLGZhY3RvcnlcIixcIi05fG58MDMvMDg6MDItPjExLzAxOjAyXCI6XCIxL2FkYWssMS9hdGthLHVzL2FsZXV0aWFuXCIsXCItOXxuXCI6XCIxMS9nYW1iaWVyXCIsXCItOS41fG5cIjpcIjExL21hcnF1ZXNhc1wiLFwiLTh8bnwwMy8wODowMi0+MTEvMDE6MDJcIjpcIjEvYW5jaG9yYWdlLDEvanVuZWF1LDEvbWV0bGFrYXRsYSwxL25vbWUsMS9zaXRrYSwxL3lha3V0YXQsdXMvYWxhc2thXCIsXCItOHxuXCI6XCIxMS9waXRjYWlyblwiLFwiLTd8bnwwMy8wODowMi0+MTEvMDE6MDNcIjpcIjEvdmFuY291dmVyLDYvcGFjaWZpY1wiLFwiLTd8bnwwMy8wODowMi0+MTEvMDE6MDJcIjpcIjEvbG9zX2FuZ2VsZXMsMS9zYW50YV9pc2FiZWwsMS90aWp1YW5hLDEvZW5zZW5hZGEsMTAvYmFqYW5vcnRlLHVzL3BhY2lmaWMtbmV3LHVzL3BhY2lmaWNcIixcIi03fG5cIjpcIjEvY3Jlc3RvbiwxL2Rhd3NvbiwxL2Rhd3Nvbl9jcmVlaywxL2ZvcnRfbmVsc29uLDEvaGVybW9zaWxsbywxL21hemF0bGFuLDEvcGhvZW5peCwxL3doaXRlaG9yc2UsNi95dWtvbiwxMC9iYWphc3VyLHVzL2FyaXpvbmEsbXN0XCIsXCItNnxzfDA0LzA0OjIyLT4wOS8wNToyMlwiOlwiMTEvZWFzdGVyLDcvZWFzdGVyaXNsYW5kXCIsXCItNnxufDA0LzA3OjAyLT4xMC8yNzowMlwiOlwiMS9tZXJpZGFcIixcIi02fG58MDMvMDg6MDItPjExLzAxOjAyXCI6XCIxL2JvaXNlLDEvY2FtYnJpZGdlX2JheSwxL2RlbnZlciwxL2VkbW9udG9uLDEvaW51dmlrLDEvbm9ydGhfZGFrb3RhLDEvb2ppbmFnYSwxL2NpdWRhZF9qdWFyZXosMS95ZWxsb3drbmlmZSwxL3NoaXByb2NrLDYvbW91bnRhaW4sbmF2YWpvLHVzL21vdW50YWluXCIsXCItNnxuXCI6XCIxL2JhaGlhX2JhbmRlcmFzLDEvYmVsaXplLDEvY2hpaHVhaHVhLDEvY29zdGFfcmljYSwxL2VsX3NhbHZhZG9yLDEvZ3VhdGVtYWxhLDEvbWFuYWd1YSwxL21leGljb19jaXR5LDEvbW9udGVycmV5LDEvcmVnaW5hLDEvc3dpZnRfY3VycmVudCwxL3RlZ3VjaWdhbHBhLDExL2dhbGFwYWdvcyw2L2Vhc3Qtc2Fza2F0Y2hld2FuLDYvc2Fza2F0Y2hld2FuLDEwL2dlbmVyYWxcIixcIi01fHNcIjpcIjEvbGltYSwxL3Jpb19icmFuY28sMS9wb3J0b19hY3JlLDUvYWNyZVwiLFwiLTV8bnwwMy8wODowMi0+MTEvMDE6MDJcIjpcIjEvY2hpY2FnbywxL21hdGFtb3JvcywxL21lbm9taW5lZSwxL3JhaW55X3JpdmVyLDEvcmFua2luX2lubGV0LDEvcmVzb2x1dGUsMS93aW5uaXBlZywxL2luZGlhbmEva25veCwxL2luZGlhbmEvdGVsbF9jaXR5LDEvbm9ydGhfZGFrb3RhL2JldWxhaCwxL25vcnRoX2Rha290YS9jZW50ZXIsMS9ub3J0aF9kYWtvdGEvbmV3X3NhbGVtLDEva25veF9pbiw2L2NlbnRyYWwsdXMvY2VudHJhbCx1cy9pbmRpYW5hLXN0YXJrZVwiLFwiLTV8blwiOlwiMS9ib2dvdGEsMS9jYW5jdW4sMS9jYXltYW4sMS9jb3JhbF9oYXJib3VyLDEvZWlydW5lcGUsMS9ndWF5YXF1aWwsMS9qYW1haWNhLDEvcGFuYW1hLDEvYXRpa29rYW4samFtYWljYSxlc3RcIixcIi00fHN8MDQvMDQ6MjQtPjA5LzA2OjAwXCI6XCIxL3NhbnRpYWdvLDcvY29udGluZW50YWxcIixcIi00fHN8MDMvMjI6MjQtPjEwLzA1OjAwXCI6XCIxL2FzdW5jaW9uXCIsXCItNHxzXCI6XCIxL2NhbXBvX2dyYW5kZSwxL2N1aWFiYSwxL2xhX3BheiwxL21hbmF1cyw1L3dlc3RcIixcIi00fG58MDMvMDg6MDItPjExLzAxOjAyXCI6XCIxL2RldHJvaXQsMS9ncmFuZF90dXJrLDEvaW5kaWFuYSwxL2luZGlhbmFwb2xpcywxL2lxYWx1aXQsMS9rZW50dWNreSwxL2xvdWlzdmlsbGUsMS9tb250cmVhbCwxL25hc3NhdSwxL25ld195b3JrLDEvbmlwaWdvbiwxL3BhbmduaXJ0dW5nLDEvcG9ydC1hdS1wcmluY2UsMS90aHVuZGVyX2JheSwxL3Rvcm9udG8sMS9pbmRpYW5hL21hcmVuZ28sMS9pbmRpYW5hL3BldGVyc2J1cmcsMS9pbmRpYW5hL3ZldmF5LDEvaW5kaWFuYS92aW5jZW5uZXMsMS9pbmRpYW5hL3dpbmFtYWMsMS9rZW50dWNreS9tb250aWNlbGxvLDEvZm9ydF93YXluZSwxL2luZGlhbmEvaW5kaWFuYXBvbGlzLDEva2VudHVja3kvbG91aXN2aWxsZSw2L2Vhc3Rlcm4sdXMvZWFzdC1pbmRpYW5hLHVzL2Vhc3Rlcm4sdXMvbWljaGlnYW5cIixcIi00fG58MDMvMDg6MDAtPjExLzAxOjAxXCI6XCIxL2hhdmFuYSxjdWJhXCIsXCItNHxuXCI6XCIxL2FuZ3VpbGxhLDEvYW50aWd1YSwxL2FydWJhLDEvYmFyYmFkb3MsMS9ibGFuYy1zYWJsb24sMS9ib2FfdmlzdGEsMS9jYXJhY2FzLDEvY3VyYWNhbywxL2RvbWluaWNhLDEvZ3JlbmFkYSwxL2d1YWRlbG91cGUsMS9ndXlhbmEsMS9rcmFsZW5kaWprLDEvbG93ZXJfcHJpbmNlcywxL21hcmlnb3QsMS9tYXJ0aW5pcXVlLDEvbW9udHNlcnJhdCwxL3BvcnRfb2Zfc3BhaW4sMS9wb3J0b192ZWxobywxL3B1ZXJ0b19yaWNvLDEvc2FudG9fZG9taW5nbywxL3N0X2JhcnRoZWxlbXksMS9zdF9raXR0cywxL3N0X2x1Y2lhLDEvc3RfdGhvbWFzLDEvc3RfdmluY2VudCwxL3RvcnRvbGEsMS92aXJnaW5cIixcIi0zfHNcIjpcIjEvYXJnZW50aW5hLDEvYnVlbm9zX2FpcmVzLDEvY2F0YW1hcmNhLDEvY29yZG9iYSwxL2NveWhhaXF1ZSwxL2ZvcnRhbGV6YSwxL2p1anV5LDEvbWVuZG96YSwxL21vbnRldmlkZW8sMS9wdW50YV9hcmVuYXMsMS9zYW9fcGF1bG8sMTIvcGFsbWVyLDEyL3JvdGhlcmEsMy9zdGFubGV5LDEvYXJnZW50aW5hL2xhX3Jpb2phLDEvYXJnZW50aW5hL3Jpb19nYWxsZWdvcywxL2FyZ2VudGluYS9zYWx0YSwxL2FyZ2VudGluYS9zYW5fanVhbiwxL2FyZ2VudGluYS9zYW5fbHVpcywxL2FyZ2VudGluYS90dWN1bWFuLDEvYXJnZW50aW5hL3VzaHVhaWEsMS9hcmdlbnRpbmEvY29tb2RyaXZhZGF2aWEsMS9hcmdlbnRpbmEvYnVlbm9zX2FpcmVzLDEvYXJnZW50aW5hL2NhdGFtYXJjYSwxL2FyZ2VudGluYS9jb3Jkb2JhLDEvYXJnZW50aW5hL2p1anV5LDEvYXJnZW50aW5hL21lbmRvemEsMS9hcmdlbnRpbmEvcm9zYXJpbywxL3Jvc2FyaW8sNS9lYXN0XCIsXCItM3xufDAzLzA4OjAyLT4xMS8wMTowMlwiOlwiMS9nbGFjZV9iYXksMS9nb29zZV9iYXksMS9oYWxpZmF4LDEvbW9uY3RvbiwxL3RodWxlLDMvYmVybXVkYSw2L2F0bGFudGljXCIsXCItM3xuXCI6XCIxL2FyYWd1YWluYSwxL2JhaGlhLDEvYmVsZW0sMS9jYXllbm5lLDEvbWFjZWlvLDEvcGFyYW1hcmlibywxL3JlY2lmZSwxL3NhbnRhcmVtXCIsXCItMnxufDAzLzA4OjAyLT4xMS8wMTowMlwiOlwiMS9taXF1ZWxvblwiLFwiLTJ8blwiOlwiMS9ub3JvbmhhLDMvc291dGhfZ2VvcmdpYSw1L2Rlbm9yb25oYVwiLFwiLTIuNXxufDAzLzA4OjAyLT4xMS8wMTowMlwiOlwiMS9zdF9qb2hucyw2L25ld2ZvdW5kbGFuZFwiLFwiLTF8bnwwMy8yOTowMC0+MTAvMjQ6MjRcIjpcIjEvbnV1aywxL2dvZHRoYWJcIixcIi0xfG5cIjpcIjMvY2FwZV92ZXJkZVwiLFwiLTExfG5cIjpcIjExL21pZHdheSwxMS9uaXVlLDExL3BhZ29fcGFnbywxMS9zYW1vYSx1cy9zYW1vYVwiLFwiLTEwfG5cIjpcIjExL2hvbm9sdWx1LDExL2pvaG5zdG9uLDExL3Jhcm90b25nYSwxMS90YWhpdGksdXMvaGF3YWlpLGhzdFwifSxyPVtcImFmcmljYVwiLFwiYW1lcmljYVwiLFwiYXNpYVwiLFwiYXRsYW50aWNcIixcImF1c3RyYWxpYVwiLFwiYnJhemlsXCIsXCJjYW5hZGFcIixcImNoaWxlXCIsXCJldXJvcGVcIixcImluZGlhblwiLFwibWV4aWNvXCIsXCJwYWNpZmljXCIsXCJhbnRhcmN0aWNhXCIsXCJldGNcIl07Y29uc3QgYT17fTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGU9Pntjb25zdCB0PWUuc3BsaXQoXCJ8XCIpLG89e29mZnNldDpOdW1iZXIodFswXSksaGVtOnRbMV19O3RbMl0mJihvLmRzdD10WzJdKTtuW2VdLnNwbGl0KFwiLFwiKS5mb3JFYWNoKGU9PntlPWUucmVwbGFjZSgvKF5bMC05XSspXFwvLywoZSx0KT0+KHQ9TnVtYmVyKHQpLHJbdF0rXCIvXCIpKSxhW2VdPW99KX0pLGEudXRjPXtvZmZzZXQ6MCxoZW06XCJuXCJ9O2ZvcihsZXQgZT0tMTQ7ZTw9MTQ7ZSs9LjUpe2xldCB0PWU7dD4wJiYodD1cIitcIit0KTtsZXQgbj1cImV0Yy9nbXRcIit0O2Fbbl09e29mZnNldDotMSplLGhlbTpcIm5cIn0sbj1cInV0Yy9nbXRcIit0LGFbbl09e29mZnNldDotMSplLGhlbTpcIm5cIn19Y29uc3Qgbz0vKC0/WzAtOV0rKWgocnMpPy9pLHM9LygtP1swLTldKykvLGk9L3V0YyhbXFwtK10/WzAtOV0rKS9pLHU9L2dtdChbXFwtK10/WzAtOV0rKS9pLGM9ZnVuY3Rpb24oZSl7cmV0dXJuKGU9TnVtYmVyKGUpKT49LTEzJiZlPD0xMz9cImV0Yy9nbXRcIisoZT0oKGUqPS0xKT4wP1wiK1wiOlwiXCIpK2UpOm51bGx9O2xldCBoPSgoKT0+e2NvbnN0IGU9KCgpPT57aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIEludGx8fHZvaWQgMD09PUludGwuRGF0ZVRpbWVGb3JtYXQpcmV0dXJuIG51bGw7Y29uc3QgZT1JbnRsLkRhdGVUaW1lRm9ybWF0KCk7aWYodm9pZCAwPT09ZXx8dm9pZCAwPT09ZS5yZXNvbHZlZE9wdGlvbnMpcmV0dXJuIG51bGw7Y29uc3QgdD1lLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO3JldHVybiB0P3QudG9Mb3dlckNhc2UoKTpudWxsfSkoKTtyZXR1cm4gbnVsbD09PWU/XCJ1dGNcIjplfSkoKTtjb25zdCBsPU9iamVjdC5rZXlzKGEpLnJlZHVjZSgoZSx0KT0+e2xldCBuPXQuc3BsaXQoXCIvXCIpWzFdfHxcIlwiO3JldHVybiBuPW4ucmVwbGFjZSgvXy9nLFwiIFwiKSxlW25dPXQsZX0se30pLG09KGUsdCk9PntpZighZSlyZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShoKXx8KGNvbnNvbGUud2FybihgVW5yZWNvZ25pemVkIElBTkEgaWQgJyR7aH0nLiBTZXR0aW5nIGZhbGxiYWNrIHR6IHRvIFVUQy5gKSxoPVwidXRjXCIpLGg7XCJzdHJpbmdcIiE9dHlwZW9mIGUmJmNvbnNvbGUuZXJyb3IoXCJUaW1lem9uZSBtdXN0IGJlIGEgc3RyaW5nIC0gcmVjaWV2ZWQ6ICdcIixlLFwiJ1xcblwiKTtsZXQgbj1lLnRyaW0oKTtpZihuPW4udG9Mb3dlckNhc2UoKSwhMD09PXQuaGFzT3duUHJvcGVydHkobikpcmV0dXJuIG47aWYobj0oZT0+KGU9KGU9KGU9KGU9KGU9ZS5yZXBsYWNlKC8gdGltZS9nLFwiXCIpKS5yZXBsYWNlKC8gKHN0YW5kYXJkfGRheWxpZ2h0fHN1bW1lcikvZyxcIlwiKSkucmVwbGFjZSgvXFxiKGVhc3R8d2VzdHxub3J0aHxzb3V0aCllcm4vZyxcIiQxXCIpKS5yZXBsYWNlKC9cXGIoYWZyaWNhfGFtZXJpY2F8YXVzdHJhbGlhKW4vZyxcIiQxXCIpKS5yZXBsYWNlKC9cXGJldXJvcGVhbi9nLFwiZXVyb3BlXCIpKS5yZXBsYWNlKC9pc2xhbmRzL2csXCJpc2xhbmRcIikpKG4pLCEwPT09dC5oYXNPd25Qcm9wZXJ0eShuKSlyZXR1cm4gbjtpZighMD09PWwuaGFzT3duUHJvcGVydHkobikpcmV0dXJuIGxbbl07aWYoITA9PT0vWzAtOV0vLnRlc3Qobikpe2NvbnN0IGU9ZnVuY3Rpb24oZSl7bGV0IHQ9ZS5tYXRjaChvKTtpZihudWxsIT09dClyZXR1cm4gYyh0WzFdKTtpZih0PWUubWF0Y2goaSksbnVsbCE9PXQpcmV0dXJuIGModFsxXSk7aWYodD1lLm1hdGNoKHUpLG51bGwhPT10KXtjb25zdCBlPS0xKk51bWJlcih0WzFdKTtyZXR1cm4gYyhlKX1yZXR1cm4gdD1lLm1hdGNoKHMpLG51bGwhPT10P2ModFsxXSk6bnVsbH0obik7aWYoZSlyZXR1cm4gZX10aHJvdyBuZXcgRXJyb3IoXCJTcGFjZXRpbWU6IENhbm5vdCBmaW5kIHRpbWV6b25lIG5hbWVkOiAnXCIrZStcIicuIFBsZWFzZSBlbnRlciBhbiBJQU5BIHRpbWV6b25lIGlkLlwiKX07ZnVuY3Rpb24gZChlKXtyZXR1cm4gZSU0PT0wJiZlJTEwMCE9MHx8ZSU0MDA9PTB9ZnVuY3Rpb24gZihlKXtyZXR1cm5cIltvYmplY3QgRGF0ZV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSYmIWlzTmFOKGUudmFsdWVPZigpKX1mdW5jdGlvbiBwKGUpe3JldHVyblwiW29iamVjdCBPYmplY3RdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24geShlLHQ9Mil7cmV0dXJuKGUrPVwiXCIpLmxlbmd0aD49dD9lOm5ldyBBcnJheSh0LWUubGVuZ3RoKzEpLmpvaW4oXCIwXCIpK2V9ZnVuY3Rpb24gZyhlKXtjb25zdCB0PWUlMTAsbj1lJTEwMDtyZXR1cm4gMT09PXQmJjExIT09bj9lK1wic3RcIjoyPT09dCYmMTIhPT1uP2UrXCJuZFwiOjM9PT10JiYxMyE9PW4/ZStcInJkXCI6ZStcInRoXCJ9ZnVuY3Rpb24gYihlKXtyZXR1cm4gZT0oZT1TdHJpbmcoZSkpLnJlcGxhY2UoLyhbMC05XSkoc3R8bmR8cmR8dGgpJC9pLFwiJDFcIikscGFyc2VJbnQoZSwxMCl9ZnVuY3Rpb24gayhlPVwiXCIpe3JldHVyblwiZGF5XCI9PT0oZT0oZT0oZT0oZT1lLnRvTG93ZXJDYXNlKCkudHJpbSgpKS5yZXBsYWNlKC9pZXMkLyxcInlcIikpLnJlcGxhY2UoL3MkLyxcIlwiKSkucmVwbGFjZSgvLS9nLFwiXCIpKXx8XCJkYXlzXCI9PT1lP1wiZGF0ZVwiOlwibWluXCI9PT1lfHxcIm1pbnNcIj09PWU/XCJtaW51dGVcIjplfWZ1bmN0aW9uIHcoZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGU/ZTpmKGUpP2UuZ2V0VGltZSgpOmUuZXBvY2h8fDA9PT1lLmVwb2NoP2UuZXBvY2g6bnVsbH1mdW5jdGlvbiB2KGUsdCl7cmV0dXJuITE9PT1wKGUpP3QuY2xvbmUoKS5zZXQoZSk6ZX1mdW5jdGlvbiB6KGUsdD1cIlwiKXtjb25zdCBuPWU+MD9cIitcIjpcIi1cIixyPU1hdGguYWJzKGUpO3JldHVybmAke259JHt5KHBhcnNlSW50KFwiXCIrciwxMCkpfSR7dH0ke3kociUxKjYwKX1gfWNvbnN0IF89e3llYXI6KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLG1vbnRoOjAsZGF0ZToxfSwkPVtcInllYXJcIixcIm1vbnRoXCIsXCJkYXRlXCIsXCJob3VyXCIsXCJtaW51dGVcIixcInNlY29uZFwiLFwibWlsbGlzZWNvbmRcIl07dmFyIGo9e3BhcnNlQXJyYXk6KGUsdCxuKT0+e2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gZTtmb3IobGV0IHI9MDtyPCQubGVuZ3RoO3IrKyl7Y29uc3QgYT10W3JdfHxuWyRbcl1dfHxfWyRbcl1dfHwwO2U9ZVskW3JdXShhKX1yZXR1cm4gZX0scGFyc2VPYmplY3Q6KGUsdCk9PntpZigwPT09T2JqZWN0LmtleXModCkubGVuZ3RoKXJldHVybiBlOyh0PU9iamVjdC5hc3NpZ24oe30sXyx0KSkudGltZXpvbmUmJihlLnR6PXQudGltZXpvbmUpO2ZvcihsZXQgbj0wO248JC5sZW5ndGg7bisrKXtjb25zdCByPSRbbl07dm9pZCAwIT09dFtyXSYmKGU9ZVtyXSh0W3JdKSl9cmV0dXJuIGV9LHBhcnNlTnVtYmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ+MCYmdDwyNWU4JiYhMT09PWUuc2lsZW50JiYoY29uc29sZS53YXJuKFwiICAtIFdhcm5pbmc6IFlvdSBhcmUgc2V0dGluZyB0aGUgZGF0ZSB0byBKYW51YXJ5IDE5NzAuXCIpLGNvbnNvbGUud2FybihcIiAgICAgICAtICAgZGlkIGlucHV0IHNlY29uZHMgaW5zdGVhZCBvZiBtaWxsaXNlY29uZHM/XCIpKSxlLmVwb2NoPXQsZX19O2NvbnN0IE89ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXBvY2g9RGF0ZS5ub3coKSxPYmplY3Qua2V5cyhlLl90b2RheXx8e30pLmZvckVhY2godD0+e1wiZnVuY3Rpb25cIj09dHlwZW9mIGVbdF0mJihlPWVbdF0oZS5fdG9kYXlbdF0pKX0pLGV9LEQ9e25vdzplPT5PKGUpLHRvZGF5OmU9Pk8oZSksdG9uaWdodDplPT5lPShlPU8oZSkpLmhvdXIoMTgpLHRvbW9ycm93OmU9PmU9KGU9KGU9TyhlKSkuYWRkKDEsXCJkYXlcIikpLnN0YXJ0T2YoXCJkYXlcIikseWVzdGVyZGF5OmU9PmU9KGU9KGU9TyhlKSkuc3VidHJhY3QoMSxcImRheVwiKSkuc3RhcnRPZihcImRheVwiKSxjaHJpc3RtYXM6ZT0+e2NvbnN0IHQ9TyhlKS55ZWFyKCk7cmV0dXJuIGU9ZS5zZXQoW3QsMTEsMjUsMTgsMCwwXSl9LFwibmV3IHllYXJzXCI6ZT0+e2NvbnN0IHQ9TyhlKS55ZWFyKCk7cmV0dXJuIGU9ZS5zZXQoW3QsMTEsMzEsMTgsMCwwXSl9fTtEW1wibmV3IHllYXJzIGV2ZVwiXT1EW1wibmV3IHllYXJzXCJdO2NvbnN0IE09e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTV9O00uZGF0ZT1NLmRheSxNLm1vbnRoPTI1NDg4ZTUsTS53ZWVrPTYwNDhlNSxNLnllYXI9MzE1NGU3LE9iamVjdC5rZXlzKE0pLmZvckVhY2goZT0+e01bZStcInNcIl09TVtlXX0pO2NvbnN0IFM9KGUsdCxuLHIsYSk9Pntjb25zdCBvPWUuZFtuXSgpO2lmKG89PT10KXJldHVybjtjb25zdCBzPW51bGw9PT1hP251bGw6ZS5kW2FdKCksaT1lLmVwb2NoLHU9dC1vO2UuZXBvY2grPU1bcl0qdSxcImRheVwiPT09ciYmTWF0aC5hYnModSk+MjgmJnQ8MjgmJihlLmVwb2NoKz1NLmhvdXIpLG51bGwhPT1hJiZzIT09ZS5kW2FdKCkmJihlLmVwb2NoPWkpO2NvbnN0IGM9TVtyXS8yO2Zvcig7ZS5kW25dKCk8dDspZS5lcG9jaCs9Yztmb3IoO2UuZFtuXSgpPnQ7KWUuZXBvY2gtPWM7bnVsbCE9PWEmJnMhPT1lLmRbYV0oKSYmKGUuZXBvY2g9aSl9LHE9e3llYXI6e3ZhbGlkOmU9PmU+LTRlMyYmZTw0ZTMsd2Fsa1RvOihlLHQpPT5TKGUsdCxcImdldEZ1bGxZZWFyXCIsXCJ5ZWFyXCIsbnVsbCl9LG1vbnRoOnt2YWxpZDplPT5lPj0wJiZlPD0xMSx3YWxrVG86KGUsdCk9Pntjb25zdCBuPWUuZCxyPW4uZ2V0TW9udGgoKSxhPWUuZXBvY2gsbz1uLmdldEZ1bGxZZWFyKCk7aWYocj09PXQpcmV0dXJuO2NvbnN0IHM9dC1yO2ZvcihlLmVwb2NoKz1NLmRheSooMjgqcyksbyE9PWUuZC5nZXRGdWxsWWVhcigpJiYoZS5lcG9jaD1hKTtlLmQuZ2V0TW9udGgoKTx0OyllLmVwb2NoKz1NLmRheTtmb3IoO2UuZC5nZXRNb250aCgpPnQ7KWUuZXBvY2gtPU0uZGF5fX0sZGF0ZTp7dmFsaWQ6ZT0+ZT4wJiZlPD0zMSx3YWxrVG86KGUsdCk9PlMoZSx0LFwiZ2V0RGF0ZVwiLFwiZGF5XCIsXCJnZXRNb250aFwiKX0saG91cjp7dmFsaWQ6ZT0+ZT49MCYmZTwyNCx3YWxrVG86KGUsdCk9PlMoZSx0LFwiZ2V0SG91cnNcIixcImhvdXJcIixcImdldERhdGVcIil9LG1pbnV0ZTp7dmFsaWQ6ZT0+ZT49MCYmZTw2MCx3YWxrVG86KGUsdCk9PlMoZSx0LFwiZ2V0TWludXRlc1wiLFwibWludXRlXCIsXCJnZXRIb3Vyc1wiKX0sc2Vjb25kOnt2YWxpZDplPT5lPj0wJiZlPDYwLHdhbGtUbzooZSx0KT0+e2UuZXBvY2g9ZS5zZWNvbmRzKHQpLmVwb2NofX0sbWlsbGlzZWNvbmQ6e3ZhbGlkOmU9PmU+PTAmJmU8MWUzLHdhbGtUbzooZSx0KT0+e2UuZXBvY2g9ZS5taWxsaXNlY29uZHModCkuZXBvY2h9fX0sTj0oZSx0KT0+e2NvbnN0IG49T2JqZWN0LmtleXMocSkscj1lLmNsb25lKCk7Zm9yKGxldCBhPTA7YTxuLmxlbmd0aDthKyspe2NvbnN0IG89blthXTtsZXQgcz10W29dO2lmKHZvaWQgMD09PXMmJihzPXJbb10oKSksXCJzdHJpbmdcIj09dHlwZW9mIHMmJihzPXBhcnNlSW50KHMsMTApKSwhcVtvXS52YWxpZChzKSlyZXR1cm4gZS5lcG9jaD1udWxsLHZvaWQoITE9PT1lLnNpbGVudCYmY29uc29sZS53YXJuKFwiaW52YWxpZCBcIitvK1wiOiBcIitzKSk7cVtvXS53YWxrVG8oZSxzKX19LEk9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtsZXQgVD1bXCJqYW5cIixcImZlYlwiLFwibWFyXCIsXCJhcHJcIixcIm1heVwiLFwianVuXCIsXCJqdWxcIixcImF1Z1wiLFwic2VwXCIsXCJvY3RcIixcIm5vdlwiLFwiZGVjXCJdLEM9W1wiamFudWFyeVwiLFwiZmVicnVhcnlcIixcIm1hcmNoXCIsXCJhcHJpbFwiLFwibWF5XCIsXCJqdW5lXCIsXCJqdWx5XCIsXCJhdWd1c3RcIixcInNlcHRlbWJlclwiLFwib2N0b2JlclwiLFwibm92ZW1iZXJcIixcImRlY2VtYmVyXCJdO2Z1bmN0aW9uIEUoKXtyZXR1cm4gVH1mdW5jdGlvbiBBKCl7cmV0dXJuIGZ1bmN0aW9uKCl7Y29uc3QgZT17c2VwOjh9O2ZvcihsZXQgdD0wO3Q8VC5sZW5ndGg7dCsrKWVbVFt0XV09dDtmb3IobGV0IHQ9MDt0PEMubGVuZ3RoO3QrKyllW0NbdF1dPXQ7cmV0dXJuIGV9KCl9Y29uc3QgeD0oZSx0KT0+e2lmKCF0KXJldHVybiBlO3Q9dC50cmltKCkudG9Mb3dlckNhc2UoKTtsZXQgbj0wO2lmKC9eWystXT9bMC05XXsyfTpbMC05XXsyfSQvLnRlc3QodCkmJighMD09PS86MDAvLnRlc3QodCkmJih0PXQucmVwbGFjZSgvOjAwLyxcIlwiKSksITA9PT0vOjMwLy50ZXN0KHQpJiYodD10LnJlcGxhY2UoLzozMC8sXCIuNVwiKSkpLC9eWystXT9bMC05XXs0fSQvLnRlc3QodCkmJih0PXQucmVwbGFjZSgvMzAkLyxcIi41XCIpKSxuPXBhcnNlRmxvYXQodCksTWF0aC5hYnMobik+MTAwJiYobi89MTAwKSwwPT09bnx8XCJaXCI9PT10fHxcInpcIj09PXQpcmV0dXJuIGUudHo9XCJldGMvZ210XCIsZTtuKj0tMSxuPj0wJiYobj1cIitcIituKTtjb25zdCByPVwiZXRjL2dtdFwiK247cmV0dXJuIGUudGltZXpvbmVzW3JdJiYoZS50ej1yKSxlfSxZPShlLHQ9XCJcIik9PntsZXQgbj0odD10LnJlcGxhY2UoL15cXHMrLyxcIlwiKS50b0xvd2VyQ2FzZSgpKS5tYXRjaCgvKFswLTldezEsMn0pOihbMC05XXsxLDJ9KTo/KFswLTldezEsMn0pP1s6Ll0/KFswLTldezEsNH0pPy8pO2lmKG51bGwhPT1uKXtsZXRbLHIsYSxvLHNdPW47aWYocj1OdW1iZXIocikscjwwfHxyPjI0KXJldHVybiBlLnN0YXJ0T2YoXCJkYXlcIik7aWYoYT1OdW1iZXIoYSksblsyXS5sZW5ndGg8Mnx8YTwwfHxhPjU5KXJldHVybiBlLnN0YXJ0T2YoXCJkYXlcIik7ZT0oZT0oZT0oZT1lLmhvdXIocikpLm1pbnV0ZShhKSkuc2Vjb25kcyhvfHwwKSkubWlsbGlzZWNvbmQoZnVuY3Rpb24oZT1cIlwiKXtyZXR1cm4oZT1TdHJpbmcoZSkpLmxlbmd0aD4zP2U9ZS5zdWJzdHJpbmcoMCwzKToxPT09ZS5sZW5ndGg/ZSs9XCIwMFwiOjI9PT1lLmxlbmd0aCYmKGUrPVwiMFwiKSxOdW1iZXIoZSl8fDB9KHMpKTtjb25zdCBpPXQubWF0Y2goL1swLTldID8oYW18cG0pXFxiLyk7cmV0dXJuIG51bGwhPT1pJiZpWzFdJiYoZT1lLmFtcG0oaVsxXSkpLGV9aWYobj10Lm1hdGNoKC8oWzAtOV0rKSA/KGFtfHBtKS8pLG51bGwhPT1uJiZuWzFdKXtjb25zdCB0PU51bWJlcihuWzFdKTtyZXR1cm4gdD4xMnx8dDwxP2Uuc3RhcnRPZihcImRheVwiKTplPShlPShlPWUuaG91cihuWzFdfHwwKSkuYW1wbShuWzJdKSkuc3RhcnRPZihcImhvdXJcIil9cmV0dXJuIGU9ZS5zdGFydE9mKFwiZGF5XCIpfSxGPUEoKSxQPWU9PntpZighMCE9PUkuaGFzT3duUHJvcGVydHkoZS5tb250aCkpcmV0dXJuITE7aWYoMT09PWUubW9udGgpcmV0dXJuISEoZChlLnllYXIpJiZlLmRhdGU8PTI5KXx8ZS5kYXRlPD0yODtjb25zdCB0PUlbZS5tb250aF18fDA7cmV0dXJuIGUuZGF0ZTw9dH0sTD0oZT1cIlwiLHQpPT57aWYoZT1lLnRyaW0oKSwhMD09PS9eJ1swLTldWzAtOV0kLy50ZXN0KGUpKXtjb25zdCB0PU51bWJlcihlLnJlcGxhY2UoLycvLFwiXCIpKTtyZXR1cm4gdD41MD8xOTAwK3Q6MmUzK3R9bGV0IG49cGFyc2VJbnQoZSwxMCk7cmV0dXJuIW4mJnQmJihuPXQueWVhciksbj1ufHwobmV3IERhdGUpLmdldEZ1bGxZZWFyKCksbn0sVT1mdW5jdGlvbihlKXtyZXR1cm5cInNlcHRcIj09PShlPWUudG9Mb3dlckNhc2UoKS50cmltKCkpP0Yuc2VwOkZbZV19O3ZhciBCPVt7cmVnOi9eKFswLTldezEsMn0pWy0vLl0oWzAtOV17MSwyfSlbXFwtLy5dPyhbMC05XXs0fSk/KCBbMC05XXsxLDJ9OlswLTldezJ9Oj9bMC05XXswLDJ9ID8oYW18cG18Z210KSk/JC9pLHBhcnNlOihlLHQpPT57bGV0IG49cGFyc2VJbnQodFsxXSwxMCktMSxyPXBhcnNlSW50KHRbMl0sMTApOyhlLmJyaXRpc2h8fG4+PTEyKSYmKHI9cGFyc2VJbnQodFsxXSwxMCksbj1wYXJzZUludCh0WzJdLDEwKS0xKTtjb25zdCBhPXtkYXRlOnIsbW9udGg6bix5ZWFyOkwodFszXSxlLl90b2RheSl8fChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKX07cmV0dXJuITE9PT1QKGEpPyhlLmVwb2NoPW51bGwsZSk6KE4oZSxhKSxlPVkoZSx0WzRdKSl9fSx7cmVnOi9eKFthLXpdKylbXFwtLy4gXShbMC05XXsxLDJ9KVtcXC0vLiBdPyhbMC05XXs0fXwnWzAtOV17Mn0pPyggWzAtOV17MSwyfSg6WzAtOV17MCwyfSk/KDpbMC05XXswLDN9KT8gPyhhbXxwbSk/KT8kL2kscGFyc2U6KGUsdCk9Pntjb25zdCBuPXt5ZWFyOkwodFszXSxlLl90b2RheSksbW9udGg6VSh0WzFdKSxkYXRlOmIodFsyXXx8XCJcIil9O3JldHVybiExPT09UChuKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsbiksZT1ZKGUsdFs0XSkpfX0se3JlZzovXihbYS16XSspIChbMC05XXsxLDJ9KSggWzAtOV17NH0pPyggKFswLTk6XSsoID9hbXwgP3BtfCA/Z210KT8pKT8kL2kscGFyc2U6KGUsdCk9Pntjb25zdCBuPXt5ZWFyOkwodFszXSxlLl90b2RheSksbW9udGg6VSh0WzFdKSxkYXRlOmIodFsyXXx8XCJcIil9O3JldHVybiExPT09UChuKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsbiksZT1ZKGUsdFs0XSkpfX0se3JlZzovXihbYS16XSspIChbMC05XXsxLDJ9KSAoWzAtOV17MSwyfTpbMC05XXsyfTo/WzAtOV17MCwyfSkoIFxcK1swLTldezR9KT8oIFswLTldezR9KT8kL2kscGFyc2U6KGUsdCk9Pntjb25zdFssbixyLGEsbyxzXT10LGk9e3llYXI6TChzLGUuX3RvZGF5KSxtb250aDpVKG4pLGRhdGU6YihyfHxcIlwiKX07cmV0dXJuITE9PT1QKGkpPyhlLmVwb2NoPW51bGwsZSk6KE4oZSxpKSxlPXgoZSxvKSxlPVkoZSxhKSl9fV0sSD1be3JlZzovXihbMC05XXs0fSlbXFwtL10oWzAtOV17Mn0pJC8scGFyc2U6KGUsdCk9Pntjb25zdCBuPXt5ZWFyOnRbMV0sbW9udGg6cGFyc2VJbnQodFsyXSwxMCktMSxkYXRlOjF9O3JldHVybiExPT09UChuKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsbiksZT1ZKGUsdFs0XSkpfX0se3JlZzovXihbYS16XSspIChbMC05XXs0fSkkL2kscGFyc2U6KGUsdCk9Pntjb25zdCBuPXt5ZWFyOkwodFsyXSxlLl90b2RheSksbW9udGg6VSh0WzFdKSxkYXRlOmUuX3RvZGF5LmRhdGV8fDF9O3JldHVybiExPT09UChuKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsbiksZT1ZKGUsdFs0XSkpfX0se3JlZzovXihxWzAtOV0pKCBvZik/KCBbMC05XXs0fSk/L2kscGFyc2U6KGUsdCk9Pntjb25zdCBuPXRbMV18fFwiXCI7ZT1lLnF1YXJ0ZXIobik7bGV0IHI9dFszXXx8XCJcIjtyZXR1cm4gciYmKHI9ci50cmltKCksZT1lLnllYXIocikpLGV9fSx7cmVnOi9eKHNwcmluZ3xzdW1tZXJ8d2ludGVyfGZhbGx8YXV0dW1uKSggb2YpPyggWzAtOV17NH0pPy9pLHBhcnNlOihlLHQpPT57Y29uc3Qgbj10WzFdfHxcIlwiO2U9ZS5zZWFzb24obik7bGV0IHI9dFszXXx8XCJcIjtyZXR1cm4gciYmKHI9ci50cmltKCksZT1lLnllYXIocikpLGV9fSx7cmVnOi9eWzAtOSxdKyA/YlxcLj9jXFwuPyQvaSxwYXJzZTooZSx0KT0+e2xldCBuPXRbMF18fFwiXCI7bj1uLnJlcGxhY2UoL14oWzAtOSxdKykgP2JcXC4/Y1xcLj8kL2ksXCItJDFcIik7Y29uc3Qgcj1uZXcgRGF0ZSxhPXt5ZWFyOnBhcnNlSW50KG4udHJpbSgpLDEwKSxtb250aDpyLmdldE1vbnRoKCksZGF0ZTpyLmdldERhdGUoKX07cmV0dXJuITE9PT1QKGEpPyhlLmVwb2NoPW51bGwsZSk6KE4oZSxhKSxlPVkoZSkpfX0se3JlZzovXlswLTksXSsgPyhhXFwuP2RcXC4/fGNcXC4/ZVxcLj8pJC9pLHBhcnNlOihlLHQpPT57bGV0IG49dFswXXx8XCJcIjtuPW4ucmVwbGFjZSgvLC9nLFwiXCIpO2NvbnN0IHI9bmV3IERhdGUsYT17eWVhcjpwYXJzZUludChuLnRyaW0oKSwxMCksbW9udGg6ci5nZXRNb250aCgpLGRhdGU6ci5nZXREYXRlKCl9O3JldHVybiExPT09UChhKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsYSksZT1ZKGUpKX19LHtyZWc6L15bMC05XXs0fSggP2FcXC4/ZFxcLj8pPyQvaSxwYXJzZTooZSx0KT0+e2NvbnN0IG49ZS5fdG9kYXk7bi5tb250aCYmIW4uZGF0ZSYmKG4uZGF0ZT0xKTtjb25zdCByPW5ldyBEYXRlLGE9e3llYXI6TCh0WzBdLG4pLG1vbnRoOm4ubW9udGh8fHIuZ2V0TW9udGgoKSxkYXRlOm4uZGF0ZXx8ci5nZXREYXRlKCl9O3JldHVybiExPT09UChhKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsYSksZT1ZKGUpKX19XSxaPVtdLmNvbmNhdChbe3JlZzovXigtPzB7MCwyfVswLTldezMsNH0pLShbMC05XXsxLDJ9KS0oWzAtOV17MSwyfSlbVHwgXShbMC05LjpdKykoWnxbMC05LSs6XSspPyhcXFsuKj9cXF0pPyhcXFsuKj9cXF0pPyQvaSxwYXJzZTooZSx0KT0+e2NvbnN0IG49e3llYXI6dFsxXSxtb250aDpwYXJzZUludCh0WzJdLDEwKS0xLGRhdGU6dFszXX07aWYoITE9PT1QKG4pKXJldHVybiBlLmVwb2NoPW51bGwsZTtpZih0WzZdKXtjb25zdCBuPXRbNl0udHJpbSgpLnJlcGxhY2UoL1tbXFxdXS9nLFwiXCIpO24mJihlPWUudGltZXpvbmUobikpfWVsc2UgeChlLHRbNV0pO3JldHVybiBOKGUsbiksZT1ZKGUsdFs0XSl9fSx7cmVnOi9eKFswLTldezR9KVtcXC0vLiBdKFswLTldezEsMn0pW1xcLS8uIF0oWzAtOV17MSwyfSkoIFswLTldezEsMn0oOlswLTldezAsMn0pPyg6WzAtOV17MCwzfSk/ID8oYW18cG0pPyk/JC9pLHBhcnNlOihlLHQpPT57Y29uc3Qgbj17eWVhcjp0WzFdLG1vbnRoOnBhcnNlSW50KHRbMl0sMTApLTEsZGF0ZTpwYXJzZUludCh0WzNdLDEwKX07cmV0dXJuIG4ubW9udGg+PTEyJiYobi5kYXRlPXBhcnNlSW50KHRbMl0sMTApLG4ubW9udGg9cGFyc2VJbnQodFszXSwxMCktMSksITE9PT1QKG4pPyhlLmVwb2NoPW51bGwsZSk6KE4oZSxuKSxlPVkoZSx0WzRdKSl9fSx7cmVnOi9eKFswLTldezR9KVtcXC0vLiBdKFthLXpdKylbXFwtLy4gXShbMC05XXsxLDJ9KSggWzAtOV17MSwyfSg6WzAtOV17MCwyfSk/KDpbMC05XXswLDN9KT8gPyhhbXxwbSk/KT8kL2kscGFyc2U6KGUsdCk9Pntjb25zdCBuPXt5ZWFyOkwodFsxXSxlLl90b2RheSksbW9udGg6VSh0WzJdKSxkYXRlOmIodFszXXx8XCJcIil9O3JldHVybiExPT09UChuKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsbiksZT1ZKGUsdFs0XSkpfX1dLEIsW3tyZWc6L14oWzAtOV17MSwyfSlbLS9dKFthLXpdKylbXFwtL10/KFswLTldezR9KT8kL2kscGFyc2U6KGUsdCk9Pntjb25zdCBuPXt5ZWFyOkwodFszXSxlLl90b2RheSksbW9udGg6VSh0WzJdKSxkYXRlOmIodFsxXXx8XCJcIil9O3JldHVybiExPT09UChuKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsbiksZT1ZKGUsdFs0XSkpfX0se3JlZzovXihbMC05XXsxLDJ9KSggW2Etel0rKSggWzAtOV17NH18ICdbMC05XXsyfSk/ID8oWzAtOV17MSwyfTpbMC05XXsyfTo/WzAtOV17MCwyfSA/KGFtfHBtfGdtdCkpPyQvaSxwYXJzZTooZSx0KT0+e2NvbnN0IG49e3llYXI6TCh0WzNdLGUuX3RvZGF5KSxtb250aDpVKHRbMl0pLGRhdGU6Yih0WzFdKX07cmV0dXJuIG4ubW9udGgmJiExIT09UChuKT8oTihlLG4pLGU9WShlLHRbNF0pKTooZS5lcG9jaD1udWxsLGUpfX0se3JlZzovXihbMC05XXsxLDJ9KVsuIFxcLS9dKFthLXpdKylbLiBcXC0vXShbMC05XXs0fSk/KCBbMC05XXsxLDJ9KDpbMC05XXswLDJ9KT8oOlswLTldezAsM30pPyA/KGFtfHBtKT8pPyQvaSxwYXJzZTooZSx0KT0+e2NvbnN0IG49e2RhdGU6TnVtYmVyKHRbMV0pLG1vbnRoOlUodFsyXSkseWVhcjpOdW1iZXIodFszXSl9O3JldHVybiExPT09UChuKT8oZS5lcG9jaD1udWxsLGUpOihOKGUsbiksZT1lLnN0YXJ0T2YoXCJkYXlcIiksZT1ZKGUsdFs0XSkpfX1dLEgpO2NvbnN0e3BhcnNlQXJyYXk6USxwYXJzZU9iamVjdDpHLHBhcnNlTnVtYmVyOlZ9PWosVz17eWVhcjoobmV3IERhdGUpLmdldEZ1bGxZZWFyKCksbW9udGg6MCxkYXRlOjF9LEo9KGUsdCk9Pntjb25zdCBuPWUuX3RvZGF5fHxXO2lmKFwibnVtYmVyXCI9PXR5cGVvZiB0KXJldHVybiBWKGUsdCk7aWYoZS5lcG9jaD1EYXRlLm5vdygpLGUuX3RvZGF5JiZwKGUuX3RvZGF5KSYmT2JqZWN0LmtleXMoZS5fdG9kYXkpLmxlbmd0aD4wKXtjb25zdCB0PUcoZSxuKTt0LmlzVmFsaWQoKSYmKGUuZXBvY2g9dC5lcG9jaCl9aWYobnVsbD09dHx8XCJcIj09PXQpcmV0dXJuIGU7aWYoITA9PT1mKHQpKXJldHVybiBlLmVwb2NoPXQuZ2V0VGltZSgpLGU7aWYoITA9PT1mdW5jdGlvbihlKXtyZXR1cm5cIltvYmplY3QgQXJyYXldXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9KHQpKXJldHVybiBlPVEoZSx0LG4pO2lmKCEwPT09cCh0KSl7aWYodC5lcG9jaClyZXR1cm4gZS5lcG9jaD10LmVwb2NoLGUudHo9dC50eixlO2NvbnN0IHI9T2JqZWN0LmFzc2lnbih7fSxuLHQpO3JldHVybiBlPUcoZSxyKX1yZXR1cm5cInN0cmluZ1wiIT10eXBlb2YgdD9lOih0PXQucmVwbGFjZSgvXFxiKG1vbnx0dWVzP3x3ZWR8d2VkbmVzfHRodXI/cz98ZnJpfHNhdHxzYXR1cnxzdW4pKGRheSk/XFxiL2ksXCJcIikucmVwbGFjZSgvKFswLTldKSh0aHxyZHxzdHxuZCkvLFwiJDFcIikucmVwbGFjZSgvLC9nLFwiXCIpLnJlcGxhY2UoLyArL2csXCIgXCIpLnRyaW0oKSwhMD09PUQuaGFzT3duUHJvcGVydHkodCk/ZT1EW3RdKGUpOmZ1bmN0aW9uKGUsdCxuKXtmb3IobGV0IHI9MDtyPFoubGVuZ3RoO3IrKyl7Y29uc3QgYT10Lm1hdGNoKFpbcl0ucmVnKTtpZihhKXtjb25zdCB0PVpbcl0ucGFyc2UoZSxhLG4pO2lmKG51bGwhPT10JiZ0LmlzVmFsaWQoKSlyZXR1cm4gdH19cmV0dXJuITE9PT1lLnNpbGVudCYmY29uc29sZS53YXJuKFwiV2FybmluZzogY291bGRuJ3QgcGFyc2UgZGF0ZS1zdHJpbmc6ICdcIit0K1wiJ1wiKSxlLmVwb2NoPW51bGwsZX0oZSx0KSl9O2xldCBLPVtcInN1blwiLFwibW9uXCIsXCJ0dWVcIixcIndlZFwiLFwidGh1XCIsXCJmcmlcIixcInNhdFwiXSxSPVtcInN1bmRheVwiLFwibW9uZGF5XCIsXCJ0dWVzZGF5XCIsXCJ3ZWRuZXNkYXlcIixcInRodXJzZGF5XCIsXCJmcmlkYXlcIixcInNhdHVyZGF5XCJdO2Z1bmN0aW9uIFgoKXtyZXR1cm4gS31mdW5jdGlvbiBlZSgpe3JldHVybiBSfWNvbnN0IHRlPXttbzoxLHR1OjIsd2U6Myx0aDo0LGZyOjUsc2E6NixzdTo3LHR1ZXM6Mix3ZWRzOjMsd2VkbjozLHRodXI6NCx0aHVyczo0fTtsZXQgbmU9ITA7Y29uc3QgcmU9ZT0+e2NvbnN0IHQ9ZS50aW1lem9uZSgpLmN1cnJlbnQub2Zmc2V0O3JldHVybiB0P3oodCxcIjpcIik6XCJaXCJ9LGFlPWU9Pm5lP2Z1bmN0aW9uKGUpe3JldHVybiBlP2VbMF0udG9VcHBlckNhc2UoKStlLnN1YnN0cigxKTpcIlwifShlKTplLG9lPXtkYXk6ZT0+YWUoZS5kYXlOYW1lKCkpLFwiZGF5LXNob3J0XCI6ZT0+YWUoWCgpW2UuZGF5KCldKSxcImRheS1udW1iZXJcIjplPT5lLmRheSgpLFwiZGF5LW9yZGluYWxcIjplPT5nKGUuZGF5KCkpLFwiZGF5LXBhZFwiOmU9PnkoZS5kYXkoKSksZGF0ZTplPT5lLmRhdGUoKSxcImRhdGUtb3JkaW5hbFwiOmU9PmcoZS5kYXRlKCkpLFwiZGF0ZS1wYWRcIjplPT55KGUuZGF0ZSgpKSxtb250aDplPT5hZShlLm1vbnRoTmFtZSgpKSxcIm1vbnRoLXNob3J0XCI6ZT0+YWUoRSgpW2UubW9udGgoKV0pLFwibW9udGgtbnVtYmVyXCI6ZT0+ZS5tb250aCgpLFwibW9udGgtb3JkaW5hbFwiOmU9PmcoZS5tb250aCgpKSxcIm1vbnRoLXBhZFwiOmU9PnkoZS5tb250aCgpKSxcImlzby1tb250aFwiOmU9PnkoZS5tb250aCgpKzEpLHllYXI6ZT0+e2xldCB0PWUueWVhcigpO3JldHVybiB0PjA/dDoodD1NYXRoLmFicyh0KSx0K1wiIEJDXCIpfSxcInllYXItc2hvcnRcIjplPT57bGV0IHQ9ZS55ZWFyKCk7cmV0dXJuIHQ+MD9gJyR7U3RyaW5nKGUueWVhcigpKS5zdWJzdHIoMiw0KX1gOih0PU1hdGguYWJzKHQpLHQrXCIgQkNcIil9LFwiaXNvLXllYXJcIjplPT57Y29uc3QgdD1lLnllYXIoKSxuPXQ8MDtsZXQgcj15KE1hdGguYWJzKHQpLDQpO3JldHVybiBuJiYocj15KHIsNikscj1cIi1cIityKSxyfSx0aW1lOmU9PmUudGltZSgpLFwidGltZS0yNFwiOmU9PmAke2UuaG91cjI0KCl9OiR7eShlLm1pbnV0ZSgpKX1gLGhvdXI6ZT0+ZS5ob3VyMTIoKSxcImhvdXItcGFkXCI6ZT0+eShlLmhvdXIxMigpKSxcImhvdXItMjRcIjplPT5lLmhvdXIyNCgpLFwiaG91ci0yNC1wYWRcIjplPT55KGUuaG91cjI0KCkpLG1pbnV0ZTplPT5lLm1pbnV0ZSgpLFwibWludXRlLXBhZFwiOmU9PnkoZS5taW51dGUoKSksc2Vjb25kOmU9PmUuc2Vjb25kKCksXCJzZWNvbmQtcGFkXCI6ZT0+eShlLnNlY29uZCgpKSxtaWxsaXNlY29uZDplPT5lLm1pbGxpc2Vjb25kKCksXCJtaWxsaXNlY29uZC1wYWRcIjplPT55KGUubWlsbGlzZWNvbmQoKSwzKSxhbXBtOmU9PmUuYW1wbSgpLEFNUE06ZT0+ZS5hbXBtKCkudG9VcHBlckNhc2UoKSxxdWFydGVyOmU9PlwiUVwiK2UucXVhcnRlcigpLHNlYXNvbjplPT5lLnNlYXNvbigpLGVyYTplPT5lLmVyYSgpLGpzb246ZT0+ZS5qc29uKCksdGltZXpvbmU6ZT0+ZS50aW1lem9uZSgpLm5hbWUsb2Zmc2V0OmU9PnJlKGUpLG51bWVyaWM6ZT0+YCR7ZS55ZWFyKCl9LyR7eShlLm1vbnRoKCkrMSl9LyR7eShlLmRhdGUoKSl9YCxcIm51bWVyaWMtdXNcIjplPT5gJHt5KGUubW9udGgoKSsxKX0vJHt5KGUuZGF0ZSgpKX0vJHtlLnllYXIoKX1gLFwibnVtZXJpYy11a1wiOmU9PmAke3koZS5kYXRlKCkpfS8ke3koZS5tb250aCgpKzEpfS8ke2UueWVhcigpfWAsXCJtbS9kZFwiOmU9PmAke3koZS5tb250aCgpKzEpfS8ke3koZS5kYXRlKCkpfWAsaXNvOmU9PmAke2UuZm9ybWF0KFwiaXNvLXllYXJcIil9LSR7eShlLm1vbnRoKCkrMSl9LSR7eShlLmRhdGUoKSl9VCR7eShlLmgyNCgpKX06JHt5KGUubWludXRlKCkpfToke3koZS5zZWNvbmQoKSl9LiR7eShlLm1pbGxpc2Vjb25kKCksMyl9JHtyZShlKX1gLFwiaXNvLXNob3J0XCI6ZT0+e2NvbnN0IHQ9eShlLm1vbnRoKCkrMSksbj15KGUuZGF0ZSgpKTt2YXIgcjtyZXR1cm5gJHsocj1lLnllYXIoKSk+PTA/eShyLDQpOlwiLVwiK3kocj1NYXRoLmFicyhyKSw0KX0tJHt0fS0ke259YH0sXCJpc28tdXRjXCI6ZT0+bmV3IERhdGUoZS5lcG9jaCkudG9JU09TdHJpbmcoKSxcImlzby1mdWxsXCI6ZT0+e2xldCB0PWUuZm9ybWF0KFwiaXNvXCIpO2NvbnN0IG49ZS50aW1lem9uZSgpLm5hbWU7cmV0dXJuIG4mJih0Kz1gWyR7bn1dYCksdH0sc3FsOmU9PmAke2UuZm9ybWF0KFwiaXNvLXllYXJcIil9LSR7eShlLm1vbnRoKCkrMSl9LSR7eShlLmRhdGUoKSl9ICR7eShlLmgyNCgpKX06JHt5KGUubWludXRlKCkpfToke3koZS5zZWNvbmQoKSl9YCxuaWNlOmU9PmAke0UoKVtlLm1vbnRoKCldfSAke2coZS5kYXRlKCkpfSwgJHtlLnRpbWUoKX1gLFwibmljZS0yNFwiOmU9PmAke0UoKVtlLm1vbnRoKCldfSAke2coZS5kYXRlKCkpfSwgJHtlLmhvdXIyNCgpfToke3koZS5taW51dGUoKSl9YCxcIm5pY2UteWVhclwiOmU9PmAke0UoKVtlLm1vbnRoKCldfSAke2coZS5kYXRlKCkpfSwgJHtlLnllYXIoKX1gLFwibmljZS1kYXlcIjplPT5gJHtYKClbZS5kYXkoKV19ICR7YWUoRSgpW2UubW9udGgoKV0pfSAke2coZS5kYXRlKCkpfWAsXCJuaWNlLWZ1bGxcIjplPT5gJHtlLmRheU5hbWUoKX0gJHthZShlLm1vbnRoTmFtZSgpKX0gJHtnKGUuZGF0ZSgpKX0sICR7ZS50aW1lKCl9YCxcIm5pY2UtZnVsbC0yNFwiOmU9PmAke2UuZGF5TmFtZSgpfSAke2FlKGUubW9udGhOYW1lKCkpfSAke2coZS5kYXRlKCkpfSwgJHtlLmhvdXIyNCgpfToke3koZS5taW51dGUoKSl9YH0sc2U9e1wiZGF5LW5hbWVcIjpcImRheVwiLFwibW9udGgtbmFtZVwiOlwibW9udGhcIixcImlzbyA4NjAxXCI6XCJpc29cIixcImlzbyA5MDc1XCI6XCJzcWxcIixcInRpbWUtaDI0XCI6XCJ0aW1lLTI0XCIsXCJ0aW1lLTEyXCI6XCJ0aW1lXCIsXCJ0aW1lLWgxMlwiOlwidGltZVwiLHR6OlwidGltZXpvbmVcIixpYW5hOlwidGltZXpvbmVcIixcImRheS1udW1cIjpcImRheS1udW1iZXJcIixcIm1vbnRoLW51bVwiOlwibW9udGgtbnVtYmVyXCIsXCJtb250aC1pc29cIjpcImlzby1tb250aFwiLFwieWVhci1pc29cIjpcImlzby15ZWFyXCIsXCJuaWNlLXNob3J0XCI6XCJuaWNlXCIsXCJuaWNlLXNob3J0LTI0XCI6XCJuaWNlLTI0XCIsbWR5OlwibnVtZXJpYy11c1wiLGRteTpcIm51bWVyaWMtdWtcIix5bWQ6XCJudW1lcmljXCIsXCJ5eXl5L21tL2RkXCI6XCJudW1lcmljXCIsXCJtbS9kZC95eXl5XCI6XCJudW1lcmljLXVzXCIsXCJkZC9tbS95eXl5XCI6XCJudW1lcmljLXVzXCIsXCJsaXR0bGUtZW5kaWFuXCI6XCJudW1lcmljLXVrXCIsXCJiaWctZW5kaWFuXCI6XCJudW1lcmljXCIsXCJkYXktbmljZVwiOlwibmljZS1kYXlcIn07T2JqZWN0LmtleXMoc2UpLmZvckVhY2goZT0+b2VbZV09b2Vbc2VbZV1dKTtjb25zdCBpZT0oZSx0PVwiXCIpPT57aWYoITAhPT1lLmlzVmFsaWQoKSlyZXR1cm5cIlwiO2lmKG9lLmhhc093blByb3BlcnR5KHQpKXtsZXQgbj1vZVt0XShlKXx8XCJcIjtyZXR1cm5cImpzb25cIiE9PXQmJihuPVN0cmluZyhuKSxcImFtcG1cIiE9PXQudG9Mb3dlckNhc2UoKSYmKG49YWUobikpKSxufWlmKC0xIT09dC5pbmRleE9mKFwie1wiKSl7Y29uc3Qgbj0vXFx7KC4rPylcXH0vZztyZXR1cm4gdD10LnJlcGxhY2UobiwodCxuKT0+e2lmKFwiQU1QTVwiIT09KG49bi50cmltKCkpJiYobj1uLnRvTG93ZXJDYXNlKCkpLG9lLmhhc093blByb3BlcnR5KG4pKXtjb25zdCB0PVN0cmluZyhvZVtuXShlKSk7cmV0dXJuXCJhbXBtXCIhPT1uLnRvTG93ZXJDYXNlKCk/YWUodCk6dH1yZXR1cm5cIlwifSksdH1yZXR1cm4gZS5mb3JtYXQoXCJpc28tc2hvcnRcIil9LHVlPXtHOmU9PmUuZXJhKCksR0c6ZT0+ZS5lcmEoKSxHR0c6ZT0+ZS5lcmEoKSxHR0dHOmU9PlwiQURcIj09PWUuZXJhKCk/XCJBbm5vIERvbWluaVwiOlwiQmVmb3JlIENocmlzdFwiLHk6ZT0+ZS55ZWFyKCkseXk6ZT0+eShOdW1iZXIoU3RyaW5nKGUueWVhcigpKS5zdWJzdHIoMiw0KSkpLHl5eTplPT5lLnllYXIoKSx5eXl5OmU9PmUueWVhcigpLHl5eXl5OmU9PlwiMFwiK2UueWVhcigpLFE6ZT0+ZS5xdWFydGVyKCksUVE6ZT0+ZS5xdWFydGVyKCksUVFROmU9PmUucXVhcnRlcigpLFFRUVE6ZT0+ZS5xdWFydGVyKCksTTplPT5lLm1vbnRoKCkrMSxNTTplPT55KGUubW9udGgoKSsxKSxNTU06ZT0+ZS5mb3JtYXQoXCJtb250aC1zaG9ydFwiKSxNTU1NOmU9PmUuZm9ybWF0KFwibW9udGhcIiksdzplPT5lLndlZWsoKSx3dzplPT55KGUud2VlaygpKSxkOmU9PmUuZGF0ZSgpLGRkOmU9PnkoZS5kYXRlKCkpLEQ6ZT0+ZS5kYXlPZlllYXIoKSxERDplPT55KGUuZGF5T2ZZZWFyKCkpLERERDplPT55KGUuZGF5T2ZZZWFyKCksMyksRTplPT5lLmZvcm1hdChcImRheS1zaG9ydFwiKSxFRTplPT5lLmZvcm1hdChcImRheS1zaG9ydFwiKSxFRUU6ZT0+ZS5mb3JtYXQoXCJkYXktc2hvcnRcIiksRUVFRTplPT5lLmZvcm1hdChcImRheVwiKSxFRUVFRTplPT5lLmZvcm1hdChcImRheVwiKVswXSxlOmU9PmUuZGF5KCksZWU6ZT0+ZS5kYXkoKSxlZWU6ZT0+ZS5mb3JtYXQoXCJkYXktc2hvcnRcIiksZWVlZTplPT5lLmZvcm1hdChcImRheVwiKSxlZWVlZTplPT5lLmZvcm1hdChcImRheVwiKVswXSxhOmU9PmUuYW1wbSgpLnRvVXBwZXJDYXNlKCksYWE6ZT0+ZS5hbXBtKCkudG9VcHBlckNhc2UoKSxhYWE6ZT0+ZS5hbXBtKCkudG9VcHBlckNhc2UoKSxhYWFhOmU9PmUuYW1wbSgpLnRvVXBwZXJDYXNlKCksaDplPT5lLmgxMigpLGhoOmU9PnkoZS5oMTIoKSksSDplPT5lLmhvdXIoKSxISDplPT55KGUuaG91cigpKSxtOmU9PmUubWludXRlKCksbW06ZT0+eShlLm1pbnV0ZSgpKSxzOmU9PmUuc2Vjb25kKCksc3M6ZT0+eShlLnNlY29uZCgpKSxTU1M6ZT0+eShlLm1pbGxpc2Vjb25kKCksMyksQTplPT5lLmVwb2NoLWUuc3RhcnRPZihcImRheVwiKS5lcG9jaCx6OmU9PmUudGltZXpvbmUoKS5uYW1lLHp6OmU9PmUudGltZXpvbmUoKS5uYW1lLHp6ejplPT5lLnRpbWV6b25lKCkubmFtZSx6enp6OmU9PmUudGltZXpvbmUoKS5uYW1lLFo6ZT0+eihlLnRpbWV6b25lKCkuY3VycmVudC5vZmZzZXQpLFpaOmU9PnooZS50aW1lem9uZSgpLmN1cnJlbnQub2Zmc2V0KSxaWlo6ZT0+eihlLnRpbWV6b25lKCkuY3VycmVudC5vZmZzZXQpLFpaWlo6ZT0+eihlLnRpbWV6b25lKCkuY3VycmVudC5vZmZzZXQsXCI6XCIpfSxjZT0oZSx0LG4pPT57bGV0IHI9ZSxhPXQ7Zm9yKGxldCBvPTA7bzxuO28rPTEpdWVbcl09dWVbYV0scis9ZSxhKz10fTtjZShcInFcIixcIlFcIiw0KSxjZShcIkxcIixcIk1cIiw0KSxjZShcIllcIixcInlcIiw0KSxjZShcImNcIixcImVcIiw0KSxjZShcImtcIixcIkhcIiwyKSxjZShcIktcIixcImhcIiwyKSxjZShcIlNcIixcInNcIiwyKSxjZShcInZcIixcInpcIiw0KSxjZShcIlZcIixcIlpcIiw0KTtjb25zdCBoZT1bXCJ5ZWFyXCIsXCJzZWFzb25cIixcInF1YXJ0ZXJcIixcIm1vbnRoXCIsXCJ3ZWVrXCIsXCJkYXlcIixcInF1YXJ0ZXJIb3VyXCIsXCJob3VyXCIsXCJtaW51dGVcIl0sbGU9ZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUuY2xvbmUoKS5zdGFydE9mKHQpLHI9ZS5jbG9uZSgpLmVuZE9mKHQpLmVwb2NoLW4uZXBvY2gsYT0oZS5lcG9jaC1uLmVwb2NoKS9yO3JldHVybiBwYXJzZUZsb2F0KGEudG9GaXhlZCgyKSl9LG1lPShlLHQsbik9PntsZXQgcj0wO2ZvcihlPWUuY2xvbmUoKTtlLmlzQmVmb3JlKHQpOyllPWUuYWRkKDEsbikscis9MTtyZXR1cm4gZS5pc0FmdGVyKHQsbikmJihyLT0xKSxyfSxkZT0oZSx0LG4pPT5lLmlzQmVmb3JlKHQpP21lKGUsdCxuKTotMSptZSh0LGUsbiksZmU9ZnVuY3Rpb24oZSx0LG4pe3Q9dih0LGUpO2xldCByPSExO2lmKGUuaXNBZnRlcih0KSl7Y29uc3Qgbj1lO2U9dCx0PW4scj0hMH1sZXQgYT1mdW5jdGlvbihlLHQpe2NvbnN0IG49dC5lcG9jaC1lLmVwb2NoLHI9e21pbGxpc2Vjb25kczpuLHNlY29uZHM6cGFyc2VJbnQobi8xZTMsMTApfTtyLm1pbnV0ZXM9cGFyc2VJbnQoci5zZWNvbmRzLzYwLDEwKSxyLmhvdXJzPXBhcnNlSW50KHIubWludXRlcy82MCwxMCk7bGV0IGE9ZS5jbG9uZSgpO3JldHVybiByLnllYXJzPSgoZSx0KT0+e2xldCBuPXQueWVhcigpLWUueWVhcigpO3JldHVybihlPWUueWVhcih0LnllYXIoKSkpLmlzQWZ0ZXIodCkmJihuLT0xKSxufSkoYSx0KSxhPWUuYWRkKHIueWVhcnMsXCJ5ZWFyXCIpLHIubW9udGhzPTEyKnIueWVhcnMsYT1lLmFkZChyLm1vbnRocyxcIm1vbnRoXCIpLHIubW9udGhzKz1kZShhLHQsXCJtb250aFwiKSxyLnF1YXJ0ZXJzPTQqci55ZWFycyxyLnF1YXJ0ZXJzKz1wYXJzZUludChyLm1vbnRocyUxMi8zLDEwKSxyLndlZWtzPTUyKnIueWVhcnMsYT1lLmFkZChyLndlZWtzLFwid2Vla1wiKSxyLndlZWtzKz1kZShhLHQsXCJ3ZWVrXCIpLHIuZGF5cz03KnIud2Vla3MsYT1lLmFkZChyLmRheXMsXCJkYXlcIiksci5kYXlzKz1kZShhLHQsXCJkYXlcIikscn0oZSx0KTtyZXR1cm4gciYmKGE9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2godD0+e2VbdF0qPS0xfSksZX0oYSkpLG4/KG49ayhuKSwhMCE9PS9zJC8udGVzdChuKSYmKG4rPVwic1wiKSxcImRhdGVzXCI9PT1uJiYobj1cImRheXNcIiksYVtuXSk6YX0scGU9ZT0+TWF0aC5hYnMoZSl8fDA7bGV0IHllPXtzZWNvbmQ6XCJzZWNvbmRcIixzZWNvbmRzOlwic2Vjb25kc1wiLG1pbnV0ZTpcIm1pbnV0ZVwiLG1pbnV0ZXM6XCJtaW51dGVzXCIsaG91cjpcImhvdXJcIixob3VyczpcImhvdXJzXCIsZGF5OlwiZGF5XCIsZGF5czpcImRheXNcIixtb250aDpcIm1vbnRoXCIsbW9udGhzOlwibW9udGhzXCIseWVhcjpcInllYXJcIix5ZWFyczpcInllYXJzXCJ9O2Z1bmN0aW9uIGdlKGUpe3JldHVybiB5ZVtlXXx8XCJcIn1sZXQgYmU9XCJwYXN0XCIsa2U9XCJmdXR1cmVcIix3ZT1cInByZXNlbnRcIix2ZT1cIm5vd1wiLHplPVwiYWxtb3N0XCIsX2U9XCJvdmVyXCIsJGU9ZT0+YCR7ZX0gYWdvYCxqZT1lPT5gaW4gJHtlfWA7ZnVuY3Rpb24gT2UoZSl7cmV0dXJuICRlKGUpfWZ1bmN0aW9uIERlKGUpe3JldHVybiBqZShlKX1mdW5jdGlvbiBNZSgpe3JldHVybiB2ZX1jb25zdCBTZT17bW9udGhzOnthbG1vc3Q6MTAsb3Zlcjo0fSxkYXlzOnthbG1vc3Q6MjUsb3ZlcjoxMH0saG91cnM6e2FsbW9zdDoyMCxvdmVyOjh9LG1pbnV0ZXM6e2FsbW9zdDo1MCxvdmVyOjIwfSxzZWNvbmRzOnthbG1vc3Q6NTAsb3ZlcjoyMH19O2Z1bmN0aW9uIHFlKGUsdCl7cmV0dXJuIDE9PT1lP2UrXCIgXCIrZ2UodC5zbGljZSgwLC0xKSk6ZStcIiBcIitnZSh0KX1jb25zdCBOZT1mdW5jdGlvbihlKXtsZXQgdD1udWxsLG49bnVsbDtjb25zdCByPVtdLGE9W107cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKG8scyxpKT0+e2NvbnN0IHU9TWF0aC5hYnMoZVtvXSk7aWYoMD09PXUpcmV0dXJuO3IucHVzaCh1K29bMF0pO2NvbnN0IGM9cWUodSxvKTtpZihhLnB1c2goYyksIXQpe2lmKHQ9YyxuPWMscz40KXJldHVybjtjb25zdCByPWlbcysxXSxhPU1hdGguYWJzKGVbcl0pO2E+U2Vbcl0uYWxtb3N0Pyh0PXFlKHUrMSxvKSxuPXplK1wiIFwiK3QpOmE+U2Vbcl0ub3ZlciYmKG49X2UrXCIgXCIrYyl9fSkse3F1YWxpZmllZDpuLHJvdW5kZWQ6dCxhYmJyZXZpYXRlZDpyLGVuZ2xpc2hWYWx1ZXM6YX19LEllPShlLHQpPT57Y29uc3Qgbj1mdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5pc0JlZm9yZSh0KSxyPW4/dDplO2xldCBhPW4/ZTp0O2E9YS5jbG9uZSgpO2NvbnN0IG89e3llYXJzOjAsbW9udGhzOjAsZGF5czowLGhvdXJzOjAsbWludXRlczowLHNlY29uZHM6MH07cmV0dXJuIE9iamVjdC5rZXlzKG8pLmZvckVhY2goZT0+e2lmKGEuaXNTYW1lKHIsZSkpcmV0dXJuO2NvbnN0IHQ9YS5kaWZmKHIsZSk7YT1hLmFkZCh0LGUpLG9bZV09dH0pLG4mJk9iamVjdC5rZXlzKG8pLmZvckVhY2goZT0+ezAhPT1vW2VdJiYob1tlXSo9LTEpfSksb30oZSx0PXYodCxlKSk7aWYoITA9PT1PYmplY3Qua2V5cyhuKS5ldmVyeShlPT4hbltlXSkpcmV0dXJue2RpZmY6bixyb3VuZGVkOk1lKCkscXVhbGlmaWVkOk1lKCkscHJlY2lzZTpNZSgpLGFiYnJldmlhdGVkOltdLGlzbzpcIlAwWTBNMERUMEgwTTBTXCIsZGlyZWN0aW9uOndlfTtsZXQgcixhPWtlLHtyb3VuZGVkOm8scXVhbGlmaWVkOnN9PU5lKG4pO2NvbnN0e2VuZ2xpc2hWYWx1ZXM6aSxhYmJyZXZpYXRlZDp1fT1OZShuKTtyPWkuc3BsaWNlKDAsMikuam9pbihcIiwgXCIpLCEwPT09ZS5pc0FmdGVyKHQpPyhvPU9lKG8pLHM9T2Uocykscj1PZShyKSxhPWJlKToobz1EZShvKSxzPURlKHMpLHI9RGUocikpO2NvbnN0IGM9ZnVuY3Rpb24oZSl7bGV0IHQ9XCJQXCI7cmV0dXJuIHQrPXBlKGUueWVhcnMpK1wiWVwiLHQrPXBlKGUubW9udGhzKStcIk1cIix0Kz1wZShlLmRheXMpK1wiRFRcIix0Kz1wZShlLmhvdXJzKStcIkhcIix0Kz1wZShlLm1pbnV0ZXMpK1wiTVwiLHQrPXBlKGUuc2Vjb25kcykrXCJTXCIsdH0obik7cmV0dXJue2RpZmY6bixyb3VuZGVkOm8scXVhbGlmaWVkOnMscHJlY2lzZTpyLGFiYnJldmlhdGVkOnUsaXNvOmMsZGlyZWN0aW9uOmF9fTt2YXIgVGU9e25vcnRoOltbXCJzcHJpbmdcIiwyLDFdLFtcInN1bW1lclwiLDUsMV0sW1wiZmFsbFwiLDgsMV0sW1wiYXV0dW1uXCIsOCwxXSxbXCJ3aW50ZXJcIiwxMSwxXV0sc291dGg6W1tcImZhbGxcIiwyLDFdLFtcImF1dHVtblwiLDIsMV0sW1wid2ludGVyXCIsNSwxXSxbXCJzcHJpbmdcIiw4LDFdLFtcInN1bW1lclwiLDExLDFdXX0sQ2U9W251bGwsWzAsMV0sWzMsMV0sWzYsMV0sWzksMV1dO2NvbnN0IEVlPXtzZWNvbmQ6ZT0+KE4oZSx7bWlsbGlzZWNvbmQ6MH0pLGUpLG1pbnV0ZTplPT4oTihlLHtzZWNvbmQ6MCxtaWxsaXNlY29uZDowfSksZSkscXVhcnRlcmhvdXI6ZT0+e2NvbnN0IHQ9ZS5taW51dGVzKCk7cmV0dXJuIGU9dD49NDU/ZS5taW51dGVzKDQ1KTp0Pj0zMD9lLm1pbnV0ZXMoMzApOnQ+PTE1P2UubWludXRlcygxNSk6ZS5taW51dGVzKDApLE4oZSx7c2Vjb25kOjAsbWlsbGlzZWNvbmQ6MH0pLGV9LGhvdXI6ZT0+KE4oZSx7bWludXRlOjAsc2Vjb25kOjAsbWlsbGlzZWNvbmQ6MH0pLGUpLGRheTplPT4oTihlLHtob3VyOjAsbWludXRlOjAsc2Vjb25kOjAsbWlsbGlzZWNvbmQ6MH0pLGUpLHdlZWs6ZT0+e2NvbnN0IHQ9ZS5jbG9uZSgpO3JldHVybihlPWUuZGF5KGUuX3dlZWtTdGFydCkpLmlzQWZ0ZXIodCkmJihlPWUuc3VidHJhY3QoMSxcIndlZWtcIikpLE4oZSx7aG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2Vjb25kOjB9KSxlfSxtb250aDplPT4oTihlLHtkYXRlOjEsaG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2Vjb25kOjB9KSxlKSxxdWFydGVyOmU9Pntjb25zdCB0PWUucXVhcnRlcigpO3JldHVybiBDZVt0XSYmTihlLHttb250aDpDZVt0XVswXSxkYXRlOkNlW3RdWzFdLGhvdXI6MCxtaW51dGU6MCxzZWNvbmQ6MCxtaWxsaXNlY29uZDowfSksZX0sc2Vhc29uOmU9Pntjb25zdCB0PWUuc2Vhc29uKCk7bGV0IG49XCJub3J0aFwiO1wiU291dGhcIj09PWUuaGVtaXNwaGVyZSgpJiYobj1cInNvdXRoXCIpO2ZvcihsZXQgcj0wO3I8VGVbbl0ubGVuZ3RoO3IrKylpZihUZVtuXVtyXVswXT09PXQpe2xldCBhPWUueWVhcigpO3JldHVyblwid2ludGVyXCI9PT10JiZlLm1vbnRoKCk8MyYmKGEtPTEpLE4oZSx7eWVhcjphLG1vbnRoOlRlW25dW3JdWzFdLGRhdGU6VGVbbl1bcl1bMl0saG91cjowLG1pbnV0ZTowLHNlY29uZDowLG1pbGxpc2Vjb25kOjB9KSxlfXJldHVybiBlfSx5ZWFyOmU9PihOKGUse21vbnRoOjAsZGF0ZToxLGhvdXI6MCxtaW51dGU6MCxzZWNvbmQ6MCxtaWxsaXNlY29uZDowfSksZSksZGVjYWRlOmU9Pntjb25zdCB0PShlPWUuc3RhcnRPZihcInllYXJcIikpLnllYXIoKSxuPTEwKnBhcnNlSW50KHQvMTAsMTApO3JldHVybiBlPWUueWVhcihuKX0sY2VudHVyeTplPT57Y29uc3QgdD0oZT1lLnN0YXJ0T2YoXCJ5ZWFyXCIpKS55ZWFyKCksbj0xMDAqcGFyc2VJbnQodC8xMDAsMTApO3JldHVybiBlPWUueWVhcihuKX19O0VlLmRhdGU9RWUuZGF5O2NvbnN0IEFlPWZ1bmN0aW9uKGUsdCxuLHI9MSl7aWYoIXR8fCFuKXJldHVybltdO2lmKHQ9ayh0KSxuPWUuY2xvbmUoKS5zZXQobiksZS5pc0FmdGVyKG4pKXtjb25zdCB0PWU7ZT1uLG49dH1pZihlLmRpZmYobix0KTxyKXJldHVybltdO2xldCBhPWUuY2xvbmUoKTtpZihmdW5jdGlvbihlKXtyZXR1cm4hIVgoKS5maW5kKHQ9PnQ9PT1lKXx8ISFlZSgpLmZpbmQodD0+dD09PWUpfSh0KSlhPWEubmV4dCh0KSx0PVwid2Vla1wiO2Vsc2V7YS5zdGFydE9mKHQpLmlzQmVmb3JlKGUpJiYoYT1hLm5leHQodCkpfWNvbnN0IG89W107Zm9yKDthLmlzQmVmb3JlKG4pOylvLnB1c2goYSksYT1hLmFkZChyLHQpO3JldHVybiBvfSx4ZT1lPT57Y29uc3Qgbj1lLnRpbWV6b25lcztsZXQgcj1lLnR6O2lmKCExPT09bi5oYXNPd25Qcm9wZXJ0eShyKSYmKHI9bShlLnR6LG4pKSxudWxsPT09cilyZXR1cm4hMT09PWUuc2lsZW50JiZjb25zb2xlLndhcm4oXCJXYXJuOiBjb3VsZCBub3QgZmluZCBnaXZlbiBvciBsb2NhbCB0aW1lem9uZSAtICdcIitlLnR6K1wiJ1wiKSx7Y3VycmVudDp7ZXBvY2hTaGlmdDowfX07Y29uc3QgYT1uW3JdLG89e25hbWU6KHM9cixcIlV0Y1wiPT09KHM9KHM9KHM9KHM9KHM9KHM9KHM9KHM9c1swXS50b1VwcGVyQ2FzZSgpK3Muc3Vic3RyKDEpKS5yZXBsYWNlKC9bL18tXShbYS16XSkvZ2ksZT0+ZS50b1VwcGVyQ2FzZSgpKSkucmVwbGFjZSgvXyhvZnxlcylfL2ksZT0+ZS50b0xvd2VyQ2FzZSgpKSkucmVwbGFjZSgvXFwvZ210L2ksXCIvR01UXCIpKS5yZXBsYWNlKC9cXC91dGMvaSxcIi9VVENcIikpLnJlcGxhY2UoL1xcL0R1bW9udGR1cnZpbGxlJC9pLFwiL0R1bW9udERVcnZpbGxlXCIpKS5yZXBsYWNlKC9cXC9NY211cmRvJC9pLFwiL01jTXVyZG9cIikpLnJlcGxhY2UoL1xcL1BvcnQtYXUtcHJpbmNlJC9pLFwiL1BvcnQtYXUtUHJpbmNlXCIpKSYmKHM9XCJVVENcIikscyksaGFzRHN0OkJvb2xlYW4oYS5kc3QpLGRlZmF1bHRfb2Zmc2V0OmEub2Zmc2V0LGhlbWlzcGhlcmU6XCJzXCI9PT1hLmhlbT9cIlNvdXRoXCI6XCJOb3J0aFwiLGN1cnJlbnQ6e319O3ZhciBzLGk7aWYoby5oYXNEc3Qpe2NvbnN0IGU9KGk9YS5kc3QpP2kuc3BsaXQoXCItPlwiKTpbXTtvLmNoYW5nZT17c3RhcnQ6ZVswXSxiYWNrOmVbMV19fWNvbnN0IHU9YS5vZmZzZXQ7bGV0IGM9dTtyZXR1cm4hMD09PW8uaGFzRHN0JiYoYz1cIk5vcnRoXCI9PT1vLmhlbWlzcGhlcmU/dS0xOmEub2Zmc2V0KzEpLCExPT09by5oYXNEc3Q/KG8uY3VycmVudC5vZmZzZXQ9dSxvLmN1cnJlbnQuaXNEU1Q9ITEpOiEwPT09dChlLmVwb2NoLG8uY2hhbmdlLnN0YXJ0LG8uY2hhbmdlLmJhY2ssdSxjKT8oby5jdXJyZW50Lm9mZnNldD11LG8uY3VycmVudC5pc0RTVD1cIk5vcnRoXCI9PT1vLmhlbWlzcGhlcmUpOihvLmN1cnJlbnQub2Zmc2V0PWMsby5jdXJyZW50LmlzRFNUPVwiU291dGhcIj09PW8uaGVtaXNwaGVyZSksb30sWWU9W1wiY2VudHVyeVwiLFwiZGVjYWRlXCIsXCJ5ZWFyXCIsXCJtb250aFwiLFwiZGF0ZVwiLFwiZGF5XCIsXCJob3VyXCIsXCJtaW51dGVcIixcInNlY29uZFwiLFwibWlsbGlzZWNvbmRcIl0sRmU9e3NldDpmdW5jdGlvbihlLHQpe2xldCBuPXRoaXMuY2xvbmUoKTtyZXR1cm4gbj1KKG4sZSksdCYmKG4udHo9bSh0LG4udGltZXpvbmVzKSksbn0sdGltZXpvbmU6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09ZSl7Y29uc3QgdD10aGlzLmpzb24oKTtyZXR1cm4gdC50aW1lem9uZT1lLHRoaXMuc2V0KHQsZSl9cmV0dXJuIHhlKHRoaXMpfSxpc0RTVDpmdW5jdGlvbigpe3JldHVybiB4ZSh0aGlzKS5jdXJyZW50LmlzRFNUfSxoYXNEU1Q6ZnVuY3Rpb24oKXtyZXR1cm4geGUodGhpcykuaGFzRHN0fSxvZmZzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNjAqeGUodGhpcykuY3VycmVudC5vZmZzZXR9LGhlbWlzcGhlcmU6ZnVuY3Rpb24oKXtyZXR1cm4geGUodGhpcykuaGVtaXNwaGVyZX0sZm9ybWF0OmZ1bmN0aW9uKGUpe3JldHVybiBpZSh0aGlzLGUpfSx1bml4Rm10OmZ1bmN0aW9uKGUpe3JldHVybigoZSx0KT0+e2xldCBuPXQuc3BsaXQoXCJcIik7cmV0dXJuIG49ZnVuY3Rpb24oZSl7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0xKWlmKFwiJ1wiPT09ZVt0XSlmb3IobGV0IG49dCsxO248ZS5sZW5ndGg7bis9MSl7aWYoZVtuXSYmKGVbdF0rPWVbbl0pLFwiJ1wiPT09ZVtuXSl7ZVtuXT1udWxsO2JyZWFrfWVbbl09bnVsbH1yZXR1cm4gZS5maWx0ZXIoZT0+ZSl9KG4pLG49ZnVuY3Rpb24oZSl7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0xKXtjb25zdCBuPWVbdF07Zm9yKGxldCByPXQrMTtyPGUubGVuZ3RoJiZlW3JdPT09bjtyKz0xKWVbdF0rPWVbcl0sZVtyXT1udWxsfXJldHVybihlPWUuZmlsdGVyKGU9PmUpKS5tYXAoZT0+KFwiJydcIj09PWUmJihlPVwiJ1wiKSxlKSl9KG4pLG4ucmVkdWNlKCh0LG4pPT4odm9pZCAwIT09dWVbbl0/dCs9dWVbbl0oZSl8fFwiXCI6KC9eJy4rJyQvLnRlc3QobikmJihuPW4ucmVwbGFjZSgvJy9nLFwiXCIpKSx0Kz1uKSx0KSxcIlwiKX0pKHRoaXMsZSl9LHN0YXJ0T2Y6ZnVuY3Rpb24oZSl7cmV0dXJuKChlLHQpPT57bGV0IG49ZS5jbG9uZSgpO3JldHVybiB0PWsodCksRWVbdF0/RWVbdF0obik6XCJzdW1tZXJcIj09PXR8fFwid2ludGVyXCI9PT10PyhuPW4uc2Vhc29uKHQpLEVlLnNlYXNvbihuKSk6bn0pKHRoaXMsZSl9LGVuZE9mOmZ1bmN0aW9uKGUpe3JldHVybigoZSx0KT0+e2xldCBuPWUuY2xvbmUoKTtyZXR1cm4gdD1rKHQpLEVlW3RdPyhuPUVlW3RdKG4pLG49bi5hZGQoMSx0KSxuPW4uc3VidHJhY3QoMSxcIm1pbGxpc2Vjb25kXCIpLG4pOm59KSh0aGlzLGUpfSxsZWFwWWVhcjpmdW5jdGlvbigpe3JldHVybiBkKHRoaXMueWVhcigpKX0scHJvZ3Jlc3M6ZnVuY3Rpb24oZSl7cmV0dXJuKChlLHQpPT57aWYodClyZXR1cm4gdD1rKHQpLGxlKGUsdCk7Y29uc3Qgbj17fTtyZXR1cm4gaGUuZm9yRWFjaCh0PT57blt0XT1sZShlLHQpfSksbn0pKHRoaXMsZSl9LG5lYXJlc3Q6ZnVuY3Rpb24oZSl7cmV0dXJuKChlLHQpPT57Y29uc3Qgbj1lLnByb2dyZXNzKCk7cmV0dXJuXCJxdWFydGVyaG91clwiPT09KHQ9ayh0KSkmJih0PVwicXVhcnRlckhvdXJcIiksdm9pZCAwIT09blt0XT8oblt0XT4uNSYmKGU9ZS5hZGQoMSx0KSksZT1lLnN0YXJ0T2YodCkpOiExPT09ZS5zaWxlbnQmJmNvbnNvbGUud2FybihcIm5vIGtub3duIHVuaXQgJ1wiK3QrXCInXCIpLGV9KSh0aGlzLGUpfSxkaWZmOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZlKHRoaXMsZSx0KX0sc2luY2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGV8fChlPXRoaXMuY2xvbmUoKS5zZXQoKSksSWUodGhpcyxlKX0sbmV4dDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQoMSxlKS5zdGFydE9mKGUpfSxsYXN0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnN1YnRyYWN0KDEsZSkuc3RhcnRPZihlKX0saXNWYWxpZDpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuZXBvY2gmJjAhPT10aGlzLmVwb2NoKSYmIWlzTmFOKHRoaXMuZC5nZXRUaW1lKCkpfSxnb3RvOmZ1bmN0aW9uKGUpe2NvbnN0IHQ9dGhpcy5jbG9uZSgpO3JldHVybiB0LnR6PW0oZSx0LnRpbWV6b25lcyksdH0sZXZlcnk6ZnVuY3Rpb24oZSx0LG4pe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBlJiZcInN0cmluZ1wiPT10eXBlb2YgdCl7Y29uc3Qgbj10O3Q9ZSxlPW59cmV0dXJuIEFlKHRoaXMsZSx0LG4pfSxpc0F3YWtlOmZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLmhvdXIoKTtyZXR1cm4hKGU8OHx8ZT4yMil9LGlzQXNsZWVwOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNBd2FrZSgpfSxkYXlzSW5Nb250aDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLm1vbnRoKCkpe2Nhc2UgMDpjYXNlIDI6Y2FzZSA0OmNhc2UgNjpjYXNlIDc6Y2FzZSA5OmNhc2UgMTE6cmV0dXJuIDMxO2Nhc2UgMTpyZXR1cm4gdGhpcy5sZWFwWWVhcigpPzI5OjI4O2Nhc2UgMzpjYXNlIDU6Y2FzZSA4OmNhc2UgMTA6cmV0dXJuIDMwO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBNb250aCBzdGF0ZS5cIil9fSxsb2c6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5sb2coXCJcIiksY29uc29sZS5sb2coaWUodGhpcyxcIm5pY2Utc2hvcnRcIikpLHRoaXN9LGxvZ1llYXI6ZnVuY3Rpb24oKXtyZXR1cm4gY29uc29sZS5sb2coXCJcIiksY29uc29sZS5sb2coaWUodGhpcyxcImZ1bGwtc2hvcnRcIikpLHRoaXN9LGpzb246ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09ZSl7bGV0IHQ9dGhpcy5jbG9uZSgpO2UudGltZXpvbmUmJih0LnR6PWUudGltZXpvbmUpO2ZvcihsZXQgbj0wO248WWUubGVuZ3RoO24rKyl7Y29uc3Qgcj1ZZVtuXTt2b2lkIDAhPT1lW3JdJiYodD10W3JdKGVbcl0pKX1yZXR1cm4gdH1jb25zdCB0PVllLnJlZHVjZSgoZSx0KT0+KGVbdF09dGhpc1t0XSgpLGUpLHt9KTtyZXR1cm4gdC5vZmZzZXQ9dGhpcy50aW1lem9uZSgpLmN1cnJlbnQub2Zmc2V0LHQudGltZXpvbmU9dGhpcy50eix0fSxkZWJ1ZzpmdW5jdGlvbigpe2NvbnN0IGU9dGhpcy50aW1lem9uZSgpO2xldCB0PXRoaXMuZm9ybWF0KFwiTU1cIikrXCIgXCIrdGhpcy5mb3JtYXQoXCJkYXRlLW9yZGluYWxcIikrXCIgXCIrdGhpcy55ZWFyKCk7cmV0dXJuIHQrPVwiXFxuICAgICAtIFwiK3RoaXMuZm9ybWF0KFwidGltZVwiKSxjb25zb2xlLmxvZyhcIlxcblxcblwiLHQrXCJcXG4gICAgIC0gXCIrZS5uYW1lK1wiIChcIitlLmN1cnJlbnQub2Zmc2V0K1wiKVwiKSx0aGlzfSxmcm9tOmZ1bmN0aW9uKGUpe3JldHVybihlPXRoaXMuY2xvbmUoKS5zZXQoZSkpLnNpbmNlKHRoaXMpfSxmcm9tTm93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5zZXQoRGF0ZS5ub3coKSkuc2luY2UodGhpcyl9LHdlZWtTdGFydDpmdW5jdGlvbihlKXtpZihcIm51bWJlclwiPT10eXBlb2YgZSlyZXR1cm4gdGhpcy5fd2Vla1N0YXJ0PWUsdGhpcztpZihcInN0cmluZ1wiPT10eXBlb2YgZSl7ZT1lLnRvTG93ZXJDYXNlKCkudHJpbSgpO2xldCB0PVgoKS5pbmRleE9mKGUpOy0xPT09dCYmKHQ9ZWUoKS5pbmRleE9mKGUpKSwtMT09PXQmJih0PTEpLHRoaXMuX3dlZWtTdGFydD10fWVsc2UgY29uc29sZS53YXJuKFwiU3BhY2V0aW1lIEVycm9yOiBDYW5ub3QgdW5kZXJzdGFuZCAud2Vla1N0YXJ0KCkgaW5wdXQ6XCIsZSk7cmV0dXJuIHRoaXN9fTtGZS5pbkRTVD1GZS5pc0RTVCxGZS5yb3VuZD1GZS5uZWFyZXN0LEZlLmVhY2g9RmUuZXZlcnk7Y29uc3QgUGU9ZT0+KFwic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT1wYXJzZUludChlLDEwKSksZSksTGU9W1wieWVhclwiLFwibW9udGhcIixcImRhdGVcIixcImhvdXJcIixcIm1pbnV0ZVwiLFwic2Vjb25kXCIsXCJtaWxsaXNlY29uZFwiXSxVZT0oZSx0LG4pPT57Y29uc3Qgcj1MZS5pbmRleE9mKG4pLGE9TGUuc2xpY2UocixMZS5sZW5ndGgpO2ZvcihsZXQgbj0wO248YS5sZW5ndGg7bisrKXtjb25zdCByPXRbYVtuXV0oKTtlW2Fbbl1dKHIpfXJldHVybiBlfSxCZT1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4hMD09PW4mJmUuaXNCZWZvcmUodCk/ZT1lLmFkZCgxLHIpOiExPT09biYmZS5pc0FmdGVyKHQpJiYoZT1lLm1pbnVzKDEscikpLGV9LEhlPWZ1bmN0aW9uKGUsdCxuKXt0PVBlKHQpO2NvbnN0IHI9ZS5jbG9uZSgpLGE9KGUubWludXRlKCktdCkqTS5taW51dGU7cmV0dXJuIGUuZXBvY2gtPWEsVWUoZSxyLFwic2Vjb25kXCIpLChlPUJlKGUscixuLFwiaG91clwiKSkuZXBvY2h9LFplPWZ1bmN0aW9uKGUsdCxuKXsodD1QZSh0KSk+PTI0P3Q9MjQ6dDwwJiYodD0wKTtjb25zdCByPWUuY2xvbmUoKTtsZXQgYT1lLmhvdXIoKS10LG89YSpNLmhvdXI7cmV0dXJuIGUuZXBvY2gtPW8sZS5kYXRlKCkhPT1yLmRhdGUoKSYmKGU9ci5jbG9uZSgpLGE+MSYmKGEtPTEpLGE8MSYmKGErPTEpLG89YSpNLmhvdXIsZS5lcG9jaC09byksTihlLHtob3VyOnR9KSxVZShlLHIsXCJtaW51dGVcIiksKGU9QmUoZSxyLG4sXCJkYXlcIikpLmVwb2NofSxRZT1mdW5jdGlvbihlLHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiYvXidbMC05XXsyfSQvLnRlc3QodCkmJih0PXQucmVwbGFjZSgvJy8sXCJcIikudHJpbSgpLHQ9KHQ9TnVtYmVyKHQpKT4zMD8xOTAwK3Q6MmUzK3QpLHQ9UGUodCksTihlLHt5ZWFyOnR9KSxlLmVwb2NofSxHZT1mdW5jdGlvbihlLHQsbil7Y29uc3Qgcj1lLmNsb25lKCk7cmV0dXJuIDE9PT0odD1QZSh0KSkmJlwiZGVjZW1iZXJcIj09PWUubW9udGhOYW1lKCkmJmUuZGF0ZSgpPj0yOSYmMT09PWUud2VlaygpP2U6KFwiZGVjZW1iZXJcIj09PShlPShlPShlPWUubW9udGgoMCkpLmRhdGUoMSkpLmRheShcIm1vbmRheVwiLCExKSkubW9udGhOYW1lKCkmJmUuZGF0ZSgpPDI5JiYoZT1lLmFkZCgxLFwid2Vla1wiKSksdC09MSxlPWUuYWRkKHQsXCJ3ZWVrc1wiKSxlPUJlKGUscixuLFwieWVhclwiKSl9O2xldCBWZT1cImFtXCIsV2U9XCJwbVwiO2NvbnN0IEplPXttaWxsaXNlY29uZDpmdW5jdGlvbihlKXtpZih2b2lkIDAhPT1lKXtjb25zdCB0PXRoaXMuY2xvbmUoKTtyZXR1cm4gdC5lcG9jaD1mdW5jdGlvbihlLHQpe3Q9UGUodCk7Y29uc3Qgbj1lLm1pbGxpc2Vjb25kKCktdDtyZXR1cm4gZS5lcG9jaC1ufSh0LGUpLHR9cmV0dXJuIHRoaXMuZC5nZXRNaWxsaXNlY29uZHMoKX0sc2Vjb25kOmZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09ZSl7Y29uc3Qgbj10aGlzLmNsb25lKCk7cmV0dXJuIG4uZXBvY2g9ZnVuY3Rpb24oZSx0LG4pe3Q9UGUodCk7Y29uc3Qgcj1lLmNsb25lKCksYT0oZS5zZWNvbmQoKS10KSpNLnNlY29uZDtyZXR1cm4gZS5lcG9jaD1lLmVwb2NoLWEsKGU9QmUoZSxyLG4sXCJtaW51dGVcIikpLmVwb2NofShuLGUsdCksbn1yZXR1cm4gdGhpcy5kLmdldFNlY29uZHMoKX0sbWludXRlOmZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09ZSl7Y29uc3Qgbj10aGlzLmNsb25lKCk7cmV0dXJuIG4uZXBvY2g9SGUobixlLHQpLG59cmV0dXJuIHRoaXMuZC5nZXRNaW51dGVzKCl9LGhvdXI6ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXRoaXMuZDtpZih2b2lkIDAhPT1lKXtjb25zdCBuPXRoaXMuY2xvbmUoKTtyZXR1cm4gbi5lcG9jaD1aZShuLGUsdCksbn1yZXR1cm4gbi5nZXRIb3VycygpfSxob3VyRmxvYXQ6ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDAhPT1lKXtjb25zdCBuPXRoaXMuY2xvbmUoKTtsZXQgcj1lJTE7cio9NjA7Y29uc3QgYT1wYXJzZUludChlLDEwKTtyZXR1cm4gbi5lcG9jaD1aZShuLGEsdCksbi5lcG9jaD1IZShuLHIsdCksbn1jb25zdCBuPXRoaXMuZCxyPW4uZ2V0SG91cnMoKTtsZXQgYT1uLmdldE1pbnV0ZXMoKTtyZXR1cm4gYS89NjAscithfSxob3VyMTI6ZnVuY3Rpb24oZSx0KXtjb25zdCBuPXRoaXMuZDtpZih2b2lkIDAhPT1lKXtjb25zdCBuPXRoaXMuY2xvbmUoKSxyPShlPVwiXCIrZSkubWF0Y2goL14oWzAtOV0rKShhbXxwbSkkLyk7aWYocil7bGV0IGU9cGFyc2VJbnQoclsxXSwxMCk7XCJwbVwiPT09clsyXSYmKGUrPTEyKSxuLmVwb2NoPVplKG4sZSx0KX1yZXR1cm4gbn1sZXQgcj1uLmdldEhvdXJzKCk7cmV0dXJuIHI+MTImJihyLT0xMiksMD09PXImJihyPTEyKSxyfSx0aW1lOmZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09ZSl7Y29uc3Qgbj10aGlzLmNsb25lKCk7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLnRyaW0oKSxuLmVwb2NoPWZ1bmN0aW9uKGUsdCxuKXtsZXQgcj10Lm1hdGNoKC8oWzAtOV17MSwyfSlbOmhdKFswLTldezEsMn0pKDpbMC05XXsxLDJ9KT8gPyhhbXxwbSk/Lyk7aWYoIXIpe2lmKHI9dC5tYXRjaCgvKFswLTldezEsMn0pID8oYW18cG0pLyksIXIpcmV0dXJuIG51bGw7ci5zcGxpY2UoMiwwLFwiMFwiKSxyLnNwbGljZSgzLDAsXCJcIil9bGV0IGE9ITEsbz1wYXJzZUludChyWzFdLDEwKSxzPXBhcnNlSW50KHJbMl0sMTApO3M+PTYwJiYocz01OSksbz4xMiYmKGE9ITApLCExPT09YSYmKFwiYW1cIj09PXJbNF0mJjEyPT09byYmKG89MCksXCJwbVwiPT09cls0XSYmbzwxMiYmKG8rPTEyKSksclszXT1yWzNdfHxcIlwiLHJbM109clszXS5yZXBsYWNlKC86LyxcIlwiKTtjb25zdCBpPXBhcnNlSW50KHJbM10sMTApfHwwLHU9ZS5jbG9uZSgpO3JldHVybiBlPShlPShlPShlPWUuaG91cihvKSkubWludXRlKHMpKS5zZWNvbmQoaSkpLm1pbGxpc2Vjb25kKDApLChlPUJlKGUsdSxuLFwiZGF5XCIpKS5lcG9jaH0obixlLHQpLG59cmV0dXJuYCR7dGhpcy5oMTIoKX06JHt5KHRoaXMubWludXRlKCkpfSR7dGhpcy5hbXBtKCl9YH0sYW1wbTpmdW5jdGlvbihlLHQpe2xldCBuPVZlLHI9dGhpcy5ob3VyKCk7aWYocj49MTImJihuPVdlKSxcInN0cmluZ1wiIT10eXBlb2YgZSlyZXR1cm4gbjtjb25zdCBhPXRoaXMuY2xvbmUoKTtyZXR1cm4gZT1lLnRvTG93ZXJDYXNlKCkudHJpbSgpLHI+PTEyJiZcImFtXCI9PT1lPyhyLT0xMixhLmhvdXIocix0KSk6cjwxMiYmXCJwbVwiPT09ZT8ocis9MTIsYS5ob3VyKHIsdCkpOmF9LGRheVRpbWU6ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDAhPT1lKXtjb25zdCBuPXttb3JuaW5nOlwiNzowMFwiLGJyZWFrZmFzdDpcIjc6MDBcIixub29uOlwiMTI6MDBcIixsdW5jaDpcIjEyOjAwXCIsYWZ0ZXJub29uOlwiMTQ6MDBcIixldmVuaW5nOlwiMTg6MDBcIixkaW5uZXI6XCIxODowMFwiLG5pZ2h0OlwiMjM6MDBcIixtaWRuaWdodDpcIjAwOjAwXCJ9O2xldCByPXRoaXMuY2xvbmUoKTtyZXR1cm4gZT0oZT1lfHxcIlwiKS50b0xvd2VyQ2FzZSgpLCEwPT09bi5oYXNPd25Qcm9wZXJ0eShlKSYmKHI9ci50aW1lKG5bZV0sdCkpLHJ9Y29uc3Qgbj10aGlzLmhvdXIoKTtyZXR1cm4gbjw2P1wibmlnaHRcIjpuPDEyP1wibW9ybmluZ1wiOm48MTc/XCJhZnRlcm5vb25cIjpuPDIyP1wiZXZlbmluZ1wiOlwibmlnaHRcIn0saXNvOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lP3RoaXMuc2V0KGUpOnRoaXMuZm9ybWF0KFwiaXNvXCIpfSxpc29GdWxsOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lP3RoaXMuc2V0KGUpOnRoaXMuZm9ybWF0KFwiaXNvLWZ1bGxcIil9LGVwb2NoU2Vjb25kczpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09ZT8odGhpcy5lcG9jaD0xZTMqZSx0aGlzKTpNYXRoLmZsb29yKHRoaXMuZXBvY2gvMWUzKX19LEtlPXtkYXRlOmZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09ZSl7Y29uc3Qgbj10aGlzLmNsb25lKCk7cmV0dXJuKGU9cGFyc2VJbnQoZSwxMCkpJiYobi5lcG9jaD1mdW5jdGlvbihlLHQsbil7aWYoKHQ9UGUodCkpPjI4KXtjb25zdCBuPWUubW9udGgoKTtsZXQgcj1JW25dOzE9PT1uJiYyOT09PXQmJmQoZS55ZWFyKCkpJiYocj0yOSksdD5yJiYodD1yKX10PD0wJiYodD0xKTtjb25zdCByPWUuY2xvbmUoKTtyZXR1cm4gTihlLHtkYXRlOnR9KSwoZT1CZShlLHIsbixcIm1vbnRoXCIpKS5lcG9jaH0obixlLHQpKSxufXJldHVybiB0aGlzLmQuZ2V0RGF0ZSgpfSxkYXk6ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDA9PT1lKXJldHVybiB0aGlzLmQuZ2V0RGF5KCk7Y29uc3Qgbj10aGlzLmNsb25lKCk7bGV0IHI9ZTtcInN0cmluZ1wiPT10eXBlb2YgZSYmKGU9ZS50b0xvd2VyQ2FzZSgpLHRlLmhhc093blByb3BlcnR5KGUpP3I9dGVbZV06KHI9WCgpLmluZGV4T2YoZSksLTE9PT1yJiYocj1lZSgpLmluZGV4T2YoZSkpKSk7bGV0IGE9dGhpcy5kLmdldERheSgpLXI7ITA9PT10JiZhPjAmJihhLT03KSwhMT09PXQmJmE8MCYmKGErPTcpO2NvbnN0IG89dGhpcy5zdWJ0cmFjdChhLFwiZGF5c1wiKTtyZXR1cm4gTihvLHtob3VyOm4uaG91cigpLG1pbnV0ZTpuLm1pbnV0ZSgpLHNlY29uZDpuLnNlY29uZCgpfSksb30sZGF5TmFtZTpmdW5jdGlvbihlLHQpe2lmKHZvaWQgMD09PWUpcmV0dXJuIGVlKClbdGhpcy5kYXkoKV07bGV0IG49dGhpcy5jbG9uZSgpO3JldHVybiBuPW4uZGF5KGUsdCksbn19LFJlPWU9PmU9KGU9KGU9ZS5taW51dGUoMCkpLnNlY29uZCgwKSkubWlsbGlzZWNvbmQoMSksWGU9ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09ZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPWUucmVwbGFjZSgvKFswLTldKSh0aHxyZHxzdHxuZCkvLFwiJDFcIiksZT1OdW1iZXIoZSksaXNOYU4oZSkpKXJldHVybiBjb25zb2xlLndhcm4oXCJTcGFjZXRpbWU6IEludmFsaWQgbWlsbGVubml1bSBpbnB1dFwiKSx0aGlzO2U+MCYmKGUtPTEpO2xldCB0PTFlMyplO3JldHVybiAwPT09dCYmKHQ9MSksdGhpcy55ZWFyKHQpfWxldCB0PU1hdGguZmxvb3IodGhpcy55ZWFyKCkvMWUzKTtyZXR1cm4gdD49MCYmKHQrPTEpLHR9LGV0PXtkYXlPZlllYXI6ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDAhPT1lKXtjb25zdCBuPXRoaXMuY2xvbmUoKTtyZXR1cm4gbi5lcG9jaD1mdW5jdGlvbihlLHQsbil7dD1QZSh0KTtjb25zdCByPWUuY2xvbmUoKTtyZXR1cm4odC09MSk8PTA/dD0wOnQ+PTM2NSYmKHQ9ZChlLnllYXIoKSk/MzY1OjM2NCksZT0oZT1lLnN0YXJ0T2YoXCJ5ZWFyXCIpKS5hZGQodCxcImRheVwiKSxVZShlLHIsXCJob3VyXCIpLChlPUJlKGUscixuLFwieWVhclwiKSkuZXBvY2h9KG4sZSx0KSxufWxldCBuPTA7Y29uc3Qgcj10aGlzLmQuZ2V0TW9udGgoKTtsZXQgYTtmb3IobGV0IGU9MTtlPD1yO2UrKylhPW5ldyBEYXRlLGEuc2V0RGF0ZSgxKSxhLnNldEZ1bGxZZWFyKHRoaXMuZC5nZXRGdWxsWWVhcigpKSxhLnNldEhvdXJzKDEpLGEuc2V0TWludXRlcygxKSxhLnNldE1vbnRoKGUpLGEuc2V0SG91cnMoLTIpLG4rPWEuZ2V0RGF0ZSgpO3JldHVybiBuK3RoaXMuZC5nZXREYXRlKCl9LHdlZWs6ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDAhPT1lKXtsZXQgbj10aGlzLmNsb25lKCk7cmV0dXJuIG49R2UobixlLHQpLG49UmUobiksbn1jb25zdCBuPXRoaXMuZXBvY2g7bGV0IHI9dGhpcy5jbG9uZSgpO2lmKFwiZGVjZW1iZXJcIj09PXIubW9udGhOYW1lKCkmJnIuZGF0ZSgpPj0yOSl7aWYoR2Uoci5hZGQoMTUsXCJkYXlzXCIpLDEsITEpLmVwb2NoPD1yLmVwb2NoKXJldHVybiAxfWlmKHI9ci5tb250aCgwKSxyPXIuZGF0ZSgxKSxyPVJlKHIpLHI9ci5kYXkoXCJtb25kYXlcIiwhMSksXCJkZWNlbWJlclwiPT09ci5tb250aE5hbWUoKSYmci5kYXRlKCk8MjkmJihyPXIuYWRkKDEsXCJ3ZWVrXCIpKSxyPXIubWludXMoMixcImhvdXJzXCIpLHIuZXBvY2g+bilyZXR1cm4gMTtsZXQgYT0wO2NvbnN0IG89NCp0aGlzLm1vbnRoKCk7Zm9yKHIuZXBvY2grPU0ud2VlaypvLGErPW87YTw9NTI7YSsrKXtpZihyLmVwb2NoPm4pcmV0dXJuIGE7cj1yLmFkZCgxLFwid2Vla1wiKX1yZXR1cm4gNTJ9LG1vbnRoOmZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09ZSl7Y29uc3Qgbj10aGlzLmNsb25lKCk7cmV0dXJuIG4uZXBvY2g9ZnVuY3Rpb24oZSx0LG4pe1wic3RyaW5nXCI9PXR5cGVvZiB0JiYoXCJzZXB0XCI9PT10JiYodD1cInNlcFwiKSx0PUEoKVt0LnRvTG93ZXJDYXNlKCldKSwodD1QZSh0KSk+PTEyJiYodD0xMSksdDw9MCYmKHQ9MCk7bGV0IHI9ZS5kYXRlKCk7cj5JW3RdJiYocj1JW3RdKTtjb25zdCBhPWUuY2xvbmUoKTtyZXR1cm4gTihlLHttb250aDp0LGQ6cn0pLChlPUJlKGUsYSxuLFwieWVhclwiKSkuZXBvY2h9KG4sZSx0KSxufXJldHVybiB0aGlzLmQuZ2V0TW9udGgoKX0sbW9udGhOYW1lOmZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09ZSl7bGV0IG49dGhpcy5jbG9uZSgpO3JldHVybiBuPW4ubW9udGgoZSx0KSxufXJldHVybiBDW3RoaXMubW9udGgoKV19LHF1YXJ0ZXI6ZnVuY3Rpb24oZSx0KXtpZih2b2lkIDAhPT1lJiYoXCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPWUucmVwbGFjZSgvXnEvaSxcIlwiKSxlPXBhcnNlSW50KGUsMTApKSxDZVtlXSkpe2xldCBuPXRoaXMuY2xvbmUoKTtjb25zdCByPUNlW2VdWzBdO3JldHVybiBuPW4ubW9udGgocix0KSxuPW4uZGF0ZSgxLHQpLG49bi5zdGFydE9mKFwiZGF5XCIpLG59Y29uc3Qgbj10aGlzLmQuZ2V0TW9udGgoKTtmb3IobGV0IGU9MTtlPENlLmxlbmd0aDtlKyspaWYobjxDZVtlXVswXSlyZXR1cm4gZS0xO3JldHVybiA0fSxzZWFzb246ZnVuY3Rpb24oZSx0KXtsZXQgbj1cIm5vcnRoXCI7aWYoXCJTb3V0aFwiPT09dGhpcy5oZW1pc3BoZXJlKCkmJihuPVwic291dGhcIiksdm9pZCAwIT09ZSl7bGV0IHI9dGhpcy5jbG9uZSgpO2ZvcihsZXQgYT0wO2E8VGVbbl0ubGVuZ3RoO2ErKyllPT09VGVbbl1bYV1bMF0mJihyPXIubW9udGgoVGVbbl1bYV1bMV0sdCkscj1yLmRhdGUoMSkscj1yLnN0YXJ0T2YoXCJkYXlcIikpO3JldHVybiByfWNvbnN0IHI9dGhpcy5kLmdldE1vbnRoKCk7Zm9yKGxldCBlPTA7ZTxUZVtuXS5sZW5ndGgtMTtlKyspaWYocj49VGVbbl1bZV1bMV0mJnI8VGVbbl1bZSsxXVsxXSlyZXR1cm4gVGVbbl1bZV1bMF07cmV0dXJuXCJub3J0aFwiPT09bj9cIndpbnRlclwiOlwic3VtbWVyXCJ9LHllYXI6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09ZSl7Y29uc3QgdD10aGlzLmNsb25lKCk7cmV0dXJuIHQuZXBvY2g9UWUodCxlKSx0fXJldHVybiB0aGlzLmQuZ2V0RnVsbFllYXIoKX0sZXJhOmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PWUpe2NvbnN0IHQ9dGhpcy5jbG9uZSgpO2U9ZS50b0xvd2VyQ2FzZSgpO2NvbnN0IG49dC5kLmdldEZ1bGxZZWFyKCk7cmV0dXJuXCJiY1wiPT09ZSYmbj4wJiYodC5lcG9jaD1RZSh0LC0xKm4pKSxcImFkXCI9PT1lJiZuPDAmJih0LmVwb2NoPVFlKHQsLTEqbikpLHR9cmV0dXJuIHRoaXMuZC5nZXRGdWxsWWVhcigpPDA/XCJCQ1wiOlwiQURcIn0sZGVjYWRlOmZ1bmN0aW9uKGUpe2lmKHZvaWQgMCE9PWUpe2lmKCEoZT0oZT0oZT1TdHJpbmcoZSkpLnJlcGxhY2UoLyhbMC05XSknP3MkLyxcIiQxXCIpKS5yZXBsYWNlKC8oWzAtOV0pKHRofHJkfHN0fG5kKS8sXCIkMVwiKSkpcmV0dXJuIGNvbnNvbGUud2FybihcIlNwYWNldGltZTogSW52YWxpZCBkZWNhZGUgaW5wdXRcIiksdGhpczsyPT09ZS5sZW5ndGgmJi9bMC05XVswLTldLy50ZXN0KGUpJiYoZT1cIjE5XCIrZSk7bGV0IHQ9TnVtYmVyKGUpO3JldHVybiBpc05hTih0KT90aGlzOih0PTEwKk1hdGguZmxvb3IodC8xMCksdGhpcy55ZWFyKHQpKX1yZXR1cm4gdGhpcy5zdGFydE9mKFwiZGVjYWRlXCIpLnllYXIoKX0sY2VudHVyeTpmdW5jdGlvbihlKXtpZih2b2lkIDAhPT1lKXtcInN0cmluZ1wiPT10eXBlb2YgZSYmKGU9KGU9KGU9ZS5yZXBsYWNlKC8oWzAtOV0pKHRofHJkfHN0fG5kKS8sXCIkMVwiKSkucmVwbGFjZSgvKFswLTldKykgPyhiXFwuP2NcXC4/fGFcXC4/ZFxcLj8pL2ksKGUsdCxuKT0+KG4ubWF0Y2goL2JcXC4/Y1xcLj8vaSkmJih0PVwiLVwiK3QpLHQpKSkucmVwbGFjZSgvYyQvLFwiXCIpKTtsZXQgdD1OdW1iZXIoZSk7cmV0dXJuIGlzTmFOKGUpPyhjb25zb2xlLndhcm4oXCJTcGFjZXRpbWU6IEludmFsaWQgY2VudHVyeSBpbnB1dFwiKSx0aGlzKTooMD09PXQmJih0PTEpLHQ9dD49MD8xMDAqKHQtMSk6MTAwKih0KzEpLHRoaXMueWVhcih0KSl9bGV0IHQ9dGhpcy5zdGFydE9mKFwiY2VudHVyeVwiKS55ZWFyKCk7cmV0dXJuIHQ9TWF0aC5mbG9vcih0LzEwMCksdDwwP3QtMTp0KzF9LG1pbGxlbml1bTpYZSxtaWxsZW5uaXVtOlhlfSx0dD1PYmplY3QuYXNzaWduKHt9LEplLEtlLGV0KTt0dC5taWxsaXNlY29uZHM9dHQubWlsbGlzZWNvbmQsdHQuc2Vjb25kcz10dC5zZWNvbmQsdHQubWludXRlcz10dC5taW51dGUsdHQuaG91cnM9dHQuaG91cix0dC5ob3VyMjQ9dHQuaG91cix0dC5oMTI9dHQuaG91cjEyLHR0LmgyND10dC5ob3VyMjQsdHQuZGF5cz10dC5kYXk7Y29uc3QgbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMT09PWUmJmQodCk/Mjk6SVtlXX0scnQ9KGUsdCk9PntpZihlLm1vbnRoPjApe2NvbnN0IG49cGFyc2VJbnQoZS5tb250aC8xMiwxMCk7ZS55ZWFyPXQueWVhcigpK24sZS5tb250aD1lLm1vbnRoJTEyfWVsc2UgaWYoZS5tb250aDwwKXtjb25zdCBuPU1hdGguYWJzKGUubW9udGgpO2xldCByPXBhcnNlSW50KG4vMTIsMTApO24lMTIhPTAmJihyKz0xKSxlLnllYXI9dC55ZWFyKCktcixlLm1vbnRoPWUubW9udGglMTIsZS5tb250aD1lLm1vbnRoKzEyLDEyPT09ZS5tb250aCYmKGUubW9udGg9MCl9cmV0dXJuIGV9LGF0PShlLHQsbik9PntsZXQgcj10LnllYXIoKSxhPXQubW9udGgoKSxvPW50KGEscik7Zm9yKDtuPm87KW4tPW8sYSs9MSxhPj0xMiYmKGEtPTEyLHIrPTEpLG89bnQoYSxyKTtyZXR1cm4gZS5tb250aD1hLGUuZGF0ZT1uLGV9LG90PShlLHQsbik9PntlLnllYXI9dC55ZWFyKCksZS5tb250aD10Lm1vbnRoKCk7Y29uc3Qgcj10LmRhdGUoKTtmb3IoZS5kYXRlPXItTWF0aC5hYnMobik7ZS5kYXRlPDE7KXtlLm1vbnRoLT0xLGUubW9udGg8MCYmKGUubW9udGg9MTEsZS55ZWFyLT0xKTtjb25zdCB0PW50KGUubW9udGgsZS55ZWFyKTtlLmRhdGUrPXR9cmV0dXJuIGV9LHN0PVtcIm1pbGxpc2Vjb25kXCIsXCJzZWNvbmRcIixcIm1pbnV0ZVwiLFwiaG91clwiLFwiZGF0ZVwiLFwibW9udGhcIl0saXQ9e3NlY29uZDpzdC5zbGljZSgwLDEpLG1pbnV0ZTpzdC5zbGljZSgwLDIpLHF1YXJ0ZXJob3VyOnN0LnNsaWNlKDAsMiksaG91cjpzdC5zbGljZSgwLDMpLGRhdGU6c3Quc2xpY2UoMCw0KSxtb250aDpzdC5zbGljZSgwLDQpLHF1YXJ0ZXI6c3Quc2xpY2UoMCw0KSxzZWFzb246c3Quc2xpY2UoMCw0KSx5ZWFyOnN0LGRlY2FkZTpzdCxjZW50dXJ5OnN0fTtpdC53ZWVrPWl0LmhvdXIsaXQuc2Vhc29uPWl0LmRhdGUsaXQucXVhcnRlcj1pdC5kYXRlO2NvbnN0IHV0PXt5ZWFyOiEwLHF1YXJ0ZXI6ITAsc2Vhc29uOiEwLG1vbnRoOiEwLHdlZWs6ITAsZGF0ZTohMH0sY3Q9e21vbnRoOiEwLHF1YXJ0ZXI6ITAsc2Vhc29uOiEwLHllYXI6ITB9LGh0PXttaWxsaXNlY29uZDplPT5lLmVwb2NoLHNlY29uZDplPT5bZS55ZWFyKCksZS5tb250aCgpLGUuZGF0ZSgpLGUuaG91cigpLGUubWludXRlKCksZS5zZWNvbmQoKV0uam9pbihcIi1cIiksbWludXRlOmU9PltlLnllYXIoKSxlLm1vbnRoKCksZS5kYXRlKCksZS5ob3VyKCksZS5taW51dGUoKV0uam9pbihcIi1cIiksaG91cjplPT5bZS55ZWFyKCksZS5tb250aCgpLGUuZGF0ZSgpLGUuaG91cigpXS5qb2luKFwiLVwiKSxkYXk6ZT0+W2UueWVhcigpLGUubW9udGgoKSxlLmRhdGUoKV0uam9pbihcIi1cIiksd2VlazplPT5bZS55ZWFyKCksZS53ZWVrKCldLmpvaW4oXCItXCIpLG1vbnRoOmU9PltlLnllYXIoKSxlLm1vbnRoKCldLmpvaW4oXCItXCIpLHF1YXJ0ZXI6ZT0+W2UueWVhcigpLGUucXVhcnRlcigpXS5qb2luKFwiLVwiKSx5ZWFyOmU9PmUueWVhcigpfTtodC5kYXRlPWh0LmRheTtsZXQgbHQ9YTtjb25zdCBtdD1mdW5jdGlvbihlLG4scj17fSl7dGhpcy5lcG9jaD1udWxsLHRoaXMudHo9bShuLGx0KSx0aGlzLnNpbGVudD12b2lkIDA9PT1yLnNpbGVudHx8ci5zaWxlbnQsdGhpcy5icml0aXNoPXIuZG15fHxyLmJyaXRpc2gsdGhpcy5fd2Vla1N0YXJ0PTEsdm9pZCAwIT09ci53ZWVrU3RhcnQmJih0aGlzLl93ZWVrU3RhcnQ9ci53ZWVrU3RhcnQpLHRoaXMuX3RvZGF5PXt9LHZvaWQgMCE9PXIudG9kYXkmJih0aGlzLl90b2RheT1yLnRvZGF5KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcImRcIix7Z2V0OmZ1bmN0aW9uKCl7Y29uc3QgZT0oZT0+e2NvbnN0IG49ZS50aW1lem9uZXNbZS50el07aWYodm9pZCAwPT09bilyZXR1cm4gY29uc29sZS53YXJuKFwiV2FybmluZzogY291bGRuJ3QgZmluZCB0aW1lem9uZSBcIitlLnR6KSwwO2lmKHZvaWQgMD09PW4uZHN0KXJldHVybiBuLm9mZnNldDtjb25zdCByPW4ub2Zmc2V0O2xldCBhPW4ub2Zmc2V0KzE7XCJuXCI9PT1uLmhlbSYmKGE9ci0xKTtjb25zdCBvPW4uZHN0LnNwbGl0KFwiLT5cIik7cmV0dXJuITA9PT10KGUuZXBvY2gsb1swXSxvWzFdLHIsYSk/cjphfSkodGhpcyk7bGV0IG49KG5ldyBEYXRlKHRoaXMuZXBvY2gpLmdldFRpbWV6b25lT2Zmc2V0KCl8fDApKzYwKmU7bj02MCpuKjFlMztjb25zdCByPXRoaXMuZXBvY2grbjtyZXR1cm4gbmV3IERhdGUocil9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJ0aW1lem9uZXNcIix7Z2V0OigpPT5sdCxzZXQ6ZT0+KGx0PWUsZSl9KTtjb25zdCBhPUoodGhpcyxlKTt0aGlzLmVwb2NoPWEuZXBvY2gsYS50eiYmKHRoaXMudHo9YS50eil9O3ZhciBkdDtPYmplY3Qua2V5cyhGZSkuZm9yRWFjaChlPT57bXQucHJvdG90eXBlW2VdPUZlW2VdfSksbXQucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtdCh0aGlzLmVwb2NoLHRoaXMudHose3NpbGVudDp0aGlzLnNpbGVudCx3ZWVrU3RhcnQ6dGhpcy5fd2Vla1N0YXJ0LHRvZGF5OnRoaXMuX3RvZGF5LHBhcnNlcnM6dGhpcy5wYXJzZXJzfSl9LG10LnByb3RvdHlwZS50b0xvY2FsRGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvTmF0aXZlRGF0ZSgpfSxtdC5wcm90b3R5cGUudG9OYXRpdmVEYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZXBvY2gpfSxkdD1tdCxPYmplY3Qua2V5cyh0dCkuZm9yRWFjaChlPT57ZHQucHJvdG90eXBlW2VdPXR0W2VdfSksKGU9PntlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSx0KXtsZXQgbj10aGlzLmNsb25lKCk7aWYoIXR8fDA9PT1lKXJldHVybiBuO2NvbnN0IHI9dGhpcy5jbG9uZSgpO2lmKFwibWlsbGlzZWNvbmRcIj09PSh0PWsodCkpKXJldHVybiBuLmVwb2NoKz1lLG47XCJmb3J0bmlnaHRcIj09PXQmJihlKj0yLHQ9XCJ3ZWVrXCIpLE1bdF0/bi5lcG9jaCs9TVt0XSplOlwid2Vla1wiPT09dHx8XCJ3ZWVrZW5kXCI9PT10P24uZXBvY2grPU0uZGF5Kig3KmUpOlwicXVhcnRlclwiPT09dHx8XCJzZWFzb25cIj09PXQ/bi5lcG9jaCs9TS5tb250aCooMyplKTpcInF1YXJ0ZXJob3VyXCI9PT10JiYobi5lcG9jaCs9MTUqTS5taW51dGUqZSk7bGV0IGE9e307aWYoaXRbdF0mJml0W3RdLmZvckVhY2goZT0+e2FbZV09cltlXSgpfSksdXRbdF0pe2NvbnN0IGU9ci50aW1lem9uZSgpLmN1cnJlbnQub2Zmc2V0LW4udGltZXpvbmUoKS5jdXJyZW50Lm9mZnNldDtuLmVwb2NoKz0zNjAwKmUqMWUzfWlmKFwibW9udGhcIj09PXQmJihhLm1vbnRoPXIubW9udGgoKStlLGE9cnQoYSxyKSksXCJ3ZWVrXCI9PT10KXtjb25zdCB0PXIuZGF0ZSgpKzcqZTt0PD0yOCYmdD4xJiYoYS5kYXRlPXQpfWlmKFwid2Vla2VuZFwiPT09dCYmXCJzYXR1cmRheVwiIT09bi5kYXlOYW1lKCkpbj1uLmRheShcInNhdHVyZGF5XCIsITApO2Vsc2UgaWYoXCJkYXRlXCI9PT10KXtpZihlPDApYT1vdChhLHIsZSk7ZWxzZXtjb25zdCB0PXIuZGF0ZSgpK2U7YT1hdChhLHIsdCl9MCE9PWUmJnIuaXNTYW1lKG4sXCJkYXlcIikmJihhLmRhdGU9ci5kYXRlKCkrZSl9ZWxzZSBpZihcInF1YXJ0ZXJcIj09PXQpe2lmKGEubW9udGg9ci5tb250aCgpKzMqZSxhLnllYXI9ci55ZWFyKCksYS5tb250aDwwKXtjb25zdCBlPU1hdGguZmxvb3IoYS5tb250aC8xMiksdD1hLm1vbnRoKzEyKk1hdGguYWJzKGUpO2EubW9udGg9dCxhLnllYXIrPWV9ZWxzZSBpZihhLm1vbnRoPj0xMil7Y29uc3QgZT1NYXRoLmZsb29yKGEubW9udGgvMTIpO2EubW9udGg9YS5tb250aCUxMixhLnllYXIrPWV9YS5kYXRlPXIuZGF0ZSgpfWVsc2UgaWYoXCJ5ZWFyXCI9PT10KXtjb25zdCB0PXIueWVhcigpK2UsYT1uLnllYXIoKTtpZihhPHQpe2NvbnN0IHQ9TWF0aC5mbG9vcihlLzQpfHwxO24uZXBvY2grPU1hdGguYWJzKE0uZGF5KnQpfWVsc2UgaWYoYT50KXtjb25zdCB0PU1hdGguZmxvb3IoZS80KXx8MTtuLmVwb2NoKz1NLmRheSp0fX1lbHNlXCJkZWNhZGVcIj09PXQ/YS55ZWFyPW4ueWVhcigpKzEwOlwiY2VudHVyeVwiPT09dCYmKGEueWVhcj1uLnllYXIoKSsxMDApO2lmKGN0W3RdKXtjb25zdCBlPXZvaWQgMCE9PWEueWVhcj9hLnllYXI6ci55ZWFyKCksdD1udChhLm1vbnRoLGUpO2EuZGF0ZT1yLmRhdGUoKSxhLmRhdGU+dCYmKGEuZGF0ZT10KX1yZXR1cm4gT2JqZWN0LmtleXMoYSkubGVuZ3RoPjEmJk4obixhKSxufSxlLnByb3RvdHlwZS5zdWJ0cmFjdD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmNsb25lKCkuYWRkKC0xKmUsdCl9LGUucHJvdG90eXBlLm1pbnVzPWUucHJvdG90eXBlLnN1YnRyYWN0LGUucHJvdG90eXBlLnBsdXM9ZS5wcm90b3R5cGUuYWRkfSkobXQpLChlPT57ZS5wcm90b3R5cGUuaXNTYW1lPWZ1bmN0aW9uKHQsbixyPSEwKXtjb25zdCBhPXRoaXM7aWYoIW4pcmV0dXJuIG51bGw7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJlwib2JqZWN0XCI9PXR5cGVvZiBuKXtjb25zdCBlPXQ7dD1uLG49ZX1yZXR1cm5cInN0cmluZ1wiIT10eXBlb2YgdCYmXCJudW1iZXJcIiE9dHlwZW9mIHR8fCh0PW5ldyBlKHQsdGhpcy50aW1lem9uZS5uYW1lKSksbj1uLnJlcGxhY2UoL3MkLyxcIlwiKSwhMD09PXImJmEudHohPT10LnR6JiYoKHQ9dC5jbG9uZSgpKS50ej1hLnR6KSxodFtuXT9odFtuXShhKT09PWh0W25dKHQpOm51bGx9fSkobXQpLChlPT57Y29uc3QgdD17aXNBZnRlcjpmdW5jdGlvbihlKXtjb25zdCB0PXcoZT12KGUsdGhpcykpO3JldHVybiBudWxsPT09dD9udWxsOnRoaXMuZXBvY2g+dH0saXNCZWZvcmU6ZnVuY3Rpb24oZSl7Y29uc3QgdD13KGU9dihlLHRoaXMpKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDp0aGlzLmVwb2NoPHR9LGlzRXF1YWw6ZnVuY3Rpb24oZSl7Y29uc3QgdD13KGU9dihlLHRoaXMpKTtyZXR1cm4gbnVsbD09PXQ/bnVsbDp0aGlzLmVwb2NoPT09dH0saXNCZXR3ZWVuOmZ1bmN0aW9uKGUsdCxuPSExKXtlPXYoZSx0aGlzKSx0PXYodCx0aGlzKTtjb25zdCByPXcoZSk7aWYobnVsbD09PXIpcmV0dXJuIG51bGw7Y29uc3QgYT13KHQpO3JldHVybiBudWxsPT09YT9udWxsOm4/dGhpcy5pc0JldHdlZW4oZSx0KXx8dGhpcy5pc0VxdWFsKGUpfHx0aGlzLmlzRXF1YWwodCk6cjx0aGlzLmVwb2NoJiZ0aGlzLmVwb2NoPGF9fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKG49PntlLnByb3RvdHlwZVtuXT10W25dfSl9KShtdCksKGU9Pntjb25zdCB0PXtpMThuOmZ1bmN0aW9uKGUpe3ZhciB0LG4scjtyZXR1cm4gcChlLmRheXMpJiYodD1lLmRheXMsSz10LnNob3J0fHxLLFI9dC5sb25nfHxSKSxwKGUubW9udGhzKSYmZnVuY3Rpb24oZSl7VD1lLnNob3J0fHxULEM9ZS5sb25nfHxDfShlLm1vbnRocykscj1lLnVzZVRpdGxlQ2FzZSxcIltvYmplY3QgQm9vbGVhbl1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKSYmKG49ZS51c2VUaXRsZUNhc2UsbmU9bikscChlLmFtcG0pJiZmdW5jdGlvbihlKXtWZT1lLmFtfHxWZSxXZT1lLnBtfHxXZX0oZS5hbXBtKSxwKGUuZGlzdGFuY2UpJiZmdW5jdGlvbihlKXskZT1lLnBhc3REaXN0YW5jZXx8JGUsamU9ZS5mdXR1cmVEaXN0YW5jZXx8amUsYmU9ZS5wYXN0fHxiZSxrZT1lLmZ1dHVyZXx8a2Usd2U9ZS5wcmVzZW50fHx3ZSx2ZT1lLm5vd3x8dmUsemU9ZS5hbG1vc3R8fHplLF9lPWUub3Zlcnx8X2V9KGUuZGlzdGFuY2UpLHAoZS51bml0cykmJmZ1bmN0aW9uKGU9e30pe3llPXtzZWNvbmQ6ZS5zZWNvbmR8fHllLnNlY29uZCxzZWNvbmRzOmUuc2Vjb25kc3x8eWUuc2Vjb25kcyxtaW51dGU6ZS5taW51dGV8fHllLm1pbnV0ZSxtaW51dGVzOmUubWludXRlc3x8eWUubWludXRlcyxob3VyOmUuaG91cnx8eWUuaG91cixob3VyczplLmhvdXJzfHx5ZS5ob3VycyxkYXk6ZS5kYXl8fHllLmRheSxkYXlzOmUuZGF5c3x8eWUuZGF5cyxtb250aDplLm1vbnRofHx5ZS5tb250aCxtb250aHM6ZS5tb250aHN8fHllLm1vbnRocyx5ZWFyOmUueWVhcnx8eWUueWVhcix5ZWFyczplLnllYXJzfHx5ZS55ZWFyc319KGUudW5pdHMpLHRoaXN9fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKG49PntlLnByb3RvdHlwZVtuXT10W25dfSl9KShtdCk7Y29uc3QgZnQ9KGUsdCxuKT0+bmV3IG10KGUsdCxuKSxwdD1mdW5jdGlvbihlKXtjb25zdCB0PWUuX3RvZGF5fHx7fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChuPT57ZT1lW25dKHRbbl0pfSksZX07ZnQubm93PShlLHQpPT57bGV0IG49bmV3IG10KChuZXcgRGF0ZSkuZ2V0VGltZSgpLGUsdCk7cmV0dXJuIG49cHQobiksbn0sZnQudG9kYXk9KGUsdCk9PntsZXQgbj1uZXcgbXQoKG5ldyBEYXRlKS5nZXRUaW1lKCksZSx0KTtyZXR1cm4gbj1wdChuKSxuLnN0YXJ0T2YoXCJkYXlcIil9LGZ0LnRvbW9ycm93PShlLHQpPT57bGV0IG49bmV3IG10KChuZXcgRGF0ZSkuZ2V0VGltZSgpLGUsdCk7cmV0dXJuIG49cHQobiksbi5hZGQoMSxcImRheVwiKS5zdGFydE9mKFwiZGF5XCIpfSxmdC55ZXN0ZXJkYXk9KGUsdCk9PntsZXQgbj1uZXcgbXQoKG5ldyBEYXRlKS5nZXRUaW1lKCksZSx0KTtyZXR1cm4gbj1wdChuKSxuLnN1YnRyYWN0KDEsXCJkYXlcIikuc3RhcnRPZihcImRheVwiKX0sZnQuZnJvbVVuaXhTZWNvbmRzPShlLHQsbik9Pm5ldyBtdCgxZTMqZSx0LG4pLGZ0LmV4dGVuZD1mdW5jdGlvbihlPXt9KXtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57bXQucHJvdG90eXBlW3RdPWVbdF19KSx0aGlzfSxmdC50aW1lem9uZXM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IG10KS50aW1lem9uZXN9LGZ0Lm1heD1mdW5jdGlvbihlLHQpe2NvbnN0IG49bmV3IG10KG51bGwsZSx0KTtyZXR1cm4gbi5lcG9jaD04NjRlMTMsbn0sZnQubWluPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1uZXcgbXQobnVsbCxlLHQpO3JldHVybiBuLmVwb2NoPS04NjRlMTMsbn0sZnQud2hlcmVJdHM9KGUsdCk9PntsZXQgbj1uZXcgbXQobnVsbCkscj1uZXcgbXQobnVsbCk7bj1uLnRpbWUoZSkscj10P3IudGltZSh0KTpuLmFkZCg1OSxcIm1pbnV0ZXNcIik7Y29uc3QgYT1uLmhvdXIoKSxvPXIuaG91cigpO3JldHVybiBPYmplY3Qua2V5cyhuLnRpbWV6b25lcykuZmlsdGVyKGU9PntpZigtMT09PWUuaW5kZXhPZihcIi9cIikpcmV0dXJuITE7Y29uc3QgdD1uZXcgbXQobnVsbCxlKSxzPXQuaG91cigpO3JldHVybiBzPj1hJiZzPD1vJiYoIShzPT09YSYmdC5taW51dGUoKTxuLm1pbnV0ZSgpKSYmIShzPT09byYmdC5taW51dGUoKT5yLm1pbnV0ZSgpKSl9KX0sZnQudmVyc2lvbj1cIjcuMTMuMFwiLGZ0LnBsdWdpbj1mdC5leHRlbmQ7ZXhwb3J0e2Z0IGFzIGRlZmF1bHR9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/spacetime/builds/spacetime.mjs\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
; |