@devvit/public-api 0.11.0-next-2024-08-06-2b2a01b37.0 → 0.11.0-next-2024-08-06-ff8bfebcc.0

Sign up to get free protection for your applications and to get access to all the features.
package/public-api.min.js CHANGED
@@ -1,6 +1,6 @@
1
1
  var SS=Object.create;var Lm=Object.defineProperty;var PS=Object.getOwnPropertyDescriptor;var CS=Object.getOwnPropertyNames;var IS=Object.getPrototypeOf,wS=Object.prototype.hasOwnProperty;var Um=r=>{throw TypeError(r)};var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var xS=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of CS(e))!wS.call(r,n)&&n!==t&&Lm(r,n,{get:()=>e[n],enumerable:!(i=PS(e,n))||i.enumerable});return r};var _n=(r,e,t)=>(t=r!=null?SS(IS(r)):{},xS(e||!r||!r.__esModule?Lm(t,"default",{value:r,enumerable:!0}):t,r));var pl=(r,e,t)=>e.has(r)||Um("Cannot "+t);var s=(r,e,t)=>(pl(r,e,"read from private field"),t?t.call(r):e.get(r)),l=(r,e,t)=>e.has(r)?Um("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),d=(r,e,t,i)=>(pl(r,e,"write to private field"),i?i.call(r,t):e.set(r,t),t),S=(r,e,t)=>(pl(r,e,"access private method"),t);var ae=h((eF,Bm)=>{Bm.exports=function(r){try{return!!r()}catch{return!0}}});var ba=h((tF,Dm)=>{var AS=ae();Dm.exports=!AS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var Z=h((rF,qm)=>{var _m=ba(),Nm=Function.prototype,fl=Nm.call,TS=_m&&Nm.bind.bind(fl,fl);qm.exports=_m?TS:function(r){return function(){return fl.apply(r,arguments)}}});var jm=h((iF,Hm)=>{var ES=Math.ceil,RS=Math.floor;Hm.exports=Math.trunc||function(e){var t=+e;return(t>0?RS:ES)(t)}});var ka=h((nF,Wm)=>{var OS=jm();Wm.exports=function(r){var e=+r;return e!==e||e===0?0:OS(e)}});var me=h((sF,Gm)=>{var Sa=function(r){return r&&r.Math==Math&&r};Gm.exports=Sa(typeof globalThis=="object"&&globalThis)||Sa(typeof window=="object"&&window)||Sa(typeof self=="object"&&self)||Sa(typeof global=="object"&&global)||function(){return this}()||Function("return this")()});var jr=h((oF,Vm)=>{Vm.exports=!1});var Pa=h((aF,Jm)=>{var zm=me(),FS=Object.defineProperty;Jm.exports=function(r,e){try{FS(zm,r,{value:e,configurable:!0,writable:!0})}catch{zm[r]=e}return e}});var Ca=h((dF,Km)=>{var MS=me(),LS=Pa(),$m="__core-js_shared__",US=MS[$m]||LS($m,{});Km.exports=US});var gl=h((lF,Zm)=>{var BS=jr(),Xm=Ca();(Zm.exports=function(r,e){return Xm[r]||(Xm[r]=e!==void 0?e:{})})("versions",[]).push({version:"3.27.2",mode:BS?"pure":"global",copyright:"\xA9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.27.2/LICENSE",source:"https://github.com/zloirock/core-js"})});var Ia=h((uF,Ym)=>{Ym.exports=function(r){return r==null}});var wa=h((cF,Qm)=>{var DS=Ia(),_S=TypeError;Qm.exports=function(r){if(DS(r))throw _S("Can't call method on "+r);return r}});var Nn=h((mF,ep)=>{var NS=wa(),qS=Object;ep.exports=function(r){return qS(NS(r))}});var Ie=h((pF,tp)=>{var HS=Z(),jS=Nn(),WS=HS({}.hasOwnProperty);tp.exports=Object.hasOwn||function(e,t){return WS(jS(e),t)}});var hl=h((fF,rp)=>{var GS=Z(),VS=0,zS=Math.random(),JS=GS(1 .toString);rp.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+JS(++VS+zS,36)}});var np=h((gF,ip)=>{ip.exports=typeof navigator<"u"&&String(navigator.userAgent)||""});var cp=h((hF,up)=>{var lp=me(),vl=np(),sp=lp.process,op=lp.Deno,ap=sp&&sp.versions||op&&op.version,dp=ap&&ap.v8,We,xa;dp&&(We=dp.split("."),xa=We[0]>0&&We[0]<4?1:+(We[0]+We[1]));!xa&&vl&&(We=vl.match(/Edge\/(\d+)/),(!We||We[1]>=74)&&(We=vl.match(/Chrome\/(\d+)/),We&&(xa=+We[1])));up.exports=xa});var yl=h((vF,pp)=>{var mp=cp(),$S=ae();pp.exports=!!Object.getOwnPropertySymbols&&!$S(function(){var r=Symbol();return!String(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&mp&&mp<41})});var bl=h((yF,fp)=>{var KS=yl();fp.exports=KS&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var we=h((bF,hp)=>{var XS=me(),ZS=gl(),gp=Ie(),YS=hl(),QS=yl(),eP=bl(),Wr=XS.Symbol,kl=ZS("wks"),tP=eP?Wr.for||Wr:Wr&&Wr.withoutSetter||YS;hp.exports=function(r){return gp(kl,r)||(kl[r]=QS&&gp(Wr,r)?Wr[r]:tP("Symbol."+r)),kl[r]}});var bp=h((kF,yp)=>{var rP=we(),iP=rP("toStringTag"),vp={};vp[iP]="z";yp.exports=String(vp)==="[object z]"});var Pl=h((SF,kp)=>{var Sl=typeof document=="object"&&document.all,nP=typeof Sl>"u"&&Sl!==void 0;kp.exports={all:Sl,IS_HTMLDDA:nP}});var Y=h((PF,Pp)=>{var Sp=Pl(),sP=Sp.all;Pp.exports=Sp.IS_HTMLDDA?function(r){return typeof r=="function"||r===sP}:function(r){return typeof r=="function"}});var Aa=h((CF,Ip)=>{var Cp=Z(),oP=Cp({}.toString),aP=Cp("".slice);Ip.exports=function(r){return aP(oP(r),8,-1)}});var qn=h((IF,wp)=>{var dP=bp(),lP=Y(),Ta=Aa(),uP=we(),cP=uP("toStringTag"),mP=Object,pP=Ta(function(){return arguments}())=="Arguments",fP=function(r,e){try{return r[e]}catch{}};wp.exports=dP?Ta:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=fP(e=mP(r),cP))=="string"?t:pP?Ta(e):(i=Ta(e))=="Object"&&lP(e.callee)?"Arguments":i}});var Hn=h((wF,xp)=>{var gP=qn(),hP=String;xp.exports=function(r){if(gP(r)==="Symbol")throw TypeError("Cannot convert a Symbol value to a string");return hP(r)}});var Il=h((xF,Ep)=>{var Cl=Z(),vP=ka(),yP=Hn(),bP=wa(),kP=Cl("".charAt),Ap=Cl("".charCodeAt),SP=Cl("".slice),Tp=function(r){return function(e,t){var i=yP(bP(e)),n=vP(t),o=i.length,a,c;return n<0||n>=o?r?"":void 0:(a=Ap(i,n),a<55296||a>56319||n+1===o||(c=Ap(i,n+1))<56320||c>57343?r?kP(i,n):a:r?SP(i,n,n+2):(a-55296<<10)+(c-56320)+65536)}};Ep.exports={codeAt:Tp(!1),charAt:Tp(!0)}});var Fp=h((AF,Op)=>{var PP=me(),CP=Y(),Rp=PP.WeakMap;Op.exports=CP(Rp)&&/native code/.test(String(Rp))});var It=h((TF,Up)=>{var Mp=Y(),Lp=Pl(),IP=Lp.all;Up.exports=Lp.IS_HTMLDDA?function(r){return typeof r=="object"?r!==null:Mp(r)||r===IP}:function(r){return typeof r=="object"?r!==null:Mp(r)}});var pe=h((EF,Bp)=>{var wP=ae();Bp.exports=!wP(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})});var xl=h((RF,_p)=>{var xP=me(),Dp=It(),wl=xP.document,AP=Dp(wl)&&Dp(wl.createElement);_p.exports=function(r){return AP?wl.createElement(r):{}}});var Al=h((OF,Np)=>{var TP=pe(),EP=ae(),RP=xl();Np.exports=!TP&&!EP(function(){return Object.defineProperty(RP("div"),"a",{get:function(){return 7}}).a!=7})});var Tl=h((FF,qp)=>{var OP=pe(),FP=ae();qp.exports=OP&&FP(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!=42})});var Qe=h((MF,Hp)=>{var MP=It(),LP=String,UP=TypeError;Hp.exports=function(r){if(MP(r))return r;throw UP(LP(r)+" is not an object")}});var Ge=h((LF,jp)=>{var BP=ba(),Ea=Function.prototype.call;jp.exports=BP?Ea.bind(Ea):function(){return Ea.apply(Ea,arguments)}});var jn=h((UF,Wp)=>{var El=me(),DP=Y(),_P=function(r){return DP(r)?r:void 0};Wp.exports=function(r,e){return arguments.length<2?_P(El[r]):El[r]&&El[r][e]}});var Rl=h((BF,Gp)=>{var NP=Z();Gp.exports=NP({}.isPrototypeOf)});var Ol=h((DF,Vp)=>{var qP=jn(),HP=Y(),jP=Rl(),WP=bl(),GP=Object;Vp.exports=WP?function(r){return typeof r=="symbol"}:function(r){var e=qP("Symbol");return HP(e)&&jP(e.prototype,GP(r))}});var Fl=h((_F,zp)=>{var VP=String;zp.exports=function(r){try{return VP(r)}catch{return"Object"}}});var Ra=h((NF,Jp)=>{var zP=Y(),JP=Fl(),$P=TypeError;Jp.exports=function(r){if(zP(r))return r;throw $P(JP(r)+" is not a function")}});var Oa=h((qF,$p)=>{var KP=Ra(),XP=Ia();$p.exports=function(r,e){var t=r[e];return XP(t)?void 0:KP(t)}});var Xp=h((HF,Kp)=>{var Ml=Ge(),Ll=Y(),Ul=It(),ZP=TypeError;Kp.exports=function(r,e){var t,i;if(e==="string"&&Ll(t=r.toString)&&!Ul(i=Ml(t,r))||Ll(t=r.valueOf)&&!Ul(i=Ml(t,r))||e!=="string"&&Ll(t=r.toString)&&!Ul(i=Ml(t,r)))return i;throw ZP("Can't convert object to primitive value")}});var ef=h((jF,Qp)=>{var YP=Ge(),Zp=It(),Yp=Ol(),QP=Oa(),eC=Xp(),tC=we(),rC=TypeError,iC=tC("toPrimitive");Qp.exports=function(r,e){if(!Zp(r)||Yp(r))return r;var t=QP(r,iC),i;if(t){if(e===void 0&&(e="default"),i=YP(t,r,e),!Zp(i)||Yp(i))return i;throw rC("Can't convert object to primitive value")}return e===void 0&&(e="number"),eC(r,e)}});var Fa=h((WF,tf)=>{var nC=ef(),sC=Ol();tf.exports=function(r){var e=nC(r,"string");return sC(e)?e:e+""}});var et=h(nf=>{var oC=pe(),aC=Al(),dC=Tl(),Ma=Qe(),rf=Fa(),lC=TypeError,Bl=Object.defineProperty,uC=Object.getOwnPropertyDescriptor,Dl="enumerable",_l="configurable",Nl="writable";nf.f=oC?dC?function(e,t,i){if(Ma(e),t=rf(t),Ma(i),typeof e=="function"&&t==="prototype"&&"value"in i&&Nl in i&&!i[Nl]){var n=uC(e,t);n&&n[Nl]&&(e[t]=i.value,i={configurable:_l in i?i[_l]:n[_l],enumerable:Dl in i?i[Dl]:n[Dl],writable:!1})}return Bl(e,t,i)}:Bl:function(e,t,i){if(Ma(e),t=rf(t),Ma(i),aC)try{return Bl(e,t,i)}catch{}if("get"in i||"set"in i)throw lC("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var Gr=h((VF,sf)=>{sf.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var La=h((zF,of)=>{var cC=pe(),mC=et(),pC=Gr();of.exports=cC?function(r,e,t){return mC.f(r,e,pC(1,t))}:function(r,e,t){return r[e]=t,r}});var Ua=h((JF,df)=>{var fC=gl(),gC=hl(),af=fC("keys");df.exports=function(r){return af[r]||(af[r]=gC(r))}});var Ba=h(($F,lf)=>{lf.exports={}});var Vr=h((KF,mf)=>{var hC=Fp(),cf=me(),vC=It(),yC=La(),ql=Ie(),Hl=Ca(),bC=Ua(),kC=Ba(),uf="Object already initialized",jl=cf.TypeError,SC=cf.WeakMap,Da,Wn,_a,PC=function(r){return _a(r)?Wn(r):Da(r,{})},CC=function(r){return function(e){var t;if(!vC(e)||(t=Wn(e)).type!==r)throw jl("Incompatible receiver, "+r+" required");return t}};hC||Hl.state?(Ve=Hl.state||(Hl.state=new SC),Ve.get=Ve.get,Ve.has=Ve.has,Ve.set=Ve.set,Da=function(r,e){if(Ve.has(r))throw jl(uf);return e.facade=r,Ve.set(r,e),e},Wn=function(r){return Ve.get(r)||{}},_a=function(r){return Ve.has(r)}):(nr=bC("state"),kC[nr]=!0,Da=function(r,e){if(ql(r,nr))throw jl(uf);return e.facade=r,yC(r,nr,e),e},Wn=function(r){return ql(r,nr)?r[nr]:{}},_a=function(r){return ql(r,nr)});var Ve,nr;mf.exports={set:Da,get:Wn,has:_a,enforce:PC,getterFor:CC}});var Wl=h(gf=>{"use strict";var pf={}.propertyIsEnumerable,ff=Object.getOwnPropertyDescriptor,IC=ff&&!pf.call({1:2},1);gf.f=IC?function(e){var t=ff(this,e);return!!t&&t.enumerable}:pf});var Vl=h((ZF,hf)=>{var wC=Z(),xC=ae(),AC=Aa(),Gl=Object,TC=wC("".split);hf.exports=xC(function(){return!Gl("z").propertyIsEnumerable(0)})?function(r){return AC(r)=="String"?TC(r,""):Gl(r)}:Gl});var zr=h((YF,vf)=>{var EC=Vl(),RC=wa();vf.exports=function(r){return EC(RC(r))}});var zl=h(bf=>{var OC=pe(),FC=Ge(),MC=Wl(),LC=Gr(),UC=zr(),BC=Fa(),DC=Ie(),_C=Al(),yf=Object.getOwnPropertyDescriptor;bf.f=OC?yf:function(e,t){if(e=UC(e),t=BC(t),_C)try{return yf(e,t)}catch{}if(DC(e,t))return LC(!FC(MC.f,e,t),e[t])}});var Kl=h((eM,Sf)=>{var Jl=pe(),NC=Ie(),kf=Function.prototype,qC=Jl&&Object.getOwnPropertyDescriptor,$l=NC(kf,"name"),HC=$l&&function(){}.name==="something",jC=$l&&(!Jl||Jl&&qC(kf,"name").configurable);Sf.exports={EXISTS:$l,PROPER:HC,CONFIGURABLE:jC}});var Zl=h((tM,Pf)=>{var WC=Z(),GC=Y(),Xl=Ca(),VC=WC(Function.toString);GC(Xl.inspectSource)||(Xl.inspectSource=function(r){return VC(r)});Pf.exports=Xl.inspectSource});var eu=h((rM,wf)=>{var Ql=Z(),zC=ae(),JC=Y(),Na=Ie(),Yl=pe(),$C=Kl().CONFIGURABLE,KC=Zl(),If=Vr(),XC=If.enforce,ZC=If.get,Cf=String,qa=Object.defineProperty,YC=Ql("".slice),QC=Ql("".replace),eI=Ql([].join),tI=Yl&&!zC(function(){return qa(function(){},"length",{value:8}).length!==8}),rI=String(String).split("String"),iI=wf.exports=function(r,e,t){YC(Cf(e),0,7)==="Symbol("&&(e="["+QC(Cf(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),t&&t.getter&&(e="get "+e),t&&t.setter&&(e="set "+e),(!Na(r,"name")||$C&&r.name!==e)&&(Yl?qa(r,"name",{value:e,configurable:!0}):r.name=e),tI&&t&&Na(t,"arity")&&r.length!==t.arity&&qa(r,"length",{value:t.arity});try{t&&Na(t,"constructor")&&t.constructor?Yl&&qa(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch{}var i=XC(r);return Na(i,"source")||(i.source=eI(rI,typeof e=="string"?e:"")),r};Function.prototype.toString=iI(function(){return JC(this)&&ZC(this).source||KC(this)},"toString")});var sr=h((iM,xf)=>{var nI=Y(),sI=et(),oI=eu(),aI=Pa();xf.exports=function(r,e,t,i){i||(i={});var n=i.enumerable,o=i.name!==void 0?i.name:e;if(nI(t)&&oI(t,o,i),i.global)n?r[e]=t:aI(e,t);else{try{i.unsafe?r[e]&&(n=!0):delete r[e]}catch{}n?r[e]=t:sI.f(r,e,{value:t,enumerable:!1,configurable:!i.nonConfigurable,writable:!i.nonWritable})}return r}});var tu=h((nM,Af)=>{var dI=ka(),lI=Math.max,uI=Math.min;Af.exports=function(r,e){var t=dI(r);return t<0?lI(t+e,0):uI(t,e)}});var Ef=h((sM,Tf)=>{var cI=ka(),mI=Math.min;Tf.exports=function(r){return r>0?mI(cI(r),9007199254740991):0}});var Ha=h((oM,Rf)=>{var pI=Ef();Rf.exports=function(r){return pI(r.length)}});var Mf=h((aM,Ff)=>{var fI=zr(),gI=tu(),hI=Ha(),Of=function(r){return function(e,t,i){var n=fI(e),o=hI(n),a=gI(i,o),c;if(r&&t!=t){for(;o>a;)if(c=n[a++],c!=c)return!0}else for(;o>a;a++)if((r||a in n)&&n[a]===t)return r||a||0;return!r&&-1}};Ff.exports={includes:Of(!0),indexOf:Of(!1)}});var iu=h((dM,Uf)=>{var vI=Z(),ru=Ie(),yI=zr(),bI=Mf().indexOf,kI=Ba(),Lf=vI([].push);Uf.exports=function(r,e){var t=yI(r),i=0,n=[],o;for(o in t)!ru(kI,o)&&ru(t,o)&&Lf(n,o);for(;e.length>i;)ru(t,o=e[i++])&&(~bI(n,o)||Lf(n,o));return n}});var ja=h((lM,Bf)=>{Bf.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var _f=h(Df=>{var SI=iu(),PI=ja(),CI=PI.concat("length","prototype");Df.f=Object.getOwnPropertyNames||function(e){return SI(e,CI)}});var nu=h(Nf=>{Nf.f=Object.getOwnPropertySymbols});var Hf=h((mM,qf)=>{var II=jn(),wI=Z(),xI=_f(),AI=nu(),TI=Qe(),EI=wI([].concat);qf.exports=II("Reflect","ownKeys")||function(e){var t=xI.f(TI(e)),i=AI.f;return i?EI(t,i(e)):t}});var Gf=h((pM,Wf)=>{var jf=Ie(),RI=Hf(),OI=zl(),FI=et();Wf.exports=function(r,e,t){for(var i=RI(e),n=FI.f,o=OI.f,a=0;a<i.length;a++){var c=i[a];!jf(r,c)&&!(t&&jf(t,c))&&n(r,c,o(e,c))}}});var zf=h((fM,Vf)=>{var MI=ae(),LI=Y(),UI=/#|\.prototype\./,Gn=function(r,e){var t=DI[BI(r)];return t==NI?!0:t==_I?!1:LI(e)?MI(e):!!e},BI=Gn.normalize=function(r){return String(r).replace(UI,".").toLowerCase()},DI=Gn.data={},_I=Gn.NATIVE="N",NI=Gn.POLYFILL="P";Vf.exports=Gn});var Vn=h((gM,Jf)=>{var su=me(),qI=zl().f,HI=La(),jI=sr(),WI=Pa(),GI=Gf(),VI=zf();Jf.exports=function(r,e){var t=r.target,i=r.global,n=r.stat,o,a,c,p,f,v;if(i?a=su:n?a=su[t]||WI(t,{}):a=(su[t]||{}).prototype,a)for(c in e){if(f=e[c],r.dontCallGetSet?(v=qI(a,c),p=v&&v.value):p=a[c],o=VI(i?c:t+(n?".":"#")+c,r.forced),!o&&p!==void 0){if(typeof f==typeof p)continue;GI(f,p)}(r.sham||p&&p.sham)&&HI(f,"sham",!0),jI(a,c,f,r)}}});var ou=h((hM,$f)=>{var zI=iu(),JI=ja();$f.exports=Object.keys||function(e){return zI(e,JI)}});var Xf=h(Kf=>{var $I=pe(),KI=Tl(),XI=et(),ZI=Qe(),YI=zr(),QI=ou();Kf.f=$I&&!KI?Object.defineProperties:function(e,t){ZI(e);for(var i=YI(t),n=QI(t),o=n.length,a=0,c;o>a;)XI.f(e,c=n[a++],i[c]);return e}});var Yf=h((yM,Zf)=>{var ew=jn();Zf.exports=ew("document","documentElement")});var zn=h((bM,sg)=>{var tw=Qe(),rw=Xf(),Qf=ja(),iw=Ba(),nw=Yf(),sw=xl(),ow=Ua(),eg=">",tg="<",du="prototype",lu="script",ig=ow("IE_PROTO"),au=function(){},ng=function(r){return tg+lu+eg+r+tg+"/"+lu+eg},rg=function(r){r.write(ng("")),r.close();var e=r.parentWindow.Object;return r=null,e},aw=function(){var r=sw("iframe"),e="java"+lu+":",t;return r.style.display="none",nw.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(ng("document.F=Object")),t.close(),t.F},Wa,Ga=function(){try{Wa=new ActiveXObject("htmlfile")}catch{}Ga=typeof document<"u"?document.domain&&Wa?rg(Wa):aw():rg(Wa);for(var r=Qf.length;r--;)delete Ga[du][Qf[r]];return Ga()};iw[ig]=!0;sg.exports=Object.create||function(e,t){var i;return e!==null?(au[du]=tw(e),i=new au,au[du]=null,i[ig]=e):i=Ga(),t===void 0?i:rw.f(i,t)}});var ag=h((kM,og)=>{var dw=ae();og.exports=!dw(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var cu=h((SM,lg)=>{var lw=Ie(),uw=Y(),cw=Nn(),mw=Ua(),pw=ag(),dg=mw("IE_PROTO"),uu=Object,fw=uu.prototype;lg.exports=pw?uu.getPrototypeOf:function(r){var e=cw(r);if(lw(e,dg))return e[dg];var t=e.constructor;return uw(t)&&e instanceof t?t.prototype:e instanceof uu?fw:null}});var gu=h((PM,mg)=>{"use strict";var gw=ae(),hw=Y(),vw=It(),yw=zn(),ug=cu(),bw=sr(),kw=we(),Sw=jr(),fu=kw("iterator"),cg=!1,ut,mu,pu;[].keys&&(pu=[].keys(),"next"in pu?(mu=ug(ug(pu)),mu!==Object.prototype&&(ut=mu)):cg=!0);var Pw=!vw(ut)||gw(function(){var r={};return ut[fu].call(r)!==r});Pw?ut={}:Sw&&(ut=yw(ut));hw(ut[fu])||bw(ut,fu,function(){return this});mg.exports={IteratorPrototype:ut,BUGGY_SAFARI_ITERATORS:cg}});var Jn=h((CM,fg)=>{var Cw=et().f,Iw=Ie(),ww=we(),pg=ww("toStringTag");fg.exports=function(r,e,t){r&&!t&&(r=r.prototype),r&&!Iw(r,pg)&&Cw(r,pg,{configurable:!0,value:e})}});var Jr=h((IM,gg)=>{gg.exports={}});var hu=h((wM,hg)=>{"use strict";var xw=gu().IteratorPrototype,Aw=zn(),Tw=Gr(),Ew=Jn(),Rw=Jr(),Ow=function(){return this};hg.exports=function(r,e,t,i){var n=e+" Iterator";return r.prototype=Aw(xw,{next:Tw(+!i,t)}),Ew(r,n,!1,!0),Rw[n]=Ow,r}});var yg=h((xM,vg)=>{var Fw=Y(),Mw=String,Lw=TypeError;vg.exports=function(r){if(typeof r=="object"||Fw(r))return r;throw Lw("Can't set "+Mw(r)+" as a prototype")}});var kg=h((AM,bg)=>{var Uw=Z(),Bw=Qe(),Dw=yg();bg.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=Uw(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),t(e,[]),r=e instanceof Array}catch{}return function(n,o){return Bw(n),Dw(o),r?t(n,o):n.__proto__=o,n}}():void 0)});var yu=h((TM,Rg)=>{"use strict";var _w=Vn(),Nw=Ge(),Va=jr(),Tg=Kl(),qw=Y(),Hw=hu(),Sg=cu(),Pg=kg(),jw=Jn(),Ww=La(),vu=sr(),Gw=we(),Cg=Jr(),Eg=gu(),Vw=Tg.PROPER,zw=Tg.CONFIGURABLE,Ig=Eg.IteratorPrototype,za=Eg.BUGGY_SAFARI_ITERATORS,$n=Gw("iterator"),wg="keys",Kn="values",xg="entries",Ag=function(){return this};Rg.exports=function(r,e,t,i,n,o,a){Hw(t,e,i);var c=function(M){if(M===n&&b)return b;if(!za&&M in v)return v[M];switch(M){case wg:return function(){return new t(this,M)};case Kn:return function(){return new t(this,M)};case xg:return function(){return new t(this,M)}}return function(){return new t(this)}},p=e+" Iterator",f=!1,v=r.prototype,m=v[$n]||v["@@iterator"]||n&&v[n],b=!za&&m||c(n),y=e=="Array"&&v.entries||m,C,I,A;if(y&&(C=Sg(y.call(new r)),C!==Object.prototype&&C.next&&(!Va&&Sg(C)!==Ig&&(Pg?Pg(C,Ig):qw(C[$n])||vu(C,$n,Ag)),jw(C,p,!0,!0),Va&&(Cg[p]=Ag))),Vw&&n==Kn&&m&&m.name!==Kn&&(!Va&&zw?Ww(v,"name",Kn):(f=!0,b=function(){return Nw(m,this)})),n)if(I={values:c(Kn),keys:o?b:c(wg),entries:c(xg)},a)for(A in I)(za||f||!(A in v))&&vu(v,A,I[A]);else _w({target:e,proto:!0,forced:za||f},I);return(!Va||a)&&v[$n]!==b&&vu(v,$n,b,{name:n}),Cg[e]=b,I}});var bu=h((EM,Og)=>{Og.exports=function(r,e){return{value:r,done:e}}});var Ug=h(()=>{"use strict";var Jw=Il().charAt,$w=Hn(),Mg=Vr(),Kw=yu(),Fg=bu(),Lg="String Iterator",Xw=Mg.set,Zw=Mg.getterFor(Lg);Kw(String,"String",function(r){Xw(this,{type:Lg,string:$w(r),index:0})},function(){var e=Zw(this),t=e.string,i=e.index,n;return i>=t.length?Fg(void 0,!0):(n=Jw(t,i),e.index+=n.length,Fg(n,!1))})});var ku=h((FM,Bg)=>{var Yw=ae(),Qw=we(),ex=jr(),tx=Qw("iterator");Bg.exports=!Yw(function(){var r=new URL("b?a=1&b=2&c=3","http://a"),e=r.searchParams,t="";return r.pathname="c%20d",e.forEach(function(i,n){e.delete("b"),t+=n+i}),ex&&!r.toJSON||!e.sort||r.href!=="http://a/c%20d?a=1&c=3"||e.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!e[tx]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("http://\u0442\u0435\u0441\u0442").host!=="xn--e1aybc"||new URL("http://a#\u0431").hash!=="#%D0%B1"||t!=="a1c3"||new URL("http://x",void 0).host!=="x"})});var _g=h((MM,Dg)=>{var rx=Aa(),ix=Z();Dg.exports=function(r){if(rx(r)==="Function")return ix(r)}});var Ja=h((LM,qg)=>{var Ng=_g(),nx=Ra(),sx=ba(),ox=Ng(Ng.bind);qg.exports=function(r,e){return nx(r),e===void 0?r:sx?ox(r,e):function(){return r.apply(e,arguments)}}});var Wg=h((UM,jg)=>{var Hg=eu(),ax=et();jg.exports=function(r,e,t){return t.get&&Hg(t.get,e,{getter:!0}),t.set&&Hg(t.set,e,{setter:!0}),ax.f(r,e,t)}});var Su=h((BM,Gg)=>{var dx=Rl(),lx=TypeError;Gg.exports=function(r,e){if(dx(e,r))return r;throw lx("Incorrect invocation")}});var $g=h((DM,Jg)=>{"use strict";var Vg=pe(),ux=Z(),cx=Ge(),mx=ae(),Pu=ou(),px=nu(),fx=Wl(),gx=Nn(),hx=Vl(),$r=Object.assign,zg=Object.defineProperty,vx=ux([].concat);Jg.exports=!$r||mx(function(){if(Vg&&$r({b:1},$r(zg({},"a",{enumerable:!0,get:function(){zg(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var r={},e={},t=Symbol(),i="abcdefghijklmnopqrst";return r[t]=7,i.split("").forEach(function(n){e[n]=n}),$r({},r)[t]!=7||Pu($r({},e)).join("")!=i})?function(e,t){for(var i=gx(e),n=arguments.length,o=1,a=px.f,c=fx.f;n>o;)for(var p=hx(arguments[o++]),f=a?vx(Pu(p),a(p)):Pu(p),v=f.length,m=0,b;v>m;)b=f[m++],(!Vg||cx(c,p,b))&&(i[b]=p[b]);return i}:$r});var Zg=h((_M,Xg)=>{var yx=Ge(),Kg=Qe(),bx=Oa();Xg.exports=function(r,e,t){var i,n;Kg(r);try{if(i=bx(r,"return"),!i){if(e==="throw")throw t;return t}i=yx(i,r)}catch(o){n=!0,i=o}if(e==="throw")throw t;if(n)throw i;return Kg(i),t}});var Qg=h((NM,Yg)=>{var kx=Qe(),Sx=Zg();Yg.exports=function(r,e,t,i){try{return i?e(kx(t)[0],t[1]):e(t)}catch(n){Sx(r,"throw",n)}}});var th=h((qM,eh)=>{var Px=we(),Cx=Jr(),Ix=Px("iterator"),wx=Array.prototype;eh.exports=function(r){return r!==void 0&&(Cx.Array===r||wx[Ix]===r)}});var ah=h((HM,oh)=>{var xx=Z(),Ax=ae(),rh=Y(),Tx=qn(),Ex=jn(),Rx=Zl(),ih=function(){},Ox=[],nh=Ex("Reflect","construct"),Cu=/^\s*(?:class|function)\b/,Fx=xx(Cu.exec),Mx=!Cu.exec(ih),Xn=function(e){if(!rh(e))return!1;try{return nh(ih,Ox,e),!0}catch{return!1}},sh=function(e){if(!rh(e))return!1;switch(Tx(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Mx||!!Fx(Cu,Rx(e))}catch{return!0}};sh.sham=!0;oh.exports=!nh||Ax(function(){var r;return Xn(Xn.call)||!Xn(Object)||!Xn(function(){r=!0})||r})?sh:Xn});var Iu=h((jM,dh)=>{"use strict";var Lx=Fa(),Ux=et(),Bx=Gr();dh.exports=function(r,e,t){var i=Lx(e);i in r?Ux.f(r,i,Bx(0,t)):r[i]=t}});var $a=h((WM,uh)=>{var Dx=qn(),lh=Oa(),_x=Ia(),Nx=Jr(),qx=we(),Hx=qx("iterator");uh.exports=function(r){if(!_x(r))return lh(r,Hx)||lh(r,"@@iterator")||Nx[Dx(r)]}});var wu=h((GM,ch)=>{var jx=Ge(),Wx=Ra(),Gx=Qe(),Vx=Fl(),zx=$a(),Jx=TypeError;ch.exports=function(r,e){var t=arguments.length<2?zx(r):e;if(Wx(t))return Gx(jx(t,r));throw Jx(Vx(r)+" is not iterable")}});var gh=h((VM,fh)=>{"use strict";var $x=Ja(),Kx=Ge(),Xx=Nn(),Zx=Qg(),Yx=th(),Qx=ah(),eA=Ha(),mh=Iu(),tA=wu(),rA=$a(),ph=Array;fh.exports=function(e){var t=Xx(e),i=Qx(this),n=arguments.length,o=n>1?arguments[1]:void 0,a=o!==void 0;a&&(o=$x(o,n>2?arguments[2]:void 0));var c=rA(t),p=0,f,v,m,b,y,C;if(c&&!(this===ph&&Yx(c)))for(b=tA(t,c),y=b.next,v=i?new this:[];!(m=Kx(y,b)).done;p++)C=a?Zx(b,o,[m.value,p],!0):m.value,mh(v,p,C);else for(f=eA(t),v=i?new this(f):ph(f);f>p;p++)C=a?o(t[p],p):t[p],mh(v,p,C);return v.length=p,v}});var xu=h((zM,vh)=>{var hh=tu(),iA=Ha(),nA=Iu(),sA=Array,oA=Math.max;vh.exports=function(r,e,t){for(var i=iA(r),n=hh(e,i),o=hh(t===void 0?i:t,i),a=sA(oA(o-n,0)),c=0;n<o;n++,c++)nA(a,c,r[n]);return a.length=c,a}});var xh=h((JM,wh)=>{var or=Z(),Au=2147483647,Zn=36,Ph=1,Ru=26,aA=38,dA=700,lA=72,uA=128,cA="-",mA=/[^\0-\u007E]/,Ch=/[.\u3002\uFF0E\uFF61]/g,yh="Overflow: input needs wider integers to process",Tu=Zn-Ph,bh=RangeError,pA=or(Ch.exec),Kr=Math.floor,Eu=String.fromCharCode,kh=or("".charCodeAt),Ih=or([].join),wt=or([].push),fA=or("".replace),gA=or("".split),hA=or("".toLowerCase),vA=function(r){for(var e=[],t=0,i=r.length;t<i;){var n=kh(r,t++);if(n>=55296&&n<=56319&&t<i){var o=kh(r,t++);(o&64512)==56320?wt(e,((n&1023)<<10)+(o&1023)+65536):(wt(e,n),t--)}else wt(e,n)}return e},Sh=function(r){return r+22+75*(r<26)},yA=function(r,e,t){var i=0;for(r=t?Kr(r/dA):r>>1,r+=Kr(r/e);r>Tu*Ru>>1;)r=Kr(r/Tu),i+=Zn;return Kr(i+(Tu+1)*r/(r+aA))},bA=function(r){var e=[];r=vA(r);var t=r.length,i=uA,n=0,o=lA,a,c;for(a=0;a<r.length;a++)c=r[a],c<128&&wt(e,Eu(c));var p=e.length,f=p;for(p&&wt(e,cA);f<t;){var v=Au;for(a=0;a<r.length;a++)c=r[a],c>=i&&c<v&&(v=c);var m=f+1;if(v-i>Kr((Au-n)/m))throw bh(yh);for(n+=(v-i)*m,i=v,a=0;a<r.length;a++){if(c=r[a],c<i&&++n>Au)throw bh(yh);if(c==i){for(var b=n,y=Zn;;){var C=y<=o?Ph:y>=o+Ru?Ru:y-o;if(b<C)break;var I=b-C,A=Zn-C;wt(e,Eu(Sh(C+I%A))),b=Kr(I/A),y+=Zn}wt(e,Eu(Sh(b))),o=yA(n,m,f==p),n=0,f++}}n++,i++}return Ih(e,"")};wh.exports=function(r){var e=[],t=gA(fA(hA(r),Ch,"."),"."),i,n;for(i=0;i<t.length;i++)n=t[i],wt(e,pA(mA,n)?"xn--"+bA(n):n);return Ih(e,".")}});var Ou=h(($M,Ah)=>{var kA=TypeError;Ah.exports=function(r,e){if(r<e)throw kA("Not enough arguments");return r}});var Eh=h((KM,Th)=>{var SA=we(),PA=zn(),CA=et().f,Fu=SA("unscopables"),Mu=Array.prototype;Mu[Fu]==null&&CA(Mu,Fu,{configurable:!0,value:PA(null)});Th.exports=function(r){Mu[Fu][r]=!0}});var Uh=h((XM,Lh)=>{"use strict";var IA=zr(),Lu=Eh(),Rh=Jr(),Fh=Vr(),wA=et().f,xA=yu(),Ka=bu(),AA=jr(),TA=pe(),Mh="Array Iterator",EA=Fh.set,RA=Fh.getterFor(Mh);Lh.exports=xA(Array,"Array",function(r,e){EA(this,{type:Mh,target:IA(r),index:0,kind:e})},function(){var r=RA(this),e=r.target,t=r.kind,i=r.index++;return!e||i>=e.length?(r.target=void 0,Ka(void 0,!0)):t=="keys"?Ka(i,!1):t=="values"?Ka(e[i],!1):Ka([i,e[i]],!1)},"values");var Oh=Rh.Arguments=Rh.Array;Lu("keys");Lu("values");Lu("entries");if(!AA&&TA&&Oh.name!=="values")try{wA(Oh,"name",{value:"values"})}catch{}});var Dh=h((ZM,Bh)=>{var OA=sr();Bh.exports=function(r,e,t){for(var i in e)OA(r,i,e[i],t);return r}});var qh=h((YM,Nh)=>{var _h=xu(),FA=Math.floor,Uu=function(r,e){var t=r.length,i=FA(t/2);return t<8?MA(r,e):LA(r,Uu(_h(r,0,i),e),Uu(_h(r,i),e),e)},MA=function(r,e){for(var t=r.length,i=1,n,o;i<t;){for(o=i,n=r[i];o&&e(r[o-1],n)>0;)r[o]=r[--o];o!==i++&&(r[o]=n)}return r},LA=function(r,e,t,i){for(var n=e.length,o=t.length,a=0,c=0;a<n||c<o;)r[a+c]=a<n&&c<o?i(e[a],t[c])<=0?e[a++]:t[c++]:a<n?e[a++]:t[c++];return r};Nh.exports=Uu});var Vu=h((QM,ov)=>{"use strict";Uh();var qu=Vn(),Zr=me(),Xa=Ge(),tt=Z(),UA=pe(),Yh=ku(),Qh=sr(),BA=Dh(),DA=Jn(),_A=hu(),Wu=Vr(),ev=Su(),Bu=Y(),NA=Ie(),qA=Ja(),HA=qn(),jA=Qe(),tv=It(),fe=Hn(),WA=zn(),Hh=Gr(),Hu=wu(),GA=$a(),Xr=Ou(),VA=we(),zA=qh(),JA=VA("iterator"),es="URLSearchParams",rv=es+"Iterator",iv=Wu.set,ze=Wu.getterFor(es),$A=Wu.getterFor(rv),KA=Object.getOwnPropertyDescriptor,Gu=function(r){if(!UA)return Zr[r];var e=KA(Zr,r);return e&&e.value},jh=Gu("fetch"),Ya=Gu("Request"),Yn=Gu("Headers"),Du=Ya&&Ya.prototype,Wh=Yn&&Yn.prototype,XA=Zr.RegExp,ZA=Zr.TypeError,nv=Zr.decodeURIComponent,YA=Zr.encodeURIComponent,QA=tt("".charAt),Gh=tt([].join),ar=tt([].push),ju=tt("".replace),eT=tt([].shift),Vh=tt([].splice),zh=tt("".split),tT=tt("".slice),rT=/\+/g,Jh=Array(4),iT=function(r){return Jh[r-1]||(Jh[r-1]=XA("((?:%[\\da-f]{2}){"+r+"})","gi"))},nT=function(r){try{return nv(r)}catch{return r}},$h=function(r){var e=ju(r,rT," "),t=4;try{return nv(e)}catch{for(;t;)e=ju(e,iT(t--),nT);return e}},sT=/[!'()~]|%20/g,oT={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},aT=function(r){return oT[r]},Kh=function(r){return ju(YA(r),sT,aT)},_u=_A(function(e,t){iv(this,{type:rv,iterator:Hu(ze(e).entries),kind:t})},"Iterator",function(){var e=$A(this),t=e.kind,i=e.iterator.next(),n=i.value;return i.done||(i.value=t==="keys"?n.key:t==="values"?n.value:[n.key,n.value]),i},!0),sv=function(r){this.entries=[],this.url=null,r!==void 0&&(tv(r)?this.parseObject(r):this.parseQuery(typeof r=="string"?QA(r,0)==="?"?tT(r,1):r:fe(r)))};sv.prototype={type:es,bindURL:function(r){this.url=r,this.update()},parseObject:function(r){var e=GA(r),t,i,n,o,a,c,p;if(e)for(t=Hu(r,e),i=t.next;!(n=Xa(i,t)).done;){if(o=Hu(jA(n.value)),a=o.next,(c=Xa(a,o)).done||(p=Xa(a,o)).done||!Xa(a,o).done)throw ZA("Expected sequence with length 2");ar(this.entries,{key:fe(c.value),value:fe(p.value)})}else for(var f in r)NA(r,f)&&ar(this.entries,{key:f,value:fe(r[f])})},parseQuery:function(r){if(r)for(var e=zh(r,"&"),t=0,i,n;t<e.length;)i=e[t++],i.length&&(n=zh(i,"="),ar(this.entries,{key:$h(eT(n)),value:$h(Gh(n,"="))}))},serialize:function(){for(var r=this.entries,e=[],t=0,i;t<r.length;)i=r[t++],ar(e,Kh(i.key)+"="+Kh(i.value));return Gh(e,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var Qa=function(){ev(this,Qn);var e=arguments.length>0?arguments[0]:void 0;iv(this,new sv(e))},Qn=Qa.prototype;BA(Qn,{append:function(e,t){Xr(arguments.length,2);var i=ze(this);ar(i.entries,{key:fe(e),value:fe(t)}),i.updateURL()},delete:function(r){Xr(arguments.length,1);for(var e=ze(this),t=e.entries,i=fe(r),n=0;n<t.length;)t[n].key===i?Vh(t,n,1):n++;e.updateURL()},get:function(e){Xr(arguments.length,1);for(var t=ze(this).entries,i=fe(e),n=0;n<t.length;n++)if(t[n].key===i)return t[n].value;return null},getAll:function(e){Xr(arguments.length,1);for(var t=ze(this).entries,i=fe(e),n=[],o=0;o<t.length;o++)t[o].key===i&&ar(n,t[o].value);return n},has:function(e){Xr(arguments.length,1);for(var t=ze(this).entries,i=fe(e),n=0;n<t.length;)if(t[n++].key===i)return!0;return!1},set:function(e,t){Xr(arguments.length,1);for(var i=ze(this),n=i.entries,o=!1,a=fe(e),c=fe(t),p=0,f;p<n.length;p++)f=n[p],f.key===a&&(o?Vh(n,p--,1):(o=!0,f.value=c));o||ar(n,{key:a,value:c}),i.updateURL()},sort:function(){var e=ze(this);zA(e.entries,function(t,i){return t.key>i.key?1:-1}),e.updateURL()},forEach:function(e){for(var t=ze(this).entries,i=qA(e,arguments.length>1?arguments[1]:void 0),n=0,o;n<t.length;)o=t[n++],i(o.value,o.key,this)},keys:function(){return new _u(this,"keys")},values:function(){return new _u(this,"values")},entries:function(){return new _u(this,"entries")}},{enumerable:!0});Qh(Qn,JA,Qn.entries,{name:"entries"});Qh(Qn,"toString",function(){return ze(this).serialize()},{enumerable:!0});DA(Qa,es);qu({global:!0,constructor:!0,forced:!Yh},{URLSearchParams:Qa});!Yh&&Bu(Yn)&&(Xh=tt(Wh.has),Zh=tt(Wh.set),Nu=function(r){if(tv(r)){var e=r.body,t;if(HA(e)===es)return t=r.headers?new Yn(r.headers):new Yn,Xh(t,"content-type")||Zh(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),WA(r,{body:Hh(0,fe(e)),headers:Hh(0,t)})}return r},Bu(jh)&&qu({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return jh(e,arguments.length>1?Nu(arguments[1]):{})}}),Bu(Ya)&&(Za=function(e){return ev(this,Du),new Ya(e,arguments.length>1?Nu(arguments[1]):{})},Du.constructor=Za,Za.prototype=Du,qu({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Za})));var Xh,Zh,Nu,Za;ov.exports={URLSearchParams:Qa,getState:ze}});var wv=h(()=>{"use strict";Ug();var dT=Vn(),ac=pe(),lT=ku(),dc=me(),av=Ja(),Re=Z(),nd=sr(),xe=Wg(),uT=Su(),nc=Ie(),lc=$g(),Yr=gh(),Je=xu(),cT=Il().codeAt,mT=xh(),mt=Hn(),pT=Jn(),fT=Ou(),bv=Vu(),kv=Vr(),gT=kv.set,sd=kv.getterFor("URL"),hT=bv.URLSearchParams,vT=bv.getState,ts=dc.URL,sc=dc.TypeError,od=dc.parseInt,yT=Math.floor,dv=Math.pow,Ee=Re("".charAt),$e=Re(/./.exec),is=Re([].join),bT=Re(1 .toString),kT=Re([].pop),ei=Re([].push),lv=Re("".replace),ST=Re([].shift),PT=Re("".split),ss=Re("".slice),ad=Re("".toLowerCase),CT=Re([].unshift),IT="Invalid authority",zu="Invalid scheme",dr="Invalid host",uv="Invalid port",Sv=/[a-z]/i,wT=/[\d+-.a-z]/i,oc=/\d/,xT=/^0x/i,AT=/^[0-7]+$/,TT=/^\d+$/,Pv=/^[\da-f]+$/i,ET=/[\0\t\n\r #%/:<>?@[\\\]^|]/,RT=/[\0\t\n\r #/:<>?@[\\\]^|]/,OT=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,FT=/[\t\n\r]/g,Ae,MT=function(r){var e=PT(r,"."),t,i,n,o,a,c,p;if(e.length&&e[e.length-1]==""&&e.length--,t=e.length,t>4)return r;for(i=[],n=0;n<t;n++){if(o=e[n],o=="")return r;if(a=10,o.length>1&&Ee(o,0)=="0"&&(a=$e(xT,o)?16:8,o=ss(o,a==8?1:2)),o==="")c=0;else{if(!$e(a==10?TT:a==8?AT:Pv,o))return r;c=od(o,a)}ei(i,c)}for(n=0;n<t;n++)if(c=i[n],n==t-1){if(c>=dv(256,5-t))return null}else if(c>255)return null;for(p=kT(i),n=0;n<i.length;n++)p+=i[n]*dv(256,3-n);return p},LT=function(r){var e=[0,0,0,0,0,0,0,0],t=0,i=null,n=0,o,a,c,p,f,v,m,b=function(){return Ee(r,n)};if(b()==":"){if(Ee(r,1)!=":")return;n+=2,t++,i=t}for(;b();){if(t==8)return;if(b()==":"){if(i!==null)return;n++,t++,i=t;continue}for(o=a=0;a<4&&$e(Pv,b());)o=o*16+od(b(),16),n++,a++;if(b()=="."){if(a==0||(n-=a,t>6))return;for(c=0;b();){if(p=null,c>0)if(b()=="."&&c<4)n++;else return;if(!$e(oc,b()))return;for(;$e(oc,b());){if(f=od(b(),10),p===null)p=f;else{if(p==0)return;p=p*10+f}if(p>255)return;n++}e[t]=e[t]*256+p,c++,(c==2||c==4)&&t++}if(c!=4)return;break}else if(b()==":"){if(n++,!b())return}else if(b())return;e[t++]=o}if(i!==null)for(v=t-i,t=7;t!=0&&v>0;)m=e[t],e[t--]=e[i+v-1],e[i+--v]=m;else if(t!=8)return;return e},UT=function(r){for(var e=null,t=1,i=null,n=0,o=0;o<8;o++)r[o]!==0?(n>t&&(e=i,t=n),i=null,n=0):(i===null&&(i=o),++n);return n>t&&(e=i,t=n),e},rs=function(r){var e,t,i,n;if(typeof r=="number"){for(e=[],t=0;t<4;t++)CT(e,r%256),r=yT(r/256);return is(e,".")}else if(typeof r=="object"){for(e="",i=UT(r),t=0;t<8;t++)n&&r[t]===0||(n&&(n=!1),i===t?(e+=t?":":"::",n=!0):(e+=bT(r[t],16),t<7&&(e+=":")));return"["+e+"]"}return r},id={},Cv=lc({},id,{" ":1,'"':1,"<":1,">":1,"`":1}),Iv=lc({},Cv,{"#":1,"?":1,"{":1,"}":1}),Ju=lc({},Iv,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),xt=function(r,e){var t=cT(r,0);return t>32&&t<127&&!nc(e,r)?r:encodeURIComponent(r)},ed={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ns=function(r,e){var t;return r.length==2&&$e(Sv,Ee(r,0))&&((t=Ee(r,1))==":"||!e&&t=="|")},cv=function(r){var e;return r.length>1&&ns(ss(r,0,2))&&(r.length==2||(e=Ee(r,2))==="/"||e==="\\"||e==="?"||e==="#")},BT=function(r){return r==="."||ad(r)==="%2e"},DT=function(r){return r=ad(r),r===".."||r==="%2e."||r===".%2e"||r==="%2e%2e"},$u={},mv={},Ku={},pv={},fv={},Xu={},gv={},hv={},td={},rd={},Zu={},Yu={},Qu={},ec={},vv={},tc={},Qr={},rt={},yv={},lr={},ct={},uc=function(r,e,t){var i=mt(r),n,o,a;if(e){if(o=this.parse(i),o)throw sc(o);this.searchParams=null}else{if(t!==void 0&&(n=new uc(t,!0)),o=this.parse(i,null,n),o)throw sc(o);a=vT(new hT),a.bindURL(this),this.searchParams=a}};uc.prototype={type:"URL",parse:function(r,e,t){var i=this,n=e||$u,o=0,a="",c=!1,p=!1,f=!1,v,m,b,y;for(r=mt(r),e||(i.scheme="",i.username="",i.password="",i.host=null,i.port=null,i.path=[],i.query=null,i.fragment=null,i.cannotBeABaseURL=!1,r=lv(r,OT,"")),r=lv(r,FT,""),v=Yr(r);o<=v.length;){switch(m=v[o],n){case $u:if(m&&$e(Sv,m))a+=ad(m),n=mv;else{if(e)return zu;n=Ku;continue}break;case mv:if(m&&($e(wT,m)||m=="+"||m=="-"||m=="."))a+=ad(m);else if(m==":"){if(e&&(i.isSpecial()!=nc(ed,a)||a=="file"&&(i.includesCredentials()||i.port!==null)||i.scheme=="file"&&!i.host))return;if(i.scheme=a,e){i.isSpecial()&&ed[i.scheme]==i.port&&(i.port=null);return}a="",i.scheme=="file"?n=ec:i.isSpecial()&&t&&t.scheme==i.scheme?n=pv:i.isSpecial()?n=hv:v[o+1]=="/"?(n=fv,o++):(i.cannotBeABaseURL=!0,ei(i.path,""),n=yv)}else{if(e)return zu;a="",n=Ku,o=0;continue}break;case Ku:if(!t||t.cannotBeABaseURL&&m!="#")return zu;if(t.cannotBeABaseURL&&m=="#"){i.scheme=t.scheme,i.path=Je(t.path),i.query=t.query,i.fragment="",i.cannotBeABaseURL=!0,n=ct;break}n=t.scheme=="file"?ec:Xu;continue;case pv:if(m=="/"&&v[o+1]=="/")n=td,o++;else{n=Xu;continue}break;case fv:if(m=="/"){n=rd;break}else{n=rt;continue}case Xu:if(i.scheme=t.scheme,m==Ae)i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Je(t.path),i.query=t.query;else if(m=="/"||m=="\\"&&i.isSpecial())n=gv;else if(m=="?")i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Je(t.path),i.query="",n=lr;else if(m=="#")i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Je(t.path),i.query=t.query,i.fragment="",n=ct;else{i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,i.path=Je(t.path),i.path.length--,n=rt;continue}break;case gv:if(i.isSpecial()&&(m=="/"||m=="\\"))n=td;else if(m=="/")n=rd;else{i.username=t.username,i.password=t.password,i.host=t.host,i.port=t.port,n=rt;continue}break;case hv:if(n=td,m!="/"||Ee(a,o+1)!="/")continue;o++;break;case td:if(m!="/"&&m!="\\"){n=rd;continue}break;case rd:if(m=="@"){c&&(a="%40"+a),c=!0,b=Yr(a);for(var C=0;C<b.length;C++){var I=b[C];if(I==":"&&!f){f=!0;continue}var A=xt(I,Ju);f?i.password+=A:i.username+=A}a=""}else if(m==Ae||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(c&&a=="")return IT;o-=Yr(a).length+1,a="",n=Zu}else a+=m;break;case Zu:case Yu:if(e&&i.scheme=="file"){n=tc;continue}else if(m==":"&&!p){if(a=="")return dr;if(y=i.parseHost(a),y)return y;if(a="",n=Qu,e==Yu)return}else if(m==Ae||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()){if(i.isSpecial()&&a=="")return dr;if(e&&a==""&&(i.includesCredentials()||i.port!==null))return;if(y=i.parseHost(a),y)return y;if(a="",n=Qr,e)return;continue}else m=="["?p=!0:m=="]"&&(p=!1),a+=m;break;case Qu:if($e(oc,m))a+=m;else if(m==Ae||m=="/"||m=="?"||m=="#"||m=="\\"&&i.isSpecial()||e){if(a!=""){var M=od(a,10);if(M>65535)return uv;i.port=i.isSpecial()&&M===ed[i.scheme]?null:M,a=""}if(e)return;n=Qr;continue}else return uv;break;case ec:if(i.scheme="file",m=="/"||m=="\\")n=vv;else if(t&&t.scheme=="file")if(m==Ae)i.host=t.host,i.path=Je(t.path),i.query=t.query;else if(m=="?")i.host=t.host,i.path=Je(t.path),i.query="",n=lr;else if(m=="#")i.host=t.host,i.path=Je(t.path),i.query=t.query,i.fragment="",n=ct;else{cv(is(Je(v,o),""))||(i.host=t.host,i.path=Je(t.path),i.shortenPath()),n=rt;continue}else{n=rt;continue}break;case vv:if(m=="/"||m=="\\"){n=tc;break}t&&t.scheme=="file"&&!cv(is(Je(v,o),""))&&(ns(t.path[0],!0)?ei(i.path,t.path[0]):i.host=t.host),n=rt;continue;case tc:if(m==Ae||m=="/"||m=="\\"||m=="?"||m=="#"){if(!e&&ns(a))n=rt;else if(a==""){if(i.host="",e)return;n=Qr}else{if(y=i.parseHost(a),y)return y;if(i.host=="localhost"&&(i.host=""),e)return;a="",n=Qr}continue}else a+=m;break;case Qr:if(i.isSpecial()){if(n=rt,m!="/"&&m!="\\")continue}else if(!e&&m=="?")i.query="",n=lr;else if(!e&&m=="#")i.fragment="",n=ct;else if(m!=Ae&&(n=rt,m!="/"))continue;break;case rt:if(m==Ae||m=="/"||m=="\\"&&i.isSpecial()||!e&&(m=="?"||m=="#")){if(DT(a)?(i.shortenPath(),m!="/"&&!(m=="\\"&&i.isSpecial())&&ei(i.path,"")):BT(a)?m!="/"&&!(m=="\\"&&i.isSpecial())&&ei(i.path,""):(i.scheme=="file"&&!i.path.length&&ns(a)&&(i.host&&(i.host=""),a=Ee(a,0)+":"),ei(i.path,a)),a="",i.scheme=="file"&&(m==Ae||m=="?"||m=="#"))for(;i.path.length>1&&i.path[0]==="";)ST(i.path);m=="?"?(i.query="",n=lr):m=="#"&&(i.fragment="",n=ct)}else a+=xt(m,Iv);break;case yv:m=="?"?(i.query="",n=lr):m=="#"?(i.fragment="",n=ct):m!=Ae&&(i.path[0]+=xt(m,id));break;case lr:!e&&m=="#"?(i.fragment="",n=ct):m!=Ae&&(m=="'"&&i.isSpecial()?i.query+="%27":m=="#"?i.query+="%23":i.query+=xt(m,id));break;case ct:m!=Ae&&(i.fragment+=xt(m,Cv));break}o++}},parseHost:function(r){var e,t,i;if(Ee(r,0)=="["){if(Ee(r,r.length-1)!="]"||(e=LT(ss(r,1,-1)),!e))return dr;this.host=e}else if(this.isSpecial()){if(r=mT(r),$e(ET,r)||(e=MT(r),e===null))return dr;this.host=e}else{if($e(RT,r))return dr;for(e="",t=Yr(r),i=0;i<t.length;i++)e+=xt(t[i],id);this.host=e}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||this.scheme=="file"},includesCredentials:function(){return this.username!=""||this.password!=""},isSpecial:function(){return nc(ed,this.scheme)},shortenPath:function(){var r=this.path,e=r.length;e&&(this.scheme!="file"||e!=1||!ns(r[0],!0))&&r.length--},serialize:function(){var r=this,e=r.scheme,t=r.username,i=r.password,n=r.host,o=r.port,a=r.path,c=r.query,p=r.fragment,f=e+":";return n!==null?(f+="//",r.includesCredentials()&&(f+=t+(i?":"+i:"")+"@"),f+=rs(n),o!==null&&(f+=":"+o)):e=="file"&&(f+="//"),f+=r.cannotBeABaseURL?a[0]:a.length?"/"+is(a,"/"):"",c!==null&&(f+="?"+c),p!==null&&(f+="#"+p),f},setHref:function(r){var e=this.parse(r);if(e)throw sc(e);this.searchParams.update()},getOrigin:function(){var r=this.scheme,e=this.port;if(r=="blob")try{return new ti(r.path[0]).origin}catch{return"null"}return r=="file"||!this.isSpecial()?"null":r+"://"+rs(this.host)+(e!==null?":"+e:"")},getProtocol:function(){return this.scheme+":"},setProtocol:function(r){this.parse(mt(r)+":",$u)},getUsername:function(){return this.username},setUsername:function(r){var e=Yr(mt(r));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var t=0;t<e.length;t++)this.username+=xt(e[t],Ju)}},getPassword:function(){return this.password},setPassword:function(r){var e=Yr(mt(r));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var t=0;t<e.length;t++)this.password+=xt(e[t],Ju)}},getHost:function(){var r=this.host,e=this.port;return r===null?"":e===null?rs(r):rs(r)+":"+e},setHost:function(r){this.cannotBeABaseURL||this.parse(r,Zu)},getHostname:function(){var r=this.host;return r===null?"":rs(r)},setHostname:function(r){this.cannotBeABaseURL||this.parse(r,Yu)},getPort:function(){var r=this.port;return r===null?"":mt(r)},setPort:function(r){this.cannotHaveUsernamePasswordPort()||(r=mt(r),r==""?this.port=null:this.parse(r,Qu))},getPathname:function(){var r=this.path;return this.cannotBeABaseURL?r[0]:r.length?"/"+is(r,"/"):""},setPathname:function(r){this.cannotBeABaseURL||(this.path=[],this.parse(r,Qr))},getSearch:function(){var r=this.query;return r?"?"+r:""},setSearch:function(r){r=mt(r),r==""?this.query=null:(Ee(r,0)=="?"&&(r=ss(r,1)),this.query="",this.parse(r,lr)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var r=this.fragment;return r?"#"+r:""},setHash:function(r){if(r=mt(r),r==""){this.fragment=null;return}Ee(r,0)=="#"&&(r=ss(r,1)),this.fragment="",this.parse(r,ct)},update:function(){this.query=this.searchParams.serialize()||null}};var ti=function(e){var t=uT(this,re),i=fT(arguments.length,1)>1?arguments[1]:void 0,n=gT(t,new uc(e,!1,i));ac||(t.href=n.serialize(),t.origin=n.getOrigin(),t.protocol=n.getProtocol(),t.username=n.getUsername(),t.password=n.getPassword(),t.host=n.getHost(),t.hostname=n.getHostname(),t.port=n.getPort(),t.pathname=n.getPathname(),t.search=n.getSearch(),t.searchParams=n.getSearchParams(),t.hash=n.getHash())},re=ti.prototype,Te=function(r,e){return{get:function(){return sd(this)[r]()},set:e&&function(t){return sd(this)[e](t)},configurable:!0,enumerable:!0}};ac&&(xe(re,"href",Te("serialize","setHref")),xe(re,"origin",Te("getOrigin")),xe(re,"protocol",Te("getProtocol","setProtocol")),xe(re,"username",Te("getUsername","setUsername")),xe(re,"password",Te("getPassword","setPassword")),xe(re,"host",Te("getHost","setHost")),xe(re,"hostname",Te("getHostname","setHostname")),xe(re,"port",Te("getPort","setPort")),xe(re,"pathname",Te("getPathname","setPathname")),xe(re,"search",Te("getSearch","setSearch")),xe(re,"searchParams",Te("getSearchParams")),xe(re,"hash",Te("getHash","setHash")));nd(re,"toJSON",function(){return sd(this).serialize()},{enumerable:!0});nd(re,"toString",function(){return sd(this).serialize()},{enumerable:!0});ts&&(rc=ts.createObjectURL,ic=ts.revokeObjectURL,rc&&nd(ti,"createObjectURL",av(rc,ts)),ic&&nd(ti,"revokeObjectURL",av(ic,ts)));var rc,ic;pT(ti,"URL");dT({global:!0,constructor:!0,forced:!lT,sham:!ac},{URL:ti})});var xv=h(()=>{wv()});var Av=h(()=>{"use strict";var _T=Vn(),NT=Ge();_T({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return NT(URL.prototype.toString,this)}})});var Tv=h(()=>{Vu()});var Rv=h((dL,Ev)=>{var qT=me();Ev.exports=qT});var Fv=h((lL,Ov)=>{xv();Av();Tv();var HT=Rv();Ov.exports=HT.URL});var _c=h((MD,Hy)=>{var tE=Object.prototype.toString;Hy.exports=function(e){if(e===void 0)return"undefined";if(e===null)return"null";var t=typeof e;if(t==="boolean")return"boolean";if(t==="string")return"string";if(t==="number")return"number";if(t==="symbol")return"symbol";if(t==="function")return oE(e)?"generatorfunction":"function";if(rE(e))return"array";if(lE(e))return"buffer";if(dE(e))return"arguments";if(nE(e))return"date";if(iE(e))return"error";if(sE(e))return"regexp";switch(qy(e)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(aE(e))return"generator";switch(t=tE.call(e),t){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return t.slice(8,-1).toLowerCase().replace(/\s/g,"")};function qy(r){return typeof r.constructor=="function"?r.constructor.name:null}function rE(r){return Array.isArray?Array.isArray(r):r instanceof Array}function iE(r){return r instanceof Error||typeof r.message=="string"&&r.constructor&&typeof r.constructor.stackTraceLimit=="number"}function nE(r){return r instanceof Date?!0:typeof r.toDateString=="function"&&typeof r.getDate=="function"&&typeof r.setDate=="function"}function sE(r){return r instanceof RegExp?!0:typeof r.flags=="string"&&typeof r.ignoreCase=="boolean"&&typeof r.multiline=="boolean"&&typeof r.global=="boolean"}function oE(r,e){return qy(r)==="GeneratorFunction"}function aE(r){return typeof r.throw=="function"&&typeof r.return=="function"&&typeof r.next=="function"}function dE(r){try{if(typeof r.length=="number"&&typeof r.callee=="function")return!0}catch(e){if(e.message.indexOf("callee")!==-1)return!0}return!1}function lE(r){return r.constructor&&typeof r.constructor.isBuffer=="function"?r.constructor.isBuffer(r):!1}});var Gy=h((LD,Wy)=>{"use strict";var jy=Symbol.prototype.valueOf,uE=_c();function cE(r,e){switch(uE(r)){case"array":return r.slice();case"object":return Object.assign({},r);case"date":return new r.constructor(Number(r));case"map":return new Map(r);case"set":return new Set(r);case"buffer":return gE(r);case"symbol":return hE(r);case"arraybuffer":return pE(r);case"float32array":case"float64array":case"int16array":case"int32array":case"int8array":case"uint16array":case"uint32array":case"uint8clampedarray":case"uint8array":return fE(r);case"regexp":return mE(r);case"error":return Object.create(r);default:return r}}function mE(r){let e=r.flags!==void 0?r.flags:/\w+$/.exec(r)||void 0,t=new r.constructor(r.source,e);return t.lastIndex=r.lastIndex,t}function pE(r){let e=new r.constructor(r.byteLength);return new Uint8Array(e).set(new Uint8Array(r)),e}function fE(r,e){return new r.constructor(r.buffer,r.byteOffset,r.length)}function gE(r){let e=r.length,t=Buffer.allocUnsafe?Buffer.allocUnsafe(e):Buffer.from(e);return r.copy(t),t}function hE(r){return jy?Object(jy.call(r)):{}}Wy.exports=cE});var zy=h((UD,Vy)=>{"use strict";Vy.exports=function(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}});var Ky=h((BD,$y)=>{"use strict";var vE=zy();function Jy(r){return vE(r)===!0&&Object.prototype.toString.call(r)==="[object Object]"}$y.exports=function(e){var t,i;return!(Jy(e)===!1||(t=e.constructor,typeof t!="function")||(i=t.prototype,Jy(i)===!1)||i.hasOwnProperty("isPrototypeOf")===!1)}});var Zy=h((DD,Xy)=>{"use strict";var yE=Gy(),bE=_c(),kE=Ky();function Nc(r,e){switch(bE(r)){case"object":return SE(r,e);case"array":return PE(r,e);default:return yE(r)}}function SE(r,e){if(typeof e=="function")return e(r);if(e||kE(r)){let t=new r.constructor;for(let i in r)t[i]=Nc(r[i],e);return t}return r}function PE(r,e){let t=new r.constructor(r.length);for(let i=0;i<r.length;i++)t[i]=Nc(r[i],e);return t}Xy.exports=Nc});var Zc=h((vs,Ai)=>{var CE=200,Xc="__lodash_hash_undefined__",Rd=1,lb=2,ub=9007199254740991,Cd="[object Arguments]",Wc="[object Array]",IE="[object AsyncFunction]",cb="[object Boolean]",mb="[object Date]",pb="[object Error]",fb="[object Function]",wE="[object GeneratorFunction]",Id="[object Map]",gb="[object Number]",xE="[object Null]",xi="[object Object]",Yy="[object Promise]",AE="[object Proxy]",hb="[object RegExp]",wd="[object Set]",vb="[object String]",TE="[object Symbol]",EE="[object Undefined]",Gc="[object WeakMap]",yb="[object ArrayBuffer]",xd="[object DataView]",RE="[object Float32Array]",OE="[object Float64Array]",FE="[object Int8Array]",ME="[object Int16Array]",LE="[object Int32Array]",UE="[object Uint8Array]",BE="[object Uint8ClampedArray]",DE="[object Uint16Array]",_E="[object Uint32Array]",NE=/[\\^$.*+?()[\]{}|]/g,qE=/^\[object .+?Constructor\]$/,HE=/^(?:0|[1-9]\d*)$/,j={};j[RE]=j[OE]=j[FE]=j[ME]=j[LE]=j[UE]=j[BE]=j[DE]=j[_E]=!0;j[Cd]=j[Wc]=j[yb]=j[cb]=j[xd]=j[mb]=j[pb]=j[fb]=j[Id]=j[gb]=j[xi]=j[hb]=j[wd]=j[vb]=j[Gc]=!1;var bb=typeof global=="object"&&global&&global.Object===Object&&global,jE=typeof self=="object"&&self&&self.Object===Object&&self,ht=bb||jE||Function("return this")(),kb=typeof vs=="object"&&vs&&!vs.nodeType&&vs,Qy=kb&&typeof Ai=="object"&&Ai&&!Ai.nodeType&&Ai,Sb=Qy&&Qy.exports===kb,qc=Sb&&bb.process,eb=function(){try{return qc&&qc.binding&&qc.binding("util")}catch{}}(),tb=eb&&eb.isTypedArray;function WE(r,e){for(var t=-1,i=r==null?0:r.length,n=0,o=[];++t<i;){var a=r[t];e(a,t,r)&&(o[n++]=a)}return o}function GE(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}function VE(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}function zE(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}function JE(r){return function(e){return r(e)}}function $E(r,e){return r.has(e)}function KE(r,e){return r?.[e]}function XE(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}function ZE(r,e){return function(t){return r(e(t))}}function YE(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}var QE=Array.prototype,eR=Function.prototype,Od=Object.prototype,Hc=ht["__core-js_shared__"],Pb=eR.toString,it=Od.hasOwnProperty,rb=function(){var r=/[^.]+$/.exec(Hc&&Hc.keys&&Hc.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),Cb=Od.toString,tR=RegExp("^"+Pb.call(it).replace(NE,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ib=Sb?ht.Buffer:void 0,Ad=ht.Symbol,nb=ht.Uint8Array,Ib=Od.propertyIsEnumerable,rR=QE.splice,yr=Ad?Ad.toStringTag:void 0,sb=Object.getOwnPropertySymbols,iR=ib?ib.isBuffer:void 0,nR=ZE(Object.keys,Object),Vc=Ti(ht,"DataView"),ys=Ti(ht,"Map"),zc=Ti(ht,"Promise"),Jc=Ti(ht,"Set"),$c=Ti(ht,"WeakMap"),bs=Ti(Object,"create"),sR=Sr(Vc),oR=Sr(ys),aR=Sr(zc),dR=Sr(Jc),lR=Sr($c),ob=Ad?Ad.prototype:void 0,jc=ob?ob.valueOf:void 0;function br(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function uR(){this.__data__=bs?bs(null):{},this.size=0}function cR(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}function mR(r){var e=this.__data__;if(bs){var t=e[r];return t===Xc?void 0:t}return it.call(e,r)?e[r]:void 0}function pR(r){var e=this.__data__;return bs?e[r]!==void 0:it.call(e,r)}function fR(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=bs&&e===void 0?Xc:e,this}br.prototype.clear=uR;br.prototype.delete=cR;br.prototype.get=mR;br.prototype.has=pR;br.prototype.set=fR;function vt(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function gR(){this.__data__=[],this.size=0}function hR(r){var e=this.__data__,t=Fd(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():rR.call(e,t,1),--this.size,!0}function vR(r){var e=this.__data__,t=Fd(e,r);return t<0?void 0:e[t][1]}function yR(r){return Fd(this.__data__,r)>-1}function bR(r,e){var t=this.__data__,i=Fd(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}vt.prototype.clear=gR;vt.prototype.delete=hR;vt.prototype.get=vR;vt.prototype.has=yR;vt.prototype.set=bR;function kr(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}function kR(){this.size=0,this.__data__={hash:new br,map:new(ys||vt),string:new br}}function SR(r){var e=Md(this,r).delete(r);return this.size-=e?1:0,e}function PR(r){return Md(this,r).get(r)}function CR(r){return Md(this,r).has(r)}function IR(r,e){var t=Md(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}kr.prototype.clear=kR;kr.prototype.delete=SR;kr.prototype.get=PR;kr.prototype.has=CR;kr.prototype.set=IR;function Td(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new kr;++e<t;)this.add(r[e])}function wR(r){return this.__data__.set(r,Xc),this}function xR(r){return this.__data__.has(r)}Td.prototype.add=Td.prototype.push=wR;Td.prototype.has=xR;function Bt(r){var e=this.__data__=new vt(r);this.size=e.size}function AR(){this.__data__=new vt,this.size=0}function TR(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}function ER(r){return this.__data__.get(r)}function RR(r){return this.__data__.has(r)}function OR(r,e){var t=this.__data__;if(t instanceof vt){var i=t.__data__;if(!ys||i.length<CE-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new kr(i)}return t.set(r,e),this.size=t.size,this}Bt.prototype.clear=AR;Bt.prototype.delete=TR;Bt.prototype.get=ER;Bt.prototype.has=RR;Bt.prototype.set=OR;function FR(r,e){var t=Ed(r),i=!t&&JR(r),n=!t&&!i&&Kc(r),o=!t&&!i&&!n&&Ob(r),a=t||i||n||o,c=a?zE(r.length,String):[],p=c.length;for(var f in r)(e||it.call(r,f))&&!(a&&(f=="length"||n&&(f=="offset"||f=="parent")||o&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||jR(f,p)))&&c.push(f);return c}function Fd(r,e){for(var t=r.length;t--;)if(Ab(r[t][0],e))return t;return-1}function MR(r,e,t){var i=e(r);return Ed(r)?i:GE(i,t(r))}function Ss(r){return r==null?r===void 0?EE:xE:yr&&yr in Object(r)?qR(r):zR(r)}function ab(r){return ks(r)&&Ss(r)==Cd}function wb(r,e,t,i,n){return r===e?!0:r==null||e==null||!ks(r)&&!ks(e)?r!==r&&e!==e:LR(r,e,t,i,wb,n)}function LR(r,e,t,i,n,o){var a=Ed(r),c=Ed(e),p=a?Wc:Ut(r),f=c?Wc:Ut(e);p=p==Cd?xi:p,f=f==Cd?xi:f;var v=p==xi,m=f==xi,b=p==f;if(b&&Kc(r)){if(!Kc(e))return!1;a=!0,v=!1}if(b&&!v)return o||(o=new Bt),a||Ob(r)?xb(r,e,t,i,n,o):_R(r,e,p,t,i,n,o);if(!(t&Rd)){var y=v&&it.call(r,"__wrapped__"),C=m&&it.call(e,"__wrapped__");if(y||C){var I=y?r.value():r,A=C?e.value():e;return o||(o=new Bt),n(I,A,t,i,o)}}return b?(o||(o=new Bt),NR(r,e,t,i,n,o)):!1}function UR(r){if(!Rb(r)||GR(r))return!1;var e=Tb(r)?tR:qE;return e.test(Sr(r))}function BR(r){return ks(r)&&Eb(r.length)&&!!j[Ss(r)]}function DR(r){if(!VR(r))return nR(r);var e=[];for(var t in Object(r))it.call(r,t)&&t!="constructor"&&e.push(t);return e}function xb(r,e,t,i,n,o){var a=t&Rd,c=r.length,p=e.length;if(c!=p&&!(a&&p>c))return!1;var f=o.get(r);if(f&&o.get(e))return f==e;var v=-1,m=!0,b=t&lb?new Td:void 0;for(o.set(r,e),o.set(e,r);++v<c;){var y=r[v],C=e[v];if(i)var I=a?i(C,y,v,e,r,o):i(y,C,v,r,e,o);if(I!==void 0){if(I)continue;m=!1;break}if(b){if(!VE(e,function(A,M){if(!$E(b,M)&&(y===A||n(y,A,t,i,o)))return b.push(M)})){m=!1;break}}else if(!(y===C||n(y,C,t,i,o))){m=!1;break}}return o.delete(r),o.delete(e),m}function _R(r,e,t,i,n,o,a){switch(t){case xd:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case yb:return!(r.byteLength!=e.byteLength||!o(new nb(r),new nb(e)));case cb:case mb:case gb:return Ab(+r,+e);case pb:return r.name==e.name&&r.message==e.message;case hb:case vb:return r==e+"";case Id:var c=XE;case wd:var p=i&Rd;if(c||(c=YE),r.size!=e.size&&!p)return!1;var f=a.get(r);if(f)return f==e;i|=lb,a.set(r,e);var v=xb(c(r),c(e),i,n,o,a);return a.delete(r),v;case TE:if(jc)return jc.call(r)==jc.call(e)}return!1}function NR(r,e,t,i,n,o){var a=t&Rd,c=db(r),p=c.length,f=db(e),v=f.length;if(p!=v&&!a)return!1;for(var m=p;m--;){var b=c[m];if(!(a?b in e:it.call(e,b)))return!1}var y=o.get(r);if(y&&o.get(e))return y==e;var C=!0;o.set(r,e),o.set(e,r);for(var I=a;++m<p;){b=c[m];var A=r[b],M=e[b];if(i)var ce=a?i(M,A,b,e,r,o):i(A,M,b,r,e,o);if(!(ce===void 0?A===M||n(A,M,t,i,o):ce)){C=!1;break}I||(I=b=="constructor")}if(C&&!I){var Dn=r.constructor,ya=e.constructor;Dn!=ya&&"constructor"in r&&"constructor"in e&&!(typeof Dn=="function"&&Dn instanceof Dn&&typeof ya=="function"&&ya instanceof ya)&&(C=!1)}return o.delete(r),o.delete(e),C}function db(r){return MR(r,XR,HR)}function Md(r,e){var t=r.__data__;return WR(e)?t[typeof e=="string"?"string":"hash"]:t.map}function Ti(r,e){var t=KE(r,e);return UR(t)?t:void 0}function qR(r){var e=it.call(r,yr),t=r[yr];try{r[yr]=void 0;var i=!0}catch{}var n=Cb.call(r);return i&&(e?r[yr]=t:delete r[yr]),n}var HR=sb?function(r){return r==null?[]:(r=Object(r),WE(sb(r),function(e){return Ib.call(r,e)}))}:ZR,Ut=Ss;(Vc&&Ut(new Vc(new ArrayBuffer(1)))!=xd||ys&&Ut(new ys)!=Id||zc&&Ut(zc.resolve())!=Yy||Jc&&Ut(new Jc)!=wd||$c&&Ut(new $c)!=Gc)&&(Ut=function(r){var e=Ss(r),t=e==xi?r.constructor:void 0,i=t?Sr(t):"";if(i)switch(i){case sR:return xd;case oR:return Id;case aR:return Yy;case dR:return wd;case lR:return Gc}return e});function jR(r,e){return e=e??ub,!!e&&(typeof r=="number"||HE.test(r))&&r>-1&&r%1==0&&r<e}function WR(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}function GR(r){return!!rb&&rb in r}function VR(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||Od;return r===t}function zR(r){return Cb.call(r)}function Sr(r){if(r!=null){try{return Pb.call(r)}catch{}try{return r+""}catch{}}return""}function Ab(r,e){return r===e||r!==r&&e!==e}var JR=ab(function(){return arguments}())?ab:function(r){return ks(r)&&it.call(r,"callee")&&!Ib.call(r,"callee")},Ed=Array.isArray;function $R(r){return r!=null&&Eb(r.length)&&!Tb(r)}var Kc=iR||YR;function KR(r,e){return wb(r,e)}function Tb(r){if(!Rb(r))return!1;var e=Ss(r);return e==fb||e==wE||e==IE||e==AE}function Eb(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ub}function Rb(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}function ks(r){return r!=null&&typeof r=="object"}var Ob=tb?JE(tb):BR;function XR(r){return $R(r)?FR(r):DR(r)}function ZR(){return[]}function YR(){return!1}Ai.exports=KR});var fS=h($d=>{"use strict";$d.byteLength=xO;$d.toByteArray=TO;$d.fromByteArray=OO;var ot=[],qe=[],wO=typeof Uint8Array<"u"?Uint8Array:Array,Em="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Ur=0,mS=Em.length;Ur<mS;++Ur)ot[Ur]=Em[Ur],qe[Em.charCodeAt(Ur)]=Ur;var Ur,mS;qe[45]=62;qe[95]=63;function pS(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var i=t===e?0:4-t%4;return[t,i]}function xO(r){var e=pS(r),t=e[0],i=e[1];return(t+i)*3/4-i}function AO(r,e,t){return(e+t)*3/4-t}function TO(r){var e,t=pS(r),i=t[0],n=t[1],o=new wO(AO(r,i,n)),a=0,c=n>0?i-4:i,p;for(p=0;p<c;p+=4)e=qe[r.charCodeAt(p)]<<18|qe[r.charCodeAt(p+1)]<<12|qe[r.charCodeAt(p+2)]<<6|qe[r.charCodeAt(p+3)],o[a++]=e>>16&255,o[a++]=e>>8&255,o[a++]=e&255;return n===2&&(e=qe[r.charCodeAt(p)]<<2|qe[r.charCodeAt(p+1)]>>4,o[a++]=e&255),n===1&&(e=qe[r.charCodeAt(p)]<<10|qe[r.charCodeAt(p+1)]<<4|qe[r.charCodeAt(p+2)]>>2,o[a++]=e>>8&255,o[a++]=e&255),o}function EO(r){return ot[r>>18&63]+ot[r>>12&63]+ot[r>>6&63]+ot[r&63]}function RO(r,e,t){for(var i,n=[],o=e;o<t;o+=3)i=(r[o]<<16&16711680)+(r[o+1]<<8&65280)+(r[o+2]&255),n.push(EO(i));return n.join("")}function OO(r){for(var e,t=r.length,i=t%3,n=[],o=16383,a=0,c=t-i;a<c;a+=o)n.push(RO(r,a,a+o>c?c:a+o));return i===1?(e=r[t-1],n.push(ot[e>>2]+ot[e<<4&63]+"==")):i===2&&(e=(r[t-2]<<8)+r[t-1],n.push(ot[e>>10]+ot[e>>4&63]+ot[e<<2&63]+"=")),n.join("")}});var ZH=_n(Fv(),1);function g(r,e){if(r==null)throw Error(e??"Expected nonnullish value.")}function ur(r,e){if(!r)throw Error(e)}var ie;(function(r){r.COMMENT="t1_",r.ACCOUNT="t2_",r.LINK="t3_",r.MESSAGE="t4_",r.SUBREDDIT="t5_",r.AWARD="t6_"})(ie||(ie={}));function At(r){return r.startsWith(ie.COMMENT)}function dd(r){return r.startsWith(ie.ACCOUNT)}function cr(r){return r.startsWith(ie.LINK)}function Mv(r){return r.startsWith(ie.MESSAGE)}function Lv(r){return r.startsWith(ie.SUBREDDIT)}function Uv(r){return r.startsWith(ie.AWARD)}function jT(r){ur(At(r),`Expected comment id to start with ${ie.COMMENT}, got ${r}}`)}function WT(r){ur(dd(r),`Expected account id to start with ${ie.ACCOUNT}, got ${r}}`)}function GT(r){ur(cr(r),`Expected link id to start with ${ie.LINK}, got ${r}}`)}function VT(r){ur(Mv(r),`Expected message id to start with ${ie.MESSAGE}, got ${r}}`)}function zT(r){ur(Lv(r),`Expected subreddit id to start with ${ie.SUBREDDIT}, got ${r}}`)}function JT(r){ur(Uv(r),`Expected award id to start with ${ie.AWARD}, got ${r}}`)}function ri(r){return jT(r),r}function ne(r){return WT(r),r}function ge(r){return GT(r),r}function $T(r){return VT(r),r}function Oe(r){return zT(r),r}function KT(r){return JT(r),r}function he(r){if(At(r))return ri(r);if(dd(r))return ne(r);if(cr(r))return ge(r);if(Mv(r))return $T(r);if(Lv(r))return Oe(r);if(Uv(r))return KT(r);throw new Error(`Expected thing id to start with ${Object.values(ie).join(", ")} got ${r}}`)}function cc(r){return At(r)}import*as P from"@devvit/protos";var ld=class{constructor(e){}};var mc=(t=>(t.Installation="installation",t.App="app",t))(mc||{});function mr(r,e=new Set){for(let t of r){if(t.type==="group"){mr(t.fields,e);continue}let i=t.name;if(e.has(i))throw new Error(`Duplicate field name: ${i}`);e.add(i)}XT(r)}function XT(r){for(let e of r)if(e.type==="string"&&e.isSecret&&e.scope!=="app")throw`Invalid setting: only app settings can be secrets. Add "scope: SettingScope.App" to field "${e.name}"`}var Tt=Object.freeze({INTERVAL:0,FORM:1,STATE:2,CHANNEL:3});var bL=["activity","add-emoji","add","add-media","add-to-feed","admin","align-center","align-left","align-right","all","appearance","approve","archived","aspect-ratio","aspect-rectangle","attach","audio","author","avatar-style","award","back","ban","best","binoculars","block","blockchain","bold","bot","boost","bounce","brand-awareness","browse","browser","cake","calendar","camera","caret-down","caret-left","caret-right","caret-up","chat","chat-group","chat-new","checkbox-dismiss","checkbox","checkmark","chrome","clear","close","closed-captioning","code-block","code-inline","coins-color-old","coins-color","coins","collapse-left","collapse-right","collection","comment","comments","community","contest","controversial","crop","crosspost","crowd-control","custom-feed","customize","day","delete","discover","dismiss-all","distinguish","down-arrow","down","download","downvote","downvotes","drag","drugs","duplicate","edit","effect","embed","emoji","end-live-chat","error","expand-left","expand-right","external","feed-video","filter","format","forward","gif-post","heart","help","hide","history","home","hot","ignore-reports","image-post","inbox","info","invite","italic","join","joined","jump-down","jump-up","karma","keyboard","kick","language","leave","left","link","link-post","list-bulleted","list-numbered","live-chat","live","load","location","lock","logout","loop","mark-read","mask","media-gallery","meme","menu","message","mic","mic-mute","mod","mod-mail","mod-mode","mod-mute","mod-overflow","mod-queue","mod-unmute","music","new","night","notification","notification-frequent","notification-off","nsfw","nsfw-language","nsfw-violence","original","overflow-caret","overflow-horizontal","overflow-vertical","pause","payment","peace","pending-posts","phone","pin","planet","play","poll-post","popular","posts","powerup-color-outline","powerup-fill-color","powerup","predictions","premium","privacy","profile","qa","qr-code","quarantined","quote","r-slash","radio-button","raise-hand","random","ratings-everyone","ratings-mature","ratings-nsfw","ratings-violence","refresh","remove","reply","report","reverse","right","rising","rotate","rotate-image","rpan","rules","safari","save","saved","search","self","send","settings","share-android","share","share-ios","show","side-menu","skipback10","skipforward10","sort-az","sort","sort-price","sort-za","spam","spoiler","sponsored","star","statistics","status-live","sticker","strikethrough","subtract","superscript","swap-camera","swipe-back","swipe-down","swipe","swipe-up","table","tag","tap","telescope","text","text-post","text-size","toggle","tools","top","topic-activism","topic-addictionsupport","topic-advice","topic-animals","topic-anime","topic-art","topic-beauty","topic-business","topic-careers","topic-cars","topic-celebrity","topic-craftsdiy","topic-crypto","topic-culture","topic-diy","topic-entertainment","topic-ethics","topic-family","topic-fashion","topic","topic-fitness","topic-food","topic-funny","topic-gender","topic-health","topic-help","topic-history","topic-hobbies","topic-homegarden","topic-internet","topic-law","topic-learning","topic-lifestyle","topic-marketplace","topic-mature","topic-mensfashion","topic-menshealth","topic-meta","topic-military","topic-movies","topic-music","topic-news","topic-other","topic-outdoors","topic-pets","topic-photography","topic-places","topic-podcasts","topic-politics","topic-programming","topic-reading","topic-religion","topic-science","topic-sexorientation","topic-sports","topic-style","topic-tabletop","topic-technology","topic-television","topic-traumasupport","topic-travel","topic-videogaming","topic-womensfashion","topic-womenshealth","translate","trim","u-slash","unban","undo","unheart","unlock","unmod","unpin","unverified","up-arrow","up","upload","upvote","upvotes","user","user-note","users","vault","verified","video-camera","video-feed","video-live-1","video-live-fill-1","video-live","video-post","video-thread","video-transcription","view-card","view-classic","view-compact","view-grid","views","volume","volume-mute","wallet","warning","wiki-ban","wiki","wiki-unban","world"];import{AppSettingsDefinition as m0,GetFieldsResponse as p0}from"@devvit/protos";import{FormField as pr,FormFieldType as Fe}from"@devvit/protos";function pt(r){return r.map(e=>{switch(e.type){case"string":return ZT(e);case"image":return YT(e);case"paragraph":return QT(e);case"number":return e0(e);case"select":return t0(e);case"boolean":return r0(e);case"group":return i0(e);default:throw new Error("Unknown field type.")}})}function ZT(r){return pr.fromPartial({defaultValue:{fieldType:Fe.STRING,stringValue:r.defaultValue},disabled:r.disabled,fieldConfig:{stringConfig:{placeholder:r.placeholder}},fieldId:r.name,fieldType:Fe.STRING,helpText:r.helpText,label:r.label,required:r.required,isSecret:r.isSecret})}function YT(r){return pr.fromPartial({disabled:r.disabled,fieldId:r.name,fieldType:Fe.IMAGE,helpText:r.helpText,label:r.label,required:r.required})}function QT(r){return pr.fromPartial({defaultValue:{fieldType:Fe.PARAGRAPH,stringValue:r.defaultValue},disabled:r.disabled,fieldConfig:{paragraphConfig:{lineHeight:r.lineHeight,placeholder:r.placeholder}},fieldId:r.name,fieldType:Fe.PARAGRAPH,helpText:r.helpText,label:r.label,required:r.required})}function e0(r){return pr.fromPartial({defaultValue:{fieldType:Fe.NUMBER,numberValue:r.defaultValue},disabled:r.disabled,fieldConfig:{numberConfig:{}},fieldId:r.name,fieldType:Fe.NUMBER,helpText:r.helpText,label:r.label,required:r.required})}function t0(r){return pr.fromPartial({defaultValue:{fieldType:Fe.SELECTION,selectionValue:{values:r.defaultValue}},disabled:r.disabled,fieldConfig:{selectionConfig:{choices:r.options,multiSelect:r.multiSelect}},fieldId:r.name,fieldType:Fe.SELECTION,helpText:r.helpText,label:r.label,required:r.required})}function r0(r){return pr.fromPartial({defaultValue:{fieldType:Fe.BOOLEAN,boolValue:r.defaultValue},disabled:r.disabled,fieldId:r.name,fieldType:Fe.BOOLEAN,helpText:r.helpText,label:r.label})}function i0(r){return pr.fromPartial({fieldType:Fe.GROUP,fieldConfig:{groupConfig:{fields:pt(r.fields)}},label:r.label,helpText:r.helpText})}function U(r,e){u.prototype[r]=e}import{ValidateFormResponse as c0}from"@devvit/protos";import{RealtimeSubscriptionStatus as Dv}from"@devvit/protos";var D=Object.freeze({Actor:"devvit-actor",App:"devvit-app",AppUser:"devvit-app-user",AppViewerAuthToken:"devvit-app-viewer-authorization",Caller:"devvit-caller",CallerPortID:"devvit-caller-port-id",Canary:"devvit-canary",Debug:"devvit-debug",GQLHost:"devvit-gql-host",Installation:"devvit-installation",ModPermissions:"devvit-mod-permissions",R2Auth:"devvit-sec-authorization",R2Host:"devvit-r2-host",RemoteHostname:"devvit-remote-hostname",SettingsUri:"devvit-sec-settings-uri",StreamID:"devvit-stream-id",Subreddit:"devvit-subreddit",TraceID:"devvit-trace-id",User:"devvit-user",UserAgent:"devvit-user-agent",Version:"devvit-version",Language:"devvit-accept-language",Timezone:"devvit-accept-timezone",AppDependencies:"devvit-app-dependencies",WebviewTemplate:"devvit-webview-template"}),Bv;(function(r){r.Blocks="blocks",r.EmitSnapshots="emitSnapshots",r.EmitState="emitState",r.Realtime="realtime",r.Runtime="runtime",r.Surface="surface",r.UseAsync="useAsync",r.Payments="payments"})(Bv||(Bv={}));function _v(r){function e(t){let n=r.currentHookIndex,o=r.getCurrentComponentState(),a=r.getPreviousComponentState(),c=r.metadata[D.App]?.values[0];g(c,"useChannel - app is missing from Context");let p=r.metadata[D.Installation]?.values[0];g(p,"useChannel - installation is missing from Context");async function f(A){let M=o[n].channel;if(o[n].active)if(o[n].connected)await r.realtime.send(M,A);else throw Error(`Failed to send to channel '${M}'; it is active but not yet connected`);else throw Error(`Cannot send a message over inactive channel: ${M}`)}function v(){if(!o[n].active){let A=o[n].channel;o[n].active=!0,r.addRealtimeChannel(A)}}function m(){if(o[n].active){let A=o[n].channel;o[n].active=!1,r.removeRealtimeChannel(A)}}function b(A){return async()=>{let M;switch(A.status){case Dv.REALTIME_SUBSCRIBED:o[n].connected=!0,M=t.onSubscribed?.();break;case Dv.REALTIME_UNSUBSCRIBED:o[n].connected=!1,M=t.onUnsubscribed?.();break;default:M=t.onMessage(A.event?.data??{});break}await M}}let y={channel:`${c}:${p}:${t.name}`,active:!1,connected:!1,preventCallback:!1,type:Tt.CHANNEL};n in o?y=o[n]:n in a&&(y=a[n]);let C=r.realtimeEvent;r.isInitialRender?y.active=!1:C&&y.active&&C.event.channel===y.channel&&(y.preventCallback||r.runHook(b(C)),r.rerenderIn(0)),o[n]=y,r.currentHookIndex++;let I=0;return y.active&&y.connected?I=2:y.active&&!y.connected?I=1:!y.active&&y.connected?I=3:!y.active&&!y.connected&&(I=4),{subscribe:v,unsubscribe:m,send:f,status:I}}return e}import{FormFieldType as ii}from"@devvit/protos";function pc(r){switch(r.fieldType){case ii.STRING:return r.stringValue;case ii.IMAGE:return r.stringValue;case ii.PARAGRAPH:return r.stringValue;case ii.NUMBER:return r.numberValue;case ii.BOOLEAN:return r.boolValue;case ii.SELECTION:return r.selectionValue?.values??[];default:return}}function Et(r){return Object.keys(r).reduce((e,t)=>{let i=pc(r[t]);return i!==void 0&&(e[t]=i),e},{})}function Nv(r){function e(t,i){let n=r.currentHookIndex,o=r.getCurrentComponentKey(),a=r.getCurrentComponentState(),c=r.getPreviousComponentState(),p=`form.hook.${o}.${n}`,f={formKey:p,preventSubmit:!1,type:Tt.FORM};n in a?f=a[n]:n in c&&(f=c[n]),a[n]=f,r.forms.set(p,t);let v=r.formSubmittedEvent;return v&&!f.preventSubmit&&v.formId===p&&r.runHook(async()=>{let m=i(Et(v.results));m&&m instanceof Promise&&await m,r.rerenderIn(0)}),a[n].preventSubmit=!1,r.currentHookIndex++,p}return e}function qv(r){function e(t,i){let n=r.currentHookIndex,o=r.getCurrentComponentState(),a=r.getPreviousComponentState(),c=100,p=Math.max(c,i),f={lastRun:void 0,running:!1,preventCallback:!1,type:Tt.INTERVAL};n in o?f=o[n]:n in a&&(f=a[n]);function v(){i<c&&console.error(`useInterval delay must be at least ${c}ms. Your interval of ${i}ms was automatically extended.`);for(let[b,y]of Object.entries(o))if(b!==n.toString()&&y?.type===Tt.INTERVAL&&y?.running)throw new Error("Only one useInterval hook may be running at a time");o[n]={running:!0,lastRun:o[n]?.lastRun??Date.now(),preventCallback:!1,type:Tt.INTERVAL},r.rerenderIn(p)}function m(){o[n].running=!1,o[n].lastRun=void 0,o[n].preventCallback=!1}return r.isEffectRender&&f.running&&(f.preventCallback||(f.lastRun===void 0||f.lastRun+p<Date.now())&&r.runHook(async()=>{let b=t();b&&b instanceof Promise&&await b,f.lastRun=Date.now()}),r.rerenderIn(p)),f.preventCallback=!1,o[n]=f,r.currentHookIndex++,{start:v,stop:m}}return e}function Hv(r){function e(t){let i=r.currentHookIndex,n=r.getCurrentComponentState(),o=r.getPreviousComponentState();if(i in n)return r.currentHookIndex++,[n[i],a];if(r.isInitialRender||!(i in o)){let c=t instanceof Function?t():t;if(c instanceof Promise)throw(async()=>{n[i]=await c,r.currentHookIndex=0})();n[i]=c}else n[i]=o[i];function a(c){if(r.isRendering)throw new Error("Cannot call setState while rendering.");n[i]=c instanceof Function?c(n[i]):c}return r.currentHookIndex++,[n[i],a]}return e}var vc={now(){return new Date}};function jv(r){return`__autocache__${r}`}function Wv(r){return`__lock__${r}`}var s0=300,o0=1e3,ud=5e3,fc=3,Gv=.1,Vv=1e3,a0=3e4;function zv(r){if(r.error)throw new Error(r.error);return r.value}var Rt,Ot,Me,ni,$,Jv,$v,Kv,gc,Xv,Zv,hc,Yv,cd=class{constructor(e,t,i=vc){l(this,$);l(this,Rt);l(this,Ot,{});l(this,Me);l(this,ni);d(this,Rt,e),d(this,ni,t),d(this,Me,i)}async cache(e,t){d(this,Ot,s(this,ni).__cache=s(this,ni).__cache??{}),S(this,$,Yv).call(this,t);let i=S(this,$,Jv).call(this,t.key);if(i!==void 0)return i;let n=await S(this,$,hc).call(this,t.key),o=await S(this,$,$v).call(this,t,n,e);return zv(o)}};Rt=new WeakMap,Ot=new WeakMap,Me=new WeakMap,ni=new WeakMap,$=new WeakSet,Jv=function(e){let t=s(this,Ot)[e];if(t){let i=s(this,Me).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<fc&&Math.random()<Gv&&t.errorTime+Vv<i;if(t?.expires&&t.expires<i&&t.checkedAt+Vv<i||n){delete s(this,Ot)[e];return}else return zv(t)}},$v=async function(e,t,i){let n=t?.expires,o=n?S(this,$,Zv).call(this,n):1;return!t||t?.error&&t.errorCount<fc&&Gv>Math.random()||o>Math.random()?S(this,$,Kv).call(this,e,t,i):t},Kv=async function(e,t,i){let n=Wv(e.key),o=s(this,Me).now().getTime(),a=new Date(o+e.ttl/2);if(await s(this,Rt).set(n,"1",{expiration:a,nx:!0}))return S(this,$,Xv).call(this,e.key,t,i,e.ttl);if(t)return t;{let p=s(this,Me).now();return S(this,$,gc).call(this,p,e.key,e.ttl)}},gc=async function(e,t,i){let n=Math.min(i,o0),o=await S(this,$,hc).call(this,t);if(o)return o;if(s(this,Me).now().getTime()-e.getTime()>=n)throw new Error(`Cache request timed out trying to get data at key: ${t}`);return await new Promise(a=>setTimeout(a,s0)),S(this,$,gc).call(this,e,t,i)},Xv=async function(e,t,i,n){let o=s(this,Me).now().getTime()+n;t=t??{value:null,expires:o,errorCount:0,error:null,errorTime:null,checkedAt:0};try{t.value=await i(),t.error=null,t.errorCount=0,t.errorTime=null}catch(a){t.value=null,t.error=a.message??"Unknown error",t.errorTime=s(this,Me).now().getTime(),t.errorCount++}return s(this,Ot)[e]=t,await s(this,Rt).set(jv(e),JSON.stringify(t),{expiration:new Date(o+a0)}),t.error&&t.errorCount<fc&&await s(this,Rt).del(Wv(e)),t},Zv=function(e){let t=s(this,Me).now().getTime(),i=e-t;return i<0?1:i<1e3?.1:i<2e3?.01:i<3e3?.001:0},hc=async function(e){let t=await s(this,Rt).get(jv(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Me).now().getTime(),s(this,Ot)[e]=i,i}},Yv=function(e){e.ttl<ud&&(console.warn(`Cache TTL cannot be less than ${ud} milliseconds! Updating ttl value of ${e.ttl} to ${ud}.`),e.ttl=ud)};function Qv(r,e,t=vc){let i=new cd(r,e,t);return i.cache.bind(i)}function ey(r){new URL(r.slice(0,r.indexOf(",")))}var si,oi,di,ty,ry,ai=class{constructor(){l(this,di);l(this,si,{});l(this,oi,{});d(this,si,u.assets),d(this,oi,u.webviewAssets)}getURL(e,t){return typeof e=="string"?S(this,di,ty).call(this,e,t??{webview:!1}):S(this,di,ry).call(this,e,t??{webview:!1})}};si=new WeakMap,oi=new WeakMap,di=new WeakSet,ty=function(e,t){let i=t.webview?s(this,oi)[e]:s(this,si)[e];if(i)return i;try{return ey(e),encodeURI(e)}catch{return""}},ry=function(e,t){let i={},n=[],o=t.webview?s(this,oi):s(this,si);if(o)for(let a of e)if(o[a])i[a]=o[a];else try{ey(a),i[a]=encodeURI(a)}catch{n.push(a)}else n=e;if(n.length>0)throw new Error(`The following assets were missing from the assets list: ${n.join(", ")}`);return i};var Ft,li=class{constructor(e){l(this,Ft);d(this,Ft,e)}async get(e){let{messages:t}=await u.kvStorePlugin.Get({keys:[e]},s(this,Ft));try{if(t[e])return JSON.parse(t[e])}catch{return}}async put(e,t){let i={};i[e]=JSON.stringify(t),await u.kvStorePlugin.Put({messages:i},s(this,Ft))}async delete(e){await u.kvStorePlugin.Del({keys:[e]},s(this,Ft))}async list(){let{keys:e}=await u.kvStorePlugin.List({filter:"*"},s(this,Ft));return e}};Ft=new WeakMap;var os,ui=class{constructor(e){l(this,os);d(this,os,e)}async upload(e){let t=await u.mediaPlugin.Upload(e,s(this,os));if(!t.mediaId)throw new Error("unable to get mediaId via uploads");return Promise.resolve({mediaId:t.mediaId,mediaUrl:t.mediaUrl})}};os=new WeakMap;var as,ci=class{constructor(e){l(this,as);d(this,as,e)}async add(e){await u.modLogPlugin.Add(e,s(this,as))}};as=new WeakMap;var ds,mi=class{constructor(e){l(this,ds);d(this,ds,e)}async send(e,t){await u.realtimePlugin.Send({channel:e,data:t},s(this,ds))}};ds=new WeakMap;var k,ls,fi=class{constructor(e){l(this,k);l(this,ls);d(this,k,e),d(this,ls,new pd(e))}get modMail(){return s(this,ls)}getSubredditById(e){return ve.getById(he(e),s(this,k))}getSubredditByName(e){return ve.getByName(e,s(this,k))}addSubredditRemovalReason(e,t){return ve.addRemovalReason(e,t.title,t.message,s(this,k))}getSubredditRemovalReasons(e){return ve.getRemovalReasons(e,s(this,k))}getCurrentSubreddit(){return ve.getFromMetadata(s(this,k))}getPostById(e){return z.getById(he(e),s(this,k))}submitPost(e){return z.submit(e,s(this,k))}crosspost(e){return z.crosspost(e,s(this,k))}getUserById(e){return w.getById(he(e),s(this,k))}getCollectionById(e){return pi.getCollectionById({collectionId:e},s(this,k))}createCollection(e){return pi.create(e,s(this,k))}getCollectionsForSubreddit(e){return pi.getCollectionsForSubreddit({subredditId:e},s(this,k))}getUserByUsername(e){return w.getByUsername(e,s(this,k))}getCurrentUser(){return w.getFromMetadata(D.User,s(this,k))}getAppUser(){return w.getFromMetadata(D.AppUser,s(this,k))}getSnoovatarUrl(e){return w.getSnoovatarUrl(e,s(this,k))}getCommentById(e){return Q.getById(he(e),s(this,k))}getComments(e){return Q.getComments(e,s(this,k))}getCommentsByUser(e){return Q.getCommentsByUser(e,s(this,k))}submitComment(e){return Q.submit({...e,id:he(e.id)},s(this,k))}getControversialPosts(e){return z.getControversialPosts(e,s(this,k))}getTopPosts(e){return z.getTopPosts(e,s(this,k))}getHotPosts(e){return z.getHotPosts(e,s(this,k))}getNewPosts(e){return z.getNewPosts(e,s(this,k))}getRisingPosts(e){return z.getRisingPosts(e,s(this,k))}getPostsByUser(e){return z.getPostsByUser(e,s(this,k))}getCommentsAndPostsByUser(e){return w.getOverview(e,s(this,k))}getModerationLog(e){return md(e,s(this,k))}getApprovedUsers(e){return w.getSubredditUsersByType({type:"contributors",...e},s(this,k))}approveUser(e,t){return w.createRelationship({username:e,subredditName:t,type:"contributor"},s(this,k))}removeUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"contributor"},s(this,k))}getWikiContributors(e){return w.getSubredditUsersByType({type:"wikicontributors",...e},s(this,k))}addWikiContributor(e,t){return w.createRelationship({username:e,subredditName:t,type:"wikicontributor"},s(this,k))}removeWikiContributor(e,t){return w.removeRelationship({username:e,subredditName:t,type:"wikicontributor"},s(this,k))}getBannedUsers(e){return w.getSubredditUsersByType({type:"banned",...e},s(this,k))}banUser(e){return w.createRelationship({username:e.username,subredditName:e.subredditName,type:"banned",banReason:e.reason,banMessage:e.message,note:e.note,duration:e.duration},s(this,k))}unbanUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"banned"},s(this,k))}getBannedWikiContributors(e){return w.getSubredditUsersByType({type:"wikibanned",...e},s(this,k))}banWikiContributor(e){return w.createRelationship({...e,type:"wikibanned"},s(this,k))}unbanWikiContributor(e,t){return w.removeRelationship({username:e,subredditName:t,type:"wikibanned"},s(this,k))}getModerators(e){return w.getSubredditUsersByType({type:"moderators",...e},s(this,k))}inviteModerator(e){return w.createRelationship({type:"moderator_invite",subredditName:e.subredditName,username:e.subredditName,permissions:e.permissions??[]},s(this,k))}revokeModeratorInvite(e,t){return w.removeRelationship({username:e,subredditName:t,type:"moderator_invite"},s(this,k))}removeModerator(e,t){return w.removeRelationship({type:"moderator",subredditName:t,username:e},s(this,k))}setModeratorPermissions(e,t,i){return w.setModeratorPermissions(e,t,i,s(this,k))}getMutedUsers(e){return w.getSubredditUsersByType({type:"muted",...e},s(this,k))}muteUser(e){return w.createRelationship({...e,type:"muted"},s(this,k))}unmuteUser(e,t){return w.removeRelationship({username:e,subredditName:t,type:"muted"},s(this,k))}getModNotes(e){return Le.get(e,s(this,k))}deleteModNote(e){return Le.delete(e,s(this,k))}addModNote(e){let t={...e,redditId:e.redditId?he(e.redditId):void 0};return Le.add(t,s(this,k))}addRemovalNote(e){return Le.addRemovalNote(e,s(this,k))}async sendPrivateMessage(e){return fr.send(e,s(this,k))}async sendPrivateMessageAsSubreddit(e){return fr.sendAsSubreddit(e,s(this,k))}async approve(e){if(At(e))return Q.approve(e,s(this,k));if(cr(e))return z.approve(e,s(this,k));throw new Error("id must start with either t1_ or t3_")}async remove(e,t){if(At(e))return Q.remove(e,t,s(this,k));if(cr(e))return z.remove(e,t,s(this,k));throw new Error("id must start with either t1_ or t3_")}async getPostFlairTemplates(e){return de.getPostFlairTemplates(e,s(this,k))}async getUserFlairTemplates(e){return de.getUserFlairTemplates(e,s(this,k))}async createPostFlairTemplate(e){return de.createPostFlairTemplate(e,s(this,k))}async createUserFlairTemplate(e){return de.createUserFlairTemplate(e,s(this,k))}async editFlairTemplate(e){return de.editFlairTemplate(e,s(this,k))}async deleteFlairTemplate(e,t){return de.deleteFlairTemplate(e,t,s(this,k))}async setUserFlair(e){return Ue.setUserFlair(e,s(this,k))}async removeUserFlair(e,t){return Ue.removeUserFlair(e,t,s(this,k))}async setPostFlair(e){return Ue.setPostFlair(e,s(this,k))}async removePostFlair(e,t){return Ue.removePostFlair(e,ge(t),s(this,k))}async getWidgets(e){return se.getWidgets(e,s(this,k))}async deleteWidget(e,t){return se.delete(e,t,s(this,k))}async addWidget(e){return se.add(e,s(this,k))}async reorderWidgets(e,t){return se.reorder(e,t,s(this,k))}async getWikiPage(e,t){return ye.getPage(e,t,s(this,k))}async getWikiPages(e){return ye.getPages(e,s(this,k))}async createWikiPage(e){return ye.createPage(e,s(this,k))}async updateWikiPage(e){return ye.updatePage(e,s(this,k))}getWikiPageRevisions(e){return ye.getPageRevisions(e,s(this,k))}async revertWikiPage(e,t,i){return ye.revertPage(e,t,i,s(this,k))}async getWikiPageSettings(e,t){return ye.getPageSettings(e,t,s(this,k))}async updateWikiPageSettings(e){return ye.updatePageSettings(e,s(this,k))}async addEditorToWikiPage(e,t,i){return ye.addEditor(e,t,i,s(this,k))}async removeEditorFromWikiPage(e,t,i){return ye.removeEditor(e,t,i,s(this,k))}getMessages(e){return fr.getMessages(e,s(this,k))}markAllMessagesAsRead(){return fr.markAllAsRead(s(this,k))}report(e,t){return u.redditAPIPlugins.LinksAndComments.Report({reason:t.reason,thingId:e.id,srName:e.subredditName,usernames:e.authorName},s(this,k))}getModQueue(e){return ve.aboutLocation({...e,location:"modqueue"},s(this,k))}getReports(e){return ve.aboutLocation({...e,location:"reports"},s(this,k))}getSpam(e){return ve.aboutLocation({...e,location:"spam"},s(this,k))}getUnmoderated(e){return ve.aboutLocation({...e,location:"unmoderated"},s(this,k))}getEdited(e){return ve.aboutLocation({...e,location:"edited"},s(this,k))}getVaultByAddress(e){return sy(e,s(this,k))}getVaultByUserId(e){return oy(he(e),s(this,k))}getSubredditLeaderboard(e){return ny(e,s(this,k))}};k=new WeakMap,ls=new WeakMap;import{RedisKeyScope as yc}from"@devvit/protos";var R,O,F,bc=class{constructor(e,t,i){l(this,R);l(this,O);l(this,F);d(this,R,e),d(this,O,t),d(this,F,i)}async get(e){return await s(this,R).Get({key:e,transactionId:s(this,O)},s(this,F)),this}async multi(){await s(this,R).Multi(s(this,O),s(this,F))}async set(e,t,i){let n;return i?.expiration&&(n=Math.floor((i.expiration.getTime()-Date.now())/1e3),n<1&&(n=1)),await s(this,R).Set({key:e,value:t,nx:i?.nx===!0,xx:i?.xx===!0,expiration:n||0,transactionId:s(this,O)},s(this,F)),this}async del(...e){return await s(this,R).Del({keys:e,transactionId:s(this,O)},s(this,F)),this}async type(e){return await s(this,R).Type({key:e,transactionId:s(this,O)},s(this,F)),this}async exec(){let e=await s(this,R).Exec(s(this,O),s(this,F)),t=[];for(let i of e.response)i.members?t.push(i.members):i.nil!==void 0?t.push(null):i.num!==void 0?t.push(i.num):i.values!==void 0?t.push(i.values.values):i.str!==void 0&&t.push(i.str);return t}async discard(){await s(this,R).Discard(s(this,O),s(this,F))}async watch(...e){return await s(this,R).Watch({keys:e,transactionId:s(this,O)},s(this,F)),this}async unwatch(){return await s(this,R).Unwatch(s(this,O),s(this,F)),this}async getRange(e,t,i){return await s(this,R).GetRange({key:e,start:t,end:i,transactionId:s(this,O)},s(this,F)),this}async setRange(e,t,i){return await s(this,R).SetRange({key:e,offset:t,value:i,transactionId:s(this,O)},s(this,F)),this}async strlen(e){return this.strLen(e)}async strLen(e){return await s(this,R).Strlen({key:e,transactionId:s(this,O)},s(this,F)),this}async mget(e){return this.mGet(e)}async mGet(e){return await s(this,R).MGet({keys:e,transactionId:s(this,O)},s(this,F)),this}async mset(e){return this.mSet(e)}async mSet(e){let t=Object.entries(e).map(([i,n])=>({key:i,value:n}));return await s(this,R).MSet({kv:t,transactionId:s(this,O)},s(this,F)),this}async incrBy(e,t){return await s(this,R).IncrBy({key:e,value:t,transactionId:s(this,O)},s(this,F)),this}async expire(e,t){return await s(this,R).Expire({key:e,seconds:t,transactionId:s(this,O)},s(this,F)),this}async expireTime(e){return await s(this,R).ExpireTime({key:e,transactionId:s(this,O)},s(this,F)),this}async zAdd(e,...t){return await s(this,R).ZAdd({key:e,members:t,transactionId:s(this,O)},s(this,F)),this}async zScore(e,t){return await s(this,R).ZScore({key:{key:e,transactionId:s(this,O)},member:t},s(this,F)),this}async zRank(e,t){return await s(this,R).ZRank({key:{key:e,transactionId:s(this,O)},member:t},s(this,F)),this}async zIncrBy(e,t,i){return await s(this,R).ZIncrBy({key:e,member:t,value:i,transactionId:s(this,O)},s(this,F)),this}async zScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,transactionId:s(this,O)};return await s(this,R).ZScan(o,s(this,F)),this}async zCard(e){return await s(this,R).ZCard({key:e,transactionId:s(this,O)},s(this,F)),this}async zRange(e,t,i,n){let o={rev:!1,byLex:!1,byScore:!1,offset:0,count:1e3};return n?.reverse&&(o.rev=n.reverse),n?.by==="lex"?o.byLex=!0:n?.by==="score"&&(o.byScore=!0),await s(this,R).ZRange({key:{key:e,transactionId:s(this,O)},start:t+"",stop:i+"",...o},s(this,F)),this}async zRem(e,t){return await s(this,R).ZRem({key:{key:e,transactionId:s(this,O)},members:t},s(this,F)),this}async zRemRangeByLex(e,t,i){return await s(this,R).ZRemRangeByLex({key:{key:e,transactionId:s(this,O)},min:t,max:i},s(this,F)),this}async zRemRangeByRank(e,t,i){return await s(this,R).ZRemRangeByRank({key:{key:e,transactionId:s(this,O)},start:t,stop:i},s(this,F)),this}async zRemRangeByScore(e,t,i){return await s(this,R).ZRemRangeByScore({key:{key:e,transactionId:s(this,O)},min:t,max:i},s(this,F)),this}async hgetall(e){return this.hGetAll(e)}async hGetAll(e){return await s(this,R).HGetAll({key:e,transactionId:s(this,O)},s(this,F)),this}async hget(e,t){return this.hGet(e,t)}async hGet(e,t){return await s(this,R).HGet({key:e,field:t,transactionId:s(this,O)},s(this,F)),this}async hset(e,t){return this.hSet(e,t)}async hSet(e,t){let i=Object.entries(t).map(([n,o])=>({field:n,value:o}));return await s(this,R).HSet({key:e,fv:i,transactionId:s(this,O)},s(this,F)),this}async hincrby(e,t,i){return this.hIncrBy(e,t,i)}async hIncrBy(e,t,i){return await s(this,R).HIncrBy({key:e,field:t,value:i,transactionId:s(this,O)},s(this,F)),this}async hdel(e,t){return this.hDel(e,t)}async hDel(e,t){return await s(this,R).HDel({key:e,fields:t,transactionId:s(this,O)},s(this,F)),this}async hscan(e,t,i,n){return this.hScan(e,t,i,n)}async hScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,transactionId:s(this,O)};return await s(this,R).HScan(o,s(this,F)),this}async hkeys(e){return this.hKeys(e)}async hKeys(e){return await s(this,R).HKeys({key:e,transactionId:s(this,O)},s(this,F)),this}async hlen(e){return this.hLen(e)}async hLen(e){return await s(this,R).HLen({key:e,transactionId:s(this,O)},s(this,F)),this}};R=new WeakMap,O=new WeakMap,F=new WeakMap;var L,gi,kc=class kc{constructor(e,t=void 0,i=yc.INSTALLATION){l(this,L);l(this,gi);d(this,L,e),d(this,gi,t),this.scope=i,this.global=i===yc.INSTALLATION?new kc(s(this,L),s(this,gi),yc.GLOBAL):this}get storage(){return s(this,gi)||u.redisPlugin}async watch(...e){let t=await this.storage.Watch({keys:e},s(this,L));return new bc(this.storage,t,s(this,L))}async get(e){let t=await this.storage.Get({key:e,scope:this.scope},s(this,L));return t!==null?t.value??void 0:t}async set(e,t,i){let n;return i?.expiration&&(n=Math.floor((i.expiration.getTime()-Date.now())/1e3),n<1&&(n=1)),(await this.storage.Set({key:e,value:t,nx:i?.nx===!0&&!i.xx,xx:i?.xx===!0&&!i.nx,expiration:n||0,scope:this.scope},s(this,L))).value}async del(...e){await this.storage.Del({keys:e,scope:this.scope},s(this,L))}async incrBy(e,t){return(await this.storage.IncrBy({key:e,value:t,scope:this.scope},s(this,L))).value}async getRange(e,t,i){let n=await this.storage.GetRange({key:e,start:t,end:i,scope:this.scope},s(this,L));return n!==null?n.value:n}async setRange(e,t,i){return(await this.storage.SetRange({key:e,offset:t,value:i,scope:this.scope},s(this,L))).value}async strlen(e){return this.strLen(e)}async strLen(e){return(await this.storage.Strlen({key:e,scope:this.scope},s(this,L))).value}async expire(e,t){await this.storage.Expire({key:e,seconds:t,scope:this.scope},s(this,L))}async expireTime(e){return(await this.storage.ExpireTime({key:e,scope:this.scope},s(this,L))).value}async zAdd(e,...t){return(await this.storage.ZAdd({key:e,members:t,scope:this.scope},s(this,L))).value}async zRange(e,t,i,n){let o={rev:!1,byLex:!1,byScore:!1,offset:0,count:1e3};return n?.reverse&&(o.rev=n.reverse),n?.by==="lex"?o.byLex=!0:n?.by==="score"?o.byScore=!0:(o.offset=0,o.count=0),(await this.storage.ZRange({key:{key:e},start:t+"",stop:i+"",...o,scope:this.scope},s(this,L))).members}async zRem(e,t){return(await this.storage.ZRem({key:{key:e},members:t,scope:this.scope},s(this,L))).value}async zRemRangeByLex(e,t,i){return(await this.storage.ZRemRangeByLex({key:{key:e},min:t,max:i,scope:this.scope},s(this,L))).value}async zRemRangeByRank(e,t,i){return(await this.storage.ZRemRangeByRank({key:{key:e},start:t,stop:i,scope:this.scope},s(this,L))).value}async zRemRangeByScore(e,t,i){return(await this.storage.ZRemRangeByScore({key:{key:e},min:t,max:i,scope:this.scope},s(this,L))).value}async zScore(e,t){let i=await this.storage.ZScore({key:{key:e},member:t,scope:this.scope},s(this,L));return i!==null?i.value:i}async zRank(e,t){let i=await this.storage.ZRank({key:{key:e},member:t,scope:this.scope},s(this,L));return i!==null?i.value:i}async zIncrBy(e,t,i){let n=await this.storage.ZIncrBy({key:e,member:t,value:i,scope:this.scope},s(this,L));return n!==null?n.value:n}async mget(e){return this.mGet(e)}async mGet(e){let t=await this.storage.MGet({keys:e,scope:this.scope},s(this,L));return t!==null?t.values.map(i=>i||null):t}async mset(e){return this.mSet(e)}async mSet(e){let t=Object.entries(e).map(([i,n])=>({key:i,value:n}));await this.storage.MSet({kv:t,scope:this.scope},s(this,L))}async zCard(e){let t=await this.storage.ZCard({key:e,scope:this.scope},s(this,L));return t!==null?t.value:t}async zScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,scope:this.scope};return await this.storage.ZScan(o,s(this,L))}async type(e){let t=await this.storage.Type({key:e,scope:this.scope},s(this,L));return t!==null?t.value:t}async hget(e,t){return this.hGet(e,t)}async hGet(e,t){let i=await this.storage.HGet({key:e,field:t,scope:this.scope},s(this,L));return i!==null?i.value??void 0:i}async hset(e,t){return this.hSet(e,t)}async hSet(e,t){let i=Object.entries(t).map(([o,a])=>({field:o,value:a}));return(await this.storage.HSet({key:e,fv:i,scope:this.scope},s(this,L))).value}async hgetall(e){return this.hGetAll(e)}async hGetAll(e){let t=await this.storage.HGetAll({key:e,scope:this.scope},s(this,L));return t!==null?t.fieldValues:t}async hdel(e,t){return this.hDel(e,t)}async hDel(e,t){return(await this.storage.HDel({key:e,fields:t,scope:this.scope},s(this,L))).value}async hscan(e,t,i,n){return this.hScan(e,t,i,n)}async hScan(e,t,i,n){let o={key:e,cursor:t,pattern:i,count:n,scope:this.scope};return await this.storage.HScan(o,s(this,L))}async hkeys(e){return this.hKeys(e)}async hKeys(e){let t=await this.storage.HKeys({key:e,scope:this.scope},s(this,L));return t!==null?t.keys:t}async hincrby(e,t,i){return this.hIncrBy(e,t,i)}async hIncrBy(e,t,i){return(await this.storage.HIncrBy({key:e,field:t,value:i,scope:this.scope},s(this,L))).value}async hlen(e){return this.hLen(e)}async hLen(e){return(await this.storage.HLen({key:e,scope:this.scope})).value}};L=new WeakMap,gi=new WeakMap;var hi=kc;var gr,vi=class{constructor(e){l(this,gr);d(this,gr,e)}async runJob(e){return(await u.schedulerPlugin.Schedule({action:{type:e.name,data:e.data},cron:"cron"in e?e.cron:void 0,when:"runAt"in e?e.runAt:void 0},s(this,gr))).id}async cancelJob(e){await u.schedulerPlugin.Cancel({id:e},s(this,gr))}async listJobs(){return(await u.schedulerPlugin.List({after:new Date(0),before:new Date(Date.now()+31536e7)},s(this,gr))).actions.map(t=>(g(t.request?.action,"Scheduled job is malformed"),"when"in t.request&&t.request.when!=null?{id:t.id,name:t.request.action.type,runAt:t.request.when,data:t.request.action.data}:{id:t.id,name:t.request.action.type,cron:t.request.cron??"",data:t.request.action}))}};gr=new WeakMap;var us,yi=class{constructor(e){l(this,us);d(this,us,e)}async get(e){return(await this.getAll())[e]}async getAll(){let t=await u.settingsPlugin.GetSettings({},s(this,us));if(!t.installationSettings)throw new Error("Could not get installation settings");if(!t.appSettings)throw new Error("Could not get app settings");return{...ay(t.installationSettings.settings,u.installationSettings),...ay(t.appSettings.settings,u.appSettings)}}};us=new WeakMap;function ay(r,e){let t=Object.keys(r).reduce((i,n)=>(i[n]=pc(r[n]),i),{});return e&&dy(t,e),t}function dy(r,e){for(let t of e)t.type==="group"?dy(r,t.fields):!(t.name in r)&&"defaultValue"in t&&(r[t.name]=t.defaultValue)}import{EffectType as Sc,Form as d0,ToastAppearance as ly}from"@devvit/protos";var hr,bi,fd=class{constructor(e){l(this,hr,[]);l(this,bi);d(this,bi,e)}showForm(e,t){let i=u.formDefinitions.get(e);if(!i&&s(this,bi)){let a=s(this,bi).forms.get(e);a&&(i={form:a,onSubmit:()=>{}})}if(!i)throw new Error("Form does not exist. Make sure you have added it using Devvit.createForm at the root of your app.");let n=i.form instanceof Function?i.form(t??{}):i.form,o=d0.fromPartial({id:e,title:n.title,acceptLabel:n.acceptLabel,cancelLabel:n.cancelLabel,shortDescription:n.description});mr(n.fields),o.fields=pt(n.fields),s(this,hr).push({type:Sc.EFFECT_SHOW_FORM,showForm:{form:o}})}showToast(e){let t;e instanceof Object?t={text:e.text,appearance:e.appearance==="success"?ly.SUCCESS:ly.NEUTRAL}:t={text:e},s(this,hr).push({type:Sc.EFFECT_SHOW_TOAST,showToast:{toast:t}})}navigateTo(e){let t;typeof e=="string"?t=new URL(e).toString():t=new URL(e.permalink,"https://www.reddit.com").toString(),s(this,hr).push({type:Sc.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}get __effects(){return s(this,hr)}};hr=new WeakMap,bi=new WeakMap;function Be({metadata:r,ui:e,hooks:t,reconciler:i}){let n=new ci(r),o=new li(r),a=new hi(r),c=Qv(a,i?i.state:{}),p=new fi(r),f=new vi(r),v=new yi(r),m=e?new fd(i):void 0,b=new ui(r),y=new ai,C=new mi(r),I=t&&i?Hv(i):void 0,A=t&&i?qv(i):void 0,M=t&&i?Nv(i):void 0,ce=t&&i?_v(i):void 0;return{modLog:n,kvStore:o,redis:a,reddit:p,scheduler:f,settings:v,media:b,assets:y,realtime:C,get useForm(){return M??(()=>{throw new Error("useForm() is unavailable")})},get cache(){return c??(()=>{throw new Error("cache() is unavailable")})},get useState(){return I??(()=>{throw new Error("useState() is unavailable")})},get useInterval(){return A??(()=>{throw new Error("useInterval() is unavailable")})},get useChannel(){return ce??(()=>{throw new Error("useChannel() is unavailable")})},get ui(){if(!m)throw new Error("ui client is not available");return m}}}var uy={name:"@devvit/public-api",version:"0.11.0-dev",license:"BSD-3-Clause",repository:{type:"git",url:"https://developers.reddit.com/"},type:"module",exports:{".":"./dist/index.js","./package.json":"./package.json","./*":"./dist/*"},main:"./dist/index.js",files:["dist/**"],scripts:{build:"yarn build:icon-types && yarn build:semantic-colors && tsc && cp -af devvit.tsconfig.json dist/ && yarn build:types && yarn build:min && yarn build:unmin","build:icon-types":"make-icons src/types/icons.ts","build:min":"esbuild --bundle --sourcemap=linked --target=es2020 --format=esm --metafile=dist/meta.min.json --outfile=dist/public-api.min.js --external:@devvit/protos --minify src/index.ts","build:semantic-colors":"node scripts/make-semantic-colors.js","build:types":"api-extractor run && sed -ne '/declare global {/,$ p' src/devvit/Devvit.ts >> dist/public-api.d.ts","build:unmin":"esbuild --bundle --sourcemap=inline --target=es2020 --format=iife --metafile=dist/meta.json --outfile=dist/public-api.iife.js --global-name=devvitPublicAPI src/index.ts",clean:"rm -rf .turbo api-extractor coverage dist src/devvit/internals/semanticColors.ts src/types/icons.ts || :",clobber:"yarn clean && rm -rf node_modules",dev:"tsc -w","dev:build":"chokidar ./src --command 'yarn build' --ignore './src/types/icons.ts' --ignore './src/devvit/internals/semanticColors.ts'",lint:"redlint .","lint:fix":"yarn lint --fix",prepublishOnly:"publish-package-json",test:"yarn test:unit && yarn test:types && yarn test:size","test:size":"filesize","test:types":"tsc --noEmit","test:unit":"vitest run","test:unit-with-coverage":"vitest run --coverage"},types:"./dist/index.d.ts",dependencies:{"@devvit/protos":"0.11.0-dev","@devvit/shared-types":"0.11.0-dev","base64-js":"1.5.1","clone-deep":"4.0.1","core-js":"3.27.2","lodash.isequal":"4.5.0"},devDependencies:{"@ampproject/filesize":"4.3.0","@devvit/eslint-config":"0.11.0-dev","@devvit/repo-tools":"0.11.0-dev","@devvit/tsconfig":"0.11.0-dev","@microsoft/api-extractor":"7.41.0","@reddit/faceplate-ui":"11.3.3","@types/clone-deep":"4.0.1","@types/core-js":"2.5.6","@types/lodash.isequal":"4.5.6","@vitest/coverage-c8":"0.32.0","chokidar-cli":"3.0.0",esbuild:"0.23.0",eslint:"8.9.0",typescript:"5.3.2",vitest:"1.6.0"},publishConfig:{directory:"dist"},filesize:{"dist/public-api.min.js":{gzip:"78 KB",none:"255 KB"}},source:"./src/index.ts"};function le(r,e,t){let i=r[D.Subreddit]?.values[0];g(i,"subreddit is missing from Context");let n=r[D.AppUser]?.values[0],o=r[D.User]?.values[0],a=u0(r);return{get appAccountId(){return g(n,"appAccountId is missing from Context"),n},subredditId:i,userId:o,postId:e,commentId:t,debug:a,toJSON(){return{appAccountId:n,subredditId:i,userId:o,postId:e,commentId:t,debug:a}}}}function u0(r){let e={blocks:void 0,emitSnapshots:void 0,emitState:void 0,realtime:void 0,runtime:void 0,surface:void 0,useAsync:void 0,payments:void 0},t={};for(let n in e)t[n.toLowerCase()]=n;let i={};for(let n of(r[D.Debug]?.values??[]).join().split(",")){let[o,a]=n.split("=");o&&(o=o.trim(),a=a?.trim(),o.toLowerCase()in t&&(o=t[o.toLowerCase()]),i[o]??(i[o]=a||"true"))}return r[D.Debug]&&console.info(`[api] @devvit/public-api v${uy.version} ${Object.entries(i).map(([n,o])=>`${n}=${o}`).join(" ")}`),{...i,metadata:r}}function cy(r){return r.flatMap(e=>e.type==="group"?cy(e.fields):e)}async function gd(r,e,t){if(!e)throw new Error("Settings were not defined.");let i={success:!0,errors:{}},n=Et(r.fieldValues),o=cy(e);return await Promise.all(o.map(async a=>{let c=a.name;if(c&&a.onValidate){let p=n[c],f=a.onValidate,v=Object.assign(Be({metadata:t}),le(t)),m=await f({value:p,isEditing:r.editing},v);m&&(i.success=!1,i.errors[c]=m)}})),c0.fromJSON(i)}async function f0(){if(!u.appSettings)throw new Error("App settings were not defined.");return p0.fromJSON({fields:{fields:pt(u.appSettings)}})}async function g0(r,e){return gd(r,u.appSettings,e)}function my(r){r.provides(m0),U("GetAppSettingsFields",f0),U("ValidateAppForm",g0)}import{CustomPostDefinition as P0,RenderPostResponse as C0}from"@devvit/protos";import{BlockRenderEventType as Uc,EffectType as Ry}from"@devvit/protos";function ki(r){return r.__effects}function py(){let r=new Set;return e=>{let t=e,i=1;for(;r.has(t);)t=`${e}.${i++}`;return r.add(t),t}}import{BlockActionType as Lc,BlockAnimationDirection as Cy,BlockAnimationLoopMode as Iy,BlockAnimationType as wy,BlockAvatarBackground as xy,BlockAvatarFacing as Ay,BlockAvatarSize as Mt,BlockBorderWidth as bd,BlockButtonAppearance as Lt,BlockButtonSize as xc,BlockFullSnooSize as Pi,BlockGap as kd,BlockHorizontalAlignment as Ac,BlockIconSize as Sd,BlockImageResizeMode as cs,BlockPadding as ms,BlockRadius as ps,BlockSpacerShape as Tc,BlockSpacerSize as Pd,BlockStackDirection as Ec,BlockTextOutline as Rc,BlockTextOverflow as Oc,BlockTextSize as Ci,BlockTextStyle as Fc,BlockTextWeight as Ty,BlockType as De,BlockVerticalAlignment as Mc}from"@devvit/protos";var Pc={transparent:"transparent",black:"#000000",white:"#ffffff","coolgray-950":"#04090A","coolgray-900":"#0B1416","coolgray-850":"#0F1A1C","coolgray-800":"#131F23","coolgray-750":"#1A282D","coolgray-700":"#223237","coolgray-650":"#2A3C42","coolgray-600":"#33464C","coolgray-550":"#4B6066","coolgray-525":"#576F76","coolgray-500":"#667A80","coolgray-450":"#82959B","coolgray-400":"#A0B0B5","coolgray-350":"#B8C5C9","coolgray-300":"#D2DADD","coolgray-250":"#DAE0E3","coolgray-200":"#E2E7E9","coolgray-150":"#EAEDEF","coolgray-100":"#F2F4F5","coolgray-50":"#F9FAFA","puregray-950":"#080808","puregray-900":"#131313","puregray-850":"#181818","puregray-800":"#1E1E1E","puregray-750":"#272727","puregray-700":"#303030","puregray-650":"#393939","puregray-600":"#434343","puregray-550":"#5C5C5C","puregray-500":"#767676","puregray-450":"#919191","puregray-400":"#ACACAC","puregray-350":"#C3C3C3","puregray-300":"#D6D6D6","puregray-250":"#DDDDDD","puregray-200":"#E4E4E4","puregray-150":"#EBEBEB","puregray-100":"#F2F2F2","puregray-50":"#F8F8F8","orangered-950":"#190600","orangered-900":"#340E00","orangered-800":"#4F1500","orangered-700":"#721F00","orangered-600":"#962900","orangered-500":"#D93A00","orangered-400":"#FE7C53","orangered-300":"#FFBEA6","orangered-200":"#FFD5C6","orangered-100":"#FFEDE5","orangered-50":"#FFF6F3","red-950":"#1C0004","red-900":"#3A0008","red-800":"#58000C","red-700":"#7E0011","red-600":"#A50016","red-500":"#EB001F","red-400":"#FF6E80","red-300":"#FFADB8","red-200":"#FFCCD2","red-100":"#FFEAED","red-50":"#FFF6F7","sakurapink-950":"#1A0011","sakurapink-900":"#360024","sakurapink-800":"#530037","sakurapink-700":"#770051","sakurapink-600":"#9B006A","sakurapink-500":"#E00096","sakurapink-400":"#FF55BD","sakurapink-300":"#FFA5E3","sakurapink-200":"#FFC5EC","sakurapink-100":"#FFE5F9","sakurapink-50":"#FFF3FB","berrypurple-950":"#16001F","berrypurple-900":"#2E0041","berrypurple-800":"#470062","berrypurple-700":"#66008C","berrypurple-600":"#8700B5","berrypurple-500":"#BC0EFF","berrypurple-400":"#D55EFF","berrypurple-300":"#EEA7FF","berrypurple-200":"#F2C8FF","berrypurple-100":"#FBE6FF","berrypurple-50":"#FCF4FF","periwinkle-950":"#0D0B1F","periwinkle-900":"#1A1741","periwinkle-800":"#272262","periwinkle-700":"#372F8C","periwinkle-600":"#453BB5","periwinkle-500":"#6A5CFF","periwinkle-400":"#988EFF","periwinkle-300":"#C3BDFF","periwinkle-200":"#D8D4FF","periwinkle-100":"#ECEAFF","periwinkle-50":"#F7F6FF","alienblue-950":"#000C1D","alienblue-900":"#00183D","alienblue-800":"#00255D","alienblue-700":"#003584","alienblue-600":"#0045AC","alienblue-500":"#1870F4","alienblue-400":"#629FFF","alienblue-300":"#A7CCFF","alienblue-200":"#C6DCFF","alienblue-100":"#E4EFFF","alienblue-50":"#F3F7FF","lightblue-950":"#000D12","lightblue-900":"#001C26","lightblue-800":"#002A3A","lightblue-700":"#003F56","lightblue-600":"#005472","lightblue-500":"#007FAE","lightblue-400":"#47B0DB","lightblue-300":"#95DCFB","lightblue-200":"#B6E9FF","lightblue-100":"#D9F6FF","lightblue-50":"#ECFAFF","mintgreen-950":"#00100E","mintgreen-900":"#001E1B","mintgreen-800":"#002E28","mintgreen-700":"#00443C","mintgreen-600":"#005A4F","mintgreen-500":"#008675","mintgreen-400":"#45B9AB","mintgreen-300":"#96E1D8","mintgreen-200":"#B7ECE5","mintgreen-100":"#DAF7F4","mintgreen-50":"#ECFBF9","kiwigreen-950":"#021000","kiwigreen-900":"#032200","kiwigreen-800":"#053200","kiwigreen-700":"#084A00","kiwigreen-600":"#0A6000","kiwigreen-500":"#0E8A00","kiwigreen-400":"#55BD46","kiwigreen-300":"#A3E398","kiwigreen-200":"#BFEEB8","kiwigreen-100":"#DFF8DB","kiwigreen-50":"#EEFCED","lime-950":"#0C0E00","lime-900":"#1A1F00","lime-800":"#282F00","lime-700":"#3A4501","lime-600":"#4D5A01","lime-500":"#6B7E01","lime-400":"#A1B33B","lime-300":"#CFDB83","lime-200":"#DFE8A6","lime-100":"#EFF4CC","lime-50":"#F7FAE5","yellow-950":"#100D01","yellow-900":"#251E02","yellow-800":"#382D03","yellow-700":"#504104","yellow-600":"#665505","yellow-500":"#8F7407","yellow-400":"#DBAF00","yellow-300":"#FADB61","yellow-200":"#FFE88F","yellow-100":"#FFF2BD","yellow-50":"#FFFAE5","yelloworange-950":"#150C00","yelloworange-900":"#2C1A00","yelloworange-800":"#432700","yelloworange-700":"#623A00","yelloworange-600":"#814C00","yelloworange-500":"#B06400","yelloworange-400":"#FF9C1A","yelloworange-300":"#FFCD7C","yelloworange-200":"#FFDDA8","yelloworange-100":"#FFF0D3","yelloworange-50":"#FFF7EA","poopbrown-950":"#110B04","poopbrown-900":"#29190A","poopbrown-800":"#3B2510","poopbrown-700":"#54371A","poopbrown-600":"#6E4924","poopbrown-500":"#9A6D3F","poopbrown-400":"#CAA075","poopbrown-300":"#EECCAA","poopbrown-200":"#F6DDC3","poopbrown-100":"#FEEEDD","poopbrown-50":"#FEF7EE",pizzaRed:{light:"#ef5350",dark:"#c62828"},"global-brand-orangered":{light:"#FF4500",dark:"#FF4500"},"global-focus":{light:"#47B0DB",dark:"#007FAE"},"interactive-content-disabled":{light:"#0000003f",dark:"#ffffff3f"},"interactive-background-disabled":{light:"#0000000c",dark:"#ffffff0c"},"interactive-pressed":{light:"#00000028",dark:"#ffffff28"},"neutral-content":{light:"#2A3C42",dark:"#B8C5C9"},"neutral-content-disabled":{light:"#D6D6D6",dark:"#303030"},"neutral-content-weak":{light:"#576F76",dark:"#82959B"},"neutral-content-strong":{light:"#0F1A1C",dark:"#F2F4F5"},"neutral-background":{light:"#ffffff",dark:"#0B1416"},"neutral-background-selected":{light:"#EAEDEF",dark:"#1A282D"},"neutral-background-weak":{light:"#F9FAFA",dark:"#04090A"},"neutral-background-medium":{light:"#F8F8F8",dark:"#131313"},"neutral-background-strong":{light:"#ffffff",dark:"#0F1A1C"},"neutral-background-hover":{light:"#F2F4F5",dark:"#131F23"},"neutral-border":{light:"#00000033",dark:"#ffffff33"},"neutral-border-medium":{light:"#0000007f",dark:"#ffffff7f"},"neutral-border-weak":{light:"#00000019",dark:"#ffffff19"},"neutral-border-strong":{light:"#0F1A1C",dark:"#F2F4F5"},primary:{light:"#0045AC",dark:"#629FFF"},"primary-hover":{light:"#003584",dark:"#A7CCFF"},"primary-visited":{light:"#8700B5",dark:"#D55EFF"},"primary-onBackground":{light:"#ffffff",dark:"#ffffff"},"primary-onBackground-selected":{light:"#ffffff",dark:"#000000"},"primary-background":{light:"#0045AC",dark:"#0045AC"},"primary-background-hover":{light:"#003584",dark:"#1870F4"},"primary-background-selected":{light:"#00255D",dark:"#629FFF"},secondary:{light:"#0F1A1C",dark:"#F2F4F5"},"secondary-hover":{light:"#000000",dark:"#ffffff"},"secondary-weak":{light:"#576F76",dark:"#82959B"},"secondary-onBackground":{light:"#000000",dark:"#ffffff"},"secondary-background":{light:"#EAEDEF",dark:"#1A282D"},"secondary-background-hover":{light:"#E2E7E9",dark:"#223237"},"secondary-background-selected":{light:"#D2DADD",dark:"#33464C"},"secondary-plain":{light:"#0F1A1C",dark:"#F2F4F5"},"secondary-plain-hover":{light:"#000000",dark:"#ffffff"},"danger-background":{light:"#EB001F",dark:"#A50016"},"danger-background-disabled":{light:"#FFCCD2",dark:"#3A0008"},"danger-background-hover":{light:"#A50016",dark:"#EB001F"},"danger-onBackground":{light:"#ffffff",dark:"#ffffff"},"danger-content":{light:"#A50016",dark:"#FF6E80"},"danger-content-hover":{light:"#7E0011",dark:"#FFADB8"},"danger-content-default":{light:"#ffffff",dark:"#ffffff"},"brand-background":{light:"#D93A00",dark:"#D93A00"},"brand-onBackground":{light:"#ffffff",dark:"#ffffff"},"brand-background-hover":{light:"#962900",dark:"#962900"},"media-background":{light:"#00000099",dark:"#00000099"},"media-onbackground":{light:"#ffffff",dark:"#ffffff"},"media-onbackground-weak":{light:"#E2E7E9",dark:"#E2E7E9"},"media-background-hover":{light:"#000000cc",dark:"#000000cc"},"media-onbackground-disabled":{light:"#ffffff3f",dark:"#ffffff3f"},"media-border-selected":{light:"#ffffff",dark:"#ffffff"},"media-background-selected":{light:"#000000cc",dark:"#000000cc"},"success-content":{light:"#0A6000",dark:"#55BD46"},"success-hover":{light:"#084A00",dark:"#A3E398"},"success-onBackground":{light:"#ffffff",dark:"#ffffff"},"success-background":{light:"#0E8A00",dark:"#0A6000"},"success-background-hover":{light:"#0A6000",dark:"#0E8A00"},"warning-content":{light:"#665505",dark:"#DBAF00"},"warning-content-hover":{light:"#504104",dark:"#FADB61"},"warning-onBackground":{light:"#000000",dark:"#000000"},"warning-background":{light:"#DBAF00",dark:"#DBAF00"},"warning-background-hover":{light:"#8F7407",dark:"#FADB61"},"upvote-content":{light:"#962900",dark:"#FE7C53"},"upvote-content-weak":{light:"#FF4500",dark:"#FF4500"},"upvote-disabled":{light:"#9629004c",dark:"#FE7C534c"},"upvote-onBackground":{light:"#ffffff",dark:"#ffffff"},"upvote-background":{light:"#D93A00",dark:"#D93A00"},"upvote-background-hover":{light:"#962900",dark:"#962900"},"upvote-background-disabled":{light:"#D93A004c",dark:"#D93A004c"},"downvote-content":{light:"#453BB5",dark:"#988EFF"},"downvote-content-weak":{light:"#6A5CFF",dark:"#6A5CFF"},"downvote-disabled":{light:"#453BB54c",dark:"#988EFF4c"},"downvote-onBackground":{light:"#ffffff",dark:"#ffffff"},"downvote-background":{light:"#6A5CFF",dark:"#453BB5"},"downvote-background-hover":{light:"#453BB5",dark:"#453BB5"},"downvote-background-disabled":{light:"#6A5CFF4c",dark:"#6A5CFF4c"},"brand-gradient-default":{light:"",dark:""},"brand-gradient-default-highlight":{light:"",dark:""},"brand-gradient-hover":{light:"",dark:""},"brand-gradient-hover-highlight":{light:"",dark:""},"brand-gradient-active":{light:"",dark:""},"brand-gradient-active-highlight":{light:"",dark:""},"gradient-media":{light:"",dark:""},"gradient-media-strong":{light:"",dark:""},"transparent-background-hover":{light:"#82959B19",dark:"#667A8019"},"global-black":{light:"#000000",dark:"#000000"},"global-white":{light:"#ffffff",dark:"#ffffff"},"global-orangered":{light:"#D93A00",dark:"#D93A00"},"global-alienblue":{light:"#1870F4",dark:"#1870F4"},"global-darkblue":{light:"#131F23",dark:"#131F23"},"tone-1":{light:"#131313",dark:"#F2F2F2"},"tone-2":{light:"#434343",dark:"#ACACAC"},"tone-3":{light:"#ACACAC",dark:"#434343"},"tone-4":{light:"#E4E4E4",dark:"#303030"},"tone-5":{light:"#F2F2F2",dark:"#1E1E1E"},"tone-6":{light:"#F8F8F8",dark:"#131313"},"tone-7":{light:"#ffffff",dark:"#080808"},"action-upvote":{light:"#D93A00",dark:"#D93A00"},"action-downvote":{light:"#6A5CFF",dark:"#6A5CFF"},"alert-caution":{light:"#8F7407",dark:"#8F7407"},"identity-admin":{light:"#D93A00",dark:"#D93A00"},"identity-moderator":{light:"#0E8A00",dark:"#0E8A00"},"identity-self":{light:"#008675",dark:"#008675"},"identity-coins":{light:"#DBAF00",dark:"#DBAF00"},"category-live":{light:"#D93A00",dark:"#D93A00"},"category-nsfw":{light:"#E00096",dark:"#E00096"},"category-spoiler":{light:"#131313",dark:"#F2F2F2"},"ui-canvas":{light:"#F2F2F2",dark:"#080808"},"ui-modalbackground":{light:"#ffffff",dark:"#0F1A1C"},"avatar-gradient":{light:"",dark:""},"opacity-highlight":{light:"",dark:""},"opacity-08":{light:"#13131314",dark:"#13131314"},"opacity-50":{light:"#0000007f",dark:"#F2F2F27f"},scrim:{light:"#00000099",dark:"#00000099"},"scrim-strong":{light:"#000000cc",dark:"#000000cc"},"scrim-gradient":{light:"",dark:""},online:{light:"#55BD46",dark:"#55BD46"},favorite:{light:"#8F7407",dark:"#DBAF00"}};var fy={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",transparent:"#FFFFFF00",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},gy=r=>!!r.match(/^(#[0-9a-fA-F]{3,8}).*/),hy=r=>r in Pc,Cc=r=>r in fy,vy=r=>!!r.match(/^rgba?\(.*/),yy=r=>!!r.match(/^hsla?\(.*/),by=(r,e="light")=>{if(Cc(r))return hd(r);let i=Pc[r];return typeof i=="string"?i:i[e]},hd=r=>fy[r]??r,ky=r=>{let[e,t,i,n]=r.replace(/^rgba?\(|\s+|\)$/g,"").split(",");if(!e||!t||!i)return r;let a=[...[e,t,i].map(p=>parseFloat(p))];if(n){let p=parseFloat(n),f=Math.round(p*255);a.push(f)}return`#${a.map(p=>p.toString(16).padStart(2,"0")).join("")}`};import{BlockStackDirection as vd}from"@devvit/protos";var Ic={stackParentLayout:{hasHeight:!0,hasWidth:!0,direction:vd.UNRECOGNIZED,alignment:void 0}};function Py(r,e,t){if(!e)return{hasHeight:!1,hasWidth:!1};let{growDirection:i,stretchDirection:n}=h0(r?.grow,e.direction,e.alignment),o=t?.height?.value?.value||t?.height?.min?.value||Sy(2,i,n,e.hasHeight),a=t?.width?.value?.value||t?.width?.min?.value||Sy(1,i,n,e.hasWidth);return{hasHeight:!!o,hasWidth:!!a}}function Sy(r,e,t,i){return e===r&&i||t===r&&i}function h0(r,e,t){let i=e===vd.STACK_VERTICAL||e===vd.UNRECOGNIZED,n=e===vd.STACK_HORIZONTAL,o=0;n&&r?o=1:i&&r&&(o=2);let a=t===void 0||t.horizontal===void 0,c=t===void 0||t.vertical===void 0,p=n?!!c:i?!!a:!1,f=0;return n&&p?f=2:i&&p&&(f=1),{growDirection:o,stretchDirection:f}}import{BlockSizeUnit as vr,BlockStackDirection as yd}from"@devvit/protos";function Si(r){if(r==null)return;if(typeof r=="number")return{value:r,unit:vr.SIZE_UNIT_PERCENT};let e=r.match(/^(\d+(?:\.\d+)?)(px|%)?$/);if(e==null)return;let t=vr.SIZE_UNIT_PERCENT;return e.at(2)==="px"&&(t=vr.SIZE_UNIT_PIXELS),{value:Number.parseFloat(e[1]),unit:t}}function v0(r,e){return(r.width?.value?.unit===vr.SIZE_UNIT_PERCENT||r.width?.min?.unit===vr.SIZE_UNIT_PERCENT)&&(e.direction===yd.STACK_HORIZONTAL||e.direction===yd.STACK_DEPTH)&&(e.hasWidth||(r.width=void 0)),(r.height?.value?.unit===vr.SIZE_UNIT_PERCENT||r.height?.min?.unit===vr.SIZE_UNIT_PERCENT)&&(e.direction===yd.STACK_VERTICAL||e.direction===yd.STACK_DEPTH)&&(e.hasHeight||(r.height=void 0)),r}function wc(r,e){if(r){let t=r.width!=null||r.minWidth!=null||r.maxWidth!=null,i=r.height!=null||r.minHeight!=null||r.maxHeight!=null;if(t||i||r.grow!=null){let n={width:t?{value:Si(r.width),min:Si(r.minWidth),max:Si(r.maxWidth)}:void 0,height:i?{value:Si(r.height),min:Si(r.minHeight),max:Si(r.maxHeight)}:void 0,grow:r.grow};return e.stackParentLayout&&(n=v0(n,e.stackParentLayout)),n}}}var Ey="data-",y0=new Set(["onPress","onMessage"]),b0=new Map([["onPress",Lc.ACTION_CLICK],["onMessage",Lc.ACTION_WEBVIEW]]),fs,Ii=class{constructor(e=()=>{}){l(this,fs);d(this,fs,e)}createBlocksElementOrThrow({type:e,props:t,children:i}){let n=this.createBlocksElement({type:e,props:t,children:i},Ic);if(!n)throw new Error(`Could not create block of type ${e}`);return n}createBlocksElement({type:e,props:t,children:i},n){switch(e){case"blocks":return this.makeRoot(t,...i);case"hstack":return this.makeHStack(t,n,...i);case"vstack":return this.makeVStack(t,n,...i);case"zstack":return this.makeZStack(t,n,...i);case"text":return this.makeText(t,n,...i);case"button":return this.makeButton(t,n,...i);case"image":return this.makeImage(t,n);case"spacer":return this.makeSpacer(t,n);case"icon":return this.makeIcon(t,n);case"avatar":return this.makeAvatar(t,n);case"fullsnoo":return this.makeFullSnoo(t,n);case"animation":return this.makeAnimation(t,n);case"webview":return this.makeWebView(t,n);case"__fragment":throw new Error("root fragment is not supported - use 'blocks' instead")}}makeRootHeight(e){switch(e){case"regular":return 320;case"tall":return 512}}makeBlockPadding(e){switch(e){case"none":return ms.PADDING_NONE;case"xsmall":return ms.PADDING_XSMALL;case"small":return ms.PADDING_SMALL;case"medium":return ms.PADDING_MEDIUM;case"large":return ms.PADDING_LARGE}}makeBlockRadius(e){switch(e){case"none":return ps.RADIUS_NONE;case"small":return ps.RADIUS_SMALL;case"medium":return ps.RADIUS_MEDIUM;case"large":return ps.RADIUS_LARGE;case"full":return ps.RADIUS_FULL}}makeBlockGap(e){switch(e){case"none":return kd.GAP_NONE;case"small":return kd.GAP_SMALL;case"medium":return kd.GAP_MEDIUM;case"large":return kd.GAP_LARGE}}makeBlockAlignment(e){if(e===void 0)return;let t,i;if(e.includes("top")?t=Mc.ALIGN_TOP:e.includes("middle")?t=Mc.ALIGN_MIDDLE:e.includes("bottom")&&(t=Mc.ALIGN_BOTTOM),e.includes("start")?i=Ac.ALIGN_START:e.includes("center")?i=Ac.ALIGN_CENTER:e.includes("end")&&(i=Ac.ALIGN_END),t!==void 0||i!==void 0)return{vertical:t,horizontal:i}}makeBlockBorder(e,t,i,n){if(!e&&!t)return;let o;switch(e){case"none":o=bd.BORDER_WIDTH_NONE;break;case"thin":o=bd.BORDER_WIDTH_THIN;break;case"thick":o=bd.BORDER_WIDTH_THICK;break;default:o=bd.BORDER_WIDTH_THIN;break}let a=t??"neutral-border-weak",c=this.getThemedColors(a,i,n);return{width:o,color:c?.light,colors:c}}makeBlockTextSize(e){switch(e){case"xsmall":return Ci.TEXT_SIZE_XSMALL;case"small":return Ci.TEXT_SIZE_SMALL;case"medium":return Ci.TEXT_SIZE_MEDIUM;case"large":return Ci.TEXT_SIZE_LARGE;case"xlarge":return Ci.TEXT_SIZE_XLARGE;case"xxlarge":return Ci.TEXT_SIZE_XXLARGE}}makeBlockTextStyle(e){switch(e){case"body":return Fc.TEXT_STYLE_BODY;case"metadata":return Fc.TEXT_STYLE_METADATA;case"heading":return Fc.TEXT_STYLE_HEADING}}makeBlockTextOutline(e){switch(e){case"none":return Rc.TEXT_OUTLINE_NONE;case"thin":return Rc.TEXT_OUTLINE_THIN;case"thick":return Rc.TEXT_OUTLINE_THICK}}makeBlockTextWeight(e){switch(e){case"regular":return Ty.TEXT_WEIGHT_REGULAR;case"bold":return Ty.TEXT_WEIGHT_BOLD}}makeBlockTextOverflow(e){switch(e){case"clip":return Oc.TEXT_OVERFLOW_CLIP;case"ellipsis":return Oc.TEXT_OVERFLOW_ELLIPSE}return Oc.TEXT_OVERFLOW_ELLIPSE}makeBlockButtonAppearance(e){switch(e){case"secondary":return Lt.BUTTON_APPEARANCE_SECONDARY;case"primary":return Lt.BUTTON_APPEARANCE_PRIMARY;case"plain":return Lt.BUTTON_APPEARANCE_PLAIN;case"bordered":return Lt.BUTTON_APPEARANCE_BORDERED;case"media":return Lt.BUTTON_APPEARANCE_MEDIA;case"destructive":return Lt.BUTTON_APPEARANCE_DESTRUCTIVE;case"caution":return Lt.BUTTON_APPEARANCE_CAUTION;case"success":return Lt.BUTTON_APPEARANCE_SUCCESS}}makeBlockButtonSize(e){switch(e){case"small":return xc.BUTTON_SIZE_SMALL;case"medium":return xc.BUTTON_SIZE_MEDIUM;case"large":return xc.BUTTON_SIZE_LARGE}}makeBlockImageResizeMode(e){switch(e){case"none":return cs.IMAGE_RESIZE_NONE;case"fit":return cs.IMAGE_RESIZE_FIT;case"fill":return cs.IMAGE_RESIZE_FILL;case"cover":return cs.IMAGE_RESIZE_COVER;case"scale-down":return cs.IMAGE_RESIZE_SCALE_DOWN}}makeBlockSpacerSize(e){switch(e){case"xsmall":return Pd.SPACER_XSMALL;case"small":return Pd.SPACER_SMALL;case"medium":return Pd.SPACER_MEDIUM;case"large":return Pd.SPACER_LARGE}}makeBlockSpacerShape(e){switch(e){case"invisible":return Tc.SPACER_INVISIBLE;case"thin":return Tc.SPACER_THIN;case"square":return Tc.SPACER_SQUARE}}makeBlockIconSize(e){switch(e){case"xsmall":return Sd.ICON_SIZE_XSMALL;case"small":return Sd.ICON_SIZE_SMALL;case"medium":return Sd.ICON_SIZE_MEDIUM;case"large":return Sd.ICON_SIZE_LARGE}}makeBlockAvatarSize(e){switch(e){case"xxsmall":return Mt.AVATAR_SIZE_XXSMALL;case"xsmall":return Mt.AVATAR_SIZE_XSMALL;case"small":return Mt.AVATAR_SIZE_SMALL;case"medium":return Mt.AVATAR_SIZE_MEDIUM;case"large":return Mt.AVATAR_SIZE_LARGE;case"xlarge":return Mt.AVATAR_SIZE_XXLARGE;case"xxlarge":return Mt.AVATAR_SIZE_XXLARGE;case"xxxlarge":return Mt.AVATAR_SIZE_XXXLARGE}}makeBlockAvatarFacing(e){switch(e){case"left":return Ay.AVATAR_FACING_LEFT;case"right":return Ay.AVATAR_FACING_RIGHT}}makeBlockFullSnooSize(e){switch(e){case"xsmall":return Pi.FULLSNOO_XSMALL;case"small":return Pi.FULLSNOO_SMALL;case"medium":return Pi.FULLSNOO_MEDIUM;case"large":return Pi.FULLSNOO_LARGE;case"xlarge":return Pi.FULLSNOO_XLARGE;case"xxlarge":return Pi.FULLSNOO_XXLARGE}}makeBlockAvatarBackground(e){switch(e){case"dark":return xy.AVATAR_BG_DARK;case"light":return xy.AVATAR_BG_LIGHT}}makeBlockAnimationType(e){return e==="lottie"||e===void 0?wy.ANIM_LOTTIE:wy.UNRECOGNIZED}makeBlockAnimationDirection(e){switch(e){case"backward":return Cy.ANIM_DIR_BACKWARD;case"forward":return Cy.ANIM_DIR_FORWARD}}makeBlockLoopMode(e){switch(e){case"repeat":return Iy.ANIM_LOOP_REPEAT;case"bounce":return Iy.ANIM_LOOP_BOUNCE}}getDataSet(e){return Object.keys(e).filter(t=>t.startsWith(Ey)).reduce((t,i)=>(t[i.substring(Ey.length)]=e[i],t),{})}makeActions(e,t){let i=[],n=this.getDataSet(t);return y0.forEach(o=>{if(o in t){let a=t[o];i.push({type:b0.get(o)??Lc.UNRECOGNIZED,id:a.toString(),data:n})}}),i}blockColorToHex(e,t="light"){if(e)return e=e.toLowerCase(),gy(e)?e:hy(e)?by(e,t):Cc(e)?hd(e):vy(e)?ky(e):yy(e)?e:(console.warn(`Could not parse color: ${e}.`),hd("red"))}childrenToBlocks(e,t){return e.flatMap(i=>(typeof i!="string"?this.createBlocksElement(i,t):void 0)??[])}getThemedColors(e,t,i){let n=this.blockColorToHex(t,"light"),o=this.blockColorToHex(i,"dark"),a=[];if(e&&(!n||!o)){let c=Array.from(e?.matchAll(/[\w#-]+(?:\([\w\t ,.#-]+\))?/g)??[]);a.push(...c.map(p=>p[0]))}return n||(n=this.blockColorToHex(a?.at(0),"light")),o||(o=this.blockColorToHex(a?.at(1)??a?.at(0),"dark")),n||o?{light:n,dark:o}:void 0}parsePixels(e){return typeof e=="string"?Number(e.slice(0,-2)):e}resolveAssetUrl(e,t){return s(this,fs).call(this)?.getURL(e,t)??e}childrenToString(e){return e.map(t=>t.toString()).join("")}makeRoot(e,...t){return this.wrapRoot(e,this.childrenToBlocks(t,Ic))}wrapRoot(e,t){return this.makeBlock(De.BLOCK_ROOT,{},{},{rootConfig:{children:t,height:this.makeRootHeight(u.customPostType?.height??e?.height??"regular")}})}makeStackBlock(e,t,i,n){let o=this.getThemedColors(t?.backgroundColor,t?.lightBackgroundColor,t?.darkBackgroundColor),a=this.makeBlockAlignment(t?.alignment),c=wc(t,i),p=Py(t,i.stackParentLayout,c);return this.makeBlock(De.BLOCK_STACK,t,i,{stackConfig:{alignment:a,backgroundColor:o?.light,backgroundColors:o,border:this.makeBlockBorder(t?.border,t?.borderColor,t?.lightBorderColor,t?.darkBorderColor),children:this.childrenToBlocks(n,{stackParentLayout:{...p,direction:e,alignment:a}}),cornerRadius:this.makeBlockRadius(t?.cornerRadius),direction:e,gap:this.makeBlockGap(t?.gap),padding:this.makeBlockPadding(t?.padding),reverse:t?.reverse}})}makeHStack(e,t,...i){return this.makeStackBlock(Ec.STACK_HORIZONTAL,e,t,i)}makeVStack(e,t,...i){return this.makeStackBlock(Ec.STACK_VERTICAL,e,t,i)}makeZStack(e,t,...i){return this.makeStackBlock(Ec.STACK_DEPTH,e,t,i)}makeText(e,t,...i){let n=this.getThemedColors(e?.color,e?.lightColor,e?.darkColor);return this.makeBlock(De.BLOCK_TEXT,e,t,{textConfig:{alignment:this.makeBlockAlignment(e?.alignment),color:n?.light,colors:n,outline:this.makeBlockTextOutline(e?.outline),size:this.makeBlockTextSize(e?.size),style:this.makeBlockTextStyle(e?.style),text:this.childrenToString(i),weight:this.makeBlockTextWeight(e?.weight),selectable:e?.selectable,wrap:e?.wrap,overflow:this.makeBlockTextOverflow(e?.overflow)}})}makeButton(e,t,...i){let n=this.getThemedColors(e?.textColor,e?.lightTextColor,e?.darkTextColor);return this.makeBlock(De.BLOCK_BUTTON,e,t,{buttonConfig:{buttonAppearance:this.makeBlockButtonAppearance(e?.appearance),icon:e?.icon,buttonSize:this.makeBlockButtonSize(e?.size),text:this.childrenToString(i),textColor:n?.light,textColors:n,disabled:e?.disabled}})}makeImage(e,t){return e&&this.makeBlock(De.BLOCK_IMAGE,e,t,{imageConfig:{description:e?.description,resizeMode:this.makeBlockImageResizeMode(e.resizeMode),url:this.resolveAssetUrl(e.url),width:this.parsePixels(e.imageWidth),height:this.parsePixels(e.imageHeight)}})}makeSpacer(e,t){return this.makeBlock(De.BLOCK_SPACER,e,t,{spacerConfig:{size:this.makeBlockSpacerSize(e?.size),shape:this.makeBlockSpacerShape(e?.shape)}})}makeIcon(e,t){let i=this.getThemedColors(e?.color,e?.lightColor,e?.darkColor);return e&&this.makeBlock(De.BLOCK_ICON,e,t,{iconConfig:{icon:e.name,color:i?.light,colors:i,size:this.makeBlockIconSize(e.size)}})}makeAvatar(e,t){return e&&this.makeBlock(De.BLOCK_AVATAR,e,t,{avatarConfig:{thingId:e.thingId,size:this.makeBlockAvatarSize(e.size),facing:this.makeBlockAvatarFacing(e.facing),background:this.makeBlockAvatarBackground(e.background)}})}makeFullSnoo(e,t){return e&&this.makeBlock(De.BLOCK_FULLSNOO,e,t,{fullsnooConfig:{userId:e.userId,facing:this.makeBlockAvatarFacing(e.facing),size:this.makeBlockFullSnooSize(e.size)}})}makeAnimation(e,t){return e&&this.makeBlock(De.BLOCK_ANIMATION,e,t,{animationConfig:{type:this.makeBlockAnimationType(e.type),url:this.resolveAssetUrl(e.url),loop:e.loop,loopMode:this.makeBlockLoopMode(e.loopMode),autoplay:e.autoplay,width:this.parsePixels(e.imageWidth),height:this.parsePixels(e.imageHeight),direction:this.makeBlockAnimationDirection(e.direction),speed:e.speed}})}makeWebView(e,t){return e&&this.makeBlock(De.BLOCK_WEBVIEW,e,t,{webviewConfig:{url:this.resolveAssetUrl(e.url,{webview:!0}),state:e.state}})}makeBlock(e,t,i,n){return{type:e,sizes:wc(t,i),config:n,actions:(t&&this.makeActions(e,t))??[],id:t?.id,key:t?.key}}ensureRootBlock(e){let t;if(e.type===De.BLOCK_ROOT?(e.config?.rootConfig&&u.customPostType?.height&&(e.config.rootConfig.height=this.makeRootHeight(u.customPostType?.height)),t=e):t=this.wrapRoot(void 0,[e]),!t)throw new Error("Could not create root block");return t}};fs=new WeakMap;function Oy(r){if(typeof r=="string")throw new Error("Root element cannot be a string")}var Fy=r=>{let e="",t=r.props?Object.keys(r.props).map(i=>i==="onPress"?"":`${i}="${r.props[i]}"`).join(" "):"";e+=`<${r.type}${t?" "+t:""}>`;for(let i of r.children)typeof i=="string"?e+=i:e+=Fy(i);return e+=`</${r.type}>`,e};function k0(r){return" ".repeat(r)}function S0(r){let e="",t=0,i=r.split(/>\s*</);for(let n=0;n<i.length;n++){let o=i[n];n===0&&(o=o.trim()),n===i.length-1&&(o=o.trim());let a=o.charAt(0)==="/";a&&t--,e+=k0(t),n!==0&&(e+="<"),e+=o,n!==i.length-1&&(e+=`>
2
2
  `),!a&&o.indexOf("</")===-1&&o.charAt(o.length-1)!=="/"&&t++}return e}var _e,My,gs,Bc,hs,ft=class{constructor(e,t,i,n,o){l(this,_e);this.renderState={};this.currentComponentKey=[];this.currentHookIndex=0;this.actions=new Map;this.forms=new Map;this.realtimeChannels=[];this.realtimeUpdated=!1;this.pendingHooks=[];this.isRendering=!1;this.transformer=new Ii(()=>this.assets);this.effects=[];l(this,hs,!1);this.component=e,this.event=t,this.state={__renderState:{},...i},this.metadata=n,this.state.__realtimeChannels&&(this.realtimeChannels=this.state.__realtimeChannels);let a=Be({reconciler:this,hooks:!0,ui:!0,metadata:n});this.cache=a.cache,this.modLog=a.modLog,this.reddit=a.reddit,this.kvStore=a.kvStore,this.redis=a.redis,this.settings=a.settings,this.scheduler=a.scheduler,this.media=a.media,this.assets=a.assets,this.realtime=a.realtime,this.dimensions=o,this.ui=a.ui,this.hooks={useState:a.useState,useInterval:a.useInterval,useForm:a.useForm,useChannel:a.useChannel}}emitEffect(e,t){this.effects.push(t)}async render(){await this.reconcile(),this.isRendering=!0;let e=await this.buildBlocksUI();return this.isRendering=!1,e}makeUniqueActionID(e){let t=e,i=1;for(;this.actions.has(t);)t=`${e}.${i++}`;return t}async reconcile(){let e=S(this,_e,gs).call(this),t={type:this.component,props:e,children:[]},i=await this.processBlock(t);if(Oy(i),this.transformer.createBlocksElementOrThrow(i),this.isUserActionRender&&this.blockRenderEventId){let n=this.actions.get(this.blockRenderEventId);n&&await n(this.event.data)}for(let n of this.pendingHooks)await n();this.buildNextState(),S(this,_e,My).call(this)}async buildBlocksUI(){let e=S(this,_e,gs).call(this),t={type:this.component,props:e,children:[]},i=await this.renderElement(e,t);return this.transformer.ensureRootBlock(i)}async renderElement(e,t){let i=await this.processBlock(t);return Oy(i),(u.debug.emitSnapshots||e.debug.emitSnapshots)&&console.debug(S0(Fy(i))),(u.debug.emitState||e.debug.emitState)&&console.debug(JSON.stringify(this.state,void 0,2)),this.transformer.createBlocksElementOrThrow(i)}async processProps(e){let t=e.props??{},i=["onPress","onMessage"];for(let n of i)if(n in t){let o=t[n],a=o?.name,c=this.makeUniqueActionID(`${e.type}.${a??n}`);this.actions.set(c,o),t[n]=c}}async processBlock(e,t=py(),i=[]){let n=e;if(typeof n.type=="string"){let c=[];for(let m=0;m<n.children.length;m++){let b=n.children[m];b!=null&&c.push(await this.processBlock(b,t,[...i,`${n.type}.${m}`]))}let p=c.flat(),f=S(this,_e,Bc).call(this,p);return await this.processProps(n),{type:n.type,props:n.props,children:f}}if(typeof n.type=="function"){let c=t(`${i.length?i.join("."):"root"}.${n.type.name.length?n.type.name:"anonymous"}`);this.currentComponentKey.push(c),this.renderState[c]||(this.renderState[c]={});let p=n.children.flatMap(m=>m),f={...S(this,_e,gs).call(this),...n.props,children:p},v;for(;v===void 0;)try{v=await n.type(f,S(this,_e,gs).call(this))}catch(m){if(m instanceof Promise)v=await m;else throw m}if(!this.isInitialRender){let m=this.getPreviousComponentState();if(Object.keys(m).length!==this.currentHookIndex)throw new Error("Invalid hook call. Hooks can only be called at the top-level of a function component. Make sure that you are not calling hooks inside loops, conditions, or nested functions.")}if(this.currentComponentKey.pop(),this.currentHookIndex=0,typeof v=="object")return this.processBlock(v,t,[...i,n.type.name])}if(typeof n=="string")return n;if(typeof n=="number")return`${n}`;let o=[],a="";return Array.isArray(n)?o=n:typeof n.type>"u"&&n.children&&(o=n.children,a="fragmentChild."),{type:"__fragment",props:void 0,children:await Promise.all(o.flatMap(async(c,p)=>await this.processBlock(c,t,[...i,`${a}${p}`])))}}getCurrentComponentKey(){if(!this.currentComponentKey.at(-1))throw new Error("Current component key is missing");return this.currentComponentKey}getCurrentComponentState(){let e=this.currentComponentKey.at(-1);if(!e)throw new Error("Current component key is missing");return this.renderState[e]}getPreviousComponentState(){let e=this.currentComponentKey.at(-1);if(!e)throw new Error("Current component key is missing");return this.state.__renderState[e]||(this.state.__renderState[e]={}),this.state.__renderState[e]}get isInitialRender(){return this.event?this.event.type===Uc.RENDER_INITIAL:!1}get isUserActionRender(){return this.event?this.event.type===Uc.RENDER_USER_ACTION:!1}get isEffectRender(){return this.event?this.event.type===Uc.RENDER_EFFECT_EVENT:!1}get formSubmittedEvent(){return this.event?this.event.formSubmitted:!1}get blockRenderEventId(){return this.event?this.event.id:!1}get realtimeEvent(){if(!this.event)return!1;let e=this.event.realtimeEvent;return e?.event?.channel?e:!1}runHook(e){this.pendingHooks.push(e)}rerenderIn(e){s(this,hs)||(d(this,hs,!0),this.effects.push({type:Ry.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:e/1e3}}))}addRealtimeChannel(e){this.realtimeChannels.push(e),this.realtimeUpdated=!0}removeRealtimeChannel(e){this.realtimeChannels=this.realtimeChannels.filter(t=>t!==e),this.realtimeUpdated=!0}get realtimeEffect(){return this.realtimeUpdated&&this.realtimeChannels.length>0?[{type:Ry.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:this.realtimeChannels}}]:[]}getEffects(){return[...ki(this.ui),...this.effects,...this.realtimeEffect]}buildNextState(){for(let e of Object.keys(this.renderState))this.renderState[e]=Object.values(this.renderState[e]);this.state={__postData:this.state.__postData,__renderState:this.renderState,__cache:this.state.__cache,...this.realtimeChannels.length>0?{__realtimeChannels:this.realtimeChannels}:{}}}};_e=new WeakSet,My=function(){this.actions.clear(),this.currentComponentKey=[],this.currentHookIndex=0,this.pendingHooks=[],this.realtimeChannels=[],this.realtimeUpdated=!1},gs=function(){let e={...le(this.metadata,this.state.__postData?.thingId),modLog:this.modLog,reddit:this.reddit,cache:this.cache,kvStore:this.kvStore,redis:this.redis,settings:this.settings,scheduler:this.scheduler,media:this.media,assets:this.assets,realtime:this.realtime,ui:this.ui,dimensions:this.dimensions,uiEnvironment:{timezone:this.metadata[D.Timezone]?.values[0],locale:this.metadata[D.Language]?.values[0],dimensions:this.dimensions},...this.hooks};return e.debug.effects=this,e},Bc=function(e){let t=[];for(let i of e)typeof i=="string"?t.push(i):i.type==="__fragment"?t.push(...S(this,_e,Bc).call(this,i.children)):t.push(i);return t},hs=new WeakMap;async function I0(r,e){let t=u.customPostType;if(!t)throw new Error("Custom post type not registered");let i=new ft((o,a)=>t.render(a),r.blocks,r.state,e,r.dimensions),n=await i.render();return C0.fromJSON({state:i.state,blocks:{ui:n},effects:i.getEffects()})}function Ly(r){r.provides(P0),U("RenderPost",I0)}import{GetFieldsResponse as w0,InstallationSettingsDefinition as x0}from"@devvit/protos";async function A0(){if(!u.installationSettings)throw new Error("Installation settings were not defined.");return w0.fromJSON({fields:{fields:pt(u.installationSettings)}})}async function T0(r,e){return gd(r,u.installationSettings,e)}function Uy(r){r.provides(x0),U("GetSettingsFields",A0),U("ValidateForm",T0)}import{ContextActionDefinition as E0,ContextActionList as R0,ContextActionResponse as O0}from"@devvit/protos";var By=r=>`menuItem.${r}`;function Dc(r){return u.menuItems.find((e,t)=>By(t)===r)}async function F0(r,e){let t=u.menuItems;if(!t.length)throw new Error("No menu items registered.");let i=t.map((n,o)=>({actionId:By(o),name:n.label,description:n.description,contexts:{subreddit:n.location.includes("subreddit"),post:n.location.includes("post"),comment:n.location.includes("comment")},users:{loggedOut:n.forUserType?.includes("loggedOut"),member:n.forUserType?.includes("member"),moderator:n.forUserType?.includes("moderator")},postFilters:n.postFilter==="currentApp"?{currentApp:!0}:void 0}));return R0.fromJSON({actions:i})}async function M0(r,e){let t=Dc(r.actionId);if(!t)throw new Error(`MenuItem ${r.actionId} not found`);let i=r.comment?.id&&`t1_${r.comment.id}`,n=r.post?.id&&`t3_${r.post.id}`,o=r.subreddit?.id&&`t5_${r.subreddit.id}`,a=i||n||o;g(a,"targetId is missing from ContextActionRequest");let c={targetId:a,location:r.comment?"comment":r.post?"post":"subreddit"},p=Object.assign(Be({ui:!0,metadata:e}),le(e,n,i),{uiEnvironment:{timezone:e[D.Timezone]?.values[0],locale:e[D.Language]?.values[0]}});return await t.onPress(c,p),O0.fromJSON({effects:ki(p.ui)})}function Dy(r){r.provides(E0),U("GetActions",F0),U("OnAction",M0)}function gt(r){return r?r===!0?!0:r.enabled:!1}import{SchedulerHandlerDefinition as L0}from"@devvit/protos";async function U0(r,e){let t=r.type,i=u.scheduledJobHandlers.get(t);if(!i)throw new Error(`Job ${t} not found`);let n={name:t,data:r.data},o=Object.assign(Be({metadata:e}),le(e));await i(n,o)}function _y(r){r.provides(L0),U("HandleScheduledAction",U0)}import{HandlerResult as B0,OnAppInstallDefinition as D0,OnAppUpgradeDefinition as _0,OnCommentCreateDefinition as N0,OnCommentDeleteDefinition as q0,OnCommentReportDefinition as H0,OnCommentSubmitDefinition as j0,OnCommentUpdateDefinition as W0,OnModActionDefinition as G0,OnModMailDefinition as V0,OnPostCreateDefinition as z0,OnPostDeleteDefinition as J0,OnPostFlairUpdateDefinition as $0,OnPostReportDefinition as K0,OnPostSubmitDefinition as X0,OnPostUpdateDefinition as Z0,OnPostNsfwUpdateDefinition as Y0,OnPostSpoilerUpdateDefinition as Q0}from"@devvit/protos";var wi;(function(r){function e(o,a){return o.length<=a?o:`${o.slice(0,a-1)}\u2026`}r.ellipsize=e;function t(o){return o[0]==null?o:`${o[0].toLocaleUpperCase()}${o.slice(1)}`}r.capitalize=t;function i(o){return o==null||/^\s*$/.test(o)}r.isBlank=i;function n(o){return o instanceof Error?`${o.stack||o.message||o.name}`:String(o)}r.caughtToString=n})(wi||(wi={}));function ee(r,e){return g(e),async(t,i)=>{let n={...t,type:r},o=Object.assign(Be({metadata:i}),le(i)),a=await Promise.allSettled(e.map(p=>p(n,o))),c=eE(a);if(c)throw c.err;return B0.fromPartial({})}}function Ny(r){for(let e of u.triggerOnEventHandlers.keys())switch(e){case"PostSubmit":r.provides(X0),U("OnPostSubmit",ee("PostSubmit",u.triggerOnEventHandlers.get(e)));break;case"PostCreate":r.provides(z0),U("OnPostCreate",ee("PostCreate",u.triggerOnEventHandlers.get(e)));break;case"PostUpdate":r.provides(Z0),U("OnPostUpdate",ee("PostUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostReport":r.provides(K0),U("OnPostReport",ee("PostReport",u.triggerOnEventHandlers.get(e)));break;case"PostDelete":r.provides(J0),U("OnPostDelete",ee("PostDelete",u.triggerOnEventHandlers.get(e)));break;case"PostFlairUpdate":r.provides($0),U("OnPostFlairUpdate",ee("PostFlairUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentSubmit":r.provides(j0),U("OnCommentSubmit",ee("CommentSubmit",u.triggerOnEventHandlers.get(e)));break;case"CommentCreate":r.provides(N0),U("OnCommentCreate",ee("CommentCreate",u.triggerOnEventHandlers.get(e)));break;case"CommentUpdate":r.provides(W0),U("OnCommentUpdate",ee("CommentUpdate",u.triggerOnEventHandlers.get(e)));break;case"CommentReport":r.provides(H0),U("OnCommentReport",ee("CommentReport",u.triggerOnEventHandlers.get(e)));break;case"CommentDelete":r.provides(q0),U("OnCommentDelete",ee("CommentDelete",u.triggerOnEventHandlers.get(e)));break;case"AppInstall":r.provides(D0),U("OnAppInstall",ee("AppInstall",u.triggerOnEventHandlers.get(e)));break;case"AppUpgrade":r.provides(_0),U("OnAppUpgrade",ee("AppUpgrade",u.triggerOnEventHandlers.get(e)));break;case"ModAction":r.provides(G0),U("OnModAction",ee("ModAction",u.triggerOnEventHandlers.get(e)));break;case"ModMail":r.provides(V0),U("OnModMail",ee("ModMail",u.triggerOnEventHandlers.get(e)));break;case"PostNsfwUpdate":r.provides(Y0),U("OnPostNsfwUpdate",ee("PostNsfwUpdate",u.triggerOnEventHandlers.get(e)));break;case"PostSpoilerUpdate":r.provides(Q0),U("OnPostSpoilerUpdate",ee("PostSpoilerUpdate",u.triggerOnEventHandlers.get(e)));break;default:throw new Error(`Unknown trigger event: ${e}`)}}function eE(r){let e=r.reduce((t,i)=>i.status==="rejected"?[...t,i.reason]:t,[]);if(e.length!==0)return e.length===1?{err:e[0]}:{err:new Error(e.map(t=>wi.caughtToString(t)).join(`
3
- `))}}var Fb=_n(Zy(),1),Mb=_n(Zc(),1);import{EffectType as QR,HandleUIEventResponse as Yc,UIEventHandlerDefinition as eO}from"@devvit/protos";async function tO(r,e){let t=r.state??{},i=(0,Fb.default)(t),n=Be({ui:!0,metadata:e});if(r.event?.formSubmitted&&r.event.formSubmitted.formId){let p=r.event.formSubmitted.formId;if(p.includes("form.hook.")&&u.customPostType){let y=new ft((C,I)=>u.customPostType?.render(I)??null,r.event,r.state,e,void 0);return await y.reconcile(),Yc.fromJSON({state:y.state,effects:y.getEffects()})}let f=u.formDefinitions.get(p);if(!f)throw new Error(`Form with key ${p} not found`);let v,m;if(i.__contextAction){let{actionId:y,thingId:C}=i.__contextAction,I=Dc(y);I?.location==="post"?v=C:I?.location==="comment"&&(m=C)}let b=Object.assign(n,le(e,v,m),{uiEnvironment:{timezone:e[D.Timezone]?.values[0],locale:e[D.Language]?.values[0]}});await f.onSubmit({values:Et(r.event.formSubmitted.results)},b)}else if(r.event?.realtimeEvent){if(u.customPostType){let p=new ft((f,v)=>u.customPostType?.render(v)??null,r.event,r.state,e,void 0);return await p.reconcile(),Yc.fromJSON({state:p.state,effects:p.getEffects()})}}else if(r.event?.toastAction)throw new Error("Toast actions not yet implemented");let o=!(0,Mb.default)(t,i),a=ki(n.ui),c=o?[...a,{type:QR.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:0}}]:a;return Yc.fromJSON({state:i,effects:c})}function Lb(r){r.provides(eO),U("HandleUIEvent",tO)}import{CustomPostDefinition as nk,UIResponse as pO}from"@devvit/protos";import{EffectType as tm,Form as iO,ToastAppearance as Db}from"@devvit/protos";function Ub(r){let e=r.match(/form\.hook\.(.+)\.0/);if(e?.[1])return e[1]}var Qc=class{constructor(e,t,i){this.state=null;this.hookId=e.hookId,this.form=t,this.onSubmit=i,this.onUIEvent=async n=>{n.formSubmitted&&await i(Et(n.formSubmitted.results))}}};function em(r,e){let t=Ke({namespace:"useForm",initializer:i=>new Qc(i,r,e)});return rO({id:t.hookId})}function rO(r){return`form.hook.${r.id}.0`}function Bb(r,e){let t=Ub(e);return r.getHook({id:t})}var Dt,Ld=class{constructor(e){l(this,Dt);d(this,Dt,e)}showForm(e,t){let i=Bb(s(this,Dt),e);if(!i)throw new Error("Form does not exist. Make sure you have added it using useForm.");let n=i.form instanceof Function?i.form(t??{}):i.form,o=iO.fromPartial({id:e,title:n.title,acceptLabel:n.acceptLabel,cancelLabel:n.cancelLabel,shortDescription:n.description});mr(n.fields),o.fields=pt(n.fields),s(this,Dt).emitEffect(e,{type:tm.EFFECT_SHOW_FORM,showForm:{form:o}})}showToast(e){let t;e instanceof Object?t={text:e.text,appearance:e.appearance==="success"?Db.SUCCESS:Db.NEUTRAL}:t={text:e},s(this,Dt).emitEffect(e.toString(),{type:tm.EFFECT_SHOW_TOAST,showToast:{toast:t}})}navigateTo(e){let t;typeof e=="string"?t=new URL(e).toString():t=new URL(e.permalink,"https://www.reddit.com").toString(),s(this,Dt).emitEffect(t,{type:tm.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}};Dt=new WeakMap;import{EffectType as nO,RealtimeSubscriptionStatus as _b}from"@devvit/protos";var _t,nt,Nt,Pr,Ps,im,Ud=class Ud{constructor(e,t){l(this,Ps);l(this,_t);l(this,nt);l(this,Nt);l(this,Pr);d(this,_t,t.context),d(this,nt,!!t.context._devvitContext?.debug.realtime),d(this,Pr,e),d(this,Nt,t.invalidate);let i=t.context.meta[D.App]?.values[0];if(!i)throw Error("useChannel missing app ID metadata");let n=t.context.meta[D.Installation]?.values[0];if(!n)throw Error("useChannel missing install ID from metadata");let o=`${i}:${n}:${e.name}`;if(Object.values(s(this,_t).hooks).filter(c=>c instanceof Ud).some(c=>c.state.channel===o))throw Error(`useChannel channel names must be unique; "${o}" duplicated`);this.state={channel:o,connected:!1,subscribed:!1}}async onUIEvent(e){let t=e.realtimeEvent;if(!(!t||!this.state.subscribed))switch(t.status){case _b.REALTIME_SUBSCRIBED:s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" connected`),this.state.connected=!0,s(this,Nt).call(this),await s(this,Pr).onSubscribed?.();break;case _b.REALTIME_UNSUBSCRIBED:s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" disconnected`),this.state.connected=!1,s(this,Nt).call(this),await s(this,Pr).onUnsubscribed?.();break;default:s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" received message: ${JSON.stringify(e,void 0,2)}`),s(this,Pr).onMessage(t.event?.data??{});break}}async send(e){if(s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" send message: ${JSON.stringify(e,void 0,2)}`),!this.state.subscribed||!this.state.connected)throw console.debug(`[realtime] "${this.state.channel}" send failed; channel not connected`),Error(`useChannel send failed; "${this.state.channel}" channel not connected`);await s(this,_t).devvitContext.realtime.send(this.state.channel,e)}get status(){return this.state.subscribed&&this.state.connected?2:this.state.subscribed&&!this.state.connected?1:!this.state.subscribed&&this.state.connected?3:4}subscribe(){this.state.subscribed||(s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" subscribed`),this.state.subscribed=!0,s(this,Nt).call(this),S(this,Ps,im).call(this))}unsubscribe(){this.state.subscribed&&(s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" unsubscribed`),this.state.subscribed=!1,s(this,Nt).call(this),S(this,Ps,im).call(this))}};_t=new WeakMap,nt=new WeakMap,Nt=new WeakMap,Pr=new WeakMap,Ps=new WeakSet,im=function(){let e=Object.values(s(this,_t).hooks).filter(t=>t instanceof Ud&&t.state.subscribed).map(t=>t.state.channel);s(this,_t).emitEffect(this.state.channel,{type:nO.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:e}})};var rm=Ud;function nm(r){if(!r.name||/[^a-zA-Z0-9_]/.test(r.name))throw Error(`useChannel error: The name "${r.name}" you provided for the hook is invalid. Valid names can only contain letters, numbers, and underscores (_).`);let e=`useChannel:${r.name}`;return Ke({id:e,namespace:e,initializer:t=>new rm(r,t)})}import{EffectType as sm}from"@devvit/protos";function Nb(r){return typeof r=="object"&&r!==null&&"__deleted"in r}var Cr,Ei=class Ei{constructor(e,t){l(this,Cr);this._segments=[];this._hooks={};this._prevHookId="";this._effects={};this._changed={};this._touched={};this._requeueEvents=[];this._rootProps={};this._generated={};this._undeliveredHandlers={};this.request=e,this.meta=t,d(this,Cr,e.state??{__cache:{}}),this._rootProps=e.props??{}}get devvitContext(){if(!this._devvitContext)throw new Error("Devvit context not available");return this._devvitContext}set devvitContext(e){this._devvitContext=e}get _changedState(){let e={__cache:s(this,Cr).__cache??{}};for(let i in this._changed)e[i]=this._state[i];let t=new Set(Object.keys(this._state));return Object.keys(this._hooks).forEach(i=>{i!=="__cache"&&t.delete(i)}),t.forEach(i=>{if(i==="__cache")return;let n={__deleted:!0};this._state[i]=e[i]=n}),e}get hooks(){return this._hooks}get _state(){return s(this,Cr)}set _state(e){this._hooks={},d(this,Cr,e)}push(e){this._segments.push({...e,next:0})}pop(){this._segments.pop()}addUndeliveredEventHandler(e,t){this._undeliveredHandlers[e]=t}addGlobalUndeliveredEventHandler(e,t){Ei.addGlobalUndeliveredEventHandler(e,t)}getHook(e){return this._hooks[e.id]}static addGlobalUndeliveredEventHandler(e,t){Ei._staticUndeliveredHandlers[e]=t}async handleUndeliveredEvent(e){let t={...Ei._staticUndeliveredHandlers,...this._undeliveredHandlers};for(let[i,n]of Object.entries(t))await n(e,this)}emitEffect(e,t){this._effects[e]=t}addToRequeueEvents(...e){this._devvitContext?.debug.blocks&&console.debug("[blocks] requeueing events",e);let t=e.reduce((i,n)=>(n.retry?i.retry.push(n):i.normal.push(n),i),{retry:[],normal:[]});this._requeueEvents=[...t.retry,...this._requeueEvents,...t.normal]}get effects(){return Object.values(this._effects)}nextHookId(e){e.key===void 0&&(e.key=this._segments[this._segments.length-1].next+++""),this.push(e);try{let t=[];for(let n=this._segments.length-1;n>=0;n--){let o=this._segments[n];if(o.id){t.unshift(o.id);break}let a=[];o.namespace&&a.push(o.namespace),o.key!==void 0&&o.key!==!1&&a.push(o.key),t.unshift(a.join("-"))}let i=t.join(".");if(this._generated[i]&&!e.shared)throw new Error(`Hook id ${i} already used, cannot register another hook with the same id`);return this._generated[i]=!0,this._prevHookId=i,i}finally{this.pop()}}};Cr=new WeakMap,Ei._staticUndeliveredHandlers={};var Ri=Ei;var qt={};Ri.addGlobalUndeliveredEventHandler("intervals",async(r,e)=>{r.timer&&r.hook&&(delete qt[r.hook],e.emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:qt}}))});var Ht,Oi,Cs,Fi,om=class{constructor(e,t,i){l(this,Ht);l(this,Oi);l(this,Cs);l(this,Fi);this.state={duration:{seconds:0,nanos:0},running:!1};d(this,Oi,i.invalidate),d(this,Ht,i.hookId),d(this,Cs,e),d(this,Fi,i.context);let n=Math.floor(t/1e3),o=t%1e3*1e6;this.state.duration={seconds:n,nanos:o}}onStateLoaded(){this.state.running?qt[s(this,Ht)]={duration:this.state.duration}:delete qt[s(this,Ht)]}async onUIEvent(e){await s(this,Cs).call(this)}start(){qt[s(this,Ht)]={duration:this.state.duration},this.state.running=!0,s(this,Oi).call(this),s(this,Fi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:qt}})}stop(){delete qt[s(this,Ht)],this.state.running=!1,s(this,Oi).call(this),s(this,Fi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:qt}})}};Ht=new WeakMap,Oi=new WeakMap,Cs=new WeakMap,Fi=new WeakMap;function am(r,e){let t=Ke({namespace:"useInterval",initializer:i=>new om(r,e,i)});return{start:()=>t.start(),stop:()=>t.stop()}}var Ir=class extends Error{};var dm="ServerCallRequired";function qb(r){return r?.message===dm}var Hb=_n(Zc(),1);function um(r){if(r instanceof Error){if(r.message===dm)throw r;return{message:r.message,details:r.stack??""}}else return{message:"Unknown error",details:wi.caughtToString(r)}}var Xe,st,Mi,Is,lm=class{constructor(e,t,i){l(this,Xe);l(this,st);l(this,Mi);l(this,Is);d(this,Xe,!!i.context.devvitContext.debug.useAsync),s(this,Xe)&&console.debug("[useAsync] v1",t),this.state={data:null,load_state:"initial",error:null,depends:null},d(this,st,i.hookId),this.initializer=e,d(this,Mi,i.invalidate),d(this,Is,i.context),this.localDepends=t.depends??null}onStateLoaded(){if(this.state.load_state!=="disabled"&&(s(this,Xe)&&console.debug("[useAsync] async onLoad ",s(this,st),this.state),s(this,Xe)&&console.debug("[useAsync] async onLoad have ",this.localDepends,"and",this.state.depends),!(0,Hb.default)(this.localDepends,this.state.depends)||this.state.load_state==="initial")){s(this,Xe)&&console.debug("[useAsync] attempting to resolve for hookId",s(this,st)),this.state.load_state="loading",this.state.depends=this.localDepends,s(this,Mi).call(this);let e={hook:s(this,st),async:!0,asyncRequest:{requestId:s(this,st)+"-"+JSON.stringify(this.state.depends)}};s(this,Xe)&&console.debug("[useAsync] onLoad requeue"),s(this,Is).addToRequeueEvents(e)}}async onUIEvent(e,t){if(e.asyncRequest){let i={requestId:e.asyncRequest.requestId};try{i.data={value:await this.initializer()}}catch(o){i.error=um(o)}let n={asyncResponse:i,hook:s(this,st)};s(this,Xe)&&console.debug("[useAsync] onReq requeue"),t.addToRequeueEvents(n)}else if(e.asyncResponse){let i=s(this,st)+"-"+JSON.stringify(this.state.depends);e.asyncResponse.requestId===i?(this.state={...this.state,data:e.asyncResponse.data?.value,error:e.asyncResponse.error??null,load_state:e.asyncResponse.error?"error":"loaded"},s(this,Mi).call(this)):s(this,Xe)&&console.debug("[useAsync] onResp skip, stale event")}else throw new Error("Unknown event type")}};Xe=new WeakMap,st=new WeakMap,Mi=new WeakMap,Is=new WeakMap;function sO(r,e={}){let t=Ke({namespace:"useAsync",initializer:i=>new lm(r,e,i),refresh:i=>{i.initializer=r,i.localDepends=e.depends??null}});return{data:t.state.data,error:t.state.error,loading:t.state.load_state==="loading"}}var yt,ws,wr,Li,xr,cm=class{constructor(e,t){this.state={value:null,load_state:"initial",error:null};l(this,yt);l(this,ws);l(this,wr);l(this,Li);l(this,xr);d(this,wr,e),d(this,Li,t.hookId),d(this,yt,t.invalidate),d(this,ws,t.context)}async onUIEvent(){if(this.state.load_state==="loading"&&s(this,xr)){try{this.state.value=await s(this,xr),this.state.load_state="loaded"}catch(e){this.state.load_state="error",this.state.error=um(e)}s(this,yt).call(this)}else console.warn("Invalid state: ",this.state.load_state,s(this,xr))}setter(e){this.state.value=e instanceof Function?e(this.state.value):e,this.state.load_state="loaded",s(this,yt).call(this)}onStateLoaded(){if(this.state.load_state==="loading")throw new Ir;if(this.state.load_state==="error")throw new Error(this.state.error?.message??"Unknown error");if(this.state.load_state==="initial"){let e;try{e=s(this,wr)instanceof Function?s(this,wr).call(this):s(this,wr)}catch(t){console.log("error in loading async",t),this.state.load_state="error",s(this,yt).call(this);return}if(e instanceof Promise){d(this,xr,e),this.state.load_state="loading";let t={asyncRequest:{requestId:s(this,Li)},hook:s(this,Li)};throw s(this,ws).addToRequeueEvents(t),s(this,yt).call(this),new Ir}else this.state.value=e,this.state.load_state="loaded";s(this,yt).call(this)}}};yt=new WeakMap,ws=new WeakMap,wr=new WeakMap,Li=new WeakMap,xr=new WeakMap;function mm(r){let e=Ke({namespace:"useState",initializer:t=>new cm(r,t)});return[e.state.value,e.setter.bind(e)]}var hm={now(){return new Date}};function jb(r){return`__autocache__${r}`}function Wb(r){return`__lock__${r}`}var oO=300,aO=1e3,Bd=5e3,pm=3,Gb=.1,Vb=1e3,dO=3e4;function zb(r){if(r.error)throw new Error(r.error);return r.value}var jt,Wt,Ne,Ui,K,Jb,$b,Kb,fm,Xb,Zb,gm,Yb,Dd=class{constructor(e,t,i=hm){l(this,K);l(this,jt);l(this,Wt,{});l(this,Ne);l(this,Ui);d(this,jt,e),d(this,Ui,t),d(this,Ne,i)}async cache(e,t){var a;(a=s(this,Ui)).__cache??(a.__cache={}),d(this,Wt,s(this,Ui).__cache),S(this,K,Yb).call(this,t);let i=S(this,K,Jb).call(this,t.key);if(i!==void 0)return i;let n=await S(this,K,gm).call(this,t.key),o=await S(this,K,$b).call(this,t,n,e);return zb(o)}};jt=new WeakMap,Wt=new WeakMap,Ne=new WeakMap,Ui=new WeakMap,K=new WeakSet,Jb=function(e){let t=s(this,Wt)[e];if(t){let i=s(this,Ne).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<pm&&Math.random()<Gb&&t.errorTime+Vb<i;if(t?.expires&&t.expires<i&&t.checkedAt+Vb<i||n){delete s(this,Wt)[e];return}else return zb(t)}},$b=async function(e,t,i){let n=t?.expires,o=n?S(this,K,Zb).call(this,n):1;return!t||t?.error&&t.errorCount<pm&&Gb>Math.random()||o>Math.random()?S(this,K,Kb).call(this,e,t,i):t},Kb=async function(e,t,i){let n=Wb(e.key),o=s(this,Ne).now().getTime(),a=new Date(o+e.ttl/2);if(await s(this,jt).set(n,"1",{expiration:a,nx:!0}))return S(this,K,Xb).call(this,e.key,t,i,e.ttl);if(t)return t;{let p=s(this,Ne).now();return S(this,K,fm).call(this,p,e.key,e.ttl)}},fm=async function(e,t,i){let n=Math.min(i,aO),o=await S(this,K,gm).call(this,t);if(o)return o;if(s(this,Ne).now().getTime()-e.getTime()>=n)throw new Error(`Cache request timed out trying to get data at key: ${t}`);return await new Promise(a=>setTimeout(a,oO)),S(this,K,fm).call(this,e,t,i)},Xb=async function(e,t,i,n){let o=s(this,Ne).now().getTime()+n;t=t??{value:null,expires:o,errorCount:0,error:null,errorTime:null,checkedAt:0};try{t.value=await i(),t.error=null,t.errorCount=0,t.errorTime=null}catch(a){t.value=null,t.error=a.message??"Unknown error",t.errorTime=s(this,Ne).now().getTime(),t.errorCount++}return s(this,Wt)[e]=t,await s(this,jt).set(jb(e),JSON.stringify(t),{expiration:new Date(o+dO)}),t.error&&t.errorCount<pm&&await s(this,jt).del(Wb(e)),t},Zb=function(e){let t=s(this,Ne).now().getTime(),i=e-t;return i<0?1:i<1e3?.1:i<2e3?.01:i<3e3?.001:0},gm=async function(e){let t=await s(this,jt).get(jb(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Ne).now().getTime(),s(this,Wt)[e]=i,i}},Yb=function(e){e.ttl<Bd&&(console.warn(`Cache TTL cannot be less than ${Bd} milliseconds! Updating ttl value of ${e.ttl} to ${Bd}.`),e.ttl=Bd)};function Qb(r,e,t=hm){let i=new Dd(r,e,t);return i.cache.bind(i)}var _d=class{buildContext(e,t,i){let n=new ci(i),o=new li(i),a=new hi(i),c=new fi(i),p=new vi(i),f=new yi(i),v=new Ld(e),m=new ui(i),b=new ai,y=new mi(i),C=Qb(a,e._state),I={modLog:n,kvStore:o,redis:a,reddit:c,scheduler:p,settings:f,media:m,assets:b,realtime:y,ui:v,useState:mm,useChannel:nm,useInterval:am,useForm:em,cache:C,dimensions:t.env?.dimensions,uiEnvironment:{timezone:i[D.Timezone]?.values[0],locale:i[D.Language]?.values[0],dimensions:t.env?.dimensions}},A=le(i,t.props?.postId);return A.debug.effects=e,{...A,...I}}};var be=null;function ek(r){return JSON.parse(JSON.stringify(r))}function lO(r){if(!(r!==""&&!/[-.]/.test(r)))throw new Error(`Hook with namespace '${r}' is invalid. Hook namespaces cannot be empty string or contain dashes/dots because they are used as delimiters internally. Please update the hook namespace and try again.`)}function uO(r){return r.blocking||r.resize?!1:!r.hook}function Ke({initializer:r,refresh:e,...t}){if(!be)throw new Error("Hooks can only be declared at the top of a component. You cannot declare hooks outside of components or inside of event handlers. It's almost always a mistake to declare hooks inside of loops or conditionals.");lO(t.namespace);let i=be.nextHookId(t),n=be;n._touched[i]=!0;let o={hookId:i,invalidate:()=>{n._changed[i]=!0,n._state[i]=n?._hooks[i]?.state},context:be},a=be._state[i]===void 0||Nb(be._state[i]);be._hooks[i]=be._hooks[i]??r(o);let c=be._hooks[i];return e?.(c),a||(c.state=be._state[i]),c.onStateLoaded?.(),a&&c.state!==void 0&&c.state!==null&&o.invalidate(),c}var cO=null,Bi,jd,xs,T,ke,Nd,tk,vm,rk,ym,bm,qd,km,ik,Hd=class{constructor(e){l(this,T);l(this,Bi);l(this,jd,new _d);l(this,xs,new Ii(()=>this._latestRenderContext?.devvitContext?.assets));this._latestRenderContext=null;s(this,T,ke)&&console.debug("[blocks] BlocksHandler v1"),d(this,Bi,e),cO=this}async handle(e,t){let i=new Ri(e,t),n=s(this,jd).buildContext(i,e,t);i.devvitContext=n;let o,a=e.events,p=!e.events?.length||a.some(y=>!y.async),f=a.some(y=>y.blocking),v,m,b=[...a];for(a.length===0&&a.push({}),s(this,T,ke)&&console.debug("[blocks] starting processing events");a.length>0;){s(this,T,ke)&&console.debug("[blocks] processing events loop iteration",a.length);let y=[];if(!a[0].async)y.push(a.shift());else for(;a[0]?.async;)y.push(a.shift());if(!y.length)throw Error("batch must have at least one event");try{if(y[0].async){let I=ek(i._state);await S(this,T,tk).call(this,i,...y),i._state=I}else await S(this,T,rk).call(this,i,...y)}catch(I){if(!qb(I))throw I;if(s(this,T,ke)&&console.debug("[blocks] caught in handler",I),i._latestRenderContent=void 0,m){i._state=m._state,i._changed=v,i._effects=m._effects;let A=b.map(M=>{let ce={...M};return ce.retry=!0,ce});i.addToRequeueEvents(...A);break}else throw console.error("[blocks] unhandled error in handler",I),I}s(this,T,ke)&&console.debug("[blocks] remaining events",i._requeueEvents);let C=[];for(let I of i._requeueEvents){if(!p&&!I.async){s(this,T,ke)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch A",I),C.push(I);continue}if(p&&I.async&&!f){s(this,T,ke)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch B",I),C.push(I);continue}s(this,T,ke)&&console.debug("[blocks] reprocessing event in BlocksHandler",I),a.push(I)}i._requeueEvents=C,a.length>0&&(v={...i._changed},m={_state:ek(i._state),_effects:{...i._effects}},b=[...a])}if(p){i._latestRenderContent||(i._latestRenderContent=S(this,T,ym).call(this,s(this,Bi),i.request.props??{},i));let y=i._latestRenderContent;y&&(o=s(this,xs).createBlocksElementOrThrow(y),o=s(this,xs).ensureRootBlock(o))}return{state:i._changedState,effects:i.effects,blocks:o,events:i._requeueEvents}}};Bi=new WeakMap,jd=new WeakMap,xs=new WeakMap,T=new WeakSet,ke=function(){return!!this._latestRenderContext?.devvitContext.debug.blocks},Nd=function(e,...t){e._touched={},S(this,T,ym).call(this,s(this,Bi),e.request.props??{},e);for(let i in e._hooks)e._touched[i]||delete e._hooks[i]},tk=async function(e,...t){S(this,T,Nd).call(this,e,...t),await Promise.all(t.map(async i=>{if(!i.async)throw new Error("You can't mix main and other queues in one batch. This is likely a platform bug. Please file an issue in the Discord for someone to help! https://discord.com/channels/1050224141732687912/1115441897079574620");await S(this,T,vm).call(this,e,i)}))},vm=async function(e,t){uO(t)&&console.warn("Received an event in #attemptHook that does not have an associated hook. This will cause the event to be undelivered and may cause bugs. Make sure that event passes a hook field. Event:",{event:t});let i=e._hooks[t.hook];if(i?.onUIEvent)try{await i.onUIEvent(t,e)}catch(n){throw console.error("Error in event handler",n),n}else await e.handleUndeliveredEvent(t)},rk=async function(e,...t){for(let i of t)s(this,T,ke)&&console.log("[blocks] handling main queue event",i),s(this,T,ke)&&console.log("[blocks] before",e._state),S(this,T,Nd).call(this,e,i),await S(this,T,vm).call(this,e,i),s(this,T,ke)&&console.log("[blocks] after",e._state);S(this,T,Nd).call(this,e)},ym=function(e,t,i){s(this,T,ke)&&console.debug("[blocks] renderRoot"),i._generated={},be=i,this._latestRenderContext=i;try{let n=S(this,T,bm).call(this,e,t,i);if(n.length!==1)throw new Error(`There can only be one root element, received: ${n.length}. Please wrap these elements in a <vstack></vstack> or <hstack></hstack> to continue. Fragments cannot be used as a root element.`);let o=n[0];if(o==="[object Promise]")throw new Error('Root elements cannot be asynchronous. To use data from an async endpoint, please use "const [data] = context.useState(async () => {/** your async code */})".');if(typeof o=="string")throw new Error("The root element must return a valid block, not a string. Try wrapping the element in a <text>your content</text> tag to continue.");return i._latestRenderContent=o,o}catch(n){if(n instanceof Ir)return;throw n}finally{be=null}},bm=function(e,t,i){i.push({namespace:e.name||"anonymous",...t});try{let n=e(t,i.devvitContext);return S(this,T,km).call(this,n,i)}finally{i.pop()}},qd=function(e,t){return e=e.flat(1/0),e.flatMap((i,n)=>(i&&typeof i=="object"&&"props"in i&&(i.props?.key||(i.props=i.props??{},i.props.key=`${n}`)),S(this,T,km).call(this,i,t)))},km=function(e,t){if(Array.isArray(e))return S(this,T,qd).call(this,e,t);if(mO(e))if(e.type===void 0){t.push({namespace:"fragment",...e.props});let i=S(this,T,qd).call(this,e.children,t);return t.pop(),i}else if(typeof e.type=="function"){let i={...e.props,children:e.children.flat(1/0)};return S(this,T,bm).call(this,e.type,i,t)}else{t.push({namespace:e.type,...e.props});let i=S(this,T,qd).call(this,e.children,t),n=S(this,T,ik).call(this,e.props??{});return t.pop(),[{type:e.type,children:i,props:n}]}else return[(e??"").toString()]},ik=function(e){let t={};for(let i in e)if(!(typeof e[i]>"u"))if(typeof e[i]=="function"){let n=Ke({namespace:i,key:!1,initializer:({hookId:o})=>({hookId:o,state:null,onUIEvent:a=>e[i](a.userAction?.data)})});t[i]=n.hookId,"captureHookRef"in e[i]&&e[i].captureHookRef()}else{let n=JSON.parse(JSON.stringify(e[i]));n!=null&&(t[i]=n)}return t};function mO(r){return typeof r=="object"&&r!=null&&"type"in r}var fO=[[nk,nk.methods.renderPostContent,(r,e)=>u.customPostType?.render(e)??null]];function gO(r){return async(e,t)=>{let i=new Hd(r);return pO.fromJSON(i.handle(e,t))}}function sk(r){for(let[e,t,i]of fO)r.provides(e),U(t.name,gO(i))}var Di,As,_i,Ar,Tr,Ni,qi,Er,Gt,Ts,Es,Rr,N,B=class B extends ld{static configure(e){d(this,_i,{...s(this,_i),...e}),gt(e.http)&&this.use(P.HTTPDefinition),(gt(e.kvStore)||gt(e.redis))&&(this.use(P.KVStoreDefinition),this.use(P.RedisAPIDefinition)),gt(e.media)&&this.use(P.MediaServiceDefinition),gt(e.modLog)&&this.use(P.ModlogDefinition),gt(e.redditAPI)&&(this.use(P.FlairDefinition),this.use(P.GraphQLDefinition),this.use(P.LinksAndCommentsDefinition),this.use(P.ListingsDefinition),this.use(P.ModerationDefinition),this.use(P.ModNoteDefinition),this.use(P.NewModmailDefinition),this.use(P.PrivateMessagesDefinition),this.use(P.SubredditsDefinition),this.use(P.PostCollectionsDefinition),this.use(P.UsersDefinition),this.use(P.WidgetsDefinition),this.use(P.WikiDefinition),this.use(P.RedditAPIV2Definition)),gt(e.realtime)&&this.use(P.RealtimeDefinition)}static addMenuItem(e){s(this,qi).push(e)}static addCustomPostType(e){d(this,Ar,e)}static createForm(e,t){let i=`form.${s(this,Tr).size}`;return s(this,Tr).set(i,{form:e,onSubmit:t}),i}static addSchedulerJob(e){if(s(this,N)[P.SchedulerDefinition.fullName]||this.use(P.SchedulerDefinition),s(this,Er).has(e.name))throw new Error(`Job ${e.name} is already defined`);s(this,Er).set(e.name,e.onRun)}static addSettings(e){mr(e);let t=e.filter(n=>n.type==="group"||!n.scope||n.scope==="installation"),i=e.filter(n=>n.type!=="group"&&n.scope==="app");t.length>0&&d(this,Ni,t),i.length>0&&d(this,Di,i),s(this,N)[P.SettingsDefinition.fullName]||this.use(P.SettingsDefinition)}static addTrigger(e){if("events"in e){for(let t of e.events)this.addTrigger({event:t,onEvent:(i,n)=>e.onEvent(i,n)});return this}return s(this,Gt).has(e.event)?s(this,Gt).get(e.event)?.push(e.onEvent):s(this,Gt).set(e.event,[e.onEvent]),B}static provide(e){s(this,Es).push(e)}static use(e,t){s(this,Rr)[e.fullName]={def:e,options:t??{},handler:void 0};let i={};for(let n of Object.values(e.methods))i[n.name]=(o,a)=>s(this,Rr)[e.fullName].handler?.[n.name]?.(n.requestType?.fromPartial(o??{}),a);return s(this,N)[e.fullName]=i,i}static get redditAPIPlugins(){if(!gt(s(this,_i).redditAPI))throw new Error("Reddit API is not enabled. You can enable it by passing `redditAPI: true` to `Devvit.configure`.");return{Flair:s(this,N)[P.FlairDefinition.fullName],GraphQL:s(this,N)[P.GraphQLDefinition.fullName],LinksAndComments:s(this,N)[P.LinksAndCommentsDefinition.fullName],Listings:s(this,N)[P.ListingsDefinition.fullName],Moderation:s(this,N)[P.ModerationDefinition.fullName],ModNote:s(this,N)[P.ModNoteDefinition.fullName],NewModmail:s(this,N)[P.NewModmailDefinition.fullName],PrivateMessages:s(this,N)[P.PrivateMessagesDefinition.fullName],Subreddits:s(this,N)[P.SubredditsDefinition.fullName],PostCollections:s(this,N)[P.PostCollectionsDefinition.fullName],Users:s(this,N)[P.UsersDefinition.fullName],Widgets:s(this,N)[P.WidgetsDefinition.fullName],Wiki:s(this,N)[P.WikiDefinition.fullName]}}static get modLogPlugin(){let e=s(this,N)[P.ModlogDefinition.fullName];if(!e)throw new Error("ModLog is not enabled. You can enable it by passing `modLog: true` to `Devvit.configure`");return e}static get schedulerPlugin(){let e=s(this,N)[P.SchedulerDefinition.fullName];if(!e)throw new Error("Scheduler is not enabled. You can enable it by calling `Devvit.addSchedulerJob` at the top level of your app.");return e}static get kvStorePlugin(){let e=s(this,N)[P.KVStoreDefinition.fullName];if(!e)throw new Error("Key Value Store is not enabled. You can enable it by passing `kvStore: true` to `Devvit.configure`");return e}static get redisPlugin(){let e=s(this,N)[P.RedisAPIDefinition.fullName];if(!e)throw new Error("Redis is not enabled. You can enable it by passing `redis: true` to `Devvit.configure`");return e}static get mediaPlugin(){let e=s(this,N)[P.MediaServiceDefinition.fullName];if(!e)throw new Error("MediaService is not enabled. You can enable it by passing `media: true` to `Devvit.configure`");return e}static get redditapiv2Plugin(){let e=s(this,N)[P.RedditAPIV2Definition.fullName];if(!e)throw new Error("RedditAPIV2 is not enabled. You can enable it by passing `apiV2: true` to `Devvit.configure`");return e}static get settingsPlugin(){let e=s(this,N)[P.SettingsDefinition.fullName];if(!e)throw new Error("Settings must first be configured with `Devvit.addSettings()` before they can be accessed");return e}static get realtimePlugin(){let e=s(this,N)[P.RealtimeDefinition.fullName];if(!e)throw new Error("Realtime is not enabled. You can enable it by passing `realtime: true` to `Devvit.configure`");return e}static get menuItems(){return s(this,qi)}static get customPostType(){return s(this,Ar)}static get formDefinitions(){return s(this,Tr)}static get scheduledJobHandlers(){return s(this,Er)}static get installationSettings(){return s(this,Ni)}static get appSettings(){return s(this,Di)}static get triggerOnEventHandlers(){return s(this,Gt)}static get assets(){return s(this,As)}static get webviewAssets(){return s(this,Ts)}constructor(e){super(e),d(B,As,e.assets??{}),d(B,Ts,e.webviewAssets??{});for(let t in s(B,Rr)){let i=s(B,Rr)[t];i.handler=e.use(i.def,i.options)}s(B,qi).length>0&&Dy(e),s(B,Er).size>0&&_y(e),s(B,Ar)&&(Ly(e),sk(e)),(s(B,Ar)||s(B,Tr).size>0)&&Lb(e),s(B,Ni)&&Uy(e),s(B,Di)&&my(e),s(B,Gt).size>0&&Ny(e);for(let t of s(B,Es))e.provides(t)}};Di=new WeakMap,As=new WeakMap,_i=new WeakMap,Ar=new WeakMap,Tr=new WeakMap,Ni=new WeakMap,qi=new WeakMap,Er=new WeakMap,Gt=new WeakMap,Ts=new WeakMap,Es=new WeakMap,Rr=new WeakMap,N=new WeakMap,B.debug={},l(B,Di),l(B,As,{}),l(B,_i,{}),l(B,Ar),l(B,Tr,new Map),l(B,Ni),l(B,qi,[]),l(B,Er,new Map),l(B,Gt,new Map),l(B,Ts,{}),l(B,Es,[]),l(B,Rr,{}),l(B,N,{});var u=B;(e=>{function r(t,i,...n){return{type:t,props:i,children:n}}e.createElement=r})(u||(u={}));function X(r){let e=Object.getOwnPropertyDescriptors(r.constructor.prototype);for(let[t,i]of Object.entries(e))i.get&&Object.defineProperty(r,t,{...i,enumerable:!0})}var Sm;(function(r){r[r.bold=1]="bold",r[r.italic=2]="italic",r[r.underline=4]="underline",r[r.strikethrough=8]="strikethrough",r[r.subscript=16]="subscript",r[r.superscript=32]="superscript",r[r.monospace=64]="monospace"})(Sm||(Sm={}));var ok="text",ak="raw",dk="br",lk="link",uk="c/",ck="p/",mk="r/",pk="u/",fk="@",gk="spoilertext",hk="par",vk="h",yk="hr",bk="blockquote",kk="code",Sk="li",Pk="list",Ck="L",Ik="R",wk="C",xk="table",Ak="embed",Tk="img",Ek="gif",Rk="video";function Ok(r){return{e:Ek,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function Fk(r,e){let t={},i=[];return Object.assign(t,Rs(t,i),Os(t,i),Fs(t,i),Us(t,i),Bs(t,i),Ds(t,i)),e(t),{e:bk,c:i,...r.author&&{a:r.author}}}function Mk(r,e){let t={},i=[];return Object.assign(t,Cm(t,i)),e(t),{e:kk,c:i,...r.language&&{l:r.language}}}function Lk(r){return{e:uk,t:r.permalink}}function Uk(r,e){let t={},i=[];return Object.assign(t,Cm(t,i),Ls(t,i)),e(t),{e:vk,l:r.level,c:i}}function Bk(r){return{e:Ak,u:r.sourceUrl,c:r.contentUrl,x:r.width,y:r.height}}function Dk(){return{e:yk}}function _k(r){return{e:Tk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function Nk(){return{e:dk}}function qk(r){return{e:lk,t:r.text,u:r.url,...r.formatting&&{f:r.formatting},...r.tooltip&&{a:r.tooltip}}}function Hk(r,e){let t={},i=[];return Object.assign(t,iS(t,i)),e(t),{e:Pk,o:r.ordered,c:i}}function jk(r){let e={},t=[];return Object.assign(e,Rs(e,t),Os(e,t),Fs(e,t),Wd(e,t),Us(e,t),Bs(e,t),Ds(e,t)),r(e),{e:Sk,c:t}}function Wk(r){let e={},t=[];return Object.assign(e,Gd(e,t),Ls(e,t),Pm(e,t),Im(e,t),Ms(e,t)),r(e),{e:hk,c:t}}function Gk(r){return{e:ck,t:r.permalink}}function Vk(r){return{e:ak,t:r}}function zk(r){let e={},t=[];return Object.assign(e,Gd(e,t),Ls(e,t),Pm(e,t)),r(e),{e:gk,c:t}}function Jk(r){return{e:mk,t:r.subredditName,l:r.showPrefix}}function $k(r){let e={},t=[],i=[];return Object.assign(e,nS(e,t,i)),r(e),{e:xk,h:t,c:i}}function Kk(r){let[e,t]=rS();return r(e),{c:t}}function Xk(r,e){let[t,i]=rS();e(t);let n;switch(r.columnAlignment){case"left":n=Ck;break;case"right":n=Ik;break;case"center":n=wk;break}return{...n&&{a:n},...i&&{c:i}}}function Zk(r){let e={},t=[];return Object.assign(e,sS(e,t)),r(e),t}function Yk(r){return{e:ok,t:r.text,...r.formatting&&{f:r.formatting}}}function Qk(r){return{e:pk,t:r.username,l:r.showPrefix}}function eS(r){return{e:fk,t:r.username,l:r.showPrefix}}function tS(r){return{e:Rk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur},...r.thumbnail&&{p:r.thumbnail},...r.convertToGif&&{gifify:r.convertToGif}}}function rS(){let r={},e=[];return Object.assign(r,Gd(r,e),Ls(r,e),Im(r,e),Ms(r,e)),[r,e]}function Rs(r,e){return{blockQuote(t,i){return e.push(Fk(t,i)),r}}}function Os(r,e){return{codeBlock(t,i){return e.push(Mk(t,i)),r}}}function oS(r,e){return{embed(t){return e.push(Bk(t)),r}}}function Fs(r,e){return{heading(t,i){return e.push(Uk(t,i)),r}}}function Wd(r,e){return{horizontalRule(){return e.push(Dk()),r}}}function Ms(r,e){return{image(t){return e.push(_k(t)),r},animatedImage(t){return e.push(Ok(t)),r}}}function Pm(r,e){return{linebreak(){return e.push(Nk()),r}}}function Ls(r,e){return{link(t){return e.push(qk(t)),r},commentLink(t){return e.push(Lk(t)),r},postLink(t){return e.push(Gk(t)),r},subredditLink(t){return e.push(Jk(t)),r},userLink(t){return e.push(Qk(t)),r},userMention(t){return e.push(eS(t)),r}}}function Us(r,e){return{list(t,i){return e.push(Hk(t,i)),r}}}function iS(r,e){return{item(t){return e.push(jk(t)),r}}}function Bs(r,e){return{paragraph(t){return e.push(Wk(t)),r}}}function Cm(r,e){return{rawText(t){return e.push(Vk(t)),r}}}function Im(r,e){return{spoiler(t){return e.push(zk(t)),r}}}function nS(r,e,t){return{headerCell(i,n){return e.push(Xk(i,n)),r},row(i){return t.push(Zk(i)),r}}}function Ds(r,e){return{table(t){return e.push($k(t)),r}}}function sS(r,e){return{cell(t){return e.push(Kk(t)),r}}}function Gd(r,e){return{text(t){return e.push(Yk(t)),r}}}function aS(r,e){return{video(t){return e.push(tS(t)),r}}}var hO=function(r,e,t,i,n){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?n.call(r,t):n?n.value=t:e.set(r,t),t},vO=function(r,e,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(r):i?i.value:e.get(r)},Vd,_s=class{constructor(){Vd.set(this,void 0);let e=[];Object.assign(this,Bs(this,e),Fs(this,e),Wd(this,e),Rs(this,e),Os(this,e),oS(this,e),Us(this,e),Ds(this,e),Ms(this,e),aS(this,e)),hO(this,Vd,{document:e},"f")}build(){return JSON.stringify(vO(this,Vd,"f"))}paragraph(e){return this}heading(e,t){return this}horizontalRule(){return this}blockQuote(e,t){return this}codeBlock(e,t){return this}embed(e){return this}list(e,t){return this}table(e){return this}image(e){return this}animatedImage(e){return this}video(e){return this}};Vd=new WeakMap;function Hi(r){let e;return r instanceof _s?e=r.build():typeof r=="object"?e=JSON.stringify(r):e=r,e}var dS=100,lS=1/0,Or,Fr,Vt,ji,Wi,zd,W=class{constructor(e){l(this,Wi);l(this,Or);l(this,Fr);l(this,Vt);l(this,ji,!1);this.pageSize=dS;this.limit=lS;this.children=[];X(this),this._fetch=e.fetch,this.pageSize=e.pageSize??dS,this.limit=e.limit??lS,d(this,Fr,e.after),d(this,Or,e.before),d(this,Vt,e.more),e.children&&(this.children=e.children)}get hasMore(){return!s(this,ji)||!!(s(this,Fr)||s(this,Or)||s(this,Vt))}async*[Symbol.asyncIterator](){let e=0;for(;;){if(e===this.children.length)if(this.hasMore){if((await S(this,Wi,zd).call(this)).length===0)break}else break;if(yield this.children[e],e++,e===this.limit)break}}setMore(e){d(this,Vt,e)}preventInitialFetch(){d(this,ji,!0)}async all(){for(;this.hasMore&&this.children.length<this.limit;)await S(this,Wi,zd).call(this);return this.children.slice(0,this.limit)}async get(e){let t=e<=this.limit?e:this.limit;for(;this.hasMore&&this.children.length<t;)await S(this,Wi,zd).call(this);return this.children.slice(0,t)}};Or=new WeakMap,Fr=new WeakMap,Vt=new WeakMap,ji=new WeakMap,Wi=new WeakSet,zd=async function(){if(!this.hasMore)throw new Error("This listing does not have any more items to load.");let{children:e,before:t,after:i,more:n}=await this._fetch({before:s(this,Or),after:s(this,Fr),limit:this.pageSize,more:s(this,Vt)});return this.children.push(...e),d(this,Or,t),d(this,Fr,i),d(this,Vt,n),d(this,ji,!0),e};function yO(r){try{return!0}catch{return!1}}function bO(r){try{return!0}catch{return!1}}var Ns,wm,Le=class{constructor(){}static get(e,t){let i=u.redditAPIPlugins.ModNote;return new W({hasMore:!0,before:e.before,limit:e.limit,pageSize:e.limit,fetch:async n=>{let o=await i.GetNotes({subreddit:e.subreddit,user:e.user,filter:e.filter,before:n.before,limit:n.limit},t);return{children:o.modNotes?.map(a=>S(this,Ns,wm).call(this,a))||[],before:o.hasNextPage?o.endCursor:void 0,hasMore:o.hasNextPage}}})}static async delete(e,t){let i=u.redditAPIPlugins.ModNote,{deleted:n}=await i.DeleteNotes(e,t);return!!n}static async add(e,t){let n=await u.redditAPIPlugins.ModNote.PostNotes(e,t);if(!n?.created)throw new Error("Failed to create mod note");return S(this,Ns,wm).call(this,n.created)}static async addRemovalNote(e,t){await u.redditAPIPlugins.ModNote.PostRemovalNote(e,t)}};Ns=new WeakSet,wm=function(e){if(g(e.id,"Mod note ID is null or undefined"),g(e.createdAt,"Mod note createdAt is null or undefined"),g(e.type,"Mod note type is null or undefined"),g(e.subreddit,"Mod note subreddit is null or undefined"),g(e.subredditId,"Mod note subredditId is null or undefined"),g(e.operator,"Mod note operator is null or undefined"),g(e.operatorId,"Mod note operatorId is null or undefined"),g(e.user,"Mod note user is null or undefined"),g(e.userId,"Mod note userId is null or undefined"),g(e.userNoteData,"Mod note userNote is null or undefined"),g(e.modActionData,"Mod note modAction is null or undefined"),!yO(e.userNoteData?.label??""))throw new Error(`Invalid user note label: ${e.userNoteData?.label}`);if(!bO(e.type))throw new Error(`Invalid mod note type: ${e.type}`);return{id:e.id,user:{id:ne(e.userId??""),name:e.user},subreddit:{id:Oe(e.subredditId??""),name:e.subreddit},operator:{id:ne(e.operatorId??""),name:e.operator},createdAt:new Date(e.createdAt*1e3),userNote:{note:e.userNoteData?.note,redditId:he(e.userNoteData?.redditId??""),label:e.userNoteData?.label},type:e.type}},l(Le,Ns);var bt=class{static queryWithQueryString(e,t){return u.redditAPIPlugins.GraphQL.Query({query:e},t)}static query(e,t,i,n){return u.redditAPIPlugins.GraphQL.PersistedQuery({operationName:e,id:t,variables:i},n)}};var uS=["all","wiki","posts","access","mail","config","flair","channels","chat_config","chat_community","chat_operator"];function kO(r,e,t=!1){let i=t?"%2b":"+";return e.map(n=>(r.includes(n)?i:"-")+n).join(",")}function xm(r){return kO(r,uS,!0)}function cS(r){return r.filter(e=>uS.includes(e))}var SO=(t=>(t.User="USER_FLAIR",t.Post="LINK_FLAIR",t))(SO||{}),Lr,Gi,Vi,zi,Ji,$i,Ki,Xi,Zi,Yi,Qi,Jd,Ze=class Ze{constructor(e,t,i){l(this,Lr);l(this,Gi);l(this,Vi);l(this,zi);l(this,Ji);l(this,$i);l(this,Ki);l(this,Xi);l(this,Zi);l(this,Yi);X(this),g(e.id),g(e.text),d(this,Lr,e.id),d(this,Gi,t),d(this,Vi,e.text),d(this,zi,PO(e.textColor)),d(this,Ji,CO(e.backgroundColor)),d(this,$i,IO(e.allowableContent)),d(this,Ki,e.modOnly),d(this,Xi,e.maxEmojis),d(this,Zi,e.textEditable),d(this,Yi,i)}get id(){return s(this,Lr)}get text(){return s(this,Vi)}get textColor(){return s(this,zi)}get backgroundColor(){return s(this,Ji)}get allowableContent(){return s(this,$i)}get modOnly(){return s(this,Ki)}get maxEmojis(){return s(this,Xi)}get allowUserEdits(){return s(this,Zi)}async delete(){return Ze.deleteFlairTemplate(s(this,Lr),s(this,Gi),s(this,Yi))}async edit(e){return Ze.editFlairTemplate({id:s(this,Lr),subredditName:s(this,Gi),text:e.text??s(this,Vi),allowableContent:e.allowableContent??s(this,$i),backgroundColor:e.backgroundColor??s(this,Ji),maxEmojis:e.maxEmojis??s(this,Xi),modOnly:e.modOnly??s(this,Ki),textColor:e.textColor??s(this,zi),allowUserEdits:e.allowUserEdits??s(this,Zi)},s(this,Yi))}static async createPostFlairTemplate(e,t){var i;return S(i=Ze,Qi,Jd).call(i,{...e,flairType:"LINK_FLAIR"},t)}static async createUserFlairTemplate(e,t){var i;return S(i=Ze,Qi,Jd).call(i,{...e,flairType:"USER_FLAIR"},t)}static async editFlairTemplate(e,t){var i;return S(i=Ze,Qi,Jd).call(i,e,t)}static async getPostFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.LinkFlair({subreddit:e},t)).flair?.map(o=>new Ze(o,e,t))||[]}static async getUserFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.UserFlair({subreddit:e},t)).flair?.map(o=>new Ze(o,e,t))||[]}static async deleteFlairTemplate(e,t,i){await u.redditAPIPlugins.Flair.DeleteFlairTemplate({subreddit:e,flairTemplateId:t},i)}};Lr=new WeakMap,Gi=new WeakMap,Vi=new WeakMap,zi=new WeakMap,Ji=new WeakMap,$i=new WeakMap,Ki=new WeakMap,Xi=new WeakMap,Zi=new WeakMap,Yi=new WeakMap,Qi=new WeakSet,Jd=async function(e,t){let{subredditName:i,allowableContent:n="all",backgroundColor:o="transparent",flairType:a="",maxEmojis:c=10,modOnly:p=!1,text:f,textColor:v="dark",allowUserEdits:m=!1,id:b=""}=e;if(p&&m)throw new Error("Cannot have a mod only flair that is editable by users");let C=await u.redditAPIPlugins.Flair.FlairTemplate({subreddit:i,allowableContent:n,backgroundColor:o,flairType:a,maxEmojis:c,modOnly:p,text:f,textColor:v,textEditable:m,flairTemplateId:b,cssClass:"",overrideCss:!1},t);return new Ze(C,i,t)},l(Ze,Qi);var de=Ze;function qs(r){return{flairCssClass:r.flairCssClass,user:r.user,flairText:r.flairText}}var zt,Am,Tm,Mr=class Mr{static async getUserFlairBySubreddit(e,t){return u.redditAPIPlugins.Flair.FlairList(e,t)}static setUserFlair(e,t){var i;return S(i=Mr,zt,Am).call(i,e,t)}static setPostFlair(e,t){var i;return S(i=Mr,zt,Am).call(i,{...e,postId:ge(e.postId)},t)}static async removePostFlair(e,t,i){var n;return S(n=Mr,zt,Tm).call(n,e,t,void 0,i)}static async removeUserFlair(e,t,i){var n;return S(n=Mr,zt,Tm).call(n,e,void 0,t,i)}};zt=new WeakSet,Am=async function(e,t){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e.subredditName,flairTemplateId:e.flairTemplateId??"",text:e.text??"",name:e.username,link:e.postId,backgroundColor:e.backgroundColor??"",textColor:e.textColor??"dark",cssClass:e.cssClass??"",returnRtjson:"none"},t)},Tm=async function(e,t,i,n){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e,name:i??"",link:t??"",flairTemplateId:"",backgroundColor:"",text:"",textColor:"",cssClass:"",returnRtjson:"none"},n)},l(Mr,zt);var Ue=Mr;function PO(r){if(g(r,"Flair text color is required"),r==="light"||r==="dark")return r;throw new Error(`Invalid flair text color: ${r}`)}function CO(r){if(g(r,"Flair background color is required"),r==="transparent"||/^#([A-Fa-f0-9]{6})$/.test(r))return r;throw new Error(`Invalid flair background color: ${r}`)}function IO(r){if(r==="all"||r==="text"||r==="emoji")return r;throw new Error(`Invalid allowable content: ${r}`)}import{Block as FO}from"@devvit/protos";var gS=_n(fS(),1);var en,js,tn,Ws,Gs,Vs,zs,Js,rn,$s,Ks,Xs,Zs,Ys,Qs,Jt,eo,to,Br,nn,$t,sn,on,an,Dr,Kt,Xt,dn,Zt,Yt,Qt,kt,ro,io,ln,un,_,H=class H{constructor(e,t){l(this,en);l(this,js);l(this,tn);l(this,Ws);l(this,Gs);l(this,Vs);l(this,zs);l(this,Js);l(this,rn);l(this,$s);l(this,Ks);l(this,Xs);l(this,Zs);l(this,Ys);l(this,Qs);l(this,Jt);l(this,eo);l(this,to);l(this,Br);l(this,nn);l(this,$t);l(this,sn);l(this,on);l(this,an);l(this,Dr);l(this,Kt);l(this,Xt);l(this,dn);l(this,Zt);l(this,Yt);l(this,Qt);l(this,kt);l(this,ro);l(this,io);l(this,ln);l(this,un);l(this,_);X(this),g(e.id,"Post is missing id"),g(e.title,"Post is missing title"),g(e.createdUtc,"Post is missing created date"),g(e.author,"Post is missing author name"),g(e.subreddit,"Post is missing subreddit name"),g(e.subredditId,"Post is missing subreddit id"),g(e.url,"Post is missing url"),g(e.permalink,"Post is missing permalink"),d(this,en,ge(`t3_${e.id}`)),d(this,tn,e.author),d(this,js,e.authorFullname?ne(e.authorFullname):void 0),d(this,Gs,Oe(e.subredditId)),d(this,Vs,e.subreddit),d(this,Xs,e.score??0),d(this,Zs,e.numComments??0),d(this,Ys,e.numReports??0);let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Ws,i),d(this,Js,e.title),d(this,rn,e.selftext),d(this,$s,e.selftextHtml),d(this,Ks,e.url),d(this,zs,e.permalink),e.thumbnail&&e.thumbnail!=="self"&&e.thumbnail!=="nsfw"&&e.thumbnailHeight!=null&&e.thumbnailWidth!=null&&d(this,Qs,{url:e.thumbnail,height:e.thumbnailHeight,width:e.thumbnailWidth}),d(this,Jt,e.approved??!1),d(this,eo,e.approvedAtUtc??0),d(this,to,e.bannedAtUtc??0),d(this,$t,e.removed??!1),d(this,sn,e.removedBy),d(this,on,e.removedByCategory),d(this,Br,e.spam??!1),d(this,nn,e.stickied??!1),d(this,an,e.archived??!1),d(this,Dr,e.edited??!1),d(this,Kt,e.locked??!1),d(this,Xt,e.over18??!1),d(this,dn,e.quarantine??!1),d(this,Zt,e.spoiler),d(this,Yt,e.hidden??!1),d(this,Qt,e.ignoreReports??!1),d(this,kt,e.distinguished),d(this,io,e.secureMedia),d(this,ln,(e.modReports??[]).map(([n])=>n)),d(this,un,(e.userReports??[]).map(([n])=>n)),d(this,_,t),(e.linkFlairBackgroundColor||e.linkFlairCssClass||e.linkFlairText||e.linkFlairType||e.linkFlairTemplateId||e.linkFlairRichtext||e.linkFlairTextColor)&&d(this,ro,{backgroundColor:e.linkFlairBackgroundColor,cssClass:e.linkFlairCssClass,text:e.linkFlairText,type:e.linkFlairType,templateId:e.linkFlairTemplateId,richtext:(e.linkFlairRichtext??[]).map(({e:n,t:o,a,u:c})=>({elementType:n,text:o,emojiRef:a,url:c})),textColor:e.linkFlairTextColor})}get id(){return s(this,en)}get authorId(){return s(this,js)}get authorName(){return s(this,tn)}get subredditId(){return s(this,Gs)}get subredditName(){return s(this,Vs)}get permalink(){return s(this,zs)}get title(){return s(this,Js)}get body(){return s(this,rn)}get bodyHtml(){return s(this,$s)}get url(){return s(this,Ks)}get thumbnail(){return s(this,Qs)}get createdAt(){return s(this,Ws)}get score(){return s(this,Xs)}get numberOfComments(){return s(this,Zs)}get numberOfReports(){return s(this,Ys)}get approved(){return s(this,Jt)}get approvedAtUtc(){return s(this,eo)}get bannedAtUtc(){return s(this,to)}get spam(){return s(this,Br)}get stickied(){return s(this,nn)}get removed(){return s(this,$t)}get removedBy(){return s(this,sn)}get removedByCategory(){return s(this,on)}get archived(){return s(this,an)}get edited(){return s(this,Dr)}get locked(){return s(this,Kt)}get nsfw(){return s(this,Xt)}get quarantined(){return s(this,dn)}get spoiler(){return s(this,Zt)}get hidden(){return s(this,Yt)}get ignoringReports(){return s(this,Qt)}get distinguishedBy(){return s(this,kt)}get comments(){return Q.getComments({postId:this.id},s(this,_))}get flair(){return s(this,ro)}get secureMedia(){return s(this,io)}get userReportReasons(){return s(this,un)}get modReportReasons(){return s(this,ln)}toJSON(){return{id:this.id,authorId:this.authorId,authorName:this.authorName,subredditId:this.subredditId,subredditName:this.subredditName,permalink:this.permalink,title:this.title,body:this.body,bodyHtml:this.bodyHtml,url:this.url,thumbnail:this.thumbnail,score:this.score,numberOfComments:this.numberOfComments,numberOfReports:this.numberOfReports,createdAt:this.createdAt,approved:this.approved,spam:this.spam,stickied:this.stickied,removed:this.removed,removedBy:s(this,sn),removedByCategory:s(this,on),archived:this.archived,edited:this.edited,locked:this.locked,nsfw:this.nsfw,quarantined:this.quarantined,spoiler:this.spoiler,hidden:this.hidden,ignoringReports:this.ignoringReports,distinguishedBy:this.distinguishedBy,flair:this.flair,secureMedia:this.secureMedia,modReportReasons:s(this,ln),userReportReasons:s(this,un)}}isApproved(){return s(this,Jt)}isSpam(){return s(this,Br)}isStickied(){return s(this,nn)}isRemoved(){return s(this,$t)}isArchived(){return s(this,an)}isEdited(){return s(this,Dr)}isLocked(){return s(this,Kt)}isNsfw(){return s(this,Xt)}isQuarantined(){return s(this,dn)}isSpoiler(){return s(this,Zt)}isHidden(){return s(this,Yt)}isIgnoringReports(){return s(this,Qt)}isDistinguishedBy(){return s(this,kt)}async edit(e){let t=await H.edit({id:this.id,...e},s(this,_));d(this,rn,t.body),d(this,Dr,t.edited)}async addComment(e){return Q.submit({id:this.id,...e},s(this,_))}async delete(){return H.delete(this.id,s(this,_))}async approve(){await H.approve(this.id,s(this,_)),d(this,Jt,!0),d(this,$t,!1)}async remove(e=!1){await H.remove(this.id,e,s(this,_)),d(this,$t,!0),d(this,Br,e),d(this,Jt,!1)}async lock(){await H.lock(this.id,s(this,_)),d(this,Kt,!0)}async unlock(){await H.unlock(this.id,s(this,_)),d(this,Kt,!1)}async hide(){await H.hide(this.id,s(this,_)),d(this,Yt,!0)}async unhide(){await H.unhide(this.id,s(this,_)),d(this,Yt,!1)}async markAsNsfw(){await H.markAsNsfw(this.id,s(this,_)),d(this,Xt,!0)}async unmarkAsNsfw(){await H.unmarkAsNsfw(this.id,s(this,_)),d(this,Xt,!1)}async markAsSpoiler(){await H.markAsSpoiler(this.id,s(this,_)),d(this,Zt,!0)}async unmarkAsSpoiler(){await H.unmarkAsSpoiler(this.id,s(this,_)),d(this,Zt,!1)}async sticky(e){await H.sticky(this.id,e,s(this,_))}async unsticky(){await H.unsticky(this.id,s(this,_))}async distinguish(){let{distinguishedBy:e}=await H.distinguish(this.id,!1,s(this,_));d(this,kt,e)}async distinguishAsAdmin(){let{distinguishedBy:e}=await H.distinguish(this.id,!0,s(this,_));d(this,kt,e)}async undistinguish(){let{distinguishedBy:e}=await H.undistinguish(this.id,s(this,_));d(this,kt,e)}async ignoreReports(){await H.ignoreReports(this.id,s(this,_)),d(this,Qt,!0)}async unignoreReports(){await H.unignoreReports(this.id,s(this,_)),d(this,Qt,!1)}async getAuthor(){return w.getByUsername(s(this,tn),s(this,_))}async crosspost(e){return H.crosspost({...e,postId:this.id},s(this,_))}addRemovalNote(e){return Le.addRemovalNote({itemIds:[s(this,en)],...e},s(this,_))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=cr(e)?e:`t3_${e}`,o=await i.Info({subreddits:[],thingIds:[n]},t);if(!o.data?.children?.length)throw new Error("could not find post");let a=o.data.children[0];if(!a?.data)throw new Error("could not find post");return new H(a.data,t)}static async submit(e,t){let i=u.redditAPIPlugins.LinksAndComments,n;if("preview"in e){g(t,"Missing metadata in `SubmitPostOptions`");let c=await new ft(()=>e.preview,void 0,{},t,void 0).buildBlocksUI(),p=FO.encode(c).finish();n=await i.Submit({kind:"custom",sr:e.subredditName,richtextJson:(0,gS.fromByteArray)(p),...e},t)}else n=await i.Submit({kind:"kind"in e?e.kind:"url"in e?"link":"self",sr:e.subredditName,richtextJson:"richtext"in e?Hi(e.richtext):void 0,...e},t);if("kind"in e&&["image","video","videogif"].includes(e.kind)&&!n.json?.data?.id&&"url"in e)throw new Error(`Post of ${e.kind} type with ${e.url} is being created asynchronously and should be updated in the subreddit soon.`);if(!n.json?.data?.id||n.json?.errors?.length)throw new Error(`failed to submit post - either post ID is empty or request failed with errors: ${n.json?.errors}`);return H.getById(`t3_${n.json.data.id}`,t)}static async crosspost(e,t){let i=u.redditAPIPlugins.LinksAndComments,{postId:n,subredditName:o,...a}=e,c=await i.Submit({kind:"crosspost",sr:o,crosspostFullname:ge(n),...a},t);if(!c.json?.data?.id||c.json?.errors?.length)throw new Error("failed to crosspost post");return H.getById(`t3_${c.json.data.id}`,t)}static async edit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;if("richtext"in e&&(o=Hi(e.richtext)),(await i.EditUserText({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t)).json?.errors?.length)throw new Error("Failed to edit post");return H.getById(n,t)}static async delete(e,t){await u.redditAPIPlugins.LinksAndComments.Del({id:e},t)}static async approve(e,t){await u.redditAPIPlugins.Moderation.Approve({id:e},t)}static async remove(e,t=!1,i){await u.redditAPIPlugins.Moderation.Remove({id:e,spam:t},i)}static async hide(e,t){await u.redditAPIPlugins.LinksAndComments.Hide({id:e},t)}static async unhide(e,t){await u.redditAPIPlugins.LinksAndComments.Unhide({id:e},t)}static async markAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.MarkNSFW({id:e},t)}static async unmarkAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.UnmarkNSFW({id:e},t)}static async markAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Spoiler({id:e},t)}static async unmarkAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Unspoiler({id:e},t)}static async sticky(e,t,i){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!0,num:t},i)}static async unsticky(e,t){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!1},t)}static async lock(e,t){await u.redditAPIPlugins.LinksAndComments.Lock({id:e},t)}static async unlock(e,t){await u.redditAPIPlugins.LinksAndComments.Unlock({id:e},t)}static async distinguish(e,t,i){let a=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:t?"admin":"yes",sticky:!1},i)).json?.data?.things?.[0]?.data;return g(a),{distinguishedBy:a.distinguished}}static async undistinguish(e,t){let o=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:"no",sticky:!1},t)).json?.data?.things?.[0]?.data;return g(o),{distinguishedBy:o.distinguished}}static async ignoreReports(e,t){await u.redditAPIPlugins.Moderation.IgnoreReports({id:e},t)}static async unignoreReports(e,t){await u.redditAPIPlugins.Moderation.UnignoreReports({id:e},t)}static getControversialPosts(e={},t){return this.getSortedPosts({...e,sort:"controversial"},t)}static getTopPosts(e={},t){return this.getSortedPosts({...e,sort:"top"},t)}static getSortedPosts(e,t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Sort({show:"all",sort:e.sort,t:e.timeframe,subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getHotPosts(e={location:"GLOBAL"},t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Hot({g:e.location,show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getNewPosts(e,t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.New({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getRisingPosts(e,t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Rising({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getPostsByUser(e,t){let i=u.redditAPIPlugins.Users;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"submitted",...n},t);return Hs(o,t)}})}};en=new WeakMap,js=new WeakMap,tn=new WeakMap,Ws=new WeakMap,Gs=new WeakMap,Vs=new WeakMap,zs=new WeakMap,Js=new WeakMap,rn=new WeakMap,$s=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Ys=new WeakMap,Qs=new WeakMap,Jt=new WeakMap,eo=new WeakMap,to=new WeakMap,Br=new WeakMap,nn=new WeakMap,$t=new WeakMap,sn=new WeakMap,on=new WeakMap,an=new WeakMap,Dr=new WeakMap,Kt=new WeakMap,Xt=new WeakMap,dn=new WeakMap,Zt=new WeakMap,Yt=new WeakMap,Qt=new WeakMap,kt=new WeakMap,ro=new WeakMap,io=new WeakMap,ln=new WeakMap,un=new WeakMap,_=new WeakMap;var z=H;function Hs(r,e){if(!r.data?.children)throw new Error("Listing response is missing children");return{children:r.data.children.map(i=>new z(i.data,e)),before:r.data.before,after:r.data.after}}var MO=(q=>(q.Custom="CUSTOM",q.Reddit="REDDIT",q.Instagram="INSTAGRAM",q.Twitter="TWITTER",q.Tiktok="TIKTOK",q.Twitch="TWITCH",q.Facebook="FACEBOOK",q.Youtube="YOUTUBE",q.Tumblr="TUMBLR",q.Spotify="SPOTIFY",q.Soundcloud="SOUNDCLOUD",q.Beacons="BEACONS",q.Linktree="LINKTREE",q.Discord="DISCORD",q.Venmo="VENMO",q.CashApp="CASH_APP",q.Patreon="PATREON",q.Kofi="KOFI",q.Paypal="PAYPAL",q.Cameo="CAMEO",q.Onlyfans="ONLYFANS",q.Substack="SUBSTACK",q.Kickstarter="KICKSTARTER",q.Indiegogo="INDIEGOGO",q.BuyMeACoffee="BUY_ME_A_COFFEE",q.Shopify="SHOPIFY",q))(MO||{}),no,cn,so,oo,ao,lo,uo,er,co,mo,at,_r=class _r{constructor(e,t){l(this,no);l(this,cn);l(this,so);l(this,oo);l(this,ao);l(this,lo);l(this,uo);l(this,er,new Map);l(this,co);l(this,mo);l(this,at);X(this),g(e.id,"User ID is missing or undefined"),g(e.name,"Username is missing or undefined"),g(e.createdUtc,"User is missing created date"),d(this,no,ne(dd(e.id)?e.id:`t2_${e.id}`)),d(this,cn,e.name),d(this,lo,e.over18??!1),d(this,uo,e.isEmployee??!1);let i=new Date(0);if(i.setUTCSeconds(e.createdUtc),d(this,so,i),d(this,oo,e.linkKarma??0),d(this,ao,e.commentKarma??0),e.modPermissions)for(let[n,o]of Object.entries(e.modPermissions))s(this,er).set(n,cS(o));d(this,co,new URL(e.subreddit?.url??"","https://www.reddit.com").toString()),d(this,mo,e.subreddit?.url??""),d(this,at,t)}get id(){return s(this,no)}get username(){return s(this,cn)}get createdAt(){return s(this,so)}get linkKarma(){return s(this,oo)}get commentKarma(){return s(this,ao)}get nsfw(){return s(this,lo)}get isAdmin(){return s(this,uo)}get modPermissions(){return s(this,er)}get url(){return s(this,co)}get permalink(){return s(this,mo)}toJSON(){return{id:this.id,username:this.username,createdAt:this.createdAt,linkKarma:this.linkKarma,commentKarma:this.commentKarma,nsfw:this.nsfw,modPermissionsBySubreddit:Object.fromEntries(this.modPermissions)}}async getModPermissionsForSubreddit(e){if(s(this,er).has(e))return s(this,er).get(e);let t=await _r.getSubredditUsersByType({subredditName:e,type:"moderators",username:this.username},s(this,at)).all();if(t.length===0)return[];let i=t[0].modPermissions.get(e)??[];return i.length>0&&s(this,er).set(e,i),i}getComments(e){return Q.getCommentsByUser({username:this.username,...e},s(this,at))}getPosts(e){return z.getPostsByUser({username:this.username,...e},s(this,at))}async getUserFlairBySubreddit(e){let t=await Ue.getUserFlairBySubreddit({subreddit:e,name:s(this,cn)},s(this,at));return t.users[0]?qs(t.users[0]):void 0}getSnoovatarUrl(){return _r.getSnoovatarUrl(this.username,s(this,at))}async getSocialLinks(){let i=await bt.query("GetUserSocialLinks","2aca18ef5f4fc75fb91cdaace3e9aeeae2cb3843b5c26ad511e6f01b8521593a",{name:this.username},s(this,at));return i.data?.user?.profile?.socialLinks?i.data.user.profile.socialLinks.map(n=>({...n,handle:n.handle??void 0})):[]}static async getById(e,t){let o=(await u.redditAPIPlugins.Users.UserDataByAccountIds({ids:e},t))?.users?.[e]?.name;return o==null?void 0:_r.getByUsername(o,t)}static async getByUsername(e,t){let n=await u.redditAPIPlugins.Users.UserAbout({username:e},t);if(n.data?.id)return new _r(n.data,t)}static async getFromMetadata(e,t){g(t);let i=t?.[e]?.values[0];return i?_r.getById(ne(i),t):Promise.resolve(void 0)}static getSubredditUsersByType(e,t){let i=u.redditAPIPlugins.Subreddits;return new W({hasMore:!0,pageSize:e.pageSize,limit:e.limit,after:e.after,before:e.before,fetch:async n=>{let o=await i.AboutWhere({where:e.type,user:e.username,subreddit:e.subredditName,show:"all",...n},t);return UO(o,e.subredditName,t)}})}static async createRelationship(e,t){let i=u.redditAPIPlugins.Users,{type:n,subredditName:o,username:a,permissions:c,...p}=e,f=await i.Friend({type:n,subreddit:o,name:a,permissions:c?xm(c):void 0,...p},t);if(f.json?.errors?.length)throw new Error(f.json.errors.join(`
3
+ `))}}var Fb=_n(Zy(),1),Mb=_n(Zc(),1);import{EffectType as QR,HandleUIEventResponse as Yc,UIEventHandlerDefinition as eO}from"@devvit/protos";async function tO(r,e){let t=r.state??{},i=(0,Fb.default)(t),n=Be({ui:!0,metadata:e});if(r.event?.formSubmitted&&r.event.formSubmitted.formId){let p=r.event.formSubmitted.formId;if(p.includes("form.hook.")&&u.customPostType){let y=new ft((C,I)=>u.customPostType?.render(I)??null,r.event,r.state,e,void 0);return await y.reconcile(),Yc.fromJSON({state:y.state,effects:y.getEffects()})}let f=u.formDefinitions.get(p);if(!f)throw new Error(`Form with key ${p} not found`);let v,m;if(i.__contextAction){let{actionId:y,thingId:C}=i.__contextAction,I=Dc(y);I?.location==="post"?v=C:I?.location==="comment"&&(m=C)}let b=Object.assign(n,le(e,v,m),{uiEnvironment:{timezone:e[D.Timezone]?.values[0],locale:e[D.Language]?.values[0]}});await f.onSubmit({values:Et(r.event.formSubmitted.results)},b)}else if(r.event?.realtimeEvent){if(u.customPostType){let p=new ft((f,v)=>u.customPostType?.render(v)??null,r.event,r.state,e,void 0);return await p.reconcile(),Yc.fromJSON({state:p.state,effects:p.getEffects()})}}else if(r.event?.toastAction)throw new Error("Toast actions not yet implemented");let o=!(0,Mb.default)(t,i),a=ki(n.ui),c=o?[...a,{type:QR.EFFECT_RERENDER_UI,rerenderUi:{delaySeconds:0}}]:a;return Yc.fromJSON({state:i,effects:c})}function Lb(r){r.provides(eO),U("HandleUIEvent",tO)}import{CustomPostDefinition as nk,UIResponse as pO}from"@devvit/protos";import{EffectType as tm,Form as iO,ToastAppearance as Db}from"@devvit/protos";function Ub(r){let e=r.match(/form\.hook\.(.+)\.0/);if(e?.[1])return e[1]}var Qc=class{constructor(e,t,i){this.state=null;this.hookId=e.hookId,this.form=t,this.onSubmit=i,this.onUIEvent=async n=>{n.formSubmitted&&await i(Et(n.formSubmitted.results))}}};function em(r,e){let t=Ke({namespace:"useForm",initializer:i=>new Qc(i,r,e)});return rO({id:t.hookId})}function rO(r){return`form.hook.${r.id}.0`}function Bb(r,e){let t=Ub(e);return r.getHook({id:t})}var Dt,Ld=class{constructor(e){l(this,Dt);d(this,Dt,e)}showForm(e,t){let i=Bb(s(this,Dt),e);if(!i)throw new Error("Form does not exist. Make sure you have added it using useForm.");let n=i.form instanceof Function?i.form(t??{}):i.form,o=iO.fromPartial({id:e,title:n.title,acceptLabel:n.acceptLabel,cancelLabel:n.cancelLabel,shortDescription:n.description});mr(n.fields),o.fields=pt(n.fields),s(this,Dt).emitEffect(e,{type:tm.EFFECT_SHOW_FORM,showForm:{form:o}})}showToast(e){let t;e instanceof Object?t={text:e.text,appearance:e.appearance==="success"?Db.SUCCESS:Db.NEUTRAL}:t={text:e},s(this,Dt).emitEffect(e.toString(),{type:tm.EFFECT_SHOW_TOAST,showToast:{toast:t}})}navigateTo(e){let t;typeof e=="string"?t=new URL(e).toString():t=new URL(e.permalink,"https://www.reddit.com").toString(),s(this,Dt).emitEffect(t,{type:tm.EFFECT_NAVIGATE_TO_URL,navigateToUrl:{url:t}})}};Dt=new WeakMap;import{EffectType as nO,RealtimeSubscriptionStatus as _b}from"@devvit/protos";var _t,nt,Nt,Pr,Ps,im,Ud=class Ud{constructor(e,t){l(this,Ps);l(this,_t);l(this,nt);l(this,Nt);l(this,Pr);d(this,_t,t.context),d(this,nt,!!t.context._devvitContext?.debug.realtime),d(this,Pr,e),d(this,Nt,t.invalidate);let i=t.context.meta[D.App]?.values[0];if(!i)throw Error("useChannel missing app ID metadata");let n=t.context.meta[D.Installation]?.values[0];if(!n)throw Error("useChannel missing install ID from metadata");let o=`${i}:${n}:${e.name}`;if(Object.values(s(this,_t).hooks).filter(c=>c instanceof Ud).some(c=>c.state.channel===o))throw Error(`useChannel channel names must be unique; "${o}" duplicated`);this.state={channel:o,connected:!1,subscribed:!1}}async onUIEvent(e){let t=e.realtimeEvent;if(!(!t||!this.state.subscribed))switch(t.status){case _b.REALTIME_SUBSCRIBED:s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" connected`),this.state.connected=!0,s(this,Nt).call(this),await s(this,Pr).onSubscribed?.();break;case _b.REALTIME_UNSUBSCRIBED:s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" disconnected`),this.state.connected=!1,s(this,Nt).call(this),await s(this,Pr).onUnsubscribed?.();break;default:s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" received message: ${JSON.stringify(e,void 0,2)}`),s(this,Pr).onMessage(t.event?.data??{});break}}async send(e){if(s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" send message: ${JSON.stringify(e,void 0,2)}`),!this.state.subscribed||!this.state.connected)throw console.debug(`[realtime] "${this.state.channel}" send failed; channel not connected`),Error(`useChannel send failed; "${this.state.channel}" channel not connected`);await s(this,_t).devvitContext.realtime.send(this.state.channel,e)}get status(){return this.state.subscribed&&this.state.connected?2:this.state.subscribed&&!this.state.connected?1:!this.state.subscribed&&this.state.connected?3:4}subscribe(){this.state.subscribed||(s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" subscribed`),this.state.subscribed=!0,s(this,Nt).call(this),S(this,Ps,im).call(this))}unsubscribe(){this.state.subscribed&&(s(this,nt)&&console.debug(`[realtime] "${this.state.channel}" unsubscribed`),this.state.subscribed=!1,s(this,Nt).call(this),S(this,Ps,im).call(this))}};_t=new WeakMap,nt=new WeakMap,Nt=new WeakMap,Pr=new WeakMap,Ps=new WeakSet,im=function(){let e=Object.values(s(this,_t).hooks).filter(t=>t instanceof Ud&&t.state.subscribed).map(t=>t.state.channel);s(this,_t).emitEffect(this.state.channel,{type:nO.EFFECT_REALTIME_SUB,realtimeSubscriptions:{subscriptionIds:e}})};var rm=Ud;function nm(r){if(!r.name||/[^a-zA-Z0-9_]/.test(r.name))throw Error(`useChannel error: The name "${r.name}" you provided for the hook is invalid. Valid names can only contain letters, numbers, and underscores (_).`);let e=`useChannel:${r.name}`;return Ke({id:e,namespace:e,initializer:t=>new rm(r,t)})}import{EffectType as sm}from"@devvit/protos";function Nb(r){return typeof r=="object"&&r!==null&&"__deleted"in r}var Cr,Ei=class Ei{constructor(e,t){l(this,Cr);this._segments=[];this._hooks={};this._prevHookId="";this._effects={};this._changed={};this._touched={};this._requeueEvents=[];this._rootProps={};this._generated={};this._undeliveredHandlers={};this.request=e,this.meta=t,d(this,Cr,e.state??{__cache:{}}),this._rootProps=e.props??{}}get devvitContext(){if(!this._devvitContext)throw new Error("Devvit context not available");return this._devvitContext}set devvitContext(e){this._devvitContext=e}get _changedState(){let e={__cache:s(this,Cr).__cache??{}};for(let i in this._changed)e[i]=this._state[i];let t=new Set(Object.keys(this._state));return Object.keys(this._hooks).forEach(i=>{i!=="__cache"&&t.delete(i)}),t.forEach(i=>{if(i==="__cache")return;let n={__deleted:!0};this._state[i]=e[i]=n}),e}get hooks(){return this._hooks}get _state(){return s(this,Cr)}set _state(e){this._hooks={},d(this,Cr,e)}push(e){this._segments.push({...e,next:0})}pop(){this._segments.pop()}addUndeliveredEventHandler(e,t){this._undeliveredHandlers[e]=t}addGlobalUndeliveredEventHandler(e,t){Ei.addGlobalUndeliveredEventHandler(e,t)}getHook(e){return this._hooks[e.id]}static addGlobalUndeliveredEventHandler(e,t){Ei._staticUndeliveredHandlers[e]=t}async handleUndeliveredEvent(e){let t={...Ei._staticUndeliveredHandlers,...this._undeliveredHandlers};for(let[i,n]of Object.entries(t))await n(e,this)}emitEffect(e,t){this._effects[e]=t}addToRequeueEvents(...e){this._devvitContext?.debug.blocks&&console.debug("[blocks] requeueing events",e);let t=e.reduce((i,n)=>(n.retry?i.retry.push(n):i.normal.push(n),i),{retry:[],normal:[]});this._requeueEvents=[...t.retry,...this._requeueEvents,...t.normal]}get effects(){return Object.values(this._effects)}nextHookId(e){e.key===void 0&&(e.key=this._segments[this._segments.length-1].next+++""),this.push(e);try{let t=[];for(let n=this._segments.length-1;n>=0;n--){let o=this._segments[n];if(o.id){t.unshift(o.id);break}let a=[];o.namespace&&a.push(o.namespace),o.key!==void 0&&o.key!==!1&&a.push(o.key),t.unshift(a.join("-"))}let i=t.join(".");if(this._generated[i]&&!e.shared)throw new Error(`Hook id ${i} already used, cannot register another hook with the same id`);return this._generated[i]=!0,this._prevHookId=i,i}finally{this.pop()}}};Cr=new WeakMap,Ei._staticUndeliveredHandlers={};var Ri=Ei;var qt={};Ri.addGlobalUndeliveredEventHandler("intervals",async(r,e)=>{r.timer&&r.hook&&(delete qt[r.hook],e.emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:qt}}))});var Ht,Oi,Cs,Fi,om=class{constructor(e,t,i){l(this,Ht);l(this,Oi);l(this,Cs);l(this,Fi);this.state={duration:{seconds:0,nanos:0},running:!1};d(this,Oi,i.invalidate),d(this,Ht,i.hookId),d(this,Cs,e),d(this,Fi,i.context);let n=Math.floor(t/1e3),o=t%1e3*1e6;this.state.duration={seconds:n,nanos:o}}onStateLoaded(){this.state.running?qt[s(this,Ht)]={duration:this.state.duration}:delete qt[s(this,Ht)]}async onUIEvent(e){await s(this,Cs).call(this)}start(){qt[s(this,Ht)]={duration:this.state.duration},this.state.running=!0,s(this,Oi).call(this),s(this,Fi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:qt}})}stop(){delete qt[s(this,Ht)],this.state.running=!1,s(this,Oi).call(this),s(this,Fi).emitEffect("timers",{type:sm.EFFECT_SET_INTERVALS,interval:{intervals:qt}})}};Ht=new WeakMap,Oi=new WeakMap,Cs=new WeakMap,Fi=new WeakMap;function am(r,e){let t=Ke({namespace:"useInterval",initializer:i=>new om(r,e,i)});return{start:()=>t.start(),stop:()=>t.stop()}}var Ir=class extends Error{};var dm="ServerCallRequired";function qb(r){return r?.message===dm}var Hb=_n(Zc(),1);function um(r){if(r instanceof Error){if(r.message===dm)throw r;return{message:r.message,details:r.stack??""}}else return{message:"Unknown error",details:wi.caughtToString(r)}}var Xe,st,Mi,Is,lm=class{constructor(e,t,i){l(this,Xe);l(this,st);l(this,Mi);l(this,Is);d(this,Xe,!!i.context.devvitContext.debug.useAsync),s(this,Xe)&&console.debug("[useAsync] v1",t),this.state={data:null,load_state:"initial",error:null,depends:null},d(this,st,i.hookId),this.initializer=e,d(this,Mi,i.invalidate),d(this,Is,i.context),this.localDepends=t.depends??null}onStateLoaded(){if(this.state.load_state!=="disabled"&&(s(this,Xe)&&console.debug("[useAsync] async onLoad ",s(this,st),this.state),s(this,Xe)&&console.debug("[useAsync] async onLoad have ",this.localDepends,"and",this.state.depends),!(0,Hb.default)(this.localDepends,this.state.depends)||this.state.load_state==="initial")){s(this,Xe)&&console.debug("[useAsync] attempting to resolve for hookId",s(this,st)),this.state.load_state="loading",this.state.depends=this.localDepends,s(this,Mi).call(this);let e={hook:s(this,st),async:!0,asyncRequest:{requestId:s(this,st)+"-"+JSON.stringify(this.state.depends)}};s(this,Xe)&&console.debug("[useAsync] onLoad requeue"),s(this,Is).addToRequeueEvents(e)}}async onUIEvent(e,t){if(e.asyncRequest){let i={requestId:e.asyncRequest.requestId};try{i.data={value:await this.initializer()}}catch(o){i.error=um(o)}let n={asyncResponse:i,hook:s(this,st)};s(this,Xe)&&console.debug("[useAsync] onReq requeue"),t.addToRequeueEvents(n)}else if(e.asyncResponse){let i=s(this,st)+"-"+JSON.stringify(this.state.depends);e.asyncResponse.requestId===i?(this.state={...this.state,data:e.asyncResponse.data?.value,error:e.asyncResponse.error??null,load_state:e.asyncResponse.error?"error":"loaded"},s(this,Mi).call(this)):s(this,Xe)&&console.debug("[useAsync] onResp skip, stale event")}else throw new Error("Unknown event type")}};Xe=new WeakMap,st=new WeakMap,Mi=new WeakMap,Is=new WeakMap;function sO(r,e={}){let t=Ke({namespace:"useAsync",initializer:i=>new lm(r,e,i),refresh:i=>{i.initializer=r,i.localDepends=e.depends??null}});return{data:t.state.data,error:t.state.error,loading:t.state.load_state==="loading"}}var yt,ws,wr,Li,xr,cm=class{constructor(e,t){this.state={value:null,load_state:"initial",error:null};l(this,yt);l(this,ws);l(this,wr);l(this,Li);l(this,xr);d(this,wr,e),d(this,Li,t.hookId),d(this,yt,t.invalidate),d(this,ws,t.context)}async onUIEvent(){if(this.state.load_state==="loading"&&s(this,xr)){try{this.state.value=await s(this,xr),this.state.load_state="loaded"}catch(e){this.state.load_state="error",this.state.error=um(e)}s(this,yt).call(this)}else console.warn("Invalid state: ",this.state.load_state,s(this,xr))}setter(e){this.state.value=e instanceof Function?e(this.state.value):e,this.state.load_state="loaded",s(this,yt).call(this)}onStateLoaded(){if(this.state.load_state==="loading")throw new Ir;if(this.state.load_state==="error")throw new Error(this.state.error?.message??"Unknown error");if(this.state.load_state==="initial"){let e;try{e=s(this,wr)instanceof Function?s(this,wr).call(this):s(this,wr)}catch(t){console.log("error in loading async",t),this.state.load_state="error",s(this,yt).call(this);return}if(e instanceof Promise){d(this,xr,e),this.state.load_state="loading";let t={asyncRequest:{requestId:s(this,Li)},hook:s(this,Li)};throw s(this,ws).addToRequeueEvents(t),s(this,yt).call(this),new Ir}else this.state.value=e,this.state.load_state="loaded";s(this,yt).call(this)}}};yt=new WeakMap,ws=new WeakMap,wr=new WeakMap,Li=new WeakMap,xr=new WeakMap;function mm(r){let e=Ke({namespace:"useState",initializer:t=>new cm(r,t)});return[e.state.value,e.setter.bind(e)]}var hm={now(){return new Date}};function jb(r){return`__autocache__${r}`}function Wb(r){return`__lock__${r}`}var oO=300,aO=1e3,Bd=5e3,pm=3,Gb=.1,Vb=1e3,dO=3e4;function zb(r){if(r.error)throw new Error(r.error);return r.value}var jt,Wt,Ne,Ui,K,Jb,$b,Kb,fm,Xb,Zb,gm,Yb,Dd=class{constructor(e,t,i=hm){l(this,K);l(this,jt);l(this,Wt,{});l(this,Ne);l(this,Ui);d(this,jt,e),d(this,Ui,t),d(this,Ne,i)}async cache(e,t){var a;(a=s(this,Ui)).__cache??(a.__cache={}),d(this,Wt,s(this,Ui).__cache),S(this,K,Yb).call(this,t);let i=S(this,K,Jb).call(this,t.key);if(i!==void 0)return i;let n=await S(this,K,gm).call(this,t.key),o=await S(this,K,$b).call(this,t,n,e);return zb(o)}};jt=new WeakMap,Wt=new WeakMap,Ne=new WeakMap,Ui=new WeakMap,K=new WeakSet,Jb=function(e){let t=s(this,Wt)[e];if(t){let i=s(this,Ne).now().getTime(),n=t?.error&&t?.errorTime&&t.errorCount<pm&&Math.random()<Gb&&t.errorTime+Vb<i;if(t?.expires&&t.expires<i&&t.checkedAt+Vb<i||n){delete s(this,Wt)[e];return}else return zb(t)}},$b=async function(e,t,i){let n=t?.expires,o=n?S(this,K,Zb).call(this,n):1;return!t||t?.error&&t.errorCount<pm&&Gb>Math.random()||o>Math.random()?S(this,K,Kb).call(this,e,t,i):t},Kb=async function(e,t,i){let n=Wb(e.key),o=s(this,Ne).now().getTime(),a=new Date(o+e.ttl/2);if(await s(this,jt).set(n,"1",{expiration:a,nx:!0}))return S(this,K,Xb).call(this,e.key,t,i,e.ttl);if(t)return t;{let p=s(this,Ne).now();return S(this,K,fm).call(this,p,e.key,e.ttl)}},fm=async function(e,t,i){let n=Math.min(i,aO),o=await S(this,K,gm).call(this,t);if(o)return o;if(s(this,Ne).now().getTime()-e.getTime()>=n)throw new Error(`Cache request timed out trying to get data at key: ${t}`);return await new Promise(a=>setTimeout(a,oO)),S(this,K,fm).call(this,e,t,i)},Xb=async function(e,t,i,n){let o=s(this,Ne).now().getTime()+n;t=t??{value:null,expires:o,errorCount:0,error:null,errorTime:null,checkedAt:0};try{t.value=await i(),t.error=null,t.errorCount=0,t.errorTime=null}catch(a){t.value=null,t.error=a.message??"Unknown error",t.errorTime=s(this,Ne).now().getTime(),t.errorCount++}return s(this,Wt)[e]=t,await s(this,jt).set(jb(e),JSON.stringify(t),{expiration:new Date(o+dO)}),t.error&&t.errorCount<pm&&await s(this,jt).del(Wb(e)),t},Zb=function(e){let t=s(this,Ne).now().getTime(),i=e-t;return i<0?1:i<1e3?.1:i<2e3?.01:i<3e3?.001:0},gm=async function(e){let t=await s(this,jt).get(jb(e));if(t){let i=JSON.parse(t);return i.checkedAt=s(this,Ne).now().getTime(),s(this,Wt)[e]=i,i}},Yb=function(e){e.ttl<Bd&&(console.warn(`Cache TTL cannot be less than ${Bd} milliseconds! Updating ttl value of ${e.ttl} to ${Bd}.`),e.ttl=Bd)};function Qb(r,e,t=hm){let i=new Dd(r,e,t);return i.cache.bind(i)}var _d=class{buildContext(e,t,i){let n=new ci(i),o=new li(i),a=new hi(i),c=new fi(i),p=new vi(i),f=new yi(i),v=new Ld(e),m=new ui(i),b=new ai,y=new mi(i),C=Qb(a,e._state),I={modLog:n,kvStore:o,redis:a,reddit:c,scheduler:p,settings:f,media:m,assets:b,realtime:y,ui:v,useState:mm,useChannel:nm,useInterval:am,useForm:em,cache:C,dimensions:t.env?.dimensions,uiEnvironment:{timezone:i[D.Timezone]?.values[0],locale:i[D.Language]?.values[0],dimensions:t.env?.dimensions}},A=le(i,t.props?.postId);return A.debug.effects=e,{...A,...I}}};var be=null;function ek(r){return JSON.parse(JSON.stringify(r))}function lO(r){if(!(r!==""&&!/[-.]/.test(r)))throw new Error(`Hook with namespace '${r}' is invalid. Hook namespaces cannot be empty string or contain dashes/dots because they are used as delimiters internally. Please update the hook namespace and try again.`)}function uO(r){return r.blocking||r.resize?!1:!r.hook}function Ke({initializer:r,refresh:e,...t}){if(!be)throw new Error("Hooks can only be declared at the top of a component. You cannot declare hooks outside of components or inside of event handlers. It's almost always a mistake to declare hooks inside of loops or conditionals.");lO(t.namespace);let i=be.nextHookId(t),n=be;n._touched[i]=!0;let o={hookId:i,invalidate:()=>{n._changed[i]=!0,n._state[i]=n?._hooks[i]?.state},context:be},a=be._state[i]===void 0||Nb(be._state[i]);be._hooks[i]=be._hooks[i]??r(o);let c=be._hooks[i];return e?.(c),a||(c.state=be._state[i]),c.onStateLoaded?.(),a&&c.state!==void 0&&c.state!==null&&o.invalidate(),c}var cO=null,Bi,jd,xs,T,ke,Nd,tk,vm,rk,ym,bm,qd,km,ik,Hd=class{constructor(e){l(this,T);l(this,Bi);l(this,jd,new _d);l(this,xs,new Ii(()=>this._latestRenderContext?.devvitContext?.assets));this._latestRenderContext=null;s(this,T,ke)&&console.debug("[blocks] BlocksHandler v1"),d(this,Bi,e),cO=this}async handle(e,t){let i=new Ri(e,t),n=s(this,jd).buildContext(i,e,t);i.devvitContext=n;let o,a=e.events,p=!e.events?.length||a.some(y=>!y.async),f=a.some(y=>y.blocking),v,m,b=[...a];for(a.length===0&&a.push({}),s(this,T,ke)&&console.debug("[blocks] starting processing events");a.length>0;){s(this,T,ke)&&console.debug("[blocks] processing events loop iteration",a.length);let y=[];if(!a[0].async)y.push(a.shift());else for(;a[0]?.async;)y.push(a.shift());if(!y.length)throw Error("batch must have at least one event");try{if(y[0].async){let I=ek(i._state);await S(this,T,tk).call(this,i,...y),i._state=I}else await S(this,T,rk).call(this,i,...y)}catch(I){if(!qb(I))throw I;if(s(this,T,ke)&&console.debug("[blocks] caught in handler",I),i._latestRenderContent=void 0,m){i._state=m._state,i._changed=v,i._effects=m._effects;let A=b.map(M=>{let ce={...M};return ce.retry=!0,ce});i.addToRequeueEvents(...A);break}else throw console.error("[blocks] unhandled error in handler",I),I}s(this,T,ke)&&console.debug("[blocks] remaining events",i._requeueEvents);let C=[];for(let I of i._requeueEvents){if(!p&&!I.async){s(this,T,ke)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch A",I),C.push(I);continue}if(p&&I.async&&!f){s(this,T,ke)&&console.debug("[blocks] NOT reprocessing event in BlocksHandler, sync mismatch B",I),C.push(I);continue}s(this,T,ke)&&console.debug("[blocks] reprocessing event in BlocksHandler",I),a.push(I)}i._requeueEvents=C,a.length>0&&(v={...i._changed},m={_state:ek(i._state),_effects:{...i._effects}},b=[...a])}if(p){i._latestRenderContent||(i._latestRenderContent=S(this,T,ym).call(this,s(this,Bi),i.request.props??{},i));let y=i._latestRenderContent;y&&(o=s(this,xs).createBlocksElementOrThrow(y),o=s(this,xs).ensureRootBlock(o))}return{state:i._changedState,effects:i.effects,blocks:o,events:i._requeueEvents}}};Bi=new WeakMap,jd=new WeakMap,xs=new WeakMap,T=new WeakSet,ke=function(){return!!this._latestRenderContext?.devvitContext.debug.blocks},Nd=function(e,...t){e._touched={},S(this,T,ym).call(this,s(this,Bi),e.request.props??{},e);for(let i in e._hooks)e._touched[i]||delete e._hooks[i]},tk=async function(e,...t){S(this,T,Nd).call(this,e,...t),await Promise.all(t.map(async i=>{if(!i.async)throw new Error("You can't mix main and other queues in one batch. This is likely a platform bug. Please file an issue in the Discord for someone to help! https://discord.com/channels/1050224141732687912/1115441897079574620");await S(this,T,vm).call(this,e,i)}))},vm=async function(e,t){uO(t)&&console.warn("Received an event in #attemptHook that does not have an associated hook. This will cause the event to be undelivered and may cause bugs. Make sure that event passes a hook field. Event:",{event:t});let i=e._hooks[t.hook];if(i?.onUIEvent)try{await i.onUIEvent(t,e)}catch(n){throw console.error("Error in event handler",n),n}else await e.handleUndeliveredEvent(t)},rk=async function(e,...t){for(let i of t)s(this,T,ke)&&console.log("[blocks] handling main queue event",i),s(this,T,ke)&&console.log("[blocks] before",e._state),S(this,T,Nd).call(this,e,i),await S(this,T,vm).call(this,e,i),s(this,T,ke)&&console.log("[blocks] after",e._state);S(this,T,Nd).call(this,e)},ym=function(e,t,i){s(this,T,ke)&&console.debug("[blocks] renderRoot"),i._generated={},be=i,this._latestRenderContext=i;try{let n=S(this,T,bm).call(this,e,t,i);if(n.length!==1)throw new Error(`There can only be one root element, received: ${n.length}. Please wrap these elements in a <vstack></vstack> or <hstack></hstack> to continue. Fragments cannot be used as a root element.`);let o=n[0];if(o==="[object Promise]")throw new Error('Root elements cannot be asynchronous. To use data from an async endpoint, please use "const [data] = context.useState(async () => {/** your async code */})".');if(typeof o=="string")throw new Error("The root element must return a valid block, not a string. Try wrapping the element in a <text>your content</text> tag to continue.");return i._latestRenderContent=o,o}catch(n){if(n instanceof Ir)return;throw n}finally{be=null}},bm=function(e,t,i){i.push({namespace:e.name||"anonymous",...t});try{let n=e(t,i.devvitContext);return S(this,T,km).call(this,n,i)}finally{i.pop()}},qd=function(e,t){return e=e.flat(1/0),e.flatMap((i,n)=>(i&&typeof i=="object"&&"props"in i&&(i.props?.key||(i.props=i.props??{},i.props.key=`${n}`)),S(this,T,km).call(this,i,t)))},km=function(e,t){if(Array.isArray(e))return S(this,T,qd).call(this,e,t);if(mO(e))if(e.type===void 0){t.push({namespace:"fragment",...e.props});let i=S(this,T,qd).call(this,e.children,t);return t.pop(),i}else if(typeof e.type=="function"){let i={...e.props,children:e.children.flat(1/0)};return S(this,T,bm).call(this,e.type,i,t)}else{t.push({namespace:e.type,...e.props});let i=S(this,T,qd).call(this,e.children,t),n=S(this,T,ik).call(this,e.props??{});return t.pop(),[{type:e.type,children:i,props:n}]}else return[(e??"").toString()]},ik=function(e){let t={};for(let i in e)if(!(typeof e[i]>"u"))if(typeof e[i]=="function"){let n=Ke({namespace:i,key:!1,initializer:({hookId:o})=>({hookId:o,state:null,onUIEvent:a=>e[i](a.userAction?.data)})});t[i]=n.hookId,"captureHookRef"in e[i]&&e[i].captureHookRef()}else{let n=JSON.parse(JSON.stringify(e[i]));n!=null&&(t[i]=n)}return t};function mO(r){return typeof r=="object"&&r!=null&&"type"in r}var fO=[[nk,nk.methods.renderPostContent,(r,e)=>u.customPostType?.render(e)??null]];function gO(r){return async(e,t)=>{let i=new Hd(r);return pO.fromJSON(await i.handle(e,t))}}function sk(r){for(let[e,t,i]of fO)r.provides(e),U(t.name,gO(i))}var Di,As,_i,Ar,Tr,Ni,qi,Er,Gt,Ts,Es,Rr,N,B=class B extends ld{static configure(e){d(this,_i,{...s(this,_i),...e}),gt(e.http)&&this.use(P.HTTPDefinition),(gt(e.kvStore)||gt(e.redis))&&(this.use(P.KVStoreDefinition),this.use(P.RedisAPIDefinition)),gt(e.media)&&this.use(P.MediaServiceDefinition),gt(e.modLog)&&this.use(P.ModlogDefinition),gt(e.redditAPI)&&(this.use(P.FlairDefinition),this.use(P.GraphQLDefinition),this.use(P.LinksAndCommentsDefinition),this.use(P.ListingsDefinition),this.use(P.ModerationDefinition),this.use(P.ModNoteDefinition),this.use(P.NewModmailDefinition),this.use(P.PrivateMessagesDefinition),this.use(P.SubredditsDefinition),this.use(P.PostCollectionsDefinition),this.use(P.UsersDefinition),this.use(P.WidgetsDefinition),this.use(P.WikiDefinition),this.use(P.RedditAPIV2Definition)),gt(e.realtime)&&this.use(P.RealtimeDefinition)}static addMenuItem(e){s(this,qi).push(e)}static addCustomPostType(e){d(this,Ar,e)}static createForm(e,t){let i=`form.${s(this,Tr).size}`;return s(this,Tr).set(i,{form:e,onSubmit:t}),i}static addSchedulerJob(e){if(s(this,N)[P.SchedulerDefinition.fullName]||this.use(P.SchedulerDefinition),s(this,Er).has(e.name))throw new Error(`Job ${e.name} is already defined`);s(this,Er).set(e.name,e.onRun)}static addSettings(e){mr(e);let t=e.filter(n=>n.type==="group"||!n.scope||n.scope==="installation"),i=e.filter(n=>n.type!=="group"&&n.scope==="app");t.length>0&&d(this,Ni,t),i.length>0&&d(this,Di,i),s(this,N)[P.SettingsDefinition.fullName]||this.use(P.SettingsDefinition)}static addTrigger(e){if("events"in e){for(let t of e.events)this.addTrigger({event:t,onEvent:(i,n)=>e.onEvent(i,n)});return this}return s(this,Gt).has(e.event)?s(this,Gt).get(e.event)?.push(e.onEvent):s(this,Gt).set(e.event,[e.onEvent]),B}static provide(e){s(this,Es).push(e)}static use(e,t){s(this,Rr)[e.fullName]={def:e,options:t??{},handler:void 0};let i={};for(let n of Object.values(e.methods))i[n.name]=(o,a)=>s(this,Rr)[e.fullName].handler?.[n.name]?.(n.requestType?.fromPartial(o??{}),a);return s(this,N)[e.fullName]=i,i}static get redditAPIPlugins(){if(!gt(s(this,_i).redditAPI))throw new Error("Reddit API is not enabled. You can enable it by passing `redditAPI: true` to `Devvit.configure`.");return{Flair:s(this,N)[P.FlairDefinition.fullName],GraphQL:s(this,N)[P.GraphQLDefinition.fullName],LinksAndComments:s(this,N)[P.LinksAndCommentsDefinition.fullName],Listings:s(this,N)[P.ListingsDefinition.fullName],Moderation:s(this,N)[P.ModerationDefinition.fullName],ModNote:s(this,N)[P.ModNoteDefinition.fullName],NewModmail:s(this,N)[P.NewModmailDefinition.fullName],PrivateMessages:s(this,N)[P.PrivateMessagesDefinition.fullName],Subreddits:s(this,N)[P.SubredditsDefinition.fullName],PostCollections:s(this,N)[P.PostCollectionsDefinition.fullName],Users:s(this,N)[P.UsersDefinition.fullName],Widgets:s(this,N)[P.WidgetsDefinition.fullName],Wiki:s(this,N)[P.WikiDefinition.fullName]}}static get modLogPlugin(){let e=s(this,N)[P.ModlogDefinition.fullName];if(!e)throw new Error("ModLog is not enabled. You can enable it by passing `modLog: true` to `Devvit.configure`");return e}static get schedulerPlugin(){let e=s(this,N)[P.SchedulerDefinition.fullName];if(!e)throw new Error("Scheduler is not enabled. You can enable it by calling `Devvit.addSchedulerJob` at the top level of your app.");return e}static get kvStorePlugin(){let e=s(this,N)[P.KVStoreDefinition.fullName];if(!e)throw new Error("Key Value Store is not enabled. You can enable it by passing `kvStore: true` to `Devvit.configure`");return e}static get redisPlugin(){let e=s(this,N)[P.RedisAPIDefinition.fullName];if(!e)throw new Error("Redis is not enabled. You can enable it by passing `redis: true` to `Devvit.configure`");return e}static get mediaPlugin(){let e=s(this,N)[P.MediaServiceDefinition.fullName];if(!e)throw new Error("MediaService is not enabled. You can enable it by passing `media: true` to `Devvit.configure`");return e}static get redditapiv2Plugin(){let e=s(this,N)[P.RedditAPIV2Definition.fullName];if(!e)throw new Error("RedditAPIV2 is not enabled. You can enable it by passing `apiV2: true` to `Devvit.configure`");return e}static get settingsPlugin(){let e=s(this,N)[P.SettingsDefinition.fullName];if(!e)throw new Error("Settings must first be configured with `Devvit.addSettings()` before they can be accessed");return e}static get realtimePlugin(){let e=s(this,N)[P.RealtimeDefinition.fullName];if(!e)throw new Error("Realtime is not enabled. You can enable it by passing `realtime: true` to `Devvit.configure`");return e}static get menuItems(){return s(this,qi)}static get customPostType(){return s(this,Ar)}static get formDefinitions(){return s(this,Tr)}static get scheduledJobHandlers(){return s(this,Er)}static get installationSettings(){return s(this,Ni)}static get appSettings(){return s(this,Di)}static get triggerOnEventHandlers(){return s(this,Gt)}static get assets(){return s(this,As)}static get webviewAssets(){return s(this,Ts)}constructor(e){super(e),d(B,As,e.assets??{}),d(B,Ts,e.webviewAssets??{});for(let t in s(B,Rr)){let i=s(B,Rr)[t];i.handler=e.use(i.def,i.options)}s(B,qi).length>0&&Dy(e),s(B,Er).size>0&&_y(e),s(B,Ar)&&(Ly(e),sk(e)),(s(B,Ar)||s(B,Tr).size>0)&&Lb(e),s(B,Ni)&&Uy(e),s(B,Di)&&my(e),s(B,Gt).size>0&&Ny(e);for(let t of s(B,Es))e.provides(t)}};Di=new WeakMap,As=new WeakMap,_i=new WeakMap,Ar=new WeakMap,Tr=new WeakMap,Ni=new WeakMap,qi=new WeakMap,Er=new WeakMap,Gt=new WeakMap,Ts=new WeakMap,Es=new WeakMap,Rr=new WeakMap,N=new WeakMap,B.debug={},l(B,Di),l(B,As,{}),l(B,_i,{}),l(B,Ar),l(B,Tr,new Map),l(B,Ni),l(B,qi,[]),l(B,Er,new Map),l(B,Gt,new Map),l(B,Ts,{}),l(B,Es,[]),l(B,Rr,{}),l(B,N,{});var u=B;(e=>{function r(t,i,...n){return{type:t,props:i,children:n}}e.createElement=r})(u||(u={}));function X(r){let e=Object.getOwnPropertyDescriptors(r.constructor.prototype);for(let[t,i]of Object.entries(e))i.get&&Object.defineProperty(r,t,{...i,enumerable:!0})}var Sm;(function(r){r[r.bold=1]="bold",r[r.italic=2]="italic",r[r.underline=4]="underline",r[r.strikethrough=8]="strikethrough",r[r.subscript=16]="subscript",r[r.superscript=32]="superscript",r[r.monospace=64]="monospace"})(Sm||(Sm={}));var ok="text",ak="raw",dk="br",lk="link",uk="c/",ck="p/",mk="r/",pk="u/",fk="@",gk="spoilertext",hk="par",vk="h",yk="hr",bk="blockquote",kk="code",Sk="li",Pk="list",Ck="L",Ik="R",wk="C",xk="table",Ak="embed",Tk="img",Ek="gif",Rk="video";function Ok(r){return{e:Ek,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function Fk(r,e){let t={},i=[];return Object.assign(t,Rs(t,i),Os(t,i),Fs(t,i),Us(t,i),Bs(t,i),Ds(t,i)),e(t),{e:bk,c:i,...r.author&&{a:r.author}}}function Mk(r,e){let t={},i=[];return Object.assign(t,Cm(t,i)),e(t),{e:kk,c:i,...r.language&&{l:r.language}}}function Lk(r){return{e:uk,t:r.permalink}}function Uk(r,e){let t={},i=[];return Object.assign(t,Cm(t,i),Ls(t,i)),e(t),{e:vk,l:r.level,c:i}}function Bk(r){return{e:Ak,u:r.sourceUrl,c:r.contentUrl,x:r.width,y:r.height}}function Dk(){return{e:yk}}function _k(r){return{e:Tk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur}}}function Nk(){return{e:dk}}function qk(r){return{e:lk,t:r.text,u:r.url,...r.formatting&&{f:r.formatting},...r.tooltip&&{a:r.tooltip}}}function Hk(r,e){let t={},i=[];return Object.assign(t,iS(t,i)),e(t),{e:Pk,o:r.ordered,c:i}}function jk(r){let e={},t=[];return Object.assign(e,Rs(e,t),Os(e,t),Fs(e,t),Wd(e,t),Us(e,t),Bs(e,t),Ds(e,t)),r(e),{e:Sk,c:t}}function Wk(r){let e={},t=[];return Object.assign(e,Gd(e,t),Ls(e,t),Pm(e,t),Im(e,t),Ms(e,t)),r(e),{e:hk,c:t}}function Gk(r){return{e:ck,t:r.permalink}}function Vk(r){return{e:ak,t:r}}function zk(r){let e={},t=[];return Object.assign(e,Gd(e,t),Ls(e,t),Pm(e,t)),r(e),{e:gk,c:t}}function Jk(r){return{e:mk,t:r.subredditName,l:r.showPrefix}}function $k(r){let e={},t=[],i=[];return Object.assign(e,nS(e,t,i)),r(e),{e:xk,h:t,c:i}}function Kk(r){let[e,t]=rS();return r(e),{c:t}}function Xk(r,e){let[t,i]=rS();e(t);let n;switch(r.columnAlignment){case"left":n=Ck;break;case"right":n=Ik;break;case"center":n=wk;break}return{...n&&{a:n},...i&&{c:i}}}function Zk(r){let e={},t=[];return Object.assign(e,sS(e,t)),r(e),t}function Yk(r){return{e:ok,t:r.text,...r.formatting&&{f:r.formatting}}}function Qk(r){return{e:pk,t:r.username,l:r.showPrefix}}function eS(r){return{e:fk,t:r.username,l:r.showPrefix}}function tS(r){return{e:Rk,id:r.mediaId,...r.caption&&{c:r.caption},...r.blur&&{o:r.blur},...r.thumbnail&&{p:r.thumbnail},...r.convertToGif&&{gifify:r.convertToGif}}}function rS(){let r={},e=[];return Object.assign(r,Gd(r,e),Ls(r,e),Im(r,e),Ms(r,e)),[r,e]}function Rs(r,e){return{blockQuote(t,i){return e.push(Fk(t,i)),r}}}function Os(r,e){return{codeBlock(t,i){return e.push(Mk(t,i)),r}}}function oS(r,e){return{embed(t){return e.push(Bk(t)),r}}}function Fs(r,e){return{heading(t,i){return e.push(Uk(t,i)),r}}}function Wd(r,e){return{horizontalRule(){return e.push(Dk()),r}}}function Ms(r,e){return{image(t){return e.push(_k(t)),r},animatedImage(t){return e.push(Ok(t)),r}}}function Pm(r,e){return{linebreak(){return e.push(Nk()),r}}}function Ls(r,e){return{link(t){return e.push(qk(t)),r},commentLink(t){return e.push(Lk(t)),r},postLink(t){return e.push(Gk(t)),r},subredditLink(t){return e.push(Jk(t)),r},userLink(t){return e.push(Qk(t)),r},userMention(t){return e.push(eS(t)),r}}}function Us(r,e){return{list(t,i){return e.push(Hk(t,i)),r}}}function iS(r,e){return{item(t){return e.push(jk(t)),r}}}function Bs(r,e){return{paragraph(t){return e.push(Wk(t)),r}}}function Cm(r,e){return{rawText(t){return e.push(Vk(t)),r}}}function Im(r,e){return{spoiler(t){return e.push(zk(t)),r}}}function nS(r,e,t){return{headerCell(i,n){return e.push(Xk(i,n)),r},row(i){return t.push(Zk(i)),r}}}function Ds(r,e){return{table(t){return e.push($k(t)),r}}}function sS(r,e){return{cell(t){return e.push(Kk(t)),r}}}function Gd(r,e){return{text(t){return e.push(Yk(t)),r}}}function aS(r,e){return{video(t){return e.push(tS(t)),r}}}var hO=function(r,e,t,i,n){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?n.call(r,t):n?n.value=t:e.set(r,t),t},vO=function(r,e,t,i){if(t==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(r):i?i.value:e.get(r)},Vd,_s=class{constructor(){Vd.set(this,void 0);let e=[];Object.assign(this,Bs(this,e),Fs(this,e),Wd(this,e),Rs(this,e),Os(this,e),oS(this,e),Us(this,e),Ds(this,e),Ms(this,e),aS(this,e)),hO(this,Vd,{document:e},"f")}build(){return JSON.stringify(vO(this,Vd,"f"))}paragraph(e){return this}heading(e,t){return this}horizontalRule(){return this}blockQuote(e,t){return this}codeBlock(e,t){return this}embed(e){return this}list(e,t){return this}table(e){return this}image(e){return this}animatedImage(e){return this}video(e){return this}};Vd=new WeakMap;function Hi(r){let e;return r instanceof _s?e=r.build():typeof r=="object"?e=JSON.stringify(r):e=r,e}var dS=100,lS=1/0,Or,Fr,Vt,ji,Wi,zd,W=class{constructor(e){l(this,Wi);l(this,Or);l(this,Fr);l(this,Vt);l(this,ji,!1);this.pageSize=dS;this.limit=lS;this.children=[];X(this),this._fetch=e.fetch,this.pageSize=e.pageSize??dS,this.limit=e.limit??lS,d(this,Fr,e.after),d(this,Or,e.before),d(this,Vt,e.more),e.children&&(this.children=e.children)}get hasMore(){return!s(this,ji)||!!(s(this,Fr)||s(this,Or)||s(this,Vt))}async*[Symbol.asyncIterator](){let e=0;for(;;){if(e===this.children.length)if(this.hasMore){if((await S(this,Wi,zd).call(this)).length===0)break}else break;if(yield this.children[e],e++,e===this.limit)break}}setMore(e){d(this,Vt,e)}preventInitialFetch(){d(this,ji,!0)}async all(){for(;this.hasMore&&this.children.length<this.limit;)await S(this,Wi,zd).call(this);return this.children.slice(0,this.limit)}async get(e){let t=e<=this.limit?e:this.limit;for(;this.hasMore&&this.children.length<t;)await S(this,Wi,zd).call(this);return this.children.slice(0,t)}};Or=new WeakMap,Fr=new WeakMap,Vt=new WeakMap,ji=new WeakMap,Wi=new WeakSet,zd=async function(){if(!this.hasMore)throw new Error("This listing does not have any more items to load.");let{children:e,before:t,after:i,more:n}=await this._fetch({before:s(this,Or),after:s(this,Fr),limit:this.pageSize,more:s(this,Vt)});return this.children.push(...e),d(this,Or,t),d(this,Fr,i),d(this,Vt,n),d(this,ji,!0),e};function yO(r){try{return!0}catch{return!1}}function bO(r){try{return!0}catch{return!1}}var Ns,wm,Le=class{constructor(){}static get(e,t){let i=u.redditAPIPlugins.ModNote;return new W({hasMore:!0,before:e.before,limit:e.limit,pageSize:e.limit,fetch:async n=>{let o=await i.GetNotes({subreddit:e.subreddit,user:e.user,filter:e.filter,before:n.before,limit:n.limit},t);return{children:o.modNotes?.map(a=>S(this,Ns,wm).call(this,a))||[],before:o.hasNextPage?o.endCursor:void 0,hasMore:o.hasNextPage}}})}static async delete(e,t){let i=u.redditAPIPlugins.ModNote,{deleted:n}=await i.DeleteNotes(e,t);return!!n}static async add(e,t){let n=await u.redditAPIPlugins.ModNote.PostNotes(e,t);if(!n?.created)throw new Error("Failed to create mod note");return S(this,Ns,wm).call(this,n.created)}static async addRemovalNote(e,t){await u.redditAPIPlugins.ModNote.PostRemovalNote(e,t)}};Ns=new WeakSet,wm=function(e){if(g(e.id,"Mod note ID is null or undefined"),g(e.createdAt,"Mod note createdAt is null or undefined"),g(e.type,"Mod note type is null or undefined"),g(e.subreddit,"Mod note subreddit is null or undefined"),g(e.subredditId,"Mod note subredditId is null or undefined"),g(e.operator,"Mod note operator is null or undefined"),g(e.operatorId,"Mod note operatorId is null or undefined"),g(e.user,"Mod note user is null or undefined"),g(e.userId,"Mod note userId is null or undefined"),g(e.userNoteData,"Mod note userNote is null or undefined"),g(e.modActionData,"Mod note modAction is null or undefined"),!yO(e.userNoteData?.label??""))throw new Error(`Invalid user note label: ${e.userNoteData?.label}`);if(!bO(e.type))throw new Error(`Invalid mod note type: ${e.type}`);return{id:e.id,user:{id:ne(e.userId??""),name:e.user},subreddit:{id:Oe(e.subredditId??""),name:e.subreddit},operator:{id:ne(e.operatorId??""),name:e.operator},createdAt:new Date(e.createdAt*1e3),userNote:{note:e.userNoteData?.note,redditId:he(e.userNoteData?.redditId??""),label:e.userNoteData?.label},type:e.type}},l(Le,Ns);var bt=class{static queryWithQueryString(e,t){return u.redditAPIPlugins.GraphQL.Query({query:e},t)}static query(e,t,i,n){return u.redditAPIPlugins.GraphQL.PersistedQuery({operationName:e,id:t,variables:i},n)}};var uS=["all","wiki","posts","access","mail","config","flair","channels","chat_config","chat_community","chat_operator"];function kO(r,e,t=!1){let i=t?"%2b":"+";return e.map(n=>(r.includes(n)?i:"-")+n).join(",")}function xm(r){return kO(r,uS,!0)}function cS(r){return r.filter(e=>uS.includes(e))}var SO=(t=>(t.User="USER_FLAIR",t.Post="LINK_FLAIR",t))(SO||{}),Lr,Gi,Vi,zi,Ji,$i,Ki,Xi,Zi,Yi,Qi,Jd,Ze=class Ze{constructor(e,t,i){l(this,Lr);l(this,Gi);l(this,Vi);l(this,zi);l(this,Ji);l(this,$i);l(this,Ki);l(this,Xi);l(this,Zi);l(this,Yi);X(this),g(e.id),g(e.text),d(this,Lr,e.id),d(this,Gi,t),d(this,Vi,e.text),d(this,zi,PO(e.textColor)),d(this,Ji,CO(e.backgroundColor)),d(this,$i,IO(e.allowableContent)),d(this,Ki,e.modOnly),d(this,Xi,e.maxEmojis),d(this,Zi,e.textEditable),d(this,Yi,i)}get id(){return s(this,Lr)}get text(){return s(this,Vi)}get textColor(){return s(this,zi)}get backgroundColor(){return s(this,Ji)}get allowableContent(){return s(this,$i)}get modOnly(){return s(this,Ki)}get maxEmojis(){return s(this,Xi)}get allowUserEdits(){return s(this,Zi)}async delete(){return Ze.deleteFlairTemplate(s(this,Lr),s(this,Gi),s(this,Yi))}async edit(e){return Ze.editFlairTemplate({id:s(this,Lr),subredditName:s(this,Gi),text:e.text??s(this,Vi),allowableContent:e.allowableContent??s(this,$i),backgroundColor:e.backgroundColor??s(this,Ji),maxEmojis:e.maxEmojis??s(this,Xi),modOnly:e.modOnly??s(this,Ki),textColor:e.textColor??s(this,zi),allowUserEdits:e.allowUserEdits??s(this,Zi)},s(this,Yi))}static async createPostFlairTemplate(e,t){var i;return S(i=Ze,Qi,Jd).call(i,{...e,flairType:"LINK_FLAIR"},t)}static async createUserFlairTemplate(e,t){var i;return S(i=Ze,Qi,Jd).call(i,{...e,flairType:"USER_FLAIR"},t)}static async editFlairTemplate(e,t){var i;return S(i=Ze,Qi,Jd).call(i,e,t)}static async getPostFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.LinkFlair({subreddit:e},t)).flair?.map(o=>new Ze(o,e,t))||[]}static async getUserFlairTemplates(e,t){return(await u.redditAPIPlugins.Flair.UserFlair({subreddit:e},t)).flair?.map(o=>new Ze(o,e,t))||[]}static async deleteFlairTemplate(e,t,i){await u.redditAPIPlugins.Flair.DeleteFlairTemplate({subreddit:e,flairTemplateId:t},i)}};Lr=new WeakMap,Gi=new WeakMap,Vi=new WeakMap,zi=new WeakMap,Ji=new WeakMap,$i=new WeakMap,Ki=new WeakMap,Xi=new WeakMap,Zi=new WeakMap,Yi=new WeakMap,Qi=new WeakSet,Jd=async function(e,t){let{subredditName:i,allowableContent:n="all",backgroundColor:o="transparent",flairType:a="",maxEmojis:c=10,modOnly:p=!1,text:f,textColor:v="dark",allowUserEdits:m=!1,id:b=""}=e;if(p&&m)throw new Error("Cannot have a mod only flair that is editable by users");let C=await u.redditAPIPlugins.Flair.FlairTemplate({subreddit:i,allowableContent:n,backgroundColor:o,flairType:a,maxEmojis:c,modOnly:p,text:f,textColor:v,textEditable:m,flairTemplateId:b,cssClass:"",overrideCss:!1},t);return new Ze(C,i,t)},l(Ze,Qi);var de=Ze;function qs(r){return{flairCssClass:r.flairCssClass,user:r.user,flairText:r.flairText}}var zt,Am,Tm,Mr=class Mr{static async getUserFlairBySubreddit(e,t){return u.redditAPIPlugins.Flair.FlairList(e,t)}static setUserFlair(e,t){var i;return S(i=Mr,zt,Am).call(i,e,t)}static setPostFlair(e,t){var i;return S(i=Mr,zt,Am).call(i,{...e,postId:ge(e.postId)},t)}static async removePostFlair(e,t,i){var n;return S(n=Mr,zt,Tm).call(n,e,t,void 0,i)}static async removeUserFlair(e,t,i){var n;return S(n=Mr,zt,Tm).call(n,e,void 0,t,i)}};zt=new WeakSet,Am=async function(e,t){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e.subredditName,flairTemplateId:e.flairTemplateId??"",text:e.text??"",name:e.username,link:e.postId,backgroundColor:e.backgroundColor??"",textColor:e.textColor??"dark",cssClass:e.cssClass??"",returnRtjson:"none"},t)},Tm=async function(e,t,i,n){await u.redditAPIPlugins.Flair.SelectFlair({subreddit:e,name:i??"",link:t??"",flairTemplateId:"",backgroundColor:"",text:"",textColor:"",cssClass:"",returnRtjson:"none"},n)},l(Mr,zt);var Ue=Mr;function PO(r){if(g(r,"Flair text color is required"),r==="light"||r==="dark")return r;throw new Error(`Invalid flair text color: ${r}`)}function CO(r){if(g(r,"Flair background color is required"),r==="transparent"||/^#([A-Fa-f0-9]{6})$/.test(r))return r;throw new Error(`Invalid flair background color: ${r}`)}function IO(r){if(r==="all"||r==="text"||r==="emoji")return r;throw new Error(`Invalid allowable content: ${r}`)}import{Block as FO}from"@devvit/protos";var gS=_n(fS(),1);var en,js,tn,Ws,Gs,Vs,zs,Js,rn,$s,Ks,Xs,Zs,Ys,Qs,Jt,eo,to,Br,nn,$t,sn,on,an,Dr,Kt,Xt,dn,Zt,Yt,Qt,kt,ro,io,ln,un,_,H=class H{constructor(e,t){l(this,en);l(this,js);l(this,tn);l(this,Ws);l(this,Gs);l(this,Vs);l(this,zs);l(this,Js);l(this,rn);l(this,$s);l(this,Ks);l(this,Xs);l(this,Zs);l(this,Ys);l(this,Qs);l(this,Jt);l(this,eo);l(this,to);l(this,Br);l(this,nn);l(this,$t);l(this,sn);l(this,on);l(this,an);l(this,Dr);l(this,Kt);l(this,Xt);l(this,dn);l(this,Zt);l(this,Yt);l(this,Qt);l(this,kt);l(this,ro);l(this,io);l(this,ln);l(this,un);l(this,_);X(this),g(e.id,"Post is missing id"),g(e.title,"Post is missing title"),g(e.createdUtc,"Post is missing created date"),g(e.author,"Post is missing author name"),g(e.subreddit,"Post is missing subreddit name"),g(e.subredditId,"Post is missing subreddit id"),g(e.url,"Post is missing url"),g(e.permalink,"Post is missing permalink"),d(this,en,ge(`t3_${e.id}`)),d(this,tn,e.author),d(this,js,e.authorFullname?ne(e.authorFullname):void 0),d(this,Gs,Oe(e.subredditId)),d(this,Vs,e.subreddit),d(this,Xs,e.score??0),d(this,Zs,e.numComments??0),d(this,Ys,e.numReports??0);let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Ws,i),d(this,Js,e.title),d(this,rn,e.selftext),d(this,$s,e.selftextHtml),d(this,Ks,e.url),d(this,zs,e.permalink),e.thumbnail&&e.thumbnail!=="self"&&e.thumbnail!=="nsfw"&&e.thumbnailHeight!=null&&e.thumbnailWidth!=null&&d(this,Qs,{url:e.thumbnail,height:e.thumbnailHeight,width:e.thumbnailWidth}),d(this,Jt,e.approved??!1),d(this,eo,e.approvedAtUtc??0),d(this,to,e.bannedAtUtc??0),d(this,$t,e.removed??!1),d(this,sn,e.removedBy),d(this,on,e.removedByCategory),d(this,Br,e.spam??!1),d(this,nn,e.stickied??!1),d(this,an,e.archived??!1),d(this,Dr,e.edited??!1),d(this,Kt,e.locked??!1),d(this,Xt,e.over18??!1),d(this,dn,e.quarantine??!1),d(this,Zt,e.spoiler),d(this,Yt,e.hidden??!1),d(this,Qt,e.ignoreReports??!1),d(this,kt,e.distinguished),d(this,io,e.secureMedia),d(this,ln,(e.modReports??[]).map(([n])=>n)),d(this,un,(e.userReports??[]).map(([n])=>n)),d(this,_,t),(e.linkFlairBackgroundColor||e.linkFlairCssClass||e.linkFlairText||e.linkFlairType||e.linkFlairTemplateId||e.linkFlairRichtext||e.linkFlairTextColor)&&d(this,ro,{backgroundColor:e.linkFlairBackgroundColor,cssClass:e.linkFlairCssClass,text:e.linkFlairText,type:e.linkFlairType,templateId:e.linkFlairTemplateId,richtext:(e.linkFlairRichtext??[]).map(({e:n,t:o,a,u:c})=>({elementType:n,text:o,emojiRef:a,url:c})),textColor:e.linkFlairTextColor})}get id(){return s(this,en)}get authorId(){return s(this,js)}get authorName(){return s(this,tn)}get subredditId(){return s(this,Gs)}get subredditName(){return s(this,Vs)}get permalink(){return s(this,zs)}get title(){return s(this,Js)}get body(){return s(this,rn)}get bodyHtml(){return s(this,$s)}get url(){return s(this,Ks)}get thumbnail(){return s(this,Qs)}get createdAt(){return s(this,Ws)}get score(){return s(this,Xs)}get numberOfComments(){return s(this,Zs)}get numberOfReports(){return s(this,Ys)}get approved(){return s(this,Jt)}get approvedAtUtc(){return s(this,eo)}get bannedAtUtc(){return s(this,to)}get spam(){return s(this,Br)}get stickied(){return s(this,nn)}get removed(){return s(this,$t)}get removedBy(){return s(this,sn)}get removedByCategory(){return s(this,on)}get archived(){return s(this,an)}get edited(){return s(this,Dr)}get locked(){return s(this,Kt)}get nsfw(){return s(this,Xt)}get quarantined(){return s(this,dn)}get spoiler(){return s(this,Zt)}get hidden(){return s(this,Yt)}get ignoringReports(){return s(this,Qt)}get distinguishedBy(){return s(this,kt)}get comments(){return Q.getComments({postId:this.id},s(this,_))}get flair(){return s(this,ro)}get secureMedia(){return s(this,io)}get userReportReasons(){return s(this,un)}get modReportReasons(){return s(this,ln)}toJSON(){return{id:this.id,authorId:this.authorId,authorName:this.authorName,subredditId:this.subredditId,subredditName:this.subredditName,permalink:this.permalink,title:this.title,body:this.body,bodyHtml:this.bodyHtml,url:this.url,thumbnail:this.thumbnail,score:this.score,numberOfComments:this.numberOfComments,numberOfReports:this.numberOfReports,createdAt:this.createdAt,approved:this.approved,spam:this.spam,stickied:this.stickied,removed:this.removed,removedBy:s(this,sn),removedByCategory:s(this,on),archived:this.archived,edited:this.edited,locked:this.locked,nsfw:this.nsfw,quarantined:this.quarantined,spoiler:this.spoiler,hidden:this.hidden,ignoringReports:this.ignoringReports,distinguishedBy:this.distinguishedBy,flair:this.flair,secureMedia:this.secureMedia,modReportReasons:s(this,ln),userReportReasons:s(this,un)}}isApproved(){return s(this,Jt)}isSpam(){return s(this,Br)}isStickied(){return s(this,nn)}isRemoved(){return s(this,$t)}isArchived(){return s(this,an)}isEdited(){return s(this,Dr)}isLocked(){return s(this,Kt)}isNsfw(){return s(this,Xt)}isQuarantined(){return s(this,dn)}isSpoiler(){return s(this,Zt)}isHidden(){return s(this,Yt)}isIgnoringReports(){return s(this,Qt)}isDistinguishedBy(){return s(this,kt)}async edit(e){let t=await H.edit({id:this.id,...e},s(this,_));d(this,rn,t.body),d(this,Dr,t.edited)}async addComment(e){return Q.submit({id:this.id,...e},s(this,_))}async delete(){return H.delete(this.id,s(this,_))}async approve(){await H.approve(this.id,s(this,_)),d(this,Jt,!0),d(this,$t,!1)}async remove(e=!1){await H.remove(this.id,e,s(this,_)),d(this,$t,!0),d(this,Br,e),d(this,Jt,!1)}async lock(){await H.lock(this.id,s(this,_)),d(this,Kt,!0)}async unlock(){await H.unlock(this.id,s(this,_)),d(this,Kt,!1)}async hide(){await H.hide(this.id,s(this,_)),d(this,Yt,!0)}async unhide(){await H.unhide(this.id,s(this,_)),d(this,Yt,!1)}async markAsNsfw(){await H.markAsNsfw(this.id,s(this,_)),d(this,Xt,!0)}async unmarkAsNsfw(){await H.unmarkAsNsfw(this.id,s(this,_)),d(this,Xt,!1)}async markAsSpoiler(){await H.markAsSpoiler(this.id,s(this,_)),d(this,Zt,!0)}async unmarkAsSpoiler(){await H.unmarkAsSpoiler(this.id,s(this,_)),d(this,Zt,!1)}async sticky(e){await H.sticky(this.id,e,s(this,_))}async unsticky(){await H.unsticky(this.id,s(this,_))}async distinguish(){let{distinguishedBy:e}=await H.distinguish(this.id,!1,s(this,_));d(this,kt,e)}async distinguishAsAdmin(){let{distinguishedBy:e}=await H.distinguish(this.id,!0,s(this,_));d(this,kt,e)}async undistinguish(){let{distinguishedBy:e}=await H.undistinguish(this.id,s(this,_));d(this,kt,e)}async ignoreReports(){await H.ignoreReports(this.id,s(this,_)),d(this,Qt,!0)}async unignoreReports(){await H.unignoreReports(this.id,s(this,_)),d(this,Qt,!1)}async getAuthor(){return w.getByUsername(s(this,tn),s(this,_))}async crosspost(e){return H.crosspost({...e,postId:this.id},s(this,_))}addRemovalNote(e){return Le.addRemovalNote({itemIds:[s(this,en)],...e},s(this,_))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=cr(e)?e:`t3_${e}`,o=await i.Info({subreddits:[],thingIds:[n]},t);if(!o.data?.children?.length)throw new Error("could not find post");let a=o.data.children[0];if(!a?.data)throw new Error("could not find post");return new H(a.data,t)}static async submit(e,t){let i=u.redditAPIPlugins.LinksAndComments,n;if("preview"in e){g(t,"Missing metadata in `SubmitPostOptions`");let c=await new ft(()=>e.preview,void 0,{},t,void 0).buildBlocksUI(),p=FO.encode(c).finish();n=await i.Submit({kind:"custom",sr:e.subredditName,richtextJson:(0,gS.fromByteArray)(p),...e},t)}else n=await i.Submit({kind:"kind"in e?e.kind:"url"in e?"link":"self",sr:e.subredditName,richtextJson:"richtext"in e?Hi(e.richtext):void 0,...e},t);if("kind"in e&&["image","video","videogif"].includes(e.kind)&&!n.json?.data?.id&&"url"in e)throw new Error(`Post of ${e.kind} type with ${e.url} is being created asynchronously and should be updated in the subreddit soon.`);if(!n.json?.data?.id||n.json?.errors?.length)throw new Error(`failed to submit post - either post ID is empty or request failed with errors: ${n.json?.errors}`);return H.getById(`t3_${n.json.data.id}`,t)}static async crosspost(e,t){let i=u.redditAPIPlugins.LinksAndComments,{postId:n,subredditName:o,...a}=e,c=await i.Submit({kind:"crosspost",sr:o,crosspostFullname:ge(n),...a},t);if(!c.json?.data?.id||c.json?.errors?.length)throw new Error("failed to crosspost post");return H.getById(`t3_${c.json.data.id}`,t)}static async edit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;if("richtext"in e&&(o=Hi(e.richtext)),(await i.EditUserText({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t)).json?.errors?.length)throw new Error("Failed to edit post");return H.getById(n,t)}static async delete(e,t){await u.redditAPIPlugins.LinksAndComments.Del({id:e},t)}static async approve(e,t){await u.redditAPIPlugins.Moderation.Approve({id:e},t)}static async remove(e,t=!1,i){await u.redditAPIPlugins.Moderation.Remove({id:e,spam:t},i)}static async hide(e,t){await u.redditAPIPlugins.LinksAndComments.Hide({id:e},t)}static async unhide(e,t){await u.redditAPIPlugins.LinksAndComments.Unhide({id:e},t)}static async markAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.MarkNSFW({id:e},t)}static async unmarkAsNsfw(e,t){await u.redditAPIPlugins.LinksAndComments.UnmarkNSFW({id:e},t)}static async markAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Spoiler({id:e},t)}static async unmarkAsSpoiler(e,t){await u.redditAPIPlugins.LinksAndComments.Unspoiler({id:e},t)}static async sticky(e,t,i){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!0,num:t},i)}static async unsticky(e,t){await u.redditAPIPlugins.LinksAndComments.SetSubredditSticky({id:e,state:!1},t)}static async lock(e,t){await u.redditAPIPlugins.LinksAndComments.Lock({id:e},t)}static async unlock(e,t){await u.redditAPIPlugins.LinksAndComments.Unlock({id:e},t)}static async distinguish(e,t,i){let a=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:t?"admin":"yes",sticky:!1},i)).json?.data?.things?.[0]?.data;return g(a),{distinguishedBy:a.distinguished}}static async undistinguish(e,t){let o=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:"no",sticky:!1},t)).json?.data?.things?.[0]?.data;return g(o),{distinguishedBy:o.distinguished}}static async ignoreReports(e,t){await u.redditAPIPlugins.Moderation.IgnoreReports({id:e},t)}static async unignoreReports(e,t){await u.redditAPIPlugins.Moderation.UnignoreReports({id:e},t)}static getControversialPosts(e={},t){return this.getSortedPosts({...e,sort:"controversial"},t)}static getTopPosts(e={},t){return this.getSortedPosts({...e,sort:"top"},t)}static getSortedPosts(e,t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Sort({show:"all",sort:e.sort,t:e.timeframe,subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getHotPosts(e={location:"GLOBAL"},t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Hot({g:e.location,show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getNewPosts(e,t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.New({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getRisingPosts(e,t){let i=u.redditAPIPlugins.Listings;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,fetch:async n=>{let o=await i.Rising({show:"all",subreddit:e.subredditName,...n},t);return Hs(o,t)}})}static getPostsByUser(e,t){let i=u.redditAPIPlugins.Users;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"submitted",...n},t);return Hs(o,t)}})}};en=new WeakMap,js=new WeakMap,tn=new WeakMap,Ws=new WeakMap,Gs=new WeakMap,Vs=new WeakMap,zs=new WeakMap,Js=new WeakMap,rn=new WeakMap,$s=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Zs=new WeakMap,Ys=new WeakMap,Qs=new WeakMap,Jt=new WeakMap,eo=new WeakMap,to=new WeakMap,Br=new WeakMap,nn=new WeakMap,$t=new WeakMap,sn=new WeakMap,on=new WeakMap,an=new WeakMap,Dr=new WeakMap,Kt=new WeakMap,Xt=new WeakMap,dn=new WeakMap,Zt=new WeakMap,Yt=new WeakMap,Qt=new WeakMap,kt=new WeakMap,ro=new WeakMap,io=new WeakMap,ln=new WeakMap,un=new WeakMap,_=new WeakMap;var z=H;function Hs(r,e){if(!r.data?.children)throw new Error("Listing response is missing children");return{children:r.data.children.map(i=>new z(i.data,e)),before:r.data.before,after:r.data.after}}var MO=(q=>(q.Custom="CUSTOM",q.Reddit="REDDIT",q.Instagram="INSTAGRAM",q.Twitter="TWITTER",q.Tiktok="TIKTOK",q.Twitch="TWITCH",q.Facebook="FACEBOOK",q.Youtube="YOUTUBE",q.Tumblr="TUMBLR",q.Spotify="SPOTIFY",q.Soundcloud="SOUNDCLOUD",q.Beacons="BEACONS",q.Linktree="LINKTREE",q.Discord="DISCORD",q.Venmo="VENMO",q.CashApp="CASH_APP",q.Patreon="PATREON",q.Kofi="KOFI",q.Paypal="PAYPAL",q.Cameo="CAMEO",q.Onlyfans="ONLYFANS",q.Substack="SUBSTACK",q.Kickstarter="KICKSTARTER",q.Indiegogo="INDIEGOGO",q.BuyMeACoffee="BUY_ME_A_COFFEE",q.Shopify="SHOPIFY",q))(MO||{}),no,cn,so,oo,ao,lo,uo,er,co,mo,at,_r=class _r{constructor(e,t){l(this,no);l(this,cn);l(this,so);l(this,oo);l(this,ao);l(this,lo);l(this,uo);l(this,er,new Map);l(this,co);l(this,mo);l(this,at);X(this),g(e.id,"User ID is missing or undefined"),g(e.name,"Username is missing or undefined"),g(e.createdUtc,"User is missing created date"),d(this,no,ne(dd(e.id)?e.id:`t2_${e.id}`)),d(this,cn,e.name),d(this,lo,e.over18??!1),d(this,uo,e.isEmployee??!1);let i=new Date(0);if(i.setUTCSeconds(e.createdUtc),d(this,so,i),d(this,oo,e.linkKarma??0),d(this,ao,e.commentKarma??0),e.modPermissions)for(let[n,o]of Object.entries(e.modPermissions))s(this,er).set(n,cS(o));d(this,co,new URL(e.subreddit?.url??"","https://www.reddit.com").toString()),d(this,mo,e.subreddit?.url??""),d(this,at,t)}get id(){return s(this,no)}get username(){return s(this,cn)}get createdAt(){return s(this,so)}get linkKarma(){return s(this,oo)}get commentKarma(){return s(this,ao)}get nsfw(){return s(this,lo)}get isAdmin(){return s(this,uo)}get modPermissions(){return s(this,er)}get url(){return s(this,co)}get permalink(){return s(this,mo)}toJSON(){return{id:this.id,username:this.username,createdAt:this.createdAt,linkKarma:this.linkKarma,commentKarma:this.commentKarma,nsfw:this.nsfw,modPermissionsBySubreddit:Object.fromEntries(this.modPermissions)}}async getModPermissionsForSubreddit(e){if(s(this,er).has(e))return s(this,er).get(e);let t=await _r.getSubredditUsersByType({subredditName:e,type:"moderators",username:this.username},s(this,at)).all();if(t.length===0)return[];let i=t[0].modPermissions.get(e)??[];return i.length>0&&s(this,er).set(e,i),i}getComments(e){return Q.getCommentsByUser({username:this.username,...e},s(this,at))}getPosts(e){return z.getPostsByUser({username:this.username,...e},s(this,at))}async getUserFlairBySubreddit(e){let t=await Ue.getUserFlairBySubreddit({subreddit:e,name:s(this,cn)},s(this,at));return t.users[0]?qs(t.users[0]):void 0}getSnoovatarUrl(){return _r.getSnoovatarUrl(this.username,s(this,at))}async getSocialLinks(){let i=await bt.query("GetUserSocialLinks","2aca18ef5f4fc75fb91cdaace3e9aeeae2cb3843b5c26ad511e6f01b8521593a",{name:this.username},s(this,at));return i.data?.user?.profile?.socialLinks?i.data.user.profile.socialLinks.map(n=>({...n,handle:n.handle??void 0})):[]}static async getById(e,t){let o=(await u.redditAPIPlugins.Users.UserDataByAccountIds({ids:e},t))?.users?.[e]?.name;return o==null?void 0:_r.getByUsername(o,t)}static async getByUsername(e,t){let n=await u.redditAPIPlugins.Users.UserAbout({username:e},t);if(n.data?.id)return new _r(n.data,t)}static async getFromMetadata(e,t){g(t);let i=t?.[e]?.values[0];return i?_r.getById(ne(i),t):Promise.resolve(void 0)}static getSubredditUsersByType(e,t){let i=u.redditAPIPlugins.Subreddits;return new W({hasMore:!0,pageSize:e.pageSize,limit:e.limit,after:e.after,before:e.before,fetch:async n=>{let o=await i.AboutWhere({where:e.type,user:e.username,subreddit:e.subredditName,show:"all",...n},t);return UO(o,e.subredditName,t)}})}static async createRelationship(e,t){let i=u.redditAPIPlugins.Users,{type:n,subredditName:o,username:a,permissions:c,...p}=e,f=await i.Friend({type:n,subreddit:o,name:a,permissions:c?xm(c):void 0,...p},t);if(f.json?.errors?.length)throw new Error(f.json.errors.join(`
4
4
  `))}static async removeRelationship(e,t){await u.redditAPIPlugins.Users.Unfriend({type:e.type,subreddit:e.subredditName,name:e.username},t)}static async setModeratorPermissions(e,t,i,n){let a=await u.redditAPIPlugins.Users.SetPermissions({subreddit:t,name:e,type:"moderator",permissions:xm(i)},n);if(a.json?.errors?.length)throw new Error(a.json.errors.join(`
5
5
  `))}static async getSnoovatarUrl(e,t){return(await bt.query("GetSnoovatarUrlByName","c47fd42345af268616d2d8904b56856acdc05cf61d3650380f539ad7d596ac0c",{username:e},t)).data?.redditorInfoByName?.snoovatarIcon?.url}static getOverview(e,t){let i=u.redditAPIPlugins.Users;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"overview",...n},t);return LO(o,t)}})}};no=new WeakMap,cn=new WeakMap,so=new WeakMap,oo=new WeakMap,ao=new WeakMap,lo=new WeakMap,uo=new WeakMap,er=new WeakMap,co=new WeakMap,mo=new WeakMap,at=new WeakMap;var w=_r;function LO(r,e){if(!r.data?.children)throw new Error("Listing response is missing children");return{children:r.data.children.map(i=>{if(i.kind==="t3")return new z(i.data,e);if(i.kind==="t1")return new Q(i.data,e);throw new Error(`Type ${i.kind} is not supported`)}),before:r.data.before,after:r.data.after}}async function UO(r,e,t){let i=u.redditAPIPlugins.Users;if(!r.data?.children)throw new Error("Listing response is missing children");let n=r.data.children.map(v=>(g(v.data?.id,"User id is still from listing data"),v.data.id)),o=100,a=[];for(let v=0;v<n.length;v+=o)a.push(n.slice(v,v+o));let p=(await Promise.all(a.map(v=>i.UserDataByAccountIds({ids:v.join(",")},t)))).reduce((v,m)=>({...v,...m.users}),{});return{children:r.data.children.map(v=>{let m=v.data?.id;g(m,"User id is missing from listing");let b=p[m];return g(b,"User data is missing from response"),new w({id:m,name:b.name,linkKarma:b.linkKarma,commentKarma:b.commentKarma,createdUtc:b.createdUtc,over18:b.profileOver18,snoovatarSize:[],modPermissions:{[e]:v.data?.modPermissions??[]}},t)}),before:r.data.before,after:r.data.after}}var Nr,po,mn,pn,fo,go,fn,ho,vo,gn,tr,yo,bo,qr,rr,ir,St,Hr,Pt,ko,So,Po,Co,Io,wo,xo,te,dt,Kd,Xd,G=class G{constructor(e,t){l(this,Nr);l(this,po);l(this,mn);l(this,pn);l(this,fo);l(this,go);l(this,fn);l(this,ho);l(this,vo);l(this,gn);l(this,tr);l(this,yo);l(this,bo);l(this,qr);l(this,rr);l(this,ir);l(this,St);l(this,Hr);l(this,Pt);l(this,ko);l(this,So);l(this,Po);l(this,Co);l(this,Io);l(this,wo);l(this,xo);l(this,te);var n;X(this),g(e.id,"Comment id is null or undefined"),g(e.body,"Comment body is null or undefined"),g(e.createdUtc,"Comment is missing created date"),g(e.author,"Comment author is null or undefined"),g(e.parentId,"Comment parentId is null or undefined"),g(e.linkId,"Comment linkId is null or undefined"),g(e.permalink,"Comment permalink is null or undefined"),g(e.subreddit,"Comment is missing subreddit name"),g(e.subredditId,"Comment is missing subreddit id"),d(this,Nr,ri(`t1_${e.id}`)),d(this,po,e.authorFullname?ne(e.authorFullname):void 0),d(this,mn,e.author),d(this,pn,e.body),d(this,ho,Oe(e.subredditId)),d(this,vo,e.subreddit),d(this,go,cc(e.parentId)?ri(e.parentId):ge(e.parentId)),d(this,fn,ge(e.linkId)),d(this,qr,e.edited??!1),d(this,rr,e.locked??!1),d(this,ir,e.removed??!1),d(this,St,e.stickied??!1),d(this,tr,e.approved??!1),d(this,yo,e.approvedAtUtc??0),d(this,bo,e.bannedAtUtc??0),d(this,Hr,e.spam??!1),d(this,Pt,e.distinguished),d(this,ko,e.numReports??0),d(this,So,e.collapsedBecauseCrowdControl??!1),d(this,Po,e.score??0),d(this,Co,e.permalink),d(this,xo,new URL(e.permalink??"","https://www.reddit.com/").toString()),d(this,Io,(e.modReports??[]).map(([o])=>o)),d(this,wo,(e.userReports??[]).map(([o])=>o));let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,fo,i),d(this,gn,S(n=G,dt,Kd).call(n,{postId:s(this,fn),commentId:s(this,Nr)},t)),d(this,te,t)}get id(){return s(this,Nr)}get authorId(){return s(this,po)}get authorName(){return s(this,mn)}get subredditId(){return s(this,ho)}get subredditName(){return s(this,vo)}get body(){return s(this,pn)}get createdAt(){return s(this,fo)}get parentId(){return s(this,go)}get postId(){return s(this,fn)}get replies(){return s(this,gn)}get distinguishedBy(){return s(this,Pt)}get locked(){return s(this,rr)}get stickied(){return s(this,St)}get removed(){return s(this,ir)}get approved(){return s(this,tr)}get approvedAtUtc(){return s(this,yo)}get bannedAtUtc(){return s(this,bo)}get spam(){return s(this,Hr)}get edited(){return s(this,qr)}get numReports(){return s(this,ko)}get collapsedBecauseCrowdControl(){return s(this,So)}get score(){return s(this,Po)}get permalink(){return s(this,Co)}get userReportReasons(){return s(this,wo)}get modReportReasons(){return s(this,Io)}get url(){return s(this,xo)}toJSON(){return{id:this.id,authorName:this.authorName,subredditId:this.subredditId,subredditName:this.subredditName,body:this.body,createdAt:this.createdAt,parentId:this.parentId,postId:this.postId,replies:this.replies,approved:this.approved,locked:this.locked,removed:this.removed,stickied:this.stickied,spam:this.spam,edited:this.edited,distinguishedBy:this.distinguishedBy,numReports:this.numReports,collapsedBecauseCrowdControl:this.collapsedBecauseCrowdControl,score:this.score,permalink:this.permalink,modReportReasons:this.modReportReasons,userReportReasons:this.userReportReasons,url:this.url}}isLocked(){return s(this,rr)}isApproved(){return s(this,tr)}isRemoved(){return s(this,ir)}isSpam(){return s(this,Hr)}isStickied(){return s(this,St)}isDistinguished(){return!!s(this,Pt)}isEdited(){return s(this,qr)}async delete(){return G.delete(this.id,s(this,te))}async edit(e){let t=await G.edit({id:this.id,...e},s(this,te));return d(this,pn,t.body),d(this,qr,t.edited),this}async approve(){await G.approve(this.id,s(this,te)),d(this,tr,!0),d(this,ir,!1)}async remove(e=!1){await G.remove(this.id,e,s(this,te)),d(this,ir,!0),d(this,Hr,e),d(this,tr,!1)}async lock(){await G.lock(this.id,s(this,te)),d(this,rr,!0)}async unlock(){await G.unlock(this.id,s(this,te)),d(this,rr,!1)}async reply(e){return G.submit({id:this.id,...e},s(this,te))}async getAuthor(){return w.getByUsername(s(this,mn),s(this,te))}async distinguish(e=!1){let{distinguishedBy:t,stickied:i}=await G.distinguish(this.id,e,!1,s(this,te));d(this,Pt,t),d(this,St,i)}async distinguishAsAdmin(e=!1){let{distinguishedBy:t,stickied:i}=await G.distinguish(this.id,e,!0,s(this,te));d(this,Pt,t),d(this,St,i)}async undistinguish(){let{distinguishedBy:e,stickied:t}=await G.undistinguish(this.id,s(this,te));d(this,Pt,e),d(this,St,t)}addRemovalNote(e){return Le.addRemovalNote({itemIds:[s(this,Nr)],...e},s(this,te))}static async getById(e,t){let i=u.redditAPIPlugins.LinksAndComments,n=At(e)?e:`t1_${e}`,o=await i.Info({subreddits:[],thingIds:[n]},t);if(!o.data?.children?.[0]?.data)throw new Error("not found");return new G(o.data.children[0].data,t)}static getComments(e,t){var a;let{postId:i,commentId:n,...o}=e;return S(a=G,dt,Kd).call(a,{postId:ge(i),commentId:n?ri(n):void 0,...o},t)}static async edit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;"richtext"in e&&(o=Hi(e.richtext));let a=await i.EditUserText({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t);if(a.json?.errors?.length)throw new Error("Failed to edit comment");let c=a.json?.data?.things?.[0]?.data;return g(c),new G(c,t)}static async delete(e,t){await u.redditAPIPlugins.LinksAndComments.Del({id:e},t)}static async approve(e,t){await u.redditAPIPlugins.Moderation.Approve({id:e},t)}static async remove(e,t=!1,i){await u.redditAPIPlugins.Moderation.Remove({id:e,spam:t},i)}static async lock(e,t){await u.redditAPIPlugins.LinksAndComments.Lock({id:e},t)}static async unlock(e,t){await u.redditAPIPlugins.LinksAndComments.Unlock({id:e},t)}static async submit(e,t){let i=u.redditAPIPlugins.LinksAndComments,{id:n}=e,o;"richtext"in e&&(o=Hi(e.richtext));let a=await i.Comment({thingId:n,text:"text"in e?e.text:"",richtextJson:o},t);if(a.json?.errors?.length)throw new Error("failed to reply to comment");let c=a.json?.data?.things?.[0]?.data;return g(c),new G(c,t)}static async distinguish(e,t,i,n){let c=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:i?"admin":"yes",sticky:t},n)).json?.data?.things?.[0]?.data;return g(c),{distinguishedBy:c.distinguished,stickied:!!c.stickied}}static async undistinguish(e,t){let o=(await u.redditAPIPlugins.Moderation.Distinguish({id:e,how:"no",sticky:!1},t)).json?.data?.things?.[0]?.data;return g(o),{distinguishedBy:o.distinguished,stickied:!!o.stickied}}static getCommentsByUser(e,t){let i=u.redditAPIPlugins.Users;return new W({hasMore:!0,before:e.before,after:e.after,pageSize:e.pageSize,limit:e.limit,async fetch(n){let o=await i.UserWhere({username:e.username,where:"comments",...n},t);return g(o.data,"Failed to get comments for user"),{children:o.data.children?.map(c=>new G(c.data,t))||[],before:o.data.before,after:o.data.after}}})}};Nr=new WeakMap,po=new WeakMap,mn=new WeakMap,pn=new WeakMap,fo=new WeakMap,go=new WeakMap,fn=new WeakMap,ho=new WeakMap,vo=new WeakMap,gn=new WeakMap,tr=new WeakMap,yo=new WeakMap,bo=new WeakMap,qr=new WeakMap,rr=new WeakMap,ir=new WeakMap,St=new WeakMap,Hr=new WeakMap,Pt=new WeakMap,ko=new WeakMap,So=new WeakMap,Po=new WeakMap,Co=new WeakMap,Io=new WeakMap,wo=new WeakMap,xo=new WeakMap,te=new WeakMap,dt=new WeakSet,Kd=function(e,t,i=0){return new W({limit:e.limit,pageSize:e.pageSize,fetch:async n=>{var b,y;let o=n.limit,a=u.redditAPIPlugins.Listings,c=u.redditAPIPlugins.LinksAndComments,p=e.commentId;if(n.more)if(n.more.children.length){let C=n.more;(!o||o>100)&&(o=100);let I=C.children.splice(0,o),A=await c.MoreChildren({linkId:e.postId,children:I,sort:e.sort},t);if(!A.json?.data?.things?.length)return{children:[]};let{children:M}=S(b=G,dt,Xd).call(b,A.json.data.things,e.postId,e,t);return{children:M,more:C.children.length?C:void 0}}else p=n.more.parentId,i=i+n.more.depth;let v=(await a.Comments({article:e.postId.substring(3),comment:p?.substring(3),limit:o,depth:e.depth,sort:e.sort},t)).listings?.[1]?.data?.children??[],m=v[0];return p&&m?.data?.replyList?.data&&(v=m.data.replyList.data.children),S(y=G,dt,Xd).call(y,v,p??e.postId,e,t,i)}})},Xd=function(e,t,i,n,o=0){var f,v;let a=[],c,p={};for(let m of e){if(!m.data||(m.data.depth!=null&&(m.data.depth=m.data.depth+o),m.data.depth!=null&&i.depth!=null&&m.data.depth>=i.depth))continue;let b=m.data.parentId?p[m.data.parentId]:void 0;if(m.kind==="t1"){if(m.data.name===t)continue;let y=new G(m.data,n);if(p[y.id]=y,d(y,gn,S(f=G,dt,Kd).call(f,{...i,postId:y.postId,commentId:y.id},n,o)),"replyList"in m.data&&m.data.replyList?.data){let{children:C,more:I}=S(v=G,dt,Xd).call(v,m.data.replyList.data.children,y.id,i,n,o);C.length&&y.replies.children.push(...C),I&&y.replies.setMore(I)}y.replies.preventInitialFetch(),b?b.replies.children.push(y):a.push(y)}else if(m.kind==="more"&&m.data.parentId&&m.data.depth!=null){let y={parentId:cc(m.data.parentId)?ri(m.data.parentId):ge(m.data.parentId),children:m.data.children??[],depth:m.data.depth};b?b.replies.setMore(y):y.parentId===t&&(c=y)}}return{children:a,more:c}},l(G,dt);var Q=G;function md(r,e){let t=u.redditAPIPlugins.Moderation;return new W({hasMore:!0,after:r.after,before:r.before,limit:r.limit,pageSize:r.pageSize,fetch:async i=>{let n=await t.AboutLog({subreddit:r.subredditName,mod:r.moderatorUsernames?r.moderatorUsernames.join(","):void 0,type:r.type,...i},e);return BO(n)}})}function BO(r){if(!r.data?.children)throw new Error("AboutLogResponse is missing children");return{children:r.data.children.map(t=>{if(!t.data)throw new Error("ModAction from AboutLogResponse is missing or invalid");let{id:i,mod:n,modId36:o,createdUtc:a,subreddit:c,subredditNamePrefixed:p,action:f,srId36:v,description:m,details:b,targetAuthor:y,targetBody:C,targetFullname:I,targetPermalink:A,targetTitle:M}=t.data;g(i,"ModAction from AboutLogResponse is missing id"),g(n,"ModAction from AboutLogResponse is missing mod"),g(o,"ModAction from AboutLogResponse is missing modId36"),g(a,"ModAction from AboutLogResponse is missing createdUtc"),g(c,"ModAction from AboutLogResponse is missing subreddit"),g(p,"ModAction from AboutLogResponse is missing subredditNamePrefixed"),g(f,"ModAction from AboutLogResponse is missing action"),g(v,"ModAction from AboutLogResponse is missing srId36");let ce=new Date(0);return ce.setUTCSeconds(a),{id:i,type:f,moderatorName:n,moderatorId:`t2_${o}`,createdAt:ce,subredditName:c,subredditId:`t5_${v}`,description:m,details:b,target:I?{id:I,author:y,body:C,permalink:A,title:M}:void 0}}),after:r.data.after,before:r.data.before}}var DO=(a=>(a.New="New",a.InProgress="InProgress",a.Archived="Archived",a.Appeals="Appeals",a.JoinRequests="JoinRequests",a.Filtered="Filtered",a))(DO||{}),_O={0:"New",1:"InProgress",2:"Archived",3:"Appeals",4:"JoinRequests",5:"Filtered"},NO=(y=>(y.Highlighted="Highlighted",y.Unhighlighted="Unhighlighted",y.Archived="Archived",y.Unarchived="Unarchived",y.ReportedToAdmins="ReportedToAdmins",y.Muted="Muted",y.Unmuted="Unmuted",y.Banned="Banned",y.Unbanned="Unbanned",y.Approved="Approved",y.Disapproved="Disapproved",y.Filtered="Filtered",y.Unfiltered="Unfiltered",y))(NO||{}),qO={0:"Highlighted",1:"Unhighlighted",2:"Archived",3:"Unarchived",4:"ReportedToAdmins",5:"Muted",6:"Unmuted",7:"Banned",8:"Unbanned",9:"Approved",10:"Disapproved",11:"Filtered",12:"Unfiltered"},V,J,oe,hS,vS,pd=class{constructor(e){l(this,J);l(this,V);d(this,V,e)}async bulkReadConversations(e,t){let i=u.redditAPIPlugins.NewModmail,{conversationIds:n}=await i.BulkReadConversations({entity:e.join(","),state:t},s(this,V));return n}async getConversations(e){let i=await u.redditAPIPlugins.NewModmail.GetConversations({after:e.after,entity:e.subreddits?e.subreddits.join(","):void 0,limit:e.limit,sort:e.sort,state:e.state},s(this,V)),n={};for(let o in i.conversations)n[o]=S(this,J,oe).call(this,{protoConversation:i.conversations[o],protoMessages:i.messages,protoModActions:{}});return{conversations:n,viewerId:i.viewerId}}async getConversation(e){let i=await u.redditAPIPlugins.NewModmail.GetConversation({...e,markRead:!!e.markRead},s(this,V));return{participantSubreddit:i.participantSubreddit,conversation:S(this,J,oe).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async getSubreddits(){let e=u.redditAPIPlugins.NewModmail,{subreddits:t}=await e.Subreddits({},s(this,V));return t}async createConversation(e){let i=await u.redditAPIPlugins.NewModmail.CreateConversation({body:e.body,isAuthorHidden:e.isAuthorHidden??!1,srName:e.subredditName,subject:e.subject,to:e.to?e.to:void 0},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async reply(e){let i=await u.redditAPIPlugins.NewModmail.CreateConversationMessage({body:e.body,conversationId:e.conversationId,isAuthorHidden:e.isAuthorHidden??!1,isInternal:e.isInternal??!1},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:{}}),user:i.user}}async highlightConversation(e){let i=await u.redditAPIPlugins.NewModmail.HighlightConversation({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async unhighlightConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnhighlightConversation({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async archiveConversation(e){let i=await u.redditAPIPlugins.NewModmail.ArchiveConversation({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async unarchiveConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnarchiveConversation({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversation,protoMessages:i.messages,protoModActions:i.modActions})}}async muteConversation(e){let i=await u.redditAPIPlugins.NewModmail.MuteConversation({conversationId:e.conversationId,numHours:e.numHours},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async unmuteConversation(e){let i=await u.redditAPIPlugins.NewModmail.UnmuteConversation({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async readConversations(e){await u.redditAPIPlugins.NewModmail.Read({conversationIds:e.join(",")},s(this,V))}async unreadConversations(e){await u.redditAPIPlugins.NewModmail.Unread({conversationIds:e.join(",")},s(this,V))}async approveConversation(e){let i=await u.redditAPIPlugins.NewModmail.ApproveConversation({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async disapproveConversation(e){let i=await u.redditAPIPlugins.NewModmail.DisapproveConversation({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async tempBanConversation(e){let i=await u.redditAPIPlugins.NewModmail.TempBan({...e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async unbanConversation(e){let i=await u.redditAPIPlugins.NewModmail.Unban({conversationId:e},s(this,V));return{conversation:S(this,J,oe).call(this,{protoConversation:i.conversations,protoMessages:i.messages,protoModActions:i.modActions}),user:i.user}}async getUnreadCount(){return await u.redditAPIPlugins.NewModmail.UnreadCount({},s(this,V))}async getUserConversations(e){return await u.redditAPIPlugins.NewModmail.UserConversations({conversationId:e},s(this,V))}};V=new WeakMap,J=new WeakSet,oe=function({protoConversation:e,protoMessages:t,protoModActions:i}){return{...e,state:_O[e.state],messages:S(this,J,hS).call(this,e,t),modActions:S(this,J,vS).call(this,e,i)}},hS=function(e,t){let i={},n=e.objIds.filter(o=>o.key==="messages").map(({id:o})=>o);for(let o of n){let a=t[o];a&&(i[o]=a)}return i},vS=function(e,t){let i={},n=e.objIds.filter(o=>o.key==="modActions").map(({id:o})=>o);for(let o of n){let a=t[o];a&&(i[o]={...a,actionType:qO[a.actionTypeId]})}return i};var hn,vn,Zd,Ao,To,Eo,Ro,Rm=class Rm{constructor(e,t){l(this,hn);l(this,vn);l(this,Zd);l(this,Ao);l(this,To);l(this,Eo);l(this,Ro);if(X(this),g(e.id,"PrivateMessage: Invalid data, no id"),g(e.name,"PrivateMessage: Invalid data, no name"),g(e.created,"PrivateMessage: Invalid data, no created date"),d(this,hn,he(e.name)),e.author!=null)d(this,vn,{type:"user",username:e.author,id:e.authorFullname?ne(e.authorFullname):void 0});else if(e.subreddit!=null)d(this,vn,{type:"subreddit",name:e.subreddit,id:e.subredditId?Oe(e.subredditId):void 0});else throw new Error("PrivateMessage: Invalid data, no author or subreddit");d(this,Ao,e.body??""),d(this,To,e.bodyHtml??"");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Eo,i),d(this,Zd,e.parentId?he(e.parentId):void 0),d(this,Ro,t)}static async getMessages(e,t){let i=u.redditAPIPlugins.PrivateMessages;return new W({...e,fetch:async n=>{let o=await i.MessageWhere({...n,where:e.type??"inbox"},t);return{after:o.data?.after,before:o.data?.before,children:o.data?.children?.map(a=>new Rm(a.data,t)).filter(Boolean)||[]}}})}static async send({to:e,subject:t,text:i},n){await u.redditAPIPlugins.PrivateMessages.Compose({to:e,subject:t,text:i,fromSr:""},n)}static async sendAsSubreddit({to:e,fromSubredditName:t,subject:i,text:n},o){await u.redditAPIPlugins.PrivateMessages.Compose({to:e,fromSr:t,subject:i,text:n},o)}static async markAllAsRead(e){await u.redditAPIPlugins.PrivateMessages.ReadAllMessages({filterTypes:""},e)}get id(){return s(this,hn)}get from(){return s(this,vn)}get body(){return s(this,Ao)}get bodyHtml(){return s(this,To)}get created(){return s(this,Eo)}async markAsRead(){await u.redditAPIPlugins.PrivateMessages.ReadMessage({id:s(this,hn)},s(this,Ro))}};hn=new WeakMap,vn=new WeakMap,Zd=new WeakMap,Ao=new WeakMap,To=new WeakMap,Eo=new WeakMap,Ro=new WeakMap;var fr=Rm;var iy=(o=>(o.Reports="reports",o.Spam="spam",o.Modqueue="modqueue",o.Unmoderated="unmoderated",o.Edited="edited",o))(iy||{}),yn,x,Oo,Fo,Mo,Lo,Uo,Bo,Do,_o,No,bn,E,lt=class lt{constructor(e,t){l(this,yn);l(this,x);l(this,Oo);l(this,Fo);l(this,Mo);l(this,Lo);l(this,Uo);l(this,Bo);l(this,Do);l(this,_o);l(this,No);l(this,bn);l(this,E);X(this),g(e.id,"Subreddit id is missing or undefined"),g(e.displayName,"Subreddit name is missing or undefined"),d(this,yn,Oe(`t5_${e.id}`)),d(this,x,e.displayName),g(e.createdUtc,"Subreddit is missing created date");let i=new Date(0);i.setUTCSeconds(e.createdUtc),d(this,Oo,i),d(this,Fo,HO(e.subredditType)),d(this,Mo,e.title),d(this,Lo,e.description),g(e.lang,"Subreddit is missing language"),d(this,Uo,e.lang),d(this,Bo,e.subscribers??0),d(this,Do,e.activeUserCount??0),d(this,_o,e.over18??!1),d(this,bn,e.url??""),d(this,No,{acceptFollowers:e.acceptFollowers??!1,allOriginalContent:e.allOriginalContent??!1,allowChatPostCreation:e.allowChatPostCreation??!1,allowDiscovery:e.allowDiscovery??!1,allowGalleries:e.allowGalleries??!1,allowImages:e.allowImages??!1,allowPolls:e.allowPolls??!1,allowPredictionContributors:e.allowPredictionContributors??!1,allowPredictions:e.allowPredictions??!1,allowPredictionsTournament:e.allowPredictionsTournament??!1,allowTalks:e.allowTalks??!1,allowVideoGifs:e.allowVideogifs??!1,allowVideos:e.allowVideos??!1,chatPostEnabled:e.isChatPostFeatureEnabled??!1,collectionsEnabled:e.collectionsEnabled??!1,crosspostable:e.isCrosspostableSubreddit??!1,emojisEnabled:e.emojisEnabled??!1,eventPostsEnabled:e.eventPostsEnabled??!1,linkFlairEnabled:e.linkFlairEnabled??!1,originalContentTagEnabled:e.originalContentTagEnabled??!1,restrictCommenting:e.restrictCommenting??!1,restrictPosting:e.restrictPosting??!1,shouldArchivePosts:e.shouldArchivePosts??!1,spoilersEnabled:e.spoilersEnabled??!1,wikiEnabled:e.wikiEnabled??!1,allowedPostType:jO(e.submissionType),allowedMediaInComments:(e.allowedMediaInComments??[]).map(WO),bannerBackgroundColor:e.bannerBackgroundColor,bannerBackgroundImage:e.bannerBackgroundImage,bannerImage:e.bannerImg,communityIcon:e.communityIcon,headerTitle:e.headerTitle,mobileBannerImage:e.mobileBannerImage,userFlairs:{enabled:e.userFlairEnabledInSr??!1,usersCanAssign:e.canAssignUserFlair??!1},postFlairs:{enabled:e.linkFlairEnabled??!1,usersCanAssign:e.canAssignLinkFlair??!1},url:new URL(s(this,bn),"https://www.reddit.com").toString()}),d(this,E,t)}get id(){return s(this,yn)}get name(){return s(this,x)}get createdAt(){return s(this,Oo)}get type(){return s(this,Fo)}get title(){return s(this,Mo)}get description(){return s(this,Lo)}get language(){return s(this,Uo)}get numberOfSubscribers(){return s(this,Bo)}get numberOfActiveUsers(){return s(this,Do)}get nsfw(){return s(this,_o)}get settings(){return s(this,No)}get userFlairsEnabled(){return this.settings.userFlairs.enabled}get postFlairsEnabled(){return this.settings.postFlairs.enabled}get usersCanAssignUserFlairs(){return this.settings.userFlairs.usersCanAssign}get usersCanAssignPostFlairs(){return this.settings.postFlairs.usersCanAssign}get url(){return this.settings.url}get permalink(){return s(this,bn)}toJSON(){return{id:this.id,name:this.name,createdAt:this.createdAt,type:this.type,title:this.title,description:this.description,language:this.language,nsfw:this.nsfw,numberOfSubscribers:this.numberOfSubscribers,numberOfActiveUsers:this.numberOfActiveUsers,settings:this.settings}}async submitPost(e){let t={...e,subredditName:s(this,x)};return z.submit(t,s(this,E))}getControversialPosts(e={}){if(!s(this,x))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getControversialPosts({...e,subredditName:s(this,x)},s(this,E))}getTopPosts(e={}){if(!s(this,x))throw new Error("subreddit missing displayName - it might not have been fetched");return z.getTopPosts({...e,subredditName:s(this,x)},s(this,E))}getApprovedUsers(e={}){return w.getSubredditUsersByType({type:"contributors",subredditName:s(this,x),...e},s(this,E))}approveUser(e){return w.createRelationship({username:e,subredditName:s(this,x),type:"contributor"},s(this,E))}removeUser(e){return w.removeRelationship({username:e,subredditName:s(this,x),type:"contributor"},s(this,E))}getWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikicontributors",subredditName:s(this,x),...e},s(this,E))}addWikiContributor(e){return w.createRelationship({username:e,subredditName:s(this,x),type:"wikicontributor"},s(this,E))}removeWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,x),type:"wikicontributor"},s(this,E))}getBannedUsers(e={}){return w.getSubredditUsersByType({type:"banned",subredditName:s(this,x),...e},s(this,E))}banUser(e){return w.createRelationship({username:e.username,subredditName:s(this,x),type:"banned",banReason:e.reason,banMessage:e.message,note:e.note,duration:e.duration},s(this,E))}unbanUser(e){return w.removeRelationship({username:e,subredditName:s(this,x),type:"banned"},s(this,E))}getBannedWikiContributors(e={}){return w.getSubredditUsersByType({type:"wikibanned",subredditName:s(this,x),...e},s(this,E))}banWikiContributor(e){return w.createRelationship({username:e.username,subredditName:s(this,x),type:"wikibanned",banReason:e.reason,note:e.note,duration:e.duration},s(this,E))}unbanWikiContributor(e){return w.removeRelationship({username:e,subredditName:s(this,x),type:"wikibanned"},s(this,E))}getModerators(e={}){return w.getSubredditUsersByType({type:"moderators",subredditName:s(this,x),...e},s(this,E))}inviteModerator(e,t){return w.createRelationship({type:"moderator_invite",subredditName:s(this,x),username:e,permissions:t??[]},s(this,E))}revokeModeratorInvite(e){return w.removeRelationship({username:e,subredditName:s(this,x),type:"moderator_invite"},s(this,E))}removeModerator(e){return w.removeRelationship({type:"moderator",subredditName:s(this,x),username:e},s(this,E))}setModeratorPermissions(e,t){return w.setModeratorPermissions(e,s(this,x),t,s(this,E))}getMutedUsers(e={}){return w.getSubredditUsersByType({type:"muted",subredditName:s(this,x),...e},s(this,E))}muteUser(e,t){return w.createRelationship({username:e,subredditName:s(this,x),type:"muted",note:t},s(this,E))}unmuteUser(e){return w.removeRelationship({username:e,subredditName:s(this,x),type:"muted"},s(this,E))}getModerationLog(e){return md({subredditName:s(this,x),...e},s(this,E))}getUserFlairTemplates(){return de.getUserFlairTemplates(s(this,x),s(this,E))}getPostFlairTemplates(){return de.getPostFlairTemplates(s(this,x),s(this,E))}createPostFlairTemplate(e){return de.createPostFlairTemplate({subredditName:s(this,x),...e},s(this,E))}createUserFlairTemplate(e){return de.createUserFlairTemplate({subredditName:s(this,x),...e},s(this,E))}async getUserFlair(e){if(e?.usernames!==void 0)return{users:await Promise.all(e.usernames.map(async i=>{let n=await Ue.getUserFlairBySubreddit({subreddit:s(this,x),name:i},s(this,E));return qs(n.users[0])}))};{let t=await Ue.getUserFlairBySubreddit({...e,subreddit:s(this,x)},s(this,E));return{next:t.next,prev:t.prev,users:t.users.map(i=>qs(i))}}}getModQueue(e={type:"all"}){return lt.aboutLocation({...e,location:"modqueue",subreddit:s(this,x)},s(this,E))}getReports(e={type:"all"}){return lt.aboutLocation({...e,location:"reports",subreddit:s(this,x)},s(this,E))}getSpam(e={type:"all"}){return lt.aboutLocation({...e,location:"spam",subreddit:s(this,x)},s(this,E))}getUnmoderated(e={type:"all"}){return lt.aboutLocation({...e,location:"unmoderated",subreddit:s(this,x)},s(this,E))}getEdited(e={type:"all"}){return lt.aboutLocation({...e,location:"edited",subreddit:s(this,x)},s(this,E))}static aboutLocation(e,t){let i=u.redditAPIPlugins.Moderation,n;switch(e.type){case"post":n="links";break;case"comment":n="comments";break;default:n=void 0}return new W({...e,fetch:async o=>{let a=await i.AboutLocation({...o,...e,only:n},t);return yS(a,t)}})}getCommentsAndPostsByIds(e){let t=u.redditAPIPlugins.LinksAndComments;return new W({fetch:async()=>{let i=await t.Info({thingIds:e,subreddits:[s(this,yn)]},s(this,E));return yS(i,s(this,E))}})}static async addRemovalReason(e,t,i,n){return(await u.redditAPIPlugins.Subreddits.SubredditAddRemovalReason({title:t,message:i,subreddit:e},n)).id}static async getRemovalReasons(e,t){let n=await u.redditAPIPlugins.Subreddits.SubredditGetRemovalReasons({subreddit:e},t);return n.order.map(o=>({...n.data[o]}))}static async getFromMetadata(e){g(e);let t=e?.[D.Subreddit]?.values[0];return g(t),lt.getById(Oe(t),e)}static async getById(e,t){let o=(await u.redditAPIPlugins.LinksAndComments.Info({thingIds:[e],subreddits:[]},t)).data?.children[0]?.data?.displayName;return g(o),lt.getByName(o,t)}static async getByName(e,t){let n=await u.redditAPIPlugins.Subreddits.SubredditAbout({subreddit:e},t);if(!n?.data)throw new Error("not found");return new lt(n.data,t)}};yn=new WeakMap,x=new WeakMap,Oo=new WeakMap,Fo=new WeakMap,Mo=new WeakMap,Lo=new WeakMap,Uo=new WeakMap,Bo=new WeakMap,Do=new WeakMap,_o=new WeakMap,No=new WeakMap,bn=new WeakMap,E=new WeakMap;var ve=lt;async function ny(r,e){let o=(await bt.query("GetSubredditLeaderboard","18ead70c46b6446d45ecd8b679b16d9a929a933d6ef25d8262a459cb18b72848",{id:r},e)).data?.subredditInfoById?.leaderboard;if(!o)throw new Error("subreddit leaderboard not found");if(!o.summary)throw new Error("subreddit leaderboard summary not found");return{id:o.id,summary:o.summary}}function HO(r){if(r==="public"||r==="private"||r==="restricted"||r==="employees_only"||r==="gold_restricted"||r==="archived")return r;throw new Error(`invalid subreddit type: ${r}`)}function jO(r){if(r==="any"||r==="link"||r==="self")return r;throw new Error(`invalid allowed post type: ${r}`)}function WO(r){if(r==="animated"||r==="giphy"||r==="static"||r==="expression")return r;throw new Error(`invalid comment media type: ${r}`)}function yS(r,e){let i=(r.data?.children??[]).map(a=>{let c=n(a);if(c!=null)return c;let p=o(a);return p??null}).filter(Boolean);return{after:r.data?.after,before:r.data?.before,children:i};function n(a){try{return new z(a.data,e)}catch{return null}}function o(a){try{return new Q(a.data,e)}catch{return null}}}async function sy(r,e){return bS("GetVaultContactByAddress","3e2f7966a5c120e64fd2795d06a46595c52d988185be98d3ed71c3f81ae80d2e",{provider:"ethereum",address:r},e)}async function oy(r,e){return bS("GetVaultContactByUserId","a854ddc19d0e22c4f36ed917fdbd568f299f3571427e393aee5e2972080fffe9",{provider:"ethereum",userId:r},e)}async function bS(r,e,t,i){let o=(await bt.query(r,e,t,i))?.data?.vault?.contact;return{provider:o?.provider,userId:ne(o?.userId),address:o?.address,createdAt:o?.createdAt,isActive:o?.isActive}}import{CommunityListWidget_CommunityData as GO,GetWidgetsResponse_WidgetItem as ue}from"@devvit/protos";var qo,Ho,jo,Wo,Fm=class Fm{constructor(e,t,i){l(this,qo);l(this,Ho);l(this,jo);l(this,Wo);X(this),d(this,qo,e.id),d(this,Ho,e.shortName),d(this,jo,t),d(this,Wo,i)}get id(){return s(this,qo)}get name(){return s(this,Ho)}get subredditName(){return s(this,jo)}toJSON(){return{id:this.id,name:this.name,subredditName:this.subredditName}}delete(){return Fm.delete(this.subredditName,this.id,s(this,Wo))}static async getWidgets(e,t){let n=await u.redditAPIPlugins.Widgets.GetWidgets({subreddit:e},t);g(n.layout,"Failed to load widgets for subreddit");let o=n.items,a=[];for(let c of n.layout.sidebar?.order??[]){let p=o[c];switch(p?.kind){case"image":a.push(new Yd(p,e,t));break;case"calendar":a.push(new Qd(p,e,t));break;case"textarea":a.push(new el(p,e,t));break;case"button":a.push(new tl(p,e,t));break;case"community-list":a.push(new rl(p,e,t));break;case"post-flair":a.push(new il(p,e,t));break;case"custom":a.push(new nl(p,e,t));break;case"subreddit-rules":{let f=await u.redditAPIPlugins.Subreddits.SubredditAboutRules({subreddit:e},t);a.push(new Om(f,p,e,t));break}default:throw new Error(`Unknown widget type: ${p.kind}`)}}return a}static async delete(e,t,i){await u.redditAPIPlugins.Widgets.DeleteWidget({subreddit:e,id:t},i)}static async reorder(e,t,i){await u.redditAPIPlugins.Widgets.OrderWidgets({subreddit:e,order:t},i)}static async add(e,t){switch(e?.type){case"image":return Yd.create(e,t);case"calendar":return Qd.create(e,t);case"textarea":return el.create(e,t);case"button":return tl.create(e,t);case"community-list":return rl.create(e,t);case"post-flair":return il.create(e,t);case"custom":return nl.create(e,t);default:throw new Error("Unknown widget type")}}};qo=new WeakMap,Ho=new WeakMap,jo=new WeakMap,Wo=new WeakMap;var se=Fm,Go,sl=class sl extends se{constructor(t,i,n){super(t,i,n);l(this,Go);d(this,Go,t.data.map(o=>(g(o.url,"Image widget data is missing url"),g(o.height,"Image widget data is missing height"),g(o.width,"Image widget data is missing width"),g(o.linkUrl,"Image widget data is missing linkUrl"),{url:o.url,height:o.height,width:o.width,linkUrl:o.linkUrl})))}get images(){return s(this,Go)}toJSON(){return{...super.toJSON(),images:this.images}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddImageWidget(t,i);return new sl(ue.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateImageWidget(t,i);return new sl(ue.fromJSON(o),t.subreddit,i)}};Go=new WeakMap;var Yd=sl,Vo,zo,Jo,ol=class ol extends se{constructor(t,i,n){super(t,i,n);l(this,Vo);l(this,zo);l(this,Jo);g(t.googleCalendarId,"Calendar widget data is missing googleCalendarId"),g(t.configuration,"Calendar widget data is missing configuration"),g(t.styles,"Calendar widget data is missing styles"),d(this,Vo,t.googleCalendarId),d(this,zo,t.configuration),d(this,Jo,t.styles)}get googleCalendarId(){return s(this,Vo)}get configuration(){return s(this,zo)}get styles(){return s(this,Jo)}toJSON(){return{...super.toJSON(),googleCalendarId:this.googleCalendarId,configuration:this.configuration,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCalendarWidget(t,i);return new ol(ue.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCalendarWidget(t,i);return new ol(ue.fromJSON(o),t.subreddit,i)}};Vo=new WeakMap,zo=new WeakMap,Jo=new WeakMap;var Qd=ol,$o,Ko,al=class al extends se{constructor(t,i,n){super(t,i,n);l(this,$o);l(this,Ko);g(t.text,"Textarea widget data is missing text"),g(t.styles,"Textarea widget data is missing styles"),d(this,$o,t.text),d(this,Ko,t.styles)}get text(){return s(this,$o)}get styles(){return s(this,Ko)}toJSON(){return{...super.toJSON(),text:this.text,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddTextAreaWidget(t,i);return new al(ue.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateTextAreaWidget(t,i);return new al(ue.fromJSON(o),t.subreddit,i)}};$o=new WeakMap,Ko=new WeakMap;var el=al,Xo,Zo,Yo,dl=class dl extends se{constructor(t,i,n){super(t,i,n);l(this,Xo);l(this,Zo);l(this,Yo);g(t.styles,"Button widget data is missing styles"),d(this,Xo,t.buttons),d(this,Zo,t.description??""),d(this,Yo,t.styles)}get buttons(){return s(this,Xo)}get description(){return s(this,Zo)}get styles(){return s(this,Yo)}toJSON(){return{...super.toJSON(),buttons:this.buttons,description:this.description,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddButtonWidget(t,i);return new dl(ue.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateButtonWidget(t,i);return new dl(ue.fromJSON(o),t.subreddit,i)}};Xo=new WeakMap,Zo=new WeakMap,Yo=new WeakMap;var tl=dl,Qo,ea,ll=class ll extends se{constructor(t,i,n){super(t,i,n);l(this,Qo);l(this,ea);d(this,Qo,t.data.map(o=>GO.fromJSON(o))),g(t.styles,"Community list widget data is missing styles"),d(this,ea,t.styles)}get communities(){return s(this,Qo)}get styles(){return s(this,ea)}toJSON(){return{...super.toJSON(),communities:this.communities,styles:this.styles}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCommunityListWidget(t,i);return new ll(ue.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCommunityListWidget(t,i);return new ll(ue.fromJSON(o),t.subreddit,i)}};Qo=new WeakMap,ea=new WeakMap;var rl=ll,ta,ra,ia,ul=class ul extends se{constructor(t,i,n){super(t,i,n);l(this,ta);l(this,ra);l(this,ia);if(g(t.styles,"Post flair widget data is missing styles"),d(this,ta,t.styles),d(this,ra,t.order.map(o=>t.templates[o])),!(t.display&&t.display==="list"||t.display==="cloud"))throw new Error("Post flair widget data is missing display type");d(this,ia,t.display)}get styles(){return s(this,ta)}get templates(){return s(this,ra)}get display(){return s(this,ia)}toJSON(){return{...super.toJSON(),styles:this.styles,templates:this.templates,display:this.display}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddPostFlairWidget(t,i);return new ul(ue.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdatePostFlairWidget(t,i);return new ul(ue.fromJSON(o),t.subreddit,i)}};ta=new WeakMap,ra=new WeakMap,ia=new WeakMap;var il=ul,na,sa,oa,aa,da,cl=class cl extends se{constructor(t,i,n){super(t,i,n);l(this,na);l(this,sa);l(this,oa);l(this,aa);l(this,da);g(t.stylesheetUrl,"Custom widget data is missing stylesheetUrl"),g(t.height,"Custom widget data is missing height"),g(t.css,"Custom widget data is missing css"),d(this,na,t.imageData??[]),d(this,sa,t.text??""),d(this,oa,t.stylesheetUrl),d(this,aa,t.height),d(this,da,t.css)}get images(){return s(this,na)}get text(){return s(this,sa)}get stylesheetUrl(){return s(this,oa)}get height(){return s(this,aa)}get css(){return s(this,da)}toJSON(){return{...super.toJSON(),images:this.images,text:this.text,stylesheetUrl:this.stylesheetUrl,height:this.height,css:this.css}}static async create(t,i){let o=await u.redditAPIPlugins.Widgets.AddCustomWidget(t,i);return new cl(ue.fromJSON(o),t.subreddit,i)}static async update(t,i){let o=await u.redditAPIPlugins.Widgets.UpdateCustomWidget(t,i);return new cl(ue.fromJSON(o),t.subreddit,i)}};na=new WeakMap,sa=new WeakMap,oa=new WeakMap,aa=new WeakMap,da=new WeakMap;var nl=cl,la,Om=class extends se{constructor(t,i,n,o){super(i,n,o);l(this,la);let a=t.rules.map(({description:c,priority:p,shortName:f,violationReason:v})=>(g(c,"Subreddit rule is missing description"),g(p,"Subreddit rule is missing priority"),g(f,"Subreddit rule is missing shortName"),g(v,"Subreddit rule is missing violationReason"),{description:c,priority:p,shortName:f,violationReason:v}));d(this,la,a)}get rules(){return s(this,la)}toJSON(){return{...super.toJSON(),rules:this.rules}}};la=new WeakMap;var VO=(i=>(i[i.SUBREDDIT_PERMISSIONS=0]="SUBREDDIT_PERMISSIONS",i[i.APPROVED_CONTRIBUTORS_ONLY=1]="APPROVED_CONTRIBUTORS_ONLY",i[i.MODS_ONLY=2]="MODS_ONLY",i))(VO||{}),Se,Pe,kn,Sn,Pn,Cn,In,Ye,He=class He{constructor(e,t,i,n){l(this,Se);l(this,Pe);l(this,kn);l(this,Sn);l(this,Pn);l(this,Cn);l(this,In);l(this,Ye);X(this),d(this,Se,e),d(this,Pe,t),d(this,kn,i.contentMd),d(this,Sn,i.revisionId),d(this,Pn,new Date(i.revisionDate)),d(this,Cn,i.reason??""),g(i.revisionBy?.data,"Wiki page author details are missing"),d(this,In,new w(i.revisionBy.data,n)),d(this,Ye,n)}get name(){return s(this,Se)}get subredditName(){return s(this,Pe)}get content(){return s(this,kn)}get revisionId(){return s(this,Sn)}get revisionDate(){return s(this,Pn)}get revisionReason(){return s(this,Cn)}get revisionAuthor(){return s(this,In)}toJSON(){return{name:s(this,Se),subredditName:s(this,Pe),content:s(this,kn),revisionId:s(this,Sn),revisionDate:s(this,Pn),revisionReason:s(this,Cn),revisionAuthor:s(this,In).toJSON()}}async update(e,t){return He.updatePage({subredditName:s(this,Pe),page:s(this,Se),content:e,reason:t},s(this,Ye))}async getRevisions(e){return He.getPageRevisions({subredditName:s(this,Pe),page:s(this,Se),...e},s(this,Ye))}async revertTo(e){return He.revertPage(s(this,Pe),s(this,Se),e,s(this,Ye))}async getSettings(){return He.getPageSettings(s(this,Pe),s(this,Se),s(this,Ye))}async updateSettings(e){return He.updatePageSettings({subredditName:s(this,Pe),page:s(this,Se),listed:e.listed,permLevel:e.permLevel},s(this,Ye))}async addEditor(e){return He.addEditor(s(this,Pe),s(this,Se),e,s(this,Ye))}async removeEditor(e){return He.removeEditor(s(this,Pe),s(this,Se),e,s(this,Ye))}static async getPage(e,t,i){let o=await u.redditAPIPlugins.Wiki.GetWikiPage({subreddit:e,page:t},i);return g(o.data,"Failed to get wiki page"),new He(t,e,o.data,i)}static async getPages(e,t){return(await u.redditAPIPlugins.Wiki.GetWikiPages({subreddit:e},t)).data||[]}static async createPage(e,t){return He.updatePage(e,t)}static async updatePage(e,t){return await u.redditAPIPlugins.Wiki.EditWikiPage({subreddit:e.subredditName,page:e.page,content:e.content,reason:e.reason??""},t),He.getPage(e.subredditName,e.page,t)}static getPageRevisions(e,t){let i=u.redditAPIPlugins.Wiki;return new W({hasMore:!0,after:e.after,limit:e.limit,pageSize:e.pageSize,async fetch(n){let o=await i.GetWikiPageRevisions({subreddit:e.subredditName,page:e.page,limit:n.limit,after:n.after,before:n.before},t);return zO(o,t)}})}static async revertPage(e,t,i,n){await u.redditAPIPlugins.Wiki.RevertWikiPage({subreddit:e,page:t,revision:i},n)}static async getPageSettings(e,t,i){let o=await u.redditAPIPlugins.Wiki.GetWikiPageSettings({subreddit:e,page:t},i);return g(o.data,"Failed to get wiki page settings"),new ml(o.data,i)}static async updatePageSettings(e,t){let n=await u.redditAPIPlugins.Wiki.UpdateWikiPageSettings({subreddit:e.subredditName,page:e.page,listed:e.listed?"on":"",permlevel:e.permLevel},t);return g(n.data,"Failed to update wiki page settings"),new ml(n.data,t)}static async addEditor(e,t,i,n){await u.redditAPIPlugins.Wiki.AllowEditor({act:"add",subreddit:e,page:t,username:i},n)}static async removeEditor(e,t,i,n){await u.redditAPIPlugins.Wiki.AllowEditor({act:"del",subreddit:e,page:t,username:i},n)}};Se=new WeakMap,Pe=new WeakMap,kn=new WeakMap,Sn=new WeakMap,Pn=new WeakMap,Cn=new WeakMap,In=new WeakMap,Ye=new WeakMap;var ye=He,wn,xn,An,Tn,En,Rn,Mm=class{constructor(e,t){l(this,wn);l(this,xn);l(this,An);l(this,Tn);l(this,En);l(this,Rn);d(this,wn,e.id),d(this,xn,e.page),d(this,An,new Date(e.timestamp)),g(e.author?.data,"Wiki page revision author details are missing"),d(this,Tn,new w(e.author.data,t)),d(this,En,e.reason??""),d(this,Rn,e.revisionHidden??!1)}get id(){return s(this,wn)}get page(){return s(this,xn)}get date(){return s(this,An)}get author(){return s(this,Tn)}get reason(){return s(this,En)}get hidden(){return s(this,Rn)}toJSON(){return{id:s(this,wn),page:s(this,xn),date:s(this,An),author:s(this,Tn).toJSON(),reason:s(this,En),hidden:s(this,Rn)}}};wn=new WeakMap,xn=new WeakMap,An=new WeakMap,Tn=new WeakMap,En=new WeakMap,Rn=new WeakMap;var On,Fn,Mn,ml=class{constructor(e,t){l(this,On);l(this,Fn);l(this,Mn);d(this,On,e.listed),d(this,Fn,e.permLevel),d(this,Mn,e.editors.map(i=>(g(i.data,"Wiki page editor details are missing"),new w(i.data,t))))}get listed(){return s(this,On)}get permLevel(){return s(this,Fn)}get editors(){return s(this,Mn)}toJSON(){return{listed:s(this,On),permLevel:s(this,Fn),editors:s(this,Mn).map(e=>e.toJSON())}}};On=new WeakMap,Fn=new WeakMap,Mn=new WeakMap;function zO(r,e){return g(r.data?.children,"Wiki page revision listing is missing children"),{children:r.data.children.map(i=>new Mm(i,e)),before:r.data.before,after:r.data.after}}var JO=(t=>(t.Gallery="GALLERY",t.Timeline="TIMELINE",t))(JO||{});function $O(r){return r==="GALLERY"?"GALLERY":"TIMELINE"}var je,Ce,ca,Ln,Un,ma,pa,fa,ga,Ct,ha,va,Bn,ua=class ua{constructor(e,t){l(this,je);l(this,Ce);l(this,ca);l(this,Ln);l(this,Un);l(this,ma);l(this,pa);l(this,fa);l(this,ga);l(this,Ct);l(this,ha);l(this,va);l(this,Bn);g(e.collectionId,"Collection Id is missing or undefined"),g(e.subredditId,"Subreddit Id is missing or undefined"),g(e.title,"Collection title is missing or undefined"),g(e.authorId,"Collection author's id is missing or undefined"),g(e.authorName,"Collection author's id is missing or undefined"),g(e.createdAtUtc,"Collection create timestamp is missing"),g(e.lastUpdateUtc,"Collection last updated timestamp is missing"),d(this,je,t),d(this,Ce,e.collectionId),d(this,ca,e.subredditId),d(this,Ln,e.title),d(this,Un,e.description||""),d(this,ma,e.authorId),d(this,pa,e.authorName),d(this,fa,e.permalink),d(this,ga,e.primaryLinkId),d(this,Ct,e.linkIds||[]),d(this,Bn,$O(e.displayLayout)),d(this,ha,e.createdAtUtc),d(this,va,e.lastUpdateUtc),X(this)}get id(){return s(this,Ce)}get subredditId(){return s(this,ca)}get title(){return s(this,Ln)}get description(){return s(this,Un)}get authorId(){return s(this,ma)}get authorName(){return s(this,pa)}get permalink(){return s(this,fa)}get primaryLinkId(){return s(this,ga)}get linkIds(){return s(this,Ct)}get createdAtUtc(){return s(this,ha)}get lastUpdateUtc(){return s(this,va)}get displayLayout(){return s(this,Bn)}static async getCollectionById(e,t){let n=await u.redditAPIPlugins.PostCollections.Collection(e,t);return new ua(n,t)}static async create(e,t){let n=await u.redditAPIPlugins.PostCollections.Create({srFullname:e.subredditId,title:e.title,description:e.description,displayLayout:e.displayLayout},t);return new ua(n,t)}static async getCollectionsForSubreddit(e,t){return(await u.redditapiv2Plugin.GetSubredditCollections({srFullname:e.subredditId},t)).collections.map(n=>new ua(n,t))}async addPost(e){await u.redditAPIPlugins.PostCollections.AddPost({collectionId:s(this,Ce),linkFullname:e},s(this,je)),s(this,Ct).push(e)}async removePost(e){await u.redditAPIPlugins.PostCollections.RemovePost({collectionId:s(this,Ce),linkFullname:e},s(this,je)),d(this,Ct,s(this,Ct).filter(i=>i!==e))}async delete(){await u.redditAPIPlugins.PostCollections.Delete({collectionId:s(this,Ce)},s(this,je))}async follow(e){await u.redditAPIPlugins.PostCollections.Follow({collectionId:s(this,Ce),follow:e},s(this,je))}async reorder(e){await u.redditAPIPlugins.PostCollections.Reorder({collectionId:s(this,Ce),linkIds:e.join(",")},s(this,je)),d(this,Ct,e)}async updateTitle(e){await u.redditAPIPlugins.PostCollections.UpdateTitle({collectionId:s(this,Ce),title:e},s(this,je)),d(this,Ln,e)}async updateDescription(e){await u.redditAPIPlugins.PostCollections.UpdateDescription({collectionId:s(this,Ce),description:e},s(this,je)),d(this,Un,e)}async updateLayout(e){await u.redditAPIPlugins.PostCollections.UpdateDisplayLayout({collectionId:s(this,Ce),displayLayout:e},s(this,je)),d(this,Bn,e)}};je=new WeakMap,Ce=new WeakMap,ca=new WeakMap,Ln=new WeakMap,Un=new WeakMap,ma=new WeakMap,pa=new WeakMap,fa=new WeakMap,ga=new WeakMap,Ct=new WeakMap,ha=new WeakMap,va=new WeakMap,Bn=new WeakMap;var pi=ua;var KO=["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"],XO=["border-image","border-image-source","behavior","expression","list-style-image","cursor","content"],ZO=["onload","onerror","onclick","onmouseover"];function YO(r){return/xmlns=["']http:\/\/www\.w3\.org\/2000\/svg["']/.test(r)?r:r.replace(/<svg\b/,'<svg xmlns="http://www.w3.org/2000/svg"')}function kS(r){if(r){if(!r.trim().startsWith("<svg")){console.log("The provided string is not a valid SVG.");return}try{let e=new RegExp(`<\\s*(${KO.join("|")})\\b`,"gi"),t=new RegExp(`(${XO.join("|")})\\s*:\\s*url\\s*\\((['"]?)(.*?)\\2\\)`,"gi"),i=new RegExp(`(${ZO.join("|")})\\s*(=\\s*(['"]?)(.*?)\\3)?`,"gi");r=r.trim().replace(/\s+/g," "),r=YO(r);let n=r.match(e)||[],o=r.match(t)||[],a=r.match(i)||[],c=!1;return n.length>0&&(c=!0,console.warn(`Disallowed elements detected in SVG: ${n.map(p=>p.replace("<","")).join(", ")}`)),o.length>0&&(c=!0,console.warn(`Disallowed styles detected in SVG: ${o.map(p=>p.split(":")[0]).join(", ")}`)),a.length>0&&(c=!0,console.warn(`Disallowed attributes detected in SVG: ${a.map(p=>p.split("=")[0]).join(", ")}`)),c?void 0:r}catch{return}}}function KH(r,...e){let t="";return r.forEach((i,n)=>{t+=i;let o=e[n];o!==void 0&&(t+=`${o}`)}),t=kS(t),t===void 0?"":`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(t)}`}export{bL as ALL_ICON_NAMES,iy as AboutLocations,tl as ButtonWidget,Qd as CalendarWidget,JO as CollectionDisplayLayout,Q as Comment,rl as CommunityListWidget,nl as CustomWidget,u as Devvit,Ue as Flair,de as FlairTemplate,SO as FlairType,Tt as Hook,Yd as ImageWidget,W as Listing,NO as ModMailActionType,DO as ModMailConversationState,pd as ModMailService,Le as ModNote,z as Post,pi as PostCollection,il as PostFlairWidget,fr as PrivateMessage,_s as RichTextBuilder,mc as SettingScope,MO as SocialLinkType,ve as Subreddit,Om as SubredditRulesWidget,el as TextAreaWidget,w as User,se as Widget,ye as WikiPage,VO as WikiPagePermissionLevel,Mm as WikiPageRevision,ml as WikiPageSettings,qs as convertUserFlairProtoToAPI,md as getModerationLog,ny as getSubredditLeaderboard,sy as getVaultByAddress,oy as getVaultByUserId,KH as svg,sO as useAsync,nm as useChannel,em as useForm,am as useInterval,mm as useState};
6
6
  /*! Bundled license information: