From 123cc427943eeaca8c9cc96b7f66f564689f1748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Inge=20J=C3=B8rgensen?= Date: Wed, 19 Apr 2023 04:22:04 +0200 Subject: [PATCH] Convert PageForm components to TypeScript --- app/assets/builds/pages_core/admin-dist.js | 82 +++----- .../builds/pages_core/admin-dist.js.map | 12 +- .../{Attachments.jsx => Attachments.tsx} | 20 +- .../Attachments/{List.jsx => List.tsx} | 56 +++--- ...ateRangeSelect.jsx => DateRangeSelect.tsx} | 31 ++- ...{DateTimeSelect.jsx => DateTimeSelect.tsx} | 61 +++--- .../{ImageGrid.jsx => ImageGrid.tsx} | 26 +-- .../ImageGrid/{Grid.jsx => Grid.tsx} | 92 +++++---- app/javascript/components/ImageUploader.tsx | 4 +- .../{LabelledField.jsx => LabelledField.tsx} | 23 +-- .../components/{PageForm.jsx => PageForm.tsx} | 44 +++-- .../PageForm/{Block.jsx => Block.tsx} | 28 +-- .../PageForm/{Content.jsx => Content.tsx} | 17 +- .../PageForm/{Dates.jsx => Dates.tsx} | 15 +- .../PageForm/{Files.jsx => Files.tsx} | 17 +- .../PageForm/{Form.jsx => Form.tsx} | 27 +-- app/javascript/components/PageForm/Images.jsx | 25 --- app/javascript/components/PageForm/Images.tsx | 23 +++ .../{LocaleLinks.jsx => LocaleLinks.tsx} | 17 +- .../PageForm/{Metadata.jsx => Metadata.tsx} | 17 +- .../PageForm/{Options.jsx => Options.tsx} | 27 ++- ...ageDescription.jsx => PageDescription.tsx} | 25 ++- .../{PathSegment.jsx => PathSegment.tsx} | 22 +-- .../components/PageForm/TabPanel.jsx | 27 --- .../components/PageForm/TabPanel.tsx | 22 +++ app/javascript/components/PageForm/usePage.js | 85 --------- app/javascript/components/PageForm/usePage.ts | 119 ++++++++++++ .../{RichTextArea.jsx => RichTextArea.tsx} | 178 +++++++++--------- app/javascript/components/drag.ts | 4 +- app/javascript/components/drag/types.ts | 4 +- .../components/drag/useDragUploader.ts | 13 +- app/javascript/types.ts | 72 +++++++ 32 files changed, 654 insertions(+), 581 deletions(-) rename app/javascript/components/{Attachments.jsx => Attachments.tsx} (65%) rename app/javascript/components/Attachments/{List.jsx => List.tsx} (77%) rename app/javascript/components/{DateRangeSelect.jsx => DateRangeSelect.tsx} (74%) rename app/javascript/components/{DateTimeSelect.jsx => DateTimeSelect.tsx} (69%) rename app/javascript/components/{ImageGrid.jsx => ImageGrid.tsx} (72%) rename app/javascript/components/ImageGrid/{Grid.jsx => Grid.tsx} (77%) rename app/javascript/components/{LabelledField.jsx => LabelledField.tsx} (65%) rename app/javascript/components/{PageForm.jsx => PageForm.tsx} (80%) rename app/javascript/components/PageForm/{Block.jsx => Block.tsx} (79%) rename app/javascript/components/PageForm/{Content.jsx => Content.tsx} (77%) rename app/javascript/components/PageForm/{Dates.jsx => Dates.tsx} (87%) rename app/javascript/components/PageForm/{Files.jsx => Files.tsx} (63%) rename app/javascript/components/PageForm/{Form.jsx => Form.tsx} (63%) delete mode 100644 app/javascript/components/PageForm/Images.jsx create mode 100644 app/javascript/components/PageForm/Images.tsx rename app/javascript/components/PageForm/{LocaleLinks.jsx => LocaleLinks.tsx} (63%) rename app/javascript/components/PageForm/{Metadata.jsx => Metadata.tsx} (82%) rename app/javascript/components/PageForm/{Options.jsx => Options.tsx} (89%) rename app/javascript/components/PageForm/{PageDescription.jsx => PageDescription.tsx} (62%) rename app/javascript/components/PageForm/{PathSegment.jsx => PathSegment.tsx} (73%) delete mode 100644 app/javascript/components/PageForm/TabPanel.jsx create mode 100644 app/javascript/components/PageForm/TabPanel.tsx delete mode 100644 app/javascript/components/PageForm/usePage.js create mode 100644 app/javascript/components/PageForm/usePage.ts rename app/javascript/components/{RichTextArea.jsx => RichTextArea.tsx} (54%) diff --git a/app/assets/builds/pages_core/admin-dist.js b/app/assets/builds/pages_core/admin-dist.js index 1afd1062..a6bc27f5 100644 --- a/app/assets/builds/pages_core/admin-dist.js +++ b/app/assets/builds/pages_core/admin-dist.js @@ -1,80 +1,40 @@ -<<<<<<< HEAD -(()=>{var kO=Object.create;var Da=Object.defineProperty,NO=Object.defineProperties,OO=Object.getOwnPropertyDescriptor,PO=Object.getOwnPropertyDescriptors,DO=Object.getOwnPropertyNames,ay=Object.getOwnPropertySymbols,IO=Object.getPrototypeOf,sy=Object.prototype.hasOwnProperty,AO=Object.prototype.propertyIsEnumerable;var ly=(e,t,n)=>t in e?Da(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,J=(e,t)=>{for(var n in t||(t={}))sy.call(t,n)&&ly(e,n,t[n]);if(ay)for(var n of ay(t))AO.call(t,n)&&ly(e,n,t[n]);return e},Ne=(e,t)=>NO(e,PO(t)),LO=e=>Da(e,"__esModule",{value:!0});var Le=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),MO=(e,t)=>{for(var n in t)Da(e,n,{get:t[n],enumerable:!0})},FO=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of DO(t))!sy.call(e,a)&&(n||a!=="default")&&Da(e,a,{get:()=>t[a],enumerable:!(i=OO(t,a))||i.enumerable});return e},K=(e,t)=>FO(LO(Da(e!=null?kO(IO(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var cy=Le((uy,Ws)=>{(function(){var e=this;(function(){(function(){this.Rails={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",buttonClickSelector:{selector:"button[data-remote]:not([form]), button[data-confirm]:not([form])",exclude:"form button"},inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form:not([data-turbo=true])",formInputClickSelector:"form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",formDisableSelector:"input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",formEnableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",fileInputSelector:"input[name][type=file]:not([disabled])",linkDisableSelector:"a[data-disable-with], a[data-disable]",buttonDisableSelector:"button[data-remote][data-disable-with], button[data-remote][data-disable]"}}).call(this)}).call(e);var t=e.Rails;(function(){(function(){var n;n=null,t.loadCSPNonce=function(){var i;return n=(i=document.querySelector("meta[name=csp-nonce]"))!=null?i.content:void 0},t.cspNonce=function(){return n!=null?n:t.loadCSPNonce()}}).call(this),function(){var n,i;i=Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector,t.matches=function(a,l){return l.exclude!=null?i.call(a,l.selector)&&!i.call(a,l.exclude):i.call(a,l)},n="_ujsData",t.getData=function(a,l){var u;return(u=a[n])!=null?u[l]:void 0},t.setData=function(a,l,u){return a[n]==null&&(a[n]={}),a[n][l]=u},t.$=function(a){return Array.prototype.slice.call(document.querySelectorAll(a))}}.call(this),function(){var n,i,a;n=t.$,a=t.csrfToken=function(){var l;return l=document.querySelector("meta[name=csrf-token]"),l&&l.content},i=t.csrfParam=function(){var l;return l=document.querySelector("meta[name=csrf-param]"),l&&l.content},t.CSRFProtection=function(l){var u;if(u=a(),u!=null)return l.setRequestHeader("X-CSRF-Token",u)},t.refreshCSRFTokens=function(){var l,u;if(u=a(),l=i(),u!=null&&l!=null)return n('form input[name="'+l+'"]').forEach(function(c){return c.value=u})}}.call(this),function(){var n,i,a,l;a=t.matches,n=window.CustomEvent,typeof n!="function"&&(n=function(u,c){var d;return d=document.createEvent("CustomEvent"),d.initCustomEvent(u,c.bubbles,c.cancelable,c.detail),d},n.prototype=window.Event.prototype,l=n.prototype.preventDefault,n.prototype.preventDefault=function(){var u;return u=l.call(this),this.cancelable&&!this.defaultPrevented&&Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}}),u}),i=t.fire=function(u,c,d){var p;return p=new n(c,{bubbles:!0,cancelable:!0,detail:d}),u.dispatchEvent(p),!p.defaultPrevented},t.stopEverything=function(u){return i(u.target,"ujs:everythingStopped"),u.preventDefault(),u.stopPropagation(),u.stopImmediatePropagation()},t.delegate=function(u,c,d,p){return u.addEventListener(d,function(w){var x;for(x=w.target;!(!(x instanceof Element)||a(x,c));)x=x.parentNode;if(x instanceof Element&&p.call(x,w)===!1)return w.preventDefault(),w.stopPropagation()})}}.call(this),function(){var n,i,a,l,u,c,d;l=t.cspNonce,i=t.CSRFProtection,u=t.fire,n={"*":"*/*",text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript",script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},t.ajax=function(p){var w;if(p=c(p),w=a(p,function(){var x,E;return E=d((x=w.response)!=null?x:w.responseText,w.getResponseHeader("Content-Type")),Math.floor(w.status/100)===2?typeof p.success=="function"&&p.success(E,w.statusText,w):typeof p.error=="function"&&p.error(E,w.statusText,w),typeof p.complete=="function"?p.complete(w,w.statusText):void 0}),p.beforeSend!=null&&!p.beforeSend(w,p))return!1;if(w.readyState===XMLHttpRequest.OPENED)return w.send(p.data)},c=function(p){return p.url=p.url||location.href,p.type=p.type.toUpperCase(),p.type==="GET"&&p.data&&(p.url.indexOf("?")<0?p.url+="?"+p.data:p.url+="&"+p.data),n[p.dataType]==null&&(p.dataType="*"),p.accept=n[p.dataType],p.dataType!=="*"&&(p.accept+=", */*; q=0.01"),p},a=function(p,w){var x;return x=new XMLHttpRequest,x.open(p.type,p.url,!0),x.setRequestHeader("Accept",p.accept),typeof p.data=="string"&&x.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),p.crossDomain||(x.setRequestHeader("X-Requested-With","XMLHttpRequest"),i(x)),x.withCredentials=!!p.withCredentials,x.onreadystatechange=function(){if(x.readyState===XMLHttpRequest.DONE)return w(x)},x},d=function(p,w){var x,E;if(typeof p=="string"&&typeof w=="string"){if(w.match(/\bjson\b/))try{p=JSON.parse(p)}catch(C){}else if(w.match(/\b(?:java|ecma)script\b/))E=document.createElement("script"),E.setAttribute("nonce",l()),E.text=p,document.head.appendChild(E).parentNode.removeChild(E);else if(w.match(/\b(xml|html|svg)\b/)){x=new DOMParser,w=w.replace(/;.+/,"");try{p=x.parseFromString(p,w)}catch(C){}}}return p},t.href=function(p){return p.href},t.isCrossDomain=function(p){var w,x,E;x=document.createElement("a"),x.href=location.href,E=document.createElement("a");try{return E.href=p,!((!E.protocol||E.protocol===":")&&!E.host||x.protocol+"//"+x.host==E.protocol+"//"+E.host)}catch(C){return w=C,!0}}}.call(this),function(){var n,i;n=t.matches,i=function(a){return Array.prototype.slice.call(a)},t.serializeElement=function(a,l){var u,c;return u=[a],n(a,"form")&&(u=i(a.elements)),c=[],u.forEach(function(d){if(!(!d.name||d.disabled)&&!n(d,"fieldset[disabled] *")){if(n(d,"select"))return i(d.options).forEach(function(p){if(p.selected)return c.push({name:d.name,value:p.value})});if(d.checked||["radio","checkbox","submit"].indexOf(d.type)===-1)return c.push({name:d.name,value:d.value})}}),l&&c.push(l),c.map(function(d){return d.name!=null?encodeURIComponent(d.name)+"="+encodeURIComponent(d.value):d}).join("&")},t.formElements=function(a,l){return n(a,"form")?i(a.elements).filter(function(u){return n(u,l)}):i(a.querySelectorAll(l))}}.call(this),function(){var n,i,a;i=t.fire,a=t.stopEverything,t.handleConfirm=function(l){if(!n(this))return a(l)},t.confirm=function(l,u){return confirm(l)},n=function(l){var u,c,d;if(d=l.getAttribute("data-confirm"),!d)return!0;if(u=!1,i(l,"confirm")){try{u=t.confirm(d,l)}catch(p){}c=i(l,"confirm:complete",[u])}return u&&c}}.call(this),function(){var n,i,a,l,u,c,d,p,w,x,E,C;x=t.matches,p=t.getData,E=t.setData,C=t.stopEverything,d=t.formElements,t.handleDisabledElement=function(k){var N;if(N=this,N.disabled)return C(k)},t.enableElement=function(k){var N;if(k instanceof Event){if(w(k))return;N=k.target}else N=k;if(x(N,t.linkDisableSelector))return c(N);if(x(N,t.buttonDisableSelector)||x(N,t.formEnableSelector))return l(N);if(x(N,t.formSubmitSelector))return u(N)},t.disableElement=function(k){var N;if(N=k instanceof Event?k.target:k,x(N,t.linkDisableSelector))return a(N);if(x(N,t.buttonDisableSelector)||x(N,t.formDisableSelector))return n(N);if(x(N,t.formSubmitSelector))return i(N)},a=function(k){var N;if(!p(k,"ujs:disabled"))return N=k.getAttribute("data-disable-with"),N!=null&&(E(k,"ujs:enable-with",k.innerHTML),k.innerHTML=N),k.addEventListener("click",C),E(k,"ujs:disabled",!0)},c=function(k){var N;return N=p(k,"ujs:enable-with"),N!=null&&(k.innerHTML=N,E(k,"ujs:enable-with",null)),k.removeEventListener("click",C),E(k,"ujs:disabled",null)},i=function(k){return d(k,t.formDisableSelector).forEach(n)},n=function(k){var N;if(!p(k,"ujs:disabled"))return N=k.getAttribute("data-disable-with"),N!=null&&(x(k,"button")?(E(k,"ujs:enable-with",k.innerHTML),k.innerHTML=N):(E(k,"ujs:enable-with",k.value),k.value=N)),k.disabled=!0,E(k,"ujs:disabled",!0)},u=function(k){return d(k,t.formEnableSelector).forEach(l)},l=function(k){var N;return N=p(k,"ujs:enable-with"),N!=null&&(x(k,"button")?k.innerHTML=N:k.value=N,E(k,"ujs:enable-with",null)),k.disabled=!1,E(k,"ujs:disabled",null)},w=function(k){var N,_;return _=(N=k.detail)!=null?N[0]:void 0,(_!=null?_.getResponseHeader("X-Xhr-Redirect"):void 0)!=null}}.call(this),function(){var n;n=t.stopEverything,t.handleMethod=function(i){var a,l,u,c,d,p,w;if(p=this,w=p.getAttribute("data-method"),!!w)return d=t.href(p),l=t.csrfToken(),a=t.csrfParam(),u=document.createElement("form"),c="",a!=null&&l!=null&&!t.isCrossDomain(d)&&(c+=""),c+='',u.method="post",u.action=d,u.target=p.target,u.innerHTML=c,u.style.display="none",document.body.appendChild(u),u.querySelector('[type="submit"]').click(),n(i)}}.call(this),function(){var n,i,a,l,u,c,d,p,w,x=[].slice;c=t.matches,a=t.getData,p=t.setData,i=t.fire,w=t.stopEverything,n=t.ajax,l=t.isCrossDomain,d=t.serializeElement,u=function(E){var C;return C=E.getAttribute("data-remote"),C!=null&&C!=="false"},t.handleRemote=function(E){var C,k,N,_,y,g,b;return _=this,u(_)?i(_,"ajax:before")?(b=_.getAttribute("data-with-credentials"),N=_.getAttribute("data-type")||"script",c(_,t.formSubmitSelector)?(C=a(_,"ujs:submit-button"),y=a(_,"ujs:submit-button-formmethod")||_.method,g=a(_,"ujs:submit-button-formaction")||_.getAttribute("action")||location.href,y.toUpperCase()==="GET"&&(g=g.replace(/\?.*$/,"")),_.enctype==="multipart/form-data"?(k=new FormData(_),C!=null&&k.append(C.name,C.value)):k=d(_,C),p(_,"ujs:submit-button",null),p(_,"ujs:submit-button-formmethod",null),p(_,"ujs:submit-button-formaction",null)):c(_,t.buttonClickSelector)||c(_,t.inputChangeSelector)?(y=_.getAttribute("data-method"),g=_.getAttribute("data-url"),k=d(_,_.getAttribute("data-params"))):(y=_.getAttribute("data-method"),g=t.href(_),k=_.getAttribute("data-params")),n({type:y||"GET",url:g,data:k,dataType:N,beforeSend:function(D,X){return i(_,"ajax:beforeSend",[D,X])?i(_,"ajax:send",[D]):(i(_,"ajax:stopped"),!1)},success:function(){var D;return D=1<=arguments.length?x.call(arguments,0):[],i(_,"ajax:success",D)},error:function(){var D;return D=1<=arguments.length?x.call(arguments,0):[],i(_,"ajax:error",D)},complete:function(){var D;return D=1<=arguments.length?x.call(arguments,0):[],i(_,"ajax:complete",D)},crossDomain:l(g),withCredentials:b!=null&&b!=="false"}),w(E)):(i(_,"ajax:stopped"),!1):!0},t.formSubmitButtonClick=function(E){var C,k;if(C=this,k=C.form,!!k)return C.name&&p(k,"ujs:submit-button",{name:C.name,value:C.value}),p(k,"ujs:formnovalidate-button",C.formNoValidate),p(k,"ujs:submit-button-formaction",C.getAttribute("formaction")),p(k,"ujs:submit-button-formmethod",C.getAttribute("formmethod"))},t.preventInsignificantClick=function(E){var C,k,N,_,y,g;if(N=this,y=(N.getAttribute("data-method")||"GET").toUpperCase(),C=N.getAttribute("data-params"),_=E.metaKey||E.ctrlKey,k=_&&y==="GET"&&!C,g=E.button!=null&&E.button!==0,g||k)return E.stopImmediatePropagation()}}.call(this),function(){var n,i,a,l,u,c,d,p,w,x,E,C,k,N,_;if(c=t.fire,a=t.delegate,p=t.getData,n=t.$,_=t.refreshCSRFTokens,i=t.CSRFProtection,k=t.loadCSPNonce,u=t.enableElement,l=t.disableElement,x=t.handleDisabledElement,w=t.handleConfirm,N=t.preventInsignificantClick,C=t.handleRemote,d=t.formSubmitButtonClick,E=t.handleMethod,typeof jQuery<"u"&&jQuery!==null&&jQuery.ajax!=null){if(jQuery.rails)throw new Error("If you load both jquery_ujs and rails-ujs, use rails-ujs only.");jQuery.rails=t,jQuery.ajaxPrefilter(function(y,g,b){if(!y.crossDomain)return i(b)})}t.start=function(){if(window._rails_loaded)throw new Error("rails-ujs has already been loaded!");return window.addEventListener("pageshow",function(){return n(t.formEnableSelector).forEach(function(y){if(p(y,"ujs:disabled"))return u(y)}),n(t.linkDisableSelector).forEach(function(y){if(p(y,"ujs:disabled"))return u(y)})}),a(document,t.linkDisableSelector,"ajax:complete",u),a(document,t.linkDisableSelector,"ajax:stopped",u),a(document,t.buttonDisableSelector,"ajax:complete",u),a(document,t.buttonDisableSelector,"ajax:stopped",u),a(document,t.linkClickSelector,"click",N),a(document,t.linkClickSelector,"click",x),a(document,t.linkClickSelector,"click",w),a(document,t.linkClickSelector,"click",l),a(document,t.linkClickSelector,"click",C),a(document,t.linkClickSelector,"click",E),a(document,t.buttonClickSelector,"click",N),a(document,t.buttonClickSelector,"click",x),a(document,t.buttonClickSelector,"click",w),a(document,t.buttonClickSelector,"click",l),a(document,t.buttonClickSelector,"click",C),a(document,t.inputChangeSelector,"change",x),a(document,t.inputChangeSelector,"change",w),a(document,t.inputChangeSelector,"change",C),a(document,t.formSubmitSelector,"submit",x),a(document,t.formSubmitSelector,"submit",w),a(document,t.formSubmitSelector,"submit",C),a(document,t.formSubmitSelector,"submit",function(y){return setTimeout(function(){return l(y)},13)}),a(document,t.formSubmitSelector,"ajax:send",l),a(document,t.formSubmitSelector,"ajax:complete",u),a(document,t.formInputClickSelector,"click",N),a(document,t.formInputClickSelector,"click",x),a(document,t.formInputClickSelector,"click",w),a(document,t.formInputClickSelector,"click",d),document.addEventListener("DOMContentLoaded",_),document.addEventListener("DOMContentLoaded",k),window._rails_loaded=!0},window.Rails===t&&c(document,"rails:attachBindings")&&t.start()}.call(this)}).call(this),typeof Ws=="object"&&Ws.exports?Ws.exports=t:typeof define=="function"&&define.amd&&define(t)}).call(uy)});var qs=Le((rL,By)=>{"use strict";var Uy=Object.getOwnPropertySymbols,CP=Object.prototype.hasOwnProperty,bP=Object.prototype.propertyIsEnumerable;function TP(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function kP(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(t).map(function(l){return t[l]});if(i.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(l){a[l]=l}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch(l){return!1}}By.exports=kP()?Object.assign:function(e,t){for(var n,i=TP(e),a,l=1;l{"use strict";var wd=qs(),co=60103,$y=60106;Oe.Fragment=60107;Oe.StrictMode=60108;Oe.Profiler=60114;var Wy=60109,Hy=60110,Vy=60112;Oe.Suspense=60113;var qy=60115,Ky=60116;typeof Symbol=="function"&&Symbol.for&&(wn=Symbol.for,co=wn("react.element"),$y=wn("react.portal"),Oe.Fragment=wn("react.fragment"),Oe.StrictMode=wn("react.strict_mode"),Oe.Profiler=wn("react.profiler"),Wy=wn("react.provider"),Hy=wn("react.context"),Vy=wn("react.forward_ref"),Oe.Suspense=wn("react.suspense"),qy=wn("react.memo"),Ky=wn("react.lazy"));var wn,zy=typeof Symbol=="function"&&Symbol.iterator;function NP(e){return e===null||typeof e!="object"?null:(e=zy&&e[zy]||e["@@iterator"],typeof e=="function"?e:null)}function La(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n{"use strict";n0.exports=t0()});var s0=Le(Me=>{"use strict";var ho,Ra,Zs,Pd;typeof performance=="object"&&typeof performance.now=="function"?(r0=performance,Me.unstable_now=function(){return r0.now()}):(Cd=Date,i0=Cd.now(),Me.unstable_now=function(){return Cd.now()-i0});var r0,Cd,i0;typeof window>"u"||typeof MessageChannel!="function"?(po=null,bd=null,Td=function(){if(po!==null)try{var e=Me.unstable_now();po(!0,e),po=null}catch(t){throw setTimeout(Td,0),t}},ho=function(e){po!==null?setTimeout(ho,0,e):(po=e,setTimeout(Td,0))},Ra=function(e,t){bd=setTimeout(e,t)},Zs=function(){clearTimeout(bd)},Me.unstable_shouldYield=function(){return!1},Pd=Me.unstable_forceFrameRate=function(){}):(o0=window.setTimeout,a0=window.clearTimeout,typeof console<"u"&&(l0=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof l0!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),Ma=!1,Fa=null,Xs=-1,kd=5,Nd=0,Me.unstable_shouldYield=function(){return Me.unstable_now()>=Nd},Pd=function(){},Me.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[i];if(a!==void 0&&0Qs(u,n))d!==void 0&&0>Qs(d,u)?(e[i]=d,e[c]=n,i=c):(e[i]=u,e[l]=n,i=l);else if(d!==void 0&&0>Qs(d,n))e[i]=d,e[c]=n,i=c;else break e}}return t}return null}function Qs(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}var $n=[],Lr=[],AP=1,xn=null,Nt=3,eu=!1,wi=!1,Ua=!1;function Id(e){for(var t=Ln(Lr);t!==null;){if(t.callback===null)Js(Lr);else if(t.startTime<=e)Js(Lr),t.sortIndex=t.expirationTime,Dd($n,t);else break;t=Ln(Lr)}}function Ad(e){if(Ua=!1,Id(e),!wi)if(Ln($n)!==null)wi=!0,ho(Ld);else{var t=Ln(Lr);t!==null&&Ra(Ad,t.startTime-e)}}function Ld(e,t){wi=!1,Ua&&(Ua=!1,Zs()),eu=!0;var n=Nt;try{for(Id(t),xn=Ln($n);xn!==null&&(!(xn.expirationTime>t)||e&&!Me.unstable_shouldYield());){var i=xn.callback;if(typeof i=="function"){xn.callback=null,Nt=xn.priorityLevel;var a=i(xn.expirationTime<=t);t=Me.unstable_now(),typeof a=="function"?xn.callback=a:xn===Ln($n)&&Js($n),Id(t)}else Js($n);xn=Ln($n)}if(xn!==null)var l=!0;else{var u=Ln(Lr);u!==null&&Ra(Ad,u.startTime-t),l=!1}return l}finally{xn=null,Nt=n,eu=!1}}var LP=Pd;Me.unstable_IdlePriority=5;Me.unstable_ImmediatePriority=1;Me.unstable_LowPriority=4;Me.unstable_NormalPriority=3;Me.unstable_Profiling=null;Me.unstable_UserBlockingPriority=2;Me.unstable_cancelCallback=function(e){e.callback=null};Me.unstable_continueExecution=function(){wi||eu||(wi=!0,ho(Ld))};Me.unstable_getCurrentPriorityLevel=function(){return Nt};Me.unstable_getFirstCallbackNode=function(){return Ln($n)};Me.unstable_next=function(e){switch(Nt){case 1:case 2:case 3:var t=3;break;default:t=Nt}var n=Nt;Nt=t;try{return e()}finally{Nt=n}};Me.unstable_pauseExecution=function(){};Me.unstable_requestPaint=LP;Me.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=Nt;Nt=e;try{return t()}finally{Nt=n}};Me.unstable_scheduleCallback=function(e,t,n){var i=Me.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0i?(e.sortIndex=n,Dd(Lr,e),Ln($n)===null&&e===Ln(Lr)&&(Ua?Zs():Ua=!0,Ra(Ad,n-i))):(e.sortIndex=a,Dd($n,e),wi||eu||(wi=!0,ho(Ld))),e};Me.unstable_wrapCallback=function(e){var t=Nt;return function(){var n=Nt;Nt=t;try{return e.apply(this,arguments)}finally{Nt=n}}}});var c0=Le((lL,u0)=>{"use strict";u0.exports=s0()});var Gw=Le(Tn=>{"use strict";var Ku=ie(),Qe=qs(),gt=c0();function V(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),MP=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f0=Object.prototype.hasOwnProperty,d0={},p0={};function FP(e){return f0.call(p0,e)?!0:f0.call(d0,e)?!1:MP.test(e)?p0[e]=!0:(d0[e]=!0,!1)}function RP(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function UP(e,t,n,i){if(t===null||typeof t>"u"||RP(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Rt(e,t,n,i,a,l,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=u}var xt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){xt[e]=new Rt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];xt[t]=new Rt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){xt[e]=new Rt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){xt[e]=new Rt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){xt[e]=new Rt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){xt[e]=new Rt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){xt[e]=new Rt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){xt[e]=new Rt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){xt[e]=new Rt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Wp=/[\-:]([a-z])/g;function Hp(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Wp,Hp);xt[t]=new Rt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Wp,Hp);xt[t]=new Rt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Wp,Hp);xt[t]=new Rt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){xt[e]=new Rt(e,1,!1,e.toLowerCase(),null,!1,!1)});xt.xlinkHref=new Rt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){xt[e]=new Rt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Vp(e,t,n,i){var a=xt.hasOwnProperty(t)?xt[t]:null,l=a!==null?a.type===0:i?!1:!(!(2{var iD=Object.create;var ga=Object.defineProperty,oD=Object.defineProperties,aD=Object.getOwnPropertyDescriptor,lD=Object.getOwnPropertyDescriptors,sD=Object.getOwnPropertyNames,Hv=Object.getOwnPropertySymbols,uD=Object.getPrototypeOf,Kv=Object.prototype.hasOwnProperty,cD=Object.prototype.propertyIsEnumerable;var Vv=(e,t,n)=>t in e?ga(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Z=(e,t)=>{for(var n in t||(t={}))Kv.call(t,n)&&Vv(e,n,t[n]);if(Hv)for(var n of Hv(t))cD.call(t,n)&&Vv(e,n,t[n]);return e},Pe=(e,t)=>oD(e,lD(t)),fD=e=>ga(e,"__esModule",{value:!0});var Ue=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),dD=(e,t)=>{for(var n in t)ga(e,n,{get:t[n],enumerable:!0})},pD=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of sD(t))!Kv.call(e,a)&&(n||a!=="default")&&ga(e,a,{get:()=>t[a],enumerable:!(i=aD(t,a))||i.enumerable});return e},oe=(e,t)=>pD(fD(ga(e!=null?iD(uD(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Yv=Ue((qv,Ps)=>{(function(){var e=this;(function(){(function(){this.Rails={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",buttonClickSelector:{selector:"button[data-remote]:not([form]), button[data-confirm]:not([form])",exclude:"form button"},inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form:not([data-turbo=true])",formInputClickSelector:"form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",formDisableSelector:"input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",formEnableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",fileInputSelector:"input[name][type=file]:not([disabled])",linkDisableSelector:"a[data-disable-with], a[data-disable]",buttonDisableSelector:"button[data-remote][data-disable-with], button[data-remote][data-disable]"}}).call(this)}).call(e);var t=e.Rails;(function(){(function(){var n;n=null,t.loadCSPNonce=function(){var i;return n=(i=document.querySelector("meta[name=csp-nonce]"))!=null?i.content:void 0},t.cspNonce=function(){return n!=null?n:t.loadCSPNonce()}}).call(this),function(){var n,i;i=Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector,t.matches=function(a,l){return l.exclude!=null?i.call(a,l.selector)&&!i.call(a,l.exclude):i.call(a,l)},n="_ujsData",t.getData=function(a,l){var u;return(u=a[n])!=null?u[l]:void 0},t.setData=function(a,l,u){return a[n]==null&&(a[n]={}),a[n][l]=u},t.$=function(a){return Array.prototype.slice.call(document.querySelectorAll(a))}}.call(this),function(){var n,i,a;n=t.$,a=t.csrfToken=function(){var l;return l=document.querySelector("meta[name=csrf-token]"),l&&l.content},i=t.csrfParam=function(){var l;return l=document.querySelector("meta[name=csrf-param]"),l&&l.content},t.CSRFProtection=function(l){var u;if(u=a(),u!=null)return l.setRequestHeader("X-CSRF-Token",u)},t.refreshCSRFTokens=function(){var l,u;if(u=a(),l=i(),u!=null&&l!=null)return n('form input[name="'+l+'"]').forEach(function(c){return c.value=u})}}.call(this),function(){var n,i,a,l;a=t.matches,n=window.CustomEvent,typeof n!="function"&&(n=function(u,c){var d;return d=document.createEvent("CustomEvent"),d.initCustomEvent(u,c.bubbles,c.cancelable,c.detail),d},n.prototype=window.Event.prototype,l=n.prototype.preventDefault,n.prototype.preventDefault=function(){var u;return u=l.call(this),this.cancelable&&!this.defaultPrevented&&Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}}),u}),i=t.fire=function(u,c,d){var p;return p=new n(c,{bubbles:!0,cancelable:!0,detail:d}),u.dispatchEvent(p),!p.defaultPrevented},t.stopEverything=function(u){return i(u.target,"ujs:everythingStopped"),u.preventDefault(),u.stopPropagation(),u.stopImmediatePropagation()},t.delegate=function(u,c,d,p){return u.addEventListener(d,function(y){var x;for(x=y.target;!(!(x instanceof Element)||a(x,c));)x=x.parentNode;if(x instanceof Element&&p.call(x,y)===!1)return y.preventDefault(),y.stopPropagation()})}}.call(this),function(){var n,i,a,l,u,c,d;l=t.cspNonce,i=t.CSRFProtection,u=t.fire,n={"*":"*/*",text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript",script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},t.ajax=function(p){var y;if(p=c(p),y=a(p,function(){var x,E;return E=d((x=y.response)!=null?x:y.responseText,y.getResponseHeader("Content-Type")),Math.floor(y.status/100)===2?typeof p.success=="function"&&p.success(E,y.statusText,y):typeof p.error=="function"&&p.error(E,y.statusText,y),typeof p.complete=="function"?p.complete(y,y.statusText):void 0}),p.beforeSend!=null&&!p.beforeSend(y,p))return!1;if(y.readyState===XMLHttpRequest.OPENED)return y.send(p.data)},c=function(p){return p.url=p.url||location.href,p.type=p.type.toUpperCase(),p.type==="GET"&&p.data&&(p.url.indexOf("?")<0?p.url+="?"+p.data:p.url+="&"+p.data),n[p.dataType]==null&&(p.dataType="*"),p.accept=n[p.dataType],p.dataType!=="*"&&(p.accept+=", */*; q=0.01"),p},a=function(p,y){var x;return x=new XMLHttpRequest,x.open(p.type,p.url,!0),x.setRequestHeader("Accept",p.accept),typeof p.data=="string"&&x.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),p.crossDomain||(x.setRequestHeader("X-Requested-With","XMLHttpRequest"),i(x)),x.withCredentials=!!p.withCredentials,x.onreadystatechange=function(){if(x.readyState===XMLHttpRequest.DONE)return y(x)},x},d=function(p,y){var x,E;if(typeof p=="string"&&typeof y=="string"){if(y.match(/\bjson\b/))try{p=JSON.parse(p)}catch(C){}else if(y.match(/\b(?:java|ecma)script\b/))E=document.createElement("script"),E.setAttribute("nonce",l()),E.text=p,document.head.appendChild(E).parentNode.removeChild(E);else if(y.match(/\b(xml|html|svg)\b/)){x=new DOMParser,y=y.replace(/;.+/,"");try{p=x.parseFromString(p,y)}catch(C){}}}return p},t.href=function(p){return p.href},t.isCrossDomain=function(p){var y,x,E;x=document.createElement("a"),x.href=location.href,E=document.createElement("a");try{return E.href=p,!((!E.protocol||E.protocol===":")&&!E.host||x.protocol+"//"+x.host==E.protocol+"//"+E.host)}catch(C){return y=C,!0}}}.call(this),function(){var n,i;n=t.matches,i=function(a){return Array.prototype.slice.call(a)},t.serializeElement=function(a,l){var u,c;return u=[a],n(a,"form")&&(u=i(a.elements)),c=[],u.forEach(function(d){if(!(!d.name||d.disabled)&&!n(d,"fieldset[disabled] *")){if(n(d,"select"))return i(d.options).forEach(function(p){if(p.selected)return c.push({name:d.name,value:p.value})});if(d.checked||["radio","checkbox","submit"].indexOf(d.type)===-1)return c.push({name:d.name,value:d.value})}}),l&&c.push(l),c.map(function(d){return d.name!=null?encodeURIComponent(d.name)+"="+encodeURIComponent(d.value):d}).join("&")},t.formElements=function(a,l){return n(a,"form")?i(a.elements).filter(function(u){return n(u,l)}):i(a.querySelectorAll(l))}}.call(this),function(){var n,i,a;i=t.fire,a=t.stopEverything,t.handleConfirm=function(l){if(!n(this))return a(l)},t.confirm=function(l,u){return confirm(l)},n=function(l){var u,c,d;if(d=l.getAttribute("data-confirm"),!d)return!0;if(u=!1,i(l,"confirm")){try{u=t.confirm(d,l)}catch(p){}c=i(l,"confirm:complete",[u])}return u&&c}}.call(this),function(){var n,i,a,l,u,c,d,p,y,x,E,C;x=t.matches,p=t.getData,E=t.setData,C=t.stopEverything,d=t.formElements,t.handleDisabledElement=function(k){var P;if(P=this,P.disabled)return C(k)},t.enableElement=function(k){var P;if(k instanceof Event){if(y(k))return;P=k.target}else P=k;if(x(P,t.linkDisableSelector))return c(P);if(x(P,t.buttonDisableSelector)||x(P,t.formEnableSelector))return l(P);if(x(P,t.formSubmitSelector))return u(P)},t.disableElement=function(k){var P;if(P=k instanceof Event?k.target:k,x(P,t.linkDisableSelector))return a(P);if(x(P,t.buttonDisableSelector)||x(P,t.formDisableSelector))return n(P);if(x(P,t.formSubmitSelector))return i(P)},a=function(k){var P;if(!p(k,"ujs:disabled"))return P=k.getAttribute("data-disable-with"),P!=null&&(E(k,"ujs:enable-with",k.innerHTML),k.innerHTML=P),k.addEventListener("click",C),E(k,"ujs:disabled",!0)},c=function(k){var P;return P=p(k,"ujs:enable-with"),P!=null&&(k.innerHTML=P,E(k,"ujs:enable-with",null)),k.removeEventListener("click",C),E(k,"ujs:disabled",null)},i=function(k){return d(k,t.formDisableSelector).forEach(n)},n=function(k){var P;if(!p(k,"ujs:disabled"))return P=k.getAttribute("data-disable-with"),P!=null&&(x(k,"button")?(E(k,"ujs:enable-with",k.innerHTML),k.innerHTML=P):(E(k,"ujs:enable-with",k.value),k.value=P)),k.disabled=!0,E(k,"ujs:disabled",!0)},u=function(k){return d(k,t.formEnableSelector).forEach(l)},l=function(k){var P;return P=p(k,"ujs:enable-with"),P!=null&&(x(k,"button")?k.innerHTML=P:k.value=P,E(k,"ujs:enable-with",null)),k.disabled=!1,E(k,"ujs:disabled",null)},y=function(k){var P,_;return _=(P=k.detail)!=null?P[0]:void 0,(_!=null?_.getResponseHeader("X-Xhr-Redirect"):void 0)!=null}}.call(this),function(){var n;n=t.stopEverything,t.handleMethod=function(i){var a,l,u,c,d,p,y;if(p=this,y=p.getAttribute("data-method"),!!y)return d=t.href(p),l=t.csrfToken(),a=t.csrfParam(),u=document.createElement("form"),c="",a!=null&&l!=null&&!t.isCrossDomain(d)&&(c+=""),c+='',u.method="post",u.action=d,u.target=p.target,u.innerHTML=c,u.style.display="none",document.body.appendChild(u),u.querySelector('[type="submit"]').click(),n(i)}}.call(this),function(){var n,i,a,l,u,c,d,p,y,x=[].slice;c=t.matches,a=t.getData,p=t.setData,i=t.fire,y=t.stopEverything,n=t.ajax,l=t.isCrossDomain,d=t.serializeElement,u=function(E){var C;return C=E.getAttribute("data-remote"),C!=null&&C!=="false"},t.handleRemote=function(E){var C,k,P,_,w,m,b;return _=this,u(_)?i(_,"ajax:before")?(b=_.getAttribute("data-with-credentials"),P=_.getAttribute("data-type")||"script",c(_,t.formSubmitSelector)?(C=a(_,"ujs:submit-button"),w=a(_,"ujs:submit-button-formmethod")||_.method,m=a(_,"ujs:submit-button-formaction")||_.getAttribute("action")||location.href,w.toUpperCase()==="GET"&&(m=m.replace(/\?.*$/,"")),_.enctype==="multipart/form-data"?(k=new FormData(_),C!=null&&k.append(C.name,C.value)):k=d(_,C),p(_,"ujs:submit-button",null),p(_,"ujs:submit-button-formmethod",null),p(_,"ujs:submit-button-formaction",null)):c(_,t.buttonClickSelector)||c(_,t.inputChangeSelector)?(w=_.getAttribute("data-method"),m=_.getAttribute("data-url"),k=d(_,_.getAttribute("data-params"))):(w=_.getAttribute("data-method"),m=t.href(_),k=_.getAttribute("data-params")),n({type:w||"GET",url:m,data:k,dataType:P,beforeSend:function(N,q){return i(_,"ajax:beforeSend",[N,q])?i(_,"ajax:send",[N]):(i(_,"ajax:stopped"),!1)},success:function(){var N;return N=1<=arguments.length?x.call(arguments,0):[],i(_,"ajax:success",N)},error:function(){var N;return N=1<=arguments.length?x.call(arguments,0):[],i(_,"ajax:error",N)},complete:function(){var N;return N=1<=arguments.length?x.call(arguments,0):[],i(_,"ajax:complete",N)},crossDomain:l(m),withCredentials:b!=null&&b!=="false"}),y(E)):(i(_,"ajax:stopped"),!1):!0},t.formSubmitButtonClick=function(E){var C,k;if(C=this,k=C.form,!!k)return C.name&&p(k,"ujs:submit-button",{name:C.name,value:C.value}),p(k,"ujs:formnovalidate-button",C.formNoValidate),p(k,"ujs:submit-button-formaction",C.getAttribute("formaction")),p(k,"ujs:submit-button-formmethod",C.getAttribute("formmethod"))},t.preventInsignificantClick=function(E){var C,k,P,_,w,m;if(P=this,w=(P.getAttribute("data-method")||"GET").toUpperCase(),C=P.getAttribute("data-params"),_=E.metaKey||E.ctrlKey,k=_&&w==="GET"&&!C,m=E.button!=null&&E.button!==0,m||k)return E.stopImmediatePropagation()}}.call(this),function(){var n,i,a,l,u,c,d,p,y,x,E,C,k,P,_;if(c=t.fire,a=t.delegate,p=t.getData,n=t.$,_=t.refreshCSRFTokens,i=t.CSRFProtection,k=t.loadCSPNonce,u=t.enableElement,l=t.disableElement,x=t.handleDisabledElement,y=t.handleConfirm,P=t.preventInsignificantClick,C=t.handleRemote,d=t.formSubmitButtonClick,E=t.handleMethod,typeof jQuery<"u"&&jQuery!==null&&jQuery.ajax!=null){if(jQuery.rails)throw new Error("If you load both jquery_ujs and rails-ujs, use rails-ujs only.");jQuery.rails=t,jQuery.ajaxPrefilter(function(w,m,b){if(!w.crossDomain)return i(b)})}t.start=function(){if(window._rails_loaded)throw new Error("rails-ujs has already been loaded!");return window.addEventListener("pageshow",function(){return n(t.formEnableSelector).forEach(function(w){if(p(w,"ujs:disabled"))return u(w)}),n(t.linkDisableSelector).forEach(function(w){if(p(w,"ujs:disabled"))return u(w)})}),a(document,t.linkDisableSelector,"ajax:complete",u),a(document,t.linkDisableSelector,"ajax:stopped",u),a(document,t.buttonDisableSelector,"ajax:complete",u),a(document,t.buttonDisableSelector,"ajax:stopped",u),a(document,t.linkClickSelector,"click",P),a(document,t.linkClickSelector,"click",x),a(document,t.linkClickSelector,"click",y),a(document,t.linkClickSelector,"click",l),a(document,t.linkClickSelector,"click",C),a(document,t.linkClickSelector,"click",E),a(document,t.buttonClickSelector,"click",P),a(document,t.buttonClickSelector,"click",x),a(document,t.buttonClickSelector,"click",y),a(document,t.buttonClickSelector,"click",l),a(document,t.buttonClickSelector,"click",C),a(document,t.inputChangeSelector,"change",x),a(document,t.inputChangeSelector,"change",y),a(document,t.inputChangeSelector,"change",C),a(document,t.formSubmitSelector,"submit",x),a(document,t.formSubmitSelector,"submit",y),a(document,t.formSubmitSelector,"submit",C),a(document,t.formSubmitSelector,"submit",function(w){return setTimeout(function(){return l(w)},13)}),a(document,t.formSubmitSelector,"ajax:send",l),a(document,t.formSubmitSelector,"ajax:complete",u),a(document,t.formInputClickSelector,"click",P),a(document,t.formInputClickSelector,"click",x),a(document,t.formInputClickSelector,"click",y),a(document,t.formInputClickSelector,"click",d),document.addEventListener("DOMContentLoaded",_),document.addEventListener("DOMContentLoaded",k),window._rails_loaded=!0},window.Rails===t&&c(document,"rails:attachBindings")&&t.start()}.call(this)}).call(this),typeof Ps=="object"&&Ps.exports?Ps.exports=t:typeof define=="function"&&define.amd&&define(t)}).call(qv)});var Os=Ue((AI,Sy)=>{"use strict";var Ey=Object.getOwnPropertySymbols,tN=Object.prototype.hasOwnProperty,nN=Object.prototype.propertyIsEnumerable;function rN(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function iN(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(t).map(function(l){return t[l]});if(i.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(l){a[l]=l}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch(l){return!1}}Sy.exports=iN()?Object.assign:function(e,t){for(var n,i=rN(e),a,l=1;l{"use strict";var Kf=Os(),eo=60103,Ty=60106;De.Fragment=60107;De.StrictMode=60108;De.Profiler=60114;var ky=60109,Py=60110,Dy=60112;De.Suspense=60113;var Ny=60115,Oy=60116;typeof Symbol=="function"&&Symbol.for&&(vn=Symbol.for,eo=vn("react.element"),Ty=vn("react.portal"),De.Fragment=vn("react.fragment"),De.StrictMode=vn("react.strict_mode"),De.Profiler=vn("react.profiler"),ky=vn("react.provider"),Py=vn("react.context"),Dy=vn("react.forward_ref"),De.Suspense=vn("react.suspense"),Ny=vn("react.memo"),Oy=vn("react.lazy"));var vn,Cy=typeof Symbol=="function"&&Symbol.iterator;function oN(e){return e===null||typeof e!="object"?null:(e=Cy&&e[Cy]||e["@@iterator"],typeof e=="function"?e:null)}function ya(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n{"use strict";zy.exports=By()});var Ky=Ue(Le=>{"use strict";var ro,_a,Rs,rd;typeof performance=="object"&&typeof performance.now=="function"?($y=performance,Le.unstable_now=function(){return $y.now()}):(Qf=Date,jy=Qf.now(),Le.unstable_now=function(){return Qf.now()-jy});var $y,Qf,jy;typeof window>"u"||typeof MessageChannel!="function"?(no=null,Zf=null,Jf=function(){if(no!==null)try{var e=Le.unstable_now();no(!0,e),no=null}catch(t){throw setTimeout(Jf,0),t}},ro=function(e){no!==null?setTimeout(ro,0,e):(no=e,setTimeout(Jf,0))},_a=function(e,t){Zf=setTimeout(e,t)},Rs=function(){clearTimeout(Zf)},Le.unstable_shouldYield=function(){return!1},rd=Le.unstable_forceFrameRate=function(){}):(Wy=window.setTimeout,Hy=window.clearTimeout,typeof console<"u"&&(Vy=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof Vy!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),wa=!1,xa=null,Ls=-1,ed=5,td=0,Le.unstable_shouldYield=function(){return Le.unstable_now()>=td},rd=function(){},Le.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[i];if(a!==void 0&&0Fs(u,n))d!==void 0&&0>Fs(d,u)?(e[i]=d,e[c]=n,i=c):(e[i]=u,e[l]=n,i=l);else if(d!==void 0&&0>Fs(d,n))e[i]=d,e[c]=n,i=c;else break e}}return t}return null}function Fs(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}var $n=[],Nr=[],cN=1,yn=null,kt=3,Bs=!1,gi=!1,Ea=!1;function od(e){for(var t=In(Nr);t!==null;){if(t.callback===null)Us(Nr);else if(t.startTime<=e)Us(Nr),t.sortIndex=t.expirationTime,id($n,t);else break;t=In(Nr)}}function ad(e){if(Ea=!1,od(e),!gi)if(In($n)!==null)gi=!0,ro(ld);else{var t=In(Nr);t!==null&&_a(ad,t.startTime-e)}}function ld(e,t){gi=!1,Ea&&(Ea=!1,Rs()),Bs=!0;var n=kt;try{for(od(t),yn=In($n);yn!==null&&(!(yn.expirationTime>t)||e&&!Le.unstable_shouldYield());){var i=yn.callback;if(typeof i=="function"){yn.callback=null,kt=yn.priorityLevel;var a=i(yn.expirationTime<=t);t=Le.unstable_now(),typeof a=="function"?yn.callback=a:yn===In($n)&&Us($n),od(t)}else Us($n);yn=In($n)}if(yn!==null)var l=!0;else{var u=In(Nr);u!==null&&_a(ad,u.startTime-t),l=!1}return l}finally{yn=null,kt=n,Bs=!1}}var fN=rd;Le.unstable_IdlePriority=5;Le.unstable_ImmediatePriority=1;Le.unstable_LowPriority=4;Le.unstable_NormalPriority=3;Le.unstable_Profiling=null;Le.unstable_UserBlockingPriority=2;Le.unstable_cancelCallback=function(e){e.callback=null};Le.unstable_continueExecution=function(){gi||Bs||(gi=!0,ro(ld))};Le.unstable_getCurrentPriorityLevel=function(){return kt};Le.unstable_getFirstCallbackNode=function(){return In($n)};Le.unstable_next=function(e){switch(kt){case 1:case 2:case 3:var t=3;break;default:t=kt}var n=kt;kt=t;try{return e()}finally{kt=n}};Le.unstable_pauseExecution=function(){};Le.unstable_requestPaint=fN;Le.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=kt;kt=e;try{return t()}finally{kt=n}};Le.unstable_scheduleCallback=function(e,t,n){var i=Le.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0i?(e.sortIndex=n,id(Nr,e),In($n)===null&&e===In(Nr)&&(Ea?Rs():Ea=!0,_a(ad,n-i))):(e.sortIndex=a,id($n,e),gi||Bs||(gi=!0,ro(ld))),e};Le.unstable_wrapCallback=function(e){var t=kt;return function(){var n=kt;kt=t;try{return e.apply(this,arguments)}finally{kt=n}}}});var Yy=Ue((FI,qy)=>{"use strict";qy.exports=Ky()});var Lw=Ue(Cn=>{"use strict";var Au=re(),Ge=Os(),gt=Yy();function H(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),dN=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Xy=Object.prototype.hasOwnProperty,Gy={},Qy={};function pN(e){return Xy.call(Qy,e)?!0:Xy.call(Gy,e)?!1:dN.test(e)?Qy[e]=!0:(Gy[e]=!0,!1)}function hN(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function gN(e,t,n,i){if(t===null||typeof t>"u"||hN(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ft(e,t,n,i,a,l,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=u}var wt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){wt[e]=new Ft(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];wt[t]=new Ft(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){wt[e]=new Ft(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){wt[e]=new Ft(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){wt[e]=new Ft(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){wt[e]=new Ft(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){wt[e]=new Ft(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){wt[e]=new Ft(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){wt[e]=new Ft(e,5,!1,e.toLowerCase(),null,!1,!1)});var mp=/[\-:]([a-z])/g;function vp(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(mp,vp);wt[t]=new Ft(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(mp,vp);wt[t]=new Ft(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(mp,vp);wt[t]=new Ft(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){wt[e]=new Ft(e,1,!1,e.toLowerCase(),null,!1,!1)});wt.xlinkHref=new Ft("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){wt[e]=new Ft(e,1,!1,e.toLowerCase(),null,!0,!0)});function yp(e,t,n,i){var a=wt.hasOwnProperty(t)?wt[t]:null,l=a!==null?a.type===0:i?!1:!(!(2c||a[u]!==l[c])return` -`+a[u].replace(" at new "," at ");while(1<=u&&0<=c);break}}}finally{Fd=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Za(e):""}function BP(e){switch(e.tag){case 5:return Za(e.type);case 16:return Za("Lazy");case 13:return Za("Suspense");case 19:return Za("SuspenseList");case 0:case 2:case 15:return e=tu(e.type,!1),e;case 11:return e=tu(e.type.render,!1),e;case 22:return e=tu(e.type._render,!1),e;case 1:return e=tu(e.type,!0),e;default:return""}}function bo(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Fr:return"Fragment";case _i:return"Portal";case nl:return"Profiler";case qp:return"StrictMode";case rl:return"Suspense";case Cu:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Yp:return(e.displayName||"Context")+".Consumer";case Kp:return(e._context.displayName||"Context")+".Provider";case Yu:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case Xu:return bo(e.type);case Gp:return bo(e._render);case Xp:t=e._payload,e=e._init;try{return bo(e(t))}catch(n){}}return null}function Yr(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function b1(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function zP(e){var t=b1(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(u){i=""+u,l.call(this,u)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(u){i=""+u},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function nu(e){e._valueTracker||(e._valueTracker=zP(e))}function T1(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=b1(e)?e.checked?"true":"false":e.value),e=i,e!==n?(t.setValue(e),!0):!1}function bu(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch(t){return e.body}}function ip(e,t){var n=t.checked;return Qe({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n!=null?n:e._wrapperState.initialChecked})}function m0(e,t){var n=t.defaultValue==null?"":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;n=Yr(t.value!=null?t.value:n),e._wrapperState={initialChecked:i,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function k1(e,t){t=t.checked,t!=null&&Vp(e,"checked",t,!1)}function op(e,t){k1(e,t);var n=Yr(t.value),i=t.type;if(n!=null)i==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ap(e,t.type,n):t.hasOwnProperty("defaultValue")&&ap(e,t.type,Yr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function g0(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var i=t.type;if(!(i!=="submit"&&i!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ap(e,t,n){(t!=="number"||bu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function jP(e){var t="";return Ku.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}function lp(e,t){return e=Qe({children:void 0},t),(t=jP(t.children))&&(e.children=t),e}function To(e,t,n,i){if(e=e.options,t){t={};for(var a=0;a=n.length))throw Error(V(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Yr(n)}}function N1(e,t){var n=Yr(t.value),i=Yr(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),i!=null&&(e.defaultValue=""+i)}function y0(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}var up={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function O1(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function cp(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?O1(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ru,P1=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,i,a){MSApp.execUnsafeLocalFunction(function(){return e(t,n,i,a)})}:e}(function(e,t){if(e.namespaceURI!==up.svg||"innerHTML"in e)e.innerHTML=t;else{for(ru=ru||document.createElement("div"),ru.innerHTML=""+t.valueOf().toString()+"",t=ru.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ml(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var il={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},$P=["Webkit","ms","Moz","O"];Object.keys(il).forEach(function(e){$P.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),il[t]=il[e]})});function D1(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||il.hasOwnProperty(e)&&il[e]?(""+t).trim():t+"px"}function I1(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var i=n.indexOf("--")===0,a=D1(n,t[n],i);n==="float"&&(n="cssFloat"),i?e.setProperty(n,a):e[n]=a}}var WP=Qe({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fp(e,t){if(t){if(WP[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(V(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(V(60));if(!(typeof t.dangerouslySetInnerHTML=="object"&&"__html"in t.dangerouslySetInnerHTML))throw Error(V(61))}if(t.style!=null&&typeof t.style!="object")throw Error(V(62))}}function dp(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Jp(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var pp=null,ko=null,No=null;function w0(e){if(e=Ol(e)){if(typeof pp!="function")throw Error(V(280));var t=e.stateNode;t&&(t=tc(t),pp(e.stateNode,e.type,t))}}function A1(e){ko?No?No.push(e):No=[e]:ko=e}function L1(){if(ko){var e=ko,t=No;if(No=ko=null,w0(e),t)for(e=0;ei?0:1<n;n++)t.push(e);return t}function Qu(e,t,n){e.pendingLanes|=t;var i=t-1;e.suspendedLanes&=i,e.pingedLanes&=i,e=e.eventTimes,t=31-Xr(t),e[t]=n}var Xr=Math.clz32?Math.clz32:oD,rD=Math.log,iD=Math.LN2;function oD(e){return e===0?32:31-(rD(e)/iD|0)|0}var aD=gt.unstable_UserBlockingPriority,lD=gt.unstable_runWithPriority,mu=!0;function sD(e,t,n,i){Ei||th();var a=ah,l=Ei;Ei=!0;try{M1(a,e,t,n,i)}finally{(Ei=l)||nh()}}function uD(e,t,n,i){lD(aD,ah.bind(null,e,t,n,i))}function ah(e,t,n,i){if(mu){var a;if((a=(t&4)===0)&&0=al),O0=String.fromCharCode(32),P0=!1;function Z1(e,t){switch(e){case"keyup":return ID.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function J1(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var xo=!1;function LD(e,t){switch(e){case"compositionend":return J1(t);case"keypress":return t.which!==32?null:(P0=!0,O0);case"textInput":return e=t.data,e===O0&&P0?null:e;default:return null}}function MD(e,t){if(xo)return e==="compositionend"||!fh&&Z1(e,t)?(e=G1(),gu=sh=Rr=null,xo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=A0(n)}}function rw(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?rw(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function M0(){for(var e=window,t=bu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch(i){n=!1}if(n)e=t.contentWindow;else break;t=bu(e.document)}return t}function yp(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var VD=yr&&"documentMode"in document&&11>=document.documentMode,_o=null,wp=null,sl=null,xp=!1;function F0(e,t,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;xp||_o==null||_o!==bu(i)||(i=_o,"selectionStart"in i&&yp(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),sl&&_l(sl,i)||(sl=i,i=Ou(wp,"onSelect"),0So||(e.current=Ep[So],Ep[So]=null,So--)}function nt(e,t){So++,Ep[So]=e.current,e.current=t}var Gr={},It=Jr(Gr),Kt=Jr(!1),ki=Gr;function Fo(e,t){var n=e.type.contextTypes;if(!n)return Gr;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var a={},l;for(l in n)a[l]=t[l];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Yt(e){return e=e.childContextTypes,e!=null}function Iu(){Xe(Kt),Xe(It)}function H0(e,t,n){if(It.current!==Gr)throw Error(V(168));nt(It,t),nt(Kt,n)}function fw(e,t,n){var i=e.stateNode;if(e=t.childContextTypes,typeof i.getChildContext!="function")return n;i=i.getChildContext();for(var a in i)if(!(a in e))throw Error(V(108,bo(t)||"Unknown",a));return Qe({},n,i)}function yu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Gr,ki=It.current,nt(It,e),nt(Kt,Kt.current),!0}function V0(e,t,n){var i=e.stateNode;if(!i)throw Error(V(169));n?(e=fw(e,t,ki),i.__reactInternalMemoizedMergedChildContext=e,Xe(Kt),Xe(It),nt(It,e)):Xe(Kt),nt(Kt,n)}var ph=null,Ti=null,YD=gt.unstable_runWithPriority,hh=gt.unstable_scheduleCallback,Sp=gt.unstable_cancelCallback,XD=gt.unstable_shouldYield,q0=gt.unstable_requestPaint,Cp=gt.unstable_now,GD=gt.unstable_getCurrentPriorityLevel,nc=gt.unstable_ImmediatePriority,dw=gt.unstable_UserBlockingPriority,pw=gt.unstable_NormalPriority,hw=gt.unstable_LowPriority,mw=gt.unstable_IdlePriority,Yd={},QD=q0!==void 0?q0:function(){},pr=null,wu=null,Xd=!1,K0=Cp(),Pt=1e4>K0?Cp:function(){return Cp()-K0};function Ro(){switch(GD()){case nc:return 99;case dw:return 98;case pw:return 97;case hw:return 96;case mw:return 95;default:throw Error(V(332))}}function gw(e){switch(e){case 99:return nc;case 98:return dw;case 97:return pw;case 96:return hw;case 95:return mw;default:throw Error(V(332))}}function Ni(e,t){return e=gw(e),YD(e,t)}function Sl(e,t,n){return e=gw(e),hh(e,t,n)}function Yn(){if(wu!==null){var e=wu;wu=null,Sp(e)}vw()}function vw(){if(!Xd&&pr!==null){Xd=!0;var e=0;try{var t=pr;Ni(99,function(){for(;eG?(ae=H,H=null):ae=H.sibling;var W=E(_,H,g[G],b);if(W===null){H===null&&(H=ae);break}e&&H&&W.alternate===null&&t(_,H),y=l(W,y,G),X===null?D=W:X.sibling=W,X=W,H=ae}if(G===g.length)return n(_,H),D;if(H===null){for(;GG?(ae=H,H=null):ae=H.sibling;var ye=E(_,H,W.value,b);if(ye===null){H===null&&(H=ae);break}e&&H&&ye.alternate===null&&t(_,H),y=l(ye,y,G),X===null?D=ye:X.sibling=ye,X=ye,H=ae}if(W.done)return n(_,H),D;if(H===null){for(;!W.done;G++,W=g.next())W=x(_,W.value,b),W!==null&&(y=l(W,y,G),X===null?D=W:X.sibling=W,X=W);return D}for(H=i(_,H);!W.done;G++,W=g.next())W=C(H,_,G,W.value,b),W!==null&&(e&&W.alternate!==null&&H.delete(W.key===null?G:W.key),y=l(W,y,G),X===null?D=W:X.sibling=W,X=W);return e&&H.forEach(function(U){return t(_,U)}),D}return function(_,y,g,b){var D=typeof g=="object"&&g!==null&&g.type===Fr&&g.key===null;D&&(g=g.props.children);var X=typeof g=="object"&&g!==null;if(X)switch(g.$$typeof){case Qa:e:{for(X=g.key,D=y;D!==null;){if(D.key===X){switch(D.tag){case 7:if(g.type===Fr){n(_,D.sibling),y=a(D,g.props.children),y.return=_,_=y;break e}break;default:if(D.elementType===g.type){n(_,D.sibling),y=a(D,g.props),y.ref=Ha(_,D,g),y.return=_,_=y;break e}}n(_,D);break}else t(_,D);D=D.sibling}g.type===Fr?(y=Lo(g.props.children,_.mode,b,g.key),y.return=_,_=y):(b=Su(g.type,g.key,g.props,null,_.mode,b),b.ref=Ha(_,y,g),b.return=_,_=b)}return u(_);case _i:e:{for(D=g.key;y!==null;){if(y.key===D)if(y.tag===4&&y.stateNode.containerInfo===g.containerInfo&&y.stateNode.implementation===g.implementation){n(_,y.sibling),y=a(y,g.children||[]),y.return=_,_=y;break e}else{n(_,y);break}else t(_,y);y=y.sibling}y=tp(g,_.mode,b),y.return=_,_=y}return u(_)}if(typeof g=="string"||typeof g=="number")return g=""+g,y!==null&&y.tag===6?(n(_,y.sibling),y=a(y,g),y.return=_,_=y):(n(_,y),y=ep(g,_.mode,b),y.return=_,_=y),u(_);if(uu(g))return k(_,y,g,b);if(Ba(g))return N(_,y,g,b);if(X&&cu(_,g),typeof g>"u"&&!D)switch(_.tag){case 1:case 22:case 0:case 11:case 15:throw Error(V(152,bo(_.type)||"Component"))}return n(_,y)}}var Ru=Ew(!0),Sw=Ew(!1),Pl={},qn=Jr(Pl),bl=Jr(Pl),Tl=Jr(Pl);function Ci(e){if(e===Pl)throw Error(V(174));return e}function Tp(e,t){switch(nt(Tl,t),nt(bl,e),nt(qn,Pl),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:cp(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=cp(t,e)}Xe(qn),nt(qn,t)}function Uo(){Xe(qn),Xe(bl),Xe(Tl)}function Z0(e){Ci(Tl.current);var t=Ci(qn.current),n=cp(t,e.type);t!==n&&(nt(bl,e),nt(qn,n))}function yh(e){bl.current===e&&(Xe(qn),Xe(bl))}var tt=Jr(0);function Uu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&64)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var mr=null,Br=null,Kn=!1;function Cw(e,t){var n=En(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function J0(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,!0):!1;case 13:return!1;default:return!1}}function kp(e){if(Kn){var t=Br;if(t){var n=t;if(!J0(e,t)){if(t=Oo(n.nextSibling),!t||!J0(e,t)){e.flags=e.flags&-1025|2,Kn=!1,mr=e;return}Cw(mr,n)}mr=e,Br=Oo(t.firstChild)}else e.flags=e.flags&-1025|2,Kn=!1,mr=e}}function e1(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;mr=e}function fu(e){if(e!==mr)return!1;if(!Kn)return e1(e),Kn=!0,!1;var t=e.type;if(e.tag!==5||t!=="head"&&t!=="body"&&!_p(t,e.memoizedProps))for(t=Br;t;)Cw(e,t),t=Oo(t.nextSibling);if(e1(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(V(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Br=Oo(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Br=null}}else Br=mr?Oo(e.stateNode.nextSibling):null;return!0}function Gd(){Br=mr=null,Kn=!1}var Do=[];function wh(){for(var e=0;el))throw Error(V(301));l+=1,yt=Ot=null,t.updateQueue=null,ul.current=nI,e=n(i,a)}while(cl)}if(ul.current=Wu,t=Ot!==null&&Ot.next!==null,kl=0,yt=Ot=ot=null,Bu=!1,t)throw Error(V(300));return e}function bi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return yt===null?ot.memoizedState=yt=e:yt=yt.next=e,yt}function Ai(){if(Ot===null){var e=ot.alternate;e=e!==null?e.memoizedState:null}else e=Ot.next;var t=yt===null?ot.memoizedState:yt.next;if(t!==null)yt=t,Ot=e;else{if(e===null)throw Error(V(310));Ot=e,e={memoizedState:Ot.memoizedState,baseState:Ot.baseState,baseQueue:Ot.baseQueue,queue:Ot.queue,next:null},yt===null?ot.memoizedState=yt=e:yt=yt.next=e}return yt}function Hn(e,t){return typeof t=="function"?t(e):t}function Va(e){var t=Ai(),n=t.queue;if(n===null)throw Error(V(311));n.lastRenderedReducer=e;var i=Ot,a=i.baseQueue,l=n.pending;if(l!==null){if(a!==null){var u=a.next;a.next=l.next,l.next=u}i.baseQueue=a=l,n.pending=null}if(a!==null){a=a.next,i=i.baseState;var c=u=l=null,d=a;do{var p=d.lane;if((kl&p)===p)c!==null&&(c=c.next={lane:0,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null}),i=d.eagerReducer===e?d.eagerState:e(i,d.action);else{var w={lane:p,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null};c===null?(u=c=w,l=i):c=c.next=w,ot.lanes|=p,Dl|=p}d=d.next}while(d!==null&&d!==a);c===null?l=i:c.next=u,_n(i,t.memoizedState)||(Fn=!0),t.memoizedState=i,t.baseState=l,t.baseQueue=c,n.lastRenderedState=i}return[t.memoizedState,n.dispatch]}function qa(e){var t=Ai(),n=t.queue;if(n===null)throw Error(V(311));n.lastRenderedReducer=e;var i=n.dispatch,a=n.pending,l=t.memoizedState;if(a!==null){n.pending=null;var u=a=a.next;do l=e(l,u.action),u=u.next;while(u!==a);_n(l,t.memoizedState)||(Fn=!0),t.memoizedState=l,t.baseQueue===null&&(t.baseState=l),n.lastRenderedState=l}return[l,i]}function t1(e,t,n){var i=t._getVersion;i=i(t._source);var a=t._workInProgressVersionPrimary;if(a!==null?e=a===i:(e=e.mutableReadLanes,(e=(kl&e)===e)&&(t._workInProgressVersionPrimary=i,Do.push(t))),e)return n(t._source);throw Do.push(t),Error(V(350))}function bw(e,t,n,i){var a=Ft;if(a===null)throw Error(V(349));var l=t._getVersion,u=l(t._source),c=ul.current,d=c.useState(function(){return t1(a,t,n)}),p=d[1],w=d[0];d=yt;var x=e.memoizedState,E=x.refs,C=E.getSnapshot,k=x.source;x=x.subscribe;var N=ot;return e.memoizedState={refs:E,source:t,subscribe:i},c.useEffect(function(){E.getSnapshot=n,E.setSnapshot=p;var _=l(t._source);if(!_n(u,_)){_=n(t._source),_n(w,_)||(p(_),_=Vr(N),a.mutableReadLanes|=_&a.pendingLanes),_=a.mutableReadLanes,a.entangledLanes|=_;for(var y=a.entanglements,g=_;0n?98:n,function(){e(!0)}),Ni(97<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=u.createElement(n,{is:i.is}):(e=u.createElement(n),n==="select"&&(u=e,i.multiple?u.multiple=!0:i.size&&(u.size=i.size))):e=u.createElementNS(e,n),e[Ur]=t,e[Du]=i,Lw(e,t,!1,!1),t.stateNode=e,u=dp(n,i),n){case"dialog":Ye("cancel",e),Ye("close",e),a=i;break;case"iframe":case"object":case"embed":Ye("load",e),a=i;break;case"video":case"audio":for(a=0;aRp&&(t.flags|=64,l=!0,Ya(i,!1),t.lanes=33554432)}else{if(!l)if(e=Uu(u),e!==null){if(t.flags|=64,l=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ya(i,!0),i.tail===null&&i.tailMode==="hidden"&&!u.alternate&&!Kn)return t=t.lastEffect=i.lastEffect,t!==null&&(t.nextEffect=null),null}else 2*Pt()-i.renderingStartTime>Rp&&n!==1073741824&&(t.flags|=64,l=!0,Ya(i,!1),t.lanes=33554432);i.isBackwards?(u.sibling=t.child,t.child=u):(n=i.last,n!==null?n.sibling=u:t.child=u,i.last=u)}return i.tail!==null?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.lastEffect=t.lastEffect,i.renderingStartTime=Pt(),n.sibling=null,t=tt.current,nt(tt,l?t&1|2:t&1),n):null;case 23:case 24:return Oh(),e!==null&&e.memoizedState!==null!=(t.memoizedState!==null)&&i.mode!=="unstable-defer-without-hiding"&&(t.flags|=4),null}throw Error(V(156,t.tag))}function oI(e){switch(e.tag){case 1:Yt(e.type)&&Iu();var t=e.flags;return t&4096?(e.flags=t&-4097|64,e):null;case 3:if(Uo(),Xe(Kt),Xe(It),wh(),t=e.flags,(t&64)!==0)throw Error(V(285));return e.flags=t&-4097|64,e;case 5:return yh(e),null;case 13:return Xe(tt),t=e.flags,t&4096?(e.flags=t&-4097|64,e):null;case 19:return Xe(tt),null;case 4:return Uo(),null;case 10:return gh(e),null;case 23:case 24:return Oh(),null;default:return null}}function bh(e,t){try{var n="",i=t;do n+=BP(i),i=i.return;while(i);var a=n}catch(l){a=` +`+a[u].replace(" at new "," at ");while(1<=u&&0<=c);break}}}finally{ud=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Fa(e):""}function mN(e){switch(e.tag){case 5:return Fa(e.type);case 16:return Fa("Lazy");case 13:return Fa("Suspense");case 19:return Fa("SuspenseList");case 0:case 2:case 15:return e=zs(e.type,!1),e;case 11:return e=zs(e.type.render,!1),e;case 22:return e=zs(e.type._render,!1),e;case 1:return e=zs(e.type,!0),e;default:return""}}function go(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ar:return"Fragment";case vi:return"Portal";case za:return"Profiler";case wp:return"StrictMode";case $a:return"Suspense";case uu:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case _p:return(e.displayName||"Context")+".Consumer";case xp:return(e._context.displayName||"Context")+".Provider";case Iu:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case Lu:return go(e.type);case Sp:return go(e._render);case Ep:t=e._payload,e=e._init;try{return go(e(t))}catch(n){}}return null}function Hr(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function u1(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function vN(e){var t=u1(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(u){i=""+u,l.call(this,u)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(u){i=""+u},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function $s(e){e._valueTracker||(e._valueTracker=vN(e))}function c1(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=u1(e)?e.checked?"true":"false":e.value),e=i,e!==n?(t.setValue(e),!0):!1}function cu(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Od(e,t){var n=t.checked;return Ge({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n!=null?n:e._wrapperState.initialChecked})}function Jy(e,t){var n=t.defaultValue==null?"":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;n=Hr(t.value!=null?t.value:n),e._wrapperState={initialChecked:i,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function f1(e,t){t=t.checked,t!=null&&yp(e,"checked",t,!1)}function Ad(e,t){f1(e,t);var n=Hr(t.value),i=t.type;if(n!=null)i==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Id(e,t.type,n):t.hasOwnProperty("defaultValue")&&Id(e,t.type,Hr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function e0(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var i=t.type;if(!(i!=="submit"&&i!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Id(e,t,n){(t!=="number"||cu(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function yN(e){var t="";return Au.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}function Ld(e,t){return e=Ge({children:void 0},t),(t=yN(t.children))&&(e.children=t),e}function mo(e,t,n,i){if(e=e.options,t){t={};for(var a=0;a=n.length))throw Error(H(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Hr(n)}}function d1(e,t){var n=Hr(t.value),i=Hr(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),i!=null&&(e.defaultValue=""+i)}function n0(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}var Fd={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function p1(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Rd(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?p1(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var js,h1=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,i,a){MSApp.execUnsafeLocalFunction(function(){return e(t,n,i,a)})}:e}(function(e,t){if(e.namespaceURI!==Fd.svg||"innerHTML"in e)e.innerHTML=t;else{for(js=js||document.createElement("div"),js.innerHTML=""+t.valueOf().toString()+"",t=js.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ja(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ja={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},wN=["Webkit","ms","Moz","O"];Object.keys(ja).forEach(function(e){wN.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ja[t]=ja[e]})});function g1(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||ja.hasOwnProperty(e)&&ja[e]?(""+t).trim():t+"px"}function m1(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var i=n.indexOf("--")===0,a=g1(n,t[n],i);n==="float"&&(n="cssFloat"),i?e.setProperty(n,a):e[n]=a}}var xN=Ge({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ud(e,t){if(t){if(xN[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(H(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(H(60));if(!(typeof t.dangerouslySetInnerHTML=="object"&&"__html"in t.dangerouslySetInnerHTML))throw Error(H(61))}if(t.style!=null&&typeof t.style!="object")throw Error(H(62))}}function Bd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Tp(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var zd=null,vo=null,yo=null;function r0(e){if(e=pl(e)){if(typeof zd!="function")throw Error(H(280));var t=e.stateNode;t&&(t=zu(t),zd(e.stateNode,e.type,t))}}function v1(e){vo?yo?yo.push(e):yo=[e]:vo=e}function y1(){if(vo){var e=vo,t=yo;if(yo=vo=null,r0(e),t)for(e=0;ei?0:1<n;n++)t.push(e);return t}function Fu(e,t,n){e.pendingLanes|=t;var i=t-1;e.suspendedLanes&=i,e.pingedLanes&=i,e=e.eventTimes,t=31-Vr(t),e[t]=n}var Vr=Math.clz32?Math.clz32:FN,LN=Math.log,MN=Math.LN2;function FN(e){return e===0?32:31-(LN(e)/MN|0)|0}var RN=gt.unstable_UserBlockingPriority,UN=gt.unstable_runWithPriority,eu=!0;function BN(e,t,n,i){yi||Pp();var a=Ip,l=yi;yi=!0;try{w1(a,e,t,n,i)}finally{(yi=l)||Dp()}}function zN(e,t,n,i){UN(RN,Ip.bind(null,e,t,n,i))}function Ip(e,t,n,i){if(eu){var a;if((a=(t&4)===0)&&0=Ha),p0=String.fromCharCode(32),h0=!1;function F1(e,t){switch(e){case"keyup":return uO.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function R1(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var uo=!1;function fO(e,t){switch(e){case"compositionend":return R1(t);case"keypress":return t.which!==32?null:(h0=!0,p0);case"textInput":return e=t.data,e===p0&&h0?null:e;default:return null}}function dO(e,t){if(uo)return e==="compositionend"||!Up&&F1(e,t)?(e=L1(),tu=Mp=Ir=null,uo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=v0(n)}}function $1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?$1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function w0(){for(var e=window,t=cu();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch(i){n=!1}if(n)e=t.contentWindow;else break;t=cu(e.document)}return t}function Vd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var EO=gr&&"documentMode"in document&&11>=document.documentMode,co=null,Kd=null,Ka=null,qd=!1;function x0(e,t,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;qd||co==null||co!==cu(i)||(i=co,"selectionStart"in i&&Vd(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ka&&ol(Ka,i)||(Ka=i,i=hu(Kd,"onSelect"),0po||(e.current=Xd[po],Xd[po]=null,po--)}function nt(e,t){po++,Xd[po]=e.current,e.current=t}var Kr={},Ot=Xr(Kr),Kt=Xr(!1),Si=Kr;function To(e,t){var n=e.type.contextTypes;if(!n)return Kr;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var a={},l;for(l in n)a[l]=t[l];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function qt(e){return e=e.childContextTypes,e!=null}function vu(){Ye(Kt),Ye(Ot)}function P0(e,t,n){if(Ot.current!==Kr)throw Error(H(168));nt(Ot,t),nt(Kt,n)}function X1(e,t,n){var i=e.stateNode;if(e=t.childContextTypes,typeof i.getChildContext!="function")return n;i=i.getChildContext();for(var a in i)if(!(a in e))throw Error(H(108,go(t)||"Unknown",a));return Ge({},n,i)}function ru(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Kr,Si=Ot.current,nt(Ot,e),nt(Kt,Kt.current),!0}function D0(e,t,n){var i=e.stateNode;if(!i)throw Error(H(169));n?(e=X1(e,t,Si),i.__reactInternalMemoizedMergedChildContext=e,Ye(Kt),Ye(Ot),nt(Ot,e)):Ye(Kt),nt(Kt,n)}var zp=null,Ei=null,bO=gt.unstable_runWithPriority,$p=gt.unstable_scheduleCallback,Gd=gt.unstable_cancelCallback,TO=gt.unstable_shouldYield,N0=gt.unstable_requestPaint,Qd=gt.unstable_now,kO=gt.unstable_getCurrentPriorityLevel,$u=gt.unstable_ImmediatePriority,G1=gt.unstable_UserBlockingPriority,Q1=gt.unstable_NormalPriority,Z1=gt.unstable_LowPriority,J1=gt.unstable_IdlePriority,_d={},PO=N0!==void 0?N0:function(){},cr=null,iu=null,Ed=!1,O0=Qd(),Dt=1e4>O0?Qd:function(){return Qd()-O0};function ko(){switch(kO()){case $u:return 99;case G1:return 98;case Q1:return 97;case Z1:return 96;case J1:return 95;default:throw Error(H(332))}}function ew(e){switch(e){case 99:return $u;case 98:return G1;case 97:return Q1;case 96:return Z1;case 95:return J1;default:throw Error(H(332))}}function Ci(e,t){return e=ew(e),bO(e,t)}function ll(e,t,n){return e=ew(e),$p(e,t,n)}function qn(){if(iu!==null){var e=iu;iu=null,Gd(e)}tw()}function tw(){if(!Ed&&cr!==null){Ed=!0;var e=0;try{var t=cr;Ci(99,function(){for(;ez?(X=V,V=null):X=V.sibling;var ee=E(_,V,m[z],b);if(ee===null){V===null&&(V=X);break}e&&V&&ee.alternate===null&&t(_,V),w=l(ee,w,z),q===null?N=ee:q.sibling=ee,q=ee,V=X}if(z===m.length)return n(_,V),N;if(V===null){for(;zz?(X=V,V=null):X=V.sibling;var ke=E(_,V,ee.value,b);if(ke===null){V===null&&(V=X);break}e&&V&&ke.alternate===null&&t(_,V),w=l(ke,w,z),q===null?N=ke:q.sibling=ke,q=ke,V=X}if(ee.done)return n(_,V),N;if(V===null){for(;!ee.done;z++,ee=m.next())ee=x(_,ee.value,b),ee!==null&&(w=l(ee,w,z),q===null?N=ee:q.sibling=ee,q=ee);return N}for(V=i(_,V);!ee.done;z++,ee=m.next())ee=C(V,_,z,ee.value,b),ee!==null&&(e&&ee.alternate!==null&&V.delete(ee.key===null?z:ee.key),w=l(ee,w,z),q===null?N=ee:q.sibling=ee,q=ee);return e&&V.forEach(function(j){return t(_,j)}),N}return function(_,w,m,b){var N=typeof m=="object"&&m!==null&&m.type===Ar&&m.key===null;N&&(m=m.props.children);var q=typeof m=="object"&&m!==null;if(q)switch(m.$$typeof){case Ma:e:{for(q=m.key,N=w;N!==null;){if(N.key===q){switch(N.tag){case 7:if(m.type===Ar){n(_,N.sibling),w=a(N,m.props.children),w.return=_,_=w;break e}break;default:if(N.elementType===m.type){n(_,N.sibling),w=a(N,m.props),w.ref=Pa(_,N,m),w.return=_,_=w;break e}}n(_,N);break}else t(_,N);N=N.sibling}m.type===Ar?(w=Co(m.props.children,_.mode,b,m.key),w.return=_,_=w):(b=su(m.type,m.key,m.props,null,_.mode,b),b.ref=Pa(_,w,m),b.return=_,_=b)}return u(_);case vi:e:{for(N=m.key;w!==null;){if(w.key===N)if(w.tag===4&&w.stateNode.containerInfo===m.containerInfo&&w.stateNode.implementation===m.implementation){n(_,w.sibling),w=a(w,m.children||[]),w.return=_,_=w;break e}else{n(_,w);break}else t(_,w);w=w.sibling}w=Pd(m,_.mode,b),w.return=_,_=w}return u(_)}if(typeof m=="string"||typeof m=="number")return m=""+m,w!==null&&w.tag===6?(n(_,w.sibling),w=a(w,m),w.return=_,_=w):(n(_,w),w=kd(m,_.mode,b),w.return=_,_=w),u(_);if(Ys(m))return k(_,w,m,b);if(Sa(m))return P(_,w,m,b);if(q&&Xs(_,m),typeof m>"u"&&!N)switch(_.tag){case 1:case 22:case 0:case 11:case 15:throw Error(H(152,go(_.type)||"Component"))}return n(_,w)}}var Eu=aw(!0),lw=aw(!1),hl={},Vn=Xr(hl),ul=Xr(hl),cl=Xr(hl);function xi(e){if(e===hl)throw Error(H(174));return e}function Jd(e,t){switch(nt(cl,t),nt(ul,e),nt(Vn,hl),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Rd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Rd(t,e)}Ye(Vn),nt(Vn,t)}function Po(){Ye(Vn),Ye(ul),Ye(cl)}function F0(e){xi(cl.current);var t=xi(Vn.current),n=Rd(t,e.type);t!==n&&(nt(ul,e),nt(Vn,n))}function Vp(e){ul.current===e&&(Ye(Vn),Ye(ul))}var tt=Xr(0);function Su(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&64)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var dr=null,Mr=null,Kn=!1;function sw(e,t){var n=xn(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function R0(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,!0):!1;case 13:return!1;default:return!1}}function ep(e){if(Kn){var t=Mr;if(t){var n=t;if(!R0(e,t)){if(t=wo(n.nextSibling),!t||!R0(e,t)){e.flags=e.flags&-1025|2,Kn=!1,dr=e;return}sw(dr,n)}dr=e,Mr=wo(t.firstChild)}else e.flags=e.flags&-1025|2,Kn=!1,dr=e}}function U0(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;dr=e}function Gs(e){if(e!==dr)return!1;if(!Kn)return U0(e),Kn=!0,!1;var t=e.type;if(e.tag!==5||t!=="head"&&t!=="body"&&!Yd(t,e.memoizedProps))for(t=Mr;t;)sw(e,t),t=wo(t.nextSibling);if(U0(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(H(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Mr=wo(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Mr=null}}else Mr=dr?wo(e.stateNode.nextSibling):null;return!0}function Sd(){Mr=dr=null,Kn=!1}var _o=[];function Kp(){for(var e=0;e<_o.length;e++)_o[e]._workInProgressVersionPrimary=null;_o.length=0}var qa=ki.ReactCurrentDispatcher,_n=ki.ReactCurrentBatchConfig,fl=0,ot=null,Pt=null,vt=null,Cu=!1,Ya=!1;function Ht(){throw Error(H(321))}function qp(e,t){if(t===null)return!1;for(var n=0;nl))throw Error(H(301));l+=1,vt=Pt=null,t.updateQueue=null,qa.current=IO,e=n(i,a)}while(Ya)}if(qa.current=Pu,t=Pt!==null&&Pt.next!==null,fl=0,vt=Pt=ot=null,Cu=!1,t)throw Error(H(300));return e}function _i(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return vt===null?ot.memoizedState=vt=e:vt=vt.next=e,vt}function Di(){if(Pt===null){var e=ot.alternate;e=e!==null?e.memoizedState:null}else e=Pt.next;var t=vt===null?ot.memoizedState:vt.next;if(t!==null)vt=t,Pt=e;else{if(e===null)throw Error(H(310));Pt=e,e={memoizedState:Pt.memoizedState,baseState:Pt.baseState,baseQueue:Pt.baseQueue,queue:Pt.queue,next:null},vt===null?ot.memoizedState=vt=e:vt=vt.next=e}return vt}function Wn(e,t){return typeof t=="function"?t(e):t}function Da(e){var t=Di(),n=t.queue;if(n===null)throw Error(H(311));n.lastRenderedReducer=e;var i=Pt,a=i.baseQueue,l=n.pending;if(l!==null){if(a!==null){var u=a.next;a.next=l.next,l.next=u}i.baseQueue=a=l,n.pending=null}if(a!==null){a=a.next,i=i.baseState;var c=u=l=null,d=a;do{var p=d.lane;if((fl&p)===p)c!==null&&(c=c.next={lane:0,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null}),i=d.eagerReducer===e?d.eagerState:e(i,d.action);else{var y={lane:p,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null};c===null?(u=c=y,l=i):c=c.next=y,ot.lanes|=p,gl|=p}d=d.next}while(d!==null&&d!==a);c===null?l=i:c.next=u,wn(i,t.memoizedState)||(Mn=!0),t.memoizedState=i,t.baseState=l,t.baseQueue=c,n.lastRenderedState=i}return[t.memoizedState,n.dispatch]}function Na(e){var t=Di(),n=t.queue;if(n===null)throw Error(H(311));n.lastRenderedReducer=e;var i=n.dispatch,a=n.pending,l=t.memoizedState;if(a!==null){n.pending=null;var u=a=a.next;do l=e(l,u.action),u=u.next;while(u!==a);wn(l,t.memoizedState)||(Mn=!0),t.memoizedState=l,t.baseQueue===null&&(t.baseState=l),n.lastRenderedState=l}return[l,i]}function B0(e,t,n){var i=t._getVersion;i=i(t._source);var a=t._workInProgressVersionPrimary;if(a!==null?e=a===i:(e=e.mutableReadLanes,(e=(fl&e)===e)&&(t._workInProgressVersionPrimary=i,_o.push(t))),e)return n(t._source);throw _o.push(t),Error(H(350))}function uw(e,t,n,i){var a=Mt;if(a===null)throw Error(H(349));var l=t._getVersion,u=l(t._source),c=qa.current,d=c.useState(function(){return B0(a,t,n)}),p=d[1],y=d[0];d=vt;var x=e.memoizedState,E=x.refs,C=E.getSnapshot,k=x.source;x=x.subscribe;var P=ot;return e.memoizedState={refs:E,source:t,subscribe:i},c.useEffect(function(){E.getSnapshot=n,E.setSnapshot=p;var _=l(t._source);if(!wn(u,_)){_=n(t._source),wn(y,_)||(p(_),_=$r(P),a.mutableReadLanes|=_&a.pendingLanes),_=a.mutableReadLanes,a.entangledLanes|=_;for(var w=a.entanglements,m=_;0n?98:n,function(){e(!0)}),Ci(97<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=u.createElement(n,{is:i.is}):(e=u.createElement(n),n==="select"&&(u=e,i.multiple?u.multiple=!0:i.size&&(u.size=i.size))):e=u.createElementNS(e,n),e[Lr]=t,e[mu]=i,yw(e,t,!1,!1),t.stateNode=e,u=Bd(n,i),n){case"dialog":qe("cancel",e),qe("close",e),a=i;break;case"iframe":case"object":case"embed":qe("load",e),a=i;break;case"video":case"audio":for(a=0;acp&&(t.flags|=64,l=!0,Aa(i,!1),t.lanes=33554432)}else{if(!l)if(e=Su(u),e!==null){if(t.flags|=64,l=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Aa(i,!0),i.tail===null&&i.tailMode==="hidden"&&!u.alternate&&!Kn)return t=t.lastEffect=i.lastEffect,t!==null&&(t.nextEffect=null),null}else 2*Dt()-i.renderingStartTime>cp&&n!==1073741824&&(t.flags|=64,l=!0,Aa(i,!1),t.lanes=33554432);i.isBackwards?(u.sibling=t.child,t.child=u):(n=i.last,n!==null?n.sibling=u:t.child=u,i.last=u)}return i.tail!==null?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.lastEffect=t.lastEffect,i.renderingStartTime=Dt(),n.sibling=null,t=tt.current,nt(tt,l?t&1|2:t&1),n):null;case 23:case 24:return nh(),e!==null&&e.memoizedState!==null!=(t.memoizedState!==null)&&i.mode!=="unstable-defer-without-hiding"&&(t.flags|=4),null}throw Error(H(156,t.tag))}function FO(e){switch(e.tag){case 1:qt(e.type)&&vu();var t=e.flags;return t&4096?(e.flags=t&-4097|64,e):null;case 3:if(Po(),Ye(Kt),Ye(Ot),Kp(),t=e.flags,(t&64)!==0)throw Error(H(285));return e.flags=t&-4097|64,e;case 5:return Vp(e),null;case 13:return Ye(tt),t=e.flags,t&4096?(e.flags=t&-4097|64,e):null;case 19:return Ye(tt),null;case 4:return Po(),null;case 10:return Wp(e),null;case 23:case 24:return nh(),null;default:return null}}function Zp(e,t){try{var n="",i=t;do n+=mN(i),i=i.return;while(i);var a=n}catch(l){a=` Error generating stack: `+l.message+` -`+l.stack}return{value:e,source:t,stack:a}}function Ip(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var aI=typeof WeakMap=="function"?WeakMap:Map;function Rw(e,t,n){n=Wr(-1,n),n.tag=3,n.payload={element:null};var i=t.value;return n.callback=function(){Vu||(Vu=!0,Up=i),Ip(e,t)},n}function Uw(e,t,n){n=Wr(-1,n),n.tag=3;var i=e.type.getDerivedStateFromError;if(typeof i=="function"){var a=t.value;n.payload=function(){return Ip(e,t),i(a)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(n.callback=function(){typeof i!="function"&&(Vn===null?Vn=new Set([this]):Vn.add(this),Ip(e,t));var u=t.stack;this.componentDidCatch(t.value,{componentStack:u!==null?u:""})}),n}var lI=typeof WeakSet=="function"?WeakSet:Set;function h1(e){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(n){Kr(e,n)}else t.current=null}function sI(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(t.flags&256&&e!==null){var n=e.memoizedProps,i=e.memoizedState;e=t.stateNode,t=e.getSnapshotBeforeUpdate(t.elementType===t.type?n:Mn(t.type,n),i),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:t.flags&256&&dh(t.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(V(163))}function uI(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{if((e.tag&3)===3){var i=e.create;e.destroy=i()}e=e.next}while(e!==t)}if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{var a=e;i=a.next,a=a.tag,(a&4)!==0&&(a&1)!==0&&(Kw(n,e),vI(n,e)),e=i}while(e!==t)}return;case 1:e=n.stateNode,n.flags&4&&(t===null?e.componentDidMount():(i=n.elementType===n.type?t.memoizedProps:Mn(n.type,t.memoizedProps),e.componentDidUpdate(i,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),t=n.updateQueue,t!==null&&X0(n,t,e);return;case 3:if(t=n.updateQueue,t!==null){if(e=null,n.child!==null)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}X0(n,t,e)}return;case 5:e=n.stateNode,t===null&&n.flags&4&&uw(n.type,n.memoizedProps)&&e.focus();return;case 6:return;case 4:return;case 12:return;case 13:n.memoizedState===null&&(n=n.alternate,n!==null&&(n=n.memoizedState,n!==null&&(n=n.dehydrated,n!==null&&$1(n))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(V(163))}function m1(e,t){for(var n=e;;){if(n.tag===5){var i=n.stateNode;if(t)i=i.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none";else{i=n.stateNode;var a=n.memoizedProps.style;a=a!=null&&a.hasOwnProperty("display")?a.display:null,i.style.display=D1("display",a)}}else if(n.tag===6)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((n.tag!==23&&n.tag!==24||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function g1(e,t){if(Ti&&typeof Ti.onCommitFiberUnmount=="function")try{Ti.onCommitFiberUnmount(ph,t)}catch(l){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(e=t.updateQueue,e!==null&&(e=e.lastEffect,e!==null)){var n=e=e.next;do{var i=n,a=i.destroy;if(i=i.tag,a!==void 0)if((i&4)!==0)Kw(t,n);else{i=t;try{a()}catch(l){Kr(i,l)}}n=n.next}while(n!==e)}break;case 1:if(h1(t),e=t.stateNode,typeof e.componentWillUnmount=="function")try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(l){Kr(t,l)}break;case 5:h1(t);break;case 4:Bw(e,t)}}function v1(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function y1(e){return e.tag===5||e.tag===3||e.tag===4}function w1(e){e:{for(var t=e.return;t!==null;){if(y1(t))break e;t=t.return}throw Error(V(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var i=!1;break;case 3:t=t.containerInfo,i=!0;break;case 4:t=t.containerInfo,i=!0;break;default:throw Error(V(161))}n.flags&16&&(ml(t,""),n.flags&=-17);e:t:for(n=e;;){for(;n.sibling===null;){if(n.return===null||y1(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue t;n.child.return=n,n=n.child}if(!(n.flags&2)){n=n.stateNode;break e}}i?Ap(e,n,t):Lp(e,n,t)}function Ap(e,t,n){var i=e.tag,a=i===5||i===6;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Pu));else if(i!==4&&(e=e.child,e!==null))for(Ap(e,t,n),e=e.sibling;e!==null;)Ap(e,t,n),e=e.sibling}function Lp(e,t,n){var i=e.tag,a=i===5||i===6;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(Lp(e,t,n),e=e.sibling;e!==null;)Lp(e,t,n),e=e.sibling}function Bw(e,t){for(var n=t,i=!1,a,l;;){if(!i){i=n.return;e:for(;;){if(i===null)throw Error(V(160));switch(a=i.stateNode,i.tag){case 5:l=!1;break e;case 3:a=a.containerInfo,l=!0;break e;case 4:a=a.containerInfo,l=!0;break e}i=i.return}i=!0}if(n.tag===5||n.tag===6){e:for(var u=e,c=n,d=c;;)if(g1(u,d),d.child!==null&&d.tag!==4)d.child.return=d,d=d.child;else{if(d===c)break e;for(;d.sibling===null;){if(d.return===null||d.return===c)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}l?(u=a,c=n.stateNode,u.nodeType===8?u.parentNode.removeChild(c):u.removeChild(c)):a.removeChild(n.stateNode)}else if(n.tag===4){if(n.child!==null){a=n.stateNode.containerInfo,l=!0,n.child.return=n,n=n.child;continue}}else if(g1(e,n),n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return,n.tag===4&&(i=!1)}n.sibling.return=n.return,n=n.sibling}}function Jd(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do(i.tag&3)===3&&(e=i.destroy,i.destroy=void 0,e!==void 0&&e()),i=i.next;while(i!==n)}return;case 1:return;case 5:if(n=t.stateNode,n!=null){i=t.memoizedProps;var a=e!==null?e.memoizedProps:i;e=t.type;var l=t.updateQueue;if(t.updateQueue=null,l!==null){for(n[Du]=i,e==="input"&&i.type==="radio"&&i.name!=null&&k1(n,i),dp(e,a),t=dp(e,i),a=0;aa&&(a=u),n&=~l}if(n=a,n=Pt()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*fI(n/1960))-n,10a&&(a=u),n&=~l}if(n=a,n=Dt()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*jO(n/1960))-n,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}wt!==5&&(wt=2),d=bh(d,c),E=u;do{switch(E.tag){case 3:l=d,E.flags|=4096,t&=-t,E.lanes|=t;var X=Rw(E,l,t);Y0(E,X);break e;case 1:l=d;var H=E.type,G=E.stateNode;if((E.flags&64)===0&&(typeof H.getDerivedStateFromError=="function"||G!==null&&typeof G.componentDidCatch=="function"&&(Vn===null||!Vn.has(G)))){E.flags|=4096,t&=-t,E.lanes|=t;var ae=Uw(E,l,t);Y0(E,ae);break e}}E=E.return}while(E!==null)}qw(n)}catch(W){t=W,pt===n&&n!==null&&(pt=n=n.return);continue}break}while(1)}function Hw(){var e=Hu.current;return Hu.current=Wu,e===null?Wu:e}function tl(e,t){var n=he;he|=16;var i=Hw();Ft===e&&Dt===t||Ao(e,t);do try{pI();break}catch(a){Ww(e,a)}while(1);if(mh(),he=n,Hu.current=i,pt!==null)throw Error(V(261));return Ft=null,Dt=0,wt}function pI(){for(;pt!==null;)Vw(pt)}function hI(){for(;pt!==null&&!XD();)Vw(pt)}function Vw(e){var t=Yw(e.alternate,e,Oi);e.memoizedProps=e.pendingProps,t===null?qw(e):pt=t,Th.current=null}function qw(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&2048)===0){if(n=iI(n,t,Oi),n!==null){pt=n;return}if(n=t,n.tag!==24&&n.tag!==23||n.memoizedState===null||(Oi&1073741824)!==0||(n.mode&4)===0){for(var i=0,a=n.child;a!==null;)i|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=i}e!==null&&(e.flags&2048)===0&&(e.firstEffect===null&&(e.firstEffect=t.firstEffect),t.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1u&&(c=u,u=X,X=c),c=L0(g,X),l=L0(g,u),c&&l&&(D.rangeCount!==1||D.anchorNode!==c.node||D.anchorOffset!==c.offset||D.focusNode!==l.node||D.focusOffset!==l.offset)&&(b=b.createRange(),b.setStart(c.node,c.offset),D.removeAllRanges(),X>u?(D.addRange(b),D.extend(l.node,l.offset)):(b.setEnd(l.node,l.offset),D.addRange(b)))))),b=[],D=g;D=D.parentNode;)D.nodeType===1&&b.push({element:D,left:D.scrollLeft,top:D.scrollTop});for(typeof g.focus=="function"&&g.focus(),g=0;gPt()-Nh?Ao(e,0):kh|=n),bn(e,t)}function xI(e,t){var n=e.stateNode;n!==null&&n.delete(t),t=0,t===0&&(t=e.mode,(t&2)===0?t=1:(t&4)===0?t=Ro()===99?1:2:(hr===0&&(hr=jo),t=yo(62914560&~hr),t===0&&(t=4194304))),n=ln(),e=oc(e,t),e!==null&&(Qu(e,t,n),bn(e,n))}var Yw;Yw=function(e,t,n){var i=t.lanes;if(e!==null)if(e.memoizedProps!==t.pendingProps||Kt.current)Fn=!0;else if((n&i)!==0)Fn=(e.flags&16384)!==0;else{switch(Fn=!1,t.tag){case 3:l1(t),Gd();break;case 5:Z0(t);break;case 1:Yt(t.type)&&yu(t);break;case 4:Tp(t,t.stateNode.containerInfo);break;case 10:i=t.memoizedProps.value;var a=t.type._context;nt(Au,a._currentValue),a._currentValue=i;break;case 13:if(t.memoizedState!==null)return(n&t.child.childLanes)!==0?s1(e,t,n):(nt(tt,tt.current&1),t=gr(e,t,n),t!==null?t.sibling:null);nt(tt,tt.current&1);break;case 19:if(i=(n&t.childLanes)!==0,(e.flags&64)!==0){if(i)return p1(e,t,n);t.flags|=64}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),nt(tt,tt.current),i)break;return null;case 23:case 24:return t.lanes=0,Qd(e,t,n)}return gr(e,t,n)}else Fn=!1;switch(t.lanes=0,t.tag){case 2:if(i=t.type,e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=Fo(t,It.current),Po(t,n),a=_h(null,t,i,e,a,n),t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,Yt(i)){var l=!0;yu(t)}else l=!1;t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,vh(t);var u=i.getDerivedStateFromProps;typeof u=="function"&&Fu(t,i,u,e),a.updater=rc,t.stateNode=a,a._reactInternals=t,bp(t,i,e,n),t=Pp(null,t,i,!0,l,n)}else t.tag=0,qt(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,l=a._init,a=l(a._payload),t.type=a,l=t.tag=EI(a),e=Mn(a,e),l){case 0:t=Op(null,t,a,e,n);break e;case 1:t=a1(null,t,a,e,n);break e;case 11:t=i1(null,t,a,e,n);break e;case 14:t=o1(null,t,a,Mn(a.type,e),i,n);break e}throw Error(V(306,a,""))}return t;case 0:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Mn(i,a),Op(e,t,i,a,n);case 1:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Mn(i,a),a1(e,t,i,a,n);case 3:if(l1(t),i=t.updateQueue,e===null||i===null)throw Error(V(282));if(i=t.pendingProps,a=t.memoizedState,a=a!==null?a.element:null,ww(e,t),Cl(t,i,null,n),i=t.memoizedState.element,i===a)Gd(),t=gr(e,t,n);else{if(a=t.stateNode,(l=a.hydrate)&&(Br=Oo(t.stateNode.containerInfo.firstChild),mr=t,l=Kn=!0),l){if(e=a.mutableSourceEagerHydrationData,e!=null)for(a=0;a{"use strict";function Qw(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Qw)}catch(e){console.error(e)}}Qw(),Zw.exports=Gw()});var _x=Le(Ho=>{"use strict";var Rn=qs(),wr=ie();function Je(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nAl;Al++)Et[Al]=Al+1;var Et,Al;Et[15]=0;var DI=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Jw=Object.prototype.hasOwnProperty,ex={},tx={};function mx(e){return Jw.call(tx,e)?!0:Jw.call(ex,e)?!1:DI.test(e)?tx[e]=!0:(ex[e]=!0,!1)}function II(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function AI(e,t,n,i){if(t===null||typeof t>"u"||II(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ut(e,t,n,i,a,l,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=u}var St={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){St[e]=new Ut(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];St[t]=new Ut(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){St[e]=new Ut(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){St[e]=new Ut(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){St[e]=new Ut(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){St[e]=new Ut(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){St[e]=new Ut(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){St[e]=new Ut(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){St[e]=new Ut(e,5,!1,e.toLowerCase(),null,!1,!1)});var qh=/[\-:]([a-z])/g;function Kh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(qh,Kh);St[t]=new Ut(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(qh,Kh);St[t]=new Ut(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(qh,Kh);St[t]=new Ut(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){St[e]=new Ut(e,1,!1,e.toLowerCase(),null,!1,!1)});St.xlinkHref=new Ut("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){St[e]=new Ut(e,1,!1,e.toLowerCase(),null,!0,!0)});var LI=/["'&<>]/;function Li(e){if(typeof e=="boolean"||typeof e=="number")return""+e;e=""+e;var t=LI.exec(e);if(t){var n="",i,a=0;for(i=t.index;idc))throw Error(Je(301));if(e===Xn)if(fc=!0,e={action:n,next:null},ni===null&&(ni=new Map),n=ni.get(t),n===void 0)ni.set(t,e);else{for(t=n;t.next!==null;)t=t.next;t.next=e}}function Mh(){}var Fi=null,BI={readContext:function(e){var t=Fi.threadID;return Rl(e,t),e[t]},useContext:function(e){Mi();var t=Fi.threadID;return Rl(e,t),e[t]},useMemo:ix,useReducer:rx,useRef:function(e){Xn=Mi(),$e=Yh();var t=$e.memoizedState;return t===null?(e={current:e},$e.memoizedState=e):t},useState:function(e){return rx(yx,e)},useLayoutEffect:function(){},useCallback:function(e,t){return ix(function(){return e},t)},useImperativeHandle:Mh,useEffect:Mh,useDebugValue:Mh,useDeferredValue:function(e){return Mi(),e},useTransition:function(){return Mi(),[function(e){e()},!1]},useOpaqueIdentifier:function(){return(Fi.identifierPrefix||"")+"R:"+(Fi.uniqueID++).toString(36)},useMutableSource:function(e,t){return Mi(),t(e._source)}},ox={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function ax(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}var wx={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},zI=Rn({menuitem:!0},wx),Fl={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},jI=["Webkit","ms","Moz","O"];Object.keys(Fl).forEach(function(e){jI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Fl[t]=Fl[e]})});var $I=/([A-Z])/g,WI=/^ms-/,ti=wr.Children.toArray,Fh=OI.ReactCurrentDispatcher,HI={listing:!0,pre:!0,textarea:!0},VI=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,lx={},Rh={};function qI(e){if(e==null)return e;var t="";return wr.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}var KI=Object.prototype.hasOwnProperty,YI={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function sx(e,t){if(e===void 0)throw Error(Je(152,Ml(t)||"Component"))}function XI(e,t,n){function i(u,c){var d=c.prototype&&c.prototype.isReactComponent,p=PI(c,t,n,d),w=[],x=!1,E={isMounted:function(){return!1},enqueueForceUpdate:function(){if(w===null)return null},enqueueReplaceState:function(b,D){x=!0,w=[D]},enqueueSetState:function(b,D){if(w===null)return null;w.push(D)}};if(d){if(d=new c(u.props,p,E),typeof c.getDerivedStateFromProps=="function"){var C=c.getDerivedStateFromProps.call(null,u.props,d.state);C!=null&&(d.state=Rn({},d.state,C))}}else if(Xn={},d=c(u.props,p,E),d=gx(c,u.props,d,p),d==null||d.render==null){e=d,sx(e,c);return}if(d.props=u.props,d.context=p,d.updater=E,E=d.state,E===void 0&&(d.state=E=null),typeof d.UNSAFE_componentWillMount=="function"||typeof d.componentWillMount=="function")if(typeof d.componentWillMount=="function"&&typeof c.getDerivedStateFromProps!="function"&&d.componentWillMount(),typeof d.UNSAFE_componentWillMount=="function"&&typeof c.getDerivedStateFromProps!="function"&&d.UNSAFE_componentWillMount(),w.length){E=w;var k=x;if(w=null,x=!1,k&&E.length===1)d.state=E[0];else{C=k?E[0]:d.state;var N=!0;for(k=k?1:0;k=c))throw Error(Je(304));var d=new Uint16Array(c);for(d.set(u),Et=d,Et[0]=l+1,u=l;u=d.children.length){var p=d.footer;if(p!==""&&(this.previousWasTextNode=!1),this.stack.pop(),d.type==="select")this.currentSelectValue=null;else if(d.type!=null&&d.type.type!=null&&d.type.type.$$typeof===uc)this.popProvider(d.type);else if(d.type===cc){this.suspenseDepth--;var w=l.pop();if(u){u=!1;var x=d.fallbackFrame;if(!x)throw Error(Je(303));this.stack.push(x),l[this.suspenseDepth]+="";continue}else l[this.suspenseDepth]+=w}l[this.suspenseDepth]+=p}else{var E=d.children[d.childIndex++],C="";try{C+=this.render(E,d.context,d.domNamespace)}catch(k){throw k!=null&&typeof k.then=="function"?Error(Je(294)):k}finally{}l.length<=this.suspenseDepth&&l.push(""),l[this.suspenseDepth]+=C}}return l[0]}finally{Fh.current=a,Fi=i,vx()}},t.render=function(n,i,a){if(typeof n=="string"||typeof n=="number")return a=""+n,a===""?"":this.makeStaticMarkup?Li(a):this.previousWasTextNode?""+Li(a):(this.previousWasTextNode=!0,Li(a));if(i=XI(n,i,this.threadID),n=i.child,i=i.context,n===null||n===!1)return"";if(!wr.isValidElement(n)){if(n!=null&&n.$$typeof!=null)throw a=n.$$typeof,Error(a===Uh?Je(257):Je(258,a.toString()));return n=ti(n),this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),""}var l=n.type;if(typeof l=="string")return this.renderDOM(n,i,a);switch(l){case px:case dx:case Bh:case zh:case Wh:case sc:return n=ti(n.props.children),this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),"";case cc:throw Error(Je(294));case fx:throw Error(Je(343))}if(typeof l=="object"&&l!==null)switch(l.$$typeof){case $h:Xn={};var u=l.render(n.props,n.ref);return u=gx(l.render,n.props,u,n.ref),u=ti(u),this.stack.push({type:null,domNamespace:a,children:u,childIndex:0,context:i,footer:""}),"";case Hh:return n=[wr.createElement(l.type,Rn({ref:n.ref},n.props))],this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),"";case uc:return l=ti(n.props.children),a={type:n,domNamespace:a,children:l,childIndex:0,context:i,footer:""},this.pushProvider(n),this.stack.push(a),"";case jh:l=n.type,u=n.props;var c=this.threadID;return Rl(l,c),l=ti(u.children(l[c])),this.stack.push({type:n,domNamespace:a,children:l,childIndex:0,context:i,footer:""}),"";case cx:throw Error(Je(338));case Vh:return l=n.type,u=l._init,l=u(l._payload),n=[wr.createElement(l,Rn({ref:n.ref},n.props))],this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),""}throw Error(Je(130,l==null?l:typeof l,""))},t.renderDOM=function(n,i,a){var l=n.type.toLowerCase();if(a===ox.html&&ax(l),!lx.hasOwnProperty(l)){if(!VI.test(l))throw Error(Je(65,l));lx[l]=!0}var u=n.props;if(l==="input")u=Rn({type:void 0},u,{defaultChecked:void 0,defaultValue:void 0,value:u.value!=null?u.value:u.defaultValue,checked:u.checked!=null?u.checked:u.defaultChecked});else if(l==="textarea"){var c=u.value;if(c==null){c=u.defaultValue;var d=u.children;if(d!=null){if(c!=null)throw Error(Je(92));if(Array.isArray(d)){if(!(1>=d.length))throw Error(Je(93));d=d[0]}c=""+d}c==null&&(c="")}u=Rn({},u,{value:void 0,children:""+c})}else if(l==="select")this.currentSelectValue=u.value!=null?u.value:u.defaultValue,u=Rn({},u,{value:void 0});else if(l==="option"){d=this.currentSelectValue;var p=qI(u.children);if(d!=null){var w=u.value!=null?u.value+"":p;if(c=!1,Array.isArray(d)){for(var x=0;x":(D+=">",c="");e:{if(d=u.dangerouslySetInnerHTML,d!=null){if(d.__html!=null){d=d.__html;break e}}else if(d=u.children,typeof d=="string"||typeof d=="number"){d=Li(d);break e}d=null}return d!=null?(u=[],HI.hasOwnProperty(l)&&d.charAt(0)===` -`&&(D+=` -`),D+=d):u=ti(u.children),n=n.type,a=a==null||a==="http://www.w3.org/1999/xhtml"?ax(n):a==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":a,this.stack.push({domNamespace:a,type:l,children:u,childIndex:0,context:i,footer:c}),this.previousWasTextNode=!1,D},e}();Ho.renderToNodeStream=function(){throw Error(Je(207))};Ho.renderToStaticMarkup=function(e,t){e=new xx(e,!0,t);try{return e.read(1/0)}finally{e.destroy()}};Ho.renderToStaticNodeStream=function(){throw Error(Je(208))};Ho.renderToString=function(e,t){e=new xx(e,!1,t);try{return e.read(1/0)}finally{e.destroy()}};Ho.version="17.0.2"});var Sx=Le((fL,Ex)=>{"use strict";Ex.exports=_x()});var bx=Le((dL,Cx)=>{Cx.exports={setup:function(e){"addEventListener"in window?e.handleEvent("DOMContentLoaded",e.handleMount):e.handleEvent("onload",e.handleMount)},teardown:function(e){e.removeEvent("DOMContentLoaded",e.handleMount),e.removeEvent("onload",e.handleMount)}}});var kx=Le((pL,Tx)=>{Tx.exports={setup:function(e){e.handleEvent("ready",e.handleMount),e.handleEvent("pjax:end",e.handleMount),e.handleEvent("pjax:beforeReplace",e.handleUnmount)},teardown:function(e){e.removeEvent("ready",e.handleMount),e.removeEvent("pjax:end",e.handleMount),e.removeEvent("pjax:beforeReplace",e.handleUnmount)}}});var Ox=Le((hL,Nx)=>{Nx.exports={setup:function(e){e.handleEvent("turbolinks:load",e.handleMount),e.handleEvent("turbolinks:before-render",e.handleUnmount)},teardown:function(e){e.removeEvent("turbolinks:load",e.handleMount),e.removeEvent("turbolinks:before-render",e.handleUnmount)}}});var Dx=Le((mL,Px)=>{Px.exports={setup:function(e){Turbolinks.pagesCached(0),e.handleEvent("page:change",e.handleMount),e.handleEvent("page:receive",e.handleUnmount)},teardown:function(e){e.removeEvent("page:change",e.handleMount),e.removeEvent("page:receive",e.handleUnmount)}}});var Ax=Le((gL,Ix)=>{Ix.exports={setup:function(e){e.handleEvent(Turbolinks.EVENTS.CHANGE,e.handleMount),e.handleEvent(Turbolinks.EVENTS.BEFORE_UNLOAD,e.handleUnmount)},teardown:function(e){e.removeEvent(Turbolinks.EVENTS.CHANGE,e.handleMount),e.removeEvent(Turbolinks.EVENTS.BEFORE_UNLOAD,e.handleUnmount)}}});var zx=Le((vL,Bx)=>{var Lx=bx(),Mx=kx(),Fx=Ox(),Rx=Dx(),Ux=Ax();Bx.exports=function(e){e.handleEvent&&(typeof Turbolinks<"u"&&typeof Turbolinks.EVENTS<"u"&&Ux.teardown(e),Fx.teardown(e),Rx.teardown(e),Mx.teardown(e),Lx.teardown(e)),"addEventListener"in window?(e.handleEvent=function(t,n){document.addEventListener(t,n)},e.removeEvent=function(t,n){document.removeEventListener(t,n)}):(e.handleEvent=function(t,n){window.attachEvent(t,n)},e.removeEvent=function(t,n){window.detachEvent(t,n)}),typeof Turbolinks<"u"&&Turbolinks.supported?typeof Turbolinks.EVENTS<"u"?Ux.setup(e):typeof Turbolinks.controller<"u"?Fx.setup(e):Rx.setup(e):typeof $<"u"&&typeof $.pjax=="function"?Mx.setup(e):Lx.setup(e)}});var Xh=Le((exports,module)=>{var topLevel=typeof window>"u"?exports:window;module.exports=function(className){var constructor;return constructor=topLevel[className],constructor||(constructor=eval(className)),constructor&&constructor.default&&(constructor=constructor.default),constructor}});var $x=Le((yL,jx)=>{jx.exports=function(e){return function(t){var n=t.split("."),i=n.shift(),a=n,l=e("./"+i);return a.forEach(function(u){l=l[u]}),l.__esModule&&(l=l.default),l}}});var Hx=Le((wL,Wx)=>{var GI=Xh(),QI=$x();Wx.exports=function(e){var t=QI(e);return function(n){var i;try{i=t(n)}catch(a){try{i=GI(n)}catch(l){console.error(a),console.error(l)}}return i}}});var Kx=Le((xL,qx)=>{var Vx=ie(),pc=Lh(),ZI=Sx(),JI=zx(),eA=Xh(),tA=Hx(),kn={CLASS_NAME_ATTR:"data-react-class",PROPS_ATTR:"data-react-props",RENDER_ATTR:"data-hydrate",CACHE_ID_ATTR:"data-react-cache-id",TURBOLINKS_PERMANENT_ATTR:"data-turbolinks-permanent",jQuery:typeof window<"u"&&typeof window.jQuery<"u"&&window.jQuery,components:{},findDOMNodes:function(e){var t=kn.CLASS_NAME_ATTR,n,i;switch(typeof e){case"undefined":n="["+t+"]",i=document;break;case"object":n="["+t+"]",i=e;break;case"string":n=e+"["+t+"], "+e+" ["+t+"]",i=document;break;default:break}return kn.jQuery?kn.jQuery(n,i):i.querySelectorAll(n)},getConstructor:eA,useContext:function(e){this.getConstructor=tA(e)},serverRender:function(e,t,n){var i=this.getConstructor(t),a=Vx.createElement(i,n);return ZI[e](a)},mountComponents:function(e){for(var t=kn,n=t.findDOMNodes(e),i=0;i{"use strict";var nA="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";Yx.exports=nA});var Jx=Le((EL,Zx)=>{"use strict";var rA=Xx();function Gx(){}function Qx(){}Qx.resetWarningCache=Gx;Zx.exports=function(){function e(i,a,l,u,c,d){if(d!==rA){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Qx,resetWarningCache:Gx};return n.PropTypes=n,n}});var lt=Le((bL,e_)=>{e_.exports=Jx()();var SL,CL});var o_=Le(i_=>{"use strict";var Vo=ie();function iA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var oA=typeof Object.is=="function"?Object.is:iA,aA=Vo.useState,lA=Vo.useEffect,sA=Vo.useLayoutEffect,uA=Vo.useDebugValue;function cA(e,t){var n=t(),i=aA({inst:{value:n,getSnapshot:t}}),a=i[0].inst,l=i[1];return sA(function(){a.value=n,a.getSnapshot=t,Gh(a)&&l({inst:a})},[e,n,t]),lA(function(){return Gh(a)&&l({inst:a}),e(function(){Gh(a)&&l({inst:a})})},[e]),uA(n),n}function Gh(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!oA(e,n)}catch(i){return!0}}function fA(e,t){return t()}var dA=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?fA:cA;i_.useSyncExternalStore=Vo.useSyncExternalStore!==void 0?Vo.useSyncExternalStore:dA});var l_=Le((OL,a_)=>{"use strict";a_.exports=o_()});var u_=Le(s_=>{"use strict";var hc=ie(),pA=l_();function hA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var mA=typeof Object.is=="function"?Object.is:hA,gA=pA.useSyncExternalStore,vA=hc.useRef,yA=hc.useEffect,wA=hc.useMemo,xA=hc.useDebugValue;s_.useSyncExternalStoreWithSelector=function(e,t,n,i,a){var l=vA(null);if(l.current===null){var u={hasValue:!1,value:null};l.current=u}else u=l.current;l=wA(function(){function d(C){if(!p){if(p=!0,w=C,C=i(C),a!==void 0&&u.hasValue){var k=u.value;if(a(k,C))return x=k}return x=C}if(k=x,mA(w,C))return k;var N=i(C);return a!==void 0&&a(k,N)?k:(w=C,x=N)}var p=!1,w,x,E=n===void 0?null:n;return[function(){return d(t())},E===null?void 0:function(){return d(E())}]},[t,n,i,a]);var c=gA(e,l[0],l[1]);return yA(function(){u.hasValue=!0,u.value=c},[c]),xA(c),c}});var f_=Le((DL,c_)=>{"use strict";c_.exports=u_()});var y_=Le((Yo,Bl)=>{(function(){var e,t="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",l="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",p=1,w=2,x=4,E=1,C=2,k=1,N=2,_=4,y=8,g=16,b=32,D=64,X=128,H=256,G=512,ae=30,W="...",ye=800,U=16,F=1,te=2,A=3,L=1/0,xe=9007199254740991,Ve=17976931348623157e292,qe=0/0,Pe=4294967295,ge=Pe-1,R=Pe>>>1,q=[["ary",X],["bind",k],["bindKey",N],["curry",y],["curryRight",g],["flip",G],["partial",b],["partialRight",D],["rearg",H]],oe="[object Arguments]",de="[object Array]",ue="[object AsyncFunction]",le="[object Boolean]",ne="[object Date]",Q="[object DOMException]",we="[object Error]",pe="[object Function]",De="[object GeneratorFunction]",ut="[object Map]",Nn="[object Number]",Jl="[object Null]",nr="[object Object]",Pm="[object Promise]",V_="[object Proxy]",da="[object RegExp]",On="[object Set]",pa="[object String]",es="[object Symbol]",q_="[object Undefined]",ha="[object WeakMap]",K_="[object WeakSet]",ma="[object ArrayBuffer]",Gi="[object DataView]",Hc="[object Float32Array]",Vc="[object Float64Array]",qc="[object Int8Array]",Kc="[object Int16Array]",Yc="[object Int32Array]",Xc="[object Uint8Array]",Gc="[object Uint8ClampedArray]",Qc="[object Uint16Array]",Zc="[object Uint32Array]",Y_=/\b__p \+= '';/g,X_=/\b(__p \+=) '' \+/g,G_=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Dm=/&(?:amp|lt|gt|quot|#39);/g,Im=/[&<>"']/g,Q_=RegExp(Dm.source),Z_=RegExp(Im.source),J_=/<%-([\s\S]+?)%>/g,eE=/<%([\s\S]+?)%>/g,Am=/<%=([\s\S]+?)%>/g,tE=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nE=/^\w*$/,rE=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Jc=/[\\^$.*+?()[\]{}|]/g,iE=RegExp(Jc.source),ef=/^\s+/,oE=/\s/,aE=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,lE=/\{\n\/\* \[wrapped with (.+)\] \*/,sE=/,? & /,uE=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,cE=/[()=,{}\[\]\/\s]/,fE=/\\(\\)?/g,dE=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Lm=/\w*$/,pE=/^[-+]0x[0-9a-f]+$/i,hE=/^0b[01]+$/i,mE=/^\[object .+?Constructor\]$/,gE=/^0o[0-7]+$/i,vE=/^(?:0|[1-9]\d*)$/,yE=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ts=/($^)/,wE=/['\n\r\u2028\u2029\\]/g,ns="\\ud800-\\udfff",xE="\\u0300-\\u036f",_E="\\ufe20-\\ufe2f",EE="\\u20d0-\\u20ff",Mm=xE+_E+EE,Fm="\\u2700-\\u27bf",Rm="a-z\\xdf-\\xf6\\xf8-\\xff",SE="\\xac\\xb1\\xd7\\xf7",CE="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",bE="\\u2000-\\u206f",TE=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Um="A-Z\\xc0-\\xd6\\xd8-\\xde",Bm="\\ufe0e\\ufe0f",zm=SE+CE+bE+TE,tf="['\u2019]",kE="["+ns+"]",jm="["+zm+"]",rs="["+Mm+"]",$m="\\d+",NE="["+Fm+"]",Wm="["+Rm+"]",Hm="[^"+ns+zm+$m+Fm+Rm+Um+"]",nf="\\ud83c[\\udffb-\\udfff]",OE="(?:"+rs+"|"+nf+")",Vm="[^"+ns+"]",rf="(?:\\ud83c[\\udde6-\\uddff]){2}",of="[\\ud800-\\udbff][\\udc00-\\udfff]",Qi="["+Um+"]",qm="\\u200d",Km="(?:"+Wm+"|"+Hm+")",PE="(?:"+Qi+"|"+Hm+")",Ym="(?:"+tf+"(?:d|ll|m|re|s|t|ve))?",Xm="(?:"+tf+"(?:D|LL|M|RE|S|T|VE))?",Gm=OE+"?",Qm="["+Bm+"]?",DE="(?:"+qm+"(?:"+[Vm,rf,of].join("|")+")"+Qm+Gm+")*",IE="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",AE="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Zm=Qm+Gm+DE,LE="(?:"+[NE,rf,of].join("|")+")"+Zm,ME="(?:"+[Vm+rs+"?",rs,rf,of,kE].join("|")+")",FE=RegExp(tf,"g"),RE=RegExp(rs,"g"),af=RegExp(nf+"(?="+nf+")|"+ME+Zm,"g"),UE=RegExp([Qi+"?"+Wm+"+"+Ym+"(?="+[jm,Qi,"$"].join("|")+")",PE+"+"+Xm+"(?="+[jm,Qi+Km,"$"].join("|")+")",Qi+"?"+Km+"+"+Ym,Qi+"+"+Xm,AE,IE,$m,LE].join("|"),"g"),BE=RegExp("["+qm+ns+Mm+Bm+"]"),zE=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,jE=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],$E=-1,Ke={};Ke[Hc]=Ke[Vc]=Ke[qc]=Ke[Kc]=Ke[Yc]=Ke[Xc]=Ke[Gc]=Ke[Qc]=Ke[Zc]=!0,Ke[oe]=Ke[de]=Ke[ma]=Ke[le]=Ke[Gi]=Ke[ne]=Ke[we]=Ke[pe]=Ke[ut]=Ke[Nn]=Ke[nr]=Ke[da]=Ke[On]=Ke[pa]=Ke[ha]=!1;var ze={};ze[oe]=ze[de]=ze[ma]=ze[Gi]=ze[le]=ze[ne]=ze[Hc]=ze[Vc]=ze[qc]=ze[Kc]=ze[Yc]=ze[ut]=ze[Nn]=ze[nr]=ze[da]=ze[On]=ze[pa]=ze[es]=ze[Xc]=ze[Gc]=ze[Qc]=ze[Zc]=!0,ze[we]=ze[pe]=ze[ha]=!1;var WE={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},HE={"&":"&","<":"<",">":">",'"':""","'":"'"},VE={"&":"&","<":"<",">":">",""":'"',"'":"'"},qE={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},KE=parseFloat,YE=parseInt,Jm=typeof global=="object"&&global&&global.Object===Object&&global,XE=typeof self=="object"&&self&&self.Object===Object&&self,ht=Jm||XE||Function("return this")(),lf=typeof Yo=="object"&&Yo&&!Yo.nodeType&&Yo,ci=lf&&typeof Bl=="object"&&Bl&&!Bl.nodeType&&Bl,eg=ci&&ci.exports===lf,sf=eg&&Jm.process,fn=function(){try{var O=ci&&ci.require&&ci.require("util").types;return O||sf&&sf.binding&&sf.binding("util")}catch(M){}}(),tg=fn&&fn.isArrayBuffer,ng=fn&&fn.isDate,rg=fn&&fn.isMap,ig=fn&&fn.isRegExp,og=fn&&fn.isSet,ag=fn&&fn.isTypedArray;function en(O,M,I){switch(I.length){case 0:return O.call(M);case 1:return O.call(M,I[0]);case 2:return O.call(M,I[0],I[1]);case 3:return O.call(M,I[0],I[1],I[2])}return O.apply(M,I)}function GE(O,M,I,Z){for(var me=-1,Ie=O==null?0:O.length;++me-1}function uf(O,M,I){for(var Z=-1,me=O==null?0:O.length;++Z-1;);return I}function hg(O,M){for(var I=O.length;I--&&Zi(M,O[I],0)>-1;);return I}function oS(O,M){for(var I=O.length,Z=0;I--;)O[I]===M&&++Z;return Z}var aS=pf(WE),lS=pf(HE);function sS(O){return"\\"+qE[O]}function uS(O,M){return O==null?e:O[M]}function Ji(O){return BE.test(O)}function cS(O){return zE.test(O)}function fS(O){for(var M,I=[];!(M=O.next()).done;)I.push(M.value);return I}function vf(O){var M=-1,I=Array(O.size);return O.forEach(function(Z,me){I[++M]=[me,Z]}),I}function mg(O,M){return function(I){return O(M(I))}}function Tr(O,M){for(var I=-1,Z=O.length,me=0,Ie=[];++I-1}function ZS(r,o){var s=this.__data__,f=_s(s,r);return f<0?(++this.size,s.push([r,o])):s[f][1]=o,this}rr.prototype.clear=YS,rr.prototype.delete=XS,rr.prototype.get=GS,rr.prototype.has=QS,rr.prototype.set=ZS;function ir(r){var o=-1,s=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function mn(r,o,s,f,h,v){var S,T=o&p,P=o&w,B=o&x;if(s&&(S=h?s(r,f,h,v):s(r)),S!==e)return S;if(!Ze(r))return r;var z=ve(r);if(z){if(S=nb(r),!T)return jt(r,S)}else{var j=kt(r),Y=j==pe||j==De;if(Ar(r))return Qg(r,T);if(j==nr||j==oe||Y&&!h){if(S=P||Y?{}:gv(r),!T)return P?VC(r,hC(S,r)):HC(r,kg(S,r))}else{if(!ze[j])return h?r:{};S=rb(r,j,T)}}v||(v=new Dn);var re=v.get(r);if(re)return re;v.set(r,S),Vv(r)?r.forEach(function(fe){S.add(mn(fe,o,s,fe,r,v))}):Wv(r)&&r.forEach(function(fe,Ce){S.set(Ce,mn(fe,o,s,Ce,r,v))});var ce=B?P?Wf:$f:P?Wt:mt,Ee=z?e:ce(r);return dn(Ee||r,function(fe,Ce){Ee&&(Ce=fe,fe=r[Ce]),Ea(S,Ce,mn(fe,o,s,Ce,r,v))}),S}function mC(r){var o=mt(r);return function(s){return Ng(s,r,o)}}function Ng(r,o,s){var f=s.length;if(r==null)return!f;for(r=Ue(r);f--;){var h=s[f],v=o[h],S=r[h];if(S===e&&!(h in r)||!v(S))return!1}return!0}function Og(r,o,s){if(typeof r!="function")throw new pn(a);return Oa(function(){r.apply(e,s)},o)}function Sa(r,o,s,f){var h=-1,v=is,S=!0,T=r.length,P=[],B=o.length;if(!T)return P;s&&(o=Ge(o,tn(s))),f?(v=uf,S=!1):o.length>=n&&(v=ga,S=!1,o=new pi(o));e:for(;++hh?0:h+s),f=f===e||f>h?h:_e(f),f<0&&(f+=h),f=s>f?0:Kv(f);s0&&s(T)?o>1?vt(T,o-1,s,f,h):br(h,T):f||(h[h.length]=T)}return h}var Cf=rv(),Ig=rv(!0);function Un(r,o){return r&&Cf(r,o,mt)}function bf(r,o){return r&&Ig(r,o,mt)}function Ss(r,o){return Cr(o,function(s){return ur(r[s])})}function mi(r,o){o=Dr(o,r);for(var s=0,f=o.length;r!=null&&so}function yC(r,o){return r!=null&&Re.call(r,o)}function wC(r,o){return r!=null&&o in Ue(r)}function xC(r,o,s){return r>=Tt(o,s)&&r=120&&z.length>=120)?new pi(S&&z):e}z=r[0];var j=-1,Y=T[0];e:for(;++j-1;)T!==r&&hs.call(T,P,1),hs.call(r,P,1);return r}function Wg(r,o){for(var s=r?o.length:0,f=s-1;s--;){var h=o[s];if(s==f||h!==v){var v=h;sr(h)?hs.call(r,h,1):Mf(r,h)}}return r}function If(r,o){return r+vs(Sg()*(o-r+1))}function AC(r,o,s,f){for(var h=-1,v=ft(gs((o-r)/(s||1)),0),S=I(v);v--;)S[f?v:++h]=r,r+=s;return S}function Af(r,o){var s="";if(!r||o<1||o>xe)return s;do o%2&&(s+=r),o=vs(o/2),o&&(r+=r);while(o);return s}function Se(r,o){return Gf(wv(r,o,Ht),r+"")}function LC(r){return Tg(uo(r))}function MC(r,o){var s=uo(r);return Ls(s,hi(o,0,s.length))}function Ta(r,o,s,f){if(!Ze(r))return r;o=Dr(o,r);for(var h=-1,v=o.length,S=v-1,T=r;T!=null&&++hh?0:h+o),s=s>h?h:s,s<0&&(s+=h),h=o>s?0:s-o>>>0,o>>>=0;for(var v=I(h);++f>>1,S=r[v];S!==null&&!rn(S)&&(s?S<=o:S=n){var B=o?null:XC(r);if(B)return as(B);S=!1,h=ga,P=new pi}else P=o?[]:T;e:for(;++f=f?r:gn(r,o,s)}var Gg=TS||function(r){return ht.clearTimeout(r)};function Qg(r,o){if(o)return r.slice();var s=r.length,f=yg?yg(s):new r.constructor(s);return r.copy(f),f}function Bf(r){var o=new r.constructor(r.byteLength);return new ds(o).set(new ds(r)),o}function zC(r,o){var s=o?Bf(r.buffer):r.buffer;return new r.constructor(s,r.byteOffset,r.byteLength)}function jC(r){var o=new r.constructor(r.source,Lm.exec(r));return o.lastIndex=r.lastIndex,o}function $C(r){return _a?Ue(_a.call(r)):{}}function Zg(r,o){var s=o?Bf(r.buffer):r.buffer;return new r.constructor(s,r.byteOffset,r.length)}function Jg(r,o){if(r!==o){var s=r!==e,f=r===null,h=r===r,v=rn(r),S=o!==e,T=o===null,P=o===o,B=rn(o);if(!T&&!B&&!v&&r>o||v&&S&&P&&!T&&!B||f&&S&&P||!s&&P||!h)return 1;if(!f&&!v&&!B&&r=T)return P;var B=s[f];return P*(B=="desc"?-1:1)}}return r.index-o.index}function ev(r,o,s,f){for(var h=-1,v=r.length,S=s.length,T=-1,P=o.length,B=ft(v-S,0),z=I(P+B),j=!f;++T1?s[h-1]:e,S=h>2?s[2]:e;for(v=r.length>3&&typeof v=="function"?(h--,v):e,S&&Lt(s[0],s[1],S)&&(v=h<3?e:v,h=1),o=Ue(o);++f-1?h[v?o[S]:S]:e}}function av(r){return lr(function(o){var s=o.length,f=s,h=hn.prototype.thru;for(r&&o.reverse();f--;){var v=o[f];if(typeof v!="function")throw new pn(a);if(h&&!S&&Is(v)=="wrapper")var S=new hn([],!0)}for(f=S?f:s;++f1&&Te.reverse(),z&&PT))return!1;var B=v.get(r),z=v.get(o);if(B&&z)return B==o&&z==r;var j=-1,Y=!0,re=s&C?new pi:e;for(v.set(r,o),v.set(o,r);++j1?"& ":"")+o[f],o=o.join(s>2?", ":" "),r.replace(aE,`{ +Add a component higher in the tree to provide a loading indicator or placeholder to display.`)}yt!==5&&(yt=2),d=Zp(d,c),E=u;do{switch(E.tag){case 3:l=d,E.flags|=4096,t&=-t,E.lanes|=t;var q=_w(E,l,t);A0(E,q);break e;case 1:l=d;var V=E.type,z=E.stateNode;if((E.flags&64)===0&&(typeof V.getDerivedStateFromError=="function"||z!==null&&typeof z.componentDidCatch=="function"&&(Hn===null||!Hn.has(z)))){E.flags|=4096,t&=-t,E.lanes|=t;var X=Ew(E,l,t);A0(E,X);break e}}E=E.return}while(E!==null)}Nw(n)}catch(ee){t=ee,dt===n&&n!==null&&(dt=n=n.return);continue}break}while(1)}function Pw(){var e=Du.current;return Du.current=Pu,e===null?Pu:e}function Ba(e,t){var n=he;he|=16;var i=Pw();Mt===e&&Nt===t||So(e,t);do try{HO();break}catch(a){kw(e,a)}while(1);if(jp(),he=n,Du.current=i,dt!==null)throw Error(H(261));return Mt=null,Nt=0,yt}function HO(){for(;dt!==null;)Dw(dt)}function VO(){for(;dt!==null&&!TO();)Dw(dt)}function Dw(e){var t=Aw(e.alternate,e,bi);e.memoizedProps=e.pendingProps,t===null?Nw(e):dt=t,Jp.current=null}function Nw(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&2048)===0){if(n=MO(n,t,bi),n!==null){dt=n;return}if(n=t,n.tag!==24&&n.tag!==23||n.memoizedState===null||(bi&1073741824)!==0||(n.mode&4)===0){for(var i=0,a=n.child;a!==null;)i|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=i}e!==null&&(e.flags&2048)===0&&(e.firstEffect===null&&(e.firstEffect=t.firstEffect),t.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1u&&(c=u,u=q,q=c),c=y0(m,q),l=y0(m,u),c&&l&&(N.rangeCount!==1||N.anchorNode!==c.node||N.anchorOffset!==c.offset||N.focusNode!==l.node||N.focusOffset!==l.offset)&&(b=b.createRange(),b.setStart(c.node,c.offset),N.removeAllRanges(),q>u?(N.addRange(b),N.extend(l.node,l.offset)):(b.setEnd(l.node,l.offset),N.addRange(b)))))),b=[],N=m;N=N.parentNode;)N.nodeType===1&&b.push({element:N,left:N.scrollLeft,top:N.scrollTop});for(typeof m.focus=="function"&&m.focus(),m=0;mDt()-th?So(e,0):eh|=n),Sn(e,t)}function QO(e,t){var n=e.stateNode;n!==null&&n.delete(t),t=0,t===0&&(t=e.mode,(t&2)===0?t=1:(t&4)===0?t=ko()===99?1:2:(fr===0&&(fr=Oo),t=lo(62914560&~fr),t===0&&(t=4194304))),n=on(),e=Hu(e,t),e!==null&&(Fu(e,t,n),Sn(e,n))}var Aw;Aw=function(e,t,n){var i=t.lanes;if(e!==null)if(e.memoizedProps!==t.pendingProps||Kt.current)Mn=!0;else if((n&i)!==0)Mn=(e.flags&16384)!==0;else{switch(Mn=!1,t.tag){case 3:V0(t),Sd();break;case 5:F0(t);break;case 1:qt(t.type)&&ru(t);break;case 4:Jd(t,t.stateNode.containerInfo);break;case 10:i=t.memoizedProps.value;var a=t.type._context;nt(yu,a._currentValue),a._currentValue=i;break;case 13:if(t.memoizedState!==null)return(n&t.child.childLanes)!==0?K0(e,t,n):(nt(tt,tt.current&1),t=pr(e,t,n),t!==null?t.sibling:null);nt(tt,tt.current&1);break;case 19:if(i=(n&t.childLanes)!==0,(e.flags&64)!==0){if(i)return Q0(e,t,n);t.flags|=64}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),nt(tt,tt.current),i)break;return null;case 23:case 24:return t.lanes=0,Cd(e,t,n)}return pr(e,t,n)}else Mn=!1;switch(t.lanes=0,t.tag){case 2:if(i=t.type,e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=To(t,Ot.current),xo(t,n),a=Yp(null,t,i,e,a,n),t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,qt(i)){var l=!0;ru(t)}else l=!1;t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,Hp(t);var u=i.getDerivedStateFromProps;typeof u=="function"&&_u(t,i,u,e),a.updater=ju,t.stateNode=a,a._reactInternals=t,Zd(t,i,e,n),t=rp(null,t,i,!0,l,n)}else t.tag=0,Vt(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,l=a._init,a=l(a._payload),t.type=a,l=t.tag=JO(a),e=Ln(a,e),l){case 0:t=np(null,t,a,e,n);break e;case 1:t=H0(null,t,a,e,n);break e;case 11:t=j0(null,t,a,e,n);break e;case 14:t=W0(null,t,a,Ln(a.type,e),i,n);break e}throw Error(H(306,a,""))}return t;case 0:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Ln(i,a),np(e,t,i,a,n);case 1:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Ln(i,a),H0(e,t,i,a,n);case 3:if(V0(t),i=t.updateQueue,e===null||i===null)throw Error(H(282));if(i=t.pendingProps,a=t.memoizedState,a=a!==null?a.element:null,rw(e,t),sl(t,i,null,n),i=t.memoizedState.element,i===a)Sd(),t=pr(e,t,n);else{if(a=t.stateNode,(l=a.hydrate)&&(Mr=wo(t.stateNode.containerInfo.firstChild),dr=t,l=Kn=!0),l){if(e=a.mutableSourceEagerHydrationData,e!=null)for(a=0;a{"use strict";function Mw(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Mw)}catch(e){console.error(e)}}Mw(),Fw.exports=Lw()});var ox=Ue(Lo=>{"use strict";var Fn=Os(),mr=re();function Je(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nvl;vl++)_t[vl]=vl+1;var _t,vl;_t[15]=0;var sA=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Rw=Object.prototype.hasOwnProperty,Uw={},Bw={};function Jw(e){return Rw.call(Bw,e)?!0:Rw.call(Uw,e)?!1:sA.test(e)?Bw[e]=!0:(Uw[e]=!0,!1)}function uA(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function cA(e,t,n,i){if(t===null||typeof t>"u"||uA(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Rt(e,t,n,i,a,l,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=u}var Et={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Et[e]=new Rt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Et[t]=new Rt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Et[e]=new Rt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Et[e]=new Rt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Et[e]=new Rt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Et[e]=new Rt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Et[e]=new Rt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Et[e]=new Rt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Et[e]=new Rt(e,5,!1,e.toLowerCase(),null,!1,!1)});var wh=/[\-:]([a-z])/g;function xh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(wh,xh);Et[t]=new Rt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(wh,xh);Et[t]=new Rt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(wh,xh);Et[t]=new Rt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Et[e]=new Rt(e,1,!1,e.toLowerCase(),null,!1,!1)});Et.xlinkHref=new Rt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Et[e]=new Rt(e,1,!1,e.toLowerCase(),null,!0,!0)});var fA=/["'&<>]/;function Ni(e){if(typeof e=="boolean"||typeof e=="number")return""+e;e=""+e;var t=fA.exec(e);if(t){var n="",i,a=0;for(i=t.index;iQu))throw Error(Je(301));if(e===Yn)if(Gu=!0,e={action:n,next:null},Zr===null&&(Zr=new Map),n=Zr.get(t),n===void 0)Zr.set(t,e);else{for(t=n;t.next!==null;)t=t.next;t.next=e}}function sh(){}var Ai=null,mA={readContext:function(e){var t=Ai.threadID;return _l(e,t),e[t]},useContext:function(e){Oi();var t=Ai.threadID;return _l(e,t),e[t]},useMemo:jw,useReducer:$w,useRef:function(e){Yn=Oi(),je=_h();var t=je.memoizedState;return t===null?(e={current:e},je.memoizedState=e):t},useState:function(e){return $w(nx,e)},useLayoutEffect:function(){},useCallback:function(e,t){return jw(function(){return e},t)},useImperativeHandle:sh,useEffect:sh,useDebugValue:sh,useDeferredValue:function(e){return Oi(),e},useTransition:function(){return Oi(),[function(e){e()},!1]},useOpaqueIdentifier:function(){return(Ai.identifierPrefix||"")+"R:"+(Ai.uniqueID++).toString(36)},useMutableSource:function(e,t){return Oi(),t(e._source)}},Ww={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Hw(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}var rx={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},vA=Fn({menuitem:!0},rx),xl={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},yA=["Webkit","ms","Moz","O"];Object.keys(xl).forEach(function(e){yA.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),xl[t]=xl[e]})});var wA=/([A-Z])/g,xA=/^ms-/,Qr=mr.Children.toArray,uh=aA.ReactCurrentDispatcher,_A={listing:!0,pre:!0,textarea:!0},EA=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Vw={},ch={};function SA(e){if(e==null)return e;var t="";return mr.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}var CA=Object.prototype.hasOwnProperty,bA={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function Kw(e,t){if(e===void 0)throw Error(Je(152,wl(t)||"Component"))}function TA(e,t,n){function i(u,c){var d=c.prototype&&c.prototype.isReactComponent,p=lA(c,t,n,d),y=[],x=!1,E={isMounted:function(){return!1},enqueueForceUpdate:function(){if(y===null)return null},enqueueReplaceState:function(b,N){x=!0,y=[N]},enqueueSetState:function(b,N){if(y===null)return null;y.push(N)}};if(d){if(d=new c(u.props,p,E),typeof c.getDerivedStateFromProps=="function"){var C=c.getDerivedStateFromProps.call(null,u.props,d.state);C!=null&&(d.state=Fn({},d.state,C))}}else if(Yn={},d=c(u.props,p,E),d=ex(c,u.props,d,p),d==null||d.render==null){e=d,Kw(e,c);return}if(d.props=u.props,d.context=p,d.updater=E,E=d.state,E===void 0&&(d.state=E=null),typeof d.UNSAFE_componentWillMount=="function"||typeof d.componentWillMount=="function")if(typeof d.componentWillMount=="function"&&typeof c.getDerivedStateFromProps!="function"&&d.componentWillMount(),typeof d.UNSAFE_componentWillMount=="function"&&typeof c.getDerivedStateFromProps!="function"&&d.UNSAFE_componentWillMount(),y.length){E=y;var k=x;if(y=null,x=!1,k&&E.length===1)d.state=E[0];else{C=k?E[0]:d.state;var P=!0;for(k=k?1:0;k=c))throw Error(Je(304));var d=new Uint16Array(c);for(d.set(u),_t=d,_t[0]=l+1,u=l;u=d.children.length){var p=d.footer;if(p!==""&&(this.previousWasTextNode=!1),this.stack.pop(),d.type==="select")this.currentSelectValue=null;else if(d.type!=null&&d.type.type!=null&&d.type.type.$$typeof===Yu)this.popProvider(d.type);else if(d.type===Xu){this.suspenseDepth--;var y=l.pop();if(u){u=!1;var x=d.fallbackFrame;if(!x)throw Error(Je(303));this.stack.push(x),l[this.suspenseDepth]+="";continue}else l[this.suspenseDepth]+=y}l[this.suspenseDepth]+=p}else{var E=d.children[d.childIndex++],C="";try{C+=this.render(E,d.context,d.domNamespace)}catch(k){throw k!=null&&typeof k.then=="function"?Error(Je(294)):k}finally{}l.length<=this.suspenseDepth&&l.push(""),l[this.suspenseDepth]+=C}}return l[0]}finally{uh.current=a,Ai=i,tx()}},t.render=function(n,i,a){if(typeof n=="string"||typeof n=="number")return a=""+n,a===""?"":this.makeStaticMarkup?Ni(a):this.previousWasTextNode?""+Ni(a):(this.previousWasTextNode=!0,Ni(a));if(i=TA(n,i,this.threadID),n=i.child,i=i.context,n===null||n===!1)return"";if(!mr.isValidElement(n)){if(n!=null&&n.$$typeof!=null)throw a=n.$$typeof,Error(a===fh?Je(257):Je(258,a.toString()));return n=Qr(n),this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),""}var l=n.type;if(typeof l=="string")return this.renderDOM(n,i,a);switch(l){case Qw:case Gw:case dh:case ph:case mh:case qu:return n=Qr(n.props.children),this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),"";case Xu:throw Error(Je(294));case Xw:throw Error(Je(343))}if(typeof l=="object"&&l!==null)switch(l.$$typeof){case gh:Yn={};var u=l.render(n.props,n.ref);return u=ex(l.render,n.props,u,n.ref),u=Qr(u),this.stack.push({type:null,domNamespace:a,children:u,childIndex:0,context:i,footer:""}),"";case vh:return n=[mr.createElement(l.type,Fn({ref:n.ref},n.props))],this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),"";case Yu:return l=Qr(n.props.children),a={type:n,domNamespace:a,children:l,childIndex:0,context:i,footer:""},this.pushProvider(n),this.stack.push(a),"";case hh:l=n.type,u=n.props;var c=this.threadID;return _l(l,c),l=Qr(u.children(l[c])),this.stack.push({type:n,domNamespace:a,children:l,childIndex:0,context:i,footer:""}),"";case Yw:throw Error(Je(338));case yh:return l=n.type,u=l._init,l=u(l._payload),n=[mr.createElement(l,Fn({ref:n.ref},n.props))],this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),""}throw Error(Je(130,l==null?l:typeof l,""))},t.renderDOM=function(n,i,a){var l=n.type.toLowerCase();if(a===Ww.html&&Hw(l),!Vw.hasOwnProperty(l)){if(!EA.test(l))throw Error(Je(65,l));Vw[l]=!0}var u=n.props;if(l==="input")u=Fn({type:void 0},u,{defaultChecked:void 0,defaultValue:void 0,value:u.value!=null?u.value:u.defaultValue,checked:u.checked!=null?u.checked:u.defaultChecked});else if(l==="textarea"){var c=u.value;if(c==null){c=u.defaultValue;var d=u.children;if(d!=null){if(c!=null)throw Error(Je(92));if(Array.isArray(d)){if(!(1>=d.length))throw Error(Je(93));d=d[0]}c=""+d}c==null&&(c="")}u=Fn({},u,{value:void 0,children:""+c})}else if(l==="select")this.currentSelectValue=u.value!=null?u.value:u.defaultValue,u=Fn({},u,{value:void 0});else if(l==="option"){d=this.currentSelectValue;var p=SA(u.children);if(d!=null){var y=u.value!=null?u.value+"":p;if(c=!1,Array.isArray(d)){for(var x=0;x":(N+=">",c="");e:{if(d=u.dangerouslySetInnerHTML,d!=null){if(d.__html!=null){d=d.__html;break e}}else if(d=u.children,typeof d=="string"||typeof d=="number"){d=Ni(d);break e}d=null}return d!=null?(u=[],_A.hasOwnProperty(l)&&d.charAt(0)===` +`&&(N+=` +`),N+=d):u=Qr(u.children),n=n.type,a=a==null||a==="http://www.w3.org/1999/xhtml"?Hw(n):a==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":a,this.stack.push({domNamespace:a,type:l,children:u,childIndex:0,context:i,footer:c}),this.previousWasTextNode=!1,N},e}();Lo.renderToNodeStream=function(){throw Error(Je(207))};Lo.renderToStaticMarkup=function(e,t){e=new ix(e,!0,t);try{return e.read(1/0)}finally{e.destroy()}};Lo.renderToStaticNodeStream=function(){throw Error(Je(208))};Lo.renderToString=function(e,t){e=new ix(e,!1,t);try{return e.read(1/0)}finally{e.destroy()}};Lo.version="17.0.2"});var lx=Ue((zI,ax)=>{"use strict";ax.exports=ox()});var ux=Ue(($I,sx)=>{sx.exports={setup:function(e){"addEventListener"in window?e.handleEvent("DOMContentLoaded",e.handleMount):e.handleEvent("onload",e.handleMount)},teardown:function(e){e.removeEvent("DOMContentLoaded",e.handleMount),e.removeEvent("onload",e.handleMount)}}});var fx=Ue((jI,cx)=>{cx.exports={setup:function(e){e.handleEvent("ready",e.handleMount),e.handleEvent("pjax:end",e.handleMount),e.handleEvent("pjax:beforeReplace",e.handleUnmount)},teardown:function(e){e.removeEvent("ready",e.handleMount),e.removeEvent("pjax:end",e.handleMount),e.removeEvent("pjax:beforeReplace",e.handleUnmount)}}});var px=Ue((WI,dx)=>{dx.exports={setup:function(e){e.handleEvent("turbolinks:load",e.handleMount),e.handleEvent("turbolinks:before-render",e.handleUnmount)},teardown:function(e){e.removeEvent("turbolinks:load",e.handleMount),e.removeEvent("turbolinks:before-render",e.handleUnmount)}}});var gx=Ue((HI,hx)=>{hx.exports={setup:function(e){Turbolinks.pagesCached(0),e.handleEvent("page:change",e.handleMount),e.handleEvent("page:receive",e.handleUnmount)},teardown:function(e){e.removeEvent("page:change",e.handleMount),e.removeEvent("page:receive",e.handleUnmount)}}});var vx=Ue((VI,mx)=>{mx.exports={setup:function(e){e.handleEvent(Turbolinks.EVENTS.CHANGE,e.handleMount),e.handleEvent(Turbolinks.EVENTS.BEFORE_UNLOAD,e.handleUnmount)},teardown:function(e){e.removeEvent(Turbolinks.EVENTS.CHANGE,e.handleMount),e.removeEvent(Turbolinks.EVENTS.BEFORE_UNLOAD,e.handleUnmount)}}});var Cx=Ue((KI,Sx)=>{var yx=ux(),wx=fx(),xx=px(),_x=gx(),Ex=vx();Sx.exports=function(e){e.handleEvent&&(typeof Turbolinks<"u"&&typeof Turbolinks.EVENTS<"u"&&Ex.teardown(e),xx.teardown(e),_x.teardown(e),wx.teardown(e),yx.teardown(e)),"addEventListener"in window?(e.handleEvent=function(t,n){document.addEventListener(t,n)},e.removeEvent=function(t,n){document.removeEventListener(t,n)}):(e.handleEvent=function(t,n){window.attachEvent(t,n)},e.removeEvent=function(t,n){window.detachEvent(t,n)}),typeof Turbolinks<"u"&&Turbolinks.supported?typeof Turbolinks.EVENTS<"u"?Ex.setup(e):typeof Turbolinks.controller<"u"?xx.setup(e):_x.setup(e):typeof $<"u"&&typeof $.pjax=="function"?wx.setup(e):yx.setup(e)}});var Eh=Ue((exports,module)=>{var topLevel=typeof window>"u"?exports:window;module.exports=function(className){var constructor;return constructor=topLevel[className],constructor||(constructor=eval(className)),constructor&&constructor.default&&(constructor=constructor.default),constructor}});var Tx=Ue((qI,bx)=>{bx.exports=function(e){return function(t){var n=t.split("."),i=n.shift(),a=n,l=e("./"+i);return a.forEach(function(u){l=l[u]}),l.__esModule&&(l=l.default),l}}});var Px=Ue((YI,kx)=>{var kA=Eh(),PA=Tx();kx.exports=function(e){var t=PA(e);return function(n){var i;try{i=t(n)}catch(a){try{i=kA(n)}catch(l){console.error(a),console.error(l)}}return i}}});var Ox=Ue((XI,Nx)=>{var Dx=re(),Zu=lh(),DA=lx(),NA=Cx(),OA=Eh(),AA=Px(),bn={CLASS_NAME_ATTR:"data-react-class",PROPS_ATTR:"data-react-props",RENDER_ATTR:"data-hydrate",CACHE_ID_ATTR:"data-react-cache-id",TURBOLINKS_PERMANENT_ATTR:"data-turbolinks-permanent",jQuery:typeof window<"u"&&typeof window.jQuery<"u"&&window.jQuery,components:{},findDOMNodes:function(e){var t=bn.CLASS_NAME_ATTR,n,i;switch(typeof e){case"undefined":n="["+t+"]",i=document;break;case"object":n="["+t+"]",i=e;break;case"string":n=e+"["+t+"], "+e+" ["+t+"]",i=document;break;default:break}return bn.jQuery?bn.jQuery(n,i):i.querySelectorAll(n)},getConstructor:OA,useContext:function(e){this.getConstructor=AA(e)},serverRender:function(e,t,n){var i=this.getConstructor(t),a=Dx.createElement(i,n);return DA[e](a)},mountComponents:function(e){for(var t=bn,n=t.findDOMNodes(e),i=0;i{"use strict";var Mo=re();function IA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var LA=typeof Object.is=="function"?Object.is:IA,MA=Mo.useState,FA=Mo.useEffect,RA=Mo.useLayoutEffect,UA=Mo.useDebugValue;function BA(e,t){var n=t(),i=MA({inst:{value:n,getSnapshot:t}}),a=i[0].inst,l=i[1];return RA(function(){a.value=n,a.getSnapshot=t,Sh(a)&&l({inst:a})},[e,n,t]),FA(function(){return Sh(a)&&l({inst:a}),e(function(){Sh(a)&&l({inst:a})})},[e]),UA(n),n}function Sh(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!LA(e,n)}catch(i){return!0}}function zA(e,t){return t()}var $A=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?zA:BA;Mx.useSyncExternalStore=Mo.useSyncExternalStore!==void 0?Mo.useSyncExternalStore:$A});var Ux=Ue((JI,Rx)=>{"use strict";Rx.exports=Fx()});var zx=Ue(Bx=>{"use strict";var Ju=re(),jA=Ux();function WA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var HA=typeof Object.is=="function"?Object.is:WA,VA=jA.useSyncExternalStore,KA=Ju.useRef,qA=Ju.useEffect,YA=Ju.useMemo,XA=Ju.useDebugValue;Bx.useSyncExternalStoreWithSelector=function(e,t,n,i,a){var l=KA(null);if(l.current===null){var u={hasValue:!1,value:null};l.current=u}else u=l.current;l=YA(function(){function d(C){if(!p){if(p=!0,y=C,C=i(C),a!==void 0&&u.hasValue){var k=u.value;if(a(k,C))return x=k}return x=C}if(k=x,HA(y,C))return k;var P=i(C);return a!==void 0&&a(k,P)?k:(y=C,x=P)}var p=!1,y,x,E=n===void 0?null:n;return[function(){return d(t())},E===null?void 0:function(){return d(E())}]},[t,n,i,a]);var c=VA(e,l[0],l[1]);return qA(function(){u.hasValue=!0,u.value=c},[c]),XA(c),c}});var jx=Ue((tL,$x)=>{"use strict";$x.exports=zx()});var Xx=Ue((Uo,Sl)=>{(function(){var e,t="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",l="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",p=1,y=2,x=4,E=1,C=2,k=1,P=2,_=4,w=8,m=16,b=32,N=64,q=128,V=256,z=512,X=30,ee="...",ke=800,j=16,R=1,te=2,I=3,L=1/0,we=9007199254740991,He=17976931348623157e292,Ve=0/0,Ne=4294967295,me=Ne-1,F=Ne>>>1,K=[["ary",q],["bind",k],["bindKey",P],["curry",w],["curryRight",m],["flip",z],["partial",b],["partialRight",N],["rearg",V]],ae="[object Arguments]",de="[object Array]",ue="[object AsyncFunction]",le="[object Boolean]",ne="[object Date]",G="[object DOMException]",ye="[object Error]",pe="[object Function]",Oe="[object GeneratorFunction]",st="[object Map]",kn="[object Number]",Ul="[object Null]",Jn="[object Object]",hg="[object Promise]",E_="[object Proxy]",Go="[object RegExp]",Pn="[object Set]",Qo="[object String]",Bl="[object Symbol]",S_="[object Undefined]",Zo="[object WeakMap]",C_="[object WeakSet]",Jo="[object ArrayBuffer]",zi="[object DataView]",vc="[object Float32Array]",yc="[object Float64Array]",wc="[object Int8Array]",xc="[object Int16Array]",_c="[object Int32Array]",Ec="[object Uint8Array]",Sc="[object Uint8ClampedArray]",Cc="[object Uint16Array]",bc="[object Uint32Array]",b_=/\b__p \+= '';/g,T_=/\b(__p \+=) '' \+/g,k_=/(__e\(.*?\)|\b__t\)) \+\n'';/g,gg=/&(?:amp|lt|gt|quot|#39);/g,mg=/[&<>"']/g,P_=RegExp(gg.source),D_=RegExp(mg.source),N_=/<%-([\s\S]+?)%>/g,O_=/<%([\s\S]+?)%>/g,vg=/<%=([\s\S]+?)%>/g,A_=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,I_=/^\w*$/,L_=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tc=/[\\^$.*+?()[\]{}|]/g,M_=RegExp(Tc.source),kc=/^\s+/,F_=/\s/,R_=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,U_=/\{\n\/\* \[wrapped with (.+)\] \*/,B_=/,? & /,z_=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,$_=/[()=,{}\[\]\/\s]/,j_=/\\(\\)?/g,W_=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,yg=/\w*$/,H_=/^[-+]0x[0-9a-f]+$/i,V_=/^0b[01]+$/i,K_=/^\[object .+?Constructor\]$/,q_=/^0o[0-7]+$/i,Y_=/^(?:0|[1-9]\d*)$/,X_=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,zl=/($^)/,G_=/['\n\r\u2028\u2029\\]/g,$l="\\ud800-\\udfff",Q_="\\u0300-\\u036f",Z_="\\ufe20-\\ufe2f",J_="\\u20d0-\\u20ff",wg=Q_+Z_+J_,xg="\\u2700-\\u27bf",_g="a-z\\xdf-\\xf6\\xf8-\\xff",eE="\\xac\\xb1\\xd7\\xf7",tE="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",nE="\\u2000-\\u206f",rE=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Eg="A-Z\\xc0-\\xd6\\xd8-\\xde",Sg="\\ufe0e\\ufe0f",Cg=eE+tE+nE+rE,Pc="['\u2019]",iE="["+$l+"]",bg="["+Cg+"]",jl="["+wg+"]",Tg="\\d+",oE="["+xg+"]",kg="["+_g+"]",Pg="[^"+$l+Cg+Tg+xg+_g+Eg+"]",Dc="\\ud83c[\\udffb-\\udfff]",aE="(?:"+jl+"|"+Dc+")",Dg="[^"+$l+"]",Nc="(?:\\ud83c[\\udde6-\\uddff]){2}",Oc="[\\ud800-\\udbff][\\udc00-\\udfff]",$i="["+Eg+"]",Ng="\\u200d",Og="(?:"+kg+"|"+Pg+")",lE="(?:"+$i+"|"+Pg+")",Ag="(?:"+Pc+"(?:d|ll|m|re|s|t|ve))?",Ig="(?:"+Pc+"(?:D|LL|M|RE|S|T|VE))?",Lg=aE+"?",Mg="["+Sg+"]?",sE="(?:"+Ng+"(?:"+[Dg,Nc,Oc].join("|")+")"+Mg+Lg+")*",uE="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",cE="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Fg=Mg+Lg+sE,fE="(?:"+[oE,Nc,Oc].join("|")+")"+Fg,dE="(?:"+[Dg+jl+"?",jl,Nc,Oc,iE].join("|")+")",pE=RegExp(Pc,"g"),hE=RegExp(jl,"g"),Ac=RegExp(Dc+"(?="+Dc+")|"+dE+Fg,"g"),gE=RegExp([$i+"?"+kg+"+"+Ag+"(?="+[bg,$i,"$"].join("|")+")",lE+"+"+Ig+"(?="+[bg,$i+Og,"$"].join("|")+")",$i+"?"+Og+"+"+Ag,$i+"+"+Ig,cE,uE,Tg,fE].join("|"),"g"),mE=RegExp("["+Ng+$l+wg+Sg+"]"),vE=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,yE=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],wE=-1,Ke={};Ke[vc]=Ke[yc]=Ke[wc]=Ke[xc]=Ke[_c]=Ke[Ec]=Ke[Sc]=Ke[Cc]=Ke[bc]=!0,Ke[ae]=Ke[de]=Ke[Jo]=Ke[le]=Ke[zi]=Ke[ne]=Ke[ye]=Ke[pe]=Ke[st]=Ke[kn]=Ke[Jn]=Ke[Go]=Ke[Pn]=Ke[Qo]=Ke[Zo]=!1;var ze={};ze[ae]=ze[de]=ze[Jo]=ze[zi]=ze[le]=ze[ne]=ze[vc]=ze[yc]=ze[wc]=ze[xc]=ze[_c]=ze[st]=ze[kn]=ze[Jn]=ze[Go]=ze[Pn]=ze[Qo]=ze[Bl]=ze[Ec]=ze[Sc]=ze[Cc]=ze[bc]=!0,ze[ye]=ze[pe]=ze[Zo]=!1;var xE={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},_E={"&":"&","<":"<",">":">",'"':""","'":"'"},EE={"&":"&","<":"<",">":">",""":'"',"'":"'"},SE={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},CE=parseFloat,bE=parseInt,Rg=typeof global=="object"&&global&&global.Object===Object&&global,TE=typeof self=="object"&&self&&self.Object===Object&&self,pt=Rg||TE||Function("return this")(),Ic=typeof Uo=="object"&&Uo&&!Uo.nodeType&&Uo,ai=Ic&&typeof Sl=="object"&&Sl&&!Sl.nodeType&&Sl,Ug=ai&&ai.exports===Ic,Lc=Ug&&Rg.process,un=function(){try{var D=ai&&ai.require&&ai.require("util").types;return D||Lc&&Lc.binding&&Lc.binding("util")}catch(M){}}(),Bg=un&&un.isArrayBuffer,zg=un&&un.isDate,$g=un&&un.isMap,jg=un&&un.isRegExp,Wg=un&&un.isSet,Hg=un&&un.isTypedArray;function Zt(D,M,A){switch(A.length){case 0:return D.call(M);case 1:return D.call(M,A[0]);case 2:return D.call(M,A[0],A[1]);case 3:return D.call(M,A[0],A[1],A[2])}return D.apply(M,A)}function kE(D,M,A,Q){for(var ge=-1,Ae=D==null?0:D.length;++ge-1}function Mc(D,M,A){for(var Q=-1,ge=D==null?0:D.length;++Q-1;);return A}function Zg(D,M){for(var A=D.length;A--&&ji(M,D[A],0)>-1;);return A}function FE(D,M){for(var A=D.length,Q=0;A--;)D[A]===M&&++Q;return Q}var RE=Bc(xE),UE=Bc(_E);function BE(D){return"\\"+SE[D]}function zE(D,M){return D==null?e:D[M]}function Wi(D){return mE.test(D)}function $E(D){return vE.test(D)}function jE(D){for(var M,A=[];!(M=D.next()).done;)A.push(M.value);return A}function Wc(D){var M=-1,A=Array(D.size);return D.forEach(function(Q,ge){A[++M]=[ge,Q]}),A}function Jg(D,M){return function(A){return D(M(A))}}function Er(D,M){for(var A=-1,Q=D.length,ge=0,Ae=[];++A-1}function DS(r,o){var s=this.__data__,f=as(s,r);return f<0?(++this.size,s.push([r,o])):s[f][1]=o,this}er.prototype.clear=bS,er.prototype.delete=TS,er.prototype.get=kS,er.prototype.has=PS,er.prototype.set=DS;function tr(r){var o=-1,s=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function pn(r,o,s,f,h,v){var S,T=o&p,O=o&y,U=o&x;if(s&&(S=h?s(r,f,h,v):s(r)),S!==e)return S;if(!Ze(r))return r;var B=ve(r);if(B){if(S=IC(r),!T)return zt(r,S)}else{var W=Tt(r),Y=W==pe||W==Oe;if(Dr(r))return Mm(r,T);if(W==Jn||W==ae||Y&&!h){if(S=O||Y?{}:ev(r),!T)return O?EC(r,VS(S,r)):_C(r,fm(S,r))}else{if(!ze[W])return h?r:{};S=LC(r,W,T)}}v||(v=new Nn);var ie=v.get(r);if(ie)return ie;v.set(r,S),Dv(r)?r.forEach(function(fe){S.add(pn(fe,o,s,fe,r,v))}):kv(r)&&r.forEach(function(fe,Se){S.set(Se,pn(fe,o,s,Se,r,v))});var ce=U?O?mf:gf:O?jt:ht,_e=B?e:ce(r);return cn(_e||r,function(fe,Se){_e&&(Se=fe,fe=r[Se]),aa(S,Se,pn(fe,o,s,Se,r,v))}),S}function KS(r){var o=ht(r);return function(s){return dm(s,r,o)}}function dm(r,o,s){var f=s.length;if(r==null)return!f;for(r=Re(r);f--;){var h=s[f],v=o[h],S=r[h];if(S===e&&!(h in r)||!v(S))return!1}return!0}function pm(r,o,s){if(typeof r!="function")throw new fn(a);return pa(function(){r.apply(e,s)},o)}function la(r,o,s,f){var h=-1,v=Wl,S=!0,T=r.length,O=[],U=o.length;if(!T)return O;s&&(o=Xe(o,Jt(s))),f?(v=Mc,S=!1):o.length>=n&&(v=ea,S=!1,o=new ui(o));e:for(;++hh?0:h+s),f=f===e||f>h?h:xe(f),f<0&&(f+=h),f=s>f?0:Ov(f);s0&&s(T)?o>1?mt(T,o-1,s,f,h):_r(h,T):f||(h[h.length]=T)}return h}var Gc=$m(),mm=$m(!0);function Rn(r,o){return r&&Gc(r,o,ht)}function Qc(r,o){return r&&mm(r,o,ht)}function ss(r,o){return xr(o,function(s){return ar(r[s])})}function fi(r,o){o=kr(o,r);for(var s=0,f=o.length;r!=null&&so}function XS(r,o){return r!=null&&Fe.call(r,o)}function GS(r,o){return r!=null&&o in Re(r)}function QS(r,o,s){return r>=bt(o,s)&&r=120&&B.length>=120)?new ui(S&&B):e}B=r[0];var W=-1,Y=T[0];e:for(;++W-1;)T!==r&&Jl.call(T,O,1),Jl.call(r,O,1);return r}function km(r,o){for(var s=r?o.length:0,f=s-1;s--;){var h=o[s];if(s==f||h!==v){var v=h;or(h)?Jl.call(r,h,1):sf(r,h)}}return r}function of(r,o){return r+ns(lm()*(o-r+1))}function cC(r,o,s,f){for(var h=-1,v=ct(ts((o-r)/(s||1)),0),S=A(v);v--;)S[f?v:++h]=r,r+=s;return S}function af(r,o){var s="";if(!r||o<1||o>we)return s;do o%2&&(s+=r),o=ns(o/2),o&&(r+=r);while(o);return s}function Ee(r,o){return Sf(rv(r,o,Wt),r+"")}function fC(r){return cm(Ji(r))}function dC(r,o){var s=Ji(r);return ws(s,ci(o,0,s.length))}function ca(r,o,s,f){if(!Ze(r))return r;o=kr(o,r);for(var h=-1,v=o.length,S=v-1,T=r;T!=null&&++hh?0:h+o),s=s>h?h:s,s<0&&(s+=h),h=o>s?0:s-o>>>0,o>>>=0;for(var v=A(h);++f>>1,S=r[v];S!==null&&!tn(S)&&(s?S<=o:S=n){var U=o?null:TC(r);if(U)return Vl(U);S=!1,h=ea,O=new ui}else O=o?[]:T;e:for(;++f=f?r:hn(r,o,s)}var Lm=rS||function(r){return pt.clearTimeout(r)};function Mm(r,o){if(o)return r.slice();var s=r.length,f=nm?nm(s):new r.constructor(s);return r.copy(f),f}function df(r){var o=new r.constructor(r.byteLength);return new Ql(o).set(new Ql(r)),o}function vC(r,o){var s=o?df(r.buffer):r.buffer;return new r.constructor(s,r.byteOffset,r.byteLength)}function yC(r){var o=new r.constructor(r.source,yg.exec(r));return o.lastIndex=r.lastIndex,o}function wC(r){return oa?Re(oa.call(r)):{}}function Fm(r,o){var s=o?df(r.buffer):r.buffer;return new r.constructor(s,r.byteOffset,r.length)}function Rm(r,o){if(r!==o){var s=r!==e,f=r===null,h=r===r,v=tn(r),S=o!==e,T=o===null,O=o===o,U=tn(o);if(!T&&!U&&!v&&r>o||v&&S&&O&&!T&&!U||f&&S&&O||!s&&O||!h)return 1;if(!f&&!v&&!U&&r=T)return O;var U=s[f];return O*(U=="desc"?-1:1)}}return r.index-o.index}function Um(r,o,s,f){for(var h=-1,v=r.length,S=s.length,T=-1,O=o.length,U=ct(v-S,0),B=A(O+U),W=!f;++T1?s[h-1]:e,S=h>2?s[2]:e;for(v=r.length>3&&typeof v=="function"?(h--,v):e,S&&It(s[0],s[1],S)&&(v=h<3?e:v,h=1),o=Re(o);++f-1?h[v?o[S]:S]:e}}function Hm(r){return ir(function(o){var s=o.length,f=s,h=dn.prototype.thru;for(r&&o.reverse();f--;){var v=o[f];if(typeof v!="function")throw new fn(a);if(h&&!S&&vs(v)=="wrapper")var S=new dn([],!0)}for(f=S?f:s;++f1&&be.reverse(),B&&OT))return!1;var U=v.get(r),B=v.get(o);if(U&&B)return U==o&&B==r;var W=-1,Y=!0,ie=s&C?new ui:e;for(v.set(r,o),v.set(o,r);++W1?"& ":"")+o[f],o=o.join(s>2?", ":" "),r.replace(R_,`{ /* [wrapped with `+o+`] */ -`)}function ob(r){return ve(r)||yi(r)||!!(_g&&r&&r[_g])}function sr(r,o){var s=typeof r;return o=o==null?xe:o,!!o&&(s=="number"||s!="symbol"&&vE.test(r))&&r>-1&&r%1==0&&r0){if(++o>=ye)return arguments[0]}else o=0;return r.apply(e,arguments)}}function Ls(r,o){var s=-1,f=r.length,h=f-1;for(o=o===e?f:o;++s1?r[o-1]:e;return s=typeof s=="function"?(r.pop(),s):e,Dv(r,s)});function Iv(r){var o=m(r);return o.__chain__=!0,o}function gT(r,o){return o(r),r}function Ms(r,o){return o(r)}var vT=lr(function(r){var o=r.length,s=o?r[0]:0,f=this.__wrapped__,h=function(v){return Sf(v,r)};return o>1||this.__actions__.length||!(f instanceof be)||!sr(s)?this.thru(h):(f=f.slice(s,+s+(o?1:0)),f.__actions__.push({func:Ms,args:[h],thisArg:e}),new hn(f,this.__chain__).thru(function(v){return o&&!v.length&&v.push(e),v}))});function yT(){return Iv(this)}function wT(){return new hn(this.value(),this.__chain__)}function xT(){this.__values__===e&&(this.__values__=qv(this.value()));var r=this.__index__>=this.__values__.length,o=r?e:this.__values__[this.__index__++];return{done:r,value:o}}function _T(){return this}function ET(r){for(var o,s=this;s instanceof xs;){var f=bv(s);f.__index__=0,f.__values__=e,o?h.__wrapped__=f:o=f;var h=f;s=s.__wrapped__}return h.__wrapped__=r,o}function ST(){var r=this.__wrapped__;if(r instanceof be){var o=r;return this.__actions__.length&&(o=new be(this)),o=o.reverse(),o.__actions__.push({func:Ms,args:[Qf],thisArg:e}),new hn(o,this.__chain__)}return this.thru(Qf)}function CT(){return Yg(this.__wrapped__,this.__actions__)}var bT=ks(function(r,o,s){Re.call(r,s)?++r[s]:or(r,s,1)});function TT(r,o,s){var f=ve(r)?lg:gC;return s&&Lt(r,o,s)&&(o=e),f(r,se(o,3))}function kT(r,o){var s=ve(r)?Cr:Dg;return s(r,se(o,3))}var NT=ov(Tv),OT=ov(kv);function PT(r,o){return vt(Fs(r,o),1)}function DT(r,o){return vt(Fs(r,o),L)}function IT(r,o,s){return s=s===e?1:_e(s),vt(Fs(r,o),s)}function Av(r,o){var s=ve(r)?dn:Or;return s(r,se(o,3))}function Lv(r,o){var s=ve(r)?QE:Pg;return s(r,se(o,3))}var AT=ks(function(r,o,s){Re.call(r,s)?r[s].push(o):or(r,s,[o])});function LT(r,o,s,f){r=$t(r)?r:uo(r),s=s&&!f?_e(s):0;var h=r.length;return s<0&&(s=ft(h+s,0)),js(r)?s<=h&&r.indexOf(o,s)>-1:!!h&&Zi(r,o,s)>-1}var MT=Se(function(r,o,s){var f=-1,h=typeof o=="function",v=$t(r)?I(r.length):[];return Or(r,function(S){v[++f]=h?en(o,S,s):Ca(S,o,s)}),v}),FT=ks(function(r,o,s){or(r,s,o)});function Fs(r,o){var s=ve(r)?Ge:Rg;return s(r,se(o,3))}function RT(r,o,s,f){return r==null?[]:(ve(o)||(o=o==null?[]:[o]),s=f?e:s,ve(s)||(s=s==null?[]:[s]),jg(r,o,s))}var UT=ks(function(r,o,s){r[s?0:1].push(o)},function(){return[[],[]]});function BT(r,o,s){var f=ve(r)?cf:fg,h=arguments.length<3;return f(r,se(o,4),s,h,Or)}function zT(r,o,s){var f=ve(r)?ZE:fg,h=arguments.length<3;return f(r,se(o,4),s,h,Pg)}function jT(r,o){var s=ve(r)?Cr:Dg;return s(r,Bs(se(o,3)))}function $T(r){var o=ve(r)?Tg:LC;return o(r)}function WT(r,o,s){(s?Lt(r,o,s):o===e)?o=1:o=_e(o);var f=ve(r)?fC:MC;return f(r,o)}function HT(r){var o=ve(r)?dC:RC;return o(r)}function VT(r){if(r==null)return 0;if($t(r))return js(r)?eo(r):r.length;var o=kt(r);return o==ut||o==On?r.size:Of(r).length}function qT(r,o,s){var f=ve(r)?ff:UC;return s&&Lt(r,o,s)&&(o=e),f(r,se(o,3))}var KT=Se(function(r,o){if(r==null)return[];var s=o.length;return s>1&&Lt(r,o[0],o[1])?o=[]:s>2&&Lt(o[0],o[1],o[2])&&(o=[o[0]]),jg(r,vt(o,1),[])}),Rs=kS||function(){return ht.Date.now()};function YT(r,o){if(typeof o!="function")throw new pn(a);return r=_e(r),function(){if(--r<1)return o.apply(this,arguments)}}function Mv(r,o,s){return o=s?e:o,o=r&&o==null?r.length:o,ar(r,X,e,e,e,e,o)}function Fv(r,o){var s;if(typeof o!="function")throw new pn(a);return r=_e(r),function(){return--r>0&&(s=o.apply(this,arguments)),r<=1&&(o=e),s}}var Jf=Se(function(r,o,s){var f=k;if(s.length){var h=Tr(s,lo(Jf));f|=b}return ar(r,f,o,s,h)}),Rv=Se(function(r,o,s){var f=k|N;if(s.length){var h=Tr(s,lo(Rv));f|=b}return ar(o,f,r,s,h)});function Uv(r,o,s){o=s?e:o;var f=ar(r,y,e,e,e,e,e,o);return f.placeholder=Uv.placeholder,f}function Bv(r,o,s){o=s?e:o;var f=ar(r,g,e,e,e,e,e,o);return f.placeholder=Bv.placeholder,f}function zv(r,o,s){var f,h,v,S,T,P,B=0,z=!1,j=!1,Y=!0;if(typeof r!="function")throw new pn(a);o=yn(o)||0,Ze(s)&&(z=!!s.leading,j="maxWait"in s,v=j?ft(yn(s.maxWait)||0,o):v,Y="trailing"in s?!!s.trailing:Y);function re(it){var An=f,fr=h;return f=h=e,B=it,S=r.apply(fr,An),S}function ce(it){return B=it,T=Oa(Ce,o),z?re(it):S}function Ee(it){var An=it-P,fr=it-B,oy=o-An;return j?Tt(oy,v-fr):oy}function fe(it){var An=it-P,fr=it-B;return P===e||An>=o||An<0||j&&fr>=v}function Ce(){var it=Rs();if(fe(it))return Te(it);T=Oa(Ce,Ee(it))}function Te(it){return T=e,Y&&f?re(it):(f=h=e,S)}function on(){T!==e&&Gg(T),B=0,f=P=h=T=e}function Mt(){return T===e?S:Te(Rs())}function an(){var it=Rs(),An=fe(it);if(f=arguments,h=this,P=it,An){if(T===e)return ce(P);if(j)return Gg(T),T=Oa(Ce,o),re(P)}return T===e&&(T=Oa(Ce,o)),S}return an.cancel=on,an.flush=Mt,an}var XT=Se(function(r,o){return Og(r,1,o)}),GT=Se(function(r,o,s){return Og(r,yn(o)||0,s)});function QT(r){return ar(r,G)}function Us(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new pn(a);var s=function(){var f=arguments,h=o?o.apply(this,f):f[0],v=s.cache;if(v.has(h))return v.get(h);var S=r.apply(this,f);return s.cache=v.set(h,S)||v,S};return s.cache=new(Us.Cache||ir),s}Us.Cache=ir;function Bs(r){if(typeof r!="function")throw new pn(a);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function ZT(r){return Fv(2,r)}var JT=BC(function(r,o){o=o.length==1&&ve(o[0])?Ge(o[0],tn(se())):Ge(vt(o,1),tn(se()));var s=o.length;return Se(function(f){for(var h=-1,v=Tt(f.length,s);++h=o}),yi=Lg(function(){return arguments}())?Lg:function(r){return et(r)&&Re.call(r,"callee")&&!xg.call(r,"callee")},ve=I.isArray,hk=tg?tn(tg):EC;function $t(r){return r!=null&&zs(r.length)&&!ur(r)}function rt(r){return et(r)&&$t(r)}function mk(r){return r===!0||r===!1||et(r)&&At(r)==le}var Ar=OS||fd,gk=ng?tn(ng):SC;function vk(r){return et(r)&&r.nodeType===1&&!Pa(r)}function yk(r){if(r==null)return!0;if($t(r)&&(ve(r)||typeof r=="string"||typeof r.splice=="function"||Ar(r)||so(r)||yi(r)))return!r.length;var o=kt(r);if(o==ut||o==On)return!r.size;if(Na(r))return!Of(r).length;for(var s in r)if(Re.call(r,s))return!1;return!0}function wk(r,o){return ba(r,o)}function xk(r,o,s){s=typeof s=="function"?s:e;var f=s?s(r,o):e;return f===e?ba(r,o,e,s):!!f}function td(r){if(!et(r))return!1;var o=At(r);return o==we||o==Q||typeof r.message=="string"&&typeof r.name=="string"&&!Pa(r)}function _k(r){return typeof r=="number"&&Eg(r)}function ur(r){if(!Ze(r))return!1;var o=At(r);return o==pe||o==De||o==ue||o==V_}function $v(r){return typeof r=="number"&&r==_e(r)}function zs(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=xe}function Ze(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function et(r){return r!=null&&typeof r=="object"}var Wv=rg?tn(rg):bC;function Ek(r,o){return r===o||Nf(r,o,Vf(o))}function Sk(r,o,s){return s=typeof s=="function"?s:e,Nf(r,o,Vf(o),s)}function Ck(r){return Hv(r)&&r!=+r}function bk(r){if(sb(r))throw new me(i);return Mg(r)}function Tk(r){return r===null}function kk(r){return r==null}function Hv(r){return typeof r=="number"||et(r)&&At(r)==Nn}function Pa(r){if(!et(r)||At(r)!=nr)return!1;var o=ps(r);if(o===null)return!0;var s=Re.call(o,"constructor")&&o.constructor;return typeof s=="function"&&s instanceof s&&us.call(s)==SS}var nd=ig?tn(ig):TC;function Nk(r){return $v(r)&&r>=-xe&&r<=xe}var Vv=og?tn(og):kC;function js(r){return typeof r=="string"||!ve(r)&&et(r)&&At(r)==pa}function rn(r){return typeof r=="symbol"||et(r)&&At(r)==es}var so=ag?tn(ag):NC;function Ok(r){return r===e}function Pk(r){return et(r)&&kt(r)==ha}function Dk(r){return et(r)&&At(r)==K_}var Ik=Ds(Pf),Ak=Ds(function(r,o){return r<=o});function qv(r){if(!r)return[];if($t(r))return js(r)?Pn(r):jt(r);if(va&&r[va])return fS(r[va]());var o=kt(r),s=o==ut?vf:o==On?as:uo;return s(r)}function cr(r){if(!r)return r===0?r:0;if(r=yn(r),r===L||r===-L){var o=r<0?-1:1;return o*Ve}return r===r?r:0}function _e(r){var o=cr(r),s=o%1;return o===o?s?o-s:o:0}function Kv(r){return r?hi(_e(r),0,Pe):0}function yn(r){if(typeof r=="number")return r;if(rn(r))return qe;if(Ze(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=Ze(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=dg(r);var s=hE.test(r);return s||gE.test(r)?YE(r.slice(2),s?2:8):pE.test(r)?qe:+r}function Yv(r){return Bn(r,Wt(r))}function Lk(r){return r?hi(_e(r),-xe,xe):r===0?r:0}function Ae(r){return r==null?"":nn(r)}var Mk=oo(function(r,o){if(Na(o)||$t(o)){Bn(o,mt(o),r);return}for(var s in o)Re.call(o,s)&&Ea(r,s,o[s])}),Xv=oo(function(r,o){Bn(o,Wt(o),r)}),$s=oo(function(r,o,s,f){Bn(o,Wt(o),r,f)}),Fk=oo(function(r,o,s,f){Bn(o,mt(o),r,f)}),Rk=lr(Sf);function Uk(r,o){var s=io(r);return o==null?s:kg(s,o)}var Bk=Se(function(r,o){r=Ue(r);var s=-1,f=o.length,h=f>2?o[2]:e;for(h&&Lt(o[0],o[1],h)&&(f=1);++s1),v}),Bn(r,Wf(r),s),f&&(s=mn(s,p|w|x,GC));for(var h=o.length;h--;)Mf(s,o[h]);return s});function rN(r,o){return Qv(r,Bs(se(o)))}var iN=lr(function(r,o){return r==null?{}:DC(r,o)});function Qv(r,o){if(r==null)return{};var s=Ge(Wf(r),function(f){return[f]});return o=se(o),$g(r,s,function(f,h){return o(f,h[0])})}function oN(r,o,s){o=Dr(o,r);var f=-1,h=o.length;for(h||(h=1,r=e);++fo){var f=r;r=o,o=f}if(s||r%1||o%1){var h=Sg();return Tt(r+h*(o-r+KE("1e-"+((h+"").length-1))),o)}return If(r,o)}var gN=ao(function(r,o,s){return o=o.toLowerCase(),r+(s?ey(o):o)});function ey(r){return od(Ae(r).toLowerCase())}function ty(r){return r=Ae(r),r&&r.replace(yE,aS).replace(RE,"")}function vN(r,o,s){r=Ae(r),o=nn(o);var f=r.length;s=s===e?f:hi(_e(s),0,f);var h=s;return s-=o.length,s>=0&&r.slice(s,h)==o}function yN(r){return r=Ae(r),r&&Z_.test(r)?r.replace(Im,lS):r}function wN(r){return r=Ae(r),r&&iE.test(r)?r.replace(Jc,"\\$&"):r}var xN=ao(function(r,o,s){return r+(s?"-":"")+o.toLowerCase()}),_N=ao(function(r,o,s){return r+(s?" ":"")+o.toLowerCase()}),EN=iv("toLowerCase");function SN(r,o,s){r=Ae(r),o=_e(o);var f=o?eo(r):0;if(!o||f>=o)return r;var h=(o-f)/2;return Ps(vs(h),s)+r+Ps(gs(h),s)}function CN(r,o,s){r=Ae(r),o=_e(o);var f=o?eo(r):0;return o&&f>>0,s?(r=Ae(r),r&&(typeof o=="string"||o!=null&&!nd(o))&&(o=nn(o),!o&&Ji(r))?Ir(Pn(r),0,s):r.split(o,s)):[]}var DN=ao(function(r,o,s){return r+(s?" ":"")+od(o)});function IN(r,o,s){return r=Ae(r),s=s==null?0:hi(_e(s),0,r.length),o=nn(o),r.slice(s,s+o.length)==o}function AN(r,o,s){var f=m.templateSettings;s&&Lt(r,o,s)&&(o=e),r=Ae(r),o=$s({},o,f,fv);var h=$s({},o.imports,f.imports,fv),v=mt(h),S=gf(h,v),T,P,B=0,z=o.interpolate||ts,j="__p += '",Y=yf((o.escape||ts).source+"|"+z.source+"|"+(z===Am?dE:ts).source+"|"+(o.evaluate||ts).source+"|$","g"),re="//# sourceURL="+(Re.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++$E+"]")+` -`;r.replace(Y,function(fe,Ce,Te,on,Mt,an){return Te||(Te=on),j+=r.slice(B,an).replace(wE,sS),Ce&&(T=!0,j+=`' + -__e(`+Ce+`) + -'`),Mt&&(P=!0,j+=`'; -`+Mt+`; -__p += '`),Te&&(j+=`' + -((__t = (`+Te+`)) == null ? '' : __t) + -'`),B=an+fe.length,fe}),j+=`'; -`;var ce=Re.call(o,"variable")&&o.variable;if(!ce)j=`with (obj) { -`+j+` -} -`;else if(cE.test(ce))throw new me(l);j=(P?j.replace(Y_,""):j).replace(X_,"$1").replace(G_,"$1;"),j="function("+(ce||"obj")+`) { -`+(ce?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(T?", __e = _.escape":"")+(P?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+j+`return __p -}`;var Ee=ry(function(){return Ie(v,re+"return "+j).apply(e,S)});if(Ee.source=j,td(Ee))throw Ee;return Ee}function LN(r){return Ae(r).toLowerCase()}function MN(r){return Ae(r).toUpperCase()}function FN(r,o,s){if(r=Ae(r),r&&(s||o===e))return dg(r);if(!r||!(o=nn(o)))return r;var f=Pn(r),h=Pn(o),v=pg(f,h),S=hg(f,h)+1;return Ir(f,v,S).join("")}function RN(r,o,s){if(r=Ae(r),r&&(s||o===e))return r.slice(0,gg(r)+1);if(!r||!(o=nn(o)))return r;var f=Pn(r),h=hg(f,Pn(o))+1;return Ir(f,0,h).join("")}function UN(r,o,s){if(r=Ae(r),r&&(s||o===e))return r.replace(ef,"");if(!r||!(o=nn(o)))return r;var f=Pn(r),h=pg(f,Pn(o));return Ir(f,h).join("")}function BN(r,o){var s=ae,f=W;if(Ze(o)){var h="separator"in o?o.separator:h;s="length"in o?_e(o.length):s,f="omission"in o?nn(o.omission):f}r=Ae(r);var v=r.length;if(Ji(r)){var S=Pn(r);v=S.length}if(s>=v)return r;var T=s-eo(f);if(T<1)return f;var P=S?Ir(S,0,T).join(""):r.slice(0,T);if(h===e)return P+f;if(S&&(T+=P.length-T),nd(h)){if(r.slice(T).search(h)){var B,z=P;for(h.global||(h=yf(h.source,Ae(Lm.exec(h))+"g")),h.lastIndex=0;B=h.exec(z);)var j=B.index;P=P.slice(0,j===e?T:j)}}else if(r.indexOf(nn(h),T)!=T){var Y=P.lastIndexOf(h);Y>-1&&(P=P.slice(0,Y))}return P+f}function zN(r){return r=Ae(r),r&&Q_.test(r)?r.replace(Dm,mS):r}var jN=ao(function(r,o,s){return r+(s?" ":"")+o.toUpperCase()}),od=iv("toUpperCase");function ny(r,o,s){return r=Ae(r),o=s?e:o,o===e?cS(r)?yS(r):tS(r):r.match(o)||[]}var ry=Se(function(r,o){try{return en(r,e,o)}catch(s){return td(s)?s:new me(s)}}),$N=lr(function(r,o){return dn(o,function(s){s=zn(s),or(r,s,Jf(r[s],r))}),r});function WN(r){var o=r==null?0:r.length,s=se();return r=o?Ge(r,function(f){if(typeof f[1]!="function")throw new pn(a);return[s(f[0]),f[1]]}):[],Se(function(f){for(var h=-1;++hxe)return[];var s=Pe,f=Tt(r,Pe);o=se(o),r-=Pe;for(var h=mf(f,o);++s0||o<0)?new be(s):(r<0?s=s.takeRight(-r):r&&(s=s.drop(r)),o!==e&&(o=_e(o),s=o<0?s.dropRight(-o):s.take(o-r)),s)},be.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},be.prototype.toArray=function(){return this.take(Pe)},Un(be.prototype,function(r,o){var s=/^(?:filter|find|map|reject)|While$/.test(o),f=/^(?:head|last)$/.test(o),h=m[f?"take"+(o=="last"?"Right":""):o],v=f||/^find/.test(o);!h||(m.prototype[o]=function(){var S=this.__wrapped__,T=f?[1]:arguments,P=S instanceof be,B=T[0],z=P||ve(S),j=function(Ce){var Te=h.apply(m,br([Ce],T));return f&&Y?Te[0]:Te};z&&s&&typeof B=="function"&&B.length!=1&&(P=z=!1);var Y=this.__chain__,re=!!this.__actions__.length,ce=v&&!Y,Ee=P&&!re;if(!v&&z){S=Ee?S:new be(this);var fe=r.apply(S,T);return fe.__actions__.push({func:Ms,args:[j],thisArg:e}),new hn(fe,Y)}return ce&&Ee?r.apply(this,T):(fe=this.thru(j),ce?f?fe.value()[0]:fe.value():fe)})}),dn(["pop","push","shift","sort","splice","unshift"],function(r){var o=ls[r],s=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",f=/^(?:pop|shift)$/.test(r);m.prototype[r]=function(){var h=arguments;if(f&&!this.__chain__){var v=this.value();return o.apply(ve(v)?v:[],h)}return this[s](function(S){return o.apply(ve(S)?S:[],h)})}}),Un(be.prototype,function(r,o){var s=m[o];if(s){var f=s.name+"";Re.call(ro,f)||(ro[f]=[]),ro[f].push({name:o,func:s})}}),ro[Ns(e,N).name]=[{name:"wrapper",func:e}],be.prototype.clone=zS,be.prototype.reverse=jS,be.prototype.value=$S,m.prototype.at=vT,m.prototype.chain=yT,m.prototype.commit=wT,m.prototype.next=xT,m.prototype.plant=ET,m.prototype.reverse=ST,m.prototype.toJSON=m.prototype.valueOf=m.prototype.value=CT,m.prototype.first=m.prototype.head,va&&(m.prototype[va]=_T),m},kr=wS();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(ht._=kr,define(function(){return kr})):ci?((ci.exports=kr)._=kr,lf._=kr):ht._=kr}).call(Yo)});var T_=Le(($l,em)=>{(function(t,n){typeof $l=="object"&&typeof em=="object"?em.exports=n(ie()):typeof define=="function"&&define.amd?define(["react"],n):typeof $l=="object"?$l.ReactCrop=n(ie()):t.ReactCrop=n(t.React)})(typeof self<"u"?self:$l,function(e){return function(t){var n={};function i(a){if(n[a])return n[a].exports;var l=n[a]={i:a,l:!1,exports:{}};return t[a].call(l.exports,l,l.exports,i),l.l=!0,l.exports}return i.m=t,i.c=n,i.d=function(a,l,u){i.o(a,l)||Object.defineProperty(a,l,{configurable:!1,enumerable:!0,get:u})},i.n=function(a){var l=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(l,"a",l),l},i.o=function(a,l){return Object.prototype.hasOwnProperty.call(a,l)},i.p="",i(i.s=2)}([function(t,n){var i=t.exports={},a,l;function u(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?a=setTimeout:a=u}catch(g){a=u}try{typeof clearTimeout=="function"?l=clearTimeout:l=c}catch(g){l=c}})();function d(g){if(a===setTimeout)return setTimeout(g,0);if((a===u||!a)&&setTimeout)return a=setTimeout,setTimeout(g,0);try{return a(g,0)}catch(b){try{return a.call(null,g,0)}catch(D){return a.call(this,g,0)}}}function p(g){if(l===clearTimeout)return clearTimeout(g);if((l===c||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(g);try{return l(g)}catch(b){try{return l.call(null,g)}catch(D){return l.call(this,g)}}}var w=[],x=!1,E,C=-1;function k(){!x||!E||(x=!1,E.length?w=E.concat(w):C=-1,w.length&&N())}function N(){if(!x){var g=d(k);x=!0;for(var b=w.length;b;){for(E=w,w=[];++C1)for(var D=1;D100&&(te.height=100-U.y,te.width=te.height*U.aspect/F),U.x+(te.width||U.width)>100&&(te.width=100-U.x,te.height=te.width/U.aspect*F),te}function G(U,F){return U&&U.aspect&&(!U.width&&U.height||U.width&&!U.height)?H(U,F.naturalWidth/F.naturalHeight):U}function ae(U,F){if(!U||!F)return null;var te=Math.round(U.naturalWidth*(F.x/100)),A=Math.round(U.naturalHeight*(F.y/100)),L=Math.round(U.naturalWidth*(F.width/100)),xe=Math.round(U.naturalHeight*(F.height/100));return{x:te,y:A,width:b(L,0,U.naturalWidth-te),height:b(xe,0,U.naturalHeight-A)}}function W(U,F,te){var A=l({},F),L=!1;A.x+A.width>100?(A.width=F.width+(100-(F.x+F.width)),A.x=F.x+(100-(F.x+A.width)),L=!0):A.x<0&&(A.width=F.x+F.width,A.x=0,L=!0),L&&F.aspect&&(A.height=A.width/F.aspect*te,U.y>A.y&&(A.y=F.y+(F.height-A.height)));var xe=!1;return A.y+A.height>100?(A.height=F.height+(100-(F.y+F.height)),A.y=F.y+(100-(F.y+A.height)),xe=!0):A.y<0&&(A.height=F.y+F.height,A.y=0,xe=!0),xe&&F.aspect&&(A.width=A.height*F.aspect/te,A.x-1?(A.x=R.x,A.y=R.y,A.width=R.width,A.height=R.height):F.xOrds.indexOf(xe)>-1?(A.x=R.x,A.width=R.width):F.yOrds.indexOf(xe)>-1&&(A.y=R.y,A.height=R.height),L.lastYCrossover=L.yCrossOver,this.crossOverCheck(),A}},{key:"straightenYPath",value:function(A){var L=this.evData,xe=L.ord,Ve=L.cropOffset,qe=L.cropStartWidth/100*this.imageRef.width,Pe=L.cropStartHeight/100*this.imageRef.height,ge=void 0,R=void 0;return xe==="nw"||xe==="se"?(ge=Pe/qe,R=Ve.top-Ve.left*ge):(ge=-Pe/qe,R=Ve.top+(Pe-Ve.left*ge)),ge*A+R}},{key:"createCropSelection",value:function(){var A=this,L=this.props.disabled,xe=this.getCropStyle();return c.default.createElement("div",{ref:function(qe){A.cropSelectRef=qe},style:xe,className:"ReactCrop__crop-selection",onMouseDown:this.onCropMouseTouchDown,onTouchStart:this.onCropMouseTouchDown,role:"presentation"},!L&&c.default.createElement("div",{className:"ReactCrop__drag-elements"},c.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w"})))}},{key:"makeNewCrop",value:function(){return l({},F.defaultCrop,this.props.crop)}},{key:"crossOverCheck",value:function(){var A=this.evData;(!A.xCrossOver&&-Math.abs(A.cropStartWidth)-A.xDiffPc>=0||A.xCrossOver&&-Math.abs(A.cropStartWidth)-A.xDiffPc<=0)&&(A.xCrossOver=!A.xCrossOver),(!A.yCrossOver&&-Math.abs(A.cropStartHeight)-A.yDiffPc>=0||A.yCrossOver&&-Math.abs(A.cropStartHeight)-A.yDiffPc<=0)&&(A.yCrossOver=!A.yCrossOver);var L=A.xCrossOver!==A.startXCrossOver,xe=A.yCrossOver!==A.startYCrossOver;A.inversedXOrd=L?X(A.ord):!1,A.inversedYOrd=xe?X(A.ord):!1}},{key:"render",value:function(){var A=this,L=this.props,xe=L.children,Ve=L.className,qe=L.crossorigin,Pe=L.crop,ge=L.disabled,R=L.imageAlt,q=L.onImageError,oe=L.src,de=L.style,ue=L.imageStyle,le=this.state.cropIsActive,ne=void 0;D(Pe)&&(ne=this.createCropSelection());var Q=["ReactCrop"];return le&&Q.push("ReactCrop--active"),Pe&&(Pe.aspect&&Q.push("ReactCrop--fixed-aspect"),le&&(!Pe.width||!Pe.height)&&Q.push("ReactCrop--crop-invisible")),ge&&Q.push("ReactCrop--disabled"),Ve&&Q.push.apply(Q,x(Ve.split(" "))),c.default.createElement("div",{ref:function(pe){A.componentRef=pe},className:Q.join(" "),style:de,onTouchStart:this.onComponentMouseTouchDown,onMouseDown:this.onComponentMouseTouchDown,role:"presentation",tabIndex:"1",onKeyDown:this.onComponentKeyDown},c.default.createElement("img",{ref:function(pe){A.imageRef=pe},crossOrigin:qe,className:"ReactCrop__image",style:ue,src:oe,onLoad:function(pe){return A.onImageLoad(pe.target)},onError:q,alt:R}),ne,xe)}}]),F}(u.PureComponent);ye.xOrds=["e","w"],ye.yOrds=["n","s"],ye.xyOrds=["nw","ne","se","sw"],ye.arrowKey={left:37,up:38,right:39,down:40},ye.nudgeStep=.2,ye.defaultCrop={x:0,y:0,width:0,height:0},ye.propTypes={className:p.default.string,crossorigin:p.default.string,children:p.default.oneOfType([p.default.arrayOf(p.default.node),p.default.node]),crop:p.default.shape({aspect:p.default.number,x:p.default.number,y:p.default.number,width:p.default.number,height:p.default.number}),disabled:p.default.bool,imageAlt:p.default.string,imageStyle:p.default.shape({}),keepSelection:p.default.bool,minWidth:p.default.number,minHeight:p.default.number,maxWidth:p.default.number,maxHeight:p.default.number,onChange:p.default.func.isRequired,onImageError:p.default.func,onComplete:p.default.func,onImageLoaded:p.default.func,onDragStart:p.default.func,onDragEnd:p.default.func,src:p.default.string.isRequired,style:p.default.shape({})},ye.defaultProps={className:void 0,crop:void 0,crossorigin:void 0,disabled:!1,imageAlt:"",maxWidth:100,maxHeight:100,minWidth:0,minHeight:0,keepSelection:!1,onComplete:function(){},onImageError:function(){},onImageLoaded:function(){},onDragStart:function(){},onDragEnd:function(){},children:void 0,style:void 0,imageStyle:void 0},t.exports=ye,t.exports.getPixelCrop=ae,t.exports.makeAspectCrop=H,t.exports.containCrop=W},function(t,n){t.exports=e},function(t,n,i){(function(a){if(a.env.NODE_ENV!=="production"){var l=typeof Symbol=="function"&&Symbol.for&&Symbol.for("react.element")||60103,u=function(d){return typeof d=="object"&&d!==null&&d.$$typeof===l},c=!0;t.exports=i(5)(u,c)}else t.exports=i(8)()}).call(n,i(0))},function(t,n,i){"use strict";(function(a){var l=i(6),u=i(1),c=i(7),d=function(){};a.env.NODE_ENV!=="production"&&(d=function(w){var x="Warning: "+w;typeof console<"u"&&console.error(x);try{throw new Error(x)}catch(E){}});function p(){return null}t.exports=function(w,x){var E=typeof Symbol=="function"&&Symbol.iterator,C="@@iterator";function k(R){var q=R&&(E&&R[E]||R[C]);if(typeof q=="function")return q}var N="<>",_={array:D("array"),bool:D("boolean"),func:D("function"),number:D("number"),object:D("object"),string:D("string"),symbol:D("symbol"),any:X(),arrayOf:H,element:G(),instanceOf:ae,node:F(),objectOf:ye,oneOf:W,oneOfType:U,shape:te,exact:A};function y(R,q){return R===q?R!==0||1/R===1/q:R!==R&&q!==q}function g(R){this.message=R,this.stack=""}g.prototype=Error.prototype;function b(R){if(a.env.NODE_ENV!=="production")var q={},oe=0;function de(le,ne,Q,we,pe,De,ut){if(we=we||N,De=De||Q,ut!==u){if(x){var Nn=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw Nn.name="Invariant Violation",Nn}else if(a.env.NODE_ENV!=="production"&&typeof console<"u"){var Jl=we+":"+Q;!q[Jl]&&oe<3&&(d("You are manually calling a React.PropTypes validation function for the `"+De+"` prop on `"+we+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),q[Jl]=!0,oe++)}}return ne[Q]==null?le?ne[Q]===null?new g("The "+pe+" `"+De+"` is marked as required "+("in `"+we+"`, but its value is `null`.")):new g("The "+pe+" `"+De+"` is marked as required in "+("`"+we+"`, but its value is `undefined`.")):null:R(ne,Q,we,pe,De)}var ue=de.bind(null,!1);return ue.isRequired=de.bind(null,!0),ue}function D(R){function q(oe,de,ue,le,ne,Q){var we=oe[de],pe=Ve(we);if(pe!==R){var De=qe(we);return new g("Invalid "+le+" `"+ne+"` of type "+("`"+De+"` supplied to `"+ue+"`, expected ")+("`"+R+"`."))}return null}return b(q)}function X(){return b(p)}function H(R){function q(oe,de,ue,le,ne){if(typeof R!="function")return new g("Property `"+ne+"` of component `"+ue+"` has invalid PropType notation inside arrayOf.");var Q=oe[de];if(!Array.isArray(Q)){var we=Ve(Q);return new g("Invalid "+le+" `"+ne+"` of type "+("`"+we+"` supplied to `"+ue+"`, expected an array."))}for(var pe=0;pe"u"||R===null)return""+R;var q=Ve(R);if(q==="object"){if(R instanceof Date)return"date";if(R instanceof RegExp)return"regexp"}return q}function Pe(R){var q=qe(R);switch(q){case"array":case"object":return"an "+q;case"boolean":case"date":case"regexp":return"a "+q;default:return q}}function ge(R){return!R.constructor||!R.constructor.name?N:R.constructor.name}return _.checkPropTypes=c,_.PropTypes=_,_}}).call(n,i(0))},function(t,n,i){"use strict";var a=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;function c(p){if(p==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(p)}function d(){try{if(!Object.assign)return!1;var p=new String("abc");if(p[5]="de",Object.getOwnPropertyNames(p)[0]==="5")return!1;for(var w={},x=0;x<10;x++)w["_"+String.fromCharCode(x)]=x;var E=Object.getOwnPropertyNames(w).map(function(k){return w[k]});if(E.join("")!=="0123456789")return!1;var C={};return"abcdefghijklmnopqrst".split("").forEach(function(k){C[k]=k}),Object.keys(Object.assign({},C)).join("")==="abcdefghijklmnopqrst"}catch(k){return!1}}t.exports=d()?Object.assign:function(p,w){for(var x,E=c(p),C,k=1;k{k_.exports=T_()});var H_=K(cy());var hy=class{constructor(t,n,i){this.eventTarget=t,this.eventName=n,this.eventOptions=i,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(t){this.unorderedBindings.add(t)}bindingDisconnected(t){this.unorderedBindings.delete(t)}handleEvent(t){let n=RO(t);for(let i of this.bindings){if(n.immediatePropagationStopped)break;i.handleEvent(n)}}get bindings(){return Array.from(this.unorderedBindings).sort((t,n)=>{let i=t.index,a=n.index;return ia?1:0})}};function RO(e){if("immediatePropagationStopped"in e)return e;{let{stopImmediatePropagation:t}=e;return Object.assign(e,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,t.call(this)}})}}var my=class{constructor(t){this.application=t,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach(t=>t.connect()))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach(t=>t.disconnect()))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce((t,n)=>t.concat(Array.from(n.values())),[])}bindingConnected(t){this.fetchEventListenerForBinding(t).bindingConnected(t)}bindingDisconnected(t){this.fetchEventListenerForBinding(t).bindingDisconnected(t)}handleError(t,n,i={}){this.application.handleError(t,`Error ${n}`,i)}fetchEventListenerForBinding(t){let{eventTarget:n,eventName:i,eventOptions:a}=t;return this.fetchEventListener(n,i,a)}fetchEventListener(t,n,i){let a=this.fetchEventListenerMapForEventTarget(t),l=this.cacheKey(n,i),u=a.get(l);return u||(u=this.createEventListener(t,n,i),a.set(l,u)),u}createEventListener(t,n,i){let a=new hy(t,n,i);return this.started&&a.connect(),a}fetchEventListenerMapForEventTarget(t){let n=this.eventListenerMaps.get(t);return n||(n=new Map,this.eventListenerMaps.set(t,n)),n}cacheKey(t,n){let i=[t];return Object.keys(n).sort().forEach(a=>{i.push(`${n[a]?"":"!"}${a}`)}),i.join(":")}},UO=/^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;function BO(e){let n=e.trim().match(UO)||[];return{eventTarget:zO(n[4]),eventName:n[2],eventOptions:n[9]?jO(n[9]):{},identifier:n[5],methodName:n[7]}}function zO(e){if(e=="window")return window;if(e=="document")return document}function jO(e){return e.split(":").reduce((t,n)=>Object.assign(t,{[n.replace(/^!/,"")]:!/^!/.test(n)}),{})}function $O(e){if(e==window)return"window";if(e==document)return"document"}function gy(e){return e.replace(/(?:[_-])([a-z0-9])/g,(t,n)=>n.toUpperCase())}function Hs(e){return e.charAt(0).toUpperCase()+e.slice(1)}function vy(e){return e.replace(/([A-Z])/g,(t,n)=>`-${n.toLowerCase()}`)}function WO(e){return e.match(/[^\s]+/g)||[]}var yy=class{constructor(t,n,i){this.element=t,this.index=n,this.eventTarget=i.eventTarget||t,this.eventName=i.eventName||HO(t)||dd("missing event name"),this.eventOptions=i.eventOptions||{},this.identifier=i.identifier||dd("missing identifier"),this.methodName=i.methodName||dd("missing method name")}static forToken(t){return new this(t.element,t.index,BO(t.content))}toString(){let t=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${t}->${this.identifier}#${this.methodName}`}get params(){let t={},n=new RegExp(`^data-${this.identifier}-(.+)-param$`);for(let{name:i,value:a}of Array.from(this.element.attributes)){let l=i.match(n),u=l&&l[1];u&&(t[gy(u)]=VO(a))}return t}get eventTargetName(){return $O(this.eventTarget)}},fy={a:e=>"click",button:e=>"click",form:e=>"submit",details:e=>"toggle",input:e=>e.getAttribute("type")=="submit"?"click":"input",select:e=>"change",textarea:e=>"input"};function HO(e){let t=e.tagName.toLowerCase();if(t in fy)return fy[t](e)}function dd(e){throw new Error(e)}function VO(e){try{return JSON.parse(e)}catch(t){return e}}var wy=class{constructor(t,n){this.context=t,this.action=n}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}get identifier(){return this.context.identifier}handleEvent(t){this.willBeInvokedByEvent(t)&&this.shouldBeInvokedPerSelf(t)&&(this.processStopPropagation(t),this.processPreventDefault(t),this.invokeWithEvent(t))}get eventName(){return this.action.eventName}get method(){let t=this.controller[this.methodName];if(typeof t=="function")return t;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}processStopPropagation(t){this.eventOptions.stop&&t.stopPropagation()}processPreventDefault(t){this.eventOptions.prevent&&t.preventDefault()}invokeWithEvent(t){let{target:n,currentTarget:i}=t;try{let{params:a}=this.action,l=Object.assign(t,{params:a});this.method.call(this.controller,l),this.context.logDebugActivity(this.methodName,{event:t,target:n,currentTarget:i,action:this.methodName})}catch(a){let{identifier:l,controller:u,element:c,index:d}=this,p={identifier:l,controller:u,element:c,index:d,event:t};this.context.handleError(a,`invoking action "${this.action}"`,p)}}shouldBeInvokedPerSelf(t){return this.action.eventOptions.self===!0?this.action.element===t.target:!0}willBeInvokedByEvent(t){let n=t.target;return this.element===n?!0:n instanceof Element&&this.element.contains(n)?this.scope.containsElement(n):this.scope.containsElement(this.action.element)}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}},xy=class{constructor(t,n){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=t,this.started=!1,this.delegate=n,this.elements=new Set,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(t){this.started&&(this.mutationObserver.disconnect(),this.started=!1),t(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){let t=new Set(this.matchElementsInTree());for(let n of Array.from(this.elements))t.has(n)||this.removeElement(n);for(let n of Array.from(t))this.addElement(n)}}processMutations(t){if(this.started)for(let n of t)this.processMutation(n)}processMutation(t){t.type=="attributes"?this.processAttributeChange(t.target,t.attributeName):t.type=="childList"&&(this.processRemovedNodes(t.removedNodes),this.processAddedNodes(t.addedNodes))}processAttributeChange(t,n){let i=t;this.elements.has(i)?this.delegate.elementAttributeChanged&&this.matchElement(i)?this.delegate.elementAttributeChanged(i,n):this.removeElement(i):this.matchElement(i)&&this.addElement(i)}processRemovedNodes(t){for(let n of Array.from(t)){let i=this.elementFromNode(n);i&&this.processTree(i,this.removeElement)}}processAddedNodes(t){for(let n of Array.from(t)){let i=this.elementFromNode(n);i&&this.elementIsActive(i)&&this.processTree(i,this.addElement)}}matchElement(t){return this.delegate.matchElement(t)}matchElementsInTree(t=this.element){return this.delegate.matchElementsInTree(t)}processTree(t,n){for(let i of this.matchElementsInTree(t))n.call(this,i)}elementFromNode(t){if(t.nodeType==Node.ELEMENT_NODE)return t}elementIsActive(t){return t.isConnected!=this.element.isConnected?!1:this.element.contains(t)}addElement(t){this.elements.has(t)||this.elementIsActive(t)&&(this.elements.add(t),this.delegate.elementMatched&&this.delegate.elementMatched(t))}removeElement(t){this.elements.has(t)&&(this.elements.delete(t),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(t))}},_y=class{constructor(t,n,i){this.attributeName=n,this.delegate=i,this.elementObserver=new xy(t,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(t){this.elementObserver.pause(t)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(t){return t.hasAttribute(this.attributeName)}matchElementsInTree(t){let n=this.matchElement(t)?[t]:[],i=Array.from(t.querySelectorAll(this.selector));return n.concat(i)}elementMatched(t){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(t,this.attributeName)}elementUnmatched(t){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(t,this.attributeName)}elementAttributeChanged(t,n){this.delegate.elementAttributeValueChanged&&this.attributeName==n&&this.delegate.elementAttributeValueChanged(t,n)}},Ey=class{constructor(t,n){this.element=t,this.delegate=n,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(let t of this.knownAttributeNames)this.refreshAttribute(t,null)}processMutations(t){if(this.started)for(let n of t)this.processMutation(n)}processMutation(t){let n=t.attributeName;n&&this.refreshAttribute(n,t.oldValue)}refreshAttribute(t,n){let i=this.delegate.getStringMapKeyForAttribute(t);if(i!=null){this.stringMap.has(t)||this.stringMapKeyAdded(i,t);let a=this.element.getAttribute(t);if(this.stringMap.get(t)!=a&&this.stringMapValueChanged(a,i,n),a==null){let l=this.stringMap.get(t);this.stringMap.delete(t),l&&this.stringMapKeyRemoved(i,t,l)}else this.stringMap.set(t,a)}}stringMapKeyAdded(t,n){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(t,n)}stringMapValueChanged(t,n,i){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(t,n,i)}stringMapKeyRemoved(t,n,i){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(t,n,i)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map(t=>t.name)}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}};function qO(e,t,n){Sy(e,t).add(n)}function KO(e,t,n){Sy(e,t).delete(n),YO(e,t)}function Sy(e,t){let n=e.get(t);return n||(n=new Set,e.set(t,n)),n}function YO(e,t){let n=e.get(t);n!=null&&n.size==0&&e.delete(t)}var Vs=class{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce((n,i)=>n.concat(Array.from(i)),[])}get size(){return Array.from(this.valuesByKey.values()).reduce((n,i)=>n+i.size,0)}add(t,n){qO(this.valuesByKey,t,n)}delete(t,n){KO(this.valuesByKey,t,n)}has(t,n){let i=this.valuesByKey.get(t);return i!=null&&i.has(n)}hasKey(t){return this.valuesByKey.has(t)}hasValue(t){return Array.from(this.valuesByKey.values()).some(i=>i.has(t))}getValuesForKey(t){let n=this.valuesByKey.get(t);return n?Array.from(n):[]}getKeysForValue(t){return Array.from(this.valuesByKey).filter(([n,i])=>i.has(t)).map(([n,i])=>n)}};var hd=class{constructor(t,n,i){this.attributeObserver=new _y(t,n,this),this.delegate=i,this.tokensByElement=new Vs}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(t){this.attributeObserver.pause(t)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(t){this.tokensMatched(this.readTokensForElement(t))}elementAttributeValueChanged(t){let[n,i]=this.refreshTokensForElement(t);this.tokensUnmatched(n),this.tokensMatched(i)}elementUnmatchedAttribute(t){this.tokensUnmatched(this.tokensByElement.getValuesForKey(t))}tokensMatched(t){t.forEach(n=>this.tokenMatched(n))}tokensUnmatched(t){t.forEach(n=>this.tokenUnmatched(n))}tokenMatched(t){this.delegate.tokenMatched(t),this.tokensByElement.add(t.element,t)}tokenUnmatched(t){this.delegate.tokenUnmatched(t),this.tokensByElement.delete(t.element,t)}refreshTokensForElement(t){let n=this.tokensByElement.getValuesForKey(t),i=this.readTokensForElement(t),a=GO(n,i).findIndex(([l,u])=>!QO(l,u));return a==-1?[[],[]]:[n.slice(a),i.slice(a)]}readTokensForElement(t){let n=this.attributeName,i=t.getAttribute(n)||"";return XO(i,t,n)}};function XO(e,t,n){return e.trim().split(/\s+/).filter(i=>i.length).map((i,a)=>({element:t,attributeName:n,content:i,index:a}))}function GO(e,t){let n=Math.max(e.length,t.length);return Array.from({length:n},(i,a)=>[e[a],t[a]])}function QO(e,t){return e&&t&&e.index==t.index&&e.content==t.content}var md=class{constructor(t,n,i){this.tokenListObserver=new hd(t,n,this),this.delegate=i,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(t){let{element:n}=t,{value:i}=this.fetchParseResultForToken(t);i&&(this.fetchValuesByTokenForElement(n).set(t,i),this.delegate.elementMatchedValue(n,i))}tokenUnmatched(t){let{element:n}=t,{value:i}=this.fetchParseResultForToken(t);i&&(this.fetchValuesByTokenForElement(n).delete(t),this.delegate.elementUnmatchedValue(n,i))}fetchParseResultForToken(t){let n=this.parseResultsByToken.get(t);return n||(n=this.parseToken(t),this.parseResultsByToken.set(t,n)),n}fetchValuesByTokenForElement(t){let n=this.valuesByTokenByElement.get(t);return n||(n=new Map,this.valuesByTokenByElement.set(t,n)),n}parseToken(t){try{return{value:this.delegate.parseValueForToken(t)}}catch(n){return{error:n}}}},Cy=class{constructor(t,n){this.context=t,this.delegate=n,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new md(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(t){let n=new wy(this.context,t);this.bindingsByAction.set(t,n),this.delegate.bindingConnected(n)}disconnectAction(t){let n=this.bindingsByAction.get(t);n&&(this.bindingsByAction.delete(t),this.delegate.bindingDisconnected(n))}disconnectAllActions(){this.bindings.forEach(t=>this.delegate.bindingDisconnected(t)),this.bindingsByAction.clear()}parseValueForToken(t){let n=yy.forToken(t);if(n.identifier==this.identifier)return n}elementMatchedValue(t,n){this.connectAction(n)}elementUnmatchedValue(t,n){this.disconnectAction(n)}},by=class{constructor(t,n){this.context=t,this.receiver=n,this.stringMapObserver=new Ey(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap}start(){this.stringMapObserver.start(),this.invokeChangedCallbacksForDefaultValues()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(t){if(t in this.valueDescriptorMap)return this.valueDescriptorMap[t].name}stringMapKeyAdded(t,n){let i=this.valueDescriptorMap[n];this.hasValue(t)||this.invokeChangedCallback(t,i.writer(this.receiver[t]),i.writer(i.defaultValue))}stringMapValueChanged(t,n,i){let a=this.valueDescriptorNameMap[n];t!==null&&(i===null&&(i=a.writer(a.defaultValue)),this.invokeChangedCallback(n,t,i))}stringMapKeyRemoved(t,n,i){let a=this.valueDescriptorNameMap[t];this.hasValue(t)?this.invokeChangedCallback(t,a.writer(this.receiver[t]),i):this.invokeChangedCallback(t,a.writer(a.defaultValue),i)}invokeChangedCallbacksForDefaultValues(){for(let{key:t,name:n,defaultValue:i,writer:a}of this.valueDescriptors)i!=null&&!this.controller.data.has(t)&&this.invokeChangedCallback(n,a(i),void 0)}invokeChangedCallback(t,n,i){let a=`${t}Changed`,l=this.receiver[a];if(typeof l=="function"){let u=this.valueDescriptorNameMap[t];try{let c=u.reader(n),d=i;i&&(d=u.reader(i)),l.call(this.receiver,c,d)}catch(c){throw c instanceof TypeError?new TypeError(`Stimulus Value "${this.context.identifier}.${u.name}" - ${c.message}`):c}}}get valueDescriptors(){let{valueDescriptorMap:t}=this;return Object.keys(t).map(n=>t[n])}get valueDescriptorNameMap(){let t={};return Object.keys(this.valueDescriptorMap).forEach(n=>{let i=this.valueDescriptorMap[n];t[i.name]=i}),t}hasValue(t){let n=this.valueDescriptorNameMap[t],i=`has${Hs(n.name)}`;return this.receiver[i]}},Ty=class{constructor(t,n){this.context=t,this.delegate=n,this.targetsByName=new Vs}start(){this.tokenListObserver||(this.tokenListObserver=new hd(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:t,content:n}){this.scope.containsElement(t)&&this.connectTarget(t,n)}tokenUnmatched({element:t,content:n}){this.disconnectTarget(t,n)}connectTarget(t,n){var i;this.targetsByName.has(n,t)||(this.targetsByName.add(n,t),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetConnected(t,n)))}disconnectTarget(t,n){var i;this.targetsByName.has(n,t)&&(this.targetsByName.delete(n,t),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetDisconnected(t,n)))}disconnectAllTargets(){for(let t of this.targetsByName.keys)for(let n of this.targetsByName.getValuesForKey(t))this.disconnectTarget(n,t)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}},ky=class{constructor(t,n){this.logDebugActivity=(i,a={})=>{let{identifier:l,controller:u,element:c}=this;a=Object.assign({identifier:l,controller:u,element:c},a),this.application.logDebugActivity(this.identifier,i,a)},this.module=t,this.scope=n,this.controller=new t.controllerConstructor(this),this.bindingObserver=new Cy(this,this.dispatcher),this.valueObserver=new by(this,this.controller),this.targetObserver=new Ty(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(i){this.handleError(i,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(t){this.handleError(t,"connecting controller")}}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(t){this.handleError(t,"disconnecting controller")}this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(t,n,i={}){let{identifier:a,controller:l,element:u}=this;i=Object.assign({identifier:a,controller:l,element:u},i),this.application.handleError(t,`Error ${n}`,i)}targetConnected(t,n){this.invokeControllerMethod(`${n}TargetConnected`,t)}targetDisconnected(t,n){this.invokeControllerMethod(`${n}TargetDisconnected`,t)}invokeControllerMethod(t,...n){let i=this.controller;typeof i[t]=="function"&&i[t](...n)}};function gd(e,t){let n=Ny(e);return Array.from(n.reduce((i,a)=>(JO(a,t).forEach(l=>i.add(l)),i),new Set))}function ZO(e,t){return Ny(e).reduce((i,a)=>(i.push(...eP(a,t)),i),[])}function Ny(e){let t=[];for(;e;)t.push(e),e=Object.getPrototypeOf(e);return t.reverse()}function JO(e,t){let n=e[t];return Array.isArray(n)?n:[]}function eP(e,t){let n=e[t];return n?Object.keys(n).map(i=>[i,n[i]]):[]}function tP(e){return nP(e,rP(e))}function nP(e,t){let n=lP(e),i=iP(e.prototype,t);return Object.defineProperties(n.prototype,i),n}function rP(e){return gd(e,"blessings").reduce((n,i)=>{let a=i(e);for(let l in a){let u=n[l]||{};n[l]=Object.assign(u,a[l])}return n},{})}function iP(e,t){return aP(t).reduce((n,i)=>{let a=oP(e,t,i);return a&&Object.assign(n,{[i]:a}),n},{})}function oP(e,t,n){let i=Object.getOwnPropertyDescriptor(e,n);if(!(i&&"value"in i)){let l=Object.getOwnPropertyDescriptor(t,n).value;return i&&(l.get=i.get||l.get,l.set=i.set||l.set),l}}var aP=(()=>typeof Object.getOwnPropertySymbols=="function"?e=>[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)]:Object.getOwnPropertyNames)(),lP=(()=>{function e(n){function i(){return Reflect.construct(n,arguments,new.target)}return i.prototype=Object.create(n.prototype,{constructor:{value:i}}),Reflect.setPrototypeOf(i,n),i}function t(){let i=e(function(){this.a.call(this)});return i.prototype.a=function(){},new i}try{return t(),e}catch(n){return i=>class extends i{}}})();function sP(e){return{identifier:e.identifier,controllerConstructor:tP(e.controllerConstructor)}}var Oy=class{constructor(t,n){this.application=t,this.definition=sP(n),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(t){let n=this.fetchContextForScope(t);this.connectedContexts.add(n),n.connect()}disconnectContextForScope(t){let n=this.contextsByScope.get(t);n&&(this.connectedContexts.delete(n),n.disconnect())}fetchContextForScope(t){let n=this.contextsByScope.get(t);return n||(n=new ky(this,t),this.contextsByScope.set(t,n)),n}},Py=class{constructor(t){this.scope=t}has(t){return this.data.has(this.getDataKey(t))}get(t){return this.getAll(t)[0]}getAll(t){let n=this.data.get(this.getDataKey(t))||"";return WO(n)}getAttributeName(t){return this.data.getAttributeNameForKey(this.getDataKey(t))}getDataKey(t){return`${t}-class`}get data(){return this.scope.data}},Dy=class{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(t){let n=this.getAttributeNameForKey(t);return this.element.getAttribute(n)}set(t,n){let i=this.getAttributeNameForKey(t);return this.element.setAttribute(i,n),this.get(t)}has(t){let n=this.getAttributeNameForKey(t);return this.element.hasAttribute(n)}delete(t){if(this.has(t)){let n=this.getAttributeNameForKey(t);return this.element.removeAttribute(n),!0}else return!1}getAttributeNameForKey(t){return`data-${this.identifier}-${vy(t)}`}},Iy=class{constructor(t){this.warnedKeysByObject=new WeakMap,this.logger=t}warn(t,n,i){let a=this.warnedKeysByObject.get(t);a||(a=new Set,this.warnedKeysByObject.set(t,a)),a.has(n)||(a.add(n),this.logger.warn(i,t))}};function pd(e,t){return`[${e}~="${t}"]`}var Ay=class{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(t){return this.find(t)!=null}find(...t){return t.reduce((n,i)=>n||this.findTarget(i)||this.findLegacyTarget(i),void 0)}findAll(...t){return t.reduce((n,i)=>[...n,...this.findAllTargets(i),...this.findAllLegacyTargets(i)],[])}findTarget(t){let n=this.getSelectorForTargetName(t);return this.scope.findElement(n)}findAllTargets(t){let n=this.getSelectorForTargetName(t);return this.scope.findAllElements(n)}getSelectorForTargetName(t){let n=this.schema.targetAttributeForScope(this.identifier);return pd(n,t)}findLegacyTarget(t){let n=this.getLegacySelectorForTargetName(t);return this.deprecate(this.scope.findElement(n),t)}findAllLegacyTargets(t){let n=this.getLegacySelectorForTargetName(t);return this.scope.findAllElements(n).map(i=>this.deprecate(i,t))}getLegacySelectorForTargetName(t){let n=`${this.identifier}.${t}`;return pd(this.schema.targetAttribute,n)}deprecate(t,n){if(t){let{identifier:i}=this,a=this.schema.targetAttribute,l=this.schema.targetAttributeForScope(i);this.guide.warn(t,`target:${n}`,`Please replace ${a}="${i}.${n}" with ${l}="${n}". The ${a} attribute is deprecated and will be removed in a future version of Stimulus.`)}return t}get guide(){return this.scope.guide}},Ly=class{constructor(t,n,i,a){this.targets=new Ay(this),this.classes=new Py(this),this.data=new Dy(this),this.containsElement=l=>l.closest(this.controllerSelector)===this.element,this.schema=t,this.element=n,this.identifier=i,this.guide=new Iy(a)}findElement(t){return this.element.matches(t)?this.element:this.queryElements(t).find(this.containsElement)}findAllElements(t){return[...this.element.matches(t)?[this.element]:[],...this.queryElements(t).filter(this.containsElement)]}queryElements(t){return Array.from(this.element.querySelectorAll(t))}get controllerSelector(){return pd(this.schema.controllerAttribute,this.identifier)}},My=class{constructor(t,n,i){this.element=t,this.schema=n,this.delegate=i,this.valueListObserver=new md(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(t){let{element:n,content:i}=t,a=this.fetchScopesByIdentifierForElement(n),l=a.get(i);return l||(l=this.delegate.createScopeForElementAndIdentifier(n,i),a.set(i,l)),l}elementMatchedValue(t,n){let i=(this.scopeReferenceCounts.get(n)||0)+1;this.scopeReferenceCounts.set(n,i),i==1&&this.delegate.scopeConnected(n)}elementUnmatchedValue(t,n){let i=this.scopeReferenceCounts.get(n);i&&(this.scopeReferenceCounts.set(n,i-1),i==1&&this.delegate.scopeDisconnected(n))}fetchScopesByIdentifierForElement(t){let n=this.scopesByIdentifierByElement.get(t);return n||(n=new Map,this.scopesByIdentifierByElement.set(t,n)),n}},Fy=class{constructor(t){this.application=t,this.scopeObserver=new My(this.element,this.schema,this),this.scopesByIdentifier=new Vs,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce((t,n)=>t.concat(n.contexts),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(t){this.unloadIdentifier(t.identifier);let n=new Oy(this.application,t);this.connectModule(n)}unloadIdentifier(t){let n=this.modulesByIdentifier.get(t);n&&this.disconnectModule(n)}getContextForElementAndIdentifier(t,n){let i=this.modulesByIdentifier.get(n);if(i)return i.contexts.find(a=>a.element==t)}handleError(t,n,i){this.application.handleError(t,n,i)}createScopeForElementAndIdentifier(t,n){return new Ly(this.schema,t,n,this.logger)}scopeConnected(t){this.scopesByIdentifier.add(t.identifier,t);let n=this.modulesByIdentifier.get(t.identifier);n&&n.connectContextForScope(t)}scopeDisconnected(t){this.scopesByIdentifier.delete(t.identifier,t);let n=this.modulesByIdentifier.get(t.identifier);n&&n.disconnectContextForScope(t)}connectModule(t){this.modulesByIdentifier.set(t.identifier,t),this.scopesByIdentifier.getValuesForKey(t.identifier).forEach(i=>t.connectContextForScope(i))}disconnectModule(t){this.modulesByIdentifier.delete(t.identifier),this.scopesByIdentifier.getValuesForKey(t.identifier).forEach(i=>t.disconnectContextForScope(i))}},uP={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:e=>`data-${e}-target`},Aa=class{constructor(t=document.documentElement,n=uP){this.logger=console,this.debug=!1,this.logDebugActivity=(i,a,l={})=>{this.debug&&this.logFormattedMessage(i,a,l)},this.element=t,this.schema=n,this.dispatcher=new my(this),this.router=new Fy(this)}static start(t,n){let i=new Aa(t,n);return i.start(),i}async start(){await cP(),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(t,n){this.load({identifier:t,controllerConstructor:n})}load(t,...n){(Array.isArray(t)?t:[t,...n]).forEach(a=>{a.controllerConstructor.shouldLoad&&this.router.loadDefinition(a)})}unload(t,...n){(Array.isArray(t)?t:[t,...n]).forEach(a=>this.router.unloadIdentifier(a))}get controllers(){return this.router.contexts.map(t=>t.controller)}getControllerForElementAndIdentifier(t,n){let i=this.router.getContextForElementAndIdentifier(t,n);return i?i.controller:null}handleError(t,n,i){var a;this.logger.error(`%s - -%o - -%o`,n,t,i),(a=window.onerror)===null||a===void 0||a.call(window,n,"",0,0,t)}logFormattedMessage(t,n,i={}){i=Object.assign({application:this},i),this.logger.groupCollapsed(`${t} #${n}`),this.logger.log("details:",Object.assign({},i)),this.logger.groupEnd()}};function cP(){return new Promise(e=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>e()):e()})}function fP(e){return gd(e,"classes").reduce((n,i)=>Object.assign(n,dP(i)),{})}function dP(e){return{[`${e}Class`]:{get(){let{classes:t}=this;if(t.has(e))return t.get(e);{let n=t.getAttributeName(e);throw new Error(`Missing attribute "${n}"`)}}},[`${e}Classes`]:{get(){return this.classes.getAll(e)}},[`has${Hs(e)}Class`]:{get(){return this.classes.has(e)}}}}function pP(e){return gd(e,"targets").reduce((n,i)=>Object.assign(n,hP(i)),{})}function hP(e){return{[`${e}Target`]:{get(){let t=this.targets.find(e);if(t)return t;throw new Error(`Missing target element "${e}" for "${this.identifier}" controller`)}},[`${e}Targets`]:{get(){return this.targets.findAll(e)}},[`has${Hs(e)}Target`]:{get(){return this.targets.has(e)}}}}function mP(e){let t=ZO(e,"values"),n={valueDescriptorMap:{get(){return t.reduce((i,a)=>{let l=Ry(a,this.identifier),u=this.data.getAttributeNameForKey(l.key);return Object.assign(i,{[u]:l})},{})}}};return t.reduce((i,a)=>Object.assign(i,gP(a)),n)}function gP(e,t){let n=Ry(e,t),{key:i,name:a,reader:l,writer:u}=n;return{[a]:{get(){let c=this.data.get(i);return c!==null?l(c):n.defaultValue},set(c){c===void 0?this.data.delete(i):this.data.set(i,u(c))}},[`has${Hs(a)}`]:{get(){return this.data.has(i)||n.hasCustomDefaultValue}}}}function Ry([e,t],n){return xP({controller:n,token:e,typeDefinition:t})}function vd(e){switch(e){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Ia(e){switch(typeof e){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(e))return"array";if(Object.prototype.toString.call(e)==="[object Object]")return"object"}function vP(e){let t=vd(e.typeObject.type);if(!t)return;let n=Ia(e.typeObject.default);if(t!==n){let i=e.controller?`${e.controller}.${e.token}`:e.token;throw new Error(`The specified default value for the Stimulus Value "${i}" must match the defined type "${t}". The provided default value of "${e.typeObject.default}" is of type "${n}".`)}return t}function yP(e){let t=vP({controller:e.controller,token:e.token,typeObject:e.typeDefinition}),n=Ia(e.typeDefinition),i=vd(e.typeDefinition),a=t||n||i;if(a)return a;let l=e.controller?`${e.controller}.${e.typeDefinition}`:e.token;throw new Error(`Unknown value type "${l}" for "${e.token}" value`)}function wP(e){let t=vd(e);if(t)return _P[t];let n=e.default;return n!==void 0?n:e}function xP(e){let t=`${vy(e.token)}-value`,n=yP(e);return{type:n,key:t,name:gy(t),get defaultValue(){return wP(e.typeDefinition)},get hasCustomDefaultValue(){return Ia(e.typeDefinition)!==void 0},reader:EP[n],writer:dy[n]||dy.default}}var _P={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},EP={array(e){let t=JSON.parse(e);if(!Array.isArray(t))throw new TypeError(`expected value of type "array" but instead got value "${e}" of type "${Ia(t)}"`);return t},boolean(e){return!(e=="0"||String(e).toLowerCase()=="false")},number(e){return Number(e)},object(e){let t=JSON.parse(e);if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(`expected value of type "object" but instead got value "${e}" of type "${Ia(t)}"`);return t},string(e){return e}},dy={default:SP,array:py,object:py};function py(e){return JSON.stringify(e)}function SP(e){return`${e}`}var jn=class{constructor(t){this.context=t}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(t,{target:n=this.element,detail:i={},prefix:a=this.identifier,bubbles:l=!0,cancelable:u=!0}={}){let c=a?`${a}:${t}`:t,d=new CustomEvent(c,{detail:i,bubbles:l,cancelable:u});return n.dispatchEvent(d),d}};jn.blessings=[fP,pP,mP];jn.targets=[];jn.values={};var f3=K(Kx());var zc={};MO(zc,{Attachments:()=>Jo,DateRangeSelect:()=>na,EditableImage:()=>zi,FileUploadButton:()=>Qn,ImageCropper:()=>Hl,ImageGrid:()=>aa,ImageUploader:()=>Vl,Modal:()=>pm,PageForm:()=>Fc,PageTree:()=>Bc,RichTextArea:()=>Sr,TagEditor:()=>Kl,Toast:()=>km});var Gt=K(ie()),Zo=K(lt());var Ct=K(ie());function Ul(){return document.queryCommandSupported&&document.queryCommandSupported("copy")}function Gn(e){let t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}var We=K(ie());var n_={},t_=e=>{let t,n=new Set,i=(d,p)=>{let w=typeof d=="function"?d(t):d;if(!Object.is(w,t)){let x=t;t=(p!=null?p:typeof w!="object")?w:Object.assign({},t,w),n.forEach(E=>E(t,x))}},a=()=>t,c={setState:i,getState:a,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(n_.env&&n_.env.MODE)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}};return t=e(i,a,c),c},r_=e=>e?t_(e):t_;var h_=K(ie(),1),m_=K(f_(),1),p_={},{useSyncExternalStoreWithSelector:_A}=m_.default;function EA(e,t=e.getState,n){let i=_A(e.subscribe,e.getState,e.getServerState||e.getState,t,n);return(0,h_.useDebugValue)(i),i}var d_=e=>{(p_.env&&p_.env.MODE)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let t=typeof e=="function"?r_(e):e,n=(i,a)=>EA(t,i,a);return Object.assign(n,t),n},mc=e=>e?d_(e):d_;var SA=mc(e=>({component:null,open:t=>e({component:t}),close:()=>e({component:null})})),Xt=SA;var CA=mc(e=>({toasts:[],error:t=>e(n=>({toasts:[...n.toasts,{message:t,type:"error"}]})),notice:t=>e(n=>({toasts:[...n.toasts,{message:t,type:"notice"}]})),next:()=>e(t=>({toasts:t.toasts.slice(1)}))})),Bt=CA;function gc(){let e=document.querySelector("[name=csrf-token]");return e&&e.getAttribute("content")||""}function g_(){return{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8","X-CSRF-Token":gc()}}}async function v_(e,t){let n=Ne(J({},g_()),{method:"POST"});return t&&(n.body=JSON.stringify(t)),(await fetch(e,n)).json()}async function qo(e,t){let n=Ne(J({},g_()),{method:"PUT"});return t&&(n.body=JSON.stringify(t)),(await fetch(e,n)).json()}async function Ko(e,t){return(await fetch(e,{method:"POST",body:t,headers:{"X-CSRF-Token":gc()}})).json()}function Qh(e){let{attachment:t,locales:n}=e,[i,a]=(0,We.useState)(e.locale),[l,u]=(0,We.useState)({name:t.name||{},description:t.description||{}}),c=Bt(C=>C.notice),d=Xt(C=>C.close),p=C=>k=>{u(Ne(J({},l),{[C]:Ne(J({},l[C]),{[i]:k.target.value})}))},w=C=>{C.preventDefault(),Gn(`[attachment:${t.id}]`),c("Embed code copied to clipboard")},x=C=>{C.preventDefault(),C.stopPropagation();let k=J({},l);qo(`/admin/attachments/${t.id}`,{attachment:k}),e.onUpdate&&e.onUpdate(k),d()},E=n&&n[i]&&n[i].dir||"ltr";return We.default.createElement("div",{className:"attachment-editor"},We.default.createElement("form",null,e.locales&&Object.keys(n).length>1&&We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"Locale"),We.default.createElement("select",{name:"locale",value:i,onChange:C=>a(C.target.value)},Object.keys(n).map(C=>We.default.createElement("option",{key:`locale-${C}`,value:C},n[C].name)))),We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"Name"),We.default.createElement("input",{type:"text",className:"name",lang:i,dir:E,value:l.name[i]||"",onChange:p("name")})),We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"Description"),We.default.createElement("textarea",{className:"description",value:l.description[i]||"",lang:i,dir:E,onChange:p("description")})),We.default.createElement("div",{className:"field embed-code"},We.default.createElement("label",null,"Embed code"),We.default.createElement("input",{type:"text",value:`[attachment:${t.id}]`,disabled:!0}),Ul()&&We.default.createElement("button",{onClick:w},"Copy")),We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"File"),We.default.createElement("a",{href:t.url,rel:"noreferrer",target:"_blank"},t.filename)),We.default.createElement("div",{className:"buttons"},We.default.createElement("button",{onClick:x},"Save"),We.default.createElement("button",{onClick:d},"Cancel"))))}var ri=K(ie()),w_=K(y_());function bA(e){return e&&e.ref&&e.ref.current?e.ref.current.getBoundingClientRect():null}function TA(e,t){if(e&&e.ref&&e.ref.current){let n=e.ref.current.style.display;e.ref.current.style.display="none";let i=t();return e.ref.current.style.display=n,i}else return t()}function kA(e,t){let n=e.indexOf("Files");return n===-1||!t?e:[...e.slice(0,n),...t,...e.slice(n+1)]}function NA(e,t){switch(t.type){case"append":return[...e,...t.payload];case"prepend":return[...t.payload,...e];case"insertFiles":return kA(e,t.payload);case"update":return e.map(n=>n.handle===t.payload.handle?t.payload:n);case"updatePositions":return TA(t.payload,()=>e.map(n=>Ne(J({},n),{rect:bA(n)})));case"remove":return e.filter(n=>n.handle!==t.payload.handle);case"replace":return t.payload;case"reorder":return t.payload;default:return e}}function Xo(e){return{record:e,rect:null,ref:(0,ri.createRef)(),handle:(0,w_.uniqueId)("draggable")}}function Ri(e){let t=(0,ri.useRef)(null),[n,i]=(0,ri.useReducer)(NA,[],()=>e.map(a=>Xo(a)));return(0,ri.useEffect)(()=>{i({type:"updatePositions"})},[]),{ref:t,draggables:n,dispatch:i}}var vc=K(ie());function OA(e){if("dataTransfer"in e){let t=e.dataTransfer;if("types"in t){let n=t.types;for(let i=0;i{e.forEach(x=>{x.dispatch({type:"updatePositions",payload:w})})},u=(w,x)=>{l(x),a(J({dragging:x},x_(w)))},c=w=>{i.dragging?(w.stopPropagation(),w.preventDefault(),a(J(J({},i),x_(w)))):OA(w)&&u(w,"Files")},d=w=>{if(i.dragging){let x=i,E=[];w.stopPropagation(),w.preventDefault(),"dataTransfer"in w&&i.dragging=="Files"&&(E=PA(w.dataTransfer)),a({dragging:!1,x:null,y:null}),t(x,E),l()}},p=w=>{i.dragging==="Files"&&(w.preventDefault(),w.stopPropagation(),a({dragging:!1,x:null,y:null}))};return(0,vc.useEffect)(()=>(window.addEventListener("mousemove",c),window.addEventListener("touchmove",c),window.addEventListener("mouseup",d),window.addEventListener("touchend",d),window.addEventListener("mouseout",p),function(){window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",c),window.removeEventListener("mouseup",d),window.removeEventListener("touchend",d),window.removeEventListener("mouseout",p)})),[i,u,{onDragOver:c,onDrop:d}]}var yc=K(ie());function Qo(e,t){let n=(0,yc.useRef)(null),i=a=>{a.preventDefault(),a.stopPropagation(),t(a,e)};return(0,yc.useEffect)(()=>{e.ref.current=n.current},[]),{ref:n,onDragStart:i,draggable:!0}}function __(e,t){let{x:n,y:i}=e,a;if("rect"in t)a=t.rect;else if("current"in t)a=t.current.getBoundingClientRect();else return!1;return n>=a.left&&n<=a.right&&i>=a.top&&i<=a.bottom}function zl(e,t){let{draggables:n,ref:i}=e,{dragging:a}=t;if(!a)return n;let l=n.filter(u=>u.handle!==a.handle);if(__(t,i)){let u=l.filter(c=>__(t,c))[0];if(u){let c=l.indexOf(u);l=[...l.slice(0,c),a,...l.slice(c)]}else l=[...l,a]}return l}function jl(e,t){let n=zl(e,t);return t.dragging&&n.indexOf(t.dragging)===-1&&(e.ref.current&&t.yb.open),p=Bt(b=>b.notice),w=Qo(n,e.startDrag),x=b=>{b.preventDefault(),Gn(`[attachment:${u.id}]`),p("Embed code copied to clipboard")},E=b=>{b.preventDefault(),e.deleteRecord&&e.deleteRecord()},C=()=>u.description&&u.description[a]?u.description[a]:null,k=()=>u.name&&u.name[a]?u.name[a]:null,N=b=>{b.preventDefault(),d(Ct.default.createElement(Qh,{attachment:u,locale:a,locales:i,onUpdate:e.onUpdate}))},_=["attachment"];e.placeholder&&_.push("placeholder"),l.uploading&&_.push("uploading");let y=c?"cloud-arrow-up":"paperclip",g="ltr";return a in i&&i[a].dir&&(g=i[a].dir),Ct.default.createElement("div",J({className:_.join(" ")},w),Ct.default.createElement("input",{name:`${t}[id]`,type:"hidden",value:l.id||""}),Ct.default.createElement("input",{name:`${t}[attachment_id]`,type:"hidden",value:u&&u.id||""}),Ct.default.createElement("input",{name:`${t}[position]`,type:"hidden",value:e.position}),!c&&Ct.default.createElement("div",{className:"actions"},Ct.default.createElement("button",{onClick:N},"Edit"),e.showEmbed&&Ct.default.createElement("button",{onClick:x},"Embed"),e.deleteRecord&&Ct.default.createElement("button",{onClick:E},"Remove")),u&&Ct.default.createElement("div",{className:"attachment-info"},Ct.default.createElement("h3",null,Ct.default.createElement("i",{className:`fa-solid fa-${y} icon`}),k()||Ct.default.createElement("em",null,"Untitled"),Ct.default.createElement("br",null)),!c&&Ct.default.createElement("a",{href:u.url,rel:"noreferrer",target:"_blank"},u.filename),!c&&C()&&Ct.default.createElement("p",{dir:g},C())))}var E_=K(ie());function Jh(){return E_.default.createElement("div",{className:"attachment drop-placeholder",key:"file-placeholder"},"Upload files here")}var ii=K(ie());function Qn(e){let t=(0,ii.useRef)(),n=a=>{let l=a.target.files,u=[];for(let c=0;c0&&e.callback(u)},i=a=>{a.preventDefault(),t.current.click()};return ii.default.createElement("div",{className:"upload-button"},ii.default.createElement("span",null,"Drag and drop ",e.type||"file",e.multiple&&"s"," here, or",e.multiline&&ii.default.createElement("br",null),ii.default.createElement("button",{onClick:i},"choose a file")),ii.default.createElement("input",{type:"file",onChange:n,ref:t,style:{display:"none"},multiple:e.multiple||!1}))}function DA(e){return e.replace(/\.[\w\d]+$/,"").replace(/_/g," ")}function Jo(e){let t=Ri(e.records),n=e.locales&&e.locales.length>0?Object.keys(e.locales):[e.locale],[i,a]=(0,Gt.useState)([]),l=g=>{let b={};n.forEach(H=>b[H]=g.name);let D=Xo({attachment:{filename:g.name,name:b},uploading:!0}),X=new FormData;return X.append("attachment[file]",g),n.forEach(H=>{X.append(`attachment[name][${H}]`,DA(g.name))}),Ko("/admin/attachments.json",X).then(H=>{t.dispatch({type:"update",payload:Ne(J({},D),{record:{attachment:H,uploading:!1}})})}),D},u=g=>{t.dispatch({type:"append",payload:g.map(b=>l(b))})},c=(g,b)=>{t.dispatch({type:"reorder",payload:jl(t,g)}),t.dispatch({type:"insertFiles",payload:b.map(D=>l(D))})},[d,p,w]=Go([t],c),x=g=>[...t.draggables.map(b=>b.record),...i].indexOf(g)+1,E=g=>`${e.attribute}[${x(g)}]`,C=g=>b=>{let{record:D}=g,X=Ne(J({},g),{record:Ne(J({},D),{attachment:J(J({},D.attachment),b)})});t.dispatch({type:"update",payload:X})},k=g=>()=>{t.dispatch({type:"remove",payload:g}),g.record.id&&a([...i,g.record])},N=g=>{let{dragging:b}=d;return g==="Files"?Gt.default.createElement(Jh,{key:"placeholder"}):Gt.default.createElement(Zh,{key:g.handle,draggable:g,locale:e.locale,locales:e.locales,showEmbed:e.showEmbed,startDrag:p,position:x(g.record),onUpdate:C(g),deleteRecord:k(g),attributeName:E(g.record),placeholder:b&&b==g})},_=jl(t,d),y=["attachments"];return d.dragging&&y.push("dragover"),Gt.default.createElement("div",J({className:y.join(" "),ref:t.ref},w),Gt.default.createElement("div",{className:"files"},_.map(g=>N(g))),Gt.default.createElement("div",{className:"deleted"},i.map(g=>Gt.default.createElement("span",{className:"deleted-attachment",key:g.id},Gt.default.createElement("input",{name:`${E(g)}[id]`,type:"hidden",value:g.id}),Gt.default.createElement("input",{name:`${E(g)}[attachment_id]`,type:"hidden",value:g.attachment&&g.attachment.id||""}),Gt.default.createElement("input",{name:`${E(g)}[_destroy]`,type:"hidden",value:!0})))),Gt.default.createElement("div",{className:"drop-target"},Gt.default.createElement(Qn,{multiple:!0,multiline:!0,callback:u})))}Jo.propTypes={attribute:Zo.default.string,locale:Zo.default.string,locales:Zo.default.object,records:Zo.default.array,showEmbed:Zo.default.bool};var Zn=K(ie()),ta=K(lt());var Qt=K(ie()),ea=K(lt());function IA(e,t={}){var n=new Date(e);return Object.prototype.hasOwnProperty.call(t,"year")&&n.setFullYear(t.year),Object.prototype.hasOwnProperty.call(t,"month")&&n.setMonth(t.month),Object.prototype.hasOwnProperty.call(t,"date")&&n.setDate(t.date),Object.prototype.hasOwnProperty.call(t,"time")&&t.time.match(/^[\d]{1,2}(:[\d]{1,2})?$/)&&(n.setHours(t.time.split(":")[0]),n.setMinutes(t.time.split(":")[1]||0)),n}function S_(e){return e.toTimeString().slice(0,5)}function AA(){let e=2e3;return Array.apply(null,Array(new Date().getFullYear()-e+11)).map((t,n)=>n+e)}function LA(){return["January","February","March","April","May","June","July","August","September","October","November","December"]}function MA(){return Array.apply(null,Array(31)).map((e,t)=>t+1)}function Ui(e){let{name:t,disabled:n,disableTime:i,onChange:a,value:l}=e,[u,c]=(0,Qt.useState)(S_(l));(0,Qt.useEffect)(()=>{c(S_(l))},[l]);let d=(p={})=>{a(IA(l,p))};return Qt.default.createElement("div",{className:"date-select"},t&&Qt.default.createElement("input",{type:"hidden",name:t,value:!n&&l.toJSON()}),Qt.default.createElement("select",{value:l.getMonth(),onChange:p=>d({month:p.target.value}),disabled:n},LA().map((p,w)=>Qt.default.createElement("option",{key:w,value:w},p))),Qt.default.createElement("select",{value:l.getDate(),onChange:p=>d({date:p.target.value}),disabled:n},MA().map(p=>Qt.default.createElement("option",{key:p,value:p},p))),Qt.default.createElement("select",{value:l.getFullYear(),onChange:p=>d({year:p.target.value}),disabled:n},AA().map(p=>Qt.default.createElement("option",{key:p,value:p},p))),!i&&Qt.default.createElement("input",{type:"text",size:5,disabled:n,value:u,onChange:p=>c(p.target.value),onBlur:p=>d({time:p.target.value})}))}Ui.propTypes={name:ea.default.string,disabled:ea.default.bool,disableTime:ea.default.bool,onChange:ea.default.func,value:ea.default.instanceOf(Date)};function C_(e=0){let t=36e5;return new Date(Math.round(new Date().getTime()/t)*t+t+1e3*60*e)}function b_(e){return e?typeof e=="string"?new Date(e):e:null}function na(e){let{disabled:t,disableTime:n,objectName:i}=e,[a,l]=(0,Zn.useState)(b_(e.startsAt)||C_()),[u,c]=(0,Zn.useState)(b_(e.endsAt)||C_(60)),d=(x,E)=>{E{d(x,new Date(u.getTime()+(x-a)))},w=x=>{d(a,x)};return Zn.default.createElement("div",{className:"date-range-select"},Zn.default.createElement("div",{className:"date"},Zn.default.createElement(Ui,{name:i+"[starts_at]",disabled:t,disableTime:n,onChange:p,value:a})),Zn.default.createElement("span",{className:"to"},"to"),Zn.default.createElement("div",{className:"date"},Zn.default.createElement(Ui,{name:i+"[ends_at]",disabled:t,disableTime:n,onChange:w,value:u})))}na.propTypes={startsAt:ta.default.string,endsAt:ta.default.string,disabled:ta.default.bool,disableTime:ta.default.bool,objectName:ta.default.string};var _r=K(ie());var Bi=K(ie());var un=K(ie());var ia=K(ie()),I_=K(N_());var ra=K(ie());function FA(e,t){let n=xc(e),i=e.image,a=i.real_width/i.real_height;return t?(n.aspect=t,n.width=100,n.height=100/t*a,n.height>100&&(n.height=100,n.width=100*t/a),n.x=(100-n.width)/2,n.y=(100-n.height)/2):delete n.aspect,O_(e,n)}function O_(e,t){let{image:n}=e;return(t.width<5||t.height<5)&&(t={x:0,y:0,width:100,height:100}),t.aspect===null&&delete t.aspect,{aspect:t.aspect,crop_start_x:n.real_width*(t.x/100),crop_start_y:n.real_height*(t.y/100),crop_width:n.real_width*(t.width/100),crop_height:n.real_height*(t.height/100)}}function P_(e,t){let{crop_start_x:n,crop_start_y:i,crop_width:a,crop_height:l,crop_gravity_x:u,crop_gravity_y:c}=e;switch(t.type){case"completeCrop":return un+a||ci+l?Ne(J({},e),{cropping:!1,crop_gravity_x:null,crop_gravity_y:null}):Ne(J({},e),{cropping:!1});case"setCrop":return J(J({},e),O_(e,t.payload));case"setAspect":return J(J({},e),FA(e,t.payload));case"setFocal":return Ne(J({},e),{crop_gravity_x:a*(t.payload.x/100)+n,crop_gravity_y:l*(t.payload.y/100)+i});case"startCrop":return Ne(J({},e),{cropping:!0});case"toggleFocal":return u===null?P_(e,{type:"setFocal",payload:{x:50,y:50}}):Ne(J({},e),{crop_gravity_x:null,crop_gravity_y:null});default:return e}}function RA(e,t){let n=document.createElement("canvas");n.width=e.naturalWidth*(t.width/100),n.height=e.naturalHeight*(t.height/100);let i=n.getContext("2d");return i.drawImage(e,e.naturalWidth*(t.x/100),e.naturalHeight*(t.y/100),e.naturalWidth*(t.width/100),e.naturalHeight*(t.height/100),0,0,e.naturalWidth*(t.width/100),e.naturalHeight*(t.height/100)),[n,i]}function UA(e,t){let n=t.getImageData(0,0,e.width,e.height).data;for(let i=0;iu=>u===null?u:l(u),n=t(Math.round),i=t(Math.ceil),a={crop_start_x:n(e.crop_start_x),crop_start_y:n(e.crop_start_y),crop_width:i(e.crop_width),crop_height:i(e.crop_height),crop_gravity_x:n(e.crop_gravity_x),crop_gravity_y:n(e.crop_gravity_y)};return a.crop_start_x+a.crop_width>e.image.real_width&&(a.crop_width=e.image.real_width-a.crop_start_x),a.crop_start_y+a.crop_height>e.image.real_height&&(a.crop_height=e.image.real_height-a.crop_start_y),a}function xc(e){let{image:t,aspect:n,crop_start_x:i,crop_start_y:a,crop_width:l,crop_height:u}=e,c=t.real_width/t.real_height,d=i/t.real_width*100,p=a/t.real_height*100,w=l/t.real_width*100,x=u/t.real_height*100;return n&&w?x=w/n*c:n&&x&&(w=x*n/c),n===null?{x:d,y:p,width:w,height:x}:{x:d,y:p,width:w,height:x,aspect:n}}function Wl(e){let t={aspect:null,cropping:!1,crop_start_x:e.crop_start_x||0,crop_start_y:e.crop_start_y||0,crop_width:e.crop_width||e.real_width,crop_height:e.crop_height||e.real_height,crop_gravity_x:e.crop_gravity_x,crop_gravity_y:e.crop_gravity_y,image:e},[n,i]=(0,ra.useReducer)(P_,t),[a,l]=(0,ra.useState)(null);async function u(){let c=new Image;c.src=n.image.uncropped_url,await c.decode();let[d,p]=RA(c,xc(n));l(UA(d,p))}return(0,ra.useEffect)(()=>{n.cropping||u()},[n.cropping]),[n,i,a]}var xr=K(ie());function D_(e,t,n){return en?n:e}function tm(e){let{width:t,height:n,onChange:i}=e,[a,l]=(0,xr.useState)(!1),[u,c]=(0,xr.useState)({x:e.x,y:e.y}),d=(0,xr.useRef)(),p=(0,xr.useRef)(),w=_=>{_.preventDefault(),_.stopPropagation(),_.target==p.current&&l(!0)},x=()=>{a&&(l(!1),i(u))},E=_=>{if(a){let y,g,b=d.current.getBoundingClientRect();_.preventDefault(),"touches"in _&&_.type=="touchmove"?(y=_.touches[0].clientX-(b.x||b.left),g=_.touches[0].clientY-(b.y||b.top)):(y=_.clientX-(b.x||b.left),g=_.clientY-(b.y||b.top)),y=D_(y,0,t),g=D_(g,0,n),c({x:y/t*100,y:g/n*100})}},C=t*(u.x/100),k=n*(u.y/100),N={transform:`translate3d(${C}px, ${k}px, 0)`};return xr.default.createElement("div",{className:"focal-editor",ref:d,onTouchStart:w,onTouchEnd:x,onTouchMove:E,onMouseDown:w,onMouseUp:x,onMouseMove:E},xr.default.createElement("div",{className:"focal-point",style:N,ref:p}))}function nm(e){let t=()=>{let{image:d,cropping:p,crop_width:w,crop_height:x}=e.cropState;return p?{width:d.real_width,height:d.real_height}:{width:w,height:x}},n=e.containerSize.width,i=e.containerSize.height,a=t().width/t().height,l=n,u=n/a;u>i&&(u=i,l=i*a);let c={width:`${l}px`,height:`${u}px`};return e.cropState.cropping?ia.default.createElement("div",{className:"image-wrapper",style:c},ia.default.createElement(I_.default,{src:e.cropState.image.uncropped_url,crop:xc(e.cropState),minWidth:10,minHeight:10,onChange:e.setCrop})):ia.default.createElement("div",{className:"image-wrapper",style:c},e.focalPoint&&ia.default.createElement(tm,{width:l,height:u,x:e.focalPoint.x,y:e.focalPoint.y,onChange:e.setFocal}),ia.default.createElement("img",{src:e.croppedImage}))}var Zt=K(ie());function rm(e){let{cropping:t}=e.cropState,n=[["Free",null],["1:1",1],["3:2",3/2],["2:3",2/3],["4:3",4/3],["3:4",3/4],["5:4",5/4],["4:5",4/5],["16:9",16/9]],i=c=>d=>{d.preventDefault(),e.setAspect(c)},a=Math.ceil(e.cropState.crop_width),l=Math.ceil(e.cropState.crop_height),u=e.image.content_type.split("/")[1].toUpperCase();return Zt.default.createElement("div",{className:"toolbars"},Zt.default.createElement("div",{className:"toolbar"},Zt.default.createElement("div",{className:"info"},Zt.default.createElement("span",{className:"format"},a,"x",l," ",u)),Zt.default.createElement("button",{title:"Crop image",onClick:e.toggleCrop,className:t?"active":""},Zt.default.createElement("i",{className:"fa-solid fa-crop"})),Zt.default.createElement("button",{disabled:t,title:"Toggle focal point",onClick:e.toggleFocal},Zt.default.createElement("i",{className:"fa-solid fa-bullseye"})),Zt.default.createElement("a",{href:e.image.original_url,className:"button",title:"Download original image",disabled:t,download:e.image.filename,onClick:c=>t&&c.preventDefault()},Zt.default.createElement("i",{className:"fa-solid fa-download"}))),t&&Zt.default.createElement("div",{className:"aspect-ratios toolbar"},Zt.default.createElement("div",{className:"label"},"Lock aspect ratio:"),n.map(c=>Zt.default.createElement("button",{key:c[0],className:c[1]==e.cropState.aspect?"active":"",onClick:i(c[1])},c[0]))))}function BA(e){return e.crop_gravity_x===null||e.crop_gravity_y===null?null:{x:(e.crop_gravity_x-e.crop_start_x)/e.crop_width*100,y:(e.crop_gravity_y-e.crop_start_y)/e.crop_height*100}}function Hl(e){let t=(0,un.useRef)(),[n,i]=(0,un.useState)(),a=()=>{let p=t.current;p&&i({width:p.offsetWidth-2,height:p.offsetHeight-2})};(0,un.useEffect)(()=>(window.addEventListener("resize",a),function(){window.removeEventListener("resize",a)})),(0,un.useEffect)(a,[]);let l=p=>{e.dispatch({type:"setAspect",payload:p})},u=p=>{e.dispatch({type:"setCrop",payload:p})},c=p=>{e.dispatch({type:"setFocal",payload:p})},d=()=>{e.cropState.cropping?e.dispatch({type:"completeCrop"}):e.dispatch({type:"startCrop"})};return un.default.createElement("div",{className:"visual"},un.default.createElement(rm,{cropState:e.cropState,image:e.cropState.image,setAspect:l,toggleCrop:d,toggleFocal:()=>e.dispatch({type:"toggleFocal"})}),un.default.createElement("div",{className:"image-container",ref:t},!e.croppedImage&&un.default.createElement("div",{className:"loading"},"Loading image\u2026"),e.croppedImage&&n&&un.default.createElement(nm,{cropState:e.cropState,containerSize:n,croppedImage:e.croppedImage,focalPoint:BA(e.cropState),setCrop:u,setFocal:c})))}var st=K(ie());function im(e){let{alternative:t,caption:n,image:i,locale:a,locales:l}=e,u=Xt(x=>x.close),c=Bt(x=>x.notice),d=x=>{x.preventDefault(),Gn(`[image:${i.id}]`),c("Embed code copied to clipboard")},p=x=>{e.setLocale(x.target.value)},w=l&&l[a]&&l[a].dir||"ltr";return st.default.createElement("form",null,st.default.createElement("div",{className:"field embed-code"},st.default.createElement("label",null,"Embed code"),st.default.createElement("input",{type:"text",value:`[image:${i.id}]`,disabled:!0}),Ul()&&st.default.createElement("button",{onClick:d},"Copy")),l&&Object.keys(l).length>1&&st.default.createElement("div",{className:"field"},st.default.createElement("label",null,"Locale"),st.default.createElement("select",{name:"locale",value:a,onChange:p},Object.keys(l).map(x=>st.default.createElement("option",{key:`locale-${x}`,value:x},l[x].name)))),st.default.createElement("div",{className:"field "+(t[a]?"":"field-with-warning")},st.default.createElement("label",null,"Alternative text"),st.default.createElement("span",{className:"description"},"For visually impaired users and search engines."),st.default.createElement("textarea",{className:"alternative",lang:a,dir:w,value:t[a]||"",onChange:x=>e.updateLocalization("alternative",x.target.value)})),e.showCaption&&st.default.createElement("div",{className:"field"},st.default.createElement("label",null,"Caption"),st.default.createElement("textarea",{lang:a,dir:w,onChange:x=>e.updateLocalization("caption",x.target.value),value:n[a]||"",className:"caption"})),st.default.createElement("div",{className:"buttons"},st.default.createElement("button",{onClick:e.save},"Save"),st.default.createElement("button",{onClick:u},"Cancel")))}function om(e){let[t,n,i]=Wl(e.image),[a,l]=(0,Bi.useState)(e.locale),[u,c]=(0,Bi.useState)({caption:e.image.caption||{},alternative:e.image.alternative||{}}),d=Xt(x=>x.close),p=(x,E)=>{c(Ne(J({},u),{[x]:Ne(J({},u[x]),{[a]:E})}))},w=x=>{x.preventDefault(),x.stopPropagation();let E=J(J({},u),wc(t));qo(`/admin/images/${e.image.id}`,{image:E}),e.onUpdate&&e.onUpdate(E,i),d()};return Bi.default.createElement("div",{className:"image-editor"},Bi.default.createElement(Hl,{croppedImage:i,cropState:t,dispatch:n}),!t.cropping&&Bi.default.createElement(im,{alternative:u.alternative,caption:u.caption,image:e.image,locale:a,locales:e.locales,setLocale:l,save:w,showCaption:e.caption,updateLocalization:p}))}function zi(e){let[t,n]=(0,_r.useState)(e.image),[i,a]=(0,_r.useState)(e.src),l=Xt(w=>w.open),u=()=>{let w=t.crop_width||t.real_width,x=t.crop_height||t.real_height;return Math.round(x/w*e.width)},c=(w,x)=>{let E=J(J({},t),w);a(x),n(E),e.onUpdate&&e.onUpdate(E,x)},d=w=>{w.preventDefault(),l(_r.default.createElement(om,{image:t,caption:e.caption,locale:e.locale,locales:e.locales,onUpdate:c}))},p=!t.alternative[e.locale];return _r.default.createElement("div",{className:"editable-image"},p&&_r.default.createElement("span",{className:"alt-warning",title:"Alternative text is missing"},_r.default.createElement("i",{className:"fa-solid fa-triangle-exclamation icon"})),_r.default.createElement("img",{src:i,width:e.width,height:u(),onClick:d}))}var He=K(ie()),oi=K(lt());var am=K(ie());function lm(e){let{draggable:t,dragState:n,container:i}=e;if(t==="Files")return"";{let a=i.current.getBoundingClientRect(),l=n.x-(a.x||a.left),u=n.y-(a.y||a.top),c={transform:`translate3d(${l}px, ${u}px, 0)`};return am.default.createElement("div",{className:"drag-image",style:c},"record"in t&&t.record.image&&am.default.createElement("img",{src:t.record.src||t.record.image.thumbnail_url}))}}var sm=K(ie());function um(){return sm.default.createElement("div",{className:"grid-image",key:"file-placeholder"},sm.default.createElement("div",{className:"file-placeholder"}))}var bt=K(ie());var oa=K(ie());function cm(e){return e.src?oa.default.createElement("div",{className:"temp-image"},oa.default.createElement("img",{src:e.src}),oa.default.createElement("span",null,"Uploading...")):oa.default.createElement("div",{className:"file-placeholder"},oa.default.createElement("span",null,"Uploading..."))}function fm(e){let{attributeName:t,draggable:n}=e,i=n.record,a=i.image,l=Bt(E=>E.notice),[u,c]=(0,bt.useState)(i.src||null),d=Qo(n,e.startDrag);(0,bt.useEffect)(()=>{if(i.file){let E=new FileReader;E.onload=()=>c(E.result),E.readAsDataURL(i.file)}},[]);let p=E=>{E.preventDefault(),Gn(`[image:${a.id}]`),l("Embed code copied to clipboard")},w=E=>{E.preventDefault(),e.deleteImage&&e.deleteImage()},x=["grid-image"];return e.placeholder&&x.push("placeholder"),i.file&&x.push("uploading"),bt.default.createElement("div",J({className:x.join(" ")},d),bt.default.createElement("input",{name:`${t}[id]`,type:"hidden",value:i.id||""}),bt.default.createElement("input",{name:`${t}[image_id]`,type:"hidden",value:a&&a.id||""}),bt.default.createElement("input",{name:`${t}[position]`,type:"hidden",value:e.position}),e.enablePrimary&&bt.default.createElement("input",{name:`${t}[primary]`,type:"hidden",value:e.primary}),!a&&bt.default.createElement(cm,{src:u}),a&&bt.default.createElement(bt.default.Fragment,null,bt.default.createElement(zi,{image:a,key:e.placeholder?"placeholder":n.handle,src:u||a.thumbnail_url,width:250,caption:!0,locale:e.locale,locales:e.locales,onUpdate:e.onUpdate}),bt.default.createElement("div",{className:"actions"},e.showEmbed&&bt.default.createElement("button",{onClick:p},"Embed"),e.deleteImage&&bt.default.createElement("button",{onClick:w},"Remove"))))}function dm(e){let t=["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"];return e.filter(n=>t.indexOf(n.type)!==-1)}function A_(e,t,n){let[i,...a]=zl(e,n),l=[...a,...zl(t,n)];return n.dragging&&[i,...l].indexOf(n.dragging)===-1&&(n.yn.primary).slice(0,1):[];return[t,e.records.filter(n=>t.indexOf(n)===-1)]}function aa(e){let[t,n]=zA(e),i=Ri(t),a=Ri(n),[l,u]=(0,He.useState)([]),c=Bt(W=>W.error),d=(0,He.useRef)(),p=W=>{i.dispatch(W),a.dispatch(W)},w=(W,ye)=>{let[U,F]=A_(i,a,W);if(i.dispatch({type:"reorder",payload:U?[U]:[]}),a.dispatch({type:"reorder",payload:F}),ye){let te=dm(ye).map(A=>_(A));p({type:"insertFiles",payload:te})}},[x,E,C]=Go([i,a],w),k=W=>[...i.draggables.map(ye=>ye.record),...a.draggables.map(ye=>ye.record),...l].indexOf(W)+1,N=W=>`${e.attribute}[${k(W)}]`,_=W=>{let ye=Xo({image:null,file:W}),U=new FormData;return U.append("image[file]",W),Ko("/admin/images.json",U).then(F=>{F.status==="error"?(c("Error uploading image: "+F.error),p({type:"remove",payload:ye})):p({type:"update",payload:Ne(J({},ye),{record:{image:F}})})}),ye},y=W=>ye=>{let{record:U}=W,F=Ne(J({},W),{record:Ne(J({},U),{image:J(J({},U.image),ye)})});p({type:"update",payload:F})},g=W=>()=>{p({type:"remove",payload:W}),W.record.id&&u([...l,W.record])},b=(W,ye)=>{let{dragging:U}=x;return W==="Files"?He.default.createElement(um,{key:"placeholder"}):He.default.createElement(fm,{key:W.handle,draggable:W,locale:e.locale,locales:e.locales,showEmbed:e.showEmbed,startDrag:E,position:k(W.record),primary:ye,onUpdate:y(W),enablePrimary:e.enablePrimary,deleteImage:g(W),attributeName:N(W.record),placeholder:U&&U==W})},D=W=>{let[ye,...U]=dm(W).map(F=>_(F));ye&&(a.dispatch({type:"prepend",payload:[...i.draggables,...U]}),i.dispatch({type:"replace",payload:[ye]}))},X=W=>{a.dispatch({type:"append",payload:dm(W).map(ye=>_(ye))})},H=["image-grid"];e.enablePrimary&&H.push("with-primary-image");let[G,ae]=A_(i,a,x);return He.default.createElement("div",J({className:H.join(" "),ref:d},C),x.dragging&&He.default.createElement(lm,{draggable:x.dragging,dragState:x,container:d}),e.enablePrimary&&He.default.createElement("div",{className:"primary-image",ref:i.ref},He.default.createElement("h3",null,"Main image"),G&&He.default.createElement(He.default.Fragment,null,b(G,!0),e.primaryAttribute&&He.default.createElement("input",{type:"hidden",name:e.primaryAttribute,value:G.record&&G.record.image&&G.record.image.id||""})),!G&&He.default.createElement("div",{className:"drop-target"},He.default.createElement(Qn,{multiple:!0,type:"image",multiline:!0,callback:D}))),He.default.createElement("div",{className:"grid",ref:a.ref},He.default.createElement("h3",null,e.enablePrimary?"More images":"Images"),He.default.createElement("div",{className:"drop-target"},He.default.createElement(Qn,{multiple:!0,type:"image",callback:X})),He.default.createElement("div",{className:"images"},ae.map(W=>b(W,!1)))),He.default.createElement("div",{className:"deleted"},l.map(W=>He.default.createElement("span",{className:"deleted-image",key:W.id},He.default.createElement("input",{name:`${N(W)}[id]`,type:"hidden",value:W.id}),He.default.createElement("input",{name:`${N(W)}[attachment_id]`,type:"hidden",value:W.image&&W.image.id||""}),He.default.createElement("input",{name:`${N(W)}[_destroy]`,type:"hidden",value:!0})))))}aa.propTypes={attribute:oi.default.string,locale:oi.default.string,locales:oi.default.object,records:oi.default.array,enablePrimary:oi.default.bool,primaryAttribute:oi.default.string,showEmbed:oi.default.bool};var zt=K(ie());function jA(e){let t=[];if(e.items)for(let n=0;ng.error),w=g=>{g.preventDefault(),a(!0)},x=()=>{a(!1)},E=g=>{if("dataTransfer"in g)if("items"in g.dataTransfer&&"remove"in g.dataTransfer.items)for(let b=0;b{let b=[];"dataTransfer"in g&&(b=jA(g.dataTransfer)),g.preventDefault(),b.length>0&&_(b[0])},k=g=>{g.preventDefault(),u(null),d(null)},N=g=>{g.length>0&&_(g[0])},_=g=>{if(["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"].indexOf(g.type)==-1){alert("Invalid file type, only images in JPEG, PNG or GIF formats are supported");return}let D=e.locale,X=e.locales?Object.keys(e.locales):[D],H=new FormData;u(null),d(null),a(!1),n(!0),H.append("image[file]",g),X.forEach(G=>{H.append(`image[alternative][${G}]`,e.alternative||"")}),Ko("/admin/images.json",H).then(G=>{n(!1),"status"in G&&G.status==="error"?p(`Error uploading image: ${G.error}`):"thumbnail_url"in G&&(d(G.thumbnail_url),u(G))})},y=["image-uploader"];return t?y.push("uploading"):i&&y.push("dragover"),zt.default.createElement("div",{className:y.join(" "),onDragOver:w,onDragLeave:x,onDragEnd:E,onDrop:C},zt.default.createElement("input",{type:"hidden",name:e.attr,value:l?l.id:""}),l&&zt.default.createElement("div",{className:"image"},zt.default.createElement(zi,{image:l,src:c,width:e.width,caption:e.caption,locale:e.locale,locales:e.locales})),zt.default.createElement("div",{className:"ui-wrapper"},t&&zt.default.createElement("div",{className:"ui"},"Uploading image..."),!t&&zt.default.createElement("div",{className:"ui"},zt.default.createElement(Qn,{type:"image",multiline:!0,callback:N}),l&&zt.default.createElement("a",{className:"delete remove-image",href:"#",onClick:k},"Remove image"))))}var ai=K(ie());function pm(){let e=Xt(a=>a.component),t=Xt(a=>a.close),n=a=>{a.stopPropagation(),a.preventDefault(),t()},i=a=>{e&&(a.key=="Escape"||a.keyCode===27)&&n(a)};return(0,ai.useEffect)(()=>{e?document.body.classList.add("modal"):document.body.classList.remove("modal")},[e]),(0,ai.useEffect)(()=>(window.addEventListener("keypress",i),()=>{window.removeEventListener("keypress",i)}),[]),e?ai.default.createElement("div",{className:"modal-wrapper open"},ai.default.createElement("div",{className:"background",onClick:n}),ai.default.createElement("div",{className:"modal"},e)):ai.default.createElement("div",{className:"modal-wrapper"})}var Be=K(ie()),Yi=K(lt());var L_=K(ie());function _c(e,t){return t.localized?e.page[t.name][e.locale]||"":e.page[t.name]||""}function Jt(e,t){return e.errors.filter(n=>n.attribute===t).map(n=>n.message)}function hm(e){return e?typeof e=="string"?new Date(e):e:null}function $A(e){let{locale:t,locales:n,page:i,templates:a}=e;return Ne(J({},e),{inputDir:n&&n[t]&&n[t].dir||"ltr",templateConfig:a.filter(l=>l.template_name===i.template)[0]})}function WA(e){return{published_at:hm(e.published_at),starts_at:hm(e.starts_at),ends_at:hm(e.ends_at)}}function HA(e){return["path_segment",...new Set(e.flatMap(t=>[...t.blocks,...t.metadata_blocks]).filter(t=>t.localized).map(t=>t.name))]}function VA(e){let t=J(J({},e.page),WA(e.page));return Ne(J({},e),{page:t})}function qA(e,t){let{type:n,payload:i}=t;switch(n){case"setLocale":return Ne(J({},e),{locale:i});case"update":return KA(e,i);default:return e}}function KA(e,t){let{locale:n,templates:i,page:a}=e,l={};return Object.keys(t).forEach(u=>{HA(i).indexOf(u)!==-1?l[u]=Ne(J({},a[u]),{[n]:t[u]}):l[u]=t[u]}),Ne(J({},e),{page:J(J({},a),l)})}function mm(e){let[t,n]=(0,L_.useReducer)(qA,VA(e));return[$A(t),n]}var Hi=K(ie()),_m=K(lt());var ji=K(ie()),Er=K(lt());function at(e){let{htmlFor:t,description:n,label:i,errors:a,children:l}=e,u=["field"];return a&&a.length>0&&u.push("field-with-errors"),ji.default.createElement("div",{className:u.join(" ")},ji.default.createElement("label",{htmlFor:t},i,a&&ji.default.createElement(ji.default.Fragment,null," ",ji.default.createElement("span",{className:"error"},a[a.length-1]))),n&&ji.default.createElement("p",{className:"description"},n),l)}at.propTypes={htmlFor:Er.default.string,description:Er.default.string,label:Er.default.string,errors:Er.default.array,children:Er.default.oneOfType([Er.default.string,Er.default.object,Er.default.array])};var li=K(ie());var la=K(ie());function gm(e){let[t,n]=(0,la.useState)(""),i=u=>{u.preventDefault(),e.addTag(t),n("")};return la.default.createElement("div",{className:"add-tag-form"},la.default.createElement("input",{name:"add-tag",type:"text",className:"add-tag",value:t,onKeyDown:u=>{u.which===13&&i(u)},onChange:u=>{n(u.target.value)},placeholder:"Add tag..."}),la.default.createElement("button",{onClick:i,disabled:!t},"Add"))}var ql=K(ie());function vm(e){let t=()=>{e.toggleEnabled(e.tag)},n=["tag"];return e.enabled&&n.push("enabled"),ql.default.createElement("span",{className:n.join(" ")},ql.default.createElement("label",{className:"check-box"},ql.default.createElement("input",{type:"checkbox",name:"tag-"+e.tag,value:"1",checked:e.enabled,onChange:t}),ql.default.createElement("span",{className:"name"},e.tag)))}function ym(e,t,n){return n.indexOf(e)===t}function Kl(e){let[t,n]=(0,li.useState)(e.tags),[i,a]=(0,li.useState)(e.enabled),l=[...t,...i].filter(ym),u=w=>l.filter(x=>x.toLowerCase()==w.toLowerCase())[0]||w,c=w=>i.map(x=>x.toLowerCase()).indexOf(w.toLowerCase())!==-1,d=w=>{let x=u(w);c(x)?a(i.filter(E=>E!==x)):a([...i,x])},p=w=>{let x=u(w);n([...t,x].filter(ym)),a([...i,x].filter(ym))};return li.default.createElement("div",{className:"tag-editor clearfix"},li.default.createElement("input",{type:"hidden",name:e.name,value:JSON.stringify(i)}),l.map(w=>li.default.createElement(vm,{key:w,tag:w,enabled:c(w),toggleEnabled:d})),li.default.createElement(gm,{addTag:p}))}var sa=K(ie()),Wi=K(lt());var $i=K(ie()),Jn=K(lt());var wm=K(ie());function xm(e){return wm.default.createElement("a",{title:e.name,className:"button "+e.className,onClick:e.onClick},wm.default.createElement("i",{className:"fa-solid fa-"+e.className}))}var Sr=class extends $i.default.Component{constructor(t){super(t);this.state={value:t.value||"",rows:t.rows||5},this.inputRef=$i.default.createRef(),this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.getSelection=this.getSelection.bind(this),this.link=this.link.bind(this),this.replaceSelection=this.replaceSelection.bind(this)}actions(){let t=[{name:"bold",className:"bold",hotkey:"b",fn:i=>["",i,""]},{name:"italic",className:"italic",hotkey:"i",fn:i=>["",i,""]}],n=[{name:"Heading 2",className:"header h2",fn:i=>["h2. ",i,""]},{name:"Heading 3",className:"header h3",fn:i=>["h3. ",i,""]},{name:"Heading 4",className:"header h4",fn:i=>["h4. ",i,""]},{name:"Blockquote",className:"quote-left",fn:i=>["bq. ",i,""]},{name:"List",className:"list-ul",fn:i=>["",this.strToList(i,"*"),""]},{name:"Ordered list",className:"list-ol",fn:i=>["",this.strToList(i,"#"),""]},{name:"Link",className:"link",fn:this.link},{name:"Email link",className:"envelope",fn:this.emailLink}];return this.props.simple?t:[...t,...n]}applyAction(t){let[n,i,a]=t(this.getSelection());this.replaceSelection(n,i,a)}emailLink(t){var n=prompt("Enter email address","");let i=t.length>0?t:n;return['"',i,`":mailto:${n}`]}getSelection(){let{selectionStart:t,selectionEnd:n,value:i}=this.inputRef.current;return i.substr(t,n-t)}handleChange(t){this.updateValue(t.target.value)}handleKeyPress(t){let n;t.which>=65&&t.which<=90?n=String.fromCharCode(t.keyCode).toLowerCase():t.keyCode===13&&(n="enter");let i={};this.actions().forEach(a=>{a.hotkey&&(i[a.hotkey]=a.fn)}),(t.metaKey||t.ctrlKey)&&Object.prototype.hasOwnProperty.call(i,n)&&(t.preventDefault(),this.applyAction(i[n]))}link(t){let n=t.length>0?t:"Link text";var i=prompt("Enter link URL","");return i?['"',n,`":${this.relativeUrl(i)}`]:["",n,""]}localeOptions(){let t={};return this.props.lang&&(t.lang=this.props.lang),this.props.dir&&(t.dir=this.props.dir),t}relativeUrl(t){let n=null;if(!t.match(/^https:\/\//)||!document||!document.location)return t;try{n=new URL(t)}catch(i){console.log("Error parsing URL: ",i)}return n&&n.hostname==document.location.hostname&&(document.location.port||"80")==(n.port||"80")?n.pathname:t}render(){let{rows:t}=this.state,{id:n,name:i}=this.props,a=this.getValue(),l=u=>c=>{c.preventDefault(),this.applyAction(u)};return $i.default.createElement("div",{className:"rich-text-area"},$i.default.createElement("div",{className:"rich-text toolbar"},this.actions().map(u=>$i.default.createElement(xm,{key:u.name,name:u.name,className:u.className,onClick:l(u.fn)}))),$i.default.createElement("textarea",J({className:this.props.className||"rich",ref:this.inputRef,id:n,name:i,value:a,rows:t,onChange:this.handleChange,onKeyDown:this.handleKeyPress},this.localeOptions())))}replaceSelection(t,n,i){let a=this.inputRef.current,{selectionStart:l,selectionEnd:u,value:c}=a;a.value=c.substr(0,l)+t+n+i+c.substr(u,c.length),a.focus({preventScroll:!0}),a.setSelectionRange(l+t.length,l+t.length+n.length),this.updateValue(a.value)}strToList(t,n){return t.split(` -`).map(i=>n+" "+i).join(` -`)}getValue(){return this.props.onChange?this.props.value:this.state.value}updateValue(t){this.props.onChange?this.props.onChange(t):this.setState({value:t})}};Sr.propTypes={id:Jn.default.string,className:Jn.default.string,name:Jn.default.string,value:Jn.default.string,rows:Jn.default.number,simple:Jn.default.bool,lang:Jn.default.string,dir:Jn.default.string,onChange:Jn.default.func};function ua(e){let{block:t,errors:n,onChange:i,lang:a,dir:l,value:u}=e,c=E=>{i(E.target.value)},d=`page_${t.name}`,p={id:d,name:`page[${t.name}]`,value:u},w=Ne(J({},p),{className:["rich",t.class].join(" ").trim(),lang:a,dir:l,placeholder:t.placeholder}),x;if(t.type=="select"){let E=t.options;E.map(C=>C[1]).indexOf(u)===-1&&E.push([u,u]),x=sa.default.createElement("select",J({onChange:c},p),E.map(C=>sa.default.createElement("option",{key:C[1],value:C[1]},C[0])))}else t.size=="field"?x=sa.default.createElement("input",J({type:"text",onChange:c},w)):x=sa.default.createElement(Sr,J({onChange:i,rows:t.size=="large"?15:5},w));return sa.default.createElement(at,{htmlFor:d,label:t.title,description:t.description,errors:n},x)}ua.propTypes={block:Wi.default.object,errors:Wi.default.array,onChange:Wi.default.func,lang:Wi.default.string,dir:Wi.default.string,value:Wi.default.string};var cn=K(ie()),Ec=K(lt());function Sc(e){let{starts_at:t,ends_at:n}=e,[i,a]=(0,cn.useState)(!!e.starts_at),[l,u]=(0,cn.useState)(!!e.all_day);return cn.default.createElement("div",{className:"page-dates field"},cn.default.createElement("input",{type:"hidden",name:"page[all_day]",value:i&&l?"1":"0"}),cn.default.createElement("label",null,"Dates"),cn.default.createElement("div",{className:"toggles"},cn.default.createElement("label",{className:"has-dates-toggle"},cn.default.createElement("input",{type:"checkbox",checked:i,onChange:()=>a(!i)}),"Enabled"),cn.default.createElement("label",{className:!i&&"disabled"},cn.default.createElement("input",{type:"checkbox",disabled:!i,checked:l,onChange:()=>u(!l)}),"All day event")),cn.default.createElement(na,{objectName:"page",startsAt:t,endsAt:n,disabled:!i,disableTime:l}))}Sc.propTypes={starts_at:Ec.default.string,ends_at:Ec.default.string,all_day:Ec.default.bool};function Cc(e){let{state:t,dispatch:n}=e,{page:i,locale:a,inputDir:l,templateConfig:u}=t,c=d=>p=>{n({type:"update",payload:{[d]:p}})};return Hi.default.createElement(Hi.default.Fragment,null,u.blocks.map(d=>Hi.default.createElement(ua,{key:d.name,block:d,errors:Jt(i,d.name),dir:l,lang:a,onChange:c(d.name),value:_c(t,d)})),u.dates&&Hi.default.createElement(Sc,{starts_at:i.starts_at,ends_at:i.ends_at,all_day:i.all_day}),u.tags&&Hi.default.createElement(at,{label:"Tags"},Hi.default.createElement(Kl,{name:"page[serialized_tags]",enabled:i.enabled_tags,tags:i.tags_and_suggestions})))}Cc.propTypes={state:_m.default.object,dispatch:_m.default.func};var Vi=K(ie()),Sm=K(lt());var ca=K(ie()),Em=K(lt());function YA(e,t){for(let n=0;n{n({type:"update",payload:{path_segment:c.target.value}})},u=YA(i.ancestors,a);if(u){let c=`/admin/${a}/pages/${u.id}/edit#metadata`;return ca.default.createElement(at,{label:"Path segment"},ca.default.createElement("p",{className:"description"},"Unable to add a path segment to this page, please add one to"," ",ca.default.createElement("a",{href:c},"this page's ancestor")," ","first."))}return ca.default.createElement(at,{htmlFor:"page_path_segment",label:"Path segment",errors:Jt(i,"path_segment")},ca.default.createElement("input",{type:"text",id:"page_path_segment",name:"page[path_segment]",lang:t.locale,dir:"ltr",onChange:l,value:i.path_segment[a]}))}bc.propTypes={state:Em.default.object,dispatch:Em.default.func};function Tc(e){let{state:t,dispatch:n}=e,{page:i,locale:a,locales:l,inputDir:u,templateConfig:c}=t,d=p=>w=>{n({type:"update",payload:{[p]:w}})};return Vi.default.createElement(Vi.default.Fragment,null,Vi.default.createElement(bc,{state:t,dispatch:n}),Vi.default.createElement(at,{htmlFor:"page_meta_image_id",label:"Image",description:"Image displayed when sharing on social media. Will fall back to the primary image if absent. Recommended size is at least 1200x630.",errors:Jt(i,"meta_image_id")},Vi.default.createElement(Vl,{attr:"page[meta_image_id]",locale:a,locales:l,image:i.meta_image.image,src:i.meta_image.src,width:250,caption:!1})),c.metadata_blocks.map(p=>Vi.default.createElement(ua,{key:p.name,block:p,errors:Jt(i,p.name),dir:u,lang:a,onChange:d(p.name),value:_c(t,p)})))}Tc.propTypes={state:Sm.default.object,dispatch:Sm.default.func};var kc=K(ie()),er=K(lt());function XA(e){return e.page.id?`/admin/${e.locale}/pages/${e.page.id}`:`/admin/${e.locale}/pages`}function Nc(e){let{state:t,children:n}=e,{page:i}=t;return kc.default.createElement("form",{className:"edit-page main-wrapper",method:"post",ref:e.ref,acceptCharset:"UTF-8",action:XA(t)},i.id&&kc.default.createElement("input",{type:"hidden",name:"_method",value:"put",autoComplete:"off"}),kc.default.createElement("input",{type:"hidden",autoComplete:"off",name:"authenticity_token",value:gc()}),n)}Nc.propTypes={ref:er.default.oneOfType([er.default.func,er.default.shape({current:er.default.any})]),state:er.default.object,children:er.default.oneOfType([er.default.string,er.default.object,er.default.array])};var si=K(ie()),qi=K(lt());var Cm=K(ie()),bm=K(lt());function Oc(e){let{state:t,dispatch:n}=e,{locale:i,locales:a}=t,l=u=>c=>{c.preventDefault(),n({type:"setLocale",payload:u})};return a?Cm.default.createElement("div",{className:"links"},Object.keys(a).map(u=>Cm.default.createElement("a",{key:u,className:i==u?"current":"",href:"#",onClick:l(u)},a[u].name))):""}Oc.propTypes={state:bm.default.object,dispatch:bm.default.func};function M_(e,t){return si.default.createElement("a",{href:`/admin/${e}/pages/${t.id}/edit`},GA(e,t))}function GA(e,t){return t.name[e]||si.default.createElement("i",null,"Untitled")}function Pc(e){let{state:t,dispatch:n,children:i}=e,{locale:a,page:l}=t;return si.default.createElement("div",{className:"page-description with_content_tabs"},si.default.createElement(Oc,{state:t,dispatch:n}),si.default.createElement("h3",null,l.ancestors.map(u=>si.default.createElement(si.default.Fragment,{key:u.id},M_(a,u)," \xBB ")),l.id?M_(a,l):"New Page"),i)}Pc.propTypes={state:qi.default.object,dispatch:qi.default.func,children:qi.default.oneOfType([qi.default.string,qi.default.object,qi.default.array])};var ke=K(ie()),Yl=K(lt());function Dc(e){let{state:t,dispatch:n,authors:i,statuses:a}=e,{page:l,locale:u,templates:c}=t,[d,p]=(0,ke.useState)(!1),w=l.status==2,x=w&&l.published_at>new Date,E=l.urls[u],C=y=>g=>{n({type:"update",payload:{[y]:g.target.value}})},k=y=>g=>{n({type:"update",payload:{[y]:g.target.checked}})},N=y=>{n({type:"update",payload:{published_at:y}})},_=y=>{y.preventDefault(),p(!d)};return ke.default.createElement("div",{className:"page-options"},ke.default.createElement(at,{htmlFor:"page_status",label:"Status",errors:Jt(l,"status")},ke.default.createElement("select",{id:"page_status",name:"page[status]",onChange:C("status"),value:l.status},Object.keys(a).map(y=>ke.default.createElement("option",{key:y,value:y},a[y])))),w&&ke.default.createElement("div",null,ke.default.createElement(at,{label:"Date",errors:Jt(l,"published_at")},ke.default.createElement(Ui,{name:"page[published_at]",onChange:N,value:l.published_at})),x&&ke.default.createElement("p",null,"This page will publish later")),ke.default.createElement(at,{htmlFor:"page_user_id",label:"Author",errors:Jt(l,"user_id")},ke.default.createElement("select",{id:"page_user_id",name:"page[user_id]",onChange:C("user_id"),value:l.user_id},i.map(y=>ke.default.createElement("option",{key:y[1],value:y[1]},y[0])))),ke.default.createElement(at,{label:"Pin to top"},ke.default.createElement("label",{className:"check-box"},ke.default.createElement("input",{name:"page[pinned]",type:"checkbox",onChange:k("pinned"),checked:l.pinned})," ","Make post featured")),ke.default.createElement(at,{htmlFor:"page_template",label:"Template",errors:Jt(l,"template")},ke.default.createElement("select",{id:"page_template",name:"page[template]",onChange:C("template"),value:l.template},c.map(y=>ke.default.createElement("option",{key:y.template_name,value:y.template_name},y.name)))),ke.default.createElement("p",null,ke.default.createElement("a",{href:"#",onClick:_},"Advanced options")),d&&ke.default.createElement(ke.default.Fragment,null,ke.default.createElement(at,{label:"Subpages"},ke.default.createElement("label",{className:"check-box"},ke.default.createElement("input",{name:"page[feed_enabled]",type:"checkbox",onChange:k("feed_enabled"),checked:l.feed_enabled})," ","RSS feed enabled"),ke.default.createElement("label",{className:"check-box"},ke.default.createElement("input",{name:"page[news_page]",type:"checkbox",onChange:k("news_page"),checked:l.news_page})," ","Show in news")),ke.default.createElement(at,{htmlFor:"page_unique_name",label:"Unique name",errors:Jt(l,"unique_name")},ke.default.createElement("input",{type:"text",id:"page_unique_name",name:"page[unique_name]",value:l.unique_name,onChange:C("unique_name")})),ke.default.createElement(at,{htmlFor:"page_redirect_to",label:"Redirect",errors:Jt(l,"redirect_to")},ke.default.createElement("input",{type:"text",id:"page_redirect_to",name:"page[redirect_to]",value:l.redirect_to,onChange:C("redirect_to")}))),E&&ke.default.createElement(at,{label:"Page link"},ke.default.createElement("a",{href:E},E)))}Dc.propTypes={state:Yl.default.object,dispatch:Yl.default.func,authors:Yl.default.array,statuses:Yl.default.object};var F_=K(ie()),fa=K(lt());function Ki(e){let{active:t,children:n}=e,i=["content-tab"];return t||i.push("hidden"),F_.default.createElement("div",{className:i.join(" "),role:"tabpanel"},n)}Ki.propTypes={active:fa.default.bool,children:fa.default.oneOfType([fa.default.string,fa.default.object,fa.default.array])};var Ic=K(ie()),Ac=K(lt());var Xl=class extends Ic.default.Component{render(){return Ic.default.createElement("div",{className:"page-files"},Ic.default.createElement(Jo,{attribute:"page[page_files_attributes]",showEmbed:!0,locale:this.props.locale,locales:this.props.locales,records:this.props.records}))}};Xl.propTypes={locale:Ac.default.string,locales:Ac.default.object,records:Ac.default.array};var Lc=K(ie()),Mc=K(lt());var Gl=class extends Lc.default.Component{render(){return Lc.default.createElement("div",{className:"page-images"},Lc.default.createElement(aa,{attribute:"page[page_images_attributes]",primaryAttribute:"page[image_id]",enablePrimary:!0,showEmbed:!0,locale:this.props.locale,locales:this.props.locales,records:this.props.records}))}};Gl.propTypes={locale:Mc.default.string,locales:Mc.default.object,records:Mc.default.array};function QA(e,t){let n=[{id:"content",name:"Content",enabled:!0}];return e.filter(i=>i.images).length>0&&n.push({id:"images",name:"Images",enabled:t.images}),e.filter(i=>i.files).length>0&&n.push({id:"files",name:"Files",enabled:t.files}),n.push({id:"metadata",name:"Metadata",enabled:!0}),n}function ZA(e){let t=/#(.*)$/;if(document.location.toString().match(t)){let n=document.location.toString().match(t)[1],i=e.filter(a=>a.id==n)[0];if(i)return i.id}return e[0].id}function Fc(e){let t=(0,Be.useRef)(null),[n,i]=mm({locales:e.locales,locale:e.locale,page:e.page,templates:e.templates}),{page:a,locale:l,locales:u,templates:c,templateConfig:d}=n,p=QA(c,d),[w,x]=(0,Be.useState)(ZA(p));(0,Be.useEffect)(()=>{let N=`/admin/${l}/pages/`+(a.id?`${a.id}/edit`:"new")+`#${w}`;history&&history.replaceState(null,"",N)},[a.id,l,w]);let E=N=>_=>{_.preventDefault(),x(N.id)},C=N=>{N.preventDefault(),console.log("preview")},k=N=>{N.preventDefault(),console.log("submit")};return Be.default.createElement(Nc,{ref:t,state:n},Be.default.createElement("main",null,Be.default.createElement(Pc,{state:n,dispatch:i},Be.default.createElement("ul",{className:"content-tabs",role:"tablist"},p.map(N=>Be.default.createElement("li",{key:N.id,className:N.id==w?"current":""},!N.enabled&&N.name,N.enabled&&Be.default.createElement("a",{href:`#${N.id}`,onClick:E(N)},N.name))))),Be.default.createElement("div",{className:"content"},Be.default.createElement(Ki,{active:w=="content"},Be.default.createElement(Cc,{state:n,dispatch:i})),Be.default.createElement(Ki,{active:w=="images"},Be.default.createElement(Gl,{locale:l,locales:u,records:a.page_images})),Be.default.createElement(Ki,{active:w=="files"},Be.default.createElement(Xl,{locale:l,locales:u,records:a.page_files})),Be.default.createElement(Ki,{active:w=="metadata"},Be.default.createElement(Tc,{state:n,dispatch:i})),Be.default.createElement("div",{className:"buttons"},Be.default.createElement("button",{type:"button",onClick:C},"Preview"),Be.default.createElement("button",{type:"submit",onClick:k},"Save")))),Be.default.createElement("aside",{className:"sidebar"},Be.default.createElement(Dc,{state:n,dispatch:i,authors:e.authors,statuses:e.statuses})))}Fc.propTypes={locale:Yi.default.string,locales:Yi.default.object,page:Yi.default.object,templates:Yi.default.array,authors:Yi.default.array,statuses:Yi.default.object};var Uc=K(ie());function Ql(e){return`${e}`}var Rc=class{constructor(t){this.cnt=1,this.obj=t||{children:[]},this.indexes={},this.build(this.obj)}build(t){let n=this.indexes,a={id:this.cnt,node:t};n[Ql(this.cnt)]=a,this.cnt++;let l=(u,c)=>{let d=[];u.forEach(p=>{let w={};w.id=this.cnt,w.node=p,c&&(w.parent=c.id),n[Ql(this.cnt)]=w,d.push(this.cnt),this.cnt++,p.children&&p.children.length&&l(p.children,w)}),c.children=d,d.forEach(function(p,w){let x=n[Ql(p)];w>0&&(x.prev=d[w-1]),w{delete this.indexes[Ql(i.id)],i.children&&i.children.length&&i.children.forEach(a=>{n(this.getIndex(a))})};n(t)}get(t){return this.getIndex(t).node}remove(t){let n=this.getIndex(t),i=this.get(t),a=this.getIndex(n.parent),l=this.get(n.parent);return l.children.splice(l.children.indexOf(i),1),a.children.splice(a.children.indexOf(t),1),this.removeIndex(n),this.updateChildren(a.children),i}updateChildren(t){t.forEach((n,i)=>{let a=this.getIndex(n);a.prev=a.next=null,i>0&&(a.prev=t[i-1]),i{let p=1;return l.forEach(w=>{let x=this.getIndex(w);d?(x.top=null,x.left=null):(x.top=t++,x.left=c),x.children&&x.children.length?p+=a(x.children,x,c+1,d||x.node.collapsed):(x.height=1,p+=1)}),u.node.collapsed?u.height=1:u.height=p,u.height};i.children&&i.children.length&&a(i.children,i,n,i.node.collapsed)}move(t,n,i){if(t===n||n===1)return;let a=this.remove(t),l;return i==="before"?l=this.insertBefore(a,n):i==="after"?l=this.insertAfter(a,n):i==="prepend"?l=this.prepend(a,n):i==="append"&&(l=this.append(a,n)),this.updateNodesPosition(),l}getParent(t){let n=this.indexes;if(Object.prototype.hasOwnProperty.call(n,t))return this.getIndex(n[t].parent)}getNodeByTop(t){let n=this.indexes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&n[i].top===t)return n[i]}};var ui=K(ie());var Fe=K(ie()),Xi=class extends Fe.Component{constructor(t){super(t);this.state={newName:t.index.node.name},this.innerRef=(0,Fe.createRef)()}permitted(t){return this.node().permissions&&this.node().permissions.indexOf(t)!=-1}actions(){let t=this.node().status!=2?"Publish":"Hide",n=this.node().status!=2?"check":"ban";return this.node().editing?null:this.props.index.id===1?Fe.default.createElement("span",{className:"actions"},Fe.default.createElement("button",{type:"button",className:"add",onClick:()=>this.props.addChild(this.props.index)},Fe.default.createElement("i",{className:"fa-solid fa-plus icon"}),"Add child")):Fe.default.createElement("span",{className:"actions"},this.permitted("edit")&&this.button(t,{className:"toggle-status",icon:n,onClick:()=>this.toggleStatus()}),this.permitted("edit")&&this.button("Rename",{className:"edit",icon:"pencil",onClick:()=>this.edit()}),this.permitted("edit")&&this.button("Delete",{className:"delete",icon:"trash",onClick:()=>this.deletePage()}),this.permitted("create")&&this.button("Add child",{className:"add",icon:"plus",onClick:()=>this.props.addChild(this.props.index)}))}addButton(){let t=this.node(),n=()=>{this.props.addChild&&this.props.addChild(this.props.index)};if(!t.collapsed&&this.permitted("create")&&(t.root||this.visibleChildren().length>0))return this.button("Add page here",{className:"add add-inline",icon:"plus",onClick:n})}button(t,n){let i="fa-solid fa-"+n.icon+" icon";return Fe.default.createElement("button",{type:"button",className:n.className,onClick:n.onClick},Fe.default.createElement("i",{className:i}),t)}childNodes(){let{index:t,tree:n,dragging:i,dir:a,locale:l}=this.props;if(t.children&&t.children.length&&!t.node.collapsed){let u={};return t.node.collapsed&&(u.display="none"),u.paddingLeft=`${this.props.paddingLeft}px`,Fe.default.createElement("div",{className:"children",style:u},t.children.map(c=>{let d=n.getIndex(c);return Fe.default.createElement(Xi,{tree:n,index:d,key:d.id,dragging:i,paddingLeft:this.props.paddingLeft,addChild:this.props.addChild,onCollapse:this.props.onCollapse,onDragStart:this.props.onDragStart,updatePage:this.props.updatePage,dir:a,locale:l})}))}return null}collapseArrow(){let t=this.props.index;if(!t.parent)return null;let n=i=>{i.stopPropagation();let a=this.props.index.id;this.props.onCollapse&&this.props.onCollapse(a)};if(this.visibleChildren().length>0){let i=t.node.collapsed,a="";return i?a="collapse fa-solid fa-caret-right":a="collapse fa-solid fa-caret-down",Fe.default.createElement("i",{className:a,onMouseDown:function(l){l.stopPropagation()},onClick:n})}return null}collapsedLabel(){if(this.node().collapsed&&this.node().children&&this.node().children.length>0){let t=this.node().children.length==1?"item":"items";return Fe.default.createElement("span",{className:"collapsed-label"},"(",this.node().children.length," ",t,")")}else return null}deletePage(){confirm("Are you sure you want to delete this page?")&&this.updatePage({status:4})}edit(){this.updatePage({editing:!0})}editUrl(t){return`/admin/${t.locale}/pages/${t.param}/edit`}node(){return this.props.index.node}pageName(){let t=this.node().name||Fe.default.createElement("i",{className:"untitled"},"Untitled");return Fe.default.createElement("span",{dir:this.props.dir,lang:this.props.locale},t)}render(){let t=this.props,n=t.index,i=t.dragging,a=this.node().editing,l="node",u=a?this.renderEditNode():this.renderNode();n.id===i&&(l="node placeholder");let c=d=>{this.permitted("edit")&&!a&&t.onDragStart&&t.onDragStart(t.index.id,this.innerRef.current,d)};return this.node().status!=4?Fe.default.createElement("div",{className:l},Fe.default.createElement("div",{className:"inner",ref:this.innerRef,onMouseDown:c},this.collapseArrow(),u),this.childNodes(),this.addButton()):null}renderEditNode(){let{dir:t,locale:n}=this.props,i=u=>{this.setState({newName:u.target.value})},a=u=>{u.preventDefault(),this.updatePage({name:this.state.newName,editing:!1})},l=()=>{this.setState({newName:this.node().name}),this.updatePage({editing:!1})};return Fe.default.createElement("div",{className:"page edit"},Fe.default.createElement("i",{className:"fa-regular fa-file icon"}),Fe.default.createElement("form",{onSubmit:a},Fe.default.createElement("input",{type:"text",value:this.state.newName,dir:t,lang:n,autoFocus:!0,onChange:i}),Fe.default.createElement("button",{className:"save",type:"submit"},Fe.default.createElement("i",{className:"fa-solid fa-cloud icon"}),"Save"),this.button("Cancel",{className:"cancel",icon:"ban",onClick:l})))}renderNode(){let n=this.props.index.node,i=Fe.default.createElement("span",{className:"name"},this.pageName()),a="page",l="fa-regular fa-file icon";return typeof n.status<"u"&&(a=`page status-${this.node().status}`),n.id&&n.locale&&this.permitted("edit")&&(i=Fe.default.createElement("a",{href:this.editUrl(n),className:"name"},this.pageName())),n.news_page?l="fa-regular fa-file-lines icon":n.pinned&&(l="fa-regular fa-flag icon"),Fe.default.createElement("div",{className:a},Fe.default.createElement("i",{className:l}),i,this.statusLabel(),this.collapsedLabel(),this.actions())}statusLabel(){let t=["Draft","Reviewed","Published","Hidden","Deleted"];return typeof this.node().status<"u"&&this.node().status!=2?Fe.default.createElement("span",{className:"status-label"},"(",t[this.node().status],")"):""}toggleStatus(){this.node().status!=2?this.updatePage({status:2}):this.updatePage({status:3})}updatePage(t){if(this.props.updatePage)return this.props.updatePage(this.props.index,t)}visibleChildren(){return this.node().children?this.node().children.filter(t=>t.status!=4):[]}};var Zl=class extends ui.Component{constructor(t){super(t);this.state={dragging:this.initDragging()}}initDragging(){return{id:null,x:null,y:null,w:null,h:null,scrollTop:null,scrollLeft:null}}getDraggingDom(){let t=this.props.tree,n=this.state.dragging;if(n&&n.id){let i=t.getIndex(n.id),a={top:n.y,left:n.x,width:n.w};return ui.default.createElement("div",{className:"draggable",style:a},ui.default.createElement(Xi,{tree:t,index:i,paddingLeft:this.props.paddingLeft}))}return null}render(){let{tree:t,dir:n,locale:i}=this.props,a=this.state.dragging;if(t){let l=t.getIndex(1);return ui.default.createElement("div",{className:"page-tree"},this.getDraggingDom(),ui.default.createElement(Xi,{tree:t,index:l,key:l.id,paddingLeft:this.props.paddingLeft,addChild:u=>this.addChild(u),onDragStart:(u,c,d)=>this.dragStart(u,c,d),onCollapse:u=>this.toggleCollapse(u),updatePage:(u,c)=>this.updatePage(u,c),dragging:a&&a.id,dir:n,locale:i}))}else return ui.default.createElement("div",{className:"page-tree"},this.getDraggingDom())}addChild(t){let n={name:"",status:0,editing:!0,children:[],published_at:new Date,pinned:!1,locale:t.node.locale,parent_page_id:t.node.id};this.props.addChild(t.id,n)}prevAddButtonCount(t,n){let i=0,a=[],l=t.getIndex(n.parent);for(;l;)a.push(l),l=t.getIndex(l.parent);for(l=n,l=t.getNodeByTop(n.top-1);l;)a.indexOf(l)==-1&&!l.node.collapsed&&l.node.children.filter(u=>u.status!=4).length>0&&(i+=1),l=t.getNodeByTop(l.top-1);return i}scrollOffset(){let t=this.state.dragging;return{top:document.body.scrollTop-t.scrollTop,left:document.body.scrollLeft-t.scrollLeft}}drag(t){if(this._start)if(Math.abs(t.clientX-this._offsetX)+Math.abs(t.clientY-this._offsetY)>=15)this.setState({dragging:this.dragging}),this._start=!1;else return null;let n=this.props.tree,i=this.state.dragging,a=this.props.paddingLeft,l=null,u=n.getIndex(i.id),c=u.node.collapsed,d=this._startX,p=this._startY,w=this._offsetX,x=this._offsetY,E={x:d+t.clientX-w+this.scrollOffset().left,y:p+t.clientY-x+this.scrollOffset().top};i.x=E.x,i.y=E.y;let C=i.x-a/2-(u.left-2)*a,k=i.y-i.h/2-(u.top-2+this.prevAddButtonCount(n,u))*i.h;if(C<0)u.parent&&!u.next&&(l=n.move(u.id,u.parent,"after"));else if(C>a&&"prev"in u){let N=n.getIndex(u.prev);!N.node.leaf&&!N.node.collapsed&&(l=n.move(u.id,u.prev,"append"))}if(l&&(u=l,l.node.collapsed=c,i.id=l.id),k<0-i.h*.5){let N=n.getNodeByTop(u.top-1);l=n.move(u.id,N.id,"before")}else if(k>i.h*1.5){let N=u.next?n.getIndex(u.next):n.getNodeByTop(u.top+u.height);N&&N.parent!==u.id&&(N.children&&N.children.length&&!N.node.collapsed?l=n.move(u.id,N.id,"prepend"):l=n.move(u.id,N.id,"after"))}l&&(l.node.collapsed=c,i.id=l.id),this.setState({dragging:i})}dragStart(t,n,i){i.button===0&&(this.dragging={id:t,w:n.offsetWidth,h:n.offsetHeight,x:n.offsetLeft,y:n.offsetTop,scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft},this._startX=n.offsetLeft,this._startY=n.offsetTop,this._offsetX=i.clientX,this._offsetY=i.clientY,this._start=!0,this._dragListener=a=>{this.drag(a)},this._dragEndListener=()=>this.dragEnd(),window.addEventListener("mousemove",this._dragListener),window.addEventListener("mouseup",this._dragEndListener))}dragEnd(){this._start||(this.props.updateTree(this.props.tree),this.props.movedPage(this.state.dragging.id)),this.setState({dragging:this.initDragging()}),window.removeEventListener("mousemove",this._dragListener),window.removeEventListener("mouseup",this._dragEndListener)}toggleCollapse(t){this.props.toggleCollapsed(t)}updatePage(t,n){this.props.updatePage(t.id,n)}};Zl.defaultProps={paddingLeft:15};function Tm(){return window&&window.localStorage&&typeof window.localStorage.collapsedPages<"u"?JSON.parse(window.localStorage.getItem("collapsedPages")):{}}var Bc=class extends Uc.Component{constructor(t){super(t);this.state={tree:this.buildTree(t.pages)}}applyCollapsed(t){let n=(a,l)=>{let u=0,c=a.getIndex(l.parent);for(;c;)u+=1,c=a.getIndex(c.parent);return u},i=a=>{let l=t.getIndex(a),u=l.node;u.id&&u.id in Tm()?u.collapsed=Tm()[u.id]:(u.news_page||n(t,l)>1)&&(u.collapsed=!0),l.children&&l.children.length&&l.children.forEach(c=>i(c))};i(1)}createPage(t,n){v_(`/admin/${t.node.locale}/pages.json`,{page:n}).then(i=>this.updateNode(t,i))}buildTree(t){let n=t.reduce((a,l)=>{let u=l.parent_page_id||0;return a[u]=[...a[u]||[],l],a},{});t.forEach(a=>{a.children=n[a.id]||[]});let i=new Rc({name:"All Pages",locale:this.props.locale,permissions:this.props.permissions,root:!0,children:n[0]});return this.applyCollapsed(i),i.updateNodesPosition(),i}movePage(t,n,i){let a={parent_id:n.node.id,position:i},l=`/admin/${t.node.locale}/pages/${t.node.id}/move.json`;this.performUpdate(t,l,a)}performUpdate(t,n,i){qo(n,i).then(a=>this.updateNode(t,a))}render(){let t=(u,c)=>{let d=this.state.tree,p=d.append(c,u);this.reorderChildren(u),this.setCollapsed(u,!1),this.createPage(p,c),this.setState({tree:d})},n=u=>{let c=this.state.tree,d=c.getIndex(u);this.reorderChildren(d.parent);let p=c.getIndex(d.parent),w=p.children.indexOf(u)+1;this.movePage(d,p,w),this.setState({tree:c})},i=u=>{let c=this.state.tree,d=c.getIndex(u).node;this.setCollapsed(u,!d.collapsed),this.setState({tree:c})},a=(u,c)=>{let p=this.state.tree.getIndex(u),w=`/admin/${p.node.locale}/pages/${p.node.id}.json`;this.updateNode(p,c),this.performUpdate(p,w,{page:c})},l=u=>{this.setState({tree:u})};return Uc.default.createElement(Zl,{tree:this.state.tree,addChild:t,movedPage:n,toggleCollapsed:i,updatePage:a,updateTree:l,locale:this.props.locale,dir:this.props.dir})}reorderChildren(t){let n=this.state.tree,i=this.state.tree.getIndex(t);!i.node.news_page||(i.children=i.children.sort(function(l,u){let c=n.getIndex(l).node,d=n.getIndex(u).node;return c.pinned==d.pinned?new Date(d.published_at)-new Date(c.published_at):c.pinned?-1:1}),n.updateNodesPosition())}setCollapsed(t,n){let i=this.state.tree.getIndex(t).node;i.collapsed=n,this.storeCollapsed(t,i.collapsed),this.state.tree.updateNodesPosition()}storeCollapsed(t,n){let i=this.state.tree.getIndex(t).node,a=Tm();a[i.id]=n,window.localStorage.collapsedPages=JSON.stringify(a)}updateNode(t,n){for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t.node[i]=n[i]);this.setState({tree:this.state.tree})}};var tr=K(ie());function km(e){let[t,n]=(0,tr.useState)(!1),{toasts:i,error:a,notice:l,next:u}=Bt(w=>w),c=(0,tr.useRef)(null),d=i[0];(0,tr.useEffect)(()=>{e.error&&a(e.error),e.notice&&l(e.notice)},[e.error,e.notice]),(0,tr.useEffect)(()=>(n(!1),d&&!c.current&&(c.current=setTimeout(()=>{n(!0),c.current=setTimeout(()=>{c.current=null,n(!1),u()},500)},4e3)),()=>{clearTimeout(c.current)}),[d]);let p=["toast"];return d&&(p.push(d.type),t&&p.push("fadeout")),tr.default.createElement("div",{className:"toast-wrapper","aria-live":"polite"},d&&tr.default.createElement("div",{className:p.join(" ")},d.message))}var jc=class extends jn{static get targets(){return["form"]}preview(){let t=this.formTarget,n=t.action,i=t.target;t.target="_blank",t.action=t.dataset.previewUrl,t.submit(),t.action=n,t.target=i}};var $c=class extends jn{constructor(){super(...arguments);this.stateHandler=t=>{"state"in t&&"tabId"in t.state&&this.showTab(t.state.tabId)}}static get targets(){return["tab","link"]}connect(){let t=this.tabNames();if(t.length>0){let n=null,i=/#(.*)$/;if(document.location.toString().match(i)){let a=document.location.toString().match(i)[1];t.indexOf(a)!==-1&&(n=a)}this.showTab(n||t[0])}window.addEventListener("popstate",this.stateHandler)}disconnect(){window.removeEventListener("popstate",this.stateHandler)}changeTab(t){if(t.preventDefault(),"dataset"in t.target&&"tab"in t.target.dataset){let n=t.target.dataset.tab;this.showTab(n),history.pushState({tabId:n},"",`${window.location.pathname}#${n}`)}}showTab(t){this.linkTargets.forEach(n=>{n.dataset.tab==t?n.classList.add("current"):n.classList.remove("current")}),this.tabTargets.forEach(n=>{n.dataset.tab==t?n.classList.remove("hidden"):n.classList.add("hidden")})}tabNames(){return this.linkTargets.map(t=>t.dataset.tab)}};var Wc=class extends jn{static get targets(){return["tab"]}connect(){this.tabTargets.length>0&&this.showTab(this.tabTargets[0].dataset.tab)}changeTab(t){t.preventDefault(),"dataset"in t.target&&"tab"in t.target.dataset&&this.showTab(t.target.dataset.tab)}showTab(t){this.tabTargets.forEach(n=>{n.dataset.tab==t?n.classList.remove("hidden"):n.classList.add("hidden")})}};var z_=K(ie()),j_=K(Lh());var Nm=[],R_=()=>{if(["interactive","complete"].indexOf(document.readyState)>-1)for(;Nm.length>0;)Nm.shift()()},U_=class{constructor(){document.onreadystatechange=R_}ready(t){Nm.push(t),R_()}},B_=new U_;var $_=class{apply(){document.querySelectorAll("textarea.rich").forEach(n=>{this.enhance(n)})}enhance(t){let n=document.createElement("div");t.parentNode.appendChild(n),j_.default.render(z_.default.createElement(Sr,{value:t.value,name:t.name,rows:t.rows,id:t.id}),n),t.parentNode.removeChild(t)}start(){B_.ready(()=>{this.apply()})}},W_=new $_;function JA(e,t){window[e]=t}function Om(){(0,H_.start)();for(let t in zc)JA(t,zc[t]);W_.start();let e=Aa.start();e.register("edit-page",jc),e.register("main",$c),e.register("login",Wc)}Om();})(); -======= -(()=>{var xN=Object.create;var Ia=Object.defineProperty,_N=Object.defineProperties,EN=Object.getOwnPropertyDescriptor,SN=Object.getOwnPropertyDescriptors,bN=Object.getOwnPropertyNames,dy=Object.getOwnPropertySymbols,CN=Object.getPrototypeOf,hy=Object.prototype.hasOwnProperty,TN=Object.prototype.propertyIsEnumerable;var py=(e,t,n)=>t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,G=(e,t)=>{for(var n in t||(t={}))hy.call(t,n)&&py(e,n,t[n]);if(dy)for(var n of dy(t))TN.call(t,n)&&py(e,n,t[n]);return e},Ce=(e,t)=>_N(e,SN(t)),kN=e=>Ia(e,"__esModule",{value:!0});var Be=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ON=(e,t)=>{for(var n in t)Ia(e,n,{get:t[n],enumerable:!0})},NN=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of bN(t))!hy.call(e,a)&&(n||a!=="default")&&Ia(e,a,{get:()=>t[a],enumerable:!(i=EN(t,a))||i.enumerable});return e},K=(e,t)=>NN(kN(Ia(e!=null?xN(CN(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var gy=Be((my,Vs)=>{(function(){var e=this;(function(){(function(){this.Rails={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",buttonClickSelector:{selector:"button[data-remote]:not([form]), button[data-confirm]:not([form])",exclude:"form button"},inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form:not([data-turbo=true])",formInputClickSelector:"form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",formDisableSelector:"input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",formEnableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",fileInputSelector:"input[name][type=file]:not([disabled])",linkDisableSelector:"a[data-disable-with], a[data-disable]",buttonDisableSelector:"button[data-remote][data-disable-with], button[data-remote][data-disable]"}}).call(this)}).call(e);var t=e.Rails;(function(){(function(){var n;n=null,t.loadCSPNonce=function(){var i;return n=(i=document.querySelector("meta[name=csp-nonce]"))!=null?i.content:void 0},t.cspNonce=function(){return n!=null?n:t.loadCSPNonce()}}).call(this),function(){var n,i;i=Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector,t.matches=function(a,l){return l.exclude!=null?i.call(a,l.selector)&&!i.call(a,l.exclude):i.call(a,l)},n="_ujsData",t.getData=function(a,l){var u;return(u=a[n])!=null?u[l]:void 0},t.setData=function(a,l,u){return a[n]==null&&(a[n]={}),a[n][l]=u},t.$=function(a){return Array.prototype.slice.call(document.querySelectorAll(a))}}.call(this),function(){var n,i,a;n=t.$,a=t.csrfToken=function(){var l;return l=document.querySelector("meta[name=csrf-token]"),l&&l.content},i=t.csrfParam=function(){var l;return l=document.querySelector("meta[name=csrf-param]"),l&&l.content},t.CSRFProtection=function(l){var u;if(u=a(),u!=null)return l.setRequestHeader("X-CSRF-Token",u)},t.refreshCSRFTokens=function(){var l,u;if(u=a(),l=i(),u!=null&&l!=null)return n('form input[name="'+l+'"]').forEach(function(c){return c.value=u})}}.call(this),function(){var n,i,a,l;a=t.matches,n=window.CustomEvent,typeof n!="function"&&(n=function(u,c){var d;return d=document.createEvent("CustomEvent"),d.initCustomEvent(u,c.bubbles,c.cancelable,c.detail),d},n.prototype=window.Event.prototype,l=n.prototype.preventDefault,n.prototype.preventDefault=function(){var u;return u=l.call(this),this.cancelable&&!this.defaultPrevented&&Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}}),u}),i=t.fire=function(u,c,d){var p;return p=new n(c,{bubbles:!0,cancelable:!0,detail:d}),u.dispatchEvent(p),!p.defaultPrevented},t.stopEverything=function(u){return i(u.target,"ujs:everythingStopped"),u.preventDefault(),u.stopPropagation(),u.stopImmediatePropagation()},t.delegate=function(u,c,d,p){return u.addEventListener(d,function(w){var _;for(_=w.target;!(!(_ instanceof Element)||a(_,c));)_=_.parentNode;if(_ instanceof Element&&p.call(_,w)===!1)return w.preventDefault(),w.stopPropagation()})}}.call(this),function(){var n,i,a,l,u,c,d;l=t.cspNonce,i=t.CSRFProtection,u=t.fire,n={"*":"*/*",text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript",script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},t.ajax=function(p){var w;if(p=c(p),w=a(p,function(){var _,E;return E=d((_=w.response)!=null?_:w.responseText,w.getResponseHeader("Content-Type")),Math.floor(w.status/100)===2?typeof p.success=="function"&&p.success(E,w.statusText,w):typeof p.error=="function"&&p.error(E,w.statusText,w),typeof p.complete=="function"?p.complete(w,w.statusText):void 0}),p.beforeSend!=null&&!p.beforeSend(w,p))return!1;if(w.readyState===XMLHttpRequest.OPENED)return w.send(p.data)},c=function(p){return p.url=p.url||location.href,p.type=p.type.toUpperCase(),p.type==="GET"&&p.data&&(p.url.indexOf("?")<0?p.url+="?"+p.data:p.url+="&"+p.data),n[p.dataType]==null&&(p.dataType="*"),p.accept=n[p.dataType],p.dataType!=="*"&&(p.accept+=", */*; q=0.01"),p},a=function(p,w){var _;return _=new XMLHttpRequest,_.open(p.type,p.url,!0),_.setRequestHeader("Accept",p.accept),typeof p.data=="string"&&_.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),p.crossDomain||(_.setRequestHeader("X-Requested-With","XMLHttpRequest"),i(_)),_.withCredentials=!!p.withCredentials,_.onreadystatechange=function(){if(_.readyState===XMLHttpRequest.DONE)return w(_)},_},d=function(p,w){var _,E;if(typeof p=="string"&&typeof w=="string"){if(w.match(/\bjson\b/))try{p=JSON.parse(p)}catch(O){}else if(w.match(/\b(?:java|ecma)script\b/))E=document.createElement("script"),E.setAttribute("nonce",l()),E.text=p,document.head.appendChild(E).parentNode.removeChild(E);else if(w.match(/\b(xml|html|svg)\b/)){_=new DOMParser,w=w.replace(/;.+/,"");try{p=_.parseFromString(p,w)}catch(O){}}}return p},t.href=function(p){return p.href},t.isCrossDomain=function(p){var w,_,E;_=document.createElement("a"),_.href=location.href,E=document.createElement("a");try{return E.href=p,!((!E.protocol||E.protocol===":")&&!E.host||_.protocol+"//"+_.host==E.protocol+"//"+E.host)}catch(O){return w=O,!0}}}.call(this),function(){var n,i;n=t.matches,i=function(a){return Array.prototype.slice.call(a)},t.serializeElement=function(a,l){var u,c;return u=[a],n(a,"form")&&(u=i(a.elements)),c=[],u.forEach(function(d){if(!(!d.name||d.disabled)&&!n(d,"fieldset[disabled] *")){if(n(d,"select"))return i(d.options).forEach(function(p){if(p.selected)return c.push({name:d.name,value:p.value})});if(d.checked||["radio","checkbox","submit"].indexOf(d.type)===-1)return c.push({name:d.name,value:d.value})}}),l&&c.push(l),c.map(function(d){return d.name!=null?encodeURIComponent(d.name)+"="+encodeURIComponent(d.value):d}).join("&")},t.formElements=function(a,l){return n(a,"form")?i(a.elements).filter(function(u){return n(u,l)}):i(a.querySelectorAll(l))}}.call(this),function(){var n,i,a;i=t.fire,a=t.stopEverything,t.handleConfirm=function(l){if(!n(this))return a(l)},t.confirm=function(l,u){return confirm(l)},n=function(l){var u,c,d;if(d=l.getAttribute("data-confirm"),!d)return!0;if(u=!1,i(l,"confirm")){try{u=t.confirm(d,l)}catch(p){}c=i(l,"confirm:complete",[u])}return u&&c}}.call(this),function(){var n,i,a,l,u,c,d,p,w,_,E,O;_=t.matches,p=t.getData,E=t.setData,O=t.stopEverything,d=t.formElements,t.handleDisabledElement=function(k){var b;if(b=this,b.disabled)return O(k)},t.enableElement=function(k){var b;if(k instanceof Event){if(w(k))return;b=k.target}else b=k;if(_(b,t.linkDisableSelector))return c(b);if(_(b,t.buttonDisableSelector)||_(b,t.formEnableSelector))return l(b);if(_(b,t.formSubmitSelector))return u(b)},t.disableElement=function(k){var b;if(b=k instanceof Event?k.target:k,_(b,t.linkDisableSelector))return a(b);if(_(b,t.buttonDisableSelector)||_(b,t.formDisableSelector))return n(b);if(_(b,t.formSubmitSelector))return i(b)},a=function(k){var b;if(!p(k,"ujs:disabled"))return b=k.getAttribute("data-disable-with"),b!=null&&(E(k,"ujs:enable-with",k.innerHTML),k.innerHTML=b),k.addEventListener("click",O),E(k,"ujs:disabled",!0)},c=function(k){var b;return b=p(k,"ujs:enable-with"),b!=null&&(k.innerHTML=b,E(k,"ujs:enable-with",null)),k.removeEventListener("click",O),E(k,"ujs:disabled",null)},i=function(k){return d(k,t.formDisableSelector).forEach(n)},n=function(k){var b;if(!p(k,"ujs:disabled"))return b=k.getAttribute("data-disable-with"),b!=null&&(_(k,"button")?(E(k,"ujs:enable-with",k.innerHTML),k.innerHTML=b):(E(k,"ujs:enable-with",k.value),k.value=b)),k.disabled=!0,E(k,"ujs:disabled",!0)},u=function(k){return d(k,t.formEnableSelector).forEach(l)},l=function(k){var b;return b=p(k,"ujs:enable-with"),b!=null&&(_(k,"button")?k.innerHTML=b:k.value=b,E(k,"ujs:enable-with",null)),k.disabled=!1,E(k,"ujs:disabled",null)},w=function(k){var b,x;return x=(b=k.detail)!=null?b[0]:void 0,(x!=null?x.getResponseHeader("X-Xhr-Redirect"):void 0)!=null}}.call(this),function(){var n;n=t.stopEverything,t.handleMethod=function(i){var a,l,u,c,d,p,w;if(p=this,w=p.getAttribute("data-method"),!!w)return d=t.href(p),l=t.csrfToken(),a=t.csrfParam(),u=document.createElement("form"),c="",a!=null&&l!=null&&!t.isCrossDomain(d)&&(c+=""),c+='',u.method="post",u.action=d,u.target=p.target,u.innerHTML=c,u.style.display="none",document.body.appendChild(u),u.querySelector('[type="submit"]').click(),n(i)}}.call(this),function(){var n,i,a,l,u,c,d,p,w,_=[].slice;c=t.matches,a=t.getData,p=t.setData,i=t.fire,w=t.stopEverything,n=t.ajax,l=t.isCrossDomain,d=t.serializeElement,u=function(E){var O;return O=E.getAttribute("data-remote"),O!=null&&O!=="false"},t.handleRemote=function(E){var O,k,b,x,g,y,T;return x=this,u(x)?i(x,"ajax:before")?(T=x.getAttribute("data-with-credentials"),b=x.getAttribute("data-type")||"script",c(x,t.formSubmitSelector)?(O=a(x,"ujs:submit-button"),g=a(x,"ujs:submit-button-formmethod")||x.method,y=a(x,"ujs:submit-button-formaction")||x.getAttribute("action")||location.href,g.toUpperCase()==="GET"&&(y=y.replace(/\?.*$/,"")),x.enctype==="multipart/form-data"?(k=new FormData(x),O!=null&&k.append(O.name,O.value)):k=d(x,O),p(x,"ujs:submit-button",null),p(x,"ujs:submit-button-formmethod",null),p(x,"ujs:submit-button-formaction",null)):c(x,t.buttonClickSelector)||c(x,t.inputChangeSelector)?(g=x.getAttribute("data-method"),y=x.getAttribute("data-url"),k=d(x,x.getAttribute("data-params"))):(g=x.getAttribute("data-method"),y=t.href(x),k=x.getAttribute("data-params")),n({type:g||"GET",url:y,data:k,dataType:b,beforeSend:function(P,Y){return i(x,"ajax:beforeSend",[P,Y])?i(x,"ajax:send",[P]):(i(x,"ajax:stopped"),!1)},success:function(){var P;return P=1<=arguments.length?_.call(arguments,0):[],i(x,"ajax:success",P)},error:function(){var P;return P=1<=arguments.length?_.call(arguments,0):[],i(x,"ajax:error",P)},complete:function(){var P;return P=1<=arguments.length?_.call(arguments,0):[],i(x,"ajax:complete",P)},crossDomain:l(y),withCredentials:T!=null&&T!=="false"}),w(E)):(i(x,"ajax:stopped"),!1):!0},t.formSubmitButtonClick=function(E){var O,k;if(O=this,k=O.form,!!k)return O.name&&p(k,"ujs:submit-button",{name:O.name,value:O.value}),p(k,"ujs:formnovalidate-button",O.formNoValidate),p(k,"ujs:submit-button-formaction",O.getAttribute("formaction")),p(k,"ujs:submit-button-formmethod",O.getAttribute("formmethod"))},t.preventInsignificantClick=function(E){var O,k,b,x,g,y;if(b=this,g=(b.getAttribute("data-method")||"GET").toUpperCase(),O=b.getAttribute("data-params"),x=E.metaKey||E.ctrlKey,k=x&&g==="GET"&&!O,y=E.button!=null&&E.button!==0,y||k)return E.stopImmediatePropagation()}}.call(this),function(){var n,i,a,l,u,c,d,p,w,_,E,O,k,b,x;if(c=t.fire,a=t.delegate,p=t.getData,n=t.$,x=t.refreshCSRFTokens,i=t.CSRFProtection,k=t.loadCSPNonce,u=t.enableElement,l=t.disableElement,_=t.handleDisabledElement,w=t.handleConfirm,b=t.preventInsignificantClick,O=t.handleRemote,d=t.formSubmitButtonClick,E=t.handleMethod,typeof jQuery<"u"&&jQuery!==null&&jQuery.ajax!=null){if(jQuery.rails)throw new Error("If you load both jquery_ujs and rails-ujs, use rails-ujs only.");jQuery.rails=t,jQuery.ajaxPrefilter(function(g,y,T){if(!g.crossDomain)return i(T)})}t.start=function(){if(window._rails_loaded)throw new Error("rails-ujs has already been loaded!");return window.addEventListener("pageshow",function(){return n(t.formEnableSelector).forEach(function(g){if(p(g,"ujs:disabled"))return u(g)}),n(t.linkDisableSelector).forEach(function(g){if(p(g,"ujs:disabled"))return u(g)})}),a(document,t.linkDisableSelector,"ajax:complete",u),a(document,t.linkDisableSelector,"ajax:stopped",u),a(document,t.buttonDisableSelector,"ajax:complete",u),a(document,t.buttonDisableSelector,"ajax:stopped",u),a(document,t.linkClickSelector,"click",b),a(document,t.linkClickSelector,"click",_),a(document,t.linkClickSelector,"click",w),a(document,t.linkClickSelector,"click",l),a(document,t.linkClickSelector,"click",O),a(document,t.linkClickSelector,"click",E),a(document,t.buttonClickSelector,"click",b),a(document,t.buttonClickSelector,"click",_),a(document,t.buttonClickSelector,"click",w),a(document,t.buttonClickSelector,"click",l),a(document,t.buttonClickSelector,"click",O),a(document,t.inputChangeSelector,"change",_),a(document,t.inputChangeSelector,"change",w),a(document,t.inputChangeSelector,"change",O),a(document,t.formSubmitSelector,"submit",_),a(document,t.formSubmitSelector,"submit",w),a(document,t.formSubmitSelector,"submit",O),a(document,t.formSubmitSelector,"submit",function(g){return setTimeout(function(){return l(g)},13)}),a(document,t.formSubmitSelector,"ajax:send",l),a(document,t.formSubmitSelector,"ajax:complete",u),a(document,t.formInputClickSelector,"click",b),a(document,t.formInputClickSelector,"click",_),a(document,t.formInputClickSelector,"click",w),a(document,t.formInputClickSelector,"click",d),document.addEventListener("DOMContentLoaded",x),document.addEventListener("DOMContentLoaded",k),window._rails_loaded=!0},window.Rails===t&&c(document,"rails:attachBindings")&&t.start()}.call(this)}).call(this),typeof Vs=="object"&&Vs.exports?Vs.exports=t:typeof define=="function"&&define.amd&&define(t)}).call(my)});var Ys=Be((PA,Vy)=>{"use strict";var Hy=Object.getOwnPropertySymbols,vP=Object.prototype.hasOwnProperty,yP=Object.prototype.propertyIsEnumerable;function wP(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function xP(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(t).map(function(l){return t[l]});if(i.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(l){a[l]=l}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch(l){return!1}}Vy.exports=xP()?Object.assign:function(e,t){for(var n,i=wP(e),a,l=1;l{"use strict";var Cd=Ys(),fo=60103,Yy=60106;Oe.Fragment=60107;Oe.StrictMode=60108;Oe.Profiler=60114;var Xy=60109,Gy=60110,Qy=60112;Oe.Suspense=60113;var Zy=60115,Jy=60116;typeof Symbol=="function"&&Symbol.for&&(yn=Symbol.for,fo=yn("react.element"),Yy=yn("react.portal"),Oe.Fragment=yn("react.fragment"),Oe.StrictMode=yn("react.strict_mode"),Oe.Profiler=yn("react.profiler"),Xy=yn("react.provider"),Gy=yn("react.context"),Qy=yn("react.forward_ref"),Oe.Suspense=yn("react.suspense"),Zy=yn("react.memo"),Jy=yn("react.lazy"));var yn,Ky=typeof Symbol=="function"&&Symbol.iterator;function _P(e){return e===null||typeof e!="object"?null:(e=Ky&&e[Ky]||e["@@iterator"],typeof e=="function"?e:null)}function Ma(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n{"use strict";s0.exports=l0()});var h0=Be(Ae=>{"use strict";var mo,Ua,eu,Fd;typeof performance=="object"&&typeof performance.now=="function"?(u0=performance,Ae.unstable_now=function(){return u0.now()}):(Pd=Date,c0=Pd.now(),Ae.unstable_now=function(){return Pd.now()-c0});var u0,Pd,c0;typeof window>"u"||typeof MessageChannel!="function"?(ho=null,Dd=null,Id=function(){if(ho!==null)try{var e=Ae.unstable_now();ho(!0,e),ho=null}catch(t){throw setTimeout(Id,0),t}},mo=function(e){ho!==null?setTimeout(mo,0,e):(ho=e,setTimeout(Id,0))},Ua=function(e,t){Dd=setTimeout(e,t)},eu=function(){clearTimeout(Dd)},Ae.unstable_shouldYield=function(){return!1},Fd=Ae.unstable_forceFrameRate=function(){}):(f0=window.setTimeout,d0=window.clearTimeout,typeof console<"u"&&(p0=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof p0!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),Fa=!1,Ra=null,Qs=-1,Ad=5,Ld=0,Ae.unstable_shouldYield=function(){return Ae.unstable_now()>=Ld},Fd=function(){},Ae.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[i];if(a!==void 0&&0Js(u,n))d!==void 0&&0>Js(d,u)?(e[i]=d,e[c]=n,i=c):(e[i]=u,e[l]=n,i=l);else if(d!==void 0&&0>Js(d,n))e[i]=d,e[c]=n,i=c;else break e}}return t}return null}function Js(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}var Hn=[],Mr=[],TP=1,wn=null,Ot=3,nu=!1,xi=!1,Ba=!1;function Ud(e){for(var t=Mn(Mr);t!==null;){if(t.callback===null)tu(Mr);else if(t.startTime<=e)tu(Mr),t.sortIndex=t.expirationTime,Rd(Hn,t);else break;t=Mn(Mr)}}function Bd(e){if(Ba=!1,Ud(e),!xi)if(Mn(Hn)!==null)xi=!0,mo(zd);else{var t=Mn(Mr);t!==null&&Ua(Bd,t.startTime-e)}}function zd(e,t){xi=!1,Ba&&(Ba=!1,eu()),nu=!0;var n=Ot;try{for(Ud(t),wn=Mn(Hn);wn!==null&&(!(wn.expirationTime>t)||e&&!Ae.unstable_shouldYield());){var i=wn.callback;if(typeof i=="function"){wn.callback=null,Ot=wn.priorityLevel;var a=i(wn.expirationTime<=t);t=Ae.unstable_now(),typeof a=="function"?wn.callback=a:wn===Mn(Hn)&&tu(Hn),Ud(t)}else tu(Hn);wn=Mn(Hn)}if(wn!==null)var l=!0;else{var u=Mn(Mr);u!==null&&Ua(Bd,u.startTime-t),l=!1}return l}finally{wn=null,Ot=n,nu=!1}}var kP=Fd;Ae.unstable_IdlePriority=5;Ae.unstable_ImmediatePriority=1;Ae.unstable_LowPriority=4;Ae.unstable_NormalPriority=3;Ae.unstable_Profiling=null;Ae.unstable_UserBlockingPriority=2;Ae.unstable_cancelCallback=function(e){e.callback=null};Ae.unstable_continueExecution=function(){xi||nu||(xi=!0,mo(zd))};Ae.unstable_getCurrentPriorityLevel=function(){return Ot};Ae.unstable_getFirstCallbackNode=function(){return Mn(Hn)};Ae.unstable_next=function(e){switch(Ot){case 1:case 2:case 3:var t=3;break;default:t=Ot}var n=Ot;Ot=t;try{return e()}finally{Ot=n}};Ae.unstable_pauseExecution=function(){};Ae.unstable_requestPaint=kP;Ae.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=Ot;Ot=e;try{return t()}finally{Ot=n}};Ae.unstable_scheduleCallback=function(e,t,n){var i=Ae.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0i?(e.sortIndex=n,Rd(Mr,e),Mn(Hn)===null&&e===Mn(Mr)&&(Ba?eu():Ba=!0,Ua(Bd,n-i))):(e.sortIndex=a,Rd(Hn,e),xi||nu||(xi=!0,mo(zd))),e};Ae.unstable_wrapCallback=function(e){var t=Ot;return function(){var n=Ot;Ot=t;try{return e.apply(this,arguments)}finally{Ot=n}}}});var g0=Be((LA,m0)=>{"use strict";m0.exports=h0()});var nx=Be(Cn=>{"use strict";var Xu=oe(),Ge=Ys(),gt=g0();function H(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),OP=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,v0=Object.prototype.hasOwnProperty,y0={},w0={};function NP(e){return v0.call(w0,e)?!0:v0.call(y0,e)?!1:OP.test(e)?w0[e]=!0:(y0[e]=!0,!1)}function PP(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function DP(e,t,n,i){if(t===null||typeof t>"u"||PP(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Rt(e,t,n,i,a,l,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=u}var xt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){xt[e]=new Rt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];xt[t]=new Rt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){xt[e]=new Rt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){xt[e]=new Rt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){xt[e]=new Rt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){xt[e]=new Rt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){xt[e]=new Rt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){xt[e]=new Rt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){xt[e]=new Rt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Xp=/[\-:]([a-z])/g;function Gp(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Xp,Gp);xt[t]=new Rt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Xp,Gp);xt[t]=new Rt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Xp,Gp);xt[t]=new Rt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){xt[e]=new Rt(e,1,!1,e.toLowerCase(),null,!1,!1)});xt.xlinkHref=new Rt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){xt[e]=new Rt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Qp(e,t,n,i){var a=xt.hasOwnProperty(t)?xt[t]:null,l=a!==null?a.type===0:i?!1:!(!(2c||a[u]!==l[c])return` -`+a[u].replace(" at new "," at ");while(1<=u&&0<=c);break}}}finally{$d=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Ja(e):""}function IP(e){switch(e.tag){case 5:return Ja(e.type);case 16:return Ja("Lazy");case 13:return Ja("Suspense");case 19:return Ja("SuspenseList");case 0:case 2:case 15:return e=ru(e.type,!1),e;case 11:return e=ru(e.type.render,!1),e;case 22:return e=ru(e.type._render,!1),e;case 1:return e=ru(e.type,!0),e;default:return""}}function To(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Rr:return"Fragment";case Ei:return"Portal";case rl:return"Profiler";case Zp:return"StrictMode";case il:return"Suspense";case Tu:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case eh:return(e.displayName||"Context")+".Consumer";case Jp:return(e._context.displayName||"Context")+".Provider";case Gu:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case Qu:return To(e.type);case nh:return To(e._render);case th:t=e._payload,e=e._init;try{return To(e(t))}catch(n){}}return null}function Xr(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Dw(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function AP(e){var t=Dw(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(u){i=""+u,l.call(this,u)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(u){i=""+u},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function iu(e){e._valueTracker||(e._valueTracker=AP(e))}function Iw(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=Dw(e)?e.checked?"true":"false":e.value),e=i,e!==n?(t.setValue(e),!0):!1}function ku(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch(t){return e.body}}function cp(e,t){var n=t.checked;return Ge({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n!=null?n:e._wrapperState.initialChecked})}function _0(e,t){var n=t.defaultValue==null?"":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;n=Xr(t.value!=null?t.value:n),e._wrapperState={initialChecked:i,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Aw(e,t){t=t.checked,t!=null&&Qp(e,"checked",t,!1)}function fp(e,t){Aw(e,t);var n=Xr(t.value),i=t.type;if(n!=null)i==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?dp(e,t.type,n):t.hasOwnProperty("defaultValue")&&dp(e,t.type,Xr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function E0(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var i=t.type;if(!(i!=="submit"&&i!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function dp(e,t,n){(t!=="number"||ku(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function LP(e){var t="";return Xu.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}function pp(e,t){return e=Ge({children:void 0},t),(t=LP(t.children))&&(e.children=t),e}function ko(e,t,n,i){if(e=e.options,t){t={};for(var a=0;a=n.length))throw Error(H(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Xr(n)}}function Lw(e,t){var n=Xr(t.value),i=Xr(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),i!=null&&(e.defaultValue=""+i)}function b0(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}var mp={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Mw(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function gp(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Mw(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ou,Fw=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,i,a){MSApp.execUnsafeLocalFunction(function(){return e(t,n,i,a)})}:e}(function(e,t){if(e.namespaceURI!==mp.svg||"innerHTML"in e)e.innerHTML=t;else{for(ou=ou||document.createElement("div"),ou.innerHTML=""+t.valueOf().toString()+"",t=ou.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function gl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ol={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},MP=["Webkit","ms","Moz","O"];Object.keys(ol).forEach(function(e){MP.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ol[t]=ol[e]})});function Rw(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||ol.hasOwnProperty(e)&&ol[e]?(""+t).trim():t+"px"}function Uw(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var i=n.indexOf("--")===0,a=Rw(n,t[n],i);n==="float"&&(n="cssFloat"),i?e.setProperty(n,a):e[n]=a}}var FP=Ge({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vp(e,t){if(t){if(FP[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(H(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(H(60));if(!(typeof t.dangerouslySetInnerHTML=="object"&&"__html"in t.dangerouslySetInnerHTML))throw Error(H(61))}if(t.style!=null&&typeof t.style!="object")throw Error(H(62))}}function yp(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function oh(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var wp=null,Oo=null,No=null;function C0(e){if(e=Pl(e)){if(typeof wp!="function")throw Error(H(280));var t=e.stateNode;t&&(t=rc(t),wp(e.stateNode,e.type,t))}}function Bw(e){Oo?No?No.push(e):No=[e]:Oo=e}function zw(){if(Oo){var e=Oo,t=No;if(No=Oo=null,C0(e),t)for(e=0;ei?0:1<n;n++)t.push(e);return t}function Ju(e,t,n){e.pendingLanes|=t;var i=t-1;e.suspendedLanes&=i,e.pingedLanes&=i,e=e.eventTimes,t=31-Gr(t),e[t]=n}var Gr=Math.clz32?Math.clz32:ZP,GP=Math.log,QP=Math.LN2;function ZP(e){return e===0?32:31-(GP(e)/QP|0)|0}var JP=gt.unstable_UserBlockingPriority,eD=gt.unstable_runWithPriority,vu=!0;function tD(e,t,n,i){Si||lh();var a=dh,l=Si;Si=!0;try{jw(a,e,t,n,i)}finally{(Si=l)||sh()}}function nD(e,t,n,i){eD(JP,dh.bind(null,e,t,n,i))}function dh(e,t,n,i){if(vu){var a;if((a=(t&4)===0)&&0=ll),M0=String.fromCharCode(32),F0=!1;function i1(e,t){switch(e){case"keyup":return CD.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function o1(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var _o=!1;function kD(e,t){switch(e){case"compositionend":return o1(t);case"keypress":return t.which!==32?null:(F0=!0,M0);case"textInput":return e=t.data,e===M0&&F0?null:e;default:return null}}function OD(e,t){if(_o)return e==="compositionend"||!vh&&i1(e,t)?(e=n1(),yu=hh=Ur=null,_o=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=B0(n)}}function u1(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?u1(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function j0(){for(var e=window,t=ku();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch(i){n=!1}if(n)e=t.contentWindow;else break;t=ku(e.document)}return t}function bp(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var UD=wr&&"documentMode"in document&&11>=document.documentMode,Eo=null,Cp=null,ul=null,Tp=!1;function $0(e,t,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Tp||Eo==null||Eo!==ku(i)||(i=Eo,"selectionStart"in i&&bp(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),ul&&El(ul,i)||(ul=i,i=Du(Cp,"onSelect"),0bo||(e.current=Op[bo],Op[bo]=null,bo--)}function rt(e,t){bo++,Op[bo]=e.current,e.current=t}var Qr={},It=ei(Qr),Yt=ei(!1),Oi=Qr;function Ro(e,t){var n=e.type.contextTypes;if(!n)return Qr;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var a={},l;for(l in n)a[l]=t[l];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Xt(e){return e=e.childContextTypes,e!=null}function Lu(){qe(Yt),qe(It)}function G0(e,t,n){if(It.current!==Qr)throw Error(H(168));rt(It,t),rt(Yt,n)}function v1(e,t,n){var i=e.stateNode;if(e=t.childContextTypes,typeof i.getChildContext!="function")return n;i=i.getChildContext();for(var a in i)if(!(a in e))throw Error(H(108,To(t)||"Unknown",a));return Ge({},n,i)}function xu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Qr,Oi=It.current,rt(It,e),rt(Yt,Yt.current),!0}function Q0(e,t,n){var i=e.stateNode;if(!i)throw Error(H(169));n?(e=v1(e,t,Oi),i.__reactInternalMemoizedMergedChildContext=e,qe(Yt),qe(It),rt(It,e)):qe(Yt),rt(Yt,n)}var wh=null,ki=null,jD=gt.unstable_runWithPriority,xh=gt.unstable_scheduleCallback,Np=gt.unstable_cancelCallback,$D=gt.unstable_shouldYield,Z0=gt.unstable_requestPaint,Pp=gt.unstable_now,WD=gt.unstable_getCurrentPriorityLevel,ic=gt.unstable_ImmediatePriority,y1=gt.unstable_UserBlockingPriority,w1=gt.unstable_NormalPriority,x1=gt.unstable_LowPriority,_1=gt.unstable_IdlePriority,ep={},HD=Z0!==void 0?Z0:function(){},hr=null,_u=null,tp=!1,J0=Pp(),Pt=1e4>J0?Pp:function(){return Pp()-J0};function Uo(){switch(WD()){case ic:return 99;case y1:return 98;case w1:return 97;case x1:return 96;case _1:return 95;default:throw Error(H(332))}}function E1(e){switch(e){case 99:return ic;case 98:return y1;case 97:return w1;case 96:return x1;case 95:return _1;default:throw Error(H(332))}}function Ni(e,t){return e=E1(e),jD(e,t)}function bl(e,t,n){return e=E1(e),xh(e,t,n)}function Gn(){if(_u!==null){var e=_u;_u=null,Np(e)}S1()}function S1(){if(!tp&&hr!==null){tp=!0;var e=0;try{var t=hr;Ni(99,function(){for(;eX?(J=L,L=null):J=L.sibling;var ie=E(x,L,y[X],T);if(ie===null){L===null&&(L=J);break}e&&L&&ie.alternate===null&&t(x,L),g=l(ie,g,X),Y===null?P=ie:Y.sibling=ie,Y=ie,L=J}if(X===y.length)return n(x,L),P;if(L===null){for(;XX?(J=L,L=null):J=L.sibling;var Ye=E(x,L,ie.value,T);if(Ye===null){L===null&&(L=J);break}e&&L&&Ye.alternate===null&&t(x,L),g=l(Ye,g,X),Y===null?P=Ye:Y.sibling=Ye,Y=Ye,L=J}if(ie.done)return n(x,L),P;if(L===null){for(;!ie.done;X++,ie=y.next())ie=_(x,ie.value,T),ie!==null&&(g=l(ie,g,X),Y===null?P=ie:Y.sibling=ie,Y=ie);return P}for(L=i(x,L);!ie.done;X++,ie=y.next())ie=O(L,x,X,ie.value,T),ie!==null&&(e&&ie.alternate!==null&&L.delete(ie.key===null?X:ie.key),g=l(ie,g,X),Y===null?P=ie:Y.sibling=ie,Y=ie);return e&&L.forEach(function(j){return t(x,j)}),P}return function(x,g,y,T){var P=typeof y=="object"&&y!==null&&y.type===Rr&&y.key===null;P&&(y=y.props.children);var Y=typeof y=="object"&&y!==null;if(Y)switch(y.$$typeof){case Za:e:{for(Y=y.key,P=g;P!==null;){if(P.key===Y){switch(P.tag){case 7:if(y.type===Rr){n(x,P.sibling),g=a(P,y.props.children),g.return=x,x=g;break e}break;default:if(P.elementType===y.type){n(x,P.sibling),g=a(P,y.props),g.ref=Va(x,P,y),g.return=x,x=g;break e}}n(x,P);break}else t(x,P);P=P.sibling}y.type===Rr?(g=Mo(y.props.children,x.mode,T,y.key),g.return=x,x=g):(T=Cu(y.type,y.key,y.props,null,x.mode,T),T.ref=Va(x,g,y),T.return=x,x=T)}return u(x);case Ei:e:{for(P=y.key;g!==null;){if(g.key===P)if(g.tag===4&&g.stateNode.containerInfo===y.containerInfo&&g.stateNode.implementation===y.implementation){n(x,g.sibling),g=a(g,y.children||[]),g.return=x,x=g;break e}else{n(x,g);break}else t(x,g);g=g.sibling}g=lp(y,x.mode,T),g.return=x,x=g}return u(x)}if(typeof y=="string"||typeof y=="number")return y=""+y,g!==null&&g.tag===6?(n(x,g.sibling),g=a(g,y),g.return=x,x=g):(n(x,g),g=ap(y,x.mode,T),g.return=x,x=g),u(x);if(fu(y))return k(x,g,y,T);if(za(y))return b(x,g,y,T);if(Y&&du(x,y),typeof y>"u"&&!P)switch(x.tag){case 1:case 22:case 0:case 11:case 15:throw Error(H(152,To(x.type)||"Component"))}return n(x,g)}}var Bu=O1(!0),N1=O1(!1),Dl={},Yn=ei(Dl),Tl=ei(Dl),kl=ei(Dl);function Ci(e){if(e===Dl)throw Error(H(174));return e}function Ip(e,t){switch(rt(kl,t),rt(Tl,e),rt(Yn,Dl),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:gp(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=gp(t,e)}qe(Yn),rt(Yn,t)}function Bo(){qe(Yn),qe(Tl),qe(kl)}function iw(e){Ci(kl.current);var t=Ci(Yn.current),n=gp(t,e.type);t!==n&&(rt(Tl,e),rt(Yn,n))}function bh(e){Tl.current===e&&(qe(Yn),qe(Tl))}var nt=ei(0);function zu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&64)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var gr=null,zr=null,Xn=!1;function P1(e,t){var n=_n(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function ow(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,!0):!1;case 13:return!1;default:return!1}}function Ap(e){if(Xn){var t=zr;if(t){var n=t;if(!ow(e,t)){if(t=Po(n.nextSibling),!t||!ow(e,t)){e.flags=e.flags&-1025|2,Xn=!1,gr=e;return}P1(gr,n)}gr=e,zr=Po(t.firstChild)}else e.flags=e.flags&-1025|2,Xn=!1,gr=e}}function aw(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;gr=e}function pu(e){if(e!==gr)return!1;if(!Xn)return aw(e),Xn=!0,!1;var t=e.type;if(e.tag!==5||t!=="head"&&t!=="body"&&!kp(t,e.memoizedProps))for(t=zr;t;)P1(e,t),t=Po(t.nextSibling);if(aw(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(H(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){zr=Po(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}zr=null}}else zr=gr?Po(e.stateNode.nextSibling):null;return!0}function np(){zr=gr=null,Xn=!1}var Io=[];function Ch(){for(var e=0;el))throw Error(H(301));l+=1,yt=Nt=null,t.updateQueue=null,cl.current=XD,e=n(i,a)}while(fl)}if(cl.current=Vu,t=Nt!==null&&Nt.next!==null,Ol=0,yt=Nt=at=null,ju=!1,t)throw Error(H(300));return e}function Ti(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return yt===null?at.memoizedState=yt=e:yt=yt.next=e,yt}function Li(){if(Nt===null){var e=at.alternate;e=e!==null?e.memoizedState:null}else e=Nt.next;var t=yt===null?at.memoizedState:yt.next;if(t!==null)yt=t,Nt=e;else{if(e===null)throw Error(H(310));Nt=e,e={memoizedState:Nt.memoizedState,baseState:Nt.baseState,baseQueue:Nt.baseQueue,queue:Nt.queue,next:null},yt===null?at.memoizedState=yt=e:yt=yt.next=e}return yt}function Kn(e,t){return typeof t=="function"?t(e):t}function Ka(e){var t=Li(),n=t.queue;if(n===null)throw Error(H(311));n.lastRenderedReducer=e;var i=Nt,a=i.baseQueue,l=n.pending;if(l!==null){if(a!==null){var u=a.next;a.next=l.next,l.next=u}i.baseQueue=a=l,n.pending=null}if(a!==null){a=a.next,i=i.baseState;var c=u=l=null,d=a;do{var p=d.lane;if((Ol&p)===p)c!==null&&(c=c.next={lane:0,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null}),i=d.eagerReducer===e?d.eagerState:e(i,d.action);else{var w={lane:p,action:d.action,eagerReducer:d.eagerReducer,eagerState:d.eagerState,next:null};c===null?(u=c=w,l=i):c=c.next=w,at.lanes|=p,Il|=p}d=d.next}while(d!==null&&d!==a);c===null?l=i:c.next=u,xn(i,t.memoizedState)||(Rn=!0),t.memoizedState=i,t.baseState=l,t.baseQueue=c,n.lastRenderedState=i}return[t.memoizedState,n.dispatch]}function qa(e){var t=Li(),n=t.queue;if(n===null)throw Error(H(311));n.lastRenderedReducer=e;var i=n.dispatch,a=n.pending,l=t.memoizedState;if(a!==null){n.pending=null;var u=a=a.next;do l=e(l,u.action),u=u.next;while(u!==a);xn(l,t.memoizedState)||(Rn=!0),t.memoizedState=l,t.baseQueue===null&&(t.baseState=l),n.lastRenderedState=l}return[l,i]}function lw(e,t,n){var i=t._getVersion;i=i(t._source);var a=t._workInProgressVersionPrimary;if(a!==null?e=a===i:(e=e.mutableReadLanes,(e=(Ol&e)===e)&&(t._workInProgressVersionPrimary=i,Io.push(t))),e)return n(t._source);throw Io.push(t),Error(H(350))}function D1(e,t,n,i){var a=Ft;if(a===null)throw Error(H(349));var l=t._getVersion,u=l(t._source),c=cl.current,d=c.useState(function(){return lw(a,t,n)}),p=d[1],w=d[0];d=yt;var _=e.memoizedState,E=_.refs,O=E.getSnapshot,k=_.source;_=_.subscribe;var b=at;return e.memoizedState={refs:E,source:t,subscribe:i},c.useEffect(function(){E.getSnapshot=n,E.setSnapshot=p;var x=l(t._source);if(!xn(u,x)){x=n(t._source),xn(w,x)||(p(x),x=Kr(b),a.mutableReadLanes|=x&a.pendingLanes),x=a.mutableReadLanes,a.entangledLanes|=x;for(var g=a.entanglements,y=x;0n?98:n,function(){e(!0)}),Ni(97<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=u.createElement(n,{is:i.is}):(e=u.createElement(n),n==="select"&&(u=e,i.multiple?u.multiple=!0:i.size&&(u.size=i.size))):e=u.createElementNS(e,n),e[Br]=t,e[Au]=i,z1(e,t,!1,!1),t.stateNode=e,u=yp(n,i),n){case"dialog":Ke("cancel",e),Ke("close",e),a=i;break;case"iframe":case"object":case"embed":Ke("load",e),a=i;break;case"video":case"audio":for(a=0;aWp&&(t.flags|=64,l=!0,Xa(i,!1),t.lanes=33554432)}else{if(!l)if(e=zu(u),e!==null){if(t.flags|=64,l=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Xa(i,!0),i.tail===null&&i.tailMode==="hidden"&&!u.alternate&&!Xn)return t=t.lastEffect=i.lastEffect,t!==null&&(t.nextEffect=null),null}else 2*Pt()-i.renderingStartTime>Wp&&n!==1073741824&&(t.flags|=64,l=!0,Xa(i,!1),t.lanes=33554432);i.isBackwards?(u.sibling=t.child,t.child=u):(n=i.last,n!==null?n.sibling=u:t.child=u,i.last=u)}return i.tail!==null?(n=i.tail,i.rendering=n,i.tail=n.sibling,i.lastEffect=t.lastEffect,i.renderingStartTime=Pt(),n.sibling=null,t=nt.current,rt(nt,l?t&1|2:t&1),n):null;case 23:case 24:return Mh(),e!==null&&e.memoizedState!==null!=(t.memoizedState!==null)&&i.mode!=="unstable-defer-without-hiding"&&(t.flags|=4),null}throw Error(H(156,t.tag))}function ZD(e){switch(e.tag){case 1:Xt(e.type)&&Lu();var t=e.flags;return t&4096?(e.flags=t&-4097|64,e):null;case 3:if(Bo(),qe(Yt),qe(It),Ch(),t=e.flags,(t&64)!==0)throw Error(H(285));return e.flags=t&-4097|64,e;case 5:return bh(e),null;case 13:return qe(nt),t=e.flags,t&4096?(e.flags=t&-4097|64,e):null;case 19:return qe(nt),null;case 4:return Bo(),null;case 10:return Eh(e),null;case 23:case 24:return Mh(),null;default:return null}}function Dh(e,t){try{var n="",i=t;do n+=IP(i),i=i.return;while(i);var a=n}catch(l){a=` -Error generating stack: `+l.message+` -`+l.stack}return{value:e,source:t,stack:a}}function Up(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var JD=typeof WeakMap=="function"?WeakMap:Map;function W1(e,t,n){n=Hr(-1,n),n.tag=3,n.payload={element:null};var i=t.value;return n.callback=function(){qu||(qu=!0,Hp=i),Up(e,t)},n}function H1(e,t,n){n=Hr(-1,n),n.tag=3;var i=e.type.getDerivedStateFromError;if(typeof i=="function"){var a=t.value;n.payload=function(){return Up(e,t),i(a)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(n.callback=function(){typeof i!="function"&&(qn===null?qn=new Set([this]):qn.add(this),Up(e,t));var u=t.stack;this.componentDidCatch(t.value,{componentStack:u!==null?u:""})}),n}var eI=typeof WeakSet=="function"?WeakSet:Set;function xw(e){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(n){Yr(e,n)}else t.current=null}function tI(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(t.flags&256&&e!==null){var n=e.memoizedProps,i=e.memoizedState;e=t.stateNode,t=e.getSnapshotBeforeUpdate(t.elementType===t.type?n:Fn(t.type,n),i),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:t.flags&256&&yh(t.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(H(163))}function nI(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{if((e.tag&3)===3){var i=e.create;e.destroy=i()}e=e.next}while(e!==t)}if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{var a=e;i=a.next,a=a.tag,(a&4)!==0&&(a&1)!==0&&(J1(n,e),cI(n,e)),e=i}while(e!==t)}return;case 1:e=n.stateNode,n.flags&4&&(t===null?e.componentDidMount():(i=n.elementType===n.type?t.memoizedProps:Fn(n.type,t.memoizedProps),e.componentDidUpdate(i,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),t=n.updateQueue,t!==null&&tw(n,t,e);return;case 3:if(t=n.updateQueue,t!==null){if(e=null,n.child!==null)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}tw(n,t,e)}return;case 5:e=n.stateNode,t===null&&n.flags&4&&m1(n.type,n.memoizedProps)&&e.focus();return;case 6:return;case 4:return;case 12:return;case 13:n.memoizedState===null&&(n=n.alternate,n!==null&&(n=n.memoizedState,n!==null&&(n=n.dehydrated,n!==null&&Yw(n))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(H(163))}function _w(e,t){for(var n=e;;){if(n.tag===5){var i=n.stateNode;if(t)i=i.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none";else{i=n.stateNode;var a=n.memoizedProps.style;a=a!=null&&a.hasOwnProperty("display")?a.display:null,i.style.display=Rw("display",a)}}else if(n.tag===6)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((n.tag!==23&&n.tag!==24||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function Ew(e,t){if(ki&&typeof ki.onCommitFiberUnmount=="function")try{ki.onCommitFiberUnmount(wh,t)}catch(l){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(e=t.updateQueue,e!==null&&(e=e.lastEffect,e!==null)){var n=e=e.next;do{var i=n,a=i.destroy;if(i=i.tag,a!==void 0)if((i&4)!==0)J1(t,n);else{i=t;try{a()}catch(l){Yr(i,l)}}n=n.next}while(n!==e)}break;case 1:if(xw(t),e=t.stateNode,typeof e.componentWillUnmount=="function")try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(l){Yr(t,l)}break;case 5:xw(t);break;case 4:V1(e,t)}}function Sw(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function bw(e){return e.tag===5||e.tag===3||e.tag===4}function Cw(e){e:{for(var t=e.return;t!==null;){if(bw(t))break e;t=t.return}throw Error(H(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var i=!1;break;case 3:t=t.containerInfo,i=!0;break;case 4:t=t.containerInfo,i=!0;break;default:throw Error(H(161))}n.flags&16&&(gl(t,""),n.flags&=-17);e:t:for(n=e;;){for(;n.sibling===null;){if(n.return===null||bw(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue t;n.child.return=n,n=n.child}if(!(n.flags&2)){n=n.stateNode;break e}}i?Bp(e,n,t):zp(e,n,t)}function Bp(e,t,n){var i=e.tag,a=i===5||i===6;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Iu));else if(i!==4&&(e=e.child,e!==null))for(Bp(e,t,n),e=e.sibling;e!==null;)Bp(e,t,n),e=e.sibling}function zp(e,t,n){var i=e.tag,a=i===5||i===6;if(a)e=a?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(zp(e,t,n),e=e.sibling;e!==null;)zp(e,t,n),e=e.sibling}function V1(e,t){for(var n=t,i=!1,a,l;;){if(!i){i=n.return;e:for(;;){if(i===null)throw Error(H(160));switch(a=i.stateNode,i.tag){case 5:l=!1;break e;case 3:a=a.containerInfo,l=!0;break e;case 4:a=a.containerInfo,l=!0;break e}i=i.return}i=!0}if(n.tag===5||n.tag===6){e:for(var u=e,c=n,d=c;;)if(Ew(u,d),d.child!==null&&d.tag!==4)d.child.return=d,d=d.child;else{if(d===c)break e;for(;d.sibling===null;){if(d.return===null||d.return===c)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}l?(u=a,c=n.stateNode,u.nodeType===8?u.parentNode.removeChild(c):u.removeChild(c)):a.removeChild(n.stateNode)}else if(n.tag===4){if(n.child!==null){a=n.stateNode.containerInfo,l=!0,n.child.return=n,n=n.child;continue}}else if(Ew(e,n),n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return,n.tag===4&&(i=!1)}n.sibling.return=n.return,n=n.sibling}}function op(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do(i.tag&3)===3&&(e=i.destroy,i.destroy=void 0,e!==void 0&&e()),i=i.next;while(i!==n)}return;case 1:return;case 5:if(n=t.stateNode,n!=null){i=t.memoizedProps;var a=e!==null?e.memoizedProps:i;e=t.type;var l=t.updateQueue;if(t.updateQueue=null,l!==null){for(n[Au]=i,e==="input"&&i.type==="radio"&&i.name!=null&&Aw(n,i),yp(e,a),t=yp(e,i),a=0;aa&&(a=u),n&=~l}if(n=a,n=Pt()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*iI(n/1960))-n,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}wt!==5&&(wt=2),d=Dh(d,c),E=u;do{switch(E.tag){case 3:l=d,E.flags|=4096,t&=-t,E.lanes|=t;var Y=W1(E,l,t);ew(E,Y);break e;case 1:l=d;var L=E.type,X=E.stateNode;if((E.flags&64)===0&&(typeof L.getDerivedStateFromError=="function"||X!==null&&typeof X.componentDidCatch=="function"&&(qn===null||!qn.has(X)))){E.flags|=4096,t&=-t,E.lanes|=t;var J=H1(E,l,t);ew(E,J);break e}}E=E.return}while(E!==null)}Z1(n)}catch(ie){t=ie,pt===n&&n!==null&&(pt=n=n.return);continue}break}while(1)}function G1(){var e=Ku.current;return Ku.current=Vu,e===null?Vu:e}function nl(e,t){var n=he;he|=16;var i=G1();Ft===e&&Dt===t||Lo(e,t);do try{aI();break}catch(a){X1(e,a)}while(1);if(_h(),he=n,Ku.current=i,pt!==null)throw Error(H(261));return Ft=null,Dt=0,wt}function aI(){for(;pt!==null;)Q1(pt)}function lI(){for(;pt!==null&&!$D();)Q1(pt)}function Q1(e){var t=ex(e.alternate,e,Pi);e.memoizedProps=e.pendingProps,t===null?Z1(e):pt=t,Ih.current=null}function Z1(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&2048)===0){if(n=QD(n,t,Pi),n!==null){pt=n;return}if(n=t,n.tag!==24&&n.tag!==23||n.memoizedState===null||(Pi&1073741824)!==0||(n.mode&4)===0){for(var i=0,a=n.child;a!==null;)i|=a.lanes|a.childLanes,a=a.sibling;n.childLanes=i}e!==null&&(e.flags&2048)===0&&(e.firstEffect===null&&(e.firstEffect=t.firstEffect),t.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1u&&(c=u,u=Y,Y=c),c=z0(y,Y),l=z0(y,u),c&&l&&(P.rangeCount!==1||P.anchorNode!==c.node||P.anchorOffset!==c.offset||P.focusNode!==l.node||P.focusOffset!==l.offset)&&(T=T.createRange(),T.setStart(c.node,c.offset),P.removeAllRanges(),Y>u?(P.addRange(T),P.extend(l.node,l.offset)):(T.setEnd(l.node,l.offset),P.addRange(T)))))),T=[],P=y;P=P.parentNode;)P.nodeType===1&&T.push({element:P,left:P.scrollLeft,top:P.scrollTop});for(typeof y.focus=="function"&&y.focus(),y=0;yPt()-Lh?Lo(e,0):Ah|=n),bn(e,t)}function pI(e,t){var n=e.stateNode;n!==null&&n.delete(t),t=0,t===0&&(t=e.mode,(t&2)===0?t=1:(t&4)===0?t=Uo()===99?1:2:(mr===0&&(mr=$o),t=wo(62914560&~mr),t===0&&(t=4194304))),n=an(),e=lc(e,t),e!==null&&(Ju(e,t,n),bn(e,n))}var ex;ex=function(e,t,n){var i=t.lanes;if(e!==null)if(e.memoizedProps!==t.pendingProps||Yt.current)Rn=!0;else if((n&i)!==0)Rn=(e.flags&16384)!==0;else{switch(Rn=!1,t.tag){case 3:pw(t),np();break;case 5:iw(t);break;case 1:Xt(t.type)&&xu(t);break;case 4:Ip(t,t.stateNode.containerInfo);break;case 10:i=t.memoizedProps.value;var a=t.type._context;rt(Mu,a._currentValue),a._currentValue=i;break;case 13:if(t.memoizedState!==null)return(n&t.child.childLanes)!==0?hw(e,t,n):(rt(nt,nt.current&1),t=vr(e,t,n),t!==null?t.sibling:null);rt(nt,nt.current&1);break;case 19:if(i=(n&t.childLanes)!==0,(e.flags&64)!==0){if(i)return ww(e,t,n);t.flags|=64}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),rt(nt,nt.current),i)break;return null;case 23:case 24:return t.lanes=0,rp(e,t,n)}return vr(e,t,n)}else Rn=!1;switch(t.lanes=0,t.tag){case 2:if(i=t.type,e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=Ro(t,It.current),Do(t,n),a=kh(null,t,i,e,a,n),t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,Xt(i)){var l=!0;xu(t)}else l=!1;t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,Sh(t);var u=i.getDerivedStateFromProps;typeof u=="function"&&Uu(t,i,u,e),a.updater=oc,t.stateNode=a,a._reactInternals=t,Dp(t,i,e,n),t=Fp(null,t,i,!0,l,n)}else t.tag=0,qt(null,t,a,n),t=t.child;return t;case 16:a=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,l=a._init,a=l(a._payload),t.type=a,l=t.tag=mI(a),e=Fn(a,e),l){case 0:t=Mp(null,t,a,e,n);break e;case 1:t=dw(null,t,a,e,n);break e;case 11:t=cw(null,t,a,e,n);break e;case 14:t=fw(null,t,a,Fn(a.type,e),i,n);break e}throw Error(H(306,a,""))}return t;case 0:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Fn(i,a),Mp(e,t,i,a,n);case 1:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Fn(i,a),dw(e,t,i,a,n);case 3:if(pw(t),i=t.updateQueue,e===null||i===null)throw Error(H(282));if(i=t.pendingProps,a=t.memoizedState,a=a!==null?a.element:null,C1(e,t),Cl(t,i,null,n),i=t.memoizedState.element,i===a)np(),t=vr(e,t,n);else{if(a=t.stateNode,(l=a.hydrate)&&(zr=Po(t.stateNode.containerInfo.firstChild),gr=t,l=Xn=!0),l){if(e=a.mutableSourceEagerHydrationData,e!=null)for(a=0;a{"use strict";function rx(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(rx)}catch(e){console.error(e)}}rx(),ix.exports=nx()});var kx=Be(Vo=>{"use strict";var Un=Ys(),xr=oe();function Je(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nLl;Ll++)Et[Ll]=Ll+1;var Et,Ll;Et[15]=0;var bI=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ox=Object.prototype.hasOwnProperty,ax={},lx={};function _x(e){return ox.call(lx,e)?!0:ox.call(ax,e)?!1:bI.test(e)?lx[e]=!0:(ax[e]=!0,!1)}function CI(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function TI(e,t,n,i){if(t===null||typeof t>"u"||CI(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ut(e,t,n,i,a,l,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=u}var St={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){St[e]=new Ut(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];St[t]=new Ut(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){St[e]=new Ut(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){St[e]=new Ut(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){St[e]=new Ut(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){St[e]=new Ut(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){St[e]=new Ut(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){St[e]=new Ut(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){St[e]=new Ut(e,5,!1,e.toLowerCase(),null,!1,!1)});var Zh=/[\-:]([a-z])/g;function Jh(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Zh,Jh);St[t]=new Ut(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Zh,Jh);St[t]=new Ut(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Zh,Jh);St[t]=new Ut(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){St[e]=new Ut(e,1,!1,e.toLowerCase(),null,!1,!1)});St.xlinkHref=new Ut("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){St[e]=new Ut(e,1,!1,e.toLowerCase(),null,!0,!0)});var kI=/["'&<>]/;function Mi(e){if(typeof e=="boolean"||typeof e=="number")return""+e;e=""+e;var t=kI.exec(e);if(t){var n="",i,a=0;for(i=t.index;ihc))throw Error(Je(301));if(e===Qn)if(pc=!0,e={action:n,next:null},ri===null&&(ri=new Map),n=ri.get(t),n===void 0)ri.set(t,e);else{for(t=n;t.next!==null;)t=t.next;t.next=e}}function jh(){}var Ri=null,II={readContext:function(e){var t=Ri.threadID;return Ul(e,t),e[t]},useContext:function(e){Fi();var t=Ri.threadID;return Ul(e,t),e[t]},useMemo:cx,useReducer:ux,useRef:function(e){Qn=Fi(),je=em();var t=je.memoizedState;return t===null?(e={current:e},je.memoizedState=e):t},useState:function(e){return ux(bx,e)},useLayoutEffect:function(){},useCallback:function(e,t){return cx(function(){return e},t)},useImperativeHandle:jh,useEffect:jh,useDebugValue:jh,useDeferredValue:function(e){return Fi(),e},useTransition:function(){return Fi(),[function(e){e()},!1]},useOpaqueIdentifier:function(){return(Ri.identifierPrefix||"")+"R:"+(Ri.uniqueID++).toString(36)},useMutableSource:function(e,t){return Fi(),t(e._source)}},fx={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function dx(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}var Cx={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},AI=Un({menuitem:!0},Cx),Rl={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},LI=["Webkit","ms","Moz","O"];Object.keys(Rl).forEach(function(e){LI.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Rl[t]=Rl[e]})});var MI=/([A-Z])/g,FI=/^ms-/,ni=xr.Children.toArray,$h=EI.ReactCurrentDispatcher,RI={listing:!0,pre:!0,textarea:!0},UI=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,px={},Wh={};function BI(e){if(e==null)return e;var t="";return xr.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}var zI=Object.prototype.hasOwnProperty,jI={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function hx(e,t){if(e===void 0)throw Error(Je(152,Fl(t)||"Component"))}function $I(e,t,n){function i(u,c){var d=c.prototype&&c.prototype.isReactComponent,p=SI(c,t,n,d),w=[],_=!1,E={isMounted:function(){return!1},enqueueForceUpdate:function(){if(w===null)return null},enqueueReplaceState:function(T,P){_=!0,w=[P]},enqueueSetState:function(T,P){if(w===null)return null;w.push(P)}};if(d){if(d=new c(u.props,p,E),typeof c.getDerivedStateFromProps=="function"){var O=c.getDerivedStateFromProps.call(null,u.props,d.state);O!=null&&(d.state=Un({},d.state,O))}}else if(Qn={},d=c(u.props,p,E),d=Ex(c,u.props,d,p),d==null||d.render==null){e=d,hx(e,c);return}if(d.props=u.props,d.context=p,d.updater=E,E=d.state,E===void 0&&(d.state=E=null),typeof d.UNSAFE_componentWillMount=="function"||typeof d.componentWillMount=="function")if(typeof d.componentWillMount=="function"&&typeof c.getDerivedStateFromProps!="function"&&d.componentWillMount(),typeof d.UNSAFE_componentWillMount=="function"&&typeof c.getDerivedStateFromProps!="function"&&d.UNSAFE_componentWillMount(),w.length){E=w;var k=_;if(w=null,_=!1,k&&E.length===1)d.state=E[0];else{O=k?E[0]:d.state;var b=!0;for(k=k?1:0;k=c))throw Error(Je(304));var d=new Uint16Array(c);for(d.set(u),Et=d,Et[0]=l+1,u=l;u=d.children.length){var p=d.footer;if(p!==""&&(this.previousWasTextNode=!1),this.stack.pop(),d.type==="select")this.currentSelectValue=null;else if(d.type!=null&&d.type.type!=null&&d.type.type.$$typeof===fc)this.popProvider(d.type);else if(d.type===dc){this.suspenseDepth--;var w=l.pop();if(u){u=!1;var _=d.fallbackFrame;if(!_)throw Error(Je(303));this.stack.push(_),l[this.suspenseDepth]+="";continue}else l[this.suspenseDepth]+=w}l[this.suspenseDepth]+=p}else{var E=d.children[d.childIndex++],O="";try{O+=this.render(E,d.context,d.domNamespace)}catch(k){throw k!=null&&typeof k.then=="function"?Error(Je(294)):k}finally{}l.length<=this.suspenseDepth&&l.push(""),l[this.suspenseDepth]+=O}}return l[0]}finally{$h.current=a,Ri=i,Sx()}},t.render=function(n,i,a){if(typeof n=="string"||typeof n=="number")return a=""+n,a===""?"":this.makeStaticMarkup?Mi(a):this.previousWasTextNode?""+Mi(a):(this.previousWasTextNode=!0,Mi(a));if(i=$I(n,i,this.threadID),n=i.child,i=i.context,n===null||n===!1)return"";if(!xr.isValidElement(n)){if(n!=null&&n.$$typeof!=null)throw a=n.$$typeof,Error(a===Hh?Je(257):Je(258,a.toString()));return n=ni(n),this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),""}var l=n.type;if(typeof l=="string")return this.renderDOM(n,i,a);switch(l){case wx:case yx:case Vh:case Kh:case Xh:case cc:return n=ni(n.props.children),this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),"";case dc:throw Error(Je(294));case vx:throw Error(Je(343))}if(typeof l=="object"&&l!==null)switch(l.$$typeof){case Yh:Qn={};var u=l.render(n.props,n.ref);return u=Ex(l.render,n.props,u,n.ref),u=ni(u),this.stack.push({type:null,domNamespace:a,children:u,childIndex:0,context:i,footer:""}),"";case Gh:return n=[xr.createElement(l.type,Un({ref:n.ref},n.props))],this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),"";case fc:return l=ni(n.props.children),a={type:n,domNamespace:a,children:l,childIndex:0,context:i,footer:""},this.pushProvider(n),this.stack.push(a),"";case qh:l=n.type,u=n.props;var c=this.threadID;return Ul(l,c),l=ni(u.children(l[c])),this.stack.push({type:n,domNamespace:a,children:l,childIndex:0,context:i,footer:""}),"";case gx:throw Error(Je(338));case Qh:return l=n.type,u=l._init,l=u(l._payload),n=[xr.createElement(l,Un({ref:n.ref},n.props))],this.stack.push({type:null,domNamespace:a,children:n,childIndex:0,context:i,footer:""}),""}throw Error(Je(130,l==null?l:typeof l,""))},t.renderDOM=function(n,i,a){var l=n.type.toLowerCase();if(a===fx.html&&dx(l),!px.hasOwnProperty(l)){if(!UI.test(l))throw Error(Je(65,l));px[l]=!0}var u=n.props;if(l==="input")u=Un({type:void 0},u,{defaultChecked:void 0,defaultValue:void 0,value:u.value!=null?u.value:u.defaultValue,checked:u.checked!=null?u.checked:u.defaultChecked});else if(l==="textarea"){var c=u.value;if(c==null){c=u.defaultValue;var d=u.children;if(d!=null){if(c!=null)throw Error(Je(92));if(Array.isArray(d)){if(!(1>=d.length))throw Error(Je(93));d=d[0]}c=""+d}c==null&&(c="")}u=Un({},u,{value:void 0,children:""+c})}else if(l==="select")this.currentSelectValue=u.value!=null?u.value:u.defaultValue,u=Un({},u,{value:void 0});else if(l==="option"){d=this.currentSelectValue;var p=BI(u.children);if(d!=null){var w=u.value!=null?u.value+"":p;if(c=!1,Array.isArray(d)){for(var _=0;_":(P+=">",c="");e:{if(d=u.dangerouslySetInnerHTML,d!=null){if(d.__html!=null){d=d.__html;break e}}else if(d=u.children,typeof d=="string"||typeof d=="number"){d=Mi(d);break e}d=null}return d!=null?(u=[],RI.hasOwnProperty(l)&&d.charAt(0)===` -`&&(P+=` -`),P+=d):u=ni(u.children),n=n.type,a=a==null||a==="http://www.w3.org/1999/xhtml"?dx(n):a==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":a,this.stack.push({domNamespace:a,type:l,children:u,childIndex:0,context:i,footer:c}),this.previousWasTextNode=!1,P},e}();Vo.renderToNodeStream=function(){throw Error(Je(207))};Vo.renderToStaticMarkup=function(e,t){e=new Tx(e,!0,t);try{return e.read(1/0)}finally{e.destroy()}};Vo.renderToStaticNodeStream=function(){throw Error(Je(208))};Vo.renderToString=function(e,t){e=new Tx(e,!1,t);try{return e.read(1/0)}finally{e.destroy()}};Vo.version="17.0.2"});var Nx=Be((UA,Ox)=>{"use strict";Ox.exports=kx()});var Dx=Be((BA,Px)=>{Px.exports={setup:function(e){"addEventListener"in window?e.handleEvent("DOMContentLoaded",e.handleMount):e.handleEvent("onload",e.handleMount)},teardown:function(e){e.removeEvent("DOMContentLoaded",e.handleMount),e.removeEvent("onload",e.handleMount)}}});var Ax=Be((zA,Ix)=>{Ix.exports={setup:function(e){e.handleEvent("ready",e.handleMount),e.handleEvent("pjax:end",e.handleMount),e.handleEvent("pjax:beforeReplace",e.handleUnmount)},teardown:function(e){e.removeEvent("ready",e.handleMount),e.removeEvent("pjax:end",e.handleMount),e.removeEvent("pjax:beforeReplace",e.handleUnmount)}}});var Mx=Be((jA,Lx)=>{Lx.exports={setup:function(e){e.handleEvent("turbolinks:load",e.handleMount),e.handleEvent("turbolinks:before-render",e.handleUnmount)},teardown:function(e){e.removeEvent("turbolinks:load",e.handleMount),e.removeEvent("turbolinks:before-render",e.handleUnmount)}}});var Rx=Be(($A,Fx)=>{Fx.exports={setup:function(e){Turbolinks.pagesCached(0),e.handleEvent("page:change",e.handleMount),e.handleEvent("page:receive",e.handleUnmount)},teardown:function(e){e.removeEvent("page:change",e.handleMount),e.removeEvent("page:receive",e.handleUnmount)}}});var Bx=Be((WA,Ux)=>{Ux.exports={setup:function(e){e.handleEvent(Turbolinks.EVENTS.CHANGE,e.handleMount),e.handleEvent(Turbolinks.EVENTS.BEFORE_UNLOAD,e.handleUnmount)},teardown:function(e){e.removeEvent(Turbolinks.EVENTS.CHANGE,e.handleMount),e.removeEvent(Turbolinks.EVENTS.BEFORE_UNLOAD,e.handleUnmount)}}});var Kx=Be((HA,Vx)=>{var zx=Dx(),jx=Ax(),$x=Mx(),Wx=Rx(),Hx=Bx();Vx.exports=function(e){e.handleEvent&&(typeof Turbolinks<"u"&&typeof Turbolinks.EVENTS<"u"&&Hx.teardown(e),$x.teardown(e),Wx.teardown(e),jx.teardown(e),zx.teardown(e)),"addEventListener"in window?(e.handleEvent=function(t,n){document.addEventListener(t,n)},e.removeEvent=function(t,n){document.removeEventListener(t,n)}):(e.handleEvent=function(t,n){window.attachEvent(t,n)},e.removeEvent=function(t,n){window.detachEvent(t,n)}),typeof Turbolinks<"u"&&Turbolinks.supported?typeof Turbolinks.EVENTS<"u"?Hx.setup(e):typeof Turbolinks.controller<"u"?$x.setup(e):Wx.setup(e):typeof $<"u"&&typeof $.pjax=="function"?jx.setup(e):zx.setup(e)}});var tm=Be((exports,module)=>{var topLevel=typeof window>"u"?exports:window;module.exports=function(className){var constructor;return constructor=topLevel[className],constructor||(constructor=eval(className)),constructor&&constructor.default&&(constructor=constructor.default),constructor}});var Yx=Be((VA,qx)=>{qx.exports=function(e){return function(t){var n=t.split("."),i=n.shift(),a=n,l=e("./"+i);return a.forEach(function(u){l=l[u]}),l.__esModule&&(l=l.default),l}}});var Gx=Be((KA,Xx)=>{var WI=tm(),HI=Yx();Xx.exports=function(e){var t=HI(e);return function(n){var i;try{i=t(n)}catch(a){try{i=WI(n)}catch(l){console.error(a),console.error(l)}}return i}}});var Jx=Be((qA,Zx)=>{var Qx=oe(),mc=zh(),VI=Nx(),KI=Kx(),qI=tm(),YI=Gx(),Tn={CLASS_NAME_ATTR:"data-react-class",PROPS_ATTR:"data-react-props",RENDER_ATTR:"data-hydrate",CACHE_ID_ATTR:"data-react-cache-id",TURBOLINKS_PERMANENT_ATTR:"data-turbolinks-permanent",jQuery:typeof window<"u"&&typeof window.jQuery<"u"&&window.jQuery,components:{},findDOMNodes:function(e){var t=Tn.CLASS_NAME_ATTR,n,i;switch(typeof e){case"undefined":n="["+t+"]",i=document;break;case"object":n="["+t+"]",i=e;break;case"string":n=e+"["+t+"], "+e+" ["+t+"]",i=document;break;default:break}return Tn.jQuery?Tn.jQuery(n,i):i.querySelectorAll(n)},getConstructor:qI,useContext:function(e){this.getConstructor=YI(e)},serverRender:function(e,t,n){var i=this.getConstructor(t),a=Qx.createElement(i,n);return VI[e](a)},mountComponents:function(e){for(var t=Tn,n=t.findDOMNodes(e),i=0;i{"use strict";var XI="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e_.exports=XI});var o_=Be((XA,i_)=>{"use strict";var GI=t_();function n_(){}function r_(){}r_.resetWarningCache=n_;i_.exports=function(){function e(i,a,l,u,c,d){if(d!==GI){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r_,resetWarningCache:n_};return n.PropTypes=n,n}});var et=Be((ZA,a_)=>{a_.exports=o_()();var GA,QA});var f_=Be((Yo,jl)=>{(function(){var e,t="4.17.21",n=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",l="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",c=500,d="__lodash_placeholder__",p=1,w=2,_=4,E=1,O=2,k=1,b=2,x=4,g=8,y=16,T=32,P=64,Y=128,L=256,X=512,J=30,ie="...",Ye=800,j=16,z=1,te=2,A=3,M=1/0,we=9007199254740991,We=17976931348623157e292,He=0/0,Ne=4294967295,ge=Ne-1,R=Ne>>>1,V=[["ary",Y],["bind",k],["bindKey",b],["curry",g],["curryRight",y],["flip",X],["partial",T],["partialRight",P],["rearg",L]],ae="[object Arguments]",de="[object Array]",ue="[object AsyncFunction]",le="[object Boolean]",ne="[object Date]",Q="[object DOMException]",ye="[object Error]",pe="[object Function]",Pe="[object GeneratorFunction]",ut="[object Map]",Nn="[object Number]",ts="[object Null]",rr="[object Object]",Fm="[object Promise]",U_="[object Proxy]",pa="[object RegExp]",Pn="[object Set]",ha="[object String]",ns="[object Symbol]",B_="[object Undefined]",ma="[object WeakMap]",z_="[object WeakSet]",ga="[object ArrayBuffer]",Qi="[object DataView]",Gc="[object Float32Array]",Qc="[object Float64Array]",Zc="[object Int8Array]",Jc="[object Int16Array]",ef="[object Int32Array]",tf="[object Uint8Array]",nf="[object Uint8ClampedArray]",rf="[object Uint16Array]",of="[object Uint32Array]",j_=/\b__p \+= '';/g,$_=/\b(__p \+=) '' \+/g,W_=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Rm=/&(?:amp|lt|gt|quot|#39);/g,Um=/[&<>"']/g,H_=RegExp(Rm.source),V_=RegExp(Um.source),K_=/<%-([\s\S]+?)%>/g,q_=/<%([\s\S]+?)%>/g,Bm=/<%=([\s\S]+?)%>/g,Y_=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,X_=/^\w*$/,G_=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,af=/[\\^$.*+?()[\]{}|]/g,Q_=RegExp(af.source),lf=/^\s+/,Z_=/\s/,J_=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,eE=/\{\n\/\* \[wrapped with (.+)\] \*/,tE=/,? & /,nE=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,rE=/[()=,{}\[\]\/\s]/,iE=/\\(\\)?/g,oE=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,zm=/\w*$/,aE=/^[-+]0x[0-9a-f]+$/i,lE=/^0b[01]+$/i,sE=/^\[object .+?Constructor\]$/,uE=/^0o[0-7]+$/i,cE=/^(?:0|[1-9]\d*)$/,fE=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,rs=/($^)/,dE=/['\n\r\u2028\u2029\\]/g,is="\\ud800-\\udfff",pE="\\u0300-\\u036f",hE="\\ufe20-\\ufe2f",mE="\\u20d0-\\u20ff",jm=pE+hE+mE,$m="\\u2700-\\u27bf",Wm="a-z\\xdf-\\xf6\\xf8-\\xff",gE="\\xac\\xb1\\xd7\\xf7",vE="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",yE="\\u2000-\\u206f",wE=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Hm="A-Z\\xc0-\\xd6\\xd8-\\xde",Vm="\\ufe0e\\ufe0f",Km=gE+vE+yE+wE,sf="['\u2019]",xE="["+is+"]",qm="["+Km+"]",os="["+jm+"]",Ym="\\d+",_E="["+$m+"]",Xm="["+Wm+"]",Gm="[^"+is+Km+Ym+$m+Wm+Hm+"]",uf="\\ud83c[\\udffb-\\udfff]",EE="(?:"+os+"|"+uf+")",Qm="[^"+is+"]",cf="(?:\\ud83c[\\udde6-\\uddff]){2}",ff="[\\ud800-\\udbff][\\udc00-\\udfff]",Zi="["+Hm+"]",Zm="\\u200d",Jm="(?:"+Xm+"|"+Gm+")",SE="(?:"+Zi+"|"+Gm+")",eg="(?:"+sf+"(?:d|ll|m|re|s|t|ve))?",tg="(?:"+sf+"(?:D|LL|M|RE|S|T|VE))?",ng=EE+"?",rg="["+Vm+"]?",bE="(?:"+Zm+"(?:"+[Qm,cf,ff].join("|")+")"+rg+ng+")*",CE="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",TE="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",ig=rg+ng+bE,kE="(?:"+[_E,cf,ff].join("|")+")"+ig,OE="(?:"+[Qm+os+"?",os,cf,ff,xE].join("|")+")",NE=RegExp(sf,"g"),PE=RegExp(os,"g"),df=RegExp(uf+"(?="+uf+")|"+OE+ig,"g"),DE=RegExp([Zi+"?"+Xm+"+"+eg+"(?="+[qm,Zi,"$"].join("|")+")",SE+"+"+tg+"(?="+[qm,Zi+Jm,"$"].join("|")+")",Zi+"?"+Jm+"+"+eg,Zi+"+"+tg,TE,CE,Ym,kE].join("|"),"g"),IE=RegExp("["+Zm+is+jm+Vm+"]"),AE=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,LE=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ME=-1,Ve={};Ve[Gc]=Ve[Qc]=Ve[Zc]=Ve[Jc]=Ve[ef]=Ve[tf]=Ve[nf]=Ve[rf]=Ve[of]=!0,Ve[ae]=Ve[de]=Ve[ga]=Ve[le]=Ve[Qi]=Ve[ne]=Ve[ye]=Ve[pe]=Ve[ut]=Ve[Nn]=Ve[rr]=Ve[pa]=Ve[Pn]=Ve[ha]=Ve[ma]=!1;var Ue={};Ue[ae]=Ue[de]=Ue[ga]=Ue[Qi]=Ue[le]=Ue[ne]=Ue[Gc]=Ue[Qc]=Ue[Zc]=Ue[Jc]=Ue[ef]=Ue[ut]=Ue[Nn]=Ue[rr]=Ue[pa]=Ue[Pn]=Ue[ha]=Ue[ns]=Ue[tf]=Ue[nf]=Ue[rf]=Ue[of]=!0,Ue[ye]=Ue[pe]=Ue[ma]=!1;var FE={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},RE={"&":"&","<":"<",">":">",'"':""","'":"'"},UE={"&":"&","<":"<",">":">",""":'"',"'":"'"},BE={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},zE=parseFloat,jE=parseInt,og=typeof global=="object"&&global&&global.Object===Object&&global,$E=typeof self=="object"&&self&&self.Object===Object&&self,ht=og||$E||Function("return this")(),pf=typeof Yo=="object"&&Yo&&!Yo.nodeType&&Yo,fi=pf&&typeof jl=="object"&&jl&&!jl.nodeType&&jl,ag=fi&&fi.exports===pf,hf=ag&&og.process,cn=function(){try{var N=fi&&fi.require&&fi.require("util").types;return N||hf&&hf.binding&&hf.binding("util")}catch(F){}}(),lg=cn&&cn.isArrayBuffer,sg=cn&&cn.isDate,ug=cn&&cn.isMap,cg=cn&&cn.isRegExp,fg=cn&&cn.isSet,dg=cn&&cn.isTypedArray;function Jt(N,F,I){switch(I.length){case 0:return N.call(F);case 1:return N.call(F,I[0]);case 2:return N.call(F,I[0],I[1]);case 3:return N.call(F,I[0],I[1],I[2])}return N.apply(F,I)}function WE(N,F,I,Z){for(var me=-1,De=N==null?0:N.length;++me-1}function mf(N,F,I){for(var Z=-1,me=N==null?0:N.length;++Z-1;);return I}function xg(N,F){for(var I=N.length;I--&&Ji(F,N[I],0)>-1;);return I}function ZE(N,F){for(var I=N.length,Z=0;I--;)N[I]===F&&++Z;return Z}var JE=wf(FE),eS=wf(RE);function tS(N){return"\\"+BE[N]}function nS(N,F){return N==null?e:N[F]}function eo(N){return IE.test(N)}function rS(N){return AE.test(N)}function iS(N){for(var F,I=[];!(F=N.next()).done;)I.push(F.value);return I}function Sf(N){var F=-1,I=Array(N.size);return N.forEach(function(Z,me){I[++F]=[me,Z]}),I}function _g(N,F){return function(I){return N(F(I))}}function kr(N,F){for(var I=-1,Z=N.length,me=0,De=[];++I-1}function VS(r,o){var s=this.__data__,f=Ss(s,r);return f<0?(++this.size,s.push([r,o])):s[f][1]=o,this}ir.prototype.clear=jS,ir.prototype.delete=$S,ir.prototype.get=WS,ir.prototype.has=HS,ir.prototype.set=VS;function or(r){var o=-1,s=r==null?0:r.length;for(this.clear();++o=o?r:o)),r}function hn(r,o,s,f,h,v){var S,C=o&p,D=o&w,U=o&_;if(s&&(S=h?s(r,f,h,v):s(r)),S!==e)return S;if(!Ze(r))return r;var B=ve(r);if(B){if(S=Xb(r),!C)return $t(r,S)}else{var W=kt(r),q=W==pe||W==Pe;if(Lr(r))return rv(r,C);if(W==rr||W==ae||q&&!h){if(S=D||q?{}:Ev(r),!C)return D?Ub(r,lb(S,r)):Rb(r,Ag(S,r))}else{if(!Ue[W])return h?r:{};S=Gb(r,W,C)}}v||(v=new In);var re=v.get(r);if(re)return re;v.set(r,S),Qv(r)?r.forEach(function(fe){S.add(hn(fe,o,s,fe,r,v))}):Xv(r)&&r.forEach(function(fe,Se){S.set(Se,hn(fe,o,s,Se,r,v))});var ce=U?D?Xf:Yf:D?Ht:mt,_e=B?e:ce(r);return fn(_e||r,function(fe,Se){_e&&(Se=fe,fe=r[Se]),Sa(S,Se,hn(fe,o,s,Se,r,v))}),S}function sb(r){var o=mt(r);return function(s){return Lg(s,r,o)}}function Lg(r,o,s){var f=s.length;if(r==null)return!f;for(r=Fe(r);f--;){var h=s[f],v=o[h],S=r[h];if(S===e&&!(h in r)||!v(S))return!1}return!0}function Mg(r,o,s){if(typeof r!="function")throw new dn(a);return Pa(function(){r.apply(e,s)},o)}function ba(r,o,s,f){var h=-1,v=as,S=!0,C=r.length,D=[],U=o.length;if(!C)return D;s&&(o=Xe(o,en(s))),f?(v=mf,S=!1):o.length>=n&&(v=va,S=!1,o=new hi(o));e:for(;++hh?0:h+s),f=f===e||f>h?h:xe(f),f<0&&(f+=h),f=s>f?0:Jv(f);s0&&s(C)?o>1?vt(C,o-1,s,f,h):Tr(h,C):f||(h[h.length]=C)}return h}var Pf=uv(),Ug=uv(!0);function zn(r,o){return r&&Pf(r,o,mt)}function Df(r,o){return r&&Ug(r,o,mt)}function Cs(r,o){return Cr(o,function(s){return cr(r[s])})}function gi(r,o){o=Ir(o,r);for(var s=0,f=o.length;r!=null&&so}function fb(r,o){return r!=null&&Me.call(r,o)}function db(r,o){return r!=null&&o in Fe(r)}function pb(r,o,s){return r>=Tt(o,s)&&r=120&&B.length>=120)?new hi(S&&B):e}B=r[0];var W=-1,q=C[0];e:for(;++W-1;)C!==r&&gs.call(C,D,1),gs.call(r,D,1);return r}function Xg(r,o){for(var s=r?o.length:0,f=s-1;s--;){var h=o[s];if(s==f||h!==v){var v=h;ur(h)?gs.call(r,h,1):jf(r,h)}}return r}function Uf(r,o){return r+ws(Ng()*(o-r+1))}function Tb(r,o,s,f){for(var h=-1,v=ft(ys((o-r)/(s||1)),0),S=I(v);v--;)S[f?v:++h]=r,r+=s;return S}function Bf(r,o){var s="";if(!r||o<1||o>we)return s;do o%2&&(s+=r),o=ws(o/2),o&&(r+=r);while(o);return s}function Ee(r,o){return nd(Cv(r,o,Vt),r+"")}function kb(r){return Ig(co(r))}function Ob(r,o){var s=co(r);return Fs(s,mi(o,0,s.length))}function ka(r,o,s,f){if(!Ze(r))return r;o=Ir(o,r);for(var h=-1,v=o.length,S=v-1,C=r;C!=null&&++hh?0:h+o),s=s>h?h:s,s<0&&(s+=h),h=o>s?0:s-o>>>0,o>>>=0;for(var v=I(h);++f>>1,S=r[v];S!==null&&!nn(S)&&(s?S<=o:S=n){var U=o?null:$b(r);if(U)return ss(U);S=!1,h=va,D=new hi}else D=o?[]:C;e:for(;++f=f?r:mn(r,o,s)}var nv=wS||function(r){return ht.clearTimeout(r)};function rv(r,o){if(o)return r.slice();var s=r.length,f=bg?bg(s):new r.constructor(s);return r.copy(f),f}function Vf(r){var o=new r.constructor(r.byteLength);return new hs(o).set(new hs(r)),o}function Ab(r,o){var s=o?Vf(r.buffer):r.buffer;return new r.constructor(s,r.byteOffset,r.byteLength)}function Lb(r){var o=new r.constructor(r.source,zm.exec(r));return o.lastIndex=r.lastIndex,o}function Mb(r){return Ea?Fe(Ea.call(r)):{}}function iv(r,o){var s=o?Vf(r.buffer):r.buffer;return new r.constructor(s,r.byteOffset,r.length)}function ov(r,o){if(r!==o){var s=r!==e,f=r===null,h=r===r,v=nn(r),S=o!==e,C=o===null,D=o===o,U=nn(o);if(!C&&!U&&!v&&r>o||v&&S&&D&&!C&&!U||f&&S&&D||!s&&D||!h)return 1;if(!f&&!v&&!U&&r=C)return D;var U=s[f];return D*(U=="desc"?-1:1)}}return r.index-o.index}function av(r,o,s,f){for(var h=-1,v=r.length,S=s.length,C=-1,D=o.length,U=ft(v-S,0),B=I(D+U),W=!f;++C1?s[h-1]:e,S=h>2?s[2]:e;for(v=r.length>3&&typeof v=="function"?(h--,v):e,S&&Lt(s[0],s[1],S)&&(v=h<3?e:v,h=1),o=Fe(o);++f-1?h[v?o[S]:S]:e}}function dv(r){return sr(function(o){var s=o.length,f=s,h=pn.prototype.thru;for(r&&o.reverse();f--;){var v=o[f];if(typeof v!="function")throw new dn(a);if(h&&!S&&Ls(v)=="wrapper")var S=new pn([],!0)}for(f=S?f:s;++f1&&Te.reverse(),B&&DC))return!1;var U=v.get(r),B=v.get(o);if(U&&B)return U==o&&B==r;var W=-1,q=!0,re=s&O?new hi:e;for(v.set(r,o),v.set(o,r);++W1?"& ":"")+o[f],o=o.join(s>2?", ":" "),r.replace(J_,`{ -/* [wrapped with `+o+`] */ -`)}function Zb(r){return ve(r)||wi(r)||!!(kg&&r&&r[kg])}function ur(r,o){var s=typeof r;return o=o==null?we:o,!!o&&(s=="number"||s!="symbol"&&cE.test(r))&&r>-1&&r%1==0&&r0){if(++o>=Ye)return arguments[0]}else o=0;return r.apply(e,arguments)}}function Fs(r,o){var s=-1,f=r.length,h=f-1;for(o=o===e?f:o;++s1?r[o-1]:e;return s=typeof s=="function"?(r.pop(),s):e,Rv(r,s)});function Uv(r){var o=m(r);return o.__chain__=!0,o}function uT(r,o){return o(r),r}function Rs(r,o){return o(r)}var cT=sr(function(r){var o=r.length,s=o?r[0]:0,f=this.__wrapped__,h=function(v){return Nf(v,r)};return o>1||this.__actions__.length||!(f instanceof be)||!ur(s)?this.thru(h):(f=f.slice(s,+s+(o?1:0)),f.__actions__.push({func:Rs,args:[h],thisArg:e}),new pn(f,this.__chain__).thru(function(v){return o&&!v.length&&v.push(e),v}))});function fT(){return Uv(this)}function dT(){return new pn(this.value(),this.__chain__)}function pT(){this.__values__===e&&(this.__values__=Zv(this.value()));var r=this.__index__>=this.__values__.length,o=r?e:this.__values__[this.__index__++];return{done:r,value:o}}function hT(){return this}function mT(r){for(var o,s=this;s instanceof Es;){var f=Dv(s);f.__index__=0,f.__values__=e,o?h.__wrapped__=f:o=f;var h=f;s=s.__wrapped__}return h.__wrapped__=r,o}function gT(){var r=this.__wrapped__;if(r instanceof be){var o=r;return this.__actions__.length&&(o=new be(this)),o=o.reverse(),o.__actions__.push({func:Rs,args:[rd],thisArg:e}),new pn(o,this.__chain__)}return this.thru(rd)}function vT(){return ev(this.__wrapped__,this.__actions__)}var yT=Ns(function(r,o,s){Me.call(r,s)?++r[s]:ar(r,s,1)});function wT(r,o,s){var f=ve(r)?pg:ub;return s&&Lt(r,o,s)&&(o=e),f(r,se(o,3))}function xT(r,o){var s=ve(r)?Cr:Rg;return s(r,se(o,3))}var _T=fv(Iv),ET=fv(Av);function ST(r,o){return vt(Us(r,o),1)}function bT(r,o){return vt(Us(r,o),M)}function CT(r,o,s){return s=s===e?1:xe(s),vt(Us(r,o),s)}function Bv(r,o){var s=ve(r)?fn:Pr;return s(r,se(o,3))}function zv(r,o){var s=ve(r)?HE:Fg;return s(r,se(o,3))}var TT=Ns(function(r,o,s){Me.call(r,s)?r[s].push(o):ar(r,s,[o])});function kT(r,o,s,f){r=Wt(r)?r:co(r),s=s&&!f?xe(s):0;var h=r.length;return s<0&&(s=ft(h+s,0)),Ws(r)?s<=h&&r.indexOf(o,s)>-1:!!h&&Ji(r,o,s)>-1}var OT=Ee(function(r,o,s){var f=-1,h=typeof o=="function",v=Wt(r)?I(r.length):[];return Pr(r,function(S){v[++f]=h?Jt(o,S,s):Ca(S,o,s)}),v}),NT=Ns(function(r,o,s){ar(r,s,o)});function Us(r,o){var s=ve(r)?Xe:Wg;return s(r,se(o,3))}function PT(r,o,s,f){return r==null?[]:(ve(o)||(o=o==null?[]:[o]),s=f?e:s,ve(s)||(s=s==null?[]:[s]),qg(r,o,s))}var DT=Ns(function(r,o,s){r[s?0:1].push(o)},function(){return[[],[]]});function IT(r,o,s){var f=ve(r)?gf:vg,h=arguments.length<3;return f(r,se(o,4),s,h,Pr)}function AT(r,o,s){var f=ve(r)?VE:vg,h=arguments.length<3;return f(r,se(o,4),s,h,Fg)}function LT(r,o){var s=ve(r)?Cr:Rg;return s(r,js(se(o,3)))}function MT(r){var o=ve(r)?Ig:kb;return o(r)}function FT(r,o,s){(s?Lt(r,o,s):o===e)?o=1:o=xe(o);var f=ve(r)?ib:Ob;return f(r,o)}function RT(r){var o=ve(r)?ob:Pb;return o(r)}function UT(r){if(r==null)return 0;if(Wt(r))return Ws(r)?to(r):r.length;var o=kt(r);return o==ut||o==Pn?r.size:Mf(r).length}function BT(r,o,s){var f=ve(r)?vf:Db;return s&&Lt(r,o,s)&&(o=e),f(r,se(o,3))}var zT=Ee(function(r,o){if(r==null)return[];var s=o.length;return s>1&&Lt(r,o[0],o[1])?o=[]:s>2&&Lt(o[0],o[1],o[2])&&(o=[o[0]]),qg(r,vt(o,1),[])}),Bs=xS||function(){return ht.Date.now()};function jT(r,o){if(typeof o!="function")throw new dn(a);return r=xe(r),function(){if(--r<1)return o.apply(this,arguments)}}function jv(r,o,s){return o=s?e:o,o=r&&o==null?r.length:o,lr(r,Y,e,e,e,e,o)}function $v(r,o){var s;if(typeof o!="function")throw new dn(a);return r=xe(r),function(){return--r>0&&(s=o.apply(this,arguments)),r<=1&&(o=e),s}}var od=Ee(function(r,o,s){var f=k;if(s.length){var h=kr(s,so(od));f|=T}return lr(r,f,o,s,h)}),Wv=Ee(function(r,o,s){var f=k|b;if(s.length){var h=kr(s,so(Wv));f|=T}return lr(o,f,r,s,h)});function Hv(r,o,s){o=s?e:o;var f=lr(r,g,e,e,e,e,e,o);return f.placeholder=Hv.placeholder,f}function Vv(r,o,s){o=s?e:o;var f=lr(r,y,e,e,e,e,e,o);return f.placeholder=Vv.placeholder,f}function Kv(r,o,s){var f,h,v,S,C,D,U=0,B=!1,W=!1,q=!0;if(typeof r!="function")throw new dn(a);o=vn(o)||0,Ze(s)&&(B=!!s.leading,W="maxWait"in s,v=W?ft(vn(s.maxWait)||0,o):v,q="trailing"in s?!!s.trailing:q);function re(ot){var Ln=f,dr=h;return f=h=e,U=ot,S=r.apply(dr,Ln),S}function ce(ot){return U=ot,C=Pa(Se,o),B?re(ot):S}function _e(ot){var Ln=ot-D,dr=ot-U,fy=o-Ln;return W?Tt(fy,v-dr):fy}function fe(ot){var Ln=ot-D,dr=ot-U;return D===e||Ln>=o||Ln<0||W&&dr>=v}function Se(){var ot=Bs();if(fe(ot))return Te(ot);C=Pa(Se,_e(ot))}function Te(ot){return C=e,q&&f?re(ot):(f=h=e,S)}function rn(){C!==e&&nv(C),U=0,f=D=h=C=e}function Mt(){return C===e?S:Te(Bs())}function on(){var ot=Bs(),Ln=fe(ot);if(f=arguments,h=this,D=ot,Ln){if(C===e)return ce(D);if(W)return nv(C),C=Pa(Se,o),re(D)}return C===e&&(C=Pa(Se,o)),S}return on.cancel=rn,on.flush=Mt,on}var $T=Ee(function(r,o){return Mg(r,1,o)}),WT=Ee(function(r,o,s){return Mg(r,vn(o)||0,s)});function HT(r){return lr(r,X)}function zs(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new dn(a);var s=function(){var f=arguments,h=o?o.apply(this,f):f[0],v=s.cache;if(v.has(h))return v.get(h);var S=r.apply(this,f);return s.cache=v.set(h,S)||v,S};return s.cache=new(zs.Cache||or),s}zs.Cache=or;function js(r){if(typeof r!="function")throw new dn(a);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function VT(r){return $v(2,r)}var KT=Ib(function(r,o){o=o.length==1&&ve(o[0])?Xe(o[0],en(se())):Xe(vt(o,1),en(se()));var s=o.length;return Ee(function(f){for(var h=-1,v=Tt(f.length,s);++h=o}),wi=zg(function(){return arguments}())?zg:function(r){return tt(r)&&Me.call(r,"callee")&&!Tg.call(r,"callee")},ve=I.isArray,lk=lg?en(lg):mb;function Wt(r){return r!=null&&$s(r.length)&&!cr(r)}function it(r){return tt(r)&&Wt(r)}function sk(r){return r===!0||r===!1||tt(r)&&At(r)==le}var Lr=ES||vd,uk=sg?en(sg):gb;function ck(r){return tt(r)&&r.nodeType===1&&!Da(r)}function fk(r){if(r==null)return!0;if(Wt(r)&&(ve(r)||typeof r=="string"||typeof r.splice=="function"||Lr(r)||uo(r)||wi(r)))return!r.length;var o=kt(r);if(o==ut||o==Pn)return!r.size;if(Na(r))return!Mf(r).length;for(var s in r)if(Me.call(r,s))return!1;return!0}function dk(r,o){return Ta(r,o)}function pk(r,o,s){s=typeof s=="function"?s:e;var f=s?s(r,o):e;return f===e?Ta(r,o,e,s):!!f}function ld(r){if(!tt(r))return!1;var o=At(r);return o==ye||o==Q||typeof r.message=="string"&&typeof r.name=="string"&&!Da(r)}function hk(r){return typeof r=="number"&&Og(r)}function cr(r){if(!Ze(r))return!1;var o=At(r);return o==pe||o==Pe||o==ue||o==U_}function Yv(r){return typeof r=="number"&&r==xe(r)}function $s(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=we}function Ze(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function tt(r){return r!=null&&typeof r=="object"}var Xv=ug?en(ug):yb;function mk(r,o){return r===o||Lf(r,o,Qf(o))}function gk(r,o,s){return s=typeof s=="function"?s:e,Lf(r,o,Qf(o),s)}function vk(r){return Gv(r)&&r!=+r}function yk(r){if(tC(r))throw new me(i);return jg(r)}function wk(r){return r===null}function xk(r){return r==null}function Gv(r){return typeof r=="number"||tt(r)&&At(r)==Nn}function Da(r){if(!tt(r)||At(r)!=rr)return!1;var o=ms(r);if(o===null)return!0;var s=Me.call(o,"constructor")&&o.constructor;return typeof s=="function"&&s instanceof s&&fs.call(s)==gS}var sd=cg?en(cg):wb;function _k(r){return Yv(r)&&r>=-we&&r<=we}var Qv=fg?en(fg):xb;function Ws(r){return typeof r=="string"||!ve(r)&&tt(r)&&At(r)==ha}function nn(r){return typeof r=="symbol"||tt(r)&&At(r)==ns}var uo=dg?en(dg):_b;function Ek(r){return r===e}function Sk(r){return tt(r)&&kt(r)==ma}function bk(r){return tt(r)&&At(r)==z_}var Ck=As(Ff),Tk=As(function(r,o){return r<=o});function Zv(r){if(!r)return[];if(Wt(r))return Ws(r)?Dn(r):$t(r);if(ya&&r[ya])return iS(r[ya]());var o=kt(r),s=o==ut?Sf:o==Pn?ss:co;return s(r)}function fr(r){if(!r)return r===0?r:0;if(r=vn(r),r===M||r===-M){var o=r<0?-1:1;return o*We}return r===r?r:0}function xe(r){var o=fr(r),s=o%1;return o===o?s?o-s:o:0}function Jv(r){return r?mi(xe(r),0,Ne):0}function vn(r){if(typeof r=="number")return r;if(nn(r))return He;if(Ze(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=Ze(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=yg(r);var s=lE.test(r);return s||uE.test(r)?jE(r.slice(2),s?2:8):aE.test(r)?He:+r}function ey(r){return jn(r,Ht(r))}function kk(r){return r?mi(xe(r),-we,we):r===0?r:0}function Ie(r){return r==null?"":tn(r)}var Ok=ao(function(r,o){if(Na(o)||Wt(o)){jn(o,mt(o),r);return}for(var s in o)Me.call(o,s)&&Sa(r,s,o[s])}),ty=ao(function(r,o){jn(o,Ht(o),r)}),Hs=ao(function(r,o,s,f){jn(o,Ht(o),r,f)}),Nk=ao(function(r,o,s,f){jn(o,mt(o),r,f)}),Pk=sr(Nf);function Dk(r,o){var s=oo(r);return o==null?s:Ag(s,o)}var Ik=Ee(function(r,o){r=Fe(r);var s=-1,f=o.length,h=f>2?o[2]:e;for(h&&Lt(o[0],o[1],h)&&(f=1);++s1),v}),jn(r,Xf(r),s),f&&(s=hn(s,p|w|_,Wb));for(var h=o.length;h--;)jf(s,o[h]);return s});function Gk(r,o){return ry(r,js(se(o)))}var Qk=sr(function(r,o){return r==null?{}:bb(r,o)});function ry(r,o){if(r==null)return{};var s=Xe(Xf(r),function(f){return[f]});return o=se(o),Yg(r,s,function(f,h){return o(f,h[0])})}function Zk(r,o,s){o=Ir(o,r);var f=-1,h=o.length;for(h||(h=1,r=e);++fo){var f=r;r=o,o=f}if(s||r%1||o%1){var h=Ng();return Tt(r+h*(o-r+zE("1e-"+((h+"").length-1))),o)}return Uf(r,o)}var uO=lo(function(r,o,s){return o=o.toLowerCase(),r+(s?ay(o):o)});function ay(r){return fd(Ie(r).toLowerCase())}function ly(r){return r=Ie(r),r&&r.replace(fE,JE).replace(PE,"")}function cO(r,o,s){r=Ie(r),o=tn(o);var f=r.length;s=s===e?f:mi(xe(s),0,f);var h=s;return s-=o.length,s>=0&&r.slice(s,h)==o}function fO(r){return r=Ie(r),r&&V_.test(r)?r.replace(Um,eS):r}function dO(r){return r=Ie(r),r&&Q_.test(r)?r.replace(af,"\\$&"):r}var pO=lo(function(r,o,s){return r+(s?"-":"")+o.toLowerCase()}),hO=lo(function(r,o,s){return r+(s?" ":"")+o.toLowerCase()}),mO=cv("toLowerCase");function gO(r,o,s){r=Ie(r),o=xe(o);var f=o?to(r):0;if(!o||f>=o)return r;var h=(o-f)/2;return Is(ws(h),s)+r+Is(ys(h),s)}function vO(r,o,s){r=Ie(r),o=xe(o);var f=o?to(r):0;return o&&f>>0,s?(r=Ie(r),r&&(typeof o=="string"||o!=null&&!sd(o))&&(o=tn(o),!o&&eo(r))?Ar(Dn(r),0,s):r.split(o,s)):[]}var bO=lo(function(r,o,s){return r+(s?" ":"")+fd(o)});function CO(r,o,s){return r=Ie(r),s=s==null?0:mi(xe(s),0,r.length),o=tn(o),r.slice(s,s+o.length)==o}function TO(r,o,s){var f=m.templateSettings;s&&Lt(r,o,s)&&(o=e),r=Ie(r),o=Hs({},o,f,vv);var h=Hs({},o.imports,f.imports,vv),v=mt(h),S=Ef(h,v),C,D,U=0,B=o.interpolate||rs,W="__p += '",q=bf((o.escape||rs).source+"|"+B.source+"|"+(B===Bm?oE:rs).source+"|"+(o.evaluate||rs).source+"|$","g"),re="//# sourceURL="+(Me.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++ME+"]")+` -`;r.replace(q,function(fe,Se,Te,rn,Mt,on){return Te||(Te=rn),W+=r.slice(U,on).replace(dE,tS),Se&&(C=!0,W+=`' + +`)}function FC(r){return ve(r)||hi(r)||!!(om&&r&&r[om])}function or(r,o){var s=typeof r;return o=o==null?we:o,!!o&&(s=="number"||s!="symbol"&&Y_.test(r))&&r>-1&&r%1==0&&r0){if(++o>=ke)return arguments[0]}else o=0;return r.apply(e,arguments)}}function ws(r,o){var s=-1,f=r.length,h=f-1;for(o=o===e?f:o;++s1?r[o-1]:e;return s=typeof s=="function"?(r.pop(),s):e,gv(r,s)});function mv(r){var o=g(r);return o.__chain__=!0,o}function qb(r,o){return o(r),r}function xs(r,o){return o(r)}var Yb=ir(function(r){var o=r.length,s=o?r[0]:0,f=this.__wrapped__,h=function(v){return Xc(v,r)};return o>1||this.__actions__.length||!(f instanceof Ce)||!or(s)?this.thru(h):(f=f.slice(s,+s+(o?1:0)),f.__actions__.push({func:xs,args:[h],thisArg:e}),new dn(f,this.__chain__).thru(function(v){return o&&!v.length&&v.push(e),v}))});function Xb(){return mv(this)}function Gb(){return new dn(this.value(),this.__chain__)}function Qb(){this.__values__===e&&(this.__values__=Nv(this.value()));var r=this.__index__>=this.__values__.length,o=r?e:this.__values__[this.__index__++];return{done:r,value:o}}function Zb(){return this}function Jb(r){for(var o,s=this;s instanceof os;){var f=uv(s);f.__index__=0,f.__values__=e,o?h.__wrapped__=f:o=f;var h=f;s=s.__wrapped__}return h.__wrapped__=r,o}function eT(){var r=this.__wrapped__;if(r instanceof Ce){var o=r;return this.__actions__.length&&(o=new Ce(this)),o=o.reverse(),o.__actions__.push({func:xs,args:[Cf],thisArg:e}),new dn(o,this.__chain__)}return this.thru(Cf)}function tT(){return Am(this.__wrapped__,this.__actions__)}var nT=ds(function(r,o,s){Fe.call(r,s)?++r[s]:nr(r,s,1)});function rT(r,o,s){var f=ve(r)?Vg:qS;return s&&It(r,o,s)&&(o=e),f(r,se(o,3))}function iT(r,o){var s=ve(r)?xr:gm;return s(r,se(o,3))}var oT=Wm(cv),aT=Wm(fv);function lT(r,o){return mt(_s(r,o),1)}function sT(r,o){return mt(_s(r,o),L)}function uT(r,o,s){return s=s===e?1:xe(s),mt(_s(r,o),s)}function vv(r,o){var s=ve(r)?cn:br;return s(r,se(o,3))}function yv(r,o){var s=ve(r)?PE:hm;return s(r,se(o,3))}var cT=ds(function(r,o,s){Fe.call(r,s)?r[s].push(o):nr(r,s,[o])});function fT(r,o,s,f){r=$t(r)?r:Ji(r),s=s&&!f?xe(s):0;var h=r.length;return s<0&&(s=ct(h+s,0)),Ts(r)?s<=h&&r.indexOf(o,s)>-1:!!h&&ji(r,o,s)>-1}var dT=Ee(function(r,o,s){var f=-1,h=typeof o=="function",v=$t(r)?A(r.length):[];return br(r,function(S){v[++f]=h?Zt(o,S,s):sa(S,o,s)}),v}),pT=ds(function(r,o,s){nr(r,s,o)});function _s(r,o){var s=ve(r)?Xe:_m;return s(r,se(o,3))}function hT(r,o,s,f){return r==null?[]:(ve(o)||(o=o==null?[]:[o]),s=f?e:s,ve(s)||(s=s==null?[]:[s]),bm(r,o,s))}var gT=ds(function(r,o,s){r[s?0:1].push(o)},function(){return[[],[]]});function mT(r,o,s){var f=ve(r)?Fc:Xg,h=arguments.length<3;return f(r,se(o,4),s,h,br)}function vT(r,o,s){var f=ve(r)?DE:Xg,h=arguments.length<3;return f(r,se(o,4),s,h,hm)}function yT(r,o){var s=ve(r)?xr:gm;return s(r,Cs(se(o,3)))}function wT(r){var o=ve(r)?cm:fC;return o(r)}function xT(r,o,s){(s?It(r,o,s):o===e)?o=1:o=xe(o);var f=ve(r)?jS:dC;return f(r,o)}function _T(r){var o=ve(r)?WS:hC;return o(r)}function ET(r){if(r==null)return 0;if($t(r))return Ts(r)?Hi(r):r.length;var o=Tt(r);return o==st||o==Pn?r.size:tf(r).length}function ST(r,o,s){var f=ve(r)?Rc:gC;return s&&It(r,o,s)&&(o=e),f(r,se(o,3))}var CT=Ee(function(r,o){if(r==null)return[];var s=o.length;return s>1&&It(r,o[0],o[1])?o=[]:s>2&&It(o[0],o[1],o[2])&&(o=[o[0]]),bm(r,mt(o,1),[])}),Es=iS||function(){return pt.Date.now()};function bT(r,o){if(typeof o!="function")throw new fn(a);return r=xe(r),function(){if(--r<1)return o.apply(this,arguments)}}function wv(r,o,s){return o=s?e:o,o=r&&o==null?r.length:o,rr(r,q,e,e,e,e,o)}function xv(r,o){var s;if(typeof o!="function")throw new fn(a);return r=xe(r),function(){return--r>0&&(s=o.apply(this,arguments)),r<=1&&(o=e),s}}var Tf=Ee(function(r,o,s){var f=k;if(s.length){var h=Er(s,Qi(Tf));f|=b}return rr(r,f,o,s,h)}),_v=Ee(function(r,o,s){var f=k|P;if(s.length){var h=Er(s,Qi(_v));f|=b}return rr(o,f,r,s,h)});function Ev(r,o,s){o=s?e:o;var f=rr(r,w,e,e,e,e,e,o);return f.placeholder=Ev.placeholder,f}function Sv(r,o,s){o=s?e:o;var f=rr(r,m,e,e,e,e,e,o);return f.placeholder=Sv.placeholder,f}function Cv(r,o,s){var f,h,v,S,T,O,U=0,B=!1,W=!1,Y=!0;if(typeof r!="function")throw new fn(a);o=mn(o)||0,Ze(s)&&(B=!!s.leading,W="maxWait"in s,v=W?ct(mn(s.maxWait)||0,o):v,Y="trailing"in s?!!s.trailing:Y);function ie(it){var An=f,sr=h;return f=h=e,U=it,S=r.apply(sr,An),S}function ce(it){return U=it,T=pa(Se,o),B?ie(it):S}function _e(it){var An=it-O,sr=it-U,Wv=o-An;return W?bt(Wv,v-sr):Wv}function fe(it){var An=it-O,sr=it-U;return O===e||An>=o||An<0||W&&sr>=v}function Se(){var it=Es();if(fe(it))return be(it);T=pa(Se,_e(it))}function be(it){return T=e,Y&&f?ie(it):(f=h=e,S)}function nn(){T!==e&&Lm(T),U=0,f=O=h=T=e}function Lt(){return T===e?S:be(Es())}function rn(){var it=Es(),An=fe(it);if(f=arguments,h=this,O=it,An){if(T===e)return ce(O);if(W)return Lm(T),T=pa(Se,o),ie(O)}return T===e&&(T=pa(Se,o)),S}return rn.cancel=nn,rn.flush=Lt,rn}var TT=Ee(function(r,o){return pm(r,1,o)}),kT=Ee(function(r,o,s){return pm(r,mn(o)||0,s)});function PT(r){return rr(r,z)}function Ss(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new fn(a);var s=function(){var f=arguments,h=o?o.apply(this,f):f[0],v=s.cache;if(v.has(h))return v.get(h);var S=r.apply(this,f);return s.cache=v.set(h,S)||v,S};return s.cache=new(Ss.Cache||tr),s}Ss.Cache=tr;function Cs(r){if(typeof r!="function")throw new fn(a);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function DT(r){return xv(2,r)}var NT=mC(function(r,o){o=o.length==1&&ve(o[0])?Xe(o[0],Jt(se())):Xe(mt(o,1),Jt(se()));var s=o.length;return Ee(function(f){for(var h=-1,v=bt(f.length,s);++h=o}),hi=ym(function(){return arguments}())?ym:function(r){return et(r)&&Fe.call(r,"callee")&&!im.call(r,"callee")},ve=A.isArray,VT=Bg?Jt(Bg):JS;function $t(r){return r!=null&&bs(r.length)&&!ar(r)}function rt(r){return et(r)&&$t(r)}function KT(r){return r===!0||r===!1||et(r)&&At(r)==le}var Dr=aS||Uf,qT=zg?Jt(zg):eC;function YT(r){return et(r)&&r.nodeType===1&&!ha(r)}function XT(r){if(r==null)return!0;if($t(r)&&(ve(r)||typeof r=="string"||typeof r.splice=="function"||Dr(r)||Zi(r)||hi(r)))return!r.length;var o=Tt(r);if(o==st||o==Pn)return!r.size;if(da(r))return!tf(r).length;for(var s in r)if(Fe.call(r,s))return!1;return!0}function GT(r,o){return ua(r,o)}function QT(r,o,s){s=typeof s=="function"?s:e;var f=s?s(r,o):e;return f===e?ua(r,o,e,s):!!f}function Pf(r){if(!et(r))return!1;var o=At(r);return o==ye||o==G||typeof r.message=="string"&&typeof r.name=="string"&&!ha(r)}function ZT(r){return typeof r=="number"&&am(r)}function ar(r){if(!Ze(r))return!1;var o=At(r);return o==pe||o==Oe||o==ue||o==E_}function Tv(r){return typeof r=="number"&&r==xe(r)}function bs(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=we}function Ze(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function et(r){return r!=null&&typeof r=="object"}var kv=$g?Jt($g):nC;function JT(r,o){return r===o||ef(r,o,yf(o))}function ek(r,o,s){return s=typeof s=="function"?s:e,ef(r,o,yf(o),s)}function tk(r){return Pv(r)&&r!=+r}function nk(r){if(BC(r))throw new ge(i);return wm(r)}function rk(r){return r===null}function ik(r){return r==null}function Pv(r){return typeof r=="number"||et(r)&&At(r)==kn}function ha(r){if(!et(r)||At(r)!=Jn)return!1;var o=Zl(r);if(o===null)return!0;var s=Fe.call(o,"constructor")&&o.constructor;return typeof s=="function"&&s instanceof s&&Yl.call(s)==eS}var Df=jg?Jt(jg):rC;function ok(r){return Tv(r)&&r>=-we&&r<=we}var Dv=Wg?Jt(Wg):iC;function Ts(r){return typeof r=="string"||!ve(r)&&et(r)&&At(r)==Qo}function tn(r){return typeof r=="symbol"||et(r)&&At(r)==Bl}var Zi=Hg?Jt(Hg):oC;function ak(r){return r===e}function lk(r){return et(r)&&Tt(r)==Zo}function sk(r){return et(r)&&At(r)==C_}var uk=ms(nf),ck=ms(function(r,o){return r<=o});function Nv(r){if(!r)return[];if($t(r))return Ts(r)?Dn(r):zt(r);if(ta&&r[ta])return jE(r[ta]());var o=Tt(r),s=o==st?Wc:o==Pn?Vl:Ji;return s(r)}function lr(r){if(!r)return r===0?r:0;if(r=mn(r),r===L||r===-L){var o=r<0?-1:1;return o*He}return r===r?r:0}function xe(r){var o=lr(r),s=o%1;return o===o?s?o-s:o:0}function Ov(r){return r?ci(xe(r),0,Ne):0}function mn(r){if(typeof r=="number")return r;if(tn(r))return Ve;if(Ze(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=Ze(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=Gg(r);var s=V_.test(r);return s||q_.test(r)?bE(r.slice(2),s?2:8):H_.test(r)?Ve:+r}function Av(r){return Un(r,jt(r))}function fk(r){return r?ci(xe(r),-we,we):r===0?r:0}function Ie(r){return r==null?"":en(r)}var dk=Xi(function(r,o){if(da(o)||$t(o)){Un(o,ht(o),r);return}for(var s in o)Fe.call(o,s)&&aa(r,s,o[s])}),Iv=Xi(function(r,o){Un(o,jt(o),r)}),ks=Xi(function(r,o,s,f){Un(o,jt(o),r,f)}),pk=Xi(function(r,o,s,f){Un(o,ht(o),r,f)}),hk=ir(Xc);function gk(r,o){var s=Yi(r);return o==null?s:fm(s,o)}var mk=Ee(function(r,o){r=Re(r);var s=-1,f=o.length,h=f>2?o[2]:e;for(h&&It(o[0],o[1],h)&&(f=1);++s1),v}),Un(r,mf(r),s),f&&(s=pn(s,p|y|x,kC));for(var h=o.length;h--;)sf(s,o[h]);return s});function Lk(r,o){return Mv(r,Cs(se(o)))}var Mk=ir(function(r,o){return r==null?{}:sC(r,o)});function Mv(r,o){if(r==null)return{};var s=Xe(mf(r),function(f){return[f]});return o=se(o),Tm(r,s,function(f,h){return o(f,h[0])})}function Fk(r,o,s){o=kr(o,r);var f=-1,h=o.length;for(h||(h=1,r=e);++fo){var f=r;r=o,o=f}if(s||r%1||o%1){var h=lm();return bt(r+h*(o-r+CE("1e-"+((h+"").length-1))),o)}return of(r,o)}var qk=Gi(function(r,o,s){return o=o.toLowerCase(),r+(s?Uv(o):o)});function Uv(r){return Af(Ie(r).toLowerCase())}function Bv(r){return r=Ie(r),r&&r.replace(X_,RE).replace(hE,"")}function Yk(r,o,s){r=Ie(r),o=en(o);var f=r.length;s=s===e?f:ci(xe(s),0,f);var h=s;return s-=o.length,s>=0&&r.slice(s,h)==o}function Xk(r){return r=Ie(r),r&&D_.test(r)?r.replace(mg,UE):r}function Gk(r){return r=Ie(r),r&&M_.test(r)?r.replace(Tc,"\\$&"):r}var Qk=Gi(function(r,o,s){return r+(s?"-":"")+o.toLowerCase()}),Zk=Gi(function(r,o,s){return r+(s?" ":"")+o.toLowerCase()}),Jk=jm("toLowerCase");function eP(r,o,s){r=Ie(r),o=xe(o);var f=o?Hi(r):0;if(!o||f>=o)return r;var h=(o-f)/2;return gs(ns(h),s)+r+gs(ts(h),s)}function tP(r,o,s){r=Ie(r),o=xe(o);var f=o?Hi(r):0;return o&&f>>0,s?(r=Ie(r),r&&(typeof o=="string"||o!=null&&!Df(o))&&(o=en(o),!o&&Wi(r))?Pr(Dn(r),0,s):r.split(o,s)):[]}var sP=Gi(function(r,o,s){return r+(s?" ":"")+Af(o)});function uP(r,o,s){return r=Ie(r),s=s==null?0:ci(xe(s),0,r.length),o=en(o),r.slice(s,s+o.length)==o}function cP(r,o,s){var f=g.templateSettings;s&&It(r,o,s)&&(o=e),r=Ie(r),o=ks({},o,f,Xm);var h=ks({},o.imports,f.imports,Xm),v=ht(h),S=jc(h,v),T,O,U=0,B=o.interpolate||zl,W="__p += '",Y=Hc((o.escape||zl).source+"|"+B.source+"|"+(B===vg?W_:zl).source+"|"+(o.evaluate||zl).source+"|$","g"),ie="//# sourceURL="+(Fe.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++wE+"]")+` +`;r.replace(Y,function(fe,Se,be,nn,Lt,rn){return be||(be=nn),W+=r.slice(U,rn).replace(G_,BE),Se&&(T=!0,W+=`' + __e(`+Se+`) + -'`),Mt&&(D=!0,W+=`'; -`+Mt+`; -__p += '`),Te&&(W+=`' + -((__t = (`+Te+`)) == null ? '' : __t) + -'`),U=on+fe.length,fe}),W+=`'; -`;var ce=Me.call(o,"variable")&&o.variable;if(!ce)W=`with (obj) { +'`),Lt&&(O=!0,W+=`'; +`+Lt+`; +__p += '`),be&&(W+=`' + +((__t = (`+be+`)) == null ? '' : __t) + +'`),U=rn+fe.length,fe}),W+=`'; +`;var ce=Fe.call(o,"variable")&&o.variable;if(!ce)W=`with (obj) { `+W+` } -`;else if(rE.test(ce))throw new me(l);W=(D?W.replace(j_,""):W).replace($_,"$1").replace(W_,"$1;"),W="function("+(ce||"obj")+`) { +`;else if($_.test(ce))throw new ge(l);W=(O?W.replace(b_,""):W).replace(T_,"$1").replace(k_,"$1;"),W="function("+(ce||"obj")+`) { `+(ce?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(C?", __e = _.escape":"")+(D?`, __j = Array.prototype.join; +`)+"var __t, __p = ''"+(T?", __e = _.escape":"")+(O?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; `)+W+`return __p -}`;var _e=uy(function(){return De(v,re+"return "+W).apply(e,S)});if(_e.source=W,ld(_e))throw _e;return _e}function kO(r){return Ie(r).toLowerCase()}function OO(r){return Ie(r).toUpperCase()}function NO(r,o,s){if(r=Ie(r),r&&(s||o===e))return yg(r);if(!r||!(o=tn(o)))return r;var f=Dn(r),h=Dn(o),v=wg(f,h),S=xg(f,h)+1;return Ar(f,v,S).join("")}function PO(r,o,s){if(r=Ie(r),r&&(s||o===e))return r.slice(0,Eg(r)+1);if(!r||!(o=tn(o)))return r;var f=Dn(r),h=xg(f,Dn(o))+1;return Ar(f,0,h).join("")}function DO(r,o,s){if(r=Ie(r),r&&(s||o===e))return r.replace(lf,"");if(!r||!(o=tn(o)))return r;var f=Dn(r),h=wg(f,Dn(o));return Ar(f,h).join("")}function IO(r,o){var s=J,f=ie;if(Ze(o)){var h="separator"in o?o.separator:h;s="length"in o?xe(o.length):s,f="omission"in o?tn(o.omission):f}r=Ie(r);var v=r.length;if(eo(r)){var S=Dn(r);v=S.length}if(s>=v)return r;var C=s-to(f);if(C<1)return f;var D=S?Ar(S,0,C).join(""):r.slice(0,C);if(h===e)return D+f;if(S&&(C+=D.length-C),sd(h)){if(r.slice(C).search(h)){var U,B=D;for(h.global||(h=bf(h.source,Ie(zm.exec(h))+"g")),h.lastIndex=0;U=h.exec(B);)var W=U.index;D=D.slice(0,W===e?C:W)}}else if(r.indexOf(tn(h),C)!=C){var q=D.lastIndexOf(h);q>-1&&(D=D.slice(0,q))}return D+f}function AO(r){return r=Ie(r),r&&H_.test(r)?r.replace(Rm,sS):r}var LO=lo(function(r,o,s){return r+(s?" ":"")+o.toUpperCase()}),fd=cv("toUpperCase");function sy(r,o,s){return r=Ie(r),o=s?e:o,o===e?rS(r)?fS(r):YE(r):r.match(o)||[]}var uy=Ee(function(r,o){try{return Jt(r,e,o)}catch(s){return ld(s)?s:new me(s)}}),MO=sr(function(r,o){return fn(o,function(s){s=$n(s),ar(r,s,od(r[s],r))}),r});function FO(r){var o=r==null?0:r.length,s=se();return r=o?Xe(r,function(f){if(typeof f[1]!="function")throw new dn(a);return[s(f[0]),f[1]]}):[],Ee(function(f){for(var h=-1;++hwe)return[];var s=Ne,f=Tt(r,Ne);o=se(o),r-=Ne;for(var h=_f(f,o);++s0||o<0)?new be(s):(r<0?s=s.takeRight(-r):r&&(s=s.drop(r)),o!==e&&(o=xe(o),s=o<0?s.dropRight(-o):s.take(o-r)),s)},be.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},be.prototype.toArray=function(){return this.take(Ne)},zn(be.prototype,function(r,o){var s=/^(?:filter|find|map|reject)|While$/.test(o),f=/^(?:head|last)$/.test(o),h=m[f?"take"+(o=="last"?"Right":""):o],v=f||/^find/.test(o);!h||(m.prototype[o]=function(){var S=this.__wrapped__,C=f?[1]:arguments,D=S instanceof be,U=C[0],B=D||ve(S),W=function(Se){var Te=h.apply(m,Tr([Se],C));return f&&q?Te[0]:Te};B&&s&&typeof U=="function"&&U.length!=1&&(D=B=!1);var q=this.__chain__,re=!!this.__actions__.length,ce=v&&!q,_e=D&&!re;if(!v&&B){S=_e?S:new be(this);var fe=r.apply(S,C);return fe.__actions__.push({func:Rs,args:[W],thisArg:e}),new pn(fe,q)}return ce&&_e?r.apply(this,C):(fe=this.thru(W),ce?f?fe.value()[0]:fe.value():fe)})}),fn(["pop","push","shift","sort","splice","unshift"],function(r){var o=us[r],s=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",f=/^(?:pop|shift)$/.test(r);m.prototype[r]=function(){var h=arguments;if(f&&!this.__chain__){var v=this.value();return o.apply(ve(v)?v:[],h)}return this[s](function(S){return o.apply(ve(S)?S:[],h)})}}),zn(be.prototype,function(r,o){var s=m[o];if(s){var f=s.name+"";Me.call(io,f)||(io[f]=[]),io[f].push({name:o,func:s})}}),io[Ps(e,b).name]=[{name:"wrapper",func:e}],be.prototype.clone=AS,be.prototype.reverse=LS,be.prototype.value=MS,m.prototype.at=cT,m.prototype.chain=fT,m.prototype.commit=dT,m.prototype.next=pT,m.prototype.plant=mT,m.prototype.reverse=gT,m.prototype.toJSON=m.prototype.valueOf=m.prototype.value=vT,m.prototype.first=m.prototype.head,ya&&(m.prototype[ya]=hT),m},Or=dS();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(ht._=Or,define(function(){return Or})):fi?((fi.exports=Or)._=Or,pf._=Or):ht._=Or}).call(Yo)});var w_=Be((Hl,am)=>{(function(t,n){typeof Hl=="object"&&typeof am=="object"?am.exports=n(oe()):typeof define=="function"&&define.amd?define(["react"],n):typeof Hl=="object"?Hl.ReactCrop=n(oe()):t.ReactCrop=n(t.React)})(typeof self<"u"?self:Hl,function(e){return function(t){var n={};function i(a){if(n[a])return n[a].exports;var l=n[a]={i:a,l:!1,exports:{}};return t[a].call(l.exports,l,l.exports,i),l.l=!0,l.exports}return i.m=t,i.c=n,i.d=function(a,l,u){i.o(a,l)||Object.defineProperty(a,l,{configurable:!1,enumerable:!0,get:u})},i.n=function(a){var l=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(l,"a",l),l},i.o=function(a,l){return Object.prototype.hasOwnProperty.call(a,l)},i.p="",i(i.s=2)}([function(t,n){var i=t.exports={},a,l;function u(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?a=setTimeout:a=u}catch(y){a=u}try{typeof clearTimeout=="function"?l=clearTimeout:l=c}catch(y){l=c}})();function d(y){if(a===setTimeout)return setTimeout(y,0);if((a===u||!a)&&setTimeout)return a=setTimeout,setTimeout(y,0);try{return a(y,0)}catch(T){try{return a.call(null,y,0)}catch(P){return a.call(this,y,0)}}}function p(y){if(l===clearTimeout)return clearTimeout(y);if((l===c||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(y);try{return l(y)}catch(T){try{return l.call(null,y)}catch(P){return l.call(this,y)}}}var w=[],_=!1,E,O=-1;function k(){!_||!E||(_=!1,E.length?w=E.concat(w):O=-1,w.length&&b())}function b(){if(!_){var y=d(k);_=!0;for(var T=w.length;T;){for(E=w,w=[];++O1)for(var P=1;P100&&(te.height=100-j.y,te.width=te.height*j.aspect/z),j.x+(te.width||j.width)>100&&(te.width=100-j.x,te.height=te.width/j.aspect*z),te}function X(j,z){return j&&j.aspect&&(!j.width&&j.height||j.width&&!j.height)?L(j,z.naturalWidth/z.naturalHeight):j}function J(j,z){if(!j||!z)return null;var te=Math.round(j.naturalWidth*(z.x/100)),A=Math.round(j.naturalHeight*(z.y/100)),M=Math.round(j.naturalWidth*(z.width/100)),we=Math.round(j.naturalHeight*(z.height/100));return{x:te,y:A,width:T(M,0,j.naturalWidth-te),height:T(we,0,j.naturalHeight-A)}}function ie(j,z,te){var A=l({},z),M=!1;A.x+A.width>100?(A.width=z.width+(100-(z.x+z.width)),A.x=z.x+(100-(z.x+A.width)),M=!0):A.x<0&&(A.width=z.x+z.width,A.x=0,M=!0),M&&z.aspect&&(A.height=A.width/z.aspect*te,j.y>A.y&&(A.y=z.y+(z.height-A.height)));var we=!1;return A.y+A.height>100?(A.height=z.height+(100-(z.y+z.height)),A.y=z.y+(100-(z.y+A.height)),we=!0):A.y<0&&(A.height=z.y+z.height,A.y=0,we=!0),we&&z.aspect&&(A.width=A.height*z.aspect/te,A.x-1?(A.x=R.x,A.y=R.y,A.width=R.width,A.height=R.height):z.xOrds.indexOf(we)>-1?(A.x=R.x,A.width=R.width):z.yOrds.indexOf(we)>-1&&(A.y=R.y,A.height=R.height),M.lastYCrossover=M.yCrossOver,this.crossOverCheck(),A}},{key:"straightenYPath",value:function(A){var M=this.evData,we=M.ord,We=M.cropOffset,He=M.cropStartWidth/100*this.imageRef.width,Ne=M.cropStartHeight/100*this.imageRef.height,ge=void 0,R=void 0;return we==="nw"||we==="se"?(ge=Ne/He,R=We.top-We.left*ge):(ge=-Ne/He,R=We.top+(Ne-We.left*ge)),ge*A+R}},{key:"createCropSelection",value:function(){var A=this,M=this.props.disabled,we=this.getCropStyle();return c.default.createElement("div",{ref:function(He){A.cropSelectRef=He},style:we,className:"ReactCrop__crop-selection",onMouseDown:this.onCropMouseTouchDown,onTouchStart:this.onCropMouseTouchDown,role:"presentation"},!M&&c.default.createElement("div",{className:"ReactCrop__drag-elements"},c.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w"})))}},{key:"makeNewCrop",value:function(){return l({},z.defaultCrop,this.props.crop)}},{key:"crossOverCheck",value:function(){var A=this.evData;(!A.xCrossOver&&-Math.abs(A.cropStartWidth)-A.xDiffPc>=0||A.xCrossOver&&-Math.abs(A.cropStartWidth)-A.xDiffPc<=0)&&(A.xCrossOver=!A.xCrossOver),(!A.yCrossOver&&-Math.abs(A.cropStartHeight)-A.yDiffPc>=0||A.yCrossOver&&-Math.abs(A.cropStartHeight)-A.yDiffPc<=0)&&(A.yCrossOver=!A.yCrossOver);var M=A.xCrossOver!==A.startXCrossOver,we=A.yCrossOver!==A.startYCrossOver;A.inversedXOrd=M?Y(A.ord):!1,A.inversedYOrd=we?Y(A.ord):!1}},{key:"render",value:function(){var A=this,M=this.props,we=M.children,We=M.className,He=M.crossorigin,Ne=M.crop,ge=M.disabled,R=M.imageAlt,V=M.onImageError,ae=M.src,de=M.style,ue=M.imageStyle,le=this.state.cropIsActive,ne=void 0;P(Ne)&&(ne=this.createCropSelection());var Q=["ReactCrop"];return le&&Q.push("ReactCrop--active"),Ne&&(Ne.aspect&&Q.push("ReactCrop--fixed-aspect"),le&&(!Ne.width||!Ne.height)&&Q.push("ReactCrop--crop-invisible")),ge&&Q.push("ReactCrop--disabled"),We&&Q.push.apply(Q,_(We.split(" "))),c.default.createElement("div",{ref:function(pe){A.componentRef=pe},className:Q.join(" "),style:de,onTouchStart:this.onComponentMouseTouchDown,onMouseDown:this.onComponentMouseTouchDown,role:"presentation",tabIndex:"1",onKeyDown:this.onComponentKeyDown},c.default.createElement("img",{ref:function(pe){A.imageRef=pe},crossOrigin:He,className:"ReactCrop__image",style:ue,src:ae,onLoad:function(pe){return A.onImageLoad(pe.target)},onError:V,alt:R}),ne,we)}}]),z}(u.PureComponent);Ye.xOrds=["e","w"],Ye.yOrds=["n","s"],Ye.xyOrds=["nw","ne","se","sw"],Ye.arrowKey={left:37,up:38,right:39,down:40},Ye.nudgeStep=.2,Ye.defaultCrop={x:0,y:0,width:0,height:0},Ye.propTypes={className:p.default.string,crossorigin:p.default.string,children:p.default.oneOfType([p.default.arrayOf(p.default.node),p.default.node]),crop:p.default.shape({aspect:p.default.number,x:p.default.number,y:p.default.number,width:p.default.number,height:p.default.number}),disabled:p.default.bool,imageAlt:p.default.string,imageStyle:p.default.shape({}),keepSelection:p.default.bool,minWidth:p.default.number,minHeight:p.default.number,maxWidth:p.default.number,maxHeight:p.default.number,onChange:p.default.func.isRequired,onImageError:p.default.func,onComplete:p.default.func,onImageLoaded:p.default.func,onDragStart:p.default.func,onDragEnd:p.default.func,src:p.default.string.isRequired,style:p.default.shape({})},Ye.defaultProps={className:void 0,crop:void 0,crossorigin:void 0,disabled:!1,imageAlt:"",maxWidth:100,maxHeight:100,minWidth:0,minHeight:0,keepSelection:!1,onComplete:function(){},onImageError:function(){},onImageLoaded:function(){},onDragStart:function(){},onDragEnd:function(){},children:void 0,style:void 0,imageStyle:void 0},t.exports=Ye,t.exports.getPixelCrop=J,t.exports.makeAspectCrop=L,t.exports.containCrop=ie},function(t,n){t.exports=e},function(t,n,i){(function(a){if(a.env.NODE_ENV!=="production"){var l=typeof Symbol=="function"&&Symbol.for&&Symbol.for("react.element")||60103,u=function(d){return typeof d=="object"&&d!==null&&d.$$typeof===l},c=!0;t.exports=i(5)(u,c)}else t.exports=i(8)()}).call(n,i(0))},function(t,n,i){"use strict";(function(a){var l=i(6),u=i(1),c=i(7),d=function(){};a.env.NODE_ENV!=="production"&&(d=function(w){var _="Warning: "+w;typeof console<"u"&&console.error(_);try{throw new Error(_)}catch(E){}});function p(){return null}t.exports=function(w,_){var E=typeof Symbol=="function"&&Symbol.iterator,O="@@iterator";function k(R){var V=R&&(E&&R[E]||R[O]);if(typeof V=="function")return V}var b="<>",x={array:P("array"),bool:P("boolean"),func:P("function"),number:P("number"),object:P("object"),string:P("string"),symbol:P("symbol"),any:Y(),arrayOf:L,element:X(),instanceOf:J,node:z(),objectOf:Ye,oneOf:ie,oneOfType:j,shape:te,exact:A};function g(R,V){return R===V?R!==0||1/R===1/V:R!==R&&V!==V}function y(R){this.message=R,this.stack=""}y.prototype=Error.prototype;function T(R){if(a.env.NODE_ENV!=="production")var V={},ae=0;function de(le,ne,Q,ye,pe,Pe,ut){if(ye=ye||b,Pe=Pe||Q,ut!==u){if(_){var Nn=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw Nn.name="Invariant Violation",Nn}else if(a.env.NODE_ENV!=="production"&&typeof console<"u"){var ts=ye+":"+Q;!V[ts]&&ae<3&&(d("You are manually calling a React.PropTypes validation function for the `"+Pe+"` prop on `"+ye+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),V[ts]=!0,ae++)}}return ne[Q]==null?le?ne[Q]===null?new y("The "+pe+" `"+Pe+"` is marked as required "+("in `"+ye+"`, but its value is `null`.")):new y("The "+pe+" `"+Pe+"` is marked as required in "+("`"+ye+"`, but its value is `undefined`.")):null:R(ne,Q,ye,pe,Pe)}var ue=de.bind(null,!1);return ue.isRequired=de.bind(null,!0),ue}function P(R){function V(ae,de,ue,le,ne,Q){var ye=ae[de],pe=We(ye);if(pe!==R){var Pe=He(ye);return new y("Invalid "+le+" `"+ne+"` of type "+("`"+Pe+"` supplied to `"+ue+"`, expected ")+("`"+R+"`."))}return null}return T(V)}function Y(){return T(p)}function L(R){function V(ae,de,ue,le,ne){if(typeof R!="function")return new y("Property `"+ne+"` of component `"+ue+"` has invalid PropType notation inside arrayOf.");var Q=ae[de];if(!Array.isArray(Q)){var ye=We(Q);return new y("Invalid "+le+" `"+ne+"` of type "+("`"+ye+"` supplied to `"+ue+"`, expected an array."))}for(var pe=0;pe"u"||R===null)return""+R;var V=We(R);if(V==="object"){if(R instanceof Date)return"date";if(R instanceof RegExp)return"regexp"}return V}function Ne(R){var V=He(R);switch(V){case"array":case"object":return"an "+V;case"boolean":case"date":case"regexp":return"a "+V;default:return V}}function ge(R){return!R.constructor||!R.constructor.name?b:R.constructor.name}return x.checkPropTypes=c,x.PropTypes=x,x}}).call(n,i(0))},function(t,n,i){"use strict";var a=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;function c(p){if(p==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(p)}function d(){try{if(!Object.assign)return!1;var p=new String("abc");if(p[5]="de",Object.getOwnPropertyNames(p)[0]==="5")return!1;for(var w={},_=0;_<10;_++)w["_"+String.fromCharCode(_)]=_;var E=Object.getOwnPropertyNames(w).map(function(k){return w[k]});if(E.join("")!=="0123456789")return!1;var O={};return"abcdefghijklmnopqrst".split("").forEach(function(k){O[k]=k}),Object.keys(Object.assign({},O)).join("")==="abcdefghijklmnopqrst"}catch(k){return!1}}t.exports=d()?Object.assign:function(p,w){for(var _,E=c(p),O,k=1;k{x_.exports=w_()});var R_=K(gy());var xy=class{constructor(t,n,i){this.eventTarget=t,this.eventName=n,this.eventOptions=i,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(t){this.unorderedBindings.add(t)}bindingDisconnected(t){this.unorderedBindings.delete(t)}handleEvent(t){let n=PN(t);for(let i of this.bindings){if(n.immediatePropagationStopped)break;i.handleEvent(n)}}get bindings(){return Array.from(this.unorderedBindings).sort((t,n)=>{let i=t.index,a=n.index;return ia?1:0})}};function PN(e){if("immediatePropagationStopped"in e)return e;{let{stopImmediatePropagation:t}=e;return Object.assign(e,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,t.call(this)}})}}var _y=class{constructor(t){this.application=t,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach(t=>t.connect()))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach(t=>t.disconnect()))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce((t,n)=>t.concat(Array.from(n.values())),[])}bindingConnected(t){this.fetchEventListenerForBinding(t).bindingConnected(t)}bindingDisconnected(t){this.fetchEventListenerForBinding(t).bindingDisconnected(t)}handleError(t,n,i={}){this.application.handleError(t,`Error ${n}`,i)}fetchEventListenerForBinding(t){let{eventTarget:n,eventName:i,eventOptions:a}=t;return this.fetchEventListener(n,i,a)}fetchEventListener(t,n,i){let a=this.fetchEventListenerMapForEventTarget(t),l=this.cacheKey(n,i),u=a.get(l);return u||(u=this.createEventListener(t,n,i),a.set(l,u)),u}createEventListener(t,n,i){let a=new xy(t,n,i);return this.started&&a.connect(),a}fetchEventListenerMapForEventTarget(t){let n=this.eventListenerMaps.get(t);return n||(n=new Map,this.eventListenerMaps.set(t,n)),n}cacheKey(t,n){let i=[t];return Object.keys(n).sort().forEach(a=>{i.push(`${n[a]?"":"!"}${a}`)}),i.join(":")}},DN=/^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;function IN(e){let n=e.trim().match(DN)||[];return{eventTarget:AN(n[4]),eventName:n[2],eventOptions:n[9]?LN(n[9]):{},identifier:n[5],methodName:n[7]}}function AN(e){if(e=="window")return window;if(e=="document")return document}function LN(e){return e.split(":").reduce((t,n)=>Object.assign(t,{[n.replace(/^!/,"")]:!/^!/.test(n)}),{})}function MN(e){if(e==window)return"window";if(e==document)return"document"}function Ey(e){return e.replace(/(?:[_-])([a-z0-9])/g,(t,n)=>n.toUpperCase())}function Ks(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Sy(e){return e.replace(/([A-Z])/g,(t,n)=>`-${n.toLowerCase()}`)}function FN(e){return e.match(/[^\s]+/g)||[]}var by=class{constructor(t,n,i){this.element=t,this.index=n,this.eventTarget=i.eventTarget||t,this.eventName=i.eventName||RN(t)||yd("missing event name"),this.eventOptions=i.eventOptions||{},this.identifier=i.identifier||yd("missing identifier"),this.methodName=i.methodName||yd("missing method name")}static forToken(t){return new this(t.element,t.index,IN(t.content))}toString(){let t=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${t}->${this.identifier}#${this.methodName}`}get params(){let t={},n=new RegExp(`^data-${this.identifier}-(.+)-param$`);for(let{name:i,value:a}of Array.from(this.element.attributes)){let l=i.match(n),u=l&&l[1];u&&(t[Ey(u)]=UN(a))}return t}get eventTargetName(){return MN(this.eventTarget)}},vy={a:e=>"click",button:e=>"click",form:e=>"submit",details:e=>"toggle",input:e=>e.getAttribute("type")=="submit"?"click":"input",select:e=>"change",textarea:e=>"input"};function RN(e){let t=e.tagName.toLowerCase();if(t in vy)return vy[t](e)}function yd(e){throw new Error(e)}function UN(e){try{return JSON.parse(e)}catch(t){return e}}var Cy=class{constructor(t,n){this.context=t,this.action=n}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}get identifier(){return this.context.identifier}handleEvent(t){this.willBeInvokedByEvent(t)&&this.shouldBeInvokedPerSelf(t)&&(this.processStopPropagation(t),this.processPreventDefault(t),this.invokeWithEvent(t))}get eventName(){return this.action.eventName}get method(){let t=this.controller[this.methodName];if(typeof t=="function")return t;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}processStopPropagation(t){this.eventOptions.stop&&t.stopPropagation()}processPreventDefault(t){this.eventOptions.prevent&&t.preventDefault()}invokeWithEvent(t){let{target:n,currentTarget:i}=t;try{let{params:a}=this.action,l=Object.assign(t,{params:a});this.method.call(this.controller,l),this.context.logDebugActivity(this.methodName,{event:t,target:n,currentTarget:i,action:this.methodName})}catch(a){let{identifier:l,controller:u,element:c,index:d}=this,p={identifier:l,controller:u,element:c,index:d,event:t};this.context.handleError(a,`invoking action "${this.action}"`,p)}}shouldBeInvokedPerSelf(t){return this.action.eventOptions.self===!0?this.action.element===t.target:!0}willBeInvokedByEvent(t){let n=t.target;return this.element===n?!0:n instanceof Element&&this.element.contains(n)?this.scope.containsElement(n):this.scope.containsElement(this.action.element)}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}},Ty=class{constructor(t,n){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=t,this.started=!1,this.delegate=n,this.elements=new Set,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(t){this.started&&(this.mutationObserver.disconnect(),this.started=!1),t(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){let t=new Set(this.matchElementsInTree());for(let n of Array.from(this.elements))t.has(n)||this.removeElement(n);for(let n of Array.from(t))this.addElement(n)}}processMutations(t){if(this.started)for(let n of t)this.processMutation(n)}processMutation(t){t.type=="attributes"?this.processAttributeChange(t.target,t.attributeName):t.type=="childList"&&(this.processRemovedNodes(t.removedNodes),this.processAddedNodes(t.addedNodes))}processAttributeChange(t,n){let i=t;this.elements.has(i)?this.delegate.elementAttributeChanged&&this.matchElement(i)?this.delegate.elementAttributeChanged(i,n):this.removeElement(i):this.matchElement(i)&&this.addElement(i)}processRemovedNodes(t){for(let n of Array.from(t)){let i=this.elementFromNode(n);i&&this.processTree(i,this.removeElement)}}processAddedNodes(t){for(let n of Array.from(t)){let i=this.elementFromNode(n);i&&this.elementIsActive(i)&&this.processTree(i,this.addElement)}}matchElement(t){return this.delegate.matchElement(t)}matchElementsInTree(t=this.element){return this.delegate.matchElementsInTree(t)}processTree(t,n){for(let i of this.matchElementsInTree(t))n.call(this,i)}elementFromNode(t){if(t.nodeType==Node.ELEMENT_NODE)return t}elementIsActive(t){return t.isConnected!=this.element.isConnected?!1:this.element.contains(t)}addElement(t){this.elements.has(t)||this.elementIsActive(t)&&(this.elements.add(t),this.delegate.elementMatched&&this.delegate.elementMatched(t))}removeElement(t){this.elements.has(t)&&(this.elements.delete(t),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(t))}},ky=class{constructor(t,n,i){this.attributeName=n,this.delegate=i,this.elementObserver=new Ty(t,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(t){this.elementObserver.pause(t)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(t){return t.hasAttribute(this.attributeName)}matchElementsInTree(t){let n=this.matchElement(t)?[t]:[],i=Array.from(t.querySelectorAll(this.selector));return n.concat(i)}elementMatched(t){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(t,this.attributeName)}elementUnmatched(t){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(t,this.attributeName)}elementAttributeChanged(t,n){this.delegate.elementAttributeValueChanged&&this.attributeName==n&&this.delegate.elementAttributeValueChanged(t,n)}},Oy=class{constructor(t,n){this.element=t,this.delegate=n,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(let t of this.knownAttributeNames)this.refreshAttribute(t,null)}processMutations(t){if(this.started)for(let n of t)this.processMutation(n)}processMutation(t){let n=t.attributeName;n&&this.refreshAttribute(n,t.oldValue)}refreshAttribute(t,n){let i=this.delegate.getStringMapKeyForAttribute(t);if(i!=null){this.stringMap.has(t)||this.stringMapKeyAdded(i,t);let a=this.element.getAttribute(t);if(this.stringMap.get(t)!=a&&this.stringMapValueChanged(a,i,n),a==null){let l=this.stringMap.get(t);this.stringMap.delete(t),l&&this.stringMapKeyRemoved(i,t,l)}else this.stringMap.set(t,a)}}stringMapKeyAdded(t,n){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(t,n)}stringMapValueChanged(t,n,i){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(t,n,i)}stringMapKeyRemoved(t,n,i){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(t,n,i)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map(t=>t.name)}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}};function BN(e,t,n){Ny(e,t).add(n)}function zN(e,t,n){Ny(e,t).delete(n),jN(e,t)}function Ny(e,t){let n=e.get(t);return n||(n=new Set,e.set(t,n)),n}function jN(e,t){let n=e.get(t);n!=null&&n.size==0&&e.delete(t)}var qs=class{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce((n,i)=>n.concat(Array.from(i)),[])}get size(){return Array.from(this.valuesByKey.values()).reduce((n,i)=>n+i.size,0)}add(t,n){BN(this.valuesByKey,t,n)}delete(t,n){zN(this.valuesByKey,t,n)}has(t,n){let i=this.valuesByKey.get(t);return i!=null&&i.has(n)}hasKey(t){return this.valuesByKey.has(t)}hasValue(t){return Array.from(this.valuesByKey.values()).some(i=>i.has(t))}getValuesForKey(t){let n=this.valuesByKey.get(t);return n?Array.from(n):[]}getKeysForValue(t){return Array.from(this.valuesByKey).filter(([n,i])=>i.has(t)).map(([n,i])=>n)}};var xd=class{constructor(t,n,i){this.attributeObserver=new ky(t,n,this),this.delegate=i,this.tokensByElement=new qs}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(t){this.attributeObserver.pause(t)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(t){this.tokensMatched(this.readTokensForElement(t))}elementAttributeValueChanged(t){let[n,i]=this.refreshTokensForElement(t);this.tokensUnmatched(n),this.tokensMatched(i)}elementUnmatchedAttribute(t){this.tokensUnmatched(this.tokensByElement.getValuesForKey(t))}tokensMatched(t){t.forEach(n=>this.tokenMatched(n))}tokensUnmatched(t){t.forEach(n=>this.tokenUnmatched(n))}tokenMatched(t){this.delegate.tokenMatched(t),this.tokensByElement.add(t.element,t)}tokenUnmatched(t){this.delegate.tokenUnmatched(t),this.tokensByElement.delete(t.element,t)}refreshTokensForElement(t){let n=this.tokensByElement.getValuesForKey(t),i=this.readTokensForElement(t),a=WN(n,i).findIndex(([l,u])=>!HN(l,u));return a==-1?[[],[]]:[n.slice(a),i.slice(a)]}readTokensForElement(t){let n=this.attributeName,i=t.getAttribute(n)||"";return $N(i,t,n)}};function $N(e,t,n){return e.trim().split(/\s+/).filter(i=>i.length).map((i,a)=>({element:t,attributeName:n,content:i,index:a}))}function WN(e,t){let n=Math.max(e.length,t.length);return Array.from({length:n},(i,a)=>[e[a],t[a]])}function HN(e,t){return e&&t&&e.index==t.index&&e.content==t.content}var _d=class{constructor(t,n,i){this.tokenListObserver=new xd(t,n,this),this.delegate=i,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(t){let{element:n}=t,{value:i}=this.fetchParseResultForToken(t);i&&(this.fetchValuesByTokenForElement(n).set(t,i),this.delegate.elementMatchedValue(n,i))}tokenUnmatched(t){let{element:n}=t,{value:i}=this.fetchParseResultForToken(t);i&&(this.fetchValuesByTokenForElement(n).delete(t),this.delegate.elementUnmatchedValue(n,i))}fetchParseResultForToken(t){let n=this.parseResultsByToken.get(t);return n||(n=this.parseToken(t),this.parseResultsByToken.set(t,n)),n}fetchValuesByTokenForElement(t){let n=this.valuesByTokenByElement.get(t);return n||(n=new Map,this.valuesByTokenByElement.set(t,n)),n}parseToken(t){try{return{value:this.delegate.parseValueForToken(t)}}catch(n){return{error:n}}}},Py=class{constructor(t,n){this.context=t,this.delegate=n,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new _d(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(t){let n=new Cy(this.context,t);this.bindingsByAction.set(t,n),this.delegate.bindingConnected(n)}disconnectAction(t){let n=this.bindingsByAction.get(t);n&&(this.bindingsByAction.delete(t),this.delegate.bindingDisconnected(n))}disconnectAllActions(){this.bindings.forEach(t=>this.delegate.bindingDisconnected(t)),this.bindingsByAction.clear()}parseValueForToken(t){let n=by.forToken(t);if(n.identifier==this.identifier)return n}elementMatchedValue(t,n){this.connectAction(n)}elementUnmatchedValue(t,n){this.disconnectAction(n)}},Dy=class{constructor(t,n){this.context=t,this.receiver=n,this.stringMapObserver=new Oy(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap}start(){this.stringMapObserver.start(),this.invokeChangedCallbacksForDefaultValues()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(t){if(t in this.valueDescriptorMap)return this.valueDescriptorMap[t].name}stringMapKeyAdded(t,n){let i=this.valueDescriptorMap[n];this.hasValue(t)||this.invokeChangedCallback(t,i.writer(this.receiver[t]),i.writer(i.defaultValue))}stringMapValueChanged(t,n,i){let a=this.valueDescriptorNameMap[n];t!==null&&(i===null&&(i=a.writer(a.defaultValue)),this.invokeChangedCallback(n,t,i))}stringMapKeyRemoved(t,n,i){let a=this.valueDescriptorNameMap[t];this.hasValue(t)?this.invokeChangedCallback(t,a.writer(this.receiver[t]),i):this.invokeChangedCallback(t,a.writer(a.defaultValue),i)}invokeChangedCallbacksForDefaultValues(){for(let{key:t,name:n,defaultValue:i,writer:a}of this.valueDescriptors)i!=null&&!this.controller.data.has(t)&&this.invokeChangedCallback(n,a(i),void 0)}invokeChangedCallback(t,n,i){let a=`${t}Changed`,l=this.receiver[a];if(typeof l=="function"){let u=this.valueDescriptorNameMap[t];try{let c=u.reader(n),d=i;i&&(d=u.reader(i)),l.call(this.receiver,c,d)}catch(c){throw c instanceof TypeError?new TypeError(`Stimulus Value "${this.context.identifier}.${u.name}" - ${c.message}`):c}}}get valueDescriptors(){let{valueDescriptorMap:t}=this;return Object.keys(t).map(n=>t[n])}get valueDescriptorNameMap(){let t={};return Object.keys(this.valueDescriptorMap).forEach(n=>{let i=this.valueDescriptorMap[n];t[i.name]=i}),t}hasValue(t){let n=this.valueDescriptorNameMap[t],i=`has${Ks(n.name)}`;return this.receiver[i]}},Iy=class{constructor(t,n){this.context=t,this.delegate=n,this.targetsByName=new qs}start(){this.tokenListObserver||(this.tokenListObserver=new xd(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:t,content:n}){this.scope.containsElement(t)&&this.connectTarget(t,n)}tokenUnmatched({element:t,content:n}){this.disconnectTarget(t,n)}connectTarget(t,n){var i;this.targetsByName.has(n,t)||(this.targetsByName.add(n,t),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetConnected(t,n)))}disconnectTarget(t,n){var i;this.targetsByName.has(n,t)&&(this.targetsByName.delete(n,t),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetDisconnected(t,n)))}disconnectAllTargets(){for(let t of this.targetsByName.keys)for(let n of this.targetsByName.getValuesForKey(t))this.disconnectTarget(n,t)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}},Ay=class{constructor(t,n){this.logDebugActivity=(i,a={})=>{let{identifier:l,controller:u,element:c}=this;a=Object.assign({identifier:l,controller:u,element:c},a),this.application.logDebugActivity(this.identifier,i,a)},this.module=t,this.scope=n,this.controller=new t.controllerConstructor(this),this.bindingObserver=new Py(this,this.dispatcher),this.valueObserver=new Dy(this,this.controller),this.targetObserver=new Iy(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(i){this.handleError(i,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(t){this.handleError(t,"connecting controller")}}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(t){this.handleError(t,"disconnecting controller")}this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(t,n,i={}){let{identifier:a,controller:l,element:u}=this;i=Object.assign({identifier:a,controller:l,element:u},i),this.application.handleError(t,`Error ${n}`,i)}targetConnected(t,n){this.invokeControllerMethod(`${n}TargetConnected`,t)}targetDisconnected(t,n){this.invokeControllerMethod(`${n}TargetDisconnected`,t)}invokeControllerMethod(t,...n){let i=this.controller;typeof i[t]=="function"&&i[t](...n)}};function Ed(e,t){let n=Ly(e);return Array.from(n.reduce((i,a)=>(KN(a,t).forEach(l=>i.add(l)),i),new Set))}function VN(e,t){return Ly(e).reduce((i,a)=>(i.push(...qN(a,t)),i),[])}function Ly(e){let t=[];for(;e;)t.push(e),e=Object.getPrototypeOf(e);return t.reverse()}function KN(e,t){let n=e[t];return Array.isArray(n)?n:[]}function qN(e,t){let n=e[t];return n?Object.keys(n).map(i=>[i,n[i]]):[]}function YN(e){return XN(e,GN(e))}function XN(e,t){let n=eP(e),i=QN(e.prototype,t);return Object.defineProperties(n.prototype,i),n}function GN(e){return Ed(e,"blessings").reduce((n,i)=>{let a=i(e);for(let l in a){let u=n[l]||{};n[l]=Object.assign(u,a[l])}return n},{})}function QN(e,t){return JN(t).reduce((n,i)=>{let a=ZN(e,t,i);return a&&Object.assign(n,{[i]:a}),n},{})}function ZN(e,t,n){let i=Object.getOwnPropertyDescriptor(e,n);if(!(i&&"value"in i)){let l=Object.getOwnPropertyDescriptor(t,n).value;return i&&(l.get=i.get||l.get,l.set=i.set||l.set),l}}var JN=(()=>typeof Object.getOwnPropertySymbols=="function"?e=>[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)]:Object.getOwnPropertyNames)(),eP=(()=>{function e(n){function i(){return Reflect.construct(n,arguments,new.target)}return i.prototype=Object.create(n.prototype,{constructor:{value:i}}),Reflect.setPrototypeOf(i,n),i}function t(){let i=e(function(){this.a.call(this)});return i.prototype.a=function(){},new i}try{return t(),e}catch(n){return i=>class extends i{}}})();function tP(e){return{identifier:e.identifier,controllerConstructor:YN(e.controllerConstructor)}}var My=class{constructor(t,n){this.application=t,this.definition=tP(n),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(t){let n=this.fetchContextForScope(t);this.connectedContexts.add(n),n.connect()}disconnectContextForScope(t){let n=this.contextsByScope.get(t);n&&(this.connectedContexts.delete(n),n.disconnect())}fetchContextForScope(t){let n=this.contextsByScope.get(t);return n||(n=new Ay(this,t),this.contextsByScope.set(t,n)),n}},Fy=class{constructor(t){this.scope=t}has(t){return this.data.has(this.getDataKey(t))}get(t){return this.getAll(t)[0]}getAll(t){let n=this.data.get(this.getDataKey(t))||"";return FN(n)}getAttributeName(t){return this.data.getAttributeNameForKey(this.getDataKey(t))}getDataKey(t){return`${t}-class`}get data(){return this.scope.data}},Ry=class{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(t){let n=this.getAttributeNameForKey(t);return this.element.getAttribute(n)}set(t,n){let i=this.getAttributeNameForKey(t);return this.element.setAttribute(i,n),this.get(t)}has(t){let n=this.getAttributeNameForKey(t);return this.element.hasAttribute(n)}delete(t){if(this.has(t)){let n=this.getAttributeNameForKey(t);return this.element.removeAttribute(n),!0}else return!1}getAttributeNameForKey(t){return`data-${this.identifier}-${Sy(t)}`}},Uy=class{constructor(t){this.warnedKeysByObject=new WeakMap,this.logger=t}warn(t,n,i){let a=this.warnedKeysByObject.get(t);a||(a=new Set,this.warnedKeysByObject.set(t,a)),a.has(n)||(a.add(n),this.logger.warn(i,t))}};function wd(e,t){return`[${e}~="${t}"]`}var By=class{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(t){return this.find(t)!=null}find(...t){return t.reduce((n,i)=>n||this.findTarget(i)||this.findLegacyTarget(i),void 0)}findAll(...t){return t.reduce((n,i)=>[...n,...this.findAllTargets(i),...this.findAllLegacyTargets(i)],[])}findTarget(t){let n=this.getSelectorForTargetName(t);return this.scope.findElement(n)}findAllTargets(t){let n=this.getSelectorForTargetName(t);return this.scope.findAllElements(n)}getSelectorForTargetName(t){let n=this.schema.targetAttributeForScope(this.identifier);return wd(n,t)}findLegacyTarget(t){let n=this.getLegacySelectorForTargetName(t);return this.deprecate(this.scope.findElement(n),t)}findAllLegacyTargets(t){let n=this.getLegacySelectorForTargetName(t);return this.scope.findAllElements(n).map(i=>this.deprecate(i,t))}getLegacySelectorForTargetName(t){let n=`${this.identifier}.${t}`;return wd(this.schema.targetAttribute,n)}deprecate(t,n){if(t){let{identifier:i}=this,a=this.schema.targetAttribute,l=this.schema.targetAttributeForScope(i);this.guide.warn(t,`target:${n}`,`Please replace ${a}="${i}.${n}" with ${l}="${n}". The ${a} attribute is deprecated and will be removed in a future version of Stimulus.`)}return t}get guide(){return this.scope.guide}},zy=class{constructor(t,n,i,a){this.targets=new By(this),this.classes=new Fy(this),this.data=new Ry(this),this.containsElement=l=>l.closest(this.controllerSelector)===this.element,this.schema=t,this.element=n,this.identifier=i,this.guide=new Uy(a)}findElement(t){return this.element.matches(t)?this.element:this.queryElements(t).find(this.containsElement)}findAllElements(t){return[...this.element.matches(t)?[this.element]:[],...this.queryElements(t).filter(this.containsElement)]}queryElements(t){return Array.from(this.element.querySelectorAll(t))}get controllerSelector(){return wd(this.schema.controllerAttribute,this.identifier)}},jy=class{constructor(t,n,i){this.element=t,this.schema=n,this.delegate=i,this.valueListObserver=new _d(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(t){let{element:n,content:i}=t,a=this.fetchScopesByIdentifierForElement(n),l=a.get(i);return l||(l=this.delegate.createScopeForElementAndIdentifier(n,i),a.set(i,l)),l}elementMatchedValue(t,n){let i=(this.scopeReferenceCounts.get(n)||0)+1;this.scopeReferenceCounts.set(n,i),i==1&&this.delegate.scopeConnected(n)}elementUnmatchedValue(t,n){let i=this.scopeReferenceCounts.get(n);i&&(this.scopeReferenceCounts.set(n,i-1),i==1&&this.delegate.scopeDisconnected(n))}fetchScopesByIdentifierForElement(t){let n=this.scopesByIdentifierByElement.get(t);return n||(n=new Map,this.scopesByIdentifierByElement.set(t,n)),n}},$y=class{constructor(t){this.application=t,this.scopeObserver=new jy(this.element,this.schema,this),this.scopesByIdentifier=new qs,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce((t,n)=>t.concat(n.contexts),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(t){this.unloadIdentifier(t.identifier);let n=new My(this.application,t);this.connectModule(n)}unloadIdentifier(t){let n=this.modulesByIdentifier.get(t);n&&this.disconnectModule(n)}getContextForElementAndIdentifier(t,n){let i=this.modulesByIdentifier.get(n);if(i)return i.contexts.find(a=>a.element==t)}handleError(t,n,i){this.application.handleError(t,n,i)}createScopeForElementAndIdentifier(t,n){return new zy(this.schema,t,n,this.logger)}scopeConnected(t){this.scopesByIdentifier.add(t.identifier,t);let n=this.modulesByIdentifier.get(t.identifier);n&&n.connectContextForScope(t)}scopeDisconnected(t){this.scopesByIdentifier.delete(t.identifier,t);let n=this.modulesByIdentifier.get(t.identifier);n&&n.disconnectContextForScope(t)}connectModule(t){this.modulesByIdentifier.set(t.identifier,t),this.scopesByIdentifier.getValuesForKey(t.identifier).forEach(i=>t.connectContextForScope(i))}disconnectModule(t){this.modulesByIdentifier.delete(t.identifier),this.scopesByIdentifier.getValuesForKey(t.identifier).forEach(i=>t.disconnectContextForScope(i))}},nP={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:e=>`data-${e}-target`},La=class{constructor(t=document.documentElement,n=nP){this.logger=console,this.debug=!1,this.logDebugActivity=(i,a,l={})=>{this.debug&&this.logFormattedMessage(i,a,l)},this.element=t,this.schema=n,this.dispatcher=new _y(this),this.router=new $y(this)}static start(t,n){let i=new La(t,n);return i.start(),i}async start(){await rP(),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(t,n){this.load({identifier:t,controllerConstructor:n})}load(t,...n){(Array.isArray(t)?t:[t,...n]).forEach(a=>{a.controllerConstructor.shouldLoad&&this.router.loadDefinition(a)})}unload(t,...n){(Array.isArray(t)?t:[t,...n]).forEach(a=>this.router.unloadIdentifier(a))}get controllers(){return this.router.contexts.map(t=>t.controller)}getControllerForElementAndIdentifier(t,n){let i=this.router.getContextForElementAndIdentifier(t,n);return i?i.controller:null}handleError(t,n,i){var a;this.logger.error(`%s +}`;var _e=$v(function(){return Ae(v,ie+"return "+W).apply(e,S)});if(_e.source=W,Pf(_e))throw _e;return _e}function fP(r){return Ie(r).toLowerCase()}function dP(r){return Ie(r).toUpperCase()}function pP(r,o,s){if(r=Ie(r),r&&(s||o===e))return Gg(r);if(!r||!(o=en(o)))return r;var f=Dn(r),h=Dn(o),v=Qg(f,h),S=Zg(f,h)+1;return Pr(f,v,S).join("")}function hP(r,o,s){if(r=Ie(r),r&&(s||o===e))return r.slice(0,em(r)+1);if(!r||!(o=en(o)))return r;var f=Dn(r),h=Zg(f,Dn(o))+1;return Pr(f,0,h).join("")}function gP(r,o,s){if(r=Ie(r),r&&(s||o===e))return r.replace(kc,"");if(!r||!(o=en(o)))return r;var f=Dn(r),h=Qg(f,Dn(o));return Pr(f,h).join("")}function mP(r,o){var s=X,f=ee;if(Ze(o)){var h="separator"in o?o.separator:h;s="length"in o?xe(o.length):s,f="omission"in o?en(o.omission):f}r=Ie(r);var v=r.length;if(Wi(r)){var S=Dn(r);v=S.length}if(s>=v)return r;var T=s-Hi(f);if(T<1)return f;var O=S?Pr(S,0,T).join(""):r.slice(0,T);if(h===e)return O+f;if(S&&(T+=O.length-T),Df(h)){if(r.slice(T).search(h)){var U,B=O;for(h.global||(h=Hc(h.source,Ie(yg.exec(h))+"g")),h.lastIndex=0;U=h.exec(B);)var W=U.index;O=O.slice(0,W===e?T:W)}}else if(r.indexOf(en(h),T)!=T){var Y=O.lastIndexOf(h);Y>-1&&(O=O.slice(0,Y))}return O+f}function vP(r){return r=Ie(r),r&&P_.test(r)?r.replace(gg,KE):r}var yP=Gi(function(r,o,s){return r+(s?" ":"")+o.toUpperCase()}),Af=jm("toUpperCase");function zv(r,o,s){return r=Ie(r),o=s?e:o,o===e?$E(r)?XE(r):AE(r):r.match(o)||[]}var $v=Ee(function(r,o){try{return Zt(r,e,o)}catch(s){return Pf(s)?s:new ge(s)}}),wP=ir(function(r,o){return cn(o,function(s){s=Bn(s),nr(r,s,Tf(r[s],r))}),r});function xP(r){var o=r==null?0:r.length,s=se();return r=o?Xe(r,function(f){if(typeof f[1]!="function")throw new fn(a);return[s(f[0]),f[1]]}):[],Ee(function(f){for(var h=-1;++hwe)return[];var s=Ne,f=bt(r,Ne);o=se(o),r-=Ne;for(var h=$c(f,o);++s0||o<0)?new Ce(s):(r<0?s=s.takeRight(-r):r&&(s=s.drop(r)),o!==e&&(o=xe(o),s=o<0?s.dropRight(-o):s.take(o-r)),s)},Ce.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},Ce.prototype.toArray=function(){return this.take(Ne)},Rn(Ce.prototype,function(r,o){var s=/^(?:filter|find|map|reject)|While$/.test(o),f=/^(?:head|last)$/.test(o),h=g[f?"take"+(o=="last"?"Right":""):o],v=f||/^find/.test(o);!h||(g.prototype[o]=function(){var S=this.__wrapped__,T=f?[1]:arguments,O=S instanceof Ce,U=T[0],B=O||ve(S),W=function(Se){var be=h.apply(g,_r([Se],T));return f&&Y?be[0]:be};B&&s&&typeof U=="function"&&U.length!=1&&(O=B=!1);var Y=this.__chain__,ie=!!this.__actions__.length,ce=v&&!Y,_e=O&&!ie;if(!v&&B){S=_e?S:new Ce(this);var fe=r.apply(S,T);return fe.__actions__.push({func:xs,args:[W],thisArg:e}),new dn(fe,Y)}return ce&&_e?r.apply(this,T):(fe=this.thru(W),ce?f?fe.value()[0]:fe.value():fe)})}),cn(["pop","push","shift","sort","splice","unshift"],function(r){var o=Kl[r],s=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",f=/^(?:pop|shift)$/.test(r);g.prototype[r]=function(){var h=arguments;if(f&&!this.__chain__){var v=this.value();return o.apply(ve(v)?v:[],h)}return this[s](function(S){return o.apply(ve(S)?S:[],h)})}}),Rn(Ce.prototype,function(r,o){var s=g[o];if(s){var f=s.name+"";Fe.call(qi,f)||(qi[f]=[]),qi[f].push({name:o,func:s})}}),qi[ps(e,P).name]=[{name:"wrapper",func:e}],Ce.prototype.clone=vS,Ce.prototype.reverse=yS,Ce.prototype.value=wS,g.prototype.at=Yb,g.prototype.chain=Xb,g.prototype.commit=Gb,g.prototype.next=Qb,g.prototype.plant=Jb,g.prototype.reverse=eT,g.prototype.toJSON=g.prototype.valueOf=g.prototype.value=tT,g.prototype.first=g.prototype.head,ta&&(g.prototype[ta]=Zb),g},Sr=GE();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(pt._=Sr,define(function(){return Sr})):ai?((ai.exports=Sr)._=Sr,Ic._=Sr):pt._=Sr}).call(Uo)});var r_=Ue((Pl,Ph)=>{(function(t,n){typeof Pl=="object"&&typeof Ph=="object"?Ph.exports=n(re()):typeof define=="function"&&define.amd?define(["react"],n):typeof Pl=="object"?Pl.ReactCrop=n(re()):t.ReactCrop=n(t.React)})(typeof self<"u"?self:Pl,function(e){return function(t){var n={};function i(a){if(n[a])return n[a].exports;var l=n[a]={i:a,l:!1,exports:{}};return t[a].call(l.exports,l,l.exports,i),l.l=!0,l.exports}return i.m=t,i.c=n,i.d=function(a,l,u){i.o(a,l)||Object.defineProperty(a,l,{configurable:!1,enumerable:!0,get:u})},i.n=function(a){var l=a&&a.__esModule?function(){return a.default}:function(){return a};return i.d(l,"a",l),l},i.o=function(a,l){return Object.prototype.hasOwnProperty.call(a,l)},i.p="",i(i.s=2)}([function(t,n){var i=t.exports={},a,l;function u(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?a=setTimeout:a=u}catch(m){a=u}try{typeof clearTimeout=="function"?l=clearTimeout:l=c}catch(m){l=c}})();function d(m){if(a===setTimeout)return setTimeout(m,0);if((a===u||!a)&&setTimeout)return a=setTimeout,setTimeout(m,0);try{return a(m,0)}catch(b){try{return a.call(null,m,0)}catch(N){return a.call(this,m,0)}}}function p(m){if(l===clearTimeout)return clearTimeout(m);if((l===c||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(m);try{return l(m)}catch(b){try{return l.call(null,m)}catch(N){return l.call(this,m)}}}var y=[],x=!1,E,C=-1;function k(){!x||!E||(x=!1,E.length?y=E.concat(y):C=-1,y.length&&P())}function P(){if(!x){var m=d(k);x=!0;for(var b=y.length;b;){for(E=y,y=[];++C1)for(var N=1;N100&&(te.height=100-j.y,te.width=te.height*j.aspect/R),j.x+(te.width||j.width)>100&&(te.width=100-j.x,te.height=te.width/j.aspect*R),te}function z(j,R){return j&&j.aspect&&(!j.width&&j.height||j.width&&!j.height)?V(j,R.naturalWidth/R.naturalHeight):j}function X(j,R){if(!j||!R)return null;var te=Math.round(j.naturalWidth*(R.x/100)),I=Math.round(j.naturalHeight*(R.y/100)),L=Math.round(j.naturalWidth*(R.width/100)),we=Math.round(j.naturalHeight*(R.height/100));return{x:te,y:I,width:b(L,0,j.naturalWidth-te),height:b(we,0,j.naturalHeight-I)}}function ee(j,R,te){var I=l({},R),L=!1;I.x+I.width>100?(I.width=R.width+(100-(R.x+R.width)),I.x=R.x+(100-(R.x+I.width)),L=!0):I.x<0&&(I.width=R.x+R.width,I.x=0,L=!0),L&&R.aspect&&(I.height=I.width/R.aspect*te,j.y>I.y&&(I.y=R.y+(R.height-I.height)));var we=!1;return I.y+I.height>100?(I.height=R.height+(100-(R.y+R.height)),I.y=R.y+(100-(R.y+I.height)),we=!0):I.y<0&&(I.height=R.y+R.height,I.y=0,we=!0),we&&R.aspect&&(I.width=I.height*R.aspect/te,I.x-1?(I.x=F.x,I.y=F.y,I.width=F.width,I.height=F.height):R.xOrds.indexOf(we)>-1?(I.x=F.x,I.width=F.width):R.yOrds.indexOf(we)>-1&&(I.y=F.y,I.height=F.height),L.lastYCrossover=L.yCrossOver,this.crossOverCheck(),I}},{key:"straightenYPath",value:function(I){var L=this.evData,we=L.ord,He=L.cropOffset,Ve=L.cropStartWidth/100*this.imageRef.width,Ne=L.cropStartHeight/100*this.imageRef.height,me=void 0,F=void 0;return we==="nw"||we==="se"?(me=Ne/Ve,F=He.top-He.left*me):(me=-Ne/Ve,F=He.top+(Ne-He.left*me)),me*I+F}},{key:"createCropSelection",value:function(){var I=this,L=this.props.disabled,we=this.getCropStyle();return c.default.createElement("div",{ref:function(Ve){I.cropSelectRef=Ve},style:we,className:"ReactCrop__crop-selection",onMouseDown:this.onCropMouseTouchDown,onTouchStart:this.onCropMouseTouchDown,role:"presentation"},!L&&c.default.createElement("div",{className:"ReactCrop__drag-elements"},c.default.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),c.default.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw"}),c.default.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w"})))}},{key:"makeNewCrop",value:function(){return l({},R.defaultCrop,this.props.crop)}},{key:"crossOverCheck",value:function(){var I=this.evData;(!I.xCrossOver&&-Math.abs(I.cropStartWidth)-I.xDiffPc>=0||I.xCrossOver&&-Math.abs(I.cropStartWidth)-I.xDiffPc<=0)&&(I.xCrossOver=!I.xCrossOver),(!I.yCrossOver&&-Math.abs(I.cropStartHeight)-I.yDiffPc>=0||I.yCrossOver&&-Math.abs(I.cropStartHeight)-I.yDiffPc<=0)&&(I.yCrossOver=!I.yCrossOver);var L=I.xCrossOver!==I.startXCrossOver,we=I.yCrossOver!==I.startYCrossOver;I.inversedXOrd=L?q(I.ord):!1,I.inversedYOrd=we?q(I.ord):!1}},{key:"render",value:function(){var I=this,L=this.props,we=L.children,He=L.className,Ve=L.crossorigin,Ne=L.crop,me=L.disabled,F=L.imageAlt,K=L.onImageError,ae=L.src,de=L.style,ue=L.imageStyle,le=this.state.cropIsActive,ne=void 0;N(Ne)&&(ne=this.createCropSelection());var G=["ReactCrop"];return le&&G.push("ReactCrop--active"),Ne&&(Ne.aspect&&G.push("ReactCrop--fixed-aspect"),le&&(!Ne.width||!Ne.height)&&G.push("ReactCrop--crop-invisible")),me&&G.push("ReactCrop--disabled"),He&&G.push.apply(G,x(He.split(" "))),c.default.createElement("div",{ref:function(pe){I.componentRef=pe},className:G.join(" "),style:de,onTouchStart:this.onComponentMouseTouchDown,onMouseDown:this.onComponentMouseTouchDown,role:"presentation",tabIndex:"1",onKeyDown:this.onComponentKeyDown},c.default.createElement("img",{ref:function(pe){I.imageRef=pe},crossOrigin:Ve,className:"ReactCrop__image",style:ue,src:ae,onLoad:function(pe){return I.onImageLoad(pe.target)},onError:K,alt:F}),ne,we)}}]),R}(u.PureComponent);ke.xOrds=["e","w"],ke.yOrds=["n","s"],ke.xyOrds=["nw","ne","se","sw"],ke.arrowKey={left:37,up:38,right:39,down:40},ke.nudgeStep=.2,ke.defaultCrop={x:0,y:0,width:0,height:0},ke.propTypes={className:p.default.string,crossorigin:p.default.string,children:p.default.oneOfType([p.default.arrayOf(p.default.node),p.default.node]),crop:p.default.shape({aspect:p.default.number,x:p.default.number,y:p.default.number,width:p.default.number,height:p.default.number}),disabled:p.default.bool,imageAlt:p.default.string,imageStyle:p.default.shape({}),keepSelection:p.default.bool,minWidth:p.default.number,minHeight:p.default.number,maxWidth:p.default.number,maxHeight:p.default.number,onChange:p.default.func.isRequired,onImageError:p.default.func,onComplete:p.default.func,onImageLoaded:p.default.func,onDragStart:p.default.func,onDragEnd:p.default.func,src:p.default.string.isRequired,style:p.default.shape({})},ke.defaultProps={className:void 0,crop:void 0,crossorigin:void 0,disabled:!1,imageAlt:"",maxWidth:100,maxHeight:100,minWidth:0,minHeight:0,keepSelection:!1,onComplete:function(){},onImageError:function(){},onImageLoaded:function(){},onDragStart:function(){},onDragEnd:function(){},children:void 0,style:void 0,imageStyle:void 0},t.exports=ke,t.exports.getPixelCrop=X,t.exports.makeAspectCrop=V,t.exports.containCrop=ee},function(t,n){t.exports=e},function(t,n,i){(function(a){if(a.env.NODE_ENV!=="production"){var l=typeof Symbol=="function"&&Symbol.for&&Symbol.for("react.element")||60103,u=function(d){return typeof d=="object"&&d!==null&&d.$$typeof===l},c=!0;t.exports=i(5)(u,c)}else t.exports=i(8)()}).call(n,i(0))},function(t,n,i){"use strict";(function(a){var l=i(6),u=i(1),c=i(7),d=function(){};a.env.NODE_ENV!=="production"&&(d=function(y){var x="Warning: "+y;typeof console<"u"&&console.error(x);try{throw new Error(x)}catch(E){}});function p(){return null}t.exports=function(y,x){var E=typeof Symbol=="function"&&Symbol.iterator,C="@@iterator";function k(F){var K=F&&(E&&F[E]||F[C]);if(typeof K=="function")return K}var P="<>",_={array:N("array"),bool:N("boolean"),func:N("function"),number:N("number"),object:N("object"),string:N("string"),symbol:N("symbol"),any:q(),arrayOf:V,element:z(),instanceOf:X,node:R(),objectOf:ke,oneOf:ee,oneOfType:j,shape:te,exact:I};function w(F,K){return F===K?F!==0||1/F===1/K:F!==F&&K!==K}function m(F){this.message=F,this.stack=""}m.prototype=Error.prototype;function b(F){if(a.env.NODE_ENV!=="production")var K={},ae=0;function de(le,ne,G,ye,pe,Oe,st){if(ye=ye||P,Oe=Oe||G,st!==u){if(x){var kn=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw kn.name="Invariant Violation",kn}else if(a.env.NODE_ENV!=="production"&&typeof console<"u"){var Ul=ye+":"+G;!K[Ul]&&ae<3&&(d("You are manually calling a React.PropTypes validation function for the `"+Oe+"` prop on `"+ye+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),K[Ul]=!0,ae++)}}return ne[G]==null?le?ne[G]===null?new m("The "+pe+" `"+Oe+"` is marked as required "+("in `"+ye+"`, but its value is `null`.")):new m("The "+pe+" `"+Oe+"` is marked as required in "+("`"+ye+"`, but its value is `undefined`.")):null:F(ne,G,ye,pe,Oe)}var ue=de.bind(null,!1);return ue.isRequired=de.bind(null,!0),ue}function N(F){function K(ae,de,ue,le,ne,G){var ye=ae[de],pe=He(ye);if(pe!==F){var Oe=Ve(ye);return new m("Invalid "+le+" `"+ne+"` of type "+("`"+Oe+"` supplied to `"+ue+"`, expected ")+("`"+F+"`."))}return null}return b(K)}function q(){return b(p)}function V(F){function K(ae,de,ue,le,ne){if(typeof F!="function")return new m("Property `"+ne+"` of component `"+ue+"` has invalid PropType notation inside arrayOf.");var G=ae[de];if(!Array.isArray(G)){var ye=He(G);return new m("Invalid "+le+" `"+ne+"` of type "+("`"+ye+"` supplied to `"+ue+"`, expected an array."))}for(var pe=0;pe"u"||F===null)return""+F;var K=He(F);if(K==="object"){if(F instanceof Date)return"date";if(F instanceof RegExp)return"regexp"}return K}function Ne(F){var K=Ve(F);switch(K){case"array":case"object":return"an "+K;case"boolean":case"date":case"regexp":return"a "+K;default:return K}}function me(F){return!F.constructor||!F.constructor.name?P:F.constructor.name}return _.checkPropTypes=c,_.PropTypes=_,_}}).call(n,i(0))},function(t,n,i){"use strict";var a=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;function c(p){if(p==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(p)}function d(){try{if(!Object.assign)return!1;var p=new String("abc");if(p[5]="de",Object.getOwnPropertyNames(p)[0]==="5")return!1;for(var y={},x=0;x<10;x++)y["_"+String.fromCharCode(x)]=x;var E=Object.getOwnPropertyNames(y).map(function(k){return y[k]});if(E.join("")!=="0123456789")return!1;var C={};return"abcdefghijklmnopqrst".split("").forEach(function(k){C[k]=k}),Object.keys(Object.assign({},C)).join("")==="abcdefghijklmnopqrst"}catch(k){return!1}}t.exports=d()?Object.assign:function(p,y){for(var x,E=c(p),C,k=1;k{i_.exports=r_()});var __=oe(Yv());var Zv=class{constructor(t,n,i){this.eventTarget=t,this.eventName=n,this.eventOptions=i,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(t){this.unorderedBindings.add(t)}bindingDisconnected(t){this.unorderedBindings.delete(t)}handleEvent(t){let n=hD(t);for(let i of this.bindings){if(n.immediatePropagationStopped)break;i.handleEvent(n)}}get bindings(){return Array.from(this.unorderedBindings).sort((t,n)=>{let i=t.index,a=n.index;return ia?1:0})}};function hD(e){if("immediatePropagationStopped"in e)return e;{let{stopImmediatePropagation:t}=e;return Object.assign(e,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,t.call(this)}})}}var Jv=class{constructor(t){this.application=t,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach(t=>t.connect()))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach(t=>t.disconnect()))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce((t,n)=>t.concat(Array.from(n.values())),[])}bindingConnected(t){this.fetchEventListenerForBinding(t).bindingConnected(t)}bindingDisconnected(t){this.fetchEventListenerForBinding(t).bindingDisconnected(t)}handleError(t,n,i={}){this.application.handleError(t,`Error ${n}`,i)}fetchEventListenerForBinding(t){let{eventTarget:n,eventName:i,eventOptions:a}=t;return this.fetchEventListener(n,i,a)}fetchEventListener(t,n,i){let a=this.fetchEventListenerMapForEventTarget(t),l=this.cacheKey(n,i),u=a.get(l);return u||(u=this.createEventListener(t,n,i),a.set(l,u)),u}createEventListener(t,n,i){let a=new Zv(t,n,i);return this.started&&a.connect(),a}fetchEventListenerMapForEventTarget(t){let n=this.eventListenerMaps.get(t);return n||(n=new Map,this.eventListenerMaps.set(t,n)),n}cacheKey(t,n){let i=[t];return Object.keys(n).sort().forEach(a=>{i.push(`${n[a]?"":"!"}${a}`)}),i.join(":")}},gD=/^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;function mD(e){let n=e.trim().match(gD)||[];return{eventTarget:vD(n[4]),eventName:n[2],eventOptions:n[9]?yD(n[9]):{},identifier:n[5],methodName:n[7]}}function vD(e){if(e=="window")return window;if(e=="document")return document}function yD(e){return e.split(":").reduce((t,n)=>Object.assign(t,{[n.replace(/^!/,"")]:!/^!/.test(n)}),{})}function wD(e){if(e==window)return"window";if(e==document)return"document"}function ey(e){return e.replace(/(?:[_-])([a-z0-9])/g,(t,n)=>n.toUpperCase())}function Ds(e){return e.charAt(0).toUpperCase()+e.slice(1)}function ty(e){return e.replace(/([A-Z])/g,(t,n)=>`-${n.toLowerCase()}`)}function xD(e){return e.match(/[^\s]+/g)||[]}var ny=class{constructor(t,n,i){this.element=t,this.index=n,this.eventTarget=i.eventTarget||t,this.eventName=i.eventName||_D(t)||Bf("missing event name"),this.eventOptions=i.eventOptions||{},this.identifier=i.identifier||Bf("missing identifier"),this.methodName=i.methodName||Bf("missing method name")}static forToken(t){return new this(t.element,t.index,mD(t.content))}toString(){let t=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${t}->${this.identifier}#${this.methodName}`}get params(){let t={},n=new RegExp(`^data-${this.identifier}-(.+)-param$`);for(let{name:i,value:a}of Array.from(this.element.attributes)){let l=i.match(n),u=l&&l[1];u&&(t[ey(u)]=ED(a))}return t}get eventTargetName(){return wD(this.eventTarget)}},Xv={a:e=>"click",button:e=>"click",form:e=>"submit",details:e=>"toggle",input:e=>e.getAttribute("type")=="submit"?"click":"input",select:e=>"change",textarea:e=>"input"};function _D(e){let t=e.tagName.toLowerCase();if(t in Xv)return Xv[t](e)}function Bf(e){throw new Error(e)}function ED(e){try{return JSON.parse(e)}catch(t){return e}}var ry=class{constructor(t,n){this.context=t,this.action=n}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}get identifier(){return this.context.identifier}handleEvent(t){this.willBeInvokedByEvent(t)&&this.shouldBeInvokedPerSelf(t)&&(this.processStopPropagation(t),this.processPreventDefault(t),this.invokeWithEvent(t))}get eventName(){return this.action.eventName}get method(){let t=this.controller[this.methodName];if(typeof t=="function")return t;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}processStopPropagation(t){this.eventOptions.stop&&t.stopPropagation()}processPreventDefault(t){this.eventOptions.prevent&&t.preventDefault()}invokeWithEvent(t){let{target:n,currentTarget:i}=t;try{let{params:a}=this.action,l=Object.assign(t,{params:a});this.method.call(this.controller,l),this.context.logDebugActivity(this.methodName,{event:t,target:n,currentTarget:i,action:this.methodName})}catch(a){let{identifier:l,controller:u,element:c,index:d}=this,p={identifier:l,controller:u,element:c,index:d,event:t};this.context.handleError(a,`invoking action "${this.action}"`,p)}}shouldBeInvokedPerSelf(t){return this.action.eventOptions.self===!0?this.action.element===t.target:!0}willBeInvokedByEvent(t){let n=t.target;return this.element===n?!0:n instanceof Element&&this.element.contains(n)?this.scope.containsElement(n):this.scope.containsElement(this.action.element)}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}},iy=class{constructor(t,n){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=t,this.started=!1,this.delegate=n,this.elements=new Set,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(t){this.started&&(this.mutationObserver.disconnect(),this.started=!1),t(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){let t=new Set(this.matchElementsInTree());for(let n of Array.from(this.elements))t.has(n)||this.removeElement(n);for(let n of Array.from(t))this.addElement(n)}}processMutations(t){if(this.started)for(let n of t)this.processMutation(n)}processMutation(t){t.type=="attributes"?this.processAttributeChange(t.target,t.attributeName):t.type=="childList"&&(this.processRemovedNodes(t.removedNodes),this.processAddedNodes(t.addedNodes))}processAttributeChange(t,n){let i=t;this.elements.has(i)?this.delegate.elementAttributeChanged&&this.matchElement(i)?this.delegate.elementAttributeChanged(i,n):this.removeElement(i):this.matchElement(i)&&this.addElement(i)}processRemovedNodes(t){for(let n of Array.from(t)){let i=this.elementFromNode(n);i&&this.processTree(i,this.removeElement)}}processAddedNodes(t){for(let n of Array.from(t)){let i=this.elementFromNode(n);i&&this.elementIsActive(i)&&this.processTree(i,this.addElement)}}matchElement(t){return this.delegate.matchElement(t)}matchElementsInTree(t=this.element){return this.delegate.matchElementsInTree(t)}processTree(t,n){for(let i of this.matchElementsInTree(t))n.call(this,i)}elementFromNode(t){if(t.nodeType==Node.ELEMENT_NODE)return t}elementIsActive(t){return t.isConnected!=this.element.isConnected?!1:this.element.contains(t)}addElement(t){this.elements.has(t)||this.elementIsActive(t)&&(this.elements.add(t),this.delegate.elementMatched&&this.delegate.elementMatched(t))}removeElement(t){this.elements.has(t)&&(this.elements.delete(t),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(t))}},oy=class{constructor(t,n,i){this.attributeName=n,this.delegate=i,this.elementObserver=new iy(t,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(t){this.elementObserver.pause(t)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(t){return t.hasAttribute(this.attributeName)}matchElementsInTree(t){let n=this.matchElement(t)?[t]:[],i=Array.from(t.querySelectorAll(this.selector));return n.concat(i)}elementMatched(t){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(t,this.attributeName)}elementUnmatched(t){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(t,this.attributeName)}elementAttributeChanged(t,n){this.delegate.elementAttributeValueChanged&&this.attributeName==n&&this.delegate.elementAttributeValueChanged(t,n)}},ay=class{constructor(t,n){this.element=t,this.delegate=n,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(let t of this.knownAttributeNames)this.refreshAttribute(t,null)}processMutations(t){if(this.started)for(let n of t)this.processMutation(n)}processMutation(t){let n=t.attributeName;n&&this.refreshAttribute(n,t.oldValue)}refreshAttribute(t,n){let i=this.delegate.getStringMapKeyForAttribute(t);if(i!=null){this.stringMap.has(t)||this.stringMapKeyAdded(i,t);let a=this.element.getAttribute(t);if(this.stringMap.get(t)!=a&&this.stringMapValueChanged(a,i,n),a==null){let l=this.stringMap.get(t);this.stringMap.delete(t),l&&this.stringMapKeyRemoved(i,t,l)}else this.stringMap.set(t,a)}}stringMapKeyAdded(t,n){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(t,n)}stringMapValueChanged(t,n,i){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(t,n,i)}stringMapKeyRemoved(t,n,i){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(t,n,i)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map(t=>t.name)}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}};function SD(e,t,n){ly(e,t).add(n)}function CD(e,t,n){ly(e,t).delete(n),bD(e,t)}function ly(e,t){let n=e.get(t);return n||(n=new Set,e.set(t,n)),n}function bD(e,t){let n=e.get(t);n!=null&&n.size==0&&e.delete(t)}var Ns=class{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce((n,i)=>n.concat(Array.from(i)),[])}get size(){return Array.from(this.valuesByKey.values()).reduce((n,i)=>n+i.size,0)}add(t,n){SD(this.valuesByKey,t,n)}delete(t,n){CD(this.valuesByKey,t,n)}has(t,n){let i=this.valuesByKey.get(t);return i!=null&&i.has(n)}hasKey(t){return this.valuesByKey.has(t)}hasValue(t){return Array.from(this.valuesByKey.values()).some(i=>i.has(t))}getValuesForKey(t){let n=this.valuesByKey.get(t);return n?Array.from(n):[]}getKeysForValue(t){return Array.from(this.valuesByKey).filter(([n,i])=>i.has(t)).map(([n,i])=>n)}};var $f=class{constructor(t,n,i){this.attributeObserver=new oy(t,n,this),this.delegate=i,this.tokensByElement=new Ns}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(t){this.attributeObserver.pause(t)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(t){this.tokensMatched(this.readTokensForElement(t))}elementAttributeValueChanged(t){let[n,i]=this.refreshTokensForElement(t);this.tokensUnmatched(n),this.tokensMatched(i)}elementUnmatchedAttribute(t){this.tokensUnmatched(this.tokensByElement.getValuesForKey(t))}tokensMatched(t){t.forEach(n=>this.tokenMatched(n))}tokensUnmatched(t){t.forEach(n=>this.tokenUnmatched(n))}tokenMatched(t){this.delegate.tokenMatched(t),this.tokensByElement.add(t.element,t)}tokenUnmatched(t){this.delegate.tokenUnmatched(t),this.tokensByElement.delete(t.element,t)}refreshTokensForElement(t){let n=this.tokensByElement.getValuesForKey(t),i=this.readTokensForElement(t),a=kD(n,i).findIndex(([l,u])=>!PD(l,u));return a==-1?[[],[]]:[n.slice(a),i.slice(a)]}readTokensForElement(t){let n=this.attributeName,i=t.getAttribute(n)||"";return TD(i,t,n)}};function TD(e,t,n){return e.trim().split(/\s+/).filter(i=>i.length).map((i,a)=>({element:t,attributeName:n,content:i,index:a}))}function kD(e,t){let n=Math.max(e.length,t.length);return Array.from({length:n},(i,a)=>[e[a],t[a]])}function PD(e,t){return e&&t&&e.index==t.index&&e.content==t.content}var jf=class{constructor(t,n,i){this.tokenListObserver=new $f(t,n,this),this.delegate=i,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(t){let{element:n}=t,{value:i}=this.fetchParseResultForToken(t);i&&(this.fetchValuesByTokenForElement(n).set(t,i),this.delegate.elementMatchedValue(n,i))}tokenUnmatched(t){let{element:n}=t,{value:i}=this.fetchParseResultForToken(t);i&&(this.fetchValuesByTokenForElement(n).delete(t),this.delegate.elementUnmatchedValue(n,i))}fetchParseResultForToken(t){let n=this.parseResultsByToken.get(t);return n||(n=this.parseToken(t),this.parseResultsByToken.set(t,n)),n}fetchValuesByTokenForElement(t){let n=this.valuesByTokenByElement.get(t);return n||(n=new Map,this.valuesByTokenByElement.set(t,n)),n}parseToken(t){try{return{value:this.delegate.parseValueForToken(t)}}catch(n){return{error:n}}}},sy=class{constructor(t,n){this.context=t,this.delegate=n,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new jf(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(t){let n=new ry(this.context,t);this.bindingsByAction.set(t,n),this.delegate.bindingConnected(n)}disconnectAction(t){let n=this.bindingsByAction.get(t);n&&(this.bindingsByAction.delete(t),this.delegate.bindingDisconnected(n))}disconnectAllActions(){this.bindings.forEach(t=>this.delegate.bindingDisconnected(t)),this.bindingsByAction.clear()}parseValueForToken(t){let n=ny.forToken(t);if(n.identifier==this.identifier)return n}elementMatchedValue(t,n){this.connectAction(n)}elementUnmatchedValue(t,n){this.disconnectAction(n)}},uy=class{constructor(t,n){this.context=t,this.receiver=n,this.stringMapObserver=new ay(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap}start(){this.stringMapObserver.start(),this.invokeChangedCallbacksForDefaultValues()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(t){if(t in this.valueDescriptorMap)return this.valueDescriptorMap[t].name}stringMapKeyAdded(t,n){let i=this.valueDescriptorMap[n];this.hasValue(t)||this.invokeChangedCallback(t,i.writer(this.receiver[t]),i.writer(i.defaultValue))}stringMapValueChanged(t,n,i){let a=this.valueDescriptorNameMap[n];t!==null&&(i===null&&(i=a.writer(a.defaultValue)),this.invokeChangedCallback(n,t,i))}stringMapKeyRemoved(t,n,i){let a=this.valueDescriptorNameMap[t];this.hasValue(t)?this.invokeChangedCallback(t,a.writer(this.receiver[t]),i):this.invokeChangedCallback(t,a.writer(a.defaultValue),i)}invokeChangedCallbacksForDefaultValues(){for(let{key:t,name:n,defaultValue:i,writer:a}of this.valueDescriptors)i!=null&&!this.controller.data.has(t)&&this.invokeChangedCallback(n,a(i),void 0)}invokeChangedCallback(t,n,i){let a=`${t}Changed`,l=this.receiver[a];if(typeof l=="function"){let u=this.valueDescriptorNameMap[t];try{let c=u.reader(n),d=i;i&&(d=u.reader(i)),l.call(this.receiver,c,d)}catch(c){throw c instanceof TypeError?new TypeError(`Stimulus Value "${this.context.identifier}.${u.name}" - ${c.message}`):c}}}get valueDescriptors(){let{valueDescriptorMap:t}=this;return Object.keys(t).map(n=>t[n])}get valueDescriptorNameMap(){let t={};return Object.keys(this.valueDescriptorMap).forEach(n=>{let i=this.valueDescriptorMap[n];t[i.name]=i}),t}hasValue(t){let n=this.valueDescriptorNameMap[t],i=`has${Ds(n.name)}`;return this.receiver[i]}},cy=class{constructor(t,n){this.context=t,this.delegate=n,this.targetsByName=new Ns}start(){this.tokenListObserver||(this.tokenListObserver=new $f(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:t,content:n}){this.scope.containsElement(t)&&this.connectTarget(t,n)}tokenUnmatched({element:t,content:n}){this.disconnectTarget(t,n)}connectTarget(t,n){var i;this.targetsByName.has(n,t)||(this.targetsByName.add(n,t),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetConnected(t,n)))}disconnectTarget(t,n){var i;this.targetsByName.has(n,t)&&(this.targetsByName.delete(n,t),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetDisconnected(t,n)))}disconnectAllTargets(){for(let t of this.targetsByName.keys)for(let n of this.targetsByName.getValuesForKey(t))this.disconnectTarget(n,t)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}},fy=class{constructor(t,n){this.logDebugActivity=(i,a={})=>{let{identifier:l,controller:u,element:c}=this;a=Object.assign({identifier:l,controller:u,element:c},a),this.application.logDebugActivity(this.identifier,i,a)},this.module=t,this.scope=n,this.controller=new t.controllerConstructor(this),this.bindingObserver=new sy(this,this.dispatcher),this.valueObserver=new uy(this,this.controller),this.targetObserver=new cy(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(i){this.handleError(i,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(t){this.handleError(t,"connecting controller")}}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(t){this.handleError(t,"disconnecting controller")}this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(t,n,i={}){let{identifier:a,controller:l,element:u}=this;i=Object.assign({identifier:a,controller:l,element:u},i),this.application.handleError(t,`Error ${n}`,i)}targetConnected(t,n){this.invokeControllerMethod(`${n}TargetConnected`,t)}targetDisconnected(t,n){this.invokeControllerMethod(`${n}TargetDisconnected`,t)}invokeControllerMethod(t,...n){let i=this.controller;typeof i[t]=="function"&&i[t](...n)}};function Wf(e,t){let n=dy(e);return Array.from(n.reduce((i,a)=>(ND(a,t).forEach(l=>i.add(l)),i),new Set))}function DD(e,t){return dy(e).reduce((i,a)=>(i.push(...OD(a,t)),i),[])}function dy(e){let t=[];for(;e;)t.push(e),e=Object.getPrototypeOf(e);return t.reverse()}function ND(e,t){let n=e[t];return Array.isArray(n)?n:[]}function OD(e,t){let n=e[t];return n?Object.keys(n).map(i=>[i,n[i]]):[]}function AD(e){return ID(e,LD(e))}function ID(e,t){let n=UD(e),i=MD(e.prototype,t);return Object.defineProperties(n.prototype,i),n}function LD(e){return Wf(e,"blessings").reduce((n,i)=>{let a=i(e);for(let l in a){let u=n[l]||{};n[l]=Object.assign(u,a[l])}return n},{})}function MD(e,t){return RD(t).reduce((n,i)=>{let a=FD(e,t,i);return a&&Object.assign(n,{[i]:a}),n},{})}function FD(e,t,n){let i=Object.getOwnPropertyDescriptor(e,n);if(!(i&&"value"in i)){let l=Object.getOwnPropertyDescriptor(t,n).value;return i&&(l.get=i.get||l.get,l.set=i.set||l.set),l}}var RD=(()=>typeof Object.getOwnPropertySymbols=="function"?e=>[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)]:Object.getOwnPropertyNames)(),UD=(()=>{function e(n){function i(){return Reflect.construct(n,arguments,new.target)}return i.prototype=Object.create(n.prototype,{constructor:{value:i}}),Reflect.setPrototypeOf(i,n),i}function t(){let i=e(function(){this.a.call(this)});return i.prototype.a=function(){},new i}try{return t(),e}catch(n){return i=>class extends i{}}})();function BD(e){return{identifier:e.identifier,controllerConstructor:AD(e.controllerConstructor)}}var py=class{constructor(t,n){this.application=t,this.definition=BD(n),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(t){let n=this.fetchContextForScope(t);this.connectedContexts.add(n),n.connect()}disconnectContextForScope(t){let n=this.contextsByScope.get(t);n&&(this.connectedContexts.delete(n),n.disconnect())}fetchContextForScope(t){let n=this.contextsByScope.get(t);return n||(n=new fy(this,t),this.contextsByScope.set(t,n)),n}},hy=class{constructor(t){this.scope=t}has(t){return this.data.has(this.getDataKey(t))}get(t){return this.getAll(t)[0]}getAll(t){let n=this.data.get(this.getDataKey(t))||"";return xD(n)}getAttributeName(t){return this.data.getAttributeNameForKey(this.getDataKey(t))}getDataKey(t){return`${t}-class`}get data(){return this.scope.data}},gy=class{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(t){let n=this.getAttributeNameForKey(t);return this.element.getAttribute(n)}set(t,n){let i=this.getAttributeNameForKey(t);return this.element.setAttribute(i,n),this.get(t)}has(t){let n=this.getAttributeNameForKey(t);return this.element.hasAttribute(n)}delete(t){if(this.has(t)){let n=this.getAttributeNameForKey(t);return this.element.removeAttribute(n),!0}else return!1}getAttributeNameForKey(t){return`data-${this.identifier}-${ty(t)}`}},my=class{constructor(t){this.warnedKeysByObject=new WeakMap,this.logger=t}warn(t,n,i){let a=this.warnedKeysByObject.get(t);a||(a=new Set,this.warnedKeysByObject.set(t,a)),a.has(n)||(a.add(n),this.logger.warn(i,t))}};function zf(e,t){return`[${e}~="${t}"]`}var vy=class{constructor(t){this.scope=t}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(t){return this.find(t)!=null}find(...t){return t.reduce((n,i)=>n||this.findTarget(i)||this.findLegacyTarget(i),void 0)}findAll(...t){return t.reduce((n,i)=>[...n,...this.findAllTargets(i),...this.findAllLegacyTargets(i)],[])}findTarget(t){let n=this.getSelectorForTargetName(t);return this.scope.findElement(n)}findAllTargets(t){let n=this.getSelectorForTargetName(t);return this.scope.findAllElements(n)}getSelectorForTargetName(t){let n=this.schema.targetAttributeForScope(this.identifier);return zf(n,t)}findLegacyTarget(t){let n=this.getLegacySelectorForTargetName(t);return this.deprecate(this.scope.findElement(n),t)}findAllLegacyTargets(t){let n=this.getLegacySelectorForTargetName(t);return this.scope.findAllElements(n).map(i=>this.deprecate(i,t))}getLegacySelectorForTargetName(t){let n=`${this.identifier}.${t}`;return zf(this.schema.targetAttribute,n)}deprecate(t,n){if(t){let{identifier:i}=this,a=this.schema.targetAttribute,l=this.schema.targetAttributeForScope(i);this.guide.warn(t,`target:${n}`,`Please replace ${a}="${i}.${n}" with ${l}="${n}". The ${a} attribute is deprecated and will be removed in a future version of Stimulus.`)}return t}get guide(){return this.scope.guide}},yy=class{constructor(t,n,i,a){this.targets=new vy(this),this.classes=new hy(this),this.data=new gy(this),this.containsElement=l=>l.closest(this.controllerSelector)===this.element,this.schema=t,this.element=n,this.identifier=i,this.guide=new my(a)}findElement(t){return this.element.matches(t)?this.element:this.queryElements(t).find(this.containsElement)}findAllElements(t){return[...this.element.matches(t)?[this.element]:[],...this.queryElements(t).filter(this.containsElement)]}queryElements(t){return Array.from(this.element.querySelectorAll(t))}get controllerSelector(){return zf(this.schema.controllerAttribute,this.identifier)}},wy=class{constructor(t,n,i){this.element=t,this.schema=n,this.delegate=i,this.valueListObserver=new jf(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(t){let{element:n,content:i}=t,a=this.fetchScopesByIdentifierForElement(n),l=a.get(i);return l||(l=this.delegate.createScopeForElementAndIdentifier(n,i),a.set(i,l)),l}elementMatchedValue(t,n){let i=(this.scopeReferenceCounts.get(n)||0)+1;this.scopeReferenceCounts.set(n,i),i==1&&this.delegate.scopeConnected(n)}elementUnmatchedValue(t,n){let i=this.scopeReferenceCounts.get(n);i&&(this.scopeReferenceCounts.set(n,i-1),i==1&&this.delegate.scopeDisconnected(n))}fetchScopesByIdentifierForElement(t){let n=this.scopesByIdentifierByElement.get(t);return n||(n=new Map,this.scopesByIdentifierByElement.set(t,n)),n}},xy=class{constructor(t){this.application=t,this.scopeObserver=new wy(this.element,this.schema,this),this.scopesByIdentifier=new Ns,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce((t,n)=>t.concat(n.contexts),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(t){this.unloadIdentifier(t.identifier);let n=new py(this.application,t);this.connectModule(n)}unloadIdentifier(t){let n=this.modulesByIdentifier.get(t);n&&this.disconnectModule(n)}getContextForElementAndIdentifier(t,n){let i=this.modulesByIdentifier.get(n);if(i)return i.contexts.find(a=>a.element==t)}handleError(t,n,i){this.application.handleError(t,n,i)}createScopeForElementAndIdentifier(t,n){return new yy(this.schema,t,n,this.logger)}scopeConnected(t){this.scopesByIdentifier.add(t.identifier,t);let n=this.modulesByIdentifier.get(t.identifier);n&&n.connectContextForScope(t)}scopeDisconnected(t){this.scopesByIdentifier.delete(t.identifier,t);let n=this.modulesByIdentifier.get(t.identifier);n&&n.disconnectContextForScope(t)}connectModule(t){this.modulesByIdentifier.set(t.identifier,t),this.scopesByIdentifier.getValuesForKey(t.identifier).forEach(i=>t.connectContextForScope(i))}disconnectModule(t){this.modulesByIdentifier.delete(t.identifier),this.scopesByIdentifier.getValuesForKey(t.identifier).forEach(i=>t.disconnectContextForScope(i))}},zD={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:e=>`data-${e}-target`},va=class{constructor(t=document.documentElement,n=zD){this.logger=console,this.debug=!1,this.logDebugActivity=(i,a,l={})=>{this.debug&&this.logFormattedMessage(i,a,l)},this.element=t,this.schema=n,this.dispatcher=new Jv(this),this.router=new xy(this)}static start(t,n){let i=new va(t,n);return i.start(),i}async start(){await $D(),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(t,n){this.load({identifier:t,controllerConstructor:n})}load(t,...n){(Array.isArray(t)?t:[t,...n]).forEach(a=>{a.controllerConstructor.shouldLoad&&this.router.loadDefinition(a)})}unload(t,...n){(Array.isArray(t)?t:[t,...n]).forEach(a=>this.router.unloadIdentifier(a))}get controllers(){return this.router.contexts.map(t=>t.controller)}getControllerForElementAndIdentifier(t,n){let i=this.router.getContextForElementAndIdentifier(t,n);return i?i.controller:null}handleError(t,n,i){var a;this.logger.error(`%s %o -%o`,n,t,i),(a=window.onerror)===null||a===void 0||a.call(window,n,"",0,0,t)}logFormattedMessage(t,n,i={}){i=Object.assign({application:this},i),this.logger.groupCollapsed(`${t} #${n}`),this.logger.log("details:",Object.assign({},i)),this.logger.groupEnd()}};function rP(){return new Promise(e=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>e()):e()})}function iP(e){return Ed(e,"classes").reduce((n,i)=>Object.assign(n,oP(i)),{})}function oP(e){return{[`${e}Class`]:{get(){let{classes:t}=this;if(t.has(e))return t.get(e);{let n=t.getAttributeName(e);throw new Error(`Missing attribute "${n}"`)}}},[`${e}Classes`]:{get(){return this.classes.getAll(e)}},[`has${Ks(e)}Class`]:{get(){return this.classes.has(e)}}}}function aP(e){return Ed(e,"targets").reduce((n,i)=>Object.assign(n,lP(i)),{})}function lP(e){return{[`${e}Target`]:{get(){let t=this.targets.find(e);if(t)return t;throw new Error(`Missing target element "${e}" for "${this.identifier}" controller`)}},[`${e}Targets`]:{get(){return this.targets.findAll(e)}},[`has${Ks(e)}Target`]:{get(){return this.targets.has(e)}}}}function sP(e){let t=VN(e,"values"),n={valueDescriptorMap:{get(){return t.reduce((i,a)=>{let l=Wy(a,this.identifier),u=this.data.getAttributeNameForKey(l.key);return Object.assign(i,{[u]:l})},{})}}};return t.reduce((i,a)=>Object.assign(i,uP(a)),n)}function uP(e,t){let n=Wy(e,t),{key:i,name:a,reader:l,writer:u}=n;return{[a]:{get(){let c=this.data.get(i);return c!==null?l(c):n.defaultValue},set(c){c===void 0?this.data.delete(i):this.data.set(i,u(c))}},[`has${Ks(a)}`]:{get(){return this.data.has(i)||n.hasCustomDefaultValue}}}}function Wy([e,t],n){return pP({controller:n,token:e,typeDefinition:t})}function Sd(e){switch(e){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Aa(e){switch(typeof e){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(e))return"array";if(Object.prototype.toString.call(e)==="[object Object]")return"object"}function cP(e){let t=Sd(e.typeObject.type);if(!t)return;let n=Aa(e.typeObject.default);if(t!==n){let i=e.controller?`${e.controller}.${e.token}`:e.token;throw new Error(`The specified default value for the Stimulus Value "${i}" must match the defined type "${t}". The provided default value of "${e.typeObject.default}" is of type "${n}".`)}return t}function fP(e){let t=cP({controller:e.controller,token:e.token,typeObject:e.typeDefinition}),n=Aa(e.typeDefinition),i=Sd(e.typeDefinition),a=t||n||i;if(a)return a;let l=e.controller?`${e.controller}.${e.typeDefinition}`:e.token;throw new Error(`Unknown value type "${l}" for "${e.token}" value`)}function dP(e){let t=Sd(e);if(t)return hP[t];let n=e.default;return n!==void 0?n:e}function pP(e){let t=`${Sy(e.token)}-value`,n=fP(e);return{type:n,key:t,name:Ey(t),get defaultValue(){return dP(e.typeDefinition)},get hasCustomDefaultValue(){return Aa(e.typeDefinition)!==void 0},reader:mP[n],writer:yy[n]||yy.default}}var hP={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},mP={array(e){let t=JSON.parse(e);if(!Array.isArray(t))throw new TypeError(`expected value of type "array" but instead got value "${e}" of type "${Aa(t)}"`);return t},boolean(e){return!(e=="0"||String(e).toLowerCase()=="false")},number(e){return Number(e)},object(e){let t=JSON.parse(e);if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(`expected value of type "object" but instead got value "${e}" of type "${Aa(t)}"`);return t},string(e){return e}},yy={default:gP,array:wy,object:wy};function wy(e){return JSON.stringify(e)}function gP(e){return`${e}`}var Wn=class{constructor(t){this.context=t}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(t,{target:n=this.element,detail:i={},prefix:a=this.identifier,bubbles:l=!0,cancelable:u=!0}={}){let c=a?`${a}:${t}`:t,d=new CustomEvent(c,{detail:i,bubbles:l,cancelable:u});return n.dispatchEvent(d),d}};Wn.blessings=[iP,aP,sP];Wn.targets=[];Wn.values={};var HF=K(Jx());var Kc={};ON(Kc,{Attachments:()=>Jo,DateRangeSelect:()=>na,EditableImage:()=>ji,FileUploadButton:()=>Jn,ImageCropper:()=>Kl,ImageGrid:()=>aa,ImageUploader:()=>ql,Modal:()=>Cc,PageForm:()=>jc,PageTree:()=>Hc,RichTextArea:()=>br,TagEditor:()=>Xl,Toast:()=>es});var xc=K(oe()),Zo=K(et());var On=K(oe()),ai=K(et());var bt=K(oe());function Bl(){return document.queryCommandSupported&&document.queryCommandSupported("copy")}function Zn(e){let t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}var $e=K(oe());function kn(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var l_=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),nm=function(){return Math.random().toString(36).substring(7).split("").join(".")},s_={INIT:"@@redux/INIT"+nm(),REPLACE:"@@redux/REPLACE"+nm(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+nm()}};function QI(e){if(typeof e!="object"||e===null)return!1;for(var t=e;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function zl(e,t,n){var i;if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(kn(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(kn(1));return n(zl)(e,t)}if(typeof e!="function")throw new Error(kn(2));var a=e,l=t,u=[],c=u,d=!1;function p(){c===u&&(c=u.slice())}function w(){if(d)throw new Error(kn(3));return l}function _(b){if(typeof b!="function")throw new Error(kn(4));if(d)throw new Error(kn(5));var x=!0;return p(),c.push(b),function(){if(!!x){if(d)throw new Error(kn(6));x=!1,p();var y=c.indexOf(b);c.splice(y,1),u=null}}}function E(b){if(!QI(b))throw new Error(kn(7));if(typeof b.type>"u")throw new Error(kn(8));if(d)throw new Error(kn(9));try{d=!0,l=a(l,b)}finally{d=!1}for(var x=u=c,g=0;g{switch(t.type){case"OPEN":return Ce(G({},e),{component:t.payload});case"CLOSE":return Ce(G({},e),{component:null});default:return e}});var zt=zl((e=[],t)=>{switch(t.type){case"ERROR":return[...e,{message:t.message,type:"error"}];case"NOTICE":return[...e,{message:t.message,type:"notice"}];case"NEXT":return e.slice(1);default:return e}});function gc(){let e=document.querySelector("[name=csrf-token]");return e&&e.getAttribute("content")||""}function u_(){return{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8","X-CSRF-Token":gc()}}}async function c_(e,t){let n=Ce(G({},u_()),{method:"POST"});return t&&(n.body=JSON.stringify(t)),(await fetch(e,n)).json()}async function Ko(e,t){let n=Ce(G({},u_()),{method:"PUT"});return t&&(n.body=JSON.stringify(t)),(await fetch(e,n)).json()}async function qo(e,t){return(await fetch(e,{method:"POST",body:t,headers:{"X-CSRF-Token":gc()}})).json()}function rm(e){let{attachment:t,locales:n}=e,[i,a]=(0,$e.useState)(e.locale),[l,u]=(0,$e.useState)({name:t.name||{},description:t.description||{}}),c=_=>E=>{u(Ce(G({},l),{[_]:Ce(G({},l[_]),{[i]:E.target.value})}))},d=_=>{_.preventDefault(),Zn(`[attachment:${t.id}]`),zt.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},p=_=>{_.preventDefault(),_.stopPropagation();let E=G({},l);Ko(`/admin/attachments/${t.id}`,{attachment:E}),e.onUpdate&&e.onUpdate(E),Bt.dispatch({type:"CLOSE"})},w=n&&n[i]&&n[i].dir||"ltr";return $e.default.createElement("div",{className:"attachment-editor"},$e.default.createElement("form",null,e.locales&&Object.keys(n).length>1&&$e.default.createElement("div",{className:"field"},$e.default.createElement("label",null,"Locale"),$e.default.createElement("select",{name:"locale",value:i,onChange:_=>a(_.target.value)},Object.keys(n).map(_=>$e.default.createElement("option",{key:`locale-${_}`,value:_},n[_].name)))),$e.default.createElement("div",{className:"field"},$e.default.createElement("label",null,"Name"),$e.default.createElement("input",{type:"text",className:"name",lang:i,dir:w,value:l.name[i]||"",onChange:c("name")})),$e.default.createElement("div",{className:"field"},$e.default.createElement("label",null,"Description"),$e.default.createElement("textarea",{className:"description",value:l.description[i]||"",lang:i,dir:w,onChange:c("description")})),$e.default.createElement("div",{className:"field embed-code"},$e.default.createElement("label",null,"Embed code"),$e.default.createElement("input",{type:"text",value:`[attachment:${t.id}]`,disabled:!0}),Bl()&&$e.default.createElement("button",{onClick:d},"Copy")),$e.default.createElement("div",{className:"field"},$e.default.createElement("label",null,"File"),$e.default.createElement("a",{href:t.url,rel:"noreferrer",target:"_blank"},t.filename)),$e.default.createElement("div",{className:"buttons"},$e.default.createElement("button",{onClick:p},"Save"),$e.default.createElement("button",{onClick:()=>Bt.dispatch({type:"CLOSE"})},"Cancel"))))}var ii=K(oe()),d_=K(f_());function ZI(e){return e&&e.ref&&e.ref.current?e.ref.current.getBoundingClientRect():null}function JI(e,t){if(e&&e.ref&&e.ref.current){let n=e.ref.current.style.display;e.ref.current.style.display="none";let i=t();return e.ref.current.style.display=n,i}else return t()}function eA(e,t){let n=e.indexOf("Files");return n===-1||!t?e:[...e.slice(0,n),...t,...e.slice(n+1)]}function tA(e,t){switch(t.type){case"append":return[...e,...t.payload];case"prepend":return[...t.payload,...e];case"insertFiles":return eA(e,t.payload);case"update":return e.map(n=>n.handle===t.payload.handle?t.payload:n);case"updatePositions":return JI(t.payload,()=>e.map(n=>Ce(G({},n),{rect:ZI(n)})));case"remove":return e.filter(n=>n.handle!==t.payload.handle);case"replace":return t.payload;case"reorder":return t.payload;default:return e}}function Xo(e){return{record:e,rect:null,ref:(0,ii.createRef)(),handle:(0,d_.uniqueId)("draggable")}}function Ui(e){let t=(0,ii.useRef)(null),[n,i]=(0,ii.useReducer)(tA,[],()=>e.map(a=>Xo(a)));return(0,ii.useEffect)(()=>{i({type:"updatePositions"})},[]),{ref:t,draggables:n,dispatch:i}}var vc=K(oe());function nA(e){if("dataTransfer"in e){let t=e.dataTransfer;if("types"in t.types){let n=t.types;for(let i=0;i{e.forEach(_=>{_.dispatch({type:"updatePositions",payload:w})})},u=(w,_)=>{l(_),a(G({dragging:_},p_(w)))},c=w=>{i.dragging?(w.stopPropagation(),w.preventDefault(),a(G(G({},i),p_(w)))):nA(w)&&u(w,"Files")},d=w=>{if(i.dragging){let _=i,E=[];w.preventDefault(),w.stopPropagation(),"dataTransfer"in w&&i.dragging=="Files"&&(E=rA(w.dataTransfer)),a({dragging:!1,x:null,y:null}),t(_,E),l()}},p=w=>{i.dragging==="Files"&&(w.preventDefault(),w.stopPropagation(),a({dragging:!1,x:null,y:null}))};return(0,vc.useEffect)(()=>(window.addEventListener("mousemove",c),window.addEventListener("touchmove",c),window.addEventListener("mouseup",d),window.addEventListener("touchend",d),window.addEventListener("mouseout",p),function(){window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",c),window.removeEventListener("mouseup",d),window.removeEventListener("touchend",d),window.removeEventListener("mouseout",p)})),[i,u,{onDragOver:c,onDrop:d}]}var yc=K(oe());function Qo(e,t){let n=(0,yc.useRef)(null),i=a=>{a.preventDefault(),a.stopPropagation(),t(a,e)};return(0,yc.useEffect)(()=>{e.ref.current=n.current},[]),{ref:n,onDragStart:i,draggable:!0}}function h_(e,t){let{x:n,y:i}=e,a;if("rect"in t)a=t.rect;else if("current"in t)a=t.current.getBoundingClientRect();else return!1;return n>=a.left&&n<=a.right&&i>=a.top&&i<=a.bottom}function $l(e,t){let{draggables:n,ref:i}=e,{dragging:a}=t;if(!a)return n;let l=n.filter(u=>u.handle!==a.handle);if(h_(t,i)){let u=l.filter(c=>h_(t,c))[0];if(u){let c=l.indexOf(u);l=[...l.slice(0,c),a,...l.slice(c)]}else l=[...l,a]}return l}function Wl(e,t){let n=$l(e,t);return t.dragging&&n.indexOf(t.dragging)===-1&&(e.ref.current&&t.y{g.preventDefault(),Zn(`[attachment:${u.id}]`),zt.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},w=g=>{g.preventDefault(),e.deleteRecord&&e.deleteRecord()},_=()=>u.description&&u.description[a]?u.description[a]:null,E=()=>u.name&&u.name[a]?u.name[a]:null,O=g=>{g.preventDefault(),Bt.dispatch({type:"OPEN",payload:bt.default.createElement(rm,{attachment:u,locale:a,locales:i,onUpdate:e.onUpdate})})},k=["attachment"];e.placeholder&&k.push("placeholder"),l.uploading&&k.push("uploading");let b=c?"cloud-arrow-up":"paperclip",x="ltr";return a in i&&i[a].dir&&(x=i[a].dir),bt.default.createElement("div",G({className:k.join(" ")},d),bt.default.createElement("input",{name:`${t}[id]`,type:"hidden",value:`${l.id}`}),bt.default.createElement("input",{name:`${t}[attachment_id]`,type:"hidden",value:u&&u.id||""}),bt.default.createElement("input",{name:`${t}[position]`,type:"hidden",value:e.position}),!c&&bt.default.createElement("div",{className:"actions"},bt.default.createElement("button",{onClick:O},"Edit"),e.showEmbed&&bt.default.createElement("button",{onClick:p},"Embed"),e.deleteRecord&&bt.default.createElement("button",{onClick:w},"Remove")),u&&bt.default.createElement("div",{className:"attachment-info"},bt.default.createElement("h3",null,bt.default.createElement("i",{className:`fa-solid fa-${b} icon`}),E()||bt.default.createElement("em",null,"Untitled"),bt.default.createElement("br",null)),!c&&bt.default.createElement("a",{href:u.url,rel:"noreferrer",target:"_blank"},u.filename),!c&&_()&&bt.default.createElement("p",{dir:x},_())))}var m_=K(oe());function om(){return m_.default.createElement("div",{className:"attachment drop-placeholder",key:"file-placeholder"},"Upload files here")}var oi=K(oe());function Jn(e){let t=(0,oi.useRef)(),n=a=>{let l=a.target.files,u=[];for(let c=0;c0&&e.callback(u)},i=a=>{a.preventDefault(),t.current.click()};return oi.default.createElement("div",{className:"upload-button"},oi.default.createElement("span",null,"Drag and drop ",e.type||"file",e.multiple&&"s"," here, or",e.multiline&&oi.default.createElement("br",null),oi.default.createElement("button",{onClick:i},"choose a file")),oi.default.createElement("input",{type:"file",onChange:n,ref:t,style:{display:"none"},multiple:e.multiple||!1}))}function iA(e){return e.replace(/\.[\w\d]+$/,"").replace(/_/g," ")}function wc(e){let{collection:t,deleted:n,setDeleted:i}=e,a=e.locales&&e.locales.length>0?Object.keys(e.locales):[e.locale],l=y=>{let T={};a.forEach(L=>T[L]=y.name);let P=Xo({attachment:{filename:y.name,name:T},uploading:!0}),Y=new FormData;return Y.append("attachment[file]",y),a.forEach(L=>{Y.append(`attachment[name][${L}]`,iA(y.name))}),qo("/admin/attachments.json",Y).then(L=>{t.dispatch({type:"update",payload:Ce(G({},P),{record:{attachment:L,uploading:!1}})})}),P},u=y=>{t.dispatch({type:"append",payload:y.map(T=>l(T))})},c=(y,T)=>{t.dispatch({type:"reorder",payload:Wl(t,y)}),t.dispatch({type:"insertFiles",payload:T.map(P=>l(P))})},[d,p,w]=Go([t],c),_=y=>[...t.draggables.map(T=>T.record),...n].indexOf(y)+1,E=y=>`${e.attribute}[${_(y)}]`,O=y=>T=>{let{record:P}=y,Y=Ce(G({},y),{record:Ce(G({},P),{attachment:G(G({},P.attachment),T)})});t.dispatch({type:"update",payload:Y})},k=y=>()=>{t.dispatch({type:"remove",payload:y}),y.record.id&&i([...n,y.record])},b=y=>{let{dragging:T}=d;return y==="Files"?On.default.createElement(om,{key:"placeholder"}):On.default.createElement(im,{key:y.handle,draggable:y,locale:e.locale,locales:e.locales,showEmbed:e.showEmbed,startDrag:p,position:_(y.record),onUpdate:O(y),deleteRecord:k(y),attributeName:E(y.record),placeholder:T&&T==y})},x=Wl(t,d),g=["attachments"];return d.dragging&&g.push("dragover"),On.default.createElement("div",G({className:g.join(" "),ref:t.ref},w),On.default.createElement("div",{className:"files"},x.map(y=>b(y))),On.default.createElement("div",{className:"deleted"},n.map(y=>On.default.createElement("span",{className:"deleted-attachment",key:y.id},On.default.createElement("input",{name:`${E(y)}[id]`,type:"hidden",value:y.id}),On.default.createElement("input",{name:`${E(y)}[attachment_id]`,type:"hidden",value:y.attachment&&y.attachment.id||""}),On.default.createElement("input",{name:`${E(y)}[_destroy]`,type:"hidden",value:!0})))),On.default.createElement("div",{className:"drop-target"},On.default.createElement(Jn,{multiple:!0,multiline:!0,callback:u})))}wc.propTypes={attribute:ai.default.string,locale:ai.default.string,locales:ai.default.object,collection:ai.default.array,deleted:ai.default.array,setDeleted:ai.default.func,showEmbed:ai.default.bool};function Jo(e){let{attribute:t,locale:n,locales:i,records:a,showEmbed:l}=e,u=Ui(a),[c,d]=(0,xc.useState)([]);return xc.default.createElement(wc,{attribute:t,locale:n,locales:i,collection:u,deleted:c,setDeleted:d,showEmbed:l})}Jo.propTypes={attribute:Zo.default.string,locale:Zo.default.string,locales:Zo.default.object,records:Zo.default.array,showEmbed:Zo.default.bool};var er=K(oe()),ta=K(et());var Gt=K(oe()),ea=K(et());function oA(e,t={}){var n=new Date(e);return Object.prototype.hasOwnProperty.call(t,"year")&&n.setFullYear(t.year),Object.prototype.hasOwnProperty.call(t,"month")&&n.setMonth(t.month),Object.prototype.hasOwnProperty.call(t,"date")&&n.setDate(t.date),Object.prototype.hasOwnProperty.call(t,"time")&&t.time.match(/^[\d]{1,2}(:[\d]{1,2})?$/)&&(n.setHours(t.time.split(":")[0]),n.setMinutes(t.time.split(":")[1]||0)),n}function g_(e){return e.toTimeString().slice(0,5)}function aA(){let e=2e3;return Array.apply(null,Array(new Date().getFullYear()-e+11)).map((t,n)=>n+e)}function lA(){return["January","February","March","April","May","June","July","August","September","October","November","December"]}function sA(){return Array.apply(null,Array(31)).map((e,t)=>t+1)}function Bi(e){let{name:t,disabled:n,disableTime:i,onChange:a,value:l}=e,[u,c]=(0,Gt.useState)(g_(l));(0,Gt.useEffect)(()=>{c(g_(l))},[l]);let d=(p={})=>{a(oA(l,p))};return Gt.default.createElement("div",{className:"date-select"},t&&Gt.default.createElement("input",{type:"hidden",name:t,value:!n&&l.toJSON()}),Gt.default.createElement("select",{value:l.getMonth(),onChange:p=>d({month:p.target.value}),disabled:n},lA().map((p,w)=>Gt.default.createElement("option",{key:w,value:w},p))),Gt.default.createElement("select",{value:l.getDate(),onChange:p=>d({date:p.target.value}),disabled:n},sA().map(p=>Gt.default.createElement("option",{key:p,value:p},p))),Gt.default.createElement("select",{value:l.getFullYear(),onChange:p=>d({year:p.target.value}),disabled:n},aA().map(p=>Gt.default.createElement("option",{key:p,value:p},p))),!i&&Gt.default.createElement("input",{type:"text",size:5,disabled:n,value:u,onChange:p=>c(p.target.value),onBlur:p=>d({time:p.target.value})}))}Bi.propTypes={name:ea.default.string,disabled:ea.default.bool,disableTime:ea.default.bool,onChange:ea.default.func,value:ea.default.instanceOf(Date)};function v_(e=0){let t=36e5;return new Date(Math.round(new Date().getTime()/t)*t+t+1e3*60*e)}function y_(e){return e?typeof e=="string"?new Date(e):e:null}function na(e){let{disabled:t,disableTime:n,objectName:i}=e,[a,l]=(0,er.useState)(y_(e.startsAt)||v_()),[u,c]=(0,er.useState)(y_(e.endsAt)||v_(60)),d=(_,E)=>{E<_&&(E=_),l(_),c(E)},p=_=>{d(_,new Date(u.getTime()+(_-a)))},w=_=>{d(a,_)};return er.default.createElement("div",{className:"date-range-select"},er.default.createElement("div",{className:"date"},er.default.createElement(Bi,{name:i+"[starts_at]",disabled:t,disableTime:n,onChange:p,value:a})),er.default.createElement("span",{className:"to"},"to"),er.default.createElement("div",{className:"date"},er.default.createElement(Bi,{name:i+"[ends_at]",disabled:t,disableTime:n,onChange:w,value:u})))}na.propTypes={startsAt:ta.default.string,endsAt:ta.default.string,disabled:ta.default.bool,disableTime:ta.default.bool,objectName:ta.default.string};var Er=K(oe());var zi=K(oe());var sn=K(oe());var ia=K(oe()),C_=K(__());var ra=K(oe());function uA(e,t){let n=Ec(e),i=e.image,a=i.real_width/i.real_height;return t?(n.aspect=t,n.width=100,n.height=100/t*a,n.height>100&&(n.height=100,n.width=100*t/a),n.x=(100-n.width)/2,n.y=(100-n.height)/2):delete n.aspect,E_(e,n)}function E_(e,t){let{image:n}=e;return(t.width<5||t.height<5)&&(t={x:0,y:0,width:100,height:100}),t.aspect===null&&delete t.aspect,{aspect:t.aspect,crop_start_x:n.real_width*(t.x/100),crop_start_y:n.real_height*(t.y/100),crop_width:n.real_width*(t.width/100),crop_height:n.real_height*(t.height/100)}}function S_(e,t){let{crop_start_x:n,crop_start_y:i,crop_width:a,crop_height:l,crop_gravity_x:u,crop_gravity_y:c}=e;switch(t.type){case"completeCrop":return un+a||ci+l?Ce(G({},e),{cropping:!1,crop_gravity_x:null,crop_gravity_y:null}):Ce(G({},e),{cropping:!1});case"setCrop":return G(G({},e),E_(e,t.payload));case"setAspect":return G(G({},e),uA(e,t.payload));case"setFocal":return Ce(G({},e),{crop_gravity_x:a*(t.payload.x/100)+n,crop_gravity_y:l*(t.payload.y/100)+i});case"startCrop":return Ce(G({},e),{cropping:!0});case"toggleFocal":return u===null?S_(e,{type:"setFocal",payload:{x:50,y:50}}):Ce(G({},e),{crop_gravity_x:null,crop_gravity_y:null});default:return e}}function cA(e,t){let n=document.createElement("canvas");n.width=e.naturalWidth*(t.width/100),n.height=e.naturalHeight*(t.height/100);let i=n.getContext("2d");return i.drawImage(e,e.naturalWidth*(t.x/100),e.naturalHeight*(t.y/100),e.naturalWidth*(t.width/100),e.naturalHeight*(t.height/100),0,0,e.naturalWidth*(t.width/100),e.naturalHeight*(t.height/100)),[n,i]}function fA(e,t){let n=t.getImageData(0,0,e.width,e.height).data;for(let i=0;iu=>u===null?u:l(u),n=t(Math.round),i=t(Math.ceil),a={crop_start_x:n(e.crop_start_x),crop_start_y:n(e.crop_start_y),crop_width:i(e.crop_width),crop_height:i(e.crop_height),crop_gravity_x:n(e.crop_gravity_x),crop_gravity_y:n(e.crop_gravity_y)};return a.crop_start_x+a.crop_width>e.image.real_width&&(a.crop_width=e.image.real_width-a.crop_start_x),a.crop_start_y+a.crop_height>e.image.real_height&&(a.crop_height=e.image.real_height-a.crop_start_y),a}function Ec(e){let{image:t,aspect:n,crop_start_x:i,crop_start_y:a,crop_width:l,crop_height:u}=e,c=t.real_width/t.real_height,d=i/t.real_width*100,p=a/t.real_height*100,w=l/t.real_width*100,_=u/t.real_height*100;return n&&w?_=w/n*c:n&&_&&(w=_*n/c),n===null?{x:d,y:p,width:w,height:_}:{x:d,y:p,width:w,height:_,aspect:n}}function Vl(e){let t={aspect:null,cropping:!1,crop_start_x:e.crop_start_x||0,crop_start_y:e.crop_start_y||0,crop_width:e.crop_width||e.real_width,crop_height:e.crop_height||e.real_height,crop_gravity_x:e.crop_gravity_x,crop_gravity_y:e.crop_gravity_y,image:e},[n,i]=(0,ra.useReducer)(S_,t),[a,l]=(0,ra.useState)(null);async function u(){let c=new Image;c.src=n.image.uncropped_url,await c.decode();let[d,p]=cA(c,Ec(n));l(fA(d,p))}return(0,ra.useEffect)(()=>{n.cropping||u()},[n.cropping]),[n,i,a]}var _r=K(oe());function b_(e,t,n){return en?n:e}function lm(e){let{width:t,height:n,onChange:i}=e,[a,l]=(0,_r.useState)(!1),[u,c]=(0,_r.useState)({x:e.x,y:e.y}),d=(0,_r.useRef)(),p=(0,_r.useRef)(),w=x=>{x.preventDefault(),x.stopPropagation(),x.target==p.current&&l(!0)},_=()=>{a&&(l(!1),i(u))},E=x=>{if(a){let g,y,T=d.current.getBoundingClientRect();x.preventDefault(),"touches"in x&&x.type=="touchmove"?(g=x.touches[0].clientX-(T.x||T.left),y=x.touches[0].clientY-(T.y||T.top)):(g=x.clientX-(T.x||T.left),y=x.clientY-(T.y||T.top)),g=b_(g,0,t),y=b_(y,0,n),c({x:g/t*100,y:y/n*100})}},O=t*(u.x/100),k=n*(u.y/100),b={transform:`translate3d(${O}px, ${k}px, 0)`};return _r.default.createElement("div",{className:"focal-editor",ref:d,onTouchStart:w,onTouchEnd:_,onTouchMove:E,onMouseDown:w,onMouseUp:_,onMouseMove:E},_r.default.createElement("div",{className:"focal-point",style:b,ref:p}))}function sm(e){let t=()=>{let{image:d,cropping:p,crop_width:w,crop_height:_}=e.cropState;return p?{width:d.real_width,height:d.real_height}:{width:w,height:_}},n=e.containerSize.width,i=e.containerSize.height,a=t().width/t().height,l=n,u=n/a;u>i&&(u=i,l=i*a);let c={width:`${l}px`,height:`${u}px`};return e.cropState.cropping?ia.default.createElement("div",{className:"image-wrapper",style:c},ia.default.createElement(C_.default,{src:e.cropState.image.uncropped_url,crop:Ec(e.cropState),minWidth:10,minHeight:10,onChange:e.setCrop})):ia.default.createElement("div",{className:"image-wrapper",style:c},e.focalPoint&&ia.default.createElement(lm,{width:l,height:u,x:e.focalPoint.x,y:e.focalPoint.y,onChange:e.setFocal}),ia.default.createElement("img",{src:e.croppedImage}))}var Qt=K(oe());function um(e){let{cropping:t}=e.cropState,n=[["Free",null],["1:1",1],["3:2",3/2],["2:3",2/3],["4:3",4/3],["3:4",3/4],["5:4",5/4],["4:5",4/5],["16:9",16/9]],i=c=>d=>{d.preventDefault(),e.setAspect(c)},a=Math.ceil(e.cropState.crop_width),l=Math.ceil(e.cropState.crop_height),u=e.image.content_type.split("/")[1].toUpperCase();return Qt.default.createElement("div",{className:"toolbars"},Qt.default.createElement("div",{className:"toolbar"},Qt.default.createElement("div",{className:"info"},Qt.default.createElement("span",{className:"format"},a,"x",l," ",u)),Qt.default.createElement("button",{title:"Crop image",onClick:e.toggleCrop,className:t?"active":""},Qt.default.createElement("i",{className:"fa-solid fa-crop"})),Qt.default.createElement("button",{disabled:t,title:"Toggle focal point",onClick:e.toggleFocal},Qt.default.createElement("i",{className:"fa-solid fa-bullseye"})),Qt.default.createElement("a",{href:e.image.original_url,className:"button",title:"Download original image",disabled:t,download:e.image.filename,onClick:c=>t&&c.preventDefault()},Qt.default.createElement("i",{className:"fa-solid fa-download"}))),t&&Qt.default.createElement("div",{className:"aspect-ratios toolbar"},Qt.default.createElement("div",{className:"label"},"Lock aspect ratio:"),n.map(c=>Qt.default.createElement("button",{key:c[0],className:c[1]==e.cropState.aspect?"active":"",onClick:i(c[1])},c[0]))))}function dA(e){return e.crop_gravity_x===null||e.crop_gravity_y===null?null:{x:(e.crop_gravity_x-e.crop_start_x)/e.crop_width*100,y:(e.crop_gravity_y-e.crop_start_y)/e.crop_height*100}}function Kl(e){let t=(0,sn.useRef)(),[n,i]=(0,sn.useState)(),a=()=>{let p=t.current;p&&i({width:p.offsetWidth-2,height:p.offsetHeight-2})};(0,sn.useEffect)(()=>(window.addEventListener("resize",a),function(){window.removeEventListener("resize",a)})),(0,sn.useEffect)(a,[]);let l=p=>{e.dispatch({type:"setAspect",payload:p})},u=p=>{e.dispatch({type:"setCrop",payload:p})},c=p=>{e.dispatch({type:"setFocal",payload:p})},d=()=>{e.cropState.cropping?e.dispatch({type:"completeCrop"}):e.dispatch({type:"startCrop"})};return sn.default.createElement("div",{className:"visual"},sn.default.createElement(um,{cropState:e.cropState,image:e.cropState.image,setAspect:l,toggleCrop:d,toggleFocal:()=>e.dispatch({type:"toggleFocal"})}),sn.default.createElement("div",{className:"image-container",ref:t},!e.croppedImage&&sn.default.createElement("div",{className:"loading"},"Loading image\u2026"),e.croppedImage&&n&&sn.default.createElement(sm,{cropState:e.cropState,containerSize:n,croppedImage:e.croppedImage,focalPoint:dA(e.cropState),setCrop:u,setFocal:c})))}var st=K(oe());function cm(e){let{alternative:t,caption:n,image:i,locale:a,locales:l}=e,u=p=>{p.preventDefault(),Zn(`[image:${i.id}]`),zt.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},c=p=>{e.setLocale(p.target.value)},d=l&&l[a]&&l[a].dir||"ltr";return st.default.createElement("form",null,st.default.createElement("div",{className:"field embed-code"},st.default.createElement("label",null,"Embed code"),st.default.createElement("input",{type:"text",value:`[image:${i.id}]`,disabled:!0}),Bl()&&st.default.createElement("button",{onClick:u},"Copy")),l&&Object.keys(l).length>1&&st.default.createElement("div",{className:"field"},st.default.createElement("label",null,"Locale"),st.default.createElement("select",{name:"locale",value:a,onChange:c},Object.keys(l).map(p=>st.default.createElement("option",{key:`locale-${p}`,value:p},l[p].name)))),st.default.createElement("div",{className:"field "+(t[a]?"":"field-with-warning")},st.default.createElement("label",null,"Alternative text"),st.default.createElement("span",{className:"description"},"For visually impaired users and search engines."),st.default.createElement("textarea",{className:"alternative",lang:a,dir:d,value:t[a]||"",onChange:p=>e.updateLocalization("alternative",p.target.value)})),e.showCaption&&st.default.createElement("div",{className:"field"},st.default.createElement("label",null,"Caption"),st.default.createElement("textarea",{lang:a,dir:d,onChange:p=>e.updateLocalization("caption",p.target.value),value:n[a]||"",className:"caption"})),st.default.createElement("div",{className:"buttons"},st.default.createElement("button",{onClick:e.save},"Save"),st.default.createElement("button",{onClick:()=>Bt.dispatch({type:"CLOSE"})},"Cancel")))}function fm(e){let[t,n,i]=Vl(e.image),[a,l]=(0,zi.useState)(e.locale),[u,c]=(0,zi.useState)({caption:e.image.caption||{},alternative:e.image.alternative||{}}),d=(w,_)=>{c(Ce(G({},u),{[w]:Ce(G({},u[w]),{[a]:_})}))},p=w=>{w.preventDefault(),w.stopPropagation();let _=G(G({},u),_c(t));Ko(`/admin/images/${e.image.id}`,{image:_}),e.onUpdate&&e.onUpdate(_,i),Bt.dispatch({type:"CLOSE"})};return zi.default.createElement("div",{className:"image-editor"},zi.default.createElement(Kl,{croppedImage:i,cropState:t,dispatch:n}),!t.cropping&&zi.default.createElement(cm,{alternative:u.alternative,caption:u.caption,image:e.image,locale:a,locales:e.locales,setLocale:l,save:p,showCaption:e.caption,updateLocalization:d}))}function ji(e){let[t,n]=(0,Er.useState)(e.image),[i,a]=(0,Er.useState)(e.src),l=()=>{let p=t.crop_width||t.real_width,w=t.crop_height||t.real_height;return Math.round(w/p*e.width)},u=(p,w)=>{let _=G(G({},t),p);a(w),n(_),e.onUpdate&&e.onUpdate(_,w)},c=p=>{p.preventDefault(),Bt.dispatch({type:"OPEN",payload:Er.default.createElement(fm,{image:t,caption:e.caption,locale:e.locale,locales:e.locales,onUpdate:u})})},d=!t.alternative[e.locale];return Er.default.createElement("div",{className:"editable-image"},d&&Er.default.createElement("span",{className:"alt-warning",title:"Alternative text is missing"},Er.default.createElement("i",{className:"fa-solid fa-triangle-exclamation icon"})),Er.default.createElement("img",{src:i,width:e.width,height:l(),onClick:c}))}var bc=K(oe()),li=K(et());var Qe=K(oe()),Bn=K(et());var dm=K(oe());function pm(e){let{draggable:t,dragState:n,container:i}=e;if(t==="Files")return"";{let a=i.current.getBoundingClientRect(),l=n.x-(a.x||a.left),u=n.y-(a.y||a.top),c={transform:`translate3d(${l}px, ${u}px, 0)`};return dm.default.createElement("div",{className:"drag-image",style:c},"record"in t&&t.record.image&&dm.default.createElement("img",{src:t.record.src||t.record.image.thumbnail_url}))}}var hm=K(oe());function mm(){return hm.default.createElement("div",{className:"grid-image",key:"file-placeholder"},hm.default.createElement("div",{className:"file-placeholder"}))}var Ct=K(oe());var oa=K(oe());function gm(e){return e.src?oa.default.createElement("div",{className:"temp-image"},oa.default.createElement("img",{src:e.src}),oa.default.createElement("span",null,"Uploading...")):oa.default.createElement("div",{className:"file-placeholder"},oa.default.createElement("span",null,"Uploading..."))}function vm(e){let{attributeName:t,draggable:n}=e,i=n.record,a=i.image,[l,u]=(0,Ct.useState)(i.src||null),c=Qo(n,e.startDrag);(0,Ct.useEffect)(()=>{if(i.file){let _=new FileReader;_.onload=()=>u(_.result),_.readAsDataURL(i.file)}},[]);let d=_=>{_.preventDefault(),Zn(`[image:${a.id}]`),zt.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},p=_=>{_.preventDefault(),e.deleteImage&&e.deleteImage()},w=["grid-image"];return e.placeholder&&w.push("placeholder"),i.file&&w.push("uploading"),Ct.default.createElement("div",G({className:w.join(" ")},c),Ct.default.createElement("input",{name:`${t}[id]`,type:"hidden",value:i.id||""}),Ct.default.createElement("input",{name:`${t}[image_id]`,type:"hidden",value:a&&a.id||""}),Ct.default.createElement("input",{name:`${t}[position]`,type:"hidden",value:e.position}),e.enablePrimary&&Ct.default.createElement("input",{name:`${t}[primary]`,type:"hidden",value:e.primary}),!a&&Ct.default.createElement(gm,{src:l}),a&&Ct.default.createElement(Ct.default.Fragment,null,Ct.default.createElement(ji,{image:a,src:l||a.thumbnail_url,width:250,caption:!0,locale:e.locale,locales:e.locales,onUpdate:e.onUpdate}),Ct.default.createElement("div",{className:"actions"},e.showEmbed&&Ct.default.createElement("button",{onClick:d},"Embed"),e.deleteImage&&Ct.default.createElement("button",{onClick:p},"Remove"))))}function ym(e){let t=["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"];return e.filter(n=>t.indexOf(n.type)!==-1)}function T_(e,t,n){let[i,...a]=$l(e,n),l=[...a,...$l(t,n)];return n.dragging&&[i,...l].indexOf(n.dragging)===-1&&(n.y{t.dispatch(L),n.dispatch(L)},c=(L,X)=>{let[J,ie]=T_(t,n,L);if(t.dispatch({type:"reorder",payload:J?[J]:[]}),n.dispatch({type:"reorder",payload:ie}),X){let Ye=ym(X).map(j=>O(j));u({type:"insertFiles",payload:Ye})}},[d,p,w]=Go([t,n],c),_=L=>[...t.draggables.map(X=>X.record),...n.draggables.map(X=>X.record),...i].indexOf(L)+1,E=L=>`${e.attribute}[${_(L)}]`,O=L=>{let X=Xo({image:null,file:L}),J=new FormData;return J.append("image[file]",L),qo("/admin/images.json",J).then(ie=>{ie.status==="error"?(zt.dispatch({type:"ERROR",message:"Error uploading image: "+ie.error}),u({type:"remove",payload:X})):u({type:"update",payload:Ce(G({},X),{record:{image:ie}})})}),X},k=L=>X=>{let{record:J}=L,ie=Ce(G({},L),{record:Ce(G({},J),{image:G(G({},J.image),X)})});u({type:"update",payload:ie})},b=L=>()=>{u({type:"remove",payload:L}),L.record.id&&a([...i,L.record])},x=(L,X)=>{let{dragging:J}=d;return L==="Files"?Qe.default.createElement(mm,{key:"placeholder"}):Qe.default.createElement(vm,{key:L.handle,draggable:L,locale:e.locale,locales:e.locales,showEmbed:e.showEmbed,startDrag:p,position:_(L.record),primary:X,onUpdate:k(L),enablePrimary:e.enablePrimary,deleteImage:b(L),attributeName:E(L.record),placeholder:J&&J==L})},g=L=>{let[X,...J]=ym(L).map(ie=>O(ie));X&&(n.dispatch({type:"prepend",payload:[...t.draggables,...J]}),t.dispatch({type:"replace",payload:[X]}))},y=L=>{n.dispatch({type:"append",payload:ym(L).map(X=>O(X))})},T=["image-grid"];e.enablePrimary&&T.push("with-primary-image");let[P,Y]=T_(t,n,d);return Qe.default.createElement("div",G({className:T.join(" "),ref:l},w),d.dragging&&Qe.default.createElement(pm,{draggable:d.dragging,dragState:d,container:l}),e.enablePrimary&&Qe.default.createElement("div",{className:"primary-image",ref:t.ref},Qe.default.createElement("h3",null,"Main image"),P&&Qe.default.createElement(Qe.default.Fragment,null,x(P,!0),e.primaryAttribute&&Qe.default.createElement("input",{type:"hidden",name:e.primaryAttribute,value:P.record&&P.record.image&&P.record.image.id||""})),!P&&Qe.default.createElement("div",{className:"drop-target"},Qe.default.createElement(Jn,{multiple:!0,type:"image",multiline:!0,callback:g}))),Qe.default.createElement("div",{className:"grid",ref:n.ref},Qe.default.createElement("h3",null,e.enablePrimary?"More images":"Images"),Qe.default.createElement("div",{className:"drop-target"},Qe.default.createElement(Jn,{multiple:!0,type:"image",callback:y})),Qe.default.createElement("div",{className:"images"},Y.map(L=>x(L,!1)))),Qe.default.createElement("div",{className:"deleted"},i.map(L=>Qe.default.createElement("span",{className:"deleted-image",key:L.id},Qe.default.createElement("input",{name:`${E(L)}[id]`,type:"hidden",value:L.id}),Qe.default.createElement("input",{name:`${E(L)}[attachment_id]`,type:"hidden",value:L.image&&L.image.id||""}),Qe.default.createElement("input",{name:`${E(L)}[_destroy]`,type:"hidden",value:!0})))))}Sc.propTypes={attribute:Bn.default.string,deleted:Bn.default.array,setDeleted:Bn.default.func,locale:Bn.default.string,locales:Bn.default.object,enablePrimary:Bn.default.bool,primary:Bn.default.array,primaryAttribute:Bn.default.string,images:Bn.default.array,showEmbed:Bn.default.bool};function pA(e){let t=e.enablePrimary?e.records.filter(n=>n.primary).slice(0,1):[];return[t,e.records.filter(n=>t.indexOf(n)===-1)]}function aa(e){let{attribute:t,locale:n,locales:i,enablePrimary:a,primaryAttribute:l,showEmbed:u}=e,[c,d]=pA(e),p=Ui(c),w=Ui(d),[_,E]=(0,bc.useState)([]);return bc.default.createElement(Sc,{attribute:t,deleted:_,setDeleted:E,locale:n,locales:i,enablePrimary:a,primaryAttribute:l,primary:p,images:w,showEmbed:u})}aa.propTypes={attribute:li.default.string,locale:li.default.string,locales:li.default.object,records:li.default.array,enablePrimary:li.default.bool,primaryAttribute:li.default.string,showEmbed:li.default.bool};var jt=K(oe());function hA(e){let t=[];if(e.items)for(let n=0;n{g.preventDefault(),a(!0)},w=()=>{a(!1)},_=g=>{if("dataTransfer"in g)if("items"in g.dataTransfer&&"remove"in g.dataTransfer.items)for(let y=0;y{let y=[];"dataTransfer"in g&&(y=hA(g.dataTransfer)),g.preventDefault(),y.length>0&&b(y[0])},O=g=>{g.preventDefault(),u(null),d(null)},k=g=>{g.length>0&&b(g[0])},b=g=>{if(["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"].indexOf(g.type)==-1){alert("Invalid file type, only images in JPEG, PNG or GIF formats are supported");return}let T=e.locale,P=e.locales?Object.keys(e.locales):[T],Y=new FormData;u(null),d(null),a(!1),n(!0),Y.append("image[file]",g),P.forEach(L=>{Y.append(`image[alternative][${L}]`,e.alternative||"")}),qo("/admin/images.json",Y).then(L=>{n(!1),"status"in L&&L.status==="error"?zt.dispatch({type:"ERROR",message:`Error uploading image: ${L.error}`}):"thumbnail_url"in L&&(d(L.thumbnail_url),u(L))})},x=["image-uploader"];return t?x.push("uploading"):i&&x.push("dragover"),jt.default.createElement("div",{className:x.join(" "),onDragOver:p,onDragLeave:w,onDragEnd:_,onDrop:E},jt.default.createElement("input",{type:"hidden",name:e.attr,value:l?l.id:""}),l&&jt.default.createElement("div",{className:"image"},jt.default.createElement(ji,{image:l,src:c,width:e.width,caption:e.caption,locale:e.locale,locales:e.locales})),jt.default.createElement("div",{className:"ui-wrapper"},t&&jt.default.createElement("div",{className:"ui"},"Uploading image..."),!t&&jt.default.createElement("div",{className:"ui"},jt.default.createElement(Jn,{type:"image",multiline:!0,callback:k}),l&&jt.default.createElement("a",{className:"delete remove-image",href:"#",onClick:O},"Remove image"))))}var la=K(oe());var Cc=class extends la.default.Component{constructor(t){super(t);this.state={component:null},this.store=Bt,this.closeModal=this.closeModal.bind(this),this.handleChange=this.handleChange.bind(this),this.handleKeypress=this.handleKeypress.bind(this)}componentDidMount(){this.unsubscribe=this.store.subscribe(this.handleChange),window.addEventListener("keypress",this.handleKeypress)}componentWillUnmount(){this.unsubscribe(),window.removeEventListener("keypress",this.handleKeypress)}closeModal(t){t.stopPropagation(),t.preventDefault(),Bt.dispatch({type:"CLOSE"})}handleChange(){this.setState(G({},this.store.getState()))}handleKeypress(t){this.state.component&&(t.key=="Escape"||t.keyCode===27)&&this.closeModal(t)}render(){let t=this.state.component;if(t)document.body.classList.add("modal");else return document.body.classList.remove("modal"),la.default.createElement("div",{className:"modal-wrapper"});return la.default.createElement("div",{className:"modal-wrapper open"},la.default.createElement("div",{className:"background",onClick:this.closeModal}),la.default.createElement("div",{className:"modal"},t))}};var Re=K(oe()),Xi=K(et());var k_=K(oe());function Tc(e,t){return t.localized?e.page[t.name][e.locale]||"":e.page[t.name]||""}function Zt(e,t){return e.errors.filter(n=>n.attribute===t).map(n=>n.message)}function wm(e){return e?typeof e=="string"?new Date(e):e:null}function mA(e){let{locale:t,locales:n,page:i,templates:a}=e;return Ce(G({},e),{inputDir:n&&n[t]&&n[t].dir||"ltr",templateConfig:a.filter(l=>l.template_name===i.template)[0]})}function gA(e){return{published_at:wm(e.published_at),starts_at:wm(e.starts_at),ends_at:wm(e.ends_at)}}function vA(e){return["path_segment",...new Set(e.flatMap(t=>[...t.blocks,...t.metadata_blocks]).filter(t=>t.localized).map(t=>t.name))]}function yA(e){let t=G(G({},e.page),gA(e.page));return Ce(G({},e),{page:t})}function wA(e,t){let{type:n,payload:i}=t;switch(n){case"setLocale":return Ce(G({},e),{locale:i});case"update":return xA(e,i);default:return e}}function xA(e,t){let{locale:n,templates:i,page:a}=e,l={};return Object.keys(t).forEach(u=>{vA(i).indexOf(u)!==-1?l[u]=Ce(G({},a[u]),{[n]:t[u]}):l[u]=t[u]}),Ce(G({},e),{page:G(G({},a),l)})}function xm(e){let[t,n]=(0,k_.useReducer)(wA,yA(e));return[mA(t),n]}var Vi=K(oe()),Tm=K(et());var $i=K(oe()),Sr=K(et());function lt(e){let{htmlFor:t,description:n,label:i,errors:a,children:l}=e,u=["field"];return a&&a.length>0&&u.push("field-with-errors"),$i.default.createElement("div",{className:u.join(" ")},$i.default.createElement("label",{htmlFor:t},i,a&&$i.default.createElement($i.default.Fragment,null," ",$i.default.createElement("span",{className:"error"},a[a.length-1]))),n&&$i.default.createElement("p",{className:"description"},n),l)}lt.propTypes={htmlFor:Sr.default.string,description:Sr.default.string,label:Sr.default.string,errors:Sr.default.array,children:Sr.default.oneOfType([Sr.default.string,Sr.default.object,Sr.default.array])};var si=K(oe());var sa=K(oe());function _m(e){let[t,n]=(0,sa.useState)(""),i=u=>{u.preventDefault(),e.addTag(t),n("")};return sa.default.createElement("div",{className:"add-tag-form"},sa.default.createElement("input",{name:"add-tag",type:"text",className:"add-tag",value:t,onKeyDown:u=>{u.which===13&&i(u)},onChange:u=>{n(u.target.value)},placeholder:"Add tag..."}),sa.default.createElement("button",{onClick:i,disabled:!t},"Add"))}var Yl=K(oe());function Em(e){let t=()=>{e.toggleEnabled(e.tag)},n=["tag"];return e.enabled&&n.push("enabled"),Yl.default.createElement("span",{className:n.join(" ")},Yl.default.createElement("label",{className:"check-box"},Yl.default.createElement("input",{type:"checkbox",name:"tag-"+e.tag,value:"1",checked:e.enabled,onChange:t}),Yl.default.createElement("span",{className:"name"},e.tag)))}function Sm(e,t,n){return n.indexOf(e)===t}function Xl(e){let[t,n]=(0,si.useState)(e.tags),[i,a]=(0,si.useState)(e.enabled),l=[...t,...i].filter(Sm),u=w=>l.filter(_=>_.toLowerCase()==w.toLowerCase())[0]||w,c=w=>i.map(_=>_.toLowerCase()).indexOf(w.toLowerCase())!==-1,d=w=>{let _=u(w);c(_)?a(i.filter(E=>E!==_)):a([...i,_])},p=w=>{let _=u(w);n([...t,_].filter(Sm)),a([...i,_].filter(Sm))};return si.default.createElement("div",{className:"tag-editor clearfix"},si.default.createElement("input",{type:"hidden",name:e.name,value:JSON.stringify(i)}),l.map(w=>si.default.createElement(Em,{key:w,tag:w,enabled:c(w),toggleEnabled:d})),si.default.createElement(_m,{addTag:p}))}var ua=K(oe()),Hi=K(et());var Wi=K(oe()),tr=K(et());var bm=K(oe());function Cm(e){return bm.default.createElement("a",{title:e.name,className:"button "+e.className,onClick:e.onClick},bm.default.createElement("i",{className:"fa-solid fa-"+e.className}))}var br=class extends Wi.default.Component{constructor(t){super(t);this.state={value:t.value||"",rows:t.rows||5},this.inputRef=Wi.default.createRef(),this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.getSelection=this.getSelection.bind(this),this.link=this.link.bind(this),this.replaceSelection=this.replaceSelection.bind(this)}actions(){let t=[{name:"bold",className:"bold",hotkey:"b",fn:i=>["",i,""]},{name:"italic",className:"italic",hotkey:"i",fn:i=>["",i,""]}],n=[{name:"Heading 2",className:"header h2",fn:i=>["h2. ",i,""]},{name:"Heading 3",className:"header h3",fn:i=>["h3. ",i,""]},{name:"Heading 4",className:"header h4",fn:i=>["h4. ",i,""]},{name:"Blockquote",className:"quote-left",fn:i=>["bq. ",i,""]},{name:"List",className:"list-ul",fn:i=>["",this.strToList(i,"*"),""]},{name:"Ordered list",className:"list-ol",fn:i=>["",this.strToList(i,"#"),""]},{name:"Link",className:"link",fn:this.link},{name:"Email link",className:"envelope",fn:this.emailLink}];return this.props.simple?t:[...t,...n]}applyAction(t){let[n,i,a]=t(this.getSelection());this.replaceSelection(n,i,a)}emailLink(t){var n=prompt("Enter email address","");let i=t.length>0?t:n;return['"',i,`":mailto:${n}`]}getSelection(){let{selectionStart:t,selectionEnd:n,value:i}=this.inputRef.current;return i.substr(t,n-t)}handleChange(t){this.updateValue(t.target.value)}handleKeyPress(t){let n;t.which>=65&&t.which<=90?n=String.fromCharCode(t.keyCode).toLowerCase():t.keyCode===13&&(n="enter");let i={};this.actions().forEach(a=>{a.hotkey&&(i[a.hotkey]=a.fn)}),(t.metaKey||t.ctrlKey)&&Object.prototype.hasOwnProperty.call(i,n)&&(t.preventDefault(),this.applyAction(i[n]))}link(t){let n=t.length>0?t:"Link text";var i=prompt("Enter link URL","");return i?['"',n,`":${this.relativeUrl(i)}`]:["",n,""]}localeOptions(){let t={};return this.props.lang&&(t.lang=this.props.lang),this.props.dir&&(t.dir=this.props.dir),t}relativeUrl(t){let n=null;if(!t.match(/^https:\/\//)||!document||!document.location)return t;try{n=new URL(t)}catch(i){console.log("Error parsing URL: ",i)}return n&&n.hostname==document.location.hostname&&(document.location.port||"80")==(n.port||"80")?n.pathname:t}render(){let{rows:t}=this.state,{id:n,name:i}=this.props,a=this.getValue(),l=u=>c=>{c.preventDefault(),this.applyAction(u)};return Wi.default.createElement("div",{className:"rich-text-area"},Wi.default.createElement("div",{className:"rich-text toolbar"},this.actions().map(u=>Wi.default.createElement(Cm,{key:u.name,name:u.name,className:u.className,onClick:l(u.fn)}))),Wi.default.createElement("textarea",G({className:this.props.className||"rich",ref:this.inputRef,id:n,name:i,value:a,rows:t,onChange:this.handleChange,onKeyDown:this.handleKeyPress},this.localeOptions())))}replaceSelection(t,n,i){let a=this.inputRef.current,{selectionStart:l,selectionEnd:u,value:c}=a;a.value=c.substr(0,l)+t+n+i+c.substr(u,c.length),a.focus({preventScroll:!0}),a.setSelectionRange(l+t.length,l+t.length+n.length),this.updateValue(a.value)}strToList(t,n){return t.split(` +%o`,n,t,i),(a=window.onerror)===null||a===void 0||a.call(window,n,"",0,0,t)}logFormattedMessage(t,n,i={}){i=Object.assign({application:this},i),this.logger.groupCollapsed(`${t} #${n}`),this.logger.log("details:",Object.assign({},i)),this.logger.groupEnd()}};function $D(){return new Promise(e=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>e()):e()})}function jD(e){return Wf(e,"classes").reduce((n,i)=>Object.assign(n,WD(i)),{})}function WD(e){return{[`${e}Class`]:{get(){let{classes:t}=this;if(t.has(e))return t.get(e);{let n=t.getAttributeName(e);throw new Error(`Missing attribute "${n}"`)}}},[`${e}Classes`]:{get(){return this.classes.getAll(e)}},[`has${Ds(e)}Class`]:{get(){return this.classes.has(e)}}}}function HD(e){return Wf(e,"targets").reduce((n,i)=>Object.assign(n,VD(i)),{})}function VD(e){return{[`${e}Target`]:{get(){let t=this.targets.find(e);if(t)return t;throw new Error(`Missing target element "${e}" for "${this.identifier}" controller`)}},[`${e}Targets`]:{get(){return this.targets.findAll(e)}},[`has${Ds(e)}Target`]:{get(){return this.targets.has(e)}}}}function KD(e){let t=DD(e,"values"),n={valueDescriptorMap:{get(){return t.reduce((i,a)=>{let l=_y(a,this.identifier),u=this.data.getAttributeNameForKey(l.key);return Object.assign(i,{[u]:l})},{})}}};return t.reduce((i,a)=>Object.assign(i,qD(a)),n)}function qD(e,t){let n=_y(e,t),{key:i,name:a,reader:l,writer:u}=n;return{[a]:{get(){let c=this.data.get(i);return c!==null?l(c):n.defaultValue},set(c){c===void 0?this.data.delete(i):this.data.set(i,u(c))}},[`has${Ds(a)}`]:{get(){return this.data.has(i)||n.hasCustomDefaultValue}}}}function _y([e,t],n){return QD({controller:n,token:e,typeDefinition:t})}function Hf(e){switch(e){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function ma(e){switch(typeof e){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(e))return"array";if(Object.prototype.toString.call(e)==="[object Object]")return"object"}function YD(e){let t=Hf(e.typeObject.type);if(!t)return;let n=ma(e.typeObject.default);if(t!==n){let i=e.controller?`${e.controller}.${e.token}`:e.token;throw new Error(`The specified default value for the Stimulus Value "${i}" must match the defined type "${t}". The provided default value of "${e.typeObject.default}" is of type "${n}".`)}return t}function XD(e){let t=YD({controller:e.controller,token:e.token,typeObject:e.typeDefinition}),n=ma(e.typeDefinition),i=Hf(e.typeDefinition),a=t||n||i;if(a)return a;let l=e.controller?`${e.controller}.${e.typeDefinition}`:e.token;throw new Error(`Unknown value type "${l}" for "${e.token}" value`)}function GD(e){let t=Hf(e);if(t)return ZD[t];let n=e.default;return n!==void 0?n:e}function QD(e){let t=`${ty(e.token)}-value`,n=XD(e);return{type:n,key:t,name:ey(t),get defaultValue(){return GD(e.typeDefinition)},get hasCustomDefaultValue(){return ma(e.typeDefinition)!==void 0},reader:JD[n],writer:Gv[n]||Gv.default}}var ZD={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},JD={array(e){let t=JSON.parse(e);if(!Array.isArray(t))throw new TypeError(`expected value of type "array" but instead got value "${e}" of type "${ma(t)}"`);return t},boolean(e){return!(e=="0"||String(e).toLowerCase()=="false")},number(e){return Number(e)},object(e){let t=JSON.parse(e);if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(`expected value of type "object" but instead got value "${e}" of type "${ma(t)}"`);return t},string(e){return e}},Gv={default:eN,array:Qv,object:Qv};function Qv(e){return JSON.stringify(e)}function eN(e){return`${e}`}var zn=class{constructor(t){this.context=t}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(t,{target:n=this.element,detail:i={},prefix:a=this.identifier,bubbles:l=!0,cancelable:u=!0}={}){let c=a?`${a}:${t}`:t,d=new CustomEvent(c,{detail:i,bubbles:l,cancelable:u});return n.dispatchEvent(d),d}};zn.blessings=[jD,HD,KD];zn.targets=[];zn.values={};var p3=oe(Ox());var pc={};dD(pc,{Attachments:()=>Tl,DateRangeSelect:()=>kl,EditableImage:()=>Mi,FileUploadButton:()=>Gn,ImageCropper:()=>Nl,ImageGrid:()=>Ol,ImageUploader:()=>Al,Modal:()=>jh,PageForm:()=>ug,PageTree:()=>dc,RichTextArea:()=>ri,TagEditor:()=>Ll,Toast:()=>fg});var ic=oe(re());var Tn=oe(re());var St=oe(re());function El(){return document.queryCommandSupported&&document.queryCommandSupported("copy")}function Xn(e){let t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}var We=oe(re());var Ix={},Ax=e=>{let t,n=new Set,i=(d,p)=>{let y=typeof d=="function"?d(t):d;if(!Object.is(y,t)){let x=t;t=(p!=null?p:typeof y!="object")?y:Object.assign({},t,y),n.forEach(E=>E(t,x))}},a=()=>t,c={setState:i,getState:a,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(Ix.env&&Ix.env.MODE)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}};return t=e(i,a,c),c},Lx=e=>e?Ax(e):Ax;var Vx=oe(re(),1),Kx=oe(jx(),1),Hx={},{useSyncExternalStoreWithSelector:GA}=Kx.default;function QA(e,t=e.getState,n){let i=GA(e.subscribe,e.getState,e.getServerState||e.getState,t,n);return(0,Vx.useDebugValue)(i),i}var Wx=e=>{(Hx.env&&Hx.env.MODE)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");let t=typeof e=="function"?Lx(e):e,n=(i,a)=>QA(t,i,a);return Object.assign(n,t),n},ec=e=>e?Wx(e):Wx;var ZA=ec(e=>({component:null,open:t=>e({component:t}),close:()=>e({component:null})})),Yt=ZA;var JA=ec(e=>({toasts:[],error:t=>e(n=>({toasts:[...n.toasts,{message:t,type:"error"}]})),notice:t=>e(n=>({toasts:[...n.toasts,{message:t,type:"notice"}]})),next:()=>e(t=>({toasts:t.toasts.slice(1)}))})),Ut=JA;function tc(){let e=document.querySelector("[name=csrf-token]");return e&&e.getAttribute("content")||""}function qx(){return{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8","X-CSRF-Token":tc()}}}async function Yx(e,t){let n=Pe(Z({},qx()),{method:"POST"});return t&&(n.body=JSON.stringify(t)),(await fetch(e,n)).json()}async function Fo(e,t){let n=Pe(Z({},qx()),{method:"PUT"});return t&&(n.body=JSON.stringify(t)),(await fetch(e,n)).json()}async function Ro(e,t){return(await fetch(e,{method:"POST",body:t,headers:{"X-CSRF-Token":tc()}})).json()}function Ch(e){let{attachment:t,locales:n}=e,[i,a]=(0,We.useState)(e.locale),[l,u]=(0,We.useState)({name:t.name||{},description:t.description||{}}),c=Ut(C=>C.notice),d=Yt(C=>C.close),p=C=>k=>{u(Pe(Z({},l),{[C]:Pe(Z({},l[C]),{[i]:k.target.value})}))},y=C=>{C.preventDefault(),Xn(`[attachment:${t.id}]`),c("Embed code copied to clipboard")},x=C=>{C.preventDefault(),C.stopPropagation();let k=Z({},l);Fo(`/admin/attachments/${t.id}`,{attachment:k}),e.onUpdate&&e.onUpdate(k),d()},E=n&&n[i]&&n[i].dir||"ltr";return We.default.createElement("div",{className:"attachment-editor"},We.default.createElement("form",null,e.locales&&Object.keys(n).length>1&&We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"Locale"),We.default.createElement("select",{name:"locale",value:i,onChange:C=>a(C.target.value)},Object.keys(n).map(C=>We.default.createElement("option",{key:`locale-${C}`,value:C},n[C].name)))),We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"Name"),We.default.createElement("input",{type:"text",className:"name",lang:i,dir:E,value:l.name[i]||"",onChange:p("name")})),We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"Description"),We.default.createElement("textarea",{className:"description",value:l.description[i]||"",lang:i,dir:E,onChange:p("description")})),We.default.createElement("div",{className:"field embed-code"},We.default.createElement("label",null,"Embed code"),We.default.createElement("input",{type:"text",value:`[attachment:${t.id}]`,disabled:!0}),El()&&We.default.createElement("button",{onClick:y},"Copy")),We.default.createElement("div",{className:"field"},We.default.createElement("label",null,"File"),We.default.createElement("a",{href:t.url,rel:"noreferrer",target:"_blank"},t.filename)),We.default.createElement("div",{className:"buttons"},We.default.createElement("button",{onClick:x},"Save"),We.default.createElement("button",{onClick:d},"Cancel"))))}var Jr=oe(re()),Gx=oe(Xx());function eI(e){return e&&e.ref&&e.ref.current?e.ref.current.getBoundingClientRect():null}function tI(e,t){if(e&&e.ref&&e.ref.current){let n=e.ref.current.style.display;e.ref.current.style.display="none";let i=t();return e.ref.current.style.display=n,i}else return t()}function nI(e,t){let n=e.indexOf("Files");return n===-1||!t?e:[...e.slice(0,n),...t,...e.slice(n+1)]}function rI(e,t){switch(t.type){case"append":return[...e,...t.payload];case"prepend":return[...t.payload,...e];case"insertFiles":return nI(e,t.payload);case"update":return e.map(n=>n.handle===t.payload.handle?t.payload:n);case"updatePositions":return tI(t.payload,()=>e.map(n=>Pe(Z({},n),{rect:eI(n)})));case"remove":return e.filter(n=>n.handle!==t.payload.handle);case"replace":return t.payload;case"reorder":return t.payload;default:return e}}function Bo(e){return{record:e,rect:null,ref:(0,Jr.createRef)(),handle:(0,Gx.uniqueId)("draggable")}}function Ii(e){let t=(0,Jr.useRef)(null),[n,i]=(0,Jr.useReducer)(rI,[],()=>e.map(a=>Bo(a)));return(0,Jr.useEffect)(()=>{i({type:"updatePositions"})},[]),{ref:t,draggables:n,dispatch:i}}var nc=oe(re());function iI(e){if("dataTransfer"in e){let t=e.dataTransfer;if("types"in t){let n=t.types;for(let i=0;i{e.forEach(x=>{x.dispatch({type:"updatePositions",payload:y})})},u=(y,x)=>{l(x),a(Z({dragging:x},Qx(y)))},c=y=>{i.dragging?(y.stopPropagation(),y.preventDefault(),a(Z(Z({},i),Qx(y)))):iI(y)&&u(y,"Files")},d=y=>{if(i.dragging){let x=i,E=[];y.stopPropagation(),y.preventDefault(),"dataTransfer"in y&&i.dragging=="Files"&&(E=oI(y.dataTransfer)),a({dragging:!1,x:null,y:null}),t(x,E),l()}},p=y=>{i.dragging==="Files"&&(y.preventDefault(),y.stopPropagation(),a({dragging:!1,x:null,y:null}))};return(0,nc.useEffect)(()=>(window.addEventListener("mousemove",c),window.addEventListener("touchmove",c),window.addEventListener("mouseup",d),window.addEventListener("touchend",d),window.addEventListener("mouseout",p),function(){window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",c),window.removeEventListener("mouseup",d),window.removeEventListener("touchend",d),window.removeEventListener("mouseout",p)})),[i,u,{onDragOver:c,onDrop:d}]}var rc=oe(re());function $o(e,t){let n=(0,rc.useRef)(null),i=a=>{a.preventDefault(),a.stopPropagation(),t(a,e)};return(0,rc.useEffect)(()=>{e.ref.current=n.current},[]),{ref:n,onDragStart:i,draggable:!0}}function Zx(e,t){let{x:n,y:i}=e,a;if("rect"in t)a=t.rect;else if("current"in t)a=t.current.getBoundingClientRect();else return!1;return n>=a.left&&n<=a.right&&i>=a.top&&i<=a.bottom}function Cl(e,t){let{draggables:n,ref:i}=e,{dragging:a}=t;if(!a)return n;let l=n.filter(u=>u.handle!==a.handle);if(Zx(t,i)){let u=l.filter(c=>Zx(t,c))[0];if(u){let c=l.indexOf(u);l=[...l.slice(0,c),a,...l.slice(c)]}else l=[...l,a]}return l}function bl(e,t){let n=Cl(e,t);return t.dragging&&n.indexOf(t.dragging)===-1&&(e.ref.current&&t.yb.open),p=Ut(b=>b.notice),y=$o(n,e.startDrag),x=b=>{b.preventDefault(),Xn(`[attachment:${u.id}]`),p("Embed code copied to clipboard")},E=b=>{b.preventDefault(),e.deleteRecord&&e.deleteRecord()},C=()=>u.description&&u.description[a]?u.description[a]:null,k=()=>u.name&&u.name[a]?u.name[a]:null,P=b=>{b.preventDefault(),d(St.default.createElement(Ch,{attachment:u,locale:a,locales:i,onUpdate:e.onUpdate}))},_=["attachment"];e.placeholder&&_.push("placeholder"),l.uploading&&_.push("uploading");let w=c?"cloud-arrow-up":"paperclip",m="ltr";return a in i&&i[a].dir&&(m=i[a].dir),St.default.createElement("div",Z({className:_.join(" ")},y),St.default.createElement("input",{name:`${t}[id]`,type:"hidden",value:l.id||""}),St.default.createElement("input",{name:`${t}[attachment_id]`,type:"hidden",value:u&&u.id||""}),St.default.createElement("input",{name:`${t}[position]`,type:"hidden",value:e.position}),!c&&St.default.createElement("div",{className:"actions"},St.default.createElement("button",{onClick:P},"Edit"),e.showEmbed&&St.default.createElement("button",{onClick:x},"Embed"),e.deleteRecord&&St.default.createElement("button",{onClick:E},"Remove")),u&&St.default.createElement("div",{className:"attachment-info"},St.default.createElement("h3",null,St.default.createElement("i",{className:`fa-solid fa-${w} icon`}),k()||St.default.createElement("em",null,"Untitled"),St.default.createElement("br",null)),!c&&St.default.createElement("a",{href:u.url,rel:"noreferrer",target:"_blank"},u.filename),!c&&C()&&St.default.createElement("p",{dir:m},C())))}var Jx=oe(re());function Th(){return Jx.default.createElement("div",{className:"attachment drop-placeholder",key:"file-placeholder"},"Upload files here")}var ei=oe(re());function Gn(e){let t=(0,ei.useRef)(),n=a=>{let l=a.target.files,u=[];for(let c=0;c0&&e.callback(u)},i=a=>{a.preventDefault(),t.current.click()};return ei.default.createElement("div",{className:"upload-button"},ei.default.createElement("span",null,"Drag and drop ",e.type||"file",e.multiple&&"s"," here, or",e.multiline&&ei.default.createElement("br",null),ei.default.createElement("button",{onClick:i},"choose a file")),ei.default.createElement("input",{type:"file",onChange:n,ref:t,style:{display:"none"},multiple:e.multiple||!1}))}function aI(e){return e.replace(/\.[\w\d]+$/,"").replace(/_/g," ")}function kh(e){let{collection:t,deleted:n,setDeleted:i}=e,a=e.locales&&e.locales.length>0?Object.keys(e.locales):[e.locale],l=m=>{let b={};a.forEach(V=>b[V]=m.name);let N=Bo({attachment:{filename:m.name,name:b},uploading:!0}),q=new FormData;return q.append("attachment[file]",m),a.forEach(V=>{q.append(`attachment[name][${V}]`,aI(m.name))}),Ro("/admin/attachments.json",q).then(V=>{t.dispatch({type:"update",payload:Pe(Z({},N),{record:{attachment:V,uploading:!1}})})}),N},u=m=>{t.dispatch({type:"append",payload:m.map(b=>l(b))})},c=(m,b)=>{t.dispatch({type:"reorder",payload:bl(t,m)}),t.dispatch({type:"insertFiles",payload:b.map(N=>l(N))})},[d,p,y]=zo([t],c),x=m=>[...t.draggables.map(b=>b.record),...n].indexOf(m)+1,E=m=>`${e.attribute}[${x(m)}]`,C=m=>b=>{let{record:N}=m,q=Pe(Z({},m),{record:Pe(Z({},N),{attachment:Z(Z({},N.attachment),b)})});t.dispatch({type:"update",payload:q})},k=m=>()=>{t.dispatch({type:"remove",payload:m}),m.record.id&&i([...n,m.record])},P=m=>{let{dragging:b}=d;return m==="Files"?Tn.default.createElement(Th,{key:"placeholder"}):Tn.default.createElement(bh,{key:m.handle,draggable:m,locale:e.locale,locales:e.locales,showEmbed:e.showEmbed,startDrag:p,position:x(m.record),onUpdate:C(m),deleteRecord:k(m),attributeName:E(m.record),placeholder:b&&b==m})},_=bl(t,d),w=["attachments"];return d.dragging&&w.push("dragover"),Tn.default.createElement("div",Z({className:w.join(" "),ref:t.ref},y),Tn.default.createElement("div",{className:"files"},_.map(m=>P(m))),Tn.default.createElement("div",{className:"deleted"},n.map(m=>Tn.default.createElement("span",{className:"deleted-attachment",key:m.id},Tn.default.createElement("input",{name:`${E(m)}[id]`,type:"hidden",value:m.id}),Tn.default.createElement("input",{name:`${E(m)}[attachment_id]`,type:"hidden",value:m.attachment&&m.attachment.id||""}),Tn.default.createElement("input",{name:`${E(m)}[_destroy]`,type:"hidden",value:!0})))),Tn.default.createElement("div",{className:"drop-target"},Tn.default.createElement(Gn,{multiple:!0,multiline:!0,callback:u})))}function Tl(e){let{attribute:t,locale:n,locales:i,records:a,showEmbed:l}=e,u=Ii(a),[c,d]=(0,ic.useState)([]);return ic.default.createElement(kh,{attribute:t,locale:n,locales:i,collection:u,deleted:c,setDeleted:d,showEmbed:l})}var Qn=oe(re());var Xt=oe(re());function lI(e,t={}){let n=new Date(e);return"year"in t&&n.setFullYear(t.year),"month"in t&&n.setMonth(t.month),"date"in t&&n.setDate(t.date),"time"in t&&t.time.match(/^[\d]{1,2}(:[\d]{1,2})?$/)&&(n.setHours(t.time.split(":")[0]),n.setMinutes(t.time.split(":")[1]||0)),n}function e_(e){return e.toTimeString().slice(0,5)}function sI(){let t=[];for(let n=2e3;n<=new Date().getFullYear()-2e3+11;n++)t.push(n);return t}function uI(){return["January","February","March","April","May","June","July","August","September","October","November","December"]}function cI(){let e=[];for(let t=1;t<=31;t++)e.push(t);return e}function jo(e){let{name:t,disabled:n,disableTime:i,onChange:a,value:l}=e,[u,c]=(0,Xt.useState)(e_(l));(0,Xt.useEffect)(()=>{c(e_(l))},[l]);let d=(p={})=>{a(lI(l,p))};return Xt.default.createElement("div",{className:"date-select"},t&&Xt.default.createElement("input",{type:"hidden",name:t,value:!n&&l.toJSON()}),Xt.default.createElement("select",{value:l.getMonth(),onChange:p=>d({month:p.target.value}),disabled:n},uI().map((p,y)=>Xt.default.createElement("option",{key:y,value:y},p))),Xt.default.createElement("select",{value:l.getDate(),onChange:p=>d({date:p.target.value}),disabled:n},cI().map(p=>Xt.default.createElement("option",{key:p,value:p},p))),Xt.default.createElement("select",{value:l.getFullYear(),onChange:p=>d({year:p.target.value}),disabled:n},sI().map(p=>Xt.default.createElement("option",{key:p,value:p},p))),!i&&Xt.default.createElement("input",{type:"text",size:5,disabled:n,value:u,onChange:p=>c(p.target.value),onBlur:p=>d({time:p.target.value})}))}function t_(e=0){return new Date(Math.round(new Date().getTime()/36e5)*36e5+36e5+1e3*60*e)}function n_(e){return e?typeof e=="string"?new Date(e):e:null}function kl(e){let{disabled:t,disableTime:n,objectName:i}=e,[a,l]=(0,Qn.useState)(n_(e.startsAt)||t_()),[u,c]=(0,Qn.useState)(n_(e.endsAt)||t_(60)),d=(x,E)=>{E{d(x,new Date(u.getTime()+(x-a)))},y=x=>{d(a,x)};return Qn.default.createElement("div",{className:"date-range-select"},Qn.default.createElement("div",{className:"date"},Qn.default.createElement(jo,{name:i+"[starts_at]",disabled:t,disableTime:n,onChange:p,value:a})),Qn.default.createElement("span",{className:"to"},"to"),Qn.default.createElement("div",{className:"date"},Qn.default.createElement(jo,{name:i+"[ends_at]",disabled:t,disableTime:n,onChange:y,value:u})))}var yr=oe(re());var Li=oe(re());var ln=oe(re());var Ho=oe(re()),u_=oe(o_());var Wo=oe(re());function fI(e,t){let n=ac(e),i=e.image,a=i.real_width/i.real_height;return t?(n.aspect=t,n.width=100,n.height=100/t*a,n.height>100&&(n.height=100,n.width=100*t/a),n.x=(100-n.width)/2,n.y=(100-n.height)/2):delete n.aspect,a_(e,n)}function a_(e,t){let{image:n}=e;return(t.width<5||t.height<5)&&(t={x:0,y:0,width:100,height:100}),t.aspect===null&&delete t.aspect,{aspect:t.aspect,crop_start_x:n.real_width*(t.x/100),crop_start_y:n.real_height*(t.y/100),crop_width:n.real_width*(t.width/100),crop_height:n.real_height*(t.height/100)}}function l_(e,t){let{crop_start_x:n,crop_start_y:i,crop_width:a,crop_height:l,crop_gravity_x:u,crop_gravity_y:c}=e;switch(t.type){case"completeCrop":return un+a||ci+l?Pe(Z({},e),{cropping:!1,crop_gravity_x:null,crop_gravity_y:null}):Pe(Z({},e),{cropping:!1});case"setCrop":return Z(Z({},e),a_(e,t.payload));case"setAspect":return Z(Z({},e),fI(e,t.payload));case"setFocal":return Pe(Z({},e),{crop_gravity_x:a*(t.payload.x/100)+n,crop_gravity_y:l*(t.payload.y/100)+i});case"startCrop":return Pe(Z({},e),{cropping:!0});case"toggleFocal":return u===null?l_(e,{type:"setFocal",payload:{x:50,y:50}}):Pe(Z({},e),{crop_gravity_x:null,crop_gravity_y:null});default:return e}}function dI(e,t){let n=document.createElement("canvas");n.width=e.naturalWidth*(t.width/100),n.height=e.naturalHeight*(t.height/100);let i=n.getContext("2d");return i.drawImage(e,e.naturalWidth*(t.x/100),e.naturalHeight*(t.y/100),e.naturalWidth*(t.width/100),e.naturalHeight*(t.height/100),0,0,e.naturalWidth*(t.width/100),e.naturalHeight*(t.height/100)),[n,i]}function pI(e,t){let n=t.getImageData(0,0,e.width,e.height).data;for(let i=0;iu=>u===null?u:l(u),n=t(Math.round),i=t(Math.ceil),a={crop_start_x:n(e.crop_start_x),crop_start_y:n(e.crop_start_y),crop_width:i(e.crop_width),crop_height:i(e.crop_height),crop_gravity_x:n(e.crop_gravity_x),crop_gravity_y:n(e.crop_gravity_y)};return a.crop_start_x+a.crop_width>e.image.real_width&&(a.crop_width=e.image.real_width-a.crop_start_x),a.crop_start_y+a.crop_height>e.image.real_height&&(a.crop_height=e.image.real_height-a.crop_start_y),a}function ac(e){let{image:t,aspect:n,crop_start_x:i,crop_start_y:a,crop_width:l,crop_height:u}=e,c=t.real_width/t.real_height,d=i/t.real_width*100,p=a/t.real_height*100,y=l/t.real_width*100,x=u/t.real_height*100;return n&&y?x=y/n*c:n&&x&&(y=x*n/c),n===null?{x:d,y:p,width:y,height:x}:{x:d,y:p,width:y,height:x,aspect:n}}function Dl(e){let t={aspect:null,cropping:!1,crop_start_x:e.crop_start_x||0,crop_start_y:e.crop_start_y||0,crop_width:e.crop_width||e.real_width,crop_height:e.crop_height||e.real_height,crop_gravity_x:e.crop_gravity_x,crop_gravity_y:e.crop_gravity_y,image:e},[n,i]=(0,Wo.useReducer)(l_,t),[a,l]=(0,Wo.useState)(null);async function u(){let c=new Image;c.src=n.image.uncropped_url,await c.decode();let[d,p]=dI(c,ac(n));l(pI(d,p))}return(0,Wo.useEffect)(()=>{n.cropping||u()},[n.cropping]),[n,i,a]}var vr=oe(re());function s_(e,t,n){return en?n:e}function Dh(e){let{width:t,height:n,onChange:i}=e,[a,l]=(0,vr.useState)(!1),[u,c]=(0,vr.useState)({x:e.x,y:e.y}),d=(0,vr.useRef)(),p=(0,vr.useRef)(),y=_=>{_.preventDefault(),_.stopPropagation(),_.target==p.current&&l(!0)},x=()=>{a&&(l(!1),i(u))},E=_=>{if(a){let w,m,b=d.current.getBoundingClientRect();_.preventDefault(),"touches"in _&&_.type=="touchmove"?(w=_.touches[0].clientX-(b.x||b.left),m=_.touches[0].clientY-(b.y||b.top)):(w=_.clientX-(b.x||b.left),m=_.clientY-(b.y||b.top)),w=s_(w,0,t),m=s_(m,0,n),c({x:w/t*100,y:m/n*100})}},C=t*(u.x/100),k=n*(u.y/100),P={transform:`translate3d(${C}px, ${k}px, 0)`};return vr.default.createElement("div",{className:"focal-editor",ref:d,onTouchStart:y,onTouchEnd:x,onTouchMove:E,onMouseDown:y,onMouseUp:x,onMouseMove:E},vr.default.createElement("div",{className:"focal-point",style:P,ref:p}))}function Nh(e){let t=()=>{let{image:d,cropping:p,crop_width:y,crop_height:x}=e.cropState;return p?{width:d.real_width,height:d.real_height}:{width:y,height:x}},n=e.containerSize.width,i=e.containerSize.height,a=t().width/t().height,l=n,u=n/a;u>i&&(u=i,l=i*a);let c={width:`${l}px`,height:`${u}px`};return e.cropState.cropping?Ho.default.createElement("div",{className:"image-wrapper",style:c},Ho.default.createElement(u_.default,{src:e.cropState.image.uncropped_url,crop:ac(e.cropState),minWidth:10,minHeight:10,onChange:e.setCrop})):Ho.default.createElement("div",{className:"image-wrapper",style:c},e.focalPoint&&Ho.default.createElement(Dh,{width:l,height:u,x:e.focalPoint.x,y:e.focalPoint.y,onChange:e.setFocal}),Ho.default.createElement("img",{src:e.croppedImage}))}var Gt=oe(re());function Oh(e){let{cropping:t}=e.cropState,n=[["Free",null],["1:1",1],["3:2",3/2],["2:3",2/3],["4:3",4/3],["3:4",3/4],["5:4",5/4],["4:5",4/5],["16:9",16/9]],i=c=>d=>{d.preventDefault(),e.setAspect(c)},a=Math.ceil(e.cropState.crop_width),l=Math.ceil(e.cropState.crop_height),u=e.image.content_type.split("/")[1].toUpperCase();return Gt.default.createElement("div",{className:"toolbars"},Gt.default.createElement("div",{className:"toolbar"},Gt.default.createElement("div",{className:"info"},Gt.default.createElement("span",{className:"format"},a,"x",l," ",u)),Gt.default.createElement("button",{title:"Crop image",onClick:e.toggleCrop,className:t?"active":""},Gt.default.createElement("i",{className:"fa-solid fa-crop"})),Gt.default.createElement("button",{disabled:t,title:"Toggle focal point",onClick:e.toggleFocal},Gt.default.createElement("i",{className:"fa-solid fa-bullseye"})),Gt.default.createElement("a",{href:e.image.original_url,className:"button",title:"Download original image",disabled:t,download:e.image.filename,onClick:c=>t&&c.preventDefault()},Gt.default.createElement("i",{className:"fa-solid fa-download"}))),t&&Gt.default.createElement("div",{className:"aspect-ratios toolbar"},Gt.default.createElement("div",{className:"label"},"Lock aspect ratio:"),n.map(c=>Gt.default.createElement("button",{key:c[0],className:c[1]==e.cropState.aspect?"active":"",onClick:i(c[1])},c[0]))))}function hI(e){return e.crop_gravity_x===null||e.crop_gravity_y===null?null:{x:(e.crop_gravity_x-e.crop_start_x)/e.crop_width*100,y:(e.crop_gravity_y-e.crop_start_y)/e.crop_height*100}}function Nl(e){let t=(0,ln.useRef)(),[n,i]=(0,ln.useState)(),a=()=>{let p=t.current;p&&i({width:p.offsetWidth-2,height:p.offsetHeight-2})};(0,ln.useEffect)(()=>(window.addEventListener("resize",a),function(){window.removeEventListener("resize",a)})),(0,ln.useEffect)(a,[]);let l=p=>{e.dispatch({type:"setAspect",payload:p})},u=p=>{e.dispatch({type:"setCrop",payload:p})},c=p=>{e.dispatch({type:"setFocal",payload:p})},d=()=>{e.cropState.cropping?e.dispatch({type:"completeCrop"}):e.dispatch({type:"startCrop"})};return ln.default.createElement("div",{className:"visual"},ln.default.createElement(Oh,{cropState:e.cropState,image:e.cropState.image,setAspect:l,toggleCrop:d,toggleFocal:()=>e.dispatch({type:"toggleFocal"})}),ln.default.createElement("div",{className:"image-container",ref:t},!e.croppedImage&&ln.default.createElement("div",{className:"loading"},"Loading image\u2026"),e.croppedImage&&n&&ln.default.createElement(Nh,{cropState:e.cropState,containerSize:n,croppedImage:e.croppedImage,focalPoint:hI(e.cropState),setCrop:u,setFocal:c})))}var at=oe(re());function Ah(e){let{alternative:t,caption:n,image:i,locale:a,locales:l}=e,u=Yt(x=>x.close),c=Ut(x=>x.notice),d=x=>{x.preventDefault(),Xn(`[image:${i.id}]`),c("Embed code copied to clipboard")},p=x=>{e.setLocale(x.target.value)},y=l&&l[a]&&l[a].dir||"ltr";return at.default.createElement("form",null,at.default.createElement("div",{className:"field embed-code"},at.default.createElement("label",null,"Embed code"),at.default.createElement("input",{type:"text",value:`[image:${i.id}]`,disabled:!0}),El()&&at.default.createElement("button",{onClick:d},"Copy")),l&&Object.keys(l).length>1&&at.default.createElement("div",{className:"field"},at.default.createElement("label",null,"Locale"),at.default.createElement("select",{name:"locale",value:a,onChange:p},Object.keys(l).map(x=>at.default.createElement("option",{key:`locale-${x}`,value:x},l[x].name)))),at.default.createElement("div",{className:"field "+(t[a]?"":"field-with-warning")},at.default.createElement("label",null,"Alternative text"),at.default.createElement("span",{className:"description"},"For visually impaired users and search engines."),at.default.createElement("textarea",{className:"alternative",lang:a,dir:y,value:t[a]||"",onChange:x=>e.updateLocalization("alternative",x.target.value)})),e.showCaption&&at.default.createElement("div",{className:"field"},at.default.createElement("label",null,"Caption"),at.default.createElement("textarea",{lang:a,dir:y,onChange:x=>e.updateLocalization("caption",x.target.value),value:n[a]||"",className:"caption"})),at.default.createElement("div",{className:"buttons"},at.default.createElement("button",{onClick:e.save},"Save"),at.default.createElement("button",{onClick:u},"Cancel")))}function Ih(e){let[t,n,i]=Dl(e.image),[a,l]=(0,Li.useState)(e.locale),[u,c]=(0,Li.useState)({caption:e.image.caption||{},alternative:e.image.alternative||{}}),d=Yt(x=>x.close),p=(x,E)=>{c(Pe(Z({},u),{[x]:Pe(Z({},u[x]),{[a]:E})}))},y=x=>{x.preventDefault(),x.stopPropagation();let E=Z(Z({},u),oc(t));Fo(`/admin/images/${e.image.id}`,{image:E}),e.onUpdate&&e.onUpdate(E,i),d()};return Li.default.createElement("div",{className:"image-editor"},Li.default.createElement(Nl,{croppedImage:i,cropState:t,dispatch:n}),!t.cropping&&Li.default.createElement(Ah,{alternative:u.alternative,caption:u.caption,image:e.image,locale:a,locales:e.locales,setLocale:l,save:y,showCaption:e.caption,updateLocalization:p}))}function Mi(e){let[t,n]=(0,yr.useState)(e.image),[i,a]=(0,yr.useState)(e.src),l=Yt(y=>y.open),u=()=>{let y=t.crop_width||t.real_width,x=t.crop_height||t.real_height;return Math.round(x/y*e.width)},c=(y,x)=>{let E=Z(Z({},t),y);a(x),n(E),e.onUpdate&&e.onUpdate(E,x)},d=y=>{y.preventDefault(),l(yr.default.createElement(Ih,{image:t,caption:e.caption,locale:e.locale,locales:e.locales,onUpdate:c}))},p=!t.alternative[e.locale];return yr.default.createElement("div",{className:"editable-image"},p&&yr.default.createElement("span",{className:"alt-warning",title:"Alternative text is missing"},yr.default.createElement("i",{className:"fa-solid fa-triangle-exclamation icon"})),yr.default.createElement("img",{src:i,width:e.width,height:u(),onClick:d}))}var lc=oe(re());var Qe=oe(re());var Lh=oe(re());function Mh(e){let{draggable:t,dragState:n,container:i}=e;if(t==="Files")return"";{let a=i.current.getBoundingClientRect(),l=n.x-(a.x||a.left),u=n.y-(a.y||a.top),c={transform:`translate3d(${l}px, ${u}px, 0)`};return Lh.default.createElement("div",{className:"drag-image",style:c},"record"in t&&t.record.image&&Lh.default.createElement("img",{src:t.record.src||t.record.image.thumbnail_url}))}}var Fh=oe(re());function Rh(){return Fh.default.createElement("div",{className:"grid-image",key:"file-placeholder"},Fh.default.createElement("div",{className:"file-placeholder"}))}var Ct=oe(re());var Vo=oe(re());function Uh(e){return e.src?Vo.default.createElement("div",{className:"temp-image"},Vo.default.createElement("img",{src:e.src}),Vo.default.createElement("span",null,"Uploading...")):Vo.default.createElement("div",{className:"file-placeholder"},Vo.default.createElement("span",null,"Uploading..."))}function Bh(e){let{attributeName:t,draggable:n}=e,i=n.record,a=i.image,l=Ut(E=>E.notice),[u,c]=(0,Ct.useState)(i.src||null),d=$o(n,e.startDrag);(0,Ct.useEffect)(()=>{if(i.file){let E=new FileReader;E.onload=()=>c(E.result),E.readAsDataURL(i.file)}},[]);let p=E=>{E.preventDefault(),Xn(`[image:${a.id}]`),l("Embed code copied to clipboard")},y=E=>{E.preventDefault(),e.deleteImage&&e.deleteImage()},x=["grid-image"];return e.placeholder&&x.push("placeholder"),i.file&&x.push("uploading"),Ct.default.createElement("div",Z({className:x.join(" ")},d),Ct.default.createElement("input",{name:`${t}[id]`,type:"hidden",value:i.id||""}),Ct.default.createElement("input",{name:`${t}[image_id]`,type:"hidden",value:a&&a.id||""}),Ct.default.createElement("input",{name:`${t}[position]`,type:"hidden",value:e.position}),e.enablePrimary&&Ct.default.createElement("input",{name:`${t}[primary]`,type:"hidden",value:e.primary}),!a&&Ct.default.createElement(Uh,{src:u}),a&&Ct.default.createElement(Ct.default.Fragment,null,Ct.default.createElement(Mi,{image:a,key:e.placeholder?"placeholder":n.handle,src:u||a.thumbnail_url,width:250,caption:!0,locale:e.locale,locales:e.locales,onUpdate:e.onUpdate}),Ct.default.createElement("div",{className:"actions"},e.showEmbed&&Ct.default.createElement("button",{onClick:p},"Embed"),e.deleteImage&&Ct.default.createElement("button",{onClick:y},"Remove"))))}function zh(e){let t=["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"];return e.filter(n=>t.indexOf(n.type)!==-1)}function c_(e,t,n){let[i,...a]=Cl(e,n),l=[...a,...Cl(t,n)];return n.dragging&&[i,...l].indexOf(n.dragging)===-1&&(n.yz.error),c=z=>{t.dispatch(z),n.dispatch(z)},d=(z,X)=>{let[ee,ke]=c_(t,n,z);if(t.dispatch({type:"reorder",payload:ee?[ee]:[]}),n.dispatch({type:"reorder",payload:ke}),X){let j=zh(X).map(R=>k(R));c({type:"insertFiles",payload:j})}},[p,y,x]=zo([t,n],d),E=z=>[...t.draggables.map(X=>X.record),...n.draggables.map(X=>X.record),...i].indexOf(z)+1,C=z=>`${e.attribute}[${E(z)}]`,k=z=>{let X=Bo({image:null,file:z}),ee=new FormData;return ee.append("image[file]",z),Ro("/admin/images.json",ee).then(ke=>{"status"in ke&&ke.status==="error"?(u(`Error uploading image: ${ke.error}`),c({type:"remove",payload:X})):c({type:"update",payload:Pe(Z({},X),{record:{image:ke}})})}),X},P=z=>X=>{let{record:ee}=z,ke=Pe(Z({},z),{record:Pe(Z({},ee),{image:Z(Z({},ee.image),X)})});c({type:"update",payload:ke})},_=z=>()=>{c({type:"remove",payload:z}),z.record.id&&a([...i,z.record])},w=(z,X)=>{let{dragging:ee}=p;return z==="Files"?Qe.default.createElement(Rh,{key:"placeholder"}):Qe.default.createElement(Bh,{key:z.handle,draggable:z,locale:e.locale,locales:e.locales,showEmbed:e.showEmbed,startDrag:y,position:E(z.record),primary:X,onUpdate:P(z),enablePrimary:e.enablePrimary,deleteImage:_(z),attributeName:C(z.record),placeholder:ee&&ee==z})},m=z=>{let[X,...ee]=zh(z).map(ke=>k(ke));X&&(n.dispatch({type:"prepend",payload:[...t.draggables,...ee]}),t.dispatch({type:"replace",payload:[X]}))},b=z=>{n.dispatch({type:"append",payload:zh(z).map(X=>k(X))})},N=["image-grid"];e.enablePrimary&&N.push("with-primary-image");let[q,V]=c_(t,n,p);return Qe.default.createElement("div",Z({className:N.join(" "),ref:l},x),p.dragging&&Qe.default.createElement(Mh,{draggable:p.dragging,dragState:p,container:l}),e.enablePrimary&&Qe.default.createElement("div",{className:"primary-image",ref:t.ref},Qe.default.createElement("h3",null,"Main image"),q&&Qe.default.createElement(Qe.default.Fragment,null,w(q,!0),e.primaryAttribute&&Qe.default.createElement("input",{type:"hidden",name:e.primaryAttribute,value:q.record&&q.record.image&&q.record.image.id||""})),!q&&Qe.default.createElement("div",{className:"drop-target"},Qe.default.createElement(Gn,{multiple:!0,type:"image",multiline:!0,callback:m}))),Qe.default.createElement("div",{className:"grid",ref:n.ref},Qe.default.createElement("h3",null,e.enablePrimary?"More images":"Images"),Qe.default.createElement("div",{className:"drop-target"},Qe.default.createElement(Gn,{multiple:!0,type:"image",callback:b})),Qe.default.createElement("div",{className:"images"},V.map(z=>w(z,!1)))),Qe.default.createElement("div",{className:"deleted"},i.map(z=>Qe.default.createElement("span",{className:"deleted-image",key:z.id},Qe.default.createElement("input",{name:`${C(z)}[id]`,type:"hidden",value:z.id}),Qe.default.createElement("input",{name:`${C(z)}[attachment_id]`,type:"hidden",value:z.image&&z.image.id||""}),Qe.default.createElement("input",{name:`${C(z)}[_destroy]`,type:"hidden",value:!0})))))}function gI(e){let t=e.enablePrimary?e.records.filter(n=>n.primary).slice(0,1):[];return[t,e.records.filter(n=>t.indexOf(n)===-1)]}function Ol(e){let{attribute:t,locale:n,locales:i,enablePrimary:a,primaryAttribute:l,showEmbed:u}=e,[c,d]=gI(e),p=Ii(c),y=Ii(d),[x,E]=(0,lc.useState)([]);return lc.default.createElement($h,{attribute:t,deleted:x,setDeleted:E,locale:n,locales:i,enablePrimary:a,primaryAttribute:l,primary:p,images:y,showEmbed:u})}var Bt=oe(re());function mI(e){let t=[];if(e.items)for(let n=0;nm.error),y=m=>{m.preventDefault(),a(!0)},x=()=>{a(!1)},E=m=>{if("dataTransfer"in m)if("items"in m.dataTransfer&&"remove"in m.dataTransfer.items)for(let b=0;b{let b=[];"dataTransfer"in m&&(b=mI(m.dataTransfer)),m.preventDefault(),b.length>0&&_(b[0])},k=m=>{m.preventDefault(),u(null),d(null)},P=m=>{m.length>0&&_(m[0])},_=m=>{if(["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"].indexOf(m.type)==-1){alert("Invalid file type, only images in JPEG, PNG or GIF formats are supported");return}let N=e.locale,q=e.locales?Object.keys(e.locales):[N],V=new FormData;u(null),d(null),a(!1),n(!0),V.append("image[file]",m),q.forEach(z=>{V.append(`image[alternative][${z}]`,e.alternative||"")}),Ro("/admin/images.json",V).then(z=>{n(!1),"status"in z&&z.status==="error"?p(`Error uploading image: ${z.error}`):"thumbnail_url"in z&&(d(z.thumbnail_url),u(z))})},w=["image-uploader"];return t?w.push("uploading"):i&&w.push("dragover"),Bt.default.createElement("div",{className:w.join(" "),onDragOver:y,onDragLeave:x,onDragEnd:E,onDrop:C},Bt.default.createElement("input",{type:"hidden",name:e.attr,value:l?l.id:""}),l&&Bt.default.createElement("div",{className:"image"},Bt.default.createElement(Mi,{image:l,src:c,width:e.width,caption:e.caption,locale:e.locale,locales:e.locales})),Bt.default.createElement("div",{className:"ui-wrapper"},t&&Bt.default.createElement("div",{className:"ui"},"Uploading image..."),!t&&Bt.default.createElement("div",{className:"ui"},Bt.default.createElement(Gn,{type:"image",multiline:!0,callback:P}),l&&Bt.default.createElement("a",{className:"delete remove-image",href:"#",onClick:k},"Remove image"))))}var ti=oe(re());function jh(){let e=Yt(a=>a.component),t=Yt(a=>a.close),n=a=>{a.stopPropagation(),a.preventDefault(),t()},i=a=>{e&&(a.key=="Escape"||a.keyCode===27)&&n(a)};return(0,ti.useEffect)(()=>{e?document.body.classList.add("modal"):document.body.classList.remove("modal")},[e]),(0,ti.useEffect)(()=>(window.addEventListener("keypress",i),()=>{window.removeEventListener("keypress",i)}),[]),e?ti.default.createElement("div",{className:"modal-wrapper open"},ti.default.createElement("div",{className:"background",onClick:n}),ti.default.createElement("div",{className:"modal"},e)):ti.default.createElement("div",{className:"modal-wrapper"})}var Be=oe(re());var f_=oe(re());function sc(e,t){return t.localized?(e.page[t.name]||{})[e.locale]||"":e.page[t.name]||""}function Qt(e,t){return e.errors.filter(n=>n.attribute===t).map(n=>n.message)}function Wh(e){return e?typeof e=="string"?new Date(e):e:null}function vI(e){let{locale:t,locales:n,page:i,templates:a}=e;return Pe(Z({},e),{inputDir:n&&n[t]&&n[t].dir||"ltr",templateConfig:a.filter(l=>l.template_name===i.template)[0]})}function yI(e){return{published_at:Wh(e.published_at),starts_at:Wh(e.starts_at),ends_at:Wh(e.ends_at)}}function wI(e){let t=i=>[...i.blocks,...i.metadata_blocks],n=e.map(t).reduce((i,a)=>i.concat(a),[]).filter(i=>i.localized).map(i=>i.name).filter((i,a,l)=>l.indexOf(i)===a);return["path_segment",...n]}function xI(e){let t=Z(Z({},e.page),yI(e.page));return Pe(Z({},e),{page:t})}function _I(e,t){let{type:n,payload:i}=t;switch(n){case"setLocale":return Pe(Z({},e),{locale:i});case"update":return EI(e,i);default:return e}}function EI(e,t){let{locale:n,templates:i,page:a}=e,l={};return Object.keys(t).forEach(u=>{wI(i).indexOf(u)!==-1?l[u]=Pe(Z({},a[u]),{[n]:t[u]}):l[u]=t[u]}),Pe(Z({},e),{page:Z(Z({},a),l)})}function Hh(e){let[t,n]=(0,f_.useReducer)(_I,xI(e));return[vI(t),n]}var Ri=oe(re());var Fi=oe(re());function lt(e){let{htmlFor:t,description:n,label:i,errors:a,children:l}=e,u=["field"];return a&&a.length>0&&u.push("field-with-errors"),Fi.default.createElement("div",{className:u.join(" ")},Fi.default.createElement("label",{htmlFor:t},i,a&&Fi.default.createElement(Fi.default.Fragment,null," ",Fi.default.createElement("span",{className:"error"},a[a.length-1]))),n&&Fi.default.createElement("p",{className:"description"},n),l)}var ni=oe(re());var Ko=oe(re());function Vh(e){let[t,n]=(0,Ko.useState)(""),i=u=>{u.preventDefault(),e.addTag(t),n("")};return Ko.default.createElement("div",{className:"add-tag-form"},Ko.default.createElement("input",{name:"add-tag",type:"text",className:"add-tag",value:t,onKeyDown:u=>{u.which===13&&i(u)},onChange:u=>{n(u.target.value)},placeholder:"Add tag..."}),Ko.default.createElement("button",{onClick:i,disabled:!t},"Add"))}var Il=oe(re());function Kh(e){let t=()=>{e.toggleEnabled(e.tag)},n=["tag"];return e.enabled&&n.push("enabled"),Il.default.createElement("span",{className:n.join(" ")},Il.default.createElement("label",{className:"check-box"},Il.default.createElement("input",{type:"checkbox",name:"tag-"+e.tag,value:"1",checked:e.enabled,onChange:t}),Il.default.createElement("span",{className:"name"},e.tag)))}function qh(e,t,n){return n.indexOf(e)===t}function Ll(e){let[t,n]=(0,ni.useState)(e.tags),[i,a]=(0,ni.useState)(e.enabled),l=[...t,...i].filter(qh),u=y=>l.filter(x=>x.toLowerCase()==y.toLowerCase())[0]||y,c=y=>i.map(x=>x.toLowerCase()).indexOf(y.toLowerCase())!==-1,d=y=>{let x=u(y);c(x)?a(i.filter(E=>E!==x)):a([...i,x])},p=y=>{let x=u(y);n([...t,x].filter(qh)),a([...i,x].filter(qh))};return ni.default.createElement("div",{className:"tag-editor clearfix"},ni.default.createElement("input",{type:"hidden",name:e.name,value:JSON.stringify(i)}),l.map(y=>ni.default.createElement(Kh,{key:y,tag:y,enabled:c(y),toggleEnabled:d})),ni.default.createElement(Vh,{addTag:p}))}var qo=oe(re());var wr=oe(re());var Yh=oe(re());function Xh(e){return Yh.default.createElement("a",{title:e.name,className:"button "+e.className,onClick:e.onClick},Yh.default.createElement("i",{className:"fa-solid fa-"+e.className}))}var ri=class extends wr.Component{constructor(t){super(t);this.actions=()=>{let t=[{name:"bold",className:"bold",hotkey:"b",fn:i=>["",i,""]},{name:"italic",className:"italic",hotkey:"i",fn:i=>["",i,""]}],n=[{name:"Heading 2",className:"header h2",fn:i=>["h2. ",i,""]},{name:"Heading 3",className:"header h3",fn:i=>["h3. ",i,""]},{name:"Heading 4",className:"header h4",fn:i=>["h4. ",i,""]},{name:"Blockquote",className:"quote-left",fn:i=>["bq. ",i,""]},{name:"List",className:"list-ul",fn:i=>["",this.strToList(i,"*"),""]},{name:"Ordered list",className:"list-ol",fn:i=>["",this.strToList(i,"#"),""]},{name:"Link",className:"link",fn:this.link},{name:"Email link",className:"envelope",fn:this.emailLink}];return this.props.simple?t:[...t,...n]};this.emailLink=t=>{let n=prompt("Enter email address",""),i=t.length>0?t:n;return['"',i,`":mailto:${n}`]};this.getSelection=()=>{let{selectionStart:t,selectionEnd:n,value:i}=this.inputRef.current;return i.substr(t,n-t)};this.handleChange=t=>{this.updateValue(t.target.value)};this.handleKeyPress=t=>{let n;t.which>=65&&t.which<=90?n=String.fromCharCode(t.keyCode).toLowerCase():t.keyCode===13&&(n="enter");let i={};this.actions().forEach(a=>{a.hotkey&&(i[a.hotkey]=a.fn)}),(t.metaKey||t.ctrlKey)&&n in keys&&(t.preventDefault(),this.applyAction(i[n]))};this.link=t=>{let n=t.length>0?t:"Link text",i=prompt("Enter link URL","");return i?['"',n,`":${this.relativeUrl(i)}`]:["",n,""]};this.replaceSelection=(t,n,i)=>{let a=this.inputRef.current,{selectionStart:l,selectionEnd:u,value:c}=a;a.value=c.substr(0,l)+t+n+i+c.substr(u,c.length),a.focus({preventScroll:!0}),a.setSelectionRange(l+t.length,l+t.length+n.length),this.updateValue(a.value)};this.state={value:t.value||"",rows:t.rows||5},this.inputRef=(0,wr.createRef)()}applyAction(t){let[n,i,a]=t(this.getSelection());this.replaceSelection(n,i,a)}localeOptions(){let t={};return this.props.lang&&(t.lang=this.props.lang),this.props.dir&&(t.dir=this.props.dir),t}relativeUrl(t){let n=null;if(!t.match(/^https:\/\//)||!document||!document.location)return t;try{n=new URL(t)}catch(i){console.log("Error parsing URL: ",i)}return n&&n.hostname==document.location.hostname&&(document.location.port||"80")==(n.port||"80")?n.pathname:t}render(){let{rows:t}=this.state,{id:n,name:i}=this.props,a=this.getValue(),l=u=>c=>{c.preventDefault(),this.applyAction(u)};return wr.default.createElement("div",{className:"rich-text-area"},wr.default.createElement("div",{className:"rich-text toolbar"},this.actions().map(u=>wr.default.createElement(Xh,{key:u.name,name:u.name,className:u.className,onClick:l(u.fn)}))),wr.default.createElement("textarea",Z({className:this.props.className||"rich",ref:this.inputRef,id:n,name:i,value:a,rows:t,onChange:this.handleChange,onKeyDown:this.handleKeyPress},this.localeOptions())))}strToList(t,n){return t.split(` `).map(i=>n+" "+i).join(` -`)}getValue(){return this.props.onChange?this.props.value:this.state.value}updateValue(t){this.props.onChange?this.props.onChange(t):this.setState({value:t})}};br.propTypes={id:tr.default.string,className:tr.default.string,name:tr.default.string,value:tr.default.string,rows:tr.default.number,simple:tr.default.bool,lang:tr.default.string,dir:tr.default.string,onChange:tr.default.func};function ca(e){let{block:t,errors:n,onChange:i,lang:a,dir:l,value:u}=e,c=E=>{i(E.target.value)},d=`page_${t.name}`,p={id:d,name:`page[${t.name}]`,value:u},w=Ce(G({},p),{className:["rich",t.class].join(" ").trim(),lang:a,dir:l,placeholder:t.placeholder}),_;if(t.type=="select"){let E=t.options;E.map(O=>O[1]).indexOf(u)===-1&&E.push([u,u]),_=ua.default.createElement("select",G({onChange:c},p),E.map(O=>ua.default.createElement("option",{key:O[1],value:O[1]},O[0])))}else t.size=="field"?_=ua.default.createElement("input",G({type:"text",onChange:c},w)):_=ua.default.createElement(br,G({onChange:i,rows:t.size=="large"?15:5},w));return ua.default.createElement(lt,{htmlFor:d,label:t.title,description:t.description,errors:n},_)}ca.propTypes={block:Hi.default.object,errors:Hi.default.array,onChange:Hi.default.func,lang:Hi.default.string,dir:Hi.default.string,value:Hi.default.string};var un=K(oe()),kc=K(et());function Oc(e){let{starts_at:t,ends_at:n}=e,[i,a]=(0,un.useState)(!!e.starts_at),[l,u]=(0,un.useState)(!!e.all_day);return un.default.createElement("div",{className:"page-dates field"},un.default.createElement("input",{type:"hidden",name:"page[all_day]",value:i&&l?"1":"0"}),un.default.createElement("label",null,"Dates"),un.default.createElement("div",{className:"toggles"},un.default.createElement("label",{className:"has-dates-toggle"},un.default.createElement("input",{type:"checkbox",checked:i,onChange:()=>a(!i)}),"Enabled"),un.default.createElement("label",{className:!i&&"disabled"},un.default.createElement("input",{type:"checkbox",disabled:!i,checked:l,onChange:()=>u(!l)}),"All day event")),un.default.createElement(na,{objectName:"page",startsAt:t,endsAt:n,disabled:!i,disableTime:l}))}Oc.propTypes={starts_at:kc.default.string,ends_at:kc.default.string,all_day:kc.default.bool};function Nc(e){let{state:t,dispatch:n}=e,{page:i,locale:a,inputDir:l,templateConfig:u}=t,c=d=>p=>{n({type:"update",payload:{[d]:p}})};return Vi.default.createElement(Vi.default.Fragment,null,u.blocks.map(d=>Vi.default.createElement(ca,{key:d.name,block:d,errors:Zt(i,d.name),dir:l,lang:a,onChange:c(d.name),value:Tc(t,d)})),u.dates&&Vi.default.createElement(Oc,{starts_at:i.starts_at,ends_at:i.ends_at,all_day:i.all_day}),u.tags&&Vi.default.createElement(lt,{label:"Tags"},Vi.default.createElement(Xl,{name:"page[serialized_tags]",enabled:i.enabled_tags,tags:i.tags_and_suggestions})))}Nc.propTypes={state:Tm.default.object,dispatch:Tm.default.func};var Ki=K(oe()),Om=K(et());var fa=K(oe()),km=K(et());function _A(e,t){for(let n=0;n{n({type:"update",payload:{path_segment:c.target.value}})},u=_A(i.ancestors,a);if(u){let c=`/admin/${a}/pages/${u.id}/edit#metadata`;return fa.default.createElement(lt,{label:"Path segment"},fa.default.createElement("p",{className:"description"},"Unable to add a path segment to this page, please add one to"," ",fa.default.createElement("a",{href:c},"this page's ancestor")," ","first."))}return fa.default.createElement(lt,{htmlFor:"page_path_segment",label:"Path segment",errors:Zt(i,"path_segment")},fa.default.createElement("input",{type:"text",id:"page_path_segment",name:"page[path_segment]",lang:t.locale,dir:"ltr",onChange:l,value:i.path_segment[a]}))}Pc.propTypes={state:km.default.object,dispatch:km.default.func};function Dc(e){let{state:t,dispatch:n}=e,{page:i,locale:a,locales:l,inputDir:u,templateConfig:c}=t,d=p=>w=>{n({type:"update",payload:{[p]:w}})};return Ki.default.createElement(Ki.default.Fragment,null,Ki.default.createElement(Pc,{state:t,dispatch:n}),Ki.default.createElement(lt,{htmlFor:"page_meta_image_id",label:"Image",description:"Image displayed when sharing on social media. Will fall back to the primary image if absent. Recommended size is at least 1200x630.",errors:Zt(i,"meta_image_id")},Ki.default.createElement(ql,{attr:"page[meta_image_id]",locale:a,locales:l,image:i.meta_image.image,src:i.meta_image.src,width:250,caption:!1})),c.metadata_blocks.map(p=>Ki.default.createElement(ca,{key:p.name,block:p,errors:Zt(i,p.name),dir:u,lang:a,onChange:d(p.name),value:Tc(t,p)})))}Dc.propTypes={state:Om.default.object,dispatch:Om.default.func};var Ic=K(oe()),nr=K(et());function EA(e){return e.page.id?`/admin/${e.locale}/pages/${e.page.id}`:`/admin/${e.locale}/pages`}function Ac(e){let{state:t,children:n}=e,{page:i}=t;return Ic.default.createElement("form",{className:"edit-page main-wrapper",method:"post",ref:e.ref,acceptCharset:"UTF-8",action:EA(t)},i.id&&Ic.default.createElement("input",{type:"hidden",name:"_method",value:"put",autoComplete:"off"}),Ic.default.createElement("input",{type:"hidden",autoComplete:"off",name:"authenticity_token",value:gc()}),n)}Ac.propTypes={ref:nr.default.oneOfType([nr.default.func,nr.default.shape({current:nr.default.any})]),state:nr.default.object,children:nr.default.oneOfType([nr.default.string,nr.default.object,nr.default.array])};var ui=K(oe()),qi=K(et());var Nm=K(oe()),Pm=K(et());function Lc(e){let{state:t,dispatch:n}=e,{locale:i,locales:a}=t,l=u=>c=>{c.preventDefault(),n({type:"setLocale",payload:u})};return a?Nm.default.createElement("div",{className:"links"},Object.keys(a).map(u=>Nm.default.createElement("a",{key:u,className:i==u?"current":"",href:"#",onClick:l(u)},a[u].name))):""}Lc.propTypes={state:Pm.default.object,dispatch:Pm.default.func};function O_(e,t){return ui.default.createElement("a",{href:`/admin/${e}/pages/${t.id}/edit`},SA(e,t))}function SA(e,t){return t.name[e]||ui.default.createElement("i",null,"Untitled")}function Mc(e){let{state:t,dispatch:n,children:i}=e,{locale:a,page:l}=t;return ui.default.createElement("div",{className:"page-description with_content_tabs"},ui.default.createElement(Lc,{state:t,dispatch:n}),ui.default.createElement("h3",null,l.ancestors.map(u=>ui.default.createElement(ui.default.Fragment,{key:u.id},O_(a,u)," \xBB ")),l.id?O_(a,l):"New Page"),i)}Mc.propTypes={state:qi.default.object,dispatch:qi.default.func,children:qi.default.oneOfType([qi.default.string,qi.default.object,qi.default.array])};var ke=K(oe()),Gl=K(et());function Fc(e){let{state:t,dispatch:n,authors:i,statuses:a}=e,{page:l,locale:u,templates:c}=t,[d,p]=(0,ke.useState)(!1),w=l.status==2,_=w&&l.published_at>new Date,E=l.urls[u],O=g=>y=>{n({type:"update",payload:{[g]:y.target.value}})},k=g=>y=>{n({type:"update",payload:{[g]:y.target.checked}})},b=g=>{n({type:"update",payload:{published_at:g}})},x=g=>{g.preventDefault(),p(!d)};return ke.default.createElement("div",{className:"page-options"},ke.default.createElement(lt,{htmlFor:"page_status",label:"Status",errors:Zt(l,"status")},ke.default.createElement("select",{id:"page_status",name:"page[status]",onChange:O("status"),value:l.status},Object.keys(a).map(g=>ke.default.createElement("option",{key:g,value:g},a[g])))),w&&ke.default.createElement("div",null,ke.default.createElement(lt,{label:"Date",errors:Zt(l,"published_at")},ke.default.createElement(Bi,{name:"page[published_at]",onChange:b,value:l.published_at})),_&&ke.default.createElement("p",null,"This page will publish later")),ke.default.createElement(lt,{htmlFor:"page_user_id",label:"Author",errors:Zt(l,"user_id")},ke.default.createElement("select",{id:"page_user_id",name:"page[user_id]",onChange:O("user_id"),value:l.user_id},i.map(g=>ke.default.createElement("option",{key:g[1],value:g[1]},g[0])))),ke.default.createElement(lt,{label:"Pin to top"},ke.default.createElement("label",{className:"check-box"},ke.default.createElement("input",{name:"page[pinned]",type:"checkbox",onChange:k("pinned"),checked:l.pinned})," ","Make post featured")),ke.default.createElement(lt,{htmlFor:"page_template",label:"Template",errors:Zt(l,"template")},ke.default.createElement("select",{id:"page_template",name:"page[template]",onChange:O("template"),value:l.template},c.map(g=>ke.default.createElement("option",{key:g.template_name,value:g.template_name},g.name)))),ke.default.createElement("p",null,ke.default.createElement("a",{href:"#",onClick:x},"Advanced options")),d&&ke.default.createElement(ke.default.Fragment,null,ke.default.createElement(lt,{label:"Subpages"},ke.default.createElement("label",{className:"check-box"},ke.default.createElement("input",{name:"page[feed_enabled]",type:"checkbox",onChange:k("feed_enabled"),checked:l.feed_enabled})," ","RSS feed enabled"),ke.default.createElement("label",{className:"check-box"},ke.default.createElement("input",{name:"page[news_page]",type:"checkbox",onChange:k("news_page"),checked:l.news_page})," ","Show in news")),ke.default.createElement(lt,{htmlFor:"page_unique_name",label:"Unique name",errors:Zt(l,"unique_name")},ke.default.createElement("input",{type:"text",id:"page_unique_name",name:"page[unique_name]",value:l.unique_name,onChange:O("unique_name")})),ke.default.createElement(lt,{htmlFor:"page_redirect_to",label:"Redirect",errors:Zt(l,"redirect_to")},ke.default.createElement("input",{type:"text",id:"page_redirect_to",name:"page[redirect_to]",value:l.redirect_to,onChange:O("redirect_to")}))),E&&ke.default.createElement(lt,{label:"Page link"},ke.default.createElement("a",{href:E},E)))}Fc.propTypes={state:Gl.default.object,dispatch:Gl.default.func,authors:Gl.default.array,statuses:Gl.default.object};var N_=K(oe()),da=K(et());function Yi(e){let{active:t,children:n}=e,i=["content-tab"];return t||i.push("hidden"),N_.default.createElement("div",{className:i.join(" "),role:"tabpanel"},n)}Yi.propTypes={active:da.default.bool,children:da.default.oneOfType([da.default.string,da.default.object,da.default.array])};var Dm=K(oe()),Rc=K(et());function Uc(e){let{locale:t,locales:n,records:i}=e;return Dm.default.createElement("div",{className:"page-files"},Dm.default.createElement(Jo,{attribute:"page[page_files_attributes]",showEmbed:!0,locale:t,locales:n,records:i}))}Uc.propTypes={locale:Rc.default.string,locales:Rc.default.object,records:Rc.default.array};var Bc=K(oe()),zc=K(et());var Ql=class extends Bc.default.Component{render(){return Bc.default.createElement("div",{className:"page-images"},Bc.default.createElement(aa,{attribute:"page[page_images_attributes]",primaryAttribute:"page[image_id]",enablePrimary:!0,showEmbed:!0,locale:this.props.locale,locales:this.props.locales,records:this.props.records}))}};Ql.propTypes={locale:zc.default.string,locales:zc.default.object,records:zc.default.array};function bA(e,t){let n=[{id:"content",name:"Content",enabled:!0}];return e.filter(i=>i.images).length>0&&n.push({id:"images",name:"Images",enabled:t.images}),e.filter(i=>i.files).length>0&&n.push({id:"files",name:"Files",enabled:t.files}),n.push({id:"metadata",name:"Metadata",enabled:!0}),n}function CA(e){let t=/#(.*)$/;if(document.location.toString().match(t)){let n=document.location.toString().match(t)[1],i=e.filter(a=>a.id==n)[0];if(i)return i.id}return e[0].id}function jc(e){let t=(0,Re.useRef)(null),[n,i]=xm({locales:e.locales,locale:e.locale,page:e.page,templates:e.templates}),{page:a,locale:l,locales:u,templates:c,templateConfig:d}=n,p=bA(c,d),[w,_]=(0,Re.useState)(CA(p));(0,Re.useEffect)(()=>{let b=`/admin/${l}/pages/`+(a.id?`${a.id}/edit`:"new")+`#${w}`;history&&history.replaceState(null,"",b)},[a.id,l,w]);let E=b=>x=>{x.preventDefault(),_(b.id)},O=b=>{b.preventDefault(),console.log("preview")},k=b=>{b.preventDefault(),console.log("submit")};return Re.default.createElement(Ac,{ref:t,state:n},Re.default.createElement("main",null,Re.default.createElement(Mc,{state:n,dispatch:i},Re.default.createElement("ul",{className:"content-tabs",role:"tablist"},p.map(b=>Re.default.createElement("li",{key:b.id,className:b.id==w?"current":""},!b.enabled&&b.name,b.enabled&&Re.default.createElement("a",{href:`#${b.id}`,onClick:E(b)},b.name))))),Re.default.createElement("div",{className:"content"},Re.default.createElement(Yi,{active:w=="content"},Re.default.createElement(Nc,{state:n,dispatch:i})),Re.default.createElement(Yi,{active:w=="images"},Re.default.createElement(Ql,{locale:l,locales:u,records:a.page_images})),Re.default.createElement(Yi,{active:w=="files"},Re.default.createElement(Uc,{locale:l,locales:u,records:a.page_files})),Re.default.createElement(Yi,{active:w=="metadata"},Re.default.createElement(Dc,{state:n,dispatch:i})),Re.default.createElement("div",{className:"buttons"},Re.default.createElement("button",{type:"button",onClick:O},"Preview"),Re.default.createElement("button",{type:"submit",onClick:k},"Save")))),Re.default.createElement("aside",{className:"sidebar"},Re.default.createElement(Fc,{state:n,dispatch:i,authors:e.authors,statuses:e.statuses})))}jc.propTypes={locale:Xi.default.string,locales:Xi.default.object,page:Xi.default.object,templates:Xi.default.array,authors:Xi.default.array,statuses:Xi.default.object};var Wc=K(oe());function Zl(e){return`${e}`}var $c=class{constructor(t){this.cnt=1,this.obj=t||{children:[]},this.indexes={},this.build(this.obj)}build(t){let n=this.indexes,a={id:this.cnt,node:t};n[Zl(this.cnt)]=a,this.cnt++;let l=(u,c)=>{let d=[];u.forEach(p=>{let w={};w.id=this.cnt,w.node=p,c&&(w.parent=c.id),n[Zl(this.cnt)]=w,d.push(this.cnt),this.cnt++,p.children&&p.children.length&&l(p.children,w)}),c.children=d,d.forEach(function(p,w){let _=n[Zl(p)];w>0&&(_.prev=d[w-1]),w{delete this.indexes[Zl(i.id)],i.children&&i.children.length&&i.children.forEach(a=>{n(this.getIndex(a))})};n(t)}get(t){return this.getIndex(t).node}remove(t){let n=this.getIndex(t),i=this.get(t),a=this.getIndex(n.parent),l=this.get(n.parent);return l.children.splice(l.children.indexOf(i),1),a.children.splice(a.children.indexOf(t),1),this.removeIndex(n),this.updateChildren(a.children),i}updateChildren(t){t.forEach((n,i)=>{let a=this.getIndex(n);a.prev=a.next=null,i>0&&(a.prev=t[i-1]),i{let p=1;return l.forEach(w=>{let _=this.getIndex(w);d?(_.top=null,_.left=null):(_.top=t++,_.left=c),_.children&&_.children.length?p+=a(_.children,_,c+1,d||_.node.collapsed):(_.height=1,p+=1)}),u.node.collapsed?u.height=1:u.height=p,u.height};i.children&&i.children.length&&a(i.children,i,n,i.node.collapsed)}move(t,n,i){if(t===n||n===1)return;let a=this.remove(t),l;return i==="before"?l=this.insertBefore(a,n):i==="after"?l=this.insertAfter(a,n):i==="prepend"?l=this.prepend(a,n):i==="append"&&(l=this.append(a,n)),this.updateNodesPosition(),l}getParent(t){let n=this.indexes;if(Object.prototype.hasOwnProperty.call(n,t))return this.getIndex(n[t].parent)}getNodeByTop(t){let n=this.indexes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&n[i].top===t)return n[i]}};var ci=K(oe());var Le=K(oe()),Gi=class extends Le.Component{constructor(t){super(t);this.state={newName:t.index.node.name},this.innerRef=(0,Le.createRef)()}permitted(t){return this.node().permissions&&this.node().permissions.indexOf(t)!=-1}actions(){let t=this.node().status!=2?"Publish":"Hide",n=this.node().status!=2?"check":"ban";return this.node().editing?null:this.props.index.id===1?Le.default.createElement("span",{className:"actions"},Le.default.createElement("button",{type:"button",className:"add",onClick:()=>this.props.addChild(this.props.index)},Le.default.createElement("i",{className:"fa-solid fa-plus icon"}),"Add child")):Le.default.createElement("span",{className:"actions"},this.permitted("edit")&&this.button(t,{className:"toggle-status",icon:n,onClick:()=>this.toggleStatus()}),this.permitted("edit")&&this.button("Rename",{className:"edit",icon:"pencil",onClick:()=>this.edit()}),this.permitted("edit")&&this.button("Delete",{className:"delete",icon:"trash",onClick:()=>this.deletePage()}),this.permitted("create")&&this.button("Add child",{className:"add",icon:"plus",onClick:()=>this.props.addChild(this.props.index)}))}addButton(){let t=this.node(),n=()=>{this.props.addChild&&this.props.addChild(this.props.index)};if(!t.collapsed&&this.permitted("create")&&(t.root||this.visibleChildren().length>0))return this.button("Add page here",{className:"add add-inline",icon:"plus",onClick:n})}button(t,n){let i="fa-solid fa-"+n.icon+" icon";return Le.default.createElement("button",{type:"button",className:n.className,onClick:n.onClick},Le.default.createElement("i",{className:i}),t)}childNodes(){let{index:t,tree:n,dragging:i,dir:a,locale:l}=this.props;if(t.children&&t.children.length&&!t.node.collapsed){let u={};return t.node.collapsed&&(u.display="none"),u.paddingLeft=`${this.props.paddingLeft}px`,Le.default.createElement("div",{className:"children",style:u},t.children.map(c=>{let d=n.getIndex(c);return Le.default.createElement(Gi,{tree:n,index:d,key:d.id,dragging:i,paddingLeft:this.props.paddingLeft,addChild:this.props.addChild,onCollapse:this.props.onCollapse,onDragStart:this.props.onDragStart,updatePage:this.props.updatePage,dir:a,locale:l})}))}return null}collapseArrow(){let t=this.props.index;if(!t.parent)return null;let n=i=>{i.stopPropagation();let a=this.props.index.id;this.props.onCollapse&&this.props.onCollapse(a)};if(this.visibleChildren().length>0){let i=t.node.collapsed,a="";return i?a="collapse fa-solid fa-caret-right":a="collapse fa-solid fa-caret-down",Le.default.createElement("i",{className:a,onMouseDown:function(l){l.stopPropagation()},onClick:n})}return null}collapsedLabel(){if(this.node().collapsed&&this.node().children&&this.node().children.length>0){let t=this.node().children.length==1?"item":"items";return Le.default.createElement("span",{className:"collapsed-label"},"(",this.node().children.length," ",t,")")}else return null}deletePage(){confirm("Are you sure you want to delete this page?")&&this.updatePage({status:4})}edit(){this.updatePage({editing:!0})}editUrl(t){return`/admin/${t.locale}/pages/${t.param}/edit`}node(){return this.props.index.node}pageName(){let t=this.node().name||Le.default.createElement("i",{className:"untitled"},"Untitled");return Le.default.createElement("span",{dir:this.props.dir,lang:this.props.locale},t)}render(){let t=this.props,n=t.index,i=t.dragging,a=this.node().editing,l="node",u=a?this.renderEditNode():this.renderNode();n.id===i&&(l="node placeholder");let c=d=>{this.permitted("edit")&&!a&&t.onDragStart&&t.onDragStart(t.index.id,this.innerRef.current,d)};return this.node().status!=4?Le.default.createElement("div",{className:l},Le.default.createElement("div",{className:"inner",ref:this.innerRef,onMouseDown:c},this.collapseArrow(),u),this.childNodes(),this.addButton()):null}renderEditNode(){let{dir:t,locale:n}=this.props,i=u=>{this.setState({newName:u.target.value})},a=u=>{u.preventDefault(),this.updatePage({name:this.state.newName,editing:!1})},l=()=>{this.setState({newName:this.node().name}),this.updatePage({editing:!1})};return Le.default.createElement("div",{className:"page edit"},Le.default.createElement("i",{className:"fa-regular fa-file icon"}),Le.default.createElement("form",{onSubmit:a},Le.default.createElement("input",{type:"text",value:this.state.newName,dir:t,lang:n,autoFocus:!0,onChange:i}),Le.default.createElement("button",{className:"save",type:"submit"},Le.default.createElement("i",{className:"fa-solid fa-cloud icon"}),"Save"),this.button("Cancel",{className:"cancel",icon:"ban",onClick:l})))}renderNode(){let n=this.props.index.node,i=Le.default.createElement("span",{className:"name"},this.pageName()),a="page",l="fa-regular fa-file icon";return typeof n.status<"u"&&(a=`page status-${this.node().status}`),n.id&&n.locale&&this.permitted("edit")&&(i=Le.default.createElement("a",{href:this.editUrl(n),className:"name"},this.pageName())),n.news_page?l="fa-regular fa-file-lines icon":n.pinned&&(l="fa-regular fa-flag icon"),Le.default.createElement("div",{className:a},Le.default.createElement("i",{className:l}),i,this.statusLabel(),this.collapsedLabel(),this.actions())}statusLabel(){let t=["Draft","Reviewed","Published","Hidden","Deleted"];return typeof this.node().status<"u"&&this.node().status!=2?Le.default.createElement("span",{className:"status-label"},"(",t[this.node().status],")"):""}toggleStatus(){this.node().status!=2?this.updatePage({status:2}):this.updatePage({status:3})}updatePage(t){if(this.props.updatePage)return this.props.updatePage(this.props.index,t)}visibleChildren(){return this.node().children?this.node().children.filter(t=>t.status!=4):[]}};var Jl=class extends ci.Component{constructor(t){super(t);this.state={dragging:this.initDragging()}}initDragging(){return{id:null,x:null,y:null,w:null,h:null,scrollTop:null,scrollLeft:null}}getDraggingDom(){let t=this.props.tree,n=this.state.dragging;if(n&&n.id){let i=t.getIndex(n.id),a={top:n.y,left:n.x,width:n.w};return ci.default.createElement("div",{className:"draggable",style:a},ci.default.createElement(Gi,{tree:t,index:i,paddingLeft:this.props.paddingLeft}))}return null}render(){let{tree:t,dir:n,locale:i}=this.props,a=this.state.dragging;if(t){let l=t.getIndex(1);return ci.default.createElement("div",{className:"page-tree"},this.getDraggingDom(),ci.default.createElement(Gi,{tree:t,index:l,key:l.id,paddingLeft:this.props.paddingLeft,addChild:u=>this.addChild(u),onDragStart:(u,c,d)=>this.dragStart(u,c,d),onCollapse:u=>this.toggleCollapse(u),updatePage:(u,c)=>this.updatePage(u,c),dragging:a&&a.id,dir:n,locale:i}))}else return ci.default.createElement("div",{className:"page-tree"},this.getDraggingDom())}addChild(t){let n={name:"",status:0,editing:!0,children:[],published_at:new Date,pinned:!1,locale:t.node.locale,parent_page_id:t.node.id};this.props.addChild(t.id,n)}prevAddButtonCount(t,n){let i=0,a=[],l=t.getIndex(n.parent);for(;l;)a.push(l),l=t.getIndex(l.parent);for(l=n,l=t.getNodeByTop(n.top-1);l;)a.indexOf(l)==-1&&!l.node.collapsed&&l.node.children.filter(u=>u.status!=4).length>0&&(i+=1),l=t.getNodeByTop(l.top-1);return i}scrollOffset(){let t=this.state.dragging;return{top:document.body.scrollTop-t.scrollTop,left:document.body.scrollLeft-t.scrollLeft}}drag(t){if(this._start)if(Math.abs(t.clientX-this._offsetX)+Math.abs(t.clientY-this._offsetY)>=15)this.setState({dragging:this.dragging}),this._start=!1;else return null;let n=this.props.tree,i=this.state.dragging,a=this.props.paddingLeft,l=null,u=n.getIndex(i.id),c=u.node.collapsed,d=this._startX,p=this._startY,w=this._offsetX,_=this._offsetY,E={x:d+t.clientX-w+this.scrollOffset().left,y:p+t.clientY-_+this.scrollOffset().top};i.x=E.x,i.y=E.y;let O=i.x-a/2-(u.left-2)*a,k=i.y-i.h/2-(u.top-2+this.prevAddButtonCount(n,u))*i.h;if(O<0)u.parent&&!u.next&&(l=n.move(u.id,u.parent,"after"));else if(O>a&&"prev"in u){let b=n.getIndex(u.prev);!b.node.leaf&&!b.node.collapsed&&(l=n.move(u.id,u.prev,"append"))}if(l&&(u=l,l.node.collapsed=c,i.id=l.id),k<0-i.h*.5){let b=n.getNodeByTop(u.top-1);l=n.move(u.id,b.id,"before")}else if(k>i.h*1.5){let b=u.next?n.getIndex(u.next):n.getNodeByTop(u.top+u.height);b&&b.parent!==u.id&&(b.children&&b.children.length&&!b.node.collapsed?l=n.move(u.id,b.id,"prepend"):l=n.move(u.id,b.id,"after"))}l&&(l.node.collapsed=c,i.id=l.id),this.setState({dragging:i})}dragStart(t,n,i){i.button===0&&(this.dragging={id:t,w:n.offsetWidth,h:n.offsetHeight,x:n.offsetLeft,y:n.offsetTop,scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft},this._startX=n.offsetLeft,this._startY=n.offsetTop,this._offsetX=i.clientX,this._offsetY=i.clientY,this._start=!0,this._dragListener=a=>{this.drag(a)},this._dragEndListener=()=>this.dragEnd(),window.addEventListener("mousemove",this._dragListener),window.addEventListener("mouseup",this._dragEndListener))}dragEnd(){this._start||(this.props.updateTree(this.props.tree),this.props.movedPage(this.state.dragging.id)),this.setState({dragging:this.initDragging()}),window.removeEventListener("mousemove",this._dragListener),window.removeEventListener("mouseup",this._dragEndListener)}toggleCollapse(t){this.props.toggleCollapsed(t)}updatePage(t,n){this.props.updatePage(t.id,n)}};Jl.defaultProps={paddingLeft:15};function Im(){return window&&window.localStorage&&typeof window.localStorage.collapsedPages<"u"?JSON.parse(window.localStorage.getItem("collapsedPages")):{}}var Hc=class extends Wc.Component{constructor(t){super(t);this.state={tree:this.buildTree(t.pages)}}applyCollapsed(t){let n=(a,l)=>{let u=0,c=a.getIndex(l.parent);for(;c;)u+=1,c=a.getIndex(c.parent);return u},i=a=>{let l=t.getIndex(a),u=l.node;u.id&&u.id in Im()?u.collapsed=Im()[u.id]:(u.news_page||n(t,l)>1)&&(u.collapsed=!0),l.children&&l.children.length&&l.children.forEach(c=>i(c))};i(1)}createPage(t,n){c_(`/admin/${t.node.locale}/pages.json`,{page:n}).then(i=>this.updateNode(t,i))}buildTree(t){let n=t.reduce((a,l)=>{let u=l.parent_page_id||0;return a[u]=[...a[u]||[],l],a},{});t.forEach(a=>{a.children=n[a.id]||[]});let i=new $c({name:"All Pages",locale:this.props.locale,permissions:this.props.permissions,root:!0,children:n[0]});return this.applyCollapsed(i),i.updateNodesPosition(),i}movePage(t,n,i){let a={parent_id:n.node.id,position:i},l=`/admin/${t.node.locale}/pages/${t.node.id}/move.json`;this.performUpdate(t,l,a)}performUpdate(t,n,i){Ko(n,i).then(a=>this.updateNode(t,a))}render(){let t=(u,c)=>{let d=this.state.tree,p=d.append(c,u);this.reorderChildren(u),this.setCollapsed(u,!1),this.createPage(p,c),this.setState({tree:d})},n=u=>{let c=this.state.tree,d=c.getIndex(u);this.reorderChildren(d.parent);let p=c.getIndex(d.parent),w=p.children.indexOf(u)+1;this.movePage(d,p,w),this.setState({tree:c})},i=u=>{let c=this.state.tree,d=c.getIndex(u).node;this.setCollapsed(u,!d.collapsed),this.setState({tree:c})},a=(u,c)=>{let p=this.state.tree.getIndex(u),w=`/admin/${p.node.locale}/pages/${p.node.id}.json`;this.updateNode(p,c),this.performUpdate(p,w,{page:c})},l=u=>{this.setState({tree:u})};return Wc.default.createElement(Jl,{tree:this.state.tree,addChild:t,movedPage:n,toggleCollapsed:i,updatePage:a,updateTree:l,locale:this.props.locale,dir:this.props.dir})}reorderChildren(t){let n=this.state.tree,i=this.state.tree.getIndex(t);!i.node.news_page||(i.children=i.children.sort(function(l,u){let c=n.getIndex(l).node,d=n.getIndex(u).node;return c.pinned==d.pinned?new Date(d.published_at)-new Date(c.published_at):c.pinned?-1:1}),n.updateNodesPosition())}setCollapsed(t,n){let i=this.state.tree.getIndex(t).node;i.collapsed=n,this.storeCollapsed(t,i.collapsed),this.state.tree.updateNodesPosition()}storeCollapsed(t,n){let i=this.state.tree.getIndex(t).node,a=Im();a[i.id]=n,window.localStorage.collapsedPages=JSON.stringify(a)}updateNode(t,n){for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t.node[i]=n[i]);this.setState({tree:this.state.tree})}};var Vc=K(oe()),Am=K(et());var es=class extends Vc.default.Component{constructor(t){super(t);this.state={toast:void 0,fadeout:!1},this.store=zt,this.timer=void 0,this.handleChange=this.handleChange.bind(this)}componentDidMount(){this.unsubscribe=this.store.subscribe(this.handleChange),this.props.error&&this.store.dispatch({type:"ERROR",message:this.props.error}),this.props.notice&&this.store.dispatch({type:"NOTICE",message:this.props.notice})}componentWillUnmount(){this.unsubscribe(),this.timer&&clearTimeout(this.timer)}handleChange(){this.setState({toast:this.store.getState()[0],fadeout:!1}),this.timer||(this.timer=setTimeout(()=>{this.setState({fadeout:!0}),this.timer=setTimeout(()=>{this.timer=void 0,this.setState({fadeout:!1}),this.store.dispatch({type:"NEXT"})},500)},4e3))}render(){let t=this.state.toast,n=["toast"];return t&&(n.push(t.type),this.state.fadeout&&n.push("fadeout")),Vc.default.createElement("div",{className:"toast-wrapper","aria-live":"polite"},t&&Vc.default.createElement("div",{className:n.join(" ")},t.message))}};es.propTypes={notice:Am.default.string,error:Am.default.string};var qc=class extends Wn{static get targets(){return["form"]}preview(){let t=this.formTarget,n=t.action,i=t.target;t.target="_blank",t.action=t.dataset.previewUrl,t.submit(),t.action=n,t.target=i}};var Yc=class extends Wn{constructor(){super(...arguments);this.stateHandler=t=>{"state"in t&&"tabId"in t.state&&this.showTab(t.state.tabId)}}static get targets(){return["tab","link"]}connect(){let t=this.tabNames();if(t.length>0){let n=null,i=/#(.*)$/;if(document.location.toString().match(i)){let a=document.location.toString().match(i)[1];t.indexOf(a)!==-1&&(n=a)}this.showTab(n||t[0])}window.addEventListener("popstate",this.stateHandler)}disconnect(){window.removeEventListener("popstate",this.stateHandler)}changeTab(t){if(t.preventDefault(),"dataset"in t.target&&"tab"in t.target.dataset){let n=t.target.dataset.tab;this.showTab(n),history.pushState({tabId:n},"",`${window.location.pathname}#${n}`)}}showTab(t){this.linkTargets.forEach(n=>{n.dataset.tab==t?n.classList.add("current"):n.classList.remove("current")}),this.tabTargets.forEach(n=>{n.dataset.tab==t?n.classList.remove("hidden"):n.classList.add("hidden")})}tabNames(){return this.linkTargets.map(t=>t.dataset.tab)}};var Xc=class extends Wn{static get targets(){return["tab"]}connect(){this.tabTargets.length>0&&this.showTab(this.tabTargets[0].dataset.tab)}changeTab(t){t.preventDefault(),"dataset"in t.target&&"tab"in t.target.dataset&&this.showTab(t.target.dataset.tab)}showTab(t){this.tabTargets.forEach(n=>{n.dataset.tab==t?n.classList.remove("hidden"):n.classList.add("hidden")})}};var A_=K(oe()),L_=K(zh());var Lm=[],P_=()=>{if(["interactive","complete"].indexOf(document.readyState)>-1)for(;Lm.length>0;)Lm.shift()()},D_=class{constructor(){document.onreadystatechange=P_}ready(t){Lm.push(t),P_()}},I_=new D_;var M_=class{apply(){document.querySelectorAll("textarea.rich").forEach(n=>{this.enhance(n)})}enhance(t){let n=document.createElement("div");t.parentNode.appendChild(n),L_.default.render(A_.default.createElement(br,{value:t.value,name:t.name,rows:t.rows,id:t.id}),n),t.parentNode.removeChild(t)}start(){I_.ready(()=>{this.apply()})}},F_=new M_;function TA(e,t){window[e]=t}function Mm(){(0,R_.start)();for(let t in Kc)TA(t,Kc[t]);F_.start();let e=La.start();e.register("edit-page",qc),e.register("main",Yc),e.register("login",Xc)}Mm();})(); ->>>>>>> 622cdd64 (Separate state for Attachments/ImageGrid) +`)}getValue(){return this.props.onChange?this.props.value:this.state.value}updateValue(t){this.props.onChange?this.props.onChange(t):this.setState({value:t})}};function Ml(e){let{block:t,errors:n,onChange:i,lang:a,dir:l,value:u}=e,c=E=>{i(E.target.value)},d=`page_${t.name}`,p={id:d,name:`page[${t.name}]`,value:u},y=Pe(Z({},p),{className:["rich",t.class].join(" ").trim(),lang:a,dir:l,placeholder:t.placeholder}),x;if(t.type=="select"){let E=t.options;E.map(C=>C[1]).indexOf(u)===-1&&E.push([u,u]),x=qo.default.createElement("select",Z({onChange:c},p),E.map(C=>qo.default.createElement("option",{key:C[1],value:C[1]},C[0])))}else t.size=="field"?x=qo.default.createElement("input",Z({type:"text",onChange:c},y)):x=qo.default.createElement(ri,Z({onChange:i,rows:t.size=="large"?15:5},y));return qo.default.createElement(lt,{htmlFor:d,label:t.title,description:t.description,errors:n},x)}var sn=oe(re());function Gh(e){let{starts_at:t,ends_at:n}=e,[i,a]=(0,sn.useState)(!!e.starts_at),[l,u]=(0,sn.useState)(!!e.all_day);return sn.default.createElement("div",{className:"page-dates field"},sn.default.createElement("input",{type:"hidden",name:"page[all_day]",value:i&&l?"1":"0"}),sn.default.createElement("label",null,"Dates"),sn.default.createElement("div",{className:"toggles"},sn.default.createElement("label",{className:"has-dates-toggle"},sn.default.createElement("input",{type:"checkbox",checked:i,onChange:()=>a(!i)}),"Enabled"),sn.default.createElement("label",{className:!i&&"disabled"},sn.default.createElement("input",{type:"checkbox",disabled:!i,checked:l,onChange:()=>u(!l)}),"All day event")),sn.default.createElement(kl,{objectName:"page",startsAt:t,endsAt:n,disabled:!i,disableTime:l}))}function Qh(e){let{state:t,dispatch:n}=e,{page:i,locale:a,inputDir:l,templateConfig:u}=t,c=d=>p=>{n({type:"update",payload:{[d]:p}})};return Ri.default.createElement(Ri.default.Fragment,null,u.blocks.map(d=>Ri.default.createElement(Ml,{key:d.name,block:d,errors:Qt(i,d.name),dir:l,lang:a,onChange:c(d.name),value:sc(t,d)})),u.dates&&Ri.default.createElement(Gh,{starts_at:i.starts_at,ends_at:i.ends_at,all_day:i.all_day}),u.tags&&Ri.default.createElement(lt,{label:"Tags"},Ri.default.createElement(Ll,{name:"page[serialized_tags]",enabled:i.enabled_tags,tags:i.tags_and_suggestions})))}var Ui=oe(re());var Yo=oe(re());function SI(e,t){for(let n=0;n{n({type:"update",payload:{path_segment:c.target.value}})},u=SI(i.ancestors,a);if(u){let c=`/admin/${a}/pages/${u.id}/edit#metadata`;return Yo.default.createElement(lt,{label:"Path segment"},Yo.default.createElement("p",{className:"description"},"Unable to add a path segment to this page, please add one to"," ",Yo.default.createElement("a",{href:c},"this page's ancestor")," ","first."))}return Yo.default.createElement(lt,{htmlFor:"page_path_segment",label:"Path segment",errors:Qt(i,"path_segment")},Yo.default.createElement("input",{type:"text",id:"page_path_segment",name:"page[path_segment]",lang:t.locale,dir:"ltr",onChange:l,value:i.path_segment[a]}))}function Jh(e){let{state:t,dispatch:n}=e,{page:i,locale:a,locales:l,inputDir:u,templateConfig:c}=t,d=p=>y=>{n({type:"update",payload:{[p]:y}})};return Ui.default.createElement(Ui.default.Fragment,null,Ui.default.createElement(Zh,{state:t,dispatch:n}),Ui.default.createElement(lt,{htmlFor:"page_meta_image_id",label:"Image",description:"Image displayed when sharing on social media. Will fall back to the primary image if absent. Recommended size is at least 1200x630.",errors:Qt(i,"meta_image_id")},Ui.default.createElement(Al,{attr:"page[meta_image_id]",locale:a,locales:l,image:i.meta_image.image,src:i.meta_image.src,width:250,caption:!1})),c.metadata_blocks.map(p=>Ui.default.createElement(Ml,{key:p.name,block:p,errors:Qt(i,p.name),dir:u,lang:a,onChange:d(p.name),value:sc(t,p)})))}var uc=oe(re());function CI(e){return e.page.id?`/admin/${e.locale}/pages/${e.page.id}`:`/admin/${e.locale}/pages`}function eg(e){let{state:t,children:n}=e,{page:i}=t;return uc.default.createElement("form",{className:"edit-page main-wrapper",method:"post",ref:e.ref,acceptCharset:"UTF-8",action:CI(t)},i.id&&uc.default.createElement("input",{type:"hidden",name:"_method",value:"put",autoComplete:"off"}),uc.default.createElement("input",{type:"hidden",autoComplete:"off",name:"authenticity_token",value:tc()}),n)}var ii=oe(re());var tg=oe(re());function ng(e){let{state:t,dispatch:n}=e,{locale:i,locales:a}=t,l=u=>c=>{c.preventDefault(),n({type:"setLocale",payload:u})};return a?tg.default.createElement("div",{className:"links"},Object.keys(a).map(u=>tg.default.createElement("a",{key:u,className:i==u?"current":"",href:"#",onClick:l(u)},a[u].name))):""}function d_(e,t){return ii.default.createElement("a",{href:`/admin/${e}/pages/${t.id}/edit`},bI(e,t))}function bI(e,t){return t.name[e]||ii.default.createElement("i",null,"Untitled")}function rg(e){let{state:t,dispatch:n,children:i}=e,{locale:a,page:l}=t;return ii.default.createElement("div",{className:"page-description with_content_tabs"},ii.default.createElement(ng,{state:t,dispatch:n}),ii.default.createElement("h3",null,l.ancestors.map(u=>ii.default.createElement(ii.default.Fragment,{key:u.id},d_(a,u)," \xBB ")),l.id?d_(a,l):"New Page"),i)}var Te=oe(re());function ig(e){let{state:t,dispatch:n,authors:i,statuses:a}=e,{page:l,locale:u,templates:c}=t,[d,p]=(0,Te.useState)(!1),y=l.status==2,x=y&&l.published_at>new Date,E=l.urls[u],C=w=>m=>{n({type:"update",payload:{[w]:m.target.value}})},k=w=>m=>{n({type:"update",payload:{[w]:m.target.checked}})},P=w=>{n({type:"update",payload:{published_at:w}})},_=w=>{w.preventDefault(),p(!d)};return Te.default.createElement("div",{className:"page-options"},Te.default.createElement(lt,{htmlFor:"page_status",label:"Status",errors:Qt(l,"status")},Te.default.createElement("select",{id:"page_status",name:"page[status]",onChange:C("status"),value:l.status},Object.keys(a).map(w=>Te.default.createElement("option",{key:w,value:w},a[w])))),y&&Te.default.createElement("div",null,Te.default.createElement(lt,{label:"Date",errors:Qt(l,"published_at")},Te.default.createElement(jo,{name:"page[published_at]",onChange:P,value:l.published_at})),x&&Te.default.createElement("p",null,"This page will publish later")),Te.default.createElement(lt,{htmlFor:"page_user_id",label:"Author",errors:Qt(l,"user_id")},Te.default.createElement("select",{id:"page_user_id",name:"page[user_id]",onChange:C("user_id"),value:l.user_id},i.map(w=>Te.default.createElement("option",{key:w[1],value:w[1]},w[0])))),Te.default.createElement(lt,{label:"Pin to top"},Te.default.createElement("label",{className:"check-box"},Te.default.createElement("input",{name:"page[pinned]",type:"checkbox",onChange:k("pinned"),checked:l.pinned})," ","Make post featured")),Te.default.createElement(lt,{htmlFor:"page_template",label:"Template",errors:Qt(l,"template")},Te.default.createElement("select",{id:"page_template",name:"page[template]",onChange:C("template"),value:l.template},c.map(w=>Te.default.createElement("option",{key:w.template_name,value:w.template_name},w.name)))),Te.default.createElement("p",null,Te.default.createElement("a",{href:"#",onClick:_},"Advanced options")),d&&Te.default.createElement(Te.default.Fragment,null,Te.default.createElement(lt,{label:"Subpages"},Te.default.createElement("label",{className:"check-box"},Te.default.createElement("input",{name:"page[feed_enabled]",type:"checkbox",onChange:k("feed_enabled"),checked:l.feed_enabled})," ","RSS feed enabled"),Te.default.createElement("label",{className:"check-box"},Te.default.createElement("input",{name:"page[news_page]",type:"checkbox",onChange:k("news_page"),checked:l.news_page})," ","Show in news")),Te.default.createElement(lt,{htmlFor:"page_unique_name",label:"Unique name",errors:Qt(l,"unique_name")},Te.default.createElement("input",{type:"text",id:"page_unique_name",name:"page[unique_name]",value:l.unique_name,onChange:C("unique_name")})),Te.default.createElement(lt,{htmlFor:"page_redirect_to",label:"Redirect",errors:Qt(l,"redirect_to")},Te.default.createElement("input",{type:"text",id:"page_redirect_to",name:"page[redirect_to]",value:l.redirect_to,onChange:C("redirect_to")}))),E&&Te.default.createElement(lt,{label:"Page link"},Te.default.createElement("a",{href:E},E)))}var p_=oe(re());function Xo(e){let{active:t,children:n}=e,i=["content-tab"];return t||i.push("hidden"),p_.default.createElement("div",{className:i.join(" "),role:"tabpanel"},n)}var og=oe(re());function ag(e){let{locale:t,locales:n,records:i}=e;return og.default.createElement("div",{className:"page-files"},og.default.createElement(Tl,{attribute:"page[page_files_attributes]",showEmbed:!0,locale:t,locales:n,records:i}))}var lg=oe(re());function sg(e){return lg.default.createElement("div",{className:"page-images"},lg.default.createElement(Ol,{attribute:"page[page_images_attributes]",primaryAttribute:"page[image_id]",enablePrimary:!0,showEmbed:!0,locale:e.locale,locales:e.locales,records:e.records}))}function TI(e,t){let n=[{id:"content",name:"Content",enabled:!0}];return e.filter(i=>i.images).length>0&&n.push({id:"images",name:"Images",enabled:t.images}),e.filter(i=>i.files).length>0&&n.push({id:"files",name:"Files",enabled:t.files}),n.push({id:"metadata",name:"Metadata",enabled:!0}),n}function kI(e){let t=/#(.*)$/;if(document.location.toString().match(t)){let n=document.location.toString().match(t)[1],i=e.filter(a=>a.id==n)[0];if(i)return i.id}return e[0].id}function ug(e){let t=(0,Be.useRef)(null),[n,i]=Hh({locales:e.locales,locale:e.locale,page:e.page,templates:e.templates}),{page:a,locale:l,locales:u,templates:c,templateConfig:d}=n,p=TI(c,d),[y,x]=(0,Be.useState)(kI(p));(0,Be.useEffect)(()=>{let P=`/admin/${l}/pages/`+(a.id?`${a.id}/edit`:"new")+`#${y}`;history&&history.replaceState(null,"",P)},[a.id,l,y]);let E=P=>_=>{_.preventDefault(),x(P.id)},C=P=>{P.preventDefault(),console.log("preview")},k=P=>{P.preventDefault(),console.log("submit")};return Be.default.createElement(eg,{ref:t,state:n},Be.default.createElement("main",null,Be.default.createElement(rg,{state:n,dispatch:i},Be.default.createElement("ul",{className:"content-tabs",role:"tablist"},p.map(P=>Be.default.createElement("li",{key:P.id,className:P.id==y?"current":""},!P.enabled&&P.name,P.enabled&&Be.default.createElement("a",{href:`#${P.id}`,onClick:E(P)},P.name))))),Be.default.createElement("div",{className:"content"},Be.default.createElement(Xo,{active:y=="content"},Be.default.createElement(Qh,{state:n,dispatch:i})),Be.default.createElement(Xo,{active:y=="images"},Be.default.createElement(sg,{locale:l,locales:u,records:a.page_images})),Be.default.createElement(Xo,{active:y=="files"},Be.default.createElement(ag,{locale:l,locales:u,records:a.page_files})),Be.default.createElement(Xo,{active:y=="metadata"},Be.default.createElement(Jh,{state:n,dispatch:i})),Be.default.createElement("div",{className:"buttons"},Be.default.createElement("button",{type:"button",onClick:C},"Preview"),Be.default.createElement("button",{type:"submit",onClick:k},"Save")))),Be.default.createElement("aside",{className:"sidebar"},Be.default.createElement(ig,{state:n,dispatch:i,authors:e.authors,statuses:e.statuses})))}var fc=oe(re());function Fl(e){return`${e}`}var cc=class{constructor(t){this.cnt=1,this.obj=t||{children:[]},this.indexes={},this.build(this.obj)}build(t){let n=this.indexes,a={id:this.cnt,node:t};n[Fl(this.cnt)]=a,this.cnt++;let l=(u,c)=>{let d=[];u.forEach(p=>{let y={};y.id=this.cnt,y.node=p,c&&(y.parent=c.id),n[Fl(this.cnt)]=y,d.push(this.cnt),this.cnt++,p.children&&p.children.length&&l(p.children,y)}),c.children=d,d.forEach(function(p,y){let x=n[Fl(p)];y>0&&(x.prev=d[y-1]),y{delete this.indexes[Fl(i.id)],i.children&&i.children.length&&i.children.forEach(a=>{n(this.getIndex(a))})};n(t)}get(t){return this.getIndex(t).node}remove(t){let n=this.getIndex(t),i=this.get(t),a=this.getIndex(n.parent),l=this.get(n.parent);return l.children.splice(l.children.indexOf(i),1),a.children.splice(a.children.indexOf(t),1),this.removeIndex(n),this.updateChildren(a.children),i}updateChildren(t){t.forEach((n,i)=>{let a=this.getIndex(n);a.prev=a.next=null,i>0&&(a.prev=t[i-1]),i{let p=1;return l.forEach(y=>{let x=this.getIndex(y);d?(x.top=null,x.left=null):(x.top=t++,x.left=c),x.children&&x.children.length?p+=a(x.children,x,c+1,d||x.node.collapsed):(x.height=1,p+=1)}),u.node.collapsed?u.height=1:u.height=p,u.height};i.children&&i.children.length&&a(i.children,i,n,i.node.collapsed)}move(t,n,i){if(t===n||n===1)return;let a=this.remove(t),l;return i==="before"?l=this.insertBefore(a,n):i==="after"?l=this.insertAfter(a,n):i==="prepend"?l=this.prepend(a,n):i==="append"&&(l=this.append(a,n)),this.updateNodesPosition(),l}getParent(t){let n=this.indexes;if(Object.prototype.hasOwnProperty.call(n,t))return this.getIndex(n[t].parent)}getNodeByTop(t){let n=this.indexes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&n[i].top===t)return n[i]}};var oi=oe(re());var Me=oe(re()),Bi=class extends Me.Component{constructor(t){super(t);this.state={newName:t.index.node.name},this.innerRef=(0,Me.createRef)()}permitted(t){return this.node().permissions&&this.node().permissions.indexOf(t)!=-1}actions(){let t=this.node().status!=2?"Publish":"Hide",n=this.node().status!=2?"check":"ban";return this.node().editing?null:this.props.index.id===1?Me.default.createElement("span",{className:"actions"},Me.default.createElement("button",{type:"button",className:"add",onClick:()=>this.props.addChild(this.props.index)},Me.default.createElement("i",{className:"fa-solid fa-plus icon"}),"Add child")):Me.default.createElement("span",{className:"actions"},this.permitted("edit")&&this.button(t,{className:"toggle-status",icon:n,onClick:()=>this.toggleStatus()}),this.permitted("edit")&&this.button("Rename",{className:"edit",icon:"pencil",onClick:()=>this.edit()}),this.permitted("edit")&&this.button("Delete",{className:"delete",icon:"trash",onClick:()=>this.deletePage()}),this.permitted("create")&&this.button("Add child",{className:"add",icon:"plus",onClick:()=>this.props.addChild(this.props.index)}))}addButton(){let t=this.node(),n=()=>{this.props.addChild&&this.props.addChild(this.props.index)};if(!t.collapsed&&this.permitted("create")&&(t.root||this.visibleChildren().length>0))return this.button("Add page here",{className:"add add-inline",icon:"plus",onClick:n})}button(t,n){let i="fa-solid fa-"+n.icon+" icon";return Me.default.createElement("button",{type:"button",className:n.className,onClick:n.onClick},Me.default.createElement("i",{className:i}),t)}childNodes(){let{index:t,tree:n,dragging:i,dir:a,locale:l}=this.props;if(t.children&&t.children.length&&!t.node.collapsed){let u={};return t.node.collapsed&&(u.display="none"),u.paddingLeft=`${this.props.paddingLeft}px`,Me.default.createElement("div",{className:"children",style:u},t.children.map(c=>{let d=n.getIndex(c);return Me.default.createElement(Bi,{tree:n,index:d,key:d.id,dragging:i,paddingLeft:this.props.paddingLeft,addChild:this.props.addChild,onCollapse:this.props.onCollapse,onDragStart:this.props.onDragStart,updatePage:this.props.updatePage,dir:a,locale:l})}))}return null}collapseArrow(){let t=this.props.index;if(!t.parent)return null;let n=i=>{i.stopPropagation();let a=this.props.index.id;this.props.onCollapse&&this.props.onCollapse(a)};if(this.visibleChildren().length>0){let i=t.node.collapsed,a="";return i?a="collapse fa-solid fa-caret-right":a="collapse fa-solid fa-caret-down",Me.default.createElement("i",{className:a,onMouseDown:function(l){l.stopPropagation()},onClick:n})}return null}collapsedLabel(){if(this.node().collapsed&&this.node().children&&this.node().children.length>0){let t=this.node().children.length==1?"item":"items";return Me.default.createElement("span",{className:"collapsed-label"},"(",this.node().children.length," ",t,")")}else return null}deletePage(){confirm("Are you sure you want to delete this page?")&&this.updatePage({status:4})}edit(){this.updatePage({editing:!0})}editUrl(t){return`/admin/${t.locale}/pages/${t.param}/edit`}node(){return this.props.index.node}pageName(){let t=this.node().name||Me.default.createElement("i",{className:"untitled"},"Untitled");return Me.default.createElement("span",{dir:this.props.dir,lang:this.props.locale},t)}render(){let t=this.props,n=t.index,i=t.dragging,a=this.node().editing,l="node",u=a?this.renderEditNode():this.renderNode();n.id===i&&(l="node placeholder");let c=d=>{this.permitted("edit")&&!a&&t.onDragStart&&t.onDragStart(t.index.id,this.innerRef.current,d)};return this.node().status!=4?Me.default.createElement("div",{className:l},Me.default.createElement("div",{className:"inner",ref:this.innerRef,onMouseDown:c},this.collapseArrow(),u),this.childNodes(),this.addButton()):null}renderEditNode(){let{dir:t,locale:n}=this.props,i=u=>{this.setState({newName:u.target.value})},a=u=>{u.preventDefault(),this.updatePage({name:this.state.newName,editing:!1})},l=()=>{this.setState({newName:this.node().name}),this.updatePage({editing:!1})};return Me.default.createElement("div",{className:"page edit"},Me.default.createElement("i",{className:"fa-regular fa-file icon"}),Me.default.createElement("form",{onSubmit:a},Me.default.createElement("input",{type:"text",value:this.state.newName,dir:t,lang:n,autoFocus:!0,onChange:i}),Me.default.createElement("button",{className:"save",type:"submit"},Me.default.createElement("i",{className:"fa-solid fa-cloud icon"}),"Save"),this.button("Cancel",{className:"cancel",icon:"ban",onClick:l})))}renderNode(){let n=this.props.index.node,i=Me.default.createElement("span",{className:"name"},this.pageName()),a="page",l="fa-regular fa-file icon";return typeof n.status<"u"&&(a=`page status-${this.node().status}`),n.id&&n.locale&&this.permitted("edit")&&(i=Me.default.createElement("a",{href:this.editUrl(n),className:"name"},this.pageName())),n.news_page?l="fa-regular fa-file-lines icon":n.pinned&&(l="fa-regular fa-flag icon"),Me.default.createElement("div",{className:a},Me.default.createElement("i",{className:l}),i,this.statusLabel(),this.collapsedLabel(),this.actions())}statusLabel(){let t=["Draft","Reviewed","Published","Hidden","Deleted"];return typeof this.node().status<"u"&&this.node().status!=2?Me.default.createElement("span",{className:"status-label"},"(",t[this.node().status],")"):""}toggleStatus(){this.node().status!=2?this.updatePage({status:2}):this.updatePage({status:3})}updatePage(t){if(this.props.updatePage)return this.props.updatePage(this.props.index,t)}visibleChildren(){return this.node().children?this.node().children.filter(t=>t.status!=4):[]}};var Rl=class extends oi.Component{constructor(t){super(t);this.state={dragging:this.initDragging()}}initDragging(){return{id:null,x:null,y:null,w:null,h:null,scrollTop:null,scrollLeft:null}}getDraggingDom(){let t=this.props.tree,n=this.state.dragging;if(n&&n.id){let i=t.getIndex(n.id),a={top:n.y,left:n.x,width:n.w};return oi.default.createElement("div",{className:"draggable",style:a},oi.default.createElement(Bi,{tree:t,index:i,paddingLeft:this.props.paddingLeft}))}return null}render(){let{tree:t,dir:n,locale:i}=this.props,a=this.state.dragging;if(t){let l=t.getIndex(1);return oi.default.createElement("div",{className:"page-tree"},this.getDraggingDom(),oi.default.createElement(Bi,{tree:t,index:l,key:l.id,paddingLeft:this.props.paddingLeft,addChild:u=>this.addChild(u),onDragStart:(u,c,d)=>this.dragStart(u,c,d),onCollapse:u=>this.toggleCollapse(u),updatePage:(u,c)=>this.updatePage(u,c),dragging:a&&a.id,dir:n,locale:i}))}else return oi.default.createElement("div",{className:"page-tree"},this.getDraggingDom())}addChild(t){let n={name:"",status:0,editing:!0,children:[],published_at:new Date,pinned:!1,locale:t.node.locale,parent_page_id:t.node.id};this.props.addChild(t.id,n)}prevAddButtonCount(t,n){let i=0,a=[],l=t.getIndex(n.parent);for(;l;)a.push(l),l=t.getIndex(l.parent);for(l=n,l=t.getNodeByTop(n.top-1);l;)a.indexOf(l)==-1&&!l.node.collapsed&&l.node.children.filter(u=>u.status!=4).length>0&&(i+=1),l=t.getNodeByTop(l.top-1);return i}scrollOffset(){let t=this.state.dragging;return{top:document.body.scrollTop-t.scrollTop,left:document.body.scrollLeft-t.scrollLeft}}drag(t){if(this._start)if(Math.abs(t.clientX-this._offsetX)+Math.abs(t.clientY-this._offsetY)>=15)this.setState({dragging:this.dragging}),this._start=!1;else return null;let n=this.props.tree,i=this.state.dragging,a=this.props.paddingLeft,l=null,u=n.getIndex(i.id),c=u.node.collapsed,d=this._startX,p=this._startY,y=this._offsetX,x=this._offsetY,E={x:d+t.clientX-y+this.scrollOffset().left,y:p+t.clientY-x+this.scrollOffset().top};i.x=E.x,i.y=E.y;let C=i.x-a/2-(u.left-2)*a,k=i.y-i.h/2-(u.top-2+this.prevAddButtonCount(n,u))*i.h;if(C<0)u.parent&&!u.next&&(l=n.move(u.id,u.parent,"after"));else if(C>a&&"prev"in u){let P=n.getIndex(u.prev);!P.node.leaf&&!P.node.collapsed&&(l=n.move(u.id,u.prev,"append"))}if(l&&(u=l,l.node.collapsed=c,i.id=l.id),k<0-i.h*.5){let P=n.getNodeByTop(u.top-1);l=n.move(u.id,P.id,"before")}else if(k>i.h*1.5){let P=u.next?n.getIndex(u.next):n.getNodeByTop(u.top+u.height);P&&P.parent!==u.id&&(P.children&&P.children.length&&!P.node.collapsed?l=n.move(u.id,P.id,"prepend"):l=n.move(u.id,P.id,"after"))}l&&(l.node.collapsed=c,i.id=l.id),this.setState({dragging:i})}dragStart(t,n,i){i.button===0&&(this.dragging={id:t,w:n.offsetWidth,h:n.offsetHeight,x:n.offsetLeft,y:n.offsetTop,scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft},this._startX=n.offsetLeft,this._startY=n.offsetTop,this._offsetX=i.clientX,this._offsetY=i.clientY,this._start=!0,this._dragListener=a=>{this.drag(a)},this._dragEndListener=()=>this.dragEnd(),window.addEventListener("mousemove",this._dragListener),window.addEventListener("mouseup",this._dragEndListener))}dragEnd(){this._start||(this.props.updateTree(this.props.tree),this.props.movedPage(this.state.dragging.id)),this.setState({dragging:this.initDragging()}),window.removeEventListener("mousemove",this._dragListener),window.removeEventListener("mouseup",this._dragEndListener)}toggleCollapse(t){this.props.toggleCollapsed(t)}updatePage(t,n){this.props.updatePage(t.id,n)}};Rl.defaultProps={paddingLeft:15};function cg(){return window&&window.localStorage&&typeof window.localStorage.collapsedPages<"u"?JSON.parse(window.localStorage.getItem("collapsedPages")):{}}var dc=class extends fc.Component{constructor(t){super(t);this.state={tree:this.buildTree(t.pages)}}applyCollapsed(t){let n=(a,l)=>{let u=0,c=a.getIndex(l.parent);for(;c;)u+=1,c=a.getIndex(c.parent);return u},i=a=>{let l=t.getIndex(a),u=l.node;u.id&&u.id in cg()?u.collapsed=cg()[u.id]:(u.news_page||n(t,l)>1)&&(u.collapsed=!0),l.children&&l.children.length&&l.children.forEach(c=>i(c))};i(1)}createPage(t,n){Yx(`/admin/${t.node.locale}/pages.json`,{page:n}).then(i=>this.updateNode(t,i))}buildTree(t){let n=t.reduce((a,l)=>{let u=l.parent_page_id||0;return a[u]=[...a[u]||[],l],a},{});t.forEach(a=>{a.children=n[a.id]||[]});let i=new cc({name:"All Pages",locale:this.props.locale,permissions:this.props.permissions,root:!0,children:n[0]});return this.applyCollapsed(i),i.updateNodesPosition(),i}movePage(t,n,i){let a={parent_id:n.node.id,position:i},l=`/admin/${t.node.locale}/pages/${t.node.id}/move.json`;this.performUpdate(t,l,a)}performUpdate(t,n,i){Fo(n,i).then(a=>this.updateNode(t,a))}render(){let t=(u,c)=>{let d=this.state.tree,p=d.append(c,u);this.reorderChildren(u),this.setCollapsed(u,!1),this.createPage(p,c),this.setState({tree:d})},n=u=>{let c=this.state.tree,d=c.getIndex(u);this.reorderChildren(d.parent);let p=c.getIndex(d.parent),y=p.children.indexOf(u)+1;this.movePage(d,p,y),this.setState({tree:c})},i=u=>{let c=this.state.tree,d=c.getIndex(u).node;this.setCollapsed(u,!d.collapsed),this.setState({tree:c})},a=(u,c)=>{let p=this.state.tree.getIndex(u),y=`/admin/${p.node.locale}/pages/${p.node.id}.json`;this.updateNode(p,c),this.performUpdate(p,y,{page:c})},l=u=>{this.setState({tree:u})};return fc.default.createElement(Rl,{tree:this.state.tree,addChild:t,movedPage:n,toggleCollapsed:i,updatePage:a,updateTree:l,locale:this.props.locale,dir:this.props.dir})}reorderChildren(t){let n=this.state.tree,i=this.state.tree.getIndex(t);!i.node.news_page||(i.children=i.children.sort(function(l,u){let c=n.getIndex(l).node,d=n.getIndex(u).node;return c.pinned==d.pinned?new Date(d.published_at)-new Date(c.published_at):c.pinned?-1:1}),n.updateNodesPosition())}setCollapsed(t,n){let i=this.state.tree.getIndex(t).node;i.collapsed=n,this.storeCollapsed(t,i.collapsed),this.state.tree.updateNodesPosition()}storeCollapsed(t,n){let i=this.state.tree.getIndex(t).node,a=cg();a[i.id]=n,window.localStorage.collapsedPages=JSON.stringify(a)}updateNode(t,n){for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t.node[i]=n[i]);this.setState({tree:this.state.tree})}};var Zn=oe(re());function fg(e){let[t,n]=(0,Zn.useState)(!1),{toasts:i,error:a,notice:l,next:u}=Ut(y=>y),c=(0,Zn.useRef)(null),d=i[0];(0,Zn.useEffect)(()=>{e.error&&a(e.error),e.notice&&l(e.notice)},[e.error,e.notice]),(0,Zn.useEffect)(()=>(n(!1),d&&!c.current&&(c.current=setTimeout(()=>{n(!0),c.current=setTimeout(()=>{c.current=null,n(!1),u()},500)},4e3)),()=>{clearTimeout(c.current)}),[d]);let p=["toast"];return d&&(p.push(d.type),t&&p.push("fadeout")),Zn.default.createElement("div",{className:"toast-wrapper","aria-live":"polite"},d&&Zn.default.createElement("div",{className:p.join(" ")},d.message))}var hc=class extends zn{static get targets(){return["form"]}preview(){let t=this.formTarget,n=t.action,i=t.target;t.target="_blank",t.action=t.dataset.previewUrl,t.submit(),t.action=n,t.target=i}};var gc=class extends zn{constructor(){super(...arguments);this.stateHandler=t=>{"state"in t&&"tabId"in t.state&&this.showTab(t.state.tabId)}}static get targets(){return["tab","link"]}connect(){let t=this.tabNames();if(t.length>0){let n=null,i=/#(.*)$/;if(document.location.toString().match(i)){let a=document.location.toString().match(i)[1];t.indexOf(a)!==-1&&(n=a)}this.showTab(n||t[0])}window.addEventListener("popstate",this.stateHandler)}disconnect(){window.removeEventListener("popstate",this.stateHandler)}changeTab(t){if(t.preventDefault(),"dataset"in t.target&&"tab"in t.target.dataset){let n=t.target.dataset.tab;this.showTab(n),history.pushState({tabId:n},"",`${window.location.pathname}#${n}`)}}showTab(t){this.linkTargets.forEach(n=>{n.dataset.tab==t?n.classList.add("current"):n.classList.remove("current")}),this.tabTargets.forEach(n=>{n.dataset.tab==t?n.classList.remove("hidden"):n.classList.add("hidden")})}tabNames(){return this.linkTargets.map(t=>t.dataset.tab)}};var mc=class extends zn{static get targets(){return["tab"]}connect(){this.tabTargets.length>0&&this.showTab(this.tabTargets[0].dataset.tab)}changeTab(t){t.preventDefault(),"dataset"in t.target&&"tab"in t.target.dataset&&this.showTab(t.target.dataset.tab)}showTab(t){this.tabTargets.forEach(n=>{n.dataset.tab==t?n.classList.remove("hidden"):n.classList.add("hidden")})}};var v_=oe(re()),y_=oe(lh());var dg=[],h_=()=>{if(["interactive","complete"].indexOf(document.readyState)>-1)for(;dg.length>0;)dg.shift()()},g_=class{constructor(){document.onreadystatechange=h_}ready(t){dg.push(t),h_()}},m_=new g_;var w_=class{apply(){document.querySelectorAll("textarea.rich").forEach(n=>{this.enhance(n)})}enhance(t){let n=document.createElement("div");t.parentNode.appendChild(n),y_.default.render(v_.default.createElement(ri,{value:t.value,name:t.name,rows:t.rows,id:t.id}),n),t.parentNode.removeChild(t)}start(){m_.ready(()=>{this.apply()})}},x_=new w_;function PI(e,t){window[e]=t}function pg(){(0,__.start)();for(let t in pc)PI(t,pc[t]);x_.start();let e=va.start();e.register("edit-page",hc),e.register("main",gc),e.register("login",mc)}pg();})(); /* object-assign (c) Sindre Sorhus diff --git a/app/assets/builds/pages_core/admin-dist.js.map b/app/assets/builds/pages_core/admin-dist.js.map index 834bfac0..df66ad28 100644 --- a/app/assets/builds/pages_core/admin-dist.js.map +++ b/app/assets/builds/pages_core/admin-dist.js.map @@ -1,13 +1,7 @@ { "version": 3, -<<<<<<< HEAD - "sources": ["../../../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js", "../../../../node_modules/object-assign/index.js", "../../../../node_modules/react/cjs/react.production.min.js", "../../../../node_modules/react/index.js", "../../../../node_modules/scheduler/cjs/scheduler.production.min.js", "../../../../node_modules/scheduler/index.js", "../../../../node_modules/react-dom/cjs/react-dom.production.min.js", "../../../../node_modules/react-dom/index.js", "../../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js", "../../../../node_modules/react-dom/server.browser.js", "../../../../node_modules/react_ujs/react_ujs/src/events/native.js", "../../../../node_modules/react_ujs/react_ujs/src/events/pjax.js", "../../../../node_modules/react_ujs/react_ujs/src/events/turbolinks.js", "../../../../node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js", "../../../../node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js", "../../../../node_modules/react_ujs/react_ujs/src/events/detect.js", "../../../../node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js", "../../../../node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js", "../../../../node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js", "../../../../node_modules/react_ujs/react_ujs/index.js", "../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js", "../../../../node_modules/prop-types/factoryWithThrowingShims.js", "../../../../node_modules/prop-types/index.js", "../../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js", "../../../../node_modules/use-sync-external-store/shim/index.js", "../../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js", "../../../../node_modules/use-sync-external-store/shim/with-selector.js", "../../../../node_modules/lodash/lodash.js", "../../../../node_modules/react-image-crop/dist/ReactCrop.js", "../../../../node_modules/react-image-crop/index.js", "../../../javascript/index.ts", "../../../../node_modules/@hotwired/stimulus/dist/stimulus.js", "../../../javascript/components.ts", "../../../javascript/components/Attachments.jsx", "../../../javascript/components/Attachments/Attachment.tsx", "../../../javascript/lib/copyToClipboard.ts", "../../../javascript/components/Attachments/AttachmentEditor.tsx", "../../../../node_modules/zustand/esm/vanilla.mjs", "../../../../node_modules/zustand/esm/index.mjs", "../../../javascript/stores/useModalStore.ts", "../../../javascript/stores/useToastStore.ts", "../../../javascript/lib/request.ts", "../../../javascript/components/drag/useDragCollection.ts", "../../../javascript/components/drag/useDragUploader.ts", "../../../javascript/components/drag/useDraggable.ts", "../../../javascript/components/drag/draggedOrder.ts", "../../../javascript/components/Attachments/Placeholder.tsx", "../../../javascript/components/FileUploadButton.tsx", "../../../javascript/components/DateRangeSelect.jsx", "../../../javascript/components/DateTimeSelect.jsx", "../../../javascript/components/EditableImage.tsx", "../../../javascript/components/ImageEditor.tsx", "../../../javascript/components/ImageCropper.tsx", "../../../javascript/components/ImageCropper/Image.tsx", "../../../javascript/components/ImageCropper/useCrop.ts", "../../../javascript/components/ImageCropper/FocalPoint.tsx", "../../../javascript/components/ImageCropper/Toolbar.tsx", "../../../javascript/components/ImageEditor/Form.tsx", "../../../javascript/components/ImageGrid.jsx", "../../../javascript/components/ImageGrid/DragElement.tsx", "../../../javascript/components/ImageGrid/FilePlaceholder.tsx", "../../../javascript/components/ImageGrid/GridImage.tsx", "../../../javascript/components/ImageGrid/Placeholder.tsx", "../../../javascript/components/ImageUploader.tsx", "../../../javascript/components/Modal.tsx", "../../../javascript/components/PageForm.jsx", "../../../javascript/components/PageForm/usePage.js", "../../../javascript/components/PageForm/Content.jsx", "../../../javascript/components/LabelledField.jsx", "../../../javascript/components/TagEditor.tsx", "../../../javascript/components/TagEditor/AddTagForm.tsx", "../../../javascript/components/TagEditor/Tag.tsx", "../../../javascript/components/PageForm/Block.jsx", "../../../javascript/components/RichTextArea.jsx", "../../../javascript/components/RichTextToolbarButton.tsx", "../../../javascript/components/PageForm/Dates.jsx", "../../../javascript/components/PageForm/Metadata.jsx", "../../../javascript/components/PageForm/PathSegment.jsx", "../../../javascript/components/PageForm/Form.jsx", "../../../javascript/components/PageForm/PageDescription.jsx", "../../../javascript/components/PageForm/LocaleLinks.jsx", "../../../javascript/components/PageForm/Options.jsx", "../../../javascript/components/PageForm/TabPanel.jsx", "../../../javascript/components/PageForm/Files.jsx", "../../../javascript/components/PageForm/Images.jsx", "../../../javascript/components/PageTree.tsx", "../../../javascript/lib/Tree.ts", "../../../javascript/components/PageTree/Draggable.tsx", "../../../javascript/components/PageTree/Node.tsx", "../../../javascript/components/Toast.tsx", "../../../javascript/controllers/EditPageController.ts", "../../../javascript/controllers/MainController.ts", "../../../javascript/controllers/LoginController.ts", "../../../javascript/features/RichText.jsx", "../../../javascript/lib/readyHandler.ts", "../../../javascript/admin-dist.ts"], - "sourcesContent": ["/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\n (function() {\n (function() {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\n nonce = null;\n\n Rails.loadCSPNonce = function() {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function() {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n\n }).call(this);\n (function() {\n var expando, m;\n\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function(element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function(element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function(element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function(xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function() {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n }\n return result;\n };\n }\n\n fire = Rails.fire = function(obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function(e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function(element, selector, eventType, handler) {\n return element.addEventListener(eventType, function(e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function(options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function() {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n\n Rails.href = function(element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function(url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n } catch (error) {\n e = error;\n return true;\n }\n };\n\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function(option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function(param) {\n if (param.name != null) {\n return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function(form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function(el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function(e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function(message, element) {\n return confirm(message);\n };\n\n allowAction = function(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function(e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n\n }).call(this);\n (function() {\n var stopEverything;\n\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function(e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n\n }).call(this);\n (function() {\n var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function(element) {\n var value;\n value = element.getAttribute('data-remote');\n return (value != null) && value !== 'false';\n };\n\n Rails.handleRemote = function(e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: (withCredentials != null) && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function(e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function(e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function() {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function() {\n $(Rails.formEnableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n return setTimeout((function() {\n return disableElement(e);\n }), 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n", "/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n", "/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;eK;K++)J[K]=K+1;J[15]=0;var oa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,pa=Object.prototype.hasOwnProperty,qa={},ra={};\nfunction sa(a){if(pa.call(ra,a))return!0;if(pa.call(qa,a))return!1;if(oa.test(a))return ra[a]=!0;qa[a]=!0;return!1}function ta(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction ua(a,b,c,d){if(null===b||\"undefined\"===typeof b||ta(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function M(a,b,c,d,f,h,t){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=h;this.removeEmptyString=t}var N={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){N[a]=new M(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];N[b]=new M(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){N[a]=new M(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){N[a]=new M(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){N[a]=new M(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){N[a]=new M(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){N[a]=new M(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){N[a]=new M(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){N[a]=new M(a,5,!1,a.toLowerCase(),null,!1,!1)});var va=/[\\-:]([a-z])/g;function wa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(va,\nwa);N[b]=new M(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(va,wa);N[b]=new M(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!1,!1)});\nN.xlinkHref=new M(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){N[a]=new M(a,1,!1,a.toLowerCase(),null,!0,!0)});var xa=/[\"'&<>]/;\nfunction O(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=xa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;dV))throw Error(p(301));if(a===P)if(T=!0,a={action:c,next:null},null===U&&(U=new Map),c=U.get(b),void 0===c)U.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function Ja(){}\nvar X=null,Ka={readContext:function(a){var b=X.threadID;I(a,b);return a[b]},useContext:function(a){W();var b=X.threadID;I(a,b);return a[b]},useMemo:Ia,useReducer:Ga,useRef:function(a){P=W();R=Ca();var b=R.memoizedState;return null===b?(a={current:a},R.memoizedState=a):b},useState:function(a){return Ga(Fa,a)},useLayoutEffect:function(){},useCallback:function(a,b){return Ia(function(){return a},b)},useImperativeHandle:Ja,useEffect:Ja,useDebugValue:Ja,useDeferredValue:function(a){W();return a},useTransition:function(){W();\nreturn[function(a){a()},!1]},useOpaqueIdentifier:function(){return(X.identifierPrefix||\"\")+\"R:\"+(X.uniqueID++).toString(36)},useMutableSource:function(a,b){W();return b(a._source)}},La={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};function Ma(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nvar Na={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Oa=l({menuitem:!0},Na),Y={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,\ngridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Pa=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Y).forEach(function(a){Pa.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Y[b]=Y[a]})});\nvar Qa=/([A-Z])/g,Ra=/^ms-/,Z=m.Children.toArray,Sa=la.ReactCurrentDispatcher,Ta={listing:!0,pre:!0,textarea:!0},Ua=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Va={},Wa={};function Xa(a){if(void 0===a||null===a)return a;var b=\"\";m.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Ya=Object.prototype.hasOwnProperty,Za={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function $a(a,b){if(void 0===a)throw Error(p(152,F(b)||\"Component\"));}\nfunction ab(a,b,c){function d(d,h){var e=h.prototype&&h.prototype.isReactComponent,f=na(h,b,c,e),t=[],g=!1,n={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===t)return null},enqueueReplaceState:function(a,c){g=!0;t=[c]},enqueueSetState:function(a,c){if(null===t)return null;t.push(c)}};if(e){if(e=new h(d.props,f,n),\"function\"===typeof h.getDerivedStateFromProps){var k=h.getDerivedStateFromProps.call(null,d.props,e.state);null!=k&&(e.state=l({},e.state,k))}}else if(P={},e=h(d.props,\nf,n),e=Da(h,d.props,e,f),null==e||null==e.render){a=e;$a(a,h);return}e.props=d.props;e.context=f;e.updater=n;n=e.state;void 0===n&&(e.state=n=null);if(\"function\"===typeof e.UNSAFE_componentWillMount||\"function\"===typeof e.componentWillMount)if(\"function\"===typeof e.componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof h.getDerivedStateFromProps&&e.UNSAFE_componentWillMount(),t.length){n=t;var v=\ng;t=null;g=!1;if(v&&1===n.length)e.state=n[0];else{k=v?n[0]:e.state;var H=!0;for(v=v?1:0;v=g))throw Error(p(304));var e=new Uint16Array(g);e.set(d);J=e;J[0]=c+1;for(d=c;d=e.children.length){var L=e.footer;\"\"!==L&&(this.previousWasTextNode=!1);this.stack.pop();if(\"select\"===e.type)this.currentSelectValue=null;else if(null!=e.type&&null!=e.type.type&&e.type.type.$$typeof===B)this.popProvider(e.type);else if(e.type===D){this.suspenseDepth--;var G=h.pop();if(t){t=!1;var C=e.fallbackFrame;if(!C)throw Error(p(303));this.stack.push(C);h[this.suspenseDepth]+=\"\\x3c!--$!--\\x3e\";continue}else h[this.suspenseDepth]+=\nG}h[this.suspenseDepth]+=L}else{var n=e.children[e.childIndex++],k=\"\";try{k+=this.render(n,e.context,e.domNamespace)}catch(v){if(null!=v&&\"function\"===typeof v.then)throw Error(p(294));throw v;}finally{}h.length<=this.suspenseDepth&&h.push(\"\");h[this.suspenseDepth]+=k}}return h[0]}finally{Sa.current=c,X=b,Ea()}};b.render=function(a,b,f){if(\"string\"===typeof a||\"number\"===typeof a){f=\"\"+a;if(\"\"===f)return\"\";if(this.makeStaticMarkup)return O(f);if(this.previousWasTextNode)return\"\\x3c!-- --\\x3e\"+O(f);\nthis.previousWasTextNode=!0;return O(f)}b=ab(a,b,this.threadID);a=b.child;b=b.context;if(null===a||!1===a)return\"\";if(!m.isValidElement(a)){if(null!=a&&null!=a.$$typeof){f=a.$$typeof;if(f===q)throw Error(p(257));throw Error(p(258,f.toString()));}a=Z(a);this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"});return\"\"}var c=a.type;if(\"string\"===typeof c)return this.renderDOM(a,b,f);switch(c){case ka:case ja:case u:case z:case ca:case r:return a=Z(a.props.children),this.stack.push({type:null,\ndomNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\"\";case D:throw Error(p(294));case ia:throw Error(p(343));}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case ba:P={};var d=c.render(a.props,a.ref);d=Da(c.render,a.props,d,a.ref);d=Z(d);this.stack.push({type:null,domNamespace:f,children:d,childIndex:0,context:b,footer:\"\"});return\"\";case da:return a=[m.createElement(c.type,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,context:b,footer:\"\"}),\n\"\";case B:return c=Z(a.props.children),f={type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"},this.pushProvider(a),this.stack.push(f),\"\";case aa:c=a.type;d=a.props;var g=this.threadID;I(c,g);c=Z(d.children(c[g]));this.stack.push({type:a,domNamespace:f,children:c,childIndex:0,context:b,footer:\"\"});return\"\";case ha:throw Error(p(338));case ea:return c=a.type,d=c._init,c=d(c._payload),a=[m.createElement(c,l({ref:a.ref},a.props))],this.stack.push({type:null,domNamespace:f,children:a,childIndex:0,\ncontext:b,footer:\"\"}),\"\"}throw Error(p(130,null==c?c:typeof c,\"\"));};b.renderDOM=function(a,b,f){var c=a.type.toLowerCase();f===La.html&&Ma(c);if(!Va.hasOwnProperty(c)){if(!Ua.test(c))throw Error(p(65,c));Va[c]=!0}var d=a.props;if(\"input\"===c)d=l({type:void 0},d,{defaultChecked:void 0,defaultValue:void 0,value:null!=d.value?d.value:d.defaultValue,checked:null!=d.checked?d.checked:d.defaultChecked});else if(\"textarea\"===c){var g=d.value;if(null==g){g=d.defaultValue;var e=d.children;if(null!=e){if(null!=\ng)throw Error(p(92));if(Array.isArray(e)){if(!(1>=e.length))throw Error(p(93));e=e[0]}g=\"\"+e}null==g&&(g=\"\")}d=l({},d,{value:void 0,children:\"\"+g})}else if(\"select\"===c)this.currentSelectValue=null!=d.value?d.value:d.defaultValue,d=l({},d,{value:void 0});else if(\"option\"===c){e=this.currentSelectValue;var L=Xa(d.children);if(null!=e){var G=null!=d.value?d.value+\"\":L;g=!1;if(Array.isArray(e))for(var C=0;C\":(w+=\">\",g=\"\");a:{e=d.dangerouslySetInnerHTML;if(null!=e){if(null!=e.__html){e=e.__html;break a}}else if(e=d.children,\"string\"===typeof e||\"number\"===typeof e){e=O(e);break a}e=null}null!=e?(d=[],Ta.hasOwnProperty(c)&&\"\\n\"===e.charAt(0)&&(w+=\"\\n\"),w+=e):d=Z(d.children);a=a.type;f=null==f||\"http://www.w3.org/1999/xhtml\"===f?Ma(a):\"http://www.w3.org/2000/svg\"===\nf&&\"foreignObject\"===a?\"http://www.w3.org/1999/xhtml\":f;this.stack.push({domNamespace:f,type:c,children:d,childIndex:0,context:b,footer:g});this.previousWasTextNode=!1;return w};return a}();exports.renderToNodeStream=function(){throw Error(p(207));};exports.renderToStaticMarkup=function(a,b){a=new bb(a,!0,b);try{return a.read(Infinity)}finally{a.destroy()}};exports.renderToStaticNodeStream=function(){throw Error(p(208));};exports.renderToString=function(a,b){a=new bb(a,!1,b);try{return a.read(Infinity)}finally{a.destroy()}};\nexports.version=\"17.0.2\";\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom-server.browser.development.js');\n}\n", "module.exports = {\n // Attach handlers to browser events to mount\n // (There are no unmount handlers since the page is destroyed on navigation)\n setup: function(ujs) {\n if ('addEventListener' in window) {\n ujs.handleEvent('DOMContentLoaded', ujs.handleMount);\n } else {\n // add support to IE8 without jQuery\n ujs.handleEvent('onload', ujs.handleMount);\n }\n },\n\n teardown: function(ujs) {\n ujs.removeEvent('DOMContentLoaded', ujs.handleMount);\n ujs.removeEvent('onload', ujs.handleMount);\n }\n}\n", "module.exports = {\n // pjax support\n setup: function(ujs) {\n ujs.handleEvent('ready', ujs.handleMount);\n ujs.handleEvent('pjax:end', ujs.handleMount);\n ujs.handleEvent('pjax:beforeReplace', ujs.handleUnmount);\n },\n\n teardown: function(ujs) {\n ujs.removeEvent('ready', ujs.handleMount);\n ujs.removeEvent('pjax:end', ujs.handleMount);\n ujs.removeEvent('pjax:beforeReplace', ujs.handleUnmount);\n },\n}\n", "module.exports = {\n // Turbolinks 5+ got rid of named events (?!)\n setup: function(ujs) {\n \tujs.handleEvent('turbolinks:load', ujs.handleMount);\n ujs.handleEvent('turbolinks:before-render', ujs.handleUnmount);\n },\n\n teardown: function(ujs) {\n \tujs.removeEvent('turbolinks:load', ujs.handleMount);\n ujs.removeEvent('turbolinks:before-render', ujs.handleUnmount);\n },\n}\n", "module.exports = {\n // Before Turbolinks 2.4.0, Turbolinks didn't\n // have named events and didn't have a before-unload event.\n // Also, it didn't work with the Turbolinks cache, see\n // https://github.com/reactjs/react-rails/issues/87\n setup: function(ujs) {\n Turbolinks.pagesCached(0)\n ujs.handleEvent('page:change', ujs.handleMount);\n ujs.handleEvent('page:receive', ujs.handleUnmount);\n },\n teardown: function(ujs) {\n ujs.removeEvent('page:change', ujs.handleMount);\n ujs.removeEvent('page:receive', ujs.handleUnmount);\n }\n}\n", "module.exports = {\n // Attach handlers to Turbolinks-Classic events\n // for mounting and unmounting components\n setup: function(ujs) {\n ujs.handleEvent(Turbolinks.EVENTS.CHANGE, ujs.handleMount);\n ujs.handleEvent(Turbolinks.EVENTS.BEFORE_UNLOAD, ujs.handleUnmount);\n },\n teardown: function(ujs) {\n ujs.removeEvent(Turbolinks.EVENTS.CHANGE, ujs.handleMount);\n ujs.removeEvent(Turbolinks.EVENTS.BEFORE_UNLOAD, ujs.handleUnmount);\n }\n}\n", "var nativeEvents = require(\"./native\")\nvar pjaxEvents = require(\"./pjax\")\nvar turbolinksEvents = require(\"./turbolinks\")\nvar turbolinksClassicDeprecatedEvents = require(\"./turbolinksClassicDeprecated\")\nvar turbolinksClassicEvents = require(\"./turbolinksClassic\")\n\n// see what things are globally available\n// and setup event handlers to those things\nmodule.exports = function(ujs) {\n if (ujs.handleEvent) {\n // We're calling this a second time -- remove previous handlers\n if (typeof Turbolinks !== \"undefined\" && typeof Turbolinks.EVENTS !== \"undefined\") {\n turbolinksClassicEvents.teardown(ujs);\n }\n turbolinksEvents.teardown(ujs);\n turbolinksClassicDeprecatedEvents.teardown(ujs);\n pjaxEvents.teardown(ujs);\n nativeEvents.teardown(ujs);\n }\n\n if ('addEventListener' in window) {\n ujs.handleEvent = function(eventName, callback) {\n document.addEventListener(eventName, callback);\n };\n ujs.removeEvent = function(eventName, callback) {\n document.removeEventListener(eventName, callback);\n };\n } else {\n ujs.handleEvent = function(eventName, callback) {\n window.attachEvent(eventName, callback);\n };\n ujs.removeEvent = function(eventName, callback) {\n window.detachEvent(eventName, callback);\n };\n }\n\n // Detect which kind of events to set up:\n if (typeof Turbolinks !== 'undefined' && Turbolinks.supported) {\n if (typeof Turbolinks.EVENTS !== 'undefined') {\n // Turbolinks.EVENTS is in classic version 2.4.0+\n turbolinksClassicEvents.setup(ujs)\n } else if (typeof Turbolinks.controller !== \"undefined\") {\n // Turbolinks.controller is in version 5+\n turbolinksEvents.setup(ujs);\n } else {\n turbolinksClassicDeprecatedEvents.setup(ujs);\n }\n } else if (typeof $ !== \"undefined\" && typeof $.pjax === 'function') {\n pjaxEvents.setup(ujs);\n } else {\n nativeEvents.setup(ujs);\n }\n}\n", "// Assume className is simple and can be found at top-level (window).\n// Fallback to eval to handle cases like 'My.React.ComponentName'.\n// Also, try to gracefully import Babel 6 style default exports\nvar topLevel = typeof window === \"undefined\" ? this : window;\n\nmodule.exports = function(className) {\n var constructor;\n // Try to access the class globally first\n constructor = topLevel[className];\n\n // If that didn't work, try eval\n if (!constructor) {\n constructor = eval(className);\n }\n\n // Lastly, if there is a default attribute try that\n if (constructor && constructor['default']) {\n constructor = constructor['default'];\n }\n\n return constructor;\n}\n", "// Load React components by requiring them from \"components/\", for example:\n//\n// - \"pages/index\" -> `require(\"components/pages/index\")`\n// - \"pages/show.Header\" -> `require(\"components/pages/show\").Header`\n// - \"pages/show.Body.Content\" -> `require(\"components/pages/show\").Body.Content`\n//\nmodule.exports = function(reqctx) {\n return function(className) {\n var parts = className.split(\".\")\n var filename = parts.shift()\n var keys = parts\n // Load the module:\n var component = reqctx(\"./\" + filename)\n // Then access each key:\n keys.forEach(function(k) {\n component = component[k]\n })\n // support `export default`\n if (component.__esModule) {\n component = component[\"default\"]\n }\n return component\n }\n}\n", "// Make a function which:\n// - First tries to require the name\n// - Then falls back to global lookup\nvar fromGlobal = require(\"./fromGlobal\")\nvar fromRequireContext = require(\"./fromRequireContext\")\n\nmodule.exports = function(reqctx) {\n var fromCtx = fromRequireContext(reqctx)\n return function(className) {\n var component;\n try {\n // `require` will raise an error if this className isn't found:\n component = fromCtx(className)\n } catch (firstErr) {\n // fallback to global:\n try {\n component = fromGlobal(className)\n } catch (secondErr) {\n console.error(firstErr)\n console.error(secondErr)\n }\n }\n return component\n }\n}\n", "var React = require(\"react\")\nvar ReactDOM = require(\"react-dom\")\nvar ReactDOMServer = require(\"react-dom/server\")\n\nvar detectEvents = require(\"./src/events/detect\")\nvar constructorFromGlobal = require(\"./src/getConstructor/fromGlobal\")\nvar constructorFromRequireContextWithGlobalFallback = require(\"./src/getConstructor/fromRequireContextWithGlobalFallback\")\n\nvar ReactRailsUJS = {\n // This attribute holds the name of component which should be mounted\n // example: `data-react-class=\"MyApp.Items.EditForm\"`\n CLASS_NAME_ATTR: 'data-react-class',\n\n // This attribute holds JSON stringified props for initializing the component\n // example: `data-react-props=\"{\\\"item\\\": { \\\"id\\\": 1, \\\"name\\\": \\\"My Item\\\"} }\"`\n PROPS_ATTR: 'data-react-props',\n\n // This attribute holds which method to use between: ReactDOM.hydrate, ReactDOM.render\n RENDER_ATTR: 'data-hydrate',\n\n // A unique identifier to identify a node\n CACHE_ID_ATTR: \"data-react-cache-id\",\n\n TURBOLINKS_PERMANENT_ATTR: \"data-turbolinks-permanent\",\n\n // If jQuery is detected, save a reference to it for event handlers\n jQuery: (typeof window !== 'undefined') && (typeof window.jQuery !== 'undefined') && window.jQuery,\n\n components: {},\n\n // helper method for the mount and unmount methods to find the\n // `data-react-class` DOM elements\n findDOMNodes: function(searchSelector) {\n var classNameAttr = ReactRailsUJS.CLASS_NAME_ATTR\n // we will use fully qualified paths as we do not bind the callbacks\n var selector, parent;\n\n switch (typeof searchSelector) {\n case 'undefined':\n selector = '[' + classNameAttr + ']';\n parent = document;\n break;\n case 'object':\n selector = '[' + classNameAttr + ']';\n parent = searchSelector;\n break;\n case 'string':\n selector = searchSelector + '[' + classNameAttr + '], ' +\n searchSelector + ' [' + classNameAttr + ']';\n parent = document;\n break\n default:\n break;\n }\n\n if (ReactRailsUJS.jQuery) {\n return ReactRailsUJS.jQuery(selector, parent);\n } else {\n return parent.querySelectorAll(selector);\n }\n },\n\n // Get the constructor for a className (returns a React class)\n // Override this function to lookup classes in a custom way,\n // the default is ReactRailsUJS.ComponentGlobal\n getConstructor: constructorFromGlobal,\n\n // Given a Webpack `require.context`,\n // try finding components with `require`,\n // then falling back to global lookup.\n useContext: function(requireContext) {\n this.getConstructor = constructorFromRequireContextWithGlobalFallback(requireContext)\n },\n\n // Render `componentName` with `props` to a string,\n // using the specified `renderFunction` from `react-dom/server`.\n serverRender: function(renderFunction, componentName, props) {\n var componentClass = this.getConstructor(componentName)\n var element = React.createElement(componentClass, props)\n return ReactDOMServer[renderFunction](element)\n },\n\n // Within `searchSelector`, find nodes which should have React components\n // inside them, and mount them with their props.\n mountComponents: function(searchSelector) {\n var ujs = ReactRailsUJS\n var nodes = ujs.findDOMNodes(searchSelector);\n\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n var className = node.getAttribute(ujs.CLASS_NAME_ATTR);\n var constructor = ujs.getConstructor(className);\n var propsJson = node.getAttribute(ujs.PROPS_ATTR);\n var props = propsJson && JSON.parse(propsJson);\n var hydrate = node.getAttribute(ujs.RENDER_ATTR);\n var cacheId = node.getAttribute(ujs.CACHE_ID_ATTR);\n var turbolinksPermanent = node.hasAttribute(ujs.TURBOLINKS_PERMANENT_ATTR);\n\n if (!constructor) {\n var message = \"Cannot find component: '\" + className + \"'\"\n if (console && console.log) {\n console.log(\"%c[react-rails] %c\" + message + \" for element\", \"font-weight: bold\", \"\", node)\n }\n throw new Error(message + \". Make sure your component is available to render.\")\n } else {\n var component = this.components[cacheId];\n if(component === undefined) {\n component = React.createElement(constructor, props);\n if(turbolinksPermanent) {\n this.components[cacheId] = component;\n }\n }\n\n if (hydrate && typeof ReactDOM.hydrate === \"function\") {\n component = ReactDOM.hydrate(component, node);\n } else {\n component = ReactDOM.render(component, node);\n }\n }\n } \n },\n\n // Within `searchSelector`, find nodes which have React components\n // inside them, and unmount those components.\n unmountComponents: function(searchSelector) {\n var nodes = ReactRailsUJS.findDOMNodes(searchSelector);\n\n for (var i = 0; i < nodes.length; ++i) {\n var node = nodes[i];\n ReactDOM.unmountComponentAtNode(node);\n }\n },\n\n // Check the global context for installed libraries\n // and figure out which library to hook up to (pjax, Turbolinks, jQuery)\n // This is called on load, but you can call it again if needed\n // (It will unmount itself)\n detectEvents: function() {\n detectEvents(this)\n },\n}\n\n// These stable references are so that handlers can be added and removed:\nReactRailsUJS.handleMount = function(e) {\n var target = undefined;\n if (e && e.target) {\n target = e.target;\n }\n ReactRailsUJS.mountComponents(target);\n}\nReactRailsUJS.handleUnmount = function(e) {\n var target = undefined;\n if (e && e.target) {\n target = e.target;\n }\n ReactRailsUJS.unmountComponents(target);\n}\n\n\nif (typeof window !== \"undefined\") {\n // Only setup events for browser (not server-rendering)\n ReactRailsUJS.detectEvents()\n}\n\n// It's a bit of a no-no to populate the global namespace,\n// but we really need it!\n// We need access to this object for server rendering, and\n// we can't do a dynamic `require`, so we'll grab it from here:\nself.ReactRailsUJS = ReactRailsUJS\n\nmodule.exports = ReactRailsUJS\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n", "/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n", "/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n", "/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('d\u00E9j\u00E0 vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '