From ea6f9727dab03b0811c180bab761d28b7e57ef50 Mon Sep 17 00:00:00 2001 From: Manuel Meitinger Date: Mon, 4 Apr 2022 05:29:05 +0200 Subject: [PATCH] [dns] use snake_case in web flows --- mitmproxy/dns.py | 37 +++++++++++-------- mitmproxy/tools/web/static/app.js | 4 +- test/mitmproxy/test_dns.py | 6 +-- .../js/components/FlowTable/FlowColumns.tsx | 22 +++++------ .../js/components/FlowView/DnsMessages.tsx | 6 +-- web/src/js/flow.ts | 24 ++++++------ 6 files changed, 52 insertions(+), 47 deletions(-) diff --git a/mitmproxy/dns.py b/mitmproxy/dns.py index c5d2698aa..910abf4ed 100644 --- a/mitmproxy/dns.py +++ b/mitmproxy/dns.py @@ -390,6 +390,17 @@ class Question(BypassInitStateObject): else: raise ResolveError(ResponseCode.NOTIMP) + def to_json(self) -> dict: + """ + Converts the question into json for mitmweb. + Sync with web/src/flow.ts. + """ + return { + "name": self.name, + "type": self.type.name, + "class": self.class_.name, + } + @dataclass class ResourceRecord(BypassInitStateObject): @@ -415,8 +426,8 @@ class ResourceRecord(BypassInitStateObject): if self.type is Type.TXT: return self.text except: - return f"(invalid {self.type.name} data)" - return self.data.hex() + return f"0x{self.data.hex()} (invalid {self.type.name} data)" + return f"0x{self.data.hex()}" @property def text(self) -> str: @@ -452,7 +463,7 @@ class ResourceRecord(BypassInitStateObject): def to_json(self) -> dict: """ - Converts the resource record into json for the mitmweb. + Converts the resource record into json for mitmweb. Sync with web/src/flow.ts. """ return { @@ -737,24 +748,20 @@ class Message(BypassInitStateObject): def to_json(self) -> dict: """ - Converts the message into json for the mitmweb. + Converts the message into json for mitmweb. Sync with web/src/flow.ts. """ return { "id": self.id, "query": self.query, - "opCode": self.op_code.name, - "authoritativeAnswer": self.authoritative_answer, + "op_code": self.op_code.name, + "authoritative_answer": self.authoritative_answer, "truncation": self.truncation, - "recursionDesired": self.recursion_desired, - "recursionAvailable": self.recursion_available, - "responseCode": self.response_code.name, - "responseCodeHttpEquiv": self.response_code.http_equiv_status_code, - "questions": [{ - "name": question.name, - "type": question.type.name, - "class": question.class_.name, - } for question in self.questions], + "recursion_desired": self.recursion_desired, + "recursion_available": self.recursion_available, + "response_code": self.response_code.name, + "status_code": self.response_code.http_equiv_status_code, + "questions": [question.to_json() for question in self.questions], "answers": [rr.to_json() for rr in self.answers], "authorities": [rr.to_json() for rr in self.authorities], "additionals": [rr.to_json() for rr in self.additionals], diff --git a/mitmproxy/tools/web/static/app.js b/mitmproxy/tools/web/static/app.js index ceebaee7b..4e8a650de 100644 --- a/mitmproxy/tools/web/static/app.js +++ b/mitmproxy/tools/web/static/app.js @@ -54,8 +54,8 @@ The error may be correlated with this previous error: `),te}return uf(function(){_.current=e,O.current=Y,D.current=U,x.current=void 0}),uf(function(){function te(){try{var Q=n.getState(),F=_.current(Q);if(t(F,D.current))return;D.current=F,O.current=Q}catch(M){x.current=M}m()}return o(te,"checkForUpdates"),p.onStateChange=te,p.trySubscribe(),te(),function(){return p.tryUnsubscribe()}},[n,p]),U}o(XR,"useSelectorWithStoreAndSubscription");function kT(e){e===void 0&&(e=Yn);var t=e===Yn?jg:function(){return(0,Gi.useContext)(e)};return o(function(l,d){d===void 0&&(d=YR);var m=t(),p=m.store,x=m.subscription,_=XR(l,d,p,x);return(0,Gi.useDebugValue)(_),_},"useSelector")}o(kT,"createSelectorHook");var mx=kT();var vx=de(eu());JE(vx.unstable_batchedUpdates);var An=de(Ae());var OT="UI_FLOWVIEW_SET_TAB",LT="SET_CONTENT_VIEW_FOR",QR={tab:"request",contentViewFor:{}};function gx(e=QR,t){switch(t.type){case LT:return Ft(Le({},e),{contentViewFor:Ft(Le({},e.contentViewFor),{[t.messageId]:t.contentView})});case OT:return Ft(Le({},e),{tab:t.tab?t.tab:"request"});default:return e}}o(gx,"reducer");function ff(e){return{type:OT,tab:e}}o(ff,"selectTab");function Vg(e,t){return{type:LT,messageId:e,contentView:t}}o(Vg,"setContentViewFor");var NT=de(Th()),ZR=de(Ae());window._=NT.default;window.React=ZR;var Kg=o(function(e){if(e===0)return"0";for(var t=["b","kb","mb","gb","tb"],n=0;ne);n++);var l;return e%Math.pow(1024,n)==0?l=0:l=1,(e/Math.pow(1024,n)).toFixed(l)+t[n]},"formatSize"),Gg=o(function(e){for(var t=e,n=["ms","s","min","h"],l=[1e3,60,60],d=0;Math.abs(t)>=l[d]&&dkt(e,Le({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)},n));kt.post=(e,t,n={})=>kt(e,Le({method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)},n));function cf(e,...t){return Ma(this,null,function*(){return yield(yield kt(`/commands/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({arguments:t})})).json()})}o(cf,"runCommand");var Oh={};kC(Oh,{ADD:()=>_x,RECEIVE:()=>Tx,REMOVE:()=>Ex,SET_FILTER:()=>Sx,SET_SORT:()=>Cx,UPDATE:()=>bx,add:()=>tF,defaultState:()=>Yg,receive:()=>iF,reduce:()=>up,remove:()=>nF,setFilter:()=>kx,setSort:()=>MT,update:()=>rF});var xx=de(PT()),Sx="LIST_SET_FILTER",Cx="LIST_SET_SORT",_x="LIST_ADD",bx="LIST_UPDATE",Ex="LIST_REMOVE",Tx="LIST_RECEIVE",Yg={byId:{},list:[],listIndex:{},view:[],viewIndex:{}};function up(e=Yg,t){let{byId:n,list:l,listIndex:d,view:m,viewIndex:p}=e;switch(t.type){case Sx:m=(0,xx.default)(l.filter(t.filter),t.sort),p={},m.forEach((O,D)=>{p[O.id]=D});break;case Cx:m=(0,xx.default)([...m],t.sort),p={},m.forEach((O,D)=>{p[O.id]=D});break;case _x:if(t.item.id in n)break;n=Ft(Le({},n),{[t.item.id]:t.item}),d=Ft(Le({},d),{[t.item.id]:l.length}),l=[...l,t.item],t.filter(t.item)&&({view:m,viewIndex:p}=AT(e,t.item,t.sort));break;case bx:n=Ft(Le({},n),{[t.item.id]:t.item}),l=[...l],l[d[t.item.id]]=t.item;let x=t.item.id in p,_=t.filter(t.item);_&&!x?{view:m,viewIndex:p}=AT(e,t.item,t.sort):!_&&x?{data:m,dataIndex:p}=Ox(m,p,t.item.id):_&&x&&({view:m,viewIndex:p}=oF(e,t.item,t.sort));break;case Ex:if(!(t.id in n))break;n=Le({},n),delete n[t.id],{data:l,dataIndex:d}=Ox(l,d,t.id),t.id in p&&({data:m,dataIndex:p}=Ox(m,p,t.id));break;case Tx:l=t.list,d={},n={},l.forEach((O,D)=>{n[O.id]=O,d[O.id]=D}),m=l.filter(t.filter).sort(t.sort),p={},m.forEach((O,D)=>{p[O.id]=D});break}return{byId:n,list:l,listIndex:d,view:m,viewIndex:p}}o(up,"reduce");function kx(e=Xg,t=kh){return{type:Sx,filter:e,sort:t}}o(kx,"setFilter");function MT(e=kh){return{type:Cx,sort:e}}o(MT,"setSort");function tF(e,t=Xg,n=kh){return{type:_x,item:e,filter:t,sort:n}}o(tF,"add");function rF(e,t=Xg,n=kh){return{type:bx,item:e,filter:t,sort:n}}o(rF,"update");function nF(e){return{type:Ex,id:e}}o(nF,"remove");function iF(e,t=Xg,n=kh){return{type:Tx,list:e,filter:t,sort:n}}o(iF,"receive");function AT(e,t,n){let l=sF(e.view,t,n),d=[...e.view],m=Le({},e.viewIndex);d.splice(l,0,t);for(let p=d.length-1;p>=l;p--)m[d[p].id]=p;return{view:d,viewIndex:m}}o(AT,"sortedInsert");function Ox(e,t,n){let l=t[n],d=[...e],m=Le({},t);delete m[n],d.splice(l,1);for(let p=d.length-1;p>=l;p--)m[d[p].id]=p;return{data:d,dataIndex:m}}o(Ox,"removeData");function oF(e,t,n){let l=[...e.view],d=Le({},e.viewIndex),m=d[t.id];for(l[m]=t;m+10;)l[m]=l[m+1],l[m+1]=t,d[t.id]=m+1,d[l[m].id]=m,++m;for(;m>0&&n(l[m],l[m-1])<0;)l[m]=l[m-1],l[m-1]=t,d[t.id]=m-1,d[l[m].id]=m,--m;return{view:l,viewIndex:d}}o(oF,"sortedUpdate");function sF(e,t,n){let l=0,d=e.length;for(;l>>1;n(t,e[m])>=0?l=m+1:d=m}return l}o(sF,"sortedIndex");function Xg(){return!0}o(Xg,"defaultFilter");function kh(e,t){return 0}o(kh,"defaultSort");var DT={http:80,https:443},Br=class{static getContentType(t){var n=Br.get_first_header(t,/^Content-Type$/i);if(n)return n.split(";")[0].trim()}static get_first_header(t,n){let l=t;l._headerLookups||Object.defineProperty(l,"_headerLookups",{value:{},configurable:!1,enumerable:!1,writable:!1});let d=n.toString();if(!(d in l._headerLookups)){let m;for(let p=0;p{var t,n;switch(e.type){case"http":let l=e.request.contentLength||0;return e.response&&(l+=e.response.contentLength||0),e.websocket&&(l+=e.websocket.messages_meta.contentLength||0),l;case"tcp":return e.messages_meta.contentLength||0;case"dns":return(n=(t=e.response)==null?void 0:t.size)!=null?n:0}},"getTotalSize"),Qg=o(e=>e.type==="http"&&!e.websocket,"canReplay");var pf=function(){"use strict";function e(l,d){function m(){this.constructor=l}o(m,"ctor"),m.prototype=d.prototype,l.prototype=new m}o(e,"peg$subclass");function t(l,d,m,p){this.message=l,this.expected=d,this.found=m,this.location=p,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,t)}o(t,"peg$SyntaxError"),e(t,Error);function n(l){var d=arguments.length>1?arguments[1]:{},m=this,p={},x={start:ms},_=ms,O={type:"other",description:"filter expression"},D=o(function(y){return y},"peg$c1"),Y={type:"other",description:"whitespace"},U=/^[ \t\n\r]/,X={type:"class",value:"[ \\t\\n\\r]",description:"[ \\t\\n\\r]"},te={type:"other",description:"control character"},Q=/^[|&!()~"]/,F={type:"class",value:'[|&!()~"]',description:'[|&!()~"]'},M={type:"other",description:"optional whitespace"},R="|",K={type:"literal",value:"|",description:'"|"'},V=o(function(y,T){return xu(y,T)},"peg$c11"),fe="&",ie={type:"literal",value:"&",description:'"&"'},he=o(function(y,T){return no(y,T)},"peg$c14"),ye="!",xe={type:"literal",value:"!",description:'"!"'},qe=o(function(y){return fl(y)},"peg$c17"),Je="(",be={type:"literal",value:"(",description:'"("'},xt=")",Be={type:"literal",value:")",description:'")"'},Ve=o(function(y){return vs(y)},"peg$c22"),Ke="~all",Ge={type:"literal",value:"~all",description:'"~all"'},Xt=o(function(){return gt},"peg$c25"),ft="~a",Ar={type:"literal",value:"~a",description:'"~a"'},Vt=o(function(){return Zl},"peg$c28"),bt="~b",St={type:"literal",value:"~b",description:'"~b"'},at=o(function(y){return $p(y)},"peg$c31"),_r="~bq",Bt={type:"literal",value:"~bq",description:'"~bq"'},Ut=o(function(y){return zo(y)},"peg$c34"),ne="~bs",et={type:"literal",value:"~bs",description:'"~bs"'},br=o(function(y){return hr(y)},"peg$c37"),zt="~c",jt={type:"literal",value:"~c",description:'"~c"'},Se=o(function(y){return zp(y)},"peg$c40"),Er="~comment",on={type:"literal",value:"~comment",description:'"~comment"'},Dn=o(function(y){return zf(y)},"peg$c43"),ei="~d",sn={type:"literal",value:"~d",description:'"~d"'},Kt=o(function(y){return gs(y)},"peg$c46"),cr="~dst",ct={type:"literal",value:"~dst",description:'"~dst"'},Ro=o(function(y){return Jl(y)},"peg$c49"),gr="~e",Ri={type:"literal",value:"~e",description:'"~e"'},ln=o(function(){return io},"peg$c52"),Rn="~h",vi={type:"literal",value:"~h",description:'"~h"'},gi=o(function(y){return jp(y)},"peg$c55"),Fn="~hq",bn={type:"literal",value:"~hq",description:'"~hq"'},Qs=o(function(y){return ea(y)},"peg$c58"),W="~hs",J={type:"literal",value:"~hs",description:'"~hs"'},me=o(function(y){return Su(y)},"peg$c61"),Ee="~http",Qt={type:"literal",value:"~http",description:'"~http"'},$l=o(function(){return ta},"peg$c64"),Dt="~marked",Dr={type:"literal",value:"~marked",description:'"~marked"'},Zt=o(function(){return ra},"peg$c67"),ti="~marker",us={type:"literal",value:"~marker",description:'"~marker"'},Ji=o(function(y){return Cu(y)},"peg$c70"),yi="~m",Zs={type:"literal",value:"~m",description:'"~m"'},fs=o(function(y){return jf(y)},"peg$c73"),an="~q",Ap={type:"literal",value:"~q",description:'"~q"'},Js=o(function(){return na},"peg$c76"),Tf="~replayq",el={type:"literal",value:"~replayq",description:'"~replayq"'},Dp=o(function(){return oo},"peg$c79"),kf="~replays",cu={type:"literal",value:"~replays",description:'"~replays"'},Rp=o(function(){return Si},"peg$c82"),zl="~replay",cs={type:"literal",value:"~replay",description:'"~replay"'},Fp=o(function(){return ys},"peg$c85"),Of="~src",tl={type:"literal",value:"~src",description:'"~src"'},pu=o(function(y){return qr(y)},"peg$c88"),Fo="~s",Ip={type:"literal",value:"~s",description:'"~s"'},Io=o(function(){return cl},"peg$c91"),jl="~tcp",Lf={type:"literal",value:"~tcp",description:'"~tcp"'},$t=o(function(){return Vr},"peg$c94"),Pe="~tq",wi={type:"literal",value:"~tq",description:'"~tq"'},du=o(function(y){return so(y)},"peg$c97"),ri="~ts",vt={type:"literal",value:"~ts",description:'"~ts"'},eo=o(function(y){return ia(y)},"peg$c100"),Ho="~t",ql={type:"literal",value:"~t",description:'"~t"'},ue=o(function(y){return qp(y)},"peg$c103"),$e="~u",hu={type:"literal",value:"~u",description:'"~u"'},Vl=o(function(y){return qf(y)},"peg$c106"),ps="~websocket",rl={type:"literal",value:"~websocket",description:'"~websocket"'},mu=o(function(){return Vf},"peg$c109"),Ue={type:"other",description:"integer"},Nf=/^['"]/,Kl={type:"class",value:`['"]`,description:`['"]`},to=/^[0-9]/,In={type:"class",value:"[0-9]",description:"[0-9]"},Pf=o(function(y){return parseInt(y.join(""),10)},"peg$c115"),vu={type:"other",description:"string"},Wo='"',ds={type:"literal",value:'"',description:'"\\""'},Gl=o(function(y){return y.join("")},"peg$c119"),nl="'",il={type:"literal",value:"'",description:`"'"`},Yl=/^["\\]/,Bo={type:"class",value:'["\\\\]',description:'["\\\\]'},ol={type:"any",description:"any character"},hs=o(function(y){return y},"peg$c125"),Mf="\\",Xl={type:"literal",value:"\\",description:'"\\\\"'},xi=/^['\\]/,Af={type:"class",value:"['\\\\]",description:"['\\\\]"},Df=/^['"\\]/,Ql={type:"class",value:`['"\\\\]`,description:`['"\\\\]`},sl="n",Hp={type:"literal",value:"n",description:'"n"'},Rf=o(function(){return` `},"peg$c134"),Wp="r",Bp={type:"literal",value:"r",description:'"r"'},gu=o(function(){return"\r"},"peg$c137"),Ff="t",yu={type:"literal",value:"t",description:'"t"'},If=o(function(){return" "},"peg$c140"),N=0,Re=0,Uo=[{line:1,column:1,seenCR:!1}],Hn=0,Et=[],ae=0,$o;if("startRule"in d){if(!(d.startRule in x))throw new Error(`Can't start parsing from rule "`+d.startRule+'".');_=x[d.startRule]}function sm(){return l.substring(Re,N)}o(sm,"text");function Up(){return ro(Re,N)}o(Up,"location");function Fi(y){throw Ot(null,[{type:"other",description:y}],l.substring(Re,N),ro(Re,N))}o(Fi,"expected");function lm(y){throw Ot(y,null,l.substring(Re,N),ro(Re,N))}o(lm,"error");function Hf(y){var T=Uo[y],H,B;if(T)return T;for(H=y-1;!Uo[H];)H--;for(T=Uo[H],T={line:T.line,column:T.column,seenCR:T.seenCR};HHn&&(Hn=N,Et=[]),Et.push(y))}o(Ne,"peg$fail");function Ot(y,T,H,B){function ni(Wn){var Kr=1;for(Wn.sort(function(jo,lo){return jo.descriptionlo.description?1:0});Kr1?lo.slice(0,-1).join(", ")+" or "+lo[Wn.length-1]:lo[0],ws=Kr?'"'+jo(Kr)+'"':"end of input","Expected "+_u+" but "+ws+" found."}return o(Rr,"buildMessage"),T!==null&&ni(T),new t(y!==null?y:Rr(T,H),T,H,B)}o(Ot,"peg$buildException");function ms(){var y,T,H,B;return ae++,y=N,T=En(),T!==p?(H=pr(),H!==p?(B=En(),B!==p?(Re=y,T=D(H),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),ae--,y===p&&(T=p,ae===0&&Ne(O)),y}o(ms,"peg$parsestart");function We(){var y,T;return ae++,U.test(l.charAt(N))?(y=l.charAt(N),N++):(y=p,ae===0&&Ne(X)),ae--,y===p&&(T=p,ae===0&&Ne(Y)),y}o(We,"peg$parsews");function ll(){var y,T;return ae++,Q.test(l.charAt(N))?(y=l.charAt(N),N++):(y=p,ae===0&&Ne(F)),ae--,y===p&&(T=p,ae===0&&Ne(te)),y}o(ll,"peg$parsecc");function En(){var y,T;for(ae++,y=[],T=We();T!==p;)y.push(T),T=We();return ae--,y===p&&(T=p,ae===0&&Ne(M)),y}o(En,"peg$parse__");function pr(){var y,T,H,B,ni,Rr;return y=N,T=al(),T!==p?(H=En(),H!==p?(l.charCodeAt(N)===124?(B=R,N++):(B=p,ae===0&&Ne(K)),B!==p?(ni=En(),ni!==p?(Rr=pr(),Rr!==p?(Re=y,T=V(T,Rr),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p&&(y=al()),y}o(pr,"peg$parseOrExpr");function al(){var y,T,H,B,ni,Rr;if(y=N,T=ul(),T!==p?(H=En(),H!==p?(l.charCodeAt(N)===38?(B=fe,N++):(B=p,ae===0&&Ne(ie)),B!==p?(ni=En(),ni!==p?(Rr=al(),Rr!==p?(Re=y,T=he(T,Rr),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p){if(y=N,T=ul(),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=al(),B!==p?(Re=y,T=he(T,B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;y===p&&(y=ul())}return y}o(al,"peg$parseAndExpr");function ul(){var y,T,H,B;return y=N,l.charCodeAt(N)===33?(T=ye,N++):(T=p,ae===0&&Ne(xe)),T!==p?(H=En(),H!==p?(B=ul(),B!==p?(Re=y,T=qe(B),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p&&(y=Wf()),y}o(ul,"peg$parseNotExpr");function Wf(){var y,T,H,B,ni,Rr;return y=N,l.charCodeAt(N)===40?(T=Je,N++):(T=p,ae===0&&Ne(be)),T!==p?(H=En(),H!==p?(B=pr(),B!==p?(ni=En(),ni!==p?(l.charCodeAt(N)===41?(Rr=xt,N++):(Rr=p,ae===0&&Ne(Be)),Rr!==p?(Re=y,T=Ve(B),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p&&(y=Bf()),y}o(Wf,"peg$parseBindingExpr");function Bf(){var y,T,H,B;if(y=N,l.substr(N,4)===Ke?(T=Ke,N+=4):(T=p,ae===0&&Ne(Ge)),T!==p&&(Re=y,T=Xt()),y=T,y===p&&(y=N,l.substr(N,2)===ft?(T=ft,N+=2):(T=p,ae===0&&Ne(Ar)),T!==p&&(Re=y,T=Vt()),y=T,y===p)){if(y=N,l.substr(N,2)===bt?(T=bt,N+=2):(T=p,ae===0&&Ne(St)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=at(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===_r?(T=_r,N+=3):(T=p,ae===0&&Ne(Bt)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Ut(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===ne?(T=ne,N+=3):(T=p,ae===0&&Ne(et)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=br(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===zt?(T=zt,N+=2):(T=p,ae===0&&Ne(jt)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=wu(),B!==p?(Re=y,T=Se(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,8)===Er?(T=Er,N+=8):(T=p,ae===0&&Ne(on)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Dn(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===ei?(T=ei,N+=2):(T=p,ae===0&&Ne(sn)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Kt(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,4)===cr?(T=cr,N+=4):(T=p,ae===0&&Ne(ct)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Ro(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,2)===gr?(T=gr,N+=2):(T=p,ae===0&&Ne(Ri)),T!==p&&(Re=y,T=ln()),y=T,y===p)){if(y=N,l.substr(N,2)===Rn?(T=Rn,N+=2):(T=p,ae===0&&Ne(vi)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=gi(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===Fn?(T=Fn,N+=3):(T=p,ae===0&&Ne(bn)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Qs(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===W?(T=W,N+=3):(T=p,ae===0&&Ne(J)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=me(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,5)===Ee?(T=Ee,N+=5):(T=p,ae===0&&Ne(Qt)),T!==p&&(Re=y,T=$l()),y=T,y===p&&(y=N,l.substr(N,7)===Dt?(T=Dt,N+=7):(T=p,ae===0&&Ne(Dr)),T!==p&&(Re=y,T=Zt()),y=T,y===p))){if(y=N,l.substr(N,7)===ti?(T=ti,N+=7):(T=p,ae===0&&Ne(us)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Ji(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===yi?(T=yi,N+=2):(T=p,ae===0&&Ne(Zs)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=fs(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,2)===an?(T=an,N+=2):(T=p,ae===0&&Ne(Ap)),T!==p&&(Re=y,T=Js()),y=T,y===p&&(y=N,l.substr(N,8)===Tf?(T=Tf,N+=8):(T=p,ae===0&&Ne(el)),T!==p&&(Re=y,T=Dp()),y=T,y===p&&(y=N,l.substr(N,8)===kf?(T=kf,N+=8):(T=p,ae===0&&Ne(cu)),T!==p&&(Re=y,T=Rp()),y=T,y===p&&(y=N,l.substr(N,7)===zl?(T=zl,N+=7):(T=p,ae===0&&Ne(cs)),T!==p&&(Re=y,T=Fp()),y=T,y===p))))){if(y=N,l.substr(N,4)===Of?(T=Of,N+=4):(T=p,ae===0&&Ne(tl)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=pu(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,2)===Fo?(T=Fo,N+=2):(T=p,ae===0&&Ne(Ip)),T!==p&&(Re=y,T=Io()),y=T,y===p&&(y=N,l.substr(N,4)===jl?(T=jl,N+=4):(T=p,ae===0&&Ne(Lf)),T!==p&&(Re=y,T=$t()),y=T,y===p))){if(y=N,l.substr(N,3)===Pe?(T=Pe,N+=3):(T=p,ae===0&&Ne(wi)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=du(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===ri?(T=ri,N+=3):(T=p,ae===0&&Ne(vt)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=eo(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===Ho?(T=Ho,N+=2):(T=p,ae===0&&Ne(ql)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=ue(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===$e?(T=$e,N+=2):(T=p,ae===0&&Ne(hu)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Vl(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;y===p&&(y=N,l.substr(N,10)===ps?(T=ps,N+=10):(T=p,ae===0&&Ne(rl)),T!==p&&(Re=y,T=mu()),y=T,y===p&&(y=N,T=dr(),T!==p&&(Re=y,T=Vl(T)),y=T))}}}}}}}}}}}}}}}}}return y}o(Bf,"peg$parseExpr");function wu(){var y,T,H,B;if(ae++,y=N,Nf.test(l.charAt(N))?(T=l.charAt(N),N++):(T=p,ae===0&&Ne(Kl)),T===p&&(T=null),T!==p){if(H=[],to.test(l.charAt(N))?(B=l.charAt(N),N++):(B=p,ae===0&&Ne(In)),B!==p)for(;B!==p;)H.push(B),to.test(l.charAt(N))?(B=l.charAt(N),N++):(B=p,ae===0&&Ne(In));else H=p;H!==p?(Nf.test(l.charAt(N))?(B=l.charAt(N),N++):(B=p,ae===0&&Ne(Kl)),B===p&&(B=null),B!==p?(Re=y,T=Pf(H),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;return ae--,y===p&&(T=p,ae===0&&Ne(Ue)),y}o(wu,"peg$parseIntegerLiteral");function dr(){var y,T,H,B;if(ae++,y=N,l.charCodeAt(N)===34?(T=Wo,N++):(T=p,ae===0&&Ne(ds)),T!==p){for(H=[],B=un();B!==p;)H.push(B),B=un();H!==p?(l.charCodeAt(N)===34?(B=Wo,N++):(B=p,ae===0&&Ne(ds)),B!==p?(Re=y,T=Gl(H),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.charCodeAt(N)===39?(T=nl,N++):(T=p,ae===0&&Ne(il)),T!==p){for(H=[],B=Uf();B!==p;)H.push(B),B=Uf();H!==p?(l.charCodeAt(N)===39?(B=nl,N++):(B=p,ae===0&&Ne(il)),B!==p?(Re=y,T=Gl(H),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p)if(y=N,T=N,ae++,H=ll(),ae--,H===p?T=void 0:(N=T,T=p),T!==p){if(H=[],B=Tn(),B!==p)for(;B!==p;)H.push(B),B=Tn();else H=p;H!==p?(Re=y,T=Gl(H),y=T):(N=y,y=p)}else N=y,y=p}return ae--,y===p&&(T=p,ae===0&&Ne(vu)),y}o(dr,"peg$parseStringLiteral");function un(){var y,T,H;return y=N,T=N,ae++,Yl.test(l.charAt(N))?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(Bo)),ae--,H===p?T=void 0:(N=T,T=p),T!==p?(l.length>N?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(ol)),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p),y===p&&(y=N,l.charCodeAt(N)===92?(T=Mf,N++):(T=p,ae===0&&Ne(Xl)),T!==p?(H=$f(),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p)),y}o(un,"peg$parseDoubleStringChar");function Uf(){var y,T,H;return y=N,T=N,ae++,xi.test(l.charAt(N))?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(Af)),ae--,H===p?T=void 0:(N=T,T=p),T!==p?(l.length>N?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(ol)),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p),y===p&&(y=N,l.charCodeAt(N)===92?(T=Mf,N++):(T=p,ae===0&&Ne(Xl)),T!==p?(H=$f(),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p)),y}o(Uf,"peg$parseSingleStringChar");function Tn(){var y,T,H;return y=N,T=N,ae++,H=We(),ae--,H===p?T=void 0:(N=T,T=p),T!==p?(l.length>N?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(ol)),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p),y}o(Tn,"peg$parseUnquotedStringChar");function $f(){var y,T;return Df.test(l.charAt(N))?(y=l.charAt(N),N++):(y=p,ae===0&&Ne(Ql)),y===p&&(y=N,l.charCodeAt(N)===110?(T=sl,N++):(T=p,ae===0&&Ne(Hp)),T!==p&&(Re=y,T=Rf()),y=T,y===p&&(y=N,l.charCodeAt(N)===114?(T=Wp,N++):(T=p,ae===0&&Ne(Bp)),T!==p&&(Re=y,T=gu()),y=T,y===p&&(y=N,l.charCodeAt(N)===116?(T=Ff,N++):(T=p,ae===0&&Ne(yu)),T!==p&&(Re=y,T=If()),y=T))),y}o($f,"peg$parseEscapeSequence");function xu(y,T){function H(){return y.apply(this,arguments)||T.apply(this,arguments)}return o(H,"orFilter"),H.desc=y.desc+" or "+T.desc,H}o(xu,"or");function no(y,T){function H(){return y.apply(this,arguments)&&T.apply(this,arguments)}return o(H,"andFilter"),H.desc=y.desc+" and "+T.desc,H}o(no,"and");function fl(y){function T(){return!y.apply(this,arguments)}return o(T,"notFilter"),T.desc="not "+y.desc,T}o(fl,"not");function vs(y){function T(){return y.apply(this,arguments)}return o(T,"bindingFilter"),T.desc="("+y.desc+")",T}o(vs,"binding");function gt(y){return!0}o(gt,"allFilter"),gt.desc="all flows";var Ii=[new RegExp("text/javascript"),new RegExp("application/x-javascript"),new RegExp("application/javascript"),new RegExp("text/css"),new RegExp("image/.*"),new RegExp("font/.*"),new RegExp("application/font.*")];function Zl(y){if(y.response){for(var T=Ks.getContentType(y.response),H=Ii.length;H--;)if(Ii[H].test(T))return!0}return!1}o(Zl,"assetFilter"),Zl.desc="is asset";function $p(y){y=new RegExp(y,"i");function T(H){return!0}return o(T,"bodyFilter"),T.desc="body filters are not implemented yet, see https://github.com/mitmproxy/mitmweb/issues/10",T}o($p,"body");function zo(y){y=new RegExp(y,"i");function T(H){return!0}return o(T,"requestBodyFilter"),T.desc="body filters are not implemented yet, see https://github.com/mitmproxy/mitmweb/issues/10",T}o(zo,"requestBody");function hr(y){y=new RegExp(y,"i");function T(H){return!0}return o(T,"responseBodyFilter"),T.desc="body filters are not implemented yet, see https://github.com/mitmproxy/mitmweb/issues/10",T}o(hr,"responseBody");function zp(y){function T(H){return H.response&&H.response.status_code===y}return o(T,"responseCodeFilter"),T.desc="resp. code is "+y,T}o(zp,"responseCode");function zf(y){y=new RegExp(y,"i");function T(H){return y.test(H.comment)}return o(T,"commentFilter"),T.desc="comment matches "+y,T}o(zf,"comment");function gs(y){y=new RegExp(y,"i");function T(H){return H.request&&(y.test(H.request.host)||y.test(H.request.pretty_host))}return o(T,"domainFilter"),T.desc="domain matches "+y,T}o(gs,"domain");function Jl(y){y=new RegExp(y,"i");function T(H){return!!H.server_conn.address&&y.test(H.server_conn.address[0]+":"+H.server_conn.address[1])}return o(T,"destinationFilter"),T.desc="destination address matches "+y,T}o(Jl,"destination");function io(y){return!!y.error}o(io,"errorFilter"),io.desc="has error";function jp(y){y=new RegExp(y,"i");function T(H){return H.request&&Oo.match_header(H.request,y)||H.response&&Ks.match_header(H.response,y)}return o(T,"headerFilter"),T.desc="header matches "+y,T}o(jp,"header");function ea(y){y=new RegExp(y,"i");function T(H){return H.request&&Oo.match_header(H.request,y)}return o(T,"requestHeaderFilter"),T.desc="req. header matches "+y,T}o(ea,"requestHeader");function Su(y){y=new RegExp(y,"i");function T(H){return H.response&&Ks.match_header(H.response,y)}return o(T,"responseHeaderFilter"),T.desc="resp. header matches "+y,T}o(Su,"responseHeader");function ta(y){return y.type==="http"}o(ta,"httpFilter"),ta.desc="is an HTTP Flow";function ra(y){return y.marked}o(ra,"markedFilter"),ra.desc="is marked";function Cu(y){y=new RegExp(y,"i");function T(H){return y.test(H.marked)}return o(T,"markerFilter"),T.desc="marker matches "+y,T}o(Cu,"marker");function jf(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(H.request.method)}return o(T,"methodFilter"),T.desc="method matches "+y,T}o(jf,"method");function na(y){return y.request&&!y.response}o(na,"noResponseFilter"),na.desc="has no response";function oo(y){return y.is_replay==="request"}o(oo,"clientReplayFilter"),oo.desc="request has been replayed";function Si(y){return y.is_replay==="response"}o(Si,"serverReplayFilter"),Si.desc="response has been replayed";function ys(y){return!!y.is_replay}o(ys,"replayFilter"),ys.desc="flow has been replayed";function qr(y){y=new RegExp(y,"i");function T(H){return!!H.client_conn.peername&&y.test(H.client_conn.peername[0]+":"+H.client_conn.peername[1])}return o(T,"sourceFilter"),T.desc="source address matches "+y,T}o(qr,"source");function cl(y){return!!y.response}o(cl,"responseFilter"),cl.desc="has response";function Vr(y){return y.type==="tcp"}o(Vr,"tcpFilter"),Vr.desc="is a TCP Flow";function so(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(Oo.getContentType(H.request))}return o(T,"requestContentTypeFilter"),T.desc="req. content type matches "+y,T}o(so,"requestContentType");function ia(y){y=new RegExp(y,"i");function T(H){return H.response&&y.test(Ks.getContentType(H.response))}return o(T,"responseContentTypeFilter"),T.desc="resp. content type matches "+y,T}o(ia,"responseContentType");function qp(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(Oo.getContentType(H.request))||H.response&&y.test(Ks.getContentType(H.response))}return o(T,"contentTypeFilter"),T.desc="content type matches "+y,T}o(qp,"contentType");function qf(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(Oo.pretty_url(H.request))}return o(T,"urlFilter"),T.desc="url matches "+y,T}o(qf,"url");function Vf(y){return!!y.websocket}if(o(Vf,"websocketFilter"),Vf.desc="is a Websocket Flow",$o=_(),$o!==p&&N===l.length)return $o;throw $o!==p&&NAx,icon:()=>ty,method:()=>Nh,path:()=>ry,quickactions:()=>fp,size:()=>ny,status:()=>Ph,time:()=>iy,timestamp:()=>oy,tls:()=>ey});var ur=de(Ae());var Jg=de(Xn());var ey=o(({flow:e})=>ur.default.createElement("td",{className:(0,Jg.default)("col-tls",e.client_conn.tls_established?"col-tls-https":"col-tls-http")}),"tls");ey.headerName="";ey.sortKey=e=>e.type==="http"&&e.request.scheme;var ty=o(({flow:e})=>ur.default.createElement("td",{className:"col-icon"},ur.default.createElement("div",{className:(0,Jg.default)("resource-icon",RT(e))})),"icon");ty.headerName="";ty.sortKey=e=>RT(e);var RT=o(e=>{if(e.type==="tcp"||e.type==="dns")return`resource-icon-${e.type}`;if(e.websocket)return"resource-icon-websocket";if(!e.response)return"resource-icon-plain";var t=Ks.getContentType(e.response)||"";return e.response.status_code===304?"resource-icon-not-modified":300<=e.response.status_code&&e.response.status_code<400?"resource-icon-redirect":t.indexOf("image")>=0?"resource-icon-image":t.indexOf("javascript")>=0?"resource-icon-js":t.indexOf("css")>=0?"resource-icon-css":t.indexOf("html")>=0?"resource-icon-document":"resource-icon-plain"},"getIcon"),FT=o(e=>{var t,n,l,d;switch(e.type){case"http":return Oo.pretty_url(e.request);case"tcp":return`${e.client_conn.peername.join(":")} \u2194 ${(n=(t=e.server_conn)==null?void 0:t.address)==null?void 0:n.join(":")}`;case"dns":return`${e.request.questions.map(m=>`${m.name} ${m.type}`).join(", ")} = ${((d=(l=e.response)==null?void 0:l.answers.map(m=>m.data).join(", "))!=null?d:"...")||"?"}`}},"mainPath"),ry=o(({flow:e})=>{let t;return e.error&&(e.error.msg==="Connection killed."?t=ur.default.createElement("i",{className:"fa fa-fw fa-times pull-right"}):t=ur.default.createElement("i",{className:"fa fa-fw fa-exclamation pull-right"})),ur.default.createElement("td",{className:"col-path"},e.is_replay==="request"&&ur.default.createElement("i",{className:"fa fa-fw fa-repeat pull-right"}),e.intercepted&&ur.default.createElement("i",{className:"fa fa-fw fa-pause pull-right"}),t,ur.default.createElement("span",{className:"marker pull-right"},e.marked),FT(e))},"path");ry.headerName="Path";ry.sortKey=e=>FT(e);var Nh=o(({flow:e})=>ur.default.createElement("td",{className:"col-method"},Nh.sortKey(e)),"method");Nh.headerName="Method";Nh.sortKey=e=>{switch(e.type){case"http":return e.websocket?e.client_conn.tls_established?"WSS":"WS":e.request.method;case"dns":return e.request.opCode;default:return e.type.toUpperCase()}};var Ph=o(({flow:e})=>{var l,d;let t="darkred",n=e.type==="http"?(l=e.response)==null?void 0:l.status_code:e.type==="dns"?(d=e.response)==null?void 0:d.responseCodeHttpEquiv:void 0;return n==null?ur.default.createElement("td",{className:"col-status"}):(100<=n&&n<200?t="green":200<=n&&n<300?t="darkgreen":300<=n&&n<400?t="lightblue":(400<=n&&n<500||500<=n&&n<600)&&(t="red"),ur.default.createElement("td",{className:"col-status",style:{color:t}},Ph.sortKey(e)))},"status");Ph.headerName="Status";Ph.sortKey=e=>{var t,n;switch(e.type){case"http":return(t=e.response)==null?void 0:t.status_code;case"dns":return(n=e.response)==null?void 0:n.responseCode;default:return}};var ny=o(({flow:e})=>ur.default.createElement("td",{className:"col-size"},Kg(Mx(e))),"size");ny.headerName="Size";ny.sortKey=e=>Mx(e);var iy=o(({flow:e})=>{let t=Lh(e),n=Px(e);return ur.default.createElement("td",{className:"col-time"},t&&n?Gg(1e3*(n-t)):"...")},"time");iy.headerName="Time";iy.sortKey=e=>{let t=Lh(e),n=Px(e);return t&&n&&n-t};var oy=o(({flow:e})=>{let t=Lh(e);return ur.default.createElement("td",{className:"col-timestamp"},t?Yi(t):"...")},"timestamp");oy.headerName="Start time";oy.sortKey=e=>Lh(e);var fp=o(({flow:e})=>{let t=Vs(),[n,l]=(0,ur.useState)(!1),d=null;return e.intercepted?d=ur.default.createElement("a",{href:"#",className:"quickaction",onClick:()=>t(cp(e))},ur.default.createElement("i",{className:"fa fa-fw fa-play text-success"})):Qg(e)&&(d=ur.default.createElement("a",{href:"#",className:"quickaction",onClick:()=>t(pp(e))},ur.default.createElement("i",{className:"fa fa-fw fa-repeat text-primary"}))),ur.default.createElement("td",{className:(0,Jg.default)("col-quickactions",{hover:n}),onClick:()=>0},ur.default.createElement("div",null,d))},"quickactions");fp.headerName="";fp.sortKey=e=>0;var Ax={icon:ty,method:Nh,path:ry,quickactions:fp,size:ny,status:Ph,time:iy,timestamp:oy,tls:ey};var uF="FLOWS_ADD",fF="FLOWS_UPDATE",IT="FLOWS_REMOVE",cF="FLOWS_RECEIVE",HT="FLOWS_SELECT",WT="FLOWS_SET_FILTER",BT="FLOWS_SET_SORT",UT="FLOWS_SET_HIGHLIGHT",pF="FLOWS_REQUEST_ACTION",dF=Le({highlight:void 0,filter:void 0,sort:{column:void 0,desc:!1},selected:[]},Yg);function Dx(e=dF,t){switch(t.type){case uF:case fF:case IT:case cF:let n=Oh[t.cmd](t.data,$T(e.filter),Rx(e.sort)),l=e.selected;if(t.type===IT&&e.selected.includes(t.data)){if(e.selected.length>1)l=l.filter(d=>d!==t.data);else if(l=[],t.data in e.viewIndex&&e.view.length>1){let d=e.viewIndex[t.data],m;d===e.view.length-1?m=e.view[d-1]:m=e.view[d+1],l.push(m.id)}}return Le(Ft(Le({},e),{selected:l}),up(e,n));case WT:return Le(Ft(Le({},e),{filter:t.filter}),up(e,kx($T(t.filter),Rx(e.sort))));case UT:return Ft(Le({},e),{highlight:t.highlight});case BT:return Le(Ft(Le({},e),{sort:t.sort}),up(e,MT(Rx(t.sort))));case HT:return Ft(Le({},e),{selected:t.flowIds});default:return e}}o(Dx,"reducer");function $T(e){if(!!e)return pf.parse(e)}o($T,"makeFilter");function Rx({column:e,desc:t}){if(!e)return(l,d)=>0;let n=Ax[e].sortKey;return(l,d)=>{let m=n(l),p=n(d);return m>p?t?-1:1:mkt(`/flows/${e.id}/resume`,{method:"POST"})}o(cp,"resume");function ay(){return e=>kt("/flows/resume",{method:"POST"})}o(ay,"resumeAll");function uy(e){return t=>kt(`/flows/${e.id}/kill`,{method:"POST"})}o(uy,"kill");function jT(){return e=>kt("/flows/kill",{method:"POST"})}o(jT,"killAll");function fy(e){return t=>kt(`/flows/${e.id}`,{method:"DELETE"})}o(fy,"remove");function cy(e){return t=>kt(`/flows/${e.id}/duplicate`,{method:"POST"})}o(cy,"duplicate");function pp(e){return t=>kt(`/flows/${e.id}/replay`,{method:"POST"})}o(pp,"replay");function py(e){return t=>kt(`/flows/${e.id}/revert`,{method:"POST"})}o(py,"revert");function Di(e,t){return n=>kt.put(`/flows/${e.id}`,t)}o(Di,"update");function qT(e,t,n){let l=new FormData;return t=new window.Blob([t],{type:"plain/text"}),l.append("file",t),d=>kt(`/flows/${e.id}/${n}/content.data`,{method:"POST",body:l})}o(qT,"uploadContent");function dy(){return e=>kt("/clear",{method:"POST"})}o(dy,"clear");function VT(){return window.location.href="/flows/dump",{type:pF}}o(VT,"download");function KT(e){let t=new FormData;return t.append("file",e),n=>kt("/flows/dump",{method:"POST",body:t})}o(KT,"upload");function hf(e){return{type:HT,flowIds:e?[e]:[]}}o(hf,"select");var hy="UI_HIDE_MODAL",GT="UI_SET_ACTIVE_MODAL",hF={activeModal:void 0};function Fx(e=hF,t){switch(t.type){case GT:return Ft(Le({},e),{activeModal:t.activeModal});case hy:return Ft(Le({},e),{activeModal:void 0});default:return e}}o(Fx,"reducer");function YT(e){return{type:GT,activeModal:e}}o(YT,"setActiveModal");function my(){return{type:hy}}o(my,"hideModal");var Gh=de(Ae());var Wt=de(Ae());var hp=de(Ae());var Ah=de(Ae()),XT=de(Xn()),QT=(()=>{let e=document.createElement("div");return e.setAttribute("contenteditable","PLAINTEXT-ONLY"),e.contentEditable==="plaintext-only"?"plaintext-only":"true"})(),dp=!1,Gs=class extends Ah.Component{constructor(){super(...arguments);this.input=Ah.default.createRef();this.isEditing=o(()=>{var t;return((t=this.input.current)==null?void 0:t.contentEditable)===QT},"isEditing");this.startEditing=o(()=>{if(!this.input.current)return console.error("unreachable");this.isEditing()||(this.suppress_events=!0,this.input.current.blur(),this.input.current.contentEditable=QT,window.requestAnimationFrame(()=>{var l,d;if(!this.input.current)return;this.input.current.focus(),this.suppress_events=!1;let t=document.createRange();t.selectNodeContents(this.input.current);let n=window.getSelection();n==null||n.removeAllRanges(),n==null||n.addRange(t),(d=(l=this.props).onEditStart)==null||d.call(l)}))},"startEditing");this.resetValue=o(()=>{var t,n;if(!this.input.current)return console.error("unreachable");this.input.current.textContent=this.props.content,(n=(t=this.props).onInput)==null||n.call(t,this.props.content)},"resetValue");this.finishEditing=o(()=>{if(!this.input.current)return console.error("unreachable");this.props.onEditDone(this.input.current.textContent||""),this.input.current.blur(),this.input.current.contentEditable="inherit"},"finishEditing");this.onPaste=o(t=>{t.preventDefault();let n=t.clipboardData.getData("text/plain");document.execCommand("insertHTML",!1,n)},"onPaste");this.suppress_events=!1;this.onMouseDown=o(t=>{dp&&console.debug("onMouseDown",this.suppress_events),this.suppress_events=!0,window.addEventListener("mouseup",this.onMouseUp,{once:!0})},"onMouseDown");this.onMouseUp=o(t=>{var d;let n=t.target===this.input.current,l=!((d=window.getSelection())==null?void 0:d.toString());dp&&console.warn("mouseUp",this.suppress_events,n,l),n&&l&&this.startEditing(),this.suppress_events=!1},"onMouseUp");this.onClick=o(t=>{dp&&console.debug("onClick",this.suppress_events)},"onClick");this.onFocus=o(t=>{if(dp&&console.debug("onFocus",this.props.content,this.suppress_events),!this.input.current)throw"unreachable";this.suppress_events||this.startEditing()},"onFocus");this.onInput=o(t=>{var n,l,d;(d=(l=this.props).onInput)==null||d.call(l,((n=this.input.current)==null?void 0:n.textContent)||"")},"onInput");this.onBlur=o(t=>{dp&&console.debug("onBlur",this.props.content,this.suppress_events),!this.suppress_events&&this.finishEditing()},"onBlur");this.onKeyDown=o(t=>{var n,l;switch(dp&&console.debug("keydown",t),t.stopPropagation(),t.key){case"Escape":t.preventDefault(),this.resetValue(),this.finishEditing();break;case"Enter":t.shiftKey||(t.preventDefault(),this.finishEditing());break;default:break}(l=(n=this.props).onKeyDown)==null||l.call(n,t)},"onKeyDown")}render(){let t=(0,XT.default)("inline-input",this.props.className);return Ah.default.createElement("span",{ref:this.input,tabIndex:0,className:t,placeholder:this.props.placeholder,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onInput:this.onInput,onPaste:this.onPaste,onMouseDown:this.onMouseDown,onClick:this.onClick},this.props.content)}componentDidUpdate(t){var n,l;t.content!==this.props.content&&((l=(n=this.props).onInput)==null||l.call(n,this.props.content))}};o(Gs,"ValueEditor");var ZT=de(Xn());function mf(e){let[t,n]=(0,hp.useState)(e.isValid(e.content)),l=(0,hp.useRef)(null),d=o(p=>{var x;e.isValid(p)?e.onEditDone(p):(x=l.current)==null||x.resetValue()},"onEditDone"),m=(0,ZT.default)(e.className,t?"has-success":"has-warning");return hp.default.createElement(Gs,Ft(Le({},e),{className:m,onInput:p=>n(e.isValid(p)),onEditDone:d,ref:l}))}o(mf,"ValidateEditor");function Ix(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}o(Ix,"_defineProperty");function JT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(d){return Object.getOwnPropertyDescriptor(e,d).enumerable})),n.push.apply(n,l)}return n}o(JT,"ownKeys");function vy(e){for(var t=1;tn[l.level])));case rk:case gF:return Le(Le({},e),up(e,Oh[t.cmd](t.data,l=>e.filters[l.level])));default:return e}}o(Ux,"reduce");function ok(e){return{type:ik,filter:e}}o(ok,"toggleFilter");function mp(){return{type:nk}}o(mp,"toggleVisibility");function sk(e,t="web"){let n={id:Math.random().toString(),message:e,level:t};return{type:rk,cmd:"add",data:n}}o(sk,"add");var lk="UI_OPTION_UPDATE_START",ak="UI_OPTION_UPDATE_SUCCESS",uk="UI_OPTION_UPDATE_ERROR",wF={};function $x(e=wF,t){switch(t.type){case lk:return Ft(Le({},e),{[t.option]:{isUpdating:!0,value:t.value,error:!1}});case ak:return Ft(Le({},e),{[t.option]:void 0});case uk:let n=e[t.option].value;return typeof n=="boolean"&&(n=!n),Ft(Le({},e),{[t.option]:{value:n,isUpdating:!1,error:t.error}});case hy:return{};default:return e}}o($x,"reducer");function fk(e,t){return{type:lk,option:e,value:t}}o(fk,"startUpdate");function ck(e){return{type:ak,option:e}}o(ck,"updateSuccess");function pk(e,t){return{type:uk,option:e,error:t}}o(pk,"updateError");var dk=yy({flow:gx,modal:Fx,optionsEditor:$x});var Zn;(function(m){m.INIT="CONNECTION_INIT",m.FETCHING="CONNECTION_FETCHING",m.ESTABLISHED="CONNECTION_ESTABLISHED",m.ERROR="CONNECTION_ERROR",m.OFFLINE="CONNECTION_OFFLINE"})(Zn||(Zn={}));var xF={state:Zn.INIT,message:void 0};function zx(e=xF,t){switch(t.type){case Zn.ESTABLISHED:case Zn.FETCHING:case Zn.ERROR:case Zn.OFFLINE:return{state:t.type,message:t.message};default:return e}}o(zx,"reducer");function hk(){return{type:Zn.FETCHING}}o(hk,"startFetching");function mk(){return{type:Zn.ESTABLISHED}}o(mk,"connectionEstablished");function vk(e){return{type:Zn.ERROR,message:e}}o(vk,"connectionError");var gk={add_upstream_certs_to_client_chain:!1,allow_hosts:[],anticache:!1,anticomp:!1,block_global:!0,block_list:[],block_private:!1,body_size_limit:void 0,cert_passphrase:void 0,certs:[],ciphers_client:void 0,ciphers_server:void 0,client_certs:void 0,client_replay:[],client_replay_concurrency:1,command_history:!0,confdir:"~/.mitmproxy",connection_strategy:"eager",console_focus_follow:!1,content_view_lines_cutoff:512,dns_listen_host:"",dns_listen_port:53,dns_mode:"simple",dns_server:!1,export_preserve_original_ip:!1,http2:!0,ignore_hosts:[],intercept:void 0,intercept_active:!1,keep_host_header:!1,key_size:2048,listen_host:"",listen_port:8080,map_local:[],map_remote:[],mode:"regular",modify_body:[],modify_headers:[],normalize_outbound_headers:!0,onboarding:!0,onboarding_host:"mitm.it",onboarding_port:80,proxy_debug:!1,proxyauth:void 0,rawtcp:!0,readfile_filter:void 0,rfile:void 0,save_stream_file:void 0,save_stream_filter:void 0,scripts:[],server:!0,server_replay:[],server_replay_ignore_content:!1,server_replay_ignore_host:!1,server_replay_ignore_params:[],server_replay_ignore_payload_params:[],server_replay_ignore_port:!1,server_replay_kill_extra:!1,server_replay_nopop:!1,server_replay_refresh:!0,server_replay_use_headers:[],showhost:!1,ssl_insecure:!1,ssl_verify_upstream_trusted_ca:void 0,ssl_verify_upstream_trusted_confdir:void 0,stickyauth:void 0,stickycookie:void 0,stream_large_bodies:void 0,tcp_hosts:[],termlog_verbosity:"info",tls_version_client_max:"UNBOUNDED",tls_version_client_min:"TLS1_2",tls_version_server_max:"UNBOUNDED",tls_version_server_min:"TLS1_2",upstream_auth:void 0,upstream_cert:!0,validate_inbound_headers:!0,view_filter:void 0,view_order:"time",view_order_reversed:!1,web_columns:["tls","icon","path","method","status","size","time"],web_debug:!1,web_host:"127.0.0.1",web_open_browser:!0,web_port:8081,web_static_viewer:"",websocket:!0};var jx="OPTIONS_RECEIVE",qx="OPTIONS_UPDATE";function Vx(e=gk,t){switch(t.type){case jx:let n={};for(let[d,{value:m}]of Object.entries(t.data))n[d]=m;return n;case qx:let l=Le({},e);for(let[d,{value:m}]of Object.entries(t.data))l[d]=m;return l;default:return e}}o(Vx,"reducer");function SF(e,t,n){return Ma(this,null,function*(){try{let l=yield kt.put("/options",{[e]:t});if(l.status===200)n(ck(e));else throw yield l.text()}catch(l){n(pk(e,l))}})}o(SF,"pureSendUpdate");var CF=SF;function vp(e,t){return n=>{n(fk(e,t)),CF(e,t,n)}}o(vp,"update");function yk(){return e=>kt("/options/save",{method:"POST"})}o(yk,"save");var wk="COMMANDBAR_TOGGLE_VISIBILITY",_F={visible:!1};function Kx(e=_F,t){switch(t.type){case wk:return Ft(Le({},e),{visible:!e.visible});default:return e}}o(Kx,"reducer");function wy(){return{type:wk}}o(wy,"toggleVisibility");function xk(e){return function(t){var n=t.dispatch,l=t.getState;return function(d){return function(m){return typeof m=="function"?m(n,l,e):d(m)}}}}o(xk,"createThunkMiddleware");var Sk=xk();Sk.withExtraArgument=xk;var Ck=Sk;var bF=window.MITMWEB_CONF||{static:!1,version:"1.2.3",contentViews:["Auto","Raw"]};function Gx(e=bF,t){return e}o(Gx,"reducer");var EF={},TF=o((e=EF,t)=>{switch(t.type){case jx:return t.data;case qx:return Le(Le({},e),t.data);default:return e}},"reducer"),_k=TF;var kF=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||Bx,OF=yy({commandBar:Kx,eventLog:Ux,flows:Dx,connection:zx,ui:dk,options:Vx,options_meta:_k,conf:Gx}),LF=o(e=>Wx(OF,e,kF(tk(Ck))),"createAppStore"),gp=LF(void 0),qt=o(()=>Vs(),"useAppDispatch"),nt=mx;var Xi=de(Ae());var bk=de(Th()),Ek=de(Xn()),Yx=class extends Xi.Component{constructor(){super(...arguments);this.container=Xi.default.createRef();this.nameInput=Xi.default.createRef();this.valueInput=Xi.default.createRef();this.render=o(()=>{let[t,n]=this.props.item;return Xi.default.createElement("div",{ref:this.container,className:"kv-row",onClick:this.onClick,onKeyDownCapture:this.onKeyDown},Xi.default.createElement(Gs,{ref:this.nameInput,className:"kv-key",content:t,onEditStart:this.props.onEditStart,onEditDone:l=>this.props.onEditDone([l,n])}),":\xA0",Xi.default.createElement(Gs,{ref:this.valueInput,className:"kv-value",content:n,onEditStart:this.props.onEditStart,onEditDone:l=>this.props.onEditDone([t,l]),placeholder:"empty"}))},"render");this.onClick=o(t=>{t.target===this.container.current&&this.props.onClickEmptyArea()},"onClick");this.onKeyDown=o(t=>{var n;t.target===((n=this.valueInput.current)==null?void 0:n.input.current)&&t.key==="Tab"&&this.props.onTabNext()},"onKeyDown")}};o(Yx,"Row");var yp=class extends Xi.Component{constructor(){super(...arguments);this.rowRefs={};this.state={currentList:this.props.data||[],initialList:this.props.data};this.render=o(()=>{this.rowRefs={};let t=this.state.currentList.map((n,l)=>Xi.default.createElement(Yx,{key:l,item:n,onEditStart:()=>this.currentlyEditing=l,onEditDone:d=>this.onEditDone(l,d),onClickEmptyArea:()=>this.onClickEmptyArea(l),onTabNext:()=>this.onTabNext(l),ref:d=>this.rowRefs[l]=d}));return Xi.default.createElement("div",{className:(0,Ek.default)("kv-editor",this.props.className),onMouseDown:this.onMouseDown},t,Xi.default.createElement("div",{onClick:n=>{n.preventDefault(),this.onClickEmptyArea(this.state.currentList.length-1)},className:"kv-add-row fa fa-plus-square-o",role:"button","aria-label":"Add"}))},"render");this.onEditDone=o((t,n)=>{let l=[...this.state.currentList];n[0]?l[t]=n:l.splice(t,1),this.currentlyEditing=void 0,(0,bk.isEqual)(this.state.currentList,l)||this.props.onChange(l),this.setState({currentList:l})},"onEditDone");this.onClickEmptyArea=o(t=>{if(this.justFinishedEditing)return;let n=[...this.state.currentList];n.splice(t+1,0,["",""]),this.setState({currentList:n},()=>{var l,d;return(d=(l=this.rowRefs[t+1])==null?void 0:l.nameInput.current)==null?void 0:d.startEditing()})},"onClickEmptyArea");this.onTabNext=o(t=>{t==this.state.currentList.length-1&&this.onClickEmptyArea(t)},"onTabNext");this.onMouseDown=o(t=>{this.justFinishedEditing=this.currentlyEditing},"onMouseDown")}static getDerivedStateFromProps(t,n){return t.data!==n.initialList?{currentList:t.data||[],initialList:t.data}:null}};o(yp,"KeyValueListEditor");var Yt=de(Ae());var Dh=de(Ae());var xy=80;function Sy(e,t){let[n,l]=(0,Dh.useState)(),[d,m]=(0,Dh.useState)();return(0,Dh.useEffect)(()=>{d&&d.abort();let p=new AbortController;return kt(e,{signal:p.signal}).then(x=>{if(!x.ok)throw`${x.status} ${x.statusText}`.trim();return x.text()}).then(x=>{l(x)}).catch(x=>{p.signal.aborted||l(`Error getting content: ${x}.`)}),m(p),()=>{p.signal.aborted||p.abort()}},[e,t]),n}o(Sy,"useContent");var Rh=de(Ae()),Cy=Rh.default.memo(o(function({icon:t,text:n,className:l,title:d,onOpenFile:m,onClick:p}){let x;return Rh.default.createElement("a",{href:"#",onClick:_=>{x.click(),p&&p(_)},className:l,title:d},Rh.default.createElement("i",{className:"fa fa-fw "+t}),n,Rh.default.createElement("input",{ref:_=>x=_,className:"hidden",type:"file",onChange:_=>{_.preventDefault(),_.target.files&&_.target.files.length>0&&m(_.target.files[0]),x.value=""}}))},"FileChooser"));var wp=de(Ae()),Tk=de(Xn());function Cr({onClick:e,children:t,icon:n,disabled:l,className:d,title:m}){return wp.createElement("button",{className:(0,Tk.default)(d,"btn btn-default"),onClick:l?void 0:e,disabled:l,title:m},n&&wp.createElement(wp.Fragment,null,wp.createElement("i",{className:"fa "+n}),"\xA0"),t)}o(Cr,"Button");var Ih=de(Ae()),Mk=de(Ae());var Fh=de(Ae()),Ok=de(Xn()),Lk=de(kk()),Nk=de(Th());function Pk(e){return e&&e.replace(/\r\n|\r/g,` -`)}o(Pk,"normalizeLineEndings");var xp=class extends Fh.Component{constructor(t){super(t);this.state={isFocused:!1}}getCodeMirrorInstance(){return this.props.codeMirrorInstance||Lk.default}UNSAFE_componentWillMount(){this.props.path&&console.error("Warning: react-codemirror: the `path` prop has been changed to `name`")}componentDidMount(){let t=this.getCodeMirrorInstance();this.codeMirror=t.fromTextArea(this.textareaNode,this.props.options),this.codeMirror.on("change",this.codemirrorValueChanged.bind(this)),this.codeMirror.on("cursorActivity",this.cursorActivity.bind(this)),this.codeMirror.on("focus",this.focusChanged.bind(this,!0)),this.codeMirror.on("blur",this.focusChanged.bind(this,!1)),this.codeMirror.on("scroll",this.scrollChanged.bind(this)),this.codeMirror.setValue(this.props.defaultValue||this.props.value||"")}componentWillUnmount(){this.codeMirror&&this.codeMirror.toTextArea()}UNSAFE_componentWillReceiveProps(t){if(this.codeMirror&&t.value!==void 0&&t.value!==this.props.value&&Pk(this.codeMirror.getValue())!==Pk(t.value))if(this.props.preserveScrollPosition){var n=this.codeMirror.getScrollInfo();this.codeMirror.setValue(t.value),this.codeMirror.scrollTo(n.left,n.top)}else this.codeMirror.setValue(t.value);if(typeof t.options=="object")for(let l in t.options)t.options.hasOwnProperty(l)&&this.setOptionIfChanged(l,t.options[l])}setOptionIfChanged(t,n){let l=this.codeMirror.getOption(t);Nk.default.isEqual(l,n)||this.codeMirror.setOption(t,n)}getCodeMirror(){return this.codeMirror}focus(){this.codeMirror&&this.codeMirror.focus()}focusChanged(t){this.setState({isFocused:t}),this.props.onFocusChange&&this.props.onFocusChange(t)}cursorActivity(t){this.props.onCursorActivity&&this.props.onCursorActivity(t)}scrollChanged(t){this.props.onScroll&&this.props.onScroll(t.getScrollInfo())}codemirrorValueChanged(t,n){this.props.onChange&&n.origin!=="setValue"&&this.props.onChange(t.getValue(),n)}render(){let t=(0,Ok.default)("ReactCodeMirror",this.state.isFocused?"ReactCodeMirror--focused":null,this.props.className);return Fh.createElement("div",{className:t},Fh.createElement("textarea",{ref:n=>this.textareaNode=n,name:this.props.name||this.props.path,defaultValue:this.props.value,autoComplete:"off",autoFocus:this.props.autoFocus}))}};o(xp,"CodeMirror"),xp.defaultProps={preserveScrollPosition:!1};var Hh=class extends Mk.Component{constructor(){super(...arguments);this.editor=Ih.createRef();this.getContent=o(()=>{var t;return(t=this.editor.current)==null?void 0:t.codeMirror.getValue()},"getContent");this.render=o(()=>{let t={lineNumbers:!0};return Ih.createElement("div",{className:"codeeditor",onKeyDown:n=>n.stopPropagation()},Ih.createElement(xp,{ref:this.editor,value:this.props.initialContent,onChange:()=>0,options:t}))},"render")}};o(Hh,"CodeEditor");var vf=de(Ae()),NF=vf.default.memo(o(function({lines:t,maxLines:n,showMore:l}){return t.length===0?null:vf.default.createElement("pre",null,t.map((d,m)=>m===n?vf.default.createElement("button",{key:"showmore",onClick:l,className:"btn btn-xs btn-info"},vf.default.createElement("i",{className:"fa fa-angle-double-down","aria-hidden":"true"})," Show more"):vf.default.createElement("div",{key:m},d.map(([p,x],_)=>vf.default.createElement("span",{key:_,className:p},x)))))},"LineRenderer")),_y=NF;var _f=de(Ae());var di=de(Ae());var by=de(Ae());var Zx=o(function(t){return t.reduce(function(n,l){var d=l[0],m=l[1];return n[d]=m,n},{})},"fromEntries"),Jx=typeof window!="undefined"&&window.document&&window.document.createElement?by.useLayoutEffect:by.useEffect;var su=de(Ae());var Ur="top",Sn="bottom",rn="right",nn="left",Ey="auto",ru=[Ur,Sn,rn,nn],Il="start",Ty="end",Ak="clippingParents",ky="viewport",Sp="popper",Dk="reference",eS=ru.reduce(function(e,t){return e.concat([t+"-"+Il,t+"-"+Ty])},[]),Oy=[].concat(ru,[Ey]).reduce(function(e,t){return e.concat([t,t+"-"+Il,t+"-"+Ty])},[]),PF="beforeRead",MF="read",AF="afterRead",DF="beforeMain",RF="main",FF="afterMain",IF="beforeWrite",HF="write",WF="afterWrite",Rk=[PF,MF,AF,DF,RF,FF,IF,HF,WF];function Cn(e){return e?(e.nodeName||"").toLowerCase():null}o(Cn,"getNodeName");function Mr(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}o(Mr,"getWindow");function Hl(e){var t=Mr(e).Element;return e instanceof t||e instanceof Element}o(Hl,"isElement");function $r(e){var t=Mr(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}o($r,"isHTMLElement");function Ly(e){if(typeof ShadowRoot=="undefined")return!1;var t=Mr(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}o(Ly,"isShadowRoot");function BF(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var l=t.styles[n]||{},d=t.attributes[n]||{},m=t.elements[n];!$r(m)||!Cn(m)||(Object.assign(m.style,l),Object.keys(d).forEach(function(p){var x=d[p];x===!1?m.removeAttribute(p):m.setAttribute(p,x===!0?"":x)}))})}o(BF,"applyStyles");function UF(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(l){var d=t.elements[l],m=t.attributes[l]||{},p=Object.keys(t.styles.hasOwnProperty(l)?t.styles[l]:n[l]),x=p.reduce(function(_,O){return _[O]="",_},{});!$r(d)||!Cn(d)||(Object.assign(d.style,x),Object.keys(m).forEach(function(_){d.removeAttribute(_)}))})}}o(UF,"effect");var Fk={name:"applyStyles",enabled:!0,phase:"write",fn:BF,effect:UF,requires:["computeStyles"]};function _n(e){return e.split("-")[0]}o(_n,"getBasePlacement");var nu=Math.round;function Lo(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),l=1,d=1;return $r(e)&&t&&(l=n.width/e.offsetWidth||1,d=n.height/e.offsetHeight||1),{width:nu(n.width/l),height:nu(n.height/d),top:nu(n.top/d),right:nu(n.right/l),bottom:nu(n.bottom/d),left:nu(n.left/l),x:nu(n.left/l),y:nu(n.top/d)}}o(Lo,"getBoundingClientRect");function gf(e){var t=Lo(e),n=e.offsetWidth,l=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-l)<=1&&(l=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:l}}o(gf,"getLayoutRect");function Wh(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ly(n)){var l=t;do{if(l&&e.isSameNode(l))return!0;l=l.parentNode||l.host}while(l)}return!1}o(Wh,"contains");function pi(e){return Mr(e).getComputedStyle(e)}o(pi,"getComputedStyle");function tS(e){return["table","td","th"].indexOf(Cn(e))>=0}o(tS,"isTableElement");function Mn(e){return((Hl(e)?e.ownerDocument:e.document)||window.document).documentElement}o(Mn,"getDocumentElement");function Wl(e){return Cn(e)==="html"?e:e.assignedSlot||e.parentNode||(Ly(e)?e.host:null)||Mn(e)}o(Wl,"getParentNode");function Ik(e){return!$r(e)||pi(e).position==="fixed"?null:e.offsetParent}o(Ik,"getTrueOffsetParent");function $F(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&$r(e)){var l=pi(e);if(l.position==="fixed")return null}for(var d=Wl(e);$r(d)&&["html","body"].indexOf(Cn(d))<0;){var m=pi(d);if(m.transform!=="none"||m.perspective!=="none"||m.contain==="paint"||["transform","perspective"].indexOf(m.willChange)!==-1||t&&m.willChange==="filter"||t&&m.filter&&m.filter!=="none")return d;d=d.parentNode}return null}o($F,"getContainingBlock");function is(e){for(var t=Mr(e),n=Ik(e);n&&tS(n)&&pi(n).position==="static";)n=Ik(n);return n&&(Cn(n)==="html"||Cn(n)==="body"&&pi(n).position==="static")?t:n||$F(e)||t}o(is,"getOffsetParent");function yf(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}o(yf,"getMainAxisFromPlacement");var No=Math.max,iu=Math.min,Bh=Math.round;function wf(e,t,n){return No(e,iu(t,n))}o(wf,"within");function Uh(){return{top:0,right:0,bottom:0,left:0}}o(Uh,"getFreshSideObject");function $h(e){return Object.assign({},Uh(),e)}o($h,"mergePaddingObject");function zh(e,t){return t.reduce(function(n,l){return n[l]=e,n},{})}o(zh,"expandToHashMap");var zF=o(function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,$h(typeof t!="number"?t:zh(t,ru))},"toPaddingObject");function jF(e){var t,n=e.state,l=e.name,d=e.options,m=n.elements.arrow,p=n.modifiersData.popperOffsets,x=_n(n.placement),_=yf(x),O=[nn,rn].indexOf(x)>=0,D=O?"height":"width";if(!(!m||!p)){var Y=zF(d.padding,n),U=gf(m),X=_==="y"?Ur:nn,te=_==="y"?Sn:rn,Q=n.rects.reference[D]+n.rects.reference[_]-p[_]-n.rects.popper[D],F=p[_]-n.rects.reference[_],M=is(m),R=M?_==="y"?M.clientHeight||0:M.clientWidth||0:0,K=Q/2-F/2,V=Y[X],fe=R-U[D]-Y[te],ie=R/2-U[D]/2+K,he=wf(V,ie,fe),ye=_;n.modifiersData[l]=(t={},t[ye]=he,t.centerOffset=he-ie,t)}}o(jF,"arrow");function qF(e){var t=e.state,n=e.options,l=n.element,d=l===void 0?"[data-popper-arrow]":l;d!=null&&(typeof d=="string"&&(d=t.elements.popper.querySelector(d),!d)||!Wh(t.elements.popper,d)||(t.elements.arrow=d))}o(qF,"effect");var Hk={name:"arrow",enabled:!0,phase:"main",fn:jF,effect:qF,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};var VF={top:"auto",right:"auto",bottom:"auto",left:"auto"};function KF(e){var t=e.x,n=e.y,l=window,d=l.devicePixelRatio||1;return{x:Bh(Bh(t*d)/d)||0,y:Bh(Bh(n*d)/d)||0}}o(KF,"roundOffsetsByDPR");function Wk(e){var t,n=e.popper,l=e.popperRect,d=e.placement,m=e.offsets,p=e.position,x=e.gpuAcceleration,_=e.adaptive,O=e.roundOffsets,D=O===!0?KF(m):typeof O=="function"?O(m):m,Y=D.x,U=Y===void 0?0:Y,X=D.y,te=X===void 0?0:X,Q=m.hasOwnProperty("x"),F=m.hasOwnProperty("y"),M=nn,R=Ur,K=window;if(_){var V=is(n),fe="clientHeight",ie="clientWidth";V===Mr(n)&&(V=Mn(n),pi(V).position!=="static"&&(fe="scrollHeight",ie="scrollWidth")),V=V,d===Ur&&(R=Sn,te-=V[fe]-l.height,te*=x?1:-1),d===nn&&(M=rn,U-=V[ie]-l.width,U*=x?1:-1)}var he=Object.assign({position:p},_&&VF);if(x){var ye;return Object.assign({},he,(ye={},ye[R]=F?"0":"",ye[M]=Q?"0":"",ye.transform=(K.devicePixelRatio||1)<2?"translate("+U+"px, "+te+"px)":"translate3d("+U+"px, "+te+"px, 0)",ye))}return Object.assign({},he,(t={},t[R]=F?te+"px":"",t[M]=Q?U+"px":"",t.transform="",t))}o(Wk,"mapToStyles");function GF(e){var t=e.state,n=e.options,l=n.gpuAcceleration,d=l===void 0?!0:l,m=n.adaptive,p=m===void 0?!0:m,x=n.roundOffsets,_=x===void 0?!0:x;if(!1)var O;var D={placement:_n(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:d};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Wk(Object.assign({},D,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:p,roundOffsets:_})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Wk(Object.assign({},D,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:_})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}o(GF,"computeStyles");var Bk={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:GF,data:{}};var Ny={passive:!0};function YF(e){var t=e.state,n=e.instance,l=e.options,d=l.scroll,m=d===void 0?!0:d,p=l.resize,x=p===void 0?!0:p,_=Mr(t.elements.popper),O=[].concat(t.scrollParents.reference,t.scrollParents.popper);return m&&O.forEach(function(D){D.addEventListener("scroll",n.update,Ny)}),x&&_.addEventListener("resize",n.update,Ny),function(){m&&O.forEach(function(D){D.removeEventListener("scroll",n.update,Ny)}),x&&_.removeEventListener("resize",n.update,Ny)}}o(YF,"effect");var Uk={name:"eventListeners",enabled:!0,phase:"write",fn:o(function(){},"fn"),effect:YF,data:{}};var XF={left:"right",right:"left",bottom:"top",top:"bottom"};function Cp(e){return e.replace(/left|right|bottom|top/g,function(t){return XF[t]})}o(Cp,"getOppositePlacement");var QF={start:"end",end:"start"};function Py(e){return e.replace(/start|end/g,function(t){return QF[t]})}o(Py,"getOppositeVariationPlacement");function xf(e){var t=Mr(e),n=t.pageXOffset,l=t.pageYOffset;return{scrollLeft:n,scrollTop:l}}o(xf,"getWindowScroll");function Sf(e){return Lo(Mn(e)).left+xf(e).scrollLeft}o(Sf,"getWindowScrollBarX");function rS(e){var t=Mr(e),n=Mn(e),l=t.visualViewport,d=n.clientWidth,m=n.clientHeight,p=0,x=0;return l&&(d=l.width,m=l.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(p=l.offsetLeft,x=l.offsetTop)),{width:d,height:m,x:p+Sf(e),y:x}}o(rS,"getViewportRect");function nS(e){var t,n=Mn(e),l=xf(e),d=(t=e.ownerDocument)==null?void 0:t.body,m=No(n.scrollWidth,n.clientWidth,d?d.scrollWidth:0,d?d.clientWidth:0),p=No(n.scrollHeight,n.clientHeight,d?d.scrollHeight:0,d?d.clientHeight:0),x=-l.scrollLeft+Sf(e),_=-l.scrollTop;return pi(d||n).direction==="rtl"&&(x+=No(n.clientWidth,d?d.clientWidth:0)-m),{width:m,height:p,x,y:_}}o(nS,"getDocumentRect");function Cf(e){var t=pi(e),n=t.overflow,l=t.overflowX,d=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+d+l)}o(Cf,"isScrollParent");function My(e){return["html","body","#document"].indexOf(Cn(e))>=0?e.ownerDocument.body:$r(e)&&Cf(e)?e:My(Wl(e))}o(My,"getScrollParent");function ou(e,t){var n;t===void 0&&(t=[]);var l=My(e),d=l===((n=e.ownerDocument)==null?void 0:n.body),m=Mr(l),p=d?[m].concat(m.visualViewport||[],Cf(l)?l:[]):l,x=t.concat(p);return d?x:x.concat(ou(Wl(p)))}o(ou,"listScrollParents");function _p(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}o(_p,"rectToClientRect");function ZF(e){var t=Lo(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}o(ZF,"getInnerBoundingClientRect");function $k(e,t){return t===ky?_p(rS(e)):$r(t)?ZF(t):_p(nS(Mn(e)))}o($k,"getClientRectFromMixedType");function JF(e){var t=ou(Wl(e)),n=["absolute","fixed"].indexOf(pi(e).position)>=0,l=n&&$r(e)?is(e):e;return Hl(l)?t.filter(function(d){return Hl(d)&&Wh(d,l)&&Cn(d)!=="body"}):[]}o(JF,"getClippingParents");function iS(e,t,n){var l=t==="clippingParents"?JF(e):[].concat(t),d=[].concat(l,[n]),m=d[0],p=d.reduce(function(x,_){var O=$k(e,_);return x.top=No(O.top,x.top),x.right=iu(O.right,x.right),x.bottom=iu(O.bottom,x.bottom),x.left=No(O.left,x.left),x},$k(e,m));return p.width=p.right-p.left,p.height=p.bottom-p.top,p.x=p.left,p.y=p.top,p}o(iS,"getClippingRect");function Ys(e){return e.split("-")[1]}o(Ys,"getVariation");function jh(e){var t=e.reference,n=e.element,l=e.placement,d=l?_n(l):null,m=l?Ys(l):null,p=t.x+t.width/2-n.width/2,x=t.y+t.height/2-n.height/2,_;switch(d){case Ur:_={x:p,y:t.y-n.height};break;case Sn:_={x:p,y:t.y+t.height};break;case rn:_={x:t.x+t.width,y:x};break;case nn:_={x:t.x-n.width,y:x};break;default:_={x:t.x,y:t.y}}var O=d?yf(d):null;if(O!=null){var D=O==="y"?"height":"width";switch(m){case Il:_[O]=_[O]-(t[D]/2-n[D]/2);break;case Ty:_[O]=_[O]+(t[D]/2-n[D]/2);break;default:}}return _}o(jh,"computeOffsets");function os(e,t){t===void 0&&(t={});var n=t,l=n.placement,d=l===void 0?e.placement:l,m=n.boundary,p=m===void 0?Ak:m,x=n.rootBoundary,_=x===void 0?ky:x,O=n.elementContext,D=O===void 0?Sp:O,Y=n.altBoundary,U=Y===void 0?!1:Y,X=n.padding,te=X===void 0?0:X,Q=$h(typeof te!="number"?te:zh(te,ru)),F=D===Sp?Dk:Sp,M=e.elements.reference,R=e.rects.popper,K=e.elements[U?F:D],V=iS(Hl(K)?K:K.contextElement||Mn(e.elements.popper),p,_),fe=Lo(M),ie=jh({reference:fe,element:R,strategy:"absolute",placement:d}),he=_p(Object.assign({},R,ie)),ye=D===Sp?he:fe,xe={top:V.top-ye.top+Q.top,bottom:ye.bottom-V.bottom+Q.bottom,left:V.left-ye.left+Q.left,right:ye.right-V.right+Q.right},qe=e.modifiersData.offset;if(D===Sp&&qe){var Je=qe[d];Object.keys(xe).forEach(function(be){var xt=[rn,Sn].indexOf(be)>=0?1:-1,Be=[Ur,Sn].indexOf(be)>=0?"y":"x";xe[be]+=Je[Be]*xt})}return xe}o(os,"detectOverflow");function oS(e,t){t===void 0&&(t={});var n=t,l=n.placement,d=n.boundary,m=n.rootBoundary,p=n.padding,x=n.flipVariations,_=n.allowedAutoPlacements,O=_===void 0?Oy:_,D=Ys(l),Y=D?x?eS:eS.filter(function(te){return Ys(te)===D}):ru,U=Y.filter(function(te){return O.indexOf(te)>=0});U.length===0&&(U=Y);var X=U.reduce(function(te,Q){return te[Q]=os(e,{placement:Q,boundary:d,rootBoundary:m,padding:p})[_n(Q)],te},{});return Object.keys(X).sort(function(te,Q){return X[te]-X[Q]})}o(oS,"computeAutoPlacement");function eI(e){if(_n(e)===Ey)return[];var t=Cp(e);return[Py(e),t,Py(t)]}o(eI,"getExpandedFallbackPlacements");function tI(e){var t=e.state,n=e.options,l=e.name;if(!t.modifiersData[l]._skip){for(var d=n.mainAxis,m=d===void 0?!0:d,p=n.altAxis,x=p===void 0?!0:p,_=n.fallbackPlacements,O=n.padding,D=n.boundary,Y=n.rootBoundary,U=n.altBoundary,X=n.flipVariations,te=X===void 0?!0:X,Q=n.allowedAutoPlacements,F=t.options.placement,M=_n(F),R=M===F,K=_||(R||!te?[Cp(F)]:eI(F)),V=[F].concat(K).reduce(function(at,_r){return at.concat(_n(_r)===Ey?oS(t,{placement:_r,boundary:D,rootBoundary:Y,padding:O,flipVariations:te,allowedAutoPlacements:Q}):_r)},[]),fe=t.rects.reference,ie=t.rects.popper,he=new Map,ye=!0,xe=V[0],qe=0;qe=0,Ve=Be?"width":"height",Ke=os(t,{placement:Je,boundary:D,rootBoundary:Y,altBoundary:U,padding:O}),Ge=Be?xt?rn:nn:xt?Sn:Ur;fe[Ve]>ie[Ve]&&(Ge=Cp(Ge));var Xt=Cp(Ge),ft=[];if(m&&ft.push(Ke[be]<=0),x&&ft.push(Ke[Ge]<=0,Ke[Xt]<=0),ft.every(function(at){return at})){xe=Je,ye=!1;break}he.set(Je,ft)}if(ye)for(var Ar=te?3:1,Vt=o(function(_r){var Bt=V.find(function(Ut){var ne=he.get(Ut);if(ne)return ne.slice(0,_r).every(function(et){return et})});if(Bt)return xe=Bt,"break"},"_loop"),bt=Ar;bt>0;bt--){var St=Vt(bt);if(St==="break")break}t.placement!==xe&&(t.modifiersData[l]._skip=!0,t.placement=xe,t.reset=!0)}}o(tI,"flip");var zk={name:"flip",enabled:!0,phase:"main",fn:tI,requiresIfExists:["offset"],data:{_skip:!1}};function jk(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}o(jk,"getSideOffsets");function qk(e){return[Ur,rn,Sn,nn].some(function(t){return e[t]>=0})}o(qk,"isAnySideFullyClipped");function rI(e){var t=e.state,n=e.name,l=t.rects.reference,d=t.rects.popper,m=t.modifiersData.preventOverflow,p=os(t,{elementContext:"reference"}),x=os(t,{altBoundary:!0}),_=jk(p,l),O=jk(x,d,m),D=qk(_),Y=qk(O);t.modifiersData[n]={referenceClippingOffsets:_,popperEscapeOffsets:O,isReferenceHidden:D,hasPopperEscaped:Y},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":D,"data-popper-escaped":Y})}o(rI,"hide");var Vk={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:rI};function nI(e,t,n){var l=_n(e),d=[nn,Ur].indexOf(l)>=0?-1:1,m=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,p=m[0],x=m[1];return p=p||0,x=(x||0)*d,[nn,rn].indexOf(l)>=0?{x,y:p}:{x:p,y:x}}o(nI,"distanceAndSkiddingToXY");function iI(e){var t=e.state,n=e.options,l=e.name,d=n.offset,m=d===void 0?[0,0]:d,p=Oy.reduce(function(D,Y){return D[Y]=nI(Y,t.rects,m),D},{}),x=p[t.placement],_=x.x,O=x.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=_,t.modifiersData.popperOffsets.y+=O),t.modifiersData[l]=p}o(iI,"offset");var Kk={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:iI};function oI(e){var t=e.state,n=e.name;t.modifiersData[n]=jh({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}o(oI,"popperOffsets");var Gk={name:"popperOffsets",enabled:!0,phase:"read",fn:oI,data:{}};function sS(e){return e==="x"?"y":"x"}o(sS,"getAltAxis");function sI(e){var t=e.state,n=e.options,l=e.name,d=n.mainAxis,m=d===void 0?!0:d,p=n.altAxis,x=p===void 0?!1:p,_=n.boundary,O=n.rootBoundary,D=n.altBoundary,Y=n.padding,U=n.tether,X=U===void 0?!0:U,te=n.tetherOffset,Q=te===void 0?0:te,F=os(t,{boundary:_,rootBoundary:O,padding:Y,altBoundary:D}),M=_n(t.placement),R=Ys(t.placement),K=!R,V=yf(M),fe=sS(V),ie=t.modifiersData.popperOffsets,he=t.rects.reference,ye=t.rects.popper,xe=typeof Q=="function"?Q(Object.assign({},t.rects,{placement:t.placement})):Q,qe={x:0,y:0};if(!!ie){if(m||x){var Je=V==="y"?Ur:nn,be=V==="y"?Sn:rn,xt=V==="y"?"height":"width",Be=ie[V],Ve=ie[V]+F[Je],Ke=ie[V]-F[be],Ge=X?-ye[xt]/2:0,Xt=R===Il?he[xt]:ye[xt],ft=R===Il?-ye[xt]:-he[xt],Ar=t.elements.arrow,Vt=X&&Ar?gf(Ar):{width:0,height:0},bt=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Uh(),St=bt[Je],at=bt[be],_r=wf(0,he[xt],Vt[xt]),Bt=K?he[xt]/2-Ge-_r-St-xe:Xt-_r-St-xe,Ut=K?-he[xt]/2+Ge+_r+at+xe:ft+_r+at+xe,ne=t.elements.arrow&&is(t.elements.arrow),et=ne?V==="y"?ne.clientTop||0:ne.clientLeft||0:0,br=t.modifiersData.offset?t.modifiersData.offset[t.placement][V]:0,zt=ie[V]+Bt-br-et,jt=ie[V]+Ut-br;if(m){var Se=wf(X?iu(Ve,zt):Ve,Be,X?No(Ke,jt):Ke);ie[V]=Se,qe[V]=Se-Be}if(x){var Er=V==="x"?Ur:nn,on=V==="x"?Sn:rn,Dn=ie[fe],ei=Dn+F[Er],sn=Dn-F[on],Kt=wf(X?iu(ei,zt):ei,Dn,X?No(sn,jt):sn);ie[fe]=Kt,qe[fe]=Kt-Dn}}t.modifiersData[l]=qe}}o(sI,"preventOverflow");var Yk={name:"preventOverflow",enabled:!0,phase:"main",fn:sI,requiresIfExists:["offset"]};function lS(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}o(lS,"getHTMLElementScroll");function aS(e){return e===Mr(e)||!$r(e)?xf(e):lS(e)}o(aS,"getNodeScroll");function lI(e){var t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,l=t.height/e.offsetHeight||1;return n!==1||l!==1}o(lI,"isElementScaled");function uS(e,t,n){n===void 0&&(n=!1);var l=$r(t),d=$r(t)&&lI(t),m=Mn(t),p=Lo(e,d),x={scrollLeft:0,scrollTop:0},_={x:0,y:0};return(l||!l&&!n)&&((Cn(t)!=="body"||Cf(m))&&(x=aS(t)),$r(t)?(_=Lo(t,!0),_.x+=t.clientLeft,_.y+=t.clientTop):m&&(_.x=Sf(m))),{x:p.left+x.scrollLeft-_.x,y:p.top+x.scrollTop-_.y,width:p.width,height:p.height}}o(uS,"getCompositeRect");function aI(e){var t=new Map,n=new Set,l=[];e.forEach(function(m){t.set(m.name,m)});function d(m){n.add(m.name);var p=[].concat(m.requires||[],m.requiresIfExists||[]);p.forEach(function(x){if(!n.has(x)){var _=t.get(x);_&&d(_)}}),l.push(m)}return o(d,"sort"),e.forEach(function(m){n.has(m.name)||d(m)}),l}o(aI,"order");function fS(e){var t=aI(e);return Rk.reduce(function(n,l){return n.concat(t.filter(function(d){return d.phase===l}))},[])}o(fS,"orderModifiers");function cS(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}o(cS,"debounce");function pS(e){var t=e.reduce(function(n,l){var d=n[l.name];return n[l.name]=d?Object.assign({},d,l,{options:Object.assign({},d.options,l.options),data:Object.assign({},d.data,l.data)}):l,n},{});return Object.keys(t).map(function(n){return t[n]})}o(pS,"mergeByName");var Xk={placement:"bottom",modifiers:[],strategy:"absolute"};function Qk(){for(var e=arguments.length,t=new Array(e),n=0;ndi.default.createElement("li",{role:"separator",className:"divider"}),"Divider");function hi(l){var d=l,{onClick:e,children:t}=d,n=Hs(d,["onClick","children"]);return di.default.createElement("li",null,di.default.createElement("a",Le({href:"#",onClick:o(p=>{p.preventDefault(),e()},"click")},n),t))}o(hi,"MenuItem");var lu=di.default.memo(o(function(x){var _=x,{text:t,children:n,options:l,className:d,onOpen:m}=_,p=Hs(_,["text","children","options","className","onOpen"]);let[O,D]=(0,di.useState)(null),[Y,U]=(0,di.useState)(!1),[X,te]=(0,di.useState)(null),{styles:Q,attributes:F}=hS(O,X,Le({},l)),M=o(K=>{U(K),m&&m(K)},"setOpen");(0,di.useEffect)(()=>{!X||document.addEventListener("click",K=>{X.contains(K.target)?document.addEventListener("click",()=>M(!1),{once:!0}):(K.preventDefault(),K.stopPropagation(),M(!1))},{once:!0,capture:!0})},[X]);let R;return Y?R=di.default.createElement("ul",Le({className:"dropdown-menu show",ref:te,style:Q.popper},F.popper),n):R=null,di.default.createElement(di.default.Fragment,null,di.default.createElement("a",Le({href:"#",ref:D,className:(0,rO.default)(d,{open:Y}),onClick:K=>{K.preventDefault(),M(!0)}},p),t),R)},"Dropdown"));function qh({value:e,onChange:t}){let n=nt(d=>d.conf.contentViews||[]),l=_f.default.createElement("span",null,_f.default.createElement("i",{className:"fa fa-fw fa-files-o"}),"\xA0",_f.default.createElement("b",null,"View:")," ",e.toLowerCase()," ",_f.default.createElement("span",{className:"caret"}));return _f.default.createElement(lu,{text:l,className:"btn btn-default btn-xs",options:{placement:"top-start"}},n.map(d=>_f.default.createElement(hi,{key:d,onClick:()=>t(d)},d.toLowerCase().replace("_"," "))))}o(qh,"ViewSelector");function mS({flow:e,message:t}){let n=qt(),l=e.request===t?"request":"response",d=nt(te=>te.ui.flow.contentViewFor[e.id+l]||"Auto"),m=(0,Yt.useRef)(null),[p,x]=(0,Yt.useState)(xy),_=(0,Yt.useCallback)(()=>x(Math.max(1024,p*2)),[p]),[O,D]=(0,Yt.useState)(!1),Y;O?Y=Br.getContentURL(e,t):Y=Br.getContentURL(e,t,d,p+1);let U=Sy(Y,t.contentHash),X=(0,Yt.useMemo)(()=>{if(U&&!O)try{return JSON.parse(U)}catch(te){return{description:"Network Error",lines:[[["error",`${U}`]]]}}else return},[U]);if(O)return Yt.default.createElement("div",{className:"contentview",key:"edit"},Yt.default.createElement("div",{className:"controls"},Yt.default.createElement("h5",null,"[Editing]"),Yt.default.createElement(Cr,{onClick:o(()=>Ma(this,null,function*(){var F;let Q=(F=m.current)==null?void 0:F.getContent();yield n(Di(e,{[l]:{content:Q}})),D(!1)}),"save"),icon:"fa-check text-success",className:"btn-xs"},"Done"),"\xA0",Yt.default.createElement(Cr,{onClick:()=>D(!1),icon:"fa-times text-danger",className:"btn-xs"},"Cancel")),Yt.default.createElement(Hh,{ref:m,initialContent:U||""}));{let te=X?X.description:"Loading...";return Yt.default.createElement("div",{className:"contentview",key:"view"},Yt.default.createElement("div",{className:"controls"},Yt.default.createElement("h5",null,te),Yt.default.createElement(Cr,{onClick:()=>D(!0),icon:"fa-edit",className:"btn-xs"},"Edit"),"\xA0",Yt.default.createElement(Cy,{icon:"fa-upload",text:"Replace",title:"Upload a file to replace the content.",onOpenFile:Q=>n(qT(e,Q,l)),className:"btn btn-default btn-xs"}),"\xA0",Yt.default.createElement(qh,{value:d,onChange:Q=>n(Vg(e.id+l,Q))})),vS.matches(t)&&Yt.default.createElement(vS,{flow:e,message:t}),Yt.default.createElement(_y,{lines:(X==null?void 0:X.lines)||[],maxLines:p,showMore:_}))}}o(mS,"HttpMessage");var mI=/^image\/(png|jpe?g|gif|webp|vnc.microsoft.icon|x-icon)$/i;vS.matches=e=>mI.test(Br.getContentType(e)||"");function vS({flow:e,message:t}){return Yt.default.createElement("div",{className:"flowview-image"},Yt.default.createElement("img",{src:Br.getContentURL(e,t),alt:"preview",className:"img-thumbnail"}))}o(vS,"ViewImage");function vI({flow:e}){let t=qt();return Wt.createElement("div",{className:"first-line request-line"},Wt.createElement("div",null,Wt.createElement(mf,{content:e.request.method,onEditDone:n=>t(Di(e,{request:{method:n}})),isValid:n=>n.length>0}),"\xA0",Wt.createElement(mf,{content:Oo.pretty_url(e.request),onEditDone:n=>t(Di(e,{request:Le({path:""},Lx(n))})),isValid:n=>{var l;return!!((l=Lx(n))==null?void 0:l.host)}}),"\xA0",Wt.createElement(mf,{content:e.request.http_version,onEditDone:n=>t(Di(e,{request:{http_version:n}})),isValid:Nx})))}o(vI,"RequestLine");function gI({flow:e}){let t=qt();return Wt.createElement("div",{className:"first-line response-line"},Wt.createElement(mf,{content:e.response.http_version,onEditDone:n=>t(Di(e,{response:{http_version:n}})),isValid:Nx}),"\xA0",Wt.createElement(mf,{content:e.response.status_code+"",onEditDone:n=>t(Di(e,{response:{code:parseInt(n)}})),isValid:n=>/^\d+$/.test(n)}),e.response.http_version!=="HTTP/2.0"&&Wt.createElement(Wt.Fragment,null,"\xA0",Wt.createElement(Gs,{content:e.response.reason,onEditDone:n=>t(Di(e,{response:{msg:n}}))})))}o(gI,"ResponseLine");function yI({flow:e,message:t}){let n=qt(),l=e.request===t?"request":"response";return Wt.createElement(yp,{className:"headers",data:t.headers,onChange:d=>n(Di(e,{[l]:{headers:d}}))})}o(yI,"Headers");function wI({flow:e,message:t}){let n=qt(),l=e.request===t?"request":"response";return!Br.get_first_header(t,/^trailer$/i)?null:Wt.createElement(Wt.Fragment,null,Wt.createElement("hr",null),Wt.createElement("h5",null,"HTTP Trailers"),Wt.createElement(yp,{className:"trailers",data:t.trailers,onChange:m=>n(Di(e,{[l]:{trailers:m}}))}))}o(wI,"Trailers");var iO=Wt.memo(o(function({flow:t,message:n}){let l=t.request===n?"request":"response",d=t.request===n?vI:gI;return Wt.createElement("section",{className:l},Wt.createElement(d,{flow:t}),Wt.createElement(yI,{flow:t,message:n}),Wt.createElement("hr",null),Wt.createElement(mS,{key:t.id+l,flow:t,message:n}),Wt.createElement(wI,{flow:t,message:n}))},"Message"));function gS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return Wt.createElement(iO,{flow:e,message:e.request})}o(gS,"Request");gS.displayName="Request";function yS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return Wt.createElement(iO,{flow:e,message:e.response})}o(yS,"Response");yS.displayName="Response";var it=de(Ae());var xI=o(({message:e})=>it.createElement("div",null,e.query?e.opCode:e.responseCode,"\xA0 #",e.id,"\xA0",e.truncation?"(Truncated)":""),"Summary"),SI=o(({message:e})=>it.createElement("table",null,it.createElement("caption",null,e.recursionDesired?"Recursive ":"","Question"),it.createElement("thead",null,it.createElement("tr",null,it.createElement("th",null,"Name"),it.createElement("th",null,"Type"),it.createElement("th",null,"Class"))),it.createElement("tbody",null,e.questions.map(t=>it.createElement("tr",{key:t.name},it.createElement("td",null,t.name),it.createElement("td",null,t.type),it.createElement("td",null,t.class))))),"Questions"),wS=o(({name:e,values:t})=>it.createElement("table",null,it.createElement("caption",null,e),it.createElement("thead",null,it.createElement("tr",null,it.createElement("th",null,"Name"),it.createElement("th",null,"Type"),it.createElement("th",null,"Class"),it.createElement("th",null,"TTL"),it.createElement("th",null,"Data"))),it.createElement("tbody",null,t.map(n=>it.createElement("tr",{key:n.name},it.createElement("td",null,n.name),it.createElement("td",null,n.type),it.createElement("td",null,n.class),it.createElement("td",null,n.ttl),it.createElement("td",null,n.data))))),"ResourceRecords"),oO=o(({type:e,message:t})=>it.createElement("section",{className:e},it.createElement("div",{className:`first-line ${e}-line`},it.createElement(xI,{message:t})),it.createElement(SI,{message:t}),it.createElement("hr",null),it.createElement(wS,{name:`${t.authoritativeAnswer?"Authoritative ":""}${t.recursionAvailable?"Recursive ":""}Answer`,values:t.answers}),it.createElement("hr",null),it.createElement(wS,{name:"Authority",values:t.authorities}),it.createElement("hr",null),it.createElement(wS,{name:"Additional",values:t.additionals})),"Message");function xS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return it.createElement(oO,{type:"request",message:e.request})}o(xS,"Request");xS.displayName="Request";function SS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return it.createElement(oO,{type:"response",message:e.response})}o(SS,"Response");SS.displayName="Response";var _e=de(Ae());function sO({conn:e}){var n,l,d;let t=null;return"address"in e?t=_e.createElement(_e.Fragment,null,_e.createElement("tr",null,_e.createElement("td",null,"Address:"),_e.createElement("td",null,(n=e.address)==null?void 0:n.join(":"))),e.peername&&_e.createElement("tr",null,_e.createElement("td",null,"Resolved address:"),_e.createElement("td",null,e.peername.join(":"))),e.sockname&&_e.createElement("tr",null,_e.createElement("td",null,"Source address:"),_e.createElement("td",null,e.sockname.join(":")))):((l=e.peername)==null?void 0:l[0])&&(t=_e.createElement(_e.Fragment,null,_e.createElement("tr",null,_e.createElement("td",null,"Address:"),_e.createElement("td",null,(d=e.peername)==null?void 0:d.join(":"))))),_e.createElement("table",{className:"connection-table"},_e.createElement("tbody",null,t,e.sni?_e.createElement("tr",null,_e.createElement("td",null,_e.createElement("abbr",{title:"TLS Server Name Indication"},"SNI"),":"),_e.createElement("td",null,e.sni)):null,e.alpn?_e.createElement("tr",null,_e.createElement("td",null,_e.createElement("abbr",{title:"ALPN protocol negotiated"},"ALPN"),":"),_e.createElement("td",null,e.alpn)):null,e.tls_version?_e.createElement("tr",null,_e.createElement("td",null,"TLS Version:"),_e.createElement("td",null,e.tls_version)):null,e.cipher?_e.createElement("tr",null,_e.createElement("td",null,"TLS Cipher:"),_e.createElement("td",null,e.cipher)):null))}o(sO,"ConnectionInfo");function lO(e){return _e.createElement("dl",{className:"cert-attributes"},e.map(([t,n])=>_e.createElement(_e.Fragment,{key:t},_e.createElement("dt",null,t),_e.createElement("dd",null,n))))}o(lO,"attrList");function CI({flow:e}){var n;let t=(n=e.server_conn)==null?void 0:n.cert;return t?_e.createElement(_e.Fragment,null,_e.createElement("h4",{key:"name"},"Server Certificate"),_e.createElement("table",{className:"certificate-table"},_e.createElement("tbody",null,_e.createElement("tr",null,_e.createElement("td",null,"Type"),_e.createElement("td",null,t.keyinfo[0],", ",t.keyinfo[1]," bits")),_e.createElement("tr",null,_e.createElement("td",null,"SHA256 digest"),_e.createElement("td",null,t.sha256)),_e.createElement("tr",null,_e.createElement("td",null,"Valid from"),_e.createElement("td",null,Yi(t.notbefore,{milliseconds:!1}))),_e.createElement("tr",null,_e.createElement("td",null,"Valid to"),_e.createElement("td",null,Yi(t.notafter,{milliseconds:!1}))),_e.createElement("tr",null,_e.createElement("td",null,"Subject Alternative Names"),_e.createElement("td",null,t.altnames.join(", "))),_e.createElement("tr",null,_e.createElement("td",null,"Subject"),_e.createElement("td",null,lO(t.subject))),_e.createElement("tr",null,_e.createElement("td",null,"Issuer"),_e.createElement("td",null,lO(t.issuer))),_e.createElement("tr",null,_e.createElement("td",null,"Serial"),_e.createElement("td",null,t.serial))))):_e.createElement(_e.Fragment,null)}o(CI,"CertificateInfo");function Dy({flow:e}){var t;return _e.createElement("section",{className:"detail"},_e.createElement("h4",null,"Client Connection"),_e.createElement(sO,{conn:e.client_conn}),((t=e.server_conn)==null?void 0:t.address)&&_e.createElement(_e.Fragment,null,_e.createElement("h4",null,"Server Connection"),_e.createElement(sO,{conn:e.server_conn})),_e.createElement(CI,{flow:e}))}o(Dy,"Connection");Dy.displayName="Connection";var Vh=de(Ae());function Ry({flow:e}){return Vh.createElement("section",{className:"error"},Vh.createElement("div",{className:"alert alert-warning"},e.error.msg,Vh.createElement("div",null,Vh.createElement("small",null,Yi(e.error.timestamp)))))}o(Ry,"Error");Ry.displayName="Error";var ss=de(Ae());function _I({t:e,deltaTo:t,title:n}){return e?ss.createElement("tr",null,ss.createElement("td",null,n,":"),ss.createElement("td",null,Yi(e),t&&ss.createElement("span",{className:"text-muted"},"(",Gg(1e3*(e-t)),")"))):ss.createElement("tr",null)}o(_I,"TimeStamp");function Fy({flow:e}){var l,d,m,p,x,_;let t;e.type==="http"?t=e.request.timestamp_start:t=e.client_conn.timestamp_start;let n=[{title:"Server conn. initiated",t:(l=e.server_conn)==null?void 0:l.timestamp_start,deltaTo:t},{title:"Server conn. TCP handshake",t:(d=e.server_conn)==null?void 0:d.timestamp_tcp_setup,deltaTo:t},{title:"Server conn. TLS handshake",t:(m=e.server_conn)==null?void 0:m.timestamp_tls_setup,deltaTo:t},{title:"Server conn. closed",t:(p=e.server_conn)==null?void 0:p.timestamp_end,deltaTo:t},{title:"Client conn. established",t:e.client_conn.timestamp_start,deltaTo:e.type==="http"?t:void 0},{title:"Client conn. TLS handshake",t:e.client_conn.timestamp_tls_setup,deltaTo:t},{title:"Client conn. closed",t:e.client_conn.timestamp_end,deltaTo:t}];return e.type==="http"&&n.push({title:"First request byte",t:e.request.timestamp_start},{title:"Request complete",t:e.request.timestamp_end,deltaTo:t},{title:"First response byte",t:(x=e.response)==null?void 0:x.timestamp_start,deltaTo:t},{title:"Response complete",t:(_=e.response)==null?void 0:_.timestamp_end,deltaTo:t}),ss.createElement("section",{className:"timing"},ss.createElement("h4",null,"Timing"),ss.createElement("table",{className:"timing-table"},ss.createElement("tbody",null,n.filter(O=>!!O.t).sort((O,D)=>O.t-D.t).map(O=>ss.createElement(_I,Le({key:O.title},O))))))}o(Fy,"Timing");Fy.displayName="Timing";var au=de(Ae());var Xs=de(Ae()),bp=de(Ae());function Kh({flow:e,messages_meta:t}){let n=qt(),l=nt(O=>O.ui.flow.contentViewFor[e.id+"messages"]||"Auto"),[d,m]=(0,bp.useState)(xy),p=(0,bp.useCallback)(()=>m(Math.max(1024,d*2)),[d]),x=Sy(Br.getContentURL(e,"messages",l,d+1),e.id+t.count),_=(0,bp.useMemo)(()=>x&&JSON.parse(x),[x])||[];return Xs.createElement("div",{className:"contentview"},Xs.createElement("div",{className:"controls"},Xs.createElement("h5",null,t.count," Messages"),Xs.createElement(qh,{value:l,onChange:O=>n(Vg(e.id+"messages",O))})),_.map((O,D)=>{let Y=`fa fa-fw fa-arrow-${O.from_client?"right text-primary":"left text-danger"}`,U=Xs.createElement("div",{key:D},Xs.createElement("small",null,Xs.createElement("i",{className:Y}),Xs.createElement("span",{className:"pull-right"},O.timestamp&&Yi(O.timestamp))),Xs.createElement(_y,{lines:O.lines,maxLines:d,showMore:p}));return d-=O.lines.length,U}))}o(Kh,"Messages");function Iy({flow:e}){return au.createElement("section",{className:"websocket"},au.createElement("h4",null,"WebSocket"),au.createElement(Kh,{flow:e,messages_meta:e.websocket.messages_meta}),au.createElement(bI,{websocket:e.websocket}))}o(Iy,"WebSocket");Iy.displayName="WebSocket";function bI({websocket:e}){if(!e.timestamp_end)return null;let t=e.close_reason?`(${e.close_reason})`:"";return au.createElement("div",null,au.createElement("i",{className:"fa fa-fw fa-window-close text-muted"}),"\xA0 Closed by ",e.closed_by_client?"client":"server"," with code ",e.close_code," ",t,".",au.createElement("small",{className:"pull-right"},Yi(e.timestamp_end)))}o(bI,"CloseSummary");var aO=de(Xn());var Hy=de(Ae());function Wy({flow:e}){return Hy.createElement("section",{className:"tcp"},Hy.createElement("h4",null,"TCP Data"),Hy.createElement(Kh,{flow:e,messages_meta:e.messages_meta}))}o(Wy,"TcpMessages");Wy.displayName="TCP Messages";var uO={request:gS,response:yS,error:Ry,connection:Dy,timing:Fy,websocket:Iy,messages:Wy,dnsrequest:xS,dnsresponse:SS};function By(e){let t;switch(e.type){case"http":t=["request","response","websocket"].filter(n=>e[n]);break;case"tcp":t=["messages"];break;case"dns":t=["request","response"].filter(n=>e[n]).map(n=>"dns"+n);break}return e.error&&t.push("error"),t.push("connection"),t.push("timing"),t}o(By,"tabsForFlow");function CS(){let e=qt(),t=nt(m=>m.flows.byId[m.flows.selected[0]]),n=By(t),l=nt(m=>m.ui.flow.tab);n.indexOf(l)<0&&(l==="response"&&t.error?l="error":l==="error"&&"response"in t?l="response":l=n[0]);let d=uO[l];return Gh.createElement("div",{className:"flow-detail"},Gh.createElement("nav",{className:"nav-tabs nav-tabs-sm"},n.map(m=>Gh.createElement("a",{key:m,href:"#",className:(0,aO.default)({active:l===m}),onClick:p=>{p.preventDefault(),e(ff(m))}},uO[m].displayName))),Gh.createElement(d,{flow:t}))}o(CS,"FlowView");function fO(e){if(e.ctrlKey||e.metaKey)return()=>{};let t=e.key;return e.preventDefault(),(n,l)=>{let d=l().flows,m=d.byId[l().flows.selected[0]];switch(t){case"k":case"ArrowUp":n(df(d,-1));break;case"j":case"ArrowDown":n(df(d,1));break;case" ":case"PageDown":n(df(d,10));break;case"PageUp":n(df(d,-10));break;case"End":n(df(d,1e10));break;case"Home":n(df(d,-1e10));break;case"Escape":l().ui.modal.activeModal?n(my()):n(hf(void 0));break;case"ArrowLeft":{if(!m)break;let p=By(m),x=l().ui.flow.tab,_=p[(Math.max(0,p.indexOf(x))-1+p.length)%p.length];n(ff(_));break}case"Tab":case"ArrowRight":{if(!m)break;let p=By(m),x=l().ui.flow.tab,_=p[(Math.max(0,p.indexOf(x))+1)%p.length];n(ff(_));break}case"d":{if(!m)return;n(fy(m));break}case"n":{cf("view.flows.create","get","https://example.com/");break}case"D":{if(!m)return;n(cy(m));break}case"a":{m&&m.intercepted&&n(cp(m));break}case"A":{n(ay());break}case"r":{m&&n(pp(m));break}case"v":{m&&m.modified&&n(py(m));break}case"x":{m&&m.intercepted&&n(uy(m));break}case"X":{n(jT());break}case"z":{n(dy());break}default:return}}}o(fO,"onKeyDown");var tm=de(Ae());var Yh=de(Ae()),Xh=de(eu()),cO=de(Xn()),Ep=class extends Yh.Component{constructor(t,n){super(t,n);this.state={applied:!1,startX:0,startY:0},this.onMouseMove=this.onMouseMove.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onDragEnd=this.onDragEnd.bind(this)}onMouseDown(t){this.setState({startX:t.pageX,startY:t.pageY}),window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("mouseup",this.onMouseUp),window.addEventListener("dragend",this.onDragEnd)}onDragEnd(){Xh.default.findDOMNode(this).style.transform="",window.removeEventListener("dragend",this.onDragEnd),window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove)}onMouseUp(t){this.onDragEnd();let n=Xh.default.findDOMNode(this),l=n.previousElementSibling,d=l.offsetHeight+t.pageY-this.state.startY;this.props.axis==="x"&&(d=l.offsetWidth+t.pageX-this.state.startX),l.style.flex=`0 0 ${Math.max(0,d)}px`,n.nextElementSibling.style.flex="1 1 auto",this.setState({applied:!0}),this.onResize()}onMouseMove(t){let n=0,l=0;this.props.axis==="x"?n=t.pageX-this.state.startX:l=t.pageY-this.state.startY,Xh.default.findDOMNode(this).style.transform=`translate(${n}px, ${l}px)`}onResize(){window.setTimeout(()=>window.dispatchEvent(new CustomEvent("resize")),1)}reset(t){if(!this.state.applied)return;let n=Xh.default.findDOMNode(this);n.previousElementSibling.style.flex="",n.nextElementSibling.style.flex="",t||this.setState({applied:!1}),this.onResize()}componentWillUnmount(){this.reset(!0)}render(){return Yh.default.createElement("div",{className:(0,cO.default)("splitter",this.props.axis==="x"?"splitter-x":"splitter-y")},Yh.default.createElement("div",{onMouseDown:this.onMouseDown,draggable:"true"}))}};o(Ep,"Splitter"),Ep.defaultProps={axis:"x"};var ls=de(Ae()),Jh=de(Qh()),$y=de(eu());var TO=de(_S());var bS=de(eu()),xO=Symbol("shouldStick"),SO=o(e=>e.scrollTop+e.clientHeight===e.scrollHeight,"isAtBottom"),Uy=o(e=>{var t;return Object.assign((o(t=class extends e{UNSAFE_componentWillUpdate(){let l=bS.default.findDOMNode(this);this[xO]=l.scrollTop&&SO(l),super.UNSAFE_componentWillUpdate&&super.UNSAFE_componentWillUpdate(),super.componentWillUpdate&&super.componentWillUpdate()}componentDidUpdate(){let l=bS.default.findDOMNode(this);this[xO]&&!SO(l)&&(l.scrollTop=l.scrollHeight),super.componentDidUpdate&&super.componentDidUpdate()}},"AutoScrollWrapper"),t.displayName=e.name,t),e)},"default");function Tp(e=void 0){if(!e)return{start:0,end:0,paddingTop:0,paddingBottom:0};let{itemCount:t,rowHeight:n,viewportTop:l,viewportHeight:d,itemHeights:m}=e,p=l+d,x=0,_=0,O=0,D=0;if(m)for(let Y=0,U=0;Yx.flows.sort.desc),l=nt(x=>x.flows.sort.column),d=nt(x=>x.options.web_columns),m=n?"sort-desc":"sort-asc",p=d.map(x=>Mh[x]).filter(x=>x).concat(fp);return Zh.createElement("tr",null,p.map(x=>Zh.createElement("th",{className:(0,CO.default)(`col-${x.name}`,l===x.name&&m),key:x.name,onClick:()=>t(zT(x.name===l&&n?void 0:x.name,x.name!==l?!1:!n))},x.headerName)))},"FlowTableHead"));var kp=de(Ae()),bO=de(Xn());var EO=kp.default.memo(o(function({flow:t,selected:n,highlighted:l}){let d=qt(),m=nt(O=>O.options.web_columns),p=(0,bO.default)({selected:n,highlighted:l,intercepted:t.intercepted,"has-request":t.type==="http"&&t.request,"has-response":t.type==="http"&&t.response}),x=(0,kp.useCallback)(O=>{let D=O.target;for(;D.parentNode;){if(D.classList.contains("col-quickactions"))return;D=D.parentNode}d(hf(t.id))},[t]),_=m.map(O=>Mh[O]).filter(O=>O).concat(fp);return kp.default.createElement("tr",{className:p,onClick:x},_.map(O=>kp.default.createElement(O,{key:O.name,flow:t})))},"FlowRow"));var em=class extends ls.Component{constructor(t,n){super(t,n);this.state={vScroll:Tp()},this.onViewportUpdate=this.onViewportUpdate.bind(this)}UNSAFE_componentWillMount(){window.addEventListener("resize",this.onViewportUpdate)}UNSAFE_componentWillUnmount(){window.removeEventListener("resize",this.onViewportUpdate)}componentDidUpdate(){if(this.onViewportUpdate(),!this.shouldScrollIntoView)return;this.shouldScrollIntoView=!1;let{rowHeight:t,flows:n,selected:l}=this.props,d=$y.default.findDOMNode(this),m=$y.default.findDOMNode(this.refs.head),p=m?m.offsetHeight:0,x=n.indexOf(l)*t+p,_=x+t,O=d.scrollTop,D=d.offsetHeight;x-pO+D&&(d.scrollTop=_-D)}UNSAFE_componentWillReceiveProps(t){t.selected&&t.selected!==this.props.selected&&(this.shouldScrollIntoView=!0)}onViewportUpdate(){let t=$y.default.findDOMNode(this),n=t.scrollTop||0,l=Tp({viewportTop:n,viewportHeight:t.offsetHeight||0,itemCount:this.props.flows.length,rowHeight:this.props.rowHeight});(this.state.viewportTop!==n||!(0,TO.default)(this.state.vScroll,l))&&this.setState({vScroll:l,viewportTop:n})}render(){let{vScroll:t,viewportTop:n}=this.state,{flows:l,selected:d,highlight:m}=this.props,p=m?pf.parse(m):()=>!1;return ls.createElement("div",{className:"flow-table",onScroll:this.onViewportUpdate},ls.createElement("table",null,ls.createElement("thead",{ref:"head",style:{transform:`translateY(${n}px)`}},ls.createElement(_O,null)),ls.createElement("tbody",null,ls.createElement("tr",{style:{height:t.paddingTop}}),l.slice(t.start,t.end).map(x=>ls.createElement(EO,{key:x.id,flow:x,selected:x===d,highlighted:p(x)})),ls.createElement("tr",{style:{height:t.paddingBottom}}))))}};o(em,"FlowTable"),Tc(em,"propTypes",{flows:Jh.default.array.isRequired,rowHeight:Jh.default.number,highlight:Jh.default.string,selected:Jh.default.object}),Tc(em,"defaultProps",{rowHeight:32});var kI=Uy(em),kO=Ai(e=>({flows:e.flows.view,highlight:e.flows.highlight,selected:e.flows.byId[e.flows.selected[0]]}))(kI);function ES(){let e=nt(t=>!!t.flows.byId[t.flows.selected[0]]);return tm.createElement("div",{className:"main-view"},tm.createElement(kO,null),e&&tm.createElement(Ep,{key:"splitter"}),e&&tm.createElement(CS,{key:"flowDetails"}))}o(ES,"MainView");var Mo=de(Ae()),AO=de(Xn());var Jn=de(Ae());var as=de(Ae()),zy=de(eu()),OO=de(Xn());var Qi=de(Ae());var Zi=class extends Qi.Component{constructor(t,n){super(t,n);this.state={doc:Zi.doc}}componentDidMount(){Zi.xhr||(Zi.xhr=kt("/filter-help").then(t=>t.json()),Zi.xhr.catch(()=>{Zi.xhr=null})),this.state.doc||Zi.xhr.then(t=>{Zi.doc=t,this.setState({doc:t})})}render(){let{doc:t}=this.state;return t?Qi.default.createElement("table",{className:"table table-condensed"},Qi.default.createElement("tbody",null,t.commands.map(n=>Qi.default.createElement("tr",{key:n[1],onClick:l=>this.props.selectHandler(n[0].split(" ")[0]+" ")},Qi.default.createElement("td",null,n[0].replace(" ","\xA0")),Qi.default.createElement("td",null,n[1]))),Qi.default.createElement("tr",{key:"docs-link"},Qi.default.createElement("td",{colSpan:2},Qi.default.createElement("a",{href:"https://mitmproxy.org/docs/latest/concepts-filters/",target:"_blank"},Qi.default.createElement("i",{className:"fa fa-external-link"}),"\xA0 mitmproxy docs"))))):Qi.default.createElement("i",{className:"fa fa-spinner fa-spin"})}};o(Zi,"FilterDocs");var bf=class extends as.Component{constructor(t,n){super(t,n);this.state={value:this.props.value,focus:!1,mousefocus:!1},this.onChange=this.onChange.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.selectFilter=this.selectFilter.bind(this)}UNSAFE_componentWillReceiveProps(t){this.setState({value:t.value})}isValid(t){try{return t&&pf.parse(t),!0}catch(n){return!1}}getDesc(){if(!this.state.value)return as.default.createElement(Zi,{selectHandler:this.selectFilter});try{return pf.parse(this.state.value).desc}catch(t){return""+t}}onChange(t){let n=t.target.value;this.setState({value:n}),this.isValid(n)&&this.props.onChange(n)}onFocus(){this.setState({focus:!0})}onBlur(){this.setState({focus:!1})}onMouseEnter(){this.setState({mousefocus:!0})}onMouseLeave(){this.setState({mousefocus:!1})}onKeyDown(t){(t.key==="Escape"||t.key==="Enter")&&(this.blur(),this.setState({mousefocus:!1})),t.stopPropagation()}selectFilter(t){this.setState({value:t}),zy.default.findDOMNode(this.refs.input).focus()}blur(){zy.default.findDOMNode(this.refs.input).blur()}select(){zy.default.findDOMNode(this.refs.input).select()}render(){let{type:t,color:n,placeholder:l}=this.props,{value:d,focus:m,mousefocus:p}=this.state;return as.default.createElement("div",{className:(0,OO.default)("filter-input input-group",{"has-error":!this.isValid(d)})},as.default.createElement("span",{className:"input-group-addon"},as.default.createElement("i",{className:"fa fa-fw fa-"+t,style:{color:n}})),as.default.createElement("input",{type:"text",ref:"input",placeholder:l,className:"form-control",value:d,onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown}),(m||p)&&as.default.createElement("div",{className:"popover bottom",onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave},as.default.createElement("div",{className:"arrow"}),as.default.createElement("div",{className:"popover-content"},this.getDesc())))}};o(bf,"FilterInput");Op.title="Start";function Op(){return Jn.createElement("div",{className:"main-menu"},Jn.createElement("div",{className:"menu-group"},Jn.createElement("div",{className:"menu-content"},Jn.createElement(LI,null),Jn.createElement(NI,null)),Jn.createElement("div",{className:"menu-legend"},"Find")),Jn.createElement("div",{className:"menu-group"},Jn.createElement("div",{className:"menu-content"},Jn.createElement(OI,null),Jn.createElement(PI,null)),Jn.createElement("div",{className:"menu-legend"},"Intercept")))}o(Op,"StartMenu");function OI(){let e=qt(),t=nt(n=>n.options.intercept);return Jn.createElement(bf,{value:t||"",placeholder:"Intercept",type:"pause",color:"hsl(208, 56%, 53%)",onChange:n=>e(vp("intercept",n))})}o(OI,"InterceptInput");function LI(){let e=qt(),t=nt(n=>n.flows.filter);return Jn.createElement(bf,{value:t||"",placeholder:"Search",type:"search",color:"black",onChange:n=>e(sy(n))})}o(LI,"FlowFilterInput");function NI(){let e=qt(),t=nt(n=>n.flows.highlight);return Jn.createElement(bf,{value:t||"",placeholder:"Highlight",type:"tag",color:"hsl(48, 100%, 50%)",onChange:n=>e(ly(n))})}o(NI,"HighlightInput");function PI(){let e=qt();return Jn.createElement(Cr,{className:"btn-sm",title:"[a]ccept all",icon:"fa-forward text-success",onClick:()=>e(ay())},"Resume All")}o(PI,"ResumeAll");var zr=de(Ae());var Ef=de(Ae());function TS({value:e,onChange:t,children:n}){return Ef.createElement("div",{className:"menu-entry"},Ef.createElement("label",null,Ef.createElement("input",{type:"checkbox",checked:e,onChange:t}),n))}o(TS,"MenuToggle");function jy({name:e,children:t}){let n=qt(),l=nt(d=>d.options[e]);return Ef.createElement(TS,{value:!!l,onChange:()=>n(vp(e,!l))},t)}o(jy,"OptionsToggle");function LO(){let e=Vs(),t=nt(n=>n.eventLog.visible);return Ef.createElement(TS,{value:t,onChange:()=>e(mp())},"Display Event Log")}o(LO,"EventlogToggle");function NO(){let e=Vs(),t=nt(n=>n.commandBar.visible);return Ef.createElement(TS,{value:t,onChange:()=>e(wy())},"Display Command Bar")}o(NO,"CommandBarToggle");var kS=de(Ae());function OS({children:e,resource:t}){let n=`https://docs.mitmproxy.org/stable/${t}`;return kS.createElement("a",{target:"_blank",href:n},e||kS.createElement("i",{className:"fa fa-question-circle"}))}o(OS,"DocsLink");var qy=de(Ae());function Po({children:e}){return window.MITMWEB_CONF&&window.MITMWEB_CONF.static?null:qy.createElement(qy.Fragment,null,e)}o(Po,"HideInStatic");Vy.title="Options";function Vy(){let e=qt(),t=o(()=>YT("OptionModal"),"openOptions");return zr.createElement("div",null,zr.createElement(Po,null,zr.createElement("div",{className:"menu-group"},zr.createElement("div",{className:"menu-content"},zr.createElement(Cr,{title:"Open Options",icon:"fa-cogs text-primary",onClick:()=>e(t())},"Edit Options ",zr.createElement("sup",null,"alpha"))),zr.createElement("div",{className:"menu-legend"},"Options Editor")),zr.createElement("div",{className:"menu-group"},zr.createElement("div",{className:"menu-content"},zr.createElement(jy,{name:"anticache"},"Strip cache headers ",zr.createElement(OS,{resource:"overview-features/#anticache"})),zr.createElement(jy,{name:"showhost"},"Use host header for display"),zr.createElement(jy,{name:"ssl_insecure"},"Don't verify server certificates")),zr.createElement("div",{className:"menu-legend"},"Quick Options"))),zr.createElement("div",{className:"menu-group"},zr.createElement("div",{className:"menu-content"},zr.createElement(LO,null),zr.createElement(NO,null)),zr.createElement("div",{className:"menu-legend"},"View Options")))}o(Vy,"OptionMenu");var mi=de(Ae());var PO=mi.memo(o(function(){let t=Vs();return mi.createElement(lu,{className:"pull-left special",text:"File",options:{placement:"bottom-start"}},mi.createElement("li",null,mi.createElement(Cy,{icon:"fa-folder-open",text:"\xA0Open...",onClick:n=>n.stopPropagation(),onOpenFile:n=>{t(KT(n)),document.body.click()}})),mi.createElement(hi,{onClick:()=>t(VT())},mi.createElement("i",{className:"fa fa-fw fa-floppy-o"}),"\xA0Save..."),mi.createElement(hi,{onClick:()=>confirm("Delete all flows?")&&t(dy())},mi.createElement("i",{className:"fa fa-fw fa-trash"}),"\xA0Clear All"),mi.createElement(Po,null,mi.createElement(nO,null),mi.createElement("li",null,mi.createElement("a",{href:"http://mitm.it/",target:"_blank"},mi.createElement("i",{className:"fa fa-fw fa-external-link"}),"\xA0Install Certificates..."))))},"FileMenu"));var lt=de(Ae());var Lp=o((e,t)=>Ma(void 0,null,function*(){let n=yield cf("export",t,`@${e.id}`);n.value?yield navigator.clipboard.writeText(n.value):n.error?alert(n.error):console.error(n)}),"copy");Np.title="Flow";function Np(){let e=qt(),t=nt(n=>n.flows.byId[n.flows.selected[0]]);return t?lt.createElement("div",{className:"flow-menu"},lt.createElement(Po,null,lt.createElement("div",{className:"menu-group"},lt.createElement("div",{className:"menu-content"},lt.createElement(Cr,{title:"[r]eplay flow",icon:"fa-repeat text-primary",onClick:()=>e(pp(t)),disabled:!Qg(t)},"Replay"),lt.createElement(Cr,{title:"[D]uplicate flow",icon:"fa-copy text-info",onClick:()=>e(cy(t))},"Duplicate"),lt.createElement(Cr,{disabled:!t||!t.modified,title:"revert changes to flow [V]",icon:"fa-history text-warning",onClick:()=>e(py(t))},"Revert"),lt.createElement(Cr,{title:"[d]elete flow",icon:"fa-trash text-danger",onClick:()=>e(fy(t))},"Delete"),lt.createElement(RI,{flow:t})),lt.createElement("div",{className:"menu-legend"},"Flow Modification"))),lt.createElement("div",{className:"menu-group"},lt.createElement("div",{className:"menu-content"},lt.createElement(MI,{flow:t}),lt.createElement(AI,{flow:t})),lt.createElement("div",{className:"menu-legend"},"Export")),lt.createElement(Po,null,lt.createElement("div",{className:"menu-group"},lt.createElement("div",{className:"menu-content"},lt.createElement(Cr,{disabled:!t||!t.intercepted,title:"[a]ccept intercepted flow",icon:"fa-play text-success",onClick:()=>e(cp(t))},"Resume"),lt.createElement(Cr,{disabled:!t||!t.intercepted,title:"kill intercepted flow [x]",icon:"fa-times text-danger",onClick:()=>e(uy(t))},"Abort")),lt.createElement("div",{className:"menu-legend"},"Interception")))):lt.createElement("div",null)}o(Np,"FlowMenu");var Ky=o(e=>{let t=window.open(e,"_blank","noopener,noreferrer");t&&(t.opener=null)},"openInNewTab");function MI({flow:e}){var t;if(e.type!=="http")return lt.createElement(Cr,{icon:"fa-download",onClick:()=>0,disabled:!0},"Download");if(e.request.contentLength&&!((t=e.response)==null?void 0:t.contentLength))return lt.createElement(Cr,{icon:"fa-download",onClick:()=>Ky(Br.getContentURL(e,e.request))},"Download");if(e.response){let n=e.response;if(!e.request.contentLength&&e.response.contentLength)return lt.createElement(Cr,{icon:"fa-download",onClick:()=>Ky(Br.getContentURL(e,n))},"Download");if(e.request.contentLength&&e.response.contentLength)return lt.createElement(lu,{text:lt.createElement(Cr,{icon:"fa-download",onClick:()=>1},"Download\u25BE"),options:{placement:"bottom-start"}},lt.createElement(hi,{onClick:()=>Ky(Br.getContentURL(e,e.request))},"Download request"),lt.createElement(hi,{onClick:()=>Ky(Br.getContentURL(e,n))},"Download response"))}return null}o(MI,"DownloadButton");function AI({flow:e}){return lt.createElement(lu,{className:"",text:lt.createElement(Cr,{title:"Export flow.",icon:"fa-clone",onClick:()=>1,disabled:e.type==="tcp"||e.type==="dns"},"Export\u25BE"),options:{placement:"bottom-start"}},lt.createElement(hi,{onClick:()=>Lp(e,"raw_request")},"Copy raw request"),lt.createElement(hi,{onClick:()=>Lp(e,"raw_response")},"Copy raw response"),lt.createElement(hi,{onClick:()=>Lp(e,"raw")},"Copy raw request and response"),lt.createElement(hi,{onClick:()=>Lp(e,"curl")},"Copy as cURL"),lt.createElement(hi,{onClick:()=>Lp(e,"httpie")},"Copy as HTTPie"))}o(AI,"ExportButton");var DI={":red_circle:":"\u{1F534}",":orange_circle:":"\u{1F7E0}",":yellow_circle:":"\u{1F7E1}",":green_circle:":"\u{1F7E2}",":large_blue_circle:":"\u{1F535}",":purple_circle:":"\u{1F7E3}",":brown_circle:":"\u{1F7E4}"};function RI({flow:e}){let t=qt();return lt.createElement(lu,{className:"",text:lt.createElement(Cr,{title:"mark flow",icon:"fa-paint-brush text-success",onClick:()=>1},"Mark\u25BE"),options:{placement:"bottom-start"}},lt.createElement(hi,{onClick:()=>t(Di(e,{marked:""}))},"\u26AA (no marker)"),Object.entries(DI).map(([n,l])=>lt.createElement(hi,{key:n,onClick:()=>t(Di(e,{marked:n}))},l," ",n.replace(/[:_]/g," "))))}o(RI,"MarkButton");var uu=de(Ae());var MO=uu.memo(o(function(){let t=nt(l=>l.connection.state),n=nt(l=>l.connection.message);switch(t){case Zn.INIT:return uu.createElement("span",{className:"connection-indicator init"},"connecting\u2026");case Zn.FETCHING:return uu.createElement("span",{className:"connection-indicator fetching"},"fetching data\u2026");case Zn.ESTABLISHED:return uu.createElement("span",{className:"connection-indicator established"},"connected");case Zn.ERROR:return uu.createElement("span",{className:"connection-indicator error",title:n},"connection lost");case Zn.OFFLINE:return uu.createElement("span",{className:"connection-indicator offline"},"offline");default:let l=t;throw"unknown connection state"}},"ConnectionIndicator"));function LS(){let e=nt(x=>x.flows.selected.filter(_=>_ in x.flows.byId)),[t,n]=(0,Mo.useState)(()=>Op),[l,d]=(0,Mo.useState)(!1),m=[Op,Vy];e.length>0?(l||(n(()=>Np),d(!0)),m.push(Np)):(l&&d(!1),t===Np&&n(()=>Op));function p(x,_){_.preventDefault(),n(()=>x)}return o(p,"handleClick"),Mo.default.createElement("header",null,Mo.default.createElement("nav",{className:"nav-tabs nav-tabs-lg"},Mo.default.createElement(PO,null),m.map(x=>Mo.default.createElement("a",{key:x.title,href:"#",className:(0,AO.default)({active:x===t}),onClick:_=>p(x,_)},x.title)),Mo.default.createElement(Po,null,Mo.default.createElement(MO,null))),Mo.default.createElement("div",null,Mo.default.createElement(t,null)))}o(LS,"Header");var Qe=de(Ae()),DO=de(Xn());var Gy=function(){"use strict";function e(l,d){function m(){this.constructor=l}o(m,"ctor"),m.prototype=d.prototype,l.prototype=new m}o(e,"peg$subclass");function t(l,d,m,p){this.message=l,this.expected=d,this.found=m,this.location=p,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,t)}o(t,"peg$SyntaxError"),e(t,Error);function n(l){var d=arguments.length>1?arguments[1]:{},m=this,p={},x={Expr:gr},_=gr,O=o(function(W,J){return[W,...J]},"peg$c0"),D=o(function(W){return[W]},"peg$c1"),Y=o(function(){return""},"peg$c2"),U={type:"other",description:"string"},X='"',te={type:"literal",value:'"',description:'"\\""'},Q=o(function(W){return W.join("")},"peg$c6"),F="'",M={type:"literal",value:"'",description:`"'"`},R=/^["\\]/,K={type:"class",value:'["\\\\]',description:'["\\\\]'},V={type:"any",description:"any character"},fe=o(function(W){return W},"peg$c12"),ie="\\",he={type:"literal",value:"\\",description:'"\\\\"'},ye=/^['\\]/,xe={type:"class",value:"['\\\\]",description:"['\\\\]"},qe=/^['"\\]/,Je={type:"class",value:`['"\\\\]`,description:`['"\\\\]`},be="n",xt={type:"literal",value:"n",description:'"n"'},Be=o(function(){return` +`?(T.seenCR||T.line++,T.column=1,T.seenCR=!1):B==="\r"||B==="\u2028"||B==="\u2029"?(T.line++,T.column=1,T.seenCR=!0):(T.column++,T.seenCR=!1),H++;return Uo[y]=T,T}o(Hf,"peg$computePosDetails");function ro(y,T){var H=Hf(y),B=Hf(T);return{start:{offset:y,line:H.line,column:H.column},end:{offset:T,line:B.line,column:B.column}}}o(ro,"peg$computeLocation");function Ne(y){NHn&&(Hn=N,Et=[]),Et.push(y))}o(Ne,"peg$fail");function Ot(y,T,H,B){function ni(Wn){var Kr=1;for(Wn.sort(function(jo,lo){return jo.descriptionlo.description?1:0});Kr1?lo.slice(0,-1).join(", ")+" or "+lo[Wn.length-1]:lo[0],ws=Kr?'"'+jo(Kr)+'"':"end of input","Expected "+_u+" but "+ws+" found."}return o(Rr,"buildMessage"),T!==null&&ni(T),new t(y!==null?y:Rr(T,H),T,H,B)}o(Ot,"peg$buildException");function ms(){var y,T,H,B;return ae++,y=N,T=En(),T!==p?(H=pr(),H!==p?(B=En(),B!==p?(Re=y,T=D(H),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),ae--,y===p&&(T=p,ae===0&&Ne(O)),y}o(ms,"peg$parsestart");function We(){var y,T;return ae++,U.test(l.charAt(N))?(y=l.charAt(N),N++):(y=p,ae===0&&Ne(X)),ae--,y===p&&(T=p,ae===0&&Ne(Y)),y}o(We,"peg$parsews");function ll(){var y,T;return ae++,Q.test(l.charAt(N))?(y=l.charAt(N),N++):(y=p,ae===0&&Ne(F)),ae--,y===p&&(T=p,ae===0&&Ne(te)),y}o(ll,"peg$parsecc");function En(){var y,T;for(ae++,y=[],T=We();T!==p;)y.push(T),T=We();return ae--,y===p&&(T=p,ae===0&&Ne(M)),y}o(En,"peg$parse__");function pr(){var y,T,H,B,ni,Rr;return y=N,T=al(),T!==p?(H=En(),H!==p?(l.charCodeAt(N)===124?(B=R,N++):(B=p,ae===0&&Ne(K)),B!==p?(ni=En(),ni!==p?(Rr=pr(),Rr!==p?(Re=y,T=V(T,Rr),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p&&(y=al()),y}o(pr,"peg$parseOrExpr");function al(){var y,T,H,B,ni,Rr;if(y=N,T=ul(),T!==p?(H=En(),H!==p?(l.charCodeAt(N)===38?(B=fe,N++):(B=p,ae===0&&Ne(ie)),B!==p?(ni=En(),ni!==p?(Rr=al(),Rr!==p?(Re=y,T=he(T,Rr),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p){if(y=N,T=ul(),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=al(),B!==p?(Re=y,T=he(T,B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;y===p&&(y=ul())}return y}o(al,"peg$parseAndExpr");function ul(){var y,T,H,B;return y=N,l.charCodeAt(N)===33?(T=ye,N++):(T=p,ae===0&&Ne(xe)),T!==p?(H=En(),H!==p?(B=ul(),B!==p?(Re=y,T=qe(B),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p&&(y=Wf()),y}o(ul,"peg$parseNotExpr");function Wf(){var y,T,H,B,ni,Rr;return y=N,l.charCodeAt(N)===40?(T=Je,N++):(T=p,ae===0&&Ne(be)),T!==p?(H=En(),H!==p?(B=pr(),B!==p?(ni=En(),ni!==p?(l.charCodeAt(N)===41?(Rr=xt,N++):(Rr=p,ae===0&&Ne(Be)),Rr!==p?(Re=y,T=Ve(B),y=T):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p)):(N=y,y=p),y===p&&(y=Bf()),y}o(Wf,"peg$parseBindingExpr");function Bf(){var y,T,H,B;if(y=N,l.substr(N,4)===Ke?(T=Ke,N+=4):(T=p,ae===0&&Ne(Ge)),T!==p&&(Re=y,T=Xt()),y=T,y===p&&(y=N,l.substr(N,2)===ft?(T=ft,N+=2):(T=p,ae===0&&Ne(Ar)),T!==p&&(Re=y,T=Vt()),y=T,y===p)){if(y=N,l.substr(N,2)===bt?(T=bt,N+=2):(T=p,ae===0&&Ne(St)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=at(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===_r?(T=_r,N+=3):(T=p,ae===0&&Ne(Bt)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Ut(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===ne?(T=ne,N+=3):(T=p,ae===0&&Ne(et)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=br(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===zt?(T=zt,N+=2):(T=p,ae===0&&Ne(jt)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=wu(),B!==p?(Re=y,T=Se(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,8)===Er?(T=Er,N+=8):(T=p,ae===0&&Ne(on)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Dn(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===ei?(T=ei,N+=2):(T=p,ae===0&&Ne(sn)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Kt(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,4)===cr?(T=cr,N+=4):(T=p,ae===0&&Ne(ct)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Ro(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,2)===gr?(T=gr,N+=2):(T=p,ae===0&&Ne(Ri)),T!==p&&(Re=y,T=ln()),y=T,y===p)){if(y=N,l.substr(N,2)===Rn?(T=Rn,N+=2):(T=p,ae===0&&Ne(vi)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=gi(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===Fn?(T=Fn,N+=3):(T=p,ae===0&&Ne(bn)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Qs(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===W?(T=W,N+=3):(T=p,ae===0&&Ne(J)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=me(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,5)===Ee?(T=Ee,N+=5):(T=p,ae===0&&Ne(Qt)),T!==p&&(Re=y,T=$l()),y=T,y===p&&(y=N,l.substr(N,7)===Dt?(T=Dt,N+=7):(T=p,ae===0&&Ne(Dr)),T!==p&&(Re=y,T=Zt()),y=T,y===p))){if(y=N,l.substr(N,7)===ti?(T=ti,N+=7):(T=p,ae===0&&Ne(us)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Ji(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===yi?(T=yi,N+=2):(T=p,ae===0&&Ne(Zs)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=fs(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,2)===an?(T=an,N+=2):(T=p,ae===0&&Ne(Ap)),T!==p&&(Re=y,T=Js()),y=T,y===p&&(y=N,l.substr(N,8)===Tf?(T=Tf,N+=8):(T=p,ae===0&&Ne(el)),T!==p&&(Re=y,T=Dp()),y=T,y===p&&(y=N,l.substr(N,8)===kf?(T=kf,N+=8):(T=p,ae===0&&Ne(cu)),T!==p&&(Re=y,T=Rp()),y=T,y===p&&(y=N,l.substr(N,7)===zl?(T=zl,N+=7):(T=p,ae===0&&Ne(cs)),T!==p&&(Re=y,T=Fp()),y=T,y===p))))){if(y=N,l.substr(N,4)===Of?(T=Of,N+=4):(T=p,ae===0&&Ne(tl)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=pu(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p&&(y=N,l.substr(N,2)===Fo?(T=Fo,N+=2):(T=p,ae===0&&Ne(Ip)),T!==p&&(Re=y,T=Io()),y=T,y===p&&(y=N,l.substr(N,4)===jl?(T=jl,N+=4):(T=p,ae===0&&Ne(Lf)),T!==p&&(Re=y,T=$t()),y=T,y===p))){if(y=N,l.substr(N,3)===Pe?(T=Pe,N+=3):(T=p,ae===0&&Ne(wi)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=du(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,3)===ri?(T=ri,N+=3):(T=p,ae===0&&Ne(vt)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=eo(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===Ho?(T=Ho,N+=2):(T=p,ae===0&&Ne(ql)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=ue(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.substr(N,2)===$e?(T=$e,N+=2):(T=p,ae===0&&Ne(hu)),T!==p){if(H=[],B=We(),B!==p)for(;B!==p;)H.push(B),B=We();else H=p;H!==p?(B=dr(),B!==p?(Re=y,T=Vl(B),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;y===p&&(y=N,l.substr(N,10)===ps?(T=ps,N+=10):(T=p,ae===0&&Ne(rl)),T!==p&&(Re=y,T=mu()),y=T,y===p&&(y=N,T=dr(),T!==p&&(Re=y,T=Vl(T)),y=T))}}}}}}}}}}}}}}}}}return y}o(Bf,"peg$parseExpr");function wu(){var y,T,H,B;if(ae++,y=N,Nf.test(l.charAt(N))?(T=l.charAt(N),N++):(T=p,ae===0&&Ne(Kl)),T===p&&(T=null),T!==p){if(H=[],to.test(l.charAt(N))?(B=l.charAt(N),N++):(B=p,ae===0&&Ne(In)),B!==p)for(;B!==p;)H.push(B),to.test(l.charAt(N))?(B=l.charAt(N),N++):(B=p,ae===0&&Ne(In));else H=p;H!==p?(Nf.test(l.charAt(N))?(B=l.charAt(N),N++):(B=p,ae===0&&Ne(Kl)),B===p&&(B=null),B!==p?(Re=y,T=Pf(H),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;return ae--,y===p&&(T=p,ae===0&&Ne(Ue)),y}o(wu,"peg$parseIntegerLiteral");function dr(){var y,T,H,B;if(ae++,y=N,l.charCodeAt(N)===34?(T=Wo,N++):(T=p,ae===0&&Ne(ds)),T!==p){for(H=[],B=un();B!==p;)H.push(B),B=un();H!==p?(l.charCodeAt(N)===34?(B=Wo,N++):(B=p,ae===0&&Ne(ds)),B!==p?(Re=y,T=Gl(H),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p){if(y=N,l.charCodeAt(N)===39?(T=nl,N++):(T=p,ae===0&&Ne(il)),T!==p){for(H=[],B=Uf();B!==p;)H.push(B),B=Uf();H!==p?(l.charCodeAt(N)===39?(B=nl,N++):(B=p,ae===0&&Ne(il)),B!==p?(Re=y,T=Gl(H),y=T):(N=y,y=p)):(N=y,y=p)}else N=y,y=p;if(y===p)if(y=N,T=N,ae++,H=ll(),ae--,H===p?T=void 0:(N=T,T=p),T!==p){if(H=[],B=Tn(),B!==p)for(;B!==p;)H.push(B),B=Tn();else H=p;H!==p?(Re=y,T=Gl(H),y=T):(N=y,y=p)}else N=y,y=p}return ae--,y===p&&(T=p,ae===0&&Ne(vu)),y}o(dr,"peg$parseStringLiteral");function un(){var y,T,H;return y=N,T=N,ae++,Yl.test(l.charAt(N))?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(Bo)),ae--,H===p?T=void 0:(N=T,T=p),T!==p?(l.length>N?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(ol)),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p),y===p&&(y=N,l.charCodeAt(N)===92?(T=Mf,N++):(T=p,ae===0&&Ne(Xl)),T!==p?(H=$f(),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p)),y}o(un,"peg$parseDoubleStringChar");function Uf(){var y,T,H;return y=N,T=N,ae++,xi.test(l.charAt(N))?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(Af)),ae--,H===p?T=void 0:(N=T,T=p),T!==p?(l.length>N?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(ol)),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p),y===p&&(y=N,l.charCodeAt(N)===92?(T=Mf,N++):(T=p,ae===0&&Ne(Xl)),T!==p?(H=$f(),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p)),y}o(Uf,"peg$parseSingleStringChar");function Tn(){var y,T,H;return y=N,T=N,ae++,H=We(),ae--,H===p?T=void 0:(N=T,T=p),T!==p?(l.length>N?(H=l.charAt(N),N++):(H=p,ae===0&&Ne(ol)),H!==p?(Re=y,T=hs(H),y=T):(N=y,y=p)):(N=y,y=p),y}o(Tn,"peg$parseUnquotedStringChar");function $f(){var y,T;return Df.test(l.charAt(N))?(y=l.charAt(N),N++):(y=p,ae===0&&Ne(Ql)),y===p&&(y=N,l.charCodeAt(N)===110?(T=sl,N++):(T=p,ae===0&&Ne(Hp)),T!==p&&(Re=y,T=Rf()),y=T,y===p&&(y=N,l.charCodeAt(N)===114?(T=Wp,N++):(T=p,ae===0&&Ne(Bp)),T!==p&&(Re=y,T=gu()),y=T,y===p&&(y=N,l.charCodeAt(N)===116?(T=Ff,N++):(T=p,ae===0&&Ne(yu)),T!==p&&(Re=y,T=If()),y=T))),y}o($f,"peg$parseEscapeSequence");function xu(y,T){function H(){return y.apply(this,arguments)||T.apply(this,arguments)}return o(H,"orFilter"),H.desc=y.desc+" or "+T.desc,H}o(xu,"or");function no(y,T){function H(){return y.apply(this,arguments)&&T.apply(this,arguments)}return o(H,"andFilter"),H.desc=y.desc+" and "+T.desc,H}o(no,"and");function fl(y){function T(){return!y.apply(this,arguments)}return o(T,"notFilter"),T.desc="not "+y.desc,T}o(fl,"not");function vs(y){function T(){return y.apply(this,arguments)}return o(T,"bindingFilter"),T.desc="("+y.desc+")",T}o(vs,"binding");function gt(y){return!0}o(gt,"allFilter"),gt.desc="all flows";var Ii=[new RegExp("text/javascript"),new RegExp("application/x-javascript"),new RegExp("application/javascript"),new RegExp("text/css"),new RegExp("image/.*"),new RegExp("font/.*"),new RegExp("application/font.*")];function Zl(y){if(y.response){for(var T=Ks.getContentType(y.response),H=Ii.length;H--;)if(Ii[H].test(T))return!0}return!1}o(Zl,"assetFilter"),Zl.desc="is asset";function $p(y){y=new RegExp(y,"i");function T(H){return!0}return o(T,"bodyFilter"),T.desc="body filters are not implemented yet, see https://github.com/mitmproxy/mitmweb/issues/10",T}o($p,"body");function zo(y){y=new RegExp(y,"i");function T(H){return!0}return o(T,"requestBodyFilter"),T.desc="body filters are not implemented yet, see https://github.com/mitmproxy/mitmweb/issues/10",T}o(zo,"requestBody");function hr(y){y=new RegExp(y,"i");function T(H){return!0}return o(T,"responseBodyFilter"),T.desc="body filters are not implemented yet, see https://github.com/mitmproxy/mitmweb/issues/10",T}o(hr,"responseBody");function zp(y){function T(H){return H.response&&H.response.status_code===y}return o(T,"responseCodeFilter"),T.desc="resp. code is "+y,T}o(zp,"responseCode");function zf(y){y=new RegExp(y,"i");function T(H){return y.test(H.comment)}return o(T,"commentFilter"),T.desc="comment matches "+y,T}o(zf,"comment");function gs(y){y=new RegExp(y,"i");function T(H){return H.request&&(y.test(H.request.host)||y.test(H.request.pretty_host))}return o(T,"domainFilter"),T.desc="domain matches "+y,T}o(gs,"domain");function Jl(y){y=new RegExp(y,"i");function T(H){return!!H.server_conn.address&&y.test(H.server_conn.address[0]+":"+H.server_conn.address[1])}return o(T,"destinationFilter"),T.desc="destination address matches "+y,T}o(Jl,"destination");function io(y){return!!y.error}o(io,"errorFilter"),io.desc="has error";function jp(y){y=new RegExp(y,"i");function T(H){return H.request&&Oo.match_header(H.request,y)||H.response&&Ks.match_header(H.response,y)}return o(T,"headerFilter"),T.desc="header matches "+y,T}o(jp,"header");function ea(y){y=new RegExp(y,"i");function T(H){return H.request&&Oo.match_header(H.request,y)}return o(T,"requestHeaderFilter"),T.desc="req. header matches "+y,T}o(ea,"requestHeader");function Su(y){y=new RegExp(y,"i");function T(H){return H.response&&Ks.match_header(H.response,y)}return o(T,"responseHeaderFilter"),T.desc="resp. header matches "+y,T}o(Su,"responseHeader");function ta(y){return y.type==="http"}o(ta,"httpFilter"),ta.desc="is an HTTP Flow";function ra(y){return y.marked}o(ra,"markedFilter"),ra.desc="is marked";function Cu(y){y=new RegExp(y,"i");function T(H){return y.test(H.marked)}return o(T,"markerFilter"),T.desc="marker matches "+y,T}o(Cu,"marker");function jf(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(H.request.method)}return o(T,"methodFilter"),T.desc="method matches "+y,T}o(jf,"method");function na(y){return y.request&&!y.response}o(na,"noResponseFilter"),na.desc="has no response";function oo(y){return y.is_replay==="request"}o(oo,"clientReplayFilter"),oo.desc="request has been replayed";function Si(y){return y.is_replay==="response"}o(Si,"serverReplayFilter"),Si.desc="response has been replayed";function ys(y){return!!y.is_replay}o(ys,"replayFilter"),ys.desc="flow has been replayed";function qr(y){y=new RegExp(y,"i");function T(H){return!!H.client_conn.peername&&y.test(H.client_conn.peername[0]+":"+H.client_conn.peername[1])}return o(T,"sourceFilter"),T.desc="source address matches "+y,T}o(qr,"source");function cl(y){return!!y.response}o(cl,"responseFilter"),cl.desc="has response";function Vr(y){return y.type==="tcp"}o(Vr,"tcpFilter"),Vr.desc="is a TCP Flow";function so(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(Oo.getContentType(H.request))}return o(T,"requestContentTypeFilter"),T.desc="req. content type matches "+y,T}o(so,"requestContentType");function ia(y){y=new RegExp(y,"i");function T(H){return H.response&&y.test(Ks.getContentType(H.response))}return o(T,"responseContentTypeFilter"),T.desc="resp. content type matches "+y,T}o(ia,"responseContentType");function qp(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(Oo.getContentType(H.request))||H.response&&y.test(Ks.getContentType(H.response))}return o(T,"contentTypeFilter"),T.desc="content type matches "+y,T}o(qp,"contentType");function qf(y){y=new RegExp(y,"i");function T(H){return H.request&&y.test(Oo.pretty_url(H.request))}return o(T,"urlFilter"),T.desc="url matches "+y,T}o(qf,"url");function Vf(y){return!!y.websocket}if(o(Vf,"websocketFilter"),Vf.desc="is a Websocket Flow",$o=_(),$o!==p&&N===l.length)return $o;throw $o!==p&&NAx,icon:()=>ty,method:()=>Nh,path:()=>ry,quickactions:()=>fp,size:()=>ny,status:()=>Ph,time:()=>iy,timestamp:()=>oy,tls:()=>ey});var ur=de(Ae());var Jg=de(Xn());var ey=o(({flow:e})=>ur.default.createElement("td",{className:(0,Jg.default)("col-tls",e.client_conn.tls_established?"col-tls-https":"col-tls-http")}),"tls");ey.headerName="";ey.sortKey=e=>e.type==="http"&&e.request.scheme;var ty=o(({flow:e})=>ur.default.createElement("td",{className:"col-icon"},ur.default.createElement("div",{className:(0,Jg.default)("resource-icon",RT(e))})),"icon");ty.headerName="";ty.sortKey=e=>RT(e);var RT=o(e=>{if(e.type==="tcp"||e.type==="dns")return`resource-icon-${e.type}`;if(e.websocket)return"resource-icon-websocket";if(!e.response)return"resource-icon-plain";var t=Ks.getContentType(e.response)||"";return e.response.status_code===304?"resource-icon-not-modified":300<=e.response.status_code&&e.response.status_code<400?"resource-icon-redirect":t.indexOf("image")>=0?"resource-icon-image":t.indexOf("javascript")>=0?"resource-icon-js":t.indexOf("css")>=0?"resource-icon-css":t.indexOf("html")>=0?"resource-icon-document":"resource-icon-plain"},"getIcon"),FT=o(e=>{var t,n,l,d;switch(e.type){case"http":return Oo.pretty_url(e.request);case"tcp":return`${e.client_conn.peername.join(":")} \u2194 ${(n=(t=e.server_conn)==null?void 0:t.address)==null?void 0:n.join(":")}`;case"dns":return`${e.request.questions.map(m=>`${m.name} ${m.type}`).join(", ")} = ${((d=(l=e.response)==null?void 0:l.answers.map(m=>m.data).join(", "))!=null?d:"...")||"?"}`}},"mainPath"),ry=o(({flow:e})=>{let t;return e.error&&(e.error.msg==="Connection killed."?t=ur.default.createElement("i",{className:"fa fa-fw fa-times pull-right"}):t=ur.default.createElement("i",{className:"fa fa-fw fa-exclamation pull-right"})),ur.default.createElement("td",{className:"col-path"},e.is_replay==="request"&&ur.default.createElement("i",{className:"fa fa-fw fa-repeat pull-right"}),e.intercepted&&ur.default.createElement("i",{className:"fa fa-fw fa-pause pull-right"}),t,ur.default.createElement("span",{className:"marker pull-right"},e.marked),FT(e))},"path");ry.headerName="Path";ry.sortKey=e=>FT(e);var Nh=o(({flow:e})=>ur.default.createElement("td",{className:"col-method"},Nh.sortKey(e)),"method");Nh.headerName="Method";Nh.sortKey=e=>{switch(e.type){case"http":return e.websocket?e.client_conn.tls_established?"WSS":"WS":e.request.method;case"dns":return e.request.op_code;default:return e.type.toUpperCase()}};var Ph=o(({flow:e})=>{let t="darkred";return e.type!=="http"&&e.type!="dns"||!e.response?ur.default.createElement("td",{className:"col-status"}):(100<=e.response.status_code&&e.response.status_code<200?t="green":200<=e.response.status_code&&e.response.status_code<300?t="darkgreen":300<=e.response.status_code&&e.response.status_code<400?t="lightblue":(400<=e.response.status_code&&e.response.status_code<500||500<=e.response.status_code&&e.response.status_code<600)&&(t="red"),ur.default.createElement("td",{className:"col-status",style:{color:t}},Ph.sortKey(e)))},"status");Ph.headerName="Status";Ph.sortKey=e=>{var t,n;switch(e.type){case"http":return(t=e.response)==null?void 0:t.status_code;case"dns":return(n=e.response)==null?void 0:n.response_code;default:return}};var ny=o(({flow:e})=>ur.default.createElement("td",{className:"col-size"},Kg(Mx(e))),"size");ny.headerName="Size";ny.sortKey=e=>Mx(e);var iy=o(({flow:e})=>{let t=Lh(e),n=Px(e);return ur.default.createElement("td",{className:"col-time"},t&&n?Gg(1e3*(n-t)):"...")},"time");iy.headerName="Time";iy.sortKey=e=>{let t=Lh(e),n=Px(e);return t&&n&&n-t};var oy=o(({flow:e})=>{let t=Lh(e);return ur.default.createElement("td",{className:"col-timestamp"},t?Yi(t):"...")},"timestamp");oy.headerName="Start time";oy.sortKey=e=>Lh(e);var fp=o(({flow:e})=>{let t=Vs(),[n,l]=(0,ur.useState)(!1),d=null;return e.intercepted?d=ur.default.createElement("a",{href:"#",className:"quickaction",onClick:()=>t(cp(e))},ur.default.createElement("i",{className:"fa fa-fw fa-play text-success"})):Qg(e)&&(d=ur.default.createElement("a",{href:"#",className:"quickaction",onClick:()=>t(pp(e))},ur.default.createElement("i",{className:"fa fa-fw fa-repeat text-primary"}))),ur.default.createElement("td",{className:(0,Jg.default)("col-quickactions",{hover:n}),onClick:()=>0},ur.default.createElement("div",null,d))},"quickactions");fp.headerName="";fp.sortKey=e=>0;var Ax={icon:ty,method:Nh,path:ry,quickactions:fp,size:ny,status:Ph,time:iy,timestamp:oy,tls:ey};var uF="FLOWS_ADD",fF="FLOWS_UPDATE",IT="FLOWS_REMOVE",cF="FLOWS_RECEIVE",HT="FLOWS_SELECT",WT="FLOWS_SET_FILTER",BT="FLOWS_SET_SORT",UT="FLOWS_SET_HIGHLIGHT",pF="FLOWS_REQUEST_ACTION",dF=Le({highlight:void 0,filter:void 0,sort:{column:void 0,desc:!1},selected:[]},Yg);function Dx(e=dF,t){switch(t.type){case uF:case fF:case IT:case cF:let n=Oh[t.cmd](t.data,$T(e.filter),Rx(e.sort)),l=e.selected;if(t.type===IT&&e.selected.includes(t.data)){if(e.selected.length>1)l=l.filter(d=>d!==t.data);else if(l=[],t.data in e.viewIndex&&e.view.length>1){let d=e.viewIndex[t.data],m;d===e.view.length-1?m=e.view[d-1]:m=e.view[d+1],l.push(m.id)}}return Le(Ft(Le({},e),{selected:l}),up(e,n));case WT:return Le(Ft(Le({},e),{filter:t.filter}),up(e,kx($T(t.filter),Rx(e.sort))));case UT:return Ft(Le({},e),{highlight:t.highlight});case BT:return Le(Ft(Le({},e),{sort:t.sort}),up(e,MT(Rx(t.sort))));case HT:return Ft(Le({},e),{selected:t.flowIds});default:return e}}o(Dx,"reducer");function $T(e){if(!!e)return pf.parse(e)}o($T,"makeFilter");function Rx({column:e,desc:t}){if(!e)return(l,d)=>0;let n=Ax[e].sortKey;return(l,d)=>{let m=n(l),p=n(d);return m>p?t?-1:1:mkt(`/flows/${e.id}/resume`,{method:"POST"})}o(cp,"resume");function ay(){return e=>kt("/flows/resume",{method:"POST"})}o(ay,"resumeAll");function uy(e){return t=>kt(`/flows/${e.id}/kill`,{method:"POST"})}o(uy,"kill");function jT(){return e=>kt("/flows/kill",{method:"POST"})}o(jT,"killAll");function fy(e){return t=>kt(`/flows/${e.id}`,{method:"DELETE"})}o(fy,"remove");function cy(e){return t=>kt(`/flows/${e.id}/duplicate`,{method:"POST"})}o(cy,"duplicate");function pp(e){return t=>kt(`/flows/${e.id}/replay`,{method:"POST"})}o(pp,"replay");function py(e){return t=>kt(`/flows/${e.id}/revert`,{method:"POST"})}o(py,"revert");function Di(e,t){return n=>kt.put(`/flows/${e.id}`,t)}o(Di,"update");function qT(e,t,n){let l=new FormData;return t=new window.Blob([t],{type:"plain/text"}),l.append("file",t),d=>kt(`/flows/${e.id}/${n}/content.data`,{method:"POST",body:l})}o(qT,"uploadContent");function dy(){return e=>kt("/clear",{method:"POST"})}o(dy,"clear");function VT(){return window.location.href="/flows/dump",{type:pF}}o(VT,"download");function KT(e){let t=new FormData;return t.append("file",e),n=>kt("/flows/dump",{method:"POST",body:t})}o(KT,"upload");function hf(e){return{type:HT,flowIds:e?[e]:[]}}o(hf,"select");var hy="UI_HIDE_MODAL",GT="UI_SET_ACTIVE_MODAL",hF={activeModal:void 0};function Fx(e=hF,t){switch(t.type){case GT:return Ft(Le({},e),{activeModal:t.activeModal});case hy:return Ft(Le({},e),{activeModal:void 0});default:return e}}o(Fx,"reducer");function YT(e){return{type:GT,activeModal:e}}o(YT,"setActiveModal");function my(){return{type:hy}}o(my,"hideModal");var Gh=de(Ae());var Wt=de(Ae());var hp=de(Ae());var Ah=de(Ae()),XT=de(Xn()),QT=(()=>{let e=document.createElement("div");return e.setAttribute("contenteditable","PLAINTEXT-ONLY"),e.contentEditable==="plaintext-only"?"plaintext-only":"true"})(),dp=!1,Gs=class extends Ah.Component{constructor(){super(...arguments);this.input=Ah.default.createRef();this.isEditing=o(()=>{var t;return((t=this.input.current)==null?void 0:t.contentEditable)===QT},"isEditing");this.startEditing=o(()=>{if(!this.input.current)return console.error("unreachable");this.isEditing()||(this.suppress_events=!0,this.input.current.blur(),this.input.current.contentEditable=QT,window.requestAnimationFrame(()=>{var l,d;if(!this.input.current)return;this.input.current.focus(),this.suppress_events=!1;let t=document.createRange();t.selectNodeContents(this.input.current);let n=window.getSelection();n==null||n.removeAllRanges(),n==null||n.addRange(t),(d=(l=this.props).onEditStart)==null||d.call(l)}))},"startEditing");this.resetValue=o(()=>{var t,n;if(!this.input.current)return console.error("unreachable");this.input.current.textContent=this.props.content,(n=(t=this.props).onInput)==null||n.call(t,this.props.content)},"resetValue");this.finishEditing=o(()=>{if(!this.input.current)return console.error("unreachable");this.props.onEditDone(this.input.current.textContent||""),this.input.current.blur(),this.input.current.contentEditable="inherit"},"finishEditing");this.onPaste=o(t=>{t.preventDefault();let n=t.clipboardData.getData("text/plain");document.execCommand("insertHTML",!1,n)},"onPaste");this.suppress_events=!1;this.onMouseDown=o(t=>{dp&&console.debug("onMouseDown",this.suppress_events),this.suppress_events=!0,window.addEventListener("mouseup",this.onMouseUp,{once:!0})},"onMouseDown");this.onMouseUp=o(t=>{var d;let n=t.target===this.input.current,l=!((d=window.getSelection())==null?void 0:d.toString());dp&&console.warn("mouseUp",this.suppress_events,n,l),n&&l&&this.startEditing(),this.suppress_events=!1},"onMouseUp");this.onClick=o(t=>{dp&&console.debug("onClick",this.suppress_events)},"onClick");this.onFocus=o(t=>{if(dp&&console.debug("onFocus",this.props.content,this.suppress_events),!this.input.current)throw"unreachable";this.suppress_events||this.startEditing()},"onFocus");this.onInput=o(t=>{var n,l,d;(d=(l=this.props).onInput)==null||d.call(l,((n=this.input.current)==null?void 0:n.textContent)||"")},"onInput");this.onBlur=o(t=>{dp&&console.debug("onBlur",this.props.content,this.suppress_events),!this.suppress_events&&this.finishEditing()},"onBlur");this.onKeyDown=o(t=>{var n,l;switch(dp&&console.debug("keydown",t),t.stopPropagation(),t.key){case"Escape":t.preventDefault(),this.resetValue(),this.finishEditing();break;case"Enter":t.shiftKey||(t.preventDefault(),this.finishEditing());break;default:break}(l=(n=this.props).onKeyDown)==null||l.call(n,t)},"onKeyDown")}render(){let t=(0,XT.default)("inline-input",this.props.className);return Ah.default.createElement("span",{ref:this.input,tabIndex:0,className:t,placeholder:this.props.placeholder,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onInput:this.onInput,onPaste:this.onPaste,onMouseDown:this.onMouseDown,onClick:this.onClick},this.props.content)}componentDidUpdate(t){var n,l;t.content!==this.props.content&&((l=(n=this.props).onInput)==null||l.call(n,this.props.content))}};o(Gs,"ValueEditor");var ZT=de(Xn());function mf(e){let[t,n]=(0,hp.useState)(e.isValid(e.content)),l=(0,hp.useRef)(null),d=o(p=>{var x;e.isValid(p)?e.onEditDone(p):(x=l.current)==null||x.resetValue()},"onEditDone"),m=(0,ZT.default)(e.className,t?"has-success":"has-warning");return hp.default.createElement(Gs,Ft(Le({},e),{className:m,onInput:p=>n(e.isValid(p)),onEditDone:d,ref:l}))}o(mf,"ValidateEditor");function Ix(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}o(Ix,"_defineProperty");function JT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(d){return Object.getOwnPropertyDescriptor(e,d).enumerable})),n.push.apply(n,l)}return n}o(JT,"ownKeys");function vy(e){for(var t=1;tn[l.level])));case rk:case gF:return Le(Le({},e),up(e,Oh[t.cmd](t.data,l=>e.filters[l.level])));default:return e}}o(Ux,"reduce");function ok(e){return{type:ik,filter:e}}o(ok,"toggleFilter");function mp(){return{type:nk}}o(mp,"toggleVisibility");function sk(e,t="web"){let n={id:Math.random().toString(),message:e,level:t};return{type:rk,cmd:"add",data:n}}o(sk,"add");var lk="UI_OPTION_UPDATE_START",ak="UI_OPTION_UPDATE_SUCCESS",uk="UI_OPTION_UPDATE_ERROR",wF={};function $x(e=wF,t){switch(t.type){case lk:return Ft(Le({},e),{[t.option]:{isUpdating:!0,value:t.value,error:!1}});case ak:return Ft(Le({},e),{[t.option]:void 0});case uk:let n=e[t.option].value;return typeof n=="boolean"&&(n=!n),Ft(Le({},e),{[t.option]:{value:n,isUpdating:!1,error:t.error}});case hy:return{};default:return e}}o($x,"reducer");function fk(e,t){return{type:lk,option:e,value:t}}o(fk,"startUpdate");function ck(e){return{type:ak,option:e}}o(ck,"updateSuccess");function pk(e,t){return{type:uk,option:e,error:t}}o(pk,"updateError");var dk=yy({flow:gx,modal:Fx,optionsEditor:$x});var Zn;(function(m){m.INIT="CONNECTION_INIT",m.FETCHING="CONNECTION_FETCHING",m.ESTABLISHED="CONNECTION_ESTABLISHED",m.ERROR="CONNECTION_ERROR",m.OFFLINE="CONNECTION_OFFLINE"})(Zn||(Zn={}));var xF={state:Zn.INIT,message:void 0};function zx(e=xF,t){switch(t.type){case Zn.ESTABLISHED:case Zn.FETCHING:case Zn.ERROR:case Zn.OFFLINE:return{state:t.type,message:t.message};default:return e}}o(zx,"reducer");function hk(){return{type:Zn.FETCHING}}o(hk,"startFetching");function mk(){return{type:Zn.ESTABLISHED}}o(mk,"connectionEstablished");function vk(e){return{type:Zn.ERROR,message:e}}o(vk,"connectionError");var gk={add_upstream_certs_to_client_chain:!1,allow_hosts:[],anticache:!1,anticomp:!1,block_global:!0,block_list:[],block_private:!1,body_size_limit:void 0,cert_passphrase:void 0,certs:[],ciphers_client:void 0,ciphers_server:void 0,client_certs:void 0,client_replay:[],client_replay_concurrency:1,command_history:!0,confdir:"~/.mitmproxy",connection_strategy:"eager",console_focus_follow:!1,content_view_lines_cutoff:512,dns_listen_host:"",dns_listen_port:53,dns_mode:"simple",dns_server:!1,export_preserve_original_ip:!1,http2:!0,ignore_hosts:[],intercept:void 0,intercept_active:!1,keep_host_header:!1,key_size:2048,listen_host:"",listen_port:8080,map_local:[],map_remote:[],mode:"regular",modify_body:[],modify_headers:[],normalize_outbound_headers:!0,onboarding:!0,onboarding_host:"mitm.it",onboarding_port:80,proxy_debug:!1,proxyauth:void 0,rawtcp:!0,readfile_filter:void 0,rfile:void 0,save_stream_file:void 0,save_stream_filter:void 0,scripts:[],server:!0,server_replay:[],server_replay_ignore_content:!1,server_replay_ignore_host:!1,server_replay_ignore_params:[],server_replay_ignore_payload_params:[],server_replay_ignore_port:!1,server_replay_kill_extra:!1,server_replay_nopop:!1,server_replay_refresh:!0,server_replay_use_headers:[],showhost:!1,ssl_insecure:!1,ssl_verify_upstream_trusted_ca:void 0,ssl_verify_upstream_trusted_confdir:void 0,stickyauth:void 0,stickycookie:void 0,stream_large_bodies:void 0,tcp_hosts:[],termlog_verbosity:"info",tls_version_client_max:"UNBOUNDED",tls_version_client_min:"TLS1_2",tls_version_server_max:"UNBOUNDED",tls_version_server_min:"TLS1_2",upstream_auth:void 0,upstream_cert:!0,validate_inbound_headers:!0,view_filter:void 0,view_order:"time",view_order_reversed:!1,web_columns:["tls","icon","path","method","status","size","time"],web_debug:!1,web_host:"127.0.0.1",web_open_browser:!0,web_port:8081,web_static_viewer:"",websocket:!0};var jx="OPTIONS_RECEIVE",qx="OPTIONS_UPDATE";function Vx(e=gk,t){switch(t.type){case jx:let n={};for(let[d,{value:m}]of Object.entries(t.data))n[d]=m;return n;case qx:let l=Le({},e);for(let[d,{value:m}]of Object.entries(t.data))l[d]=m;return l;default:return e}}o(Vx,"reducer");function SF(e,t,n){return Ma(this,null,function*(){try{let l=yield kt.put("/options",{[e]:t});if(l.status===200)n(ck(e));else throw yield l.text()}catch(l){n(pk(e,l))}})}o(SF,"pureSendUpdate");var CF=SF;function vp(e,t){return n=>{n(fk(e,t)),CF(e,t,n)}}o(vp,"update");function yk(){return e=>kt("/options/save",{method:"POST"})}o(yk,"save");var wk="COMMANDBAR_TOGGLE_VISIBILITY",_F={visible:!1};function Kx(e=_F,t){switch(t.type){case wk:return Ft(Le({},e),{visible:!e.visible});default:return e}}o(Kx,"reducer");function wy(){return{type:wk}}o(wy,"toggleVisibility");function xk(e){return function(t){var n=t.dispatch,l=t.getState;return function(d){return function(m){return typeof m=="function"?m(n,l,e):d(m)}}}}o(xk,"createThunkMiddleware");var Sk=xk();Sk.withExtraArgument=xk;var Ck=Sk;var bF=window.MITMWEB_CONF||{static:!1,version:"1.2.3",contentViews:["Auto","Raw"]};function Gx(e=bF,t){return e}o(Gx,"reducer");var EF={},TF=o((e=EF,t)=>{switch(t.type){case jx:return t.data;case qx:return Le(Le({},e),t.data);default:return e}},"reducer"),_k=TF;var kF=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||Bx,OF=yy({commandBar:Kx,eventLog:Ux,flows:Dx,connection:zx,ui:dk,options:Vx,options_meta:_k,conf:Gx}),LF=o(e=>Wx(OF,e,kF(tk(Ck))),"createAppStore"),gp=LF(void 0),qt=o(()=>Vs(),"useAppDispatch"),nt=mx;var Xi=de(Ae());var bk=de(Th()),Ek=de(Xn()),Yx=class extends Xi.Component{constructor(){super(...arguments);this.container=Xi.default.createRef();this.nameInput=Xi.default.createRef();this.valueInput=Xi.default.createRef();this.render=o(()=>{let[t,n]=this.props.item;return Xi.default.createElement("div",{ref:this.container,className:"kv-row",onClick:this.onClick,onKeyDownCapture:this.onKeyDown},Xi.default.createElement(Gs,{ref:this.nameInput,className:"kv-key",content:t,onEditStart:this.props.onEditStart,onEditDone:l=>this.props.onEditDone([l,n])}),":\xA0",Xi.default.createElement(Gs,{ref:this.valueInput,className:"kv-value",content:n,onEditStart:this.props.onEditStart,onEditDone:l=>this.props.onEditDone([t,l]),placeholder:"empty"}))},"render");this.onClick=o(t=>{t.target===this.container.current&&this.props.onClickEmptyArea()},"onClick");this.onKeyDown=o(t=>{var n;t.target===((n=this.valueInput.current)==null?void 0:n.input.current)&&t.key==="Tab"&&this.props.onTabNext()},"onKeyDown")}};o(Yx,"Row");var yp=class extends Xi.Component{constructor(){super(...arguments);this.rowRefs={};this.state={currentList:this.props.data||[],initialList:this.props.data};this.render=o(()=>{this.rowRefs={};let t=this.state.currentList.map((n,l)=>Xi.default.createElement(Yx,{key:l,item:n,onEditStart:()=>this.currentlyEditing=l,onEditDone:d=>this.onEditDone(l,d),onClickEmptyArea:()=>this.onClickEmptyArea(l),onTabNext:()=>this.onTabNext(l),ref:d=>this.rowRefs[l]=d}));return Xi.default.createElement("div",{className:(0,Ek.default)("kv-editor",this.props.className),onMouseDown:this.onMouseDown},t,Xi.default.createElement("div",{onClick:n=>{n.preventDefault(),this.onClickEmptyArea(this.state.currentList.length-1)},className:"kv-add-row fa fa-plus-square-o",role:"button","aria-label":"Add"}))},"render");this.onEditDone=o((t,n)=>{let l=[...this.state.currentList];n[0]?l[t]=n:l.splice(t,1),this.currentlyEditing=void 0,(0,bk.isEqual)(this.state.currentList,l)||this.props.onChange(l),this.setState({currentList:l})},"onEditDone");this.onClickEmptyArea=o(t=>{if(this.justFinishedEditing)return;let n=[...this.state.currentList];n.splice(t+1,0,["",""]),this.setState({currentList:n},()=>{var l,d;return(d=(l=this.rowRefs[t+1])==null?void 0:l.nameInput.current)==null?void 0:d.startEditing()})},"onClickEmptyArea");this.onTabNext=o(t=>{t==this.state.currentList.length-1&&this.onClickEmptyArea(t)},"onTabNext");this.onMouseDown=o(t=>{this.justFinishedEditing=this.currentlyEditing},"onMouseDown")}static getDerivedStateFromProps(t,n){return t.data!==n.initialList?{currentList:t.data||[],initialList:t.data}:null}};o(yp,"KeyValueListEditor");var Yt=de(Ae());var Dh=de(Ae());var xy=80;function Sy(e,t){let[n,l]=(0,Dh.useState)(),[d,m]=(0,Dh.useState)();return(0,Dh.useEffect)(()=>{d&&d.abort();let p=new AbortController;return kt(e,{signal:p.signal}).then(x=>{if(!x.ok)throw`${x.status} ${x.statusText}`.trim();return x.text()}).then(x=>{l(x)}).catch(x=>{p.signal.aborted||l(`Error getting content: ${x}.`)}),m(p),()=>{p.signal.aborted||p.abort()}},[e,t]),n}o(Sy,"useContent");var Rh=de(Ae()),Cy=Rh.default.memo(o(function({icon:t,text:n,className:l,title:d,onOpenFile:m,onClick:p}){let x;return Rh.default.createElement("a",{href:"#",onClick:_=>{x.click(),p&&p(_)},className:l,title:d},Rh.default.createElement("i",{className:"fa fa-fw "+t}),n,Rh.default.createElement("input",{ref:_=>x=_,className:"hidden",type:"file",onChange:_=>{_.preventDefault(),_.target.files&&_.target.files.length>0&&m(_.target.files[0]),x.value=""}}))},"FileChooser"));var wp=de(Ae()),Tk=de(Xn());function Cr({onClick:e,children:t,icon:n,disabled:l,className:d,title:m}){return wp.createElement("button",{className:(0,Tk.default)(d,"btn btn-default"),onClick:l?void 0:e,disabled:l,title:m},n&&wp.createElement(wp.Fragment,null,wp.createElement("i",{className:"fa "+n}),"\xA0"),t)}o(Cr,"Button");var Ih=de(Ae()),Mk=de(Ae());var Fh=de(Ae()),Ok=de(Xn()),Lk=de(kk()),Nk=de(Th());function Pk(e){return e&&e.replace(/\r\n|\r/g,` +`)}o(Pk,"normalizeLineEndings");var xp=class extends Fh.Component{constructor(t){super(t);this.state={isFocused:!1}}getCodeMirrorInstance(){return this.props.codeMirrorInstance||Lk.default}UNSAFE_componentWillMount(){this.props.path&&console.error("Warning: react-codemirror: the `path` prop has been changed to `name`")}componentDidMount(){let t=this.getCodeMirrorInstance();this.codeMirror=t.fromTextArea(this.textareaNode,this.props.options),this.codeMirror.on("change",this.codemirrorValueChanged.bind(this)),this.codeMirror.on("cursorActivity",this.cursorActivity.bind(this)),this.codeMirror.on("focus",this.focusChanged.bind(this,!0)),this.codeMirror.on("blur",this.focusChanged.bind(this,!1)),this.codeMirror.on("scroll",this.scrollChanged.bind(this)),this.codeMirror.setValue(this.props.defaultValue||this.props.value||"")}componentWillUnmount(){this.codeMirror&&this.codeMirror.toTextArea()}UNSAFE_componentWillReceiveProps(t){if(this.codeMirror&&t.value!==void 0&&t.value!==this.props.value&&Pk(this.codeMirror.getValue())!==Pk(t.value))if(this.props.preserveScrollPosition){var n=this.codeMirror.getScrollInfo();this.codeMirror.setValue(t.value),this.codeMirror.scrollTo(n.left,n.top)}else this.codeMirror.setValue(t.value);if(typeof t.options=="object")for(let l in t.options)t.options.hasOwnProperty(l)&&this.setOptionIfChanged(l,t.options[l])}setOptionIfChanged(t,n){let l=this.codeMirror.getOption(t);Nk.default.isEqual(l,n)||this.codeMirror.setOption(t,n)}getCodeMirror(){return this.codeMirror}focus(){this.codeMirror&&this.codeMirror.focus()}focusChanged(t){this.setState({isFocused:t}),this.props.onFocusChange&&this.props.onFocusChange(t)}cursorActivity(t){this.props.onCursorActivity&&this.props.onCursorActivity(t)}scrollChanged(t){this.props.onScroll&&this.props.onScroll(t.getScrollInfo())}codemirrorValueChanged(t,n){this.props.onChange&&n.origin!=="setValue"&&this.props.onChange(t.getValue(),n)}render(){let t=(0,Ok.default)("ReactCodeMirror",this.state.isFocused?"ReactCodeMirror--focused":null,this.props.className);return Fh.createElement("div",{className:t},Fh.createElement("textarea",{ref:n=>this.textareaNode=n,name:this.props.name||this.props.path,defaultValue:this.props.value,autoComplete:"off",autoFocus:this.props.autoFocus}))}};o(xp,"CodeMirror"),xp.defaultProps={preserveScrollPosition:!1};var Hh=class extends Mk.Component{constructor(){super(...arguments);this.editor=Ih.createRef();this.getContent=o(()=>{var t;return(t=this.editor.current)==null?void 0:t.codeMirror.getValue()},"getContent");this.render=o(()=>{let t={lineNumbers:!0};return Ih.createElement("div",{className:"codeeditor",onKeyDown:n=>n.stopPropagation()},Ih.createElement(xp,{ref:this.editor,value:this.props.initialContent,onChange:()=>0,options:t}))},"render")}};o(Hh,"CodeEditor");var vf=de(Ae()),NF=vf.default.memo(o(function({lines:t,maxLines:n,showMore:l}){return t.length===0?null:vf.default.createElement("pre",null,t.map((d,m)=>m===n?vf.default.createElement("button",{key:"showmore",onClick:l,className:"btn btn-xs btn-info"},vf.default.createElement("i",{className:"fa fa-angle-double-down","aria-hidden":"true"})," Show more"):vf.default.createElement("div",{key:m},d.map(([p,x],_)=>vf.default.createElement("span",{key:_,className:p},x)))))},"LineRenderer")),_y=NF;var _f=de(Ae());var di=de(Ae());var by=de(Ae());var Zx=o(function(t){return t.reduce(function(n,l){var d=l[0],m=l[1];return n[d]=m,n},{})},"fromEntries"),Jx=typeof window!="undefined"&&window.document&&window.document.createElement?by.useLayoutEffect:by.useEffect;var su=de(Ae());var Ur="top",Sn="bottom",rn="right",nn="left",Ey="auto",ru=[Ur,Sn,rn,nn],Il="start",Ty="end",Ak="clippingParents",ky="viewport",Sp="popper",Dk="reference",eS=ru.reduce(function(e,t){return e.concat([t+"-"+Il,t+"-"+Ty])},[]),Oy=[].concat(ru,[Ey]).reduce(function(e,t){return e.concat([t,t+"-"+Il,t+"-"+Ty])},[]),PF="beforeRead",MF="read",AF="afterRead",DF="beforeMain",RF="main",FF="afterMain",IF="beforeWrite",HF="write",WF="afterWrite",Rk=[PF,MF,AF,DF,RF,FF,IF,HF,WF];function Cn(e){return e?(e.nodeName||"").toLowerCase():null}o(Cn,"getNodeName");function Mr(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}o(Mr,"getWindow");function Hl(e){var t=Mr(e).Element;return e instanceof t||e instanceof Element}o(Hl,"isElement");function $r(e){var t=Mr(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}o($r,"isHTMLElement");function Ly(e){if(typeof ShadowRoot=="undefined")return!1;var t=Mr(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}o(Ly,"isShadowRoot");function BF(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var l=t.styles[n]||{},d=t.attributes[n]||{},m=t.elements[n];!$r(m)||!Cn(m)||(Object.assign(m.style,l),Object.keys(d).forEach(function(p){var x=d[p];x===!1?m.removeAttribute(p):m.setAttribute(p,x===!0?"":x)}))})}o(BF,"applyStyles");function UF(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(l){var d=t.elements[l],m=t.attributes[l]||{},p=Object.keys(t.styles.hasOwnProperty(l)?t.styles[l]:n[l]),x=p.reduce(function(_,O){return _[O]="",_},{});!$r(d)||!Cn(d)||(Object.assign(d.style,x),Object.keys(m).forEach(function(_){d.removeAttribute(_)}))})}}o(UF,"effect");var Fk={name:"applyStyles",enabled:!0,phase:"write",fn:BF,effect:UF,requires:["computeStyles"]};function _n(e){return e.split("-")[0]}o(_n,"getBasePlacement");var nu=Math.round;function Lo(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),l=1,d=1;return $r(e)&&t&&(l=n.width/e.offsetWidth||1,d=n.height/e.offsetHeight||1),{width:nu(n.width/l),height:nu(n.height/d),top:nu(n.top/d),right:nu(n.right/l),bottom:nu(n.bottom/d),left:nu(n.left/l),x:nu(n.left/l),y:nu(n.top/d)}}o(Lo,"getBoundingClientRect");function gf(e){var t=Lo(e),n=e.offsetWidth,l=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-l)<=1&&(l=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:l}}o(gf,"getLayoutRect");function Wh(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ly(n)){var l=t;do{if(l&&e.isSameNode(l))return!0;l=l.parentNode||l.host}while(l)}return!1}o(Wh,"contains");function pi(e){return Mr(e).getComputedStyle(e)}o(pi,"getComputedStyle");function tS(e){return["table","td","th"].indexOf(Cn(e))>=0}o(tS,"isTableElement");function Mn(e){return((Hl(e)?e.ownerDocument:e.document)||window.document).documentElement}o(Mn,"getDocumentElement");function Wl(e){return Cn(e)==="html"?e:e.assignedSlot||e.parentNode||(Ly(e)?e.host:null)||Mn(e)}o(Wl,"getParentNode");function Ik(e){return!$r(e)||pi(e).position==="fixed"?null:e.offsetParent}o(Ik,"getTrueOffsetParent");function $F(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&$r(e)){var l=pi(e);if(l.position==="fixed")return null}for(var d=Wl(e);$r(d)&&["html","body"].indexOf(Cn(d))<0;){var m=pi(d);if(m.transform!=="none"||m.perspective!=="none"||m.contain==="paint"||["transform","perspective"].indexOf(m.willChange)!==-1||t&&m.willChange==="filter"||t&&m.filter&&m.filter!=="none")return d;d=d.parentNode}return null}o($F,"getContainingBlock");function is(e){for(var t=Mr(e),n=Ik(e);n&&tS(n)&&pi(n).position==="static";)n=Ik(n);return n&&(Cn(n)==="html"||Cn(n)==="body"&&pi(n).position==="static")?t:n||$F(e)||t}o(is,"getOffsetParent");function yf(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}o(yf,"getMainAxisFromPlacement");var No=Math.max,iu=Math.min,Bh=Math.round;function wf(e,t,n){return No(e,iu(t,n))}o(wf,"within");function Uh(){return{top:0,right:0,bottom:0,left:0}}o(Uh,"getFreshSideObject");function $h(e){return Object.assign({},Uh(),e)}o($h,"mergePaddingObject");function zh(e,t){return t.reduce(function(n,l){return n[l]=e,n},{})}o(zh,"expandToHashMap");var zF=o(function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,$h(typeof t!="number"?t:zh(t,ru))},"toPaddingObject");function jF(e){var t,n=e.state,l=e.name,d=e.options,m=n.elements.arrow,p=n.modifiersData.popperOffsets,x=_n(n.placement),_=yf(x),O=[nn,rn].indexOf(x)>=0,D=O?"height":"width";if(!(!m||!p)){var Y=zF(d.padding,n),U=gf(m),X=_==="y"?Ur:nn,te=_==="y"?Sn:rn,Q=n.rects.reference[D]+n.rects.reference[_]-p[_]-n.rects.popper[D],F=p[_]-n.rects.reference[_],M=is(m),R=M?_==="y"?M.clientHeight||0:M.clientWidth||0:0,K=Q/2-F/2,V=Y[X],fe=R-U[D]-Y[te],ie=R/2-U[D]/2+K,he=wf(V,ie,fe),ye=_;n.modifiersData[l]=(t={},t[ye]=he,t.centerOffset=he-ie,t)}}o(jF,"arrow");function qF(e){var t=e.state,n=e.options,l=n.element,d=l===void 0?"[data-popper-arrow]":l;d!=null&&(typeof d=="string"&&(d=t.elements.popper.querySelector(d),!d)||!Wh(t.elements.popper,d)||(t.elements.arrow=d))}o(qF,"effect");var Hk={name:"arrow",enabled:!0,phase:"main",fn:jF,effect:qF,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};var VF={top:"auto",right:"auto",bottom:"auto",left:"auto"};function KF(e){var t=e.x,n=e.y,l=window,d=l.devicePixelRatio||1;return{x:Bh(Bh(t*d)/d)||0,y:Bh(Bh(n*d)/d)||0}}o(KF,"roundOffsetsByDPR");function Wk(e){var t,n=e.popper,l=e.popperRect,d=e.placement,m=e.offsets,p=e.position,x=e.gpuAcceleration,_=e.adaptive,O=e.roundOffsets,D=O===!0?KF(m):typeof O=="function"?O(m):m,Y=D.x,U=Y===void 0?0:Y,X=D.y,te=X===void 0?0:X,Q=m.hasOwnProperty("x"),F=m.hasOwnProperty("y"),M=nn,R=Ur,K=window;if(_){var V=is(n),fe="clientHeight",ie="clientWidth";V===Mr(n)&&(V=Mn(n),pi(V).position!=="static"&&(fe="scrollHeight",ie="scrollWidth")),V=V,d===Ur&&(R=Sn,te-=V[fe]-l.height,te*=x?1:-1),d===nn&&(M=rn,U-=V[ie]-l.width,U*=x?1:-1)}var he=Object.assign({position:p},_&&VF);if(x){var ye;return Object.assign({},he,(ye={},ye[R]=F?"0":"",ye[M]=Q?"0":"",ye.transform=(K.devicePixelRatio||1)<2?"translate("+U+"px, "+te+"px)":"translate3d("+U+"px, "+te+"px, 0)",ye))}return Object.assign({},he,(t={},t[R]=F?te+"px":"",t[M]=Q?U+"px":"",t.transform="",t))}o(Wk,"mapToStyles");function GF(e){var t=e.state,n=e.options,l=n.gpuAcceleration,d=l===void 0?!0:l,m=n.adaptive,p=m===void 0?!0:m,x=n.roundOffsets,_=x===void 0?!0:x;if(!1)var O;var D={placement:_n(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:d};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Wk(Object.assign({},D,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:p,roundOffsets:_})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Wk(Object.assign({},D,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:_})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}o(GF,"computeStyles");var Bk={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:GF,data:{}};var Ny={passive:!0};function YF(e){var t=e.state,n=e.instance,l=e.options,d=l.scroll,m=d===void 0?!0:d,p=l.resize,x=p===void 0?!0:p,_=Mr(t.elements.popper),O=[].concat(t.scrollParents.reference,t.scrollParents.popper);return m&&O.forEach(function(D){D.addEventListener("scroll",n.update,Ny)}),x&&_.addEventListener("resize",n.update,Ny),function(){m&&O.forEach(function(D){D.removeEventListener("scroll",n.update,Ny)}),x&&_.removeEventListener("resize",n.update,Ny)}}o(YF,"effect");var Uk={name:"eventListeners",enabled:!0,phase:"write",fn:o(function(){},"fn"),effect:YF,data:{}};var XF={left:"right",right:"left",bottom:"top",top:"bottom"};function Cp(e){return e.replace(/left|right|bottom|top/g,function(t){return XF[t]})}o(Cp,"getOppositePlacement");var QF={start:"end",end:"start"};function Py(e){return e.replace(/start|end/g,function(t){return QF[t]})}o(Py,"getOppositeVariationPlacement");function xf(e){var t=Mr(e),n=t.pageXOffset,l=t.pageYOffset;return{scrollLeft:n,scrollTop:l}}o(xf,"getWindowScroll");function Sf(e){return Lo(Mn(e)).left+xf(e).scrollLeft}o(Sf,"getWindowScrollBarX");function rS(e){var t=Mr(e),n=Mn(e),l=t.visualViewport,d=n.clientWidth,m=n.clientHeight,p=0,x=0;return l&&(d=l.width,m=l.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(p=l.offsetLeft,x=l.offsetTop)),{width:d,height:m,x:p+Sf(e),y:x}}o(rS,"getViewportRect");function nS(e){var t,n=Mn(e),l=xf(e),d=(t=e.ownerDocument)==null?void 0:t.body,m=No(n.scrollWidth,n.clientWidth,d?d.scrollWidth:0,d?d.clientWidth:0),p=No(n.scrollHeight,n.clientHeight,d?d.scrollHeight:0,d?d.clientHeight:0),x=-l.scrollLeft+Sf(e),_=-l.scrollTop;return pi(d||n).direction==="rtl"&&(x+=No(n.clientWidth,d?d.clientWidth:0)-m),{width:m,height:p,x,y:_}}o(nS,"getDocumentRect");function Cf(e){var t=pi(e),n=t.overflow,l=t.overflowX,d=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+d+l)}o(Cf,"isScrollParent");function My(e){return["html","body","#document"].indexOf(Cn(e))>=0?e.ownerDocument.body:$r(e)&&Cf(e)?e:My(Wl(e))}o(My,"getScrollParent");function ou(e,t){var n;t===void 0&&(t=[]);var l=My(e),d=l===((n=e.ownerDocument)==null?void 0:n.body),m=Mr(l),p=d?[m].concat(m.visualViewport||[],Cf(l)?l:[]):l,x=t.concat(p);return d?x:x.concat(ou(Wl(p)))}o(ou,"listScrollParents");function _p(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}o(_p,"rectToClientRect");function ZF(e){var t=Lo(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}o(ZF,"getInnerBoundingClientRect");function $k(e,t){return t===ky?_p(rS(e)):$r(t)?ZF(t):_p(nS(Mn(e)))}o($k,"getClientRectFromMixedType");function JF(e){var t=ou(Wl(e)),n=["absolute","fixed"].indexOf(pi(e).position)>=0,l=n&&$r(e)?is(e):e;return Hl(l)?t.filter(function(d){return Hl(d)&&Wh(d,l)&&Cn(d)!=="body"}):[]}o(JF,"getClippingParents");function iS(e,t,n){var l=t==="clippingParents"?JF(e):[].concat(t),d=[].concat(l,[n]),m=d[0],p=d.reduce(function(x,_){var O=$k(e,_);return x.top=No(O.top,x.top),x.right=iu(O.right,x.right),x.bottom=iu(O.bottom,x.bottom),x.left=No(O.left,x.left),x},$k(e,m));return p.width=p.right-p.left,p.height=p.bottom-p.top,p.x=p.left,p.y=p.top,p}o(iS,"getClippingRect");function Ys(e){return e.split("-")[1]}o(Ys,"getVariation");function jh(e){var t=e.reference,n=e.element,l=e.placement,d=l?_n(l):null,m=l?Ys(l):null,p=t.x+t.width/2-n.width/2,x=t.y+t.height/2-n.height/2,_;switch(d){case Ur:_={x:p,y:t.y-n.height};break;case Sn:_={x:p,y:t.y+t.height};break;case rn:_={x:t.x+t.width,y:x};break;case nn:_={x:t.x-n.width,y:x};break;default:_={x:t.x,y:t.y}}var O=d?yf(d):null;if(O!=null){var D=O==="y"?"height":"width";switch(m){case Il:_[O]=_[O]-(t[D]/2-n[D]/2);break;case Ty:_[O]=_[O]+(t[D]/2-n[D]/2);break;default:}}return _}o(jh,"computeOffsets");function os(e,t){t===void 0&&(t={});var n=t,l=n.placement,d=l===void 0?e.placement:l,m=n.boundary,p=m===void 0?Ak:m,x=n.rootBoundary,_=x===void 0?ky:x,O=n.elementContext,D=O===void 0?Sp:O,Y=n.altBoundary,U=Y===void 0?!1:Y,X=n.padding,te=X===void 0?0:X,Q=$h(typeof te!="number"?te:zh(te,ru)),F=D===Sp?Dk:Sp,M=e.elements.reference,R=e.rects.popper,K=e.elements[U?F:D],V=iS(Hl(K)?K:K.contextElement||Mn(e.elements.popper),p,_),fe=Lo(M),ie=jh({reference:fe,element:R,strategy:"absolute",placement:d}),he=_p(Object.assign({},R,ie)),ye=D===Sp?he:fe,xe={top:V.top-ye.top+Q.top,bottom:ye.bottom-V.bottom+Q.bottom,left:V.left-ye.left+Q.left,right:ye.right-V.right+Q.right},qe=e.modifiersData.offset;if(D===Sp&&qe){var Je=qe[d];Object.keys(xe).forEach(function(be){var xt=[rn,Sn].indexOf(be)>=0?1:-1,Be=[Ur,Sn].indexOf(be)>=0?"y":"x";xe[be]+=Je[Be]*xt})}return xe}o(os,"detectOverflow");function oS(e,t){t===void 0&&(t={});var n=t,l=n.placement,d=n.boundary,m=n.rootBoundary,p=n.padding,x=n.flipVariations,_=n.allowedAutoPlacements,O=_===void 0?Oy:_,D=Ys(l),Y=D?x?eS:eS.filter(function(te){return Ys(te)===D}):ru,U=Y.filter(function(te){return O.indexOf(te)>=0});U.length===0&&(U=Y);var X=U.reduce(function(te,Q){return te[Q]=os(e,{placement:Q,boundary:d,rootBoundary:m,padding:p})[_n(Q)],te},{});return Object.keys(X).sort(function(te,Q){return X[te]-X[Q]})}o(oS,"computeAutoPlacement");function eI(e){if(_n(e)===Ey)return[];var t=Cp(e);return[Py(e),t,Py(t)]}o(eI,"getExpandedFallbackPlacements");function tI(e){var t=e.state,n=e.options,l=e.name;if(!t.modifiersData[l]._skip){for(var d=n.mainAxis,m=d===void 0?!0:d,p=n.altAxis,x=p===void 0?!0:p,_=n.fallbackPlacements,O=n.padding,D=n.boundary,Y=n.rootBoundary,U=n.altBoundary,X=n.flipVariations,te=X===void 0?!0:X,Q=n.allowedAutoPlacements,F=t.options.placement,M=_n(F),R=M===F,K=_||(R||!te?[Cp(F)]:eI(F)),V=[F].concat(K).reduce(function(at,_r){return at.concat(_n(_r)===Ey?oS(t,{placement:_r,boundary:D,rootBoundary:Y,padding:O,flipVariations:te,allowedAutoPlacements:Q}):_r)},[]),fe=t.rects.reference,ie=t.rects.popper,he=new Map,ye=!0,xe=V[0],qe=0;qe=0,Ve=Be?"width":"height",Ke=os(t,{placement:Je,boundary:D,rootBoundary:Y,altBoundary:U,padding:O}),Ge=Be?xt?rn:nn:xt?Sn:Ur;fe[Ve]>ie[Ve]&&(Ge=Cp(Ge));var Xt=Cp(Ge),ft=[];if(m&&ft.push(Ke[be]<=0),x&&ft.push(Ke[Ge]<=0,Ke[Xt]<=0),ft.every(function(at){return at})){xe=Je,ye=!1;break}he.set(Je,ft)}if(ye)for(var Ar=te?3:1,Vt=o(function(_r){var Bt=V.find(function(Ut){var ne=he.get(Ut);if(ne)return ne.slice(0,_r).every(function(et){return et})});if(Bt)return xe=Bt,"break"},"_loop"),bt=Ar;bt>0;bt--){var St=Vt(bt);if(St==="break")break}t.placement!==xe&&(t.modifiersData[l]._skip=!0,t.placement=xe,t.reset=!0)}}o(tI,"flip");var zk={name:"flip",enabled:!0,phase:"main",fn:tI,requiresIfExists:["offset"],data:{_skip:!1}};function jk(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}o(jk,"getSideOffsets");function qk(e){return[Ur,rn,Sn,nn].some(function(t){return e[t]>=0})}o(qk,"isAnySideFullyClipped");function rI(e){var t=e.state,n=e.name,l=t.rects.reference,d=t.rects.popper,m=t.modifiersData.preventOverflow,p=os(t,{elementContext:"reference"}),x=os(t,{altBoundary:!0}),_=jk(p,l),O=jk(x,d,m),D=qk(_),Y=qk(O);t.modifiersData[n]={referenceClippingOffsets:_,popperEscapeOffsets:O,isReferenceHidden:D,hasPopperEscaped:Y},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":D,"data-popper-escaped":Y})}o(rI,"hide");var Vk={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:rI};function nI(e,t,n){var l=_n(e),d=[nn,Ur].indexOf(l)>=0?-1:1,m=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,p=m[0],x=m[1];return p=p||0,x=(x||0)*d,[nn,rn].indexOf(l)>=0?{x,y:p}:{x:p,y:x}}o(nI,"distanceAndSkiddingToXY");function iI(e){var t=e.state,n=e.options,l=e.name,d=n.offset,m=d===void 0?[0,0]:d,p=Oy.reduce(function(D,Y){return D[Y]=nI(Y,t.rects,m),D},{}),x=p[t.placement],_=x.x,O=x.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=_,t.modifiersData.popperOffsets.y+=O),t.modifiersData[l]=p}o(iI,"offset");var Kk={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:iI};function oI(e){var t=e.state,n=e.name;t.modifiersData[n]=jh({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}o(oI,"popperOffsets");var Gk={name:"popperOffsets",enabled:!0,phase:"read",fn:oI,data:{}};function sS(e){return e==="x"?"y":"x"}o(sS,"getAltAxis");function sI(e){var t=e.state,n=e.options,l=e.name,d=n.mainAxis,m=d===void 0?!0:d,p=n.altAxis,x=p===void 0?!1:p,_=n.boundary,O=n.rootBoundary,D=n.altBoundary,Y=n.padding,U=n.tether,X=U===void 0?!0:U,te=n.tetherOffset,Q=te===void 0?0:te,F=os(t,{boundary:_,rootBoundary:O,padding:Y,altBoundary:D}),M=_n(t.placement),R=Ys(t.placement),K=!R,V=yf(M),fe=sS(V),ie=t.modifiersData.popperOffsets,he=t.rects.reference,ye=t.rects.popper,xe=typeof Q=="function"?Q(Object.assign({},t.rects,{placement:t.placement})):Q,qe={x:0,y:0};if(!!ie){if(m||x){var Je=V==="y"?Ur:nn,be=V==="y"?Sn:rn,xt=V==="y"?"height":"width",Be=ie[V],Ve=ie[V]+F[Je],Ke=ie[V]-F[be],Ge=X?-ye[xt]/2:0,Xt=R===Il?he[xt]:ye[xt],ft=R===Il?-ye[xt]:-he[xt],Ar=t.elements.arrow,Vt=X&&Ar?gf(Ar):{width:0,height:0},bt=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Uh(),St=bt[Je],at=bt[be],_r=wf(0,he[xt],Vt[xt]),Bt=K?he[xt]/2-Ge-_r-St-xe:Xt-_r-St-xe,Ut=K?-he[xt]/2+Ge+_r+at+xe:ft+_r+at+xe,ne=t.elements.arrow&&is(t.elements.arrow),et=ne?V==="y"?ne.clientTop||0:ne.clientLeft||0:0,br=t.modifiersData.offset?t.modifiersData.offset[t.placement][V]:0,zt=ie[V]+Bt-br-et,jt=ie[V]+Ut-br;if(m){var Se=wf(X?iu(Ve,zt):Ve,Be,X?No(Ke,jt):Ke);ie[V]=Se,qe[V]=Se-Be}if(x){var Er=V==="x"?Ur:nn,on=V==="x"?Sn:rn,Dn=ie[fe],ei=Dn+F[Er],sn=Dn-F[on],Kt=wf(X?iu(ei,zt):ei,Dn,X?No(sn,jt):sn);ie[fe]=Kt,qe[fe]=Kt-Dn}}t.modifiersData[l]=qe}}o(sI,"preventOverflow");var Yk={name:"preventOverflow",enabled:!0,phase:"main",fn:sI,requiresIfExists:["offset"]};function lS(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}o(lS,"getHTMLElementScroll");function aS(e){return e===Mr(e)||!$r(e)?xf(e):lS(e)}o(aS,"getNodeScroll");function lI(e){var t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,l=t.height/e.offsetHeight||1;return n!==1||l!==1}o(lI,"isElementScaled");function uS(e,t,n){n===void 0&&(n=!1);var l=$r(t),d=$r(t)&&lI(t),m=Mn(t),p=Lo(e,d),x={scrollLeft:0,scrollTop:0},_={x:0,y:0};return(l||!l&&!n)&&((Cn(t)!=="body"||Cf(m))&&(x=aS(t)),$r(t)?(_=Lo(t,!0),_.x+=t.clientLeft,_.y+=t.clientTop):m&&(_.x=Sf(m))),{x:p.left+x.scrollLeft-_.x,y:p.top+x.scrollTop-_.y,width:p.width,height:p.height}}o(uS,"getCompositeRect");function aI(e){var t=new Map,n=new Set,l=[];e.forEach(function(m){t.set(m.name,m)});function d(m){n.add(m.name);var p=[].concat(m.requires||[],m.requiresIfExists||[]);p.forEach(function(x){if(!n.has(x)){var _=t.get(x);_&&d(_)}}),l.push(m)}return o(d,"sort"),e.forEach(function(m){n.has(m.name)||d(m)}),l}o(aI,"order");function fS(e){var t=aI(e);return Rk.reduce(function(n,l){return n.concat(t.filter(function(d){return d.phase===l}))},[])}o(fS,"orderModifiers");function cS(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}o(cS,"debounce");function pS(e){var t=e.reduce(function(n,l){var d=n[l.name];return n[l.name]=d?Object.assign({},d,l,{options:Object.assign({},d.options,l.options),data:Object.assign({},d.data,l.data)}):l,n},{});return Object.keys(t).map(function(n){return t[n]})}o(pS,"mergeByName");var Xk={placement:"bottom",modifiers:[],strategy:"absolute"};function Qk(){for(var e=arguments.length,t=new Array(e),n=0;ndi.default.createElement("li",{role:"separator",className:"divider"}),"Divider");function hi(l){var d=l,{onClick:e,children:t}=d,n=Hs(d,["onClick","children"]);return di.default.createElement("li",null,di.default.createElement("a",Le({href:"#",onClick:o(p=>{p.preventDefault(),e()},"click")},n),t))}o(hi,"MenuItem");var lu=di.default.memo(o(function(x){var _=x,{text:t,children:n,options:l,className:d,onOpen:m}=_,p=Hs(_,["text","children","options","className","onOpen"]);let[O,D]=(0,di.useState)(null),[Y,U]=(0,di.useState)(!1),[X,te]=(0,di.useState)(null),{styles:Q,attributes:F}=hS(O,X,Le({},l)),M=o(K=>{U(K),m&&m(K)},"setOpen");(0,di.useEffect)(()=>{!X||document.addEventListener("click",K=>{X.contains(K.target)?document.addEventListener("click",()=>M(!1),{once:!0}):(K.preventDefault(),K.stopPropagation(),M(!1))},{once:!0,capture:!0})},[X]);let R;return Y?R=di.default.createElement("ul",Le({className:"dropdown-menu show",ref:te,style:Q.popper},F.popper),n):R=null,di.default.createElement(di.default.Fragment,null,di.default.createElement("a",Le({href:"#",ref:D,className:(0,rO.default)(d,{open:Y}),onClick:K=>{K.preventDefault(),M(!0)}},p),t),R)},"Dropdown"));function qh({value:e,onChange:t}){let n=nt(d=>d.conf.contentViews||[]),l=_f.default.createElement("span",null,_f.default.createElement("i",{className:"fa fa-fw fa-files-o"}),"\xA0",_f.default.createElement("b",null,"View:")," ",e.toLowerCase()," ",_f.default.createElement("span",{className:"caret"}));return _f.default.createElement(lu,{text:l,className:"btn btn-default btn-xs",options:{placement:"top-start"}},n.map(d=>_f.default.createElement(hi,{key:d,onClick:()=>t(d)},d.toLowerCase().replace("_"," "))))}o(qh,"ViewSelector");function mS({flow:e,message:t}){let n=qt(),l=e.request===t?"request":"response",d=nt(te=>te.ui.flow.contentViewFor[e.id+l]||"Auto"),m=(0,Yt.useRef)(null),[p,x]=(0,Yt.useState)(xy),_=(0,Yt.useCallback)(()=>x(Math.max(1024,p*2)),[p]),[O,D]=(0,Yt.useState)(!1),Y;O?Y=Br.getContentURL(e,t):Y=Br.getContentURL(e,t,d,p+1);let U=Sy(Y,t.contentHash),X=(0,Yt.useMemo)(()=>{if(U&&!O)try{return JSON.parse(U)}catch(te){return{description:"Network Error",lines:[[["error",`${U}`]]]}}else return},[U]);if(O)return Yt.default.createElement("div",{className:"contentview",key:"edit"},Yt.default.createElement("div",{className:"controls"},Yt.default.createElement("h5",null,"[Editing]"),Yt.default.createElement(Cr,{onClick:o(()=>Ma(this,null,function*(){var F;let Q=(F=m.current)==null?void 0:F.getContent();yield n(Di(e,{[l]:{content:Q}})),D(!1)}),"save"),icon:"fa-check text-success",className:"btn-xs"},"Done"),"\xA0",Yt.default.createElement(Cr,{onClick:()=>D(!1),icon:"fa-times text-danger",className:"btn-xs"},"Cancel")),Yt.default.createElement(Hh,{ref:m,initialContent:U||""}));{let te=X?X.description:"Loading...";return Yt.default.createElement("div",{className:"contentview",key:"view"},Yt.default.createElement("div",{className:"controls"},Yt.default.createElement("h5",null,te),Yt.default.createElement(Cr,{onClick:()=>D(!0),icon:"fa-edit",className:"btn-xs"},"Edit"),"\xA0",Yt.default.createElement(Cy,{icon:"fa-upload",text:"Replace",title:"Upload a file to replace the content.",onOpenFile:Q=>n(qT(e,Q,l)),className:"btn btn-default btn-xs"}),"\xA0",Yt.default.createElement(qh,{value:d,onChange:Q=>n(Vg(e.id+l,Q))})),vS.matches(t)&&Yt.default.createElement(vS,{flow:e,message:t}),Yt.default.createElement(_y,{lines:(X==null?void 0:X.lines)||[],maxLines:p,showMore:_}))}}o(mS,"HttpMessage");var mI=/^image\/(png|jpe?g|gif|webp|vnc.microsoft.icon|x-icon)$/i;vS.matches=e=>mI.test(Br.getContentType(e)||"");function vS({flow:e,message:t}){return Yt.default.createElement("div",{className:"flowview-image"},Yt.default.createElement("img",{src:Br.getContentURL(e,t),alt:"preview",className:"img-thumbnail"}))}o(vS,"ViewImage");function vI({flow:e}){let t=qt();return Wt.createElement("div",{className:"first-line request-line"},Wt.createElement("div",null,Wt.createElement(mf,{content:e.request.method,onEditDone:n=>t(Di(e,{request:{method:n}})),isValid:n=>n.length>0}),"\xA0",Wt.createElement(mf,{content:Oo.pretty_url(e.request),onEditDone:n=>t(Di(e,{request:Le({path:""},Lx(n))})),isValid:n=>{var l;return!!((l=Lx(n))==null?void 0:l.host)}}),"\xA0",Wt.createElement(mf,{content:e.request.http_version,onEditDone:n=>t(Di(e,{request:{http_version:n}})),isValid:Nx})))}o(vI,"RequestLine");function gI({flow:e}){let t=qt();return Wt.createElement("div",{className:"first-line response-line"},Wt.createElement(mf,{content:e.response.http_version,onEditDone:n=>t(Di(e,{response:{http_version:n}})),isValid:Nx}),"\xA0",Wt.createElement(mf,{content:e.response.status_code+"",onEditDone:n=>t(Di(e,{response:{code:parseInt(n)}})),isValid:n=>/^\d+$/.test(n)}),e.response.http_version!=="HTTP/2.0"&&Wt.createElement(Wt.Fragment,null,"\xA0",Wt.createElement(Gs,{content:e.response.reason,onEditDone:n=>t(Di(e,{response:{msg:n}}))})))}o(gI,"ResponseLine");function yI({flow:e,message:t}){let n=qt(),l=e.request===t?"request":"response";return Wt.createElement(yp,{className:"headers",data:t.headers,onChange:d=>n(Di(e,{[l]:{headers:d}}))})}o(yI,"Headers");function wI({flow:e,message:t}){let n=qt(),l=e.request===t?"request":"response";return!Br.get_first_header(t,/^trailer$/i)?null:Wt.createElement(Wt.Fragment,null,Wt.createElement("hr",null),Wt.createElement("h5",null,"HTTP Trailers"),Wt.createElement(yp,{className:"trailers",data:t.trailers,onChange:m=>n(Di(e,{[l]:{trailers:m}}))}))}o(wI,"Trailers");var iO=Wt.memo(o(function({flow:t,message:n}){let l=t.request===n?"request":"response",d=t.request===n?vI:gI;return Wt.createElement("section",{className:l},Wt.createElement(d,{flow:t}),Wt.createElement(yI,{flow:t,message:n}),Wt.createElement("hr",null),Wt.createElement(mS,{key:t.id+l,flow:t,message:n}),Wt.createElement(wI,{flow:t,message:n}))},"Message"));function gS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return Wt.createElement(iO,{flow:e,message:e.request})}o(gS,"Request");gS.displayName="Request";function yS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return Wt.createElement(iO,{flow:e,message:e.response})}o(yS,"Response");yS.displayName="Response";var it=de(Ae());var xI=o(({message:e})=>it.createElement("div",null,e.query?e.op_code:e.response_code,"\xA0 #",e.id,"\xA0",e.truncation?"(Truncated)":""),"Summary"),SI=o(({message:e})=>it.createElement("table",null,it.createElement("caption",null,e.recursion_desired?"Recursive ":"","Question"),it.createElement("thead",null,it.createElement("tr",null,it.createElement("th",null,"Name"),it.createElement("th",null,"Type"),it.createElement("th",null,"Class"))),it.createElement("tbody",null,e.questions.map(t=>it.createElement("tr",{key:t.name},it.createElement("td",null,t.name),it.createElement("td",null,t.type),it.createElement("td",null,t.class))))),"Questions"),wS=o(({name:e,values:t})=>it.createElement("table",null,it.createElement("caption",null,e),it.createElement("thead",null,it.createElement("tr",null,it.createElement("th",null,"Name"),it.createElement("th",null,"Type"),it.createElement("th",null,"Class"),it.createElement("th",null,"TTL"),it.createElement("th",null,"Data"))),it.createElement("tbody",null,t.map(n=>it.createElement("tr",{key:n.name},it.createElement("td",null,n.name),it.createElement("td",null,n.type),it.createElement("td",null,n.class),it.createElement("td",null,n.ttl),it.createElement("td",null,n.data))))),"ResourceRecords"),oO=o(({type:e,message:t})=>it.createElement("section",{className:e},it.createElement("div",{className:`first-line ${e}-line`},it.createElement(xI,{message:t})),it.createElement(SI,{message:t}),it.createElement("hr",null),it.createElement(wS,{name:`${t.authoritative_answer?"Authoritative ":""}${t.recursion_available?"Recursive ":""}Answer`,values:t.answers}),it.createElement("hr",null),it.createElement(wS,{name:"Authority",values:t.authorities}),it.createElement("hr",null),it.createElement(wS,{name:"Additional",values:t.additionals})),"Message");function xS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return it.createElement(oO,{type:"request",message:e.request})}o(xS,"Request");xS.displayName="Request";function SS(){let e=nt(t=>t.flows.byId[t.flows.selected[0]]);return it.createElement(oO,{type:"response",message:e.response})}o(SS,"Response");SS.displayName="Response";var _e=de(Ae());function sO({conn:e}){var n,l,d;let t=null;return"address"in e?t=_e.createElement(_e.Fragment,null,_e.createElement("tr",null,_e.createElement("td",null,"Address:"),_e.createElement("td",null,(n=e.address)==null?void 0:n.join(":"))),e.peername&&_e.createElement("tr",null,_e.createElement("td",null,"Resolved address:"),_e.createElement("td",null,e.peername.join(":"))),e.sockname&&_e.createElement("tr",null,_e.createElement("td",null,"Source address:"),_e.createElement("td",null,e.sockname.join(":")))):((l=e.peername)==null?void 0:l[0])&&(t=_e.createElement(_e.Fragment,null,_e.createElement("tr",null,_e.createElement("td",null,"Address:"),_e.createElement("td",null,(d=e.peername)==null?void 0:d.join(":"))))),_e.createElement("table",{className:"connection-table"},_e.createElement("tbody",null,t,e.sni?_e.createElement("tr",null,_e.createElement("td",null,_e.createElement("abbr",{title:"TLS Server Name Indication"},"SNI"),":"),_e.createElement("td",null,e.sni)):null,e.alpn?_e.createElement("tr",null,_e.createElement("td",null,_e.createElement("abbr",{title:"ALPN protocol negotiated"},"ALPN"),":"),_e.createElement("td",null,e.alpn)):null,e.tls_version?_e.createElement("tr",null,_e.createElement("td",null,"TLS Version:"),_e.createElement("td",null,e.tls_version)):null,e.cipher?_e.createElement("tr",null,_e.createElement("td",null,"TLS Cipher:"),_e.createElement("td",null,e.cipher)):null))}o(sO,"ConnectionInfo");function lO(e){return _e.createElement("dl",{className:"cert-attributes"},e.map(([t,n])=>_e.createElement(_e.Fragment,{key:t},_e.createElement("dt",null,t),_e.createElement("dd",null,n))))}o(lO,"attrList");function CI({flow:e}){var n;let t=(n=e.server_conn)==null?void 0:n.cert;return t?_e.createElement(_e.Fragment,null,_e.createElement("h4",{key:"name"},"Server Certificate"),_e.createElement("table",{className:"certificate-table"},_e.createElement("tbody",null,_e.createElement("tr",null,_e.createElement("td",null,"Type"),_e.createElement("td",null,t.keyinfo[0],", ",t.keyinfo[1]," bits")),_e.createElement("tr",null,_e.createElement("td",null,"SHA256 digest"),_e.createElement("td",null,t.sha256)),_e.createElement("tr",null,_e.createElement("td",null,"Valid from"),_e.createElement("td",null,Yi(t.notbefore,{milliseconds:!1}))),_e.createElement("tr",null,_e.createElement("td",null,"Valid to"),_e.createElement("td",null,Yi(t.notafter,{milliseconds:!1}))),_e.createElement("tr",null,_e.createElement("td",null,"Subject Alternative Names"),_e.createElement("td",null,t.altnames.join(", "))),_e.createElement("tr",null,_e.createElement("td",null,"Subject"),_e.createElement("td",null,lO(t.subject))),_e.createElement("tr",null,_e.createElement("td",null,"Issuer"),_e.createElement("td",null,lO(t.issuer))),_e.createElement("tr",null,_e.createElement("td",null,"Serial"),_e.createElement("td",null,t.serial))))):_e.createElement(_e.Fragment,null)}o(CI,"CertificateInfo");function Dy({flow:e}){var t;return _e.createElement("section",{className:"detail"},_e.createElement("h4",null,"Client Connection"),_e.createElement(sO,{conn:e.client_conn}),((t=e.server_conn)==null?void 0:t.address)&&_e.createElement(_e.Fragment,null,_e.createElement("h4",null,"Server Connection"),_e.createElement(sO,{conn:e.server_conn})),_e.createElement(CI,{flow:e}))}o(Dy,"Connection");Dy.displayName="Connection";var Vh=de(Ae());function Ry({flow:e}){return Vh.createElement("section",{className:"error"},Vh.createElement("div",{className:"alert alert-warning"},e.error.msg,Vh.createElement("div",null,Vh.createElement("small",null,Yi(e.error.timestamp)))))}o(Ry,"Error");Ry.displayName="Error";var ss=de(Ae());function _I({t:e,deltaTo:t,title:n}){return e?ss.createElement("tr",null,ss.createElement("td",null,n,":"),ss.createElement("td",null,Yi(e),t&&ss.createElement("span",{className:"text-muted"},"(",Gg(1e3*(e-t)),")"))):ss.createElement("tr",null)}o(_I,"TimeStamp");function Fy({flow:e}){var l,d,m,p,x,_;let t;e.type==="http"?t=e.request.timestamp_start:t=e.client_conn.timestamp_start;let n=[{title:"Server conn. initiated",t:(l=e.server_conn)==null?void 0:l.timestamp_start,deltaTo:t},{title:"Server conn. TCP handshake",t:(d=e.server_conn)==null?void 0:d.timestamp_tcp_setup,deltaTo:t},{title:"Server conn. TLS handshake",t:(m=e.server_conn)==null?void 0:m.timestamp_tls_setup,deltaTo:t},{title:"Server conn. closed",t:(p=e.server_conn)==null?void 0:p.timestamp_end,deltaTo:t},{title:"Client conn. established",t:e.client_conn.timestamp_start,deltaTo:e.type==="http"?t:void 0},{title:"Client conn. TLS handshake",t:e.client_conn.timestamp_tls_setup,deltaTo:t},{title:"Client conn. closed",t:e.client_conn.timestamp_end,deltaTo:t}];return e.type==="http"&&n.push({title:"First request byte",t:e.request.timestamp_start},{title:"Request complete",t:e.request.timestamp_end,deltaTo:t},{title:"First response byte",t:(x=e.response)==null?void 0:x.timestamp_start,deltaTo:t},{title:"Response complete",t:(_=e.response)==null?void 0:_.timestamp_end,deltaTo:t}),ss.createElement("section",{className:"timing"},ss.createElement("h4",null,"Timing"),ss.createElement("table",{className:"timing-table"},ss.createElement("tbody",null,n.filter(O=>!!O.t).sort((O,D)=>O.t-D.t).map(O=>ss.createElement(_I,Le({key:O.title},O))))))}o(Fy,"Timing");Fy.displayName="Timing";var au=de(Ae());var Xs=de(Ae()),bp=de(Ae());function Kh({flow:e,messages_meta:t}){let n=qt(),l=nt(O=>O.ui.flow.contentViewFor[e.id+"messages"]||"Auto"),[d,m]=(0,bp.useState)(xy),p=(0,bp.useCallback)(()=>m(Math.max(1024,d*2)),[d]),x=Sy(Br.getContentURL(e,"messages",l,d+1),e.id+t.count),_=(0,bp.useMemo)(()=>x&&JSON.parse(x),[x])||[];return Xs.createElement("div",{className:"contentview"},Xs.createElement("div",{className:"controls"},Xs.createElement("h5",null,t.count," Messages"),Xs.createElement(qh,{value:l,onChange:O=>n(Vg(e.id+"messages",O))})),_.map((O,D)=>{let Y=`fa fa-fw fa-arrow-${O.from_client?"right text-primary":"left text-danger"}`,U=Xs.createElement("div",{key:D},Xs.createElement("small",null,Xs.createElement("i",{className:Y}),Xs.createElement("span",{className:"pull-right"},O.timestamp&&Yi(O.timestamp))),Xs.createElement(_y,{lines:O.lines,maxLines:d,showMore:p}));return d-=O.lines.length,U}))}o(Kh,"Messages");function Iy({flow:e}){return au.createElement("section",{className:"websocket"},au.createElement("h4",null,"WebSocket"),au.createElement(Kh,{flow:e,messages_meta:e.websocket.messages_meta}),au.createElement(bI,{websocket:e.websocket}))}o(Iy,"WebSocket");Iy.displayName="WebSocket";function bI({websocket:e}){if(!e.timestamp_end)return null;let t=e.close_reason?`(${e.close_reason})`:"";return au.createElement("div",null,au.createElement("i",{className:"fa fa-fw fa-window-close text-muted"}),"\xA0 Closed by ",e.closed_by_client?"client":"server"," with code ",e.close_code," ",t,".",au.createElement("small",{className:"pull-right"},Yi(e.timestamp_end)))}o(bI,"CloseSummary");var aO=de(Xn());var Hy=de(Ae());function Wy({flow:e}){return Hy.createElement("section",{className:"tcp"},Hy.createElement("h4",null,"TCP Data"),Hy.createElement(Kh,{flow:e,messages_meta:e.messages_meta}))}o(Wy,"TcpMessages");Wy.displayName="TCP Messages";var uO={request:gS,response:yS,error:Ry,connection:Dy,timing:Fy,websocket:Iy,messages:Wy,dnsrequest:xS,dnsresponse:SS};function By(e){let t;switch(e.type){case"http":t=["request","response","websocket"].filter(n=>e[n]);break;case"tcp":t=["messages"];break;case"dns":t=["request","response"].filter(n=>e[n]).map(n=>"dns"+n);break}return e.error&&t.push("error"),t.push("connection"),t.push("timing"),t}o(By,"tabsForFlow");function CS(){let e=qt(),t=nt(m=>m.flows.byId[m.flows.selected[0]]),n=By(t),l=nt(m=>m.ui.flow.tab);n.indexOf(l)<0&&(l==="response"&&t.error?l="error":l==="error"&&"response"in t?l="response":l=n[0]);let d=uO[l];return Gh.createElement("div",{className:"flow-detail"},Gh.createElement("nav",{className:"nav-tabs nav-tabs-sm"},n.map(m=>Gh.createElement("a",{key:m,href:"#",className:(0,aO.default)({active:l===m}),onClick:p=>{p.preventDefault(),e(ff(m))}},uO[m].displayName))),Gh.createElement(d,{flow:t}))}o(CS,"FlowView");function fO(e){if(e.ctrlKey||e.metaKey)return()=>{};let t=e.key;return e.preventDefault(),(n,l)=>{let d=l().flows,m=d.byId[l().flows.selected[0]];switch(t){case"k":case"ArrowUp":n(df(d,-1));break;case"j":case"ArrowDown":n(df(d,1));break;case" ":case"PageDown":n(df(d,10));break;case"PageUp":n(df(d,-10));break;case"End":n(df(d,1e10));break;case"Home":n(df(d,-1e10));break;case"Escape":l().ui.modal.activeModal?n(my()):n(hf(void 0));break;case"ArrowLeft":{if(!m)break;let p=By(m),x=l().ui.flow.tab,_=p[(Math.max(0,p.indexOf(x))-1+p.length)%p.length];n(ff(_));break}case"Tab":case"ArrowRight":{if(!m)break;let p=By(m),x=l().ui.flow.tab,_=p[(Math.max(0,p.indexOf(x))+1)%p.length];n(ff(_));break}case"d":{if(!m)return;n(fy(m));break}case"n":{cf("view.flows.create","get","https://example.com/");break}case"D":{if(!m)return;n(cy(m));break}case"a":{m&&m.intercepted&&n(cp(m));break}case"A":{n(ay());break}case"r":{m&&n(pp(m));break}case"v":{m&&m.modified&&n(py(m));break}case"x":{m&&m.intercepted&&n(uy(m));break}case"X":{n(jT());break}case"z":{n(dy());break}default:return}}}o(fO,"onKeyDown");var tm=de(Ae());var Yh=de(Ae()),Xh=de(eu()),cO=de(Xn()),Ep=class extends Yh.Component{constructor(t,n){super(t,n);this.state={applied:!1,startX:0,startY:0},this.onMouseMove=this.onMouseMove.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onMouseUp=this.onMouseUp.bind(this),this.onDragEnd=this.onDragEnd.bind(this)}onMouseDown(t){this.setState({startX:t.pageX,startY:t.pageY}),window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("mouseup",this.onMouseUp),window.addEventListener("dragend",this.onDragEnd)}onDragEnd(){Xh.default.findDOMNode(this).style.transform="",window.removeEventListener("dragend",this.onDragEnd),window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove)}onMouseUp(t){this.onDragEnd();let n=Xh.default.findDOMNode(this),l=n.previousElementSibling,d=l.offsetHeight+t.pageY-this.state.startY;this.props.axis==="x"&&(d=l.offsetWidth+t.pageX-this.state.startX),l.style.flex=`0 0 ${Math.max(0,d)}px`,n.nextElementSibling.style.flex="1 1 auto",this.setState({applied:!0}),this.onResize()}onMouseMove(t){let n=0,l=0;this.props.axis==="x"?n=t.pageX-this.state.startX:l=t.pageY-this.state.startY,Xh.default.findDOMNode(this).style.transform=`translate(${n}px, ${l}px)`}onResize(){window.setTimeout(()=>window.dispatchEvent(new CustomEvent("resize")),1)}reset(t){if(!this.state.applied)return;let n=Xh.default.findDOMNode(this);n.previousElementSibling.style.flex="",n.nextElementSibling.style.flex="",t||this.setState({applied:!1}),this.onResize()}componentWillUnmount(){this.reset(!0)}render(){return Yh.default.createElement("div",{className:(0,cO.default)("splitter",this.props.axis==="x"?"splitter-x":"splitter-y")},Yh.default.createElement("div",{onMouseDown:this.onMouseDown,draggable:"true"}))}};o(Ep,"Splitter"),Ep.defaultProps={axis:"x"};var ls=de(Ae()),Jh=de(Qh()),$y=de(eu());var TO=de(_S());var bS=de(eu()),xO=Symbol("shouldStick"),SO=o(e=>e.scrollTop+e.clientHeight===e.scrollHeight,"isAtBottom"),Uy=o(e=>{var t;return Object.assign((o(t=class extends e{UNSAFE_componentWillUpdate(){let l=bS.default.findDOMNode(this);this[xO]=l.scrollTop&&SO(l),super.UNSAFE_componentWillUpdate&&super.UNSAFE_componentWillUpdate(),super.componentWillUpdate&&super.componentWillUpdate()}componentDidUpdate(){let l=bS.default.findDOMNode(this);this[xO]&&!SO(l)&&(l.scrollTop=l.scrollHeight),super.componentDidUpdate&&super.componentDidUpdate()}},"AutoScrollWrapper"),t.displayName=e.name,t),e)},"default");function Tp(e=void 0){if(!e)return{start:0,end:0,paddingTop:0,paddingBottom:0};let{itemCount:t,rowHeight:n,viewportTop:l,viewportHeight:d,itemHeights:m}=e,p=l+d,x=0,_=0,O=0,D=0;if(m)for(let Y=0,U=0;Yx.flows.sort.desc),l=nt(x=>x.flows.sort.column),d=nt(x=>x.options.web_columns),m=n?"sort-desc":"sort-asc",p=d.map(x=>Mh[x]).filter(x=>x).concat(fp);return Zh.createElement("tr",null,p.map(x=>Zh.createElement("th",{className:(0,CO.default)(`col-${x.name}`,l===x.name&&m),key:x.name,onClick:()=>t(zT(x.name===l&&n?void 0:x.name,x.name!==l?!1:!n))},x.headerName)))},"FlowTableHead"));var kp=de(Ae()),bO=de(Xn());var EO=kp.default.memo(o(function({flow:t,selected:n,highlighted:l}){let d=qt(),m=nt(O=>O.options.web_columns),p=(0,bO.default)({selected:n,highlighted:l,intercepted:t.intercepted,"has-request":t.type==="http"&&t.request,"has-response":t.type==="http"&&t.response}),x=(0,kp.useCallback)(O=>{let D=O.target;for(;D.parentNode;){if(D.classList.contains("col-quickactions"))return;D=D.parentNode}d(hf(t.id))},[t]),_=m.map(O=>Mh[O]).filter(O=>O).concat(fp);return kp.default.createElement("tr",{className:p,onClick:x},_.map(O=>kp.default.createElement(O,{key:O.name,flow:t})))},"FlowRow"));var em=class extends ls.Component{constructor(t,n){super(t,n);this.state={vScroll:Tp()},this.onViewportUpdate=this.onViewportUpdate.bind(this)}UNSAFE_componentWillMount(){window.addEventListener("resize",this.onViewportUpdate)}UNSAFE_componentWillUnmount(){window.removeEventListener("resize",this.onViewportUpdate)}componentDidUpdate(){if(this.onViewportUpdate(),!this.shouldScrollIntoView)return;this.shouldScrollIntoView=!1;let{rowHeight:t,flows:n,selected:l}=this.props,d=$y.default.findDOMNode(this),m=$y.default.findDOMNode(this.refs.head),p=m?m.offsetHeight:0,x=n.indexOf(l)*t+p,_=x+t,O=d.scrollTop,D=d.offsetHeight;x-pO+D&&(d.scrollTop=_-D)}UNSAFE_componentWillReceiveProps(t){t.selected&&t.selected!==this.props.selected&&(this.shouldScrollIntoView=!0)}onViewportUpdate(){let t=$y.default.findDOMNode(this),n=t.scrollTop||0,l=Tp({viewportTop:n,viewportHeight:t.offsetHeight||0,itemCount:this.props.flows.length,rowHeight:this.props.rowHeight});(this.state.viewportTop!==n||!(0,TO.default)(this.state.vScroll,l))&&this.setState({vScroll:l,viewportTop:n})}render(){let{vScroll:t,viewportTop:n}=this.state,{flows:l,selected:d,highlight:m}=this.props,p=m?pf.parse(m):()=>!1;return ls.createElement("div",{className:"flow-table",onScroll:this.onViewportUpdate},ls.createElement("table",null,ls.createElement("thead",{ref:"head",style:{transform:`translateY(${n}px)`}},ls.createElement(_O,null)),ls.createElement("tbody",null,ls.createElement("tr",{style:{height:t.paddingTop}}),l.slice(t.start,t.end).map(x=>ls.createElement(EO,{key:x.id,flow:x,selected:x===d,highlighted:p(x)})),ls.createElement("tr",{style:{height:t.paddingBottom}}))))}};o(em,"FlowTable"),Tc(em,"propTypes",{flows:Jh.default.array.isRequired,rowHeight:Jh.default.number,highlight:Jh.default.string,selected:Jh.default.object}),Tc(em,"defaultProps",{rowHeight:32});var kI=Uy(em),kO=Ai(e=>({flows:e.flows.view,highlight:e.flows.highlight,selected:e.flows.byId[e.flows.selected[0]]}))(kI);function ES(){let e=nt(t=>!!t.flows.byId[t.flows.selected[0]]);return tm.createElement("div",{className:"main-view"},tm.createElement(kO,null),e&&tm.createElement(Ep,{key:"splitter"}),e&&tm.createElement(CS,{key:"flowDetails"}))}o(ES,"MainView");var Mo=de(Ae()),AO=de(Xn());var Jn=de(Ae());var as=de(Ae()),zy=de(eu()),OO=de(Xn());var Qi=de(Ae());var Zi=class extends Qi.Component{constructor(t,n){super(t,n);this.state={doc:Zi.doc}}componentDidMount(){Zi.xhr||(Zi.xhr=kt("/filter-help").then(t=>t.json()),Zi.xhr.catch(()=>{Zi.xhr=null})),this.state.doc||Zi.xhr.then(t=>{Zi.doc=t,this.setState({doc:t})})}render(){let{doc:t}=this.state;return t?Qi.default.createElement("table",{className:"table table-condensed"},Qi.default.createElement("tbody",null,t.commands.map(n=>Qi.default.createElement("tr",{key:n[1],onClick:l=>this.props.selectHandler(n[0].split(" ")[0]+" ")},Qi.default.createElement("td",null,n[0].replace(" ","\xA0")),Qi.default.createElement("td",null,n[1]))),Qi.default.createElement("tr",{key:"docs-link"},Qi.default.createElement("td",{colSpan:2},Qi.default.createElement("a",{href:"https://mitmproxy.org/docs/latest/concepts-filters/",target:"_blank"},Qi.default.createElement("i",{className:"fa fa-external-link"}),"\xA0 mitmproxy docs"))))):Qi.default.createElement("i",{className:"fa fa-spinner fa-spin"})}};o(Zi,"FilterDocs");var bf=class extends as.Component{constructor(t,n){super(t,n);this.state={value:this.props.value,focus:!1,mousefocus:!1},this.onChange=this.onChange.bind(this),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),this.onKeyDown=this.onKeyDown.bind(this),this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.selectFilter=this.selectFilter.bind(this)}UNSAFE_componentWillReceiveProps(t){this.setState({value:t.value})}isValid(t){try{return t&&pf.parse(t),!0}catch(n){return!1}}getDesc(){if(!this.state.value)return as.default.createElement(Zi,{selectHandler:this.selectFilter});try{return pf.parse(this.state.value).desc}catch(t){return""+t}}onChange(t){let n=t.target.value;this.setState({value:n}),this.isValid(n)&&this.props.onChange(n)}onFocus(){this.setState({focus:!0})}onBlur(){this.setState({focus:!1})}onMouseEnter(){this.setState({mousefocus:!0})}onMouseLeave(){this.setState({mousefocus:!1})}onKeyDown(t){(t.key==="Escape"||t.key==="Enter")&&(this.blur(),this.setState({mousefocus:!1})),t.stopPropagation()}selectFilter(t){this.setState({value:t}),zy.default.findDOMNode(this.refs.input).focus()}blur(){zy.default.findDOMNode(this.refs.input).blur()}select(){zy.default.findDOMNode(this.refs.input).select()}render(){let{type:t,color:n,placeholder:l}=this.props,{value:d,focus:m,mousefocus:p}=this.state;return as.default.createElement("div",{className:(0,OO.default)("filter-input input-group",{"has-error":!this.isValid(d)})},as.default.createElement("span",{className:"input-group-addon"},as.default.createElement("i",{className:"fa fa-fw fa-"+t,style:{color:n}})),as.default.createElement("input",{type:"text",ref:"input",placeholder:l,className:"form-control",value:d,onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown}),(m||p)&&as.default.createElement("div",{className:"popover bottom",onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave},as.default.createElement("div",{className:"arrow"}),as.default.createElement("div",{className:"popover-content"},this.getDesc())))}};o(bf,"FilterInput");Op.title="Start";function Op(){return Jn.createElement("div",{className:"main-menu"},Jn.createElement("div",{className:"menu-group"},Jn.createElement("div",{className:"menu-content"},Jn.createElement(LI,null),Jn.createElement(NI,null)),Jn.createElement("div",{className:"menu-legend"},"Find")),Jn.createElement("div",{className:"menu-group"},Jn.createElement("div",{className:"menu-content"},Jn.createElement(OI,null),Jn.createElement(PI,null)),Jn.createElement("div",{className:"menu-legend"},"Intercept")))}o(Op,"StartMenu");function OI(){let e=qt(),t=nt(n=>n.options.intercept);return Jn.createElement(bf,{value:t||"",placeholder:"Intercept",type:"pause",color:"hsl(208, 56%, 53%)",onChange:n=>e(vp("intercept",n))})}o(OI,"InterceptInput");function LI(){let e=qt(),t=nt(n=>n.flows.filter);return Jn.createElement(bf,{value:t||"",placeholder:"Search",type:"search",color:"black",onChange:n=>e(sy(n))})}o(LI,"FlowFilterInput");function NI(){let e=qt(),t=nt(n=>n.flows.highlight);return Jn.createElement(bf,{value:t||"",placeholder:"Highlight",type:"tag",color:"hsl(48, 100%, 50%)",onChange:n=>e(ly(n))})}o(NI,"HighlightInput");function PI(){let e=qt();return Jn.createElement(Cr,{className:"btn-sm",title:"[a]ccept all",icon:"fa-forward text-success",onClick:()=>e(ay())},"Resume All")}o(PI,"ResumeAll");var zr=de(Ae());var Ef=de(Ae());function TS({value:e,onChange:t,children:n}){return Ef.createElement("div",{className:"menu-entry"},Ef.createElement("label",null,Ef.createElement("input",{type:"checkbox",checked:e,onChange:t}),n))}o(TS,"MenuToggle");function jy({name:e,children:t}){let n=qt(),l=nt(d=>d.options[e]);return Ef.createElement(TS,{value:!!l,onChange:()=>n(vp(e,!l))},t)}o(jy,"OptionsToggle");function LO(){let e=Vs(),t=nt(n=>n.eventLog.visible);return Ef.createElement(TS,{value:t,onChange:()=>e(mp())},"Display Event Log")}o(LO,"EventlogToggle");function NO(){let e=Vs(),t=nt(n=>n.commandBar.visible);return Ef.createElement(TS,{value:t,onChange:()=>e(wy())},"Display Command Bar")}o(NO,"CommandBarToggle");var kS=de(Ae());function OS({children:e,resource:t}){let n=`https://docs.mitmproxy.org/stable/${t}`;return kS.createElement("a",{target:"_blank",href:n},e||kS.createElement("i",{className:"fa fa-question-circle"}))}o(OS,"DocsLink");var qy=de(Ae());function Po({children:e}){return window.MITMWEB_CONF&&window.MITMWEB_CONF.static?null:qy.createElement(qy.Fragment,null,e)}o(Po,"HideInStatic");Vy.title="Options";function Vy(){let e=qt(),t=o(()=>YT("OptionModal"),"openOptions");return zr.createElement("div",null,zr.createElement(Po,null,zr.createElement("div",{className:"menu-group"},zr.createElement("div",{className:"menu-content"},zr.createElement(Cr,{title:"Open Options",icon:"fa-cogs text-primary",onClick:()=>e(t())},"Edit Options ",zr.createElement("sup",null,"alpha"))),zr.createElement("div",{className:"menu-legend"},"Options Editor")),zr.createElement("div",{className:"menu-group"},zr.createElement("div",{className:"menu-content"},zr.createElement(jy,{name:"anticache"},"Strip cache headers ",zr.createElement(OS,{resource:"overview-features/#anticache"})),zr.createElement(jy,{name:"showhost"},"Use host header for display"),zr.createElement(jy,{name:"ssl_insecure"},"Don't verify server certificates")),zr.createElement("div",{className:"menu-legend"},"Quick Options"))),zr.createElement("div",{className:"menu-group"},zr.createElement("div",{className:"menu-content"},zr.createElement(LO,null),zr.createElement(NO,null)),zr.createElement("div",{className:"menu-legend"},"View Options")))}o(Vy,"OptionMenu");var mi=de(Ae());var PO=mi.memo(o(function(){let t=Vs();return mi.createElement(lu,{className:"pull-left special",text:"File",options:{placement:"bottom-start"}},mi.createElement("li",null,mi.createElement(Cy,{icon:"fa-folder-open",text:"\xA0Open...",onClick:n=>n.stopPropagation(),onOpenFile:n=>{t(KT(n)),document.body.click()}})),mi.createElement(hi,{onClick:()=>t(VT())},mi.createElement("i",{className:"fa fa-fw fa-floppy-o"}),"\xA0Save..."),mi.createElement(hi,{onClick:()=>confirm("Delete all flows?")&&t(dy())},mi.createElement("i",{className:"fa fa-fw fa-trash"}),"\xA0Clear All"),mi.createElement(Po,null,mi.createElement(nO,null),mi.createElement("li",null,mi.createElement("a",{href:"http://mitm.it/",target:"_blank"},mi.createElement("i",{className:"fa fa-fw fa-external-link"}),"\xA0Install Certificates..."))))},"FileMenu"));var lt=de(Ae());var Lp=o((e,t)=>Ma(void 0,null,function*(){let n=yield cf("export",t,`@${e.id}`);n.value?yield navigator.clipboard.writeText(n.value):n.error?alert(n.error):console.error(n)}),"copy");Np.title="Flow";function Np(){let e=qt(),t=nt(n=>n.flows.byId[n.flows.selected[0]]);return t?lt.createElement("div",{className:"flow-menu"},lt.createElement(Po,null,lt.createElement("div",{className:"menu-group"},lt.createElement("div",{className:"menu-content"},lt.createElement(Cr,{title:"[r]eplay flow",icon:"fa-repeat text-primary",onClick:()=>e(pp(t)),disabled:!Qg(t)},"Replay"),lt.createElement(Cr,{title:"[D]uplicate flow",icon:"fa-copy text-info",onClick:()=>e(cy(t))},"Duplicate"),lt.createElement(Cr,{disabled:!t||!t.modified,title:"revert changes to flow [V]",icon:"fa-history text-warning",onClick:()=>e(py(t))},"Revert"),lt.createElement(Cr,{title:"[d]elete flow",icon:"fa-trash text-danger",onClick:()=>e(fy(t))},"Delete"),lt.createElement(RI,{flow:t})),lt.createElement("div",{className:"menu-legend"},"Flow Modification"))),lt.createElement("div",{className:"menu-group"},lt.createElement("div",{className:"menu-content"},lt.createElement(MI,{flow:t}),lt.createElement(AI,{flow:t})),lt.createElement("div",{className:"menu-legend"},"Export")),lt.createElement(Po,null,lt.createElement("div",{className:"menu-group"},lt.createElement("div",{className:"menu-content"},lt.createElement(Cr,{disabled:!t||!t.intercepted,title:"[a]ccept intercepted flow",icon:"fa-play text-success",onClick:()=>e(cp(t))},"Resume"),lt.createElement(Cr,{disabled:!t||!t.intercepted,title:"kill intercepted flow [x]",icon:"fa-times text-danger",onClick:()=>e(uy(t))},"Abort")),lt.createElement("div",{className:"menu-legend"},"Interception")))):lt.createElement("div",null)}o(Np,"FlowMenu");var Ky=o(e=>{let t=window.open(e,"_blank","noopener,noreferrer");t&&(t.opener=null)},"openInNewTab");function MI({flow:e}){var t;if(e.type!=="http")return lt.createElement(Cr,{icon:"fa-download",onClick:()=>0,disabled:!0},"Download");if(e.request.contentLength&&!((t=e.response)==null?void 0:t.contentLength))return lt.createElement(Cr,{icon:"fa-download",onClick:()=>Ky(Br.getContentURL(e,e.request))},"Download");if(e.response){let n=e.response;if(!e.request.contentLength&&e.response.contentLength)return lt.createElement(Cr,{icon:"fa-download",onClick:()=>Ky(Br.getContentURL(e,n))},"Download");if(e.request.contentLength&&e.response.contentLength)return lt.createElement(lu,{text:lt.createElement(Cr,{icon:"fa-download",onClick:()=>1},"Download\u25BE"),options:{placement:"bottom-start"}},lt.createElement(hi,{onClick:()=>Ky(Br.getContentURL(e,e.request))},"Download request"),lt.createElement(hi,{onClick:()=>Ky(Br.getContentURL(e,n))},"Download response"))}return null}o(MI,"DownloadButton");function AI({flow:e}){return lt.createElement(lu,{className:"",text:lt.createElement(Cr,{title:"Export flow.",icon:"fa-clone",onClick:()=>1,disabled:e.type!=="http"},"Export\u25BE"),options:{placement:"bottom-start"}},lt.createElement(hi,{onClick:()=>Lp(e,"raw_request")},"Copy raw request"),lt.createElement(hi,{onClick:()=>Lp(e,"raw_response")},"Copy raw response"),lt.createElement(hi,{onClick:()=>Lp(e,"raw")},"Copy raw request and response"),lt.createElement(hi,{onClick:()=>Lp(e,"curl")},"Copy as cURL"),lt.createElement(hi,{onClick:()=>Lp(e,"httpie")},"Copy as HTTPie"))}o(AI,"ExportButton");var DI={":red_circle:":"\u{1F534}",":orange_circle:":"\u{1F7E0}",":yellow_circle:":"\u{1F7E1}",":green_circle:":"\u{1F7E2}",":large_blue_circle:":"\u{1F535}",":purple_circle:":"\u{1F7E3}",":brown_circle:":"\u{1F7E4}"};function RI({flow:e}){let t=qt();return lt.createElement(lu,{className:"",text:lt.createElement(Cr,{title:"mark flow",icon:"fa-paint-brush text-success",onClick:()=>1},"Mark\u25BE"),options:{placement:"bottom-start"}},lt.createElement(hi,{onClick:()=>t(Di(e,{marked:""}))},"\u26AA (no marker)"),Object.entries(DI).map(([n,l])=>lt.createElement(hi,{key:n,onClick:()=>t(Di(e,{marked:n}))},l," ",n.replace(/[:_]/g," "))))}o(RI,"MarkButton");var uu=de(Ae());var MO=uu.memo(o(function(){let t=nt(l=>l.connection.state),n=nt(l=>l.connection.message);switch(t){case Zn.INIT:return uu.createElement("span",{className:"connection-indicator init"},"connecting\u2026");case Zn.FETCHING:return uu.createElement("span",{className:"connection-indicator fetching"},"fetching data\u2026");case Zn.ESTABLISHED:return uu.createElement("span",{className:"connection-indicator established"},"connected");case Zn.ERROR:return uu.createElement("span",{className:"connection-indicator error",title:n},"connection lost");case Zn.OFFLINE:return uu.createElement("span",{className:"connection-indicator offline"},"offline");default:let l=t;throw"unknown connection state"}},"ConnectionIndicator"));function LS(){let e=nt(x=>x.flows.selected.filter(_=>_ in x.flows.byId)),[t,n]=(0,Mo.useState)(()=>Op),[l,d]=(0,Mo.useState)(!1),m=[Op,Vy];e.length>0?(l||(n(()=>Np),d(!0)),m.push(Np)):(l&&d(!1),t===Np&&n(()=>Op));function p(x,_){_.preventDefault(),n(()=>x)}return o(p,"handleClick"),Mo.default.createElement("header",null,Mo.default.createElement("nav",{className:"nav-tabs nav-tabs-lg"},Mo.default.createElement(PO,null),m.map(x=>Mo.default.createElement("a",{key:x.title,href:"#",className:(0,AO.default)({active:x===t}),onClick:_=>p(x,_)},x.title)),Mo.default.createElement(Po,null,Mo.default.createElement(MO,null))),Mo.default.createElement("div",null,Mo.default.createElement(t,null)))}o(LS,"Header");var Qe=de(Ae()),DO=de(Xn());var Gy=function(){"use strict";function e(l,d){function m(){this.constructor=l}o(m,"ctor"),m.prototype=d.prototype,l.prototype=new m}o(e,"peg$subclass");function t(l,d,m,p){this.message=l,this.expected=d,this.found=m,this.location=p,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,t)}o(t,"peg$SyntaxError"),e(t,Error);function n(l){var d=arguments.length>1?arguments[1]:{},m=this,p={},x={Expr:gr},_=gr,O=o(function(W,J){return[W,...J]},"peg$c0"),D=o(function(W){return[W]},"peg$c1"),Y=o(function(){return""},"peg$c2"),U={type:"other",description:"string"},X='"',te={type:"literal",value:'"',description:'"\\""'},Q=o(function(W){return W.join("")},"peg$c6"),F="'",M={type:"literal",value:"'",description:`"'"`},R=/^["\\]/,K={type:"class",value:'["\\\\]',description:'["\\\\]'},V={type:"any",description:"any character"},fe=o(function(W){return W},"peg$c12"),ie="\\",he={type:"literal",value:"\\",description:'"\\\\"'},ye=/^['\\]/,xe={type:"class",value:"['\\\\]",description:"['\\\\]"},qe=/^['"\\]/,Je={type:"class",value:`['"\\\\]`,description:`['"\\\\]`},be="n",xt={type:"literal",value:"n",description:'"n"'},Be=o(function(){return` `},"peg$c21"),Ve="r",Ke={type:"literal",value:"r",description:'"r"'},Ge=o(function(){return"\r"},"peg$c24"),Xt="t",ft={type:"literal",value:"t",description:'"t"'},Ar=o(function(){return" "},"peg$c27"),Vt={type:"other",description:"whitespace"},bt=/^[ \t\n\r]/,St={type:"class",value:"[ \\t\\n\\r]",description:"[ \\t\\n\\r]"},at={type:"other",description:"control character"},_r=/^[|&!()~"]/,Bt={type:"class",value:'[|&!()~"]',description:'[|&!()~"]'},Ut={type:"other",description:"optional whitespace"},ne=0,et=0,br=[{line:1,column:1,seenCR:!1}],zt=0,jt=[],Se=0,Er;if("startRule"in d){if(!(d.startRule in x))throw new Error(`Can't start parsing from rule "`+d.startRule+'".');_=x[d.startRule]}function on(){return l.substring(et,ne)}o(on,"text");function Dn(){return cr(et,ne)}o(Dn,"location");function ei(W){throw Ro(null,[{type:"other",description:W}],l.substring(et,ne),cr(et,ne))}o(ei,"expected");function sn(W){throw Ro(W,null,l.substring(et,ne),cr(et,ne))}o(sn,"error");function Kt(W){var J=br[W],me,Ee;if(J)return J;for(me=W-1;!br[me];)me--;for(J=br[me],J={line:J.line,column:J.column,seenCR:J.seenCR};mezt&&(zt=ne,jt=[]),jt.push(W))}o(ct,"peg$fail");function Ro(W,J,me,Ee){function Qt(Dt){var Dr=1;for(Dt.sort(function(Zt,ti){return Zt.descriptionti.description?1:0});Dr1?ti.slice(0,-1).join(", ")+" or "+ti[Dt.length-1]:ti[0],Ji=Dr?'"'+Zt(Dr)+'"':"end of input","Expected "+us+" but "+Ji+" found."}return o($l,"buildMessage"),J!==null&&Qt(J),new t(W!==null?W:$l(J,me),J,me,Ee)}o(Ro,"peg$buildException");function gr(){var W,J,me,Ee;if(W=ne,J=Ri(),J!==p){if(me=[],Ee=Fn(),Ee!==p)for(;Ee!==p;)me.push(Ee),Ee=Fn();else me=p;me!==p?(Ee=gr(),Ee!==p?(et=W,J=O(J,Ee),W=J):(ne=W,W=p)):(ne=W,W=p)}else ne=W,W=p;if(W===p&&(W=ne,J=Ri(),J!==p&&(et=W,J=D(J)),W=J,W===p)){for(W=ne,J=[],me=Fn();me!==p;)J.push(me),me=Fn();J!==p&&(et=W,J=Y()),W=J}return W}o(gr,"peg$parseExpr");function Ri(){var W,J,me,Ee;if(Se++,W=ne,l.charCodeAt(ne)===34?(J=X,ne++):(J=p,Se===0&&ct(te)),J!==p){for(me=[],Ee=ln();Ee!==p;)me.push(Ee),Ee=ln();me!==p?(l.charCodeAt(ne)===34?(Ee=X,ne++):(Ee=p,Se===0&&ct(te)),Ee!==p?(et=W,J=Q(me),W=J):(ne=W,W=p)):(ne=W,W=p)}else ne=W,W=p;if(W===p){if(W=ne,l.charCodeAt(ne)===39?(J=F,ne++):(J=p,Se===0&&ct(M)),J!==p){for(me=[],Ee=Rn();Ee!==p;)me.push(Ee),Ee=Rn();me!==p?(l.charCodeAt(ne)===39?(Ee=F,ne++):(Ee=p,Se===0&&ct(M)),Ee!==p?(et=W,J=Q(me),W=J):(ne=W,W=p)):(ne=W,W=p)}else ne=W,W=p;if(W===p){if(W=ne,J=ne,Se++,me=bn(),Se--,me===p?J=void 0:(ne=J,J=p),J!==p){if(me=[],Ee=vi(),Ee!==p)for(;Ee!==p;)me.push(Ee),Ee=vi();else me=p;me!==p?(et=W,J=Q(me),W=J):(ne=W,W=p)}else ne=W,W=p;if(W===p){if(W=ne,l.charCodeAt(ne)===34?(J=X,ne++):(J=p,Se===0&&ct(te)),J!==p){for(me=[],Ee=ln();Ee!==p;)me.push(Ee),Ee=ln();me!==p?(et=W,J=Q(me),W=J):(ne=W,W=p)}else ne=W,W=p;if(W===p)if(W=ne,l.charCodeAt(ne)===39?(J=F,ne++):(J=p,Se===0&&ct(M)),J!==p){for(me=[],Ee=Rn();Ee!==p;)me.push(Ee),Ee=Rn();me!==p?(et=W,J=Q(me),W=J):(ne=W,W=p)}else ne=W,W=p}}}return Se--,W===p&&(J=p,Se===0&&ct(U)),W}o(Ri,"peg$parseStringLiteral");function ln(){var W,J,me;return W=ne,J=ne,Se++,R.test(l.charAt(ne))?(me=l.charAt(ne),ne++):(me=p,Se===0&&ct(K)),Se--,me===p?J=void 0:(ne=J,J=p),J!==p?(l.length>ne?(me=l.charAt(ne),ne++):(me=p,Se===0&&ct(V)),me!==p?(et=W,J=fe(me),W=J):(ne=W,W=p)):(ne=W,W=p),W===p&&(W=ne,l.charCodeAt(ne)===92?(J=ie,ne++):(J=p,Se===0&&ct(he)),J!==p?(me=gi(),me!==p?(et=W,J=fe(me),W=J):(ne=W,W=p)):(ne=W,W=p)),W}o(ln,"peg$parseDoubleStringChar");function Rn(){var W,J,me;return W=ne,J=ne,Se++,ye.test(l.charAt(ne))?(me=l.charAt(ne),ne++):(me=p,Se===0&&ct(xe)),Se--,me===p?J=void 0:(ne=J,J=p),J!==p?(l.length>ne?(me=l.charAt(ne),ne++):(me=p,Se===0&&ct(V)),me!==p?(et=W,J=fe(me),W=J):(ne=W,W=p)):(ne=W,W=p),W===p&&(W=ne,l.charCodeAt(ne)===92?(J=ie,ne++):(J=p,Se===0&&ct(he)),J!==p?(me=gi(),me!==p?(et=W,J=fe(me),W=J):(ne=W,W=p)):(ne=W,W=p)),W}o(Rn,"peg$parseSingleStringChar");function vi(){var W,J,me;return W=ne,J=ne,Se++,me=Fn(),Se--,me===p?J=void 0:(ne=J,J=p),J!==p?(l.length>ne?(me=l.charAt(ne),ne++):(me=p,Se===0&&ct(V)),me!==p?(et=W,J=fe(me),W=J):(ne=W,W=p)):(ne=W,W=p),W}o(vi,"peg$parseUnquotedStringChar");function gi(){var W,J;return qe.test(l.charAt(ne))?(W=l.charAt(ne),ne++):(W=p,Se===0&&ct(Je)),W===p&&(W=ne,l.charCodeAt(ne)===110?(J=be,ne++):(J=p,Se===0&&ct(xt)),J!==p&&(et=W,J=Be()),W=J,W===p&&(W=ne,l.charCodeAt(ne)===114?(J=Ve,ne++):(J=p,Se===0&&ct(Ke)),J!==p&&(et=W,J=Ge()),W=J,W===p&&(W=ne,l.charCodeAt(ne)===116?(J=Xt,ne++):(J=p,Se===0&&ct(ft)),J!==p&&(et=W,J=Ar()),W=J))),W}o(gi,"peg$parseEscapeSequence");function Fn(){var W,J;return Se++,bt.test(l.charAt(ne))?(W=l.charAt(ne),ne++):(W=p,Se===0&&ct(St)),Se--,W===p&&(J=p,Se===0&&ct(Vt)),W}o(Fn,"peg$parsews");function bn(){var W,J;return Se++,_r.test(l.charAt(ne))?(W=l.charAt(ne),ne++):(W=p,Se===0&&ct(Bt)),Se--,W===p&&(J=p,Se===0&&ct(at)),W}o(bn,"peg$parsecc");function Qs(){var W,J;for(Se++,W=[],J=Fn();J!==p;)W.push(J),J=Fn();return Se--,W===p&&(J=p,Se===0&&ct(Ut)),W}if(o(Qs,"peg$parse__"),Er=_(),Er!==p&&ne===l.length)return Er;throw Er!==p&&ne{t&&t.current.addEventListener("DOMNodeInserted",n=>{let l=n.currentTarget;l.scroll({top:l.scrollHeight,behavior:"auto"})})},[]),Qe.default.createElement("div",{className:"command-result",ref:t},e.map((n,l)=>Qe.default.createElement("div",{key:l},Qe.default.createElement("div",null,Qe.default.createElement("strong",null,"$ ",n.command)),n.result)))}o(FI,"Results");function II({nextArgs:e,currentArg:t,help:n,description:l,availableCommands:d}){let m=[];for(let p=0;p0&&Qe.default.createElement("div",null,Qe.default.createElement("strong",null,"Argument suggestion:")," ",m),(n==null?void 0:n.includes("->"))&&Qe.default.createElement("div",null,Qe.default.createElement("strong",null,"Signature help: "),n),l&&Qe.default.createElement("div",null,"# ",l),Qe.default.createElement("div",null,Qe.default.createElement("strong",null,"Available Commands: "),Qe.default.createElement("p",{className:"available-commands"},JSON.stringify(d)))))}o(II,"CommandHelp");function PS(){let[e,t]=(0,Qe.useState)(""),[n,l]=(0,Qe.useState)(""),[d,m]=(0,Qe.useState)(0),[p,x]=(0,Qe.useState)([]),[_,O]=(0,Qe.useState)([]),[D,Y]=(0,Qe.useState)({}),[U,X]=(0,Qe.useState)([]),[te,Q]=(0,Qe.useState)(0),[F,M]=(0,Qe.useState)(""),[R,K]=(0,Qe.useState)(""),[V,fe]=(0,Qe.useState)([]),[ie,he]=(0,Qe.useState)([]),[ye,xe]=(0,Qe.useState)(void 0);(0,Qe.useEffect)(()=>{kt("/commands",{method:"GET"}).then(Be=>Be.json()).then(Be=>{Y(Be),x(NS(Be)),O(Object.keys(Be))}).catch(Be=>console.error(Be))},[]),(0,Qe.useEffect)(()=>{cf("commands.history.get").then(Be=>{he(Be.value)}).catch(Be=>console.error(Be))},[]);let qe=o((Be,Ve)=>{var ft,Ar,Vt;let Ke=Gy.parse(Ve),Ge=Gy.parse(Be);M((ft=D[Ke[0]])==null?void 0:ft.signature_help),K(((Ar=D[Ke[0]])==null?void 0:Ar.help)||""),x(NS(D,Ge[0])),O(NS(D,Ke[0]));let Xt=(Vt=D[Ke[0]])==null?void 0:Vt.parameters.map(bt=>bt.name);Xt&&(X([Ke[0],...Xt]),Q(Ke.length-1))},"parseCommand"),Je=o(Be=>{t(Be.target.value),l(Be.target.value),m(0)},"onChange"),be=o(Be=>{if(Be.key==="Enter"){let[Ve,...Ke]=Gy.parse(e);he([...ie,e]),cf("commands.history.add",e).catch(()=>0),kt.post(`/commands/${Ve}`,{arguments:Ke}).then(Ge=>Ge.json()).then(Ge=>{xe(void 0),X([]),fe([...V,{command:e,result:JSON.stringify(Ge.value||Ge.error)}])}).catch(Ge=>{xe(void 0),X([]),fe([...V,{command:e,result:Ge.toString()}])}),M(""),K(""),t(""),l(""),m(0),x(_)}if(Be.key==="ArrowUp"){let Ve;ye===void 0?Ve=ie.length-1:Ve=Math.max(0,ye-1),t(ie[Ve]),l(ie[Ve]),xe(Ve)}if(Be.key==="ArrowDown"){if(ye===void 0)return;if(ye==ie.length-1)t(""),l(""),xe(void 0);else{let Ve=ye+1;t(ie[Ve]),l(ie[Ve]),xe(Ve)}}Be.key==="Tab"&&(t(p[d]),m((d+1)%p.length),Be.preventDefault()),Be.stopPropagation()},"onKeyDown"),xt=o(Be=>{if(!e){O(Object.keys(D));return}qe(n,e),Be.stopPropagation()},"onKeyUp");return Qe.default.createElement("div",{className:"command"},Qe.default.createElement("div",{className:"command-title"},"Command Result"),Qe.default.createElement(FI,{results:V}),Qe.default.createElement(II,{nextArgs:U,currentArg:te,help:F,description:R,availableCommands:_}),Qe.default.createElement("div",{className:(0,DO.default)("command-input input-group")},Qe.default.createElement("span",{className:"input-group-addon"},Qe.default.createElement("i",{className:"fa fa-fw fa-terminal"})),Qe.default.createElement("input",{type:"text",placeholder:"Enter command",className:"form-control",value:e||"",onChange:Je,onKeyDown:be,onKeyUp:xt})))}o(PS,"CommandBar");var Ul=de(Ae()),Pp=de(Qh());var MS=de(Ae());function AS({checked:e,onToggle:t,text:n}){return MS.default.createElement("div",{className:"btn btn-toggle "+(e?"btn-primary":"btn-default"),onClick:t},MS.default.createElement("i",{className:"fa fa-fw "+(e?"fa-check-square-o":"fa-square-o")}),"\xA0",n)}o(AS,"ToggleButton");var Bl=de(Ae()),DS=de(Qh()),RO=de(eu()),FO=de(_S());var rm=class extends Bl.Component{constructor(t){super(t);this.heights={},this.state={vScroll:Tp()},this.onViewportUpdate=this.onViewportUpdate.bind(this)}componentDidMount(){window.addEventListener("resize",this.onViewportUpdate),this.onViewportUpdate()}componentWillUnmount(){window.removeEventListener("resize",this.onViewportUpdate)}componentDidUpdate(){this.onViewportUpdate()}onViewportUpdate(){let t=RO.default.findDOMNode(this),n=Tp({itemCount:this.props.events.length,rowHeight:this.props.rowHeight,viewportTop:t.scrollTop,viewportHeight:t.offsetHeight,itemHeights:this.props.events.map(l=>this.heights[l.id])});(0,FO.default)(this.state.vScroll,n)||this.setState({vScroll:n})}setHeight(t,n){if(n&&!this.heights[t]){let l=n.offsetHeight;this.heights[t]!==l&&(this.heights[t]=l,this.onViewportUpdate())}}render(){let{vScroll:t}=this.state,{events:n}=this.props;return Bl.default.createElement("pre",{onScroll:this.onViewportUpdate},Bl.default.createElement("div",{style:{height:t.paddingTop}}),n.slice(t.start,t.end).map(l=>Bl.default.createElement("div",{key:l.id,ref:d=>this.setHeight(l.id,d)},Bl.default.createElement(HI,{event:l}),l.message)),Bl.default.createElement("div",{style:{height:t.paddingBottom}}))}};o(rm,"EventLogList"),rm.propTypes={events:DS.default.array.isRequired,rowHeight:DS.default.number},rm.defaultProps={rowHeight:18};function HI({event:e}){let t={web:"html5",debug:"bug",warn:"exclamation-triangle",error:"ban"}[e.level]||"info";return Bl.default.createElement("i",{className:`fa fa-fw fa-${t}`})}o(HI,"LogIcon");var IO=Uy(rm);var nm=class extends Ul.Component{constructor(t,n){super(t,n);this.state={height:this.props.defaultHeight},this.onDragStart=this.onDragStart.bind(this),this.onDragMove=this.onDragMove.bind(this),this.onDragStop=this.onDragStop.bind(this)}onDragStart(t){t.preventDefault(),this.dragStart=this.state.height+t.pageY,window.addEventListener("mousemove",this.onDragMove),window.addEventListener("mouseup",this.onDragStop),window.addEventListener("dragend",this.onDragStop)}onDragMove(t){t.preventDefault(),this.setState({height:this.dragStart-t.pageY})}onDragStop(t){t.preventDefault(),window.removeEventListener("mousemove",this.onDragMove)}render(){let{height:t}=this.state,{filters:n,events:l,toggleFilter:d,close:m}=this.props;return Ul.default.createElement("div",{className:"eventlog",style:{height:t}},Ul.default.createElement("div",{onMouseDown:this.onDragStart},"Eventlog",Ul.default.createElement("div",{className:"pull-right"},["debug","info","web","warn","error"].map(p=>Ul.default.createElement(AS,{key:p,text:p,checked:n[p],onToggle:()=>d(p)})),Ul.default.createElement("i",{onClick:m,className:"fa fa-close"}))),Ul.default.createElement(IO,{events:l}))}};o(nm,"PureEventLog"),Tc(nm,"propTypes",{filters:Pp.default.object.isRequired,events:Pp.default.array.isRequired,toggleFilter:Pp.default.func.isRequired,close:Pp.default.func.isRequired,defaultHeight:Pp.default.number}),Tc(nm,"defaultProps",{defaultHeight:200});var HO=Ai(e=>({filters:e.eventLog.filters,events:e.eventLog.view}),{close:mp,toggleFilter:ok})(nm);var jr=de(Ae());function RS(){let e=nt(R=>R.conf.version),{mode:t,intercept:n,showhost:l,upstream_cert:d,rawtcp:m,dns_server:p,http2:x,websocket:_,anticache:O,anticomp:D,stickyauth:Y,stickycookie:U,stream_large_bodies:X,listen_host:te,listen_port:Q,server:F,ssl_insecure:M}=nt(R=>R.options);return jr.createElement("footer",null,t&&t!=="regular"&&jr.createElement("span",{className:"label label-success"},t," mode"),n&&jr.createElement("span",{className:"label label-success"},"Intercept: ",n),M&&jr.createElement("span",{className:"label label-danger"},"ssl_insecure"),l&&jr.createElement("span",{className:"label label-success"},"showhost"),!d&&jr.createElement("span",{className:"label label-success"},"no-upstream-cert"),!m&&jr.createElement("span",{className:"label label-success"},"no-raw-tcp"),p&&jr.createElement("span",{className:"label label-success"},"dns-server"),!x&&jr.createElement("span",{className:"label label-success"},"no-http2"),!_&&jr.createElement("span",{className:"label label-success"},"no-websocket"),O&&jr.createElement("span",{className:"label label-success"},"anticache"),D&&jr.createElement("span",{className:"label label-success"},"anticomp"),Y&&jr.createElement("span",{className:"label label-success"},"stickyauth: ",Y),U&&jr.createElement("span",{className:"label label-success"},"stickycookie: ",U),X&&jr.createElement("span",{className:"label label-success"},"stream: ",Kg(X)),jr.createElement("div",{className:"pull-right"},jr.createElement(Po,null,F&&jr.createElement("span",{className:"label label-primary",title:"HTTP Proxy Server Address"},te||"*",":",Q)),jr.createElement("span",{className:"label label-default",title:"Mitmproxy Version"},"mitmproxy ",e)))}o(RS,"Footer");var US=de(Ae());var BS=de(Ae());var Mp=de(Ae());function FS({children:e}){return Mp.createElement("div",null,Mp.createElement("div",{className:"modal-backdrop fade in"}),Mp.createElement("div",{className:"modal modal-visible",id:"optionsModal",tabIndex:-1,role:"dialog","aria-labelledby":"options"},Mp.createElement("div",{className:"modal-dialog modal-lg",role:"document"},Mp.createElement("div",{className:"modal-content"},e))))}o(FS,"ModalLayout");var fr=de(Ae());var Ao=de(Ae()),Do=de(Qh());var WO=de(Xn()),WI=o(e=>{e.key!=="Escape"&&e.stopPropagation()},"stopPropagation");IS.propTypes={value:Do.default.bool.isRequired,onChange:Do.default.func.isRequired};function IS(l){var d=l,{value:e,onChange:t}=d,n=Hs(d,["value","onChange"]);return Ao.default.createElement("div",{className:"checkbox"},Ao.default.createElement("label",null,Ao.default.createElement("input",Le({type:"checkbox",checked:e,onChange:m=>t(m.target.checked)},n)),"Enable"))}o(IS,"BooleanOption");HS.propTypes={value:Do.default.string,onChange:Do.default.func.isRequired};function HS(l){var d=l,{value:e,onChange:t}=d,n=Hs(d,["value","onChange"]);return Ao.default.createElement("input",Le({type:"text",value:e||"",onChange:m=>t(m.target.value)},n))}o(HS,"StringOption");function BI(e){return function(l){var d=l,{onChange:t}=d,n=Hs(d,["onChange"]);return Ao.default.createElement(e,Le({onChange:m=>t(m||null)},n))}}o(BI,"Optional");BO.propTypes={value:Do.default.number.isRequired,onChange:Do.default.func.isRequired};function BO(l){var d=l,{value:e,onChange:t}=d,n=Hs(d,["value","onChange"]);return Ao.default.createElement("input",Le({type:"number",value:e,onChange:m=>t(parseInt(m.target.value))},n))}o(BO,"NumberOption");UO.propTypes={value:Do.default.string.isRequired,onChange:Do.default.func.isRequired};function UO(d){var m=d,{value:e,onChange:t,choices:n}=m,l=Hs(m,["value","onChange","choices"]);return Ao.default.createElement("select",Le({onChange:p=>t(p.target.value),value:e},l),n.map(p=>Ao.default.createElement("option",{key:p,value:p},p)))}o(UO,"ChoicesOption");$O.propTypes={value:Do.default.arrayOf(Do.default.string).isRequired,onChange:Do.default.func.isRequired};function $O(l){var d=l,{value:e,onChange:t}=d,n=Hs(d,["value","onChange"]);let m=Math.max(e.length,1);return Ao.default.createElement("textarea",Le({rows:m,value:e.join(` `),onChange:p=>t(p.target.value.split(` diff --git a/test/mitmproxy/test_dns.py b/test/mitmproxy/test_dns.py index 349e9b1a8..641ad3025 100644 --- a/test/mitmproxy/test_dns.py +++ b/test/mitmproxy/test_dns.py @@ -18,10 +18,10 @@ class TestResourceRecord: assert str(dns.ResourceRecord.CNAME("test", "some.other.host")) == "some.other.host" assert str(dns.ResourceRecord.PTR("test", "some.other.host")) == "some.other.host" assert str(dns.ResourceRecord.TXT("test", "unicode text 😀")) == "unicode text 😀" - assert str(dns.ResourceRecord("test", dns.Type.A, dns.Class.IN, dns.ResourceRecord.DEFAULT_TTL, b'')) == "(invalid A data)" + assert str(dns.ResourceRecord("test", dns.Type.A, dns.Class.IN, dns.ResourceRecord.DEFAULT_TTL, b'')) == "0x (invalid A data)" assert str( dns.ResourceRecord("test", dns.Type.SOA, dns.Class.IN, dns.ResourceRecord.DEFAULT_TTL, b'\x00\x01\x02\x03') - ) == "00010203" + ) == "0x00010203" def test_setter(self): rr = dns.ResourceRecord("test", dns.Type.ANY, dns.Class.IN, dns.ResourceRecord.DEFAULT_TTL, b'') @@ -58,7 +58,7 @@ class TestQuestion: dns.Question("dns.google", dns.Type.A, dns.Class.IN), lambda rr: rr.ipv4_address == ipaddress.IPv4Address("8.8.8.8") ) - if platform.system() != "Windows": + if platform.system() == "Linux": # will fail on Windows, apparently returns empty on Mac await succeed_with( dns.Question("dns.google", dns.Type.AAAA, dns.Class.IN), lambda rr: rr.ipv6_address == ipaddress.IPv6Address("2001:4860:4860::8888") diff --git a/web/src/js/components/FlowTable/FlowColumns.tsx b/web/src/js/components/FlowTable/FlowColumns.tsx index 900279496..5e0cce01c 100644 --- a/web/src/js/components/FlowTable/FlowColumns.tsx +++ b/web/src/js/components/FlowTable/FlowColumns.tsx @@ -113,30 +113,26 @@ method.headerName = 'Method' method.sortKey = flow => { switch (flow.type) { case "http": return flow.websocket ? (flow.client_conn.tls_established ? "WSS" : "WS") : flow.request.method - case "dns": return flow.request.opCode + case "dns": return flow.request.op_code default: return flow.type.toUpperCase() } } export const status: FlowColumn = ({flow}) => { - let color = 'darkred'; - let httpStatusCode = - flow.type === "http" ? flow.response?.status_code : - flow.type === "dns" ? flow.response?.responseCodeHttpEquiv : - undefined + let color = 'darkred' - if (httpStatusCode == undefined) + if ((flow.type !== "http" && flow.type != "dns") || !flow.response) return - if (100 <= httpStatusCode && httpStatusCode < 200) { + if (100 <= flow.response.status_code && flow.response.status_code < 200) { color = 'green' - } else if (200 <= httpStatusCode && httpStatusCode < 300) { + } else if (200 <= flow.response.status_code && flow.response.status_code < 300) { color = 'darkgreen' - } else if (300 <= httpStatusCode && httpStatusCode < 400) { + } else if (300 <= flow.response.status_code && flow.response.status_code < 400) { color = 'lightblue' - } else if (400 <= httpStatusCode && httpStatusCode < 500) { + } else if (400 <= flow.response.status_code && flow.response.status_code < 500) { color = 'red' - } else if (500 <= httpStatusCode && httpStatusCode < 600) { + } else if (500 <= flow.response.status_code && flow.response.status_code < 600) { color = 'red' } @@ -148,7 +144,7 @@ status.headerName = 'Status' status.sortKey = flow => { switch (flow.type) { case "http": return flow.response?.status_code - case "dns": return flow.response?.responseCode + case "dns": return flow.response?.response_code default: return undefined } } diff --git a/web/src/js/components/FlowView/DnsMessages.tsx b/web/src/js/components/FlowView/DnsMessages.tsx index 1512f3f91..949adacf8 100644 --- a/web/src/js/components/FlowView/DnsMessages.tsx +++ b/web/src/js/components/FlowView/DnsMessages.tsx @@ -7,7 +7,7 @@ const Summary: React.FC<{ message: DNSMessage }> = ({message}) => (
- {message.query ? message.opCode : message.responseCode} + {message.query ? message.op_code : message.response_code}   #{message.id}   @@ -19,7 +19,7 @@ const Questions: React.FC<{ message: DNSMessage }> = ({message}) => ( - + @@ -78,7 +78,7 @@ const Message: React.FC<{
- +

diff --git a/web/src/js/flow.ts b/web/src/js/flow.ts index 6d5a7292e..d36062c49 100644 --- a/web/src/js/flow.ts +++ b/web/src/js/flow.ts @@ -116,6 +116,12 @@ export interface WebSocketData { timestamp_end?: number } +export interface DNSQuestion { + name: string + type: string + class: string +} + export interface DNSResourceRecord { name: string type: string @@ -127,18 +133,14 @@ export interface DNSResourceRecord { export interface DNSMessage { id: number query: boolean - opCode: string - authoritativeAnswer: boolean + op_code: string + authoritative_answer: boolean truncation: boolean - recursionDesired: boolean - recursionAvailable: boolean - responseCode: string - responseCodeHttpEquiv: number - questions: { - name: string - type: string - class: string - }[] + recursion_desired: boolean + recursion_available: boolean + response_code: string + status_code: number + questions: DNSQuestion[] answers: DNSResourceRecord[] authorities: DNSResourceRecord[] additionals: DNSResourceRecord[]
{message.recursionDesired ? "Recursive " : ""}Question{message.recursion_desired ? "Recursive " : ""}Question
Name